ZGlmZiAtLWdpdCBhL2ZwZGZzZGsvZnBkZl90ZXh0X2VtYmVkZGVydGVzdC5jcHAgYi9mcGRmc2RrL2ZwZGZfdGV4dF9lbWJlZGRlcnRlc3QuY3BwCmluZGV4IDEyYjA5YTcuLmQwZTYzYWMgMTAwNjQ0Ci0tLSBhL2ZwZGZzZGsvZnBkZl90ZXh0X2VtYmVkZGVydGVzdC5jcHAKKysrIGIvZnBkZnNkay9mcGRmX3RleHRfZW1iZWRkZXJ0ZXN0LmNwcApAQCAtNTMzLDcgKzUzMyw4IEBACiAgICAgICAiaHR0cDovL2V4YW1wbGUuY29tL3Rlc3QtZm9vIiwgIC8vIGZyb20gImh0dHA6Ly9leGFtcGxlLmNvbS90ZXN0LVxyXG5mb28iCiAgICAgICAiaHR0cDovL2FiYy5jb20vdGVzdC1mb28iLCAgICAgIC8vIGZyb20gImh0dHA6Ly9hYmMuY29tL3Rlc3QtXHJcblxyXG5mb28iCiAgICAgICAvLyBOZXh0IHR3byBsaW5rcyBmcm9tICJodHRwOi8vd3d3LmV4YW1wbGUuY29tL1xyXG5odHRwOi8vd3d3LmFiYy5jb20vIgotICAgICAgImh0dHA6Ly9leGFtcGxlLmNvbS8iLCAiaHR0cDovL3d3dy5hYmMuY29tIiwKKyAgICAgICJodHRwOi8vZXhhbXBsZS5jb20vIiwKKyAgICAgICJodHRwOi8vd3d3LmFiYy5jb20iLAogICB9OwogICBzdGF0aWMgY29uc3QgaW50IGtOdW1MaW5rcyA9IHN0YXRpY19jYXN0PGludD4oRlhfQXJyYXlTaXplKGtFeHBlY3RlZFVybHMpKTsKIApAQCAtNjMwLDYgKzYzMSw3MSBAQAogICBVbmxvYWRQYWdlKHBhZ2UpOwogfQogCitURVNUX0YoRlBERlRleHRFbWJlZGRlclRlc3QsIEFubm90TGlua3MpIHsKKyAgQVNTRVJUX1RSVUUoT3BlbkRvY3VtZW50KCJsaW5rX2Fubm90cy5wZGYiKSk7CisgIEZQREZfUEFHRSBwYWdlID0gTG9hZFBhZ2UoMCk7CisgIEFTU0VSVF9UUlVFKHBhZ2UpOworCisgIC8vIEdldCBsaW5rIGNvdW50IHZpYSBjaGVja2luZyBhbm5vdGF0aW9uIHN1YnR5cGUKKyAgaW50IGFubm90X2NvdW50ID0gRlBERlBhZ2VfR2V0QW5ub3RDb3VudChwYWdlKTsKKyAgQVNTRVJUX0VRKDgsIGFubm90X2NvdW50KTsKKyAgaW50IGFubm90X3N1YnR5cGVfbGlua19jb3VudCA9IDA7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgYW5ub3RfY291bnQ7ICsraSkgeworICAgIFNjb3BlZEZQREZBbm5vdGF0aW9uIGFubm90KEZQREZQYWdlX0dldEFubm90KHBhZ2UsIGkpKTsKKyAgICBpZiAoRlBERkFubm90X0dldFN1YnR5cGUoYW5ub3QuZ2V0KCkpID09IEZQREZfQU5OT1RfTElOSykgeworICAgICAgKythbm5vdF9zdWJ0eXBlX2xpbmtfY291bnQ7CisgICAgfQorICB9CisgIEVYUEVDVF9FUSg0LCBhbm5vdF9zdWJ0eXBlX2xpbmtfY291bnQpOworCisgIC8vIFZhbGlkYXRlIHRoYXQgRlBERkxpbmtfRW51bWVyYXRlKCkgcmV0dXJucyBzYW1lIG51bWJlciBvZiBsaW5rcworICBpbnQgc3RhcnRfcG9zID0gMDsKKyAgRlBERl9MSU5LIGxpbmtfYW5ub3Q7CisgIGludCBsaW5rX2NvdW50ID0gMDsKKyAgd2hpbGUgKEZQREZMaW5rX0VudW1lcmF0ZShwYWdlLCAmc3RhcnRfcG9zLCAmbGlua19hbm5vdCkpIHsKKyAgICBBU1NFUlRfVFJVRShsaW5rX2Fubm90KTsKKyAgICBpZiAoc3RhcnRfcG9zID09IDEgfHwgc3RhcnRfcG9zID09IDIpIHsKKyAgICAgIC8vIEZpcnN0IHR3byBsaW5rcyBwb2ludCB0byBmaXJzdCBhbmQgc2Vjb25kIHBhZ2Ugd2l0aGluIHRoZSBkb2N1bWVudAorICAgICAgLy8gcmVzcGVjdGl2ZWx5CisgICAgICBGUERGX0RFU1QgbGlua19kZXN0ID0gRlBERkxpbmtfR2V0RGVzdChkb2N1bWVudCgpLCBsaW5rX2Fubm90KTsKKyAgICAgIEVYUEVDVF9UUlVFKGxpbmtfZGVzdCk7CisgICAgICBFWFBFQ1RfRVEoc3RhcnRfcG9zIC0gMSwKKyAgICAgICAgICAgICAgICBGUERGRGVzdF9HZXREZXN0UGFnZUluZGV4KGRvY3VtZW50KCksIGxpbmtfZGVzdCkpOworICAgIH0gZWxzZSBpZiAoc3RhcnRfcG9zID09IDMpIHsgIC8vIHBvaW50cyB0byBQREYgU3BlYyBVUkwKKyAgICAgIEZTX1JFQ1RGIGxpbmtfcmVjdDsKKyAgICAgIEVYUEVDVF9UUlVFKEZQREZMaW5rX0dldEFubm90UmVjdChsaW5rX2Fubm90LCAmbGlua19yZWN0KSk7CisgICAgICBFWFBFQ1RfTkVBUig2Ni4wLCBsaW5rX3JlY3QubGVmdCwgMC4wMDEpOworICAgICAgRVhQRUNUX05FQVIoNTQ0LjAsIGxpbmtfcmVjdC50b3AsIDAuMDAxKTsKKyAgICAgIEVYUEVDVF9ORUFSKDE5Ni4wLCBsaW5rX3JlY3QucmlnaHQsIDAuMDAxKTsKKyAgICAgIEVYUEVDVF9ORUFSKDUyOS4wLCBsaW5rX3JlY3QuYm90dG9tLCAwLjAwMSk7CisgICAgfSBlbHNlIGlmIChzdGFydF9wb3MgPT0gNCkgeyAgLy8gdGhpcyBsaW5rIGhhcyBxdWFkIHBvaW50cworICAgICAgaW50IHF1YWRfcG9pbnRfY291bnQgPSBGUERGTGlua19Db3VudFF1YWRQb2ludHMobGlua19hbm5vdCk7CisgICAgICBFWFBFQ1RfRVEoMSwgcXVhZF9wb2ludF9jb3VudCk7CisgICAgICBGU19RVUFEUE9JTlRTRiBxdWFkX3BvaW50czsKKyAgICAgIEVYUEVDVF9UUlVFKEZQREZMaW5rX0dldFF1YWRQb2ludHMobGlua19hbm5vdCwgMCwgJnF1YWRfcG9pbnRzKSk7CisgICAgICBFWFBFQ1RfTkVBUig4My4wLCBxdWFkX3BvaW50cy54MSwgMC4wMDEpOworICAgICAgRVhQRUNUX05FQVIoNDUzLjAsIHF1YWRfcG9pbnRzLnkxLCAwLjAwMSk7CisgICAgICBFWFBFQ1RfTkVBUigxNzguMCwgcXVhZF9wb2ludHMueDIsIDAuMDAxKTsKKyAgICAgIEVYUEVDVF9ORUFSKDQ1My4wLCBxdWFkX3BvaW50cy55MiwgMC4wMDEpOworICAgICAgRVhQRUNUX05FQVIoODMuMCwgcXVhZF9wb2ludHMueDMsIDAuMDAxKTsKKyAgICAgIEVYUEVDVF9ORUFSKDQ0MC4wLCBxdWFkX3BvaW50cy55MywgMC4wMDEpOworICAgICAgRVhQRUNUX05FQVIoMTc4LjAsIHF1YWRfcG9pbnRzLng0LCAwLjAwMSk7CisgICAgICBFWFBFQ1RfTkVBUig0NDAuMCwgcXVhZF9wb2ludHMueTQsIDAuMDAxKTsKKyAgICAgIC8vIEFubm90UmVjdCBpcyBzYW1lIGFzIHF1YWQgcG9pbnRzIGZvciB0aGlzIGxpbmsKKyAgICAgIEZTX1JFQ1RGIGxpbmtfcmVjdDsKKyAgICAgIEVYUEVDVF9UUlVFKEZQREZMaW5rX0dldEFubm90UmVjdChsaW5rX2Fubm90LCAmbGlua19yZWN0KSk7CisgICAgICBFWFBFQ1RfTkVBUihsaW5rX3JlY3QubGVmdCwgcXVhZF9wb2ludHMueDEsIDAuMDAxKTsKKyAgICAgIEVYUEVDVF9ORUFSKGxpbmtfcmVjdC50b3AsIHF1YWRfcG9pbnRzLnkxLCAwLjAwMSk7CisgICAgICBFWFBFQ1RfTkVBUihsaW5rX3JlY3QucmlnaHQsIHF1YWRfcG9pbnRzLng0LCAwLjAwMSk7CisgICAgICBFWFBFQ1RfTkVBUihsaW5rX3JlY3QuYm90dG9tLCBxdWFkX3BvaW50cy55NCwgMC4wMDEpOworICAgIH0KKyAgICArK2xpbmtfY291bnQ7CisgIH0KKyAgRVhQRUNUX0VRKGFubm90X3N1YnR5cGVfbGlua19jb3VudCwgbGlua19jb3VudCk7CisKKyAgVW5sb2FkUGFnZShwYWdlKTsKK30KKwogVEVTVF9GKEZQREZUZXh0RW1iZWRkZXJUZXN0LCBHZXRGb250U2l6ZSkgewogICBBU1NFUlRfVFJVRShPcGVuRG9jdW1lbnQoImhlbGxvX3dvcmxkLnBkZiIpKTsKICAgRlBERl9QQUdFIHBhZ2UgPSBMb2FkUGFnZSgwKTsKQEAgLTEwMzcsNyArMTEwMyw5IEBACiAgICAgICB7NjAuMGYsIDE1MC4wZiwgMTUwLjBmLCA2MC4wZn0sCiAgIH07CiAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhcioga0V4cGVjdGVkVGV4dFtrUGFnZUNvdW50XSA9IHsKLSAgICAgICIgd29ybGQhXHJcbmRieWUsIHdvcmxkISIsICIgd29ybGQhXHJcbmRieWUsIHdvcmxkISIsICJieWUsIHdvcmxkISIsCisgICAgICAiIHdvcmxkIVxyXG5kYnllLCB3b3JsZCEiLAorICAgICAgIiB3b3JsZCFcclxuZGJ5ZSwgd29ybGQhIiwKKyAgICAgICJieWUsIHdvcmxkISIsCiAgICAgICAiYnllLCB3b3JsZCEiLAogICB9OwogCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9saW5rX2Fubm90cy5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2xpbmtfYW5ub3RzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4MGIzMmIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9saW5rX2Fubm90cy5pbgpAQCAtMCwwICsxLDMzMyBAQAore3toZWFkZXJ9fQore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCis+PgorZW5kb2JqCit7e29iamVjdCAyIDB9fSA8PAorICAvVHlwZSAvUGFnZXMKKyAgL0NvdW50IDIKKyAgL0tpZHMgWzMgMCBSIDQgMCBSXQorICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQorICAvQ3JvcEJveCBbMCAwIDYxMiA3OTJdDQorICAvUmVzb3VyY2VzIDw8CisgICAgL0ZvbnQgPDwKKyAgICAgIC9GMSA3IDAgUgorICAgICAgL0YyIDggMCBSCisgICAgPj4KKyAgICAvUHJvY1NldCBbL1BERiAvVGV4dCAvSW1hZ2VDXQorICAgIC9FeHRHU3RhdGUgPDwKKyAgICAgIC9HUzAgMjMgMCBSCisgICAgPj4KKyAgPj4NCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA1IDAgUgorICAvQW5ub3RzIFsxNSAwIFIgMTYgMCBSIDE3IDAgUiAxOCAwIFIgMTkgMCBSIDIwIDAgUiAyMSAwIFIgMjIgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNiAwIFIKKyAgL0Fubm90cyBbMTUgMCBSIDE2IDAgUl0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDUgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK0JUCis3MCA3MDAgVGQKKy9GMSAxOCBUZgorKExpbmsgQW5ub3RhdGlvbnMgLSBQYWdlIDEpIFRqCiswIC02NSBUZAorL0YyIDE0IFRmCisoMS4gTGluayB3aXRoIGRlc3RpbmF0aW9uIHRvIGZpcnN0IHBhZ2UpIFRqCisxMCAtMjAgVGQKKy9GMiAxNCBUZgorKDIuIExpbmsgd2l0aCBkZXN0aW5hdGlvbiB0byBzZWNvbmQgcGFnZSkgVGoKKy0xMiAtODQgVGQKKy9GMiAxMCBUZgorKFBERiBSZWZlcmVuY2UsIFZlcnNpb24gMS43LCBTZWN0aW9uIDguNC41IGRlZmluZXMgQW5ub3RhdGlvbnMpIFRqCisyIC01MyBUZAorKDMuICBBbiBleGFtcGxlIG9mIEhpZ2hsaWdodCB3aXRoIHRleHQgbm90ZXMpIFRqCiswIC0xOCBUZAorKGh0dHBzOi8vcGRmaXVtLmdvb2dsZXNvdXJjZS5jb20vcGRmaXVtIGlzIGxpbmsgaW4gcGxhaW4gdGV4dCwgbm90IGxpbmsgYW5ub3RhdGlvbi4gVGhlc2UgYXJlIHJlZmVycmVkIHRvKSBUagorMCAtMTcgVGQKKyhhcyBXZWJMaW5rcyBpbiBQREZpdW0uKVRqCitFVAorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDYgMH19IDw8CisgIHt7c3RyZWFtbGVufX0KKz4+CitzdHJlYW0KK0JUCis3MCA3MDAgVGQKKy9GMSAxOCBUZgorKExpbmsgQW5ub3RhdGlvbnMgLSBQYWdlIDIpIFRqCiswIC02NSBUZAorL0YyIDE0IFRmCisoMS4gTGluayB3aXRoIGRlc3RpbmF0aW9uIHRvIGZpcnN0IHBhZ2UpIFRqCisxMCAtMjAgVGQKKy9GMiAxNCBUZgorKDIuIExpbmsgd2l0aCBkZXN0aW5hdGlvbiB0byBzZWNvbmQgcGFnZSkgVGoKK0VUCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNyAwfX0gPDwKKyAgL1R5cGUgL0ZvbnQKKyAgL1N1YnR5cGUgL1R5cGUxCisgIC9CYXNlRm9udCAvVGltZXMtUm9tYW4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDggMH19IDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvQmFzZUZvbnQgL0hlbHZldGljYQorPj4KK2VuZG9iagore3tvYmplY3QgOSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QNCisgIC9TdWJ0eXBlIC9Gb3JtDQorICAvRm9ybVR5cGUgMQ0KKyAge3tzdHJlYW1sZW59fQorICAvQkJveCBbMjkzIDUzMCAzNDkgNTQyXQ0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9YT2JqZWN0IDw8CisgICAgICAvRm9ybTAgMTAgMCBSCisgICAgPj4KKyAgICAvRXh0R1N0YXRlIDw8CisgICAgICAvR1MwIDI0IDAgUgorICAgID4+CisgID4+DQorPj4NCitzdHJlYW0NCisvR1MwIGdzDQorL0Zvcm0wIERvDQorZW5kc3RyZWFtDQorZW5kb2JqCit7e29iamVjdCAxMCAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QNCisgIC9TdWJ0eXBlIC9Gb3JtCisgIC9Gb3JtVHlwZSAxDQorICAvR3JvdXAgPDwKKyAgICAvUyAvVHJhbnNwYXJlbmN5CisgID4+DQorICB7e3N0cmVhbWxlbn19CisgIC9CQm94IFsyOTMgNTMwIDM0OSA1NDJdDQorPj4KK3N0cmVhbQorMS4wIDEuMCAwLjAgcmcNCisyOTMgNTMwIG0NCiszNDkgNTMwIGwNCiszNDkgNTQyIGwNCisyOTMgNTQyIGwNCitoIGYKK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAxMSAwfX0gPDwKKyAgL1R5cGUgL1hPYmplY3QNCisgIC9TdWJ0eXBlIC9Gb3JtDQorICAvRm9ybVR5cGUgMQ0KKyAge3tzdHJlYW1sZW59fQorICAvQkJveCBbODMgNDQwIDE3OCA0NTNdDQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9Gb3JtMCAxMiAwIFIKKyAgICA+PgorICAgIC9FeHRHU3RhdGUgPDwKKyAgICAgIC9HUzAgMjQgMCBSCisgICAgPj4KKyAgPj4NCis+Pg0KK3N0cmVhbQ0KKy9HUzAgZ3MNCisvRm9ybTAgRG8NCitlbmRzdHJlYW0NCitlbmRvYmoKK3t7b2JqZWN0IDEyIDB9fSA8PAorICAvVHlwZSAvWE9iamVjdA0KKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDENCisgIC9Hcm91cCA8PAorICAgIC9TIC9UcmFuc3BhcmVuY3kKKyAgPj4NCisgIHt7c3RyZWFtbGVufX0KKyAgL0JCb3ggWzgzIDQ0MCAxNzggNDUzXQ0KKz4+CitzdHJlYW0KKzAuMCAxLjAgMS4wIHJnDQorODMgNDQwIG0NCisxNzggNDQwIGwNCisxNzggNDUzIGwNCis4MyA0NTMgbA0KK2ggZgorZW5kc3RyZWFtCitlbmRvYmoKK3t7b2JqZWN0IDEzIDB9fSA8PAorICAvVHlwZSAvWE9iamVjdA0KKyAgL1N1YnR5cGUgL0Zvcm0NCisgIC9Gb3JtVHlwZSAxDQorICB7e3N0cmVhbWxlbn19CisgIC9CQm94IFsxNDkgNDc2IDE5MSA0ODddDQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9Gb3JtMCAxNCAwIFIKKyAgICA+PgorICAgIC9FeHRHU3RhdGUgPDwKKyAgICAgIC9HUzAgMjQgMCBSCisgICAgPj4KKyAgPj4NCis+Pg0KK3N0cmVhbQ0KKy9HUzAgZ3MNCisvRm9ybTAgRG8NCitlbmRzdHJlYW0NCitlbmRvYmoKK3t7b2JqZWN0IDE0IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdA0KKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDENCisgIC9Hcm91cCA8PAorICAgIC9TIC9UcmFuc3BhcmVuY3kKKyAgPj4NCisgIHt7c3RyZWFtbGVufX0KKyAgL0JCb3ggWzE0OSA0NzYgMTkxIDQ4N10NCis+Pgorc3RyZWFtCiswLjAgMS4wIDAuMCByZw0KKzE0OSA0NzYgbQ0KKzE5MSA0NzYgbA0KKzE5MSA0ODcgbA0KKzE0OSA0ODcgbA0KK2ggZg0KK2VuZHN0cmVhbQorZW5kb2JqCit7e29iamVjdCAxNSAwfX0gPDwKKyAgL1R5cGUgL0Fubm90DQorICAvU3VidHlwZSAvTGluaw0KKyAgL0JTIDw8CisgICAgL1cgMAorICA+Pg0KKyAgL1JlY3QgWzY5IDYzMyA1NDIgNjUzXQ0KKyAgL0Rlc3QgWzMgMCBSIC9YWVogMjAwIDcyNSAwXQ0KKyAgL0YgNAorPj4NCitlbmRvYmoKK3t7b2JqZWN0IDE2IDB9fSA8PAorICAvVHlwZSAvQW5ub3QNCisgIC9TdWJ0eXBlIC9MaW5rDQorICAvQlMgPDwKKyAgICAvVyAwCisgID4+DQorICAvUmVjdCBbODAgNjEzIDU0MiA2MzNdDQorICAvRGVzdCBbNCAwIFIgL1hZWiAyMDAgNzI1IDBdDQorICAvRiA0Cis+PgorZW5kb2JqCit7e29iamVjdCAxNyAwfX0gPDwKKyAgL1R5cGUgL0Fubm90DQorICAvU3VidHlwZSAvTGluaw0KKyAgL0JTIDw8CisgICAgL1cgMAorICA+Pg0KKyAgL1JlY3QgWzY2IDUyOSAxOTYgNTQ0XQ0KKyAgL0EgPDwKKyAgICAvVHlwZSAvQWN0aW9uCisgICAgL1VSSSAoaHR0cHM6Ly93d3cuYWRvYmUuY29tL2NvbnRlbnQvZGFtL2Fjb20vZW4vZGV2bmV0L2Fjcm9iYXQvcGRmcy9wZGZfcmVmZXJlbmNlXzEtNy5wZGYpCisgICAgL1MgL1VSSQorICA+Pg0KKyAgL0YgNAorPj4KK2VuZG9iagore3tvYmplY3QgMTggMH19IDw8CisgIC9UeXBlIC9Bbm5vdA0KKyAgL1N1YnR5cGUgL0xpbmsNCisgIC9CUyA8PAorICAgIC9XIDAKKyAgPj4NCisgIC9SZWN0IFs4MyA0NDAgMTc4IDQ1M10NCisgIC9RdWFkUG9pbnRzIFs4MyA0NTMgMTc4IDQ1MyA4MyA0NDAgMTc4IDQ0MF0NCisgIC9BIDw8CisgICAgL1R5cGUgL0FjdGlvbgorICAgIC9VUkkgKGh0dHBzOi8vY3MuY2hyb21pdW0ub3JnL2Nocm9taXVtL3NyYy90aGlyZF9wYXJ0eS9wZGZpdW0vcHVibGljL2ZwZGZfdGV4dC5oKQorICAgIC9TIC9VUkkKKyAgPj4NCisgIC9GIDQNCis+Pg0KK2VuZG9iagore3tvYmplY3QgMTkgMH19IDw8CisgIC9UeXBlIC9Bbm5vdA0KKyAgL1N1YnR5cGUgL0hpZ2hsaWdodA0KKyAgL0FQIDw8CisgICAgL04gOSAwIFIKKyAgPj4NCisgIC9OTSAoSGlnaGxpZ2h0LTEpDQorICAvRiA0DQorICAvUXVhZFBvaW50cyBbMjkzIDU0MiAzNDkgNTQyIDI5MyA1MzAgMzQ5IDUzMF0NCisgIC9QIDMgMCBSDQorICAvQyBbMSAwLjkwMTk2IDBdDQorICAvUmVjdCBbMjkzIDUzMCAzNDkgNTQyXQ0KKz4+DQorZW5kb2JqCit7e29iamVjdCAyMCAwfX0gPDwKKyAgL1R5cGUgL0Fubm90DQorICAvU3VidHlwZSAvSGlnaGxpZ2h0DQorICAvQVAgPDwKKyAgICAvTiAxMSAwIFIKKyAgPj4NCisgIC9OTSAoSGlnaGxpZ2h0LTIpDQorICAvRiA0DQorICAvUXVhZFBvaW50cyBbODMgNDUzIDE3OCA0NTMgODMgNDQwIDE3OCA0NDBdDQorICAvUCAzIDAgUg0KKyAgL0MgWzAuMjY2NjcgMC43ODQzMSAwLjk2MDc4XQ0KKyAgL1JlY3QgWzgzIDQ0MCAxNzggNDUzXQ0KKz4+DQorZW5kb2JqCit7e29iamVjdCAyMSAwfX0gPDwKKyAgL1R5cGUgL0Fubm90DQorICAvU3VidHlwZSAvUG9wdXANCisgIC9QYXJlbnQgMjIgMCBSCisgIC9SZWN0IFsxOTEgMzc3IDQ0MyA0ODhdDQorPj4NCitlbmRvYmoKK3t7b2JqZWN0IDIyIDB9fSA8PAorICAvVHlwZSAvQW5ub3QNCisgIC9TdWJ0eXBlIC9IaWdobGlnaHQNCisgIC9Qb3B1cCAyMSAwIFINCisgIC9BUCA8PAorICAgIC9OIDEzIDAgUgorICA+Pg0KKyAgL05NIChIaWdobGlnaHQtV2l0aC1Qb3B1cC0xKQ0KKyAgL0NvbnRlbnRzIChUZXh0IE5vdGUpDQorICAvUXVhZFBvaW50cyBbMTQ5IDQ4NyAxOTEgNDg3IDE0OSA0NzYgMTkxIDQ3Nl0NCisgIC9QIDMgMCBSDQorICAvQyBbMC4xNDkwMiAwLjkwMTk2IDBdDQorICAvUmVjdCBbMTQ5IDQ3NiAxOTEgNDg3XQ0KKyAgL0YgNA0KKz4+DQorZW5kb2JqCit7e29iamVjdCAyMyAwfX0gPDwKKyAgL2NhIDENCisgIC9UeXBlIC9FeHRHU3RhdGUNCisgIC9DQSAxDQorICAvQk0gL05vcm1hbA0KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDI0IDB9fSA8PAorICAvY2EgMQorICAvVHlwZSAvRXh0R1N0YXRlCisgIC9DQSAxCisgIC9BSVMgZmFsc2UKKyAgL0JNIC9NdWx0aXBseQorPj4KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvbGlua19hbm5vdHMucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvbGlua19hbm5vdHMucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3ZTM4MDIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy9saW5rX2Fubm90cy5wZGYKQEAgLTAsMCArMSwzNjQgQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKKzIgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9Db3VudCAyCisgIC9LaWRzIFszIDAgUiA0IDAgUl0KKyAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KKyAgL0Nyb3BCb3ggWzAgMCA2MTIgNzkyXQ0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9Gb250IDw8CisgICAgICAvRjEgNyAwIFIKKyAgICAgIC9GMiA4IDAgUgorICAgID4+CisgICAgL1Byb2NTZXQgWy9QREYgL1RleHQgL0ltYWdlQ10KKyAgICAvRXh0R1N0YXRlIDw8CisgICAgICAvR1MwIDIzIDAgUgorICAgID4+CisgID4+DQorPj4KK2VuZG9iagorMyAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA1IDAgUgorICAvQW5ub3RzIFsxNSAwIFIgMTYgMCBSIDE3IDAgUiAxOCAwIFIgMTkgMCBSIDIwIDAgUiAyMSAwIFIgMjIgMCBSXQorPj4KK2VuZG9iagorNCAwIG9iaiA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA2IDAgUgorICAvQW5ub3RzIFsxNSAwIFIgMTYgMCBSXQorPj4KK2VuZG9iagorNSAwIG9iaiA8PAorICAvTGVuZ3RoIDQ4NgorPj4KK3N0cmVhbQorQlQKKzcwIDcwMCBUZAorL0YxIDE4IFRmCisoTGluayBBbm5vdGF0aW9ucyAtIFBhZ2UgMSkgVGoKKzAgLTY1IFRkCisvRjIgMTQgVGYKKygxLiBMaW5rIHdpdGggZGVzdGluYXRpb24gdG8gZmlyc3QgcGFnZSkgVGoKKzEwIC0yMCBUZAorL0YyIDE0IFRmCisoMi4gTGluayB3aXRoIGRlc3RpbmF0aW9uIHRvIHNlY29uZCBwYWdlKSBUagorLTEyIC04NCBUZAorL0YyIDEwIFRmCisoUERGIFJlZmVyZW5jZSwgVmVyc2lvbiAxLjcsIFNlY3Rpb24gOC40LjUgZGVmaW5lcyBBbm5vdGF0aW9ucykgVGoKKzIgLTUzIFRkCisoMy4gIEFuIGV4YW1wbGUgb2YgSGlnaGxpZ2h0IHdpdGggdGV4dCBub3RlcykgVGoKKzAgLTE4IFRkCisoaHR0cHM6Ly9wZGZpdW0uZ29vZ2xlc291cmNlLmNvbS9wZGZpdW0gaXMgbGluayBpbiBwbGFpbiB0ZXh0LCBub3QgbGluayBhbm5vdGF0aW9uLiBUaGVzZSBhcmUgcmVmZXJyZWQgdG8pIFRqCiswIC0xNyBUZAorKGFzIFdlYkxpbmtzIGluIFBERml1bS4pVGoKK0VUCitlbmRzdHJlYW0KK2VuZG9iagorNiAwIG9iaiA8PAorICAvTGVuZ3RoIDE4NQorPj4KK3N0cmVhbQorQlQKKzcwIDcwMCBUZAorL0YxIDE4IFRmCisoTGluayBBbm5vdGF0aW9ucyAtIFBhZ2UgMikgVGoKKzAgLTY1IFRkCisvRjIgMTQgVGYKKygxLiBMaW5rIHdpdGggZGVzdGluYXRpb24gdG8gZmlyc3QgcGFnZSkgVGoKKzEwIC0yMCBUZAorL0YyIDE0IFRmCisoMi4gTGluayB3aXRoIGRlc3RpbmF0aW9uIHRvIHNlY29uZCBwYWdlKSBUagorRVQKK2VuZHN0cmVhbQorZW5kb2JqCis3IDAgb2JqIDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvQmFzZUZvbnQgL1RpbWVzLVJvbWFuCis+PgorZW5kb2JqCis4IDAgb2JqIDw8CisgIC9UeXBlIC9Gb250CisgIC9TdWJ0eXBlIC9UeXBlMQorICAvQmFzZUZvbnQgL0hlbHZldGljYQorPj4KK2VuZG9iagorOSAwIG9iaiA8PAorICAvVHlwZSAvWE9iamVjdA0KKyAgL1N1YnR5cGUgL0Zvcm0NCisgIC9Gb3JtVHlwZSAxDQorICAvTGVuZ3RoIDIwCisgIC9CQm94IFsyOTMgNTMwIDM0OSA1NDJdDQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9Gb3JtMCAxMCAwIFIKKyAgICA+PgorICAgIC9FeHRHU3RhdGUgPDwKKyAgICAgIC9HUzAgMjQgMCBSCisgICAgPj4KKyAgPj4NCis+Pg0KK3N0cmVhbQ0KKy9HUzAgZ3MNCisvRm9ybTAgRG8NCitlbmRzdHJlYW0NCitlbmRvYmoKKzEwIDAgb2JqIDw8CisgIC9UeXBlIC9YT2JqZWN0DQorICAvU3VidHlwZSAvRm9ybQorICAvRm9ybVR5cGUgMQ0KKyAgL0dyb3VwIDw8CisgICAgL1MgL1RyYW5zcGFyZW5jeQorICA+Pg0KKyAgL0xlbmd0aCA2NAorICAvQkJveCBbMjkzIDUzMCAzNDkgNTQyXQ0KKz4+CitzdHJlYW0KKzEuMCAxLjAgMC4wIHJnDQorMjkzIDUzMCBtDQorMzQ5IDUzMCBsDQorMzQ5IDU0MiBsDQorMjkzIDU0MiBsDQoraCBmCitlbmRzdHJlYW0KK2VuZG9iagorMTEgMCBvYmogPDwKKyAgL1R5cGUgL1hPYmplY3QNCisgIC9TdWJ0eXBlIC9Gb3JtDQorICAvRm9ybVR5cGUgMQ0KKyAgL0xlbmd0aCAyMAorICAvQkJveCBbODMgNDQwIDE3OCA0NTNdDQorICAvUmVzb3VyY2VzIDw8CisgICAgL1hPYmplY3QgPDwKKyAgICAgIC9Gb3JtMCAxMiAwIFIKKyAgICA+PgorICAgIC9FeHRHU3RhdGUgPDwKKyAgICAgIC9HUzAgMjQgMCBSCisgICAgPj4KKyAgPj4NCis+Pg0KK3N0cmVhbQ0KKy9HUzAgZ3MNCisvRm9ybTAgRG8NCitlbmRzdHJlYW0NCitlbmRvYmoKKzEyIDAgb2JqIDw8CisgIC9UeXBlIC9YT2JqZWN0DQorICAvU3VidHlwZSAvRm9ybQorICAvRm9ybVR5cGUgMQ0KKyAgL0dyb3VwIDw8CisgICAgL1MgL1RyYW5zcGFyZW5jeQorICA+Pg0KKyAgL0xlbmd0aCA2MgorICAvQkJveCBbODMgNDQwIDE3OCA0NTNdDQorPj4KK3N0cmVhbQorMC4wIDEuMCAxLjAgcmcNCis4MyA0NDAgbQ0KKzE3OCA0NDAgbA0KKzE3OCA0NTMgbA0KKzgzIDQ1MyBsDQoraCBmCitlbmRzdHJlYW0KK2VuZG9iagorMTMgMCBvYmogPDwKKyAgL1R5cGUgL1hPYmplY3QNCisgIC9TdWJ0eXBlIC9Gb3JtDQorICAvRm9ybVR5cGUgMQ0KKyAgL0xlbmd0aCAyMAorICAvQkJveCBbMTQ5IDQ3NiAxOTEgNDg3XQ0KKyAgL1Jlc291cmNlcyA8PAorICAgIC9YT2JqZWN0IDw8CisgICAgICAvRm9ybTAgMTQgMCBSCisgICAgPj4KKyAgICAvRXh0R1N0YXRlIDw8CisgICAgICAvR1MwIDI0IDAgUgorICAgID4+CisgID4+DQorPj4NCitzdHJlYW0NCisvR1MwIGdzDQorL0Zvcm0wIERvDQorZW5kc3RyZWFtDQorZW5kb2JqCisxNCAwIG9iaiA8PAorICAvVHlwZSAvWE9iamVjdA0KKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0Zvcm1UeXBlIDENCisgIC9Hcm91cCA8PAorICAgIC9TIC9UcmFuc3BhcmVuY3kKKyAgPj4NCisgIC9MZW5ndGggNjUKKyAgL0JCb3ggWzE0OSA0NzYgMTkxIDQ4N10NCis+Pgorc3RyZWFtCiswLjAgMS4wIDAuMCByZw0KKzE0OSA0NzYgbQ0KKzE5MSA0NzYgbA0KKzE5MSA0ODcgbA0KKzE0OSA0ODcgbA0KK2ggZg0KK2VuZHN0cmVhbQorZW5kb2JqCisxNSAwIG9iaiA8PAorICAvVHlwZSAvQW5ub3QNCisgIC9TdWJ0eXBlIC9MaW5rDQorICAvQlMgPDwKKyAgICAvVyAwCisgID4+DQorICAvUmVjdCBbNjkgNjMzIDU0MiA2NTNdDQorICAvRGVzdCBbMyAwIFIgL1hZWiAyMDAgNzI1IDBdDQorICAvRiA0Cis+Pg0KK2VuZG9iagorMTYgMCBvYmogPDwKKyAgL1R5cGUgL0Fubm90DQorICAvU3VidHlwZSAvTGluaw0KKyAgL0JTIDw8CisgICAgL1cgMAorICA+Pg0KKyAgL1JlY3QgWzgwIDYxMyA1NDIgNjMzXQ0KKyAgL0Rlc3QgWzQgMCBSIC9YWVogMjAwIDcyNSAwXQ0KKyAgL0YgNAorPj4KK2VuZG9iagorMTcgMCBvYmogPDwKKyAgL1R5cGUgL0Fubm90DQorICAvU3VidHlwZSAvTGluaw0KKyAgL0JTIDw8CisgICAgL1cgMAorICA+Pg0KKyAgL1JlY3QgWzY2IDUyOSAxOTYgNTQ0XQ0KKyAgL0EgPDwKKyAgICAvVHlwZSAvQWN0aW9uCisgICAgL1VSSSAoaHR0cHM6Ly93d3cuYWRvYmUuY29tL2NvbnRlbnQvZGFtL2Fjb20vZW4vZGV2bmV0L2Fjcm9iYXQvcGRmcy9wZGZfcmVmZXJlbmNlXzEtNy5wZGYpCisgICAgL1MgL1VSSQorICA+Pg0KKyAgL0YgNAorPj4KK2VuZG9iagorMTggMCBvYmogPDwKKyAgL1R5cGUgL0Fubm90DQorICAvU3VidHlwZSAvTGluaw0KKyAgL0JTIDw8CisgICAgL1cgMAorICA+Pg0KKyAgL1JlY3QgWzgzIDQ0MCAxNzggNDUzXQ0KKyAgL1F1YWRQb2ludHMgWzgzIDQ1MyAxNzggNDUzIDgzIDQ0MCAxNzggNDQwXQ0KKyAgL0EgPDwKKyAgICAvVHlwZSAvQWN0aW9uCisgICAgL1VSSSAoaHR0cHM6Ly9jcy5jaHJvbWl1bS5vcmcvY2hyb21pdW0vc3JjL3RoaXJkX3BhcnR5L3BkZml1bS9wdWJsaWMvZnBkZl90ZXh0LmgpCisgICAgL1MgL1VSSQorICA+Pg0KKyAgL0YgNA0KKz4+DQorZW5kb2JqCisxOSAwIG9iaiA8PAorICAvVHlwZSAvQW5ub3QNCisgIC9TdWJ0eXBlIC9IaWdobGlnaHQNCisgIC9BUCA8PAorICAgIC9OIDkgMCBSCisgID4+DQorICAvTk0gKEhpZ2hsaWdodC0xKQ0KKyAgL0YgNA0KKyAgL1F1YWRQb2ludHMgWzI5MyA1NDIgMzQ5IDU0MiAyOTMgNTMwIDM0OSA1MzBdDQorICAvUCAzIDAgUg0KKyAgL0MgWzEgMC45MDE5NiAwXQ0KKyAgL1JlY3QgWzI5MyA1MzAgMzQ5IDU0Ml0NCis+Pg0KK2VuZG9iagorMjAgMCBvYmogPDwKKyAgL1R5cGUgL0Fubm90DQorICAvU3VidHlwZSAvSGlnaGxpZ2h0DQorICAvQVAgPDwKKyAgICAvTiAxMSAwIFIKKyAgPj4NCisgIC9OTSAoSGlnaGxpZ2h0LTIpDQorICAvRiA0DQorICAvUXVhZFBvaW50cyBbODMgNDUzIDE3OCA0NTMgODMgNDQwIDE3OCA0NDBdDQorICAvUCAzIDAgUg0KKyAgL0MgWzAuMjY2NjcgMC43ODQzMSAwLjk2MDc4XQ0KKyAgL1JlY3QgWzgzIDQ0MCAxNzggNDUzXQ0KKz4+DQorZW5kb2JqCisyMSAwIG9iaiA8PAorICAvVHlwZSAvQW5ub3QNCisgIC9TdWJ0eXBlIC9Qb3B1cA0KKyAgL1BhcmVudCAyMiAwIFIKKyAgL1JlY3QgWzE5MSAzNzcgNDQzIDQ4OF0NCis+Pg0KK2VuZG9iagorMjIgMCBvYmogPDwKKyAgL1R5cGUgL0Fubm90DQorICAvU3VidHlwZSAvSGlnaGxpZ2h0DQorICAvUG9wdXAgMjEgMCBSDQorICAvQVAgPDwKKyAgICAvTiAxMyAwIFIKKyAgPj4NCisgIC9OTSAoSGlnaGxpZ2h0LVdpdGgtUG9wdXAtMSkNCisgIC9Db250ZW50cyAoVGV4dCBOb3RlKQ0KKyAgL1F1YWRQb2ludHMgWzE0OSA0ODcgMTkxIDQ4NyAxNDkgNDc2IDE5MSA0NzZdDQorICAvUCAzIDAgUg0KKyAgL0MgWzAuMTQ5MDIgMC45MDE5NiAwXQ0KKyAgL1JlY3QgWzE0OSA0NzYgMTkxIDQ4N10NCisgIC9GIDQNCis+Pg0KK2VuZG9iagorMjMgMCBvYmogPDwKKyAgL2NhIDENCisgIC9UeXBlIC9FeHRHU3RhdGUNCisgIC9DQSAxDQorICAvQk0gL05vcm1hbA0KKz4+CitlbmRvYmoKKzI0IDAgb2JqIDw8CisgIC9jYSAxCisgIC9UeXBlIC9FeHRHU3RhdGUKKyAgL0NBIDEKKyAgL0FJUyBmYWxzZQorICAvQk0gL011bHRpcGx5Cis+PgorZW5kb2JqCit4cmVmCiswIDI1CiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMDY4IDAwMDAwIG4gCiswMDAwMDAwMzQwIDAwMDAwIG4gCiswMDAwMDAwNDc3IDAwMDAwIG4gCiswMDAwMDAwNTcyIDAwMDAwIG4gCiswMDAwMDAxMTEwIDAwMDAwIG4gCiswMDAwMDAxMzQ3IDAwMDAwIG4gCiswMDAwMDAxNDI1IDAwMDAwIG4gCiswMDAwMDAxNTAxIDAwMDAwIG4gCiswMDAwMDAxNzYxIDAwMDAwIG4gCiswMDAwMDAxOTkzIDAwMDAwIG4gCiswMDAwMDAyMjUzIDAwMDAwIG4gCiswMDAwMDAyNDgyIDAwMDAwIG4gCiswMDAwMDAyNzQzIDAwMDAwIG4gCiswMDAwMDAyOTc2IDAwMDAwIG4gCiswMDAwMDAzMTIyIDAwMDAwIG4gCiswMDAwMDAzMjY3IDAwMDAwIG4gCiswMDAwMDAzNTE5IDAwMDAwIG4gCiswMDAwMDAzODExIDAwMDAwIG4gCiswMDAwMDA0MDM4IDAwMDAwIG4gCiswMDAwMDA0Mjc1IDAwMDAwIG4gCiswMDAwMDA0Mzc3IDAwMDAwIG4gCiswMDAwMDA0NjY0IDAwMDAwIG4gCiswMDAwMDA0NzM5IDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDI1Cis+Pgorc3RhcnR4cmVmCis0ODI1CislJUVPRgo=