ZGlmZiAtLWdpdCBhL3JlYWRsaW5lL0NIQU5HRUxPRyBiL3JlYWRsaW5lL0NIQU5HRUxPRwppbmRleCAzNTBkZWZhLi5iNjQ5OWMzIDEwMDY0NAotLS0gYS9yZWFkbGluZS9DSEFOR0VMT0cKKysrIGIvcmVhZGxpbmUvQ0hBTkdFTE9HCkBAIC02OTcsMyArNjk3LDIyNCBAQAogCS0gbmV3IG1heWJlLWNsZWFuIHRhcmdldCB0aGF0IHJlbW92ZXMgdGhlIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uIGlmCiAJICB0aGUgYnVpbGQgZGlyZWN0b3J5IGRpZmZlcnMgZnJvbSB0aGUgc291cmNlIGRpcmVjdG9yeQogCS0gZGlzdGNsZWFuIHRhcmdldCBub3cgZGVwZW5kcyBvbiBtYXliZS1jbGVhbgorCisJCQkJICAgNy8xNworCQkJCSAgIC0tLS0KK1tyZWFkbGluZS00LjMgcmVsZWFzZWRdCisKKwkJCQkgICA3LzE4CisJCQkJICAgLS0tLQorc2hsaWIvTWFrZWZpbGUuaW4KKwktIGZpeCBiYWQgZGVwZW5kZW5jeTogdGV4dC5zbzogdGVybWluYWwuYywgbWFrZSBpdCBkZXBlbmQgb24gdGV4dC5jCisKKwkJCQkgICAgOC83CisJCQkJICAgIC0tLQorc3VwcG9ydC9zaGxpYi1pbnN0YWxsCisJLSBicmVhayBgbGludXgnIG91dCBpbnRvIGl0cyBvd24gc3RhbnphOiAgaXQgc2VlbXMgdGhhdCBsaW51eAorCSAgZGlzdHJpYnV0aW9ucyBhcmUgYWxsIG1vdmluZyB0byB0aGUgZm9sbG93aW5nIHNjaGVtZToKKworCQlsaWJyZWFkbGluZS5zby40LjMJaW5zdGFsbGVkIHZlcnNpb24KKwkJbGlicmVhZGxpbmUuc28uNCAtPiBsaWJyZWFkbGluZS5zby40LjMJc3ltbGluaworCQlsaWJyZWFkbGluZS5zbyAtPiBsaWJyZWFkbGluZS5zby40CXN5bWxpbmsKKworCQkJCSAgIDEwLzI5CisJCQkJICAgLS0tLS0KK3N1cHBvcnQvc2hsaWItaW5zdGFsbAorCS0gY2hhbmdlIElOU1RBTExfTElOS1sxMl0gdG8gdXNlIGAmJicgaW5zdGVhZCBvZiBgOycgc28gaXQgb25seQorCSAgdHJpZXMgdGhlIGxpbmsgaWYgdGhlIGNkIHN1Y2NlZWRzOyBwdXQgJHtlY2hvfSBpbiB0aGVyZSwgdG9vCisJLSB1c2UgJExOIGluc3RlYWQgb2YgYGxuIC1zJyBzbyBpdCB3b3JrcyBvbiBtYWNoaW5lcyB3aXRob3V0IHN5bWxpbmtzCisJLSBjaGFuZ2Ugc3BlY2lhbCBsaW51eCBzdGFuemEgdG8gdXNlIGNkIGJlZm9yZSBsbiBhbHNvCisJLSBjaGFuZ2UgdG8gdXNlICRJTlNUQUxMX0xJTksxIGFuZCAkSU5TVEFMTF9MSU5LMiBhcHByb3ByaWF0ZWx5CisJICBpbnN0ZWFkIG9mIGV4cGxpY2l0IGNvbW1hbmRzIGluIHZhcmlvdXMgc3RhbnphcworCisJCQkJICAgIDIvMQorCQkJCSAgICAtLS0KK2NvbmZpZy5oLmluCisJLSBhZGQgSEFWRV9NQlJUT1dDIGFuZCBIQVZFX01CUkxFTgorCS0gYWRkIE5PX01VTFRJQllURV9TVVBQT1JUIGZvciBuZXcgY29uZmlndXJlIGFyZ3VtZW50CisJLSBhZGQgU1REQ19IRUFERVJTCisKK2NvbmZpZ3VyZS5pbgorCS0gbmV3IGFyZ3VtZW50IC0tZW5hYmxlLW11bHRpYnl0ZSAoZW5hYmxlZCBieSBkZWZhdWx0KSwgYWxsb3dzCisJICBtdWx0aWJ5dGUgc3VwcG9ydCB0byBiZSB0dXJuZWQgb2ZmIGV2ZW4gb24gc3lzdGVtcyB0aGF0IHN1cHBvcnQgaXQKKwktIGFkZCBjaGVjayBmb3IgYW5zaSBzdGRjIGhlYWRlcnMgd2l0aCBjYWxsIHRvIEFDX0hFQURFUl9TVERDCisKKwkJCQkgICAgMi8zCisJCQkJICAgIC0tLQorY29uZmlndXJlLmluCisJLSBhZGQgY2FsbCB0byBCQVNIX0ZVTkNfQ1RZUEVfTk9OQVNDSUkKKworY29uZmlnLmguaW4KKwktIGFkZCBDVFlQRV9OT05fQVNDSUkKKworCQkJCSAgIDIvMjAKKwkJCQkgICAtLS0tCisKK2RvYy9tYW52ZXJzLnRleGluZm8KKyAgICAgICAgLSByZW5hbWVkIHRvIHZlcnNpb24udGV4aSB0byBtYXRjaCBvdGhlciBHTlUgc29mdHdhcmUKKyAgICAgICAgLSBVUERBVEUtTU9OVEggdmFyaWFibGUgaXMgbm93IGBVUERBVEVELU1PTlRIJworICAgICAgICAKK2RvYy97aGlzdCxybG1hbixybHVzZXJtYW59LnRleGluZm8KKyAgICAgICAgLSBpbmNsdWRlIHZlcnNpb24udGV4aQorICAgICAgICAKK2RvYy97cmx0ZWNoLHJsdXNlcixoc3RlY2gsaHN1c2VyfS50ZXhpCisJLSBjaGFuZ2VkIHRoZSBzdWZmaXggZnJvbSBgdGV4aW5mbycgdG8gYHRleGknCisKK2RvYy9NYWtlZmlsZS5pbgorCS0gbWFkZSBhcHByb3ByaWF0ZSBjaGFuZ2VzIGZvciB7e3JsLGhzfXRlY2gse3JsLGhzfXVzZXJ9LnRleGkKKworZG9jL3tybG1hbixybHVzZXJtYW59LnRleGluZm8KKwktIGNoYW5nZWQgdGhlIHN1ZmZpeCBmcm9tIGB0ZXhpbmZvJyB0byBgdGV4aScKKworZG9jL2hpc3QudGV4aW5mbworCS0gcmVuYW1lZCB0byBoaXN0b3J5LnRleGkgdG8gYmUgbW9yZSBjb25zaXN0ZW50CisKKwkJCQkgICA2LzExCisJCQkJICAgLS0tLQorc2hsaWIvTWFrZWZpbGUuaW4KKwktIGhhdmUgY29uZmlndXJlIHN1YnN0aXR1dGUgdmFsdWUgb2YgYEBMREZMQUdTQCcgaW50byB0aGUgYXNzaWdubWVudAorCSAgdG8gU0hMSUJfWExERkxBR1MKKworCQkJCSAgIDYvMTYKKwkJCQkgICAtLS0tCitjb25maWd1cmUuaW4KKwktIHJlYWRsaW5lIGFuZCBoaXN0b3J5IGxpYnJhcmllcyBhcmUgbm93IGF0IHZlcnNpb24gNS4wCisKKwkJCQkgICA4LzE4CisJCQkJICAgLS0tLQorc3VwcG9ydC9zaGxpYi1pbnN0YWxsCisJLSBzdXBwb3J0IGZvciBGcmVlQlNELWdudSAoZnJvbSBSb2JlcnQgTWlsbGFuKQorCisJCQkJICAgMTIvNAorCQkJCSAgIC0tLS0KK01ha2VmaWxlLmluCisJLSBhZGQgdmFyaWFibGVzIGZvciBsb2NhbGVkaXIgYW5kIHRoZSBQQUNLQUdFXyogdmFyaWFibGVzLCBhdXRvLXNldAorCSAgYnkgY29uZmlndXJlCisKKwkJCQkgICAxMi85CisJCQkJICAgLS0tLQorTWFrZWZpbGUuaW4KKwktIHVzZSBta2luc3RhbGxkaXJzIGluc3RlYWQgb2YgbWtkaXJzCisKKwkJCQkgICA0LzIyCisJCQkJICAgLS0tLQorTWFrZWZpbGUuaW4KKwktIHNlcGFyYXRlIGRvYyBpbnN0YWxsL3VuaW5zdGFsbCBvdXQgaW50byB0d28gbmV3IHRhcmdldHM6CisJICBpbnN0YWxsLWRvYyBhbmQgdW5pbnN0YWxsLWRvYworCS0gbWFrZSBpbnN0YWxsLWRvYyBhbmQgdW5pbnN0YWxsLWRvYyBwcmVyZXF1aXNpdGVzIG9mIGFwcHJvcHJpYXRlCisJICBpbnN0YWxsIGFuZCB1bmluc3RhbGwgdGFyZ2V0cworCitleGFtcGxlcy9ybC1mZ2V0cy5jCisJLSBuZXcgZXhhbXBsZSBmcm9tIEhhcm9sZCBMZXZ5IHRoYXQgd3JhcHMgZmdldHMgcmVwbGFjZW1lbnQgZnVuY3Rpb25zCisJICB0aGF0IGNhbGwgcmVhZGxpbmUgaW4gYSBzaGFyZWQgbGlicmFyeSB0aGF0IGNhbiBiZSBpbnRlcnBvc2VkIHdpdGgKKwkgIExEX1BSRUxPQUQKKworCQkJCSAgIDcvMjcKKwkJCQkgICAtLS0tCitbcmVhZGxpbmUtNS4wIHJlbGVhc2VkXQorCisJCQkJICAgMTEvMTUKKwkJCQkgICAtLS0tLQorZXhhbXBsZXMvcmxmZS97Q2hhbmdlTG9nLE1ha2VmaWxlLmluLFJFQURNRSxjb25maWcuaC5pbixjb25maWd1cmUsY29uZmlndXJlLmluLGV4dGVybi5oLG9zLmgscHR5LmMscmxmZS5jLHNjcmVlbi5ofQorCS0gbmV3IHZlcnNpb24gb2YgcmxmZSwgcmxmZS0wLjQsIGZyb20gUGVyIEJvdGhuZXI7IG5vdyBhIHN0YW5kYWxvbmUKKwkgIGFwcGxpY2F0aW9uCisKKwkJCQkgICAxMS8xNgorCQkJCSAgIC0tLS0tCitzaGxpYi9NYWtlZmlsZS5pbgorCS0gc3Vic3RpdHV0ZSBURVJNQ0FQX0xJQiBpbiBmcm9tIGNvbmZpZ3VyZQorCitjb25maWd1cmUuaW4KKwktIGlmIFNITElCX0xJQlMgZG9lc24ndCBpbmNsdWRlIGEgdGVybWNhcCBsaWJyYXJ5IChjdXJzZXMsIG5jdXJzZXMsCisJICB0ZXJtY2FwLCB0ZXJtbGliKSwgYXBwZW5kIHRoZSB2YWx1ZSBvZiAkVEVSTUNBUF9MSUIgdG8gaXQKKworCQkJCSAgIDExLzMwCisJCQkJICAgLS0tLS0KK2NvbmZpZ3VyZS5pbgorCS0gdGFrZSBvdXQgY2hhbmdlIGZyb20gMTEvMTY7IGl0IGRvZXNuJ3Qgd29yayBmb3Igc29tZSBzeXN0ZW1zIChlLmcuLAorCSAgU3VuT1MgNC54IGFuZCBTb2xhcmlzIDIuNikKKwktIGFkZCBzdXBwb3J0IGZvciAtLWVuYWJsZS1wdXJpZnkgY29uZmlndXJlIGFyZ3VtZW50CisJLSBwYXNzIFRFUk1DQVBfTElCIGluIGVudmlyb25tZW50IHdoZW4gY2FsbGluZyBzaG9iai1jb25mCisKK2V4YW1wbGVzL01ha2VmaWxlLmluIAorCS0gYWRkIHN1cHBvcnQgZm9yIGJ1aWxkaW5nIGV4YW1wbGVzIHdpdGggcHVyaWZ5CisKKwkJCQkgMS8yMy8yMDA1CisJCQkJIC0tLS0tLS0tLQorY29uZmlndXJlLmluCisgICAgICAgIC0gc2V0IEJVSUxEX0RJUiB0byBjb250YWluIGJhY2tzbGFzaGVzIHRvIGVzY2FwZSBhbnkgc3BhY2VzIGluIHRoZQorICAgICAgICAgIGRpcmVjdG9yeSBuYW1lIC0tIHRoaXMgaXMgd2hhdCBtYWtlIHdpbGwgYWNjZXB0IGluIHRhcmdldHMgYW5kCisgICAgICAgICAgcHJlcmVxdWlzaXRlcywgc28gaXQncyBiZXR0ZXIgdGhhbiB0cnlpbmcgdG8gdXNlIGRvdWJsZSBxdW90ZXMKKworCQkJCSAgIDIvMjUKKwkJCQkgICAtLS0tCitjb25maWd1cmUuaW4KKwktIGNoYW5nZSBjaGVjayBmb3Igc3lzL3B0ZW0uaCB0byBpbmNsdWRlIHN5cy9zdHJlYW0uaCBpZiBwcmVzZW50LCB0bworCSAgYXZvaWQgdGhlIGBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQnIG1lc3NhZ2VzIG9uIFNvbGFyaXMgYW5kCisJICBTVlI0LjIgKGRvZXMgYW55b25lIHN0aWxsIHVzZSBTVlI0LjI/KQorCisJCQkJICAgIDUvNworCQkJCSAgICAtLS0KK2NvbmZpZ3VyZS5pbgorCS0gYWRkIGNyb3NzLWNvbXBpbGluZyBzdXBwb3J0IGZyb20gdGhlIGJhc2ggY29uZmlndXJlLmluLCB3aGljaCBjeWd3aW4KKwkgIGFuZCBtaW5ndyBoYXZlIGFwcGFyZW50bHkgYWRvcHRlZAorCS0gYWRkIGNoZWNrIGZvciBwd2QuaCwgZmNudGwuaAorCS0gYWRkIGNoZWNrcyBmb3IgZmNudGwsIGtpbGwgc3lzdGVtIGNhbGxzCisJLSBhZGQgY2hlY2tzIGZvciBnZXRwd3tlbnQsbmFtLHVpZH0gQyBsaWJyYXJ5IGZ1bmN0aW9ucworCS0gcGFzcyBhIGNvbXBpbGUtdGltZSBvcHRpb24gdGhyb3VnaCB0byBNYWtlZmlsZXMgaWYgY3Jvc3MtY29tcGlsaW5nCisKK2NvbmZpZy5oLmluCisJLSBhZGQgSEFWRV9QV0RfSCBmb3IgPHB3ZC5oPiwgSEFWRV9GQ05UTF9IIGZvciA8ZmNudGwuaD4KKwktIGFkZCBIQVZFX0ZDTlRMLCBIQVZFX0tJTEwgZm9yIHJlc3BlY3RpdmUgc3lzdGVtIGNhbGxzCisJLSBhZGQgSEFWRV9HRVRQV3tFTlQsTkFNLFVJRH0gZm9yIHBhc3N3ZCBmdW5jdGlvbnMKKworTWFrZWZpbGUuaW4sc2hsaWIvTWFrZWZpbGUuaW4KKyAgICAgICAgLSBAQ1JPU1NfQ09NUElMRUAgaXMgc3Vic3RpdHV0ZWQgaW50byBERUZTIChlcXVhbCB0byAtRENST1NTX0NPTVBJTElORworCSAgaWYgYmFzaCBpcyBiZWluZyBjcm9zcy1jb21waWxlZCkKKworCQkJCSAgICA4LzIKKwkJCQkgICAgLS0tCitleGFtcGxlcy9NYWtlZmlsZS5pbgorCS0gdXNlICQoUkVBRExJTkVfTElCKSBpbnN0ZWFkIG9mIC1scmVhZGxpbmUgdG8gZ2V0IGFyb3VuZCBNYWNPUyBYIDEwLjQncworCSAgcHJlZmVyZW5jZSBmb3IgKGluY29tcGF0aWJsZSkgc2hhcmVkIGxpYnJhcmllcyBvdmVyIHN0YXRpYyBsaWJyYXJpZXMKKwkgIGluIHRoZSBsb2FkIHBhdGgKKworCQkJCSAgIDgvMTEKKwkJCQkgICAtLS0tCitzdXBwb3J0L3Nob2JqLWNvbmYKKwktIG5ldyB2YXJpYWJsZTogU0hMSUJfTElCUFJFRiwgcHJlZml4IGZvciBzaGFyZWQgbGlicmFyeSBuYW1lIChkZWZhdWx0cworCSAgdG8gYGxpYicKKwktIG5ldyB2YXJpYWJsZTogU0hMSUJfRExMVkVSU0lPTiwgdXNlZCBvbiBDeWd3aW4gdG8gc2V0IHRoZSBsaWJyYXJ5CisJICB2ZXJzaW9uIG51bWJlcgorCS0gbmV3IHZhcmlhYmxlOiBTSExJQl9ET1QsIHNlcGFyYXRvciBjaGFyYWN0ZXIgYmV0d2VlbiBsaWJyYXJ5IG5hbWUgYW5kCisJICBzdWZmaXggYW5kIHZlcnNpb24gaW5mb3JtYXRpb24gKGRlZmF1bHRzIHRvIGAuJykKKwktIG5ldyBzdGFuemEgZm9yIGN5Z3dpbiB0byBnZW5lcmF0ZSB3aW5kb3dzLWNvbXBhdGlibGUgZGxsCisKK3N1cHBvcnQvc2hsaWItaW5zdGFsbAorCS0gYWRkIG5ldyBvcHRpb24gYC1iIGJpbmRpcicgZm9yIHN5c3RlbXMgbGlrZSBjeWd3aW4vd2luZG93cyB0aGF0CisJICByZXF1aXJlIGl0CisJLSBuZXcgc3RhbnphIGZvciBjeWd3aW4gdGhhdCBpbnN0YWxscyBhIGRsbCBpbnRvICRiaW5kaXIgYW5kIGFuIGltcGxpZWQKKwkgIGxpbmsgbGlicmFyeSBpbnRvICRsaWJkaXIKKworY29uZmlndXJlLmluCisJLSBzdWJzdGl0dXRlIG5ldyB2YXJpYWJsZXMgZnJvbSBzaG9iai1jb25mCisKK3NobGliL01ha2VmaWxlLmluCisJLSBzdWJzdGl0dXRlIGJpbmRpciwgU0hMSUJfRE9ULCBTSExJQl9MSUJQUkVGLCBTSExJQl9ETExWRVJTSU9OIGZyb20KKwkgIGNvbmZpZ3VyZQorCS0gcGFzcyBgLWIgJChiaW5kaXIpJyB0byBzaGxpYi1pbnN0YWxsIGZvciBpbnN0YWxsIGFuZCB1bmluc3RhbGwgdGFyZ2V0cworCS0gbGlicmFyeSBuYW1lcyBub3cgdXNlICRTSExJQl9MSUJQUkVGIGFuZCAkU0hMSUJfRE9UCisKK0lOU1RBTEwsUkVBRE1FCisJLSBkb2N1bWVudCBuZXcgU0hMSUJfRE9ULCBTSExJQl9MSUJQUkVGLCBhbmQgU0hMSUJfRExMVkVSU0lPTiB2YXJpYWJsZXMKKworCQkJCSAgIDEwLzQKKwkJCQkgICAtLS0tCitbcmVhZGxpbmUtNS4xLWJldGExIGZyb3plbl0KKworCQkJCSAgIDEyLzEKKwkJCQkgICAtLS0tCitjb25maWd1cmUuaW4KKwktIGNoYW5nZWQgcmVsZWFzZSBzdGF0dXMgdG8gYHJlbGVhc2UnCisKK1tyZWFkbGluZS01LjEgZnJvemVuXQpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvQ0hBTkdFUyBiL3JlYWRsaW5lL0NIQU5HRVMKaW5kZXggYmM5ZmU5NC4uMWJhMGMxMiAxMDA2NDQKLS0tIGEvcmVhZGxpbmUvQ0hBTkdFUworKysgYi9yZWFkbGluZS9DSEFOR0VTCkBAIC0xLDMgKzEsMzEyIEBACitUaGlzIGRvY3VtZW50IGRldGFpbHMgdGhlIGNoYW5nZXMgYmV0d2VlbiB0aGlzIHZlcnNpb24sIHJlYWRsaW5lLTUuMSwKK2FuZCB0aGUgcHJldmlvdXMgdmVyc2lvbiwgcmVhZGxpbmUtNS4wLgorCisxLiAgQ2hhbmdlcyB0byBSZWFkbGluZQorCithLiAgRml4ZWQgYSBidWcgdGhhdCBjYXVzZWQgbXVsdGlsaWluZSBwcm9tcHRzIHRvIGJlIHdyYXBwZWQgYW5kIGRpc3BsYXllZAorICAgIGluY29ycmVjdGx5LgorCitiLiAgRml4ZWQgYSBidWcgdGhhdCBjYXVzZWQgXlAvXk4gaW4gZW1hY3MgbW9kZSB0byBmYWlsIHRvIGRpc3BsYXkgdGhlIGN1cnJlbnQKKyAgICBsaW5lIGNvcnJlY3RseS4KKworYy4gIEZpeGVkIGEgcHJvYmxlbSBpbiBjb21wdXRpbmcgdGhlIG51bWJlciBvZiBpbnZpc2libGUgY2hhcmFjdGVycyBvbiB0aGUgZmlyc3QKKyAgICBsaW5lIG9mIGEgcHJvbXB0IHdob3NlIGxlbmd0aCBleGNlZWRzIHRoZSBzY3JlZW4gd2lkdGguCisKK2QuICBGaXhlZCB2aS1tb2RlIHNlYXJjaGluZyBzbyB0aGF0IGZhaWx1cmUgcHJlc2VydmVzIHRoZSBjdXJyZW50IGxpbmUgcmF0aGVyCisgICAgdGhhbiB0aGUgbGFzdCBsaW5lIGluIHRoZSBoaXN0b3J5IGxpc3QuCisKK2UuICBGaXhlZCB0aGUgdmktbW9kZSBgficgY29tbWFuZCAoY2hhbmdlLWNhc2UpIHRvIGhhdmUgdGhlIGNvcnJlY3QgYmVoYXZpb3IgYXQKKyAgICBlbmQtb2YtbGluZSB3aGVuIG1hbmlwdWxhdGluZyBtdWx0aWJ5dGUgY2hhcmFjdGVycy4KKworZi4gIEZpeGVkIHRoZSB2aS1tb2RlIGByJyBjb21tYW5kIChjaGFuZ2UtY2hhcikgdG8gaGF2ZSB0aGUgY29ycmVjdCBiZWhhdmlvciBhdAorICAgIGVuZC1vZi1saW5lIHdoZW4gbWFuaXB1bGF0aW5nIG11bHRpYnl0ZSBjaGFyYWN0ZXJzLgorCitnLiAgRml4ZWQgbXVsdGlwbGUgYnVncyBpbiB0aGUgcmVkaXNwbGF5IG9mIG11bHRpYnl0ZSBjaGFyYWN0ZXJzOiAgZGlzcGxheWluZworICAgIHByb21wdHMgbG9uZ2VyIHRoYW4gdGhlIHNjcmVlbiB3aWR0aCBjb250YWluaW5nIG11bHRpYnl0ZSBjaGFyYWN0ZXJzLAorCitoLiAgRml4IHRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgbnVtYmVyIG9mIHBoeXNpY2FsIGNoYXJhY3RlcnMgaW4gdGhlIHByb21wdAorICAgIHN0cmluZyB3aGVuIGl0IGNvbnRhaW5zIG11bHRpYnl0ZSBjaGFyYWN0ZXJzLgorCitpLiAgQSBub24temVybyB2YWx1ZSBmb3IgdGhlIGBybF9jb21wbGV0ZV9zdXBwcmVzc19hcHBlbmQnIHZhcmlhYmxlIG5vdyBjYXVzZXMKKyAgICBubyBgLycgdG8gYmUgYXBwZW5kZWQgdG8gYSBkaXJlY3RvcnkgbmFtZS4KKworai4gIEZpeGVkIGZvcndhcmQtd29yZCBhbmQgYmFja3dhcmQtd29yZCB0byB3b3JrIHdoZW4gd29yZHMgY29udGFpbmVkCisgICAgbXVsdGlieXRlIGNoYXJhY3RlcnMuCisKK2suICBGaXhlZCBhIGJ1ZyBpbiBmaW5kaW5nIHRoZSBkZWxpbWl0ZXIgb2YgYSBgPycgc3Vic3RyaW5nIHdoZW4gcGVyZm9ybWluZworICAgIGhpc3RvcnkgZXhwYW5zaW9uIGluIGEgbG9jYWxlIHRoYXQgc3VwcG9ydHMgbXVsdGlieXRlIGNoYXJhY3RlcnMuCisKK2wuICBGaXhlZCBhIG1lbW9yeSBsZWFrIGNhdXNlZCBieSBub3QgZnJlZWluZyB0aGUgdGltZXN0YW1wIGluIGEgaGlzdG9yeSBlbnRyeS4KKworbS4gIEZpeGVkIGEgYnVnIHRoYXQgY2F1c2VkICJcTS14IiBzdHlsZSBrZXkgYmluZGluZ3MgdG8gbm90IG9iZXkgdGhlIHNldHRpbmcKKyAgICBvZiB0aGUgYGNvbnZlcnQtbWV0YScgdmFyaWFibGUuCisKK24uICBGaXhlZCBzYXZpbmcgYW5kIHJlc3RvcmluZyBwcmltYXJ5IHByb21wdCB3aGVuIHByb21wdGluZyBmb3IgaW5jcmVtZW50YWwgICAKKyAgICBhbmQgbm9uLWluY3JlbWVudGFsIHNlYXJjaGVzOyBzZWFyY2ggcHJvbXB0cyBub3cgZGlzcGxheSBtdWx0aWJ5dGUKKyAgICBjaGFyYWN0ZXJzIGNvcnJlY3RseS4KKworby4gIEZpeGVkIGEgYnVnIHRoYXQgY2F1c2VkIGtleXMgb3JpZ2luYWxseSBib3VuZCB0byBzZWxmLWluc2VydCBidXQgc2hhZG93ZWQKKyAgICBieSBhIG11bHRpLWNoYXJhY3RlciBrZXkgc2VxdWVuY2UgdG8gbm90IGJlIGluc2VydGVkLgorCitwLiAgRml4ZWQgY29kZSBzbyBybF9wcmVwX3Rlcm1fZnVuY3Rpb24gYW5kIHJsX2RlcHJlcF90ZXJtX2Z1bmN0aW9uIGFyZW4ndAorICAgIGRlcmVmZXJlbmNlZCBpZiBOVUxMIChtYXRjaGluZyB0aGUgZG9jdW1lbnRhdGlvbikuCisKK3EuICBFeHRlbnNpdmUgY2hhbmdlcyB0byByZWFkbGluZSB0byBhZGQgZW5vdWdoIHN0YXRlIHNvIHRoYXQgY29tbWFuZHMKKyAgICByZXF1aXJpbmcgYWRkaXRpb25hbCBjaGFyYWN0ZXJzIChzZWFyY2hlcywgbXVsdGkta2V5IHNlcXVlbmNlcywgbnVtZXJpYworICAgIGFyZ3VtZW50cywgY29tbWFuZHMgcmVxdWlyaW5nIGFuIGFkZGl0aW9uYWwgc3BlY2lmaWVyIGNoYXJhY3RlciBsaWtlCisgICAgdmktbW9kZSBjaGFuZ2UtY2hhciwgZXRjLikgd29yayB3aXRob3V0IHN5bmNocm9ub3VzbHkgd2FpdGluZyBmb3IKKyAgICBhZGRpdGlvbmFsIGlucHV0LgorCityLiAgTG90cyBvZiBjaGFuZ2VzIHNvIHJlYWRsaW5lIGJ1aWxkcyBhbmQgcnVucyBvbiBNaW5HVy4KKworcy4gIFJlYWRsaW5lIG5vIGxvbmdlciB0cmllcyB0byBtb2RpZnkgdGhlIHRlcm1pbmFsIHNldHRpbmdzIHdoZW4gcnVubmluZyBpbgorICAgIGNhbGxiYWNrIG1vZGUuCisKK3QuICBUaGUgUmVhZGxpbmUgZGlzcGxheSBjb2RlIG5vIGxvbmdlciBzZXRzIHRoZSBsb2NhdGlvbiBvZiB0aGUgbGFzdCBpbnZpc2libGUKKyAgICBjaGFyYWN0ZXIgaW4gdGhlIHByb21wdCBpZiB0aGUgXFtcXSBzZXF1ZW5jZSBpcyBlbXB0eS4KKwordS4gIFRoZSBgY2hhbmdlLWNhc2UnIGNvbW1hbmQgbm93IGNvcnJlY3RseSBjaGFuZ2VzIHRoZSBjYXNlIG9mIG11bHRpYnl0ZQorICAgIGNoYXJhY3RlcnMuCisKK3YuICBDaGFuZ2VzIHRvIHRoZSBzaGFyZWQgbGlicmFyeSBjb25zdHJ1Y3Rpb24gc2NyaXB0cyB0byBkZWFsIHdpdGggV2luZG93cworICAgIERMTCBuYW1pbmcgY29udmVudGlvbnMgZm9yIEN5Z3dpbi4KKwordy4gIEZpeGVkIHRoZSByZWRpc3BsYXkgY29kZSB0byBhdm9pZCBjb3JlIGR1bXBzIHJlc3VsdGluZyBmcm9tIGEgcG9vcmx5LXRpbWVkCisgICAgU0lHV0lOQ0guCisKK3guICBGaXhlZCB0aGUgbm9uLWluY3JlbWVudGFsIHNlYXJjaCBjb2RlIGluIHZpIG1vZGUgdG8gZGlzcG9zZSBvZiBhbnkgY3VycmVudAorICAgIHVuZG8gbGlzdCB3aGVuIGNvcHlpbmcgYSBsaW5lIGZyb20gdGhlIGhpc3RvcnkgaW50byB0aGUgY3VycmVudCBlZGl0aW5nCisgICAgYnVmZmVyLgorCit5LiAgRml4ZWQgYSBidWcgdGhhdCBjYXVzZWQgcmV2ZXJzaW5nIHRoZSBpbmNyZW1lbnRhbCBzZWFyY2ggZGlyZWN0aW9uIHRvCisgICAgbm90IHdvcmsgY29ycmVjdGx5LiAgCisgICAgCit6LiAgRml4ZWQgdGhlIHZpLW1vZGUgYFUnIGNvbW1hbmQgdG8gb25seSB1bmRvIHVwIHRvIHRoZSBmaXJzdCB0aW1lIGluc2VydCBtb2RlCisgICAgd2FzIGVudGVyZWQsIGFzIFBvc2l4IHNwZWNpZmllcy4KKworYWEuIEZpeGVkIGEgYnVnIGluIHRoZSB2aS1tb2RlIGByJyBjb21tYW5kIHRoYXQgbGVmdCB0aGUgY3Vyc29yIGluIHRoZSB3cm9uZworICAgIHBsYWNlLgorCitiYi4gRml4ZWQgYSByZWRpc3BsYXkgYnVnIGNhdXNlZCBieSBtb3ZpbmcgdGhlIGN1cnNvciB2ZXJ0aWNhbGx5IHRvIGEgbGluZQorICAgIHdpdGggaW52aXNpYmxlIGNoYXJhY3RlcnMgaW4gdGhlIHByb21wdCBpbiBhIG11bHRpYnl0ZSBsb2NhbGUuCisKK2NjLiBGaXhlZCBhIGJ1ZyB0aGF0IGNvdWxkIGNhdXNlIHRoZSB0ZXJtaW5hbCBzcGVjaWFsIGNoYXJzIHRvIGJlIGJvdW5kIGluIHRoZQorICAgIHdyb25nIGtleW1hcCBpbiB2aSBtb2RlLgorCisyLiAgTmV3IEZlYXR1cmVzIGluIFJlYWRsaW5lCisKK2EuICBUaGUga2V5IHNlcXVlbmNlIHNlbnQgYnkgdGhlIGtleXBhZCBgZGVsZXRlJyBrZXkgaXMgbm93IGF1dG9tYXRpY2FsbHkgICAKKyAgICBib3VuZCB0byBkZWxldGUtY2hhci4KKworYi4gIEEgbmVnYXRpdmUgYXJndW1lbnQgdG8gbWVudS1jb21wbGV0ZSBub3cgY3ljbGVzIGJhY2t3YXJkIHRocm91Z2ggdGhlCisgICAgY29tcGxldGlvbiBsaXN0LgorCitjLiAgQSBuZXcgYmluZGFibGUgcmVhZGxpbmUgdmFyaWFibGU6ICBiaW5kLXR0eS1zcGVjaWFsLWNoYXJzLiAgSWYgbm9uLXplcm8sCisgICAgcmVhZGxpbmUgd2lsbCBiaW5kIHRoZSB0ZXJtaW5hbCBzcGVjaWFsIGNoYXJhY3RlcnMgdG8gdGhlaXIgcmVhZGxpbmUKKyAgICBlcXVpdmFsZW50cyB3aGVuIGl0J3MgY2FsbGVkIChvbiBieSBkZWZhdWx0KS4KKworZC4gIE5ldyBiaW5kYWJsZSBjb21tYW5kOiB2aS1ydWJvdXQuICBTYXZlcyBkZWxldGVkIHRleHQgZm9yIHBvc3NpYmxlICAKKyAgICByZWluc2VydGlvbiwgYXMgd2l0aCBhbnkgdmktbW9kZSBgdGV4dCBtb2RpZmljYXRpb24nIGNvbW1hbmQ7IGBYJyBpcyBib3VuZAorICAgIHRvIHRoaXMgaW4gdmkgY29tbWFuZCBtb2RlLgorCitlLiAgSWYgdGhlIHJsX2NvbXBsZXRpb25fcXVlcnlfaXRlbXMgaXMgc2V0IHRvIGEgdmFsdWUgPCAwLCByZWFkbGluZSBuZXZlcgorICAgIGFza3MgdGhlIHVzZXIgd2hldGhlciBvciBub3QgdG8gdmlldyB0aGUgcG9zc2libGUgY29tcGxldGlvbnMuCisKK2YuICBUaGUgYEMtdycgYmluZGluZyBpbiBpbmNyZW1lbnRhbCBzZWFyY2ggbm93IHVuZGVyc3RhbmRzIG11bHRpYnl0ZQorICAgIGNoYXJhY3RlcnMuCisKK2cuICBOZXcgYXBwbGljYXRpb24tY2FsbGFibGUgYXV4aWxpYXJ5IGZ1bmN0aW9uLCBybF92YXJpYWJsZV92YWx1ZSwgcmV0dXJucyAKKyAgICBhIHN0cmluZyBjb3JyZXNwb25kaW5nIHRvIGEgcmVhZGxpbmUgdmFyaWFibGUncyB2YWx1ZS4KKworaC4gIFdoZW4gcGFyc2luZyBpbnB1dHJjIGZpbGVzIGFuZCB2YXJpYWJsZSBiaW5kaW5nIGNvbW1hbmRzLCB0aGUgcGFyc2VyCisgICAgc3RyaXBzIHRyYWlsaW5nIHdoaXRlc3BhY2UgZnJvbSB2YWx1ZXMgYXNzaWduZWQgdG8gYm9vbGVhbiB2YXJpYWJsZXMKKyAgICBiZWZvcmUgY2hlY2tpbmcgdGhlbS4KKworaS4gIEEgbmV3IGV4dGVybmFsIGFwcGxpY2F0aW9uLWNvbnRyb2xsYWJsZSB2YXJpYWJsZSB0aGF0IGFsbG93cyB0aGUgTElORVMgICAKKyAgICBhbmQgQ09MVU1OUyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gc2V0IHRoZSB3aW5kb3cgc2l6ZSByZWdhcmRsZXNzIG9mCisgICAgd2hhdCB0aGUga2VybmVsIHJldHVybnMuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1RoaXMgZG9jdW1lbnQgZGV0YWlscyB0aGUgY2hhbmdlcyBiZXR3ZWVuIHRoaXMgdmVyc2lvbiwgcmVhZGxpbmUtNS4wLAorYW5kIHRoZSBwcmV2aW91cyB2ZXJzaW9uLCByZWFkbGluZS00LjMuCisKKzEuICBDaGFuZ2VzIHRvIFJlYWRsaW5lCisKK2EuICBGaXhlcyB0byBhdm9pZCBjb3JlIGR1bXBzIGJlY2F1c2Ugb2YgbnVsbCBwb2ludGVyIHJlZmVyZW5jZXMgaW4gdGhlCisgICAgbXVsdGlieXRlIGNoYXJhY3RlciBjb2RlLgorCitiLiAgRml4IHRvIGF2b2lkIGluZmluaXRlIHJlY3Vyc2lvbiBjYXVzZWQgYnkgY2VydGFpbiBrZXkgY29tYmluYXRpb25zLgorCitjLiAgRml4ZWQgYSBidWcgdGhhdCBjYXVzZWQgdGhlIHZpLW1vZGUgYGxhc3QgY29tbWFuZCcgdG8gYmUgc2V0IGluY29ycmVjdGx5LgorCitkLiAgUmVhZGxpbmUgbm8gbG9uZ2VyIHRyaWVzIHRvIHJlYWQgYWhlYWQgbW9yZSB0aGFuIG9uZSBsaW5lIG9mIGlucHV0LCBldmVuCisgICAgd2hlbiBtb3JlIGlzIGF2YWlsYWJsZS4KKworZS4gIEZpeGVkIHRoZSBjb2RlIHRoYXQgYWRqdXN0cyB0aGUgcG9pbnQgdG8gbm90IG1pc2hhbmRsZSBudWxsIHdpZGUKKyAgICBjaGFyYWN0ZXJzLgorCitmLiAgRml4ZWQgYSBidWcgaW4gdGhlIGhpc3RvcnkgZXhwYW5zaW9uIGBnJyBtb2RpZmllciB0aGF0IGNhdXNlZCBpdCB0byBza2lwCisgICAgZXZlcnkgb3RoZXIgbWF0Y2guCisKK2cuICBGaXhlZCBhIGJ1ZyB0aGF0IGNhdXNlZCB0aGUgcHJvbXB0IHRvIG92ZXJ3cml0ZSBwcmV2aW91cyBvdXRwdXQgd2hlbiB0aGUKKyAgICBvdXRwdXQgZG9lc24ndCBjb250YWluIGEgbmV3bGluZSBhbmQgdGhlIGxvY2FsZSBzdXBwb3J0cyBtdWx0aWJ5dGUKKyAgICBjaGFyYWN0ZXJzLiAgVGhpcyBzYW1lIGNoYW5nZSBmaXhlcyB0aGUgcHJvYmxlbSBvZiByZWFkbGluZSByZWRpc3BsYXkKKyAgICBzbG93aW5nIGRvd24gZHJhbWF0aWNhbGx5IGFzIHRoZSBsaW5lIGdldHMgbG9uZ2VyIGluIG11bHRpYnl0ZSBsb2NhbGVzLgorCitoLiAgSGlzdG9yeSB0cmF2ZXJzYWwgd2l0aCBhcnJvdyBrZXlzIGluIHZpIGluc2VydGlvbiBtb2RlIGNhdXNlcyB0aGUgY3Vyc29yCisgICAgdG8gYmUgcGxhY2VkIGF0IHRoZSBlbmQgb2YgdGhlIG5ldyBsaW5lLCBsaWtlIGluIGVtYWNzIG1vZGUuCisKK2kuICBUaGUgbG9jYWxlIGluaXRpYWxpemF0aW9uIGNvZGUgZG9lcyBhIGJldHRlciBqb2Igb2YgdXNpbmcgdGhlIHJpZ2h0CisgICAgcHJlY2VkZW5jZSBhbmQgZGVmYXVsdGluZyB3aGVuIGNoZWNraW5nIHRoZSBhcHByb3ByaWF0ZSBlbnZpcm9ubWVudAorICAgIHZhcmlhYmxlcy4KKworai4gIEZpeGVkIHRoZSBoaXN0b3J5IHdvcmQgdG9rZW5pemVyIHRvIGhhbmRsZSA8KCBhbmQgPiggYmV0dGVyIHdoZW4gdXNlZCBhcworICAgIHBhcnQgb2YgYmFzaC4KKworay4gIFRoZSBvdmVyd3JpdGUgbW9kZSBjb2RlIHJlY2VpdmVkIHNldmVyYWwgYnVnIGZpeGVzIHRvIGltcHJvdmUgdW5kby4KKworbC4gIE1hbnkgc3BlZWR1cHMgdG8gdGhlIG11bHRpYnl0ZSBjaGFyYWN0ZXIgcmVkaXNwbGF5IGNvZGUuCisKK20uICBUaGUgY2FsbGJhY2sgY2hhcmFjdGVyIHJlYWRpbmcgaW50ZXJmYWNlIHNob3VsZCBub3QgaGFuZyB3YWl0aW5nIHRvIHJlYWQKKyAgICBrZXlib2FyZCBpbnB1dC4KKworbi4gIEZpeGVkIGEgYnVnIHdpdGggcmVkb2luZyB2aS1tb2RlIGBzJyBjb21tYW5kLgorCitvLiAgVGhlIGNvZGUgdGhhdCBpbml0aWFsaXplcyB0aGUgdGVybWluYWwgdHJhY2tzIGNoYW5nZXMgbWFkZSB0byB0aGUgdGVybWluYWwKKyAgICBzcGVjaWFsIGNoYXJhY3RlcnMgd2l0aCBzdHR5KDEpIChvciBlcXVpdmFsZW50KSwgc28gdGhhdCB0aGVzZSBjaGFuZ2VzCisgICAgYXJlIHJlZmxlY3RlZCBpbiB0aGUgcmVhZGxpbmUgYmluZGluZ3MuICBOZXcgYXBwbGljYXRpb24tY2FsbGFibGUgZnVuY3Rpb24KKyAgICB0byBtYWtlIGl0IHdvcms6ICBybF90dHlfdW5zZXRfZGVmYXVsdF9iaW5kaW5ncygpLgorCitwLiAgRml4ZWQgYSBidWcgdGhhdCBjb3VsZCBjYXVzZSBnYXJiYWdlIHRvIGJlIGluc2VydGVkIGluIHRoZSBidWZmZXIgd2hlbgorICAgIGNoYW5naW5nIGNoYXJhY3RlciBjYXNlIGluIHZpIG1vZGUgd2hlbiB1c2luZyBhIG11bHRpYnl0ZSBsb2NhbGUuCisKK3EuICBGaXhlZCBhIGJ1ZyBpbiB0aGUgcmVkaXNwbGF5IGNvZGUgdGhhdCBjYXVzZWQgcHJvYmxlbXMgb24gc3lzdGVtcworICAgIHN1cHBvcnRpbmcgbXVsdGlieXRlIGNoYXJhY3RlcnMgd2hlbiBtb3ZpbmcgYmV0d2VlbiBoaXN0b3J5IGxpbmVzIHdoZW4gdGhlCisgICAgbmV3IGxpbmUgaGFzIG1vcmUgZ2x5cGhzIGJ1dCBmZXdlciBieXRlcy4KKworci4gIFVuZG8gYW5kIHJlZG8gbm93IHdvcmsgYmV0dGVyIGFmdGVyIGV4aXRpbmcgdmkgaW5zZXJ0aW9uIG1vZGUuCisKK3MuICBNYWtlIHN1cmUgc3lzdGVtIGNhbGxzIGFyZSByZXN0YXJ0ZWQgYWZ0ZXIgYSBTSUdXSU5DSCBpcyByZWNlaXZlZCB1c2luZworICAgIFNBX1JFU1RBUlQuCisKK3QuICBJbXByb3ZlbWVudHMgdG8gdGhlIGNvZGUgdGhhdCBkaXNwbGF5cyBwb3NzaWJsZSBjb21wbGV0aW9ucyB3aGVuIHVzaW5nCisgICAgbXVsdGlieXRlIGNoYXJhY3RlcnMuCisKK3UuICBGaXhlZCBhIHByb2JsZW0gd2hlbiBwYXJzaW5nIG5lc3RlZCBpZiBzdGF0ZW1lbnRzIGluIGlucHV0cmMgZmlsZXMuCisKK3YuICBUaGUgY29tcGxldGVyIG5vdyB0YWtlcyBtdWx0aWJ5dGUgY2hhcmFjdGVycyBpbnRvIGFjY291bnQgd2hlbiBsb29raW5nIGZvcgorICAgIHF1b3RlZCBzdWJzdHJpbmdzIG9uIHdoaWNoIHRvIHBlcmZvcm0gY29tcGxldGlvbi4KKwordy4gIFRoZSBoaXN0b3J5IHNlYXJjaCBmdW5jdGlvbnMgbm93IHBlcmZvcm0gYmV0dGVyIGJvdW5kcyBjaGVja2luZyBvbiB0aGUKKyAgICBoaXN0b3J5IGxpc3QuCisKK3guICBDaGFuZ2UgdG8gaGlzdG9yeSBleHBhbnNpb24gZnVuY3Rpb25zIHRvIHRyZWF0IGBeJyBhcyBlcXVpdmFsZW50IHRvIHdvcmQgCisgICAgb25lLCBhcyB0aGUgZG9jdW1lbnRpb24gc3RhdGVzLgorCit5LiAgU29tZSBjaGFuZ2VzIHRvIHRoZSBkaXNwbGF5IGNvZGUgdG8gaW1wcm92ZSBkaXNwbGF5IGFuZCByZWRpc3BsYXkgb2YKKyAgICBtdWx0aWJ5dGUgY2hhcmFjdGVycy4KKworei4gIENoYW5nZXMgdG8gc3BlZWQgdXAgdGhlIG11bHRpYnl0ZSBjaGFyYWN0ZXIgcmVkaXNwbGF5IGNvZGUuCisKK2FhLiBGaXhlZCBhIGJ1ZyBpbiB0aGUgdmktbW9kZSBgRScgY29tbWFuZCB0aGF0IGNhdXNlZCBpdCB0byBza2lwIG92ZXIgdGhlCisgICAgbGFzdCBjaGFyYWN0ZXIgb2YgYSB3b3JkIGlmIGludm9rZWQgd2hpbGUgcG9pbnQgd2FzIG9uIHRoZSB3b3JkJ3MKKyAgICBuZXh0LXRvLWxhc3QgY2hhcmFjdGVyLgorCitiYi4gRml4ZWQgYSBidWcgdGhhdCBjb3VsZCBjYXVzZSBpbmNvcnJlY3QgZmlsZW5hbWUgcXVvdGluZyB3aGVuCisgICAgY2FzZS1pbnNlbnNpdGl2ZSBjb21wbGV0aW9uIHdhcyBlbmFibGVkIGFuZCB0aGUgd29yZCBiZWluZyBjb21wbGV0ZWQKKyAgICBjb250YWluZWQgYmFja3NsYXNoZXMgcXVvdGluZyB3b3JkIGJyZWFrIGNoYXJhY3RlcnMuCisKK2NjLiBGaXhlZCBhIGJ1ZyBpbiByZWRpc3BsYXkgdHJpZ2dlcmVkIHdoZW4gdGhlIHByb21wdCBzdHJpbmcgY29udGFpbnMKKyAgICBpbnZpc2libGUgY2hhcmFjdGVycy4KKworZGQuIEZpeGVkIHNvbWUgZGlzcGxheSAoYW5kIG90aGVyKSBidWdzIGVuY291bnRlcmVkIGluIG11bHRpYnl0ZSBsb2NhbGVzCisgICAgd2hlbiBhIG5vbi1hc2NpaSBjaGFyYWN0ZXIgd2FzIHRoZSBsYXN0IGNoYXJhY3RlciBvbiBhIGxpbmUuCisKK2VlLiBGaXhlZCBzb21lIGRpc3BsYXkgYnVncyBjYXVzZWQgYnkgbXVsdGlieXRlIGNoYXJhY3RlcnMgaW4gcHJvbXB0IHN0cmluZ3MuCisKK2ZmLiBGaXhlZCBhIHByb2JsZW0gd2l0aCBoaXN0b3J5IGV4cGFuc2lvbiBjYXVzZWQgYnkgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVycworICAgIHVzZWQgYXMgaGlzdG9yeSB3b3JkIGRlbGltaXRlcnMuCisKK2dnLiBGaXhlZCBhIHByb2JsZW0gdGhhdCBjb3VsZCBjYXVzZSByZWFkbGluZSB0byByZWZlciB0byBmcmVlZCBtZW1vcnkgd2hlbgorICAgIG1vdmluZyBiZXR3ZWVuIGhpc3RvcnkgbGluZXMgd2hpbGUgZG9pbmcgc2VhcmNoZXMuCisKK2hoLiBJbXByb3ZlbWVudHMgdG8gdGhlIGNvZGUgdGhhdCBleHBhbmRzIGFuZCBkaXNwbGF5cyBwcm9tcHQgc3RyaW5ncworICAgIGNvbnRhaW5pbmcgbXVsdGlieXRlIGNoYXJhY3RlcnMuCisKK2lpLiBGaXhlZCBhIHByb2JsZW0gd2l0aCB2aS1tb2RlIG5vdCBjb3JyZWN0bHkgcmVtZW1iZXJpbmcgdGhlIG51bWVyaWMgYXJndW1lbnQKKyAgICB0byB0aGUgbGFzdCBgYydoYW5nZSBjb21tYW5kIGZvciBsYXRlciB1c2Ugd2l0aCBgLicuCisKK2pqLiBGaXhlZCBhIGJ1ZyBpbiB2aS1tb2RlIHRoYXQgY2F1c2VkIG11bHRpLWRpZ2l0IGNvdW50IGFyZ3VtZW50cyB0byB3b3JrICAgCisgICAgaW5jb3JyZWN0bHkuCisKK2trLiBGaXhlZCBhIHByb2JsZW0gaW4gdmktbW9kZSB0aGF0IGNhdXNlZCB0aGUgbGFzdCB0ZXh0IG1vZGlmaWNhdGlvbiBjb21tYW5kCisgICAgdG8gbm90IGJlIHJlbWVtYmVyZWQgYWNyb3NzIGRpZmZlcmVudCBjb21tYW5kIGxpbmVzLgorCitsbC4gRml4ZWQgcHJvYmxlbXMgd2l0aCBjaGFuZ2luZyBjaGFyYWN0ZXJzIGFuZCBjaGFuZ2luZyBjYXNlIGF0IHRoZSBlbmQgb2YKKyAgICB0aGUgbGluZS4KKworbW0uIEZpeGVkIGEgcHJvYmxlbSB3aXRoIHJlYWRsaW5lIHNhdmluZyB0aGUgY29udGVudHMgb2YgdGhlIGN1cnJlbnQgbGluZQorICAgIGJlZm9yZSBiZWdpbm5pbmcgYSBub24taW50ZXJhY3RpdmUgc2VhcmNoLgorCitubi4gRml4ZWQgYSBwcm9ibGVtIHdpdGggRU9GIGRldGVjdGlvbiB3aGVuIHVzaW5nIHJsX2V2ZW50X2hvb2suCisKK29vLiBGaXhlZCBhIHByb2JsZW0gd2l0aCB0aGUgdmkgbW9kZSBgcCcgYW5kIGBQJyBjb21tYW5kcyBpZ25vcmluZyBudW1lcmljCisgICAgYXJndW1lbnRzLgorCisyLiAgTmV3IEZlYXR1cmVzIGluIFJlYWRsaW5lCisKK2EuICBIaXN0b3J5IGV4cGFuc2lvbiBoYXMgYSBuZXcgYGEnIG1vZGlmaWVyIGVxdWl2YWxlbnQgdG8gdGhlIGBnJyBtb2RpZmllcgorICAgIGZvciBjb21wYXRpYmlsaXR5IHdpdGggdGhlIEJTRCBjc2guCisKK2IuICBIaXN0b3J5IGV4cGFuc2lvbiBoYXMgYSBuZXcgYEcnIG1vZGlmaWVyIGVxdWl2YWxlbnQgdG8gdGhlIEJTRCBjc2ggYGcnCisgICAgbW9kaWZpZXIsIHdoaWNoIHBlcmZvcm1zIGEgc3Vic3RpdHV0aW9uIG9uY2UgcGVyIHdvcmQuCisKK2MuICBBbGwgbm9uLWluY3JlbWVudGFsIHNlYXJjaCBvcGVyYXRpb25zIG1heSBub3cgdW5kbyB0aGUgb3BlcmF0aW9uIG9mCisgICAgcmVwbGFjaW5nIHRoZSBjdXJyZW50IGxpbmUgd2l0aCB0aGUgaGlzdG9yeSBsaW5lLgorCitkLiAgVGhlIHRleHQgaW5zZXJ0ZWQgYnkgYW4gYGEnIGNvbW1hbmQgaW4gdmkgbW9kZSBjYW4gYmUgcmVpbnNlcnRlZCB3aXRoCisgICAgYC4nLgorCitlLiAgTmV3IGJpbmRhYmxlIHZhcmlhYmxlLCBgc2hvdy1hbGwtaWYtdW5tb2RpZmllZCcuICBJZiBzZXQsIHRoZSByZWFkbGluZQorICAgIGNvbXBsZXRlciB3aWxsIGxpc3QgcG9zc2libGUgY29tcGxldGlvbnMgaW1tZWRpYXRlbHkgaWYgdGhlcmUgaXMgbW9yZQorICAgIHRoYW4gb25lIGNvbXBsZXRpb24gYW5kIHBhcnRpYWwgY29tcGxldGlvbiBjYW5ub3QgYmUgcGVyZm9ybWVkLgorCitmLiAgVGhlcmUgaXMgYSBuZXcgYXBwbGljYXRpb24tY2FsbGFibGUgYGZyZWVfaGlzdG9yeV9lbnRyeSgpJyBmdW5jdGlvbi4KKworZy4gIEhpc3RvcnkgbGlzdCBlbnRyaWVzIG5vdyBjb250YWluIHRpbWVzdGFtcCBpbmZvcm1hdGlvbjsgdGhlIGhpc3RvcnkgZmlsZQorICAgIGZ1bmN0aW9ucyBrbm93IGhvdyB0byByZWFkIGFuZCB3cml0ZSB0aW1lc3RhbXAgaW5mb3JtYXRpb24gYXNzb2NpYXRlZAorICAgIHdpdGggZWFjaCBlbnRyeS4KKworaC4gIEZvdXIgbmV3IGtleSBiaW5kaW5nIGZ1bmN0aW9ucyBoYXZlIGJlZW4gYWRkZWQ6CisKKwlybF9iaW5kX2tleV9pZl91bmJvdW5kKCkKKwlybF9iaW5kX2tleV9pZl91bmJvdW5kX2luX21hcCgpCisJcmxfYmluZF9rZXlzZXFfaWZfdW5ib3VuZCgpCisJcmxfYmluZF9rZXlzZXFfaWZfdW5ib3VuZF9pbl9tYXAoKQorCitpLiAgTmV3IGFwcGxpY2F0aW9uIHZhcmlhYmxlLCBybF9jb21wbGV0aW9uX3F1b3RlX2NoYXJhY3Rlciwgc2V0IHRvIGFueQorICAgIHF1b3RlIGNoYXJhY3RlciByZWFkbGluZSBmaW5kcyBiZWZvcmUgaXQgY2FsbHMgdGhlIGFwcGxpY2F0aW9uIGNvbXBsZXRpb24KKyAgICBmdW5jdGlvbi4KKworai4gIE5ldyBhcHBsaWNhdGlvbiB2YXJpYWJsZSwgcmxfY29tcGxldGlvbl9zdXBwcmVzc19xdW90ZSwgc2V0dGFibGUgYnkgYW4gICAKKyAgICBhcHBsaWNhdGlvbiBjb21wbGV0aW9uIGZ1bmN0aW9uLiAgSWYgc2V0IHRvIG5vbi16ZXJvLCByZWFkbGluZSBkb2VzIG5vdAorICAgIGF0dGVtcHQgdG8gYXBwZW5kIGEgY2xvc2luZyBxdW90ZSB0byBhIGNvbXBsZXRlZCB3b3JkLgorICAgIAoray4gIE5ldyBhcHBsaWNhdGlvbiB2YXJpYWJsZSwgcmxfY29tcGxldGlvbl9mb3VuZF9xdW90ZSwgc2V0IHRvIGEgbm9uLXplcm8KKyAgICB2YWx1ZSBpZiByZWFkbGluZSBkZXRlcm1pbmVzIHRoYXQgdGhlIHdvcmQgdG8gYmUgY29tcGxldGVkIGlzIHF1b3RlZC4KKyAgICBTZXQgYmVmb3JlIHJlYWRsaW5lIGNhbGxzIGFueSBhcHBsaWNhdGlvbiBjb21wbGV0aW9uIGZ1bmN0aW9uLgorCitsLiAgTmV3IGZ1bmN0aW9uIGhvb2ssIHJsX2NvbXBsZXRpb25fd29yZF9icmVha19ob29rLCBjYWxsZWQgd2hlbiByZWFkbGluZQorICAgIG5lZWRzIHRvIGJyZWFrIGEgbGluZSBpbnRvIHdvcmRzIHdoZW4gY29tcGxldGlvbiBpcyBhdHRlbXB0ZWQuICBBbGxvd3MKKyAgICB0aGUgd29yZCBicmVhayBjaGFyYWN0ZXJzIHRvIHZhcnkgYmFzZWQgb24gcG9zaXRpb24gaW4gdGhlIGxpbmUuCisKK20uICBOZXcgYmluZGFibGUgY29tbWFuZDogdW5peC1maWxlbmFtZS1ydWJvdXQuICBEb2VzIHRoZSBzYW1lIHRoaW5nIGFzCisgICAgdW5peC13b3JkLXJ1Ym91dCwgYnV0IGFkZHMgYC8nIHRvIHRoZSBzZXQgb2Ygd29yZCBkZWxpbWl0ZXJzLgorCituLiAgV2hlbiBsaXN0aW5nIGNvbXBsZXRpb25zLCBkaXJlY3RvcmllcyBoYXZlIGEgYC8nIGFwcGVuZGVkIGlmIHRoZQorICAgIGBtYXJrLWRpcmVjdG9yaWVzJyBvcHRpb24gaGFzIGJlZW4gZW5hYmxlZC4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogVGhpcyBkb2N1bWVudCBkZXRhaWxzIHRoZSBjaGFuZ2VzIGJldHdlZW4gdGhpcyB2ZXJzaW9uLCByZWFkbGluZS00LjMsCiBhbmQgdGhlIHByZXZpb3VzIHZlcnNpb24sIHJlYWRsaW5lLTQuMmEuCiAKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL0lOU1RBTEwgYi9yZWFkbGluZS9JTlNUQUxMCmluZGV4IGFkYjI3YTkuLjFhNzNjNzcgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL0lOU1RBTEwKKysrIGIvcmVhZGxpbmUvSU5TVEFMTApAQCAtMSw3ICsxLDcgQEAKIEJhc2ljIEluc3RhbGxhdGlvbgogPT09PT09PT09PT09PT09PT09CiAKLVRoZXNlIGFyZSBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGZvciBSZWFkbGluZS00LjMuCitUaGVzZSBhcmUgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucyBmb3IgUmVhZGxpbmUtNS4xLgogCiBUaGUgc2ltcGxlc3Qgd2F5IHRvIGNvbXBpbGUgcmVhZGxpbmUgaXM6CiAKQEAgLTIzOCw2ICsyMzgsOSBAQAogU0hMSUJfTElCUwlBbnkgYWRkaXRpb25hbCBsaWJyYXJpZXMgdGhhdCBzaGFyZWQgbGlicmFyaWVzIHNob3VsZCBiZQogCQlsaW5rZWQgYWdhaW5zdCB3aGVuIHRoZXkgYXJlIGNyZWF0ZWQuCiAKK1NITElCX0xJQlBSRUYJVGhlIHByZWZpeCB0byB1c2Ugd2hlbiBnZW5lcmF0aW5nIHRoZSBmaWxlbmFtZSBvZiB0aGUgc2hhcmVkCisJCWxpYnJhcnkuICBUaGUgZGVmYXVsdCBpcyBgbGliJzsgQ3lnd2luIHVzZXMgYGN5ZycuCisKIFNITElCX0xJQlNVRkYJVGhlIHN1ZmZpeCB0byBhZGQgdG8gYGxpYnJlYWRsaW5lJyBhbmQgYGxpYmhpc3RvcnknIHdoZW4KIAkJZ2VuZXJhdGluZyB0aGUgZmlsZW5hbWUgb2YgdGhlIHNoYXJlZCBsaWJyYXJ5LiAgTWFueSBzeXN0ZW1zCiAJCXVzZSBgc28nOyBIUC1VWCB1c2VzIGBzbCcuCkBAIC0yNTQsNiArMjU3LDE3IEBACiAJCW51bWJlcnM7IHVzZSBgJChTSExJQl9MSUJTVUZGKS4kKFNITElCX01BSk9SKScgb24gdGhvc2Ugc3lzdGVtcy4KIAkJT3RoZXIgVW5peCB2ZXJzaW9ucyB1c2UgZGlmZmVyZW50IHNjaGVtZXMuCiAKK1NITElCX0RMTFZFUlNJT04gVGhlIHZlcnNpb24gbnVtYmVyIGZvciBzaGFyZWQgbGlicmFyaWVzIHRoYXQgZGV0ZXJtaW5lcyBBUEkKKwkJY29tcGF0aWJpbGl0eSBiZXR3ZWVuIHJlYWRsaW5lIHZlcnNpb25zIGFuZCB0aGUgdW5kZXJseWluZworCQlzeXN0ZW0uICBVc2VkIG9ubHkgb24gQ3lnd2luLiAgRGVmYXVsdHMgdG8gJFNITElCX01BSk9SLCBidXQKKwkJY2FuIGJlIG92ZXJyaWRkZW4gYXQgY29uZmlndXJhdGlvbiB0aW1lIGJ5IGRlZmluaW5nIERMTFZFUlNJT04KKwkJaW4gdGhlIGVudmlyb25tZW50LgorCitTSExJQl9ET1QJVGhlIGNoYXJhY3RlciB1c2VkIHRvIHNlcGFyYXRlIHRoZSBuYW1lIG9mIHRoZSBzaGFyZWQgbGlicmFyeQorCQlmcm9tIHRoZSBzdWZmaXggYW5kIHZlcnNpb24gaW5mb3JtYXRpb24uICBUaGUgZGVmYXVsdCBpcyBgLic7CisJCXN5c3RlbXMgbGlrZSBDeWd3aW4gd2hpY2ggZG9uJ3Qgc2VwYXJhdGUgdmVyc2lvbiBpbmZvcm1hdGlvbgorCQlmcm9tIHRoZSBsaWJyYXJ5IG5hbWUgc2hvdWxkIHNldCB0aGlzIHRvIHRoZSBlbXB0eSBzdHJpbmcuCisKIFNITElCX1NUQVRVUwlTZXQgdGhpcyB0byBgc3VwcG9ydGVkJyB3aGVuIHlvdSBoYXZlIGRlZmluZWQgdGhlIG90aGVyCiAJCW5lY2Vzc2FyeSB2YXJpYWJsZXMuICBNYWtlIHVzZXMgdGhpcyB0byBkZXRlcm1pbmUgd2hldGhlcgogCQlvciBub3Qgc2hhcmVkIGxpYnJhcnkgY3JlYXRpb24gc2hvdWxkIGJlIGF0dGVtcHRlZC4gIElmCmRpZmYgLS1naXQgYS9yZWFkbGluZS9NQU5JRkVTVCBiL3JlYWRsaW5lL01BTklGRVNUCmluZGV4IDE1MDdlZGEuLmIyODhmYjYgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL01BTklGRVNUCisrKyBiL3JlYWRsaW5lL01BTklGRVNUCkBAIC0zLDYgKzMsNyBAQAogIwogZG9jCQlkCiBleGFtcGxlcwlkCitleGFtcGxlcy9ybGZlCWQKIHN1cHBvcnQJCWQKIHNobGliCQlkCiBDT1BZSU5HCQlmCkBAIC0xMSw2ICsxMiw3IEBACiBJTlNUQUxMCQlmCiBDSEFOR0VMT0cJZgogQ0hBTkdFUwkJZgorTkVXUwkJZgogVVNBR0UJCWYKIGFjbG9jYWwubTQJZgogY29uZmlnLmguaW4JZgpAQCAtNzQsMjMgKzc2LDI2IEBACiBoaXN0c2VhcmNoLmMJZgogc2hsaWIvTWFrZWZpbGUuaW4JZgogc3VwcG9ydC9jb25maWcuZ3Vlc3MJZgorc3VwcG9ydC9jb25maWcucnBhdGgJZgogc3VwcG9ydC9jb25maWcuc3ViCWYKIHN1cHBvcnQvaW5zdGFsbC5zaAlmCiBzdXBwb3J0L21rZGlycwkJZgogc3VwcG9ydC9ta2Rpc3QJCWYKK3N1cHBvcnQvbWtpbnN0YWxsZGlycwlmCiBzdXBwb3J0L3Nob2JqLWNvbmYJZgogc3VwcG9ydC9zaGxpYi1pbnN0YWxsCWYKIHN1cHBvcnQvd2N3aWR0aC5jCWYKIGRvYy9NYWtlZmlsZS5pbgkJZgogZG9jL3RleGluZm8udGV4CQlmCi1kb2MvbWFudmVycy50ZXhpbmZvCWYKLWRvYy9ybG1hbi50ZXhpbmZvCWYKLWRvYy9ybHRlY2gudGV4aW5mbwlmCi1kb2Mvcmx1c2VyLnRleGluZm8JZgotZG9jL3JsdXNlcm1hbi50ZXhpbmZvCWYKLWRvYy9oaXN0LnRleGluZm8JZgotZG9jL2hzdGVjaC50ZXhpbmZvCWYKLWRvYy9oc3VzZXIudGV4aW5mbwlmCitkb2MvdmVyc2lvbi50ZXhpCWYKK2RvYy9mZGwudGV4aQkJZgorZG9jL3JsbWFuLnRleGkJCWYKK2RvYy9ybHRlY2gudGV4aQkJZgorZG9jL3JsdXNlci50ZXhpCQlmCitkb2Mvcmx1c2VybWFuLnRleGkJZgorZG9jL2hpc3RvcnkudGV4aQlmCitkb2MvaHN0ZWNoLnRleGkJCWYKK2RvYy9oc3VzZXIudGV4aQkJZgogZG9jL3JlYWRsaW5lLjMJCWYKIGRvYy9oaXN0b3J5LjMJCWYKIGRvYy90ZXhpMmR2aQkJZgpAQCAtMTAwLDEzICsxMDUsMjUgQEAKIGV4YW1wbGVzL2ZpbGVtYW4uYwlmCiBleGFtcGxlcy9tYW5leGFtcC5jCWYKIGV4YW1wbGVzL3JlYWRsaW5lYnVmLmgJZgorZXhhbXBsZXMvcmwtZmdldHMuYwlmCiBleGFtcGxlcy9ybGNhdC5jCWYKLWV4YW1wbGVzL3JsZmUuYwkJZgogZXhhbXBsZXMvcmx0ZXN0LmMJZgogZXhhbXBsZXMvcmwuYwkJZgorZXhhbXBsZXMvcmxwdHl0ZXN0LmMJZgogZXhhbXBsZXMvcmx2ZXJzaW9uLmMJZgogZXhhbXBsZXMvaGlzdGV4YW1wLmMJZgogZXhhbXBsZXMvSW5wdXRyYwlmCitleGFtcGxlcy9ybGZlL0NoYW5nZUxvZwkJZgorZXhhbXBsZXMvcmxmZS9NYWtlZmlsZS5pbglmCitleGFtcGxlcy9ybGZlL1JFQURNRQkJZgorZXhhbXBsZXMvcmxmZS9jb25maWcuaC5pbglmCitleGFtcGxlcy9ybGZlL2NvbmZpZ3VyZQkJZgorZXhhbXBsZXMvcmxmZS9jb25maWd1cmUuaW4JZgorZXhhbXBsZXMvcmxmZS9leHRlcm4uaAkJZgorZXhhbXBsZXMvcmxmZS9vcy5oCQlmCitleGFtcGxlcy9ybGZlL3B0eS5jCQlmCitleGFtcGxlcy9ybGZlL3JsZmUuYwkJZgorZXhhbXBsZXMvcmxmZS9zY3JlZW4uaAkJZgogIyBmb3JtYXR0ZWQgZG9jdW1lbnRhdGlvbiwgZnJvbSBNQU5JRkVTVC5kb2MKIGRvYy9yZWFkbGluZS5wcwkJZgogZG9jL2hpc3RvcnkucHMJCWYKQEAgLTEyNCwzICsxNDEsNiBAQAogZG9jL2hpc3RvcnkuMAkJZgogZG9jL3JlYWRsaW5lXzMucHMJZgogZG9jL2hpc3RvcnlfMy5wcwlmCitkb2MvaGlzdG9yeS5wZGYJCWYKK2RvYy9yZWFkbGluZS5wZGYJZgorZG9jL3JsdXNlcm1hbi5wZGYJZgpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvTWFrZWZpbGUuaW4gYi9yZWFkbGluZS9NYWtlZmlsZS5pbgppbmRleCAwZmYwYzMxLi44N2RmNDI4IDEwMDY0NAotLS0gYS9yZWFkbGluZS9NYWtlZmlsZS5pbgorKysgYi9yZWFkbGluZS9NYWtlZmlsZS5pbgpAQCAtMSw2ICsxLDYgQEAKICMjIC0qLSB0ZXh0IC0qLSAjIwogIyBNYXN0ZXIgTWFrZWZpbGUgZm9yIHRoZSBHTlUgcmVhZGxpbmUgbGlicmFyeS4KLSMgQ29weXJpZ2h0IChDKSAxOTk0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyBDb3B5cmlnaHQgKEMpIDE5OTQtMjAwNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIAogIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQpAQCAtMTgsNiArMTgsMTQgQEAKIFJMX0xJQlJBUllfVkVSU0lPTiA9IEBMSUJWRVJTSU9OQAogUkxfTElCUkFSWV9OQU1FID0gcmVhZGxpbmUKIAorUEFDS0FHRSA9IEBQQUNLQUdFX05BTUVACitWRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKworUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACitQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACitQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorCiBzcmNkaXIgPSBAc3JjZGlyQAogVlBBVEggPSAuOkBzcmNkaXJACiB0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACkBAIC0zNSw2ICs0Myw4IEBACiBDUCA9IGNwCiBNViA9IG12CiAKK1BVUklGWSA9IEBQVVJJRllACisKIEBTRVRfTUFLRUAKIFNIRUxMID0gQE1BS0VfU0hFTExACiAKQEAgLTQ1LDYgKzU1LDggQEAKIGxpYmRpciA9IEBsaWJkaXJACiBtYW5kaXIgPSBAbWFuZGlyQAogaW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAorZGF0YWRpciA9IEBkYXRhZGlyQAorbG9jYWxlZGlyID0gJChkYXRhZGlyKS9sb2NhbGUKIAogaW5mb2RpciA9IEBpbmZvZGlyQAogCkBAIC02MSw3ICs3Myw3IEBACiBMT0NBTF9DRkxBR1MgPSBATE9DQUxfQ0ZMQUdTQCAtRFJMX0xJQlJBUllfVkVSU0lPTj0nIiQoUkxfTElCUkFSWV9WRVJTSU9OKSInCiBDUFBGTEFHUyA9IEBDUFBGTEFHU0AKIAotREVGUyA9IEBERUZTQAorREVGUyA9IEBERUZTQCBAQ1JPU1NfQ09NUElMRUAKIExPQ0FMX0RFRlMgPSBATE9DQUxfREVGU0AKIAogVEVSTUNBUF9MSUIgPSBAVEVSTUNBUF9MSUJACkBAIC0yMDcsMzcgKzIxOSw0MSBAQAogCiBpbnN0YWxsOgkkKElOU1RBTExfVEFSR0VUUykKIAotaW5zdGFsbC1zdGF0aWM6IGluc3RhbGxkaXJzICQoU1RBVElDX0xJQlMpIGluc3RhbGwtaGVhZGVycworaW5zdGFsbC1zdGF0aWM6IGluc3RhbGxkaXJzICQoU1RBVElDX0xJQlMpIGluc3RhbGwtaGVhZGVycyBpbnN0YWxsLWRvYwogCS0kKE1WKSAkKERFU1RESVIpJChsaWJkaXIpL2xpYnJlYWRsaW5lLmEgJChERVNURElSKSQobGliZGlyKS9saWJyZWFkbGluZS5vbGQKIAkkKElOU1RBTExfREFUQSkgbGlicmVhZGxpbmUuYSAkKERFU1RESVIpJChsaWJkaXIpL2xpYnJlYWRsaW5lLmEKIAktdGVzdCAtbiAiJChSQU5MSUIpIiAmJiAkKFJBTkxJQikgJChERVNURElSKSQobGliZGlyKS9saWJyZWFkbGluZS5hCiAJLSQoTVYpICQoREVTVERJUikkKGxpYmRpcikvbGliaGlzdG9yeS5hICQoREVTVERJUikkKGxpYmRpcikvbGliaGlzdG9yeS5vbGQKIAkkKElOU1RBTExfREFUQSkgbGliaGlzdG9yeS5hICQoREVTVERJUikkKGxpYmRpcikvbGliaGlzdG9yeS5hCiAJLXRlc3QgLW4gIiQoUkFOTElCKSIgJiYgJChSQU5MSUIpICQoREVTVERJUikkKGxpYmRpcikvbGliaGlzdG9yeS5hCisKK2luc3RhbGxkaXJzOiAkKHNyY2Rpcikvc3VwcG9ydC9ta2luc3RhbGxkaXJzCisJLSQoU0hFTEwpICQoc3JjZGlyKS9zdXBwb3J0L21raW5zdGFsbGRpcnMgJChERVNURElSKSQoaW5jbHVkZWRpcikgXAorCQkkKERFU1RESVIpJChpbmNsdWRlZGlyKS9yZWFkbGluZSAkKERFU1RESVIpJChsaWJkaXIpIFwKKwkJJChERVNURElSKSQoaW5mb2RpcikgJChERVNURElSKSQobWFuM2RpcikKKwordW5pbnN0YWxsOiB1bmluc3RhbGwtaGVhZGVycyB1bmluc3RhbGwtZG9jCisJLXRlc3QgLW4gIiQoREVTVERJUikkKGxpYmRpcikiICYmIGNkICQoREVTVERJUikkKGxpYmRpcikgJiYgXAorCQkke1JNfSBsaWJyZWFkbGluZS5hIGxpYnJlYWRsaW5lLm9sZCBsaWJoaXN0b3J5LmEgbGliaGlzdG9yeS5vbGQgJChTSEFSRURfTElCUykKKwktKCBjZCBzaGxpYjsgJHtNQUtFfSAke01GTEFHU30gREVTVERJUj0ke0RFU1RESVJ9IHVuaW5zdGFsbCApCisKK2luc3RhbGwtc2hhcmVkOiBpbnN0YWxsZGlycyBpbnN0YWxsLWhlYWRlcnMgc2hhcmVkIGluc3RhbGwtZG9jCisJLSggY2Qgc2hsaWIgOyAke01BS0V9ICR7TUZMQUdTfSBERVNURElSPSR7REVTVERJUn0gaW5zdGFsbCApCisJCit1bmluc3RhbGwtc2hhcmVkOiBtYXliZS11bmluc3RhbGwtaGVhZGVycworCS0oIGNkIHNobGliOyAke01BS0V9ICR7TUZMQUdTfSBERVNURElSPSR7REVTVERJUn0gdW5pbnN0YWxsICkKKworaW5zdGFsbC1kb2M6CWluc3RhbGxkaXJzCiAJLSggaWYgdGVzdCAtZCBkb2MgOyB0aGVuIFwKIAkJY2QgZG9jICYmIFwKIAkJJHtNQUtFfSAke01GTEFHU30gaW5mb2Rpcj0kKGluZm9kaXIpIERFU1RESVI9JHtERVNURElSfSBpbnN0YWxsOyBcCiAJICBmaSApCiAKLWluc3RhbGxkaXJzOiAkKHNyY2Rpcikvc3VwcG9ydC9ta2RpcnMKLQktJChTSEVMTCkgJChzcmNkaXIpL3N1cHBvcnQvbWtkaXJzICQoREVTVERJUikkKGluY2x1ZGVkaXIpIFwKLQkJJChERVNURElSKSQoaW5jbHVkZWRpcikvcmVhZGxpbmUgJChERVNURElSKSQobGliZGlyKSBcCi0JCSQoREVTVERJUikkKGluZm9kaXIpICQoREVTVERJUikkKG1hbjNkaXIpCi0KLXVuaW5zdGFsbDogdW5pbnN0YWxsLWhlYWRlcnMKLQktdGVzdCAtbiAiJChERVNURElSKSQobGliZGlyKSIgJiYgY2QgJChERVNURElSKSQobGliZGlyKSAmJiBcCi0JCSR7Uk19IGxpYnJlYWRsaW5lLmEgbGlicmVhZGxpbmUub2xkIGxpYmhpc3RvcnkuYSBsaWJoaXN0b3J5Lm9sZCAkKFNIQVJFRF9MSUJTKQordW5pbnN0YWxsLWRvYzoKIAktKCBpZiB0ZXN0IC1kIGRvYyA7IHRoZW4gXAogCQljZCBkb2MgJiYgXAotCQkke01BS0V9ICR7TUZMQUdTfSBpbmZvZGlyPSQoaW5mb2RpcikgREVTVERJUj0ke0RFU1RESVJ9ICRAOyBcCisJCSR7TUFLRX0gJHtNRkxBR1N9IGluZm9kaXI9JChpbmZvZGlyKSBERVNURElSPSR7REVTVERJUn0gdW5pbnN0YWxsOyBcCiAJICBmaSApCi0JLSggY2Qgc2hsaWI7ICR7TUFLRX0gJHtNRkxBR1N9IERFU1RESVI9JHtERVNURElSfSB1bmluc3RhbGwgKQotCi1pbnN0YWxsLXNoYXJlZDogaW5zdGFsbGRpcnMgaW5zdGFsbC1oZWFkZXJzIHNoYXJlZAotCS0oIGNkIHNobGliIDsgJHtNQUtFfSAke01GTEFHU30gREVTVERJUj0ke0RFU1RESVJ9IGluc3RhbGwgKQotCi11bmluc3RhbGwtc2hhcmVkOiBtYXliZS11bmluc3RhbGwtaGVhZGVycwotCS0oIGNkIHNobGliOyAke01BS0V9ICR7TUZMQUdTfSBERVNURElSPSR7REVTVERJUn0gdW5pbnN0YWxsICkKIAogVEFHUzoJZm9yY2UKIAkkKEVUQUdTKSAkKENTT1VSQ0VTKSAkKEhTT1VSQ0VTKQpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvTkVXUyBiL3JlYWRsaW5lL05FV1MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzVlNjdkYwotLS0gL2Rldi9udWxsCisrKyBiL3JlYWRsaW5lL05FV1MKQEAgLTAsMCArMSwzMiBAQAorVGhpcyBpcyBhIHRlcnNlIGRlc2NyaXB0aW9uIG9mIHRoZSBuZXcgZmVhdHVyZXMgYWRkZWQgdG8gcmVhZGxpbmUtNS4xIHNpbmNlCit0aGUgcmVsZWFzZSBvZiByZWFkbGluZS01LjAuCisKKzEuICBOZXcgRmVhdHVyZXMgaW4gUmVhZGxpbmUKKworYS4gIFRoZSBrZXkgc2VxdWVuY2Ugc2VudCBieSB0aGUga2V5cGFkIGBkZWxldGUnIGtleSBpcyBub3cgYXV0b21hdGljYWxseSAgIAorICAgIGJvdW5kIHRvIGRlbGV0ZS1jaGFyLgorCitiLiAgQSBuZWdhdGl2ZSBhcmd1bWVudCB0byBtZW51LWNvbXBsZXRlIG5vdyBjeWNsZXMgYmFja3dhcmQgdGhyb3VnaCB0aGUKKyAgICBjb21wbGV0aW9uIGxpc3QuCisKK2MuICBBIG5ldyBiaW5kYWJsZSByZWFkbGluZSB2YXJpYWJsZTogIGJpbmQtdHR5LXNwZWNpYWwtY2hhcnMuICBJZiBub24temVybywKKyAgICByZWFkbGluZSB3aWxsIGJpbmQgdGhlIHRlcm1pbmFsIHNwZWNpYWwgY2hhcmFjdGVycyB0byB0aGVpciByZWFkbGluZQorICAgIGVxdWl2YWxlbnRzIHdoZW4gaXQncyBjYWxsZWQgKG9uIGJ5IGRlZmF1bHQpLgorCitkLiAgTmV3IGJpbmRhYmxlIGNvbW1hbmQ6IHZpLXJ1Ym91dC4gIFNhdmVzIGRlbGV0ZWQgdGV4dCBmb3IgcG9zc2libGUgIAorICAgIHJlaW5zZXJ0aW9uLCBhcyB3aXRoIGFueSB2aS1tb2RlIGB0ZXh0IG1vZGlmaWNhdGlvbicgY29tbWFuZDsgYFgnIGlzIGJvdW5kCisgICAgdG8gdGhpcyBpbiB2aSBjb21tYW5kIG1vZGUuCisKK2UuICBJZiB0aGUgcmxfY29tcGxldGlvbl9xdWVyeV9pdGVtcyBpcyBzZXQgdG8gYSB2YWx1ZSA8IDAsIHJlYWRsaW5lIG5ldmVyCisgICAgYXNrcyB0aGUgdXNlciB3aGV0aGVyIG9yIG5vdCB0byB2aWV3IHRoZSBwb3NzaWJsZSBjb21wbGV0aW9ucy4KKworZi4gIE5ldyBhcHBsaWNhdGlvbi1jYWxsYWJsZSBhdXhpbGlhcnkgZnVuY3Rpb24sIHJsX3ZhcmlhYmxlX3ZhbHVlLCByZXR1cm5zCisgICAgYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBhIHJlYWRsaW5lIHZhcmlhYmxlJ3MgdmFsdWUuCisKK2cuICBXaGVuIHBhcnNpbmcgaW5wdXRyYyBmaWxlcyBhbmQgdmFyaWFibGUgYmluZGluZyBjb21tYW5kcywgdGhlIHBhcnNlcgorICAgIHN0cmlwcyB0cmFpbGluZyB3aGl0ZXNwYWNlIGZyb20gdmFsdWVzIGFzc2lnbmVkIHRvIGJvb2xlYW4gdmFyaWFibGVzCisgICAgYmVmb3JlIGNoZWNraW5nIHRoZW0uCisKK2guICBBIG5ldyBleHRlcm5hbCBhcHBsaWNhdGlvbi1jb250cm9sbGFibGUgdmFyaWFibGUgdGhhdCBhbGxvd3MgdGhlIExJTkVTCisgICAgYW5kIENPTFVNTlMgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHNldCB0aGUgd2luZG93IHNpemUgcmVnYXJkbGVzcyBvZgorICAgIHdoYXQgdGhlIGtlcm5lbCByZXR1cm5zLgpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvUkVBRE1FIGIvcmVhZGxpbmUvUkVBRE1FCmluZGV4IDdhYTkzOTQuLjhkZDA5Y2MgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL1JFQURNRQorKysgYi9yZWFkbGluZS9SRUFETUUKQEAgLTEsNyArMSw3IEBACiBJbnRyb2R1Y3Rpb24KID09PT09PT09PT09PQogCi1UaGlzIGlzIHRoZSBHbnUgUmVhZGxpbmUgbGlicmFyeSwgdmVyc2lvbiA0LjMuCitUaGlzIGlzIHRoZSBHbnUgUmVhZGxpbmUgbGlicmFyeSwgdmVyc2lvbiA1LjEuCiAKIFRoZSBSZWFkbGluZSBsaWJyYXJ5IHByb3ZpZGVzIGEgc2V0IG9mIGZ1bmN0aW9ucyBmb3IgdXNlIGJ5IGFwcGxpY2F0aW9ucwogdGhhdCBhbGxvdyB1c2VycyB0byBlZGl0IGNvbW1hbmQgbGluZXMgYXMgdGhleSBhcmUgdHlwZWQgaW4uICBCb3RoCkBAIC0xMDIsNiArMTAyLDkgQEAKIFNITElCX0xJQlMJQW55IGFkZGl0aW9uYWwgbGlicmFyaWVzIHRoYXQgc2hhcmVkIGxpYnJhcmllcyBzaG91bGQgYmUKIAkJbGlua2VkIGFnYWluc3Qgd2hlbiB0aGV5IGFyZSBjcmVhdGVkLgogCitTSExJQl9MSUJQUkVGCVRoZSBwcmVmaXggdG8gdXNlIHdoZW4gZ2VuZXJhdGluZyB0aGUgZmlsZW5hbWUgb2YgdGhlIHNoYXJlZAorCQlsaWJyYXJ5LiAgVGhlIGRlZmF1bHQgaXMgYGxpYic7IEN5Z3dpbiB1c2VzIGBjeWcnLgorCiBTSExJQl9MSUJTVUZGCVRoZSBzdWZmaXggdG8gYWRkIHRvIGBsaWJyZWFkbGluZScgYW5kIGBsaWJoaXN0b3J5JyB3aGVuCiAJCWdlbmVyYXRpbmcgdGhlIGZpbGVuYW1lIG9mIHRoZSBzaGFyZWQgbGlicmFyeS4gIE1hbnkgc3lzdGVtcwogCQl1c2UgYHNvJzsgSFAtVVggdXNlcyBgc2wnLgpAQCAtMTE4LDYgKzEyMSwxNyBAQAogCQludW1iZXJzOyB1c2UgYCQoU0hMSUJfTElCU1VGRikuJChTSExJQl9NQUpPUiknIG9uIHRob3NlIHN5c3RlbXMuCiAJCU90aGVyIFVuaXggdmVyc2lvbnMgdXNlIGRpZmZlcmVudCBzY2hlbWVzLgogCitTSExJQl9ETExWRVJTSU9OIFRoZSB2ZXJzaW9uIG51bWJlciBmb3Igc2hhcmVkIGxpYnJhcmllcyB0aGF0IGRldGVybWluZXMgQVBJCisJCWNvbXBhdGliaWxpdHkgYmV0d2VlbiByZWFkbGluZSB2ZXJzaW9ucyBhbmQgdGhlIHVuZGVybHlpbmcKKwkJc3lzdGVtLiAgVXNlZCBvbmx5IG9uIEN5Z3dpbi4gIERlZmF1bHRzIHRvICRTSExJQl9NQUpPUiwgYnV0CisJCWNhbiBiZSBvdmVycmlkZGVuIGF0IGNvbmZpZ3VyYXRpb24gdGltZSBieSBkZWZpbmluZyBETExWRVJTSU9OCisJCWluIHRoZSBlbnZpcm9ubWVudC4KKworU0hMSUJfRE9UCVRoZSBjaGFyYWN0ZXIgdXNlZCB0byBzZXBhcmF0ZSB0aGUgbmFtZSBvZiB0aGUgc2hhcmVkIGxpYnJhcnkKKwkJZnJvbSB0aGUgc3VmZml4IGFuZCB2ZXJzaW9uIGluZm9ybWF0aW9uLiAgVGhlIGRlZmF1bHQgaXMgYC4nOworCQlzeXN0ZW1zIGxpa2UgQ3lnd2luIHdoaWNoIGRvbid0IHNlcGFyYXRlIHZlcnNpb24gaW5mb3JtYXRpb24KKwkJZnJvbSB0aGUgbGlicmFyeSBuYW1lIHNob3VsZCBzZXQgdGhpcyB0byB0aGUgZW1wdHkgc3RyaW5nLgorCiBTSExJQl9TVEFUVVMJU2V0IHRoaXMgdG8gYHN1cHBvcnRlZCcgd2hlbiB5b3UgaGF2ZSBkZWZpbmVkIHRoZSBvdGhlcgogCQluZWNlc3NhcnkgdmFyaWFibGVzLiAgTWFrZSB1c2VzIHRoaXMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIKIAkJb3Igbm90IHNoYXJlZCBsaWJyYXJ5IGNyZWF0aW9uIHNob3VsZCBiZSBhdHRlbXB0ZWQuCmRpZmYgLS1naXQgYS9yZWFkbGluZS9hY2xvY2FsLm00IGIvcmVhZGxpbmUvYWNsb2NhbC5tNAppbmRleCBkMWFkMDI1Li44YTcwMDg0IDEwMDY0NAotLS0gYS9yZWFkbGluZS9hY2xvY2FsLm00CisrKyBiL3JlYWRsaW5lL2FjbG9jYWwubTQKQEAgLTY4NSw2NSArNjg1LDI2IEBACiBdKQogCiBBQ19ERUZVTihCQVNIX0ZVTkNfR0VUQ1dELAotW0FDX01TR19DSEVDS0lORyhbaWYgZ2V0Y3dkKCkgY2FsbHMgcG9wZW4oKV0pCi1BQ19DQUNIRV9WQUwoYmFzaF9jdl9nZXRjd2RfY2FsbHNfcG9wZW4sCitbQUNfTVNHX0NIRUNLSU5HKFtpZiBnZXRjd2QoKSB3aWxsIGR5bmFtaWNhbGx5IGFsbG9jYXRlIG1lbW9yeV0pCitBQ19DQUNIRV9WQUwoYmFzaF9jdl9nZXRjd2RfbWFsbG9jLAogW0FDX1RSWV9SVU4oWwogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaWZkZWYgSEFWRV9VTklTVERfSAogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2VuZGlmCiAKLSNpZm5kZWYgX19TVERDX18KLSNpZm5kZWYgY29uc3QKLSNkZWZpbmUgY29uc3QKLSNlbmRpZgotI2VuZGlmCi0KLWludCBwb3Blbl9jYWxsZWQ7Ci0KLUZJTEUgKgotcG9wZW4oY29tbWFuZCwgdHlwZSkKLSAgICAgY29uc3QgY2hhciAqY29tbWFuZDsKLSAgICAgY29uc3QgY2hhciAqdHlwZTsKLXsKLQlwb3Blbl9jYWxsZWQgPSAxOwotCXJldHVybiAoRklMRSAqKU5VTEw7Ci19Ci0KLUZJTEUgKl9wb3Blbihjb21tYW5kLCB0eXBlKQotICAgICBjb25zdCBjaGFyICpjb21tYW5kOwotICAgICBjb25zdCBjaGFyICp0eXBlOwotewotICByZXR1cm4gKHBvcGVuIChjb21tYW5kLCB0eXBlKSk7Ci19Ci0KLWludAotcGNsb3NlKHN0cmVhbSkKLUZJTEUgKnN0cmVhbTsKLXsKLQlyZXR1cm4gMDsKLX0KLQotaW50Ci1fcGNsb3NlKHN0cmVhbSkKLUZJTEUgKnN0cmVhbTsKLXsKLQlyZXR1cm4gMDsKLX0KLQogbWFpbigpCiB7Ci0JY2hhcglsYnVmWzMyXTsKLQlwb3Blbl9jYWxsZWQgPSAwOwotCWdldGN3ZChsYnVmLCAzMik7Ci0JZXhpdCAocG9wZW5fY2FsbGVkKTsKKwljaGFyCSp4cHdkOworCXhwd2QgPSBnZXRjd2QoMCwgMCk7CisJZXhpdCAoeHB3ZCA9PSAwKTsKIH0KLV0sIGJhc2hfY3ZfZ2V0Y3dkX2NhbGxzX3BvcGVuPW5vLCBiYXNoX2N2X2dldGN3ZF9jYWxsc19wb3Blbj15ZXMsCi0gICBbQUNfTVNHX1dBUk4oY2Fubm90IGNoZWNrIHdoZXRoZXIgZ2V0Y3dkIGNhbGxzIHBvcGVuIGlmIGNyb3NzIGNvbXBpbGluZyAtLSBkZWZhdWx0aW5nIHRvIG5vKQotICAgIGJhc2hfY3ZfZ2V0Y3dkX2NhbGxzX3BvcGVuPW5vXQorXSwgYmFzaF9jdl9nZXRjd2RfbWFsbG9jPXllcywgYmFzaF9jdl9nZXRjd2RfbWFsbG9jPW5vLAorICAgW0FDX01TR19XQVJOKGNhbm5vdCBjaGVjayB3aGV0aGVyIGdldGN3ZCBhbGxvY2F0ZXMgbWVtb3J5IHdoZW4gY3Jvc3MtY29tcGlsaW5nIC0tIGRlZmF1bHRpbmcgdG8gbm8pCisgICAgYmFzaF9jdl9nZXRjd2RfbWFsbG9jPW5vXQogKV0pCi1BQ19NU0dfUkVTVUxUKCRiYXNoX2N2X2dldGN3ZF9jYWxsc19wb3BlbikKLWlmIHRlc3QgJGJhc2hfY3ZfZ2V0Y3dkX2NhbGxzX3BvcGVuID0geWVzOyB0aGVuCitBQ19NU0dfUkVTVUxUKCRiYXNoX2N2X2dldGN3ZF9tYWxsb2MpCitpZiB0ZXN0ICRiYXNoX2N2X2dldGN3ZF9tYWxsb2MgPSBubzsgdGhlbgogQUNfREVGSU5FKEdFVENXRF9CUk9LRU4pCiBBQ19MSUJPQkooZ2V0Y3dkKQogZmkKQEAgLTk4MSwxMSArOTQyLDEyIEBACiBfYmFzaF9uZWVkbXNnPQogZmkKIEFDX0NBQ0hFX1ZBTChiYXNoX2N2X3Rlcm1jYXBfbGliLAotW0FDX0NIRUNLX0xJQih0ZXJtY2FwLCB0Z2V0ZW50LCBiYXNoX2N2X3Rlcm1jYXBfbGliPWxpYnRlcm1jYXAsCitbQUNfQ0hFQ0tfRlVOQyh0Z2V0ZW50LCBiYXNoX2N2X3Rlcm1jYXBfbGliPWxpYmMsCisgIFtBQ19DSEVDS19MSUIodGVybWNhcCwgdGdldGVudCwgYmFzaF9jdl90ZXJtY2FwX2xpYj1saWJ0ZXJtY2FwLAogICAgIFtBQ19DSEVDS19MSUIodGluZm8sIHRnZXRlbnQsIGJhc2hfY3ZfdGVybWNhcF9saWI9bGlidGluZm8sCiAgICAgICAgIFtBQ19DSEVDS19MSUIoY3Vyc2VzLCB0Z2V0ZW50LCBiYXNoX2N2X3Rlcm1jYXBfbGliPWxpYmN1cnNlcywKIAkgICAgW0FDX0NIRUNLX0xJQihuY3Vyc2VzLCB0Z2V0ZW50LCBiYXNoX2N2X3Rlcm1jYXBfbGliPWxpYm5jdXJzZXMsCi0JICAgICAgICBiYXNoX2N2X3Rlcm1jYXBfbGliPWdudXRlcm1jYXApXSldKV0pXSkKKwkgICAgICAgIGJhc2hfY3ZfdGVybWNhcF9saWI9Z251dGVybWNhcCldKV0pXSldKV0pCiBpZiB0ZXN0ICJYJF9iYXNoX25lZWRtc2ciID0gIlh5ZXMiOyB0aGVuCiBBQ19NU0dfQ0hFQ0tJTkcod2hpY2ggbGlicmFyeSBoYXMgdGhlIHRlcm1jYXAgZnVuY3Rpb25zKQogZmkKQEAgLTEwMDMsNiArOTY1LDkgQEAKIGVsaWYgdGVzdCAkYmFzaF9jdl90ZXJtY2FwX2xpYiA9IGxpYm5jdXJzZXM7IHRoZW4KIFRFUk1DQVBfTElCPS1sbmN1cnNlcwogVEVSTUNBUF9ERVA9CitlbGlmIHRlc3QgJGJhc2hfY3ZfdGVybWNhcF9saWIgPSBsaWJjOyB0aGVuCitURVJNQ0FQX0xJQj0KK1RFUk1DQVBfREVQPQogZWxzZQogVEVSTUNBUF9MSUI9LWxjdXJzZXMKIFRFUk1DQVBfREVQPQpAQCAtMTA2MSw3ICsxMDI2LDcgQEAKIAogQUNfREVGVU4oQkFTSF9TVFJVQ1RfRElSRU5UX0RfSU5PLAogW0FDX1JFUVVJUkUoW0FDX0hFQURFUl9ESVJFTlRdKQotQUNfTVNHX0NIRUNLSU5HKGlmIHN0cnVjdCBkaXJlbnQgaGFzIGEgZF9pbm8gbWVtYmVyKQorQUNfTVNHX0NIRUNLSU5HKGZvciBzdHJ1Y3QgZGlyZW50LmRfaW5vKQogQUNfQ0FDSEVfVkFMKGJhc2hfY3ZfZGlyZW50X2hhc19kaW5vLAogW0FDX1RSWV9DT01QSUxFKFsKICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtMTA4OCwxMyArMTA1MywxMyBAQAogXSwgYmFzaF9jdl9kaXJlbnRfaGFzX2Rpbm89eWVzLCBiYXNoX2N2X2RpcmVudF9oYXNfZGlubz1ubyldKQogQUNfTVNHX1JFU1VMVCgkYmFzaF9jdl9kaXJlbnRfaGFzX2Rpbm8pCiBpZiB0ZXN0ICRiYXNoX2N2X2RpcmVudF9oYXNfZGlubyA9IHllczsgdGhlbgotQUNfREVGSU5FKFNUUlVDVF9ESVJFTlRfSEFTX0RfSU5PKQorQUNfREVGSU5FKEhBVkVfU1RSVUNUX0RJUkVOVF9EX0lOTykKIGZpCiBdKQogCiBBQ19ERUZVTihCQVNIX1NUUlVDVF9ESVJFTlRfRF9GSUxFTk8sCiBbQUNfUkVRVUlSRShbQUNfSEVBREVSX0RJUkVOVF0pCi1BQ19NU0dfQ0hFQ0tJTkcoaWYgc3RydWN0IGRpcmVudCBoYXMgYSBkX2ZpbGVubyBtZW1iZXIpCitBQ19NU0dfQ0hFQ0tJTkcoZm9yIHN0cnVjdCBkaXJlbnQuZF9maWxlbm8pCiBBQ19DQUNIRV9WQUwoYmFzaF9jdl9kaXJlbnRfaGFzX2RfZmlsZW5vLAogW0FDX1RSWV9DT01QSUxFKFsKICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtMTEyMSw3ICsxMDg2LDQwIEBACiBdLCBiYXNoX2N2X2RpcmVudF9oYXNfZF9maWxlbm89eWVzLCBiYXNoX2N2X2RpcmVudF9oYXNfZF9maWxlbm89bm8pXSkKIEFDX01TR19SRVNVTFQoJGJhc2hfY3ZfZGlyZW50X2hhc19kX2ZpbGVubykKIGlmIHRlc3QgJGJhc2hfY3ZfZGlyZW50X2hhc19kX2ZpbGVubyA9IHllczsgdGhlbgotQUNfREVGSU5FKFNUUlVDVF9ESVJFTlRfSEFTX0RfRklMRU5PKQorQUNfREVGSU5FKEhBVkVfU1RSVUNUX0RJUkVOVF9EX0ZJTEVOTykKK2ZpCitdKQorCitBQ19ERUZVTihCQVNIX1NUUlVDVF9ESVJFTlRfRF9OQU1MRU4sCitbQUNfUkVRVUlSRShbQUNfSEVBREVSX0RJUkVOVF0pCitBQ19NU0dfQ0hFQ0tJTkcoZm9yIHN0cnVjdCBkaXJlbnQuZF9uYW1sZW4pCitBQ19DQUNIRV9WQUwoYmFzaF9jdl9kaXJlbnRfaGFzX2RfbmFtbGVuLAorW0FDX1RSWV9DT01QSUxFKFsKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2lmZGVmIEhBVkVfVU5JU1REX0gKKyMgaW5jbHVkZSA8dW5pc3RkLmg+CisjZW5kaWYgLyogSEFWRV9VTklTVERfSCAqLworI2lmIGRlZmluZWQoSEFWRV9ESVJFTlRfSCkKKyMgaW5jbHVkZSA8ZGlyZW50Lmg+CisjZWxzZQorIyBkZWZpbmUgZGlyZW50IGRpcmVjdAorIyBpZmRlZiBIQVZFX1NZU19ORElSX0gKKyMgIGluY2x1ZGUgPHN5cy9uZGlyLmg+CisjIGVuZGlmIC8qIFNZU05ESVIgKi8KKyMgaWZkZWYgSEFWRV9TWVNfRElSX0gKKyMgIGluY2x1ZGUgPHN5cy9kaXIuaD4KKyMgZW5kaWYgLyogU1lTRElSICovCisjIGlmZGVmIEhBVkVfTkRJUl9ICisjICBpbmNsdWRlIDxuZGlyLmg+CisjIGVuZGlmCisjZW5kaWYgLyogSEFWRV9ESVJFTlRfSCAqLworXSxbCitzdHJ1Y3QgZGlyZW50IGQ7IGludCB6OyB6ID0gZC5kX25hbWxlbjsKK10sIGJhc2hfY3ZfZGlyZW50X2hhc19kX25hbWxlbj15ZXMsIGJhc2hfY3ZfZGlyZW50X2hhc19kX25hbWxlbj1ubyldKQorQUNfTVNHX1JFU1VMVCgkYmFzaF9jdl9kaXJlbnRfaGFzX2RfbmFtbGVuKQoraWYgdGVzdCAkYmFzaF9jdl9kaXJlbnRfaGFzX2RfbmFtbGVuID0geWVzOyB0aGVuCitBQ19ERUZJTkUoSEFWRV9TVFJVQ1RfRElSRU5UX0RfTkFNTEVOKQogZmkKIF0pCiAKQEAgLTExNDEsNiArMTEzOSwyMiBAQAogZmkKIF0pCiAKK0FDX0RFRlVOKEJBU0hfU1RSVUNUX1RJTUVaT05FLAorW0FDX01TR19DSEVDS0lORyhmb3Igc3RydWN0IHRpbWV6b25lIGluIHN5cy90aW1lLmggYW5kIHRpbWUuaCkKK0FDX0NBQ0hFX1ZBTChiYXNoX2N2X3N0cnVjdF90aW1lem9uZSwKK1sKK0FDX0VHUkVQX0hFQURFUihzdHJ1Y3QgdGltZXpvbmUsIHN5cy90aW1lLmgsCisJCWJhc2hfY3Zfc3RydWN0X3RpbWV6b25lPXllcywKKwkJQUNfRUdSRVBfSEVBREVSKHN0cnVjdCB0aW1lem9uZSwgdGltZS5oLAorCQkJYmFzaF9jdl9zdHJ1Y3RfdGltZXpvbmU9eWVzLAorCQkJYmFzaF9jdl9zdHJ1Y3RfdGltZXpvbmU9bm8pKQorXSkKK0FDX01TR19SRVNVTFQoJGJhc2hfY3Zfc3RydWN0X3RpbWV6b25lKQoraWYgdGVzdCAkYmFzaF9jdl9zdHJ1Y3RfdGltZXpvbmUgPSB5ZXM7IHRoZW4KKyAgQUNfREVGSU5FKEhBVkVfU1RSVUNUX1RJTUVaT05FKQorZmkKK10pCisKIEFDX0RFRlVOKEJBU0hfU1RSVUNUX1dJTlNJWkUsCiBbQUNfTVNHX0NIRUNLSU5HKGZvciBzdHJ1Y3Qgd2luc2l6ZSBpbiBzeXMvaW9jdGwuaCBhbmQgdGVybWlvcy5oKQogQUNfQ0FDSEVfVkFMKGJhc2hfY3Zfc3RydWN0X3dpbnNpemVfaGVhZGVyLApAQCAtMTUyNiw5ICsxNTQwLDE2IEBACiBBQ19ERUZVTihCQVNIX0NIRUNLX0RFVl9GRCwKIFtBQ19NU0dfQ0hFQ0tJTkcod2hldGhlciAvZGV2L2ZkIGlzIGF2YWlsYWJsZSkKIEFDX0NBQ0hFX1ZBTChiYXNoX2N2X2Rldl9mZCwKLVtpZiB0ZXN0IC1kIC9kZXYvZmQgICYmIHRlc3QgLXIgL2Rldi9mZC8wOyB0aGVuCi0gICBiYXNoX2N2X2Rldl9mZD1zdGFuZGFyZAotIGVsaWYgdGVzdCAtZCAvcHJvYy9zZWxmL2ZkICYmIHRlc3QgLXIgL3Byb2Mvc2VsZi9mZC8wOyB0aGVuCitbaWYgdGVzdCAtZCAvZGV2L2ZkICAmJiB0ZXN0IC1yIC9kZXYvZmQvMCA8IC9kZXYvbnVsbDsgdGhlbgorIyBjaGVjayBmb3Igc3lzdGVtcyBsaWtlIEZyZWVCU0QgNSB0aGF0IG9ubHkgcHJvdmlkZSAvZGV2L2ZkL1swMTJdCisgICBleGVjIDM8JjAKKyAgIGlmIHRlc3QgLXIgL2Rldi9mZC8zOyB0aGVuCisgICAgIGJhc2hfY3ZfZGV2X2ZkPXN0YW5kYXJkCisgICBlbHNlCisgICAgIGJhc2hfY3ZfZGV2X2ZkPWFic2VudAorICAgZmkKKyAgIGV4ZWMgMzwmLQorIGVsaWYgdGVzdCAtZCAvcHJvYy9zZWxmL2ZkICYmIHRlc3QgLXIgL3Byb2Mvc2VsZi9mZC8wIDwgL2Rldi9udWxsOyB0aGVuCiAgICBiYXNoX2N2X2Rldl9mZD13aGFja3kKICBlbHNlCiAgICBiYXNoX2N2X2Rldl9mZD1hYnNlbnQKQEAgLTE1NDcsOSArMTU2OCw5IEBACiBBQ19ERUZVTihCQVNIX0NIRUNLX0RFVl9TVERJTiwKIFtBQ19NU0dfQ0hFQ0tJTkcod2hldGhlciAvZGV2L3N0ZGluIHN0ZG91dCBzdGRlcnIgYXJlIGF2YWlsYWJsZSkKIEFDX0NBQ0hFX1ZBTChiYXNoX2N2X2Rldl9zdGRpbiwKLVtpZiB0ZXN0IC1kIC9kZXYvZmQgJiYgdGVzdCAtciAvZGV2L3N0ZGluOyB0aGVuCitbaWYgdGVzdCAtZCAvZGV2L2ZkICYmIHRlc3QgLXIgL2Rldi9zdGRpbiA8IC9kZXYvbnVsbDsgdGhlbgogICAgYmFzaF9jdl9kZXZfc3RkaW49cHJlc2VudAotIGVsaWYgdGVzdCAtZCAvcHJvYy9zZWxmL2ZkICYmIHRlc3QgLXIgL2Rldi9zdGRpbjsgdGhlbgorIGVsaWYgdGVzdCAtZCAvcHJvYy9zZWxmL2ZkICYmIHRlc3QgLXIgL2Rldi9zdGRpbiA8IC9kZXYvbnVsbDsgdGhlbgogICAgYmFzaF9jdl9kZXZfc3RkaW49cHJlc2VudAogIGVsc2UKICAgIGJhc2hfY3ZfZGV2X3N0ZGluPWFic2VudApAQCAtMTY1MywxNyArMTY3NCwxOSBAQAogQUNfQ0hFQ0tfSEVBREVSUyhsYW5naW5mby5oKQogCiBBQ19DSEVDS19GVU5DKG1ic3J0b3djcywgQUNfREVGSU5FKEhBVkVfTUJTUlRPV0NTKSkKK0FDX0NIRUNLX0ZVTkMobWJydG93YywgQUNfREVGSU5FKEhBVkVfTUJSVE9XQykpCitBQ19DSEVDS19GVU5DKG1icmxlbiwgQUNfREVGSU5FKEhBVkVfTUJSTEVOKSkKK0FDX0NIRUNLX0ZVTkMod2N0b21iLCBBQ19ERUZJTkUoSEFWRV9XQ1RPTUIpKQogQUNfQ0hFQ0tfRlVOQyh3Y3dpZHRoLCBBQ19ERUZJTkUoSEFWRV9XQ1dJRFRIKSkKK0FDX0NIRUNLX0ZVTkMod2NzZHVwLCBBQ19ERUZJTkUoSEFWRV9XQ1NEVVApKQogCiBBQ19DQUNIRV9DSEVDSyhbZm9yIG1ic3RhdGVfdF0sIGJhc2hfY3ZfaGF2ZV9tYnN0YXRlX3QsCi1bQUNfVFJZX1JVTihbCi0jaW5jbHVkZSA8d2NoYXIuaD4KLWludAotbWFpbiAoKQoteworW0FDX1RSWV9DT01QSUxFKFsKKyNpbmNsdWRlIDx3Y2hhci5oPl0sIFsKICAgbWJzdGF0ZV90IHBzOwotICByZXR1cm4gMDsKLX1dLCBiYXNoX2N2X2hhdmVfbWJzdGF0ZV90PXllcywgIGJhc2hfY3ZfaGF2ZV9tYnN0YXRlX3Q9bm8pXSkKKyAgbWJzdGF0ZV90ICpwc3A7CisgIHBzcCA9IChtYnN0YXRlX3QgKikwOworXSwgYmFzaF9jdl9oYXZlX21ic3RhdGVfdD15ZXMsICBiYXNoX2N2X2hhdmVfbWJzdGF0ZV90PW5vKV0pCiBpZiB0ZXN0ICRiYXNoX2N2X2hhdmVfbWJzdGF0ZV90ID0geWVzOyB0aGVuCiAJQUNfREVGSU5FKEhBVkVfTUJTVEFURV9UKQogZmkKQEAgLTE3MTIsMjMgKzE3MzUsMzAgQEAKIENGTEFHUz0iJENGTEFHUyAtSSR7YWNfY3ZfcmxfaW5jbHVkZWRpcn0iCiBMREZMQUdTPSIkTERGTEFHUyAtTCR7YWNfY3ZfcmxfbGliZGlyfSIKIAotQUNfVFJZX1JVTihbCitBQ19DQUNIRV9WQUwoYWNfY3ZfcmxfdmVyc2lvbiwKK1tBQ19UUllfUlVOKFsKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHJlYWRsaW5lL3JlYWRsaW5lLmg+CiAKK2V4dGVybiBpbnQgcmxfZ251X3JlYWRsaW5lX3A7CisKIG1haW4oKQogewogCUZJTEUgKmZwOwogCWZwID0gZm9wZW4oImNvbmZ0ZXN0LnJsdiIsICJ3Iik7Ci0JaWYgKGZwID09IDApIGV4aXQoMSk7Ci0JZnByaW50ZihmcCwgIiVzXG4iLCBybF9saWJyYXJ5X3ZlcnNpb24gPyBybF9saWJyYXJ5X3ZlcnNpb24gOiAiMC4wIik7CisJaWYgKGZwID09IDApCisJCWV4aXQoMSk7CisJaWYgKHJsX2dudV9yZWFkbGluZV9wICE9IDEpCisJCWZwcmludGYoZnAsICIwLjBcbiIpOworCWVsc2UKKwkJZnByaW50ZihmcCwgIiVzXG4iLCBybF9saWJyYXJ5X3ZlcnNpb24gPyBybF9saWJyYXJ5X3ZlcnNpb24gOiAiMC4wIik7CiAJZmNsb3NlKGZwKTsKIAlleGl0KDApOwogfQogXSwKIGFjX2N2X3JsX3ZlcnNpb249YGNhdCBjb25mdGVzdC5ybHZgLAogYWNfY3ZfcmxfdmVyc2lvbj0nMC4wJywKLWFjX2N2X3JsX3ZlcnNpb249JzQuMicpCithY19jdl9ybF92ZXJzaW9uPSc0LjInKV0pCiAKIENGTEFHUz0iJF9zYXZlX0NGTEFHUyIKIExERkxBR1M9IiRfc2F2ZV9MREZMQUdTIgpAQCAtMTc5MCwzICsxODIwLDIxNDAgQEAKIAogZmkKIF0pCisKK0FDX0RFRlVOKEJBU0hfRlVOQ19DVFlQRV9OT05BU0NJSSwKK1sKK0FDX01TR19DSEVDS0lORyh3aGV0aGVyIHRoZSBjdHlwZSBtYWNyb3MgYWNjZXB0IG5vbi1hc2NpaSBjaGFyYWN0ZXJzKQorQUNfQ0FDSEVfVkFMKGJhc2hfY3ZfZnVuY19jdHlwZV9ub25hc2NpaSwKK1tBQ19UUllfUlVOKFsKKyNpZmRlZiBIQVZFX0xPQ0FMRV9ICisjaW5jbHVkZSA8bG9jYWxlLmg+CisjZW5kaWYKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGN0eXBlLmg+CisKK21haW4oYywgdikKK2ludAljOworY2hhcgkqdltdOworeworCWNoYXIJKmRlZmxvY2FsZTsKKwl1bnNpZ25lZCBjaGFyIHg7CisJaW50CXIxLCByMjsKKworI2lmZGVmIEhBVkVfU0VUTE9DQUxFCisJLyogV2UgdGFrZSBhIHNob3QgaGVyZS4gIElmIHRoYXQgbG9jYWxlIGlzIG5vdCBrbm93biwgdHJ5IHRoZQorCSAgIHN5c3RlbSBkZWZhdWx0LiAgV2UgdHJ5IHRoaXMgb25lIGJlY2F1c2UgJ1wzNDInICgyMjYpIGlzCisJICAga25vd24gdG8gYmUgYSBwcmludGFibGUgY2hhcmFjdGVyIGluIHRoYXQgbG9jYWxlLiAqLworCWRlZmxvY2FsZSA9IHNldGxvY2FsZShMQ19BTEwsICJlbl9VUy5JU084ODU5LTEiKTsKKwlpZiAoZGVmbG9jYWxlID09IDApCisJCWRlZmxvY2FsZSA9IHNldGxvY2FsZShMQ19BTEwsICIiKTsKKyNlbmRpZgorCisJeCA9ICdcMzQyJzsKKwlyMSA9IGlzcHJpbnQoeCk7CisJeCAtPSAxMjg7CisJcjIgPSBpc3ByaW50KHgpOworCWV4aXQgKHIxID09IDAgfHwgcjIgPT0gMCk7Cit9CitdLCBiYXNoX2N2X2Z1bmNfY3R5cGVfbm9uYXNjaWk9eWVzLCBiYXNoX2N2X2Z1bmNfY3R5cGVfbm9uYXNjaWk9bm8sCisgICBbQUNfTVNHX1dBUk4oY2Fubm90IGNoZWNrIGN0eXBlIG1hY3JvcyBpZiBjcm9zcyBjb21waWxpbmcgLS0gZGVmYXVsdGluZyB0byBubykKKyAgICBiYXNoX2N2X2Z1bmNfY3R5cGVfbm9uYXNjaWk9bm9dCispXSkKK0FDX01TR19SRVNVTFQoJGJhc2hfY3ZfZnVuY19jdHlwZV9ub25hc2NpaSkKK2lmIHRlc3QgJGJhc2hfY3ZfZnVuY19jdHlwZV9ub25hc2NpaSA9IHllczsgdGhlbgorQUNfREVGSU5FKENUWVBFX05PTl9BU0NJSSkKK2ZpCitdKQorCitBQ19ERUZVTihCQVNIX0NIRUNLX1dDT05USU5VRUQsCitbCitBQ19NU0dfQ0hFQ0tJTkcod2hldGhlciBXQ09OVElOVUVEIGZsYWcgdG8gd2FpdHBpZCBpcyB1bmF2YWlsYWJsZSBvciBhdmFpbGFibGUgYnV0IGJyb2tlbikKK0FDX0NBQ0hFX1ZBTChiYXNoX2N2X3djb250aW51ZWRfYnJva2VuLAorW0FDX1RSWV9SVU4oWworI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy93YWl0Lmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKworI2lmbmRlZiBlcnJubworZXh0ZXJuIGludCBlcnJubzsKKyNlbmRpZgorbWFpbigpCit7CisJaW50CXg7CisKKwl4ID0gd2FpdHBpZCgtMSwgKGludCAqKTAsIFdOT0hBTkd8V0NPTlRJTlVFRCk7CisJaWYgKHggPT0gLTEgJiYgZXJybm8gPT0gRUlOVkFMKQorCQlleGl0ICgxKTsKKwllbHNlCisJCWV4aXQgKDApOworfQorXSwgYmFzaF9jdl93Y29udGludWVkX2Jyb2tlbj1ubyxiYXNoX2N2X3djb250aW51ZWRfYnJva2VuPXllcywKKyAgIFtBQ19NU0dfV0FSTihjYW5ub3QgY2hlY2sgV0NPTlRJTlVFRCBpZiBjcm9zcyBjb21waWxpbmcgLS0gZGVmYXVsdGluZyB0byBubykKKyAgICBiYXNoX2N2X3djb250aW51ZWRfYnJva2VuPW5vXQorKV0pCitBQ19NU0dfUkVTVUxUKCRiYXNoX2N2X3djb250aW51ZWRfYnJva2VuKQoraWYgdGVzdCAkYmFzaF9jdl93Y29udGludWVkX2Jyb2tlbiA9IHllczsgdGhlbgorQUNfREVGSU5FKFdDT05USU5VRURfQlJPS0VOKQorZmkKK10pCisKK2RubAorZG5sIHRlc3RzIGFkZGVkIGZvciBiYXNoZGIKK2RubAorCisKK0FDX0RFRlVOKFtBTV9QQVRIX0xJU1BESVJdLAorIFtBQ19BUkdfV0lUSChsaXNwZGlyLCBBQ19IRUxQX1NUUklORyhbLS13aXRoLWxpc3BkaXJdLCBbb3ZlcnJpZGUgdGhlIGRlZmF1bHQgbGlzcCBkaXJlY3RvcnldKSwKKyAgWyBsaXNwZGlyPSIkd2l0aHZhbCIgCisgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGVyZSAuZWxjIGZpbGVzIHNob3VsZCBnb10pCisgICAgQUNfTVNHX1JFU1VMVChbJGxpc3BkaXJdKV0sCisgIFsKKyAgIyBJZiBzZXQgdG8gdCwgdGhhdCBtZWFucyB3ZSBhcmUgcnVubmluZyBpbiBhIHNoZWxsIHVuZGVyIEVtYWNzLgorICAjIElmIHlvdSBoYXZlIGFuIEVtYWNzIG5hbWVkICJ0IiwgdGhlbiB1c2UgdGhlIGZ1bGwgcGF0aC4KKyAgdGVzdCB4IiRFTUFDUyIgPSB4dCAmJiBFTUFDUz0KKyAgQUNfQ0hFQ0tfUFJPR1MoRU1BQ1MsIGVtYWNzIHhlbWFjcywgbm8pCisgIGlmIHRlc3QgJEVNQUNTICE9ICJubyI7IHRoZW4KKyAgICBpZiB0ZXN0IHgke2xpc3BkaXIrc2V0fSAhPSB4c2V0OyB0aGVuCisgICAgICBBQ19DQUNIRV9DSEVDSyhbd2hlcmUgLmVsYyBmaWxlcyBzaG91bGQgZ29dLCBbYW1fY3ZfbGlzcGRpcl0sIFtkbmwKKwlhbV9jdl9saXNwZGlyPWAkRU1BQ1MgLWJhdGNoIC1xIC1ldmFsICcod2hpbGUgbG9hZC1wYXRoIChwcmluYyAoY29uY2F0IChjYXIgbG9hZC1wYXRoKSAiXG4iKSkgKHNldHEgbG9hZC1wYXRoIChjZHIgbG9hZC1wYXRoKSkpJyB8IHNlZCAtbiAtZSAncywvJCwsJyAtZSAnLy4qXC9saWJcL1woeFw/ZW1hY3NcL3NpdGUtbGlzcFwpJC97cywsJHtsaWJkaXJ9L1wxLDtwO3E7fScgLWUgJy8uKlwvc2hhcmVcL1woeFw/ZW1hY3NcL3NpdGUtbGlzcFwpJC97cywsJHtkYXRhZGlyfS9cMSw7cDtxO30nYAorCWlmIHRlc3QgLXogIiRhbV9jdl9saXNwZGlyIjsgdGhlbgorCSAgYW1fY3ZfbGlzcGRpcj0nJHtkYXRhZGlyfS9lbWFjcy9zaXRlLWxpc3AnCisJZmkKKyAgICAgIF0pCisgICAgICBsaXNwZGlyPSIkYW1fY3ZfbGlzcGRpciIKKyAgICBmaQorICBmaQorIF0pCisgQUNfU1VCU1QobGlzcGRpcikKK10pCisKK2RubAorZG5sIHRlc3RzIGFkZGVkIGZvciBnZXR0ZXh0CitkbmwKKyMgY29kZXNldC5tNCBzZXJpYWwgQU0xIChnZXR0ZXh0LTAuMTAuNDApCitkbmwgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCitkbmwgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmUsIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VCitkbmwgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsCitkbmwgUHVibGljIExpY2Vuc2UsIHRoaXMgZmlsZSBtYXkgYmUgZGlzdHJpYnV0ZWQgYXMgcGFydCBvZiBhIHByb2dyYW0KK2RubCB0aGF0IGNvbnRhaW5zIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB1bmRlcgorZG5sIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyBhcyB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisKK2RubCBGcm9tIEJydW5vIEhhaWJsZS4KKworQUNfREVGVU4oW0FNX0xBTkdJTkZPX0NPREVTRVRdLAorWworICBBQ19DQUNIRV9DSEVDSyhbZm9yIG5sX2xhbmdpbmZvIGFuZCBDT0RFU0VUXSwgYW1fY3ZfbGFuZ2luZm9fY29kZXNldCwKKyAgICBbQUNfVFJZX0xJTksoWyNpbmNsdWRlIDxsYW5naW5mby5oPl0sCisgICAgICBbY2hhciogY3MgPSBubF9sYW5naW5mbyhDT0RFU0VUKTtdLAorICAgICAgYW1fY3ZfbGFuZ2luZm9fY29kZXNldD15ZXMsCisgICAgICBhbV9jdl9sYW5naW5mb19jb2Rlc2V0PW5vKQorICAgIF0pCisgIGlmIHRlc3QgJGFtX2N2X2xhbmdpbmZvX2NvZGVzZXQgPSB5ZXM7IHRoZW4KKyAgICBBQ19ERUZJTkUoSEFWRV9MQU5HSU5GT19DT0RFU0VULCAxLAorICAgICAgW0RlZmluZSBpZiB5b3UgaGF2ZSA8bGFuZ2luZm8uaD4gYW5kIG5sX2xhbmdpbmZvKENPREVTRVQpLl0pCisgIGZpCitdKQorIyBnZXR0ZXh0Lm00IHNlcmlhbCAyMCAoZ2V0dGV4dC0wLjEyKQorZG5sIENvcHlyaWdodCAoQykgMTk5NS0yMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorZG5sIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlLCBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVQorZG5sIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbAorZG5sIFB1YmxpYyBMaWNlbnNlLCB0aGlzIGZpbGUgbWF5IGJlIGRpc3RyaWJ1dGVkIGFzIHBhcnQgb2YgYSBwcm9ncmFtCitkbmwgdGhhdCBjb250YWlucyBhIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgdW5kZXIKK2RubCB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgYXMgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgorZG5sCitkbmwgVGhpcyBmaWxlIGNhbiBjYW4gYmUgdXNlZCBpbiBwcm9qZWN0cyB3aGljaCBhcmUgbm90IGF2YWlsYWJsZSB1bmRlcgorZG5sIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBvciB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKK2RubCBMaWNlbnNlIGJ1dCB3aGljaCBzdGlsbCB3YW50IHRvIHByb3ZpZGUgc3VwcG9ydCBmb3IgdGhlIEdOVSBnZXR0ZXh0CitkbmwgZnVuY3Rpb25hbGl0eS4KK2RubCBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBhY3R1YWwgY29kZSBvZiB0aGUgR05VIGdldHRleHQgbGlicmFyeSBpcyBjb3ZlcmVkCitkbmwgYnkgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGFuZCB0aGUgcmVzdCBvZiB0aGUgR05VCitkbmwgZ2V0dGV4dCBwYWNrYWdlIHBhY2thZ2UgaXMgY292ZXJlZCBieSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCitkbmwgVGhleSBhcmUgKm5vdCogaW4gdGhlIHB1YmxpYyBkb21haW4uCisKK2RubCBBdXRob3JzOgorZG5sICAgVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAY3lnbnVzLmNvbT4sIDE5OTUtMjAwMC4KK2RubCAgIEJydW5vIEhhaWJsZSA8aGFpYmxlQGNsaXNwLmNvbnMub3JnPiwgMjAwMC0yMDAzLgorCitkbmwgTWFjcm8gdG8gYWRkIGZvciB1c2luZyBHTlUgZ2V0dGV4dC4KKworZG5sIFVzYWdlOiBBTV9HTlVfR0VUVEVYVChbSU5UTFNZTUJPTF0sIFtORUVEU1lNQk9MXSwgW0lOVExESVJdKS4KK2RubCBJTlRMU1lNQk9MIGNhbiBiZSBvbmUgb2YgJ2V4dGVybmFsJywgJ25vLWxpYnRvb2wnLCAndXNlLWxpYnRvb2wnLiBUaGUKK2RubCAgICBkZWZhdWx0IChpZiBpdCBpcyBub3Qgc3BlY2lmaWVkIG9yIGVtcHR5KSBpcyAnbm8tbGlidG9vbCcuCitkbmwgICAgSU5UTFNZTUJPTCBzaG91bGQgYmUgJ2V4dGVybmFsJyBmb3IgcGFja2FnZXMgd2l0aCBubyBpbnRsIGRpcmVjdG9yeSwKK2RubCAgICBhbmQgJ25vLWxpYnRvb2wnIG9yICd1c2UtbGlidG9vbCcgZm9yIHBhY2thZ2VzIHdpdGggYW4gaW50bCBkaXJlY3RvcnkuCitkbmwgICAgSWYgSU5UTFNZTUJPTCBpcyAndXNlLWxpYnRvb2wnLCB0aGVuIGEgbGlidG9vbCBsaWJyYXJ5CitkbmwgICAgJCh0b3BfYnVpbGRkaXIpL2ludGwvbGliaW50bC5sYSB3aWxsIGJlIGNyZWF0ZWQgKHNoYXJlZCBhbmQvb3Igc3RhdGljLAorZG5sICAgIGRlcGVuZGluZyBvbiAtLXtlbmFibGUsZGlzYWJsZX0te3NoYXJlZCxzdGF0aWN9IGFuZCBvbiB0aGUgcHJlc2VuY2Ugb2YKK2RubCAgICBBTS1ESVNBQkxFLVNIQVJFRCkuIElmIElOVExTWU1CT0wgaXMgJ25vLWxpYnRvb2wnLCBhIHN0YXRpYyBsaWJyYXJ5CitkbmwgICAgJCh0b3BfYnVpbGRkaXIpL2ludGwvbGliaW50bC5hIHdpbGwgYmUgY3JlYXRlZC4KK2RubCBJZiBORUVEU1lNQk9MIGlzIHNwZWNpZmllZCBhbmQgaXMgJ25lZWQtbmdldHRleHQnLCB0aGVuIEdOVSBnZXR0ZXh0CitkbmwgICAgaW1wbGVtZW50YXRpb25zIChpbiBsaWJjIG9yIGxpYmludGwpIHdpdGhvdXQgdGhlIG5nZXR0ZXh0KCkgZnVuY3Rpb24KK2RubCAgICB3aWxsIGJlIGlnbm9yZWQuICBJZiBORUVEU1lNQk9MIGlzIHNwZWNpZmllZCBhbmQgaXMKK2RubCAgICAnbmVlZC1mb3JtYXRzdHJpbmctbWFjcm9zJywgdGhlbiBHTlUgZ2V0dGV4dCBpbXBsZW1lbnRhdGlvbnMgdGhhdCBkb24ndAorZG5sICAgIHN1cHBvcnQgdGhlIElTTyBDIDk5IDxpbnR0eXBlcy5oPiBmb3JtYXRzdHJpbmcgbWFjcm9zIHdpbGwgYmUgaWdub3JlZC4KK2RubCBJTlRMRElSIGlzIHVzZWQgdG8gZmluZCB0aGUgaW50bCBsaWJyYXJpZXMuICBJZiBlbXB0eSwKK2RubCAgICB0aGUgdmFsdWUgYCQodG9wX2J1aWxkZGlyKS9pbnRsLycgaXMgdXNlZC4KK2RubAorZG5sIFRoZSByZXN1bHQgb2YgdGhlIGNvbmZpZ3VyYXRpb24gaXMgb25lIG9mIHRocmVlIGNhc2VzOgorZG5sIDEpIEdOVSBnZXR0ZXh0LCBhcyBpbmNsdWRlZCBpbiB0aGUgaW50bCBzdWJkaXJlY3RvcnksIHdpbGwgYmUgY29tcGlsZWQKK2RubCAgICBhbmQgdXNlZC4KK2RubCAgICBDYXRhbG9nIGZvcm1hdDogR05VIC0tPiBpbnN0YWxsIGluICQoZGF0YWRpcikKK2RubCAgICBDYXRhbG9nIGV4dGVuc2lvbjogLm1vIGFmdGVyIGluc3RhbGxhdGlvbiwgLmdtbyBpbiBzb3VyY2UgdHJlZQorZG5sIDIpIEdOVSBnZXR0ZXh0IGhhcyBiZWVuIGZvdW5kIGluIHRoZSBzeXN0ZW0ncyBDIGxpYnJhcnkuCitkbmwgICAgQ2F0YWxvZyBmb3JtYXQ6IEdOVSAtLT4gaW5zdGFsbCBpbiAkKGRhdGFkaXIpCitkbmwgICAgQ2F0YWxvZyBleHRlbnNpb246IC5tbyBhZnRlciBpbnN0YWxsYXRpb24sIC5nbW8gaW4gc291cmNlIHRyZWUKK2RubCAzKSBObyBpbnRlcm5hdGlvbmFsaXphdGlvbiwgYWx3YXlzIHVzZSBFbmdsaXNoIG1zZ2lkLgorZG5sICAgIENhdGFsb2cgZm9ybWF0OiBub25lCitkbmwgICAgQ2F0YWxvZyBleHRlbnNpb246IG5vbmUKK2RubCBJZiBJTlRMU1lNQk9MIGlzICdleHRlcm5hbCcsIG9ubHkgY2FzZXMgMiBhbmQgMyBjYW4gb2NjdXIuCitkbmwgVGhlIHVzZSBvZiAuZ21vIGlzIGhpc3RvcmljYWwgKGl0IHdhcyBuZWVkZWQgdG8gYXZvaWQgb3ZlcndyaXRpbmcgdGhlCitkbmwgR05VIGZvcm1hdCBjYXRhbG9ncyB3aGVuIGJ1aWxkaW5nIG9uIGEgcGxhdGZvcm0gd2l0aCBhbiBYL09wZW4gZ2V0dGV4dCksCitkbmwgYnV0IHdlIGtlZXAgaXQgaW4gb3JkZXIgbm90IHRvIGZvcmNlIGlycmVsZXZhbnQgZmlsZW5hbWUgY2hhbmdlcyBvbiB0aGUKK2RubCBtYWludGFpbmVycy4KK2RubAorQUNfREVGVU4oW0FNX0dOVV9HRVRURVhUXSwKK1sKKyAgZG5sIEFyZ3VtZW50IGNoZWNraW5nLgorICBpZmVsc2UoWyQxXSwgW10sICwgW2lmZWxzZShbJDFdLCBbZXh0ZXJuYWxdLCAsIFtpZmVsc2UoWyQxXSwgW25vLWxpYnRvb2xdLCAsIFtpZmVsc2UoWyQxXSwgW3VzZS1saWJ0b29sXSwgLAorICAgIFtlcnJwcmludChbRVJST1I6IGludmFsaWQgZmlyc3QgYXJndW1lbnQgdG8gQU1fR05VX0dFVFRFWFQKK10pXSldKV0pXSkKKyAgaWZlbHNlKFskMl0sIFtdLCAsIFtpZmVsc2UoWyQyXSwgW25lZWQtbmdldHRleHRdLCAsIFtpZmVsc2UoWyQyXSwgW25lZWQtZm9ybWF0c3RyaW5nLW1hY3Jvc10sICwKKyAgICBbZXJycHJpbnQoW0VSUk9SOiBpbnZhbGlkIHNlY29uZCBhcmd1bWVudCB0byBBTV9HTlVfR0VUVEVYVAorXSldKV0pXSkKKyAgZGVmaW5lKGd0X2luY2x1ZGVkX2ludGwsIGlmZWxzZShbJDFdLCBbZXh0ZXJuYWxdLCBbbm9dLCBbeWVzXSkpCisgIGRlZmluZShndF9saWJ0b29sX3N1ZmZpeF9wcmVmaXgsIGlmZWxzZShbJDFdLCBbdXNlLWxpYnRvb2xdLCBbbF0sIFtdKSkKKworICBBQ19SRVFVSVJFKFtBTV9QT19TVUJESVJTXSlkbmwKKyAgaWZlbHNlKGd0X2luY2x1ZGVkX2ludGwsIHllcywgWworICAgIEFDX1JFUVVJUkUoW0FNX0lOVExfU1VCRElSXSlkbmwKKyAgXSkKKworICBkbmwgUHJlcmVxdWlzaXRlcyBvZiBBQ19MSUJfTElOS0ZMQUdTX0JPRFkuCisgIEFDX1JFUVVJUkUoW0FDX0xJQl9QUkVQQVJFX1BSRUZJWF0pCisgIEFDX1JFUVVJUkUoW0FDX0xJQl9SUEFUSF0pCisKKyAgZG5sIFNvbWV0aW1lcyBsaWJpbnRsIHJlcXVpcmVzIGxpYmljb252LCBzbyBmaXJzdCBzZWFyY2ggZm9yIGxpYmljb252LgorICBkbmwgSWRlYWxseSB3ZSB3b3VsZCBkbyB0aGlzIHNlYXJjaCBvbmx5IGFmdGVyIHRoZQorICBkbmwgICAgICBpZiB0ZXN0ICIkVVNFX05MUyIgPSAieWVzIjsgdGhlbgorICBkbmwgICAgICAgIGlmIHRlc3QgIiRndF9jdl9mdW5jX2dudWdldHRleHRfbGliYyIgIT0gInllcyI7IHRoZW4KKyAgZG5sIHRlc3RzLiBCdXQgaWYgY29uZmlndXJlLmluIGludm9rZXMgQU1fSUNPTlYgYWZ0ZXIgQU1fR05VX0dFVFRFWFQKKyAgZG5sIHRoZSBjb25maWd1cmUgc2NyaXB0IHdvdWxkIG5lZWQgdG8gY29udGFpbiB0aGUgc2FtZSBzaGVsbCBjb2RlCisgIGRubCBhZ2Fpbiwgb3V0c2lkZSBhbnkgJ2lmJy4gVGhlcmUgYXJlIHR3byBzb2x1dGlvbnM6CisgIGRubCAtIEludm9rZSBBTV9JQ09OVl9MSU5LRkxBR1NfQk9EWSBoZXJlLCBvdXRzaWRlIGFueSAnaWYnLgorICBkbmwgLSBDb250cm9sIHRoZSBleHBhbnNpb25zIGluIG1vcmUgZGV0YWlsIHVzaW5nIEFDX1BST1ZJREVfSUZFTFNFLgorICBkbmwgU2luY2UgQUNfUFJPVklERV9JRkVMU0UgaXMgb25seSBpbiBhdXRvY29uZiA+PSAyLjUyIGFuZCBub3QKKyAgZG5sIGRvY3VtZW50ZWQsIHdlIGF2b2lkIGl0LgorICBpZmVsc2UoZ3RfaW5jbHVkZWRfaW50bCwgeWVzLCAsIFsKKyAgICBBQ19SRVFVSVJFKFtBTV9JQ09OVl9MSU5LRkxBR1NfQk9EWV0pCisgIF0pCisKKyAgZG5sIFNldCBVU0VfTkxTLgorICBBTV9OTFMKKworICBpZmVsc2UoZ3RfaW5jbHVkZWRfaW50bCwgeWVzLCBbCisgICAgQlVJTERfSU5DTFVERURfTElCSU5UTD1ubworICAgIFVTRV9JTkNMVURFRF9MSUJJTlRMPW5vCisgIF0pCisgIExJQklOVEw9CisgIExUTElCSU5UTD0KKyAgUE9TVUI9CisKKyAgZG5sIElmIHdlIHVzZSBOTFMgZmlndXJlIG91dCB3aGF0IG1ldGhvZAorICBpZiB0ZXN0ICIkVVNFX05MUyIgPSAieWVzIjsgdGhlbgorICAgIGd0X3VzZV9wcmVpbnN0YWxsZWRfZ251Z2V0dGV4dD1ubworICAgIGlmZWxzZShndF9pbmNsdWRlZF9pbnRsLCB5ZXMsIFsKKyAgICAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciBpbmNsdWRlZCBnZXR0ZXh0IGlzIHJlcXVlc3RlZF0pCisgICAgICBBQ19BUkdfV0lUSChpbmNsdWRlZC1nZXR0ZXh0LAorICAgICAgICBbICAtLXdpdGgtaW5jbHVkZWQtZ2V0dGV4dCB1c2UgdGhlIEdOVSBnZXR0ZXh0IGxpYnJhcnkgaW5jbHVkZWQgaGVyZV0sCisgICAgICAgIG5sc19jdl9mb3JjZV91c2VfZ251X2dldHRleHQ9JHdpdGh2YWwsCisgICAgICAgIG5sc19jdl9mb3JjZV91c2VfZ251X2dldHRleHQ9bm8pCisgICAgICBBQ19NU0dfUkVTVUxUKCRubHNfY3ZfZm9yY2VfdXNlX2dudV9nZXR0ZXh0KQorCisgICAgICBubHNfY3ZfdXNlX2dudV9nZXR0ZXh0PSIkbmxzX2N2X2ZvcmNlX3VzZV9nbnVfZ2V0dGV4dCIKKyAgICAgIGlmIHRlc3QgIiRubHNfY3ZfZm9yY2VfdXNlX2dudV9nZXR0ZXh0IiAhPSAieWVzIjsgdGhlbgorICAgIF0pCisgICAgICAgIGRubCBVc2VyIGRvZXMgbm90IGluc2lzdCBvbiB1c2luZyBHTlUgTkxTIGxpYnJhcnkuICBGaWd1cmUgb3V0IHdoYXQKKyAgICAgICAgZG5sIHRvIHVzZS4gIElmIEdOVSBnZXR0ZXh0IGlzIGF2YWlsYWJsZSB3ZSB1c2UgdGhpcy4gIEVsc2Ugd2UgaGF2ZQorICAgICAgICBkbmwgdG8gZmFsbCBiYWNrIHRvIEdOVSBOTFMgbGlicmFyeS4KKworICAgICAgICBkbmwgQWRkIGEgdmVyc2lvbiBudW1iZXIgdG8gdGhlIGNhY2hlIG1hY3Jvcy4KKyAgICAgICAgZGVmaW5lKFtndF9hcGlfdmVyc2lvbl0sIGlmZWxzZShbJDJdLCBbbmVlZC1mb3JtYXRzdHJpbmctbWFjcm9zXSwgMywgaWZlbHNlKFskMl0sIFtuZWVkLW5nZXR0ZXh0XSwgMiwgMSkpKQorICAgICAgICBkZWZpbmUoW2d0X2N2X2Z1bmNfZ251Z2V0dGV4dF9saWJjXSwgW2d0X2N2X2Z1bmNfZ251Z2V0dGV4dF1ndF9hcGlfdmVyc2lvbltfbGliY10pCisgICAgICAgIGRlZmluZShbZ3RfY3ZfZnVuY19nbnVnZXR0ZXh0X2xpYmludGxdLCBbZ3RfY3ZfZnVuY19nbnVnZXR0ZXh0XWd0X2FwaV92ZXJzaW9uW19saWJpbnRsXSkKKworICAgICAgICBBQ19DQUNIRV9DSEVDSyhbZm9yIEdOVSBnZXR0ZXh0IGluIGxpYmNdLCBndF9jdl9mdW5jX2dudWdldHRleHRfbGliYywKKyAgICAgICAgIFtBQ19UUllfTElOSyhbI2luY2x1ZGUgPGxpYmludGwuaD4KK11pZmVsc2UoWyQyXSwgW25lZWQtZm9ybWF0c3RyaW5nLW1hY3Jvc10sCitbI2lmbmRlZiBfX0dOVV9HRVRURVhUX1NVUFBPUlRFRF9SRVZJU0lPTgorI2RlZmluZSBfX0dOVV9HRVRURVhUX1NVUFBPUlRFRF9SRVZJU0lPTihtYWpvcikgKChtYWpvcikgPT0gMCA/IDAgOiAtMSkKKyNlbmRpZgorY2hhbmdlcXVvdGUoLClkbmwKK3R5cGVkZWYgaW50IGFycmF5IFsyICogKF9fR05VX0dFVFRFWFRfU1VQUE9SVEVEX1JFVklTSU9OKDApID49IDEpIC0gMV07CitjaGFuZ2VxdW90ZShbLF0pZG5sCitdLCBbXSlbZXh0ZXJuIGludCBfbmxfbXNnX2NhdF9jbnRyOworZXh0ZXJuIGludCAqX25sX2RvbWFpbl9iaW5kaW5ncztdLAorICAgICAgICAgICAgW2JpbmR0ZXh0ZG9tYWluICgiIiwgIiIpOworcmV0dXJuIChpbnQpIGdldHRleHQgKCIiKV1pZmVsc2UoWyQyXSwgW25lZWQtbmdldHRleHRdLCBbICsgKGludCkgbmdldHRleHQgKCIiLCAiIiwgMCldLCBbXSlbICsgX25sX21zZ19jYXRfY250ciArICpfbmxfZG9tYWluX2JpbmRpbmdzXSwKKyAgICAgICAgICAgIGd0X2N2X2Z1bmNfZ251Z2V0dGV4dF9saWJjPXllcywKKyAgICAgICAgICAgIGd0X2N2X2Z1bmNfZ251Z2V0dGV4dF9saWJjPW5vKV0pCisKKyAgICAgICAgaWYgdGVzdCAiJGd0X2N2X2Z1bmNfZ251Z2V0dGV4dF9saWJjIiAhPSAieWVzIjsgdGhlbgorICAgICAgICAgIGRubCBTb21ldGltZXMgbGliaW50bCByZXF1aXJlcyBsaWJpY29udiwgc28gZmlyc3Qgc2VhcmNoIGZvciBsaWJpY29udi4KKyAgICAgICAgICBpZmVsc2UoZ3RfaW5jbHVkZWRfaW50bCwgeWVzLCAsIFsKKyAgICAgICAgICAgIEFNX0lDT05WX0xJTksKKyAgICAgICAgICBdKQorICAgICAgICAgIGRubCBTZWFyY2ggZm9yIGxpYmludGwgYW5kIGRlZmluZSBMSUJJTlRMLCBMVExJQklOVEwgYW5kIElOQ0lOVEwKKyAgICAgICAgICBkbmwgYWNjb3JkaW5nbHkuIERvbid0IHVzZSBBQ19MSUJfTElOS0ZMQUdTX0JPRFkoW2ludGxdLFtpY29udl0pCisgICAgICAgICAgZG5sIGJlY2F1c2UgdGhhdCB3b3VsZCBhZGQgIi1saWNvbnYiIHRvIExJQklOVEwgYW5kIExUTElCSU5UTAorICAgICAgICAgIGRubCBldmVuIGlmIGxpYmljb252IGRvZXNuJ3QgZXhpc3QuCisgICAgICAgICAgQUNfTElCX0xJTktGTEFHU19CT0RZKFtpbnRsXSkKKyAgICAgICAgICBBQ19DQUNIRV9DSEVDSyhbZm9yIEdOVSBnZXR0ZXh0IGluIGxpYmludGxdLAorICAgICAgICAgICAgZ3RfY3ZfZnVuY19nbnVnZXR0ZXh0X2xpYmludGwsCisgICAgICAgICAgIFtndF9zYXZlX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCisgICAgICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdTICRJTkNJTlRMIgorICAgICAgICAgICAgZ3Rfc2F2ZV9MSUJTPSIkTElCUyIKKyAgICAgICAgICAgIExJQlM9IiRMSUJTICRMSUJJTlRMIgorICAgICAgICAgICAgZG5sIE5vdyBzZWUgd2hldGhlciBsaWJpbnRsIGV4aXN0cyBhbmQgZG9lcyBub3QgZGVwZW5kIG9uIGxpYmljb252LgorICAgICAgICAgICAgQUNfVFJZX0xJTksoWyNpbmNsdWRlIDxsaWJpbnRsLmg+CitdaWZlbHNlKFskMl0sIFtuZWVkLWZvcm1hdHN0cmluZy1tYWNyb3NdLAorWyNpZm5kZWYgX19HTlVfR0VUVEVYVF9TVVBQT1JURURfUkVWSVNJT04KKyNkZWZpbmUgX19HTlVfR0VUVEVYVF9TVVBQT1JURURfUkVWSVNJT04obWFqb3IpICgobWFqb3IpID09IDAgPyAwIDogLTEpCisjZW5kaWYKK2NoYW5nZXF1b3RlKCwpZG5sCit0eXBlZGVmIGludCBhcnJheSBbMiAqIChfX0dOVV9HRVRURVhUX1NVUFBPUlRFRF9SRVZJU0lPTigwKSA+PSAxKSAtIDFdOworY2hhbmdlcXVvdGUoWyxdKWRubAorXSwgW10pW2V4dGVybiBpbnQgX25sX21zZ19jYXRfY250cjsKK2V4dGVybgorI2lmZGVmIF9fY3BsdXNwbHVzCisiQyIKKyNlbmRpZgorY29uc3QgY2hhciAqX25sX2V4cGFuZF9hbGlhcyAoKTtdLAorICAgICAgICAgICAgICBbYmluZHRleHRkb21haW4gKCIiLCAiIik7CityZXR1cm4gKGludCkgZ2V0dGV4dCAoIiIpXWlmZWxzZShbJDJdLCBbbmVlZC1uZ2V0dGV4dF0sIFsgKyAoaW50KSBuZ2V0dGV4dCAoIiIsICIiLCAwKV0sIFtdKVsgKyBfbmxfbXNnX2NhdF9jbnRyICsgKl9ubF9leHBhbmRfYWxpYXMgKDApXSwKKyAgICAgICAgICAgICAgZ3RfY3ZfZnVuY19nbnVnZXR0ZXh0X2xpYmludGw9eWVzLAorICAgICAgICAgICAgICBndF9jdl9mdW5jX2dudWdldHRleHRfbGliaW50bD1ubykKKyAgICAgICAgICAgIGRubCBOb3cgc2VlIHdoZXRoZXIgbGliaW50bCBleGlzdHMgYW5kIGRlcGVuZHMgb24gbGliaWNvbnYuCisgICAgICAgICAgICBpZiB0ZXN0ICIkZ3RfY3ZfZnVuY19nbnVnZXR0ZXh0X2xpYmludGwiICE9IHllcyAmJiB0ZXN0IC1uICIkTElCSUNPTlYiOyB0aGVuCisgICAgICAgICAgICAgIExJQlM9IiRMSUJTICRMSUJJQ09OViIKKyAgICAgICAgICAgICAgQUNfVFJZX0xJTksoWyNpbmNsdWRlIDxsaWJpbnRsLmg+CitdaWZlbHNlKFskMl0sIFtuZWVkLWZvcm1hdHN0cmluZy1tYWNyb3NdLAorWyNpZm5kZWYgX19HTlVfR0VUVEVYVF9TVVBQT1JURURfUkVWSVNJT04KKyNkZWZpbmUgX19HTlVfR0VUVEVYVF9TVVBQT1JURURfUkVWSVNJT04obWFqb3IpICgobWFqb3IpID09IDAgPyAwIDogLTEpCisjZW5kaWYKK2NoYW5nZXF1b3RlKCwpZG5sCit0eXBlZGVmIGludCBhcnJheSBbMiAqIChfX0dOVV9HRVRURVhUX1NVUFBPUlRFRF9SRVZJU0lPTigwKSA+PSAxKSAtIDFdOworY2hhbmdlcXVvdGUoWyxdKWRubAorXSwgW10pW2V4dGVybiBpbnQgX25sX21zZ19jYXRfY250cjsKK2V4dGVybgorI2lmZGVmIF9fY3BsdXNwbHVzCisiQyIKKyNlbmRpZgorY29uc3QgY2hhciAqX25sX2V4cGFuZF9hbGlhcyAoKTtdLAorICAgICAgICAgICAgICAgIFtiaW5kdGV4dGRvbWFpbiAoIiIsICIiKTsKK3JldHVybiAoaW50KSBnZXR0ZXh0ICgiIildaWZlbHNlKFskMl0sIFtuZWVkLW5nZXR0ZXh0XSwgWyArIChpbnQpIG5nZXR0ZXh0ICgiIiwgIiIsIDApXSwgW10pWyArIF9ubF9tc2dfY2F0X2NudHIgKyAqX25sX2V4cGFuZF9hbGlhcyAoMCldLAorICAgICAgICAgICAgICAgW0xJQklOVEw9IiRMSUJJTlRMICRMSUJJQ09OViIKKyAgICAgICAgICAgICAgICBMVExJQklOVEw9IiRMVExJQklOVEwgJExUTElCSUNPTlYiCisgICAgICAgICAgICAgICAgZ3RfY3ZfZnVuY19nbnVnZXR0ZXh0X2xpYmludGw9eWVzCisgICAgICAgICAgICAgICBdKQorICAgICAgICAgICAgZmkKKyAgICAgICAgICAgIENQUEZMQUdTPSIkZ3Rfc2F2ZV9DUFBGTEFHUyIKKyAgICAgICAgICAgIExJQlM9IiRndF9zYXZlX0xJQlMiXSkKKyAgICAgICAgZmkKKworICAgICAgICBkbmwgSWYgYW4gYWxyZWFkeSBwcmVzZW50IG9yIHByZWluc3RhbGxlZCBHTlUgZ2V0dGV4dCgpIGlzIGZvdW5kLAorICAgICAgICBkbmwgdXNlIGl0LiAgQnV0IGlmIHRoaXMgbWFjcm8gaXMgdXNlZCBpbiBHTlUgZ2V0dGV4dCwgYW5kIEdOVQorICAgICAgICBkbmwgZ2V0dGV4dCBpcyBhbHJlYWR5IHByZWluc3RhbGxlZCBpbiBsaWJpbnRsLCB3ZSB1cGRhdGUgdGhpcworICAgICAgICBkbmwgbGliaW50bC4gIChDZi4gdGhlIGluc3RhbGwgcnVsZSBpbiBpbnRsL01ha2VmaWxlLmluLikKKyAgICAgICAgaWYgdGVzdCAiJGd0X2N2X2Z1bmNfZ251Z2V0dGV4dF9saWJjIiA9ICJ5ZXMiIFwKKyAgICAgICAgICAgfHwgeyB0ZXN0ICIkZ3RfY3ZfZnVuY19nbnVnZXR0ZXh0X2xpYmludGwiID0gInllcyIgXAorICAgICAgICAgICAgICAgICYmIHRlc3QgIiRQQUNLQUdFIiAhPSBnZXR0ZXh0LXJ1bnRpbWUgXAorICAgICAgICAgICAgICAgICYmIHRlc3QgIiRQQUNLQUdFIiAhPSBnZXR0ZXh0LXRvb2xzOyB9OyB0aGVuCisgICAgICAgICAgZ3RfdXNlX3ByZWluc3RhbGxlZF9nbnVnZXR0ZXh0PXllcworICAgICAgICBlbHNlCisgICAgICAgICAgZG5sIFJlc2V0IHRoZSB2YWx1ZXMgc2V0IGJ5IHNlYXJjaGluZyBmb3IgbGliaW50bC4KKyAgICAgICAgICBMSUJJTlRMPQorICAgICAgICAgIExUTElCSU5UTD0KKyAgICAgICAgICBJTkNJTlRMPQorICAgICAgICBmaQorCisgICAgaWZlbHNlKGd0X2luY2x1ZGVkX2ludGwsIHllcywgWworICAgICAgICBpZiB0ZXN0ICIkZ3RfdXNlX3ByZWluc3RhbGxlZF9nbnVnZXR0ZXh0IiAhPSAieWVzIjsgdGhlbgorICAgICAgICAgIGRubCBHTlUgZ2V0dGV4dCBpcyBub3QgZm91bmQgaW4gdGhlIEMgbGlicmFyeS4KKyAgICAgICAgICBkbmwgRmFsbCBiYWNrIG9uIGluY2x1ZGVkIEdOVSBnZXR0ZXh0IGxpYnJhcnkuCisgICAgICAgICAgbmxzX2N2X3VzZV9nbnVfZ2V0dGV4dD15ZXMKKyAgICAgICAgZmkKKyAgICAgIGZpCisKKyAgICAgIGlmIHRlc3QgIiRubHNfY3ZfdXNlX2dudV9nZXR0ZXh0IiA9ICJ5ZXMiOyB0aGVuCisgICAgICAgIGRubCBNYXJrIGFjdGlvbnMgdXNlZCB0byBnZW5lcmF0ZSBHTlUgTkxTIGxpYnJhcnkuCisgICAgICAgIEJVSUxEX0lOQ0xVREVEX0xJQklOVEw9eWVzCisgICAgICAgIFVTRV9JTkNMVURFRF9MSUJJTlRMPXllcworICAgICAgICBMSUJJTlRMPSJpZmVsc2UoWyQzXSxbXSxcJHt0b3BfYnVpbGRkaXJ9L2ludGwsWyQzXSkvbGliaW50bC5bXWd0X2xpYnRvb2xfc3VmZml4X3ByZWZpeFtdYSAkTElCSUNPTlYiCisgICAgICAgIExUTElCSU5UTD0iaWZlbHNlKFskM10sW10sXCR7dG9wX2J1aWxkZGlyfS9pbnRsLFskM10pL2xpYmludGwuW11ndF9saWJ0b29sX3N1ZmZpeF9wcmVmaXhbXWEgJExUTElCSUNPTlYiCisgICAgICAgIExJQlM9YGVjaG8gIiAkTElCUyAiIHwgc2VkIC1lICdzLyAtbGludGwgLyAvJyAtZSAncy9eIC8vJyAtZSAncy8gJC8vJ2AKKyAgICAgIGZpCisKKyAgICAgIGlmIHRlc3QgIiRndF91c2VfcHJlaW5zdGFsbGVkX2dudWdldHRleHQiID0gInllcyIgXAorICAgICAgICAgfHwgdGVzdCAiJG5sc19jdl91c2VfZ251X2dldHRleHQiID0gInllcyI7IHRoZW4KKyAgICAgICAgZG5sIE1hcmsgYWN0aW9ucyB0byB1c2UgR05VIGdldHRleHQgdG9vbHMuCisgICAgICAgIENBVE9CSkVYVD0uZ21vCisgICAgICBmaQorICAgIF0pCisKKyAgICBpZiB0ZXN0ICIkZ3RfdXNlX3ByZWluc3RhbGxlZF9nbnVnZXR0ZXh0IiA9ICJ5ZXMiIFwKKyAgICAgICB8fCB0ZXN0ICIkbmxzX2N2X3VzZV9nbnVfZ2V0dGV4dCIgPSAieWVzIjsgdGhlbgorICAgICAgQUNfREVGSU5FKEVOQUJMRV9OTFMsIDEsCisgICAgICAgIFtEZWZpbmUgdG8gMSBpZiB0cmFuc2xhdGlvbiBvZiBwcm9ncmFtIG1lc3NhZ2VzIHRvIHRoZSB1c2VyJ3MgbmF0aXZlIGxhbmd1YWdlCisgICBpcyByZXF1ZXN0ZWQuXSkKKyAgICBlbHNlCisgICAgICBVU0VfTkxTPW5vCisgICAgZmkKKyAgZmkKKworICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgdG8gdXNlIE5MU10pCisgIEFDX01TR19SRVNVTFQoWyRVU0VfTkxTXSkKKyAgaWYgdGVzdCAiJFVTRV9OTFMiID0gInllcyI7IHRoZW4KKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXJlIHRoZSBnZXR0ZXh0IGZ1bmN0aW9uIGNvbWVzIGZyb21dKQorICAgIGlmIHRlc3QgIiRndF91c2VfcHJlaW5zdGFsbGVkX2dudWdldHRleHQiID0gInllcyI7IHRoZW4KKyAgICAgIGlmIHRlc3QgIiRndF9jdl9mdW5jX2dudWdldHRleHRfbGliaW50bCIgPSAieWVzIjsgdGhlbgorICAgICAgICBndF9zb3VyY2U9ImV4dGVybmFsIGxpYmludGwiCisgICAgICBlbHNlCisgICAgICAgIGd0X3NvdXJjZT0ibGliYyIKKyAgICAgIGZpCisgICAgZWxzZQorICAgICAgZ3Rfc291cmNlPSJpbmNsdWRlZCBpbnRsIGRpcmVjdG9yeSIKKyAgICBmaQorICAgIEFDX01TR19SRVNVTFQoWyRndF9zb3VyY2VdKQorICBmaQorCisgIGlmIHRlc3QgIiRVU0VfTkxTIiA9ICJ5ZXMiOyB0aGVuCisKKyAgICBpZiB0ZXN0ICIkZ3RfdXNlX3ByZWluc3RhbGxlZF9nbnVnZXR0ZXh0IiA9ICJ5ZXMiOyB0aGVuCisgICAgICBpZiB0ZXN0ICIkZ3RfY3ZfZnVuY19nbnVnZXR0ZXh0X2xpYmludGwiID0gInllcyI7IHRoZW4KKyAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtob3cgdG8gbGluayB3aXRoIGxpYmludGxdKQorICAgICAgICBBQ19NU0dfUkVTVUxUKFskTElCSU5UTF0pCisgICAgICAgIEFDX0xJQl9BUFBFTkRUT1ZBUihbQ1BQRkxBR1NdLCBbJElOQ0lOVExdKQorICAgICAgZmkKKworICAgICAgZG5sIEZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiBTb21lIHBhY2thZ2VzIG1heSBiZSB1c2luZyB0aGlzLgorICAgICAgQUNfREVGSU5FKEhBVkVfR0VUVEVYVCwgMSwKKyAgICAgICBbRGVmaW5lIGlmIHRoZSBHTlUgZ2V0dGV4dCgpIGZ1bmN0aW9uIGlzIGFscmVhZHkgcHJlc2VudCBvciBwcmVpbnN0YWxsZWQuXSkKKyAgICAgIEFDX0RFRklORShIQVZFX0RDR0VUVEVYVCwgMSwKKyAgICAgICBbRGVmaW5lIGlmIHRoZSBHTlUgZGNnZXR0ZXh0KCkgZnVuY3Rpb24gaXMgYWxyZWFkeSBwcmVzZW50IG9yIHByZWluc3RhbGxlZC5dKQorICAgIGZpCisKKyAgICBkbmwgV2UgbmVlZCB0byBwcm9jZXNzIHRoZSBwby8gZGlyZWN0b3J5LgorICAgIFBPU1VCPXBvCisgIGZpCisKKyAgaWZlbHNlKGd0X2luY2x1ZGVkX2ludGwsIHllcywgWworICAgIGRubCBJZiB0aGlzIGlzIHVzZWQgaW4gR05VIGdldHRleHQgd2UgaGF2ZSB0byBzZXQgQlVJTERfSU5DTFVERURfTElCSU5UTAorICAgIGRubCB0byAneWVzJyBiZWNhdXNlIHNvbWUgb2YgdGhlIHRlc3RzdWl0ZSByZXF1aXJlcyBpdC4KKyAgICBpZiB0ZXN0ICIkUEFDS0FHRSIgPSBnZXR0ZXh0LXJ1bnRpbWUgfHwgdGVzdCAiJFBBQ0tBR0UiID0gZ2V0dGV4dC10b29sczsgdGhlbgorICAgICAgQlVJTERfSU5DTFVERURfTElCSU5UTD15ZXMKKyAgICBmaQorCisgICAgZG5sIE1ha2UgYWxsIHZhcmlhYmxlcyB3ZSB1c2Uga25vd24gdG8gYXV0b2NvbmYuCisgICAgQUNfU1VCU1QoQlVJTERfSU5DTFVERURfTElCSU5UTCkKKyAgICBBQ19TVUJTVChVU0VfSU5DTFVERURfTElCSU5UTCkKKyAgICBBQ19TVUJTVChDQVRPQkpFWFQpCisKKyAgICBkbmwgRm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuIFNvbWUgY29uZmlndXJlLmlucyBtYXkgYmUgdXNpbmcgdGhpcy4KKyAgICBubHNfY3ZfaGVhZGVyX2ludGw9CisgICAgbmxzX2N2X2hlYWRlcl9saWJndD0KKworICAgIGRubCBGb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4gU29tZSBNYWtlZmlsZXMgbWF5IGJlIHVzaW5nIHRoaXMuCisgICAgREFUQURJUk5BTUU9c2hhcmUKKyAgICBBQ19TVUJTVChEQVRBRElSTkFNRSkKKworICAgIGRubCBGb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4gU29tZSBNYWtlZmlsZXMgbWF5IGJlIHVzaW5nIHRoaXMuCisgICAgSU5TVE9CSkVYVD0ubW8KKyAgICBBQ19TVUJTVChJTlNUT0JKRVhUKQorCisgICAgZG5sIEZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiBTb21lIE1ha2VmaWxlcyBtYXkgYmUgdXNpbmcgdGhpcy4KKyAgICBHRU5DQVQ9Z2VuY2F0CisgICAgQUNfU1VCU1QoR0VOQ0FUKQorCisgICAgZG5sIEZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiBTb21lIE1ha2VmaWxlcyBtYXkgYmUgdXNpbmcgdGhpcy4KKyAgICBpZiB0ZXN0ICIkVVNFX0lOQ0xVREVEX0xJQklOVEwiID0geWVzOyB0aGVuCisgICAgICBJTlRMT0JKUz0iXCQoR0VUVE9CSlMpIgorICAgIGZpCisgICAgQUNfU1VCU1QoSU5UTE9CSlMpCisKKyAgICBkbmwgRW5hYmxlIGxpYnRvb2wgc3VwcG9ydCBpZiB0aGUgc3Vycm91bmRpbmcgcGFja2FnZSB3aXNoZXMgaXQuCisgICAgSU5UTF9MSUJUT09MX1NVRkZJWF9QUkVGSVg9Z3RfbGlidG9vbF9zdWZmaXhfcHJlZml4CisgICAgQUNfU1VCU1QoSU5UTF9MSUJUT09MX1NVRkZJWF9QUkVGSVgpCisgIF0pCisKKyAgZG5sIEZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LiBTb21lIE1ha2VmaWxlcyBtYXkgYmUgdXNpbmcgdGhpcy4KKyAgSU5UTExJQlM9IiRMSUJJTlRMIgorICBBQ19TVUJTVChJTlRMTElCUykKKworICBkbmwgTWFrZSBhbGwgZG9jdW1lbnRlZCB2YXJpYWJsZXMga25vd24gdG8gYXV0b2NvbmYuCisgIEFDX1NVQlNUKExJQklOVEwpCisgIEFDX1NVQlNUKExUTElCSU5UTCkKKyAgQUNfU1VCU1QoUE9TVUIpCitdKQorCisKK2RubCBDaGVja3MgZm9yIGFsbCBwcmVyZXF1aXNpdGVzIG9mIHRoZSBpbnRsIHN1YmRpcmVjdG9yeSwKK2RubCBleGNlcHQgZm9yIElOVExfTElCVE9PTF9TVUZGSVhfUFJFRklYIChhbmQgcG9zc2libHkgTElCVE9PTCksIElOVExPQkpTLAorZG5sICAgICAgICAgICAgVVNFX0lOQ0xVREVEX0xJQklOVEwsIEJVSUxEX0lOQ0xVREVEX0xJQklOVEwuCitBQ19ERUZVTihbQU1fSU5UTF9TVUJESVJdLAorWworICBBQ19SRVFVSVJFKFtBQ19QUk9HX0lOU1RBTExdKWRubAorICBBQ19SRVFVSVJFKFtBTV9NS0lOU1RBTExESVJTXSlkbmwKKyAgQUNfUkVRVUlSRShbQUNfUFJPR19DQ10pZG5sCisgIEFDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKKyAgQUNfUkVRVUlSRShbQUNfUFJPR19SQU5MSUJdKWRubAorICBBQ19SRVFVSVJFKFtBQ19JU0NfUE9TSVhdKWRubAorICBBQ19SRVFVSVJFKFtBQ19IRUFERVJfU1REQ10pZG5sCisgIEFDX1JFUVVJUkUoW0FDX0NfQ09OU1RdKWRubAorICBBQ19SRVFVSVJFKFtBQ19DX0lOTElORV0pZG5sCisgIEFDX1JFUVVJUkUoW0FDX1RZUEVfT0ZGX1RdKWRubAorICBBQ19SRVFVSVJFKFtBQ19UWVBFX1NJWkVfVF0pZG5sCisgIEFDX1JFUVVJUkUoW0FDX0ZVTkNfQUxMT0NBXSlkbmwKKyAgQUNfUkVRVUlSRShbQUNfRlVOQ19NTUFQXSlkbmwKKyAgQUNfUkVRVUlSRShbam1fR0xJQkMyMV0pZG5sCisgIEFDX1JFUVVJUkUoW2d0X0lOVERJVjBdKWRubAorICBBQ19SRVFVSVJFKFtqbV9BQ19UWVBFX1VJTlRNQVhfVF0pZG5sCisgIEFDX1JFUVVJUkUoW2d0X0hFQURFUl9JTlRUWVBFU19IXSlkbmwKKyAgQUNfUkVRVUlSRShbZ3RfSU5UVFlQRVNfUFJJXSlkbmwKKworICBBQ19DSEVDS19IRUFERVJTKFthcmd6LmggbGltaXRzLmggbG9jYWxlLmggbmxfdHlwZXMuaCBtYWxsb2MuaCBzdGRkZWYuaCBcCitzdGRsaWIuaCBzdHJpbmcuaCB1bmlzdGQuaCBzeXMvcGFyYW0uaF0pCisgIEFDX0NIRUNLX0ZVTkNTKFtmZW9mX3VubG9ja2VkIGZnZXRzX3VubG9ja2VkIGdldGNfdW5sb2NrZWQgZ2V0Y3dkIGdldGVnaWQgXAorZ2V0ZXVpZCBnZXRnaWQgZ2V0dWlkIG1lbXBjcHkgbXVubWFwIHB1dGVudiBzZXRlbnYgc2V0bG9jYWxlIHN0cGNweSBcCitzdHJjYXNlY21wIHN0cmR1cCBzdHJ0b3VsIHRzZWFyY2ggX19hcmd6X2NvdW50IF9fYXJnel9zdHJpbmdpZnkgX19hcmd6X25leHQgXAorX19mc2V0bG9ja2luZ10pCisKKyAgQU1fSUNPTlYKKyAgQU1fTEFOR0lORk9fQ09ERVNFVAorICBpZiB0ZXN0ICRhY19jdl9oZWFkZXJfbG9jYWxlX2ggPSB5ZXM7IHRoZW4KKyAgICBBTV9MQ19NRVNTQUdFUworICBmaQorCisgIGRubCBpbnRsL3BsdXJhbC5jIGlzIGdlbmVyYXRlZCBmcm9tIGludGwvcGx1cmFsLnkuIEl0IHJlcXVpcmVzIGJpc29uLAorICBkbmwgYmVjYXVzZSBwbHVyYWwueSB1c2VzIGJpc29uIHNwZWNpZmljIGZlYXR1cmVzLiBJdCByZXF1aXJlcyBhdCBsZWFzdAorICBkbmwgYmlzb24tMS4yNiBiZWNhdXNlIGVhcmxpZXIgdmVyc2lvbnMgZ2VuZXJhdGUgYSBwbHVyYWwuYyB0aGF0IGRvZXNuJ3QKKyAgZG5sIGNvbXBpbGUuCisgIGRubCBiaXNvbiBpcyBvbmx5IG5lZWRlZCBmb3IgdGhlIG1haW50YWluZXIgKHdobyB0b3VjaGVzIHBsdXJhbC55KS4gQnV0IGluCisgIGRubCBvcmRlciB0byBhdm9pZCBzZXBhcmF0ZSBNYWtlZmlsZXMgb3IgLS1lbmFibGUtbWFpbnRhaW5lci1tb2RlLCB3ZSBwdXQKKyAgZG5sIHRoZSBydWxlIGluIGdlbmVyYWwgTWFrZWZpbGUuIE5vdywgc29tZSBwZW9wbGUgY2FyZWxlc3NseSB0b3VjaCB0aGUKKyAgZG5sIGZpbGVzIG9yIGhhdmUgYSBicm9rZW4gIm1ha2UiIHByb2dyYW0sIGhlbmNlIHRoZSBwbHVyYWwuYyBydWxlIHdpbGwKKyAgZG5sIHNvbWV0aW1lcyBmaXJlLiBUbyBhdm9pZCBhbiBlcnJvciwgZGVmaW5lcyBCSVNPTiB0byAiOiIgaWYgaXQgaXMgbm90CisgIGRubCBwcmVzZW50IG9yIHRvbyBvbGQuCisgIEFDX0NIRUNLX1BST0dTKFtJTlRMQklTT05dLCBbYmlzb25dKQorICBpZiB0ZXN0IC16ICIkSU5UTEJJU09OIjsgdGhlbgorICAgIGFjX3ZlcmNfZmFpbD15ZXMKKyAgZWxzZQorICAgIGRubCBGb3VuZCBpdCwgbm93IGNoZWNrIHRoZSB2ZXJzaW9uLgorICAgIEFDX01TR19DSEVDS0lORyhbdmVyc2lvbiBvZiBiaXNvbl0pCitjaGFuZ2VxdW90ZSg8PCw+PilkbmwKKyAgICBhY19wcm9nX3ZlcnNpb249YCRJTlRMQklTT04gLS12ZXJzaW9uIDI+JjEgfCBzZWQgLW4gJ3MvXi4qR05VIEJpc29uLiogXChbMC05XSpcLlswLTkuXSpcKS4qJC9cMS9wJ2AKKyAgICBjYXNlICRhY19wcm9nX3ZlcnNpb24gaW4KKyAgICAgICcnKSBhY19wcm9nX3ZlcnNpb249InYuID8uPz8sIGJhZCI7IGFjX3ZlcmNfZmFpbD15ZXM7OworICAgICAgMS4yWzYtOV0qIHwgMS5bMy05XVswLTldKiB8IFsyLTldLiopCitjaGFuZ2VxdW90ZShbLF0pZG5sCisgICAgICAgICBhY19wcm9nX3ZlcnNpb249IiRhY19wcm9nX3ZlcnNpb24sIG9rIjsgYWNfdmVyY19mYWlsPW5vOzsKKyAgICAgICopIGFjX3Byb2dfdmVyc2lvbj0iJGFjX3Byb2dfdmVyc2lvbiwgYmFkIjsgYWNfdmVyY19mYWlsPXllczs7CisgICAgZXNhYworICAgIEFDX01TR19SRVNVTFQoWyRhY19wcm9nX3ZlcnNpb25dKQorICBmaQorICBpZiB0ZXN0ICRhY192ZXJjX2ZhaWwgPSB5ZXM7IHRoZW4KKyAgICBJTlRMQklTT049OgorICBmaQorXSkKKworCitkbmwgVXNhZ2U6IEFNX0dOVV9HRVRURVhUX1ZFUlNJT04oW2dldHRleHQtdmVyc2lvbl0pCitBQ19ERUZVTihbQU1fR05VX0dFVFRFWFRfVkVSU0lPTl0sIFtdKQorIyBnbGliYzIxLm00IHNlcmlhbCAyIChmaWxldXRpbHMtNC4xLjMsIGdldHRleHQtMC4xMC40MCkKK2RubCBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KK2RubCBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZSwgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUKK2RubCBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwKK2RubCBQdWJsaWMgTGljZW5zZSwgdGhpcyBmaWxlIG1heSBiZSBkaXN0cmlidXRlZCBhcyBwYXJ0IG9mIGEgcHJvZ3JhbQorZG5sIHRoYXQgY29udGFpbnMgYSBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHVuZGVyCitkbmwgdGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIGFzIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KKworIyBUZXN0IGZvciB0aGUgR05VIEMgTGlicmFyeSwgdmVyc2lvbiAyLjEgb3IgbmV3ZXIuCisjIEZyb20gQnJ1bm8gSGFpYmxlLgorCitBQ19ERUZVTihbam1fR0xJQkMyMV0sCisgIFsKKyAgICBBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMgTGlicmFyeSAyLjEgb3IgbmV3ZXIsCisgICAgICBhY19jdl9nbnVfbGlicmFyeV8yXzEsCisgICAgICBbQUNfRUdSRVBfQ1BQKFtMdWNreSBHTlUgdXNlcl0sCisJWworI2luY2x1ZGUgPGZlYXR1cmVzLmg+CisjaWZkZWYgX19HTlVfTElCUkFSWV9fCisgI2lmIChfX0dMSUJDX18gPT0gMiAmJiBfX0dMSUJDX01JTk9SX18gPj0gMSkgfHwgKF9fR0xJQkNfXyA+IDIpCisgIEx1Y2t5IEdOVSB1c2VyCisgI2VuZGlmCisjZW5kaWYKKwldLAorCWFjX2N2X2dudV9saWJyYXJ5XzJfMT15ZXMsCisJYWNfY3ZfZ251X2xpYnJhcnlfMl8xPW5vKQorICAgICAgXQorICAgICkKKyAgICBBQ19TVUJTVChHTElCQzIxKQorICAgIEdMSUJDMjE9IiRhY19jdl9nbnVfbGlicmFyeV8yXzEiCisgIF0KKykKKyMgaWNvbnYubTQgc2VyaWFsIEFNNCAoZ2V0dGV4dC0wLjExLjMpCitkbmwgQ29weXJpZ2h0IChDKSAyMDAwLTIwMDIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCitkbmwgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmUsIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VCitkbmwgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsCitkbmwgUHVibGljIExpY2Vuc2UsIHRoaXMgZmlsZSBtYXkgYmUgZGlzdHJpYnV0ZWQgYXMgcGFydCBvZiBhIHByb2dyYW0KK2RubCB0aGF0IGNvbnRhaW5zIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB1bmRlcgorZG5sIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyBhcyB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisKK2RubCBGcm9tIEJydW5vIEhhaWJsZS4KKworQUNfREVGVU4oW0FNX0lDT05WX0xJTktGTEFHU19CT0RZXSwKK1sKKyAgZG5sIFByZXJlcXVpc2l0ZXMgb2YgQUNfTElCX0xJTktGTEFHU19CT0RZLgorICBBQ19SRVFVSVJFKFtBQ19MSUJfUFJFUEFSRV9QUkVGSVhdKQorICBBQ19SRVFVSVJFKFtBQ19MSUJfUlBBVEhdKQorCisgIGRubCBTZWFyY2ggZm9yIGxpYmljb252IGFuZCBkZWZpbmUgTElCSUNPTlYsIExUTElCSUNPTlYgYW5kIElOQ0lDT05WCisgIGRubCBhY2NvcmRpbmdseS4KKyAgQUNfTElCX0xJTktGTEFHU19CT0RZKFtpY29udl0pCitdKQorCitBQ19ERUZVTihbQU1fSUNPTlZfTElOS10sCitbCisgIGRubCBTb21lIHN5c3RlbXMgaGF2ZSBpY29udiBpbiBsaWJjLCBzb21lIGhhdmUgaXQgaW4gbGliaWNvbnYgKE9TRi8xIGFuZAorICBkbmwgdGhvc2Ugd2l0aCB0aGUgc3RhbmRhbG9uZSBwb3J0YWJsZSBHTlUgbGliaWNvbnYgaW5zdGFsbGVkKS4KKworICBkbmwgU2VhcmNoIGZvciBsaWJpY29udiBhbmQgZGVmaW5lIExJQklDT05WLCBMVExJQklDT05WIGFuZCBJTkNJQ09OVgorICBkbmwgYWNjb3JkaW5nbHkuCisgIEFDX1JFUVVJUkUoW0FNX0lDT05WX0xJTktGTEFHU19CT0RZXSkKKworICBkbmwgQWRkICRJTkNJQ09OViB0byBDUFBGTEFHUyBiZWZvcmUgcGVyZm9ybWluZyB0aGUgZm9sbG93aW5nIGNoZWNrcywKKyAgZG5sIGJlY2F1c2UgaWYgdGhlIHVzZXIgaGFzIGluc3RhbGxlZCBsaWJpY29udiBhbmQgbm90IGRpc2FibGVkIGl0cyB1c2UKKyAgZG5sIHZpYSAtLXdpdGhvdXQtbGliaWNvbnYtcHJlZml4LCBoZSB3YW50cyB0byB1c2UgaXQuIFRoZSBmaXJzdAorICBkbmwgQUNfVFJZX0xJTksgd2lsbCB0aGVuIGZhaWwsIHRoZSBzZWNvbmQgQUNfVFJZX0xJTksgd2lsbCBzdWNjZWVkLgorICBhbV9zYXZlX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCisgIEFDX0xJQl9BUFBFTkRUT1ZBUihbQ1BQRkxBR1NdLCBbJElOQ0lDT05WXSkKKworICBBQ19DQUNIRV9DSEVDSyhmb3IgaWNvbnYsIGFtX2N2X2Z1bmNfaWNvbnYsIFsKKyAgICBhbV9jdl9mdW5jX2ljb252PSJubywgY29uc2lkZXIgaW5zdGFsbGluZyBHTlUgbGliaWNvbnYiCisgICAgYW1fY3ZfbGliX2ljb252PW5vCisgICAgQUNfVFJZX0xJTksoWyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxpY29udi5oPl0sCisgICAgICBbaWNvbnZfdCBjZCA9IGljb252X29wZW4oIiIsIiIpOworICAgICAgIGljb252KGNkLE5VTEwsTlVMTCxOVUxMLE5VTEwpOworICAgICAgIGljb252X2Nsb3NlKGNkKTtdLAorICAgICAgYW1fY3ZfZnVuY19pY29udj15ZXMpCisgICAgaWYgdGVzdCAiJGFtX2N2X2Z1bmNfaWNvbnYiICE9IHllczsgdGhlbgorICAgICAgYW1fc2F2ZV9MSUJTPSIkTElCUyIKKyAgICAgIExJQlM9IiRMSUJTICRMSUJJQ09OViIKKyAgICAgIEFDX1RSWV9MSU5LKFsjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8aWNvbnYuaD5dLAorICAgICAgICBbaWNvbnZfdCBjZCA9IGljb252X29wZW4oIiIsIiIpOworICAgICAgICAgaWNvbnYoY2QsTlVMTCxOVUxMLE5VTEwsTlVMTCk7CisgICAgICAgICBpY29udl9jbG9zZShjZCk7XSwKKyAgICAgICAgYW1fY3ZfbGliX2ljb252PXllcworICAgICAgICBhbV9jdl9mdW5jX2ljb252PXllcykKKyAgICAgIExJQlM9IiRhbV9zYXZlX0xJQlMiCisgICAgZmkKKyAgXSkKKyAgaWYgdGVzdCAiJGFtX2N2X2Z1bmNfaWNvbnYiID0geWVzOyB0aGVuCisgICAgQUNfREVGSU5FKEhBVkVfSUNPTlYsIDEsIFtEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGljb252KCkgZnVuY3Rpb24uXSkKKyAgZmkKKyAgaWYgdGVzdCAiJGFtX2N2X2xpYl9pY29udiIgPSB5ZXM7IHRoZW4KKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW2hvdyB0byBsaW5rIHdpdGggbGliaWNvbnZdKQorICAgIEFDX01TR19SRVNVTFQoWyRMSUJJQ09OVl0pCisgIGVsc2UKKyAgICBkbmwgSWYgJExJQklDT05WIGRpZG4ndCBsZWFkIHRvIGEgdXNhYmxlIGxpYnJhcnksIHdlIGRvbid0IG5lZWQgJElOQ0lDT05WCisgICAgZG5sIGVpdGhlci4KKyAgICBDUFBGTEFHUz0iJGFtX3NhdmVfQ1BQRkxBR1MiCisgICAgTElCSUNPTlY9CisgICAgTFRMSUJJQ09OVj0KKyAgZmkKKyAgQUNfU1VCU1QoTElCSUNPTlYpCisgIEFDX1NVQlNUKExUTElCSUNPTlYpCitdKQorCitBQ19ERUZVTihbQU1fSUNPTlZdLAorWworICBBTV9JQ09OVl9MSU5LCisgIGlmIHRlc3QgIiRhbV9jdl9mdW5jX2ljb252IiA9IHllczsgdGhlbgorICAgIEFDX01TR19DSEVDS0lORyhbZm9yIGljb252IGRlY2xhcmF0aW9uXSkKKyAgICBBQ19DQUNIRV9WQUwoYW1fY3ZfcHJvdG9faWNvbnYsIFsKKyAgICAgIEFDX1RSWV9DT01QSUxFKFsKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxpY29udi5oPgorZXh0ZXJuCisjaWZkZWYgX19jcGx1c3BsdXMKKyJDIgorI2VuZGlmCisjaWYgZGVmaW5lZChfX1NURENfXykgfHwgZGVmaW5lZChfX2NwbHVzcGx1cykKK3NpemVfdCBpY29udiAoaWNvbnZfdCBjZCwgY2hhciAqICppbmJ1Ziwgc2l6ZV90ICppbmJ5dGVzbGVmdCwgY2hhciAqICpvdXRidWYsIHNpemVfdCAqb3V0Ynl0ZXNsZWZ0KTsKKyNlbHNlCitzaXplX3QgaWNvbnYoKTsKKyNlbmRpZgorXSwgW10sIGFtX2N2X3Byb3RvX2ljb252X2FyZzE9IiIsIGFtX2N2X3Byb3RvX2ljb252X2FyZzE9ImNvbnN0IikKKyAgICAgIGFtX2N2X3Byb3RvX2ljb252PSJleHRlcm4gc2l6ZV90IGljb252IChpY29udl90IGNkLCAkYW1fY3ZfcHJvdG9faWNvbnZfYXJnMSBjaGFyICogKmluYnVmLCBzaXplX3QgKmluYnl0ZXNsZWZ0LCBjaGFyICogKm91dGJ1Ziwgc2l6ZV90ICpvdXRieXRlc2xlZnQpOyJdKQorICAgIGFtX2N2X3Byb3RvX2ljb252PWBlY2hvICJbJF1hbV9jdl9wcm90b19pY29udiIgfCB0ciAtcyAnICcgfCBzZWQgLWUgJ3MvKCAvKC8nYAorICAgIEFDX01TR19SRVNVTFQoWyRde2FjX3Q6LQorICAgICAgICAgfVskXWFtX2N2X3Byb3RvX2ljb252KQorICAgIEFDX0RFRklORV9VTlFVT1RFRChJQ09OVl9DT05TVCwgJGFtX2N2X3Byb3RvX2ljb252X2FyZzEsCisgICAgICBbRGVmaW5lIGFzIGNvbnN0IGlmIHRoZSBkZWNsYXJhdGlvbiBvZiBpY29udigpIG5lZWRzIGNvbnN0Ll0pCisgIGZpCitdKQorIyBpbnRkaXYwLm00IHNlcmlhbCAxIChnZXR0ZXh0LTAuMTEuMykKK2RubCBDb3B5cmlnaHQgKEMpIDIwMDIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCitkbmwgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmUsIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VCitkbmwgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsCitkbmwgUHVibGljIExpY2Vuc2UsIHRoaXMgZmlsZSBtYXkgYmUgZGlzdHJpYnV0ZWQgYXMgcGFydCBvZiBhIHByb2dyYW0KK2RubCB0aGF0IGNvbnRhaW5zIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB1bmRlcgorZG5sIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyBhcyB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisKK2RubCBGcm9tIEJydW5vIEhhaWJsZS4KKworQUNfREVGVU4oW2d0X0lOVERJVjBdLAorWworICBBQ19SRVFVSVJFKFtBQ19QUk9HX0NDXSlkbmwKKyAgQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAorCisgIEFDX0NBQ0hFX0NIRUNLKFt3aGV0aGVyIGludGVnZXIgZGl2aXNpb24gYnkgemVybyByYWlzZXMgU0lHRlBFXSwKKyAgICBndF9jdl9pbnRfZGl2Ynl6ZXJvX3NpZ2ZwZSwKKyAgICBbCisgICAgICBBQ19UUllfUlVOKFsKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKworc3RhdGljIHZvaWQKKyNpZmRlZiBfX2NwbHVzcGx1cworc2lnZnBlX2hhbmRsZXIgKGludCBzaWcpCisjZWxzZQorc2lnZnBlX2hhbmRsZXIgKHNpZykgaW50IHNpZzsKKyNlbmRpZgoreworICAvKiBFeGl0IHdpdGggY29kZSAwIGlmIFNJR0ZQRSwgd2l0aCBjb2RlIDEgaWYgYW55IG90aGVyIHNpZ25hbC4gICovCisgIGV4aXQgKHNpZyAhPSBTSUdGUEUpOworfQorCitpbnQgeCA9IDE7CitpbnQgeSA9IDA7CitpbnQgejsKK2ludCBuYW47CisKK2ludCBtYWluICgpCit7CisgIHNpZ25hbCAoU0lHRlBFLCBzaWdmcGVfaGFuZGxlcik7CisvKiBJUklYIGFuZCBBSVggKHdoZW4gInhsYyAtcWNoZWNrIiBpcyB1c2VkKSB5aWVsZCBzaWduYWwgU0lHVFJBUC4gICovCisjaWYgKGRlZmluZWQgKF9fc2dpKSB8fCBkZWZpbmVkIChfQUlYKSkgJiYgZGVmaW5lZCAoU0lHVFJBUCkKKyAgc2lnbmFsIChTSUdUUkFQLCBzaWdmcGVfaGFuZGxlcik7CisjZW5kaWYKKy8qIExpbnV4L1NQQVJDIHlpZWxkcyBzaWduYWwgU0lHSUxMLiAgKi8KKyNpZiBkZWZpbmVkIChfX3NwYXJjX18pICYmIGRlZmluZWQgKF9fbGludXhfXykKKyAgc2lnbmFsIChTSUdJTEwsIHNpZ2ZwZV9oYW5kbGVyKTsKKyNlbmRpZgorCisgIHogPSB4IC8geTsKKyAgbmFuID0geSAvIHk7CisgIGV4aXQgKDEpOworfQorXSwgZ3RfY3ZfaW50X2RpdmJ5emVyb19zaWdmcGU9eWVzLCBndF9jdl9pbnRfZGl2Ynl6ZXJvX3NpZ2ZwZT1ubywKKyAgICAgICAgWworICAgICAgICAgICMgR3Vlc3MgYmFzZWQgb24gdGhlIENQVS4KKyAgICAgICAgICBjYXNlICIkaG9zdF9jcHUiIGluCisgICAgICAgICAgICBhbHBoYSogfCBpWzM0NTY3XTg2IHwgbTY4ayB8IHMzOTAqKQorICAgICAgICAgICAgICBndF9jdl9pbnRfZGl2Ynl6ZXJvX3NpZ2ZwZT0iZ3Vlc3NpbmcgeWVzIjs7CisgICAgICAgICAgICAqKQorICAgICAgICAgICAgICBndF9jdl9pbnRfZGl2Ynl6ZXJvX3NpZ2ZwZT0iZ3Vlc3Npbmcgbm8iOzsKKyAgICAgICAgICBlc2FjCisgICAgICAgIF0pCisgICAgXSkKKyAgY2FzZSAiJGd0X2N2X2ludF9kaXZieXplcm9fc2lnZnBlIiBpbgorICAgICp5ZXMpIHZhbHVlPTE7OworICAgICopIHZhbHVlPTA7OworICBlc2FjCisgIEFDX0RFRklORV9VTlFVT1RFRChJTlRESVYwX1JBSVNFU19TSUdGUEUsICR2YWx1ZSwKKyAgICBbRGVmaW5lIGlmIGludGVnZXIgZGl2aXNpb24gYnkgemVybyByYWlzZXMgc2lnbmFsIFNJR0ZQRS5dKQorXSkKKyMgaW50dHlwZXMubTQgc2VyaWFsIDEgKGdldHRleHQtMC4xMS40KQorZG5sIENvcHlyaWdodCAoQykgMTk5Ny0yMDAyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorZG5sIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlLCBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVQorZG5sIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbAorZG5sIFB1YmxpYyBMaWNlbnNlLCB0aGlzIGZpbGUgbWF5IGJlIGRpc3RyaWJ1dGVkIGFzIHBhcnQgb2YgYSBwcm9ncmFtCitkbmwgdGhhdCBjb250YWlucyBhIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgdW5kZXIKK2RubCB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgYXMgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgorCitkbmwgRnJvbSBQYXVsIEVnZ2VydC4KKworIyBEZWZpbmUgSEFWRV9JTlRUWVBFU19IIGlmIDxpbnR0eXBlcy5oPiBleGlzdHMgYW5kIGRvZXNuJ3QgY2xhc2ggd2l0aAorIyA8c3lzL3R5cGVzLmg+LgorCitBQ19ERUZVTihbZ3RfSEVBREVSX0lOVFRZUEVTX0hdLAorWworICBBQ19DQUNIRV9DSEVDSyhbZm9yIGludHR5cGVzLmhdLCBndF9jdl9oZWFkZXJfaW50dHlwZXNfaCwKKyAgWworICAgIEFDX1RSWV9DT01QSUxFKAorICAgICAgWyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxpbnR0eXBlcy5oPl0sCisgICAgICBbXSwgZ3RfY3ZfaGVhZGVyX2ludHR5cGVzX2g9eWVzLCBndF9jdl9oZWFkZXJfaW50dHlwZXNfaD1ubykKKyAgXSkKKyAgaWYgdGVzdCAkZ3RfY3ZfaGVhZGVyX2ludHR5cGVzX2ggPSB5ZXM7IHRoZW4KKyAgICBBQ19ERUZJTkVfVU5RVU9URUQoSEFWRV9JTlRUWVBFU19ILCAxLAorICAgICAgW0RlZmluZSBpZiA8aW50dHlwZXMuaD4gZXhpc3RzIGFuZCBkb2Vzbid0IGNsYXNoIHdpdGggPHN5cy90eXBlcy5oPi5dKQorICBmaQorXSkKKyMgaW50dHlwZXNfaC5tNCBzZXJpYWwgNSAoZ2V0dGV4dC0wLjEyKQorZG5sIENvcHlyaWdodCAoQykgMTk5Ny0yMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorZG5sIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlLCBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVQorZG5sIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbAorZG5sIFB1YmxpYyBMaWNlbnNlLCB0aGlzIGZpbGUgbWF5IGJlIGRpc3RyaWJ1dGVkIGFzIHBhcnQgb2YgYSBwcm9ncmFtCitkbmwgdGhhdCBjb250YWlucyBhIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgdW5kZXIKK2RubCB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgYXMgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgorCitkbmwgRnJvbSBQYXVsIEVnZ2VydC4KKworIyBEZWZpbmUgSEFWRV9JTlRUWVBFU19IX1dJVEhfVUlOVE1BWCBpZiA8aW50dHlwZXMuaD4gZXhpc3RzLAorIyBkb2Vzbid0IGNsYXNoIHdpdGggPHN5cy90eXBlcy5oPiwgYW5kIGRlY2xhcmVzIHVpbnRtYXhfdC4KKworQUNfREVGVU4oW2ptX0FDX0hFQURFUl9JTlRUWVBFU19IXSwKK1sKKyAgQUNfQ0FDSEVfQ0hFQ0soW2ZvciBpbnR0eXBlcy5oXSwgam1fYWNfY3ZfaGVhZGVyX2ludHR5cGVzX2gsCisgIFtBQ19UUllfQ09NUElMRSgKKyAgICBbI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPGludHR5cGVzLmg+XSwKKyAgICBbdWludG1heF90IGkgPSAodWludG1heF90KSAtMTtdLAorICAgIGptX2FjX2N2X2hlYWRlcl9pbnR0eXBlc19oPXllcywKKyAgICBqbV9hY19jdl9oZWFkZXJfaW50dHlwZXNfaD1ubyldKQorICBpZiB0ZXN0ICRqbV9hY19jdl9oZWFkZXJfaW50dHlwZXNfaCA9IHllczsgdGhlbgorICAgIEFDX0RFRklORV9VTlFVT1RFRChIQVZFX0lOVFRZUEVTX0hfV0lUSF9VSU5UTUFYLCAxLAorICAgICAgW0RlZmluZSBpZiA8aW50dHlwZXMuaD4gZXhpc3RzLCBkb2Vzbid0IGNsYXNoIHdpdGggPHN5cy90eXBlcy5oPiwKKyAgICAgICBhbmQgZGVjbGFyZXMgdWludG1heF90LiBdKQorICBmaQorXSkKKyMgaW50dHlwZXMtcHJpLm00IHNlcmlhbCAxIChnZXR0ZXh0LTAuMTEuNCkKK2RubCBDb3B5cmlnaHQgKEMpIDE5OTctMjAwMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KK2RubCBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZSwgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUKK2RubCBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwKK2RubCBQdWJsaWMgTGljZW5zZSwgdGhpcyBmaWxlIG1heSBiZSBkaXN0cmlidXRlZCBhcyBwYXJ0IG9mIGEgcHJvZ3JhbQorZG5sIHRoYXQgY29udGFpbnMgYSBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHVuZGVyCitkbmwgdGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIGFzIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KKworZG5sIEZyb20gQnJ1bm8gSGFpYmxlLgorCisjIERlZmluZSBQUklfTUFDUk9TX0JST0tFTiBpZiA8aW50dHlwZXMuaD4gZXhpc3RzIGFuZCBkZWZpbmVzIHRoZSBQUkkqCisjIG1hY3JvcyB0byBub24tc3RyaW5nIHZhbHVlcy4gIFRoaXMgaXMgdGhlIGNhc2Ugb24gQUlYIDQuMy4zLgorCitBQ19ERUZVTihbZ3RfSU5UVFlQRVNfUFJJXSwKK1sKKyAgQUNfUkVRVUlSRShbZ3RfSEVBREVSX0lOVFRZUEVTX0hdKQorICBpZiB0ZXN0ICRndF9jdl9oZWFkZXJfaW50dHlwZXNfaCA9IHllczsgdGhlbgorICAgIEFDX0NBQ0hFX0NIRUNLKFt3aGV0aGVyIHRoZSBpbnR0eXBlcy5oIFBSSXhOTiBtYWNyb3MgYXJlIGJyb2tlbl0sCisgICAgICBndF9jdl9pbnR0eXBlc19wcmlfYnJva2VuLAorICAgICAgWworICAgICAgICBBQ19UUllfQ09NUElMRShbI2luY2x1ZGUgPGludHR5cGVzLmg+CisjaWZkZWYgUFJJZDMyCitjaGFyICpwID0gUFJJZDMyOworI2VuZGlmCitdLCBbXSwgZ3RfY3ZfaW50dHlwZXNfcHJpX2Jyb2tlbj1ubywgZ3RfY3ZfaW50dHlwZXNfcHJpX2Jyb2tlbj15ZXMpCisgICAgICBdKQorICBmaQorICBpZiB0ZXN0ICIkZ3RfY3ZfaW50dHlwZXNfcHJpX2Jyb2tlbiIgPSB5ZXM7IHRoZW4KKyAgICBBQ19ERUZJTkVfVU5RVU9URUQoUFJJX01BQ1JPU19CUk9LRU4sIDEsCisgICAgICBbRGVmaW5lIGlmIDxpbnR0eXBlcy5oPiBleGlzdHMgYW5kIGRlZmluZXMgdW51c2FibGUgUFJJKiBtYWNyb3MuXSkKKyAgZmkKK10pCisjIGlzYy1wb3NpeC5tNCBzZXJpYWwgMiAoZ2V0dGV4dC0wLjExLjIpCitkbmwgQ29weXJpZ2h0IChDKSAxOTk1LTIwMDIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCitkbmwgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmUsIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VCitkbmwgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsCitkbmwgUHVibGljIExpY2Vuc2UsIHRoaXMgZmlsZSBtYXkgYmUgZGlzdHJpYnV0ZWQgYXMgcGFydCBvZiBhIHByb2dyYW0KK2RubCB0aGF0IGNvbnRhaW5zIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB1bmRlcgorZG5sIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyBhcyB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisKKyMgVGhpcyBmaWxlIGlzIG5vdCBuZWVkZWQgd2l0aCBhdXRvY29uZi0yLjUzIGFuZCBuZXdlci4gIFJlbW92ZSBpdCBpbiAyMDA1LgorCisjIFRoaXMgdGVzdCByZXBsYWNlcyB0aGUgb25lIGluIGF1dG9jb25mLgorIyBDdXJyZW50bHkgdGhpcyBtYWNybyBzaG91bGQgaGF2ZSB0aGUgc2FtZSBuYW1lIGFzIHRoZSBhdXRvY29uZiBtYWNybworIyBiZWNhdXNlIGdldHRleHQncyBnZXR0ZXh0Lm00IChkaXN0cmlidXRlZCBpbiB0aGUgYXV0b21ha2UgcGFja2FnZSkKKyMgc3RpbGwgdXNlcyBpdC4gIE90aGVyd2lzZSwgdGhlIHVzZSBpbiBnZXR0ZXh0Lm00IG1ha2VzIGF1dG9oZWFkZXIKKyMgZ2l2ZSB0aGVzZSBkaWFnbm9zdGljczoKKyMgICBjb25maWd1cmUuaW46NTU2OiBBQ19UUllfQ09NUElMRSB3YXMgY2FsbGVkIGJlZm9yZSBBQ19JU0NfUE9TSVgKKyMgICBjb25maWd1cmUuaW46NTU2OiBBQ19UUllfUlVOIHdhcyBjYWxsZWQgYmVmb3JlIEFDX0lTQ19QT1NJWAorCit1bmRlZmluZShbQUNfSVNDX1BPU0lYXSkKKworQUNfREVGVU4oW0FDX0lTQ19QT1NJWF0sCisgIFsKKyAgICBkbmwgVGhpcyB0ZXN0IHJlcGxhY2VzIHRoZSBvYnNvbGVzY2VudCBBQ19JU0NfUE9TSVgga2x1ZGdlLgorICAgIEFDX0NIRUNLX0xJQihjcG9zaXgsIHN0cmVycm9yLCBbTElCUz0iJExJQlMgLWxjcG9zaXgiXSkKKyAgXQorKQorIyBsY21lc3NhZ2UubTQgc2VyaWFsIDMgKGdldHRleHQtMC4xMS4zKQorZG5sIENvcHlyaWdodCAoQykgMTk5NS0yMDAyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorZG5sIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlLCBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVQorZG5sIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbAorZG5sIFB1YmxpYyBMaWNlbnNlLCB0aGlzIGZpbGUgbWF5IGJlIGRpc3RyaWJ1dGVkIGFzIHBhcnQgb2YgYSBwcm9ncmFtCitkbmwgdGhhdCBjb250YWlucyBhIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgdW5kZXIKK2RubCB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgYXMgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgorZG5sCitkbmwgVGhpcyBmaWxlIGNhbiBjYW4gYmUgdXNlZCBpbiBwcm9qZWN0cyB3aGljaCBhcmUgbm90IGF2YWlsYWJsZSB1bmRlcgorZG5sIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBvciB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKK2RubCBMaWNlbnNlIGJ1dCB3aGljaCBzdGlsbCB3YW50IHRvIHByb3ZpZGUgc3VwcG9ydCBmb3IgdGhlIEdOVSBnZXR0ZXh0CitkbmwgZnVuY3Rpb25hbGl0eS4KK2RubCBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBhY3R1YWwgY29kZSBvZiB0aGUgR05VIGdldHRleHQgbGlicmFyeSBpcyBjb3ZlcmVkCitkbmwgYnkgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGFuZCB0aGUgcmVzdCBvZiB0aGUgR05VCitkbmwgZ2V0dGV4dCBwYWNrYWdlIHBhY2thZ2UgaXMgY292ZXJlZCBieSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCitkbmwgVGhleSBhcmUgKm5vdCogaW4gdGhlIHB1YmxpYyBkb21haW4uCisKK2RubCBBdXRob3JzOgorZG5sICAgVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAY3lnbnVzLmNvbT4sIDE5OTUuCisKKyMgQ2hlY2sgd2hldGhlciBMQ19NRVNTQUdFUyBpcyBhdmFpbGFibGUgaW4gPGxvY2FsZS5oPi4KKworQUNfREVGVU4oW0FNX0xDX01FU1NBR0VTXSwKK1sKKyAgQUNfQ0FDSEVfQ0hFQ0soW2ZvciBMQ19NRVNTQUdFU10sIGFtX2N2X3ZhbF9MQ19NRVNTQUdFUywKKyAgICBbQUNfVFJZX0xJTksoWyNpbmNsdWRlIDxsb2NhbGUuaD5dLCBbcmV0dXJuIExDX01FU1NBR0VTXSwKKyAgICAgICBhbV9jdl92YWxfTENfTUVTU0FHRVM9eWVzLCBhbV9jdl92YWxfTENfTUVTU0FHRVM9bm8pXSkKKyAgaWYgdGVzdCAkYW1fY3ZfdmFsX0xDX01FU1NBR0VTID0geWVzOyB0aGVuCisgICAgQUNfREVGSU5FKEhBVkVfTENfTUVTU0FHRVMsIDEsCisgICAgICBbRGVmaW5lIGlmIHlvdXIgPGxvY2FsZS5oPiBmaWxlIGRlZmluZXMgTENfTUVTU0FHRVMuXSkKKyAgZmkKK10pCisjIGxpYi1sZC5tNCBzZXJpYWwgMiAoZ2V0dGV4dC0wLjEyKQorZG5sIENvcHlyaWdodCAoQykgMTk5Ni0yMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorZG5sIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlLCBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVQorZG5sIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbAorZG5sIFB1YmxpYyBMaWNlbnNlLCB0aGlzIGZpbGUgbWF5IGJlIGRpc3RyaWJ1dGVkIGFzIHBhcnQgb2YgYSBwcm9ncmFtCitkbmwgdGhhdCBjb250YWlucyBhIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgdW5kZXIKK2RubCB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgYXMgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgorCitkbmwgU3Vicm91dGluZXMgb2YgbGlidG9vbC5tNCwKK2RubCB3aXRoIHJlcGxhY2VtZW50cyBzL0FDXy9BQ19MSUIvIGFuZCBzL2x0X2N2L2FjbF9jdi8gdG8gYXZvaWQgY29sbGlzaW9uCitkbmwgd2l0aCBsaWJ0b29sLm00LgorCitkbmwgRnJvbSBsaWJ0b29sLTEuNC4gU2V0cyB0aGUgdmFyaWFibGUgd2l0aF9nbnVfbGQgdG8geWVzIG9yIG5vLgorQUNfREVGVU4oW0FDX0xJQl9QUk9HX0xEX0dOVV0sCitbQUNfQ0FDSEVfQ0hFQ0soW2lmIHRoZSBsaW5rZXIgKCRMRCkgaXMgR05VIGxkXSwgYWNsX2N2X3Byb2dfZ251X2xkLAorWyMgSSdkIHJhdGhlciB1c2UgLS12ZXJzaW9uIGhlcmUsIGJ1dCBhcHBhcmVudGx5IHNvbWUgR05VIGxkJ3Mgb25seSBhY2NlcHQgLXYuCitpZiAkTEQgLXYgMj4mMSA8L2Rldi9udWxsIHwgZWdyZXAgJyhHTlV8d2l0aCBCRkQpJyAxPiY1OyB0aGVuCisgIGFjbF9jdl9wcm9nX2dudV9sZD15ZXMKK2Vsc2UKKyAgYWNsX2N2X3Byb2dfZ251X2xkPW5vCitmaV0pCit3aXRoX2dudV9sZD0kYWNsX2N2X3Byb2dfZ251X2xkCitdKQorCitkbmwgRnJvbSBsaWJ0b29sLTEuNC4gU2V0cyB0aGUgdmFyaWFibGUgTEQuCitBQ19ERUZVTihbQUNfTElCX1BST0dfTERdLAorW0FDX0FSR19XSVRIKGdudS1sZCwKK1sgIC0td2l0aC1nbnUtbGQgICAgICAgICAgIGFzc3VtZSB0aGUgQyBjb21waWxlciB1c2VzIEdOVSBsZCBbZGVmYXVsdD1ub11dLAordGVzdCAiJHdpdGh2YWwiID0gbm8gfHwgd2l0aF9nbnVfbGQ9eWVzLCB3aXRoX2dudV9sZD1ubykKK0FDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKWRubAorQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAorIyBQcmVwYXJlIFBBVEhfU0VQQVJBVE9SLgorIyBUaGUgdXNlciBpcyBhbHdheXMgcmlnaHQuCitpZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9SK3NldH0iICE9IHNldDsgdGhlbgorICBlY2hvICIjISAvYmluL3NoIiA+Y29uZiQkLnNoCisgIGVjaG8gICJleGl0IDAiICAgPj5jb25mJCQuc2gKKyAgY2htb2QgK3ggY29uZiQkLnNoCisgIGlmIChQQVRIPSIvbm9uZXhpc3RlbnQ7LiI7IGNvbmYkJC5zaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICAgUEFUSF9TRVBBUkFUT1I9JzsnCisgIGVsc2UKKyAgICBQQVRIX1NFUEFSQVRPUj06CisgIGZpCisgIHJtIC1mIGNvbmYkJC5zaAorZmkKK2FjX3Byb2c9bGQKK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisgICMgQ2hlY2sgaWYgZ2NjIC1wcmludC1wcm9nLW5hbWU9bGQgZ2l2ZXMgYSBwYXRoLgorICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBsZCB1c2VkIGJ5IEdDQ10pCisgIGNhc2UgJGhvc3QgaW4KKyAgKi0qLW1pbmd3KikKKyAgICAjIGdjYyBsZWF2ZXMgYSB0cmFpbGluZyBjYXJyaWFnZSByZXR1cm4gd2hpY2ggdXBzZXRzIG1pbmd3CisgICAgYWNfcHJvZz1gKCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxkKSAyPiY1IHwgdHIgLWQgJ1wwMTUnYCA7OworICAqKQorICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ctbmFtZT1sZCkgMj4mNWAgOzsKKyAgZXNhYworICBjYXNlICRhY19wcm9nIGluCisgICAgIyBBY2NlcHQgYWJzb2x1dGUgcGF0aHMuCisgICAgW1tcXC9dKiB8IFtBLVphLXpdOltcXC9dKildCisgICAgICBbcmVfZGlyZWx0PScvW14vXVteL10qL1wuXC4vJ10KKyAgICAgICMgQ2Fub25pY2FsaXplIHRoZSBwYXRoIG9mIGxkCisgICAgICBhY19wcm9nPWBlY2hvICRhY19wcm9nfCBzZWQgJ3MlXFxcXCUvJWcnYAorICAgICAgd2hpbGUgZWNobyAkYWNfcHJvZyB8IGdyZXAgIiRyZV9kaXJlbHQiID4gL2Rldi9udWxsIDI+JjE7IGRvCisJYWNfcHJvZz1gZWNobyAkYWNfcHJvZ3wgc2VkICJzJSRyZV9kaXJlbHQlLyUiYAorICAgICAgZG9uZQorICAgICAgdGVzdCAteiAiJExEIiAmJiBMRD0iJGFjX3Byb2ciCisgICAgICA7OworICAiIikKKyAgICAjIElmIGl0IGZhaWxzLCB0aGVuIHByZXRlbmQgd2UgYXJlbid0IHVzaW5nIEdDQy4KKyAgICBhY19wcm9nPWxkCisgICAgOzsKKyAgKikKKyAgICAjIElmIGl0IGlzIHJlbGF0aXZlLCB0aGVuIHNlYXJjaCBmb3IgdGhlIGZpcnN0IGxkIGluIFBBVEguCisgICAgd2l0aF9nbnVfbGQ9dW5rbm93bgorICAgIDs7CisgIGVzYWMKK2VsaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBHTlUgbGRdKQorZWxzZQorICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBub24tR05VIGxkXSkKK2ZpCitBQ19DQUNIRV9WQUwoYWNsX2N2X3BhdGhfTEQsCitbaWYgdGVzdCAteiAiJExEIjsgdGhlbgorICBJRlM9IiR7SUZTPSAJfSI7IGFjX3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30ke1BBVEhfU0VQQVJBVE9SLTp9IgorICBmb3IgYWNfZGlyIGluICRQQVRIOyBkbworICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCisgICAgaWYgdGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyIgfHwgdGVzdCAtZiAiJGFjX2Rpci8kYWNfcHJvZyRhY19leGVleHQiOyB0aGVuCisgICAgICBhY2xfY3ZfcGF0aF9MRD0iJGFjX2Rpci8kYWNfcHJvZyIKKyAgICAgICMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBwcm9ncmFtIGlzIEdOVSBsZC4gIEknZCByYXRoZXIgdXNlIC0tdmVyc2lvbiwKKyAgICAgICMgYnV0IGFwcGFyZW50bHkgc29tZSBHTlUgbGQncyBvbmx5IGFjY2VwdCAtdi4KKyAgICAgICMgQnJlYWsgb25seSBpZiBpdCB3YXMgdGhlIEdOVS9ub24tR05VIGxkIHRoYXQgd2UgcHJlZmVyLgorICAgICAgaWYgIiRhY2xfY3ZfcGF0aF9MRCIgLXYgMj4mMSA8IC9kZXYvbnVsbCB8IGVncmVwICcoR05VfHdpdGggQkZEKScgPiAvZGV2L251bGw7IHRoZW4KKwl0ZXN0ICIkd2l0aF9nbnVfbGQiICE9IG5vICYmIGJyZWFrCisgICAgICBlbHNlCisJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSB5ZXMgJiYgYnJlYWsKKyAgICAgIGZpCisgICAgZmkKKyAgZG9uZQorICBJRlM9IiRhY19zYXZlX2lmcyIKK2Vsc2UKKyAgYWNsX2N2X3BhdGhfTEQ9IiRMRCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCitmaV0pCitMRD0iJGFjbF9jdl9wYXRoX0xEIgoraWYgdGVzdCAtbiAiJExEIjsgdGhlbgorICBBQ19NU0dfUkVTVUxUKCRMRCkKK2Vsc2UKKyAgQUNfTVNHX1JFU1VMVChubykKK2ZpCit0ZXN0IC16ICIkTEQiICYmIEFDX01TR19FUlJPUihbbm8gYWNjZXB0YWJsZSBsZCBmb3VuZCBpbiBcJFBBVEhdKQorQUNfTElCX1BST0dfTERfR05VCitdKQorIyBsaWItbGluay5tNCBzZXJpYWwgNCAoZ2V0dGV4dC0wLjEyKQorZG5sIENvcHlyaWdodCAoQykgMjAwMS0yMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorZG5sIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlLCBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVQorZG5sIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbAorZG5sIFB1YmxpYyBMaWNlbnNlLCB0aGlzIGZpbGUgbWF5IGJlIGRpc3RyaWJ1dGVkIGFzIHBhcnQgb2YgYSBwcm9ncmFtCitkbmwgdGhhdCBjb250YWlucyBhIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgdW5kZXIKK2RubCB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgYXMgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgorCitkbmwgRnJvbSBCcnVubyBIYWlibGUuCisKK2RubCBBQ19MSUJfTElOS0ZMQUdTKG5hbWUgWywgZGVwZW5kZW5jaWVzXSkgc2VhcmNoZXMgZm9yIGxpYm5hbWUgYW5kCitkbmwgdGhlIGxpYnJhcmllcyBjb3JyZXNwb25kaW5nIHRvIGV4cGxpY2l0IGFuZCBpbXBsaWNpdCBkZXBlbmRlbmNpZXMuCitkbmwgU2V0cyBhbmQgQUNfU1VCU1RzIHRoZSBMSUIke05BTUV9IGFuZCBMVExJQiR7TkFNRX0gdmFyaWFibGVzIGFuZAorZG5sIGF1Z21lbnRzIHRoZSBDUFBGTEFHUyB2YXJpYWJsZS4KK0FDX0RFRlVOKFtBQ19MSUJfTElOS0ZMQUdTXSwKK1sKKyAgQUNfUkVRVUlSRShbQUNfTElCX1BSRVBBUkVfUFJFRklYXSkKKyAgQUNfUkVRVUlSRShbQUNfTElCX1JQQVRIXSkKKyAgZGVmaW5lKFtOYW1lXSxbdHJhbnNsaXQoWyQxXSxbLi8tXSwgW19fX10pXSkKKyAgZGVmaW5lKFtOQU1FXSxbdHJhbnNsaXQoWyQxXSxbYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXouLy1dLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWl9fX10pXSkKKyAgQUNfQ0FDSEVfQ0hFQ0soW2hvdyB0byBsaW5rIHdpdGggbGliW10kMV0sIFthY19jdl9saWJbXU5hbWVbXV9saWJzXSwgWworICAgIEFDX0xJQl9MSU5LRkxBR1NfQk9EWShbJDFdLCBbJDJdKQorICAgIGFjX2N2X2xpYltdTmFtZVtdX2xpYnM9IiRMSUJbXU5BTUUiCisgICAgYWNfY3ZfbGliW11OYW1lW11fbHRsaWJzPSIkTFRMSUJbXU5BTUUiCisgICAgYWNfY3ZfbGliW11OYW1lW11fY3BwZmxhZ3M9IiRJTkNbXU5BTUUiCisgIF0pCisgIExJQltdTkFNRT0iJGFjX2N2X2xpYltdTmFtZVtdX2xpYnMiCisgIExUTElCW11OQU1FPSIkYWNfY3ZfbGliW11OYW1lW11fbHRsaWJzIgorICBJTkNbXU5BTUU9IiRhY19jdl9saWJbXU5hbWVbXV9jcHBmbGFncyIKKyAgQUNfTElCX0FQUEVORFRPVkFSKFtDUFBGTEFHU10sIFskSU5DXU5BTUUpCisgIEFDX1NVQlNUKFtMSUJdTkFNRSkKKyAgQUNfU1VCU1QoW0xUTElCXU5BTUUpCisgIGRubCBBbHNvIHNldCBIQVZFX0xJQltdTkFNRSBzbyB0aGF0IEFDX0xJQl9IQVZFX0xJTktGTEFHUyBjYW4gcmV1c2UgdGhlCisgIGRubCByZXN1bHRzIG9mIHRoaXMgc2VhcmNoIHdoZW4gdGhpcyBsaWJyYXJ5IGFwcGVhcnMgYXMgYSBkZXBlbmRlbmN5LgorICBIQVZFX0xJQltdTkFNRT15ZXMKKyAgdW5kZWZpbmUoW05hbWVdKQorICB1bmRlZmluZShbTkFNRV0pCitdKQorCitkbmwgQUNfTElCX0hBVkVfTElOS0ZMQUdTKG5hbWUsIGRlcGVuZGVuY2llcywgaW5jbHVkZXMsIHRlc3Rjb2RlKQorZG5sIHNlYXJjaGVzIGZvciBsaWJuYW1lIGFuZCB0aGUgbGlicmFyaWVzIGNvcnJlc3BvbmRpbmcgdG8gZXhwbGljaXQgYW5kCitkbmwgaW1wbGljaXQgZGVwZW5kZW5jaWVzLCB0b2dldGhlciB3aXRoIHRoZSBzcGVjaWZpZWQgaW5jbHVkZSBmaWxlcyBhbmQKK2RubCB0aGUgYWJpbGl0eSB0byBjb21waWxlIGFuZCBsaW5rIHRoZSBzcGVjaWZpZWQgdGVzdGNvZGUuIElmIGZvdW5kLCBpdAorZG5sIHNldHMgYW5kIEFDX1NVQlNUcyBIQVZFX0xJQiR7TkFNRX09eWVzIGFuZCB0aGUgTElCJHtOQU1FfSBhbmQKK2RubCBMVExJQiR7TkFNRX0gdmFyaWFibGVzIGFuZCBhdWdtZW50cyB0aGUgQ1BQRkxBR1MgdmFyaWFibGUsIGFuZAorZG5sICNkZWZpbmVzIEhBVkVfTElCJHtOQU1FfSB0byAxLiBPdGhlcndpc2UsIGl0IHNldHMgYW5kIEFDX1NVQlNUcworZG5sIEhBVkVfTElCJHtOQU1FfT1ubyBhbmQgTElCJHtOQU1FfSBhbmQgTFRMSUIke05BTUV9IHRvIGVtcHR5LgorQUNfREVGVU4oW0FDX0xJQl9IQVZFX0xJTktGTEFHU10sCitbCisgIEFDX1JFUVVJUkUoW0FDX0xJQl9QUkVQQVJFX1BSRUZJWF0pCisgIEFDX1JFUVVJUkUoW0FDX0xJQl9SUEFUSF0pCisgIGRlZmluZShbTmFtZV0sW3RyYW5zbGl0KFskMV0sWy4vLV0sIFtfX19dKV0pCisgIGRlZmluZShbTkFNRV0sW3RyYW5zbGl0KFskMV0sW2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Li8tXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpfX19dKV0pCisKKyAgZG5sIFNlYXJjaCBmb3IgbGliW11OYW1lIGFuZCBkZWZpbmUgTElCW11OQU1FLCBMVExJQltdTkFNRSBhbmQgSU5DW11OQU1FCisgIGRubCBhY2NvcmRpbmdseS4KKyAgQUNfTElCX0xJTktGTEFHU19CT0RZKFskMV0sIFskMl0pCisKKyAgZG5sIEFkZCAkSU5DW11OQU1FIHRvIENQUEZMQUdTIGJlZm9yZSBwZXJmb3JtaW5nIHRoZSBmb2xsb3dpbmcgY2hlY2tzLAorICBkbmwgYmVjYXVzZSBpZiB0aGUgdXNlciBoYXMgaW5zdGFsbGVkIGxpYltdTmFtZSBhbmQgbm90IGRpc2FibGVkIGl0cyB1c2UKKyAgZG5sIHZpYSAtLXdpdGhvdXQtbGliW11OYW1lLXByZWZpeCwgaGUgd2FudHMgdG8gdXNlIGl0LgorICBhY19zYXZlX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCisgIEFDX0xJQl9BUFBFTkRUT1ZBUihbQ1BQRkxBR1NdLCBbJElOQ11OQU1FKQorCisgIEFDX0NBQ0hFX0NIRUNLKFtmb3IgbGliW10kMV0sIFthY19jdl9saWJbXU5hbWVdLCBbCisgICAgYWNfc2F2ZV9MSUJTPSIkTElCUyIKKyAgICBMSUJTPSIkTElCUyAkTElCW11OQU1FIgorICAgIEFDX1RSWV9MSU5LKFskM10sIFskNF0sIFthY19jdl9saWJbXU5hbWU9eWVzXSwgW2FjX2N2X2xpYltdTmFtZT1ub10pCisgICAgTElCUz0iJGFjX3NhdmVfTElCUyIKKyAgXSkKKyAgaWYgdGVzdCAiJGFjX2N2X2xpYltdTmFtZSIgPSB5ZXM7IHRoZW4KKyAgICBIQVZFX0xJQltdTkFNRT15ZXMKKyAgICBBQ19ERUZJTkUoW0hBVkVfTElCXU5BTUUsIDEsIFtEZWZpbmUgaWYgeW91IGhhdmUgdGhlICQxIGxpYnJhcnkuXSkKKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW2hvdyB0byBsaW5rIHdpdGggbGliW10kMV0pCisgICAgQUNfTVNHX1JFU1VMVChbJExJQltdTkFNRV0pCisgIGVsc2UKKyAgICBIQVZFX0xJQltdTkFNRT1ubworICAgIGRubCBJZiAkTElCW11OQU1FIGRpZG4ndCBsZWFkIHRvIGEgdXNhYmxlIGxpYnJhcnksIHdlIGRvbid0IG5lZWQKKyAgICBkbmwgJElOQ1tdTkFNRSBlaXRoZXIuCisgICAgQ1BQRkxBR1M9IiRhY19zYXZlX0NQUEZMQUdTIgorICAgIExJQltdTkFNRT0KKyAgICBMVExJQltdTkFNRT0KKyAgZmkKKyAgQUNfU1VCU1QoW0hBVkVfTElCXU5BTUUpCisgIEFDX1NVQlNUKFtMSUJdTkFNRSkKKyAgQUNfU1VCU1QoW0xUTElCXU5BTUUpCisgIHVuZGVmaW5lKFtOYW1lXSkKKyAgdW5kZWZpbmUoW05BTUVdKQorXSkKKworZG5sIERldGVybWluZSB0aGUgcGxhdGZvcm0gZGVwZW5kZW50IHBhcmFtZXRlcnMgbmVlZGVkIHRvIHVzZSBycGF0aDoKK2RubCBsaWJleHQsIHNobGliZXh0LCBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLAorZG5sIGhhcmRjb2RlX2RpcmVjdCwgaGFyZGNvZGVfbWludXNfTC4KK0FDX0RFRlVOKFtBQ19MSUJfUlBBVEhdLAorWworICBBQ19SRVFVSVJFKFtBQ19QUk9HX0NDXSkgICAgICAgICAgICAgICAgZG5sIHdlIHVzZSAkQ0MsICRHQ0MsICRMREZMQUdTCisgIEFDX1JFUVVJUkUoW0FDX0xJQl9QUk9HX0xEXSkgICAgICAgICAgICBkbmwgd2UgdXNlICRMRCwgJHdpdGhfZ251X2xkCisgIEFDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSkgICAgICAgICBkbmwgd2UgdXNlICRob3N0CisgIEFDX1JFUVVJUkUoW0FDX0NPTkZJR19BVVhfRElSX0RFRkFVTFRdKSBkbmwgd2UgdXNlICRhY19hdXhfZGlyCisgIEFDX0NBQ0hFX0NIRUNLKFtmb3Igc2hhcmVkIGxpYnJhcnkgcnVuIHBhdGggb3JpZ2luXSwgYWNsX2N2X3JwYXRoLCBbCisgICAgQ0M9IiRDQyIgR0NDPSIkR0NDIiBMREZMQUdTPSIkTERGTEFHUyIgTEQ9IiRMRCIgd2l0aF9nbnVfbGQ9IiR3aXRoX2dudV9sZCIgXAorICAgICR7Q09ORklHX1NIRUxMLS9iaW4vc2h9ICIkYWNfYXV4X2Rpci9jb25maWcucnBhdGgiICIkaG9zdCIgPiBjb25mdGVzdC5zaAorICAgIC4gLi9jb25mdGVzdC5zaAorICAgIHJtIC1mIC4vY29uZnRlc3Quc2gKKyAgICBhY2xfY3ZfcnBhdGg9ZG9uZQorICBdKQorICB3bD0iJGFjbF9jdl93bCIKKyAgbGliZXh0PSIkYWNsX2N2X2xpYmV4dCIKKyAgc2hsaWJleHQ9IiRhY2xfY3Zfc2hsaWJleHQiCisgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9IiRhY2xfY3ZfaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyIKKyAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0iJGFjbF9jdl9oYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIgorICBoYXJkY29kZV9kaXJlY3Q9IiRhY2xfY3ZfaGFyZGNvZGVfZGlyZWN0IgorICBoYXJkY29kZV9taW51c19MPSIkYWNsX2N2X2hhcmRjb2RlX21pbnVzX0wiCisgIGRubCBEZXRlcm1pbmUgd2hldGhlciB0aGUgdXNlciB3YW50cyBycGF0aCBoYW5kbGluZyBhdCBhbGwuCisgIEFDX0FSR19FTkFCTEUocnBhdGgsCisgICAgWyAgLS1kaXNhYmxlLXJwYXRoICAgICAgICAgZG8gbm90IGhhcmRjb2RlIHJ1bnRpbWUgbGlicmFyeSBwYXRoc10sCisgICAgOiwgZW5hYmxlX3JwYXRoPXllcykKK10pCisKK2RubCBBQ19MSUJfTElOS0ZMQUdTX0JPRFkobmFtZSBbLCBkZXBlbmRlbmNpZXNdKSBzZWFyY2hlcyBmb3IgbGlibmFtZSBhbmQKK2RubCB0aGUgbGlicmFyaWVzIGNvcnJlc3BvbmRpbmcgdG8gZXhwbGljaXQgYW5kIGltcGxpY2l0IGRlcGVuZGVuY2llcy4KK2RubCBTZXRzIHRoZSBMSUIke05BTUV9LCBMVExJQiR7TkFNRX0gYW5kIElOQyR7TkFNRX0gdmFyaWFibGVzLgorQUNfREVGVU4oW0FDX0xJQl9MSU5LRkxBR1NfQk9EWV0sCitbCisgIGRlZmluZShbTkFNRV0sW3RyYW5zbGl0KFskMV0sW2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Li8tXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpfX19dKV0pCisgIGRubCBCeSBkZWZhdWx0LCBsb29rIGluICRpbmNsdWRlZGlyIGFuZCAkbGliZGlyLgorICB1c2VfYWRkaXRpb25hbD15ZXMKKyAgQUNfTElCX1dJVEhfRklOQUxfUFJFRklYKFsKKyAgICBldmFsIGFkZGl0aW9uYWxfaW5jbHVkZWRpcj1cIiRpbmNsdWRlZGlyXCIKKyAgICBldmFsIGFkZGl0aW9uYWxfbGliZGlyPVwiJGxpYmRpclwiCisgIF0pCisgIEFDX0xJQl9BUkdfV0lUSChbbGliJDEtcHJlZml4XSwKK1sgIC0td2l0aC1saWIkMS1wcmVmaXhbPURJUl0gIHNlYXJjaCBmb3IgbGliJDEgaW4gRElSL2luY2x1ZGUgYW5kIERJUi9saWIKKyAgLS13aXRob3V0LWxpYiQxLXByZWZpeCAgICAgZG9uJ3Qgc2VhcmNoIGZvciBsaWIkMSBpbiBpbmNsdWRlZGlyIGFuZCBsaWJkaXJdLAorWworICAgIGlmIHRlc3QgIlgkd2l0aHZhbCIgPSAiWG5vIjsgdGhlbgorICAgICAgdXNlX2FkZGl0aW9uYWw9bm8KKyAgICBlbHNlCisgICAgICBpZiB0ZXN0ICJYJHdpdGh2YWwiID0gIlgiOyB0aGVuCisgICAgICAgIEFDX0xJQl9XSVRIX0ZJTkFMX1BSRUZJWChbCisgICAgICAgICAgZXZhbCBhZGRpdGlvbmFsX2luY2x1ZGVkaXI9XCIkaW5jbHVkZWRpclwiCisgICAgICAgICAgZXZhbCBhZGRpdGlvbmFsX2xpYmRpcj1cIiRsaWJkaXJcIgorICAgICAgICBdKQorICAgICAgZWxzZQorICAgICAgICBhZGRpdGlvbmFsX2luY2x1ZGVkaXI9IiR3aXRodmFsL2luY2x1ZGUiCisgICAgICAgIGFkZGl0aW9uYWxfbGliZGlyPSIkd2l0aHZhbC9saWIiCisgICAgICBmaQorICAgIGZpCitdKQorICBkbmwgU2VhcmNoIHRoZSBsaWJyYXJ5IGFuZCBpdHMgZGVwZW5kZW5jaWVzIGluICRhZGRpdGlvbmFsX2xpYmRpciBhbmQKKyAgZG5sICRMREZMQUdTLiBVc2luZyBicmVhZHRoLWZpcnN0LXNlYWNoLgorICBMSUJbXU5BTUU9CisgIExUTElCW11OQU1FPQorICBJTkNbXU5BTUU9CisgIHJwYXRoZGlycz0KKyAgbHRycGF0aGRpcnM9CisgIG5hbWVzX2FscmVhZHlfaGFuZGxlZD0KKyAgbmFtZXNfbmV4dF9yb3VuZD0nJDEgJDInCisgIHdoaWxlIHRlc3QgLW4gIiRuYW1lc19uZXh0X3JvdW5kIjsgZG8KKyAgICBuYW1lc190aGlzX3JvdW5kPSIkbmFtZXNfbmV4dF9yb3VuZCIKKyAgICBuYW1lc19uZXh0X3JvdW5kPQorICAgIGZvciBuYW1lIGluICRuYW1lc190aGlzX3JvdW5kOyBkbworICAgICAgYWxyZWFkeV9oYW5kbGVkPQorICAgICAgZm9yIG4gaW4gJG5hbWVzX2FscmVhZHlfaGFuZGxlZDsgZG8KKyAgICAgICAgaWYgdGVzdCAiJG4iID0gIiRuYW1lIjsgdGhlbgorICAgICAgICAgIGFscmVhZHlfaGFuZGxlZD15ZXMKKyAgICAgICAgICBicmVhaworICAgICAgICBmaQorICAgICAgZG9uZQorICAgICAgaWYgdGVzdCAteiAiJGFscmVhZHlfaGFuZGxlZCI7IHRoZW4KKyAgICAgICAgbmFtZXNfYWxyZWFkeV9oYW5kbGVkPSIkbmFtZXNfYWxyZWFkeV9oYW5kbGVkICRuYW1lIgorICAgICAgICBkbmwgU2VlIGlmIGl0IHdhcyBhbHJlYWR5IGxvY2F0ZWQgYnkgYW4gZWFybGllciBBQ19MSUJfTElOS0ZMQUdTCisgICAgICAgIGRubCBvciBBQ19MSUJfSEFWRV9MSU5LRkxBR1MgY2FsbC4KKyAgICAgICAgdXBwZXJuYW1lPWBlY2hvICIkbmFtZSIgfCBzZWQgLWUgJ3l8YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXouLy18QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpfX198J2AKKyAgICAgICAgZXZhbCB2YWx1ZT1cIlwkSEFWRV9MSUIkdXBwZXJuYW1lXCIKKyAgICAgICAgaWYgdGVzdCAtbiAiJHZhbHVlIjsgdGhlbgorICAgICAgICAgIGlmIHRlc3QgIiR2YWx1ZSIgPSB5ZXM7IHRoZW4KKyAgICAgICAgICAgIGV2YWwgdmFsdWU9XCJcJExJQiR1cHBlcm5hbWVcIgorICAgICAgICAgICAgdGVzdCAteiAiJHZhbHVlIiB8fCBMSUJbXU5BTUU9IiR7TElCW11OQU1FfSR7TElCW11OQU1FOisgfSR2YWx1ZSIKKyAgICAgICAgICAgIGV2YWwgdmFsdWU9XCJcJExUTElCJHVwcGVybmFtZVwiCisgICAgICAgICAgICB0ZXN0IC16ICIkdmFsdWUiIHx8IExUTElCW11OQU1FPSIke0xUTElCW11OQU1FfSR7TFRMSUJbXU5BTUU6KyB9JHZhbHVlIgorICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRubCBBbiBlYXJsaWVyIGNhbGwgdG8gQUNfTElCX0hBVkVfTElOS0ZMQUdTIGhhcyBkZXRlcm1pbmVkCisgICAgICAgICAgICBkbmwgdGhhdCB0aGlzIGxpYnJhcnkgZG9lc24ndCBleGlzdC4gU28ganVzdCBkcm9wIGl0LgorICAgICAgICAgICAgOgorICAgICAgICAgIGZpCisgICAgICAgIGVsc2UKKyAgICAgICAgICBkbmwgU2VhcmNoIHRoZSBsaWJyYXJ5IGxpYiRuYW1lIGluICRhZGRpdGlvbmFsX2xpYmRpciBhbmQgJExERkxBR1MKKyAgICAgICAgICBkbmwgYW5kIHRoZSBhbHJlYWR5IGNvbnN0cnVjdGVkICRMSUJOQU1FLyRMVExJQk5BTUUuCisgICAgICAgICAgZm91bmRfZGlyPQorICAgICAgICAgIGZvdW5kX2xhPQorICAgICAgICAgIGZvdW5kX3NvPQorICAgICAgICAgIGZvdW5kX2E9CisgICAgICAgICAgaWYgdGVzdCAkdXNlX2FkZGl0aW9uYWwgPSB5ZXM7IHRoZW4KKyAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRzaGxpYmV4dCIgJiYgdGVzdCAtZiAiJGFkZGl0aW9uYWxfbGliZGlyL2xpYiRuYW1lLiRzaGxpYmV4dCI7IHRoZW4KKyAgICAgICAgICAgICAgZm91bmRfZGlyPSIkYWRkaXRpb25hbF9saWJkaXIiCisgICAgICAgICAgICAgIGZvdW5kX3NvPSIkYWRkaXRpb25hbF9saWJkaXIvbGliJG5hbWUuJHNobGliZXh0IgorICAgICAgICAgICAgICBpZiB0ZXN0IC1mICIkYWRkaXRpb25hbF9saWJkaXIvbGliJG5hbWUubGEiOyB0aGVuCisgICAgICAgICAgICAgICAgZm91bmRfbGE9IiRhZGRpdGlvbmFsX2xpYmRpci9saWIkbmFtZS5sYSIKKyAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgaWYgdGVzdCAtZiAiJGFkZGl0aW9uYWxfbGliZGlyL2xpYiRuYW1lLiRsaWJleHQiOyB0aGVuCisgICAgICAgICAgICAgICAgZm91bmRfZGlyPSIkYWRkaXRpb25hbF9saWJkaXIiCisgICAgICAgICAgICAgICAgZm91bmRfYT0iJGFkZGl0aW9uYWxfbGliZGlyL2xpYiRuYW1lLiRsaWJleHQiCisgICAgICAgICAgICAgICAgaWYgdGVzdCAtZiAiJGFkZGl0aW9uYWxfbGliZGlyL2xpYiRuYW1lLmxhIjsgdGhlbgorICAgICAgICAgICAgICAgICAgZm91bmRfbGE9IiRhZGRpdGlvbmFsX2xpYmRpci9saWIkbmFtZS5sYSIKKyAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgZmkKKyAgICAgICAgICBmaQorICAgICAgICAgIGlmIHRlc3QgIlgkZm91bmRfZGlyIiA9ICJYIjsgdGhlbgorICAgICAgICAgICAgZm9yIHggaW4gJExERkxBR1MgJExUTElCW11OQU1FOyBkbworICAgICAgICAgICAgICBBQ19MSUJfV0lUSF9GSU5BTF9QUkVGSVgoW2V2YWwgeD1cIiR4XCJdKQorICAgICAgICAgICAgICBjYXNlICIkeCIgaW4KKyAgICAgICAgICAgICAgICAtTCopCisgICAgICAgICAgICAgICAgICBkaXI9YGVjaG8gIlgkeCIgfCBzZWQgLWUgJ3MvXlgtTC8vJ2AKKyAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRzaGxpYmV4dCIgJiYgdGVzdCAtZiAiJGRpci9saWIkbmFtZS4kc2hsaWJleHQiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgIGZvdW5kX2Rpcj0iJGRpciIKKyAgICAgICAgICAgICAgICAgICAgZm91bmRfc289IiRkaXIvbGliJG5hbWUuJHNobGliZXh0IgorICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1mICIkZGlyL2xpYiRuYW1lLmxhIjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgIGZvdW5kX2xhPSIkZGlyL2xpYiRuYW1lLmxhIgorICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1mICIkZGlyL2xpYiRuYW1lLiRsaWJleHQiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgZm91bmRfZGlyPSIkZGlyIgorICAgICAgICAgICAgICAgICAgICAgIGZvdW5kX2E9IiRkaXIvbGliJG5hbWUuJGxpYmV4dCIKKyAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1mICIkZGlyL2xpYiRuYW1lLmxhIjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRfbGE9IiRkaXIvbGliJG5hbWUubGEiCisgICAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICA7OworICAgICAgICAgICAgICBlc2FjCisgICAgICAgICAgICAgIGlmIHRlc3QgIlgkZm91bmRfZGlyIiAhPSAiWCI7IHRoZW4KKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgZG9uZQorICAgICAgICAgIGZpCisgICAgICAgICAgaWYgdGVzdCAiWCRmb3VuZF9kaXIiICE9ICJYIjsgdGhlbgorICAgICAgICAgICAgZG5sIEZvdW5kIHRoZSBsaWJyYXJ5LgorICAgICAgICAgICAgTFRMSUJbXU5BTUU9IiR7TFRMSUJbXU5BTUV9JHtMVExJQltdTkFNRTorIH0tTCRmb3VuZF9kaXIgLWwkbmFtZSIKKyAgICAgICAgICAgIGlmIHRlc3QgIlgkZm91bmRfc28iICE9ICJYIjsgdGhlbgorICAgICAgICAgICAgICBkbmwgTGlua2luZyB3aXRoIGEgc2hhcmVkIGxpYnJhcnkuIFdlIGF0dGVtcHQgdG8gaGFyZGNvZGUgaXRzCisgICAgICAgICAgICAgIGRubCBkaXJlY3RvcnkgaW50byB0aGUgZXhlY3V0YWJsZSdzIHJ1bnBhdGgsIHVubGVzcyBpdCdzIHRoZQorICAgICAgICAgICAgICBkbmwgc3RhbmRhcmQgL3Vzci9saWIuCisgICAgICAgICAgICAgIGlmIHRlc3QgIiRlbmFibGVfcnBhdGgiID0gbm8gfHwgdGVzdCAiWCRmb3VuZF9kaXIiID0gIlgvdXNyL2xpYiI7IHRoZW4KKyAgICAgICAgICAgICAgICBkbmwgTm8gaGFyZGNvZGluZyBpcyBuZWVkZWQuCisgICAgICAgICAgICAgICAgTElCW11OQU1FPSIke0xJQltdTkFNRX0ke0xJQltdTkFNRTorIH0kZm91bmRfc28iCisgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBkbmwgVXNlIGFuIGV4cGxpY2l0IG9wdGlvbiB0byBoYXJkY29kZSBESVIgaW50byB0aGUgcmVzdWx0aW5nCisgICAgICAgICAgICAgICAgZG5sIGJpbmFyeS4KKyAgICAgICAgICAgICAgICBkbmwgUG90ZW50aWFsbHkgYWRkIERJUiB0byBsdHJwYXRoZGlycy4KKyAgICAgICAgICAgICAgICBkbmwgVGhlIGx0cnBhdGhkaXJzIHdpbGwgYmUgYXBwZW5kZWQgdG8gJExUTElCTkFNRSBhdCB0aGUgZW5kLgorICAgICAgICAgICAgICAgIGhhdmVpdD0KKyAgICAgICAgICAgICAgICBmb3IgeCBpbiAkbHRycGF0aGRpcnM7IGRvCisgICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJYJHgiID0gIlgkZm91bmRfZGlyIjsgdGhlbgorICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9eWVzCisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgIGRvbmUKKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgorICAgICAgICAgICAgICAgICAgbHRycGF0aGRpcnM9IiRsdHJwYXRoZGlycyAkZm91bmRfZGlyIgorICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgZG5sIFRoZSBoYXJkY29kaW5nIGludG8gJExJQk5BTUUgaXMgc3lzdGVtIGRlcGVuZGVudC4KKyAgICAgICAgICAgICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiA9IHllczsgdGhlbgorICAgICAgICAgICAgICAgICAgZG5sIFVzaW5nIERJUi9saWJOQU1FLnNvIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIgaW50byB0aGUKKyAgICAgICAgICAgICAgICAgIGRubCByZXN1bHRpbmcgYmluYXJ5LgorICAgICAgICAgICAgICAgICAgTElCW11OQU1FPSIke0xJQltdTkFNRX0ke0xJQltdTkFNRTorIH0kZm91bmRfc28iCisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiICYmIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiA9IG5vOyB0aGVuCisgICAgICAgICAgICAgICAgICAgIGRubCBVc2UgYW4gZXhwbGljaXQgb3B0aW9uIHRvIGhhcmRjb2RlIERJUiBpbnRvIHRoZSByZXN1bHRpbmcKKyAgICAgICAgICAgICAgICAgICAgZG5sIGJpbmFyeS4KKyAgICAgICAgICAgICAgICAgICAgTElCW11OQU1FPSIke0xJQltdTkFNRX0ke0xJQltdTkFNRTorIH0kZm91bmRfc28iCisgICAgICAgICAgICAgICAgICAgIGRubCBQb3RlbnRpYWxseSBhZGQgRElSIHRvIHJwYXRoZGlycy4KKyAgICAgICAgICAgICAgICAgICAgZG5sIFRoZSBycGF0aGRpcnMgd2lsbCBiZSBhcHBlbmRlZCB0byAkTElCTkFNRSBhdCB0aGUgZW5kLgorICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9CisgICAgICAgICAgICAgICAgICAgIGZvciB4IGluICRycGF0aGRpcnM7IGRvCisgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiWCR4IiA9ICJYJGZvdW5kX2RpciI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICAgIGhhdmVpdD15ZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgICAgZG9uZQorICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgIHJwYXRoZGlycz0iJHJwYXRoZGlycyAkZm91bmRfZGlyIgorICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBkbmwgUmVseSBvbiAiLUwkZm91bmRfZGlyIi4KKyAgICAgICAgICAgICAgICAgICAgZG5sIEJ1dCBkb24ndCBhZGQgaXQgaWYgaXQncyBhbHJlYWR5IGNvbnRhaW5lZCBpbiB0aGUgTERGTEFHUworICAgICAgICAgICAgICAgICAgICBkbmwgb3IgdGhlIGFscmVhZHkgY29uc3RydWN0ZWQgJExJQk5BTUUKKyAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PQorICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiAkTERGTEFHUyAkTElCW11OQU1FOyBkbworICAgICAgICAgICAgICAgICAgICAgIEFDX0xJQl9XSVRIX0ZJTkFMX1BSRUZJWChbZXZhbCB4PVwiJHhcIl0pCisgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiWCR4IiA9ICJYLUwkZm91bmRfZGlyIjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PXllcworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgICBkb25lCisgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLXogIiRoYXZlaXQiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgTElCW11OQU1FPSIke0xJQltdTkFNRX0ke0xJQltdTkFNRTorIH0tTCRmb3VuZF9kaXIiCisgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiAhPSBubzsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgIGRubCBGSVhNRTogTm90IHN1cmUgd2hldGhlciB3ZSBzaG91bGQgdXNlCisgICAgICAgICAgICAgICAgICAgICAgZG5sICItTCRmb3VuZF9kaXIgLWwkbmFtZSIgb3IgIi1MJGZvdW5kX2RpciAkZm91bmRfc28iCisgICAgICAgICAgICAgICAgICAgICAgZG5sIGhlcmUuCisgICAgICAgICAgICAgICAgICAgICAgTElCW11OQU1FPSIke0xJQltdTkFNRX0ke0xJQltdTkFNRTorIH0kZm91bmRfc28iCisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICBkbmwgV2UgY2Fubm90IHVzZSAkaGFyZGNvZGVfcnVucGF0aF92YXIgYW5kIExEX1JVTl9QQVRICisgICAgICAgICAgICAgICAgICAgICAgZG5sIGhlcmUsIGJlY2F1c2UgdGhpcyBkb2Vzbid0IGZpdCBpbiBmbGFncyBwYXNzZWQgdG8gdGhlCisgICAgICAgICAgICAgICAgICAgICAgZG5sIGNvbXBpbGVyLiBTbyBnaXZlIHVwLiBObyBoYXJkY29kaW5nLiBUaGlzIGFmZmVjdHMgb25seQorICAgICAgICAgICAgICAgICAgICAgIGRubCB2ZXJ5IG9sZCBzeXN0ZW1zLgorICAgICAgICAgICAgICAgICAgICAgIGRubCBGSVhNRTogTm90IHN1cmUgd2hldGhlciB3ZSBzaG91bGQgdXNlCisgICAgICAgICAgICAgICAgICAgICAgZG5sICItTCRmb3VuZF9kaXIgLWwkbmFtZSIgb3IgIi1MJGZvdW5kX2RpciAkZm91bmRfc28iCisgICAgICAgICAgICAgICAgICAgICAgZG5sIGhlcmUuCisgICAgICAgICAgICAgICAgICAgICAgTElCW11OQU1FPSIke0xJQltdTkFNRX0ke0xJQltdTkFNRTorIH0tbCRuYW1lIgorICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICBpZiB0ZXN0ICJYJGZvdW5kX2EiICE9ICJYIjsgdGhlbgorICAgICAgICAgICAgICAgIGRubCBMaW5raW5nIHdpdGggYSBzdGF0aWMgbGlicmFyeS4KKyAgICAgICAgICAgICAgICBMSUJbXU5BTUU9IiR7TElCW11OQU1FfSR7TElCW11OQU1FOisgfSRmb3VuZF9hIgorICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZG5sIFdlIHNob3VsZG4ndCBjb21lIGhlcmUsIGJ1dCBhbnl3YXkgaXQncyBnb29kIHRvIGhhdmUgYQorICAgICAgICAgICAgICAgIGRubCBmYWxsYmFjay4KKyAgICAgICAgICAgICAgICBMSUJbXU5BTUU9IiR7TElCW11OQU1FfSR7TElCW11OQU1FOisgfS1MJGZvdW5kX2RpciAtbCRuYW1lIgorICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgZmkKKyAgICAgICAgICAgIGRubCBBc3N1bWUgdGhlIGluY2x1ZGUgZmlsZXMgYXJlIG5lYXJieS4KKyAgICAgICAgICAgIGFkZGl0aW9uYWxfaW5jbHVkZWRpcj0KKyAgICAgICAgICAgIGNhc2UgIiRmb3VuZF9kaXIiIGluCisgICAgICAgICAgICAgICovbGliIHwgKi9saWIvKQorICAgICAgICAgICAgICAgIGJhc2VkaXI9YGVjaG8gIlgkZm91bmRfZGlyIiB8IHNlZCAtZSAncyxeWCwsJyAtZSAncywvbGliLyokLCwnYAorICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxfaW5jbHVkZWRpcj0iJGJhc2VkaXIvaW5jbHVkZSIKKyAgICAgICAgICAgICAgICA7OworICAgICAgICAgICAgZXNhYworICAgICAgICAgICAgaWYgdGVzdCAiWCRhZGRpdGlvbmFsX2luY2x1ZGVkaXIiICE9ICJYIjsgdGhlbgorICAgICAgICAgICAgICBkbmwgUG90ZW50aWFsbHkgYWRkICRhZGRpdGlvbmFsX2luY2x1ZGVkaXIgdG8gJElOQ05BTUUuCisgICAgICAgICAgICAgIGRubCBCdXQgZG9uJ3QgYWRkIGl0CisgICAgICAgICAgICAgIGRubCAgIDEuIGlmIGl0J3MgdGhlIHN0YW5kYXJkIC91c3IvaW5jbHVkZSwKKyAgICAgICAgICAgICAgZG5sICAgMi4gaWYgaXQncyAvdXNyL2xvY2FsL2luY2x1ZGUgYW5kIHdlIGFyZSB1c2luZyBHQ0Mgb24gTGludXgsCisgICAgICAgICAgICAgIGRubCAgIDMuIGlmIGl0J3MgYWxyZWFkeSBwcmVzZW50IGluICRDUFBGTEFHUyBvciB0aGUgYWxyZWFkeQorICAgICAgICAgICAgICBkbmwgICAgICBjb25zdHJ1Y3RlZCAkSU5DTkFNRSwKKyAgICAgICAgICAgICAgZG5sICAgNC4gaWYgaXQgZG9lc24ndCBleGlzdCBhcyBhIGRpcmVjdG9yeS4KKyAgICAgICAgICAgICAgaWYgdGVzdCAiWCRhZGRpdGlvbmFsX2luY2x1ZGVkaXIiICE9ICJYL3Vzci9pbmNsdWRlIjsgdGhlbgorICAgICAgICAgICAgICAgIGhhdmVpdD0KKyAgICAgICAgICAgICAgICBpZiB0ZXN0ICJYJGFkZGl0aW9uYWxfaW5jbHVkZWRpciIgPSAiWC91c3IvbG9jYWwvaW5jbHVkZSI7IHRoZW4KKyAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRHQ0MiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICAgICAgICAgICAgICAgICAgICBsaW51eCopIGhhdmVpdD15ZXM7OworICAgICAgICAgICAgICAgICAgICBlc2FjCisgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4KKyAgICAgICAgICAgICAgICAgIGZvciB4IGluICRDUFBGTEFHUyAkSU5DW11OQU1FOyBkbworICAgICAgICAgICAgICAgICAgICBBQ19MSUJfV0lUSF9GSU5BTF9QUkVGSVgoW2V2YWwgeD1cIiR4XCJdKQorICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0ICJYJHgiID0gIlgtSSRhZGRpdGlvbmFsX2luY2x1ZGVkaXIiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PXllcworICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICBkb25lCisgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgorICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1kICIkYWRkaXRpb25hbF9pbmNsdWRlZGlyIjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgIGRubCBSZWFsbHkgYWRkICRhZGRpdGlvbmFsX2luY2x1ZGVkaXIgdG8gJElOQ05BTUUuCisgICAgICAgICAgICAgICAgICAgICAgSU5DW11OQU1FPSIke0lOQ1tdTkFNRX0ke0lOQ1tdTkFNRTorIH0tSSRhZGRpdGlvbmFsX2luY2x1ZGVkaXIiCisgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICBmaQorICAgICAgICAgICAgZG5sIExvb2sgZm9yIGRlcGVuZGVuY2llcy4KKyAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRmb3VuZF9sYSI7IHRoZW4KKyAgICAgICAgICAgICAgZG5sIFJlYWQgdGhlIC5sYSBmaWxlLiBJdCBkZWZpbmVzIHRoZSB2YXJpYWJsZXMKKyAgICAgICAgICAgICAgZG5sIGRsbmFtZSwgbGlicmFyeV9uYW1lcywgb2xkX2xpYnJhcnksIGRlcGVuZGVuY3lfbGlicywgY3VycmVudCwKKyAgICAgICAgICAgICAgZG5sIGFnZSwgcmV2aXNpb24sIGluc3RhbGxlZCwgZGxvcGVuLCBkbHByZW9wZW4sIGxpYmRpci4KKyAgICAgICAgICAgICAgc2F2ZV9saWJkaXI9IiRsaWJkaXIiCisgICAgICAgICAgICAgIGNhc2UgIiRmb3VuZF9sYSIgaW4KKyAgICAgICAgICAgICAgICAqLyogfCAqXFwqKSAuICIkZm91bmRfbGEiIDs7CisgICAgICAgICAgICAgICAgKikgLiAiLi8kZm91bmRfbGEiIDs7CisgICAgICAgICAgICAgIGVzYWMKKyAgICAgICAgICAgICAgbGliZGlyPSIkc2F2ZV9saWJkaXIiCisgICAgICAgICAgICAgIGRubCBXZSB1c2Ugb25seSBkZXBlbmRlbmN5X2xpYnMuCisgICAgICAgICAgICAgIGZvciBkZXAgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KKyAgICAgICAgICAgICAgICBjYXNlICIkZGVwIiBpbgorICAgICAgICAgICAgICAgICAgLUwqKQorICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsX2xpYmRpcj1gZWNobyAiWCRkZXAiIHwgc2VkIC1lICdzL15YLUwvLydgCisgICAgICAgICAgICAgICAgICAgIGRubCBQb3RlbnRpYWxseSBhZGQgJGFkZGl0aW9uYWxfbGliZGlyIHRvICRMSUJOQU1FIGFuZCAkTFRMSUJOQU1FLgorICAgICAgICAgICAgICAgICAgICBkbmwgQnV0IGRvbid0IGFkZCBpdAorICAgICAgICAgICAgICAgICAgICBkbmwgICAxLiBpZiBpdCdzIHRoZSBzdGFuZGFyZCAvdXNyL2xpYiwKKyAgICAgICAgICAgICAgICAgICAgZG5sICAgMi4gaWYgaXQncyAvdXNyL2xvY2FsL2xpYiBhbmQgd2UgYXJlIHVzaW5nIEdDQyBvbiBMaW51eCwKKyAgICAgICAgICAgICAgICAgICAgZG5sICAgMy4gaWYgaXQncyBhbHJlYWR5IHByZXNlbnQgaW4gJExERkxBR1Mgb3IgdGhlIGFscmVhZHkKKyAgICAgICAgICAgICAgICAgICAgZG5sICAgICAgY29uc3RydWN0ZWQgJExJQk5BTUUsCisgICAgICAgICAgICAgICAgICAgIGRubCAgIDQuIGlmIGl0IGRvZXNuJ3QgZXhpc3QgYXMgYSBkaXJlY3RvcnkuCisgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIlgkYWRkaXRpb25hbF9saWJkaXIiICE9ICJYL3Vzci9saWIiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PQorICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIlgkYWRkaXRpb25hbF9saWJkaXIiID0gIlgvdXNyL2xvY2FsL2xpYiI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRHQ0MiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW51eCopIGhhdmVpdD15ZXM7OworICAgICAgICAgICAgICAgICAgICAgICAgICBlc2FjCisgICAgICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICAgIGhhdmVpdD0KKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciB4IGluICRMREZMQUdTICRMSUJbXU5BTUU7IGRvCisgICAgICAgICAgICAgICAgICAgICAgICAgIEFDX0xJQl9XSVRIX0ZJTkFMX1BSRUZJWChbZXZhbCB4PVwiJHhcIl0pCisgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QgIlgkeCIgPSAiWC1MJGFkZGl0aW9uYWxfbGliZGlyIjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhdmVpdD15ZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgICAgICAgZG9uZQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAtZCAiJGFkZGl0aW9uYWxfbGliZGlyIjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRubCBSZWFsbHkgYWRkICRhZGRpdGlvbmFsX2xpYmRpciB0byAkTElCTkFNRS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJbXU5BTUU9IiR7TElCW11OQU1FfSR7TElCW11OQU1FOisgfS1MJGFkZGl0aW9uYWxfbGliZGlyIgorICAgICAgICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhdmVpdD0KKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciB4IGluICRMREZMQUdTICRMVExJQltdTkFNRTsgZG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgQUNfTElCX1dJVEhfRklOQUxfUFJFRklYKFtldmFsIHg9XCIkeFwiXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiWCR4IiA9ICJYLUwkYWRkaXRpb25hbF9saWJkaXIiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PXllcworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgICAgICBkb25lCisgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0IC1kICIkYWRkaXRpb25hbF9saWJkaXIiOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG5sIFJlYWxseSBhZGQgJGFkZGl0aW9uYWxfbGliZGlyIHRvICRMVExJQk5BTUUuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTFRMSUJbXU5BTUU9IiR7TFRMSUJbXU5BTUV9JHtMVExJQltdTkFNRTorIH0tTCRhZGRpdGlvbmFsX2xpYmRpciIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAgICAgICAgIC1SKikKKyAgICAgICAgICAgICAgICAgICAgZGlyPWBlY2hvICJYJGRlcCIgfCBzZWQgLWUgJ3MvXlgtUi8vJ2AKKyAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiJGVuYWJsZV9ycGF0aCIgIT0gbm87IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICBkbmwgUG90ZW50aWFsbHkgYWRkIERJUiB0byBycGF0aGRpcnMuCisgICAgICAgICAgICAgICAgICAgICAgZG5sIFRoZSBycGF0aGRpcnMgd2lsbCBiZSBhcHBlbmRlZCB0byAkTElCTkFNRSBhdCB0aGUgZW5kLgorICAgICAgICAgICAgICAgICAgICAgIGhhdmVpdD0KKyAgICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiAkcnBhdGhkaXJzOyBkbworICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiWCR4IiA9ICJYJGRpciI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PXllcworICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgICAgICBkb25lCisgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICAgIHJwYXRoZGlycz0iJHJwYXRoZGlycyAkZGlyIgorICAgICAgICAgICAgICAgICAgICAgIGZpCisgICAgICAgICAgICAgICAgICAgICAgZG5sIFBvdGVudGlhbGx5IGFkZCBESVIgdG8gbHRycGF0aGRpcnMuCisgICAgICAgICAgICAgICAgICAgICAgZG5sIFRoZSBsdHJwYXRoZGlycyB3aWxsIGJlIGFwcGVuZGVkIHRvICRMVExJQk5BTUUgYXQgdGhlIGVuZC4KKyAgICAgICAgICAgICAgICAgICAgICBoYXZlaXQ9CisgICAgICAgICAgICAgICAgICAgICAgZm9yIHggaW4gJGx0cnBhdGhkaXJzOyBkbworICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAiWCR4IiA9ICJYJGRpciI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZWl0PXllcworICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgICAgICAgICBkb25lCisgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICAgIGx0cnBhdGhkaXJzPSIkbHRycGF0aGRpcnMgJGRpciIKKyAgICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgICAgICAgICA7OworICAgICAgICAgICAgICAgICAgLWwqKQorICAgICAgICAgICAgICAgICAgICBkbmwgSGFuZGxlIHRoaXMgaW4gdGhlIG5leHQgcm91bmQuCisgICAgICAgICAgICAgICAgICAgIG5hbWVzX25leHRfcm91bmQ9IiRuYW1lc19uZXh0X3JvdW5kICJgZWNobyAiWCRkZXAiIHwgc2VkIC1lICdzL15YLWwvLydgCisgICAgICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAgICAgICAqLmxhKQorICAgICAgICAgICAgICAgICAgICBkbmwgSGFuZGxlIHRoaXMgaW4gdGhlIG5leHQgcm91bmQuIFRocm93IGF3YXkgdGhlIC5sYSdzCisgICAgICAgICAgICAgICAgICAgIGRubCBkaXJlY3Rvcnk7IGl0IGlzIGFscmVhZHkgY29udGFpbmVkIGluIGEgcHJlY2VkaW5nIC1MCisgICAgICAgICAgICAgICAgICAgIGRubCBvcHRpb24uCisgICAgICAgICAgICAgICAgICAgIG5hbWVzX25leHRfcm91bmQ9IiRuYW1lc19uZXh0X3JvdW5kICJgZWNobyAiWCRkZXAiIHwgc2VkIC1lICdzLF5YLiovLCwnIC1lICdzLF5saWIsLCcgLWUgJ3MsXC5sYSQsLCdgCisgICAgICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAgICAgICAqKQorICAgICAgICAgICAgICAgICAgICBkbmwgTW9zdCBsaWtlbHkgYW4gaW1tZWRpYXRlIGxpYnJhcnkgbmFtZS4KKyAgICAgICAgICAgICAgICAgICAgTElCW11OQU1FPSIke0xJQltdTkFNRX0ke0xJQltdTkFNRTorIH0kZGVwIgorICAgICAgICAgICAgICAgICAgICBMVExJQltdTkFNRT0iJHtMVExJQltdTkFNRX0ke0xUTElCW11OQU1FOisgfSRkZXAiCisgICAgICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAgICAgZXNhYworICAgICAgICAgICAgICBkb25lCisgICAgICAgICAgICBmaQorICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRubCBEaWRuJ3QgZmluZCB0aGUgbGlicmFyeTsgYXNzdW1lIGl0IGlzIGluIHRoZSBzeXN0ZW0gZGlyZWN0b3JpZXMKKyAgICAgICAgICAgIGRubCBrbm93biB0byB0aGUgbGlua2VyIGFuZCBydW50aW1lIGxvYWRlci4gKEFsbCB0aGUgc3lzdGVtCisgICAgICAgICAgICBkbmwgZGlyZWN0b3JpZXMga25vd24gdG8gdGhlIGxpbmtlciBzaG91bGQgYWxzbyBiZSBrbm93biB0byB0aGUKKyAgICAgICAgICAgIGRubCBydW50aW1lIGxvYWRlciwgb3RoZXJ3aXNlIHRoZSBzeXN0ZW0gaXMgc2V2ZXJlbHkgbWlzY29uZmlndXJlZC4pCisgICAgICAgICAgICBMSUJbXU5BTUU9IiR7TElCW11OQU1FfSR7TElCW11OQU1FOisgfS1sJG5hbWUiCisgICAgICAgICAgICBMVExJQltdTkFNRT0iJHtMVExJQltdTkFNRX0ke0xUTElCW11OQU1FOisgfS1sJG5hbWUiCisgICAgICAgICAgZmkKKyAgICAgICAgZmkKKyAgICAgIGZpCisgICAgZG9uZQorICBkb25lCisgIGlmIHRlc3QgIlgkcnBhdGhkaXJzIiAhPSAiWCI7IHRoZW4KKyAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciI7IHRoZW4KKyAgICAgIGRubCBXZWlyZCBwbGF0Zm9ybTogb25seSB0aGUgbGFzdCAtcnBhdGggb3B0aW9uIGNvdW50cywgdGhlIHVzZXIgbXVzdAorICAgICAgZG5sIHBhc3MgYWxsIHBhdGggZWxlbWVudHMgaW4gb25lIG9wdGlvbi4gV2UgY2FuIGFycmFuZ2UgdGhhdCBmb3IgYQorICAgICAgZG5sIHNpbmdsZSBsaWJyYXJ5LCBidXQgbm90IHdoZW4gbW9yZSB0aGFuIG9uZSAkTElCTkFNRXMgYXJlIHVzZWQuCisgICAgICBhbGxkaXJzPQorICAgICAgZm9yIGZvdW5kX2RpciBpbiAkcnBhdGhkaXJzOyBkbworICAgICAgICBhbGxkaXJzPSIke2FsbGRpcnN9JHthbGxkaXJzOiskaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcn0kZm91bmRfZGlyIgorICAgICAgZG9uZQorICAgICAgZG5sIE5vdGU6IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMgdXNlcyAkbGliZGlyIGFuZCAkd2wuCisgICAgICBhY2xfc2F2ZV9saWJkaXI9IiRsaWJkaXIiCisgICAgICBsaWJkaXI9IiRhbGxkaXJzIgorICAgICAgZXZhbCBmbGFnPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgorICAgICAgbGliZGlyPSIkYWNsX3NhdmVfbGliZGlyIgorICAgICAgTElCW11OQU1FPSIke0xJQltdTkFNRX0ke0xJQltdTkFNRTorIH0kZmxhZyIKKyAgICBlbHNlCisgICAgICBkbmwgVGhlIC1ycGF0aCBvcHRpb25zIGFyZSBjdW11bGF0aXZlLgorICAgICAgZm9yIGZvdW5kX2RpciBpbiAkcnBhdGhkaXJzOyBkbworICAgICAgICBhY2xfc2F2ZV9saWJkaXI9IiRsaWJkaXIiCisgICAgICAgIGxpYmRpcj0iJGZvdW5kX2RpciIKKyAgICAgICAgZXZhbCBmbGFnPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgorICAgICAgICBsaWJkaXI9IiRhY2xfc2F2ZV9saWJkaXIiCisgICAgICAgIExJQltdTkFNRT0iJHtMSUJbXU5BTUV9JHtMSUJbXU5BTUU6KyB9JGZsYWciCisgICAgICBkb25lCisgICAgZmkKKyAgZmkKKyAgaWYgdGVzdCAiWCRsdHJwYXRoZGlycyIgIT0gIlgiOyB0aGVuCisgICAgZG5sIFdoZW4gdXNpbmcgbGlidG9vbCwgdGhlIG9wdGlvbiB0aGF0IHdvcmtzIGZvciBib3RoIGxpYnJhcmllcyBhbmQKKyAgICBkbmwgZXhlY3V0YWJsZXMgaXMgLVIuIFRoZSAtUiBvcHRpb25zIGFyZSBjdW11bGF0aXZlLgorICAgIGZvciBmb3VuZF9kaXIgaW4gJGx0cnBhdGhkaXJzOyBkbworICAgICAgTFRMSUJbXU5BTUU9IiR7TFRMSUJbXU5BTUV9JHtMVExJQltdTkFNRTorIH0tUiRmb3VuZF9kaXIiCisgICAgZG9uZQorICBmaQorXSkKKworZG5sIEFDX0xJQl9BUFBFTkRUT1ZBUihWQVIsIENPTlRFTlRTKSBhcHBlbmRzIHRoZSBlbGVtZW50cyBvZiBDT05URU5UUyB0byBWQVIsCitkbmwgdW5sZXNzIGFscmVhZHkgcHJlc2VudCBpbiBWQVIuCitkbmwgV29ya3Mgb25seSBmb3IgQ1BQRkxBR1MsIG5vdCBmb3IgTElCKiB2YXJpYWJsZXMgYmVjYXVzZSB0aGF0IHNvbWV0aW1lcworZG5sIGNvbnRhaW5zIHR3byBvciB0aHJlZSBjb25zZWN1dGl2ZSBlbGVtZW50cyB0aGF0IGJlbG9uZyB0b2dldGhlci4KK0FDX0RFRlVOKFtBQ19MSUJfQVBQRU5EVE9WQVJdLAorWworICBmb3IgZWxlbWVudCBpbiBbJDJdOyBkbworICAgIGhhdmVpdD0KKyAgICBmb3IgeCBpbiAkWyQxXTsgZG8KKyAgICAgIEFDX0xJQl9XSVRIX0ZJTkFMX1BSRUZJWChbZXZhbCB4PVwiJHhcIl0pCisgICAgICBpZiB0ZXN0ICJYJHgiID0gIlgkZWxlbWVudCI7IHRoZW4KKyAgICAgICAgaGF2ZWl0PXllcworICAgICAgICBicmVhaworICAgICAgZmkKKyAgICBkb25lCisgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4KKyAgICAgIFskMV09IiR7WyQxXX0ke1skMV06KyB9JGVsZW1lbnQiCisgICAgZmkKKyAgZG9uZQorXSkKKyMgbGliLXByZWZpeC5tNCBzZXJpYWwgMiAoZ2V0dGV4dC0wLjEyKQorZG5sIENvcHlyaWdodCAoQykgMjAwMS0yMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorZG5sIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlLCBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVQorZG5sIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbAorZG5sIFB1YmxpYyBMaWNlbnNlLCB0aGlzIGZpbGUgbWF5IGJlIGRpc3RyaWJ1dGVkIGFzIHBhcnQgb2YgYSBwcm9ncmFtCitkbmwgdGhhdCBjb250YWlucyBhIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgdW5kZXIKK2RubCB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgYXMgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgorCitkbmwgRnJvbSBCcnVubyBIYWlibGUuCisKK2RubCBBQ19MSUJfQVJHX1dJVEggaXMgc3lub255bW91cyB0byBBQ19BUkdfV0lUSCBpbiBhdXRvY29uZi0yLjEzLCBhbmQKK2RubCBzaW1pbGFyIHRvIEFDX0FSR19XSVRIIGluIGF1dG9jb25mIDIuNTIuLi4yLjU3IGV4Y2VwdCB0aGF0IGlzIGRvZXNuJ3QKK2RubCByZXF1aXJlIGV4Y2Vzc2l2ZSBicmFja2V0aW5nLgoraWZkZWYoW0FDX0hFTFBfU1RSSU5HXSwKK1tBQ19ERUZVTihbQUNfTElCX0FSR19XSVRIXSwgW0FDX0FSR19XSVRIKFskMV0sW1skMl1dLFskM10sWyQ0XSldKV0sCitbQUNfREVGVU4oW0FDX0xJQl9BUkdfV0lUSF0sIFtBQ19BUkdfV0lUSChbJDFdLFskMl0sWyQzXSxbJDRdKV0pXSkKKworZG5sIEFDX0xJQl9QUkVGSVggYWRkcyB0byB0aGUgQ1BQRkxBR1MgYW5kIExERkxBR1MgdGhlIGZsYWdzIHRoYXQgYXJlIG5lZWRlZAorZG5sIHRvIGFjY2VzcyBwcmV2aW91c2x5IGluc3RhbGxlZCBsaWJyYXJpZXMuIFRoZSBiYXNpYyBhc3N1bXB0aW9uIGlzIHRoYXQKK2RubCBhIHVzZXIgd2lsbCB3YW50IHBhY2thZ2VzIHRvIHVzZSBvdGhlciBwYWNrYWdlcyBoZSBwcmV2aW91c2x5IGluc3RhbGxlZAorZG5sIHdpdGggdGhlIHNhbWUgLS1wcmVmaXggb3B0aW9uLgorZG5sIFRoaXMgbWFjcm8gaXMgbm90IG5lZWRlZCBpZiBvbmx5IEFDX0xJQl9MSU5LRkxBR1MgaXMgdXNlZCB0byBsb2NhdGUKK2RubCBsaWJyYXJpZXMsIGJ1dCBpcyBvdGhlcndpc2UgdmVyeSBjb252ZW5pZW50LgorQUNfREVGVU4oW0FDX0xJQl9QUkVGSVhdLAorWworICBBQ19CRUZPUkUoWyQwXSwgW0FDX0xJQl9MSU5LRkxBR1NdKQorICBBQ19SRVFVSVJFKFtBQ19QUk9HX0NDXSkKKyAgQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKQorICBBQ19SRVFVSVJFKFtBQ19MSUJfUFJFUEFSRV9QUkVGSVhdKQorICBkbmwgQnkgZGVmYXVsdCwgbG9vayBpbiAkaW5jbHVkZWRpciBhbmQgJGxpYmRpci4KKyAgdXNlX2FkZGl0aW9uYWw9eWVzCisgIEFDX0xJQl9XSVRIX0ZJTkFMX1BSRUZJWChbCisgICAgZXZhbCBhZGRpdGlvbmFsX2luY2x1ZGVkaXI9XCIkaW5jbHVkZWRpclwiCisgICAgZXZhbCBhZGRpdGlvbmFsX2xpYmRpcj1cIiRsaWJkaXJcIgorICBdKQorICBBQ19MSUJfQVJHX1dJVEgoW2xpYi1wcmVmaXhdLAorWyAgLS13aXRoLWxpYi1wcmVmaXhbPURJUl0gc2VhcmNoIGZvciBsaWJyYXJpZXMgaW4gRElSL2luY2x1ZGUgYW5kIERJUi9saWIKKyAgLS13aXRob3V0LWxpYi1wcmVmaXggICAgZG9uJ3Qgc2VhcmNoIGZvciBsaWJyYXJpZXMgaW4gaW5jbHVkZWRpciBhbmQgbGliZGlyXSwKK1sKKyAgICBpZiB0ZXN0ICJYJHdpdGh2YWwiID0gIlhubyI7IHRoZW4KKyAgICAgIHVzZV9hZGRpdGlvbmFsPW5vCisgICAgZWxzZQorICAgICAgaWYgdGVzdCAiWCR3aXRodmFsIiA9ICJYIjsgdGhlbgorICAgICAgICBBQ19MSUJfV0lUSF9GSU5BTF9QUkVGSVgoWworICAgICAgICAgIGV2YWwgYWRkaXRpb25hbF9pbmNsdWRlZGlyPVwiJGluY2x1ZGVkaXJcIgorICAgICAgICAgIGV2YWwgYWRkaXRpb25hbF9saWJkaXI9XCIkbGliZGlyXCIKKyAgICAgICAgXSkKKyAgICAgIGVsc2UKKyAgICAgICAgYWRkaXRpb25hbF9pbmNsdWRlZGlyPSIkd2l0aHZhbC9pbmNsdWRlIgorICAgICAgICBhZGRpdGlvbmFsX2xpYmRpcj0iJHdpdGh2YWwvbGliIgorICAgICAgZmkKKyAgICBmaQorXSkKKyAgaWYgdGVzdCAkdXNlX2FkZGl0aW9uYWwgPSB5ZXM7IHRoZW4KKyAgICBkbmwgUG90ZW50aWFsbHkgYWRkICRhZGRpdGlvbmFsX2luY2x1ZGVkaXIgdG8gJENQUEZMQUdTLgorICAgIGRubCBCdXQgZG9uJ3QgYWRkIGl0CisgICAgZG5sICAgMS4gaWYgaXQncyB0aGUgc3RhbmRhcmQgL3Vzci9pbmNsdWRlLAorICAgIGRubCAgIDIuIGlmIGl0J3MgYWxyZWFkeSBwcmVzZW50IGluICRDUFBGTEFHUywKKyAgICBkbmwgICAzLiBpZiBpdCdzIC91c3IvbG9jYWwvaW5jbHVkZSBhbmQgd2UgYXJlIHVzaW5nIEdDQyBvbiBMaW51eCwKKyAgICBkbmwgICA0LiBpZiBpdCBkb2Vzbid0IGV4aXN0IGFzIGEgZGlyZWN0b3J5LgorICAgIGlmIHRlc3QgIlgkYWRkaXRpb25hbF9pbmNsdWRlZGlyIiAhPSAiWC91c3IvaW5jbHVkZSI7IHRoZW4KKyAgICAgIGhhdmVpdD0KKyAgICAgIGZvciB4IGluICRDUFBGTEFHUzsgZG8KKyAgICAgICAgQUNfTElCX1dJVEhfRklOQUxfUFJFRklYKFtldmFsIHg9XCIkeFwiXSkKKyAgICAgICAgaWYgdGVzdCAiWCR4IiA9ICJYLUkkYWRkaXRpb25hbF9pbmNsdWRlZGlyIjsgdGhlbgorICAgICAgICAgIGhhdmVpdD15ZXMKKyAgICAgICAgICBicmVhaworICAgICAgICBmaQorICAgICAgZG9uZQorICAgICAgaWYgdGVzdCAteiAiJGhhdmVpdCI7IHRoZW4KKyAgICAgICAgaWYgdGVzdCAiWCRhZGRpdGlvbmFsX2luY2x1ZGVkaXIiID0gIlgvdXNyL2xvY2FsL2luY2x1ZGUiOyB0aGVuCisgICAgICAgICAgaWYgdGVzdCAtbiAiJEdDQyI7IHRoZW4KKyAgICAgICAgICAgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICAgICAgICAgICAgbGludXgqKSBoYXZlaXQ9eWVzOzsKKyAgICAgICAgICAgIGVzYWMKKyAgICAgICAgICBmaQorICAgICAgICBmaQorICAgICAgICBpZiB0ZXN0IC16ICIkaGF2ZWl0IjsgdGhlbgorICAgICAgICAgIGlmIHRlc3QgLWQgIiRhZGRpdGlvbmFsX2luY2x1ZGVkaXIiOyB0aGVuCisgICAgICAgICAgICBkbmwgUmVhbGx5IGFkZCAkYWRkaXRpb25hbF9pbmNsdWRlZGlyIHRvICRDUFBGTEFHUy4KKyAgICAgICAgICAgIENQUEZMQUdTPSIke0NQUEZMQUdTfSR7Q1BQRkxBR1M6KyB9LUkkYWRkaXRpb25hbF9pbmNsdWRlZGlyIgorICAgICAgICAgIGZpCisgICAgICAgIGZpCisgICAgICBmaQorICAgIGZpCisgICAgZG5sIFBvdGVudGlhbGx5IGFkZCAkYWRkaXRpb25hbF9saWJkaXIgdG8gJExERkxBR1MuCisgICAgZG5sIEJ1dCBkb24ndCBhZGQgaXQKKyAgICBkbmwgICAxLiBpZiBpdCdzIHRoZSBzdGFuZGFyZCAvdXNyL2xpYiwKKyAgICBkbmwgICAyLiBpZiBpdCdzIGFscmVhZHkgcHJlc2VudCBpbiAkTERGTEFHUywKKyAgICBkbmwgICAzLiBpZiBpdCdzIC91c3IvbG9jYWwvbGliIGFuZCB3ZSBhcmUgdXNpbmcgR0NDIG9uIExpbnV4LAorICAgIGRubCAgIDQuIGlmIGl0IGRvZXNuJ3QgZXhpc3QgYXMgYSBkaXJlY3RvcnkuCisgICAgaWYgdGVzdCAiWCRhZGRpdGlvbmFsX2xpYmRpciIgIT0gIlgvdXNyL2xpYiI7IHRoZW4KKyAgICAgIGhhdmVpdD0KKyAgICAgIGZvciB4IGluICRMREZMQUdTOyBkbworICAgICAgICBBQ19MSUJfV0lUSF9GSU5BTF9QUkVGSVgoW2V2YWwgeD1cIiR4XCJdKQorICAgICAgICBpZiB0ZXN0ICJYJHgiID0gIlgtTCRhZGRpdGlvbmFsX2xpYmRpciI7IHRoZW4KKyAgICAgICAgICBoYXZlaXQ9eWVzCisgICAgICAgICAgYnJlYWsKKyAgICAgICAgZmkKKyAgICAgIGRvbmUKKyAgICAgIGlmIHRlc3QgLXogIiRoYXZlaXQiOyB0aGVuCisgICAgICAgIGlmIHRlc3QgIlgkYWRkaXRpb25hbF9saWJkaXIiID0gIlgvdXNyL2xvY2FsL2xpYiI7IHRoZW4KKyAgICAgICAgICBpZiB0ZXN0IC1uICIkR0NDIjsgdGhlbgorICAgICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbgorICAgICAgICAgICAgICBsaW51eCopIGhhdmVpdD15ZXM7OworICAgICAgICAgICAgZXNhYworICAgICAgICAgIGZpCisgICAgICAgIGZpCisgICAgICAgIGlmIHRlc3QgLXogIiRoYXZlaXQiOyB0aGVuCisgICAgICAgICAgaWYgdGVzdCAtZCAiJGFkZGl0aW9uYWxfbGliZGlyIjsgdGhlbgorICAgICAgICAgICAgZG5sIFJlYWxseSBhZGQgJGFkZGl0aW9uYWxfbGliZGlyIHRvICRMREZMQUdTLgorICAgICAgICAgICAgTERGTEFHUz0iJHtMREZMQUdTfSR7TERGTEFHUzorIH0tTCRhZGRpdGlvbmFsX2xpYmRpciIKKyAgICAgICAgICBmaQorICAgICAgICBmaQorICAgICAgZmkKKyAgICBmaQorICBmaQorXSkKKworZG5sIEFDX0xJQl9QUkVQQVJFX1BSRUZJWCBjcmVhdGVzIHZhcmlhYmxlcyBhY2xfZmluYWxfcHJlZml4LAorZG5sIGFjbF9maW5hbF9leGVjX3ByZWZpeCwgY29udGFpbmluZyB0aGUgdmFsdWVzIHRvIHdoaWNoICRwcmVmaXggYW5kCitkbmwgJGV4ZWNfcHJlZml4IHdpbGwgZXhwYW5kIGF0IHRoZSBlbmQgb2YgdGhlIGNvbmZpZ3VyZSBzY3JpcHQuCitBQ19ERUZVTihbQUNfTElCX1BSRVBBUkVfUFJFRklYXSwKK1sKKyAgZG5sIFVuZm9ydHVuYXRlbHksIHByZWZpeCBhbmQgZXhlY19wcmVmaXggZ2V0IG9ubHkgZmluYWxseSBkZXRlcm1pbmVkCisgIGRubCBhdCB0aGUgZW5kIG9mIGNvbmZpZ3VyZS4KKyAgaWYgdGVzdCAiWCRwcmVmaXgiID0gIlhOT05FIjsgdGhlbgorICAgIGFjbF9maW5hbF9wcmVmaXg9IiRhY19kZWZhdWx0X3ByZWZpeCIKKyAgZWxzZQorICAgIGFjbF9maW5hbF9wcmVmaXg9IiRwcmVmaXgiCisgIGZpCisgIGlmIHRlc3QgIlgkZXhlY19wcmVmaXgiID0gIlhOT05FIjsgdGhlbgorICAgIGFjbF9maW5hbF9leGVjX3ByZWZpeD0nJHtwcmVmaXh9JworICBlbHNlCisgICAgYWNsX2ZpbmFsX2V4ZWNfcHJlZml4PSIkZXhlY19wcmVmaXgiCisgIGZpCisgIGFjbF9zYXZlX3ByZWZpeD0iJHByZWZpeCIKKyAgcHJlZml4PSIkYWNsX2ZpbmFsX3ByZWZpeCIKKyAgZXZhbCBhY2xfZmluYWxfZXhlY19wcmVmaXg9XCIkYWNsX2ZpbmFsX2V4ZWNfcHJlZml4XCIKKyAgcHJlZml4PSIkYWNsX3NhdmVfcHJlZml4IgorXSkKKworZG5sIEFDX0xJQl9XSVRIX0ZJTkFMX1BSRUZJWChbc3RhdGVtZW50XSkgZXZhbHVhdGVzIHN0YXRlbWVudCwgd2l0aCB0aGUKK2RubCB2YXJpYWJsZXMgcHJlZml4IGFuZCBleGVjX3ByZWZpeCBib3VuZCB0byB0aGUgdmFsdWVzIHRoZXkgd2lsbCBoYXZlCitkbmwgYXQgdGhlIGVuZCBvZiB0aGUgY29uZmlndXJlIHNjcmlwdC4KK0FDX0RFRlVOKFtBQ19MSUJfV0lUSF9GSU5BTF9QUkVGSVhdLAorWworICBhY2xfc2F2ZV9wcmVmaXg9IiRwcmVmaXgiCisgIHByZWZpeD0iJGFjbF9maW5hbF9wcmVmaXgiCisgIGFjbF9zYXZlX2V4ZWNfcHJlZml4PSIkZXhlY19wcmVmaXgiCisgIGV4ZWNfcHJlZml4PSIkYWNsX2ZpbmFsX2V4ZWNfcHJlZml4IgorICAkMQorICBleGVjX3ByZWZpeD0iJGFjbF9zYXZlX2V4ZWNfcHJlZml4IgorICBwcmVmaXg9IiRhY2xfc2F2ZV9wcmVmaXgiCitdKQorIyBubHMubTQgc2VyaWFsIDEgKGdldHRleHQtMC4xMikKK2RubCBDb3B5cmlnaHQgKEMpIDE5OTUtMjAwMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KK2RubCBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZSwgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUKK2RubCBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwKK2RubCBQdWJsaWMgTGljZW5zZSwgdGhpcyBmaWxlIG1heSBiZSBkaXN0cmlidXRlZCBhcyBwYXJ0IG9mIGEgcHJvZ3JhbQorZG5sIHRoYXQgY29udGFpbnMgYSBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHVuZGVyCitkbmwgdGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIGFzIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KK2RubAorZG5sIFRoaXMgZmlsZSBjYW4gY2FuIGJlIHVzZWQgaW4gcHJvamVjdHMgd2hpY2ggYXJlIG5vdCBhdmFpbGFibGUgdW5kZXIKK2RubCB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ugb3IgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCitkbmwgTGljZW5zZSBidXQgd2hpY2ggc3RpbGwgd2FudCB0byBwcm92aWRlIHN1cHBvcnQgZm9yIHRoZSBHTlUgZ2V0dGV4dAorZG5sIGZ1bmN0aW9uYWxpdHkuCitkbmwgUGxlYXNlIG5vdGUgdGhhdCB0aGUgYWN0dWFsIGNvZGUgb2YgdGhlIEdOVSBnZXR0ZXh0IGxpYnJhcnkgaXMgY292ZXJlZAorZG5sIGJ5IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBhbmQgdGhlIHJlc3Qgb2YgdGhlIEdOVQorZG5sIGdldHRleHQgcGFja2FnZSBwYWNrYWdlIGlzIGNvdmVyZWQgYnkgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorZG5sIFRoZXkgYXJlICpub3QqIGluIHRoZSBwdWJsaWMgZG9tYWluLgorCitkbmwgQXV0aG9yczoKK2RubCAgIFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQGN5Z251cy5jb20+LCAxOTk1LTIwMDAuCitkbmwgICBCcnVubyBIYWlibGUgPGhhaWJsZUBjbGlzcC5jb25zLm9yZz4sIDIwMDAtMjAwMy4KKworQUNfREVGVU4oW0FNX05MU10sCitbCisgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciBOTFMgaXMgcmVxdWVzdGVkXSkKKyAgZG5sIERlZmF1bHQgaXMgZW5hYmxlZCBOTFMKKyAgQUNfQVJHX0VOQUJMRShubHMsCisgICAgWyAgLS1kaXNhYmxlLW5scyAgICAgICAgICAgZG8gbm90IHVzZSBOYXRpdmUgTGFuZ3VhZ2UgU3VwcG9ydF0sCisgICAgVVNFX05MUz0kZW5hYmxldmFsLCBVU0VfTkxTPXllcykKKyAgQUNfTVNHX1JFU1VMVCgkVVNFX05MUykKKyAgQUNfU1VCU1QoVVNFX05MUykKK10pCisKK0FDX0RFRlVOKFtBTV9NS0lOU1RBTExESVJTXSwKK1sKKyAgZG5sIElmIHRoZSBBQ19DT05GSUdfQVVYX0RJUiBtYWNybyBmb3IgYXV0b2NvbmYgaXMgdXNlZCB3ZSBwb3NzaWJseQorICBkbmwgZmluZCB0aGUgbWtpbnN0YWxsZGlycyBzY3JpcHQgaW4gYW5vdGhlciBzdWJkaXIgYnV0ICQodG9wX3NyY2RpcikuCisgIGRubCBUcnkgdG8gbG9jYXRlIGl0LgorICBNS0lOU1RBTExESVJTPQorICBpZiB0ZXN0IC1uICIkYWNfYXV4X2RpciI7IHRoZW4KKyAgICBjYXNlICIkYWNfYXV4X2RpciIgaW4KKyAgICAgIC8qKSBNS0lOU1RBTExESVJTPSIkYWNfYXV4X2Rpci9ta2luc3RhbGxkaXJzIiA7OworICAgICAgKikgTUtJTlNUQUxMRElSUz0iXCQodG9wX2J1aWxkZGlyKS8kYWNfYXV4X2Rpci9ta2luc3RhbGxkaXJzIiA7OworICAgIGVzYWMKKyAgZmkKKyAgaWYgdGVzdCAteiAiJE1LSU5TVEFMTERJUlMiOyB0aGVuCisgICAgTUtJTlNUQUxMRElSUz0iXCQodG9wX3NyY2RpcikvbWtpbnN0YWxsZGlycyIKKyAgZmkKKyAgQUNfU1VCU1QoTUtJTlNUQUxMRElSUykKK10pCisjIHBvLm00IHNlcmlhbCAxIChnZXR0ZXh0LTAuMTIpCitkbmwgQ29weXJpZ2h0IChDKSAxOTk1LTIwMDMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCitkbmwgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmUsIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VCitkbmwgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsCitkbmwgUHVibGljIExpY2Vuc2UsIHRoaXMgZmlsZSBtYXkgYmUgZGlzdHJpYnV0ZWQgYXMgcGFydCBvZiBhIHByb2dyYW0KK2RubCB0aGF0IGNvbnRhaW5zIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB1bmRlcgorZG5sIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyBhcyB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCitkbmwKK2RubCBUaGlzIGZpbGUgY2FuIGNhbiBiZSB1c2VkIGluIHByb2plY3RzIHdoaWNoIGFyZSBub3QgYXZhaWxhYmxlIHVuZGVyCitkbmwgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIG9yIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworZG5sIExpY2Vuc2UgYnV0IHdoaWNoIHN0aWxsIHdhbnQgdG8gcHJvdmlkZSBzdXBwb3J0IGZvciB0aGUgR05VIGdldHRleHQKK2RubCBmdW5jdGlvbmFsaXR5LgorZG5sIFBsZWFzZSBub3RlIHRoYXQgdGhlIGFjdHVhbCBjb2RlIG9mIHRoZSBHTlUgZ2V0dGV4dCBsaWJyYXJ5IGlzIGNvdmVyZWQKK2RubCBieSB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgYW5kIHRoZSByZXN0IG9mIHRoZSBHTlUKK2RubCBnZXR0ZXh0IHBhY2thZ2UgcGFja2FnZSBpcyBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KK2RubCBUaGV5IGFyZSAqbm90KiBpbiB0aGUgcHVibGljIGRvbWFpbi4KKworZG5sIEF1dGhvcnM6CitkbmwgICBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckBjeWdudXMuY29tPiwgMTk5NS0yMDAwLgorZG5sICAgQnJ1bm8gSGFpYmxlIDxoYWlibGVAY2xpc3AuY29ucy5vcmc+LCAyMDAwLTIwMDMuCisKK2RubCBDaGVja3MgZm9yIGFsbCBwcmVyZXF1aXNpdGVzIG9mIHRoZSBwbyBzdWJkaXJlY3RvcnkuCitBQ19ERUZVTihbQU1fUE9fU1VCRElSU10sCitbCisgIEFDX1JFUVVJUkUoW0FDX1BST0dfTUFLRV9TRVRdKWRubAorICBBQ19SRVFVSVJFKFtBQ19QUk9HX0lOU1RBTExdKWRubAorICBBQ19SRVFVSVJFKFtBTV9NS0lOU1RBTExESVJTXSlkbmwKKyAgQUNfUkVRVUlSRShbQU1fTkxTXSlkbmwKKworICBkbmwgUGVyZm9ybSB0aGUgZm9sbG93aW5nIHRlc3RzIGFsc28gaWYgLS1kaXNhYmxlLW5scyBoYXMgYmVlbiBnaXZlbiwKKyAgZG5sIGJlY2F1c2UgdGhleSBhcmUgbmVlZGVkIGZvciAibWFrZSBkaXN0IiB0byB3b3JrLgorCisgIGRubCBTZWFyY2ggZm9yIEdOVSBtc2dmbXQgaW4gdGhlIFBBVEguCisgIGRubCBUaGUgZmlyc3QgdGVzdCBleGNsdWRlcyBTb2xhcmlzIG1zZ2ZtdCBhbmQgZWFybHkgR05VIG1zZ2ZtdCB2ZXJzaW9ucy4KKyAgZG5sIFRoZSBzZWNvbmQgdGVzdCBleGNsdWRlcyBGcmVlQlNEIG1zZ2ZtdC4KKyAgQU1fUEFUSF9QUk9HX1dJVEhfVEVTVChNU0dGTVQsIG1zZ2ZtdCwKKyAgICBbJGFjX2Rpci8kYWNfd29yZCAtLXN0YXRpc3RpY3MgL2Rldi9udWxsID4vZGV2L251bGwgMj4mMSAmJgorICAgICAoaWYgJGFjX2Rpci8kYWNfd29yZCAtLXN0YXRpc3RpY3MgL2Rldi9udWxsIDI+JjEgPi9kZXYvbnVsbCB8IGdyZXAgdXNhZ2UgPi9kZXYvbnVsbDsgdGhlbiBleGl0IDE7IGVsc2UgZXhpdCAwOyBmaSldLAorICAgIDopCisgIEFDX1BBVEhfUFJPRyhHTVNHRk1ULCBnbXNnZm10LCAkTVNHRk1UKQorCisgIGRubCBTZWFyY2ggZm9yIEdOVSB4Z2V0dGV4dCAwLjEyIG9yIG5ld2VyIGluIHRoZSBQQVRILgorICBkbmwgVGhlIGZpcnN0IHRlc3QgZXhjbHVkZXMgU29sYXJpcyB4Z2V0dGV4dCBhbmQgZWFybHkgR05VIHhnZXR0ZXh0IHZlcnNpb25zLgorICBkbmwgVGhlIHNlY29uZCB0ZXN0IGV4Y2x1ZGVzIEZyZWVCU0QgeGdldHRleHQuCisgIEFNX1BBVEhfUFJPR19XSVRIX1RFU1QoWEdFVFRFWFQsIHhnZXR0ZXh0LAorICAgIFskYWNfZGlyLyRhY193b3JkIC0tb21pdC1oZWFkZXIgLS1jb3B5cmlnaHQtaG9sZGVyPSAtLW1zZ2lkLWJ1Z3MtYWRkcmVzcz0gL2Rldi9udWxsID4vZGV2L251bGwgMj4mMSAmJgorICAgICAoaWYgJGFjX2Rpci8kYWNfd29yZCAtLW9taXQtaGVhZGVyIC0tY29weXJpZ2h0LWhvbGRlcj0gLS1tc2dpZC1idWdzLWFkZHJlc3M9IC9kZXYvbnVsbCAyPiYxID4vZGV2L251bGwgfCBncmVwIHVzYWdlID4vZGV2L251bGw7IHRoZW4gZXhpdCAxOyBlbHNlIGV4aXQgMDsgZmkpXSwKKyAgICA6KQorICBkbmwgUmVtb3ZlIGxlZnRvdmVyIGZyb20gRnJlZUJTRCB4Z2V0dGV4dCBjYWxsLgorICBybSAtZiBtZXNzYWdlcy5wbworCisgIGRubCBTZWFyY2ggZm9yIEdOVSBtc2dtZXJnZSAwLjExIG9yIG5ld2VyIGluIHRoZSBQQVRILgorICBBTV9QQVRIX1BST0dfV0lUSF9URVNUKE1TR01FUkdFLCBtc2dtZXJnZSwKKyAgICBbJGFjX2Rpci8kYWNfd29yZCAtLXVwZGF0ZSAtcSAvZGV2L251bGwgL2Rldi9udWxsID4vZGV2L251bGwgMj4mMV0sIDopCisKKyAgZG5sIFRoaXMgY291bGQgZ28gYXdheSBzb21lIGRheTsgdGhlIFBBVEhfUFJPR19XSVRIX1RFU1QgYWxyZWFkeSBkb2VzIGl0LgorICBkbmwgVGVzdCB3aGV0aGVyIHdlIHJlYWxseSBmb3VuZCBHTlUgbXNnZm10LgorICBpZiB0ZXN0ICIkR01TR0ZNVCIgIT0gIjoiOyB0aGVuCisgICAgZG5sIElmIGl0IGlzIG5vIEdOVSBtc2dmbXQgd2UgZGVmaW5lIGl0IGFzIDogc28gdGhhdCB0aGUKKyAgICBkbmwgTWFrZWZpbGVzIHN0aWxsIGNhbiB3b3JrLgorICAgIGlmICRHTVNHRk1UIC0tc3RhdGlzdGljcyAvZGV2L251bGwgPi9kZXYvbnVsbCAyPiYxICYmCisgICAgICAgKGlmICRHTVNHRk1UIC0tc3RhdGlzdGljcyAvZGV2L251bGwgMj4mMSA+L2Rldi9udWxsIHwgZ3JlcCB1c2FnZSA+L2Rldi9udWxsOyB0aGVuIGV4aXQgMTsgZWxzZSBleGl0IDA7IGZpKTsgdGhlbgorICAgICAgOiA7CisgICAgZWxzZQorICAgICAgR01TR0ZNVD1gZWNobyAiJEdNU0dGTVQiIHwgc2VkIC1lICdzLF4uKi8sLCdgCisgICAgICBBQ19NU0dfUkVTVUxUKAorICAgICAgICBbZm91bmQgJEdNU0dGTVQgcHJvZ3JhbSBpcyBub3QgR05VIG1zZ2ZtdDsgaWdub3JlIGl0XSkKKyAgICAgIEdNU0dGTVQ9IjoiCisgICAgZmkKKyAgZmkKKworICBkbmwgVGhpcyBjb3VsZCBnbyBhd2F5IHNvbWUgZGF5OyB0aGUgUEFUSF9QUk9HX1dJVEhfVEVTVCBhbHJlYWR5IGRvZXMgaXQuCisgIGRubCBUZXN0IHdoZXRoZXIgd2UgcmVhbGx5IGZvdW5kIEdOVSB4Z2V0dGV4dC4KKyAgaWYgdGVzdCAiJFhHRVRURVhUIiAhPSAiOiI7IHRoZW4KKyAgICBkbmwgSWYgaXQgaXMgbm8gR05VIHhnZXR0ZXh0IHdlIGRlZmluZSBpdCBhcyA6IHNvIHRoYXQgdGhlCisgICAgZG5sIE1ha2VmaWxlcyBzdGlsbCBjYW4gd29yay4KKyAgICBpZiAkWEdFVFRFWFQgLS1vbWl0LWhlYWRlciAtLWNvcHlyaWdodC1ob2xkZXI9IC0tbXNnaWQtYnVncy1hZGRyZXNzPSAvZGV2L251bGwgPi9kZXYvbnVsbCAyPiYxICYmCisgICAgICAgKGlmICRYR0VUVEVYVCAtLW9taXQtaGVhZGVyIC0tY29weXJpZ2h0LWhvbGRlcj0gLS1tc2dpZC1idWdzLWFkZHJlc3M9IC9kZXYvbnVsbCAyPiYxID4vZGV2L251bGwgfCBncmVwIHVzYWdlID4vZGV2L251bGw7IHRoZW4gZXhpdCAxOyBlbHNlIGV4aXQgMDsgZmkpOyB0aGVuCisgICAgICA6IDsKKyAgICBlbHNlCisgICAgICBBQ19NU0dfUkVTVUxUKAorICAgICAgICBbZm91bmQgeGdldHRleHQgcHJvZ3JhbSBpcyBub3QgR05VIHhnZXR0ZXh0OyBpZ25vcmUgaXRdKQorICAgICAgWEdFVFRFWFQ9IjoiCisgICAgZmkKKyAgICBkbmwgUmVtb3ZlIGxlZnRvdmVyIGZyb20gRnJlZUJTRCB4Z2V0dGV4dCBjYWxsLgorICAgIHJtIC1mIG1lc3NhZ2VzLnBvCisgIGZpCisKKyAgQUNfT1VUUFVUX0NPTU1BTkRTKFsKKyAgICBmb3IgYWNfZmlsZSBpbiAkQ09ORklHX0ZJTEVTOyBkbworICAgICAgIyBTdXBwb3J0ICJvdXRmaWxlWzppbmZpbGVbOmluZmlsZS4uLl1dIgorICAgICAgY2FzZSAiJGFjX2ZpbGUiIGluCisgICAgICAgICo6KikgYWNfZmlsZT1gZWNobyAiJGFjX2ZpbGUifHNlZCAncyU6LiolJSdgIDs7CisgICAgICBlc2FjCisgICAgICAjIFBPIGRpcmVjdG9yaWVzIGhhdmUgYSBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgZnJvbSBNYWtlZmlsZS5pbi5pbi4KKyAgICAgIGNhc2UgIiRhY19maWxlIiBpbiAqL01ha2VmaWxlLmluKQorICAgICAgICAjIEFkanVzdCBhIHJlbGF0aXZlIHNyY2Rpci4KKyAgICAgICAgYWNfZGlyPWBlY2hvICIkYWNfZmlsZSJ8c2VkICdzJS9bXi9dW14vXSokJSUnYAorICAgICAgICBhY19kaXJfc3VmZml4PSIvYGVjaG8gIiRhY19kaXIifHNlZCAncyVeXC4vJSUnYCIKKyAgICAgICAgYWNfZG90cz1gZWNobyAiJGFjX2Rpcl9zdWZmaXgifHNlZCAncyUvW14vXSolLi4vJWcnYAorICAgICAgICAjIEluIGF1dG9jb25mLTIuMTMgaXQgaXMgY2FsbGVkICRhY19naXZlbl9zcmNkaXIuCisgICAgICAgICMgSW4gYXV0b2NvbmYtMi41MCBpdCBpcyBjYWxsZWQgJHNyY2Rpci4KKyAgICAgICAgdGVzdCAtbiAiJGFjX2dpdmVuX3NyY2RpciIgfHwgYWNfZ2l2ZW5fc3JjZGlyPSIkc3JjZGlyIgorICAgICAgICBjYXNlICIkYWNfZ2l2ZW5fc3JjZGlyIiBpbgorICAgICAgICAgIC4pICB0b3Bfc3JjZGlyPWBlY2hvICRhY19kb3RzfHNlZCAncyUvJCUlJ2AgOzsKKyAgICAgICAgICAvKikgdG9wX3NyY2Rpcj0iJGFjX2dpdmVuX3NyY2RpciIgOzsKKyAgICAgICAgICAqKSAgdG9wX3NyY2Rpcj0iJGFjX2RvdHMkYWNfZ2l2ZW5fc3JjZGlyIiA7OworICAgICAgICBlc2FjCisgICAgICAgIGlmIHRlc3QgLWYgIiRhY19naXZlbl9zcmNkaXIvJGFjX2Rpci9QT1RGSUxFUy5pbiI7IHRoZW4KKyAgICAgICAgICBybSAtZiAiJGFjX2Rpci9QT1RGSUxFUyIKKyAgICAgICAgICB0ZXN0IC1uICIkYXNfbWUiICYmIGVjaG8gIiRhc19tZTogY3JlYXRpbmcgJGFjX2Rpci9QT1RGSUxFUyIgfHwgZWNobyAiY3JlYXRpbmcgJGFjX2Rpci9QT1RGSUxFUyIKKyAgICAgICAgICBjYXQgIiRhY19naXZlbl9zcmNkaXIvJGFjX2Rpci9QT1RGSUxFUy5pbiIgfCBzZWQgLWUgIi9eIy9kIiAtZSAiL15bIAldKlwkL2QiIC1lICJzLC4qLCAgICAgJHRvcF9zcmNkaXIvJiBcXFxcLCIgfCBzZWQgLWUgIlwkcy9cKC4qXCkgXFxcXC9cMS8iID4gIiRhY19kaXIvUE9URklMRVMiCisgICAgICAgICAgUE9NQUtFRklMRURFUFM9IlBPVEZJTEVTLmluIgorICAgICAgICAgICMgQUxMX0xJTkdVQVMsIFBPRklMRVMsIEdNT0ZJTEVTLCBVUERBVEVQT0ZJTEVTLCBEVU1NWVBPRklMRVMgZGVwZW5kCisgICAgICAgICAgIyBvbiAkYWNfZGlyIGJ1dCBkb24ndCBkZXBlbmQgb24gdXNlci1zcGVjaWZpZWQgY29uZmlndXJhdGlvbgorICAgICAgICAgICMgcGFyYW1ldGVycy4KKyAgICAgICAgICBpZiB0ZXN0IC1mICIkYWNfZ2l2ZW5fc3JjZGlyLyRhY19kaXIvTElOR1VBUyI7IHRoZW4KKyAgICAgICAgICAgICMgVGhlIExJTkdVQVMgZmlsZSBjb250YWlucyB0aGUgc2V0IG9mIGF2YWlsYWJsZSBsYW5ndWFnZXMuCisgICAgICAgICAgICBpZiB0ZXN0IC1uICIkT0JTT0xFVEVfQUxMX0xJTkdVQVMiOyB0aGVuCisgICAgICAgICAgICAgIHRlc3QgLW4gIiRhc19tZSIgJiYgZWNobyAiJGFzX21lOiBzZXR0aW5nIEFMTF9MSU5HVUFTIGluIGNvbmZpZ3VyZS5pbiBpcyBvYnNvbGV0ZSIgfHwgZWNobyAic2V0dGluZyBBTExfTElOR1VBUyBpbiBjb25maWd1cmUuaW4gaXMgb2Jzb2xldGUiCisgICAgICAgICAgICBmaQorICAgICAgICAgICAgQUxMX0xJTkdVQVNfPWBzZWQgLWUgIi9eIy9kIiAiJGFjX2dpdmVuX3NyY2Rpci8kYWNfZGlyL0xJTkdVQVMiYAorICAgICAgICAgICAgIyBIaWRlIHRoZSBBTExfTElOR1VBUyBhc3NpZ21lbnQgZnJvbSBhdXRvbWFrZS4KKyAgICAgICAgICAgIGV2YWwgJ0FMTF9MSU5HVUFTJyc9JEFMTF9MSU5HVUFTXycKKyAgICAgICAgICAgIFBPTUFLRUZJTEVERVBTPSIkUE9NQUtFRklMRURFUFMgTElOR1VBUyIKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICAjIFRoZSBzZXQgb2YgYXZhaWxhYmxlIGxhbmd1YWdlcyB3YXMgZ2l2ZW4gaW4gY29uZmlndXJlLmluLgorICAgICAgICAgICAgZXZhbCAnQUxMX0xJTkdVQVMnJz0kT0JTT0xFVEVfQUxMX0xJTkdVQVMnCisgICAgICAgICAgZmkKKyAgICAgICAgICBjYXNlICIkYWNfZ2l2ZW5fc3JjZGlyIiBpbgorICAgICAgICAgICAgLikgc3JjZGlycHJlPSA7OworICAgICAgICAgICAgKikgc3JjZGlycHJlPSckKHNyY2RpcikvJyA7OworICAgICAgICAgIGVzYWMKKyAgICAgICAgICBQT0ZJTEVTPQorICAgICAgICAgIEdNT0ZJTEVTPQorICAgICAgICAgIFVQREFURVBPRklMRVM9CisgICAgICAgICAgRFVNTVlQT0ZJTEVTPQorICAgICAgICAgIGZvciBsYW5nIGluICRBTExfTElOR1VBUzsgZG8KKyAgICAgICAgICAgIFBPRklMRVM9IiRQT0ZJTEVTICRzcmNkaXJwcmUkbGFuZy5wbyIKKyAgICAgICAgICAgIEdNT0ZJTEVTPSIkR01PRklMRVMgJHNyY2RpcnByZSRsYW5nLmdtbyIKKyAgICAgICAgICAgIFVQREFURVBPRklMRVM9IiRVUERBVEVQT0ZJTEVTICRsYW5nLnBvLXVwZGF0ZSIKKyAgICAgICAgICAgIERVTU1ZUE9GSUxFUz0iJERVTU1ZUE9GSUxFUyAkbGFuZy5ub3AiCisgICAgICAgICAgZG9uZQorICAgICAgICAgICMgQ0FUQUxPR1MgZGVwZW5kcyBvbiBib3RoICRhY19kaXIgYW5kIHRoZSB1c2VyJ3MgTElOR1VBUworICAgICAgICAgICMgZW52aXJvbm1lbnQgdmFyaWFibGUuCisgICAgICAgICAgSU5TVF9MSU5HVUFTPQorICAgICAgICAgIGlmIHRlc3QgLW4gIiRBTExfTElOR1VBUyI7IHRoZW4KKyAgICAgICAgICAgIGZvciBwcmVzZW50bGFuZyBpbiAkQUxMX0xJTkdVQVM7IGRvCisgICAgICAgICAgICAgIHVzZWl0PW5vCisgICAgICAgICAgICAgIGlmIHRlc3QgIiVVTlNFVCUiICE9ICIkTElOR1VBUyI7IHRoZW4KKyAgICAgICAgICAgICAgICBkZXNpcmVkbGFuZ3VhZ2VzPSIkTElOR1VBUyIKKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGRlc2lyZWRsYW5ndWFnZXM9IiRBTExfTElOR1VBUyIKKyAgICAgICAgICAgICAgZmkKKyAgICAgICAgICAgICAgZm9yIGRlc2lyZWRsYW5nIGluICRkZXNpcmVkbGFuZ3VhZ2VzOyBkbworICAgICAgICAgICAgICAgICMgVXNlIHRoZSBwcmVzZW50bGFuZyBjYXRhbG9nIGlmIGRlc2lyZWRsYW5nIGlzCisgICAgICAgICAgICAgICAgIyAgIGEuIGVxdWFsIHRvIHByZXNlbnRsYW5nLCBvcgorICAgICAgICAgICAgICAgICMgICBiLiBhIHZhcmlhbnQgb2YgcHJlc2VudGxhbmcgKGJlY2F1c2UgaW4gdGhpcyBjYXNlLAorICAgICAgICAgICAgICAgICMgICAgICBwcmVzZW50bGFuZyBjYW4gYmUgdXNlZCBhcyBhIGZhbGxiYWNrIGZvciBtZXNzYWdlcworICAgICAgICAgICAgICAgICMgICAgICB3aGljaCBhcmUgbm90IHRyYW5zbGF0ZWQgaW4gdGhlIGRlc2lyZWRsYW5nIGNhdGFsb2cpLgorICAgICAgICAgICAgICAgIGNhc2UgIiRkZXNpcmVkbGFuZyIgaW4KKyAgICAgICAgICAgICAgICAgICIkcHJlc2VudGxhbmciKikgdXNlaXQ9eWVzOzsKKyAgICAgICAgICAgICAgICBlc2FjCisgICAgICAgICAgICAgIGRvbmUKKyAgICAgICAgICAgICAgaWYgdGVzdCAkdXNlaXQgPSB5ZXM7IHRoZW4KKyAgICAgICAgICAgICAgICBJTlNUX0xJTkdVQVM9IiRJTlNUX0xJTkdVQVMgJHByZXNlbnRsYW5nIgorICAgICAgICAgICAgICBmaQorICAgICAgICAgICAgZG9uZQorICAgICAgICAgIGZpCisgICAgICAgICAgQ0FUQUxPR1M9CisgICAgICAgICAgaWYgdGVzdCAtbiAiJElOU1RfTElOR1VBUyI7IHRoZW4KKyAgICAgICAgICAgIGZvciBsYW5nIGluICRJTlNUX0xJTkdVQVM7IGRvCisgICAgICAgICAgICAgIENBVEFMT0dTPSIkQ0FUQUxPR1MgJGxhbmcuZ21vIgorICAgICAgICAgICAgZG9uZQorICAgICAgICAgIGZpCisgICAgICAgICAgdGVzdCAtbiAiJGFzX21lIiAmJiBlY2hvICIkYXNfbWU6IGNyZWF0aW5nICRhY19kaXIvTWFrZWZpbGUiIHx8IGVjaG8gImNyZWF0aW5nICRhY19kaXIvTWFrZWZpbGUiCisgICAgICAgICAgc2VkIC1lICIvXlBPVEZJTEVTID0vciAkYWNfZGlyL1BPVEZJTEVTIiAtZSAiL14jIE1ha2V2YXJzL3IgJGFjX2dpdmVuX3NyY2Rpci8kYWNfZGlyL01ha2V2YXJzIiAtZSAic3xAUE9GSUxFU0B8JFBPRklMRVN8ZyIgLWUgInN8QEdNT0ZJTEVTQHwkR01PRklMRVN8ZyIgLWUgInN8QFVQREFURVBPRklMRVNAfCRVUERBVEVQT0ZJTEVTfGciIC1lICJzfEBEVU1NWVBPRklMRVNAfCREVU1NWVBPRklMRVN8ZyIgLWUgInN8QENBVEFMT0dTQHwkQ0FUQUxPR1N8ZyIgLWUgInN8QFBPTUFLRUZJTEVERVBTQHwkUE9NQUtFRklMRURFUFN8ZyIgIiRhY19kaXIvTWFrZWZpbGUuaW4iID4gIiRhY19kaXIvTWFrZWZpbGUiCisgICAgICAgICAgZm9yIGYgaW4gIiRhY19naXZlbl9zcmNkaXIvJGFjX2RpciIvUnVsZXMtKjsgZG8KKyAgICAgICAgICAgIGlmIHRlc3QgLWYgIiRmIjsgdGhlbgorICAgICAgICAgICAgICBjYXNlICIkZiIgaW4KKyAgICAgICAgICAgICAgICAqLm9yaWcgfCAqLmJhayB8ICp+KSA7OworICAgICAgICAgICAgICAgICopIGNhdCAiJGYiID4+ICIkYWNfZGlyL01ha2VmaWxlIiA7OworICAgICAgICAgICAgICBlc2FjCisgICAgICAgICAgICBmaQorICAgICAgICAgIGRvbmUKKyAgICAgICAgZmkKKyAgICAgICAgOzsKKyAgICAgIGVzYWMKKyAgICBkb25lXSwKKyAgIFsjIENhcHR1cmUgdGhlIHZhbHVlIG9mIG9ic29sZXRlIEFMTF9MSU5HVUFTIGJlY2F1c2Ugd2UgbmVlZCBpdCB0byBjb21wdXRlCisgICAgIyBQT0ZJTEVTLCBHTU9GSUxFUywgVVBEQVRFUE9GSUxFUywgRFVNTVlQT0ZJTEVTLCBDQVRBTE9HUy4gQnV0IGhpZGUgaXQKKyAgICAjIGZyb20gYXV0b21ha2UuCisgICAgZXZhbCAnT0JTT0xFVEVfQUxMX0xJTkdVQVMnJz0iJEFMTF9MSU5HVUFTIicKKyAgICAjIENhcHR1cmUgdGhlIHZhbHVlIG9mIExJTkdVQVMgYmVjYXVzZSB3ZSBuZWVkIGl0IHRvIGNvbXB1dGUgQ0FUQUxPR1MuCisgICAgTElOR1VBUz0iJHtMSU5HVUFTLSVVTlNFVCV9IgorICAgXSkKK10pCisjIHByb2d0ZXN0Lm00IHNlcmlhbCAzIChnZXR0ZXh0LTAuMTIpCitkbmwgQ29weXJpZ2h0IChDKSAxOTk2LTIwMDMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCitkbmwgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmUsIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VCitkbmwgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsCitkbmwgUHVibGljIExpY2Vuc2UsIHRoaXMgZmlsZSBtYXkgYmUgZGlzdHJpYnV0ZWQgYXMgcGFydCBvZiBhIHByb2dyYW0KK2RubCB0aGF0IGNvbnRhaW5zIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB1bmRlcgorZG5sIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyBhcyB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCitkbmwKK2RubCBUaGlzIGZpbGUgY2FuIGNhbiBiZSB1c2VkIGluIHByb2plY3RzIHdoaWNoIGFyZSBub3QgYXZhaWxhYmxlIHVuZGVyCitkbmwgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIG9yIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworZG5sIExpY2Vuc2UgYnV0IHdoaWNoIHN0aWxsIHdhbnQgdG8gcHJvdmlkZSBzdXBwb3J0IGZvciB0aGUgR05VIGdldHRleHQKK2RubCBmdW5jdGlvbmFsaXR5LgorZG5sIFBsZWFzZSBub3RlIHRoYXQgdGhlIGFjdHVhbCBjb2RlIG9mIHRoZSBHTlUgZ2V0dGV4dCBsaWJyYXJ5IGlzIGNvdmVyZWQKK2RubCBieSB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgYW5kIHRoZSByZXN0IG9mIHRoZSBHTlUKK2RubCBnZXR0ZXh0IHBhY2thZ2UgcGFja2FnZSBpcyBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KK2RubCBUaGV5IGFyZSAqbm90KiBpbiB0aGUgcHVibGljIGRvbWFpbi4KKworZG5sIEF1dGhvcnM6CitkbmwgICBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckBjeWdudXMuY29tPiwgMTk5Ni4KKworIyBTZWFyY2ggcGF0aCBmb3IgYSBwcm9ncmFtIHdoaWNoIHBhc3NlcyB0aGUgZ2l2ZW4gdGVzdC4KKworZG5sIEFNX1BBVEhfUFJPR19XSVRIX1RFU1QoVkFSSUFCTEUsIFBST0ctVE8tQ0hFQ0stRk9SLAorZG5sICAgVEVTVC1QRVJGT1JNRUQtT04tRk9VTkRfUFJPR1JBTSBbLCBWQUxVRS1JRi1OT1QtRk9VTkQgWywgUEFUSF1dKQorQUNfREVGVU4oW0FNX1BBVEhfUFJPR19XSVRIX1RFU1RdLAorWworIyBQcmVwYXJlIFBBVEhfU0VQQVJBVE9SLgorIyBUaGUgdXNlciBpcyBhbHdheXMgcmlnaHQuCitpZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9SK3NldH0iICE9IHNldDsgdGhlbgorICBlY2hvICIjISAvYmluL3NoIiA+Y29uZiQkLnNoCisgIGVjaG8gICJleGl0IDAiICAgPj5jb25mJCQuc2gKKyAgY2htb2QgK3ggY29uZiQkLnNoCisgIGlmIChQQVRIPSIvbm9uZXhpc3RlbnQ7LiI7IGNvbmYkJC5zaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICAgUEFUSF9TRVBBUkFUT1I9JzsnCisgIGVsc2UKKyAgICBQQVRIX1NFUEFSQVRPUj06CisgIGZpCisgIHJtIC1mIGNvbmYkJC5zaAorZmkKKworIyBGaW5kIG91dCBob3cgdG8gdGVzdCBmb3IgZXhlY3V0YWJsZSBmaWxlcy4gRG9uJ3QgdXNlIGEgemVyby1ieXRlIGZpbGUsCisjIGFzIHN5c3RlbXMgbWF5IHVzZSBtZXRob2RzIG90aGVyIHRoYW4gbW9kZSBiaXRzIHRvIGRldGVybWluZSBleGVjdXRhYmlsaXR5LgorY2F0ID5jb25mJCQuZmlsZSA8PF9BU0VPRgorIyEgL2Jpbi9zaAorZXhpdCAwCitfQVNFT0YKK2NobW9kICt4IGNvbmYkJC5maWxlCitpZiB0ZXN0IC14IGNvbmYkJC5maWxlID4vZGV2L251bGwgMj4mMTsgdGhlbgorICBhY19leGVjdXRhYmxlX3A9InRlc3QgLXgiCitlbHNlCisgIGFjX2V4ZWN1dGFibGVfcD0idGVzdCAtZiIKK2ZpCitybSAtZiBjb25mJCQuZmlsZQorCisjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiQyIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KK3NldCBkdW1teSAkMjsgYWNfd29yZD1bJF0yCitBQ19NU0dfQ0hFQ0tJTkcoW2ZvciAkYWNfd29yZF0pCitBQ19DQUNIRV9WQUwoYWNfY3ZfcGF0aF8kMSwKK1tjYXNlICJbJF0kMSIgaW4KKyAgW1tcXC9dXSogfCA/OltbXFwvXV0qKQorICAgIGFjX2N2X3BhdGhfJDE9IlskXSQxIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KKyAgICA7OworICAqKQorICAgIGFjX3NhdmVfSUZTPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgorICAgIGZvciBhY19kaXIgaW4gaWZlbHNlKFskNV0sICwgJFBBVEgsIFskNV0pOyBkbworICAgICAgSUZTPSIkYWNfc2F2ZV9JRlMiCisgICAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgorICAgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisgICAgICAgIGlmICRhY19leGVjdXRhYmxlX3AgIiRhY19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB0aGVuCisgICAgICAgICAgaWYgWyQzXTsgdGhlbgorICAgICAgICAgICAgYWNfY3ZfcGF0aF8kMT0iJGFjX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIKKyAgICAgICAgICAgIGJyZWFrIDIKKyAgICAgICAgICBmaQorICAgICAgICBmaQorICAgICAgZG9uZQorICAgIGRvbmUKKyAgICBJRlM9IiRhY19zYXZlX0lGUyIKK2RubCBJZiBubyA0dGggYXJnIGlzIGdpdmVuLCBsZWF2ZSB0aGUgY2FjaGUgdmFyaWFibGUgdW5zZXQsCitkbmwgc28gQUNfUEFUSF9QUk9HUyB3aWxsIGtlZXAgbG9va2luZy4KK2lmZWxzZShbJDRdLCAsICwgWyAgdGVzdCAteiAiWyRdYWNfY3ZfcGF0aF8kMSIgJiYgYWNfY3ZfcGF0aF8kMT0iJDQiCitdKWRubAorICAgIDs7Citlc2FjXSlkbmwKKyQxPSIkYWNfY3ZfcGF0aF8kMSIKK2lmIHRlc3QgaWZlbHNlKFskNF0sICwgWy1uICJbJF0kMSJdLCBbIlskXSQxIiAhPSAiJDQiXSk7IHRoZW4KKyAgQUNfTVNHX1JFU1VMVChbJF0kMSkKK2Vsc2UKKyAgQUNfTVNHX1JFU1VMVChubykKK2ZpCitBQ19TVUJTVCgkMSlkbmwKK10pCisjIHN0ZGludF9oLm00IHNlcmlhbCAzIChnZXR0ZXh0LTAuMTIpCitkbmwgQ29weXJpZ2h0IChDKSAxOTk3LTIwMDMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCitkbmwgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmUsIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VCitkbmwgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsCitkbmwgUHVibGljIExpY2Vuc2UsIHRoaXMgZmlsZSBtYXkgYmUgZGlzdHJpYnV0ZWQgYXMgcGFydCBvZiBhIHByb2dyYW0KK2RubCB0aGF0IGNvbnRhaW5zIGEgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB1bmRlcgorZG5sIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyBhcyB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCisKK2RubCBGcm9tIFBhdWwgRWdnZXJ0LgorCisjIERlZmluZSBIQVZFX1NURElOVF9IX1dJVEhfVUlOVE1BWCBpZiA8c3RkaW50Lmg+IGV4aXN0cywKKyMgZG9lc24ndCBjbGFzaCB3aXRoIDxzeXMvdHlwZXMuaD4sIGFuZCBkZWNsYXJlcyB1aW50bWF4X3QuCisKK0FDX0RFRlVOKFtqbV9BQ19IRUFERVJfU1RESU5UX0hdLAorWworICBBQ19DQUNIRV9DSEVDSyhbZm9yIHN0ZGludC5oXSwgam1fYWNfY3ZfaGVhZGVyX3N0ZGludF9oLAorICBbQUNfVFJZX0NPTVBJTEUoCisgICAgWyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD5dLAorICAgIFt1aW50bWF4X3QgaSA9ICh1aW50bWF4X3QpIC0xO10sCisgICAgam1fYWNfY3ZfaGVhZGVyX3N0ZGludF9oPXllcywKKyAgICBqbV9hY19jdl9oZWFkZXJfc3RkaW50X2g9bm8pXSkKKyAgaWYgdGVzdCAkam1fYWNfY3ZfaGVhZGVyX3N0ZGludF9oID0geWVzOyB0aGVuCisgICAgQUNfREVGSU5FX1VOUVVPVEVEKEhBVkVfU1RESU5UX0hfV0lUSF9VSU5UTUFYLCAxLAorICAgICAgW0RlZmluZSBpZiA8c3RkaW50Lmg+IGV4aXN0cywgZG9lc24ndCBjbGFzaCB3aXRoIDxzeXMvdHlwZXMuaD4sCisgICAgICAgYW5kIGRlY2xhcmVzIHVpbnRtYXhfdC4gXSkKKyAgZmkKK10pCisjIHVpbnRtYXhfdC5tNCBzZXJpYWwgNyAoZ2V0dGV4dC0wLjEyKQorZG5sIENvcHlyaWdodCAoQykgMTk5Ny0yMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorZG5sIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlLCBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVQorZG5sIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbAorZG5sIFB1YmxpYyBMaWNlbnNlLCB0aGlzIGZpbGUgbWF5IGJlIGRpc3RyaWJ1dGVkIGFzIHBhcnQgb2YgYSBwcm9ncmFtCitkbmwgdGhhdCBjb250YWlucyBhIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgdW5kZXIKK2RubCB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgYXMgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgorCitkbmwgRnJvbSBQYXVsIEVnZ2VydC4KKworQUNfUFJFUkVRKDIuMTMpCisKKyMgRGVmaW5lIHVpbnRtYXhfdCB0byAndW5zaWduZWQgbG9uZycgb3IgJ3Vuc2lnbmVkIGxvbmcgbG9uZycKKyMgaWYgaXQgaXMgbm90IGFscmVhZHkgZGVmaW5lZCBpbiA8c3RkaW50Lmg+IG9yIDxpbnR0eXBlcy5oPi4KKworQUNfREVGVU4oW2ptX0FDX1RZUEVfVUlOVE1BWF9UXSwKK1sKKyAgQUNfUkVRVUlSRShbam1fQUNfSEVBREVSX0lOVFRZUEVTX0hdKQorICBBQ19SRVFVSVJFKFtqbV9BQ19IRUFERVJfU1RESU5UX0hdKQorICBpZiB0ZXN0ICRqbV9hY19jdl9oZWFkZXJfaW50dHlwZXNfaCA9IG5vICYmIHRlc3QgJGptX2FjX2N2X2hlYWRlcl9zdGRpbnRfaCA9IG5vOyB0aGVuCisgICAgQUNfUkVRVUlSRShbam1fQUNfVFlQRV9VTlNJR05FRF9MT05HX0xPTkddKQorICAgIHRlc3QgJGFjX2N2X3R5cGVfdW5zaWduZWRfbG9uZ19sb25nID0geWVzIFwKKyAgICAgICYmIGFjX3R5cGU9J3Vuc2lnbmVkIGxvbmcgbG9uZycgXAorICAgICAgfHwgYWNfdHlwZT0ndW5zaWduZWQgbG9uZycKKyAgICBBQ19ERUZJTkVfVU5RVU9URUQodWludG1heF90LCAkYWNfdHlwZSwKKyAgICAgIFtEZWZpbmUgdG8gdW5zaWduZWQgbG9uZyBvciB1bnNpZ25lZCBsb25nIGxvbmcKKyAgICAgICBpZiA8c3RkaW50Lmg+IGFuZCA8aW50dHlwZXMuaD4gZG9uJ3QgZGVmaW5lLl0pCisgIGVsc2UKKyAgICBBQ19ERUZJTkUoSEFWRV9VSU5UTUFYX1QsIDEsCisgICAgICBbRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSAndWludG1heF90JyB0eXBlIGluIDxzdGRpbnQuaD4gb3IgPGludHR5cGVzLmg+Ll0pCisgIGZpCitdKQorIyB1bG9uZ2xvbmcubTQgc2VyaWFsIDIgKGZpbGV1dGlscy00LjAuMzIsIGdldHRleHQtMC4xMC40MCkKK2RubCBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KK2RubCBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZSwgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUKK2RubCBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwKK2RubCBQdWJsaWMgTGljZW5zZSwgdGhpcyBmaWxlIG1heSBiZSBkaXN0cmlidXRlZCBhcyBwYXJ0IG9mIGEgcHJvZ3JhbQorZG5sIHRoYXQgY29udGFpbnMgYSBjb25maWd1cmF0aW9uIHNjcmlwdCBnZW5lcmF0ZWQgYnkgQXV0b2NvbmYsIHVuZGVyCitkbmwgdGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIGFzIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KKworZG5sIEZyb20gUGF1bCBFZ2dlcnQuCisKK0FDX0RFRlVOKFtqbV9BQ19UWVBFX1VOU0lHTkVEX0xPTkdfTE9OR10sCitbCisgIEFDX0NBQ0hFX0NIRUNLKFtmb3IgdW5zaWduZWQgbG9uZyBsb25nXSwgYWNfY3ZfdHlwZV91bnNpZ25lZF9sb25nX2xvbmcsCisgIFtBQ19UUllfTElOSyhbdW5zaWduZWQgbG9uZyBsb25nIHVsbCA9IDE7IGludCBpID0gNjM7XSwKKyAgICBbdW5zaWduZWQgbG9uZyBsb25nIHVsbG1heCA9ICh1bnNpZ25lZCBsb25nIGxvbmcpIC0xOworICAgICByZXR1cm4gdWxsIDw8IGkgfCB1bGwgPj4gaSB8IHVsbG1heCAvIHVsbCB8IHVsbG1heCAlIHVsbDtdLAorICAgIGFjX2N2X3R5cGVfdW5zaWduZWRfbG9uZ19sb25nPXllcywKKyAgICBhY19jdl90eXBlX3Vuc2lnbmVkX2xvbmdfbG9uZz1ubyldKQorICBpZiB0ZXN0ICRhY19jdl90eXBlX3Vuc2lnbmVkX2xvbmdfbG9uZyA9IHllczsgdGhlbgorICAgIEFDX0RFRklORShIQVZFX1VOU0lHTkVEX0xPTkdfTE9ORywgMSwKKyAgICAgIFtEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHVuc2lnbmVkIGxvbmcgbG9uZyB0eXBlLl0pCisgIGZpCitdKQpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvYmluZC5jIGIvcmVhZGxpbmUvYmluZC5jCmluZGV4IDY1ZWY0MDEuLjc1NTlkMzIgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL2JpbmQuYworKysgYi9yZWFkbGluZS9iaW5kLmMKQEAgLTEsNiArMSw2IEBACiAvKiBiaW5kLmMgLS0ga2V5IGJpbmRpbmcgYW5kIHN0YXJ0dXAgZmlsZSBzdXBwb3J0IGZvciB0aGUgcmVhZGxpbmUgbGlicmFyeS4gKi8KIAotLyogQ29weXJpZ2h0IChDKSAxOTg3LCAxOTg5LCAxOTkyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorLyogQ29weXJpZ2h0IChDKSAxOTg3LTIwMDUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgUmVhZGxpbmUgTGlicmFyeSwgYSBsaWJyYXJ5IGZvcgogICAgcmVhZGluZyBsaW5lcyBvZiB0ZXh0IHdpdGggaW50ZXJhY3RpdmUgaW5wdXQgYW5kIGhpc3RvcnkgZWRpdGluZy4KQEAgLTE5LDggKzE5LDEzIEBACiAgICBpcyBnZW5lcmFsbHkga2VwdCBpbiBhIGZpbGUgY2FsbGVkIENPUFlJTkcgb3IgTElDRU5TRS4gIElmIHlvdSBkbyBub3QKICAgIGhhdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlLCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAogICAgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEgVVNBLiAqLworCiAjZGVmaW5lIFJFQURMSU5FX0xJQlJBUlkKIAorI2lmIGRlZmluZWQgKF9fVEFOREVNKQorIyAgaW5jbHVkZSA8Zmxvc3MuaD4KKyNlbmRpZgorCiAjaWYgZGVmaW5lZCAoSEFWRV9DT05GSUdfSCkKICMgIGluY2x1ZGUgPGNvbmZpZy5oPgogI2VuZGlmCkBAIC03Miw2ICs3Nyw5IEBACiBzdGF0aWMgdm9pZCBfcmxfaW5pdF9maWxlX2Vycm9yIFBBUkFNUygoY29uc3QgY2hhciAqKSk7CiBzdGF0aWMgaW50IF9ybF9yZWFkX2luaXRfZmlsZSBQQVJBTVMoKGNvbnN0IGNoYXIgKiwgaW50KSk7CiBzdGF0aWMgaW50IGdsZWFuX2tleV9mcm9tX25hbWUgUEFSQU1TKChjaGFyICopKTsKK3N0YXRpYyBpbnQgZmluZF9ib29sZWFuX3ZhciBQQVJBTVMoKGNvbnN0IGNoYXIgKikpOworCitzdGF0aWMgY2hhciAqX3JsX2dldF9zdHJpbmdfdmFyaWFibGVfdmFsdWUgUEFSQU1TKChjb25zdCBjaGFyICopKTsKIHN0YXRpYyBpbnQgc3Vic3RyaW5nX21lbWJlcl9vZl9hcnJheSBQQVJBTVMoKGNoYXIgKiwgY29uc3QgY2hhciAqKikpOwogCiBzdGF0aWMgaW50IGN1cnJlbnRseV9yZWFkaW5nX2luaXRfZmlsZTsKQEAgLTE0OCw2ICsxNTYsMzQgQEAKICAgcmV0dXJuIChyZXN1bHQpOwogfQogCisvKiBCaW5kIGtleSBzZXF1ZW5jZSBLRVlTRVEgdG8gREVGQVVMVF9GVU5DIGlmIEtFWVNFUSBpcyB1bmJvdW5kLiAgUmlnaHQKKyAgIG5vdywgdGhpcyBpcyBhbHdheXMgdXNlZCB0byBhdHRlbXB0IHRvIGJpbmQgdGhlIGFycm93IGtleXMsIGhlbmNlIHRoZQorICAgY2hlY2sgZm9yIHJsX3ZpX21vdmVtZW50X21vZGUuICovCitpbnQKK3JsX2JpbmRfa2V5X2lmX3VuYm91bmRfaW5fbWFwIChrZXksIGRlZmF1bHRfZnVuYywga21hcCkKKyAgICAgaW50IGtleTsKKyAgICAgcmxfY29tbWFuZF9mdW5jX3QgKmRlZmF1bHRfZnVuYzsKKyAgICAgS2V5bWFwIGttYXA7Cit7CisgIGNoYXIga2V5c2VxWzJdOworCisgIGtleXNlcVswXSA9ICh1bnNpZ25lZCBjaGFyKWtleTsKKyAga2V5c2VxWzFdID0gJ1wwJzsKKyAgcmV0dXJuIChybF9iaW5kX2tleXNlcV9pZl91bmJvdW5kX2luX21hcCAoa2V5c2VxLCBkZWZhdWx0X2Z1bmMsIGttYXApKTsKK30KKworaW50CitybF9iaW5kX2tleV9pZl91bmJvdW5kIChrZXksIGRlZmF1bHRfZnVuYykKKyAgICAgaW50IGtleTsKKyAgICAgcmxfY29tbWFuZF9mdW5jX3QgKmRlZmF1bHRfZnVuYzsKK3sKKyAgY2hhciBrZXlzZXFbMl07CisKKyAga2V5c2VxWzBdID0gKHVuc2lnbmVkIGNoYXIpa2V5OworICBrZXlzZXFbMV0gPSAnXDAnOworICByZXR1cm4gKHJsX2JpbmRfa2V5c2VxX2lmX3VuYm91bmRfaW5fbWFwIChrZXlzZXEsIGRlZmF1bHRfZnVuYywgX3JsX2tleW1hcCkpOworfQorCiAvKiBNYWtlIEtFWSBkbyBub3RoaW5nIGluIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQga2V5bWFwLgogICAgUmV0dXJucyBub24temVybyBpbiBjYXNlIG9mIGVycm9yLiAqLwogaW50CkBAIC0yMDAsOSArMjM2LDMwIEBACiB9CiAKIC8qIEJpbmQgdGhlIGtleSBzZXF1ZW5jZSByZXByZXNlbnRlZCBieSB0aGUgc3RyaW5nIEtFWVNFUSB0bworICAgRlVOQ1RJT04sIHN0YXJ0aW5nIGluIHRoZSBjdXJyZW50IGtleW1hcC4gIFRoaXMgbWFrZXMgbmV3CisgICBrZXltYXBzIGFzIG5lY2Vzc2FyeS4gKi8KK2ludAorcmxfYmluZF9rZXlzZXEgKGtleXNlcSwgZnVuY3Rpb24pCisgICAgIGNvbnN0IGNoYXIgKmtleXNlcTsKKyAgICAgcmxfY29tbWFuZF9mdW5jX3QgKmZ1bmN0aW9uOworeworICByZXR1cm4gKHJsX2dlbmVyaWNfYmluZCAoSVNGVU5DLCBrZXlzZXEsIChjaGFyICopZnVuY3Rpb24sIF9ybF9rZXltYXApKTsKK30KKworLyogQmluZCB0aGUga2V5IHNlcXVlbmNlIHJlcHJlc2VudGVkIGJ5IHRoZSBzdHJpbmcgS0VZU0VRIHRvCiAgICBGVU5DVElPTi4gIFRoaXMgbWFrZXMgbmV3IGtleW1hcHMgYXMgbmVjZXNzYXJ5LiAgVGhlIGluaXRpYWwKICAgIHBsYWNlIHRvIGRvIGJpbmRpbmdzIGlzIGluIE1BUC4gKi8KIGludAorcmxfYmluZF9rZXlzZXFfaW5fbWFwIChrZXlzZXEsIGZ1bmN0aW9uLCBtYXApCisgICAgIGNvbnN0IGNoYXIgKmtleXNlcTsKKyAgICAgcmxfY29tbWFuZF9mdW5jX3QgKmZ1bmN0aW9uOworICAgICBLZXltYXAgbWFwOworeworICByZXR1cm4gKHJsX2dlbmVyaWNfYmluZCAoSVNGVU5DLCBrZXlzZXEsIChjaGFyICopZnVuY3Rpb24sIG1hcCkpOworfQorCisvKiBCYWNrd2FyZHMgY29tcGF0aWJpbGl0eTsgZXF1aXZhbGVudCB0byBybF9iaW5kX2tleXNlcV9pbl9tYXAoKSAqLworaW50CiBybF9zZXRfa2V5IChrZXlzZXEsIGZ1bmN0aW9uLCBtYXApCiAgICAgIGNvbnN0IGNoYXIgKmtleXNlcTsKICAgICAgcmxfY29tbWFuZF9mdW5jX3QgKmZ1bmN0aW9uOwpAQCAtMjExLDYgKzI2OCw0MCBAQAogICByZXR1cm4gKHJsX2dlbmVyaWNfYmluZCAoSVNGVU5DLCBrZXlzZXEsIChjaGFyICopZnVuY3Rpb24sIG1hcCkpOwogfQogCisvKiBCaW5kIGtleSBzZXF1ZW5jZSBLRVlTRVEgdG8gREVGQVVMVF9GVU5DIGlmIEtFWVNFUSBpcyB1bmJvdW5kLiAgUmlnaHQKKyAgIG5vdywgdGhpcyBpcyBhbHdheXMgdXNlZCB0byBhdHRlbXB0IHRvIGJpbmQgdGhlIGFycm93IGtleXMsIGhlbmNlIHRoZQorICAgY2hlY2sgZm9yIHJsX3ZpX21vdmVtZW50X21vZGUuICovCitpbnQKK3JsX2JpbmRfa2V5c2VxX2lmX3VuYm91bmRfaW5fbWFwIChrZXlzZXEsIGRlZmF1bHRfZnVuYywga21hcCkKKyAgICAgY29uc3QgY2hhciAqa2V5c2VxOworICAgICBybF9jb21tYW5kX2Z1bmNfdCAqZGVmYXVsdF9mdW5jOworICAgICBLZXltYXAga21hcDsKK3sKKyAgcmxfY29tbWFuZF9mdW5jX3QgKmZ1bmM7CisKKyAgaWYgKGtleXNlcSkKKyAgICB7CisgICAgICBmdW5jID0gcmxfZnVuY3Rpb25fb2Zfa2V5c2VxIChrZXlzZXEsIGttYXAsIChpbnQgKilOVUxMKTsKKyNpZiBkZWZpbmVkIChWSV9NT0RFKQorICAgICAgaWYgKCFmdW5jIHx8IGZ1bmMgPT0gcmxfZG9fbG93ZXJjYXNlX3ZlcnNpb24gfHwgZnVuYyA9PSBybF92aV9tb3ZlbWVudF9tb2RlKQorI2Vsc2UKKyAgICAgIGlmICghZnVuYyB8fCBmdW5jID09IHJsX2RvX2xvd2VyY2FzZV92ZXJzaW9uKQorI2VuZGlmCisJcmV0dXJuIChybF9iaW5kX2tleXNlcV9pbl9tYXAgKGtleXNlcSwgZGVmYXVsdF9mdW5jLCBrbWFwKSk7CisgICAgICBlbHNlCisJcmV0dXJuIDE7CisgICAgfQorICByZXR1cm4gMDsKK30KKworaW50CitybF9iaW5kX2tleXNlcV9pZl91bmJvdW5kIChrZXlzZXEsIGRlZmF1bHRfZnVuYykKKyAgICAgY29uc3QgY2hhciAqa2V5c2VxOworICAgICBybF9jb21tYW5kX2Z1bmNfdCAqZGVmYXVsdF9mdW5jOworeworICByZXR1cm4gKHJsX2JpbmRfa2V5c2VxX2lmX3VuYm91bmRfaW5fbWFwIChrZXlzZXEsIGRlZmF1bHRfZnVuYywgX3JsX2tleW1hcCkpOworfQorCiAvKiBCaW5kIHRoZSBrZXkgc2VxdWVuY2UgcmVwcmVzZW50ZWQgYnkgdGhlIHN0cmluZyBLRVlTRVEgdG8KICAgIHRoZSBzdHJpbmcgb2YgY2hhcmFjdGVycyBNQUNSTy4gIFRoaXMgbWFrZXMgbmV3IGtleW1hcHMgYXMKICAgIG5lY2Vzc2FyeS4gIFRoZSBpbml0aWFsIHBsYWNlIHRvIGRvIGJpbmRpbmdzIGlzIGluIE1BUC4gKi8KQEAgLTI1Myw3ICszNDQsNyBAQAogICBrLmZ1bmN0aW9uID0gMDsKIAogICAvKiBJZiBubyBrZXlzIHRvIGJpbmQgdG8sIGV4aXQgcmlnaHQgYXdheS4gKi8KLSAgaWYgKCFrZXlzZXEgfHwgISprZXlzZXEpCisgIGlmIChrZXlzZXEgPT0gMCB8fCAqa2V5c2VxID09IDApCiAgICAgewogICAgICAgaWYgKHR5cGUgPT0gSVNNQUNSKQogCWZyZWUgKGRhdGEpOwpAQCAtMjgxLDcgKzM3Miw3IEBACiAgICAgICBpZiAoaWMgPCAwIHx8IGljID49IEtFWU1BUF9TSVpFKQogCXJldHVybiAtMTsKIAotICAgICAgaWYgKF9ybF9jb252ZXJ0X21ldGFfY2hhcnNfdG9fYXNjaWkgJiYgTUVUQV9DSEFSIChpYykpCisgICAgICBpZiAoTUVUQV9DSEFSIChpYykgJiYgX3JsX2NvbnZlcnRfbWV0YV9jaGFyc190b19hc2NpaSkKIAl7CiAJICBpYyA9IFVOTUVUQSAoaWMpOwogCSAgaWYgKG1hcFtFU0NdLnR5cGUgPT0gSVNLTUFQKQpAQCAtMzExLDcgKzQwMiw3IEBACiAJICAgICBtYXBwZWQgdG8gc29tZXRoaW5nLCBgYWJjJyB0byBiZSBtYXBwZWQgdG8gc29tZXRoaW5nIGVsc2UsCiAJICAgICBhbmQgdGhlIGZ1bmN0aW9uIGJvdW5kICB0byBgYScgdG8gYmUgZXhlY3V0ZWQgd2hlbiB0aGUgdXNlcgogCSAgICAgdHlwZXMgYGFieCcsIGxlYXZpbmcgYGJ4JyBpbiB0aGUgaW5wdXQgcXVldWUuICovCi0JICBpZiAoay5mdW5jdGlvbiAvKiAmJiBrLnR5cGUgPT0gSVNGVU5DICovKQorCSAgaWYgKGsuZnVuY3Rpb24gJiYgKChrLnR5cGUgPT0gSVNGVU5DICYmIGsuZnVuY3Rpb24gIT0gcmxfZG9fbG93ZXJjYXNlX3ZlcnNpb24pIHx8IGsudHlwZSA9PSBJU01BQ1IpKQogCSAgICB7CiAJICAgICAgbWFwW0FOWU9USEVSS0VZXSA9IGs7CiAJICAgICAgay5mdW5jdGlvbiA9IDA7CkBAIC0zNzIsNyArNDYzLDE0IEBACiAJICAgICAgZWxzZSBpZiAoYyA9PSAnTScpCiAJCXsKIAkJICBpKys7Ci0JCSAgYXJyYXlbbCsrXSA9IEVTQzsJLyogRVNDIGlzIG1ldGEtcHJlZml4ICovCisJCSAgLyogWFhYIC0gc2hvdWxkIG9iZXkgY29udmVydC1tZXRhIHNldHRpbmc/ICovCisJCSAgaWYgKF9ybF9jb252ZXJ0X21ldGFfY2hhcnNfdG9fYXNjaWkgJiYgX3JsX2tleW1hcFtFU0NdLnR5cGUgPT0gSVNLTUFQKQorCQkgICAgYXJyYXlbbCsrXSA9IEVTQzsJLyogRVNDIGlzIG1ldGEtcHJlZml4ICovCisJCSAgZWxzZQorCQkgICAgeworCQkgICAgICBpKys7CisJCSAgICAgIGFycmF5W2wrK10gPSBNRVRBIChzZXFbaV0pOworCQkgICAgfQogCQl9CiAJICAgICAgZWxzZSBpZiAoYyA9PSAnQycpCiAJCXsKQEAgLTkxMiw5ICsxMDEwLDE1IEBACiAgICAgICByZXR1cm4gMDsKICAgICB9CiAKKyNpZiAwCiAgIC8qIENoZWNrIHRoZSBwcmV2aW91cyAobiAtIDEpIGxldmVscyBvZiB0aGUgc3RhY2sgdG8gbWFrZSBzdXJlIHRoYXQKICAgICAgd2UgaGF2ZW4ndCBwcmV2aW91c2x5IHR1cm5lZCBvZmYgcGFyc2luZy4gKi8KICAgZm9yIChpID0gMDsgaSA8IGlmX3N0YWNrX2RlcHRoIC0gMTsgaSsrKQorI2Vsc2UKKyAgLyogQ2hlY2sgdGhlIHByZXZpb3VzIChuKSBsZXZlbHMgb2YgdGhlIHN0YWNrIHRvIG1ha2Ugc3VyZSB0aGF0CisgICAgIHdlIGhhdmVuJ3QgcHJldmlvdXNseSB0dXJuZWQgb2ZmIHBhcnNpbmcuICovCisgIGZvciAoaSA9IDA7IGkgPCBpZl9zdGFja19kZXB0aDsgaSsrKQorI2VuZGlmCiAgICAgaWYgKGlmX3N0YWNrW2ldID09IDEpCiAgICAgICByZXR1cm4gMDsKIApAQCAtMTA5MSw5ICsxMTk1LDkgQEAKICAgLyogSWYgdGhpcyBpcyBhIGNvbW1hbmQgdG8gc2V0IGEgdmFyaWFibGUsIHRoZW4gZG8gdGhhdC4gKi8KICAgaWYgKF9ybF9zdHJpY21wIChzdHJpbmcsICJzZXQiKSA9PSAwKQogICAgIHsKLSAgICAgIGNoYXIgKnZhciA9IHN0cmluZyArIGk7Ci0gICAgICBjaGFyICp2YWx1ZTsKKyAgICAgIGNoYXIgKnZhciwgKnZhbHVlLCAqZTsKIAorICAgICAgdmFyID0gc3RyaW5nICsgaTsKICAgICAgIC8qIE1ha2UgVkFSIHBvaW50IHRvIHN0YXJ0IG9mIHZhcmlhYmxlIG5hbWUuICovCiAgICAgICB3aGlsZSAoKnZhciAmJiB3aGl0ZXNwYWNlICgqdmFyKSkgdmFyKys7CiAKQEAgLTExMDQsNiArMTIwOCwyMCBAQAogCSp2YWx1ZSsrID0gJ1wwJzsKICAgICAgIHdoaWxlICgqdmFsdWUgJiYgd2hpdGVzcGFjZSAoKnZhbHVlKSkgdmFsdWUrKzsKIAorICAgICAgLyogU3RyaXAgdHJhaWxpbmcgd2hpdGVzcGFjZSBmcm9tIHZhbHVlcyB0byBib29sZWFuIHZhcmlhYmxlcy4gIFRlbXAKKwkgZml4IHVudGlsIEkgZ2V0IGEgcmVhbCBxdW90ZWQtc3RyaW5nIHBhcnNlciBoZXJlLiAqLworICAgICAgaSA9IGZpbmRfYm9vbGVhbl92YXIgKHZhcik7CisgICAgICBpZiAoaSA+PSAwKQorCXsKKwkgIC8qIHJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlICovCisJICBlID0gdmFsdWUgKyBzdHJsZW4gKHZhbHVlKSAtIDE7CisJICB3aGlsZSAoZSA+PSB2YWx1ZSAmJiB3aGl0ZXNwYWNlICgqZSkpCisJICAgIGUtLTsKKwkgIGUrKzsJCS8qIHNraXAgYmFjayB0byB3aGl0ZXNwYWNlIG9yIEVPUyAqLworCSAgaWYgKCplICYmIGUgPj0gdmFsdWUpCisJICAgICplID0gJ1wwJzsKKwl9CisKICAgICAgIHJsX3ZhcmlhYmxlX2JpbmQgKHZhciwgdmFsdWUpOwogICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtMTEyNCw4ICsxMjQyLDkgQEAKICAgICAgdGhlIHF1b3RlZCBzdHJpbmcgZGVsaW1pdGVyLCBsaWtlIHRoZSBzaGVsbC4gKi8KICAgaWYgKCpmdW5uYW1lID09ICdcJycgfHwgKmZ1bm5hbWUgPT0gJyInKQogICAgIHsKLSAgICAgIGludCBkZWxpbWl0ZXIgPSBzdHJpbmdbaSsrXSwgcGFzc2M7CisgICAgICBpbnQgZGVsaW1pdGVyLCBwYXNzYzsKIAorICAgICAgZGVsaW1pdGVyID0gc3RyaW5nW2krK107CiAgICAgICBmb3IgKHBhc3NjID0gMDsgYyA9IHN0cmluZ1tpXTsgaSsrKQogCXsKIAkgIGlmIChwYXNzYykKQEAgLTExNjEsNyArMTI4MCw3IEBACiAgICAgfQogCiAgIC8qIElmIHRoaXMgaXMgYSBuZXctc3R5bGUga2V5LWJpbmRpbmcsIHRoZW4gZG8gdGhlIGJpbmRpbmcgd2l0aAotICAgICBybF9zZXRfa2V5ICgpLiAgT3RoZXJ3aXNlLCBsZXQgdGhlIG9sZGVyIGNvZGUgZGVhbCB3aXRoIGl0LiAqLworICAgICBybF9iaW5kX2tleXNlcSAoKS4gIE90aGVyd2lzZSwgbGV0IHRoZSBvbGRlciBjb2RlIGRlYWwgd2l0aCBpdC4gKi8KICAgaWYgKCpzdHJpbmcgPT0gJyInKQogICAgIHsKICAgICAgIGNoYXIgKnNlcTsKQEAgLTEyMDAsNyArMTMxOSw3IEBACiAJICBybF9tYWNyb19iaW5kIChzZXEsICZmdW5uYW1lWzFdLCBfcmxfa2V5bWFwKTsKIAl9CiAgICAgICBlbHNlCi0Jcmxfc2V0X2tleSAoc2VxLCBybF9uYW1lZF9mdW5jdGlvbiAoZnVubmFtZSksIF9ybF9rZXltYXApOworCXJsX2JpbmRfa2V5c2VxIChzZXEsIHJsX25hbWVkX2Z1bmN0aW9uIChmdW5uYW1lKSk7CiAKICAgICAgIGZyZWUgKHNlcSk7CiAgICAgICByZXR1cm4gMDsKQEAgLTEyNjEsNiArMTM4MCw3IEBACiAgIGludCAqdmFsdWU7CiAgIGludCBmbGFnczsKIH0gYm9vbGVhbl92YXJsaXN0IFtdID0geworICB7ICJiaW5kLXR0eS1zcGVjaWFsLWNoYXJzIiwJJl9ybF9iaW5kX3N0dHlfY2hhcnMsCQkwIH0sCiAgIHsgImJsaW5rLW1hdGNoaW5nLXBhcmVuIiwJJnJsX2JsaW5rX21hdGNoaW5nX3BhcmVuLAlWX1NQRUNJQUwgfSwKICAgeyAiYnl0ZS1vcmllbnRlZCIsCQkmcmxfYnl0ZV9vcmllbnRlZCwJCTAgfSwKICAgeyAiY29tcGxldGlvbi1pZ25vcmUtY2FzZSIsCSZfcmxfY29tcGxldGlvbl9jYXNlX2ZvbGQsCTAgfSwKQEAgLTEyODEsNiArMTQwMSw3IEBACiAgIHsgInByZWZlci12aXNpYmxlLWJlbGwiLAkmX3JsX3ByZWZlcl92aXNpYmxlX2JlbGwsCVZfU1BFQ0lBTCB9LAogICB7ICJwcmludC1jb21wbGV0aW9ucy1ob3Jpem9udGFsbHkiLCAmX3JsX3ByaW50X2NvbXBsZXRpb25zX2hvcml6b250YWxseSwgMCB9LAogICB7ICJzaG93LWFsbC1pZi1hbWJpZ3VvdXMiLAkmX3JsX2NvbXBsZXRlX3Nob3dfYWxsLAkJMCB9LAorICB7ICJzaG93LWFsbC1pZi11bm1vZGlmaWVkIiwJJl9ybF9jb21wbGV0ZV9zaG93X3VubW9kaWZpZWQsCTAgfSwKICNpZiBkZWZpbmVkIChWSVNJQkxFX1NUQVRTKQogICB7ICJ2aXNpYmxlLXN0YXRzIiwJCSZybF92aXNpYmxlX3N0YXRzLAkJMCB9LAogI2VuZGlmIC8qIFZJU0lCTEVfU1RBVFMgKi8KQEAgLTEzNzMsMTMgKzE0OTQsMzQgQEAKICAgIHZhbHVlcyByZXN1bHQgaW4gMCAoZmFsc2UpLiAqLwogc3RhdGljIGludAogYm9vbF90b19pbnQgKHZhbHVlKQotICAgICBjaGFyICp2YWx1ZTsKKyAgICAgY29uc3QgY2hhciAqdmFsdWU7CiB7CiAgIHJldHVybiAodmFsdWUgPT0gMCB8fCAqdmFsdWUgPT0gJ1wwJyB8fAogCQkoX3JsX3N0cmljbXAgKHZhbHVlLCAib24iKSA9PSAwKSB8fAogCQkodmFsdWVbMF0gPT0gJzEnICYmIHZhbHVlWzFdID09ICdcMCcpKTsKIH0KIAorY2hhciAqCitybF92YXJpYWJsZV92YWx1ZSAobmFtZSkKKyAgICAgY29uc3QgY2hhciAqbmFtZTsKK3sKKyAgcmVnaXN0ZXIgaW50IGk7CisgIGludAl2OworICBjaGFyICpyZXQ7CisKKyAgLyogQ2hlY2sgZm9yIHNpbXBsZSB2YXJpYWJsZXMgZmlyc3QuICovCisgIGkgPSBmaW5kX2Jvb2xlYW5fdmFyIChuYW1lKTsKKyAgaWYgKGkgPj0gMCkKKyAgICByZXR1cm4gKCpib29sZWFuX3Zhcmxpc3RbaV0udmFsdWUgPyAib24iIDogIm9mZiIpOworCisgIGkgPSBmaW5kX3N0cmluZ192YXIgKG5hbWUpOworICBpZiAoaSA+PSAwKQorICAgIHJldHVybiAoX3JsX2dldF9zdHJpbmdfdmFyaWFibGVfdmFsdWUgKHN0cmluZ192YXJsaXN0W2ldLm5hbWUpKTsKKworICAvKiBVbmtub3duIHZhcmlhYmxlIG5hbWVzIHJldHVybiBOVUxMLiAqLworICByZXR1cm4gMDsKK30KKwogaW50CiBybF92YXJpYWJsZV9iaW5kIChuYW1lLCB2YWx1ZSkKICAgICAgY29uc3QgY2hhciAqbmFtZSwgKnZhbHVlOwpAQCAtMTY1MCw3ICsxNzkyLDcgQEAKIC8qIEVhY2ggb2YgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgcHJvZHVjZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlCiAgICBzdGF0ZSBvZiBrZXliaW5kaW5ncyBhbmQgZnVuY3Rpb25zIGtub3duIHRvIFJlYWRsaW5lLiAgVGhlIGluZm8KICAgIGlzIGFsd2F5cyBwcmludGVkIHRvIHJsX291dHN0cmVhbSwgYW5kIGluIHN1Y2ggYSB3YXkgdGhhdCBpdCBjYW4KLSAgIGJlIHJlYWQgYmFjayBpbiAoaS5lLiwgcGFzc2VkIHRvIHJsX3BhcnNlX2FuZF9iaW5kICgpLiAqLworICAgYmUgcmVhZCBiYWNrIGluIChpLmUuLCBwYXNzZWQgdG8gcmxfcGFyc2VfYW5kX2JpbmQgKCkpLiAqLwogCiAvKiBQcmludCB0aGUgbmFtZXMgb2YgZnVuY3Rpb25zIGtub3duIHRvIFJlYWRsaW5lLiAqLwogdm9pZApAQCAtMjAyMiwxMiArMjE2NCw2OCBAQAogICByZXR1cm4gKDApOwogfQogCitzdGF0aWMgY2hhciAqCitfcmxfZ2V0X3N0cmluZ192YXJpYWJsZV92YWx1ZSAobmFtZSkKKyAgICAgY29uc3QgY2hhciAqbmFtZTsKK3sKKyAgc3RhdGljIGNoYXIgbnVtYnVmWzMyXTsKKyAgY2hhciAqcmV0OworICBpbnQgbjsKKworICBpZiAoX3JsX3N0cmljbXAgKG5hbWUsICJiZWxsLXN0eWxlIikgPT0gMCkKKyAgICB7CisgICAgICBzd2l0Y2ggKF9ybF9iZWxsX3ByZWZlcmVuY2UpCisJeworCSAgY2FzZSBOT19CRUxMOgorCSAgICByZXR1cm4gIm5vbmUiOworCSAgY2FzZSBWSVNJQkxFX0JFTEw6CisJICAgIHJldHVybiAidmlzaWJsZSI7CisJICBjYXNlIEFVRElCTEVfQkVMTDoKKwkgIGRlZmF1bHQ6CisJICAgIHJldHVybiAiYXVkaWJsZSI7CisJfQorICAgIH0KKyAgZWxzZSBpZiAoX3JsX3N0cmljbXAgKG5hbWUsICJjb21tZW50LWJlZ2luIikgPT0gMCkKKyAgICByZXR1cm4gKF9ybF9jb21tZW50X2JlZ2luID8gX3JsX2NvbW1lbnRfYmVnaW4gOiBSTF9DT01NRU5UX0JFR0lOX0RFRkFVTFQpOworICBlbHNlIGlmIChfcmxfc3RyaWNtcCAobmFtZSwgImNvbXBsZXRpb24tcXVlcnktaXRlbXMiKSA9PSAwKQorICAgIHsKKyAgICAgIHNwcmludGYgKG51bWJ1ZiwgIiVkIiwgcmxfY29tcGxldGlvbl9xdWVyeV9pdGVtcyk7CisgICAgICByZXR1cm4gKG51bWJ1Zik7CisgICAgfQorICBlbHNlIGlmIChfcmxfc3RyaWNtcCAobmFtZSwgImVkaXRpbmctbW9kZSIpID09IDApCisgICAgcmV0dXJuIChybF9nZXRfa2V5bWFwX25hbWVfZnJvbV9lZGl0X21vZGUgKCkpOworICBlbHNlIGlmIChfcmxfc3RyaWNtcCAobmFtZSwgImlzZWFyY2gtdGVybWluYXRvcnMiKSA9PSAwKQorICAgIHsKKyAgICAgIGlmIChfcmxfaXNlYXJjaF90ZXJtaW5hdG9ycyA9PSAwKQorCXJldHVybiAwOworICAgICAgcmV0ID0gX3JsX3VudHJhbnNsYXRlX21hY3JvX3ZhbHVlIChfcmxfaXNlYXJjaF90ZXJtaW5hdG9ycyk7CisgICAgICBpZiAocmV0KQorCXsKKwkgIHN0cm5jcHkgKG51bWJ1ZiwgcmV0LCBzaXplb2YgKG51bWJ1ZikgLSAxKTsKKwkgIGZyZWUgKHJldCk7CisJICBudW1idWZbc2l6ZW9mKG51bWJ1ZikgLSAxXSA9ICdcMCc7CisJfQorICAgICAgZWxzZQorCW51bWJ1ZlswXSA9ICdcMCc7CisgICAgICByZXR1cm4gbnVtYnVmOworICAgIH0KKyAgZWxzZSBpZiAoX3JsX3N0cmljbXAgKG5hbWUsICJrZXltYXAiKSA9PSAwKQorICAgIHsKKyAgICAgIHJldCA9IHJsX2dldF9rZXltYXBfbmFtZSAoX3JsX2tleW1hcCk7CisgICAgICBpZiAocmV0ID09IDApCisJcmV0ID0gcmxfZ2V0X2tleW1hcF9uYW1lX2Zyb21fZWRpdF9tb2RlICgpOworICAgICAgcmV0dXJuIChyZXQgPyByZXQgOiAibm9uZSIpOworICAgIH0KKyAgZWxzZQorICAgIHJldHVybiAoMCk7Cit9CisKIHZvaWQKIHJsX3ZhcmlhYmxlX2R1bXBlciAocHJpbnRfcmVhZGFibHkpCiAgICAgIGludCBwcmludF9yZWFkYWJseTsKIHsKICAgaW50IGk7Ci0gIGNvbnN0IGNoYXIgKmtuYW1lOworICBjaGFyICp2OwogCiAgIGZvciAoaSA9IDA7IGJvb2xlYW5fdmFybGlzdFtpXS5uYW1lOyBpKyspCiAgICAgewpAQCAtMjAzOSw2MyArMjIzNywxNiBAQAogCQkJICAgICAgICpib29sZWFuX3Zhcmxpc3RbaV0udmFsdWUgPyAib24iIDogIm9mZiIpOwogICAgIH0KIAotICAvKiBiZWxsLXN0eWxlICovCi0gIHN3aXRjaCAoX3JsX2JlbGxfcHJlZmVyZW5jZSkKKyAgZm9yIChpID0gMDsgc3RyaW5nX3Zhcmxpc3RbaV0ubmFtZTsgaSsrKQogICAgIHsKLSAgICBjYXNlIE5PX0JFTEw6Ci0gICAgICBrbmFtZSA9ICJub25lIjsgYnJlYWs7Ci0gICAgY2FzZSBWSVNJQkxFX0JFTEw6Ci0gICAgICBrbmFtZSA9ICJ2aXNpYmxlIjsgYnJlYWs7Ci0gICAgY2FzZSBBVURJQkxFX0JFTEw6Ci0gICAgZGVmYXVsdDoKLSAgICAgIGtuYW1lID0gImF1ZGlibGUiOyBicmVhazsKLSAgICB9Ci0gIGlmIChwcmludF9yZWFkYWJseSkKLSAgICBmcHJpbnRmIChybF9vdXRzdHJlYW0sICJzZXQgYmVsbC1zdHlsZSAlc1xuIiwga25hbWUpOwotICBlbHNlCi0gICAgZnByaW50ZiAocmxfb3V0c3RyZWFtLCAiYmVsbC1zdHlsZSBpcyBzZXQgdG8gYCVzJ1xuIiwga25hbWUpOwotCi0gIC8qIGNvbW1lbnQtYmVnaW4gKi8KLSAgaWYgKHByaW50X3JlYWRhYmx5KQotICAgIGZwcmludGYgKHJsX291dHN0cmVhbSwgInNldCBjb21tZW50LWJlZ2luICVzXG4iLCBfcmxfY29tbWVudF9iZWdpbiA/IF9ybF9jb21tZW50X2JlZ2luIDogUkxfQ09NTUVOVF9CRUdJTl9ERUZBVUxUKTsKLSAgZWxzZQotICAgIGZwcmludGYgKHJsX291dHN0cmVhbSwgImNvbW1lbnQtYmVnaW4gaXMgc2V0IHRvIGAlcydcbiIsIF9ybF9jb21tZW50X2JlZ2luID8gX3JsX2NvbW1lbnRfYmVnaW4gOiBSTF9DT01NRU5UX0JFR0lOX0RFRkFVTFQpOwotCi0gIC8qIGNvbXBsZXRpb24tcXVlcnktaXRlbXMgKi8KLSAgaWYgKHByaW50X3JlYWRhYmx5KQotICAgIGZwcmludGYgKHJsX291dHN0cmVhbSwgInNldCBjb21wbGV0aW9uLXF1ZXJ5LWl0ZW1zICVkXG4iLCBybF9jb21wbGV0aW9uX3F1ZXJ5X2l0ZW1zKTsKLSAgZWxzZQotICAgIGZwcmludGYgKHJsX291dHN0cmVhbSwgImNvbXBsZXRpb24tcXVlcnktaXRlbXMgaXMgc2V0IHRvIGAlZCdcbiIsIHJsX2NvbXBsZXRpb25fcXVlcnlfaXRlbXMpOwotCi0gIC8qIGVkaXRpbmctbW9kZSAqLwotICBpZiAocHJpbnRfcmVhZGFibHkpCi0gICAgZnByaW50ZiAocmxfb3V0c3RyZWFtLCAic2V0IGVkaXRpbmctbW9kZSAlc1xuIiwgKHJsX2VkaXRpbmdfbW9kZSA9PSBlbWFjc19tb2RlKSA/ICJlbWFjcyIgOiAidmkiKTsKLSAgZWxzZQotICAgIGZwcmludGYgKHJsX291dHN0cmVhbSwgImVkaXRpbmctbW9kZSBpcyBzZXQgdG8gYCVzJ1xuIiwgKHJsX2VkaXRpbmdfbW9kZSA9PSBlbWFjc19tb2RlKSA/ICJlbWFjcyIgOiAidmkiKTsKLQotICAvKiBpc2VhcmNoLXRlcm1pbmF0b3JzICovCi0gIGlmIChfcmxfaXNlYXJjaF90ZXJtaW5hdG9ycykKLSAgICB7Ci0gICAgICBjaGFyICpkaXNwOwotCi0gICAgICBkaXNwID0gX3JsX3VudHJhbnNsYXRlX21hY3JvX3ZhbHVlIChfcmxfaXNlYXJjaF90ZXJtaW5hdG9ycyk7Ci0KKyAgICAgIHYgPSBfcmxfZ2V0X3N0cmluZ192YXJpYWJsZV92YWx1ZSAoc3RyaW5nX3Zhcmxpc3RbaV0ubmFtZSk7CisgICAgICBpZiAodiA9PSAwKQkvKiBfcmxfaXNlYXJjaF90ZXJtaW5hdG9ycyBjYW4gYmUgTlVMTCAqLworCWNvbnRpbnVlOwogICAgICAgaWYgKHByaW50X3JlYWRhYmx5KQotCWZwcmludGYgKHJsX291dHN0cmVhbSwgInNldCBpc2VhcmNoLXRlcm1pbmF0b3JzIFwiJXNcIlxuIiwgZGlzcCk7CisgICAgICAgIGZwcmludGYgKHJsX291dHN0cmVhbSwgInNldCAlcyAlc1xuIiwgc3RyaW5nX3Zhcmxpc3RbaV0ubmFtZSwgdik7CiAgICAgICBlbHNlCi0JZnByaW50ZiAocmxfb3V0c3RyZWFtLCAiaXNlYXJjaC10ZXJtaW5hdG9ycyBpcyBzZXQgdG8gXCIlc1wiXG4iLCBkaXNwKTsKLQotICAgICAgZnJlZSAoZGlzcCk7CisgICAgICAgIGZwcmludGYgKHJsX291dHN0cmVhbSwgIiVzIGlzIHNldCB0byBgJXMnXG4iLCBzdHJpbmdfdmFybGlzdFtpXS5uYW1lLCB2KTsKICAgICB9Ci0KLSAgLyoga2V5bWFwICovCi0gIGtuYW1lID0gcmxfZ2V0X2tleW1hcF9uYW1lIChfcmxfa2V5bWFwKTsKLSAgaWYgKGtuYW1lID09IDApCi0gICAga25hbWUgPSBybF9nZXRfa2V5bWFwX25hbWVfZnJvbV9lZGl0X21vZGUgKCk7Ci0gIGlmIChwcmludF9yZWFkYWJseSkKLSAgICBmcHJpbnRmIChybF9vdXRzdHJlYW0sICJzZXQga2V5bWFwICVzXG4iLCBrbmFtZSA/IGtuYW1lIDogIm5vbmUiKTsKLSAgZWxzZQotICAgIGZwcmludGYgKHJsX291dHN0cmVhbSwgImtleW1hcCBpcyBzZXQgdG8gYCVzJ1xuIiwga25hbWUgPyBrbmFtZSA6ICJub25lIik7CiB9CiAKIC8qIFByaW50IGFsbCBvZiB0aGUgY3VycmVudCB2YXJpYWJsZXMgYW5kIHRoZWlyIHZhbHVlcyB0bwpAQCAtMjExMiwyOCArMjI2Myw2IEBACiAgIHJldHVybiAoMCk7CiB9CiAKLS8qIEJpbmQga2V5IHNlcXVlbmNlIEtFWVNFUSB0byBERUZBVUxUX0ZVTkMgaWYgS0VZU0VRIGlzIHVuYm91bmQuICBSaWdodAotICAgbm93LCB0aGlzIGlzIGFsd2F5cyB1c2VkIHRvIGF0dGVtcHQgdG8gYmluZCB0aGUgYXJyb3cga2V5cywgaGVuY2UgdGhlCi0gICBjaGVjayBmb3IgcmxfdmlfbW92ZW1lbnRfbW9kZS4gKi8KLXZvaWQKLV9ybF9iaW5kX2lmX3VuYm91bmQgKGtleXNlcSwgZGVmYXVsdF9mdW5jKQotICAgICBjb25zdCBjaGFyICprZXlzZXE7Ci0gICAgIHJsX2NvbW1hbmRfZnVuY190ICpkZWZhdWx0X2Z1bmM7Ci17Ci0gIHJsX2NvbW1hbmRfZnVuY190ICpmdW5jOwotCi0gIGlmIChrZXlzZXEpCi0gICAgewotICAgICAgZnVuYyA9IHJsX2Z1bmN0aW9uX29mX2tleXNlcSAoa2V5c2VxLCBfcmxfa2V5bWFwLCAoaW50ICopTlVMTCk7Ci0jaWYgZGVmaW5lZCAoVklfTU9ERSkKLSAgICAgIGlmICghZnVuYyB8fCBmdW5jID09IHJsX2RvX2xvd2VyY2FzZV92ZXJzaW9uIHx8IGZ1bmMgPT0gcmxfdmlfbW92ZW1lbnRfbW9kZSkKLSNlbHNlCi0gICAgICBpZiAoIWZ1bmMgfHwgZnVuYyA9PSBybF9kb19sb3dlcmNhc2VfdmVyc2lvbikKLSNlbmRpZgotCXJsX3NldF9rZXkgKGtleXNlcSwgZGVmYXVsdF9mdW5jLCBfcmxfa2V5bWFwKTsKLSAgICB9Ci19Ci0KIC8qIFJldHVybiBub24temVybyBpZiBhbnkgbWVtYmVycyBvZiBBUlJBWSBhcmUgYSBzdWJzdHJpbmcgaW4gU1RSSU5HLiAqLwogc3RhdGljIGludAogc3Vic3RyaW5nX21lbWJlcl9vZl9hcnJheSAoc3RyaW5nLCBhcnJheSkKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2NhbGxiYWNrLmMgYi9yZWFkbGluZS9jYWxsYmFjay5jCmluZGV4IGE4ZjQzMjMuLjkxMjA5NjkgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL2NhbGxiYWNrLmMKKysrIGIvcmVhZGxpbmUvY2FsbGJhY2suYwpAQCAtMSw2ICsxLDYgQEAKIC8qIGNhbGxiYWNrLmMgLS0gZnVuY3Rpb25zIHRvIHVzZSByZWFkbGluZSBhcyBhbiBYIGBjYWxsYmFjaycgbWVjaGFuaXNtLiAqLwogCi0vKiBDb3B5cmlnaHQgKEMpIDE5ODcsIDE5ODksIDE5OTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisvKiBDb3B5cmlnaHQgKEMpIDE5ODctMjAwNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBSZWFkbGluZSBMaWJyYXJ5LCBhIGxpYnJhcnkgZm9yCiAgICByZWFkaW5nIGxpbmVzIG9mIHRleHQgd2l0aCBpbnRlcmFjdGl2ZSBpbnB1dCBhbmQgaGlzdG9yeSBlZGl0aW5nLgpAQCAtNDQsOSArNDQsMTQgQEAKICNpbmNsdWRlICJyZWFkbGluZS5oIgogI2luY2x1ZGUgInJscHJpdmF0ZS5oIgogCisvKiBQcml2YXRlIGRhdGEgZm9yIGNhbGxiYWNrIHJlZ2lzdHJhdGlvbiBmdW5jdGlvbnMuICBTZWUgY29tbWVudHMgaW4KKyAgIHJsX2NhbGxiYWNrX3JlYWRfY2hhciBmb3IgbW9yZSBkZXRhaWxzLiAqLworX3JsX2NhbGxiYWNrX2Z1bmNfdCAqX3JsX2NhbGxiYWNrX2Z1bmMgPSAwOworX3JsX2NhbGxiYWNrX2dlbmVyaWNfYXJnICpfcmxfY2FsbGJhY2tfZGF0YSA9IDA7CisKIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KIC8qCQkJCQkJCQkgICAgKi8KLS8qCQkJQ2FsbGJhY2sgUmVhZGxpbmUgRnVuY3Rpb25zICAgICAgICAgICAgICAgICAqLworLyoJCQlDYWxsYmFjayBSZWFkbGluZSBGdW5jdGlvbnMJCSAqLwogLyoJCQkJCQkJCSAgICAqLwogLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLwogCkBAIC03Miw3ICs3Nyw4IEBACiAgICAgewogICAgICAgaW5faGFuZGxlciA9IDE7CiAKLSAgICAgICgqcmxfcHJlcF90ZXJtX2Z1bmN0aW9uKSAoX3JsX21ldGFfZmxhZyk7CisgICAgICBpZiAocmxfcHJlcF90ZXJtX2Z1bmN0aW9uKQorCSgqcmxfcHJlcF90ZXJtX2Z1bmN0aW9uKSAoX3JsX21ldGFfZmxhZyk7CiAKICNpZiBkZWZpbmVkIChIQU5ETEVfU0lHTkFMUykKICAgICAgIHJsX3NldF9zaWduYWxzICgpOwpAQCAtODksNiArOTUsNyBAQAogICAgICBybF92Y3BmdW5jX3QgKmxpbmVmdW5jOwogewogICBybF9zZXRfcHJvbXB0IChwcm9tcHQpOworICBSTF9TRVRTVEFURSAoUkxfU1RBVEVfQ0FMTEJBQ0spOwogICBybF9saW5lZnVuYyA9IGxpbmVmdW5jOwogICBfcmxfY2FsbGJhY2tfbmV3bGluZSAoKTsKIH0KQEAgLTk4LDcgKzEwNSw4IEBACiBybF9jYWxsYmFja19yZWFkX2NoYXIgKCkKIHsKICAgY2hhciAqbGluZTsKLSAgaW50IGVvZjsKKyAgaW50IGVvZiwgamNvZGU7CisgIHN0YXRpYyBwcm9jZW52X3Qgb2xldmVsOwogCiAgIGlmIChybF9saW5lZnVuYyA9PSBOVUxMKQogICAgIHsKQEAgLTEwNiw3ICsxMTQsNzkgQEAKICAgICAgIGFib3J0ICgpOwogICAgIH0KIAotICBlb2YgPSByZWFkbGluZV9pbnRlcm5hbF9jaGFyICgpOworICBtZW1jcHkgKCh2b2lkICopb2xldmVsLCAodm9pZCAqKXJlYWRsaW5lX3RvcF9sZXZlbCwgc2l6ZW9mIChwcm9jZW52X3QpKTsKKyAgamNvZGUgPSBzZXRqbXAgKHJlYWRsaW5lX3RvcF9sZXZlbCk7CisgIGlmIChqY29kZSkKKyAgICB7CisgICAgICAoKnJsX3JlZGlzcGxheV9mdW5jdGlvbikgKCk7CisgICAgICBfcmxfd2FudF9yZWRpc3BsYXkgPSAwOworICAgICAgbWVtY3B5ICgodm9pZCAqKXJlYWRsaW5lX3RvcF9sZXZlbCwgKHZvaWQgKilvbGV2ZWwsIHNpemVvZiAocHJvY2Vudl90KSk7CisgICAgICByZXR1cm47CisgICAgfQorCisgIGlmICAoUkxfSVNTVEFURSAoUkxfU1RBVEVfSVNFQVJDSCkpCisgICAgeworICAgICAgZW9mID0gX3JsX2lzZWFyY2hfY2FsbGJhY2sgKF9ybF9pc2N4dCk7CisgICAgICBpZiAoZW9mID09IDAgJiYgKFJMX0lTU1RBVEUgKFJMX1NUQVRFX0lTRUFSQ0gpID09IDApICYmIFJMX0lTU1RBVEUgKFJMX1NUQVRFX0lOUFVUUEVORElORykpCisJcmxfY2FsbGJhY2tfcmVhZF9jaGFyICgpOworCisgICAgICByZXR1cm47CisgICAgfQorICBlbHNlIGlmICAoUkxfSVNTVEFURSAoUkxfU1RBVEVfTlNFQVJDSCkpCisgICAgeworICAgICAgZW9mID0gX3JsX25zZWFyY2hfY2FsbGJhY2sgKF9ybF9uc2N4dCk7CisgICAgICByZXR1cm47CisgICAgfQorICBlbHNlIGlmIChSTF9JU1NUQVRFIChSTF9TVEFURV9OVU1FUklDQVJHKSkKKyAgICB7CisgICAgICBlb2YgPSBfcmxfYXJnX2NhbGxiYWNrIChfcmxfYXJnY3h0KTsKKyAgICAgIGlmIChlb2YgPT0gMCAmJiAoUkxfSVNTVEFURSAoUkxfU1RBVEVfTlVNRVJJQ0FSRykgPT0gMCkgJiYgUkxfSVNTVEFURSAoUkxfU1RBVEVfSU5QVVRQRU5ESU5HKSkKKwlybF9jYWxsYmFja19yZWFkX2NoYXIgKCk7CisgICAgICAvKiBYWFggLSB0aGlzIHNob3VsZCBoYW5kbGUgX3JsX2xhc3RfY29tbWFuZF93YXNfa2lsbCBiZXR0ZXIgKi8KKyAgICAgIGVsc2UgaWYgKFJMX0lTU1RBVEUgKFJMX1NUQVRFX05VTUVSSUNBUkcpID09IDApCisJX3JsX2ludGVybmFsX2NoYXJfY2xlYW51cCAoKTsKKworICAgICAgcmV0dXJuOworICAgIH0KKyAgZWxzZSBpZiAoUkxfSVNTVEFURSAoUkxfU1RBVEVfTVVMVElLRVkpKQorICAgIHsKKyAgICAgIGVvZiA9IF9ybF9kaXNwYXRjaF9jYWxsYmFjayAoX3JsX2tzY3h0KTsJLyogRm9yIG5vdyAqLworICAgICAgd2hpbGUgKChlb2YgPT0gLTEgfHwgZW9mID09IC0yKSAmJiBSTF9JU1NUQVRFIChSTF9TVEFURV9NVUxUSUtFWSkgJiYgX3JsX2tzY3h0ICYmIChfcmxfa3NjeHQtPmZsYWdzICYgS1NFUV9ESVNQQVRDSEVEKSkKKwllb2YgPSBfcmxfZGlzcGF0Y2hfY2FsbGJhY2sgKF9ybF9rc2N4dCk7CisgICAgICBpZiAoUkxfSVNTVEFURSAoUkxfU1RBVEVfTVVMVElLRVkpID09IDApCisJeworCSAgX3JsX2ludGVybmFsX2NoYXJfY2xlYW51cCAoKTsKKwkgIF9ybF93YW50X3JlZGlzcGxheSA9IDE7CisJfQorICAgIH0KKyAgZWxzZSBpZiAoX3JsX2NhbGxiYWNrX2Z1bmMpCisgICAgeworICAgICAgLyogVGhpcyBhbGxvd3MgZnVuY3Rpb25zIHRoYXQgc2ltcGx5IG5lZWQgdG8gcmVhZCBhbiBhZGRpdGlvbmFsIGNoYXJhY3RlcgorCSAobGlrZSBxdW90ZWQtaW5zZXJ0KSB0byByZWdpc3RlciBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIGlucHV0IGlzCisJIGF2YWlsYWJsZS4gIF9ybF9jYWxsYmFja19kYXRhIGlzIHNpbXBseSBhIHBvaW50ZXIgdG8gYSBzdHJ1Y3QgdGhhdCBoYXMKKwkgdGhlIGFyZ3VtZW50IGNvdW50IG9yaWdpbmFsbHkgcGFzc2VkIHRvIHRoZSByZWdpc3RlcmluZyBmdW5jdGlvbiBhbmQKKwkgc3BhY2UgZm9yIGFueSBhZGRpdGlvbmFsIHBhcmFtZXRlcnMuICAqLworICAgICAgZW9mID0gKCpfcmxfY2FsbGJhY2tfZnVuYykgKF9ybF9jYWxsYmFja19kYXRhKTsKKyAgICAgIC8qIElmIHRoZSBmdW5jdGlvbiBgZGVyZWdpc3RlcnMnIGl0c2VsZiwgbWFrZSBzdXJlIHRoZSBkYXRhIGlzIGNsZWFuZWQKKwkgdXAuICovCisgICAgICBpZiAoX3JsX2NhbGxiYWNrX2Z1bmMgPT0gMCkKKwl7CisJICBpZiAoX3JsX2NhbGxiYWNrX2RhdGEpIAkKKwkgICAgeworCSAgICAgIF9ybF9jYWxsYmFja19kYXRhX2Rpc3Bvc2UgKF9ybF9jYWxsYmFja19kYXRhKTsKKwkgICAgICBfcmxfY2FsbGJhY2tfZGF0YSA9IDA7CisJICAgIH0KKwkgIF9ybF9pbnRlcm5hbF9jaGFyX2NsZWFudXAgKCk7CisJfQorICAgIH0KKyAgZWxzZQorICAgIGVvZiA9IHJlYWRsaW5lX2ludGVybmFsX2NoYXIgKCk7CisKKyAgaWYgKHJsX2RvbmUgPT0gMCAmJiBfcmxfd2FudF9yZWRpc3BsYXkpCisgICAgeworICAgICAgKCpybF9yZWRpc3BsYXlfZnVuY3Rpb24pICgpOworICAgICAgX3JsX3dhbnRfcmVkaXNwbGF5ID0gMDsKKyAgICB9CiAKICAgLyogV2UgbG9vcCBpbiBjYXNlIHNvbWUgZnVuY3Rpb24gaGFzIHB1c2hlZCBpbnB1dCBiYWNrIHdpdGggcmxfZXhlY3V0ZV9uZXh0LiAqLwogICBmb3IgKDs7KQpAQCAtMTE1LDcgKzE5NSw4IEBACiAJewogCSAgbGluZSA9IHJlYWRsaW5lX2ludGVybmFsX3RlYXJkb3duIChlb2YpOwogCi0JICAoKnJsX2RlcHJlcF90ZXJtX2Z1bmN0aW9uKSAoKTsKKwkgIGlmIChybF9kZXByZXBfdGVybV9mdW5jdGlvbikKKwkgICAgKCpybF9kZXByZXBfdGVybV9mdW5jdGlvbikgKCk7CiAjaWYgZGVmaW5lZCAoSEFORExFX1NJR05BTFMpCiAJICBybF9jbGVhcl9zaWduYWxzICgpOwogI2VuZGlmCkBAIC0xMzEsMTAgKzIxMiwxMCBAQAogCSAgaWYgKGluX2hhbmRsZXIgPT0gMCAmJiBybF9saW5lZnVuYykKIAkgICAgX3JsX2NhbGxiYWNrX25ld2xpbmUgKCk7CiAJfQotICAgICAgaWYgKHJsX3BlbmRpbmdfaW5wdXQpCisgICAgICBpZiAocmxfcGVuZGluZ19pbnB1dCB8fCBfcmxfcHVzaGVkX2lucHV0X2F2YWlsYWJsZSAoKSB8fCBSTF9JU1NUQVRFIChSTF9TVEFURV9NQUNST0lOUFVUKSkKIAllb2YgPSByZWFkbGluZV9pbnRlcm5hbF9jaGFyICgpOwogICAgICAgZWxzZQotICAgICAgICBicmVhazsKKwlicmVhazsKICAgICB9CiB9CiAKQEAgLTE0MywxNCArMjI0LDM3IEBACiBybF9jYWxsYmFja19oYW5kbGVyX3JlbW92ZSAoKQogewogICBybF9saW5lZnVuYyA9IE5VTEw7CisgIFJMX1VOU0VUU1RBVEUgKFJMX1NUQVRFX0NBTExCQUNLKTsKICAgaWYgKGluX2hhbmRsZXIpCiAgICAgewogICAgICAgaW5faGFuZGxlciA9IDA7Ci0gICAgICAoKnJsX2RlcHJlcF90ZXJtX2Z1bmN0aW9uKSAoKTsKKyAgICAgIGlmIChybF9kZXByZXBfdGVybV9mdW5jdGlvbikKKwkoKnJsX2RlcHJlcF90ZXJtX2Z1bmN0aW9uKSAoKTsKICNpZiBkZWZpbmVkIChIQU5ETEVfU0lHTkFMUykKICAgICAgIHJsX2NsZWFyX3NpZ25hbHMgKCk7CiAjZW5kaWYKICAgICB9CiB9CiAKK19ybF9jYWxsYmFja19nZW5lcmljX2FyZyAqCitfcmxfY2FsbGJhY2tfZGF0YV9hbGxvYyAoY291bnQpCisgICAgIGludCBjb3VudDsKK3sKKyAgX3JsX2NhbGxiYWNrX2dlbmVyaWNfYXJnICphcmc7CisKKyAgYXJnID0gKF9ybF9jYWxsYmFja19nZW5lcmljX2FyZyAqKXhtYWxsb2MgKHNpemVvZiAoX3JsX2NhbGxiYWNrX2dlbmVyaWNfYXJnKSk7CisgIGFyZy0+Y291bnQgPSBjb3VudDsKKworICBhcmctPmkxID0gYXJnLT5pMiA9IDA7CisKKyAgcmV0dXJuIGFyZzsKK30KKwordm9pZCBfcmxfY2FsbGJhY2tfZGF0YV9kaXNwb3NlIChhcmcpCisgICAgIF9ybF9jYWxsYmFja19nZW5lcmljX2FyZyAqYXJnOworeworICBpZiAoYXJnKQorICAgIGZyZWUgKGFyZyk7Cit9CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvY2hhcmRlZnMuaCBiL3JlYWRsaW5lL2NoYXJkZWZzLmgKaW5kZXggYTUzN2JlMi4uZGVmM2ExMSAxMDA2NDQKLS0tIGEvcmVhZGxpbmUvY2hhcmRlZnMuaAorKysgYi9yZWFkbGluZS9jaGFyZGVmcy5oCkBAIC03NywxMSArNzcsMTcgQEAKICMgIGRlZmluZSBpc3hkaWdpdChjKSAgIChpc2RpZ2l0KChjKSkgfHwgKChjKSA+PSAnYScgJiYgKGMpIDw9ICdmJykgfHwgKChjKSA+PSAnQScgJiYgKGMpIDw9ICdGJykpCiAjZW5kaWYKIAotI2RlZmluZSBOT05fTkVHQVRJVkUoYykJKCh1bnNpZ25lZCBjaGFyKShjKSA9PSAoYykpCisjaWYgZGVmaW5lZCAoQ1RZUEVfTk9OX0FTQ0lJKQorIyAgZGVmaW5lIE5PTl9ORUdBVElWRShjKSAxCisjZWxzZQorIyAgZGVmaW5lIE5PTl9ORUdBVElWRShjKSAoKHVuc2lnbmVkIGNoYXIpKGMpID09IChjKSkKKyNlbmRpZgogCiAvKiBTb21lIHN5c3RlbXMgZGVmaW5lIHRoZXNlOyB3ZSB3YW50IG91ciBkZWZpbml0aW9ucy4gKi8KICN1bmRlZiBJU1BSSU5UCiAKKy8qIEJld2FyZTogIHRoZXNlIG9ubHkgd29yayB3aXRoIHNpbmdsZS1ieXRlIEFTQ0lJIGNoYXJhY3RlcnMuICovCisKICNkZWZpbmUgSVNBTE5VTShjKQkoSU5fQ1RZUEVfRE9NQUlOIChjKSAmJiBpc2FsbnVtIChjKSkKICNkZWZpbmUgSVNBTFBIQShjKQkoSU5fQ1RZUEVfRE9NQUlOIChjKSAmJiBpc2FscGhhIChjKSkKICNkZWZpbmUgSVNESUdJVChjKQkoSU5fQ1RZUEVfRE9NQUlOIChjKSAmJiBpc2RpZ2l0IChjKSkKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2NvbXBsZXRlLmMgYi9yZWFkbGluZS9jb21wbGV0ZS5jCmluZGV4IDIxYTlkNzAuLmQ5M2MxNWEgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL2NvbXBsZXRlLmMKKysrIGIvcmVhZGxpbmUvY29tcGxldGUuYwpAQCAtMSw2ICsxLDYgQEAKIC8qIGNvbXBsZXRlLmMgLS0gZmlsZW5hbWUgY29tcGxldGlvbiBmb3IgcmVhZGxpbmUuICovCiAKLS8qIENvcHlyaWdodCAoQykgMTk4NywgMTk4OSwgMTk5MiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKy8qIENvcHlyaWdodCAoQykgMTk4Ny0yMDA1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIFJlYWRsaW5lIExpYnJhcnksIGEgbGlicmFyeSBmb3IKICAgIHJlYWRpbmcgbGluZXMgb2YgdGV4dCB3aXRoIGludGVyYWN0aXZlIGlucHV0IGFuZCBoaXN0b3J5IGVkaXRpbmcuCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaW5jbHVkZSA8ZmNudGwuaD4KICNpZiBkZWZpbmVkIChIQVZFX1NZU19GSUxFX0gpCi0jaW5jbHVkZSA8c3lzL2ZpbGUuaD4KKyMgIGluY2x1ZGUgPHN5cy9maWxlLmg+CiAjZW5kaWYKIAogI2lmIGRlZmluZWQgKEhBVkVfVU5JU1REX0gpCkBAIC00OCw3ICs0OCw5IEBACiBleHRlcm4gaW50IGVycm5vOwogI2VuZGlmIC8qICFlcnJubyAqLwogCisjaWYgZGVmaW5lZCAoSEFWRV9QV0RfSCkKICNpbmNsdWRlIDxwd2QuaD4KKyNlbmRpZgogCiAjaW5jbHVkZSAicG9zaXhkaXIuaCIKICNpbmNsdWRlICJwb3NpeHN0YXQuaCIKQEAgLTc5LDkgKzgxLDkgQEAKIAogLyogTW9zdCBzeXN0ZW1zIGRvbid0IGRlY2xhcmUgZ2V0cHdlbnQgaW4gPHB3ZC5oPiBpZiBfUE9TSVhfU09VUkNFIGlzCiAgICBkZWZpbmVkLiAqLwotI2lmICFkZWZpbmVkIChIQVZFX0dFVFBXX0RFQ0xTKSB8fCBkZWZpbmVkIChfUE9TSVhfU09VUkNFKQorI2lmIGRlZmluZWQgKEhBVkVfR0VUUFdFTlQpICYmICghZGVmaW5lZCAoSEFWRV9HRVRQV19ERUNMUykgfHwgZGVmaW5lZCAoX1BPU0lYX1NPVVJDRSkpCiBleHRlcm4gc3RydWN0IHBhc3N3ZCAqZ2V0cHdlbnQgUEFSQU1TKCh2b2lkKSk7Ci0jZW5kaWYgLyogIUhBVkVfR0VUUFdfREVDTFMgfHwgX1BPU0lYX1NPVVJDRSAqLworI2VuZGlmIC8qIEhBVkVfR0VUUFdFTlQgJiYgKCFIQVZFX0dFVFBXX0RFQ0xTIHx8IF9QT1NJWF9TT1VSQ0UpICovCiAKIC8qIElmIG5vbi16ZXJvLCB0aGVuIHRoaXMgaXMgdGhlIGFkZHJlc3Mgb2YgYSBmdW5jdGlvbiB0byBjYWxsIHdoZW4KICAgIGNvbXBsZXRpbmcgYSB3b3JkIHdvdWxkIG5vcm1hbGx5IGRpc3BsYXkgdGhlIGxpc3Qgb2YgcG9zc2libGUgbWF0Y2hlcy4KQEAgLTk5LDEyICsxMDEsMTYgQEAKIHN0YXRpYyBpbnQgc3RhdF9jaGFyIFBBUkFNUygoY2hhciAqKSk7CiAjZW5kaWYKIAorc3RhdGljIGludCBwYXRoX2lzZGlyIFBBUkFNUygoY29uc3QgY2hhciAqKSk7CisKIHN0YXRpYyBjaGFyICpybF9xdW90ZV9maWxlbmFtZSBQQVJBTVMoKGNoYXIgKiwgaW50LCBjaGFyICopKTsKIAogc3RhdGljIHZvaWQgc2V0X2NvbXBsZXRpb25fZGVmYXVsdHMgUEFSQU1TKChpbnQpKTsKIHN0YXRpYyBpbnQgZ2V0X3lfb3JfbiBQQVJBTVMoKGludCkpOwogc3RhdGljIGludCBfcmxfaW50ZXJuYWxfcGFnZXIgUEFSQU1TKChpbnQpKTsKIHN0YXRpYyBjaGFyICpwcmludGFibGVfcGFydCBQQVJBTVMoKGNoYXIgKikpOworc3RhdGljIGludCBmbndpZHRoIFBBUkFNUygoY29uc3QgY2hhciAqKSk7CitzdGF0aWMgaW50IGZucHJpbnQgUEFSQU1TKChjb25zdCBjaGFyICopKTsKIHN0YXRpYyBpbnQgcHJpbnRfZmlsZW5hbWUgUEFSQU1TKChjaGFyICosIGNoYXIgKikpOwogCiBzdGF0aWMgY2hhciAqKmdlbl9jb21wbGV0aW9uX21hdGNoZXMgUEFSQU1TKChjaGFyICosIGludCwgaW50LCBybF9jb21wZW50cnlfZnVuY190ICosIGludCwgaW50KSk7CkBAIC0xMzAsNiArMTM2LDEwIEBACiAvKiBJZiBub24temVybywgbm9uLXVuaXF1ZSBjb21wbGV0aW9ucyBhbHdheXMgc2hvdyB0aGUgbGlzdCBvZiBtYXRjaGVzLiAqLwogaW50IF9ybF9jb21wbGV0ZV9zaG93X2FsbCA9IDA7CiAKKy8qIElmIG5vbi16ZXJvLCBub24tdW5pcXVlIGNvbXBsZXRpb25zIHNob3cgdGhlIGxpc3Qgb2YgbWF0Y2hlcywgdW5sZXNzIGl0CisgICBpcyBub3QgcG9zc2libGUgdG8gZG8gcGFydGlhbCBjb21wbGV0aW9uIGFuZCBtb2RpZnkgdGhlIGxpbmUuICovCitpbnQgX3JsX2NvbXBsZXRlX3Nob3dfdW5tb2RpZmllZCA9IDA7CisKIC8qIElmIG5vbi16ZXJvLCBjb21wbGV0ZWQgZGlyZWN0b3J5IG5hbWVzIGhhdmUgYSBzbGFzaCBhcHBlbmRlZC4gKi8KIGludCBfcmxfY29tcGxldGVfbWFya19kaXJlY3RvcmllcyA9IDE7CiAKQEAgLTE5OCw3ICsyMDgsOCBAQAogCiAvKiBVcCB0byB0aGlzIG1hbnkgaXRlbXMgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gcmVzcG9uc2UgdG8gYQogICAgcG9zc2libGUtY29tcGxldGlvbnMgY2FsbC4gIEFmdGVyIHRoYXQsIHdlIGFzayB0aGUgdXNlciBpZgotICAgc2hlIGlzIHN1cmUgc2hlIHdhbnRzIHRvIHNlZSB0aGVtIGFsbC4gKi8KKyAgIHNoZSBpcyBzdXJlIHNoZSB3YW50cyB0byBzZWUgdGhlbSBhbGwuICBBIG5lZ2F0aXZlIHZhbHVlIG1lYW5zCisgICBkb24ndCBhc2suICovCiBpbnQgcmxfY29tcGxldGlvbl9xdWVyeV9pdGVtcyA9IDEwMDsKIAogaW50IF9ybF9wYWdlX2NvbXBsZXRpb25zID0gMTsKQEAgLTIxNCw3ICsyMjUsMTIgQEAKIC8qIFRoZSBsaXN0IG9mIGNoYXJhY3RlcnMgdGhhdCBzaWduYWwgYSBicmVhayBiZXR3ZWVuIHdvcmRzIGZvcgogICAgcmxfY29tcGxldGVfaW50ZXJuYWwuICBUaGUgZGVmYXVsdCBsaXN0IGlzIHRoZSBjb250ZW50cyBvZgogICAgcmxfYmFzaWNfd29yZF9icmVha19jaGFyYWN0ZXJzLiAgKi8KLWNvbnN0IGNoYXIgKnJsX2NvbXBsZXRlcl93b3JkX2JyZWFrX2NoYXJhY3RlcnMgPSAoY29uc3QgY2hhciAqKU5VTEw7CisvKmNvbnN0Ki8gY2hhciAqcmxfY29tcGxldGVyX3dvcmRfYnJlYWtfY2hhcmFjdGVycyA9ICgvKmNvbnN0Ki8gY2hhciAqKU5VTEw7CisKKy8qIEhvb2sgZnVuY3Rpb24gdG8gYWxsb3cgYW4gYXBwbGljYXRpb24gdG8gc2V0IHRoZSBjb21wbGV0aW9uIHdvcmQKKyAgIGJyZWFrIGNoYXJhY3RlcnMgYmVmb3JlIHJlYWRsaW5lIGJyZWFrcyB1cCB0aGUgbGluZS4gIEFsbG93cworICAgcG9zaXRpb24tZGVwZW5kZW50IHdvcmQgYnJlYWsgY2hhcmFjdGVycy4gKi8KK3JsX2NwdmZ1bmNfdCAqcmxfY29tcGxldGlvbl93b3JkX2JyZWFrX2hvb2sgPSAocmxfY3B2ZnVuY190ICopTlVMTDsKIAogLyogTGlzdCBvZiBjaGFyYWN0ZXJzIHdoaWNoIGNhbiBiZSB1c2VkIHRvIHF1b3RlIGEgc3Vic3RyaW5nIG9mIHRoZSBsaW5lLgogICAgQ29tcGxldGlvbiBvY2N1cnMgb24gdGhlIGVudGlyZSBzdWJzdHJpbmcsIGFuZCB3aXRoaW4gdGhlIHN1YnN0cmluZwpAQCAtMjgyLDYgKzI5OCwxOSBAQAogICAgZGVmYXVsdCBpcyBhIHNwYWNlLiAqLwogaW50IHJsX2NvbXBsZXRpb25fYXBwZW5kX2NoYXJhY3RlciA9ICcgJzsKIAorLyogSWYgbm9uLXplcm8sIHRoZSBjb21wbGV0aW9uIGZ1bmN0aW9ucyBkb24ndCBhcHBlbmQgYW55IGNsb3NpbmcgcXVvdGUuCisgICBUaGlzIGlzIHNldCB0byAwIGJ5IHJsX2NvbXBsZXRlX2ludGVybmFsIGFuZCBtYXkgYmUgY2hhbmdlZCBieSBhbgorICAgYXBwbGljYXRpb24tc3BlY2lmaWMgY29tcGxldGlvbiBmdW5jdGlvbi4gKi8KK2ludCBybF9jb21wbGV0aW9uX3N1cHByZXNzX3F1b3RlID0gMDsKKworLyogU2V0IHRvIGFueSBxdW90ZSBjaGFyYWN0ZXIgcmVhZGxpbmUgdGhpbmtzIGl0IGZpbmRzIGJlZm9yZSBhbnkgYXBwbGljYXRpb24KKyAgIGNvbXBsZXRpb24gZnVuY3Rpb24gaXMgY2FsbGVkLiAqLworaW50IHJsX2NvbXBsZXRpb25fcXVvdGVfY2hhcmFjdGVyOworCisvKiBTZXQgdG8gYSBub24temVybyB2YWx1ZSBpZiByZWFkbGluZSBmb3VuZCBxdW90aW5nIGFueXdoZXJlIGluIHRoZSB3b3JkIHRvCisgICBiZSBjb21wbGV0ZWQ7IHNldCBiZWZvcmUgYW55IGFwcGxpY2F0aW9uIGNvbXBsZXRpb24gZnVuY3Rpb24gaXMgY2FsbGVkLiAqLworaW50IHJsX2NvbXBsZXRpb25fZm91bmRfcXVvdGU7CisKIC8qIElmIG5vbi16ZXJvLCBhIHNsYXNoIHdpbGwgYmUgYXBwZW5kZWQgdG8gY29tcGxldGVkIGZpbGVuYW1lcyB0aGF0IGFyZQogICAgc3ltYm9saWMgbGlua3MgdG8gZGlyZWN0b3J5IG5hbWVzLCBzdWJqZWN0IHRvIHRoZSB2YWx1ZSBvZiB0aGUKICAgIG1hcmstZGlyZWN0b3JpZXMgdmFyaWFibGUgKHdoaWNoIGlzIHVzZXItc2V0dGFibGUpLiAgVGhpcyBleGlzdHMgc28KQEAgLTMyMCw2ICszNDksOCBAQAogICAgIHJldHVybiAocmxfY29tcGxldGVfaW50ZXJuYWwgKCc/JykpOwogICBlbHNlIGlmIChfcmxfY29tcGxldGVfc2hvd19hbGwpCiAgICAgcmV0dXJuIChybF9jb21wbGV0ZV9pbnRlcm5hbCAoJyEnKSk7CisgIGVsc2UgaWYgKF9ybF9jb21wbGV0ZV9zaG93X3VubW9kaWZpZWQpCisgICAgcmV0dXJuIChybF9jb21wbGV0ZV9pbnRlcm5hbCAoJ0AnKSk7CiAgIGVsc2UKICAgICByZXR1cm4gKHJsX2NvbXBsZXRlX2ludGVybmFsIChUQUIpKTsKIH0KQEAgLTM1Miw2ICszODMsOCBAQAogICAgIHJldHVybiAnPyc7CiAgIGVsc2UgaWYgKF9ybF9jb21wbGV0ZV9zaG93X2FsbCkKICAgICByZXR1cm4gJyEnOworICBlbHNlIGlmIChfcmxfY29tcGxldGVfc2hvd191bm1vZGlmaWVkKQorICAgIHJldHVybiAnQCc7CiAgIGVsc2UKICAgICByZXR1cm4gVEFCOwogfQpAQCAtMzcyLDcgKzQwNSw3IEBACiAgIHJsX2ZpbGVuYW1lX2NvbXBsZXRpb25fZGVzaXJlZCA9IDA7CiAgIHJsX2ZpbGVuYW1lX3F1b3RpbmdfZGVzaXJlZCA9IDE7CiAgIHJsX2NvbXBsZXRpb25fdHlwZSA9IHdoYXRfdG9fZG87Ci0gIHJsX2NvbXBsZXRpb25fc3VwcHJlc3NfYXBwZW5kID0gMDsKKyAgcmxfY29tcGxldGlvbl9zdXBwcmVzc19hcHBlbmQgPSBybF9jb21wbGV0aW9uX3N1cHByZXNzX3F1b3RlID0gMDsKIAogICAvKiBUaGUgY29tcGxldGlvbiBlbnRyeSBmdW5jdGlvbiBtYXkgb3B0aW9uYWxseSBjaGFuZ2UgdGhpcy4gKi8KICAgcmxfY29tcGxldGlvbl9tYXJrX3N5bWxpbmtfZGlycyA9IF9ybF9jb21wbGV0ZV9tYXJrX3N5bWxpbmtfZGlyczsKQEAgLTQyMyw2ICs0NTYsMTUgQEAKICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGljIGludAorcGF0aF9pc2RpciAoZmlsZW5hbWUpCisgICAgIGNvbnN0IGNoYXIgKmZpbGVuYW1lOworeworICBzdHJ1Y3Qgc3RhdCBmaW5mbzsKKworICByZXR1cm4gKHN0YXQgKGZpbGVuYW1lLCAmZmluZm8pID09IDAgJiYgU19JU0RJUiAoZmluZm8uc3RfbW9kZSkpOworfQorCiAjaWYgZGVmaW5lZCAoVklTSUJMRV9TVEFUUykKIC8qIFJldHVybiB0aGUgY2hhcmFjdGVyIHdoaWNoIGJlc3QgZGVzY3JpYmVzIEZJTEVOQU1FLgogICAgICBgQCcgZm9yIHN5bWJvbGljIGxpbmtzCkBAIC01MjAsNTMgKzU2MiwxNDkgQEAKICAgICByZXR1cm4gKyt0ZW1wOwogfQogCisvKiBDb21wdXRlIHdpZHRoIG9mIFNUUklORyB3aGVuIGRpc3BsYXllZCBvbiBzY3JlZW4gYnkgcHJpbnRfZmlsZW5hbWUgKi8KK3N0YXRpYyBpbnQKK2Zud2lkdGggKHN0cmluZykKKyAgICAgY29uc3QgY2hhciAqc3RyaW5nOworeworICBpbnQgd2lkdGgsIHBvczsKKyNpZiBkZWZpbmVkIChIQU5ETEVfTVVMVElCWVRFKQorICBtYnN0YXRlX3QgcHM7CisgIGludCBsZWZ0LCB3OworICBzaXplX3QgY2xlbjsKKyAgd2NoYXJfdCB3YzsKKworICBsZWZ0ID0gc3RybGVuIChzdHJpbmcpICsgMTsKKyAgbWVtc2V0ICgmcHMsIDAsIHNpemVvZiAobWJzdGF0ZV90KSk7CisjZW5kaWYKKworICB3aWR0aCA9IHBvcyA9IDA7CisgIHdoaWxlIChzdHJpbmdbcG9zXSkKKyAgICB7CisgICAgICBpZiAoQ1RSTF9DSEFSICgqc3RyaW5nKSB8fCAqc3RyaW5nID09IFJVQk9VVCkKKwl7CisJICB3aWR0aCArPSAyOworCSAgcG9zKys7CisJfQorICAgICAgZWxzZQorCXsKKyNpZiBkZWZpbmVkIChIQU5ETEVfTVVMVElCWVRFKQorCSAgY2xlbiA9IG1icnRvd2MgKCZ3Yywgc3RyaW5nICsgcG9zLCBsZWZ0IC0gcG9zLCAmcHMpOworCSAgaWYgKE1CX0lOVkFMSURDSCAoY2xlbikpCisJICAgIHsKKwkgICAgICB3aWR0aCsrOworCSAgICAgIHBvcysrOworCSAgICAgIG1lbXNldCAoJnBzLCAwLCBzaXplb2YgKG1ic3RhdGVfdCkpOworCSAgICB9CisJICBlbHNlIGlmIChNQl9OVUxMV0NIIChjbGVuKSkKKwkgICAgYnJlYWs7CisJICBlbHNlCisJICAgIHsKKwkgICAgICBwb3MgKz0gY2xlbjsKKwkgICAgICB3ID0gd2N3aWR0aCAod2MpOworCSAgICAgIHdpZHRoICs9ICh3ID49IDApID8gdyA6IDE7CisJICAgIH0KKyNlbHNlCisJICB3aWR0aCsrOworCSAgcG9zKys7CisjZW5kaWYKKwl9CisgICAgfQorCisgIHJldHVybiB3aWR0aDsKK30KKworc3RhdGljIGludAorZm5wcmludCAodG9fcHJpbnQpCisgICAgIGNvbnN0IGNoYXIgKnRvX3ByaW50OworeworICBpbnQgcHJpbnRlZF9sZW47CisgIGNvbnN0IGNoYXIgKnM7CisjaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKKyAgbWJzdGF0ZV90IHBzOworICBjb25zdCBjaGFyICplbmQ7CisgIHNpemVfdCB0bGVuOworICBpbnQgd2lkdGgsIHc7CisgIHdjaGFyX3Qgd2M7CisKKyAgZW5kID0gdG9fcHJpbnQgKyBzdHJsZW4gKHRvX3ByaW50KSArIDE7CisgIG1lbXNldCAoJnBzLCAwLCBzaXplb2YgKG1ic3RhdGVfdCkpOworI2VuZGlmCisKKyAgcHJpbnRlZF9sZW4gPSAwOworICBzID0gdG9fcHJpbnQ7CisgIHdoaWxlICgqcykKKyAgICB7CisgICAgICBpZiAoQ1RSTF9DSEFSICgqcykpCisgICAgICAgIHsKKyAgICAgICAgICBwdXRjICgnXicsIHJsX291dHN0cmVhbSk7CisgICAgICAgICAgcHV0YyAoVU5DVFJMICgqcyksIHJsX291dHN0cmVhbSk7CisgICAgICAgICAgcHJpbnRlZF9sZW4gKz0gMjsKKyAgICAgICAgICBzKys7CisjaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKKwkgIG1lbXNldCAoJnBzLCAwLCBzaXplb2YgKG1ic3RhdGVfdCkpOworI2VuZGlmCisgICAgICAgIH0KKyAgICAgIGVsc2UgaWYgKCpzID09IFJVQk9VVCkKKwl7CisJICBwdXRjICgnXicsIHJsX291dHN0cmVhbSk7CisJICBwdXRjICgnPycsIHJsX291dHN0cmVhbSk7CisJICBwcmludGVkX2xlbiArPSAyOworCSAgcysrOworI2lmIGRlZmluZWQgKEhBTkRMRV9NVUxUSUJZVEUpCisJICBtZW1zZXQgKCZwcywgMCwgc2l6ZW9mIChtYnN0YXRlX3QpKTsKKyNlbmRpZgorCX0KKyAgICAgIGVsc2UKKwl7CisjaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKKwkgIHRsZW4gPSBtYnJ0b3djICgmd2MsIHMsIGVuZCAtIHMsICZwcyk7CisJICBpZiAoTUJfSU5WQUxJRENIICh0bGVuKSkKKwkgICAgeworCSAgICAgIHRsZW4gPSAxOworCSAgICAgIHdpZHRoID0gMTsKKwkgICAgICBtZW1zZXQgKCZwcywgMCwgc2l6ZW9mIChtYnN0YXRlX3QpKTsKKwkgICAgfQorCSAgZWxzZSBpZiAoTUJfTlVMTFdDSCAodGxlbikpCisJICAgIGJyZWFrOworCSAgZWxzZQorCSAgICB7CisJICAgICAgdyA9IHdjd2lkdGggKHdjKTsKKwkgICAgICB3aWR0aCA9ICh3ID49IDApID8gdyA6IDE7CisJICAgIH0KKwkgIGZ3cml0ZSAocywgMSwgdGxlbiwgcmxfb3V0c3RyZWFtKTsKKwkgIHMgKz0gdGxlbjsKKwkgIHByaW50ZWRfbGVuICs9IHdpZHRoOworI2Vsc2UKKwkgIHB1dGMgKCpzLCBybF9vdXRzdHJlYW0pOworCSAgcysrOworCSAgcHJpbnRlZF9sZW4rKzsKKyNlbmRpZgorCX0KKyAgICB9CisKKyAgcmV0dXJuIHByaW50ZWRfbGVuOworfQorCiAvKiBPdXRwdXQgVE9fUFJJTlQgdG8gcmxfb3V0c3RyZWFtLiAgSWYgVklTSUJMRV9TVEFUUyBpcyBkZWZpbmVkIGFuZCB3ZQogICAgYXJlIHVzaW5nIGl0LCBjaGVjayBmb3IgYW5kIG91dHB1dCBhIHNpbmdsZSBjaGFyYWN0ZXIgZm9yIGBzcGVjaWFsJwogICAgZmlsZW5hbWVzLiAgUmV0dXJuIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB3ZSBvdXRwdXQuICovCiAKLSNkZWZpbmUgUFVUWChjKSBcCi0gICAgZG8geyBcCi0gICAgICBpZiAoQ1RSTF9DSEFSIChjKSkgXAotICAgICAgICB7IFwKLSAgICAgICAgICBwdXRjICgnXicsIHJsX291dHN0cmVhbSk7IFwKLSAgICAgICAgICBwdXRjIChVTkNUUkwgKGMpLCBybF9vdXRzdHJlYW0pOyBcCi0gICAgICAgICAgcHJpbnRlZF9sZW4gKz0gMjsgXAotICAgICAgICB9IFwKLSAgICAgIGVsc2UgaWYgKGMgPT0gUlVCT1VUKSBcCi0JeyBcCi0JICBwdXRjICgnXicsIHJsX291dHN0cmVhbSk7IFwKLQkgIHB1dGMgKCc/Jywgcmxfb3V0c3RyZWFtKTsgXAotCSAgcHJpbnRlZF9sZW4gKz0gMjsgXAotCX0gXAotICAgICAgZWxzZSBcCi0JeyBcCi0JICBwdXRjIChjLCBybF9vdXRzdHJlYW0pOyBcCi0JICBwcmludGVkX2xlbisrOyBcCi0JfSBcCi0gICAgfSB3aGlsZSAoMCkKLQogc3RhdGljIGludAogcHJpbnRfZmlsZW5hbWUgKHRvX3ByaW50LCBmdWxsX3BhdGhuYW1lKQogICAgICBjaGFyICp0b19wcmludCwgKmZ1bGxfcGF0aG5hbWU7CiB7Ci0gIGludCBwcmludGVkX2xlbiA9IDA7Ci0jaWYgIWRlZmluZWQgKFZJU0lCTEVfU1RBVFMpCi0gIGNoYXIgKnM7CisgIGludCBwcmludGVkX2xlbiwgZXh0ZW5zaW9uX2NoYXIsIHNsZW4sIHRsZW47CisgIGNoYXIgKnMsIGMsICpuZXdfZnVsbF9wYXRobmFtZSwgKmRuOwogCi0gIGZvciAocyA9IHRvX3ByaW50OyAqczsgcysrKQotICAgIHsKLSAgICAgIFBVVFggKCpzKTsKLSAgICB9Ci0jZWxzZSAgCi0gIGNoYXIgKnMsIGMsICpuZXdfZnVsbF9wYXRobmFtZTsKLSAgaW50IGV4dGVuc2lvbl9jaGFyLCBzbGVuLCB0bGVuOworICBleHRlbnNpb25fY2hhciA9IDA7CisgIHByaW50ZWRfbGVuID0gZm5wcmludCAodG9fcHJpbnQpOwogCi0gIGZvciAocyA9IHRvX3ByaW50OyAqczsgcysrKQotICAgIHsKLSAgICAgIFBVVFggKCpzKTsKLSAgICB9Ci0KLSBpZiAocmxfZmlsZW5hbWVfY29tcGxldGlvbl9kZXNpcmVkICYmIHJsX3Zpc2libGVfc3RhdHMpCisjaWYgZGVmaW5lZCAoVklTSUJMRV9TVEFUUykKKyBpZiAocmxfZmlsZW5hbWVfY29tcGxldGlvbl9kZXNpcmVkICYmIChybF92aXNpYmxlX3N0YXRzIHx8IF9ybF9jb21wbGV0ZV9tYXJrX2RpcmVjdG9yaWVzKSkKKyNlbHNlCisgaWYgKHJsX2ZpbGVuYW1lX2NvbXBsZXRpb25fZGVzaXJlZCAmJiBfcmxfY29tcGxldGVfbWFya19kaXJlY3RvcmllcykKKyNlbmRpZgogICAgIHsKICAgICAgIC8qIElmIHRvX3ByaW50ICE9IGZ1bGxfcGF0aG5hbWUsIHRvX3ByaW50IGlzIHRoZSBiYXNlbmFtZSBvZiB0aGUKIAkgcGF0aCBwYXNzZWQuICBJbiB0aGlzIGNhc2UsIHdlIHRyeSB0byBleHBhbmQgdGhlIGRpcmVjdG9yeQpAQCAtNTgyLDcgKzcyMCwxNyBAQAogCSAgICAgZmlsZXMgaW4gdGhlIHJvb3QgZGlyZWN0b3J5LiAgSWYgd2UgcGFzcyBhIG51bGwgc3RyaW5nIHRvIHRoZQogCSAgICAgYmFzaCBkaXJlY3RvcnkgY29tcGxldGlvbiBob29rLCBmb3IgZXhhbXBsZSwgaXQgd2lsbCBleHBhbmQgaXQKIAkgICAgIHRvIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4gIFdlIGp1c3Qgd2FudCB0aGUgYC8nLiAqLwotCSAgcyA9IHRpbGRlX2V4cGFuZCAoZnVsbF9wYXRobmFtZSAmJiAqZnVsbF9wYXRobmFtZSA/IGZ1bGxfcGF0aG5hbWUgOiAiLyIpOworCSAgaWYgKGZ1bGxfcGF0aG5hbWUgPT0gMCB8fCAqZnVsbF9wYXRobmFtZSA9PSAwKQorCSAgICBkbiA9ICIvIjsKKwkgIGVsc2UgaWYgKGZ1bGxfcGF0aG5hbWVbMF0gIT0gJy8nKQorCSAgICBkbiA9IGZ1bGxfcGF0aG5hbWU7CisJICBlbHNlIGlmIChmdWxsX3BhdGhuYW1lWzFdID09IDApCisJICAgIGRuID0gIi8vIjsJCS8qIHJlc3RvcmUgdHJhaWxpbmcgc2xhc2ggdG8gYC8vJyAqLworCSAgZWxzZSBpZiAoZnVsbF9wYXRobmFtZVsxXSA9PSAnLycgJiYgZnVsbF9wYXRobmFtZVsyXSA9PSAwKQorCSAgICBkbiA9ICIvIjsJCS8qIGRvbid0IHR1cm4gLy8vIGludG8gLy8gKi8KKwkgIGVsc2UKKwkgICAgZG4gPSBmdWxsX3BhdGhuYW1lOworCSAgcyA9IHRpbGRlX2V4cGFuZCAoZG4pOwogCSAgaWYgKHJsX2RpcmVjdG9yeV9jb21wbGV0aW9uX2hvb2spCiAJICAgICgqcmxfZGlyZWN0b3J5X2NvbXBsZXRpb25faG9vaykgKCZzKTsKIApAQCAtNTkwLDEwICs3MzgsMjAgQEAKIAkgIHRsZW4gPSBzdHJsZW4gKHRvX3ByaW50KTsKIAkgIG5ld19mdWxsX3BhdGhuYW1lID0gKGNoYXIgKil4bWFsbG9jIChzbGVuICsgdGxlbiArIDIpOwogCSAgc3RyY3B5IChuZXdfZnVsbF9wYXRobmFtZSwgcyk7CisJICBpZiAoc1tzbGVuIC0gMV0gPT0gJy8nKQorCSAgICBzbGVuLS07CisJICBlbHNlCisJICAgIG5ld19mdWxsX3BhdGhuYW1lW3NsZW5dID0gJy8nOwogCSAgbmV3X2Z1bGxfcGF0aG5hbWVbc2xlbl0gPSAnLyc7CiAJICBzdHJjcHkgKG5ld19mdWxsX3BhdGhuYW1lICsgc2xlbiArIDEsIHRvX3ByaW50KTsKIAotCSAgZXh0ZW5zaW9uX2NoYXIgPSBzdGF0X2NoYXIgKG5ld19mdWxsX3BhdGhuYW1lKTsKKyNpZiBkZWZpbmVkIChWSVNJQkxFX1NUQVRTKQorCSAgaWYgKHJsX3Zpc2libGVfc3RhdHMpCisJICAgIGV4dGVuc2lvbl9jaGFyID0gc3RhdF9jaGFyIChuZXdfZnVsbF9wYXRobmFtZSk7CisJICBlbHNlCisjZW5kaWYKKwkgIGlmIChwYXRoX2lzZGlyIChuZXdfZnVsbF9wYXRobmFtZSkpCisJICAgIGV4dGVuc2lvbl9jaGFyID0gJy8nOwogCiAJICBmcmVlIChuZXdfZnVsbF9wYXRobmFtZSk7CiAJICB0b19wcmludFstMV0gPSBjOwpAQCAtNjAxLDcgKzc1OSwxMyBAQAogICAgICAgZWxzZQogCXsKIAkgIHMgPSB0aWxkZV9leHBhbmQgKGZ1bGxfcGF0aG5hbWUpOwotCSAgZXh0ZW5zaW9uX2NoYXIgPSBzdGF0X2NoYXIgKHMpOworI2lmIGRlZmluZWQgKFZJU0lCTEVfU1RBVFMpCisJICBpZiAocmxfdmlzaWJsZV9zdGF0cykKKwkgICAgZXh0ZW5zaW9uX2NoYXIgPSBzdGF0X2NoYXIgKHMpOworCSAgZWxzZQorI2VuZGlmCisJICAgIGlmIChwYXRoX2lzZGlyIChzKSkKKwkgICAgICBleHRlbnNpb25fY2hhciA9ICcvJzsKIAl9CiAKICAgICAgIGZyZWUgKHMpOwpAQCAtNjExLDcgKzc3NSw3IEBACiAJICBwcmludGVkX2xlbisrOwogCX0KICAgICB9Ci0jZW5kaWYgLyogVklTSUJMRV9TVEFUUyAqLworCiAgIHJldHVybiBwcmludGVkX2xlbjsKIH0KIApAQCAtNjUxLDE5ICs4MTUsMjUgQEAKICAgICAgaW50ICpmcCwgKmRwOwogewogICBpbnQgc2NhbiwgZW5kLCBmb3VuZF9xdW90ZSwgZGVsaW1pdGVyLCBwYXNzX25leHQsIGlzYnJrOwotICBjaGFyIHF1b3RlX2NoYXI7CisgIGNoYXIgcXVvdGVfY2hhciwgKmJya2NoYXJzOwogCiAgIGVuZCA9IHJsX3BvaW50OwogICBmb3VuZF9xdW90ZSA9IGRlbGltaXRlciA9IDA7CiAgIHF1b3RlX2NoYXIgPSAnXDAnOwogCisgIGJya2NoYXJzID0gMDsKKyAgaWYgKHJsX2NvbXBsZXRpb25fd29yZF9icmVha19ob29rKQorICAgIGJya2NoYXJzID0gKCpybF9jb21wbGV0aW9uX3dvcmRfYnJlYWtfaG9vaykgKCk7CisgIGlmIChicmtjaGFycyA9PSAwKQorICAgIGJya2NoYXJzID0gcmxfY29tcGxldGVyX3dvcmRfYnJlYWtfY2hhcmFjdGVyczsKKwogICBpZiAocmxfY29tcGxldGVyX3F1b3RlX2NoYXJhY3RlcnMpCiAgICAgewogICAgICAgLyogV2UgaGF2ZSBhIGxpc3Qgb2YgY2hhcmFjdGVycyB3aGljaCBjYW4gYmUgdXNlZCBpbiBwYWlycyB0bwogCSBxdW90ZSBzdWJzdHJpbmdzIGZvciB0aGUgY29tcGxldGVyLiAgVHJ5IHRvIGZpbmQgdGhlIHN0YXJ0CiAJIG9mIGFuIHVuY2xvc2VkIHF1b3RlZCBzdWJzdHJpbmcuICovCiAgICAgICAvKiBGT1VORF9RVU9URSBpcyBzZXQgc28gd2Uga25vdyB3aGF0IGtpbmQgb2YgcXVvdGVzIHdlIGZvdW5kLiAqLwotICAgICAgZm9yIChzY2FuID0gcGFzc19uZXh0ID0gMDsgc2NhbiA8IGVuZDsgc2NhbisrKQorICAgICAgZm9yIChzY2FuID0gcGFzc19uZXh0ID0gMDsgc2NhbiA8IGVuZDsgc2NhbiA9IE1CX05FWFRDSEFSIChybF9saW5lX2J1ZmZlciwgc2NhbiwgMSwgTUJfRklORF9BTlkpKQogCXsKIAkgIGlmIChwYXNzX25leHQpCiAJICAgIHsKQEAgLTcxMywxNSArODgzLDExIEBACiAgICAgICAvKiBXZSBkaWRuJ3QgZmluZCBhbiB1bmNsb3NlZCBxdW90ZWQgc3Vic3RyaW5nIHVwb24gd2hpY2ggdG8gZG8KICAgICAgICAgIGNvbXBsZXRpb24sIHNvIHVzZSB0aGUgd29yZCBicmVhayBjaGFyYWN0ZXJzIHRvIGZpbmQgdGhlCiAgICAgICAgICBzdWJzdHJpbmcgb24gd2hpY2ggdG8gY29tcGxldGUuICovCi0jaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKLSAgICAgIHdoaWxlIChybF9wb2ludCA9IF9ybF9maW5kX3ByZXZfbWJjaGFyIChybF9saW5lX2J1ZmZlciwgcmxfcG9pbnQsIE1CX0ZJTkRfQU5ZKSkKLSNlbHNlCi0gICAgICB3aGlsZSAoLS1ybF9wb2ludCkKLSNlbmRpZgorICAgICAgd2hpbGUgKHJsX3BvaW50ID0gTUJfUFJFVkNIQVIgKHJsX2xpbmVfYnVmZmVyLCBybF9wb2ludCwgTUJfRklORF9BTlkpKQogCXsKIAkgIHNjYW4gPSBybF9saW5lX2J1ZmZlcltybF9wb2ludF07CiAKLQkgIGlmIChzdHJjaHIgKHJsX2NvbXBsZXRlcl93b3JkX2JyZWFrX2NoYXJhY3RlcnMsIHNjYW4pID09IDApCisJICBpZiAoc3RyY2hyIChicmtjaGFycywgc2NhbikgPT0gMCkKIAkgICAgY29udGludWU7CiAKIAkgIC8qIENhbGwgdGhlIGFwcGxpY2F0aW9uLXNwZWNpZmljIGZ1bmN0aW9uIHRvIHRlbGwgdXMgd2hldGhlcgpAQCAtNzQ5LDkgKzkxNSw5IEBACiAgICAgICBpZiAocmxfY2hhcl9pc19xdW90ZWRfcCkKIAlpc2JyayA9IChmb3VuZF9xdW90ZSA9PSAwIHx8CiAJCSgqcmxfY2hhcl9pc19xdW90ZWRfcCkgKHJsX2xpbmVfYnVmZmVyLCBybF9wb2ludCkgPT0gMCkgJiYKLQkJc3RyY2hyIChybF9jb21wbGV0ZXJfd29yZF9icmVha19jaGFyYWN0ZXJzLCBzY2FuKSAhPSAwOworCQlzdHJjaHIgKGJya2NoYXJzLCBzY2FuKSAhPSAwOwogICAgICAgZWxzZQotCWlzYnJrID0gc3RyY2hyIChybF9jb21wbGV0ZXJfd29yZF9icmVha19jaGFyYWN0ZXJzLCBzY2FuKSAhPSAwOworCWlzYnJrID0gc3RyY2hyIChicmtjaGFycywgc2NhbikgIT0gMDsKIAogICAgICAgaWYgKGlzYnJrKQogCXsKQEAgLTc4Niw2ICs5NTIsOSBAQAogewogICBjaGFyICoqbWF0Y2hlcywgKnRlbXA7CiAKKyAgcmxfY29tcGxldGlvbl9mb3VuZF9xdW90ZSA9IGZvdW5kX3F1b3RlOworICBybF9jb21wbGV0aW9uX3F1b3RlX2NoYXJhY3RlciA9IHF1b3RlX2NoYXI7CisKICAgLyogSWYgdGhlIHVzZXIgd2FudHMgdG8gVFJZIHRvIGNvbXBsZXRlLCBidXQgdGhlbiB3YW50cyB0byBnaXZlCiAgICAgIHVwIGFuZCB1c2UgdGhlIGRlZmF1bHQgY29tcGxldGlvbiBmdW5jdGlvbiwgdGhleSBzZXQgdGhlCiAgICAgIHZhcmlhYmxlIHJsX2F0dGVtcHRlZF9jb21wbGV0aW9uX2Z1bmN0aW9uLiAqLwpAQCAtODg5LDYgKzEwNTgsNyBAQAogewogICByZWdpc3RlciBpbnQgaSwgYzEsIGMyLCBzaTsKICAgaW50IGxvdzsJCS8qIENvdW50IG9mIG1heC1tYXRjaGVkIGNoYXJhY3RlcnMuICovCisgIGNoYXIgKmR0ZXh0OwkJLyogZGVxdW90ZWQgVEVYVCwgaWYgbmVlZGVkICovCiAjaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKICAgaW50IHY7CiAgIG1ic3RhdGVfdCBwczEsIHBzMjsKQEAgLTk4MCw2ICsxMTUwLDI2IEBACiAJIHRoZSB1c2VyIHR5cGVkIGluIHRoZSBmYWNlIG9mIG11bHRpcGxlIG1hdGNoZXMgZGlmZmVyaW5nIGluIGNhc2UuICovCiAgICAgICBpZiAoX3JsX2NvbXBsZXRpb25fY2FzZV9mb2xkKQogCXsKKwkgIC8qIFdlJ3JlIG1ha2luZyBhbiBhc3N1bXB0aW9uIGhlcmU6CisJCUlGIHdlJ3JlIGNvbXBsZXRpbmcgZmlsZW5hbWVzIEFORAorCQkgICB0aGUgYXBwbGljYXRpb24gaGFzIGRlZmluZWQgYSBmaWxlbmFtZSBkZXF1b3RpbmcgZnVuY3Rpb24gQU5ECisJCSAgIHdlIGZvdW5kIGEgcXVvdGUgY2hhcmFjdGVyIEFORAorCQkgICB0aGUgYXBwbGljYXRpb24gaGFzIHJlcXVlc3RlZCBmaWxlbmFtZSBxdW90aW5nCisJCVRIRU4KKwkJICAgd2UgYXNzdW1lIHRoYXQgVEVYVCB3YXMgZGVxdW90ZWQgYmVmb3JlIGNoZWNraW5nIGFnYWluc3QKKwkJICAgdGhlIGZpbGUgc3lzdGVtIGFuZCBuZWVkcyB0byBiZSBkZXF1b3RlZCBoZXJlIGJlZm9yZSB3ZQorCQkgICBjaGVjayBhZ2FpbnN0IHRoZSBsaXN0IG9mIG1hdGNoZXMKKwkJRkkgKi8KKwkgIGR0ZXh0ID0gKGNoYXIgKilOVUxMOworCSAgaWYgKHJsX2ZpbGVuYW1lX2NvbXBsZXRpb25fZGVzaXJlZCAmJgorCSAgICAgIHJsX2ZpbGVuYW1lX2RlcXVvdGluZ19mdW5jdGlvbiAmJgorCSAgICAgIHJsX2NvbXBsZXRpb25fZm91bmRfcXVvdGUgJiYKKwkgICAgICBybF9maWxlbmFtZV9xdW90aW5nX2Rlc2lyZWQpCisJICAgIHsKKwkgICAgICBkdGV4dCA9ICgqcmxfZmlsZW5hbWVfZGVxdW90aW5nX2Z1bmN0aW9uKSAoKGNoYXIgKil0ZXh0LCBybF9jb21wbGV0aW9uX3F1b3RlX2NoYXJhY3Rlcik7CisJICAgICAgdGV4dCA9IGR0ZXh0OworCSAgICB9CisKIAkgIC8qIHNvcnQgdGhlIGxpc3QgdG8gZ2V0IGNvbnNpc3RlbnQgYW5zd2Vycy4gKi8KIAkgIHFzb3J0IChtYXRjaF9saXN0KzEsIG1hdGNoZXMsIHNpemVvZihjaGFyICopLCAoUVNGVU5DICopX3JsX3Fzb3J0X3N0cmluZ19jb21wYXJlKTsKIApAQCAtOTk5LDYgKzExODksOCBAQAogCSAgZWxzZQogCSAgICAvKiBvdGhlcndpc2UsIGp1c3QgdXNlIHRoZSB0ZXh0IHRoZSB1c2VyIHR5cGVkLiAqLwogCSAgICBzdHJuY3B5IChtYXRjaF9saXN0WzBdLCB0ZXh0LCBsb3cpOworCisJICBGUkVFIChkdGV4dCk7CiAJfQogICAgICAgZWxzZQogICAgICAgICBzdHJuY3B5IChtYXRjaF9saXN0WzBdLCBtYXRjaF9saXN0WzFdLCBsb3cpOwpAQCAtMTIwMyw3ICsxMzk1LDcgQEAKICAgZm9yIChtYXggPSAwLCBpID0gMTsgbWF0Y2hlc1tpXTsgaSsrKQogICAgIHsKICAgICAgIHRlbXAgPSBwcmludGFibGVfcGFydCAobWF0Y2hlc1tpXSk7Ci0gICAgICBsZW4gPSBzdHJsZW4gKHRlbXApOworICAgICAgbGVuID0gZm53aWR0aCAodGVtcCk7CiAKICAgICAgIGlmIChsZW4gPiBtYXgpCiAJbWF4ID0gbGVuOwpAQCAtMTIyMCw3ICsxNDEyLDcgQEAKIAkKICAgLyogSWYgdGhlcmUgYXJlIG1hbnkgaXRlbXMsIHRoZW4gYXNrIHRoZSB1c2VyIGlmIHNoZSByZWFsbHkgd2FudHMgdG8KICAgICAgc2VlIHRoZW0gYWxsLiAqLwotICBpZiAobGVuID49IHJsX2NvbXBsZXRpb25fcXVlcnlfaXRlbXMpCisgIGlmIChybF9jb21wbGV0aW9uX3F1ZXJ5X2l0ZW1zID4gMCAmJiBsZW4gPj0gcmxfY29tcGxldGlvbl9xdWVyeV9pdGVtcykKICAgICB7CiAgICAgICBybF9jcmxmICgpOwogICAgICAgZnByaW50ZiAocmxfb3V0c3RyZWFtLCAiRGlzcGxheSBhbGwgJWQgcG9zc2liaWxpdGllcz8gKHkgb3IgbikiLCBsZW4pOwpAQCAtMTMzOCw3ICsxNTMwLDggQEAKICAgc3RydWN0IHN0YXQgZmluZm87CiAKICAgdGVtcF9zdHJpbmdfaW5kZXggPSAwOwotICBpZiAocXVvdGVfY2hhciAmJiBybF9wb2ludCAmJiBybF9saW5lX2J1ZmZlcltybF9wb2ludCAtIDFdICE9IHF1b3RlX2NoYXIpCisgIGlmIChxdW90ZV9jaGFyICYmIHJsX3BvaW50ICYmIHJsX2NvbXBsZXRpb25fc3VwcHJlc3NfcXVvdGUgPT0gMCAmJgorICAgICAgcmxfbGluZV9idWZmZXJbcmxfcG9pbnQgLSAxXSAhPSBxdW90ZV9jaGFyKQogICAgIHRlbXBfc3RyaW5nW3RlbXBfc3RyaW5nX2luZGV4KytdID0gcXVvdGVfY2hhcjsKIAogICBpZiAoZGVsaW1pdGVyKQpAQCAtMTM1Niw3ICsxNTQ5LDcgQEAKIAkJOiBzdGF0IChmaWxlbmFtZSwgJmZpbmZvKTsKICAgICAgIGlmIChzID09IDAgJiYgU19JU0RJUiAoZmluZm8uc3RfbW9kZSkpCiAJewotCSAgaWYgKF9ybF9jb21wbGV0ZV9tYXJrX2RpcmVjdG9yaWVzKQorCSAgaWYgKF9ybF9jb21wbGV0ZV9tYXJrX2RpcmVjdG9yaWVzIC8qICYmIHJsX2NvbXBsZXRpb25fc3VwcHJlc3NfYXBwZW5kID09IDAgKi8pCiAJICAgIHsKIAkgICAgICAvKiBUaGlzIGlzIGNsdW1zeS4gIEF2b2lkIHB1dHRpbmcgaW4gYSBkb3VibGUgc2xhc2ggaWYgcG9pbnQKIAkJIGlzIGF0IHRoZSBlbmQgb2YgdGhlIGxpbmUgYW5kIHRoZSBwcmV2aW91cyBjaGFyYWN0ZXIgaXMgYQpAQCAtMTQ0OSw3ICsxNjQyLDkgQEAKICAgIFRBQiBtZWFucyBkbyBzdGFuZGFyZCBjb21wbGV0aW9uLgogICAgYConIG1lYW5zIGluc2VydCBhbGwgb2YgdGhlIHBvc3NpYmxlIGNvbXBsZXRpb25zLgogICAgYCEnIG1lYW5zIHRvIGRvIHN0YW5kYXJkIGNvbXBsZXRpb24sIGFuZCBsaXN0IGFsbCBwb3NzaWJsZSBjb21wbGV0aW9ucyBpZgotICAgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZS4gKi8KKyAgIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUuCisgICBgQCcgbWVhbnMgdG8gZG8gc3RhbmRhcmQgY29tcGxldGlvbiwgYW5kIGxpc3QgYWxsIHBvc3NpYmxlIGNvbXBsZXRpb25zIGlmCisgICB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIGFuZCBwYXJ0aWFsIGNvbXBsZXRpb24gaXMgbm90IHBvc3NpYmxlLiAqLwogaW50CiBybF9jb21wbGV0ZV9pbnRlcm5hbCAod2hhdF90b19kbykKICAgICAgaW50IHdoYXRfdG9fZG87CkBAIC0xNDY4LDcgKzE2NjMsNiBAQAogICBvdXJfZnVuYyA9IHJsX2NvbXBsZXRpb25fZW50cnlfZnVuY3Rpb24KIAkJPyBybF9jb21wbGV0aW9uX2VudHJ5X2Z1bmN0aW9uCiAJCTogcmxfZmlsZW5hbWVfY29tcGxldGlvbl9mdW5jdGlvbjsKLQogICAvKiBXZSBub3cgbG9vayBiYWNrd2FyZHMgZm9yIHRoZSBzdGFydCBvZiBhIGZpbGVuYW1lL3ZhcmlhYmxlIHdvcmQuICovCiAgIGVuZCA9IHJsX3BvaW50OwogICBmb3VuZF9xdW90ZSA9IGRlbGltaXRlciA9IDA7CkBAIC0xNTE2LDYgKzE3MTAsNyBAQAogICAgIHsKICAgICBjYXNlIFRBQjoKICAgICBjYXNlICchJzoKKyAgICBjYXNlICdAJzoKICAgICAgIC8qIEluc2VydCB0aGUgZmlyc3QgbWF0Y2ggd2l0aCBwcm9wZXIgcXVvdGluZy4gKi8KICAgICAgIGlmICgqbWF0Y2hlc1swXSkKIAlpbnNlcnRfbWF0Y2ggKG1hdGNoZXNbMF0sIHN0YXJ0LCBtYXRjaGVzWzFdID8gTVVMVF9NQVRDSCA6IFNJTkdMRV9NQVRDSCwgJnF1b3RlX2NoYXIpOwpAQCAtMTUzNSw2ICsxNzMwLDEyIEBACiAJICAgICAgZGlzcGxheV9tYXRjaGVzIChtYXRjaGVzKTsKIAkgICAgICBicmVhazsKIAkgICAgfQorCSAgZWxzZSBpZiAod2hhdF90b19kbyA9PSAnQCcpCisJICAgIHsKKwkgICAgICBpZiAobm9udHJpdmlhbF9sY2QgPT0gMCkKKwkJZGlzcGxheV9tYXRjaGVzIChtYXRjaGVzKTsKKwkgICAgICBicmVhazsKKwkgICAgfQogCSAgZWxzZSBpZiAocmxfZWRpdGluZ19tb2RlICE9IHZpX21vZGUpCiAJICAgIHJsX2RpbmcgKCk7CS8qIFRoZXJlIGFyZSBvdGhlciBtYXRjaGVzIHJlbWFpbmluZy4gKi8KIAl9CkBAIC0xNjYyLDE2ICsxODYzLDIwIEBACiAgICAgICBzZXRwd2VudCAoKTsKICAgICB9CiAKKyNpZiBkZWZpbmVkIChIQVZFX0dFVFBXRU5UKQogICB3aGlsZSAoZW50cnkgPSBnZXRwd2VudCAoKSkKICAgICB7CiAgICAgICAvKiBOdWxsIHVzZXJuYW1lcyBzaG91bGQgcmVzdWx0IGluIGFsbCB1c2VycyBhcyBwb3NzaWJsZSBjb21wbGV0aW9ucy4gKi8KICAgICAgIGlmIChuYW1lbGVuID09IDAgfHwgKFNUUkVRTiAodXNlcm5hbWUsIGVudHJ5LT5wd19uYW1lLCBuYW1lbGVuKSkpCiAJYnJlYWs7CiAgICAgfQorI2VuZGlmCiAKICAgaWYgKGVudHJ5ID09IDApCiAgICAgeworI2lmIGRlZmluZWQgKEhBVkVfR0VUUFdFTlQpCiAgICAgICBlbmRwd2VudCAoKTsKKyNlbmRpZgogICAgICAgcmV0dXJuICgoY2hhciAqKU5VTEwpOwogICAgIH0KICAgZWxzZQpAQCAtMTk4Myw5ICsyMTg4LDExIEBACiAgICAgICByZXR1cm4gKDApOwogICAgIH0KIAotICBtYXRjaF9saXN0X2luZGV4ID0gKG1hdGNoX2xpc3RfaW5kZXggKyBjb3VudCkgJSBtYXRjaF9saXN0X3NpemU7CisgIG1hdGNoX2xpc3RfaW5kZXggKz0gY291bnQ7CiAgIGlmIChtYXRjaF9saXN0X2luZGV4IDwgMCkKICAgICBtYXRjaF9saXN0X2luZGV4ICs9IG1hdGNoX2xpc3Rfc2l6ZTsKKyAgZWxzZQorICAgIG1hdGNoX2xpc3RfaW5kZXggJT0gbWF0Y2hfbGlzdF9zaXplOwogCiAgIGlmIChtYXRjaF9saXN0X2luZGV4ID09IDAgJiYgbWF0Y2hfbGlzdF9zaXplID4gMSkKICAgICB7CmRpZmYgLS1naXQgYS9yZWFkbGluZS9jb25maWcuaC5pbiBiL3JlYWRsaW5lL2NvbmZpZy5oLmluCmluZGV4IGM1M2MyYTEuLmI0YWFlOTggMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL2NvbmZpZy5oLmluCisrKyBiL3JlYWRsaW5lL2NvbmZpZy5oLmluCkBAIC0xLDExICsxLDE3IEBACiAvKiBjb25maWcuaC5pbi4gIE1haW50YWluZWQgYnkgaGFuZC4gKi8KIAorLyogRGVmaW5lIE5PX01VTFRJQllURV9TVVBQT1JUIHRvIG5vdCBjb21waWxlIGluIHN1cHBvcnQgZm9yIG11bHRpYnl0ZQorICAgY2hhcmFjdGVycywgZXZlbiBpZiB0aGUgT1Mgc3VwcG9ydHMgdGhlbS4gKi8KKyN1bmRlZiBOT19NVUxUSUJZVEVfU1VQUE9SVAorCiAvKiBEZWZpbmUgaWYgb24gTUlOSVguICAqLwogI3VuZGVmIF9NSU5JWAogCiAvKiBEZWZpbmUgYXMgdGhlIHJldHVybiB0eXBlIG9mIHNpZ25hbCBoYW5kbGVycyAoaW50IG9yIHZvaWQpLiAgKi8KICN1bmRlZiBSRVRTSUdUWVBFCiAKKyN1bmRlZiBWT0lEX1NJR0hBTkRMRVIKKwogLyogQ2hhcmFjdGVyaXN0aWNzIG9mIHRoZSBjb21waWxlci4gKi8KICN1bmRlZiBjb25zdAogCkBAIC0yMCw3ICsyNiwxNyBAQAogLyogRGVmaW5lIGlmIHRoZSBgU19JUyonIG1hY3JvcyBpbiA8c3lzL3N0YXQuaD4gZG8gbm90IHdvcmsgcHJvcGVybHkuICAqLwogI3VuZGVmIFNUQVRfTUFDUk9TX0JST0tFTgogCi0jdW5kZWYgVk9JRF9TSUdIQU5ETEVSCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGZjbnRsIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfRkNOVEwKKworLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBnZXRwd2VudCBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX0dFVFBXRU5UCisKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgZ2V0cHduYW0gZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9HRVRQV05BTQorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGdldHB3dWlkIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfR0VUUFdVSUQKIAogLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBpc2FzY2lpIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfSVNBU0NJSQpAQCAtMjgsOSArNDQsMTggQEAKIC8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgaXN4ZGlnaXQgZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9JU1hESUdJVAogCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGtpbGwgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9LSUxMCisKIC8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgbHN0YXQgZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9MU1RBVAogCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIG1icmxlbiBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX01CUkxFTgorCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIG1icnRvd2MgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9NQlJUT1dDCisKIC8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgbWJzcnRvd2NzIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfTUJTUlRPV0NTCiAKQEAgLTY2LDEyICs5MSwyMCBAQAogLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB2c25wcmludGYgZnVuY3Rpb24uICAqLwogI3VuZGVmIEhBVkVfVlNOUFJJTlRGCiAKKy8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgd2N0b21iIGZ1bmN0aW9uLiAgKi8KKyN1bmRlZiBIQVZFX1dDVE9NQiAKKwogLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB3Y3dpZHRoIGZ1bmN0aW9uLiAgKi8KICN1bmRlZiBIQVZFX1dDV0lEVEgKIAorI3VuZGVmIFNURENfSEVBREVSUworCiAvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxkaXJlbnQuaD4gaGVhZGVyIGZpbGUuICAqLwogI3VuZGVmIEhBVkVfRElSRU5UX0gKIAorLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8ZmNudGwuaD4gaGVhZGVyIGZpbGUuICAqLworI3VuZGVmIEhBVkVfRkNOVExfSAorCiAvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxsYW5naW5mby5oPiBoZWFkZXIgZmlsZS4gICovCiAjdW5kZWYgSEFWRV9MQU5HSU5GT19ICiAKQEAgLTg3LDYgKzEyMCw5IEBACiAvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxuZGlyLmg+IGhlYWRlciBmaWxlLiAgKi8KICN1bmRlZiBIQVZFX05ESVJfSAogCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDxwd2QuaD4gaGVhZGVyIGZpbGUuICAqLworI3VuZGVmIEhBVkVfUFdEX0gKKwogLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8c3RkYXJnLmg+IGhlYWRlciBmaWxlLiAgKi8KICN1bmRlZiBIQVZFX1NUREFSR19ICiAKQEAgLTE3Nyw2ICsyMTMsOCBAQAogCiAjdW5kZWYgSEFWRV9QT1NJWF9TSUdTRVRKTVAKIAorI3VuZGVmIENUWVBFX05PTl9BU0NJSQorCiAvKiBtb2RpZnkgc2V0dGluZ3Mgb3IgbWFrZSBuZXcgb25lcyBiYXNlZCBvbiB3aGF0IGF1dG9jb25mIHRlbGxzIHVzLiAqLwogCiAvKiBVbHRyaXggYm90Y2hlcyB0eXBlLWFoZWFkIHdoZW4gc3dpdGNoaW5nIGZyb20gY2Fub25pY2FsIHRvCmRpZmYgLS1naXQgYS9yZWFkbGluZS9jb25maWd1cmUgYi9yZWFkbGluZS9jb25maWd1cmUKaW5kZXggZmMzNzY5Zi4uMTdhOWVlYiAxMDA3NTUKLS0tIGEvcmVhZGxpbmUvY29uZmlndXJlCisrKyBiL3JlYWRsaW5lL2NvbmZpZ3VyZQpAQCAtMSwxNSArMSw4NCBAQAogIyEgL2Jpbi9zaAotIyBGcm9tIGNvbmZpZ3VyZS5pbiBmb3IgUmVhZGxpbmUgNC4zLCB2ZXJzaW9uIDIuNDUsIGZyb20gYXV0b2NvbmYgdmVyc2lvbiAyLjUyLgorIyBGcm9tIGNvbmZpZ3VyZS5pbiBmb3IgUmVhZGxpbmUgNS4xLCB2ZXJzaW9uIDIuNTguCiAjIEd1ZXNzIHZhbHVlcyBmb3Igc3lzdGVtLWRlcGVuZGVudCB2YXJpYWJsZXMgYW5kIGNyZWF0ZSBNYWtlZmlsZXMuCi0jIEdlbmVyYXRlZCBieSBBdXRvY29uZiAyLjUyIGZvciByZWFkbGluZSA0LjMuCisjIEdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41OSBmb3IgcmVhZGxpbmUgNS4xLWJldGExLgogIwogIyBSZXBvcnQgYnVncyB0byA8YnVnLXJlYWRsaW5lQGdudS5vcmc+LgogIwotIyBDb3B5cmlnaHQgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMQotIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgQ29weXJpZ2h0IChDKSAyMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogIyBUaGlzIGNvbmZpZ3VyZSBzY3JpcHQgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgogIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuCisjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKyMjIE00c2ggSW5pdGlhbGl6YXRpb24uICAjIworIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCiAKKyMgQmUgQm91cm5lIGNvbXBhdGlibGUKK2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgorICBlbXVsYXRlIHNoCisgIE5VTExDTUQ9OgorICAjIFpzaCAzLnggYW5kIDQueCBwZXJmb3JtcyB3b3JkIHNwbGl0dGluZyBvbiAkezErIiRAIn0sIHdoaWNoCisgICMgaXMgY29udHJhcnkgdG8gb3VyIHVzYWdlLiAgRGlzYWJsZSB0aGlzIGZlYXR1cmUuCisgIGFsaWFzIC1nICckezErIiRAIn0nPSciJEAiJworZWxpZiB0ZXN0IC1uICIke0JBU0hfVkVSU0lPTitzZXR9IiAmJiAoc2V0IC1vIHBvc2l4KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgc2V0IC1vIHBvc2l4CitmaQorRFVBTENBU0U9MTsgZXhwb3J0IERVQUxDQVNFICMgZm9yIE1LUyBzaAorCisjIFN1cHBvcnQgdW5zZXQgd2hlbiBwb3NzaWJsZS4KK2lmICggKE1BSUw9NjA7IHVuc2V0IE1BSUwpIHx8IGV4aXQpID4vZGV2L251bGwgMj4mMTsgdGhlbgorICBhc191bnNldD11bnNldAorZWxzZQorICBhc191bnNldD1mYWxzZQorZmkKKworCisjIFdvcmsgYXJvdW5kIGJ1Z3MgaW4gcHJlLTMuMCBVV0lOIGtzaC4KKyRhc191bnNldCBFTlYgTUFJTCBNQUlMUEFUSAorUFMxPSckICcKK1BTMj0nPiAnCitQUzQ9JysgJworCisjIE5MUyBudWlzYW5jZXMuCitmb3IgYXNfdmFyIGluIFwKKyAgTEFORyBMQU5HVUFHRSBMQ19BRERSRVNTIExDX0FMTCBMQ19DT0xMQVRFIExDX0NUWVBFIExDX0lERU5USUZJQ0FUSU9OIFwKKyAgTENfTUVBU1VSRU1FTlQgTENfTUVTU0FHRVMgTENfTU9ORVRBUlkgTENfTkFNRSBMQ19OVU1FUklDIExDX1BBUEVSIFwKKyAgTENfVEVMRVBIT05FIExDX1RJTUUKK2RvCisgIGlmIChzZXQgK3g7IHRlc3QgLXogImAoZXZhbCAkYXNfdmFyPUM7IGV4cG9ydCAkYXNfdmFyKSAyPiYxYCIpOyB0aGVuCisgICAgZXZhbCAkYXNfdmFyPUM7IGV4cG9ydCAkYXNfdmFyCisgIGVsc2UKKyAgICAkYXNfdW5zZXQgJGFzX3ZhcgorICBmaQorZG9uZQorCisjIFJlcXVpcmVkIHRvIHVzZSBiYXNlbmFtZS4KK2lmIGV4cHIgYSA6ICdcKGFcKScgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgIGFzX2V4cHI9ZXhwcgorZWxzZQorICBhc19leHByPWZhbHNlCitmaQorCitpZiAoYmFzZW5hbWUgLykgPi9kZXYvbnVsbCAyPiYxICYmIHRlc3QgIlhgYmFzZW5hbWUgLyAyPiYxYCIgPSAiWC8iOyB0aGVuCisgIGFzX2Jhc2VuYW1lPWJhc2VuYW1lCitlbHNlCisgIGFzX2Jhc2VuYW1lPWZhbHNlCitmaQorCisKKyMgTmFtZSBvZiB0aGUgZXhlY3V0YWJsZS4KK2FzX21lPWAkYXNfYmFzZW5hbWUgIiQwIiB8fAorJGFzX2V4cHIgWC8iJDAiIDogJy4qL1woW14vXVteL10qXCkvKiQnIFx8IFwKKwkgWCIkMCIgOiAnWFwoLy9cKSQnIFx8IFwKKwkgWCIkMCIgOiAnWFwoL1wpJCcgXHwgXAorCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKK2VjaG8gWC8iJDAiIHwKKyAgICBzZWQgJy9eLipcL1woW14vXVteL10qXClcLyokL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwvXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwvXChcL1wpLioveyBzLy9cMS87IHE7IH0KKyAgCSAgcy8uKi8uLzsgcSdgCisKKworIyBQQVRIIG5lZWRzIENSLCBhbmQgTElORU5PIG5lZWRzIENSIGFuZCBQQVRILgogIyBBdm9pZCBkZXBlbmRpbmcgdXBvbiBDaGFyYWN0ZXIgUmFuZ2VzLgogYXNfY3JfbGV0dGVycz0nYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonCiBhc19jcl9MRVRURVJTPSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicKQEAgLTE3LDIyICs4NiwxMTMgQEAKIGFzX2NyX2RpZ2l0cz0nMDEyMzQ1Njc4OScKIGFzX2NyX2FsbnVtPSRhc19jcl9MZXR0ZXJzJGFzX2NyX2RpZ2l0cwogCi0jIFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgdmFyaWFibGUgbmFtZS4KLWFzX3RyX3NoPSJzZWQgeSUqKyVwcCU7cyVbXl8kYXNfY3JfYWxudW1dJV8lZyIKLQotIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIENQUCBuYW1lLgotYXNfdHJfY3BwPSJzZWQgeSUqJGFzX2NyX2xldHRlcnMlUCRhc19jcl9MRVRURVJTJTtzJVteXyRhc19jcl9hbG51bV0lXyVnIgotCi0jIEJlIEJvdXJuZSBjb21wYXRpYmxlCi1pZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSAgZW11bGF0ZSBzaAotICBOVUxMQ01EPToKLWVsaWYgdGVzdCAtbiAiJHtCQVNIX1ZFUlNJT04rc2V0fSIgJiYgKHNldCAtbyBwb3NpeCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIHNldCAtbyBwb3NpeAorIyBUaGUgdXNlciBpcyBhbHdheXMgcmlnaHQuCitpZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9SK3NldH0iICE9IHNldDsgdGhlbgorICBlY2hvICIjISAvYmluL3NoIiA+Y29uZiQkLnNoCisgIGVjaG8gICJleGl0IDAiICAgPj5jb25mJCQuc2gKKyAgY2htb2QgK3ggY29uZiQkLnNoCisgIGlmIChQQVRIPSIvbm9uZXhpc3RlbnQ7LiI7IGNvbmYkJC5zaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICAgUEFUSF9TRVBBUkFUT1I9JzsnCisgIGVsc2UKKyAgICBQQVRIX1NFUEFSQVRPUj06CisgIGZpCisgIHJtIC1mIGNvbmYkJC5zaAogZmkKIAotIyBOYW1lIG9mIHRoZSBleGVjdXRhYmxlLgotYXNfbWU9YGVjaG8gIiQwIiB8c2VkICdzLC4qW1xcL10sLCdgCisKKyAgYXNfbGluZW5vXzE9JExJTkVOTworICBhc19saW5lbm9fMj0kTElORU5PCisgIGFzX2xpbmVub18zPWAoZXhwciAkYXNfbGluZW5vXzEgKyAxKSAyPi9kZXYvbnVsbGAKKyAgdGVzdCAieCRhc19saW5lbm9fMSIgIT0gIngkYXNfbGluZW5vXzIiICYmCisgIHRlc3QgIngkYXNfbGluZW5vXzMiICA9ICJ4JGFzX2xpbmVub18yIiAgfHwgeworICAjIEZpbmQgd2hvIHdlIGFyZS4gIExvb2sgaW4gdGhlIHBhdGggaWYgd2UgY29udGFpbiBubyBwYXRoIGF0IGFsbAorICAjIHJlbGF0aXZlIG9yIG5vdC4KKyAgY2FzZSAkMCBpbgorICAgICpbXFwvXSogKSBhc19teXNlbGY9JDAgOzsKKyAgICAqKSBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCitmb3IgYXNfZGlyIGluICRQQVRICitkbworICBJRlM9JGFzX3NhdmVfSUZTCisgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisgIHRlc3QgLXIgIiRhc19kaXIvJDAiICYmIGFzX215c2VsZj0kYXNfZGlyLyQwICYmIGJyZWFrCitkb25lCisKKyAgICAgICA7OworICBlc2FjCisgICMgV2UgZGlkIG5vdCBmaW5kIG91cnNlbHZlcywgbW9zdCBwcm9iYWJseSB3ZSB3ZXJlIHJ1biBhcyBgc2ggQ09NTUFORCcKKyAgIyBpbiB3aGljaCBjYXNlIHdlIGFyZSBub3QgdG8gYmUgZm91bmQgaW4gdGhlIHBhdGguCisgIGlmIHRlc3QgIngkYXNfbXlzZWxmIiA9IHg7IHRoZW4KKyAgICBhc19teXNlbGY9JDAKKyAgZmkKKyAgaWYgdGVzdCAhIC1mICIkYXNfbXlzZWxmIjsgdGhlbgorICAgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGZpbmQgbXlzZWxmOyByZXJ1biB3aXRoIGFuIGFic29sdXRlIHBhdGgiID4mMgorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisgIGZpCisgIGNhc2UgJENPTkZJR19TSEVMTCBpbgorICAnJykKKyAgICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCitmb3IgYXNfZGlyIGluIC9iaW4kUEFUSF9TRVBBUkFUT1IvdXNyL2JpbiRQQVRIX1NFUEFSQVRPUiRQQVRICitkbworICBJRlM9JGFzX3NhdmVfSUZTCisgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisgIGZvciBhc19iYXNlIGluIHNoIGJhc2gga3NoIHNoNTsgZG8KKwkgY2FzZSAkYXNfZGlyIGluCisJIC8qKQorCSAgIGlmICgiJGFzX2Rpci8kYXNfYmFzZSIgLWMgJworICBhc19saW5lbm9fMT0kTElORU5PCisgIGFzX2xpbmVub18yPSRMSU5FTk8KKyAgYXNfbGluZW5vXzM9YChleHByICRhc19saW5lbm9fMSArIDEpIDI+L2Rldi9udWxsYAorICB0ZXN0ICJ4JGFzX2xpbmVub18xIiAhPSAieCRhc19saW5lbm9fMiIgJiYKKyAgdGVzdCAieCRhc19saW5lbm9fMyIgID0gIngkYXNfbGluZW5vXzIiICcpIDI+L2Rldi9udWxsOyB0aGVuCisJICAgICAkYXNfdW5zZXQgQkFTSF9FTlYgfHwgdGVzdCAiJHtCQVNIX0VOVitzZXR9IiAhPSBzZXQgfHwgeyBCQVNIX0VOVj07IGV4cG9ydCBCQVNIX0VOVjsgfQorCSAgICAgJGFzX3Vuc2V0IEVOViB8fCB0ZXN0ICIke0VOVitzZXR9IiAhPSBzZXQgfHwgeyBFTlY9OyBleHBvcnQgRU5WOyB9CisJICAgICBDT05GSUdfU0hFTEw9JGFzX2Rpci8kYXNfYmFzZQorCSAgICAgZXhwb3J0IENPTkZJR19TSEVMTAorCSAgICAgZXhlYyAiJENPTkZJR19TSEVMTCIgIiQwIiAkezErIiRAIn0KKwkgICBmaTs7CisJIGVzYWMKKyAgICAgICBkb25lCitkb25lCis7OworICBlc2FjCisKKyAgIyBDcmVhdGUgJGFzX21lLmxpbmVubyBhcyBhIGNvcHkgb2YgJGFzX215c2VsZiwgYnV0IHdpdGggJExJTkVOTworICAjIHVuaWZvcm1seSByZXBsYWNlZCBieSB0aGUgbGluZSBudW1iZXIuICBUaGUgZmlyc3QgJ3NlZCcgaW5zZXJ0cyBhCisgICMgbGluZS1udW1iZXIgbGluZSBiZWZvcmUgZWFjaCBsaW5lOyB0aGUgc2Vjb25kICdzZWQnIGRvZXMgdGhlIHJlYWwKKyAgIyB3b3JrLiAgVGhlIHNlY29uZCBzY3JpcHQgdXNlcyAnTicgdG8gcGFpciBlYWNoIGxpbmUtbnVtYmVyIGxpbmUKKyAgIyB3aXRoIHRoZSBudW1iZXJlZCBsaW5lLCBhbmQgYXBwZW5kcyB0cmFpbGluZyAnLScgZHVyaW5nCisgICMgc3Vic3RpdHV0aW9uIHNvIHRoYXQgJExJTkVOTyBpcyBub3QgYSBzcGVjaWFsIGNhc2UgYXQgbGluZSBlbmQuCisgICMgKFJhamEgUiBIYXJpbmF0aCBzdWdnZXN0ZWQgc2VkICc9JywgYW5kIFBhdWwgRWdnZXJ0IHdyb3RlIHRoZQorICAjIHNlY29uZCAnc2VkJyBzY3JpcHQuICBCbGFtZSBMZWUgRS4gTWNNYWhvbiBmb3Igc2VkJ3Mgc3ludGF4LiAgOi0pCisgIHNlZCAnPScgPCRhc19teXNlbGYgfAorICAgIHNlZCAnCisgICAgICBOCisgICAgICBzLCQsLSwKKyAgICAgIDogbG9vcAorICAgICAgcyxeXChbJyRhc19jcl9kaWdpdHMnXSpcKVwoLipcKVskXUxJTkVOT1woW14nJGFzX2NyX2FsbnVtJ19dXCksXDFcMlwxXDMsCisgICAgICB0IGxvb3AKKyAgICAgIHMsLSQsLAorICAgICAgcyxeWyckYXNfY3JfZGlnaXRzJ10qXG4sLAorICAgICcgPiRhc19tZS5saW5lbm8gJiYKKyAgY2htb2QgK3ggJGFzX21lLmxpbmVubyB8fAorICAgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSAkYXNfbWUubGluZW5vOyByZXJ1biB3aXRoIGEgUE9TSVggc2hlbGwiID4mMgorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisKKyAgIyBEb24ndCB0cnkgdG8gZXhlYyBhcyBpdCBjaGFuZ2VzICRbMF0sIGNhdXNpbmcgYWxsIHNvcnQgb2YgcHJvYmxlbXMKKyAgIyAodGhlIGRpcm5hbWUgb2YgJFswXSBpcyBub3QgdGhlIHBsYWNlIHdoZXJlIHdlIG1pZ2h0IGZpbmQgdGhlCisgICMgb3JpZ2luYWwgYW5kIHNvIG9uLiAgQXV0b2NvbmYgaXMgZXNwZWNpYWxseSBzZW5zaWJsZSB0byB0aGlzKS4KKyAgLiAuLyRhc19tZS5saW5lbm8KKyAgIyBFeGl0IHN0YXR1cyBpcyB0aGF0IG9mIHRoZSBsYXN0IGNvbW1hbmQuCisgIGV4aXQKK30KKworCitjYXNlIGBlY2hvICJ0ZXN0aW5nXGMiOyBlY2hvIDEsMiwzYCxgZWNobyAtbiB0ZXN0aW5nOyBlY2hvIDEsMiwzYCBpbgorICAqYyosLW4qKSBFQ0hPX049IEVDSE9fQz0nCisnIEVDSE9fVD0nCScgOzsKKyAgKmMqLCogICkgRUNIT19OPS1uIEVDSE9fQz0gRUNIT19UPSA7OworICAqKSAgICAgICBFQ0hPX049IEVDSE9fQz0nXGMnIEVDSE9fVD0gOzsKK2VzYWMKIAogaWYgZXhwciBhIDogJ1woYVwpJyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KICAgYXNfZXhwcj1leHByCkBAIC01OCwyNCArMjE4LDIxIEBACiBmaQogcm0gLWYgY29uZiQkIGNvbmYkJC5leGUgY29uZiQkLmZpbGUKIAotYXNfZXhlY3V0YWJsZV9wPSJ0ZXN0IC1mIgotCi0jIFN1cHBvcnQgdW5zZXQgd2hlbiBwb3NzaWJsZS4KLWlmIChGT089Rk9POyB1bnNldCBGT08pID4vZGV2L251bGwgMj4mMTsgdGhlbgotICBhc191bnNldD11bnNldAoraWYgbWtkaXIgLXAgLiAyPi9kZXYvbnVsbDsgdGhlbgorICBhc19ta2Rpcl9wPToKIGVsc2UKLSAgYXNfdW5zZXQ9ZmFsc2UKKyAgdGVzdCAtZCAuLy1wICYmIHJtZGlyIC4vLXAKKyAgYXNfbWtkaXJfcD1mYWxzZQogZmkKIAotIyBOTFMgbnVpc2FuY2VzLgotJGFzX3Vuc2V0IExBTkcgfHwgdGVzdCAiJHtMQU5HK3NldH0iICE9IHNldCB8fCB7IExBTkc9QzsgZXhwb3J0IExBTkc7IH0KLSRhc191bnNldCBMQ19BTEwgfHwgdGVzdCAiJHtMQ19BTEwrc2V0fSIgIT0gc2V0IHx8IHsgTENfQUxMPUM7IGV4cG9ydCBMQ19BTEw7IH0KLSRhc191bnNldCBMQ19USU1FIHx8IHRlc3QgIiR7TENfVElNRStzZXR9IiAhPSBzZXQgfHwgeyBMQ19USU1FPUM7IGV4cG9ydCBMQ19USU1FOyB9Ci0kYXNfdW5zZXQgTENfQ1RZUEUgfHwgdGVzdCAiJHtMQ19DVFlQRStzZXR9IiAhPSBzZXQgfHwgeyBMQ19DVFlQRT1DOyBleHBvcnQgTENfQ1RZUEU7IH0KLSRhc191bnNldCBMQU5HVUFHRSB8fCB0ZXN0ICIke0xBTkdVQUdFK3NldH0iICE9IHNldCB8fCB7IExBTkdVQUdFPUM7IGV4cG9ydCBMQU5HVUFHRTsgfQotJGFzX3Vuc2V0IExDX0NPTExBVEUgfHwgdGVzdCAiJHtMQ19DT0xMQVRFK3NldH0iICE9IHNldCB8fCB7IExDX0NPTExBVEU9QzsgZXhwb3J0IExDX0NPTExBVEU7IH0KLSRhc191bnNldCBMQ19OVU1FUklDIHx8IHRlc3QgIiR7TENfTlVNRVJJQytzZXR9IiAhPSBzZXQgfHwgeyBMQ19OVU1FUklDPUM7IGV4cG9ydCBMQ19OVU1FUklDOyB9Ci0kYXNfdW5zZXQgTENfTUVTU0FHRVMgfHwgdGVzdCAiJHtMQ19NRVNTQUdFUytzZXR9IiAhPSBzZXQgfHwgeyBMQ19NRVNTQUdFUz1DOyBleHBvcnQgTENfTUVTU0FHRVM7IH0KK2FzX2V4ZWN1dGFibGVfcD0idGVzdCAtZiIKKworIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIENQUCBuYW1lLgorYXNfdHJfY3BwPSJldmFsIHNlZCAneSUqJGFzX2NyX2xldHRlcnMlUCRhc19jcl9MRVRURVJTJTtzJVteXyRhc19jcl9hbG51bV0lXyVnJyIKKworIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIHZhcmlhYmxlIG5hbWUuCithc190cl9zaD0iZXZhbCBzZWQgJ3klKislcHAlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgorCiAKICMgSUZTCiAjIFdlIG5lZWQgc3BhY2UsIHRhYiBhbmQgbmV3IGxpbmUsIGluIHByZWNpc2VseSB0aGF0IG9yZGVyLgpAQCAtODQsNyArMjQxLDggQEAKIElGUz0iIAkkYXNfbmwiCiAKICMgQ0RQQVRILgotJGFzX3Vuc2V0IENEUEFUSCB8fCB0ZXN0ICIke0NEUEFUSCtzZXR9IiAhPSBzZXQgfHwgeyBDRFBBVEg9OjsgZXhwb3J0IENEUEFUSDsgfQorJGFzX3Vuc2V0IENEUEFUSAorCiAKICMgTmFtZSBvZiB0aGUgaG9zdC4KICMgaG9zdG5hbWUgb24gc29tZSBzeXN0ZW1zIChTVlIzLjIsIExpbnV4KSByZXR1cm5zIGEgYm9ndXMgZXhpdCBzdGF0dXMsCkBAIC05Nyw5ICsyNTUsMTEgQEAKICMgSW5pdGlhbGl6YXRpb25zLgogIwogYWNfZGVmYXVsdF9wcmVmaXg9L3Vzci9sb2NhbAorYWNfY29uZmlnX2xpYm9ial9kaXI9LgogY3Jvc3NfY29tcGlsaW5nPW5vCiBzdWJkaXJzPQotTUZMQUdTPSBNQUtFRkxBR1M9CitNRkxBR1M9CitNQUtFRkxBR1M9CiBTSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQogCiAjIE1heGltdW0gbnVtYmVyIG9mIGxpbmVzIHRvIHB1dCBpbiBhIHNoZWxsIGhlcmUgZG9jdW1lbnQuCkBAIC0xMDcsNiArMjY3LDEzIEBACiAjIG9ubHkgYWNfbWF4X3NlZF9saW5lcyBzaG91bGQgYmUgdXNlZC4KIDogJHthY19tYXhfaGVyZV9saW5lcz0zOH0KIAorIyBJZGVudGl0eSBvZiB0aGlzIHBhY2thZ2UuCitQQUNLQUdFX05BTUU9J3JlYWRsaW5lJworUEFDS0FHRV9UQVJOQU1FPSdyZWFkbGluZScKK1BBQ0tBR0VfVkVSU0lPTj0nNS4xLWJldGExJworUEFDS0FHRV9TVFJJTkc9J3JlYWRsaW5lIDUuMS1iZXRhMScKK1BBQ0tBR0VfQlVHUkVQT1JUPSdidWctcmVhZGxpbmVAZ251Lm9yZycKKwogYWNfdW5pcXVlX2ZpbGU9InJlYWRsaW5lLmgiCiAjIEZhY3RvcmluZyBkZWZhdWx0IGhlYWRlcnMgZm9yIG1vc3QgdGVzdHMuCiBhY19pbmNsdWRlc19kZWZhdWx0PSJcCkBAIC0xNDUsNiArMzEyLDkgQEAKICMgaW5jbHVkZSA8dW5pc3RkLmg+CiAjZW5kaWYiCiAKK2FjX3N1YnN0X3ZhcnM9J1NIRUxMIFBBVEhfU0VQQVJBVE9SIFBBQ0tBR0VfTkFNRSBQQUNLQUdFX1RBUk5BTUUgUEFDS0FHRV9WRVJTSU9OIFBBQ0tBR0VfU1RSSU5HIFBBQ0tBR0VfQlVHUkVQT1JUIGV4ZWNfcHJlZml4IHByZWZpeCBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIGJpbmRpciBzYmluZGlyIGxpYmV4ZWNkaXIgZGF0YWRpciBzeXNjb25mZGlyIHNoYXJlZHN0YXRlZGlyIGxvY2Fsc3RhdGVkaXIgbGliZGlyIGluY2x1ZGVkaXIgb2xkaW5jbHVkZWRpciBpbmZvZGlyIG1hbmRpciBidWlsZF9hbGlhcyBob3N0X2FsaWFzIHRhcmdldF9hbGlhcyBERUZTIEVDSE9fQyBFQ0hPX04gRUNIT19UIExJQlMgYnVpbGQgYnVpbGRfY3B1IGJ1aWxkX3ZlbmRvciBidWlsZF9vcyBob3N0IGhvc3RfY3B1IGhvc3RfdmVuZG9yIGhvc3Rfb3MgQ1JPU1NfQ09NUElMRSBTRVRfTUFLRSBDQyBDRkxBR1MgTERGTEFHUyBDUFBGTEFHUyBhY19jdF9DQyBFWEVFWFQgT0JKRVhUIENQUCBFR1JFUCBJTlNUQUxMX1BST0dSQU0gSU5TVEFMTF9TQ1JJUFQgSU5TVEFMTF9EQVRBIEFSIFJBTkxJQiBhY19jdF9SQU5MSUIgTUFLRV9TSEVMTCBTSE9CSl9DQyBTSE9CSl9DRkxBR1MgU0hPQkpfTEQgU0hPQkpfTERGTEFHUyBTSE9CSl9YTERGTEFHUyBTSE9CSl9MSUJTIFNIT0JKX1NUQVRVUyBTSExJQl9TVEFUVVMgU0hMSUJfWExERkxBR1MgU0hMSUJfRE9UIFNITElCX0xJQlBSRUYgU0hMSUJfTElCU1VGRiBTSExJQl9MSUJWRVJTSU9OIFNITElCX0RMTFZFUlNJT04gU0hMSUJfTElCUyBTSExJQl9NQUpPUiBTSExJQl9NSU5PUiBTVEFUSUNfVEFSR0VUIFNIQVJFRF9UQVJHRVQgU1RBVElDX0lOU1RBTExfVEFSR0VUIFNIQVJFRF9JTlNUQUxMX1RBUkdFVCBQVVJJRlkgQlVJTERfRElSIExPQ0FMX0NGTEFHUyBMT0NBTF9MREZMQUdTIExPQ0FMX0RFRlMgQVJGTEFHUyBMSUJWRVJTSU9OIFRFUk1DQVBfTElCIExJQk9CSlMgTFRMSUJPQkpTJworYWNfc3Vic3RfZmlsZXM9JycKKwogIyBJbml0aWFsaXplIHNvbWUgdmFyaWFibGVzIHNldCBieSBvcHRpb25zLgogYWNfaW5pdF9oZWxwPQogYWNfaW5pdF92ZXJzaW9uPWZhbHNlCkBAIC0xODMsMTMgKzM1Myw2IEBACiBpbmZvZGlyPScke3ByZWZpeH0vaW5mbycKIG1hbmRpcj0nJHtwcmVmaXh9L21hbicKIAotIyBJZGVudGl0eSBvZiB0aGlzIHBhY2thZ2UuCi1QQUNLQUdFX05BTUU9J3JlYWRsaW5lJwotUEFDS0FHRV9UQVJOQU1FPSdyZWFkbGluZScKLVBBQ0tBR0VfVkVSU0lPTj0nNC4zJwotUEFDS0FHRV9TVFJJTkc9J3JlYWRsaW5lIDQuMycKLVBBQ0tBR0VfQlVHUkVQT1JUPSdidWctcmVhZGxpbmVAZ251Lm9yZycKLQogYWNfcHJldj0KIGZvciBhY19vcHRpb24KIGRvCkBAIC0zMjIsNyArNDg1LDcgQEAKICAgICB3aXRoX2ZwPW5vIDs7CiAKICAgLW5vLWNyZWF0ZSB8IC0tbm8tY3JlYXRlIHwgLS1uby1jcmVhdCB8IC0tbm8tY3JlYSB8IC0tbm8tY3JlIFwKLSAgfCAtLW5vLWNyIHwgLS1uby1jKQorICB8IC0tbm8tY3IgfCAtLW5vLWMgfCAtbikKICAgICBub19jcmVhdGU9eWVzIDs7CiAKICAgLW5vLXJlY3Vyc2lvbiB8IC0tbm8tcmVjdXJzaW9uIHwgLS1uby1yZWN1cnNpbyB8IC0tbm8tcmVjdXJzaSBcCkBAIC01MDEsMzAgKzY2NCwzMSBAQAogICBldmFsIGFjX3ZhbD0kYGVjaG8gJGFjX3ZhcmAKICAgY2FzZSAkYWNfdmFsIGluCiAgICAgW1xcLyRdKiB8ID86W1xcL10qIHwgTk9ORSB8ICcnICkgOzsKLSAgICAqKSAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBleHBlY3RlZCBhbiBhYnNvbHV0ZSBwYXRoIGZvciAtLSRhY192YXI6ICRhY192YWwiID4mMgorICAgICopICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGV4cGVjdGVkIGFuIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lIGZvciAtLSRhY192YXI6ICRhY192YWwiID4mMgogICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OzsKICAgZXNhYwogZG9uZQogCiAjIEJlIHN1cmUgdG8gaGF2ZSBhYnNvbHV0ZSBwYXRocy4KIGZvciBhY192YXIgaW4gYmluZGlyIHNiaW5kaXIgbGliZXhlY2RpciBkYXRhZGlyIHN5c2NvbmZkaXIgc2hhcmVkc3RhdGVkaXIgXAotICAgICAgICAgICAgICBsb2NhbHN0YXRlZGlyIGxpYmRpciBpbmNsdWRlZGlyIG9sZGluY2x1ZGVkaXIgaW5mb2RpciBtYW5kaXIKKwkgICAgICBsb2NhbHN0YXRlZGlyIGxpYmRpciBpbmNsdWRlZGlyIG9sZGluY2x1ZGVkaXIgaW5mb2RpciBtYW5kaXIKIGRvCiAgIGV2YWwgYWNfdmFsPSRgZWNobyAkYWNfdmFyYAogICBjYXNlICRhY192YWwgaW4KICAgICBbXFwvJF0qIHwgPzpbXFwvXSogKSA7OwotICAgICopICB7IGVjaG8gIiRhc19tZTogZXJyb3I6IGV4cGVjdGVkIGFuIGFic29sdXRlIHBhdGggZm9yIC0tJGFjX3ZhcjogJGFjX3ZhbCIgPiYyCisgICAgKikgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogZXhwZWN0ZWQgYW4gYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUgZm9yIC0tJGFjX3ZhcjogJGFjX3ZhbCIgPiYyCiAgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OwogICBlc2FjCiBkb25lCiAKICMgVGhlcmUgbWlnaHQgYmUgcGVvcGxlIHdobyBkZXBlbmQgb24gdGhlIG9sZCBicm9rZW4gYmVoYXZpb3I6IGAkaG9zdCcKICMgdXNlZCB0byBob2xkIHRoZSBhcmd1bWVudCBvZiAtLWhvc3QgZXRjLgorIyBGSVhNRTogVG8gcmVtb3ZlIHNvbWUgZGF5LgogYnVpbGQ9JGJ1aWxkX2FsaWFzCiBob3N0PSRob3N0X2FsaWFzCiB0YXJnZXQ9JHRhcmdldF9hbGlhcwogCi0jIEZJWE1FOiBzaG91bGQgYmUgcmVtb3ZlZCBpbiBhdXRvY29uZiAzLjAuCisjIEZJWE1FOiBUbyByZW1vdmUgc29tZSBkYXkuCiBpZiB0ZXN0ICJ4JGhvc3RfYWxpYXMiICE9IHg7IHRoZW4KICAgaWYgdGVzdCAieCRidWlsZF9hbGlhcyIgPSB4OyB0aGVuCiAgICAgY3Jvc3NfY29tcGlsaW5nPW1heWJlCkBAIC01NDAsMTMgKzcwNCwyMyBAQAogCiB0ZXN0ICIkc2lsZW50IiA9IHllcyAmJiBleGVjIDY+L2Rldi9udWxsCiAKKwogIyBGaW5kIHRoZSBzb3VyY2UgZmlsZXMsIGlmIGxvY2F0aW9uIHdhcyBub3Qgc3BlY2lmaWVkLgogaWYgdGVzdCAteiAiJHNyY2RpciI7IHRoZW4KICAgYWNfc3JjZGlyX2RlZmF1bHRlZD15ZXMKICAgIyBUcnkgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoaXMgc2NyaXB0LCB0aGVuIGl0cyBwYXJlbnQuCi0gIGFjX3Byb2c9JDAKLSAgYWNfY29uZmRpcj1gZWNobyAiJGFjX3Byb2ciIHwgc2VkICdzJVtcXC9dW15cXC9dW15cXC9dKiQlJSdgCi0gIHRlc3QgIngkYWNfY29uZmRpciIgPSAieCRhY19wcm9nIiAmJiBhY19jb25mZGlyPS4KKyAgYWNfY29uZmRpcj1gKGRpcm5hbWUgIiQwIikgMj4vZGV2L251bGwgfHwKKyRhc19leHByIFgiJDAiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisJIFgiJDAiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisJIFgiJDAiIDogJ1hcKC8vXCkkJyBcfCBcCisJIFgiJDAiIDogJ1hcKC9cKScgXHwgXAorCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKK2VjaG8gWCIkMCIgfAorICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KKyAgCSAgcy8uKi8uLzsgcSdgCiAgIHNyY2Rpcj0kYWNfY29uZmRpcgogICBpZiB0ZXN0ICEgLXIgJHNyY2Rpci8kYWNfdW5pcXVlX2ZpbGU7IHRoZW4KICAgICBzcmNkaXI9Li4KQEAgLTU1NiwxMyArNzMwLDE2IEBACiBmaQogaWYgdGVzdCAhIC1yICRzcmNkaXIvJGFjX3VuaXF1ZV9maWxlOyB0aGVuCiAgIGlmIHRlc3QgIiRhY19zcmNkaXJfZGVmYXVsdGVkIiA9IHllczsgdGhlbgotICAgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGZpbmQgc291cmNlcyBpbiAkYWNfY29uZmRpciBvciAuLiIgPiYyCisgICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBzb3VyY2VzICgkYWNfdW5pcXVlX2ZpbGUpIGluICRhY19jb25mZGlyIG9yIC4uIiA+JjIKICAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQogICBlbHNlCi0gICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBzb3VyY2VzIGluICRzcmNkaXIiID4mMgorICAgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGZpbmQgc291cmNlcyAoJGFjX3VuaXF1ZV9maWxlKSBpbiAkc3JjZGlyIiA+JjIKICAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQogICBmaQogZmkKKyhjZCAkc3JjZGlyICYmIHRlc3QgLXIgLi8kYWNfdW5pcXVlX2ZpbGUpIDI+L2Rldi9udWxsIHx8CisgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogc291cmNlcyBhcmUgaW4gJHNyY2RpciwgYnV0IFxgY2QgJHNyY2RpcicgZG9lcyBub3Qgd29yayIgPiYyCisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KIHNyY2Rpcj1gZWNobyAiJHNyY2RpciIgfCBzZWQgJ3MlXChbXlxcL11cKVtcXC9dKiQlXDElJ2AKIGFjX2Vudl9idWlsZF9hbGlhc19zZXQ9JHtidWlsZF9hbGlhcytzZXR9CiBhY19lbnZfYnVpbGRfYWxpYXNfdmFsdWU9JGJ1aWxkX2FsaWFzCkBAIC02MDMsOCArNzgwLDggQEAKIGlmIHRlc3QgIiRhY19pbml0X2hlbHAiID0gImxvbmciOyB0aGVuCiAgICMgT21pdCBzb21lIGludGVybmFsIG9yIG9ic29sZXRlIG9wdGlvbnMgdG8gbWFrZSB0aGUgbGlzdCBsZXNzIGltcG9zaW5nLgogICAjIFRoaXMgbWVzc2FnZSBpcyB0b28gbG9uZyB0byBiZSBhIHN0cmluZyBpbiB0aGUgQS9VWCAzLjEgc2guCi0gIGNhdCA8PEVPRgotXGBjb25maWd1cmUnIGNvbmZpZ3VyZXMgcmVhZGxpbmUgNC4zIHRvIGFkYXB0IHRvIG1hbnkga2luZHMgb2Ygc3lzdGVtcy4KKyAgY2F0IDw8X0FDRU9GCitcYGNvbmZpZ3VyZScgY29uZmlndXJlcyByZWFkbGluZSA1LjEtYmV0YTEgdG8gYWRhcHQgdG8gbWFueSBraW5kcyBvZiBzeXN0ZW1zLgogCiBVc2FnZTogJDAgW09QVElPTl0uLi4gW1ZBUj1WQUxVRV0uLi4KIApAQCAtNjI0LDE0ICs4MDEsMTQgQEAKICAgLW4sIC0tbm8tY3JlYXRlICAgICAgICAgZG8gbm90IGNyZWF0ZSBvdXRwdXQgZmlsZXMKICAgICAgIC0tc3JjZGlyPURJUiAgICAgICAgZmluZCB0aGUgc291cmNlcyBpbiBESVIgW2NvbmZpZ3VyZSBkaXIgb3IgXGAuLiddCiAKLUVPRgorX0FDRU9GCiAKLSAgY2F0IDw8RU9GCisgIGNhdCA8PF9BQ0VPRgogSW5zdGFsbGF0aW9uIGRpcmVjdG9yaWVzOgogICAtLXByZWZpeD1QUkVGSVggICAgICAgICBpbnN0YWxsIGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBmaWxlcyBpbiBQUkVGSVgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgWyRhY19kZWZhdWx0X3ByZWZpeF0KKwkJCSAgWyRhY19kZWZhdWx0X3ByZWZpeF0KICAgLS1leGVjLXByZWZpeD1FUFJFRklYICAgaW5zdGFsbCBhcmNoaXRlY3R1cmUtZGVwZW5kZW50IGZpbGVzIGluIEVQUkVGSVgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgW1BSRUZJWF0KKwkJCSAgW1BSRUZJWF0KIAogQnkgZGVmYXVsdCwgXGBtYWtlIGluc3RhbGwnIHdpbGwgaW5zdGFsbCBhbGwgdGhlIGZpbGVzIGluCiBcYCRhY19kZWZhdWx0X3ByZWZpeC9iaW4nLCBcYCRhY19kZWZhdWx0X3ByZWZpeC9saWInIGV0Yy4gIFlvdSBjYW4gc3BlY2lmeQpAQCAtNjUzLDI1ICs4MzAsMjYgQEAKICAgLS1vbGRpbmNsdWRlZGlyPURJUiAgICBDIGhlYWRlciBmaWxlcyBmb3Igbm9uLWdjYyBbL3Vzci9pbmNsdWRlXQogICAtLWluZm9kaXI9RElSICAgICAgICAgIGluZm8gZG9jdW1lbnRhdGlvbiBbUFJFRklYL2luZm9dCiAgIC0tbWFuZGlyPURJUiAgICAgICAgICAgbWFuIGRvY3VtZW50YXRpb24gW1BSRUZJWC9tYW5dCi1FT0YKK19BQ0VPRgogCi0gIGNhdCA8PFxFT0YKKyAgY2F0IDw8XF9BQ0VPRgogCiBTeXN0ZW0gdHlwZXM6CiAgIC0tYnVpbGQ9QlVJTEQgICAgIGNvbmZpZ3VyZSBmb3IgYnVpbGRpbmcgb24gQlVJTEQgW2d1ZXNzZWRdCi0gIC0taG9zdD1IT1NUICAgICAgIGJ1aWxkIHByb2dyYW1zIHRvIHJ1biBvbiBIT1NUIFtCVUlMRF0KLUVPRgorICAtLWhvc3Q9SE9TVCAgICAgICBjcm9zcy1jb21waWxlIHRvIGJ1aWxkIHByb2dyYW1zIHRvIHJ1biBvbiBIT1NUIFtCVUlMRF0KK19BQ0VPRgogZmkKIAogaWYgdGVzdCAtbiAiJGFjX2luaXRfaGVscCI7IHRoZW4KICAgY2FzZSAkYWNfaW5pdF9oZWxwIGluCi0gICAgIHNob3J0IHwgcmVjdXJzaXZlICkgZWNobyAiQ29uZmlndXJhdGlvbiBvZiByZWFkbGluZSA0LjM6Ijs7CisgICAgIHNob3J0IHwgcmVjdXJzaXZlICkgZWNobyAiQ29uZmlndXJhdGlvbiBvZiByZWFkbGluZSA1LjEtYmV0YTE6Ijs7CiAgICBlc2FjCi0gIGNhdCA8PFxFT0YKKyAgY2F0IDw8XF9BQ0VPRgogCiBPcHRpb25hbCBGZWF0dXJlczoKICAgLS1kaXNhYmxlLUZFQVRVUkUgICAgICAgZG8gbm90IGluY2x1ZGUgRkVBVFVSRSAoc2FtZSBhcyAtLWVuYWJsZS1GRUFUVVJFPW5vKQogICAtLWVuYWJsZS1GRUFUVVJFWz1BUkddICBpbmNsdWRlIEZFQVRVUkUgW0FSRz15ZXNdCisgIC0tZW5hYmxlLW11bHRpYnl0ZSAgICAgIGVuYWJsZSBtdWx0aWJ5dGUgY2hhcmFjdGVycyBpZiBPUyBzdXBwb3J0cyB0aGVtCiAgIC0tZW5hYmxlLXNoYXJlZCAgICAgICAgIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMgW2RlZmF1bHQ9WUVTXQogICAtLWVuYWJsZS1zdGF0aWMgICAgICAgICBidWlsZCBzdGF0aWMgbGlicmFyaWVzIFtkZWZhdWx0PVlFU10KIApAQCAtNjgwLDYgKzg1OCw3IEBACiAgIC0td2l0aG91dC1QQUNLQUdFICAgICAgIGRvIG5vdCB1c2UgUEFDS0FHRSAoc2FtZSBhcyAtLXdpdGgtUEFDS0FHRT1ubykKICAgLS13aXRoLWN1cnNlcyAgICAgICAgICAgdXNlIHRoZSBjdXJzZXMgbGlicmFyeSBpbnN0ZWFkIG9mIHRoZSB0ZXJtY2FwCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnJhcnkKKyAgLS13aXRoLXB1cmlmeSAgICAgICAgICAgY29uZmlndXJlIHRvIHBvc3Rwcm9jZXNzIHdpdGggcHVyaWZ5CiAKIFNvbWUgaW5mbHVlbnRpYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzOgogICBDQyAgICAgICAgICBDIGNvbXBpbGVyIGNvbW1hbmQKQEAgLTY5NCw0MCArODczLDkzIEBACiBpdCB0byBmaW5kIGxpYnJhcmllcyBhbmQgcHJvZ3JhbXMgd2l0aCBub25zdGFuZGFyZCBuYW1lcy9sb2NhdGlvbnMuCiAKIFJlcG9ydCBidWdzIHRvIDxidWctcmVhZGxpbmVAZ251Lm9yZz4uCi1FT0YKK19BQ0VPRgogZmkKIAogaWYgdGVzdCAiJGFjX2luaXRfaGVscCIgPSAicmVjdXJzaXZlIjsgdGhlbgogICAjIElmIHRoZXJlIGFyZSBzdWJkaXJzLCByZXBvcnQgdGhlaXIgc3BlY2lmaWMgLS1oZWxwLgogICBhY19wb3BkaXI9YHB3ZGAKLSAgZm9yIGFjX3N1YmRpciBpbiA6ICRhY19zdWJkaXJzX2FsbDsgZG8gdGVzdCAieCRhY19zdWJkaXIiID0geDogJiYgY29udGludWUKLSAgICBjZCAkYWNfc3ViZGlyCi0gICAgIyBBICIuLi8iIGZvciBlYWNoIGRpcmVjdG9yeSBpbiAvJGFjX3N1YmRpci4KLSAgICBhY19kb3RzPWBlY2hvICRhY19zdWJkaXIgfAotICAgICAgICAgICAgIHNlZCAncyxeXC4vLCw7cyxbXi9dJCwmLyw7cyxbXi9dKi8sLi4vLGcnYAorICBmb3IgYWNfZGlyIGluIDogJGFjX3N1YmRpcnNfYWxsOyBkbyB0ZXN0ICJ4JGFjX2RpciIgPSB4OiAmJiBjb250aW51ZQorICAgIHRlc3QgLWQgJGFjX2RpciB8fCBjb250aW51ZQorICAgIGFjX2J1aWxkZGlyPS4KIAotICAgIGNhc2UgJHNyY2RpciBpbgotICAgIC4pICMgTm8gLS1zcmNkaXIgb3B0aW9uLiAgV2UgYXJlIGJ1aWxkaW5nIGluIHBsYWNlLgotICAgICAgYWNfc3ViX3NyY2Rpcj0kc3JjZGlyIDs7Ci0gICAgW1xcL10qIHwgPzpbXFwvXSogKSAjIEFic29sdXRlIHBhdGguCi0gICAgICBhY19zdWJfc3JjZGlyPSRzcmNkaXIvJGFjX3N1YmRpciA7OwotICAgICopICMgUmVsYXRpdmUgcGF0aC4KLSAgICAgIGFjX3N1Yl9zcmNkaXI9JGFjX2RvdHMkc3JjZGlyLyRhY19zdWJkaXIgOzsKLSAgICBlc2FjCitpZiB0ZXN0ICIkYWNfZGlyIiAhPSAuOyB0aGVuCisgIGFjX2Rpcl9zdWZmaXg9L2BlY2hvICIkYWNfZGlyIiB8IHNlZCAncyxeXC5bXFwvXSwsJ2AKKyAgIyBBICIuLi8iIGZvciBlYWNoIGRpcmVjdG9yeSBpbiAkYWNfZGlyX3N1ZmZpeC4KKyAgYWNfdG9wX2J1aWxkZGlyPWBlY2hvICIkYWNfZGlyX3N1ZmZpeCIgfCBzZWQgJ3MsL1teXFwvXSosLi4vLGcnYAorZWxzZQorICBhY19kaXJfc3VmZml4PSBhY190b3BfYnVpbGRkaXI9CitmaQogCitjYXNlICRzcmNkaXIgaW4KKyAgLikgICMgTm8gLS1zcmNkaXIgb3B0aW9uLiAgV2UgYXJlIGJ1aWxkaW5nIGluIHBsYWNlLgorICAgIGFjX3NyY2Rpcj0uCisgICAgaWYgdGVzdCAteiAiJGFjX3RvcF9idWlsZGRpciI7IHRoZW4KKyAgICAgICBhY190b3Bfc3JjZGlyPS4KKyAgICBlbHNlCisgICAgICAgYWNfdG9wX3NyY2Rpcj1gZWNobyAkYWNfdG9wX2J1aWxkZGlyIHwgc2VkICdzLC8kLCwnYAorICAgIGZpIDs7CisgIFtcXC9dKiB8ID86W1xcL10qICkgICMgQWJzb2x1dGUgcGF0aC4KKyAgICBhY19zcmNkaXI9JHNyY2RpciRhY19kaXJfc3VmZml4OworICAgIGFjX3RvcF9zcmNkaXI9JHNyY2RpciA7OworICAqKSAjIFJlbGF0aXZlIHBhdGguCisgICAgYWNfc3JjZGlyPSRhY190b3BfYnVpbGRkaXIkc3JjZGlyJGFjX2Rpcl9zdWZmaXgKKyAgICBhY190b3Bfc3JjZGlyPSRhY190b3BfYnVpbGRkaXIkc3JjZGlyIDs7Citlc2FjCisKKyMgRG8gbm90IHVzZSBgY2QgZm9vICYmIHB3ZGAgdG8gY29tcHV0ZSBhYnNvbHV0ZSBwYXRocywgYmVjYXVzZQorIyB0aGUgZGlyZWN0b3JpZXMgbWF5IG5vdCBleGlzdC4KK2Nhc2UgYHB3ZGAgaW4KKy4pIGFjX2Fic19idWlsZGRpcj0iJGFjX2RpciI7OworKikKKyAgY2FzZSAiJGFjX2RpciIgaW4KKyAgLikgYWNfYWJzX2J1aWxkZGlyPWBwd2RgOzsKKyAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfYnVpbGRkaXI9IiRhY19kaXIiOzsKKyAgKikgYWNfYWJzX2J1aWxkZGlyPWBwd2RgLyIkYWNfZGlyIjs7CisgIGVzYWM7OworZXNhYworY2FzZSAkYWNfYWJzX2J1aWxkZGlyIGluCisuKSBhY19hYnNfdG9wX2J1aWxkZGlyPSR7YWNfdG9wX2J1aWxkZGlyfS47OworKikKKyAgY2FzZSAke2FjX3RvcF9idWlsZGRpcn0uIGluCisgIC4pIGFjX2Fic190b3BfYnVpbGRkaXI9JGFjX2Fic19idWlsZGRpcjs7CisgIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX3RvcF9idWlsZGRpcj0ke2FjX3RvcF9idWlsZGRpcn0uOzsKKyAgKikgYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfYWJzX2J1aWxkZGlyLyR7YWNfdG9wX2J1aWxkZGlyfS47OworICBlc2FjOzsKK2VzYWMKK2Nhc2UgJGFjX2Fic19idWlsZGRpciBpbgorLikgYWNfYWJzX3NyY2Rpcj0kYWNfc3JjZGlyOzsKKyopCisgIGNhc2UgJGFjX3NyY2RpciBpbgorICAuKSBhY19hYnNfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXI7OworICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic19zcmNkaXI9JGFjX3NyY2Rpcjs7CisgICopIGFjX2Fic19zcmNkaXI9JGFjX2Fic19idWlsZGRpci8kYWNfc3JjZGlyOzsKKyAgZXNhYzs7Citlc2FjCitjYXNlICRhY19hYnNfYnVpbGRkaXIgaW4KKy4pIGFjX2Fic190b3Bfc3JjZGlyPSRhY190b3Bfc3JjZGlyOzsKKyopCisgIGNhc2UgJGFjX3RvcF9zcmNkaXIgaW4KKyAgLikgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX2Fic19idWlsZGRpcjs7CisgIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3RvcF9zcmNkaXI7OworICAqKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyLyRhY190b3Bfc3JjZGlyOzsKKyAgZXNhYzs7Citlc2FjCisKKyAgICBjZCAkYWNfZGlyCiAgICAgIyBDaGVjayBmb3IgZ3Vlc3RlZCBjb25maWd1cmU7IG90aGVyd2lzZSBnZXQgQ3lnbnVzIHN0eWxlIGNvbmZpZ3VyZS4KLSAgICBpZiB0ZXN0IC1mICRhY19zdWJfc3JjZGlyL2NvbmZpZ3VyZS5nbnU7IHRoZW4KKyAgICBpZiB0ZXN0IC1mICRhY19zcmNkaXIvY29uZmlndXJlLmdudTsgdGhlbgogICAgICAgZWNobwotICAgICAgJFNIRUxMICRhY19zdWJfc3JjZGlyL2NvbmZpZ3VyZS5nbnUgIC0taGVscD1yZWN1cnNpdmUKLSAgICBlbGlmIHRlc3QgLWYgJGFjX3N1Yl9zcmNkaXIvY29uZmlndXJlOyB0aGVuCisgICAgICAkU0hFTEwgJGFjX3NyY2Rpci9jb25maWd1cmUuZ251ICAtLWhlbHA9cmVjdXJzaXZlCisgICAgZWxpZiB0ZXN0IC1mICRhY19zcmNkaXIvY29uZmlndXJlOyB0aGVuCiAgICAgICBlY2hvCi0gICAgICAkU0hFTEwgJGFjX3N1Yl9zcmNkaXIvY29uZmlndXJlICAtLWhlbHA9cmVjdXJzaXZlCi0gICAgZWxpZiB0ZXN0IC1mICRhY19zdWJfc3JjZGlyL2NvbmZpZ3VyZS5hYyB8fAotICAgICAgICAgICB0ZXN0IC1mICRhY19zdWJfc3JjZGlyL2NvbmZpZ3VyZS5pbjsgdGhlbgorICAgICAgJFNIRUxMICRhY19zcmNkaXIvY29uZmlndXJlICAtLWhlbHA9cmVjdXJzaXZlCisgICAgZWxpZiB0ZXN0IC1mICRhY19zcmNkaXIvY29uZmlndXJlLmFjIHx8CisJICAgdGVzdCAtZiAkYWNfc3JjZGlyL2NvbmZpZ3VyZS5pbjsgdGhlbgogICAgICAgZWNobwogICAgICAgJGFjX2NvbmZpZ3VyZSAtLWhlbHAKICAgICBlbHNlCi0gICAgICBlY2hvICIkYXNfbWU6IFdBUk5JTkc6IG5vIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gaXMgaW4gJGFjX3N1YmRpciIgPiYyCisgICAgICBlY2hvICIkYXNfbWU6IFdBUk5JTkc6IG5vIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gaXMgaW4gJGFjX2RpciIgPiYyCiAgICAgZmkKICAgICBjZCAkYWNfcG9wZGlyCiAgIGRvbmUKQEAgLTczNSwzMyArOTY3LDMyIEBACiAKIHRlc3QgLW4gIiRhY19pbml0X2hlbHAiICYmIGV4aXQgMAogaWYgJGFjX2luaXRfdmVyc2lvbjsgdGhlbgotICBjYXQgPDxcRU9GCi1yZWFkbGluZSBjb25maWd1cmUgNC4zCi1nZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTIKKyAgY2F0IDw8XF9BQ0VPRgorcmVhZGxpbmUgY29uZmlndXJlIDUuMS1iZXRhMQorZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU5CiAKLUNvcHlyaWdodCAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxCi1GcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KK0NvcHlyaWdodCAoQykgMjAwMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIFRoaXMgY29uZmlndXJlIHNjcmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCiBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuCi1FT0YKK19BQ0VPRgogICBleGl0IDAKIGZpCiBleGVjIDU+Y29uZmlnLmxvZwotY2F0ID4mNSA8PEVPRgorY2F0ID4mNSA8PF9BQ0VPRgogVGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hpbGUKIHJ1bm5pbmcgY29uZmlndXJlLCB0byBhaWQgZGVidWdnaW5nIGlmIGNvbmZpZ3VyZSBtYWtlcyBhIG1pc3Rha2UuCiAKLUl0IHdhcyBjcmVhdGVkIGJ5IHJlYWRsaW5lICRhc19tZSA0LjMsIHdoaWNoIHdhcwotZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjUyLiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCitJdCB3YXMgY3JlYXRlZCBieSByZWFkbGluZSAkYXNfbWUgNS4xLWJldGExLCB3aGljaCB3YXMKK2dlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi41OS4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcwogCiAgICQgJDAgJEAKIAotRU9GCitfQUNFT0YKIHsKIGNhdCA8PF9BU1VOQU1FCi0jIyAtLS0tLS0tLS0tICMjCi0jIyBQbGF0Zm9ybS4gICMjCi0jIyAtLS0tLS0tLS0tICMjCisjIyAtLS0tLS0tLS0gIyMKKyMjIFBsYXRmb3JtLiAjIworIyMgLS0tLS0tLS0tICMjCiAKIGhvc3RuYW1lID0gYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgCiB1bmFtZSAtbSA9IGAodW5hbWUgLW0pIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKQEAgLTc4MCw3OSArMTAxMSwxNTYgQEAKIC91c3IvYmluL29zbGV2ZWwgICAgICAgPSBgKC91c3IvYmluL29zbGV2ZWwpIDI+L2Rldi9udWxsICAgICAgIHx8IGVjaG8gdW5rbm93bmAKIC9iaW4vdW5pdmVyc2UgICAgICAgICAgPSBgKC9iaW4vdW5pdmVyc2UpIDI+L2Rldi9udWxsICAgICAgICAgIHx8IGVjaG8gdW5rbm93bmAKIAotUEFUSCA9ICRQQVRICi0KIF9BU1VOQU1FCisKK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4gJFBBVEgKK2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKyAgZWNobyAiUEFUSDogJGFzX2RpciIKK2RvbmUKKwogfSA+JjUKIAotY2F0ID4mNSA8PEVPRgotIyMgLS0tLS0tLS0tLS0tICMjCi0jIyBDb3JlIHRlc3RzLiAgIyMKLSMjIC0tLS0tLS0tLS0tLSAjIworY2F0ID4mNSA8PF9BQ0VPRgogCi1FT0YKKworIyMgLS0tLS0tLS0tLS0gIyMKKyMjIENvcmUgdGVzdHMuICMjCisjIyAtLS0tLS0tLS0tLSAjIworCitfQUNFT0YKKwogCiAjIEtlZXAgYSB0cmFjZSBvZiB0aGUgY29tbWFuZCBsaW5lLgogIyBTdHJpcCBvdXQgLS1uby1jcmVhdGUgYW5kIC0tbm8tcmVjdXJzaW9uIHNvIHRoZXkgZG8gbm90IHBpbGUgdXAuCisjIFN0cmlwIG91dCAtLXNpbGVudCBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8gcmVjb3JkIGl0IGZvciBmdXR1cmUgcnVucy4KICMgQWxzbyBxdW90ZSBhbnkgYXJncyBjb250YWluaW5nIHNoZWxsIG1ldGEtY2hhcmFjdGVycy4KKyMgTWFrZSB0d28gcGFzc2VzIHRvIGFsbG93IGZvciBwcm9wZXIgZHVwbGljYXRlLWFyZ3VtZW50IHN1cHByZXNzaW9uLgogYWNfY29uZmlndXJlX2FyZ3M9CithY19jb25maWd1cmVfYXJnczA9CithY19jb25maWd1cmVfYXJnczE9CiBhY19zZXA9Ci1mb3IgYWNfYXJnCithY19tdXN0X2tlZXBfbmV4dD1mYWxzZQorZm9yIGFjX3Bhc3MgaW4gMSAyCiBkbwotICBjYXNlICRhY19hcmcgaW4KLSAgLW5vLWNyZWF0ZSB8IC0tbm8tY3JlYXRlIHwgLS1uby1jcmVhdCB8IC0tbm8tY3JlYSB8IC0tbm8tY3JlIFwKLSAgfCAtLW5vLWNyIHwgLS1uby1jKSA7OwotICAtbm8tcmVjdXJzaW9uIHwgLS1uby1yZWN1cnNpb24gfCAtLW5vLXJlY3Vyc2lvIHwgLS1uby1yZWN1cnNpIFwKLSAgfCAtLW5vLXJlY3VycyB8IC0tbm8tcmVjdXIgfCAtLW5vLXJlY3UgfCAtLW5vLXJlYyB8IC0tbm8tcmUgfCAtLW5vLXIpIDs7Ci0gICoiICIqfCoiCSIqfCpbXFtcXVx+XCNcJFxeXCZcKlwoXClce1x9XFxcfFw7XDxcPlw/XCJcJ10qKQotICAgIGFjX2FyZz1gZWNobyAiJGFjX2FyZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAKLSAgICBhY19jb25maWd1cmVfYXJncz0iJGFjX2NvbmZpZ3VyZV9hcmdzJGFjX3NlcCckYWNfYXJnJyIKLSAgICBhY19zZXA9IiAiIDs7Ci0gICopIGFjX2NvbmZpZ3VyZV9hcmdzPSIkYWNfY29uZmlndXJlX2FyZ3MkYWNfc2VwJGFjX2FyZyIKLSAgICAgYWNfc2VwPSIgIiA7OwotICBlc2FjCi0gICMgR2V0IHJpZCBvZiB0aGUgbGVhZGluZyBzcGFjZS4KKyAgZm9yIGFjX2FyZworICBkbworICAgIGNhc2UgJGFjX2FyZyBpbgorICAgIC1uby1jcmVhdGUgfCAtLW5vLWMqIHwgLW4gfCAtbm8tcmVjdXJzaW9uIHwgLS1uby1yKikgY29udGludWUgOzsKKyAgICAtcSB8IC1xdWlldCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAorICAgIHwgLXNpbGVudCB8IC0tc2lsZW50IHwgLS1zaWxlbiB8IC0tc2lsZSB8IC0tc2lsKQorICAgICAgY29udGludWUgOzsKKyAgICAqIiAiKnwqIgkiKnwqW1xbXF1cflwjXCRcXlwmXCpcKFwpXHtcfVxcXHxcO1w8XD5cP1wiXCddKikKKyAgICAgIGFjX2FyZz1gZWNobyAiJGFjX2FyZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsKKyAgICBlc2FjCisgICAgY2FzZSAkYWNfcGFzcyBpbgorICAgIDEpIGFjX2NvbmZpZ3VyZV9hcmdzMD0iJGFjX2NvbmZpZ3VyZV9hcmdzMCAnJGFjX2FyZyciIDs7CisgICAgMikKKyAgICAgIGFjX2NvbmZpZ3VyZV9hcmdzMT0iJGFjX2NvbmZpZ3VyZV9hcmdzMSAnJGFjX2FyZyciCisgICAgICBpZiB0ZXN0ICRhY19tdXN0X2tlZXBfbmV4dCA9IHRydWU7IHRoZW4KKwlhY19tdXN0X2tlZXBfbmV4dD1mYWxzZSAjIEdvdCB2YWx1ZSwgYmFjayB0byBub3JtYWwuCisgICAgICBlbHNlCisJY2FzZSAkYWNfYXJnIGluCisJICAqPSogfCAtLWNvbmZpZy1jYWNoZSB8IC1DIHwgLWRpc2FibGUtKiB8IC0tZGlzYWJsZS0qIFwKKwkgIHwgLWVuYWJsZS0qIHwgLS1lbmFibGUtKiB8IC1nYXMgfCAtLWcqIHwgLW5mcCB8IC0tbmYqIFwKKwkgIHwgLXEgfCAtcXVpZXQgfCAtLXEqIHwgLXNpbGVudCB8IC0tc2lsKiB8IC12IHwgLXZlcmIqIFwKKwkgIHwgLXdpdGgtKiB8IC0td2l0aC0qIHwgLXdpdGhvdXQtKiB8IC0td2l0aG91dC0qIHwgLS14KQorCSAgICBjYXNlICIkYWNfY29uZmlndXJlX2FyZ3MwICIgaW4KKwkgICAgICAiJGFjX2NvbmZpZ3VyZV9hcmdzMSIqIiAnJGFjX2FyZycgIiogKSBjb250aW51ZSA7OworCSAgICBlc2FjCisJICAgIDs7CisJICAtKiApIGFjX211c3Rfa2VlcF9uZXh0PXRydWUgOzsKKwllc2FjCisgICAgICBmaQorICAgICAgYWNfY29uZmlndXJlX2FyZ3M9IiRhY19jb25maWd1cmVfYXJncyRhY19zZXAnJGFjX2FyZyciCisgICAgICAjIEdldCByaWQgb2YgdGhlIGxlYWRpbmcgc3BhY2UuCisgICAgICBhY19zZXA9IiAiCisgICAgICA7OworICAgIGVzYWMKKyAgZG9uZQogZG9uZQorJGFzX3Vuc2V0IGFjX2NvbmZpZ3VyZV9hcmdzMCB8fCB0ZXN0ICIke2FjX2NvbmZpZ3VyZV9hcmdzMCtzZXR9IiAhPSBzZXQgfHwgeyBhY19jb25maWd1cmVfYXJnczA9OyBleHBvcnQgYWNfY29uZmlndXJlX2FyZ3MwOyB9CiskYXNfdW5zZXQgYWNfY29uZmlndXJlX2FyZ3MxIHx8IHRlc3QgIiR7YWNfY29uZmlndXJlX2FyZ3MxK3NldH0iICE9IHNldCB8fCB7IGFjX2NvbmZpZ3VyZV9hcmdzMT07IGV4cG9ydCBhY19jb25maWd1cmVfYXJnczE7IH0KIAogIyBXaGVuIGludGVycnVwdGVkIG9yIGV4aXQnZCwgY2xlYW51cCB0ZW1wb3JhcnkgZmlsZXMsIGFuZCBjb21wbGV0ZQogIyBjb25maWcubG9nLiAgV2UgcmVtb3ZlIGNvbW1lbnRzIGJlY2F1c2UgYW55d2F5IHRoZSBxdW90ZXMgaW4gdGhlcmUKICMgd291bGQgY2F1c2UgcHJvYmxlbXMgb3IgbG9vayB1Z2x5LgorIyBXQVJOSU5HOiBCZSBzdXJlIG5vdCB0byB1c2Ugc2luZ2xlIHF1b3RlcyBpbiB0aGVyZSwgYXMgc29tZSBzaGVsbHMsCisjIHN1Y2ggYXMgb3VyIERVIDUuMCBmcmllbmQsIHdpbGwgdGhlbiBgY2xvc2UnIHRoZSB0cmFwLgogdHJhcCAnZXhpdF9zdGF0dXM9JD8KICAgIyBTYXZlIGludG8gY29uZmlnLmxvZyBzb21lIGluZm9ybWF0aW9uIHRoYXQgbWlnaHQgaGVscCBpbiBkZWJ1Z2dpbmcuCi0gIGVjaG8gPiY1Ci0gIGVjaG8gIiMjIC0tLS0tLS0tLS0tLS0tLS0tICMjIiA+JjUKLSAgZWNobyAiIyMgQ2FjaGUgdmFyaWFibGVzLiAgIyMiID4mNQotICBlY2hvICIjIyAtLS0tLS0tLS0tLS0tLS0tLSAjIyIgPiY1Ci0gIGVjaG8gPiY1Ci0gICMgVGhlIGZvbGxvd2luZyB3YXkgb2Ygd3JpdGluZyB0aGUgY2FjaGUgbWlzaGFuZGxlcyBuZXdsaW5lcyBpbiB2YWx1ZXMsCisgIHsKKyAgICBlY2hvCisKKyAgICBjYXQgPDxcX0FTQk9YCisjIyAtLS0tLS0tLS0tLS0tLS0tICMjCisjIyBDYWNoZSB2YXJpYWJsZXMuICMjCisjIyAtLS0tLS0tLS0tLS0tLS0tICMjCitfQVNCT1gKKyAgICBlY2hvCisgICAgIyBUaGUgZm9sbG93aW5nIHdheSBvZiB3cml0aW5nIHRoZSBjYWNoZSBtaXNoYW5kbGVzIG5ld2xpbmVzIGluIHZhbHVlcywKIHsKICAgKHNldCkgMj4mMSB8CiAgICAgY2FzZSBgKGFjX3NwYWNlPSciJyInICciJyInOyBzZXQgfCBncmVwIGFjX3NwYWNlKSAyPiYxYCBpbgogICAgICphY19zcGFjZT1cICopCiAgICAgICBzZWQgLW4gXAotICAgICAgICAicy8nIiciJy8nIiciJ1xcXFwnIiciJyciJyInL2c7Ci0gICAgCSAgcy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4qXFwpL1xcMT0nIiciJ1xcMiciJyInL3AiCisJInMvJyInIicvJyInIidcXFxcJyInIicnIiciJy9nOworCSAgcy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4qXFwpL1xcMT0nIiciJ1xcMiciJyInL3AiCiAgICAgICA7OwogICAgICopCiAgICAgICBzZWQgLW4gXAotICAgICAgICAicy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4qXFwpL1xcMT1cXDIvcCIKKwkicy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4qXFwpL1xcMT1cXDIvcCIKICAgICAgIDs7CiAgICAgZXNhYzsKLX0gPiY1Ci0gIHNlZCAiL14kL2QiIGNvbmZkZWZzLmggPmNvbmZ0ZXN0LmxvZwotICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmxvZzsgdGhlbgotICAgIGVjaG8gPiY1Ci0gICAgZWNobyAiIyMgLS0tLS0tLS0tLS0tICMjIiA+JjUKLSAgICBlY2hvICIjIyBjb25mZGVmcy5oLiAgIyMiID4mNQotICAgIGVjaG8gIiMjIC0tLS0tLS0tLS0tLSAjIyIgPiY1Ci0gICAgZWNobyA+JjUKLSAgICBjYXQgY29uZnRlc3QubG9nID4mNQotICBmaQotICAoZWNobzsgZWNobykgPiY1Ci0gIHRlc3QgIiRhY19zaWduYWwiICE9IDAgJiYKLSAgICBlY2hvICIkYXNfbWU6IGNhdWdodCBzaWduYWwgJGFjX3NpZ25hbCIgPiY1Ci0gIGVjaG8gIiRhc19tZTogZXhpdCAkZXhpdF9zdGF0dXMiID4mNQotICBybSAtcmYgY29uZnRlc3QqIGNvbmZkZWZzKiBjb3JlIGNvcmUuKiAqLmNvcmUgY29uZiQkKiAkYWNfY2xlYW5fZmlsZXMgJiYKK30KKyAgICBlY2hvCisKKyAgICBjYXQgPDxcX0FTQk9YCisjIyAtLS0tLS0tLS0tLS0tLS0tLSAjIworIyMgT3V0cHV0IHZhcmlhYmxlcy4gIyMKKyMjIC0tLS0tLS0tLS0tLS0tLS0tICMjCitfQVNCT1gKKyAgICBlY2hvCisgICAgZm9yIGFjX3ZhciBpbiAkYWNfc3Vic3RfdmFycworICAgIGRvCisgICAgICBldmFsIGFjX3ZhbD0kYGVjaG8gJGFjX3ZhcmAKKyAgICAgIGVjaG8gIiRhY192YXI9JyInIickYWNfdmFsJyInIiciCisgICAgZG9uZSB8IHNvcnQKKyAgICBlY2hvCisKKyAgICBpZiB0ZXN0IC1uICIkYWNfc3Vic3RfZmlsZXMiOyB0aGVuCisgICAgICBjYXQgPDxcX0FTQk9YCisjIyAtLS0tLS0tLS0tLS0tICMjCisjIyBPdXRwdXQgZmlsZXMuICMjCisjIyAtLS0tLS0tLS0tLS0tICMjCitfQVNCT1gKKyAgICAgIGVjaG8KKyAgICAgIGZvciBhY192YXIgaW4gJGFjX3N1YnN0X2ZpbGVzCisgICAgICBkbworCWV2YWwgYWNfdmFsPSRgZWNobyAkYWNfdmFyYAorCWVjaG8gIiRhY192YXI9JyInIickYWNfdmFsJyInIiciCisgICAgICBkb25lIHwgc29ydAorICAgICAgZWNobworICAgIGZpCisKKyAgICBpZiB0ZXN0IC1zIGNvbmZkZWZzLmg7IHRoZW4KKyAgICAgIGNhdCA8PFxfQVNCT1gKKyMjIC0tLS0tLS0tLS0tICMjCisjIyBjb25mZGVmcy5oLiAjIworIyMgLS0tLS0tLS0tLS0gIyMKK19BU0JPWAorICAgICAgZWNobworICAgICAgc2VkICIvXiQvZCIgY29uZmRlZnMuaCB8IHNvcnQKKyAgICAgIGVjaG8KKyAgICBmaQorICAgIHRlc3QgIiRhY19zaWduYWwiICE9IDAgJiYKKyAgICAgIGVjaG8gIiRhc19tZTogY2F1Z2h0IHNpZ25hbCAkYWNfc2lnbmFsIgorICAgIGVjaG8gIiRhc19tZTogZXhpdCAkZXhpdF9zdGF0dXMiCisgIH0gPiY1CisgIHJtIC1mIGNvcmUgKi5jb3JlICYmCisgIHJtIC1yZiBjb25mdGVzdCogY29uZmRlZnMqIGNvbmYkJCogJGFjX2NsZWFuX2ZpbGVzICYmCiAgICAgZXhpdCAkZXhpdF9zdGF0dXMKICAgICAgJyAwCiBmb3IgYWNfc2lnbmFsIGluIDEgMiAxMyAxNTsgZG8KQEAgLTg2NSw2ICsxMTczLDMzIEBACiAjIEFJWCBjcHAgbG9zZXMgb24gYW4gZW1wdHkgZmlsZSwgc28gbWFrZSBzdXJlIGl0IGNvbnRhaW5zIGF0IGxlYXN0IGEgbmV3bGluZS4KIGVjaG8gPmNvbmZkZWZzLmgKIAorIyBQcmVkZWZpbmVkIHByZXByb2Nlc3NvciB2YXJpYWJsZXMuCisKK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgUEFDS0FHRV9OQU1FICIkUEFDS0FHRV9OQU1FIgorX0FDRU9GCisKKworY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIiRQQUNLQUdFX1RBUk5BTUUiCitfQUNFT0YKKworCitjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiJFBBQ0tBR0VfVkVSU0lPTiIKK19BQ0VPRgorCisKK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIiRQQUNLQUdFX1NUUklORyIKK19BQ0VPRgorCisKK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgIiRQQUNLQUdFX0JVR1JFUE9SVCIKK19BQ0VPRgorCisKICMgTGV0IHRoZSBzaXRlIGZpbGUgc2VsZWN0IGFuIGFsdGVybmF0ZSBjYWNoZSBmaWxlIGlmIGl0IHdhbnRzIHRvLgogIyBQcmVmZXIgZXhwbGljaXRseSBzZWxlY3RlZCBmaWxlIHRvIGF1dG9tYXRpY2FsbHkgc2VsZWN0ZWQgb25lcy4KIGlmIHRlc3QgLXogIiRDT05GSUdfU0lURSI7IHRoZW4KQEAgLTg3Niw5ICsxMjExLDkgQEAKIGZpCiBmb3IgYWNfc2l0ZV9maWxlIGluICRDT05GSUdfU0lURTsgZG8KICAgaWYgdGVzdCAtciAiJGFjX3NpdGVfZmlsZSI7IHRoZW4KLSAgICB7IGVjaG8gIiRhc19tZTo4Nzk6IGxvYWRpbmcgc2l0ZSBzY3JpcHQgJGFjX3NpdGVfZmlsZSIgPiY1CisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogbG9hZGluZyBzaXRlIHNjcmlwdCAkYWNfc2l0ZV9maWxlIiA+JjUKIGVjaG8gIiRhc19tZTogbG9hZGluZyBzaXRlIHNjcmlwdCAkYWNfc2l0ZV9maWxlIiA+JjY7fQotICAgIGNhdCAiJGFjX3NpdGVfZmlsZSIgPiY1CisgICAgc2VkICdzL14vfCAvJyAiJGFjX3NpdGVfZmlsZSIgPiY1CiAgICAgLiAiJGFjX3NpdGVfZmlsZSIKICAgZmkKIGRvbmUKQEAgLTg4Nyw3ICsxMjIyLDcgQEAKICAgIyBTb21lIHZlcnNpb25zIG9mIGJhc2ggd2lsbCBmYWlsIHRvIHNvdXJjZSAvZGV2L251bGwgKHNwZWNpYWwKICAgIyBmaWxlcyBhY3R1YWxseSksIHNvIHdlIGF2b2lkIGRvaW5nIHRoYXQuCiAgIGlmIHRlc3QgLWYgIiRjYWNoZV9maWxlIjsgdGhlbgotICAgIHsgZWNobyAiJGFzX21lOjg5MDogbG9hZGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1CisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogbG9hZGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1CiBlY2hvICIkYXNfbWU6IGxvYWRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNjt9CiAgICAgY2FzZSAkY2FjaGVfZmlsZSBpbgogICAgICAgW1xcL10qIHwgPzpbXFwvXSogKSAuICRjYWNoZV9maWxlOzsKQEAgLTg5NSw3ICsxMjMwLDcgQEAKICAgICBlc2FjCiAgIGZpCiBlbHNlCi0gIHsgZWNobyAiJGFzX21lOjg5ODogY3JlYXRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNQorICB7IGVjaG8gIiRhc19tZTokTElORU5POiBjcmVhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1CiBlY2hvICIkYXNfbWU6IGNyZWF0aW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjY7fQogICA+JGNhY2hlX2ZpbGUKIGZpCkBAIC05MDQsNDkgKzEyMzksNDkgQEAKICMgdmFsdWUuCiBhY19jYWNoZV9jb3JydXB0ZWQ9ZmFsc2UKIGZvciBhY192YXIgaW4gYChzZXQpIDI+JjEgfAotICAgICAgICAgICAgICAgc2VkIC1uICdzL15hY19lbnZfXChbYS16QS1aXzAtOV0qXClfc2V0PS4qL1wxL3AnYDsgZG8KKwkgICAgICAgc2VkIC1uICdzL15hY19lbnZfXChbYS16QS1aXzAtOV0qXClfc2V0PS4qL1wxL3AnYDsgZG8KICAgZXZhbCBhY19vbGRfc2V0PVwkYWNfY3ZfZW52XyR7YWNfdmFyfV9zZXQKICAgZXZhbCBhY19uZXdfc2V0PVwkYWNfZW52XyR7YWNfdmFyfV9zZXQKICAgZXZhbCBhY19vbGRfdmFsPSJcJGFjX2N2X2Vudl8ke2FjX3Zhcn1fdmFsdWUiCiAgIGV2YWwgYWNfbmV3X3ZhbD0iXCRhY19lbnZfJHthY192YXJ9X3ZhbHVlIgogICBjYXNlICRhY19vbGRfc2V0LCRhY19uZXdfc2V0IGluCiAgICAgc2V0LCkKLSAgICAgIHsgZWNobyAiJGFzX21lOjkxNDogZXJyb3I6IFxgJGFjX3Zhcicgd2FzIHNldCB0byBcYCRhY19vbGRfdmFsJyBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjUKKyAgICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBcYCRhY192YXInIHdhcyBzZXQgdG8gXGAkYWNfb2xkX3ZhbCcgaW4gdGhlIHByZXZpb3VzIHJ1biIgPiY1CiBlY2hvICIkYXNfbWU6IGVycm9yOiBcYCRhY192YXInIHdhcyBzZXQgdG8gXGAkYWNfb2xkX3ZhbCcgaW4gdGhlIHByZXZpb3VzIHJ1biIgPiYyO30KICAgICAgIGFjX2NhY2hlX2NvcnJ1cHRlZD06IDs7CiAgICAgLHNldCkKLSAgICAgIHsgZWNobyAiJGFzX21lOjkxODogZXJyb3I6IFxgJGFjX3Zhcicgd2FzIG5vdCBzZXQgaW4gdGhlIHByZXZpb3VzIHJ1biIgPiY1CisgICAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgbm90IHNldCBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjUKIGVjaG8gIiRhc19tZTogZXJyb3I6IFxgJGFjX3Zhcicgd2FzIG5vdCBzZXQgaW4gdGhlIHByZXZpb3VzIHJ1biIgPiYyO30KICAgICAgIGFjX2NhY2hlX2NvcnJ1cHRlZD06IDs7CiAgICAgLCk7OwogICAgICopCiAgICAgICBpZiB0ZXN0ICJ4JGFjX29sZF92YWwiICE9ICJ4JGFjX25ld192YWwiOyB0aGVuCi0gICAgICAgIHsgZWNobyAiJGFzX21lOjkyNDogZXJyb3I6IFxgJGFjX3ZhcicgaGFzIGNoYW5nZWQgc2luY2UgdGhlIHByZXZpb3VzIHJ1bjoiID4mNQorCXsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBcYCRhY192YXInIGhhcyBjaGFuZ2VkIHNpbmNlIHRoZSBwcmV2aW91cyBydW46IiA+JjUKIGVjaG8gIiRhc19tZTogZXJyb3I6IFxgJGFjX3ZhcicgaGFzIGNoYW5nZWQgc2luY2UgdGhlIHByZXZpb3VzIHJ1bjoiID4mMjt9Ci0gICAgICAgIHsgZWNobyAiJGFzX21lOjkyNjogICBmb3JtZXIgdmFsdWU6ICAkYWNfb2xkX3ZhbCIgPiY1CisJeyBlY2hvICIkYXNfbWU6JExJTkVOTzogICBmb3JtZXIgdmFsdWU6ICAkYWNfb2xkX3ZhbCIgPiY1CiBlY2hvICIkYXNfbWU6ICAgZm9ybWVyIHZhbHVlOiAgJGFjX29sZF92YWwiID4mMjt9Ci0gICAgICAgIHsgZWNobyAiJGFzX21lOjkyODogICBjdXJyZW50IHZhbHVlOiAkYWNfbmV3X3ZhbCIgPiY1CisJeyBlY2hvICIkYXNfbWU6JExJTkVOTzogICBjdXJyZW50IHZhbHVlOiAkYWNfbmV3X3ZhbCIgPiY1CiBlY2hvICIkYXNfbWU6ICAgY3VycmVudCB2YWx1ZTogJGFjX25ld192YWwiID4mMjt9Ci0gICAgICAgIGFjX2NhY2hlX2NvcnJ1cHRlZD06CisJYWNfY2FjaGVfY29ycnVwdGVkPToKICAgICAgIGZpOzsKICAgZXNhYwotICAjIFBhc3MgcHJlY2lvdXMgdmFyaWFibGVzIHRvIGNvbmZpZy5zdGF0dXMuICBJdCBkb2Vzbid0IG1hdHRlciBpZgotICAjIHdlIHBhc3Mgc29tZSB0d2ljZSAoaW4gYWRkaXRpb24gdG8gdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudHMpLgorICAjIFBhc3MgcHJlY2lvdXMgdmFyaWFibGVzIHRvIGNvbmZpZy5zdGF0dXMuCiAgIGlmIHRlc3QgIiRhY19uZXdfc2V0IiA9IHNldDsgdGhlbgogICAgIGNhc2UgJGFjX25ld192YWwgaW4KICAgICAqIiAiKnwqIgkiKnwqW1xbXF1cflwjXCRcXlwmXCpcKFwpXHtcfVxcXHxcO1w8XD5cP1wiXCddKikKLSAgICAgIGFjX2FyZz0kYWNfdmFyPWBlY2hvICIkYWNfbmV3X3ZhbCIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAKLSAgICAgIGFjX2NvbmZpZ3VyZV9hcmdzPSIkYWNfY29uZmlndXJlX2FyZ3MgJyRhY19hcmcnIgotICAgICAgOzsKLSAgICAqKSBhY19jb25maWd1cmVfYXJncz0iJGFjX2NvbmZpZ3VyZV9hcmdzICRhY192YXI9JGFjX25ld192YWwiCi0gICAgICAgOzsKKyAgICAgIGFjX2FyZz0kYWNfdmFyPWBlY2hvICIkYWNfbmV3X3ZhbCIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsKKyAgICAqKSBhY19hcmc9JGFjX3Zhcj0kYWNfbmV3X3ZhbCA7OworICAgIGVzYWMKKyAgICBjYXNlICIgJGFjX2NvbmZpZ3VyZV9hcmdzICIgaW4KKyAgICAgICoiICckYWNfYXJnJyAiKikgOzsgIyBBdm9pZCBkdXBzLiAgVXNlIG9mIHF1b3RlcyBlbnN1cmVzIGFjY3VyYWN5LgorICAgICAgKikgYWNfY29uZmlndXJlX2FyZ3M9IiRhY19jb25maWd1cmVfYXJncyAnJGFjX2FyZyciIDs7CiAgICAgZXNhYwogICBmaQogZG9uZQogaWYgJGFjX2NhY2hlX2NvcnJ1cHRlZDsgdGhlbgotICB7IGVjaG8gIiRhc19tZTo5NDc6IGVycm9yOiBjaGFuZ2VzIGluIHRoZSBlbnZpcm9ubWVudCBjYW4gY29tcHJvbWlzZSB0aGUgYnVpbGQiID4mNQorICB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2hhbmdlcyBpbiB0aGUgZW52aXJvbm1lbnQgY2FuIGNvbXByb21pc2UgdGhlIGJ1aWxkIiA+JjUKIGVjaG8gIiRhc19tZTogZXJyb3I6IGNoYW5nZXMgaW4gdGhlIGVudmlyb25tZW50IGNhbiBjb21wcm9taXNlIHRoZSBidWlsZCIgPiYyO30KLSAgeyB7IGVjaG8gIiRhc19tZTo5NDk6IGVycm9yOiBydW4gXGBtYWtlIGRpc3RjbGVhbicgYW5kL29yIFxgcm0gJGNhY2hlX2ZpbGUnIGFuZCBzdGFydCBvdmVyIiA+JjUKKyAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogcnVuIFxgbWFrZSBkaXN0Y2xlYW4nIGFuZC9vciBcYHJtICRjYWNoZV9maWxlJyBhbmQgc3RhcnQgb3ZlciIgPiY1CiBlY2hvICIkYXNfbWU6IGVycm9yOiBydW4gXGBtYWtlIGRpc3RjbGVhbicgYW5kL29yIFxgcm0gJGNhY2hlX2ZpbGUnIGFuZCBzdGFydCBvdmVyIiA+JjI7fQogICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CiBmaQpAQCAtOTU3LDI2ICsxMjkyLDM1IEBACiBhY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwogYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQogCi1jYXNlIGBlY2hvICJ0ZXN0aW5nXGMiOyBlY2hvIDEsMiwzYCxgZWNobyAtbiB0ZXN0aW5nOyBlY2hvIDEsMiwzYCBpbgotICAqYyosLW4qKSBFQ0hPX049IEVDSE9fQz0nCi0nIEVDSE9fVD0nCScgOzsKLSAgKmMqLCogICkgRUNIT19OPS1uIEVDSE9fQz0gRUNIT19UPSA7OwotICAqKSAgICAgIEVDSE9fTj0gRUNIT19DPSdcYycgRUNIT19UPSA7OwotZXNhYwotZWNobyAiIyEgJFNIRUxMIiA+Y29uZnRlc3Quc2gKLWVjaG8gICJleGl0IDAiICAgPj5jb25mdGVzdC5zaAotY2htb2QgK3ggY29uZnRlc3Quc2gKLWlmIHsgKGVjaG8gIiRhc19tZTo5Njk6IFBBVEg9XCIuOy5cIjsgY29uZnRlc3Quc2giKSA+JjUKLSAgKFBBVEg9Ii47LiI7IGNvbmZ0ZXN0LnNoKSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6OTcyOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KLSAgYWNfcGF0aF9zZXBhcmF0b3I9JzsnCi1lbHNlCi0gIGFjX3BhdGhfc2VwYXJhdG9yPToKLWZpCi1QQVRIX1NFUEFSQVRPUj0iJGFjX3BhdGhfc2VwYXJhdG9yIgotcm0gLWYgY29uZnRlc3Quc2gKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisKKworCiAKIGFjX2F1eF9kaXI9CiBmb3IgYWNfZGlyIGluIC4vc3VwcG9ydCAkc3JjZGlyLy4vc3VwcG9ydDsgZG8KQEAgLTk5NSw3ICsxMzM5LDcgQEAKICAgZmkKIGRvbmUKIGlmIHRlc3QgLXogIiRhY19hdXhfZGlyIjsgdGhlbgotICB7IHsgZWNobyAiJGFzX21lOjk5ODogZXJyb3I6IGNhbm5vdCBmaW5kIGluc3RhbGwtc2ggb3IgaW5zdGFsbC5zaCBpbiAuL3N1cHBvcnQgJHNyY2Rpci8uL3N1cHBvcnQiID4mNQorICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBpbnN0YWxsLXNoIG9yIGluc3RhbGwuc2ggaW4gLi9zdXBwb3J0ICRzcmNkaXIvLi9zdXBwb3J0IiA+JjUKIGVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIGluc3RhbGwtc2ggb3IgaW5zdGFsbC5zaCBpbiAuL3N1cHBvcnQgJHNyY2Rpci8uL3N1cHBvcnQiID4mMjt9CiAgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KIGZpCkBAIC0xMDAzLDE3ICsxMzQ3LDE4IEBACiBhY19jb25maWdfc3ViPSIkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIKIGFjX2NvbmZpZ3VyZT0iJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZ3VyZSIgIyBUaGlzIHNob3VsZCBiZSBDeWdudXMgY29uZmlndXJlLgogCi1hY19jb25maWdfaGVhZGVycz0iJGFjX2NvbmZpZ19oZWFkZXJzIGNvbmZpZy5oIgorICAgICAgICAgIGFjX2NvbmZpZ19oZWFkZXJzPSIkYWNfY29uZmlnX2hlYWRlcnMgY29uZmlnLmgiCiAKLUxJQlZFUlNJT049NC4zCisKK0xJQlZFUlNJT049NS4xCiAKICMgTWFrZSBzdXJlIHdlIGNhbiBydW4gY29uZmlnLnN1Yi4KICRhY19jb25maWdfc3ViIHN1bjQgPi9kZXYvbnVsbCAyPiYxIHx8Ci0gIHsgeyBlY2hvICIkYXNfbWU6MTAxMjogZXJyb3I6IGNhbm5vdCBydW4gJGFjX2NvbmZpZ19zdWIiID4mNQorICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgcnVuICRhY19jb25maWdfc3ViIiA+JjUKIGVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBydW4gJGFjX2NvbmZpZ19zdWIiID4mMjt9CiAgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KIAotZWNobyAiJGFzX21lOjEwMTY6IGNoZWNraW5nIGJ1aWxkIHN5c3RlbSB0eXBlIiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBidWlsZCBzeXN0ZW0gdHlwZSIgPiY1CiBlY2hvICRFQ0hPX04gImNoZWNraW5nIGJ1aWxkIHN5c3RlbSB0eXBlLi4uICRFQ0hPX0MiID4mNgogaWYgdGVzdCAiJHthY19jdl9idWlsZCtzZXR9IiA9IHNldDsgdGhlbgogICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgpAQCAtMTAyMiwyMyArMTM2NywyNCBAQAogdGVzdCAteiAiJGFjX2N2X2J1aWxkX2FsaWFzIiAmJgogICBhY19jdl9idWlsZF9hbGlhcz1gJGFjX2NvbmZpZ19ndWVzc2AKIHRlc3QgLXogIiRhY19jdl9idWlsZF9hbGlhcyIgJiYKLSAgeyB7IGVjaG8gIiRhc19tZToxMDI1OiBlcnJvcjogY2Fubm90IGd1ZXNzIGJ1aWxkIHR5cGU7IHlvdSBtdXN0IHNwZWNpZnkgb25lIiA+JjUKKyAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGd1ZXNzIGJ1aWxkIHR5cGU7IHlvdSBtdXN0IHNwZWNpZnkgb25lIiA+JjUKIGVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBndWVzcyBidWlsZCB0eXBlOyB5b3UgbXVzdCBzcGVjaWZ5IG9uZSIgPiYyO30KICAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQogYWNfY3ZfYnVpbGQ9YCRhY19jb25maWdfc3ViICRhY19jdl9idWlsZF9hbGlhc2AgfHwKLSAgeyB7IGVjaG8gIiRhc19tZToxMDI5OiBlcnJvcjogJGFjX2NvbmZpZ19zdWIgJGFjX2N2X2J1aWxkX2FsaWFzIGZhaWxlZC4iID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogJGFjX2NvbmZpZ19zdWIgJGFjX2N2X2J1aWxkX2FsaWFzIGZhaWxlZC4iID4mMjt9CisgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6ICRhY19jb25maWdfc3ViICRhY19jdl9idWlsZF9hbGlhcyBmYWlsZWQiID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogJGFjX2NvbmZpZ19zdWIgJGFjX2N2X2J1aWxkX2FsaWFzIGZhaWxlZCIgPiYyO30KICAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQogCiBmaQotZWNobyAiJGFzX21lOjEwMzQ6IHJlc3VsdDogJGFjX2N2X2J1aWxkIiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9idWlsZCIgPiY1CiBlY2hvICIke0VDSE9fVH0kYWNfY3ZfYnVpbGQiID4mNgogYnVpbGQ9JGFjX2N2X2J1aWxkCiBidWlsZF9jcHU9YGVjaG8gJGFjX2N2X2J1aWxkIHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDEvJ2AKIGJ1aWxkX3ZlbmRvcj1gZWNobyAkYWNfY3ZfYnVpbGQgfCBzZWQgJ3MvXlwoW14tXSpcKS1cKFteLV0qXCktXCguKlwpJC9cMi8nYAogYnVpbGRfb3M9YGVjaG8gJGFjX2N2X2J1aWxkIHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDMvJ2AKIAotZWNobyAiJGFzX21lOjEwNDE6IGNoZWNraW5nIGhvc3Qgc3lzdGVtIHR5cGUiID4mNQorCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZSIgPiY1CiBlY2hvICRFQ0hPX04gImNoZWNraW5nIGhvc3Qgc3lzdGVtIHR5cGUuLi4gJEVDSE9fQyIgPiY2CiBpZiB0ZXN0ICIke2FjX2N2X2hvc3Qrc2V0fSIgPSBzZXQ7IHRoZW4KICAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKQEAgLTEwNDcsMTkgKzEzOTMsMjMgQEAKIHRlc3QgLXogIiRhY19jdl9ob3N0X2FsaWFzIiAmJgogICBhY19jdl9ob3N0X2FsaWFzPSRhY19jdl9idWlsZF9hbGlhcwogYWNfY3ZfaG9zdD1gJGFjX2NvbmZpZ19zdWIgJGFjX2N2X2hvc3RfYWxpYXNgIHx8Ci0gIHsgeyBlY2hvICIkYXNfbWU6MTA1MDogZXJyb3I6ICRhY19jb25maWdfc3ViICRhY19jdl9ob3N0X2FsaWFzIGZhaWxlZCIgPiY1CisgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6ICRhY19jb25maWdfc3ViICRhY19jdl9ob3N0X2FsaWFzIGZhaWxlZCIgPiY1CiBlY2hvICIkYXNfbWU6IGVycm9yOiAkYWNfY29uZmlnX3N1YiAkYWNfY3ZfaG9zdF9hbGlhcyBmYWlsZWQiID4mMjt9CiAgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KIAogZmkKLWVjaG8gIiRhc19tZToxMDU1OiByZXN1bHQ6ICRhY19jdl9ob3N0IiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9ob3N0IiA+JjUKIGVjaG8gIiR7RUNIT19UfSRhY19jdl9ob3N0IiA+JjYKIGhvc3Q9JGFjX2N2X2hvc3QKIGhvc3RfY3B1PWBlY2hvICRhY19jdl9ob3N0IHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDEvJ2AKIGhvc3RfdmVuZG9yPWBlY2hvICRhY19jdl9ob3N0IHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDIvJ2AKIGhvc3Rfb3M9YGVjaG8gJGFjX2N2X2hvc3QgfCBzZWQgJ3MvXlwoW14tXSpcKS1cKFteLV0qXCktXCguKlwpJC9cMy8nYAogCisKKwogb3B0X2N1cnNlcz1ubworb3B0X3B1cmlmeT1ubworCiAKICMgQ2hlY2sgd2hldGhlciAtLXdpdGgtY3Vyc2VzIG9yIC0td2l0aG91dC1jdXJzZXMgd2FzIGdpdmVuLgogaWYgdGVzdCAiJHt3aXRoX2N1cnNlcytzZXR9IiA9IHNldDsgdGhlbgpAQCAtMTA2NywxMyArMTQxNywzMSBAQAogICBvcHRfY3Vyc2VzPSR3aXRodmFsCiBmaTsKIAorIyBDaGVjayB3aGV0aGVyIC0td2l0aC1wdXJpZnkgb3IgLS13aXRob3V0LXB1cmlmeSB3YXMgZ2l2ZW4uCitpZiB0ZXN0ICIke3dpdGhfcHVyaWZ5K3NldH0iID0gc2V0OyB0aGVuCisgIHdpdGh2YWw9IiR3aXRoX3B1cmlmeSIKKyAgb3B0X3B1cmlmeT0kd2l0aHZhbAorZmk7CisKIGlmIHRlc3QgIiRvcHRfY3Vyc2VzIiA9ICJ5ZXMiOyB0aGVuCiAJcHJlZmVyX2N1cnNlcz15ZXMKIGZpCiAKK2lmIHRlc3QgIiRvcHRfcHVyaWZ5IiA9IHllczsgdGhlbgorCVBVUklGWT0icHVyaWZ5IgorZWxzZQorCVBVUklGWT0KK2ZpCisKK29wdF9tdWx0aWJ5dGU9eWVzCiBvcHRfc3RhdGljX2xpYnM9eWVzCiBvcHRfc2hhcmVkX2xpYnM9eWVzCiAKKyMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1tdWx0aWJ5dGUgb3IgLS1kaXNhYmxlLW11bHRpYnl0ZSB3YXMgZ2l2ZW4uCitpZiB0ZXN0ICIke2VuYWJsZV9tdWx0aWJ5dGUrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZW5hYmxldmFsPSIkZW5hYmxlX211bHRpYnl0ZSIKKyAgb3B0X211bHRpYnl0ZT0kZW5hYmxldmFsCitmaTsKICMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1zaGFyZWQgb3IgLS1kaXNhYmxlLXNoYXJlZCB3YXMgZ2l2ZW4uCiBpZiB0ZXN0ICIke2VuYWJsZV9zaGFyZWQrc2V0fSIgPSBzZXQ7IHRoZW4KICAgZW5hYmxldmFsPSIkZW5hYmxlX3NoYXJlZCIKQEAgLTEwODUsNiArMTQ1MywzOCBAQAogICBvcHRfc3RhdGljX2xpYnM9JGVuYWJsZXZhbAogZmk7CiAKK2lmIHRlc3QgJG9wdF9tdWx0aWJ5dGUgPSBubzsgdGhlbgorY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgTk9fTVVMVElCWVRFX1NVUFBPUlQgMQorX0FDRU9GCisKK2ZpCisKKworCitpZiB0ZXN0ICJ4JGNyb3NzX2NvbXBpbGluZyIgPSAieHllcyI7IHRoZW4KKyAgICBjYXNlICIke2hvc3R9IiBpbgorICAgICotY3lnd2luKikKKyAgICAgICAgY3Jvc3NfY2FjaGU9JHtzcmNkaXJ9L2Nyb3NzLWJ1aWxkL2N5Z3dpbi5jYWNoZQorICAgICAgICA7OworICAgICotbWluZ3cqKQorICAgICAgICBjcm9zc19jYWNoZT0ke3NyY2Rpcn0vY3Jvc3MtYnVpbGQvbWluZ3cuY2FjaGUKKyAgICAgICAgOzsKKyAgICBpWzM0NTZdODYtKi1iZW9zKikKKyAgICAgICAgY3Jvc3NfY2FjaGU9JHtzcmNkaXJ9L2Nyb3NzLWJ1aWxkL3g4Ni1iZW9zLmNhY2hlCisgICAgICAgIDs7CisgICAgKikgIGVjaG8gImNvbmZpZ3VyZTogY3Jvc3MtY29tcGlsaW5nIGZvciAkaG9zdCBpcyBub3Qgc3VwcG9ydGVkIiA+JjIKKyAgICAgICAgOzsKKyAgICBlc2FjCisgICAgaWYgdGVzdCAtbiAiJHtjcm9zc19jYWNoZX0iICYmIHRlc3QgLXIgIiR7Y3Jvc3NfY2FjaGV9IjsgdGhlbgorICAgICAgICBlY2hvICJsb2FkaW5nIGNyb3NzLWJ1aWxkIGNhY2hlIGZpbGUgJHtjcm9zc19jYWNoZX0iCisgICAgICAgIC4gJHtjcm9zc19jYWNoZX0KKyAgICBmaQorICAgIHVuc2V0IGNyb3NzX2NhY2hlCisgICAgQ1JPU1NfQ09NUElMRT0nLURDUk9TU19DT01QSUxJTkcnCisKK2ZpCisKIGVjaG8gIiIKIGVjaG8gIkJlZ2lubmluZyBjb25maWd1cmF0aW9uIGZvciByZWFkbGluZS0kTElCVkVSU0lPTiBmb3IgJHtob3N0X2NwdX0tJHtob3N0X3ZlbmRvcn0tJHtob3N0X29zfSIKIGVjaG8gIiIKQEAgLTEwOTIsMTYgKzE0OTIsMTYgQEAKICMgV2Ugd2FudCB0aGVzZSBiZWZvcmUgdGhlIGNoZWNrcywgc28gdGhlIGNoZWNrcyBjYW4gbW9kaWZ5IHRoZWlyIHZhbHVlcy4KIHRlc3QgLXogIiRDRkxBR1MiICYmIENGTEFHUz0tZyBhdXRvX2NmbGFncz0xCiAKLWVjaG8gIiRhc19tZToxMDk1OiBjaGVja2luZyB3aGV0aGVyICR7TUFLRS1tYWtlfSBzZXRzIFwke01BS0V9IiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciAke01BS0UtbWFrZX0gc2V0cyBcJHtNQUtFfS4uLiAkRUNIT19DIiA+JjYKLXNldCBkdW1teSAke01BS0UtbWFrZX07IGFjX21ha2U9YGVjaG8gIiQyIiB8IHNlZCAneSwuLystLF9fcF8sJ2AKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyICR7TUFLRS1tYWtlfSBzZXRzIFwkKE1BS0UpIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciAke01BS0UtbWFrZX0gc2V0cyBcJChNQUtFKS4uLiAkRUNIT19DIiA+JjYKK3NldCBkdW1teSAke01BS0UtbWFrZX07IGFjX21ha2U9YGVjaG8gIiQyIiB8IHNlZCAneSw6Li8rLSxfX19wXywnYAogaWYgZXZhbCAidGVzdCBcIlwke2FjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldCtzZXR9XCIgPSBzZXQiOyB0aGVuCiAgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CiBlbHNlCi0gIGNhdCA+Y29uZnRlc3QubWFrZSA8PFxFT0YKKyAgY2F0ID5jb25mdGVzdC5tYWtlIDw8XF9BQ0VPRgogYWxsOgotCUBlY2hvICdhY19tYWtldGVtcD0iJHtNQUtFfSInCi1FT0YKKwlAZWNobyAnYWNfbWFrZXRlbXA9IiQoTUFLRSkiJworX0FDRU9GCiAjIEdOVSBtYWtlIHNvbWV0aW1lcyBwcmludHMgIm1ha2VbMV06IEVudGVyaW5nLi4uIiwgd2hpY2ggd291bGQgY29uZnVzZSB1cy4KIGV2YWwgYCR7TUFLRS1tYWtlfSAtZiBjb25mdGVzdC5tYWtlIDI+L2Rldi9udWxsIHwgZ3JlcCB0ZW1wPWAKIGlmIHRlc3QgLW4gIiRhY19tYWtldGVtcCI7IHRoZW4KQEAgLTExMTIsMTEgKzE1MTIsMTEgQEAKIHJtIC1mIGNvbmZ0ZXN0Lm1ha2UKIGZpCiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyRhY19jdl9wcm9nX21ha2VfJyR7YWNfbWFrZX1fc2V0YFwiID0geWVzIjsgdGhlbgotICBlY2hvICIkYXNfbWU6MTExNTogcmVzdWx0OiB5ZXMiID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQogZWNobyAiJHtFQ0hPX1R9eWVzIiA+JjYKICAgU0VUX01BS0U9CiBlbHNlCi0gIGVjaG8gIiRhc19tZToxMTE5OiByZXN1bHQ6IG5vIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQogZWNobyAiJHtFQ0hPX1R9bm8iID4mNgogICBTRVRfTUFLRT0iTUFLRT0ke01BS0UtbWFrZX0iCiBmaQpAQCAtMTEyOSw3ICsxNTI5LDcgQEAKIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fWdjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCiBzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1nY2M7IGFjX3dvcmQ9JDIKLWVjaG8gIiRhc19tZToxMTMyOiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiBlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKIGlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DQytzZXR9IiA9IHNldDsgdGhlbgogICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgpAQCAtMTEzNywyNSArMTUzNywyOCBAQAogICBpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCiAgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCiBlbHNlCi0gIGFjX3NhdmVfSUZTPSRJRlM7IElGUz0kYWNfcGF0aF9zZXBhcmF0b3IKLWFjX2R1bW15PSIkUEFUSCIKLWZvciBhY19kaXIgaW4gJGFjX2R1bW15OyBkbwotICBJRlM9JGFjX3NhdmVfSUZTCi0gIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCi0gICRhc19leGVjdXRhYmxlX3AgIiRhY19kaXIvJGFjX3dvcmQiIHx8IGNvbnRpbnVlCi1hY19jdl9wcm9nX0NDPSIke2FjX3Rvb2xfcHJlZml4fWdjYyIKLWVjaG8gIiRhc19tZToxMTQ3OiBmb3VuZCAkYWNfZGlyLyRhY193b3JkIiA+JjUKLWJyZWFrCithc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCitmb3IgYXNfZGlyIGluICRQQVRICitkbworICBJRlM9JGFzX3NhdmVfSUZTCisgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgorICAgIGFjX2N2X3Byb2dfQ0M9IiR7YWNfdG9vbF9wcmVmaXh9Z2NjIgorICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKyAgICBicmVhayAyCisgIGZpCitkb25lCiBkb25lCiAKIGZpCiBmaQogQ0M9JGFjX2N2X3Byb2dfQ0MKIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSAgZWNobyAiJGFzX21lOjExNTU6IHJlc3VsdDogJENDIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENDIiA+JjUKIGVjaG8gIiR7RUNIT19UfSRDQyIgPiY2CiBlbHNlCi0gIGVjaG8gIiRhc19tZToxMTU4OiByZXN1bHQ6IG5vIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQogZWNobyAiJHtFQ0hPX1R9bm8iID4mNgogZmkKIApAQCAtMTE2NCw3ICsxNTY3LDcgQEAKICAgYWNfY3RfQ0M9JENDCiAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiZ2NjIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KIHNldCBkdW1teSBnY2M7IGFjX3dvcmQ9JDIKLWVjaG8gIiRhc19tZToxMTY3OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiBlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKIGlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9DQytzZXR9IiA9IHNldDsgdGhlbgogICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgpAQCAtMTE3MiwyNSArMTU3NSwyOCBAQAogICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCiAgIGFjX2N2X3Byb2dfYWNfY3RfQ0M9IiRhY19jdF9DQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCiBlbHNlCi0gIGFjX3NhdmVfSUZTPSRJRlM7IElGUz0kYWNfcGF0aF9zZXBhcmF0b3IKLWFjX2R1bW15PSIkUEFUSCIKLWZvciBhY19kaXIgaW4gJGFjX2R1bW15OyBkbwotICBJRlM9JGFjX3NhdmVfSUZTCi0gIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCi0gICRhc19leGVjdXRhYmxlX3AgIiRhY19kaXIvJGFjX3dvcmQiIHx8IGNvbnRpbnVlCi1hY19jdl9wcm9nX2FjX2N0X0NDPSJnY2MiCi1lY2hvICIkYXNfbWU6MTE4MjogZm91bmQgJGFjX2Rpci8kYWNfd29yZCIgPiY1Ci1icmVhaworYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorZm9yIGFzX2RpciBpbiAkUEFUSAorZG8KKyAgSUZTPSRhc19zYXZlX0lGUworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKyAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KKyAgICBhY19jdl9wcm9nX2FjX2N0X0NDPSJnY2MiCisgICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorICAgIGJyZWFrIDIKKyAgZmkKK2RvbmUKIGRvbmUKIAogZmkKIGZpCiBhY19jdF9DQz0kYWNfY3ZfcHJvZ19hY19jdF9DQwogaWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgotICBlY2hvICIkYXNfbWU6MTE5MDogcmVzdWx0OiAkYWNfY3RfQ0MiID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfQ0MiID4mNQogZWNobyAiJHtFQ0hPX1R9JGFjX2N0X0NDIiA+JjYKIGVsc2UKLSAgZWNobyAiJGFzX21lOjExOTM6IHJlc3VsdDogbm8iID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CiBlY2hvICIke0VDSE9fVH1ubyIgPiY2CiBmaQogCkBAIC0xMjAzLDcgKzE2MDksNyBAQAogICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCiAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1jYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCiBzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1jYzsgYWNfd29yZD0kMgotZWNobyAiJGFzX21lOjEyMDY6IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKIGVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgogaWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0OyB0aGVuCiAgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CkBAIC0xMjExLDI1ICsxNjE3LDI4IEBACiAgIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KICAgYWNfY3ZfcHJvZ19DQz0iJENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KIGVsc2UKLSAgYWNfc2F2ZV9JRlM9JElGUzsgSUZTPSRhY19wYXRoX3NlcGFyYXRvcgotYWNfZHVtbXk9IiRQQVRIIgotZm9yIGFjX2RpciBpbiAkYWNfZHVtbXk7IGRvCi0gIElGUz0kYWNfc2F2ZV9JRlMKLSAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KLSAgJGFzX2V4ZWN1dGFibGVfcCAiJGFjX2Rpci8kYWNfd29yZCIgfHwgY29udGludWUKLWFjX2N2X3Byb2dfQ0M9IiR7YWNfdG9vbF9wcmVmaXh9Y2MiCi1lY2hvICIkYXNfbWU6MTIyMTogZm91bmQgJGFjX2Rpci8kYWNfd29yZCIgPiY1Ci1icmVhaworYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorZm9yIGFzX2RpciBpbiAkUEFUSAorZG8KKyAgSUZTPSRhc19zYXZlX0lGUworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKyAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KKyAgICBhY19jdl9wcm9nX0NDPSIke2FjX3Rvb2xfcHJlZml4fWNjIgorICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKyAgICBicmVhayAyCisgIGZpCitkb25lCiBkb25lCiAKIGZpCiBmaQogQ0M9JGFjX2N2X3Byb2dfQ0MKIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSAgZWNobyAiJGFzX21lOjEyMjk6IHJlc3VsdDogJENDIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENDIiA+JjUKIGVjaG8gIiR7RUNIT19UfSRDQyIgPiY2CiBlbHNlCi0gIGVjaG8gIiRhc19tZToxMjMyOiByZXN1bHQ6IG5vIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQogZWNobyAiJHtFQ0hPX1R9bm8iID4mNgogZmkKIApAQCAtMTIzOCw3ICsxNjQ3LDcgQEAKICAgYWNfY3RfQ0M9JENDCiAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiY2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgogc2V0IGR1bW15IGNjOyBhY193b3JkPSQyCi1lY2hvICIkYXNfbWU6MTI0MTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQogZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2CiBpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KICAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKQEAgLTEyNDYsMjUgKzE2NTUsMjggQEAKICAgaWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgogICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgogZWxzZQotICBhY19zYXZlX0lGUz0kSUZTOyBJRlM9JGFjX3BhdGhfc2VwYXJhdG9yCi1hY19kdW1teT0iJFBBVEgiCi1mb3IgYWNfZGlyIGluICRhY19kdW1teTsgZG8KLSAgSUZTPSRhY19zYXZlX0lGUwotICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgotICAkYXNfZXhlY3V0YWJsZV9wICIkYWNfZGlyLyRhY193b3JkIiB8fCBjb250aW51ZQotYWNfY3ZfcHJvZ19hY19jdF9DQz0iY2MiCi1lY2hvICIkYXNfbWU6MTI1NjogZm91bmQgJGFjX2Rpci8kYWNfd29yZCIgPiY1Ci1icmVhaworYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorZm9yIGFzX2RpciBpbiAkUEFUSAorZG8KKyAgSUZTPSRhc19zYXZlX0lGUworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKyAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KKyAgICBhY19jdl9wcm9nX2FjX2N0X0NDPSJjYyIKKyAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisgICAgYnJlYWsgMgorICBmaQorZG9uZQogZG9uZQogCiBmaQogZmkKIGFjX2N0X0NDPSRhY19jdl9wcm9nX2FjX2N0X0NDCiBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCi0gIGVjaG8gIiRhc19tZToxMjY0OiByZXN1bHQ6ICRhY19jdF9DQyIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9DQyIgPiY1CiBlY2hvICIke0VDSE9fVH0kYWNfY3RfQ0MiID4mNgogZWxzZQotICBlY2hvICIkYXNfbWU6MTI2NzogcmVzdWx0OiBubyIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKIGVjaG8gIiR7RUNIT19UfW5vIiA+JjYKIGZpCiAKQEAgLTEyNzcsNyArMTY4OSw3IEBACiBpZiB0ZXN0IC16ICIkQ0MiOyB0aGVuCiAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiY2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgogc2V0IGR1bW15IGNjOyBhY193b3JkPSQyCi1lY2hvICIkYXNfbWU6MTI4MDogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQogZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2CiBpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KICAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKQEAgLTEyODYsMTkgKzE2OTgsMjIgQEAKICAgYWNfY3ZfcHJvZ19DQz0iJENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KIGVsc2UKICAgYWNfcHJvZ19yZWplY3RlZD1ubwotICBhY19zYXZlX0lGUz0kSUZTOyBJRlM9JGFjX3BhdGhfc2VwYXJhdG9yCi1hY19kdW1teT0iJFBBVEgiCi1mb3IgYWNfZGlyIGluICRhY19kdW1teTsgZG8KLSAgSUZTPSRhY19zYXZlX0lGUwotICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgotICAkYXNfZXhlY3V0YWJsZV9wICIkYWNfZGlyLyRhY193b3JkIiB8fCBjb250aW51ZQotaWYgdGVzdCAiJGFjX2Rpci8kYWNfd29yZCIgPSAiL3Vzci91Y2IvY2MiOyB0aGVuCi0gIGFjX3Byb2dfcmVqZWN0ZWQ9eWVzCi0gIGNvbnRpbnVlCi1maQotYWNfY3ZfcHJvZ19DQz0iY2MiCi1lY2hvICIkYXNfbWU6MTMwMDogZm91bmQgJGFjX2Rpci8kYWNfd29yZCIgPiY1Ci1icmVhaworYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorZm9yIGFzX2RpciBpbiAkUEFUSAorZG8KKyAgSUZTPSRhc19zYXZlX0lGUworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKyAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KKyAgICBpZiB0ZXN0ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA9ICIvdXNyL3VjYi9jYyI7IHRoZW4KKyAgICAgICBhY19wcm9nX3JlamVjdGVkPXllcworICAgICAgIGNvbnRpbnVlCisgICAgIGZpCisgICAgYWNfY3ZfcHJvZ19DQz0iY2MiCisgICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorICAgIGJyZWFrIDIKKyAgZmkKK2RvbmUKIGRvbmUKIAogaWYgdGVzdCAkYWNfcHJvZ19yZWplY3RlZCA9IHllczsgdGhlbgpAQCAtMTMxMCwxOSArMTcyNSwxNyBAQAogICAgICMgSG93ZXZlciwgaXQgaGFzIHRoZSBzYW1lIGJhc2VuYW1lLCBzbyB0aGUgYm9nb24gd2lsbCBiZSBjaG9zZW4KICAgICAjIGZpcnN0IGlmIHdlIHNldCBDQyB0byBqdXN0IHRoZSBiYXNlbmFtZTsgdXNlIHRoZSBmdWxsIGZpbGUgbmFtZS4KICAgICBzaGlmdAotICAgIHNldCBkdW1teSAiJGFjX2Rpci8kYWNfd29yZCIgJHsxKyIkQCJ9Ci0gICAgc2hpZnQKLSAgICBhY19jdl9wcm9nX0NDPSIkQCIKKyAgICBhY19jdl9wcm9nX0NDPSIkYXNfZGlyLyRhY193b3JkJHsxKycgJ30kQCIKICAgZmkKIGZpCiBmaQogZmkKIENDPSRhY19jdl9wcm9nX0NDCiBpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCi0gIGVjaG8gIiRhc19tZToxMzIyOiByZXN1bHQ6ICRDQyIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDQyIgPiY1CiBlY2hvICIke0VDSE9fVH0kQ0MiID4mNgogZWxzZQotICBlY2hvICIkYXNfbWU6MTMyNTogcmVzdWx0OiBubyIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKIGVjaG8gIiR7RUNIT19UfW5vIiA+JjYKIGZpCiAKQEAgLTEzMzMsNyArMTc0Niw3IEBACiAgIGRvCiAgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCiBzZXQgZHVtbXkgJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2c7IGFjX3dvcmQ9JDIKLWVjaG8gIiRhc19tZToxMzM2OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiBlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKIGlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DQytzZXR9IiA9IHNldDsgdGhlbgogICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgpAQCAtMTM0MSwyNSArMTc1NCwyOCBAQAogICBpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCiAgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCiBlbHNlCi0gIGFjX3NhdmVfSUZTPSRJRlM7IElGUz0kYWNfcGF0aF9zZXBhcmF0b3IKLWFjX2R1bW15PSIkUEFUSCIKLWZvciBhY19kaXIgaW4gJGFjX2R1bW15OyBkbwotICBJRlM9JGFjX3NhdmVfSUZTCi0gIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCi0gICRhc19leGVjdXRhYmxlX3AgIiRhY19kaXIvJGFjX3dvcmQiIHx8IGNvbnRpbnVlCi1hY19jdl9wcm9nX0NDPSIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIKLWVjaG8gIiRhc19tZToxMzUxOiBmb3VuZCAkYWNfZGlyLyRhY193b3JkIiA+JjUKLWJyZWFrCithc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCitmb3IgYXNfZGlyIGluICRQQVRICitkbworICBJRlM9JGFzX3NhdmVfSUZTCisgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgorICAgIGFjX2N2X3Byb2dfQ0M9IiRhY190b29sX3ByZWZpeCRhY19wcm9nIgorICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKyAgICBicmVhayAyCisgIGZpCitkb25lCiBkb25lCiAKIGZpCiBmaQogQ0M9JGFjX2N2X3Byb2dfQ0MKIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSAgZWNobyAiJGFzX21lOjEzNTk6IHJlc3VsdDogJENDIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENDIiA+JjUKIGVjaG8gIiR7RUNIT19UfSRDQyIgPiY2CiBlbHNlCi0gIGVjaG8gIiRhc19tZToxMzYyOiByZXN1bHQ6IG5vIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQogZWNobyAiJHtFQ0hPX1R9bm8iID4mNgogZmkKIApAQCAtMTM3Miw3ICsxNzg4LDcgQEAKIGRvCiAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgogc2V0IGR1bW15ICRhY19wcm9nOyBhY193b3JkPSQyCi1lY2hvICIkYXNfbWU6MTM3NTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQogZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2CiBpZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KICAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKQEAgLTEzODAsMjUgKzE3OTYsMjggQEAKICAgaWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgogICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgogZWxzZQotICBhY19zYXZlX0lGUz0kSUZTOyBJRlM9JGFjX3BhdGhfc2VwYXJhdG9yCi1hY19kdW1teT0iJFBBVEgiCi1mb3IgYWNfZGlyIGluICRhY19kdW1teTsgZG8KLSAgSUZTPSRhY19zYXZlX0lGUwotICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgotICAkYXNfZXhlY3V0YWJsZV9wICIkYWNfZGlyLyRhY193b3JkIiB8fCBjb250aW51ZQotYWNfY3ZfcHJvZ19hY19jdF9DQz0iJGFjX3Byb2ciCi1lY2hvICIkYXNfbWU6MTM5MDogZm91bmQgJGFjX2Rpci8kYWNfd29yZCIgPiY1Ci1icmVhaworYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorZm9yIGFzX2RpciBpbiAkUEFUSAorZG8KKyAgSUZTPSRhc19zYXZlX0lGUworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKyAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KKyAgICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfcHJvZyIKKyAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisgICAgYnJlYWsgMgorICBmaQorZG9uZQogZG9uZQogCiBmaQogZmkKIGFjX2N0X0NDPSRhY19jdl9wcm9nX2FjX2N0X0NDCiBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCi0gIGVjaG8gIiRhc19tZToxMzk4OiByZXN1bHQ6ICRhY19jdF9DQyIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9DQyIgPiY1CiBlY2hvICIke0VDSE9fVH0kYWNfY3RfQ0MiID4mNgogZWxzZQotICBlY2hvICIkYXNfbWU6MTQwMTogcmVzdWx0OiBubyIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKIGVjaG8gIiR7RUNIT19UfW5vIiA+JjYKIGZpCiAKQEAgLTE0MTAsMzMgKzE4MjksMzkgQEAKIAogZmkKIAotdGVzdCAteiAiJENDIiAmJiB7IHsgZWNobyAiJGFzX21lOjE0MTM6IGVycm9yOiBubyBhY2NlcHRhYmxlIGNjIGZvdW5kIGluIFwkUEFUSCIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBubyBhY2NlcHRhYmxlIGNjIGZvdW5kIGluIFwkUEFUSCIgPiYyO30KKwordGVzdCAteiAiJENDIiAmJiB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBubyBhY2NlcHRhYmxlIEMgY29tcGlsZXIgZm91bmQgaW4gXCRQQVRICitTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBubyBhY2NlcHRhYmxlIEMgY29tcGlsZXIgZm91bmQgaW4gXCRQQVRICitTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KICAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQogCiAjIFByb3ZpZGUgc29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29tcGlsZXIuCi1lY2hvICIkYXNfbWU6MTQxODoiIFwKK2VjaG8gIiRhc19tZTokTElORU5POiIgXAogICAgICAiY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgdmVyc2lvbiIgPiY1CiBhY19jb21waWxlcj1gc2V0IFggJGFjX2NvbXBpbGU7IGVjaG8gJDJgCi17IChldmFsIGVjaG8gIiRhc19tZToxNDIxOiBcIiRhY19jb21waWxlciAtLXZlcnNpb24gPC9kZXYvbnVsbCA+JjVcIiIpID4mNQoreyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZXIgLS12ZXJzaW9uIDwvZGV2L251bGwgPiY1XCIiKSA+JjUKICAgKGV2YWwgJGFjX2NvbXBpbGVyIC0tdmVyc2lvbiA8L2Rldi9udWxsID4mNSkgMj4mNQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjE0MjQ6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9Ci17IChldmFsIGVjaG8gIiRhc19tZToxNDI2OiBcIiRhY19jb21waWxlciAtdiA8L2Rldi9udWxsID4mNVwiIikgPiY1Cit7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlciAtdiA8L2Rldi9udWxsID4mNVwiIikgPiY1CiAgIChldmFsICRhY19jb21waWxlciAtdiA8L2Rldi9udWxsID4mNSkgMj4mNQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjE0Mjk6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9Ci17IChldmFsIGVjaG8gIiRhc19tZToxNDMxOiBcIiRhY19jb21waWxlciAtViA8L2Rldi9udWxsID4mNVwiIikgPiY1Cit7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlciAtViA8L2Rldi9udWxsID4mNVwiIikgPiY1CiAgIChldmFsICRhY19jb21waWxlciAtViA8L2Rldi9udWxsID4mNSkgMj4mNQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjE0MzQ6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9CiAKIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotI2xpbmUgMTQzOCAiY29uZmlndXJlIgotI2luY2x1ZGUgImNvbmZkZWZzLmgiCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiAKIGludAogbWFpbiAoKQpAQCAtMTQ0NywxMjcgKzE4NzIsMTUyIEBACiB9CiBfQUNFT0YKIGFjX2NsZWFuX2ZpbGVzX3NhdmU9JGFjX2NsZWFuX2ZpbGVzCi1hY19jbGVhbl9maWxlcz0iJGFjX2NsZWFuX2ZpbGVzIGEub3V0IGEuZXhlIgorYWNfY2xlYW5fZmlsZXM9IiRhY19jbGVhbl9maWxlcyBhLm91dCBhLmV4ZSBiLm91dCIKICMgVHJ5IHRvIGNyZWF0ZSBhbiBleGVjdXRhYmxlIHdpdGhvdXQgLW8gZmlyc3QsIGRpc3JlZ2FyZCBhLm91dC4KICMgSXQgd2lsbCBoZWxwIHVzIGRpYWdub3NlIGJyb2tlbiBjb21waWxlcnMsIGFuZCBmaW5kaW5nIG91dCBhbiBpbnR1aXRpb24KICMgb2YgZXhlZXh0LgotZWNobyAiJGFzX21lOjE0NTQ6IGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgZGVmYXVsdCBvdXRwdXQuLi4gJEVDSE9fQyIgPiY2CitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1lIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1lLi4uICRFQ0hPX0MiID4mNgogYWNfbGlua19kZWZhdWx0PWBlY2hvICIkYWNfbGluayIgfCBzZWQgJ3MvIC1vICpjb25mdGVzdFteIF0qLy8nYAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6MTQ1NzogXCIkYWNfbGlua19kZWZhdWx0XCIiKSA+JjUKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtfZGVmYXVsdFwiIikgPiY1CiAgIChldmFsICRhY19saW5rX2RlZmF1bHQpIDI+JjUKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZToxNDYwOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgogICAjIEZpbmQgdGhlIG91dHB1dCwgc3RhcnRpbmcgZnJvbSB0aGUgbW9zdCBsaWtlbHkuICBUaGlzIHNjaGVtZSBpcwogIyBub3Qgcm9idXN0IHRvIGp1bmsgaW4gYC4nLCBoZW5jZSBnbyB0byB3aWxkY2FyZHMgKGEuKikgb25seSBhcyBhIGxhc3QKICMgcmVzb3J0LgotZm9yIGFjX2ZpbGUgaW4gYGxzIGEuZXhlIGNvbmZ0ZXN0LmV4ZSAyPi9kZXYvbnVsbDsKLSAgICAgICAgICAgICAgICBscyBhLm91dCBjb25mdGVzdCAyPi9kZXYvbnVsbDsKLSAgICAgICAgICAgICAgICBscyBhLiogY29uZnRlc3QuKiAyPi9kZXYvbnVsbGA7IGRvCisKKyMgQmUgY2FyZWZ1bCB0byBpbml0aWFsaXplIHRoaXMgdmFyaWFibGUsIHNpbmNlIGl0IHVzZWQgdG8gYmUgY2FjaGVkLgorIyBPdGhlcndpc2UgYW4gb2xkIGNhY2hlIHZhbHVlIG9mIGBubycgbGVkIHRvIGBFWEVFWFQgPSBubycgaW4gYSBNYWtlZmlsZS4KK2FjX2N2X2V4ZWV4dD0KKyMgYi5vdXQgaXMgY3JlYXRlZCBieSBpOTYwIGNvbXBpbGVycy4KK2ZvciBhY19maWxlIGluIGFfb3V0LmV4ZSBhLmV4ZSBjb25mdGVzdC5leGUgYS5vdXQgY29uZnRlc3QgYS4qIGNvbmZ0ZXN0LiogYi5vdXQKK2RvCisgIHRlc3QgLWYgIiRhY19maWxlIiB8fCBjb250aW51ZQogICBjYXNlICRhY19maWxlIGluCi0gICAgKi4kYWNfZXh0IHwgKi5vIHwgKi5vYmogfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiApIDs7Ci0gICAgYS5vdXQgKSAjIFdlIGZvdW5kIHRoZSBkZWZhdWx0IGV4ZWN1dGFibGUsIGJ1dCBleGVleHQ9JycgaXMgbW9zdAotICAgICAgICAgICAgIyBjZXJ0YWlubHkgcmlnaHQuCi0gICAgICAgICAgICBicmVhazs7Ci0gICAgKi4qICkgYWNfY3ZfZXhlZXh0PWBleHByICIkYWNfZmlsZSIgOiAnW14uXSpcKFwuLipcKSdgCi0gICAgICAgICAgIyBGSVhNRTogSSBiZWxpZXZlIHdlIGV4cG9ydCBhY19jdl9leGVleHQgZm9yIExpYnRvb2wgLS1ha2ltLgotICAgICAgICAgIGV4cG9ydCBhY19jdl9leGVleHQKLSAgICAgICAgICBicmVhazs7Ci0gICAgKiApIGJyZWFrOzsKKyAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyB8ICoubyB8ICoub2JqICkKKwk7OworICAgIGNvbmZ0ZXN0LiRhY19leHQgKQorCSMgVGhpcyBpcyB0aGUgc291cmNlIGZpbGUuCisJOzsKKyAgICBbYWJdLm91dCApCisJIyBXZSBmb3VuZCB0aGUgZGVmYXVsdCBleGVjdXRhYmxlLCBidXQgZXhlZXh0PScnIGlzIG1vc3QKKwkjIGNlcnRhaW5seSByaWdodC4KKwlicmVhazs7CisgICAgKi4qICkKKwlhY19jdl9leGVleHQ9YGV4cHIgIiRhY19maWxlIiA6ICdbXi5dKlwoXC4uKlwpJ2AKKwkjIEZJWE1FOiBJIGJlbGlldmUgd2UgZXhwb3J0IGFjX2N2X2V4ZWV4dCBmb3IgTGlidG9vbCwKKwkjIGJ1dCBpdCB3b3VsZCBiZSBjb29sIHRvIGZpbmQgb3V0IGlmIGl0J3MgdHJ1ZS4gIERvZXMgYW55Ym9keQorCSMgbWFpbnRhaW4gTGlidG9vbD8gLS1ha2ltLgorCWV4cG9ydCBhY19jdl9leGVleHQKKwlicmVhazs7CisgICAgKiApCisJYnJlYWs7OwogICBlc2FjCiBkb25lCiBlbHNlCiAgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1jYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKLXsgeyBlY2hvICIkYXNfbWU6MTQ4MzogZXJyb3I6IEMgY29tcGlsZXIgY2Fubm90IGNyZWF0ZSBleGVjdXRhYmxlcyIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBDIGNvbXBpbGVyIGNhbm5vdCBjcmVhdGUgZXhlY3V0YWJsZXMiID4mMjt9CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK3sgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IEMgY29tcGlsZXIgY2Fubm90IGNyZWF0ZSBleGVjdXRhYmxlcworU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogQyBjb21waWxlciBjYW5ub3QgY3JlYXRlIGV4ZWN1dGFibGVzCitTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KICAgIHsgKGV4aXQgNzcpOyBleGl0IDc3OyB9OyB9CiBmaQogCiBhY19leGVleHQ9JGFjX2N2X2V4ZWV4dAotZWNobyAiJGFzX21lOjE0ODk6IHJlc3VsdDogJGFjX2ZpbGUiID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2ZpbGUiID4mNQogZWNobyAiJHtFQ0hPX1R9JGFjX2ZpbGUiID4mNgogCiAjIENoZWNrIHRoZSBjb21waWxlciBwcm9kdWNlcyBleGVjdXRhYmxlcyB3ZSBjYW4gcnVuLiAgSWYgbm90LCBlaXRoZXIKICMgdGhlIGNvbXBpbGVyIGlzIGJyb2tlbiwgb3Igd2UgY3Jvc3MgY29tcGlsZS4KLWVjaG8gIiRhc19tZToxNDk0OiBjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzIiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzIiA+JjUKIGVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciB3b3Jrcy4uLiAkRUNIT19DIiA+JjYKICMgRklYTUU6IFRoZXNlIGNyb3NzIGNvbXBpbGVyIGhhY2tzIHNob3VsZCBiZSByZW1vdmVkIGZvciBBdXRvY29uZiAzLjAKICMgSWYgbm90IGNyb3NzIGNvbXBpbGluZywgY2hlY2sgdGhhdCB3ZSBjYW4gcnVuIGEgc2ltcGxlIHByb2dyYW0uCiBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiAhPSB5ZXM7IHRoZW4KICAgaWYgeyBhY190cnk9Jy4vJGFjX2ZpbGUnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOjE1MDA6IFwiJGFjX3RyeVwiIikgPiY1CisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAgIChldmFsICRhY190cnkpIDI+JjUKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZToxNTAzOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogICAgIGNyb3NzX2NvbXBpbGluZz1ubwogICBlbHNlCiAgICAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSBtYXliZTsgdGhlbgogCWNyb3NzX2NvbXBpbGluZz15ZXMKICAgICBlbHNlCi0JeyB7IGVjaG8gIiRhc19tZToxNTEwOiBlcnJvcjogY2Fubm90IHJ1biBDIGNvbXBpbGVkIHByb2dyYW1zLgotSWYgeW91IG1lYW50IHRvIGNyb3NzIGNvbXBpbGUsIHVzZSBcYC0taG9zdCcuIiA+JjUKKwl7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgcnVuIEMgY29tcGlsZWQgcHJvZ3JhbXMuCitJZiB5b3UgbWVhbnQgdG8gY3Jvc3MgY29tcGlsZSwgdXNlIFxgLS1ob3N0Jy4KK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKIGVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBydW4gQyBjb21waWxlZCBwcm9ncmFtcy4KLUlmIHlvdSBtZWFudCB0byBjcm9zcyBjb21waWxlLCB1c2UgXGAtLWhvc3QnLiIgPiYyO30KK0lmIHlvdSBtZWFudCB0byBjcm9zcyBjb21waWxlLCB1c2UgXGAtLWhvc3QnLgorU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9CiAgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KICAgICBmaQogICBmaQogZmkKLWVjaG8gIiRhc19tZToxNTE4OiByZXN1bHQ6IHllcyIgPiY1CitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQogZWNobyAiJHtFQ0hPX1R9eWVzIiA+JjYKIAotcm0gLWYgYS5vdXQgYS5leGUgY29uZnRlc3QkYWNfY3ZfZXhlZXh0CitybSAtZiBhLm91dCBhLmV4ZSBjb25mdGVzdCRhY19jdl9leGVleHQgYi5vdXQKIGFjX2NsZWFuX2ZpbGVzPSRhY19jbGVhbl9maWxlc19zYXZlCiAjIENoZWNrIHRoZSBjb21waWxlciBwcm9kdWNlcyBleGVjdXRhYmxlcyB3ZSBjYW4gcnVuLiAgSWYgbm90LCBlaXRoZXIKICMgdGhlIGNvbXBpbGVyIGlzIGJyb2tlbiwgb3Igd2UgY3Jvc3MgY29tcGlsZS4KLWVjaG8gIiRhc19tZToxNTI1OiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmciID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZyIgPiY1CiBlY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZy4uLiAkRUNIT19DIiA+JjYKLWVjaG8gIiRhc19tZToxNTI3OiByZXN1bHQ6ICRjcm9zc19jb21waWxpbmciID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGNyb3NzX2NvbXBpbGluZyIgPiY1CiBlY2hvICIke0VDSE9fVH0kY3Jvc3NfY29tcGlsaW5nIiA+JjYKIAotZWNobyAiJGFzX21lOjE1MzA6IGNoZWNraW5nIGZvciBleGVjdXRhYmxlIHN1ZmZpeCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBleGVjdXRhYmxlIHN1ZmZpeC4uLiAkRUNIT19DIiA+JjYKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOjE1MzI6IFwiJGFjX2xpbmtcIiIpID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdWZmaXggb2YgZXhlY3V0YWJsZXMiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzLi4uICRFQ0hPX0MiID4mNgoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CiAgIChldmFsICRhY19saW5rKSAyPiY1CiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6MTUzNTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KICAgIyBJZiBib3RoIGBjb25mdGVzdC5leGUnIGFuZCBgY29uZnRlc3QnIGFyZSBgcHJlc2VudCcgKHdlbGwsIG9ic2VydmFibGUpCiAjIGNhdGNoIGBjb25mdGVzdC5leGUnLiAgRm9yIGluc3RhbmNlIHdpdGggQ3lnd2luLCBgbHMgY29uZnRlc3QnIHdpbGwKICMgd29yayBwcm9wZXJseSAoaS5lLiwgcmVmZXIgdG8gYGNvbmZ0ZXN0LmV4ZScpLCB3aGlsZSBpdCB3b24ndCB3aXRoCiAjIGBybScuCi1mb3IgYWNfZmlsZSBpbiBgKGxzIGNvbmZ0ZXN0LmV4ZTsgbHMgY29uZnRlc3Q7IGxzIGNvbmZ0ZXN0LiopIDI+L2Rldi9udWxsYDsgZG8KK2ZvciBhY19maWxlIGluIGNvbmZ0ZXN0LmV4ZSBjb25mdGVzdCBjb25mdGVzdC4qOyBkbworICB0ZXN0IC1mICIkYWNfZmlsZSIgfHwgY29udGludWUKICAgY2FzZSAkYWNfZmlsZSBpbgotICAgICouJGFjX2V4dCB8ICoubyB8ICoub2JqIHwgKi54Y29mZiB8ICoudGRzIHwgKi5kIHwgKi5wZGIgKSA7OworICAgICouJGFjX2V4dCB8ICoueGNvZmYgfCAqLnRkcyB8ICouZCB8ICoucGRiIHwgKi54U1lNIHwgKi5iYiB8ICouYmJnIHwgKi5vIHwgKi5vYmogKSA7OwogICAgICouKiApIGFjX2N2X2V4ZWV4dD1gZXhwciAiJGFjX2ZpbGUiIDogJ1teLl0qXChcLi4qXCknYAotICAgICAgICAgIGV4cG9ydCBhY19jdl9leGVleHQKLSAgICAgICAgICBicmVhazs7CisJICBleHBvcnQgYWNfY3ZfZXhlZXh0CisJICBicmVhazs7CiAgICAgKiApIGJyZWFrOzsKICAgZXNhYwogZG9uZQogZWxzZQotICB7IHsgZWNobyAiJGFzX21lOjE1NTE6IGVycm9yOiBjYW5ub3QgY29tcHV0ZSBFWEVFWFQ6IGNhbm5vdCBjb21waWxlIGFuZCBsaW5rIiA+JjUKLWVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjb21wdXRlIEVYRUVYVDogY2Fubm90IGNvbXBpbGUgYW5kIGxpbmsiID4mMjt9CisgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBleGVjdXRhYmxlczogY2Fubm90IGNvbXBpbGUgYW5kIGxpbmsKK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBleGVjdXRhYmxlczogY2Fubm90IGNvbXBpbGUgYW5kIGxpbmsKK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQogICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CiBmaQogCiBybSAtZiBjb25mdGVzdCRhY19jdl9leGVleHQKLWVjaG8gIiRhc19tZToxNTU3OiByZXN1bHQ6ICRhY19jdl9leGVleHQiID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2V4ZWV4dCIgPiY1CiBlY2hvICIke0VDSE9fVH0kYWNfY3ZfZXhlZXh0IiA+JjYKIAogcm0gLWYgY29uZnRlc3QuJGFjX2V4dAogRVhFRVhUPSRhY19jdl9leGVleHQKIGFjX2V4ZWV4dD0kRVhFRVhUCi1lY2hvICIkYXNfbWU6MTU2MzogY2hlY2tpbmcgZm9yIG9iamVjdCBzdWZmaXgiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igb2JqZWN0IHN1ZmZpeC4uLiAkRUNIT19DIiA+JjYKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcyIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4uICRFQ0hPX0MiID4mNgogaWYgdGVzdCAiJHthY19jdl9vYmpleHQrc2V0fSIgPSBzZXQ7IHRoZW4KICAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKIGVsc2UKICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jbGluZSAxNTY5ICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KIAogaW50CiBtYWluICgpCkBAIC0xNTc4LDQwICsyMDI4LDQ2IEBACiB9CiBfQUNFT0YKIHJtIC1mIGNvbmZ0ZXN0Lm8gY29uZnRlc3Qub2JqCi1pZiB7IChldmFsIGVjaG8gIiRhc19tZToxNTgxOiBcIiRhY19jb21waWxlXCIiKSA+JjUKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQogICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjE1ODQ6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCiAgIGZvciBhY19maWxlIGluIGAobHMgY29uZnRlc3QubyBjb25mdGVzdC5vYmo7IGxzIGNvbmZ0ZXN0LiopIDI+L2Rldi9udWxsYDsgZG8KICAgY2FzZSAkYWNfZmlsZSBpbgotICAgICouJGFjX2V4dCB8ICoueGNvZmYgfCAqLnRkcyB8ICouZCB8ICoucGRiICkgOzsKKyAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyApIDs7CiAgICAgKikgYWNfY3Zfb2JqZXh0PWBleHByICIkYWNfZmlsZSIgOiAnLipcLlwoLipcKSdgCiAgICAgICAgYnJlYWs7OwogICBlc2FjCiBkb25lCiBlbHNlCiAgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1jYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKLXsgeyBlY2hvICIkYXNfbWU6MTU5NjogZXJyb3I6IGNhbm5vdCBjb21wdXRlIE9CSkVYVDogY2Fubm90IGNvbXBpbGUiID4mNQotZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNvbXB1dGUgT0JKRVhUOiBjYW5ub3QgY29tcGlsZSIgPiYyO30KK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNvbXB1dGUgc3VmZml4IG9mIG9iamVjdCBmaWxlczogY2Fubm90IGNvbXBpbGUKK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXM6IGNhbm5vdCBjb21waWxlCitTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KICAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQogZmkKIAogcm0gLWYgY29uZnRlc3QuJGFjX2N2X29iamV4dCBjb25mdGVzdC4kYWNfZXh0CiBmaQotZWNobyAiJGFzX21lOjE2MDM6IHJlc3VsdDogJGFjX2N2X29iamV4dCIgPiY1CitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3Zfb2JqZXh0IiA+JjUKIGVjaG8gIiR7RUNIT19UfSRhY19jdl9vYmpleHQiID4mNgogT0JKRVhUPSRhY19jdl9vYmpleHQKIGFjX29iamV4dD0kT0JKRVhUCi1lY2hvICIkYXNfbWU6MTYwNzogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVyIiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMgY29tcGlsZXIiID4mNQogZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMgY29tcGlsZXIuLi4gJEVDSE9fQyIgPiY2CiBpZiB0ZXN0ICIke2FjX2N2X2NfY29tcGlsZXJfZ251K3NldH0iID0gc2V0OyB0aGVuCiAgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CiBlbHNlCiAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotI2xpbmUgMTYxMyAiY29uZmlndXJlIgotI2luY2x1ZGUgImNvbmZkZWZzLmgiCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiAKIGludAogbWFpbiAoKQpAQCAtMTYyNSw0MSArMjA4MSw1NSBAQAogfQogX0FDRU9GCiBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZToxNjI4OiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZToxNjMxOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOjE2MzQ6IFwiJGFjX3RyeVwiIikgPiY1CisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQogICAoZXZhbCAkYWNfdHJ5KSAyPiY1CiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6MTYzNzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogICBhY19jb21waWxlcl9nbnU9eWVzCiBlbHNlCiAgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1jYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKwogYWNfY29tcGlsZXJfZ251PW5vCiBmaQotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CiBhY19jdl9jX2NvbXBpbGVyX2dudT0kYWNfY29tcGlsZXJfZ251CiAKIGZpCi1lY2hvICIkYXNfbWU6MTY0OTogcmVzdWx0OiAkYWNfY3ZfY19jb21waWxlcl9nbnUiID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2NfY29tcGlsZXJfZ251IiA+JjUKIGVjaG8gIiR7RUNIT19UfSRhY19jdl9jX2NvbXBpbGVyX2dudSIgPiY2CiBHQ0M9YHRlc3QgJGFjX2NvbXBpbGVyX2dudSA9IHllcyAmJiBlY2hvIHllc2AKIGFjX3Rlc3RfQ0ZMQUdTPSR7Q0ZMQUdTK3NldH0KIGFjX3NhdmVfQ0ZMQUdTPSRDRkxBR1MKIENGTEFHUz0iLWciCi1lY2hvICIkYXNfbWU6MTY1NTogY2hlY2tpbmcgd2hldGhlciAkQ0MgYWNjZXB0cyAtZyIgPiY1CitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAkQ0MgYWNjZXB0cyAtZyIgPiY1CiBlY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgJENDIGFjY2VwdHMgLWcuLi4gJEVDSE9fQyIgPiY2CiBpZiB0ZXN0ICIke2FjX2N2X3Byb2dfY2NfZytzZXR9IiA9IHNldDsgdGhlbgogICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgogZWxzZQogICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSNsaW5lIDE2NjEgImNvbmZpZ3VyZSIKLSNpbmNsdWRlICJjb25mZGVmcy5oIgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLwogCiBpbnQKIG1haW4gKCkKQEAgLTE2NzAsMjYgKzIxNDAsMzcgQEAKIH0KIF9BQ0VPRgogcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6MTY3MzogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPiY1CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6MTY3NjogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZToxNjc5OiBcIiRhY190cnlcIiIpID4mNQorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAgKGV2YWwgJGFjX3RyeSkgMj4mNQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjE2ODI6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KICAgYWNfY3ZfcHJvZ19jY19nPXllcwogZWxzZQogICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKIGFjX2N2X3Byb2dfY2NfZz1ubwogZmkKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAogZmkKLWVjaG8gIiRhc19tZToxNjkyOiByZXN1bHQ6ICRhY19jdl9wcm9nX2NjX2ciID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3Byb2dfY2NfZyIgPiY1CiBlY2hvICIke0VDSE9fVH0kYWNfY3ZfcHJvZ19jY19nIiA+JjYKIGlmIHRlc3QgIiRhY190ZXN0X0NGTEFHUyIgPSBzZXQ7IHRoZW4KICAgQ0ZMQUdTPSRhY19zYXZlX0NGTEFHUwpAQCAtMTcwNiw2MDUgKzIxODcsNyBAQAogICAgIENGTEFHUz0KICAgZmkKIGZpCi0jIFNvbWUgcGVvcGxlIHVzZSBhIEMrKyBjb21waWxlciB0byBjb21waWxlIEMuICBTaW5jZSB3ZSB1c2UgYGV4aXQnLAotIyBpbiBDKysgd2UgbmVlZCB0byBkZWNsYXJlIGl0LiAgSW4gY2FzZSBzb21lb25lIHVzZXMgdGhlIHNhbWUgY29tcGlsZXIKLSMgZm9yIGJvdGggY29tcGlsaW5nIEMgYW5kIEMrKyB3ZSBuZWVkIHRvIGhhdmUgdGhlIEMrKyBjb21waWxlciBkZWNpZGUKLSMgdGhlIGRlY2xhcmF0aW9uIG9mIGV4aXQsIHNpbmNlIGl0J3MgdGhlIG1vc3QgZGVtYW5kaW5nIGVudmlyb25tZW50LgotY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jaWZuZGVmIF9fY3BsdXNwbHVzCi0gIGNob2tlIG1lCi0jZW5kaWYKLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6MTcxOTogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6MTcyMjogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZToxNzI1OiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6MTcyODogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGZvciBhY19kZWNsYXJhdGlvbiBpbiBcCi0gICAnJ1wKLSAgICcjaW5jbHVkZSA8c3RkbGliLmg+JyBcCi0gICAnZXh0ZXJuICJDIiB2b2lkIHN0ZDo6ZXhpdCAoaW50KSB0aHJvdyAoKTsgdXNpbmcgc3RkOjpleGl0OycgXAotICAgJ2V4dGVybiAiQyIgdm9pZCBzdGQ6OmV4aXQgKGludCk7IHVzaW5nIHN0ZDo6ZXhpdDsnIFwKLSAgICdleHRlcm4gIkMiIHZvaWQgZXhpdCAoaW50KSB0aHJvdyAoKTsnIFwKLSAgICdleHRlcm4gIkMiIHZvaWQgZXhpdCAoaW50KTsnIFwKLSAgICd2b2lkIGV4aXQgKGludCk7JwotZG8KLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jbGluZSAxNzQwICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSRhY19kZWNsYXJhdGlvbgotaW50Ci1tYWluICgpCi17Ci1leGl0ICg0Mik7Ci0gIDsKLSAgcmV0dXJuIDA7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOjE3NTM6IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjE3NTY6IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6MTc1OTogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjE3NjI6IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICA6Ci1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1jYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKLWNvbnRpbnVlCi1maQotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotI2xpbmUgMTc3MiAiY29uZmlndXJlIgotI2luY2x1ZGUgImNvbmZkZWZzLmgiCi0kYWNfZGVjbGFyYXRpb24KLWludAotbWFpbiAoKQotewotZXhpdCAoNDIpOwotICA7Ci0gIHJldHVybiAwOwotfQotX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZToxNzg0OiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZToxNzg3OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOjE3OTA6IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZToxNzkzOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYnJlYWsKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLWNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQotZmkKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZG9uZQotcm0gLWYgY29uZnRlc3QqCi1pZiB0ZXN0IC1uICIkYWNfZGVjbGFyYXRpb24iOyB0aGVuCi0gIGVjaG8gJyNpZmRlZiBfX2NwbHVzcGx1cycgPj5jb25mZGVmcy5oCi0gIGVjaG8gJGFjX2RlY2xhcmF0aW9uICAgICAgPj5jb25mZGVmcy5oCi0gIGVjaG8gJyNlbmRpZicgICAgICAgICAgICAgPj5jb25mZGVmcy5oCi1maQotCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1jYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKLWZpCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWFjX2V4dD1jCi1hY19jcHA9JyRDUFAgJENQUEZMQUdTJwotYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLWFjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKLQotYWNfZXh0PWMKLWFjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCi1hY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi1hY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQotZWNobyAiJGFzX21lOjE4MjU6IGNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IuLi4gJEVDSE9fQyIgPiY2Ci0jIE9uIFN1bnMsIHNvbWV0aW1lcyAkQ1BQIG5hbWVzIGEgZGlyZWN0b3J5LgotaWYgdGVzdCAtbiAiJENQUCIgJiYgdGVzdCAtZCAiJENQUCI7IHRoZW4KLSAgQ1BQPQotZmkKLWlmIHRlc3QgLXogIiRDUFAiOyB0aGVuCi0gIGlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DUFArc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgICAgICMgRG91YmxlIHF1b3RlcyBiZWNhdXNlIENQUCBuZWVkcyB0byBiZSBleHBhbmRlZAotICAgIGZvciBDUFAgaW4gIiRDQyAtRSIgIiRDQyAtRSAtdHJhZGl0aW9uYWwtY3BwIiAiL2xpYi9jcHAiCi0gICAgZG8KLSAgICAgIGFjX3ByZXByb2Nfb2s9ZmFsc2UKLWZvciBhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcwotZG8KLSAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYwotICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KLSAgIyBPbiB0aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKLSAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotI2xpbmUgMTg0NiAiY29uZmlndXJlIgotI2luY2x1ZGUgImNvbmZkZWZzLmgiCi0jaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0gICAgICAgICAgICAgICAgICAgICBTeW50YXggZXJyb3IKLV9BQ0VPRgotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6MTg1MTogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHRcIiIpID4mNQotICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBlZ3JlcCAtdiAnXiAqXCsnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6MTg1NzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KLSAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLSAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCi0gIGVsc2UKLSAgICBhY19jcHBfZXJyPQotICBmaQotZWxzZQotICBhY19jcHBfZXJyPXllcwotZmkKLWlmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgotICA6Ci1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0gIGNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQotICAjIEJyb2tlbjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCi1jb250aW51ZQotZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0KLSAgIyBPSywgd29ya3Mgb24gc2FuZSBjYXNlcy4gIE5vdyBjaGVjayB3aGV0aGVyIG5vbi1leGlzdGVudCBoZWFkZXJzCi0gICMgY2FuIGJlIGRldGVjdGVkIGFuZCBob3cuCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotI2xpbmUgMTg4MCAiY29uZmlndXJlIgotI2luY2x1ZGUgImNvbmZkZWZzLmgiCi0jaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KLV9BQ0VPRgotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6MTg4NDogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHRcIiIpID4mNQotICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBlZ3JlcCAtdiAnXiAqXCsnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6MTg5MDogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KLSAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLSAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCi0gIGVsc2UKLSAgICBhY19jcHBfZXJyPQotICBmaQotZWxzZQotICBhY19jcHBfZXJyPXllcwotZmkKLWlmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgotICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0LgotY29udGludWUKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLSAgY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0gICMgUGFzc2VzIGJvdGggdGVzdHMuCi1hY19wcmVwcm9jX29rPToKLWJyZWFrCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLQotZG9uZQotIyBCZWNhdXNlIG9mIGBicmVhaycsIF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBwZWQuCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotaWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4KLSAgYnJlYWsKLWZpCi0KLSAgICBkb25lCi0gICAgYWNfY3ZfcHJvZ19DUFA9JENQUAotCi1maQotICBDUFA9JGFjX2N2X3Byb2dfQ1BQCi1lbHNlCi0gIGFjX2N2X3Byb2dfQ1BQPSRDUFAKLWZpCi1lY2hvICIkYXNfbWU6MTkyNzogcmVzdWx0OiAkQ1BQIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRDUFAiID4mNgotYWNfcHJlcHJvY19vaz1mYWxzZQotZm9yIGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4gJycgeWVzCi1kbwotICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29tZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5nIGdsaWJjCi0gICMgd2l0aCBhIGZyZXNoIGNyb3NzLWNvbXBpbGVyIHdvcmtzLgotICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAotICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jbGluZSAxOTM3ICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKLSNpbmNsdWRlIDxhc3NlcnQuaD4KLSAgICAgICAgICAgICAgICAgICAgIFN5bnRheCBlcnJvcgotX0FDRU9GCi1pZiB7IChldmFsIGVjaG8gIiRhc19tZToxOTQyOiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1Ci0gIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVncmVwIC12ICdeICpcKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZToxOTQ4OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbDsgdGhlbgotICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgotICAgIGFjX2NwcF9lcnI9JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcKLSAgZWxzZQotICAgIGFjX2NwcF9lcnI9Ci0gIGZpCi1lbHNlCi0gIGFjX2NwcF9lcnI9eWVzCi1maQotaWYgdGVzdCAteiAiJGFjX2NwcF9lcnIiOyB0aGVuCi0gIDoKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLSAgY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0gICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KLWNvbnRpbnVlCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLQotICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uLWV4aXN0ZW50IGhlYWRlcnMKLSAgIyBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4KLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jbGluZSAxOTcxICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKLSNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgotX0FDRU9GCi1pZiB7IChldmFsIGVjaG8gIiRhc19tZToxOTc1OiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1Ci0gIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVncmVwIC12ICdeICpcKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKLSAgcm0gLWYgY29uZnRlc3QuZXIxCi0gIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZToxOTgxOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbDsgdGhlbgotICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgotICAgIGFjX2NwcF9lcnI9JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcKLSAgZWxzZQotICAgIGFjX2NwcF9lcnI9Ci0gIGZpCi1lbHNlCi0gIGFjX2NwcF9lcnI9eWVzCi1maQotaWYgdGVzdCAteiAiJGFjX2NwcF9lcnIiOyB0aGVuCi0gICMgQnJva2VuOiBzdWNjZXNzIG9uIGludmFsaWQgaW5wdXQuCi1jb250aW51ZQotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSAgIyBQYXNzZXMgYm90aCB0ZXN0cy4KLWFjX3ByZXByb2Nfb2s9OgotYnJlYWsKLWZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotCi1kb25lCi0jIEJlY2F1c2Ugb2YgYGJyZWFrJywgX0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci1pZiAkYWNfcHJlcHJvY19vazsgdGhlbgotICA6Ci1lbHNlCi0gIHsgeyBlY2hvICIkYXNfbWU6MjAwOTogZXJyb3I6IEMgcHJlcHJvY2Vzc29yIFwiJENQUFwiIGZhaWxzIHNhbml0eSBjaGVjayIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBDIHByZXByb2Nlc3NvciBcIiRDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2siID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLWZpCi0KLWFjX2V4dD1jCi1hY19jcHA9JyRDUFAgJENQUEZMQUdTJwotYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLWFjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKLQotZWNobyAiJGFzX21lOjIwMjA6IGNoZWNraW5nIGZvciBtaW5peC9jb25maWcuaCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBtaW5peC9jb25maWcuaC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX21pbml4X2NvbmZpZ19oK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotI2xpbmUgMjAyNiAiY29uZmlndXJlIgotI2luY2x1ZGUgImNvbmZkZWZzLmgiCi0jaW5jbHVkZSA8bWluaXgvY29uZmlnLmg+Ci1fQUNFT0YKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOjIwMzA6IFwiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0XCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0KSAyPmNvbmZ0ZXN0LmVyMQotICBhY19zdGF0dXM9JD8KLSAgZWdyZXAgLXYgJ14gKlwrJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotICBybSAtZiBjb25mdGVzdC5lcjEKLSAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOjIwMzY6IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsOyB0aGVuCi0gIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCi0gICAgYWNfY3BwX2Vycj0kYWNfY19wcmVwcm9jX3dhcm5fZmxhZwotICBlbHNlCi0gICAgYWNfY3BwX2Vycj0KLSAgZmkKLWVsc2UKLSAgYWNfY3BwX2Vycj15ZXMKLWZpCi1pZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRoZW4KLSAgYWNfY3ZfaGVhZGVyX21pbml4X2NvbmZpZ19oPXllcwotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSAgYWNfY3ZfaGVhZGVyX21pbml4X2NvbmZpZ19oPW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLWZpCi1lY2hvICIkYXNfbWU6MjA1NTogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX21pbml4X2NvbmZpZ19oIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJfbWluaXhfY29uZmlnX2giID4mNgotaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX21pbml4X2NvbmZpZ19oID0geWVzOyB0aGVuCi0gIE1JTklYPXllcwotZWxzZQotICBNSU5JWD0KLWZpCi0KLWlmIHRlc3QgIiRNSU5JWCIgPSB5ZXM7IHRoZW4KLQotY2F0ID4+Y29uZmRlZnMuaCA8PFxFT0YKLSNkZWZpbmUgX1BPU0lYX1NPVVJDRSAxCi1FT0YKLQotY2F0ID4+Y29uZmRlZnMuaCA8PFxFT0YKLSNkZWZpbmUgX1BPU0lYXzFfU09VUkNFIDIKLUVPRgotCi1jYXQgPj5jb25mZGVmcy5oIDw8XEVPRgotI2RlZmluZSBfTUlOSVggMQotRU9GCi0KLWZpCi0KLSMgSWYgd2UncmUgdXNpbmcgZ2NjIGFuZCB0aGUgdXNlciBoYXNuJ3Qgc3BlY2lmaWVkIENGTEFHUywgYWRkIC1PIHRvIENGTEFHUy4KLXRlc3QgLW4gIiRHQ0MiICYmIHRlc3QgLW4gIiRhdXRvX2NmbGFncyIgJiYgQ0ZMQUdTPSIkQ0ZMQUdTIC1PIgotCi1pZiB0ZXN0ICRhY19jdl9jX2NvbXBpbGVyX2dudSA9IHllczsgdGhlbgotICAgIGVjaG8gIiRhc19tZToyMDgzOiBjaGVja2luZyB3aGV0aGVyICRDQyBuZWVkcyAtdHJhZGl0aW9uYWwiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyICRDQyBuZWVkcyAtdHJhZGl0aW9uYWwuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfZ2NjX3RyYWRpdGlvbmFsK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gICAgYWNfcGF0dGVybj0iQXV0b2NvbmYuKid4JyIKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jbGluZSAyMDkwICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKLSNpbmNsdWRlIDxzZ3R0eS5oPgotQXV0b2NvbmYgVElPQ0dFVFAKLV9BQ0VPRgotaWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAotICBlZ3JlcCAiJGFjX3BhdHRlcm4iID4vZGV2L251bGwgMj4mMTsgdGhlbgotICBhY19jdl9wcm9nX2djY190cmFkaXRpb25hbD15ZXMKLWVsc2UKLSAgYWNfY3ZfcHJvZ19nY2NfdHJhZGl0aW9uYWw9bm8KLWZpCi1ybSAtZiBjb25mdGVzdCoKLQotICBpZiB0ZXN0ICRhY19jdl9wcm9nX2djY190cmFkaXRpb25hbCA9IG5vOyB0aGVuCi0gICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jbGluZSAyMTA1ICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKLSNpbmNsdWRlIDx0ZXJtaW8uaD4KLUF1dG9jb25mIFRDR0VUQQotX0FDRU9GCi1pZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8Ci0gIGVncmVwICIkYWNfcGF0dGVybiIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIGFjX2N2X3Byb2dfZ2NjX3RyYWRpdGlvbmFsPXllcwotZmkKLXJtIC1mIGNvbmZ0ZXN0KgotCi0gIGZpCi1maQotZWNobyAiJGFzX21lOjIxMTg6IHJlc3VsdDogJGFjX2N2X3Byb2dfZ2NjX3RyYWRpdGlvbmFsIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdl9wcm9nX2djY190cmFkaXRpb25hbCIgPiY2Ci0gIGlmIHRlc3QgJGFjX2N2X3Byb2dfZ2NjX3RyYWRpdGlvbmFsID0geWVzOyB0aGVuCi0gICAgQ0M9IiRDQyAtdHJhZGl0aW9uYWwiCi0gIGZpCi1maQotCi0jIEZpbmQgYSBnb29kIGluc3RhbGwgcHJvZ3JhbS4gIFdlIHByZWZlciBhIEMgcHJvZ3JhbSAoZmFzdGVyKSwKLSMgc28gb25lIHNjcmlwdCBpcyBhcyBnb29kIGFzIGFub3RoZXIuICBCdXQgYXZvaWQgdGhlIGJyb2tlbiBvcgotIyBpbmNvbXBhdGlibGUgdmVyc2lvbnM6Ci0jIFN5c1YgL2V0Yy9pbnN0YWxsLCAvdXNyL3NiaW4vaW5zdGFsbAotIyBTdW5PUyAvdXNyL2V0Yy9pbnN0YWxsCi0jIElSSVggL3NiaW4vaW5zdGFsbAotIyBBSVggL2Jpbi9pbnN0YWxsCi0jIEFtaWdhT1MgL0MvaW5zdGFsbCwgd2hpY2ggaW5zdGFsbHMgYm9vdGJsb2NrcyBvbiBmbG9wcHkgZGlzY3MKLSMgQUlYIDQgL3Vzci9iaW4vaW5zdGFsbGJzZCwgd2hpY2ggZG9lc24ndCB3b3JrIHdpdGhvdXQgYSAtZyBmbGFnCi0jIEFGUyAvdXNyL2Fmc3dzL2Jpbi9pbnN0YWxsLCB3aGljaCBtaXNoYW5kbGVzIG5vbmV4aXN0ZW50IGFyZ3MKLSMgU1ZSNCAvdXNyL3VjYi9pbnN0YWxsLCB3aGljaCB0cmllcyB0byB1c2UgdGhlIG5vbmV4aXN0ZW50IGdyb3VwICJzdGFmZiIKLSMgLi9pbnN0YWxsLCB3aGljaCBjYW4gYmUgZXJyb25lb3VzbHkgY3JlYXRlZCBieSBtYWtlIGZyb20gLi9pbnN0YWxsLnNoLgotZWNobyAiJGFzX21lOjIxMzc6IGNoZWNraW5nIGZvciBhIEJTRCBjb21wYXRpYmxlIGluc3RhbGwiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgYSBCU0QgY29tcGF0aWJsZSBpbnN0YWxsLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAteiAiJElOU1RBTEwiOyB0aGVuCi1pZiB0ZXN0ICIke2FjX2N2X3BhdGhfaW5zdGFsbCtzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICAgIGFjX3NhdmVfSUZTPSRJRlM7IElGUz0kYWNfcGF0aF9zZXBhcmF0b3IKLSAgZm9yIGFjX2RpciBpbiAkUEFUSDsgZG8KLSAgICBJRlM9JGFjX3NhdmVfSUZTCi0gICAgIyBBY2NvdW50IGZvciBwZW9wbGUgd2hvIHB1dCB0cmFpbGluZyBzbGFzaGVzIGluIFBBVEggZWxlbWVudHMuCi0gICAgY2FzZSAkYWNfZGlyLyBpbgotICAgIC8gfCAuLyB8IC4vLyB8IC9jQy8qIFwKLSAgICB8IC9ldGMvKiB8IC91c3Ivc2Jpbi8qIHwgL3Vzci9ldGMvKiB8IC9zYmluLyogfCAvdXNyL2Fmc3dzL2Jpbi8qIFwKLSAgICB8IC91c3IvdWNiLyogKSA7OwotICAgICopCi0gICAgICAjIE9TRjEgYW5kIFNDTyBPRFQgMy4wIGhhdmUgdGhlaXIgb3duIG5hbWVzIGZvciBpbnN0YWxsLgotICAgICAgIyBEb24ndCB1c2UgaW5zdGFsbGJzZCBmcm9tIE9TRiBzaW5jZSBpdCBpbnN0YWxscyBzdHVmZiBhcyByb290Ci0gICAgICAjIGJ5IGRlZmF1bHQuCi0gICAgICBmb3IgYWNfcHJvZyBpbiBnaW5zdGFsbCBzY29pbnN0IGluc3RhbGw7IGRvCi0gICAgICAgIGlmICRhc19leGVjdXRhYmxlX3AgIiRhY19kaXIvJGFjX3Byb2ciOyB0aGVuCi0JICBpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFsbCAmJgotICAgICAgICAgICAgZ3JlcCBkc3Btc2cgIiRhY19kaXIvJGFjX3Byb2ciID4vZGV2L251bGwgMj4mMTsgdGhlbgotCSAgICAjIEFJWCBpbnN0YWxsLiAgSXQgaGFzIGFuIGluY29tcGF0aWJsZSBjYWxsaW5nIGNvbnZlbnRpb24uCi0JICAgIDoKLQkgIGVsaWYgdGVzdCAkYWNfcHJvZyA9IGluc3RhbGwgJiYKLQkgICAgZ3JlcCBwd3BsdXMgIiRhY19kaXIvJGFjX3Byb2ciID4vZGV2L251bGwgMj4mMTsgdGhlbgotCSAgICAjIHByb2dyYW0tc3BlY2lmaWMgaW5zdGFsbCBzY3JpcHQgdXNlZCBieSBIUCBwd3BsdXMtLWRvbid0IHVzZS4KLQkgICAgOgotCSAgZWxzZQotCSAgICBhY19jdl9wYXRoX2luc3RhbGw9IiRhY19kaXIvJGFjX3Byb2cgLWMiCi0JICAgIGJyZWFrIDIKLQkgIGZpCi0JZmkKLSAgICAgIGRvbmUKLSAgICAgIDs7Ci0gICAgZXNhYwotICBkb25lCi0KLWZpCi0gIGlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxsK3NldH0iID0gc2V0OyB0aGVuCi0gICAgSU5TVEFMTD0kYWNfY3ZfcGF0aF9pbnN0YWxsCi0gIGVsc2UKLSAgICAjIEFzIGEgbGFzdCByZXNvcnQsIHVzZSB0aGUgc2xvdyBzaGVsbCBzY3JpcHQuICBXZSBkb24ndCBjYWNoZSBhCi0gICAgIyBwYXRoIGZvciBJTlNUQUxMIHdpdGhpbiBhIHNvdXJjZSBkaXJlY3RvcnksIGJlY2F1c2UgdGhhdCB3aWxsCi0gICAgIyBicmVhayBvdGhlciBwYWNrYWdlcyB1c2luZyB0aGUgY2FjaGUgaWYgdGhhdCBkaXJlY3RvcnkgaXMKLSAgICAjIHJlbW92ZWQsIG9yIGlmIHRoZSBwYXRoIGlzIHJlbGF0aXZlLgotICAgIElOU1RBTEw9JGFjX2luc3RhbGxfc2gKLSAgZmkKLWZpCi1lY2hvICIkYXNfbWU6MjE4NjogcmVzdWx0OiAkSU5TVEFMTCIgPiY1Ci1lY2hvICIke0VDSE9fVH0kSU5TVEFMTCIgPiY2Ci0KLSMgVXNlIHRlc3QgLXogYmVjYXVzZSBTdW5PUzQgc2ggbWlzaGFuZGxlcyBicmFjZXMgaW4gJHt2YXItdmFsfS4KLSMgSXQgdGhpbmtzIHRoZSBmaXJzdCBjbG9zZSBicmFjZSBlbmRzIHRoZSB2YXJpYWJsZSBzdWJzdGl0dXRpb24uCi10ZXN0IC16ICIkSU5TVEFMTF9QUk9HUkFNIiAmJiBJTlNUQUxMX1BST0dSQU09JyR7SU5TVEFMTH0nCi0KLXRlc3QgLXogIiRJTlNUQUxMX1NDUklQVCIgJiYgSU5TVEFMTF9TQ1JJUFQ9JyR7SU5TVEFMTH0nCi0KLXRlc3QgLXogIiRJTlNUQUxMX0RBVEEiICYmIElOU1RBTExfREFUQT0nJHtJTlNUQUxMfSAtbSA2NDQnCi0KLSMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiYXIiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotc2V0IGR1bW15IGFyOyBhY193b3JkPSQyCi1lY2hvICIkYXNfbWU6MjE5OTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9wcm9nX0FSK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGlmIHRlc3QgLW4gIiRBUiI7IHRoZW4KLSAgYWNfY3ZfcHJvZ19BUj0iJEFSIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLWVsc2UKLSAgYWNfc2F2ZV9JRlM9JElGUzsgSUZTPSRhY19wYXRoX3NlcGFyYXRvcgotYWNfZHVtbXk9IiRQQVRIIgotZm9yIGFjX2RpciBpbiAkYWNfZHVtbXk7IGRvCi0gIElGUz0kYWNfc2F2ZV9JRlMKLSAgdGVzdCAteiAiJGFjX2RpciIgJiYgYWNfZGlyPS4KLSAgJGFzX2V4ZWN1dGFibGVfcCAiJGFjX2Rpci8kYWNfd29yZCIgfHwgY29udGludWUKLWFjX2N2X3Byb2dfQVI9IiIKLWVjaG8gIiRhc19tZToyMjE0OiBmb3VuZCAkYWNfZGlyLyRhY193b3JkIiA+JjUKLWJyZWFrCi1kb25lCi0KLSAgdGVzdCAteiAiJGFjX2N2X3Byb2dfQVIiICYmIGFjX2N2X3Byb2dfQVI9ImFyIgotZmkKLWZpCi1BUj0kYWNfY3ZfcHJvZ19BUgotaWYgdGVzdCAtbiAiJEFSIjsgdGhlbgotICBlY2hvICIkYXNfbWU6MjIyMzogcmVzdWx0OiAkQVIiID4mNQotZWNobyAiJHtFQ0hPX1R9JEFSIiA+JjYKLWVsc2UKLSAgZWNobyAiJGFzX21lOjIyMjY6IHJlc3VsdDogbm8iID4mNQotZWNobyAiJHtFQ0hPX1R9bm8iID4mNgotZmkKLQotdGVzdCAtbiAiJEFSRkxBR1MiIHx8IEFSRkxBR1M9ImNyIgotaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9cmFubGliIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLXNldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fXJhbmxpYjsgYWNfd29yZD0kMgotZWNobyAiJGFzX21lOjIyMzQ6IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19SQU5MSUIrc2V0fSIgPSBzZXQ7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KLSAgYWNfY3ZfcHJvZ19SQU5MSUI9IiRSQU5MSUIiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotZWxzZQotICBhY19zYXZlX0lGUz0kSUZTOyBJRlM9JGFjX3BhdGhfc2VwYXJhdG9yCi1hY19kdW1teT0iJFBBVEgiCi1mb3IgYWNfZGlyIGluICRhY19kdW1teTsgZG8KLSAgSUZTPSRhY19zYXZlX0lGUwotICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgotICAkYXNfZXhlY3V0YWJsZV9wICIkYWNfZGlyLyRhY193b3JkIiB8fCBjb250aW51ZQotYWNfY3ZfcHJvZ19SQU5MSUI9IiR7YWNfdG9vbF9wcmVmaXh9cmFubGliIgotZWNobyAiJGFzX21lOjIyNDk6IGZvdW5kICRhY19kaXIvJGFjX3dvcmQiID4mNQotYnJlYWsKLWRvbmUKLQotZmkKLWZpCi1SQU5MSUI9JGFjX2N2X3Byb2dfUkFOTElCCi1pZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgotICBlY2hvICIkYXNfbWU6MjI1NzogcmVzdWx0OiAkUkFOTElCIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRSQU5MSUIiID4mNgotZWxzZQotICBlY2hvICIkYXNfbWU6MjI2MDogcmVzdWx0OiBubyIgPiY1Ci1lY2hvICIke0VDSE9fVH1ubyIgPiY2Ci1maQotCi1maQotaWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfUkFOTElCIjsgdGhlbgotICBhY19jdF9SQU5MSUI9JFJBTkxJQgotICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgInJhbmxpYiIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi1zZXQgZHVtbXkgcmFubGliOyBhY193b3JkPSQyCi1lY2hvICIkYXNfbWU6MjI2OTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X1JBTkxJQitzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBpZiB0ZXN0IC1uICIkYWNfY3RfUkFOTElCIjsgdGhlbgotICBhY19jdl9wcm9nX2FjX2N0X1JBTkxJQj0iJGFjX2N0X1JBTkxJQiIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi1lbHNlCi0gIGFjX3NhdmVfSUZTPSRJRlM7IElGUz0kYWNfcGF0aF9zZXBhcmF0b3IKLWFjX2R1bW15PSIkUEFUSCIKLWZvciBhY19kaXIgaW4gJGFjX2R1bW15OyBkbwotICBJRlM9JGFjX3NhdmVfSUZTCi0gIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCi0gICRhc19leGVjdXRhYmxlX3AgIiRhY19kaXIvJGFjX3dvcmQiIHx8IGNvbnRpbnVlCi1hY19jdl9wcm9nX2FjX2N0X1JBTkxJQj0icmFubGliIgotZWNobyAiJGFzX21lOjIyODQ6IGZvdW5kICRhY19kaXIvJGFjX3dvcmQiID4mNQotYnJlYWsKLWRvbmUKLQotICB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19hY19jdF9SQU5MSUIiICYmIGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCPSI6IgotZmkKLWZpCi1hY19jdF9SQU5MSUI9JGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCCi1pZiB0ZXN0IC1uICIkYWNfY3RfUkFOTElCIjsgdGhlbgotICBlY2hvICIkYXNfbWU6MjI5MzogcmVzdWx0OiAkYWNfY3RfUkFOTElCIiA+JjUKLWVjaG8gIiR7RUNIT19UfSRhY19jdF9SQU5MSUIiID4mNgotZWxzZQotICBlY2hvICIkYXNfbWU6MjI5NjogcmVzdWx0OiBubyIgPiY1Ci1lY2hvICIke0VDSE9fVH1ubyIgPiY2Ci1maQotCi0gIFJBTkxJQj0kYWNfY3RfUkFOTElCCi1lbHNlCi0gIFJBTkxJQj0iJGFjX2N2X3Byb2dfUkFOTElCIgotZmkKLQotTUFLRV9TSEVMTD0vYmluL3NoCi0KLWVjaG8gIiRhc19tZToyMzA3OiBjaGVja2luZyBmb3IgJENDIG9wdGlvbiB0byBhY2NlcHQgQU5TSSBDIiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJENDIG9wdGlvbiB0byBhY2NlcHQgQU5TSSBDIiA+JjUKIGVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRDQyBvcHRpb24gdG8gYWNjZXB0IEFOU0kgQy4uLiAkRUNIT19DIiA+JjYKIGlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19jY19zdGRjK3NldH0iID0gc2V0OyB0aGVuCiAgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CkBAIC0yMzEyLDggKzIxOTUsMTEgQEAKICAgYWNfY3ZfcHJvZ19jY19zdGRjPW5vCiBhY19zYXZlX0NDPSRDQwogY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jbGluZSAyMzE1ICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KICNpbmNsdWRlIDxzdGRhcmcuaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgpAQCAtMjMzNiw2ICsyMjIyLDE2IEBACiAgIHZhX2VuZCAodik7CiAgIHJldHVybiBzOwogfQorCisvKiBPU0YgNC4wIENvbXBhcSBjYyBpcyBzb21lIHNvcnQgb2YgYWxtb3N0LUFOU0kgYnkgZGVmYXVsdC4gIEl0IGhhcworICAgZnVuY3Rpb24gcHJvdG90eXBlcyBhbmQgc3R1ZmYsIGJ1dCBub3QgJ1x4SEgnIGhleCBjaGFyYWN0ZXIgY29uc3RhbnRzLgorICAgVGhlc2UgZG9uJ3QgcHJvdm9rZSBhbiBlcnJvciB1bmZvcnR1bmF0ZWx5LCBpbnN0ZWFkIGFyZSBzaWxlbnRseSB0cmVhdGVkCisgICBhcyAneCcuICBUaGUgZm9sbG93aW5nIGluZHVjZXMgYW4gZXJyb3IsIHVudGlsIC1zdGQxIGlzIGFkZGVkIHRvIGdldAorICAgcHJvcGVyIEFOU0kgbW9kZS4gIEN1cmlvdXNseSAnXHgwMCchPSd4JyBhbHdheXMgY29tZXMgb3V0IHRydWUsIGZvciBhbgorICAgYXJyYXkgc2l6ZSBhdCBsZWFzdC4gIEl0J3MgbmVjZXNzYXJ5IHRvIHdyaXRlICdceDAwJz09MCB0byBnZXQgc29tZXRoaW5nCisgICB0aGF0J3MgdHJ1ZSBvbmx5IHdpdGggLXN0ZDEuICAqLworaW50IG9zZjRfY2NfYXJyYXkgWydceDAwJyA9PSAwID8gMSA6IC0xXTsKKwogaW50IHRlc3QgKGludCBpLCBkb3VibGUgeCk7CiBzdHJ1Y3QgczEge2ludCAoKmYpIChpbnQgYSk7fTsKIHN0cnVjdCBzMiB7aW50ICgqZikgKGRvdWJsZSBhKTt9OwpAQCAtMjM2MSwyNCArMjI1NywzNSBAQAogZG8KICAgQ0M9IiRhY19zYXZlX0NDICRhY19hcmciCiAgIHJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOjIzNjQ6IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjIzNjc6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6MjM3MDogXCIkYWNfdHJ5XCIiKSA+JjUKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAgIChldmFsICRhY190cnkpIDI+JjUKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZToyMzczOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCiAgIGFjX2N2X3Byb2dfY2Nfc3RkYz0kYWNfYXJnCiBicmVhawogZWxzZQogICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKIGZpCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dAogZG9uZQogcm0gLWYgY29uZnRlc3QuJGFjX2V4dCBjb25mdGVzdC4kYWNfb2JqZXh0CiBDQz0kYWNfc2F2ZV9DQwpAQCAtMjM4NywyMiArMjI5NCwxMDc5IEBACiAKIGNhc2UgIngkYWNfY3ZfcHJvZ19jY19zdGRjIiBpbgogICB4fHhubykKLSAgICBlY2hvICIkYXNfbWU6MjM5MDogcmVzdWx0OiBub25lIG5lZWRlZCIgPiY1CisgICAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm9uZSBuZWVkZWQiID4mNQogZWNobyAiJHtFQ0hPX1R9bm9uZSBuZWVkZWQiID4mNiA7OwogICAqKQotICAgIGVjaG8gIiRhc19tZToyMzkzOiByZXN1bHQ6ICRhY19jdl9wcm9nX2NjX3N0ZGMiID4mNQorICAgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9wcm9nX2NjX3N0ZGMiID4mNQogZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3Byb2dfY2Nfc3RkYyIgPiY2CiAgICAgQ0M9IiRDQyAkYWNfY3ZfcHJvZ19jY19zdGRjIiA7OwogZXNhYwogCi1lY2hvICIkYXNfbWU6MjM5ODogY2hlY2tpbmcgZm9yIGFuIEFOU0kgQy1jb25mb3JtaW5nIGNvbnN0IiA+JjUKKyMgU29tZSBwZW9wbGUgdXNlIGEgQysrIGNvbXBpbGVyIHRvIGNvbXBpbGUgQy4gIFNpbmNlIHdlIHVzZSBgZXhpdCcsCisjIGluIEMrKyB3ZSBuZWVkIHRvIGRlY2xhcmUgaXQuICBJbiBjYXNlIHNvbWVvbmUgdXNlcyB0aGUgc2FtZSBjb21waWxlcgorIyBmb3IgYm90aCBjb21waWxpbmcgQyBhbmQgQysrIHdlIG5lZWQgdG8gaGF2ZSB0aGUgQysrIGNvbXBpbGVyIGRlY2lkZQorIyB0aGUgZGVjbGFyYXRpb24gb2YgZXhpdCwgc2luY2UgaXQncyB0aGUgbW9zdCBkZW1hbmRpbmcgZW52aXJvbm1lbnQuCitjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKyNpZm5kZWYgX19jcGx1c3BsdXMKKyAgY2hva2UgbWUKKyNlbmRpZgorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGZvciBhY19kZWNsYXJhdGlvbiBpbiBcCisgICAnJyBcCisgICAnZXh0ZXJuICJDIiB2b2lkIHN0ZDo6ZXhpdCAoaW50KSB0aHJvdyAoKTsgdXNpbmcgc3RkOjpleGl0OycgXAorICAgJ2V4dGVybiAiQyIgdm9pZCBzdGQ6OmV4aXQgKGludCk7IHVzaW5nIHN0ZDo6ZXhpdDsnIFwKKyAgICdleHRlcm4gIkMiIHZvaWQgZXhpdCAoaW50KSB0aHJvdyAoKTsnIFwKKyAgICdleHRlcm4gIkMiIHZvaWQgZXhpdCAoaW50KTsnIFwKKyAgICd2b2lkIGV4aXQgKGludCk7JworZG8KKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiskYWNfZGVjbGFyYXRpb24KKyNpbmNsdWRlIDxzdGRsaWIuaD4KK2ludAorbWFpbiAoKQoreworZXhpdCAoNDIpOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIDoKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworY29udGludWUKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworJGFjX2RlY2xhcmF0aW9uCitpbnQKK21haW4gKCkKK3sKK2V4aXQgKDQyKTsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBicmVhaworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZG9uZQorcm0gLWYgY29uZnRlc3QqCitpZiB0ZXN0IC1uICIkYWNfZGVjbGFyYXRpb24iOyB0aGVuCisgIGVjaG8gJyNpZmRlZiBfX2NwbHVzcGx1cycgPj5jb25mZGVmcy5oCisgIGVjaG8gJGFjX2RlY2xhcmF0aW9uICAgICAgPj5jb25mZGVmcy5oCisgIGVjaG8gJyNlbmRpZicgICAgICAgICAgICAgPj5jb25mZGVmcy5oCitmaQorCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CithY19leHQ9YworYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCithY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisKKworYWNfZXh0PWMKK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCithY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCithY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IuLi4gJEVDSE9fQyIgPiY2CisjIE9uIFN1bnMsIHNvbWV0aW1lcyAkQ1BQIG5hbWVzIGEgZGlyZWN0b3J5LgoraWYgdGVzdCAtbiAiJENQUCIgJiYgdGVzdCAtZCAiJENQUCI7IHRoZW4KKyAgQ1BQPQorZmkKK2lmIHRlc3QgLXogIiRDUFAiOyB0aGVuCisgIGlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DUFArc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgICAgICMgRG91YmxlIHF1b3RlcyBiZWNhdXNlIENQUCBuZWVkcyB0byBiZSBleHBhbmRlZAorICAgIGZvciBDUFAgaW4gIiRDQyAtRSIgIiRDQyAtRSAtdHJhZGl0aW9uYWwtY3BwIiAiL2xpYi9jcHAiCisgICAgZG8KKyAgICAgIGFjX3ByZXByb2Nfb2s9ZmFsc2UKK2ZvciBhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcworZG8KKyAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYworICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KKyAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCisgICMgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgorICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAorICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaWZkZWYgX19TVERDX18KKyMgaW5jbHVkZSA8bGltaXRzLmg+CisjZWxzZQorIyBpbmNsdWRlIDxhc3NlcnQuaD4KKyNlbmRpZgorCQkgICAgIFN5bnRheCBlcnJvcgorX0FDRU9GCitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1CisgIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KKyAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KKyAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCisgICAgYWNfY3BwX2Vycj0kYWNfY3BwX2VyciRhY19jX3dlcnJvcl9mbGFnCisgIGVsc2UKKyAgICBhY19jcHBfZXJyPQorICBmaQorZWxzZQorICBhY19jcHBfZXJyPXllcworZmkKK2lmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgorICA6CitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKKyAgIyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0LgorY29udGludWUKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorCisgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub24tZXhpc3RlbnQgaGVhZGVycworICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgorX0FDRU9GCitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1CisgIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KKyAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KKyAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCisgICAgYWNfY3BwX2Vycj0kYWNfY3BwX2VyciRhY19jX3dlcnJvcl9mbGFnCisgIGVsc2UKKyAgICBhY19jcHBfZXJyPQorICBmaQorZWxzZQorICBhY19jcHBfZXJyPXllcworZmkKK2lmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgorICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0LgorY29udGludWUKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworICAjIFBhc3NlcyBib3RoIHRlc3RzLgorYWNfcHJlcHJvY19vaz06CiticmVhaworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisKK2RvbmUKKyMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKK2lmICRhY19wcmVwcm9jX29rOyB0aGVuCisgIGJyZWFrCitmaQorCisgICAgZG9uZQorICAgIGFjX2N2X3Byb2dfQ1BQPSRDUFAKKworZmkKKyAgQ1BQPSRhY19jdl9wcm9nX0NQUAorZWxzZQorICBhY19jdl9wcm9nX0NQUD0kQ1BQCitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJENQUCIgPiY1CitlY2hvICIke0VDSE9fVH0kQ1BQIiA+JjYKK2FjX3ByZXByb2Nfb2s9ZmFsc2UKK2ZvciBhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluICcnIHllcworZG8KKyAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYworICAjIHdpdGggYSBmcmVzaCBjcm9zcy1jb21waWxlciB3b3Jrcy4KKyAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCisgICMgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgorICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5zIHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAorICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaWZkZWYgX19TVERDX18KKyMgaW5jbHVkZSA8bGltaXRzLmg+CisjZWxzZQorIyBpbmNsdWRlIDxhc3NlcnQuaD4KKyNlbmRpZgorCQkgICAgIFN5bnRheCBlcnJvcgorX0FDRU9GCitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1CisgIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KKyAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KKyAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCisgICAgYWNfY3BwX2Vycj0kYWNfY3BwX2VyciRhY19jX3dlcnJvcl9mbGFnCisgIGVsc2UKKyAgICBhY19jcHBfZXJyPQorICBmaQorZWxzZQorICBhY19jcHBfZXJyPXllcworZmkKK2lmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgorICA6CitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKKyAgIyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0LgorY29udGludWUKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorCisgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub24tZXhpc3RlbnQgaGVhZGVycworICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgorX0FDRU9GCitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1CisgIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KKyAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KKyAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCisgICAgYWNfY3BwX2Vycj0kYWNfY3BwX2VyciRhY19jX3dlcnJvcl9mbGFnCisgIGVsc2UKKyAgICBhY19jcHBfZXJyPQorICBmaQorZWxzZQorICBhY19jcHBfZXJyPXllcworZmkKK2lmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgorICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0LgorY29udGludWUKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworICAjIFBhc3NlcyBib3RoIHRlc3RzLgorYWNfcHJlcHJvY19vaz06CiticmVhaworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CisKK2RvbmUKKyMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKK2lmICRhY19wcmVwcm9jX29rOyB0aGVuCisgIDoKK2Vsc2UKKyAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogQyBwcmVwcm9jZXNzb3IgXCIkQ1BQXCIgZmFpbHMgc2FuaXR5IGNoZWNrCitTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBDIHByZXByb2Nlc3NvciBcIiRDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2sKK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CitmaQorCithY19leHQ9YworYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCithY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisKKworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBlZ3JlcCIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBlZ3JlcC4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19lZ3JlcCtzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBpZiBlY2hvIGEgfCAoZ3JlcCAtRSAnKGF8YiknKSA+L2Rldi9udWxsIDI+JjEKKyAgICB0aGVuIGFjX2N2X3Byb2dfZWdyZXA9J2dyZXAgLUUnCisgICAgZWxzZSBhY19jdl9wcm9nX2VncmVwPSdlZ3JlcCcKKyAgICBmaQorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9wcm9nX2VncmVwIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdl9wcm9nX2VncmVwIiA+JjYKKyBFR1JFUD0kYWNfY3ZfcHJvZ19lZ3JlcAorCisKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcyIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3RkYytzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdGRhcmcuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxmbG9hdC5oPgorCitpbnQKK21haW4gKCkKK3sKKworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2N2X2hlYWRlcl9zdGRjPXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCithY19jdl9oZWFkZXJfc3RkYz1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKworaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KKyAgIyBTdW5PUyA0Lnggc3RyaW5nLmggZG9lcyBub3QgZGVjbGFyZSBtZW0qLCBjb250cmFyeSB0byBBTlNJLgorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworX0FDRU9GCitpZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8CisgICRFR1JFUCAibWVtY2hyIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgOgorZWxzZQorICBhY19jdl9oZWFkZXJfc3RkYz1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0KgorCitmaQorCitpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgorICAjIElTQyAyLjAuMiBzdGRsaWIuaCBkb2VzIG5vdCBkZWNsYXJlIGZyZWUsIGNvbnRyYXJ5IHRvIEFOU0kuCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPHN0ZGxpYi5oPgorCitfQUNFT0YKK2lmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKKyAgJEVHUkVQICJmcmVlIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgOgorZWxzZQorICBhY19jdl9oZWFkZXJfc3RkYz1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0KgorCitmaQorCitpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgorICAjIC9iaW4vY2MgaW4gSXJpeC00LjAuNSBnZXRzIG5vbi1BTlNJIGN0eXBlIG1hY3JvcyB1bmxlc3MgdXNpbmcgLWFuc2kuCisgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuCisgIDoKK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaW5jbHVkZSA8Y3R5cGUuaD4KKyNpZiAoKCcgJyAmIDB4MEZGKSA9PSAweDAyMCkKKyMgZGVmaW5lIElTTE9XRVIoYykgKCdhJyA8PSAoYykgJiYgKGMpIDw9ICd6JykKKyMgZGVmaW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAnQScgKyAoKGMpIC0gJ2EnKSA6IChjKSkKKyNlbHNlCisjIGRlZmluZSBJU0xPV0VSKGMpIFwKKwkJICAgKCgnYScgPD0gKGMpICYmIChjKSA8PSAnaScpIFwKKwkJICAgICB8fCAoJ2onIDw9IChjKSAmJiAoYykgPD0gJ3InKSBcCisJCSAgICAgfHwgKCdzJyA8PSAoYykgJiYgKGMpIDw9ICd6JykpCisjIGRlZmluZSBUT1VQUEVSKGMpIChJU0xPV0VSKGMpID8gKChjKSB8IDB4NDApIDogKGMpKQorI2VuZGlmCisKKyNkZWZpbmUgWE9SKGUsIGYpICgoKGUpICYmICEoZikpIHx8ICghKGUpICYmIChmKSkpCitpbnQKK21haW4gKCkKK3sKKyAgaW50IGk7CisgIGZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykKKyAgICBpZiAoWE9SIChpc2xvd2VyIChpKSwgSVNMT1dFUiAoaSkpCisJfHwgdG91cHBlciAoaSkgIT0gVE9VUFBFUiAoaSkpCisgICAgICBleGl0KDIpOworICBleGl0ICgwKTsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QkYWNfZXhlZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2xpbmspIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeyBhY190cnk9Jy4vY29uZnRlc3QkYWNfZXhlZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIDoKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAkYWNfc3RhdHVzIiA+JjUKK2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKKyggZXhpdCAkYWNfc3RhdHVzICkKK2FjX2N2X2hlYWRlcl9zdGRjPW5vCitmaQorcm0gLWYgY29yZSAqLmNvcmUgZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCitmaQorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfc3RkYyIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNgoraWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KKworY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgU1REQ19IRUFERVJTIDEKK19BQ0VPRgorCitmaQorCisjIE9uIElSSVggNS4zLCBzeXMvdHlwZXMgYW5kIGludHR5cGVzLmggYXJlIGNvbmZsaWN0aW5nLgorCisKKworCisKKworCisKKworZm9yIGFjX2hlYWRlciBpbiBzeXMvdHlwZXMuaCBzeXMvc3RhdC5oIHN0ZGxpYi5oIHN0cmluZy5oIG1lbW9yeS5oIHN0cmluZ3MuaCBcCisJCSAgaW50dHlwZXMuaCBzdGRpbnQuaCB1bmlzdGQuaAorZG8KK2FzX2FjX0hlYWRlcj1gZWNobyAiYWNfY3ZfaGVhZGVyXyRhY19oZWFkZXIiIHwgJGFzX3RyX3NoYAorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gJEVDSE9fQyIgPiY2CitpZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0hlYWRlcitzZXR9XCIgPSBzZXQiOyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworJGFjX2luY2x1ZGVzX2RlZmF1bHQKKworI2luY2x1ZGUgPCRhY19oZWFkZXI+CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgZXZhbCAiJGFzX2FjX0hlYWRlcj15ZXMiCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2V2YWwgIiRhc19hY19IZWFkZXI9bm8iCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IGBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjUKK2VjaG8gIiR7RUNIT19UfWBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjYKK2lmIHRlc3QgYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AgPSB5ZXM7IHRoZW4KKyAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBgZWNobyAiSEFWRV8kYWNfaGVhZGVyIiB8ICRhc190cl9jcHBgIDEKK19BQ0VPRgorCitmaQorCitkb25lCisKKworaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfbWluaXhfY29uZmlnX2grc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtaW5peC9jb25maWcuaCIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBtaW5peC9jb25maWcuaC4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfaGVhZGVyX21pbml4X2NvbmZpZ19oK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9taW5peF9jb25maWdfaCIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX21pbml4X2NvbmZpZ19oIiA+JjYKK2Vsc2UKKyAgIyBJcyB0aGUgaGVhZGVyIGNvbXBpbGFibGU/CitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgbWluaXgvY29uZmlnLmggdXNhYmlsaXR5IiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgbWluaXgvY29uZmlnLmggdXNhYmlsaXR5Li4uICRFQ0hPX0MiID4mNgorY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiskYWNfaW5jbHVkZXNfZGVmYXVsdAorI2luY2x1ZGUgPG1pbml4L2NvbmZpZy5oPgorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2hlYWRlcl9jb21waWxlcj15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworYWNfaGVhZGVyX2NvbXBpbGVyPW5vCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9jb21waWxlciIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjYKKworIyBJcyB0aGUgaGVhZGVyIHByZXNlbnQ/CitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgbWluaXgvY29uZmlnLmggcHJlc2VuY2UiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBtaW5peC9jb25maWcuaCBwcmVzZW5jZS4uLiAkRUNIT19DIiA+JjYKK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPG1pbml4L2NvbmZpZy5oPgorX0FDRU9GCitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1CisgIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KKyAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KKyAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCisgICAgYWNfY3BwX2Vycj0kYWNfY3BwX2VyciRhY19jX3dlcnJvcl9mbGFnCisgIGVsc2UKKyAgICBhY19jcHBfZXJyPQorICBmaQorZWxzZQorICBhY19jcHBfZXJyPXllcworZmkKK2lmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgorICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworICBhY19oZWFkZXJfcHJlcHJvYz1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9wcmVwcm9jIiA+JjYKKworIyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/CitjYXNlICRhY19oZWFkZXJfY29tcGlsZXI6JGFjX2hlYWRlcl9wcmVwcm9jOiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluCisgIHllczpubzogKQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IG1pbml4L2NvbmZpZy5oOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogbWluaXgvY29uZmlnLmg6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9CisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogbWluaXgvY29uZmlnLmg6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyByZXN1bHQiID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiBtaW5peC9jb25maWcuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiYyO30KKyAgICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKKyAgICA7OworICBubzp5ZXM6KiApCisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogbWluaXgvY29uZmlnLmg6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiY1CitlY2hvICIkYXNfbWU6IFdBUk5JTkc6IG1pbml4L2NvbmZpZy5oOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mMjt9CisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogbWluaXgvY29uZmlnLmg6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiBtaW5peC9jb25maWcuaDogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiYyO30KKyAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBtaW5peC9jb25maWcuaDogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogbWluaXgvY29uZmlnLmg6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiYyO30KKyAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBtaW5peC9jb25maWcuaDogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiY1CitlY2hvICIkYXNfbWU6IFdBUk5JTkc6IG1pbml4L2NvbmZpZy5oOiAgICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjI7fQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IG1pbml4L2NvbmZpZy5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1CitlY2hvICIkYXNfbWU6IFdBUk5JTkc6IG1pbml4L2NvbmZpZy5oOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KKyAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBtaW5peC9jb25maWcuaDogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogbWluaXgvY29uZmlnLmg6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiYyO30KKyAgICAoCisgICAgICBjYXQgPDxcX0FTQk9YCisjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworIyMgUmVwb3J0IHRoaXMgdG8gYnVnLXJlYWRsaW5lQGdudS5vcmcgIyMKKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCitfQVNCT1gKKyAgICApIHwKKyAgICAgIHNlZCAicy9eLyRhc19tZTogV0FSTklORzogICAgIC8iID4mMgorICAgIDs7Citlc2FjCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1pbml4L2NvbmZpZy5oIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIG1pbml4L2NvbmZpZy5oLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9oZWFkZXJfbWluaXhfY29uZmlnX2grc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgYWNfY3ZfaGVhZGVyX21pbml4X2NvbmZpZ19oPSRhY19oZWFkZXJfcHJlcHJvYworZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfbWluaXhfY29uZmlnX2giID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl9taW5peF9jb25maWdfaCIgPiY2CisKK2ZpCitpZiB0ZXN0ICRhY19jdl9oZWFkZXJfbWluaXhfY29uZmlnX2ggPSB5ZXM7IHRoZW4KKyAgTUlOSVg9eWVzCitlbHNlCisgIE1JTklYPQorZmkKKworCitpZiB0ZXN0ICIkTUlOSVgiID0geWVzOyB0aGVuCisKK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisjZGVmaW5lIF9QT1NJWF9TT1VSQ0UgMQorX0FDRU9GCisKKworY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgX1BPU0lYXzFfU09VUkNFIDIKK19BQ0VPRgorCisKK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisjZGVmaW5lIF9NSU5JWCAxCitfQUNFT0YKKworZmkKKworCisjIElmIHdlJ3JlIHVzaW5nIGdjYyBhbmQgdGhlIHVzZXIgaGFzbid0IHNwZWNpZmllZCBDRkxBR1MsIGFkZCAtTyB0byBDRkxBR1MuCit0ZXN0IC1uICIkR0NDIiAmJiB0ZXN0IC1uICIkYXV0b19jZmxhZ3MiICYmIENGTEFHUz0iJENGTEFHUyAtTyIKKworaWYgdGVzdCAkYWNfY3ZfY19jb21waWxlcl9nbnUgPSB5ZXM7IHRoZW4KKyAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciAkQ0MgbmVlZHMgLXRyYWRpdGlvbmFsIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hldGhlciAkQ0MgbmVlZHMgLXRyYWRpdGlvbmFsLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9wcm9nX2djY190cmFkaXRpb25hbCtzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICAgIGFjX3BhdHRlcm49IkF1dG9jb25mLioneCciCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPHNndHR5Lmg+CitBdXRvY29uZiBUSU9DR0VUUAorX0FDRU9GCitpZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8CisgICRFR1JFUCAiJGFjX3BhdHRlcm4iID4vZGV2L251bGwgMj4mMTsgdGhlbgorICBhY19jdl9wcm9nX2djY190cmFkaXRpb25hbD15ZXMKK2Vsc2UKKyAgYWNfY3ZfcHJvZ19nY2NfdHJhZGl0aW9uYWw9bm8KK2ZpCitybSAtZiBjb25mdGVzdCoKKworCisgIGlmIHRlc3QgJGFjX2N2X3Byb2dfZ2NjX3RyYWRpdGlvbmFsID0gbm87IHRoZW4KKyAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDx0ZXJtaW8uaD4KK0F1dG9jb25mIFRDR0VUQQorX0FDRU9GCitpZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8CisgICRFR1JFUCAiJGFjX3BhdHRlcm4iID4vZGV2L251bGwgMj4mMTsgdGhlbgorICBhY19jdl9wcm9nX2djY190cmFkaXRpb25hbD15ZXMKK2ZpCitybSAtZiBjb25mdGVzdCoKKworICBmaQorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9wcm9nX2djY190cmFkaXRpb25hbCIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3ZfcHJvZ19nY2NfdHJhZGl0aW9uYWwiID4mNgorICBpZiB0ZXN0ICRhY19jdl9wcm9nX2djY190cmFkaXRpb25hbCA9IHllczsgdGhlbgorICAgIENDPSIkQ0MgLXRyYWRpdGlvbmFsIgorICBmaQorZmkKKworIyBGaW5kIGEgZ29vZCBpbnN0YWxsIHByb2dyYW0uICBXZSBwcmVmZXIgYSBDIHByb2dyYW0gKGZhc3RlciksCisjIHNvIG9uZSBzY3JpcHQgaXMgYXMgZ29vZCBhcyBhbm90aGVyLiAgQnV0IGF2b2lkIHRoZSBicm9rZW4gb3IKKyMgaW5jb21wYXRpYmxlIHZlcnNpb25zOgorIyBTeXNWIC9ldGMvaW5zdGFsbCwgL3Vzci9zYmluL2luc3RhbGwKKyMgU3VuT1MgL3Vzci9ldGMvaW5zdGFsbAorIyBJUklYIC9zYmluL2luc3RhbGwKKyMgQUlYIC9iaW4vaW5zdGFsbAorIyBBbWlnYU9TIC9DL2luc3RhbGwsIHdoaWNoIGluc3RhbGxzIGJvb3RibG9ja3Mgb24gZmxvcHB5IGRpc2NzCisjIEFJWCA0IC91c3IvYmluL2luc3RhbGxic2QsIHdoaWNoIGRvZXNuJ3Qgd29yayB3aXRob3V0IGEgLWcgZmxhZworIyBBRlMgL3Vzci9hZnN3cy9iaW4vaW5zdGFsbCwgd2hpY2ggbWlzaGFuZGxlcyBub25leGlzdGVudCBhcmdzCisjIFNWUjQgL3Vzci91Y2IvaW5zdGFsbCwgd2hpY2ggdHJpZXMgdG8gdXNlIHRoZSBub25leGlzdGVudCBncm91cCAic3RhZmYiCisjIE9TLzIncyBzeXN0ZW0gaW5zdGFsbCwgd2hpY2ggaGFzIGEgY29tcGxldGVseSBkaWZmZXJlbnQgc2VtYW50aWMKKyMgLi9pbnN0YWxsLCB3aGljaCBjYW4gYmUgZXJyb25lb3VzbHkgY3JlYXRlZCBieSBtYWtlIGZyb20gLi9pbnN0YWxsLnNoLgorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAteiAiJElOU1RBTEwiOyB0aGVuCitpZiB0ZXN0ICIke2FjX2N2X3BhdGhfaW5zdGFsbCtzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCitmb3IgYXNfZGlyIGluICRQQVRICitkbworICBJRlM9JGFzX3NhdmVfSUZTCisgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisgICMgQWNjb3VudCBmb3IgcGVvcGxlIHdobyBwdXQgdHJhaWxpbmcgc2xhc2hlcyBpbiBQQVRIIGVsZW1lbnRzLgorY2FzZSAkYXNfZGlyLyBpbgorICAuLyB8IC4vLyB8IC9jQy8qIHwgXAorICAvZXRjLyogfCAvdXNyL3NiaW4vKiB8IC91c3IvZXRjLyogfCAvc2Jpbi8qIHwgL3Vzci9hZnN3cy9iaW4vKiB8IFwKKyAgPzpcXC9vczJcXC9pbnN0YWxsXFwvKiB8ID86XFwvT1MyXFwvSU5TVEFMTFxcLyogfCBcCisgIC91c3IvdWNiLyogKSA7OworICAqKQorICAgICMgT1NGMSBhbmQgU0NPIE9EVCAzLjAgaGF2ZSB0aGVpciBvd24gbmFtZXMgZm9yIGluc3RhbGwuCisgICAgIyBEb24ndCB1c2UgaW5zdGFsbGJzZCBmcm9tIE9TRiBzaW5jZSBpdCBpbnN0YWxscyBzdHVmZiBhcyByb290CisgICAgIyBieSBkZWZhdWx0LgorICAgIGZvciBhY19wcm9nIGluIGdpbnN0YWxsIHNjb2luc3QgaW5zdGFsbDsgZG8KKyAgICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworCWlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiOyB0aGVuCisJICBpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFsbCAmJgorCSAgICBncmVwIGRzcG1zZyAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisJICAgICMgQUlYIGluc3RhbGwuICBJdCBoYXMgYW4gaW5jb21wYXRpYmxlIGNhbGxpbmcgY29udmVudGlvbi4KKwkgICAgOgorCSAgZWxpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFsbCAmJgorCSAgICBncmVwIHB3cGx1cyAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisJICAgICMgcHJvZ3JhbS1zcGVjaWZpYyBpbnN0YWxsIHNjcmlwdCB1c2VkIGJ5IEhQIHB3cGx1cy0tZG9uJ3QgdXNlLgorCSAgICA6CisJICBlbHNlCisJICAgIGFjX2N2X3BhdGhfaW5zdGFsbD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCAtYyIKKwkgICAgYnJlYWsgMworCSAgZmkKKwlmaQorICAgICAgZG9uZQorICAgIGRvbmUKKyAgICA7OworZXNhYworZG9uZQorCisKK2ZpCisgIGlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxsK3NldH0iID0gc2V0OyB0aGVuCisgICAgSU5TVEFMTD0kYWNfY3ZfcGF0aF9pbnN0YWxsCisgIGVsc2UKKyAgICAjIEFzIGEgbGFzdCByZXNvcnQsIHVzZSB0aGUgc2xvdyBzaGVsbCBzY3JpcHQuICBXZSBkb24ndCBjYWNoZSBhCisgICAgIyBwYXRoIGZvciBJTlNUQUxMIHdpdGhpbiBhIHNvdXJjZSBkaXJlY3RvcnksIGJlY2F1c2UgdGhhdCB3aWxsCisgICAgIyBicmVhayBvdGhlciBwYWNrYWdlcyB1c2luZyB0aGUgY2FjaGUgaWYgdGhhdCBkaXJlY3RvcnkgaXMKKyAgICAjIHJlbW92ZWQsIG9yIGlmIHRoZSBwYXRoIGlzIHJlbGF0aXZlLgorICAgIElOU1RBTEw9JGFjX2luc3RhbGxfc2gKKyAgZmkKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkSU5TVEFMTCIgPiY1CitlY2hvICIke0VDSE9fVH0kSU5TVEFMTCIgPiY2CisKKyMgVXNlIHRlc3QgLXogYmVjYXVzZSBTdW5PUzQgc2ggbWlzaGFuZGxlcyBicmFjZXMgaW4gJHt2YXItdmFsfS4KKyMgSXQgdGhpbmtzIHRoZSBmaXJzdCBjbG9zZSBicmFjZSBlbmRzIHRoZSB2YXJpYWJsZSBzdWJzdGl0dXRpb24uCit0ZXN0IC16ICIkSU5TVEFMTF9QUk9HUkFNIiAmJiBJTlNUQUxMX1BST0dSQU09JyR7SU5TVEFMTH0nCisKK3Rlc3QgLXogIiRJTlNUQUxMX1NDUklQVCIgJiYgSU5TVEFMTF9TQ1JJUFQ9JyR7SU5TVEFMTH0nCisKK3Rlc3QgLXogIiRJTlNUQUxMX0RBVEEiICYmIElOU1RBTExfREFUQT0nJHtJTlNUQUxMfSAtbSA2NDQnCisKKyMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiYXIiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorc2V0IGR1bW15IGFyOyBhY193b3JkPSQyCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9wcm9nX0FSK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGlmIHRlc3QgLW4gIiRBUiI7IHRoZW4KKyAgYWNfY3ZfcHJvZ19BUj0iJEFSIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KK2Vsc2UKK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4gJFBBVEgKK2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisgIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB0aGVuCisgICAgYWNfY3ZfcHJvZ19BUj0iIgorICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKyAgICBicmVhayAyCisgIGZpCitkb25lCitkb25lCisKKyAgdGVzdCAteiAiJGFjX2N2X3Byb2dfQVIiICYmIGFjX2N2X3Byb2dfQVI9ImFyIgorZmkKK2ZpCitBUj0kYWNfY3ZfcHJvZ19BUgoraWYgdGVzdCAtbiAiJEFSIjsgdGhlbgorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQVIiID4mNQorZWNobyAiJHtFQ0hPX1R9JEFSIiA+JjYKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorZWNobyAiJHtFQ0hPX1R9bm8iID4mNgorZmkKKwordGVzdCAtbiAiJEFSRkxBR1MiIHx8IEFSRkxBR1M9ImNyIgoraWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9cmFubGliIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fXJhbmxpYjsgYWNfd29yZD0kMgorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19SQU5MSUIrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KKyAgYWNfY3ZfcHJvZ19SQU5MSUI9IiRSQU5MSUIiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorZWxzZQorYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorZm9yIGFzX2RpciBpbiAkUEFUSAorZG8KKyAgSUZTPSRhc19zYXZlX0lGUworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKyAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KKyAgICBhY19jdl9wcm9nX1JBTkxJQj0iJHthY190b29sX3ByZWZpeH1yYW5saWIiCisgICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorICAgIGJyZWFrIDIKKyAgZmkKK2RvbmUKK2RvbmUKKworZmkKK2ZpCitSQU5MSUI9JGFjX2N2X3Byb2dfUkFOTElCCitpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkUkFOTElCIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRSQU5MSUIiID4mNgorZWxzZQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CitlY2hvICIke0VDSE9fVH1ubyIgPiY2CitmaQorCitmaQoraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfUkFOTElCIjsgdGhlbgorICBhY19jdF9SQU5MSUI9JFJBTkxJQgorICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgInJhbmxpYiIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCitzZXQgZHVtbXkgcmFubGliOyBhY193b3JkPSQyCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X1JBTkxJQitzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBpZiB0ZXN0IC1uICIkYWNfY3RfUkFOTElCIjsgdGhlbgorICBhY19jdl9wcm9nX2FjX2N0X1JBTkxJQj0iJGFjX2N0X1JBTkxJQiIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCitlbHNlCithc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCitmb3IgYXNfZGlyIGluICRQQVRICitkbworICBJRlM9JGFzX3NhdmVfSUZTCisgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgorICAgIGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCPSJyYW5saWIiCisgICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorICAgIGJyZWFrIDIKKyAgZmkKK2RvbmUKK2RvbmUKKworICB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19hY19jdF9SQU5MSUIiICYmIGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCPSI6IgorZmkKK2ZpCithY19jdF9SQU5MSUI9JGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCCitpZiB0ZXN0IC1uICIkYWNfY3RfUkFOTElCIjsgdGhlbgorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfUkFOTElCIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdF9SQU5MSUIiID4mNgorZWxzZQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CitlY2hvICIke0VDSE9fVH1ubyIgPiY2CitmaQorCisgIFJBTkxJQj0kYWNfY3RfUkFOTElCCitlbHNlCisgIFJBTkxJQj0iJGFjX2N2X3Byb2dfUkFOTElCIgorZmkKKworCitNQUtFX1NIRUxMPS9iaW4vc2gKKworCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGFuIEFOU0kgQy1jb25mb3JtaW5nIGNvbnN0IiA+JjUKIGVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIGFuIEFOU0kgQy1jb25mb3JtaW5nIGNvbnN0Li4uICRFQ0hPX0MiID4mNgogaWYgdGVzdCAiJHthY19jdl9jX2NvbnN0K3NldH0iID0gc2V0OyB0aGVuCiAgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CiBlbHNlCiAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotI2xpbmUgMjQwNCAiY29uZmlndXJlIgotI2luY2x1ZGUgImNvbmZkZWZzLmgiCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiAKIGludAogbWFpbiAoKQpAQCAtMjQ1OSwyODkgKzM0MjMsMTQxIEBACiB9CiBfQUNFT0YKIHJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOjI0NjI6IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjI0NjU6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6MjQ2ODogXCIkYWNfdHJ5XCIiKSA+JjUKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAgIChldmFsICRhY190cnkpIDI+JjUKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZToyNDcxOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCiAgIGFjX2N2X2NfY29uc3Q9eWVzCiBlbHNlCiAgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1jYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKwogYWNfY3ZfY19jb25zdD1ubwogZmkKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAogZmkKLWVjaG8gIiRhc19tZToyNDgxOiByZXN1bHQ6ICRhY19jdl9jX2NvbnN0IiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9jX2NvbnN0IiA+JjUKIGVjaG8gIiR7RUNIT19UfSRhY19jdl9jX2NvbnN0IiA+JjYKIGlmIHRlc3QgJGFjX2N2X2NfY29uc3QgPSBubzsgdGhlbgogCi1jYXQgPj5jb25mZGVmcy5oIDw8XEVPRgorY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKICNkZWZpbmUgY29uc3QKLUVPRgorX0FDRU9GCiAKIGZpCiAKLWVjaG8gIiRhc19tZToyNDkxOiBjaGVja2luZyBmb3IgZnVuY3Rpb24gcHJvdG90eXBlcyIgPiY1CitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGZ1bmN0aW9uIHByb3RvdHlwZXMiID4mNQogZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgZnVuY3Rpb24gcHJvdG90eXBlcy4uLiAkRUNIT19DIiA+JjYKIGlmIHRlc3QgIiRhY19jdl9wcm9nX2NjX3N0ZGMiICE9IG5vOyB0aGVuCi0gIGVjaG8gIiRhc19tZToyNDk0OiByZXN1bHQ6IHllcyIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1CiBlY2hvICIke0VDSE9fVH15ZXMiID4mNgogCi1jYXQgPj5jb25mZGVmcy5oIDw8XEVPRgorY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKICNkZWZpbmUgUFJPVE9UWVBFUyAxCi1FT0YKK19BQ0VPRgorCisKK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisjZGVmaW5lIF9fUFJPVE9UWVBFUyAxCitfQUNFT0YKIAogZWxzZQotICBlY2hvICIkYXNfbWU6MjUwMjogcmVzdWx0OiBubyIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKIGVjaG8gIiR7RUNIT19UfW5vIiA+JjYKIGZpCiAKLWVjaG8gIiRhc19tZToyNTA2OiBjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcyIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzLi4uICRFQ0hPX0MiID4mNgotaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3RkYytzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSNsaW5lIDI1MTIgImNvbmZpZ3VyZSIKLSNpbmNsdWRlICJjb25mZGVmcy5oIgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0ZGFyZy5oPgotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPGZsb2F0Lmg+CiAKLV9BQ0VPRgotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6MjUyMDogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHRcIiIpID4mNQotICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRlc3QuZXIxCi0gIGFjX3N0YXR1cz0kPwotICBlZ3JlcCAtdiAnXiAqXCsnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0gIHJtIC1mIGNvbmZ0ZXN0LmVyMQotICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6MjUyNjogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KLSAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLSAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCi0gIGVsc2UKLSAgICBhY19jcHBfZXJyPQotICBmaQotZWxzZQotICBhY19jcHBfZXJyPXllcwotZmkKLWlmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgotICBhY19jdl9oZWFkZXJfc3RkYz15ZXMKLWVsc2UKLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLSAgY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0gIGFjX2N2X2hlYWRlcl9zdGRjPW5vCi1maQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLQotaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KLSAgIyBTdW5PUyA0Lnggc3RyaW5nLmggZG9lcyBub3QgZGVjbGFyZSBtZW0qLCBjb250cmFyeSB0byBBTlNJLgotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSNsaW5lIDI1NDggImNvbmZpZ3VyZSIKLSNpbmNsdWRlICJjb25mZGVmcy5oIgotI2luY2x1ZGUgPHN0cmluZy5oPgotCi1fQUNFT0YKLWlmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKLSAgZWdyZXAgIm1lbWNociIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIDoKLWVsc2UKLSAgYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KLWZpCi1ybSAtZiBjb25mdGVzdCoKLQotZmkKLQotaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KLSAgIyBJU0MgMi4wLjIgc3RkbGliLmggZG9lcyBub3QgZGVjbGFyZSBmcmVlLCBjb250cmFyeSB0byBBTlNJLgotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSNsaW5lIDI1NjYgImNvbmZpZ3VyZSIKLSNpbmNsdWRlICJjb25mZGVmcy5oIgotI2luY2x1ZGUgPHN0ZGxpYi5oPgotCi1fQUNFT0YKLWlmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKLSAgZWdyZXAgImZyZWUiID4vZGV2L251bGwgMj4mMTsgdGhlbgotICA6Ci1lbHNlCi0gIGFjX2N2X2hlYWRlcl9zdGRjPW5vCi1maQotcm0gLWYgY29uZnRlc3QqCi0KLWZpCi0KLWlmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCi0gICMgL2Jpbi9jYyBpbiBJcml4LTQuMC41IGdldHMgbm9uLUFOU0kgY3R5cGUgbWFjcm9zIHVubGVzcyB1c2luZyAtYW5zaS4KLSAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KLSAgOgotZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSNsaW5lIDI1ODcgImNvbmZpZ3VyZSIKLSNpbmNsdWRlICJjb25mZGVmcy5oIgotI2luY2x1ZGUgPGN0eXBlLmg+Ci0jaWYgKCgnICcgJiAweDBGRikgPT0gMHgwMjApCi0jIGRlZmluZSBJU0xPV0VSKGMpICgnYScgPD0gKGMpICYmIChjKSA8PSAneicpCi0jIGRlZmluZSBUT1VQUEVSKGMpIChJU0xPV0VSKGMpID8gJ0EnICsgKChjKSAtICdhJykgOiAoYykpCi0jZWxzZQotIyBkZWZpbmUgSVNMT1dFUihjKSAoKCdhJyA8PSAoYykgJiYgKGMpIDw9ICdpJykgXAotICAgICAgICAgICAgICAgICAgICAgfHwgKCdqJyA8PSAoYykgJiYgKGMpIDw9ICdyJykgXAotICAgICAgICAgICAgICAgICAgICAgfHwgKCdzJyA8PSAoYykgJiYgKGMpIDw9ICd6JykpCi0jIGRlZmluZSBUT1VQUEVSKGMpIChJU0xPV0VSKGMpID8gKChjKSB8IDB4NDApIDogKGMpKQotI2VuZGlmCi0KLSNkZWZpbmUgWE9SKGUsIGYpICgoKGUpICYmICEoZikpIHx8ICghKGUpICYmIChmKSkpCi1pbnQKLW1haW4gKCkKLXsKLSAgaW50IGk7Ci0gIGZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykKLSAgICBpZiAoWE9SIChpc2xvd2VyIChpKSwgSVNMT1dFUiAoaSkpCi0gICAgICAgIHx8IHRvdXBwZXIgKGkpICE9IFRPVVBQRVIgKGkpKQotICAgICAgZXhpdCgyKTsKLSAgZXhpdCAoMCk7Ci19Ci1fQUNFT0YKLXJtIC1mIGNvbmZ0ZXN0JGFjX2V4ZWV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6MjYxMzogXCIkYWNfbGlua1wiIikgPiY1Ci0gIChldmFsICRhY19saW5rKSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6MjYxNjogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6MjYxODogXCIkYWNfdHJ5XCIiKSA+JjUKLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQotICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjI2MjE6IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICA6Ci1lbHNlCi0gIGVjaG8gIiRhc19tZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgJGFjX3N0YXR1cyIgPiY1Ci1lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci1hY19jdl9oZWFkZXJfc3RkYz1ubwotZmkKLXJtIC1mIGNvcmUgY29yZS4qICouY29yZSBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci1maQotZmkKLWZpCi1lY2hvICIkYXNfbWU6MjYzNDogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3N0ZGMiID4mNQotZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2hlYWRlcl9zdGRjIiA+JjYKLWlmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCi0KLWNhdCA+PmNvbmZkZWZzLmggPDxcRU9GCi0jZGVmaW5lIFNURENfSEVBREVSUyAxCi1FT0YKLQotZmkKLQotIyBPbiBJUklYIDUuMywgc3lzL3R5cGVzIGFuZCBpbnR0eXBlcy5oIGFyZSBjb25mbGljdGluZy4KLQotZm9yIGFjX2hlYWRlciBpbiBzeXMvdHlwZXMuaCBzeXMvc3RhdC5oIHN0ZGxpYi5oIHN0cmluZy5oIG1lbW9yeS5oIHN0cmluZ3MuaCBcCi0gICAgICAgICAgICAgICAgICBpbnR0eXBlcy5oIHN0ZGludC5oIHVuaXN0ZC5oCi1kbwotYXNfYWNfSGVhZGVyPWBlY2hvICJhY19jdl9oZWFkZXJfJGFjX2hlYWRlciIgfCAkYXNfdHJfc2hgCi1lY2hvICIkYXNfbWU6MjY1MDogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2hlYWRlci4uLiAkRUNIT19DIiA+JjYKLWlmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KLSAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKLWVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jbGluZSAyNjU2ICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKLSRhY19pbmNsdWRlc19kZWZhdWx0Ci0jaW5jbHVkZSA8JGFjX2hlYWRlcj4KLV9BQ0VPRgotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6MjY2MjogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6MjY2NTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZToyNjY4OiBcIiRhY190cnlcIiIpID4mNQotICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6MjY3MTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCi0gIGV2YWwgIiRhc19hY19IZWFkZXI9eWVzIgotZWxzZQotICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci1ldmFsICIkYXNfYWNfSGVhZGVyPW5vIgotZmkKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWVjaG8gIiRhc19tZToyNjgxOiByZXN1bHQ6IGBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjUKLWVjaG8gIiR7RUNIT19UfWBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjYKLWlmIHRlc3QgYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AgPSB5ZXM7IHRoZW4KLSAgY2F0ID4+Y29uZmRlZnMuaCA8PEVPRgotI2RlZmluZSBgZWNobyAiSEFWRV8kYWNfaGVhZGVyIiB8ICRhc190cl9jcHBgIDEKLUVPRgotCi1maQotZG9uZQotCi1lY2hvICIkYXNfbWU6MjY5MTogY2hlY2tpbmcgd2hldGhlciBjaGFyIGlzIHVuc2lnbmVkIiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIGNoYXIgaXMgdW5zaWduZWQiID4mNQogZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIGNoYXIgaXMgdW5zaWduZWQuLi4gJEVDSE9fQyIgPiY2CiBpZiB0ZXN0ICIke2FjX2N2X2NfY2hhcl91bnNpZ25lZCtzZXR9IiA9IHNldDsgdGhlbgogICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgogZWxzZQogICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSNsaW5lIDI2OTcgImNvbmZpZ3VyZSIKLSNpbmNsdWRlICJjb25mZGVmcy5oIgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLwogJGFjX2luY2x1ZGVzX2RlZmF1bHQKIGludAogbWFpbiAoKQogewotaW50IF9hcnJheV8gWzEgLSAyICogISgoKGNoYXIpIC0xKSA8IDApXQorc3RhdGljIGludCB0ZXN0X2FycmF5IFsxIC0gMiAqICEoKChjaGFyKSAtMSkgPCAwKV07Cit0ZXN0X2FycmF5IFswXSA9IDAKKwogICA7CiAgIHJldHVybiAwOwogfQogX0FDRU9GCiBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZToyNzA5OiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZToyNzEyOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOjI3MTU6IFwiJGFjX3RyeVwiIikgPiY1CisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQogICAoZXZhbCAkYWNfdHJ5KSAyPiY1CiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6MjcxODogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogICBhY19jdl9jX2NoYXJfdW5zaWduZWQ9bm8KIGVsc2UKICAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLWNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCiBhY19jdl9jX2NoYXJfdW5zaWduZWQ9eWVzCiBmaQotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CiBmaQotZWNobyAiJGFzX21lOjI3Mjg6IHJlc3VsdDogJGFjX2N2X2NfY2hhcl91bnNpZ25lZCIgPiY1CitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfY19jaGFyX3Vuc2lnbmVkIiA+JjUKIGVjaG8gIiR7RUNIT19UfSRhY19jdl9jX2NoYXJfdW5zaWduZWQiID4mNgogaWYgdGVzdCAkYWNfY3ZfY19jaGFyX3Vuc2lnbmVkID0geWVzICYmIHRlc3QgIiRHQ0MiICE9IHllczsgdGhlbgotICBjYXQgPj5jb25mZGVmcy5oIDw8XEVPRgorICBjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgogI2RlZmluZSBfX0NIQVJfVU5TSUdORURfXyAxCi1FT0YKK19BQ0VPRgogCiBmaQogCi1lY2hvICIkYXNfbWU6MjczNzogY2hlY2tpbmcgcmV0dXJuIHR5cGUgb2Ygc2lnbmFsIGhhbmRsZXJzIiA+JjUKKworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHJldHVybiB0eXBlIG9mIHNpZ25hbCBoYW5kbGVycyIgPiY1CiBlY2hvICRFQ0hPX04gImNoZWNraW5nIHJldHVybiB0eXBlIG9mIHNpZ25hbCBoYW5kbGVycy4uLiAkRUNIT19DIiA+JjYKIGlmIHRlc3QgIiR7YWNfY3ZfdHlwZV9zaWduYWwrc2V0fSIgPSBzZXQ7IHRoZW4KICAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKIGVsc2UKICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jbGluZSAyNzQzICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpbmNsdWRlIDxzaWduYWwuaD4KICNpZmRlZiBzaWduYWwKQEAgLTI3NjIsNDAgKzM1NzgsNTYgQEAKIH0KIF9BQ0VPRgogcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6Mjc2NTogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPiY1CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6Mjc2ODogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZToyNzcxOiBcIiRhY190cnlcIiIpID4mNQorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAgKGV2YWwgJGFjX3RyeSkgMj4mNQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjI3NzQ6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KICAgYWNfY3ZfdHlwZV9zaWduYWw9dm9pZAogZWxzZQogICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKIGFjX2N2X3R5cGVfc2lnbmFsPWludAogZmkKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAogZmkKLWVjaG8gIiRhc19tZToyNzg0OiByZXN1bHQ6ICRhY19jdl90eXBlX3NpZ25hbCIgPiY1CitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfdHlwZV9zaWduYWwiID4mNQogZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3R5cGVfc2lnbmFsIiA+JjYKIAotY2F0ID4+Y29uZmRlZnMuaCA8PEVPRgorY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgogI2RlZmluZSBSRVRTSUdUWVBFICRhY19jdl90eXBlX3NpZ25hbAotRU9GCitfQUNFT0YKIAotZWNobyAiJGFzX21lOjI3OTE6IGNoZWNraW5nIGZvciBzaXplX3QiID4mNQorCisKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc2l6ZV90IiA+JjUKIGVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHNpemVfdC4uLiAkRUNIT19DIiA+JjYKIGlmIHRlc3QgIiR7YWNfY3ZfdHlwZV9zaXplX3Qrc2V0fSIgPSBzZXQ7IHRoZW4KICAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKIGVsc2UKICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jbGluZSAyNzk3ICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KICRhY19pbmNsdWRlc19kZWZhdWx0CiBpbnQKIG1haW4gKCkKQEAgLTI4MDksNDUgKzM2NDEsNTkgQEAKIH0KIF9BQ0VPRgogcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6MjgxMjogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPiY1CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6MjgxNTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZToyODE4OiBcIiRhY190cnlcIiIpID4mNQorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAgKGV2YWwgJGFjX3RyeSkgMj4mNQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjI4MjE6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KICAgYWNfY3ZfdHlwZV9zaXplX3Q9eWVzCiBlbHNlCiAgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1jYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKwogYWNfY3ZfdHlwZV9zaXplX3Q9bm8KIGZpCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKIGZpCi1lY2hvICIkYXNfbWU6MjgzMTogcmVzdWx0OiAkYWNfY3ZfdHlwZV9zaXplX3QiID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3R5cGVfc2l6ZV90IiA+JjUKIGVjaG8gIiR7RUNIT19UfSRhY19jdl90eXBlX3NpemVfdCIgPiY2CiBpZiB0ZXN0ICRhY19jdl90eXBlX3NpemVfdCA9IHllczsgdGhlbgogICA6CiBlbHNlCiAKLWNhdCA+PmNvbmZkZWZzLmggPDxFT0YKK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKICNkZWZpbmUgc2l6ZV90IHVuc2lnbmVkCi1FT0YKK19BQ0VPRgogCiBmaQogCi1lY2hvICIkYXNfbWU6Mjg0MzogY2hlY2tpbmcgZm9yIHNzaXplX3QiID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzc2l6ZV90IiA+JjUKIGVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHNzaXplX3QuLi4gJEVDSE9fQyIgPiY2CiBpZiB0ZXN0ICIke2FjX2N2X3R5cGVfc3NpemVfdCtzZXR9IiA9IHNldDsgdGhlbgogICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgogZWxzZQogICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSNsaW5lIDI4NDkgImNvbmZpZ3VyZSIKLSNpbmNsdWRlICJjb25mZGVmcy5oIgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLwogJGFjX2luY2x1ZGVzX2RlZmF1bHQKIGludAogbWFpbiAoKQpAQCAtMjg2MSw0NSArMzcwNywyMjcgQEAKIH0KIF9BQ0VPRgogcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6Mjg2NDogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPiY1CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6Mjg2NzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZToyODcwOiBcIiRhY190cnlcIiIpID4mNQorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAgKGV2YWwgJGFjX3RyeSkgMj4mNQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjI4NzM6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KICAgYWNfY3ZfdHlwZV9zc2l6ZV90PXllcwogZWxzZQogICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKIGFjX2N2X3R5cGVfc3NpemVfdD1ubwogZmkKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAogZmkKLWVjaG8gIiRhc19tZToyODgzOiByZXN1bHQ6ICRhY19jdl90eXBlX3NzaXplX3QiID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3R5cGVfc3NpemVfdCIgPiY1CiBlY2hvICIke0VDSE9fVH0kYWNfY3ZfdHlwZV9zc2l6ZV90IiA+JjYKIGlmIHRlc3QgJGFjX2N2X3R5cGVfc3NpemVfdCA9IHllczsgdGhlbgogICA6CiBlbHNlCiAKLWNhdCA+PmNvbmZkZWZzLmggPDxFT0YKK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKICNkZWZpbmUgc3NpemVfdCBpbnQKLUVPRgorX0FDRU9GCiAKIGZpCiAKLWVjaG8gIiRhc19tZToyODk1OiBjaGVja2luZyB3aGV0aGVyIHN0YXQgZmlsZS1tb2RlIG1hY3JvcyBhcmUgYnJva2VuIiA+JjUKKworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zdGRjK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGFyZy5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGZsb2F0Lmg+CisKK2ludAorbWFpbiAoKQoreworCisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfaGVhZGVyX3N0ZGM9eWVzCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2FjX2N2X2hlYWRlcl9zdGRjPW5vCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorCitpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgorICAjIFN1bk9TIDQueCBzdHJpbmcuaCBkb2VzIG5vdCBkZWNsYXJlIG1lbSosIGNvbnRyYXJ5IHRvIEFOU0kuCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPHN0cmluZy5oPgorCitfQUNFT0YKK2lmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKKyAgJEVHUkVQICJtZW1jaHIiID4vZGV2L251bGwgMj4mMTsgdGhlbgorICA6CitlbHNlCisgIGFjX2N2X2hlYWRlcl9zdGRjPW5vCitmaQorcm0gLWYgY29uZnRlc3QqCisKK2ZpCisKK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCisgICMgSVNDIDIuMC4yIHN0ZGxpYi5oIGRvZXMgbm90IGRlY2xhcmUgZnJlZSwgY29udHJhcnkgdG8gQU5TSS4KKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaW5jbHVkZSA8c3RkbGliLmg+CisKK19BQ0VPRgoraWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAorICAkRUdSRVAgImZyZWUiID4vZGV2L251bGwgMj4mMTsgdGhlbgorICA6CitlbHNlCisgIGFjX2N2X2hlYWRlcl9zdGRjPW5vCitmaQorcm0gLWYgY29uZnRlc3QqCisKK2ZpCisKK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCisgICMgL2Jpbi9jYyBpbiBJcml4LTQuMC41IGdldHMgbm9uLUFOU0kgY3R5cGUgbWFjcm9zIHVubGVzcyB1c2luZyAtYW5zaS4KKyAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KKyAgOgorZWxzZQorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2lmICgoJyAnICYgMHgwRkYpID09IDB4MDIwKQorIyBkZWZpbmUgSVNMT1dFUihjKSAoJ2EnIDw9IChjKSAmJiAoYykgPD0gJ3onKQorIyBkZWZpbmUgVE9VUFBFUihjKSAoSVNMT1dFUihjKSA/ICdBJyArICgoYykgLSAnYScpIDogKGMpKQorI2Vsc2UKKyMgZGVmaW5lIElTTE9XRVIoYykgXAorCQkgICAoKCdhJyA8PSAoYykgJiYgKGMpIDw9ICdpJykgXAorCQkgICAgIHx8ICgnaicgPD0gKGMpICYmIChjKSA8PSAncicpIFwKKwkJICAgICB8fCAoJ3MnIDw9IChjKSAmJiAoYykgPD0gJ3onKSkKKyMgZGVmaW5lIFRPVVBQRVIoYykgKElTTE9XRVIoYykgPyAoKGMpIHwgMHg0MCkgOiAoYykpCisjZW5kaWYKKworI2RlZmluZSBYT1IoZSwgZikgKCgoZSkgJiYgIShmKSkgfHwgKCEoZSkgJiYgKGYpKSkKK2ludAorbWFpbiAoKQoreworICBpbnQgaTsKKyAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKQorICAgIGlmIChYT1IgKGlzbG93ZXIgKGkpLCBJU0xPV0VSIChpKSkKKwl8fCB0b3VwcGVyIChpKSAhPSBUT1VQUEVSIChpKSkKKyAgICAgIGV4aXQoMik7CisgIGV4aXQgKDApOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdCRhY19leGVleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7IGFjX3RyeT0nLi9jb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgOgorZWxzZQorICBlY2hvICIkYXNfbWU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMiID4mNQorZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworKCBleGl0ICRhY19zdGF0dXMgKQorYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KK2ZpCitybSAtZiBjb3JlICouY29yZSBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK2ZpCitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9zdGRjIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdl9oZWFkZXJfc3RkYyIgPiY2CitpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhlbgorCitjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorI2RlZmluZSBTVERDX0hFQURFUlMgMQorX0FDRU9GCisKK2ZpCisKKworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgc3RhdCBmaWxlLW1vZGUgbWFjcm9zIGFyZSBicm9rZW4iID4mNQogZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIHN0YXQgZmlsZS1tb2RlIG1hY3JvcyBhcmUgYnJva2VuLi4uICRFQ0hPX0MiID4mNgogaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3RhdF9icm9rZW4rc2V0fSIgPSBzZXQ7IHRoZW4KICAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKIGVsc2UKICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jbGluZSAyOTAxICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpbmNsdWRlIDxzeXMvc3RhdC5oPgogCkBAIC0yOTI5LDcgKzM5NTcsNyBAQAogCiBfQUNFT0YKIGlmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKLSAgZWdyZXAgIllvdSBsb3NlIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgJEVHUkVQICJZb3UgbG9zZSIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgIGFjX2N2X2hlYWRlcl9zdGF0X2Jyb2tlbj15ZXMKIGVsc2UKICAgYWNfY3ZfaGVhZGVyX3N0YXRfYnJva2VuPW5vCkBAIC0yOTM3LDI3ICszOTY1LDM1IEBACiBybSAtZiBjb25mdGVzdCoKIAogZmkKLWVjaG8gIiRhc19tZToyOTQwOiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfc3RhdF9icm9rZW4iID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2hlYWRlcl9zdGF0X2Jyb2tlbiIgPiY1CiBlY2hvICIke0VDSE9fVH0kYWNfY3ZfaGVhZGVyX3N0YXRfYnJva2VuIiA+JjYKIGlmIHRlc3QgJGFjX2N2X2hlYWRlcl9zdGF0X2Jyb2tlbiA9IHllczsgdGhlbgogCi1jYXQgPj5jb25mZGVmcy5oIDw8XEVPRgorY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKICNkZWZpbmUgU1RBVF9NQUNST1NfQlJPS0VOIDEKLUVPRgorX0FDRU9GCiAKIGZpCiAKKworCisKKworCiBhY19oZWFkZXJfZGlyZW50PW5vCiBmb3IgYWNfaGRyIGluIGRpcmVudC5oIHN5cy9uZGlyLmggc3lzL2Rpci5oIG5kaXIuaDsgZG8KICAgYXNfYWNfSGVhZGVyPWBlY2hvICJhY19jdl9oZWFkZXJfZGlyZW50XyRhY19oZHIiIHwgJGFzX3RyX3NoYAotZWNobyAiJGFzX21lOjI5NTM6IGNoZWNraW5nIGZvciAkYWNfaGRyIHRoYXQgZGVmaW5lcyBESVIiID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGRyIHRoYXQgZGVmaW5lcyBESVIiID4mNQogZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2hkciB0aGF0IGRlZmluZXMgRElSLi4uICRFQ0hPX0MiID4mNgogaWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY19IZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhlbgogICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgogZWxzZQogICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSNsaW5lIDI5NTkgImNvbmZpZ3VyZSIKLSNpbmNsdWRlICJjb25mZGVmcy5oIgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLwogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2luY2x1ZGUgPCRhY19oZHI+CiAKQEAgLTI5NzEsMzEgKzQwMDcsNDIgQEAKIH0KIF9BQ0VPRgogcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6Mjk3NDogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPiY1CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6Mjk3NzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZToyOTgwOiBcIiRhY190cnlcIiIpID4mNQorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAgKGV2YWwgJGFjX3RyeSkgMj4mNQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjI5ODM6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KICAgZXZhbCAiJGFzX2FjX0hlYWRlcj15ZXMiCiBlbHNlCiAgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1jYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKwogZXZhbCAiJGFzX2FjX0hlYWRlcj1ubyIKIGZpCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKIGZpCi1lY2hvICIkYXNfbWU6Mjk5MzogcmVzdWx0OiBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY1CitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY1CiBlY2hvICIke0VDSE9fVH1gZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY2CiBpZiB0ZXN0IGBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgID0geWVzOyB0aGVuCi0gIGNhdCA+PmNvbmZkZWZzLmggPDxFT0YKKyAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgogI2RlZmluZSBgZWNobyAiSEFWRV8kYWNfaGRyIiB8ICRhc190cl9jcHBgIDEKLUVPRgorX0FDRU9GCiAKIGFjX2hlYWRlcl9kaXJlbnQ9JGFjX2hkcjsgYnJlYWsKIGZpCkBAIC0zMDAzLDE2ICs0MDUwLDE5IEBACiBkb25lCiAjIFR3byB2ZXJzaW9ucyBvZiBvcGVuZGlyIGV0IGFsLiBhcmUgaW4gLWxkaXIgYW5kIC1seCBvbiBTQ08gWGVuaXguCiBpZiB0ZXN0ICRhY19oZWFkZXJfZGlyZW50ID0gZGlyZW50Lmg7IHRoZW4KLSAgZWNobyAiJGFzX21lOjMwMDY6IGNoZWNraW5nIGZvciBvcGVuZGlyIGluIC1sZGlyIiA+JjUKLWVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIG9wZW5kaXIgaW4gLWxkaXIuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X2xpYl9kaXJfb3BlbmRpcitzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBvcGVuZGlyIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBvcGVuZGlyLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9zZWFyY2hfb3BlbmRpcitzZXR9IiA9IHNldDsgdGhlbgogICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgogZWxzZQotICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi1MSUJTPSItbGRpciAgJExJQlMiCisgIGFjX2Z1bmNfc2VhcmNoX3NhdmVfTElCUz0kTElCUworYWNfY3Zfc2VhcmNoX29wZW5kaXI9bm8KIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotI2xpbmUgMzAxNCAiY29uZmlndXJlIgotI2luY2x1ZGUgImNvbmZkZWZzLmgiCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiAKIC8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCiAjaWZkZWYgX19jcGx1c3BsdXMKQEAgLTMwMzAsNDMgKzQwODAsNDQgQEAKIH0KIF9BQ0VPRgogcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOjMwMzM6IFwiJGFjX2xpbmtcIiIpID4mNQotICAoZXZhbCAkYWNfbGluaykgMj4mNQoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CisgIChldmFsICRhY19saW5rKSAyPmNvbmZ0ZXN0LmVyMQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjMwMzY6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTozMDM5OiBcIiRhY190cnlcIiIpID4mNQorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAgKGV2YWwgJGFjX3RyeSkgMj4mNQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjMwNDI6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgotICBhY19jdl9saWJfZGlyX29wZW5kaXI9eWVzCisgIGFjX2N2X3NlYXJjaF9vcGVuZGlyPSJub25lIHJlcXVpcmVkIgogZWxzZQogICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci1hY19jdl9saWJfZGlyX29wZW5kaXI9bm8KLWZpCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci1MSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCi1maQotZWNobyAiJGFzX21lOjMwNTM6IHJlc3VsdDogJGFjX2N2X2xpYl9kaXJfb3BlbmRpciIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfbGliX2Rpcl9vcGVuZGlyIiA+JjYKLWlmIHRlc3QgJGFjX2N2X2xpYl9kaXJfb3BlbmRpciA9IHllczsgdGhlbgotICBMSUJTPSIkTElCUyAtbGRpciIKLWZpCitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CiAKLWVsc2UKLSAgZWNobyAiJGFzX21lOjMwNjA6IGNoZWNraW5nIGZvciBvcGVuZGlyIGluIC1seCIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBvcGVuZGlyIGluIC1seC4uLiAkRUNIT19DIiA+JjYKLWlmIHRlc3QgIiR7YWNfY3ZfbGliX3hfb3BlbmRpcitzZXR9IiA9IHNldDsgdGhlbgotICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgotZWxzZQotICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi1MSUJTPSItbHggICRMSUJTIgotY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jbGluZSAzMDY4ICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAoraWYgdGVzdCAiJGFjX2N2X3NlYXJjaF9vcGVuZGlyIiA9IG5vOyB0aGVuCisgIGZvciBhY19saWIgaW4gZGlyOyBkbworICAgIExJQlM9Ii1sJGFjX2xpYiAgJGFjX2Z1bmNfc2VhcmNoX3NhdmVfTElCUyIKKyAgICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KIAogLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KICNpZmRlZiBfX2NwbHVzcGx1cwpAQCAtMzA4NCwxMDUgKzQxMzUsNjAxIEBACiB9CiBfQUNFT0YKIHJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTozMDg3OiBcIiRhY19saW5rXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2xpbmspIDI+JjUKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj5jb25mdGVzdC5lcjEKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTozMDkwOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6MzA5MzogXCIkYWNfdHJ5XCIiKSA+JjUKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAgIChldmFsICRhY190cnkpIDI+JjUKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTozMDk2OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3ZfbGliX3hfb3BlbmRpcj15ZXMKKyAgYWNfY3Zfc2VhcmNoX29wZW5kaXI9Ii1sJGFjX2xpYiIKK2JyZWFrCiBlbHNlCiAgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1jYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKLWFjX2N2X2xpYl94X29wZW5kaXI9bm8KK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKwogZmkKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLUxJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisgIGRvbmUKIGZpCi1lY2hvICIkYXNfbWU6MzEwNzogcmVzdWx0OiAkYWNfY3ZfbGliX3hfb3BlbmRpciIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3ZfbGliX3hfb3BlbmRpciIgPiY2Ci1pZiB0ZXN0ICRhY19jdl9saWJfeF9vcGVuZGlyID0geWVzOyB0aGVuCi0gIExJQlM9IiRMSUJTIC1seCIKK0xJQlM9JGFjX2Z1bmNfc2VhcmNoX3NhdmVfTElCUworZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9zZWFyY2hfb3BlbmRpciIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3Zfc2VhcmNoX29wZW5kaXIiID4mNgoraWYgdGVzdCAiJGFjX2N2X3NlYXJjaF9vcGVuZGlyIiAhPSBubzsgdGhlbgorICB0ZXN0ICIkYWNfY3Zfc2VhcmNoX29wZW5kaXIiID0gIm5vbmUgcmVxdWlyZWQiIHx8IExJQlM9IiRhY19jdl9zZWFyY2hfb3BlbmRpciAkTElCUyIKKworZmkKKworZWxzZQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBvcGVuZGlyIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBvcGVuZGlyLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9zZWFyY2hfb3BlbmRpcitzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBhY19mdW5jX3NlYXJjaF9zYXZlX0xJQlM9JExJQlMKK2FjX2N2X3NlYXJjaF9vcGVuZGlyPW5vCitjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKworLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIgorI2VuZGlmCisvKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCisgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLworY2hhciBvcGVuZGlyICgpOworaW50CittYWluICgpCit7CitvcGVuZGlyICgpOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CisgIChldmFsICRhY19saW5rKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2N2X3NlYXJjaF9vcGVuZGlyPSJub25lIHJlcXVpcmVkIgorZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2lmIHRlc3QgIiRhY19jdl9zZWFyY2hfb3BlbmRpciIgPSBubzsgdGhlbgorICBmb3IgYWNfbGliIGluIHg7IGRvCisgICAgTElCUz0iLWwkYWNfbGliICAkYWNfZnVuY19zZWFyY2hfc2F2ZV9MSUJTIgorICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworCisvKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiCisjZW5kaWYKKy8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCitjaGFyIG9wZW5kaXIgKCk7CitpbnQKK21haW4gKCkKK3sKK29wZW5kaXIgKCk7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2xpbmspIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3Zfc2VhcmNoX29wZW5kaXI9Ii1sJGFjX2xpYiIKK2JyZWFrCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorICBkb25lCitmaQorTElCUz0kYWNfZnVuY19zZWFyY2hfc2F2ZV9MSUJTCitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3NlYXJjaF9vcGVuZGlyIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdl9zZWFyY2hfb3BlbmRpciIgPiY2CitpZiB0ZXN0ICIkYWNfY3Zfc2VhcmNoX29wZW5kaXIiICE9IG5vOyB0aGVuCisgIHRlc3QgIiRhY19jdl9zZWFyY2hfb3BlbmRpciIgPSAibm9uZSByZXF1aXJlZCIgfHwgTElCUz0iJGFjX2N2X3NlYXJjaF9vcGVuZGlyICRMSUJTIgorCiBmaQogCiBmaQogCi1mb3IgYWNfZnVuYyBpbiBsc3RhdCBtZW1tb3ZlIHB1dGVudiBzZWxlY3Qgc2V0ZW52IHNldGxvY2FsZSBcCi0JCXN0cmNhc2VjbXAgc3RycGJyayB0Y2dldGF0dHIgdnNucHJpbnRmIGlzYXNjaWkgaXN4ZGlnaXQKKworCisKKworZm9yIGFjX2Z1bmMgaW4gZmNudGwga2lsbCBsc3RhdAogZG8KIGFzX2FjX3Zhcj1gZWNobyAiYWNfY3ZfZnVuY18kYWNfZnVuYyIgfCAkYXNfdHJfc2hgCi1lY2hvICIkYXNfbWU6MzExOTogY2hlY2tpbmcgZm9yICRhY19mdW5jIiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2Z1bmMiID4mNQogZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2Z1bmMuLi4gJEVDSE9fQyIgPiY2CiBpZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX3ZhcitzZXR9XCIgPSBzZXQiOyB0aGVuCiAgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CiBlbHNlCiAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotI2xpbmUgMzEyNSAiY29uZmlndXJlIgotI2luY2x1ZGUgImNvbmZkZWZzLmgiCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisvKiBEZWZpbmUgJGFjX2Z1bmMgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyAkYWNfZnVuYy4KKyAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLworI2RlZmluZSAkYWNfZnVuYyBpbm5vY3VvdXNfJGFjX2Z1bmMKKwogLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAotICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgJGFjX2Z1bmMgKCk7IGJlbG93LiAgKi8KLSNpbmNsdWRlIDxhc3NlcnQuaD4KKyAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyICRhY19mdW5jICgpOyBiZWxvdy4KKyAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCisgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KKworI2lmZGVmIF9fU1REQ19fCisjIGluY2x1ZGUgPGxpbWl0cy5oPgorI2Vsc2UKKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+CisjZW5kaWYKKworI3VuZGVmICRhY19mdW5jCisKIC8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCiAjaWZkZWYgX19jcGx1c3BsdXMKIGV4dGVybiAiQyIKK3sKICNlbmRpZgogLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgogICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KIGNoYXIgJGFjX2Z1bmMgKCk7Ci1jaGFyICgqZikgKCk7Ci0KLWludAotbWFpbiAoKQotewogLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwogICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCiAjaWYgZGVmaW5lZCAoX19zdHViXyRhY19mdW5jKSB8fCBkZWZpbmVkIChfX3N0dWJfX18kYWNfZnVuYykKIGNob2tlIG1lCiAjZWxzZQotZiA9ICRhY19mdW5jOworY2hhciAoKmYpICgpID0gJGFjX2Z1bmM7CisjZW5kaWYKKyNpZmRlZiBfX2NwbHVzcGx1cworfQogI2VuZGlmCiAKK2ludAorbWFpbiAoKQoreworcmV0dXJuIGYgIT0gJGFjX2Z1bmM7CiAgIDsKICAgcmV0dXJuIDA7CiB9CiBfQUNFT0YKIHJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTozMTU2OiBcIiRhY19saW5rXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2xpbmspIDI+JjUKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj5jb25mdGVzdC5lcjEKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTozMTU5OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6MzE2MjogXCIkYWNfdHJ5XCIiKSA+JjUKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAgIChldmFsICRhY190cnkpIDI+JjUKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTozMTY1OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KICAgZXZhbCAiJGFzX2FjX3Zhcj15ZXMiCiBlbHNlCiAgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1jYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKwogZXZhbCAiJGFzX2FjX3Zhcj1ubyIKIGZpCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAogZmkKLWVjaG8gIiRhc19tZTozMTc1OiByZXN1bHQ6IGBldmFsIGVjaG8gJyR7JyRhc19hY192YXInfSdgIiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IGBldmFsIGVjaG8gJyR7JyRhc19hY192YXInfSdgIiA+JjUKIGVjaG8gIiR7RUNIT19UfWBldmFsIGVjaG8gJyR7JyRhc19hY192YXInfSdgIiA+JjYKIGlmIHRlc3QgYGV2YWwgZWNobyAnJHsnJGFzX2FjX3Zhcid9J2AgPSB5ZXM7IHRoZW4KLSAgY2F0ID4+Y29uZmRlZnMuaCA8PEVPRgorICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCiAjZGVmaW5lIGBlY2hvICJIQVZFXyRhY19mdW5jIiB8ICRhc190cl9jcHBgIDEKLUVPRgorX0FDRU9GCiAKIGZpCiBkb25lCiAKLWVjaG8gIiRhc19tZTozMTg1OiBjaGVja2luZyBmb3Igd29ya2luZyBzdHJjb2xsIiA+JjUKKworCisKKworCisKKworCisKK2ZvciBhY19mdW5jIGluIG1lbW1vdmUgcHV0ZW52IHNlbGVjdCBzZXRlbnYgc2V0bG9jYWxlIFwKKwkJc3RyY2FzZWNtcCBzdHJwYnJrIHRjZ2V0YXR0ciB2c25wcmludGYKK2RvCithc19hY192YXI9YGVjaG8gImFjX2N2X2Z1bmNfJGFjX2Z1bmMiIHwgJGFzX3RyX3NoYAorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfZnVuYyIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfZnVuYy4uLiAkRUNIT19DIiA+JjYKK2lmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfdmFyK3NldH1cIiA9IHNldCI7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisvKiBEZWZpbmUgJGFjX2Z1bmMgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyAkYWNfZnVuYy4KKyAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLworI2RlZmluZSAkYWNfZnVuYyBpbm5vY3VvdXNfJGFjX2Z1bmMKKworLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAorICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgJGFjX2Z1bmMgKCk7IGJlbG93LgorICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKKyAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLworCisjaWZkZWYgX19TVERDX18KKyMgaW5jbHVkZSA8bGltaXRzLmg+CisjZWxzZQorIyBpbmNsdWRlIDxhc3NlcnQuaD4KKyNlbmRpZgorCisjdW5kZWYgJGFjX2Z1bmMKKworLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIgoreworI2VuZGlmCisvKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCisgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLworY2hhciAkYWNfZnVuYyAoKTsKKy8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKKyAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAorICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLworI2lmIGRlZmluZWQgKF9fc3R1Yl8kYWNfZnVuYykgfHwgZGVmaW5lZCAoX19zdHViX19fJGFjX2Z1bmMpCitjaG9rZSBtZQorI2Vsc2UKK2NoYXIgKCpmKSAoKSA9ICRhY19mdW5jOworI2VuZGlmCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCitpbnQKK21haW4gKCkKK3sKK3JldHVybiBmICE9ICRhY19mdW5jOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CisgIChldmFsICRhY19saW5rKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGV2YWwgIiRhc19hY192YXI9eWVzIgorZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCitldmFsICIkYXNfYWNfdmFyPW5vIgorZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX3Zhcid9J2AiID4mNQorZWNobyAiJHtFQ0hPX1R9YGV2YWwgZWNobyAnJHsnJGFzX2FjX3Zhcid9J2AiID4mNgoraWYgdGVzdCBgZXZhbCBlY2hvICckeyckYXNfYWNfdmFyJ30nYCA9IHllczsgdGhlbgorICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIGBlY2hvICJIQVZFXyRhY19mdW5jIiB8ICRhc190cl9jcHBgIDEKK19BQ0VPRgorCitmaQorZG9uZQorCisKKworZm9yIGFjX2Z1bmMgaW4gaXNhc2NpaSBpc3hkaWdpdAorZG8KK2FzX2FjX3Zhcj1gZWNobyAiYWNfY3ZfZnVuY18kYWNfZnVuYyIgfCAkYXNfdHJfc2hgCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19mdW5jIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY19mdW5jLi4uICRFQ0hPX0MiID4mNgoraWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY192YXIrc2V0fVwiID0gc2V0IjsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKy8qIERlZmluZSAkYWNfZnVuYyB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzICRhY19mdW5jLgorICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCisjZGVmaW5lICRhY19mdW5jIGlubm9jdW91c18kYWNfZnVuYworCisvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCisgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciAkYWNfZnVuYyAoKTsgYmVsb3cuCisgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQorICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCisKKyNpZmRlZiBfX1NURENfXworIyBpbmNsdWRlIDxsaW1pdHMuaD4KKyNlbHNlCisjIGluY2x1ZGUgPGFzc2VydC5oPgorI2VuZGlmCisKKyN1bmRlZiAkYWNfZnVuYworCisvKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiCit7CisjZW5kaWYKKy8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCitjaGFyICRhY19mdW5jICgpOworLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cworICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCisgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCisjaWYgZGVmaW5lZCAoX19zdHViXyRhY19mdW5jKSB8fCBkZWZpbmVkIChfX3N0dWJfX18kYWNfZnVuYykKK2Nob2tlIG1lCisjZWxzZQorY2hhciAoKmYpICgpID0gJGFjX2Z1bmM7CisjZW5kaWYKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKK2ludAorbWFpbiAoKQoreworcmV0dXJuIGYgIT0gJGFjX2Z1bmM7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2xpbmspIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgZXZhbCAiJGFzX2FjX3Zhcj15ZXMiCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2V2YWwgIiRhc19hY192YXI9bm8iCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBgZXZhbCBlY2hvICckeyckYXNfYWNfdmFyJ30nYCIgPiY1CitlY2hvICIke0VDSE9fVH1gZXZhbCBlY2hvICckeyckYXNfYWNfdmFyJ30nYCIgPiY2CitpZiB0ZXN0IGBldmFsIGVjaG8gJyR7JyRhc19hY192YXInfSdgID0geWVzOyB0aGVuCisgIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgYGVjaG8gIkhBVkVfJGFjX2Z1bmMiIHwgJGFzX3RyX2NwcGAgMQorX0FDRU9GCisKK2ZpCitkb25lCisKKworCisKK2ZvciBhY19mdW5jIGluIGdldHB3ZW50IGdldHB3bmFtIGdldHB3dWlkCitkbworYXNfYWNfdmFyPWBlY2hvICJhY19jdl9mdW5jXyRhY19mdW5jIiB8ICRhc190cl9zaGAKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2Z1bmMiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2Z1bmMuLi4gJEVDSE9fQyIgPiY2CitpZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX3ZhcitzZXR9XCIgPSBzZXQiOyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworLyogRGVmaW5lICRhY19mdW5jIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgJGFjX2Z1bmMuCisgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KKyNkZWZpbmUgJGFjX2Z1bmMgaW5ub2N1b3VzXyRhY19mdW5jCisKKy8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKKyAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyICRhY19mdW5jICgpOyBiZWxvdy4KKyAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCisgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KKworI2lmZGVmIF9fU1REQ19fCisjIGluY2x1ZGUgPGxpbWl0cy5oPgorI2Vsc2UKKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+CisjZW5kaWYKKworI3VuZGVmICRhY19mdW5jCisKKy8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIKK3sKKyNlbmRpZgorLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgorICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KK2NoYXIgJGFjX2Z1bmMgKCk7CisvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCisgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKKyAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KKyNpZiBkZWZpbmVkIChfX3N0dWJfJGFjX2Z1bmMpIHx8IGRlZmluZWQgKF9fc3R1Yl9fXyRhY19mdW5jKQorY2hva2UgbWUKKyNlbHNlCitjaGFyICgqZikgKCkgPSAkYWNfZnVuYzsKKyNlbmRpZgorI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworaW50CittYWluICgpCit7CityZXR1cm4gZiAhPSAkYWNfZnVuYzsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBldmFsICIkYXNfYWNfdmFyPXllcyIKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworZXZhbCAiJGFzX2FjX3Zhcj1ubyIKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IGBldmFsIGVjaG8gJyR7JyRhc19hY192YXInfSdgIiA+JjUKK2VjaG8gIiR7RUNIT19UfWBldmFsIGVjaG8gJyR7JyRhc19hY192YXInfSdgIiA+JjYKK2lmIHRlc3QgYGV2YWwgZWNobyAnJHsnJGFzX2FjX3Zhcid9J2AgPSB5ZXM7IHRoZW4KKyAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBgZWNobyAiSEFWRV8kYWNfZnVuYyIgfCAkYXNfdHJfY3BwYCAxCitfQUNFT0YKKworZmkKK2RvbmUKKworCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHdvcmtpbmcgc3RyY29sbCIgPiY1CiBlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciB3b3JraW5nIHN0cmNvbGwuLi4gJEVDSE9fQyIgPiY2CiBpZiB0ZXN0ICIke2FjX2N2X2Z1bmNfc3RyY29sbF93b3JrcytzZXR9IiA9IHNldDsgdGhlbgogICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgpAQCAtMzE5MSw4ICs0NzM4LDExIEBACiAgIGFjX2N2X2Z1bmNfc3RyY29sbF93b3Jrcz1ubwogZWxzZQogICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSNsaW5lIDMxOTQgImNvbmZpZ3VyZSIKLSNpbmNsdWRlICJjb25mZGVmcy5oIgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLwogJGFjX2luY2x1ZGVzX2RlZmF1bHQKIGludAogbWFpbiAoKQpAQCAtMzIwNSw2MSArNDc1NSwxMzMgQEAKIH0KIF9BQ0VPRgogcm0gLWYgY29uZnRlc3QkYWNfZXhlZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTozMjA4OiBcIiRhY19saW5rXCIiKSA+JjUKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQogICAoZXZhbCAkYWNfbGluaykgMj4mNQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjMyMTE6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6MzIxMzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAgKGV2YWwgJGFjX3RyeSkgMj4mNQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjMyMTY6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCiAgIGFjX2N2X2Z1bmNfc3RyY29sbF93b3Jrcz15ZXMKIGVsc2UKICAgZWNobyAiJGFzX21lOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAkYWNfc3RhdHVzIiA+JjUKIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1jYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworKCBleGl0ICRhY19zdGF0dXMgKQogYWNfY3ZfZnVuY19zdHJjb2xsX3dvcmtzPW5vCiBmaQotcm0gLWYgY29yZSBjb3JlLiogKi5jb3JlIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK3JtIC1mIGNvcmUgKi5jb3JlIGdtb24ub3V0IGJiLm91dCBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CiBmaQogZmkKLWVjaG8gIiRhc19tZTozMjI4OiByZXN1bHQ6ICRhY19jdl9mdW5jX3N0cmNvbGxfd29ya3MiID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2Z1bmNfc3RyY29sbF93b3JrcyIgPiY1CiBlY2hvICIke0VDSE9fVH0kYWNfY3ZfZnVuY19zdHJjb2xsX3dvcmtzIiA+JjYKIGlmIHRlc3QgJGFjX2N2X2Z1bmNfc3RyY29sbF93b3JrcyA9IHllczsgdGhlbgogCi1jYXQgPj5jb25mZGVmcy5oIDw8XEVPRgorY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKICNkZWZpbmUgSEFWRV9TVFJDT0xMIDEKLUVPRgorX0FDRU9GCiAKIGZpCiAKLWZvciBhY19oZWFkZXIgaW4gdW5pc3RkLmggc3RkbGliLmggdmFyYXJncy5oIHN0ZGFyZy5oIHN0cmluZy5oIHN0cmluZ3MuaCBcCi0JCWxpbWl0cy5oIHN5cy9wdGVtLmggc3lzL3B0ZS5oIHN5cy9zdHJlYW0uaCBzeXMvc2VsZWN0LmggXAotCQl0ZXJtY2FwLmggdGVybWlvcy5oIHRlcm1pby5oIHN5cy9maWxlLmggbG9jYWxlLmggbWVtb3J5LmgKKworCisKKworCisKKworCisKKworCisKKworCisKK2ZvciBhY19oZWFkZXIgaW4gZmNudGwuaCB1bmlzdGQuaCBzdGRsaWIuaCB2YXJhcmdzLmggc3RkYXJnLmggc3RyaW5nLmggc3RyaW5ncy5oIFwKKwkJbGltaXRzLmggbG9jYWxlLmggcHdkLmggbWVtb3J5LmggdGVybWNhcC5oIHRlcm1pb3MuaCB0ZXJtaW8uaAogZG8KIGFzX2FjX0hlYWRlcj1gZWNobyAiYWNfY3ZfaGVhZGVyXyRhY19oZWFkZXIiIHwgJGFzX3RyX3NoYAotZWNobyAiJGFzX21lOjMyNDM6IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKK2lmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKIGVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gJEVDSE9fQyIgPiY2CiBpZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0hlYWRlcitzZXR9XCIgPSBzZXQiOyB0aGVuCiAgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNQorZWNobyAiJHtFQ0hPX1R9YGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNgogZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSNsaW5lIDMyNDkgImNvbmZpZ3VyZSIKLSNpbmNsdWRlICJjb25mZGVmcy5oIgorICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8KK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyAkYWNfaGVhZGVyIHVzYWJpbGl0eSIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nICRhY19oZWFkZXIgdXNhYmlsaXR5Li4uICRFQ0hPX0MiID4mNgorY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiskYWNfaW5jbHVkZXNfZGVmYXVsdAogI2luY2x1ZGUgPCRhY19oZWFkZXI+CiBfQUNFT0YKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOjMyNTM6IFwiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0XCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0KSAyPmNvbmZ0ZXN0LmVyMQorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQogICBhY19zdGF0dXM9JD8KLSAgZWdyZXAgLXYgJ14gKlwrJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogICBybSAtZiBjb25mdGVzdC5lcjEKICAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOjMyNTk6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCithY19oZWFkZXJfY29tcGlsZXI9bm8KK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfY29tcGlsZXIiID4mNgorCisjIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyAkYWNfaGVhZGVyIHByZXNlbmNlIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgJGFjX2hlYWRlciBwcmVzZW5jZS4uLiAkRUNIT19DIiA+JjYKK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPCRhY19oZWFkZXI+CitfQUNFT0YKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0XCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0KSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbDsgdGhlbgogICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgogICAgIGFjX2NwcF9lcnI9JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcKKyAgICBhY19jcHBfZXJyPSRhY19jcHBfZXJyJGFjX2Nfd2Vycm9yX2ZsYWcKICAgZWxzZQogICAgIGFjX2NwcF9lcnI9CiAgIGZpCkBAIC0zMjY3LDMzICs0ODg5LDMwMiBAQAogICBhY19jcHBfZXJyPXllcwogZmkKIGlmIHRlc3QgLXogIiRhY19jcHBfZXJyIjsgdGhlbgorICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworICBhY19oZWFkZXJfcHJlcHJvYz1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9wcmVwcm9jIiA+JjYKKworIyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/CitjYXNlICRhY19oZWFkZXJfY29tcGlsZXI6JGFjX2hlYWRlcl9wcmVwcm9jOiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluCisgIHllczpubzogKQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjI7fQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyByZXN1bHQiID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjI7fQorICAgIGFjX2hlYWRlcl9wcmVwcm9jPXllcworICAgIDs7CisgIG5vOnllczoqICkKKyAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mMjt9CisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiY1CitlY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mMjt9CisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjI7fQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiAgICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjI7fQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mMjt9CisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjI7fQorICAgICgKKyAgICAgIGNhdCA8PFxfQVNCT1gKKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisjIyBSZXBvcnQgdGhpcyB0byBidWctcmVhZGxpbmVAZ251Lm9yZyAjIworIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKK19BU0JPWAorICAgICkgfAorICAgICAgc2VkICJzL14vJGFzX21lOiBXQVJOSU5HOiAgICAgLyIgPiYyCisgICAgOzsKK2VzYWMKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2hlYWRlciIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfaGVhZGVyLi4uICRFQ0hPX0MiID4mNgoraWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY19IZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBldmFsICIkYXNfYWNfSGVhZGVyPVwkYWNfaGVhZGVyX3ByZXByb2MiCitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNQorZWNobyAiJHtFQ0hPX1R9YGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNgorCitmaQoraWYgdGVzdCBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCA9IHllczsgdGhlbgorICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIGBlY2hvICJIQVZFXyRhY19oZWFkZXIiIHwgJGFzX3RyX2NwcGAgMQorX0FDRU9GCisKK2ZpCisKK2RvbmUKKworCisKKworCitmb3IgYWNfaGVhZGVyIGluIHN5cy9wdGUuaCBzeXMvc3RyZWFtLmggc3lzL3NlbGVjdC5oIHN5cy9maWxlLmgKK2RvCithc19hY19IZWFkZXI9YGVjaG8gImFjX2N2X2hlYWRlcl8kYWNfaGVhZGVyIiB8ICRhc190cl9zaGAKK2lmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gJEVDSE9fQyIgPiY2CitpZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0hlYWRlcitzZXR9XCIgPSBzZXQiOyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNQorZWNobyAiJHtFQ0hPX1R9YGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNgorZWxzZQorICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8KK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyAkYWNfaGVhZGVyIHVzYWJpbGl0eSIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nICRhY19oZWFkZXIgdXNhYmlsaXR5Li4uICRFQ0hPX0MiID4mNgorY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiskYWNfaW5jbHVkZXNfZGVmYXVsdAorI2luY2x1ZGUgPCRhY19oZWFkZXI+CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCithY19oZWFkZXJfY29tcGlsZXI9bm8KK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfY29tcGlsZXIiID4mNgorCisjIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyAkYWNfaGVhZGVyIHByZXNlbmNlIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgJGFjX2hlYWRlciBwcmVzZW5jZS4uLiAkRUNIT19DIiA+JjYKK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPCRhY19oZWFkZXI+CitfQUNFT0YKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0XCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0KSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbDsgdGhlbgorICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgorICAgIGFjX2NwcF9lcnI9JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcKKyAgICBhY19jcHBfZXJyPSRhY19jcHBfZXJyJGFjX2Nfd2Vycm9yX2ZsYWcKKyAgZWxzZQorICAgIGFjX2NwcF9lcnI9CisgIGZpCitlbHNlCisgIGFjX2NwcF9lcnI9eWVzCitmaQoraWYgdGVzdCAteiAiJGFjX2NwcF9lcnIiOyB0aGVuCisgIGFjX2hlYWRlcl9wcmVwcm9jPXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCisgIGFjX2hlYWRlcl9wcmVwcm9jPW5vCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfcHJlcHJvYyIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX3ByZXByb2MiID4mNgorCisjIFNvPyAgV2hhdCBhYm91dCB0aGlzIGhlYWRlcj8KK2Nhc2UgJGFjX2hlYWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXByb2M6JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4KKyAgeWVzOm5vOiApCisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiY1CitlY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mMjt9CisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiY1CitlY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyByZXN1bHQiID4mMjt9CisgICAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCisgICAgOzsKKyAgbm86eWVzOiogKQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiY1CitlY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiYyO30KKyAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiYyO30KKyAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4mMjt9CisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiY1CitlY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mMjt9CisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiYyO30KKyAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2UiID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIgd2lsbCB0YWtlIHByZWNlZGVuY2UiID4mMjt9CisgICAgKAorICAgICAgY2F0IDw8XF9BU0JPWAorIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKyMjIFJlcG9ydCB0aGlzIHRvIGJ1Zy1yZWFkbGluZUBnbnUub3JnICMjCisjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworX0FTQk9YCisgICAgKSB8CisgICAgICBzZWQgInMvXi8kYXNfbWU6IFdBUk5JTkc6ICAgICAvIiA+JjIKKyAgICA7OworZXNhYworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gJEVDSE9fQyIgPiY2CitpZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0hlYWRlcitzZXR9XCIgPSBzZXQiOyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGV2YWwgIiRhc19hY19IZWFkZXI9XCRhY19oZWFkZXJfcHJlcHJvYyIKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY1CitlY2hvICIke0VDSE9fVH1gZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY2CisKK2ZpCitpZiB0ZXN0IGBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgID0geWVzOyB0aGVuCisgIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgYGVjaG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCitfQUNFT0YKKworZmkKKworZG9uZQorCisKKworZm9yIGFjX2hlYWRlciBpbiBzeXMvcHRlbS5oCitkbworYXNfYWNfSGVhZGVyPWBlY2hvICJhY19jdl9oZWFkZXJfJGFjX2hlYWRlciIgfCAkYXNfdHJfc2hgCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2hlYWRlci4uLiAkRUNIT19DIiA+JjYKK2lmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKKyNpZiBIQVZFX1NZU19TVFJFQU1fSAorIyAgaW5jbHVkZSA8c3lzL3N0cmVhbS5oPgorI2VuZGlmCisKKworI2luY2x1ZGUgPCRhY19oZWFkZXI+CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KICAgZXZhbCAiJGFzX2FjX0hlYWRlcj15ZXMiCiBlbHNlCiAgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0gIGNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQotICBldmFsICIkYXNfYWNfSGVhZGVyPW5vIgorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCitldmFsICIkYXNfYWNfSGVhZGVyPW5vIgogZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CiBmaQotZWNobyAiJGFzX21lOjMyNzg6IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNQogZWNobyAiJHtFQ0hPX1R9YGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNgogaWYgdGVzdCBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCA9IHllczsgdGhlbgotICBjYXQgPj5jb25mZGVmcy5oIDw8RU9GCisgIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKICNkZWZpbmUgYGVjaG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCi1FT0YKK19BQ0VPRgogCiBmaQorCiBkb25lCiAKLWVjaG8gIiRhc19tZTozMjg4OiBjaGVja2luZyBmb3IgdHlwZSBvZiBzaWduYWwgZnVuY3Rpb25zIiA+JjUKKworCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHR5cGUgb2Ygc2lnbmFsIGZ1bmN0aW9ucyIgPiY1CiBlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciB0eXBlIG9mIHNpZ25hbCBmdW5jdGlvbnMuLi4gJEVDSE9fQyIgPiY2CiBpZiB0ZXN0ICIke2Jhc2hfY3Zfc2lnbmFsX3ZpbnRhZ2Urc2V0fSIgPSBzZXQ7IHRoZW4KICAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKIGVsc2UKIAogICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSNsaW5lIDMyOTUgImNvbmZpZ3VyZSIKLSNpbmNsdWRlICJjb25mZGVmcy5oIgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLwogI2luY2x1ZGUgPHNpZ25hbC5oPgogaW50CiBtYWluICgpCkBAIC0zMzEwLDI1ICs1MjAxLDM5IEBACiB9CiBfQUNFT0YKIHJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTozMzEzOiBcIiRhY19saW5rXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2xpbmspIDI+JjUKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj5jb25mdGVzdC5lcjEKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTozMzE2OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6MzMxOTogXCIkYWNfdHJ5XCIiKSA+JjUKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAgIChldmFsICRhY190cnkpIDI+JjUKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTozMzIyOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KICAgYmFzaF9jdl9zaWduYWxfdmludGFnZT1wb3NpeAogZWxzZQogICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKIAogICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotI2xpbmUgMzMzMCAiY29uZmlndXJlIgotI2luY2x1ZGUgImNvbmZkZWZzLmgiCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiAjaW5jbHVkZSA8c2lnbmFsLmg+CiBpbnQKIG1haW4gKCkKQEAgLTMzNDIsMjUgKzUyNDcsMzkgQEAKIH0KIF9BQ0VPRgogcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOjMzNDU6IFwiJGFjX2xpbmtcIiIpID4mNQotICAoZXZhbCAkYWNfbGluaykgMj4mNQoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CisgIChldmFsICRhY19saW5rKSAyPmNvbmZ0ZXN0LmVyMQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjMzNDg6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTozMzUxOiBcIiRhY190cnlcIiIpID4mNQorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAgKGV2YWwgJGFjX3RyeSkgMj4mNQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjMzNTQ6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogICBiYXNoX2N2X3NpZ25hbF92aW50YWdlPTQuMmJzZAogZWxzZQogICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKIAogICAgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jbGluZSAzMzYyICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KIAogCSNpbmNsdWRlIDxzaWduYWwuaD4KIAlSRVRTSUdUWVBFIGZvbygpIHsgfQpAQCAtMzM3Nyw2NyArNTI5Niw4NiBAQAogfQogX0FDRU9GCiBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6MzM4MDogXCIkYWNfbGlua1wiIikgPiY1Ci0gIChldmFsICRhY19saW5rKSAyPiY1CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2xpbmspIDI+Y29uZnRlc3QuZXIxCiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6MzM4MzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOjMzODY6IFwiJGFjX3RyeVwiIikgPiY1CisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQogICAoZXZhbCAkYWNfdHJ5KSAyPiY1CiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6MzM4OTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCiAgIGJhc2hfY3Zfc2lnbmFsX3ZpbnRhZ2U9c3ZyMwogZWxzZQogICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKIGJhc2hfY3Zfc2lnbmFsX3ZpbnRhZ2U9djcKIAogZmkKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CiAKIGZpCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAogCiBmaQotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKIAogZmkKIAotZWNobyAiJGFzX21lOjM0MDg6IHJlc3VsdDogJGJhc2hfY3Zfc2lnbmFsX3ZpbnRhZ2UiID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGJhc2hfY3Zfc2lnbmFsX3ZpbnRhZ2UiID4mNQogZWNobyAiJHtFQ0hPX1R9JGJhc2hfY3Zfc2lnbmFsX3ZpbnRhZ2UiID4mNgogaWYgdGVzdCAiJGJhc2hfY3Zfc2lnbmFsX3ZpbnRhZ2UiID0gcG9zaXg7IHRoZW4KLWNhdCA+PmNvbmZkZWZzLmggPDxcRU9GCitjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgogI2RlZmluZSBIQVZFX1BPU0lYX1NJR05BTFMgMQotRU9GCitfQUNFT0YKIAogZWxpZiB0ZXN0ICIkYmFzaF9jdl9zaWduYWxfdmludGFnZSIgPSAiNC4yYnNkIjsgdGhlbgotY2F0ID4+Y29uZmRlZnMuaCA8PFxFT0YKK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiAjZGVmaW5lIEhBVkVfQlNEX1NJR05BTFMgMQotRU9GCitfQUNFT0YKIAogZWxpZiB0ZXN0ICIkYmFzaF9jdl9zaWduYWxfdmludGFnZSIgPSBzdnIzOyB0aGVuCi1jYXQgPj5jb25mZGVmcy5oIDw8XEVPRgorY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKICNkZWZpbmUgSEFWRV9VU0dfU0lHSE9MRCAxCi1FT0YKK19BQ0VPRgogCiBmaQogCi1lY2hvICIkYXNfbWU6MzQyNzogY2hlY2tpbmcgaWYgc2lnbmFsIGhhbmRsZXJzIG11c3QgYmUgcmVpbnN0YWxsZWQgd2hlbiBpbnZva2VkIiA+JjUKKworCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgc2lnbmFsIGhhbmRsZXJzIG11c3QgYmUgcmVpbnN0YWxsZWQgd2hlbiBpbnZva2VkIiA+JjUKIGVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgaWYgc2lnbmFsIGhhbmRsZXJzIG11c3QgYmUgcmVpbnN0YWxsZWQgd2hlbiBpbnZva2VkLi4uICRFQ0hPX0MiID4mNgogaWYgdGVzdCAiJHtiYXNoX2N2X211c3RfcmVpbnN0YWxsX3NpZ2hhbmRsZXJzK3NldH0iID0gc2V0OyB0aGVuCiAgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CiBlbHNlCiAgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuCi0gIHsgZWNobyAiJGFzX21lOjM0MzM6IFdBUk5JTkc6IGNhbm5vdCBjaGVjayBzaWduYWwgaGFuZGxpbmcgaWYgY3Jvc3MgY29tcGlsaW5nIC0tIGRlZmF1bHRpbmcgdG8gbm8iID4mNQorICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBjYW5ub3QgY2hlY2sgc2lnbmFsIGhhbmRsaW5nIGlmIGNyb3NzIGNvbXBpbGluZyAtLSBkZWZhdWx0aW5nIHRvIG5vIiA+JjUKIGVjaG8gIiRhc19tZTogV0FSTklORzogY2Fubm90IGNoZWNrIHNpZ25hbCBoYW5kbGluZyBpZiBjcm9zcyBjb21waWxpbmcgLS0gZGVmYXVsdGluZyB0byBubyIgPiYyO30KICAgICBiYXNoX2N2X211c3RfcmVpbnN0YWxsX3NpZ2hhbmRsZXJzPW5vCiAKIGVsc2UKICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jbGluZSAzNDM5ICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KIAogI2luY2x1ZGUgPHNpZ25hbC5oPgogI2lmZGVmIEhBVkVfVU5JU1REX0gKQEAgLTM0ODQsNTAgKzU0MjIsNTcgQEAKIAogX0FDRU9GCiBybSAtZiBjb25mdGVzdCRhY19leGVleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOjM0ODc6IFwiJGFjX2xpbmtcIiIpID4mNQoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CiAgIChldmFsICRhY19saW5rKSAyPiY1CiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6MzQ5MDogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYgeyBhY190cnk9Jy4vY29uZnRlc3QkYWNfZXhlZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTozNDkyOiBcIiRhY190cnlcIiIpID4mNQorICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQogICAoZXZhbCAkYWNfdHJ5KSAyPiY1CiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6MzQ5NTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KICAgYmFzaF9jdl9tdXN0X3JlaW5zdGFsbF9zaWdoYW5kbGVycz1ubwogZWxzZQogICBlY2hvICIkYXNfbWU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMiID4mNQogZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLWNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCisoIGV4aXQgJGFjX3N0YXR1cyApCiBiYXNoX2N2X211c3RfcmVpbnN0YWxsX3NpZ2hhbmRsZXJzPXllcwogZmkKLXJtIC1mIGNvcmUgY29yZS4qICouY29yZSBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitybSAtZiBjb3JlICouY29yZSBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAogZmkKIGZpCiAKLWVjaG8gIiRhc19tZTozNTA4OiByZXN1bHQ6ICRiYXNoX2N2X211c3RfcmVpbnN0YWxsX3NpZ2hhbmRsZXJzIiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRiYXNoX2N2X211c3RfcmVpbnN0YWxsX3NpZ2hhbmRsZXJzIiA+JjUKIGVjaG8gIiR7RUNIT19UfSRiYXNoX2N2X211c3RfcmVpbnN0YWxsX3NpZ2hhbmRsZXJzIiA+JjYKIGlmIHRlc3QgJGJhc2hfY3ZfbXVzdF9yZWluc3RhbGxfc2lnaGFuZGxlcnMgPSB5ZXM7IHRoZW4KLWNhdCA+PmNvbmZkZWZzLmggPDxcRU9GCitjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgogI2RlZmluZSBNVVNUX1JFSU5TVEFMTF9TSUdIQU5ETEVSUyAxCi1FT0YKK19BQ0VPRgogCiBmaQogCi1lY2hvICIkYXNfbWU6MzUxNzogY2hlY2tpbmcgZm9yIHByZXNlbmNlIG9mIFBPU0lYLXN0eWxlIHNpZ3NldGptcC9zaWdsb25nam1wIiA+JjUKKworCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHByZXNlbmNlIG9mIFBPU0lYLXN0eWxlIHNpZ3NldGptcC9zaWdsb25nam1wIiA+JjUKIGVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHByZXNlbmNlIG9mIFBPU0lYLXN0eWxlIHNpZ3NldGptcC9zaWdsb25nam1wLi4uICRFQ0hPX0MiID4mNgogaWYgdGVzdCAiJHtiYXNoX2N2X2Z1bmNfc2lnc2V0am1wK3NldH0iID0gc2V0OyB0aGVuCiAgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CiBlbHNlCiAgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuCi0gIHsgZWNobyAiJGFzX21lOjM1MjM6IFdBUk5JTkc6IGNhbm5vdCBjaGVjayBmb3Igc2lnc2V0am1wL3NpZ2xvbmdqbXAgaWYgY3Jvc3MtY29tcGlsaW5nIC0tIGRlZmF1bHRpbmcgdG8gbWlzc2luZyIgPiY1CisgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6IGNhbm5vdCBjaGVjayBmb3Igc2lnc2V0am1wL3NpZ2xvbmdqbXAgaWYgY3Jvc3MtY29tcGlsaW5nIC0tIGRlZmF1bHRpbmcgdG8gbWlzc2luZyIgPiY1CiBlY2hvICIkYXNfbWU6IFdBUk5JTkc6IGNhbm5vdCBjaGVjayBmb3Igc2lnc2V0am1wL3NpZ2xvbmdqbXAgaWYgY3Jvc3MtY29tcGlsaW5nIC0tIGRlZmF1bHRpbmcgdG8gbWlzc2luZyIgPiYyO30KICAgICAgYmFzaF9jdl9mdW5jX3NpZ3NldGptcD1taXNzaW5nCiAKIGVsc2UKICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jbGluZSAzNTI5ICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KIAogI2lmZGVmIEhBVkVfVU5JU1REX0gKICNpbmNsdWRlIDx1bmlzdGQuaD4KQEAgLTM1NjgsNDQgKzU1MTMsNDkgQEAKIH0KIF9BQ0VPRgogcm0gLWYgY29uZnRlc3QkYWNfZXhlZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTozNTcxOiBcIiRhY19saW5rXCIiKSA+JjUKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQogICAoZXZhbCAkYWNfbGluaykgMj4mNQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjM1NzQ6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6MzU3NjogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAgKGV2YWwgJGFjX3RyeSkgMj4mNQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjM1Nzk6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCiAgIGJhc2hfY3ZfZnVuY19zaWdzZXRqbXA9cHJlc2VudAogZWxzZQogICBlY2hvICIkYXNfbWU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMiID4mNQogZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLWNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCisoIGV4aXQgJGFjX3N0YXR1cyApCiBiYXNoX2N2X2Z1bmNfc2lnc2V0am1wPW1pc3NpbmcKIGZpCi1ybSAtZiBjb3JlIGNvcmUuKiAqLmNvcmUgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorcm0gLWYgY29yZSAqLmNvcmUgZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKIGZpCiBmaQogCi1lY2hvICIkYXNfbWU6MzU5MjogcmVzdWx0OiAkYmFzaF9jdl9mdW5jX3NpZ3NldGptcCIgPiY1CitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYmFzaF9jdl9mdW5jX3NpZ3NldGptcCIgPiY1CiBlY2hvICIke0VDSE9fVH0kYmFzaF9jdl9mdW5jX3NpZ3NldGptcCIgPiY2CiBpZiB0ZXN0ICRiYXNoX2N2X2Z1bmNfc2lnc2V0am1wID0gcHJlc2VudDsgdGhlbgotY2F0ID4+Y29uZmRlZnMuaCA8PFxFT0YKK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiAjZGVmaW5lIEhBVkVfUE9TSVhfU0lHU0VUSk1QIDEKLUVPRgorX0FDRU9GCiAKIGZpCiAKLWVjaG8gIiRhc19tZTozNjAxOiBjaGVja2luZyBmb3IgbHN0YXQiID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBsc3RhdCIgPiY1CiBlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBsc3RhdC4uLiAkRUNIT19DIiA+JjYKIGlmIHRlc3QgIiR7YmFzaF9jdl9mdW5jX2xzdGF0K3NldH0iID0gc2V0OyB0aGVuCiAgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CiBlbHNlCiAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotI2xpbmUgMzYwNyAiY29uZmlndXJlIgotI2luY2x1ZGUgImNvbmZkZWZzLmgiCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiAKICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpbmNsdWRlIDxzeXMvc3RhdC5oPgpAQCAtMzYxOSw0OCArNTU2OSw2NCBAQAogfQogX0FDRU9GCiBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6MzYyMjogXCIkYWNfbGlua1wiIikgPiY1Ci0gIChldmFsICRhY19saW5rKSAyPiY1CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2xpbmspIDI+Y29uZnRlc3QuZXIxCiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6MzYyNTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOjM2Mjg6IFwiJGFjX3RyeVwiIikgPiY1CisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQogICAoZXZhbCAkYWNfdHJ5KSAyPiY1CiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6MzYzMTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCiAgIGJhc2hfY3ZfZnVuY19sc3RhdD15ZXMKIGVsc2UKICAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLWNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCiBiYXNoX2N2X2Z1bmNfbHN0YXQ9bm8KIGZpCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAogZmkKLWVjaG8gIiRhc19tZTozNjQxOiByZXN1bHQ6ICRiYXNoX2N2X2Z1bmNfbHN0YXQiID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGJhc2hfY3ZfZnVuY19sc3RhdCIgPiY1CiBlY2hvICIke0VDSE9fVH0kYmFzaF9jdl9mdW5jX2xzdGF0IiA+JjYKIGlmIHRlc3QgJGJhc2hfY3ZfZnVuY19sc3RhdCA9IHllczsgdGhlbgotICBjYXQgPj5jb25mZGVmcy5oIDw8XEVPRgorICBjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgogI2RlZmluZSBIQVZFX0xTVEFUIDEKLUVPRgorX0FDRU9GCiAKIGZpCiAKLWVjaG8gIiRhc19tZTozNjUwOiBjaGVja2luZyB3aGV0aGVyIG9yIG5vdCBzdHJjb2xsIGFuZCBzdHJjbXAgZGlmZmVyIiA+JjUKKworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgb3Igbm90IHN0cmNvbGwgYW5kIHN0cmNtcCBkaWZmZXIiID4mNQogZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIG9yIG5vdCBzdHJjb2xsIGFuZCBzdHJjbXAgZGlmZmVyLi4uICRFQ0hPX0MiID4mNgogaWYgdGVzdCAiJHtiYXNoX2N2X2Z1bmNfc3RyY29sbF9icm9rZW4rc2V0fSIgPSBzZXQ7IHRoZW4KICAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKIGVsc2UKICAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KLSAgeyBlY2hvICIkYXNfbWU6MzY1NjogV0FSTklORzogY2Fubm90IGNoZWNrIHN0cmNvbGwgaWYgY3Jvc3MgY29tcGlsaW5nIC0tIGRlZmF1bHRpbmcgdG8gbm8iID4mNQorICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBjYW5ub3QgY2hlY2sgc3RyY29sbCBpZiBjcm9zcyBjb21waWxpbmcgLS0gZGVmYXVsdGluZyB0byBubyIgPiY1CiBlY2hvICIkYXNfbWU6IFdBUk5JTkc6IGNhbm5vdCBjaGVjayBzdHJjb2xsIGlmIGNyb3NzIGNvbXBpbGluZyAtLSBkZWZhdWx0aW5nIHRvIG5vIiA+JjI7fQogICAgIGJhc2hfY3ZfZnVuY19zdHJjb2xsX2Jyb2tlbj1ubwogCiBlbHNlCiAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotI2xpbmUgMzY2MiAiY29uZmlndXJlIgotI2luY2x1ZGUgImNvbmZkZWZzLmgiCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiAKICNpbmNsdWRlIDxzdGRpby5oPgogI2lmIGRlZmluZWQgKEhBVkVfTE9DQUxFX0gpCkBAIC0zNjk5LDQ0ICs1NjY1LDEzMyBAQAogCiBfQUNFT0YKIHJtIC1mIGNvbmZ0ZXN0JGFjX2V4ZWV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6MzcwMjogXCIkYWNfbGlua1wiIikgPiY1CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKICAgKGV2YWwgJGFjX2xpbmspIDI+JjUKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTozNzA1OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7IGFjX3RyeT0nLi9jb25mdGVzdCRhY19leGVleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOjM3MDc6IFwiJGFjX3RyeVwiIikgPiY1CisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAgIChldmFsICRhY190cnkpIDI+JjUKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTozNzEwOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogICBiYXNoX2N2X2Z1bmNfc3RyY29sbF9icm9rZW49eWVzCiBlbHNlCiAgIGVjaG8gIiRhc19tZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgJGFjX3N0YXR1cyIgPiY1CiBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKKyggZXhpdCAkYWNfc3RhdHVzICkKIGJhc2hfY3ZfZnVuY19zdHJjb2xsX2Jyb2tlbj1ubwogZmkKLXJtIC1mIGNvcmUgY29yZS4qICouY29yZSBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitybSAtZiBjb3JlICouY29yZSBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAogZmkKIGZpCiAKLWVjaG8gIiRhc19tZTozNzIzOiByZXN1bHQ6ICRiYXNoX2N2X2Z1bmNfc3RyY29sbF9icm9rZW4iID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGJhc2hfY3ZfZnVuY19zdHJjb2xsX2Jyb2tlbiIgPiY1CiBlY2hvICIke0VDSE9fVH0kYmFzaF9jdl9mdW5jX3N0cmNvbGxfYnJva2VuIiA+JjYKIGlmIHRlc3QgJGJhc2hfY3ZfZnVuY19zdHJjb2xsX2Jyb2tlbiA9IHllczsgdGhlbgotY2F0ID4+Y29uZmRlZnMuaCA8PFxFT0YKK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiAjZGVmaW5lIFNUUkNPTExfQlJPS0VOIDEKLUVPRgorX0FDRU9GCiAKIGZpCiAKLWVjaG8gIiRhc19tZTozNzMyOiBjaGVja2luZyB3aGV0aGVyIGdldHB3IGZ1bmN0aW9ucyBhcmUgZGVjbGFyZWQgaW4gcHdkLmgiID4mNQorCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgY3R5cGUgbWFjcm9zIGFjY2VwdCBub24tYXNjaWkgY2hhcmFjdGVycyIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgdGhlIGN0eXBlIG1hY3JvcyBhY2NlcHQgbm9uLWFzY2lpIGNoYXJhY3RlcnMuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2Jhc2hfY3ZfZnVuY19jdHlwZV9ub25hc2NpaStzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbgorICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiBjYW5ub3QgY2hlY2sgY3R5cGUgbWFjcm9zIGlmIGNyb3NzIGNvbXBpbGluZyAtLSBkZWZhdWx0aW5nIHRvIG5vIiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogY2Fubm90IGNoZWNrIGN0eXBlIG1hY3JvcyBpZiBjcm9zcyBjb21waWxpbmcgLS0gZGVmYXVsdGluZyB0byBubyIgPiYyO30KKyAgICBiYXNoX2N2X2Z1bmNfY3R5cGVfbm9uYXNjaWk9bm8KKworZWxzZQorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKworI2lmZGVmIEhBVkVfTE9DQUxFX0gKKyNpbmNsdWRlIDxsb2NhbGUuaD4KKyNlbmRpZgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8Y3R5cGUuaD4KKworbWFpbihjLCB2KQoraW50CWM7CitjaGFyCSp2W107Cit7CisJY2hhcgkqZGVmbG9jYWxlOworCXVuc2lnbmVkIGNoYXIgeDsKKwlpbnQJcjEsIHIyOworCisjaWZkZWYgSEFWRV9TRVRMT0NBTEUKKwkvKiBXZSB0YWtlIGEgc2hvdCBoZXJlLiAgSWYgdGhhdCBsb2NhbGUgaXMgbm90IGtub3duLCB0cnkgdGhlCisJICAgc3lzdGVtIGRlZmF1bHQuICBXZSB0cnkgdGhpcyBvbmUgYmVjYXVzZSAnXDM0MicgKDIyNikgaXMKKwkgICBrbm93biB0byBiZSBhIHByaW50YWJsZSBjaGFyYWN0ZXIgaW4gdGhhdCBsb2NhbGUuICovCisJZGVmbG9jYWxlID0gc2V0bG9jYWxlKExDX0FMTCwgImVuX1VTLklTTzg4NTktMSIpOworCWlmIChkZWZsb2NhbGUgPT0gMCkKKwkJZGVmbG9jYWxlID0gc2V0bG9jYWxlKExDX0FMTCwgIiIpOworI2VuZGlmCisKKwl4ID0gJ1wzNDInOworCXIxID0gaXNwcmludCh4KTsKKwl4IC09IDEyODsKKwlyMiA9IGlzcHJpbnQoeCk7CisJZXhpdCAocjEgPT0gMCB8fCByMiA9PSAwKTsKK30KKworX0FDRU9GCitybSAtZiBjb25mdGVzdCRhY19leGVleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7IGFjX3RyeT0nLi9jb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYmFzaF9jdl9mdW5jX2N0eXBlX25vbmFzY2lpPXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMiID4mNQorZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworKCBleGl0ICRhY19zdGF0dXMgKQorYmFzaF9jdl9mdW5jX2N0eXBlX25vbmFzY2lpPW5vCitmaQorcm0gLWYgY29yZSAqLmNvcmUgZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCitmaQorCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYmFzaF9jdl9mdW5jX2N0eXBlX25vbmFzY2lpIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRiYXNoX2N2X2Z1bmNfY3R5cGVfbm9uYXNjaWkiID4mNgoraWYgdGVzdCAkYmFzaF9jdl9mdW5jX2N0eXBlX25vbmFzY2lpID0geWVzOyB0aGVuCitjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorI2RlZmluZSBDVFlQRV9OT05fQVNDSUkgMQorX0FDRU9GCisKK2ZpCisKKworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgZ2V0cHcgZnVuY3Rpb25zIGFyZSBkZWNsYXJlZCBpbiBwd2QuaCIgPiY1CiBlY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgZ2V0cHcgZnVuY3Rpb25zIGFyZSBkZWNsYXJlZCBpbiBwd2QuaC4uLiAkRUNIT19DIiA+JjYKIGlmIHRlc3QgIiR7YmFzaF9jdl9nZXRwd19kZWNsYXJlZCtzZXR9IiA9IHNldDsgdGhlbgogICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgogZWxzZQogICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSNsaW5lIDM3MzggImNvbmZpZ3VyZSIKLSNpbmNsdWRlICJjb25mZGVmcy5oIgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLwogCiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaWZkZWYgSEFWRV9VTklTVERfSApAQCAtMzc0Niw3ICs1ODAxLDcgQEAKIAogX0FDRU9GCiBpZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj4mNSB8Ci0gIGVncmVwICJnZXRwd3VpZCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICRFR1JFUCAiZ2V0cHd1aWQiID4vZGV2L251bGwgMj4mMTsgdGhlbgogICBiYXNoX2N2X2dldHB3X2RlY2xhcmVkPXllcwogZWxzZQogICBiYXNoX2N2X2dldHB3X2RlY2xhcmVkPW5vCkBAIC0zNzU1LDY3ICs1ODEwLDI3IEBACiAKIGZpCiAKLWVjaG8gIiRhc19tZTozNzU4OiByZXN1bHQ6ICRiYXNoX2N2X2dldHB3X2RlY2xhcmVkIiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRiYXNoX2N2X2dldHB3X2RlY2xhcmVkIiA+JjUKIGVjaG8gIiR7RUNIT19UfSRiYXNoX2N2X2dldHB3X2RlY2xhcmVkIiA+JjYKIGlmIHRlc3QgJGJhc2hfY3ZfZ2V0cHdfZGVjbGFyZWQgPSB5ZXM7IHRoZW4KLWNhdCA+PmNvbmZkZWZzLmggPDxcRU9GCitjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgogI2RlZmluZSBIQVZFX0dFVFBXX0RFQ0xTIDEKLUVPRgotCi1maQotCi1lY2hvICIkYXNfbWU6Mzc2NzogY2hlY2tpbmcgUE9TSVggdGVybWlvcyIgPiY1Ci1lY2hvICRFQ0hPX04gImNoZWNraW5nIFBPU0lYIHRlcm1pb3MuLi4gJEVDSE9fQyIgPiY2Ci1pZiB0ZXN0ICIke2FjX2N2X3N5c19wb3NpeF90ZXJtaW9zK3NldH0iID0gc2V0OyB0aGVuCi0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2Ci1lbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotI2xpbmUgMzc3MyAiY29uZmlndXJlIgotI2luY2x1ZGUgImNvbmZkZWZzLmgiCi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8dW5pc3RkLmg+Ci0jaW5jbHVkZSA8dGVybWlvcy5oPgotaW50Ci1tYWluICgpCi17Ci0vKiBTdW5PUyA0LjAuMyBoYXMgdGVybWlvcy5oIGJ1dCBub3QgdGhlIGxpYnJhcnkgY2FsbHMuICAqLwotICAgdGNnZXRhdHRyKDAsIDApOwotICA7Ci0gIHJldHVybiAwOwotfQogX0FDRU9GCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6Mzc4ODogXCIkYWNfbGlua1wiIikgPiY1Ci0gIChldmFsICRhY19saW5rKSAyPiY1Ci0gIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6Mzc5MTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOjM3OTQ6IFwiJGFjX3RyeVwiIikgPiY1Ci0gIChldmFsICRhY190cnkpIDI+JjUKLSAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTozNzk3OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSAgYWNfY3Zfc3lzX3Bvc2l4X3Rlcm1pb3M9eWVzCi1lbHNlCi0gIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1jYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKLWFjX2N2X3N5c19wb3NpeF90ZXJtaW9zPW5vCi1maQotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLWVjaG8gIiRhc19tZTozODA3OiByZXN1bHQ6ICRhY19jdl9zeXNfcG9zaXhfdGVybWlvcyIgPiY1Ci1lY2hvICIke0VDSE9fVH0kYWNfY3Zfc3lzX3Bvc2l4X3Rlcm1pb3MiID4mNgogCi1pZiB0ZXN0ICRhY19jdl9zeXNfcG9zaXhfdGVybWlvcyA9IHllczsgdGhlbgotICBlY2hvICIkYXNfbWU6MzgxMTogY2hlY2tpbmcgd2hldGhlciB0ZXJtaW9zLmggZGVmaW5lcyBUSU9DR1dJTlNaIiA+JjUKK2ZpCisKKworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgdGVybWlvcy5oIGRlZmluZXMgVElPQ0dXSU5TWiIgPiY1CiBlY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgdGVybWlvcy5oIGRlZmluZXMgVElPQ0dXSU5TWi4uLiAkRUNIT19DIiA+JjYKIGlmIHRlc3QgIiR7YWNfY3Zfc3lzX3Rpb2Nnd2luc3pfaW5fdGVybWlvc19oK3NldH0iID0gc2V0OyB0aGVuCiAgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CiBlbHNlCiAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotI2xpbmUgMzgxNyAiY29uZmlndXJlIgotI2luY2x1ZGUgImNvbmZkZWZzLmgiCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaW5jbHVkZSA8dGVybWlvcy5oPgogI2lmZGVmIFRJT0NHV0lOU1oKQEAgLTM4MjQsNyArNTgzOSw3IEBACiAKIF9BQ0VPRgogaWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAotICBlZ3JlcCAieWVzIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgJEVHUkVQICJ5ZXMiID4vZGV2L251bGwgMj4mMTsgdGhlbgogICBhY19jdl9zeXNfdGlvY2d3aW5zel9pbl90ZXJtaW9zX2g9eWVzCiBlbHNlCiAgIGFjX2N2X3N5c190aW9jZ3dpbnN6X2luX3Rlcm1pb3NfaD1ubwpAQCAtMzgzMiwxOSArNTg0NywyMSBAQAogcm0gLWYgY29uZnRlc3QqCiAKIGZpCi1lY2hvICIkYXNfbWU6MzgzNTogcmVzdWx0OiAkYWNfY3Zfc3lzX3Rpb2Nnd2luc3pfaW5fdGVybWlvc19oIiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9zeXNfdGlvY2d3aW5zel9pbl90ZXJtaW9zX2giID4mNQogZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3N5c190aW9jZ3dpbnN6X2luX3Rlcm1pb3NfaCIgPiY2CiAKLWZpCiBpZiB0ZXN0ICRhY19jdl9zeXNfdGlvY2d3aW5zel9pbl90ZXJtaW9zX2ggIT0geWVzOyB0aGVuCi0gIGVjaG8gIiRhc19tZTozODQwOiBjaGVja2luZyB3aGV0aGVyIHN5cy9pb2N0bC5oIGRlZmluZXMgVElPQ0dXSU5TWiIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHN5cy9pb2N0bC5oIGRlZmluZXMgVElPQ0dXSU5TWiIgPiY1CiBlY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgc3lzL2lvY3RsLmggZGVmaW5lcyBUSU9DR1dJTlNaLi4uICRFQ0hPX0MiID4mNgogaWYgdGVzdCAiJHthY19jdl9zeXNfdGlvY2d3aW5zel9pbl9zeXNfaW9jdGxfaCtzZXR9IiA9IHNldDsgdGhlbgogICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgogZWxzZQogICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSNsaW5lIDM4NDYgImNvbmZpZ3VyZSIKLSNpbmNsdWRlICJjb25mZGVmcy5oIgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLwogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgogI2lmZGVmIFRJT0NHV0lOU1oKQEAgLTM4NTMsNyArNTg3MCw3IEBACiAKIF9BQ0VPRgogaWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAotICBlZ3JlcCAieWVzIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgJEVHUkVQICJ5ZXMiID4vZGV2L251bGwgMj4mMTsgdGhlbgogICBhY19jdl9zeXNfdGlvY2d3aW5zel9pbl9zeXNfaW9jdGxfaD15ZXMKIGVsc2UKICAgYWNfY3Zfc3lzX3Rpb2Nnd2luc3pfaW5fc3lzX2lvY3RsX2g9bm8KQEAgLTM4NjEsMjYgKzU4NzgsMzAgQEAKIHJtIC1mIGNvbmZ0ZXN0KgogCiBmaQotZWNobyAiJGFzX21lOjM4NjQ6IHJlc3VsdDogJGFjX2N2X3N5c190aW9jZ3dpbnN6X2luX3N5c19pb2N0bF9oIiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9zeXNfdGlvY2d3aW5zel9pbl9zeXNfaW9jdGxfaCIgPiY1CiBlY2hvICIke0VDSE9fVH0kYWNfY3Zfc3lzX3Rpb2Nnd2luc3pfaW5fc3lzX2lvY3RsX2giID4mNgogCiAgIGlmIHRlc3QgJGFjX2N2X3N5c190aW9jZ3dpbnN6X2luX3N5c19pb2N0bF9oID0geWVzOyB0aGVuCiAKLWNhdCA+PmNvbmZkZWZzLmggPDxcRU9GCitjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgogI2RlZmluZSBHV0lOU1pfSU5fU1lTX0lPQ1RMIDEKLUVPRgorX0FDRU9GCiAKICAgZmkKIGZpCiAKLWVjaG8gIiRhc19tZTozODc2OiBjaGVja2luZyB3aGV0aGVyIHNpZ25hbCBoYW5kbGVycyBhcmUgb2YgdHlwZSB2b2lkIiA+JjUKKworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgc2lnbmFsIGhhbmRsZXJzIGFyZSBvZiB0eXBlIHZvaWQiID4mNQogZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIHNpZ25hbCBoYW5kbGVycyBhcmUgb2YgdHlwZSB2b2lkLi4uICRFQ0hPX0MiID4mNgogaWYgdGVzdCAiJHtiYXNoX2N2X3ZvaWRfc2lnaGFuZGxlcitzZXR9IiA9IHNldDsgdGhlbgogICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgogZWxzZQogICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSNsaW5lIDM4ODIgImNvbmZpZ3VyZSIKLSNpbmNsdWRlICJjb25mZGVmcy5oIgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLwogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2luY2x1ZGUgPHNpZ25hbC5oPgogI2lmZGVmIHNpZ25hbApAQCAtMzg5OSw0MiArNTkyMCw1NiBAQAogfQogX0FDRU9GCiBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTozOTAyOiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTozOTA1OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOjM5MDg6IFwiJGFjX3RyeVwiIikgPiY1CisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQogICAoZXZhbCAkYWNfdHJ5KSAyPiY1CiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6MzkxMTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogICBiYXNoX2N2X3ZvaWRfc2lnaGFuZGxlcj15ZXMKIGVsc2UKICAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLWNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCiBiYXNoX2N2X3ZvaWRfc2lnaGFuZGxlcj1ubwogZmkKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAogZmkKLWVjaG8gIiRhc19tZTozOTIxOiByZXN1bHQ6ICRiYXNoX2N2X3ZvaWRfc2lnaGFuZGxlciIgPiY1CitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYmFzaF9jdl92b2lkX3NpZ2hhbmRsZXIiID4mNQogZWNobyAiJHtFQ0hPX1R9JGJhc2hfY3Zfdm9pZF9zaWdoYW5kbGVyIiA+JjYKIGlmIHRlc3QgJGJhc2hfY3Zfdm9pZF9zaWdoYW5kbGVyID0geWVzOyB0aGVuCi1jYXQgPj5jb25mZGVmcy5oIDw8XEVPRgorY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKICNkZWZpbmUgVk9JRF9TSUdIQU5ETEVSIDEKLUVPRgorX0FDRU9GCiAKIGZpCiAKLWVjaG8gIiRhc19tZTozOTMwOiBjaGVja2luZyBmb3IgVElPQ1NUQVQgaW4gc3lzL2lvY3RsLmgiID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBUSU9DU1RBVCBpbiBzeXMvaW9jdGwuaCIgPiY1CiBlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBUSU9DU1RBVCBpbiBzeXMvaW9jdGwuaC4uLiAkRUNIT19DIiA+JjYKIGlmIHRlc3QgIiR7YmFzaF9jdl90aW9jc3RhdF9pbl9pb2N0bCtzZXR9IiA9IHNldDsgdGhlbgogICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgogZWxzZQogICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSNsaW5lIDM5MzYgImNvbmZpZ3VyZSIKLSNpbmNsdWRlICJjb25mZGVmcy5oIgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLwogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgogaW50CkBAIC0zOTQ2LDQzICs1OTgxLDU3IEBACiB9CiBfQUNFT0YKIHJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOjM5NDk6IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjM5NTI6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6Mzk1NTogXCIkYWNfdHJ5XCIiKSA+JjUKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAgIChldmFsICRhY190cnkpIDI+JjUKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTozOTU4OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCiAgIGJhc2hfY3ZfdGlvY3N0YXRfaW5faW9jdGw9eWVzCiBlbHNlCiAgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1jYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKwogYmFzaF9jdl90aW9jc3RhdF9pbl9pb2N0bD1ubwogZmkKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAogZmkKIAotZWNobyAiJGFzX21lOjM5Njk6IHJlc3VsdDogJGJhc2hfY3ZfdGlvY3N0YXRfaW5faW9jdGwiID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGJhc2hfY3ZfdGlvY3N0YXRfaW5faW9jdGwiID4mNQogZWNobyAiJHtFQ0hPX1R9JGJhc2hfY3ZfdGlvY3N0YXRfaW5faW9jdGwiID4mNgogaWYgdGVzdCAkYmFzaF9jdl90aW9jc3RhdF9pbl9pb2N0bCA9IHllczsgdGhlbgotY2F0ID4+Y29uZmRlZnMuaCA8PFxFT0YKK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiAjZGVmaW5lIFRJT0NTVEFUX0lOX1NZU19JT0NUTCAxCi1FT0YKK19BQ0VPRgogCiBmaQogCi1lY2hvICIkYXNfbWU6Mzk3ODogY2hlY2tpbmcgZm9yIEZJT05SRUFEIGluIHN5cy9pb2N0bC5oIiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgRklPTlJFQUQgaW4gc3lzL2lvY3RsLmgiID4mNQogZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgRklPTlJFQUQgaW4gc3lzL2lvY3RsLmguLi4gJEVDSE9fQyIgPiY2CiBpZiB0ZXN0ICIke2Jhc2hfY3ZfZmlvbnJlYWRfaW5faW9jdGwrc2V0fSIgPSBzZXQ7IHRoZW4KICAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKIGVsc2UKICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jbGluZSAzOTg0ICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KIGludApAQCAtMzk5NCw0MyArNjA0Myw1NyBAQAogfQogX0FDRU9GCiBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTozOTk3OiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTo0MDAwOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOjQwMDM6IFwiJGFjX3RyeVwiIikgPiY1CisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQogICAoZXZhbCAkYWNfdHJ5KSAyPiY1CiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6NDAwNjogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogICBiYXNoX2N2X2Zpb25yZWFkX2luX2lvY3RsPXllcwogZWxzZQogICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKIGJhc2hfY3ZfZmlvbnJlYWRfaW5faW9jdGw9bm8KIGZpCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKIGZpCiAKLWVjaG8gIiRhc19tZTo0MDE3OiByZXN1bHQ6ICRiYXNoX2N2X2Zpb25yZWFkX2luX2lvY3RsIiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRiYXNoX2N2X2Zpb25yZWFkX2luX2lvY3RsIiA+JjUKIGVjaG8gIiR7RUNIT19UfSRiYXNoX2N2X2Zpb25yZWFkX2luX2lvY3RsIiA+JjYKIGlmIHRlc3QgJGJhc2hfY3ZfZmlvbnJlYWRfaW5faW9jdGwgPSB5ZXM7IHRoZW4KLWNhdCA+PmNvbmZkZWZzLmggPDxcRU9GCitjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgogI2RlZmluZSBGSU9OUkVBRF9JTl9TWVNfSU9DVEwgMQotRU9GCitfQUNFT0YKIAogZmkKIAotZWNobyAiJGFzX21lOjQwMjY6IGNoZWNraW5nIGZvciBzcGVlZF90IGluIHN5cy90eXBlcy5oIiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3BlZWRfdCBpbiBzeXMvdHlwZXMuaCIgPiY1CiBlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzcGVlZF90IGluIHN5cy90eXBlcy5oLi4uICRFQ0hPX0MiID4mNgogaWYgdGVzdCAiJHtiYXNoX2N2X3NwZWVkX3RfaW5fc3lzX3R5cGVzK3NldH0iID0gc2V0OyB0aGVuCiAgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CiBlbHNlCiAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotI2xpbmUgNDAzMiAiY29uZmlndXJlIgotI2luY2x1ZGUgImNvbmZkZWZzLmgiCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiBpbnQKIG1haW4gKCkKQEAgLTQwNDEsNDMgKzYxMDQsNTcgQEAKIH0KIF9BQ0VPRgogcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6NDA0NDogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPiY1CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6NDA0NzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTo0MDUwOiBcIiRhY190cnlcIiIpID4mNQorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAgKGV2YWwgJGFjX3RyeSkgMj4mNQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjQwNTM6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KICAgYmFzaF9jdl9zcGVlZF90X2luX3N5c190eXBlcz15ZXMKIGVsc2UKICAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLWNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCiBiYXNoX2N2X3NwZWVkX3RfaW5fc3lzX3R5cGVzPW5vCiBmaQotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CiBmaQogCi1lY2hvICIkYXNfbWU6NDA2NDogcmVzdWx0OiAkYmFzaF9jdl9zcGVlZF90X2luX3N5c190eXBlcyIgPiY1CitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYmFzaF9jdl9zcGVlZF90X2luX3N5c190eXBlcyIgPiY1CiBlY2hvICIke0VDSE9fVH0kYmFzaF9jdl9zcGVlZF90X2luX3N5c190eXBlcyIgPiY2CiBpZiB0ZXN0ICRiYXNoX2N2X3NwZWVkX3RfaW5fc3lzX3R5cGVzID0geWVzOyB0aGVuCi1jYXQgPj5jb25mZGVmcy5oIDw8XEVPRgorY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKICNkZWZpbmUgU1BFRURfVF9JTl9TWVNfVFlQRVMgMQotRU9GCitfQUNFT0YKIAogZmkKIAotZWNobyAiJGFzX21lOjQwNzM6IGNoZWNraW5nIGZvciBzdHJ1Y3Qgd2luc2l6ZSBpbiBzeXMvaW9jdGwuaCBhbmQgdGVybWlvcy5oIiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igc3RydWN0IHdpbnNpemUgaW4gc3lzL2lvY3RsLmggYW5kIHRlcm1pb3MuaCIgPiY1CiBlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdHJ1Y3Qgd2luc2l6ZSBpbiBzeXMvaW9jdGwuaCBhbmQgdGVybWlvcy5oLi4uICRFQ0hPX0MiID4mNgogaWYgdGVzdCAiJHtiYXNoX2N2X3N0cnVjdF93aW5zaXplX2hlYWRlcitzZXR9IiA9IHNldDsgdGhlbgogICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgogZWxzZQogICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSNsaW5lIDQwNzkgImNvbmZpZ3VyZSIKLSNpbmNsdWRlICJjb25mZGVmcy5oIgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLwogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgogaW50CkBAIC00MDg5LDI0ICs2MTY2LDM4IEBACiB9CiBfQUNFT0YKIHJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOjQwOTI6IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjQwOTU6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6NDA5ODogXCIkYWNfdHJ5XCIiKSA+JjUKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAgIChldmFsICRhY190cnkpIDI+JjUKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTo0MTAxOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCiAgIGJhc2hfY3Zfc3RydWN0X3dpbnNpemVfaGVhZGVyPWlvY3RsX2gKIGVsc2UKICAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLWNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCiBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSNsaW5lIDQxMDggImNvbmZpZ3VyZSIKLSNpbmNsdWRlICJjb25mZGVmcy5oIgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLwogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogI2luY2x1ZGUgPHRlcm1pb3MuaD4KIGludApAQCAtNDExOCw1NiArNjIwOSw3MSBAQAogfQogX0FDRU9GCiBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTo0MTIxOiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTo0MTI0OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOjQxMjc6IFwiJGFjX3RyeVwiIikgPiY1CisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQogICAoZXZhbCAkYWNfdHJ5KSAyPiY1CiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6NDEzMDogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogICBiYXNoX2N2X3N0cnVjdF93aW5zaXplX2hlYWRlcj10ZXJtaW9zX2gKIGVsc2UKICAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLWNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCiBiYXNoX2N2X3N0cnVjdF93aW5zaXplX2hlYWRlcj1vdGhlcgogZmkKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAogCiBmaQotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CiBmaQogCiBpZiB0ZXN0ICRiYXNoX2N2X3N0cnVjdF93aW5zaXplX2hlYWRlciA9IGlvY3RsX2g7IHRoZW4KLSAgZWNobyAiJGFzX21lOjQxNDU6IHJlc3VsdDogc3lzL2lvY3RsLmgiID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBzeXMvaW9jdGwuaCIgPiY1CiBlY2hvICIke0VDSE9fVH1zeXMvaW9jdGwuaCIgPiY2Ci0gIGNhdCA+PmNvbmZkZWZzLmggPDxcRU9GCisgIGNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiAjZGVmaW5lIFNUUlVDVF9XSU5TSVpFX0lOX1NZU19JT0NUTCAxCi1FT0YKK19BQ0VPRgogCiBlbGlmIHRlc3QgJGJhc2hfY3Zfc3RydWN0X3dpbnNpemVfaGVhZGVyID0gdGVybWlvc19oOyB0aGVuCi0gIGVjaG8gIiRhc19tZTo0MTUyOiByZXN1bHQ6IHRlcm1pb3MuaCIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHRlcm1pb3MuaCIgPiY1CiBlY2hvICIke0VDSE9fVH10ZXJtaW9zLmgiID4mNgotICBjYXQgPj5jb25mZGVmcy5oIDw8XEVPRgorICBjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgogI2RlZmluZSBTVFJVQ1RfV0lOU0laRV9JTl9URVJNSU9TIDEKLUVPRgorX0FDRU9GCiAKIGVsc2UKLSAgZWNobyAiJGFzX21lOjQxNTk6IHJlc3VsdDogbm90IGZvdW5kIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm90IGZvdW5kIiA+JjUKIGVjaG8gIiR7RUNIT19UfW5vdCBmb3VuZCIgPiY2CiBmaQogCi1lY2hvICIkYXNfbWU6NDE2MzogY2hlY2tpbmcgaWYgc3RydWN0IGRpcmVudCBoYXMgYSBkX2lubyBtZW1iZXIiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBpZiBzdHJ1Y3QgZGlyZW50IGhhcyBhIGRfaW5vIG1lbWJlci4uLiAkRUNIT19DIiA+JjYKKworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdHJ1Y3QgZGlyZW50LmRfaW5vIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN0cnVjdCBkaXJlbnQuZF9pbm8uLi4gJEVDSE9fQyIgPiY2CiBpZiB0ZXN0ICIke2Jhc2hfY3ZfZGlyZW50X2hhc19kaW5vK3NldH0iID0gc2V0OyB0aGVuCiAgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CiBlbHNlCiAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotI2xpbmUgNDE2OSAiY29uZmlndXJlIgotI2luY2x1ZGUgImNvbmZkZWZzLmgiCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiAKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgpAQCAtNDIwMCw0MyArNjMwNiw1OCBAQAogfQogX0FDRU9GCiBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTo0MjAzOiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTo0MjA2OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOjQyMDk6IFwiJGFjX3RyeVwiIikgPiY1CisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQogICAoZXZhbCAkYWNfdHJ5KSAyPiY1CiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6NDIxMjogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogICBiYXNoX2N2X2RpcmVudF9oYXNfZGlubz15ZXMKIGVsc2UKICAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLWNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCiBiYXNoX2N2X2RpcmVudF9oYXNfZGlubz1ubwogZmkKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAogZmkKIAotZWNobyAiJGFzX21lOjQyMjM6IHJlc3VsdDogJGJhc2hfY3ZfZGlyZW50X2hhc19kaW5vIiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRiYXNoX2N2X2RpcmVudF9oYXNfZGlubyIgPiY1CiBlY2hvICIke0VDSE9fVH0kYmFzaF9jdl9kaXJlbnRfaGFzX2Rpbm8iID4mNgogaWYgdGVzdCAkYmFzaF9jdl9kaXJlbnRfaGFzX2Rpbm8gPSB5ZXM7IHRoZW4KLWNhdCA+PmNvbmZkZWZzLmggPDxcRU9GCi0jZGVmaW5lIFNUUlVDVF9ESVJFTlRfSEFTX0RfSU5PIDEKLUVPRgorY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgSEFWRV9TVFJVQ1RfRElSRU5UX0RfSU5PIDEKK19BQ0VPRgogCiBmaQogCi1lY2hvICIkYXNfbWU6NDIzMjogY2hlY2tpbmcgaWYgc3RydWN0IGRpcmVudCBoYXMgYSBkX2ZpbGVubyBtZW1iZXIiID4mNQotZWNobyAkRUNIT19OICJjaGVja2luZyBpZiBzdHJ1Y3QgZGlyZW50IGhhcyBhIGRfZmlsZW5vIG1lbWJlci4uLiAkRUNIT19DIiA+JjYKKworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdHJ1Y3QgZGlyZW50LmRfZmlsZW5vIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN0cnVjdCBkaXJlbnQuZF9maWxlbm8uLi4gJEVDSE9fQyIgPiY2CiBpZiB0ZXN0ICIke2Jhc2hfY3ZfZGlyZW50X2hhc19kX2ZpbGVubytzZXR9IiA9IHNldDsgdGhlbgogICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgogZWxzZQogICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSNsaW5lIDQyMzggImNvbmZpZ3VyZSIKLSNpbmNsdWRlICJjb25mZGVmcy5oIgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLwogCiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KQEAgLTQyNjksMzUgKzYzOTAsNDcgQEAKIH0KIF9BQ0VPRgogcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6NDI3MjogXCIkYWNfY29tcGlsZVwiIikgPiY1Ci0gIChldmFsICRhY19jb21waWxlKSAyPiY1CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6NDI3NTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTo0Mjc4OiBcIiRhY190cnlcIiIpID4mNQorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAgKGV2YWwgJGFjX3RyeSkgMj4mNQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjQyODE6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KICAgYmFzaF9jdl9kaXJlbnRfaGFzX2RfZmlsZW5vPXllcwogZWxzZQogICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKIGJhc2hfY3ZfZGlyZW50X2hhc19kX2ZpbGVubz1ubwogZmkKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAogZmkKIAotZWNobyAiJGFzX21lOjQyOTI6IHJlc3VsdDogJGJhc2hfY3ZfZGlyZW50X2hhc19kX2ZpbGVubyIgPiY1CitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYmFzaF9jdl9kaXJlbnRfaGFzX2RfZmlsZW5vIiA+JjUKIGVjaG8gIiR7RUNIT19UfSRiYXNoX2N2X2RpcmVudF9oYXNfZF9maWxlbm8iID4mNgogaWYgdGVzdCAkYmFzaF9jdl9kaXJlbnRfaGFzX2RfZmlsZW5vID0geWVzOyB0aGVuCi1jYXQgPj5jb25mZGVmcy5oIDw8XEVPRgotI2RlZmluZSBTVFJVQ1RfRElSRU5UX0hBU19EX0ZJTEVOTyAxCi1FT0YKK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisjZGVmaW5lIEhBVkVfU1RSVUNUX0RJUkVOVF9EX0ZJTEVOTyAxCitfQUNFT0YKIAogZmkKIAorCiBjYXNlICIkaG9zdF9vcyIgaW4KIGFpeCopICAgcHJlZmVyX2N1cnNlcz15ZXMgOzsKIGVzYWMKQEAgLTQzMDUsMTQgKzY0MzgsMTA3IEBACiBpZiB0ZXN0ICJYJGJhc2hfY3ZfdGVybWNhcF9saWIiID0gIlgiOyB0aGVuCiBfYmFzaF9uZWVkbXNnPXllcwogZWxzZQotZWNobyAiJGFzX21lOjQzMDg6IGNoZWNraW5nIHdoaWNoIGxpYnJhcnkgaGFzIHRoZSB0ZXJtY2FwIGZ1bmN0aW9ucyIgPiY1CitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hpY2ggbGlicmFyeSBoYXMgdGhlIHRlcm1jYXAgZnVuY3Rpb25zIiA+JjUKIGVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgd2hpY2ggbGlicmFyeSBoYXMgdGhlIHRlcm1jYXAgZnVuY3Rpb25zLi4uICRFQ0hPX0MiID4mNgogX2Jhc2hfbmVlZG1zZz0KIGZpCiBpZiB0ZXN0ICIke2Jhc2hfY3ZfdGVybWNhcF9saWIrc2V0fSIgPSBzZXQ7IHRoZW4KICAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKIGVsc2UKLSAgZWNobyAiJGFzX21lOjQzMTU6IGNoZWNraW5nIGZvciB0Z2V0ZW50IGluIC1sdGVybWNhcCIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgdGdldGVudCIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciB0Z2V0ZW50Li4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9mdW5jX3RnZXRlbnQrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisvKiBEZWZpbmUgdGdldGVudCB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIHRnZXRlbnQuCisgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KKyNkZWZpbmUgdGdldGVudCBpbm5vY3VvdXNfdGdldGVudAorCisvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCisgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciB0Z2V0ZW50ICgpOyBiZWxvdy4KKyAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCisgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KKworI2lmZGVmIF9fU1REQ19fCisjIGluY2x1ZGUgPGxpbWl0cy5oPgorI2Vsc2UKKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+CisjZW5kaWYKKworI3VuZGVmIHRnZXRlbnQKKworLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIgoreworI2VuZGlmCisvKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCisgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLworY2hhciB0Z2V0ZW50ICgpOworLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cworICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCisgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCisjaWYgZGVmaW5lZCAoX19zdHViX3RnZXRlbnQpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX3RnZXRlbnQpCitjaG9rZSBtZQorI2Vsc2UKK2NoYXIgKCpmKSAoKSA9IHRnZXRlbnQ7CisjZW5kaWYKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKK2ludAorbWFpbiAoKQoreworcmV0dXJuIGYgIT0gdGdldGVudDsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBhY19jdl9mdW5jX3RnZXRlbnQ9eWVzCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2FjX2N2X2Z1bmNfdGdldGVudD1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2Z1bmNfdGdldGVudCIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3ZfZnVuY190Z2V0ZW50IiA+JjYKK2lmIHRlc3QgJGFjX2N2X2Z1bmNfdGdldGVudCA9IHllczsgdGhlbgorICBiYXNoX2N2X3Rlcm1jYXBfbGliPWxpYmMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciB0Z2V0ZW50IGluIC1sdGVybWNhcCIgPiY1CiBlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciB0Z2V0ZW50IGluIC1sdGVybWNhcC4uLiAkRUNIT19DIiA+JjYKIGlmIHRlc3QgIiR7YWNfY3ZfbGliX3Rlcm1jYXBfdGdldGVudCtzZXR9IiA9IHNldDsgdGhlbgogICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgpAQCAtNDMyMCw4ICs2NTQ2LDExIEBACiAgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKIExJQlM9Ii1sdGVybWNhcCAgJExJQlMiCiBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSNsaW5lIDQzMjMgImNvbmZpZ3VyZSIKLSNpbmNsdWRlICJjb25mZGVmcy5oIgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLwogCiAvKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwogI2lmZGVmIF9fY3BsdXNwbHVzCkBAIC00MzM5LDMyICs2NTY4LDQ0IEBACiB9CiBfQUNFT0YKIHJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTo0MzQyOiBcIiRhY19saW5rXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2xpbmspIDI+JjUKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj5jb25mdGVzdC5lcjEKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTo0MzQ1OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6NDM0ODogXCIkYWNfdHJ5XCIiKSA+JjUKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAgIChldmFsICRhY190cnkpIDI+JjUKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTo0MzUxOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KICAgYWNfY3ZfbGliX3Rlcm1jYXBfdGdldGVudD15ZXMKIGVsc2UKICAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLWNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCiBhY19jdl9saWJfdGVybWNhcF90Z2V0ZW50PW5vCiBmaQotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKIExJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKIGZpCi1lY2hvICIkYXNfbWU6NDM2MjogcmVzdWx0OiAkYWNfY3ZfbGliX3Rlcm1jYXBfdGdldGVudCIgPiY1CitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbGliX3Rlcm1jYXBfdGdldGVudCIgPiY1CiBlY2hvICIke0VDSE9fVH0kYWNfY3ZfbGliX3Rlcm1jYXBfdGdldGVudCIgPiY2CiBpZiB0ZXN0ICRhY19jdl9saWJfdGVybWNhcF90Z2V0ZW50ID0geWVzOyB0aGVuCiAgIGJhc2hfY3ZfdGVybWNhcF9saWI9bGlidGVybWNhcAogZWxzZQotICBlY2hvICIkYXNfbWU6NDM2NzogY2hlY2tpbmcgZm9yIHRnZXRlbnQgaW4gLWx0aW5mbyIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgdGdldGVudCBpbiAtbHRpbmZvIiA+JjUKIGVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHRnZXRlbnQgaW4gLWx0aW5mby4uLiAkRUNIT19DIiA+JjYKIGlmIHRlc3QgIiR7YWNfY3ZfbGliX3RpbmZvX3RnZXRlbnQrc2V0fSIgPSBzZXQ7IHRoZW4KICAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKQEAgLTQzNzIsOCArNjYxMywxMSBAQAogICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCiBMSUJTPSItbHRpbmZvICAkTElCUyIKIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotI2xpbmUgNDM3NSAiY29uZmlndXJlIgotI2luY2x1ZGUgImNvbmZkZWZzLmgiCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiAKIC8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCiAjaWZkZWYgX19jcGx1c3BsdXMKQEAgLTQzOTEsMzIgKzY2MzUsNDQgQEAKIH0KIF9BQ0VPRgogcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOjQzOTQ6IFwiJGFjX2xpbmtcIiIpID4mNQotICAoZXZhbCAkYWNfbGluaykgMj4mNQoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CisgIChldmFsICRhY19saW5rKSAyPmNvbmZ0ZXN0LmVyMQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjQzOTc6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotICAgICAgICAgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JwotICB7IChldmFsIGVjaG8gIiRhc19tZTo0NDAwOiBcIiRhY190cnlcIiIpID4mNQorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKICAgKGV2YWwgJGFjX3RyeSkgMj4mNQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjQ0MDM6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogICBhY19jdl9saWJfdGluZm9fdGdldGVudD15ZXMKIGVsc2UKICAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLWNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCiBhY19jdl9saWJfdGluZm9fdGdldGVudD1ubwogZmkKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CiBMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCiBmaQotZWNobyAiJGFzX21lOjQ0MTQ6IHJlc3VsdDogJGFjX2N2X2xpYl90aW5mb190Z2V0ZW50IiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9saWJfdGluZm9fdGdldGVudCIgPiY1CiBlY2hvICIke0VDSE9fVH0kYWNfY3ZfbGliX3RpbmZvX3RnZXRlbnQiID4mNgogaWYgdGVzdCAkYWNfY3ZfbGliX3RpbmZvX3RnZXRlbnQgPSB5ZXM7IHRoZW4KICAgYmFzaF9jdl90ZXJtY2FwX2xpYj1saWJ0aW5mbwogZWxzZQotICBlY2hvICIkYXNfbWU6NDQxOTogY2hlY2tpbmcgZm9yIHRnZXRlbnQgaW4gLWxjdXJzZXMiID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHRnZXRlbnQgaW4gLWxjdXJzZXMiID4mNQogZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgdGdldGVudCBpbiAtbGN1cnNlcy4uLiAkRUNIT19DIiA+JjYKIGlmIHRlc3QgIiR7YWNfY3ZfbGliX2N1cnNlc190Z2V0ZW50K3NldH0iID0gc2V0OyB0aGVuCiAgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CkBAIC00NDI0LDggKzY2ODAsMTEgQEAKICAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwogTElCUz0iLWxjdXJzZXMgICRMSUJTIgogY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jbGluZSA0NDI3ICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KIAogLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KICNpZmRlZiBfX2NwbHVzcGx1cwpAQCAtNDQ0MywzMiArNjcwMiw0NCBAQAogfQogX0FDRU9GCiBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6NDQ0NjogXCIkYWNfbGlua1wiIikgPiY1Ci0gIChldmFsICRhY19saW5rKSAyPiY1CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2xpbmspIDI+Y29uZnRlc3QuZXIxCiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6NDQ0OTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOjQ0NTI6IFwiJGFjX3RyeVwiIikgPiY1CisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQogICAoZXZhbCAkYWNfdHJ5KSAyPiY1CiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6NDQ1NTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCiAgIGFjX2N2X2xpYl9jdXJzZXNfdGdldGVudD15ZXMKIGVsc2UKICAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLWNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCiBhY19jdl9saWJfY3Vyc2VzX3RnZXRlbnQ9bm8KIGZpCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAogTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwogZmkKLWVjaG8gIiRhc19tZTo0NDY2OiByZXN1bHQ6ICRhY19jdl9saWJfY3Vyc2VzX3RnZXRlbnQiID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2xpYl9jdXJzZXNfdGdldGVudCIgPiY1CiBlY2hvICIke0VDSE9fVH0kYWNfY3ZfbGliX2N1cnNlc190Z2V0ZW50IiA+JjYKIGlmIHRlc3QgJGFjX2N2X2xpYl9jdXJzZXNfdGdldGVudCA9IHllczsgdGhlbgogICBiYXNoX2N2X3Rlcm1jYXBfbGliPWxpYmN1cnNlcwogZWxzZQotICBlY2hvICIkYXNfbWU6NDQ3MTogY2hlY2tpbmcgZm9yIHRnZXRlbnQgaW4gLWxuY3Vyc2VzIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciB0Z2V0ZW50IGluIC1sbmN1cnNlcyIgPiY1CiBlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciB0Z2V0ZW50IGluIC1sbmN1cnNlcy4uLiAkRUNIT19DIiA+JjYKIGlmIHRlc3QgIiR7YWNfY3ZfbGliX25jdXJzZXNfdGdldGVudCtzZXR9IiA9IHNldDsgdGhlbgogICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgpAQCAtNDQ3Niw4ICs2NzQ3LDExIEBACiAgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKIExJQlM9Ii1sbmN1cnNlcyAgJExJQlMiCiBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSNsaW5lIDQ0NzkgImNvbmZpZ3VyZSIKLSNpbmNsdWRlICJjb25mZGVmcy5oIgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLwogCiAvKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwogI2lmZGVmIF9fY3BsdXNwbHVzCkBAIC00NDk1LDI3ICs2NzY5LDM5IEBACiB9CiBfQUNFT0YKIHJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTo0NDk4OiBcIiRhY19saW5rXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2xpbmspIDI+JjUKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj5jb25mdGVzdC5lcjEKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTo0NTAxOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6NDUwNDogXCIkYWNfdHJ5XCIiKSA+JjUKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAgIChldmFsICRhY190cnkpIDI+JjUKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTo0NTA3OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KICAgYWNfY3ZfbGliX25jdXJzZXNfdGdldGVudD15ZXMKIGVsc2UKICAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLWNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCiBhY19jdl9saWJfbmN1cnNlc190Z2V0ZW50PW5vCiBmaQotcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKIExJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKIGZpCi1lY2hvICIkYXNfbWU6NDUxODogcmVzdWx0OiAkYWNfY3ZfbGliX25jdXJzZXNfdGdldGVudCIgPiY1CitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbGliX25jdXJzZXNfdGdldGVudCIgPiY1CiBlY2hvICIke0VDSE9fVH0kYWNfY3ZfbGliX25jdXJzZXNfdGdldGVudCIgPiY2CiBpZiB0ZXN0ICRhY19jdl9saWJfbmN1cnNlc190Z2V0ZW50ID0geWVzOyB0aGVuCiAgIGJhc2hfY3ZfdGVybWNhcF9saWI9bGlibmN1cnNlcwpAQCAtNDUzMSwxMSArNjgxNywxMyBAQAogCiBmaQogCitmaQorCiBpZiB0ZXN0ICJYJF9iYXNoX25lZWRtc2ciID0gIlh5ZXMiOyB0aGVuCi1lY2hvICIkYXNfbWU6NDUzNTogY2hlY2tpbmcgd2hpY2ggbGlicmFyeSBoYXMgdGhlIHRlcm1jYXAgZnVuY3Rpb25zIiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGljaCBsaWJyYXJ5IGhhcyB0aGUgdGVybWNhcCBmdW5jdGlvbnMiID4mNQogZWNobyAkRUNIT19OICJjaGVja2luZyB3aGljaCBsaWJyYXJ5IGhhcyB0aGUgdGVybWNhcCBmdW5jdGlvbnMuLi4gJEVDSE9fQyIgPiY2CiBmaQotZWNobyAiJGFzX21lOjQ1Mzg6IHJlc3VsdDogdXNpbmcgJGJhc2hfY3ZfdGVybWNhcF9saWIiID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogdXNpbmcgJGJhc2hfY3ZfdGVybWNhcF9saWIiID4mNQogZWNobyAiJHtFQ0hPX1R9dXNpbmcgJGJhc2hfY3ZfdGVybWNhcF9saWIiID4mNgogaWYgdGVzdCAkYmFzaF9jdl90ZXJtY2FwX2xpYiA9IGdudXRlcm1jYXAgJiYgdGVzdCAteiAiJHByZWZlcl9jdXJzZXMiOyB0aGVuCiBMREZMQUdTPSIkTERGTEFHUyAtTC4vbGliL3Rlcm1jYXAiCkBAIC00NTUwLDYgKzY4MzgsOSBAQAogZWxpZiB0ZXN0ICRiYXNoX2N2X3Rlcm1jYXBfbGliID0gbGlibmN1cnNlczsgdGhlbgogVEVSTUNBUF9MSUI9LWxuY3Vyc2VzCiBURVJNQ0FQX0RFUD0KK2VsaWYgdGVzdCAkYmFzaF9jdl90ZXJtY2FwX2xpYiA9IGxpYmM7IHRoZW4KK1RFUk1DQVBfTElCPQorVEVSTUNBUF9ERVA9CiBlbHNlCiBURVJNQ0FQX0xJQj0tbGN1cnNlcwogVEVSTUNBUF9ERVA9CkBAIC00NTYzLDI5ICs2ODU0LDg3IEBACiAJZmkKIGZpCiAKKworCiBmb3IgYWNfaGVhZGVyIGluIHdjdHlwZS5oCiBkbwogYXNfYWNfSGVhZGVyPWBlY2hvICJhY19jdl9oZWFkZXJfJGFjX2hlYWRlciIgfCAkYXNfdHJfc2hgCi1lY2hvICIkYXNfbWU6NDU2OTogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQoraWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY19IZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhlbgorICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQogZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2hlYWRlci4uLiAkRUNIT19DIiA+JjYKIGlmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KICAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY1CitlY2hvICIke0VDSE9fVH1gZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCIgPiY2CiBlbHNlCi0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgotI2xpbmUgNDU3NSAiY29uZmlndXJlIgotI2luY2x1ZGUgImNvbmZkZWZzLmgiCisgICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxlPworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nICRhY19oZWFkZXIgdXNhYmlsaXR5IiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgJGFjX2hlYWRlciB1c2FiaWxpdHkuLi4gJEVDSE9fQyIgPiY2CitjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyRhY19pbmNsdWRlc19kZWZhdWx0CiAjaW5jbHVkZSA8JGFjX2hlYWRlcj4KIF9BQ0VPRgotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6NDU3OTogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHRcIiIpID4mNQotICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRlc3QuZXIxCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCiAgIGFjX3N0YXR1cz0kPwotICBlZ3JlcCAtdiAnXiAqXCsnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCiAgIHJtIC1mIGNvbmZ0ZXN0LmVyMQogICBjYXQgY29uZnRlc3QuZXJyID4mNQotICBlY2hvICIkYXNfbWU6NDU4NTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBhY19oZWFkZXJfY29tcGlsZXI9eWVzCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2FjX2hlYWRlcl9jb21waWxlcj1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19oZWFkZXJfY29tcGlsZXIiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9jb21waWxlciIgPiY2CisKKyMgSXMgdGhlIGhlYWRlciBwcmVzZW50PworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nICRhY19oZWFkZXIgcHJlc2VuY2UiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyAkYWNfaGVhZGVyIHByZXNlbmNlLi4uICRFQ0hPX0MiID4mNgorY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaW5jbHVkZSA8JGFjX2hlYWRlcj4KK19BQ0VPRgoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHRcIiIpID4mNQorICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsOyB0aGVuCiAgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCiAgICAgYWNfY3BwX2Vycj0kYWNfY19wcmVwcm9jX3dhcm5fZmxhZworICAgIGFjX2NwcF9lcnI9JGFjX2NwcF9lcnIkYWNfY193ZXJyb3JfZmxhZwogICBlbHNlCiAgICAgYWNfY3BwX2Vycj0KICAgZmkKQEAgLTQ1OTMsNDcgKzY5NDIsMTQ5IEBACiAgIGFjX2NwcF9lcnI9eWVzCiBmaQogaWYgdGVzdCAteiAiJGFjX2NwcF9lcnIiOyB0aGVuCi0gIGV2YWwgIiRhc19hY19IZWFkZXI9eWVzIgorICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKIGVsc2UKICAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLSAgY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0gIGV2YWwgIiRhc19hY19IZWFkZXI9bm8iCitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKKyAgYWNfaGVhZGVyX3ByZXByb2M9bm8KIGZpCiBybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9wcmVwcm9jIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfcHJlcHJvYyIgPiY2CisKKyMgU28/ICBXaGF0IGFib3V0IHRoaXMgaGVhZGVyPworY2FzZSAkYWNfaGVhZGVyX2NvbXBpbGVyOiRhY19oZWFkZXJfcHJlcHJvYzokYWNfY19wcmVwcm9jX3dhcm5fZmxhZyBpbgorICB5ZXM6bm86ICkKKyAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiYyO30KKyAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiYyO30KKyAgICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKKyAgICA7OworICBubzp5ZXM6KiApCisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjI7fQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+JjI7fQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiY1CitlY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHNlZSB0aGUgQXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiYyO30KKyAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiAgICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiYyO30KKyAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIHByZXByb2Nlc3NvcidzIHJlc3VsdCIgPiY1CitlY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiY1CitlY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IGluIHRoZSBmdXR1cmUsIHRoZSBjb21waWxlciB3aWxsIHRha2UgcHJlY2VkZW5jZSIgPiYyO30KKyAgICAoCisgICAgICBjYXQgPDxcX0FTQk9YCisjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworIyMgUmVwb3J0IHRoaXMgdG8gYnVnLXJlYWRsaW5lQGdudS5vcmcgIyMKKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCitfQVNCT1gKKyAgICApIHwKKyAgICAgIHNlZCAicy9eLyRhc19tZTogV0FSTklORzogICAgIC8iID4mMgorICAgIDs7Citlc2FjCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19oZWFkZXIiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2hlYWRlci4uLiAkRUNIT19DIiA+JjYKK2lmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgZXZhbCAiJGFzX2FjX0hlYWRlcj1cJGFjX2hlYWRlcl9wcmVwcm9jIgogZmkKLWVjaG8gIiRhc19tZTo0NjA0OiByZXN1bHQ6IGBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjUKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IGBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjUKIGVjaG8gIiR7RUNIT19UfWBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjYKLWlmIHRlc3QgYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AgPSB5ZXM7IHRoZW4KLSAgY2F0ID4+Y29uZmRlZnMuaCA8PEVPRgotI2RlZmluZSBgZWNobyAiSEFWRV8kYWNfaGVhZGVyIiB8ICRhc190cl9jcHBgIDEKLUVPRgogCiBmaQoraWYgdGVzdCBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCA9IHllczsgdGhlbgorICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIGBlY2hvICJIQVZFXyRhY19oZWFkZXIiIHwgJGFzX3RyX2NwcGAgMQorX0FDRU9GCisKK2ZpCisKIGRvbmUKIAorCiBmb3IgYWNfaGVhZGVyIGluIHdjaGFyLmgKIGRvCiBhc19hY19IZWFkZXI9YGVjaG8gImFjX2N2X2hlYWRlcl8kYWNfaGVhZGVyIiB8ICRhc190cl9zaGAKLWVjaG8gIiRhc19tZTo0NjE3OiBjaGVja2luZyBmb3IgJGFjX2hlYWRlciIgPiY1CitpZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0hlYWRlcitzZXR9XCIgPSBzZXQiOyB0aGVuCisgIGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2hlYWRlciIgPiY1CiBlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfaGVhZGVyLi4uICRFQ0hPX0MiID4mNgogaWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY19IZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhlbgogICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IGBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjUKK2VjaG8gIiR7RUNIT19UfWBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgIiA+JjYKIGVsc2UKLSAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jbGluZSA0NjIzICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKKyAgIyBJcyB0aGUgaGVhZGVyIGNvbXBpbGFibGU/CitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgJGFjX2hlYWRlciB1c2FiaWxpdHkiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyAkYWNfaGVhZGVyIHVzYWJpbGl0eS4uLiAkRUNIT19DIiA+JjYKK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworJGFjX2luY2x1ZGVzX2RlZmF1bHQKICNpbmNsdWRlIDwkYWNfaGVhZGVyPgogX0FDRU9GCi1pZiB7IChldmFsIGVjaG8gIiRhc19tZTo0NjI3OiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1Ci0gIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKICAgYWNfc3RhdHVzPSQ/Ci0gIGVncmVwIC12ICdeICpcKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKICAgcm0gLWYgY29uZnRlc3QuZXIxCiAgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIGVjaG8gIiRhc19tZTo0NjMzOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2hlYWRlcl9jb21waWxlcj15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworYWNfaGVhZGVyX2NvbXBpbGVyPW5vCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2hlYWRlcl9jb21waWxlciIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjYKKworIyBJcyB0aGUgaGVhZGVyIHByZXNlbnQ/CitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgJGFjX2hlYWRlciBwcmVzZW5jZSIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nICRhY19oZWFkZXIgcHJlc2VuY2UuLi4gJEVDSE9fQyIgPiY2CitjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDwkYWNfaGVhZGVyPgorX0FDRU9GCitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dFwiIikgPiY1CisgIChldmFsICRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9ID4vZGV2L251bGw7IHRoZW4KICAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KICAgICBhY19jcHBfZXJyPSRhY19jX3ByZXByb2Nfd2Fybl9mbGFnCisgICAgYWNfY3BwX2Vycj0kYWNfY3BwX2VyciRhY19jX3dlcnJvcl9mbGFnCiAgIGVsc2UKICAgICBhY19jcHBfZXJyPQogICBmaQpAQCAtNDY0MSw0NyArNzA5MiwxNDkgQEAKICAgYWNfY3BwX2Vycj15ZXMKIGZpCiBpZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRoZW4KLSAgZXZhbCAiJGFzX2FjX0hlYWRlcj15ZXMiCisgIGFjX2hlYWRlcl9wcmVwcm9jPXllcwogZWxzZQogICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSAgZXZhbCAiJGFzX2FjX0hlYWRlcj1ubyIKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworICBhY19oZWFkZXJfcHJlcHJvYz1ubwogZmkKIHJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9wcmVwcm9jIiA+JjYKKworIyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/CitjYXNlICRhY19oZWFkZXJfY29tcGlsZXI6JGFjX2hlYWRlcl9wcmVwcm9jOiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluCisgIHllczpubzogKQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjI7fQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyByZXN1bHQiID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjI7fQorICAgIGFjX2hlYWRlcl9wcmVwcm9jPXllcworICAgIDs7CisgIG5vOnllczoqICkKKyAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mMjt9CisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiY1CitlY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mMjt9CisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjI7fQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiAgICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjI7fQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mMjt9CisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjI7fQorICAgICgKKyAgICAgIGNhdCA8PFxfQVNCT1gKKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisjIyBSZXBvcnQgdGhpcyB0byBidWctcmVhZGxpbmVAZ251Lm9yZyAjIworIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKK19BU0JPWAorICAgICkgfAorICAgICAgc2VkICJzL14vJGFzX21lOiBXQVJOSU5HOiAgICAgLyIgPiYyCisgICAgOzsKK2VzYWMKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2hlYWRlciIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfaGVhZGVyLi4uICRFQ0hPX0MiID4mNgoraWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY19IZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBldmFsICIkYXNfYWNfSGVhZGVyPVwkYWNfaGVhZGVyX3ByZXByb2MiCiBmaQotZWNobyAiJGFzX21lOjQ2NTI6IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNQogZWNobyAiJHtFQ0hPX1R9YGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNgotaWYgdGVzdCBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCA9IHllczsgdGhlbgotICBjYXQgPj5jb25mZGVmcy5oIDw8RU9GCi0jZGVmaW5lIGBlY2hvICJIQVZFXyRhY19oZWFkZXIiIHwgJGFzX3RyX2NwcGAgMQotRU9GCiAKIGZpCitpZiB0ZXN0IGBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgID0geWVzOyB0aGVuCisgIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgYGVjaG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCitfQUNFT0YKKworZmkKKwogZG9uZQogCisKIGZvciBhY19oZWFkZXIgaW4gbGFuZ2luZm8uaAogZG8KIGFzX2FjX0hlYWRlcj1gZWNobyAiYWNfY3ZfaGVhZGVyXyRhY19oZWFkZXIiIHwgJGFzX3RyX3NoYAotZWNobyAiJGFzX21lOjQ2NjU6IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKK2lmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKIGVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY19oZWFkZXIuLi4gJEVDSE9fQyIgPiY2CiBpZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0hlYWRlcitzZXR9XCIgPSBzZXQiOyB0aGVuCiAgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNQorZWNobyAiJHtFQ0hPX1R9YGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNgogZWxzZQotICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSNsaW5lIDQ2NzEgImNvbmZpZ3VyZSIKLSNpbmNsdWRlICJjb25mZGVmcy5oIgorICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8KK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyAkYWNfaGVhZGVyIHVzYWJpbGl0eSIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nICRhY19oZWFkZXIgdXNhYmlsaXR5Li4uICRFQ0hPX0MiID4mNgorY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiskYWNfaW5jbHVkZXNfZGVmYXVsdAogI2luY2x1ZGUgPCRhY19oZWFkZXI+CiBfQUNFT0YKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOjQ2NzU6IFwiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0XCIiKSA+JjUKLSAgKGV2YWwgJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0KSAyPmNvbmZ0ZXN0LmVyMQorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQogICBhY19zdGF0dXM9JD8KLSAgZWdyZXAgLXYgJ14gKlwrJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgogICBybSAtZiBjb25mdGVzdC5lcjEKICAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgZWNobyAiJGFzX21lOjQ2ODE6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCithY19oZWFkZXJfY29tcGlsZXI9bm8KK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfY29tcGlsZXIiID4mNgorCisjIElzIHRoZSBoZWFkZXIgcHJlc2VudD8KK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyAkYWNfaGVhZGVyIHByZXNlbmNlIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgJGFjX2hlYWRlciBwcmVzZW5jZS4uLiAkRUNIT19DIiA+JjYKK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPCRhY19oZWFkZXI+CitfQUNFT0YKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0XCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0KSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gPi9kZXYvbnVsbDsgdGhlbgogICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgogICAgIGFjX2NwcF9lcnI9JGFjX2NfcHJlcHJvY193YXJuX2ZsYWcKKyAgICBhY19jcHBfZXJyPSRhY19jcHBfZXJyJGFjX2Nfd2Vycm9yX2ZsYWcKICAgZWxzZQogICAgIGFjX2NwcF9lcnI9CiAgIGZpCkBAIC00Njg5LDIxNCArNzI0Miw3MjkgQEAKICAgYWNfY3BwX2Vycj15ZXMKIGZpCiBpZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRoZW4KLSAgZXZhbCAiJGFzX2FjX0hlYWRlcj15ZXMiCisgIGFjX2hlYWRlcl9wcmVwcm9jPXllcwogZWxzZQogICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSAgZXZhbCAiJGFzX2FjX0hlYWRlcj1ubyIKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworICBhY19oZWFkZXJfcHJlcHJvYz1ubwogZmkKIHJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2hlYWRlcl9wcmVwcm9jIiA+JjYKKworIyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/CitjYXNlICRhY19oZWFkZXJfY29tcGlsZXI6JGFjX2hlYWRlcl9wcmVwcm9jOiRhY19jX3ByZXByb2Nfd2Fybl9mbGFnIGluCisgIHllczpubzogKQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nlc3NvciEiID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBhY2NlcHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjI7fQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyByZXN1bHQiID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjI7fQorICAgIGFjX2hlYWRlcl9wcmVwcm9jPXllcworICAgIDs7CisgIG5vOnllczoqICkKKyAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiID4mMjt9CisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiY1CitlY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBjaGVjayBmb3IgbWlzc2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mMjt9CisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjI7fQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mNQorZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfaGVhZGVyOiAgICAgc2VjdGlvbiBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjI7fQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGluZyB3aXRoIHRoZSBwcmVwcm9jZXNzb3IncyByZXN1bHQiID4mMjt9CisgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjUKK2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjI7fQorICAgICgKKyAgICAgIGNhdCA8PFxfQVNCT1gKKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisjIyBSZXBvcnQgdGhpcyB0byBidWctcmVhZGxpbmVAZ251Lm9yZyAjIworIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKK19BU0JPWAorICAgICkgfAorICAgICAgc2VkICJzL14vJGFzX21lOiBXQVJOSU5HOiAgICAgLyIgPiYyCisgICAgOzsKK2VzYWMKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2hlYWRlciIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfaGVhZGVyLi4uICRFQ0hPX0MiID4mNgoraWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY19IZWFkZXIrc2V0fVwiID0gc2V0IjsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBldmFsICIkYXNfYWNfSGVhZGVyPVwkYWNfaGVhZGVyX3ByZXByb2MiCiBmaQotZWNobyAiJGFzX21lOjQ3MDA6IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNQogZWNobyAiJHtFQ0hPX1R9YGV2YWwgZWNobyAnJHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNgotaWYgdGVzdCBgZXZhbCBlY2hvICckeyckYXNfYWNfSGVhZGVyJ30nYCA9IHllczsgdGhlbgotICBjYXQgPj5jb25mZGVmcy5oIDw8RU9GCi0jZGVmaW5lIGBlY2hvICJIQVZFXyRhY19oZWFkZXIiIHwgJGFzX3RyX2NwcGAgMQotRU9GCiAKIGZpCitpZiB0ZXN0IGBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFkZXInfSdgID0geWVzOyB0aGVuCisgIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgYGVjaG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCitfQUNFT0YKKworZmkKKwogZG9uZQogCi1lY2hvICIkYXNfbWU6NDcxMDogY2hlY2tpbmcgZm9yIG1ic3J0b3djcyIgPiY1CisKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbWJzcnRvd2NzIiA+JjUKIGVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIG1ic3J0b3djcy4uLiAkRUNIT19DIiA+JjYKIGlmIHRlc3QgIiR7YWNfY3ZfZnVuY19tYnNydG93Y3Mrc2V0fSIgPSBzZXQ7IHRoZW4KICAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKIGVsc2UKICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jbGluZSA0NzE2ICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKy8qIERlZmluZSBtYnNydG93Y3MgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBtYnNydG93Y3MuCisgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KKyNkZWZpbmUgbWJzcnRvd2NzIGlubm9jdW91c19tYnNydG93Y3MKKwogLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAotICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgbWJzcnRvd2NzICgpOyBiZWxvdy4gICovCi0jaW5jbHVkZSA8YXNzZXJ0Lmg+CisgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBtYnNydG93Y3MgKCk7IGJlbG93LgorICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKKyAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLworCisjaWZkZWYgX19TVERDX18KKyMgaW5jbHVkZSA8bGltaXRzLmg+CisjZWxzZQorIyBpbmNsdWRlIDxhc3NlcnQuaD4KKyNlbmRpZgorCisjdW5kZWYgbWJzcnRvd2NzCisKIC8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCiAjaWZkZWYgX19jcGx1c3BsdXMKIGV4dGVybiAiQyIKK3sKICNlbmRpZgogLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgogICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KIGNoYXIgbWJzcnRvd2NzICgpOwotY2hhciAoKmYpICgpOwotCi1pbnQKLW1haW4gKCkKLXsKIC8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKICAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAogICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwogI2lmIGRlZmluZWQgKF9fc3R1Yl9tYnNydG93Y3MpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX21ic3J0b3djcykKIGNob2tlIG1lCiAjZWxzZQotZiA9IG1ic3J0b3djczsKK2NoYXIgKCpmKSAoKSA9IG1ic3J0b3djczsKKyNlbmRpZgorI2lmZGVmIF9fY3BsdXNwbHVzCit9CiAjZW5kaWYKIAoraW50CittYWluICgpCit7CityZXR1cm4gZiAhPSBtYnNydG93Y3M7CiAgIDsKICAgcmV0dXJuIDA7CiB9CiBfQUNFT0YKIHJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTo0NzQ3OiBcIiRhY19saW5rXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2xpbmspIDI+JjUKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj5jb25mdGVzdC5lcjEKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTo0NzUwOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6NDc1MzogXCIkYWNfdHJ5XCIiKSA+JjUKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAgIChldmFsICRhY190cnkpIDI+JjUKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTo0NzU2OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KICAgYWNfY3ZfZnVuY19tYnNydG93Y3M9eWVzCiBlbHNlCiAgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci1jYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKwogYWNfY3ZfZnVuY19tYnNydG93Y3M9bm8KIGZpCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAogZmkKLWVjaG8gIiRhc19tZTo0NzY2OiByZXN1bHQ6ICRhY19jdl9mdW5jX21ic3J0b3djcyIgPiY1CitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfZnVuY19tYnNydG93Y3MiID4mNQogZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2Z1bmNfbWJzcnRvd2NzIiA+JjYKIGlmIHRlc3QgJGFjX2N2X2Z1bmNfbWJzcnRvd2NzID0geWVzOyB0aGVuCi0gIGNhdCA+PmNvbmZkZWZzLmggPDxcRU9GCisgIGNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiAjZGVmaW5lIEhBVkVfTUJTUlRPV0NTIDEKLUVPRgorX0FDRU9GCiAKIGZpCiAKLWVjaG8gIiRhc19tZTo0Nzc1OiBjaGVja2luZyBmb3Igd2N3aWR0aCIgPiY1CitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1icnRvd2MiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgbWJydG93Yy4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfZnVuY19tYnJ0b3djK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworLyogRGVmaW5lIG1icnRvd2MgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBtYnJ0b3djLgorICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCisjZGVmaW5lIG1icnRvd2MgaW5ub2N1b3VzX21icnRvd2MKKworLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAorICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgbWJydG93YyAoKTsgYmVsb3cuCisgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQorICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCisKKyNpZmRlZiBfX1NURENfXworIyBpbmNsdWRlIDxsaW1pdHMuaD4KKyNlbHNlCisjIGluY2x1ZGUgPGFzc2VydC5oPgorI2VuZGlmCisKKyN1bmRlZiBtYnJ0b3djCisKKy8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIKK3sKKyNlbmRpZgorLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgorICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KK2NoYXIgbWJydG93YyAoKTsKKy8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKKyAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAorICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLworI2lmIGRlZmluZWQgKF9fc3R1Yl9tYnJ0b3djKSB8fCBkZWZpbmVkIChfX3N0dWJfX19tYnJ0b3djKQorY2hva2UgbWUKKyNlbHNlCitjaGFyICgqZikgKCkgPSBtYnJ0b3djOworI2VuZGlmCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCitpbnQKK21haW4gKCkKK3sKK3JldHVybiBmICE9IG1icnRvd2M7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2xpbmspIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfZnVuY19tYnJ0b3djPXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCithY19jdl9mdW5jX21icnRvd2M9bm8KK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9mdW5jX21icnRvd2MiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2Z1bmNfbWJydG93YyIgPiY2CitpZiB0ZXN0ICRhY19jdl9mdW5jX21icnRvd2MgPSB5ZXM7IHRoZW4KKyAgY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgSEFWRV9NQlJUT1dDIDEKK19BQ0VPRgorCitmaQorCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG1icmxlbiIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBtYnJsZW4uLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X2Z1bmNfbWJybGVuK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworLyogRGVmaW5lIG1icmxlbiB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzIG1icmxlbi4KKyAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLworI2RlZmluZSBtYnJsZW4gaW5ub2N1b3VzX21icmxlbgorCisvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCisgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBtYnJsZW4gKCk7IGJlbG93LgorICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKKyAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLworCisjaWZkZWYgX19TVERDX18KKyMgaW5jbHVkZSA8bGltaXRzLmg+CisjZWxzZQorIyBpbmNsdWRlIDxhc3NlcnQuaD4KKyNlbmRpZgorCisjdW5kZWYgbWJybGVuCisKKy8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIKK3sKKyNlbmRpZgorLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgorICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KK2NoYXIgbWJybGVuICgpOworLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cworICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCisgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCisjaWYgZGVmaW5lZCAoX19zdHViX21icmxlbikgfHwgZGVmaW5lZCAoX19zdHViX19fbWJybGVuKQorY2hva2UgbWUKKyNlbHNlCitjaGFyICgqZikgKCkgPSBtYnJsZW47CisjZW5kaWYKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKK2ludAorbWFpbiAoKQoreworcmV0dXJuIGYgIT0gbWJybGVuOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CisgIChldmFsICRhY19saW5rKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGFjX2N2X2Z1bmNfbWJybGVuPXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCithY19jdl9mdW5jX21icmxlbj1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2Z1bmNfbWJybGVuIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdl9mdW5jX21icmxlbiIgPiY2CitpZiB0ZXN0ICRhY19jdl9mdW5jX21icmxlbiA9IHllczsgdGhlbgorICBjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorI2RlZmluZSBIQVZFX01CUkxFTiAxCitfQUNFT0YKKworZmkKKworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciB3Y3RvbWIiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igd2N0b21iLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9mdW5jX3djdG9tYitzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKy8qIERlZmluZSB3Y3RvbWIgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyB3Y3RvbWIuCisgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KKyNkZWZpbmUgd2N0b21iIGlubm9jdW91c193Y3RvbWIKKworLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAorICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgd2N0b21iICgpOyBiZWxvdy4KKyAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCisgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KKworI2lmZGVmIF9fU1REQ19fCisjIGluY2x1ZGUgPGxpbWl0cy5oPgorI2Vsc2UKKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+CisjZW5kaWYKKworI3VuZGVmIHdjdG9tYgorCisvKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiCit7CisjZW5kaWYKKy8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCitjaGFyIHdjdG9tYiAoKTsKKy8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKKyAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAorICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLworI2lmIGRlZmluZWQgKF9fc3R1Yl93Y3RvbWIpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX3djdG9tYikKK2Nob2tlIG1lCisjZWxzZQorY2hhciAoKmYpICgpID0gd2N0b21iOworI2VuZGlmCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCitpbnQKK21haW4gKCkKK3sKK3JldHVybiBmICE9IHdjdG9tYjsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBhY19jdl9mdW5jX3djdG9tYj15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworYWNfY3ZfZnVuY193Y3RvbWI9bm8KK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9mdW5jX3djdG9tYiIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3ZfZnVuY193Y3RvbWIiID4mNgoraWYgdGVzdCAkYWNfY3ZfZnVuY193Y3RvbWIgPSB5ZXM7IHRoZW4KKyAgY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgSEFWRV9XQ1RPTUIgMQorX0FDRU9GCisKK2ZpCisKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Igd2N3aWR0aCIgPiY1CiBlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciB3Y3dpZHRoLi4uICRFQ0hPX0MiID4mNgogaWYgdGVzdCAiJHthY19jdl9mdW5jX3djd2lkdGgrc2V0fSIgPSBzZXQ7IHRoZW4KICAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKIGVsc2UKICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jbGluZSA0NzgxICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKy8qIERlZmluZSB3Y3dpZHRoIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgd2N3aWR0aC4KKyAgIEZvciBleGFtcGxlLCBIUC1VWCAxMWkgPGxpbWl0cy5oPiBkZWNsYXJlcyBnZXR0aW1lb2ZkYXkuICAqLworI2RlZmluZSB3Y3dpZHRoIGlubm9jdW91c193Y3dpZHRoCisKIC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKLSAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIHdjd2lkdGggKCk7IGJlbG93LiAgKi8KLSNpbmNsdWRlIDxhc3NlcnQuaD4KKyAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyIHdjd2lkdGggKCk7IGJlbG93LgorICAgIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKKyAgICA8bGltaXRzLmg+IGV4aXN0cyBldmVuIG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuICAqLworCisjaWZkZWYgX19TVERDX18KKyMgaW5jbHVkZSA8bGltaXRzLmg+CisjZWxzZQorIyBpbmNsdWRlIDxhc3NlcnQuaD4KKyNlbmRpZgorCisjdW5kZWYgd2N3aWR0aAorCiAvKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLwogI2lmZGVmIF9fY3BsdXNwbHVzCiBleHRlcm4gIkMiCit7CiAjZW5kaWYKIC8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCiBjaGFyIHdjd2lkdGggKCk7Ci1jaGFyICgqZikgKCk7Ci0KLWludAotbWFpbiAoKQotewogLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cwogICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCiAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCiAjaWYgZGVmaW5lZCAoX19zdHViX3djd2lkdGgpIHx8IGRlZmluZWQgKF9fc3R1Yl9fX3djd2lkdGgpCiBjaG9rZSBtZQogI2Vsc2UKLWYgPSB3Y3dpZHRoOworY2hhciAoKmYpICgpID0gd2N3aWR0aDsKKyNlbmRpZgorI2lmZGVmIF9fY3BsdXNwbHVzCit9CiAjZW5kaWYKIAoraW50CittYWluICgpCit7CityZXR1cm4gZiAhPSB3Y3dpZHRoOwogICA7CiAgIHJldHVybiAwOwogfQogX0FDRU9GCiBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotaWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6NDgxMjogXCIkYWNfbGlua1wiIikgPiY1Ci0gIChldmFsICRhY19saW5rKSAyPiY1CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2xpbmspIDI+Y29uZnRlc3QuZXIxCiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6NDgxNTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCi0gICAgICAgICB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOjQ4MTg6IFwiJGFjX3RyeVwiIikgPiY1CisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQogICAoZXZhbCAkYWNfdHJ5KSAyPiY1CiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6NDgyMTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCiAgIGFjX2N2X2Z1bmNfd2N3aWR0aD15ZXMKIGVsc2UKICAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLWNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCiBhY19jdl9mdW5jX3djd2lkdGg9bm8KIGZpCi1ybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAogZmkKLWVjaG8gIiRhc19tZTo0ODMxOiByZXN1bHQ6ICRhY19jdl9mdW5jX3djd2lkdGgiID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X2Z1bmNfd2N3aWR0aCIgPiY1CiBlY2hvICIke0VDSE9fVH0kYWNfY3ZfZnVuY193Y3dpZHRoIiA+JjYKIGlmIHRlc3QgJGFjX2N2X2Z1bmNfd2N3aWR0aCA9IHllczsgdGhlbgotICBjYXQgPj5jb25mZGVmcy5oIDw8XEVPRgorICBjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgogI2RlZmluZSBIQVZFX1dDV0lEVEggMQotRU9GCitfQUNFT0YKIAogZmkKIAotZWNobyAiJGFzX21lOjQ4NDA6IGNoZWNraW5nIGZvciBtYnN0YXRlX3QiID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciB3Y3NkdXAiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3Igd2NzZHVwLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9mdW5jX3djc2R1cCtzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKy8qIERlZmluZSB3Y3NkdXAgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyB3Y3NkdXAuCisgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KKyNkZWZpbmUgd2NzZHVwIGlubm9jdW91c193Y3NkdXAKKworLyogU3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5cGVzLAorICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgd2NzZHVwICgpOyBiZWxvdy4KKyAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCisgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KKworI2lmZGVmIF9fU1REQ19fCisjIGluY2x1ZGUgPGxpbWl0cy5oPgorI2Vsc2UKKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+CisjZW5kaWYKKworI3VuZGVmIHdjc2R1cAorCisvKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiCit7CisjZW5kaWYKKy8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCitjaGFyIHdjc2R1cCAoKTsKKy8qIFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKKyAgICB0byBhbHdheXMgZmFpbCB3aXRoIEVOT1NZUy4gIFNvbWUgZnVuY3Rpb25zIGFyZSBhY3R1YWxseSBuYW1lZAorICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLworI2lmIGRlZmluZWQgKF9fc3R1Yl93Y3NkdXApIHx8IGRlZmluZWQgKF9fc3R1Yl9fX3djc2R1cCkKK2Nob2tlIG1lCisjZWxzZQorY2hhciAoKmYpICgpID0gd2NzZHVwOworI2VuZGlmCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCitpbnQKK21haW4gKCkKK3sKK3JldHVybiBmICE9IHdjc2R1cDsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBhY19jdl9mdW5jX3djc2R1cD15ZXMKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworYWNfY3ZfZnVuY193Y3NkdXA9bm8KK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9mdW5jX3djc2R1cCIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3ZfZnVuY193Y3NkdXAiID4mNgoraWYgdGVzdCAkYWNfY3ZfZnVuY193Y3NkdXAgPSB5ZXM7IHRoZW4KKyAgY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgSEFWRV9XQ1NEVVAgMQorX0FDRU9GCisKK2ZpCisKKworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBtYnN0YXRlX3QiID4mNQogZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgbWJzdGF0ZV90Li4uICRFQ0hPX0MiID4mNgogaWYgdGVzdCAiJHtiYXNoX2N2X2hhdmVfbWJzdGF0ZV90K3NldH0iID0gc2V0OyB0aGVuCiAgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CiBlbHNlCi0gIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuCi0gIHsgeyBlY2hvICIkYXNfbWU6NDg0NjogZXJyb3I6IGNhbm5vdCBydW4gdGVzdCBwcm9ncmFtIHdoaWxlIGNyb3NzIGNvbXBpbGluZyIgPiY1Ci1lY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgcnVuIHRlc3QgcHJvZ3JhbSB3aGlsZSBjcm9zcyBjb21waWxpbmciID4mMjt9Ci0gICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KLWVsc2UKICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jbGluZSA0ODUxICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KIAogI2luY2x1ZGUgPHdjaGFyLmg+CiBpbnQKIG1haW4gKCkKIHsKKwogICBtYnN0YXRlX3QgcHM7CisgIG1ic3RhdGVfdCAqcHNwOworICBwc3AgPSAobWJzdGF0ZV90ICopMDsKKworICA7CiAgIHJldHVybiAwOwogfQogX0FDRU9GCi1ybSAtZiBjb25mdGVzdCRhY19leGVleHQKLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOjQ4NjM6IFwiJGFjX2xpbmtcIiIpID4mNQotICAoZXZhbCAkYWNfbGluaykgMj4mNQorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQogICBhY19zdGF0dXM9JD8KLSAgZWNobyAiJGFzX21lOjQ4NjY6IFwkPyA9ICRhY19zdGF0dXMiID4mNQotICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7IGFjX3RyeT0nLi9jb25mdGVzdCRhY19leGVleHQnCi0gIHsgKGV2YWwgZWNobyAiJGFzX21lOjQ4Njg6IFwiJGFjX3RyeVwiIikgPiY1CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQogICAoZXZhbCAkYWNfdHJ5KSAyPiY1CiAgIGFjX3N0YXR1cz0kPwotICBlY2hvICIkYXNfbWU6NDg3MTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgogICBiYXNoX2N2X2hhdmVfbWJzdGF0ZV90PXllcwogZWxzZQotICBlY2hvICIkYXNfbWU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMiID4mNQotZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLWNhdCBjb25mdGVzdC4kYWNfZXh0ID4mNQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCiBiYXNoX2N2X2hhdmVfbWJzdGF0ZV90PW5vCiBmaQotcm0gLWYgY29yZSBjb3JlLiogKi5jb3JlIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKIGZpCi1maQotZWNobyAiJGFzX21lOjQ4ODM6IHJlc3VsdDogJGJhc2hfY3ZfaGF2ZV9tYnN0YXRlX3QiID4mNQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGJhc2hfY3ZfaGF2ZV9tYnN0YXRlX3QiID4mNQogZWNobyAiJHtFQ0hPX1R9JGJhc2hfY3ZfaGF2ZV9tYnN0YXRlX3QiID4mNgogaWYgdGVzdCAkYmFzaF9jdl9oYXZlX21ic3RhdGVfdCA9IHllczsgdGhlbgotCWNhdCA+PmNvbmZkZWZzLmggPDxcRU9GCisJY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKICNkZWZpbmUgSEFWRV9NQlNUQVRFX1QgMQotRU9GCitfQUNFT0YKIAogZmkKIAotZWNobyAiJGFzX21lOjQ4OTI6IGNoZWNraW5nIGZvciBubF9sYW5naW5mbyBhbmQgQ09ERVNFVCIgPiY1CitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIG5sX2xhbmdpbmZvIGFuZCBDT0RFU0VUIiA+JjUKIGVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIG5sX2xhbmdpbmZvIGFuZCBDT0RFU0VULi4uICRFQ0hPX0MiID4mNgogaWYgdGVzdCAiJHtiYXNoX2N2X2xhbmdpbmZvX2NvZGVzZXQrc2V0fSIgPSBzZXQ7IHRoZW4KICAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKIGVsc2UKICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0jbGluZSA0ODk4ICJjb25maWd1cmUiCi0jaW5jbHVkZSAiY29uZmRlZnMuaCIKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KICNpbmNsdWRlIDxsYW5naW5mby5oPgogaW50CiBtYWluICgpCkBAIC00OTA3LDM0ICs3OTc1LDQ4IEBACiB9CiBfQUNFT0YKIHJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0Ci1pZiB7IChldmFsIGVjaG8gIiRhc19tZTo0OTEwOiBcIiRhY19saW5rXCIiKSA+JjUKLSAgKGV2YWwgJGFjX2xpbmspIDI+JjUKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj5jb25mdGVzdC5lcjEKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTo0OTEzOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLSAgICAgICAgIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6NDkxNjogXCIkYWNfdHJ5XCIiKSA+JjUKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CiAgIChldmFsICRhY190cnkpIDI+JjUKICAgYWNfc3RhdHVzPSQ/Ci0gIGVjaG8gIiRhc19tZTo0OTE5OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KICAgYmFzaF9jdl9sYW5naW5mb19jb2Rlc2V0PXllcwogZWxzZQogICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKIGJhc2hfY3ZfbGFuZ2luZm9fY29kZXNldD1ubwogZmkKLXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CiBmaQotZWNobyAiJGFzX21lOjQ5Mjk6IHJlc3VsdDogJGJhc2hfY3ZfbGFuZ2luZm9fY29kZXNldCIgPiY1CitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYmFzaF9jdl9sYW5naW5mb19jb2Rlc2V0IiA+JjUKIGVjaG8gIiR7RUNIT19UfSRiYXNoX2N2X2xhbmdpbmZvX2NvZGVzZXQiID4mNgogaWYgdGVzdCAkYmFzaF9jdl9sYW5naW5mb19jb2Rlc2V0ID0geWVzOyB0aGVuCi0gIGNhdCA+PmNvbmZkZWZzLmggPDxcRU9GCisgIGNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCiAjZGVmaW5lIEhBVkVfTEFOR0lORk9fQ09ERVNFVCAxCi1FT0YKK19BQ0VPRgogCiBmaQogCisKKwogY2FzZSAiJGhvc3RfY3B1IiBpbgogKmNyYXkqKQlMT0NBTF9DRkxBR1M9LURDUkFZIDs7CiAqczM5MCopIExPQ0FMX0NGTEFHUz0tZnNpZ25lZC1jaGFyIDs7CkBAIC00OTUwLDExICs4MDMyLDMxIEBACiAjICR7c3JjZGlyfS9zdXBwb3J0L3Nob2JqLWNvbmYKICMKIGlmIHRlc3QgLWYgJHtzcmNkaXJ9L3N1cHBvcnQvc2hvYmotY29uZjsgdGhlbgotICAgICAgICBlY2hvICIkYXNfbWU6NDk1MzogY2hlY2tpbmcgY29uZmlndXJhdGlvbiBmb3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcyIgPiY1CisgICAgICAgIGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBjb25maWd1cmF0aW9uIGZvciBidWlsZGluZyBzaGFyZWQgbGlicmFyaWVzIiA+JjUKIGVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgY29uZmlndXJhdGlvbiBmb3IgYnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4uLiAkRUNIT19DIiA+JjYKLSAgICAgICAgZXZhbCBgJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0gJHtzcmNkaXJ9L3N1cHBvcnQvc2hvYmotY29uZiAtQyAiJHtDQ30iIC1jICR7aG9zdF9jcHV9IC1vICR7aG9zdF9vc30gLXYgJHtob3N0X3ZlbmRvcn1gCisgICAgICAgIGV2YWwgYFRFUk1DQVBfTElCPSRURVJNQ0FQX0xJQiAke0NPTkZJR19TSEVMTC0vYmluL3NofSAke3NyY2Rpcn0vc3VwcG9ydC9zaG9iai1jb25mIC1DICIke0NDfSIgLWMgJHtob3N0X2NwdX0gLW8gJHtob3N0X29zfSAtdiAke2hvc3RfdmVuZG9yfWAKIAotICAgICAgICBlY2hvICIkYXNfbWU6NDk1NzogcmVzdWx0OiAkU0hMSUJfU1RBVFVTIiA+JjUKKyMJY2FzZSAiJFNITElCX0xJQlMiIGluCisjCSpjdXJzZXMqfCp0ZXJtY2FwKnwqdGVybWxpYiopCTs7CisjCSopCQkJU0hMSUJfTElCUz0iJFNITElCX0xJQlMgJFRFUk1DQVBfTElCIiA7OworIwllc2FjCisKKworCisKKworCisKKworCisKKworCisKKworCisKKyAgICAgICAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJFNITElCX1NUQVRVUyIgPiY1CiBlY2hvICIke0VDSE9fVH0kU0hMSUJfU1RBVFVTIiA+JjYKIAogCSMgU0hMSUJfU1RBVFVTIGlzIGVpdGhlciBgc3VwcG9ydGVkJyBvciBgdW5zdXBwb3J0ZWQnLiAgSWYgaXQncwpAQCAtNDk2OCw2ICs4MDcwLDcgQEAKIAlTSExJQl9NQUpPUj1gZXhwciAiJExJQlZFUlNJT04iIDogJ1woWzAtOV1cKVwuLionYAogCVNITElCX01JTk9SPWBleHByICIkTElCVkVSU0lPTiIgOiAnWzAtOV1cLlwoWzAtOV1cKS4qJ2AKIAorCiBmaQogCiBpZiB0ZXN0ICIkb3B0X3N0YXRpY19saWJzIiA9ICJ5ZXMiOyB0aGVuCkBAIC00OTc5LDEzICs4MDgyLDQxIEBACiAJU0hBUkVEX0lOU1RBTExfVEFSR0VUPWluc3RhbGwtc2hhcmVkCiBmaQogCisKKworCisKKwogY2FzZSAiJGhvc3Rfb3MiIGluCiBtc2Rvc2RqZ3BwKikJQlVJTERfRElSPWBwd2QuZXhlYCA7OwkjIHRvIHByZXZlbnQgLy9kL3BhdGgvZmlsZQogKikJCUJVSUxEX0RJUj1gcHdkYCA7OwogZXNhYwogCi1hY19jb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgTWFrZWZpbGUgZG9jL01ha2VmaWxlIGV4YW1wbGVzL01ha2VmaWxlIHNobGliL01ha2VmaWxlIgotYWNfY29uZmlnX2NvbW1hbmRzPSIkYWNfY29uZmlnX2NvbW1hbmRzIGRlZmF1bHQiCitjYXNlICIkQlVJTERfRElSIiBpbgorKlwgKikJQlVJTERfRElSPWBlY2hvICIkQlVJTERfRElSIiB8IHNlZCAnczogOlxcXFwgOmcnYCA7OworKikJOzsKK2VzYWMKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjX2NvbmZpZ19maWxlcz0iJGFjX2NvbmZpZ19maWxlcyBNYWtlZmlsZSBkb2MvTWFrZWZpbGUgZXhhbXBsZXMvTWFrZWZpbGUgc2hsaWIvTWFrZWZpbGUiCisgICAgICAgICAgYWNfY29uZmlnX2NvbW1hbmRzPSIkYWNfY29uZmlnX2NvbW1hbmRzIGRlZmF1bHQiCiBjYXQgPmNvbmZjYWNoZSA8PFxfQUNFT0YKICMgVGhpcyBmaWxlIGlzIGEgc2hlbGwgc2NyaXB0IHRoYXQgY2FjaGVzIHRoZSByZXN1bHRzIG9mIGNvbmZpZ3VyZQogIyB0ZXN0cyBydW4gb24gdGhpcyBzeXN0ZW0gc28gdGhleSBjYW4gYmUgc2hhcmVkIGJldHdlZW4gY29uZmlndXJlCkBAIC00OTk2LDcgKzgxMjcsNyBAQAogIyBjb25maWcuc3RhdHVzIG9ubHkgcGF5cyBhdHRlbnRpb24gdG8gdGhlIGNhY2hlIGZpbGUgaWYgeW91IGdpdmUgaXQKICMgdGhlIC0tcmVjaGVjayBvcHRpb24gdG8gcmVydW4gY29uZmlndXJlLgogIwotIyBgYWNfY3ZfZW52X2ZvbycgdmFyaWFibGVzIChzZXQgb3IgdW5zZXQpIHdpbGwgYmUgb3ZlcnJpZGVuIHdoZW4KKyMgYGFjX2N2X2Vudl9mb28nIHZhcmlhYmxlcyAoc2V0IG9yIHVuc2V0KSB3aWxsIGJlIG92ZXJyaWRkZW4gd2hlbgogIyBsb2FkaW5nIHRoaXMgZmlsZSwgb3RoZXIgKnVuc2V0KiBgYWNfY3ZfZm9vJyB3aWxsIGJlIGFzc2lnbmVkIHRoZQogIyBmb2xsb3dpbmcgdmFsdWVzLgogCkBAIC01MDE0LDEzICs4MTQ1LDEzIEBACiAgICAgICAjIGBzZXQnIGRvZXMgbm90IHF1b3RlIGNvcnJlY3RseSwgc28gYWRkIHF1b3RlcyAoZG91YmxlLXF1b3RlCiAgICAgICAjIHN1YnN0aXR1dGlvbiB0dXJucyBcXFxcIGludG8gXFwsIGFuZCBzZWQgdHVybnMgXFwgaW50byBcKS4KICAgICAgIHNlZCAtbiBcCi0gICAgICAgICJzLycvJ1xcXFwnJy9nOwotICAgIAkgIHMvXlxcKFtfJGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxudW1dKlxcKT1cXCguKlxcKS9cXDE9J1xcMicvcCIKKwkicy8nLydcXFxcJycvZzsKKwkgIHMvXlxcKFtfJGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxudW1dKlxcKT1cXCguKlxcKS9cXDE9J1xcMicvcCIKICAgICAgIDs7CiAgICAgKikKICAgICAgICMgYHNldCcgcXVvdGVzIGNvcnJlY3RseSBhcyByZXF1aXJlZCBieSBQT1NJWCwgc28gZG8gbm90IGFkZCBxdW90ZXMuCiAgICAgICBzZWQgLW4gXAotICAgICAgICAicy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4qXFwpL1xcMT1cXDIvcCIKKwkicy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4qXFwpL1xcMT1cXDIvcCIKICAgICAgIDs7CiAgICAgZXNhYzsKIH0gfApAQCAtNTAzMSw3ICs4MTYyLDcgQEAKICAgICAgdCBlbmQKICAgICAgL15hY19jdl9lbnYvIXMvXlwoW149XSpcKT1cKC4qXCkkL1wxPSR7XDE9XDJ9LwogICAgICA6IGVuZCcgPj5jb25mY2FjaGUKLWlmIGNtcCAtcyAkY2FjaGVfZmlsZSBjb25mY2FjaGU7IHRoZW4gOjsgZWxzZQoraWYgZGlmZiAkY2FjaGVfZmlsZSBjb25mY2FjaGUgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKICAgaWYgdGVzdCAtdyAkY2FjaGVfZmlsZTsgdGhlbgogICAgIHRlc3QgIngkY2FjaGVfZmlsZSIgIT0gIngvZGV2L251bGwiICYmIGVjaG8gInVwZGF0aW5nIGNhY2hlICRjYWNoZV9maWxlIgogICAgIGNhdCBjb25mY2FjaGUgPiRjYWNoZV9maWxlCkBAIC01MDUwLDQ3ICs4MTgxLDI0MCBAQAogIyB0cmFpbGluZyBjb2xvbnMgYW5kIHRoZW4gcmVtb3ZlIHRoZSB3aG9sZSBsaW5lIGlmIFZQQVRIIGJlY29tZXMgZW1wdHkKICMgKGFjdHVhbGx5IHdlIGxlYXZlIGFuIGVtcHR5IGxpbmUgdG8gcHJlc2VydmUgbGluZSBudW1iZXJzKS4KIGlmIHRlc3QgIngkc3JjZGlyIiA9IHguOyB0aGVuCi0gIGFjX3Zwc3ViPScvXlsgCV0qVlBBVEhbIAldKj0veworICBhY192cHN1Yj0nL15bCSBdKlZQQVRIWwkgXSo9L3sKIHMvOipcJChzcmNkaXIpOiovOi87CiBzLzoqXCR7c3JjZGlyfToqLzovOwogcy86KkBzcmNkaXJAOiovOi87Ci1zL15cKFtePV0qPVsgCV0qXCk6Ki9cMS87CitzL15cKFtePV0qPVsJIF0qXCk6Ki9cMS87CiBzLzoqJC8vOwotcy9eW149XSo9WyAJXSokLy87CitzL15bXj1dKj1bCSBdKiQvLzsKIH0nCiBmaQogCiBERUZTPS1ESEFWRV9DT05GSUdfSAogCithY19saWJvYmpzPQorYWNfbHRsaWJvYmpzPQorZm9yIGFjX2kgaW4gOiAkTElCT0JKUzsgZG8gdGVzdCAieCRhY19pIiA9IHg6ICYmIGNvbnRpbnVlCisgICMgMS4gUmVtb3ZlIHRoZSBleHRlbnNpb24sIGFuZCAkVSBpZiBhbHJlYWR5IGluc3RhbGxlZC4KKyAgYWNfaT1gZWNobyAiJGFjX2kiIHwKKwkgc2VkICdzL1wkVVwuLy4vO3MvXC5vJC8vO3MvXC5vYmokLy8nYAorICAjIDIuIEFkZCB0aGVtLgorICBhY19saWJvYmpzPSIkYWNfbGlib2JqcyAkYWNfaVwkVS4kYWNfb2JqZXh0IgorICBhY19sdGxpYm9ianM9IiRhY19sdGxpYm9ianMgJGFjX2kiJyRVLmxvJworZG9uZQorTElCT0JKUz0kYWNfbGlib2JqcworCitMVExJQk9CSlM9JGFjX2x0bGlib2JqcworCisKKwogOiAke0NPTkZJR19TVEFUVVM9Li9jb25maWcuc3RhdHVzfQogYWNfY2xlYW5fZmlsZXNfc2F2ZT0kYWNfY2xlYW5fZmlsZXMKIGFjX2NsZWFuX2ZpbGVzPSIkYWNfY2xlYW5fZmlsZXMgJENPTkZJR19TVEFUVVMiCi17IGVjaG8gIiRhc19tZTo1MDY4OiBjcmVhdGluZyAkQ09ORklHX1NUQVRVUyIgPiY1Cit7IGVjaG8gIiRhc19tZTokTElORU5POiBjcmVhdGluZyAkQ09ORklHX1NUQVRVUyIgPiY1CiBlY2hvICIkYXNfbWU6IGNyZWF0aW5nICRDT05GSUdfU1RBVFVTIiA+JjY7fQogY2F0ID4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRgogIyEgJFNIRUxMCi0jIEdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJ5IGNvbmZpZ3VyZS4KKyMgR2VuZXJhdGVkIGJ5ICRhc19tZS4KICMgUnVuIHRoaXMgZmlsZSB0byByZWNyZWF0ZSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLgogIyBDb21waWxlciBvdXRwdXQgcHJvZHVjZWQgYnkgY29uZmlndXJlLCB1c2VmdWwgZm9yIGRlYnVnZ2luZwogIyBjb25maWd1cmUsIGlzIGluIGNvbmZpZy5sb2cgaWYgaXQgZXhpc3RzLgogCiBkZWJ1Zz1mYWxzZQorYWNfY3NfcmVjaGVjaz1mYWxzZQorYWNfY3Nfc2lsZW50PWZhbHNlCiBTSEVMTD1cJHtDT05GSUdfU0hFTEwtJFNIRUxMfQotYWNfY3NfaW52b2NhdGlvbj0iXCQwIFwkQCIKLQogX0FDRU9GCiAKIGNhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgorIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisjIyBNNHNoIEluaXRpYWxpemF0aW9uLiAgIyMKKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworCiAjIEJlIEJvdXJuZSBjb21wYXRpYmxlCiBpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KICAgZW11bGF0ZSBzaAogICBOVUxMQ01EPToKKyAgIyBac2ggMy54IGFuZCA0LnggcGVyZm9ybXMgd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAorICAjIGlzIGNvbnRyYXJ5IHRvIG91ciB1c2FnZS4gIERpc2FibGUgdGhpcyBmZWF0dXJlLgorICBhbGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRAIicKIGVsaWYgdGVzdCAtbiAiJHtCQVNIX1ZFUlNJT04rc2V0fSIgJiYgKHNldCAtbyBwb3NpeCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgIHNldCAtbyBwb3NpeAogZmkKK0RVQUxDQVNFPTE7IGV4cG9ydCBEVUFMQ0FTRSAjIGZvciBNS1Mgc2gKKworIyBTdXBwb3J0IHVuc2V0IHdoZW4gcG9zc2libGUuCitpZiAoIChNQUlMPTYwOyB1bnNldCBNQUlMKSB8fCBleGl0KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgYXNfdW5zZXQ9dW5zZXQKK2Vsc2UKKyAgYXNfdW5zZXQ9ZmFsc2UKK2ZpCisKKworIyBXb3JrIGFyb3VuZCBidWdzIGluIHByZS0zLjAgVVdJTiBrc2guCiskYXNfdW5zZXQgRU5WIE1BSUwgTUFJTFBBVEgKK1BTMT0nJCAnCitQUzI9Jz4gJworUFM0PScrICcKKworIyBOTFMgbnVpc2FuY2VzLgorZm9yIGFzX3ZhciBpbiBcCisgIExBTkcgTEFOR1VBR0UgTENfQUREUkVTUyBMQ19BTEwgTENfQ09MTEFURSBMQ19DVFlQRSBMQ19JREVOVElGSUNBVElPTiBcCisgIExDX01FQVNVUkVNRU5UIExDX01FU1NBR0VTIExDX01PTkVUQVJZIExDX05BTUUgTENfTlVNRVJJQyBMQ19QQVBFUiBcCisgIExDX1RFTEVQSE9ORSBMQ19USU1FCitkbworICBpZiAoc2V0ICt4OyB0ZXN0IC16ICJgKGV2YWwgJGFzX3Zhcj1DOyBleHBvcnQgJGFzX3ZhcikgMj4mMWAiKTsgdGhlbgorICAgIGV2YWwgJGFzX3Zhcj1DOyBleHBvcnQgJGFzX3ZhcgorICBlbHNlCisgICAgJGFzX3Vuc2V0ICRhc192YXIKKyAgZmkKK2RvbmUKKworIyBSZXF1aXJlZCB0byB1c2UgYmFzZW5hbWUuCitpZiBleHByIGEgOiAnXChhXCknID4vZGV2L251bGwgMj4mMTsgdGhlbgorICBhc19leHByPWV4cHIKK2Vsc2UKKyAgYXNfZXhwcj1mYWxzZQorZmkKKworaWYgKGJhc2VuYW1lIC8pID4vZGV2L251bGwgMj4mMSAmJiB0ZXN0ICJYYGJhc2VuYW1lIC8gMj4mMWAiID0gIlgvIjsgdGhlbgorICBhc19iYXNlbmFtZT1iYXNlbmFtZQorZWxzZQorICBhc19iYXNlbmFtZT1mYWxzZQorZmkKKwogCiAjIE5hbWUgb2YgdGhlIGV4ZWN1dGFibGUuCi1hc19tZT1gZWNobyAiJDAiIHxzZWQgJ3MsLipbXFwvXSwsJ2AKK2FzX21lPWAkYXNfYmFzZW5hbWUgIiQwIiB8fAorJGFzX2V4cHIgWC8iJDAiIDogJy4qL1woW14vXVteL10qXCkvKiQnIFx8IFwKKwkgWCIkMCIgOiAnWFwoLy9cKSQnIFx8IFwKKwkgWCIkMCIgOiAnWFwoL1wpJCcgXHwgXAorCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKK2VjaG8gWC8iJDAiIHwKKyAgICBzZWQgJy9eLipcL1woW14vXVteL10qXClcLyokL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwvXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwvXChcL1wpLioveyBzLy9cMS87IHE7IH0KKyAgCSAgcy8uKi8uLzsgcSdgCisKKworIyBQQVRIIG5lZWRzIENSLCBhbmQgTElORU5PIG5lZWRzIENSIGFuZCBQQVRILgorIyBBdm9pZCBkZXBlbmRpbmcgdXBvbiBDaGFyYWN0ZXIgUmFuZ2VzLgorYXNfY3JfbGV0dGVycz0nYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonCithc19jcl9MRVRURVJTPSdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicKK2FzX2NyX0xldHRlcnM9JGFzX2NyX2xldHRlcnMkYXNfY3JfTEVUVEVSUworYXNfY3JfZGlnaXRzPScwMTIzNDU2Nzg5JworYXNfY3JfYWxudW09JGFzX2NyX0xldHRlcnMkYXNfY3JfZGlnaXRzCisKKyMgVGhlIHVzZXIgaXMgYWx3YXlzIHJpZ2h0LgoraWYgdGVzdCAiJHtQQVRIX1NFUEFSQVRPUitzZXR9IiAhPSBzZXQ7IHRoZW4KKyAgZWNobyAiIyEgL2Jpbi9zaCIgPmNvbmYkJC5zaAorICBlY2hvICAiZXhpdCAwIiAgID4+Y29uZiQkLnNoCisgIGNobW9kICt4IGNvbmYkJC5zaAorICBpZiAoUEFUSD0iL25vbmV4aXN0ZW50Oy4iOyBjb25mJCQuc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgorICAgIFBBVEhfU0VQQVJBVE9SPSc7JworICBlbHNlCisgICAgUEFUSF9TRVBBUkFUT1I9OgorICBmaQorICBybSAtZiBjb25mJCQuc2gKK2ZpCisKKworICBhc19saW5lbm9fMT0kTElORU5PCisgIGFzX2xpbmVub18yPSRMSU5FTk8KKyAgYXNfbGluZW5vXzM9YChleHByICRhc19saW5lbm9fMSArIDEpIDI+L2Rldi9udWxsYAorICB0ZXN0ICJ4JGFzX2xpbmVub18xIiAhPSAieCRhc19saW5lbm9fMiIgJiYKKyAgdGVzdCAieCRhc19saW5lbm9fMyIgID0gIngkYXNfbGluZW5vXzIiICB8fCB7CisgICMgRmluZCB3aG8gd2UgYXJlLiAgTG9vayBpbiB0aGUgcGF0aCBpZiB3ZSBjb250YWluIG5vIHBhdGggYXQgYWxsCisgICMgcmVsYXRpdmUgb3Igbm90LgorICBjYXNlICQwIGluCisgICAgKltcXC9dKiApIGFzX215c2VsZj0kMCA7OworICAgICopIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4gJFBBVEgKK2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKyAgdGVzdCAtciAiJGFzX2Rpci8kMCIgJiYgYXNfbXlzZWxmPSRhc19kaXIvJDAgJiYgYnJlYWsKK2RvbmUKKworICAgICAgIDs7CisgIGVzYWMKKyAgIyBXZSBkaWQgbm90IGZpbmQgb3Vyc2VsdmVzLCBtb3N0IHByb2JhYmx5IHdlIHdlcmUgcnVuIGFzIGBzaCBDT01NQU5EJworICAjIGluIHdoaWNoIGNhc2Ugd2UgYXJlIG5vdCB0byBiZSBmb3VuZCBpbiB0aGUgcGF0aC4KKyAgaWYgdGVzdCAieCRhc19teXNlbGYiID0geDsgdGhlbgorICAgIGFzX215c2VsZj0kMAorICBmaQorICBpZiB0ZXN0ICEgLWYgIiRhc19teXNlbGYiOyB0aGVuCisgICAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGZpbmQgbXlzZWxmOyByZXJ1biB3aXRoIGFuIGFic29sdXRlIHBhdGgiID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGZpbmQgbXlzZWxmOyByZXJ1biB3aXRoIGFuIGFic29sdXRlIHBhdGgiID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKyAgZmkKKyAgY2FzZSAkQ09ORklHX1NIRUxMIGluCisgICcnKQorICAgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4gL2JpbiRQQVRIX1NFUEFSQVRPUi91c3IvYmluJFBBVEhfU0VQQVJBVE9SJFBBVEgKK2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKyAgZm9yIGFzX2Jhc2UgaW4gc2ggYmFzaCBrc2ggc2g1OyBkbworCSBjYXNlICRhc19kaXIgaW4KKwkgLyopCisJICAgaWYgKCIkYXNfZGlyLyRhc19iYXNlIiAtYyAnCisgIGFzX2xpbmVub18xPSRMSU5FTk8KKyAgYXNfbGluZW5vXzI9JExJTkVOTworICBhc19saW5lbm9fMz1gKGV4cHIgJGFzX2xpbmVub18xICsgMSkgMj4vZGV2L251bGxgCisgIHRlc3QgIngkYXNfbGluZW5vXzEiICE9ICJ4JGFzX2xpbmVub18yIiAmJgorICB0ZXN0ICJ4JGFzX2xpbmVub18zIiAgPSAieCRhc19saW5lbm9fMiIgJykgMj4vZGV2L251bGw7IHRoZW4KKwkgICAgICRhc191bnNldCBCQVNIX0VOViB8fCB0ZXN0ICIke0JBU0hfRU5WK3NldH0iICE9IHNldCB8fCB7IEJBU0hfRU5WPTsgZXhwb3J0IEJBU0hfRU5WOyB9CisJICAgICAkYXNfdW5zZXQgRU5WIHx8IHRlc3QgIiR7RU5WK3NldH0iICE9IHNldCB8fCB7IEVOVj07IGV4cG9ydCBFTlY7IH0KKwkgICAgIENPTkZJR19TSEVMTD0kYXNfZGlyLyRhc19iYXNlCisJICAgICBleHBvcnQgQ09ORklHX1NIRUxMCisJICAgICBleGVjICIkQ09ORklHX1NIRUxMIiAiJDAiICR7MSsiJEAifQorCSAgIGZpOzsKKwkgZXNhYworICAgICAgIGRvbmUKK2RvbmUKKzs7CisgIGVzYWMKKworICAjIENyZWF0ZSAkYXNfbWUubGluZW5vIGFzIGEgY29weSBvZiAkYXNfbXlzZWxmLCBidXQgd2l0aCAkTElORU5PCisgICMgdW5pZm9ybWx5IHJlcGxhY2VkIGJ5IHRoZSBsaW5lIG51bWJlci4gIFRoZSBmaXJzdCAnc2VkJyBpbnNlcnRzIGEKKyAgIyBsaW5lLW51bWJlciBsaW5lIGJlZm9yZSBlYWNoIGxpbmU7IHRoZSBzZWNvbmQgJ3NlZCcgZG9lcyB0aGUgcmVhbAorICAjIHdvcmsuICBUaGUgc2Vjb25kIHNjcmlwdCB1c2VzICdOJyB0byBwYWlyIGVhY2ggbGluZS1udW1iZXIgbGluZQorICAjIHdpdGggdGhlIG51bWJlcmVkIGxpbmUsIGFuZCBhcHBlbmRzIHRyYWlsaW5nICctJyBkdXJpbmcKKyAgIyBzdWJzdGl0dXRpb24gc28gdGhhdCAkTElORU5PIGlzIG5vdCBhIHNwZWNpYWwgY2FzZSBhdCBsaW5lIGVuZC4KKyAgIyAoUmFqYSBSIEhhcmluYXRoIHN1Z2dlc3RlZCBzZWQgJz0nLCBhbmQgUGF1bCBFZ2dlcnQgd3JvdGUgdGhlCisgICMgc2Vjb25kICdzZWQnIHNjcmlwdC4gIEJsYW1lIExlZSBFLiBNY01haG9uIGZvciBzZWQncyBzeW50YXguICA6LSkKKyAgc2VkICc9JyA8JGFzX215c2VsZiB8CisgICAgc2VkICcKKyAgICAgIE4KKyAgICAgIHMsJCwtLAorICAgICAgOiBsb29wCisgICAgICBzLF5cKFsnJGFzX2NyX2RpZ2l0cyddKlwpXCguKlwpWyRdTElORU5PXChbXickYXNfY3JfYWxudW0nX11cKSxcMVwyXDFcMywKKyAgICAgIHQgbG9vcAorICAgICAgcywtJCwsCisgICAgICBzLF5bJyRhc19jcl9kaWdpdHMnXSpcbiwsCisgICAgJyA+JGFzX21lLmxpbmVubyAmJgorICBjaG1vZCAreCAkYXNfbWUubGluZW5vIHx8CisgICAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSAkYXNfbWUubGluZW5vOyByZXJ1biB3aXRoIGEgUE9TSVggc2hlbGwiID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSAkYXNfbWUubGluZW5vOyByZXJ1biB3aXRoIGEgUE9TSVggc2hlbGwiID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKworICAjIERvbid0IHRyeSB0byBleGVjIGFzIGl0IGNoYW5nZXMgJFswXSwgY2F1c2luZyBhbGwgc29ydCBvZiBwcm9ibGVtcworICAjICh0aGUgZGlybmFtZSBvZiAkWzBdIGlzIG5vdCB0aGUgcGxhY2Ugd2hlcmUgd2UgbWlnaHQgZmluZCB0aGUKKyAgIyBvcmlnaW5hbCBhbmQgc28gb24uICBBdXRvY29uZiBpcyBlc3BlY2lhbGx5IHNlbnNpYmxlIHRvIHRoaXMpLgorICAuIC4vJGFzX21lLmxpbmVubworICAjIEV4aXQgc3RhdHVzIGlzIHRoYXQgb2YgdGhlIGxhc3QgY29tbWFuZC4KKyAgZXhpdAorfQorCisKK2Nhc2UgYGVjaG8gInRlc3RpbmdcYyI7IGVjaG8gMSwyLDNgLGBlY2hvIC1uIHRlc3Rpbmc7IGVjaG8gMSwyLDNgIGluCisgICpjKiwtbiopIEVDSE9fTj0gRUNIT19DPScKKycgRUNIT19UPScJJyA7OworICAqYyosKiAgKSBFQ0hPX049LW4gRUNIT19DPSBFQ0hPX1Q9IDs7CisgICopICAgICAgIEVDSE9fTj0gRUNIT19DPSdcYycgRUNIT19UPSA7OworZXNhYwogCiBpZiBleHByIGEgOiAnXChhXCknID4vZGV2L251bGwgMj4mMTsgdGhlbgogICBhc19leHByPWV4cHIKQEAgLTUxMTYsMjQgKzg0NDAsMjEgQEAKIGZpCiBybSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZmlsZQogCi1hc19leGVjdXRhYmxlX3A9InRlc3QgLWYiCi0KLSMgU3VwcG9ydCB1bnNldCB3aGVuIHBvc3NpYmxlLgotaWYgKEZPTz1GT087IHVuc2V0IEZPTykgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0gIGFzX3Vuc2V0PXVuc2V0CitpZiBta2RpciAtcCAuIDI+L2Rldi9udWxsOyB0aGVuCisgIGFzX21rZGlyX3A9OgogZWxzZQotICBhc191bnNldD1mYWxzZQorICB0ZXN0IC1kIC4vLXAgJiYgcm1kaXIgLi8tcAorICBhc19ta2Rpcl9wPWZhbHNlCiBmaQogCi0jIE5MUyBudWlzYW5jZXMuCi0kYXNfdW5zZXQgTEFORyB8fCB0ZXN0ICIke0xBTkcrc2V0fSIgIT0gc2V0IHx8IHsgTEFORz1DOyBleHBvcnQgTEFORzsgfQotJGFzX3Vuc2V0IExDX0FMTCB8fCB0ZXN0ICIke0xDX0FMTCtzZXR9IiAhPSBzZXQgfHwgeyBMQ19BTEw9QzsgZXhwb3J0IExDX0FMTDsgfQotJGFzX3Vuc2V0IExDX1RJTUUgfHwgdGVzdCAiJHtMQ19USU1FK3NldH0iICE9IHNldCB8fCB7IExDX1RJTUU9QzsgZXhwb3J0IExDX1RJTUU7IH0KLSRhc191bnNldCBMQ19DVFlQRSB8fCB0ZXN0ICIke0xDX0NUWVBFK3NldH0iICE9IHNldCB8fCB7IExDX0NUWVBFPUM7IGV4cG9ydCBMQ19DVFlQRTsgfQotJGFzX3Vuc2V0IExBTkdVQUdFIHx8IHRlc3QgIiR7TEFOR1VBR0Urc2V0fSIgIT0gc2V0IHx8IHsgTEFOR1VBR0U9QzsgZXhwb3J0IExBTkdVQUdFOyB9Ci0kYXNfdW5zZXQgTENfQ09MTEFURSB8fCB0ZXN0ICIke0xDX0NPTExBVEUrc2V0fSIgIT0gc2V0IHx8IHsgTENfQ09MTEFURT1DOyBleHBvcnQgTENfQ09MTEFURTsgfQotJGFzX3Vuc2V0IExDX05VTUVSSUMgfHwgdGVzdCAiJHtMQ19OVU1FUklDK3NldH0iICE9IHNldCB8fCB7IExDX05VTUVSSUM9QzsgZXhwb3J0IExDX05VTUVSSUM7IH0KLSRhc191bnNldCBMQ19NRVNTQUdFUyB8fCB0ZXN0ICIke0xDX01FU1NBR0VTK3NldH0iICE9IHNldCB8fCB7IExDX01FU1NBR0VTPUM7IGV4cG9ydCBMQ19NRVNTQUdFUzsgfQorYXNfZXhlY3V0YWJsZV9wPSJ0ZXN0IC1mIgorCisjIFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgQ1BQIG5hbWUuCithc190cl9jcHA9ImV2YWwgc2VkICd5JSokYXNfY3JfbGV0dGVycyVQJGFzX2NyX0xFVFRFUlMlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgorCisjIFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgdmFyaWFibGUgbmFtZS4KK2FzX3RyX3NoPSJldmFsIHNlZCAneSUqKyVwcCU7cyVbXl8kYXNfY3JfYWxudW1dJV8lZyciCisKIAogIyBJRlMKICMgV2UgbmVlZCBzcGFjZSwgdGFiIGFuZCBuZXcgbGluZSwgaW4gcHJlY2lzZWx5IHRoYXQgb3JkZXIuCkBAIC01MTQyLDEwICs4NDYzLDM0IEBACiBJRlM9IiAJJGFzX25sIgogCiAjIENEUEFUSC4KLSRhc191bnNldCBDRFBBVEggfHwgdGVzdCAiJHtDRFBBVEgrc2V0fSIgIT0gc2V0IHx8IHsgQ0RQQVRIPTo7IGV4cG9ydCBDRFBBVEg7IH0KKyRhc191bnNldCBDRFBBVEgKIAogZXhlYyA2PiYxCiAKKyMgT3BlbiB0aGUgbG9nIHJlYWwgc29vbiwgdG8ga2VlcCBcJFswXSBhbmQgc28gb24gbWVhbmluZ2Z1bCwgYW5kIHRvCisjIHJlcG9ydCBhY3R1YWwgaW5wdXQgdmFsdWVzIG9mIENPTkZJR19GSUxFUyBldGMuIGluc3RlYWQgb2YgdGhlaXIKKyMgdmFsdWVzIGFmdGVyIG9wdGlvbnMgaGFuZGxpbmcuICBMb2dnaW5nIC0tdmVyc2lvbiBldGMuIGlzIE9LLgorZXhlYyA1Pj5jb25maWcubG9nCit7CisgIGVjaG8KKyAgc2VkICdoO3MvLi8tL2c7cy9eLi4uLyMjIC87cy8uLi4kLyAjIy87cDt4O3A7eCcgPDxfQVNCT1gKKyMjIFJ1bm5pbmcgJGFzX21lLiAjIworX0FTQk9YCit9ID4mNQorY2F0ID4mNSA8PF9DU0VPRgorCitUaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IHJlYWRsaW5lICRhc19tZSA1LjEtYmV0YTEsIHdoaWNoIHdhcworZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU5LiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCisKKyAgQ09ORklHX0ZJTEVTICAgID0gJENPTkZJR19GSUxFUworICBDT05GSUdfSEVBREVSUyAgPSAkQ09ORklHX0hFQURFUlMKKyAgQ09ORklHX0xJTktTICAgID0gJENPTkZJR19MSU5LUworICBDT05GSUdfQ09NTUFORFMgPSAkQ09ORklHX0NPTU1BTkRTCisgICQgJDAgJEAKKworX0NTRU9GCitlY2hvICJvbiBgKGhvc3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWAiID4mNQorZWNobyA+JjUKIF9BQ0VPRgogCiAjIEZpbGVzIHRoYXQgY29uZmlnLnN0YXR1cyB3YXMgbWFkZSBmb3IuCkBAIC01MTY1LDcgKzg1MTAsNyBAQAogICBlY2hvICJjb25maWdfY29tbWFuZHM9XCIkYWNfY29uZmlnX2NvbW1hbmRzXCIiID4+JENPTkZJR19TVEFUVVMKIGZpCiAKLWNhdCA+PiRDT05GSUdfU1RBVFVTIDw8XEVPRgorY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCiAKIGFjX2NzX3VzYWdlPSJcCiBcYCRhc19tZScgaW5zdGFudGlhdGVzIGZpbGVzIGZyb20gdGVtcGxhdGVzIGFjY29yZGluZyB0byB0aGUKQEAgLTUxNzUsMTIgKzg1MjAsMTMgQEAKIAogICAtaCwgLS1oZWxwICAgICAgIHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0CiAgIC1WLCAtLXZlcnNpb24gICAgcHJpbnQgdmVyc2lvbiBudW1iZXIsIHRoZW4gZXhpdAorICAtcSwgLS1xdWlldCAgICAgIGRvIG5vdCBwcmludCBwcm9ncmVzcyBtZXNzYWdlcwogICAtZCwgLS1kZWJ1ZyAgICAgIGRvbid0IHJlbW92ZSB0ZW1wb3JhcnkgZmlsZXMKICAgICAgIC0tcmVjaGVjayAgICB1cGRhdGUgJGFzX21lIGJ5IHJlY29uZmlndXJpbmcgaW4gdGhlIHNhbWUgY29uZGl0aW9ucwogICAtLWZpbGU9RklMRVs6VEVNUExBVEVdCi0gICAgICAgICAgICAgICAgICAgaW5zdGFudGlhdGUgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBGSUxFCisJCSAgIGluc3RhbnRpYXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgRklMRQogICAtLWhlYWRlcj1GSUxFWzpURU1QTEFURV0KLSAgICAgICAgICAgICAgICAgICBpbnN0YW50aWF0ZSB0aGUgY29uZmlndXJhdGlvbiBoZWFkZXIgRklMRQorCQkgICBpbnN0YW50aWF0ZSB0aGUgY29uZmlndXJhdGlvbiBoZWFkZXIgRklMRQogCiBDb25maWd1cmF0aW9uIGZpbGVzOgogJGNvbmZpZ19maWxlcwpAQCAtNTE5MiwyMyArODUzOCwyMiBAQAogJGNvbmZpZ19jb21tYW5kcwogCiBSZXBvcnQgYnVncyB0byA8YnVnLWF1dG9jb25mQGdudS5vcmc+LiIKLUVPRgorX0FDRU9GCiAKLWNhdCA+PiRDT05GSUdfU1RBVFVTIDw8RU9GCitjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRgogYWNfY3NfdmVyc2lvbj0iXFwKLXJlYWRsaW5lIGNvbmZpZy5zdGF0dXMgNC4zCi1jb25maWd1cmVkIGJ5ICQwLCBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTIsCityZWFkbGluZSBjb25maWcuc3RhdHVzIDUuMS1iZXRhMQorY29uZmlndXJlZCBieSAkMCwgZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU5LAogICB3aXRoIG9wdGlvbnMgXFwiYGVjaG8gIiRhY19jb25maWd1cmVfYXJncyIgfCBzZWQgJ3MvW1xcIiJcYFwkXS9cXFxcJi9nJ2BcXCIKIAotQ29weXJpZ2h0IDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEKLUZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorQ29weXJpZ2h0IChDKSAyMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogVGhpcyBjb25maWcuc3RhdHVzIHNjcmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCiBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuIgogc3JjZGlyPSRzcmNkaXIKIElOU1RBTEw9IiRJTlNUQUxMIgotRU9GCitfQUNFT0YKIAotY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcRU9GCitjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKICMgSWYgbm8gZmlsZSBhcmUgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLCB0aGVuIHdlIG5lZWQgdG8gcHJvdmlkZSBkZWZhdWx0CiAjIHZhbHVlLiAgQnkgd2UgbmVlZCB0byBrbm93IGlmIGZpbGVzIHdlcmUgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLgogYWNfbmVlZF9kZWZhdWx0cz06CkBAIC01MjE4LDMwICs4NTYzLDMwIEBACiAgIC0tKj0qKQogICAgIGFjX29wdGlvbj1gZXhwciAieCQxIiA6ICd4XChbXj1dKlwpPSdgCiAgICAgYWNfb3B0YXJnPWBleHByICJ4JDEiIDogJ3hbXj1dKj1cKC4qXCknYAotICAgIHNoaWZ0Ci0gICAgc2V0IGR1bW15ICIkYWNfb3B0aW9uIiAiJGFjX29wdGFyZyIgJHsxKyIkQCJ9Ci0gICAgc2hpZnQKKyAgICBhY19zaGlmdD06CiAgICAgOzsKLSAgLSopOzsKKyAgLSopCisgICAgYWNfb3B0aW9uPSQxCisgICAgYWNfb3B0YXJnPSQyCisgICAgYWNfc2hpZnQ9c2hpZnQKKyAgICA7OwogICAqKSAjIFRoaXMgaXMgbm90IGFuIG9wdGlvbiwgc28gdGhlIHVzZXIgaGFzIHByb2JhYmx5IGdpdmVuIGV4cGxpY2l0CiAgICAgICMgYXJndW1lbnRzLgorICAgICBhY19vcHRpb249JDEKICAgICAgYWNfbmVlZF9kZWZhdWx0cz1mYWxzZTs7CiAgIGVzYWMKIAotICBjYXNlICQxIGluCisgIGNhc2UgJGFjX29wdGlvbiBpbgogICAjIEhhbmRsaW5nIG9mIHRoZSBvcHRpb25zLgotRU9GCi1jYXQgPj4kQ09ORklHX1NUQVRVUyA8PEVPRgorX0FDRU9GCitjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKICAgLXJlY2hlY2sgfCAtLXJlY2hlY2sgfCAtLXJlY2hlYyB8IC0tcmVjaGUgfCAtLXJlY2ggfCAtLXJlYyB8IC0tcmUgfCAtLXIpCi0gICAgZWNobyAicnVubmluZyAkU0hFTEwgJDAgIiAkYWNfY29uZmlndXJlX2FyZ3MgIiAtLW5vLWNyZWF0ZSAtLW5vLXJlY3Vyc2lvbiIKLSAgICBleGVjICRTSEVMTCAkMCAkYWNfY29uZmlndXJlX2FyZ3MgLS1uby1jcmVhdGUgLS1uby1yZWN1cnNpb24gOzsKLUVPRgotY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcRU9GCisgICAgYWNfY3NfcmVjaGVjaz06IDs7CiAgIC0tdmVyc2lvbiB8IC0tdmVycyogfCAtViApCiAgICAgZWNobyAiJGFjX2NzX3ZlcnNpb24iOyBleGl0IDAgOzsKICAgLS1oZSB8IC0taCkKICAgICAjIENvbmZsaWN0IGJldHdlZW4gLS1oZWxwIGFuZCAtLWhlYWRlcgotICAgIHsgeyBlY2hvICIkYXNfbWU6NTI0NDogZXJyb3I6IGFtYmlndW91cyBvcHRpb246ICQxCisgICAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogYW1iaWd1b3VzIG9wdGlvbjogJDEKIFRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiA+JjUKIGVjaG8gIiRhc19tZTogZXJyb3I6IGFtYmlndW91cyBvcHRpb246ICQxCiBUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiYyO30KQEAgLTUyNTEsMTYgKzg1OTYsMTkgQEAKICAgLS1kZWJ1ZyB8IC0tZCogfCAtZCApCiAgICAgZGVidWc9OiA7OwogICAtLWZpbGUgfCAtLWZpbCB8IC0tZmkgfCAtLWYgKQotICAgIHNoaWZ0Ci0gICAgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTICQxIgorICAgICRhY19zaGlmdAorICAgIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyAkYWNfb3B0YXJnIgogICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2U7OwogICAtLWhlYWRlciB8IC0taGVhZGUgfCAtLWhlYWQgfCAtLWhlYSApCi0gICAgc2hpZnQKLSAgICBDT05GSUdfSEVBREVSUz0iJENPTkZJR19IRUFERVJTICQxIgorICAgICRhY19zaGlmdAorICAgIENPTkZJR19IRUFERVJTPSIkQ09ORklHX0hFQURFUlMgJGFjX29wdGFyZyIKICAgICBhY19uZWVkX2RlZmF1bHRzPWZhbHNlOzsKKyAgLXEgfCAtcXVpZXQgfCAtLXF1aWV0IHwgLS1xdWllIHwgLS1xdWkgfCAtLXF1IHwgLS1xIFwKKyAgfCAtc2lsZW50IHwgLS1zaWxlbnQgfCAtLXNpbGVuIHwgLS1zaWxlIHwgLS1zaWwgfCAtLXNpIHwgLS1zKQorICAgIGFjX2NzX3NpbGVudD06IDs7CiAKICAgIyBUaGlzIGlzIGFuIGVycm9yLgotICAtKikgeyB7IGVjaG8gIiRhc19tZTo1MjYzOiBlcnJvcjogdW5yZWNvZ25pemVkIG9wdGlvbjogJDEKKyAgLSopIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IHVucmVjb2duaXplZCBvcHRpb246ICQxCiBUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiY1CiBlY2hvICIkYXNfbWU6IGVycm9yOiB1bnJlY29nbml6ZWQgb3B0aW9uOiAkMQogVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mMjt9CkBAIC01MjcyLDI1ICs4NjIwLDI3IEBACiAgIHNoaWZ0CiBkb25lCiAKLWV4ZWMgNT4+Y29uZmlnLmxvZwotY2F0ID4mNSA8PCBfQUNFT0YKK2FjX2NvbmZpZ3VyZV9leHRyYV9hcmdzPQogCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotIyMgUnVubmluZyBjb25maWcuc3RhdHVzLiAgIyMKLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0KLVRoaXMgZmlsZSB3YXMgZXh0ZW5kZWQgYnkgJGFzX21lIChyZWFkbGluZSA0LjMpIDIuNTIsIGV4ZWN1dGVkIHdpdGgKLSAgQ09ORklHX0ZJTEVTICAgID0gJENPTkZJR19GSUxFUwotICBDT05GSUdfSEVBREVSUyAgPSAkQ09ORklHX0hFQURFUlMKLSAgQ09ORklHX0xJTktTICAgID0gJENPTkZJR19MSU5LUwotICBDT05GSUdfQ09NTUFORFMgPSAkQ09ORklHX0NPTU1BTkRTCi0gID4gJGFjX2NzX2ludm9jYXRpb24KLW9uIGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYAoraWYgJGFjX2NzX3NpbGVudDsgdGhlbgorICBleGVjIDY+L2Rldi9udWxsCisgIGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzPSIkYWNfY29uZmlndXJlX2V4dHJhX2FyZ3MgLS1zaWxlbnQiCitmaQogCiBfQUNFT0YKLUVPRgorY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YKK2lmIFwkYWNfY3NfcmVjaGVjazsgdGhlbgorICBlY2hvICJydW5uaW5nICRTSEVMTCAkMCAiICRhY19jb25maWd1cmVfYXJncyBcJGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzICIgLS1uby1jcmVhdGUgLS1uby1yZWN1cnNpb24iID4mNgorICBleGVjICRTSEVMTCAkMCAkYWNfY29uZmlndXJlX2FyZ3MgXCRhY19jb25maWd1cmVfZXh0cmFfYXJncyAtLW5vLWNyZWF0ZSAtLW5vLXJlY3Vyc2lvbgorZmkKIAotY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcRU9GCitfQUNFT0YKKworCisKKworCitjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKIGZvciBhY19jb25maWdfdGFyZ2V0IGluICRhY19jb25maWdfdGFyZ2V0cwogZG8KICAgY2FzZSAiJGFjX2NvbmZpZ190YXJnZXQiIGluCkBAIC01MzAxLDcgKzg2NTEsNyBAQAogICAic2hsaWIvTWFrZWZpbGUiICkgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNobGliL01ha2VmaWxlIiA7OwogICAiZGVmYXVsdCIgKSBDT05GSUdfQ09NTUFORFM9IiRDT05GSUdfQ09NTUFORFMgZGVmYXVsdCIgOzsKICAgImNvbmZpZy5oIiApIENPTkZJR19IRUFERVJTPSIkQ09ORklHX0hFQURFUlMgY29uZmlnLmgiIDs7Ci0gICopIHsgeyBlY2hvICIkYXNfbWU6NTMwNDogZXJyb3I6IGludmFsaWQgYXJndW1lbnQ6ICRhY19jb25maWdfdGFyZ2V0IiA+JjUKKyAgKikgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW52YWxpZCBhcmd1bWVudDogJGFjX2NvbmZpZ190YXJnZXQiID4mNQogZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCBhcmd1bWVudDogJGFjX2NvbmZpZ190YXJnZXQiID4mMjt9CiAgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OwogICBlc2FjCkBAIC01MzE3LDYgKzg2NjcsOSBAQAogICB0ZXN0ICIke0NPTkZJR19DT01NQU5EUytzZXR9IiA9IHNldCB8fCBDT05GSUdfQ09NTUFORFM9JGNvbmZpZ19jb21tYW5kcwogZmkKIAorIyBIYXZlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBmb3IgY29udmVuaWVuY2UuICBNYWtlIGl0IGluIHRoZSBidWlsZCB0cmVlCisjIHNpbXBseSBiZWNhdXNlIHRoZXJlIGlzIG5vIHJlYXNvbiB0byBwdXQgaXQgaGVyZSwgYW5kIGluIGFkZGl0aW9uLAorIyBjcmVhdGluZyBhbmQgbW92aW5nIGZpbGVzIGZyb20gL3RtcCBjYW4gc29tZXRpbWVzIGNhdXNlIHByb2JsZW1zLgogIyBDcmVhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5LCBhbmQgaG9vayBmb3IgaXRzIHJlbW92YWwgdW5sZXNzIGRlYnVnZ2luZy4KICRkZWJ1ZyB8fAogewpAQCAtNTMyNSwyMyArODY3OCwyMyBAQAogfQogCiAjIENyZWF0ZSBhIChzZWN1cmUpIHRtcCBkaXJlY3RvcnkgZm9yIHRtcCBmaWxlcy4KLTogJHtUTVBESVI9L3RtcH0KKwogewotICB0bXA9YCh1bWFzayAwNzcgJiYgbWt0ZW1wIC1kIC1xICIkVE1QRElSL2NzWFhYWFhYIikgMj4vZGV2L251bGxgICYmCisgIHRtcD1gKHVtYXNrIDA3NyAmJiBta3RlbXAgLWQgLXEgIi4vY29uZnN0YXRYWFhYWFgiKSAyPi9kZXYvbnVsbGAgJiYKICAgdGVzdCAtbiAiJHRtcCIgJiYgdGVzdCAtZCAiJHRtcCIKIH0gIHx8CiB7Ci0gIHRtcD0kVE1QRElSL2NzJCQtJFJBTkRPTQorICB0bXA9Li9jb25mc3RhdCQkLSRSQU5ET00KICAgKHVtYXNrIDA3NyAmJiBta2RpciAkdG1wKQogfSB8fAogewotICAgZWNobyAiJG1lOiBjYW5ub3QgY3JlYXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpbiAkVE1QRElSIiA+JjIKKyAgIGVjaG8gIiRtZTogY2Fubm90IGNyZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgaW4gLiIgPiYyCiAgICB7IChleGl0IDEpOyBleGl0IDE7IH0KIH0KIAotRU9GCitfQUNFT0YKIAotY2F0ID4+JENPTkZJR19TVEFUVVMgPDxFT0YKK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GCiAKICMKICMgQ09ORklHX0ZJTEVTIHNlY3Rpb24uCkBAIC01MzU0LDYgKzg3MDcsMTIgQEAKICAgc2VkICdzLyxAL0BALzsgcy9ALC9AQC87IHMvLDt0IHRcJC9AO3QgdC87IC9AO3QgdFwkL3MvW1xcXFwmLF0vXFxcXCYvZzsKICAgIHMvQEAvLEAvOyBzL0BAL0AsLzsgcy9AO3QgdFwkLyw7dCB0LycgPlwkdG1wL3N1YnMuc2VkIDw8XFxDRU9GCiBzLEBTSEVMTEAsJFNIRUxMLDt0IHQKK3MsQFBBVEhfU0VQQVJBVE9SQCwkUEFUSF9TRVBBUkFUT1IsO3QgdAorcyxAUEFDS0FHRV9OQU1FQCwkUEFDS0FHRV9OQU1FLDt0IHQKK3MsQFBBQ0tBR0VfVEFSTkFNRUAsJFBBQ0tBR0VfVEFSTkFNRSw7dCB0CitzLEBQQUNLQUdFX1ZFUlNJT05ALCRQQUNLQUdFX1ZFUlNJT04sO3QgdAorcyxAUEFDS0FHRV9TVFJJTkdALCRQQUNLQUdFX1NUUklORyw7dCB0CitzLEBQQUNLQUdFX0JVR1JFUE9SVEAsJFBBQ0tBR0VfQlVHUkVQT1JULDt0IHQKIHMsQGV4ZWNfcHJlZml4QCwkZXhlY19wcmVmaXgsO3QgdAogcyxAcHJlZml4QCwkcHJlZml4LDt0IHQKIHMsQHByb2dyYW1fdHJhbnNmb3JtX25hbWVALCRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lLDt0IHQKQEAgLTUzNjksMTkgKzg3MjgsMTMgQEAKIHMsQG9sZGluY2x1ZGVkaXJALCRvbGRpbmNsdWRlZGlyLDt0IHQKIHMsQGluZm9kaXJALCRpbmZvZGlyLDt0IHQKIHMsQG1hbmRpckAsJG1hbmRpciw7dCB0Ci1zLEBQQUNLQUdFX05BTUVALCRQQUNLQUdFX05BTUUsO3QgdAotcyxAUEFDS0FHRV9UQVJOQU1FQCwkUEFDS0FHRV9UQVJOQU1FLDt0IHQKLXMsQFBBQ0tBR0VfVkVSU0lPTkAsJFBBQ0tBR0VfVkVSU0lPTiw7dCB0Ci1zLEBQQUNLQUdFX1NUUklOR0AsJFBBQ0tBR0VfU1RSSU5HLDt0IHQKLXMsQFBBQ0tBR0VfQlVHUkVQT1JUQCwkUEFDS0FHRV9CVUdSRVBPUlQsO3QgdAogcyxAYnVpbGRfYWxpYXNALCRidWlsZF9hbGlhcyw7dCB0CiBzLEBob3N0X2FsaWFzQCwkaG9zdF9hbGlhcyw7dCB0CiBzLEB0YXJnZXRfYWxpYXNALCR0YXJnZXRfYWxpYXMsO3QgdAorcyxAREVGU0AsJERFRlMsO3QgdAogcyxARUNIT19DQCwkRUNIT19DLDt0IHQKIHMsQEVDSE9fTkAsJEVDSE9fTiw7dCB0CiBzLEBFQ0hPX1RALCRFQ0hPX1QsO3QgdAotcyxAUEFUSF9TRVBBUkFUT1JALCRQQVRIX1NFUEFSQVRPUiw7dCB0Ci1zLEBERUZTQCwkREVGUyw7dCB0CiBzLEBMSUJTQCwkTElCUyw7dCB0CiBzLEBidWlsZEAsJGJ1aWxkLDt0IHQKIHMsQGJ1aWxkX2NwdUAsJGJ1aWxkX2NwdSw7dCB0CkBAIC01MzkxLDYgKzg3NDQsNyBAQAogcyxAaG9zdF9jcHVALCRob3N0X2NwdSw7dCB0CiBzLEBob3N0X3ZlbmRvckAsJGhvc3RfdmVuZG9yLDt0IHQKIHMsQGhvc3Rfb3NALCRob3N0X29zLDt0IHQKK3MsQENST1NTX0NPTVBJTEVALCRDUk9TU19DT01QSUxFLDt0IHQKIHMsQFNFVF9NQUtFQCwkU0VUX01BS0UsO3QgdAogcyxAQ0NALCRDQyw7dCB0CiBzLEBDRkxBR1NALCRDRkxBR1MsO3QgdApAQCAtNTQwMCw2ICs4NzU0LDcgQEAKIHMsQEVYRUVYVEAsJEVYRUVYVCw7dCB0CiBzLEBPQkpFWFRALCRPQkpFWFQsO3QgdAogcyxAQ1BQQCwkQ1BQLDt0IHQKK3MsQEVHUkVQQCwkRUdSRVAsO3QgdAogcyxASU5TVEFMTF9QUk9HUkFNQCwkSU5TVEFMTF9QUk9HUkFNLDt0IHQKIHMsQElOU1RBTExfU0NSSVBUQCwkSU5TVEFMTF9TQ1JJUFQsO3QgdAogcyxASU5TVEFMTF9EQVRBQCwkSU5TVEFMTF9EQVRBLDt0IHQKQEAgLTU0MTYsOCArODc3MSwxMSBAQAogcyxAU0hPQkpfU1RBVFVTQCwkU0hPQkpfU1RBVFVTLDt0IHQKIHMsQFNITElCX1NUQVRVU0AsJFNITElCX1NUQVRVUyw7dCB0CiBzLEBTSExJQl9YTERGTEFHU0AsJFNITElCX1hMREZMQUdTLDt0IHQKK3MsQFNITElCX0RPVEAsJFNITElCX0RPVCw7dCB0CitzLEBTSExJQl9MSUJQUkVGQCwkU0hMSUJfTElCUFJFRiw7dCB0CiBzLEBTSExJQl9MSUJTVUZGQCwkU0hMSUJfTElCU1VGRiw7dCB0CiBzLEBTSExJQl9MSUJWRVJTSU9OQCwkU0hMSUJfTElCVkVSU0lPTiw7dCB0CitzLEBTSExJQl9ETExWRVJTSU9OQCwkU0hMSUJfRExMVkVSU0lPTiw7dCB0CiBzLEBTSExJQl9MSUJTQCwkU0hMSUJfTElCUyw7dCB0CiBzLEBTSExJQl9NQUpPUkAsJFNITElCX01BSk9SLDt0IHQKIHMsQFNITElCX01JTk9SQCwkU0hMSUJfTUlOT1IsO3QgdApAQCAtNTQyNSw2ICs4NzgzLDcgQEAKIHMsQFNIQVJFRF9UQVJHRVRALCRTSEFSRURfVEFSR0VULDt0IHQKIHMsQFNUQVRJQ19JTlNUQUxMX1RBUkdFVEAsJFNUQVRJQ19JTlNUQUxMX1RBUkdFVCw7dCB0CiBzLEBTSEFSRURfSU5TVEFMTF9UQVJHRVRALCRTSEFSRURfSU5TVEFMTF9UQVJHRVQsO3QgdAorcyxAUFVSSUZZQCwkUFVSSUZZLDt0IHQKIHMsQEJVSUxEX0RJUkAsJEJVSUxEX0RJUiw7dCB0CiBzLEBMT0NBTF9DRkxBR1NALCRMT0NBTF9DRkxBR1MsO3QgdAogcyxATE9DQUxfTERGTEFHU0AsJExPQ0FMX0xERkxBR1MsO3QgdApAQCAtNTQzMiwxMSArODc5MSwxMyBAQAogcyxAQVJGTEFHU0AsJEFSRkxBR1MsO3QgdAogcyxATElCVkVSU0lPTkAsJExJQlZFUlNJT04sO3QgdAogcyxAVEVSTUNBUF9MSUJALCRURVJNQ0FQX0xJQiw7dCB0CitzLEBMSUJPQkpTQCwkTElCT0JKUyw7dCB0CitzLEBMVExJQk9CSlNALCRMVExJQk9CSlMsO3QgdAogQ0VPRgogCi1FT0YKK19BQ0VPRgogCi0gIGNhdCA+PiRDT05GSUdfU1RBVFVTIDw8XEVPRgorICBjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKICAgIyBTcGxpdCB0aGUgc3Vic3RpdHV0aW9ucyBpbnRvIGJpdGUtc2l6ZWQgcGllY2VzIGZvciBzZWRzIHdpdGgKICAgIyBzbWFsbCBjb21tYW5kIG51bWJlciBsaW1pdHMsIGxpa2Ugb24gRGlnaXRhbCBPU0YvMSBhbmQgSFAtVVguCiAgIGFjX21heF9zZWRfbGluZXM9NDgKQEAgLTU0NjEsOSArODgyMiw5IEBACiAgICAgICAoZWNobyAnOnQKICAgL0BbYS16QS1aX11bYS16QS1aXzAtOV0qQC8hYicgJiYgY2F0ICR0bXAvc3Vicy5mcmFnKSA+JHRtcC9zdWJzLSRhY19zZWRfZnJhZy5zZWQKICAgICAgIGlmIHRlc3QgLXogIiRhY19zZWRfY21kcyI7IHRoZW4KLSAgCWFjX3NlZF9jbWRzPSJzZWQgLWYgJHRtcC9zdWJzLSRhY19zZWRfZnJhZy5zZWQiCisJYWNfc2VkX2NtZHM9InNlZCAtZiAkdG1wL3N1YnMtJGFjX3NlZF9mcmFnLnNlZCIKICAgICAgIGVsc2UKLSAgCWFjX3NlZF9jbWRzPSIkYWNfc2VkX2NtZHMgfCBzZWQgLWYgJHRtcC9zdWJzLSRhY19zZWRfZnJhZy5zZWQiCisJYWNfc2VkX2NtZHM9IiRhY19zZWRfY21kcyB8IHNlZCAtZiAkdG1wL3N1YnMtJGFjX3NlZF9mcmFnLnNlZCIKICAgICAgIGZpCiAgICAgICBhY19zZWRfZnJhZz1gZXhwciAkYWNfc2VkX2ZyYWcgKyAxYAogICAgICAgYWNfYmVnPSRhY19lbmQKQEAgLTU0NzUsODYgKzg4MzYsMTQ0IEBACiAgIGZpCiBmaSAjIHRlc3QgLW4gIiRDT05GSUdfRklMRVMiCiAKLUVPRgotY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcRU9GCitfQUNFT0YKK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgogZm9yIGFjX2ZpbGUgaW4gOiAkQ09ORklHX0ZJTEVTOyBkbyB0ZXN0ICJ4JGFjX2ZpbGUiID0geDogJiYgY29udGludWUKICAgIyBTdXBwb3J0ICJvdXRmaWxlWzppbmZpbGVbOmluZmlsZS4uLl1dIiwgZGVmYXVsdGluZyBpbmZpbGU9Im91dGZpbGUuaW4iLgogICBjYXNlICRhY19maWxlIGluCiAgIC0gfCAqOi0gfCAqOi06KiApICMgaW5wdXQgZnJvbSBzdGRpbgotICAgICAgICBjYXQgPiR0bXAvc3RkaW4KLSAgICAgICAgYWNfZmlsZV9pbj1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLFteOl0qOiwsJ2AKLSAgICAgICAgYWNfZmlsZT1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLDouKiwsJ2AgOzsKKwljYXQgPiR0bXAvc3RkaW4KKwlhY19maWxlX2luPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsW146XSo6LCwnYAorCWFjX2ZpbGU9YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyw6LiosLCdgIDs7CiAgICo6KiApIGFjX2ZpbGVfaW49YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyxbXjpdKjosLCdgCi0gICAgICAgIGFjX2ZpbGU9YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyw6LiosLCdgIDs7CisJYWNfZmlsZT1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLDouKiwsJ2AgOzsKICAgKiApICAgYWNfZmlsZV9pbj0kYWNfZmlsZS5pbiA7OwogICBlc2FjCiAKICAgIyBDb21wdXRlIEBzcmNkaXJALCBAdG9wX3NyY2RpckAsIGFuZCBASU5TVEFMTEAgZm9yIHN1YmRpcmVjdG9yaWVzLgotICBhY19kaXI9YCRhc19leHByIFgiJGFjX2ZpbGUiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0gICAgICAgICBYIiRhY19maWxlIiA6ICdYXCgvL1wpW14vXScgXHwgXAotICAgICAgICAgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKSQnIFx8IFwKLSAgICAgICAgIFgiJGFjX2ZpbGUiIDogJ1hcKC9cKScgXHwgXAotICAgICAgICAgLiAgICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8CisgIGFjX2Rpcj1gKGRpcm5hbWUgIiRhY19maWxlIikgMj4vZGV2L251bGwgfHwKKyRhc19leHByIFgiJGFjX2ZpbGUiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisJIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisJIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXCkkJyBcfCBcCisJIFgiJGFjX2ZpbGUiIDogJ1hcKC9cKScgXHwgXAorCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKIGVjaG8gWCIkYWNfZmlsZSIgfAogICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQogICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQogICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KICAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KICAgCSAgcy8uKi8uLzsgcSdgCi0gIGlmIHRlc3QgIiRhY19kaXIiICE9ICIkYWNfZmlsZSIgJiYgdGVzdCAiJGFjX2RpciIgIT0gLjsgdGhlbgotICAgIHsgY2FzZSAiJGFjX2RpciIgaW4KLSAgW1xcL10qIHwgPzpbXFwvXSogKSBhc19pbmNyX2Rpcj07OwotICAqKSAgICAgICAgICAgICAgICAgICAgICBhc19pbmNyX2Rpcj0uOzsKLWVzYWMKLWFzX2R1bW15PSIkYWNfZGlyIgotZm9yIGFzX21rZGlyX2RpciBpbiBgSUZTPScvXFwnOyBzZXQgWCAkYXNfZHVtbXk7IHNoaWZ0OyBlY2hvICIkQCJgOyBkbwotICBjYXNlICRhc19ta2Rpcl9kaXIgaW4KLSAgICAjIFNraXAgRE9TIGRyaXZlc3BlYwotICAgID86KSBhc19pbmNyX2Rpcj0kYXNfbWtkaXJfZGlyIDs7Ci0gICAgKikKLSAgICAgIGFzX2luY3JfZGlyPSRhc19pbmNyX2Rpci8kYXNfbWtkaXJfZGlyCi0gICAgICB0ZXN0IC1kICIkYXNfaW5jcl9kaXIiIHx8IG1rZGlyICIkYXNfaW5jcl9kaXIiCi0gICAgOzsKLSAgZXNhYwotZG9uZTsgfQotCi0gICAgYWNfZGlyX3N1ZmZpeD0iL2BlY2hvICRhY19kaXJ8c2VkICdzLF5cLi8sLCdgIgotICAgICMgQSAiLi4vIiBmb3IgZWFjaCBkaXJlY3RvcnkgaW4gJGFjX2Rpcl9zdWZmaXguCi0gICAgYWNfZG90cz1gZWNobyAiJGFjX2Rpcl9zdWZmaXgiIHwgc2VkICdzLC9bXi9dKiwuLi8sZydgCisgIHsgaWYgJGFzX21rZGlyX3A7IHRoZW4KKyAgICBta2RpciAtcCAiJGFjX2RpciIKICAgZWxzZQotICAgIGFjX2Rpcl9zdWZmaXg9IGFjX2RvdHM9Ci0gIGZpCisgICAgYXNfZGlyPSIkYWNfZGlyIgorICAgIGFzX2RpcnM9CisgICAgd2hpbGUgdGVzdCAhIC1kICIkYXNfZGlyIjsgZG8KKyAgICAgIGFzX2RpcnM9IiRhc19kaXIgJGFzX2RpcnMiCisgICAgICBhc19kaXI9YChkaXJuYW1lICIkYXNfZGlyIikgMj4vZGV2L251bGwgfHwKKyRhc19leHByIFgiJGFzX2RpciIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpW14vXScgXHwgXAorCSBYIiRhc19kaXIiIDogJ1hcKC8vXCkkJyBcfCBcCisJIFgiJGFzX2RpciIgOiAnWFwoL1wpJyBcfCBcCisJIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAorZWNobyBYIiRhc19kaXIiIHwKKyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXChcL1wvXClbXi9dLioveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9CisgIAkgIHMvLiovLi87IHEnYAorICAgIGRvbmUKKyAgICB0ZXN0ICEgLW4gIiRhc19kaXJzIiB8fCBta2RpciAkYXNfZGlycworICBmaSB8fCB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiRhY19kaXJcIiIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSBcIiRhY19kaXJcIiIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTsgfQogCi0gIGNhc2UgJHNyY2RpciBpbgotICAuKSAgYWNfc3JjZGlyPS4KLSAgICAgIGlmIHRlc3QgLXogIiRhY19kb3RzIjsgdGhlbgotICAgICAgICAgYWNfdG9wX3NyY2Rpcj0uCi0gICAgICBlbHNlCi0gICAgICAgICBhY190b3Bfc3JjZGlyPWBlY2hvICRhY19kb3RzIHwgc2VkICdzLC8kLCwnYAotICAgICAgZmkgOzsKLSAgW1xcL10qIHwgPzpbXFwvXSogKQotICAgICAgYWNfc3JjZGlyPSRzcmNkaXIkYWNfZGlyX3N1ZmZpeDsKLSAgICAgIGFjX3RvcF9zcmNkaXI9JHNyY2RpciA7OworICBhY19idWlsZGRpcj0uCisKK2lmIHRlc3QgIiRhY19kaXIiICE9IC47IHRoZW4KKyAgYWNfZGlyX3N1ZmZpeD0vYGVjaG8gIiRhY19kaXIiIHwgc2VkICdzLF5cLltcXC9dLCwnYAorICAjIEEgIi4uLyIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4LgorICBhY190b3BfYnVpbGRkaXI9YGVjaG8gIiRhY19kaXJfc3VmZml4IiB8IHNlZCAncywvW15cXC9dKiwuLi8sZydgCitlbHNlCisgIGFjX2Rpcl9zdWZmaXg9IGFjX3RvcF9idWlsZGRpcj0KK2ZpCisKK2Nhc2UgJHNyY2RpciBpbgorICAuKSAgIyBObyAtLXNyY2RpciBvcHRpb24uICBXZSBhcmUgYnVpbGRpbmcgaW4gcGxhY2UuCisgICAgYWNfc3JjZGlyPS4KKyAgICBpZiB0ZXN0IC16ICIkYWNfdG9wX2J1aWxkZGlyIjsgdGhlbgorICAgICAgIGFjX3RvcF9zcmNkaXI9LgorICAgIGVsc2UKKyAgICAgICBhY190b3Bfc3JjZGlyPWBlY2hvICRhY190b3BfYnVpbGRkaXIgfCBzZWQgJ3MsLyQsLCdgCisgICAgZmkgOzsKKyAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBBYnNvbHV0ZSBwYXRoLgorICAgIGFjX3NyY2Rpcj0kc3JjZGlyJGFjX2Rpcl9zdWZmaXg7CisgICAgYWNfdG9wX3NyY2Rpcj0kc3JjZGlyIDs7CiAgICopICMgUmVsYXRpdmUgcGF0aC4KLSAgICBhY19zcmNkaXI9JGFjX2RvdHMkc3JjZGlyJGFjX2Rpcl9zdWZmaXgKLSAgICBhY190b3Bfc3JjZGlyPSRhY19kb3RzJHNyY2RpciA7OwotICBlc2FjCisgICAgYWNfc3JjZGlyPSRhY190b3BfYnVpbGRkaXIkc3JjZGlyJGFjX2Rpcl9zdWZmaXgKKyAgICBhY190b3Bfc3JjZGlyPSRhY190b3BfYnVpbGRkaXIkc3JjZGlyIDs7Citlc2FjCisKKyMgRG8gbm90IHVzZSBgY2QgZm9vICYmIHB3ZGAgdG8gY29tcHV0ZSBhYnNvbHV0ZSBwYXRocywgYmVjYXVzZQorIyB0aGUgZGlyZWN0b3JpZXMgbWF5IG5vdCBleGlzdC4KK2Nhc2UgYHB3ZGAgaW4KKy4pIGFjX2Fic19idWlsZGRpcj0iJGFjX2RpciI7OworKikKKyAgY2FzZSAiJGFjX2RpciIgaW4KKyAgLikgYWNfYWJzX2J1aWxkZGlyPWBwd2RgOzsKKyAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfYnVpbGRkaXI9IiRhY19kaXIiOzsKKyAgKikgYWNfYWJzX2J1aWxkZGlyPWBwd2RgLyIkYWNfZGlyIjs7CisgIGVzYWM7OworZXNhYworY2FzZSAkYWNfYWJzX2J1aWxkZGlyIGluCisuKSBhY19hYnNfdG9wX2J1aWxkZGlyPSR7YWNfdG9wX2J1aWxkZGlyfS47OworKikKKyAgY2FzZSAke2FjX3RvcF9idWlsZGRpcn0uIGluCisgIC4pIGFjX2Fic190b3BfYnVpbGRkaXI9JGFjX2Fic19idWlsZGRpcjs7CisgIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX3RvcF9idWlsZGRpcj0ke2FjX3RvcF9idWlsZGRpcn0uOzsKKyAgKikgYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfYWJzX2J1aWxkZGlyLyR7YWNfdG9wX2J1aWxkZGlyfS47OworICBlc2FjOzsKK2VzYWMKK2Nhc2UgJGFjX2Fic19idWlsZGRpciBpbgorLikgYWNfYWJzX3NyY2Rpcj0kYWNfc3JjZGlyOzsKKyopCisgIGNhc2UgJGFjX3NyY2RpciBpbgorICAuKSBhY19hYnNfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXI7OworICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic19zcmNkaXI9JGFjX3NyY2Rpcjs7CisgICopIGFjX2Fic19zcmNkaXI9JGFjX2Fic19idWlsZGRpci8kYWNfc3JjZGlyOzsKKyAgZXNhYzs7Citlc2FjCitjYXNlICRhY19hYnNfYnVpbGRkaXIgaW4KKy4pIGFjX2Fic190b3Bfc3JjZGlyPSRhY190b3Bfc3JjZGlyOzsKKyopCisgIGNhc2UgJGFjX3RvcF9zcmNkaXIgaW4KKyAgLikgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX2Fic19idWlsZGRpcjs7CisgIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3RvcF9zcmNkaXI7OworICAqKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyLyRhY190b3Bfc3JjZGlyOzsKKyAgZXNhYzs7Citlc2FjCisKIAogICBjYXNlICRJTlNUQUxMIGluCiAgIFtcXC8kXSogfCA/OltcXC9dKiApIGFjX0lOU1RBTEw9JElOU1RBTEwgOzsKLSAgKikgYWNfSU5TVEFMTD0kYWNfZG90cyRJTlNUQUxMIDs7CisgICopIGFjX0lOU1RBTEw9JGFjX3RvcF9idWlsZGRpciRJTlNUQUxMIDs7CiAgIGVzYWMKIAogICBpZiB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtOyB0aGVuCi0gICAgeyBlY2hvICIkYXNfbWU6NTU0OTogY3JlYXRpbmcgJGFjX2ZpbGUiID4mNQorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5nICRhY19maWxlIiA+JjUKIGVjaG8gIiRhc19tZTogY3JlYXRpbmcgJGFjX2ZpbGUiID4mNjt9CiAgICAgcm0gLWYgIiRhY19maWxlIgogICBmaQogICAjIExldCdzIHN0aWxsIHByZXRlbmQgaXQgaXMgYGNvbmZpZ3VyZScgd2hpY2ggaW5zdGFudGlhdGVzIChpLmUuLCBkb24ndAogICAjIHVzZSAkYXNfbWUpLCBwZW9wbGUgd291bGQgYmUgc3VycHJpc2VkIHRvIHJlYWQ6Ci0gICMgICAgLyogY29uZmlnLmguICBHZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSBjb25maWcuc3RhdHVzLiAgKi8KLSAgY29uZmlndXJlX2lucHV0PSJHZW5lcmF0ZWQgYXV0b21hdGljYWxseSBmcm9tIGBlY2hvICRhY19maWxlX2luIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWQgJ3MsLiovLCwnYCBieSBjb25maWd1cmUuIgorICAjICAgIC8qIGNvbmZpZy5oLiAgR2VuZXJhdGVkIGJ5IGNvbmZpZy5zdGF0dXMuICAqLworICBpZiB0ZXN0IHgiJGFjX2ZpbGUiID0geC07IHRoZW4KKyAgICBjb25maWd1cmVfaW5wdXQ9CisgIGVsc2UKKyAgICBjb25maWd1cmVfaW5wdXQ9IiRhY19maWxlLiAgIgorICBmaQorICBjb25maWd1cmVfaW5wdXQ9JGNvbmZpZ3VyZV9pbnB1dCJHZW5lcmF0ZWQgZnJvbSBgZWNobyAkYWNfZmlsZV9pbiB8CisJCQkJICAgICBzZWQgJ3MsLiovLCwnYCBieSBjb25maWd1cmUuIgogCiAgICMgRmlyc3QgbG9vayBmb3IgdGhlIGlucHV0IGZpbGVzIGluIHRoZSBidWlsZCB0cmVlLCBvdGhlcndpc2UgaW4gdGhlCiAgICMgc3JjIHRyZWUuCkBAIC01NTYzLDM3ICs4OTgyLDQzIEBACiAgICAgICBjYXNlICRmIGluCiAgICAgICAtKSBlY2hvICR0bXAvc3RkaW4gOzsKICAgICAgIFtcXC8kXSopCi0gICAgICAgICAjIEFic29sdXRlIChjYW4ndCBiZSBET1Mtc3R5bGUsIGFzIElGUz06KQotICAgICAgICAgdGVzdCAtZiAiJGYiIHx8IHsgeyBlY2hvICIkYXNfbWU6NTU2NzogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjUKKwkgIyBBYnNvbHV0ZSAoY2FuJ3QgYmUgRE9TLXN0eWxlLCBhcyBJRlM9OikKKwkgdGVzdCAtZiAiJGYiIHx8IHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjUKIGVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjI7fQogICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0gICAgICAgICBlY2hvICRmOzsKKwkgZWNobyAiJGYiOzsKICAgICAgICopICMgUmVsYXRpdmUKLSAgICAgICAgIGlmIHRlc3QgLWYgIiRmIjsgdGhlbgotICAgICAgICAgICAjIEJ1aWxkIHRyZWUKLSAgICAgICAgICAgZWNobyAkZgotICAgICAgICAgZWxpZiB0ZXN0IC1mICIkc3JjZGlyLyRmIjsgdGhlbgotICAgICAgICAgICAjIFNvdXJjZSB0cmVlCi0gICAgICAgICAgIGVjaG8gJHNyY2Rpci8kZgotICAgICAgICAgZWxzZQotICAgICAgICAgICAjIC9kZXYvbnVsbCB0cmVlCi0gICAgICAgICAgIHsgeyBlY2hvICIkYXNfbWU6NTU4MDogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjUKKwkgaWYgdGVzdCAtZiAiJGYiOyB0aGVuCisJICAgIyBCdWlsZCB0cmVlCisJICAgZWNobyAiJGYiCisJIGVsaWYgdGVzdCAtZiAiJHNyY2Rpci8kZiI7IHRoZW4KKwkgICAjIFNvdXJjZSB0cmVlCisJICAgZWNobyAiJHNyY2Rpci8kZiIKKwkgZWxzZQorCSAgICMgL2Rldi9udWxsIHRyZWUKKwkgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiY1CiBlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiYyO30KICAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotICAgICAgICAgZmk7OworCSBmaTs7CiAgICAgICBlc2FjCiAgICAgZG9uZWAgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9Ci1FT0YKLWNhdCA+PiRDT05GSUdfU1RBVFVTIDw8RU9GCitfQUNFT0YKK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GCiAgIHNlZCAiJGFjX3Zwc3ViCiAkZXh0cmFzdWIKLUVPRgotY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcRU9GCitfQUNFT0YKK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgogOnQKIC9AW2EtekEtWl9dW2EtekEtWl8wLTldKkAvIWIKIHMsQGNvbmZpZ3VyZV9pbnB1dEAsJGNvbmZpZ3VyZV9pbnB1dCw7dCB0CiBzLEBzcmNkaXJALCRhY19zcmNkaXIsO3QgdAorcyxAYWJzX3NyY2RpckAsJGFjX2Fic19zcmNkaXIsO3QgdAogcyxAdG9wX3NyY2RpckAsJGFjX3RvcF9zcmNkaXIsO3QgdAorcyxAYWJzX3RvcF9zcmNkaXJALCRhY19hYnNfdG9wX3NyY2Rpciw7dCB0CitzLEBidWlsZGRpckAsJGFjX2J1aWxkZGlyLDt0IHQKK3MsQGFic19idWlsZGRpckAsJGFjX2Fic19idWlsZGRpciw7dCB0CitzLEB0b3BfYnVpbGRkaXJALCRhY190b3BfYnVpbGRkaXIsO3QgdAorcyxAYWJzX3RvcF9idWlsZGRpckAsJGFjX2Fic190b3BfYnVpbGRkaXIsO3QgdAogcyxASU5TVEFMTEAsJGFjX0lOU1RBTEwsO3QgdAogIiAkYWNfZmlsZV9pbnB1dHMgfCAoZXZhbCAiJGFjX3NlZF9jbWRzIikgPiR0bXAvb3V0CiAgIHJtIC1mICR0bXAvc3RkaW4KQEAgLTU2MDUsOCArOTAzMCw4IEBACiAgIGZpCiAKIGRvbmUKLUVPRgotY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcRU9GCitfQUNFT0YKK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgogCiAjCiAjIENPTkZJR19IRUFERVIgc2VjdGlvbi4KQEAgLTU2MTYsMTIgKzkwNDEsMTIgQEAKICMgTkFNRSBpcyB0aGUgY3BwIG1hY3JvIGJlaW5nIGRlZmluZWQgYW5kIFZBTFVFIGlzIHRoZSB2YWx1ZSBpdCBpcyBiZWluZyBnaXZlbi4KICMKICMgYWNfZCBzZXRzIHRoZSB2YWx1ZSBpbiAiI2RlZmluZSBOQU1FIFZBTFVFIiBsaW5lcy4KLWFjX2RBPSdzLF5cKFsgCV0qXCkjXChbIAldKmRlZmluZVsgCV1bIAldKlwpJwotYWNfZEI9J1sgCV0uKiQsXDEjXDInCithY19kQT0ncyxeXChbCSBdKlwpI1woWwkgXSpkZWZpbmVbCSBdWwkgXSpcKScKK2FjX2RCPSdbCSBdLiokLFwxI1wyJwogYWNfZEM9JyAnCiBhY19kRD0nLDt0JwogIyBhY191IHR1cm5zICIjdW5kZWYgTkFNRSIgd2l0aG91dCB0cmFpbGluZyBibGFua3MgaW50byAiI2RlZmluZSBOQU1FIFZBTFVFIi4KLWFjX3VBPSdzLF5cKFsgCV0qXCkjXChbIAldKlwpdW5kZWZcKFsgCV1bIAldKlwpJworYWNfdUE9J3MsXlwoWwkgXSpcKSNcKFsJIF0qXCl1bmRlZlwoWwkgXVsJIF0qXCknCiBhY191Qj0nJCxcMSNcMmRlZmluZVwzJwogYWNfdUM9JyAnCiBhY191RD0nLDt0JwpAQCAtNTYzMCwxNSArOTA1NSwxNSBAQAogICAjIFN1cHBvcnQgIm91dGZpbGVbOmluZmlsZVs6aW5maWxlLi4uXV0iLCBkZWZhdWx0aW5nIGluZmlsZT0ib3V0ZmlsZS5pbiIuCiAgIGNhc2UgJGFjX2ZpbGUgaW4KICAgLSB8ICo6LSB8ICo6LToqICkgIyBpbnB1dCBmcm9tIHN0ZGluCi0gICAgICAgIGNhdCA+JHRtcC9zdGRpbgotICAgICAgICBhY19maWxlX2luPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsW146XSo6LCwnYAotICAgICAgICBhY19maWxlPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsOi4qLCwnYCA7OworCWNhdCA+JHRtcC9zdGRpbgorCWFjX2ZpbGVfaW49YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyxbXjpdKjosLCdgCisJYWNfZmlsZT1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLDouKiwsJ2AgOzsKICAgKjoqICkgYWNfZmlsZV9pbj1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLFteOl0qOiwsJ2AKLSAgICAgICAgYWNfZmlsZT1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLDouKiwsJ2AgOzsKKwlhY19maWxlPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsOi4qLCwnYCA7OwogICAqICkgICBhY19maWxlX2luPSRhY19maWxlLmluIDs7CiAgIGVzYWMKIAotICB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtICYmIHsgZWNobyAiJGFzX21lOjU2NDE6IGNyZWF0aW5nICRhY19maWxlIiA+JjUKKyAgdGVzdCB4IiRhY19maWxlIiAhPSB4LSAmJiB7IGVjaG8gIiRhc19tZTokTElORU5POiBjcmVhdGluZyAkYWNfZmlsZSIgPiY1CiBlY2hvICIkYXNfbWU6IGNyZWF0aW5nICRhY19maWxlIiA+JjY7fQogCiAgICMgRmlyc3QgbG9vayBmb3IgdGhlIGlucHV0IGZpbGVzIGluIHRoZSBidWlsZCB0cmVlLCBvdGhlcndpc2UgaW4gdGhlCkBAIC01NjQ4LDMwICs5MDczLDMxIEBACiAgICAgICBjYXNlICRmIGluCiAgICAgICAtKSBlY2hvICR0bXAvc3RkaW4gOzsKICAgICAgIFtcXC8kXSopCi0gICAgICAgICAjIEFic29sdXRlIChjYW4ndCBiZSBET1Mtc3R5bGUsIGFzIElGUz06KQotICAgICAgICAgdGVzdCAtZiAiJGYiIHx8IHsgeyBlY2hvICIkYXNfbWU6NTY1MjogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjUKKwkgIyBBYnNvbHV0ZSAoY2FuJ3QgYmUgRE9TLXN0eWxlLCBhcyBJRlM9OikKKwkgdGVzdCAtZiAiJGYiIHx8IHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjUKIGVjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjI7fQogICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9Ci0gICAgICAgICBlY2hvICRmOzsKKwkgIyBEbyBxdW90ZSAkZiwgdG8gcHJldmVudCBET1MgcGF0aHMgZnJvbSBiZWluZyBJRlMnZC4KKwkgZWNobyAiJGYiOzsKICAgICAgICopICMgUmVsYXRpdmUKLSAgICAgICAgIGlmIHRlc3QgLWYgIiRmIjsgdGhlbgotICAgICAgICAgICAjIEJ1aWxkIHRyZWUKLSAgICAgICAgICAgZWNobyAkZgotICAgICAgICAgZWxpZiB0ZXN0IC1mICIkc3JjZGlyLyRmIjsgdGhlbgotICAgICAgICAgICAjIFNvdXJjZSB0cmVlCi0gICAgICAgICAgIGVjaG8gJHNyY2Rpci8kZgotICAgICAgICAgZWxzZQotICAgICAgICAgICAjIC9kZXYvbnVsbCB0cmVlCi0gICAgICAgICAgIHsgeyBlY2hvICIkYXNfbWU6NTY2NTogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjUKKwkgaWYgdGVzdCAtZiAiJGYiOyB0aGVuCisJICAgIyBCdWlsZCB0cmVlCisJICAgZWNobyAiJGYiCisJIGVsaWYgdGVzdCAtZiAiJHNyY2Rpci8kZiI7IHRoZW4KKwkgICAjIFNvdXJjZSB0cmVlCisJICAgZWNobyAiJHNyY2Rpci8kZiIKKwkgZWxzZQorCSAgICMgL2Rldi9udWxsIHRyZWUKKwkgICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiY1CiBlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiYyO30KICAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQotICAgICAgICAgZmk7OworCSBmaTs7CiAgICAgICBlc2FjCiAgICAgZG9uZWAgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9CiAgICMgUmVtb3ZlIHRoZSB0cmFpbGluZyBzcGFjZXMuCi0gIHNlZCAncy9bIAldKiQvLycgJGFjX2ZpbGVfaW5wdXRzID4kdG1wL2luCisgIHNlZCAncy9bCSBdKiQvLycgJGFjX2ZpbGVfaW5wdXRzID4kdG1wL2luCiAKLUVPRgorX0FDRU9GCiAKICMgVHJhbnNmb3JtIGNvbmZkZWZzLmggaW50byB0d28gc2VkIHNjcmlwdHMsIGBjb25mdGVzdC5kZWZpbmVzJyBhbmQKICMgYGNvbmZ0ZXN0LnVuZGVmcycsIHRoYXQgc3Vic3RpdHV0ZXMgdGhlIHByb3BlciB2YWx1ZXMgaW50bwpAQCAtNTY4NywxNiArOTExMywxNiBAQAogIyBgZW5kJyBpcyB1c2VkIHRvIGF2b2lkIHRoYXQgdGhlIHNlY29uZCBtYWluIHNlZCBjb21tYW5kIChtZWFudCBmb3IKICMgMC1hcnkgQ1BQIG1hY3JvcykgYXBwbGllcyB0byBuLWFyeSBtYWNybyBkZWZpbml0aW9ucy4KICMgU2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIGZvciBgY2xlYXInLgotY2F0ID5jb25mZGVmMnNlZC5zZWQgPDxcRU9GCitjYXQgPmNvbmZkZWYyc2VkLnNlZCA8PFxfQUNFT0YKIHMvW1xcJixdL1xcJi9nCiBzLFtcXCRgXSxcXCYsZwogdCBjbGVhcgogOiBjbGVhcgotcyxeWyAJXSojWyAJXSpkZWZpbmVbIAldWyAJXSpcKFwoW14gCShdW14gCShdKlwpKFteKV0qKVwpWyAJXSpcKC4qXCkkLCR7YWNfZEF9XDIke2FjX2RCfVwxJHthY19kQ31cMyR7YWNfZER9LGdwCitzLF5bCSBdKiNbCSBdKmRlZmluZVsJIF1bCSBdKlwoW14JIChdW14JIChdKlwpXCgoW14pXSopXClbCSBdKlwoLipcKSQsJHthY19kQX1cMSR7YWNfZEJ9XDFcMiR7YWNfZEN9XDMke2FjX2REfSxncAogdCBlbmQKLXMsXlsgCV0qI1sgCV0qZGVmaW5lWyAJXVsgCV0qXChbXiAJXVteIAldKlwpWyAJXSpcKC4qXCkkLCR7YWNfZEF9XDEke2FjX2RCfVwxJHthY19kQ31cMiR7YWNfZER9LGdwCitzLF5bCSBdKiNbCSBdKmRlZmluZVsJIF1bCSBdKlwoW14JIF1bXgkgXSpcKVsJIF0qXCguKlwpJCwke2FjX2RBfVwxJHthY19kQn1cMSR7YWNfZEN9XDIke2FjX2REfSxncAogOiBlbmQKLUVPRgorX0FDRU9GCiAjIElmIHNvbWUgbWFjcm9zIHdlcmUgY2FsbGVkIHNldmVyYWwgdGltZXMgdGhlcmUgbWlnaHQgYmUgc2V2ZXJhbCB0aW1lcwogIyB0aGUgc2FtZSAjZGVmaW5lcywgd2hpY2ggaXMgdXNlbGVzcy4gIE5ldmVydGhlbGVzcywgd2UgbWF5IG5vdCB3YW50IHRvCiAjIHNvcnQgdGhlbSwgc2luY2Ugd2Ugd2FudCB0aGUgKmxhc3QqIEFDLURFRklORSB0byBiZSBob25vcmVkLgpAQCAtNTcwNywxNCArOTEzMywxNCBAQAogIyBUaGlzIHNlZCBjb21tYW5kIHJlcGxhY2VzICN1bmRlZiB3aXRoIGNvbW1lbnRzLiAgVGhpcyBpcyBuZWNlc3NhcnksIGZvcgogIyBleGFtcGxlLCBpbiB0aGUgY2FzZSBvZiBfUE9TSVhfU09VUkNFLCB3aGljaCBpcyBwcmVkZWZpbmVkIGFuZCByZXF1aXJlZAogIyBvbiBzb21lIHN5c3RlbXMgd2hlcmUgY29uZmlndXJlIHdpbGwgbm90IGRlY2lkZSB0byBkZWZpbmUgaXQuCi1jYXQgPj5jb25mdGVzdC51bmRlZnMgPDxcRU9GCi1zLF5bIAldKiNbIAldKnVuZGVmWyAJXVsgCV0qW2EtekEtWl9dW2EtekEtWl8wLTldKiwvKiAmICovLAotRU9GCitjYXQgPj5jb25mdGVzdC51bmRlZnMgPDxcX0FDRU9GCitzLF5bCSBdKiNbCSBdKnVuZGVmWwkgXVsJIF0qW2EtekEtWl9dW2EtekEtWl8wLTldKiwvKiAmICovLAorX0FDRU9GCiAKICMgQnJlYWsgdXAgY29uZnRlc3QuZGVmaW5lcyBiZWNhdXNlIHNvbWUgc2hlbGxzIGhhdmUgYSBsaW1pdCBvbiB0aGUgc2l6ZQogIyBvZiBoZXJlIGRvY3VtZW50cywgYW5kIG9sZCBzZWRzIGhhdmUgc21hbGwgbGltaXRzIHRvbyAoMTAwIGNtZHMpLgogZWNobyAnICAjIEhhbmRsZSBhbGwgdGhlICNkZWZpbmUgdGVtcGxhdGVzIG9ubHkgaWYgbmVjZXNzYXJ5LicgPj4kQ09ORklHX1NUQVRVUwotZWNobyAnICBpZiBlZ3JlcCAiXlsgCV0qI1sgCV0qZGVmaW5lIiAkdG1wL2luID4vZGV2L251bGw7IHRoZW4nID4+JENPTkZJR19TVEFUVVMKK2VjaG8gJyAgaWYgZ3JlcCAiXlsJIF0qI1sJIF0qZGVmaW5lIiAkdG1wL2luID4vZGV2L251bGw7IHRoZW4nID4+JENPTkZJR19TVEFUVVMKIGVjaG8gJyAgIyBJZiB0aGVyZSBhcmUgbm8gZGVmaW5lcywgd2UgbWF5IGhhdmUgYW4gZW1wdHkgaWYvZmknID4+JENPTkZJR19TVEFUVVMKIGVjaG8gJyAgOicgPj4kQ09ORklHX1NUQVRVUwogcm0gLWYgY29uZnRlc3QudGFpbApAQCAtNTcyMyw3ICs5MTQ5LDcgQEAKICAgIyBXcml0ZSBhIGxpbWl0ZWQtc2l6ZSBoZXJlIGRvY3VtZW50IHRvICR0bXAvZGVmaW5lcy5zZWQuCiAgIGVjaG8gJyAgY2F0ID4kdG1wL2RlZmluZXMuc2VkIDw8Q0VPRicgPj4kQ09ORklHX1NUQVRVUwogICAjIFNwZWVkIHVwOiBkb24ndCBjb25zaWRlciB0aGUgbm9uIGAjZGVmaW5lJyBsaW5lcy4KLSAgZWNobyAnL15bIAldKiNbIAldKmRlZmluZS8hYicgPj4kQ09ORklHX1NUQVRVUworICBlY2hvICcvXlsJIF0qI1sJIF0qZGVmaW5lLyFiJyA+PiRDT05GSUdfU1RBVFVTCiAgICMgV29yayBhcm91bmQgdGhlIGZvcmdldC10by1yZXNldC10aGUtZmxhZyBidWcuCiAgIGVjaG8gJ3QgY2xyJyA+PiRDT05GSUdfU1RBVFVTCiAgIGVjaG8gJzogY2xyJyA+PiRDT05GSUdfU1RBVFVTCkBAIC01NzM4LDcgKzkxNjQsNyBAQAogICBtdiBjb25mdGVzdC50YWlsIGNvbmZ0ZXN0LmRlZmluZXMKIGRvbmUKIHJtIC1mIGNvbmZ0ZXN0LmRlZmluZXMKLWVjaG8gJyAgZmkgIyBlZ3JlcCcgPj4kQ09ORklHX1NUQVRVUworZWNobyAnICBmaSAjIGdyZXAnID4+JENPTkZJR19TVEFUVVMKIGVjaG8gPj4kQ09ORklHX1NUQVRVUwogCiAjIEJyZWFrIHVwIGNvbmZ0ZXN0LnVuZGVmcyBiZWNhdXNlIHNvbWUgc2hlbGxzIGhhdmUgYSBsaW1pdCBvbiB0aGUgc2l6ZQpAQCAtNTc1MCw3ICs5MTc2LDcgQEAKICAgIyBXcml0ZSBhIGxpbWl0ZWQtc2l6ZSBoZXJlIGRvY3VtZW50IHRvICR0bXAvdW5kZWZzLnNlZC4KICAgZWNobyAnICBjYXQgPiR0bXAvdW5kZWZzLnNlZCA8PENFT0YnID4+JENPTkZJR19TVEFUVVMKICAgIyBTcGVlZCB1cDogZG9uJ3QgY29uc2lkZXIgdGhlIG5vbiBgI3VuZGVmJwotICBlY2hvICcvXlsgCV0qI1sgCV0qdW5kZWYvIWInID4+JENPTkZJR19TVEFUVVMKKyAgZWNobyAnL15bCSBdKiNbCSBdKnVuZGVmLyFiJyA+PiRDT05GSUdfU1RBVFVTCiAgICMgV29yayBhcm91bmQgdGhlIGZvcmdldC10by1yZXNldC10aGUtZmxhZyBidWcuCiAgIGVjaG8gJ3QgY2xyJyA+PiRDT05GSUdfU1RBVFVTCiAgIGVjaG8gJzogY2xyJyA+PiRDT05GSUdfU1RBVFVTCkBAIC01NzY2LDUxICs5MTkyLDU5IEBACiBkb25lCiBybSAtZiBjb25mdGVzdC51bmRlZnMKIAotY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcRU9GCitjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKICAgIyBMZXQncyBzdGlsbCBwcmV0ZW5kIGl0IGlzIGBjb25maWd1cmUnIHdoaWNoIGluc3RhbnRpYXRlcyAoaS5lLiwgZG9uJ3QKICAgIyB1c2UgJGFzX21lKSwgcGVvcGxlIHdvdWxkIGJlIHN1cnByaXNlZCB0byByZWFkOgotICAjICAgIC8qIGNvbmZpZy5oLiAgR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgY29uZmlnLnN0YXR1cy4gICovCisgICMgICAgLyogY29uZmlnLmguICBHZW5lcmF0ZWQgYnkgY29uZmlnLnN0YXR1cy4gICovCiAgIGlmIHRlc3QgeCIkYWNfZmlsZSIgPSB4LTsgdGhlbgotICAgIGVjaG8gIi8qIEdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJ5IGNvbmZpZ3VyZS4gICovIiA+JHRtcC9jb25maWcuaAorICAgIGVjaG8gIi8qIEdlbmVyYXRlZCBieSBjb25maWd1cmUuICAqLyIgPiR0bXAvY29uZmlnLmgKICAgZWxzZQotICAgIGVjaG8gIi8qICRhY19maWxlLiAgR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgY29uZmlndXJlLiAgKi8iID4kdG1wL2NvbmZpZy5oCisgICAgZWNobyAiLyogJGFjX2ZpbGUuICBHZW5lcmF0ZWQgYnkgY29uZmlndXJlLiAgKi8iID4kdG1wL2NvbmZpZy5oCiAgIGZpCiAgIGNhdCAkdG1wL2luID4+JHRtcC9jb25maWcuaAogICBybSAtZiAkdG1wL2luCiAgIGlmIHRlc3QgeCIkYWNfZmlsZSIgIT0geC07IHRoZW4KLSAgICBpZiBjbXAgLXMgJGFjX2ZpbGUgJHRtcC9jb25maWcuaCAyPi9kZXYvbnVsbDsgdGhlbgotICAgICAgeyBlY2hvICIkYXNfbWU6NTc4MjogJGFjX2ZpbGUgaXMgdW5jaGFuZ2VkIiA+JjUKKyAgICBpZiBkaWZmICRhY19maWxlICR0bXAvY29uZmlnLmggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiAkYWNfZmlsZSBpcyB1bmNoYW5nZWQiID4mNQogZWNobyAiJGFzX21lOiAkYWNfZmlsZSBpcyB1bmNoYW5nZWQiID4mNjt9CiAgICAgZWxzZQotICAgICAgYWNfZGlyPWAkYXNfZXhwciBYIiRhY19maWxlIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAotICAgICAgICAgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKVteL10nIFx8IFwKLSAgICAgICAgIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXCkkJyBcfCBcCi0gICAgICAgICBYIiRhY19maWxlIiA6ICdYXCgvXCknIFx8IFwKLSAgICAgICAgIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAorICAgICAgYWNfZGlyPWAoZGlybmFtZSAiJGFjX2ZpbGUiKSAyPi9kZXYvbnVsbCB8fAorJGFzX2V4cHIgWCIkYWNfZmlsZSIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKKwkgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKVteL10nIFx8IFwKKwkgWCIkYWNfZmlsZSIgOiAnWFwoLy9cKSQnIFx8IFwKKwkgWCIkYWNfZmlsZSIgOiAnWFwoL1wpJyBcfCBcCisJIC4gICAgIDogJ1woLlwpJyAyPi9kZXYvbnVsbCB8fAogZWNobyBYIiRhY19maWxlIiB8CiAgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9CiAgIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9CiAgIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQogICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQogICAJICBzLy4qLy4vOyBxJ2AKLSAgICAgIGlmIHRlc3QgIiRhY19kaXIiICE9ICIkYWNfZmlsZSIgJiYgdGVzdCAiJGFjX2RpciIgIT0gLjsgdGhlbgotICAgICAgICB7IGNhc2UgIiRhY19kaXIiIGluCi0gIFtcXC9dKiB8ID86W1xcL10qICkgYXNfaW5jcl9kaXI9OzsKLSAgKikgICAgICAgICAgICAgICAgICAgICAgYXNfaW5jcl9kaXI9Ljs7Ci1lc2FjCi1hc19kdW1teT0iJGFjX2RpciIKLWZvciBhc19ta2Rpcl9kaXIgaW4gYElGUz0nL1xcJzsgc2V0IFggJGFzX2R1bW15OyBzaGlmdDsgZWNobyAiJEAiYDsgZG8KLSAgY2FzZSAkYXNfbWtkaXJfZGlyIGluCi0gICAgIyBTa2lwIERPUyBkcml2ZXNwZWMKLSAgICA/OikgYXNfaW5jcl9kaXI9JGFzX21rZGlyX2RpciA7OwotICAgICopCi0gICAgICBhc19pbmNyX2Rpcj0kYXNfaW5jcl9kaXIvJGFzX21rZGlyX2RpcgotICAgICAgdGVzdCAtZCAiJGFzX2luY3JfZGlyIiB8fCBta2RpciAiJGFzX2luY3JfZGlyIgotICAgIDs7Ci0gIGVzYWMKLWRvbmU7IH0KKyAgICAgIHsgaWYgJGFzX21rZGlyX3A7IHRoZW4KKyAgICBta2RpciAtcCAiJGFjX2RpciIKKyAgZWxzZQorICAgIGFzX2Rpcj0iJGFjX2RpciIKKyAgICBhc19kaXJzPQorICAgIHdoaWxlIHRlc3QgISAtZCAiJGFzX2RpciI7IGRvCisgICAgICBhc19kaXJzPSIkYXNfZGlyICRhc19kaXJzIgorICAgICAgYXNfZGlyPWAoZGlybmFtZSAiJGFzX2RpciIpIDI+L2Rldi9udWxsIHx8CiskYXNfZXhwciBYIiRhc19kaXIiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisJIFgiJGFzX2RpciIgOiAnWFwoLy9cKVteL10nIFx8IFwKKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAorCSBYIiRhc19kaXIiIDogJ1hcKC9cKScgXHwgXAorCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKK2VjaG8gWCIkYXNfZGlyIiB8CisgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQorICAJICBzLy4qLy4vOyBxJ2AKKyAgICBkb25lCisgICAgdGVzdCAhIC1uICIkYXNfZGlycyIgfHwgbWtkaXIgJGFzX2RpcnMKKyAgZmkgfHwgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KIAotICAgICAgZmkKICAgICAgIHJtIC1mICRhY19maWxlCiAgICAgICBtdiAkdG1wL2NvbmZpZy5oICRhY19maWxlCiAgICAgZmkKQEAgLTU4MTksOCArOTI1Myw4IEBACiAgICAgcm0gLWYgJHRtcC9jb25maWcuaAogICBmaQogZG9uZQotRU9GCi1jYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxFT0YKK19BQ0VPRgorY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCiAKICMKICMgQ09ORklHX0NPTU1BTkRTIHNlY3Rpb24uCkBAIC01ODI4LDcgKzkyNjIsMTExIEBACiBmb3IgYWNfZmlsZSBpbiA6ICRDT05GSUdfQ09NTUFORFM7IGRvIHRlc3QgIngkYWNfZmlsZSIgPSB4OiAmJiBjb250aW51ZQogICBhY19kZXN0PWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsOi4qLCwnYAogICBhY19zb3VyY2U9YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyxbXjpdKjosLCdgCisgIGFjX2Rpcj1gKGRpcm5hbWUgIiRhY19kZXN0IikgMj4vZGV2L251bGwgfHwKKyRhc19leHByIFgiJGFjX2Rlc3QiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisJIFgiJGFjX2Rlc3QiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisJIFgiJGFjX2Rlc3QiIDogJ1hcKC8vXCkkJyBcfCBcCisJIFgiJGFjX2Rlc3QiIDogJ1hcKC9cKScgXHwgXAorCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKK2VjaG8gWCIkYWNfZGVzdCIgfAorICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KKyAgCSAgcy8uKi8uLzsgcSdgCisgIHsgaWYgJGFzX21rZGlyX3A7IHRoZW4KKyAgICBta2RpciAtcCAiJGFjX2RpciIKKyAgZWxzZQorICAgIGFzX2Rpcj0iJGFjX2RpciIKKyAgICBhc19kaXJzPQorICAgIHdoaWxlIHRlc3QgISAtZCAiJGFzX2RpciI7IGRvCisgICAgICBhc19kaXJzPSIkYXNfZGlyICRhc19kaXJzIgorICAgICAgYXNfZGlyPWAoZGlybmFtZSAiJGFzX2RpciIpIDI+L2Rldi9udWxsIHx8CiskYXNfZXhwciBYIiRhc19kaXIiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisJIFgiJGFzX2RpciIgOiAnWFwoLy9cKVteL10nIFx8IFwKKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAorCSBYIiRhc19kaXIiIDogJ1hcKC9cKScgXHwgXAorCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKK2VjaG8gWCIkYXNfZGlyIiB8CisgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQorICAJICBzLy4qLy4vOyBxJ2AKKyAgICBkb25lCisgICAgdGVzdCAhIC1uICIkYXNfZGlycyIgfHwgbWtkaXIgJGFzX2RpcnMKKyAgZmkgfHwgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KIAorICBhY19idWlsZGRpcj0uCisKK2lmIHRlc3QgIiRhY19kaXIiICE9IC47IHRoZW4KKyAgYWNfZGlyX3N1ZmZpeD0vYGVjaG8gIiRhY19kaXIiIHwgc2VkICdzLF5cLltcXC9dLCwnYAorICAjIEEgIi4uLyIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4LgorICBhY190b3BfYnVpbGRkaXI9YGVjaG8gIiRhY19kaXJfc3VmZml4IiB8IHNlZCAncywvW15cXC9dKiwuLi8sZydgCitlbHNlCisgIGFjX2Rpcl9zdWZmaXg9IGFjX3RvcF9idWlsZGRpcj0KK2ZpCisKK2Nhc2UgJHNyY2RpciBpbgorICAuKSAgIyBObyAtLXNyY2RpciBvcHRpb24uICBXZSBhcmUgYnVpbGRpbmcgaW4gcGxhY2UuCisgICAgYWNfc3JjZGlyPS4KKyAgICBpZiB0ZXN0IC16ICIkYWNfdG9wX2J1aWxkZGlyIjsgdGhlbgorICAgICAgIGFjX3RvcF9zcmNkaXI9LgorICAgIGVsc2UKKyAgICAgICBhY190b3Bfc3JjZGlyPWBlY2hvICRhY190b3BfYnVpbGRkaXIgfCBzZWQgJ3MsLyQsLCdgCisgICAgZmkgOzsKKyAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBBYnNvbHV0ZSBwYXRoLgorICAgIGFjX3NyY2Rpcj0kc3JjZGlyJGFjX2Rpcl9zdWZmaXg7CisgICAgYWNfdG9wX3NyY2Rpcj0kc3JjZGlyIDs7CisgICopICMgUmVsYXRpdmUgcGF0aC4KKyAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZGRpciRzcmNkaXIkYWNfZGlyX3N1ZmZpeAorICAgIGFjX3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpciRzcmNkaXIgOzsKK2VzYWMKKworIyBEbyBub3QgdXNlIGBjZCBmb28gJiYgcHdkYCB0byBjb21wdXRlIGFic29sdXRlIHBhdGhzLCBiZWNhdXNlCisjIHRoZSBkaXJlY3RvcmllcyBtYXkgbm90IGV4aXN0LgorY2FzZSBgcHdkYCBpbgorLikgYWNfYWJzX2J1aWxkZGlyPSIkYWNfZGlyIjs7CisqKQorICBjYXNlICIkYWNfZGlyIiBpbgorICAuKSBhY19hYnNfYnVpbGRkaXI9YHB3ZGA7OworICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic19idWlsZGRpcj0iJGFjX2RpciI7OworICAqKSBhY19hYnNfYnVpbGRkaXI9YHB3ZGAvIiRhY19kaXIiOzsKKyAgZXNhYzs7Citlc2FjCitjYXNlICRhY19hYnNfYnVpbGRkaXIgaW4KKy4pIGFjX2Fic190b3BfYnVpbGRkaXI9JHthY190b3BfYnVpbGRkaXJ9Ljs7CisqKQorICBjYXNlICR7YWNfdG9wX2J1aWxkZGlyfS4gaW4KKyAgLikgYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfYWJzX2J1aWxkZGlyOzsKKyAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfdG9wX2J1aWxkZGlyPSR7YWNfdG9wX2J1aWxkZGlyfS47OworICAqKSBhY19hYnNfdG9wX2J1aWxkZGlyPSRhY19hYnNfYnVpbGRkaXIvJHthY190b3BfYnVpbGRkaXJ9Ljs7CisgIGVzYWM7OworZXNhYworY2FzZSAkYWNfYWJzX2J1aWxkZGlyIGluCisuKSBhY19hYnNfc3JjZGlyPSRhY19zcmNkaXI7OworKikKKyAgY2FzZSAkYWNfc3JjZGlyIGluCisgIC4pIGFjX2Fic19zcmNkaXI9JGFjX2Fic19idWlsZGRpcjs7CisgIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX3NyY2Rpcj0kYWNfc3JjZGlyOzsKKyAgKikgYWNfYWJzX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyLyRhY19zcmNkaXI7OworICBlc2FjOzsKK2VzYWMKK2Nhc2UgJGFjX2Fic19idWlsZGRpciBpbgorLikgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3RvcF9zcmNkaXI7OworKikKKyAgY2FzZSAkYWNfdG9wX3NyY2RpciBpbgorICAuKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyOzsKKyAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfdG9wX3NyY2Rpcjs7CisgICopIGFjX2Fic190b3Bfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXIvJGFjX3RvcF9zcmNkaXI7OworICBlc2FjOzsKK2VzYWMKKworCisgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGV4ZWN1dGluZyAkYWNfZGVzdCBjb21tYW5kcyIgPiY1CitlY2hvICIkYXNfbWU6IGV4ZWN1dGluZyAkYWNfZGVzdCBjb21tYW5kcyIgPiY2O30KICAgY2FzZSAkYWNfZGVzdCBpbgogICAgIGRlZmF1bHQgKQogIyBNYWtlZmlsZSB1c2VzIHRoaXMgdGltZXN0YW1wIGZpbGUgdG8gcmVjb3JkIHdoZXRoZXIgY29uZmlnLmggaXMgdXAgdG8gZGF0ZS4KQEAgLTU4MzYsMTUgKzkzNzQsMTYgQEAKICA7OwogICBlc2FjCiBkb25lCi1FT0YKK19BQ0VPRgogCi1jYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxFT0YKK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgogCiB7IChleGl0IDApOyBleGl0IDA7IH0KLUVPRgorX0FDRU9GCiBjaG1vZCAreCAkQ09ORklHX1NUQVRVUwogYWNfY2xlYW5fZmlsZXM9JGFjX2NsZWFuX2ZpbGVzX3NhdmUKIAorCiAjIGNvbmZpZ3VyZSBpcyB3cml0aW5nIHRvIGNvbmZpZy5sb2csIGFuZCB0aGVuIGNhbGxzIGNvbmZpZy5zdGF0dXMuCiAjIGNvbmZpZy5zdGF0dXMgZG9lcyBpdHMgb3duIHJlZGlyZWN0aW9uLCBhcHBlbmRpbmcgdG8gY29uZmlnLmxvZy4KICMgVW5mb3J0dW5hdGVseSwgb24gRE9TIHRoaXMgZmFpbHMsIGFzIGNvbmZpZy5sb2cgaXMgc3RpbGwga2VwdCBvcGVuCkBAIC01ODU1LDggKzkzOTQsMTEgQEAKICMgbmVlZCB0byBtYWtlIHRoZSBGRCBhdmFpbGFibGUgYWdhaW4uCiBpZiB0ZXN0ICIkbm9fY3JlYXRlIiAhPSB5ZXM7IHRoZW4KICAgYWNfY3Nfc3VjY2Vzcz06CisgIGFjX2NvbmZpZ19zdGF0dXNfYXJncz0KKyAgdGVzdCAiJHNpbGVudCIgPSB5ZXMgJiYKKyAgICBhY19jb25maWdfc3RhdHVzX2FyZ3M9IiRhY19jb25maWdfc3RhdHVzX2FyZ3MgLS1xdWlldCIKICAgZXhlYyA1Pi9kZXYvbnVsbAotICAkU0hFTEwgJENPTkZJR19TVEFUVVMgfHwgYWNfY3Nfc3VjY2Vzcz1mYWxzZQorICAkU0hFTEwgJENPTkZJR19TVEFUVVMgJGFjX2NvbmZpZ19zdGF0dXNfYXJncyB8fCBhY19jc19zdWNjZXNzPWZhbHNlCiAgIGV4ZWMgNT4+Y29uZmlnLmxvZwogICAjIFVzZSB8fCwgbm90ICYmLCB0byBhdm9pZCBleGl0aW5nIGZyb20gdGhlIGlmIHdpdGggJD8gPSAxLCB3aGljaAogICAjIHdvdWxkIG1ha2UgY29uZmlndXJlIGZhaWwgaWYgdGhpcyBpcyB0aGUgbGFzdCBpbnN0cnVjdGlvbi4KZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2NvbmZpZ3VyZS5pbiBiL3JlYWRsaW5lL2NvbmZpZ3VyZS5pbgppbmRleCBiYzc4ZjhhLi5hNzg2Mzk4IDEwMDY0NAotLS0gYS9yZWFkbGluZS9jb25maWd1cmUuaW4KKysrIGIvcmVhZGxpbmUvY29uZmlndXJlLmluCkBAIC00LDkgKzQsMjcgQEAKIGRubCByZXBvcnQgYnVncyB0byBjaGV0QHBvLmN3cnUuZWR1CiBkbmwKIGRubCBQcm9jZXNzIHRoaXMgZmlsZSB3aXRoIGF1dG9jb25mIHRvIHByb2R1Y2UgYSBjb25maWd1cmUgc2NyaXB0LgotQUNfUkVWSVNJT04oW2ZvciBSZWFkbGluZSA0LjMsIHZlcnNpb24gMi40NSwgZnJvbSBhdXRvY29uZiB2ZXJzaW9uXSBBQ19BQ1ZFUlNJT04pCiAKLUFDX0lOSVQocmVhZGxpbmUsIDQuMywgYnVnLXJlYWRsaW5lQGdudS5vcmcpCisjIENvcHlyaWdodCAoQykgMTk4Ny0yMDA1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikKKyMgYW55IGxhdGVyIHZlcnNpb24uCisKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEKKyMgMDIxMTEtMTMwNywgVVNBLgorCitBQ19SRVZJU0lPTihbZm9yIFJlYWRsaW5lIDUuMSwgdmVyc2lvbiAyLjU5XSkKKworQUNfSU5JVChyZWFkbGluZSwgNS4xLXJlbGVhc2UsIGJ1Zy1yZWFkbGluZUBnbnUub3JnKQogCiBkbmwgbWFrZSBzdXJlIHdlIGFyZSB1c2luZyBhIHJlY2VudCBhdXRvY29uZiB2ZXJzaW9uCiBBQ19QUkVSRVEoMi41MCkKQEAgLTE2LDI3ICszNCw3MCBAQAogQUNfQ09ORklHX0hFQURFUlMoY29uZmlnLmgpCiAKIGRubCB1cGRhdGUgdGhlIHZhbHVlIG9mIFJMX1JFQURMSU5FX1ZFUlNJT04gaW4gcmVhZGxpbmUuaCB3aGVuIHRoaXMgY2hhbmdlcwotTElCVkVSU0lPTj00LjMKK0xJQlZFUlNJT049NS4xCiAKIEFDX0NBTk9OSUNBTF9IT1NUCiAKIGRubCBjb25maWd1cmUgZGVmYXVsdHMKIG9wdF9jdXJzZXM9bm8KK29wdF9wdXJpZnk9bm8KIAogZG5sIGFyZ3VtZW50cyB0byBjb25maWd1cmUKIEFDX0FSR19XSVRIKGN1cnNlcywgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1jdXJzZXNdLCBbdXNlIHRoZSBjdXJzZXMgbGlicmFyeSBpbnN0ZWFkIG9mIHRoZSB0ZXJtY2FwIGxpYnJhcnldKSwgb3B0X2N1cnNlcz0kd2l0aHZhbCkKK0FDX0FSR19XSVRIKHB1cmlmeSwgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1wdXJpZnldLCBbY29uZmlndXJlIHRvIHBvc3Rwcm9jZXNzIHdpdGggcHVyaWZ5XSksIG9wdF9wdXJpZnk9JHdpdGh2YWwpCiAKIGlmIHRlc3QgIiRvcHRfY3Vyc2VzIiA9ICJ5ZXMiOyB0aGVuCiAJcHJlZmVyX2N1cnNlcz15ZXMKIGZpCiAKK2lmIHRlc3QgIiRvcHRfcHVyaWZ5IiA9IHllczsgdGhlbgorCVBVUklGWT0icHVyaWZ5IgorZWxzZQorCVBVUklGWT0KK2ZpCisKIGRubCBvcHRpb24gcGFyc2luZyBmb3Igb3B0aW9uYWwgZmVhdHVyZXMKK29wdF9tdWx0aWJ5dGU9eWVzCiBvcHRfc3RhdGljX2xpYnM9eWVzCiBvcHRfc2hhcmVkX2xpYnM9eWVzCiAKK0FDX0FSR19FTkFCTEUobXVsdGlieXRlLCBBQ19IRUxQX1NUUklORyhbLS1lbmFibGUtbXVsdGlieXRlXSwgW2VuYWJsZSBtdWx0aWJ5dGUgY2hhcmFjdGVycyBpZiBPUyBzdXBwb3J0cyB0aGVtXSksIG9wdF9tdWx0aWJ5dGU9JGVuYWJsZXZhbCkKIEFDX0FSR19FTkFCTEUoc2hhcmVkLCBBQ19IRUxQX1NUUklORyhbLS1lbmFibGUtc2hhcmVkXSwgW2J1aWxkIHNoYXJlZCBsaWJyYXJpZXMgW1tkZWZhdWx0PVlFU11dXSksIG9wdF9zaGFyZWRfbGlicz0kZW5hYmxldmFsKQogQUNfQVJHX0VOQUJMRShzdGF0aWMsIEFDX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1zdGF0aWNdLCBbYnVpbGQgc3RhdGljIGxpYnJhcmllcyBbW2RlZmF1bHQ9WUVTXV1dKSwgb3B0X3N0YXRpY19saWJzPSRlbmFibGV2YWwpCiAKK2lmIHRlc3QgJG9wdF9tdWx0aWJ5dGUgPSBubzsgdGhlbgorQUNfREVGSU5FKE5PX01VTFRJQllURV9TVVBQT1JUKQorZmkKKworZG5sIGxvYWQgdXAgdGhlIGNyb3NzLWJ1aWxkaW5nIGNhY2hlIGZpbGUgLS0gYWRkIG1vcmUgY2FzZXMgYW5kIGNhY2hlCitkbmwgZmlsZXMgYXMgbmVjZXNzYXJ5CisKK2RubCBOb3RlIHRoYXQgaG9zdCBhbmQgdGFyZ2V0IG1hY2hpbmUgYXJlIHRoZSBzYW1lLCBhbmQgZGlmZmVyZW50IHRoYW4gdGhlCitkbmwgYnVpbGQgbWFjaGluZS4KKworaWYgdGVzdCAieCRjcm9zc19jb21waWxpbmciID0gInh5ZXMiOyB0aGVuCisgICAgY2FzZSAiJHtob3N0fSIgaW4KKyAgICAqLWN5Z3dpbiopCisgICAgICAgIGNyb3NzX2NhY2hlPSR7c3JjZGlyfS9jcm9zcy1idWlsZC9jeWd3aW4uY2FjaGUKKyAgICAgICAgOzsKKyAgICAqLW1pbmd3KikKKyAgICAgICAgY3Jvc3NfY2FjaGU9JHtzcmNkaXJ9L2Nyb3NzLWJ1aWxkL21pbmd3LmNhY2hlCisgICAgICAgIDs7CisgICAgaVtbMzQ1Nl1dODYtKi1iZW9zKikKKyAgICAgICAgY3Jvc3NfY2FjaGU9JHtzcmNkaXJ9L2Nyb3NzLWJ1aWxkL3g4Ni1iZW9zLmNhY2hlCisgICAgICAgIDs7CisgICAgKikgIGVjaG8gImNvbmZpZ3VyZTogY3Jvc3MtY29tcGlsaW5nIGZvciAkaG9zdCBpcyBub3Qgc3VwcG9ydGVkIiA+JjIKKyAgICAgICAgOzsKKyAgICBlc2FjCisgICAgaWYgdGVzdCAtbiAiJHtjcm9zc19jYWNoZX0iICYmIHRlc3QgLXIgIiR7Y3Jvc3NfY2FjaGV9IjsgdGhlbgorICAgICAgICBlY2hvICJsb2FkaW5nIGNyb3NzLWJ1aWxkIGNhY2hlIGZpbGUgJHtjcm9zc19jYWNoZX0iCisgICAgICAgIC4gJHtjcm9zc19jYWNoZX0KKyAgICBmaQorICAgIHVuc2V0IGNyb3NzX2NhY2hlCisgICAgQ1JPU1NfQ09NUElMRT0nLURDUk9TU19DT01QSUxJTkcnCisgICAgQUNfU1VCU1QoQ1JPU1NfQ09NUElMRSkKK2ZpCisKIGVjaG8gIiIKIGVjaG8gIkJlZ2lubmluZyBjb25maWd1cmF0aW9uIGZvciByZWFkbGluZS0kTElCVkVSU0lPTiBmb3IgJHtob3N0X2NwdX0tJHtob3N0X3ZlbmRvcn0tJHtob3N0X29zfSIKIGVjaG8gIiIKQEAgLTcyLDE3ICsxMzMsMjkgQEAKIEFDX1RZUEVfU0laRV9UCiBBQ19DSEVDS19UWVBFKHNzaXplX3QsIGludCkKIAorQUNfSEVBREVSX1NUREMKKwogQUNfSEVBREVSX1NUQVQKIEFDX0hFQURFUl9ESVJFTlQKIAotQUNfQ0hFQ0tfRlVOQ1MobHN0YXQgbWVtbW92ZSBwdXRlbnYgc2VsZWN0IHNldGVudiBzZXRsb2NhbGUgXAotCQlzdHJjYXNlY21wIHN0cnBicmsgdGNnZXRhdHRyIHZzbnByaW50ZiBpc2FzY2lpIGlzeGRpZ2l0KQorQUNfQ0hFQ0tfRlVOQ1MoZmNudGwga2lsbCBsc3RhdCkKK0FDX0NIRUNLX0ZVTkNTKG1lbW1vdmUgcHV0ZW52IHNlbGVjdCBzZXRlbnYgc2V0bG9jYWxlIFwKKwkJc3RyY2FzZWNtcCBzdHJwYnJrIHRjZ2V0YXR0ciB2c25wcmludGYpCitBQ19DSEVDS19GVU5DUyhpc2FzY2lpIGlzeGRpZ2l0KQorQUNfQ0hFQ0tfRlVOQ1MoZ2V0cHdlbnQgZ2V0cHduYW0gZ2V0cHd1aWQpCiAKIEFDX0ZVTkNfU1RSQ09MTAogCi1BQ19DSEVDS19IRUFERVJTKHVuaXN0ZC5oIHN0ZGxpYi5oIHZhcmFyZ3MuaCBzdGRhcmcuaCBzdHJpbmcuaCBzdHJpbmdzLmggXAotCQlsaW1pdHMuaCBzeXMvcHRlbS5oIHN5cy9wdGUuaCBzeXMvc3RyZWFtLmggc3lzL3NlbGVjdC5oIFwKLQkJdGVybWNhcC5oIHRlcm1pb3MuaCB0ZXJtaW8uaCBzeXMvZmlsZS5oIGxvY2FsZS5oIG1lbW9yeS5oICkKK0FDX0NIRUNLX0hFQURFUlMoZmNudGwuaCB1bmlzdGQuaCBzdGRsaWIuaCB2YXJhcmdzLmggc3RkYXJnLmggc3RyaW5nLmggc3RyaW5ncy5oIFwKKwkJbGltaXRzLmggbG9jYWxlLmggcHdkLmggbWVtb3J5LmggdGVybWNhcC5oIHRlcm1pb3MuaCB0ZXJtaW8uaCkKK0FDX0NIRUNLX0hFQURFUlMoc3lzL3B0ZS5oIHN5cy9zdHJlYW0uaCBzeXMvc2VsZWN0Lmggc3lzL2ZpbGUuaCkKKworQUNfQ0hFQ0tfSEVBREVSUyhzeXMvcHRlbS5oLCwsCitbWworI2lmIEhBVkVfU1lTX1NUUkVBTV9ICisjICBpbmNsdWRlIDxzeXMvc3RyZWFtLmg+CisjZW5kaWYKK11dKQogCiBCQVNIX1NZU19TSUdOQUxfVklOVEFHRQogQkFTSF9TWVNfUkVJTlNUQUxMX1NJR0hBTkRMRVJTCkBAIC05MCw2ICsxNjMsNyBAQAogQkFTSF9GVU5DX1BPU0lYX1NFVEpNUAogQkFTSF9GVU5DX0xTVEFUCiBCQVNIX0ZVTkNfU1RSQ09MTAorQkFTSF9GVU5DX0NUWVBFX05PTkFTQ0lJCiAKIEJBU0hfQ0hFQ0tfR0VUUFdfRlVOQ1MKIApAQCAtMTM0LDcgKzIwOCwxMyBAQAogIwogaWYgdGVzdCAtZiAke3NyY2Rpcn0vc3VwcG9ydC9zaG9iai1jb25mOyB0aGVuCiAgICAgICAgIEFDX01TR19DSEVDS0lORyhjb25maWd1cmF0aW9uIGZvciBidWlsZGluZyBzaGFyZWQgbGlicmFyaWVzKQotICAgICAgICBldmFsIGAke0NPTkZJR19TSEVMTC0vYmluL3NofSAke3NyY2Rpcn0vc3VwcG9ydC9zaG9iai1jb25mIC1DICIke0NDfSIgLWMgJHtob3N0X2NwdX0gLW8gJHtob3N0X29zfSAtdiAke2hvc3RfdmVuZG9yfWAKKyAgICAgICAgZXZhbCBgVEVSTUNBUF9MSUI9JFRFUk1DQVBfTElCICR7Q09ORklHX1NIRUxMLS9iaW4vc2h9ICR7c3JjZGlyfS9zdXBwb3J0L3Nob2JqLWNvbmYgLUMgIiR7Q0N9IiAtYyAke2hvc3RfY3B1fSAtbyAke2hvc3Rfb3N9IC12ICR7aG9zdF92ZW5kb3J9YAorCisjCWNhc2UgIiRTSExJQl9MSUJTIiBpbgorIwkqY3Vyc2VzKnwqdGVybWNhcCp8KnRlcm1saWIqKQk7OworIwkqKQkJCVNITElCX0xJQlM9IiRTSExJQl9MSUJTICRURVJNQ0FQX0xJQiIgOzsKKyMJZXNhYworCQogICAgICAgICBBQ19TVUJTVChTSE9CSl9DQykKICAgICAgICAgQUNfU1VCU1QoU0hPQkpfQ0ZMQUdTKQogICAgICAgICBBQ19TVUJTVChTSE9CSl9MRCkKQEAgLTE0NCw4ICsyMjQsMTEgQEAKICAgICAgICAgQUNfU1VCU1QoU0hPQkpfU1RBVFVTKQogCUFDX1NVQlNUKFNITElCX1NUQVRVUykKIAlBQ19TVUJTVChTSExJQl9YTERGTEFHUykKKwlBQ19TVUJTVChTSExJQl9ET1QpCisJQUNfU1VCU1QoU0hMSUJfTElCUFJFRikKIAlBQ19TVUJTVChTSExJQl9MSUJTVUZGKQogCUFDX1NVQlNUKFNITElCX0xJQlZFUlNJT04pCisJQUNfU1VCU1QoU0hMSUJfRExMVkVSU0lPTikKIAlBQ19TVUJTVChTSExJQl9MSUJTKQogICAgICAgICBBQ19NU0dfUkVTVUxUKCRTSExJQl9TVEFUVVMpCiAKQEAgLTE4Miw2ICsyNjUsMTIgQEAKICopCQlCVUlMRF9ESVI9YHB3ZGAgOzsKIGVzYWMKIAorY2FzZSAiJEJVSUxEX0RJUiIgaW4KKypcICopCUJVSUxEX0RJUj1gZWNobyAiJEJVSUxEX0RJUiIgfCBzZWQgJ3M6IDpcXFxcIDpnJ2AgOzsKKyopCTs7Citlc2FjCisKK0FDX1NVQlNUKFBVUklGWSkKIEFDX1NVQlNUKEJVSUxEX0RJUikKIAogQUNfU1VCU1QoQ0ZMQUdTKQpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvZGlzcGxheS5jIGIvcmVhZGxpbmUvZGlzcGxheS5jCmluZGV4IDUxNTBlYTYuLmIyMjUyMWIgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL2Rpc3BsYXkuYworKysgYi9yZWFkbGluZS9kaXNwbGF5LmMKQEAgLTEsNiArMSw2IEBACiAvKiBkaXNwbGF5LmMgLS0gcmVhZGxpbmUgcmVkaXNwbGF5IGZhY2lsaXR5LiAqLwogCi0vKiBDb3B5cmlnaHQgKEMpIDE5ODcsIDE5ODksIDE5OTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisvKiBDb3B5cmlnaHQgKEMpIDE5ODctMjAwNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBSZWFkbGluZSBMaWJyYXJ5LCBhIGxpYnJhcnkgZm9yCiAgICByZWFkaW5nIGxpbmVzIG9mIHRleHQgd2l0aCBpbnRlcmFjdGl2ZSBpbnB1dCBhbmQgaGlzdG9yeSBlZGl0aW5nLgpAQCAtNzAsNyArNzAsNyBAQAogc3RhdGljIHZvaWQgY3IgUEFSQU1TKCh2b2lkKSk7CiAKICNpZiBkZWZpbmVkIChIQU5ETEVfTVVMVElCWVRFKQotc3RhdGljIGludCBfcmxfY29sX3dpZHRoIFBBUkFNUygoY2hhciAqLCBpbnQsIGludCkpOworc3RhdGljIGludCBfcmxfY29sX3dpZHRoIFBBUkFNUygoY29uc3QgY2hhciAqLCBpbnQsIGludCkpOwogc3RhdGljIGludCAqX3JsX3dyYXBwZWRfbGluZTsKICNlbHNlCiAjICBkZWZpbmUgX3JsX2NvbF93aWR0aChsLCBzLCBlKQkoKChlKSA8PSAocykpID8gMCA6IChlKSAtIChzKSkKQEAgLTExOCwxNiArMTE4LDI0IEBACiBpbnQgcmxfZGlzcGxheV9maXhlZCA9IDA7CiAKIGludCBfcmxfc3VwcHJlc3NfcmVkaXNwbGF5ID0gMDsKK2ludCBfcmxfd2FudF9yZWRpc3BsYXkgPSAwOwogCiAvKiBUaGUgc3R1ZmYgdGhhdCBnZXRzIHByaW50ZWQgb3V0IGJlZm9yZSB0aGUgYWN0dWFsIHRleHQgb2YgdGhlIGxpbmUuCiAgICBUaGlzIGlzIHVzdWFsbHkgcG9pbnRpbmcgdG8gcmxfcHJvbXB0LiAqLwogY2hhciAqcmxfZGlzcGxheV9wcm9tcHQgPSAoY2hhciAqKU5VTEw7CiAKIC8qIFBzZXVkby1nbG9iYWwgdmFyaWFibGVzIGRlY2xhcmVkIGhlcmUuICovCisKIC8qIFRoZSB2aXNpYmxlIGN1cnNvciBwb3NpdGlvbi4gIElmIHlvdSBwcmludCBzb21lIHRleHQsIGFkanVzdCB0aGlzLiAqLworLyogTk9URTogX3JsX2xhc3RfY19wb3MgaXMgdXNlZCBhcyBhIGJ1ZmZlciBpbmRleCB3aGVuIG5vdCBpbiBhIGxvY2FsZQorICAgc3VwcG9ydGluZyBtdWx0aWJ5dGUgY2hhcmFjdGVycywgYW5kIGFuIGFic29sdXRlIGN1cnNvciBwb3NpdGlvbiB3aGVuCisgICBpbiBzdWNoIGEgbG9jYWxlLiAgVGhpcyBpcyBhbiBhcnRpZmFjdCBvZiB0aGUgZG9uYXRlZCBtdWx0aWJ5dGUgc3VwcG9ydC4KKyAgIENhcmUgbXVzdCBiZSB0YWtlbiB3aGVuIG1vZGlmeWluZyBpdHMgdmFsdWUuICovCiBpbnQgX3JsX2xhc3RfY19wb3MgPSAwOwogaW50IF9ybF9sYXN0X3ZfcG9zID0gMDsKIAorc3RhdGljIGludCBjcG9zX2FkanVzdGVkOworCiAvKiBOdW1iZXIgb2YgbGluZXMgY3VycmVudGx5IG9uIHNjcmVlbiBtaW51cyAxLiAqLwogaW50IF9ybF92aXNfYm90bGluID0gMDsKIApAQCAtMTc4LDEyICsxODYsMjcgQEAKIAogc3RhdGljIGludCBwcm9tcHRfbGFzdF9zY3JlZW5fbGluZTsKIAorc3RhdGljIGludCBwcm9tcHRfcGh5c2ljYWxfY2hhcnM7CisKKy8qIFZhcmlhYmxlcyB0byBzYXZlIGFuZCByZXN0b3JlIHByb21wdCBhbmQgZGlzcGxheSBpbmZvcm1hdGlvbi4gKi8KKworLyogVGhlc2UgYXJlIGdldHRpbmcgbnVtZXJvdXMgZW5vdWdoIHRoYXQgaXQncyB0aW1lIHRvIGNyZWF0ZSBhIHN0cnVjdC4gKi8KKworc3RhdGljIGNoYXIgKnNhdmVkX2xvY2FsX3Byb21wdDsKK3N0YXRpYyBjaGFyICpzYXZlZF9sb2NhbF9wcmVmaXg7CitzdGF0aWMgaW50IHNhdmVkX2xhc3RfaW52aXNpYmxlOworc3RhdGljIGludCBzYXZlZF92aXNpYmxlX2xlbmd0aDsKK3N0YXRpYyBpbnQgc2F2ZWRfcHJlZml4X2xlbmd0aDsKK3N0YXRpYyBpbnQgc2F2ZWRfaW52aXNfY2hhcnNfZmlyc3RfbGluZTsKK3N0YXRpYyBpbnQgc2F2ZWRfcGh5c2ljYWxfY2hhcnM7CisKIC8qIEV4cGFuZCB0aGUgcHJvbXB0IHN0cmluZyBTIGFuZCByZXR1cm4gdGhlIG51bWJlciBvZiB2aXNpYmxlCiAgICBjaGFyYWN0ZXJzIGluICpMUCwgaWYgTFAgaXMgbm90IG51bGwuICBUaGlzIGlzIGN1cnJlbnRseSBtb3JlLW9yLWxlc3MKICAgIGEgcGxhY2Vob2xkZXIgZm9yIGV4cGFuc2lvbi4gIExJUCwgaWYgbm9uLW51bGwgaXMgYSBwbGFjZSB0byBzdG9yZSB0aGUKICAgIGluZGV4IG9mIHRoZSBsYXN0IGludmlzaWJsZSBjaGFyYWN0ZXIgaW4gdGhlIHJldHVybmVkIHN0cmluZy4gTklGTFAsCiAgICBpZiBub24temVybywgaXMgYSBwbGFjZSB0byBzdG9yZSB0aGUgbnVtYmVyIG9mIGludmlzaWJsZSBjaGFyYWN0ZXJzIGluCi0gICB0aGUgZmlyc3QgcHJvbXB0IGxpbmUuICovCisgICB0aGUgZmlyc3QgcHJvbXB0IGxpbmUuICBUaGUgcHJldmlvdXMgYXJlIHVzZWQgYXMgYnl0ZSBjb3VudHMgLS0gaW5kZXhlcworICAgaW50byBhIGNoYXJhY3RlciBidWZmZXIuICovCiAKIC8qIEN1cnJlbnQgaW1wbGVtZW50YXRpb246CiAJXDAwMSAoXkEpIHN0YXJ0IG5vbi12aXNpYmxlIGNoYXJhY3RlcnMKQEAgLTE5MywxOSArMjE2LDI1IEBACiAgICBcMDAyIGFyZSBhc3N1bWVkIHRvIGJlIGB2aXNpYmxlJy4gKi8JCiAKIHN0YXRpYyBjaGFyICoKLWV4cGFuZF9wcm9tcHQgKHBtdCwgbHAsIGxpcCwgbmlmbHApCitleHBhbmRfcHJvbXB0IChwbXQsIGxwLCBsaXAsIG5pZmxwLCB2bHApCiAgICAgIGNoYXIgKnBtdDsKLSAgICAgaW50ICpscCwgKmxpcCwgKm5pZmxwOworICAgICBpbnQgKmxwLCAqbGlwLCAqbmlmbHAsICp2bHA7CiB7CiAgIGNoYXIgKnIsICpyZXQsICpwOwotICBpbnQgbCwgcmwsIGxhc3QsIGlnbm9yaW5nLCBuaW52aXMsIGludmZsOworICBpbnQgbCwgcmwsIGxhc3QsIGlnbm9yaW5nLCBuaW52aXMsIGludmZsLCBpbnZmbHNldCwgaW5kLCBwaW5kLCBwaHlzY2hhcnM7CiAKICAgLyogU2hvcnQtY2lyY3VpdCBpZiB3ZSBjYW4uICovCi0gIGlmIChzdHJjaHIgKHBtdCwgUkxfUFJPTVBUX1NUQVJUX0lHTk9SRSkgPT0gMCkKKyAgaWYgKChNQl9DVVJfTUFYIDw9IDEgfHwgcmxfYnl0ZV9vcmllbnRlZCkgJiYgc3RyY2hyIChwbXQsIFJMX1BST01QVF9TVEFSVF9JR05PUkUpID09IDApCiAgICAgewogICAgICAgciA9IHNhdmVzdHJpbmcgKHBtdCk7CiAgICAgICBpZiAobHApCiAJKmxwID0gc3RybGVuIChyKTsKKyAgICAgIGlmIChsaXApCisJKmxpcCA9IDA7CisgICAgICBpZiAobmlmbHApCisJKm5pZmxwID0gMDsKKyAgICAgIGlmICh2bHApCisJKnZscCA9IGxwID8gKmxwIDogc3RybGVuIChyKTsKICAgICAgIHJldHVybiByOwogICAgIH0KIApAQCAtMjEzLDggKzI0Miw5IEBACiAgIHIgPSByZXQgPSAoY2hhciAqKXhtYWxsb2MgKGwgKyAxKTsKIAogICBpbnZmbCA9IDA7CS8qIGludmlzaWJsZSBjaGFycyBpbiBmaXJzdCBsaW5lIG9mIHByb21wdCAqLworICBpbnZmbHNldCA9IDA7CS8qIHdlIG9ubHkgd2FudCB0byBzZXQgaW52Zmwgb25jZSAqLwogCi0gIGZvciAocmwgPSBpZ25vcmluZyA9IGxhc3QgPSBuaW52aXMgPSAwLCBwID0gcG10OyBwICYmICpwOyBwKyspCisgIGZvciAocmwgPSBpZ25vcmluZyA9IGxhc3QgPSBuaW52aXMgPSBwaHlzY2hhcnMgPSAwLCBwID0gcG10OyBwICYmICpwOyBwKyspCiAgICAgewogICAgICAgLyogVGhpcyBjb2RlIHN0cmlwcyB0aGUgaW52aXNpYmxlIGNoYXJhY3RlciBzdHJpbmcgbWFya2VycwogCSBSTF9QUk9NUFRfU1RBUlRfSUdOT1JFIGFuZCBSTF9QUk9NUFRfRU5EX0lHTk9SRSAqLwpAQCAtMjI2LDE4ICsyNTYsNDcgQEAKICAgICAgIGVsc2UgaWYgKGlnbm9yaW5nICYmICpwID09IFJMX1BST01QVF9FTkRfSUdOT1JFKQogCXsKIAkgIGlnbm9yaW5nID0gMDsKLQkgIGxhc3QgPSByIC0gcmV0IC0gMTsKKwkgIGlmIChwWy0xXSAhPSBSTF9QUk9NUFRfU1RBUlRfSUdOT1JFKQorCSAgICBsYXN0ID0gciAtIHJldCAtIDE7CiAJICBjb250aW51ZTsKIAl9CiAgICAgICBlbHNlCiAJewotCSAgKnIrKyA9ICpwOwotCSAgaWYgKCFpZ25vcmluZykKLQkgICAgcmwrKzsKKyNpZiBkZWZpbmVkIChIQU5ETEVfTVVMVElCWVRFKQorCSAgaWYgKE1CX0NVUl9NQVggPiAxICYmIHJsX2J5dGVfb3JpZW50ZWQgPT0gMCkKKwkgICAgeworCSAgICAgIHBpbmQgPSBwIC0gcG10OworCSAgICAgIGluZCA9IF9ybF9maW5kX25leHRfbWJjaGFyIChwbXQsIHBpbmQsIDEsIE1CX0ZJTkRfTk9OWkVSTyk7CisJICAgICAgbCA9IGluZCAtIHBpbmQ7CisJICAgICAgd2hpbGUgKGwtLSkKKwkgICAgICAgICpyKysgPSAqcCsrOworCSAgICAgIGlmICghaWdub3JpbmcpCisJCXsKKwkJICBybCArPSBpbmQgLSBwaW5kOworCQkgIHBoeXNjaGFycyArPSBfcmxfY29sX3dpZHRoIChwbXQsIHBpbmQsIGluZCk7CisJCX0KKwkgICAgICBlbHNlCisJCW5pbnZpcyArPSBpbmQgLSBwaW5kOworCSAgICAgIHAtLTsJCQkvKiBjb21wZW5zYXRlIGZvciBsYXRlciBpbmNyZW1lbnQgKi8KKwkgICAgfQogCSAgZWxzZQotCSAgICBuaW52aXMrKzsKLQkgIGlmIChybCA9PSBfcmxfc2NyZWVud2lkdGgpCi0JICAgIGludmZsID0gbmludmlzOworI2VuZGlmCisJICAgIHsKKwkgICAgICAqcisrID0gKnA7CisJICAgICAgaWYgKCFpZ25vcmluZykKKwkJeworCQkgIHJsKys7CQkJLyogdmlzaWJsZSBsZW5ndGggYnl0ZSBjb3VudGVyICovCisJCSAgcGh5c2NoYXJzKys7CisJCX0KKwkgICAgICBlbHNlCisJCW5pbnZpcysrOwkJLyogaW52aXNpYmxlIGNoYXJzIGJ5dGUgY291bnRlciAqLworCSAgICB9CisKKwkgIGlmIChpbnZmbHNldCA9PSAwICYmIHJsID49IF9ybF9zY3JlZW53aWR0aCkKKwkgICAgeworCSAgICAgIGludmZsID0gbmludmlzOworCSAgICAgIGludmZsc2V0ID0gMTsKKwkgICAgfQogCX0KICAgICB9CiAKQEAgLTI1MSw2ICszMTAsOCBAQAogICAgICpsaXAgPSBsYXN0OwogICBpZiAobmlmbHApCiAgICAgKm5pZmxwID0gaW52Zmw7CisgIGlmICAodmxwKQorICAgICp2bHAgPSBwaHlzY2hhcnM7CiAgIHJldHVybiByZXQ7CiB9CiAKQEAgLTI2Miw3ICszMjMsNyBAQAogewogICBjaGFyICpyZXQ7CiAKLSAgcmV0ID0gZXhwYW5kX3Byb21wdCAocG10LCAoaW50ICopTlVMTCwgKGludCAqKU5VTEwsIChpbnQgKilOVUxMKTsKKyAgcmV0ID0gZXhwYW5kX3Byb21wdCAocG10LCAoaW50ICopTlVMTCwgKGludCAqKU5VTEwsIChpbnQgKilOVUxMLCAoaW50ICopTlVMTCk7CiAgIHJldHVybiByZXQ7CiB9CiAKQEAgLTI5NSw3ICszNTYsOCBAQAogICBGUkVFIChsb2NhbF9wcm9tcHRfcHJlZml4KTsKIAogICBsb2NhbF9wcm9tcHQgPSBsb2NhbF9wcm9tcHRfcHJlZml4ID0gKGNoYXIgKikwOwotICBwcm9tcHRfbGFzdF9pbnZpc2libGUgPSBwcm9tcHRfdmlzaWJsZV9sZW5ndGggPSAwOworICBwcm9tcHRfbGFzdF9pbnZpc2libGUgPSBwcm9tcHRfaW52aXNfY2hhcnNfZmlyc3RfbGluZSA9IDA7CisgIHByb21wdF92aXNpYmxlX2xlbmd0aCA9IHByb21wdF9waHlzaWNhbF9jaGFycyA9IDA7CiAKICAgaWYgKHByb21wdCA9PSAwIHx8ICpwcm9tcHQgPT0gMCkKICAgICByZXR1cm4gKDApOwpAQCAtMzA2LDcgKzM2OCw4IEBACiAgICAgICAvKiBUaGUgcHJvbXB0IGlzIG9ubHkgb25lIGxvZ2ljYWwgbGluZSwgdGhvdWdoIGl0IG1pZ2h0IHdyYXAuICovCiAgICAgICBsb2NhbF9wcm9tcHQgPSBleHBhbmRfcHJvbXB0IChwcm9tcHQsICZwcm9tcHRfdmlzaWJsZV9sZW5ndGgsCiAJCQkJCSAgICAmcHJvbXB0X2xhc3RfaW52aXNpYmxlLAotCQkJCQkgICAgJnByb21wdF9pbnZpc19jaGFyc19maXJzdF9saW5lKTsKKwkJCQkJICAgICZwcm9tcHRfaW52aXNfY2hhcnNfZmlyc3RfbGluZSwKKwkJCQkJICAgICZwcm9tcHRfcGh5c2ljYWxfY2hhcnMpOwogICAgICAgbG9jYWxfcHJvbXB0X3ByZWZpeCA9IChjaGFyICopMDsKICAgICAgIHJldHVybiAocHJvbXB0X3Zpc2libGVfbGVuZ3RoKTsKICAgICB9CkBAIC0zMTYsMTMgKzM3OSwxNSBAQAogICAgICAgdCA9ICsrcDsKICAgICAgIGxvY2FsX3Byb21wdCA9IGV4cGFuZF9wcm9tcHQgKHAsICZwcm9tcHRfdmlzaWJsZV9sZW5ndGgsCiAJCQkJICAgICAgICZwcm9tcHRfbGFzdF9pbnZpc2libGUsCi0JCQkJICAgICAgICZwcm9tcHRfaW52aXNfY2hhcnNfZmlyc3RfbGluZSk7CisJCQkJICAgICAgIChpbnQgKilOVUxMLAorCQkJCSAgICAgICAmcHJvbXB0X3BoeXNpY2FsX2NoYXJzKTsKICAgICAgIGMgPSAqdDsgKnQgPSAnXDAnOwogICAgICAgLyogVGhlIHBvcnRpb24gb2YgdGhlIHByb21wdCBzdHJpbmcgdXAgdG8gYW5kIGluY2x1ZGluZyB0aGUKIAkgZmluYWwgbmV3bGluZSBpcyBub3cgbnVsbC10ZXJtaW5hdGVkLiAqLwogICAgICAgbG9jYWxfcHJvbXB0X3ByZWZpeCA9IGV4cGFuZF9wcm9tcHQgKHByb21wdCwgJnByb21wdF9wcmVmaXhfbGVuZ3RoLAogCQkJCQkJICAgKGludCAqKU5VTEwsCi0JCQkJCQkgICAmcHJvbXB0X2ludmlzX2NoYXJzX2ZpcnN0X2xpbmUpOworCQkJCQkJICAgJnByb21wdF9pbnZpc19jaGFyc19maXJzdF9saW5lLAorCQkJCQkJICAgKGludCAqKU5VTEwpOwogICAgICAgKnQgPSBjOwogICAgICAgcmV0dXJuIChwcm9tcHRfcHJlZml4X2xlbmd0aCk7CiAgICAgfQpAQCAtMzgwLDggKzQ0NSw4IEBACiB7CiAgIHJlZ2lzdGVyIGludCBpbiwgb3V0LCBjLCBsaW5lbnVtLCBjdXJzb3JfbGluZW51bTsKICAgcmVnaXN0ZXIgY2hhciAqbGluZTsKLSAgaW50IGNfcG9zLCBpbnZfYm90bGluLCBsYl9ib3RsaW4sIGxiX2xpbmVudW07Ci0gIGludCBuZXdsaW5lcywgbHBvcywgdGVtcDsKKyAgaW50IGNfcG9zLCBpbnZfYm90bGluLCBsYl9ib3RsaW4sIGxiX2xpbmVudW0sIG9fY3BvczsKKyAgaW50IG5ld2xpbmVzLCBscG9zLCB0ZW1wLCBtb2RtYXJrLCBuMCwgbnVtOwogICBjaGFyICpwcm9tcHRfdGhpc19saW5lOwogI2lmIGRlZmluZWQgKEhBTkRMRV9NVUxUSUJZVEUpCiAgIHdjaGFyX3Qgd2M7CkBAIC0zOTcsNyArNDYyLDcgQEAKICAgaWYgKCFybF9kaXNwbGF5X3Byb21wdCkKICAgICBybF9kaXNwbGF5X3Byb21wdCA9ICIiOwogCi0gIGlmIChpbnZpc2libGVfbGluZSA9PSAwKQorICBpZiAoaW52aXNpYmxlX2xpbmUgPT0gMCB8fCB2aXNfbGJyZWFrcyA9PSAwKQogICAgIHsKICAgICAgIGluaXRfbGluZV9zdHJ1Y3R1cmVzICgwKTsKICAgICAgIHJsX29uX25ld19saW5lICgpOwpAQCAtNDExLDEwICs0NzYsMTIgQEAKIAogICAvKiBNYXJrIHRoZSBsaW5lIGFzIG1vZGlmaWVkIG9yIG5vdC4gIFdlIG9ubHkgZG8gdGhpcyBmb3IgaGlzdG9yeQogICAgICBsaW5lcy4gKi8KKyAgbW9kbWFyayA9IDA7CiAgIGlmIChfcmxfbWFya19tb2RpZmllZF9saW5lcyAmJiBjdXJyZW50X2hpc3RvcnkgKCkgJiYgcmxfdW5kb19saXN0KQogICAgIHsKICAgICAgIGxpbmVbb3V0KytdID0gJyonOwogICAgICAgbGluZVtvdXRdID0gJ1wwJzsKKyAgICAgIG1vZG1hcmsgPSAxOwogICAgIH0KIAogICAvKiBJZiBzb21lb25lIHRob3VnaHQgdGhhdCB0aGUgcmVkaXNwbGF5IHdhcyBoYW5kbGVkLCBidXQgdGhlIGN1cnJlbnRseQpAQCAtNDY4LDcgKzUzNSw3IEBACiAJICAgIH0KIAl9CiAKLSAgICAgIHBtdGxlbiA9IHN0cmxlbiAocHJvbXB0X3RoaXNfbGluZSk7CisgICAgICBwcm9tcHRfcGh5c2ljYWxfY2hhcnMgPSBwbXRsZW4gPSBzdHJsZW4gKHByb21wdF90aGlzX2xpbmUpOwogICAgICAgdGVtcCA9IHBtdGxlbiArIG91dCArIDI7CiAgICAgICBpZiAodGVtcCA+PSBsaW5lX3NpemUpCiAJewpAQCAtNTI3LDkgKzU5NCwxNSBAQAogCiAgIC8qIGludl9sYnJlYWtzW2ldIGlzIHdoZXJlIGxpbmUgaSBzdGFydHMgaW4gdGhlIGJ1ZmZlci4gKi8KICAgaW52X2xicmVha3NbbmV3bGluZXMgPSAwXSA9IDA7CisjaWYgMAogICBscG9zID0gb3V0IC0gd3JhcF9vZmZzZXQ7CisjZWxzZQorICBscG9zID0gcHJvbXB0X3BoeXNpY2FsX2NoYXJzICsgbW9kbWFyazsKKyNlbmRpZgorCiAjaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKICAgbWVtc2V0IChfcmxfd3JhcHBlZF9saW5lLCAwLCB2aXNfbGJzaXplKTsKKyAgbnVtID0gMDsKICNlbmRpZgogCiAgIC8qIHByb21wdF9pbnZpc19jaGFyc19maXJzdF9saW5lIGlzIHRoZSBudW1iZXIgb2YgaW52aXNpYmxlIGNoYXJhY3RlcnMgaW4KQEAgLTU0NiwxNyArNjE5LDM0IEBACiAgICAgICAgICBwcm9tcHRfaW52aXNfY2hhcnNfZmlyc3RfbGluZSB2YXJpYWJsZSBjb3VsZCBiZSBtYWRlIGludG8gYW4gYXJyYXkKICAgICAgICAgIHNheWluZyBob3cgbWFueSBpbnZpc2libGUgY2hhcmFjdGVycyB0aGVyZSBhcmUgcGVyIGxpbmUsIGJ1dCB0aGF0J3MKICAgICAgICAgIHByb2JhYmx5IHRvbyBtdWNoIHdvcmsgZm9yIHRoZSBiZW5lZml0IGdhaW5lZC4gIEhvdyBtYW55IHBlb3BsZSBoYXZlCi0gICAgICAgICBwcm9tcHRzIHRoYXQgZXhjZWVkIHR3byBwaHlzaWNhbCBsaW5lcz8gKi8KLSAgICAgIHRlbXAgPSAoKG5ld2xpbmVzICsgMSkgKiBfcmxfc2NyZWVud2lkdGgpICsKLSNpZiAwCi0gICAgICAgICAgICAgKChuZXdsaW5lcyA9PSAwKSA/IHByb21wdF9pbnZpc19jaGFyc19maXJzdF9saW5lIDogMCkgKworICAgICAgICAgcHJvbXB0cyB0aGF0IGV4Y2VlZCB0d28gcGh5c2ljYWwgbGluZXM/CisgICAgICAgICBBZGRpdGlvbmFsIGxvZ2ljIGZpeCBmcm9tIEVkd2FyZCBDYXRtdXIgPGVkQGNhdG11ci5jby51az4gKi8KKyNpZiBkZWZpbmVkIChIQU5ETEVfTVVMVElCWVRFKQorICAgICAgbjAgPSBudW07CisgICAgICB0ZW1wID0gbG9jYWxfcHJvbXB0ID8gc3RybGVuIChsb2NhbF9wcm9tcHQpIDogMDsKKyAgICAgIHdoaWxlIChudW0gPCB0ZW1wKQorCXsKKwkgIGlmIChfcmxfY29sX3dpZHRoICAobG9jYWxfcHJvbXB0LCBuMCwgbnVtKSA+IF9ybF9zY3JlZW53aWR0aCkKKwkgICAgeworCSAgICAgIG51bSA9IF9ybF9maW5kX3ByZXZfbWJjaGFyIChsb2NhbF9wcm9tcHQsIG51bSwgTUJfRklORF9BTlkpOworCSAgICAgIGJyZWFrOworCSAgICB9CisJICBudW0rKzsKKwl9CisgICAgICB0ZW1wID0gbnVtICsKICNlbHNlCi0gICAgICAgICAgICAgKChuZXdsaW5lcyA9PSAwICYmIGxvY2FsX3Byb21wdF9wcmVmaXggPT0gMCkgPyBwcm9tcHRfaW52aXNfY2hhcnNfZmlyc3RfbGluZSA6IDApICsKLSNlbmRpZgotICAgICAgICAgICAgICgobmV3bGluZXMgPT0gMSkgPyB3cmFwX29mZnNldCA6IDApOwotCisgICAgICB0ZW1wID0gKChuZXdsaW5lcyArIDEpICogX3JsX3NjcmVlbndpZHRoKSArCisjZW5kaWYgLyogIUhBTkRMRV9NVUxUSUJZVEUgKi8KKyAgICAgICAgICAgICAoKGxvY2FsX3Byb21wdF9wcmVmaXggPT0gMCkgPyAoKG5ld2xpbmVzID09IDApID8gcHJvbXB0X2ludmlzX2NoYXJzX2ZpcnN0X2xpbmUKKwkJCQkJCQkgICAgOiAoKG5ld2xpbmVzID09IDEpID8gd3JhcF9vZmZzZXQgOiAwKSkKKwkJCQkJIDogKChuZXdsaW5lcyA9PSAwKSA/IHdyYXBfb2Zmc2V0IDowKSk7CisgICAgICAgICAgICAgCiAgICAgICBpbnZfbGJyZWFrc1srK25ld2xpbmVzXSA9IHRlbXA7CisjaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKKyAgICAgIGxwb3MgLT0gX3JsX2NvbF93aWR0aCAobG9jYWxfcHJvbXB0LCBuMCwgbnVtKTsKKyNlbHNlCiAgICAgICBscG9zIC09IF9ybF9zY3JlZW53aWR0aDsKKyNlbmRpZgogICAgIH0KIAogICBwcm9tcHRfbGFzdF9zY3JlZW5fbGluZSA9IG5ld2xpbmVzOwpAQCAtNTg2LDcgKzY3Niw3IEBACiAjaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKICAgICAgIGlmIChNQl9DVVJfTUFYID4gMSAmJiBybF9ieXRlX29yaWVudGVkID09IDApCiAJewotCSAgaWYgKHdjX2J5dGVzID09IChzaXplX3QpLTEgfHwgd2NfYnl0ZXMgPT0gKHNpemVfdCktMikKKwkgIGlmIChNQl9JTlZBTElEQ0ggKHdjX2J5dGVzKSkKIAkgICAgewogCSAgICAgIC8qIEJ5dGUgc2VxdWVuY2UgaXMgaW52YWxpZCBvciBzaG9ydGVuZWQuICBBc3N1bWUgdGhhdCB0aGUKIAkgICAgICAgICBmaXJzdCBieXRlIHJlcHJlc2VudHMgYSBjaGFyYWN0ZXIuICovCkBAIC01OTUsMTIgKzY4NSwxMiBAQAogCSAgICAgIHdjX3dpZHRoID0gMTsKIAkgICAgICBtZW1zZXQgKCZwcywgMCwgc2l6ZW9mIChtYnN0YXRlX3QpKTsKIAkgICAgfQotCSAgZWxzZSBpZiAod2NfYnl0ZXMgPT0gKHNpemVfdCkwKQorCSAgZWxzZSBpZiAoTUJfTlVMTFdDSCAod2NfYnl0ZXMpKQogCSAgICBicmVhazsJCQkvKiBGb3VuZCAnXDAnICovCiAJICBlbHNlCiAJICAgIHsKIAkgICAgICB0ZW1wID0gd2N3aWR0aCAod2MpOwotCSAgICAgIHdjX3dpZHRoID0gKHRlbXAgPCAwKSA/IDEgOiB0ZW1wOworCSAgICAgIHdjX3dpZHRoID0gKHRlbXAgPj0gMCkgPyB0ZW1wIDogMTsKIAkgICAgfQogCX0KICNlbmRpZgpAQCAtNzY1LDcgKzg1NSw3IEBACiAKICAgaWYgKF9ybF9ob3Jpem9udGFsX3Njcm9sbF9tb2RlID09IDAgJiYgX3JsX3Rlcm1fdXAgJiYgKl9ybF90ZXJtX3VwKQogICAgIHsKLSAgICAgIGludCBubGVmdCwgcG9zLCBjaGFuZ2VkX3NjcmVlbl9saW5lOworICAgICAgaW50IG5sZWZ0LCBwb3MsIGNoYW5nZWRfc2NyZWVuX2xpbmUsIHR4OwogCiAgICAgICBpZiAoIXJsX2Rpc3BsYXlfZml4ZWQgfHwgZm9yY2VkX2Rpc3BsYXkpCiAJewpAQCAtNzk2LDkgKzg4NiwyNiBAQAogCSAgLyogRm9yIGVhY2ggbGluZSBpbiB0aGUgYnVmZmVyLCBkbyB0aGUgdXBkYXRpbmcgZGlzcGxheS4gKi8KIAkgIGZvciAobGluZW51bSA9IDA7IGxpbmVudW0gPD0gaW52X2JvdGxpbjsgbGluZW51bSsrKQogCSAgICB7CisJICAgICAgb19jcG9zID0gX3JsX2xhc3RfY19wb3M7CisJICAgICAgY3Bvc19hZGp1c3RlZCA9IDA7CiAJICAgICAgdXBkYXRlX2xpbmUgKFZJU19MSU5FKGxpbmVudW0pLCBJTlZfTElORShsaW5lbnVtKSwgbGluZW51bSwKIAkJCSAgIFZJU19MTEVOKGxpbmVudW0pLCBJTlZfTExFTihsaW5lbnVtKSwgaW52X2JvdGxpbik7CiAKKwkgICAgICAvKiB1cGRhdGVfbGluZSBwb3RlbnRpYWxseSBjaGFuZ2VzIF9ybF9sYXN0X2NfcG9zLCBidXQgZG9lc24ndAorCQkgdGFrZSBpbnZpc2libGUgY2hhcmFjdGVycyBpbnRvIGFjY291bnQsIHNpbmNlIF9ybF9sYXN0X2NfcG9zCisJCSBpcyBhbiBhYnNvbHV0ZSBjdXJzb3IgcG9zaXRpb24gaW4gYSBtdWx0aWJ5dGUgbG9jYWxlLiAgU2VlCisJCSBpZiBjb21wZW5zYXRpbmcgaGVyZSBpcyB0aGUgcmlnaHQgdGhpbmcsIG9yIGlmIHdlIGhhdmUgdG8KKwkJIGNoYW5nZSB1cGRhdGVfbGluZSBpdHNlbGYuICBUaGVyZSBpcyBvbmUgY2FzZSBpbiB3aGljaAorCQkgdXBkYXRlX2xpbmUgYWRqdXN0cyBfcmxfbGFzdF9jX3BvcyBpdHNlbGYgKHNvIGl0IGNhbiBwYXNzCisJCSBfcmxfbW92ZV9jdXJzb3JfcmVsYXRpdmUgYWNjdXJhdGUgdmFsdWVzKTsgaXQgY29tbXVuaWNhdGVzCisJCSB0aGlzIGJhY2sgYnkgc2V0dGluZyBjcG9zX2FkanVzdGVkICovCisJICAgICAgaWYgKGxpbmVudW0gPT0gMCAmJiAoTUJfQ1VSX01BWCA+IDEgJiYgcmxfYnl0ZV9vcmllbnRlZCA9PSAwKSAmJgorCQkgIGNwb3NfYWRqdXN0ZWQgPT0gMCAmJgorCQkgIF9ybF9sYXN0X2NfcG9zICE9IG9fY3BvcyAmJgorCQkgIF9ybF9sYXN0X2NfcG9zID4gd3JhcF9vZmZzZXQgJiYKKwkJICBvX2Nwb3MgPCBwcm9tcHRfbGFzdF9pbnZpc2libGUpCisJCV9ybF9sYXN0X2NfcG9zIC09IHdyYXBfb2Zmc2V0OworCQkgIAogCSAgICAgIC8qIElmIHRoaXMgaXMgdGhlIGxpbmUgd2l0aCB0aGUgcHJvbXB0LCB3ZSBtaWdodCBuZWVkIHRvCiAJCSBjb21wZW5zYXRlIGZvciBpbnZpc2libGUgY2hhcmFjdGVycyBpbiB0aGUgbmV3IGxpbmUuIERvCiAJCSB0aGlzIG9ubHkgaWYgdGhlcmUgaXMgbm90IG1vcmUgdGhhbiBvbmUgbmV3IGxpbmUgKHdoaWNoCkBAIC04MTAsNyArOTE3LDEwIEBACiAJCSAgKHdyYXBfb2Zmc2V0ID4gdmlzaWJsZV93cmFwX29mZnNldCkgJiYKIAkJICAoX3JsX2xhc3RfY19wb3MgPCB2aXNpYmxlX2ZpcnN0X2xpbmVfbGVuKSkKIAkJewotCQkgIG5sZWZ0ID0gX3JsX3NjcmVlbndpZHRoICsgd3JhcF9vZmZzZXQgLSBfcmxfbGFzdF9jX3BvczsKKwkJICBpZiAoTUJfQ1VSX01BWCA+IDEgJiYgcmxfYnl0ZV9vcmllbnRlZCA9PSAwKQorCQkgICAgbmxlZnQgPSBfcmxfc2NyZWVud2lkdGggLSBfcmxfbGFzdF9jX3BvczsKKwkJICBlbHNlCisJCSAgICBubGVmdCA9IF9ybF9zY3JlZW53aWR0aCArIHdyYXBfb2Zmc2V0IC0gX3JsX2xhc3RfY19wb3M7CiAJCSAgaWYgKG5sZWZ0KQogCQkgICAgX3JsX2NsZWFyX3RvX2VvbCAobmxlZnQpOwogCQl9CkBAIC04NDYsNyArOTU2LDcgQEAKIAkJIHRoZSBwaHlzaWNhbCBjdXJzb3IgcG9zaXRpb24gb24gdGhlIHNjcmVlbiBzdGF5cyB0aGUgc2FtZSwKIAkJIGJ1dCB0aGUgYnVmZmVyIHBvc2l0aW9uIG5lZWRzIHRvIGJlIGFkanVzdGVkIHRvIGFjY291bnQKIAkJIGZvciBpbnZpc2libGUgY2hhcmFjdGVycy4gKi8KLQkgICAgICBpZiAoY3Vyc29yX2xpbmVudW0gPT0gMCAmJiB3cmFwX29mZnNldCkKKwkgICAgICBpZiAoKE1CX0NVUl9NQVggPT0gMSB8fCBybF9ieXRlX29yaWVudGVkKSAmJiBjdXJzb3JfbGluZW51bSA9PSAwICYmIHdyYXBfb2Zmc2V0KQogCQlfcmxfbGFzdF9jX3BvcyArPSB3cmFwX29mZnNldDsKIAkgICAgfQogCkBAIC04NjcsNyArOTc3LDcgQEAKICNlbmRpZgogCSAgICAgIF9ybF9vdXRwdXRfc29tZV9jaGFycyAobG9jYWxfcHJvbXB0LCBubGVmdCk7CiAJICAgICAgaWYgKE1CX0NVUl9NQVggPiAxICYmIHJsX2J5dGVfb3JpZW50ZWQgPT0gMCkKLQkJX3JsX2xhc3RfY19wb3MgPSBfcmxfY29sX3dpZHRoKGxvY2FsX3Byb21wdCwgMCwgbmxlZnQpOworCQlfcmxfbGFzdF9jX3BvcyA9IF9ybF9jb2xfd2lkdGggKGxvY2FsX3Byb21wdCwgMCwgbmxlZnQpIC0gd3JhcF9vZmZzZXQ7CiAJICAgICAgZWxzZQogCQlfcmxfbGFzdF9jX3BvcyA9IG5sZWZ0OwogCSAgICB9CkBAIC04NzksMTggKzk4OSwzMSBAQAogCSAgICAgc3RhcnQgb2YgdGhlIGxpbmUgYW5kIHRoZSBjdXJzb3IgcG9zaXRpb24uICovCiAJICBubGVmdCA9IGNfcG9zIC0gcG9zOwogCisJICAvKiBOTEVGVCBpcyBub3cgYSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiBhIGJ1ZmZlci4gIFdoZW4gaW4gYQorCSAgICAgbXVsdGlieXRlIGxvY2FsZSwgaG93ZXZlciwgX3JsX2xhc3RfY19wb3MgaXMgYW4gYWJzb2x1dGUgY3Vyc29yCisJICAgICBwb3NpdGlvbiB0aGF0IGRvZXNuJ3QgdGFrZSBpbnZpc2libGUgY2hhcmFjdGVycyBpbiB0aGUgcHJvbXB0CisJICAgICBpbnRvIGFjY291bnQuICBXZSB1c2UgYSBmdWRnZSBmYWN0b3IgdG8gY29tcGVuc2F0ZS4gKi8KKwogCSAgLyogU2luY2UgX3JsX2JhY2tzcGFjZSgpIGRvZXNuJ3Qga25vdyBhYm91dCBpbnZpc2libGUgY2hhcmFjdGVycyBpbiB0aGUKIAkgICAgIHByb21wdCwgYW5kIHRoZXJlJ3Mgbm8gZ29vZCB3YXkgdG8gdGVsbCBpdCwgd2UgY29tcGVuc2F0ZSBmb3IKIAkgICAgIHRob3NlIGNoYXJhY3RlcnMgaGVyZSBhbmQgY2FsbCBfcmxfYmFja3NwYWNlKCkgZGlyZWN0bHkuICovCiAJICBpZiAod3JhcF9vZmZzZXQgJiYgY3Vyc29yX2xpbmVudW0gPT0gMCAmJiBubGVmdCA8IF9ybF9sYXN0X2NfcG9zKQogCSAgICB7Ci0JICAgICAgX3JsX2JhY2tzcGFjZSAoX3JsX2xhc3RfY19wb3MgLSBubGVmdCk7CiAJICAgICAgaWYgKE1CX0NVUl9NQVggPiAxICYmIHJsX2J5dGVfb3JpZW50ZWQgPT0gMCkKLQkJX3JsX2xhc3RfY19wb3MgPSBfcmxfY29sX3dpZHRoICgmdmlzaWJsZV9saW5lW3Bvc10sIDAsIG5sZWZ0KTsKKwkJdHggPSBfcmxfY29sX3dpZHRoICgmdmlzaWJsZV9saW5lW3Bvc10sIDAsIG5sZWZ0KSAtIHZpc2libGVfd3JhcF9vZmZzZXQ7CiAJICAgICAgZWxzZQotCQlfcmxfbGFzdF9jX3BvcyA9IG5sZWZ0OworCQl0eCA9IG5sZWZ0OworCSAgICAgIGlmIChfcmxfbGFzdF9jX3BvcyA+IHR4KQorCQl7CisJICAgICAgICAgIF9ybF9iYWNrc3BhY2UgKF9ybF9sYXN0X2NfcG9zIC0gdHgpOwkvKiBYWFggKi8KKwkgICAgICAgICAgX3JsX2xhc3RfY19wb3MgPSB0eDsKKwkJfQogCSAgICB9CiAKKwkgIC8qIFdlIG5lZWQgdG8gbm90ZSB0aGF0IGluIGEgbXVsdGlieXRlIGxvY2FsZSB3ZSBhcmUgZGVhbGluZyB3aXRoCisJICAgICBfcmxfbGFzdF9jX3BvcyBhcyBhbiBhYnNvbHV0ZSBjdXJzb3IgcG9zaXRpb24sIGJ1dCBtb3ZpbmcgdG8gYQorCSAgICAgcG9pbnQgc3BlY2lmaWVkIGJ5IGEgYnVmZmVyIHBvc2l0aW9uIChOTEVGVCkgdGhhdCBkb2Vzbid0IHRha2UKKwkgICAgIGludmlzaWJsZSBjaGFyYWN0ZXJzIGludG8gYWNjb3VudC4gKi8KIAkgIGlmIChNQl9DVVJfTUFYID4gMSAmJiBybF9ieXRlX29yaWVudGVkID09IDApCiAJICAgIF9ybF9tb3ZlX2N1cnNvcl9yZWxhdGl2ZSAobmxlZnQsICZpbnZpc2libGVfbGluZVtwb3NdKTsKIAkgIGVsc2UgaWYgKG5sZWZ0ICE9IF9ybF9sYXN0X2NfcG9zKQpAQCAtMTA0OSw3ICsxMTcyLDEwIEBACiAgICAgIHRoZSBleGFjdCBjdXJzb3IgcG9zaXRpb24gYW5kIGN1dC1hbmQtcGFzdGUgd2l0aCBjZXJ0YWluIHRlcm1pbmFsCiAgICAgIGVtdWxhdG9ycy4gIEluIHRoaXMgY2FsY3VsYXRpb24sIFRFTVAgaXMgdGhlIHBoeXNpY2FsIHNjcmVlbgogICAgICBwb3NpdGlvbiBvZiB0aGUgY3Vyc29yLiAqLwotICB0ZW1wID0gX3JsX2xhc3RfY19wb3MgLSBXX09GRlNFVChfcmxfbGFzdF92X3BvcywgdmlzaWJsZV93cmFwX29mZnNldCk7CisgIGlmIChNQl9DVVJfTUFYID4gMSAmJiBybF9ieXRlX29yaWVudGVkID09IDApCisgICAgdGVtcCA9IF9ybF9sYXN0X2NfcG9zOworICBlbHNlCisgICAgdGVtcCA9IF9ybF9sYXN0X2NfcG9zIC0gV19PRkZTRVQoX3JsX2xhc3Rfdl9wb3MsIHZpc2libGVfd3JhcF9vZmZzZXQpOwogICBpZiAodGVtcCA9PSBfcmxfc2NyZWVud2lkdGggJiYgX3JsX3Rlcm1fYXV0b3dyYXAgJiYgIV9ybF9ob3Jpem9udGFsX3Njcm9sbF9tb2RlCiAJJiYgX3JsX2xhc3Rfdl9wb3MgPT0gY3VycmVudF9saW5lIC0gMSkKICAgICB7CkBAIC0xMDY5LDEyICsxMTk1LDEyIEBACiAKIAkgIG1lbXNldCAoJnBzLCAwLCBzaXplb2YgKG1ic3RhdGVfdCkpOwogCSAgcmV0ID0gbWJydG93YyAoJndjLCBuZXcsIE1CX0NVUl9NQVgsICZwcyk7Ci0JICBpZiAocmV0ID09IChzaXplX3QpLTEgfHwgcmV0ID09IChzaXplX3QpLTIpCisJICBpZiAoTUJfSU5WQUxJRENIIChyZXQpKQogCSAgICB7CiAJICAgICAgdGVtcHdpZHRoID0gMTsKIAkgICAgICByZXQgPSAxOwogCSAgICB9Ci0JICBlbHNlIGlmIChyZXQgPT0gMCkKKwkgIGVsc2UgaWYgKE1CX05VTExXQ0ggKHJldCkpCiAJICAgIHRlbXB3aWR0aCA9IDA7CiAJICBlbHNlCiAJICAgIHRlbXB3aWR0aCA9IHdjd2lkdGggKHdjKTsKQEAgLTEwOTEsNyArMTIxNyw3IEBACiAJICAgICAgcmV0ID0gbWJydG93YyAoJndjLCBvbGQsIE1CX0NVUl9NQVgsICZwcyk7CiAJICAgICAgaWYgKHJldCAhPSAwICYmIGJ5dGVzICE9IDApCiAJCXsKLQkJICBpZiAocmV0ID09IChzaXplX3QpLTEgfHwgcmV0ID09IChzaXplX3QpLTIpCisJCSAgaWYgKE1CX0lOVkFMSURDSCAocmV0KSkKIAkJICAgIG1lbW1vdmUgKG9sZCtieXRlcywgb2xkKzEsIHN0cmxlbiAob2xkKzEpKTsKIAkJICBlbHNlCiAJCSAgICBtZW1tb3ZlIChvbGQrYnl0ZXMsIG9sZCtyZXQsIHN0cmxlbiAob2xkK3JldCkpOwpAQCAtMTExNCw3ICsxMjQwLDcgQEAKIAkgICAgcHV0YyAobmV3WzBdLCBybF9vdXRzdHJlYW0pOwogCSAgZWxzZQogCSAgICBwdXRjICgnICcsIHJsX291dHN0cmVhbSk7Ci0JICBfcmxfbGFzdF9jX3BvcyA9IDE7CQkvKiBYWFggKi8KKwkgIF9ybF9sYXN0X2NfcG9zID0gMTsKIAkgIF9ybF9sYXN0X3ZfcG9zKys7CiAJICBpZiAob2xkWzBdICYmIG5ld1swXSkKIAkgICAgb2xkWzBdID0gbmV3WzBdOwpAQCAtMTEyNiwxOCArMTI1MiwzNyBAQAogI2lmIGRlZmluZWQgKEhBTkRMRV9NVUxUSUJZVEUpCiAgIGlmIChNQl9DVVJfTUFYID4gMSAmJiBybF9ieXRlX29yaWVudGVkID09IDApCiAgICAgewotICAgICAgbWVtc2V0ICgmcHNfbmV3LCAwLCBzaXplb2YobWJzdGF0ZV90KSk7Ci0gICAgICBtZW1zZXQgKCZwc19vbGQsIDAsIHNpemVvZihtYnN0YXRlX3QpKTsKLQotICAgICAgbmV3X29mZnNldCA9IG9sZF9vZmZzZXQgPSAwOwotICAgICAgZm9yIChvZmQgPSBvbGQsIG5mZCA9IG5ldzsKLQkgICAob2ZkIC0gb2xkIDwgb21heCkgJiYgKm9mZCAmJgotCSAgICAgX3JsX2NvbXBhcmVfY2hhcnMob2xkLCBvbGRfb2Zmc2V0LCAmcHNfb2xkLCBuZXcsIG5ld19vZmZzZXQsICZwc19uZXcpOyApCisgICAgICAvKiBTZWUgaWYgdGhlIG9sZCBsaW5lIGlzIGEgc3Vic2V0IG9mIHRoZSBuZXcgbGluZSwgc28gdGhhdCB0aGUKKwkgb25seSBjaGFuZ2UgaXMgYWRkaW5nIGNoYXJhY3RlcnMuICovCisgICAgICB0ZW1wID0gKG9tYXggPCBubWF4KSA/IG9tYXggOiBubWF4OworICAgICAgaWYgKG1lbWNtcCAob2xkLCBuZXcsIHRlbXApID09IDApCiAJewotCSAgb2xkX29mZnNldCA9IF9ybF9maW5kX25leHRfbWJjaGFyIChvbGQsIG9sZF9vZmZzZXQsIDEsIE1CX0ZJTkRfQU5ZKTsKLQkgIG5ld19vZmZzZXQgPSBfcmxfZmluZF9uZXh0X21iY2hhciAobmV3LCBuZXdfb2Zmc2V0LCAxLCBNQl9GSU5EX0FOWSk7Ci0JICBvZmQgPSBvbGQgKyBvbGRfb2Zmc2V0OwotCSAgbmZkID0gbmV3ICsgbmV3X29mZnNldDsKKwkgIG9mZCA9IG9sZCArIHRlbXA7CisJICBuZmQgPSBuZXcgKyB0ZW1wOworCX0KKyAgICAgIGVsc2UKKwl7ICAgICAgCisJICBtZW1zZXQgKCZwc19uZXcsIDAsIHNpemVvZihtYnN0YXRlX3QpKTsKKwkgIG1lbXNldCAoJnBzX29sZCwgMCwgc2l6ZW9mKG1ic3RhdGVfdCkpOworCisJICBpZiAob21heCA9PSBubWF4ICYmIFNUUkVRTiAobmV3LCBvbGQsIG9tYXgpKQorCSAgICB7CisJICAgICAgb2ZkID0gb2xkICsgb21heDsKKwkgICAgICBuZmQgPSBuZXcgKyBubWF4OworCSAgICB9CisJICBlbHNlCisJICAgIHsKKwkgICAgICBuZXdfb2Zmc2V0ID0gb2xkX29mZnNldCA9IDA7CisJICAgICAgZm9yIChvZmQgPSBvbGQsIG5mZCA9IG5ldzsKKwkJICAgIChvZmQgLSBvbGQgPCBvbWF4KSAmJiAqb2ZkICYmCisJCSAgICBfcmxfY29tcGFyZV9jaGFycyhvbGQsIG9sZF9vZmZzZXQsICZwc19vbGQsIG5ldywgbmV3X29mZnNldCwgJnBzX25ldyk7ICkKKwkJeworCQkgIG9sZF9vZmZzZXQgPSBfcmxfZmluZF9uZXh0X21iY2hhciAob2xkLCBvbGRfb2Zmc2V0LCAxLCBNQl9GSU5EX0FOWSk7CisJCSAgbmV3X29mZnNldCA9IF9ybF9maW5kX25leHRfbWJjaGFyIChuZXcsIG5ld19vZmZzZXQsIDEsIE1CX0ZJTkRfQU5ZKTsKKwkJICBvZmQgPSBvbGQgKyBvbGRfb2Zmc2V0OworCQkgIG5mZCA9IG5ldyArIG5ld19vZmZzZXQ7CisJCX0KKwkgICAgfQogCX0KICAgICB9CiAgIGVsc2UKQEAgLTExNjksOCArMTMxNCwxMSBAQAogCSAgbWVtc2V0ICgmcHNfb2xkLCAwLCBzaXplb2YgKG1ic3RhdGVfdCkpOwogCSAgbWVtc2V0ICgmcHNfbmV3LCAwLCBzaXplb2YgKG1ic3RhdGVfdCkpOwogCisjaWYgMAorCSAgLyogT24gYWR2aWNlIGZyb20gamlyQHlhbWF0by5pYm0uY29tICovCiAJICBfcmxfYWRqdXN0X3BvaW50IChvbGQsIG9scyAtIG9sZCwgJnBzX29sZCk7CiAJICBfcmxfYWRqdXN0X3BvaW50IChuZXcsIG5scyAtIG5ldywgJnBzX25ldyk7CisjZW5kaWYKIAogCSAgaWYgKF9ybF9jb21wYXJlX2NoYXJzIChvbGQsIG9scyAtIG9sZCwgJnBzX29sZCwgbmV3LCBubHMgLSBuZXcsICZwc19uZXcpID09IDApCiAJICAgIGJyZWFrOwpAQCAtMTIzMyw3ICsxMzgxLDcgQEAKICAgaWYgKF9ybF9sYXN0X3ZfcG9zICE9IGN1cnJlbnRfbGluZSkKICAgICB7CiAgICAgICBfcmxfbW92ZV92ZXJ0IChjdXJyZW50X2xpbmUpOwotICAgICAgaWYgKGN1cnJlbnRfbGluZSA9PSAwICYmIHZpc2libGVfd3JhcF9vZmZzZXQpCisgICAgICBpZiAoKE1CX0NVUl9NQVggPT0gMSB8fCBybF9ieXRlX29yaWVudGVkKSAmJiBjdXJyZW50X2xpbmUgPT0gMCAmJiB2aXNpYmxlX3dyYXBfb2Zmc2V0KQogCV9ybF9sYXN0X2NfcG9zICs9IHZpc2libGVfd3JhcF9vZmZzZXQ7CiAgICAgfQogCkBAIC0xMjYyLDcgKzE0MTAsMTIgQEAKICNlbmRpZgogICAgICAgX3JsX291dHB1dF9zb21lX2NoYXJzIChsb2NhbF9wcm9tcHQsIGxlbmRpZmYpOwogICAgICAgaWYgKE1CX0NVUl9NQVggPiAxICYmIHJsX2J5dGVfb3JpZW50ZWQgPT0gMCkKLQlfcmxfbGFzdF9jX3BvcyA9IF9ybF9jb2xfd2lkdGggKGxvY2FsX3Byb21wdCwgMCwgbGVuZGlmZik7CisJeworCSAgLyogV2UgdGFrZSB3cmFwX29mZnNldCBpbnRvIGFjY291bnQgaGVyZSBzbyB3ZSBjYW4gcGFzcyBjb3JyZWN0CisJICAgICBpbmZvcm1hdGlvbiB0byBfcmxfbW92ZV9jdXJzb3JfcmVsYXRpdmUuICovCisJICBfcmxfbGFzdF9jX3BvcyA9IF9ybF9jb2xfd2lkdGggKGxvY2FsX3Byb21wdCwgMCwgbGVuZGlmZikgLSB3cmFwX29mZnNldDsKKwkgIGNwb3NfYWRqdXN0ZWQgPSAxOworCX0KICAgICAgIGVsc2UKIAlfcmxfbGFzdF9jX3BvcyA9IGxlbmRpZmY7CiAgICAgfQpAQCAtMTMyNCw3ICsxNDc3LDcgQEAKIAkgICAgICBpbnNlcnRfc29tZV9jaGFycyAobmZkLCBsZW5kaWZmLCBjb2xfbGVuZGlmZik7CiAJICAgICAgX3JsX2xhc3RfY19wb3MgKz0gY29sX2xlbmRpZmY7CiAJICAgIH0KLQkgIGVsc2UgaWYgKCpvbHMgPT0gMCkKKwkgIGVsc2UgaWYgKChNQl9DVVJfTUFYID09IDEgfHwgcmxfYnl0ZV9vcmllbnRlZCAhPSAwKSAmJiAqb2xzID09IDAgJiYgbGVuZGlmZiA+IDApCiAJICAgIHsKIAkgICAgICAvKiBBdCB0aGUgZW5kIG9mIGEgbGluZSB0aGUgY2hhcmFjdGVycyBkbyBub3QgaGF2ZSB0bwogCQkgYmUgImluc2VydGVkIi4gIFRoZXkgY2FuIGp1c3QgYmUgcGxhY2VkIG9uIHRoZSBzY3JlZW4uICovCkBAIC0xMzQ3LDEwICsxNTAwLDE0IEBACiAJICBpZiAoKHRlbXAgLSBsZW5kaWZmKSA+IDApCiAJICAgIHsKIAkgICAgICBfcmxfb3V0cHV0X3NvbWVfY2hhcnMgKG5mZCArIGxlbmRpZmYsIHRlbXAgLSBsZW5kaWZmKTsKLSNpZiAwCi0JICAgICAgX3JsX2xhc3RfY19wb3MgKz0gX3JsX2NvbF93aWR0aCAobmZkK2xlbmRpZmYsIDAsIHRlbXAtbGVuZGlmZikgLSBjb2xfbGVuZGlmZjsKLSNlbHNlCisjaWYgMQorCSAgICAgLyogWFhYIC0tIHRoaXMgYmVhcnMgY2xvc2VyIGluc3BlY3Rpb24uICBGaXhlcyBhIHJlZGlzcGxheSBidWcKKwkJcmVwb3J0ZWQgYWdhaW5zdCBiYXNoLTMuMC1hbHBoYSBieSBBbmRyZWFzIFNjaHdhYiBpbnZvbHZpbmcKKwkJbXVsdGlieXRlIGNoYXJhY3RlcnMgYW5kIHByb21wdCBzdHJpbmdzIHdpdGggaW52aXNpYmxlCisJCWNoYXJhY3RlcnMsIGJ1dCB3YXMgcHJldmlvdXNseSBkaXNhYmxlZC4gKi8KIAkgICAgICBfcmxfbGFzdF9jX3BvcyArPSBfcmxfY29sX3dpZHRoIChuZmQrbGVuZGlmZiwgMCwgdGVtcC1jb2xfbGVuZGlmZik7CisjZWxzZQorCSAgICAgIF9ybF9sYXN0X2NfcG9zICs9IF9ybF9jb2xfd2lkdGggKG5mZCtsZW5kaWZmLCAwLCB0ZW1wLWxlbmRpZmYpOwogI2VuZGlmCiAJICAgIH0KIAl9CkBAIC0xMzU5LDYgKzE1MTYsMTAgQEAKIAkgIC8qIGNhbm5vdCBpbnNlcnQgY2hhcnMsIHdyaXRlIHRvIEVPTCAqLwogCSAgX3JsX291dHB1dF9zb21lX2NoYXJzIChuZmQsIHRlbXApOwogCSAgX3JsX2xhc3RfY19wb3MgKz0gY29sX3RlbXA7CisJICAvKiBJZiB3ZSdyZSBpbiBhIG11bHRpYnl0ZSBsb2NhbGUgYW5kIHdlcmUgYmVmb3JlIHRoZSBsYXN0IGludmlzaWJsZQorCSAgICAgY2hhciBpbiB0aGUgY3VycmVudCBsaW5lICh3aGljaCBpbXBsaWVzIHdlIGp1c3Qgb3V0cHV0IHNvbWUgaW52aXNpYmxlCisJICAgICBjaGFyYWN0ZXJzKSB3ZSBuZWVkIHRvIGFkanVzdCBfcmxfbGFzdF9jX3Bvcywgc2luY2UgaXQgcmVwcmVzZW50cworCSAgICAgYSBwaHlzaWNhbCBjaGFyYWN0ZXIgcG9zaXRpb24uICovCiAJfQogICAgIH0KICAgZWxzZQkJCQkvKiBEZWxldGUgY2hhcmFjdGVycyBmcm9tIGxpbmUuICovCkBAIC0xMzkwLDcgKzE1NTEsNyBAQAogCSAgaWYgKHRlbXAgPiAwKQogCSAgICB7CiAJICAgICAgX3JsX291dHB1dF9zb21lX2NoYXJzIChuZmQsIHRlbXApOwotCSAgICAgIF9ybF9sYXN0X2NfcG9zICs9IGNvbF90ZW1wOworCSAgICAgIF9ybF9sYXN0X2NfcG9zICs9IGNvbF90ZW1wOwkJLyogWFhYICovCiAJICAgIH0KIAkgIGxlbmRpZmYgPSAob2UgLSBvbGQpIC0gKG5lIC0gbmV3KTsKIAkgIGlmIChNQl9DVVJfTUFYID4gMSAmJiBybF9ieXRlX29yaWVudGVkID09IDApCkBAIC0xNDI2LDEyICsxNTg3LDEzIEBACiAKIC8qIFRlbGwgdGhlIHVwZGF0ZSByb3V0aW5lcyB0aGF0IHdlIGhhdmUgbW92ZWQgb250byBhIG5ldyBsaW5lIHdpdGggdGhlCiAgICBwcm9tcHQgYWxyZWFkeSBkaXNwbGF5ZWQuICBDb2RlIG9yaWdpbmFsbHkgZnJvbSB0aGUgdmVyc2lvbiBvZiByZWFkbGluZQotICAgZGlzdHJpYnV0ZWQgd2l0aCBDTElTUC4gKi8KKyAgIGRpc3RyaWJ1dGVkIHdpdGggQ0xJU1AuICBybF9leHBhbmRfcHJvbXB0IG11c3QgaGF2ZSBhbHJlYWR5IGJlZW4gY2FsbGVkCisgICAoZXhwbGljaXRseSBvciBpbXBsaWNpdGx5KS4gIFRoaXMgc3RpbGwgZG9lc24ndCB3b3JrIGV4YWN0bHkgcmlnaHQuICovCiBpbnQKIHJsX29uX25ld19saW5lX3dpdGhfcHJvbXB0ICgpCiB7CiAgIGludCBwcm9tcHRfc2l6ZSwgaSwgbCwgcmVhbF9zY3JlZW53aWR0aCwgbmV3bGluZXM7Ci0gIGNoYXIgKnByb21wdF9sYXN0X2xpbmU7CisgIGNoYXIgKnByb21wdF9sYXN0X2xpbmUsICpscHJvbXB0OwogCiAgIC8qIEluaXRpYWxpemUgdmlzaWJsZV9saW5lIGFuZCBpbnZpc2libGVfbGluZSB0byBlbnN1cmUgdGhhdCB0aGV5IGNhbiBob2xkCiAgICAgIHRoZSBhbHJlYWR5LWRpc3BsYXllZCBwcm9tcHQuICovCkBAIC0xNDQwLDggKzE2MDIsOSBAQAogCiAgIC8qIE1ha2Ugc3VyZSB0aGUgbGluZSBzdHJ1Y3R1cmVzIGhvbGQgdGhlIGFscmVhZHktZGlzcGxheWVkIHByb21wdCBmb3IKICAgICAgcmVkaXNwbGF5LiAqLwotICBzdHJjcHkgKHZpc2libGVfbGluZSwgcmxfcHJvbXB0KTsKLSAgc3RyY3B5IChpbnZpc2libGVfbGluZSwgcmxfcHJvbXB0KTsKKyAgbHByb21wdCA9IGxvY2FsX3Byb21wdCA/IGxvY2FsX3Byb21wdCA6IHJsX3Byb21wdDsKKyAgc3RyY3B5ICh2aXNpYmxlX2xpbmUsIGxwcm9tcHQpOworICBzdHJjcHkgKGludmlzaWJsZV9saW5lLCBscHJvbXB0KTsKIAogICAvKiBJZiB0aGUgcHJvbXB0IGNvbnRhaW5zIG5ld2xpbmVzLCB0YWtlIHRoZSBsYXN0IHRhaWwuICovCiAgIHByb21wdF9sYXN0X2xpbmUgPSBzdHJyY2hyIChybF9wcm9tcHQsICdcbicpOwpAQCAtMTQ1MCw3ICsxNjEzLDcgQEAKIAogICBsID0gc3RybGVuIChwcm9tcHRfbGFzdF9saW5lKTsKICAgaWYgKE1CX0NVUl9NQVggPiAxICYmIHJsX2J5dGVfb3JpZW50ZWQgPT0gMCkKLSAgICBfcmxfbGFzdF9jX3BvcyA9IF9ybF9jb2xfd2lkdGggKHByb21wdF9sYXN0X2xpbmUsIDAsIGwpOworICAgIF9ybF9sYXN0X2NfcG9zID0gX3JsX2NvbF93aWR0aCAocHJvbXB0X2xhc3RfbGluZSwgMCwgbCk7CS8qIFhYWCAqLwogICBlbHNlCiAgICAgX3JsX2xhc3RfY19wb3MgPSBsOwogCkBAIC0xNDc2LDYgKzE2MzksOCBAQAogICB2aXNfbGJyZWFrc1tuZXdsaW5lc10gPSBsOwogICB2aXNpYmxlX3dyYXBfb2Zmc2V0ID0gMDsKIAorICBybF9kaXNwbGF5X3Byb21wdCA9IHJsX3Byb21wdDsJLyogWFhYIC0gbWFrZSBzdXJlIGl0J3Mgc2V0ICovCisKICAgcmV0dXJuIDA7CiB9CiAKQEAgLTE0OTcsNiArMTY2Miw4IEBACiB9CiAKIC8qIE1vdmUgdGhlIGN1cnNvciBmcm9tIF9ybF9sYXN0X2NfcG9zIHRvIE5FVywgd2hpY2ggYXJlIGJ1ZmZlciBpbmRpY2VzLgorICAgKFdlbGwsIHdoZW4gd2UgZG9uJ3QgaGF2ZSBtdWx0aWJ5dGUgY2hhcmFjdGVycywgX3JsX2xhc3RfY19wb3MgaXMgYQorICAgYnVmZmVyIGluZGV4LikKICAgIERBVEEgaXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBzY3JlZW4gbGluZSBvZiBpbnRlcmVzdDsgaS5lLiwgd2hlcmUKICAgIHRoZSBtb3ZlbWVudCBpcyBiZWluZyBkb25lLiAqLwogdm9pZApAQCAtMTUwNSwyMSArMTY3Miw0MCBAQAogICAgICBjb25zdCBjaGFyICpkYXRhOwogewogICByZWdpc3RlciBpbnQgaTsKKyAgaW50IHdvZmY7CQkJLyogbnVtYmVyIG9mIGludmlzaWJsZSBjaGFycyBvbiBjdXJyZW50IGxpbmUgKi8KKyAgaW50IGNwb3MsIGRwb3M7CQkvKiBjdXJyZW50IGFuZCBkZXNpcmVkIGN1cnNvciBwb3NpdGlvbnMgKi8KIAotICAvKiBJZiB3ZSBkb24ndCBoYXZlIHRvIGRvIGFueXRoaW5nLCB0aGVuIHJldHVybi4gKi8KKyAgd29mZiA9IFdfT0ZGU0VUIChfcmxfbGFzdF92X3Bvcywgd3JhcF9vZmZzZXQpOworICBjcG9zID0gX3JsX2xhc3RfY19wb3M7CiAjaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKICAgLyogSWYgd2UgaGF2ZSBtdWx0aWJ5dGUgY2hhcmFjdGVycywgTkVXIGlzIGluZGV4ZWQgYnkgdGhlIGJ1ZmZlciBwb2ludCBpbgogICAgICBhIG11bHRpYnl0ZSBzdHJpbmcsIGJ1dCBfcmxfbGFzdF9jX3BvcyBpcyB0aGUgZGlzcGxheSBwb3NpdGlvbi4gIEluCi0gICAgIHRoaXMgY2FzZSwgTkVXJ3MgZGlzcGxheSBwb3NpdGlvbiBpcyBub3Qgb2J2aW91cy4gKi8KLSAgaWYgKChNQl9DVVJfTUFYID09IDEgfHwgcmxfYnl0ZV9vcmllbnRlZCApICYmIF9ybF9sYXN0X2NfcG9zID09IG5ldykgcmV0dXJuOwotI2Vsc2UKLSAgaWYgKF9ybF9sYXN0X2NfcG9zID09IG5ldykgcmV0dXJuOworICAgICB0aGlzIGNhc2UsIE5FVydzIGRpc3BsYXkgcG9zaXRpb24gaXMgbm90IG9idmlvdXMgYW5kIG11c3QgYmUKKyAgICAgY2FsY3VsYXRlZC4gIFdlIG5lZWQgdG8gYWNjb3VudCBmb3IgaW52aXNpYmxlIGNoYXJhY3RlcnMgaW4gdGhpcyBsaW5lLAorICAgICBhcyBsb25nIGFzIHdlIGFyZSBwYXN0IHRoZW0gYW5kIHRoZXkgYXJlIGNvdW50ZWQgYnkgX3JsX2NvbF93aWR0aC4gKi8KKyAgaWYgKE1CX0NVUl9NQVggPiAxICYmIHJsX2J5dGVfb3JpZW50ZWQgPT0gMCkKKyAgICB7CisgICAgICBkcG9zID0gX3JsX2NvbF93aWR0aCAoZGF0YSwgMCwgbmV3KTsKKyAgICAgIGlmIChkcG9zID4gd29mZikKKwlkcG9zIC09IHdvZmY7CisgICAgfQorICBlbHNlCiAjZW5kaWYKKyAgICBkcG9zID0gbmV3OworCisgIC8qIElmIHdlIGRvbid0IGhhdmUgdG8gZG8gYW55dGhpbmcsIHRoZW4gcmV0dXJuLiAqLworICBpZiAoY3BvcyA9PSBkcG9zKQorICAgIHJldHVybjsKIAogICAvKiBJdCBtYXkgYmUgZmFzdGVyIHRvIG91dHB1dCBhIENSLCBhbmQgdGhlbiBtb3ZlIGZvcndhcmRzIGluc3RlYWQKICAgICAgb2YgbW92aW5nIGJhY2t3YXJkcy4gKi8KICAgLyogaSA9PSBjdXJyZW50IHBoeXNpY2FsIGN1cnNvciBwb3NpdGlvbi4gKi8KLSAgaSA9IF9ybF9sYXN0X2NfcG9zIC0gV19PRkZTRVQoX3JsX2xhc3Rfdl9wb3MsIHZpc2libGVfd3JhcF9vZmZzZXQpOworI2lmIGRlZmluZWQgKEhBTkRMRV9NVUxUSUJZVEUpCisgIGlmIChNQl9DVVJfTUFYID4gMSAmJiBybF9ieXRlX29yaWVudGVkID09IDApCisgICAgaSA9IF9ybF9sYXN0X2NfcG9zOworICBlbHNlCisjZW5kaWYKKyAgaSA9IF9ybF9sYXN0X2NfcG9zIC0gd29mZjsKICAgaWYgKG5ldyA9PSAwIHx8IENSX0ZBU1RFUiAobmV3LCBfcmxfbGFzdF9jX3BvcykgfHwKICAgICAgIChfcmxfdGVybV9hdXRvd3JhcCAmJiBpID09IF9ybF9zY3JlZW53aWR0aCkpCiAgICAgewpAQCAtMTUyOCwxMCArMTcxNCwxMCBAQAogI2Vsc2UKICAgICAgIHRwdXRzIChfcmxfdGVybV9jciwgMSwgX3JsX291dHB1dF9jaGFyYWN0ZXJfZnVuY3Rpb24pOwogI2VuZGlmIC8qICFfX01TRE9TX18gKi8KLSAgICAgIF9ybF9sYXN0X2NfcG9zID0gMDsKKyAgICAgIGNwb3MgPSBfcmxfbGFzdF9jX3BvcyA9IDA7CiAgICAgfQogCi0gIGlmIChfcmxfbGFzdF9jX3BvcyA8IG5ldykKKyAgaWYgKGNwb3MgPCBkcG9zKQogICAgIHsKICAgICAgIC8qIE1vdmUgdGhlIGN1cnNvciBmb3J3YXJkLiAgV2UgZG8gaXQgYnkgcHJpbnRpbmcgdGhlIGNvbW1hbmQKIAkgdG8gbW92ZSB0aGUgY3Vyc29yIGZvcndhcmQgaWYgdGhlcmUgaXMgb25lLCBlbHNlIHByaW50IHRoYXQKQEAgLTE1NDUsMzEgKzE3MzEsMTEgQEAKICNpZiBkZWZpbmVkIChIQUNLX1RFUk1DQVBfTU9USU9OKQogICAgICAgaWYgKF9ybF90ZXJtX2ZvcndhcmRfY2hhcikKIAl7Ci0JICBpZiAoTUJfQ1VSX01BWCA+IDEgJiYgcmxfYnl0ZV9vcmllbnRlZCA9PSAwKQotCSAgICB7Ci0JICAgICAgaW50IHdpZHRoOwotCSAgICAgIHdpZHRoID0gX3JsX2NvbF93aWR0aCAoZGF0YSwgX3JsX2xhc3RfY19wb3MsIG5ldyk7Ci0JICAgICAgZm9yIChpID0gMDsgaSA8IHdpZHRoOyBpKyspCi0JCXRwdXRzIChfcmxfdGVybV9mb3J3YXJkX2NoYXIsIDEsIF9ybF9vdXRwdXRfY2hhcmFjdGVyX2Z1bmN0aW9uKTsKLQkgICAgfQotCSAgZWxzZQotCSAgICB7Ci0JICAgICAgZm9yIChpID0gX3JsX2xhc3RfY19wb3M7IGkgPCBuZXc7IGkrKykKLQkJdHB1dHMgKF9ybF90ZXJtX2ZvcndhcmRfY2hhciwgMSwgX3JsX291dHB1dF9jaGFyYWN0ZXJfZnVuY3Rpb24pOwotCSAgICB9Ci0JfQotICAgICAgZWxzZSBpZiAoTUJfQ1VSX01BWCA+IDEgJiYgcmxfYnl0ZV9vcmllbnRlZCA9PSAwKQotCXsKLQkgIHRwdXRzIChfcmxfdGVybV9jciwgMSwgX3JsX291dHB1dF9jaGFyYWN0ZXJfZnVuY3Rpb24pOwotCSAgZm9yIChpID0gMDsgaSA8IG5ldzsgaSsrKQotCSAgICBwdXRjIChkYXRhW2ldLCBybF9vdXRzdHJlYW0pOworCSAgZm9yIChpID0gY3BvczsgaSA8IGRwb3M7IGkrKykKKwkgICAgdHB1dHMgKF9ybF90ZXJtX2ZvcndhcmRfY2hhciwgMSwgX3JsX291dHB1dF9jaGFyYWN0ZXJfZnVuY3Rpb24pOwogCX0KICAgICAgIGVsc2UKLQlmb3IgKGkgPSBfcmxfbGFzdF9jX3BvczsgaSA8IG5ldzsgaSsrKQotCSAgcHV0YyAoZGF0YVtpXSwgcmxfb3V0c3RyZWFtKTsKLQotI2Vsc2UgLyogIUhBQ0tfVEVSTUNBUF9NT1RJT04gKi8KLQorI2VuZGlmIC8qIEhBQ0tfVEVSTUNBUF9NT1RJT04gKi8KICAgICAgIGlmIChNQl9DVVJfTUFYID4gMSAmJiBybF9ieXRlX29yaWVudGVkID09IDApCiAJewogCSAgdHB1dHMgKF9ybF90ZXJtX2NyLCAxLCBfcmxfb3V0cHV0X2NoYXJhY3Rlcl9mdW5jdGlvbik7CkBAIC0xNTc3LDM2ICsxNzQzLDIwIEBACiAJICAgIHB1dGMgKGRhdGFbaV0sIHJsX291dHN0cmVhbSk7CiAJfQogICAgICAgZWxzZQotCWZvciAoaSA9IF9ybF9sYXN0X2NfcG9zOyBpIDwgbmV3OyBpKyspCisJZm9yIChpID0gY3BvczsgaSA8IG5ldzsgaSsrKQogCSAgcHV0YyAoZGF0YVtpXSwgcmxfb3V0c3RyZWFtKTsKLQotI2VuZGlmIC8qICFIQUNLX1RFUk1DQVBfTU9USU9OICovCi0KICAgICB9CisKICNpZiBkZWZpbmVkIChIQU5ETEVfTVVMVElCWVRFKQogICAvKiBORVcgcG9pbnRzIHRvIHRoZSBidWZmZXIgcG9pbnQsIGJ1dCBfcmxfbGFzdF9jX3BvcyBpcyB0aGUgZGlzcGxheSBwb2ludC4KICAgICAgVGhlIGJ5dGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaXMgcHJvYmFibHkgYmlnZ2VyIHRoYW4gdGhlIGNvbHVtbiB3aWR0aAogICAgICBvZiB0aGUgc3RyaW5nLCB3aGljaCBtZWFucyB0aGF0IGlmIE5FVyA9PSBfcmxfbGFzdF9jX3BvcywgdGhlbiBORVcncwogICAgICBkaXNwbGF5IHBvaW50IGlzIGxlc3MgdGhhbiBfcmxfbGFzdF9jX3Bvcy4gKi8KLSAgZWxzZSBpZiAoX3JsX2xhc3RfY19wb3MgPj0gbmV3KQotI2Vsc2UKLSAgZWxzZSBpZiAoX3JsX2xhc3RfY19wb3MgPiBuZXcpCiAjZW5kaWYKLSAgICB7Ci0gICAgICBpZiAoTUJfQ1VSX01BWCA+IDEgJiYgcmxfYnl0ZV9vcmllbnRlZCA9PSAwKQotCXsKLQkgIHRwdXRzIChfcmxfdGVybV9jciwgMSwgX3JsX291dHB1dF9jaGFyYWN0ZXJfZnVuY3Rpb24pOwotCSAgZm9yIChpID0gMDsgaSA8IG5ldzsgaSsrKQotCSAgICBwdXRjIChkYXRhW2ldLCBybF9vdXRzdHJlYW0pOwotCX0KLSAgICAgIGVsc2UKLQlfcmxfYmFja3NwYWNlIChfcmxfbGFzdF9jX3BvcyAtIG5ldyk7Ci0gICAgfQorICBlbHNlIGlmIChjcG9zID4gZHBvcykKKyAgICBfcmxfYmFja3NwYWNlIChjcG9zIC0gZHBvcyk7CiAKLSAgaWYgKE1CX0NVUl9NQVggPiAxICYmIHJsX2J5dGVfb3JpZW50ZWQgPT0gMCkKLSAgICBfcmxfbGFzdF9jX3BvcyA9ICBfcmxfY29sX3dpZHRoIChkYXRhLCAwLCBuZXcpOwotICBlbHNlCi0gICAgX3JsX2xhc3RfY19wb3MgPSBuZXc7CisgIF9ybF9sYXN0X2NfcG9zID0gZHBvczsKIH0KIAogLyogUFdQOiBtb3ZlIHRoZSBjdXJzb3IgdXAgb3IgZG93bi4gKi8KQEAgLTE2OTUsOSArMTg0NSw5IEBACiAKICAgcmV0dXJuICgoSVNQUklOVCAodWMpKSA/IDEgOiAyKTsKIH0KLQogLyogSG93IHRvIHByaW50IHRoaW5ncyBpbiB0aGUgImVjaG8tYXJlYSIuICBUaGUgcHJvbXB0IGlzIHRyZWF0ZWQgYXMgYQogICAgbWluaS1tb2RlbGluZS4gKi8KK3N0YXRpYyBpbnQgbXNnX3NhdmVkX3Byb21wdCA9IDA7CiAKICNpZiBkZWZpbmVkIChVU0VfVkFSQVJHUykKIGludApAQCAtMTcyOCw4ICsxODc4LDE5IEBACiAjZW5kaWYKICAgdmFfZW5kIChhcmdzKTsKIAorICBpZiAoc2F2ZWRfbG9jYWxfcHJvbXB0ID09IDApCisgICAgeworICAgICAgcmxfc2F2ZV9wcm9tcHQgKCk7CisgICAgICBtc2dfc2F2ZWRfcHJvbXB0ID0gMTsKKyAgICB9CiAgIHJsX2Rpc3BsYXlfcHJvbXB0ID0gbXNnX2J1ZjsKKyAgbG9jYWxfcHJvbXB0ID0gZXhwYW5kX3Byb21wdCAobXNnX2J1ZiwgJnByb21wdF92aXNpYmxlX2xlbmd0aCwKKwkJCQkJICZwcm9tcHRfbGFzdF9pbnZpc2libGUsCisJCQkJCSAmcHJvbXB0X2ludmlzX2NoYXJzX2ZpcnN0X2xpbmUsCisJCQkJCSAmcHJvbXB0X3BoeXNpY2FsX2NoYXJzKTsKKyAgbG9jYWxfcHJvbXB0X3ByZWZpeCA9IChjaGFyICopTlVMTDsKICAgKCpybF9yZWRpc3BsYXlfZnVuY3Rpb24pICgpOworCiAgIHJldHVybiAwOwogfQogI2Vsc2UgLyogIVVTRV9WQVJBUkdTICovCkBAIC0xNzM5LDggKzE5MDAsMjAgQEAKIHsKICAgc3ByaW50ZiAobXNnX2J1ZiwgZm9ybWF0LCBhcmcxLCBhcmcyKTsKICAgbXNnX2J1ZltzaXplb2YobXNnX2J1ZikgLSAxXSA9ICdcMCc7CS8qIG92ZXJmbG93PyAqLworCiAgIHJsX2Rpc3BsYXlfcHJvbXB0ID0gbXNnX2J1ZjsKKyAgaWYgKHNhdmVkX2xvY2FsX3Byb21wdCA9PSAwKQorICAgIHsKKyAgICAgIHJsX3NhdmVfcHJvbXB0ICgpOworICAgICAgbXNnX3NhdmVkX3Byb21wdCA9IDE7CisgICAgfQorICBsb2NhbF9wcm9tcHQgPSBleHBhbmRfcHJvbXB0IChtc2dfYnVmLCAmcHJvbXB0X3Zpc2libGVfbGVuZ3RoLAorCQkJCQkgJnByb21wdF9sYXN0X2ludmlzaWJsZSwKKwkJCQkJICZwcm9tcHRfaW52aXNfY2hhcnNfZmlyc3RfbGluZSwKKwkJCQkJICZwcm9tcHRfcGh5c2ljYWxfY2hhcnMpOworICBsb2NhbF9wcm9tcHRfcHJlZml4ID0gKGNoYXIgKilOVUxMOwogICAoKnJsX3JlZGlzcGxheV9mdW5jdGlvbikgKCk7CisgICAgICAKICAgcmV0dXJuIDA7CiB9CiAjZW5kaWYgLyogIVVTRV9WQVJBUkdTICovCkBAIC0xNzUwLDYgKzE5MjMsMTEgQEAKIHJsX2NsZWFyX21lc3NhZ2UgKCkKIHsKICAgcmxfZGlzcGxheV9wcm9tcHQgPSBybF9wcm9tcHQ7CisgIGlmIChtc2dfc2F2ZWRfcHJvbXB0KQorICAgIHsKKyAgICAgIHJsX3Jlc3RvcmVfcHJvbXB0ICgpOworICAgICAgbXNnX3NhdmVkX3Byb21wdCA9IDA7CisgICAgfQogICAoKnJsX3JlZGlzcGxheV9mdW5jdGlvbikgKCk7CiAgIHJldHVybiAwOwogfQpAQCAtMTc2NCwyMSArMTk0MiwyMCBAQAogICByZXR1cm4gMDsKIH0KIAotc3RhdGljIGNoYXIgKnNhdmVkX2xvY2FsX3Byb21wdDsKLXN0YXRpYyBjaGFyICpzYXZlZF9sb2NhbF9wcmVmaXg7Ci1zdGF0aWMgaW50IHNhdmVkX2xhc3RfaW52aXNpYmxlOwotc3RhdGljIGludCBzYXZlZF92aXNpYmxlX2xlbmd0aDsKLQogdm9pZAogcmxfc2F2ZV9wcm9tcHQgKCkKIHsKICAgc2F2ZWRfbG9jYWxfcHJvbXB0ID0gbG9jYWxfcHJvbXB0OwogICBzYXZlZF9sb2NhbF9wcmVmaXggPSBsb2NhbF9wcm9tcHRfcHJlZml4OworICBzYXZlZF9wcmVmaXhfbGVuZ3RoID0gcHJvbXB0X3ByZWZpeF9sZW5ndGg7CiAgIHNhdmVkX2xhc3RfaW52aXNpYmxlID0gcHJvbXB0X2xhc3RfaW52aXNpYmxlOwogICBzYXZlZF92aXNpYmxlX2xlbmd0aCA9IHByb21wdF92aXNpYmxlX2xlbmd0aDsKKyAgc2F2ZWRfaW52aXNfY2hhcnNfZmlyc3RfbGluZSA9IHByb21wdF9pbnZpc19jaGFyc19maXJzdF9saW5lOworICBzYXZlZF9waHlzaWNhbF9jaGFycyA9IHByb21wdF9waHlzaWNhbF9jaGFyczsKIAogICBsb2NhbF9wcm9tcHQgPSBsb2NhbF9wcm9tcHRfcHJlZml4ID0gKGNoYXIgKikwOwotICBwcm9tcHRfbGFzdF9pbnZpc2libGUgPSBwcm9tcHRfdmlzaWJsZV9sZW5ndGggPSAwOworICBwcm9tcHRfbGFzdF9pbnZpc2libGUgPSBwcm9tcHRfdmlzaWJsZV9sZW5ndGggPSBwcm9tcHRfcHJlZml4X2xlbmd0aCA9IDA7CisgIHByb21wdF9pbnZpc19jaGFyc19maXJzdF9saW5lID0gcHJvbXB0X3BoeXNpY2FsX2NoYXJzID0gMDsKIH0KIAogdm9pZApAQCAtMTc4OSw4ICsxOTY2LDE2IEBACiAKICAgbG9jYWxfcHJvbXB0ID0gc2F2ZWRfbG9jYWxfcHJvbXB0OwogICBsb2NhbF9wcm9tcHRfcHJlZml4ID0gc2F2ZWRfbG9jYWxfcHJlZml4OworICBwcm9tcHRfcHJlZml4X2xlbmd0aCA9IHNhdmVkX3ByZWZpeF9sZW5ndGg7CiAgIHByb21wdF9sYXN0X2ludmlzaWJsZSA9IHNhdmVkX2xhc3RfaW52aXNpYmxlOwogICBwcm9tcHRfdmlzaWJsZV9sZW5ndGggPSBzYXZlZF92aXNpYmxlX2xlbmd0aDsKKyAgcHJvbXB0X2ludmlzX2NoYXJzX2ZpcnN0X2xpbmUgPSBzYXZlZF9pbnZpc19jaGFyc19maXJzdF9saW5lOworICBwcm9tcHRfcGh5c2ljYWxfY2hhcnMgPSBzYXZlZF9waHlzaWNhbF9jaGFyczsKKworICAvKiBjYW4gdGVzdCBzYXZlZF9sb2NhbF9wcm9tcHQgdG8gc2VlIGlmIHByb21wdCBpbmZvIGhhcyBiZWVuIHNhdmVkLiAqLworICBzYXZlZF9sb2NhbF9wcm9tcHQgPSBzYXZlZF9sb2NhbF9wcmVmaXggPSAoY2hhciAqKTA7CisgIHNhdmVkX2xhc3RfaW52aXNpYmxlID0gc2F2ZWRfdmlzaWJsZV9sZW5ndGggPSBzYXZlZF9wcmVmaXhfbGVuZ3RoID0gMDsKKyAgc2F2ZWRfaW52aXNfY2hhcnNfZmlyc3RfbGluZSA9IHNhdmVkX3BoeXNpY2FsX2NoYXJzID0gMDsKIH0KIAogY2hhciAqCkBAIC0xODIzLDYgKzIwMDgsOSBAQAogICAgICAgcHJvbXB0X2xhc3RfaW52aXNpYmxlID0gc2F2ZWRfbGFzdF9pbnZpc2libGU7CiAgICAgICBwcm9tcHRfdmlzaWJsZV9sZW5ndGggPSBzYXZlZF92aXNpYmxlX2xlbmd0aCArIDE7CiAgICAgfQorCisgIHByb21wdF9waHlzaWNhbF9jaGFycyA9IHNhdmVkX3BoeXNpY2FsX2NoYXJzICsgMTsKKwogICByZXR1cm4gcG10OwogfQogCkBAIC0xODgzLDYgKzIwNzEsOSBAQAogICAgICBjaGFyICpzdHJpbmc7CiAgICAgIGludCBjb3VudCwgY29sOwogeworI2lmIGRlZmluZWQgKF9fTVNET1NfXykgfHwgZGVmaW5lZCAoX19NSU5HVzMyX18pCisgIF9ybF9vdXRwdXRfc29tZV9jaGFycyAoc3RyaW5nLCBjb3VudCk7CisjZWxzZQogICAvKiBERUJVR0dJTkcgKi8KICAgaWYgKE1CX0NVUl9NQVggPT0gMSB8fCBybF9ieXRlX29yaWVudGVkKQogICAgIGlmIChjb3VudCAhPSBjb2wpCkBAIC0xOTIxLDYgKzIxMTIsNyBAQAogICAgICAgaWYgKF9ybF90ZXJtX2VpICYmICpfcmxfdGVybV9laSkKIAl0cHV0cyAoX3JsX3Rlcm1fZWksIDEsIF9ybF9vdXRwdXRfY2hhcmFjdGVyX2Z1bmN0aW9uKTsKICAgICB9CisjZW5kaWYgLyogX19NU0RPU19fIHx8IF9fTUlOR1czMl9fICovCiB9CiAKIC8qIERlbGV0ZSBDT1VOVCBjaGFyYWN0ZXJzIGZyb20gdGhlIGRpc3BsYXkgbGluZS4gKi8KQEAgLTE5MzEsNiArMjEyMyw3IEBACiAgIGlmIChjb3VudCA+IF9ybF9zY3JlZW53aWR0aCkJLyogWFhYICovCiAgICAgcmV0dXJuOwogCisjaWYgIWRlZmluZWQgKF9fTVNET1NfXykgJiYgIWRlZmluZWQgKF9fTUlOR1czMl9fKQogICBpZiAoX3JsX3Rlcm1fREMgJiYgKl9ybF90ZXJtX0RDKQogICAgIHsKICAgICAgIGNoYXIgKmJ1ZmZlcjsKQEAgLTE5NDMsNiArMjEzNiw3IEBACiAJd2hpbGUgKGNvdW50LS0pCiAJICB0cHV0cyAoX3JsX3Rlcm1fZGMsIDEsIF9ybF9vdXRwdXRfY2hhcmFjdGVyX2Z1bmN0aW9uKTsKICAgICB9CisjZW5kaWYgLyogIV9fTVNET1NfXyAmJiAhX19NSU5HVzMyX18gKi8KIH0KIAogdm9pZApAQCAtMTk5OCwzMiArMjE5MiwyMiBAQAogcmVkcmF3X3Byb21wdCAodCkKICAgICAgY2hhciAqdDsKIHsKLSAgY2hhciAqb2xkcCwgKm9sZGwsICpvbGRscHJlZml4OwotICBpbnQgb2xkbGVuLCBvbGRsYXN0LCBvbGRwbGVuLCBvbGRuaW52aXM7CisgIGNoYXIgKm9sZHA7CiAKLSAgLyogR2VleiwgSSBzaG91bGQgbWFrZSB0aGlzIGEgc3RydWN0LiAqLwogICBvbGRwID0gcmxfZGlzcGxheV9wcm9tcHQ7Ci0gIG9sZGwgPSBsb2NhbF9wcm9tcHQ7Ci0gIG9sZGxwcmVmaXggPSBsb2NhbF9wcm9tcHRfcHJlZml4OwotICBvbGRsZW4gPSBwcm9tcHRfdmlzaWJsZV9sZW5ndGg7Ci0gIG9sZHBsZW4gPSBwcm9tcHRfcHJlZml4X2xlbmd0aDsKLSAgb2xkbGFzdCA9IHByb21wdF9sYXN0X2ludmlzaWJsZTsKLSAgb2xkbmludmlzID0gcHJvbXB0X2ludmlzX2NoYXJzX2ZpcnN0X2xpbmU7CisgIHJsX3NhdmVfcHJvbXB0ICgpOwogCiAgIHJsX2Rpc3BsYXlfcHJvbXB0ID0gdDsKICAgbG9jYWxfcHJvbXB0ID0gZXhwYW5kX3Byb21wdCAodCwgJnByb21wdF92aXNpYmxlX2xlbmd0aCwKIAkJCQkgICAmcHJvbXB0X2xhc3RfaW52aXNpYmxlLAotCQkJCSAgICZwcm9tcHRfaW52aXNfY2hhcnNfZmlyc3RfbGluZSk7CisJCQkJICAgJnByb21wdF9pbnZpc19jaGFyc19maXJzdF9saW5lLAorCQkJCSAgICZwcm9tcHRfcGh5c2ljYWxfY2hhcnMpOwogICBsb2NhbF9wcm9tcHRfcHJlZml4ID0gKGNoYXIgKilOVUxMOworCiAgIHJsX2ZvcmNlZF91cGRhdGVfZGlzcGxheSAoKTsKIAogICBybF9kaXNwbGF5X3Byb21wdCA9IG9sZHA7Ci0gIGxvY2FsX3Byb21wdCA9IG9sZGw7Ci0gIGxvY2FsX3Byb21wdF9wcmVmaXggPSBvbGRscHJlZml4OwotICBwcm9tcHRfdmlzaWJsZV9sZW5ndGggPSBvbGRsZW47Ci0gIHByb21wdF9wcmVmaXhfbGVuZ3RoID0gb2xkcGxlbjsKLSAgcHJvbXB0X2xhc3RfaW52aXNpYmxlID0gb2xkbGFzdDsKLSAgcHJvbXB0X2ludmlzX2NoYXJzX2ZpcnN0X2xpbmUgPSBvbGRuaW52aXM7CisgIHJsX3Jlc3RvcmVfcHJvbXB0KCk7CiB9CiAgICAgICAKIC8qIFJlZGlzcGxheSB0aGUgY3VycmVudCBsaW5lIGFmdGVyIGEgU0lHV0lOQ0ggaXMgcmVjZWl2ZWQuICovCkBAIC0yMTE3LDcgKzIzMDEsNyBAQAogICAgc2NhbiBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cmluZyB0byB0YWtlIHRoZSBzdGF0ZSBpbnRvIGFjY291bnQuICovCiBzdGF0aWMgaW50CiBfcmxfY29sX3dpZHRoIChzdHIsIHN0YXJ0LCBlbmQpCi0gICAgIGNoYXIgKnN0cjsKKyAgICAgY29uc3QgY2hhciAqc3RyOwogICAgICBpbnQgc3RhcnQsIGVuZDsKIHsKICAgd2NoYXJfdCB3YzsKQEAgLTIxMzMsNyArMjMxNyw3IEBACiAgIHdoaWxlIChwb2ludCA8IHN0YXJ0KQogICAgIHsKICAgICAgIHRtcCA9IG1icmxlbiAoc3RyICsgcG9pbnQsIG1heCwgJnBzKTsKLSAgICAgIGlmICgoc2l6ZV90KXRtcCA9PSAoc2l6ZV90KS0xIHx8IChzaXplX3QpdG1wID09IChzaXplX3QpLTIpCisgICAgICBpZiAoTUJfSU5WQUxJRENIICgoc2l6ZV90KXRtcCkpCiAJewogCSAgLyogSW4gdGhpcyBjYXNlLCB0aGUgYnl0ZXMgYXJlIGludmFsaWQgb3IgdG9vIHNob3J0IHRvIGNvbXBvc2UgYQogCSAgICAgbXVsdGlieXRlIGNoYXJhY3Rlciwgc28gd2UgYXNzdW1lIHRoYXQgdGhlIGZpcnN0IGJ5dGUgcmVwcmVzZW50cwpAQCAtMjE0NSw4ICsyMzI5LDggQEAKIAkgICAgIGVmZmVjdCBvZiBtYnN0YXRlIGlzIHVuZGVmaW5lZC4gKi8KIAkgIG1lbXNldCAoJnBzLCAwLCBzaXplb2YgKG1ic3RhdGVfdCkpOwogCX0KLSAgICAgIGVsc2UgaWYgKHRtcCA9PSAwKQotICAgICAgICBicmVhazsJCS8qIEZvdW5kICdcMCcgKi8KKyAgICAgIGVsc2UgaWYgKE1CX05VTExXQ0ggKHRtcCkpCisJYnJlYWs7CQkvKiBGb3VuZCAnXDAnICovCiAgICAgICBlbHNlCiAJewogCSAgcG9pbnQgKz0gdG1wOwpAQCAtMjE2Miw3ICsyMzQ2LDcgQEAKICAgd2hpbGUgKHBvaW50IDwgZW5kKQogICAgIHsKICAgICAgIHRtcCA9IG1icnRvd2MgKCZ3Yywgc3RyICsgcG9pbnQsIG1heCwgJnBzKTsKLSAgICAgIGlmICgoc2l6ZV90KXRtcCA9PSAoc2l6ZV90KS0xIHx8IChzaXplX3QpdG1wID09IChzaXplX3QpLTIpCisgICAgICBpZiAoTUJfSU5WQUxJRENIICgoc2l6ZV90KXRtcCkpCiAJewogCSAgLyogSW4gdGhpcyBjYXNlLCB0aGUgYnl0ZXMgYXJlIGludmFsaWQgb3IgdG9vIHNob3J0IHRvIGNvbXBvc2UgYQogCSAgICAgbXVsdGlieXRlIGNoYXJhY3Rlciwgc28gd2UgYXNzdW1lIHRoYXQgdGhlIGZpcnN0IGJ5dGUgcmVwcmVzZW50cwpAQCAtMjE3Nyw4ICsyMzYxLDggQEAKIAkgICAgIGVmZmVjdCBvZiBtYnN0YXRlIGlzIHVuZGVmaW5lZC4gKi8KIAkgIG1lbXNldCAoJnBzLCAwLCBzaXplb2YgKG1ic3RhdGVfdCkpOwogCX0KLSAgICAgIGVsc2UgaWYgKHRtcCA9PSAwKQotICAgICAgICBicmVhazsJCQkvKiBGb3VuZCAnXDAnICovCisgICAgICBlbHNlIGlmIChNQl9OVUxMV0NIICh0bXApKQorCWJyZWFrOwkJCS8qIEZvdW5kICdcMCcgKi8KICAgICAgIGVsc2UKIAl7CiAJICBwb2ludCArPSB0bXA7CkBAIC0yMTkzLDQgKzIzNzcsMyBAQAogICByZXR1cm4gd2lkdGg7CiB9CiAjZW5kaWYgLyogSEFORExFX01VTFRJQllURSAqLwotCSAgCmRpZmYgLS1naXQgYS9yZWFkbGluZS9kb2MvTWFrZWZpbGUuaW4gYi9yZWFkbGluZS9kb2MvTWFrZWZpbGUuaW4KaW5kZXggOGE4NWFlMS4uNjkyYTRlOCAxMDA2NDQKLS0tIGEvcmVhZGxpbmUvZG9jL01ha2VmaWxlLmluCisrKyBiL3JlYWRsaW5lL2RvYy9NYWtlZmlsZS5pbgpAQCAtMSw3ICsxLDcgQEAKICMgVGhpcyBtYWtlZmlsZSBmb3IgUmVhZGxpbmUgbGlicmFyeSBkb2N1bWVudGF0aW9uIGlzIGluIC0qLSB0ZXh0IC0qLSBtb2RlLgogIyBFbWFjcyBsaWtlcyBpdCB0aGF0IHdheS4KIAotIyBDb3B5cmlnaHQgKEMpIDE5OTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjIENvcHlyaWdodCAoQykgMTk5Ni0yMDA0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCiAjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CkBAIC01MiwxNCArNTIsMTggQEAKIFRFWEkySFRNTCAgID0gJChzcmNkaXIpL3RleGkyaHRtbAogUVVJRVRQUyAgICAgPSAjc2V0IHRoaXMgdG8gLXEgdG8gc2h1dCB1cCBkdmlwcwogUEFQRVJTSVpFICAgPSBsZXR0ZXIKLVBTRFBJICAgICAgID0gMzAwCSMgSSBkb24ndCBoYXZlIGFueSA2MDAtZHBpIHByaW50ZXJzCitQU0RQSSAgICAgICA9IDYwMAogRFZJUFMgICAgICAgPSBkdmlwcyAtRCAke1BTRFBJfSAkKFFVSUVUUFMpIC10ICR7UEFQRVJTSVpFfSAtbyAkQCAgICAgIyB0cmlja3kKIAotUkxTUkMgPSAkKHNyY2RpcikvcmxtYW4udGV4aW5mbyAkKHNyY2Rpcikvcmx1c2VyLnRleGluZm8gXAotCSQoc3JjZGlyKS9ybHRlY2gudGV4aW5mbyAkKHNyY2RpcikvbWFudmVycy50ZXhpbmZvIFwKLQkkKHNyY2Rpcikvcmx1c2VybWFuLnRleGluZm8KLUhJU1RTUkMgPSAkKHNyY2RpcikvaGlzdC50ZXhpbmZvICQoc3JjZGlyKS9oc3VzZXIudGV4aW5mbyBcCi0JICAkKHNyY2RpcikvaHN0ZWNoLnRleGluZm8gJChzcmNkaXIpL21hbnZlcnMudGV4aW5mbworIyBUaGVzZSB0b29scyBtaWdodCBub3QgYmUgYXZhaWxhYmxlOyB0aGV5J3JlIG5vdCByZXF1aXJlZAorRFZJUERGICAgICAgPSBkdmlwZGZtIC1vICRAIC1wICR7UEFQRVJTSVpFfQorUFNQREYgICAgICAgPSBncyAtc1BBUEVSU0laRT0ke1BBUEVSU0laRX0gLXNERVZJQ0U9cGRmd3JpdGUgLWROT1BBVVNFIC1kQkFUQ0ggLXNPdXRwdXRGaWxlPSRACisKK1JMU1JDID0gJChzcmNkaXIpL3JsbWFuLnRleGkgJChzcmNkaXIpL3JsdXNlci50ZXhpIFwKKwkkKHNyY2Rpcikvcmx0ZWNoLnRleGkgJChzcmNkaXIpL3ZlcnNpb24udGV4aSBcCisJJChzcmNkaXIpL3JsdXNlcm1hbi50ZXhpCitISVNUU1JDID0gJChzcmNkaXIpL2hpc3RvcnkudGV4aSAkKHNyY2RpcikvaHN1c2VyLnRleGkgXAorCSAgJChzcmNkaXIpL2hzdGVjaC50ZXhpICQoc3JjZGlyKS92ZXJzaW9uLnRleGkKIAogIyBUaGlzIHNob3VsZCBiZSBhIHByb2dyYW0gdGhhdCBjb252ZXJ0cyB0cm9mZiB0byBhbiBhc2NpaS1yZWFkYWJsZSBmb3JtYXQKIE5ST0ZGICAgICAgID0gZ3JvZmYgLVRhc2NpaQpAQCAtNzIsMzkgKzc2LDU0IEBACiBQU09CSiA9IHJlYWRsaW5lLnBzIGhpc3RvcnkucHMgcmx1c2VybWFuLnBzIHJlYWRsaW5lXzMucHMgaGlzdG9yeV8zLnBzCiBIVE1MT0JKID0gcmVhZGxpbmUuaHRtbCBoaXN0b3J5Lmh0bWwgcmx1c2VybWFuLmh0bWwKIFRFWFRPQkogPSByZWFkbGluZS4wIGhpc3RvcnkuMAorUERGT0JKID0gcmVhZGxpbmUucGRmIGhpc3RvcnkucGRmIHJsdXNlcm1hbi5wZGYKIAotSU5URVJNRURJQVRFX09CSiA9IHJsbWFuLmR2aSBoaXN0LmR2aSBybHVzZXJtYW4uZHZpCitJTlRFUk1FRElBVEVfT0JKID0gcmxtYW4uZHZpCiAKIERJU1RfRE9DUyA9ICQoRFZJT0JKKSAkKFBTT0JKKSAkKEhUTUxPQkopICQoSU5GT09CSikgJChURVhUT0JKKQogCi0uU1VGRklYRVM6ICAgICAgLjAgLjMgLnBzIC50eHQgLmR2aQorLlNVRkZJWEVTOiAgICAgIC4wIC4zIC5wcyAudHh0IC5kdmkgLmh0bWwgLnBkZgogCiAuMy4wOgogCSQoUk0pICRACiAJLSR7TlJPRkZ9IC1tYW4gJDwgPiAkQAogCisucHMucGRmOgorCSQoUk0pICRACisJLSR7UFNQREZ9ICQ8CisKKy5kdmkucGRmOgorCSQoUk0pICRACisJLSR7RFZJUERGfSAkPAorCiBhbGw6IGluZm8gZHZpIGh0bWwgcHMgdGV4dAogbm9kdmk6IGluZm8gaHRtbCB0ZXh0CiAKK2luZm86CSQoSU5GT09CSikKK2R2aToJJChEVklPQkopCitwczoJJChQU09CSikKK2h0bWw6CSQoSFRNTE9CSikKK3RleHQ6CSQoVEVYVE9CSikKK3BkZjoJJChQREZPQkopCisKIHJlYWRsaW5lLmR2aTogJChSTFNSQykKLQlURVhJTlBVVFM9LjokKFRFWElOUFVURElSKTokJFRFWElOUFVUUyAkKFRFWEkyRFZJKSAkKHNyY2RpcikvcmxtYW4udGV4aW5mbworCVRFWElOUFVUUz0uOiQoVEVYSU5QVVRESVIpOiQkVEVYSU5QVVRTICQoVEVYSTJEVkkpICQoc3JjZGlyKS9ybG1hbi50ZXhpCiAJbXYgcmxtYW4uZHZpIHJlYWRsaW5lLmR2aQogCiByZWFkbGluZS5pbmZvOiAkKFJMU1JDKQotCSQoTUFLRUlORk8pIC0tbm8tc3BsaXQgLUkgJChURVhJTlBVVERJUikgLW8gJEAgJChzcmNkaXIpL3JsbWFuLnRleGluZm8KKwkkKE1BS0VJTkZPKSAtLW5vLXNwbGl0IC1JICQoVEVYSU5QVVRESVIpIC1vICRAICQoc3JjZGlyKS9ybG1hbi50ZXhpCiAKIHJsdXNlcm1hbi5kdmk6ICQoUkxTUkMpCi0JVEVYSU5QVVRTPS46JChURVhJTlBVVERJUik6JCRURVhJTlBVVFMgJChURVhJMkRWSSkgJChzcmNkaXIpL3JsdXNlcm1hbi50ZXhpbmZvCisJVEVYSU5QVVRTPS46JChURVhJTlBVVERJUik6JCRURVhJTlBVVFMgJChURVhJMkRWSSkgJChzcmNkaXIpL3JsdXNlcm1hbi50ZXhpCiAKIHJsdXNlcm1hbi5pbmZvOiAkKFJMU1JDKQotCSQoTUFLRUlORk8pIC0tbm8tc3BsaXQgLUkgJChURVhJTlBVVERJUikgLW8gJEAgJChzcmNkaXIpL3JsdXNlcm1hbi50ZXhpbmZvCisJJChNQUtFSU5GTykgLS1uby1zcGxpdCAtSSAkKFRFWElOUFVURElSKSAtbyAkQCAkKHNyY2Rpcikvcmx1c2VybWFuLnRleGkKIAogaGlzdG9yeS5kdmk6ICR7SElTVFNSQ30KLQlURVhJTlBVVFM9LjokKFRFWElOUFVURElSKTokJFRFWElOUFVUUyAkKFRFWEkyRFZJKSAkKHNyY2RpcikvaGlzdC50ZXhpbmZvCi0JbXYgaGlzdC5kdmkgaGlzdG9yeS5kdmkKKwlURVhJTlBVVFM9LjokKFRFWElOUFVURElSKTokJFRFWElOUFVUUyAkKFRFWEkyRFZJKSAkKHNyY2RpcikvaGlzdG9yeS50ZXhpCiAKIGhpc3RvcnkuaW5mbzogJHtISVNUU1JDfQotCSQoTUFLRUlORk8pIC0tbm8tc3BsaXQgLUkgJChURVhJTlBVVERJUikgLW8gJEAgJChzcmNkaXIpL2hpc3QudGV4aW5mbworCSQoTUFLRUlORk8pIC0tbm8tc3BsaXQgLUkgJChURVhJTlBVVERJUikgLW8gJEAgJChzcmNkaXIpL2hpc3RvcnkudGV4aQogCiByZWFkbGluZS5wczoJcmVhZGxpbmUuZHZpCiAJJChSTSkgJEAKQEAgLTEyMiwyMiArMTQxLDE1IEBACiAjIFRoaXMgbGVhdmVzIHJlYWRsaW5lLmh0bWwgYW5kIHJsbWFuLmh0bWwgLS0gcmxtYW4uaHRtbCBpcyBmb3Igd3d3LmdudS5vcmcKICMKIHJlYWRsaW5lLmh0bWw6CSR7UkxTUkN9Ci0JJChURVhJMkhUTUwpIC1tZW51IC1tb25vbGl0aGljIC1JICQoVEVYSU5QVVRESVIpICQoc3JjZGlyKS9ybG1hbi50ZXhpbmZvCisJJChURVhJMkhUTUwpIC1tZW51IC1tb25vbGl0aGljIC1JICQoVEVYSU5QVVRESVIpICQoc3JjZGlyKS9ybG1hbi50ZXhpCiAJc2VkIC1lICdzOnJsbWFuLmh0bWw6cmVhZGxpbmUuaHRtbDpnJyBybG1hbi5odG1sID4gcmVhZGxpbmUuaHRtbAorCSQoUk0pIHJsbWFuLmh0bWwKIAogcmx1c2VybWFuLmh0bWw6CSR7UkxTUkN9Ci0JJChURVhJMkhUTUwpIC1tZW51IC1tb25vbGl0aGljIC1JICQoVEVYSU5QVVRESVIpICQoc3JjZGlyKS9ybHVzZXJtYW4udGV4aW5mbworCSQoVEVYSTJIVE1MKSAtbWVudSAtbW9ub2xpdGhpYyAtSSAkKFRFWElOUFVURElSKSAkKHNyY2Rpcikvcmx1c2VybWFuLnRleGkKIAogaGlzdG9yeS5odG1sOgkke0hJU1RTUkN9Ci0JJChURVhJMkhUTUwpIC1tZW51IC1tb25vbGl0aGljIC1JICQoVEVYSU5QVVRESVIpICQoc3JjZGlyKS9oaXN0LnRleGluZm8KLQlzZWQgLWUgJ3M6aGlzdC5odG1sOmhpc3RvcnkuaHRtbDpnJyBoaXN0Lmh0bWwgPiBoaXN0b3J5Lmh0bWwKLQkkKFJNKSBoaXN0Lmh0bWwKLQotaW5mbzoJJChJTkZPT0JKKQotZHZpOgkkKERWSU9CSikKLXBzOgkkKFBTT0JKKQotaHRtbDoJJChIVE1MT0JKKQotdGV4dDoJJChURVhUT0JKKQorCSQoVEVYSTJIVE1MKSAtbWVudSAtbW9ub2xpdGhpYyAtSSAkKFRFWElOUFVURElSKSAkKHNyY2RpcikvaGlzdG9yeS50ZXhpCiAKIHJlYWRsaW5lLjA6IHJlYWRsaW5lLjMKIApAQCAtMTUxLDkgKzE2MywxNCBAQAogCSR7Uk19ICRACiAJJHtHUk9GRn0gLW1hbiA8ICQoc3JjZGlyKS9oaXN0b3J5LjMgPiAkQCAKIAorcmVhZGxpbmUucGRmOglyZWFkbGluZS5kdmkKK2hpc3RvcnkucGRmOgloaXN0b3J5LmR2aQorcmx1c2VybWFuLnBkZjoJcmx1c2VybWFuLmR2aQorCiBjbGVhbjoKLQkkKFJNKSAqLmF1eCAqLmNwICouZm4gKi5reSAqLmxvZyAqLnBnICoudG9jICoudHAgKi52ciAqLmNwcyAqLnBncyBcCi0JICAgICAgKi5mbnMgKi5reXMgKi50cHMgKi52cnMgKi5idCAqLmJ0cyAqLm8gY29yZSAqLmNvcmUKKwkkKFJNKSAqLmF1eCAqLmJhayAqLmNwICouZm4gKi5reSAqLmxvZyAqLnBnICoudG9jICoudHAgKi52ciAqLmNwcyBcCisJICAgICAgKi5wZ3MgKi5idCAqLmJ0cyAqLnJ3ICoucndzICouZm5zICoua3lzICoudHBzICoudnJzICoubyBcCisJICAgICAgY29yZSAqLmNvcmUKIAogbW9zdGx5Y2xlYW46IGNsZWFuCiAKQEAgLTE2OSw2ICsxODYsNyBAQAogbWFpbnRhaW5lci1jbGVhbjogY2xlYW4KIAkkKFJNKSAkKERJU1RfRE9DUykKIAkkKFJNKSAkKElOVEVSTUVESUFURV9PQkopCisJJChSTSkgJChQREZPQkopCiAJJChSTSkgTWFrZWZpbGUKIAogaW5zdGFsbGRpcnM6CSQodG9wZGlyKS9zdXBwb3J0L21rZGlycwpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvZG9jL2ZkbC50ZXhpIGIvcmVhZGxpbmUvZG9jL2ZkbC50ZXhpCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ3ZWFkOWYKLS0tIC9kZXYvbnVsbAorKysgYi9yZWFkbGluZS9kb2MvZmRsLnRleGkKQEAgLTAsMCArMSw0NTIgQEAKKworQG5vZGUgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlCitAYXBwZW5kaXhzZWMgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlCisKK0BjaW5kZXggRkRMLCBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UKK0BjZW50ZXIgVmVyc2lvbiAxLjIsIE5vdmVtYmVyIDIwMDIKKworQGRpc3BsYXkKK0NvcHlyaWdodCBAY29weXJpZ2h0e30gMjAwMCwyMDAxLDIwMDIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCis1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNywgVVNBCisKK0V2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcworb2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQgaXMgbm90IGFsbG93ZWQuCitAZW5kIGRpc3BsYXkKKworQGVudW1lcmF0ZSAwCitAaXRlbQorUFJFQU1CTEUKKworVGhlIHB1cnBvc2Ugb2YgdGhpcyBMaWNlbnNlIGlzIHRvIG1ha2UgYSBtYW51YWwsIHRleHRib29rLCBvciBvdGhlcgorZnVuY3Rpb25hbCBhbmQgdXNlZnVsIGRvY3VtZW50IEBkZm57ZnJlZX0gaW4gdGhlIHNlbnNlIG9mIGZyZWVkb206IHRvCithc3N1cmUgZXZlcnlvbmUgdGhlIGVmZmVjdGl2ZSBmcmVlZG9tIHRvIGNvcHkgYW5kIHJlZGlzdHJpYnV0ZSBpdCwKK3dpdGggb3Igd2l0aG91dCBtb2RpZnlpbmcgaXQsIGVpdGhlciBjb21tZXJjaWFsbHkgb3Igbm9uY29tbWVyY2lhbGx5LgorU2Vjb25kYXJpbHksIHRoaXMgTGljZW5zZSBwcmVzZXJ2ZXMgZm9yIHRoZSBhdXRob3IgYW5kIHB1Ymxpc2hlciBhIHdheQordG8gZ2V0IGNyZWRpdCBmb3IgdGhlaXIgd29yaywgd2hpbGUgbm90IGJlaW5nIGNvbnNpZGVyZWQgcmVzcG9uc2libGUKK2ZvciBtb2RpZmljYXRpb25zIG1hZGUgYnkgb3RoZXJzLgorCitUaGlzIExpY2Vuc2UgaXMgYSBraW5kIG9mIGBgY29weWxlZnQnJywgd2hpY2ggbWVhbnMgdGhhdCBkZXJpdmF0aXZlCit3b3JrcyBvZiB0aGUgZG9jdW1lbnQgbXVzdCB0aGVtc2VsdmVzIGJlIGZyZWUgaW4gdGhlIHNhbWUgc2Vuc2UuICBJdAorY29tcGxlbWVudHMgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB3aGljaCBpcyBhIGNvcHlsZWZ0CitsaWNlbnNlIGRlc2lnbmVkIGZvciBmcmVlIHNvZnR3YXJlLgorCitXZSBoYXZlIGRlc2lnbmVkIHRoaXMgTGljZW5zZSBpbiBvcmRlciB0byB1c2UgaXQgZm9yIG1hbnVhbHMgZm9yIGZyZWUKK3NvZnR3YXJlLCBiZWNhdXNlIGZyZWUgc29mdHdhcmUgbmVlZHMgZnJlZSBkb2N1bWVudGF0aW9uOiBhIGZyZWUKK3Byb2dyYW0gc2hvdWxkIGNvbWUgd2l0aCBtYW51YWxzIHByb3ZpZGluZyB0aGUgc2FtZSBmcmVlZG9tcyB0aGF0IHRoZQorc29mdHdhcmUgZG9lcy4gIEJ1dCB0aGlzIExpY2Vuc2UgaXMgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgbWFudWFsczsKK2l0IGNhbiBiZSB1c2VkIGZvciBhbnkgdGV4dHVhbCB3b3JrLCByZWdhcmRsZXNzIG9mIHN1YmplY3QgbWF0dGVyIG9yCit3aGV0aGVyIGl0IGlzIHB1Ymxpc2hlZCBhcyBhIHByaW50ZWQgYm9vay4gIFdlIHJlY29tbWVuZCB0aGlzIExpY2Vuc2UKK3ByaW5jaXBhbGx5IGZvciB3b3JrcyB3aG9zZSBwdXJwb3NlIGlzIGluc3RydWN0aW9uIG9yIHJlZmVyZW5jZS4KKworQGl0ZW0KK0FQUExJQ0FCSUxJVFkgQU5EIERFRklOSVRJT05TCisKK1RoaXMgTGljZW5zZSBhcHBsaWVzIHRvIGFueSBtYW51YWwgb3Igb3RoZXIgd29yaywgaW4gYW55IG1lZGl1bSwgdGhhdAorY29udGFpbnMgYSBub3RpY2UgcGxhY2VkIGJ5IHRoZSBjb3B5cmlnaHQgaG9sZGVyIHNheWluZyBpdCBjYW4gYmUKK2Rpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UuICBTdWNoIGEgbm90aWNlIGdyYW50cyBhCit3b3JsZC13aWRlLCByb3lhbHR5LWZyZWUgbGljZW5zZSwgdW5saW1pdGVkIGluIGR1cmF0aW9uLCB0byB1c2UgdGhhdAord29yayB1bmRlciB0aGUgY29uZGl0aW9ucyBzdGF0ZWQgaGVyZWluLiAgVGhlIGBgRG9jdW1lbnQnJywgYmVsb3csCityZWZlcnMgdG8gYW55IHN1Y2ggbWFudWFsIG9yIHdvcmsuICBBbnkgbWVtYmVyIG9mIHRoZSBwdWJsaWMgaXMgYQorbGljZW5zZWUsIGFuZCBpcyBhZGRyZXNzZWQgYXMgYGB5b3UnJy4gIFlvdSBhY2NlcHQgdGhlIGxpY2Vuc2UgaWYgeW91Citjb3B5LCBtb2RpZnkgb3IgZGlzdHJpYnV0ZSB0aGUgd29yayBpbiBhIHdheSByZXF1aXJpbmcgcGVybWlzc2lvbgordW5kZXIgY29weXJpZ2h0IGxhdy4KKworQSBgYE1vZGlmaWVkIFZlcnNpb24nJyBvZiB0aGUgRG9jdW1lbnQgbWVhbnMgYW55IHdvcmsgY29udGFpbmluZyB0aGUKK0RvY3VtZW50IG9yIGEgcG9ydGlvbiBvZiBpdCwgZWl0aGVyIGNvcGllZCB2ZXJiYXRpbSwgb3Igd2l0aAorbW9kaWZpY2F0aW9ucyBhbmQvb3IgdHJhbnNsYXRlZCBpbnRvIGFub3RoZXIgbGFuZ3VhZ2UuCisKK0EgYGBTZWNvbmRhcnkgU2VjdGlvbicnIGlzIGEgbmFtZWQgYXBwZW5kaXggb3IgYSBmcm9udC1tYXR0ZXIgc2VjdGlvbgorb2YgdGhlIERvY3VtZW50IHRoYXQgZGVhbHMgZXhjbHVzaXZlbHkgd2l0aCB0aGUgcmVsYXRpb25zaGlwIG9mIHRoZQorcHVibGlzaGVycyBvciBhdXRob3JzIG9mIHRoZSBEb2N1bWVudCB0byB0aGUgRG9jdW1lbnQncyBvdmVyYWxsCitzdWJqZWN0IChvciB0byByZWxhdGVkIG1hdHRlcnMpIGFuZCBjb250YWlucyBub3RoaW5nIHRoYXQgY291bGQgZmFsbAorZGlyZWN0bHkgd2l0aGluIHRoYXQgb3ZlcmFsbCBzdWJqZWN0LiAgKFRodXMsIGlmIHRoZSBEb2N1bWVudCBpcyBpbgorcGFydCBhIHRleHRib29rIG9mIG1hdGhlbWF0aWNzLCBhIFNlY29uZGFyeSBTZWN0aW9uIG1heSBub3QgZXhwbGFpbgorYW55IG1hdGhlbWF0aWNzLikgIFRoZSByZWxhdGlvbnNoaXAgY291bGQgYmUgYSBtYXR0ZXIgb2YgaGlzdG9yaWNhbAorY29ubmVjdGlvbiB3aXRoIHRoZSBzdWJqZWN0IG9yIHdpdGggcmVsYXRlZCBtYXR0ZXJzLCBvciBvZiBsZWdhbCwKK2NvbW1lcmNpYWwsIHBoaWxvc29waGljYWwsIGV0aGljYWwgb3IgcG9saXRpY2FsIHBvc2l0aW9uIHJlZ2FyZGluZwordGhlbS4KKworVGhlIGBgSW52YXJpYW50IFNlY3Rpb25zJycgYXJlIGNlcnRhaW4gU2Vjb25kYXJ5IFNlY3Rpb25zIHdob3NlIHRpdGxlcworYXJlIGRlc2lnbmF0ZWQsIGFzIGJlaW5nIHRob3NlIG9mIEludmFyaWFudCBTZWN0aW9ucywgaW4gdGhlIG5vdGljZQordGhhdCBzYXlzIHRoYXQgdGhlIERvY3VtZW50IGlzIHJlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZS4gIElmIGEKK3NlY3Rpb24gZG9lcyBub3QgZml0IHRoZSBhYm92ZSBkZWZpbml0aW9uIG9mIFNlY29uZGFyeSB0aGVuIGl0IGlzIG5vdAorYWxsb3dlZCB0byBiZSBkZXNpZ25hdGVkIGFzIEludmFyaWFudC4gIFRoZSBEb2N1bWVudCBtYXkgY29udGFpbiB6ZXJvCitJbnZhcmlhbnQgU2VjdGlvbnMuICBJZiB0aGUgRG9jdW1lbnQgZG9lcyBub3QgaWRlbnRpZnkgYW55IEludmFyaWFudAorU2VjdGlvbnMgdGhlbiB0aGVyZSBhcmUgbm9uZS4KKworVGhlIGBgQ292ZXIgVGV4dHMnJyBhcmUgY2VydGFpbiBzaG9ydCBwYXNzYWdlcyBvZiB0ZXh0IHRoYXQgYXJlIGxpc3RlZCwKK2FzIEZyb250LUNvdmVyIFRleHRzIG9yIEJhY2stQ292ZXIgVGV4dHMsIGluIHRoZSBub3RpY2UgdGhhdCBzYXlzIHRoYXQKK3RoZSBEb2N1bWVudCBpcyByZWxlYXNlZCB1bmRlciB0aGlzIExpY2Vuc2UuICBBIEZyb250LUNvdmVyIFRleHQgbWF5CitiZSBhdCBtb3N0IDUgd29yZHMsIGFuZCBhIEJhY2stQ292ZXIgVGV4dCBtYXkgYmUgYXQgbW9zdCAyNSB3b3Jkcy4KKworQSBgYFRyYW5zcGFyZW50JycgY29weSBvZiB0aGUgRG9jdW1lbnQgbWVhbnMgYSBtYWNoaW5lLXJlYWRhYmxlIGNvcHksCityZXByZXNlbnRlZCBpbiBhIGZvcm1hdCB3aG9zZSBzcGVjaWZpY2F0aW9uIGlzIGF2YWlsYWJsZSB0byB0aGUKK2dlbmVyYWwgcHVibGljLCB0aGF0IGlzIHN1aXRhYmxlIGZvciByZXZpc2luZyB0aGUgZG9jdW1lbnQKK3N0cmFpZ2h0Zm9yd2FyZGx5IHdpdGggZ2VuZXJpYyB0ZXh0IGVkaXRvcnMgb3IgKGZvciBpbWFnZXMgY29tcG9zZWQgb2YKK3BpeGVscykgZ2VuZXJpYyBwYWludCBwcm9ncmFtcyBvciAoZm9yIGRyYXdpbmdzKSBzb21lIHdpZGVseSBhdmFpbGFibGUKK2RyYXdpbmcgZWRpdG9yLCBhbmQgdGhhdCBpcyBzdWl0YWJsZSBmb3IgaW5wdXQgdG8gdGV4dCBmb3JtYXR0ZXJzIG9yCitmb3IgYXV0b21hdGljIHRyYW5zbGF0aW9uIHRvIGEgdmFyaWV0eSBvZiBmb3JtYXRzIHN1aXRhYmxlIGZvciBpbnB1dAordG8gdGV4dCBmb3JtYXR0ZXJzLiAgQSBjb3B5IG1hZGUgaW4gYW4gb3RoZXJ3aXNlIFRyYW5zcGFyZW50IGZpbGUKK2Zvcm1hdCB3aG9zZSBtYXJrdXAsIG9yIGFic2VuY2Ugb2YgbWFya3VwLCBoYXMgYmVlbiBhcnJhbmdlZCB0byB0aHdhcnQKK29yIGRpc2NvdXJhZ2Ugc3Vic2VxdWVudCBtb2RpZmljYXRpb24gYnkgcmVhZGVycyBpcyBub3QgVHJhbnNwYXJlbnQuCitBbiBpbWFnZSBmb3JtYXQgaXMgbm90IFRyYW5zcGFyZW50IGlmIHVzZWQgZm9yIGFueSBzdWJzdGFudGlhbCBhbW91bnQKK29mIHRleHQuICBBIGNvcHkgdGhhdCBpcyBub3QgYGBUcmFuc3BhcmVudCcnIGlzIGNhbGxlZCBgYE9wYXF1ZScnLgorCitFeGFtcGxlcyBvZiBzdWl0YWJsZSBmb3JtYXRzIGZvciBUcmFuc3BhcmVudCBjb3BpZXMgaW5jbHVkZSBwbGFpbgorQHNje2FzY2lpfSB3aXRob3V0IG1hcmt1cCwgVGV4aW5mbyBpbnB1dCBmb3JtYXQsIExhQFRlWHt9IGlucHV0Citmb3JtYXQsIEBhY3Jvbnlte1NHTUx9IG9yIEBhY3Jvbnlte1hNTH0gdXNpbmcgYSBwdWJsaWNseSBhdmFpbGFibGUKK0BhY3Jvbnlte0RURH0sIGFuZCBzdGFuZGFyZC1jb25mb3JtaW5nIHNpbXBsZSBAYWNyb255bXtIVE1MfSwKK1Bvc3RTY3JpcHQgb3IgQGFjcm9ueW17UERGfSBkZXNpZ25lZCBmb3IgaHVtYW4gbW9kaWZpY2F0aW9uLiAgRXhhbXBsZXMKK29mIHRyYW5zcGFyZW50IGltYWdlIGZvcm1hdHMgaW5jbHVkZSBAYWNyb255bXtQTkd9LCBAYWNyb255bXtYQ0Z9IGFuZAorQGFjcm9ueW17SlBHfS4gIE9wYXF1ZSBmb3JtYXRzIGluY2x1ZGUgcHJvcHJpZXRhcnkgZm9ybWF0cyB0aGF0IGNhbiBiZQorcmVhZCBhbmQgZWRpdGVkIG9ubHkgYnkgcHJvcHJpZXRhcnkgd29yZCBwcm9jZXNzb3JzLCBAYWNyb255bXtTR01MfSBvcgorQGFjcm9ueW17WE1MfSBmb3Igd2hpY2ggdGhlIEBhY3Jvbnlte0RURH0gYW5kL29yIHByb2Nlc3NpbmcgdG9vbHMgYXJlCitub3QgZ2VuZXJhbGx5IGF2YWlsYWJsZSwgYW5kIHRoZSBtYWNoaW5lLWdlbmVyYXRlZCBAYWNyb255bXtIVE1MfSwKK1Bvc3RTY3JpcHQgb3IgQGFjcm9ueW17UERGfSBwcm9kdWNlZCBieSBzb21lIHdvcmQgcHJvY2Vzc29ycyBmb3IKK291dHB1dCBwdXJwb3NlcyBvbmx5LgorCitUaGUgYGBUaXRsZSBQYWdlJycgbWVhbnMsIGZvciBhIHByaW50ZWQgYm9vaywgdGhlIHRpdGxlIHBhZ2UgaXRzZWxmLAorcGx1cyBzdWNoIGZvbGxvd2luZyBwYWdlcyBhcyBhcmUgbmVlZGVkIHRvIGhvbGQsIGxlZ2libHksIHRoZSBtYXRlcmlhbAordGhpcyBMaWNlbnNlIHJlcXVpcmVzIHRvIGFwcGVhciBpbiB0aGUgdGl0bGUgcGFnZS4gIEZvciB3b3JrcyBpbgorZm9ybWF0cyB3aGljaCBkbyBub3QgaGF2ZSBhbnkgdGl0bGUgcGFnZSBhcyBzdWNoLCBgYFRpdGxlIFBhZ2UnJyBtZWFucwordGhlIHRleHQgbmVhciB0aGUgbW9zdCBwcm9taW5lbnQgYXBwZWFyYW5jZSBvZiB0aGUgd29yaydzIHRpdGxlLAorcHJlY2VkaW5nIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGJvZHkgb2YgdGhlIHRleHQuCisKK0Egc2VjdGlvbiBgYEVudGl0bGVkIFhZWicnIG1lYW5zIGEgbmFtZWQgc3VidW5pdCBvZiB0aGUgRG9jdW1lbnQgd2hvc2UKK3RpdGxlIGVpdGhlciBpcyBwcmVjaXNlbHkgWFlaIG9yIGNvbnRhaW5zIFhZWiBpbiBwYXJlbnRoZXNlcyBmb2xsb3dpbmcKK3RleHQgdGhhdCB0cmFuc2xhdGVzIFhZWiBpbiBhbm90aGVyIGxhbmd1YWdlLiAgKEhlcmUgWFlaIHN0YW5kcyBmb3IgYQorc3BlY2lmaWMgc2VjdGlvbiBuYW1lIG1lbnRpb25lZCBiZWxvdywgc3VjaCBhcyBgYEFja25vd2xlZGdlbWVudHMnJywKK2BgRGVkaWNhdGlvbnMnJywgYGBFbmRvcnNlbWVudHMnJywgb3IgYGBIaXN0b3J5JycuKSAgVG8gYGBQcmVzZXJ2ZSB0aGUgVGl0bGUnJworb2Ygc3VjaCBhIHNlY3Rpb24gd2hlbiB5b3UgbW9kaWZ5IHRoZSBEb2N1bWVudCBtZWFucyB0aGF0IGl0IHJlbWFpbnMgYQorc2VjdGlvbiBgYEVudGl0bGVkIFhZWicnIGFjY29yZGluZyB0byB0aGlzIGRlZmluaXRpb24uCisKK1RoZSBEb2N1bWVudCBtYXkgaW5jbHVkZSBXYXJyYW50eSBEaXNjbGFpbWVycyBuZXh0IHRvIHRoZSBub3RpY2Ugd2hpY2gKK3N0YXRlcyB0aGF0IHRoaXMgTGljZW5zZSBhcHBsaWVzIHRvIHRoZSBEb2N1bWVudC4gIFRoZXNlIFdhcnJhbnR5CitEaXNjbGFpbWVycyBhcmUgY29uc2lkZXJlZCB0byBiZSBpbmNsdWRlZCBieSByZWZlcmVuY2UgaW4gdGhpcworTGljZW5zZSwgYnV0IG9ubHkgYXMgcmVnYXJkcyBkaXNjbGFpbWluZyB3YXJyYW50aWVzOiBhbnkgb3RoZXIKK2ltcGxpY2F0aW9uIHRoYXQgdGhlc2UgV2FycmFudHkgRGlzY2xhaW1lcnMgbWF5IGhhdmUgaXMgdm9pZCBhbmQgaGFzCitubyBlZmZlY3Qgb24gdGhlIG1lYW5pbmcgb2YgdGhpcyBMaWNlbnNlLgorCitAaXRlbQorVkVSQkFUSU0gQ09QWUlORworCitZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdGhlIERvY3VtZW50IGluIGFueSBtZWRpdW0sIGVpdGhlcgorY29tbWVyY2lhbGx5IG9yIG5vbmNvbW1lcmNpYWxseSwgcHJvdmlkZWQgdGhhdCB0aGlzIExpY2Vuc2UsIHRoZQorY29weXJpZ2h0IG5vdGljZXMsIGFuZCB0aGUgbGljZW5zZSBub3RpY2Ugc2F5aW5nIHRoaXMgTGljZW5zZSBhcHBsaWVzCit0byB0aGUgRG9jdW1lbnQgYXJlIHJlcHJvZHVjZWQgaW4gYWxsIGNvcGllcywgYW5kIHRoYXQgeW91IGFkZCBubyBvdGhlcgorY29uZGl0aW9ucyB3aGF0c29ldmVyIHRvIHRob3NlIG9mIHRoaXMgTGljZW5zZS4gIFlvdSBtYXkgbm90IHVzZQordGVjaG5pY2FsIG1lYXN1cmVzIHRvIG9ic3RydWN0IG9yIGNvbnRyb2wgdGhlIHJlYWRpbmcgb3IgZnVydGhlcgorY29weWluZyBvZiB0aGUgY29waWVzIHlvdSBtYWtlIG9yIGRpc3RyaWJ1dGUuICBIb3dldmVyLCB5b3UgbWF5IGFjY2VwdAorY29tcGVuc2F0aW9uIGluIGV4Y2hhbmdlIGZvciBjb3BpZXMuICBJZiB5b3UgZGlzdHJpYnV0ZSBhIGxhcmdlIGVub3VnaAorbnVtYmVyIG9mIGNvcGllcyB5b3UgbXVzdCBhbHNvIGZvbGxvdyB0aGUgY29uZGl0aW9ucyBpbiBzZWN0aW9uIDMuCisKK1lvdSBtYXkgYWxzbyBsZW5kIGNvcGllcywgdW5kZXIgdGhlIHNhbWUgY29uZGl0aW9ucyBzdGF0ZWQgYWJvdmUsIGFuZAoreW91IG1heSBwdWJsaWNseSBkaXNwbGF5IGNvcGllcy4KKworQGl0ZW0KK0NPUFlJTkcgSU4gUVVBTlRJVFkKKworSWYgeW91IHB1Ymxpc2ggcHJpbnRlZCBjb3BpZXMgKG9yIGNvcGllcyBpbiBtZWRpYSB0aGF0IGNvbW1vbmx5IGhhdmUKK3ByaW50ZWQgY292ZXJzKSBvZiB0aGUgRG9jdW1lbnQsIG51bWJlcmluZyBtb3JlIHRoYW4gMTAwLCBhbmQgdGhlCitEb2N1bWVudCdzIGxpY2Vuc2Ugbm90aWNlIHJlcXVpcmVzIENvdmVyIFRleHRzLCB5b3UgbXVzdCBlbmNsb3NlIHRoZQorY29waWVzIGluIGNvdmVycyB0aGF0IGNhcnJ5LCBjbGVhcmx5IGFuZCBsZWdpYmx5LCBhbGwgdGhlc2UgQ292ZXIKK1RleHRzOiBGcm9udC1Db3ZlciBUZXh0cyBvbiB0aGUgZnJvbnQgY292ZXIsIGFuZCBCYWNrLUNvdmVyIFRleHRzIG9uCit0aGUgYmFjayBjb3Zlci4gIEJvdGggY292ZXJzIG11c3QgYWxzbyBjbGVhcmx5IGFuZCBsZWdpYmx5IGlkZW50aWZ5Cit5b3UgYXMgdGhlIHB1Ymxpc2hlciBvZiB0aGVzZSBjb3BpZXMuICBUaGUgZnJvbnQgY292ZXIgbXVzdCBwcmVzZW50Cit0aGUgZnVsbCB0aXRsZSB3aXRoIGFsbCB3b3JkcyBvZiB0aGUgdGl0bGUgZXF1YWxseSBwcm9taW5lbnQgYW5kCit2aXNpYmxlLiAgWW91IG1heSBhZGQgb3RoZXIgbWF0ZXJpYWwgb24gdGhlIGNvdmVycyBpbiBhZGRpdGlvbi4KK0NvcHlpbmcgd2l0aCBjaGFuZ2VzIGxpbWl0ZWQgdG8gdGhlIGNvdmVycywgYXMgbG9uZyBhcyB0aGV5IHByZXNlcnZlCit0aGUgdGl0bGUgb2YgdGhlIERvY3VtZW50IGFuZCBzYXRpc2Z5IHRoZXNlIGNvbmRpdGlvbnMsIGNhbiBiZSB0cmVhdGVkCithcyB2ZXJiYXRpbSBjb3B5aW5nIGluIG90aGVyIHJlc3BlY3RzLgorCitJZiB0aGUgcmVxdWlyZWQgdGV4dHMgZm9yIGVpdGhlciBjb3ZlciBhcmUgdG9vIHZvbHVtaW5vdXMgdG8gZml0CitsZWdpYmx5LCB5b3Ugc2hvdWxkIHB1dCB0aGUgZmlyc3Qgb25lcyBsaXN0ZWQgKGFzIG1hbnkgYXMgZml0CityZWFzb25hYmx5KSBvbiB0aGUgYWN0dWFsIGNvdmVyLCBhbmQgY29udGludWUgdGhlIHJlc3Qgb250byBhZGphY2VudAorcGFnZXMuCisKK0lmIHlvdSBwdWJsaXNoIG9yIGRpc3RyaWJ1dGUgT3BhcXVlIGNvcGllcyBvZiB0aGUgRG9jdW1lbnQgbnVtYmVyaW5nCittb3JlIHRoYW4gMTAwLCB5b3UgbXVzdCBlaXRoZXIgaW5jbHVkZSBhIG1hY2hpbmUtcmVhZGFibGUgVHJhbnNwYXJlbnQKK2NvcHkgYWxvbmcgd2l0aCBlYWNoIE9wYXF1ZSBjb3B5LCBvciBzdGF0ZSBpbiBvciB3aXRoIGVhY2ggT3BhcXVlIGNvcHkKK2EgY29tcHV0ZXItbmV0d29yayBsb2NhdGlvbiBmcm9tIHdoaWNoIHRoZSBnZW5lcmFsIG5ldHdvcmstdXNpbmcKK3B1YmxpYyBoYXMgYWNjZXNzIHRvIGRvd25sb2FkIHVzaW5nIHB1YmxpYy1zdGFuZGFyZCBuZXR3b3JrIHByb3RvY29scworYSBjb21wbGV0ZSBUcmFuc3BhcmVudCBjb3B5IG9mIHRoZSBEb2N1bWVudCwgZnJlZSBvZiBhZGRlZCBtYXRlcmlhbC4KK0lmIHlvdSB1c2UgdGhlIGxhdHRlciBvcHRpb24sIHlvdSBtdXN0IHRha2UgcmVhc29uYWJseSBwcnVkZW50IHN0ZXBzLAord2hlbiB5b3UgYmVnaW4gZGlzdHJpYnV0aW9uIG9mIE9wYXF1ZSBjb3BpZXMgaW4gcXVhbnRpdHksIHRvIGVuc3VyZQordGhhdCB0aGlzIFRyYW5zcGFyZW50IGNvcHkgd2lsbCByZW1haW4gdGh1cyBhY2Nlc3NpYmxlIGF0IHRoZSBzdGF0ZWQKK2xvY2F0aW9uIHVudGlsIGF0IGxlYXN0IG9uZSB5ZWFyIGFmdGVyIHRoZSBsYXN0IHRpbWUgeW91IGRpc3RyaWJ1dGUgYW4KK09wYXF1ZSBjb3B5IChkaXJlY3RseSBvciB0aHJvdWdoIHlvdXIgYWdlbnRzIG9yIHJldGFpbGVycykgb2YgdGhhdAorZWRpdGlvbiB0byB0aGUgcHVibGljLgorCitJdCBpcyByZXF1ZXN0ZWQsIGJ1dCBub3QgcmVxdWlyZWQsIHRoYXQgeW91IGNvbnRhY3QgdGhlIGF1dGhvcnMgb2YgdGhlCitEb2N1bWVudCB3ZWxsIGJlZm9yZSByZWRpc3RyaWJ1dGluZyBhbnkgbGFyZ2UgbnVtYmVyIG9mIGNvcGllcywgdG8gZ2l2ZQordGhlbSBhIGNoYW5jZSB0byBwcm92aWRlIHlvdSB3aXRoIGFuIHVwZGF0ZWQgdmVyc2lvbiBvZiB0aGUgRG9jdW1lbnQuCisKK0BpdGVtCitNT0RJRklDQVRJT05TCisKK1lvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSBhIE1vZGlmaWVkIFZlcnNpb24gb2YgdGhlIERvY3VtZW50IHVuZGVyCit0aGUgY29uZGl0aW9ucyBvZiBzZWN0aW9ucyAyIGFuZCAzIGFib3ZlLCBwcm92aWRlZCB0aGF0IHlvdSByZWxlYXNlCit0aGUgTW9kaWZpZWQgVmVyc2lvbiB1bmRlciBwcmVjaXNlbHkgdGhpcyBMaWNlbnNlLCB3aXRoIHRoZSBNb2RpZmllZAorVmVyc2lvbiBmaWxsaW5nIHRoZSByb2xlIG9mIHRoZSBEb2N1bWVudCwgdGh1cyBsaWNlbnNpbmcgZGlzdHJpYnV0aW9uCithbmQgbW9kaWZpY2F0aW9uIG9mIHRoZSBNb2RpZmllZCBWZXJzaW9uIHRvIHdob2V2ZXIgcG9zc2Vzc2VzIGEgY29weQorb2YgaXQuICBJbiBhZGRpdGlvbiwgeW91IG11c3QgZG8gdGhlc2UgdGhpbmdzIGluIHRoZSBNb2RpZmllZCBWZXJzaW9uOgorCitAZW51bWVyYXRlIEEKK0BpdGVtCitVc2UgaW4gdGhlIFRpdGxlIFBhZ2UgKGFuZCBvbiB0aGUgY292ZXJzLCBpZiBhbnkpIGEgdGl0bGUgZGlzdGluY3QKK2Zyb20gdGhhdCBvZiB0aGUgRG9jdW1lbnQsIGFuZCBmcm9tIHRob3NlIG9mIHByZXZpb3VzIHZlcnNpb25zCisod2hpY2ggc2hvdWxkLCBpZiB0aGVyZSB3ZXJlIGFueSwgYmUgbGlzdGVkIGluIHRoZSBIaXN0b3J5IHNlY3Rpb24KK29mIHRoZSBEb2N1bWVudCkuICBZb3UgbWF5IHVzZSB0aGUgc2FtZSB0aXRsZSBhcyBhIHByZXZpb3VzIHZlcnNpb24KK2lmIHRoZSBvcmlnaW5hbCBwdWJsaXNoZXIgb2YgdGhhdCB2ZXJzaW9uIGdpdmVzIHBlcm1pc3Npb24uCisKK0BpdGVtCitMaXN0IG9uIHRoZSBUaXRsZSBQYWdlLCBhcyBhdXRob3JzLCBvbmUgb3IgbW9yZSBwZXJzb25zIG9yIGVudGl0aWVzCityZXNwb25zaWJsZSBmb3IgYXV0aG9yc2hpcCBvZiB0aGUgbW9kaWZpY2F0aW9ucyBpbiB0aGUgTW9kaWZpZWQKK1ZlcnNpb24sIHRvZ2V0aGVyIHdpdGggYXQgbGVhc3QgZml2ZSBvZiB0aGUgcHJpbmNpcGFsIGF1dGhvcnMgb2YgdGhlCitEb2N1bWVudCAoYWxsIG9mIGl0cyBwcmluY2lwYWwgYXV0aG9ycywgaWYgaXQgaGFzIGZld2VyIHRoYW4gZml2ZSksCit1bmxlc3MgdGhleSByZWxlYXNlIHlvdSBmcm9tIHRoaXMgcmVxdWlyZW1lbnQuCisKK0BpdGVtCitTdGF0ZSBvbiB0aGUgVGl0bGUgcGFnZSB0aGUgbmFtZSBvZiB0aGUgcHVibGlzaGVyIG9mIHRoZQorTW9kaWZpZWQgVmVyc2lvbiwgYXMgdGhlIHB1Ymxpc2hlci4KKworQGl0ZW0KK1ByZXNlcnZlIGFsbCB0aGUgY29weXJpZ2h0IG5vdGljZXMgb2YgdGhlIERvY3VtZW50LgorCitAaXRlbQorQWRkIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UgZm9yIHlvdXIgbW9kaWZpY2F0aW9ucworYWRqYWNlbnQgdG8gdGhlIG90aGVyIGNvcHlyaWdodCBub3RpY2VzLgorCitAaXRlbQorSW5jbHVkZSwgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGNvcHlyaWdodCBub3RpY2VzLCBhIGxpY2Vuc2Ugbm90aWNlCitnaXZpbmcgdGhlIHB1YmxpYyBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgTW9kaWZpZWQgVmVyc2lvbiB1bmRlciB0aGUKK3Rlcm1zIG9mIHRoaXMgTGljZW5zZSwgaW4gdGhlIGZvcm0gc2hvd24gaW4gdGhlIEFkZGVuZHVtIGJlbG93LgorCitAaXRlbQorUHJlc2VydmUgaW4gdGhhdCBsaWNlbnNlIG5vdGljZSB0aGUgZnVsbCBsaXN0cyBvZiBJbnZhcmlhbnQgU2VjdGlvbnMKK2FuZCByZXF1aXJlZCBDb3ZlciBUZXh0cyBnaXZlbiBpbiB0aGUgRG9jdW1lbnQncyBsaWNlbnNlIG5vdGljZS4KKworQGl0ZW0KK0luY2x1ZGUgYW4gdW5hbHRlcmVkIGNvcHkgb2YgdGhpcyBMaWNlbnNlLgorCitAaXRlbQorUHJlc2VydmUgdGhlIHNlY3Rpb24gRW50aXRsZWQgYGBIaXN0b3J5JycsIFByZXNlcnZlIGl0cyBUaXRsZSwgYW5kIGFkZAordG8gaXQgYW4gaXRlbSBzdGF0aW5nIGF0IGxlYXN0IHRoZSB0aXRsZSwgeWVhciwgbmV3IGF1dGhvcnMsIGFuZAorcHVibGlzaGVyIG9mIHRoZSBNb2RpZmllZCBWZXJzaW9uIGFzIGdpdmVuIG9uIHRoZSBUaXRsZSBQYWdlLiAgSWYKK3RoZXJlIGlzIG5vIHNlY3Rpb24gRW50aXRsZWQgYGBIaXN0b3J5JycgaW4gdGhlIERvY3VtZW50LCBjcmVhdGUgb25lCitzdGF0aW5nIHRoZSB0aXRsZSwgeWVhciwgYXV0aG9ycywgYW5kIHB1Ymxpc2hlciBvZiB0aGUgRG9jdW1lbnQgYXMKK2dpdmVuIG9uIGl0cyBUaXRsZSBQYWdlLCB0aGVuIGFkZCBhbiBpdGVtIGRlc2NyaWJpbmcgdGhlIE1vZGlmaWVkCitWZXJzaW9uIGFzIHN0YXRlZCBpbiB0aGUgcHJldmlvdXMgc2VudGVuY2UuCisKK0BpdGVtCitQcmVzZXJ2ZSB0aGUgbmV0d29yayBsb2NhdGlvbiwgaWYgYW55LCBnaXZlbiBpbiB0aGUgRG9jdW1lbnQgZm9yCitwdWJsaWMgYWNjZXNzIHRvIGEgVHJhbnNwYXJlbnQgY29weSBvZiB0aGUgRG9jdW1lbnQsIGFuZCBsaWtld2lzZQordGhlIG5ldHdvcmsgbG9jYXRpb25zIGdpdmVuIGluIHRoZSBEb2N1bWVudCBmb3IgcHJldmlvdXMgdmVyc2lvbnMKK2l0IHdhcyBiYXNlZCBvbi4gIFRoZXNlIG1heSBiZSBwbGFjZWQgaW4gdGhlIGBgSGlzdG9yeScnIHNlY3Rpb24uCitZb3UgbWF5IG9taXQgYSBuZXR3b3JrIGxvY2F0aW9uIGZvciBhIHdvcmsgdGhhdCB3YXMgcHVibGlzaGVkIGF0CitsZWFzdCBmb3VyIHllYXJzIGJlZm9yZSB0aGUgRG9jdW1lbnQgaXRzZWxmLCBvciBpZiB0aGUgb3JpZ2luYWwKK3B1Ymxpc2hlciBvZiB0aGUgdmVyc2lvbiBpdCByZWZlcnMgdG8gZ2l2ZXMgcGVybWlzc2lvbi4KKworQGl0ZW0KK0ZvciBhbnkgc2VjdGlvbiBFbnRpdGxlZCBgYEFja25vd2xlZGdlbWVudHMnJyBvciBgYERlZGljYXRpb25zJycsIFByZXNlcnZlCit0aGUgVGl0bGUgb2YgdGhlIHNlY3Rpb24sIGFuZCBwcmVzZXJ2ZSBpbiB0aGUgc2VjdGlvbiBhbGwgdGhlCitzdWJzdGFuY2UgYW5kIHRvbmUgb2YgZWFjaCBvZiB0aGUgY29udHJpYnV0b3IgYWNrbm93bGVkZ2VtZW50cyBhbmQvb3IKK2RlZGljYXRpb25zIGdpdmVuIHRoZXJlaW4uCisKK0BpdGVtCitQcmVzZXJ2ZSBhbGwgdGhlIEludmFyaWFudCBTZWN0aW9ucyBvZiB0aGUgRG9jdW1lbnQsCit1bmFsdGVyZWQgaW4gdGhlaXIgdGV4dCBhbmQgaW4gdGhlaXIgdGl0bGVzLiAgU2VjdGlvbiBudW1iZXJzCitvciB0aGUgZXF1aXZhbGVudCBhcmUgbm90IGNvbnNpZGVyZWQgcGFydCBvZiB0aGUgc2VjdGlvbiB0aXRsZXMuCisKK0BpdGVtCitEZWxldGUgYW55IHNlY3Rpb24gRW50aXRsZWQgYGBFbmRvcnNlbWVudHMnJy4gIFN1Y2ggYSBzZWN0aW9uCittYXkgbm90IGJlIGluY2x1ZGVkIGluIHRoZSBNb2RpZmllZCBWZXJzaW9uLgorCitAaXRlbQorRG8gbm90IHJldGl0bGUgYW55IGV4aXN0aW5nIHNlY3Rpb24gdG8gYmUgRW50aXRsZWQgYGBFbmRvcnNlbWVudHMnJyBvcgordG8gY29uZmxpY3QgaW4gdGl0bGUgd2l0aCBhbnkgSW52YXJpYW50IFNlY3Rpb24uCisKK0BpdGVtCitQcmVzZXJ2ZSBhbnkgV2FycmFudHkgRGlzY2xhaW1lcnMuCitAZW5kIGVudW1lcmF0ZQorCitJZiB0aGUgTW9kaWZpZWQgVmVyc2lvbiBpbmNsdWRlcyBuZXcgZnJvbnQtbWF0dGVyIHNlY3Rpb25zIG9yCithcHBlbmRpY2VzIHRoYXQgcXVhbGlmeSBhcyBTZWNvbmRhcnkgU2VjdGlvbnMgYW5kIGNvbnRhaW4gbm8gbWF0ZXJpYWwKK2NvcGllZCBmcm9tIHRoZSBEb2N1bWVudCwgeW91IG1heSBhdCB5b3VyIG9wdGlvbiBkZXNpZ25hdGUgc29tZSBvciBhbGwKK29mIHRoZXNlIHNlY3Rpb25zIGFzIGludmFyaWFudC4gIFRvIGRvIHRoaXMsIGFkZCB0aGVpciB0aXRsZXMgdG8gdGhlCitsaXN0IG9mIEludmFyaWFudCBTZWN0aW9ucyBpbiB0aGUgTW9kaWZpZWQgVmVyc2lvbidzIGxpY2Vuc2Ugbm90aWNlLgorVGhlc2UgdGl0bGVzIG11c3QgYmUgZGlzdGluY3QgZnJvbSBhbnkgb3RoZXIgc2VjdGlvbiB0aXRsZXMuCisKK1lvdSBtYXkgYWRkIGEgc2VjdGlvbiBFbnRpdGxlZCBgYEVuZG9yc2VtZW50cycnLCBwcm92aWRlZCBpdCBjb250YWlucworbm90aGluZyBidXQgZW5kb3JzZW1lbnRzIG9mIHlvdXIgTW9kaWZpZWQgVmVyc2lvbiBieSB2YXJpb3VzCitwYXJ0aWVzLS0tZm9yIGV4YW1wbGUsIHN0YXRlbWVudHMgb2YgcGVlciByZXZpZXcgb3IgdGhhdCB0aGUgdGV4dCBoYXMKK2JlZW4gYXBwcm92ZWQgYnkgYW4gb3JnYW5pemF0aW9uIGFzIHRoZSBhdXRob3JpdGF0aXZlIGRlZmluaXRpb24gb2YgYQorc3RhbmRhcmQuCisKK1lvdSBtYXkgYWRkIGEgcGFzc2FnZSBvZiB1cCB0byBmaXZlIHdvcmRzIGFzIGEgRnJvbnQtQ292ZXIgVGV4dCwgYW5kIGEKK3Bhc3NhZ2Ugb2YgdXAgdG8gMjUgd29yZHMgYXMgYSBCYWNrLUNvdmVyIFRleHQsIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QKK29mIENvdmVyIFRleHRzIGluIHRoZSBNb2RpZmllZCBWZXJzaW9uLiAgT25seSBvbmUgcGFzc2FnZSBvZgorRnJvbnQtQ292ZXIgVGV4dCBhbmQgb25lIG9mIEJhY2stQ292ZXIgVGV4dCBtYXkgYmUgYWRkZWQgYnkgKG9yCit0aHJvdWdoIGFycmFuZ2VtZW50cyBtYWRlIGJ5KSBhbnkgb25lIGVudGl0eS4gIElmIHRoZSBEb2N1bWVudCBhbHJlYWR5CitpbmNsdWRlcyBhIGNvdmVyIHRleHQgZm9yIHRoZSBzYW1lIGNvdmVyLCBwcmV2aW91c2x5IGFkZGVkIGJ5IHlvdSBvcgorYnkgYXJyYW5nZW1lbnQgbWFkZSBieSB0aGUgc2FtZSBlbnRpdHkgeW91IGFyZSBhY3Rpbmcgb24gYmVoYWxmIG9mLAoreW91IG1heSBub3QgYWRkIGFub3RoZXI7IGJ1dCB5b3UgbWF5IHJlcGxhY2UgdGhlIG9sZCBvbmUsIG9uIGV4cGxpY2l0CitwZXJtaXNzaW9uIGZyb20gdGhlIHByZXZpb3VzIHB1Ymxpc2hlciB0aGF0IGFkZGVkIHRoZSBvbGQgb25lLgorCitUaGUgYXV0aG9yKHMpIGFuZCBwdWJsaXNoZXIocykgb2YgdGhlIERvY3VtZW50IGRvIG5vdCBieSB0aGlzIExpY2Vuc2UKK2dpdmUgcGVybWlzc2lvbiB0byB1c2UgdGhlaXIgbmFtZXMgZm9yIHB1YmxpY2l0eSBmb3Igb3IgdG8gYXNzZXJ0IG9yCitpbXBseSBlbmRvcnNlbWVudCBvZiBhbnkgTW9kaWZpZWQgVmVyc2lvbi4KKworQGl0ZW0KK0NPTUJJTklORyBET0NVTUVOVFMKKworWW91IG1heSBjb21iaW5lIHRoZSBEb2N1bWVudCB3aXRoIG90aGVyIGRvY3VtZW50cyByZWxlYXNlZCB1bmRlciB0aGlzCitMaWNlbnNlLCB1bmRlciB0aGUgdGVybXMgZGVmaW5lZCBpbiBzZWN0aW9uIDQgYWJvdmUgZm9yIG1vZGlmaWVkCit2ZXJzaW9ucywgcHJvdmlkZWQgdGhhdCB5b3UgaW5jbHVkZSBpbiB0aGUgY29tYmluYXRpb24gYWxsIG9mIHRoZQorSW52YXJpYW50IFNlY3Rpb25zIG9mIGFsbCBvZiB0aGUgb3JpZ2luYWwgZG9jdW1lbnRzLCB1bm1vZGlmaWVkLCBhbmQKK2xpc3QgdGhlbSBhbGwgYXMgSW52YXJpYW50IFNlY3Rpb25zIG9mIHlvdXIgY29tYmluZWQgd29yayBpbiBpdHMKK2xpY2Vuc2Ugbm90aWNlLCBhbmQgdGhhdCB5b3UgcHJlc2VydmUgYWxsIHRoZWlyIFdhcnJhbnR5IERpc2NsYWltZXJzLgorCitUaGUgY29tYmluZWQgd29yayBuZWVkIG9ubHkgY29udGFpbiBvbmUgY29weSBvZiB0aGlzIExpY2Vuc2UsIGFuZAorbXVsdGlwbGUgaWRlbnRpY2FsIEludmFyaWFudCBTZWN0aW9ucyBtYXkgYmUgcmVwbGFjZWQgd2l0aCBhIHNpbmdsZQorY29weS4gIElmIHRoZXJlIGFyZSBtdWx0aXBsZSBJbnZhcmlhbnQgU2VjdGlvbnMgd2l0aCB0aGUgc2FtZSBuYW1lIGJ1dAorZGlmZmVyZW50IGNvbnRlbnRzLCBtYWtlIHRoZSB0aXRsZSBvZiBlYWNoIHN1Y2ggc2VjdGlvbiB1bmlxdWUgYnkKK2FkZGluZyBhdCB0aGUgZW5kIG9mIGl0LCBpbiBwYXJlbnRoZXNlcywgdGhlIG5hbWUgb2YgdGhlIG9yaWdpbmFsCithdXRob3Igb3IgcHVibGlzaGVyIG9mIHRoYXQgc2VjdGlvbiBpZiBrbm93biwgb3IgZWxzZSBhIHVuaXF1ZSBudW1iZXIuCitNYWtlIHRoZSBzYW1lIGFkanVzdG1lbnQgdG8gdGhlIHNlY3Rpb24gdGl0bGVzIGluIHRoZSBsaXN0IG9mCitJbnZhcmlhbnQgU2VjdGlvbnMgaW4gdGhlIGxpY2Vuc2Ugbm90aWNlIG9mIHRoZSBjb21iaW5lZCB3b3JrLgorCitJbiB0aGUgY29tYmluYXRpb24sIHlvdSBtdXN0IGNvbWJpbmUgYW55IHNlY3Rpb25zIEVudGl0bGVkIGBgSGlzdG9yeScnCitpbiB0aGUgdmFyaW91cyBvcmlnaW5hbCBkb2N1bWVudHMsIGZvcm1pbmcgb25lIHNlY3Rpb24gRW50aXRsZWQKK2BgSGlzdG9yeScnOyBsaWtld2lzZSBjb21iaW5lIGFueSBzZWN0aW9ucyBFbnRpdGxlZCBgYEFja25vd2xlZGdlbWVudHMnJywKK2FuZCBhbnkgc2VjdGlvbnMgRW50aXRsZWQgYGBEZWRpY2F0aW9ucycnLiAgWW91IG11c3QgZGVsZXRlIGFsbAorc2VjdGlvbnMgRW50aXRsZWQgYGBFbmRvcnNlbWVudHMuJycKKworQGl0ZW0KK0NPTExFQ1RJT05TIE9GIERPQ1VNRU5UUworCitZb3UgbWF5IG1ha2UgYSBjb2xsZWN0aW9uIGNvbnNpc3Rpbmcgb2YgdGhlIERvY3VtZW50IGFuZCBvdGhlciBkb2N1bWVudHMKK3JlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIHJlcGxhY2UgdGhlIGluZGl2aWR1YWwgY29waWVzIG9mIHRoaXMKK0xpY2Vuc2UgaW4gdGhlIHZhcmlvdXMgZG9jdW1lbnRzIHdpdGggYSBzaW5nbGUgY29weSB0aGF0IGlzIGluY2x1ZGVkIGluCit0aGUgY29sbGVjdGlvbiwgcHJvdmlkZWQgdGhhdCB5b3UgZm9sbG93IHRoZSBydWxlcyBvZiB0aGlzIExpY2Vuc2UgZm9yCit2ZXJiYXRpbSBjb3B5aW5nIG9mIGVhY2ggb2YgdGhlIGRvY3VtZW50cyBpbiBhbGwgb3RoZXIgcmVzcGVjdHMuCisKK1lvdSBtYXkgZXh0cmFjdCBhIHNpbmdsZSBkb2N1bWVudCBmcm9tIHN1Y2ggYSBjb2xsZWN0aW9uLCBhbmQgZGlzdHJpYnV0ZQoraXQgaW5kaXZpZHVhbGx5IHVuZGVyIHRoaXMgTGljZW5zZSwgcHJvdmlkZWQgeW91IGluc2VydCBhIGNvcHkgb2YgdGhpcworTGljZW5zZSBpbnRvIHRoZSBleHRyYWN0ZWQgZG9jdW1lbnQsIGFuZCBmb2xsb3cgdGhpcyBMaWNlbnNlIGluIGFsbAorb3RoZXIgcmVzcGVjdHMgcmVnYXJkaW5nIHZlcmJhdGltIGNvcHlpbmcgb2YgdGhhdCBkb2N1bWVudC4KKworQGl0ZW0KK0FHR1JFR0FUSU9OIFdJVEggSU5ERVBFTkRFTlQgV09SS1MKKworQSBjb21waWxhdGlvbiBvZiB0aGUgRG9jdW1lbnQgb3IgaXRzIGRlcml2YXRpdmVzIHdpdGggb3RoZXIgc2VwYXJhdGUKK2FuZCBpbmRlcGVuZGVudCBkb2N1bWVudHMgb3Igd29ya3MsIGluIG9yIG9uIGEgdm9sdW1lIG9mIGEgc3RvcmFnZSBvcgorZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2FsbGVkIGFuIGBgYWdncmVnYXRlJycgaWYgdGhlIGNvcHlyaWdodAorcmVzdWx0aW5nIGZyb20gdGhlIGNvbXBpbGF0aW9uIGlzIG5vdCB1c2VkIHRvIGxpbWl0IHRoZSBsZWdhbCByaWdodHMKK29mIHRoZSBjb21waWxhdGlvbidzIHVzZXJzIGJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtzIHBlcm1pdC4KK1doZW4gdGhlIERvY3VtZW50IGlzIGluY2x1ZGVkIGFuIGFnZ3JlZ2F0ZSwgdGhpcyBMaWNlbnNlIGRvZXMgbm90CithcHBseSB0byB0aGUgb3RoZXIgd29ya3MgaW4gdGhlIGFnZ3JlZ2F0ZSB3aGljaCBhcmUgbm90IHRoZW1zZWx2ZXMKK2Rlcml2YXRpdmUgd29ya3Mgb2YgdGhlIERvY3VtZW50LgorCitJZiB0aGUgQ292ZXIgVGV4dCByZXF1aXJlbWVudCBvZiBzZWN0aW9uIDMgaXMgYXBwbGljYWJsZSB0byB0aGVzZQorY29waWVzIG9mIHRoZSBEb2N1bWVudCwgdGhlbiBpZiB0aGUgRG9jdW1lbnQgaXMgbGVzcyB0aGFuIG9uZSBoYWxmIG9mCit0aGUgZW50aXJlIGFnZ3JlZ2F0ZSwgdGhlIERvY3VtZW50J3MgQ292ZXIgVGV4dHMgbWF5IGJlIHBsYWNlZCBvbgorY292ZXJzIHRoYXQgYnJhY2tldCB0aGUgRG9jdW1lbnQgd2l0aGluIHRoZSBhZ2dyZWdhdGUsIG9yIHRoZQorZWxlY3Ryb25pYyBlcXVpdmFsZW50IG9mIGNvdmVycyBpZiB0aGUgRG9jdW1lbnQgaXMgaW4gZWxlY3Ryb25pYyBmb3JtLgorT3RoZXJ3aXNlIHRoZXkgbXVzdCBhcHBlYXIgb24gcHJpbnRlZCBjb3ZlcnMgdGhhdCBicmFja2V0IHRoZSB3aG9sZQorYWdncmVnYXRlLgorCitAaXRlbQorVFJBTlNMQVRJT04KKworVHJhbnNsYXRpb24gaXMgY29uc2lkZXJlZCBhIGtpbmQgb2YgbW9kaWZpY2F0aW9uLCBzbyB5b3UgbWF5CitkaXN0cmlidXRlIHRyYW5zbGF0aW9ucyBvZiB0aGUgRG9jdW1lbnQgdW5kZXIgdGhlIHRlcm1zIG9mIHNlY3Rpb24gNC4KK1JlcGxhY2luZyBJbnZhcmlhbnQgU2VjdGlvbnMgd2l0aCB0cmFuc2xhdGlvbnMgcmVxdWlyZXMgc3BlY2lhbAorcGVybWlzc2lvbiBmcm9tIHRoZWlyIGNvcHlyaWdodCBob2xkZXJzLCBidXQgeW91IG1heSBpbmNsdWRlCit0cmFuc2xhdGlvbnMgb2Ygc29tZSBvciBhbGwgSW52YXJpYW50IFNlY3Rpb25zIGluIGFkZGl0aW9uIHRvIHRoZQorb3JpZ2luYWwgdmVyc2lvbnMgb2YgdGhlc2UgSW52YXJpYW50IFNlY3Rpb25zLiAgWW91IG1heSBpbmNsdWRlIGEKK3RyYW5zbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgYW5kIGFsbCB0aGUgbGljZW5zZSBub3RpY2VzIGluIHRoZQorRG9jdW1lbnQsIGFuZCBhbnkgV2FycmFudHkgRGlzY2xhaW1lcnMsIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gaW5jbHVkZQordGhlIG9yaWdpbmFsIEVuZ2xpc2ggdmVyc2lvbiBvZiB0aGlzIExpY2Vuc2UgYW5kIHRoZSBvcmlnaW5hbCB2ZXJzaW9ucworb2YgdGhvc2Ugbm90aWNlcyBhbmQgZGlzY2xhaW1lcnMuICBJbiBjYXNlIG9mIGEgZGlzYWdyZWVtZW50IGJldHdlZW4KK3RoZSB0cmFuc2xhdGlvbiBhbmQgdGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhpcyBMaWNlbnNlIG9yIGEgbm90aWNlCitvciBkaXNjbGFpbWVyLCB0aGUgb3JpZ2luYWwgdmVyc2lvbiB3aWxsIHByZXZhaWwuCisKK0lmIGEgc2VjdGlvbiBpbiB0aGUgRG9jdW1lbnQgaXMgRW50aXRsZWQgYGBBY2tub3dsZWRnZW1lbnRzJycsCitgYERlZGljYXRpb25zJycsIG9yIGBgSGlzdG9yeScnLCB0aGUgcmVxdWlyZW1lbnQgKHNlY3Rpb24gNCkgdG8gUHJlc2VydmUKK2l0cyBUaXRsZSAoc2VjdGlvbiAxKSB3aWxsIHR5cGljYWxseSByZXF1aXJlIGNoYW5naW5nIHRoZSBhY3R1YWwKK3RpdGxlLgorCitAaXRlbQorVEVSTUlOQVRJT04KKworWW91IG1heSBub3QgY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlLCBvciBkaXN0cmlidXRlIHRoZSBEb2N1bWVudCBleGNlcHQKK2FzIGV4cHJlc3NseSBwcm92aWRlZCBmb3IgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IG90aGVyIGF0dGVtcHQgdG8KK2NvcHksIG1vZGlmeSwgc3VibGljZW5zZSBvciBkaXN0cmlidXRlIHRoZSBEb2N1bWVudCBpcyB2b2lkLCBhbmQgd2lsbAorYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIgdGhpcyBMaWNlbnNlLiAgSG93ZXZlciwKK3BhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzLCBvciByaWdodHMsIGZyb20geW91IHVuZGVyIHRoaXMKK0xpY2Vuc2Ugd2lsbCBub3QgaGF2ZSB0aGVpciBsaWNlbnNlcyB0ZXJtaW5hdGVkIHNvIGxvbmcgYXMgc3VjaAorcGFydGllcyByZW1haW4gaW4gZnVsbCBjb21wbGlhbmNlLgorCitAaXRlbQorRlVUVVJFIFJFVklTSU9OUyBPRiBUSElTIExJQ0VOU0UKKworVGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBtYXkgcHVibGlzaCBuZXcsIHJldmlzZWQgdmVyc2lvbnMKK29mIHRoZSBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldwordmVyc2lvbnMgd2lsbCBiZSBzaW1pbGFyIGluIHNwaXJpdCB0byB0aGUgcHJlc2VudCB2ZXJzaW9uLCBidXQgbWF5CitkaWZmZXIgaW4gZGV0YWlsIHRvIGFkZHJlc3MgbmV3IHByb2JsZW1zIG9yIGNvbmNlcm5zLiAgU2VlCitAdXJlZntodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvfS4KKworRWFjaCB2ZXJzaW9uIG9mIHRoZSBMaWNlbnNlIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuCitJZiB0aGUgRG9jdW1lbnQgc3BlY2lmaWVzIHRoYXQgYSBwYXJ0aWN1bGFyIG51bWJlcmVkIHZlcnNpb24gb2YgdGhpcworTGljZW5zZSBgYG9yIGFueSBsYXRlciB2ZXJzaW9uJycgYXBwbGllcyB0byBpdCwgeW91IGhhdmUgdGhlIG9wdGlvbiBvZgorZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBlaXRoZXIgb2YgdGhhdCBzcGVjaWZpZWQgdmVyc2lvbiBvcgorb2YgYW55IGxhdGVyIHZlcnNpb24gdGhhdCBoYXMgYmVlbiBwdWJsaXNoZWQgKG5vdCBhcyBhIGRyYWZ0KSBieSB0aGUKK0ZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4gIElmIHRoZSBEb2N1bWVudCBkb2VzIG5vdCBzcGVjaWZ5IGEgdmVyc2lvbgorbnVtYmVyIG9mIHRoaXMgTGljZW5zZSwgeW91IG1heSBjaG9vc2UgYW55IHZlcnNpb24gZXZlciBwdWJsaXNoZWQgKG5vdAorYXMgYSBkcmFmdCkgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KK0BlbmQgZW51bWVyYXRlCisKK0BwYWdlCitAYXBwZW5kaXhzdWJzZWMgQURERU5EVU06IEhvdyB0byB1c2UgdGhpcyBMaWNlbnNlIGZvciB5b3VyIGRvY3VtZW50cworCitUbyB1c2UgdGhpcyBMaWNlbnNlIGluIGEgZG9jdW1lbnQgeW91IGhhdmUgd3JpdHRlbiwgaW5jbHVkZSBhIGNvcHkgb2YKK3RoZSBMaWNlbnNlIGluIHRoZSBkb2N1bWVudCBhbmQgcHV0IHRoZSBmb2xsb3dpbmcgY29weXJpZ2h0IGFuZAorbGljZW5zZSBub3RpY2VzIGp1c3QgYWZ0ZXIgdGhlIHRpdGxlIHBhZ2U6CisKK0BzbWFsbGV4YW1wbGUKK0Bncm91cAorICBDb3B5cmlnaHQgKEMpICBAdmFye3llYXJ9ICBAdmFye3lvdXIgbmFtZX0uCisgIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBjb3B5LCBkaXN0cmlidXRlIGFuZC9vciBtb2RpZnkgdGhpcyBkb2N1bWVudAorICB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZSwgVmVyc2lvbiAxLjIKKyAgb3IgYW55IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247CisgIHdpdGggbm8gSW52YXJpYW50IFNlY3Rpb25zLCBubyBGcm9udC1Db3ZlciBUZXh0cywgYW5kIG5vIEJhY2stQ292ZXIgVGV4dHMuCisgIEEgY29weSBvZiB0aGUgbGljZW5zZSBpcyBpbmNsdWRlZCBpbiB0aGUgc2VjdGlvbiBlbnRpdGxlZCBgYEdOVQorICBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZScnLgorQGVuZCBncm91cAorQGVuZCBzbWFsbGV4YW1wbGUKKworSWYgeW91IGhhdmUgSW52YXJpYW50IFNlY3Rpb25zLCBGcm9udC1Db3ZlciBUZXh0cyBhbmQgQmFjay1Db3ZlciBUZXh0cywKK3JlcGxhY2UgdGhlIGBgd2l0aC4uLlRleHRzLicnIGxpbmUgd2l0aCB0aGlzOgorCitAc21hbGxleGFtcGxlCitAZ3JvdXAKKyAgICB3aXRoIHRoZSBJbnZhcmlhbnQgU2VjdGlvbnMgYmVpbmcgQHZhcntsaXN0IHRoZWlyIHRpdGxlc30sIHdpdGgKKyAgICB0aGUgRnJvbnQtQ292ZXIgVGV4dHMgYmVpbmcgQHZhcntsaXN0fSwgYW5kIHdpdGggdGhlIEJhY2stQ292ZXIgVGV4dHMKKyAgICBiZWluZyBAdmFye2xpc3R9LgorQGVuZCBncm91cAorQGVuZCBzbWFsbGV4YW1wbGUKKworSWYgeW91IGhhdmUgSW52YXJpYW50IFNlY3Rpb25zIHdpdGhvdXQgQ292ZXIgVGV4dHMsIG9yIHNvbWUgb3RoZXIKK2NvbWJpbmF0aW9uIG9mIHRoZSB0aHJlZSwgbWVyZ2UgdGhvc2UgdHdvIGFsdGVybmF0aXZlcyB0byBzdWl0IHRoZQorc2l0dWF0aW9uLgorCitJZiB5b3VyIGRvY3VtZW50IGNvbnRhaW5zIG5vbnRyaXZpYWwgZXhhbXBsZXMgb2YgcHJvZ3JhbSBjb2RlLCB3ZQorcmVjb21tZW5kIHJlbGVhc2luZyB0aGVzZSBleGFtcGxlcyBpbiBwYXJhbGxlbCB1bmRlciB5b3VyIGNob2ljZSBvZgorZnJlZSBzb2Z0d2FyZSBsaWNlbnNlLCBzdWNoIGFzIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKK3RvIHBlcm1pdCB0aGVpciB1c2UgaW4gZnJlZSBzb2Z0d2FyZS4KKworQGMgTG9jYWwgVmFyaWFibGVzOgorQGMgaXNwZWxsLWxvY2FsLXBkaWN0OiAiaXNwZWxsLWRpY3QiCitAYyBFbmQ6CisKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2RvYy9oaXN0b3J5LjAgYi9yZWFkbGluZS9kb2MvaGlzdG9yeS4wCmluZGV4IDMyNGMzNjMuLjMzNjIyOTQgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL2RvYy9oaXN0b3J5LjAKKysrIGIvcmVhZGxpbmUvZG9jL2hpc3RvcnkuMApAQCAtMSwyMTkgKzEsMTYwIEBACitISVNUT1JZKDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhJU1RPUlkoMykKIAogCiAKLUhJU1RPUlkoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBISVNUT1JZKDMpCi0KLQogTghOQQhBTQhNRQhFCiAgICAgICAgaGlzdG9yeSAtIEdOVSBIaXN0b3J5IExpYnJhcnkKIAogQwhDTwhPUAhQWQhZUghSSQhJRwhHSAhIVAhUCi0gICAgICAgVGhlICBHTlUgSGlzdG9yeSBMaWJyYXJ5IGlzIENvcHlyaWdodCAoQykgMTk4OS0yMDAyIGJ5IHRoZQotICAgICAgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgICAgIFRoZSBHTlUgSGlzdG9yeSBMaWJyYXJ5IGlzIENvcHlyaWdodCAoQykgMTk4OS0yMDAyIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCisgICAgICAgRm91bmRhdGlvbiwgSW5jLgogCiBECERFCEVTCFNDCENSCFJJCElQCFBUCFRJCElPCE9OCE4KLSAgICAgICBNYW55IHByb2dyYW1zIHJlYWQgaW5wdXQgZnJvbSB0aGUgdXNlciBhIGxpbmUgYXQgIGEgIHRpbWUuCi0gICAgICAgVGhlICBHTlUgIEhpc3RvcnkgIGxpYnJhcnkgIGlzIGFibGUgdG8ga2VlcCB0cmFjayBvZiB0aG9zZQotICAgICAgIGxpbmVzLCBhc3NvY2lhdGUgYXJiaXRyYXJ5IGRhdGEgd2l0aCBlYWNoIGxpbmUsICBhbmQgIHV0aS0KLSAgICAgICBsaXplICBpbmZvcm1hdGlvbiAgZnJvbSAgcHJldmlvdXMgIGxpbmVzICBpbiBjb21wb3NpbmcgbmV3Ci0gICAgICAgb25lcy4KKyAgICAgICBNYW55IHByb2dyYW1zIHJlYWQgaW5wdXQgZnJvbSB0aGUgdXNlciBhIGxpbmUgYXQgYSB0aW1lLiAgVGhlIEdOVSAgSGlzLQorICAgICAgIHRvcnkgIGxpYnJhcnkgaXMgYWJsZSB0byBrZWVwIHRyYWNrIG9mIHRob3NlIGxpbmVzLCBhc3NvY2lhdGUgYXJiaXRyYXJ5CisgICAgICAgZGF0YSB3aXRoIGVhY2ggbGluZSwgYW5kIHV0aWxpemUgaW5mb3JtYXRpb24gIGZyb20gIHByZXZpb3VzICBsaW5lcyAgaW4KKyAgICAgICBjb21wb3NpbmcgbmV3IG9uZXMuCiAKIAogSAhISQhJUwhTVAhUTwhPUghSWQhZIEUIRVgIWFAIUEEIQU4ITlMIU0kISU8IT04ITgotICAgICAgIFRoZSBoaXN0b3J5IGxpYnJhcnkgc3VwcG9ydHMgYSBoaXN0b3J5ICBleHBhbnNpb24gIGZlYXR1cmUKLSAgICAgICB0aGF0ICBpcyBpZGVudGljYWwgdG8gdGhlIGhpc3RvcnkgZXhwYW5zaW9uIGluIGIIYmEIYXMIc2gIaC4ILiAgVGhpcwotICAgICAgIHNlY3Rpb24gZGVzY3JpYmVzIHdoYXQgc3ludGF4IGZlYXR1cmVzIGFyZSBhdmFpbGFibGUuCisgICAgICAgVGhlICBoaXN0b3J5IGxpYnJhcnkgc3VwcG9ydHMgYSBoaXN0b3J5IGV4cGFuc2lvbiBmZWF0dXJlIHRoYXQgaXMgaWRlbi0KKyAgICAgICB0aWNhbCB0byB0aGUgaGlzdG9yeSBleHBhbnNpb24gaW4gYghiYQhhcwhzaAhoLgguICBUaGlzICBzZWN0aW9uICBkZXNjcmliZXMgIHdoYXQKKyAgICAgICBzeW50YXggZmVhdHVyZXMgYXJlIGF2YWlsYWJsZS4KIAotICAgICAgIEhpc3RvcnkgZXhwYW5zaW9ucyBpbnRyb2R1Y2Ugd29yZHMgZnJvbSB0aGUgIGhpc3RvcnkgIGxpc3QKLSAgICAgICBpbnRvICB0aGUgaW5wdXQgc3RyZWFtLCBtYWtpbmcgaXQgZWFzeSB0byByZXBlYXQgY29tbWFuZHMsCi0gICAgICAgaW5zZXJ0IHRoZSBhcmd1bWVudHMgdG8gYSBwcmV2aW91cyBjb21tYW5kIGludG8gIHRoZSAgY3VyLQotICAgICAgIHJlbnQgIGlucHV0ICBsaW5lLCAgb3IgIGZpeCAgZXJyb3JzICBpbiAgcHJldmlvdXMgY29tbWFuZHMKLSAgICAgICBxdWlja2x5LgorICAgICAgIEhpc3RvcnkgZXhwYW5zaW9ucyBpbnRyb2R1Y2Ugd29yZHMgZnJvbSB0aGUgaGlzdG9yeSBsaXN0IGludG8gdGhlIGlucHV0CisgICAgICAgc3RyZWFtLCBtYWtpbmcgaXQgZWFzeSB0byByZXBlYXQgY29tbWFuZHMsIGluc2VydCB0aGUgIGFyZ3VtZW50cyAgdG8gIGEKKyAgICAgICBwcmV2aW91cyBjb21tYW5kIGludG8gdGhlIGN1cnJlbnQgaW5wdXQgbGluZSwgb3IgZml4IGVycm9ycyBpbiBwcmV2aW91cworICAgICAgIGNvbW1hbmRzIHF1aWNrbHkuCiAKLSAgICAgICBIaXN0b3J5IGV4cGFuc2lvbiBpcyB1c3VhbGx5IHBlcmZvcm1lZCBpbW1lZGlhdGVseSBhZnRlciBhCi0gICAgICAgY29tcGxldGUgIGxpbmUgaXMgcmVhZC4gIEl0IHRha2VzIHBsYWNlIGluIHR3byBwYXJ0cy4gIFRoZQotICAgICAgIGZpcnN0IGlzIHRvIGRldGVybWluZSB3aGljaCBsaW5lIGZyb20gdGhlIGhpc3RvcnkgbGlzdCAgdG8KLSAgICAgICB1c2UgZHVyaW5nIHN1YnN0aXR1dGlvbi4gIFRoZSBzZWNvbmQgaXMgdG8gc2VsZWN0IHBvcnRpb25zCi0gICAgICAgb2YgdGhhdCBsaW5lIGZvciBpbmNsdXNpb24gaW50byB0aGUgY3VycmVudCBvbmUuICBUaGUgbGluZQotICAgICAgIHNlbGVjdGVkICBmcm9tICB0aGUgaGlzdG9yeSBpcyB0aGUgXwhlXwh2XwhlXwhuXwh0LCBhbmQgdGhlIHBvcnRpb25zCi0gICAgICAgb2YgdGhhdCBsaW5lIHRoYXQgYXJlIGFjdGVkIHVwb24gYXJlIF8Id18Ib18Icl8IZF8Icy4gIFZhcmlvdXMgXwhtXwhvXwhkXwhpXwgtCi0gICAgICAgXwhmXwhpXwhlXwhyXwhzIGFyZSBhdmFpbGFibGUgdG8gbWFuaXB1bGF0ZSB0aGUgc2VsZWN0ZWQgd29yZHMuICBUaGUKLSAgICAgICBsaW5lIGlzIGJyb2tlbiBpbnRvIHdvcmRzIGluIHRoZSBzYW1lIGZhc2hpb24gYXMgYghiYQhhcwhzaAhoIGRvZXMKLSAgICAgICB3aGVuICByZWFkaW5nIGlucHV0LCBzbyB0aGF0IHNldmVyYWwgd29yZHMgdGhhdCB3b3VsZCBvdGgtCi0gICAgICAgZXJ3aXNlIGJlIHNlcGFyYXRlZCBhcmUgIGNvbnNpZGVyZWQgIG9uZSAgd29yZCAgd2hlbiAgc3VyLQotICAgICAgIHJvdW5kZWQgIGJ5ICBxdW90ZXMgIChzZWUgIHRoZSBkZXNjcmlwdGlvbiBvZiBoCGhpCGlzCHN0CHRvCG9yCHJ5CHlfCF90CHRvCG9rCGstCC0KLSAgICAgICBlCGVuCG5pCGl6CHplCGUoCCgpCCkgYmVsb3cpLiAgSGlzdG9yeSBleHBhbnNpb25zIGFyZSBpbnRyb2R1Y2VkIGJ5ICB0aGUKLSAgICAgICBhcHBlYXJhbmNlICBvZiB0aGUgaGlzdG9yeSBleHBhbnNpb24gY2hhcmFjdGVyLCB3aGljaCBpcyAhCCEKLSAgICAgICBieSBkZWZhdWx0LiAgT25seSBiYWNrc2xhc2ggIChcCFwpICBhbmQgIHNpbmdsZSAgcXVvdGVzICBjYW4KLSAgICAgICBxdW90ZSB0aGUgaGlzdG9yeSBleHBhbnNpb24gY2hhcmFjdGVyLgorICAgICAgIEhpc3RvcnkgZXhwYW5zaW9uIGlzIHVzdWFsbHkgcGVyZm9ybWVkICBpbW1lZGlhdGVseSAgYWZ0ZXIgIGEgIGNvbXBsZXRlCisgICAgICAgbGluZSAgaXMgcmVhZC4gIEl0IHRha2VzIHBsYWNlIGluIHR3byBwYXJ0cy4gIFRoZSBmaXJzdCBpcyB0byBkZXRlcm1pbmUKKyAgICAgICB3aGljaCBsaW5lIGZyb20gdGhlIGhpc3RvcnkgbGlzdCB0byB1c2UgZHVyaW5nIHN1YnN0aXR1dGlvbi4gIFRoZSAgc2VjLQorICAgICAgIG9uZCAgaXMgIHRvIHNlbGVjdCBwb3J0aW9ucyBvZiB0aGF0IGxpbmUgZm9yIGluY2x1c2lvbiBpbnRvIHRoZSBjdXJyZW50CisgICAgICAgb25lLiAgVGhlIGxpbmUgc2VsZWN0ZWQgZnJvbSB0aGUgaGlzdG9yeSBpcyB0aGUgXwhlXwh2XwhlXwhuXwh0LCBhbmQgdGhlIHBvcnRpb25zCisgICAgICAgb2YgIHRoYXQgIGxpbmUgIHRoYXQgIGFyZSAgYWN0ZWQgdXBvbiBhcmUgXwh3XwhvXwhyXwhkXwhzLiAgVmFyaW91cyBfCG1fCG9fCGRfCGlfCGZfCGlfCGVfCHJfCHMgYXJlCisgICAgICAgYXZhaWxhYmxlIHRvIG1hbmlwdWxhdGUgdGhlIHNlbGVjdGVkIHdvcmRzLiAgVGhlIGxpbmUgIGlzICBicm9rZW4gIGludG8KKyAgICAgICB3b3JkcyBpbiB0aGUgc2FtZSBmYXNoaW9uIGFzIGIIYmEIYXMIc2gIaCBkb2VzIHdoZW4gcmVhZGluZyBpbnB1dCwgc28gdGhhdCBzZXYtCisgICAgICAgZXJhbCB3b3JkcyB0aGF0IHdvdWxkIG90aGVyd2lzZSBiZSBzZXBhcmF0ZWQgYXJlICBjb25zaWRlcmVkICBvbmUgIHdvcmQKKyAgICAgICB3aGVuICBzdXJyb3VuZGVkICBieSAgcXVvdGVzIChzZWUgdGhlIGRlc2NyaXB0aW9uIG9mIGgIaGkIaXMIc3QIdG8Ib3IIcnkIeV8IX3QIdG8Ib2sIa2UIZW4IbmkIaXoIemUIZSgIKCkIKQorICAgICAgIGJlbG93KS4gIEhpc3RvcnkgZXhwYW5zaW9ucyBhcmUgaW50cm9kdWNlZCBieSAgdGhlICBhcHBlYXJhbmNlICBvZiAgdGhlCisgICAgICAgaGlzdG9yeSBleHBhbnNpb24gY2hhcmFjdGVyLCB3aGljaCBpcyAhCCEgYnkgZGVmYXVsdC4gIE9ubHkgYmFja3NsYXNoIChcCFwpCisgICAgICAgYW5kIHNpbmdsZSBxdW90ZXMgY2FuIHF1b3RlIHRoZSBoaXN0b3J5IGV4cGFuc2lvbiBjaGFyYWN0ZXIuCiAKICAgIEUIRXYIdmUIZW4IbnQIdCBECERlCGVzCHNpCGlnCGduCG5hCGF0CHRvCG9yCHJzCHMKLSAgICAgICBBbiBldmVudCBkZXNpZ25hdG9yIGlzIGEgcmVmZXJlbmNlIHRvIGEgY29tbWFuZCBsaW5lIGVudHJ5Ci0gICAgICAgaW4gdGhlIGhpc3RvcnkgbGlzdC4KKyAgICAgICBBbiBldmVudCBkZXNpZ25hdG9yIGlzIGEgcmVmZXJlbmNlIHRvIGEgY29tbWFuZCBsaW5lIGVudHJ5IGluIHRoZSAgaGlzLQorICAgICAgIHRvcnkgbGlzdC4KIAotICAgICAgICEIISAgICAgIFN0YXJ0IGEgaGlzdG9yeSBzdWJzdGl0dXRpb24sIGV4Y2VwdCB3aGVuICBmb2xsb3dlZAotICAgICAgICAgICAgICBieSBhIGIIYmwIbGEIYW4IbmsIaywgbmV3bGluZSwgPSBvciAoLgorICAgICAgICEIISAgICAgIFN0YXJ0ICBhICBoaXN0b3J5IHN1YnN0aXR1dGlvbiwgZXhjZXB0IHdoZW4gZm9sbG93ZWQgYnkgYSBiCGJsCGxhCGFuCG5rCGssCisgICAgICAgICAgICAgIG5ld2xpbmUsID0gb3IgKC4KICAgICAgICAhCCFfCG4gICAgIFJlZmVyIHRvIGNvbW1hbmQgbGluZSBfCG4uCiAgICAgICAgIQghLQgtXwhuICAgIFJlZmVyIHRvIHRoZSBjdXJyZW50IGNvbW1hbmQgbGluZSBtaW51cyBfCG4uCi0gICAgICAgIQghIQghICAgICBSZWZlciAgdG8gIHRoZSBwcmV2aW91cyBjb21tYW5kLiAgVGhpcyBpcyBhIHN5bm9ueW0KLSAgICAgICAgICAgICAgZm9yIGAhLTEnLgotCi0KLQotCi1HTlUgSGlzdG9yeSA0LjMgICAgICAgICAgMjAwMiBKYW51YXJ5IDMxICAgICAgICAgICAgICAgICAgICAgICAgMQotCi0KLQotCi0KLUhJU1RPUlkoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBISVNUT1JZKDMpCi0KLQorICAgICAgICEIISEIISAgICAgUmVmZXIgdG8gdGhlIHByZXZpb3VzIGNvbW1hbmQuICBUaGlzIGlzIGEgc3lub255bSBmb3IgYCEtMScuCiAgICAgICAgIQghXwhzXwh0XwhyXwhpXwhuXwhnCi0gICAgICAgICAgICAgIFJlZmVyIHRvIHRoZSAgbW9zdCAgcmVjZW50ICBjb21tYW5kICBzdGFydGluZyAgd2l0aAotICAgICAgICAgICAgICBfCHNfCHRfCHJfCGlfCG5fCGcuCisgICAgICAgICAgICAgIFJlZmVyIHRvIHRoZSBtb3N0IHJlY2VudCBjb21tYW5kIHN0YXJ0aW5nIHdpdGggXwhzXwh0XwhyXwhpXwhuXwhnLgogICAgICAgICEIIT8IP18Ic18IdF8Icl8IaV8Ibl8IZ1sIWz8IP10IXQotICAgICAgICAgICAgICBSZWZlciB0byB0aGUgbW9zdCByZWNlbnQgY29tbWFuZCBjb250YWluaW5nIF8Ic18IdF8Icl8IaV8Ibl8IZy4KLSAgICAgICAgICAgICAgVGhlIHRyYWlsaW5nID8IPyBtYXkgYmUgb21pdHRlZCBpZiBfCHNfCHRfCHJfCGlfCG5fCGcgaXMgZm9sbG93ZWQKLSAgICAgICAgICAgICAgaW1tZWRpYXRlbHkgYnkgYSBuZXdsaW5lLgorICAgICAgICAgICAgICBSZWZlciB0byB0aGUgbW9zdCByZWNlbnQgY29tbWFuZCBjb250YWluaW5nIF8Ic18IdF8Icl8IaV8Ibl8IZy4gIFRoZSAgdHJhaWwtCisgICAgICAgICAgICAgIGluZyA/CD8gbWF5IGJlIG9taXR0ZWQgaWYgXwhzXwh0XwhyXwhpXwhuXwhnIGlzIGZvbGxvd2VkIGltbWVkaWF0ZWx5IGJ5IGEgbmV3LQorICAgICAgICAgICAgICBsaW5lLgogICAgICAgIF4IXl8Ic18IdF8Icl8IaV8Ibl8IZ18IMV4IXl8Ic18IdF8Icl8IaV8Ibl8IZ18IMl4IXgotICAgICAgICAgICAgICBRdWljayAgIHN1YnN0aXR1dGlvbi4gICBSZXBlYXQgIHRoZSAgbGFzdCAgY29tbWFuZCwKLSAgICAgICAgICAgICAgcmVwbGFjaW5nICBfCHNfCHRfCHJfCGlfCG5fCGdfCDEgIHdpdGggIF8Ic18IdF8Icl8IaV8Ibl8IZ18IMi4gICBFcXVpdmFsZW50ICB0bwotICAgICAgICAgICAgICBgYCEhOnMvXwhzXwh0XwhyXwhpXwhuXwhnXwgxL18Ic18IdF8Icl8IaV8Ibl8IZ18IMi8nJyAoc2VlIE0ITW8Ib2QIZGkIaWYIZmkIaWUIZXIIcnMIcyBiZWxvdykuCisgICAgICAgICAgICAgIFF1aWNrIHN1YnN0aXR1dGlvbi4gIFJlcGVhdCB0aGUgbGFzdCBjb21tYW5kLCByZXBsYWNpbmcgIF8Ic18IdF8Icl8IaV8Ibl8IZ18IMQorICAgICAgICAgICAgICB3aXRoIF8Ic18IdF8Icl8IaV8Ibl8IZ18IMi4gIEVxdWl2YWxlbnQgdG8gYGAhITpzL18Ic18IdF8Icl8IaV8Ibl8IZ18IMS9fCHNfCHRfCHJfCGlfCG5fCGdfCDIvJycgKHNlZSBNCE1vCG9kCGQtCC0KKyAgICAgICAgICAgICAgaQhpZghmaQhpZQhlcghycwhzIGJlbG93KS4KICAgICAgICAhCCEjCCMgICAgIFRoZSBlbnRpcmUgY29tbWFuZCBsaW5lIHR5cGVkIHNvIGZhci4KIAogICAgVwhXbwhvcghyZAhkIEQIRGUIZXMIc2kIaWcIZ24IbmEIYXQIdG8Ib3IIcnMIcwotICAgICAgIFdvcmQgZGVzaWduYXRvcnMgYXJlIHVzZWQgdG8gc2VsZWN0IGRlc2lyZWQgd29yZHMgZnJvbSB0aGUKLSAgICAgICBldmVudC4gIEEgOgg6IHNlcGFyYXRlcyB0aGUgIGV2ZW50ICBzcGVjaWZpY2F0aW9uICBmcm9tICB0aGUKLSAgICAgICB3b3JkIGRlc2lnbmF0b3IuICBJdCBtYXkgYmUgb21pdHRlZCBpZiB0aGUgd29yZCBkZXNpZ25hdG9yCi0gICAgICAgYmVnaW5zIHdpdGggYSBeCF4sICQIJCwgKggqLCAtCC0sIG9yICUIJS4gIFdvcmRzIGFyZSAgbnVtYmVyZWQgIGZyb20KLSAgICAgICB0aGUgIGJlZ2lubmluZyAgb2YgIHRoZSAgbGluZSwgIHdpdGggIHRoZSBmaXJzdCB3b3JkIGJlaW5nCi0gICAgICAgZGVub3RlZCBieSAwICh6ZXJvKS4gIFdvcmRzIGFyZSBpbnNlcnRlZCBpbnRvIHRoZSAgY3VycmVudAotICAgICAgIGxpbmUgc2VwYXJhdGVkIGJ5IHNpbmdsZSBzcGFjZXMuCisgICAgICAgV29yZCBkZXNpZ25hdG9ycyBhcmUgdXNlZCB0byBzZWxlY3QgZGVzaXJlZCB3b3JkcyBmcm9tIHRoZSBldmVudC4gIEEgIDoIOgorICAgICAgIHNlcGFyYXRlcyAgdGhlIGV2ZW50IHNwZWNpZmljYXRpb24gZnJvbSB0aGUgd29yZCBkZXNpZ25hdG9yLiAgSXQgbWF5IGJlCisgICAgICAgb21pdHRlZCBpZiB0aGUgd29yZCBkZXNpZ25hdG9yIGJlZ2lucyB3aXRoIGEgXgheLCAkCCQsICoIKiwgLQgtLCBvciAgJQglLiAgIFdvcmRzCisgICAgICAgYXJlICBudW1iZXJlZCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUsIHdpdGggdGhlIGZpcnN0IHdvcmQgYmVpbmcKKyAgICAgICBkZW5vdGVkIGJ5IDAgKHplcm8pLiAgV29yZHMgYXJlIGluc2VydGVkIGludG8gdGhlICBjdXJyZW50ICBsaW5lICBzZXBhLQorICAgICAgIHJhdGVkIGJ5IHNpbmdsZSBzcGFjZXMuCiAKICAgICAgICAwCDAgKAgoegh6ZQhlcghybwhvKQgpCi0gICAgICAgICAgICAgIFRoZSAgemVyb3RoICB3b3JkLiAgRm9yIHRoZSBzaGVsbCwgdGhpcyBpcyB0aGUgY29tLQotICAgICAgICAgICAgICBtYW5kIHdvcmQuCisgICAgICAgICAgICAgIFRoZSB6ZXJvdGggd29yZC4gIEZvciB0aGUgc2hlbGwsIHRoaXMgaXMgdGhlIGNvbW1hbmQgd29yZC4KICAgICAgICBfCG4gICAgICBUaGUgXwhudGggd29yZC4KICAgICAgICBeCF4gICAgICBUaGUgZmlyc3QgYXJndW1lbnQuICBUaGF0IGlzLCB3b3JkIDEuCiAgICAgICAgJAgkICAgICAgVGhlIGxhc3QgYXJndW1lbnQuCi0gICAgICAgJQglICAgICAgVGhlIHdvcmQgbWF0Y2hlZCAgYnkgIHRoZSAgbW9zdCAgcmVjZW50ICBgP18Ic18IdF8Icl8IaV8Ibl8IZz8nCi0gICAgICAgICAgICAgIHNlYXJjaC4KKyAgICAgICAlCCUgICAgICBUaGUgd29yZCBtYXRjaGVkIGJ5IHRoZSBtb3N0IHJlY2VudCBgP18Ic18IdF8Icl8IaV8Ibl8IZz8nIHNlYXJjaC4KICAgICAgICBfCHgtCC1fCHkgICAgQSByYW5nZSBvZiB3b3JkczsgYC1fCHknIGFiYnJldmlhdGVzIGAwLV8IeScuCi0gICAgICAgKggqICAgICAgQWxsIG9mIHRoZSB3b3JkcyBidXQgdGhlIHplcm90aC4gIFRoaXMgaXMgYSBzeW5vbnltCi0gICAgICAgICAgICAgIGZvciBgXwgxXwgtXwgkJy4gIEl0IGlzIG5vdCBhbiBlcnJvciB0byB1c2UgKggqIGlmIHRoZXJlIGlzCi0gICAgICAgICAgICAgIGp1c3QgIG9uZSAgd29yZCAgaW4gIHRoZSBldmVudDsgdGhlIGVtcHR5IHN0cmluZyBpcwotICAgICAgICAgICAgICByZXR1cm5lZCBpbiB0aGF0IGNhc2UuCisgICAgICAgKggqICAgICAgQWxsICBvZiAgdGhlIHdvcmRzIGJ1dCB0aGUgemVyb3RoLiAgVGhpcyBpcyBhIHN5bm9ueW0gZm9yIGBfCDFfCC1fCCQnLgorICAgICAgICAgICAgICBJdCBpcyBub3QgYW4gZXJyb3IgdG8gdXNlICoIKiBpZiB0aGVyZSBpcyBqdXN0ICBvbmUgIHdvcmQgIGluICB0aGUKKyAgICAgICAgICAgICAgZXZlbnQ7IHRoZSBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgaW4gdGhhdCBjYXNlLgogICAgICAgIHgIeCoIKiAgICAgQWJicmV2aWF0ZXMgXwh4XwgtXwgkLgogICAgICAgIHgIeC0ILSAgICAgQWJicmV2aWF0ZXMgXwh4XwgtXwgkIGxpa2UgeAh4KggqLCBidXQgb21pdHMgdGhlIGxhc3Qgd29yZC4KIAotICAgICAgIElmIGEgd29yZCBkZXNpZ25hdG9yIGlzIHN1cHBsaWVkIHdpdGhvdXQgYW4gZXZlbnQgc3BlY2lmaS0KLSAgICAgICBjYXRpb24sIHRoZSBwcmV2aW91cyBjb21tYW5kIGlzIHVzZWQgYXMgdGhlIGV2ZW50LgorICAgICAgIElmICBhICB3b3JkICBkZXNpZ25hdG9yIGlzIHN1cHBsaWVkIHdpdGhvdXQgYW4gZXZlbnQgc3BlY2lmaWNhdGlvbiwgdGhlCisgICAgICAgcHJldmlvdXMgY29tbWFuZCBpcyB1c2VkIGFzIHRoZSBldmVudC4KIAogICAgTQhNbwhvZAhkaQhpZghmaQhpZQhlcghycwhzCi0gICAgICAgQWZ0ZXIgIHRoZSAgb3B0aW9uYWwgIHdvcmQgIGRlc2lnbmF0b3IsIHRoZXJlIG1heSBhcHBlYXIgYQotICAgICAgIHNlcXVlbmNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgIG1vZGlmaWVycywgIGVhY2gKLSAgICAgICBwcmVjZWRlZCBieSBhIGA6Jy4KKyAgICAgICBBZnRlciB0aGUgb3B0aW9uYWwgd29yZCBkZXNpZ25hdG9yLCB0aGVyZSBtYXkgYXBwZWFyIGEgc2VxdWVuY2Ugb2YgIG9uZQorICAgICAgIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZyBtb2RpZmllcnMsIGVhY2ggcHJlY2VkZWQgYnkgYSBgOicuCiAKLSAgICAgICBoCGggICAgICBSZW1vdmUgYSB0cmFpbGluZyBmaWxlIG5hbWUgY29tcG9uZW50LCBsZWF2aW5nIG9ubHkKLSAgICAgICAgICAgICAgdGhlIGhlYWQuCi0gICAgICAgdAh0ICAgICAgUmVtb3ZlIGFsbCBsZWFkaW5nIGZpbGUgIG5hbWUgIGNvbXBvbmVudHMsICBsZWF2aW5nCi0gICAgICAgICAgICAgIHRoZSB0YWlsLgotICAgICAgIHIIciAgICAgIFJlbW92ZSAgYSB0cmFpbGluZyBzdWZmaXggb2YgdGhlIGZvcm0gXwguXwh4Xwh4Xwh4LCBsZWF2aW5nCi0gICAgICAgICAgICAgIHRoZSBiYXNlbmFtZS4KKyAgICAgICBoCGggICAgICBSZW1vdmUgYSB0cmFpbGluZyBmaWxlIG5hbWUgY29tcG9uZW50LCBsZWF2aW5nIG9ubHkgdGhlIGhlYWQuCisgICAgICAgdAh0ICAgICAgUmVtb3ZlIGFsbCBsZWFkaW5nIGZpbGUgbmFtZSBjb21wb25lbnRzLCBsZWF2aW5nIHRoZSB0YWlsLgorICAgICAgIHIIciAgICAgIFJlbW92ZSBhIHRyYWlsaW5nIHN1ZmZpeCBvZiB0aGUgZm9ybSBfCC5fCHhfCHhfCHgsIGxlYXZpbmcgdGhlIGJhc2VuYW1lLgogICAgICAgIGUIZSAgICAgIFJlbW92ZSBhbGwgYnV0IHRoZSB0cmFpbGluZyBzdWZmaXguCiAgICAgICAgcAhwICAgICAgUHJpbnQgdGhlIG5ldyBjb21tYW5kIGJ1dCBkbyBub3QgZXhlY3V0ZSBpdC4KLQotCi0KLUdOVSBIaXN0b3J5IDQuMyAgICAgICAgICAyMDAyIEphbnVhcnkgMzEgICAgICAgICAgICAgICAgICAgICAgICAyCi0KLQotCi0KLQotSElTVE9SWSgzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhJU1RPUlkoMykKLQotCi0gICAgICAgcQhxICAgICAgUXVvdGUgdGhlIHN1YnN0aXR1dGVkIHdvcmRzLCBlc2NhcGluZyBmdXJ0aGVyICBzdWItCi0gICAgICAgICAgICAgIHN0aXR1dGlvbnMuCi0gICAgICAgeAh4ICAgICAgUXVvdGUgIHRoZSAgc3Vic3RpdHV0ZWQgIHdvcmRzIGFzIHdpdGggcQhxLCBidXQgYnJlYWsKLSAgICAgICAgICAgICAgaW50byB3b3JkcyBhdCBiCGJsCGxhCGFuCG5rCGtzCHMgYW5kIG5ld2xpbmVzLgorICAgICAgIHEIcSAgICAgIFF1b3RlIHRoZSBzdWJzdGl0dXRlZCB3b3JkcywgZXNjYXBpbmcgZnVydGhlciBzdWJzdGl0dXRpb25zLgorICAgICAgIHgIeCAgICAgIFF1b3RlIHRoZSBzdWJzdGl0dXRlZCB3b3JkcyBhcyB3aXRoIHEIcSwgYnV0IGJyZWFrIGludG8gIHdvcmRzICBhdAorICAgICAgICAgICAgICBiCGJsCGxhCGFuCG5rCGtzCHMgYW5kIG5ld2xpbmVzLgogICAgICAgIHMIcy8IL18Ib18IbF8IZC8IL18Ibl8IZV8Idy8ILwotICAgICAgICAgICAgICBTdWJzdGl0dXRlIF8Ibl8IZV8IdyBmb3IgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgIF8Ib18IbF8IZCAgaW4KLSAgICAgICAgICAgICAgdGhlIGV2ZW50IGxpbmUuICBBbnkgZGVsaW1pdGVyIGNhbiBiZSB1c2VkIGluIHBsYWNlCi0gICAgICAgICAgICAgIG9mIC8uICBUaGUgZmluYWwgZGVsaW1pdGVyIGlzIG9wdGlvbmFsIGlmIGl0IGlzIHRoZQotICAgICAgICAgICAgICBsYXN0ICBjaGFyYWN0ZXIgIG9mICB0aGUgZXZlbnQgbGluZS4gIFRoZSBkZWxpbWl0ZXIKLSAgICAgICAgICAgICAgbWF5IGJlIHF1b3RlZCBpbiBfCG9fCGxfCGQgYW5kIF8Ibl8IZV8IdyB3aXRoICBhICBzaW5nbGUgIGJhY2stCi0gICAgICAgICAgICAgIHNsYXNoLiAgSWYgJiBhcHBlYXJzIGluIF8Ibl8IZV8IdywgaXQgaXMgcmVwbGFjZWQgYnkgXwhvXwhsXwhkLgotICAgICAgICAgICAgICBBIHNpbmdsZSBiYWNrc2xhc2ggd2lsbCBxdW90ZSB0aGUgICYuICAgSWYgIF8Ib18IbF8IZCAgaXMKLSAgICAgICAgICAgICAgbnVsbCwgaXQgaXMgc2V0IHRvIHRoZSBsYXN0IF8Ib18IbF8IZCBzdWJzdGl0dXRlZCwgb3IsIGlmCi0gICAgICAgICAgICAgIG5vIHByZXZpb3VzIGhpc3Rvcnkgc3Vic3RpdHV0aW9ucyB0b29rICBwbGFjZSwgIHRoZQotICAgICAgICAgICAgICBsYXN0IF8Ic18IdF8Icl8IaV8Ibl8IZyBpbiBhICEIIT8IP18Ic18IdF8Icl8IaV8Ibl8IZ1sIWz8IP10IXSAgc2VhcmNoLgorICAgICAgICAgICAgICBTdWJzdGl0dXRlICBfCG5fCGVfCHcgIGZvciAgdGhlICBmaXJzdCAgb2NjdXJyZW5jZSBvZiBfCG9fCGxfCGQgaW4gdGhlIGV2ZW50CisgICAgICAgICAgICAgIGxpbmUuICBBbnkgZGVsaW1pdGVyIGNhbiBiZSB1c2VkICBpbiAgcGxhY2UgIG9mICAvLiAgIFRoZSAgZmluYWwKKyAgICAgICAgICAgICAgZGVsaW1pdGVyICBpcyAgb3B0aW9uYWwgaWYgaXQgaXMgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIHRoZSBldmVudAorICAgICAgICAgICAgICBsaW5lLiAgVGhlIGRlbGltaXRlciBtYXkgYmUgcXVvdGVkIGluIF8Ib18IbF8IZCBhbmQgXwhuXwhlXwh3IHdpdGggYSAgc2luZ2xlCisgICAgICAgICAgICAgIGJhY2tzbGFzaC4gICBJZiAmIGFwcGVhcnMgaW4gXwhuXwhlXwh3LCBpdCBpcyByZXBsYWNlZCBieSBfCG9fCGxfCGQuICBBIHNpbi0KKyAgICAgICAgICAgICAgZ2xlIGJhY2tzbGFzaCB3aWxsIHF1b3RlIHRoZSAmLiAgSWYgXwhvXwhsXwhkIGlzIG51bGwsIGl0ICBpcyAgc2V0ICB0bworICAgICAgICAgICAgICB0aGUgIGxhc3QgIF8Ib18IbF8IZCBzdWJzdGl0dXRlZCwgb3IsIGlmIG5vIHByZXZpb3VzIGhpc3Rvcnkgc3Vic3RpdHUtCisgICAgICAgICAgICAgIHRpb25zIHRvb2sgcGxhY2UsIHRoZSBsYXN0IF8Ic18IdF8Icl8IaV8Ibl8IZyBpbiBhICEIIT8IP18Ic18IdF8Icl8IaV8Ibl8IZ1sIWz8IP10IXSAgc2VhcmNoLgogICAgICAgICYIJiAgICAgIFJlcGVhdCB0aGUgcHJldmlvdXMgc3Vic3RpdHV0aW9uLgotICAgICAgIGcIZyAgICAgIENhdXNlICBjaGFuZ2VzICB0byBiZSBhcHBsaWVkIG92ZXIgdGhlIGVudGlyZSBldmVudAotICAgICAgICAgICAgICBsaW5lLiAgVGhpcyBpcyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggYDoIOnMIcycgKGUuZy4sCi0gICAgICAgICAgICAgIGA6CDpnCGdzCHMvCC9fCG9fCGxfCGQvCC9fCG5fCGVfCHcvCC8nKSAgb3IgIGA6CDomCCYnLiAgIElmIHVzZWQgd2l0aCBgOgg6cwhzJywgYW55Ci0gICAgICAgICAgICAgIGRlbGltaXRlciBjYW4gYmUgdXNlZCBpbiBwbGFjZSBvZiAvLCBhbmQgdGhlICBmaW5hbAotICAgICAgICAgICAgICBkZWxpbWl0ZXIgIGlzICBvcHRpb25hbCBpZiBpdCBpcyB0aGUgbGFzdCBjaGFyYWN0ZXIKLSAgICAgICAgICAgICAgb2YgdGhlIGV2ZW50IGxpbmUuCisgICAgICAgZwhnICAgICAgQ2F1c2UgY2hhbmdlcyB0byBiZSBhcHBsaWVkIG92ZXIgdGhlIGVudGlyZSBldmVudCBsaW5lLiAgVGhpcyBpcworICAgICAgICAgICAgICB1c2VkICBpbiAgY29uanVuY3Rpb24gIHdpdGggYDoIOnMIcycgKGUuZy4sIGA6CDpnCGdzCHMvCC9fCG9fCGxfCGQvCC9fCG5fCGVfCHcvCC8nKSBvciBgOgg6JggmJy4KKyAgICAgICAgICAgICAgSWYgdXNlZCB3aXRoIGA6CDpzCHMnLCBhbnkgZGVsaW1pdGVyIGNhbiBiZSB1c2VkIGluIHBsYWNlIG9mIC8sICBhbmQKKyAgICAgICAgICAgICAgdGhlICBmaW5hbCAgZGVsaW1pdGVyIGlzIG9wdGlvbmFsIGlmIGl0IGlzIHRoZSBsYXN0IGNoYXJhY3RlciBvZgorICAgICAgICAgICAgICB0aGUgZXZlbnQgbGluZS4gIEFuIGEIYSBtYXkgYmUgdXNlZCBhcyBhIHN5bm9ueW0gZm9yIGcIZy4KKyAgICAgICBHCEcgICAgICBBcHBseSB0aGUgZm9sbG93aW5nIGBzCHMnIG1vZGlmaWVyIG9uY2UgdG8gZWFjaCB3b3JkIGluIHRoZSAgZXZlbnQKKyAgICAgICAgICAgICAgbGluZS4KIAogUAhQUghSTwhPRwhHUghSQQhBTQhNTQhNSQhJTghORwhHIFcIV0kISVQIVEgISCBICEhJCElTCFNUCFRPCE9SCFJZCFkgRghGVQhVTghOQwhDVAhUSQhJTwhPTghOUwhTCi0gICAgICAgVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyBob3cgdG8gdXNlIHRoZSBIaXN0b3J5ICBsaWJyYXJ5ICBpbgotICAgICAgIG90aGVyIHByb2dyYW1zLgorICAgICAgIFRoaXMgIHNlY3Rpb24gIGRlc2NyaWJlcyAgaG93ICB0byB1c2UgdGhlIEhpc3RvcnkgbGlicmFyeSBpbiBvdGhlciBwcm8tCisgICAgICAgZ3JhbXMuCiAKICAgIEkISW4IbnQIdHIIcm8Ib2QIZHUIdWMIY3QIdGkIaW8Ib24IbiB0CHRvCG8gSAhIaQhpcwhzdAh0bwhvcghyeQh5Ci0gICAgICAgVGhlICBwcm9ncmFtbWVyICB1c2luZyAgdGhlICBIaXN0b3J5IGxpYnJhcnkgaGFzIGF2YWlsYWJsZQotICAgICAgIGZ1bmN0aW9ucyBmb3IgcmVtZW1iZXJpbmcgbGluZXMgb24gYSBoaXN0b3J5IGxpc3QsIGFzc29jaS0KLSAgICAgICBhdGluZyAgYXJiaXRyYXJ5IGRhdGEgd2l0aCBhIGxpbmUsIHJlbW92aW5nIGxpbmVzIGZyb20gdGhlCi0gICAgICAgbGlzdCwgc2VhcmNoaW5nIHRocm91Z2ggdGhlIGxpc3QgZm9yIGEgbGluZSBjb250YWluaW5nICBhbgotICAgICAgIGFyYml0cmFyeSAgdGV4dCAgc3RyaW5nLCAgYW5kICByZWZlcmVuY2luZyBhbnkgbGluZSBpbiB0aGUKLSAgICAgICBsaXN0IGRpcmVjdGx5LiAgSW4gYWRkaXRpb24sIGEgaGlzdG9yeSBfCGVfCHhfCHBfCGFfCG5fCHNfCGlfCG9fCG4gIGZ1bmN0aW9uCi0gICAgICAgaXMgIGF2YWlsYWJsZSAgd2hpY2ggcHJvdmlkZXMgZm9yIGEgY29uc2lzdGVudCB1c2VyIGludGVyLQotICAgICAgIGZhY2UgYWNyb3NzIGRpZmZlcmVudCBwcm9ncmFtcy4KKyAgICAgICBUaGUgcHJvZ3JhbW1lciB1c2luZyB0aGUgSGlzdG9yeSBsaWJyYXJ5IGhhcyAgYXZhaWxhYmxlICBmdW5jdGlvbnMgIGZvcgorICAgICAgIHJlbWVtYmVyaW5nICBsaW5lcyBvbiBhIGhpc3RvcnkgbGlzdCwgYXNzb2NpYXRpbmcgYXJiaXRyYXJ5IGRhdGEgd2l0aCBhCisgICAgICAgbGluZSwgcmVtb3ZpbmcgbGluZXMgZnJvbSB0aGUgbGlzdCwgc2VhcmNoaW5nIHRocm91Z2ggdGhlICBsaXN0ICBmb3IgIGEKKyAgICAgICBsaW5lICBjb250YWluaW5nICBhbiBhcmJpdHJhcnkgdGV4dCBzdHJpbmcsIGFuZCByZWZlcmVuY2luZyBhbnkgbGluZSBpbgorICAgICAgIHRoZSBsaXN0IGRpcmVjdGx5LiAgSW4gYWRkaXRpb24sIGEgaGlzdG9yeSBfCGVfCHhfCHBfCGFfCG5fCHNfCGlfCG9fCG4gZnVuY3Rpb24gaXMgYXZhaWwtCisgICAgICAgYWJsZSAgd2hpY2ggIHByb3ZpZGVzICBmb3IgYSBjb25zaXN0ZW50IHVzZXIgaW50ZXJmYWNlIGFjcm9zcyBkaWZmZXJlbnQKKyAgICAgICBwcm9ncmFtcy4KIAotICAgICAgIFRoZSB1c2VyIHVzaW5nIHByb2dyYW1zIHdyaXR0ZW4gd2l0aCB0aGUgIEhpc3RvcnkgIGxpYnJhcnkKLSAgICAgICBoYXMgIHRoZSBiZW5lZml0IG9mIGEgY29uc2lzdGVudCB1c2VyIGludGVyZmFjZSB3aXRoIGEgc2V0Ci0gICAgICAgb2Ygd2VsbC1rbm93biBjb21tYW5kcyBmb3IgbWFuaXB1bGF0aW5nIHRoZSB0ZXh0IG9mIHByZXZpLQotICAgICAgIG91cyAgbGluZXMgYW5kIHVzaW5nIHRoYXQgdGV4dCBpbiBuZXcgY29tbWFuZHMuICBUaGUgYmFzaWMKLSAgICAgICBoaXN0b3J5IG1hbmlwdWxhdGlvbiBjb21tYW5kcyBhcmUgaWRlbnRpY2FsIHRvIHRoZSBoaXN0b3J5Ci0gICAgICAgc3Vic3RpdHV0aW9uIHByb3ZpZGVkIGJ5IGIIYmEIYXMIc2gIaC4KKyAgICAgICBUaGUgdXNlciB1c2luZyBwcm9ncmFtcyB3cml0dGVuIHdpdGggdGhlIEhpc3RvcnkgbGlicmFyeSBoYXMgdGhlICBiZW5lLQorICAgICAgIGZpdCAgb2YgIGEgIGNvbnNpc3RlbnQgdXNlciBpbnRlcmZhY2Ugd2l0aCBhIHNldCBvZiB3ZWxsLWtub3duIGNvbW1hbmRzCisgICAgICAgZm9yIG1hbmlwdWxhdGluZyB0aGUgdGV4dCBvZiBwcmV2aW91cyBsaW5lcyBhbmQgdXNpbmcgdGhhdCB0ZXh0IGluICBuZXcKKyAgICAgICBjb21tYW5kcy4gIFRoZSBiYXNpYyBoaXN0b3J5IG1hbmlwdWxhdGlvbiBjb21tYW5kcyBhcmUgaWRlbnRpY2FsIHRvIHRoZQorICAgICAgIGhpc3Rvcnkgc3Vic3RpdHV0aW9uIHByb3ZpZGVkIGJ5IGIIYmEIYXMIc2gIaC4KIAotICAgICAgIElmICB0aGUgIHByb2dyYW1tZXIgIGRlc2lyZXMsICBoZSAgY2FuICB1c2UgIHRoZSAgUmVhZGxpbmUKLSAgICAgICBsaWJyYXJ5LCAgd2hpY2ggIGluY2x1ZGVzICBzb21lICBoaXN0b3J5ICBtYW5pcHVsYXRpb24gIGJ5Ci0gICAgICAgZGVmYXVsdCwgYW5kIGhhcyB0aGUgYWRkZWQgYWR2YW50YWdlIG9mIGNvbW1hbmQgbGluZSBlZGl0LQotICAgICAgIGluZy4KKyAgICAgICBJZiB0aGUgcHJvZ3JhbW1lciBkZXNpcmVzLCBoZSAgY2FuICB1c2UgIHRoZSAgUmVhZGxpbmUgIGxpYnJhcnksICB3aGljaAorICAgICAgIGluY2x1ZGVzIHNvbWUgaGlzdG9yeSBtYW5pcHVsYXRpb24gYnkgZGVmYXVsdCwgYW5kIGhhcyB0aGUgYWRkZWQgYWR2YW4tCisgICAgICAgdGFnZSBvZiBjb21tYW5kIGxpbmUgZWRpdGluZy4KIAotICAgICAgIEJlZm9yZSBkZWNsYXJpbmcgYW55IGZ1bmN0aW9ucyB1c2luZyBhbnkgZnVuY3Rpb25hbGl0eSB0aGUKLSAgICAgICBIaXN0b3J5ICBsaWJyYXJ5ICBwcm92aWRlcyAgaW4gIG90aGVyIGNvZGUsIGFuIGFwcGxpY2F0aW9uCi0gICAgICAgd3JpdGVyIHNob3VsZCBpbmNsdWRlIHRoZSBmaWxlIF8IPF8Icl8IZV8IYV8IZF8IbF8IaV8Ibl8IZV8IL18IaF8IaV8Ic18IdF8Ib18Icl8IeV8ILl8IaF8IPiBpbiBhbnkKLSAgICAgICBmaWxlICB0aGF0ICB1c2VzICB0aGUgSGlzdG9yeSBsaWJyYXJ5J3MgZmVhdHVyZXMuICBJdCBzdXAtCi0gICAgICAgcGxpZXMgZXh0ZXJuIGRlY2xhcmF0aW9ucyBmb3IgYWxsIG9mIHRoZSBsaWJyYXJ5J3MgIHB1YmxpYwotCi0KLQotR05VIEhpc3RvcnkgNC4zICAgICAgICAgIDIwMDIgSmFudWFyeSAzMSAgICAgICAgICAgICAgICAgICAgICAgIDMKLQotCi0KLQotCi1ISVNUT1JZKDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSElTVE9SWSgzKQotCi0KLSAgICAgICBmdW5jdGlvbnMgIGFuZCAgdmFyaWFibGVzLCAgYW5kIGRlY2xhcmVzIGFsbCBvZiB0aGUgcHVibGljCi0gICAgICAgZGF0YSBzdHJ1Y3R1cmVzLgorICAgICAgIEJlZm9yZSBkZWNsYXJpbmcgYW55IGZ1bmN0aW9ucyAgdXNpbmcgIGFueSAgZnVuY3Rpb25hbGl0eSAgdGhlICBIaXN0b3J5CisgICAgICAgbGlicmFyeSAgcHJvdmlkZXMgIGluICBvdGhlciBjb2RlLCBhbiBhcHBsaWNhdGlvbiB3cml0ZXIgc2hvdWxkIGluY2x1ZGUKKyAgICAgICB0aGUgZmlsZSAgXwg8XwhyXwhlXwhhXwhkXwhsXwhpXwhuXwhlXwgvXwhoXwhpXwhzXwh0XwhvXwhyXwh5XwguXwhoXwg+ICBpbiAgYW55ICBmaWxlICB0aGF0ICB1c2VzICB0aGUgIEhpc3RvcnkKKyAgICAgICBsaWJyYXJ5J3MgIGZlYXR1cmVzLiAgIEl0ICBzdXBwbGllcyAgZXh0ZXJuIGRlY2xhcmF0aW9ucyBmb3IgYWxsIG9mIHRoZQorICAgICAgIGxpYnJhcnkncyBwdWJsaWMgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMsIGFuZCBkZWNsYXJlcyBhbGwgb2YgdGhlICBwdWItCisgICAgICAgbGljIGRhdGEgc3RydWN0dXJlcy4KIAogCiAgICBICEhpCGlzCHN0CHRvCG9yCHJ5CHkgUwhTdAh0bwhvcghyYQhhZwhnZQhlCi0gICAgICAgVGhlIGhpc3RvcnkgbGlzdCBpcyBhbiBhcnJheSBvZiBoaXN0b3J5IGVudHJpZXMuICAgQSAgaGlzLQotICAgICAgIHRvcnkgZW50cnkgaXMgZGVjbGFyZWQgYXMgZm9sbG93czoKKyAgICAgICBUaGUgIGhpc3RvcnkgIGxpc3QgIGlzIGFuIGFycmF5IG9mIGhpc3RvcnkgZW50cmllcy4gIEEgaGlzdG9yeSBlbnRyeSBpcworICAgICAgIGRlY2xhcmVkIGFzIGZvbGxvd3M6CiAKICAgICAgICBfCHRfCHlfCHBfCGVfCGRfCGVfCGYgXwh2XwhvXwhpXwhkIF8IKiBoCGhpCGlzCHN0CHRkCGRhCGF0CHRhCGFfCF90CHQ7CDsKIAogICAgICAgIHR5cGVkZWYgc3RydWN0IF9oaXN0X2VudHJ5IHsKICAgICAgICAgIGNoYXIgKmxpbmU7CisgICAgICAgICBjaGFyICp0aW1lc3RhbXA7CiAgICAgICAgICBoaXN0ZGF0YV90IGRhdGE7CiAgICAgICAgfSBISVNUX0VOVFJZOwogCkBAIC0yMjEsOCArMTYyLDggQEAKIAogICAgICAgIF8ISF8ISV8IU18IVF8IX18IRV8ITl8IVF8IUl8IWSBfCCpfCCogdAh0aAhoZQhlXwhfaAhoaQhpcwhzdAh0bwhvcghyeQh5XwhfbAhsaQhpcwhzdAh0Owg7CiAKLSAgICAgICBUaGUgIHN0YXRlICBvZiAgdGhlIEhpc3RvcnkgbGlicmFyeSBpcyBlbmNhcHN1bGF0ZWQgaW50byBhCi0gICAgICAgc2luZ2xlIHN0cnVjdHVyZToKKyAgICAgICBUaGUgc3RhdGUgb2YgdGhlIEhpc3RvcnkgbGlicmFyeSBpcyBlbmNhcHN1bGF0ZWQgaW50byBhICBzaW5nbGUgIHN0cnVjLQorICAgICAgIHR1cmU6CiAKICAgICAgICAvKgogICAgICAgICAqIEEgc3RydWN0dXJlIHVzZWQgdG8gcGFzcyBhcm91bmQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGhpc3RvcnkuCkBAIC0yMzUsMzY4ICsxNzYsMjg1IEBACiAgICAgICAgICBpbnQgZmxhZ3M7CiAgICAgICAgfSBISVNUT1JZX1NUQVRFOwogCi0gICAgICAgSWYgdGhlIGZsYWdzIG1lbWJlciBpbmNsdWRlcyBICEhTCFNfCF9TCFNUCFRJCElGCEZMCExFCEVECEQsIHRoZSAgaGlzdG9yeSAgaGFzCi0gICAgICAgYmVlbiBzdGlmbGVkLgorICAgICAgIElmICB0aGUgZmxhZ3MgbWVtYmVyIGluY2x1ZGVzIEgISFMIU18IX1MIU1QIVEkISUYIRkwITEUIRUQIRCwgdGhlIGhpc3RvcnkgaGFzIGJlZW4gc3RpZmxlZC4KIAogSAhIaQhpcwhzdAh0bwhvcghyeQh5IEYIRnUIdW4IbmMIY3QIdGkIaW8Ib24IbnMIcwotICAgICAgIFRoaXMgIHNlY3Rpb24gZGVzY3JpYmVzIHRoZSBjYWxsaW5nIHNlcXVlbmNlIGZvciB0aGUgdmFyaS0KLSAgICAgICBvdXMgZnVuY3Rpb25zIGV4cG9ydGVkIGJ5IHRoZSBHTlUgSGlzdG9yeSBsaWJyYXJ5LgorICAgICAgIFRoaXMgc2VjdGlvbiBkZXNjcmliZXMgdGhlIGNhbGxpbmcgc2VxdWVuY2UgZm9yIHRoZSAgdmFyaW91cyAgZnVuY3Rpb25zCisgICAgICAgZXhwb3J0ZWQgYnkgdGhlIEdOVSBIaXN0b3J5IGxpYnJhcnkuCiAKICAgIEkISW4IbmkIaXQIdGkIaWEIYWwIbGkIaXoIemkIaW4IbmcIZyBICEhpCGlzCHN0CHRvCG9yCHJ5CHkgYQhhbghuZAhkIFMIU3QIdGEIYXQIdGUIZSBNCE1hCGFuCG5hCGFnCGdlCGVtCG1lCGVuCG50CHQKLSAgICAgICBUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIGZ1bmN0aW9ucyB1c2VkICB0byAgaW5pdGlhbGl6ZSAgYW5kCi0gICAgICAgbWFuYWdlICB0aGUgIHN0YXRlIG9mIHRoZSBIaXN0b3J5IGxpYnJhcnkgd2hlbiB5b3Ugd2FudCB0bwotICAgICAgIHVzZSB0aGUgaGlzdG9yeSBmdW5jdGlvbnMgaW4geW91ciBwcm9ncmFtLgorICAgICAgIFRoaXMgIHNlY3Rpb24gIGRlc2NyaWJlcyAgZnVuY3Rpb25zICB1c2VkICB0byBpbml0aWFsaXplIGFuZCBtYW5hZ2UgdGhlCisgICAgICAgc3RhdGUgb2YgdGhlIEhpc3RvcnkgbGlicmFyeSB3aGVuIHlvdSB3YW50IHRvIHVzZSB0aGUgaGlzdG9yeSBmdW5jdGlvbnMKKyAgICAgICBpbiB5b3VyIHByb2dyYW0uCiAKICAgICAgICBfCHZfCG9fCGlfCGQgdQh1cwhzaQhpbghuZwhnXwhfaAhoaQhpcwhzdAh0bwhvcghyeQh5IChfCHZfCG9fCGlfCGQpCi0gICAgICAgQmVnaW4gYSBzZXNzaW9uIGluIHdoaWNoIHRoZSBoaXN0b3J5ICBmdW5jdGlvbnMgIG1pZ2h0ICBiZQotICAgICAgIHVzZWQuICBUaGlzIGluaXRpYWxpemVzIHRoZSBpbnRlcmFjdGl2ZSB2YXJpYWJsZXMuCisgICAgICAgQmVnaW4gIGEgIHNlc3Npb24gIGluICB3aGljaCB0aGUgaGlzdG9yeSBmdW5jdGlvbnMgbWlnaHQgYmUgdXNlZC4gIFRoaXMKKyAgICAgICBpbml0aWFsaXplcyB0aGUgaW50ZXJhY3RpdmUgdmFyaWFibGVzLgogCiAgICAgICAgXwhIXwhJXwhTXwhUXwhPXwhSXwhZXwhfXwhTXwhUXwhBXwhUXwhFIF8IKiBoCGhpCGlzCHN0CHRvCG9yCHJ5CHlfCF9nCGdlCGV0CHRfCF9oCGhpCGlzCHN0CHRvCG9yCHJ5CHlfCF9zCHN0CHRhCGF0CHRlCGUgKF8Idl8Ib18IaV8IZCkKLSAgICAgICBSZXR1cm4gIGEgIHN0cnVjdHVyZSAgZGVzY3JpYmluZyAgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlCi0gICAgICAgaW5wdXQgaGlzdG9yeS4KKyAgICAgICBSZXR1cm4gYSBzdHJ1Y3R1cmUgZGVzY3JpYmluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgaW5wdXQgaGlzdG9yeS4KIAogICAgICAgIF8Idl8Ib18IaV8IZCBoCGhpCGlzCHN0CHRvCG9yCHJ5CHlfCF9zCHNlCGV0CHRfCF9oCGhpCGlzCHN0CHRvCG9yCHJ5CHlfCF9zCHN0CHRhCGF0CHRlCGUgKF8ISF8ISV8IU18IVF8IT18IUl8IWV8IX18IU18IVF8IQV8IVF8IRSBfCCpfCHNfCHRfCGFfCHRfCGUpCi0KLQotCi1HTlUgSGlzdG9yeSA0LjMgICAgICAgICAgMjAwMiBKYW51YXJ5IDMxICAgICAgICAgICAgICAgICAgICAgICAgNAotCi0KLQotCi0KLUhJU1RPUlkoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBISVNUT1JZKDMpCi0KLQogICAgICAgIFNldCB0aGUgc3RhdGUgb2YgdGhlIGhpc3RvcnkgbGlzdCBhY2NvcmRpbmcgdG8gXwhzXwh0XwhhXwh0XwhlLgogCiAKICAgIEgISGkIaXMIc3QIdG8Ib3IIcnkIeSBMCExpCGlzCHN0CHQgTQhNYQhhbghuYQhhZwhnZQhlbQhtZQhlbghudAh0Ci0gICAgICAgVGhlc2UgZnVuY3Rpb25zIG1hbmFnZSBpbmRpdmlkdWFsIGVudHJpZXMgb24gIHRoZSAgaGlzdG9yeQotICAgICAgIGxpc3QsIG9yIHNldCBwYXJhbWV0ZXJzIG1hbmFnaW5nIHRoZSBsaXN0IGl0c2VsZi4KKyAgICAgICBUaGVzZSBmdW5jdGlvbnMgbWFuYWdlIGluZGl2aWR1YWwgZW50cmllcyBvbiB0aGUgaGlzdG9yeSBsaXN0LCAgb3IgIHNldAorICAgICAgIHBhcmFtZXRlcnMgbWFuYWdpbmcgdGhlIGxpc3QgaXRzZWxmLgogCiAgICAgICAgXwh2XwhvXwhpXwhkIGEIYWQIZGQIZF8IX2gIaGkIaXMIc3QIdG8Ib3IIcnkIeSAoXwhjXwhvXwhuXwhzXwh0IF8IY18IaF8IYV8IciBfCCpfCHNfCHRfCHJfCGlfCG5fCGcpCi0gICAgICAgUGxhY2UgIF8Ic18IdF8Icl8IaV8Ibl8IZyBhdCB0aGUgZW5kIG9mIHRoZSBoaXN0b3J5IGxpc3QuICBUaGUgYXNzb2NpLQotICAgICAgIGF0ZWQgZGF0YSBmaWVsZCAoaWYgYW55KSBpcyBzZXQgdG8gTghOVQhVTAhMTAhMLgorICAgICAgIFBsYWNlIF8Ic18IdF8Icl8IaV8Ibl8IZyBhdCB0aGUgZW5kIG9mIHRoZSBoaXN0b3J5IGxpc3QuICBUaGUgYXNzb2NpYXRlZCBkYXRhIGZpZWxkCisgICAgICAgKGlmIGFueSkgaXMgc2V0IHRvIE4ITlUIVUwITEwITC4KKworICAgICAgIF8Idl8Ib18IaV8IZCBhCGFkCGRkCGRfCF9oCGhpCGlzCHN0CHRvCG9yCHJ5CHlfCF90CHRpCGltCG1lCGUgKF8IY18Ib18Ibl8Ic18IdCBfCGNfCGhfCGFfCHIgXwgqXwhzXwh0XwhyXwhpXwhuXwhnKQorICAgICAgIENoYW5nZSB0aGUgdGltZSBzdGFtcCBhc3NvY2lhdGVkIHdpdGggdGhlIG1vc3QgcmVjZW50IGhpc3RvcnkgZW50cnkgIHRvCisgICAgICAgXwhzXwh0XwhyXwhpXwhuXwhnLgogCiAgICAgICAgXwhIXwhJXwhTXwhUXwhfXwhFXwhOXwhUXwhSXwhZIF8IKiByCHJlCGVtCG1vCG92CHZlCGVfCF9oCGhpCGlzCHN0CHRvCG9yCHJ5CHkgKF8IaV8Ibl8IdCBfCHdfCGhfCGlfCGNfCGgpCi0gICAgICAgUmVtb3ZlIGhpc3RvcnkgZW50cnkgYXQgb2Zmc2V0ICBfCHdfCGhfCGlfCGNfCGggIGZyb20gIHRoZSAgaGlzdG9yeS4KLSAgICAgICBUaGUgIHJlbW92ZWQgZWxlbWVudCBpcyByZXR1cm5lZCBzbyB5b3UgY2FuIGZyZWUgdGhlIGxpbmUsCi0gICAgICAgZGF0YSwgYW5kIGNvbnRhaW5pbmcgc3RydWN0dXJlLgorICAgICAgIFJlbW92ZSAgaGlzdG9yeSAgZW50cnkgIGF0ICBvZmZzZXQgXwh3XwhoXwhpXwhjXwhoIGZyb20gdGhlIGhpc3RvcnkuICBUaGUgcmVtb3ZlZAorICAgICAgIGVsZW1lbnQgaXMgcmV0dXJuZWQgc28geW91IGNhbiBmcmVlICB0aGUgIGxpbmUsICBkYXRhLCAgYW5kICBjb250YWluaW5nCisgICAgICAgc3RydWN0dXJlLgogCi0gICAgICAgXwhIXwhJXwhTXwhUXwhfXwhFXwhOXwhUXwhSXwhZIF8IKiByCHJlCGVwCHBsCGxhCGFjCGNlCGVfCF9oCGhpCGlzCHN0CHRvCG9yCHJ5CHlfCF9lCGVuCG50CHRyCHJ5CHkgKF8IaV8Ibl8IdCBfCHdfCGhfCGlfCGNfCGhfCCwgXwhjXwhvXwhuXwhzXwh0ICBfCGNfCGhfCGFfCHIKLSAgICAgICBfCCpfCGxfCGlfCG5fCGVfCCwgXwhoXwhpXwhzXwh0XwhkXwhhXwh0XwhhXwhfXwh0IF8IZF8IYV8IdF8IYSkKLSAgICAgICBNYWtlIHRoZSBoaXN0b3J5IGVudHJ5IGF0IG9mZnNldCBfCHdfCGhfCGlfCGNfCGggaGF2ZSBfCGxfCGlfCG5fCGUgYW5kIF8IZF8IYV8IdF8IYS4KLSAgICAgICBUaGlzIHJldHVybnMgdGhlIG9sZCBlbnRyeSBzbyB5b3UgY2FuIGRpc3Bvc2Ugb2YgdGhlIGRhdGEuCi0gICAgICAgSW4gIHRoZSAgY2FzZSAgb2YgIGFuICBpbnZhbGlkICBfCHdfCGhfCGlfCGNfCGgsICBhICBOCE5VCFVMCExMCEwgcG9pbnRlciBpcworICAgICAgIF8IaF8IaV8Ic18IdF8IZF8IYV8IdF8IYV8IX18IdCBmCGZyCHJlCGVlCGVfCF9oCGhpCGlzCHN0CHRvCG9yCHJ5CHlfCF9lCGVuCG50CHRyCHJ5CHkgKF8ISF8ISV8IU18IVF8IX18IRV8ITl8IVF8IUl8IWSBfCCpfCGhfCGlfCHNfCHRfCGVfCG5fCHQpCisgICAgICAgRnJlZSAgdGhlICBoaXN0b3J5ICBlbnRyeSAgXwhoXwhpXwhzXwh0XwhlXwhuXwh0IGFuZCBhbnkgaGlzdG9yeSBsaWJyYXJ5IHByaXZhdGUgZGF0YQorICAgICAgIGFzc29jaWF0ZWQgd2l0aCBpdC4gICBSZXR1cm5zICB0aGUgIGFwcGxpY2F0aW9uLXNwZWNpZmljICBkYXRhICBzbyAgdGhlCisgICAgICAgY2FsbGVyIGNhbiBkaXNwb3NlIG9mIGl0LgorCisgICAgICAgXwhIXwhJXwhTXwhUXwhfXwhFXwhOXwhUXwhSXwhZICBfCCogcghyZQhlcAhwbAhsYQhhYwhjZQhlXwhfaAhoaQhpcwhzdAh0bwhvcghyeQh5XwhfZQhlbghudAh0cghyeQh5IChfCGlfCG5fCHQgXwh3XwhoXwhpXwhjXwhoXwgsIF8IY18Ib18Ibl8Ic18IdCBfCGNfCGhfCGFfCHIgXwgqXwhsXwhpXwhuXwhlXwgsIF8IaF8IaV8Ic18IdF8ILQorICAgICAgIF8IZF8IYV8IdF8IYV8IX18IdCBfCGRfCGFfCHRfCGEpCisgICAgICAgTWFrZSB0aGUgaGlzdG9yeSBlbnRyeSBhdCAgb2Zmc2V0ICBfCHdfCGhfCGlfCGNfCGggIGhhdmUgIF8IbF8IaV8Ibl8IZSAgYW5kICBfCGRfCGFfCHRfCGEuICAgVGhpcworICAgICAgIHJldHVybnMgdGhlIG9sZCBlbnRyeSBzbyB0aGUgY2FsbGVyIGNhbiBkaXNwb3NlIG9mIGFueSBhcHBsaWNhdGlvbi1zcGUtCisgICAgICAgY2lmaWMgZGF0YS4gIEluIHRoZSBjYXNlICBvZiAgYW4gIGludmFsaWQgIF8Id18IaF8IaV8IY18IaCwgIGEgIE4ITlUIVUwITEwITCAgcG9pbnRlciAgaXMKICAgICAgICByZXR1cm5lZC4KIAogICAgICAgIF8Idl8Ib18IaV8IZCBjCGNsCGxlCGVhCGFyCHJfCF9oCGhpCGlzCHN0CHRvCG9yCHJ5CHkgKF8Idl8Ib18IaV8IZCkKICAgICAgICBDbGVhciB0aGUgaGlzdG9yeSBsaXN0IGJ5IGRlbGV0aW5nIGFsbCB0aGUgZW50cmllcy4KIAogICAgICAgIF8Idl8Ib18IaV8IZCBzCHN0CHRpCGlmCGZsCGxlCGVfCF9oCGhpCGlzCHN0CHRvCG9yCHJ5CHkgKF8IaV8Ibl8IdCBfCG1fCGFfCHgpCi0gICAgICAgU3RpZmxlIHRoZSBoaXN0b3J5IGxpc3QsIHJlbWVtYmVyaW5nICBvbmx5ICB0aGUgIGxhc3QgIF8IbV8IYV8IeAotICAgICAgIGVudHJpZXMuCisgICAgICAgU3RpZmxlIHRoZSBoaXN0b3J5IGxpc3QsIHJlbWVtYmVyaW5nIG9ubHkgdGhlIGxhc3QgXwhtXwhhXwh4IGVudHJpZXMuCiAKICAgICAgICBfCGlfCG5fCHQgdQh1bghucwhzdAh0aQhpZghmbAhsZQhlXwhfaAhoaQhpcwhzdAh0bwhvcghyeQh5IChfCHZfCG9fCGlfCGQpCi0gICAgICAgU3RvcCAgc3RpZmxpbmcgIHRoZSBoaXN0b3J5LiAgVGhpcyByZXR1cm5zIHRoZSBwcmV2aW91c2x5LQotICAgICAgIHNldCBtYXhpbXVtIG51bWJlciBvZiBoaXN0b3J5ICBlbnRyaWVzICAoYXMgIHNldCAgYnkgIHMIc3QIdGkIaS0ILQotICAgICAgIGYIZmwIbGUIZV8IX2gIaGkIaXMIc3QIdG8Ib3IIcnkIeSgIKCkIKSkuICAgaGlzdG9yeSB3YXMgc3RpZmxlZC4gIFRoZSB2YWx1ZSBpcyBwb3NpLQotICAgICAgIHRpdmUgaWYgdGhlIGhpc3Rvcnkgd2FzIHN0aWZsZWQsIG5lZ2F0aXZlIGlmIGl0IHdhc24ndC4KKyAgICAgICBTdG9wICBzdGlmbGluZyAgdGhlICBoaXN0b3J5LiAgIFRoaXMgcmV0dXJucyB0aGUgcHJldmlvdXNseS1zZXQgbWF4aW11bQorICAgICAgIG51bWJlciBvZiBoaXN0b3J5IGVudHJpZXMgKGFzIHNldCBieSAgcwhzdAh0aQhpZghmbAhsZQhlXwhfaAhoaQhpcwhzdAh0bwhvcghyeQh5KAgoKQgpKS4gICBoaXN0b3J5ICB3YXMKKyAgICAgICBzdGlmbGVkLiAgVGhlIHZhbHVlIGlzIHBvc2l0aXZlIGlmIHRoZSBoaXN0b3J5IHdhcyBzdGlmbGVkLCBuZWdhdGl2ZSBpZgorICAgICAgIGl0IHdhc24ndC4KIAogICAgICAgIF8IaV8Ibl8IdCBoCGhpCGlzCHN0CHRvCG9yCHJ5CHlfCF9pCGlzCHNfCF9zCHN0CHRpCGlmCGZsCGxlCGVkCGQgKF8Idl8Ib18IaV8IZCkKLSAgICAgICBSZXR1cm5zIG5vbi16ZXJvIGlmIHRoZSBoaXN0b3J5IGlzIHN0aWZsZWQsIHplcm8gaWYgaXQgIGlzCi0gICAgICAgbm90LgorICAgICAgIFJldHVybnMgbm9uLXplcm8gaWYgdGhlIGhpc3RvcnkgaXMgc3RpZmxlZCwgemVybyBpZiBpdCBpcyBub3QuCiAKIAogICAgSQhJbghuZghmbwhvcghybQhtYQhhdAh0aQhpbwhvbghuIEEIQWIIYm8Ib3UIdXQIdCB0CHRoCGhlCGUgSAhIaQhpcwhzdAh0bwhvcghyeQh5IEwITGkIaXMIc3QIdAotICAgICAgIFRoZXNlICBmdW5jdGlvbnMgIHJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZW50aXJlIGhpcy0KLSAgICAgICB0b3J5IGxpc3Qgb3IgaW5kaXZpZHVhbCBsaXN0IGVudHJpZXMuCisgICAgICAgVGhlc2UgZnVuY3Rpb25zIHJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgIGVudGlyZSAgaGlzdG9yeSAgbGlzdCAgb3IKKyAgICAgICBpbmRpdmlkdWFsIGxpc3QgZW50cmllcy4KIAogICAgICAgIF8ISF8ISV8IU18IVF8IX18IRV8ITl8IVF8IUl8IWSBfCCpfCCogaAhoaQhpcwhzdAh0bwhvcghyeQh5XwhfbAhsaQhpcwhzdAh0IChfCHZfCG9fCGlfCGQpCi0gICAgICAgUmV0dXJuIGEgTghOVQhVTAhMTAhMIHRlcm1pbmF0ZWQgYXJyYXkgb2YgXwhIXwhJXwhTXwhUXwhfXwhFXwhOXwhUXwhSXwhZICBfCCogIHdoaWNoICBpcwotICAgICAgIHRoZSAgY3VycmVudCBpbnB1dCBoaXN0b3J5LiAgRWxlbWVudCAwIG9mIHRoaXMgbGlzdCBpcyB0aGUKLSAgICAgICBiZWdpbm5pbmcgb2YgdGltZS4gIElmIHRoZXJlIGlzIG5vIGhpc3RvcnksIHJldHVybiBOCE5VCFVMCExMCEwuCisgICAgICAgUmV0dXJuICBhICBOCE5VCFVMCExMCEwgIHRlcm1pbmF0ZWQgIGFycmF5IG9mIF8ISF8ISV8IU18IVF8IX18IRV8ITl8IVF8IUl8IWSBfCCogd2hpY2ggaXMgdGhlIGN1cnJlbnQKKyAgICAgICBpbnB1dCBoaXN0b3J5LiAgRWxlbWVudCAwIG9mIHRoaXMgbGlzdCBpcyB0aGUgYmVnaW5uaW5nICBvZiAgdGltZS4gICBJZgorICAgICAgIHRoZXJlIGlzIG5vIGhpc3RvcnksIHJldHVybiBOCE5VCFVMCExMCEwuCiAKICAgICAgICBfCGlfCG5fCHQgdwh3aAhoZQhlcghyZQhlXwhfaAhoaQhpcwhzdAh0bwhvcghyeQh5IChfCHZfCG9fCGlfCGQpCiAgICAgICAgUmV0dXJucyB0aGUgb2Zmc2V0IG9mIHRoZSBjdXJyZW50IGhpc3RvcnkgZWxlbWVudC4KIAogICAgICAgIF8ISF8ISV8IU18IVF8IX18IRV8ITl8IVF8IUl8IWSBfCCogYwhjdQh1cghycghyZQhlbghudAh0XwhfaAhoaQhpcwhzdAh0bwhvcghyeQh5IChfCHZfCG9fCGlfCGQpCi0KLQotCi1HTlUgSGlzdG9yeSA0LjMgICAgICAgICAgMjAwMiBKYW51YXJ5IDMxICAgICAgICAgICAgICAgICAgICAgICAgNQotCi0KLQotCi0KLUhJU1RPUlkoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBISVNUT1JZKDMpCi0KLQotICAgICAgIFJldHVybiB0aGUgaGlzdG9yeSAgZW50cnkgIGF0ICB0aGUgIGN1cnJlbnQgIHBvc2l0aW9uLCAgYXMKLSAgICAgICBkZXRlcm1pbmVkICBieSAgdwh3aAhoZQhlcghyZQhlXwhfaAhoaQhpcwhzdAh0bwhvcghyeQh5KAgoKQgpLiAgIElmICB0aGVyZSAgaXMgIG5vIGVudHJ5Ci0gICAgICAgdGhlcmUsIHJldHVybiBhIE4ITlUIVUwITEwITCBwb2ludGVyLgorICAgICAgIFJldHVybiAgdGhlICBoaXN0b3J5ICBlbnRyeSAgYXQgIHRoZSBjdXJyZW50IHBvc2l0aW9uLCBhcyBkZXRlcm1pbmVkIGJ5CisgICAgICAgdwh3aAhoZQhlcghyZQhlXwhfaAhoaQhpcwhzdAh0bwhvcghyeQh5KAgoKQgpLiAgSWYgdGhlcmUgaXMgbm8gZW50cnkgdGhlcmUsIHJldHVybiBhIE4ITlUIVUwITEwITCBwb2ludGVyLgogCiAgICAgICAgXwhIXwhJXwhTXwhUXwhfXwhFXwhOXwhUXwhSXwhZIF8IKiBoCGhpCGlzCHN0CHRvCG9yCHJ5CHlfCF9nCGdlCGV0CHQgKF8IaV8Ibl8IdCBfCG9fCGZfCGZfCHNfCGVfCHQpCi0gICAgICAgUmV0dXJuIHRoZSBoaXN0b3J5IGVudHJ5IGF0IHBvc2l0aW9uIF8Ib18IZl8IZl8Ic18IZV8IdCwgc3RhcnRpbmcgZnJvbQotICAgICAgIGgIaGkIaXMIc3QIdG8Ib3IIcnkIeV8IX2IIYmEIYXMIc2UIZS4gIElmIHRoZXJlIGlzIG5vIGVudHJ5IHRoZXJlLCBvciBpZiBfCG9fCGZfCGZfCHNfCGVfCHQgaXMKLSAgICAgICBncmVhdGVyIHRoYW4gdGhlIGhpc3RvcnkgbGVuZ3RoLCByZXR1cm4gYSBOCE5VCFVMCExMCEwgcG9pbnRlci4KKyAgICAgICBSZXR1cm4gdGhlICBoaXN0b3J5ICBlbnRyeSAgYXQgIHBvc2l0aW9uICBfCG9fCGZfCGZfCHNfCGVfCHQsICBzdGFydGluZyAgZnJvbSAgaAhoaQhpcwhzLQgtCisgICAgICAgdAh0bwhvcghyeQh5XwhfYghiYQhhcwhzZQhlLiAgIElmICB0aGVyZSAgaXMgbm8gZW50cnkgdGhlcmUsIG9yIGlmIF8Ib18IZl8IZl8Ic18IZV8IdCBpcyBncmVhdGVyIHRoYW4KKyAgICAgICB0aGUgaGlzdG9yeSBsZW5ndGgsIHJldHVybiBhIE4ITlUIVUwITEwITCBwb2ludGVyLgorCisgICAgICAgXwh0XwhpXwhtXwhlXwhfXwh0IGgIaGkIaXMIc3QIdG8Ib3IIcnkIeV8IX2cIZ2UIZXQIdF8IX3QIdGkIaW0IbWUIZSAoXwhIXwhJXwhTXwhUXwhfXwhFXwhOXwhUXwhSXwhZIF8IKikKKyAgICAgICBSZXR1cm4gdGhlIHRpbWUgc3RhbXAgYXNzb2NpYXRlZCB3aXRoIHRoZSBoaXN0b3J5IGVudHJ5IHBhc3NlZCAgYXMgIHRoZQorICAgICAgIGFyZ3VtZW50LgogCiAgICAgICAgXwhpXwhuXwh0IGgIaGkIaXMIc3QIdG8Ib3IIcnkIeV8IX3QIdG8Ib3QIdGEIYWwIbF8IX2IIYnkIeXQIdGUIZXMIcyAoXwh2XwhvXwhpXwhkKQotICAgICAgIFJldHVybiB0aGUgIG51bWJlciAgb2YgIGJ5dGVzICB0aGF0ICB0aGUgIHByaW1hcnkgIGhpc3RvcnkKLSAgICAgICBlbnRyaWVzICBhcmUgIHVzaW5nLiAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBzdW0gb2YgdGhlCi0gICAgICAgbGVuZ3RocyBvZiBhbGwgdGhlIGxpbmVzIGluIHRoZSBoaXN0b3J5LgorICAgICAgIFJldHVybiAgdGhlIG51bWJlciBvZiBieXRlcyB0aGF0IHRoZSBwcmltYXJ5IGhpc3RvcnkgZW50cmllcyBhcmUgdXNpbmcuCisgICAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBzdW0gb2YgdGhlIGxlbmd0aHMgb2YgYWxsIHRoZSAgbGluZXMgIGluICB0aGUKKyAgICAgICBoaXN0b3J5LgogCiAKICAgIE0ITW8Ib3YIdmkIaW4IbmcIZyBBCEFyCHJvCG91CHVuCG5kCGQgdAh0aAhoZQhlIEgISGkIaXMIc3QIdG8Ib3IIcnkIeSBMCExpCGlzCHN0CHQKLSAgICAgICBUaGVzZSBmdW5jdGlvbnMgYWxsb3cgdGhlIGN1cnJlbnQgaW5kZXggaW50byAgdGhlICBoaXN0b3J5Ci0gICAgICAgbGlzdCB0byBiZSBzZXQgb3IgY2hhbmdlZC4KKyAgICAgICBUaGVzZSBmdW5jdGlvbnMgYWxsb3cgdGhlIGN1cnJlbnQgaW5kZXggaW50byB0aGUgaGlzdG9yeSBsaXN0IHRvIGJlIHNldAorICAgICAgIG9yIGNoYW5nZWQuCiAKICAgICAgICBfCGlfCG5fCHQgaAhoaQhpcwhzdAh0bwhvcghyeQh5XwhfcwhzZQhldAh0XwhfcAhwbwhvcwhzIChfCGlfCG5fCHQgXwhwXwhvXwhzKQotICAgICAgIFNldCAgdGhlICBjdXJyZW50IGhpc3Rvcnkgb2Zmc2V0IHRvIF8IcF8Ib18IcywgYW4gYWJzb2x1dGUgaW5kZXgKLSAgICAgICBpbnRvIHRoZSBsaXN0LiAgUmV0dXJucyAxIG9uIHN1Y2Nlc3MsIDAgIGlmICBfCHBfCG9fCHMgIGlzICBsZXNzCi0gICAgICAgdGhhbiB6ZXJvIG9yIGdyZWF0ZXIgdGhhbiB0aGUgbnVtYmVyIG9mIGhpc3RvcnkgZW50cmllcy4KKyAgICAgICBTZXQgdGhlIGN1cnJlbnQgaGlzdG9yeSBvZmZzZXQgdG8gXwhwXwhvXwhzLCBhbiBhYnNvbHV0ZSBpbmRleCBpbnRvIHRoZSBsaXN0LgorICAgICAgIFJldHVybnMgIDEgIG9uICBzdWNjZXNzLCAwIGlmIF8IcF8Ib18IcyBpcyBsZXNzIHRoYW4gemVybyBvciBncmVhdGVyIHRoYW4gdGhlCisgICAgICAgbnVtYmVyIG9mIGhpc3RvcnkgZW50cmllcy4KIAogICAgICAgIF8ISF8ISV8IU18IVF8IX18IRV8ITl8IVF8IUl8IWSBfCCogcAhwcghyZQhldgh2aQhpbwhvdQh1cwhzXwhfaAhoaQhpcwhzdAh0bwhvcghyeQh5IChfCHZfCG9fCGlfCGQpCi0gICAgICAgQmFjayB1cCB0aGUgY3VycmVudCBoaXN0b3J5IG9mZnNldCB0byB0aGUgcHJldmlvdXMgaGlzdG9yeQotICAgICAgIGVudHJ5LCBhbmQgcmV0dXJuIGEgcG9pbnRlciB0byB0aGF0IGVudHJ5LiAgSWYgdGhlcmUgaXMgbm8KLSAgICAgICBwcmV2aW91cyBlbnRyeSwgcmV0dXJuIGEgTghOVQhVTAhMTAhMIHBvaW50ZXIuCisgICAgICAgQmFjayB1cCB0aGUgY3VycmVudCBoaXN0b3J5IG9mZnNldCB0byB0aGUgcHJldmlvdXMgaGlzdG9yeSAgZW50cnksICBhbmQKKyAgICAgICByZXR1cm4gIGEgcG9pbnRlciB0byB0aGF0IGVudHJ5LiAgSWYgdGhlcmUgaXMgbm8gcHJldmlvdXMgZW50cnksIHJldHVybgorICAgICAgIGEgTghOVQhVTAhMTAhMIHBvaW50ZXIuCiAKICAgICAgICBfCEhfCElfCFNfCFRfCF9fCEVfCE5fCFRfCFJfCFkgXwgqIG4IbmUIZXgIeHQIdF8IX2gIaGkIaXMIc3QIdG8Ib3IIcnkIeSAoXwh2XwhvXwhpXwhkKQotICAgICAgIE1vdmUgIHRoZSAgY3VycmVudCBoaXN0b3J5IG9mZnNldCBmb3J3YXJkIHRvIHRoZSBuZXh0IGhpcy0KLSAgICAgICB0b3J5IGVudHJ5LCBhbmQgcmV0dXJuIHRoZSBhIHBvaW50ZXIgdG8gIHRoYXQgIGVudHJ5LiAgIElmCi0gICAgICAgdGhlcmUgaXMgbm8gbmV4dCBlbnRyeSwgcmV0dXJuIGEgTghOVQhVTAhMTAhMIHBvaW50ZXIuCisgICAgICAgTW92ZSB0aGUgY3VycmVudCBoaXN0b3J5IG9mZnNldCBmb3J3YXJkIHRvIHRoZSBuZXh0IGhpc3RvcnkgZW50cnksICBhbmQKKyAgICAgICByZXR1cm4gIHRoZSBhIHBvaW50ZXIgdG8gdGhhdCBlbnRyeS4gIElmIHRoZXJlIGlzIG5vIG5leHQgZW50cnksIHJldHVybgorICAgICAgIGEgTghOVQhVTAhMTAhMIHBvaW50ZXIuCiAKIAogICAgUwhTZQhlYQhhcghyYwhjaAhoaQhpbghuZwhnIHQIdGgIaGUIZSBICEhpCGlzCHN0CHRvCG9yCHJ5CHkgTAhMaQhpcwhzdAh0Ci0gICAgICAgVGhlc2UgIGZ1bmN0aW9ucyAgYWxsb3cgIHNlYXJjaGluZyBvZiB0aGUgaGlzdG9yeSBsaXN0IGZvcgotICAgICAgIGVudHJpZXMgY29udGFpbmluZyBhIHNwZWNpZmljIHN0cmluZy4gICBTZWFyY2hpbmcgIG1heSAgYmUKLSAgICAgICBwZXJmb3JtZWQgIGJvdGggZm9yd2FyZCBhbmQgYmFja3dhcmQgZnJvbSB0aGUgY3VycmVudCBoaXMtCi0gICAgICAgdG9yeSBwb3NpdGlvbi4gIFRoZSBzZWFyY2ggbWF5IGJlIF8IYV8Ibl8IY18IaF8Ib18Icl8IZV8IZCwgIG1lYW5pbmcgIHRoYXQKLSAgICAgICB0aGUgIHN0cmluZyAgbXVzdCAgbWF0Y2ggIGF0ICB0aGUgYmVnaW5uaW5nIG9mIHRoZSBoaXN0b3J5Ci0gICAgICAgZW50cnkuCisgICAgICAgVGhlc2UgZnVuY3Rpb25zIGFsbG93IHNlYXJjaGluZyBvZiB0aGUgaGlzdG9yeSBsaXN0ICBmb3IgIGVudHJpZXMgIGNvbi0KKyAgICAgICB0YWluaW5nIGEgc3BlY2lmaWMgc3RyaW5nLiAgU2VhcmNoaW5nIG1heSBiZSBwZXJmb3JtZWQgYm90aCBmb3J3YXJkIGFuZAorICAgICAgIGJhY2t3YXJkICBmcm9tICB0aGUgIGN1cnJlbnQgIGhpc3RvcnkgIHBvc2l0aW9uLiAgIFRoZSAgc2VhcmNoICBtYXkgIGJlCisgICAgICAgXwhhXwhuXwhjXwhoXwhvXwhyXwhlXwhkLCAgbWVhbmluZyAgdGhhdCAgdGhlIHN0cmluZyBtdXN0IG1hdGNoIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlCisgICAgICAgaGlzdG9yeSBlbnRyeS4KIAogICAgICAgIF8IaV8Ibl8IdCBoCGhpCGlzCHN0CHRvCG9yCHJ5CHlfCF9zCHNlCGVhCGFyCHJjCGNoCGggKF8IY18Ib18Ibl8Ic18IdCBfCGNfCGhfCGFfCHIgXwgqXwhzXwh0XwhyXwhpXwhuXwhnXwgsIF8IaV8Ibl8IdCBfCGRfCGlfCHJfCGVfCGNfCHRfCGlfCG9fCG4pCi0gICAgICAgU2VhcmNoIHRoZSBoaXN0b3J5IGZvciBfCHNfCHRfCHJfCGlfCG5fCGcsICBzdGFydGluZyAgYXQgIHRoZSAgY3VycmVudAotICAgICAgIGhpc3RvcnkgIG9mZnNldC4gICBJZiAgXwhkXwhpXwhyXwhlXwhjXwh0XwhpXwhvXwhuICBpcyBsZXNzIHRoYW4gMCwgdGhlbiB0aGUKLSAgICAgICBzZWFyY2ggaXMgdGhyb3VnaCBwcmV2aW91cyBlbnRyaWVzLCBvdGhlcndpc2UgdGhyb3VnaCBzdWItCi0gICAgICAgc2VxdWVudCAgZW50cmllcy4gICBJZiAgXwhzXwh0XwhyXwhpXwhuXwhnICBpcyBmb3VuZCwgdGhlbiB0aGUgY3VycmVudAotICAgICAgIGhpc3RvcnkgaW5kZXggaXMgc2V0IHRvIHRoYXQgaGlzdG9yeSBlbnRyeSwgYW5kIHRoZSAgdmFsdWUKLSAgICAgICByZXR1cm5lZCAgaXMgIHRoZSAgb2Zmc2V0ICBpbiAgdGhlIGxpbmUgb2YgdGhlIGVudHJ5IHdoZXJlCi0gICAgICAgXwhzXwh0XwhyXwhpXwhuXwhnIHdhcyBmb3VuZC4gIE90aGVyd2lzZSwgbm90aGluZyBpcyBjaGFuZ2VkLCBhbmQgYSAtMQotICAgICAgIGlzIHJldHVybmVkLgorICAgICAgIFNlYXJjaCB0aGUgaGlzdG9yeSBmb3IgXwhzXwh0XwhyXwhpXwhuXwhnLCBzdGFydGluZyBhdCB0aGUgY3VycmVudCBoaXN0b3J5ICBvZmZzZXQuCisgICAgICAgSWYgIF8IZF8IaV8Icl8IZV8IY18IdF8IaV8Ib18IbiAgaXMgIGxlc3MgIHRoYW4gIDAsICB0aGVuICB0aGUgc2VhcmNoIGlzIHRocm91Z2ggcHJldmlvdXMKKyAgICAgICBlbnRyaWVzLCBvdGhlcndpc2UgdGhyb3VnaCBzdWJzZXF1ZW50IGVudHJpZXMuICAgSWYgIF8Ic18IdF8Icl8IaV8Ibl8IZyAgaXMgIGZvdW5kLAorICAgICAgIHRoZW4gIHRoZSAgY3VycmVudCAgaGlzdG9yeSBpbmRleCBpcyBzZXQgdG8gdGhhdCBoaXN0b3J5IGVudHJ5LCBhbmQgdGhlCisgICAgICAgdmFsdWUgcmV0dXJuZWQgaXMgdGhlIG9mZnNldCBpbiB0aGUgbGluZSBvZiB0aGUgZW50cnkgd2hlcmUgXwhzXwh0XwhyXwhpXwhuXwhnICB3YXMKKyAgICAgICBmb3VuZC4gIE90aGVyd2lzZSwgbm90aGluZyBpcyBjaGFuZ2VkLCBhbmQgYSAtMSBpcyByZXR1cm5lZC4KIAotICAgICAgIF8IaV8Ibl8IdCAgIGgIaGkIaXMIc3QIdG8Ib3IIcnkIeV8IX3MIc2UIZWEIYXIIcmMIY2gIaF8IX3AIcHIIcmUIZWYIZmkIaXgIeCAgIChfCGNfCG9fCG5fCHNfCHQgICBfCGNfCGhfCGFfCHIgIF8IKl8Ic18IdF8Icl8IaV8Ibl8IZ18ILCAgXwhpXwhuXwh0CisgICAgICAgXwhpXwhuXwh0IGgIaGkIaXMIc3QIdG8Ib3IIcnkIeV8IX3MIc2UIZWEIYXIIcmMIY2gIaF8IX3AIcHIIcmUIZWYIZmkIaXgIeCAoXwhjXwhvXwhuXwhzXwh0IF8IY18IaF8IYV8IciBfCCpfCHNfCHRfCHJfCGlfCG5fCGdfCCwgXwhpXwhuXwh0IF8IZF8IaV8Icl8IZV8IY18IdF8IaV8Ib18IbikKKyAgICAgICBTZWFyY2ggIHRoZSBoaXN0b3J5IGZvciBfCHNfCHRfCHJfCGlfCG5fCGcsIHN0YXJ0aW5nIGF0IHRoZSBjdXJyZW50IGhpc3Rvcnkgb2Zmc2V0LgorICAgICAgIFRoZSBzZWFyY2ggaXMgYW5jaG9yZWQ6IG1hdGNoaW5nIGxpbmVzICBtdXN0ICBiZWdpbiAgd2l0aCAgXwhzXwh0XwhyXwhpXwhuXwhnLiAgIElmCisgICAgICAgXwhkXwhpXwhyXwhlXwhjXwh0XwhpXwhvXwhuICBpcyBsZXNzIHRoYW4gMCwgdGhlbiB0aGUgc2VhcmNoIGlzIHRocm91Z2ggcHJldmlvdXMgZW50cmllcywKKyAgICAgICBvdGhlcndpc2UgdGhyb3VnaCBzdWJzZXF1ZW50IGVudHJpZXMuICBJZiBfCHNfCHRfCHJfCGlfCG5fCGcgIGlzICBmb3VuZCwgIHRoZW4gIHRoZQorICAgICAgIGN1cnJlbnQgIGhpc3RvcnkgaW5kZXggaXMgc2V0IHRvIHRoYXQgZW50cnksIGFuZCB0aGUgcmV0dXJuIHZhbHVlIGlzIDAuCisgICAgICAgT3RoZXJ3aXNlLCBub3RoaW5nIGlzIGNoYW5nZWQsIGFuZCBhIC0xIGlzIHJldHVybmVkLgogCi0KLQotR05VIEhpc3RvcnkgNC4zICAgICAgICAgIDIwMDIgSmFudWFyeSAzMSAgICAgICAgICAgICAgICAgICAgICAgIDYKLQotCi0KLQotCi1ISVNUT1JZKDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSElTVE9SWSgzKQotCi0KLSAgICAgICBfCGRfCGlfCHJfCGVfCGNfCHRfCGlfCG9fCG4pCi0gICAgICAgU2VhcmNoIHRoZSBoaXN0b3J5IGZvciBfCHNfCHRfCHJfCGlfCG5fCGcsICBzdGFydGluZyAgYXQgIHRoZSAgY3VycmVudAotICAgICAgIGhpc3RvcnkgIG9mZnNldC4gICBUaGUgIHNlYXJjaCBpcyBhbmNob3JlZDogbWF0Y2hpbmcgbGluZXMKLSAgICAgICBtdXN0IGJlZ2luIHdpdGggXwhzXwh0XwhyXwhpXwhuXwhnLiAgSWYgXwhkXwhpXwhyXwhlXwhjXwh0XwhpXwhvXwhuIGlzIGxlc3MgdGhhbiAwLCB0aGVuCi0gICAgICAgdGhlICBzZWFyY2ggaXMgdGhyb3VnaCBwcmV2aW91cyBlbnRyaWVzLCBvdGhlcndpc2UgdGhyb3VnaAotICAgICAgIHN1YnNlcXVlbnQgZW50cmllcy4gIElmIF8Ic18IdF8Icl8IaV8Ibl8IZyBpcyBmb3VuZCwgdGhlbiB0aGUgIGN1cnJlbnQKLSAgICAgICBoaXN0b3J5ICBpbmRleCAgaXMgc2V0IHRvIHRoYXQgZW50cnksIGFuZCB0aGUgcmV0dXJuIHZhbHVlCi0gICAgICAgaXMgIDAuICAgT3RoZXJ3aXNlLCAgbm90aGluZyAgaXMgIGNoYW5nZWQsICBhbmQgIGEgIC0xICBpcwotICAgICAgIHJldHVybmVkLgotCi0gICAgICAgXwhpXwhuXwh0IGgIaGkIaXMIc3QIdG8Ib3IIcnkIeV8IX3MIc2UIZWEIYXIIcmMIY2gIaF8IX3AIcG8Ib3MIcyAoXwhjXwhvXwhuXwhzXwh0IF8IY18IaF8IYV8IciBfCCpfCHNfCHRfCHJfCGlfCG5fCGdfCCwgXwhpXwhuXwh0IF8IZF8IaV8Icl8IZV8IY18IdF8IaV8Ib18Ibl8ILAotICAgICAgIF8IaV8Ibl8IdCBfCHBfCG9fCHMpCi0gICAgICAgU2VhcmNoIGZvciBfCHNfCHRfCHJfCGlfCG5fCGcgaW4gdGhlIGhpc3RvcnkgbGlzdCwgc3RhcnRpbmcgYXQgXwhwXwhvXwhzLCBhbgotICAgICAgIGFic29sdXRlICBpbmRleCAgaW50byB0aGUgbGlzdC4gIElmIF8IZF8IaV8Icl8IZV8IY18IdF8IaV8Ib18IbiBpcyBuZWdhdGl2ZSwKLSAgICAgICB0aGUgc2VhcmNoIHByb2NlZWRzIGJhY2t3YXJkIGZyb20gXwhwXwhvXwhzLCBvdGhlcndpc2UgIGZvcndhcmQuCi0gICAgICAgUmV0dXJucyAgdGhlICBhYnNvbHV0ZSAgaW5kZXggb2YgdGhlIGhpc3RvcnkgZWxlbWVudCB3aGVyZQotICAgICAgIF8Ic18IdF8Icl8IaV8Ibl8IZyB3YXMgZm91bmQsIG9yIC0xIG90aGVyd2lzZS4KKyAgICAgICBfCGlfCG5fCHQgaAhoaQhpcwhzdAh0bwhvcghyeQh5XwhfcwhzZQhlYQhhcghyYwhjaAhoXwhfcAhwbwhvcwhzIChfCGNfCG9fCG5fCHNfCHQgXwhjXwhoXwhhXwhyIF8IKl8Ic18IdF8Icl8IaV8Ibl8IZ18ILCBfCGlfCG5fCHQgXwhkXwhpXwhyXwhlXwhjXwh0XwhpXwhvXwhuXwgsIF8IaV8Ibl8IdCBfCHBfCG9fCHMpCisgICAgICAgU2VhcmNoIGZvciBfCHNfCHRfCHJfCGlfCG5fCGcgaW4gdGhlIGhpc3RvcnkgbGlzdCwgc3RhcnRpbmcgIGF0ICBfCHBfCG9fCHMsICBhbiAgYWJzb2x1dGUKKyAgICAgICBpbmRleCAgaW50byAgdGhlICBsaXN0LiAgIElmIF8IZF8IaV8Icl8IZV8IY18IdF8IaV8Ib18IbiBpcyBuZWdhdGl2ZSwgdGhlIHNlYXJjaCBwcm9jZWVkcworICAgICAgIGJhY2t3YXJkIGZyb20gXwhwXwhvXwhzLCBvdGhlcndpc2UgZm9yd2FyZC4gIFJldHVybnMgdGhlICBhYnNvbHV0ZSAgaW5kZXggIG9mCisgICAgICAgdGhlIGhpc3RvcnkgZWxlbWVudCB3aGVyZSBfCHNfCHRfCHJfCGlfCG5fCGcgd2FzIGZvdW5kLCBvciAtMSBvdGhlcndpc2UuCiAKIAogICAgTQhNYQhhbghuYQhhZwhnaQhpbghuZwhnIHQIdGgIaGUIZSBICEhpCGlzCHN0CHRvCG9yCHJ5CHkgRghGaQhpbAhsZQhlCi0gICAgICAgVGhlIEhpc3RvcnkgbGlicmFyeSBjYW4gcmVhZCB0aGUgaGlzdG9yeSBmcm9tIGFuZCB3cml0ZSBpdAotICAgICAgIHRvICBhIGZpbGUuICBUaGlzIHNlY3Rpb24gZG9jdW1lbnRzIHRoZSBmdW5jdGlvbnMgZm9yIG1hbi0KLSAgICAgICBhZ2luZyBhIGhpc3RvcnkgZmlsZS4KKyAgICAgICBUaGUgIEhpc3RvcnkgIGxpYnJhcnkgY2FuIHJlYWQgdGhlIGhpc3RvcnkgZnJvbSBhbmQgd3JpdGUgaXQgdG8gYSBmaWxlLgorICAgICAgIFRoaXMgc2VjdGlvbiBkb2N1bWVudHMgdGhlIGZ1bmN0aW9ucyBmb3IgbWFuYWdpbmcgYSBoaXN0b3J5IGZpbGUuCiAKICAgICAgICBfCGlfCG5fCHQgcghyZQhlYQhhZAhkXwhfaAhoaQhpcwhzdAh0bwhvcghyeQh5IChfCGNfCG9fCG5fCHNfCHQgXwhjXwhoXwhhXwhyIF8IKl8IZl8IaV8IbF8IZV8Ibl8IYV8IbV8IZSkKLSAgICAgICBBZGQgdGhlIGNvbnRlbnRzIG9mIF8IZl8IaV8IbF8IZV8Ibl8IYV8IbV8IZSB0byB0aGUgaGlzdG9yeSBsaXN0LCAgYSAgbGluZQotICAgICAgIGF0ICBhICB0aW1lLiAgIElmIF8IZl8IaV8IbF8IZV8Ibl8IYV8IbV8IZSBpcyBOCE5VCFVMCExMCEwsIHRoZW4gcmVhZCBmcm9tIF8Ifl8IL18ILl8IaF8IaV8Ic18ILQotICAgICAgIF8IdF8Ib18Icl8IeS4gIFJldHVybnMgMCBpZiBzdWNjZXNzZnVsLCBvciBlCGVyCHJyCHJuCG5vCG8gaWYgbm90LgorICAgICAgIEFkZCB0aGUgY29udGVudHMgb2YgXwhmXwhpXwhsXwhlXwhuXwhhXwhtXwhlIHRvIHRoZSBoaXN0b3J5IGxpc3QsIGEgbGluZSBhdCBhIHRpbWUuICBJZgorICAgICAgIF8IZl8IaV8IbF8IZV8Ibl8IYV8IbV8IZSAgaXMgTghOVQhVTAhMTAhMLCB0aGVuIHJlYWQgZnJvbSBfCH5fCC9fCC5fCGhfCGlfCHNfCHRfCG9fCHJfCHkuICBSZXR1cm5zIDAgaWYgc3VjY2Vzc2Z1bCwKKyAgICAgICBvciBlCGVyCHJyCHJuCG5vCG8gaWYgbm90LgogCi0gICAgICAgXwhpXwhuXwh0IHIIcmUIZWEIYWQIZF8IX2gIaGkIaXMIc3QIdG8Ib3IIcnkIeV8IX3IIcmEIYW4IbmcIZ2UIZSAoXwhjXwhvXwhuXwhzXwh0IF8IY18IaF8IYV8IciAgXwgqXwhmXwhpXwhsXwhlXwhuXwhhXwhtXwhlXwgsICBfCGlfCG5fCHQgIF8IZl8Icl8Ib18IbV8ILAotICAgICAgIF8IaV8Ibl8IdCBfCHRfCG8pCi0gICAgICAgUmVhZCAgYSAgcmFuZ2UgIG9mIGxpbmVzIGZyb20gXwhmXwhpXwhsXwhlXwhuXwhhXwhtXwhlLCBhZGRpbmcgdGhlbSB0byB0aGUKLSAgICAgICBoaXN0b3J5IGxpc3QuICBTdGFydCByZWFkaW5nIGF0IGxpbmUgXwhmXwhyXwhvXwhtIGFuZCBlbmQgIGF0ICBfCHRfCG8uCi0gICAgICAgSWYgIF8IZl8Icl8Ib18IbSAgaXMgIHplcm8sIHN0YXJ0IGF0IHRoZSBiZWdpbm5pbmcuICBJZiBfCHRfCG8gaXMgbGVzcwotICAgICAgIHRoYW4gXwhmXwhyXwhvXwhtLCB0aGVuIHJlYWQgdW50aWwgdGhlIGVuZCBvZiB0aGUgZmlsZS4gIElmICBfCGZfCGlfCGxfCGVfCC0KLSAgICAgICBfCG5fCGFfCG1fCGUgIGlzICBOCE5VCFVMCExMCEwsICB0aGVuICByZWFkIGZyb20gXwh+XwgvXwguXwhoXwhpXwhzXwh0XwhvXwhyXwh5LiAgUmV0dXJucyAwIGlmCisgICAgICAgXwhpXwhuXwh0IHIIcmUIZWEIYWQIZF8IX2gIaGkIaXMIc3QIdG8Ib3IIcnkIeV8IX3IIcmEIYW4IbmcIZ2UIZSAoXwhjXwhvXwhuXwhzXwh0IF8IY18IaF8IYV8IciBfCCpfCGZfCGlfCGxfCGVfCG5fCGFfCG1fCGVfCCwgXwhpXwhuXwh0IF8IZl8Icl8Ib18IbV8ILCBfCGlfCG5fCHQgXwh0XwhvKQorICAgICAgIFJlYWQgYSByYW5nZSBvZiBsaW5lcyBmcm9tIF8IZl8IaV8IbF8IZV8Ibl8IYV8IbV8IZSwgYWRkaW5nIHRoZW0gdG8gdGhlICBoaXN0b3J5ICBsaXN0LgorICAgICAgIFN0YXJ0ICByZWFkaW5nICBhdCAgbGluZSBfCGZfCHJfCG9fCG0gYW5kIGVuZCBhdCBfCHRfCG8uICBJZiBfCGZfCHJfCG9fCG0gaXMgemVybywgc3RhcnQgYXQKKyAgICAgICB0aGUgYmVnaW5uaW5nLiAgSWYgXwh0XwhvIGlzIGxlc3MgdGhhbiBfCGZfCHJfCG9fCG0sIHRoZW4gcmVhZCB1bnRpbCB0aGUgZW5kIG9mIHRoZQorICAgICAgIGZpbGUuICAgSWYgIF8IZl8IaV8IbF8IZV8Ibl8IYV8IbV8IZSAgaXMgTghOVQhVTAhMTAhMLCB0aGVuIHJlYWQgZnJvbSBfCH5fCC9fCC5fCGhfCGlfCHNfCHRfCG9fCHJfCHkuICBSZXR1cm5zIDAgaWYKICAgICAgICBzdWNjZXNzZnVsLCBvciBlCGVyCHJyCHJuCG5vCG8gaWYgbm90LgogCiAgICAgICAgXwhpXwhuXwh0IHcId3IIcmkIaXQIdGUIZV8IX2gIaGkIaXMIc3QIdG8Ib3IIcnkIeSAoXwhjXwhvXwhuXwhzXwh0IF8IY18IaF8IYV8IciBfCCpfCGZfCGlfCGxfCGVfCG5fCGFfCG1fCGUpCi0gICAgICAgV3JpdGUgdGhlIGN1cnJlbnQgaGlzdG9yeSB0byBfCGZfCGlfCGxfCGVfCG5fCGFfCG1fCGUsICBvdmVyd3JpdGluZyAgXwhmXwhpXwhsXwhlXwgtCi0gICAgICAgXwhuXwhhXwhtXwhlICBpZiAgbmVjZXNzYXJ5LiAgIElmIF8IZl8IaV8IbF8IZV8Ibl8IYV8IbV8IZSBpcyBOCE5VCFVMCExMCEwsIHRoZW4gd3JpdGUgdGhlCi0gICAgICAgaGlzdG9yeSBsaXN0IHRvIF8Ifl8IL18ILl8IaF8IaV8Ic18IdF8Ib18Icl8IeS4gICBSZXR1cm5zICAwICBvbiAgc3VjY2VzcywgIG9yCi0gICAgICAgZQhlcghycghybghubwhvIG9uIGEgcmVhZCBvciB3cml0ZSBlcnJvci4KKyAgICAgICBXcml0ZSB0aGUgY3VycmVudCBoaXN0b3J5IHRvIF8IZl8IaV8IbF8IZV8Ibl8IYV8IbV8IZSwgb3ZlcndyaXRpbmcgXwhmXwhpXwhsXwhlXwhuXwhhXwhtXwhlICBpZiAgbmVjZXMtCisgICAgICAgc2FyeS4gICBJZiBfCGZfCGlfCGxfCGVfCG5fCGFfCG1fCGUgaXMgTghOVQhVTAhMTAhMLCB0aGVuIHdyaXRlIHRoZSBoaXN0b3J5IGxpc3QgdG8gXwh+XwgvXwguXwhoXwhpXwhzXwh0XwhvXwhyXwh5LgorICAgICAgIFJldHVybnMgMCBvbiBzdWNjZXNzLCBvciBlCGVyCHJyCHJuCG5vCG8gb24gYSByZWFkIG9yIHdyaXRlIGVycm9yLgogCiAKICAgICAgICBfCGlfCG5fCHQgYQhhcAhwcAhwZQhlbghuZAhkXwhfaAhoaQhpcwhzdAh0bwhvcghyeQh5IChfCGlfCG5fCHQgXwhuXwhlXwhsXwhlXwhtXwhlXwhuXwh0XwhzXwgsIF8IY18Ib18Ibl8Ic18IdCBfCGNfCGhfCGFfCHIgXwgqXwhmXwhpXwhsXwhlXwhuXwhhXwhtXwhlKQotICAgICAgIEFwcGVuZCB0aGUgbGFzdCBfCG5fCGVfCGxfCGVfCG1fCGVfCG5fCHRfCHMgb2YgdGhlIGhpc3RvcnkgbGlzdCB0byBfCGZfCGlfCGxfCGVfCG5fCGFfCG1fCGUuCi0gICAgICAgSWYgXwhmXwhpXwhsXwhlXwhuXwhhXwhtXwhlIGlzIE4ITlUIVUwITEwITCwgdGhlbiBhcHBlbmQgdG8gXwh+XwgvXwguXwhoXwhpXwhzXwh0XwhvXwhyXwh5LiAgUmV0dXJucyAwCi0gICAgICAgb24gc3VjY2Vzcywgb3IgZQhlcghycghybghubwhvIG9uIGEgcmVhZCBvciB3cml0ZSBlcnJvci4KKyAgICAgICBBcHBlbmQgdGhlIGxhc3QgXwhuXwhlXwhsXwhlXwhtXwhlXwhuXwh0XwhzIG9mIHRoZSBoaXN0b3J5IGxpc3QgdG8gXwhmXwhpXwhsXwhlXwhuXwhhXwhtXwhlLiAgSWYgXwhmXwhpXwhsXwhlXwhuXwhhXwhtXwhlCisgICAgICAgaXMgIE4ITlUIVUwITEwITCwgdGhlbiBhcHBlbmQgdG8gXwh+XwgvXwguXwhoXwhpXwhzXwh0XwhvXwhyXwh5LiAgUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIG9yIGUIZXIIcnIIcm4Ibm8IbyBvbgorICAgICAgIGEgcmVhZCBvciB3cml0ZSBlcnJvci4KIAotICAgICAgIF8IaV8Ibl8IdCAgIGgIaGkIaXMIc3QIdG8Ib3IIcnkIeV8IX3QIdHIIcnUIdW4IbmMIY2EIYXQIdGUIZV8IX2YIZmkIaWwIbGUIZSAgKF8IY18Ib18Ibl8Ic18IdCAgXwhjXwhoXwhhXwhyICBfCCpfCGZfCGlfCGxfCGVfCG5fCGFfCG1fCGVfCCwgIF8IaV8Ibl8IdAotICAgICAgIF8Ibl8IbF8IaV8Ibl8IZV8IcykKLSAgICAgICBUcnVuY2F0ZSB0aGUgaGlzdG9yeSBmaWxlIF8IZl8IaV8IbF8IZV8Ibl8IYV8IbV8IZSwgbGVhdmluZyBvbmx5IHRoZSAgbGFzdAotICAgICAgIF8Ibl8IbF8IaV8Ibl8IZV8IcyAgbGluZXMuICAgSWYgIF8IZl8IaV8IbF8IZV8Ibl8IYV8IbV8IZSAgaXMgTghOVQhVTAhMTAhMLCB0aGVuIF8Ifl8IL18ILl8IaF8IaV8Ic18IdF8Ib18Icl8IeSBpcwotCi0KLQotR05VIEhpc3RvcnkgNC4zICAgICAgICAgIDIwMDIgSmFudWFyeSAzMSAgICAgICAgICAgICAgICAgICAgICAgIDcKLQotCi0KLQotCi1ISVNUT1JZKDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSElTVE9SWSgzKQotCi0KLSAgICAgICB0cnVuY2F0ZWQuICBSZXR1cm5zIDAgb24gc3VjY2Vzcywgb3IgZQhlcghycghybghubwhvIG9uIGZhaWx1cmUuCisgICAgICAgXwhpXwhuXwh0IGgIaGkIaXMIc3QIdG8Ib3IIcnkIeV8IX3QIdHIIcnUIdW4IbmMIY2EIYXQIdGUIZV8IX2YIZmkIaWwIbGUIZSAoXwhjXwhvXwhuXwhzXwh0IF8IY18IaF8IYV8IciBfCCpfCGZfCGlfCGxfCGVfCG5fCGFfCG1fCGVfCCwgXwhpXwhuXwh0IF8Ibl8IbF8IaV8Ibl8IZV8IcykKKyAgICAgICBUcnVuY2F0ZSB0aGUgaGlzdG9yeSBmaWxlIF8IZl8IaV8IbF8IZV8Ibl8IYV8IbV8IZSwgbGVhdmluZyBvbmx5IHRoZSBsYXN0IF8Ibl8IbF8IaV8Ibl8IZV8IcyBsaW5lcy4KKyAgICAgICBJZiAgXwhmXwhpXwhsXwhlXwhuXwhhXwhtXwhlICBpcyBOCE5VCFVMCExMCEwsIHRoZW4gXwh+XwgvXwguXwhoXwhpXwhzXwh0XwhvXwhyXwh5IGlzIHRydW5jYXRlZC4gIFJldHVybnMgMCBvbiBzdWMtCisgICAgICAgY2Vzcywgb3IgZQhlcghycghybghubwhvIG9uIGZhaWx1cmUuCiAKIAogICAgSAhIaQhpcwhzdAh0bwhvcghyeQh5IEUIRXgIeHAIcGEIYW4IbnMIc2kIaW8Ib24IbgogICAgICAgIFRoZXNlIGZ1bmN0aW9ucyBpbXBsZW1lbnQgaGlzdG9yeSBleHBhbnNpb24uCiAKICAgICAgICBfCGlfCG5fCHQgaAhoaQhpcwhzdAh0bwhvcghyeQh5XwhfZQhleAh4cAhwYQhhbghuZAhkIChfCGNfCGhfCGFfCHIgXwgqXwhzXwh0XwhyXwhpXwhuXwhnXwgsIF8IY18IaF8IYV8IciBfCCpfCCpfCG9fCHVfCHRfCHBfCHVfCHQpCi0gICAgICAgRXhwYW5kIF8Ic18IdF8Icl8IaV8Ibl8IZywgcGxhY2luZyB0aGUgcmVzdWx0IGludG8gXwhvXwh1Xwh0XwhwXwh1Xwh0LCAgYSAgcG9pbnRlcgotICAgICAgIHRvIGEgc3RyaW5nLiAgUmV0dXJuczoKLSAgICAgICAgICAgICAgMCAgICAgIElmIG5vIGV4cGFuc2lvbnMgdG9vayBwbGFjZSAob3IsIGlmIHRoZSBvbmx5Ci0gICAgICAgICAgICAgICAgICAgICBjaGFuZ2UgaW4gdGhlIHRleHQgd2FzIHRoZSByZW1vdmFsIG9mIGVzY2FwZQotICAgICAgICAgICAgICAgICAgICAgY2hhcmFjdGVycyAgcHJlY2VkaW5nICB0aGUgaGlzdG9yeSBleHBhbnNpb24KLSAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3Rlcik7CisgICAgICAgRXhwYW5kIF8Ic18IdF8Icl8IaV8Ibl8IZywgcGxhY2luZyB0aGUgcmVzdWx0IGludG8gXwhvXwh1Xwh0XwhwXwh1Xwh0LCBhIHBvaW50ZXIgdG8gIGEgIHN0cmluZy4KKyAgICAgICBSZXR1cm5zOgorICAgICAgICAgICAgICAwICAgICAgSWYgIG5vICBleHBhbnNpb25zICB0b29rIHBsYWNlIChvciwgaWYgdGhlIG9ubHkgY2hhbmdlIGluCisgICAgICAgICAgICAgICAgICAgICB0aGUgdGV4dCB3YXMgdGhlIHJlbW92YWwgb2YgZXNjYXBlICBjaGFyYWN0ZXJzICBwcmVjZWRpbmcKKyAgICAgICAgICAgICAgICAgICAgIHRoZSBoaXN0b3J5IGV4cGFuc2lvbiBjaGFyYWN0ZXIpOwogICAgICAgICAgICAgICAxICAgICAgaWYgZXhwYW5zaW9ucyBkaWQgdGFrZSBwbGFjZTsKICAgICAgICAgICAgICAgLTEgICAgIGlmIHRoZXJlIHdhcyBhbiBlcnJvciBpbiBleHBhbnNpb247Ci0gICAgICAgICAgICAgIDIgICAgICBpZiB0aGUgcmV0dXJuZWQgbGluZSAgc2hvdWxkICBiZSAgZGlzcGxheWVkLAotICAgICAgICAgICAgICAgICAgICAgYnV0IG5vdCBleGVjdXRlZCwgYXMgd2l0aCB0aGUgOgg6cAhwIG1vZGlmaWVyLgotICAgICAgIElmICBhbiAgZXJyb3Igb2N1cnJlZCBpbiBleHBhbnNpb24sIHRoZW4gXwhvXwh1Xwh0XwhwXwh1Xwh0IGNvbnRhaW5zIGEKLSAgICAgICBkZXNjcmlwdGl2ZSBlcnJvciBtZXNzYWdlLgorICAgICAgICAgICAgICAyICAgICAgaWYgIHRoZSAgcmV0dXJuZWQgIGxpbmUgc2hvdWxkIGJlIGRpc3BsYXllZCwgYnV0IG5vdCBleGUtCisgICAgICAgICAgICAgICAgICAgICBjdXRlZCwgYXMgd2l0aCB0aGUgOgg6cAhwIG1vZGlmaWVyLgorICAgICAgIElmIGFuIGVycm9yIG9jdXJyZWQgaW4gZXhwYW5zaW9uLCB0aGVuIF8Ib18IdV8IdF8IcF8IdV8IdCAgY29udGFpbnMgIGEgIGRlc2NyaXB0aXZlCisgICAgICAgZXJyb3IgbWVzc2FnZS4KIAotICAgICAgIF8IY18IaF8IYV8IciBfCCogZwhnZQhldAh0XwhfaAhoaQhpcwhzdAh0bwhvcghyeQh5XwhfZQhldgh2ZQhlbghudAh0IChfCGNfCG9fCG5fCHNfCHQgXwhjXwhoXwhhXwhyIF8IKl8Ic18IdF8Icl8IaV8Ibl8IZ18ILCBfCGlfCG5fCHQgXwgqXwhjXwhpXwhuXwhkXwhlXwh4XwgsCi0gICAgICAgXwhpXwhuXwh0IF8IcV8IY18IaF8IYV8IcikKLSAgICAgICBSZXR1cm5zICB0aGUgdGV4dCBvZiB0aGUgaGlzdG9yeSBldmVudCBiZWdpbm5pbmcgYXQgXwhzXwh0XwhyXwhpXwhuXwhnCi0gICAgICAgKyBfCCpfCGNfCGlfCG5fCGRfCGVfCHguICBfCCpfCGNfCGlfCG5fCGRfCGVfCHggaXMgbW9kaWZpZWQgIHRvICBwb2ludCAgdG8gIGFmdGVyICB0aGUKLSAgICAgICBldmVudCAgc3BlY2lmaWVyLiAgQXQgZnVuY3Rpb24gZW50cnksIF8IY18IaV8Ibl8IZF8IZV8IeCBwb2ludHMgdG8gdGhlCi0gICAgICAgaW5kZXggaW50byBfCHNfCHRfCHJfCGlfCG5fCGcgd2hlcmUgdGhlICBoaXN0b3J5ICBldmVudCAgc3BlY2lmaWNhdGlvbgotICAgICAgIGJlZ2lucy4gICBfCHFfCGNfCGhfCGFfCHIgIGlzIGEgY2hhcmFjdGVyIHRoYXQgaXMgYWxsb3dlZCB0byBlbmQgdGhlCi0gICAgICAgZXZlbnQgc3BlY2lmaWNhdGlvbiBpbiBhZGRpdGlvbiB0byB0aGUgIGBgbm9ybWFsJycgIHRlcm1pLQotICAgICAgIG5hdGluZyBjaGFyYWN0ZXJzLgorICAgICAgIF8IY18IaF8IYV8IciBfCCogZwhnZQhldAh0XwhfaAhoaQhpcwhzdAh0bwhvcghyeQh5XwhfZQhldgh2ZQhlbghudAh0IChfCGNfCG9fCG5fCHNfCHQgXwhjXwhoXwhhXwhyIF8IKl8Ic18IdF8Icl8IaV8Ibl8IZ18ILCBfCGlfCG5fCHQgXwgqXwhjXwhpXwhuXwhkXwhlXwh4XwgsIF8IaV8Ibl8IdCBfCHFfCGNfCGhfCGFfCHIpCisgICAgICAgUmV0dXJucyAgdGhlICB0ZXh0ICBvZiB0aGUgaGlzdG9yeSBldmVudCBiZWdpbm5pbmcgYXQgXwhzXwh0XwhyXwhpXwhuXwhnICsgXwgqXwhjXwhpXwhuXwhkXwhlXwh4LgorICAgICAgIF8IKl8IY18IaV8Ibl8IZF8IZV8IeCBpcyBtb2RpZmllZCB0byBwb2ludCB0byBhZnRlciB0aGUgZXZlbnQgc3BlY2lmaWVyLiAgQXQgZnVuY3Rpb24KKyAgICAgICBlbnRyeSwgIF8IY18IaV8Ibl8IZF8IZV8IeCAgcG9pbnRzIHRvIHRoZSBpbmRleCBpbnRvIF8Ic18IdF8Icl8IaV8Ibl8IZyB3aGVyZSB0aGUgaGlzdG9yeSBldmVudAorICAgICAgIHNwZWNpZmljYXRpb24gYmVnaW5zLiAgXwhxXwhjXwhoXwhhXwhyIGlzIGEgY2hhcmFjdGVyIHRoYXQgaXMgYWxsb3dlZCB0byBlbmQgIHRoZQorICAgICAgIGV2ZW50ICBzcGVjaWZpY2F0aW9uICBpbiBhZGRpdGlvbiB0byB0aGUgYGBub3JtYWwnJyB0ZXJtaW5hdGluZyBjaGFyYWMtCisgICAgICAgdGVycy4KIAogICAgICAgIF8IY18IaF8IYV8IciBfCCpfCCogaAhoaQhpcwhzdAh0bwhvcghyeQh5XwhfdAh0bwhvawhrZQhlbghuaQhpegh6ZQhlIChfCGNfCG9fCG5fCHNfCHQgXwhjXwhoXwhhXwhyIF8IKl8Ic18IdF8Icl8IaV8Ibl8IZykKLSAgICAgICBSZXR1cm4gIGFuICBhcnJheSAgb2YgdG9rZW5zIHBhcnNlZCBvdXQgb2YgXwhzXwh0XwhyXwhpXwhuXwhnLCBtdWNoIGFzCi0gICAgICAgdGhlIHNoZWxsIG1pZ2h0LiAgVGhlIHRva2VucyBhcmUgc3BsaXQgb24gIHRoZSAgY2hhcmFjdGVycwotICAgICAgIGluIHRoZSBoCGhpCGlzCHN0CHRvCG9yCHJ5CHlfCF93CHdvCG9yCHJkCGRfCF9kCGRlCGVsCGxpCGltCG1pCGl0CHRlCGVyCHJzCHMgdmFyaWFibGUsIGFuZCBzaGVsbCBxdW90aW5nCi0gICAgICAgY29udmVudGlvbnMgYXJlIG9iZXllZC4KKyAgICAgICBSZXR1cm4gYW4gYXJyYXkgb2YgdG9rZW5zIHBhcnNlZCBvdXQgIG9mICBfCHNfCHRfCHJfCGlfCG5fCGcsICBtdWNoICBhcyAgdGhlICBzaGVsbAorICAgICAgIG1pZ2h0LiAgICBUaGUgICB0b2tlbnMgICBhcmUgIHNwbGl0ICBvbiAgdGhlICBjaGFyYWN0ZXJzICBpbiAgdGhlICBoCGhpCGlzCHMtCC0KKyAgICAgICB0CHRvCG9yCHJ5CHlfCF93CHdvCG9yCHJkCGRfCF9kCGRlCGVsCGxpCGltCG1pCGl0CHRlCGVyCHJzCHMgIHZhcmlhYmxlLCAgYW5kICBzaGVsbCAgcXVvdGluZyAgY29udmVudGlvbnMgICBhcmUKKyAgICAgICBvYmV5ZWQuCiAKLSAgICAgICBfCGNfCGhfCGFfCHIgXwgqIGgIaGkIaXMIc3QIdG8Ib3IIcnkIeV8IX2EIYXIIcmcIZ18IX2UIZXgIeHQIdHIIcmEIYWMIY3QIdCAoXwhpXwhuXwh0ICBfCGZfCGlfCHJfCHNfCHRfCCwgIF8IaV8Ibl8IdCAgXwhsXwhhXwhzXwh0XwgsICBfCGNfCG9fCG5fCHNfCHQKLSAgICAgICBfCGNfCGhfCGFfCHIgXwgqXwhzXwh0XwhyXwhpXwhuXwhnKQotICAgICAgIEV4dHJhY3QgIGEgIHN0cmluZyBzZWdtZW50IGNvbnNpc3Rpbmcgb2YgdGhlIF8IZl8IaV8Icl8Ic18IdCB0aHJvdWdoCi0gICAgICAgXwhsXwhhXwhzXwh0IGFyZ3VtZW50cyBwcmVzZW50IGluICBfCHNfCHRfCHJfCGlfCG5fCGcuICAgQXJndW1lbnRzICBhcmUgIHNwbGl0Ci0gICAgICAgdXNpbmcgaAhoaQhpcwhzdAh0bwhvcghyeQh5XwhfdAh0bwhvawhrZQhlbghuaQhpegh6ZQhlKAgoKQgpLgorICAgICAgIF8IY18IaF8IYV8IciBfCCogaAhoaQhpcwhzdAh0bwhvcghyeQh5XwhfYQhhcghyZwhnXwhfZQhleAh4dAh0cghyYQhhYwhjdAh0IChfCGlfCG5fCHQgXwhmXwhpXwhyXwhzXwh0XwgsIF8IaV8Ibl8IdCBfCGxfCGFfCHNfCHRfCCwgXwhjXwhvXwhuXwhzXwh0IF8IY18IaF8IYV8IciBfCCpfCHNfCHRfCHJfCGlfCG5fCGcpCisgICAgICAgRXh0cmFjdCBhIHN0cmluZyBzZWdtZW50IGNvbnNpc3Rpbmcgb2YgdGhlIF8IZl8IaV8Icl8Ic18IdCB0aHJvdWdoIF8IbF8IYV8Ic18IdCBhcmd1bWVudHMKKyAgICAgICBwcmVzZW50IGluIF8Ic18IdF8Icl8IaV8Ibl8IZy4gIEFyZ3VtZW50cyBhcmUgc3BsaXQgdXNpbmcgaAhoaQhpcwhzdAh0bwhvcghyeQh5XwhfdAh0bwhvawhrZQhlbghuaQhpegh6ZQhlKAgoKQgpLgogCiAKICAgIEgISGkIaXMIc3QIdG8Ib3IIcnkIeSBWCFZhCGFyCHJpCGlhCGFiCGJsCGxlCGVzCHMKLSAgICAgICBUaGlzICBzZWN0aW9uICBkZXNjcmliZXMgIHRoZSBleHRlcm5hbGx5LXZpc2libGUgdmFyaWFibGVzCi0gICAgICAgZXhwb3J0ZWQgYnkgdGhlIEdOVSBIaXN0b3J5IExpYnJhcnkuCisgICAgICAgVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyB0aGUgZXh0ZXJuYWxseS12aXNpYmxlIHZhcmlhYmxlcyBleHBvcnRlZCBieSB0aGUKKyAgICAgICBHTlUgSGlzdG9yeSBMaWJyYXJ5LgogCiAgICAgICAgXwhpXwhuXwh0IGgIaGkIaXMIc3QIdG8Ib3IIcnkIeV8IX2IIYmEIYXMIc2UIZQogICAgICAgIFRoZSBsb2dpY2FsIG9mZnNldCBvZiB0aGUgZmlyc3QgZW50cnkgaW4gdGhlIGhpc3RvcnkgbGlzdC4KIAogICAgICAgIF8IaV8Ibl8IdCBoCGhpCGlzCHN0CHRvCG9yCHJ5CHlfCF9sCGxlCGVuCG5nCGd0CHRoCGgKLSAgICAgICBUaGUgIG51bWJlciAgb2YgIGVudHJpZXMgIGN1cnJlbnRseSAgc3RvcmVkIGluIHRoZSBoaXN0b3J5Ci0gICAgICAgbGlzdC4KLQotCi0KLQotR05VIEhpc3RvcnkgNC4zICAgICAgICAgIDIwMDIgSmFudWFyeSAzMSAgICAgICAgICAgICAgICAgICAgICAgIDgKLQotCi0KLQotCi1ISVNUT1JZKDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSElTVE9SWSgzKQotCisgICAgICAgVGhlIG51bWJlciBvZiBlbnRyaWVzIGN1cnJlbnRseSBzdG9yZWQgaW4gdGhlIGhpc3RvcnkgbGlzdC4KIAogICAgICAgIF8IaV8Ibl8IdCBoCGhpCGlzCHN0CHRvCG9yCHJ5CHlfCF9tCG1hCGF4CHhfCF9lCGVuCG50CHRyCHJpCGllCGVzCHMKLSAgICAgICBUaGUgbWF4aW11bSBudW1iZXIgIG9mICBoaXN0b3J5ICBlbnRyaWVzLiAgIFRoaXMgIG11c3QgIGJlCi0gICAgICAgY2hhbmdlZCB1c2luZyBzCHN0CHRpCGlmCGZsCGxlCGVfCF9oCGhpCGlzCHN0CHRvCG9yCHJ5CHkoCCgpCCkuCisgICAgICAgVGhlIG1heGltdW0gbnVtYmVyIG9mIGhpc3RvcnkgZW50cmllcy4gIFRoaXMgbXVzdCBiZSBjaGFuZ2VkIHVzaW5nIHMIc3QIdGkIaS0ILQorICAgICAgIGYIZmwIbGUIZV8IX2gIaGkIaXMIc3QIdG8Ib3IIcnkIeSgIKCkIKS4KKworICAgICAgIF8IaV8Ibl8IdCBoCGhpCGlzCHN0CHRvCG9yCHJ5CHlfCF93CHdyCHJpCGl0CHRlCGVfCF90CHRpCGltCG1lCGVzCHN0CHRhCGFtCG1wCHBzCHMKKyAgICAgICBJZiBub24temVybywgdGltZXN0YW1wcyBhcmUgd3JpdHRlbiB0byB0aGUgaGlzdG9yeSBmaWxlLCBzbyB0aGV5IGNhbiBiZQorICAgICAgIHByZXNlcnZlZCAgYmV0d2VlbiAgc2Vzc2lvbnMuICAgVGhlICBkZWZhdWx0ICB2YWx1ZSAgaXMgMCwgbWVhbmluZyB0aGF0CisgICAgICAgdGltZXN0YW1wcyBhcmUgbm90IHNhdmVkLgogCiAgICAgICAgXwhjXwhoXwhhXwhyIGgIaGkIaXMIc3QIdG8Ib3IIcnkIeV8IX2UIZXgIeHAIcGEIYW4IbnMIc2kIaW8Ib24Ibl8IX2MIY2gIaGEIYXIIcgotICAgICAgIFRoZSAgY2hhcmFjdGVyICB0aGF0ICBpbnRyb2R1Y2VzICBhICBoaXN0b3J5ICBldmVudC4gICBUaGUKLSAgICAgICBkZWZhdWx0IGlzICEIIS4gIFNldHRpbmcgdGhpcyB0byAwIGluaGliaXRzICBoaXN0b3J5ICBleHBhbi0KLSAgICAgICBzaW9uLgorICAgICAgIFRoZSBjaGFyYWN0ZXIgdGhhdCBpbnRyb2R1Y2VzIGEgaGlzdG9yeSBldmVudC4gIFRoZSBkZWZhdWx0IGlzICEIIS4gIFNldC0KKyAgICAgICB0aW5nIHRoaXMgdG8gMCBpbmhpYml0cyBoaXN0b3J5IGV4cGFuc2lvbi4KIAogICAgICAgIF8IY18IaF8IYV8IciBoCGhpCGlzCHN0CHRvCG9yCHJ5CHlfCF9zCHN1CHViCGJzCHN0CHRfCF9jCGNoCGhhCGFyCHIKLSAgICAgICBUaGUgIGNoYXJhY3RlciAgdGhhdCBpbnZva2VzIHdvcmQgc3Vic3RpdHV0aW9uIGlmIGZvdW5kIGF0Ci0gICAgICAgdGhlIHN0YXJ0IG9mIGEgbGluZS4gIFRoZSBkZWZhdWx0IGlzIF4IXi4KKyAgICAgICBUaGUgY2hhcmFjdGVyIHRoYXQgaW52b2tlcyB3b3JkIHN1YnN0aXR1dGlvbiBpZiBmb3VuZCBhdCB0aGUgc3RhcnQgb2YgYQorICAgICAgIGxpbmUuICBUaGUgZGVmYXVsdCBpcyBeCF4uCiAKICAgICAgICBfCGNfCGhfCGFfCHIgaAhoaQhpcwhzdAh0bwhvcghyeQh5XwhfYwhjbwhvbQhtbQhtZQhlbghudAh0XwhfYwhjaAhoYQhhcghyCi0gICAgICAgRHVyaW5nIHRva2VuaXphdGlvbiwgaWYgdGhpcyAgY2hhcmFjdGVyICBpcyAgc2VlbiAgYXMgIHRoZQotICAgICAgIGZpcnN0ICBjaGFyYWN0ZXIgIG9mICBhICB3b3JkLCAgdGhlbiBpdCBhbmQgYWxsIHN1YnNlcXVlbnQKLSAgICAgICBjaGFyYWN0ZXJzIHVwIHRvIGEgbmV3bGluZSBhcmUgaWdub3JlZCwgIHN1cHByZXNzaW5nICBoaXMtCi0gICAgICAgdG9yeSAgZXhwYW5zaW9uICBmb3IgIHRoZSAgcmVtYWluZGVyIG9mIHRoZSBsaW5lLiAgVGhpcyBpcwotICAgICAgIGRpc2FibGVkIGJ5IGRlZmF1bHQuCisgICAgICAgRHVyaW5nIHRva2VuaXphdGlvbiwgaWYgdGhpcyBjaGFyYWN0ZXIgaXMgc2VlbiBhcyB0aGUgIGZpcnN0ICBjaGFyYWN0ZXIKKyAgICAgICBvZiAgYSAgd29yZCwgIHRoZW4gaXQgYW5kIGFsbCBzdWJzZXF1ZW50IGNoYXJhY3RlcnMgdXAgdG8gYSBuZXdsaW5lIGFyZQorICAgICAgIGlnbm9yZWQsIHN1cHByZXNzaW5nIGhpc3RvcnkgZXhwYW5zaW9uIGZvciB0aGUgcmVtYWluZGVyIG9mICB0aGUgIGxpbmUuCisgICAgICAgVGhpcyBpcyBkaXNhYmxlZCBieSBkZWZhdWx0LgogCiAgICAgICAgXwhjXwhoXwhhXwhyIF8IKiBoCGhpCGlzCHN0CHRvCG9yCHJ5CHlfCF93CHdvCG9yCHJkCGRfCF9kCGRlCGVsCGxpCGltCG1pCGl0CHRlCGVyCHJzCHMKLSAgICAgICBUaGUgIGNoYXJhY3RlcnMgIHRoYXQgIHNlcGFyYXRlICB0b2tlbnMgIGZvciAgaAhoaQhpcwhzdAh0bwhvcghyeQh5XwhfdAh0bwhvawhrLQgtCi0gICAgICAgZQhlbghuaQhpegh6ZQhlKAgoKQgpLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgIggiIFwIXHQIdFwIXG4IbigIKCkIKTwIPD4IPjsIOyYIJnwIfCIIIi4KKyAgICAgICBUaGUgIGNoYXJhY3RlcnMgIHRoYXQgIHNlcGFyYXRlICB0b2tlbnMgIGZvciAgaAhoaQhpcwhzdAh0bwhvcghyeQh5XwhfdAh0bwhvawhrZQhlbghuaQhpegh6ZQhlKAgoKQgpLiAgIFRoZQorICAgICAgIGRlZmF1bHQgdmFsdWUgaXMgIggiIFwIXHQIdFwIXG4IbigIKCkIKTwIPD4IPjsIOyYIJnwIfCIIIi4KIAogICAgICAgIF8IY18IaF8IYV8IciBfCCogaAhoaQhpcwhzdAh0bwhvcghyeQh5XwhfbghubwhvXwhfZQhleAh4cAhwYQhhbghuZAhkXwhfYwhjaAhoYQhhcghycwhzCi0gICAgICAgVGhlICBsaXN0IG9mIGNoYXJhY3RlcnMgd2hpY2ggaW5oaWJpdCBoaXN0b3J5IGV4cGFuc2lvbiBpZgotICAgICAgIGZvdW5kIGltbWVkaWF0ZWx5IGZvbGxvd2luZyAgaAhoaQhpcwhzdAh0bwhvcghyeQh5XwhfZQhleAh4cAhwYQhhbghucwhzaQhpbwhvbghuXwhfYwhjaAhoYQhhcghyLiAgIFRoZQotICAgICAgIGRlZmF1bHQgaXMgc3BhY2UsIHRhYiwgbmV3bGluZSwgXAhccghyLCBhbmQgPQg9LgorICAgICAgIFRoZSBsaXN0IG9mIGNoYXJhY3RlcnMgd2hpY2ggaW5oaWJpdCBoaXN0b3J5IGV4cGFuc2lvbiBpZiBmb3VuZCBpbW1lZGktCisgICAgICAgYXRlbHkgIGZvbGxvd2luZyAgaAhoaQhpcwhzdAh0bwhvcghyeQh5XwhfZQhleAh4cAhwYQhhbghucwhzaQhpbwhvbghuXwhfYwhjaAhoYQhhcghyLiAgIFRoZSAgZGVmYXVsdCBpcyBzcGFjZSwgdGFiLAorICAgICAgIG5ld2xpbmUsIFwIXHIIciwgYW5kID0IPS4KIAogICAgICAgIF8IY18IaF8IYV8IciBfCCogaAhoaQhpcwhzdAh0bwhvcghyeQh5XwhfcwhzZQhlYQhhcghyYwhjaAhoXwhfZAhkZQhlbAhsaQhpbQhtaQhpdAh0ZQhlcghyXwhfYwhjaAhoYQhhcghycwhzCi0gICAgICAgVGhlIGxpc3Qgb2YgYWRkaXRpb25hbCBjaGFyYWN0ZXJzIHdoaWNoIGNhbiBkZWxpbWl0IGEgaGlzLQotICAgICAgIHRvcnkgc2VhcmNoIHN0cmluZywgaW4gYWRkaXRpb24gdG8gc3BhY2UsIHRhYiwgXwg6IGFuZCBfCD8gIGluCi0gICAgICAgdGhlIGNhc2Ugb2YgYSBzdWJzdHJpbmcgc2VhcmNoLiAgVGhlIGRlZmF1bHQgaXMgZW1wdHkuCisgICAgICAgVGhlIGxpc3Qgb2YgYWRkaXRpb25hbCBjaGFyYWN0ZXJzIHdoaWNoIGNhbiBkZWxpbWl0ICBhICBoaXN0b3J5ICBzZWFyY2gKKyAgICAgICBzdHJpbmcsICBpbiAgYWRkaXRpb24gdG8gc3BhY2UsIHRhYiwgXwg6IGFuZCBfCD8gaW4gdGhlIGNhc2Ugb2YgYSBzdWJzdHJpbmcKKyAgICAgICBzZWFyY2guICBUaGUgZGVmYXVsdCBpcyBlbXB0eS4KIAogICAgICAgIF8IaV8Ibl8IdCBoCGhpCGlzCHN0CHRvCG9yCHJ5CHlfCF9xCHF1CHVvCG90CHRlCGVzCHNfCF9pCGluCG5oCGhpCGliCGJpCGl0CHRfCF9lCGV4CHhwCHBhCGFuCG5zCHNpCGlvCG9uCG4KLSAgICAgICBJZiAgbm9uLXplcm8sICBzaW5nbGUtcXVvdGVkIHdvcmRzIGFyZSBub3Qgc2Nhbm5lZCBmb3IgdGhlCi0gICAgICAgaGlzdG9yeSBleHBhbnNpb24gY2hhcmFjdGVyLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgMC4KKyAgICAgICBJZiBub24temVybywgc2luZ2xlLXF1b3RlZCB3b3JkcyBhcmUgbm90IHNjYW5uZWQgZm9yIHRoZSBoaXN0b3J5IGV4cGFuLQorICAgICAgIHNpb24gY2hhcmFjdGVyLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgMC4KIAogICAgICAgIF8Icl8IbF8IX18IbF8IaV8Ibl8IZV8IYl8IdV8IZl8IX18IZl8IdV8Ibl8IY18IX18IdCBfCCogaAhoaQhpcwhzdAh0bwhvcghyeQh5XwhfaQhpbghuaAhoaQhpYghiaQhpdAh0XwhfZQhleAh4cAhwYQhhbghucwhzaQhpbwhvbghuXwhfZghmdQh1bghuYwhjdAh0aQhpbwhvbghuCi0gICAgICAgVGhpcyBzaG91bGQgYmUgc2V0IHRvIHRoZSBhZGRyZXNzIG9mIGEgZnVuY3Rpb24gdGhhdCB0YWtlcwotICAgICAgIHR3byAgYXJndW1lbnRzOiAgYSAgYwhjaAhoYQhhcghyICAqCCogKF8Ic18IdF8Icl8IaV8Ibl8IZykgYW5kIGFuIGkIaW4IbnQIdCBpbmRleCBpbnRvCi0gICAgICAgdGhhdCBzdHJpbmcgKF8IaSkuICBJdCBzaG91bGQgcmV0dXJuIGEgbm9uLXplcm8gdmFsdWUgaWYgdGhlCi0gICAgICAgaGlzdG9yeSBleHBhbnNpb24gc3RhcnRpbmcgYXQgXwhzXwh0XwhyXwhpXwhuXwhnXwhbXwhpXwhdIHNob3VsZCBub3QgYmUgcGVyLQotICAgICAgIGZvcm1lZDsgemVybyBpZiB0aGUgIGV4cGFuc2lvbiAgc2hvdWxkICBiZSAgZG9uZS4gICBJdCAgaXMKLSAgICAgICBpbnRlbmRlZCAgZm9yICB1c2UgIGJ5IGFwcGxpY2F0aW9ucyBsaWtlIGIIYmEIYXMIc2gIaCB0aGF0IHVzZSB0aGUKLSAgICAgICBoaXN0b3J5IGV4cGFuc2lvbiBjaGFyYWN0ZXIgZm9yIGFkZGl0aW9uYWwgIHB1cnBvc2VzLiAgIEJ5Ci0gICAgICAgZGVmYXVsdCwgdGhpcyB2YXJpYWJsZSBpcyBzZXQgdG8gTghOVQhVTAhMTAhMLgorICAgICAgIFRoaXMgIHNob3VsZCAgYmUgIHNldCB0byB0aGUgYWRkcmVzcyBvZiBhIGZ1bmN0aW9uIHRoYXQgdGFrZXMgdHdvIGFyZ3UtCisgICAgICAgbWVudHM6IGEgYwhjaAhoYQhhcghyICoIKiAoXwhzXwh0XwhyXwhpXwhuXwhnKSBhbmQgYW4gaQhpbghudAh0IGluZGV4IGludG8gIHRoYXQgIHN0cmluZyAgKF8IaSkuICAgSXQKKyAgICAgICBzaG91bGQgIHJldHVybiAgYSAgbm9uLXplcm8gIHZhbHVlIGlmIHRoZSBoaXN0b3J5IGV4cGFuc2lvbiBzdGFydGluZyBhdAorICAgICAgIF8Ic18IdF8Icl8IaV8Ibl8IZ18IW18IaV8IXSBzaG91bGQgbm90IGJlIHBlcmZvcm1lZDsgemVybyAgaWYgIHRoZSAgZXhwYW5zaW9uICBzaG91bGQgIGJlCisgICAgICAgZG9uZS4gICBJdCAgaXMgIGludGVuZGVkIGZvciB1c2UgYnkgYXBwbGljYXRpb25zIGxpa2UgYghiYQhhcwhzaAhoIHRoYXQgdXNlIHRoZQorICAgICAgIGhpc3RvcnkgZXhwYW5zaW9uIGNoYXJhY3RlciBmb3IgYWRkaXRpb25hbCBwdXJwb3Nlcy4gIEJ5IGRlZmF1bHQsICB0aGlzCisgICAgICAgdmFyaWFibGUgaXMgc2V0IHRvIE4ITlUIVUwITEwITC4KIAogRghGSQhJTAhMRQhFUwhTCiAgICAgICAgXwh+XwgvXwguXwhoXwhpXwhzXwh0XwhvXwhyXwh5Ci0gICAgICAgICAgICAgIERlZmF1bHQgZmlsZW5hbWUgZm9yIHJlYWRpbmcgYW5kIHdyaXRpbmcgc2F2ZWQgaGlzLQotICAgICAgICAgICAgICB0b3J5Ci0KLQotCi0KLQotR05VIEhpc3RvcnkgNC4zICAgICAgICAgIDIwMDIgSmFudWFyeSAzMSAgICAgICAgICAgICAgICAgICAgICAgIDkKLQotCi0KLQotCi1ISVNUT1JZKDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSElTVE9SWSgzKQotCisgICAgICAgICAgICAgIERlZmF1bHQgZmlsZW5hbWUgZm9yIHJlYWRpbmcgYW5kIHdyaXRpbmcgc2F2ZWQgaGlzdG9yeQogCiBTCFNFCEVFCEUgQQhBTAhMUwhTTwhPCiAgICAgICAgXwhUXwhoXwhlIF8IR18Ibl8IdSBfCFJfCGVfCGFfCGRfCGxfCGlfCG5fCGUgXwhMXwhpXwhiXwhyXwhhXwhyXwh5LCBCcmlhbiBGb3ggYW5kIENoZXQgUmFtZXkKQEAgLTYxMiw0OSArNDcwLDE5IEBACiAgICAgICAgY2hldEBpbnMuQ1dSVS5FZHUKIAogQghCVQhVRwhHIFIIUkUIRVAIUE8IT1IIUlQIVFMIUwotICAgICAgIElmIHlvdSBmaW5kIGEgYnVnICBpbiAgdGhlICBoCGhpCGlzCHN0CHRvCG9yCHJ5CHkgIGxpYnJhcnksICB5b3UgIHNob3VsZAotICAgICAgIHJlcG9ydCBpdC4gIEJ1dCBmaXJzdCwgeW91IHNob3VsZCBtYWtlIHN1cmUgdGhhdCBpdCByZWFsbHkKLSAgICAgICBpcyBhIGJ1ZywgYW5kIHRoYXQgaXQgYXBwZWFycyBpbiB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhlCi0gICAgICAgaAhoaQhpcwhzdAh0bwhvcghyeQh5IGxpYnJhcnkgdGhhdCB5b3UgaGF2ZS4KKyAgICAgICBJZiAgeW91ICBmaW5kICBhIGJ1ZyBpbiB0aGUgaAhoaQhpcwhzdAh0bwhvcghyeQh5IGxpYnJhcnksIHlvdSBzaG91bGQgcmVwb3J0IGl0LiAgQnV0CisgICAgICAgZmlyc3QsIHlvdSBzaG91bGQgbWFrZSBzdXJlIHRoYXQgaXQgIHJlYWxseSAgaXMgIGEgIGJ1ZywgIGFuZCAgdGhhdCAgaXQKKyAgICAgICBhcHBlYXJzIGluIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgaAhoaQhpcwhzdAh0bwhvcghyeQh5IGxpYnJhcnkgdGhhdCB5b3UgaGF2ZS4KIAotICAgICAgIE9uY2UgIHlvdSBoYXZlIGRldGVybWluZWQgdGhhdCBhIGJ1ZyBhY3R1YWxseSBleGlzdHMsIG1haWwKLSAgICAgICBhIGJ1ZyByZXBvcnQgdG8gXwhiXwh1XwhnXwgtXwhyXwhlXwhhXwhkXwhsXwhpXwhuXwhlQF8IZ18Ibl8IdV8ILl8Ib18Icl8IZy4gIElmIHlvdSBoYXZlIGEgIGZpeCwKLSAgICAgICB5b3UgIGFyZSAgd2VsY29tZSAgdG8gIG1haWwgdGhhdCBhcyB3ZWxsISAgU3VnZ2VzdGlvbnMgYW5kCi0gICAgICAgYHBoaWxvc29waGljYWwnIGJ1ZyByZXBvcnRzIG1heSAgYmUgIG1haWxlZCAgdG8gIF8IYl8IdV8IZ18ILV8Icl8IZV8IYV8IZF8ILQotICAgICAgIF8IbF8IaV8Ibl8IZUBfCGdfCG5fCHVfCC5fCG9fCHJfCGcgICBvciAgIHBvc3RlZCAgIHRvICAgdGhlICAgVXNlbmV0ICAgbmV3c2dyb3VwCisgICAgICAgT25jZSAgeW91IGhhdmUgZGV0ZXJtaW5lZCB0aGF0IGEgYnVnIGFjdHVhbGx5IGV4aXN0cywgbWFpbCBhIGJ1ZyByZXBvcnQKKyAgICAgICB0byBfCGJfCHVfCGdfCC1fCHJfCGVfCGFfCGRfCGxfCGlfCG5fCGVAXwhnXwhuXwh1XwguXwhvXwhyXwhnLiAgSWYgeW91IGhhdmUgYSBmaXgsIHlvdSBhcmUgIHdlbGNvbWUgIHRvICBtYWlsCisgICAgICAgdGhhdCAgYXMgIHdlbGwhICAgU3VnZ2VzdGlvbnMgIGFuZCAgYHBoaWxvc29waGljYWwnICBidWcgcmVwb3J0cyBtYXkgYmUKKyAgICAgICBtYWlsZWQgdG8gIF8IYl8IdV8IZ18ILV8Icl8IZV8IYV8IZF8IbF8IaV8Ibl8IZUBfCGdfCG5fCHVfCC5fCG9fCHJfCGcgIG9yICBwb3N0ZWQgIHRvICB0aGUgIFVzZW5ldCAgbmV3c2dyb3VwCiAgICAgICAgZwhnbghudQh1LgguYghiYQhhcwhzaAhoLgguYghidQh1ZwhnLgogCi0gICAgICAgQ29tbWVudHMgYW5kICBidWcgIHJlcG9ydHMgIGNvbmNlcm5pbmcgIHRoaXMgIG1hbnVhbCAgcGFnZQotICAgICAgIHNob3VsZCBiZSBkaXJlY3RlZCB0byBfCGNfCGhfCGVfCHRfCEBfCGlfCG5fCHNfCC5fCENfCFdfCFJfCFVfCC5fCEVfCGRfCHUuCisgICAgICAgQ29tbWVudHMgYW5kIGJ1ZyByZXBvcnRzIGNvbmNlcm5pbmcgdGhpcyBtYW51YWwgcGFnZSBzaG91bGQgYmUgZGlyZWN0ZWQKKyAgICAgICB0byBfCGNfCGhfCGVfCHRfCEBfCGlfCG5fCHNfCC5fCENfCFdfCFJfCFVfCC5fCEVfCGRfCHUuCiAKIAogCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KLQotR05VIEhpc3RvcnkgNC4zICAgICAgICAgIDIwMDIgSmFudWFyeSAzMSAgICAgICAgICAgICAgICAgICAgICAgMTAKLQotCitHTlUgSGlzdG9yeSA1LjAgICAgICAgICAgICAgICAgICAyMDAzIEp1bHkgMzEgICAgICAgICAgICAgICAgICAgICAgIEhJU1RPUlkoMykKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2RvYy9oaXN0b3J5LjMgYi9yZWFkbGluZS9kb2MvaGlzdG9yeS4zCmluZGV4IGVkMGNiOWYuLjNhZGU4MzkgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL2RvYy9oaXN0b3J5LjMKKysrIGIvcmVhZGxpbmUvZG9jL2hpc3RvcnkuMwpAQCAtNiw5ICs2LDkgQEAKIC5cIglDYXNlIFdlc3Rlcm4gUmVzZXJ2ZSBVbml2ZXJzaXR5CiAuXCIJY2hldEBpbnMuQ1dSVS5FZHUKIC5cIgotLlwiCUxhc3QgQ2hhbmdlOiBUaHUgSmFuIDMxIDE2OjA4OjA3IEVTVCAyMDAyCisuXCIJTGFzdCBDaGFuZ2U6IFRodSBKdWwgMzEgMDg6NDY6MDggRURUIDIwMDMKIC5cIgotLlRIIEhJU1RPUlkgMyAiMjAwMiBKYW51YXJ5IDMxIiAiR05VIEhpc3RvcnkgNC4zIgorLlRIIEhJU1RPUlkgMyAiMjAwMyBKdWx5IDMxIiAiR05VIEhpc3RvcnkgNS4wIgogLlwiCiAuXCIgRmlsZSBOYW1lIG1hY3JvLiAgVGhpcyB1c2VkIHRvIGJlIGAuUE4nLCBmb3IgUGF0aCBOYW1lLAogLlwiIGJ1dCBTdW4gZG9lc24ndCBzZWVtIHRvIGxpa2UgdGhhdCB2ZXJ5IG11Y2guCkBAIC0yNDksNiArMjQ5LDEwIEBACiBgXGZCOnNcZlAnLCBhbnkgZGVsaW1pdGVyIGNhbiBiZSB1c2VkCiBpbiBwbGFjZSBvZiAvLCBhbmQgdGhlIGZpbmFsIGRlbGltaXRlciBpcyBvcHRpb25hbAogaWYgaXQgaXMgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIHRoZSBldmVudCBsaW5lLgorQW4gXGZCYVxmUCBtYXkgYmUgdXNlZCBhcyBhIHN5bm9ueW0gZm9yIFxmQmdcZlAuCisuVFAKKy5CIEcKK0FwcGx5IHRoZSBmb2xsb3dpbmcgYFxmQnNcZlAnIG1vZGlmaWVyIG9uY2UgdG8gZWFjaCB3b3JkIGluIHRoZSBldmVudCBsaW5lLgogLlBECiAuU0ggIlBST0dSQU1NSU5HIFdJVEggSElTVE9SWSBGVU5DVElPTlMiCiBUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIGhvdyB0byB1c2UgdGhlIEhpc3RvcnkgbGlicmFyeSBpbiBvdGhlciBwcm9ncmFtcy4KQEAgLTI5Miw2ICsyOTYsNyBAQAogLm5mCiB0eXBlZGVmIHN0cnVjdCBfaGlzdF9lbnRyeSB7CiAgIGNoYXIgKmxpbmU7CisgIGNoYXIgKnRpbWVzdGFtcDsKICAgaGlzdGRhdGFfdCBkYXRhOwogfSBISVNUX0VOVFJZOwogLmZpCkBAIC0zNDUsMTQgKzM1MCwyNCBAQAogUGxhY2UgXGZJc3RyaW5nXGZQIGF0IHRoZSBlbmQgb2YgdGhlIGhpc3RvcnkgbGlzdC4gIFRoZSBhc3NvY2lhdGVkIGRhdGEKIGZpZWxkIChpZiBhbnkpIGlzIHNldCB0byBcZkJOVUxMXGZQLgogCisuRm4xIHZvaWQgYWRkX2hpc3RvcnlfdGltZSAiY29uc3QgY2hhciAqc3RyaW5nIgorQ2hhbmdlIHRoZSB0aW1lIHN0YW1wIGFzc29jaWF0ZWQgd2l0aCB0aGUgbW9zdCByZWNlbnQgaGlzdG9yeSBlbnRyeSB0bworXGZJc3RyaW5nXGZQLgorCiAuRm4xICJISVNUX0VOVFJZICoiIHJlbW92ZV9oaXN0b3J5ICJpbnQgd2hpY2giCiBSZW1vdmUgaGlzdG9yeSBlbnRyeSBhdCBvZmZzZXQgXGZJd2hpY2hcZlAgZnJvbSB0aGUgaGlzdG9yeS4gIFRoZQogcmVtb3ZlZCBlbGVtZW50IGlzIHJldHVybmVkIHNvIHlvdSBjYW4gZnJlZSB0aGUgbGluZSwgZGF0YSwKIGFuZCBjb250YWluaW5nIHN0cnVjdHVyZS4KIAorLkZuMSAiaGlzdGRhdGFfdCIgZnJlZV9oaXN0b3J5X2VudHJ5ICJISVNUX0VOVFJZICpoaXN0ZW50IgorRnJlZSB0aGUgaGlzdG9yeSBlbnRyeSBcZkloaXN0ZW50XGZQIGFuZCBhbnkgaGlzdG9yeSBsaWJyYXJ5IHByaXZhdGUKK2RhdGEgYXNzb2NpYXRlZCB3aXRoIGl0LiAgUmV0dXJucyB0aGUgYXBwbGljYXRpb24tc3BlY2lmaWMgZGF0YQorc28gdGhlIGNhbGxlciBjYW4gZGlzcG9zZSBvZiBpdC4KKwogLkZuMyAiSElTVF9FTlRSWSAqIiByZXBsYWNlX2hpc3RvcnlfZW50cnkgImludCB3aGljaCIgImNvbnN0IGNoYXIgKmxpbmUiICJoaXN0ZGF0YV90IGRhdGEiCiBNYWtlIHRoZSBoaXN0b3J5IGVudHJ5IGF0IG9mZnNldCBcZkl3aGljaFxmUCBoYXZlIFxmSWxpbmVcZlAgYW5kIFxmSWRhdGFcZlAuCi1UaGlzIHJldHVybnMgdGhlIG9sZCBlbnRyeSBzbyB5b3UgY2FuIGRpc3Bvc2Ugb2YgdGhlIGRhdGEuICBJbiB0aGUgY2FzZQorVGhpcyByZXR1cm5zIHRoZSBvbGQgZW50cnkgc28gdGhlIGNhbGxlciBjYW4gZGlzcG9zZSBvZiBhbnkKK2FwcGxpY2F0aW9uLXNwZWNpZmljIGRhdGEuICBJbiB0aGUgY2FzZQogb2YgYW4gaW52YWxpZCBcZkl3aGljaFxmUCwgYSBcZkJOVUxMXGZQIHBvaW50ZXIgaXMgcmV0dXJuZWQuCiAKIC5GbjEgdm9pZCBjbGVhcl9oaXN0b3J5ICJ2b2lkIgpAQCAtMzk0LDYgKzQwOSw5IEBACiBJZiB0aGVyZSBpcyBubyBlbnRyeSB0aGVyZSwgb3IgaWYgXGZJb2Zmc2V0XGZQCiBpcyBncmVhdGVyIHRoYW4gdGhlIGhpc3RvcnkgbGVuZ3RoLCByZXR1cm4gYSBcZkJOVUxMXGZQIHBvaW50ZXIuCiAKKy5GbjEgInRpbWVfdCIgaGlzdG9yeV9nZXRfdGltZSAiSElTVF9FTlRSWSAqIgorUmV0dXJuIHRoZSB0aW1lIHN0YW1wIGFzc29jaWF0ZWQgd2l0aCB0aGUgaGlzdG9yeSBlbnRyeSBwYXNzZWQgYXMgdGhlIGFyZ3VtZW50LgorCiAuRm4xIGludCBoaXN0b3J5X3RvdGFsX2J5dGVzICJ2b2lkIgogUmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0ZXMgdGhhdCB0aGUgcHJpbWFyeSBoaXN0b3J5IGVudHJpZXMgYXJlIHVzaW5nLgogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBzdW0gb2YgdGhlIGxlbmd0aHMgb2YgYWxsIHRoZSBsaW5lcyBpbiB0aGUKQEAgLTU1MSw2ICs1NjksMTEgQEAKIFRoZSBtYXhpbXVtIG51bWJlciBvZiBoaXN0b3J5IGVudHJpZXMuICBUaGlzIG11c3QgYmUgY2hhbmdlZCB1c2luZwogXGZCc3RpZmxlX2hpc3RvcnkoKVxmUC4KIAorLlZiIGludCBoaXN0b3J5X3dyaXRlX3RpbWVzdGFtcHMKK0lmIG5vbi16ZXJvLCB0aW1lc3RhbXBzIGFyZSB3cml0dGVuIHRvIHRoZSBoaXN0b3J5IGZpbGUsIHNvIHRoZXkgY2FuIGJlCitwcmVzZXJ2ZWQgYmV0d2VlbiBzZXNzaW9ucy4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDAsIG1lYW5pbmcgdGhhdAordGltZXN0YW1wcyBhcmUgbm90IHNhdmVkLgorCiAuVmIgY2hhciBoaXN0b3J5X2V4cGFuc2lvbl9jaGFyCiBUaGUgY2hhcmFjdGVyIHRoYXQgaW50cm9kdWNlcyBhIGhpc3RvcnkgZXZlbnQuICBUaGUgZGVmYXVsdCBpcyBcZkIhXGZQLgogU2V0dGluZyB0aGlzIHRvIDAgaW5oaWJpdHMgaGlzdG9yeSBleHBhbnNpb24uCmRpZmYgLS1naXQgYS9yZWFkbGluZS9kb2MvaGlzdG9yeS5kdmkgYi9yZWFkbGluZS9kb2MvaGlzdG9yeS5kdmkKaW5kZXggYmY3NDQ0ZS4uNjM3N2Q5ZCAxMDA2NDQKLS0tIGEvcmVhZGxpbmUvZG9jL2hpc3RvcnkuZHZpCisrKyBiL3JlYWRsaW5lL2RvYy9oaXN0b3J5LmR2aQpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9yZWFkbGluZS9kb2MvaGlzdG9yeS5odG1sIGIvcmVhZGxpbmUvZG9jL2hpc3RvcnkuaHRtbAppbmRleCA1YWZlMTViLi40Mzk0MjZhIDEwMDY0NAotLS0gYS9yZWFkbGluZS9kb2MvaGlzdG9yeS5odG1sCisrKyBiL3JlYWRsaW5lL2RvYy9oaXN0b3J5Lmh0bWwKQEAgLTEsNiArMSw2IEBACiA8SFRNTD4KIDwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPgotPCEtLSBDcmVhdGVkIG9uIEp1bmUsIDI3ICAyMDAyIGJ5IHRleGkyaHRtbCAxLjY0IC0tPgorPCEtLSBDcmVhdGVkIG9uIERlY2VtYmVyLCA2ICAyMDA1IGJ5IHRleGkyaHRtbCAxLjY0IC0tPgogPCEtLSAKIFdyaXR0ZW4gYnk6IExpb25lbCBDb25zIDxMaW9uZWwuQ29uc0BjZXJuLmNoPiAob3JpZ2luYWwgYXV0aG9yKQogICAgICAgICAgICAgS2FybCBCZXJyeSAgPGthcmxAZnJlZWZyaWVuZHMub3JnPgpAQCAtMjcsNyArMjcsNyBAQAogPFRBQkxFIENFTExQQURESU5HPTEgQ0VMTFNQQUNJTkc9MSBCT1JERVI9MD4KIDxUUj48VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTkiPkluZGV4PC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMyMiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEgxPkdOVSBIaXN0b3J5IExpYnJhcnk8L0gxPjwvUD48UD4KQEAgLTQwLDggKzQwLDkgQEAKIDxCTE9DS1FVT1RFPjxUQUJMRSBCT1JERVI9MCBDRUxMU1BBQ0lORz0wPiAKIDxUUj48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMSI+MS4gVXNpbmcgSGlzdG9yeSBJbnRlcmFjdGl2ZWx5PC9BPjwvVEQ+PFREPiZuYnNwOyZuYnNwOzwvVEQ+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+R05VIEhpc3RvcnkgVXNlcidzIE1hbnVhbC48L1REPjwvVFI+CiA8VFI+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzYiPjIuIFByb2dyYW1taW5nIHdpdGggR05VIEhpc3Rvcnk8L0E+PC9URD48VEQ+Jm5ic3A7Jm5ic3A7PC9URD48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj5HTlUgSGlzdG9yeSBQcm9ncmFtbWVyJ3MgTWFudWFsLjwvVEQ+PC9UUj4KLTxUUj48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTkiPkEuIENvbmNlcHQgSW5kZXg8L0E+PC9URD48VEQ+Jm5ic3A7Jm5ic3A7PC9URD48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj5JbmRleCBvZiBjb25jZXB0cyBkZXNjcmliZWQgaW4gdGhpcyBtYW51YWwuPC9URD48L1RSPgotPFRSPjxURCBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMyMCI+Qi4gRnVuY3Rpb24gYW5kIFZhcmlhYmxlIEluZGV4PC9BPjwvVEQ+PFREPiZuYnNwOyZuYnNwOzwvVEQ+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+SW5kZXggb2YgZXh0ZXJuYWxseSB2aXNpYmxlIGZ1bmN0aW9ucworPFRSPjxURCBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxOSI+QS4gQ29weWluZyBUaGlzIE1hbnVhbDwvQT48L1REPjxURD4mbmJzcDsmbmJzcDs8L1REPjxURCBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPjwvVEQ+PC9UUj4KKzxUUj48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMjIiPkIuIENvbmNlcHQgSW5kZXg8L0E+PC9URD48VEQ+Jm5ic3A7Jm5ic3A7PC9URD48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj5JbmRleCBvZiBjb25jZXB0cyBkZXNjcmliZWQgaW4gdGhpcyBtYW51YWwuPC9URD48L1RSPgorPFRSPjxURCBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMyMyI+Qy4gRnVuY3Rpb24gYW5kIFZhcmlhYmxlIEluZGV4PC9BPjwvVEQ+PFREPiZuYnNwOyZuYnNwOzwvVEQ+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+SW5kZXggb2YgZXh0ZXJuYWxseSB2aXNpYmxlIGZ1bmN0aW9ucwogCQkJCSAgYW5kIHZhcmlhYmxlcy48L1REPjwvVFI+CiA8L1RBQkxFPjwvQkxPQ0tRVU9URT4KIDxQPgpAQCAtNTYsNyArNTcsNyBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUM2Ij4gJmd0OyZndDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTkiPkluZGV4PC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMyMiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEEgTkFNRT0iVXNpbmcgSGlzdG9yeSBJbnRlcmFjdGl2ZWx5Ij48L0E+CkBAIC04Niw3ICs4Nyw3IEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzYiPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxOSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzIyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+CiA8L1RSPjwvVEFCTEU+CiA8SDI+IDEuMSBIaXN0b3J5IEV4cGFuc2lvbiA8L0gyPgpAQCAtMTM1LDcgKzEzNiw3IEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzYiPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxOSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzIyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+CiA8L1RSPjwvVEFCTEU+CiA8SDM+IDEuMS4xIEV2ZW50IERlc2lnbmF0b3JzIDwvSDM+CkBAIC0xNTEsNyArMTUyLDcgQEAKIAogPERUPjxDT0RFPiE8L0NPREU+CiA8REQ+U3RhcnQgYSBoaXN0b3J5IHN1YnN0aXR1dGlvbiwgZXhjZXB0IHdoZW4gZm9sbG93ZWQgYnkgYSBzcGFjZSwgdGFiLAotdGhlIGVuZCBvZiB0aGUgbGluZSwgPFNBTVA+YD0nPC9TQU1QPiBvciA8U0FNUD5gKCc8L1NBTVA+LgordGhlIGVuZCBvZiB0aGUgbGluZSwgb3IgPFNBTVA+YD0nPC9TQU1QPi4KIDxQPgogCiA8RFQ+PENPREU+ITxWQVI+bjwvVkFSPjwvQ09ERT4KQEAgLTIwMCw3ICsyMDEsNyBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUM2Ij4gJmd0OyZndDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTkiPkluZGV4PC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMyMiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEgzPiAxLjEuMiBXb3JkIERlc2lnbmF0b3JzIDwvSDM+CkBAIC0yOTUsNyArMjk2LDcgQEAKIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDNiI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMjIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMz4gMS4xLjMgTW9kaWZpZXJzIDwvSDM+CkBAIC0zNDQsMTEgKzM0NSwxNiBAQAogPFA+CiAKIDxEVD48Q09ERT5nPC9DT0RFPgorPEREPjxEVD48Q09ERT5hPC9DT0RFPgogPEREPkNhdXNlIGNoYW5nZXMgdG8gYmUgYXBwbGllZCBvdmVyIHRoZSBlbnRpcmUgZXZlbnQgbGluZS4gIFVzZWQgaW4KIGNvbmp1bmN0aW9uIHdpdGggPFNBTVA+YHMnPC9TQU1QPiwgYXMgaW4gPENPREU+Z3MvPFZBUj5vbGQ8L1ZBUj4vPFZBUj5uZXc8L1ZBUj4vPC9DT0RFPiwKIG9yIHdpdGggPFNBTVA+YCYjMzg7JzwvU0FNUD4uCiA8UD4KIAorPERUPjxDT0RFPkc8L0NPREU+Cis8REQ+QXBwbHkgdGhlIGZvbGxvd2luZyA8U0FNUD5gcyc8L1NBTVA+IG1vZGlmaWVyIG9uY2UgdG8gZWFjaCB3b3JkIGluIHRoZSBldmVudC4KKzxQPgorCiA8L0RMPgogPFA+CiAKQEAgLTM2Myw3ICszNjksNyBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxOSI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMjIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMT4gMi4gUHJvZ3JhbW1pbmcgd2l0aCBHTlUgSGlzdG9yeSA8L0gxPgpAQCAtMzk2LDcgKzQwMiw3IEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE5Ij4gJmd0OyZndDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTkiPkluZGV4PC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMyMiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEgyPiAyLjEgSW50cm9kdWN0aW9uIHRvIEhpc3RvcnkgPC9IMj4KQEAgLTQ0OSw3ICs0NTUsNyBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxOSI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMjIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMj4gMi4yIEhpc3RvcnkgU3RvcmFnZSA8L0gyPgpAQCAtNDY0LDYgKzQ3MCw3IEBACiAKIHR5cGVkZWYgc3RydWN0IF9oaXN0X2VudHJ5IHsKICAgY2hhciAqbGluZTsKKyAgY2hhciAqdGltZXN0YW1wOwogICBoaXN0ZGF0YV90IGRhdGE7CiB9IEhJU1RfRU5UUlk7CiA8L3ByZT48L3RkPjwvdHI+PC90YWJsZT48L1A+PFA+CkBAIC01MDQsNyArNTExLDcgQEAKIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTciPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxOSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzIyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+CiA8L1RSPjwvVEFCTEU+CiA8SDI+IDIuMyBIaXN0b3J5IEZ1bmN0aW9ucyA8L0gyPgpAQCAtNTQ1LDcgKzU1Miw3IEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE3Ij4gJmd0OyZndDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTkiPkluZGV4PC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMyMiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEgzPiAyLjMuMSBJbml0aWFsaXppbmcgSGlzdG9yeSBhbmQgU3RhdGUgTWFuYWdlbWVudCA8L0gzPgpAQCAtNTkwLDcgKzU5Nyw3IEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE3Ij4gJmd0OyZndDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTkiPkluZGV4PC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMyMiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEgzPiAyLjMuMiBIaXN0b3J5IExpc3QgTWFuYWdlbWVudCA8L0gzPgpAQCAtNjExLDYgKzYxOCwxNCBAQAogCiA8QSBOQU1FPSJJRFg2Ij48L0E+CiA8REw+Cis8RFQ+PFU+RnVuY3Rpb246PC9VPiB2b2lkIDxCPmFkZF9oaXN0b3J5X3RpbWU8L0I+IDxJPihjb25zdCBjaGFyICpzdHJpbmcpPC9JPgorPEREPkNoYW5nZSB0aGUgdGltZSBzdGFtcCBhc3NvY2lhdGVkIHdpdGggdGhlIG1vc3QgcmVjZW50IGhpc3RvcnkgZW50cnkgdG8KKzxWQVI+c3RyaW5nPC9WQVI+LgorPC9ETD4KKzwvUD48UD4KKworPEEgTkFNRT0iSURYNyI+PC9BPgorPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gSElTVF9FTlRSWSAqIDxCPnJlbW92ZV9oaXN0b3J5PC9CPiA8ST4oaW50IHdoaWNoKTwvST4KIDxERD5SZW1vdmUgaGlzdG9yeSBlbnRyeSBhdCBvZmZzZXQgPFZBUj53aGljaDwvVkFSPiBmcm9tIHRoZSBoaXN0b3J5LiAgVGhlCiByZW1vdmVkIGVsZW1lbnQgaXMgcmV0dXJuZWQgc28geW91IGNhbiBmcmVlIHRoZSBsaW5lLCBkYXRhLApAQCAtNjE4LDMwICs2MzMsNDAgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDciPjwvQT4KKzxBIE5BTUU9IklEWDgiPjwvQT4KKzxETD4KKzxEVD48VT5GdW5jdGlvbjo8L1U+IGhpc3RkYXRhX3QgPEI+ZnJlZV9oaXN0b3J5X2VudHJ5PC9CPiA8ST4oSElTVF9FTlRSWSAqaGlzdGVudCk8L0k+Cis8REQ+RnJlZSB0aGUgaGlzdG9yeSBlbnRyeSA8VkFSPmhpc3RlbnQ8L1ZBUj4gYW5kIGFueSBoaXN0b3J5IGxpYnJhcnkgcHJpdmF0ZQorZGF0YSBhc3NvY2lhdGVkIHdpdGggaXQuICBSZXR1cm5zIHRoZSBhcHBsaWNhdGlvbi1zcGVjaWZpYyBkYXRhCitzbyB0aGUgY2FsbGVyIGNhbiBkaXNwb3NlIG9mIGl0LgorPC9ETD4KKzwvUD48UD4KKworPEEgTkFNRT0iSURYOSI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gSElTVF9FTlRSWSAqIDxCPnJlcGxhY2VfaGlzdG9yeV9lbnRyeTwvQj4gPEk+KGludCB3aGljaCwgY29uc3QgY2hhciAqbGluZSwgaGlzdGRhdGFfdCBkYXRhKTwvST4KIDxERD5NYWtlIHRoZSBoaXN0b3J5IGVudHJ5IGF0IG9mZnNldCA8VkFSPndoaWNoPC9WQVI+IGhhdmUgPFZBUj5saW5lPC9WQVI+IGFuZCA8VkFSPmRhdGE8L1ZBUj4uCi1UaGlzIHJldHVybnMgdGhlIG9sZCBlbnRyeSBzbyB5b3UgY2FuIGRpc3Bvc2Ugb2YgdGhlIGRhdGEuICBJbiB0aGUgY2FzZQorVGhpcyByZXR1cm5zIHRoZSBvbGQgZW50cnkgc28gdGhlIGNhbGxlciBjYW4gZGlzcG9zZSBvZiBhbnkKK2FwcGxpY2F0aW9uLXNwZWNpZmljIGRhdGEuICBJbiB0aGUgY2FzZQogb2YgYW4gaW52YWxpZCA8VkFSPndoaWNoPC9WQVI+LCBhIDxDT0RFPk5VTEw8L0NPREU+IHBvaW50ZXIgaXMgcmV0dXJuZWQuCiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFg4Ij48L0E+Cis8QSBOQU1FPSJJRFgxMCI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gdm9pZCA8Qj5jbGVhcl9oaXN0b3J5PC9CPiA8ST4odm9pZCk8L0k+CiA8REQ+Q2xlYXIgdGhlIGhpc3RvcnkgbGlzdCBieSBkZWxldGluZyBhbGwgdGhlIGVudHJpZXMuCiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFg5Ij48L0E+Cis8QSBOQU1FPSJJRFgxMSI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gdm9pZCA8Qj5zdGlmbGVfaGlzdG9yeTwvQj4gPEk+KGludCBtYXgpPC9JPgogPEREPlN0aWZsZSB0aGUgaGlzdG9yeSBsaXN0LCByZW1lbWJlcmluZyBvbmx5IHRoZSBsYXN0IDxWQVI+bWF4PC9WQVI+IGVudHJpZXMuCiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgxMCI+PC9BPgorPEEgTkFNRT0iSURYMTIiPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IGludCA8Qj51bnN0aWZsZV9oaXN0b3J5PC9CPiA8ST4odm9pZCk8L0k+CiA8REQ+U3RvcCBzdGlmbGluZyB0aGUgaGlzdG9yeS4gIFRoaXMgcmV0dXJucyB0aGUgcHJldmlvdXNseS1zZXQKQEAgLTY1MSw3ICs2NzYsNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMTEiPjwvQT4KKzxBIE5BTUU9IklEWDEzIj48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+aGlzdG9yeV9pc19zdGlmbGVkPC9CPiA8ST4odm9pZCk8L0k+CiA8REQ+UmV0dXJucyBub24temVybyBpZiB0aGUgaGlzdG9yeSBpcyBzdGlmbGVkLCB6ZXJvIGlmIGl0IGlzIG5vdC4KQEAgLTY2OSw3ICs2OTQsNyBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxNyI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMjIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMz4gMi4zLjMgSW5mb3JtYXRpb24gQWJvdXQgdGhlIEhpc3RvcnkgTGlzdCA8L0gzPgpAQCAtNjgwLDcgKzcwNSw3IEBACiBpbmRpdmlkdWFsIGxpc3QgZW50cmllcy4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMTIiPjwvQT4KKzxBIE5BTUU9IklEWDE0Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBISVNUX0VOVFJZICoqIDxCPmhpc3RvcnlfbGlzdDwvQj4gPEk+KHZvaWQpPC9JPgogPEREPlJldHVybiBhIDxDT0RFPk5VTEw8L0NPREU+IHRlcm1pbmF0ZWQgYXJyYXkgb2YgPENPREU+SElTVF9FTlRSWSAqPC9DT0RFPiB3aGljaCBpcyB0aGUKQEAgLTY4OSwxNCArNzE0LDE0IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgxMyI+PC9BPgorPEEgTkFNRT0iSURYMTUiPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IGludCA8Qj53aGVyZV9oaXN0b3J5PC9CPiA8ST4odm9pZCk8L0k+CiA8REQ+UmV0dXJucyB0aGUgb2Zmc2V0IG9mIHRoZSBjdXJyZW50IGhpc3RvcnkgZWxlbWVudC4KIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDE0Ij48L0E+Cis8QSBOQU1FPSJJRFgxNiI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gSElTVF9FTlRSWSAqIDxCPmN1cnJlbnRfaGlzdG9yeTwvQj4gPEk+KHZvaWQpPC9JPgogPEREPlJldHVybiB0aGUgaGlzdG9yeSBlbnRyeSBhdCB0aGUgY3VycmVudCBwb3NpdGlvbiwgYXMgZGV0ZXJtaW5lZCBieQpAQCAtNzA1LDcgKzczMCw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgxNSI+PC9BPgorPEEgTkFNRT0iSURYMTciPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IEhJU1RfRU5UUlkgKiA8Qj5oaXN0b3J5X2dldDwvQj4gPEk+KGludCBvZmZzZXQpPC9JPgogPEREPlJldHVybiB0aGUgaGlzdG9yeSBlbnRyeSBhdCBwb3NpdGlvbiA8VkFSPm9mZnNldDwvVkFSPiwgc3RhcnRpbmcgZnJvbQpAQCAtNzE1LDcgKzc0MCwxNCBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMTYiPjwvQT4KKzxBIE5BTUU9IklEWDE4Ij48L0E+Cis8REw+Cis8RFQ+PFU+RnVuY3Rpb246PC9VPiB0aW1lX3QgPEI+aGlzdG9yeV9nZXRfdGltZTwvQj4gPEk+KEhJU1RfRU5UUlkgKmVudHJ5KTwvST4KKzxERD5SZXR1cm4gdGhlIHRpbWUgc3RhbXAgYXNzb2NpYXRlZCB3aXRoIHRoZSBoaXN0b3J5IGVudHJ5IDxWQVI+ZW50cnk8L1ZBUj4uCis8L0RMPgorPC9QPjxQPgorCis8QSBOQU1FPSJJRFgxOSI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPmhpc3RvcnlfdG90YWxfYnl0ZXM8L0I+IDxJPih2b2lkKTwvST4KIDxERD5SZXR1cm4gdGhlIG51bWJlciBvZiBieXRlcyB0aGF0IHRoZSBwcmltYXJ5IGhpc3RvcnkgZW50cmllcyBhcmUgdXNpbmcuCkBAIC03MzUsNyArNzY3LDcgQEAKIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTciPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxOSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzIyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+CiA8L1RSPjwvVEFCTEU+CiA8SDM+IDIuMy40IE1vdmluZyBBcm91bmQgdGhlIEhpc3RvcnkgTGlzdCA8L0gzPgpAQCAtNzQ2LDcgKzc3OCw3IEBACiBzZXQgb3IgY2hhbmdlZC4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMTciPjwvQT4KKzxBIE5BTUU9IklEWDIwIj48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+aGlzdG9yeV9zZXRfcG9zPC9CPiA8ST4oaW50IHBvcyk8L0k+CiA8REQ+U2V0IHRoZSBjdXJyZW50IGhpc3Rvcnkgb2Zmc2V0IHRvIDxWQVI+cG9zPC9WQVI+LCBhbiBhYnNvbHV0ZSBpbmRleApAQCAtNzU2LDcgKzc4OCw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgxOCI+PC9BPgorPEEgTkFNRT0iSURYMjEiPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IEhJU1RfRU5UUlkgKiA8Qj5wcmV2aW91c19oaXN0b3J5PC9CPiA8ST4odm9pZCk8L0k+CiA8REQ+QmFjayB1cCB0aGUgY3VycmVudCBoaXN0b3J5IG9mZnNldCB0byB0aGUgcHJldmlvdXMgaGlzdG9yeSBlbnRyeSwgYW5kCkBAIC03NjUsNyArNzk3LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDE5Ij48L0E+Cis8QSBOQU1FPSJJRFgyMiI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gSElTVF9FTlRSWSAqIDxCPm5leHRfaGlzdG9yeTwvQj4gPEk+KHZvaWQpPC9JPgogPEREPk1vdmUgdGhlIGN1cnJlbnQgaGlzdG9yeSBvZmZzZXQgZm9yd2FyZCB0byB0aGUgbmV4dCBoaXN0b3J5IGVudHJ5LCBhbmQKQEAgLTc4NSw3ICs4MTcsNyBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxNyI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMjIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMz4gMi4zLjUgU2VhcmNoaW5nIHRoZSBIaXN0b3J5IExpc3QgPC9IMz4KQEAgLTc5NiwxMCArODI4LDEwIEBACiBhIHNwZWNpZmljIHN0cmluZy4gIFNlYXJjaGluZyBtYXkgYmUgcGVyZm9ybWVkIGJvdGggZm9yd2FyZCBhbmQgYmFja3dhcmQKIGZyb20gdGhlIGN1cnJlbnQgaGlzdG9yeSBwb3NpdGlvbi4gIFRoZSBzZWFyY2ggbWF5IGJlIDxFTT5hbmNob3JlZDwvRU0+LAogbWVhbmluZyB0aGF0IHRoZSBzdHJpbmcgbXVzdCBtYXRjaCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBoaXN0b3J5IGVudHJ5LgotPEEgTkFNRT0iSURYMjAiPjwvQT4KKzxBIE5BTUU9IklEWDIzIj48L0E+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDIxIj48L0E+Cis8QSBOQU1FPSJJRFgyNCI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPmhpc3Rvcnlfc2VhcmNoPC9CPiA8ST4oY29uc3QgY2hhciAqc3RyaW5nLCBpbnQgZGlyZWN0aW9uKTwvST4KIDxERD5TZWFyY2ggdGhlIGhpc3RvcnkgZm9yIDxWQVI+c3RyaW5nPC9WQVI+LCBzdGFydGluZyBhdCB0aGUgY3VycmVudCBoaXN0b3J5IG9mZnNldC4KQEAgLTgxMyw3ICs4NDUsNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMjIiPjwvQT4KKzxBIE5BTUU9IklEWDI1Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+aGlzdG9yeV9zZWFyY2hfcHJlZml4PC9CPiA8ST4oY29uc3QgY2hhciAqc3RyaW5nLCBpbnQgZGlyZWN0aW9uKTwvST4KIDxERD5TZWFyY2ggdGhlIGhpc3RvcnkgZm9yIDxWQVI+c3RyaW5nPC9WQVI+LCBzdGFydGluZyBhdCB0aGUgY3VycmVudCBoaXN0b3J5CkBAIC04MjYsNyArODU4LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDIzIj48L0E+Cis8QSBOQU1FPSJJRFgyNiI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPmhpc3Rvcnlfc2VhcmNoX3BvczwvQj4gPEk+KGNvbnN0IGNoYXIgKnN0cmluZywgaW50IGRpcmVjdGlvbiwgaW50IHBvcyk8L0k+CiA8REQ+U2VhcmNoIGZvciA8VkFSPnN0cmluZzwvVkFSPiBpbiB0aGUgaGlzdG9yeSBsaXN0LCBzdGFydGluZyBhdCA8VkFSPnBvczwvVkFSPiwgYW4KQEAgLTg0Nyw3ICs4NzksNyBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxNyI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMjIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMz4gMi4zLjYgTWFuYWdpbmcgdGhlIEhpc3RvcnkgRmlsZSA8L0gzPgpAQCAtODU4LDcgKzg5MCw3IEBACiBUaGlzIHNlY3Rpb24gZG9jdW1lbnRzIHRoZSBmdW5jdGlvbnMgZm9yIG1hbmFnaW5nIGEgaGlzdG9yeSBmaWxlLgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyNCI+PC9BPgorPEEgTkFNRT0iSURYMjciPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IGludCA8Qj5yZWFkX2hpc3Rvcnk8L0I+IDxJPihjb25zdCBjaGFyICpmaWxlbmFtZSk8L0k+CiA8REQ+QWRkIHRoZSBjb250ZW50cyBvZiA8VkFSPmZpbGVuYW1lPC9WQVI+IHRvIHRoZSBoaXN0b3J5IGxpc3QsIGEgbGluZSBhdCBhIHRpbWUuCkBAIC04NjcsNyArODk5LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDI1Ij48L0E+Cis8QSBOQU1FPSJJRFgyOCI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPnJlYWRfaGlzdG9yeV9yYW5nZTwvQj4gPEk+KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBpbnQgZnJvbSwgaW50IHRvKTwvST4KIDxERD5SZWFkIGEgcmFuZ2Ugb2YgbGluZXMgZnJvbSA8VkFSPmZpbGVuYW1lPC9WQVI+LCBhZGRpbmcgdGhlbSB0byB0aGUgaGlzdG9yeSBsaXN0LgpAQCAtODc5LDcgKzkxMSw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyNiI+PC9BPgorPEEgTkFNRT0iSURYMjkiPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IGludCA8Qj53cml0ZV9oaXN0b3J5PC9CPiA8ST4oY29uc3QgY2hhciAqZmlsZW5hbWUpPC9JPgogPEREPldyaXRlIHRoZSBjdXJyZW50IGhpc3RvcnkgdG8gPFZBUj5maWxlbmFtZTwvVkFSPiwgb3ZlcndyaXRpbmcgPFZBUj5maWxlbmFtZTwvVkFSPgpAQCAtODkwLDcgKzkyMiw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyNyI+PC9BPgorPEEgTkFNRT0iSURYMzAiPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IGludCA8Qj5hcHBlbmRfaGlzdG9yeTwvQj4gPEk+KGludCBuZWxlbWVudHMsIGNvbnN0IGNoYXIgKmZpbGVuYW1lKTwvST4KIDxERD5BcHBlbmQgdGhlIGxhc3QgPFZBUj5uZWxlbWVudHM8L1ZBUj4gb2YgdGhlIGhpc3RvcnkgbGlzdCB0byA8VkFSPmZpbGVuYW1lPC9WQVI+LgpAQCAtODk5LDcgKzkzMSw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyOCI+PC9BPgorPEEgTkFNRT0iSURYMzEiPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IGludCA8Qj5oaXN0b3J5X3RydW5jYXRlX2ZpbGU8L0I+IDxJPihjb25zdCBjaGFyICpmaWxlbmFtZSwgaW50IG5saW5lcyk8L0k+CiA8REQ+VHJ1bmNhdGUgdGhlIGhpc3RvcnkgZmlsZSA8VkFSPmZpbGVuYW1lPC9WQVI+LCBsZWF2aW5nIG9ubHkgdGhlIGxhc3QKQEAgLTkyMCw3ICs5NTIsNyBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxNyI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMjIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMz4gMi4zLjcgSGlzdG9yeSBFeHBhbnNpb24gPC9IMz4KQEAgLTkzMCw3ICs5NjIsNyBAQAogVGhlc2UgZnVuY3Rpb25zIGltcGxlbWVudCBoaXN0b3J5IGV4cGFuc2lvbi4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMjkiPjwvQT4KKzxBIE5BTUU9IklEWDMyIj48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+aGlzdG9yeV9leHBhbmQ8L0I+IDxJPihjaGFyICpzdHJpbmcsIGNoYXIgKipvdXRwdXQpPC9JPgogPEREPkV4cGFuZCA8VkFSPnN0cmluZzwvVkFSPiwgcGxhY2luZyB0aGUgcmVzdWx0IGludG8gPFZBUj5vdXRwdXQ8L1ZBUj4sIGEgcG9pbnRlcgpAQCAtOTU1LDcgKzk4Nyw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgzMCI+PC9BPgorPEEgTkFNRT0iSURYMzMiPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IGNoYXIgKiA8Qj5nZXRfaGlzdG9yeV9ldmVudDwvQj4gPEk+KGNvbnN0IGNoYXIgKnN0cmluZywgaW50ICpjaW5kZXgsIGludCBxY2hhcik8L0k+CiA8REQ+UmV0dXJucyB0aGUgdGV4dCBvZiB0aGUgaGlzdG9yeSBldmVudCBiZWdpbm5pbmcgYXQgPFZBUj5zdHJpbmc8L1ZBUj4gKwpAQCAtOTY3LDcgKzk5OSw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgzMSI+PC9BPgorPEEgTkFNRT0iSURYMzQiPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IGNoYXIgKiogPEI+aGlzdG9yeV90b2tlbml6ZTwvQj4gPEk+KGNvbnN0IGNoYXIgKnN0cmluZyk8L0k+CiA8REQ+UmV0dXJuIGFuIGFycmF5IG9mIHRva2VucyBwYXJzZWQgb3V0IG9mIDxWQVI+c3RyaW5nPC9WQVI+LCBtdWNoIGFzIHRoZQpAQCAtOTc3LDcgKzEwMDksNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMzIiPjwvQT4KKzxBIE5BTUU9IklEWDM1Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBjaGFyICogPEI+aGlzdG9yeV9hcmdfZXh0cmFjdDwvQj4gPEk+KGludCBmaXJzdCwgaW50IGxhc3QsIGNvbnN0IGNoYXIgKnN0cmluZyk8L0k+CiA8REQ+RXh0cmFjdCBhIHN0cmluZyBzZWdtZW50IGNvbnNpc3Rpbmcgb2YgdGhlIDxWQVI+Zmlyc3Q8L1ZBUj4gdGhyb3VnaCA8VkFSPmxhc3Q8L1ZBUj4KQEAgLTk5Nyw3ICsxMDI5LDcgQEAKIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTkiPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxOSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzIyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+CiA8L1RSPjwvVEFCTEU+CiA8SDI+IDIuNCBIaXN0b3J5IFZhcmlhYmxlcyA8L0gyPgpAQCAtMTAwOCwyMSArMTA0MCwyMSBAQAogdGhlIEdOVSBIaXN0b3J5IExpYnJhcnkuCiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDMzIj48L0E+Cis8QSBOQU1FPSJJRFgzNiI+PC9BPgogPERMPgogPERUPjxVPlZhcmlhYmxlOjwvVT4gaW50IDxCPmhpc3RvcnlfYmFzZTwvQj4KIDxERD5UaGUgbG9naWNhbCBvZmZzZXQgb2YgdGhlIGZpcnN0IGVudHJ5IGluIHRoZSBoaXN0b3J5IGxpc3QuCiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgzNCI+PC9BPgorPEEgTkFNRT0iSURYMzciPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IGludCA8Qj5oaXN0b3J5X2xlbmd0aDwvQj4KIDxERD5UaGUgbnVtYmVyIG9mIGVudHJpZXMgY3VycmVudGx5IHN0b3JlZCBpbiB0aGUgaGlzdG9yeSBsaXN0LgogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMzUiPjwvQT4KKzxBIE5BTUU9IklEWDM4Ij48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBpbnQgPEI+aGlzdG9yeV9tYXhfZW50cmllczwvQj4KIDxERD5UaGUgbWF4aW11bSBudW1iZXIgb2YgaGlzdG9yeSBlbnRyaWVzLiAgVGhpcyBtdXN0IGJlIGNoYW5nZWQgdXNpbmcKQEAgLTEwMzAsNyArMTA2MiwxNiBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMzYiPjwvQT4KKzxBIE5BTUU9IklEWDM5Ij48L0E+Cis8REw+Cis8RFQ+PFU+VmFyaWFibGU6PC9VPiBpbnQgPEI+aGlzdG9yeV93cml0ZV90aW1lc3RhbXBzPC9CPgorPEREPklmIG5vbi16ZXJvLCB0aW1lc3RhbXBzIGFyZSB3cml0dGVuIHRvIHRoZSBoaXN0b3J5IGZpbGUsIHNvIHRoZXkgY2FuIGJlCitwcmVzZXJ2ZWQgYmV0d2VlbiBzZXNzaW9ucy4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDAsIG1lYW5pbmcgdGhhdAordGltZXN0YW1wcyBhcmUgbm90IHNhdmVkLgorPC9ETD4KKzwvUD48UD4KKworPEEgTkFNRT0iSURYNDAiPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IGNoYXIgPEI+aGlzdG9yeV9leHBhbnNpb25fY2hhcjwvQj4KIDxERD5UaGUgY2hhcmFjdGVyIHRoYXQgaW50cm9kdWNlcyBhIGhpc3RvcnkgZXZlbnQuICBUaGUgZGVmYXVsdCBpcyA8U0FNUD5gISc8L1NBTVA+LgpAQCAtMTAzOCw3ICsxMDc5LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDM3Ij48L0E+Cis8QSBOQU1FPSJJRFg0MSI+PC9BPgogPERMPgogPERUPjxVPlZhcmlhYmxlOjwvVT4gY2hhciA8Qj5oaXN0b3J5X3N1YnN0X2NoYXI8L0I+CiA8REQ+VGhlIGNoYXJhY3RlciB0aGF0IGludm9rZXMgd29yZCBzdWJzdGl0dXRpb24gaWYgZm91bmQgYXQgdGhlIHN0YXJ0IG9mCkBAIC0xMDQ2LDcgKzEwODcsNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMzgiPjwvQT4KKzxBIE5BTUU9IklEWDQyIj48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBjaGFyIDxCPmhpc3RvcnlfY29tbWVudF9jaGFyPC9CPgogPEREPkR1cmluZyB0b2tlbml6YXRpb24sIGlmIHRoaXMgY2hhcmFjdGVyIGlzIHNlZW4gYXMgdGhlIGZpcnN0IGNoYXJhY3RlcgpAQCAtMTA1Niw3ICsxMDk3LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDM5Ij48L0E+Cis8QSBOQU1FPSJJRFg0MyI+PC9BPgogPERMPgogPERUPjxVPlZhcmlhYmxlOjwvVT4gY2hhciAqIDxCPmhpc3Rvcnlfd29yZF9kZWxpbWl0ZXJzPC9CPgogPEREPlRoZSBjaGFyYWN0ZXJzIHRoYXQgc2VwYXJhdGUgdG9rZW5zIGZvciA8Q09ERT5oaXN0b3J5X3Rva2VuaXplKCk8L0NPREU+LgpAQCAtMTA2NCwxNiArMTEwNSw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFg0MCI+PC9BPgotPERMPgotPERUPjxVPlZhcmlhYmxlOjwvVT4gY2hhciAqIDxCPmhpc3Rvcnlfbm9fZXhwYW5kX2NoYXJzPC9CPgotPEREPlRoZSBsaXN0IG9mIGNoYXJhY3RlcnMgd2hpY2ggaW5oaWJpdCBoaXN0b3J5IGV4cGFuc2lvbiBpZiBmb3VuZCBpbW1lZGlhdGVseQotZm9sbG93aW5nIDxWQVI+aGlzdG9yeV9leHBhbnNpb25fY2hhcjwvVkFSPi4gIFRoZSBkZWZhdWx0IGlzIHNwYWNlLCB0YWIsIG5ld2xpbmUsCi1jYXJyaWFnZSByZXR1cm4sIGFuZCA8U0FNUD5gPSc8L1NBTVA+LgotPC9ETD4KLTwvUD48UD4KLQotPEEgTkFNRT0iSURYNDEiPjwvQT4KKzxBIE5BTUU9IklEWDQ0Ij48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBjaGFyICogPEI+aGlzdG9yeV9zZWFyY2hfZGVsaW1pdGVyX2NoYXJzPC9CPgogPEREPlRoZSBsaXN0IG9mIGFkZGl0aW9uYWwgY2hhcmFjdGVycyB3aGljaCBjYW4gZGVsaW1pdCBhIGhpc3Rvcnkgc2VhcmNoCkBAIC0xMDgyLDcgKzExMTQsMTYgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDQyIj48L0E+Cis8QSBOQU1FPSJJRFg0NSI+PC9BPgorPERMPgorPERUPjxVPlZhcmlhYmxlOjwvVT4gY2hhciAqIDxCPmhpc3Rvcnlfbm9fZXhwYW5kX2NoYXJzPC9CPgorPEREPlRoZSBsaXN0IG9mIGNoYXJhY3RlcnMgd2hpY2ggaW5oaWJpdCBoaXN0b3J5IGV4cGFuc2lvbiBpZiBmb3VuZCBpbW1lZGlhdGVseQorZm9sbG93aW5nIDxWQVI+aGlzdG9yeV9leHBhbnNpb25fY2hhcjwvVkFSPi4gIFRoZSBkZWZhdWx0IGlzIHNwYWNlLCB0YWIsIG5ld2xpbmUsCitjYXJyaWFnZSByZXR1cm4sIGFuZCA8U0FNUD5gPSc8L1NBTVA+LgorPC9ETD4KKzwvUD48UD4KKworPEEgTkFNRT0iSURYNDYiPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IGludCA8Qj5oaXN0b3J5X3F1b3Rlc19pbmhpYml0X2V4cGFuc2lvbjwvQj4KIDxERD5JZiBub24temVybywgc2luZ2xlLXF1b3RlZCB3b3JkcyBhcmUgbm90IHNjYW5uZWQgZm9yIHRoZSBoaXN0b3J5IGV4cGFuc2lvbgpAQCAtMTA5MCw3ICsxMTMxLDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDQzIj48L0E+Cis8QSBOQU1FPSJJRFg0NyI+PC9BPgogPERMPgogPERUPjxVPlZhcmlhYmxlOjwvVT4gcmxfbGluZWJ1Zl9mdW5jX3QgKiA8Qj5oaXN0b3J5X2luaGliaXRfZXhwYW5zaW9uX2Z1bmN0aW9uPC9CPgogPEREPlRoaXMgc2hvdWxkIGJlIHNldCB0byB0aGUgYWRkcmVzcyBvZiBhIGZ1bmN0aW9uIHRoYXQgdGFrZXMgdHdvIGFyZ3VtZW50czoKQEAgLTExMTYsNyArMTE1Nyw3IEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE5Ij4gJmd0OyZndDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTkiPkluZGV4PC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMyMiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEgyPiAyLjUgSGlzdG9yeSBQcm9ncmFtbWluZyBFeGFtcGxlIDwvSDI+CkBAIC0xMjEzLDcgKzEyNTQsNyBAQAogfQogPC9GT05UPjwvcHJlPjwvdGQ+PC90cj48L3RhYmxlPjwvUD48UD4KIAotPEEgTkFNRT0iQ29uY2VwdCBJbmRleCI+PC9BPgorPEEgTkFNRT0iQ29weWluZyBUaGlzIE1hbnVhbCI+PC9BPgogPEhSIFNJWkU9IjYiPgogPEEgTkFNRT0iU0VDMTkiPjwvQT4KIDxUQUJMRSBDRUxMUEFERElORz0xIENFTExTUEFDSU5HPTEgQk9SREVSPTA+CkBAIC0xMjIxLDE4ICsxMjYyLDU4MSBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMyMCI+ICZndDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzYiPiAmbHQ7Jmx0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19Ub3AiPiBVcCA8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzIwIj4gJmd0OyZndDsgPC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMyMiI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMjIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KLTxIMT4gQS4gQ29uY2VwdCBJbmRleCA8L0gxPgorPEgxPiBBLiBDb3B5aW5nIFRoaXMgTWFudWFsIDwvSDE+CiA8IS0tZG9jaWQ6OlNFQzE5OjotLT4KKzxQPgorCis8QkxPQ0tRVU9URT48VEFCTEUgQk9SREVSPTAgQ0VMTFNQQUNJTkc9MD4gCis8VFI+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzIwIj5BLjEgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlPC9BPjwvVEQ+PFREPiZuYnNwOyZuYnNwOzwvVEQ+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+TGljZW5zZSBmb3IgY29weWluZyB0aGlzIG1hbnVhbC48L1REPjwvVFI+Cis8L1RBQkxFPjwvQkxPQ0tRVU9URT4KKzxQPgorCis8QSBOQU1FPSJHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UiPjwvQT4KKzxIUiBTSVpFPSI2Ij4KKzxBIE5BTUU9IlNFQzIwIj48L0E+Cis8VEFCTEUgQ0VMTFBBRERJTkc9MSBDRUxMU1BBQ0lORz0xIEJPUkRFUj0wPgorPFRSPjxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTkiPiAmbHQ7IDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMjEiPiAmZ3Q7IDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxOSI+ICZsdDsmbHQ7IDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTkiPiBVcCA8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzIyIj4gJmd0OyZndDsgPC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMjIiPkluZGV4PC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KKzwvVFI+PC9UQUJMRT4KKzxIMj4gQS4xIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZSA8L0gyPgorPCEtLWRvY2lkOjpTRUMyMDo6LS0+Cis8UD4KKworPEEgTkFNRT0iSURYNDgiPjwvQT4KKzxjZW50ZXI+CisgVmVyc2lvbiAxLjIsIE5vdmVtYmVyIDIwMDIKKzwvY2VudGVyPgorPC9QPjxQPgorCis8VEFCTEU+PHRyPjx0ZD4mbmJzcDs8L3RkPjx0ZCBjbGFzcz1kaXNwbGF5PjxwcmUgc3R5bGU9ImZvbnQtZmFtaWx5OiBzZXJpZiI+Q29weXJpZ2h0IChDKSAyMDAwLDIwMDEsMjAwMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKzU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3LCBVU0EKKworRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCitvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KKzwvcHJlPjwvdGQ+PC90cj48L3RhYmxlPjwvUD48UD4KKworPE9MPgorPExJPgorUFJFQU1CTEUKKzxQPgorCitUaGUgcHVycG9zZSBvZiB0aGlzIExpY2Vuc2UgaXMgdG8gbWFrZSBhIG1hbnVhbCwgdGV4dGJvb2ssIG9yIG90aGVyCitmdW5jdGlvbmFsIGFuZCB1c2VmdWwgZG9jdW1lbnQgPEVNPmZyZWU8L0VNPiBpbiB0aGUgc2Vuc2Ugb2YgZnJlZWRvbTogdG8KK2Fzc3VyZSBldmVyeW9uZSB0aGUgZWZmZWN0aXZlIGZyZWVkb20gdG8gY29weSBhbmQgcmVkaXN0cmlidXRlIGl0LAord2l0aCBvciB3aXRob3V0IG1vZGlmeWluZyBpdCwgZWl0aGVyIGNvbW1lcmNpYWxseSBvciBub25jb21tZXJjaWFsbHkuCitTZWNvbmRhcmlseSwgdGhpcyBMaWNlbnNlIHByZXNlcnZlcyBmb3IgdGhlIGF1dGhvciBhbmQgcHVibGlzaGVyIGEgd2F5Cit0byBnZXQgY3JlZGl0IGZvciB0aGVpciB3b3JrLCB3aGlsZSBub3QgYmVpbmcgY29uc2lkZXJlZCByZXNwb25zaWJsZQorZm9yIG1vZGlmaWNhdGlvbnMgbWFkZSBieSBvdGhlcnMuCis8L1A+PFA+CisKK1RoaXMgTGljZW5zZSBpcyBhIGtpbmQgb2YgImNvcHlsZWZ0Iiwgd2hpY2ggbWVhbnMgdGhhdCBkZXJpdmF0aXZlCit3b3JrcyBvZiB0aGUgZG9jdW1lbnQgbXVzdCB0aGVtc2VsdmVzIGJlIGZyZWUgaW4gdGhlIHNhbWUgc2Vuc2UuICBJdAorY29tcGxlbWVudHMgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB3aGljaCBpcyBhIGNvcHlsZWZ0CitsaWNlbnNlIGRlc2lnbmVkIGZvciBmcmVlIHNvZnR3YXJlLgorPC9QPjxQPgorCitXZSBoYXZlIGRlc2lnbmVkIHRoaXMgTGljZW5zZSBpbiBvcmRlciB0byB1c2UgaXQgZm9yIG1hbnVhbHMgZm9yIGZyZWUKK3NvZnR3YXJlLCBiZWNhdXNlIGZyZWUgc29mdHdhcmUgbmVlZHMgZnJlZSBkb2N1bWVudGF0aW9uOiBhIGZyZWUKK3Byb2dyYW0gc2hvdWxkIGNvbWUgd2l0aCBtYW51YWxzIHByb3ZpZGluZyB0aGUgc2FtZSBmcmVlZG9tcyB0aGF0IHRoZQorc29mdHdhcmUgZG9lcy4gIEJ1dCB0aGlzIExpY2Vuc2UgaXMgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgbWFudWFsczsKK2l0IGNhbiBiZSB1c2VkIGZvciBhbnkgdGV4dHVhbCB3b3JrLCByZWdhcmRsZXNzIG9mIHN1YmplY3QgbWF0dGVyIG9yCit3aGV0aGVyIGl0IGlzIHB1Ymxpc2hlZCBhcyBhIHByaW50ZWQgYm9vay4gIFdlIHJlY29tbWVuZCB0aGlzIExpY2Vuc2UKK3ByaW5jaXBhbGx5IGZvciB3b3JrcyB3aG9zZSBwdXJwb3NlIGlzIGluc3RydWN0aW9uIG9yIHJlZmVyZW5jZS4KKzwvUD48UD4KKworPExJPgorQVBQTElDQUJJTElUWSBBTkQgREVGSU5JVElPTlMKKzxQPgorCitUaGlzIExpY2Vuc2UgYXBwbGllcyB0byBhbnkgbWFudWFsIG9yIG90aGVyIHdvcmssIGluIGFueSBtZWRpdW0sIHRoYXQKK2NvbnRhaW5zIGEgbm90aWNlIHBsYWNlZCBieSB0aGUgY29weXJpZ2h0IGhvbGRlciBzYXlpbmcgaXQgY2FuIGJlCitkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLiAgU3VjaCBhIG5vdGljZSBncmFudHMgYQord29ybGQtd2lkZSwgcm95YWx0eS1mcmVlIGxpY2Vuc2UsIHVubGltaXRlZCBpbiBkdXJhdGlvbiwgdG8gdXNlIHRoYXQKK3dvcmsgdW5kZXIgdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGhlcmVpbi4gIFRoZSAiRG9jdW1lbnQiLCBiZWxvdywKK3JlZmVycyB0byBhbnkgc3VjaCBtYW51YWwgb3Igd29yay4gIEFueSBtZW1iZXIgb2YgdGhlIHB1YmxpYyBpcyBhCitsaWNlbnNlZSwgYW5kIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4gIFlvdSBhY2NlcHQgdGhlIGxpY2Vuc2UgaWYgeW91Citjb3B5LCBtb2RpZnkgb3IgZGlzdHJpYnV0ZSB0aGUgd29yayBpbiBhIHdheSByZXF1aXJpbmcgcGVybWlzc2lvbgordW5kZXIgY29weXJpZ2h0IGxhdy4KKzwvUD48UD4KKworQSAiTW9kaWZpZWQgVmVyc2lvbiIgb2YgdGhlIERvY3VtZW50IG1lYW5zIGFueSB3b3JrIGNvbnRhaW5pbmcgdGhlCitEb2N1bWVudCBvciBhIHBvcnRpb24gb2YgaXQsIGVpdGhlciBjb3BpZWQgdmVyYmF0aW0sIG9yIHdpdGgKK21vZGlmaWNhdGlvbnMgYW5kL29yIHRyYW5zbGF0ZWQgaW50byBhbm90aGVyIGxhbmd1YWdlLgorPC9QPjxQPgorCitBICJTZWNvbmRhcnkgU2VjdGlvbiIgaXMgYSBuYW1lZCBhcHBlbmRpeCBvciBhIGZyb250LW1hdHRlciBzZWN0aW9uCitvZiB0aGUgRG9jdW1lbnQgdGhhdCBkZWFscyBleGNsdXNpdmVseSB3aXRoIHRoZSByZWxhdGlvbnNoaXAgb2YgdGhlCitwdWJsaXNoZXJzIG9yIGF1dGhvcnMgb2YgdGhlIERvY3VtZW50IHRvIHRoZSBEb2N1bWVudCdzIG92ZXJhbGwKK3N1YmplY3QgKG9yIHRvIHJlbGF0ZWQgbWF0dGVycykgYW5kIGNvbnRhaW5zIG5vdGhpbmcgdGhhdCBjb3VsZCBmYWxsCitkaXJlY3RseSB3aXRoaW4gdGhhdCBvdmVyYWxsIHN1YmplY3QuICAoVGh1cywgaWYgdGhlIERvY3VtZW50IGlzIGluCitwYXJ0IGEgdGV4dGJvb2sgb2YgbWF0aGVtYXRpY3MsIGEgU2Vjb25kYXJ5IFNlY3Rpb24gbWF5IG5vdCBleHBsYWluCithbnkgbWF0aGVtYXRpY3MuKSAgVGhlIHJlbGF0aW9uc2hpcCBjb3VsZCBiZSBhIG1hdHRlciBvZiBoaXN0b3JpY2FsCitjb25uZWN0aW9uIHdpdGggdGhlIHN1YmplY3Qgb3Igd2l0aCByZWxhdGVkIG1hdHRlcnMsIG9yIG9mIGxlZ2FsLAorY29tbWVyY2lhbCwgcGhpbG9zb3BoaWNhbCwgZXRoaWNhbCBvciBwb2xpdGljYWwgcG9zaXRpb24gcmVnYXJkaW5nCit0aGVtLgorPC9QPjxQPgorCitUaGUgIkludmFyaWFudCBTZWN0aW9ucyIgYXJlIGNlcnRhaW4gU2Vjb25kYXJ5IFNlY3Rpb25zIHdob3NlIHRpdGxlcworYXJlIGRlc2lnbmF0ZWQsIGFzIGJlaW5nIHRob3NlIG9mIEludmFyaWFudCBTZWN0aW9ucywgaW4gdGhlIG5vdGljZQordGhhdCBzYXlzIHRoYXQgdGhlIERvY3VtZW50IGlzIHJlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZS4gIElmIGEKK3NlY3Rpb24gZG9lcyBub3QgZml0IHRoZSBhYm92ZSBkZWZpbml0aW9uIG9mIFNlY29uZGFyeSB0aGVuIGl0IGlzIG5vdAorYWxsb3dlZCB0byBiZSBkZXNpZ25hdGVkIGFzIEludmFyaWFudC4gIFRoZSBEb2N1bWVudCBtYXkgY29udGFpbiB6ZXJvCitJbnZhcmlhbnQgU2VjdGlvbnMuICBJZiB0aGUgRG9jdW1lbnQgZG9lcyBub3QgaWRlbnRpZnkgYW55IEludmFyaWFudAorU2VjdGlvbnMgdGhlbiB0aGVyZSBhcmUgbm9uZS4KKzwvUD48UD4KKworVGhlICJDb3ZlciBUZXh0cyIgYXJlIGNlcnRhaW4gc2hvcnQgcGFzc2FnZXMgb2YgdGV4dCB0aGF0IGFyZSBsaXN0ZWQsCithcyBGcm9udC1Db3ZlciBUZXh0cyBvciBCYWNrLUNvdmVyIFRleHRzLCBpbiB0aGUgbm90aWNlIHRoYXQgc2F5cyB0aGF0Cit0aGUgRG9jdW1lbnQgaXMgcmVsZWFzZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQSBGcm9udC1Db3ZlciBUZXh0IG1heQorYmUgYXQgbW9zdCA1IHdvcmRzLCBhbmQgYSBCYWNrLUNvdmVyIFRleHQgbWF5IGJlIGF0IG1vc3QgMjUgd29yZHMuCis8L1A+PFA+CisKK0EgIlRyYW5zcGFyZW50IiBjb3B5IG9mIHRoZSBEb2N1bWVudCBtZWFucyBhIG1hY2hpbmUtcmVhZGFibGUgY29weSwKK3JlcHJlc2VudGVkIGluIGEgZm9ybWF0IHdob3NlIHNwZWNpZmljYXRpb24gaXMgYXZhaWxhYmxlIHRvIHRoZQorZ2VuZXJhbCBwdWJsaWMsIHRoYXQgaXMgc3VpdGFibGUgZm9yIHJldmlzaW5nIHRoZSBkb2N1bWVudAorc3RyYWlnaHRmb3J3YXJkbHkgd2l0aCBnZW5lcmljIHRleHQgZWRpdG9ycyBvciAoZm9yIGltYWdlcyBjb21wb3NlZCBvZgorcGl4ZWxzKSBnZW5lcmljIHBhaW50IHByb2dyYW1zIG9yIChmb3IgZHJhd2luZ3MpIHNvbWUgd2lkZWx5IGF2YWlsYWJsZQorZHJhd2luZyBlZGl0b3IsIGFuZCB0aGF0IGlzIHN1aXRhYmxlIGZvciBpbnB1dCB0byB0ZXh0IGZvcm1hdHRlcnMgb3IKK2ZvciBhdXRvbWF0aWMgdHJhbnNsYXRpb24gdG8gYSB2YXJpZXR5IG9mIGZvcm1hdHMgc3VpdGFibGUgZm9yIGlucHV0Cit0byB0ZXh0IGZvcm1hdHRlcnMuICBBIGNvcHkgbWFkZSBpbiBhbiBvdGhlcndpc2UgVHJhbnNwYXJlbnQgZmlsZQorZm9ybWF0IHdob3NlIG1hcmt1cCwgb3IgYWJzZW5jZSBvZiBtYXJrdXAsIGhhcyBiZWVuIGFycmFuZ2VkIHRvIHRod2FydAorb3IgZGlzY291cmFnZSBzdWJzZXF1ZW50IG1vZGlmaWNhdGlvbiBieSByZWFkZXJzIGlzIG5vdCBUcmFuc3BhcmVudC4KK0FuIGltYWdlIGZvcm1hdCBpcyBub3QgVHJhbnNwYXJlbnQgaWYgdXNlZCBmb3IgYW55IHN1YnN0YW50aWFsIGFtb3VudAorb2YgdGV4dC4gIEEgY29weSB0aGF0IGlzIG5vdCAiVHJhbnNwYXJlbnQiIGlzIGNhbGxlZCAiT3BhcXVlIi4KKzwvUD48UD4KKworRXhhbXBsZXMgb2Ygc3VpdGFibGUgZm9ybWF0cyBmb3IgVHJhbnNwYXJlbnQgY29waWVzIGluY2x1ZGUgcGxhaW4KK0FTQ0lJIHdpdGhvdXQgbWFya3VwLCBUZXhpbmZvIGlucHV0IGZvcm1hdCwgTGFUZVggaW5wdXQKK2Zvcm1hdCwgPEZPTlQgU0laRT0iLTEiPlNHTUw8L0ZPTlQ+IG9yIDxGT05UIFNJWkU9Ii0xIj5YTUw8L0ZPTlQ+IHVzaW5nIGEgcHVibGljbHkgYXZhaWxhYmxlCis8Rk9OVCBTSVpFPSItMSI+RFREPC9GT05UPiwgYW5kIHN0YW5kYXJkLWNvbmZvcm1pbmcgc2ltcGxlIDxGT05UIFNJWkU9Ii0xIj5IVE1MPC9GT05UPiwKK1Bvc3RTY3JpcHQgb3IgPEZPTlQgU0laRT0iLTEiPlBERjwvRk9OVD4gZGVzaWduZWQgZm9yIGh1bWFuIG1vZGlmaWNhdGlvbi4gIEV4YW1wbGVzCitvZiB0cmFuc3BhcmVudCBpbWFnZSBmb3JtYXRzIGluY2x1ZGUgPEZPTlQgU0laRT0iLTEiPlBORzwvRk9OVD4sIDxGT05UIFNJWkU9Ii0xIj5YQ0Y8L0ZPTlQ+IGFuZAorPEZPTlQgU0laRT0iLTEiPkpQRzwvRk9OVD4uICBPcGFxdWUgZm9ybWF0cyBpbmNsdWRlIHByb3ByaWV0YXJ5IGZvcm1hdHMgdGhhdCBjYW4gYmUKK3JlYWQgYW5kIGVkaXRlZCBvbmx5IGJ5IHByb3ByaWV0YXJ5IHdvcmQgcHJvY2Vzc29ycywgPEZPTlQgU0laRT0iLTEiPlNHTUw8L0ZPTlQ+IG9yCis8Rk9OVCBTSVpFPSItMSI+WE1MPC9GT05UPiBmb3Igd2hpY2ggdGhlIDxGT05UIFNJWkU9Ii0xIj5EVEQ8L0ZPTlQ+IGFuZC9vciBwcm9jZXNzaW5nIHRvb2xzIGFyZQorbm90IGdlbmVyYWxseSBhdmFpbGFibGUsIGFuZCB0aGUgbWFjaGluZS1nZW5lcmF0ZWQgPEZPTlQgU0laRT0iLTEiPkhUTUw8L0ZPTlQ+LAorUG9zdFNjcmlwdCBvciA8Rk9OVCBTSVpFPSItMSI+UERGPC9GT05UPiBwcm9kdWNlZCBieSBzb21lIHdvcmQgcHJvY2Vzc29ycyBmb3IKK291dHB1dCBwdXJwb3NlcyBvbmx5LgorPC9QPjxQPgorCitUaGUgIlRpdGxlIFBhZ2UiIG1lYW5zLCBmb3IgYSBwcmludGVkIGJvb2ssIHRoZSB0aXRsZSBwYWdlIGl0c2VsZiwKK3BsdXMgc3VjaCBmb2xsb3dpbmcgcGFnZXMgYXMgYXJlIG5lZWRlZCB0byBob2xkLCBsZWdpYmx5LCB0aGUgbWF0ZXJpYWwKK3RoaXMgTGljZW5zZSByZXF1aXJlcyB0byBhcHBlYXIgaW4gdGhlIHRpdGxlIHBhZ2UuICBGb3Igd29ya3MgaW4KK2Zvcm1hdHMgd2hpY2ggZG8gbm90IGhhdmUgYW55IHRpdGxlIHBhZ2UgYXMgc3VjaCwgIlRpdGxlIFBhZ2UiIG1lYW5zCit0aGUgdGV4dCBuZWFyIHRoZSBtb3N0IHByb21pbmVudCBhcHBlYXJhbmNlIG9mIHRoZSB3b3JrJ3MgdGl0bGUsCitwcmVjZWRpbmcgdGhlIGJlZ2lubmluZyBvZiB0aGUgYm9keSBvZiB0aGUgdGV4dC4KKzwvUD48UD4KKworQSBzZWN0aW9uICJFbnRpdGxlZCBYWVoiIG1lYW5zIGEgbmFtZWQgc3VidW5pdCBvZiB0aGUgRG9jdW1lbnQgd2hvc2UKK3RpdGxlIGVpdGhlciBpcyBwcmVjaXNlbHkgWFlaIG9yIGNvbnRhaW5zIFhZWiBpbiBwYXJlbnRoZXNlcyBmb2xsb3dpbmcKK3RleHQgdGhhdCB0cmFuc2xhdGVzIFhZWiBpbiBhbm90aGVyIGxhbmd1YWdlLiAgKEhlcmUgWFlaIHN0YW5kcyBmb3IgYQorc3BlY2lmaWMgc2VjdGlvbiBuYW1lIG1lbnRpb25lZCBiZWxvdywgc3VjaCBhcyAiQWNrbm93bGVkZ2VtZW50cyIsCisiRGVkaWNhdGlvbnMiLCAiRW5kb3JzZW1lbnRzIiwgb3IgIkhpc3RvcnkiLikgIFRvICJQcmVzZXJ2ZSB0aGUgVGl0bGUiCitvZiBzdWNoIGEgc2VjdGlvbiB3aGVuIHlvdSBtb2RpZnkgdGhlIERvY3VtZW50IG1lYW5zIHRoYXQgaXQgcmVtYWlucyBhCitzZWN0aW9uICJFbnRpdGxlZCBYWVoiIGFjY29yZGluZyB0byB0aGlzIGRlZmluaXRpb24uCis8L1A+PFA+CisKK1RoZSBEb2N1bWVudCBtYXkgaW5jbHVkZSBXYXJyYW50eSBEaXNjbGFpbWVycyBuZXh0IHRvIHRoZSBub3RpY2Ugd2hpY2gKK3N0YXRlcyB0aGF0IHRoaXMgTGljZW5zZSBhcHBsaWVzIHRvIHRoZSBEb2N1bWVudC4gIFRoZXNlIFdhcnJhbnR5CitEaXNjbGFpbWVycyBhcmUgY29uc2lkZXJlZCB0byBiZSBpbmNsdWRlZCBieSByZWZlcmVuY2UgaW4gdGhpcworTGljZW5zZSwgYnV0IG9ubHkgYXMgcmVnYXJkcyBkaXNjbGFpbWluZyB3YXJyYW50aWVzOiBhbnkgb3RoZXIKK2ltcGxpY2F0aW9uIHRoYXQgdGhlc2UgV2FycmFudHkgRGlzY2xhaW1lcnMgbWF5IGhhdmUgaXMgdm9pZCBhbmQgaGFzCitubyBlZmZlY3Qgb24gdGhlIG1lYW5pbmcgb2YgdGhpcyBMaWNlbnNlLgorPC9QPjxQPgorCis8TEk+CitWRVJCQVRJTSBDT1BZSU5HCis8UD4KKworWW91IG1heSBjb3B5IGFuZCBkaXN0cmlidXRlIHRoZSBEb2N1bWVudCBpbiBhbnkgbWVkaXVtLCBlaXRoZXIKK2NvbW1lcmNpYWxseSBvciBub25jb21tZXJjaWFsbHksIHByb3ZpZGVkIHRoYXQgdGhpcyBMaWNlbnNlLCB0aGUKK2NvcHlyaWdodCBub3RpY2VzLCBhbmQgdGhlIGxpY2Vuc2Ugbm90aWNlIHNheWluZyB0aGlzIExpY2Vuc2UgYXBwbGllcwordG8gdGhlIERvY3VtZW50IGFyZSByZXByb2R1Y2VkIGluIGFsbCBjb3BpZXMsIGFuZCB0aGF0IHlvdSBhZGQgbm8gb3RoZXIKK2NvbmRpdGlvbnMgd2hhdHNvZXZlciB0byB0aG9zZSBvZiB0aGlzIExpY2Vuc2UuICBZb3UgbWF5IG5vdCB1c2UKK3RlY2huaWNhbCBtZWFzdXJlcyB0byBvYnN0cnVjdCBvciBjb250cm9sIHRoZSByZWFkaW5nIG9yIGZ1cnRoZXIKK2NvcHlpbmcgb2YgdGhlIGNvcGllcyB5b3UgbWFrZSBvciBkaXN0cmlidXRlLiAgSG93ZXZlciwgeW91IG1heSBhY2NlcHQKK2NvbXBlbnNhdGlvbiBpbiBleGNoYW5nZSBmb3IgY29waWVzLiAgSWYgeW91IGRpc3RyaWJ1dGUgYSBsYXJnZSBlbm91Z2gKK251bWJlciBvZiBjb3BpZXMgeW91IG11c3QgYWxzbyBmb2xsb3cgdGhlIGNvbmRpdGlvbnMgaW4gc2VjdGlvbiAzLgorPC9QPjxQPgorCitZb3UgbWF5IGFsc28gbGVuZCBjb3BpZXMsIHVuZGVyIHRoZSBzYW1lIGNvbmRpdGlvbnMgc3RhdGVkIGFib3ZlLCBhbmQKK3lvdSBtYXkgcHVibGljbHkgZGlzcGxheSBjb3BpZXMuCis8L1A+PFA+CisKKzxMST4KK0NPUFlJTkcgSU4gUVVBTlRJVFkKKzxQPgorCitJZiB5b3UgcHVibGlzaCBwcmludGVkIGNvcGllcyAob3IgY29waWVzIGluIG1lZGlhIHRoYXQgY29tbW9ubHkgaGF2ZQorcHJpbnRlZCBjb3ZlcnMpIG9mIHRoZSBEb2N1bWVudCwgbnVtYmVyaW5nIG1vcmUgdGhhbiAxMDAsIGFuZCB0aGUKK0RvY3VtZW50J3MgbGljZW5zZSBub3RpY2UgcmVxdWlyZXMgQ292ZXIgVGV4dHMsIHlvdSBtdXN0IGVuY2xvc2UgdGhlCitjb3BpZXMgaW4gY292ZXJzIHRoYXQgY2FycnksIGNsZWFybHkgYW5kIGxlZ2libHksIGFsbCB0aGVzZSBDb3ZlcgorVGV4dHM6IEZyb250LUNvdmVyIFRleHRzIG9uIHRoZSBmcm9udCBjb3ZlciwgYW5kIEJhY2stQ292ZXIgVGV4dHMgb24KK3RoZSBiYWNrIGNvdmVyLiAgQm90aCBjb3ZlcnMgbXVzdCBhbHNvIGNsZWFybHkgYW5kIGxlZ2libHkgaWRlbnRpZnkKK3lvdSBhcyB0aGUgcHVibGlzaGVyIG9mIHRoZXNlIGNvcGllcy4gIFRoZSBmcm9udCBjb3ZlciBtdXN0IHByZXNlbnQKK3RoZSBmdWxsIHRpdGxlIHdpdGggYWxsIHdvcmRzIG9mIHRoZSB0aXRsZSBlcXVhbGx5IHByb21pbmVudCBhbmQKK3Zpc2libGUuICBZb3UgbWF5IGFkZCBvdGhlciBtYXRlcmlhbCBvbiB0aGUgY292ZXJzIGluIGFkZGl0aW9uLgorQ29weWluZyB3aXRoIGNoYW5nZXMgbGltaXRlZCB0byB0aGUgY292ZXJzLCBhcyBsb25nIGFzIHRoZXkgcHJlc2VydmUKK3RoZSB0aXRsZSBvZiB0aGUgRG9jdW1lbnQgYW5kIHNhdGlzZnkgdGhlc2UgY29uZGl0aW9ucywgY2FuIGJlIHRyZWF0ZWQKK2FzIHZlcmJhdGltIGNvcHlpbmcgaW4gb3RoZXIgcmVzcGVjdHMuCis8L1A+PFA+CisKK0lmIHRoZSByZXF1aXJlZCB0ZXh0cyBmb3IgZWl0aGVyIGNvdmVyIGFyZSB0b28gdm9sdW1pbm91cyB0byBmaXQKK2xlZ2libHksIHlvdSBzaG91bGQgcHV0IHRoZSBmaXJzdCBvbmVzIGxpc3RlZCAoYXMgbWFueSBhcyBmaXQKK3JlYXNvbmFibHkpIG9uIHRoZSBhY3R1YWwgY292ZXIsIGFuZCBjb250aW51ZSB0aGUgcmVzdCBvbnRvIGFkamFjZW50CitwYWdlcy4KKzwvUD48UD4KKworSWYgeW91IHB1Ymxpc2ggb3IgZGlzdHJpYnV0ZSBPcGFxdWUgY29waWVzIG9mIHRoZSBEb2N1bWVudCBudW1iZXJpbmcKK21vcmUgdGhhbiAxMDAsIHlvdSBtdXN0IGVpdGhlciBpbmNsdWRlIGEgbWFjaGluZS1yZWFkYWJsZSBUcmFuc3BhcmVudAorY29weSBhbG9uZyB3aXRoIGVhY2ggT3BhcXVlIGNvcHksIG9yIHN0YXRlIGluIG9yIHdpdGggZWFjaCBPcGFxdWUgY29weQorYSBjb21wdXRlci1uZXR3b3JrIGxvY2F0aW9uIGZyb20gd2hpY2ggdGhlIGdlbmVyYWwgbmV0d29yay11c2luZworcHVibGljIGhhcyBhY2Nlc3MgdG8gZG93bmxvYWQgdXNpbmcgcHVibGljLXN0YW5kYXJkIG5ldHdvcmsgcHJvdG9jb2xzCithIGNvbXBsZXRlIFRyYW5zcGFyZW50IGNvcHkgb2YgdGhlIERvY3VtZW50LCBmcmVlIG9mIGFkZGVkIG1hdGVyaWFsLgorSWYgeW91IHVzZSB0aGUgbGF0dGVyIG9wdGlvbiwgeW91IG11c3QgdGFrZSByZWFzb25hYmx5IHBydWRlbnQgc3RlcHMsCit3aGVuIHlvdSBiZWdpbiBkaXN0cmlidXRpb24gb2YgT3BhcXVlIGNvcGllcyBpbiBxdWFudGl0eSwgdG8gZW5zdXJlCit0aGF0IHRoaXMgVHJhbnNwYXJlbnQgY29weSB3aWxsIHJlbWFpbiB0aHVzIGFjY2Vzc2libGUgYXQgdGhlIHN0YXRlZAorbG9jYXRpb24gdW50aWwgYXQgbGVhc3Qgb25lIHllYXIgYWZ0ZXIgdGhlIGxhc3QgdGltZSB5b3UgZGlzdHJpYnV0ZSBhbgorT3BhcXVlIGNvcHkgKGRpcmVjdGx5IG9yIHRocm91Z2ggeW91ciBhZ2VudHMgb3IgcmV0YWlsZXJzKSBvZiB0aGF0CitlZGl0aW9uIHRvIHRoZSBwdWJsaWMuCis8L1A+PFA+CisKK0l0IGlzIHJlcXVlc3RlZCwgYnV0IG5vdCByZXF1aXJlZCwgdGhhdCB5b3UgY29udGFjdCB0aGUgYXV0aG9ycyBvZiB0aGUKK0RvY3VtZW50IHdlbGwgYmVmb3JlIHJlZGlzdHJpYnV0aW5nIGFueSBsYXJnZSBudW1iZXIgb2YgY29waWVzLCB0byBnaXZlCit0aGVtIGEgY2hhbmNlIHRvIHByb3ZpZGUgeW91IHdpdGggYW4gdXBkYXRlZCB2ZXJzaW9uIG9mIHRoZSBEb2N1bWVudC4KKzwvUD48UD4KKworPExJPgorTU9ESUZJQ0FUSU9OUworPFA+CisKK1lvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSBhIE1vZGlmaWVkIFZlcnNpb24gb2YgdGhlIERvY3VtZW50IHVuZGVyCit0aGUgY29uZGl0aW9ucyBvZiBzZWN0aW9ucyAyIGFuZCAzIGFib3ZlLCBwcm92aWRlZCB0aGF0IHlvdSByZWxlYXNlCit0aGUgTW9kaWZpZWQgVmVyc2lvbiB1bmRlciBwcmVjaXNlbHkgdGhpcyBMaWNlbnNlLCB3aXRoIHRoZSBNb2RpZmllZAorVmVyc2lvbiBmaWxsaW5nIHRoZSByb2xlIG9mIHRoZSBEb2N1bWVudCwgdGh1cyBsaWNlbnNpbmcgZGlzdHJpYnV0aW9uCithbmQgbW9kaWZpY2F0aW9uIG9mIHRoZSBNb2RpZmllZCBWZXJzaW9uIHRvIHdob2V2ZXIgcG9zc2Vzc2VzIGEgY29weQorb2YgaXQuICBJbiBhZGRpdGlvbiwgeW91IG11c3QgZG8gdGhlc2UgdGhpbmdzIGluIHRoZSBNb2RpZmllZCBWZXJzaW9uOgorPC9QPjxQPgorCis8T0w+Cis8TEk+CitVc2UgaW4gdGhlIFRpdGxlIFBhZ2UgKGFuZCBvbiB0aGUgY292ZXJzLCBpZiBhbnkpIGEgdGl0bGUgZGlzdGluY3QKK2Zyb20gdGhhdCBvZiB0aGUgRG9jdW1lbnQsIGFuZCBmcm9tIHRob3NlIG9mIHByZXZpb3VzIHZlcnNpb25zCisod2hpY2ggc2hvdWxkLCBpZiB0aGVyZSB3ZXJlIGFueSwgYmUgbGlzdGVkIGluIHRoZSBIaXN0b3J5IHNlY3Rpb24KK29mIHRoZSBEb2N1bWVudCkuICBZb3UgbWF5IHVzZSB0aGUgc2FtZSB0aXRsZSBhcyBhIHByZXZpb3VzIHZlcnNpb24KK2lmIHRoZSBvcmlnaW5hbCBwdWJsaXNoZXIgb2YgdGhhdCB2ZXJzaW9uIGdpdmVzIHBlcm1pc3Npb24uCis8UD4KKworPExJPgorTGlzdCBvbiB0aGUgVGl0bGUgUGFnZSwgYXMgYXV0aG9ycywgb25lIG9yIG1vcmUgcGVyc29ucyBvciBlbnRpdGllcworcmVzcG9uc2libGUgZm9yIGF1dGhvcnNoaXAgb2YgdGhlIG1vZGlmaWNhdGlvbnMgaW4gdGhlIE1vZGlmaWVkCitWZXJzaW9uLCB0b2dldGhlciB3aXRoIGF0IGxlYXN0IGZpdmUgb2YgdGhlIHByaW5jaXBhbCBhdXRob3JzIG9mIHRoZQorRG9jdW1lbnQgKGFsbCBvZiBpdHMgcHJpbmNpcGFsIGF1dGhvcnMsIGlmIGl0IGhhcyBmZXdlciB0aGFuIGZpdmUpLAordW5sZXNzIHRoZXkgcmVsZWFzZSB5b3UgZnJvbSB0aGlzIHJlcXVpcmVtZW50LgorPFA+CisKKzxMST4KK1N0YXRlIG9uIHRoZSBUaXRsZSBwYWdlIHRoZSBuYW1lIG9mIHRoZSBwdWJsaXNoZXIgb2YgdGhlCitNb2RpZmllZCBWZXJzaW9uLCBhcyB0aGUgcHVibGlzaGVyLgorPFA+CisKKzxMST4KK1ByZXNlcnZlIGFsbCB0aGUgY29weXJpZ2h0IG5vdGljZXMgb2YgdGhlIERvY3VtZW50LgorPFA+CisKKzxMST4KK0FkZCBhbiBhcHByb3ByaWF0ZSBjb3B5cmlnaHQgbm90aWNlIGZvciB5b3VyIG1vZGlmaWNhdGlvbnMKK2FkamFjZW50IHRvIHRoZSBvdGhlciBjb3B5cmlnaHQgbm90aWNlcy4KKzxQPgorCis8TEk+CitJbmNsdWRlLCBpbW1lZGlhdGVseSBhZnRlciB0aGUgY29weXJpZ2h0IG5vdGljZXMsIGEgbGljZW5zZSBub3RpY2UKK2dpdmluZyB0aGUgcHVibGljIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBNb2RpZmllZCBWZXJzaW9uIHVuZGVyIHRoZQordGVybXMgb2YgdGhpcyBMaWNlbnNlLCBpbiB0aGUgZm9ybSBzaG93biBpbiB0aGUgQWRkZW5kdW0gYmVsb3cuCis8UD4KKworPExJPgorUHJlc2VydmUgaW4gdGhhdCBsaWNlbnNlIG5vdGljZSB0aGUgZnVsbCBsaXN0cyBvZiBJbnZhcmlhbnQgU2VjdGlvbnMKK2FuZCByZXF1aXJlZCBDb3ZlciBUZXh0cyBnaXZlbiBpbiB0aGUgRG9jdW1lbnQncyBsaWNlbnNlIG5vdGljZS4KKzxQPgorCis8TEk+CitJbmNsdWRlIGFuIHVuYWx0ZXJlZCBjb3B5IG9mIHRoaXMgTGljZW5zZS4KKzxQPgorCis8TEk+CitQcmVzZXJ2ZSB0aGUgc2VjdGlvbiBFbnRpdGxlZCAiSGlzdG9yeSIsIFByZXNlcnZlIGl0cyBUaXRsZSwgYW5kIGFkZAordG8gaXQgYW4gaXRlbSBzdGF0aW5nIGF0IGxlYXN0IHRoZSB0aXRsZSwgeWVhciwgbmV3IGF1dGhvcnMsIGFuZAorcHVibGlzaGVyIG9mIHRoZSBNb2RpZmllZCBWZXJzaW9uIGFzIGdpdmVuIG9uIHRoZSBUaXRsZSBQYWdlLiAgSWYKK3RoZXJlIGlzIG5vIHNlY3Rpb24gRW50aXRsZWQgIkhpc3RvcnkiIGluIHRoZSBEb2N1bWVudCwgY3JlYXRlIG9uZQorc3RhdGluZyB0aGUgdGl0bGUsIHllYXIsIGF1dGhvcnMsIGFuZCBwdWJsaXNoZXIgb2YgdGhlIERvY3VtZW50IGFzCitnaXZlbiBvbiBpdHMgVGl0bGUgUGFnZSwgdGhlbiBhZGQgYW4gaXRlbSBkZXNjcmliaW5nIHRoZSBNb2RpZmllZAorVmVyc2lvbiBhcyBzdGF0ZWQgaW4gdGhlIHByZXZpb3VzIHNlbnRlbmNlLgorPFA+CisKKzxMST4KK1ByZXNlcnZlIHRoZSBuZXR3b3JrIGxvY2F0aW9uLCBpZiBhbnksIGdpdmVuIGluIHRoZSBEb2N1bWVudCBmb3IKK3B1YmxpYyBhY2Nlc3MgdG8gYSBUcmFuc3BhcmVudCBjb3B5IG9mIHRoZSBEb2N1bWVudCwgYW5kIGxpa2V3aXNlCit0aGUgbmV0d29yayBsb2NhdGlvbnMgZ2l2ZW4gaW4gdGhlIERvY3VtZW50IGZvciBwcmV2aW91cyB2ZXJzaW9ucworaXQgd2FzIGJhc2VkIG9uLiAgVGhlc2UgbWF5IGJlIHBsYWNlZCBpbiB0aGUgIkhpc3RvcnkiIHNlY3Rpb24uCitZb3UgbWF5IG9taXQgYSBuZXR3b3JrIGxvY2F0aW9uIGZvciBhIHdvcmsgdGhhdCB3YXMgcHVibGlzaGVkIGF0CitsZWFzdCBmb3VyIHllYXJzIGJlZm9yZSB0aGUgRG9jdW1lbnQgaXRzZWxmLCBvciBpZiB0aGUgb3JpZ2luYWwKK3B1Ymxpc2hlciBvZiB0aGUgdmVyc2lvbiBpdCByZWZlcnMgdG8gZ2l2ZXMgcGVybWlzc2lvbi4KKzxQPgorCis8TEk+CitGb3IgYW55IHNlY3Rpb24gRW50aXRsZWQgIkFja25vd2xlZGdlbWVudHMiIG9yICJEZWRpY2F0aW9ucyIsIFByZXNlcnZlCit0aGUgVGl0bGUgb2YgdGhlIHNlY3Rpb24sIGFuZCBwcmVzZXJ2ZSBpbiB0aGUgc2VjdGlvbiBhbGwgdGhlCitzdWJzdGFuY2UgYW5kIHRvbmUgb2YgZWFjaCBvZiB0aGUgY29udHJpYnV0b3IgYWNrbm93bGVkZ2VtZW50cyBhbmQvb3IKK2RlZGljYXRpb25zIGdpdmVuIHRoZXJlaW4uCis8UD4KKworPExJPgorUHJlc2VydmUgYWxsIHRoZSBJbnZhcmlhbnQgU2VjdGlvbnMgb2YgdGhlIERvY3VtZW50LAordW5hbHRlcmVkIGluIHRoZWlyIHRleHQgYW5kIGluIHRoZWlyIHRpdGxlcy4gIFNlY3Rpb24gbnVtYmVycworb3IgdGhlIGVxdWl2YWxlbnQgYXJlIG5vdCBjb25zaWRlcmVkIHBhcnQgb2YgdGhlIHNlY3Rpb24gdGl0bGVzLgorPFA+CisKKzxMST4KK0RlbGV0ZSBhbnkgc2VjdGlvbiBFbnRpdGxlZCAiRW5kb3JzZW1lbnRzIi4gIFN1Y2ggYSBzZWN0aW9uCittYXkgbm90IGJlIGluY2x1ZGVkIGluIHRoZSBNb2RpZmllZCBWZXJzaW9uLgorPFA+CisKKzxMST4KK0RvIG5vdCByZXRpdGxlIGFueSBleGlzdGluZyBzZWN0aW9uIHRvIGJlIEVudGl0bGVkICJFbmRvcnNlbWVudHMiIG9yCit0byBjb25mbGljdCBpbiB0aXRsZSB3aXRoIGFueSBJbnZhcmlhbnQgU2VjdGlvbi4KKzxQPgorCis8TEk+CitQcmVzZXJ2ZSBhbnkgV2FycmFudHkgRGlzY2xhaW1lcnMuCis8L09MPgorPFA+CisKK0lmIHRoZSBNb2RpZmllZCBWZXJzaW9uIGluY2x1ZGVzIG5ldyBmcm9udC1tYXR0ZXIgc2VjdGlvbnMgb3IKK2FwcGVuZGljZXMgdGhhdCBxdWFsaWZ5IGFzIFNlY29uZGFyeSBTZWN0aW9ucyBhbmQgY29udGFpbiBubyBtYXRlcmlhbAorY29waWVkIGZyb20gdGhlIERvY3VtZW50LCB5b3UgbWF5IGF0IHlvdXIgb3B0aW9uIGRlc2lnbmF0ZSBzb21lIG9yIGFsbAorb2YgdGhlc2Ugc2VjdGlvbnMgYXMgaW52YXJpYW50LiAgVG8gZG8gdGhpcywgYWRkIHRoZWlyIHRpdGxlcyB0byB0aGUKK2xpc3Qgb2YgSW52YXJpYW50IFNlY3Rpb25zIGluIHRoZSBNb2RpZmllZCBWZXJzaW9uJ3MgbGljZW5zZSBub3RpY2UuCitUaGVzZSB0aXRsZXMgbXVzdCBiZSBkaXN0aW5jdCBmcm9tIGFueSBvdGhlciBzZWN0aW9uIHRpdGxlcy4KKzwvUD48UD4KKworWW91IG1heSBhZGQgYSBzZWN0aW9uIEVudGl0bGVkICJFbmRvcnNlbWVudHMiLCBwcm92aWRlZCBpdCBjb250YWlucworbm90aGluZyBidXQgZW5kb3JzZW1lbnRzIG9mIHlvdXIgTW9kaWZpZWQgVmVyc2lvbiBieSB2YXJpb3VzCitwYXJ0aWVzLS1mb3IgZXhhbXBsZSwgc3RhdGVtZW50cyBvZiBwZWVyIHJldmlldyBvciB0aGF0IHRoZSB0ZXh0IGhhcworYmVlbiBhcHByb3ZlZCBieSBhbiBvcmdhbml6YXRpb24gYXMgdGhlIGF1dGhvcml0YXRpdmUgZGVmaW5pdGlvbiBvZiBhCitzdGFuZGFyZC4KKzwvUD48UD4KKworWW91IG1heSBhZGQgYSBwYXNzYWdlIG9mIHVwIHRvIGZpdmUgd29yZHMgYXMgYSBGcm9udC1Db3ZlciBUZXh0LCBhbmQgYQorcGFzc2FnZSBvZiB1cCB0byAyNSB3b3JkcyBhcyBhIEJhY2stQ292ZXIgVGV4dCwgdG8gdGhlIGVuZCBvZiB0aGUgbGlzdAorb2YgQ292ZXIgVGV4dHMgaW4gdGhlIE1vZGlmaWVkIFZlcnNpb24uICBPbmx5IG9uZSBwYXNzYWdlIG9mCitGcm9udC1Db3ZlciBUZXh0IGFuZCBvbmUgb2YgQmFjay1Db3ZlciBUZXh0IG1heSBiZSBhZGRlZCBieSAob3IKK3Rocm91Z2ggYXJyYW5nZW1lbnRzIG1hZGUgYnkpIGFueSBvbmUgZW50aXR5LiAgSWYgdGhlIERvY3VtZW50IGFscmVhZHkKK2luY2x1ZGVzIGEgY292ZXIgdGV4dCBmb3IgdGhlIHNhbWUgY292ZXIsIHByZXZpb3VzbHkgYWRkZWQgYnkgeW91IG9yCitieSBhcnJhbmdlbWVudCBtYWRlIGJ5IHRoZSBzYW1lIGVudGl0eSB5b3UgYXJlIGFjdGluZyBvbiBiZWhhbGYgb2YsCit5b3UgbWF5IG5vdCBhZGQgYW5vdGhlcjsgYnV0IHlvdSBtYXkgcmVwbGFjZSB0aGUgb2xkIG9uZSwgb24gZXhwbGljaXQKK3Blcm1pc3Npb24gZnJvbSB0aGUgcHJldmlvdXMgcHVibGlzaGVyIHRoYXQgYWRkZWQgdGhlIG9sZCBvbmUuCis8L1A+PFA+CisKK1RoZSBhdXRob3IocykgYW5kIHB1Ymxpc2hlcihzKSBvZiB0aGUgRG9jdW1lbnQgZG8gbm90IGJ5IHRoaXMgTGljZW5zZQorZ2l2ZSBwZXJtaXNzaW9uIHRvIHVzZSB0aGVpciBuYW1lcyBmb3IgcHVibGljaXR5IGZvciBvciB0byBhc3NlcnQgb3IKK2ltcGx5IGVuZG9yc2VtZW50IG9mIGFueSBNb2RpZmllZCBWZXJzaW9uLgorPC9QPjxQPgorCis8TEk+CitDT01CSU5JTkcgRE9DVU1FTlRTCis8UD4KKworWW91IG1heSBjb21iaW5lIHRoZSBEb2N1bWVudCB3aXRoIG90aGVyIGRvY3VtZW50cyByZWxlYXNlZCB1bmRlciB0aGlzCitMaWNlbnNlLCB1bmRlciB0aGUgdGVybXMgZGVmaW5lZCBpbiBzZWN0aW9uIDQgYWJvdmUgZm9yIG1vZGlmaWVkCit2ZXJzaW9ucywgcHJvdmlkZWQgdGhhdCB5b3UgaW5jbHVkZSBpbiB0aGUgY29tYmluYXRpb24gYWxsIG9mIHRoZQorSW52YXJpYW50IFNlY3Rpb25zIG9mIGFsbCBvZiB0aGUgb3JpZ2luYWwgZG9jdW1lbnRzLCB1bm1vZGlmaWVkLCBhbmQKK2xpc3QgdGhlbSBhbGwgYXMgSW52YXJpYW50IFNlY3Rpb25zIG9mIHlvdXIgY29tYmluZWQgd29yayBpbiBpdHMKK2xpY2Vuc2Ugbm90aWNlLCBhbmQgdGhhdCB5b3UgcHJlc2VydmUgYWxsIHRoZWlyIFdhcnJhbnR5IERpc2NsYWltZXJzLgorPC9QPjxQPgorCitUaGUgY29tYmluZWQgd29yayBuZWVkIG9ubHkgY29udGFpbiBvbmUgY29weSBvZiB0aGlzIExpY2Vuc2UsIGFuZAorbXVsdGlwbGUgaWRlbnRpY2FsIEludmFyaWFudCBTZWN0aW9ucyBtYXkgYmUgcmVwbGFjZWQgd2l0aCBhIHNpbmdsZQorY29weS4gIElmIHRoZXJlIGFyZSBtdWx0aXBsZSBJbnZhcmlhbnQgU2VjdGlvbnMgd2l0aCB0aGUgc2FtZSBuYW1lIGJ1dAorZGlmZmVyZW50IGNvbnRlbnRzLCBtYWtlIHRoZSB0aXRsZSBvZiBlYWNoIHN1Y2ggc2VjdGlvbiB1bmlxdWUgYnkKK2FkZGluZyBhdCB0aGUgZW5kIG9mIGl0LCBpbiBwYXJlbnRoZXNlcywgdGhlIG5hbWUgb2YgdGhlIG9yaWdpbmFsCithdXRob3Igb3IgcHVibGlzaGVyIG9mIHRoYXQgc2VjdGlvbiBpZiBrbm93biwgb3IgZWxzZSBhIHVuaXF1ZSBudW1iZXIuCitNYWtlIHRoZSBzYW1lIGFkanVzdG1lbnQgdG8gdGhlIHNlY3Rpb24gdGl0bGVzIGluIHRoZSBsaXN0IG9mCitJbnZhcmlhbnQgU2VjdGlvbnMgaW4gdGhlIGxpY2Vuc2Ugbm90aWNlIG9mIHRoZSBjb21iaW5lZCB3b3JrLgorPC9QPjxQPgorCitJbiB0aGUgY29tYmluYXRpb24sIHlvdSBtdXN0IGNvbWJpbmUgYW55IHNlY3Rpb25zIEVudGl0bGVkICJIaXN0b3J5IgoraW4gdGhlIHZhcmlvdXMgb3JpZ2luYWwgZG9jdW1lbnRzLCBmb3JtaW5nIG9uZSBzZWN0aW9uIEVudGl0bGVkCisiSGlzdG9yeSI7IGxpa2V3aXNlIGNvbWJpbmUgYW55IHNlY3Rpb25zIEVudGl0bGVkICJBY2tub3dsZWRnZW1lbnRzIiwKK2FuZCBhbnkgc2VjdGlvbnMgRW50aXRsZWQgIkRlZGljYXRpb25zIi4gIFlvdSBtdXN0IGRlbGV0ZSBhbGwKK3NlY3Rpb25zIEVudGl0bGVkICJFbmRvcnNlbWVudHMuIgorPC9QPjxQPgorCis8TEk+CitDT0xMRUNUSU9OUyBPRiBET0NVTUVOVFMKKzxQPgorCitZb3UgbWF5IG1ha2UgYSBjb2xsZWN0aW9uIGNvbnNpc3Rpbmcgb2YgdGhlIERvY3VtZW50IGFuZCBvdGhlciBkb2N1bWVudHMKK3JlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIHJlcGxhY2UgdGhlIGluZGl2aWR1YWwgY29waWVzIG9mIHRoaXMKK0xpY2Vuc2UgaW4gdGhlIHZhcmlvdXMgZG9jdW1lbnRzIHdpdGggYSBzaW5nbGUgY29weSB0aGF0IGlzIGluY2x1ZGVkIGluCit0aGUgY29sbGVjdGlvbiwgcHJvdmlkZWQgdGhhdCB5b3UgZm9sbG93IHRoZSBydWxlcyBvZiB0aGlzIExpY2Vuc2UgZm9yCit2ZXJiYXRpbSBjb3B5aW5nIG9mIGVhY2ggb2YgdGhlIGRvY3VtZW50cyBpbiBhbGwgb3RoZXIgcmVzcGVjdHMuCis8L1A+PFA+CisKK1lvdSBtYXkgZXh0cmFjdCBhIHNpbmdsZSBkb2N1bWVudCBmcm9tIHN1Y2ggYSBjb2xsZWN0aW9uLCBhbmQgZGlzdHJpYnV0ZQoraXQgaW5kaXZpZHVhbGx5IHVuZGVyIHRoaXMgTGljZW5zZSwgcHJvdmlkZWQgeW91IGluc2VydCBhIGNvcHkgb2YgdGhpcworTGljZW5zZSBpbnRvIHRoZSBleHRyYWN0ZWQgZG9jdW1lbnQsIGFuZCBmb2xsb3cgdGhpcyBMaWNlbnNlIGluIGFsbAorb3RoZXIgcmVzcGVjdHMgcmVnYXJkaW5nIHZlcmJhdGltIGNvcHlpbmcgb2YgdGhhdCBkb2N1bWVudC4KKzwvUD48UD4KKworPExJPgorQUdHUkVHQVRJT04gV0lUSCBJTkRFUEVOREVOVCBXT1JLUworPFA+CisKK0EgY29tcGlsYXRpb24gb2YgdGhlIERvY3VtZW50IG9yIGl0cyBkZXJpdmF0aXZlcyB3aXRoIG90aGVyIHNlcGFyYXRlCithbmQgaW5kZXBlbmRlbnQgZG9jdW1lbnRzIG9yIHdvcmtzLCBpbiBvciBvbiBhIHZvbHVtZSBvZiBhIHN0b3JhZ2Ugb3IKK2Rpc3RyaWJ1dGlvbiBtZWRpdW0sIGlzIGNhbGxlZCBhbiAiYWdncmVnYXRlIiBpZiB0aGUgY29weXJpZ2h0CityZXN1bHRpbmcgZnJvbSB0aGUgY29tcGlsYXRpb24gaXMgbm90IHVzZWQgdG8gbGltaXQgdGhlIGxlZ2FsIHJpZ2h0cworb2YgdGhlIGNvbXBpbGF0aW9uJ3MgdXNlcnMgYmV5b25kIHdoYXQgdGhlIGluZGl2aWR1YWwgd29ya3MgcGVybWl0LgorV2hlbiB0aGUgRG9jdW1lbnQgaXMgaW5jbHVkZWQgYW4gYWdncmVnYXRlLCB0aGlzIExpY2Vuc2UgZG9lcyBub3QKK2FwcGx5IHRvIHRoZSBvdGhlciB3b3JrcyBpbiB0aGUgYWdncmVnYXRlIHdoaWNoIGFyZSBub3QgdGhlbXNlbHZlcworZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgRG9jdW1lbnQuCis8L1A+PFA+CisKK0lmIHRoZSBDb3ZlciBUZXh0IHJlcXVpcmVtZW50IG9mIHNlY3Rpb24gMyBpcyBhcHBsaWNhYmxlIHRvIHRoZXNlCitjb3BpZXMgb2YgdGhlIERvY3VtZW50LCB0aGVuIGlmIHRoZSBEb2N1bWVudCBpcyBsZXNzIHRoYW4gb25lIGhhbGYgb2YKK3RoZSBlbnRpcmUgYWdncmVnYXRlLCB0aGUgRG9jdW1lbnQncyBDb3ZlciBUZXh0cyBtYXkgYmUgcGxhY2VkIG9uCitjb3ZlcnMgdGhhdCBicmFja2V0IHRoZSBEb2N1bWVudCB3aXRoaW4gdGhlIGFnZ3JlZ2F0ZSwgb3IgdGhlCitlbGVjdHJvbmljIGVxdWl2YWxlbnQgb2YgY292ZXJzIGlmIHRoZSBEb2N1bWVudCBpcyBpbiBlbGVjdHJvbmljIGZvcm0uCitPdGhlcndpc2UgdGhleSBtdXN0IGFwcGVhciBvbiBwcmludGVkIGNvdmVycyB0aGF0IGJyYWNrZXQgdGhlIHdob2xlCithZ2dyZWdhdGUuCis8L1A+PFA+CisKKzxMST4KK1RSQU5TTEFUSU9OCis8UD4KKworVHJhbnNsYXRpb24gaXMgY29uc2lkZXJlZCBhIGtpbmQgb2YgbW9kaWZpY2F0aW9uLCBzbyB5b3UgbWF5CitkaXN0cmlidXRlIHRyYW5zbGF0aW9ucyBvZiB0aGUgRG9jdW1lbnQgdW5kZXIgdGhlIHRlcm1zIG9mIHNlY3Rpb24gNC4KK1JlcGxhY2luZyBJbnZhcmlhbnQgU2VjdGlvbnMgd2l0aCB0cmFuc2xhdGlvbnMgcmVxdWlyZXMgc3BlY2lhbAorcGVybWlzc2lvbiBmcm9tIHRoZWlyIGNvcHlyaWdodCBob2xkZXJzLCBidXQgeW91IG1heSBpbmNsdWRlCit0cmFuc2xhdGlvbnMgb2Ygc29tZSBvciBhbGwgSW52YXJpYW50IFNlY3Rpb25zIGluIGFkZGl0aW9uIHRvIHRoZQorb3JpZ2luYWwgdmVyc2lvbnMgb2YgdGhlc2UgSW52YXJpYW50IFNlY3Rpb25zLiAgWW91IG1heSBpbmNsdWRlIGEKK3RyYW5zbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgYW5kIGFsbCB0aGUgbGljZW5zZSBub3RpY2VzIGluIHRoZQorRG9jdW1lbnQsIGFuZCBhbnkgV2FycmFudHkgRGlzY2xhaW1lcnMsIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gaW5jbHVkZQordGhlIG9yaWdpbmFsIEVuZ2xpc2ggdmVyc2lvbiBvZiB0aGlzIExpY2Vuc2UgYW5kIHRoZSBvcmlnaW5hbCB2ZXJzaW9ucworb2YgdGhvc2Ugbm90aWNlcyBhbmQgZGlzY2xhaW1lcnMuICBJbiBjYXNlIG9mIGEgZGlzYWdyZWVtZW50IGJldHdlZW4KK3RoZSB0cmFuc2xhdGlvbiBhbmQgdGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhpcyBMaWNlbnNlIG9yIGEgbm90aWNlCitvciBkaXNjbGFpbWVyLCB0aGUgb3JpZ2luYWwgdmVyc2lvbiB3aWxsIHByZXZhaWwuCis8L1A+PFA+CisKK0lmIGEgc2VjdGlvbiBpbiB0aGUgRG9jdW1lbnQgaXMgRW50aXRsZWQgIkFja25vd2xlZGdlbWVudHMiLAorIkRlZGljYXRpb25zIiwgb3IgIkhpc3RvcnkiLCB0aGUgcmVxdWlyZW1lbnQgKHNlY3Rpb24gNCkgdG8gUHJlc2VydmUKK2l0cyBUaXRsZSAoc2VjdGlvbiAxKSB3aWxsIHR5cGljYWxseSByZXF1aXJlIGNoYW5naW5nIHRoZSBhY3R1YWwKK3RpdGxlLgorPC9QPjxQPgorCis8TEk+CitURVJNSU5BVElPTgorPFA+CisKK1lvdSBtYXkgbm90IGNvcHksIG1vZGlmeSwgc3VibGljZW5zZSwgb3IgZGlzdHJpYnV0ZSB0aGUgRG9jdW1lbnQgZXhjZXB0CithcyBleHByZXNzbHkgcHJvdmlkZWQgZm9yIHVuZGVyIHRoaXMgTGljZW5zZS4gIEFueSBvdGhlciBhdHRlbXB0IHRvCitjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2Ugb3IgZGlzdHJpYnV0ZSB0aGUgRG9jdW1lbnQgaXMgdm9pZCwgYW5kIHdpbGwKK2F1dG9tYXRpY2FsbHkgdGVybWluYXRlIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgTGljZW5zZS4gIEhvd2V2ZXIsCitwYXJ0aWVzIHdobyBoYXZlIHJlY2VpdmVkIGNvcGllcywgb3IgcmlnaHRzLCBmcm9tIHlvdSB1bmRlciB0aGlzCitMaWNlbnNlIHdpbGwgbm90IGhhdmUgdGhlaXIgbGljZW5zZXMgdGVybWluYXRlZCBzbyBsb25nIGFzIHN1Y2gKK3BhcnRpZXMgcmVtYWluIGluIGZ1bGwgY29tcGxpYW5jZS4KKzwvUD48UD4KKworPExJPgorRlVUVVJFIFJFVklTSU9OUyBPRiBUSElTIExJQ0VOU0UKKzxQPgorCitUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIG5ldywgcmV2aXNlZCB2ZXJzaW9ucworb2YgdGhlIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZSBmcm9tIHRpbWUgdG8gdGltZS4gIFN1Y2ggbmV3Cit2ZXJzaW9ucyB3aWxsIGJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkKK2RpZmZlciBpbiBkZXRhaWwgdG8gYWRkcmVzcyBuZXcgcHJvYmxlbXMgb3IgY29uY2VybnMuICBTZWUKKzxBIEhSRUY9Imh0dHA6Ly93d3cuZ251Lm9yZy9jb3B5bGVmdC8iPmh0dHA6Ly93d3cuZ251Lm9yZy9jb3B5bGVmdC88L0E+LgorPC9QPjxQPgorCitFYWNoIHZlcnNpb24gb2YgdGhlIExpY2Vuc2UgaXMgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4KK0lmIHRoZSBEb2N1bWVudCBzcGVjaWZpZXMgdGhhdCBhIHBhcnRpY3VsYXIgbnVtYmVyZWQgdmVyc2lvbiBvZiB0aGlzCitMaWNlbnNlICJvciBhbnkgbGF0ZXIgdmVyc2lvbiIgYXBwbGllcyB0byBpdCwgeW91IGhhdmUgdGhlIG9wdGlvbiBvZgorZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBlaXRoZXIgb2YgdGhhdCBzcGVjaWZpZWQgdmVyc2lvbiBvcgorb2YgYW55IGxhdGVyIHZlcnNpb24gdGhhdCBoYXMgYmVlbiBwdWJsaXNoZWQgKG5vdCBhcyBhIGRyYWZ0KSBieSB0aGUKK0ZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4gIElmIHRoZSBEb2N1bWVudCBkb2VzIG5vdCBzcGVjaWZ5IGEgdmVyc2lvbgorbnVtYmVyIG9mIHRoaXMgTGljZW5zZSwgeW91IG1heSBjaG9vc2UgYW55IHZlcnNpb24gZXZlciBwdWJsaXNoZWQgKG5vdAorYXMgYSBkcmFmdCkgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KKzwvT0w+Cis8UD4KKworPEhSIFNJWkU9IjYiPgorPEEgTkFNRT0iU0VDMjEiPjwvQT4KKzxUQUJMRSBDRUxMUEFERElORz0xIENFTExTUEFDSU5HPTEgQk9SREVSPTA+Cis8VFI+PFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMyMCI+ICZsdDsgPC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMyMiI+ICZndDsgPC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE5Ij4gJmx0OyZsdDsgPC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMyMCI+IFVwIDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMjIiPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMyMiI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgorPC9UUj48L1RBQkxFPgorPEgzPiBBLjEuMSBBRERFTkRVTTogSG93IHRvIHVzZSB0aGlzIExpY2Vuc2UgZm9yIHlvdXIgZG9jdW1lbnRzIDwvSDM+Cis8IS0tZG9jaWQ6OlNFQzIxOjotLT4KKzxQPgorCitUbyB1c2UgdGhpcyBMaWNlbnNlIGluIGEgZG9jdW1lbnQgeW91IGhhdmUgd3JpdHRlbiwgaW5jbHVkZSBhIGNvcHkgb2YKK3RoZSBMaWNlbnNlIGluIHRoZSBkb2N1bWVudCBhbmQgcHV0IHRoZSBmb2xsb3dpbmcgY29weXJpZ2h0IGFuZAorbGljZW5zZSBub3RpY2VzIGp1c3QgYWZ0ZXIgdGhlIHRpdGxlIHBhZ2U6Cis8L1A+PFA+CisKKzxUQUJMRT48dHI+PHRkPiZuYnNwOzwvdGQ+PHRkIGNsYXNzPXNtYWxsZXhhbXBsZT48Rk9OVCBTSVpFPS0xPjxwcmU+ICBDb3B5cmlnaHQgKEMpICA8VkFSPnllYXI8L1ZBUj4gIDxWQVI+eW91ciBuYW1lPC9WQVI+LgorICBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoaXMgZG9jdW1lbnQKKyAgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UsIFZlcnNpb24gMS4yCisgIG9yIGFueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOworICB3aXRoIG5vIEludmFyaWFudCBTZWN0aW9ucywgbm8gRnJvbnQtQ292ZXIgVGV4dHMsIGFuZCBubyBCYWNrLUNvdmVyIFRleHRzLgorICBBIGNvcHkgb2YgdGhlIGxpY2Vuc2UgaXMgaW5jbHVkZWQgaW4gdGhlIHNlY3Rpb24gZW50aXRsZWQgYGBHTlUKKyAgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UnJy4KKzwvRk9OVD48L3ByZT48L3RkPjwvdHI+PC90YWJsZT48L1A+PFA+CisKK0lmIHlvdSBoYXZlIEludmFyaWFudCBTZWN0aW9ucywgRnJvbnQtQ292ZXIgVGV4dHMgYW5kIEJhY2stQ292ZXIgVGV4dHMsCityZXBsYWNlIHRoZSAid2l0aC4uLlRleHRzLiIgbGluZSB3aXRoIHRoaXM6Cis8L1A+PFA+CisKKzxUQUJMRT48dHI+PHRkPiZuYnNwOzwvdGQ+PHRkIGNsYXNzPXNtYWxsZXhhbXBsZT48Rk9OVCBTSVpFPS0xPjxwcmU+ICAgIHdpdGggdGhlIEludmFyaWFudCBTZWN0aW9ucyBiZWluZyA8VkFSPmxpc3QgdGhlaXIgdGl0bGVzPC9WQVI+LCB3aXRoCisgICAgdGhlIEZyb250LUNvdmVyIFRleHRzIGJlaW5nIDxWQVI+bGlzdDwvVkFSPiwgYW5kIHdpdGggdGhlIEJhY2stQ292ZXIgVGV4dHMKKyAgICBiZWluZyA8VkFSPmxpc3Q8L1ZBUj4uCis8L0ZPTlQ+PC9wcmU+PC90ZD48L3RyPjwvdGFibGU+PC9QPjxQPgorCitJZiB5b3UgaGF2ZSBJbnZhcmlhbnQgU2VjdGlvbnMgd2l0aG91dCBDb3ZlciBUZXh0cywgb3Igc29tZSBvdGhlcgorY29tYmluYXRpb24gb2YgdGhlIHRocmVlLCBtZXJnZSB0aG9zZSB0d28gYWx0ZXJuYXRpdmVzIHRvIHN1aXQgdGhlCitzaXR1YXRpb24uCis8L1A+PFA+CisKK0lmIHlvdXIgZG9jdW1lbnQgY29udGFpbnMgbm9udHJpdmlhbCBleGFtcGxlcyBvZiBwcm9ncmFtIGNvZGUsIHdlCityZWNvbW1lbmQgcmVsZWFzaW5nIHRoZXNlIGV4YW1wbGVzIGluIHBhcmFsbGVsIHVuZGVyIHlvdXIgY2hvaWNlIG9mCitmcmVlIHNvZnR3YXJlIGxpY2Vuc2UsIHN1Y2ggYXMgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAordG8gcGVybWl0IHRoZWlyIHVzZSBpbiBmcmVlIHNvZnR3YXJlLgorPC9QPjxQPgorCis8QSBOQU1FPSJDb25jZXB0IEluZGV4Ij48L0E+Cis8SFIgU0laRT0iNiI+Cis8QSBOQU1FPSJTRUMyMiI+PC9BPgorPFRBQkxFIENFTExQQURESU5HPTEgQ0VMTFNQQUNJTkc9MSBCT1JERVI9MD4KKzxUUj48VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzIxIj4gJmx0OyA8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzIzIj4gJmd0OyA8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMjMiPiAmbHQ7Jmx0OyA8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19Ub3AiPiBVcCA8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzIzIj4gJmd0OyZndDsgPC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMjIiPkluZGV4PC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KKzwvVFI+PC9UQUJMRT4KKzxIMT4gQi4gQ29uY2VwdCBJbmRleCA8L0gxPgorPCEtLWRvY2lkOjpTRUMyMjo6LS0+CiA8dGFibGU+PHRyPjx0aCB2YWxpZ249dG9wPkp1bXAgdG86ICZuYnNwOyA8L3RoPjx0ZD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjY3BfQSIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lIj48Yj5BPC9iPjwvQT4KICAmbmJzcDsgCiA8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjY3BfRSIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lIj48Yj5FPC9iPjwvQT4KICAmbmJzcDsgCis8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjY3BfRiIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lIj48Yj5GPC9iPjwvQT4KKyAmbmJzcDsgCiA8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjY3BfSCIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lIj48Yj5IPC9iPjwvQT4KICAmbmJzcDsgCiA8L3RkPjwvdHI+PC90YWJsZT48YnI+PFA+PC9QPgpAQCAtMTI0MCwxMSArMTg0NCwxNCBAQAogPFRSPjxURD48L1REPjxUSCBBTElHTj1MRUZUPkluZGV4IEVudHJ5PC9USD48VEggQUxJR049TEVGVD4gU2VjdGlvbjwvVEg+PC9UUj4KIDxUUj48VEQgQ09MU1BBTj0zPiA8SFI+PC9URD48L1RSPgogPFRSPjxUSD48QSBOQU1FPSJjcF9BIj48L0E+QTwvVEg+PFREPjwvVEQ+PFREPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMjAiPmFuY2hvcmVkIHNlYXJjaDwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxNCI+Mi4zLjUgU2VhcmNoaW5nIHRoZSBIaXN0b3J5IExpc3Q8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNJRFgyMyI+YW5jaG9yZWQgc2VhcmNoPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE0Ij4yLjMuNSBTZWFyY2hpbmcgdGhlIEhpc3RvcnkgTGlzdDwvQT48L1REPjwvVFI+CiA8VFI+PFREIENPTFNQQU49Mz4gPEhSPjwvVEQ+PC9UUj4KIDxUUj48VEg+PEEgTkFNRT0iY3BfRSI+PC9BPkU8L1RIPjxURD48L1REPjxURD48L1REPjwvVFI+CiA8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzMiPmV2ZW50IGRlc2lnbmF0b3JzPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzMiPjEuMS4xIEV2ZW50IERlc2lnbmF0b3JzPC9BPjwvVEQ+PC9UUj4KIDxUUj48VEQgQ09MU1BBTj0zPiA8SFI+PC9URD48L1RSPgorPFRSPjxUSD48QSBOQU1FPSJjcF9GIj48L0E+RjwvVEg+PFREPjwvVEQ+PFREPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYNDgiPkZETCwgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzIwIj5BLjEgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQgQ09MU1BBTj0zPiA8SFI+PC9URD48L1RSPgogPFRSPjxUSD48QSBOQU1FPSJjcF9IIj48L0E+SDwvVEg+PFREPjwvVEQ+PFREPjwvVEQ+PC9UUj4KIDxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMSI+aGlzdG9yeSBldmVudHM8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMyI+MS4xLjEgRXZlbnQgRGVzaWduYXRvcnM8L0E+PC9URD48L1RSPgogPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMyIj5oaXN0b3J5IGV4cGFuc2lvbjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMyIj4xLjEgSGlzdG9yeSBFeHBhbnNpb248L0E+PC9URD48L1RSPgpAQCAtMTI1NCwzMCArMTg2MSwzNCBAQAogICZuYnNwOyAKIDxBIEhSRUY9Imhpc3RvcnkuaHRtbCNjcF9FIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOm5vbmUiPjxiPkU8L2I+PC9BPgogICZuYnNwOyAKKzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNjcF9GIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOm5vbmUiPjxiPkY8L2I+PC9BPgorICZuYnNwOyAKIDxBIEhSRUY9Imhpc3RvcnkuaHRtbCNjcF9IIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOm5vbmUiPjxiPkg8L2I+PC9BPgogICZuYnNwOyAKIDwvdGQ+PC90cj48L3RhYmxlPjxicj48UD4KIAogPEEgTkFNRT0iRnVuY3Rpb24gYW5kIFZhcmlhYmxlIEluZGV4Ij48L0E+CiA8SFIgU0laRT0iNiI+Ci08QSBOQU1FPSJTRUMyMCI+PC9BPgorPEEgTkFNRT0iU0VDMjMiPjwvQT4KIDxUQUJMRSBDRUxMUEFERElORz0xIENFTExTUEFDSU5HPTEgQk9SREVSPTA+Ci08VFI+PFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxOSI+ICZsdDsgPC9BPl08L1REPgorPFRSPjxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMjIiPiAmbHQ7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPlsgJmd0OyBdPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WyAmbHQ7Jmx0OyBdPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX1RvcCI+IFVwIDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPlsgJmd0OyZndDsgXTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxOSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzIyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+CiA8L1RSPjwvVEFCTEU+Ci08SDE+IEIuIEZ1bmN0aW9uIGFuZCBWYXJpYWJsZSBJbmRleCA8L0gxPgotPCEtLWRvY2lkOjpTRUMyMDo6LS0+Cis8SDE+IEMuIEZ1bmN0aW9uIGFuZCBWYXJpYWJsZSBJbmRleCA8L0gxPgorPCEtLWRvY2lkOjpTRUMyMzo6LS0+CiA8dGFibGU+PHRyPjx0aCB2YWxpZ249dG9wPkp1bXAgdG86ICZuYnNwOyA8L3RoPjx0ZD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjdnJfQSIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lIj48Yj5BPC9iPjwvQT4KICAmbmJzcDsgCiA8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjdnJfQyIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lIj48Yj5DPC9iPjwvQT4KICAmbmJzcDsgCis8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjdnJfRiIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lIj48Yj5GPC9iPjwvQT4KKyAmbmJzcDsgCiA8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjdnJfRyIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lIj48Yj5HPC9iPjwvQT4KICAmbmJzcDsgCiA8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjdnJfSCIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lIj48Yj5IPC9iPjwvQT4KQEAgLTEzMDAsNjkgKzE5MTEsNzcgQEAKIDxUUj48VEQgQ09MU1BBTj0zPiA8SFI+PC9URD48L1RSPgogPFRSPjxUSD48QSBOQU1FPSJ2cl9BIj48L0E+QTwvVEg+PFREPjwvVEQ+PFREPjwvVEQ+PC9UUj4KIDxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYNSI+PENPREU+YWRkX2hpc3Rvcnk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzExIj4yLjMuMiBIaXN0b3J5IExpc3QgTWFuYWdlbWVudDwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDI3Ij48Q09ERT5hcHBlbmRfaGlzdG9yeTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTUiPjIuMy42IE1hbmFnaW5nIHRoZSBIaXN0b3J5IEZpbGU8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNJRFg2Ij48Q09ERT5hZGRfaGlzdG9yeV90aW1lPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxMSI+Mi4zLjIgSGlzdG9yeSBMaXN0IE1hbmFnZW1lbnQ8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNJRFgzMCI+PENPREU+YXBwZW5kX2hpc3Rvcnk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE1Ij4yLjMuNiBNYW5hZ2luZyB0aGUgSGlzdG9yeSBGaWxlPC9BPjwvVEQ+PC9UUj4KIDxUUj48VEQgQ09MU1BBTj0zPiA8SFI+PC9URD48L1RSPgogPFRSPjxUSD48QSBOQU1FPSJ2cl9DIj48L0E+QzwvVEg+PFREPjwvVEQ+PFREPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYOCI+PENPREU+Y2xlYXJfaGlzdG9yeTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTEiPjIuMy4yIEhpc3RvcnkgTGlzdCBNYW5hZ2VtZW50PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMTQiPjxDT0RFPmN1cnJlbnRfaGlzdG9yeTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTIiPjIuMy4zIEluZm9ybWF0aW9uIEFib3V0IHRoZSBIaXN0b3J5IExpc3Q8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNJRFgxMCI+PENPREU+Y2xlYXJfaGlzdG9yeTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTEiPjIuMy4yIEhpc3RvcnkgTGlzdCBNYW5hZ2VtZW50PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMTYiPjxDT0RFPmN1cnJlbnRfaGlzdG9yeTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTIiPjIuMy4zIEluZm9ybWF0aW9uIEFib3V0IHRoZSBIaXN0b3J5IExpc3Q8L0E+PC9URD48L1RSPgorPFRSPjxURCBDT0xTUEFOPTM+IDxIUj48L1REPjwvVFI+Cis8VFI+PFRIPjxBIE5BTUU9InZyX0YiPjwvQT5GPC9USD48VEQ+PC9URD48VEQ+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNJRFg4Ij48Q09ERT5mcmVlX2hpc3RvcnlfZW50cnk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzExIj4yLjMuMiBIaXN0b3J5IExpc3QgTWFuYWdlbWVudDwvQT48L1REPjwvVFI+CiA8VFI+PFREIENPTFNQQU49Mz4gPEhSPjwvVEQ+PC9UUj4KIDxUUj48VEg+PEEgTkFNRT0idnJfRyI+PC9BPkc8L1RIPjxURD48L1REPjxURD48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDMwIj48Q09ERT5nZXRfaGlzdG9yeV9ldmVudDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTYiPjIuMy43IEhpc3RvcnkgRXhwYW5zaW9uPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMzMiPjxDT0RFPmdldF9oaXN0b3J5X2V2ZW50PC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxNiI+Mi4zLjcgSGlzdG9yeSBFeHBhbnNpb248L0E+PC9URD48L1RSPgogPFRSPjxURCBDT0xTUEFOPTM+IDxIUj48L1REPjwvVFI+CiA8VFI+PFRIPjxBIE5BTUU9InZyX0giPjwvQT5IPC9USD48VEQ+PC9URD48VEQ+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNJRFgzMiI+PENPREU+aGlzdG9yeV9hcmdfZXh0cmFjdDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTYiPjIuMy43IEhpc3RvcnkgRXhwYW5zaW9uPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMzMiPjxDT0RFPmhpc3RvcnlfYmFzZTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTciPjIuNCBIaXN0b3J5IFZhcmlhYmxlczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDM4Ij48Q09ERT5oaXN0b3J5X2NvbW1lbnRfY2hhcjwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTciPjIuNCBIaXN0b3J5IFZhcmlhYmxlczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDI5Ij48Q09ERT5oaXN0b3J5X2V4cGFuZDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTYiPjIuMy43IEhpc3RvcnkgRXhwYW5zaW9uPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMzYiPjxDT0RFPmhpc3RvcnlfZXhwYW5zaW9uX2NoYXI8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE3Ij4yLjQgSGlzdG9yeSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNJRFgxNSI+PENPREU+aGlzdG9yeV9nZXQ8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzEyIj4yLjMuMyBJbmZvcm1hdGlvbiBBYm91dCB0aGUgSGlzdG9yeSBMaXN0PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMzUiPjxDT0RFPmhpc3RvcnlfYXJnX2V4dHJhY3Q8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE2Ij4yLjMuNyBIaXN0b3J5IEV4cGFuc2lvbjwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDM2Ij48Q09ERT5oaXN0b3J5X2Jhc2U8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE3Ij4yLjQgSGlzdG9yeSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNJRFg0MiI+PENPREU+aGlzdG9yeV9jb21tZW50X2NoYXI8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE3Ij4yLjQgSGlzdG9yeSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNJRFgzMiI+PENPREU+aGlzdG9yeV9leHBhbmQ8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE2Ij4yLjMuNyBIaXN0b3J5IEV4cGFuc2lvbjwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDQwIj48Q09ERT5oaXN0b3J5X2V4cGFuc2lvbl9jaGFyPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxNyI+Mi40IEhpc3RvcnkgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMTciPjxDT0RFPmhpc3RvcnlfZ2V0PC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxMiI+Mi4zLjMgSW5mb3JtYXRpb24gQWJvdXQgdGhlIEhpc3RvcnkgTGlzdDwvQT48L1REPjwvVFI+CiA8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDMiPjxDT0RFPmhpc3RvcnlfZ2V0X2hpc3Rvcnlfc3RhdGU8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzEwIj4yLjMuMSBJbml0aWFsaXppbmcgSGlzdG9yeSBhbmQgU3RhdGUgTWFuYWdlbWVudDwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDQzIj48Q09ERT5oaXN0b3J5X2luaGliaXRfZXhwYW5zaW9uX2Z1bmN0aW9uPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxNyI+Mi40IEhpc3RvcnkgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMTEiPjxDT0RFPmhpc3RvcnlfaXNfc3RpZmxlZDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTEiPjIuMy4yIEhpc3RvcnkgTGlzdCBNYW5hZ2VtZW50PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMzQiPjxDT0RFPmhpc3RvcnlfbGVuZ3RoPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxNyI+Mi40IEhpc3RvcnkgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMTIiPjxDT0RFPmhpc3RvcnlfbGlzdDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTIiPjIuMy4zIEluZm9ybWF0aW9uIEFib3V0IHRoZSBIaXN0b3J5IExpc3Q8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNJRFgzNSI+PENPREU+aGlzdG9yeV9tYXhfZW50cmllczwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTciPjIuNCBIaXN0b3J5IFZhcmlhYmxlczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDQwIj48Q09ERT5oaXN0b3J5X25vX2V4cGFuZF9jaGFyczwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTciPjIuNCBIaXN0b3J5IFZhcmlhYmxlczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDQyIj48Q09ERT5oaXN0b3J5X3F1b3Rlc19pbmhpYml0X2V4cGFuc2lvbjwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTciPjIuNCBIaXN0b3J5IFZhcmlhYmxlczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDIxIj48Q09ERT5oaXN0b3J5X3NlYXJjaDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTQiPjIuMy41IFNlYXJjaGluZyB0aGUgSGlzdG9yeSBMaXN0PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYNDEiPjxDT0RFPmhpc3Rvcnlfc2VhcmNoX2RlbGltaXRlcl9jaGFyczwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTciPjIuNCBIaXN0b3J5IFZhcmlhYmxlczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDIzIj48Q09ERT5oaXN0b3J5X3NlYXJjaF9wb3M8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE0Ij4yLjMuNSBTZWFyY2hpbmcgdGhlIEhpc3RvcnkgTGlzdDwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDIyIj48Q09ERT5oaXN0b3J5X3NlYXJjaF9wcmVmaXg8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE0Ij4yLjMuNSBTZWFyY2hpbmcgdGhlIEhpc3RvcnkgTGlzdDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDE4Ij48Q09ERT5oaXN0b3J5X2dldF90aW1lPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxMiI+Mi4zLjMgSW5mb3JtYXRpb24gQWJvdXQgdGhlIEhpc3RvcnkgTGlzdDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDQ3Ij48Q09ERT5oaXN0b3J5X2luaGliaXRfZXhwYW5zaW9uX2Z1bmN0aW9uPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxNyI+Mi40IEhpc3RvcnkgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMTMiPjxDT0RFPmhpc3RvcnlfaXNfc3RpZmxlZDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTEiPjIuMy4yIEhpc3RvcnkgTGlzdCBNYW5hZ2VtZW50PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMzciPjxDT0RFPmhpc3RvcnlfbGVuZ3RoPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxNyI+Mi40IEhpc3RvcnkgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMTQiPjxDT0RFPmhpc3RvcnlfbGlzdDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTIiPjIuMy4zIEluZm9ybWF0aW9uIEFib3V0IHRoZSBIaXN0b3J5IExpc3Q8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNJRFgzOCI+PENPREU+aGlzdG9yeV9tYXhfZW50cmllczwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTciPjIuNCBIaXN0b3J5IFZhcmlhYmxlczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDQ1Ij48Q09ERT5oaXN0b3J5X25vX2V4cGFuZF9jaGFyczwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTciPjIuNCBIaXN0b3J5IFZhcmlhYmxlczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDQ2Ij48Q09ERT5oaXN0b3J5X3F1b3Rlc19pbmhpYml0X2V4cGFuc2lvbjwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTciPjIuNCBIaXN0b3J5IFZhcmlhYmxlczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDI0Ij48Q09ERT5oaXN0b3J5X3NlYXJjaDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTQiPjIuMy41IFNlYXJjaGluZyB0aGUgSGlzdG9yeSBMaXN0PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYNDQiPjxDT0RFPmhpc3Rvcnlfc2VhcmNoX2RlbGltaXRlcl9jaGFyczwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTciPjIuNCBIaXN0b3J5IFZhcmlhYmxlczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDI2Ij48Q09ERT5oaXN0b3J5X3NlYXJjaF9wb3M8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE0Ij4yLjMuNSBTZWFyY2hpbmcgdGhlIEhpc3RvcnkgTGlzdDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDI1Ij48Q09ERT5oaXN0b3J5X3NlYXJjaF9wcmVmaXg8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE0Ij4yLjMuNSBTZWFyY2hpbmcgdGhlIEhpc3RvcnkgTGlzdDwvQT48L1REPjwvVFI+CiA8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDQiPjxDT0RFPmhpc3Rvcnlfc2V0X2hpc3Rvcnlfc3RhdGU8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzEwIj4yLjMuMSBJbml0aWFsaXppbmcgSGlzdG9yeSBhbmQgU3RhdGUgTWFuYWdlbWVudDwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDE3Ij48Q09ERT5oaXN0b3J5X3NldF9wb3M8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzEzIj4yLjMuNCBNb3ZpbmcgQXJvdW5kIHRoZSBIaXN0b3J5IExpc3Q8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNJRFgzNyI+PENPREU+aGlzdG9yeV9zdWJzdF9jaGFyPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxNyI+Mi40IEhpc3RvcnkgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMzEiPjxDT0RFPmhpc3RvcnlfdG9rZW5pemU8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE2Ij4yLjMuNyBIaXN0b3J5IEV4cGFuc2lvbjwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDE2Ij48Q09ERT5oaXN0b3J5X3RvdGFsX2J5dGVzPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxMiI+Mi4zLjMgSW5mb3JtYXRpb24gQWJvdXQgdGhlIEhpc3RvcnkgTGlzdDwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDI4Ij48Q09ERT5oaXN0b3J5X3RydW5jYXRlX2ZpbGU8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE1Ij4yLjMuNiBNYW5hZ2luZyB0aGUgSGlzdG9yeSBGaWxlPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMzkiPjxDT0RFPmhpc3Rvcnlfd29yZF9kZWxpbWl0ZXJzPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxNyI+Mi40IEhpc3RvcnkgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMjAiPjxDT0RFPmhpc3Rvcnlfc2V0X3BvczwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTMiPjIuMy40IE1vdmluZyBBcm91bmQgdGhlIEhpc3RvcnkgTGlzdDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDQxIj48Q09ERT5oaXN0b3J5X3N1YnN0X2NoYXI8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE3Ij4yLjQgSGlzdG9yeSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNJRFgzNCI+PENPREU+aGlzdG9yeV90b2tlbml6ZTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTYiPjIuMy43IEhpc3RvcnkgRXhwYW5zaW9uPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMTkiPjxDT0RFPmhpc3RvcnlfdG90YWxfYnl0ZXM8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzEyIj4yLjMuMyBJbmZvcm1hdGlvbiBBYm91dCB0aGUgSGlzdG9yeSBMaXN0PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMzEiPjxDT0RFPmhpc3RvcnlfdHJ1bmNhdGVfZmlsZTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTUiPjIuMy42IE1hbmFnaW5nIHRoZSBIaXN0b3J5IEZpbGU8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNJRFg0MyI+PENPREU+aGlzdG9yeV93b3JkX2RlbGltaXRlcnM8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE3Ij4yLjQgSGlzdG9yeSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNJRFgzOSI+PENPREU+aGlzdG9yeV93cml0ZV90aW1lc3RhbXBzPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxNyI+Mi40IEhpc3RvcnkgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KIDxUUj48VEQgQ09MU1BBTj0zPiA8SFI+PC9URD48L1RSPgogPFRSPjxUSD48QSBOQU1FPSJ2cl9OIj48L0E+TjwvVEg+PFREPjwvVEQ+PFREPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMTkiPjxDT0RFPm5leHRfaGlzdG9yeTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTMiPjIuMy40IE1vdmluZyBBcm91bmQgdGhlIEhpc3RvcnkgTGlzdDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDIyIj48Q09ERT5uZXh0X2hpc3Rvcnk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzEzIj4yLjMuNCBNb3ZpbmcgQXJvdW5kIHRoZSBIaXN0b3J5IExpc3Q8L0E+PC9URD48L1RSPgogPFRSPjxURCBDT0xTUEFOPTM+IDxIUj48L1REPjwvVFI+CiA8VFI+PFRIPjxBIE5BTUU9InZyX1AiPjwvQT5QPC9USD48VEQ+PC9URD48VEQ+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNJRFgxOCI+PENPREU+cHJldmlvdXNfaGlzdG9yeTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTMiPjIuMy40IE1vdmluZyBBcm91bmQgdGhlIEhpc3RvcnkgTGlzdDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDIxIj48Q09ERT5wcmV2aW91c19oaXN0b3J5PC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxMyI+Mi4zLjQgTW92aW5nIEFyb3VuZCB0aGUgSGlzdG9yeSBMaXN0PC9BPjwvVEQ+PC9UUj4KIDxUUj48VEQgQ09MU1BBTj0zPiA8SFI+PC9URD48L1RSPgogPFRSPjxUSD48QSBOQU1FPSJ2cl9SIj48L0E+UjwvVEg+PFREPjwvVEQ+PFREPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMjQiPjxDT0RFPnJlYWRfaGlzdG9yeTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTUiPjIuMy42IE1hbmFnaW5nIHRoZSBIaXN0b3J5IEZpbGU8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNJRFgyNSI+PENPREU+cmVhZF9oaXN0b3J5X3JhbmdlPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxNSI+Mi4zLjYgTWFuYWdpbmcgdGhlIEhpc3RvcnkgRmlsZTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDYiPjxDT0RFPnJlbW92ZV9oaXN0b3J5PC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxMSI+Mi4zLjIgSGlzdG9yeSBMaXN0IE1hbmFnZW1lbnQ8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNJRFg3Ij48Q09ERT5yZXBsYWNlX2hpc3RvcnlfZW50cnk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzExIj4yLjMuMiBIaXN0b3J5IExpc3QgTWFuYWdlbWVudDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDI3Ij48Q09ERT5yZWFkX2hpc3Rvcnk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE1Ij4yLjMuNiBNYW5hZ2luZyB0aGUgSGlzdG9yeSBGaWxlPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMjgiPjxDT0RFPnJlYWRfaGlzdG9yeV9yYW5nZTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTUiPjIuMy42IE1hbmFnaW5nIHRoZSBIaXN0b3J5IEZpbGU8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNJRFg3Ij48Q09ERT5yZW1vdmVfaGlzdG9yeTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTEiPjIuMy4yIEhpc3RvcnkgTGlzdCBNYW5hZ2VtZW50PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYOSI+PENPREU+cmVwbGFjZV9oaXN0b3J5X2VudHJ5PC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxMSI+Mi4zLjIgSGlzdG9yeSBMaXN0IE1hbmFnZW1lbnQ8L0E+PC9URD48L1RSPgogPFRSPjxURCBDT0xTUEFOPTM+IDxIUj48L1REPjwvVFI+CiA8VFI+PFRIPjxBIE5BTUU9InZyX1MiPjwvQT5TPC9USD48VEQ+PC9URD48VEQ+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNJRFg5Ij48Q09ERT5zdGlmbGVfaGlzdG9yeTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTEiPjIuMy4yIEhpc3RvcnkgTGlzdCBNYW5hZ2VtZW50PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMTEiPjxDT0RFPnN0aWZsZV9oaXN0b3J5PC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxMSI+Mi4zLjIgSGlzdG9yeSBMaXN0IE1hbmFnZW1lbnQ8L0E+PC9URD48L1RSPgogPFRSPjxURCBDT0xTUEFOPTM+IDxIUj48L1REPjwvVFI+CiA8VFI+PFRIPjxBIE5BTUU9InZyX1UiPjwvQT5VPC9USD48VEQ+PC9URD48VEQ+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNJRFgxMCI+PENPREU+dW5zdGlmbGVfaGlzdG9yeTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTEiPjIuMy4yIEhpc3RvcnkgTGlzdCBNYW5hZ2VtZW50PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJoaXN0b3J5Lmh0bWwjSURYMTIiPjxDT0RFPnVuc3RpZmxlX2hpc3Rvcnk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzExIj4yLjMuMiBIaXN0b3J5IExpc3QgTWFuYWdlbWVudDwvQT48L1REPjwvVFI+CiA8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDIiPjxDT0RFPnVzaW5nX2hpc3Rvcnk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzEwIj4yLjMuMSBJbml0aWFsaXppbmcgSGlzdG9yeSBhbmQgU3RhdGUgTWFuYWdlbWVudDwvQT48L1REPjwvVFI+CiA8VFI+PFREIENPTFNQQU49Mz4gPEhSPjwvVEQ+PC9UUj4KIDxUUj48VEg+PEEgTkFNRT0idnJfVyI+PC9BPlc8L1RIPjxURD48L1REPjxURD48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDEzIj48Q09ERT53aGVyZV9oaXN0b3J5PC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxMiI+Mi4zLjMgSW5mb3JtYXRpb24gQWJvdXQgdGhlIEhpc3RvcnkgTGlzdDwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDI2Ij48Q09ERT53cml0ZV9oaXN0b3J5PC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxNSI+Mi4zLjYgTWFuYWdpbmcgdGhlIEhpc3RvcnkgRmlsZTwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDE1Ij48Q09ERT53aGVyZV9oaXN0b3J5PC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxMiI+Mi4zLjMgSW5mb3JtYXRpb24gQWJvdXQgdGhlIEhpc3RvcnkgTGlzdDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0iaGlzdG9yeS5odG1sI0lEWDI5Ij48Q09ERT53cml0ZV9oaXN0b3J5PC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxNSI+Mi4zLjYgTWFuYWdpbmcgdGhlIEhpc3RvcnkgRmlsZTwvQT48L1REPjwvVFI+CiA8VFI+PFREIENPTFNQQU49Mz4gPEhSPjwvVEQ+PC9UUj4KIDwvVEFCTEU+PFA+PC9QPjx0YWJsZT48dHI+PHRoIHZhbGlnbj10b3A+SnVtcCB0bzogJm5ic3A7IDwvdGg+PHRkPjxBIEhSRUY9Imhpc3RvcnkuaHRtbCN2cl9BIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOm5vbmUiPjxiPkE8L2I+PC9BPgogICZuYnNwOyAKIDxBIEhSRUY9Imhpc3RvcnkuaHRtbCN2cl9DIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOm5vbmUiPjxiPkM8L2I+PC9BPgogICZuYnNwOyAKKzxBIEhSRUY9Imhpc3RvcnkuaHRtbCN2cl9GIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOm5vbmUiPjxiPkY8L2I+PC9BPgorICZuYnNwOyAKIDxBIEhSRUY9Imhpc3RvcnkuaHRtbCN2cl9HIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOm5vbmUiPjxiPkc8L2I+PC9BPgogICZuYnNwOyAKIDxBIEhSRUY9Imhpc3RvcnkuaHRtbCN2cl9IIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOm5vbmUiPjxiPkg8L2I+PC9BPgpAQCAtMTM4Niw3ICsyMDA1LDcgQEAKIDxUQUJMRSBDRUxMUEFERElORz0xIENFTExTUEFDSU5HPTEgQk9SREVSPTA+CiA8VFI+PFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMjIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMT5UYWJsZSBvZiBDb250ZW50czwvSDE+CkBAIC0xNDM1LDkgKzIwNTQsMTkgQEAKIDxBIE5BTUU9IlRPQzE4IiBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTgiPjIuNSBIaXN0b3J5IFByb2dyYW1taW5nIEV4YW1wbGU8L0E+CiA8QlI+CiA8L1VMPgotPEEgTkFNRT0iVE9DMTkiIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxOSI+QS4gQ29uY2VwdCBJbmRleDwvQT4KKzxBIE5BTUU9IlRPQzE5IiBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTkiPkEuIENvcHlpbmcgVGhpcyBNYW51YWw8L0E+CiA8QlI+Ci08QSBOQU1FPSJUT0MyMCIgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzIwIj5CLiBGdW5jdGlvbiBhbmQgVmFyaWFibGUgSW5kZXg8L0E+Cis8VUw+Cis8QSBOQU1FPSJUT0MyMCIgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzIwIj5BLjEgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlPC9BPgorPEJSPgorPFVMPgorPEEgTkFNRT0iVE9DMjEiIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMyMSI+QS4xLjEgQURERU5EVU06IEhvdyB0byB1c2UgdGhpcyBMaWNlbnNlIGZvciB5b3VyIGRvY3VtZW50czwvQT4KKzxCUj4KKzwvVUw+Cis8L1VMPgorPEEgTkFNRT0iVE9DMjIiIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMyMiI+Qi4gQ29uY2VwdCBJbmRleDwvQT4KKzxCUj4KKzxBIE5BTUU9IlRPQzIzIiBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMjMiPkMuIEZ1bmN0aW9uIGFuZCBWYXJpYWJsZSBJbmRleDwvQT4KIDxCUj4KIDwvVUw+CiA8SFIgU0laRT0xPgpAQCAtMTQ0NSw3ICsyMDc0LDcgQEAKIDxUQUJMRSBDRUxMUEFERElORz0xIENFTExTUEFDSU5HPTEgQk9SREVSPTA+CiA8VFI+PFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzE5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMjIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMT5TaG9ydCBUYWJsZSBvZiBDb250ZW50czwvSDE+CkBAIC0xNDU0LDkgKzIwODMsMTEgQEAKIDxCUj4KIDxBIE5BTUU9IlRPQzYiIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUM2Ij4yLiBQcm9ncmFtbWluZyB3aXRoIEdOVSBIaXN0b3J5PC9BPgogPEJSPgotPEEgTkFNRT0iVE9DMTkiIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxOSI+QS4gQ29uY2VwdCBJbmRleDwvQT4KKzxBIE5BTUU9IlRPQzE5IiBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDMTkiPkEuIENvcHlpbmcgVGhpcyBNYW51YWw8L0E+CiA8QlI+Ci08QSBOQU1FPSJUT0MyMCIgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzIwIj5CLiBGdW5jdGlvbiBhbmQgVmFyaWFibGUgSW5kZXg8L0E+Cis8QSBOQU1FPSJUT0MyMiIgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzIyIj5CLiBDb25jZXB0IEluZGV4PC9BPgorPEJSPgorPEEgTkFNRT0iVE9DMjMiIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMyMyI+Qy4gRnVuY3Rpb24gYW5kIFZhcmlhYmxlIEluZGV4PC9BPgogPEJSPgogCiA8L0JMT0NLUVVPVEU+CkBAIC0xNDY1LDExICsyMDk2LDExIEBACiA8VEFCTEUgQ0VMTFBBRERJTkc9MSBDRUxMU1BBQ0lORz0xIEJPUkRFUj0wPgogPFRSPjxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9Imhpc3RvcnkuaHRtbCNTRUMxOSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0iaGlzdG9yeS5odG1sI1NFQzIyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJoaXN0b3J5Lmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+CiA8L1RSPjwvVEFCTEU+CiA8SDE+QWJvdXQgdGhpcyBkb2N1bWVudDwvSDE+Ci1UaGlzIGRvY3VtZW50IHdhcyBnZW5lcmF0ZWQgYnkgPEk+Q2hldCBSYW1leTwvST4gb24gPEk+SnVuZSwgMjcgIDIwMDI8L0k+CitUaGlzIGRvY3VtZW50IHdhcyBnZW5lcmF0ZWQgYnkgPEk+Q2hldCBSYW1leTwvST4gb24gPEk+RGVjZW1iZXIsIDYgIDIwMDU8L0k+CiB1c2luZyA8QSBIUkVGPSJodHRwOi8vd3d3Lm1hdGhlbWF0aWsudW5pLWtsLmRlL35vYmFjaG1hbi9UZXhpMmh0bWwKICI+PEk+dGV4aTJodG1sPC9JPjwvQT4KIDxQPjwvUD4gIApAQCAtMTYzMSw3ICsyMjYyLDcgQEAKIDxCUj4gIAogPEZPTlQgU0laRT0iLTEiPgogVGhpcyBkb2N1bWVudCB3YXMgZ2VuZXJhdGVkCi1ieSA8ST5DaGV0IFJhbWV5PC9JPiBvbiA8ST5KdW5lLCAyNyAgMjAwMjwvST4KK2J5IDxJPkNoZXQgUmFtZXk8L0k+IG9uIDxJPkRlY2VtYmVyLCA2ICAyMDA1PC9JPgogdXNpbmcgPEEgSFJFRj0iaHR0cDovL3d3dy5tYXRoZW1hdGlrLnVuaS1rbC5kZS9+b2JhY2htYW4vVGV4aTJodG1sCiAiPjxJPnRleGkyaHRtbDwvST48L0E+CiAKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2RvYy9oaXN0b3J5LmluZm8gYi9yZWFkbGluZS9kb2MvaGlzdG9yeS5pbmZvCmluZGV4IDk4YzAwMDIuLjEwNzRjNjkgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL2RvYy9oaXN0b3J5LmluZm8KKysrIGIvcmVhZGxpbmUvZG9jL2hpc3RvcnkuaW5mbwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9yZWFkbGluZS9kb2MvaGlzdG9yeS5wZGYgYi9yZWFkbGluZS9kb2MvaGlzdG9yeS5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmVkMTBjNAotLS0gL2Rldi9udWxsCisrKyBiL3JlYWRsaW5lL2RvYy9oaXN0b3J5LnBkZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9yZWFkbGluZS9kb2MvaGlzdG9yeS5wcyBiL3JlYWRsaW5lL2RvYy9oaXN0b3J5LnBzCmluZGV4IGEzNWJjZjQuLmUzMjE1MjYgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL2RvYy9oaXN0b3J5LnBzCisrKyBiL3JlYWRsaW5lL2RvYy9oaXN0b3J5LnBzCkBAIC0xLDE0ICsxLDE2IEBACiAlIVBTLUFkb2JlLTIuMAotJSVDcmVhdG9yOiBkdmlwcyhrKSA1Ljg2IENvcHlyaWdodCAxOTk5IFJhZGljYWwgRXllIFNvZnR3YXJlCislJUNyZWF0b3I6IGR2aXBzKGspIDUuOTJiIENvcHlyaWdodCAyMDAyIFJhZGljYWwgRXllIFNvZnR3YXJlCiAlJVRpdGxlOiBoaXN0b3J5LmR2aQotJSVQYWdlczogMjAKKyUlUGFnZXM6IDI4CiAlJVBhZ2VPcmRlcjogQXNjZW5kCiAlJUJvdW5kaW5nQm94OiAwIDAgNjEyIDc5MgorJSVEb2N1bWVudEZvbnRzOiBDTUJYMTIgQ01SMTAgQ01UVDEwIENNU1kxMCBDTUJYVEkxMCBDTVRJMTAgQ01DU0MxMAorJSUrIENNU0wxMCBDTVNMVFQxMCBDTUJYMTAgQ01TUzEwIENNVFQ5IENNUjkgQ01USTkKICUlRW5kQ29tbWVudHMKICVEVklQU1dlYlBhZ2U6ICh3d3cucmFkaWNhbGV5ZS5jb20pCi0lRFZJUFNDb21tYW5kTGluZTogZHZpcHMgLUQgMzAwIC10IGxldHRlciAtbyBoaXN0b3J5LnBzIGhpc3RvcnkuZHZpCi0lRFZJUFNQYXJhbWV0ZXJzOiBkcGk9MzAwLCBjb21wcmVzc2VkCi0lRFZJUFNTb3VyY2U6ICBUZVggb3V0cHV0IDIwMDIuMDYuMjc6MTM1NAorJURWSVBTQ29tbWFuZExpbmU6IGR2aXBzIC1EIDYwMCAtdCBsZXR0ZXIgLW8gaGlzdG9yeS5wcyBoaXN0b3J5LmR2aQorJURWSVBTUGFyYW1ldGVyczogZHBpPTYwMCwgY29tcHJlc3NlZAorJURWSVBTU291cmNlOiAgVGVYIG91dHB1dCAyMDA1LjEyLjA2OjE1NDYKICUlQmVnaW5Qcm9jU2V0OiB0ZXhjLnBybwogJSEKIC9UZVhEaWN0IDMwMCBkaWN0IGRlZiBUZVhEaWN0IGJlZ2luL057ZGVmfWRlZi9Ce2JpbmQgZGVmfU4vU3tleGNofU4vWHtTCkBAIC02NywxNTkyICs2OSw0NzQwIEBACiBybW92ZXRvfUIveXszIDIgcm9sbCBwIGF9Qi9ib3N7L1NTIHNhdmUgTn1CL2Vvc3tTUyByZXN0b3JlfUIgZW5kCiAKICUlRW5kUHJvY1NldAotVGVYRGljdCBiZWdpbiA0MDI1ODQzMSA1MjA5OTE0NiAxMDAwIDMwMCAzMDAgKGhpc3RvcnkuZHZpKQotQHN0YXJ0Ci0lRFZJUFNCaXRtYXBGb250OiBGYSBjbXRpMTAgMTAuOTUgMQotL0ZhIDEgNDcgZGY8MTI3MDEyRjhBMjEyRjAxMkUwMDUwNTdCODQwRT40NiBEIEUKLSVFbmREVklQU0JpdG1hcEZvbnQKLSVEVklQU0JpdG1hcEZvbnQ6IEZiIGNtYnh0aTEwIDE0LjQgMQotL0ZiIDEgNDcgZGY8MTIwRTEyM0ZFQTdGODBBMjEyRkZBMjEzMDAxMjdFMTIzQzA5MDk3OTg4MTU+NDYKLUQgRQotJUVuZERWSVBTQml0bWFwRm9udAotJURWSVBTQml0bWFwRm9udDogRmMgY210dDkgOSAyNgotL0ZjIDI2IDEyMyBkZjxFQUZGRkVBMzBGMDM3RTdFMTQ+OTUgRDxFQTFGQzBFQTdGRjBFQTcwNzhFQTIwMThFQTAwMUNBMkVBCi0wN0ZDMTIxRkVBM0MxQzEyNzAxMkUwQTNFQTcwN0MzODNGRkY4MEVBMEY4RjExMTA3RThGMTQ+OTcKLUQ8MTJGQ0EyMTIxQ0E1MTNGOEVBMURGRUVBMUYwN0VBMUUwMzAwMUMxMzgwRUIwMUMwQTZFQjAzODAwMDFFMTMwMEVBMUYwRQotRUExREZDRUEwQ0Y4MTIxNzgwOTYxND5JPEVBMDNGOEVBMEZGRUVBMUMwRUVBMzgwNEVBNzAwMDEyNjAxMkUwQTQxMjYwMTIKLTcwRUEzODBFRUExQzFFRUEwRkZDRUEwM0YwMEYxMDdFOEYxND5JPDEzN0VBMjEzMEVBNUVBMDdDRUVBMEZGRUVBMUMzRUVBCi0zMDFFRUE3MDBFMTJFMEE2MTI3MEVBMzAxRUVBMzgzRTM4MUZFRkMwRUEwN0NGMTIxNzdGOTYxND5JPEVBMDdFMEVBMEZGMAotRUExQzM4RUEzMDFDRUE3MDBDRUFFMDBFQTJFQUZGRkVBMkVBRTAwMDEyNjAxMjcwRUEzODBFRUExQzFFRUEwRkZDRUEwM0YwCi0wRjEwN0U4RjE0Pkk8MTNGQ0VBMDFGRUVBMDM4RUVBMDcwNDEzMDBBM0VBN0ZGRTEyRkZFQTA3MDBBQ0VBRkZGOEEyMEYxNwotN0Y5NjE0Pkk8RUEwN0NGMzgxRkZGODBFQTM4M0IzODMwMTgwMEVBNzAxQ0EzRUEzMDE4RUEzODM4RUEzRkYwRUEzN0MwMDAKLTcwQzdGQ0EyRUEzRkY4NkM3RTQ4N0VFQTcwMEYzOEUwMDM4MEE0Mzg3MDA3MDBFQTNDMUVFQTFGRkNFQTA3RjAxMTE5N0Y4RgotMTQ+STwxMkZDQTIxMjFDQTUxMzc4RUExREZFRUExRjg2RUExRTA3MTIxQ0FBMzhGRjhGRTBBMjEzMTc4MDk2MTQ+STwxMjA2Ci0xMjBGQTIxMjA2QzdGQ0E0QjRGQ0EyMTIwN0FDRUFGRkY4QTIwRDE4N0M5NzE0Pkk8MTJGQ0EyMTIxQ0E1RUJGRjgwQTJFQgotMUMwMDVCNUI1QkVBMURDMEVBMUZFMEEyRUExRTcwRUExQzM4MTMzQzEzMUM3RjM4RkYxRjgwQTIxMTE3ODA5NjE0PjEwNwotRDxFQUZGODBBMjEyMDNCM0VBRkZGRUEyMEYxNzdFOTYxND5JPEVBRkI4RUVBRkZERjM4M0NGMzgwQTJFQTM4RTNBQTM4RkUKLUZCRTAxMzc5MTMxMDgwOEYxND5JPEVBRkM3OEVBRkRGRUVBMUY4NkVBMUUwNzEyMUNBQTM4RkY4RkUwQTIxMzEwODA4RjE0PgotSTxFQTA3QzBFQTFGRjBFQTNDNzhFQTcwMUNBMkVBRTAwRUE2RUE3MDFDRUE3ODNDRUEzQzc4RUExRkYwRUEwN0MwMEYxMDdFCi04RjE0Pkk8RUFGQ0Y4RUFGREZFRUExRjA3RUExRTAzMDAxQzEzODBFQjAxQzBBNkVCMDM4MDAwMUUxMzAwRUExRjBFRUExRAotRkNFQTFDRjg5MEM3RkNBNkI0N0VBMjEyMTg4MDhGMTQ+STxFQTAzRTdFQTBGRjdFQTFDMUZFQTMwMEYxMjcwNDg3RUE2RUEKLTcwMEYxMjMwRUExQzNGRUEwRkY3RUEwN0M3RUEwMDA3QTZFQjNGRTBBMjEzMTg3RjhGMTQ+STxFQUZFMUZFQjdGODBFQTBFCi1FMzM4MEY4MTAwOTBDN0ZDQTIxMjBFQThFQUZGRjBBMjExMTA3RjhGMTQ+STxFQTBGRDhFQTNGRjhFQTYwMzgxMkMwQTJFQQotRjAwMEVBN0Y4MEVBM0ZGMEVBMDdGOEVBMDAxQ0VBNjAwNjEyRTAxMkYwRUFGODFDRUFGRkY4RUFDRkUwMEYxMDdFOEYxND4KLUk8MTIwNjEyMEVBNEVBN0ZGQzEyRkZFQTBFMDBBODEzMEVBMzEzMUNFQTA3RjhFQTAxRjAwRjE1N0Y5NDE0Pkk8RUFGQzNGCi1BMkVBMUMwN0FCMTMxRjM4MEZGRkUwRUEwM0U3MTMxMDgwOEYxND5JPDM4RkUzRjgwQTIzODNDMUUwMEVBMUMxQ0EzNkM1QQotQTNFQTA2MzBFQTA3NzBBMzZDNUFBMzExMTA3RjhGMTQ+STwzOEZFM0Y4MEEyMzg3MDA3MDBFQTM4MEVBM0VBMzlDRUEzRUEKLTFCNkMxMjFBQTNFQTFFN0NBMkVBMEUzODExMTA3RjhGMTQ+STxFQTdFM0ZBMkVBMUUzQ0VBMEU3OEVBMDc3MDVCMTIwMzZDCi01QTEyMDM3RkVBMDc3MEVBMEU3ODEzMzg0ODdFMzhGRTNGODBBMjExMTA3RjhGMTQ+STwzOEZFM0Y4MEEyMzgxQzBFMDA1QgotQTIxMjBFNUJBMjEyMDcxMzMwQTJFQTAzNzBBMjVCMTIwMUEyNUJBMzQ4NUExMjczMDA3N0M3RkMxMjdFMTIzQzExMTg3RjhGCi0xND5JPEVBM0ZGRjVBRUE3MDBFMTMxQzEzMzhFQTAwNzAxM0UwRUEwMUMwRUEwMzgwRUEwNzAwMTIwRUVBMUMwNzEyMzgxMgotNzBCNUZDQTIxMDEwN0Y4RjE0PkkgRQotJUVuZERWSVBTQml0bWFwRm9udAotJURWSVBTQml0bWFwRm9udDogRmQgY210aTkgOSAxCi0vRmQgMSA0NyBkZjwxMjMwMTI3ODEyRjAxMjYwMDUwNDdDODMwQz40NiBEIEUKLSVFbmREVklQU0JpdG1hcEZvbnQKLSVEVklQU0JpdG1hcEZvbnQ6IEZlIGNtcjkgOSAyNAotL0ZlIDI0IDEyMiBkZjxFQTA3RTBFQTFDMzhFQTM4MUNFQTMwMENFQTcwMEVFQTYwMDZBMkVBRTAwN0FBRUE2MDA2QTJFQTcwCi0wRUVBMzAwQ0VBMzgxQ0VBMUMzOEVBMDdFMDEwMTg3Rjk3MTM+NDggRDwxMjAzNUFCNEZDMTIwN0IzQTJFQTdGRjgwRDE4N0QKLTk3MTM+STxFQTAxRjhFQTA3MDRFQTBDMDZFQTE4MEUxMjMwMTMwMDEyNzAxMjYwMTJFMEVBRTNFMEVBRTQxOEVBRTgwQ0VBCi1GMDBFRUFFMDA2MTMwN0EzMTI2MEEyRUE3MDA2RUEzMDBFRUExODBDRUEwQzM4RUEwN0UwMTAxODdGOTcxMz41NAotRDwxMjQwRUE3RkZGMTNGRUEyRUE0MDA0RUE4MDA4MTMxMEEyRUEwMDIwMTM0MEEyMTM4MDEyMDExMzAwNUFBMjVBMTIwNkEyCi0xMjBFQTUxMjA0MTAxOTdFOTgxMz5JPEVBMDdFMEVBMTgxOEVBMzAwQ0VBMjAwNjEyNjBBMjEyNzBFQTc4MENFQTNFMThFQQotMUYzMEVBMDdDMEVBMDNFMEVBMENGOEVBMzA3Q0VBNjAxRTEzMEZFQUMwMDcxMzAzQTNFQTYwMDJFQTIwMDRFQTE4MThFQTA3Ci1FMDEwMTg3Rjk3MTM+STxFQTA3RTBFQTFDMzBFQTMwMThFQTcwMENFQTYwMEVFQUUwMDZBMjEzMDdBMzEyNjBFQTcwMEZFQQotMzAxN0VBMTgyN0VBMDdDN0VBMDAwNzEzMDYxMzBFMTMwQzEyNzAxMzE4RUE2MDMwRUEzMDYwRUEwRjgwMTAxODdGOTcxMz4KLUk8MzlGRkUxRkZDMDM5MEUwMDFDMDBBQjM4MEZGRkZDMzgwRTAwMUNBQzM5RkZFMUZGQzAxQTFBN0Y5OTFEPjcyCi1EPEVBMEZDMkVBMTgzNkVBMjAwRUVBNjAwNjEyQzAxMzAyQTNFQUUwMDAxMjcwMTI3RUVBM0ZFMEVBMUZGOEVBMDNGQ0VBMDAKLTdFMTMwRTEzMDcxMzAzMTI4MEEzRUFDMDAyMTMwNkVBRTAwNEVBRDgxOEVBODdFMDEwMUE3RTk5MTU+ODMKLUQ8RUExRkMwRUEzODcwN0ZFQTEwMUMxMjAwQTJFQTAzRkNFQTFFMUMxMjM4MTI3MDEyRTAxNDgwQTIxMzNDRUE3MDVGMzgxRgotOEYwMDExMTA3RjhGMTM+OTcgRDxFQTA3RjhFQTFDMUMxMjM4RUE3MDA4MTMwMDVBQTYxMjcwMTMwNEVBMzgwOEVBMUMxOEVBCi0wN0UwMEUxMDdGOEYxMT45OSBEPDEzM0YxMzA3QTlFQTAzRTdFQTBDMTdFQTE4MEY0ODdFMTI3MDEyRTBBNjEyNjAxMjcwNkMKLTVBRUExQzM3MzgwN0M3RTAxMzFBN0Y5OTE1Pkk8RUEwN0MwRUExQzMwRUEzMDE4MTI3MEVBNjAwQzEyRTBFQUZGRkNFQUUwCi0wMEE0MTI2MEVBNzAwNEVBMzgwOEVBMUMxOEVBMDdFMDBFMTA3RjhGMTE+STxFQTBGQ0YzODE4NzE4MDM4MzAzMDAwRUE3MAotMzhBNEVBMzAzMDZDNUFFQTJGQzAwMDYwQzdGQ0EyMTI3MEVBM0ZGMDEzRkM2QzdFRUE2MDBGRUFDMDAzQTRFQTYwMDZFQTM4Ci0xQ0VBMDdFMDExMTg3RjhGMTM+MTAzIEQ8MTJGQzEyMUNBOTEzN0NFQTFEODczODFFMDM4MEEyMTIxQ0FCMzhGRjlGRjAxNAotMUE4MDk5MTU+STwxMjE4MTIzQ0EyMTIxODEyMDBBNjEyRkMxMjFDQUUxMkZGMDgxQTgwOTkwQT5JPEVBRkM3Q0VBMUQ4NzM4Ci0xRTAzODBBMjEyMUNBQjM4RkY5RkYwMTQxMDgwOEYxNT4xMTAgRDxFQTA3RTBFQTFDMzhFQTMwMENFQTcwMEVFQTYwMDZFQQotRTAwN0E2RUE2MDA2RUE3MDBFRUEzODFDRUExQzM4RUEwN0UwMTAxMDdGOEYxMz5JPEVBRkNGQ0VBMUQwNzM4MUUwMzgwMzgKLTFDMDFDMEEyRUIwMEUwQTZFQjAxQzAxNDgwMzgxRTAzMDBFQTFEMDZFQTFDRjg5MEM3RkNBNkI0N0UxMzE3ODA4RjE1Pkk8Ci1FQUZDNzhFQTFEOUNFQTFFMUMxMzA4RUExQzAwQUJFQUZGODAwRTEwODA4RjBGPjExNCBEPEVBMUYyMEVBNjBFMEVBNDAyMAotMTJDMEEyRUFGMDAwMTI3RkVBM0ZDMEVBMUZFMEVBMDBGMEVBODA3MDEzMzAxMkMwMTMyMEVBRjA0MEVBOEY4MDBDMTA3RjhGCi0wRj5JPDEyMDhBNDEyMThBMjEyMzhFQUZGQzBFQTM4MDBBODEzMjBBNDEyMThFQTFDNDBFQTA3ODAwQjE3N0Y5NjBGPkk8MzgKLUZGMEY4MDM4M0MwNzAwRUExQzA2MTMwNEEyNkM1QUEyNkM1QUEzRUEwM0EwQTJFQTAxQzBBMzZDNUExMTEwN0Y4RjE0PgotMTE4IEQ8MzhGRTNGODAzODNDMUUwMEVBMUMwODZDNUFFQTBGMzA2QzVBNkM1QTEyMDE3RjEyMDNFQTAyNzA0ODdFMTIwOEVBCi0xODFDRUEzODFFMzhGQzNGQzAxMjEwN0Y4RjE0PjEyMCBEPDM4RkYwRjgwMzgzQzA3MDBFQTFDMDYxMzA0QTI2QzVBQTI2QwotNUFBM0VBMDNBMEEyRUEwMUMwQTM2QzVBQTI0OEM3RkNBMjEyRTExMkUyMTJFNDEyNzgxMTE3N0Y4RjE0PkkKLUUKLSVFbmREVklQU0JpdG1hcEZvbnQKLSVEVklQU0JpdG1hcEZvbnQ6IEZmIGNtc3MxMCAxMC45NSAyCi0vRmYgMiA0MiBkZjwxM0UwRUEwMUMwRUEwMzgwMTIwNzEzMDA1QTEyMUVBMjEyMUMxMjNDQTIxMjM4MTI3OEEzMTI3MDEyRjAKLUFFMTI3MDEyNzhBMzEyMzgxMjNDQTIxMjFDMTIxRUEyN0U3RTEzODAxMjAzRUEwMUMwRUEwMEUwMEIyRTdDQTExMj40MAotRDwxMkUwMTI3MDdFMTIzQzEyMUMxMjFFN0VBMjdFMTM4MEEyMTIwMzEzQzBBMzEyMDExM0UwQUUxM0MwMTIwM0EzMTM4MDEyCi0wN0EyMTMwMDVBQTIxMjFFMTIxQzEyM0MxMjM4NUE1QTBCMkU3RUExMTI+SSBFCi0lRW5kRFZJUFNCaXRtYXBGb250Ci0lRFZJUFNCaXRtYXBGb250OiBGZyBjbWJ4MTAgMTIgMjcKLS9GZyAyNyAxMjMgZGY8RUIwN0Y4RUI3RkZDMzgwMUZDMEUzODAzRjAxRjQ4NDg1QUVBMEZDMEEzMTQxRTE0MEM5MUM3RkNBMgotRUNGRjgwQjZGQ0EyMzgwRkMwMUZCMjM5N0ZGOEZGRjBBMjFDMjM3RkEyMjA+MTIgRDw5MDM4MEZGRjgwMTM3RjM4MDFGQzFGCi0zODAzRjAzRkVBMDdFMEVBMEZDMDE0MUZBN0I2RkNBMjM4MEZDMDFGQjIzOTdGRjhGRkYwQTIxQzIzN0ZBMjIwPkk8RUEwNwotRkUzODFGRkY4MDM4M0YwN0UwNkQ3RTEzMDE4MDEyMUUxMjAwQTIxMzNGRUEwM0ZERUExRjgxRUEzRTAxMTI3QzEyRjhBNEVBCi03QzAyRUE3RTBDMzkxRkY4N0Y4MDM4MDdFMDNGMTkxNjdFOTUxQz45NyBEPEI0N0VBMjEyMUZBQkVCODdGMEVCQkZGQ0VCRjAKLTNFRUJDMDFGOTAzODgwMEY4MDE1QzAxNDA3MTVFMEE3MTVDMEEyMTQwRjE1ODA5MDM4QzAxRjAwMzgxRTcwN0UzODFDM0ZGQwotMzgxODBGRTAxQjIzN0VBMjIwPkk8RUJGRjgwMDAwNzEzRTAzODBGODNGMEVBMUYwMzEyM0UxMjdFMzg3QzAxRTA5MEM3RkMKLTEyRkNBNjEyN0MxMjdFQTIwMDNFMTMxODZDMTMzMDM4MEZDMDYwMzgwN0ZGQzBDNjEzMDAxNTE2N0U5NTE5Pkk8NDlCNEZDCi1BMkVCMDAzRkFCMTNGRTM4MDdGRkJGMzgwRkMxRkY0OEM2N0UwMDNFN0YxMjdFMTI3Q0EyMTJGQ0E3MTI3QzEyN0UxMjNFNkMKLTVCMzgwRjgxRkYzOTA3RkYzRkUwRUEwMUZDMUIyMzdFQTIyMD5JPDEzRkUzODA3RkY4MDM4MEY4M0MwMzgxRTAxRTAzODNFCi0wMEYwMTI3RTAwN0MxM0Y4MTQ3ODEyRkNCNTEyRjhBMjAwRkNDN0ZDQTMxMjdDQTI2QzEzMThBMjZDMTMzMDM4MEY4MEUwMzgKLTAzRkZDMEM2MTMwMDE1MTY3RTk1MUE+STxFQjFGODBFQkZGRTAzODAxRjFGMEVBMDNFMzEyMDdFQTBGQzNFQkMxRTBFQkMwCi0wMEE2RUFGRkZFQTJFQTBGQzBCMkVBN0ZGQ0EyMTQyMzdFQTIxMj5JPDkwMzhGRTBGODAzOTAzRkY5RkMwMzgwRjgzRTMzOAotMUYwMUYzMzkxRTAwRjAwMDAwM0U3RkE1MDAxRTVCRUExRjAxMzgwRjgzRTAzODBCRkY4MEQ4MDhGRUM3RkMwMDE4QzhGQ0EyCi0xMjFDMzgxRkZGRTAxNEZDNkMxM0ZGN0UwMDFGMTQ4MDM5N0MwMDFGQzAwMDc4MTMwRjAwRjgxMzA3QTMwMDdDRUIwRjgwNkMKLUVCMUYwMDM4MUY4MDdFNkNCNDVBMDAwMTEzRTAxQTIxN0Y5NTFEPkk8QjQ3RUEyMTIxRkFCRUI4M0YwRUI4RkZDRUI5ODdFCi1FQkEwM0VFQkMwM0ZBMjEzODBBRTM5RkZGMUZGRTBBMjFCMjM3REEyMjA+STwxMjFFMTIzRkVBN0Y4MEE0RUEzRjAwMTIxRQotQzdGQ0E2RUFGRjgwQTIxMjFGQjJFQUZGRjBBMjBDMjQ3RUEzMEY+STxCNDdFQTIxMjFGQUJFQ0ZGODBBMkVDM0MwMDE0MzAKLTE0RTBFQjgxQzAwMTgzQzdGQzEzODYxMzlFMTNCRTEzRkZFQkRGODBFQjhGQzAxMzA3ODA2RDdFNkQ3RTEzMDA4MDE0N0UzOQotRkZFMUZGQzBBMjFBMjM3RUEyMUU+MTA3IEQ8RUFGRjgwQTIxMjFGQjNBREVBRkZGMEEyMEMyMzdFQTIwRj5JPDNBRkYwM0Y4Ci0wM0Y4OTAzOTBGRkUwRkZFM0ExRjE4M0YxODNGOTAzOTIwMUYyMDFGMDE0MDAxQzAxMzgwQTIwMTgwMTM4MEFFM0JGRkYwRkYKLUYwRkZGMEEyMkMxNjdEOTUzMT5JPDM4RkYwM0YwRUIwRkZDMzgxRjE4N0VFQjIwM0VFQjQwM0ZBMjEzODBBRTM5RkZGMUZGCi1FMEEyMUIxNjdEOTUyMD5JPDEzRkYwMDA3MTNFMDM4MEY4MUYwMzgxRjAwRjgwMDNFMTM3QzQ4MTMzRUEzMDBGQzEzM0ZBNwotMDA3QzEzM0UwMDdFMTM3RTAwM0UxMzdDNkMxM0Y4MzgwRjgxRjAzODA3RkZFMEM2MTMwMDE4MTY3RTk1MUQ+STwzOEZGODcKLUYwRUJCRkZDMzgxRkYwN0VFQkMwMUY5MDM4ODAwRjgwMTVDMEEyRUMwN0UwQTcxNUMwMTQwRkEyRUMxRjgwMDFDMDEzMDBFQgotRjA3RUVCQkZGQ0VCOEZFMDAxODBDN0ZDQThFQUZGRjBBMjFCMjA3RTk1MjA+STxFQkZFMDMzODA3RkYwNzM4MEZDMUNGMzgKLTFGMDBERjQ4MTM3RjAwN0U3RkEyMTI3QzEyRkNBNzEyN0VBMjAwM0U1QjZDNUJFQTBGQzEzODA3RkYzRkVBMDBGQzEzMDBBOAotOTAzODAxRkZFMEEyMUIyMDdFOTUxRT5JPDM4RkYwRjgwRUIxRkUwMzgxRjMzRjAxMzYzMTM0M0EyRUJDMUUwRUI4MDAwQUQKLUVBRkZGOEEyMTQxNjdFOTUxOD5JPDM4MDdGOTgwRUExRkZGRUEzODA3RUE3MDAzRUFGMDAxQTI2Q0M3RkNCNEZDMTNGOEVBCi03RkZFNkM3RTZDMTM4MDEyMDczODAwM0ZDMEVBQzAwNzEzMDMxMkUwQTIwMEYwMTM4MDM4RkMwRjAwRUFFRkZFRUFDM0Y4MTIKLTE2N0U5NTE3Pkk8NDg3RUE0MTIwM0EyMTIwN0EyMTIwRjEyM0ZCNUZDQTJFQTFGODBBQkVCODE4MEE1MzgwRjgzMDAxM0MzCi1FQTA3RkVFQTAxRjgxMTIwN0Y5RjE2Pkk8MzhGRjgxRkZBMjM4MUY4MDNGQUY1QzVDMzgwRkMxQkYzOTA3RkYzRkUwRUEwMQotRkMxQjE2N0Q5NTIwPkk8MzlGRkYwMUZFMEEyMzkxRkMwMDcwMDAwMEYxMzA2RUJFMDBFMDAwNzEzMEMxM0YwMDAwMzVCQTIKLTZDNkM1QUEyNkM2QzVBQTJFQkZFRTBFQjdFQzAxMzdGNkQ1QUEyNkRDN0ZDQTIxMzBFQTIxQjE2N0Y5NTFFPkk8M0FGRkYzCi1GRjgzRkNBMjNBMUY4MDdDMDBFMEQ4MEZDMDE0QzA4MDAxRTAxMzAxMDAwNzAxN0YxMzgwQTJEODAzRjBFQjAzMDBFQ0NGODMKLTAxRjgxMzg3RDgwMUY5MTNDNjE0ODdEODAwRkQxM0VDRUJGRjAzMTVGQzAxN0Y1QkVCN0UwMTAxM0U1QkVCM0MwMEEyMDExOAotMTM2MDI2MTY3Rjk1Mjk+STwzOUZGRjA3RkMwQTIzOTBGQzAxQzAwNkM2QzVBNkQ1QTAwMDM1QjZDNkM1QTM4MDBGRDgwMTMKLTdGOTFDN0ZDN0Y2RDdFNDk3RUVCMzdFMEVCNjdGMDEzQzMzODAxQzFGODM4MDM4MEZDNDg0ODdFMDAwRTEzN0YzOUZGODFGRgotRTBBMjFCMTY3Rjk1MUU+STwzOUZGRjAxRkUwQTIzOTFGQzAwNzAwMDAwRjEzMDZFQkUwMEUwMDA3MTMwQzEzRjAwMDAzNUIKLUEyNkM2QzVBQTI2QzZDNUFBMkVCRkVFMEVCN0VDMDEzN0Y2RDVBQTI2REM3RkNBMjEzMEVBMjEzMENBMjVCMTI3OEVBRkMzOAotMTMzMDVCRUE2OUMwRUE3RjgwMDAxRkM4RkMxQjIwN0Y5NTFFPkk8Mzg3RkZGRjBBMjM4N0MwN0UwMzg3MDBGQzBFQTYwMUYKLTAwRTAxMzgwMzhDMDNGMDA1QjEzN0VDNjVBMTIwMTQ4NUFFQkYwMzBFQTA3RTAxMjBGRUJDMDcwRUExRjgwMDAzRjEzNjBFQgotMDBFMEVBN0UwM0I1RkNBMjE0MTY3RTk1MTk+SSBFCi0lRW5kRFZJUFNCaXRtYXBGb250Ci0lRFZJUFNCaXRtYXBGb250OiBGaCBjbXR0MTAgMTIgMjcKLS9GaCAyNyAxMTkgZGY8MTNFMEE1MzhGMEUxRTBFQUZDRTczODdFRUZDMDM4MUZGRjAwRUEwN0ZDRUEwMUYwRUEwN0ZDRUExRgotRkYzODdFRUZDMDM4RkNFN0UwRUFGMEUxMzgwMEUwMDBBNTEzMTU3RDk5MUE+NDIgRDwxMzM4MTM3Q0EyMTM2QzEzRUVBMzEzCi1DNkEyRUEwMUM3QTQzODAzODM4MEE0MzgwNzAxQzBBMjEzRkZBMjQ4MTNFMEVBMEUwMEE0NDgxMzcwMzg3RjAxRkMzOEZGODMKLUZFMzg3RjAxRkMxNzFFN0Y5RDFBPjY1IEQ8QjUxMkY4QTMzODFDMDAzOEE1MTQwMEEyMTMwRUEzRUExRkZFQTNFQTFDMEVBMwotOTBDN0ZDQTMxNDFDQTVCNTEyRkNBMzE2MUU3RTlEMUE+NjkgRDwzOEZGODNGRUEzMzgxQzAwNzBBQTM4MUZGRkYwQTMzODFDCi0wMDcwQUIzOEZGODNGRUEzMTcxRTdGOUQxQT43MiBEPEI1MTI4MEEzMzgwMUMwMDBCM0E2QjUxMjgwQTMxMTFFN0M5RDFBPgotSTwzOEZFMDNGRTEyRkZBMjM4MUQ4MDcwQTIxM0MwMTIxQ0EyMTNFMEEyMTM2MDEzNzBBMjEzMzAxMzM4QTIxMzE4MTMxQ0EyCi0xMzBDMTMwRUEyMTMwNkEyMTMwNzEzMDNBMjM4RkY4MUYwQTIxMzgwMTcxRTdGOUQxQT43OAotRDxFQTBGRkUzODNGRkY4MDQ4MTNDMEVBN0MwN0VBNzAwMTAwRjAxM0UwRUFFMDAwQjFFQUYwMDFBMjAwNzAxM0MwRUE3QzA3Ci1FQTdGRkY2QzEzODAzODBGRkUwMDEzMUU3RDlEMUE+STxFQUZGRkMxM0ZGMTQ4MDM4MUMwN0MwRUIwMUUwRUIwMEYwMTQ3MAotQTQxNEYwRUIwMUUwRUIwN0MwMzgxRkZGODAxNDAwMTQ4MDM4MUMwN0MwMTMwMUVCMDBFMEE1MTRFMjE0RTdBMzM4RkY4MDdFCi1BMjE0MzgxODFFN0Y5RDFBPjgyIEQ8MzgwM0YxQzBFQTBGRkRFQTNGRkZFQTdDMEZFQTcwMDMxMkUwMTMwMUEzOTBDN0ZDMTIKLTcwMTI3ODEyM0ZFQTFGRjBFQTA3RkUzODAwRkY4MEVCMEZDMEVCMDFFMDEzMDAxNDcwQTIxMjYwMTJFMEEyMTRFMEVBRjAwMQotMzhGQzAzQzBCNTEyODAwMEVGMTMwMEVBRTNGQzE0MUU3RDlEMUE+STwzODdGRkZGRUI1RkNBMjM4RTAzODBFQTUwMDAwMTMKLTAwQjMzODAzRkY4MEEzMTcxRTdGOUQxQT5JPDM4RkYwMUZFQTMzODFDMDA3MDZDMTNFMEEyMzgwNzAxQzBBMjEzODMwMDAzCi0xMzgwMTNDNzAwMDExMzAwQTJFQTAwRUVBMjEzN0NBMjEzMzhBQTQ4QjRGQ0EzMTcxRTdGOUQxQT44OQotRDwzODdGRkZDMEI1MTJFMEEyNkMxM0MwMTMwNDdEN0UxQT45NSBEPEVBMUZGMEVBM0ZGQzQ4N0VFQTc4MEZFQTMwMDczODAwCi0wMzgwQTIxMzdGRUEwN0ZGMTIxRkVBM0Y4M0VBNzgwMzEyNzAxMkUwQTNFQTcwMDdFQTc4MEYzODNGRkZGQ0VBMUZGREVBMDcKLUYwMTYxNTdEOTQxQT45NyBEPDEyRkVBMzEyMEVBNjEzM0VFQkZGODAwMDBGMTNFMEVCQzFGMEVCODA3MEVCMDAzODEyMEUxNAotMUNBNzAwMEYxMzM4MTQ3OEVCODBGMEVCQzFFMEVCRkZDMDAwMEUxMzgwMzgwNjNFMDAxNjFFN0Y5RDFBPkk8RUJGRjgwMDAKLTAzMTNDMDAwMEYxM0UwRUExRjAxMzgzQzAwQzA0ODEzMDAxMjcwQTI1QUE1MTI3MEEyMDA3ODEzNzA3RTM4MUYwMUYwMzgwRgotRkZFMDAwMDMxM0MwMzgwMEZFMDAxNDE1N0Q5NDFBPkk8RUIxRkMwQTMxMzAxQTZFQTAxRjFFQTA3RkRFQTBGRkZFQTFFMEYKLUVBM0MwN0VBNzgwM0VBNzAwMTEyRTBBN0VBNzAwM0EyRUEzODA3RUEzRTBGMzgxRkZGRkNFQTA3RkRFQTAxRjExNjFFN0U5RAotMUE+STxFQTAxRjhFQTA3RkY0ODEzODAzODFFMDdDMEVBM0MwMTM4NzgwMEUwMTI3MDQ4MTM3MEEyQjUxMkYwQTMwMEUwQzcKLUZDMTI3MEEyMDA3ODEzNzA3RTM4MUYwMUYwMzgwRkZGRTAwMDAzMTM4MDM4MDBGRTAwMTQxNTdEOTQxQT5JPEVCMDdFMEVCCi0xRkYwRUIzRkY4RUI3ODc4RUJGMDMwRUJFMDAwQTQzODdGRkZGMEI1RkNBMjM4MDBFMDAwQUYzODNGRkY4MDQ4MTNDMDZDMTMKLTgwMTUxRTdGOUQxQT5JPDEyRkVBMzEyMEVBNjEzM0VFQkZGODAwMDBGMTNDMDEzQzFFQjgwRTAxMzAwMTIwRUFDMzhGRkUzCi1GRTEzRTcxM0UzMTcxRTdGOUQxQT4xMDQgRDxFQTAxQzA0ODdFQTM2QzVBQzhGQ0E1RUE3RkUwQTMxMjAwQUYzODdGRkY4MAotQjUxMkMwNkMxMzgwMTIxRjdDOUUxQT5JPEVBRkZFMEEzMTIwMEIzQTZCNTEyRTBBMzEzMUU3RDlEMUE+MTA4Ci1EPEVBRkUzRUVCRkY4MEI1MTJDMEVBMEZDMUVCODBFMDEzMDAxMjBFQUMzOEZGRTNGRTEzRTcxM0UzMTcxNTdGOTQxQT4KLTExMCBEPEVBMDFGMEVBMDdGQ0VBMUZGRjM4M0UwRjgwRUEzQzA3Mzg3ODAzQzBFQTcwMDEzOEUwMDBFMEE2RUFGMDAxMDA3MAotMTNDMEVBNzgwMzM4M0MwNzgwRUEzRTBGMzgxRkZGMDBFQTA3RkNFQTAxRjAxMzE1N0Q5NDFBPkk8Mzg3RjgxRjgzOEZGOEYKLUZDMzg3RjlGRkUzODAzRkUxRUVCRjgwQ0VCRTAwMEEyNUI1QkFBRUE3RkZGQjVGQzdFMTcxNTdGOTQxQT4xMTQKLUQ8NDg3RTEyMDNBNjM4N0ZGRkUwQjVGQ0EyMzgwMzgwMDBBQTE0NzBBNDM4MDFDMUUwMTNGRjZDMTM4MEVCM0YwMDE0MUM3RgotOUIxQT4xMTYgRDwzOEZFMEZFMEEzRUEwRTAwQUQxMzAxRUEwRjAzMzgwN0ZGRkU3RUVBMDBGQzE3MTU3Rjk0MUE+STwzODdGCi1DN0ZDMDBGRjEzRkUwMDdGMTNGQzM4MEUwMEUwQTMzODA3MDFDMEEzMzgwMzgzODBBMzM4MDFDNzAwQTNFQTAwRUVBMzEzN0MKLUEyMTMzODE3MTU3Rjk0MUE+SSBFCi0lRW5kRFZJUFNCaXRtYXBGb250Ci0lRFZJUFNCaXRtYXBGb250OiBGaSBjbWJ4MTIgMTMuMTQgNDEKLS9GaSA0MSAxMjMgZGY8RUIwN0ZDRUIzRkZGOTAzOEZFMDc4MEQ4MDNGMDEzQzAzODA3RTAwRkEyRUEwRkMwQTNFQzAzMDA5MQotQzdGQ0EzRUM3RkUwQjZGQ0EyMzgwRkMwMDdCM0EyMzlGRkZDN0ZGRUEyMUYyNjdGQTUyMj4xMgotRDwxMjNDMTI3RTEyRkZBNDEyN0UxMjNDMDgwODdDODcxMT40NiBEPDEzMUMxMzNDMTNGQzEyRkZBMjEyMDBCM0FBMzg3RkZGCi1GQ0EyMTYyMzdDQTIxRj40OSBEPDQ4QjRGQzAwMDcxM0MwMzgxRTA3RjAzODM4MDNGODM4NjAwMUZDMzg3QzAwRkUxMkZFMTQKLUZGMTQ3RkEyMTI3QzAwMzgxM0ZGQzdGQzE0RkVBMkVCMDFGQzE0RjhFQjAzRjBFQjA3RTAxNDgwRUIwRjAwMTMxRTVCMTM3MAotRUJFMDAzRUEwMUMwMzgwMzgwMDczODA3MDAwNjEyMDYzODBGRkZGRTVBNUE0ODEzRkNCNUZDQTIxODIzN0RBMjFGPkk8NDgKLUI0RkMwMDA3MTNFMDM4MUUwM0YwMzgzODAxRjgwMDNDMTNGQzM4N0UwMEZFQTMxMjNFRUExQzAxMDAwMDEzRkNBMkVCMDNGOAotRUIwN0YwRUIwRkMwMzgwMUZGMDBBMjM4MDAwN0UwRUIwMUYwMTRGOEVCMDBGQzE0RkUxNEZGQTIxMjEwMTI3QzEyRkVBMjE0Ci1GRUEyMzg3QzAxRkMwMDcwMTNGODM4M0UwN0YwMzgwRkZGQzAwMDAxMTMwMDE4MjM3REEyMUY+STwxNDM4MTQ3OEEyMTRGOAotMTMwMTEzMDMxMzA3MTMwNjEzMEMxMzFDMTMzODEzMzAxMzYwMTNFMEVBMDFDMDEzODBFQTAzMDA1QTEyMEU1QTEyMTg1QTEyCi03MDVBQjYxMkMwQTIzOTAwMDFGODAwQTc5MDM4N0ZGRkMwQTIxQTIzN0VBMjFGPkk8MDAxODEzMEMwMDFGMTM3Q0VCRkZGOAotMTRGMDE0RTAxNEMwMTQ4MEVCRkMwMDAwMThDN0ZDQTUxM0ZGMDAxQjEzRTAzODFGMDNGMDM4MUMwMEY4MDAwODEzRkNDNzEyCi03RUEzMTQ3RkEyMTI3ODEyRkNBMzE0N0U1QTAwNjAxM0ZDMTI3MDM4MzgwMUY4MzgxRTA3RTAzODA3RkZDMDM4MDFGRTAwMTgKLTIzN0RBMjFGPkk8RUIxRkMwRUI3RkYwMzgwMUYwMzgzODAzRTAwQzM4MDc4MDNFMDAwRjEzN0VFQTFGMDA1QUEyMDA3RTEzCi0zQzE0MDBBMzM4RkUzRkMwRUI3RkYwRUI4MEY4MDBGRjEzRkNFQjAwN0MxNDdFNUExNDdGQTQxMjdFQTQwMDNFMTM3RTEyM0YKLTZDMTM3QzM4MEY4MEY4MzgwN0MxRjAzODAzRkZDMDM4MDA3RjAwMTgyMzdEQTIxRj5JPDEyMzAxMjNDMDAzRkI1MTJDMEEyCi0xNTgwNDgxNDAwNUM1QzM4NjAwMDE4QTIwMEUwNUI0ODVCNUNDNjQ4NUFBMjQ5QzdGQzEzMDYxMzBFQTI1QkEyMTMzQ0EyNUIKLUEyMTNGOEE0MTIwMUE2NkM1QTEzNjAxQTI1N0RBNDFGPkk8MTQxQ0EyMTQzRUEzMTQ3RkEyNEE3RUEzOTAzODAxOUZDMEEyCi05MDM4MDMxRkUwMTQwRjAxMDc3RkVCMDYwN0EyMDEwQzdGMTQwMzAxMUM3RkVCMTgwMUEyNDk2QzdFQTIwMTdGQjVGQ0EyOTAKLTM5RTAwMDdGODA0OTEzM0ZBMjQ4NDg4MDE1MUYwMDAzODE5MEM3MTIwRkEyNDg2RTdFRDhGRkYwOTBCNTEyODBBMjI5MjU3RQotQTQyRT42NSBEPEI2MTJFMDE1RkMzOTAzRjgwMEZGRUQxRkMwRUQwN0UwNkY3RTZGN0U4MjE1MDA4MkEyMTY3RkEzMTc4MEFBCi0xNzAwQTMxNkZFQTI0QjVBNUU0QjVBNEI1QUVEMUZDMEVERkY4MEI2NDhDN0ZDMTVFMDI5MjU3RUE0MkY+NjgKLUQ8QjdGQ0EyMzkwM0Y4MDA3RkVEMEY4MDE1MDcxNTAzQTIxNTAxQTNFRDAwQzAxNDA2QTIxNjAwQTIxNDBFMTQxRUVCRkZGRQotQTJFQkY4MUUxNDBFMTQwNkEyMTY2MEEyOTFDN0ZDMTZDMEE0MTUwMTE1MDNBMkVEMEY4MDE1M0ZCN0ZDQTIyMzI1N0VBNDI4Ci0+STxCNjEyRkVBMjM4MDNGODAwMTUxRjgxODFBMjgxQTNFRDAxODAxNDAzQTI5MkM3RkNBMjVDNUM5MEI1RkNBMkVCRjgwRgotODA4MEE0OTFDOEZDQUFCNTEyRjBBMjIxMjU3RUE0Mjc+STxCNTAwRTBCNTEyRTBBMjNCMDNGODAwMDNGODAwQUY5MEI2RkMKLUEyOTAzOEY4MDAwM0IwQjUwMEUwQjUxMkUwQTIyQjI1N0VBNDMwPjcyIEQ8QjUxMkUwQTIzODAzRjgwMEIzQUZCNTEyRTBBMgotMTMyNTdFQTQxNz5JPEI1MTJGMEEyRDgwM0Y4QzdGQ0IzQTMxNTAzQTMxNTA2QTMxNTBFQTIxNTFFMTUzRTE1N0NFQzAzRkMKLUI2RkNBMjIwMjU3RUE0MjU+NzYgRDxEOEZGRjhFREZGRjg2RDVDMDAwM0VFRkUwMDAxN0VFQzAzN0VBMzZEMTQwNkEyNkQ2QwotMTMwQ0EyNkQ2QzEzMThBMjZENkMxMzMwQTM2RDZDMTM2MEEyNkQ2QzEzQzBBMjkwMzkwMEZDMDE4MEEyOTEzODdFMDMwMEEzCi1FQzNGMDZBMkVDMUY4Q0EyRUMwRkQ4QTJFQzA3RjBBMzZFNUFFQTA3ODAzQ0ZGRkMwMUMwMUZGRkY4QTIzNTI1N0VBNDNBPgotSTwwMUZGMTM4MDAwMDcxM0UzMzgwRjgwRjczODFFMDAxRjQ4MTMwRjQ4MTMwNzE0MDMxMkY4MTQwMUEyN0U5MUM3RkNCNEZDCi1FQTdGRTAxM0ZFMzgzRkZGRTAxNEY4NkMxM0ZFMDAwNzdGNkMxNDgwQzY3RTAxMDMxM0MwRUIwMDNGRUMwRkUwMTQwN0EyMDAKLUMwMTMwM0EzMTVDMDdFNkMxMzA3NkMxNDgwNkNFQjBGMDAzOEZGQzAzRTM4RTNGRkY4Mzg4MDNGRTAxQjI1N0RBNDIyPjgzCi1EPEI1M0I4MUZGRkUwMUZGRjBBMjNEMDdGMDAwMUZDMDAwMEYwMDcwMTMwNjZDNkMwMTBGNUNBMjZGN0U2QzZDNUVBMjZENDkKLTZDMTMzODAwMDAxNzMwNEI3RTAxN0YwMTE5NUNBMjkxMzg4MDMwRkUwMTNGNUU4MjkxMzlDMDYwN0YwMTAxMUY1RTAzRTAxMwotODE5MDI4MEZFMEMwM0Y4M0M3RkNBMjkxMzlGMTgwMUZDMzAxMDcxNUM2MTdFNjkxMzlGQjAwMEZFRTAxMDMxNUVDMDJGRjE0Ci1GQzZENDg2RDVBQTI0QTEzMDMwMTAwNURBMjRBMTMwMTAyNzg1Q0EyMDIzMDZENUEzQzI1N0ZBNDNGPjg3Ci1EPEVBMDdGRjAwMUYxM0UwMzgzRTAzRjAzODNGMDBGODgwMTQ3RTEyMUVDN0ZDQTNFQjFGRkUzODAzRkU3RUVBMEZDMEVBMUYKLTAwMTIzRTEyN0U1QUEzMTRCRUVBN0UwMTM4M0YwNzNFMzkxRkZFMUZFMDM4MDdGMDBGMUIxODdFOTcxRT45NwotRDxFQUZGQzBBMjEyMEZBQ0VCQzFGQ0VCQ0ZGRjkwMzhGQzBGQzA5MDM4RjAwN0UwOTAzOEMwMDNGMEEyRUMwMUY4QTIxNUZDCi1BODE1RjhBMkVDMDNGMDEzRTA5MDM4RjAwN0UwOTAzODFDMUY4MDM5MEUwRkZGMDAzODBDMDNGODFFMjY3RkE1MjI+STxFQgotN0ZFMDM4MDNGRkY4MzgwN0MwN0MzODFGODBGQzEzMDA1QTAwN0UxMzc4MTQwMDEyRkVBODEyN0UxMjdGNkMxMzBDRUExRjgwCi1FQkMwMTgzODA3RTA3MDM4MDNGRkUwMzgwMDdGMDAxNjE4N0U5NzFCPkk8RUNGRkMwQTIxNDBGQUMxMzdGMzgwM0ZGQ0YzOAotMEZFMEZGMzgxRjgwM0YzODNGMDAwRkEyMTI3RUEyMTJGRUE4MTI3RUEyN0UxNDFGMzgxRjgwM0YzODBGQzBFRjM5MDNGRkNGCi1GQzM4MDBGRTBGMUUyNjdFQTUyMj5JPDEzN0YzODAzRkZDMDM4MDdDMUYwMzgwRjgwRjhFQTFGMDA0ODEzN0MxMjdFMTQ3RQotMTJGRUEyQjUxMkZFQTI0OEM3RkNBMzEyN0VBMjE0MDY3RTZDMTMwQzM4MEY4MDE4MzgwN0UwNzAzODAzRkZFMDM4MDA3RjgwCi0xNzE4N0U5NzFDPkk8RUIxRkMwRUI3RkYwRUEwMUY4MzgwM0UxRjgxMjA3MTNDMTM4MEZDMEYwMTQwMEE3QjVGQ0EyRUEwRgotQzBCM0EyRUFGRkZFQTIxNTI2N0VBNTEzPkk8MzkwMUZGMDdDMDAwMDdFQkRGRTAzODBGODNGMUVBMUYwMTM5M0UwMEY4MDAKLTAwN0U3RkE2MDAzRTVCNkM0ODVBMzgwRjgzRTBFQkZGQzAwMDExOTBDN0ZDMDAzMEM4RkNBMjEyMzgxMjNDMzgzRkZGRTA2QwotMTNGQzgwNkM3RjQ4MTQ4MDM4M0MwMDNGNDhFQjBGQzAwMEY4MTMwN0E0MDA3Q0VCMEY4MDZDRUIxRjAwMzgxRjgwN0UzODA3Ci1GRkY4QzYxM0MwMUIyNDdFOTcxRj5JPEVBRkZDMEEyMTIwRkFDMTRGRTkwMzhDM0ZGODA5MDM4Q0UwRkMwMTNEODkwMzhEMAotMDdFMDEzRTBBMjEzQzBBRjM5RkZGQzdGRkVBMjFGMjY3RUE1MjI+STwxMjBGRUExRjgwRUEzRkMwQTRFQTFGODBFQTBGMDAKLUM3RkNBN0VBN0ZDMEEyMTIwRkIzQTJFQUZGRjhBMjBEMjc3RUE2MTE+STxFQUZGQzBBMjEyMEZCM0IwRUFGRkZDQTIwRTI2Ci03RUE1MTE+MTA4IEQ8MjZGRjgwRkUxMzdGOTAzQTgzRkY4MUZGQzAzQjBGOEUwRkM3MDdFMDAxOTgxM0NDOTAzQTkwMDdFOAotMDNGMDAxQTAxM0YwQTIwMUMwMTNFMEFGM0JGRkZDN0ZGRTNGRkZBMjMwMTg3RTk3MzM+STwzOEZGODBGRTkwMzg4M0ZGODAKLTM5MEY4RTBGQzAxMzk4OTAzODkwMDdFMDEzQTBBMjEzQzBBRjM5RkZGQzdGRkVBMjFGMTg3RTk3MjI+STxFQjdGODAzODAzCi1GRkYwMzgwN0MwRjgzODFGODA3RTQ4NDg3RUEyMDA3RUVCMUY4MEEyMDBGRTE0QzBBODAwN0UxNDgwQTI2Q0VCM0YwMEEyMzgKLTFGODA3RTZDNkM1QTM4MDNGRkYwMzgwMDdGODAxQTE4N0U5NzFGPkk8MzhGRkMxRkNFQkNGRkYzOTBGRkMxRkMwOTAzOEYwCi0wN0UwMDFDMDEzRjAxNDAzMTVGODE0MDExNUZDQThFQzAzRjhBMjE1RjBFQkUwMDc5MDM4RjAwRkUwOTAzOERDMUY4MDkwMzgKLUNGRkYwMEVCQzNGODAxQzBDN0ZDQTlFQUZGRkNBMjFFMjM3Rjk3MjI+STwzOEZGODNFMEVCOEZGODM4MEY4QzdDRUI5MEZDCi0xM0IwMTNBMDE0NzhFQkUwMDA1QkFFRUFGRkZFQTIxNjE4N0Y5NzE5PjExNCBEPDM4MDdGOEMwRUExRkZGRUEzQzA3RUE3MAotMDFFQUYwMDBBMzAwRkMxMzAwQjQ3RUVBN0ZGQzdGMzgzRkZGODAwMDBGMTNDMDEyMDMzODAwMUZFMDEzMDNFQUMwMDFBMjEyCi1FMDE0QzBFQUYwMDMzOEZDMDc4MDM4RUZGRjAwRUFDM0ZDMTMxODdFOTcxOD5JPDEzQzBBNDEyMDFBMzEyMDMxMjA3MTIwRgotMTIxRkI1MTJDMEEyMzgwRkMwMDBBQzE0NjBBNjM4MDdFMEMwMTNFMTM4MDFGRjgwMzgwMDdFMDAxMzIzN0ZBMjE4Pkk8MzkKLUZGQzA3RkUwQTIwMDBGMTMwN0IwMTQwRkEyMDAwNzEzMTdFQkUwNjczOTAzRkZDN0ZFMzgwMDdGMDcxRjE4N0U5NzIyPkk8Ci0zOUZGRjgwRkY4QTIzOTBGQzAwMUMwMTU4MDM5MDdFMDAzMDBBMjZENUEwMDAzMTMwNkVCRjgwRTAwMDExMzBDMTNGQzAwMDAKLTVCMTNGRUVCN0UzMEEyNkQ1QUEyMTRFMDZENUFBMjZENUFBMjZEQzdGQ0EyMUQxODdGOTcyMD5JPDM5RkZGODNGRjBBMjM5Ci0wRkMwMEYwMDM4MDdFMDBFNkM2QzVBNkQ1QTZDNkM1QTAwMDAxMzYwRUI3RUMwNkQ1QUEyMTMxRjZEN0U0OTdFODBFQjMzRjgKLTEzNjFFQkUwRkMzODAxQzA3RTM4MDM4MDdGMzkwNzAwM0Y4MDQ4MTMxRjM5RkZDMDdGRjhBMjFEMTg3Rjk3MjA+MTIwCi1EPDM5RkZGODBGRjhBMjM5MEZDMDAxQzAxNTgwMzkwN0UwMDMwMEEyNkQ1QTAwMDMxMzA2RUJGODBFMDAwMTEzMEMxM0ZDMDAKLTAwNUIxM0ZFRUI3RTMwQTI2RDVBQTIxNEUwNkQ1QUEyNkQ1QUEyNkRDN0ZDQTIxMzA2QTI1QjEyMzBFQTc4MUNFQUZDMTg1QgotMTM3MEVBNjhFMEVBN0ZDMDAwMUZDOEZDMUQyMzdGOTcyMD5JPDM4N0ZGRkY4QTIzODdDMDNGMEVBNzAwNzM4NjAwRkUwMDAKLUUwMTNDMEVCMUY4MEVBQzAzRjE0MDAxMzdFRUEwMEZFNUI0ODVBMDAwMzEzMEMxM0YwRUEwN0UwMTIwRkVCQzAxQzM4MUY4MAotMTgwMDNGMTMzODM4N0YwMDc4Mzg3RTAxRjhCNUZDQTIxNjE4N0U5NzFCPkkgRQotJUVuZERWSVBTQml0bWFwRm9udAotJURWSVBTQml0bWFwRm9udDogRmogY21zbDEwIDEwLjk1IDMwCi0vRmogMzAgMTIyIGRmPDkwMzgwM0YwN0M5MDM4MUUwREM2OTAzODM4MEYwRkVCNzAxRTAxRTAxMzBFRUMwQzAwMzgwMUMwMUMKLUE1NDg0ODVBMDA3RkI1MTJDMDM5MDM4MDM4MDBBNDQ4NDg1QUE2MDAwRTVCQTY0ODQ4NUEwMDFFN0YzOEZGOEZGQzIwMjA3RQotOUYxQj4xMSBEPEVCMDNFMEVCMUMxODEzMzhFQjcwM0MxM0UwMTQzODM4MDFDMDAwQTU0ODVBMzg3RkZGRjAzODAzODA3MEE0Ci0zODA3MDBFMEE2MzgwRTAxQzBBNjM4MUMwMzgwMDAxRTEzQzAzOEZGMEZGMDE2MjA3RTlGMTk+STw5MDM4MDNGMDNGOTAzOQotMUUwOUUwODA5MDM5MzgwRjgwQzA5MDM5NzAxRjAxRTBFQkUwM0UwMjFFMTNDMDI2MDFDMDFDQzdGQ0E1NDg0ODVBMDA3RkI2Ci0xMjgwMzkwMzgwMzgwM0E0M0EwNzAwNzAwNzAwQTYwMDBFRUJFMDBFQTY0ODQ4NDg1QTAwMUVFQkUwMUUzQUZGOEZGOEZGQzAKLTIzMjA3RTlGMjY+MTQgRDwxMzIwMTM2MEE0MzgzMDYxQzAzODNDNDM4MDM4MEU0RTAwRUEwNzc4RUEwMUUwQTJFQTA3QjhFQQotMUM5Q0VBNzA4RkVBRTA4M0VBMDE4MEE0OTBDN0ZDMTIxNDdBQTExNz40MiBEPDEzMTgxMzM4RUEwMUY4RUEwRTcwMTIwMEE1Ci0xM0UwQTZFQTAxQzBBNkVBMDM4MEE2RUEwNzAwMTM4MEVBRkZGQzBFMUU3QjlEMTc+NDkgRDxFQjNGODBFQkMxRTAzODAxMDAKLTcwMDAwMjEzNzg1QUEyMDAwRjEzN0MxMzgwQTJFQjAwNzgxMjA2QzcxMkY4MTRGMEVCMDFFMDE0QzBFQjAzODBFQjA3MDAxMwotMEU1QjVCMTM2MDVCNDg1QTM4MDMwMDIwMTIwNjAwMDgxMzQwNUEzODNGRkZDMDQ4MTM4MEI1RkMxNjFFN0U5RDE3Pkk8MTMKLUZGRUEwMUZFMTM4MEE1RUEwMzAwQTYxMjA2QTY1QUE2NUFBNjVBQTY1QUE2QjRGQ0EyMTAyRDdFQTEwRD45MQotRDwxM0ZGRUEwMUZFRUEwMDA2QTUxMzBDQTYxMzE4QTYxMzMwQTYxMzYwQTYxM0MwQTZFQTAxODBBNkVBRkYwMEEyMTAyRDgyCi1BMTBEPjkzIEQ8RUEwN0Y4RUEwQzBDRUExRTA2MTMwNzEyMUMxMjAwQTMxM0ZGRUEwN0M3RUExRTA3RUEzQzBFMTI3ODAwRjAKLTEzMTBBMzEzMUVFQjJFMjAzODc4NEY0MDM4MUY4NzgwMTQxNDdEOTMxNz45NyBEPDEzRkVFQTAzODMzODBFMDc4MDEyMUMwMAotMzgxMzAwOTBDN0ZDMTI3ODVBQTQ1QUEzN0U1QkVBNzAwMjZDNUFFQTFDMThFQTA3RTAxMTE0N0Q5MzE0Pjk5Ci1EPDE0MzhFQjAxRjhFQjAwNzgxNDM4QTIxNDcwQTYxNEUwMTNGQ0VBMDM4MkVBMDYwMTEyMUNFQTNDMDAzODM4MDFDMDEyNzgKLTEyRjBBNDM4RTAwMzgwQTQxMkYwRUE3MDA3MzgzODBGMDAzODFDMzc4MDM4MDdDN0UwMTUyMDdEOUYxOT5JPDEzRjhFQTA3Ci0wRUVBMEUwNzM4MUMwMzgwMTIzODEyNzgxMjcwMTJGMEI1RkMwMEYwQzdGQ0EyNUFBNDZDNUFFQTcwMDJFQTMwMDRFQTFDMTgKLUVBMDdFMDExMTQ3RDkzMTQ+STxFQjA3QzBFQjFDNjBFQjMwRjAxMzYwRUJFMEUwRUJDMDAwMTIwMUE1NDg1QUVBM0ZGQ0VBCi0wMzgwQTQ0OEM3RkNBNjEyMEVBNjVBMTIxRUVBRkZDMDE0MjA3RjlGMEU+STwxNDBFRUIzRTExRUJFMUEzMzgwMUMxQzIzOAotMDM4MUUwRUEwNzgwMTMwMTEyMEZBMzM4MDcwM0MwMTQ4MEVCODcwMEVBMDRGQzQ4QzdGQ0EyMTIxODEyMUNFQTBGRkYxNEMwCi0xNEUwMzgxODAwRjA0ODEzMzA1QTVBQTMwMDYwMTM2MDZDMTNDMDM4MUMwNzAwRUEwN0ZDMTgxRjgwOTQxNz5JPDEzRTAxMgotMDcxMjAxMTIwMEEyNDg1QUE2NDg1QUVCOEY4MEVCOTBFMDEzQTBFQkMwNjAxMzgwMDAwNzEzRTAxMzAwQTUzODBFMDFDMEE2Ci0zODFDMDM4MDAwMUUxM0MwMzhGRjhGRjAxNDIwN0U5RjE5Pkk8RUEwMUMwRUEwM0UwQTIxM0MwRUEwMTgwQzdGQ0E2RUEwMwotODAxMjFGMTIwNzEyMDNBMkVBMDcwMEE2MTIwRUE2NUExMjFFRUFGRjgwMEIxRjdGOUUwQz5JPDEzRTAxMjA3MTIwMTEyMDAKLUEyRUEwMUMwQTZFQTAzODBBNkVBMDcwMEE2MTIwRUE2NUExMjFFRUFGRjgwMEIyMDdGOUYwQz4xMDgKLUQ8MzkwMzg3QzA3QzM5MUY5ODYxODYzOTA3QTA3MjA3MzkwM0MwMzQwM0VCODAzODAwMDdFQjc4MDdFQjAwNzBBNTAwMEVFQgotRTAwRUE2NDg0ODQ4NUEwMDFFRUJFMDFFM0FGRkNGRkNGRkMwMjIxNDdFOTMyNj5JPDM4MDM4RjgwMzgxRjkwRTBFQTA3QTAKLTM4MDNDMDYwMTM4MDAwMDcxM0UwMTMwMEE1MzgwRTAxQzBBNjM4MUMwMzgwMDAxRTEzQzAzOEZGOEZGMDE0MTQ3RTkzMTk+Ci1JPDEzRkNFQTAzODczODBFMDE4MDM4MUMwMEMwNDgxM0UwQTI0ODEzRjAxMkYwQTQzOEUwMDFFMEEyMTRDMDEzMDMwMEYwMTMKLTgwMzg3MDA3MDBFQTM4MEU2QzVBRUEwN0UwMTQxNDdEOTMxNz5JPEVCRTNFMDM4MDdFQzM4MzgwMUYwMUM2QzQ4N0UxNDBGCi00ODQ4N0UxNTgwQTUzOTAzODAwRjAwQTIxNDBFMTQxRTE0MUM1QzM4MDc0MDcwRUI2MUMwMDExRkM3RkM5MEM4RkNBMzEyMEUKLUE0MTIxRUVBRkZDMDE5MUQ4MDkzMTk+STxFQkZDMjAzODAzODI2MEVBMDcwMjM4MUUwMUUwMTIzQzAwMzgxM0MwMTI3ODEyCi1GMEE0MzhFMDAzODBBMjEyRjBBMjEzMDcxMjcwMzgzODBGMDBFQTFDMzdFQTA3QzdFQTAwMDdBMzEzMEVBNDEzMUVFQkZGQzAKLTEzMUQ3RDkzMTg+STxFQTAzOEUzODFGQjM4MEVBMDdDNzEyMDNFQjgzMDBFQTA3ODA5MEM3RkNBNTEyMEVBNjVBMTIxRUVBCi1GRkMwMTExNDdFOTMxMj5JPEVBMDFGOUVBMDYwN0VBMDgwMzEyMTgxMzAxRUEzODAyRUEzQzAwMTIxRjEzRjBFQTA3RkNFQQotMDFGRUVBMDAxRkVBNDAwNzEzMDNBMjEyNjAxMzA2RUFGMDA0RUFDODE4RUE4N0UwMTAxNDdGOTMxMj5JPDEzODBFQTAxMDAKLUEzNUE1QTVBMTIxRUVBRkZGOEVBMEUwMEE0NUFBNjVBMTMxMEE0MTMyMEEyRUExODQwRUEwRjgwMEQxQzdDOUIxMj5JPDM4Ci0xQzAzODBFQUZDMUZFQTNDMDdFQTFDMDNBMjM4MzgwNzAwQTZFQTcwMEVBNDEzMUVBMjVCRUEzMDVFMzgxRjlGODAxMTE0N0IKLTkzMTk+STwzOEZGODNGODM4MUUwMEUwMDAxQzEzQzAxNDgwMTIxRTM4MEUwMTAwNUIxMzAyNUIxMjA3NUJBMjVCRUEwMzkwCi0xM0EwMTNFMDVCNUIxMjAxOTBDN0ZDMTUxNDdDOTMxOD5JPDM5RkY5RkUxRkMzOTNDMDc4MDcwMzkxQzAzMDA2MDE0ODAxNQotNDAxNTgwRUEwRTA3OTAzODBEODEwMDEzMDlFQjE5QzIxMzExMzgwRjIxQzRFQTA3MjBFQjQwQzgxNEU4RUI4MEYwQTI2QzQ4Ci01QTE0NjAwMDAyMTM0MDFFMTQ3QzkzMjE+STwzODFGRjBGRjM4MDNDMDc4MDAwMTEzNzAxNDQwMzgwMEUwQzBFQkUxODBFQgotNzMwMDEzNzYxMzNDQTIxMzFDMTMyRTEzNEUxMzg3RUEwMTA3MzgwMjAzODAxMjA0MzgwQzAxQzAzODNDMDNFMDM4RkUwN0ZDCi0xODE0N0Y5MzE4Pkk8MzkwRkY4M0Y4MDM5MDFFMDBFMDBFQkMwMEMxNDA4MTNFMDAwMDA1QjE0MzAxNDIwNUMxMzcwNUNBMgotMDE3MUM3RkMxMzM5MTMzQTEzM0UxMzNDMTMzODEzMTgxMzEwQTI1QkEyNUJFQTcwQzBFQUYwODAwMEYxQzhGQzEyRTYxMjc4Ci0xOTFEODA5MzE4PkkgRQotJUVuZERWSVBTQml0bWFwRm9udAotJURWSVBTQml0bWFwRm9udDogRmsgY21jc2MxMCAxMC45NSAzCi0vRmsgMyAxMTggZGY8RUI3RTA4MzgwMzgxOTgzODA3MDA3ODAwMEMxMzM4MDAxQzEzMTg1QTAwNzgxMzA4MTI3MDAwRjAxMwotMDBBNUVCMDNGRUVCMDAzODEyNzAxMjc4MTIzODdFMTIwQzEyMDczODAzODBEODM4MDA3RjA4MTcxNzdFOTYxRD4xMDMKLUQ8MzhGQzAxRkMzODFFMDA3MDE0MjAxMjE3RUExMzgwQTJFQTExQzBFQTEwRTBBMjEzNzAxMzM4QTIxMzFDMTMwRTEzMDdBMgotRUIwM0EwRUIwMUUwQTIxMzAwMTQ2MDEyMzgwMEZFMTMyMDE2MTc3RTk2MUM+MTEwIEQ8MzhGRjgxRkMzODFDMDA3MDE0MjAKLUIwMDAwQzEzNDAxMjBFNkMxMzgwMzgwMTgzMDBFQTAwN0MxNjE3N0U5NjFDPjExNyBEIEUKLSVFbmREVklQU0JpdG1hcEZvbnQKLSVEVklQU0JpdG1hcEZvbnQ6IEZsIGNtYngxMiAxNy4yOCAzNgotL0ZsIDM2IDEyMiBkZjxFQjAxQzAxMzAzMTMwRjEzN0ZFQTFGRkZCNUZDMTNCRkVBRTAzRjEyMDBCM0IxMDA3RkI1MTJGMEEzCi0xQzJFN0FBRDI4PjQ5IEQ8RUIzRkUwMzgwMUZGRkUwMDA3RUJGRjgwRDgwRjgwMTNDMDM5MUUwMDNGRTAwMDM4RUIxRkYwMDAKLTdDRUIwRkY4MDA3RUVCMDdGQ0I0RkMwMTgwMTNGRUEyMTQwM0EyRUE3RjAwMDAzRTEzMDdDN0ZDMTVGQ0EyRUMwRkY4QTIxNQotRjBFQzFGRTAxNUMwRUMzRjgwRUM3RjAwMTQ3RTE0Rjg0OTVBNDk1QTQ5NUE0OUM3RkMwMTFFMTMwRTVCMTMzODQ5MTMxRTQ5Ci0xMzFDNDg1QTQ4QzcxMjNDNDhCNTEyRkM1QTVBNUE0ODE0RjhCNkZDQTMxRjJFN0NBRDI4Pkk8MTU3OEEyMTVGQ0EzNEE3RQotQTI0QTdFQTI0QTdGQTM0QTdGRUMwRTdGMDIxRTdGRUMxQzNGQTIwMjM4N0YxNTFGMDI3ODdGRUM3MDBGQTIwMkUwN0YxNTA3Ci0wMTAxODBFQ0MwMDNBMjQ5NDg2QzdFQTIwMTA3ODE5MUM3RkM0OTgxOTFCNkZDQTI0OTgxMDExQ0M3MTIzRjAxM0M4MTAxMzgKLTE0MUZBMjQ5ODExNjBGMDFGMDgxNDkxNDA3QTI0ODQ4ODE0ODZDMTQwM0I1NDlCNTEyRkNBMzM2MzE3REIwM0Q+NjUKLUQ8QjcxMkMwMTZGQzE2RkZEODAxRkVDNzdGRUU3RkUwNzA3RTE2MUY3MDdFQTI4MzE2MDdBNDE2MEZBMjVGQTI0QzVBNEM1QQotNEM1QTRCNDg1QURCMUZGRUM3RkM5MEI2NUFFRUZGODA0OUM3RUEzRkUwRUUwRkYwRUUwN0ZDQTI3MDdFODM4MjE4ODBBNzE4Ci0wMDVFNUYxNjA3NEM1QTRDNUFFRUZGRjBCODEyQzA5NEM3RkMxNkY4MzEzMTdEQjAzOT5JPDkxM0EwM0ZGODAwMTgwMDIzRgotRUJGMDAzNDlCNUVBRkMwNzAxMDc5MDM4MDAzRjBGRDkxRkY4RUIwNzlGRDkzRkMwRUIwMUZGRDlGRjgwN0Y0ODQ4QzgxMjdGCi00ODQ4MTUzRjAwMDcxNjFGNDkxNTBGNDg1QTAwMUYxNjA3QTI0ODVBMTcwMzEyN0ZBMjQ5OTJDN0ZDQTIxMkZGQTkxMjdGQTIKLTdGRUYwMzgwMTIzRkEyNkM3RTE3MDcwMDBGMTcwMDZDN0U2RDE1MEUwMDAzMTYxRTZDNkMxNTFDNkM2QzZDMTQ3OEQ5M0ZDMAotNUNEOTFGRjhFQjAzRTBEOTA3RkZFQjNGODAwMTAxRDlGRkZFQzdGQ0Q5MDAzRjEzRjgwMjAzMTM4MDMxMzE3Q0IwM0E+STwKLUI4MTJFMEEzQzY5MDM4ODAwMDdGRUUwRkYwMTYwMzE2MDFBMjE2MDBBMjE3NzBBMzE3MzhBMjE1MDdBMjE3MDBBMzVENUQ1RAotOTFCNUZDQTNFQzgwM0Y4MTgxODFBNTkyQzhGQ0FDQjYxMkMwQTMyRDMxN0VCMDMzPjcwIEQ8REEwM0ZGMTMwMzAyN0ZFQkYwCi0wNzQ5QjVFQUZDMEYwMTA3OTAzODAwN0UxRkQ5MUZGMEVCMEZCRkQ5N0ZDMEVCMDNGRjQ5NDg3RjQ4NDhDODdFNDg1QTAwMDcKLTgyNDg0ODgxNUIwMDFGODJBMjQ4NDg4MUEyMTI3RkEyNDk5MkM3RkMxMkZGQUEwMzA3QjUxMkY4MTI3RjdGREIwMDAxMTMwMAotMTIzRkEyNkM3RUEyMTIwRjdGNkM3RTEyMDM2QzdFNkM2QzdFNkQ2QzVCRDkxRkY4NDk3RUQ5MDdGRkVCM0UzRjAxMDE5MDM4Ci1GRkZDMUY2RDZDRUJGMDBGMDIwM0VCODAwMzM1MzE3Q0IwM0Y+STxCNkQ4ODA3RkI1MTJDMEEzQzYwMTgwQzczODdGQzAwMAotQjM5MUI3RkNBMzAyODBDNzEyN0ZCM0EzQjZEODgwN0ZCNTEyQzBBMzNBMzE3RUIwM0Y+STxCNjEyODBBM0M2RUI4MDAwQjMKLUIzQTdCNjEyODBBMzE5MzE3RUIwMUU+STxCNTZDNDlCNTEyQzA4MDgwQzY2RDkwMzkwMDAzRTAwMDZFNkU1QUVCRUZGQzEzCi1FNzgwRUJFM0ZGMDFFMTdGMDFFMDdGNkU3RTE0M0Y4MTZFN0U2RTdFNkU3RTE0MDM2RTdFMTY4MDZFMTNDMEVEN0ZFMEVEM0YKLUYwMTUxRjE2RjhFRDBGRkNFRDA3RkVFRDAzRkY2RjEzODE4MTE3QzFFRTdGRTFFRTNGRjFFRTFGRjlFRTBGRkQxNjA3MTdGRgotODI4MjgyMTc3RjE3M0ZBMjE3MUYxNzBGNDg2QzE1MDdCNTAwRTAxNDAzMTcwMUEyM0EzMTdFQjAzRj43OAotRDxCNzEyRTAxNkZFRUVGRjgwQzZEOTgwMDAxM0UwRUUzRkYwRUUwRkY4RUUwN0ZDQTJFRTAzRkVBMjE3RkZBNzE3RkVBMkVFCi0wN0ZDMTdGODE2MEZFRTNGRTBFRUZGQzA5MUI2MTIwMDE2RjgwMjgwQzhGQ0IzQTJCNjdFQTMzMDMxN0VCMDM3PjgwCi1EPDAwN0ZCOEZDQTM5MDM5QzAwRkY4MDFEODdFMDBFQzAwM0YwMDdDODIwMDc4ODJBMjAwNzA4MjAwRjAxNzgwQTM0ODE2MDMKLUE1Qzc5MkM3RkNCM0FBMDE3RkI2RkNBMzMxMzA3REFGMzg+ODQgRDxCNkQ4ODAwM0I1MTI4MEEzQzYwMTgwQzczODA3QzAwMAotNzE1QUIzQUUxMzdGNERDN0ZDODAwMTNGMTUwRUEyNkQ2QzVDNkQ2QzVDNkQ2QzVDNkQ2QzQ5NUE5MDNBMDBGRjgwMUZDMDAyCi0zRkI1NUEwMjBGNDlDOEZDMDIwMDEzRTAzOTMxN0VCMDNFPkk8QjUwMEZDOTFCNUZDQTMwMDAzOTBDOEVBMDNDMDZDMTc4MAotNkUxNDA3NkMxNzAwODAwMTdGMTUwRUEyNkUxNDFFMDEzRjE1MUM2RTE0M0MwMTFGMTUzODgwMDEwRjVEODAwMTA3NURBMjZFCi0xMzAxMDEwMzVENkUxMzAzNkQ1RDE1ODA2RDRBQzdGQ0EyNkY1QTAyN0YxMzBFRURFMDFFMDIzRjEzMUNFREYwM0MwMjFGMTMKLTM4MTVGODAyMEY1QkEyRURGQ0YwMDIwNzVCMTVGRjZFNUJBMjZFNUJBMjZFOTBDOEZDQTMxNTdFQTIxNTNDQTIzODMxN0VCMAotM0Q+STxFQkZGRjAwMDAzMTNGRjM5MEY4MDNGODA5MDM4QzAwRkUwNDg2QzZDN0VBMjZFN0VEODBGQzA3RkVBMDc4MEM3RkMKLUE0MTRGRjEzMUZFQkZGRTMzODAzRkMwM0VBMEZGMEVBMUZDMDEyM0ZFQTdGODBBMkVBRkYwMEEzMTQwN0EyMzg3RjgwMEQzOQotM0ZDMDFERkUzQTFGRTA3OEZGRjAzOTA3RkZFMDdGQzZFQjgwM0YyNDIwN0U5RjI3Pjk3IEQ8RUEwMUY4MTJGRkEzMTIwRjEyCi0wN0FERUMzRkUwRUNGRkZDOTAzOEZCRTA3RjkwMzlGRjAwMUY4MDQ5RUIwRkMwNDkxNEUwNDlFQjA3RjAxNkY4QTJFRDAzRkMKLUEzMTZGRUE4MTZGQ0EzRUQwN0Y4QTIxNkYwNkRFQjBGRTA2RDE0QzAwMUU3RUIzRjgwOTAzOUMzQzBGRTAwOTAzODgwRkZGOAotOTAzODAwM0ZDMDI3MzI3RUIxMkQ+STxFQjBGRkYwMTdGMTNDMDM5MDFGQzAxRjAzODAzRjAwMzM5MDdFMDA3RjgxMjBGRUEKLTFGQzAwMDNGRUIwM0YwRUMwMUUwNDg0OEM3RkNBMzEyRkZBODEyN0ZBMzZDNkMxMzFDQTIwMDFGMTQzODZDN0UwMDA3MTQ3MAotMzkwM0YwMDFFMDM5MDFGQzA3QzAzOTAwN0ZGRjAwRUIwRkY4MUUyMDdEOUYyND5JPEVEMEZDMEVDMDdGRkEzRUMwMDdGMTUKLTNGQURFQjA3RjhFQjNGRkY5MDM4RkUwN0JGMzkwM0Y4MDFGRjM5MDdFMDAwN0YxMjBGNDg0ODEzM0YxMjNGQTI0ODVBQTMxMgotRkZBODEyN0ZBMzZDN0VBMjEyMUY2QzZDMTM3RjAwMDcxNEZGMjYwM0YwMDMxM0UwM0EwMUZDMEYzRkZFMzgwMDdGRkVFQjBGCi1GMDI3MzI3REIxMkQ+STxFQjBGRkM5MDM4N0ZGRjgwMzkwMUZDMEZDMDM5MDNGMDAzRTAzOTA3RTAwMUYwMDAwRjE0RjgzOQotMUZDMDAwRkMwMDNGMTRGRUEyNDg0ODEzN0UxNTdGQTIxMkZGQTI5MEI2RkNBMjAxODBDN0ZDQTQxMjdGQTM2QzZDMTMwNzEyCi0xRjE1MEU2QzdFNkM2QzEzMUM2QzZDMTM3ODM5MDBGRTAzRTA5MDM4M0ZGRkMwOTAzODA3RkUwMDIwMjA3RTlGMjU+STxFQgotMDFGRTkwMzgwRkZGODA5MDM4MUZDM0MwOTAzODdGMDdFMDkwMzhGRTBGRjAxMjAxMTNGQzEyMDNFQzA3RTBFQzAxODA5MUM3Ci1GQ0E4QjUxMkZDQTNEODAzRkNDN0ZDQjNBODM4N0ZGRkYwQTMxQzMyN0VCMTE5Pkk8OTAzOTFGRjAwN0MwOTAzOUZGRkUzRgotRTAzQTAxRjgzRjc5RjAzOTA3RTAwRkMzMDAwRjE0RTE5MDM5QzAwN0UwRTAwMDFGRUNGMDAwQTIwMDNGODBBNTAwMUY1Q0EyCi0wMDBGNUNFQkUwMEYwMDA3NUMyNjAzRjgzRkM3RkMzODA2RkZGRTM4MEUxRkYwOTBDOUZDMTIxRUEyMTIxRjdGOTBCNTdFNkMKLTE0RjAxNUZDNkM4MDZDODAxNjgwMDAwRjE1QzAwMDNGQzcxMjdGMDA3RUVDMUZFMDAwN0MxNDBGMDBGQzE0MDdBNDAwN0VFQwotMEZDMDAwM0UxNTgwMDAzRjE0MUZEODBGQzBFQjdFMDAzOTA3RjgwM0ZDMDAwMUI1MTJGMEQ4MDAxRjkwQzdGQzI0MkY3RTlGCi0yOD5JPEVBMDFGODEyRkZBMzEyMEYxMjA3QURFQzA3RjhFQzNGRkVFQzc4M0YwMkMwMTM4MDkwMzlGOTgwMUZDMEVCRkIwMAotMDFGRTE0RTA1QkEzNUJCM0I1MDBDM0I1RkNBMzI4MzI3REIxMkQ+STxFQTAzQzA0ODdFNDg3RTQ4N0VBNDZDNUE2QzVBNkMKLTVBQzhGQ0E5RUEwMUY4MTI3RkEzMTIwN0IzQTdCNTEyODBBMzExMzM3REIyMTc+STxFQTAxRjgxMkZGQTMxMjBGMTIwN0IzCi1CM0E2QjUxMkMwQTMxMjMyN0RCMTE3PjEwOCBEPDI3MDNGMDA3RjhFQjFGRTAwMEZGRDkzRkZFRUJGRkY4OTEzQTc4M0YwMQotRTBGQzAyQzA5MDM4ODMwMEZFMjgwRkYxODAxRkM2MTM3RjI2MDdGMzAwMTNDQzAxRjYwMkY4MTQ4MDAxRkM1Q0EzNDk1Q0IzCi1CNTAwQzNCNTM4MEZGRkZDQTMzRTIwN0Q5RjQzPkk8MzkwM0YwMDdGODAwRkZFQjNGRkVFQzc4M0YwMkMwMTM4MDNBMEZGMQotODAxRkMwMzgwN0YzMDAwMUY2MTRFMDEzRkNBMzVCQjNCNTAwQzNCNUZDQTMyODIwN0Q5RjJEPkk8RUIwN0ZDOTAzODdGRkYKLUMwMzkwMUZDMDdGMDM5MDNGMDAxRjg0ODQ4NkM3RTQ4NDgxMzdFMDAxRjE0N0YwMDNGMTU4MDQ5MTMzRjAwN0YxNUMwQTMwMAotRkYxNUUwQTgwMDdGMTVDMEEzNkM2Q0VCN0Y4MEEyMDAxRjE1MDA2QzZDMTNGRTAwMDc1QzM5MDNGODAzRjgzOTAxRkUwRkYwCi0zOTAwN0ZGRkMwRDkwN0ZDQzdGQzIzMjA3RTlGMjg+STwzOTAxRjgzRkUwMDBGRkVCRkZGQzkwMzhGQkUwN0Y5MDM5RkYwMAotM0Y4MEQ4MEZGRUVCMUZDMDZDNDhFQjBGRTA0OTE0RjBFRDA3RjhBMjE2RkMxNTAzQTIxNkZFQTgxNkZDMTUwN0EyMTZGOEEyCi1FRDBGRjA2RDE0RTA2REVCMUZDMDZERUIzRjgwOTAzOUZCQzBGRTAwOTAzOEY4RkZGOEVDM0ZDMDkxQzhGQ0FCQjUxMkMwQTMKLTI3MkU3RTlGMkQ+STwzODAzRjAzRjAwRkZFQjdGQzA5MDM4RjFDM0UwMTQ4NzM5MEZGMzBGRjBFQTA3RjZBMjkwMzhGQzA3Ci1FMEVDMDNDMDkxQzdGQ0EyNUJCMkI1MTJFMEEzMUMyMDdFOUYyMT4xMTQgRDwzODAxRkY4NjAwMDcxM0ZFRUExRjAwMDAzQwotMTMzRTQ4MTMxRTE0MEUxMkY4QTM2QzkwQzdGQ0I0N0UxM0ZDMzg3RkZGQzA2QzEzRjA4MDZDN0YwMDA3N0YwMDAxN0ZFQTAwCi0zRjAxMDAxMzgwMTQzRjAwNjAxMzFGMDBFMDEzMEZBMjdFMTUwMDdFNkMxMzFFNkMxMzFDMzhGRjgwNzgzOEYzRkZGMDM4QzAKLTdGODAxOTIwN0Q5RjIwPkk8MTMxQ0E1MTMzQ0EzMTM3Q0EyMTNGQzEyMDExMjAzMTIwNzM4MUZGRkZFQjVGQ0EyRDgwM0ZDCi1DN0ZDQjBFQzAzODBBNzEyMDFFQzA3MDBFQTAwRkVFQjdGMEVFQjNGRkNFQjA3RjAxOTJFN0ZBRDFGPkk8RDgwMUY4RUIwNwotRTAwMEZGRUIwM0ZGQTMwMDBGRUIwMDNGMDAwNzE0MUZCMzE1M0ZBMjAwMDMxNDdGQTI2QzZDRUJERkYwM0EwMEZFMDM5RkZGCi05MDM4N0ZGRjFGRUIwRkZDMjgyMDdEOUYyRD5JPEI1RUIxRkZDQTNEODBGRjhFQjAzQzAwMDA3MTU4MDZEMTMwNzAwMDMxNQotMDA3RjAwMDExNDBFN0Y2QzVDQTJFQzgwM0MwMTdGMTMzOEVDQzA3ODAxM0YxMzcwRUNFMEYwMDExRjVCMTRGMTAxMEY1QjE0Ci1GOTkwMzgwN0ZCODBBMjE0RkY2RDkwQzdGQ0EyNkQ1QUEyNkQ1QUEyMTQ3OEEyMjYyMDdFOUYyQj5JPEI1M0ExRkZGRTAzRgotRjhBMzNDMEZGMDAwRkUwMDA3ODA2RDE1MDMwMDA3NkVFQjA3MDA4MTZENUQwMDAzOTEzOEZGODAwRUEyNkM2QzQ4NkQ1QTE1Ci1ERjAxRkYxNTNDNkM5MDM5MDM4RkUwMzhBMkQ5N0Y4NzZENUExNTA3MDJDNzE0RjBEOTNGQ0Y2RDVBRUNDRTAzRDkxRkZFRUIKLUY5QzA5MTM4RkMwMUZEMTZGRjAxMEY1RDRBN0VBMjZENDg2REM3RkNBMjAxMDMxNDdFNEExMzNFQTI2RDQ4MTMxQzM1MjA3RQotOUYzQT5JPDNBN0ZGRjgwN0ZGQ0EzM0EwM0ZDMDAwRjAwNkM2QzEzMUU2QzZDNUJFQzgwMzg5MDM4N0ZDMDc4MDEzRjVCOTAKLTM4MUZFMUUwOTAzODBGRjNDMEVDRkY4MDZEOTBDN0ZDNkQ1QTEzMDE2RDdFODE4MTVCOTAzODAzREZFMDkwMzgwNzhGRjA4MQotOTAzODBGMDdGQzkwMzgxRTAzRkVFQjNDMDE0OTZDN0U0OTE0ODA0ODQ4RUI3RkMwMDAwM0VDM0ZFMDI2RkZGQzAxQjVGQ0EzCi0yODIwN0Y5RjJCPkk8QjVFQjFGRkNBM0Q4MEZGOEVCMDNDMDAwMDcxNTgwNkQxMzA3MDAwMzE1MDA3RjAwMDExNDBFN0Y2QwotNUNBMkVDODAzQzAxN0YxMzM4RUNDMDc4MDEzRjEzNzBFQ0UwRjAwMTFGNUIxNEYxMDEwRjVCMTRGOTkwMzgwN0ZCODBBMjE0Ci1GRjZEOTBDN0ZDQTI2RDVBQTI2RDVBQTIxNDc4QTIxNDcwQTIxNEYwNUMxMzAxMDA3QzVCRUFGRTAzNUM0OUM4RkM1QkVBRkMKLTFFRUE3ODdDRUEzRkYwRUEwRkMwMjYyRTdFOUYyQj5JIEUKLSVFbmREVklQU0JpdG1hcEZvbnQKLSVEVklQU0JpdG1hcEZvbnQ6IEZtIGNtc3kxMCAxMC45NSAxCi0vRm0gMSAxNCBkZjwxNEZFOTAzODA3RkZDMDkwMzgxRjAxRjA5MDM4NzgwMDNDMDFFMDEzMEVEODAxODAxMzAzNDhDN0VBMDEKLTgwMDAwNkVDMDBDMDQ4MTU2MEEyNDgxNTMwNDgxNTE4QTI0ODE1MENBNDQ4MTUwNkE5MDA2MDE1MENBNDZDMTUxOEEyNkMxNQotMzA2QzE1NjBBMjZDMTVDMDZDRUMwMTgwNkM2Q0VCMDMwMEQ4MDBFMDEzMEUwMTc4MTMzQzkwMzgxRjAxRjA5MDM4MDdGRkMwCi1EOTAwRkVDN0ZDMjcyQjdEQTAyRT4xMyBEIEUKLSVFbmREVklQU0JpdG1hcEZvbnQKLSVEVklQU0JpdG1hcEZvbnQ6IEZuIGNtYngxMiAxNC40IDQ0Ci0vRm4gNDQgMTIyIGRmPDEyM0MxMjdGRUFGRjgwQTIxM0MwQTMxMjdGMTIzRTEyMDBBMkVBMDE4MEEzRUEwMzAwQTIxMjA2MTIKLTBFNUE1QTEyMTAwQTE1N0I4ODEzPjQ0IEQ8MTIxQzEyN0ZBMkVBRkY4MEEzRUE3RjAwQTIxMjFDMDkwOTdCODgxMz40NgotRDwxMzBFMTMxRTEzN0VFQTA3RkUxMkZGQTIxMkY4MTIwMEIzQUJCNTEyRkVBMzE3Mjc3QkE2MjI+NDkKLUQ8RUJGRjgwMDAwNzEzRjA0ODEzRkMzODFFMDNGRTM5MzgwMEZGODAwMDdDMTMzRjAwRkUxNEMwNkMxMzFGMTVFMDE0MEZBMgotMTI3RTAwM0MxMzFGQzdGQzE1QzBBMkVDM0Y4MDE1MDAxNDdFNUM1QzQ5NUE0OTVBRUIwNzgwNDlDN0ZDMTMxRTQ5MTNFMDEzCi03MDVCMzkwMUMwMDFDMEVBMDM4MEVBMDYwMDAwMEZCNUZDNUE1QTVBQjYxMjgwQTMxQjI3N0RBNjIyPkk8RUI3RjgwMzgwMwotRkZGMDQ4MTNGQzM4MEY4MUZFMzgxRjAwN0ZFQTNGODBFQzNGODBBMzEyMUYxMzAwQzdFQTdGMDBBMjE0N0U1QzQ5NUFFQjA3Ci1GMEVCRkZDMEEyRUIwMUY4RUIwMDdFODAxNTgwRUMxRkMwQTIxNUUwQTIxMjNDMTI3RUI0RkNBMjE1QzAxNDNGNDgxNDgwMDAKLTdDRUI3RjAwMzgzRjAxRkU2Q0I0NUEwMDA3MTNGMEM2MTM4MDFCMjc3REE2MjI+STwxNDBGQTI1QzVDNUM1QzVCQTJFQjAzCi1CRkVCMDczRjEzMEUxMzFDMTMzQzEzMzgxMzcwMTNFMEVBMDFDMEVBMDM4MDEyMDcxMzAwMTIwRTVBNUE1QTEyRjBCNjEyRjgKLUEzQzdFQTdGMDBBODkwMzgxRkZGRjhBMzFEMjc3RUE2MjI+STwwMDE4MTMwMzM4MUY4MDFGRUJGRkZFNUM1QzVDMTRDMDkxCi1DN0ZDMDAxQ0M4RkNBN0VCN0ZDMDM4MURGRkY4MzgxRjgwRkMzODFFMDAzRjEyMDhDN0VBMUY4MDE1QzBBMjE1RTBBMjEyMTgKLTEyN0MxMkZFQTMxNUMwNUEwMDc4RUIzRjgwQTI2Q0VCN0YwMDM4MUYwMUZFNkNCNDVBMDAwMzEzRjBDNjEzODAxQjI3N0RBNgotMjI+STxFQzA3ODBBMjRBN0VBMzRBN0VBMjRBN0VBM0VDNzdGOEEyRUNGN0ZDMTRFM0EyOTAzODAxQzFGRUEyMDEwMzdGMTQKLTgwQTI0OTQ4NkM3RUEyNDk4MDAxMEUxMzNGQTI0OTZEN0VBMjAxM0ZCNTdFQTM5MDM5NzAwMDA3RjhBMjAxRjA4MDQ5MTMwMwotMDAwMTgxNDkxMzAxQTIwMDAzODFEOEZGRkUwMTNGMTNGQ0EzMkUyOTdFQTgzMz42NSBEPEI2MTJGODE1RkYxNkMwM0EwM0Y4Ci0wMDFGRTBFRDBGRjBFRDA3RjgxNTAzMTZGQ0EyMTUwMUEzMTUwMzE2RjhBMkVEMDdGMDE1MEZFRDFGQzBFREZGODA5MEI1RUEKLUZFMDBFREZGQzA5MDM5RjgwMDBGRjBFRDAzRjhFRDAxRkMxNkZFMTUwMEEyMTZGRkE2MTZGRTE1MDFFRDAzRkMxNTA3RUQxRgotRjhCNzEyRTAxNkMwRURGRTAwMjgyOTdEQTgzMD5JPDkxMzg3RkUwMDM5MDM5MDdGRkZDMDcwMTFGRUJGRjBGOTAzOTdGRjAKLTBGOUY5MDM5RkYwMDAxRkZEODAxRkM3RjQ4NDgxNDdGNDg0ODE0M0Y0ODQ4MTQxRjQ4NUExNjBGNDg1QTE2MDcxMjdGQTI5MAotQzlGQzVBQTk3RTdGMTYwNzEyM0ZBMjZDN0UxNjBFNkM3RTZDNkMxNDFDNkM2QzE0M0M2QzZDMTQ3ODZDQjRFQjAxRjA5MDM5Ci03RkYwMDdDMDAxMUZCNTEyODAwMTA3RUJGRTAwOTAzODAwN0ZGMDI4Mjk3Q0E4MzE+STxCNzEyRTBBMzM5MDNGQzAwMUZFRAotMDdGMDE1MDFBMjE1MDAxNjcwQTM5MTM4MDFDMDc4MTYzOEEzMDIwMzEzMDBBMjE0MEY5MEI1RkNBM0VCRkMwRjE0MDNBMjAyCi0wMTEzMEVBMzE2MUM5MUM3RkNBMzE2M0MxNjM4MTY3ODE2RjgxNTAxMTUwMzE1MUZCNzEyRjBBMzI3Mjk3RUE4MkM+NjkKLUQ8QjcxMkMwQTMzOTAzRkMwMDNGRUQwRkUwMTUwMzE1MDFBMjE1MDBBMzE2RjA5MTM4MDFDMDcwQTMxNjAwMTQwM0EyMTQwRgotOTBCNUZDQTNFQkZDMEYxNDAzQTIxNDAxQTQ5MUM4RkNBOUI1MTJGQ0EzMjQyOTdFQTgyQT5JPDkxMzg3RkUwMDM5MDM5MDcKLUZGRkMwNzAxMUZFQkZGMEY5MDM5N0ZGMDBGOUY5MDM5RkYwMDAxRkZEODAxRkM3RjQ4NDg4MDQ4NDg4MDQ4NDg4MDQ4NUE4MgotNDg1QTgyMTI3RkEyOTBDQUZDNUFBODkyQjUxMkY4N0U3RjAzMDAxMzAwMTIzRkEyNkM3RUEyNkM3RTZDN0U2QzdFNkM3RTZDCi1CNDVCOTAzODdGRjAwNzAxMUZCNTEyOUYwMTA3RUJGRTBGOTAzOTAwN0ZGMDAzMkQyOTdDQTgzNT5JPEI1RDhGMDBGQjVGQwotQTNEODAzRkNDN0VBM0ZDMEFGOTBCN0ZDQTMwMUZDQzcxMjNGQjFCNUQ4RjAwRkI1RkNBMzMwMjk3RUE4MzU+STxCNTEyRjAKLUEzMzgwM0ZDMDBCM0IxQjUxMkYwQTMxNDI5N0VBODE5Pkk8RDhGRkZDRUM3RkZGN0Y3RjAwMDM2REVCMDFDMDgwRUJCRkUwCi0xMzlGODBFQjhGRjhFQjg3RkNFQjgzRkVFQjgxRkYwMTgwMTM4MDE0N0YxNUMwRUMzRkUwRUMxRkYwRUMwRkY4RUMwN0ZDMTQKLTAzMTVGRUVDMDFGRjZFMTM4MUVEN0ZDMUVEM0ZFMUVEMUZGMTE1MEYxNkY5RUQwN0ZERUQwM0ZGODE4MTE2N0ZBMjE2M0YxNgotMUYxNjBGMTYwN0Q4RkZGRTE0MDMxNjAxQTIzMDI5N0VBODM1Pjc4IEQ8QjYxMkY4MTVGRjE2QzAzQTAzRkMwMDNGRTBFRDA3Ci1GMEVEMDNGODE2RkMxNTAxMTZGRUE3MTZGQzE1MDMxNkY4RUQwN0YwRUQzRkUwOTBCNjEyODBFREZFMDAwMUZDQzhGQ0IwQjUKLTEyRjBBMzI3Mjk3RUE4MkU+ODAgRDxCNjEyRTAxNUZFNkY3RTNBMDNGQzAwM0ZFMEVEMEZGMDZGN0U2RjdFMTUwMTgyQTY1RQotNEI1QTE1MDdFRDBGRTBFRDNGQzA5MEI1MDBGRUM3RkNBMjkwMzlGQzAwRkY4MEVEM0ZDMDZGN0U2RjdFNkY3RUE5MTcwRUEyCi0xNTAzOTIzODAxRkMxQ0I1MzhGMDAwRkVFRTdGRjhFRTBGRTAyRjI5N0VBODMyPjgyIEQ8OTAzOEZGODA2MDAwMDNFQkYwRTAKLTAwMEYxM0Y4MzgxRjgwRkQzODNGMDAxRjAwM0UxMzA3NDgxMzAzQTIwMEZDMTMwMUEyMTQwMDdFQTI2QzE0MDAxM0MwRUE3RgotRkNFQkZGRTA2QzEzRjg2QzEzRkU4MDAwMDcxNDgwNkMxNEMwQzZGQzAxMEYxM0UwRUIwMDdGRUMxRkYwMTQwRjE0MDcwMEUwCi0xMzAzQTQ2QzE0RTBBMjZDMTMwNzZDMTRDMEI0RUIwRjgwRUJFMDNGMzlFM0ZGRkUwMDAwRTE1QjM4QzAxRkYwMUMyOTdDQTgKLTI1Pkk8QjUwMEYwRUJGRkZFQTNEODAzRkNDN0VBMDM4MEIzQUEwMDAxRUQwNzAwN0YwMDAwMTUwRTEzN0Y2RDE0M0NEOTFGCi1DMDVCOTAzOTBGRjAwM0YwNkRCNTVBMDEwMDE0ODBEQTFGRkNDN0ZDMkYyOTdFQTgzND44NQotRDxCNTAwRjBFQjdGRkZBM0Q4MDNGRUM3RUEwMUMwMDAwMUVEMDM4MEEyNkQxNDA3NkMxNjAwNkU1QjAxN0YxNDBFODAwMTNGCi01Q0EyNkUxMzNDMDExRjE0Mzg2RTEzNzgwMTBGMTQ3MDgwMDEwNzVDQTI2RDZDNDg1QUEyRUNGRTAzMDEwMTVDRUNGRjA3NkQKLTkxQzdGQzE1ODdFQzdGOEVBMjE1REVFQzNGREMxNUZDNkU1QUEyNkU1QUEzNkU1QUEyNkU1QUEyMzAyOTdGQTgzMz5JPEI1Ci0zQ0UwN0ZGRkUwMUZGRkMwQTMyODAzRkMwMDAzRkNDN0VBNzAwMEEyNkQ2RDdFMDAwMTYwQTI2RDZFMTMwMTZDNjA0QjEzODAKLTAyODAxNTAzMDE3RjVGNEIxM0MwRDkzRkMwMDEzRjQ5QzdGQ0EyOTEzQUUwMEUxRkUwMEYwMTFGMTYwRTE3RjA5MTI2RjAxQwotMEYxMzFFMDEwRjE2MUMwMzNDMTNGODkwMjcwN0Y4MzgwNzVCQTIwMzc4MTNGQzkwMjcwM0ZDNzAwMzVCQTI5MTNBRkVFMDAxCi1GRUYwMDEwMTVFMDJGRjE0RkY0QjdFNkQ1RUEyNkU0ODZENUFBMzZFQzc2Q0M4RkNBMjAyM0U4MDAyMUUxNDFFQTI0MjI5N0YKLUE4NDU+STwzODAzRkY4MDAwMEYxM0YwMzgxRjAxRkMzODNGODBGRTE0N0Y4MDE1ODBFQTFGMDBDN0ZDQTRFQjNGRkYzODAxCi1GQzNGRUEwRkUwRUExRjgwRUEzRjAwMTI3RTVBQTQxNDVGMDA3RTEzREYzOTNGODM5RkZDMzgxRkZFMEYzODAzRkMwMzFFMUIKLTdFOUEyMT45NyBEPEVBRkZFMEEzMTIwRkFDRUJFMUZFOTAzOEVGRkY4MDkwMzhGRTA3RTA5MDM4RjgwM0YwOTAzOEYwMDFGOAotOTAzOEUwMDBGQ0EyMTU3RUEyMTU3RkE4MTU3RUEzMTVGQ0EyOTAzOEYwMDFGODkwMzhGODAzRjA5MDM4OUMwRkUwOTAzODBGCi1GRjgwMzkwRTAxRkMwMDIwMkE3RUE5MjU+STxFQjNGRjAzODAxRkZGQzM4MDNGMDNFMzgwRkMwN0ZFQTFGODBFQTNGMDBBMgotNDgxMzNFMDA3RTkwQzdGQ0EyMTJGRUE3MTI3RUEyMTI3RjZDRUIwMzgwMTM4MDAwMUZFQjA3MDAzODBGRTAwRTM4MDNGODNDCi0zODAxRkZGODM4MDAzRkMwMTkxQjdFOUExRT5JPEVDN0ZGMEEzMTQwN0FDRUIzRjg3MzgwMUZGRjczODA3RjAzRjM4MEZDMAotMEYzODFGODAwN0VBM0YwMEEyMTI3RUEzMTJGRUE4MTI3RUEyN0VBMjM4MUY4MDBGMzgwRkMwMUYzOTA3RTA3RkZGMzgwMUZGCi1FNzM4MDA3Rjg3MjAyQTdFQTkyNT5JPEVCM0ZDMDM4MDFGRkYwMzgwM0UwN0MzODBGODAzRTAwMUY3RjEzMDA0OEVCMEY4MAotMTI3RTE1QzBBMjAwRkUxMzA3QTJCNkZDQTI0OEM4RkNBMzEyN0VBMjEyN0Y2Q0VCMDFDMDdFMzkwRjgwMDM4MDM5MDdDMDA3Ci0wMDM4MDNGMDFFMzgwMEZGRkNFQjNGRTAxQTFCN0U5QTFGPkk8RUIwN0Y4RUIzRkZDRUI3RTNFMzgwMUZDN0ZFQTAzRjgxMwotRjAxMjA3MTQzRTE0MDBBN0I1MTJDMEEzMzgwN0YwMDBCM0EzMzg3RkZGODBBMzE4MkE3RUE5MTU+STw5MDM4RkY4MEYwMDAKLTAzRUJFM0Y4MzkwRkMxRkUxQzM5MUYwMDdDN0M0ODEzN0UwMDNFRUIzRTEwMDA3RUVCM0YwMEE2MDAzRTEzM0UwMDNGMTM3RQotNkMxMzdDMzgwRkMxRjgzODBCRkZFMDAwMTgxMzgwOTBDOEZDMTIzOEEyMTIzQzM4M0ZGRkY4MTRGRjZDMTRDMDZDMTRFMDZDCi0xNEYwMTIxRjM4M0MwMDA3MDA3Q0VCMDFGODQ4MTMwMEE0MDA3Q0VCMDFGMEEyMDAzRkVCMDdFMDM5MEZDMDFGODA2Q0I1MTIKLTAwMzgwMDdGRjAxRTI4N0U5QTIyPkk8RUFGRkUwQTMxMjBGQUMxNDdFOTAzOEUxRkY4MDkwMzhFMzBGQzAwMUU0MTNFMEVCCi1FODA3MDFGODEzRjAxM0YwQTIxM0UwQjAzOUZGRkUzRkZGQTMyMDJBN0RBOTI1Pkk8MTIwN0VBMEY4MEVBMUZDMEVBM0ZFMAotQTNFQTFGQzBFQTBGODBFQTA3MDBDN0ZDQTdFQUZGRTBBMzEyMEZCM0EzRUFGRkZFQTMwRjJCN0VBQTEyPkk8RUFGRkUwQTMKLTEyMEZCM0IyRUFGRkZFQTMwRjJBN0VBOTEyPjEwOCBEPDI2RkZDMDdGRUIxRkMwOTAzQUMxRkZDMDdGRjA5MDNBQzMwN0UwCi1DMUY4RDgwRkM0OTAzOEYxMDFGQzkwMzlDODAzRjIwMDAxRDgwMUZFN0YwMUQwNUJBMjAxRTA1QkIwM0NGRkZFM0ZGRjhGRkYKLUUwQTMzMzFCN0Q5QTM4Pkk8MzhGRkMwN0U5MDM4QzFGRjgwOTAzOEMzMEZDMEQ4MEZDNDEzRTBFQkM4MDcwMUQ4MTNGMDEzCi1EMEEyMTNFMEIwMzlGRkZFM0ZGRkEzMjAxQjdEOUEyNT5JPEVCM0ZFMDM4MDFGRkZDMzgwM0YwN0UzOTBGQzAxRjgwMzkxRgotODAwRkMwMzkzRjAwMDdFMEEyMDA3RUVCMDNGMEEzMDBGRTE0RjhBODAwN0UxNEYwQTI2Q0VCMDdFMEEyMzkxRjgwMEZDMDM5Ci0wRkMwMUY4MDM5MDdGMDdGMDAzODAxRkZGQzM4MDAzRkUwMUQxQjdFOUEyMj5JPDM4RkZFMUZFOTAzOEVGRkY4MDkwMzhGRQotMEZFMDM5MEZGODAzRjA5MDM4RjAwMUY4MDFFMDEzRkMxNDAwMTVGRUEyMTU3RkE4MTU3RTE1RkVBMjE1RkMxNDAxMDFGMDEzCi1GODkwMzhGODA3RjA5MDM4RkMwRkUwOTAzOEVGRkY4MDkwMzhFMUZDMDAwMUUwQzdGQ0E5RUFGRkZFQTMyMDI3N0U5QTI1PgotSTwzOEZGQzFGMEVCQzdGQ0VCQzYzRTM4MEZDQzdGMTNEODEzRDBBMkVCRjAzRUVCRTAwMEIwQjVGQ0EzMTgxQjdGOUExQj4KLTExNCBEPDM4MDNGRTMwMzgwRkZGRjBFQTNFMDNFQTc4MDAxMjcwMDBGMDEzNzBBMjdFMDBGRTEzMDBFQUZGRTA2Q0I0RkMxNAotQzA2QzEzRTA2QzEzRjAwMDA3MTNGOEM2RkNFQjA3RkMxMzAwMDBFMDEzN0MxNDNDN0UxNDM4N0U2QzEzNzAzOEZGMDFFMDM4Ci1FN0ZGQzAwMEMxMTMwMDE2MUI3RTlBMUI+STwxM0UwQTQxMjAxQTMxMjAzQTIxMjA3MTIwRjM4MUZGRkUwQjVGQ0EyMzgwRgotRTAwMEFEMTQ3MEE3MzgwN0YwRTAwMDAzMTNDMDM4MDFGRjgwMzgwMDdGMDAxNDI2N0ZBNTFBPkk8MzlGRkUwN0ZGMEEzMDAKLTBGMTMwN0IyMTQwRkEyMDAwNzEzMTczOTAzRjA2N0ZGMzgwMUZGQzczODAwN0Y4NzIwMUI3RDlBMjU+STwzOUZGRkMwM0ZGCi1BMzM5MEZGMDAwRjAwMDA3MTRFMDdGMDAwM0VCMDFDMEEyRUJGQzAzMDAwMTE0ODBFQkZFMDcwMDAwMTQwMDEzRkZFQjdGMEUKLUEyMTQ5RUVCM0Y5QzE0RkM2RDVBQTI2RDVBQTM2RDVBQTI2RDVBQTIyMDFCN0Y5QTIzPkk8M0JGRkZDN0ZGQzFGRkNBMzNCCi0wRkUwMEZFMDAxQzAyNjA3RjAwN0VCMDM4MEEyMDFGOEVCRjAwNzAwMDMxNjAwRUMwRkY4MDFGQzVDMDAwMTE1MEVFQzFGRkMKLTI2MDBGRTFDNUIxNUZFOTAzOUZGMzg3RTNDMDE3RjE0MzhFQzc4N0Y2RDQ4NkM1QTE2RjBFQ0UwMUYwMTFGNUNBMjZENDg2QwotNUFBMkVDODAwNzAxMDc1Q0EyMkUxQjdGOUEzMT5JPDM5RkZGQzFGRkVBMzM5MDdGMDAzODAzODAzRjgwNzkwMzhGQzBGMDAKLTM4MDFGRTFFMDAwMDVCRUI3RjM4MTRGODZENUE2RDVBMTMwRjgwNkQ3RTEzMEY0OTdFRUIzQ0ZFRUIzOEZGRUI3ODdGOTAzOAotRjAzRjgwMzkwMUUwMUZDMEQ4MDNDMDEzRTBFQjgwMEYzOUZGRjAzRkZGQTMyMDFCN0Y5QTIzPkk8MzlGRkZDMDNGRkEzMzkKLTBGRjAwMEYwMDAwNzE0RTA3RjAwMDNFQjAxQzBBMkVCRkMwMzAwMDExNDgwRUJGRTA3MDAwMDE0MDAxM0ZGRUI3RjBFQTIxNAotOUVFQjNGOUMxNEZDNkQ1QUEyNkQ1QUEzNkQ1QUEyNkQ1QUEyNUNBMjEzMDcwMDM4OTBDN0ZDRUE3QzBGRUFGRTBFMTMxRTEzCi0xQzVCRUE3NEYwRUEzRkUwRUEwRjgwMjAyNzdGOUEyMz5JIEUKLSVFbmREVklQU0JpdG1hcEZvbnQKLSVEVklQU0JpdG1hcEZvbnQ6IEZvIGNtdHQxMCAxMC45NSA3NgotL0ZvIDc2IDEyNyBkZjwxMjcwMTJGOEIwMTI3MDEyMDBBNTEyNzAxMkY4QTMxMjcwMDUxQzc3OUIxOD4zMwotRDxFQTQwMTBFQUUwMzhFQUYwNzhFQUUwMzhBQUVBNjAzMDBEMEU3QjlDMTg+STxFQTAzMDZFQTA3OEZBNjM4N0ZGRkMwQjUKLTEyRTBBMjZDMTNDMDM4MEYxRTAwQTYzODdGRkZDMEI1MTJFMEEyNkMxM0MwMzgxRTNDMDBBNkVBMEMxODEzMUM3RTlCMTg+Ci1JPDEzQzAxMjAxQTNFQTAzRjBFQTBGRkNFQTNGRkVFQTdEQ0ZFQTcxQzczOEUxQzM4MDEzQzdBMzM4RjFDMDAwMTI3OTEyM0YKLTZDN0VFQTBGRjhFQTAxRkMxM0RFMTNDRjEzQzczODYxQzM4MDEyRjFBMjEyRTFFQkM3MDAxMjcxRUE3OURFRUEzRkZFRUExRgotRjhFQTA3RTBFQTAxQzBBMzEyMDAxMTI0N0Q5RjE4Pkk8RUEzODAzMzg3QzA3ODBBMkVBRUUwRjE0MDBBMjVCMTMxRUEyMTMKLTNFRUE3QzNDQTJFQTM4N0NFQTAwNzhBMjEzRjg1QjEyMDE1QkEyMTIwMzVCQTIxMjA3RUI4MzgwRUI4N0MwMTIwRkVCMEVFMAotQTIxMjFGMTIxRUEyMTIzRTM4M0MwN0MwQTIzODE4MDM4MDEzMjQ3RTlGMTg+STxFQTAxQzBFQTA3RTA0ODdFRUEwRTcwNDgKLTdFQTRFQjczRjgxM0YzMTNFMzM4MEZDMUMwRUJDMzgwMTM4MzEzMDMzODFGMDcwMEVBM0Y4N0VBN0I4RUVBNzFDRUVBRTFGQwotMTJFMDEzN0NFQjc4NzBBMkVBNzBGRTM4N0ZGRkUwRUEzRkM3MzgwRjAzQzAxNTFDN0Y5QjE4Pkk8MTIzODEyN0NBMjEyN0UKLTEyM0UxMjBFQTMxMjFDQTIxMjM4MTJGODEyRjAxMkMwMDcwRTc4OUIxOD5JPDEzNzAxM0YwRUEwMUUwRUEwM0MwRUEwNzgwCi1FQTBGMDAxMjFFMTIxQzVBQTI1QUE0NUFBODEyNzBBNDdFQTI3RTEyMUU3RUVBMDc4MEVBMDNDMEVBMDFGMDEyMDAxMzcwMEMKLTI0Nzk5RjE4Pkk8MTI2MDEyRjAxMjc4N0U3RTdFRUEwNzgwMTIwM0VBMDFDMEEyRUEwMEUwQTQxMzcwQTgxM0UwQTRFQTAxCi1DMEEyRUEwMzgwMTIwN0VBMEYwMDEyMUU1QTVBNUExMjYwMEMyNDdDOUYxOD5JPEVBMDFDMEE0RUE0MUMxMzhGMUM3ODBFQQotRkRERjM4N0ZGRjAwRUExRkZDRUEwN0YwQTJFQTFGRkNFQTdGRkYzOEZEREY4MEVBRjFDNzM4NDFDMTAwRUEwMUMwQTQxMTE0Ci03RDk3MTg+STwxMzYwMTNGMEE3Mzg3RkZGQzBCNTEyRTBBMjZDMTNDMDM4MDBGMDAwQTcxMzYwMTMxNDdFOTcxOD5JPDEyMUMKLTEyM0UxMjdFMTI3RjEyM0YxMjFGMTIwNzEyMEUxMjFFMTI3QzEyRjgxMjYwMDgwQzc4ODUxOD5JPDM4N0ZGRkMwQjUxMkUwCi1BMjZDMTNDMDEzMDQ3RThGMTg+STwxMjMwMTI3ODEyRkNBMjEyNzgxMjMwMDYwNjc3ODUxOD5JPDEzMDNFQjA3ODBBMjEzMEYKLTE0MDA1QjEzMUVBMjEzM0UxMzNDMTM3QzEzNzhBMjEzRjg1QjEyMDE1QjEyMDM1QkEyMTIwNzVCMTIwRjkwQzdGQ0EyNUExMgotMUUxMjNFMTIzQ0EyMTI3QzEyNzgxMkY4NUFBMjEyNjAxMTI0N0Q5RjE4Pkk8RUEwMUYwRUEwN0ZDNDg3RUVBMUYxRkVBMUMKLTA3MzgzODAzODAwMDc4MTNDMEVBNzAwMUEyMzhFMDAwRTBBOUVBRjAwMTAwNzAxM0MwQTJFQTc4MDMwMDM4MTM4MDM4MUMwNwotMDBFQTFGMUZFQTBGRkU2QzVBRUEwMUYwMTMxQzdFOUIxOD5JPEVBMDE4MDEyMDNBMjEyMDcxMjBGMTIzRjEyRkYxMkZCMTIKLTQzMTIwM0IwRUE3RkZDRUFGRkZFRUE3RkZDMEYxQzdCOUIxOD5JPEVBMDNGMEVBMEZGRUVBM0ZGRjM4N0MwRjgwMzg3MDAzCi1DMEVBRTAwMTM4RjAwMEUwQTIxMjYwQzdGQ0EyRUIwMUMwQTIxMzAzRUIwNzgwRUIwRjAwMTMxRTVCNUI1QjQ4NUFFQTA3QzAKLTQ4NUEzODFFMDBFMDVBRUE3RkZGQjVGQzdFMTMxQzdFOUIxOD5JPDEzMUY1QjEzNzdBMjEzRTcxMjAxMTNDN0VBMDM4NzEyCi0wNzEzMDcxMjBFMTIxRTEyM0MxMjM4MTI3ODEyRjBCNTEyRjhBMzM4MDAwNzAwQTZFQjdGRjBBMzE1MUM3RjlCMTg+NTIKLUQ8MTM3RTQ4QjRGQzAwMDcxMzgwMzgwRjgzQzBFQTFFMDMxMjFDMzgzODAxODA5MEM3RkM1QUEyRUFFMUY4RUFFN0ZFQjVGQwotMzhGRTA3ODAzOEY4MDNDMEVBRjAwMUVCMDBFMDVBQTIxMjcwQTMzODM4MDFDMEVBM0MwMzM4MUUwNzgwMzgwRkZGMDA2QzVBCi1FQTAxRjgxMzFDN0U5QjE4PjU0IEQ8MTIzMDEyNzgxMkZDQTIxMjc4MTIzMDEyMDBBODEyMzAxMjc4MTJGQ0EyMTI3ODEyMzAKLTA2MTQ3NzkzMTg+NTggRDwxMjE4MTIzQzEyN0VBMjEyM0MxMjE4MTIwMEE4MTIxODEyM0MxMjdFQTIxMjNFMTIxRTEyMEUxMgotMUMxMjNDMTI3ODEyRjAxMjYwMDcxQTc4OTMxOD5JPDE0QzBFQjAzRTAxMzA3RUIxRkMwRUIzRjgwRUJGRTAwNDg1QUVBMDcKLUYwNDg1QUVBM0Y4MDQ4QzdGQzEyRkNBMjEyN0Y2QzdFRUEwRkUwNkM3RUVBMDFGQzZDN0VFQjNGODBFQjFGQzBFQjA3RTAxMwotMDNFQjAwQzAxMzE4N0U5OTE4Pkk8Mzg3RkZGQzBCNTEyRTBBMjZDMTNDMEM4RkNBNDM4N0ZGRkMwQjUxMkUwQTI2QzEzQzAKLTEzMEM3RTkzMTg+STwxMjYwMTJGODdFMTI3RjZDN0VFQTBGRTA2QzdFRUEwMUZDNkM3RUVCM0Y4MEVCMUZDMEVCMDdFMEEyCi1FQjFGQzBFQjNGODBFQkZFMDA0ODVBRUEwN0YwNDg1QUVBM0Y4MDQ4QzdGQzEyRkM1QTEyNjAxMzE4N0U5OTE4Pkk8RUEwRgotRjBFQTNGRkM0OEI0RkNFQTcwMEYzOEYwMDM4MEEyRUE2MDA3MzgwMDBGMDAxMzNFNUJFQTAxRjA1QjQ4NUFBNTVCQzhGQ0E1Ci1FQTAzODA0ODdFQTM2QzVBMTExQzdEOUIxOD5JPDEzNzAxM0Y4QTIxM0Q4QTJFQTAxRENBMzEzOENFQTAzOEVBNEVBMDcwNwotQTUzODBGRkY4MEEzRUEwRTAzMzgxQzAxQzBBMzM4N0YwN0YwMDBGRjEzRjgwMDdGMTNGMDE1MUM3RjlCMTg+NjUKLUQ8RUE3RkY4RUFGRkZFNkM3RTM4MUMwRjgwRUIwM0MwQTJFQjAxRTAxMzAwQTIxNEYwMTQ3MEE4MTRGMDE0RTBBMjEzMDExNAotQzAxMzAzRUIwRjgwMzg3RkZGMDA0ODVBRUE3RkY4MTQxQzdGOUIxOD42OCBEPEI1MTJGMEEzMzgxQzAwNzBBNDE0MDBBMjEzCi0wRUEzRUExRkZFQTNFQTFDMEVBMzkwQzdGQ0EyMTQzOEE1QjUxMkY4QTMxNTFDN0Y5QjE4Pkk8QjUxMkYwQTMzODFDMDA3MAotQTQxNDAwQTIxMzBFQTNFQTFGRkVBM0VBMUMwRUEzOTBDN0ZDQTdFQUZGQzBBMzE0MUM3RTlCMTg+STwzODdGMDdGMDM4RkYKLThGRjgzODdGMDdGMDM4MUMwMUMwQTlFQTFGRkZBM0VBMUMwMUFBMzg3RjA3RjAzOEZGOEZGODM4N0YwN0YwMTUxQzdGOUIxOAotPjcyIEQ8RUE3RkZGQjUxMjgwNkMxMzAwRUEwMUMwQjNBNEVBN0ZGRkI1MTI4MDZDMTMwMDExMUM3RDlCMTg+STxFQUZGQzAKLUEzMDAxQ0M3RkNCMTE0RTBBNUI1RkNBMzEzMUM3RTlCMTg+NzYgRDwzODdFMDdGMDM4RkYwRkY4Mzg3RjA3RjAzODFEODFDMAotQTMxM0MxMTIxQ0EyMTNFMUEzMTM2MTEzNzFBMjEzMzExMzM5QTMxMzE5QTIxMzFEMTMwREEzRUE3RjA3RUFGRjg3RUE3RjAzCi0xNTFDN0Y5QjE4Pjc4IEQ8RUEwRkZFMzgzRkZGODA0ODEzQzBFQTc4MDNFQTcwMDEwMEYwMTNFMEVBRTAwMEIwRUFGMDAxMDAKLTcwMTNDMEVBN0MwN0VBN0ZGRjZDMTM4MDM4MEZGRTAwMTMxQzdFOUIxOD5JPEVBRkZGRUVCRkY4MDE0QzBFQTFDMDNFQjAxCi1FMDEzMDAxNDcwQTUxNEUwMTMwMUVCMDNDMEVBMUZGRjE0ODBFQkZFMDAwMDFDQzdGQ0E4QjQ3RUEzMTQxQzdGOUIxOD5JPAotRUE3RkY4RUFGRkZFNkM3RTM4MUMwRjgwMTMwMzE0QzAxMzAxQTMxMzAzMTQ4MDEzMEYzODFGRkYwMDVCQTJFQTFDMEY3RkVCCi0wMzgwQTUxNDlDQTMzODdGMDFGOEVBRkY4MTM4N0YwMEYwMTYxQzdGOUIxOD44MiBEPDM4MDNGMUMwRUExRkZGNUFFQTdDMEYKLUVBNzAwM0VBRTAwMUEzOTBDN0ZDMTI3MDEyNzgxMjNGRUExRkYwRUEwN0ZFQzY3RUVCMEY4MEVCMDNDMDEzMDFFQjAwRTBBMgotMTI2MDEyRTAxMzAxMDBGMDEzQzAzOEY4MDc4MEI1RkNFQkZFMDBFQUU3RjgxMzFDN0U5QjE4Pkk8Mzg3RkZGRjhCNUZDQTIKLTM4RTA3MDM4QTQwMDAwMTMwMEIyRUEwN0ZGQTMxNTFDN0Y5QjE4Pkk8MzhGRjgzRkVBMzM4MUMwMDcwQjM2QzEzRTBFQTBGCi0wMTM4MDc4M0MwMzgwM0ZGODA2QzEzMDBFQTAwN0MxNzFDODA5QjE4Pkk8MzhGRTAzRjhFQUZGMDdFQUZFMDMzODFDMDFDMAotRUExRTAzMDAwRTEzODBFQTBGMDcwMDA3MTMwMEEyRUEwMzhFQTJFQTAxRENBM0VBMDBGOEEyMTM3MEE5RUEwMUZDNDg3RTZDCi01QTE1MUM3RjlCMTg+ODkgRDxFQUZGRjhBM0VBRTAwMEIzQUNFQUZGRjhBMzBEMjQ3NzlGMTg+OTEKLUQ8MTI2MDEyRjBBMjdFMTI3ODEyN0MxMjNDQTIxMjNFMTIxRTEyMUY3RUEyN0YxMjA3N0YxMjAzQTI3RjEyMDE3RjEyMDA3RgotMTM3OEEyMTM3QzEzM0MxMzNFMTMxRUEyMTMxRjdGMTQ4MDEzMDdBMkVCMDMwMDExMjQ3RDlGMTg+STxFQUZGRjhBM0VBMDAKLTM4QjNBQ0VBRkZGOEEzMEQyNDdGOUYxOD5JPEVBMDE4MEVBMDdDMEVBMUZGMEVBN0VGQ0VBRjgzRUVBRTAwRTBGMDY3QzlCCi0xOD5JPDM4N0ZGRkMwQjUxMkUwQTI2QzEzQzAxMzA0N0U3RjE4Pkk8MTIwNjEyMUUxMjNFMTIzODEyNzBBMjEyRTBBMzEyRjgKLTEyRkMxMjdDQTIxMjM4MDcwRTc4OUUxOD5JPEVBMEZGMEVBMUZGQzQ4N0VFQTNDMEZFQTE4MDczODAwMDM4MEEyMTNGRjEyCi0wNzEyMUZFQTdGMDMxMjc4MTJFMEEzRUFGMDA3RUE3ODBGMzgzRkZGRjhFQTFGRkRFQTA3RjAxNTE0N0U5MzE4Pkk8MTI3RQotMTJGRTEyN0UxMjBFQTUxMzNFRUJGRjgwMDAwRjEzQzBFQkMxRTAxMzgwRUIwMDcwMTIwRTE0MzhBNjAwMEYxMzcwQTJFQjgwCi1FMDEzQzFFQkZGQzAwMDBFMTM4MDM4MDYzRTAwMTUxQzgwOUIxOD5JPEVBMDFGRUVBMDdGRjAwMUYxMzgwRUEzRTA3MzgzOAotMDMwMDQ4QzdGQ0EyNUFBNjEyNzBFQjAxQzAxMjM4RUEzRTAzMzgxRkZGODAwMDA3MTMwMEVBMDFGQzEyMTQ3RDkzMTg+STwKLUVCMUY4MDEzM0YxMzFGMTMwM0E1RUEwM0UzRUEwRkZCRUExRkZGRUEzQzFGRUEzODBGRUE3MDA3MTMwMzEyRTBBNkVBNzAwNwotQTJFQTM4MEZFQTNDMUYzODFGRkZGMDM4MEZGQkY4MzgwM0UzRjAxNTFDN0U5QjE4Pkk8RUEwMUYwRUEwN0ZDRUExRkZFRUEKLTNFMEYzODM4MDc4MEVBNzAwM0EyMzhFMDAxQzBBMkI1RkNBMzAwRTBDN0ZDMTI3MEVCMDFDMDEyMzhFQTNFMDczODFGRkY4MAotMDAwNzEzMDBFQTAxRjgxMjE0N0Q5MzE4Pkk8RUIxRjgwRUI3RkMwRUJGRkUwMTNFMTM4MDFDMEMwMTQwMEEzMzg3RkZGQzAKLUI1RkNBMjM4MDFDMDAwQUVFQTdGRkZBMzEzMUM3RjlCMTg+STwzODAxRTFGMDM4MDdGRkY4NUEzODFFMUUzMDM4MUMwRTAwCi00ODdFQTVFQTFDMEVFQTFFMUVFQTFGRkM1QkVBMzlFMDAwMzhDN0ZDN0VFQTFGRkVFQkZGQzA0ODEzRTAzODc4MDFGMDM4NzAKLTAwNzA0ODEzMzhBNDAwNzgxM0YwRUE3RTAzMzgxRkZGQzA2QzEzODAzODAxRkMwMDE1MUY3RjkzMTg+STwxMjdFMTJGRTEyCi03RTEyMEVBNTEzM0VFQkZGODAwMDBGMTNDMDEzQzFFQjgwRTAxMzAwMTIwRUFCMzg3RkM3RkMzOEZGRTdGRTM4N0ZDN0ZDMTcKLTFDODA5QjE4Pkk8RUEwMzgwRUEwN0MwQTNFQTAzODBDN0ZDQTRFQTdGQzAxMkZGMTI3RjEyMDFBRUI1RkNBMzEwMUQ3QzlDCi0xOD5JPDEyN0UxMkZFMTI3RTEyMEVBNUVCM0ZGMEEzRUIwNzgwRUIwRjAwMTMxRTVCNUI1QkVBMEZGODdGMTM5QzEzMEVFQQotMEUwRjdGRUIwMzgwMTRDMDM4N0ZDN0Y4MTJGRjEyN0YxNTFDN0Y5QjE4PjEwNyBEPEVBRkZDMEEzMTIwMUIzQTRCNTEyODAKLUEzMTExQzdEOUIxOD5JPDM4RjlDMUMwMzhGRkY3RjAxM0ZGMzgzRTNFMzhFQTNDM0NBMkVBMzgzOEFCMzhGRTNFM0VFQjdFCi03RUVCM0UzRTE3MTQ4MDkzMTg+STxFQTdFM0UzOEZFRkY4MDAwN0YxM0MwRUEwRkMxRUI4MEUwMTMwMDEyMEVBQjM4N0ZDNwotRkMzOEZGRTdGRTM4N0ZDN0ZDMTcxNDgwOTMxOD5JPEVBMDFGMEVBMEZGRTQ4N0UzODNFMEY4MEVBMzgwMzM4NzAwMUMwQTIKLTM4RTAwMEUwQTVFQUYwMDEwMDcwMTNDMEVBNzgwMzM4M0MwNzgwRUEzRTBGMzgxRkZGMDA2QzVBRUEwMUYwMTMxNDdFOTMxOAotPkk8RUE3RTNFMzhGRUZGODAwMDdGMTNDMDM4MEZDMUUwMTM4MEVCMDA3MDEyMEUxNDM4QTYwMDBGMTM3MEEyRUI4MEUwMTMKLUMxRUJGRkMwMDAwRTEzODBFQjNFMDA5MEM3RkNBN0VBN0ZDMDQ4N0U2QzVBMTUxRTgwOTMxOD5JPDM4MDFGMzgwRUEwN0ZCCi1FQTFGRkZFQTNFMUZFQTM4MEZFQTcwMDdBMkVBRTAwM0E2RUE3MDA3QTJFQTM4MEZFQTNDMUZFQTFGRkZFQTBGRkJFQTAzRTMKLUVBMDAwM0E3RUIxRkYwRUIzRkY4RUIxRkYwMTUxRTdFOTMxOD5JPDM4RkYwRkMwRUIzRkUwRUI3RkYwRUEwN0YwRUJFMDYwCi1FQkMwMDA1QkEyOTBDN0ZDQTlFQUZGRkM3RjVCMTQxNDdFOTMxOD5JPEVBMDdGN0VBM0ZGRjVBRUE3ODBGRUFFMDA3QTMwMAotN0NDN0ZDRUE3RkUwRUExRkZDRUEwM0ZFRUEwMDFGMzg2MDA3ODBFQUUwMDNBMjEyRjAzOEY4MEYwMEI1RkMxM0ZDRUFFN0YwCi0xMTE0N0Q5MzE4Pkk8NDg3RTEyMDNBNDM4N0ZGRkMwQjVGQ0EyMzgwMzgwMDBBOTE0NDAxNEUwQTMzODAxQzFDMDEzRkY2QwotMTM4MEVCM0UwMDEzMTk3Rjk4MTg+STwzODdFMDdFMEVBRkUwRkVBN0UwN0VBMEUwMEFDMTMwMUVBMEYwMzM4MDdGRkZDNkMKLTEzRkUzODAxRkNGQzE3MTQ4MDkzMTg+STwzODdGOEZGMDAwRkYxM0Y4MDA3RjEzRjAzODFDMDFDMDM4MEUwMzgwQTMzODA3Ci0wNzAwQTMxMzhGRUEwMzhFQTNFQTAxRENBM0VBMDBGOEEyMTM3MDE1MTQ3RjkzMTg+STwzOEZGMDdGODEzOEYxMzA3MzgzOAotMDBFMEE0MzgxQzAxQzAxMzcxMTNGOUEyMTNEOUVBMURERDAwMEQxMzgwQTMxMzhERUEwRjhGQTIzODA3MDcwMDE1MTQ3RjkzCi0xOD5JPDM4N0Y4RkYwMTM5RjEzOEYzODBGMDcwMEVBMDc4RUVBMDM5RUVBMDFEQzEzRjgxMjAwMTM3MDEzRjA3RkVBMDFEQwotRUEwMzlFMTM4RUVBMDcwNzAwMEUxMzgwMzg3RjhGRjAwMEZGMTNGODAwN0YxM0YwMTUxNDdGOTMxOD5JPDM4N0Y4RkYwMDAKLUZGMTNGODAwN0YxM0YwMzgwRTAxQzBFQjAzODBBMjEyMDdFQjA3MDBBMkVBMDM4N0EyMTM4RUVBMDFDRUEyMTNDQzEyMDAxMwotREMxMzc4QTMxMzcwQTMxM0YwNUIxMjc5RUE3QkMwRUE3RjgwNkNDN0ZDMTIxRTE1MUU3RjkzMTg+STwzODNGRkZGMDVBQTIKLTM4NzAwMUUwRUIwM0MwRUIwNzgwMzgwMDBGMDAxMzFFNUIxM0Y4NDg1QUVBMDNDMDQ4NUEzODBGMDA3MDEyMUU1QTVBQjUxMgotRjBBMzE0MTQ3RjkzMTg+STxFQjA3RTAxMzFGMTM3RkVCNzgwMDEzRTBBQjEyMDFFQTdGQzA0ODVBQTI2QzdFRUEwMUUwMTIKLTAwQUIxMzc4RUI3RkUwMTMxRjEzMDcxMzI0N0U5RjE4Pkk8MTI2MDEyRjBCM0IwMTI2MDA0MjQ3NjlGMTg+STwxMjdDQjRGQwotMTNDMDEyMDNDNjdFQUI3RkVCN0ZDMEVCM0ZFMEEyRUI3RkMwRUJGMDAwNUJBQkVBMDNDMDEyRkY5MEM3RkMxMjdDMTMyNDdFCi05RjE4Pkk8RUEwNjBDRUExRjFFRUEzRkJFRUFGQkY4RUFGMUYwRUE2MEMwMEYwNjdDOUIxOD5JCi1FCi0lRW5kRFZJUFNCaXRtYXBGb250Ci0lRFZJUFNCaXRtYXBGb250OiBGcCBjbXIxMCAxMC45NSA3NAotL0ZwIDc0IDEyMyBkZjw5MDM4MUY4M0UwOTAzOEYwNkUzMDM5MDFDMDc4NzgzODAzODBGODkwMzgwMEYwMzA0OEVCNzAwMEE3Ci1CNjEyODAzOTA3MDA3MDAwQjIzODNGRTNGRjFEMjA4MDlGMUI+MTEgRDwxMzNGRUJFMEMwRUEwMUMwMzgwMzgxRTBFQTA3MDEKLUEyOTBDN0ZDQTZCNTEyRTBFQTA3MDBCMjM4M0ZDM0ZDMTYyMDgwOUYxOT5JPEVCM0ZFMDEzRTBFQTAxQzFFQTAzODFFQTA3Ci0wMEE4QjVGQ0VBMDcwMEIyMzgzRkU3RkMxNjIwODA5RjE5Pkk8OTAzODFGODFGODkwMzhGMDRGMDQzOTAxQzA3QzA2MzkwMwotODBGODBGRUIwMEYwNUEwMjcwQzdGQ0E2QjdGQzM5MDcwMDcwMDdCMjNBM0ZFM0ZFM0ZFMDIzMjA4MDlGMjY+STxFQTcwMzgKLUVBRjg3Q0VBRkM3RUEyRUE3NDNBRUEwNDAyQTNFQTA4MDRBMkVBMTAwOEEyRUEyMDEwRUE0MDIwMEYwRTdGOUYxNz4zNAotRDwxMjcwMTJGODEyRkNBMjEyNzQxMjA0QTMxMjA4QTIxMjEwQTIxMjIwMTI0MDA2MEU3QzlGMEQ+MzkKLUQ8MTM0MDEzODBFQTAxMDA1QTEyMDYxMjA0MTIwQzVBQTIxMjM4MTIzMEEyMTI3MDEyNjBBNDEyRTBBQzEyNjBBNDEyNzAxMgotMzBBMjEyMzgxMjE4QTI3RTEyMDQxMjA2N0U3RUVBMDA4MDEzNDAwQTJFN0JBMTEyPkk8N0UxMjQwN0UxMjMwN0UxMjA4MTIKLTBDN0VBMjEyMDc3RUEyMTM4MDEyMDFBNDEzQzBBQzEzODBBNDEyMDMxMzAwQTI1QTEyMDZBMjVBMTIwODEyMTg1QTEyMjA1QQotNUEwQTJFN0VBMTEyPkk8MTI3MDEyRjAxMkY4QTIxMjc4MTIwOEEzMTIxMEEzMTIyMEEyMTI0MDA1MEU3Qzg0MEQ+NDQKLUQ8RUFGRkYwQTIwQzAyODA4QTBGPkk8MTI3MDEyRjhBMzEyNzAwNTA1N0M4NDBEPkk8RUEwM0YwRUEwRTFDNDg3RUVBMTgwNgotRUEzODA3Mzg3MDAzODBBNDAwRjAxM0MwQUQwMDcwMTM4MEEzRUE3ODA3MDAzODEzMDBFQTE4MDZFQTFDMEU2QzVBRUEwM0YwCi0xMjFGN0U5RDE3PjQ4IEQ8MTM4MDEyMDMxMjBGMTJGMzEyMDNCM0E2RUEwN0MwRUE3RkZFMEYxRTdDOUQxNz5JPEVBMDNGMAotRUEwQzFDRUExMDBFNDg3RTAwNDAxMzgwMTI4MDAwRjAxM0MwRUFGODAzQTNFQTIwMDcxMjAwMTQ4MEEyRUIwRjAwMTMwRTVCCi01QjVCMTM2MDVCNDg1QTQ4QzdGQzAwMDYxMzQwNUE1QTAwMTAxMzgwRUEzRkZGNUFCNUZDMTIxRTdFOUQxNz5JPEVBMDNGMAotRUEwQzFDRUExMDBFRUEyMDBGMDA3ODEzODAxMzA3QTJFQTM4MEYxMjAwMTQwMEEyMTMxRTEzMUMxMzcwRUEwN0YwRUEwMDNDCi0xMzBFMTMwRkVCMDc4MEEyMTRDMDEyMjAxMkY4QTMwMEYwMTM4MDEyNDBFQjBGMDBFQTIwMEVFQTE4M0NFQTA3RjAxMjFGN0UKLTlEMTc+STwxMzA2QTIxMzBFQTIxMzFFMTMyRUEyMTM0RTEzOEVBMkVBMDEwRTEyMDJBMjEyMDQxMjA4QTIxMjEwMTIyMEEyCi0xMjQwMTJDMEI1MTJGMDM4MDAwRTAwQTdFQkZGRTAxNDFFN0Y5RDE3Pkk8RUExODAzRUExRkZFNUI1QjEzRTAwMDEwQzdGQwotQTZFQTExRjBFQTE2MUNFQTE4MEVFQTEwMDcxNDgwRUEwMDAzQTIxNEMwQTMxMjcwMTJGMEEyMDBFMDEzODAxMjQwRUIwNzAwCi1FQTIwMDY2QzVBRUEwODM4RUEwN0UwMTIxRjdFOUQxNz5JPDEzN0NFQTAxODJFQTA3MDEzODBFMDM4MEVBMEMwNzEyMTgzOAotMzgwMzAwOTBDN0ZDMTI3ODEyNzBBMkVBRjFGMEVBRjIxQ0VBRjQwNkVBRjgwN0VCMDM4MEEyMDBGMDEzQzBBNTEyNzBBMjE0Ci04MDEyMzhFQjA3MDAxMjE4RUEwQzBFNkM1QUVBMDFGMDEyMUY3RTlEMTc+STwxMjQwMzg3RkZGRTAxNEMwQTIzODQwMDA4MAotMzg4MDAxMDBBMjEzMDI0ODVBQTI1QjVCQTI1QkEyMTM2MEEyMTNFMDVCMTIwMUE0MTIwM0E3NkM1QTEzMUY3RTlEMTc+STwKLUVBMDNGMEVBMEMwQ0VBMTAwNkVBMzAwMzM4MjAwMTgwMTI2MEEzMTI3MDM4NzgwMzAwMTIzRUVBM0YwNkVBMUZDOEVBMEZGMAotRUEwM0Y4NDg3RUVBMEM3RUVBMTAzRjM4MzAwRjgwRUE2MDA3RUIwMUMwMTJDMDEzMDBBMzE0ODBFQTYwMDEwMDIwMTMwMEVBCi0xMDAyRUEwQzBDRUEwM0YwMTIxRjdFOUQxNz5JPEVBMDNGMEVBMEUxODQ4N0U0ODdFMTMwNzEyNzBFQjAzODAxMkYwQTIxNAotQzBBNUVBNzAwN0EyMTIzOEVBMTgwQkVBMEUxM0VBMDNFMzM4MDAwMzgwQTNFQjA3MDAxMjMwRUE3ODA2MTMwRUVBNzAwQ0VBCi0yMDE4RUExMDcwRUEwRkMwMTIxRjdFOUQxNz5JPDEyNzAxMkY4QTMxMjcwMTIwMEFBMTI3MDEyRjhBMzEyNzAwNTE0N0M5MwotMEQ+STwxMjcwMTJGOEEzMTI3MDEyMDBBQTEyNzAxMkYwMTJGOEEyMTI3ODEyMDhBMzEyMTBBMzEyMjBBMjEyNDAwNTFEN0MKLTkzMEQ+STw1QjQ5N0VBMzQ5N0VBM0VCMDlFMEEzRUIxMEYwQTNFQjIwNzhBMzQ5N0VBMkVCQzAzRUVCODAxRUEyNDhCNUZDCi1FQjAwMEZBMjAwMDJFQjA3ODBBMzQ4RUIwM0MwQTIxMjBDMDAxRTE0RTAzOUZGODAxRkZFMUYyMDdGOUYyMj42NQotRDxCNTEyRTAzODBGMDA3ODE0MUVBMjgwMTU4MEE1MTUwMDVDMTQxRTE0N0NFQkZGRjBFQjAwN0MxNDFGRUMwRjgwRUMwN0MwCi0xNDAzMTVFMEE1MTVDMDE0MDcxNTgwRUMwRjAwMTQzRUI1MTJGMDFCMUY3RTlFMjA+STw5MDM4MEZFMDEwOTAzODM4MUMzMAotOTAzOEUwMDI3MDM4MDNDMDAxMzkwNzgwMDBGMDQ4QzcxMjcwMTIxRTE1MzA1QTE1MTAxMjdDMTI3ODAwRjgxNDAwQTkxMjc4Ci0wMDdDMTQxMDEyM0NBMjZDMTQyMEEyN0U2QzZDMTM0MDZDNkMxMzgwMzkwMEUwMDMwMEVCMzgwQ0VCMEZGMDFDMjE3RTlGMjEKLT5JPEI1MTJGODM4MDc4MDFFRUMwNzgwRUMwM0MwRUMwMUUwRUMwMEYwMTU3MDE1NzhBMjE1M0NBMzE1M0VBODE1M0NBMjE1Ci03QzE1NzhBMjE1RjBFQzAxRTBFQzAzQzBFQzA3ODBFQzFFMDBCNTEyRjgxRjFGN0Y5RTIzPkk8QjYxMjgwMzgwRjAwMEYxNAotMDMxNDAxMTQwMDE1QzAxNTQwQTMxNDQwMTUwMEEyMTRDMDEzMDExM0ZGMTMwMTEzMDAxNDQwQTNFQzAwMjBBMzE1NDBBMzE1Ci1DMDE0MDFFQzAzODAxNDBGQjZGQzFCMUY3RTlFMUY+STxCNjEyODAzODA3ODAwNzE0MDFBMjE0MDAxNUMwMTU0MEE0RUMyMAotMDBBMzE0NjAxNEUwMTNGRjEzODAxNDYwMTQyMEEzOTFDN0ZDQTg3RkVBRkZGRTFBMUY3RjlFMUU+STw5MDM4MEZFMDIwOTAKLTM4NzgxODYwOTAzOEUwMDRFMDM4MDM4MDAyMzgwNzAwMDE0ODEzMDAwMDFFMTQ2MEEyNUExNTIwMTI3QzEyNzgwMEY4MTQwMAotQTdFQzdGRkNFQzAzRTAwMDc4MTMwMTEyN0MxMjNDQTI3RUEyN0U3RTM4MDM4MDAyMzkwMEUwMDQ2MDkwMzg3ODE4MjA5MDM4Ci0wRkUwMDAxRTIxN0Q5RjI0Pkk8MzlGRkYwN0ZGODM5MEYwMDA3ODBBRDkwQjVGQ0VCMDAwN0FGMzlGRkYwN0ZGODFEMUY3RQotOUUyMj5JPEVBRkZGMEVBMEYwMEIzQUJFQUZGRjAwQzFGN0U5RTEwPkk8RUFGRkY4RUEwRjgwOTBDN0ZDQjIxNDAyQTQxNDA2Ci0xNDA0QTIxNDBDMTQxQzE0N0NCNTEyRkMxNzFGN0U5RTFDPjc2IEQ8QjQ2Q0VCMDdGRTAwMDcxNUMwQTJEODA1QzAxMzBCQTIKLUQ4MDRFMDEzMTNBMzAxNzAxMzIzQTI2RDEzNDNBMzZEMTM4M0EyOTAzODBFMDEwM0EzRUIwNzAyQTNFQjAzODRBMkVCMDFDOAotQTNFQjAwRjBBMjE0NjAxMjFGRDhGRkUwRUI3RkZFMjcxRjdGOUUyQT5JPEI0RUIwRkY4MzkwRjgwMDNFMEVDMDA4MEVBMEIKLUMwRUEwOUUwQTJFQTA4RjAxMzc4QTI3RjdGQTI3RkVCMDc4MEEyRUIwM0MwRUIwMUUwQTJFQjAwRjAxNDc4QTIxNDNDMTQxRQotQTIxNDBGMTQwN0EyMTQwMzE0MDExMjNFMzhGRjgwMDAxRDFGN0U5RTIyPkk8RUIxRkUwRUI3MDM4MzgwMUMwMEU0ODQ4N0UKLTM5MDcwMDAzODA0ODE0QzAwMDFFRUIwMUUwNDhFQjAwRjBBMjAwN0MxNEY4QTIwMDc4MTQ3ODAwRjgxNDdDQTkwMDc4MTQ3OAotMDA3QzE0RjhBMjAwM0MxNEYwMDAzRTEzMDEwMDFFMTRFMDZDRUIwM0MwNkMxNDgwMzkwMzgwMDcwMDM4MDFFMDFFMzgwMDcwCi0zOEVCMUZFMDFFMjE3RTlGMjM+STxCNTEyRTAzODBGMDA3QzE0MUU4MEVDMDc4MEEyMTVDMEE0MTU4MEEyRUMwRjAwMTQxRQotMTQ3Q0VCRkZFMDkwQzhGQ0FFRUFGRkYwMUExRjdFOUUxRj5JPEVCMUZFMEVCNzAzODM4MDFDMDBFNDg0ODdFMzkwNzAwMDMKLTgwNDgxNEMwMDAxRUVCMDFFMDAwM0UxNEYwMDAzQzEzMDAwMDdDMTRGOEEyMDA3ODE0NzgwMEY4MTQ3Q0E5MDA3ODE0NzgwMAotN0MxNEY4QTIwMDNDMTRGMDM4M0UwNzgxMzkxRTA4NDFFMDM5MEYxMDIzQzAwMDA3MTQ4MDM5MDM5MDE3MDAzODAxRDAxRTM5Ci0wMDc4MzgwNEVCMUZGOEVCMDAxQ0VDMEMwQ0VDMEUxQ0VDMEZGOEEyMTQwNzE1RjBFQzAxRTAxRTI5N0U5RjIzPkk8QjUxMgotRTAzODBGODA3ODAwMDcxMzFFODBFQzA3ODBBMjE1QzBBNDE1ODBBMkVDMEYwMDE0MUUxNDc4RUJGRkUwRUI4MDYwMTQzODE0Ci0zQzE0MUMxNDFFQTMxNDFGQTMxNTAxMTU4MTE0MEYzOTBGQzAwNzgyMzlGRkZDMDNDNEM4MTJGODIwMjA3RjlFMjI+STwzOAotMDNGMDQwMzgwQzBDQzBFQTE4MDNFQTMwMDFFQTYwMDBBMjEyRTAxNDQwQTM2QzEzMDA3RTEyN0NFQTdGODBFQTNGRjg2Q0I0Ci1GQzAwMDcxMzgwQzYxM0MwRUIxRkUwMTMwMzEzMDFFQjAwRjAxNDcwN0VBNDZDMTM2MDE0RTA2QzEzQzAzOEY4MDE4MDM4QzYKLTAzMDBFQTgxRkMxNDIxN0U5RjE5Pkk8MDA3RkI1MTJFMDM4NzgwRjAxMDA2MEVCMDA2MDAwNDAxNDIwQTIwMEMwMTQzMDAwCi04MDE0MTBBNDAwMDAxNDAwQjM0OTdFMzgwM0ZGRkMxQzFGN0U5RTIxPkk8MzlGRkYwMEZGODM5MEYwMDAzRTBFQzAwODBCMwotQTQ2Q0VCMDEwMDEzODAxMjAzMTQwMjZDNkM1QTZDNkM1QUVCMzgzMEVCMEZDMDFEMjA3RTlFMjI+STwzOUZGRjAwM0ZFMzkKLTFGODAwMEY4NkNDNzEyNjAxNTIwNkM2QzEzNDBBMzZDNkMxMzgwQTJFQkUwMDEwMDAxMTQwMEEyMzgwMEYwMDJBMjEzRjhFQgotNzgwNEEyNkQ1QUEzNkQ1QUEyMTMxRjZENUFBMkVCMDdDMEEzNkQ1QUEzNkRDN0ZDMUYyMDdGOUUyMj5JPDNCRkZGMDdGRjgKLTFGRjAzQjFGMDAwRkMwMDdDMDZDOTAzOTA3ODAwMTgwMTcwMDE1QzAwMTgwNUMwMDA3MTUwMkVDMDlFMDEzQzAwMDAzNURFQwotMTlGMDE0MTBEODAxRTA1Q0EyRUMyMDc4RDgwMEYwNUNBMkVDNDAzQzAxNzg1Q0EyRUM4MDFFMDE3QzE0NjAwMTNDMTQ0MDkwCi0zODNEMDAwRjEzM0Y2RDVDQTIwMTFFMTMwNzAxMEU5MUM3RkNBMjAxMEM3RjAxMDQxMzAyMkMyMDdGOUUyRj5JPDEyRkZBMgotMTJDMEIzQjNBNTEyRkZBMjA4MkQ3Q0ExMEQ+OTEgRDxFQTA4MDRFQTEwMDhFQTIwMTBBMkVBNDAyMEEyRUE4MDQwQTNFQUI4Ci01Q0VBRkM3RUEyRUE3QzNFRUEzODFDMEYwRTdBOUYxNz5JPDEyRkZBMjEyMDNCM0IzQTUxMkZGQTIwODJEODBBMTBEPkk8MTIKLTA4MTIxMDEyMjBBMjEyNDBBMjEyODBBMzEyQjgxMkZDQTIxMjdDMTIzODA2MEU3RDlGMEQ+OTYKLUQ8RUExRkUwRUEzMDMwRUE3ODE4MTMxQ0VBMzAwRTEyMDBBMzEzRkVFQTBGOEVFQTFFMEUxMjM4MTI3ODAwRjAxMzEwQTMxMwotMUUxMjc4MzgzODY3MjAzODBGODNDMDE0MTQ3RTkzMTc+STwxMjFDMTJGQzEyMUNBQTEzN0NFQTFEODczODFFMDE4MEVCMDAKLUMwMDAxQzEzRTAxNDcwQTIxNDc4QTYxNDcwMTRGMDE0RTAwMDFFMTNDMDM4MUEwMTgwMzgxOTg3MDBFQTEwN0MxNTIwN0U5RgotMTk+STxFQTAxRkNFQTA3MDZFQTFDMEYxMjM4MTMwNjAwNzhDN0ZDMTI3MDEyRjBBNjEyNzAxMjc4MDAzODEzODBBMjM4MUMKLTAxMDBFQTA3MDZFQTAxRjgxMTE0N0Y5MzE0Pkk8RUIwMUMwMTMwRjEzMDFBQUVBMDFGMUVBMDcwREVBMEMwM0VBMTgwMTEyCi0zODEyNzgxMjcwMTJGMEE2MTI3MEEyMTIzOEVBMTgwMzEyMENFQTA3MEQzODAxRjFGODE1MjA3RjlGMTk+STxFQTAzRjBFQQotMEUxQzQ4N0U0ODdFQTIzODcwMDM4MEEyMTJGMEI1RkMwMEYwQzdGQ0E0MTI3MEEyNkMxMzgwQTIzODFDMDEwMEVBMDcwNkVBCi0wMUY4MTExNDdGOTMxND5JPDEzN0NFQTAxQzZFQTAzMEYxMjA3RUEwRTA2MTMwMEE3RUFGRkYwRUEwRTAwQjJFQTdGRTAxMAotMjA4MDlGMEU+STwxNEUwMzgwM0UzMzBFQTBFM0NFQTFDMUMzODM4MEUwMEVBNzgwRkE1RUEzODBFNkM1QUVBMUUzOEVBMzMKLUUwMDAyMEM3RkNBMjEyMzBBMkVBM0ZGRTM4MUZGRjgwMTRDMDM4MzAwMUUwMzg2MDAwNzA0ODEzMzBBNDAwNjAxMzYwNkMxMwotQzAzODFDMDM4MDM4MDNGQzAwMTQxRjdGOTQxNz5JPDEyMUMxMkZDMTIxQ0FBMTM3QzEzODZFQTFEMDMwMDFFMTM4MEEyMTIKLTFDQUUzOEZGOEZGMDE0MjA3RTlGMTk+STwxMjM4MTI3Q0EzMTIzOEM3RkNBNjEyMUMxMkZDMTIxQ0IxRUFGRjgwMDkxRjdGCi05RTBDPkk8MTNFMEVBMDFGMEEzRUEwMEUwMTMwMEE2MTM3MEVBMDdGMDEyMDAxMzcwQjNBMzEyNjBFQUYwNjAxM0MwRUE2MQotODBFQTNGMDAwQzI4ODI5RTBFPkk8MTIxQzEyRkMxMjFDQUFFQjFGRTBFQjA3ODBFQjA2MDAxMzA0NUI1QjVCMTM2MDEzRTAKLUVBMURGMEVBMUU3MEVBMUMzODEzM0MxMzFDN0YxMzBGN0YxNDgwMTRDMDM4RkY5RkYwMTQyMDdFOUYxOD5JPDEyMUMxMkZDCi0xMjFDQjNBQkVBRkY4MDA5MjA3RjlGMEM+STwzOTFDM0UwM0UwMzlGQ0MzMEMzMDM5MUQwMTkwMTgwMDFFRUJFMDFDQTIwMAotMUMxM0MwQUUzQUZGOEZGOEZGODAyMTE0N0U5MzI2Pkk8RUExQzdDRUFGQzg2RUExRDAzMDAxRTEzODBBMjEyMUNBRTM4RkYKLThGRjAxNDE0N0U5MzE5Pkk8RUEwMUY4RUEwNzBFMzgxQzAzODAzODM4MDFDMEEyMzg3MDAwRTBBMjAwRjAxM0YwQTYwMDcwCi0xM0UwQTIzODM4MDFDMEEyMzgxQzAzODAzODA3MEUwMEVBMDFGODE0MTQ3RjkzMTc+STxFQTFDN0NFQUZEODczODFFMDE4MAotMTRDMDM4MUMwMEUwMTRGMDE0NzAxNDc4QTYxNDcwMTRGMDE0RTAzODFFMDFDMEVCMDM4MDM4MUQ4NzAwRUExQzdDOTBDN0ZDCi1BOEI0N0UxNTFEN0U5MzE5Pkk8MzgwMUYwNDAzODA3MENDMEVBMEUwMkVBMUMwM0VBMzgwMTEyNzgxMjcwMTJGMEE2MTI3MAotMTI3ODEyMzhFQTFDMDNFQTBDMDVFQTA3MDlFQTAxRjFFQTAwMDFBOEVCMEZGODE1MUQ3RjkzMTg+STxFQTFDRjBFQUZEMTgKLUVBMUUzQ0EyMTMxOEVBMUMwMEFFRUFGRkMwMEUxNDdFOTMxMj5JPEVBMEZDOEVBMzAzOEVBNjAxOEVBQzAwOEEzRUFFMDAwCi0xMjdDRUEzRkUwRUExRkYwRUEwN0Y4RUEwMDNDRUE4MDBFMTMwNjEyQzBBMjEzMDRFQUUwMENFQUQ4MThFQTg3RTAwRjE0N0YKLTkzMTI+STwxMjAyQTMxMjA2QTIxMjBFQTIxMjNFRUFGRkY4RUEwRTAwQUIxMzA0QTVFQTA3MDgxMjAzRUEwMUYwMEUxQzdGCi05QjEyPkk8MzgxQzAzODBFQUZDMUZFQTFDMDNBRTEzMDcxMjBDRUEwNjFCMzgwM0UzRjAxNDE0N0U5MzE5Pkk8MzhGRjgzRjgKLTM4M0UwMEUwMDAxQzEzQzA2QzEzODBBMzM4MDcwMTAwQTIxMzgzRUEwMzgyQTJFQTAxQzRBMjEzRTRFQTAwRThBMjEzNzBBMwotMTMyMDE1MTQ3RjkzMTg+STwzOUZGOUZFMUZDMzkzQzA3ODA3MDM5MUMwMzAwNjBFQzgwMjAwMDBFMTQ0MEEyMTRDMEQ4MDcKLTA0MTM4MDE0RTBBMjM5MDM4ODYxMDAxNDcxQTIzODAxRDAzMjE0M0ExNDNFMzgwMEUwMUNBMkVCNjAxOEVCNDAwODFFMTQ3RgotOTMyMT5JPDM4RkY4N0Y4MzgxRTAzQzAzODBFMDE4MEVCMDMwMEVBMDcwMkVBMDM4NEVBMDFDODEzRDhFQTAwRjAxMzcwMTMKLTc4MTNGODEzOUNFQTAxMEUxMjAyRUEwNjA3MzgwNDAzODAwMDBDMTNDMDAwM0MxM0UwMzhGRTA3RkMxNjE0N0Y5MzE4Pkk8Ci0zOEZGODNGODM4M0UwMEUwMDAxQzEzQzA2QzEzODBBMzM4MDcwMTAwQTIxMzgzRUEwMzgyQTJFQTAxQzRBMjEzRTRFQTAwRTgKLUEyMTM3MEEzMTMyMEEyNUJBM0VBRjA4MEEyMDBGMUM3RkMxMjYyMTIzQzE1MUQ3RjkzMTg+STxFQTdGRkZFQTcwMEUxMjYwCi1FQTQwMUMxMzM4MTM3ODEzNzBFQTAwRTAxMjAxMTNDMEVBMDM4MDEyMDcxMzAxMTIwRTEyMUVFQTFDMDNFQTM4MDJFQTcwMDYKLTEzMEVFQUZGRkUxMDE0N0Y5MzE0PkkgRQotJUVuZERWSVBTQml0bWFwRm9udAotJURWSVBTQml0bWFwRm9udDogRnEgY21ieDEyIDIwLjczNiAxMwotL0ZxIDEzIDEyMiBkZjxEQjFGRkMxNEMwMDIwM0I1RUFDMDAxMDIxRkVDRjAwMzAyN0ZFQ0ZDMDc5MDNCMDFGRkZDMDBGRTBGCi0wMTA3MDFDMEVCMUY5RjQ5NDhDN0VBMDdGRkQ5M0ZGODgwNDk0ODE0MDA0OTQ4MTU3RjQ4NUI0QTE1M0Y0ODkwQzkxMjFGNDgKLTVBMDAwRjE3MEY1QjAwMUYxNzA3QTI0ODVBMTgwM0EyMTI3RkEyNDk5M0M4RkNBMjEyRkZBQTA0MUZCNjEyODAxMjdGQTI3RgotREMwMDAxRUJDMDAwMTIzRkEzNkM3RUEyNkM3RUEyNkM3RTdFNkM3RjgwNkM3RjZENkM1Q0VCM0ZGQ0Q5MEZGRjVDNkQwMUMwCi1FQjFGQkYwMTAxMDFGQ0VCRkYxRjZENkNCNUVBRkUwRjAyMUZFQ0Y4MDMwMjAzRUNFMDAwOTEyNjAwMUZGRUM5RkM0MTNEN0IKLUJCNEM+NzEgRDxCNkQ4RjgwM0I2MTJFMEE0MjYwMDdGRjBDNzAwMDFFQkMwMDBCM0E0OTFCOEZDQTQwMkYwQzcxMjAxQjNBNwotQjZEOEY4MDNCNjEyRTBBNDQzM0I3Q0JBNEM+STxCNjEyRkVBNDI2MDA3RkYwQzlGQ0IzQURFRjAzQzBBNTE3MDcxODgwQTMKLTE3MEZBMzE3MUZBMjE3M0YxNzdGMTdGRjVFMDQwNzEzMDAxNjNGQjlGQ0E0MzIzQjdEQkEzQT43NgotRDxCNTAwRjAwMjA3QjUxMkUwODA4MDgwRDgwMDdGOTIzOTAwMDdFMDAwNkU2RjVBODEwMTdCN0Y4MTEzNzkwMTc4N0Y2RTdFCi02RTdFODExNDFGNkU3RTZFN0Y2RTdGODI4MDZFN0Y2RjdFNkY3RTgyNkY3RTgxNkYxMzgwNkYxM0MwMTdFMDZGMTNGMDgxRUUKLTdGRjhFRTNGRkMxN0ZFRUUxRkZGODI3MDEzODM3MDEzQzMxOEUzNzAxM0YzODJFRjdGRkJFRjNGRkZBMjgzODM4MzgzQTI4MwotODMxODdGMTgzRkEyMDFGQzE2MUZCNTAwRkMxNTBGMTgwNzE4MDNBMjQzM0I3Q0JBNEM+NzgKLUQ8QjYwMEY4MDEwN0I1MTJFMEE0MjYwMDdGRjBDODM4MDdFMDAwNzI1QUIzQjNBMzAxM0Y0QzVBQTI4MDAxMUY0Q0M3RkNBMgotNkQ2QzE1MUUwMTA3MTYzRTZFNUQ2RDZDNUQ2RDZEMTMwMTkwMjYwMDdGRTBFQjBGRTBEQTNGRkNFQjdGQzAwMjBGQjY1QTAyCi0wMzRBQzhGQ0RBMDA3RjEzRjAwMzA3MTM4MDQzM0M3REJBNEE+ODUgRDxFQjNGRkU0OEI1MTJFMDAwMDcxNEY4MzkwRkUwMDcKLUZDOTAzOEYwMDFGRTQ4NkM2QzdFNkY3RTgyMTUzRjZDNDg4MDZDNUE2QzVBQzhGQ0E0OTFCNUZDMTMxRjkwMzg3RkY4M0YzOAotMDNGRjgwMzgwN0ZDMDBFQTBGRjA0ODVBMTIzRjQ4NUFBMjQ4NUFBNDE1N0Y2QzdFMTVERjNBM0ZFMDAzOUZGMDNCMUZGODBGCi0wRkZGRTAzODA3RkZGRTAwMDE0OTdFMzkwMDNGRTAwMDJCMjY3REE1MkY+OTcgRDwxM0ZFMTJGRkE0MTIwNzEyMDNCMDRBQjQKLUZDMDIxRjEzRjAwMjdGMTNGQzkxMzhGQzAzRkU5MDM5RkZGMDAwRkYwMkMwRUIzRjgwOTFDN0VBMUZDMDQ5MTVFMEVFMEZGMAotMTdGOEEyRUUwN0ZDQTMxN0ZFQTkxN0ZDQTMxNjBGMTdGODE3RjAxNjFGNkQxNUUwNkVFQjNGQzA2RUVCN0Y4MEQ5RjlFMEVCCi1GRjAwOTAzOUYwRkMwN0ZFOTEzODdGRkZGOEQ5RTAxRjEzRTA5MDI2QzAwM0ZFQzdGQzJGM0M3REJCMzY+STxFQTAxRTBFQQotMDdGODQ4N0VBMjQ4N0VBNDZDNUFBMjZDNUFFQTAxRTBDOEZDQUIxM0ZFMTI3RkE0MTIwNzEyMDNCM0FBQjUxMkYwQTQxNDNECi03REJDMUE+MTA1IEQ8OTAzODAxRkZDMDAxMEYxM0Y4MDE3RjEzRkZEOUZGODA3RjNBMDNGRTAwM0ZFMEQ4MDdGOEVCMEZGMAotNDg0ODZEN0VBMjQ4NDg2RDdFMDAzRjgxQTI0ODQ4NkQ3RUE0MDBGRjE2ODBBOTAwN0YxNjAwQTM2QzZDNDk1QUEyMDAxRjVECi02RDEzMDcwMDBGNUQ2QzZDNDk1QUQ4MDNGRUVCM0ZFMDNBMDBGRjgwRkY4MDZEQjVDN0ZDMDEwRjEzRjgwMTAxMTNDMDI5MjYKLTdEQTUzMD4xMTEgRDwzOTAxRkMwM0YwMDBGRkVCMEZGQzRBQjRGQzkxMzgzQzNGODBFQzcwN0YwMDA3OTAzOEUwRkZDMDAwCi0wMzVCRUJGRDgwQTIwMUZGRUI3RjgwOTEzODAwM0YwMDE1MUU5MkM3RkM1QkIzQTNCNTEyRkNBNDIyMjY3REE1Mjg+MTE0Ci1EPDkwMzgzRkYwMzgzOTAzRkZGRTc4NDhFQkZGRjgzODFGQzAwRjM4M0YwMDAzMDAzRTEzMDA1QTE1NzgxMkZDQTI3RTZDMTQKLTAwMTNDMDEzRkMzODdGRkZGMDZDMTNGRUVDRkY4MDZDMTRDMDZDMTRFMDAwMDMxNEYwQzYxNEY4MDExRjEzRkNFQjAwN0ZFQwotMDdGRTAwNzAxMzAxMDBGMDEzMDAxNTdFN0VBMjdFMTU3QzZDMTRGQzZDMTRGODkwMzg4MDAxRjA5MDM4RjAwRkUwMDBGOUI1Ci0xMkMwRDhGMDdGMTMwMDM4QzAxRkY4MUYyNjdEQTUyNj5JPDEzMEZBNTVCQTQ1QkEyNUJBMjVCNUE1QTVBMDAxRkVCRkZGMAotQjZGQ0EzMDAwMTkwQzdGQ0IzMTUzQ0E4NkMxNDc4MTQ4MDAxN0YxM0YwOTAzODNGQzFFMDkwMzgxRkZGQzA2RDEzODA5MDM4Ci0wMUZFMDAxRTM3N0VCNjI2Pkk8QjUwMEYwRUJGRkZDQTREODAzRkVDN0VBMUY4MDZEMTUwMDZDMTUxRTgwNkM1REEyNkUxMwotN0MwMTdGMTQ3ODZFMTNGODAxM0Y1Q0VDRjAwMTAxMUY1Q0VDRjgwMzAxMEY1Q0EyRUNGQzA3MDEwNzVDRUNGRTBGMDEwMzkxCi1DN0ZDNkU1QTZEMTMxRTE1QkU2RDEzQkMxNUZDNkU1QUEzNkU1QUEyNkU1QUEyNkU1QUEyNkU1QUEyMTQwRjkyQzhGQzVDMTQKLTFFMDAwODEzM0UwMDdGMTMzQzE0N0MzOEZGODA3ODE0RjhFQjgxRjBFQjgzRTA2QzQ4NUEzODdDMUY4MEQ4M0ZGRkM5RkNFQQotMUZGQ0VBMDdGMDJFMzc3RUE1MzM+MTIxIEQgRQotJUVuZERWSVBTQml0bWFwRm9udAorJSVCZWdpblByb2NTZXQ6IGY3YjZkMzIwLmVuYworJSBUaG9tYXMgRXNzZXIsIERlYyAyMDAyLiBwdWJsaWMgZG9tYWluCislCislIEVuY29kaW5nIGZvcjoKKyUgICAgIGNtYjEwIGNtYngxMCBjbWJ4MTIgY21ieDUgY21ieDYgY21ieDcgY21ieDggY21ieDkgY21ieHNsMTAKKyUgICAgIGNtZHVuaDEwIGNtcjEwIGNtcjEyIGNtcjE3Y21yNiBjbXI3IGNtcjggY21yOSBjbXNsMTAgY21zbDEyIGNtc2w4CislICAgICBjbXNsOSBjbXNzMTBjbXNzMTIgY21zczE3IGNtc3M4IGNtc3M5IGNtc3NieDEwIGNtc3NkYzEwIGNtc3NpMTAKKyUgICAgIGNtc3NpMTIgY21zc2kxNyBjbXNzaThjbXNzaTkgY21zc3E4IGNtc3NxaTggY212dHQxMAorJQorL1RlWGY3YjZkMzIwRW5jb2RpbmcgWworL0dhbW1hIC9EZWx0YSAvVGhldGEgL0xhbWJkYSAvWGkgL1BpIC9TaWdtYSAvVXBzaWxvbiAvUGhpIC9Qc2kgL09tZWdhCisvZmYgL2ZpIC9mbCAvZmZpIC9mZmwgL2RvdGxlc3NpIC9kb3RsZXNzaiAvZ3JhdmUgL2FjdXRlIC9jYXJvbiAvYnJldmUKKy9tYWNyb24gL3JpbmcgL2NlZGlsbGEgL2dlcm1hbmRibHMgL2FlIC9vZSAvb3NsYXNoIC9BRSAvT0UgL09zbGFzaAorL3N1cHByZXNzIC9leGNsYW0gL3F1b3RlZGJscmlnaHQgL251bWJlcnNpZ24gL2RvbGxhciAvcGVyY2VudCAvYW1wZXJzYW5kCisvcXVvdGVyaWdodCAvcGFyZW5sZWZ0IC9wYXJlbnJpZ2h0IC9hc3RlcmlzayAvcGx1cyAvY29tbWEgL2h5cGhlbgorL3BlcmlvZCAvc2xhc2ggL3plcm8gL29uZSAvdHdvIC90aHJlZSAvZm91ciAvZml2ZSAvc2l4IC9zZXZlbiAvZWlnaHQKKy9uaW5lIC9jb2xvbiAvc2VtaWNvbG9uIC9leGNsYW1kb3duIC9lcXVhbCAvcXVlc3Rpb25kb3duIC9xdWVzdGlvbiAvYXQKKy9BIC9CIC9DIC9EIC9FIC9GIC9HIC9IIC9JIC9KIC9LIC9MIC9NIC9OIC9PIC9QIC9RIC9SIC9TIC9UIC9VIC9WIC9XIC9YCisvWSAvWiAvYnJhY2tldGxlZnQgL3F1b3RlZGJsbGVmdCAvYnJhY2tldHJpZ2h0IC9jaXJjdW1mbGV4IC9kb3RhY2NlbnQKKy9xdW90ZWxlZnQgL2EgL2IgL2MgL2QgL2UgL2YgL2cgL2ggL2kgL2ogL2sgL2wgL20gL24gL28gL3AgL3EgL3IgL3MgL3QgL3UKKy92IC93IC94IC95IC96IC9lbmRhc2ggL2VtZGFzaCAvaHVuZ2FydW1sYXV0IC90aWxkZSAvZGllcmVzaXMgL3N1cHByZXNzCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvc3BhY2UKKy9HYW1tYSAvRGVsdGEgL1RoZXRhIC9MYW1iZGEgL1hpIC9QaSAvU2lnbWEgL1Vwc2lsb24gL1BoaSAvUHNpIC8ubm90ZGVmCisvLm5vdGRlZiAvT21lZ2EgL2ZmIC9maSAvZmwgL2ZmaSAvZmZsIC9kb3RsZXNzaSAvZG90bGVzc2ogL2dyYXZlIC9hY3V0ZQorL2Nhcm9uIC9icmV2ZSAvbWFjcm9uIC9yaW5nIC9jZWRpbGxhIC9nZXJtYW5kYmxzIC9hZSAvb2UgL29zbGFzaCAvQUUKKy9PRSAvT3NsYXNoIC9zdXBwcmVzcyAvZGllcmVzaXMgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCitdIGRlZgorCislJUVuZFByb2NTZXQKKyUlQmVnaW5Qcm9jU2V0OiAwOWZiYmZhYy5lbmMKKyUgVGhvbWFzIEVzc2VyLCBEZWMgMjAwMi4gcHVibGljIGRvbWFpbgorJQorJSBFbmNvZGluZyBmb3I6CislICAgICBjbXNsdHQxMCBjbXR0MTAgY210dDEyIGNtdHQ4IGNtdHQ5CisvVGVYMDlmYmJmYWNFbmNvZGluZyBbCisvR2FtbWEgL0RlbHRhIC9UaGV0YSAvTGFtYmRhIC9YaSAvUGkgL1NpZ21hIC9VcHNpbG9uIC9QaGkgL1BzaQorL09tZWdhIC9hcnJvd3VwIC9hcnJvd2Rvd24gL3F1b3Rlc2luZ2xlIC9leGNsYW1kb3duIC9xdWVzdGlvbmRvd24KKy9kb3RsZXNzaSAvZG90bGVzc2ogL2dyYXZlIC9hY3V0ZSAvY2Fyb24gL2JyZXZlIC9tYWNyb24gL3JpbmcgL2NlZGlsbGEKKy9nZXJtYW5kYmxzIC9hZSAvb2UgL29zbGFzaCAvQUUgL09FIC9Pc2xhc2ggL3Zpc2libGVzcGFjZSAvZXhjbGFtCisvcXVvdGVkYmwgL251bWJlcnNpZ24gL2RvbGxhciAvcGVyY2VudCAvYW1wZXJzYW5kIC9xdW90ZXJpZ2h0IC9wYXJlbmxlZnQKKy9wYXJlbnJpZ2h0IC9hc3RlcmlzayAvcGx1cyAvY29tbWEgL2h5cGhlbiAvcGVyaW9kIC9zbGFzaCAvemVybyAvb25lCisvdHdvIC90aHJlZSAvZm91ciAvZml2ZSAvc2l4IC9zZXZlbiAvZWlnaHQgL25pbmUgL2NvbG9uIC9zZW1pY29sb24gL2xlc3MKKy9lcXVhbCAvZ3JlYXRlciAvcXVlc3Rpb24gL2F0IC9BIC9CIC9DIC9EIC9FIC9GIC9HIC9IIC9JIC9KIC9LIC9MIC9NIC9OCisvTyAvUCAvUSAvUiAvUyAvVCAvVSAvViAvVyAvWCAvWSAvWiAvYnJhY2tldGxlZnQgL2JhY2tzbGFzaCAvYnJhY2tldHJpZ2h0CisvYXNjaWljaXJjdW0gL3VuZGVyc2NvcmUgL3F1b3RlbGVmdCAvYSAvYiAvYyAvZCAvZSAvZiAvZyAvaCAvaSAvaiAvayAvbAorL20gL24gL28gL3AgL3EgL3IgL3MgL3QgL3UgL3YgL3cgL3ggL3kgL3ogL2JyYWNlbGVmdCAvYmFyIC9icmFjZXJpZ2h0CisvYXNjaWl0aWxkZSAvZGllcmVzaXMgL3Zpc2libGVzcGFjZSAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgL3NwYWNlIC9HYW1tYSAvRGVsdGEgL1RoZXRhIC9MYW1iZGEgL1hpIC9QaQorL1NpZ21hIC9VcHNpbG9uIC9QaGkgL1BzaSAvLm5vdGRlZiAvLm5vdGRlZiAvT21lZ2EgL2Fycm93dXAgL2Fycm93ZG93bgorL3F1b3Rlc2luZ2xlIC9leGNsYW1kb3duIC9xdWVzdGlvbmRvd24gL2RvdGxlc3NpIC9kb3RsZXNzaiAvZ3JhdmUgL2FjdXRlCisvY2Fyb24gL2JyZXZlIC9tYWNyb24gL3JpbmcgL2NlZGlsbGEgL2dlcm1hbmRibHMgL2FlIC9vZSAvb3NsYXNoIC9BRQorL09FIC9Pc2xhc2ggL3Zpc2libGVzcGFjZSAvZGllcmVzaXMgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCitdIGRlZgorCislJUVuZFByb2NTZXQKKyUlQmVnaW5Qcm9jU2V0OiBiYmFkMTUzZi5lbmMKKyUgVGhvbWFzIEVzc2VyLCBEZWMgMjAwMi4gcHVibGljIGRvbWFpbgorJQorJSBFbmNvZGluZyBmb3I6CislICAgICBjbXN5MTAgY21zeTUgY21zeTYgY21zeTcgY21zeTggY21zeTkKKyUKKy9UZVhiYmFkMTUzZkVuY29kaW5nIFsKKy9taW51cyAvcGVyaW9kY2VudGVyZWQgL211bHRpcGx5IC9hc3Rlcmlza21hdGggL2RpdmlkZSAvZGlhbW9uZG1hdGgKKy9wbHVzbWludXMgL21pbnVzcGx1cyAvY2lyY2xlcGx1cyAvY2lyY2xlbWludXMgL2NpcmNsZW11bHRpcGx5CisvY2lyY2xlZGl2aWRlIC9jaXJjbGVkb3QgL2NpcmNsZWNvcHlydCAvb3BlbmJ1bGxldCAvYnVsbGV0CisvZXF1aXZhc3ltcHRvdGljIC9lcXVpdmFsZW5jZSAvcmVmbGV4c3Vic2V0IC9yZWZsZXhzdXBlcnNldCAvbGVzc2VxdWFsCisvZ3JlYXRlcmVxdWFsIC9wcmVjZWRlc2VxdWFsIC9mb2xsb3dzZXF1YWwgL3NpbWlsYXIgL2FwcHJveGVxdWFsCisvcHJvcGVyc3Vic2V0IC9wcm9wZXJzdXBlcnNldCAvbGVzc211Y2ggL2dyZWF0ZXJtdWNoIC9wcmVjZWRlcyAvZm9sbG93cworL2Fycm93bGVmdCAvYXJyb3dyaWdodCAvYXJyb3d1cCAvYXJyb3dkb3duIC9hcnJvd2JvdGggL2Fycm93bm9ydGhlYXN0CisvYXJyb3dzb3V0aGVhc3QgL3NpbWlsYXJlcXVhbCAvYXJyb3dkYmxsZWZ0IC9hcnJvd2RibHJpZ2h0IC9hcnJvd2RibHVwCisvYXJyb3dkYmxkb3duIC9hcnJvd2RibGJvdGggL2Fycm93bm9ydGh3ZXN0IC9hcnJvd3NvdXRod2VzdCAvcHJvcG9ydGlvbmFsCisvcHJpbWUgL2luZmluaXR5IC9lbGVtZW50IC9vd25lciAvdHJpYW5nbGUgL3RyaWFuZ2xlaW52IC9uZWdhdGlvbnNsYXNoCisvbWFwc3RvIC91bml2ZXJzYWwgL2V4aXN0ZW50aWFsIC9sb2dpY2Fsbm90IC9lbXB0eXNldCAvUmZyYWN0dXIgL0lmcmFjdHVyCisvbGF0dGljZXRvcCAvcGVycGVuZGljdWxhciAvYWxlcGggL0EgL0IgL0MgL0QgL0UgL0YgL0cgL0ggL0kgL0ogL0sKKy9MIC9NIC9OIC9PIC9QIC9RIC9SIC9TIC9UIC9VIC9WIC9XIC9YIC9ZIC9aIC91bmlvbiAvaW50ZXJzZWN0aW9uCisvdW5pb25tdWx0aSAvbG9naWNhbGFuZCAvbG9naWNhbG9yIC90dXJuc3RpbGVsZWZ0IC90dXJuc3RpbGVyaWdodAorL2Zsb29ybGVmdCAvZmxvb3JyaWdodCAvY2VpbGluZ2xlZnQgL2NlaWxpbmdyaWdodCAvYnJhY2VsZWZ0IC9icmFjZXJpZ2h0CisvYW5nYnJhY2tldGxlZnQgL2FuZ2JyYWNrZXRyaWdodCAvYmFyIC9iYXJkYmwgL2Fycm93Ym90aHYgL2Fycm93ZGJsYm90aHYKKy9iYWNrc2xhc2ggL3dyZWF0aHByb2R1Y3QgL3JhZGljYWwgL2NvcHJvZHVjdCAvbmFibGEgL2ludGVncmFsCisvdW5pb25zcSAvaW50ZXJzZWN0aW9uc3EgL3N1YnNldHNxZXF1YWwgL3N1cGVyc2V0c3FlcXVhbCAvc2VjdGlvbgorL2RhZ2dlciAvZGFnZ2VyZGJsIC9wYXJhZ3JhcGggL2NsdWIgL2RpYW1vbmQgL2hlYXJ0IC9zcGFkZSAvYXJyb3dsZWZ0CisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorL21pbnVzIC9wZXJpb2RjZW50ZXJlZCAvbXVsdGlwbHkgL2FzdGVyaXNrbWF0aCAvZGl2aWRlIC9kaWFtb25kbWF0aAorL3BsdXNtaW51cyAvbWludXNwbHVzIC9jaXJjbGVwbHVzIC9jaXJjbGVtaW51cyAvLm5vdGRlZiAvLm5vdGRlZgorL2NpcmNsZW11bHRpcGx5IC9jaXJjbGVkaXZpZGUgL2NpcmNsZWRvdCAvY2lyY2xlY29weXJ0IC9vcGVuYnVsbGV0CisvYnVsbGV0IC9lcXVpdmFzeW1wdG90aWMgL2VxdWl2YWxlbmNlIC9yZWZsZXhzdWJzZXQgL3JlZmxleHN1cGVyc2V0CisvbGVzc2VxdWFsIC9ncmVhdGVyZXF1YWwgL3ByZWNlZGVzZXF1YWwgL2ZvbGxvd3NlcXVhbCAvc2ltaWxhcgorL2FwcHJveGVxdWFsIC9wcm9wZXJzdWJzZXQgL3Byb3BlcnN1cGVyc2V0IC9sZXNzbXVjaCAvZ3JlYXRlcm11Y2gKKy9wcmVjZWRlcyAvZm9sbG93cyAvYXJyb3dsZWZ0IC9zcGFkZSAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKK10gZGVmCisKKyUlRW5kUHJvY1NldAorJSVCZWdpblByb2NTZXQ6IDc0YWZjNzRjLmVuYworJSBUaG9tYXMgRXNzZXIsIERlYyAyMDAyLiBwdWJsaWMgZG9tYWluCislCislIEVuY29kaW5nIGZvcjoKKyUgICAgIGNtYnh0aTEwIGNtZmYxMCBjbWZpMTAgY21maWI4IGNtdGkxMCBjbXRpMTIgY210aTcgY210aThjbXRpOSBjbXUxMAorJQorL1RlWDc0YWZjNzRjRW5jb2RpbmcgWworL0dhbW1hIC9EZWx0YSAvVGhldGEgL0xhbWJkYSAvWGkgL1BpIC9TaWdtYSAvVXBzaWxvbiAvUGhpIC9Qc2kgL09tZWdhCisvZmYgL2ZpIC9mbCAvZmZpIC9mZmwgL2RvdGxlc3NpIC9kb3RsZXNzaiAvZ3JhdmUgL2FjdXRlIC9jYXJvbiAvYnJldmUKKy9tYWNyb24gL3JpbmcgL2NlZGlsbGEgL2dlcm1hbmRibHMgL2FlIC9vZSAvb3NsYXNoIC9BRSAvT0UgL09zbGFzaAorL3N1cHByZXNzIC9leGNsYW0gL3F1b3RlZGJscmlnaHQgL251bWJlcnNpZ24gL3N0ZXJsaW5nIC9wZXJjZW50CisvYW1wZXJzYW5kIC9xdW90ZXJpZ2h0IC9wYXJlbmxlZnQgL3BhcmVucmlnaHQgL2FzdGVyaXNrIC9wbHVzIC9jb21tYQorL2h5cGhlbiAvcGVyaW9kIC9zbGFzaCAvemVybyAvb25lIC90d28gL3RocmVlIC9mb3VyIC9maXZlIC9zaXggL3NldmVuCisvZWlnaHQgL25pbmUgL2NvbG9uIC9zZW1pY29sb24gL2V4Y2xhbWRvd24gL2VxdWFsIC9xdWVzdGlvbmRvd24gL3F1ZXN0aW9uCisvYXQgL0EgL0IgL0MgL0QgL0UgL0YgL0cgL0ggL0kgL0ogL0sgL0wgL00gL04gL08gL1AgL1EgL1IgL1MgL1QgL1UgL1YgL1cKKy9YIC9ZIC9aIC9icmFja2V0bGVmdCAvcXVvdGVkYmxsZWZ0IC9icmFja2V0cmlnaHQgL2NpcmN1bWZsZXggL2RvdGFjY2VudAorL3F1b3RlbGVmdCAvYSAvYiAvYyAvZCAvZSAvZiAvZyAvaCAvaSAvaiAvayAvbCAvbSAvbiAvbyAvcCAvcSAvciAvcyAvdCAvdQorL3YgL3cgL3ggL3kgL3ogL2VuZGFzaCAvZW1kYXNoIC9odW5nYXJ1bWxhdXQgL3RpbGRlIC9kaWVyZXNpcyAvc3VwcHJlc3MKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC9zcGFjZQorL0dhbW1hIC9EZWx0YSAvVGhldGEgL0xhbWJkYSAvWGkgL1BpIC9TaWdtYSAvVXBzaWxvbiAvUGhpIC9Qc2kgLy5ub3RkZWYKKy8ubm90ZGVmIC9PbWVnYSAvZmYgL2ZpIC9mbCAvZmZpIC9mZmwgL2RvdGxlc3NpIC9kb3RsZXNzaiAvZ3JhdmUgL2FjdXRlCisvY2Fyb24gL2JyZXZlIC9tYWNyb24gL3JpbmcgL2NlZGlsbGEgL2dlcm1hbmRibHMgL2FlIC9vZSAvb3NsYXNoIC9BRQorL09FIC9Pc2xhc2ggL3N1cHByZXNzIC9kaWVyZXNpcyAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKK10gZGVmCisKKyUlRW5kUHJvY1NldAorJSVCZWdpblByb2NTZXQ6IDBlZjBhZmNhLmVuYworJSBUaG9tYXMgRXNzZXIsIERlYyAyMDAyLiBwdWJsaWMgZG9tYWluCislCislIEVuY29kaW5nIGZvcjoKKyUgICAgIGNtcjUKKyUKKy9UZVgwZWYwYWZjYUVuY29kaW5nIFsKKy9HYW1tYSAvRGVsdGEgL1RoZXRhIC9MYW1iZGEgL1hpIC9QaSAvU2lnbWEgL1Vwc2lsb24gL1BoaSAvUHNpIC9PbWVnYQorL2Fycm93dXAgL2Fycm93ZG93biAvcXVvdGVzaW5nbGUgL2V4Y2xhbWRvd24gL3F1ZXN0aW9uZG93biAvZG90bGVzc2kKKy9kb3RsZXNzaiAvZ3JhdmUgL2FjdXRlIC9jYXJvbiAvYnJldmUgL21hY3JvbiAvcmluZyAvY2VkaWxsYSAvZ2VybWFuZGJscworL2FlIC9vZSAvb3NsYXNoIC9BRSAvT0UgL09zbGFzaCAvc3VwcHJlc3MgL2V4Y2xhbSAvcXVvdGVkYmxyaWdodAorL251bWJlcnNpZ24gL2RvbGxhciAvcGVyY2VudCAvYW1wZXJzYW5kIC9xdW90ZXJpZ2h0IC9wYXJlbmxlZnQKKy9wYXJlbnJpZ2h0IC9hc3RlcmlzayAvcGx1cyAvY29tbWEgL2h5cGhlbiAvcGVyaW9kIC9zbGFzaCAvemVybyAvb25lCisvdHdvIC90aHJlZSAvZm91ciAvZml2ZSAvc2l4IC9zZXZlbiAvZWlnaHQgL25pbmUgL2NvbG9uIC9zZW1pY29sb24KKy9sZXNzIC9lcXVhbCAvZ3JlYXRlciAvcXVlc3Rpb24gL2F0IC9BIC9CIC9DIC9EIC9FIC9GIC9HIC9IIC9JIC9KIC9LCisvTCAvTSAvTiAvTyAvUCAvUSAvUiAvUyAvVCAvVSAvViAvVyAvWCAvWSAvWiAvYnJhY2tldGxlZnQgL3F1b3RlZGJsbGVmdAorL2JyYWNrZXRyaWdodCAvY2lyY3VtZmxleCAvZG90YWNjZW50IC9xdW90ZWxlZnQgL2EgL2IgL2MgL2QgL2UgL2YgL2cgL2gKKy9pIC9qIC9rIC9sIC9tIC9uIC9vIC9wIC9xIC9yIC9zIC90IC91IC92IC93IC94IC95IC96IC9lbmRhc2ggL2VtZGFzaAorL2h1bmdhcnVtbGF1dCAvdGlsZGUgL2RpZXJlc2lzIC9zdXBwcmVzcyAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgL3NwYWNlIC9HYW1tYSAvRGVsdGEgL1RoZXRhIC9MYW1iZGEKKy9YaSAvUGkgL1NpZ21hIC9VcHNpbG9uIC9QaGkgL1BzaSAvLm5vdGRlZiAvLm5vdGRlZiAvT21lZ2EgL2Fycm93dXAKKy9hcnJvd2Rvd24gL3F1b3Rlc2luZ2xlIC9leGNsYW1kb3duIC9xdWVzdGlvbmRvd24gL2RvdGxlc3NpIC9kb3RsZXNzagorL2dyYXZlIC9hY3V0ZSAvY2Fyb24gL2JyZXZlIC9tYWNyb24gL3JpbmcgL2NlZGlsbGEgL2dlcm1hbmRibHMgL2FlIC9vZQorL29zbGFzaCAvQUUgL09FIC9Pc2xhc2ggL3N1cHByZXNzIC9kaWVyZXNpcyAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKK10gZGVmCisKKyUlRW5kUHJvY1NldAorJSVCZWdpblByb2NTZXQ6IHRleHBzLnBybworJSEKK1RlWERpY3QgYmVnaW4vcmZ7ZmluZGZvbnQgZHVwIGxlbmd0aCAxIGFkZCBkaWN0IGJlZ2luezEgaW5kZXgvRklEIG5lIDIKK2luZGV4L1VuaXF1ZUlEIG5lIGFuZHtkZWZ9e3BvcCBwb3B9aWZlbHNlfWZvcmFsbFsxIGluZGV4IDAgNiAtMSByb2xsCitleGVjIDAgZXhjaCA1IC0xIHJvbGwgVlJlc29sdXRpb24gUmVzb2x1dGlvbiBkaXYgbXVsIG5lZyAwIDBdRm9udFR5cGUgMAorbmV7L01ldHJpY3MgZXhjaCBkZWYgZGljdCBiZWdpbiBFbmNvZGluZ3tleGNoIGR1cCB0eXBlL2ludGVnZXJ0eXBlIG5leworcG9wIHBvcCAxIHN1YiBkdXAgMCBsZXtwb3B9e1t9aWZlbHNlfXtGb250TWF0cml4IDAgZ2V0IGRpdiBNZXRyaWNzIDAgZ2V0CitkaXYgZGVmfWlmZWxzZX1mb3JhbGwgTWV0cmljcy9NZXRyaWNzIGN1cnJlbnRkaWN0IGVuZCBkZWZ9e3sxIGluZGV4IHR5cGUKKy9uYW1ldHlwZSBlcXtleGl0fWlmIGV4Y2ggcG9wfWxvb3B9aWZlbHNlWzIgaW5kZXggY3VycmVudGRpY3QgZW5kCitkZWZpbmVmb250IDMgLTEgcm9sbCBtYWtlZm9udC9zZXRmb250IGN2eF1jdnggZGVmfWRlZi9PYmxpcXVlU2xhbnR7ZHVwCitzaW4gUyBjb3MgZGl2IG5lZ31CL1NsYW50Rm9udHs0IGluZGV4IG11bCBhZGR9ZGVmL0V4dGVuZEZvbnR7MyAtMSByb2xsCittdWwgZXhjaH1kZWYvUmVFbmNvZGVGb250e0NoYXJTdHJpbmdzIHJjaGVja3svRW5jb2RpbmcgZmFsc2UgZGVmIGR1cFsKK2V4Y2h7ZHVwIENoYXJTdHJpbmdzIGV4Y2gga25vd24gbm90e3BvcC8ubm90ZGVmL0VuY29kaW5nIHRydWUgZGVmfWlmfQorZm9yYWxsIEVuY29kaW5ne11leGNoIHBvcH17Y2xlYXJ0b21hcmt9aWZlbHNlfWlmL0VuY29kaW5nIGV4Y2ggZGVmfWRlZgogZW5kCisKKyUlRW5kUHJvY1NldAorJSVCZWdpbkZvbnQ6IENNVEk5CislIVBTLUFkb2JlRm9udC0xLjE6IENNVEk5IDEuMAorJSVDcmVhdGlvbkRhdGU6IDE5OTEgQXVnIDE4IDIxOjA4OjA3CislIENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKzExIGRpY3QgYmVnaW4KKy9Gb250SW5mbyA3IGRpY3QgZHVwIGJlZ2luCisvdmVyc2lvbiAoMS4wKSByZWFkb25seSBkZWYKKy9Ob3RpY2UgKENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZCkgcmVhZG9ubHkgZGVmCisvRnVsbE5hbWUgKENNVEk5KSByZWFkb25seSBkZWYKKy9GYW1pbHlOYW1lIChDb21wdXRlciBNb2Rlcm4pIHJlYWRvbmx5IGRlZgorL1dlaWdodCAoTWVkaXVtKSByZWFkb25seSBkZWYKKy9JdGFsaWNBbmdsZSAtMTQuMDQgZGVmCisvaXNGaXhlZFBpdGNoIGZhbHNlIGRlZgorZW5kIHJlYWRvbmx5IGRlZgorL0ZvbnROYW1lIC9DTVRJOSBkZWYKKy9QYWludFR5cGUgMCBkZWYKKy9Gb250VHlwZSAxIGRlZgorL0ZvbnRNYXRyaXggWzAuMDAxIDAgMCAwLjAwMSAwIDBdIHJlYWRvbmx5IGRlZgorL0VuY29kaW5nIDI1NiBhcnJheQorMCAxIDI1NSB7MSBpbmRleCBleGNoIC8ubm90ZGVmIHB1dH0gZm9yCitkdXAgMCAvLm5vdGRlZiBwdXQKK3JlYWRvbmx5IGRlZgorL0ZvbnRCQm94ey0zNSAtMjUwIDExNDggNzUwfXJlYWRvbmx5IGRlZgorL1VuaXF1ZUlEIDUwMDA4MjcgZGVmCitjdXJyZW50ZGljdCBlbmQKK2N1cnJlbnRmaWxlIGVleGVjCitEOUQ2NkY2MzNCODQ2QTk3QjY4NkE5N0U0NUEzRDBBQTA1Mjk3MzFDOTlBNzg0Q0NCRTg1QjQ5OTNCMkVFQkRFCiszQjEyRDQ3MkI3Q0Y1NDY1MUVGMjExODUxMTZBNjlBQjEwOTZFRDRCQUQyRjY0NjYzNUUwMTlCNjQxN0NDNzdCCis1MzJGODVEODExQzcwRDE0MjlBMTlBNTMwN0VGNjNFQjVDNUUwMkM4OUZDNkMyMEY2RDlEODlFN0Q5MUZFNDcwCitCNzJCRUZEQTIzRjVERjc2QkUwNUFGNENFOTMxMzdBMjE5RUQ4QTA0QTlEN0Q2RkRGMzdFNkI3RkNERTBEOTBCCis5ODY0MjNFNTk2MEE1RDlGQkI0Qzk1NjU1NkU4REY5MENCRkFFQzQ3NkZBMzZGRDlBNUM4MTc1QzlBRjUxM0ZFCitEOTE5QzJEREQyNkJEQzBEOTkzOThCOUY0RDAzRDU5OTNERkMwOTMwMjk3ODY2RTFDRDBBMzE5QjZCMUZEOTU4Cis5RTM5NDhGRkIzREY3QkZGMTBDOUJEQTRFRkU1RjY4QThDQjE1MjY5OTBEMTM1N0FFNkQyRjdDMkQyRUY4NDk2Cis0RTQ3QjM5RTY3MTJFQjg5MDhBMzI2NUU1RkFCNDA1NjdFODY2QzI0NDgxNDQ0OUYxRTk5M0FBQjQyMkMzRjFECitERkE4QzcxMTg1ODRGMkU1MTk3RkQ0QkZBM0E4QUU5RTk1M0M2Q0Q0NjcyQzBGRjUxRTQxQzNBOTE5NzQ5QzFBCitGMDY2NTBERjRDNUUxNzQ5MjE2NEJEQkNERjIyNjA5QTc0QkZBN0Y2OTk2MEE2NEI5Rjk0OUZGQzJBODA3NDU4Cis4NTc5MzY2QzRGNDFCREUxRkRGQkNDNDg0NUZBMTlCQkI2OTYzRDY1RUU4NTMyNTQ5Mjc0QkFFQkRGRjI0RkE2CiswMzIzNUQxQkUzN0MwNkIxOTM4QUYzNjlEQTc1QkYzOEREQkM4N0ExRkY0NDVFQUExNkUxODk1QUJFOTUwNkI5CisyMTE5NTU3NTNFNDQ3ODY1RDMzQ0VGMDA3MzkxRDI2NjZBMDQ2Mjc3QTMwQTQ5ODA0RkZDRUQzRkVBNUVCMkMzCitFNTJFRTE0QTlGNzUyNDFFQTEwQzkxOTc0Q0RBNjIzNkVCODQwRkQ0NEQ2RERFNEQ5QjMyNjZDM0I5OUJEMzhCCitEODM1QkNBOENCODE5QzA3MzQ4MEZCOTcyQ0MwMjhEMjE4RjZBMUQzNDRDRTFCNjNGNEZCRjJDODI2RjQxMkUxCis2RTBCMDVBMjYxMjU4NjVBMTRGRDdCNzAzMEI0NzhCQjhCQzZCQzM5NTMzNUMzQkE5NDBFMUMzNDgyNjdGNEY5CiswQUY5N0JCRUUyNTM1MTE5NDBGMTA0OEUxNzVEMzU2OUY3RDA1QTI4ODUxQjZGNTA3NjVGRUI2Qzk2NTRGRURDCisxQkY1MkY1MzVEQjVCQjkwQzFCRDVEMkVCRjc1RTBBRUJFODJCMjA1MDdGM0MyOEEwMzc0Njc4MTAxOEQ0RUIyCisyOThFNEYyQzI3QUNGNzNGQTczRUJFNDNGMDE0QkI1NzVBQUQ1MTZDMDQwN0IyOUUxNjUzMzc1MTM1RUNCNzRECitDOTEzNzJGMDZGQThFRjM3QzMxQUYzRkE0OEFFNjUzMThFQUE2QzM0ODMwQTUzNzdBQkIyREZBNURBNTNBNTc0Cis0MzM0ODRCQTE0NjY3MDlBNEIxODY3NjE2NTVDOEU0ODI4MzNCNjk3NjczRTg0N0M2OTEwNzlFN0YxRENCOEQ2CisxQUQ5MTEwMUQ3NTdCODNFMjA5MDMzN0Q1MjVBRUVDQjAyOEZCM0M5RjZBNkU2QUQyRjMyMkNGREM1QTgzM0U2CisxQ0U0RURCRjQxRkQzNEZENjE2MzA1ODFEMjIyRjg1NEE3NkMyRUE5RkQ3Mjc5NkE3QzlDQzFGNkMyRkNDRDE2CitFOTVDQTA1ODI2QTRFQ0ZBREE2QTVGQjgzQzQxQTcxMzFFNTJCQTY1ODVERDZERDc4NTE1RDhGNzMyN0RGQzZGCis5NDA0Rjg5MjkzRDZBQ0I0MzNDRDA4MDJDNDNGMEU3NEM2QzQ3NjZBMjNBNkFFMzc4OEZFNkNBRTgyRTFBMTA0CitCQUVDOEJFRkRFRkU0RjI5MkY2MjVFNjAzNjJGMzg4NkY2MDJDRTQxMjFCRjBBQUQ5MzUyNjMxNEJDQkI1OTcxCis0MDA5MUE3QkJGN0VGQjNCQTM1NUI4OEM4OTdEOUM3MEM4NDFERTQxMzA5MzQ4NzUxRURGRkE4Njc1MjE1OTg4Cis0OUNCMTU5OTgzNEEwMUVDNkNENEZEODEzQUZGOTdBNjE0RjU2OTc1Nzc1RDVGNDhFOUMxQTlDRTUzMkZBRUIxCis0RUJFMjBDM0ZBODdDRkUwMzY2NEM0MjhCRkM1Qzg5NDY2OEU1MDc5NTAwMDVCRDhDMkJDQTg5OThDMUZCOTJDCis0RTZCNzkxQkEwNUI3OUYzMzJFQjhBRjVCMEY4NTFCOEI3RUUzNzJFQzA4NjFCMDlDMDA3Q0RGNDNGODJEMEI3CiszNTQ0NkY2ODJBMERBN0Y0MTEyQ0RBQkU0RjkyMkVBQ0ZDQjdCOEM4OEJGNTUwQjYwOTU3RTcKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKK2NsZWFydG9tYXJrCislJUVuZEZvbnQgCislJUJlZ2luRm9udDogQ01SOQorJSFQUy1BZG9iZUZvbnQtMS4xOiBDTVI5IDEuMAorJSVDcmVhdGlvbkRhdGU6IDE5OTEgQXVnIDIwIDE2OjM5OjU5CislIENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKzExIGRpY3QgYmVnaW4KKy9Gb250SW5mbyA3IGRpY3QgZHVwIGJlZ2luCisvdmVyc2lvbiAoMS4wKSByZWFkb25seSBkZWYKKy9Ob3RpY2UgKENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZCkgcmVhZG9ubHkgZGVmCisvRnVsbE5hbWUgKENNUjkpIHJlYWRvbmx5IGRlZgorL0ZhbWlseU5hbWUgKENvbXB1dGVyIE1vZGVybikgcmVhZG9ubHkgZGVmCisvV2VpZ2h0IChNZWRpdW0pIHJlYWRvbmx5IGRlZgorL0l0YWxpY0FuZ2xlIDAgZGVmCisvaXNGaXhlZFBpdGNoIGZhbHNlIGRlZgorZW5kIHJlYWRvbmx5IGRlZgorL0ZvbnROYW1lIC9DTVI5IGRlZgorL1BhaW50VHlwZSAwIGRlZgorL0ZvbnRUeXBlIDEgZGVmCisvRm9udE1hdHJpeCBbMC4wMDEgMCAwIDAuMDAxIDAgMF0gcmVhZG9ubHkgZGVmCisvRW5jb2RpbmcgMjU2IGFycmF5CiswIDEgMjU1IHsxIGluZGV4IGV4Y2ggLy5ub3RkZWYgcHV0fSBmb3IKK2R1cCAwIC8ubm90ZGVmIHB1dAorcmVhZG9ubHkgZGVmCisvRm9udEJCb3h7LTM5IC0yNTAgMTAzNiA3NTB9cmVhZG9ubHkgZGVmCisvVW5pcXVlSUQgNTAwMDc5MiBkZWYKK2N1cnJlbnRkaWN0IGVuZAorY3VycmVudGZpbGUgZWV4ZWMKK0Q5RDY2RjYzM0I4NDZBOTdCNjg2QTk3RTQ1QTNEMEFBMDUyQTAxNDI2N0I3OTA0RUIzQzBEM0JEMEI4M0Q4OTEKKzAxNkNBNkNBNEI3MTJBREVCMjU4RkFBQjlBMTMwRUU2MDVFNjFGNzdGQzFCNzM4QUJDN0M1MUNENDZFRjgxNzEKKzkwOThENUZFRTY3NjYwRTY5QTdBQjkxQjU4RjI5QTRENzlFNTcwMjJGNzgzRUIwRkJCQjZENEY0RUMzNTAxNEYKK0QyREVDQkE5OTQ1OUE0QzU5REYwQzZFQkExNTAyODQ0NTRFNzA3REMyMTAwQzE1Qjc2QjRDMTlCODQzNjM3NTgKKzQ2OUE2QzU1ODc4NUIyMjYzMzIxNTIxMDk4NzFBOTg4MzQ4N0RENzcxMDk0OTIwNEREQ0Y4MzdFNkE4NzA4QjgKKzJCREJGMTZGQkM3NTEyRkFBMzA4QTA5M0ZFNUNGNzE1OEYxMTYzQkMxRjMzNTJFMjJBMTQ1MkU3M0ZFQ0E4QTQKKzg3MTAwRkIxRkZDNEM4QUY0MDlCMjA2NzUzNzIyMEU2MDVEQTA4NTJDQTQ5ODM5RTEzODZBRjlEN0ExQTQ1NUYKK0QxRjAxN0NFNDU4ODRENzZFRjJDQjlCQzU4MjFGRDI1MzY1RERFQTZFNDVGMzMyQjVGNjhBNDRBRDhBNTMwRjAKKzkyQTM2RkFEQjY3OUNGNThCQUZERDNFNTFERkREMzE0QjkxQTYwNTUxNUQ3MjlFRTIwQzQyNTA1RkQ0RTA4MzUKKzNDOUQzNjVCMTRDMDAzQkM2REQzNTJGMDIyOEE4QzE2MUYxNzJEMjU1MUNEMUM2N0NEMEIxQjIxREVENTMyMDMKKzA0NkZBRkY5QjExMjkxNjc5MjFERDgyQzU5NjRGOUREREZFMEQyNjg2ODc1QkQwNzVGQzgxODMxQTk0MUYyMEUKK0M1Q0Q5MDA0MEEwOTJFNTU5RjZEMUQzQjBFOUJCNzE3MzM1OTVBRTBFQTYwOTNGOTg2Mzc3QTk2MDYwQkYxMkEKK0ExQjUyNUNEOUZBNzQxRkUwNTFERDU0QTMyQkVDRDU1QTg2OERENjMxMTlBNDM3MEY4MzIyQ0NCRUM4ODlCQzIKK0E3MjNDQjQwMTVGQzRBQTkwQUU4NzNFQTE0REUxMzM4MkNBOUNGMEQ4REZCNjVGMEFCRURGRDlBNjRCQjNGNEQKKzczMUUyRTFDOUExNzg5MjI4RkY0NDExNjIzMEE3MEMzMzlDOTgxOTY3NjAyMkFCMzFCNUM5QzU4OUFFOTA5NEIKKzA5ODgyMDUxQUQ0NjM3QzE3MTBEOTNFOEREMTE3QjRFN0I0Nzg0OTNCOTFFQTYzMDZGREIzRkE2RDczOEFBQjEKKzQ5RkJCMjFBMDBBQzJBOTk5QzIxNDQ1REUzMTc3RjIxRDhCNkFBQjMzODY5Qzg4MjYxM0VBNkI1RUM1NjQ3NkIKKzU2MzQxODFFQ0JGMDNCRkVEQjU3RjA3OUVBQ0UzQjMzNEY2RjM4NEJERjlENzBBRUJENTkyQzhFQ0YyMTM3OEIKKzU0QThCNURCRjdDQjkyODJFMTZBQTUxN0UxNDg0MzkwOTMzOUI1RTdDNTVCMDM4QkYzQkI0OTNGM0I4ODRBMUMKK0MyNUY5RThGQjkxMkNCRTIzMTk5QUQ5RDJDM0U1NzM3Mjc3MDFCQTMwMTUyNkM2NkMzNjE3Qjk1MTRENkYxMUYKKzExOTMwQjFEOTdDMTc4MTZDODVCMUJGRDlCOTczQTE5MUIzM0NDM0IzOTE4MTVBRDE0RjFDQkU5MzU5NDJBRUMKK0Q0MDA0RTZCRUYzNzkwNjZGRDcyMjA5REM4OEQyRTYzNEU3OUJDQzJCOThDNzY2Q0JEOTJDNTYxRjI3MDNGOEEKKzEwOUU2QzZDRUM3Qjg2NkYyRkM3QURGNjQ2QkY0OTJFNTIwMzE5RjNCOTQ5QUI1RDg0QUU5OTBCMzMzNDRBNDAKKzM5NzFGNThERkRGOEQ4RDY3RkEwQjhGMkEwRDg4NEY4QzA5QTVBNzIxMzE5QjkxMURCQTBBMzU5MDM4NzczNDMKK0MzN0JDMzZDNUVCMzIzNTMyNzJEMUU2RUQ1RkNBNjExQkUzMTlBN0UxRTg0MkNCNzU3NkU3REZDOUJFOThDMDQKKzA3QUI4MUZGQTBERjA3Mjk0OEYxNjNDMDE0NjkyODA2RDlEMDczOUVFOUVDREU1N0ZCNkI0RTg0NDRBN0JGM0YKKzU3QkE3N0E1Qjg1QzA5MjA5RDEwMDIwMEQxMjU0RDFBOTU1RjkyODk5RTBDQzJGMDkwMUYwMUY4REQ2RUJGREUKKzA1MDFDM0E4NjQ1MjgzRThGRkRGNDdCQ0I4Mzc1MkE0QUQ1Qzk0Q0UxRjY0RDY2NEIwNTgzRTY5QzlFRDlFMkUKK0JBQzNGQjY0MUE3QjgzOEREOEQ5QkExRUU0MERFNjgzRjVCNjk0NTYxMTYwRDA4QTU4RjRDNTNFNjM0NkNBQTUKKzU4RjhFQjYzMjM4ODRGMUZBNzc2QjE2MTg5MDcxMkJGNTRDQzBFNUE1NEZGMTQwN0Q4ODA1QkJGQkREMzlCRUEKKzhGMUM0N0U3NTg5RTNDMDRERTQzRjNGOTM5MEI4N0M4MUE0N0ZDQUMzQkNGMDU2RTJEQUUwQjI2NjQ3OUMzRTQKKzU1QUQ0NDYyOUVDQkU2OUMxN0U0MzU3QkExRTBBRUREQjYxNDk0MjUxOTc0MUU1MkQ3Q0E5QzBFMjI5QUVCQjYKK0UwQUM4QkU1MTI5QUVCNTZFQjU5REE4MkRBNTZCNTRFOEUzOUU2QjgxN0Y1RUYxRjhCQzdBQzVBNERDNTIwQzQKK0Q0OTQ4MTE0NTFGMjEzRUYxOTgwOTI0MDVEODJBREE3MkMyNDlGNkQ1RDI2NTdGQkM2RUEzNzI4NjdEMjAyMUUKK0VBNjgyOEZDMTA3QkMyMkI1MTkyMTIxQTU5RDUyNzE4N0Q5OTBFQUU2NUE3MkIyRkM0N0FDNjUwQUVBNDNDQjMKKzIwQjA0QTkxQUY1OTk5MjlFMDM2NzBEMUU5NTZCRjU2RDMwMkRCMDc2OUU5MUZFNDAyMUUwRjc5MDk4MEEyNDIKK0E1RDc2RDAyNEExMUVCNTdGOUE4NEEwNDBBQjIwOTMxNzBEOEM5RUU1NDI5NkJFODI2NDcwMDc3QjM5QzRDRTgKKzI3MDJBQjQ5RDA2RkFDQzc3ODVDRTE3NUI5MkI1Qzk4NzQ3NjEzQTdGRjg3RDYyRTI0MzM2MDNDNEYxMjJDQjEKKzMwNUQ5RjQ5MTNGODA1QTJBRkFCRUJCQ0M5OUY3RjY3QTYwODQyRUU4Njc3OTc2NDI4QjdGNkUxNTBDOTNCQUYKKzZENEI4MDg1QzJBNzc3OTQ1MjdGMzVGQkFCNzU4RkVFMERGNzdDQzk0QTU2Q0U3MzgyNUVGRjBBRjk2NkJFM0QKKzEwMDQ2Qjc5MEM3M0FBNjE1NDE2MDc5RTVFQzE1MEZDNkMxNTdFNjJBQkY4RUI2QjE3ODU3QjhBRjUyNUYxRDEKK0UzOUVBNDAyQzVFNzk1Qzk2NjI3NTBBQTM1RUI4NTNBRDNFQjg3QUE3OEIxQ0ZEM0YzRjkyNkU2RTc1QjBBMDkKKzc0NkY4MTZFNjUxODYyNDY2MDA4MDAxQkU3OTE1NzNCOEMwNUFBREI0QUFDRjkyMzdCQzAzMjZDQjBDNzMyRkEKKzhDRDBGMjg5Q0UwMkFDMTQ1M0IyQjE3MzJFQzE5MERBNEMzNDgwRTM5NzI3MkMwNDU2MTU3MDkxMzBERDEyNUEKK0RGRERCQzRCMkQyNzQ1ODI0REM5NEY1RDIzOUQ5NUEyRTQzNzk5ODI1MTU5NTJBNTFCOUVFNkQwMEQ3MUEzRTYKK0Y2QzVCOTNGNTQwMEI1NTMxNTQ1MTJEQzBEREM1N0Q5MkJGQjI0MTYxN0M4MzA2OENEN0VDOUU2QjBGOUVCQTMKKzY0Njg1RDNFNkI2ODE0OUE2NEIwRDE5QjM1NThFRUI3QzlGQTM4OUIyMDYwMjEwMTRGQjk5RUMxOENBNjdFMTkKKzdFNTg5MzgyRTc3QjgwMkZBQTBCNzlBQTVGM0JDMURERkFCRjkxMTNEM0FGODVCMTlFMEY0M0EyN0MyRDFFNjIKKzFDN0I1ODBENTczRTk1MDRCQTExOTUwNkVBNDI0MjczRERFQ0VFMDFGQjk0RkNEODkzQkZBQTZGRjAzMzJDRUQKKzRGNjRENkVBQ0RFNjMwQkE0QThFNDFCODEyMEQ4REI1Mjk1MzFENEFDQ0E5QUJGQjZBMjdDRTQxMDI5NTkwRjMKKzQ2QUFBOUVGQTcyOEZDNjQ5Mjc3OUFBRDI0OUQ5RUZERTI3QTJEOTg3REUwRkUxRDlFNEQ3QTkxMTI4NzYxRUEKK0ZEMEE4OUFDNEZCQzREQURGREE1MDJFN0QwMTI5MkQ4NUVFNjNFNjQyMjYxNUM2RkVERjc1RjkyNTZDNkMzREYKK0Y3QkZENDdGNDc3QTFCOTNGNUI4QjhDOTUwNDQ5ODU2RTM0QzM2Mjg0RjBGRENDMDU2MzVGMTczMzQxRDUwOUQKKzhEQTIyMzk4N0Y2QkZBRDJGNkQwMDQzNjhEOUE4MkVDNzcyMDdBQkY4RTQ4MDFCNTlBMzBDQUQ2RTA0QkRDNTIKKzZDMzA2OEUwRjQxNDFGNkY3NkQ2NTVGNjU3QUFGQUJDODdFNzhDOTk5QTFDNDA4OTRBNUY3NzZFMkY4Njg5MDcKKzM3NkZGNjRDMDc4MkJEODE1RDM5RkEyQzI5MDY4Njc1NjgwN0U4ODhFQjAwMkUwNzcxMDFGMzYyMjlFRUY3OUYKKzVBQUU0RDAwQUQ4NUI0OTEzQ0U0RkI3QUY2NjdGRDAxOThBNTIwMTZBN0I1OEIwOUNBNUE5RDRERTNBOUIzMzMKKzI4RjYyMzE5OUM5M0U0N0UwOUQ3MEFEM0QyQUFCRTNCQ0Q2RUU5RUFBOEI4RDhGM0Y0MkZFRTdCQzNEODQ2QUQKK0RBQTRFMzFCNjIxMjBFREU4QjdERjhDQjVCRUZCNkM1MzUwQUJBRkIyN0ZGQkI1N0QzMTJDNDE5MkVFOTg4MzcKKzVGOTU5QjYzQTY3MThDOTgzRjQwNzIwMTVFQjhBNEZBQ0FFNzdFQTFENjIzM0IwQUQ1MzIzNDlGMENEMTUzMzUKKzZEOEUxRDk5RDU0M0FDRkI1QjM4MUZBNTZBRjhCMjIzRUI1N0ZENjc0Qjg0ODRGRkZGMkJDMDEyNzEyMUY2OEIKKzRBNDNFQ0NERTI4MkIyOTRCMUREMzk1NTZERTBENzM1OTJDMjkxMUFBREEyRENBRUI2N0E3OEVDRTgwQUY1QkUKK0Y1NEM1REU3NkYxMjhDNkJGMDEwRDY1MjcwQjU4MzM0NTc1MzA5RDkwN0NCRUIxMzhBMUUzQ0Y4ODlDQkFGNUYKKzgzMzY4QzVERTgwQjVEQzY2NUM2QTdDQTQwNTRBNjczRDc1OTM5RTczMkVDQ0RGRkQ2MTc2NzcyOTlBMEVFRUEKK0ZGQ0M3NkVGOUUyMzdDRDdFRkVBQTZGQTQwMDI5RDlCQjJCRjU2M0M5NjkxOTUzNTNDMjhCREJFNzg4QkQxNEMKKzAzMTIxNkQ1RTQ2QkQzQjE0NEE2RTU4NTlDODc0NzY3NzI2MEI0RTA3QzM1RkNCMTkzOTc4NUM0NThDREMwRjYKKzlFQUIyQ0FGNzdDRTk2REYwRjQ0QkFBRkVFQTUxQTBGNDU1OTY0QzMzNDlFRDc1OTM3NDIyMzdBOEZGQUIzQzcKKzRBN0E5NzZCMjAzNjY0QUI2NUFDOTk2RjhBOTYxQjNENjU1OTg3NEZFOTNBODA4RDRFMTlFMEJDODRDRjRCRDIKKzVEOTkxQzRERjg1OUYxMzZFNjE5Q0RGMUI1RDg4MzE1RkNFNTU2ODRCOEE0NTJCNjU3QzUyNzU2MDlCNjFERDIKKzVDMkQ3NDc2Mjg4RDlFOEEwNERBMzMwQ0JCMTBGRUE1ODI5RUMzRTIyQTdBNjU5NkM3NDg2ODNBOUIwMzhCOTYKKzBFQ0JCQzEzREY5QjYzQzJCOTk4OUExRDEwMjhCMTQyNkU0OEVCMUYzRERFMEJFNjNERDY1Q0U2QzgwQTYzNDUKKzIwNjBFNUYxMUJDRTM4QUVGNkFCRUE1RjM1OTFEODQwOTUyQkUyN0IzREZBNTc0QUIzQjY0MDZCMDIwQTUxOUUKKzgxQTM0RkZBRTM2MEM5NjI4RDg4QzhFMDA2QTkyNjg4NDM0N0E4N0U1NzYzNDREQzI0OURGMzJGRTE0Q0YwMkEKK0Y1NDE0NzYzOUM1RjVBMkMxNERFODg4RTQ5N0Q5RjlFNjIyNTZBRUJGNzBEMkU4OEVBQUNFRDU0Mzk3MTVCOTgKK0ZEMDlBNUFBNUFFMUM5MzdGODI1NzY5NTNDNzI0QTBCOEM4RTJCQzU4Rjc1ODQwRTg3QTg3NzgyREQzQ0IxREYKK0Q2RjNBMjQyMTM1NDMzOUEwNEQyRjFCMkEyRjdCMTMyMzBFMDZCRTgyRUQyODZDRUJFMzdERkNBRTRDNkRGMEQKKzI4RDExQTA1RjBDNkExQTJEQjc1NkU1MDhDMEU3RDhDOTQ5NEQzNEE4RUQ3NkY3RUQ1MUExQzUxRTNFREY5MTMKKzM0NUUwRjI5NjQ3NERBNDJDMkIxNDhDNDhDNjQ3REE4MTNFREE5N0Y1RDM5QjhCOUNDOERFODA2Nzc0QzVBOTkKKzcyQkZDOTdEN0YxRDUxMzg4RjhGNEU0RDMxQkExQTdCM0Y4MUVGQjIwREQ1OTc3MzA0MjdEQjA2NTAwRTBBOEYKKzYxQjI3REZBNzc2MTExMEVBRjVGNUNBMjU5QjZEQzk3NTg2NDIxQUY3M0E2MzE4NjY2NDhCNzMyRjdBODMwMEUKKzlEREMyMUFERTMzMTAxNzg4RkZGQ0UzRTlGRkM2N0ZEOEEzNDNERTY0REZCNTNDNTc1RUNGRjE4OEUxMjNDNjkKKzc1QTQyNjFDMTczNTg4NDkxNkJBNDU0RDNFQkQ2MTYyODA3QjNDMjlCQTQ4RTc3MUE3MzFFRDU0RTQzRTJCRjAKKzMxREE0Q0U2NkIxQ0MxMTNFRDc0RjA0OTY0REEwQjg2RUE4RDNCRkYxRDY4MkRCQTYwNkI2RDZEMEJGOTU1NDQKK0RCQzUyNEVGRTcwMkJDMUZCRkNBQzEyOUIzMTU4MUQ3ODA3Rjc2MjQ3MTk5OURBMTAzNzRENDY4NEU1OUFGRjkKK0RGN0UwM0RBMTBEMzg5NjAxMUM0MzNBNzA4ODlFNDJCRDI3M0ZGRjU2MTYzOTBGQUM3NTdCMUFDQjA0NDQzODAKKzEzOTAzNzg1NUZEMTk0RTU4RkFDQTk5MUU5NjMzN0E4QUNFRTQzMDg3NUFBMUVGRjNCN0EwMjJEOUU1NkNEMEMKK0ZENUVENTJFRkZCNzlCNzIyNDE5NjNFOTFCMTE5OEEyRTE3NzQ1RjA3QjM2QjMxRTFCQzU4MEFDMjRBQThCMUMKKzVFOEY1OUI3RTE5RkZEQUNCMTQxOTlCNUNBRjRBQjJFRjIyM0Q1OTE5OUIwQkNEOUM2REIyMzk5QTE0NEJBMDMKKzUxN0IyNzY2REE4RDYxMDRDRkZDMEI3QTI5QjQwNUMyMUZBRDdCOUFCRjM1NkEwMTQ5Q0VFQzUyMkVEMTk4MzkKK0Q4NjFCQTcxMDU4OUZCNDZGMkE1MkFGMjZEM0IxRTlEOTY2NDI1N0ZGQTY1OTRDNTI0QUNERDQzODY1RkZDNDcKK0U1MkQyQUZDM0Y3QzRBRjA0MzQ0QUNFNjdGMzZFREI1MkNDRDc1NEZENkY5MzQ4MkQzNTFEOEMxMTREMDJCNUEKK0FGMTFBMzgyNzZDRjFDODUyN0NBQzI4Qjk3NDI3OTYzNTQyRUQ5NkI5RTc5RDgyQzVDRDE1N0NGODNFN0IzNzkKK0YwMDQ0QzU3OEJDRjg3MkQ5NDBGQzZGNEI2OEZCMjFBNTA0NzhBRTZDMDE1QzE4QjY5RjAxQTVBNTYxN0Q1NEMKKzAzMjE5ODExODNENUY1M0REOUEyN0JEODk3NDdGQzhEODkzNkYyMjUxRjJBOTI5MENBQ0FEQjM3QjU4NEY0NDgKKzlGQTAyMTVCNkZDMzNGNUExMkU1QTc2NzdBQzYwNTZFNjdBNkU4ODFEMzJCNzY4NzlFNzdDQjYyQjU5NkIwMjcKKzI3NUUwQzYzNzQ0MDY0QUUyRTQzMzA2MzlCQTkyRkEzMzkzNkMzMEMxOEM0OTk3RUFFRkY0OTEyQThFMTEwNjcKKzM1OUM0MzRCOTgyNTYzMTFFODdFQjk5NzYwQTNDQjdFRDkwMjEwMTcyRkQxMDdEOUI3ODgxNzg4RTNEMjJERTgKK0Q3RDU4RTM1NTBEOUE1Q0UwQzU5QUY0MTE3RTM0NDU4RjQ2MjhENzM0MDU2NzUxQkMwOUQzMzdENDk2Mjk5MDcKKzczMjQ1NUM0MTBEMDg4NzdFMzMzRDBDQTQzMEFBRkM3REM2REVDRDNEQzJCOUM1RDM4MkVGQzQ2NEU5MTg2QUEKKzNDNzQ3Q0U0QkYxNUM3NzVFQ0JFRDJDNDEwRTk1RTAxRDRCNjgxNzdDRUY0RkRERkMxOEE0M0FDQUJEODkwQTAKKzk5QzI3NDg1REY5NjdCQzYyOThDOUFGNEFFNTNEQTI4REFDMTFENUIyQjg4Q0I1REM5Mzc1REJBQzA5OUQzOUYKKzBBRUZFMUExNUQ4NjYxQjU5REY0NTg5NTFGOUE5NjI4NTFGN0YwQTM2QkFBNUQxRUZCMzZCODA3MEE2QTkxRkQKKzFDMjI5QzYxMUU0RjBBMjA5NTRDQzRERkU4OTJGNDVGQzNEQjQzQzZCNUQ5QjUzOTY3NUEyOEY3RjdFQUFEQzcKKzBDRTAwNURDN0UyQjNFQjVEODM3MTdDQkVFQzUwRENFMTBDODBDM0Q1QkQ4ODlCRjA1NDg0RDI3RkUyOTZGNDMKKzhFNjdCMURCMUMzODU4ODc0OTU1NDQ5RjdDQzgxNDg5MzBGODVCMkVCMkFCQ0FDMTREQkNENzUxMDI4NDgzNjAKKzQzNEM1MzEwMENCOUUwRTIyN0IxQjgwM0QxQzA0MkZCQzcyQUE2Q0M3RTk2OEFEMzRGNzUzQTlCMzEwNDU5ODUKK0Y3QjgxM0NENTUyRjNGRThDN0EyNjYwMTNFNTRFNjYxQ0M2RTMzNTc0NzU2MjVENjkxMzk0ODk0NTU1NDFDMjEKKzAyRTA2MTI3MEVBRkUzQjA1RkM1RTQwQzM2Mzg5MDc5OUQ5MkFBQzJDRDY3RDY1RUQ2RjhGN0RFMDRGMkJFQzIKK0U5OTI1Q0Y5OEZFODBFQUYxMzMyOTU3OUM3OEY5MzhFRkE2MjQ4MTQ0RTNGMDRGMEE4MTU4NTE2MTREMDJEQzAKKzBEMkQ2MjE5NjEzNUUwNkFFMTE1NEEyRjE4QjNENjZEMUJDNzNENTEzNDI1RDZBQTdCNDFCNTY1MjVCNTkyNDcKKzdCQzhEOUE0MENBM0NERkVCRjIzN0M2M0IzRTFFRjU1NDc0MkNDOEJERTlBMDc0NjU5NDQ5Qzk2RDQyNEJFOEIKKzhFNDlFQUJENTkxNUFDODRGOUQ1M0YwQTdGQ0ZGNjM3MEM3QUQ3N0ZDRTJDQzg3QjNCMzgwQTdBOEMyQTRBQUEKKzdEMEUwQUE0RDQ2N0E3Q0E1OTI0ODQ4NTE3NjBDOTRFMEFDREFGNDJCRTBBNDVFNTAzNzBCQjY2N0UxMTAxQjAKKzI0RDc5QkI0Q0FGQ0Y4NjQxNENGRTM5QjVFNkFFRUVDOTQ2NkJGMzRGN0E2MDBFMjQ1MDE2RThEOEQxRkE3NTYKKzFFNDVGRjM4RTVCNDQ4NEE2MjkyNDk2Mzk4QUQzRjE5MUY3MTE2RjExN0U0OUMzMTg3NjEyQzk0MUZBNDZDRkQKKzgzMDU4OTIwODc0MTA5RkRGMjlGRjJBOUY2NjNEOTBGM0VFNzVGRTk1NDlDRjlCNzMxNEJCRUZFRTg0OTlFQkQKK0NCNTYxRjY1NDY4NDdBRDYxMEM3NDRGNDU5RjUxQTczRDQzNUI1QkQyQUQzNTE5MzNGOEU3NjI2MUQ5QTgxOUQKK0M2NUZEMzg3RjExM0RGQzNENEZDRjEzQ0JCNTYzQzZERTY5RTczNDcyNTIyNThDMTE5QTYxNDdERDg2QzM2NzIKKzA4NTNCMzI4MEJFMkMwRUNFODNEQjE0MzE3QkY0QURDQUU0MEU2MkVBMUEyOTVDNjkzOTU4QUJERTBCNTQ0QzMKKzNCMDJEQjgyNDg1RkQ0NUIwQTUwNjhGNjIzMDE1NzIwRjNGNTNCREJCOUM4QUFENzQ2NkE4MzM1N0UwQkEyNzMKK0FGQzZBNkRENjBDMEM5Rjk4QUNERDQ0RDA5MjZDQUEyNEI3NjExMkE5MjU0RDk5QUQ1NzdDMjhENUQ2RTk2RTMKKzM4NjI0MEFFNTcyODY0REJENzEzMURENkM4ODkyQjc5RTBBMzI2MkVCQkQ2OEVEOUI0MkU1RDA3NkRBQzMzNTQKKzkyRjA1QTAxQzA1NkRFRDc5MUI5QzcxQjFDQjcyQTIzRkE4NkM5NkREQTJEQTY0MEQyNTlCOUMxRjJFM0U5QkEKKzNFMTE1NDExRjFDRUU3NDgwMTNBNjBFQkUzMjE4ODQ3QjIwMTg1NDE5RTFBOEUxRjJBMUYwMDJFNERBMTI2MUUKKzVDODI4NUU3QzkwQzhBMkM5NzZDNTk1ODY4RDQzQTYxNzQ5NjgzNjgxODZFMUVBNjNEQjRFOUE3RjdCRjNGMkQKKzA2ODVCOTIxQTIxNjAwQjBFMjkxNzAwRkM3NEI2MUQ1RjAxMEZBNDY3QUEyNzQ3MzI4RUUwOEY5NEM4MzgyMjQKK0U1NDBEQkVGQ0RBMUZGNUIzOTdDODY4QTExRDlCQzc5NEQwNkFCQTJGRUNFN0M3MUYxRTBGNUY0M0QzM0QxOEYKKzZFOTU0RDNDNzEyMjY0OEM2REVFRkFBMTg1RTIyMEEzN0ZDQ0Q0ODQ4OTk2RTRDMkU4NTcwRDlDOTE3NTVDMDcKK0Q2OERBOEUxMkQ4MTQ3ODhCNkM1Q0E1RTFBMkI3NkEzOTcxMkE5QUI1Njg4NDhBM0IzQkQ0RjQzQkUxODkxNUUKK0YwQzFFREQ4QTVDQUZEM0VGM0UzMTk5MTQ2RUIxNjI0QUQ4RkYzQTU5QTQyQkRDRUQ5QjJBNERCNjUxMzM4RjMKKzUzOUJBOTA4MUMzNjBGNUIxRjEwNTU3NzVCMjk1MEYxNDRDNDFFOTNDQ0UxNThEQTFCQzYzOEZGMkQwQTNCMTYKK0FFNDhGMzA5Qzg3RUMxQTNFQzU0OEY1NUFGMUE2N0MzMkIxNzE2QjU2RDcwRjE5RERCM0Q4NDAyRTI5NEMyRjQKKzhCNzE0NTQwMEVDNjM3RjRFNzRBNEEyQzMzMTlBMTlEMkM4QjZGMDQ5QkU0MTlCMDlFMDJBMTRDRjVFRUExMUIKK0Y0NjZCNUJGMDdGMEQyNUJBMzBEQ0JEN0VCRDAzNkI0QUFDNzZBN0JENEU0RTgwMTU0OUEyQ0E4QzE4N0NCQTEKK0Q2QzZFOEY3NzRFQTIzN0ZDNzlBQTgzNkM4Njc0MEM3OTE5Njc0N0VEODU3QzMyOUEyNDBERjIzRDc1RjkzOTgKK0ZFMzMwQzU2NzI0QUMwRDEzRDhCMDhEREJEQ0Y5MjIyMThDNkI0Q0MxNzVDRDVBQzk5QURBQzg5NkI4NEE4MDIKK0I0MEQzNkI0QUU5RTZEQTFGRjk5MjY0QjgxQjVCQzQzNTZDRjhCMjVFNjgzRkU3RTQ2QzFFQTNGM0NDQUY5NTUKK0QwODE0NTE2OEM5MDUxREI0NkI0MUQ5QTVFNkM2QUZDM0JCRTQzQjA2RjkyNENFMjVBOUQ3QjYzRjMxMUVEMkEKKzZCMTg2REE1RkVGOUQ0Njg2MTQ5MThBQzI1Nzc0NUZBQUVCMzYzMkM4NTFGMDQ4NjI4Q0ZEQjI5QzZGM0U2MEYKKzJDNkZGQUIzNzdDQzM0NDU0Mjc4MjY3MUMzQjA2RjMyMjNFNkJBNEJBMjBDNDhEQjNBRjgzOEI5MTE1QUE4ODEKKzYxREJEOEE2RjI3ODEwNUIyMjkxQ0JBREQzRTJCMDVCRDcyNzQ2QzQ2QjNEQjkzQ0M2RDc4RjU3ODYzNjFEOEEKKzVBQjUzNDgwOEJBRUU3MDA0RTQzRTMyQ0UwMEFBQkIxNTMzMjQyMEYyNUZCNzQ2QUQ1MEY4QkZGMTlGRERDQkUKKzE0NjQ0OUI2NDkwMEIwRDlFMjg3N0E2NzA0Qzk2NUZDNDQ0RDA1MzI2MzkyRjAwNkRGODE4MTk4QTI5MkU5RkUKKzE2QUZBMDQ2MzE3ODExRDEzNkUxNUI0NEE0MDJCNzg4NDNGM0Y0QjM5N0QyODU3MTZCMDcyMzZFRjBGRjIwMjYKK0JFOUYzMDIwNjc3OUIyRTFFRTI4NzIzOEFCQTMwMjE1MjcxOEQyNTU2N0M3MjA2OTRGOEQ3ODU0MTU1NjA4QzkKKzMxMEI5QzQzMjY4OTJGQUVFREU1N0I5RTZBQTU1OEMxRTYzMkRGOUU0RjM2NDIzMjQxOTRDRTkyRjMxRjM5NEUKKzE4RDM5RUI5MzQxMzNBNDdDMENGQTg3OTU4NUM1QjQ0NkEzQjM3MUU0QzMzMUU3Mjg2NDJDOEVENjQ3NTQyMDUKK0NDNjk3NUQ3RTM5NUFBRDBCNTRCNjhGNDIxQjQ5QkUyRENFNUM4OTM5NUQ0MEQxNjYzNDdDRUJFREU4QTdEQTUKKzVFQjlGNjM4NUE2NUIxNzZFN0Q0N0Q4NzUxNjNFNEIyMkIxN0U1NDg4NERGNUI1MTgyODgyMTY3M0Y5MDAxM0UKKzdGNTQzRTJDRTBBQjM1NUREOTc2OUNBQzMyMzQ3RjVGNjlENzFGQTIxNDU5REYyQUY1RTE5MUFDMzEzRTQ2REMKKzg0OTBBMjE3OTFDRkY5MEM1NzQ0M0MyQ0ExMTU5OUQ1QkJFRjU4MTE0MEEwMEJBNDcxNjkwQkU1QzUyMjFGRDMKK0VFODEwMkE4RUE0M0QxNjZGNUY1MzA1ODFDREIzRTNGMkFGMzhDNzBGQTc3NjBFQjZBMkY1RTUzRTFBRTA2NzMKKzU1MDE3OEFBRUU3RTFGQzVFNDQ4OTQ3OENFREJFNEVEQzE4MUQxRUMxMDkwRjZGNEFGMUI1MTQ2MjlERkRCMDcKK0FEM0I5NUEyMEFDMzJDM0Q4QjM4Njg3NUZEQ0I0RkUxNjZBRkNDMzEwRUM2NDRERDI0Q0QwNTFFMEFCRDhBOEYKK0VGMzgxNjIzNkQ2QThEREQ3QkExMDZENzZGMjk5NjJFNTM1QzJGM0U1NDQ3QTFGMkNGNDQ1RjVDOEE1ODhGRUEKKzIwODM5N0Y0NzdEQTgyMjYxQTNCNjQyODM3ODE2QjcwRkEzOUY4MkQ5Q0Y2OUQ5NTdGMTFEMzZFMUMzNUI2ODEKKzM3QkJFODQzQTVEMUI2REQ3RTFBREEwNURDRTQzQzI3M0U0QjFGMjYyOTM0ODVGNzkzMEZBRTdDOUFGNTVEQ0YKK0MwQUY3NDQ0MzA0QkU1RDY4RDMxQjMwMDg3NDBCOTA2RDg3M0JCNzE5QUVFNzFBM0ZENDFDNDQ3NzhFMzI5NDQKKzBBODEyMzU4MzUzMEFDRkE3NzFFM0NDMDJEQzc3NkZERDZDNUE5OUVEODU3Q0IzNDRFMTI1NjlCQjBGM0IzNTgKK0I1NDE3NDZEQjlCRERGOTUzQjJEQ0Q3QUE3MDE5ODRDMDUyMTBCNkVBNkM3QUQwRDJDOTlCQkE1QTRFNDAwOEUKKzZERTQzM0FENDY5MjM0Nzc2MTYyRjFFMTcwOTU4MjQ2OTNBRUNDMUJFOTI0MTZENTYwMjU4NTA0OUJDRUIyNzkKK0ZDM0YxOEQ1QzA1NDkwMTExMUU5NUI3NzU1NEI5MTlFQjkyQTZDMzM3Q0NENzM5RDBERTQwNjU0QzI2NjM3M0UKKzRBMjI2MjQwMUUzNkRDQUZFRjA5Q0UwNDY1ODFFOUFDRDQzRjdENTQxN0M5OEU3RjQzNzk4MjdEREEyQjhENkQKK0ExRjgyMTc5RjdFRDQyN0M0Q0U3ODM5OUI4QzQ3MEM0RDIyNEU3N0JBMkM1N0M0RjI2MjEyMEI2MjIxN0EzQTYKKzVCNEM0NjUwNEJCQUNDMDM3OTFBMzMwMkEyOUQ5RjEyNEZGN0EwOENGODIzMDMxMTFBQUQ0OEVCQ0I3RTYyRjgKK0M4QkYzMkQ4NEY3REJDMTI5QTFCODcyMDk2QTM3MDNDOUIwNDFDODc0M0JGMTlCNkQyQjBCMjJBRjgyMDU5OUYKKzkzMTgxRDBDOTFFQUU3NTQwRTE3QjA3MThFQTBGRDM0NDNEODg3NzQwODkxQUI4QzRDMkQzQ0EzQzUwNUI1NDgKK0ZFQkVFRDgwMEZFRjY5Q0IxMkM4RkFGNjY2MkVCMTVBOUVFNjk1NDI0OTMwQkU4REMyRkNBMjIyMDFGMDMzRkIKKzI1MkYwMzY1QzJDQjczNTJFQTA0MDBGRDIxRjFGMTAwREE5NkFFRTQxMDgyNkQwN0YxQTkzMEMxRTEwOTRGOUEKK0U1N0FBRkQzMzI0MDVDRUU0MEEyRDUxNTk0ODNFM0NDQzEyQzMzOUQ5NDkyRTRCRTQxOUNEMTg3NUI5RTM2NDUKK0RFRTdCMDAyNTZCRDE0NEE1QTc0M0Q0RjIxREYxOTFBMzBBREM4OEFGQzFBMTQwMUFCNDEwODcwRjg3NDA5MEIKK0U5OEIzNDdDRkUzNkFCMjJENjg1ODFDNDdDMzBBOEM2MDk1RTgxNjNFMUE4ODk5NURCODk3NzBDRDQyNzgyNUMKK0Q2NjU0MEFBOTU3RjZDRkZCMjZBMDVCRjFBNTU4MUI2RTUwNzM1RDEwMUVCNTMwMUVFOERBRDJCMzcxQTg4NEIKK0ZGMjgxODI5QjgzNkI2NDA0RUFCQ0UzMEFGN0Y3RUExMzVGMEE3QkU2NkU0RjNCRDJCNTVFRDIzM0IzMjc3QTEKKzZEQjYyREI2NzY5ODBBRUNCMjQxM0Q4NkI0Q0MyQkFCQzE4QkFBRUE4OTkwMjY3QjdFNTJGRUZDQUQ4MjE4ODQKKzMxNTE4MjY3OERBMUYzNjU0NENCMTZFMDgyOUM0MDg4NDMwMDBDMjlBMUYzMjIxQjEyMEYxNEFDNEJBM0IxOEQKK0M0OTFDQTM1NDc0N0U5NkZBQ0I3REFCNDZDMDExNUYzQkU1NjRGMzQzNUY3REU4ODUzNjI5N0JGNkYzMDA2M0QKKzg0QUQzMDlGRjFBRDhBOTc3MTcyNDNCMjlDNzUxOEY2MkU5RjgzREMwRkQ3M0VBNzg3NkNFMDVCNkQ1MjYxMDcKKzc1MzNFREQ1OTA2NjA5MUI3NTc3REEyNTIyQzFGMjlCRDM2OUMyQUIyMDIyM0Y1ODFCOUM1NTNBMzdGRjAxMzIKKzBGRTA5NzE4NDVENTZENDgwNTMwMTQ1OTNDRjUwRUM0NTAxNjk5NEEzNkU4NkRBN0QwNjA2NUM4Q0EzQUUxNkUKKzVFODYwQjk3MDY4M0UwMEY5MUZEOTNBQzY0NEQ3MTE0REVBMzFFNkU5Q0JBMUQ3NkVFNDVEMTE5REMwRUYwQzgKKzM5QzNFOUVENTJDNDhDMDBCOTE3QTIxMTYwQkE0NkNBM0M3QjMzRjY5NkUzNTY0NDg2RDVDQzJEOTM4OEUzNEMKK0NBQzNCRThGNzk5OERDODlDMzA2OEY1NDJCNkQ5RDhEOTNFNjhBQzczQkE0QTQ0RTY5RDc5NEY2MDM1QTI2NTgKKzI3QTY2OTIzNDZDRjkxODMzOENFQjdCRjcxMDIwMDcwMEFDQ0I0M0E1QUYxM0U4NDg2NTEzN0ZBOEIxQ0YzMzgKK0FCNTI2MEYwOEZCNTM3MUZGRUU5MkNDMkQ5QkEwMUFBMUJCOTM0OTBGQ0E1NUMxREVGNkYxRDczRDZEM0Y5M0UKKzE0RUUwN0U4NUFFNjM3QjRCQkRDNTQ2NDUyQzZENzZCOEFBQzk2Mjg4QkU1NzIzQkEwRTdBRTkzODY0NzZEMTAKKzRCOUE0RTU4QzE2RUY2NkExNjQ1NjEzNUUxNEMzODAxQ0E0MzY4NEVBMjhDNThCOUI1OTM0Njc3QTcxQUY0MjgKKzI5RjFBNDAxNUNCQjA1RUVCODNBRjVGRUVBMzhGQUJGOUZBRjgxNTYyMkVDNDU0ODZCNDg5REU1NzQwODRCNDgKKzhBMzU3MzlCRENCMzAyNUU4RUIwRjNBM0Q4M0IwNzg3RjBFNkQ1OTlBRTQ5MDQ1NUFCNzVBNzlGNTlBQUE2MTIKK0NBQzM2NEYwQzgzNzA5ODFBMzM0MjJDQ0QyRUQ5NjQwMkIxQUVFMUU5MDA0NEVDQTcyNTAwNzcwMjM2NTVENzMKKzJCNzVEMUUwQTdCNENGRTA5QzAwMTg0RERCMzExMTM0NUVDQjhGMzlDMUFCNDUzRjE5QUVBQkZCNURBMDMyMTcKK0Y1Qjk5NTk3ODI2QjkzNzBDQTQ4MUYxRDE1Nzg3QkM3QjREQzdDMjlEMjY3REJDMDU1QzQyNUY4MzVGODQ0RkMKKzkyNTNDMTc5REM1M0Q2MEFEQkVBMkQyQjI1ODgyNzRGNDM1RTg0RjQwQTEwNkJBMURCRUQwOTQwNzg4OEFBNDkKKzdEM0U1OEE0NUI3MDM0QjRCQUFERjU0NjE1MjI4NzFBMTM5Q0REQTJCOUUzNzg1NUZDRTdDMEFFQUFCQ0YwRUUKK0UwNjJFMUI2MDUzQjFCNkE4N0MzMEU4QkVGMkE3MzM3QkE5N0Q2NTgzNjUxNzExQjI4MUQ3RDY1N0ZENTVGNjgKKzcwNTJFOUY2OUFGNUQ1QUFDOEZCMkE2M0M1NjAxMDMzOTJFMEQ5QkJFNUZFNzI3QzYxQkQ3NEFGNDUyOTRGQ0QKKzA5M0E4QjJBRDI2MTdERERENDAxQUUzQTlBRTAxRUE0RDE0NDQ2NDJEREJBODQwMzFCNEI1NTk4QUFEOEQ3NkEKKzdFMzhFQUQzNzcyMzdCQjBCREU2RTRGMTBBRkE5MTUwMUE3RDE3N0IwN0ZGRDkzNkZEN0I1NDQxRkRGMkYzQTIKKzMyMUQzN0FFRjlEQzAyMTJCNkY4REQzRkFEMDc1RkI3RTIxNzhCRTY0MkU4NkFFQTQ5QkIyREUwMjA5QkM4QUUKK0RFRjlGRDYyNkMyN0IxRkVCQjM5RTI1MDI2RTUzMEVFMDdEQTAwMTZEQkRFNTA5QjAyRDcxMTM5MDZGMDc0MDMKK0NBRTVBNUEwREY0RTlEODkwRUYzNEUyMDFCMEUxNEUzQzZDRTIyOTI2MEI0QTA4QjgxRjI4RDk0MUMxMTE3QkUKKzFBOTQ3NjA3MUVGODQwNTVCODdCMjhEMUMzQjQwNDUwQzg5MTE0MzQyRjQyQ0I5OTVBQUM5NDFGNUIxRTczMEIKKzQ5MTlGRDY0NjU5OTE1MUVDMDVFQTI4NzdDMjJENUE3OUIyRThCOEM4MjAzODgyMUE2M0M0QTQ2MzY1MkI5QkMKKzI5REQwMDAwNEE3MDFGODlCODM3OEU3MTgxMEM2MTU5MDQwMTEyMzFGNgorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorY2xlYXJ0b21hcmsKKyUlRW5kRm9udCAKKyUlQmVnaW5Gb250OiBDTVNMVFQxMAorJSFQUy1BZG9iZUZvbnQtMS4xOiBDTVNMVFQxMCAxLjAKKyUlQ3JlYXRpb25EYXRlOiAxOTkxIEF1ZyAyMCAxNjo0MTo0MworJSBDb3B5cmlnaHQgKEMpIDE5OTcgQW1lcmljYW4gTWF0aGVtYXRpY2FsIFNvY2lldHkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisxMSBkaWN0IGJlZ2luCisvRm9udEluZm8gNyBkaWN0IGR1cCBiZWdpbgorL3ZlcnNpb24gKDEuMCkgcmVhZG9ubHkgZGVmCisvTm90aWNlIChDb3B5cmlnaHQgKEMpIDE5OTcgQW1lcmljYW4gTWF0aGVtYXRpY2FsIFNvY2lldHkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQpIHJlYWRvbmx5IGRlZgorL0Z1bGxOYW1lIChDTVNMVFQxMCkgcmVhZG9ubHkgZGVmCisvRmFtaWx5TmFtZSAoQ29tcHV0ZXIgTW9kZXJuKSByZWFkb25seSBkZWYKKy9XZWlnaHQgKE1lZGl1bSkgcmVhZG9ubHkgZGVmCisvSXRhbGljQW5nbGUgLTkuNDYgZGVmCisvaXNGaXhlZFBpdGNoIHRydWUgZGVmCitlbmQgcmVhZG9ubHkgZGVmCisvRm9udE5hbWUgL0NNU0xUVDEwIGRlZgorL1BhaW50VHlwZSAwIGRlZgorL0ZvbnRUeXBlIDEgZGVmCisvRm9udE1hdHJpeCBbMC4wMDEgMCAwIDAuMDAxIDAgMF0gcmVhZG9ubHkgZGVmCisvRW5jb2RpbmcgMjU2IGFycmF5CiswIDEgMjU1IHsxIGluZGV4IGV4Y2ggLy5ub3RkZWYgcHV0fSBmb3IKK2R1cCAwIC8ubm90ZGVmIHB1dAorcmVhZG9ubHkgZGVmCisvRm9udEJCb3h7LTIwIC0yMzMgNjE3IDY5Nn1yZWFkb25seSBkZWYKKy9VbmlxdWVJRCA1MDAwODAwIGRlZgorY3VycmVudGRpY3QgZW5kCitjdXJyZW50ZmlsZSBlZXhlYworRDlENjZGNjMzQjg0NkE5N0I2ODZBOTdFNDVBM0QwQUEwNTI4QTQwNURGMTVGMDNEQjFDM0RBOEI4NTA0MzFGOAorMEU1RjczREFDOTczNDUwRDFFRDA1MzAzMTMwNTdFOTcxRkM3RTdDQTg4RTYxREE2REI5QTVDRDYxRjBGNzZDQgorNERFOTEwNUQwNjI3QjhEREY1MUE2NTUwOTgyMjk5MjBDRjQyOUNEQUZDM0Y3Nzg4Qzk1RTdBQjMwRTg0Rjg0MAorOENFRDUyRTk4REI0Q0ZGMTYxRDJFNjJCMEQyOENCOEIwQUM4MkU3QThEMkMwMDc5NTNCQUZCMzA1NkQ2NjA3OQorODA2NDk1NkUyNTdEMzFDMTM1MDlGQjgxQTI1MEQ5RTg3NUM3N0E0RTkxQ0M0OUU5RkIzQzA3MThCMkY2OTFENAorQjRBNjRGMzUxRjRERDY4MTMzREVENzYyOUIwRDk2RTUxMjQ1ODRBMTZGRDJBQzdBM0VCMjQ0QTkzNEZGMDU5RgorRUQ3Mjk3QjA1MDVGM0MyOTk0QUQ2NkEzQ0E1RDI3MjhCMDM0REU5NEI2NEE4QUZBRjM0MTYwMUJENERCNTg1OAorQzk5NTBBOEJCOUM1OThCODk2MDYwOUY0ODExNkFCQThDMDA3MTkwQUYwRUQzMzVFQjVCRjYxQkE2ODcxRkE1RgorRUFCNUEyNkFFQjVDN0MzNTJFQjgwNzk5Q0VCOTgzRjE5RUVGQTgwMTA5M0Y2MjA4NkFBREQwQjgwQkI2NTgwRgorMkNGNjFCMTM5MEZBNTZERkExQTBCNjFDNThERUY5NkJBNzY3QThBMzdFQTQ0NzMwNzgzQzYwMDcwNjYwNkM2MAorNEVFNzRFQTk5QjdDMEY4RTI1MjVDODg0N0YzRDMxOTA3QzNDNDgzRUZBOThGNkM0MTZCNkIyQzM0M0RFNjM3MAorNTJGQUU0MjMwMDhEMDg2QTc2QTFGRkIzMjdDQzdGRDg0QjFDNjZCMjAzQTRGNDE1ODJGNDU5OUE4MkY4MzYyRAorMzgxMDg0NTJFQUNDQzkzN0ZGQzRGM0FCQkZFMzYyOERGNTEzNjdEQTZCQTNGNjgyNkZDNjUyMkQ2QUM1RThFQQorMDBCQUQzMDBGRkI2REVEQUI5MzIzNzcwNDIwMkJBQ0QwMzBBQTgyNEIxRTk3QzBBRkUxN0ZDRThDNzVGNEZBMAorQjhBNzQzMjlBNkNGMTc4OEM3RUIzNERBNzMwNzQxMUU5QUQ3RUQ4RDY1ODI4ODQ0NTZFMDZFMDMzQjRGRkU3RAorQ0Q0REQ4QjA2QUQwMTM0MENDQ0ZCQzM4MkMxOENBNDUxRTRDODg2QjAxRDA4MkZGOENDNTc5M0Y0NzI3QzNERgorQjUyQjRGMUEyNDJGMzFEMUVCNzlEMUUzOUExRDRGRDEzRDZDNUUyQTQyQUQ0QjREMUNDNEVFN0JBMEU1RjgwRgorODAyRTVBQjU3RUExNUY0REU0NEQ4MkFDNDA4QUE4NkQ0QkY1OEVGOTY3RkJDNjQ5N0JCQzdGMDE3QzA1OThBRQorMzJDRjg2NURGRkYwRkM3RkY5RTZEQ0U5QjVGMkY0Qzc0OTFBQzY3NEY0NkU4RTc2NjA0NTJDRTBBNzdDMUVFOAorMDBERTM4MkFCRUQ4NTM1MDAzM0Y4RUNCOTczOThFNEUwQTc1RDQ4NzdBMTA3RjZBOTA5RDBDNzZEMTRGOUE5NgorOEE2Q0ZERTNGRDlENzlCNkZEODI2OTNBOUYzNTRCRDJFQ0YzMEM2RDk5RjdBQzUyMkY4RDZDOTNFQTIxNEY3QgorM0QwRUQ3N0YwNDJBQ0RFOTQxNDI2NEMwNjk4RTg2Mzk4NTYyRTJDNjQwREVCQkEwNzM0QUI0QzNBQ0UzOTA3RAorQ0M3OUU2QjJDNkMzQzNGOUIwMTUyNkU4Q0Q5ODIzN0Q0QTlCNDAzRkY4Q0UzMTMyMjIyRkE2MEMxOTZBMTlCQworQTIzOTNBRTY5MzVDMEY4QjY3RkMxRDFBMTM1MDdDMTAwNDAzQjYxQTgyQUIwMTY1QjA3MjU4MTA1OUI4NDRFRQorQ0UzNEM3MTREQjU0ODQzQ0EyOUIzMDZEMzczRUE2N0MyRjY4NDJGQzNGRTc1ODk4RkI4MEFFNDNFNjg5RjY0MQorQUNCNzcxNUNGNTk1QzhBRERGNjhEOEQ1REJGOTk1MjhGQzRGQUU0OTVBQ0VBQzlFMEI2MTk3MTY0MUVGMTdBMAorNDAxNUUyNjM4NDBDOTZDMUYyRUNDMjJBMzM2OEY5RTBBMzE0NzUxODU0MjA1NjBDQkVFOTYzOUFCOTI4MDgzMQorNjk2MzZDMzJEMUYzRTM5N0ZGNDVERDk3RkFCOTIyMjc3MUVDNEM1MEY0NUU4RENFNEJCNzYxREEyNThGOTM2QQorMTA2NzkyNEFEOUEwNjZFMTFGQTg0MUUwMjU4MDM5QkYyNjREQjk3RUExMjMxMUE4QUU5NDI4REJENUEwRUVBRAorMTI5MTU4ODhDM0JDM0UyNUVGMjAzQkE3RDMwQzlEN0VDRDhBMzNGNzI2MDRGQjlERjlERUIxMzM2NzFDOTkzRgorREM3NjI4QUM3OEMzRTkzRDM0NDE3MzNFMjQ3RjRBMzY0QzY2Qzc4MzM0QjFDMzFGRDgwM0ZFREM3ODQ1RUM3MAorNTkzRkM3NUI3ODMzNzkyQUU0NDlDQzI3MTJBM0UwNTQxNDhBOUVCRDhBQzYxNzBFMTRDNzI4NEM0MzRDQUQ2MQorRkJCRTBCRDMxRDc5NzBBNkMwMzJCQjlBMTJFMTY0NzU5NzM1QjE4NDcxRDJFOUUxOTczNTM4NzYwN0VEMUU1QgorNTZDQTg0RjE4NzRGNTlBNjc5N0NEODE4MUIwRUMwNUY0MkUwMkYyN0E5RjYzNTQyMjU0REU5NTM1NTlDQUQ5NQorOUY0OTg3Q0I1QTcyQTMyOUY0RThEMDdBMjNERUZBMkMwQTlDNENEOEFDNjVFODY3MDA3Q0JGN0QwMzA5QkUyOAorOUU1MTU3MjhGOTQ5NUQxQjVGM0VCODlBNTFBRTgzNjkzN0U1NDhDQjEwREE3Qjk2OUY3NTU4REE0Q0IyOUU0NQorODEzQkUyM0E0MDg0OTIwM0RBRDVDODg5MDM5NEYxRUREOTAwNzRFNjNDQzBENkNEQ0U2MTQzQTE1M0U3OUE5QworNzU1NkVBM0M5RDdDQTQ0MzY4QjgxREUzQjVFQ0Y0NzkxQTRFODk1NUFERTY2MzJCMjI5NzJBNUY4QjVFQzY5NAorMUVFRjkwQkM2NUUyQzkxNjQzMDU4QzMyM0NENTNDQzQwNTlDQUI4RUI1OTMwREU1MzA4MTdDNkU0MjgzRTUzQQorMjEwQzdCQ0Q5M0I0RTJFQjlBNDUzMDkzMjg2OEZGNjkyNDEwNkMzQTg4OUE5QjBEQTEyMDk0OUY5RDI0QjJGOQorOEIxRDlFQUQ0RjFCODRDQzlDQTYzRTdFMzE1NEE2RDQyQTMzODU2NEI3RkFBQzY1MDlFMDhGNDdBMjA3RjkzMworNkY0QTE4MTNENzk1OEY2MkVCRkVEMzM2MUU2QTNENDVBMkRDNTUyRkZFRUNEMEYxOEU2MDIyMjIxOUFDRUMyMAorNDUyODVBRTVFRjk2QUYyOTlGQjQyQzlGNTE2RTZCQTcwNzlEMjBDOTczOUQ3Mzk3MkRDRkY5RkYyN0ZEOEQ1OQorODM5NzEzN0RFQTkxM0NDQjVBNjc4MDYyRjAyMDA4RDU3ODBGOEJFOUM3OTI4RjdGNkNFRkQ2OEJDRUZBRTcwNworOTE5MDNENDJBNzA2OEM4MUNGQTIyNEZENzEzODBBMDQ5NTk0NzFEQkQ4NkUyOTk0NUQxMDFCNDM4OEQzQTYwMgorN0M2RDQwNjQ3MjAxNDZCQ0I4NURCNzE4NEM3N0YwMUMxRDVBMEFENTUzOEZBRENCNDhEM0IzQzM5NjAyRUVBRAorRDc2MTFENTVERjc3N0UxMTRFNUVCRkJGREJCRjdDNzdGMzExODAxRjQwMDYxREMyQ0JEQkE5RjI2RkREMjc0NQorQ0M3MkEyOTZGQTRCQjFFNUNENDFCQUVEQTRCQ0ZDRTNGNkEyMTY5OUYwQzgzNDlCQ0Q2M0Q5QzIxRjI2ODQ2MQorRDhGMTI2NDQ0NEU5RjZGQkY5MzY5MDk3MEU2REZEMjAxRTY4RDY5OTFCMjEyMDE5OTBGQ0I4NEJERTlEN0ZCNgorNEE0RTc1MkQ5N0UxQ0ZDRUVDOUFBODJEOEI2QUY0NzU2OUQ4N0MyQjMzNzI1NzVCRjVFODRFMEVEMUY3NkM5QQorNkU2RjYzNDNBNTBGNTcyODc5NkY0RUIyMUNFODAwMjA0MzZENjA0QTM3NjA4QTQzRDc0QzFFODk4OUU0MzQ3MworNDQ2OUVCNzJFREU2QjcwOTM4QjQwNTg0NzQ1NTAyNEYzM0U1MjEzNEIwOEEzMTk0Rjc4MkY1RkE0N0VEMEVDMQorQkI2Q0Q3NUJBREVGREU4MTU1RDFEOUI3RkEyQkJCQzU2MTkwRjAwQTZDRERBRjRBNENDN0VFRUJDMEZFMjRBQQorN0FGRTcyNUE0MDM2QzcyRDgyN0QxRDlGQkJDRjk4MzEzRjJDRjExNTk4NzBGN0ExMTFEOEM1NUI5N0RGNzdBMQorOTNEMkJGNzdDRjNGQTlBRDM2MTE0RDc3OEM3Q0NBOEQxQzMyREZBMzdCMjk4QURBQTE3NTg3NzJCOTQ1QTZFRgorOTBDNDRBMjdCNkNBQzNBM0I0QTQzODg1RTlGNkJGMTRCQ0JEODc3QUY2QjQ5OEQwQkQ2RkMxQzdBRDBDNTk2MgorMEEwMzI3QTI5MUZGNzI3ODY5NERFRTlFNTVFODgyRDA4RDE2MkMyMjk3NjcxNjg1RjlFQThCREVCQjA2MDk3NworQ0YyM0MyN0IxMDM2Mzg5Qzk5MkIzRkVDQUVDODVDMDY4MTZFOURDMjdEMzdDRUIzQUY4QjFBM0ZGQ0E4Q0UzQworOUFFMDkwQTNCOEY3MkIzQkZEQjJBQzg3NTA5NDk5RkIwQzVEMDdBNzZBMjEzRTA1NzlCOUI0ODI2OTUwMEMzNworMjQ0OENFMzdFMDQ4ODAwOEI2ODc5NDczNDVFMUE5MzRGNzk1NjBBNEJERjQ0QzE0NzJEMTg3MTQxOTJGNzcwNgorRjcxQTNBMUVEOUE2OTI4RTY2MDkwNTVCMkIxQTA0OUY0ODFCMzdDNDQ0MkM3OEE2RkJGOTE5NDlCM0U5RUYzQworNDUzQjQ0MkNDQTlFOTczMjY1NjA0QzY3Mzc1MjQ2NTc4NkZERTBCQUVDQzAzODEwNEE5RUY2QkRGMkYyRjE0RAorNzlERkY1NTQzMDgzN0MwMTExRTg4MkRCRjU2Njc0QUUyQzIwODFDMUZBNTU1OENGMzRDNkYxQjBDMTY3OTVBRQorNTQxNzI1RTBENjMyOUE2MDZGQkFGNTk0NjA1NEZFQjEyQ0NBNDU3NUEzMkE0OTYyNUU4ODg2QTI1M0Q3RjQzOAorRTRDODU1RjJGMDQxMzlGQjYzMDlCQjcxNDdDN0FCQzE4MTU0QUE1NTlFQ0QwQTQ2RDcwQjhGODdGNUEzMjJFOQorQUI1MTdFREQ0ODE4MzFDRjY2QjQzQTZERUVFNTBFMTUwQzE5RjQ1Rjc1MDBGMDcxNjlENEY3OTIyRkQyNDI4NAorOTNBRTE3Mjg0OUUwNTcwOTQyNzU4RDJGNUM1N0I0NEZFOEE5MzlDRUZFM0U3RDcwOEZCOEQyNDVGQkFGRkNCNQorRTZCNTFGOTAxMDE0OTNBNThCNzc0NEZGMEQxMzU1MzRBMkFCRDMwRTIyRjM1NDFDN0M2MDZFQjAwNjI3N0ExQQorMDQ2RkM2NTY5NTU5MDcwREZFRTU5MTgwMjg0QTg3MTcwNThDMkEwQzIzMDI2OTRGQjM1QjYxOTczMUEyNkU2QgorRUNBNkM0QTk5RjFEQzY2MzZDMTQ4NDExMDg5QTU2OTAyRjkzODFBMDVCOTdDOUM2NTdGQzAzNzE1RDM0QkQzRgorMjVGQTlBM0NBNzhEMDVDMEVBNjQzQ0ZEQUY4QTRDRkQ0QUVEQ0Y5Nzg5NkYyNTcwNjg1MTZEQzZEQjIzRjc4MworMjE0MkUwNURGRDhGOTZFQ0I1QkIyNjhCNjczOERFRjI1NDA3NTE1OTVFMUE1NjEyQTQ2ODhFMEQwRDFBRjlGNgorNzM3RTAzNkEwMTI5RjI0MDBDMDVBRDlGOEQ5NUIwMUE4NzQzRTcyRUFGNzAwRjRFMUFDRDlFREMxRDVEMENDMAorNzMzNzI1QTZDNjA0RUQyMjcwRTBEMjc2NzcyNTk2MDlBNjdGNUY1OTI0NkYzQTE4N0E3NEZEMkREOEU5NEYxNworQ0UzMkQ2NURFNjRDMkJGOUY1QUUyMjMwQjBDRDY0NzY5MDc1Qjc0MDQ0Q0QxMjM3RURDM0RCQkEyQTBENTFFOQorNUI0NUZGRTI0NDdDMkFGQ0FFRDM2NDdCMkFCMTJCNjhBQ0FEQzVGMzA0MUE4NUY0M0JDQjJFNjBDMTk1RUNCOAorNTRBNUQ5NzlGN0E2NzJDOTc4RTA5Nzc3RUFFRDE1QTJCQjIwRDA4QzU5M0IzMjdDRTg5REU4QTA1OTE0MTc5MAorRjcxQTM0MDQwRjgyNDlCRDFGMjUzNTY4RTJGRTExNjQ3QTY2QTlEREQ2NDcxODBCQzM5QkFEQzVBRjQyRTY0RgorMzE2RUJERTJCMTlEMjZFMjRGREUzMTA1REFGOUY0Q0EwMTc2NUU0RDdFNjIzRDc3RTk4OEEzMDE0NThDMTNFNAorRDBCRUE4N0EwOUIyRUVFN0RFQzA3OTczN0JDRDVDMERFNzI0NDcyODAwRTAzQkNEMTZEOEY5QTZCMzgwQzdCMAorQjc1NTYzNTg0Q0I3NTNDNUIyQzBDNzI1NTVEMTZFNjM4RUQzQkYzODgzMDQ3QTcxRDdGOUI5QkE0NkYzMzVDNworOTBCNzUxRUQ1MzgzNkFDQkIzREI5NTI0QTVGNkUyNjE2OUNDODZBM0Y4MDVDNjNEMDI3RDNEMTYxNDQ2RkVCRgorRTgzRTIzNzdGMzlEMTU0ODgxRUZGMTlEQURCRENFNDhENkYzMTAwQUJCOUM1REM2MTdGM0JBQjQ4MkU0RjU3MAorRERCQzFBOUY5ODIwMUU0MEFBMTQ5MDgzQUFENUZCRTkwOEZBQUVDNzI4MUNBMUFCNUQxNjc0RERCM0Y4RTg2NworRjRFMzExREEyNkM3MUNGRjcxMDgwQjAzODQ0Mjg1NzU0NTc1QzlGOTQxMzJDNkY0M0E5MjU1M0U5MjJCQTU4MAorMTlFNDE4QUVFN0U3MTQzMkVGRjU5OTRGRDQzQkQ0RkVBMkI1QzcwNDgwNzU4MTE1Q0NGREFFMzg0NzBDOEE2OQorOEVGREUzMTcyQzMwRDBFOEJGQUY2NjYyNTNFQ0E3QTkzQUI1REVDMjQ2RjZEQjY1NjJCMEQwRDlBNTg1RUY1NgorMzQyRTZBMjg5MTM3MEMyMUE0RjQyODY4MkExQzE2ODQ1MTQyNjYwNTFGOTg3NTg3NUM2NDc0NUJBOERFMTY4MAorNjhERUI3NDA3QzFERUE3REFGOEY3RjQ5OUYxMjNFNzk0OEMxREFEMzg0NEJDQzEyQzgzNUE2MzIwMzZFOTRBQQorMEM1OUUyNTY2RjJGN0FGMjZDRTVDODdDOTc1QzQ4MTUzOUFGMTdFQzc3QjFCNzk5QzJDMUM0NkM5NjY0OTZDQQorMzk0N0MyNTIxNTNCOTMwM0VCMzFDMTFEMEYxNDE1RUIyQjRERjRDQzU1QjA4MUU1MTRGRUNEMTcyRDgyQzBDNgorNENCRjZFRDJFQTlEQUM4RjgwNTYzNzQzQjIwRjVENERFREExQjYwNjI5RTg4NUVBMTgzREI1MTE5QTA2QzU0MQorMTNCRjQzN0NDRDg5RURFRUJCOEQyMUNGQ0JFQUY1QzNDMTExMkI0NzEwQkU2NjY2MEE3RDM3MjZCNEFFNUZBMQorRTc3M0E3N0UxOEQ2QjNBMDJBNjA2NTQ2N0Q0NTJENzVERUE0ODgwM0NEQzE2MDBDMDg5QzE4M0U2OEYwNDUxMworRjM1RkE5NTVERjQ0MEVERkMwODNFRDIxRjQxMjFGQzJDQkQwMUQzQjZEMzY1MDQxNDJFN0RCRDVEODcwQUU4MQorNDk1QTdENEY0Qjg1MDRGNUY4N0NBN0UyNDZFRTM0MUNERjIwREM0OTlGRTI3OUQ4RUJDQzIxOENCQzBEMjZEMAorMjgzNkMxQzEyNEQxMDlGMkQ2OTdCQjU0NDQ0OTUyRTVBRjUzOEI2NTE0RjIyMkY2OTNEQTJDRTNCQzY3QURCQgorOENGMTQzRkZFQjU1MjIyNEJCNTRDNzBBRjQ1NjYzQjRDQUMyNUJEMjVENTE0RDNGQzREMDExRUY5RDVBQThCMQorOUIxNkY1RUNFRTQwNDg4NTEyRTE1Nzk4MzE1Q0MyQTg1RDYwNEJBRjY4QTNBM0Y5ODBERDA0QTE3RDBFMDJDMgorNzAyQUUzRTk5MERBOUVGMkFBQzQ5NTdBM0I2NDk5NzcxRThGMDBFN0NBRDNDMjA3RkFDRjMyQjM3MjU1NTAyNQorNTM5MkRCQUI5RTgwNkY1MTY4NjYyOTM1MDZDM0EwNjY3Qzk5NUJGRjlBRDgwMjdGQ0JEMjU2MEU3QkJCMjdERAorNzdDRkQxRkNDN0I3QkIwNzIyMzRDQzkwOEQ3RkQ4N0IxNDEwMDA4Q0ZFQjYzQUYwQzRCNjlCRjIyQjc1QkY3MQorNkM4MTEzNjlCQzRCQkY1RjQxMEQ2QzYxQTEyMjM5RkQxRkUyNTM2MzMxMkExQkM1OTUwMjgxNTdBMTg1RTlDQQorMzA4RDc3NTJEQTA5RjY5MDhFMUM3NkExQkMwOEQyNTRCN0Q3RURDMjk1QTZGRjE2NTg5ODVENjRERTBCOURCQQorQkVFQzg1QTg4NEQ4MEVGQUU5QTY2QjdCNTc3QUE3MzRFN0U2NjIzNDFEMkZGRkVDMjg1MUEyQkNGMTFEQzU2MAorNzRGMjhEQTIyN0YxRjI5QUEyN0JCNzA4OEMxQkRGNERCNjQ0OTBDRTNEOEQ5OUY5MDNBRDkzMzExNjFFMTE4RgorQ0M3NUQwREFFQzZBQjlGNjM5MzQzNzE5MjlFQTI1NzdDQzE2RDlBMkIwRDQ1MjM4OUZBQ0JERTA1QjZDMDhGRAorNzBBNjZCN0MzMDlGNDk5MEJGMjFFRTZFRTJCM0I3QjlCRDRFRkNDOEI0MTk0OTlENEE5QzgxMjBGQ0FDRERENQorMUNEQjU2OEVCOTMyQzc0QzhBQTlENTJCNUM3QjYxODI4RDY5NkI0MTQzMjY2MUZDNjU5QjEyMkZGNjlFNzExMAorNkFEQzU4MkI4MzEyRjFGRjEwNTk2ODMzNDU0QzBGQkYwNUNBQ0U4RTk1RUY5RUI1MzExOUM1REUyOEI0NDlDQgorOTcxRjYwNEJEOEQ3MjMyQzI3MjNBMTU1RTM3REQ1NTE5QzZFOTU5RDM2NTIxNUJBQzExQUQ1NEQzMEU0MjgwMQorQjkzNDIzQzhDMDI4RUYxQTlCMTM3NzNDNjI0MTA2REQ1OUJBMTVGNDI1Mjg0NkI0RDY3N0Y3RDcxQzk4NzBCNgorNkFFRjdEMDYxQUYyQTAzQUNFNUEwNUQwNTBEQzNCN0NGQTAzRTI0OUM0NzNCM0Q3NTRBNDU3MERBQzkxMDMyNgorQ0Y2RDYxQjA4NEE1NEFEQUEwM0E3QzZEOUI0QTcwREQ5NEJFNjQ2NzU2M0E3QjQyNkE2MjVDNkNEMTY0NUUxNQorMjNBNzA3RjBFMkUxMTlDMTIzMEYzQkMzMTA5RUUzMzQ0OTYyRjkwRTM3RDY3OTM5NEFEM0JBRjJENTU3REQ0OQorNERDMkFCMzE3MjM5NTVFOUVCQkMzODcxNTRBQTIxRjQwN0Y3RjhGODQyM0Q1RENBODkzOEJCN0MyMkE2NUVGQworQzA0RDYwMDgzRTdCMDAxMDMxQjA4OEEwMDA5M0I5NTMwQTdFNzFCQUM0MEE1Q0Y2NTI4NDlBNzdGNjk5OTc1MgorMjQ2RDc5NDY0OEY4RDQyQTJCRkU1RjVFNDI5N0Y5Mjk5MUNBMkQxNTc0MDRCMUQ0Njg1MUFCNTI5NDM1RUQwNQorNzgxMjQ5Rjc1NjA2QkUwOENFMTQzNTQ1Q0M4MDc3QjI1RERENTk4QThEQTJENjc5QTRGNDkyMEM0MzQ1RERFQworOTA3Q0RBRjY5NEY2RENDOUJGM0Q1MEM3MEUwODlCRkYwNEE3N0E3RENEQTFENzY0NjVENkM1RDE1MkM4RkU1QgorNjc3MkFENjMyOTAwQUFBNzFFRkZGM0E0RjkwQzlBQjc1NUIxMjRCRjA3OUI5OEMwQjgxMUUyQTM2NEFFNkE1QworRUFGOTk2MzFENzlCQjdFMTQ0QUJBMjgxOTgxMTAxNDMwMUNFMUM1NjJCRjM4RjlFNThCMkE0RUE4RUI4RjcyRgorNEE1M0Y1RjA4QTdGQTk1QkYwQTk4OEE2MjIxNEVGQTk5OEFBREE4MUU2NzUzMTYxRThCMzJCNDVENDIwOUI1RAorNjRERTk2NEVCQzY1MjIwRTE0NkZDNzNCRDM0RTRBRUEyRDQ2NDM0NTNDRjBGQUY3OEVFQ0I0QjA1MzlEMzZBRQorODUzQkY0NjM1QTA2M0VCRDFDMUMwNDc3Mzg4NkNGRjU2QTEyRkY2QjNGMEZDN0M3NkVFQTNCQkRDQTM5MkY0RQorRTY0REY5M0VDNEFGNUQyNTI4RTY2RUNBNzdFMTM0RUMzRDQzNjhFMEFEODA1NUQ3ODJENUJDRTJFNDNGNTgzMAorRjM0QUQxRDY0Qjk3OTdERjE0MTYwNDYzMjYyOTBEQ0VERjNFQTA3MTc1MzgxQThDMUQyNjhCNUE2RTdDN0M4NgorNEFGNTlFRTlBNzFFMTA0MkVFNUYyM0QzMDNEQjFCMEE5NDBEN0M0MDk1MEI0RjdDNjBBNzhBRTYzNworMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorY2xlYXJ0b21hcmsKKyUlRW5kRm9udCAKKyUlQmVnaW5Gb250OiBDTVRUOQorJSFQUy1BZG9iZUZvbnQtMS4xOiBDTVRUOSAxLjAKKyUlQ3JlYXRpb25EYXRlOiAxOTkxIEF1ZyAyMCAxNjo0NjoyNAorJSBDb3B5cmlnaHQgKEMpIDE5OTcgQW1lcmljYW4gTWF0aGVtYXRpY2FsIFNvY2lldHkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisxMSBkaWN0IGJlZ2luCisvRm9udEluZm8gNyBkaWN0IGR1cCBiZWdpbgorL3ZlcnNpb24gKDEuMCkgcmVhZG9ubHkgZGVmCisvTm90aWNlIChDb3B5cmlnaHQgKEMpIDE5OTcgQW1lcmljYW4gTWF0aGVtYXRpY2FsIFNvY2lldHkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQpIHJlYWRvbmx5IGRlZgorL0Z1bGxOYW1lIChDTVRUOSkgcmVhZG9ubHkgZGVmCisvRmFtaWx5TmFtZSAoQ29tcHV0ZXIgTW9kZXJuKSByZWFkb25seSBkZWYKKy9XZWlnaHQgKE1lZGl1bSkgcmVhZG9ubHkgZGVmCisvSXRhbGljQW5nbGUgMCBkZWYKKy9pc0ZpeGVkUGl0Y2ggdHJ1ZSBkZWYKK2VuZCByZWFkb25seSBkZWYKKy9Gb250TmFtZSAvQ01UVDkgZGVmCisvUGFpbnRUeXBlIDAgZGVmCisvRm9udFR5cGUgMSBkZWYKKy9Gb250TWF0cml4IFswLjAwMSAwIDAgMC4wMDEgMCAwXSByZWFkb25seSBkZWYKKy9FbmNvZGluZyAyNTYgYXJyYXkKKzAgMSAyNTUgezEgaW5kZXggZXhjaCAvLm5vdGRlZiBwdXR9IGZvcgorZHVwIDAgLy5ub3RkZWYgcHV0CityZWFkb25seSBkZWYKKy9Gb250QkJveHstNiAtMjMzIDU0MiA2OTh9cmVhZG9ubHkgZGVmCisvVW5pcXVlSUQgNTAwMDgzMSBkZWYKK2N1cnJlbnRkaWN0IGVuZAorY3VycmVudGZpbGUgZWV4ZWMKK0Q5RDY2RjYzM0I4NDZBOTdCNjg2QTk3RTQ1QTNEMEFBMDUyQTAxNDI2N0I3OTA0RUIzQzBEM0JEMEI4M0Q4OTEKKzAxNkNBNkNBNEI3MTJBREVCMjU4RkFBQjlBMTMwRUU2MDVFNjFGNzdGQzFCNzM4QUJDN0M1MUNENDZFRjgxNzEKKzkwOThENUZFRTY3NjYwRTY5QTdBQjkxQjU4RjI5QTRENzlFNTcwMjJGNzgzRUIwRkJCQjZENEY0RUMzNTAxNEYKK0QyREVDQkE5OTQ1OUE0QzU5REYwQzZFQkExNTAyODQ0NTRFNzA3REMyMTAwQzE1Qjc2QjRDMTlCODQzNjM3NTgKKzQ2OUE2QzU1ODc4NUIyMjYzMzIxNTIxMDk4NzFBOTg4MzQ4N0RENzcxMDk0OTIwNEREQ0Y4MzdFNkE4NzA4QjgKKzJCREJGMTZGQkM3NTEyRkFBMzA4QTA5M0ZFNUYwMEY5NjMwNjhCODIzMjQyOUVEOEI3Q0Y2QTNEODc5QTJEMUUKKzI5MzFDRTVGNUQxOEM2NTg2MDIwNTlGMDdCRTY2RTZFRkM5MjM5RDdBQjJGQjhBNENCRDQxNjc1QjhFQ0YyNzkKKzY1MEMyOUU1M0IxNEFDMEUzOTJBNjY0ODQ4QzE4NDRCMUNFQ0JCMkQ1Q0ZCNzJEMDkxNkI2NzVDOUE5QTFFMzUKK0YxMjY5NkE2RjYyODQ3M0M2MDRBOTUzNzY0NjhFMDZFMjk1QUQ2Rjc2Q0VCOTM5RDk0MTEzNTMyMDUwQjlENUEKK0QyRjQxQTlFRkI5NDI0RDk4NjYxMjMxM0I4OUVGRTlDOEE3MTMxMzM0MEIyNDhGNjg1M0IxRURCRjAyQjdGOUUKK0Y0NDcyMjBGRTEzMUQ3RDU0Q0ZCOEFBMTI4MURCQUVBNzNFNjY1QkFDQjFGMTY0NTUyQ0MwQ0VEQjYzQkQ0QjEKKzRBOUFFOEFDNkZBMDIyNDJEQkU4REE0NkI2NEI2QkZDMTE3NjJGMDc4NEYyMTZGQzhCOTEyMEQ2ODhEMTcwNUEKKzQzOEIxNEY1RTVERUFGMkE5ODQwOEIzQjY0NjIwREUzNzMyQTREQUU2RDA4RDVEOTdFMzRDNzVEQUUxOUVBQkQKK0JBMDc5NjE2NUMxMTUxQkNCRkIxREY4RDI5QTYzQTgzMDBEQkRCOUUzMzIzQ0I4MkQwMzM3NTk4QjgzRjRGMkIKK0E5N0NGNTE5NkQ0RDFDRUMxRURCODk2NkU1NDhDMEQ5QzE5NEM5MzIzMTk2MTBGQjQzRUExQjg2MzIyRkU2NDEKK0FCNDg3NzBGRjEzQkQ0NzVBNzI2N0UxNDIzODg1NjNEMUE0MDA0MTlDNTg1QjIyQTk4ODYwNzQ2ODdCRURGNzQKK0Q5MDVCRThFRTQ0MEJBMkFCRjI4RUFCNjczMzk5QjdGMTI5Qjk3MjlERDU1NjRDNjgxOTU0NjIxOTAzQjg0QkIKK0NBRjg5QUM1QURCMjkzMjQ3MkRGMjlBREEyQkRCREI0RDA1RjY1RjI4RjVGNEM1Mjk2MTNENjE4NThFMDA3NEEKKzA4MkE4NTI3MTBBNjJBMTQ3Qzk2NkYyQjg1QjUxQjBCRTg1RjExRDIwNTdDNjZGREQ2MUY2QzU3NTUzNjc5ODAKKzlGNERFNjgwNjAxRDREQTQxQjQ2RjhEMjE0ODQ1MDAwMDQxM0MyN0FBMzlCNTg2Qjc0Qjk3N0IyNUYwRkQzQzAKKzRCQTFFQkZBRkRCRUM1MzFFQTEyMTAzNjUwOTE2NzFDRTNDODZBNkQ0QkM1OTFDMzdEQ0MwMjU3MDA0MjU3NUEKKzlEMjQyNTJENkUwMUE4NjAzNzUzOTM0RDdFQTVDQUMxQkU0RTVBRDJCQTA0N0RFOEYzOTgzQjIzQThBMTUxMUYKK0IwOEQzNzNCNjlFNTA3NkNFNDMwMDEzN0I4ODA1RUJDQzBBQUI4OUJCQjMxMkE3NzgzNTc5NUUzQzA2OTMyMkQKKzQyQzg5M0EzMEFENzM5RTJCREQyOTk2NzlCMTU4Rjc0OTM3NjRGMjMyMUUzOTY1MTQxQjVFRDFDNkY0NzY1RUQKK0Y0NkQzOTFBNjQ2QjMwQzkwMDAyQjFDNDYxQUVFNzlFNUYwOTRDQUNDQTY1NkNFQTNEQjkyMUNDNTIwNUYzMjgKK0EyQzY5RjgxNzA2MUQ2QzYwQjEyMUVFRTg0NENBNTAwOEYyM0RGMDhEOTk5RDhDNjM1OTQ2QkY1M0NEREVDNEUKKzA1OTQ4MUUxNjdDMjI1M0I5RjdFRTE3OTE2QzAyOEQzMEM2MjYyMTdDMDdENUM4MUNCM0RBMkUxNTREQjVFM0UKKzNFODEyQTczOTA4NkY3OEYxN0RBOEIzNjNDQUUwQ0NDQjY3RDI4MTRGREFFQkY0M0RGMEY5OUVDMDZERDYyODYKK0QzRTkyMTY5NTJFNTQxNkYzOUIyRkFCNUNGNjFDMDM0RDJENzU5RDRCQkE5MjcwQzMwQjc1NTI3QTc5MDQzNUMKKzRFNjMyNjY4NDY3NEQ0MUJBRUVCRDBEQzJGRjM2N0ZENUU3RjlCMUY1MDY2OEVCNTRERjAwRjZEMEZEMDYwRUYKKzU4MENFQ0VGQ0I3QjM0NjgzOTk3NTA0ODYwNkNEODhGRDg4MDQzRTlFMUIyNUJGOTQ1QUZEQTMwOUIxRjkzQTcKKzU5RDM4RjY5REU0ODU4NTIxMDlCOEMxMjQ2OENDQjdFODc1N0ZERjcxQTRBOTQxQjExRjBEQTU2NDM5MjJFRjYKKzgyNkUwODU1RjBFQzZCNzM0ODk0OUY4MEQ3RDQ3MzRCMDg4OTVDOEM4Nzg2OUY2MTJGQzMwRDNEMjhFQjhEOUQKKzFFNzlCNzIwNkU1Qzg4RTVBNjVDNDY5ODMxRkM2MTk5NEZCRjdBNkU2RjJEMzY1M0ZENjI1OTcyMkUwNTQwMEMKK0JEQjM0REE2RjdFOUI3OTQ1ODYwOUJDQTJDOEVDMkMwRjk5QkQ5MjRFRTVBRUFFN0ZFOTBDMzI4RDJEMTg0MzAKKzA4RTVCRkU3RUU3NTZGQTA3ODY2NzIwMTE0OUYzNjI5MThFNTJBNzVDQkRDQkNGOTEzQkEyMDg2NUE4RkFENDcKKzZBMjA4RjE2NzMwRkJBQjUxOTVEREVENkNBQzQzRURBNkE2OTdEMjU5NUE1RUYyNjJCRjc0N0RDQTE4MkM2RjEKKzNGNTYxRUQ1QzZCRjg5Nzg2ODFCODE1QjM3NkQxRUFENEQyN0EzM0E5QjdCQzhGM0ZCMzE3QTlCQ0Q4M0Q5QTMKKzUzNDA0QjlEMkU1MkY5MEI1MkJGMzc0OUUxQjI2OUZFMUZBQzVDNDQ5RjNFNjBEOTJDNjQyNzRBQjAxMUM5RjAKK0ZDNEIxQTEyREQwNDQwMzY0NzlBRDc2RTQ0QUYyMDZBNjMyQkQ5MzY2NkU5MEI5NUZERkRCM0ZERTk5NzVDNUUKKzVCQUY5Q0Q4MzNEOEZFMThCRjE0QjZDMDA5MjdCN0RGNEY5ODFGNEQwOTgyRjdFQjc3MDc1NTFENDhDNkQ0RjQKKzlFOURBNTI5RkRDQUIxRjlENjI3MzQzNjY3Qzk1RDFGMEVFNkQ0NzM5QTQzRkU3NzkwMTNCRDYxQ0YxMzEwNDYKKzcyODA3M0U3QzUxNTA0MDQ4Mjc1QkRFMjQ4RUZDQTg1MDFCQUZBMEVGRDE2MzQzQUQ4NDBDMTFFOEU5M0RGOTcKKzczREJFRUYzRTIzRDZFQTlGNDI4NUY0QjQwQjc2RDA5MTc3ODczRDA3Q0IwQUUyMUE1NzYwMDQ5OTU4RUYwNzYKKzhCNEYwQkU5MkMwQUE0QjQyRTUxQjM0ODU1M0NBNEE3RDk1QUFCM0U4M0Q5RUYzRjQyNUI3QzE5RDYyREREMjQKKzU4QUYyQzE1NzUzM0YxOTNFQURCMDJEMEVBRjZGQkM5OEEyNDlBQjA4Q0I4REIyMzc1ODQxMjU3QURBODhEMjEKKzNDQ0VDN0I2OTlCMDc3NjM3OENCODM0MUJFRkRFNTJBNTg3M0Y4NzFGQ0FBNTQwMTc0N0EwQjY5OTQyMTYwRkUKK0MxNzE5MEE3Q0M2M0RENEVGREY0Mjg2Q0Y4MTk3NDc0NDVBOTlCMkE2MkY2QzFGQjYxRjhBMzM0RUEyQkNGMjgKKzg5NkMzRTBFQUZBREU1QjVFMEI2NDM4QTVBRUMyMDUyMDhCQTk0QjVCMEIxRjk4QTBEREU2QUIzODlBMDVBMUQKKzg1RERDRTZEMkU4MkNCRUVCQTM2QzIxREQwQjZEN0FBQTM0Qzc1Q0NDMUM5Qzc0NTA5RUNBRTNEQzBCOTkzRjgKKzU5QTgzOUY3MzJGMEU2RjI0QkIwQTNEMzI0QkY2OUNFNDY1MTU5NDMyOUZGNzg2NjI3Qzg4OEY2MzI5RUU4RDEKK0NDMkZFQjU4RDdENTE2NzA5OTAxQTg3M0ZBNDQ3RTcyOEEyNDk5MjJFRDNEQzBGQ0YwQUFENzQ0NTY2Q0VERjQKKzVBRDIwODkxRTM3NzFBNjY3QzYyNUMxRjVEMzVBQ0ExMkU2MDdBNTAwRDJBNTEyRjlFMUVGQTgxMEJCMUNDOEYKKzAwREZERjY5Mjg5MkY5NEMwMjE3MENEMUVEN0QxODM3MDM4RTkzODFFNjExNEZFMjIxMkU2RjUzNjYwNDIyMzUKKzI4MUM4MEI5NjI5MjlFQzlBMzJEMTI3QzZCRjI5MEJCMkVDQjVFNDUyOTJCQzIzNTQwNTdCRkM1NDdEMjc5QzcKKzdBODQxRTM0MzdGQzY5NjY0MDY5QUE5NTA5RTMyNUFGOTNEMTQ4QjFEMDI1REJFRkEzMUM2Q0FDRUVERkRCQjAKK0VCNTc0NTFEQ0QyNUI5RDM3NTM0QjQ1MjZFODk4MjVCMEI3NTA0NjJBNUYzRkQwOTQzRjQwNTYwNTA4QkRBMjEKKzYzMjA3RDc4QjE5OTA5NEJDNzg0QjAyNzdFQjY1NkY0MDMwOTk4OUM5NkFBMjMzNjg3ODBFOEI1QUJDQTU0Q0UKKzZDQ0ExRTg2REM5QTJGOTM1QkY1QUU4NjdBNkNGNTExRDBCQjMzMDQwNkU5MEMxQzVFQjkzMTY0RTcwOTIxMUEKK0M0QzNCRDNERjM0RUQ0QUZEQTQyNzAzODlDOEUyNEQ4N0JBMzcwMTE4QzgyN0FEMUFBN0U5RDY0QTU4ODEzRTUKKzAyMzNDMEY1RUQzNDg2MkRENzREODA1NTU4QjRFODk4M0ZCNDNBRTdCNjRFM0YxOTU1QkUyQjMyQzExNTc0MDcKKzgwMUEwRkI1OUUyQjJENkY5RjE2MjI1Q0I4RDRFMTBEN0I3RjhDOTBDMDZBNTQ5MkMwNTIzMTgzNTlGN0YwQkMKKzRDNzE1QTNDMjFENzQ3OUQ4QzI5MDUzMjA2MTA2MUZDOTk4MUZDNUI4QThEMDFFNjU3MUZBNzc4NTNCQURGQzcKK0VDOUE4OUYxNkE2RDc1QUZFMjBFMEIzMUIyQTY5OUJCQkI2QzhGRTJBM0NCNDNCMjQ5NEJDNkNFMzk2NjNBQkQKK0Q0Nzg5RUExNUZFOTQ3QTVGMzBEOTMzQkFDNDQyQjI4OTQzQkZFNzJDNjZGRjI2Mzg0RDIzMzA2NDU0MDQwQTQKKzcyODE3RkY0MDg3MjIwQkFFM0ZFQ0JCNTA1MEUyRDJDMjA2RTVBQzBBRDk3OEU2QjU5RDE2N0Y3NTUwMjU0RjgKKzE1RkY3ODVEN0Y2RUFFNTE3Nzg1M0Y0RTlCM0ZEQ0IyQTBDREEwRkE2N0QwQTBGMEFGNzM0MTNCMUNEQkRFMjkKK0JBRjc2QTc0NTA4REVEQzNFQzY1MzMxMDE2MTFCM0FGM0ZCODU0MDIxQkQ4OUQ0RjU5NTgxNzA1OUE1Q0ZGMDAKK0NFQjRDQzIxMEY3QTkyMDQ0NkFEOUM4M0U1REQ4NDA0MUNDMTNBRDVBMDQxOUNBOTlGRkFFMjdDMkZDNjk5NzEKKzREQkIwRjFBRUE2RDhEODg2MDVDNEJDQkJGQjkzQTRFNTJCN0UwQUFCM0RDMzQ5OEE4NkJDNDYwNEQ0QzM1NzUKKzg5OUI4QjQ4QkRFRjZCMTNFMUNFQzVCMEE5MTEwRUQ5QjFFMkZGNDJGN0YxNzA3NjY2NkVBQkJCMTIxMTBCREEKK0Q4OEQ4OTM4QjdGNjFCQjk3NDY1M0RDMzFCNDQ4Nzg0RUUyMDJENzMzODc0Q0Q4MUJCMzFDMUJFNUM3OEQ5MDYKKzE0MDhDNkIwMzBFREFFNkMzOUU2QUREQkI3ODQ2Q0JBNjQyQjVFQTMzN0E2REJFOEU3MDg0NjhFMUZDOTRDMkYKK0QwQjg5MDA5MkU0MTk3Qzg2QUVFQzk0RTE4OENDMDBFRjk1Mzk1NDhGRkZDQkY0MUM1MTc5NEU3OUEyNThGMTAKKzM5MzQ4Nzk4QjJGQkNDRjUzRDc4NkQzQUQ1RDJDNkM5MzYwQjE0MTc3RThDMUM5QkM0NENCOTM2MkM5MzhDMEYKK0MwOUY2QjVFOTU5RjBBOUU1NzMzNjA5ODQ1NEU2MjU5MkYzNTZCNDBEMDVGRDEzMkNFQ0Q5NzQ3REQxMUQ5QkIKKzVEQkM2ODQ2MkY5NzAxQjdBRDg5QTNBOURGRUUxMjk3NDVDRDkyRkM3QTNDRDE0RTFDMzg1RDMyMjFDQjIzQUMKK0E2RTA2QTM1OUE3RTE0NDNCRTgyRDkyOUZCRTIzMzEzNDlGQjk3RkEzREJBRDgzMjU0QTkyRTIyRDZDOTU4OTQKK0ZDMkNEMjI0NUY0MUQyNEE4NDQ1NDRDNDlERTMyQTRGMjFDNjYxNjkwRUIxQzZBMUY3MDI0QjRBNDI3QTZENkUKKzY2MTIxNTdFQ0JFMjExQzNGMkU0QTdGRTA4QTlENUEyMTlGRUY1QzIxRkQ1QUU5RkMzOEU2REE2QzVBRUZBQ0YKK0EyMzZEREMxMjhFRUFGMzdDRkE1OEU5REQzMTk2OEFDQzQ1NDA4MDlEMDgzRUEyN0NGMjYxNDkzREY0NjdGREEKKzYxNDg3MENFMzM0QTU4NzZCQzg3MDIwRjhCRUMyMEMxMkNEODA4RTQzMUU2RTEzODMxNThEOEI0NkQyNTExRjkKKzA3NTBDRTVBNEEwN0FBRTUyMzM5MDIzMEZFQTM1MTFEMjIzMDk5M0M0MDkwOEI2MUI0MkM1MEVGRjkyMURDNDIKK0YyMkQ3NTU3QkU0QUNENjE2QjE5NjQ4OUU4ODcwN0JGRkQzNjQ0QzJFNDlGMDE1RDJCOEJBNzVBMDcwRUUyNTYKK0ZGNDU5RjFCNDE3ODhDNjE1OTJBRDA5RDIyMDI1QzY5QjEyMzFDOUE5N0JGNTlDNTY3RTY1MUFFODZEODA0MjgKKzQzQTUxNzM2MkQ1QjAyNzlGNzYxODNFNjQ3NjdDQTA2NUEwN0M4MjU4ODYxMkNGNTY5MTM0MEY2NDlEM0VENTQKKzRFQTdFNzFDQkFFQURENTE2MTRGM0NBNzRBNkE3NjFEOUUxRDE5RUY3RTc2RDM0RTZFNzQzNDdDNzQwNEEyMkMKKzUzQzg4N0ZGRDZGODNFQzU5MEE2MjZCQjcyQjUzOEIwQjhCRjAyODM5QkNGM0YyRTkyNkE4NEVFMzdBNTM2RUYKKzEwQzA3OUVDMDUzMEI1OTM1NUVBMkFFNzQ3MDdGODc4NjAxODVFMDFBNkExNTc4RUFDNTI5MDI3MDMxMzFFQzgKKzQxMTVCQjJBMThGNkMwNjJGRUExQjE2QTYzNUNDRTI0NjdDMzRDMzRFMTk3RTg5QzQ1QTg2MzNGQTVGN0VCQTUKKzQ3NTg1NzgwNTkyMUZGODM2RDE0NjMzNUQyQTBDMEY2NjVEQjJCODgwQTRFMUVENzlGMDNEQkI4OUFGNzNGMTgKKzA3RkU1NEMyMDEwNkMxMThGQkY4QTQxMEFGRjBBRkYzOTdFMjQ4ODQ2NTgwQjZDQzNDNDJBNTAwOTVEMjIxRTYKK0Y2RTJDRTRFODgwQUE3NzNCNzE4Qzg5Nzk0RTI3RTZGRDFEMjAyODc3MDc4MTlDMzY2OEIwQUUwMUJEN0IxRTQKKzc2MTU1NDQ2MkUwNUQ1NkU4QTI1OUZDOTdBRjk0QTJCRkFDQUM1NzRFQzkwQkMwOEIzRUVEMDI3RThDNENBNDYKK0ZBNTRFNTNDQTQ3OTRGOTk5MjBGNjQ5NENGNkVGNEMwQjZDNTRBRTMwM0VGNEQzMkYyN0YyNjc2QzdDRTYyNjgKKzUxOTQwQzhGREM0MEJGMTZERDQ2MjJEODAzRjIzMkFGMDI1NUU3MkExODkyMjJGNEFFQTgzRTQ1OTdFOEI5RjAKK0M1NkRCNjlBNUE3QzBDRUMwOUJCNzk0MTUyMDU0QkJBOTg0NEQ5MzZDNjc5MkY5RUExNzMxOUQwQzY5RDg0MTcKKzFBODg0NzU2MkFFQjJFNDMzQ0E5NEE0MzQxQzg3ODFCNUEwNzAyQzQ2OTA0OUNDOTRFMDI4RTg4MUIwQjVENEYKKzg5QzM5MjU5MTlDNzU3N0I5M0MyNUQ2N0Q4QzA5M0M3REU4MzRBM0JDMDEzMTM5NDc0MDk5NkU0RDZCMjMzQTcKKzgwREY1QTM4MEE3ODI5OUU5MkRGMEZGMzNFOEI4QzBFOUU4MTI4M0VGQjJDMjg0QjhGMTg0MzlCQTRDRUU2MEQKKzlCQTE0NkE2OUI1N0NGNDFCRTk3OUU0OUEyQjkwQTg3OEY5NkNGMjJDODFDQjc1MTBENTZCOUFBMkI2RTYwRjIKKzAyRUVCQkM0MUE1QTg1MjYwN0VCNUMwMEJDQ0REMTE3QzE2MkE1RjFENzQ0MUZFNDI2MDkwMUQ5QUVENDlCRkUKKzJEOUY5MkI4QTZBMUU2NDAxQkE2MjI0QzY3QTZGQTc3ODM0OEVFRDUzQUNGMUU3NkU2MUFBNjE1OUEyRTk1NDMKKzI2MkI5RUZCQTk5ODE5QjFERTQzRDNDRDRENjIzQ0Y4QzAwNTE1MjkyMDU2QUZFRTc4QTJCMzUxRDc0NjBGQzgKK0Y4RDQ5RkZDQTRFNDVBQjRBMTJGQTBDREFCMjVFMDg0RUE2MEI0MEI2NjBCOEYyOUI2NEYwQjBDMDRGMzhEODkKK0MxQUVBQjVDMTYwQzkwRkUwRkUwMjgzNjE0M0M1NzlCNzZGOUMwMzgyOEE2NDE3MDk4QkFGOUI0Qzg1RkVBQjQKKzREQ0U5OUU1NTY0M0FEQzI2NzcwMjU5NDhGRjFEQUExRTU4NDZBMDg3NUQ2QTQ2M0JDQjRGRTEzQTVBRUUyNzQKKzFGRUY1OUUyMUNCMEYxN0RBMjhCREI0RDJGOEQ4Q0RDNDY3MDRBMzNFOTkwRkE5RTRCNTBCM0E1ODYwNkMzNkYKK0IxMDc2M0RDMkU0RjUwOTgxRURBQzFCNkRDQ0YxNDE1RDE1MEFDMEQ5N0FEN0M0MTUzMTdFQ0M0QjZCOThDOTgKKzI0MEY5NzE1QTI1Rjk5MkExQjdBNDI1MEJEMzZEMjA1Q0ZCM0FEMkYzRjE1MzIwNUI1MDgzOTE2QzU0NjZCMjUKK0JDQTBEMzBENUY0RTNDOEIwOEQ3QjNEMzU5N0ZEN0U5MzFGQ0EzMDE2MkE4NkI3MzA1QUU5QzZBRTAzQjkwOUUKK0FGOUNFMDkwOTU2MEQ3MTkxMzZFQUVERDhCMjY1NTY0NEZGREU4MjYzMjI2MDFFNDU3QzdBMEE4RjczQkU3MzAKKzAzNTA2QkY0NDYzODNDMTU5NEREOUQyOTQzOTBGMzU5NTdGQTVGRjVGNjBGOEREN0I2NjM5OUQ4MDhGMjNERTkKKzAzNTVBRkUwQTA0RkQ2MENDQTBFNTZBM0E0QkZBMERGQzMxNkM4QjE5OTc2ODJBQzA2M0RGOUU2QzZGNjZFQzIKK0UwOTRGOThGNTc1NkU0QTI1REE2Njk1QzcxQjA3RjUxMTY3Q0E2NkJDM0Y0MzJEMjgwMDk0RTE4NTZDQkU4OUQKK0IzNDlFQ0UzMDVDOUVFMTUwNjdEMDhFNEE2NEVGNDQ4NEU3OTJBNkU1N0VCMkM4NTlBNDJERUE2MTYxNzhBODAKKzEzMkM3OTZDQTA2MjE4Mzg4QkJCNUVDNEUyNjJGMTY4MkM3MzZCN0JGQzA2MDk2NTA4RUU3NTI3MkE3QjU3MzQKKzg0MDE1MDc3NTc4NjFFQUUzMEY1QjFCQjRFQkM0RDVDRkM0NzU1MDQxNTQ5RDY3NUVEMEYwOEY4NEJFODgwNEEKK0MyOENBRUNBRjUyN0FFRjUxNzJEQkFBMDc3Q0MwRDRBQkEzMUEyQTU4OTQwNDA2RkUwRDgzQTBFQkYwRjE5NTQKK0U2MjFENDNFNkM3MTQ1NUFBMzQ3MTg1N0MwOEU1QkZCMDI3MEE1Qzk5MUJGN0ExM0MyODE1QkMxOUZFNERFMzgKKzNDMDIwMUM3OTVBQTExMzY0ODQyNUQwNEZCRUY1OEE0RkE5QjM5QzFCNENBRDg1RDA3RTVDQjQwMkE0MUIwMTUKKzA0RUEwOTg1QjZDQzc3MkU0MDFCN0RFMTQwM0ZEODhENEU4REQ4MjQyNDIwMERCN0IxMzZGMDY4MDI4OTAxMEEKKzM3OUFBQkQwRERCNjBDQTc4NDg0OUI5ODMxNTAwQTdCNTY0ODZCNjZERjZEMThBRDkyQTg3MDVBN0JCN0E0MjIKKzZBNjE3MDAwNTgxODdERDQxMzg1RERBMjgzNzU5QzgwMjhDNkU2RjA4RDgzRjhDQzcwMUU1OEJCMjJEOEY3Q0YKK0ZGODg4MDJGOUNCMzdBNTI4QkNDNkZFQjc0ODM2MzE0MDJCMUJEREM2QzEwMzM4NTY5MzU2ODlBMjk2NDkxNTQKKzIyOTAwNTdFMTJBQzE1QUQxQzFGRkI2ODc2MDMzRENCMTQ5MThGMkYxNDUwODYxMkM4NDg1NDI2M0NCQjk5NzEKKzFEODNDRDM5RUVFNENCRTg0ODNGODI5NkNFMjBDMTk2MDI0MUI0REE1NUUwQjg2NUI4MjJFOEMzMjUzOTA3ODYKKzE4QUNBN0M1NDhBREZCMTExRjIwNzBBMTY4ODMwNzVCRTU2QzY2ODRFMzgwOTExNTEzNTc0NEY3RTU2NTExMDYKKzJFRTVFNkE5REY1NzFEMDFBQkFDQjIzRjZGQTUzNTU1RjFEMUNBOEE4QkM3OEQ4QzAxN0FCQzQ1RDJCQTM3QzQKKzhCMERBOUVCRjBCNTA1RkIzNDY3OEM0M0ZDMTg2MkRFMjFBQkQyMTdBOTZFODY5QURDMTRCNDE2QTRFNjgwMDYKKzJENUIwNUI4Q0Y5RkI5NEJDODJERTczRTQyMERCMURGMzhFQjU4QjMyNUFFM0YyMTgxRTUwOEI3NDQwNzU3RUYKK0E3NDNFOTJCNzZFQkQ5MEU3NDhFOUNDQTUzRDNGRUE5RjMxNzU3NEY2MDcwNkU3REI4ODY5REI1RDRBMTBBQkUKKzZCMzdBQzZBRjFDRUNDRjlERDY2ODNFMEJCRkM3NENENzYxNDVEOUNBM0UxODkzMEE1RTExNkNEODY1MENDQjgKK0NEMEFFNzBGQzlFQzlCREM1OTUyRTQxQ0QyQ0E3RjI3NEUwM0JFNjcxQzA3NjRGQTc0QzM0NjI5MDJDQTcyNkMKKzI5NkYzQjlDNEM3QTY0OUFEMjNFODlEMUQ3OUY0RTYxODcyQkYzNEE1NjgxRDE0Rjc0MzdEODc2Qzk2NTNGMTEKKzVBNkNGRDFDOTIzOTg1NzlGNUU2RUZDRjg1MzQ2QTk1RDFGMTg2MkM2RTA4MTA1OUExMTZGMkY0QjBCQjA0MTQKKzU1MjJBRTNBRkFCNUMwNDE5QTIxRDE1ODg1M0M5MEFDQTg4MTZBOTczQjFEM0VCODEzMjU4M0U3MEQ5Q0ZGOTMKKzM5RjA5MzI5ODE4MkJEQzFEMkY5QkIzRENDQzVGMUE2OTdFNzc5NzYyQjQ5NzcxRTM1N0U5OUU1NkNDRkUwQjgKKzQ1OEQ4NjQ0MDI1QUI4MUZDRjEyNTU3NDE4N0UwRDk3NUVGNDJEQjA3MzZFQjFEOUVBMjdFQ0E0RkJBRTg3RTQKKzFERTlGQjZFOUQzRjQyNjM4MDQ4NzM3REU2Qzg5QTRFMEVDMUEyMUM1MUE1Nzc3ODVDQTYxMEQ5QzIwMUYyMDUKKzk4NzU5NEFERjgxMUQ3Q0Y1QzdCNzg1MDVGMjk2QTA4MDQ0MjEzNEU0RjYwMzI0QkREREZFNUQ3NDU4OTQyRjQKK0ZBOTlERTRDQzhERTNCNDYyMkM5MkYyMTZBREMzMTgxNkU3RTFFOTIyRTRFRkM2ODg3QTRCRkNDMjhDNEE3OTAKK0JCQ0QwQkJDMTJCNzI2REI4NUJDMTQ1NUE4QkVCODQzQjMyQ0UyQTdBRUM1RjZCMDY2QzhEMjFENzU0Rjk3QjkKKzhFOURGNUY2MUFGQjdCOTRDMzNCRjhCQ0QyMThFNzI2RjcyNDNBNUU3QTY0MzkwQjcwQzk1MTM1QjQ0NEZCQjcKKzQyMzY5Mzk3ODY1RUU1RDlCMkQ5QjU3NTg3N0FCQUM5QzZDRTU5RUUzOTUxMDNFMTRFRTFBRkREMzE3MDE0MDkKKzhCQTJCQjk4NTQ2ODk2MEFBQjk0RjQ2Mjc5OEYxQjJCODZEMjA1NUJCNDdDODQyODYzNDVFNTFDOTI5Q0U4RDYKKzU4QTFBMDgzRTdBMjNBNjNDNTc5NUYzQzQ1NjNBNUQ3RDdBNDE5MjI4OUQ0M0Q1MThGNTJBMjM3ODRCQTBEQjUKK0Y5N0RDOTMzRUI3OEZEQUVDRjlCQzlGMDQ5QUY0MTVGOUVGRkIwQUZEMkRFODRCQThDRDRGNjNDQTVGNkM0ODgKKzczQ0MzNjI1RDQ5NzIwMEQ3RDI2RUFENzMzREQ2MkU1NjM4RDM2M0E5RTM0RUI4NDYzRDQyMTNFNzQ2ODgyRjkKKzEzRTg5NDhCNEYxOTM1NTk3REYzNEJERjNCMjBGRjM2NjAxODJEODY5NTY0NDEzOEMzQUU3RTNFOTlFNzk3NTUKK0NDRUVGNkY4Mzk1NTM2QzI5RTY3NUQzQkJCRDI0QzE2NzhGRkU2NEUzNTZBODZDMTQyQjMzRTNGOTIxRDFFNjIKKzQxRjhDNjk4QzEzQTk0MjA5RDE4NzZFMDkwQzIzRUI5RERCNjcwRjJCRUQzRDRGN0JENUNGQjhCNDBEODE5M0QKKzIyQjA1MUY2NUVFRDVCRDQ3RTFENzg4QjAwRTlGOENENzE3MjkxRjI5MzZGMTkwQ0RGNzk4RDQ3QTRERUNCNEMKKzdDQUExRjg1Mzc0MzE2QjE0MjVCNzZDMDcyM0VGNEI3M0QxQkVBRTVCN0Q2MkQ3Nzc5QkY2RDJFRUQ4QjVERUIKKzdEQ0QxMDE1RjhBNzVENkVBOEUwREU0MTIzMjhENDQzQ0JDOURFQTI1QzgzNDNERUQzQjNDNzIwMUFDRjMyREYKKzVFN0NBMTQzRDNFREU5MzE1QjE5OTM2NEVCQjgzRjc5QzE1NkI0NEI0QUQyNjdFRjcxRTM5QTU3MEI5NTE0NTMKKzM2Rjk3MTc3NUY2N0RBNzg0NDlFNDgwRDJDQ0FFNTZGMUNGOUJCNTAyMjE3MDYwMDAzQTU0OTcwRjYwNTcxRkYKKzhDNDIxMUZCNTkxQUQxMEQzN0E4OEUzNjhENzBGNDZGMTg2NTNBNURFMzc5NDgzNEJEODBGOTY2NzhCRTFCODcKK0Y1ODc3ODAzNTdBMzc4RjlCOUJERkIxMzkxNUYzODE4NEM1MUUxMjdCMjZENzU4NzAwNTE5MEVGMkNBODEwNkMKKzcwNjIzMzQ2NDFDRjNBRjcxRjA4NEQ3MzgzRkM1NTg4Q0YwQUFERkM5OTVGQTg5ODk5NDk3NjExRDFBMDZCQ0EKKzY5OTE3RjUzMEZGQURDOThGNjcyODEwQ0I4NTI0RTdCOEI5QTgxRDZFMUU2MzYwMThFRDlDNkE1MTFDODFDMTgKKzk0QUE3MkNFMUMxMURCMEI4MTU0QzEyQjMxRENGMjhCMkY3RUM0OTk0OTQwNUJFNjg5RjBDNTRBQ0VERUQ1NEYKK0Y3QzEzMDk5Q0I5MkIxOTdEQjYzQzFCNTM5QkU0MjA2RENCMUNFOEUxRUQ3MjVDODdDRUM0QTUwQUUzQzg1Q0IKKzYxMDcxMDdEQzVDQTAzQUQ2MzEyNkEwNDlGQUM5OEZDRjVFQjIzRTc0NDQxMDA2NUI1MTlFMTM1NEZCOEUxNTAKK0IzRUVFNUEyMDFFNDY1Q0EzQzI3MUNDNzQ4ODU3Njg0NDZFQzhBOEY4QzBEQTFBMzg5ODUzQUE4QjgyNTU5RDIKK0E3MEY0QjRGMDRDODBGMDg3OTQ0MEY3MDcwMTI0N0I5QUY0NEFGNjZBOUJDMzc4MzczRTcxNTlFNDZENUM0RDkKK0ZCQUQ3NDEzRTEzNTlENTJDQTI5QThBQzZFMjk3MjdDRDVBNjVEQ0RGMDczQ0I4Q0Q3NzA5RDU4MDhCMTNFMzcKKzNFNUNERDc5NEY1RTc4MEUxNjlGRURCRDE5MThDNzExMTJGQ0M0NzA4RUE5RjAyNEE3NTkyRTRCMjRFQjI4OTIKKzA1M0ZCNzMwODQ1Q0VFQTM0NUU1Q0Q1Mzg3ODdFNUFFRjUwMTRFNUQ2MDNBQ0FCQkM1ODA4RkE2MzBFOUNGRTAKK0UyN0RGODQwOTJBQTZDOTEzRjAxRDQzODc4MDU3QTQ2Q0JGQ0ZFREM0RTQwM0YyQTFFQjA1QTBGRTBFMTM4Q0UKKzg3RkUwNDAxNjIzRUFFNjEzNUQ2RTc1RjY5NUJDODg4MENBMTRFODNBRDUzNUE2QTkxRkE1QjNFOTZBMERBNjAKKzc3MTgzOUZGRkQ4RTUzMzk2MUU5REU1NUUyMDM0NjgwMzNGNTRDRkFGRDg3NkE3QkU4OTAxQUE1MzAyRkU4RUQKKzIwRjcyOTBCNEZDMzQxRkVBMzI2NTMwQUJENjI2OTE5RUNCNkRGODk5NUE1MzQ2MzFBRTY4RUJCODQ4NjZDMjkKK0U3QkFGRjBEOERGQUJGQTQxMzhGMTBFRjkxNDJDMkNCNkVEMTYzQzBERjMxNTk0RDAzMzFCMjU0RjYzNzM5QzQKKzlDODYyODcwMDFCMkUyREIwQzQ3OTcyMEQ2MjlBQThEQTY3NzUyQUNBREY0OEY3ODQ2RkJCQUI3MTI2RkYzN0IKKzVGQTQ3OEYwQ0E0MzI5Q0IxNjc2OTNDRDZFMDFCQ0M1RjQ1QjE0QjREOEQ5MzlFMDU0OTNBMzEzRDkxRkU2OTEKKzYyMEIxNzZDRjNEOThDMTEyQjc0RTA1QUI1RkNBNUU0OTI3REU4MzYzRkJBQTM0Mzk5MzVDQkRDMDJERkRGQTMKK0I0MDVFNzY5Q0NDQ0FEQTIxNTY4OTRBOUFDOEQ5RTUwNjRFREEwOThGOTIxNkEzNjg4NjQyMUJEQUM2QUFFN0UKKzlBNDFBMUUxRjhEMDZFQUY1QjI2MzRDNDIxRjgzRjNCMzkzQ0U5MTAxQUFDMUNFQUNERjFBOEUwNjJCQkVCMEEKKzM1QkJENzczMTFEQjQ1RDJERkU4MEM1RkM0MEJBN0YxNjREQTZGRENBODBDNDJCRDQ3RURGRDEyN0JFNkM4NTQKK0Y4QjdDNjE4M0M5MjYzNTE3OTQ0NDI0NjIzOTQ3MUY1M0EwN0Y5QkE5NjI0MTU5RTRFNUIwRTYyRDNCNkEzMjUKKzUxQ0IwNjVFM0E3MDI2NEVCMTY0M0M2ODJCMEJDOENEREFGRDk5OUM0QzVDNDlEMEMwODJDNzUwOEIxMENGREYKKzBCOTdGRjc4RjNBN0YyRkJFREY3OThGQkRGNzNGQzA0OUE0MTAyRTA5ODZCRDgwRTBBODE3M0Q3OEY0RkY2NEQKKzU5RjgyMUVFOUQwNTUxMDNCMjlDOEVGNUFCREFGNEI3NzAzQzkzRjJGNTFGMzUwMTcyM0VDMjFBMTgyNTYzMTkKKzM0Q0QzRTUwNzk2MzUxMzg1QTBGOUU1RDJFQ0FBMjAzNUJEODE4REU5NjlFOTFCQzg0RjlDRjcyOEQ3MDg5RjUKKzVFRjZENDM2RkYxQjgyQzFFQUVFMTI5MTg2MTRGQzg3MEZBNzc4QTY5OTc4MjQwOTNFMEMyRjIyNTQwRUNDRTIKK0FCOTY3MEQwMzAwRUNEQzBCQTU3NzNGM0VDOEI1QTVCMEExQTc1ODlCNTgyMjg2NzY5QzJFMUI4NENGNzk1NjEKKzBBRERFMEIxNTUwMTgxNTIyRUEyNTRENzE5NzI0REZCNDY0RDlDQkJCMDI2NUFDNjU1NTRBNzA4QzFCNzdDMjAKKzUzMjQxMEIxMzk4MTA1RUY0ODYxMEU1MUY3Njc0RTZGQjBBMzZFQzdGNTc4NjM2RTRFNEMxNDYzRkMwOTlDQjUKK0JFNTY5RURFN0E2MEMwMTdFOTU1MzFCMjIwRTNDQTBFNTM0REJGRDU0OUExODcyNTVBNzdBNTJDNkM3NzI5NEQKK0Y2REIzQ0UyQUZGQTk1MTIyOTRBQjg4RDc1M0UzOTI0QTU5OTFCQThCNDU4QTk2QjRGRjU3NkM4RjAwRTA2QzMKKzY5MzZERjU0MEE0OTgxRUQwMTNFRUM5QjU2QzQ3QjI1NjQxRDYzOUNGQjJCMjg1QzA1RTI0NDEyNTk1NDY4OTIKKzAyQkIwNEIyNEFGOUFBRTcxQkE3MUQ0QTlCRDZDOEI4RkZBRDBCRDQxQTZENENGOUNDNkMyMENGNUI4RjczNTgKK0E4N0MxNzBGQjZEQUIyMDNDNTlBOTZEOEI2ODY5MEM5MjAyMkYzOUE3MEY4ODNBQUZDQjA3OENFQzgxRDJBNUQKK0JENUMzQTM5MUVDQUE2MjI4QzQzRjJFNDA2QjA1NzlERTY3MDFDRDlBQUU1ODM5M0Y1RTdGOUU1NkJGMTk1RTMKKzFGNzZCNzhGNDcxMDE2N0UzRDlDMTlENzExN0IyRTAyMDNCRTE3NjMyOTUwNjNDM0ZBRkMwRjcxNjNCQkNCNDgKK0Y2QTI3RTIyOTY5NkI5MkQ4NzdDNTYyNkRFODdGQzE2M0UzQjBGNTkwQjBFM0VBMDUzNDYzRjMzOUM4MTQ4ODIKKzdEMENERUIyNEYxNEUwQzE1MDZDQ0FBQTFDRTRCMTRFQzJERkRDNEE0RDg3RjVCNDJDREQwNzlCQ0NCREFCQkUKKzIxQ0NDMTMyRjIzRDY3REFBNjJEQjc0NTI5QjRGREU1RUI2MzRGMEUzRkQ3NzQwOEJBRERFNTUxQUVERTY5MzcKKzA2NzBFQzdFMjc3RkUxOUJDQjRCMzZCNDgzMUREQUMxOTFBMzA4Q0NGNzA4NkMwNEVCQzNDOEVFNkJEMTY4N0UKKzlFNjc4RDU0OTBEQUQxQTc0NjMxOUNDMzM3MDdBMzg2MzE2QzUxNTJDNEE3QTAxNjRDRDQ2MzY3MEE1MzREOUQKKzA5OTdCQjIzMzlEQzMwRDMyODc1MzA1ODYwMkMzQTBGQTlCRjUwOEMwRDk1NUM4QkYyOUQyMzMxQjI3MkZCMDcKKzVFMzY1RjJBMDRBNzQ1OTRGRUVBNUNDMjFFRkFCMEM1RUE1RDYwMkRGQ0Y3MkUzNUFEQjM2RjlGNUI3NURDNzkKKzk3Nzc0RDNEMUZCQzQwQzlBMEUyREE3NUU4MTQzNkYyNjdENzVEQ0Q0QzRGQjgxNEUzODBGMTE4QzRGNUY1RjQKKzE1QUE0NjRFOTAyNzQwNzU5RTkyMkRCNzVBQUFDRUI2QkQwNDk5RkRFNERBMTQ1M0IxRUQ5NzlBRjlGMThGMzgKK0EyQkIyMUU0MTQwQ0ZBQTFEQTJDRUFGOTk3RjQwODZGMzRCQzdCQjJERjY5RkI4NTdFMjE1NzZCNUVENTU1MTEKKzNFMTExM0YxNzQ5OTRCNEJBMTg1MDA0NDM3NjZBQTgyODU0ODJBMzkxMTIxRkQ5OUNCOTQwQzIzNjI1OTExRTMKKzY1NTNBMzYzRkM5N0M0RkU5MTI4NUJFMDBBODA0MzUxN0FBQkFCMUIyNzZCMDA1MENFRDQ2QjUzQTlFRUQxRTIKKzA3ODc0OTU5NTQ2M0MxOTJCNjQ0MkREODJFNEZGNjBBODAzOEY5Mjc5QjUwNEZFNjQxNUFFM0U2RDM4MEU2MTIKK0JCOTVDQjkzQ0I0OEUwNTQwMzJFRkZENERFMkYzRTBCMjQzMkE2RUU2QTkyNDUyNDNCRDYxQUY0Qzk3MjNGMTQKKzI2RUQ3OUM0QjJCMEE4QUQyREI1MUQwQTYxNzY4QjMzMjRBMkQ4OTZDQzQ3QUQxRjQ5QjM1MjBFMzEyQUNBRDYKK0Y0ODVDNkZDMzEyNjNFQ0EwRUQ4N0YzOUQxM0QzMkY1QUNCOUI2NDA2Q0M5MjhCREUzMTY5MDgxMDZEMzQ4QzIKK0RDQURGOEM1MDczN0Y0Qjc0NUJBQjk2RTNDNjY4QjZGNUNBMDEyNzRGNEE2RDE2MzI5RUZBMkUyQTRDNEQwOEMKKzVEQkUzMDIwREU4NTlCRkYyMDk3MEY1RjVDRDBBQzhEN0Y1NDZBQzE2NEIyQTQyMjUxMkVGMDEyNzNERTkyODMKK0FFNjk3RTk4NzM4QTA4NjEyRTA2Q0I4NUY4REUwOTA0OURCNjYxQjAwMDM4MEEzRUI3NzZCQkE4RDQwNTg4OTIKK0VDODNFMDE5QTc0RTNCQzg3OTNDN0FDN0YzNzBFQ0E2RkZDOEVDNjM1NUNGNEQ4QkYxOTY5OUUyQ0MyQjc2NzAKK0RDRDM0RDU5MTYwMDZEQjdEQkRFOTNENUFBQkU1QkVCRjIwQzJCMTIxNkZEQUE0ODg0OEM0QTcwNEQ0Nzg3NzEKKzQxNUIxQTZCQjI3MzdDQ0ZFOUNGMEU4RkFCMTM0QTZEQjI1NDBEQUU4NkVBMzE1MEUwNTExNzJCODdDNjJFQTMKKzRBODlGQzI5MTZGMEFCMDk0MUQ5NTkwQkI4RENCMzU2RTFGMkFGNjUwRDJFREZBQkZBMEZCMzU5QjZDNDU2MEYKKzlGMUQzRTQ2NzY4NUUzQ0RFQ0M2QTc1MjcyRjcyMzUwOUIwNDEwRDUzMzFGNzZEQTgzMTVCM0Y5QUQ4Q0UxNUQKKzg4QTQ1QTUzNUJENDMzRTAwNTE1NTY4QTFFRDg4N0FFNEVDQUQzNUQ2NkZGQkY4NTA4RjI1M0MxQ0M0MzdCQjAKK0YwRDdGMTdGQzU4RDEzQkY3OTc4Mzg3QzY1MjYxQkUwQ0JFOUVCQzlDQTlGMjQxQ0ZGMkMwM0EzN0NBOURFRDgKKzI3RTRCNjQ1MDhGRUZBRkJGMUYwNzJEOUY3QzRDNTUyRTQ0MzFBNDk2NEIxODcyRDNBN0RGODQyQjE4OTAxMTkKKzAzQzA0NjdEMTQzQTA2OUEwQTgzRkI2MTkzMjlGQjhBQjM5MENFRjI5RTc2QzNCNkU0ODhDOUM3ODZCMEFGM0UKK0NCMEQ4RUFCQURGRDBDNTlBQjVBN0JCOEUxOUVBQkM4QzREQjExMzhFMzdBOTAyMzc4QjY1NzFDQ0E0ODE3MUEKK0M0QzdEMDQ1MjdCNzZBMzE3MTc0RTBERjdEQzUwQ0E3REM1RjRCQTBFQkJFOTgzMjFGQTVBN0JDNEU5MTY3RDIKK0UyRkE4NUY5QUU4NTAyQTc2MEI2MjgzOEJCRDY5MzA1OTZDNTlCQ0FBODc5QURFNzBCRTc2MTM4NEQ2QUUwOUEKKzlCMENGRjY1OEJEQTkzNTg0QTMxREQ3MTVERDE3MThBNjdGMkQ3RjNGQkJDNzUxMzVCOTBDOTBGQTRCQzhFRUUKK0Y1NjVFQjE5QTFFOTJDNjcwODVENTcxMjRBODVBNkY2ODg1NTE4RkRDMzYzMDcyRTgyQTcwNDNDNDQ0RTJDOEMKKzE0NEVBNjQzOThENUFENDAzOUQxRjIyODQ2OUQ1RDBFQzcyNTQ0OUQyRDEyRDVEQjNDOEZCOUUzODM5OUM3QTkKKzRBODBDRUMyMEVFODRFM0ZDQTg2QTQwMDgwNzNDMkQ2RUZGM0Q3QUNERTQ3OTdDNjE0NkI2QUJBRDZDQ0JCMDkKKzk5RUZBMkVDMEM3NDJGNzEyMEYwNTE4N0U2MDA1RUU5MjAzRkJBNUNDNEJFM0FBMEU3Q0M3MDdFQkY1QkZBQkEKKzVEQjVFNzg2RkM4OENBNjdFMDZGNkQ1MDRBN0NDQTRBQ0M3MDAyRjQ4QTBGMEM0ODkwM0VDMTM2ODUwRjA0OTUKKzREMDQyRDJFNTUwNzc4ODhEMTUzMUM1MkFFOTI3QUY3MDExRDMxMUNCQTFCRTgzNkRENzU1NDc2NTc4OTY2QTkKK0QzQTU3QTYwOTQ4Nzc1MEMxMzZERjBCNjQ2RDgwOTBCREY4NDQ3NEI1QjU0NUE4QzdBNkRGMUYzOTMyRDg0MzMKK0QzMUJFNUM1ODdGODRBN0IwMzM2M0EzQUE4MDE1NzRGMjEwRDQ0QzdFQkMwNDg4MEY2N0JGNDRBODE3Mzg5MEEKKzQ0MjJDREMzRjNGMkMxNTg2OUNDQ0JGRkUxOUQ5MTJBMDI2RkE4OTkyQUYzQTlCQzgyODRDRUY4RDFENTIzNkMKK0M2MDM4OTgyQzY5N0M5NzcwQ0VCQjY4MEM2NkI2MEQzRTlBMzREMTQwQjVDNkI4NDBDRkI1Qzk5MTYxRTdEM0MKKzdCOUNGNEE3RDFBNEM1MEUyNDdFMUI4QTM4M0E0RjJFOEE0RjYyRENCQUZDRkJGRjBFOEVGQzlDMEYzNTE1M0MKKzMzMkUxMjE0RTlGQkU4QkI4NkFBNjVGMUQ5REExNkI2MTZCOEM3ODFFNjJDMkZDNjFERDA5RUQ4M0M1RjM2NjQKKzI4QzlEQjIxNEFGNURBN0E1NjQyQzBFQzE4QkZCRDA5OUQ0NkFBNjZCRDREMzYxODBBOUEyN0JBODAwN0FDQjYKKzJGRkYyN0U4NTYxQUU2OTM2MzUwMTRERTQwNkM5MUMwRjYyQjVEOUNEQUNDNEFEMzkxODg5MzE1RUI1MzZCOTAKKzgwRjFDRDE1OTU0QzE5NDE2RjIwRjkwNzIwNEU3RDlENzczNDZFOUJFM0I2MjFGRDAwMDM0RjU3NjY0RkM4QzcKKzFCMTY0NDg2Q0ZGQUQwQjA0NzVCREZDQkUwOEQ1RkM2RTYwMkVBNEJCQUUxM0IwNzM5RTVFMTJDRTg2N0IxMTAKKzg0MjQ4RUVFNUE5ODgxOUMyMjEzRDU1N0I2MUY4NjczRjc1QkRCOEIzMEVGMzk1NzhGNDY4OTVBRURDQkY0QzcKK0ZBODY1QzkzMEM4MTAyMTczMjJDMzgzQ0ZERjdDNURDNzU1Mzk1NDMzMTBCQjJCMjQxMjAxNTY4OUNCNkIxODUKK0MyRUU3OTkwRDE2MzIyQzU2OUZGRDVBOTg0QjYyQzlENzA3ODlDREQwRUFCNzNCMkMxQjlGQzQ4MzQ3OTQ0NTcKK0IyN0UxOTY3MjE3Q0ZGMDY1MUQ5MjdFODBBOTdGNjNBMjY0MzI1RjMxMjJCNjA5QTVEQTAxQzEzNzA1Njg5OTUKKzhCRkJBMjJDQTRFOThDMEY1MkY2NTM5Mjk3REVERTAyN0I0M0Y3QzQ5N0EyNjZFRUMyQkNDNDE1ODBFQzQxODEKK0MyM0NENDk1NTI3QUVBMzcwOTIwQTZDN0YyNTczOUI5MzRFMkE5QzM2OUFGMTdDOEJBMTA4MUFFMzcxQUNDNjQKKzkzMTMwQTM0MjlBM0U3NDg4RkM2RENBMTgyNEY5RTM4RTY2ODM3MDJGN0JFNDBEOEI5NEE4QjI2OTY3QTcwOUEKKzNGMDcyMjA3RjhGNUU1RDNERDFBMzNGNDhGRjg2QUY5RDdBMTgxMUNEQzJCNTE0RDMxMDkyOUQwNTlCNzg3MjAKKzgzQUYzNzZGMkQyODMwNkEyNkJBMTZERDBEMkQwM0UxMTIxOUE0NTNBMjk5RUI3QkM2NzAwOEQzNDM3Mzc4RjAKK0NFMjhDMEE3Rjc2QUE0MjY5MjAxRUNDRjlBNDFENjJEODI2RjhBRkY2MjlDODNGODI4NjEzODYwOUUzMUI2RUEKKzI5NkM4RkZBMzI2MTdEQTQzMjdEMjlCNkJEQjI2QUU0NEQzQzJBMjY4MkVFQ0NCMUEzRDlCQjU4MDI0Q0VDQTMKKzY2MTM1QkVCMzkxMjRCODY1REVENzM2NUE0MjAzRjk4RkI3NUEzMDYyRDUzOEQwOTAxQjMzMjVBQkYxQTJBQzUKKzM0ODI2MkQ5NjgxMzRBQzhBNjUxMzlDRDNGNjA1MTJFOUFCNkVFNTYyQkM2MTUwQTJDODJBQ0U0NEM0M0I2QTEKKzlCMTkwOEZGQjMyMEJGN0U2RTI2OTJDM0U5NTkxRTMwMkNBNDJFOEM3RDU1OUFGNkQ0NkMxNURGMzAyMUVDQjAKK0FEQjlEODc3MkFCODk3QjAwQzYwM0VEQjk4QTFBRkQ5OUYyMjQyNjI0MTBDQjdBQUIzRjgwRjFBMDdFQzk5RUIKKzM5OEYxNkUwRkVBMTkzMkEzNDREN0E2RDkyREJDMjZDRDI2MjYyNkFDRThENjE3QUI4RkQ4ODNGMjAwMEZCNUUKKzYyQUFFNkU0NTBBN0ZGRjJFQ0UzMDY5RkIwRjU4Njk2Qjc2MkYzNUUzRjU1MUU0RThCRjJFMEJDQTI1NkVBQjAKK0UxMDk4REZDMzFEMkVERjRDRTREN0JENkE0NzhBOENDNzRBNzFDNEQyQjU0QkI2NkU1MzQ3MzE0NDczNzVCQzkKK0I4MDc3QzIxNjZBOEMzMUUxNEE3M0VCQUEyMzMyNUJGRTFBQ0M5QURGNEM2QjlENTMzOUREOEZGQkU4Mzk3MDkKKzBBMjdFMzA4NDBFRjk5RTcyRTg4OUY2MUIxREFDMzMxQzg3MUNCMkYxNEEyOTdFMTRDNzc3MjNFOTE5MjI3MUQKKzgwODJBREY2MTE5M0Q2QTQyRkVDRTI0QTI4NUJFODM0MzdBMUMzODk3QzJCRkREMERFRThDRjdCNjA2RjMyRUUKK0JEMDAyQ0E5RDU5MEM1RDEyQjQ5RDA1QTI2MDE4QzQ1MzQwMDAxOEUwOEZFMkUzQjQ0NTBCNzhDREQ2MTNGNjkKKzYwQkNBNDYzNUUzNEM1QTRFM0MwMjkzMEUzN0NDOEE2RTc3ODA4MkIxNEJCNUM1MjIwMDJDQzc0RkQ5QjIxQzcKKzYyQTUxOUYyRjlEOThDQTExNTYzRDQ4MTcxOTFBNzRDQUE4MDg5N0Q2OEVDQThFMzczRTgyMDE3NUYzOEYyNjgKK0M0OEI5MTI3NkQwRjQxMDIyRTQzMzdGODIyOUIwNjA4NThBRDQ0QjE2M0Y5RTU2QUNENTUzOUIyQTk5MzQ3OTgKKzI3RUQwMDYzMDU4NDE2ODU0QzRBMjg4NDI0REVEQUFFQzhCQkJDRUU3NkRFN0I0NDNENEUyRDZGMzcxQ0Y2NzAKKzk2NjU1Q0U5QjE4RUM4Q0I1MDI0RDg0ODI1RkI2RjJGOEM4MzE4NTVCRURCMEIyNjUwRTEzRjk0NzkyMUE5MUQKK0U3MjhDM0RCOERDMENFMjVBMzVGRjRERjI0MDBBREUzMTdBRjdDQUQ0NjhDM0NFOTRGNjQ3MTI0NzQ3MTIxRjMKKzk2MjlEQzlFQzJCOEJFQzVFMjlDMDE2MUY0QkQ2NTY3RkE2ODFEQzQ2MTBGODc4RUMzREQxQzgwNDc3NTgxMjcKKzU4MzdCQTkzQ0ZDREU0NzNGNDcwQUJBRDlFNTM5NkE4QTk3RDc4RjVBM0VFNTE5QTUxRkIxNzJBNzJFRkI2MTQKKzc3RjUxRjFGNTVCQUNEMzUzRkE3QzgzMEQ5RjdFRjk5NzRCQjI3Q0U0NzhENjhFMkMxMTMxMEE4QTgzQkM3RDgKKzAyOEMxNjUzMTRBRjk2MEY0NUNCOEI4RDE2MTBENDAxNEY5QjZERTAzQzhDRTZEMEJDQ0E2MzczQTc1MzU1MTkKK0Q1MkI3QTg0NDczMzdBNDE5OUFENTMzOEYxQjE5MjU3QTJDODk0ODc2N0VBRUM2NkIxREM4MzlENjc5REJBQTMKKzAyNUQ5QTEyMzA0RjBBRjlBNjIxQTAzNzUyREE2RkNGNkZGOEYxMDNCM0Y4QUFBMzE5QzQ2N0Q5QjBCRERFMjMKKzkwRkJDQjVBOUYwRTUzREYzNTREMTgxQTRCNDEwMTUzQ0M1RkFDNTIyODI4NTFFQzk3RUM2ODc3Njc0RTk0MTEKKzc5MDdEQjQwOTk5RjMzQ0VBQkIzRjlENzNBOEZGOTdDODM2NjQwNjQ0OTA0QTYwMjE2QTA5RDNGRENBRURCREUKK0ZBRjEzRTc4ODVFQ0FERjY5QjNCM0E4QzdDNDhCQTVFRTlEQjRCRDY2NDFBMjU0QjFFQTAzRURBNzcxODU5NTQKK0RGQ0U2RDc2NjMyMjdFMkEwNjI0MTRDRjA2QjdDNUI0QjFDRjU0QTdCMjg2NkVEREQ4OTNEMjc5REMyRTJEQUYKK0ZCRUQ3MzZFM0E3OUE3MkU2MDJFNDg4N0NCMEQ2N0ZCRDFEMjk5NkVBREI3NUM0OEY5ODM1Nzc2QUU2MDRGQkQKKzFCQjcxMjBFNDI4ODY3OTY3QTFGQkM1Nzk5NERBNzFDOEU4RDMwMjZBN0YyNTk5QzA3MkRGRUMwQUQwODc4M0YKKzk0NkMzODJCNkMxMzQzNDNENEJGQjg2RDIzQUU1MDI1RUE0QjM2MDQ1QjhDRDcyRjBDNUM2MEY0MDRDQzlGNjkKK0JEODQzMTE1MEE2RTU5ODExOEExNTU1RDg3MjIyNTYzQUYxQkY4NTg2QTk5REM1N0Q1N0JDQzk5Nzc2NjM5MjcKKzBCRTlCQjgwNzAzRTFEQ0ExNkVCOUQzRjQ4NzVERjU1QjZFMTQ0NEY3MTU4MzI1OUUxQUY0NTYyMURCODYzMDAKK0VDQkEwQjA3RkE5RjczRkMxNzc5OUVGOEFFOTU3ODNDMTY4RTRBQkE1NzZENDhDODAwNUNCOEY5QUEwMTIzMjEKKzNEMzcxMDk4N0UwRjYzQTcxRTVGRkEwRTE5MzY1MDUwMTYwRDI2RDJCQzRCRjBERkJDRUY1Q0M1NkZCODg2N0EKK0NGRUExOUU0RjBDMzM1RDlERjQwM0U1MjE0OEFEMDk4QUNBMERERDlDMDI1NDZCMzZGMDZGNkQzRjY0MEU0MEUKKzA3NDIzMTVDMkQ5ODIyMDcyRTdBNkYzMjBBRDU0OUQ2MzMzREM3MDdFN0VFMUVGNDVDMzRDNDIyRkNGMDcxQTMKKzVDNEFFNUQ5RkNENEVDNzc4Q0ZEQTA0ODc0NUI3NDFCQzE3NDIyMzY3RUZFRTQ1NDQ1MDgxNTg0MkZEMDg5NDMKK0VFMTNDNkMzOEIxMUY4ODk1MTM5RDI2RTdDNTU5QzY4RThDOEREODI3Rjc1OTU2NDk2MUE5MTU3QjRCOTg1MTcKK0I5M0E1NUJGMjc0NEUzRTkyQ0IxMkU2RTk3MUM5MjRFRjE4M0FGNEE2ODNEMzQ1RjRCMjBEQzM3ODcxOUU4QUEKKzNFMDVEQkFEQThGQkM0OTBDMTk2MzE0NkY4QzA1N0M2NEZDODk0QjdBMTQ2MDZFMUREMEEzMDhCMTNEOEVFODYKKzRDNkM3NUZGNjgwMjM5OTVEMzNFMTEzQTUwMTlCNkQ0ODFFQTMzNjAwNDI5NDUzRjQ3ODE1RjQxN0VBRkNBQ0YKKzYyMjRCRTBCMzAxMkVGRTdFQTcyOUU3QTQzMTFDNDlBMEY4NzZCNzM5RjM1QjhBQTlBOEQ2QzY5QTRBRTM1QUUKKzAzQkE2QTczMUY3REMwOEJBRkJEN0M0MTE0RkZFOTUxNTkzQjREM0JFQUFFMDU3RTQ1MEY0M0UxNDNCODI1NTUKKzU3NEIwNUFGNzQyREU4RDQyQzlBOTJEMzJFRTQ4MENEMDY2NzFDNjQyNTU0QjQ0MDc2OEIwNzFFNzQ5NUM4QjAKKzJFOEIxQ0E2RjFGQUEyRkY5RUVBMjUwNjVFMUQ4RkMzMjQ0NkNFOTE2REQxRjQxNzVBRjI0RUQzN0QyNEJDQjYKK0I1NUY1QzgxMzIxQTgyQTExMDQyRDFDMDFBNThGQUI2RTY0OUIyRkRBMjdFMjU4QTIzNUQ2ODQ3QjAxQjk4RDAKK0NDOUIxNUEzMEMzNTg3NEUyQjVBMDk3NkIyMzJBM0Y1NDlBRURGRDdCMUE0RTExRjFBMjFFRENENjUyMTRCRUQKKzM4QzdDRUZBRUI2QzlEMzY1MTc5MDhGNURFNTgwNzgxRkYxM0MxMTUxOTI0NENFRDM0REJBQzU1RjdCMjM0OUQKKzZFRDdGQzQ4MjJDREE5NjZBQ0ZBNzhBQjUzMkU3NkY4RjhBQTUwQzJBRTVDMzNCNjg1QUEzM0NCQzU2MDUyMjIKKzdGMUI0NkU4RTEyODFGMzk4MjEyOTE0MDFEQjhFNjhCMjUzNDZCQTg0Njk2QUVENkM2ODAwQTdENDhCMzEwQ0EKKzc0Mzk0OEI0RUM3RjZDMjFFN0UwOTMyMjIwRDNCMzg2MUYxRERFNjY3MzU5QjUxMEFFMjc1NzhFNEVBQjE4ODQKKzg0QjIxRTQyMEFDQkYwNzE3RDAzMUZFNUQ4Q0JGOUFDMTAzRDU2MTZBMjlCNDY0NjlBNTE4MjE2N0FGNjk3MTMKK0Q0REU1QTFFNkIyNjk3NzlGQTgzNEEzOUNEQTgzQTFBRjE2OUE5NDgxQ0UzMUI5NDFGNDBEMkFGNzEyOEQ5RUMKKzBBRjUxMzQwNUQxNDQ4RTMyOUMwNDE5OTY5MDExNjFFRDZENEY3QjhFNkZEMjA0NEI3QjM1NUFEQUY1NTIwRUQKKzQ4QzRGQUQxMzk0RTZEMDM2NjlEMUJCRUM0ODgwOEI4OUI0NjUxNDlGRjY0MkU3NkMxNjA1QTM5QUVGREE2MUUKKzAzOTk4NzExODlCMDYxMjMwNTM1NzQ5NURENEQ3MkY5NjgzQTQxRTMzNEZFODIxM0Q0MEJGRDg2MzBCNEM3MUMKK0ExNjAxQUMzQUUyNTMzQjMxRDM5QkEyRTcwQjU4NURCODA2RTgyRDgyMDUxNzMxMDBDNDY4RjVDMjMwMjYzN0IKK0NGNjVFN0RDMjU1REQ4NjFEMzYzM0NFMjU0MUFGQkJFMEY2RDg4NzM1RUY4MEY0OEQ5NUU5OTE0QTc5N0I0RkMKKzNBNzg0ODhFQjAzNEI3RUJEN0FDMEVDM0IxQ0Y0QkZFRjU3REQ5RTNDRkYxNzJGRjM4RDlDOTY5MENENzVFMTYKK0NGQUVBNjEwNTkwMjgxMDc5MEU2MDI4NDJCRDE2NDM2QjE1OENDNjAwRDdDNDk5NDJGNDk4QTM2NEZGNDdGRkIKK0E2Njc4RENEQUFFMUVDMzJGQzA0Mjg5RjA3MEE5M0MxOTJGMTcyMTkwREZDRTVCQ0JGQzEzQ0ZGMUJENzIyODkKKzhEREMyQ0FCRUNGREI5RjdERjlGRUQ4MDAzMUM3ODA1RjUyQzNENTYwODA2OTJCMkRGRTEwMzA4NEQ5Q0YxMDkKK0Y0MUUzQjE5OTZCQkI0OTM0QUZCRjYxOTlGNjQ5NUY1RTM1MTA0REFGMTg3M0JEMzMzNDBEQjRFMTEwQkUxOEYKK0M2N0VCQzFCNzlBNDIwMzYwQUNEMjU1NEM1QzI5RDgzNTdDRTZFNjgxRDc2N0QwQkFENDZCQzAyMkYyNTdDOTAKKzU4MDFGN0E1MkUzQzQ1MEQxNjRFN0MzMDNFNkVGQjZGODk5RjExNURDMUJEMjA2NTI1MDVGNkY3MzMxODNGNDEKKzU4NTUyNEFENzVGOUE5MEREQkQ0NkM1RkVFQjc3QkFEODk4NzdDNjYzRUY1QzhEM0Q5MDUwQkE4NTFGMkU5RTIKKzU1QzhDRUU1MzBDQjgxQUE2RTMwM0NFMERGRTI0MDMzNDU3MEZCRDM5QTUwNzE0RUYwNUUxODQ0RkQzMzg2NDgKK0YzNENCRTNCOTJDRDcxODI3MDYxMDYwM0ZEM0FENjNBNTAzMENGNDhDMkUzQUExMUUwNTRFMTA1RUUwNTRGMTIKKzIzMjlCNzk2NkNEQ0MxMkQxNjA3MzlFRjVGOTRGRjcwNjlENTA4QUMzODAxNDMzRUVEQjAyREI1N0E5QkQ5RTgKKzUxOTE4NzVCQjlFRjI0OUFDQjUyQUExRDhFQzJENEJEMjc5OThCQTY1ODQ3QTkyOUY5QzRDMDM3NzU5ODJEMTUKK0E1RjNCQUY5NEYyMjVDMEVCRjQ1MjQzNzczMDczODMzMzFDNjY4QTgyRDU1Mjk0OUI2MUEzQTNCM0VEQ0EzOUYKKzVBRjBERTE4RjA5Q0E3RDU1NjBGMTMzN0I3RTUwOTA0MTdDN0NBQzJGRTQ0NTlBNDE3QjhENDc4OUU3MjFCOEEKKzIxODVDMUY2Njk3RTlGRDBCNjQwQkMwQjA0ODIxQzkzRTI2RDJDMDFFQUMxMUM4MUNGMzc2RjUwOENDNEM5QzEKK0YwRTgxRDIxNkQ5NTlBMTMwQzU4MTlEOTlBNTBERDlDREVBNjBBQjk1QjcwMjRFMkI1QTRBNTFFQTkwOTI0RTgKKzVFODI1QURCMkYzMDJBMDRCMkJBMzczNDYyMkRCQzlBNjAyNDIyNkMzRTE3Q0NGNEI4OTM1OUQwOERBMzVDN0QKK0VCODk0NUE0MEExODE4QTlCM0QzQzg0NTZBOTgzNzY2NUNFMDQ3N0I5NTQxQkMxMUMwNUI2QUM4RjQzMEQzRjkKKzFEMTA2RkU5MzJCRDkzRUMwMDJENDZBRkExM0Y0MTFDNUZBNkFERjNBNDRDNjU4MDUxMERFRjc5OEQxMTlFOTEKKzE4Nzk0NDcwRkE1QTY2OTRGNjgyODJCQUQxMzZGMDcwNUU1OTlFMkJCQkM3OTM1MDkwMkI1OTZEQzE1QjA2QTQKKzNGMzJEQTNBNDE1QjY3QTVCRkZFQkUwMUNBRTBDODk1RTdDODdDQ0UxMkI1QkQ0NDQyMzAwNTI3RkNEQkU3NjMKKzVCQkEyMUNFNjAyRTA4NkE0NzVDMUE1NEE2Q0UyRUNERjFBNUM2RjkwOTkyNTJFMjRGOTQ3QUNCQjlBMkNGNEMKK0ZEOTJGM0NBOTU5NzQ4ODQ0NTg1QzM1NDEzMEU1OTIyMTFEMzlDRkMwQzczNkYyNzNBRUU0QkNCNDI1QzE5MUQKKzg1Q0JENEVEOUExMUU4NDFCRERCREVCMURBRkJCMDdBRkI0NTlDM0M3QzFFQjk5ODVFQTQ4ODYxNzBBOEUzNDUKKzJFRDc2NEQ0MDE5NUY3OUEzOEQwQkQzQjEwODA2QUY2RUQ1MjBGRTBFNzI4QTJERUJGOTUxRUIxRDIwOTRGQzIKKzc5RTJFNDQ0M0E1QTQ5Njc3OTU4MDIzNDkyMzQ4NzcyM0E3NjBGNEI3QjkzQkYwODhCNjgzOEY5QUJENUU5MDcKK0Q3MTdFRTI0RDNEQzBCOTI3RDMxMURGNjgzODY3NjkwMTJGQUIyMUQ5NEY1NjRBRDQ3MTRFNUYxNzc4RDU2OEUKK0VGNzgzQzkxMzNCMDNGM0RBRTQxNDA0Q0M5NkZEQzg4ODE2RDhEN0U0MEVFRjM5N0ZFNDdDNjk3NjM3RUEyNTAKKzJCNzM1RDIwMEI4MDFFMTRGQjgxNzNFQUQ4NTE4QkZCRDBDMzUzRjg3OTkxNDdEQjg2MzBCQjA0Q0E1RjI1ODMKK0I0QTc2NDIwQ0ZCQkRCRUQ2NEIxNjI0NDg2RkI1QTA1MTRFNjUxRjdBRjQ4OTc5MEVFNEQ5NUI4RDY4Mzg2M0MKKzlBMzZEQzhDM0RFOTBDNUU5MENEODIwOTNFMzc3RDYxOUNCMDY5NzQ4NTI3MzY1NTVDQzU1QTNCRDk1QjUzNEMKKzRGMDQ4MUIzMzhFRkZCNDdDRkI5RjE2NjE3NzI4RTExRUM1QjM1ODNFRTM4NTYzNDRFMDkyMjg5RDhEODlBNEYKKzk1MURCNUM1MUI0OURFQkQwNzkxMkQ2NTMwRERENEFGMzEwNDY0Q0U3NUZGNkUzMTVBMDY4MzBDNjJENDU2ODgKKzQ4OEYxMTRCRDQ3QjlDN0ExNjc3MjlBQTNERTNDN0U4QjExMUU0MjBDN0JBNEJCQzM0M0Q5QjY0RDUwREY1QzQKKzFDMkZGNTE2OTVGMUU2NTExODAzRDM2Nzg5RjNFQ0Y5OTEyMEI5Q0M3NTAzQ0I3MDEzMjcxQUJEODhDNjYwQjgKKzUxMjAwNjNEOUFEOTg4NzI5NzM2QzE1MkJEQzZBMjlGMkQ1OUJFODg3RUM3MTkxMkE5Nzc0QzFBN0JGMkI0MEIKK0JGQTYzQ0VDRUU4OEVFNTc5NzI3NkQ4OUNFNzk4ODE4MDg2MUE1MEIxRDNFNjJEQUJEMzY4NkUwQjk0QTIwRTQKKzU1Qjg4ODg5RkEyNzg0QjREMkUxNEQ3RkVGMDcwMjZFMzIzQjFCMDU4MkU0ODU4Mzk2NjI4NzlEMTkzNTQwQkIKK0JDRTdBRTQ1RDc3MjU2Q0VGQ0JGQ0U2NTg2NzYyMDlEREFGRTY4NzRDRjA3OUI2MDNERUZCNzI5RjE4NDJFODEKKzRFMTY5REQ5NzNFMUUxOTA0RUM1N0E0MzQyQTdDMTY4MTJCNzVGQzRGNzUzQTgwMDNCRkUyNTM2OEFGNUUwMkMKKzc2RTU3OTBDNjFGNERENzRBNDMyQzcxREIyMkI4NkFFMzI0MTM1OERFOTJEQUZEQTk1RjVCQjJCNEY3MzUyREYKK0Q0N0E3QUYxREJGOTVFMjlGMzBBRjc5RTY1NjlCOTcwMjYwMEM4MDRFOTJENjdGRkZDMUE3NERCRDAxQTI3NzMKK0Y0QzEwNDI3QzMyRDBCRDg3M0VDRUIzMTI4QjU0Njk5NDM3NDBCNzAwMDY5NEQxQTFBODlCOUI1RjNENzg3QzAKK0Q1NTkwODFEMkNGOUE5RTI1NEMwQUFGN0FEOEU1QUJDQUQ3MEI3OUM4MTYyNEZGMUJGRTIxODg4M0M0OTI1CiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCitjbGVhcnRvbWFyaworJSVFbmRGb250IAorJSVCZWdpbkZvbnQ6IENNU1MxMAorJSFQUy1BZG9iZUZvbnQtMS4xOiBDTVNTMTAgMS4wCislJUNyZWF0aW9uRGF0ZTogMTk5MSBBdWcgMjAgMTc6MzM6MzQKKyUgQ29weXJpZ2h0IChDKSAxOTk3IEFtZXJpY2FuIE1hdGhlbWF0aWNhbCBTb2NpZXR5LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorMTEgZGljdCBiZWdpbgorL0ZvbnRJbmZvIDcgZGljdCBkdXAgYmVnaW4KKy92ZXJzaW9uICgxLjApIHJlYWRvbmx5IGRlZgorL05vdGljZSAoQ29weXJpZ2h0IChDKSAxOTk3IEFtZXJpY2FuIE1hdGhlbWF0aWNhbCBTb2NpZXR5LiBBbGwgUmlnaHRzIFJlc2VydmVkKSByZWFkb25seSBkZWYKKy9GdWxsTmFtZSAoQ01TUzEwKSByZWFkb25seSBkZWYKKy9GYW1pbHlOYW1lIChDb21wdXRlciBNb2Rlcm4pIHJlYWRvbmx5IGRlZgorL1dlaWdodCAoTWVkaXVtKSByZWFkb25seSBkZWYKKy9JdGFsaWNBbmdsZSAwIGRlZgorL2lzRml4ZWRQaXRjaCBmYWxzZSBkZWYKK2VuZCByZWFkb25seSBkZWYKKy9Gb250TmFtZSAvQ01TUzEwIGRlZgorL1BhaW50VHlwZSAwIGRlZgorL0ZvbnRUeXBlIDEgZGVmCisvRm9udE1hdHJpeCBbMC4wMDEgMCAwIDAuMDAxIDAgMF0gcmVhZG9ubHkgZGVmCisvRW5jb2RpbmcgMjU2IGFycmF5CiswIDEgMjU1IHsxIGluZGV4IGV4Y2ggLy5ub3RkZWYgcHV0fSBmb3IKK2R1cCAwIC8ubm90ZGVmIHB1dAorcmVhZG9ubHkgZGVmCisvRm9udEJCb3h7LTYxIC0yNTAgOTk5IDc1OX1yZWFkb25seSBkZWYKKy9VbmlxdWVJRCA1MDAwODAzIGRlZgorY3VycmVudGRpY3QgZW5kCitjdXJyZW50ZmlsZSBlZXhlYworRDlENjZGNjMzQjg0NkE5N0I2ODZBOTdFNDVBM0QwQUEwNTJBMDE0MjY3Qjc5MDRFQjNDMEQzQkQwQjgzRDg5MQorMDE2Q0E2Q0E0QjcxMkFERUIyNThGQUFCOUExMzBFRTYwNUU2MUY3N0ZDMUI3MzhBQkM3QzUxQ0Q0NkVGODE3MQorOTA5OEQ1RkVFNjc2NjBFNjlBN0FCOTFCNThGMjlBNEQ3OUU1NzAyMkY3ODNFQjBGQkJCNkQ0RjRFQzM1MDE0RgorRDJERUNCQTk5NDU5QTRDNTlERjBDNkVCQTE1MDI4NDQ1NEU3MDdEQzIxMDBDMTVCNzZCNEMxOUI4NDM2Mzc1OAorNDY5QTZDNTU4Nzg1QjIyNjMzMjE1MjEwOTg3MUE5ODgzNDg3REQ3NzEwOTQ5MjA0RERDRjgzN0U2QTg3MDhCOAorMkJEQkYxNkZCQzc1MTJGQUEzMDhBMDkzRkU1Q0Y3MTU4RjExNjNCRENFRUE4ODhEMDdCNDM5REJENEU4QjRDOQorRDE5OEMwMzg3NEI1RTZGOEZCRjQ5MjIwNjVBOTJCQzNFNjZEMDVERTUzOTcxQ0IxNDI0NTEwRTg5MjQ0Mjg1OAorRDY5Q0UxRjc2RTREQTc2Qzg3Qzc2M0E0QjJGRTM2MzIxRTU0QjEzMjhDOTE1NUI4RUQ2MzYxODU1QTE1MTcyMworMzM4NkFFQTNEMDQyQjhEODlDOEMwRTlBMzNFNURGM0I0NjZGN0JCOEMyQzhBNEVENENEQUZGNTVGQzZEM0VFNgorMEFGMkNFQkZDMUFDM0E2RTY2OTJGOEJCODFGODJEODZCQUU4NTAxNkFENjJGQ0IwNTQ2NzA4MkMyRTVBRDM0OAorNDREMTQzOUMyQjU5RjY1NTkwRTU3Q0EwREU0ODFBN0EzNEU3OTkzMUIxNTEzQzRDMzAxNTYxNzA0MDlBNEJCOAorNDZENDEyRDFEQUY4OEFEMzA3MjJGMTJEQkNBMUNDQzZCNEJDQzI4RDA2QjBEMjkxNDlEREVDNTIwQzhGQkExMworNkI4MkUyRTE3OTBGMDBCMjE2MjgyRkYxMjJFRjBENDdCNzBBMUIyOTUxNERERjdDMDQzNUVEMjM4QzE0QkRGNQorNkRBMjQzMTE3RkJFRjczOThGOTdFQjk1NTk3NzA3RUQ2M0M2Nzk3RUJBMUI0NkVBMTlBQkIxREFCREExNzFCMworMTZDRDUwMEY1RDY0Q0JGQkU0RjlDQkMzRTY2QTM0NDI3RDNDNEQwQzQzMjcxMDI4OTM4MUY5QkZEOTFCNEZGNAorMUUzQTg5NkMzRUVBMkYzMTA1QzIxODg3N0Q2QzBDNkI3NjM3NjBGQTM2NEQwMDA2NUUxQ0FFOURDQjU2NzZFRAorMjg2QTlFRDBEMUM5NDZEQ0E2QTJBNjcwRUUwOTM2RkI0NzA2Q0M2MkUyMzRDRkVFRDM0QUE2MTVDNDhEMjg3MgorQTA4N0YzMDk5MEM4NUU2NEJBNjhGM0Q1QzExNzEyMzQ2N0RCNDExQzlGMkQ2RjY4NThDQzcwQzFFMzUyQzQ3NworNzEzMDk3MzIxQjRDNEZENEM1Q0RFMzA1NDE1Rjk5OEU3MjQ1OTA4RUVERTZFMDU2QTczNkVBNzdCRDhDNjM5QworM0E3OUZGRDBCNzRCM0QyOEYwNDk0QTExNUYyODQxQ0Y4QTg4MjdBQjU2MDhGOTZGRDg5OThBNUY0MEZCM0RGRQorM0FBMEM3Njk2REU0RTFEMThEQzBENkU4NEI5NDMxNzVGQzM4RkZDNDJBOUMwQ0JCMTNBOTA4OTc4Qzk4QkZFNQorMDM0Rjg4NDgwRjMyQjlERUIyRkQyMjhGRjZDQjBCODlCMDQ1QUIwMjAyMEM4MkUzRjU3MTZEQzY0MDYxMzE4NQorOUY1OTdDRTI2MjcyOUJDNTIxMzJGNDM5MjJCOUUyOEJCNzFBMzBBQzg3MDk2MzQ1NjFCMjJEMTNDNEZBRkUwQQorMTJDNDQ1MTk2OTIyNkIyMjAwMzhBRDhEREE5OTBBNEUyQ0FENTNEQkVBQjY5ODg5OEJCRDMwNDYyMzRFQjRFQQorOTAxMjg3RTcxQ0I0MTI5NkM0MzEzODNBQjg1RjE4ODgyRjY1QkUzNjkyM0Y2QzBGRDZGQURBQzVCNDJGREI2OAorNjRDMDZFMDQ3NDM0RkE3QTY1OUVGN0YzRDFBQThFNTQ3OTM5RkJGOUMyRUQ3QUM4MjlGMDNDQTU5QUZGQkZBNQorQTdBRDJFMEZDN0JCRTYxOTk2MUFFMTc4NUQwOTQ0NEIzMzM5OTMxOTlGRkVEMDA3MzgyQjU0RERBRUJFMjFFMAorMUU3NUUwQUI2RDMwOURCRTUzQkM3QkI5Rjk1RDM0MkY1MTc5ODU3NEQ3MEI5NTAyMUZBNDAxNjNBODZCRTZDOQorMzQyNTM2QTU3MzA4MzdDNTIyRDUzMTRCMTI4OUQ5QjdFNEVERDEwOEJFN0YzNUEyMEFCMkExNjYwOEY2RjAwNworNkRERDcwMkE1QTlCQTEzMjVDRTJDMUNEMDIwREY2Nzc4NzIxMzVDRjA0RjRFNEYxRTlBQTZCNDk0RTJCQzIyRgorMTA3QzMzMUE3RTgwNzE4QjAzMEExMTAzODA0RDE0NDgwMkUzQjAzRUY3Q0IwODNCQ0NERUFDN0I0M0YxQjRGNQorQzFCRjYwMTY3NDFCNzQxQ0Y3RTEyQjRCRjk1MjIxQTcyQ0M5RjQ2NTcyNjQ3NzFBQTY5QzczREExREEyOTEwMgorNjVEMDFBMEU2MUYzMDI0RTY3MkFGQ0NCRTEzQ0QwQjdGNTRBRTE0MThCNzJFMzU3QTBCQUJCNEQwMzA3M0IxRAorRjRFQjU0Rjg5OUFENEE0MUE5Rjk0REMyMDA4ODBBMERCOTlENjcyMzVBMjQ1MUIyNUY3MTBDMjlBODgyODY1QgorQTkyMkU1NkU5RkMxNjc1NjAxNEZBNUNCREIxQzMyNzUwQkQ2ODM1QTcwRUI3MTVDRUExOUE4ODcyMDQxOTA1RQorOEM2NjBCQUNEQ0EyNkM4MjQ3RDZCM0MxMEZBNURDMjQwRTQzM0U0NzlBQzZBRkNGNTdDRjk2Njk3RkY0NkJFNgorNDQ3NDhFCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCitjbGVhcnRvbWFyaworJSVFbmRGb250IAorJSVCZWdpbkZvbnQ6IENNQlgxMAorJSFQUy1BZG9iZUZvbnQtMS4xOiBDTUJYMTAgMS4wMEIKKyUlQ3JlYXRpb25EYXRlOiAxOTkyIEZlYiAxOSAxOTo1NDowNgorJSBDb3B5cmlnaHQgKEMpIDE5OTcgQW1lcmljYW4gTWF0aGVtYXRpY2FsIFNvY2lldHkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisxMSBkaWN0IGJlZ2luCisvRm9udEluZm8gNyBkaWN0IGR1cCBiZWdpbgorL3ZlcnNpb24gKDEuMDBCKSByZWFkb25seSBkZWYKKy9Ob3RpY2UgKENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZCkgcmVhZG9ubHkgZGVmCisvRnVsbE5hbWUgKENNQlgxMCkgcmVhZG9ubHkgZGVmCisvRmFtaWx5TmFtZSAoQ29tcHV0ZXIgTW9kZXJuKSByZWFkb25seSBkZWYKKy9XZWlnaHQgKEJvbGQpIHJlYWRvbmx5IGRlZgorL0l0YWxpY0FuZ2xlIDAgZGVmCisvaXNGaXhlZFBpdGNoIGZhbHNlIGRlZgorZW5kIHJlYWRvbmx5IGRlZgorL0ZvbnROYW1lIC9DTUJYMTAgZGVmCisvUGFpbnRUeXBlIDAgZGVmCisvRm9udFR5cGUgMSBkZWYKKy9Gb250TWF0cml4IFswLjAwMSAwIDAgMC4wMDEgMCAwXSByZWFkb25seSBkZWYKKy9FbmNvZGluZyAyNTYgYXJyYXkKKzAgMSAyNTUgezEgaW5kZXggZXhjaCAvLm5vdGRlZiBwdXR9IGZvcgorZHVwIDAgLy5ub3RkZWYgcHV0CityZWFkb25seSBkZWYKKy9Gb250QkJveHstMzAxIC0yNTAgMTE2NCA5NDZ9cmVhZG9ubHkgZGVmCisvVW5pcXVlSUQgNTAwMDc2OCBkZWYKK2N1cnJlbnRkaWN0IGVuZAorY3VycmVudGZpbGUgZWV4ZWMKK0Q5RDY2RjYzM0I4NDZBOTdCNjg2QTk3RTQ1QTNEMEFBMDUyQTAxNDI2N0I3OTA0RUIzQzBEM0JEMEI4M0Q4OTEKKzAxNkNBNkNBNEI3MTJBREVCMjU4RkFBQjlBMTMwRUU2MDVFNjFGNzdGQzFCNzM4QUJDN0M1MUNENDZFRjgxNzEKKzkwOThENUZFRTY3NjYwRTY5QTdBQjkxQjU4RjI5QTRENzlFNTcwMjJGNzgzRUIwRkJCQjZENEY0RUMzNTAxNEYKK0QyREVDQkE5OTQ1OUE0QzU5REYwQzZFQkExNTAyODQ0NTRFNzA3REMyMTAwQzE1Qjc2QjRDMTlCODQzNjM3NTgKKzQ2OUE2QzU1ODc4NUIyMjYzMzIxNTIxMDk4NzFBOTg4MzQ4N0RENzcxMDk0OTIwNEREQ0Y4MzdFNkE4NzA4QjgKKzJCREJGMTZGQkM3NTEyRkFBMzA4QTA5M0ZFNUYwMEY5NjMwNjhCOEI3MzFBODhENzc0MEIwRERBRUQxQjNGODIKKzdEQjlERkI0MzcyRDM5MzVDMjg2RTM5RUU3QUM5RkI2QTlCNUNFNEQyRkFFMUJDMEU1NUFFMDJCRkM0NjQzNzgKKzc3QjlGNjVDMjNFM0JBQjQxRUZBRTM0NEREQzlBQjFCM0NDQkMwNjE4MjkwRDgzREM3NTZGOUQ1QkVGRUNCMTgKKzJEQjBFMzk5OTdGMjY0RDQwOEJEMDc2RjY1QTUwRTdFOTRDOUM4OEQ4NDlBQjJFOTIwMDVDRkEzMTZBQ0NEOTEKK0ZGNTI0QUFENzI2MkIxMDM1MUM1MEVCQUQwOEZCNENENTVEMkUzNjlGNkU4MzZDODJDNTkxNjA2RTFFNUM3M0YKK0RFM0ZBM0NBRDI3MkM2N0M2Q0JGNDNCNjZGRTRCODY3N0RBRkVFQTE5Mjg4NDI4RDA3RkVCMUY0MDAxQkFBNjgKKzdBQUQ2RERCRTQzMjcxNEU3OTlDRkE0OUQ4QTFBMTI4RjMyRThCMjgwNTI0QkM4MDQxRjFFNjRFQ0U0MDUzQzQKKzlGMEFFQzY5OUE3NUI4MjcwMDJFOUY5NTgyNkRCM0Y2NDMzMzhGODU4MDExMDA4RTMzOEE4OTkwMjA5NjIxNzYKK0NGNjZBNjJFM0FFRjA0NkQ5MUM4OEM4N0RFQjAzQ0U2Q0NERjRGQjY1MTk5MEYwRTg2RDE3NDA5RjEyMTc3M0QKKzY4NzdERjAwODVERkIyNjlBM0MwN0FBNjY2MDQxOUJEMEYwRUYzQzUzREEyMzE4QkExODYwQUIzNEUyOEJBQzYKK0U4MkREQjFDNDNFNTIwM0FDOURGOTI3NzA5OEYyRTQyQzBGN0JEMDNDNkQ5MEI2MjlERTk3NzMwMjQ1QjhFOEUKKzg5MDNCOTIyNTA5ODA3OUM1NUEzN0U0RTU5QUUyQTlFMzZCNjM0OUZBMkMwOUJCMUY1RjQ0MzNFNEVFRkM3NUUKKzNGOTgzMEVCMDg1RTdFNkZCRTI2NjZBQzVBMzk4QzJERjIyODA2MkFDRjlGQ0E1NjU2MzkwQTE1ODM3QzRBOTkKK0VDMzc0MEQ4NzNDRkVGMkUyNDhCNDRDQTEzNDY5M0E3ODI1OTRERDA2OTJCNERCRjFGMTZDNENERUNBNjkyQzQKKzBFNDRGREJFRjcwNDEwMTExOEJDNTM1NzVCRjIyNzMxRTdGNzcxNzkzNEFENzE1QUMzM0I1RDM2NzlCNzg0QzkKKzQwNDZFNkNEM0MwQUQ4MEVEMUY2NTYyNkIxNEUzM0NGREE2RUIyODI1REM0NDRGQTYyMDk2MTVCQzA4MTczRkYKKzE4MDVCREZDQ0E0QjExRjUwRDZCRDQ4M0ZEODYzOUY5RThEMDI0NUI0NjNENjVBMEYxMkMyNkM4QThFRTI5MTAKKzc1NzY5NkMzRjEzMTQ0RDhFQTU2NDk4MTZBQUQ2MUE5NDlDM0E3MjNBQkI1ODU5OTA1OTNGMjBBMzVDRDZCN0UKKzBGQTBBRDg1NTFDRUU0MUY2MTkyNERDMzZBNDY0QTEwQTFCMTRDMzNGQUZCMDQ4NjJFMzBDNjZDMUJDNTU2NjUKKzZEMDdEOTNCOEMwRDU5NkUxMDlFRTJCMUFBQjQ3OUY3RkFBMzUyNzlBREI0NjhBNjI0QkUyNkQ1MjdCRkY1RUQKK0UwNjc1OThFMUI4Qjc4MTg4RkE0QkNGQjBCNTE2OTJEMDdCMEJFQkI5MzBDNkYwOTk3QjQzN0UyQzUxQjg3NkIKKzYxQTU2M0EyNjczOTMyQzIwNDU4MzNGQUEzNURCMjJBREUxMjEwMjMzNUQ1REM3MzRBRTNBQzVFRUU2NjU4RDcKKzkyRUI2MjEzMUUxREZCQTQ0MUY1M0VGRjkwMjFEOUQ0QzQ5MUYyNkJFOEY1NEM2MTE2NUNBRDc3OENFODY5NUMKK0VFQUY3MEUzQjIwQzY0RDRDMkIzNEEwODRCNTc3MEJBQjJBOTc0RTg5OEY2MkJGRTkwRjEzMkEzN0UyRENBNEYKKzQzRTEzREIxM0M5NERGQThFQ0UyQjczNzQ4MjdBRTE2ODYzNEZBMDA3Rjg5ODFBREEwNDZDRUQzNDQ4QkY0NTMKK0ZDRDlBNEYxOTRGQTY0OEY5RkMwOTcxNzM0QkI2OUNCNzUzNDhBODhDQzM2MUZGMDZFOTg0Qzg2QUYwRUE0MjkKK0RBQTU4MDhDQ0UzNTgzNjY0QUVGRTBDNTlFREEwNEExNDdGQjUxMjI3QTVBQjBDMTM5NDIzMjNFOUIzNzMzREQKKzNFRTdERjdGNzc0REU1RDBEMDk4MERBOEMwMTkyOTgzRjFFM0VGMTg0ODFFQUYxRUZFREEwMDY4QkNCREIyOEEKKzdGQzdEOTE5MUVGRkM1NzQ1ODhERUMxRTE4MDM0MURDOTU5RjhFRjU2RUQ1QjE5RjUwQUE4MkE0NjUzNjQ5QjcKK0NEQ0ExMUExRkYyN0FGQTdGRjE4OUE3RThBN0MwRTk0QUVFQzkwMURERUI1NDE2MDRERUMwRkU5MEZBMDY4NUEKK0ZERUFERUNFNjFDRTI3MzFGRERGN0ZDRjJBRUY3Q0MyQjFFRTcwOTVGNDgzQzI1OTdGNjY2OTRGQkQyQUQ4MUIKK0Y2OEZGMkUzNzhCRDgzNTdDRDFCNjBBMUNFREEyREU3NjBBOTg4NjhBQ0I0NUNDQzhDQzIzNzBGRTI2NzgzMEYKK0I3OTUwNThFMEZCMEVCM0M2MjUyNTlDMzZCRjlBRDJFRkI1QzY0QTQ1Nzk3RTE4Nzk3Q0UxQTJDMDMwNENERTkKKzlEODhFMTFFODc4QTcyMTYxMEVDNTc5NThDN0U4MEE1RTc4MjI2MDE3QTI2MzI4OERFRjVEMzM1MTk5RThGMjgKKzc4N0RGNzY5NTUwQUQzM0UxNTM0MkZDNUU0NzUxRjg4NjVBQTY2RTc4QjhDRDIzODhFQzM2MThBNjE5QUQzMDIKKzU3NjBFOUYyOTMwODVDQjU0QkJCREQ0N0M1QURDM0Y0NzlFMzlBNzk1NTQxRUQ4Q0M5MjFEMUI0MUM5RkIxQ0UKKzU3QjEzNDBCQjRCRkFEMTMyOUVFNEVGMkRFNTk5OTQ0NDA0QjdERjk0Qzc1OTAzN0NCRTk2MDczRkQ3N0RBQzkKK0IxNDBCNDU4MEVGMTc4QTg0RDA3NDYyNzZENkU2NjdFMjY2NzExMTdFRTA0MTAyMzA0RjJGNTk5QTQyM0E2ODcKKzUzQ0Q5RTJCMDYxRDAyRDU0RUY1NjQzOUUzM0FEOTg1QTg0QzFDQThGNjY2NkNGNzc0NkUwREIxOUE3OUYyNDkKK0FFMUY3NzE0QUU1RTFENjcyM0M1RDNBRjg2RTZBREM5RjJCRUE2QTYyQzNDMDNBNjc0MTRBOTlGQ0NDRkVCNDIKKzRFRTRCRTlGQzhBNTMwRjA2ODc5RjQ2ODg5NjI0RjdENzA0RUZDQjk1MUMxREExNjEzRDU1RDYxRDMzRjYyMTMKK0YxMjYxMEE2RjA3MUU3OTkxOEFDMjg5RUE1QTNBQTkwNDkyMjk5MDJCNjQ2RkUxNEU4RDE5REJFNjczRTFEN0MKKzc2NTc3RTM0QUJFODBFQ0YyRjVENkUxM0NFMDkyNkYwQzlCMTFGNUU1RDE3RUM1OTg2MDQyQkEyQUI2QjFFRTkKK0I1NENGNDUwRDYxNkRBNDYzNzM5MTg5NTM0MzhBN0JGODNBNTcwN0NDQ0YyNjU5MEE3RUFEODlCNUQzNTc5NDcKKzBCNkY4QkFCQ0U2RkM2NkJGMkFGNDYyQzJDQjk5QjVBNjhGMUEyQzIzNzE0M0ZGOTJDMjY0NkIxNDlFRkUwNDAKKzQxRjk3QTUyQzQ4NDc0Njg0QjlFREQwRjNEMEYzODM4QUZGQjcwRTdGN0ZGOENCOEJEQTA2NDgzRjhERDA0RjgKKzkxNEI3NTJGNEMxMTZCRjI0M0QzMUNCRjlBQ0YwNERBOTNCREU0Qjg3RDE4MUM0MjExMUEyQzkwMTgxRTBBMTEKKzlFODc0MzRGNDY4MDFENkNGRUIzNTA0NjdBNzhBODk5QTcwREM4RTEyQ0IyRkNCMzc2NjQ3RjVBMTU1QTgzQzMKKzc3QjcyQTBFMDU4NTUwRTBGNjBDMjczQTYzMjBCMzMxQTZFQTIxQjUxRjVCMDBCNkE1MjcxQzMzMTIzNUE4RDYKK0ZCOUJBRjk5RTQ1NjVCMTQ2MTkzN0RGRjY4MThDQ0I4QTg0ODNCQjU0RTU4NzI2QzFERTgzNkI5QzQ3MDY0OTEKKzQyMkYyNDNEQUZFNkJFNzM2OUIwOUQ4N0JDNUNFM0JDODA4NTM0NEQ0Qzg0NUE0NUFBOUQ5MTU2OTVGOUJCOEQKKzlCMDZDQTM1OEEzQTMzMDY5NEU2RDI2OUJFMTc5NzA0RENFREU5ODVDMkQ4ODZCN0IwNjNBQTdGNTIxRkM4QjkKK0U3OTg3NkI5RkMwRUI5QkE4NDQxRTMzMTczMTZBRkEwNTBFMzY2ODQxMUNFODEzNDIyNDk0NUEzMEYyRUE1QjkKK0E1REQ1ODFBNjdCOUVEODQ5N0Y5MTU4OUJDMTU1OTU3RkFCNTU0MEU4QkJCREFERUJDQ0QyRjYwM0RGNDZCMDUKKzJCQ0FCN0E3RUY0MjBDOUIzRjY1RkZFRTlCQjI3QTU4QzBFRTkyM0RGRUM1MzUzQjkyOUM2MjBCM0RCRTU5MDcKKzFBOUE1QzZGRjQxNTkxNDhDQ0QyRTZDRkNDNkUzQzE3N0M3QjlCMTNFOUQzQkJFRkUzQkJFMzhGQzM1RjJBQkUKKzVFQkRBNzRFMEMxQTNDNjA4OEY5RDRERUY0ODBDRjQxNTlEMjFDQzIwNTMyNDVFQTlFQzFCRkYxRkU1MDE4NUUKK0QzRTNCNTcxQjA5OTNBRTZFRjA5NDg5QkFFQUEyQzY1MUUyQjM2NTk5QkQ5MUVDOUNGMzgwN0E2MzJGRDgyNDIKKzk4N0E0QkQ5MzNBMjMyQjZCODdCNERFNjU5MDExREY2QTk2NjJGNDFGOTI0MDZCQTY0QjY2MkUzOUIzMUYzMkEKKzI2RTYzODNFMzVFOTQ0NTlFNzQ4MThBMTA3OUVERDdFN0NEN0RBQjY3ODY3M0FENjMyM0ExN0U4OEJFQjIxNzkKKzAwMUEzRTI1MTI5Q0UwNTYyN0NGNTlDRTkzQTBCNTczQkQ3NjAxMkVDOTI3RDFDMTE5MkE0QUZEOTM0MjVFNTkKK0FBRDA5NTZGNUM3RDg2QjA0MTIwOUM0M0Y4MTJGQ0FGMjMxM0E5NkQ0M0M0NjEzMEQyQTk3RUYzQkZENTcxOEUKK0M5QjgyODY4MkJEMEZDM0E4QzFERDg2MDAxODM0OTQ2OUFFOEMzODE5ODZDNzMyMEJENUE0M0U5RDhCNkJCQjEKKzU5MTAxRTA5NzIyMDdCMDA2ODJENzhDN0QwRDM4QkJEODhBRjg4OEExRDQwRkRDQTRBNjlGQzM3QTY3NEZBREMKK0I0MkMxOENDRUNBRDRCNzkwM0U2MDREQ0EzMzhCMUQyODVDMUZFNDg3RjU5MDhFOTFEMjQ1ODFERDdFMkUwNkIKK0YwRkM5NTBCMEJGMTkwODJCMTA4OUM3QjQyNUZGNTExQzI5NkM1MDQ0NkU3MEYyN0QwNkUxNTA3Q0FGMEQwRUQKKzdERDExNzRBN0M0QjdBM0M3QUZENUY4MzlBMjk2MjNEODRFMjMwRUVFRUI4NDQ3RTM2OTIyQjg5ODA2RkYyQzgKK0FGNjlCODcwNzFFMEQ1MzlCMDk0ODBCQzU1Nzg1QzhBOUQ4MEE0NkJBMTI0OEExODQ3MUIzM0Q5MkExMzU5NUYKKzBFREU2MTkzRjVFQkYxNzA5RDQyQTYzRTc3M0VENTMwRUIwQjA0QjhENkExODMxQ0Y5NTk2NDRGMjdENjQ0OEUKKzY3QUE1MkZFMzcxRjRGQkE4MjY5MzI0QTdFOEIwRTQxQTYwNTQ4NEY2ODY1QkU5NUUxN0RDMkM0QkMxRkY4QzYKKzZDRDQ0NkQzNkFFNEFFRTRGQTM2OEFDMUMwNDA4MjlDQjJCMzA2OTkzMDgwQzYwMjU3ODM0QjEzRDQ3REE1MUMKK0MwOTFDQkZCNENFOTM0QzY0NzAzODI2QzRFQkUxQTUxQjQxREE3ODZBNkE1MkEzMjQ3QUFCNjRFRjYyNTU0RUEKK0U1MDZFNDYyQ0ZCODFFMzdEMkJDMTYyMjczRTI2MzA4QzExMDU3QTZGNEQzQ0EwODlGMUQ3QTk2QjI3RUVBNjAKK0NFMjY1QjJFMUM0QURFRUY0NEFFRkZEMUQ5M0M0RkEwNUVENzc5MzFEQTA1MDUyMjhCMDNCNEQ2M0ZEQzYyNjYKK0IwQTFCQURFNUM5MUU4OTVCQ0FERjIwOTFFN0JFNjQyNzZDRjBCM0NENjUzMTQ5MTI3QzQ4NjAwQkY0MkZDRjEKKzQ5ODEyQUUwMzUzODk4MjIyODhERDVGNDE5NjQ0N0QyNjZFNzM3REU3RDg0QUEyQTFFQjMzOEFEMEZBOEQ3MEEKK0VFMzU4MTU0MjVFRTE4MTM3MDc1MUUxMzIwQzdERUU2QTRGQjNDMzExOEE3RjFFNUNGMEU1RDNCRTlGMzRBNUMKK0UyMkM0Qzg2NEFENzAwQkQ1MTAyNUZBODZBMjI1RjU4RUI3OUY0RjNBODc1MTY3RTg4NjIzRThEOEIyOTczMzMKKzcyODJCRkFDREM1N0U1MUFBQzQzMUI0MEYzMEI1MzQ4MzkzRDg3MDU4MjkyNjRCRTQzN0UwMDRDRUE4REFDOTUKK0MyMzc1NkUyMTY1RjA0NkQ2MjM2MTYzMkU0NEMxMEM1NEY3QTBGNTY5QTg3RTJDODE0QjBDRjQ0RTFFMzAwMzIKK0E5MUY1OEJGOTU1MUU5QjlFRkE1RDdFOTFCMEQ1RDE5MTExREIwNERCQ0Y0ODhEM0U0MUU3OTlDMzE0MUM2NDEKKzdBREE0QUVENDM1RjRDOEY3RTNGRTUwQzgzRTFGOEFFQTc0NzIwRDE3NDJENUQ1MUQ0MDA0OTBCQkJCMzgzQTkKK0I5OTdCMzM3RTJCM0UyMURGRTRERjM4M0Y4RUUxODNBMkNGNDI2QzhBQUI5MUEwODNDN0I1NjdDQjE3MjlERTMKKzBDRjVDRUYwMjgzODhCMUQ4QzVENkNGNTg3NTJENjI2MUYwN0RCRTFBNDU1MjY4MTFGNEUxNkVGMDkzNkFFMjQKK0VCNEZFNjZBNkYwMDhGNTI1NjYwQ0NENUI4QzFERkY4MUQzQzNCOTA1NjlFMUQwMjQ1NUQwQTVCNjlDNjc2QUUKKzExMDBFMTY4ODgyRTFCMDI3QzgwRTEzRDkxQjA0OTQ1RTI0RTlDRDY2QkIyRDhBNDcyREI3NjU2MjE3Qzc3NDAKKzQ3ODY0NTI1NUU2MTBFRDE2NjBBMDA5QUM1QTZBNTlGNzI3NjU5OEY1M0RCN0VDQTE0RDk4RkQ4RkU0OTI0M0UKKzk4NzYyNUYzNzBEMUIwMThEODkzOTYxNTJFQkFBODk3RUE0NkRBNDMzMjc0RTI4REYxRjcwNUJGRDc2N0QwOTMKK0Y5MkIzRjUwRjU0RjA2MTlGMzg0N0M2MERCRkY2MDEwN0MxQjRGQTVGQTZBRUVFNUQ1MzE2M0YxODVFRkUwRjIKKzExRDIyRjBDODYzQkQ0RDExQTA0NDQ1RjI0MUNGQ0E0MEI1MjUwQzY0NkFDRDE1MTI2RkY5OEY2QTJDREUzN0UKK0QwMDM3Nzc4NTM0OUJFN0MzNDZGNzkwQTNCNUIyMTg2QTg1M0I4Q0REODI4MTkyMzFGQTVCNUZERjI1OTE1QjkKKzZBMjA2RjVDQzdDMTk0QUMwN0QwOUREQzBDRDgwNkE2NjJBRTkyOTQ1RkRBQTEwQUZDODAzOUEyMjFCOTYyMTQKKzIxNEI3MTk3ODRFOUExMkM5RkQ1QUI5RjczMjkyNDlGRURCM0U5RDQwRDNBODgzMzBGQzM5RTQyNjc5NUFDMkYKKzRGRDg2NEFGQUI2NTNGQzQzNTk1N0JERkQ1MkQzNEMzRjNBNDUyMkM3MTZFNTVFODQzMzdCNUM0NUU2QkJCQTUKKzM4MDhBRUIxRTFCNjA5MDBEN0E4QzVGNjdFM0ZFQkVCNjQ5QkM1MkEwNjc2QzU0MURFRDMxNUFGRTc3OTY4MkMKKzMwRUM3MjA2N0M0OThFMTY2NEY0RjIyM0JDODgzRDg4NjIwRDdCNTQyREFFQjBDQTAwM0IzQjE3MUVEMkVDMEMKK0I5RTdBQTU5QzA5NzQ4QUU5NTQ1MUUxODExODUxODBFMTM3MDEzRjZCQjVEOEYzNTkyQUY2QTM5N0RENzA2MjUKKzVFNDIwOEJFMDlDMjkzNTczNzMzMzY1MkNFOUU0RDVFRDVFQUU3ODI4RTY2RkY3MTJCRERCMjU2RTFFOEJDODEKKzdCODcxNEQyOUEzMzkxQ0QyNUJGOEE0NTQ4NjRFN0Q2QjUzMkE5Q0M4MzAxODg0ODQwODE3NDcwM0I4NkQ2OEEKKzFBNUNDOTI5QUI5RURGQzc2MUUxOTI5NEU5MjAxQUMzMDdFNUE4MzY0ODIwNDdEMENCQjAwODhDMjJERUMzRTcKK0E1NDNCOTYyMTUxQjlCQUVEQTg0MTVERDBCMDMzNzU2Q0MwRjA5OEVEODA0M0Q5REMyNTgzMDBEQjlBNjM0RjcKK0MyOENFMzkwM0ZDOTAzRDM5OEVDNjlCQkRDQUE2NTZGNTMyODBGQTJDNEE0NzMyRDU0ODVGNkU2MzA1OUQ5N0UKKzI1QzFCQjNCQzBGRjVDNDlGMTBEMTM3RDdDMTlDODMyMzI1QTYwRTZBMTVBMzNGMkVDNDEzNDkwNTA1OURGNjQKKzQ0NTQyODVEOUQ3REE5MkRDOTYzQ0UxNTQxMTZDRjA1QkMzQTM1RTY2NzNCMjlGQkNFNjQ1NzQzMjQ1NzU5QTEKK0Y0QzEzMUVENjc2NjQyOEI3QUE1RTdCNkZBMEZCQTc0MThCNjIwRUZBNEI4MzdENjE4NzUwN0UwMEQxNEM4QzQKK0FCRTYxMTI1ODMwQjk1RjhBNEVBOEU2MzZFQUJCNUI3Mjc4QTk2MEE3NjFDNjNERjU1RjI3RTMxMDg2OTUwN0IKKzFFNzk2MzI0NTY2OUZDNkE2RjdDQzBCNDdFOTA5MjYxNEVCMzEyNEY1OTA5NDFGNzVGMUUxMzIzNDU0MzlCQjgKK0NERjVEQ0U1NDBBQkQwNUVEQzYzRjVCNjE0OEVCNzVFQURDNTdBN0RCOERDNkFEMjEwMUM2MTY0ODBBNDM2MDAKK0UxNkIxNENFNkREMDBGNTU5NjQxQkU3QzAzRTZBRENBRjMzMkJGQUI0MjQyNkEzMkE1RUE0OUMwODA5NUVBOUQKK0Q4Q0ZFRjJDRkZDOTlDNkFDNTRCMkJDMzgxRTAwQUZFOUIzRDI5RjE2REM4N0M0NzVDMTFGMUU1Q0Y1MkMwMDQKKzA5RkYyMEM3RTdEOTBDNTA3OEQ2MURFNkYzMDdENEVDMzA3Q0YyRTU5M0ZEOTZCODcxMkZEMEEwRjczN0E4RTAKK0FFRjA5RTEyOUU3QTVDMkY1NzdCM0YxREY1MzhEOTBDQkFDRjFCMzBEQ0JFRkQ4NkE5ODk1RDQ0RkZGQUU3MEQKKzk2NjBBM0Y4QTgyMEE0NjZDRDQzMUM5QzJDMDZGQTAwQ0U3REFFNDQxOTE3NkUzNTYxNkVDQTlBRDIyMzlBNzIKK0VEQjFFQTU2QjRDQUI5RTlFRkY4QzNFMjI3MjkyNjE5NjVFMEMwNjBEOUIxNUE4QTZGNzYxQ0JBMzU4ODdFMDEKKzQyODc1MEZFRTJBNTgzRTMxNEREMjFGNjVCOEQwMzJGM0Y3RjBDNkE3Q0FFMEFFRTExNjlCQkM3NjJBMEQxRUIKK0M0RTQyQzE4QjgyN0E5ODZDM0FFQzg2NjY5OTY5OUE4MzE4RTg4Mzg2NjQ2MTU2Q0MzQ0UzRjNBNDcyMzAyNjkKKzY0RUFGNDA5NjRFQzFBNTJCMzQyQzU1MUVFMTUxOEVBNEM2NTUxQzNFOUZGREI0RjlCQzg3NzQzRDNBMThENzEKK0Y2MDQ4NkE0MEE3NTU5N0JBNjk2NzRDN0U5QjcxRjFCM0UwNjkwNjJGOEE2MDNEQUE4MjNEREYwRjI2QzAzRjIKK0UyQkE1RjE4MjczQzdDQzQ1Q0NDMDQwQzFFMEEwMUNCQzVFM0M5NjQ5ODhGQUIxOUQxNTQzQTJDNjlGOUEyNDEKKzM2MzEzMDIwQUE4NTFDNEVCOUZGQkIzOUNBN0Y0NjQ2MUFFNkNFN0ZCNUI1RjJCQ0VENDYzRTFEQ0VBOTgzQUUKKzQ2NTBDQTJEOEQzMDMyMDQ2REMxNUU3QUU1REEyQjZCNzU2MkJFMjhGNkIzNkZGNjA3MjAxNzNCNjA5NkY5M0EKKzM2OTk0QUVDRjdCMTVERjlFMUUxQTdGQTM2RTI1MTUzOTNCNEUwQTFBNURCNEQ3NDE0RUZBRkJGMDRBMDkwQzkKKzkzOTJGMEEyNjM0OTU1QTNFMUNBM0Q4Qjg2NDQ3RTQ4ODc5RTk1REI0RjQwOTJFRkI5NTRGRjAwREFEMzQxMzQKKzQ1MDY5MTQ5MTRFM0ZCODFDRjc0NTVGMzAyODUxNEU5NTIxNkNERUVDRjZFQzU5MTdFMTI3N0E2QTNCNzBCMzQKK0U1RUI5N0I5MTkyMjAyMEUwNkNBQTc3NDMyNEFFMkUyOUE1MTZGMjhGRDZFNzE4NTAyRjhFQjE4QzIwQTc2MjcKK0ZBM0JDOEU0NTcyOTcyRDkwNkE0NkNCQ0Y3N0E4NzkxMkQ1RTUyM0M5QzIwNUJFMkEyNTkzQjAxMTRBRUZGRDEKKzQxNTRFNjJBODJDQjc2NkVBRjQ1NjRGQzc0NkRFMDhBOUQ4OUZGRDJFOUYwQTc5NjMzNTU1RDBDODYzNEZEQjcKKzNFOEYwRDc4QjQ0MERGQzAwQzVCMDJFNEUyMjczMUU4MkZGNDExMEY0QjFDNjk3RDkyODVDODgxRTg0MTA2MzkKK0M2QkIxMTczMTk3QjJBQjIxQzI3RkQ0MzgxQkQ1NDBDMzVGNTZGNDQ0MjhENzU2QjJDQUUyMTYyNTdBREY1QUMKKzI5NEIxRkZGRTlGMERBRUEzRkRFQUUzQjIwNjU1NkVGNjA0NDg3OURFRTJFMDM1OUI3RjAzMjE0QUIxNERGNUQKK0RDNEIwNTg2MzI4RDVFQTEyNDg4NzY2MDBEOTIyN0Q2MjdCNEI1NERFN0M0MzI0RjQzOEJFQjlDM0IxNzZBMTUKKzYyM0MyOEJGNkVEMzI2MDMwODI2RUMxMDRERDMxOTgwQTA0RkZCMEI1NDIwNjMyREIzMUIzRTk2Q0ZEQTE0RjYKK0Y1RDU5NTgyQzFEQTRFOUI5QzJGMDU0QzE0NjhFNDE2NkY4OEZFRjNDMTk3RkE1MDIyMkJDM0VFNDYyOUI5RjcKKzAwQkMzREY0OEQwRDQ5MEYxNzE4NUEwM0MyQTVCMzZCQ0I0Q0Q4Q0Q1M0IyNENBRUIwMEM1QzNGODI5NzRFODQKKzIyOEEzMkY2RkM0OEIyMUU1QUQ2Nzc4RDg1NkU5MTRGN0QxMzNCQjMxNjk2OUU1RDQyRDE0NkNBRThGNzY3MzMKK0REMTQ2RDczQzdCOTgzRUY5MTMyOUQzOUQ4M0IyMUJGOTE2RDI3Q0NCMDE5NEFCRTY4NjQxOUY1NjU0NTBDRjkKKzgzQjNCMTIwNUI5RjM5M0MwRDgzMjc4M0Y1QzNCRjUzOEIzNjVCMjMyMTYzQ0ZEQTk1QzQzMzUxQ0M3N0NDMUUKKzM4MzRDRThEQzUyQTZENEFFOTkyMDhFQTVGMDQxOEUwQjJBRDAwNDM1MkY0RUMyODczNUVFN0M1ODk1Q0FDMzAKK0NGNTg1MUIyMjFFNDBEMTI0RDFGN0I0MzI2NDU0MzkwQzNEMzVEQjRGRTk4QkRFRTNFMzVGMTg4OEI3OTVDRDIKKzQ3NTQzQUIyMUVFNkIxQjE0QTk4Q0JERTNBRTI2MjA2ODEzMkM1NUU4REU5MkNDRkYzQjIzMEJFMDRFMjk1MTYKKzhCMDcyQjUyMDAxRjc2NkUyNjc3NUJDMTdGM0RFNEZCRUQwODU1NzBGMDEwQzY3QkQ4NjFFMzkyNjFGQTE2QUQKKzUzN0RENTk1QUVGMjU4RTU3OTc4NENDQ0RENzE0MDE4RUY1NDdGQTgxOTgwODg4Q0E3NzdGRTZERDNGMUVEMjMKKzFDNEFGN0UxNUNDNTBFNkZCMkM0Qzk2ODlFMEZDRDEyQTc5QTlFMzVFQzQzQjUzNDAwQThFQkVDMzY1RDNEODAKKzc2NkU1MDY2MDc1N0ExNzk3MDhDNkQzM0Q4M0E0QzZCOTY0RjdDODk0MjZGQzZCOEU1NkI2MkMxOEQ1RDBEMzgKKzQzOUREMThBNjBBQ0ZGOUZGNEFDMzBBRDg2NzI1Mzc5OTdCNUUwREE4MEQ2QUZFQzVGRjA4NDA1N0JDODE0NkIKK0UzQjhGQjQzMEYwRjQzNjlGQTFDRUQ0MkRCODgyMTk5NDY5MTU3NTlCMDZENDUzMDVDOTBFQzc1N0IzQzU0MEYKK0U1Q0QzMkI3QTBBM0NDNTQ2M0JCOTEwNzMzODYwMUUwOTJGNTczMTNDN0FENjE0ODEzMEYzOTRFMTEzNUUxRkQKK0JEMUVEM0Q4REMxMzYxRDg5Q0YzODRERUFBMERCOTVDNDVGQzc4RkE1Q0Y1QTVFNTA4ODdDNDg2QUNGNTBERTcKKzgzRURCMThBQjc0N0JCQThDN0Q3RTIzMTQ3MTQ3NTlGMUQ0NkIxM0I2OUVDRjU4OThGRDFDMkNDNTI4M0IxMTMKKzlENEU4MDcxRDE3NzU5Q0ZDQUFCQkMwMUIyNjZFNDcxQkFENjcxN0E4Q0QxMDFFOThBM0MyQUIwMzdEQTZGNDEKKzFBQTVCRUNFQzBCQUZBM0RFREZDNDg2Q0RGMEFGNDhFRkE5MTE3MDg3MzI2OTc1MTg2OTQ2QUQyQjE1MTlEOTUKKzRFRTg4MjdFRUJBREE4OEE0NEM3QUQyOUQzQkFGMzVDM0I4MUZENjlGREUzMURBNDdEOEVCMkJCRjRCMURFNTgKK0VCNUQzQjFDNDQ2NkE2NzBDQzMzOTc2NzlCRDA5QkY0QUY1NkMwOTA5MUE5N0Y5RkE0MEM0QTdCOUQwRUQwRjMKKzVGN0YwREQ3MDMxQTY4MDVFQUI2RUUxQjZGQjIzMjZDN0M1NEU3MTZGMzg4RkExRDlEMjM3NjY1NjExNTIzMUUKKzI0QTM1Mzg1ODkyMjhCMUQ3NEQ3OEUzQkEyRjkyNDAxRjkyOUVFMTMyNUVENDNFMjc0NzYxNzE3MTUyQjQwN0MKKzk3MTFDNEVBMEYwNDMwRjgzNUNBRDlCN0UyMDQ4QzhCMDVFRThBODMyQzZFNTcxMTcxQzcxMjdERjAwM0M1NTcKK0ZDNkRGOTFDNDFDNTNFMUJCMjdBMzg4RkFGRTNFNDdCQzBFQTVFRjdFNkIwOTI1NzA0RkQ1MjI5MDZENUQyQTUKKzQ5REMzNEFDREZFMDU5QzY3QjA1N0Y0MTVDMzJERTVBQ0YzRURGRDQxRjg5QzlFQ0M5QzUxQ0M1OEZGQjJBN0UKK0VGQzE5RDhBRkNGQ0YwRUJCNDc1OERFQkRBMzk0MzlCMThBRkFGQzNDNUE2NTZBODNGMzBBQUU3OTlCNzg5MzAKK0MwNTY1OTZBRUY0M0U0NzNCM0FDNkUwMTE0NzU5QTIwNDhENDI5QTdFRUI4Q0JBN0M5Q0U5RTdBODQ5M0FGNzkKKzMyMzU0RkZCQTVGQjI3RjI0QTM0M0M2MDhDNUFCNUNCNkZDQzk2MkRENDZBNjBFN0JBRjFGRUYzOTAxMUI1MDAKKzVDNEMxQjE5NUMyMkY2NjhEMkI5QThGNkY0QTMwN0JDM0JFMTBCNThDNTAwREMwMTc1MzI0MUZDMjIxOTdEOUUKKzJFMzc0MzdCNERGMDA4RTQ4NjhCMzlDODY1QjVEQTkyQUIxNDc4MzlGRTNFMEY1QUEzMjlGOTAxQjc0NUU5MDgKKzVCNUI0QUNFQTg3NzAxRjE2QTdCRTA3QjBCNUIxRDU5QkM3MkFBNUQ3NTA3Q0VBNUEzQTMzMUYwODVEMzNFNDUKKzI3MTBCOTZGMkExMzBGRDU2NjlDRjE1RkNCOTg2QzlGOTRFNjdGNUU2MzgyRjQ4MzBCNUFFREE0REFBODJCNDcKKzc5N0EyREVBRkMwQjg1MUMxMDFDRTRBOURBRjZEQUI2M0NEMjJBRkMxMTI3QTREQ0FGRkI2RjVDOTMzRjhENzIKKzA0Rjc3OERDOUZFOUNFNkU3QzkzRTFBQjZDQ0I4MkE1RDFDOEZFMEFDMThGQkFDMjY4NEFBODc1OTIzMzc1NTUKKzVGM0Q1M0UyQTk5MjNGRjYyNkI3NEU3QjBDMjQ4NDkwNjY4RTBEMTFGMUUyQ0I1NzZENUFCQ0Y5RkJCNzE0RDcKKzk2MUE1NUZERjBCMjZEODYzREY5OTM3NDk0QjE2MUEyOEVGOTgzREI2NTYzNkJGODI0QzA0MDU1RThBNkU3NUQKK0QzQTIyRURDN0VEQ0Y0N0VGNUREOTVCNTA2QUQwRjg3NkYxMTE5RjU4RUVCNkQ4MzhDOUYzRTFBM0Y2NTIyMUYKKzcyMUVBRDRGRjNERDc0MzU1NzQ1RjhCREFCNUZCRDgzNUE4NzU0NkE1NUM2QzE2NDhDMjk4MkFGNzZFOEE3NjAKKzUzREU1MjhBNUQwREQwMkIxRjA2ODE4MkFGMzI0MjUxNjU0ODkzQTYxRjNBOTI2QjZDMEFBREFBNEQzQTY2MTMKK0I0RTcwM0I4NkYxQzM1OTE3NjFFNzhDODZBQkRGQUY5RkVERTFENDUyMzYxMkMyRjQ2MUIwNkZGMjdCOTZBNEYKK0U3QzY3NjFEQjFDQjU3M0RENkY3Njg4MEMxNjc4ODI4Q0YzNzA2Qzg1Qjc2RjNCQzI5Mjc0MTQ2OENENjgyQjYKK0M4M0I5OUU1RDA0Nzc1OUE1OUYxMDZCRjVBMjFGNkJFRDVFMjU1N0Y5RjNGQkU5MTFCQzE2REUzMEU4MzBGRUYKKzY2REY1MUI5RDI4RDZEOUQ0OUJGQ0RBMUQyNTI0RjgzREFFQzMyODJBODY5RTBGQ0M2RDE0MjI3ODkwNTVBODAKKzEzNzA2MTdBMDJBMTU5REZGMjkzNTBFRUJEQkQ5NDFBNjM1N0JDNzlEQjY5RjA3MjZBRDY2RERCNUM4QjRCNTAKK0M0OTE5MkI4NjM3NDA4NUI4MzgyRTJGREM0MkMzMTRDQjU4QTJDNDZCRjA5NzZBMUQ5RDZBMzY1RkFGQzA4RTkKKzMzMENGMkUyRjNCMjZGNkQ5OTdGNTZDNTY1QjExM0NDQUUzRjNBOTc5ODI1ODg5QTdCN0VBRUMxRTY1MjFFOEQKK0M3NTg1RkZGQzJDRDNBQjI2ODM3OTJDNjE1NzBEQkEyRTIzQzlCNjYzNTRDMkFGNzU3OTEzRTc4NURBNjMyQUMKK0NCQUYxQUMxNjgwQjEzMjI3MDQ4RDUyMzJDNzIyQTg0RUJBNDI0NDgzRTJBMDE1NkI1Mzg0OTBBMERERjE0MzUKK0NENzMxMERCMTgzRjhDOTQxQkYxQjIwM0EwNjhGRkNERTE5RDA5QzE2MTM3NUZERkEzMDBCODQxMTA1MzFEMUYKKzczNUE5NkM2QTJEN0Y1NUFGNDFFRjMyQTgxQjQ0OTA3RkQwQzkyMkVEQUM2MjMxRDdBMTk4NjhGNEE2N0E0RjYKK0U5REQzODU1MkIyRTU2ODc5QUExMUZCQkFDQTI3ODgzQ0FCQzQ0Njc2RTIyRjk5Q0VEMEU0NzE2OEQ2OTJCNjEKKzcyMjFBNTk1NjU2RTc5ODFEMzUxMTdENzI5RjkxMzYwODlBM0I4NUNCNzMzRDA2QjAyODZBNzYwNEE5RDY5MkIKK0NCRjI3MTVCQ0Q2M0JDNTI4ODk0M0YyRjE0MzJFMDg2MTY1RjRGODY0MjVGQzAzQ0FBOTFEOTMzRTU3NjhFMzkKKzYyQjFFQzI4MkRCQ0I1REU5MjhBNTEwNzRDMjU4NEE2RTJCNDlDNjdCQUU3Q0M3MUY4OTNGRTEwQzg5RUQxRTgKKzdDM0RDMkUzRkFERDM2NzJEM0Q2Q0Y5NURGREMyRDkyNDhBNjA0MEU0MjkxRDlEQ0RCMEE2ODBBQTcwNzAwQUYKK0YzQTYzRkJDMzgxOEZEQTFCNzNGQjc2QkQxQjIxOTA2QjZFN0VEQ0EyNDhEMUJENDg2M0IwQTQzOEFFRDQ3MDcKKzRENzc1QjhEOTY2NEUxMTg2MDJEMTZEOEE4OTM5MkMxRTVCQTg3NTZCNTI5MDJDQzY1MDAyRjcxRENBMzNDN0IKKzcxQkFGMzZEQ0MwREU0QkM5RDExMzgxQzVFNDgKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKK2NsZWFydG9tYXJrCislJUVuZEZvbnQgCislJUJlZ2luRm9udDogQ01UVDEwCislIVBTLUFkb2JlRm9udC0xLjE6IENNVFQxMCAxLjAwQgorJSVDcmVhdGlvbkRhdGU6IDE5OTIgQXByIDI2IDEwOjQyOjQyCislIENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKzExIGRpY3QgYmVnaW4KKy9Gb250SW5mbyA3IGRpY3QgZHVwIGJlZ2luCisvdmVyc2lvbiAoMS4wMEIpIHJlYWRvbmx5IGRlZgorL05vdGljZSAoQ29weXJpZ2h0IChDKSAxOTk3IEFtZXJpY2FuIE1hdGhlbWF0aWNhbCBTb2NpZXR5LiBBbGwgUmlnaHRzIFJlc2VydmVkKSByZWFkb25seSBkZWYKKy9GdWxsTmFtZSAoQ01UVDEwKSByZWFkb25seSBkZWYKKy9GYW1pbHlOYW1lIChDb21wdXRlciBNb2Rlcm4pIHJlYWRvbmx5IGRlZgorL1dlaWdodCAoTWVkaXVtKSByZWFkb25seSBkZWYKKy9JdGFsaWNBbmdsZSAwIGRlZgorL2lzRml4ZWRQaXRjaCB0cnVlIGRlZgorZW5kIHJlYWRvbmx5IGRlZgorL0ZvbnROYW1lIC9DTVRUMTAgZGVmCisvUGFpbnRUeXBlIDAgZGVmCisvRm9udFR5cGUgMSBkZWYKKy9Gb250TWF0cml4IFswLjAwMSAwIDAgMC4wMDEgMCAwXSByZWFkb25seSBkZWYKKy9FbmNvZGluZyAyNTYgYXJyYXkKKzAgMSAyNTUgezEgaW5kZXggZXhjaCAvLm5vdGRlZiBwdXR9IGZvcgorZHVwIDAgLy5ub3RkZWYgcHV0CityZWFkb25seSBkZWYKKy9Gb250QkJveHstNCAtMjM1IDczMSA4MDB9cmVhZG9ubHkgZGVmCisvVW5pcXVlSUQgNTAwMDgzMiBkZWYKK2N1cnJlbnRkaWN0IGVuZAorY3VycmVudGZpbGUgZWV4ZWMKK0Q5RDY2RjYzM0I4NDZBOTdCNjg2QTk3RTQ1QTNEMEFBMDUyQTAxNDI2N0I3OTA0RUIzQzBEM0JEMEI4M0Q4OTEKKzAxNkNBNkNBNEI3MTJBREVCMjU4RkFBQjlBMTMwRUU2MDVFNjFGNzdGQzFCNzM4QUJDN0M1MUNENDZFRjgxNzEKKzkwOThENUZFRTY3NjYwRTY5QTdBQjkxQjU4RjI5QTRENzlFNTcwMjJGNzgzRUIwRkJCQjZENEY0RUMzNTAxNEYKK0QyREVDQkE5OTQ1OUE0QzU5REYwQzZFQkExNTAyODQ0NTRFNzA3REMyMTAwQzE1Qjc2QjRDMTlCODQzNjM3NTgKKzQ2OUE2QzU1ODc4NUIyMjYzMzIxNTIxMDk4NzFBOTg4MzQ4N0RENzcxMDk0OTIwNEREQ0Y4MzdFNkE4NzA4QjgKKzJCREJGMTZGQkM3NTEyRkFBMzA4QTA5M0ZFNUYwMEY5NjMwNjhCODIzMjQyOUVEOEI3Q0Y2QTNEODc5QTJEMTkKKzM4REQ1QzQ0NjdGOUREOEM1RDFBMjAwMEIzQTZCRjJGMjU2MjlCQUVDMTk5QUU4QkQ0QkE2RUQ5QkJGN0RBQkYKK0QwRTE1M0JBQjFDMTc5MDBENEZDRTIwOTYyMkFDRDE5RTdDNzRDMjgwN0QwMzk3MzU3RUQwN0FCNDYwRDUyMDQKK0VCM0E0NUI3QUM0RDEwNkI3MzAzQUQ4MzQ4ODUzMDMyQTc0NUY0MTc5NDNGOUI0RkVENjUyQjgzNUFBNDk3MjcKK0E4QjQxMTdBRkYxRDRCQ0U4MzFFQjUxMEI2ODUxNzk2RDBCRTY5ODJCNzY2MjBDQjNDRTBDMjJDQUNERDQ1OTMKK0YyNDRDMTRFRUMwRTVBN0M0QUM0MjM5MkY4MUMwMUJDNDI1N0ZFMTJBRjMzRjRCRkVBOTEwOEZGMTFDRjk3MTQKKzRERDZFQzcwQTJDNEMxRTRGMzI4QTFFQjI1RTQzNTI1RkIxRTE2QzA3RTI4Q0MzNTlERjYxRjQyNkI3RDQxRUEKKzZBMEM4NERENjMyNzUzOTVBNTAzQUFFOTA4RTFDODJEMzg5RkQxMkEyMUU4Njk5OTc5OUU3RjI0QTk5NDQ3MkUKK0ExMEVBRTc3MDk2NzA5QkUwRDExQUFEMjRBMzBEOTZFMTVBNTFENzIwQUZCM0IxMEQyRTBBQzhEQzFBMTIwNEIKK0U4NzI1RTAwRDdFM0E5NkY5OTc4QkMxOTM3NzAzNEQ5M0QwODBDNDM5MUU1NzlDMzRGRjlGQzIzNzlDQjExOUYKKzFFNUJCRUE5MUFFMjBGMzQzQzY0MjBCRTFFMkJEMDYzNkIwNEZDQ0MwQkVFMERDMkQ1NkQ2NkYwNkRCMjI0MzgKKzQ1MjgyMkNCRUFGMDNFRTlFQUE4Mzk4RjI3NkVDMEQ5MkE3RkI5NzhDMTc4MDVEQjJGNEE3REZCQTU2RkQ2QUYKKzg2NzBFQjM2NEYwMURFOEZDQUZCQUY2NTdENjhDM0EwMzExMjkxNTczNkNFQUJBQThCQTVDMEFDMjUyODgzNjkKKzVENDlCRDg5MUZBQkVGRTg2OTlBMEFFM0VEODVCNDhBQ0IyMjIyOUUxNTYyMzM5OUM5M0RFN0Q5MzU3MzRBREEKK0RBN0ExNDYyQzExMUQ0NEFENTNFQTM1QjU3RTVEMEI1RkMwQjQ4MTgyMEU0MzIyMkRCOEVGQ0Q1RDMwRTE1RjkKK0JBMzA0RkE4NzkzOTJFRTBCQ0MwRTFBNjFFNzRCM0ExRkMzQTNEMTcwMjE4RDcyNDQ1ODBDN0FBMERDNjVEMTkKKzc0MUZBNUZFNkY4Q0JGNjAyNTBBQ0MyNzQ1NEJCRjA4OTdDQTRCOTA5QzgzQTU2NjcyOTU4NzUyRUQ0QjVFNzkKK0UxODY2MDc2NEYxNTVFODZGMDlFRkE5Rjc2ODVGMkY1MDI3RUM4NUE3NzUyODdCMzBFMjA2OURFNEU0RDU3MTIKK0U3RDAzMzQ4MUE1M0EyNzAyQkE3NTQyQzcxMDYyMTczMDM5MDMwQ0YyOEQ4QjlDNjNCNTU5NkE5QjQyQjMzRTcKK0Q5MjI5NDRBMzg3MTMzODNEMzY0OEE0QUYxNjBBM0IwQzhGMzM3OUJBNDM3MkJFMkU3RUE0OUFBQkE3NUFFRUUKK0M1RERFMUQ4QkY2ODQ4M0MzRDIxMjcxMjgwQUJCOTFENTRDQzgxOTY4MDMyMkVBQjcyRTEyNTBBNzYwQkM4REEKKzcyNjQwNUVGRTQyMDYzNUI1QjdGMEI0ODc1MkMwNjA4M0U5MkJERTA2NDAxQzQyQTJDNTI4QzhBNjAzODEyMjcKK0NFQkVGMEM5NDQwREMwMzREQUQ5QzE5RkIyN0EzNTAyMzMxMTJCMEEzMzkzNjZCNzM3M0NFMDU4NDU2RTBFMUYKKzEzOUUyRENBQTEyMTMzQjVCNjAxN0IwRTA4RTc3NjQwM0Y5NjdBRjcxOUUwMTYxQ0RGQkY4QkJFODQ5MEY1N0UKKzUzQzc4RTk3NTE3RUY3RkI3QzAwMDM1RDYwMUNBQzhGNEVCMkYxNkY4NzY1NjE0MjI3QzcxQzM5MEMzMkU5NjAKK0ZDN0U5QjlCRjI2RDg5RjgwOEIwNUMyRTQ4M0I5MTcxNDUwRTRDRjNBODY5MEUzQjZCMUJFMTdDMzYxNTcxMzEKKzg5RTQyRDhBMkY1MUQ0Q0JGRkYwN0Y1MDc4OUQwNjAzODA2RUVEMkQwQTlCNUU4QjdDQzA5NTlFNTdBQTgwODgKKzVGNDhCQkQyOEIzN0JENTFFQUM3MjY0RDQ1Q0QyQkI4QjYxMzc1MjlCMkI1REVEREQ3QTc0MDQ1OEYwNDU5MjIKK0QxQTE0RTA3QTlFOUZDQzk0MEQ4OUVGNTZFMjc0QkY1MzM5MjdEQjgyNzZDM0MwREU3MDRDRDhFRTQwMTBGMzkKKzM2NUFGMUUzNjY1Q0U4NzNEOEQxQ0NBQkM5QzY5QTZCQTg5MzlGMTcwQjg3Mzk5NDMzMEYzMjk2M0MzMzBFOUUKKzcwRTk1RDYyQTVDNEQyRDA5QUM0QjhEQzdDODM3RDlGRTdGNUEwRDREMDgyNzQzRDAzOEQ0NThEOTA3NDA0NzgKKzJBMDRFNzY5M0M5NkRCNEE5MUNFMjM3QjhFRDlEOUYwN0RENEZCNEI3MDE4OTFEQ0YyOTQwNTJFQjgyNjNFQUIKKzVGQkY3Njg5NTAwREUyOUUxMTIxQTQ0NjBCNzI1Qzc5M0Y3MUU3OUE1OEJFRjZFRkQyOUM2Q0E4NTcwMkRDRjQKK0NEMjQzNUNBOUEwQ0Q0QTFEODFDMTU2MDJCNzY4MjQ5RUZDMjI5QTJFRkFEMEJGQzdENUE4QkNEQTE3NzFEQzIKKzI2NDFBQUVFMzRFNThCRjZBMjM2RjYyRTJGRjY4QjNEOUU3QzY4RkQ1RDEwNDgxMTkyNTI2NkFDNjdGMTZBMzIKKzlCMUVCQzU1MDg5QTA1RTMwMjVFQkQ3ODdFRjE0RjRFMDUzQjQ1NjIwNUM4Q0UyRTI0Mjk1NDAxMjMyQzBBRjEKK0UwMUJCOTBCMzkwRTJEQThFNDJFNjI0QzMyRjNENjhFQ0Q1OUVBRTlFRDg3OEQwNzg4OUM3RkE4QzgwRTBEMjcKKzUyN0U5RTBDNTdDMTJEQzFCMTA1MDhBMDM5Q0VBNzRDQThCQTAyN0ZEOERCMEJDMDM1NkREQjE2MTM1N0M5ODMKKzNBMTQ0RjY5N0UxNDA3NzkxREUyNzA5MTFFMjUzNzA0OTlBMEVDRDkxMkI5OTc0NDkwRjJCNjZBQjU0MUM5RjAKKzAyREYyOERBNTNFN0IzRTIxMjk5MTkyOTMzREUxM0RCNTYyMTBCNkZGRjM5NTNEMDk0NDBBOEEwNDM5ODc3MjQKKzY1NTVBNDQ4RUY1QTU0MDIzRDhFNkNCMDYwRjQxQkE2QzNDOENCQ0NEODU2RkFFMkM4NkExQTAzNDFEMzgwQkYKKzMyMzZGMUI1MjZCRjgxMTk3NjUwNkE1MTdBRDU5MTNCMDY4MUQ0NUQyODRGQTdFQUFCNTM1NTA3Q0JFMDQyMEQKK0U0NTdFRTQxNUVDOTFCOEZBNDJGOUFFQTRFNjNFRDI5REEwQkRBN0E3ODI0NjM0MzA5RTU3RDcyMUE0MjI4MDYKK0VCQTREMkRGNTQzQTAwNTAxMDhGQTdDNjEwNEFFNzVBQkQ2NUVBNzI3NEMxMkNEQ0E3RkNGQTZDMzlGODAxNEUKKzNGRjQ5QjhGREE1RkY1OTU2QjcyRjU4MURDN0NBNkE4NjBEMkJFMkM1MjJBQ0RCMTAxMkU2MjJEMjExNzAwRTYKK0RENzdGQ0M4QUVDQzg5QTc4N0QyRjA0N0YwODU5NENDQTJEQzI2NThEMkNFRTM3NTI4NTRBRTYyRjVBQTg0NkEKK0UwMjJGQzkwMTIwMzM4OEIwRkVFRjc5NURENUJEQUMwMTAzQjU3NkU1QzgwNTJBNjk2QjhENkIzRUU2RUEzRTYKKzcwRTZCMjY0NjcxNUM5RTc0MDQzQURCM0VDREJEOTVBNUVCQkY0QUExMTJGQTgwMEI4MzNDQzdGQjQ5RjhFMTIKKzM1Qjk4RTM0RDYzRUFENkNCRDA2MkMxQUU1NzQyQzkyMDlERDM0NDU4RTM5RUI4NjU1RTZCNTI3RkE4NDhCODYKKzUzOTg0QjNFMDA5QUU5RDE2QUI4MzI3NjE0MUYyRUQ2NkQ4NjY4QTJEMkJBQzY1RUM5NjYxMDJGN0E4QTkwQUIKKzM0Njk3MDdBMjc3OEEyQkFBNEVGM0VFNkNBN0NEREUwQjJEN0MzMjRENUUxN0Q4RDM0NDdDN0RCMzc4QzI3MTgKK0ZEMTUwNjUzNUIwREFBMUZGNDExMzBFOEZEQTUzQ0RDQTAxODkzRDk0MjczNzRBMEY5NjlBN0Q2OTkxN0QyMDgKKzM3MDkzMUNDMDlBOUMyMDhFQUREQUUyMTU2MzM3MEQ2RENGRDFFNTkxODQ4Njg1QTE2Q0M2RDlFN0NCNzIxQkYKK0RDQkYwOUVGMTE4QjFEMTNDMEZEQUE5MDlCMjgxQkE0OEJBN0FENkM3QTczQTBBQTVBNEYyRENCOTNFNTE5MTIKKzUxQUEzNTFFMUFCQ0NFRDFEQkE0REY3RDk3MjUzMjgwQkVBNUM0RTEyM0Q2QzJCRDg4QzNGMzYxNDM3MTQ0QTMKK0I5QjkzRjBDODk3NDhBMDZEQ0ZDMTJEODIxMTA3QzJCREY3MDBFOTk3RDc1RjY5RDVGNUU5RUQ0RjFDMUM0NzQKK0FBMEUxOEQ2RDlGMDIxQ0IyMzhBMDFCRjNGQ0U5MDM2NjNFNDA0OUQxOUVBM0MwNzcwN0U3NzkzNjdCNjk2QzAKKzUwQkU5OEQzRDRDQzhGMzU2RjNCNEVEOEI5N0JFODk5QTIwNTM1ODU1MkEzOTM1NUU3QzY3MkZEODhCOTRFMDQKKzZDNTkzNDk2Rjc3NzgzQUNCRDkyQTY0MkNBQkZEMEFENDE1MEE1RjdENzk3MEMwMkYzMENCQjBGOTQ3QUM1M0QKKzNCNzhBMDEwREM1NDMxMzFFNjEyOEFEMThDOUY5RDMwMzAxMDFFMjY5RUM1OEFDRkIyMjNDMTIxNzYzQkVDMUYKK0MzQTJCOEVENzdFNzUzOTVCMkQyMzQ5QTJDREE1NEE3NDBGMDA3NDMwOUM1MTZEMzhGQTdEMjVFMTRCOTBCNDcKKzhEOTE5QzRFMEQ1N0M4NEY3MTdFMjk3NDI1RjRBREQwODUzNzQ5QjlBMjE0MThFOEJBMzQ1NzlGOTgxNkQ0NkIKK0RBRUUwRDkyQkU3OEEwOTNCQzI4NDZBQTNGRDdCQkNDMjI2QzQxN0M2QUJDQzRFMTk0QTNCQjdFRjAxREI1NTMKK0RBMkMzRUU5NjNEQ0ZGRDgxRjlEMjg3ODhCMDkyRDA0MTRCQTkxM0UyNTU4NUQ4RDg4NDk3N0NDQjlDQ0VCODQKKzU4MDNGQ0FCMEExNkI3N0JERjRGMjFEMjJDODUwQ0MzMkY1RTU4ODM0NTNBMzRGQzEyRjUwMjM5RENBMzk2MUEKK0Y0RTlGMUVBODFBNkZEQ0VEQzBBNEEwNTMyMDNEMTY1QkUwOTBFNjM5QUUzNDBBMTc3NTM1OEQwMEY0MEU5NjAKK0NBMUI4NTI4ODVCMEIwNDBENzZENjFGM0UzQUYyRjUyNUFCRTYwOTU1NDREQUIxMTU5NUM1QjBBRjVFMEVEMzcKKzQ0M0E3RDQ0QUY0NjlDMTEzNkM4RTQ2NzBEQTBDRTU0MUI2Nzk3Q0Y5MTk5QkZCOTA3RTREREYxNDFDQ0UyQTkKK0JDMkY3MjQwMTMzOENEOTA3NDlGRkVEREY2MjZBRkQyNTc4Mzg4QjFDNDFBQTQ0QTAzM0JDNEY1MTQ2OTI1N0MKKzE5M0EyQjYyQTZERUI3MTJFRTgxQTEyMEE0Nzc0RDdGNjAxRjFGRDI1QjA3NEU5NEZDODUzMzZCNzlBOUI0QkEKKzY2QjgwN0YwRkFBN0EwQTY1REUzQ0FBQUQ2MzI2RjExMEZEN0ZBRkVEQUZFNEJCNTVDQzUwQUIzNUI3REE4RjIKKzlGNEY0OTA3REM0NTFFQUVFNjUwRDY3RjA2MjNEN0ZFRkY0MjUyRDY3MjdFMTZGQjI5NjExNjc2MzlBNkNDNkIKK0FFNjk2NkQ3RjJCODZGNTU4RjcwNkRGOTJERkQ2MUIwN0RGMUI5RDVDNEQ1RjZBRDdFMUYyREMzNEZCODQ1RTkKK0QxNTFGMjQzNTQ1M0ZFRjQzMEE3OUYxMjQ4REJFOUJBQ0I3RjRCQkYxODExMzgyNzcyMDhFQjRFMDFENDY5NjMKKzlEMzhFMDZEODFFRjMxNEE4OTkzQUE3RUJBOUJBQjUxQTAyRjlCMEEzOEFGNjBFREE4MTFDMUJFQTVBMkE1MzgKK0U1QTU4MzQ2MjVEODkyQTBENEVEQkQ1MEUxQTZGN0I1MzI2NDA1REJBMkFDNUU2Nzk4N0E0RTY4Qzc2MURDNkMKKzREQzE0Q0ZCODFGN0U2NEUyQUJBNzBCQjM0MjE0RDM5REIxRjc4NkY0MTBCMEFGMjExRDk1ODUwQzBEN0NFRDkKK0Y3RDQyMUQxNDMyQ0JGNEU2NDJENDFCRDczMDZGODlBRkZGQkUyMkJGQTNDRTBDMEM5OTE3MTFDNDc1NDcyQzIKKzg3RjJFMEVDMjdDOEUxMkYzQzgxOTgwNTFFNEVGQjRCRkQ3RDQ4RkRFMTlERUNDMThCN0E0RUI1RkYzOTk1Q0UKKzVENUVDMkFGQUJCMzNGNTBGNjVDNTQxRjIzRkY3QjM0MjhCRUVDRDhGNEI2QjQ1NjU3OUE1NUE5MUFEQjFGOUQKK0QzMkNBNDQwODg0RDM2RTc3RTQzRjUzMkUxQTU1OEEyOEQ5QkM4OTQ5MkVGODc4ODg3RThEMUQ1NEVGREQwQTQKKzE0OERGQTlCRDVCRjU3REI5RjBCMDVFQ0E2NDE2NUQ2NDkzRTA3OUVEMTNENkE0MTczQzJCNUY4Njg0ODQyNjIKKzVBMzhDMTc2MzY3NDU0NEZBODZBMDE3QjJDQ0EzRjU1M0YzM0QyQkI1MEIxQzI4ODdBNEFEMThCQkFEMDNFMEQKKzY2QUE5MDdEMkM3NTVCQTRGREZGN0FEMjUxNDM5REEwQUNDREQwQTZBOUJGRDhCQzc0QzBGRDczMTkxOERDRDMKKzNFNURERDNCOTdEMkQ4QjE1QTc1OUYzQkFDRjdGMkQ2QzdBMURDQUI5RjVDQkFDQTQ2NTQ3RUU0MjQzRjQ2RkEKKzE0NTU5MTA1QjE0NTA2Nzc5MjQzQzREOThCRkE5QkMzMTlCRDNCQTlBQ0MwNDgwMzhFOEU4QjE0QkY0OTg4MUYKKzcxQUVBRkQ0MDZFMDY1QjM5MzNDRkUzRTRDMDhENUNGRjJBQzkwQUY4RTZBOTZDQjgwMjA2OUNEQTdBQzkyRjcKK0RFMEEzNzBDQjVBQjU5M0UyM0IyQjkwMzdCNDREQUZEODg4QzQzODBDMURFQjY2OTNGNTIxMjkxOUFGRjQ0QzEKK0ZDNjYyOThGREU2MzIxRTkwRUEzQzk4NUFCOTZDN0U2MDBCNTA1MDZEOURGQkU0MDU4MDNCMDJEM0U5OThEMDYKK0Y5QjdERjNDMDk4QkUzRTQ4OURFREMyMUE4REQzNThDMURBMEQ1MzkwREYzMTdFRDMwOUY2QUQwODJDN0JDMjMKK0VERTlFQzUxNjM2RDQ3MTFDREVDRTM5MUZCQ0MwQzUyNzdERDU2MTRFOTU1NjMxREQzNDlEQTA2RDA0NzIwMkYKK0JEMzExRDZENzAzMDNGNDM3RUVBMEI2NUI5MEI4MzQ1NDYwRjJCREYzMjRGQUEyQzdBOEYyMDY5MzgzMTJDMkIKKzYzQjRFN0I1MURDNzI3QkM3RjhFQTk5NTA5Qzk3NjI2RDVDQTg0QjNDQkI1QzdENjVCRTgyMkMzMUIzNTA2OTUKKzI0RTkzRTkwNEMwREFDN0JDNTNCMDkyMEI0RjIzRkIwOTE2OTc1RDVBMkFBNTIxNzc5Mzc4MzRFQkJEODJCOTYKKzA4OTJEMzIzMTZENDhBREYyOTUxOEU0RjhDQjMxNkNENjUwNjIxQjFBMDIxRjY4NTVDMkEzQTg0QUU2QkY0MkEKKzlEQjREMjA5RUM1MzJEOEFCQzdDQTIyODlGQTYzNUIxNEI1QzVDNTlFQzNERkMwREI1MDQ2MTUyMzZEMTA2RkUKKzk4MzYzREYwODBCMTYyRjRDQTQ3MDE3ODJBQjUzQkNDMEM3NjUwMjMzRjVGNzQ5NUM3MkY3NTIzNDQwQjQ0RTYKKzk4NDJBNjA4QTQ1NTA5MzI2NzFERkUwNjZGRUNBNzE0QzA1NEE4MDY2NENEQjkyNzI0NTRBMENGNEY0Q0YwNzEKK0UwRUQ4QTIxMDNGQ0NGRTJGQTgyODlDMkY1ODhDRDIzNDhFMzNEMzhBMTJDQjc1REFFQTcxQTVEOURGQzk0NjMKK0NEN0RDMUM3OTRBRkNDNjVFNTk3NDYwRTI4RkU0MkI4NzFDNEZDODQwN0FFMTJBRjk2MTMxMkIyOEQ0RENCNEIKKzQyMTcyRTI0MkNGRUFFM0IyMjgzODcxMTk5OTMwODk5MEI2RDQ5QUU3QjY1RDk0NjlGNDcxMjgzNDEzNENDMjEKK0ZBQjlFQUMxRjIzQjJDODIxNEExRjAwRjJCNTlFQkRDOEY3N0MwOEY2QkE2QTkwN0QwNUY2MTRGNkRFQzQ0Q0MKK0M4MDk5Mzk2Njk1MEJCNDNCRjhGOTM5NUJFMkJDMEMyQUVEOTJDNDgzODUwMjI3RDI1NEUyODU2NjA0QTE4OEQKKzgzMjgyQ0NGMjNCMTcwQzhFQTFGMDFGRjlCRjlDRTQ5OTM0QjFBNjEzNDkxNzg1MjQ5Qjk3NDBEOTU4M0VGMEEKKzE2NDA4NjlDRTRENEZBQjYwRjYwRDhFRDg2MjMyNjgxN0E1MEZGRjAzQUYwOTc4REFEMkEzNTZBRjc4RDc2OEIKKzJBMTJCMkRFQTkxOTNFRTgyRkYzNENFMTA3NTQ1N0Q0RjMyNTYwOUM3NkNGRkY1NDZFNTlFREY1QjM4OUNEOTIKKzQ1OUNBQjA1RDZERjg0MjU0Qjg1RTFDMjIwQTIwQkFGNkE1RDgxQkQ2QTgzNjYwNjQwRDI1ODgzNTQyODFCODgKKzA0REJBREE4MjAzQTFBNjA5REFBMjA4Q0E4RDU1OTZFRDgzOTI1OTQ1OTc0NDFFMjkwMENEQUZGQTQ5RkE1MUYKK0Q2NUNDMzlBMDJBQTdDRTdFNDg2OUE1OEQyOUQzN0YxQzY1OUYzQTMyM0Q3QTkxRjYwQTYxRkI1NEEzOUIyNjYKK0RBNDdBNUUzOUI4QkJCQzMxN0EzODdERDE4NjMzQTA1NEIyQ0VBRjUwMkIxMzFFNjE4QURBNjA2NDg2Qjc0OUUKK0M2RTY0Q0E4NzQ1ODIwQzU2MDk4OEFBNDRCMzBCMkNBMEEzOTk3QkM1NzJGNTBGMENCQUY1QjlDQjYxMjQ3NEIKKzY2MUM0MjExNTY5QjFBOTU5MTU1N0ExOTdDQTU4MEIyQUI0QUNFMzAzNjJEMDhEOTc5Mzc0MzEyN0U1NTY4RDQKKzI3ODNDNENBN0MwN0UyMEI0M0M3NDlBRUI1RkYwQzIxODgzODMyQTBGQTk0MzU4MkZFQjNCNTAxMEM5OUZGQkIKK0EwRkM4MzdDMjdGREU5MTBBQzU2NTc3RkE4OEYzRkFGNTc1Njg3REU1QTkwQjk1ODM1MTU0RUYzODRGMDBENEEKKzAxQUEwRTQ4MjA5REQwNDJBRjAzQzlDN0JFQUFBMzFFOUJEMDBBQUFFMTBFQUVENDUxQzAxRTM3NzYwNjQyOEIKK0IwNjcyQkY4RjEwRjc1MjZGODRBQ0I1NDQ2NTI4MDIzRTAxRjVFNUQ0QUE0RUZBOTAyMzQ5MkYwM0Y2MDg5M0MKK0VBMjVFMTRGQzREMjY0Nzg3MTBDM0RFQUMxRTUzNDE5NkFBRUVFRTI5RDI2NkNGMkJCOUI4MDk3MEI2NzczNTMKK0M5N0Q2OTE1NDVENzgyMjI5ODhGRTkwMjg2NUYxNEY0NEMwNzlDRjdDMTRFQ0JFNTYxNjgwRUExREM0QTZGQTUKKzc0MjBDNThDNEVFQzg3MzE1QTREQUYxNTIyMjJCQzk3OUIwQ0JCNEVDMTcwNDlGNjc3RDFDMkJDMzFFQ0I1RTIKKzlEQjg2OUQwQzQyMzYzREVBRDg5NTEyQjM1NjBBQjY1QzA1RjIxMjcyQTVFRDE1OTMwMEMxM0ZBNzRCRDc3QjIKK0Q5NkVGODEwRUZGNEY2NEE4NjRCRDA5QzI1OEVFQTMyNjAzQ0ZCNURGNDA3QUQ2MURGNTI4QzZENkE2RDBCRUUKKzlBRkZGMEQ2MEZFRTE4RkZCRjg0MURBNDNBRUQzNDgwREVEQkI2NTJBRUNBQ0ExQTRFNUNDOTNEMzMwNDg3M0UKK0VCREZCNDlEMTYwMDBFRDhBMDRBMEY4OEZCMUNFRjFGODQ3QTQzOURBMUZFOTM5NTdBNUNDRjkxMTZFRTJGQjYKKzFFRkE2Q0M1QTM4RDREODU1MDk4RDZGNTk0MjdGQ0ZBQkZFNTY1ODMwNzhFOTEzNTE2NjIwQjYzNEE3QkQwQkUKKzUyMzI0RDE1NjA5RDNDMDM1QTlCNTM1OTRGRjgzOTU5NjlCQUMxNTVCRDAxQjAyMDlBQzQ5Mjc5RDRCRDU2NjcKKzQ2RDgwRDZFNTRGRjk4RDZBN0MxRUIwN0UxMTI3N0QyRUUyNkRCOThCQzY5NDExQTQxNEFGOTc2MUY3QUVGMjcKK0RBMTc2NkUwMkI3NkU4QkM2NjYwQkZDQzJERDQzNDREQkJBMDA5OERDQjI4ODhBNkUyNDM2MjhEMzBENDUxODMKKzQzNURCM0I5MTQ4MDQyOEI0RTQ0QTQ2NUZFNDZCMUQ1NTRENzIzQUIxRjUyN0Y5QUQyRENEMTgwNjk5NjQyNUIKKzAwRkU4Q0FGQjY1OTM5M0ZFOUFDMEY1QTg5Njg4MDk0OUE5QkI4RjQ3NkJEQjI5MDNFRTJDRDkwMzZBRDA3RTgKKzhCQjhERjU1NTBGQ0Y4NzNCMzQ4QUY5NkI4Q0QxQzlDRThFRUE3QUI3NDNGNUIzRkQ2NTlFQzY1MDJBQ0Y3MjIKK0Q1RDc2QTBFNkVDODlGQkE2NjlCQzUzM0M5MzAzMTA5MTdDMTUzRjU2N0NGNkUxRUI4MDJBOTBFRTJFRkFFN0EKKzUwNERFMjE0NTQ5NzQ4NjhGRjY3Qzg2MTA4MTVDNEY2OUYyOEVGODBDQzM5NkQ0NjA0NzU2RTc0Qzc5NDNFNEUKKzEwMDIwM0QxRkYxRUQzNzg4MDIyQTBFOTMzN0QyM0JGOUIwODk1QTZGNzI5NDkzNkE0RkNDMzg2RkNGRkQ0REYKK0FGNDhGNjIzQzQ3OTFFNjFEN0UzMkM5RTI4QTNEQ0ZDNDEwNjI2NUEwQkYxODMyQzY4QjIxMjRBNDE5NDhDRkUKK0MxQjAzOTQ2MTQ3MzZEMTRDQThBRkVCN0E2MTMwQkQ4Q0Y0RkY3QTU3OTcyNDNDNkRCODY4NzI0NDg0QzQ2MEEKK0VEMzAwNUMyMkQ3NUU4MkQwOTBCMzY0OUYwOTY0NTMyQTFBNDg5ODdFMkY3RTEzOEEyQkI1NUJFQzVBNUY4MkQKK0ZCQUI2NTgxMjc2QzhFNjA4MzUwQUY5NTA2NTE3ODRBOUNGM0ZDNjVCRDU4OUYxM0RCRTFCMDYyQzZBNTNGRkIKK0JGM0U1NDFGQzkxOEFGRjQ4QjUzOEMwOTVBNEYyMjdFMDIyNTBGNzM3QTNCMjYxQUYzMDU4RDNENjMyRTMwRkIKK0M3OUVDRTdDQ0JDMTUyMzlFQzVCQUEwQ0U4MEQ3MzBCN0NEQUI5NDkwOUEwODNFREQ1RUU2NjJEMDUyREIzMTQKKzRGNkVDNTdDRjIwMjQ3OEMzMkEwNkY0MURCNjU5NTVCQTRCRkIwODBCODk3OUUyNTc0ODZGOTIwMURCRUE2RjgKKzQ0NkNBODdFMDFDQUVEMEQ4Qjg5MjMxMDFDQjJDMEI2QTM1NjlFMDZBNDAwMjY4RjQxNTBDQTlDNzI1MTlBNkEKK0MzNkY2NzMzMjk1OUU0RDc2MDg3NkVEMTQ5QjZDNDI5MDkwMTdDRkVGMDVCNzc2QjgxOTExQTNCM0UxOTc2RTUKKzI1QkYwRUEwNzNGNDQzRTRCNDQ4RUFDNjk5RkZDNzhEOEM0MUQyMDM1MTQ2NTk2RTMxQUVFRjBDRTRDQzU0QzkKKzgzMDA3QTgyODNCQ0JFNURBRTJBOUE4NDhCNjQwMDhEMEZCNjcyOTA0Q0NDNDNBQkRCRDgzNzhCQkE1NEMzNjcKK0M2QUM0N0Q5RURFMUI4NDhCM0ZGRDY4QTY1MkJDM0RFNjdGMUJDNEMxMTlCRjA3NjAxQjdCQzhFREUyREQ5QTcKK0VBQjVBMzQwQ0Y0Nzg3MUFEMzAyMkE1ODk2QTU2RTAzQTZFMjVGRDk2MEY1MTI4OTI4RjQ5Mzg1REIyM0Q2QTMKK0M3RkVENzlCQ0FDRTJCRTMzOUZBMkMyN0EyNDIzNkUzMjk4QjFBNUY3MDEwNDNFQjgzNTI4Qzk3MkM3MzVGQUMKKzlDOUEwNjVFMDYyNzBBRERFMTUwM0E0MkM0MDAxRjMzNjYxQzk4NDAzRjRCRDAwNDFDNzFBQTcyODJBNTc3RDMKKzg4NUQyMzk0ODAwRTBGQUMxNThFRkREREJGQTE1MUQ3NDc0MkYyMTk2MkY0MEJBMUNBQzBDNEQxRjI0QzAyNDYKK0ZFRjQ0MDM0MUREMjVFNDc4OTM2RjJGRUY4MTMzMUY4OTM3RjA0QTZENjkxQjIzNUZDMzg3NTcwOEE0MTYyREEKKzFDOTJGOTc5NTM0MEMzNkIxRDM0REE3RDE0MzA0NjZGOEMxNUQ0MUU5NTQzNEVBODg5MjY5QkFERDQyQzhFNTcKKzEyQ0JBOUZDMzE0NEQyMUM1N0U1RUU5ODQxMkIwNzMxNDdCNkIxMTdCMjBFOTI1QUYxNDFDRjQ1NUIxNTEzQzUKKzk3QUJCMUJGQUUzNTdBOURGM0ZBMEJGRDdENzIyNkI4NzhDRTM0MTNFMDRGMDNGRDAxN0ZBMTc5Qzc4QzUxQzIKKzNGRDEwQkUwQjNGMTg4MzQxNzhEMzA4NUYxNUQxOUFBMEY4QzNFNjQ0Nzc5NUI0N0U4NjAxN0Y0NEVFQjQ5NjMKK0M4MDZGODY1MTZFMUYwQjRBN0ZBM0E2NEM1NUQyQzAzNzI3QUZGMTA5NTdCNjQwOUQyRjEzM0QzMkVBQjA2QzAKK0I2MTJGNjZCNEM4ODFENTlDNzhEQzlFQjZBQzYwRjkzQzJFOTZBMkI3OUVENTczRUIyOTc4QkJDMDA5OEQ4MjgKK0IzRkRBMjJFNkI1Rjc3OUQ2N0RFRjU0NzE0Q0ZGQzkyN0ZEQzcxN0M2RkZFMTRGOTBEQkRDNDIwNzVENTk4RUQKKzU0ODEwRDg5OTMxODBCQ0M1QzQxQTQ3MzlFODYyMDFEREI1QjhCM0U4MEVCNjhGRjZFRDE5OTczODAxNTY0RDkKK0Y0RTQ4Q0Q4NjIyNEIxMEI0MzA0NzQwRjhDRDJFQTg5MEU4NjJBQTNCQ0QwQjgwNDE1MTZFNzRCRDAyMjFBNUQKKzI2RTA3MzA0OTI3OUIyMDIwOUFCRDI5N0RFNTg0NEFEOUM2MTQ5OURGOTY4RjVCOUFCNUQzQkFFQkMzNjI1NkQKKzQ2ODA1NDkyMjY1Rjc1RjkwNkUxQURBNDZBMDg5NzRFNEYyMzBBNTJEOEE0RDg0QzcwMTk0NjQ5QURGOTc4MkIKKzE4N0M0NDlFNUMyMzQ2RUI5NzI5ODU1N0RFRjIxNkRFOTcyOUI3MUI2OUQ0OEVCMDE4QkYzODI1OUFDOTg4NjAKKzlERDcyOTkzOTg4MzgyMUU3QTFBNjQ1MzdFMkNCRUIxRTZGMTFBNTAyODQ1OTRCNjVEMTMwQTQ4RkM3M0QyNTIKKzcxODVGQ0QzNUEzRUY2MUYwMUY0MTI1MURCMjg1QzM3Qjg1NDE4NDZDNDdDNzg0NUEwQTQ2RTFCOTg2QzM3ODgKK0EzRTdFM0U5OUYxNTFGNUNGOThFRTRCREVEMkI0Q0M2NDMwM0E0OTAwRTczQjA3MERGNjYwRTkyNzAyMkM2NDEKKzFBMEQyOEQ5OTNGODUwQkQ4MjA3OEVFQjRGOUFEQTIzRUU4QUUwQ0NFNjZGMUE2RDA3NkU0NDg5MERFQjVEOUQKK0I0RThCMTVBNkU1OEI0RTA5REQ0NEJEMEVDQjE0ODI1RDhDNERBMEU3MjA5QTkzMDgxMkVDNjM2REFEOUVFMDkKKzMwMTg4OENEMjVCQTk0NEM3NzkxMTA2OTYwMTZEN0IzRTZGRTJFOURDNEExRjgxQTZGNjFCOTMyRTI4OTAwRTUKK0JBNDNFQUJCNzA5QjMzRTlFODU2QkI2Q0E3QTMzRkEwODg4MjI3MUU1QzJGOEYxMkY4QTBBNjczQjZGNDJENzMKKzY2REU5MTA0MDI3RUE3RDAyRjMzODY5RTBGMDZCNzBGNjQwMTg1NDlEQzk5RTRCNTBBNzM4MkVCMUEzNkIxRTQKKzkwN0U4RjU0QTU5RDREODMyRDVDQzMzM0QxQjUwMzdCNjREMTU2OTA5MTc4MEJFMzE3RDk0NTFGRjU4M0UwQjEKKzJEODg3N0VCRDNBMEVGRUE5QTAzMzBEMzE2NDJBNjc4NDIyM0U5NTVFRTZDQjVDQTgwM0NFNjhDRUNCMjUzQzgKKzQ0Rjc0Njc3NzgyRDQwRDZENURBQkNBNUMyNDQzMDNDRTQxQjFCM0NBQUY4NjI0Nzk0NTNEM0FBOTQ1RDdCODMKK0FDQkNCMzdCQjZEODdGMTM0QTgxNUZGMDI0RDA5MzQ5MDdDOTkxRDIwREZFRUJFRTIyQjM5NjZENENFNzk4OTMKKzAwQUEwMzhERjczNjcxNDc1NTYzODNDRTcyRTg1QzIxNDREODRBOEIxM0Q2NjcyMkI4QUMyQzYzNjM2N0NBQTMKKzFDOEQyQkM1REY0NjhGNDdBQTc4NjI1QzM1QTczNjJEQTUxOUNFMzE5NDZGMjhBRUJCRjE2RDQ5ODNDN0RBNUEKK0FGRUFGODZGOTNFMjUyMDA4MjA3NDczNjFFRTAyRjA2RDUxMDk0MTVGQjdFRUVEMTg4MzEwRjBCOUNGOTNFMUYKK0RBOTI5RDJGQTQ3QUU0QzMzNDk0OEQwRDc1NjA5QUVGNzFERkY4Q0QxMUM3MzEyRDgxNzYwNTA5RDY1MzA4OTgKKzI2RTRCMkU3RjlCMUI1RUM5NEQxODM3RjI1QTdBMzNCQzY3NDg1NzQzMDNERDlCMDhDOEZDMjIzREI2NTlGRTYKKzEzQzcxQzI5RjA5MDdDMzZFMzU3QTBBODEwMzhGOTQ0MDc3MzgzQjc1MzYzMzdGMDc0RUM3MTYxNzk3RTExMEQKKzFEODg1NkY2NEM5NkRCNTA2Q0E3OTkxOTdENDU3OUQ5NEM4REJBMEQyNzYyMDVFQTgzMEY5MjY0NkE0QjA3MDAKKzVBQUQxQjI5QzU4RUIyMjI4MzNFOEU0OEQxQTc5Qjc4NUVFRkU1OUIxMUM4QTgyOUE4MjlDOTc1QzgwRUZENjMKK0Q0N0RDOUVEOTg3MDBBM0Q1NTU4MDdFNDg0NEY1MDMzREM2QzczMjY2REQ0RjI1QTZFRkMzMDQ1NjBDOTE3QUEKKzNCRTgwNURFREQzRDc4Nzc5NzMwMEVFMENFQjMzQ0NDNEQ5QTE2RUFBQUU5MDJCOTg2RTJDNEZGODY0RTJENjQKKzE5RUJGRjM0MzgwMzVGRDlGQ0EyRDlCMEMzRkRDMTdDQkJEQTQzMzU0NEQyN0U4MUJGODA5Qzg5Q0EzMEYzNkUKK0QwQUQ1MkQzM0NEQUNDNzI2NTBBOTZFOUNEOEVFQ0Q3QThENTAyOTZFQjQ4OTdFOTlGMjgwMzBEQTBGMkFFOTMKKzdFNEE5NEE4N0NGRDMzODg2NDJDQ0Q4QkYyNjY3MjQ4MjQ3M0M0REFFQjNEMjBCQkIyM0MwQTk3RUIzQUM1RkYKK0NGNEE4QTJDQTBFREEyRTY4NkVCMUU2NjlGMjUyOUIwMjdGNUZDQUFEREJFM0Y3NUMzODRCNzY5RDA5RUEyOEMKK0ZBQ0ZDNDc5OTY0QTg5QjQ0MjFDOTMyRTRBMUNFQTNGQzUzMTJGRDU2QTMwMTFENkUyNUM1QzYwODY4ODM5MzAKKzcwNDMwN0NFRDczMjFBOERFQTU5MzM4REE4NDNENEM5RkRGNThDMDYxMUUwRTUzMDQyQ0IxOUUwNEM2OUI5RjQKK0VEMzg1QjM5OTRBNjRFMUE1Njg1RkY2QUYwRDZGOEZGNDE2NjQ4MzYwMkQyOEQ4RTE4RUUxRUE5NEREMUFCMzcKKzcyRjFFMzMxREMwRTQ2QUJDMTEzMUEyQ0Y4QzNDMDhEMzNBQzdCRDA0NEY0MjMyNzI0RjIzQTkxMzVGQUQ5N0IKKzUyMTE0QTQyNjE5NUM1OTlBMzE4MjQ2MUFBNEUxMjZGMUY0NDVGQUM5QjE2N0Y0MThFMTcyREI2MzBDOTQ3ODIKKzRFNUU0MUUwRjYzMTU1MTZCQ0U0OUVDNDM0NkE0QkIzMDc4OTNGOThCNDZCNDZENDIxMTM2MTRDRTlEQTk2RjMKKzZBOTUwRUIwODFFNUZBREQyOUY5MzBCQjE3NjREQzQxNDA3QjcxRDM4NDQ5QUQzNTkxM0IyNzg3QTFBMUJBNjIKKzNFNzFCRTI0NzEzNTk4REZEOTZCRTUwNTZCN0FFQ0QzRUUxNjg1MEI2NkY2Mzg0MDI5RjE0NEUxOUQwNkE5RUYKKzQ1OThCMTU1MzQxNDc4ODA5NDFEMDM1OENEQzUyQjZFMDhBMkQ5MDdFQUZCNTM2QjcwMkM4RTZBRjc2RDdGMTEKKzQwMTg1NjY3NjJCODg1NjBDRUFDOTdGM0RFOEFGODM0QUMxOTZEN0NEM0MzREY0NDAxNTBFODk0RDBBNTNFNkEKK0U2ODdCOUZEMUFCOENCMjUyRkU1NDkzQ0FCMjk5MENGMTFBQjU0OTE1NURDQTExNEEzNkI2NEJFN0E4MzU3NDkKKzNFODY5MDdFQjk1RDk0OThCQjA0REYzOERDODVBMzRDRjE3MDE2NDdGRTIyMzdGOTYzOUMwRkI1NzhEM0E0RjcKKzQ3MUIyRjIxQjc4N0VEMjYwNzc1Q0M4NDk1QjZDODUyRjRDQjNDQkY0RjVBMzQ1MkEyOUI5N0I1MUE0Q0FFNzYKK0RGMUY2NkYyOTJCQjIxOUMzODdDMzQzOTlBODQxNTc3MkY3QTU0MzlFQTNBNzYwMkZGN0E2QUFCNzRFQjFGNzMKKzg4NTYzRjQ1MkI1RjEwQUY2MDg5QjQ1NjJGQzEyNjk4OTVFNkEzREVCRUZGNTg5NjQzQzYwNjQwREFGNDgzOUUKK0JBNTI1QTE3MTBGMjY0M0E0NTZFMERFQkI5MENEMkVGMkM3NUVFNkREMzFDMzI1MTQ1MUY0MUVBMTEzNzI3MTcKKzlCRjQ3MjU5QzQyMkE0QzU5NkYxRDc2NjcyQUEyN0I1N0U3RjkwM0Y3ODVDQjM5NDAyOTAwOTg1OTkzMUVCNEMKKzQyRjlCN0E2QjE0OTQ3MDRFNTgwODQ5NzhERDIwMzNFRUQ2NTZGQzhCRTdBMjEyN0ZCN0QzREZDQkIwQzZCNkEKK0Y5QTU5OEIyODMzQ0ExMkI2RjlCMkYwRTI1M0Q5NjUyNzA2QzRFMTJBMDM3NkY4NjQzODg0MDdCQkY0N0NBNUEKKzRFNDdBM0Y4NTY3RTdDMzYwQjZBQzc0REJBNzNGNjg2QjMxOEU1MTgyQjE0OTgzRkIzNDBBMDgwMTAxNzBDRUYKKzZEOTJCRUNGODY5NThGQzdENDA5QUNDRTEzQ0I1REJGNUQ1QjIxNUQ3REI4NkQ2MUVEQUQzRDlEMEZEOTY5QTIKKzQ1MzI2ODlDQTdERkRGRTQ2Q0ZBREI1QUNDQkZDNzNENkZDQUFFRjEzMDRFQUEzN0QwQzkzOTJGRUQyOEZERUYKKzBEOUExREU4M0NGNkMzNDRFQkZGRjBFNDdDQThFQ0YwNTNBQUM0RDgwNjQyNTQzNDZEMUYwMUFBOENBRDg2MEMKKzk4RDAzMzVCNkYyMTE5ODlEQjcyRTk2ODg5QjJDRkE4MUQ0MjRGQjc1RkY2NzhCNDI2QzQxNDQ3N0Y2ODIxQjAKK0UwMjU1NjQ2QzE1QTY2MUU5REQxODUxNDMyOTg0MjQ3NEYwMTA1RkFBRTFENDNENUQ3MzhENUZDODRBRUUxODUKKzYyMTJDMENDNERBREZENzQ0ODhGNkJEQzg4RUUzM0QyNDI4RjdEQTA0QTMwQzZFNTQzRkE1N0ExMzA5MUJGM0UKK0M3NkI1QzQ0NzVBNjZCODE0ODA0NkI2MkM4QjYzMUU3MDc0QUMyMjlGRjE5OTA3M0ZBOEY4Nzk5QzdENjAyQUIKK0I5NUNFMjQ4REIxNzM2MzE1QjUwMUEwRUM1NjBDNjFDNjk1QjM3MkY0NjFDNDhBNTA2RjNGOTIyNzIwMjlEQjMKKzEzQjIzQkE1QkZDMjk5OTE3NTlCNkRGQ0U1QzMxODYyODRENEY3RUM4NTM0OEI2MTcxMjY5MEQ3MDk0MTBGQjQKK0YwMDBENEQ1OURENjM5OTM2QzI1MjU0QUVGRTQ4MUIxNzgwMjdFMDZDQkFFQTAzRUJCQTFGQ0E2Q0I4QUUyQzYKK0MyRjgzQUJDOUQ4NzEzMDhBQzMwRENFODY5NDFBRjE5QTNCMTA1RUVDM0NCNEFCOUVFMjA4NDZBNjdBMEVBNDYKK0ZCNTdGNzE3MTQyMDNGQzU2QTQ3NkJERkZDMzEzNTc3OEZCQjI4MTA0QjUzOUM0QTU0RDI0NEU4RDNBQkM3QjAKK0E1MTVCRTBGNkRCM0FFOUQ5RkM5NjQzMjhGNzkwNDVEMjFEOThCMjMzRkU3M0VCNzg5OEZDNDhDNDkwOEU3MjkKK0JBNkI5NTYyQ0VFNTk2NUVFOUY2M0QzMTBCQURDOTA0MDc5NjczNkI0OTUyQ0E0ODkzMThDOUVBODk0OEQ0NjYKKzU2QTQ2QTNGMzA5MUE1OEQxQzIyN0NGQjVFOEMzRDNGREI2RUE2QjRBMTZENkZBNTY1MzM1QUQ1NjlCM0U0MjEKKzRCQTM2MjdENjA0OUU2Qzg3QTFFNDU0NThBNTRFQTU3NDk1Mzg4NUNEOEE3Q0ZGMDY1MTMwOTQ4RENBMEVBNjMKK0IzQjFGOEZEMDQzQUE5MTBDMTM4RTFFQjU0NkZBNjc2QTI5QUU3QUQ4RjE5MjhFRjZCMjg1MjcwNTM0NDU0ODAKK0MyNzgxMTc0MzI3MjNGM0RFRDU1QkYzRTA5Q0Y4RTE0MkM1MTdBMzc4N0JCOURFMjc4N0QyQ0QzN0I1MzI2RUEKK0I0QzFDREE2M0YyRUVBOEY1NUM1OTg5RTM1RDg4RjVENzVFODhDNEYzODM1NzAzMjlDNjJEQ0I5MTg2RDdBRjUKKzhGRDIyQUE5NTNDMUUyMTY1OEM5REYwOTg1QjU1RTA4OENGQjdDN0M5NDFBNjkyRkFGMjE1OTM1QTM4ODk5QzYKKzMxMTYwQ0NBRTUxNTI5QkVBNDY2OTUxRjFCRTU3NzZERjY5QTIwMTlDMzNBNjQyOEJBNDNGNjY2MjA2NUYxNkYKKzQ1ODBCMkFGRERFN0U5RDMyRDY1NDVCQTk2QkEyRDI3MTBGNUZERjhDOUIzMDQ0OTc0QkFDOTM5MEQ0RjBGQ0IKK0U2OTM0MzRDMzJCRUE2N0M2OTQxM0M3RTAxREVGMTI1Nzg3OUM3RTA0NEY1NTNGQjQ2NjA0MjY3QTFENzc3NTAKKzIzMjBGQTEyNUUzODVCOENCN0M1NkY3MEYwNUQ4MTYzMkYyMTgyNjM2QTQwMUM3OUY5N0FDNjFDNUVEM0Y0NEMKKzgxMTA0RTYwMTc1OTM4Mjg3NzYyRTFCNUIwQTlCNTk1RkJCREI3QjUxMjZDQTI4N0JBOUY0Q0NGNTgzQjFDRDcKKzc0QjM4ODg0RUQ0NjdBRjRFMUFFNDM1NTVCRDNGQzcxQkRGMkM0RkMwNDFBODc5MTU5NEI0MTA2OTkyNjNERjIKKzBCMTBDNTM1NjQzN0JCNkNDRjY5NTJBNkUyMzM3M0NGQ0MxRjk1NzMxRENDRDg2OUU1RjdCMzk0QThFNTg1RjEKKzUwRDE0MzA4QUM2RUU2QUEyMDEwMjQwNDBFRUMxRTU1Q0REQ0U5REU3NEEzQUYxRjQyQUQ5MThDRkY3RjA3MzEKKzJCMzczNEYzODlGNkI2MDJDQ0FCRTlDMTNGNTI5RUJEMTk0MjU0MTkyQjBDOERDREExNEUzREE2OEIzRDA2NTQKKzMxNDBBODc1ODI2RjkzOTczRkIwNEQ2NEIyMkFGNUIxNTA0RDgxRDY3N0E2MzA3Q0QwRDJFQjU3QzQ0OEYyQUQKKzFDMTZDNUE3QjFFQjM1QTA0NEYyMEQyQzRCQUM5RkIxQ0UwQUREN0UxQUU4QkEzNDU3REU0QkFCMTY4MTQxRDUKK0RCQkIyMkMzMUU3OUIxNTFBODE1RDRDQTNFNDQ5NjNEMEUyOEMzNDg0MEI3RjNDNTk2MzU0QjNDQTM5NTZDOTUKKzQxNDhGMjRBRkQwODg4M0EzNkE2OTE2MzBBMjk4QUVFNzU3QjkyRTAyQTg2MjU1Njc3OEU2RTNBMjA0MUU0RDEKKzFBQjQ1ODBFNUZERDQ4NDE5ODhCOEI3RDczNTgwMzg3NkE0RDVDODk4QUY2ODU2MzIxMjUxREY2RDQyQ0ZCM0MKKzcxMTU3MzQ5OTgwMjBGOUU2MTU1RTM3Q0Q3QzI0NjRFQjQyQjk2OTcyMzQyRjEyNDQwNDUxQTIzRjczNjI4NEQKK0M5Qjk4RkY0QjU4RTA3RTM1QTEyQzQyQzcwRUNFNUVGOERBRjA1MkVGRDMyQkVGNTc0QjY3QUUwMDNEQTJGQjEKK0E3NDMzRUNDNzVENzlEMTBEMkYzMkM5MDcyNkM5N0U2NEY3NTQ1MjlGNzcyNEVDODY0NDIyNUMxODY0NkYzMDkKK0Q0RDdGMjI4OTRCM0RCQ0EyMjY0NzM4NjZFRTJFOTQ2N0E3ODQ3Q0Q2MkRFODNERjNENjhERTJFQjk5M0EwMzEKKzJFODU4RDNERDQ3NDIyREQ5N0YyNTdFMEIzRTJFNUI0OUJDOURERjBBQTc2NDYzRkRCNUJGNTI0M0M0RTY0RUQKKzlDMzA4QjE2N0IzNUI3OEQyQkZDMzNGMDg3Q0Y4NzM3Q0I1QUZEMzMxOEJFQjBGMDhGMDNCMzczRkY2NTMzREYKKzY3Rjk4NTBGNUQwRkVGNkQ0Mzk0RDg4OENGRTI4M0VFNTBDMzIzMDUyMjQ2OTlFNzFBMUQwMkIyQTE2REUyMUMKK0VEQjBBNTNDOUM1RTMxMkI1MzJBQUFGMDY3MjQzRDg4RjVEQTQwRDRGRTBBMEEyRjQzODVCRkYzNEZBOUI1RDMKK0JFMUMxREQ1MDY1QTM4NkZCODhDRkY3QThDQUM0MDUzOTE4MTE0NjgzRURFNDQ4N0I3QkI4NUQxQUM0RUI5MjcKK0YxRTFBOUNBQUZCM0IyM0Y0RUQzMDJDRDdEMTJBQzM2NUM2OUVEMDA0RENFNTFDNzI5QkU5QzlBMEU5Qjg4NzQKK0U0N0VEN0Y5NTY1Q0ExRTVBRThDMDk3MkE1RkMzN0NBOEEwMjNBM0U3MjhDMEVFRjhBQzcyNTUyNjcxRDUwMEEKK0UzRDYxOUEzMDlBNTNFMzFBRkEzN0NERkQzRkVBQUFGRjdFOTBFNjlDOTZDQTA3REQwREI0Qjg5MDYxNDUyRkEKKzg5NTBGRjc5RjE1NjVCRjg1MDg0OTZDRDU1ODA2QTYyRjExMUM5RjQ2QjdEQzE1RUUyNTdEMzE3REIxMzU4MTYKK0U0MkQyQkQ3RUE5NUQwQjZCQ0NCQUFDMzJEMjY3MzUwNjA0RDc3OThFMTE5OEYwM0I4MTlFODBEMTY1RTBDN0EKKzBEQTc5NUQxODUwRDQ4OTI4NDUwQjdGNzk2N0Q1OEM4RTg5MzBBNDUyRjE2MEJBNUE1NEEyQjdENDVGOUM4RkYKKzgxQ0QxOTE4RUQ4MDg5NThCOUFENEIwNzM1M0ZCMzI4QTY5RjRFNzNBNjgwNEZDRTMxMzJBMERGMDY5RTI1QTcKK0Y0MEQ0QjEzM0UwRDg1MUVGMjdBODk1RDA0NDUxRUJDRkU4QjA3QzA1MDk1RDlFOEQ5NjAzRjhBNUM0QUM3OTcKKzg0MTk2QjlFMDk4NzlFQzAyNjg5NEEyMEYyMTdBNEJCRkRGMTNEQ0I1MTkzMjE5MTA1MzVGNEJCQkQ4RDMxQjAKKzY2MjUzQjI3QzAzNEZEMTAxNEExMzRCRkY5MzkzMjAxQzhBMUE1NTEyNUJFMEVBNEVBOUI3RjU2RjJDMDM4RkQKKzBFODI4OTAyQ0NEQTQzOEY5MTI1MEM0NzMwNkFGRTRCOEM1MDE2Q0JGMzYwQzA2MjFGNDAyREVFMTMzMDJBNjYKKzlGMTc5M0U2RDNEMzUyQTI0MzQ5RUFBQThEOUIzMjBFRjg1NTYwQTkzNUUyQTREMkQ2N0JGNEYwRkFGRkE4NEEKKzBGQUE0NTcxN0YyMzg1NUQxOTQwMEExRDgyM0MxN0JFN0EwMDVFMUI1QUY5Mzg4QTIxNTBFMTRDRjdGMjI5QTUKKzA3MDk2QzY3NDYwQjk4OTA2NkQwMzNDNzU2NzAwM0VCNkZDODUxMkRENjg1RTQ0REVCQ0U4NzE4QjE0MDg4NzIKKzQwMjI2QkI5RDhEMkUyRTM0MDlDMTAwNDAxODI0QUVFNjkxNEJGNTMxMjNCN0YxRDM2NzY4OEQyRjNFOTBDRDgKK0IyRTJGRTc5MTFBNUI2NDM5RDdENDIxRTU5RUI3QkNFNERDMEI4RDA5NjkyREQwMjYyOUE0QTQwNTAwQzZDODMKK0MyN0MxMjcxMjAwNjk1MzZCQjVBMDgxMDVDMTM3QTgwRTExMkZBOTQ5QzdERjhGMkE3OEU4OTE2OUJBREEwMUEKK0Y0NDQ4MzdDOEVEQUI4RDMxRUU3MzgxQkRBRjJFM0ZDMjI3RDk1Nzg0RjA3RUQwQzJBQzEyMjM0RDgxQTA3RDIKKzBCMkUyNkQ5NUZGMTlGQjc0REQ1Q0ZGQkI3MDVCQjI4NkMwOURBMDhGNDE2NDA0OEI5REY2OEM1NzUxQTZDNjQKKzNCMDUzRUQ4NDJGOTk3RTc1QTc1QkE5MDc2OTg1RTI3RTY1QzFCMjU2QjdBRjY1NDFCQjI1N0I5MDgxMzMyMjUKK0M3QTc2MDhENjJFOUUwRDI4QzRCQzFGRUFCM0RDQUMyMjZENDRGMDJGMkI2QkI1RDc4Njc4OUU5QUI1MUJBMjUKKzlFRjA3NDhDM0JEMDIzODUzOTFBMzkwRDNEQzJCNDk0MjJFRjVFQ0Y4QTA5OTk4RURCMTExODQ3RDgzMDc0NEYKKzBGQkFCMUY2ODhBOUEyRkYyNkQxNkEwRUJEMzM0RDUzRDMyM0RCODYzQjhDRkFDMTVDNkU0ODEzMUM0QkZDNjgKK0I4MDM4QzQzNkYxNTZCQTI2NTdGMDVDOTUyNEU4RjhCQTRERTlDMEM1Q0UzMzkzOTI3RjFBREU4MDM1OURFNTEKKzI2ODZBQzE5MTlDREQ2MjQ0RDU4QzA5OTEyNUM4N0E2RTI3RDBDQzYyMjE0QjBFQ0UyRTE5QUI3RTc3MUUwOTkKKzI3MkZFRkQxNzg4ODlEMjIwRTc2MzY5N0FGMDU2MTYwQjU0RURGQzEwM0ExNjFDRTE2RkNFNDJBMUJGNDEwNkIKKzQ2NTAwODE5Qzg1RTc2NjhCQjJCOURFMzI0MkE3RkFBNTU4OTkzRjRFMDZEQjQ3OTEyODAxQzc5QkRGNkMxMEMKKzUwMkZCMDA1OTEzREFEOEJCMzVGMjEwRjJCRDYyMjVDM0U5QzBEMzdENTk5RkQyOTZCMDQ4N0U4RjM3M0IyOEIKK0ZGOENBMDAxQkVGMEU2RjlEQzI5QzY3OTM4MkVFQ0ZGQUFDNDQzM0MxMTE2QzQxNkE2QUFENTIwOTdCMTA1QkEKKzFDMTg1OTJBMzhDN0M5Nzc4MkFERTNBRUVBRjgwODgwOUY5MUIxNDRCQjkwMTk3OTAwRDVBODhCNzUyQTMyMkYKKzk5QUQ2RkMxNjYyOUQxRjc4RTlCQ0QzNzIzMTBGQjVDMzNGNzI4OTcxQ0Q4Q0E5NTU1RDgxRTE5OUZGNTIzQUYKK0JDQ0NBQUVBQUQ4RTk1MUE2RDQ4QTcwNEI0RDg5QTNEMTA2NTQwNkI4MkIwMEE2QTQyMUUyNUU3OUQxNDc1OTQKKzY0NDYzODJCNDAyODk0M0NGRTg2Mjg3QTY2NkZGNjU1REExMzg3OEQ4NDVCRDkzMENGQUI4MjE3RUYyREI4NzQKK0VFNzQ4QTk0NjRCNzdBQURBNTEzMTlDRDE4QzE5NkU0QzM3RjIzREFBQjBCMjY4NTdDODM3NzYxMTgyRUIzRTcKKzQxQkJEOUZFNTIzNzFENDU3NjAxMkZDRUU5OEYyMEI5MUQ4NUM3RjBFRjhENDI4REJDQTdEMEIwRjlBOTNGOUEKKzgzNjlBRjExREQwNUQzNTM5NUJBNUI3OUUzOUI5NjlFRURBRDMxQ0ZDNzIyRUNBOTFEN0E1QTNFNDM3QzMwNjgKKzM2RjAzMTlFQUREN0FEMzVDNjM4MzcwNjM4MEQ2RTVBQjYzRkNGRjI4QTlBMjFGMTcwNjc3MkVBNzRDNDBGMjIKKzU5QzVCMzM4MzU2QUE2NThGNDc5QzdFMkU3QzQxNzZGMjEwNUQ3OTU3QjQzRjlGRTIwRUNGN0ZFRDVDQzBBMzMKKzBDQThGOTA2MzE0NEU0ODA3OTMwMTBBQ0UzN0UzRjU3N0M2MDc1MTM4RDEzMTU3NkI1NkY4MzAyRDZFNEVBQ0QKKzFDOEUwMkVERDA2MUJBRTgyMEY5MEZBN0MyODQwODY3REU5MkYyNzgzNDEwQ0M1NjE5OUMxRkU3REY5RjMxNTQKKzMwNTdCOTVDRTc1MkEzMEI3QkM0QUFGQURENUJEQjNGREMwNEQ3RDQwQTc0NDQ0QjFBMTM1QzFGOTY2ODIxODgKK0JCQTVDRDNDMDZCMUI4NEJFMDEwMTgyMzM4MjlCNEE3OEM1NDg0NUNBMDZDMjBGMUM4NkIxRDMxMjA3RkJENTAKK0RGQUZGQ0ZGMDI5NjE4Q0FCQTU3ODI0ODhEQ0U2RDBGQkIzQzUwRjI3RjQ0RTU1NTA0RDlEQ0JDQ0FENkU5OUQKKzQ5RTNGOENGM0Y5RjU5N0VBRDQzM0Y3RTc0MDlGRDE1QkRGN0FDMzJDQzA5QTIzMjU5MjIyRUUzNjkwRjNDN0EKK0FEMEQ0NEREOTJERUM5M0I5QzVFQkM4NTcxREJEM0I4MDg2NEJDMEVCNTM3OUMwQTRBRjUwMDE2NzIwRkJFMzYKKzgzMDdGRkQzNUNEMzY1MjQxQTRDQTBEN0ZDMDE1MzYyQTNEOEFCNDk1NzE0NDg0NjFGNUI0OTdCQzRFOEFGRkUKK0M4RTlDNjFDQzkxODM3RDEwMzZDQzAxNzU4OEI0RTM5NDQxMTI0MDUzNzlCNjA2NkYzRUIwRjJEN0IwRDZDMkEKKzkwRTFDQzIwMTA5MEE4NTY5MERBQ0M5MkY0QkZCNEQ0REE0MkQ0MjYyREE5NkE0QkM3OEFBRjgwNENFMzk4NjMKKzhCOERBQjA4ODZDMjdFMjg5NjMzRkY1OENCNDlBQTNCNjdCM0FBMEJDMEVCMUIzQjhCNDQ1MTFCREMxOTQxN0MKK0Q3RjgyNzI0ODFDN0QxMjQyNEExQzE0NzM3NDlCOUZGQzUwQjJCQjE2NDlEMkFBM0RCODQzOUJFRkUzOEY3MEIKK0ExNjgyMTMyRUJBQkE3OEU0MTgzM0EwNTY2MkE2OTBCNzdDMThDRkZFNkVFMzA4RDg1ODRCNzI0NzE3NEJEQTMKK0M2NEFGNDg4NkRBRkJDNDUyRTJGNDMxQUMwQjAyMzgwRkJCMjEzMEMwQ0RCMzM5MzA5RUMxQzE5MjlGOEFCNDMKKzU3RThGNUQxQTQ3RUZBQjBDRUIyQjVFMDFCMkJBOEQ4MUZBMUU2MzYwNjM0MkU0N0RGQTkyNjc5RTZGQkZBNDcKK0M5M0UzNDkwQTBEQ0M1Q0YyQzVERjI5OEY4MURERDFCNjQ2RUY4NTk4RjgyMTM4MDk4M0QwMEJFM0MyRkI0NTYKK0Y4NDhGMzM5QkE2MzI5RDIzQzcyNzM5MUI4NEVFQzY3MDU3OUYzOUYzMjYzRjVFNTM1OTYwQzk1OTYyRjVBMTYKKzJDMUQ1QTNERDVGRjQ1OTA0MUMxNTNFQTJFNTQ5OTM1NDQ5RDdGRTM3QzJFMUQwNThGOEY4MEY0MUYyRDVDODAKKzk3MkVDMDMzRjVCODdBNkIxQkQ2NUEyQkU5QTg1NzZEMzAwNjk3NDVDMURBNzVGMDcyQkI0OTJBMjEyRUFEMjkKKzMyMDlFMDhDM0ZGNjIwNTA5N0ZDQjE0MTExOTMzMjUyNzA4MDMzNTg5QzhBRUQwRDFBMjhDRDg2REFCMTNFQzMKKzE4ODU5QkYwOEVDODZENzUxRjM3MDM3N0NDMEU3MjRGN0NDQjYzMkE0QjExNUQyMzA4MDgzRTJCNUI4RjJFRkUKKzI2MDI2MkQ3ODBFRjUyNzZBRDVDQjVFMjhENzNCQjY5MjBBOEMxOEQ3MjBBNENEQTUyREZGRERGQTJCRkZFQjIKKzMxOTAwQ0UxMTBBQzMzRTA4NkI2REQwRkU0NTdGRTI5RThEMDEwQzdDRDZEMEM2QkMyQkY5MDIxQTQzNzg3MzEKKzc3RkMyNkUyNDREMDZDQTVGRUFFQjZBNTFBMTY0MzM1RjI5NTA3RTFCRTg2RDc1QTYxMDAxMkM2RjkxM0U2NEEKK0RBN0ZDOTVFNkJCOThGQTkwRTM5OUNEOTYyNDY5OTIyOTE3MkU2RDJBQzg4RDYxQzJEMEJCNjUxQUVGODYyQTEKK0ZDN0VEQUVBQzBDOUJFRkYwN0M1MzNGQTFGQUQ3MkU5MjkyNzVFRTEwNzNEMzJEQjI5RUU0NzdENEYxMjc1QkIKK0VDRjc5NjBENUFCQ0FDMDA3QTFCOUJFQTJFNTU1RDAyRDdGRDJGOERBQjM3REZCNjEyRjZDNTlEMEIzRDYxNTkKKzg4OTM4RTIzMzcyRkQ0OEUyNTM0RUU0MDRGMzI3QjUzRDIyQUM5QThERDk2OEY1MEVEMTQ0RUMxQjMwQjQyMjIKK0JGRUI3MDM3NkRCRjFDNUM5RjdCQ0MxRDc2NTk1M0U3Njg5NEJCRjAwOUREN0U4M0JDRTNENTZBQzQwOTkxNTMKK0U1RTE0N0I3RjE2MTJFODQ5MzVBNTI0M0FEOEM0MjA4NzQ5MzdENDY2MkVGRDk3MTdDRjcxNUQ2ODkyNUMyREMKK0VEREU1MDcwNDA3RjcyMTBDQzNBMTQxQUE2REE3MjNFN0I3MDU3MTMwNzI4OTcyRUI0NjZGMEVFNjNENjZCREQKKzBERDY4MEEwOUNCNjlENEQ5OTc4NTU2NzkwQUQ5OEUzQThGMUE1RkQxNTU3MUE0QjYwN0RCMUVEQTUxMjUwQUUKKzgyNTYxODBEMDA0MTE0NjlGMkM0RUQ5N0NBNTE3Q0Q4RUFBNzMxQjc0QjcwNTVGQTIxQzZFQ0FEQzlGRTE4QzAKKzIxRDA2M0ZERkFFRDU3QjI3NkQ1MUIzMzA0MkIyODY4Q0NFNjMwNzcxREY3QUUwREQ5RTI2QzQ4ODkyRkYxRkIKKzMzMkZBMjZDQjYzOUE1ODFGQ0ZCRTE5Q0QwMjJBMUI3NzA5MjJGRkQzOEE2QUE1RTI4RUVGQ0YzQUZBQjc5NzQKK0Q5NjNGMkJBNTc4MkM3NjVDODFDMzUzNUQ0NTM2NjcxNjVGNjU5Mzg4OUMzMTZDRTFEQjU0QTRCQzkyOENDRDUKKzk5NDhFN0I3REY5OTIwNzNEMkMzMzQxMzA4MTlDREU4NjFCNjBCNDYzRTU1RjE3NjczQkQyNDQ4MDRDNkUzNzYKKzU5ODUxRDlERUJCRDIwRkYzMzVFRjBGMzJDRTk5REExMzhBRjc1RDNDMDNCNzJDRkQyMDg0MjUzMzMwMDUxRkMKK0Y0NjdDMEIwNkM0MTNGOEQ3MTMxNjgzNUFEOTYzNjAwQzZFMkNCNTY0RkIzOTJENkE2OERGQjk4RDVBMjQ1MkIKKzQ1QzZFRDg1NDhBOEQ1MDY4QjQzNEE5OTNCNzQ1RjdDNDlGOUU1MjczNjM2MDY2RjJCNzI2RTUyMDgyRUM4NDgKKzgyNUEwNUNEQjE5RkVDQzIxNjI4QzgwMDcwQUYwRjgwRjRCMUQ4NThGQUZFQ0RBQTFDNUM2ODlFOEFGMTEwRjQKKzdBQzMyNEEwMzdFODlBNjUxMTM4ODMwNjBCMDgwMjBBMUE5M0E4MTZCNkU2OURCOTBDM0FDOUMyQjM3OEEyNzcKK0M2RkEyQUM2RkI5M0FCRDZBRDI5NjBCRkRFQ0FERTE3M0FBOUE1MTJGMjQ0ODM3MUM5RjRBOTQ0RDYyM0NCMkMKK0E1MzU5N0U3RDAxQzNENkM0QUUyODJGRUM0RTgyMzJBNzYxN0ZCNTM1RDBFOERGRTVDODBDQTEzNzgyMzI3RTcKK0U1ODE3NDZENDYwRTgwNDBFQ0JFNDMyMTcyMENCOEE2RkMxODEzNjQ0MzlGNDFENEQwOEM4QjdFNTgyQzc1MUMKKzYyOUY0QUZCMUE3QTM5MEFDREU3NkFCRDBCMTYyMjgyQzgzRTQxMEYzQ0RDMzExQzExMTM3NjNEMEM0RDZDOTIKKzM2QTExN0RCNkE1QjI1OUVDOEVDQUJGNTMwODBCOUQyNzhDRjg3QkFGMTRCRjVEN0FBOUVDQkVDOThFRkQwQUQKK0NENjIyRjlCNEQ2QTkyQjVDMTAzQkI3RDVFOTdGODYzRTI1OTREMzA2QTExOTg3MUNFN0M1Q0Q2NTkyRUIwRkIKKzUzMzhGQzI4OEQyM0Q4NkQ0OTNGNUFBODg2MTU1QUYxODQ3RkNGQTBFOTJFODRBMUUxQkVGQzQwNzZGNDMzNTAKKzU2RTQyQ0IxNkY3NTQzRjVEMDU3RDM1NDdFNDlENzVFMkNGMjJCMzc2QkE5QzFFODczNzA2NTFERjlFRkVCMDcKKzkxREZENEI1OUU2QTk5RjQ1QTk2MkM1RTAyMUQ0RUZCM0JDMUY2Mzk1M0ZENkUwOTkyOEE1NTFDMjIwQTk4REMKKzRCQjM2NkE0QkZDQzU4QTdCMzE0Q0Y5OTAyQkQxRkZGNTM1NTFEMTkwMzNEOEM0RDI4OTUyQUJDQ0M2MkI0NjgKK0M2MUE5N0E3NkM5Q0I2OEI4RkZGQjhCRjkxRkM5NkUxQUI0OUQyQjE2MUYzN0EyNUNCRkJENUQ0ODk2ODE1RTkKKzRDQzE3Mzg1RjVCQjE4NUExNUIwQjg0MTNGQTMxRTJDRkY2RDY3Rjc0OTk3MjYxNTY4Qjk0QzJGODVERUMzOTMKKzMwMEI3OTRFQjg3RTk3Qzc3NjlCRDZGRDg0Q0Y4MTgyN0ZBMjYwQkIxNjEyODFFN0Y3NUQxQzM3Mjc2QUI1MjkKKzUwODdGNDEwMEJDMzc4NzlEQkNCOTc3MjNFQjcxQTNBNkE0MEQ5MjMyMzRGQzFDODM0OEMxODQ3MTBGNDBEQjEKKzBCMkMwQTZEQzE3MkZDMjhCRkFFMkQyQjJCMjk1QkFGM0NCMUEzOUE2RDVBNEE3M0ZGNTJGMDgwRDFFQkRGMzAKKzNEOTQzNEJERTM0RkM2MjQ0MTkxMUJGMkY4MkZFMjE1NEU3NkEwQ0NDRUUyMzJBN0RCRDFBMjI1MTFDMzk2MjQKKzIyQzc2OTcyRkQ1RDI5OURDOEJFOUEyQkM4QkNENUZBNDhFOEZGRTcyOTg0NEM0MUFGMEU1MzA0NEJBRjkzQzEKKzM2QTYzRjRCRTEwMTc4RjkyOTZEMkNBOTNBOEVCMEU3Njc0M0Q4RUYxNjQ0N0U3QTM5OTFBQTFCREU0Qjg1QTEKKzRCQkIxNTM3ODQzNENFMTg2NTIxOEY5RUY5NUY2NDlBNkYyMUI3QUE4RTc1Q0NFRUM3MTdFRUJERkQxNEY2RjMKK0VGRUEzMDRDQTM1MTMyQjU5QjIxRkNFNjVCMTMzMjZFRkE1NzM2REY4MTQ0N0Y2NzUxMThFNTEyRTYzMUM3NDcKKzI2NTRENEJDRjc4OTBDRjA3MkMzOTQ2OENGOUI1QTRFQ0UxQzZEQjBGNEE0NzI4QTk5MjlEODIxQzc1OTlGREEKKzQ1NEE2OTMwMzUwNDc1NzkxQ0ZEREVDNkY5OTgyQTZDQkIwOUU0NUI3NUVFMEM4MjAyREVCMTlCNzQ3ODZDNTEKKzA5RTRGOTA0NTdEQTFCRkI5NENBNzdBM0M2QzdCMzQ2MzE0QkQ1RTI5OTBEQTdERkM3OEVDNzU4OTdDNTlGQjkKKzE0MTREMjU5QTk3MjhEMTQzMjdFNUJCMTUxRkEyMTk1RDgwRDlCQTBBODUyREUxOTM4M0FCMTdENEQ2RDk3MTcKKzE0NERCMzRFRDgwQjI5MTBDNEY0NDJENEJENzIyQjdGMjUxQjkzODExNEI0QzA4NzJFODc0QzNEQjIwRjc5MzkKKzM2OEE3OUMzQzQ2QTEzRTVFNzYxRTM5N0U1QTZCM0U4QkFGNjgzNjYzMkQyRkM3QTFCMzI1MkQ4MUQ0MTkwNEQKKzEzQzY1Nzc0QkM4REFFNDgzNEMwN0NBRUE0QUQwNERENkNBODMwMUVBMUUyMEFENEU5Qzc3MDE5MDczODUwMzYKKzJERUQ5NkIwNkY1ODQ3QUFENUQwMDQ5NjVGMjU1MTY3MjMxQkYwN0UxRkJDNkZCMTAxQjczRjg2MjA3NjU3NTUKKzkyNjIyNzNBQTZGMTExNjI2QUQzOENGODY3ODgyNjlDRkM0Qjg2MTFDNTVBQjRFOTY3NUVFRTcxNENFMkQzMDUKK0M5Q0Y4RTIwMUNGODEyNzAyRDBEQ0RDQThCRjc2RjA0REIwMjlGRjU2RjdBRTRFRTMwNjRCQTc4NTE0OEU4MjIKKzc1OTI5MDZEMkMyN0YwNDNEMTZBMTNBNDhERUY4NDgyMTkzQUJENUE0NTcxMkIwRDVBQkQzQ0VGRTNCRTkzRDIKK0RDNUY5OEMzM0NENjAyQkM2NUYzRDAyRUUwMDA3RDYwNTdEODFCM0QzMjkxODc3RjM5OUNBMUQwNDU0N0EyNzQKKzMyMkM4RTQ3Mzk1NDNCMjI5NzAzRjQ4RjAyQzZCMTk0NUY1RjUzNzEyOTI4OEI3Mjg5QkMyRkVCMDEzMzk1NjUKKzQwRTZERkY4MjdEMTU4MkYwQjg0RDUxNzg2OUM3NDY1RDAwRDY1M0MxRUUzRURGRDk0OTdCRjg2RDAzQ0JCNzkKKzI1QzRENEQ3Q0M3NEM2REZCNDVDQUEzRUM1REY5MEE2QzExN0FDOTg0Q0RCNzY0M0I5MDZDNkVBNjI1QkM5MzMKKzg5MkZENTkwMDUwMDkwQzk0QworMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorY2xlYXJ0b21hcmsKKyUlRW5kRm9udCAKKyUlQmVnaW5Gb250OiBDTUJYMTIKKyUhUFMtQWRvYmVGb250LTEuMTogQ01CWDEyIDEuMAorJSVDcmVhdGlvbkRhdGU6IDE5OTEgQXVnIDIwIDE2OjM0OjU0CislIENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKzExIGRpY3QgYmVnaW4KKy9Gb250SW5mbyA3IGRpY3QgZHVwIGJlZ2luCisvdmVyc2lvbiAoMS4wKSByZWFkb25seSBkZWYKKy9Ob3RpY2UgKENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZCkgcmVhZG9ubHkgZGVmCisvRnVsbE5hbWUgKENNQlgxMikgcmVhZG9ubHkgZGVmCisvRmFtaWx5TmFtZSAoQ29tcHV0ZXIgTW9kZXJuKSByZWFkb25seSBkZWYKKy9XZWlnaHQgKEJvbGQpIHJlYWRvbmx5IGRlZgorL0l0YWxpY0FuZ2xlIDAgZGVmCisvaXNGaXhlZFBpdGNoIGZhbHNlIGRlZgorZW5kIHJlYWRvbmx5IGRlZgorL0ZvbnROYW1lIC9DTUJYMTIgZGVmCisvUGFpbnRUeXBlIDAgZGVmCisvRm9udFR5cGUgMSBkZWYKKy9Gb250TWF0cml4IFswLjAwMSAwIDAgMC4wMDEgMCAwXSByZWFkb25seSBkZWYKKy9FbmNvZGluZyAyNTYgYXJyYXkKKzAgMSAyNTUgezEgaW5kZXggZXhjaCAvLm5vdGRlZiBwdXR9IGZvcgorZHVwIDAgLy5ub3RkZWYgcHV0CityZWFkb25seSBkZWYKKy9Gb250QkJveHstNTMgLTI1MSAxMTM5IDc1MH1yZWFkb25seSBkZWYKKy9VbmlxdWVJRCA1MDAwNzY5IGRlZgorY3VycmVudGRpY3QgZW5kCitjdXJyZW50ZmlsZSBlZXhlYworRDlENjZGNjMzQjg0NkE5N0I2ODZBOTdFNDVBM0QwQUEwNTJBMDE0MjY3Qjc5MDRFQjNDMEQzQkQwQjgzRDg5MQorMDE2Q0E2Q0E0QjcxMkFERUIyNThGQUFCOUExMzBFRTYwNUU2MUY3N0ZDMUI3MzhBQkM3QzUxQ0Q0NkVGODE3MQorOTA5OEQ1RkVFNjc2NjBFNjlBN0FCOTFCNThGMjlBNEQ3OUU1NzAyMkY3ODNFQjBGQkJCNkQ0RjRFQzM1MDE0RgorRDJERUNCQTk5NDU5QTRDNTlERjBDNkVCQTE1MDI4NDQ1NEU3MDdEQzIxMDBDMTVCNzZCNEMxOUI4NDM2Mzc1OAorNDY5QTZDNTU4Nzg1QjIyNjMzMjE1MjEwOTg3MUE5ODgzNDg3REQ3NzEwOTQ5MjA0RERDRjgzN0U2QTg3MDhCOAorMkJEQkYxNkZCQzc1MTJGQUEzMDhBMDkzRkU1RjAzNjRDRDU2NjBGNzRCRUU5Njc5MERFMzVBRkE5MENDRjcxMgorQjE4MDVEQTg4QUUzNzVBMDREOTk1OThFQURGQzYyNUJEQzFGOUMzMTVCNkNGMjhDOUJENDI3RjMyQzc0NUM5OQorQUVCRTcwREFBRUQ0OUVBNDVBRjk0RjA4MTkzNEFBNDc4OTRBMzcwRDY5OEFCQUJEQTQyMTU1MDBCMTkwQUYyNgorN0ZDRkI3RERBMkJDNjg2MDVBNEVGNjFFQ0NBM0Q2MUM2ODRCNDdGRkI1ODg3QTNCRURFMEI0RDMwRThFQkFCRgorMjA5ODBDMjMzMTI2MThFQjBFQUYyODlCMjkyNEZGNEEzMzRCODVEOThGRDY4NTQ1RkRBREI0N0Y5OTFFNzM5MAorQjEwRUU4NkE0NkE1QUY4ODY2QzAxMDIyNTAyNEQ1RTU4NjJENDlERUI1RDhFQ0NCOTVEOTQyODNDNTBBMzYzRAorNjhBNDkwNzE0NDU2MTBGMDNDRTM2MDA5NDUxMThBNkJDMEIzQUE0NTkzMTA0RTcyNzI2MUM2OEM0QTQ3RjgwOQorRDc3RTRDRjI3QjM2ODFGNkI2RjNBQzQ5OEU0NTM2MUJGOUUwMUZBRjU1MjdGNUUzQ0M3OTBEMzA4NDY3NEIzRQorMjYyOTZGM0UwMzMyMUI1QzU1NUQyNDU4NTc4QTg5RTcyRDMxNjZBM0M1RDc0MEIzQUJCMTI3Q0Y0MjBDMzE2RAorRjk1Nzg3M0RBMDRDRjBEQjI1QTczNTc0QTRERTJFNEYyRDVENEU4RTBCNDMwNjU0Q0Y3RjM0MUExQkRCM0UyNgorNzdDMTk0NzY0RUFENThDNTg1RjQ5RUYxMDg0M0ZFMDIwRjlGREZEOTAwOEQ2NjBERTUwQjlCRDdBMkE4NzI5OQorQkMzMTlFNjZENzgxMTAxQkI5NTZFMzA2NDNBMTlCOTNDODk2N0UxQUU0NzE5RjMwMEJGRTU4NjZGMEQ2REE1RQorQzU1RTE3MUEyNEQzQjcwN0VGQTMyNUQ0N0Y0NzM3NjRFOTlCQzhCMTEwOEQ4MTVDRjJBQ0FERkE2QzQ2NjNFOAorMzA4NTVENjczQ0U5OEFCNzhGNUY4MjlGN0ZBMjI2QUI1N0YwN0IzRTdENEU3Q0UzMEVEM0I3RUIwRDMwMzVDNQorMTQ4REE4RDlGQTM0NDgzNDE0RkRBOEUzREM5RTZDNDc5RTNFRUU5QTExQTA1NDdGQzkwODVGQTQ2MzFBRDE5QworRTkzNkUwNTk4RTMxOTcyMDdGQTdCQjZFNTVDRkQ1RUY3MkFFQzEyRDlBOTY3NTI0MUM3QTcxMzE2QjJFMTQ4RAorRTJBMTczMkIzNjI3MTA5RUE0NDZDQjMyMEVCQkUyRTc4MjgxQ0RGMDg5MEUyRTcyQjY3MTEzMzU4NTdGMUUyMworMzM3Qzc1RTcyOTcwMUU5M0Q1QkVDMDYzMENEQzdGNEU5NTcyMzNFQzA5RjkxN0U1Q0E3MDNDN0U5Mzg0MTU5OAorMEU3Mzg0M0ZDNjYxOURFMDE3Qzg0NzNBNkQxQjJCRTUxNDJERUJBMjg1Qjk4RkExQ0M1RTY0RDJBREI5ODFFNgorNDcyOTcxODQ4NDUxQTI0NURERjZBQTNCODIyNUU5QUM4RTQ2MzBCMEZGMzJENjc5RUMyN0FDQUQ4NUM2Mzk0RQorQTZGNzEwMjNCNjYwRUU4ODNEOEI2NzY4MzdFOUVCQTRFNDJCQThGMzY1NDMzQTkwMEYxREMzQTlGMEU4OEEyNgorMzMxOEIzMjUwMEY3NkIxMDM4RkE2MTIyQzJBRjYyNjFCMDI1QkREMDA0RUI5NTc1RDEwMkQ2MjVBMzUxQTIwQworOTE0RDdENzlFREIwRkUzNDM3MjY1MjZENTdBOUE4RTM5MTZCNDM3QTk1Qzg5NUY1NDJERjQ2ODVFNDY4M0NDNworNTcyOUE0QjQxRjBDNTFCRjkxMEFFNTQyQTEyNzBFQUQwNUFBMkZFQjZCOTVDM0M1RDA2ODIxMEQ0NTdEMUQ5QgorOTkwMUM4OTQ2RTBFN0Y0N0IyM0JBMTI3NDNGRTQzQTFFN0REMThDNTZBNkNDNjhDNUU0QTIyMTgwRTI0RUIzRAorMkY1QTY0ODRBMTcwRkY0NUQyQzVDREZFQzc5NThBQ0QzN0MzMDU0MTJCRjI3NTc2MzAyNTI5MDdDNjlGRTA0NAorODU3MjRDRkNCQTRBODVDMDJENEY5QkQ1QTU0MDVFNEMwRkIxRUZGNEFGOUNDNDE0MDFCNUVENDA3RTc4QjBEMQorNUMwNjc2QzYyNUE1Mjc3ODA5QThERDBFNDQwOTEzMjk3MDFEOEFDRTRBOTgxRUFBMEJERkVCMEIyNjExMDM5NgorQjI0ODM5QjVDNTlCMUZFMTNFREQ1RDRCNEU3ODkzQ0Q4NUE0NzEyNzI2QkUyNjM1N0Y0MjdFRjUzQjE1N0RDRgorNzc3OTE0NDc4Nzc5NTFBQ0MxOUQ1QUYxQzJENzM3NUJFNTNGOEFFQTVFMENEOEEyQTA0OUE5QTAxMEY0NDAxNgorOTYyOEExMkU1QjZFNzQwRTU4MzFDQkJCNzE1RjAzNjA2NkRBMzMzNDNFQjIyQUE4OTA3Mzc4NzE0ODc2MEVBNQorMkQ1NDNCNDJEQ0Q2RUU4Q0NGODI1RDI1MTc3MDJGRTI3MEJCRUFGOEUwQTY2QUU0NEY0NDlGNTA3NjhFODJCNQorMkZGMUM1MzM3MjBFOEFDMkUxOEJGMDY3NEQ4OEEwRTRGMDg4NkQ5NDVDMDdGQUYxOTg2RTFCRjgzOEM0NUVFMQorODJFMkJFODIyMzIzMUIzOTZENUI2RDkyREZGMDg1NkFDMDNFQTFBRUJEOTkzRjU0Q0NDRDU4Q0U2NDY0QjA3NQorRURCNENCODUzQ0E1MDBBOEEyMEVFNDNGRjNDRDgyMzkyNjU2RDRGRjM4Rjc2MTk2Q0I1MUEzNDJGQzU2MjU2MworRURENjlDMkMxODQxNzJEMTlDN0I0MjdDRTRDMTI5Q0M2MUJBMzVCRjY1RkU2RDA0MEI1MzExODg0RUExNkM0QgorMDEyM0EwNUZBOTRGRkMxODE2NjM3MzU5RkIyODgyNUMyRjg3NzE1RTFDNDBDRTcxMzI5NTIxRTdDN0E5MjAxMgorRkNGMTFEM0M5NEU5QkRGQzQzRTE4QTE5RUI2RTFBODgyMTQ3M0Q2NTE2QjkzMjQ3QjFBODMyNzM1RUQ2MDZDMQorNjExNjc1MTIzOUREMTc5NkI0OTIxQjY3QjczMUNERjQ1RkYzOEZCNjE1MDY3RDA3Njk2Q0ZGQzZGOTIzRDBGRAorMjRFQzgzMzkyMkZGQUMyMkJDNEIxRTBFOTgwMkE2NEIwNjlFQzc4M0YyNTBGMDM0RDQxNjIzQzVEQUUxQ0Q3QgorQ0U2M0VBNDlDOUQxODkzRUQyQjQ5NTYxNTczQUEyQThCMURBNjk4OEIzMEZCNDlBNjg3NTVGNjVBNzkyQTQyQgorRjJEOTIxRTg3QjJFMTMwRDIyRUQyNjgzM0ZGRUYwMDNDOEQ0NUI3QTA2MEUyMDM5Qjg3RTA4MUE2OUFBNjhEOAorRjMxOTAyRTExMzREMjNEQThGOTQ4QkQxNzU2QjU0OTE5REM0MTE3QUJCMzJCRDRFOEYzRTI2QjU3RjAyMzlGRAorNjcyNjJEQkMyQTBFRjRFQjVGMzE4Qzk2OTJFQThBQURCRDQ0NDhDRTE1REY4Q0VFNjNGQURGRkM0NTdENDEzRQorMjU1ODgzMkFDOTFDMTBDNkMyNjhFRERGMkQwMEU5MTM5QjQ3MTk5RTJDQTM4NkYwODIxRUJEOTU4OUM1M0EwMQorNjYzODEzRDU2RUQwRTczNThBQjBEQUY0QzMzMDg5MjRBNzI3ODU5RkM4MTJCQzM0NEZFQTE5QzNBQzAwRjlDNworNDhERkFDNkNENDhGRDNFMjg2NDU0NTg0NjRCRkM5ODRENzA4MUNFNUE1QjVFQ0U5Q0I3RkFFMUJGQzAwMDYzQgorMkVFQkRGMEUxOUU4QUVERTc2Q0UyRUE3RDdBNjFDQ0I0QTM4QjNDMjkwNjZERURCMTNEMzBCQTdDQkEwQkUxMQorMjlDQjkxQkI3MjNEREVFNTdFOTRFOUQ4MkFERTNFMUU4RkNDMjc1NDM3RTk4QzcyN0VCQ0ExNDhGNTZFRkUyRAorMUU1NDVFNTE0RjhFODE2OTU1MjcxMDdFQ0ZEOTEwOTBCRjIzQzJBM0M3NjBFNUZBQjlFMTBEODhFMjY5NDE2QgorNzlEREFEMzcyNzU3RUE0REM3QTEyRjQxQzRBODdGMzRBMUJFQjY2QzAyQkI0NzJENzY2QUJBNjBGMjI1NzEzMgorNDM3NzJDNjM3OEMxOEY3NUYwQkZDMkY2QjdGQjU3RkVCNTY0N0EwQTM1RTFFRUM0MTExNUQxMTNEMUJCMjExOAorNkU2MEEwRERCREZFQzMwNUFDOUU0NkQ4NEVCMTI5NkM5RUREMkM0OUFDNTIyMjZFNjRGMjEzRTUzNjE5MDNFNgorNEYyMTMxMTE5MzREMEIyQzI4Q0M2MzhDRDFFMTVEMUUyMUFDRjZGMUNDOTQ4MUI5QTg5MEIwMTIxMjBFMDhDRQorNUQ1N0ZERDdBMDczMzdBRDIyNzI2QTMxQThEQTc0NjU1MDQ1NjZERTE0OTI3QTBFQTg4QUY4NUYzOTZGRTdFNQorRENCOUMzMkFDM0ZBRDdCRUNDQzZBRjc5RkMxNkYzOUY5NDkwMzY4N0NGMzlDQTBDREYxQTNGRDlCMTBFMkZBNgorRUZGQ0NGRTc2RTJDOEE2MEEzN0JERDc1RTk3ODMwNEY0NzNGQzAzQUYyQUJGQTM4RUE5NjE0MDEyRDc2RDUwNQorOTY1Q0VEREE5MUQzRTUzQkUwNkEwOTE5QUE2MTNFNzZGNUI0RUNCNkQwMjc0MTkyQkI4NUE3QjFBOUY1OTdDQQorOTZDQ0QwMjUzQkZDQjY5RTgxODRBOTJFNzA1QzcxQTBDMUY1MUIxREEyNEM1M0MxQTM1ODY3M0JDMDU1RTA2NworMkZFQjdCRjlDOEQzRTE0NTUxNzRDMDNFRDE0NDhCQUU1QUM3MTI4RUJFNTk2OTdFNEEyNEIzQkM2NDYxQThERgorM0ZDNUYzNDQ3RDdDQjIzQUI2QTA3MjJFN0NDQUNFRUZDMTc4RTQ4NDFGQTU0QjBBREVDNzM1NEI0OUVCRTAyMworQzk4Qjc5OTUzRDVBRjk5MENGOEQ0MDlBMkVBRDcyNDYzNUEyMEQ1M0RGRDQ2QjlFRUM2MkJFQURFRkREMEE2QgorRUI2NEYwOTg1QzVBOENFMEU5NUM2REE1OTYwOTREQzVFRjFENzE5RTZCM0NENzFBN0UyMEZFRDZCMjk2N0YyQworMzY1QjgyRTg2NUYyMjU2OTc3MjhFOEQzMDJGRjBGRDIzMUEyRTcxQTc4NzgzQ0ZCMzI1MkU3NDhFMjM1QjdERgorOEVFMUIxMENDQjVCMThFNjZBOTkwRjZEMjA2NTZERTE1M0NERDQ3QzVDNkVCRUFGOEJCRDIzNDc0MzY2RDI5NgorOEQwN0MzNzBGMjI4MzAxM0NFNjU4N0Q4RTlGNjVFMzM0QzRGOTY5OTFBNTQwMTI1MTZGQkFEOEEyRkQ5REM3QgorQTJGMTNFNzRDMDE4MzFDNkQ2QzEwRkEzRkExMTMxMTA3RDNBNzdDRUEzMUY1RTU3NDg1RTUyQzJGNTY2RUFEQgorNzA0NzVGNjFBNzRBRjY3MkQ2MjRDMURCM0I0OUNCODI3RTQwOTA5Q0JFMTBFNUJEM0YwRDlGM0QyMDY1QTdBOQorOUU4MzI5RDc1QjlCNjVCMDY3NEJDMUQzRUY2M0Y3QjY5N0E4MEIzRUYxMDNCOEYzMTg2OEZFMDAyNTkwODRBNgorMDZDREMzNTE1OTE1MjkzQjBCMzg1NkY4MEE4Q0VFMzMyMkI2OEJGQkYzOTE0NDIyM0YwRkM4QjgwQTFDREVCMQorNkQyMzcxQUU4OUM5Q0EyQjc3RkI5NzhGNkYyRERCMkU2Mjg4MDlEMjMzRTE0Mzg0QzAwRDA4MTA2RDVGNjhEQgorMjI1OUQ4REU1OUY2OUZDQjg0NThBNkNFRTIzMjEzOUI5RjcyRkEzQTEwMUQ1NEE5NDc0QTlCRThBM0NEQkI3OQorNjQ2MTNGOTBDRDc4MTRCQThFQTc2NjkyNUI3QjM3MzExNjQ5NjkwRjg4NkE3QUJENUM1QTE0RkE3MkUyRjAwNAorRDQzRkQyNDZCRjgzMzQ2RjJENDlEMzcwOEQwQjM3QjlBN0Q1NUIyNDFENjM4MUM2RjQ4OEE2ODNDODIxMjQyMAorQTY4QTY5MDg2NUREMTdGMTdDRDU3OUEzNEVDMzMxOEM1MDFGMUIwRjEyMzcwODhEN0UxRjY0N0EwNjQxNDQxQworMjdCRkYxNkUxNDU2QkYyNTNGRkI0RUVFRUUwOEUzQTJFMkUzOUE1MjRDRjJCN0REMzkxQjkxMzA0NTFGN0MxMAorRkExRDc1NEU1RkFFQTYzQ0ZBNzg2MThGQTQ1QjRBMEFBQTJBRDQ4MkZBQkY5NTk1MzUyQ0U5OTEwM0JGQjlCNAorNTI5QkQzMjk2ODMzNDAwNUQ5RUEyNkFFMzM2NjNBMzIzREVDRDc0NjJGMDNGN0YyRjA3RjAxNTgzOTQxNkYwOAorRUEwMDZFRDEyNzEzRjI0REUxNjU5MDZBODcyMzMzODZFMjdBRkM4RTQ1OTYzRUUzQjdFMDNFN0VBNjdDNTlEQworNzA5NTgwNDg5QzZDMjU1REZGMTgyMTUxMDQyQTYxOERBOEMwNTY3MDkzOUYwQkY2MjE3NUVEOTBCMzc0NURDRgorNDlDRDg4MUYwRTUwNDFERTFCODlDNjM2RDU0MzNDNEVDNkRFMDIyN0FERTk1MjMzMjY3NEE2QzU3Njc3QTI2NQorQkYxQTVGNzAxMjU4MkVCQkFDNUZDQzdDM0JFMjU4RDUwMjBCNjBDOUJGREE3QjIzNjkxOUI1ODI1NkJGOEIzNgorMzkyMkE2NzkzQjJGQTQ5NzVCOUI5RjUzQTBFQTIxMkNFMTZCNEQyQjY3OTU2RjZBOTM5RkFCRDNCQzFBNkEyMAorOTdEOEQxNjU1RUMxQUVGMzMwQjE4OUE0NTlGMjREN0JERjFCNEJDRkQ3REQxODBBQzk0MzdEMTBEQzlENDQ4OQorRTUzQUE3NzZDOTU2QzRGMUMwQzhFMDRCOEEwNkY0QTk1OEM0MTg3N0FFM0EwRjJEQUVBMkNCQkIwNzAwOTI3NAorNkM3MDNERDQwRjlEQ0Q2M0NGRjVCOThCN0FCOEQ1QUNCM0YxNkZDNzBCRjE3MDc3MjFBQzEyNzNENzk3ODk5NgorMzRFNzc3REZENTE5OTE4N0JEQTEwN0Y4NjVFMkNDNkI1QzBDMDhEQ0YwNDUwOUI5MTYwMkM1NzUwQzlBNUEzRgorQkYyQUY4NEJDREQzMzIzMzg5OEVGMkVCMDE3NjZEOTg1QkZBMzI2QUJGMDA4MEFBRkE0MEU5OTkyQ0ZEQkVGRgorODU5OTY5NkQ2MjE5NDBEN0FFRDMyMDQxMUFENTE1RkYyNTBEMUJDQjk3NzJBQzYzRTcwM0ZEQ0IxOUMxMkU3MQorMTgzMDVDNDMwQzA1NzQwRUMwNjNCNUU0QjM4QkQzMkE3MDQ0QThGRTEwMjEzQTRDNkFEMTFDMjVGNjQwNDE4RQorQTFERUQyNDgwQUI1OUEwNzdGNjlBRDRFMjAxRjQxRDgzQ0QxNDAxOEMyM0JCOUFFQjc2ODhDMTVBMDcxN0UyRgorMDM1MURGMUNDNkI1QkM0M0ZEMjE0NDk0MUZEMDQ1OTE2QzlGNTQwNEE4RDE4RTJGRDc0MjI5QzY3M0ZGMzA2NworRkE3NTE2QjIyMTRFRDVBRUY1RTFFMUYwNTgzMTNGNkE1RTMwRjNCNjY5MTYyMjAwOUU0QkMyQTgwRDg5OTJBOAorMTUzMUY0Rjc5ODAyRjMxNTg4MTg2ODNDRkU4QzA1RUFCNDYyOTBCN0JENjk4Qzk2RTFGRkE0OEJCRDhEREM5NAorMDUwQUNBMTE4MzM5Q0UyRDk4QTdFM0MzQjkyOUU5MEZBOENGQTYyRDdGNTdBQjNCMDdBMDAwMkFBMkJDNUI1RQorNkE2MjNFRjA0OEI0NDJGNTg3QTQwQTJFRTgwNEU3MkVBRTNCRDc1QjVEMDQ4QjcyMUZGNTkxNUM0NTkwOEFGQgorRDI4RTYxMTZBRUFFQ0U3RDU3OTUyRTUzRTlEQzE2Mzk2QUNFMzJDNzE3RDIyREIzQzM4NzA4RTdFN0M5OUJEMAorMjlDMjk5RThFMzJGRTYxOUM0MDQ4RTdCMTM1OUJFNEM1QjUyNURDREQ5MzgyNTE4RDg1N0ZDMEUxQTZFMzUyQworQjMyMUI3NDJDNENBMzJENzRFNjJCQzQyMTQ1OUZCMkM1NzhDQ0FEMDMxNkExQTRBM0M2MzFEOUVENEIwRjBEMAorNkRFRkQ0N0Y2RUJFQzgyQjJGNjgwRTMwMEZFNDJEQkE1MjVFMDc4MzA0MEU1MTU2NzlGRDlFMjk0MTIyMThFMAorMUY5RUZBMzk0RDBCN0Y2NjVBRkE3MkNFNDJCN0VENjVENDE0NEU4MEFCNzM2OUM3NEU5Rjg0QjJEQjNBNkZCRgorOENEODhDNjYwRjc0NkI0NTJCRDk5Qzc1QzU1N0M2RjQ5RTY4NTkzRDA2OENGOTkyODU0Qjk5NjMyNzI3N0NDQQorN0ZCNTBERUM3QzE3MjYzQkI0RDIwOUI2QTBBRUIwRDQ1Qjc3QjZEQTMxODk1MDU1QzM5MkFFRERFRkExRkYxOAorRkUyRjVDRjRFOTRENjhGQ0ExNDM5RkJDMzJGREQ5ODZBRjdBOTQ3Njk0RjAyNkZBOUE3MkZBQUQwMEMwNjAyMgorNUU2MTQxM0QzRkYwNkZDMkE3NDgxNTY1NzY2NkQ0NUM3OTdEMjBBMjk0QURBMDI1NUFCN0M2QjA1M0MyMTQ2NAorOUI1QzBDRUJBQzBCMjgyQTQ4MTdGMDY4RTg2Q0UxREZFRTBCMEQyRDI0MzA3N0MxOEQzRTEzNENCQUE3QTI4MQorODY0MkM3NkMxREJEMDA1OUZEQTczQTEzQUE4RENEMzc4RTlDRkIxNjMyOUIyRUUyMjg1RDQ5ODFBNUM4RkUyQQorQTQ0QjNDNDEzMEZFRTAyOTA2MUE3QUQwQjRFNEUwNjlCREFBMUI5N0EyODQxNTIwM0NENDdCNDVCNDdFQ0FFOQorRjhEQzRGQjE3N0I3RTA1OTlFRTAyNTBEQTE3ODJENTEyNjlFODI2QTE1OTY0OTM4RjU5MDgzQTdDMzcyQjM4MAorMEUxMzBDNUFDQjgyNENCNEVCOURDRjA5NDQ5QzE3RkM0RUQ2NkQyQjIxMzczMTE4QUM3ODA5NThDODlDRTNFNQorMTZCODkzNDRGN0EwMjA3MDg1QTlDNjBCNDhDNTdBMzc5QkM0NjNCQTJEQjY5NUMyNzU5NkYwODlDNTQxRDYzNQorQjU3RjEzMDRGNEFEREYzQkZFNEY2RDRGNURENDgwNzU5N0VCOUMxRjkzRTlDNDUxQTczQUU5RkRFQUUzOUJCQQorRkYzNkVDNUQ5MjBCNEIwNDE5MDM5NjBFMEYzMDFEQTBEQkU2QUM4OTU3OEMxNUQzOTZGRDdEMzBFOEI1RDQ1MgorNTgzNEJFQUI2MzE5NTU1RERBQUFEMTZGMzIwOEU2QUI1MDNENEQxMkNBMzRDRTU0MjFCNjU3NDdCQkZCOEVDOQorREYzRjg5QjcwNEI4MzMwRTU0MzUzNTI3RUEzMzg5MTM4NDM5MzBGMTMxRTY4NzdDMDY2MTJDOTFEN0NBOEVGOAorOTdCMTFCRTZCNDZGOTg0QkE4ODg1NEVERkJDNDEyMDU0QUY1RDA5NTRCRUQ1RkE0MEM4MDA0OTI1MkUyOTQzRAorNzk0MjUyQTNBM0Q4RUVDNUZDRUVDNDIyMDJCREYyMzdCNTJDMDg4ODBDNDM1Mjk4NkFCRjgxMkJBNzZDODU3MgorMDAzMzRCREZBRDQwNTE4QUMwMzRFNkNCOEU1NDM1RDY0ODdFQTI2ODcwOEY5Q0FFNjNFRTM5RTQ1NjQyMERDMQorNTZDM0E0MTU0NUE3ODM1RDkyMTI1NkEyMDNFRDU1MUU3OUU3RjZGOTkwM0I0QkMxRDJEODNGRUVDODFCNzZGMworQkUxOURCNEFGM0U2QkExNEU1RENGMEIzQkNDMkIwQzg2Q0EyNjMwRUZFODlENTc5MEExQ0ZEMEM4RDUyNTE0RAorODc1NzNGQkRBNzNFOThCMDMwMUQyQ0JFQTQxOUIyOTYwNDlEQTA5NjY2RDQ5ODIwM0IzNzU4RTA5OEZEMzdGOQorMUZFQUEyRjBDOEQ0OUFDNUM2QzhFMDRFODA4N0YyOTE1MEU1MEMwRDRFQkQ5ODU3RUM4QzU4NzQxNUI1NzQyNAorMEYwQTMxMzQ1ODRCRDlGQUJDQTg1NjZBQUVGRjA2NUY0NjkwMUJEQkIzNkRBMURFNThDRDcwRDZENERCRUIwNQorOEVGNDEyNjFDRjk0QUQwOUE2QTAyRDVEODlEQkYxNUY5QkQ2NDFDNkI4Mjc3M0VBMzhCNjM5MkM5RjUxMzJCMAorQzM3MDc5MTI2MDg3NTZFMjc3RDI1M0ZFMDBFMjNDNEI1MzU4NjJBMEM5OUZENzQzNUI4QzE5QUZFM0FDQzVCMgorQjM3QUNBN0JCRTBGNjUyNzNDREMyRUZFRUUxRkY0M0E1MTFDQUIzNzNFODczNTIwRUZCNEQyRkJDNkZBNEMyMworQTExRUVEQTA3ODU3NEM1OTgwNDcxQ0ZBOUNDRUE1RDU5RjEyOTdDNzE0NDdGRUQxNzNEQzYyQ0JGRjVERUMxOQorNEVGRjY4ODVFRDI5Qjg1N0YyREUyMzEyRDZGMTQ4MzVGQ0UwOTg0NjJFOUYwMkQ3MDFEMEYyRDJBOTRBRDc1NgorRTM3NUI5NTBCNTkzQ0IxMzJEMUVDOTE0NkI1M0NDOEIxQTA1N0U3RERFQjFCRjlDQ0QxQzg4QkRBMzMyRUM3NQorN0I3RjAxOTE4MDU5NDYzODc5MkE1QjkzNUQ3Qzg4NkE2RTY1NzI1MjlEQUQyMEJEMTZFQ0NGQ0YzMTUxNzYwOAorMjA3Q0ZFMDNFOEE3RTg3QjBGMjlCRjQzNjNGQ0QxNEMxOEE2RkU3Q0EzOTc0RDU2OUJBOUZBMjkyMjQ0NUUzOQorQkM0MjQyQ0FBOEVEOTFDNENFMzYxNDEwMTBBMDFBMTdGNUNEMTYwRjRBMUE3QzRCQkJBRDY3RDk4NjhDRTI4RQorMjBFRkI5N0MyQjg0MEJGQkY1RTczQTk4QTA0QThERjU1OEUwNDUzQkI2QTU2MUY1Nzc5RTkxMjYyRjk2MjcxMgorRTE4RjRFMkZCNUU5MThBRDM0RTc5N0E3RTI1RTg3REFFMzlFNEZBODFEQTQwNzAyNDk5RTZCQzM5MzkxQjIzQgorNUZDQ0JFMEIyNzNDM0FGQzFGQjY0RThCNkI4QUY0QjY4MUM4NjhBMDFFNTlBMDRFMDIyMzFCQjg0MDdDRDE4MgorRjA1NzAzODlCNEIzOUNDNTk5RTAzQzY2RTVDNUQwM0JENUMwNzU5RjVFNDc2QkNEQjExMjJDM0E2ODlFQjNFRAorMjczMTgyMEIyRUI5RjQ2Q0E0MDk4MEVFNjlFNkVFMTQ3QTI4NTRFOEREMDYwQjNBQTIxRTA5NkE4RTY2MUNGQQorN0FEQUYzQkEyMEYyMzBCRTZCRUVFRTU5RDdCMDM3RjQyMUJBMjM3N0JBQUQ1QUQ5REJEMkZFMjM2QzE2QURGQworNDM0NzNCNzkyRjlBRUIxNjQzNTc2QUY4NjQ3NkY2RDE5REM5ODBEQjFCNUY0RkY0QkQzODVCNjI5QjNFMUI3OQorRTNEQ0MwMzMzRDZGNjMwNTBBREQ1M0QzRjg0NTc5OTQ1REZBQ0U2Mzc0NEM2NjJBMDkyRjdDNzU2MjYyNzQzRAorRkVFNzAwNTg4ODA2MjQxRENCMDQzQjI1OUNEQjAxMDc4RTdDNkJBMTI2MjEyNTk3RkJDRDg0MUI1NTVEOTBFMgorRjc5RUI5RUNFMTc5OTA5RjdDNDQ0MzY3OTZGQzkzREZBMzI3NTUyQ0E4RUNEMEMxOTczMEI5QUI5QzlGREY4RQorOTdGQTQwNjZDRDkxODA2NEI1M0RDNEI4QTlGNTY0RENEMDBCNDc2Rjc2MUJGREU5RjYwNURFMkNEQ0ZBRkI2QworMDZBMUYxMjc0QjlCRURDNUYyNjgzRDg3QTM2MEM0QTA1NDlGQTNCODY0NDE2NDE4RDlFQzc1Q0Y3RjFFREFFMworRTBFMDU5MEM1OUQzRkE4QjQyQzIyOTExRkQ4MjQ0RkM1ODgxMTI2MTYzNDZDMUEyMjUzRjYwMEQwQThDQTVEOAorMDg2Q0RGODUwNURFODQ3QzMzMjFFQThEMjI5N0RENDM0M0M1OTUxQjkyOEI5NUU5OTlFQ0NBOEY3Q0FFRTVDRAorMzI2QUQyRjMwMEM4OTYxRTMxNzMyMUE0NjAwQjk3MTk0RTM4NEY4NDE5MDc3MkYzODFENTQzRUI4NjBDOEVGMworRUQwMDI1MzQ0QzA4Q0U3NkE1Rjc2OEQ3MjE3OTUxRjNCODY3NTU2NUNBMjQxNzM0OUQxNTBCNTgwNUJBOTA4OQorNzkyQTYxMzUzNDNGMTM1NzY0NEM1MDA0OUJDQzE1MEVGMDVGQTdFNzg4REE5NTE1QkMwQUVDQ0VEODZCOTE5QworNjg2MkJERTA0REI3NkFBRENCNzA5NUREM0FENzJGRTdGQkQzNzVBMjQ1MjZDN0UwQzc5Q0U1NzU4NzlFRjUwMAorREIyNjFCQkZGNzA3NkM0NUUwM0ZCQ0IxN0YxMENGQkU1Q0ZFNzEyQUE5QkU3MEU5QzFBQzExQkJGRTQzN0UwRAorRTA4MTFGNkQyNDk3MURFOUM5RjdCRjA4NjdENzg1OUY4MDhGM0EzNEY5QTc1RTRENjRFMEYxODZERkI0QzlBMgorMTZGMkRBQjAyMEJGNDU0QjY4QjVGRjdCQzc5QTJCMjYxNDlDODBEODhDMjU4RDQyQjgyQzBEOEM0RDJDNDk3QQorNDMyMzRENkI4RjA4QzEwNzY2QTIzN0E3NDRCNjMwOTBCRTY0ODBERDNCRjYxRTUyQTc3QjI0QUM4RTkyNjNBOAorRDE4ODU5NzgzRkI5RDY1Qzk5MUM0NkM1N0EzNzgyREI5NTYzQTVCODEyOUJDOUM3OENDMDg3QTBBMzRBRDlGNQorMzgzRDhBRkVBRTRFRTdBQjhEQzE4QzUyOUMwQ0Q3OUUxN0VCMjkwMjA2QUE4NzJGMjQ4RTczMkExRDFDOTg2NQorNEI0NUM1MDIyMDMzOUI1NTg4NjU3ODRCRjZEMkQxNDIzQTc4Q0RBMDNCM0JCNTIxNzY4NDI3QkVCQURENzU1NQorNkQxODA0ODMzMTBENkVBQ0I4Q0MyMzZGODFCQkUwNjg1QUM4RjU2Nzk1NjgzRERFOTE3MjJENEEzRkZCQTI0QgorMzg2QUVENjI5NjE5NzE1Nzk3Qjg4RDgzMDkxRDUyQjMzRkJGRENCRDNDRjhDRkQ5Rjk5M0EzREZFNDY0QzYyNworN0ZBNjFBMjczMTEwQkRCQzlEODk3NzI1QUE1QjE1OTNGRTEwRjc0QkI2ODc2MUFCMTE2ODE5NDg3OURGNTUxRgorQjQ2NEE0QUY1NTRERUIzNzREMUZDRkYwNzFCQzU1NEE1RDU4RkU5RTI5RTUyNzY3MThFQUZCMEJEQUVFM0ZFNQorNDgwRDJGRTgzRjEyQkRBMTE5MkM5RDE2NTY3NzI5MzE0OTI5NkQ4RENENzhFNjA5MjcwQjgyMTY1MUVCRTlFRQorMTdCRjlCNDhCQjk1ODE4MUM4NEIxQTQ1NTE0MUFEMkRDNzQzMjA3NDQxOERFQjI2RkE5MEI4QkUzOTFBNzBDOAorMUEyOTE1NzBFRUMwN0MwRDMyRURENUQyMUNGNjE2NEZFRjIwNzI4NTcyQUVGMzJFQTc0MzM0Q0ExOEZFQ0Q5QworMzRFNzZDNzk4RDE4N0FFRjY2QjUxQTBEM0FCOUIzOTZDREY2NEI4MEVBQ0U2Q0I1MEEyRDkxRkNDMEU3RDZDMAorMUZBRTQ0M0VBM0Y4Nzc0NzgzMjM4QzMzNkUxM0FBOEVFNTgxRjM1NTVERDE1OTk1MUQ4NjA2MjhCQTM2RjU3MworQ0RDQkM2RUUzNTEzOTVBNTAwN0I0RjFCRjJCRTVFNzcwQThDNEY4QUVCN0NGMTFEQ0I4MDM0MDk4NkIwRUU2NgorQTAzQjgzMzU4N0Q5MDREMUU5MDNDNDUzOEFENjA5MUM0QzE5OUVDQkQ1RTlBOUU3Qzk1MjM5OEI1MzdCNjQ1RAorRUQyODQ3MUMzQ0ExNkQ0RjE2QjhGOUQ0MkU2MTc3RDFGNTk3OEFGMUIzNUZFRTQ1MDdFNkE5MEEyNkI5RjQ1OQorMTlEMzAwQTkyQ0UzMzRGQzhDNjUzQThFQTg4QTIzOTA3NjBFNTQ4QzdCQjFBODFGQTIzQUVBMTNCN0I5QTNCNAorOTVBNzcyODNGRDBDRDQzOTMwMkIxMzQ0QzM0OUE0NERBNEE5MzE4QzA5RTg0MUFBQUY1MEJGRTdCNkI4NTVEMworNEE2M0ZBRjg0NTg3ODU1QzZFOTZEMjdDN0YzMkU5OEVCQzAxNUM4MUU1QkJBM0I0RkQzMDVEMUE3RUU0REIzQgorQzU3OEQxOEEwMjJEOTYzRDEyQzM3NjMwRjVFNDFBMDYyNTU5RjZCQjhEQTM4RjJGQjU2NkRFNUFEOEU4NUIzNQorQjhCMUEyMUVFQjY2NjhDNjVBNzNDQkNCNTczNzNCQTM5MzI1NEY4MEM4Q0YyM0Y5QTBDMjkwNTQ2RTg0OUVGRAorNDUxMEU2Q0UwMDE1NTExQTVCODBDNDZCRERCOThGQjMwOTIxOEQzREZFRUE2ODAxNkVGRTM5QjZGQkRGREFCQQorOTdCODFFNUVGNjY0MkQ0MUI4QjY3QTExRkI2NjVDQUNBQ0QzOEVERkZFQTEyQzdERjkzQ0FGOUFCNDYzODgzMQorMDQ0MDI4MUExRUYzMzg0NzVEMTE5OEU2MUEzNzYxQzg4MDZEQ0RDN0Q2N0FERjk3MjMwOTM4OTRFNDdCNEQ2QQorQTQ5MkZDMEYxMjFGNjk0MDBCMDNFNUZDRDZCOUY2MkREQjc5NDc4QkJBNDI2RkNFMUNCNEFCNEIwNzM0NDRDNAorNENBQkE0NjVDNzYxODUxOUYwMjFBQ0YxOThFMDU4NDk0RTFFMDdFREM0RTlGRTdERTA3OURDQzFFRUNFQjU4QQorNUVGRDg0M0M5RDc3ODlENTc3MjY2QTM5OTNGQzhCOTc1RkQ3Q0RGMzRCNzNBMkM3REYwQ0E2N0JEQ0MzMkUyMgorMEY1MUJCMjJGNzAzQkFGMDVDMUY5NDJDRTJBMUUxOTA1OTc4Mjk0ODQ4MDYzOUI0REY5ODNDMzk0RDdFN0UxRQorRjI1NEVDMTFENDc4NEVBOTg5MTg2RkIzRkNGQzY5RjU2OTY3RTc4RjREQkREMkU0MkMxNUU0MzlBRkY5MUI1RQorNTU5NkRDMjk5QUNEODhCMkE0QTczRUYyQjg0OUUzRUVDQzBBQzlEQzVGMkFGRTQxMkU3Q0QwQzFGRjIyRDdBRQorRUZDRDI3ODYwMkYyNEE0NUQxMDMzMzBDMDAxNkEyQTAzRTI4MjU3QjhBNzlBQUUxQjRCNUZCMTAwOTZGRTk2MworQkEzQUZDQjQxQkE1MzM4MTc0NzBGQzRFNjI0MkEyMUQ3QkZDMEFBNjM2NTk2MjdGMTJCNTkwOTA1QjFDODE1QQorQzBDNDk3NEZENUE3MzUzNjU3RTAzMDAxRTI4NjU4RkJGM0Q4Q0NEMzg0MDM3NTlCMzI3OTcxMThCRERDNTRBNworQzE4NzUyRjYyREI4NUMxMjhEODhFQUNDRkUyMzdGMUQ1N0NCMzhFNUNDQzlEMDdDQkI5QkY1MjJDQkE5MUJBNAorM0M2M0YyMDFBQzAxM0NDQ0MyMDZDQzQ5NDI4NjQwNkNCMEFDRkE1NDhFNTlGNjNCOUVFN0MzQzA5REJGMzlFRAorMzU1RDk4NDlFRUNDMDQ1Q0Q5OTM4NDkzNDE3MkQ0QjA2RUNGREQxMDNCQkJBRjZGRDcyQUNBRTk1RUNDMjIyRgorQzNFMUQ1MkI1RkY2MzBGRDQwMzIyQjAyNUYyNEJDMDMyOEM0RjdEQjczQUNBNkE0QUE0MUYwMEE3RUY0OUNENgorRDg5Njk4RUYxRDQ0NjFDNzg4QTNBMDU3M0FBMEE1MUYxNzQ0M0E0MURCRkJGNjRDODVBMkREQjkyQ0ZBODQzOQorRkE1QjU2MDE2Q0U5NTJCQjEyRDYwMUJBOTA1QzY4NjFBOTA5NzQ5NzBDMDdERDU3Q0I0ODlEOUI3RjJCREIxNQorRDMyQjQ5RkVDM0IyREYyQjk5RDIzQThBN0ZDQTM2MTQxNDQyNEQ0RERDNjA0MDU4NUYzQTY2MUZBMTBCQTVDQQorNzE3QkQzRjdBQUM4NkJGNTRBQjExNkE0QzRFMjkzREYwQTM3MjUzRjJEQzM4ODMzQzE1RDYxOUJGNTI2ODg2NQorMTBGQTg3NDMzQzlENkZFMTIxQUE2OTFENzdBNEE3MDE1NzdBOUJCQzQ4OENFREUwRDIwMTVEMkNEQkIzODMxQQorN0E2NTEzNTkxOTRGMDY2QTAwRDBCN0Q4NDhENjkxNjM1NzY0MTM0NEM3Q0RGMkYxMTU2RjY4MURDNEIwRjk3QQorMzIwQkE0NUI5OEUwQkJCOUZBNjc3RTg3NkRBMTQyRDA2REQ5MjZGRkZGQzZEQTdGNkVDNDg0RDNBODAzQkEzQworMDhGNjFDRjJFRDBBQkZDRDY2RUQ5MzA2MEU0NUI3MDY4MzI1QkVGNTNGNkRERjFFNDhCNjE0NUVCODg3RjgxOQorQjM5RjZGNzlDNzBDMTY1ODgyNUMyOEI3OTU2MUE5QTY2QUY3OTQ0N0M3ODZFQjAwMzQ4OTBDMTczMTg1REFCNgorNTUxQ0QwMkUxRUE2ODQ5Rjc1RkE2QzBBODkxNjM5RjFDQTEzNzNBMzQ1OENFRkM5MDlBODlCRDZBMkZFQjk2QworN0UzODAxMEFFQ0IwMzlBMzNCQTFCODJBMDBFOTcyOEIxM0FGNzYwQTdBNDIwQjFCQkYyNEI4RTk3MTNFQkJERAorNTdFNUQ2OTI1OUY0QjUwOTAwRkFGREQzRUY4QUYxNDY5MTg5RDI0QkM2NDZGMEY5NTgwNjlBNTYzRjE3RjU2NworQjE4NDZDNzVEQ0M4RTUwNjg2ODBFN0U4OTNCNjFDOTlDRUY3M0Y1MkM0QTNGREQ5NDdGOThCNDc3NUE3NTRERQorMDI3NzgwODgxOTRDMjEyQjEyMjhCQUFDNkJBMjZDQjEzMzYzMDY5MEQyNEUyQTUzM0VDRjFFOTc1ODZERTFFMworREM2MUZBQkRBNjEyQjk1NDhDRTU1RDI0MTNDOTQ4MTVCQ0M5MjA0RTJGRTk0OEVFQzY3NUNGQUZCQkQ5OEQ3NQorQTk1MjAyNURFOTIxN0E1NUI4OTgzNEU1RjYwRTQ5NDk0NTk2MDc0NDczQUMyNURCNTMwQkRFRTU2NENDMzk1RQorRDY4QjcwRDQyMkZDNjg5NkUyOTIyMDE1M0Q4MTcyQzBERENCQUJEMTUwNUE5QzBEMDFERjc2ODlFOEI0MTQ5OAorQTRBQzBCM0ZBRDVBNjQyNzQ3NTIyQzUyMTg3QTJFNDQyRUU5RTQ5MkVBNDExNzE3MkMyN0IyNTIzMDEyMTgxMworRDNBQkY3NjIyMjY4QUVCODM1MTk5RTg0QUYyQzU3REFGQkMxRUNFOUVGREVGRkFDNzFFM0Q0Mzk1MjREOUZCRgorREQ1MUQ2NUQwM0EwRjc1RjhFMUE0OUU5RDM1MDM0NUVFMjZBREU1RUQ2MjdGMzlGMTc1N0QyRjk4RjgwNUJBNAorNkZERTgwRkI2M0I5MTVBRTkyREIyOUZCQjdGNDRBNTdFQTUzMEUwRUI3Q0RFQUI4NTdDQjEzQzdCN0NBRjMyNworRDRCRkMzMjA3NzdBQUE1Q0REQTQ2RkRBQzA0NURBQjFBRkE2NTk4MUUwQjlFQkQ4QzlDRDkyRjc1Q0FCMjUxQworNTZDM0E1ODUxQzY3NUI3MEFCNDc0QzhEMkM0RTNBODQ0RDY2RjE0NTI3NTg2NUY4RjI2ODk0NDVCNEZCRTI3NAorQTc3ODg0MTFBMzIxNjIyOERGRDFDMUE3MEVBQjJEODAzQzBBMzQ5RUYxMTUwQjM2OEUyRkI2Q0U1QjUzNUQyQworMDI1QTYwMUVBOTM2M0FGNEE5NjExNDUzNjNENEIwMkMxRDRERThGRDQ1OUFGOUFFMjNGOEM4ODVBQzhFNjZCOQorRjM0MTk3NDg0NzMzQjVDNDFEQjdGMzgyMjNDQzE4QkY4QzRCNEM2ODJDMDBFQjI2ODBDMUE0N0RGN0IxRTkxQworM0Y5NDE3MUQ5OEIyMkE2NDc0RkNCNDIzOUQ4MDFDRkY0QUZEMkVDNDgxMDYxOUMwNEVEMzlDRUY1MUE0NTUyMworQjg3Qjc3NEVDQTNCNjFFMzJDN0IxQ0VFRTY1QzAyODFGRDNGNDY2OTdGNDg0ODlCREIxNEJGMDU2MEUwOTI1QQorNUFDRDBFNjlGQzBCQUExM0FBRDEyQzVCRUI4RTZCMDJFRjMwMkVFMDQ5MDIzQTA4MzlGMzUwMTg5NjUyNkRBNAorMTg0RkU1Q0EwNEQwNzA4NEJFQTQwMTFENTU2RTk3QzNERTk4QUEwNDY0OTE4RTVEQzM2RkQyNUY3RkMyMjY0NgorNUQ4N0E2NkRGODc2NEQ3MEUzMUQ0RkQyQjhGNjMxRDExN0ExMDZENTNDODlBNDlCRUU5MzZDREIzMEUxOEM0OQorQzIxMkMwQzJERTNBQkNEMzQ4QTQ4OTk5RUM1QjIwNDI5OUEwREM4MkYyNDk1QjRFQTk2RTBCNDUwNjQ4MzE1NworM0QzMkU4M0M4M0Y4NTEwMEYxN0VGRTYyNTc4Mzg5NEU2RjBBQkZBQzJGQ0Q4QUFDM0VFN0VBMTcwRTlFM0EyNgorNDhEMDBBOUI1RTUxRjY5QTEzM0UyQTU4QkZGRjhEMzAxRjY2MTFDNzJFOEFFNjdCQjgyMTU4RjlBNjVCNjNDQQorRDE3M0M1NkJBOUMzODdFMkJCQTgyOTlBMUE4RUM1QzZDRDJFMzlDQjgyOEJFMzMzOTdEQ0M3MTAyREY3NzI4QQorNEUzMTdCNTgwOTRGMTY5OTJFOEMxMTU1RDg5MTA0MjVENkU0RDQ2ODU1NEREMTYyMDVDRTQzRURDMzNEMzQwMgorQzY3QURBQjMyNzE1NTVFQUMwODlEMzZFRTdGNzUxQzJCOUZFQjQxODZCQUEyMjM5RDNDNTc3MzM5NTE5NDQzMQorNTkwRDQ4NjBGOUZGNUQ2OTYwRkRENEQyOEE1QjRFOTIzODlDQUVFQTQ0Q0M5MEMzNjk5MkQ3ODBDN0U1RDBFMQorNTZCRjBFM0Q3NUFBQUJGMjRDMDZBMTJEQjg2RTVCODlGNDczRDMwNDU4Q0VCMEE0MDIxNTg5MzkxQzM4RDc2OAorQUZBQjE2MDU2RUM4QzA1NDUxMzg3MkE3MDE1MDM4MjM3QUQyN0Q3NkVERDM3QTdFMERFQjIwRDc1ODAyOTZBRAorQTcwNTM2QzQ0ODREMEM0NTlFMzJFMzMxNTc5RTkyM0FDMEI4MUI4Qjc0OTdENzc4NDk4Rjk4MzM4RUY3QjNCMAorQTU2NEMzQzdDQ0RFREVGMjk5RUQ0Mjk0REZFNzdEMjg4Q0U0ODdCMTBGQzYzMjY3RUNDRDg4QjhGMzYwNzBBOQorOUEzRTI1RkVBNTBFNkJFREY0M0NFODk3RUQwNEM2Q0NDRERFMUU2Qzg0NkNEMEFCODkwMTI2NjgxRUEwQ0ZGRgorOTI3RUJFMjNFNjMxNjFENzUzNzVFOEIzMjA3MjRFNkQ4OTZBQTM0NjdCNzVDOUU2MUNCQ0ZDQURFQzdCMUQ1MQorNDE4NjI1MjUzNDBDQTk1RkIwNkU4MjhFNUU0RTQ0NDM3Q0NCMTRDMUU5MjM4NDg0NjE4MUE3MjdBNTc0OEEwMworMUU1OEY0N0MwQ0I4MzMyRjdCNUVBRTRDRTNEQTUzODBFRDg4N0NBMTgzNzkzMUZEQzUwOEY2OUY1QjQ3OTk3QQorNEEyNDNCMjU0MjAxMjc0RjdCMDAzOENGRkFEMkVCQzZEMEM2NTM1MzdDNDI3ODc4NjA2QTAxQjFEODk1NTJEQQorMTlFQzkzQTJGMzZCRkE3RUJFMEVEQzg2REVENzc3NjAwQzZDMDIzNTE2NkYwMkNDOUNFNzdDQTA1NTBGRkJBNworN0YyNkM5NEU3ODk5QUY5NzY2MjhBQkREQzY0RjJCMzg1MzE3NkUzMjA5Q0IxNDFFQjkwRDEwRTYyQkY5NTM0MworQ0I0MkQ0RTcxRkM3RUJBMjgyQzNGNTI5MDM5NTU2MTEwMzdGNzREQUZFMjc0QUYyRUY2MzFBN0Y4OTQ5OEJCQQorMEQ2MUQ5QTc0NEQxMTNFNTcyQkFFN0VCMTc2RTQ3MEI5Njk3OTExOUZCNzM4RjhFNUEwNDhDRjlBMDY1NDNCMQorMTc1Q0ZGOTE5RTVDREE0RkYzNTMzNDQ5MzkwQjE1M0U1QTczNjFGMDE4MTNBM0YwQjM1RjczQzMyMEM0ODk1OQorNDhBNkE0NkY1RUJEMUQwMjdEMUUyMzk3Qjk1QjA0RURENzc1MjM3REFDQ0UzNDNCMkQ4NjhCQzk3QzAwOUUzRgorM0JERUFBMzI5RDI2NUI3NUExOENDMjJDNEE2QjYwMzhDMjE4QUYzRkRFMTBFQzgxRDI5QTU4OTVFNTczQ0UxQQorMEZGM0E3MzA1MTA5NTI1MzBBNDNDMUUwMDkzRUVDM0UxRThEMEJBMUYzMjY2OTg4OEM4MzFCQzYxNTgzREY2QQorRTMwQUEyMzQzOUY1Q0VCQkZBMTc2RTg1MTY4NjhCOTVCMEE0Nzc1Mzg4NkM1NkEwM0E3MUFEOUVCNERBMkZERAorOEUwQzY2MTExRTA1MDRGMkNGNkYyRTk4QjJGMjQ0ODUwRUI3RjlEMDU4OEYxRDEzNUVGMEQ1NDI1MzYwMDUzNworMDFFQUZERkNEOTIxOTU1OEVCRUMxMDA0NDRBNEVEMTQzRDNGMDY2NkEwMTBFQ0E2MUE2MUZFNEY0MDg2RkE4NworOTM2MzU4NEFCNjY4OUY2MDcyRTdFM0NGMTM4NkNERDUyQkFBQkYxOTM0NDQ0ODRCOTBDNkRBOTU5NzgxMzQyRAorNjlGNkMzNzM0NDkxMkI4MENDNDE0RDNCNzYzMzE0QUIyMDE2NjMzRDdBRDY4MzhEQzVERTcxNjlDOTdFQTg5QQorRkJGQUEzMjJFNURENzAxM0NENzhDQ0U0M0FCOUM5RjlDQjRDNTQ5QUY0OEFFMTEwN0UwQTM3MTcyMDY5NTI3NAorOEFDMkIyMjFFMzIxMDg1QkVBRTY3QTVGMjhCOTEzQkY4MkM4QkU5QzhFQ0M5MUY0RjBFMjA3Q0U5REFBNDUzQworOTZCQTZBQjNGODE2Q0I2OEM4Q0FBN0JFRTcyRDA2QkI4MUE0RUUwRDA3RDYyQzhCMzc3RjVGODRGMERDMEM1RAorMDdCRTFCOTAyNzQ4RTkyQ0Q5MUFDRjRGQTkyNURDMjBBODdCMUQ2OEZDQjhCQTEyQkRCRUNENENGODE1OEY2NAorQzc4NjA1NUJBOUVFOEVCOEMwNDk3N0Q1MTNCMjY0Q0MyNTUzNjc4MDE1QjI2RjBCRUQwQjZCNDBFOUM5MThGRAorQ0Y5MjE5NzNGOEVCQkU2MDY5REY2NTcxNDBBNzhCMjdGRUNDMDc5NDQ5RDJBRUJDNUFENDFEMDk2Q0YyQ0Q4RAorOTk4NDlCNUY5QjBEQTU5ODI2MEM0RjIxOUFGMUM3NkQ3ODZBMDg2QjY5MjZBNDFEODMwM0JGMzNGNTlBMzlGNAorNUI0RjQyMjJCMzYxMDdBOURDMkNCN0EyOERBMkY2QUJBQjAyRUM0QjgzNjA0MzY3NjhCOTQxQ0QwQjU5MEU1QgorRThCQzM2REZCMjM5RTcyNkM2NjVDNkREMjlEM0JEQzUyOTIyMDFBMkQ0OTRDNTNBMDhCMUVCRTlBQjQ3Nzk3NworQkMwRjQzMUZDNzNCNENCMjRDMThFNDNGRjA5NDA1NzdFQUNDMTdERjVBQTFGNjg5NDJBOTc1NDVBRDIwNDAwNAorMEM1MkNDRTVGMTkwRUIwMkE5ODJBMEY2NkU1MzUxRUM1QUNBOEFBQTNDQ0Q4QTI5RTFBQjNGMTJFNUE2MkUyQgorQkU4OUJBMjhDMkI4N0MyRUU5NjAzREQyQUU5NDdDMEM5MzE5QzdFOTQ2RTExMjEyQTQ1QUU5NEQ1NTIwQ0QxRAorNDMzNTEwN0ZFNDMyNzMzODQyMTE4ODIxMTBBMDY0NDg2Qzc0NzE1RkM2RUUwQTA4QTZEQ0QxQkQ0QzlBNDYzRQorOTBEOTczRjU2NkM0OTE0REZFNzQwN0UxNTE4RjkwNzM5RkQzNDFDRjkzMzE5RTM0QzVGQzJCQ0MzN0NFQkQxQgorODRFMUQxQzE2QTZDOEQ4OTY1MTE2MEE0OTgwMzI3RjgyQUI0MUUxRERENjZCMkY1NzlGNzBERTBGNDEwMDlCOQorRkIyODI5OUU5MDJCNDQzOENEMTkxMjMzQjM3NTEwNzY5M0E3OTlCNzUyODgwQTVGRkZERUIwQkEyOUYxRDQ1NAorMjAwNTUxMjkwMjlDOEVDMzhEOUM3MzYyMjI4OEIzQ0Y4NUZBRUM3NERFMzQyQTE5RjhFOTE1NzNDQUVCOTcwNgorN0Q2MDYwQkUxNTg2RUVGRDcwOUYzMjU3MjJFNERGNDFENDVDMjRGQUQzNDhCMjQ2QjE0RTRDNjkzM0Y2OTZFMworMUMwMzI1QkQ4QUE1NkY5NTkzODFEMjhFNTc4RTFDMDk3MjUyRjY5NTcwQTdGRDFGNTFCMjNFRDU4ODc5NzI0OQorNTQ3NjkwNzQxQzhDMDIxQ0FCRTg3RUU0MzlCNUMxNkI2RkNBMzQ2NUM1NzFGRUM4Q0U2QjgzOTc3QjlGMDM3QQorMjU5NDgwQUQzNzA4NzVCQzU0NDU0Q0UzQTdBOEM0NTRBNzBEQjg0MEM1MUMwNTdFQ0Y1M0NFRjJGQzk5NUQ1MworNEMwMQorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorY2xlYXJ0b21hcmsKKyUlRW5kRm9udCAKKyUlQmVnaW5Gb250OiBDTVNMMTAKKyUhUFMtQWRvYmVGb250LTEuMTogQ01TTDEwIDEuMAorJSVDcmVhdGlvbkRhdGU6IDE5OTEgQXVnIDIwIDE2OjQwOjIwCislIENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKzExIGRpY3QgYmVnaW4KKy9Gb250SW5mbyA3IGRpY3QgZHVwIGJlZ2luCisvdmVyc2lvbiAoMS4wKSByZWFkb25seSBkZWYKKy9Ob3RpY2UgKENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZCkgcmVhZG9ubHkgZGVmCisvRnVsbE5hbWUgKENNU0wxMCkgcmVhZG9ubHkgZGVmCisvRmFtaWx5TmFtZSAoQ29tcHV0ZXIgTW9kZXJuKSByZWFkb25seSBkZWYKKy9XZWlnaHQgKE1lZGl1bSkgcmVhZG9ubHkgZGVmCisvSXRhbGljQW5nbGUgLTkuNDYgZGVmCisvaXNGaXhlZFBpdGNoIGZhbHNlIGRlZgorZW5kIHJlYWRvbmx5IGRlZgorL0ZvbnROYW1lIC9DTVNMMTAgZGVmCisvUGFpbnRUeXBlIDAgZGVmCisvRm9udFR5cGUgMSBkZWYKKy9Gb250TWF0cml4IFswLjAwMSAwIDAgMC4wMDEgMCAwXSByZWFkb25seSBkZWYKKy9FbmNvZGluZyAyNTYgYXJyYXkKKzAgMSAyNTUgezEgaW5kZXggZXhjaCAvLm5vdGRlZiBwdXR9IGZvcgorZHVwIDAgLy5ub3RkZWYgcHV0CityZWFkb25seSBkZWYKKy9Gb250QkJveHstNjIgLTI1MCAxMTIzIDc1MH1yZWFkb25seSBkZWYKKy9VbmlxdWVJRCA1MDAwNzk4IGRlZgorY3VycmVudGRpY3QgZW5kCitjdXJyZW50ZmlsZSBlZXhlYworRDlENjZGNjMzQjg0NkE5N0I2ODZBOTdFNDVBM0QwQUEwNTI5NzMxQzk5QTc4NENDQkU4NUI0OTkzQjJFRUJERQorM0IxMkQ0NzJCN0NGNTQ2NTFFRjIxMTg1MTE2QTY5QUIxMDk2RUQ0QkFEMkY2NDY2MzVFMDE5QjY0MTdDQzc3QgorNTMyRjg1RDgxMUM3MEQxNDI5QTE5QTUzMDdFRjYzRUI1QzVFMDJDODlGQzZDMjBGNkQ5RDg5RTdEOTFGRTQ3MAorQjcyQkVGREEyM0Y1REY3NkJFMDVBRjRDRTkzMTM3QTIxOUVEOEEwNEE5RDdENkZERjM3RTZCN0ZDREUwRDkwQgorOTg2NDIzRTU5NjBBNUQ5RkJCNEM5NTY1NTZFOERGOTBDQkZBRUM0NzZGQTM2RkQ5QTVDODE3NUM5QUY1MTNGRQorRDkxOUMyREREMjZCREMwRDk5Mzk4QjlGNEQwM0Q1OTkzREZDMDkzMDI5Nzg2NkUxQ0QwQTMxOUI2QjFGRDk1OAorOTQyOUI5RDQwOTI0REMwNTkzMjVEOUQ0Q0MwMzQ0RjNGOTk3QTk5RTZDQzA2NzY3MzVFQkNENjg1QUFDOTE0MgorMDhEQUZFQzc4QkI0MUFGQzJGMUMyMTk5MTBCREY0MUQ2Mjc5Mjg0RUY2MDBCNjk3NzZDQTE1QkM4QTM0MzQ3QworMzA3ODNDNTJBRkE2MEZCRTNFMzUzRTJBRTM1NENGODdCNTU4Nzc2QTIyQzc3NkM3QTBCNUFCNUNFMUY5NDFFRgorQzJEOUNBQzM3Mjk0QkY0MDdBNjcxRjEwRTQ3NDNCRjg0MjE0M0Y0RjdERkVFNjQzQkEzQkJEOEJCOUUzRjI0QQorQkNDRjdGMEFERjhCQTUwMDYyMEM4MTAzM0VBRThDNEVGMkMxREVGMTNBQzU3NUYxQjNCQkI2NkYwOTNEM0I3OAorNTQxMkI4MkI2N0ZGQTA4N0FGNTcxODJCMjIzMEY5RjIxMzcxODBDQTU4QTdEOUIyQzgyMkZGMDRCRTZDRDAxRAorNDNCMkNBNzA1OEM3Qjk1M0Y2RDlCNUQ2RTkxRUNCQUE1Q0RFMTE1OUIwRTU5QzgzREJBRDk2RDZDOEM4QkFCMQorMzc0RUY2NTJEMTBDMEYzRUU3MTA0NDcyQzk4REQzNTcyQUFGMkQ0NUE3MEJGNzA2MTQ0N0UyMUVFM0MzQkYyMworREYzOUMyRDFCMzVCNDJDRDUyOTdCRUJFNkJDOTRGN0M5REM2RTYxRUM2N0U0RjY3NzI1NkZFRDkwNjRCRDNFNAorQjUxQTcxQjFEMjdDQTRFNUFBOUUxRDgwODBFNkRBQjUzMTA3MTFFRUY4N0M0MDg1OUZBOTM1QjE5NTI0QUU4MworNjNCMTYzRkE4Mzk3QkRGRjQ0MzIyN0ZFREY3REIyN0RDMzVEODlGQjFDNUU0MzVEQTA2MTlBNUM4OEFGQzczQgorODlBMkRGNUU3NjdDNUI1MzZCQzcxNjdBODQwQTBDMzJCRDU3QTE0REU2OUE3RDBEODE5QUMzNkZGMzJGOTA4QQorNTA3MEYzMjk4M0JCMDA3NDM3RTM1MDA3OTlERjVFMEFEMzcxMEE0QzAwMDBGMDA5OEQ1QkU5OUYyRUI5QzFDMgorQzQ0NEZEOTU1MkQwRENBMDk4QTk0QjNCRjE3NkY1MTFDRUUxM0RCN0VGRkFFRDdDNDdCNUFEQ0Y4RDQ3MDBGNQorN0I2REY1MEVFNjE3QzAwOTY2QjlBMjgyODg4MjgwNERCNzQ3N0Y0QThDRjUzNDVCN0YzNTY4QjRGNzJCQ0U3MworMkUyQUE1QkM0QjRDNzBFMjFGM0FEOUFGQzNCODYwNUEwMEQ2N0VGOUVEMUY0RDEzRERBQTkyMEQ0NUI0M0NFMAorMDk0MUJGMTdDRjA1RDJCNzc3QzExRDREODQ0QUIyMEMwNjkzRDFEREYwMEIyN0Q5RTFBQTJEOThBNEEwNkNDNgorRDM0MkFEOEY2NDRGNDc4N0I2NkNBN0Q4NjFFN0NFMTNGQ0RBODVDMUIwQzlGOTQwMDk3NjhFQTg5ODM4RUJBMgorNzgxOEY0MEEzQ0JBRkU5QkQzQUJERUMxNkU1NkEwNjFFM0Q4QkRDQUE3NDk2RDg1MjM2RThFOUYzNjdFNkE5MQorODg5OUQxNEU0RkUzODdDMjYyMjY2MUREMUIyMDM0QzgzQUM4NTUzM0E0RkYxMEFDNEFBMDkwNEM5RDk2NUMyMworRTVGQjIxQTI2NDI0MkI2MEIzRDcyMzcxMkRCMUM3RTZDREUxNzI1NTg4NzMyRDIwMTVENDBGRDVERUMwODYzRQorODMyMDAyOUJCRjNGOTBFOTQ3RDM0Rjk5Rjg4Q0NEMzQ2RDFERUE4M0FFOEUwRDVGODk4NzM2QkFFODM5OEJFRgorRTU0N0VEMERDQjAxRTVGNEI3RDhBODQ4NUU5RTFDNURGNjMxNDNGQzMwQTAyMzFEQjc1NzFDQjMzNTAzQzg1QgorNjcyMTQ3Q0Q5MUE4MzE3NTIyRTQ1QkVDN0RGNDMwODI4MjY1RUU1QTU1RDMzRjFCODc1QTA3NUI0MjNFNjVDMQorNTVEMTU1RUE4RjdDNzY2QUY2MUZENTA5RDlDOTlDOEYzODg3MkY3MDM3MzkzNjg1NDg4NTVDMEIwRkVBREY0NgorRjZFQTlBNzdCNjhGNTk4QkVGOTUzNURFQUJDQUUyRjcwRkIwRTRCMDVEQzg3ODkyQ0FCNzhCNTVENDA2MjRDOQorMDRFREU3QzVFNTI1OTUyNjM1RkIzMDU5Q0MxNEVGNzg3NEU4MjNFNTUyMEZFQUQ4NTYxM0NFQTlENTAxMTkxOAorMkZGMUY5RjE2ODJEREMzRTlCMTA1NTkxNzJBODE0REI3N0U4OUQ4NzEwMjYzMEFFOTUwMjIyMjYxMkQxNEU4QgorMThERDgzRDNGMEZBMjM5OTUxRTkxMTFBQTM1Q0UwRkZCRjIyOTRDM0VDQzRGMDUzQjFERDNDNjg4MTY0RTdDNAorOEM5NjVDMzQ3NDcwNjE2M0VCODNCRTcwMzFFMjEyREY0NzFDMzRDRTY4Q0Y3RDcwREQyOTg0OEQ4QzA1MjM2RgorNDIxRjI1Mjc5RDA2MUJGNzY4NTNDM0ZCRDhDMERFNzcxRjUyQUVFMkMwNzNDM0Y0MTQ3NkEyMjI0Q0FGNzM5MAorODU2QjdBMkVDRDVCRjQ2RUY0NjdFOUIyODdBRjkzMUUzMzRERkExQjAwMThDMTA3QzY0RkVGMzA2NDUyQjZBMAorQTYzMTE3QjY3MEZDMzMxRjA4RTBFRjgzNEI5OTRBMUFGN0JDQzQ4MDkyMkE3RkRGNzRGMTc1RDRFRUExNjlENworMUZGOTE2MUI4NjZDRDY5NzhBRDg4RjRERUUxQ0NDMEMyMjQ5OEE1OEJERjdDRjQyNjRFQ0NDODE2ODY0NTFBRQorRDI4NUY0MDI0MjQ3OUI5NUJBQTg0QUUzMkY5N0FFQTMxQTNBRkM0NURFNkQ4RTE1ODlGMDkxNDEzQjg2NUQ3MgorOTlFOTIzMUQxNjMyNkFGOEEyQjcwRTA1ODNENTdGQTZBMzg5QjkxM0IyMDZFNkZDOEVDNzExMzZCMUMxRUI2MQorNUNGRUZFQTYyQjI3M0I0N0JGMjc4NUMyMEEyQjQ5MDE4NUNGNDE0ODAwQjlDNzE4MURERDI5NjZEMTlDMEE0OAorRTM5NDlFNzc5RTdBMzdERDVGMTIzMjI4RUVDQURENzBGQTA3NjE0RkNBMTQyMEIyQkFBMEIxNTUyRjA3MjA1NworNTMwQTVFRUQ0OEJBMUU0OTMyN0ZFQ0EyODg4QzQwQzY5NDI2OTA1QkQ2MEI5NjBDNTMxODIyMzQ2REJEMURGQgorRUI3MUI5QkVBM0RBQzgzRjZGQUQ3NDg1QkU2QUNDMzFDQjQ2OUQ2MkVFQ0RCQ0IzQzE0Q0EwQThDRDRBNzJDNgorRTUxNjgxNzUyMEZEODJEMzFBMUM5OUE1MzM3RjcxRTFENTYzMkE3NkUxNjZFNjhGMDc1NzY2MzMyM0E5MTZDQgorM0Q0OENGMzQ0OEY5MTEwOTkwOUJGNjMzMTk4MjY1OEY0MThEMTY3QzlDOEEwMTMzREQ1M0Q4NkE5MzBERUYzMQorQUYwQjJFNTA0RUExRjk0RTY4Q0MxNEU5QUQ1RTQ5RDQxRTc0NzU5QkU0OUEyNzFFRjE0RDYyMDgxOTU5NTUwRAorMDU3QTYyMzgzODkzMEQwNTE1RjcwMTExMDE0NkFBRTNFNUQ2ODE3RTQ3NTdBQ0IxNEI1Q0ZGODVBODY3QTNGOAorM0I0NzgyMUQwRjE2RkI2MEEwMzQ2RDBGNDZCQkQ2M0FCQjZGMDBEMjNBQjBCMzE2MkE3MjUyOERFOTZBN0E0OQorRDMzQ0I3NUJEOEY2MzdEMzJBMkE5MzdBQjM5NzAwRTMwNDExRjlDNERDOTNBNzQ1NEM0ODU5MDNGODFBNUM4RgorOUY1MzY4NEQ1OTE0N0YwQTc4M0Q5MkZFMTYzOTY1NjA2QUE5NjU2RTFCMjQ1Q0IyMUZGMzQ1MTY1QTZEQTBGMworNUZGNEJCQ0JBRUIzMjEwM0Y0NTYxNkVDMjk2MzkxN0JDMDg0MDY2OUNDRDk3RDQ2RDg5MkJEOTVEMEFGRDUzQQorNTM4NEQzNkY3MkEzQjJEQTEwNTY5RDA1ODE4QUQxRDU1QzNCRTQxODM0QjY5OTIwNzJFNjkzQkNGNjU2RUUyMAorMjgzNTk5NkZGOTlBNEVCMjA3NUIxRUUyRTIwNjk1RThBMDM5RDc4OEI1M0Y5NDY3NDM4QzUzMTMwRDdGRTMyMAorQjY1QTFFMTZFRTA0MDEyOERGOTMyQkYwQTBCMTgwQzgzOENFNzU0MkFERjhBQUQxODdCQjc2OTE4MkY1Mzg5NworNUU4NEUzRjA4MzZDMjZENzEwNEExNzhDREQ5NzZCODdBRjA0MUIwQjJEQjdCMkEwQjNCOThGQjhEMTZBN0IyOQorMzM1MzMxQzEyOEJGNzhGMEUzQ0ZFMTg2Qzk3NEFBQjhGMjNDREIyODMxMTgxNTlEQTY3NjZFMTdERUU1QjFFRgorNEY2MDgwODhBMENFRDZFRDQ2NUNBMDFCMjdBN0U2RjFCRjhERkRENDBDNTU5MDE0RjhENjVEMTg5NEYyMkNDNQorQUZBN0YxOEYzOEY2QURDQzg5NTI5QkIxQTVGOUI1Q0UzQTUwNjdBQTdCMTc0MTNDNUMxNjA4NkJBOEYxQUQ3QQorMEUxMDY1QjU0RjVBMEQyNTExRTRFNzc5QjJGNENFNUU1MDVEQ0MzQ0VCOThENEJBNEYzRjI4Q0M3RUYyRDMwNQorMDY1NkM1NTEzNEYwRUVCNzdBOUNDRTNFNjE1MUE5Q0ZDQzcwMDVBREZFMzI5OThDNkU3OUE0NkQwM0E1MzM3MworNDJCN0Q1MDY0MUY4MDJGNzZEQzA4RThEMkFDQjcwMTFBNkE3QUFBMzQ2QkE2QzA1QkE2QjQzNzJGN0VGODk0MworODFFMTVERDczMDZFMUVCRjkwMDIyMERENzJFNTBBNUQ1NUE4NDBDMTYzNEZCRjRDNThGMEREQkIzRjE4Q0YxMgorQTk5RkQ3NThGN0E1OThFQTQ1MTdENTEyREI2OUEwNkM2NzJEQzFGMkQxQzZGREREQTYwMjg5QUI5MDA1RkVENgorMEFDQ0RCNzUzMjhGMjYyMjEzNjk5NTQ1REYyODE2NEY4MDFGRjdEODY3NThEN0Q2QUVCNjkzNDZCRjk3NEVGRAorMDk2N0Y4OUEzOEU5QzM5MkE3MkE2RTUyRjA5RkFFNzY4NDRDNjZFMzg4MDlFMjNCRDIwQzNDOTYzQUU2NEM0QgorNUU0QTI0OEZDNTBBRTJDNzM5RUVEN0FBMDRBOEY1NjYzNjQ0QzlBNTk3RTc5MEJEQzE0OEQ2OTVEOUEwOURDMAorNDI1NTQ0MDczOEU1MzFEQTA2MTBENThDODQzMjJGN0Q4OEE5ODg1MEJCNjYwNDMwQkNDRDBFNDM2NkQ3MDlDOQorMTY5M0M3RUFGRkYzRUM1RTFFM0UxQzJFQ0MxRENBQ0Y1NDcwNzJGMERGQUVFREM4MkE3NjFDOEJGQkYyODFGNQorMzIwMDQzNjY1MDMwMTRCQkY5NEQxRkE2NzQ5MUJCNDEwQjc0QjM5OTc1MEZFMTc2RTU1RkRCRUI1RUYwNTc0NgorNjMxNkMxMzAyMkU1RjBGNjgxQkUwQjQ4REE1N0EwOEI5QzU3OEFFMzYyNzU4QTVBRkI3QUU5NUMxODBBM0E2RQorQkQ2MzM4ODEwN0IwNTgxRDJFRjYwMTFFQzNFNkEwRjMzMTREMkQ1RTBDREFGRjM5QkQ3Q0ExNkQ3MTI3QjZENworQkZFMjYyMkU5MDM2QTk3QzEzQjg4N0E4MDhBNjk3NTYzRUUzNzVFOEJGMzUxODQ2OTQxMjNBNzMxMTAwNEYxNAorRkI5MjNEMzE2MkNGNkUxOEQ0MTAxRTNEMDNGQzQ5NkI0OTQxQjI0MDg1NTgzREFDMTI0RTEzMTg1RjM0QkMxNgorQ0I1MzU3MDMxQTJFRTdENUNGMDg1QTA2QUVEMzhEMjQ2NTUzRUUyMDBEMTZGODMwNjlGNkQ1Q0JCMjU0Qjg4MgorQzFFMURDMDYzOUM3ODM4RTgyNzI4MThFMzFGQzQyOTU4RUJDOTYxMEEwMkJDNzZDNzAyRjNBQUU1RkQ5NjVCMAorQUJEQzdFNEQ3NkFBMzNFRDJCMjY3MkMwMDE0NkNCODRFMzM2QzgxNzFERjQ0RkQwMzc2OEE0MUJBMjBFNzRDNAorRTFDOEE0QjY5ODNEODc3QzRDRDU3NDY1MkJDMTAxQ0RFRjY4RkU3RkRGRDk4OTAxNjNFOTk5MUJCQ0I5OTAwRAorRUIzOEMwRUVBMDI3QjFGRjFFREU4RkFGNzQyOTgwMjVENEU5ODBBQUY3OEYwRjIxNUY4QTc5Q0MyRkUwMUFBMAorQjJGREZCM0I2MjUyNEU4NUU1N0IwOTg0NEFBQzRFRTU0NTdFQkI2RTk0QjI2MTg3RjZEOUMwQ0RCNDBEQTY2QgorNjcxMjRCQUUxOTRFRkFFMERBQ0ZDMTUxQjREQ0ZCRTYyRURBQUFGNzNEM0MzNTQwNkI0REM2M0E1MkY2NDBDMAorMUJCNjlFNERBRjYyQjU0QTQ1NUIwOEMxM0VFMDkwNjk1RTI5OEY3Mjk4RDYwMDgxQkIxODA3MjVFMjY1RTIzNAorNjI5ODc5N0RERTVCNzI5QkE2MkVBMTQ3NjE3MUQzNzFGNDQxQzhFODEyQTc4QzA3RTkzQkU3QjU0NTk1ODczQworNDE4MDJEMDM1NzQ2Qjk5MTMxNDZCODkwMEEwQjZBNzJENDU0OTVFOTc0N0M2MTc0RjQyNUYwRDU0MUM0Qjk2NQorQzkzREMxOUI3REQyMzAyODI0NzUwMEQ0RkM2QjU2NDgzMzExQ0ZCRTJFM0VENzAwOUUwQkI0NDhGNDI2MDQyOQorMUI2RTdGN0Y1MUI4RUEyQ0U2OTBGRUI5RTM5OUMwNDhCOEE0NEJENjQyNzI2NkE1MzE0MTk5OTVGNjNDQTc2MworNkYzMzQ3MjkzODMxN0M4QjRERjRBMDgyODgyMzlEQzVDQUIwOENGMkI2ODVFMDZDMDI1QTA4MEY5QUU4NTlERAorOTJBQzY4NkU1QTY3NTBFMTQxNkNBRjI2OTgwOEMyQjQxNDU2Qjg1RTkwMTgyQURGN0M0OUVDMjg5QTU4NEExMworOEY0NDIzRTA1NUZCQTkyQ0FEQTU3QUVFQ0YwQjA4MEY1ODhFNDY3QTU2QzBENUJGM0U1NDc0QzRBRTcyQzlERQorN0U1OENENzAxOUExMjA5ODVDQTc0NjZFN0ZCREExQTNCQkRBNTg1MUYyOUZEOUZDRUU2RDRDN0U4M0RFOEQwMQorMzA3MTdEMUE4N0Q5QjI1MTlGODMyOTVEQjhEMTI5RTlGRTZGNjNFRkE1NjJGMjg4N0VBQjIwMjUxQjM4RjhFMgorRkUzQjQyNkY2QjZFM0Y5REQxODA0NDc4NEQwMzFGRTU1OUZGNTRGQ0U2MzhGQkM0RTQzMUE1RDJCMUZCNDU5OAorMDU5OUVCMjEwMjUxMjdFRTU5ODRFNEI5NTQ3QzkxNzQ5NDlCOEJEMjk4ODUxRkYyMjc5RjQ5RERCNjBDRDZCQgorQzc5MUZENUM5OEM5RjEwMTA3M0NBRjQzMTgwN0FBRTNFRkFGQjYyQzI2RjIwQjc0NEJCOUMyQUIyQ0E3Njg1QgorRUE5MzlFNzlBQjM0M0Y3Qzc2ODJFNzA0OUVFNDg0MDI2QTg3NDIyNTI0RDdGMDVFNzQ5NDZFRjNFQTNEMzEzOAorMTRBQTRENUI4NDg4OEYwMzI0QkI2OTNEQ0Q5RDQ4OEYxMUQ5QUU5MDMzQjk1NDIyMjZEMDlGM0UyMTJBRERDNworRUVERjBFNjk1RDVGRkE2QkI4NzM2OTI0MjcxQkM2QzBFQzk5MUUxMjNGMkVGQjQyQ0Q0NzM4QzA4OTYyNjU4NQorRDZEOUM4MUE1QjYwMDk4NkQzNEY1NzQ2RjU4QkQ0QTNDNjAxODc4NkY4M0FEREU4MEQ0QUFEQUM3NEFDNUQ1NworOTJCM0IyQUVBOEEyM0NENDZEOTZDNzMyNTM0MzA1NTBERTZBOUQzODMxOEQxOTkyNDE3MkY3NTNBOTI1ODUyQworRTI1NEUyOTFDNzVEMkEyRkFGODhFOEIxRUJDOTMzOENENDYzMzg5MUMyNzRBODkxQzM0QkRCMzZGMTFCNDUzOQorMDlCM0RGRkJBN0M4RjY5RjEzMDc4MkIyQzUyQkM0RkZENzNBRkI4NUU5Qjg5RDc3QzBFMjgxNjU2RTYwREU0NgorOTZBRDA0MDNFNUZBMjgwQjUxMjUzODY5NzZFMTkzMUFCRjkyODY5QjlGRDM1RkFFOENCRDhDODFDNjc2MUEwQQorQTU4QkVENDQ4QzgzRDU3ODQxNUM5RjNDNjY1MUVGRjA5RjA2RDMyMzIwNDhFREYxMkJBQ0ZCMkM3OUQ4OEM1RQorMjY2QTNBRTY4ODlDMTg4QjlDMEFBMkIwODUwNzk2MEY3NzlCNERENzgwQzFCRkQ0ODk3QjVDOUQ1NEFGQTgwMQorODIxQzRCQTZFMDM4OENBM0E3QjQ2Nzk0MjVDNzc3QjM5MDUxOEYxNjlDRjQ2Mzk3NjAzOUJGN0ZBMkVCNjVGNgorQzA0MzBBQzQxQzQ0OUI2Qjg2QkZFQUExRkIzMTE0MUQ3OTBGM0FFRDFCQTJBOTk2RDA5REUyQzI1NjJCREQ1RAorNUNGQTYyOEE5Njg5MUFFRDg2MTk2MDZBNTRCN0MyOUY5MjkyMkY5NTIzQ0FERjQ1NjYzMkU3NTgzREUzMzI4MgorQjQ1MDI5OEFGRTAyQTVGRjQ0QjAzNzUzRTY5RDY4ODA0OTM3OUE1OEQ5RDY0Q0Y1NEQ4MzhGM0FEQkMyRTE4OQorRkU5NTMzRkE0Q0ZBQTczOTk4NERGQzkyQjI0MkJEQzI3QTlCMkQ3RUE1QjdEQTJCRDhFNjhGNTZEM0Y5QzUwRgorMTc4N0RFM0RDNkE1NjNFMDI2RTBGODI1RUI0NEU5NEFFMjBBMTY2MTI2QzIzRDZDMUM1MDg0NUQ2OUNFREJGRQorRTVCRjhCQjFDRDY5QURCODcxOUUwRDMyMzI0OEExNkJENTQ3NEVCODg2NkIyN0QwNzYzMTlFMkREOTRFMjJGNgorQjU3NzVFMUMxNzMwQTIzMERGNEE5QjZFNzU1RkU5QURFMkMyRTUyMDUwODEyNTY2NTQ4QUI4RDIzRTNGQTJEQworMEQ3RDQwRDQxRTdGRDQ3OTEzOUM1MThDNjI3NTVBQTdBQjg0OTE0N0E5REEwNjAyNDhBQzcwOUJDOUFGNTM5NworRTRDMjQzNkRFNDBEQ0M0REI0NUYyNUE2RjEzQTlDRUYxNjc4NDRERUEzOTZBRjdGMjc2RjNFNDA2NDI5QkY0RAorNzdCNTI3Mjc2MjBEMUVERUI0OThBQUFGODI4ODJBNjRBNTM2QjI3NDI4REFEMDdCNjVFNEY2NzIwNEY1RjZFQQorNjQwQkUyREQxQTRCMEMzMjE5RTBBNDA3OEY0RTcyNEM4N0VDMDNGNDA2ODc0NTdGRTBBMzNCQzdFRDY2OEUwQworMUFERURDQjcxMUNFNEI2QzNGRjZDNkI3OTVDOEQ5NEFCMjEyNThCODBFQkUwN0Q1QzY3NTBDMzExNDFERkNDRQorRDA0MEZDMEFCQkEyRjcwRkNFNjUyREEyQjA1NDY2N0FFQ0NCQ0ZGMkNFNDQwNjdDNTlEOUI1MTlERjhEMEJDMworNjAxREYxQzY5RTNDNTI3RDNEQTE0RTMwMEFCMTZERTM5NEMzQjY4MzQyMjRFNkFCRDBEM0M1RDY5Q0RGM0JFRAorMEYxRDI1QjQwRTQzNDYxQTQxOUUwOUVCRTdDMDY0NDMxRTFBNjVFMzgzODFDM0I0OTlEQzE0QTVFQzkxNDExNQorMEVGRkEyQTBEM0UzNDEwQzA0QkE5NDY4ODhDQ0YzNEI5RTE0Q0EzNEE5QUVERDdFRTMzQTIxNjE2MjIyRTFCRgorRTQ1MjEyNEY4Mzg1RUI5MUNCM0IxNTBDMDlDQUJDODQ0QjNBRTRBNkYxNjBBNzY0MDJGRUZGODgxNDNCOEVCOAorNzg2MTkxMUY4MTNCOUY0RkJBQzM5NkFBMUEwMDQ0NTgzQjYxMDNDRDZDMDZEODM1MDY3RkI0QTgwNUYwMTJGNgorOEI0REQzQTk0OTk4REEyMTc3NEEyRjM2N0JGMzVEQzhERTM5NkYyNzQ0QUE3NTVGQTFFOUNDOTI0RDU1OTM2RAorRkI1ODE2RjA0RDY5MEM3M0Y5QTY3NDVBMzFGNDRBREM2QUQ4NEU1RUVEMUZFRjhDNzlGQUY4ODcyNTRCOUI0MworMUQ3RTdEOTM2RUE3M0E2QzE3RkMyMDZDREYzODFCNDNDRUVBRDE2MzcyNDcyRTE1NTdDMzMxQkQ4NEFDMzE0RQorMEYwREQwNjhDRjU2MTQ4NTUzMDIwNzNDMjlEODI3RDI1QUEyOEFGNEVEQTVBREE1MUU3QTQxRDgyQUU4QzU0MQorRkZCRDUxMDcwQkUxMjIzQkM0NjkyODRCQzcyMDJERDA1MTFCQjM1MTg3Q0JGNTE2MTlGRjZBQzJDNEVERkUzRAorNTlDRkU3MDhDNENDRUYxNDc3NzI4OTA5ODEyMDIwNzQ3RkNCMjA1NDIxODdENjYzNTM4Q0I0NDk5RTBGMUU3OAorRTdBODU1RDFCOThDQzYwRUU4RTk0NDg0MDY3Q0I3MjZFOTdGRUY2QjczODA2REE2QUUwM0EwM0E5OTlDRDNDMAorNDQ4QkZBNUQ1RDg0RDJDQTJGQzNGRjhCOUIwQzQ0RUE2MzAxNTM2RDQ2ODA2NjI2MzcyNjU4MUQ2N0FBMjQ3RgorMjQ3NEVDOTgxOERDOTA0QjUwQTZCMzdDQ0IwNTREMkJBNDNCRTE2NEQ1NkE1MkQyNzdFQ0ZGQkQ4OUE5OTk2RAorQURDOURGRUY0MjA2QkIxNkIxRDMwRjU3MjI5RTE3QjIyRUNENTY5Q0M1MTg0Qjg1NjAxQjhENDExNEIxQ0RGMworMTkxMDQwNTlCRjQ0OEQ3Nzg0QUQ4NkE0MzJBQ0I5RTlDQTY3RDFGN0UyRTNBRDFDQjQ0NDRCRERCQ0Q0MkY3MAorOEIwQkVGOTUwMjE5RjY4Q0E4NjlENEY5MTU0QUUwRDk4QTU2MkVDNzVCREU5RkJCOUVERjRCRDMyMTU0NDE1MQorOTE4QTM5RDEwNUE4MTI2NjJCNEUxRDNCQTU5RUI5ODBBRDY4N0YzMDBFRTdCNDg2NEZCNjlENkJCRjlGQjFBMAorMjNDOURFNUVCMjlBMkM2N0JENDFBNjUxRDM3RkFDMUVBMjNGREQxQTZBMDNDMkRGRkY3QjhCMDM1MjI3M0ZGQQorMDBGNzE4Q0VBNERDQTQyOTAzRjg4RjM0MUYxOUUxNkMyQkUxQTQ5MDczRjY3Mjk3MDIwNjM4MUI0NTYwQjcwMQorMjE2MTRFQTA5NEMzQjI0NDdGRTgzRjQ2MDg2N0E0MzJBMTY2NUFDOEE0MUUwOTlCNjNBNTQ5QjdBQ0Q1RjQ1MQorRDQ5NTBCNkVEMDZFQTE0MjBENjc5NjE2RDMyOTBDQUE4NTMwRTgzRURFOTU4MjZCMUZCQkYyMEUzOTM1RTg2MQorRTM2REYyMDU1MEYyMEI5N0Q2MDU1QjcwMkQ4OTdBRUQyMEM5NzBFQkE0Mjg3RUMxNEI5MzNCRDMzNjAzMjBCMgorRDM5MTQ3RTZDMzdDRkQ3RTA0MzREMTYzRDFEQUNDOEQyRDNCQkFEQzFFMDY0MDc2RjBCN0Y0QzJFMTEzQzk5QgorMzYyRjlBNkEyNDFBQ0EyN0JGMDAwMENCRjc5NkMwOTlGNTYwOTdEQzg4NzI1RDZCNzQ3MUQ4NDBDNjY0MTM5NAorMTkzRDk5NEI3QjE2RkY5M0VEOTYzMjI3NjZGQzlGRUUyNDM0QkZEREZGNUM1Q0NDRDJGN0RGMzBFNDk0MkRFQworOEFGNjJBMTRDQUU1NjY3OTkzNjY1MEU4MTQwQUNBQkZDMDgxNkM3MkFBMjkyMjNBQzZFQTgxMENBMjI2MjMxNgorNEU3QUYyNjQyOURBOEU3QThDMEM5Qzc2RDU0REU5ODE1MEQ5NEEyNEE0NEUxOUM4QzMzRkFEQzY5QkMxNDZCOAorMUEwQzRFNjc2QzM4MzVCMUM0MzgxN0RCMzUxM0YyMzY2RTIxMDU1MjdDRDJBRjVCRDFEMDY4MjEyOTJCQ0Q5MQorOTNDQUJFNkY2RTRGRjM4MUQzNTQ5MkU2RDgzQzIxNjQ1NjUwRTUyRUFCMUQyQzJFMzk2MjY0QkIzNzIxQUVFMworQUREOTNCMzE4Mzk2MUIxRjEzODJDRTg5NkU0MzI0RDBFMTEzRDE0MjdEQ0ExREZGMjNFNzQ3NUQzMUE4NjZENworODU0QkYwQjZBRjZFN0U0OUNGQUVGNUY3NUNEOTJDM0VEMTIzQjNDRTZFRDlCMTY3M0FCQzVGNzQ4MjlCMEMxNworNUIzMEI1OUFFQkZBQTRGOTI1RDc5MEE5NjA4OTAwRDA1RDMzMjIwNjMzODg1MjUxNjgxN0NFQTA1MjkyNTRDMAorRDA5RjdDRTE0MzFFMjc0NjlDMTREQjZERjc2MzM3MEZCRjhGOUFFRDNENTMxNUYxQzQ2M0Q5NjdDQzI2QTc1RAorQjFEM0RGRDVCNUMzMTYzMzA0RDJDNUMwNUUxRTlERjUxQjJDRTFFMDJBNDJFMjgxOTUzNDlDQ0RFQ0Y4QTc5OAorOTQ5QjQ5NjkxMzEyQkYwQzJBNkI4NzZCQTQ3MEI0QTY4N0IzMDI2MzlCQUVGQjRBRjg5NjA5OEVBRjE2OTY0NAorREVCQkJCNzkwOEY2QjJDQjdCNEI5MEIzQkFDMUI4OENFMEE2OEZCMjEwNDExQkU1NURBOUZFQTY5MzZFOUJBMworRkNEMTAxODFEMjA5QjU0NkQ4NDg3NkFFRDkzNzQwMTFDQUFFQkFGODFGM0YyNjdFRTRCMDA2Mjc0RDM5RTI3QgorRjRDQUQ1RTc2RTc1M0Q0QjIzOUNEQjA5NjhGMjgyNkEwQUQ0MENDODRFNDhCNUQyMzc4M0FCRjM3NDMxNUY0MQorRkVCMzQwRTc3REE2QkMzMEUxM0IyODBGN0IyMUIyRDE1NDM0OThFMTA3QzYyNURCNEVENzI5QTYzMUQ0MTk0OAorQ0VGQzg0OTI3MjA3RkY3NzIzNUZDQzNGNzJFMkJFNzc5QjZCNjBGRkRBMzhCMDVBMTRFQkZGMDQzNjcwODQ4NQorQTExRUI2QTdFQjQxNDk5NEZDNjM2RTE4Q0E1Q0ZGNDMyRDRCNzgzNUNEMzQ3MjAxMEZGRTIyNkIxNzhEQUQ0NgorNkEwQjBFMkFDODMyRDJEMzJCNTk5NEIyMTI3MEZFQUI2MkY5NUJDRjJGODcwRUFBNzlBOUQ1RjM0ODBFOEY0RAorNjhFQkE0MjY1Q0FCNTU2MzI5NUFERjFENTRERERDOTA3MTY5MUQ5OTZENUQzNEMzMDhGOUU4QzQ0MDgzMTc5OAorQjk2Q0U5MkFFMTcxMUNGRUVBRjQ1RkJDNjNGNEFCRDQ2NkJDRUYyMjk5MjA5NDczMjM4RjMwMkIzQjQ0MUNEOAorNDY0MDk1NkVCM0E2OTc2RjQyNUZERDhBMTE1RUEwMEZCQzQyMEY0OUYwMEM1RkIyMzcwMTNGNTAyQUExQzA0NgorNUQwNEFEMjkxREJBNUVDRjFDQkFENTY4MUZGQzg5MDQ1QkQ1NUJBOTUxREZBN0I1NDA3QzY4OEZCMEM0MjI2MgorN0FGNzJDRjUzQzMxMDdGNDJDMzRGRDk2OEEwQjJDNEYzMDc3MUEyREY2ODgwMzdCNDVBMDQ4OEJEODIzQkM0QgorMDM0OEVEN0RGRkU3MTYxMDYwRERFMTExN0ZCOEI3RDg4ODNEQjNBRkI0QzBFN0ZBQzA5NTg2OUE1OTNDQThEMAorRDI4NTFBNjE0M0ZGQ0IzRERGQjc4QTRDNUIyNzk1QTdEM0FCMTM1NUExQ0E4MTEzM0NBN0NBQzc4RjExMjc1OQorMTNFN0VBMTVDNkMwMzk5REM2NTdCMkJFNjA3MzEwNzQ3MDcwRkY4QzNBNzI4OEMzNTZFMjhFQURCNTNBRUM5QgorNDdEQzk4OTJBQTREOUYzRkU1MzQwODNGMkY3MjU4NzRGMUI2MTBFRjg1RkM2NDYyNzYzQUM0NzYyNDNGNjc0OQorRjI0RDE4REE2MTVGQkEzRTBFN0NBQkMwNTU1QzVBQ0ZBMTkyQzMzNTUxN0VFNTkzRDRGNTcyQjA2OERDMTg3NQorMTZFNzE0M0IxRDI4NkI2RjlFQUVFRjlBRDAzMjM1N0JGNjg2QjM4REZFOTYxNEJFRDg4MEI2MEQ5NTc1NzAxNQorMERBQUUwREI1QTJBRkVEQjc1NjI4REQ2NTMzMkIwRTNFNkVEN0M5RjIxN0QwMEI1RDQ3NDg1MzZDQkEyNjRCOQorRDlBQTZDQjRDMkY5MUMxRjE2RTM4ODExNTVDMTYyQ0U0NUZCM0ZBQUMzNkE4QUUyMzk1MDYyQkE0RUY5ODRCMQorNUJBMzA1NzY4MzU4QkMxMUI4MjQ4MTZEQzc4Qzk1NDQ2REZBQzk2MjM0QUI3RDJDNTBENkMwQjlCRTkwRkUzNgorMUE5N0VERTdGMzgyNzAyRkM2QzIwMUMyM0Q3NDk5RDg4NjQzQzAzNzBEQjhGOEU3NzYyNjk0MjYwQjgxRkUyNgorMkUxMDAyQTlDQUFGOEFDREZEQjZCRUNDOTFCQzM3MkEwNEYwMUUxQTY2QUVBQ0MxNkQ5QkI5NTM3NEQ1RjA1MAorNkQxQzY3REFCREEwM0VFQjIxMTFFNEVFODQ2ODAzNzMxNEY0RjUzRjc4NjgwMDUxMUQwNjc0MjZCRjA5MDgwQgorMTM1RUY5RkIxNEZGQjQ5OTM1Q0EwNTVFREVCOTlERjM2Mjg0QkQ1RjI0RDcyMjRCRTA5MzZFQ0U3Mjc2OThBQworQTdBRTA3QjI5RjNGNzE3RkE0RThGMzFDM0NBOTFEN0YwNDk3QjBCRjREMUExM0IwMjZDQUYyOTkwMjMyNDQ3MQorQUVDRURGRkI5MTEwQjZEM0YxMzVFMDBCMjgwNTRDOTEyMjk3OTk2OEUxMDIxNDFFMUIzNzY0QzRFNzRERTFEQQorMEUyRDA4QjhGRjZBQTAwMDAwRTI5NURFOUIwMDg5MUYwMTY4MjBBOUNFMDkxRjk1OUNFN0ZERDBCNjU2Qzg5QworMDYxOTcxQkNCOUQxMkNDOTkzOEMzMDk3MjI2MjFFMkNDNjk4OEVCOEVFQTM3RDJDODIzN0NFNkQxOTk1QzA3MworMTY4Q0VENkVCNEY0OUZDQkQ5MEQxMUNEMUE0MjQ0MjE0MzE2ODEyNDIxOTg2MTgzOTAyOTlBOEJCNERGQjE0RAorODUyMTk2REVEMTc1MTU3NkI2QTRCMEM0QjA0NDU2MDIxMkJCREI0NEExM0RCRkZFREM1QjU1Q0U5RTgxM0FCNQorRTU5QkI2NDc0Q0I2NDk4Q0YxMzcyQjU0MEJBQjYyQ0RFOUNCNTIyMjIxMzA2OTg0RTRENEE5M0Q2NjE2OEZGQworOTREM0Q3MjJBRUMzM0I5MTg4N0E5MjQzQTVEM0RENkNENzY2NkQ2REMxNENBQjdFQjUwOEMwQjU4MDNBMEY5RAorQkI2QUNCQzJDMzc4QUM1MkRFQkQ1QUZBMUVFQTY4QjIwNzA1MTRBRjhCQThCNDUxMjQ3OTMwRjg4QTA5QzgwNworNzNBQjBFODcyNEU4NjJCNkU5MTUyNjZDMEE3N0NDMDI3NjAyMzE2QzM4QUYwQ0IzRTI2MzEyNzMxMTI1QjUxNgorMENCNzE4MjBEQUUxMDM4RDUyOTgxQjI5ODk4RTE3NUIyMEE3ODBBODIyOEQxNDM4MDg1RUUxMkExNTlDMUVGOQorRTg2RTlEMkM0M0FBNDA5MzZEMEM1RUM5QUM1MkNGQkQyNjZBNTA5RTE1MkYwOEQ2RDlBNEI4MkVDNTcxNEZCOAorMDRBMTAxNDA3MzIwRUU3MzJDMDlCQ0E3Q0I4RTdDNDc2RDVEODlFMDQ2NjkwQjY0NUYxOUI5NzVDMkY3QzFDNgorMUFFREQwNDdBQkQwRDY4NTEyNjNBQTBDMjNCRTUyMUVEMUE5M0I4Qzg5MTRERUM1N0ExMkU2QUY2NjUyQTk1QgorNEI1Rjc0RDMyQTMxRkMwRjA1RUVCMEVGQTU4NDFFNUM0MkFGRjhFQkY0OTYwMDU0QTkzMEYxRTFDOTNGQjFDNworOThBRTYzQjFBNzlEMDQ3ODBEQkY0ODBCREEyQ0YxMzE2NUQ1QTM1NEQ4Q0YwNTFBMkVGQzQ0MjA2RkFDOTM0MQorRDQzQUM2MDFERjgwQTgwRUVDOTAwN0FEMDg2MjE4NjEzOUI5Rjk0QkZFQUQ1QjBBMDQ1N0JCOEQ3QjYwNkRCQworNDE5MjI1NzQzODE3OTU3QUI0NEI1NjkxQ0Q2RUE4M0VCRjg3OUQyMzc1MTYKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKK2NsZWFydG9tYXJrCislJUVuZEZvbnQgCislJUJlZ2luRm9udDogQ01DU0MxMAorJSFQUy1BZG9iZUZvbnQtMS4xOiBDTUNTQzEwIDEuMAorJSVDcmVhdGlvbkRhdGU6IDE5OTEgQXVnIDE4IDE3OjQ2OjQ5CislIENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKzExIGRpY3QgYmVnaW4KKy9Gb250SW5mbyA3IGRpY3QgZHVwIGJlZ2luCisvdmVyc2lvbiAoMS4wKSByZWFkb25seSBkZWYKKy9Ob3RpY2UgKENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZCkgcmVhZG9ubHkgZGVmCisvRnVsbE5hbWUgKENNQ1NDMTApIHJlYWRvbmx5IGRlZgorL0ZhbWlseU5hbWUgKENvbXB1dGVyIE1vZGVybikgcmVhZG9ubHkgZGVmCisvV2VpZ2h0IChNZWRpdW0pIHJlYWRvbmx5IGRlZgorL0l0YWxpY0FuZ2xlIDAgZGVmCisvaXNGaXhlZFBpdGNoIGZhbHNlIGRlZgorZW5kIHJlYWRvbmx5IGRlZgorL0ZvbnROYW1lIC9DTUNTQzEwIGRlZgorL1BhaW50VHlwZSAwIGRlZgorL0ZvbnRUeXBlIDEgZGVmCisvRm9udE1hdHJpeCBbMC4wMDEgMCAwIDAuMDAxIDAgMF0gcmVhZG9ubHkgZGVmCisvRW5jb2RpbmcgMjU2IGFycmF5CiswIDEgMjU1IHsxIGluZGV4IGV4Y2ggLy5ub3RkZWYgcHV0fSBmb3IKK2R1cCAwIC8ubm90ZGVmIHB1dAorcmVhZG9ubHkgZGVmCisvRm9udEJCb3h7MTQgLTI1MCAxMDc3IDc1MH1yZWFkb25seSBkZWYKKy9VbmlxdWVJRCA1MDAwNzcyIGRlZgorY3VycmVudGRpY3QgZW5kCitjdXJyZW50ZmlsZSBlZXhlYworRDlENjZGNjMzQjg0NkE5N0I2ODZBOTdFNDVBM0QwQUEwNTI5NzMxQzk5QTc4NENDQkU4NUI0OTkzQjJFRUJERQorM0IxMkQ0NzJCN0NGNTQ2NTFFRjIxMTg1MTE2QTY5QUIxMDk2RUQ0QkFEMkY2NDY2MzVFMDE5QjY0MTdDQzc3QgorNTMyRjg1RDgxMUM3MEQxNDI5QTE5QTUzMDdFRjYzRUI1QzVFMDJDODlGQzZDMjBGNkQ5RDg5RTdEOTFGRTQ3MAorQjcyQkVGREEyM0Y1REY3NkJFMDVBRjRDRTkzMTM3QTIxOUVEOEEwNEE5RDdENkZERjM3RTZCN0ZDREUwRDkwQgorOTg2NDIzRTU5NjBBNUQ5RkJCNEM5NTY1NTZFOERGOTBDQkZBRUM0NzZGQTM2RkQ5QTVDODE3NUM5QUY1MTNGRQorRDkxOUMyREREMjZCREMwRDk5Mzk4QjlGNEQwM0Q1OTkzREZDMDkzMDI5Nzg2NkUxQ0QwQTMwRUI3NjAyOTMzNworOTAwRUNGQjEzOTBDQTVDMEMzQTA0NTI4MDQ0RjI2NkJBMTdCRTQ4N0M3OUI5NEZBQzZENjQ4NDY4NEM1QkZFQQorODdCQ0NDNzdENDBBRDExNTUyMDM1RTk1RTMwMDcxMjY0MThFRDQ5QjY4NDY4QjM4QTE0RTg4RTY4QTI2N0I5OAorMDc2RjFDOTc2OUE1QUZCQzI4NUU1QjE1OEVBQzlGOTI2RjFENkMwQjhGMUQ1N0Q5QzMxRDI1QUUyNzEyMzUxOAorOUQyQ0Q5MkU1Njg5RTAyMTMwODlCRDI2OERBNUU0NzUyNUNCOEVBQkFBNEI3OEExNUFFQTM0NzA1ODg5QUIzQQorRkZCODk1M0I1QjM0ODJFNTJCRkEwOTQwNjMwQURGOEMwQUMyMTc3RDkwNzMyNDI5OUVFOTgwRTg1MEYyMDNDRAorQjYyNzk2MkY0M0Q1QTY3OEM0NDI0M0NERTk3ODUzQkRDNkFCNDVGRDVDMDlBRDI3NERBRjg5OTI5RjU4M0NDOQorQ0NDMjRCREZDNjhCOTIxMTEwNTVBQkE1RjI2RDJEQzY3QzcwOTA2RjcxQzI5NTc3MDFENjVBRTc0NkE2MEMzMAorNDBFNkNCMjRCOTdGQ0RBRDA0ODdBRTM4QTIwMUZCRjBFNDFCQUJEMjE4MTk4MUE3MTk0MEYxRTcwN0Y5MUU1RAorQzhDQTUwQ0IxNkQ4NzAyRDE4OEU1NkQwMTREOTJGNzZDRTBCNTJBQkRCOTExMEUzMjQzOEQyQkJGM0U2QTQwQgorN0IwMDVGMTBCQjQzNzgxMkNBQzZFRDI5OTZGNzYwNkRDOTYyQzRGREUyMDdGRjMyMjc4MkMzNDNERjQ0Q0VDNQorRkYwNkE1NUM2MzBDMjBFOUFFMUIwRDFDNTY3Mzc1M0M0M0JBMDc2N0Q2NUQxQjQ1MUNDNjM4MEQ4QkIzQzREQworODFFOEZEOEFBNzlCRTk5MzIxODY4NkYyOUQzQ0Q5MjU1NjZERDU4N0Y1NDFBMERBMUIxQ0MzQkNFQTJFNkM3RAorNUUxMDE2RjY5MTdBODcxRjFCQkFEOTZBRjlFODY3NzM1MDE3MTE5QTM4MUZDRjMzRUIyRDNFMUU3MDkzRkQ5MAorQ0RCMENFRDQ4MThDRkQ5RTIwMUEwMzQzMENFQzcxMzYyMEJFMEQzMjU0MTU4OTMxRkI2NTdDNjg3N0MxQjNEMgorMjQwMzBGMzc3ODIwREE1OEY0Qjk1Q0ZFNjQ1MTA5RjNGMUI4MERCNUZBQ0ZEN0QwNUFFMjkwOUVFRkNGOTVBRAorOUNCMjg2QzhCNkMwNzVDQTIyNjdDMTAxQjczNjEzOTg2MzE4NkMxOTNFMzEwODVFN0M5RkQ4OEVGOEJCRUNFMworOTMzNTQyQzg1MzA5MDEzMzI1QjRCQkZFOUE1QjYwNjc4MEM4NTgwQUJEQTJGNUQwMDY0RUJGQzIzOTM5QjMwNworMDg1NjhDM0I3RjVGMDUzQkYzNjdERUJBMzQ5RkFCQjlGNzYwQzQ0RDEwMEJERUVGQkIwMUYyN0JGQzYxRkNENworNUVBQzk3NkNCMjRENjc3NjNDOENCQzBDQjQzQjg3MkU2OEEwRkFDMTEyN0ZDNjVERTFENjEzMjIzRjk0N0Q4OQorQUFGQjRGQ0Q2NzYzNTlGN0MzQTBFRTBCRTJCRjhBOTEyRTJFNENFNThCNzM1N0EwNUNCNzVDRkI2MkNENUY5QgorOUEwRkZEMUJDQ0VBODc3RTJDMjAyMzFDRkMwRjdFMzFGNTM2MjIzMTQ2Rjk1NUQzNDI3OTA4Njg3ODc0ODc3MgorMEM5RDE1OEUzQjZDQTkyRUE1QzM1OUM2MjBGREJCREE0MjFCMzUxMEZFRTFEMTE4MDI0NzM1RTIxM0I4RjAzRgorQjkxNjU4MkRCM0I1NkQ5RTcwNEZGNTVGNjFBRTEyQjgwMDBBQkI3QzJFRDc4MTk3OEEzMUVFMzBDMTY1ODEyOAorRjE4QTRCOTJCRDlDRkQxQUU1RDdCRThFMDg0OUFGM0UxQjc2MjAyOEJEMUQxQTU3RUM3RUY2QkIzRUYzNDJBOQorODJFRTBEMTY3MjQ5MjhFM0ExQkJFREUwNUZDOTY3QUIzQzUxMTU3ODQzNUQwRDQ5NThFQkZBMUZDMzJDNkQyQQorNUUxQzdFNjJCOEY0QkZEODJDQzIzNDBDOTU3OTlGNTdENDg2RTQ5MjlGMDdDQkQxQzg2REIyMDQxNTZFMzQ0QworNzRCMTkxRTkxMUU5NDc2NDg2Q0NFNEQyRjBERjJBNzlFRDhGODYyM0RCMjE4Q0UzRThBRkQ0QjQyQUY3RkRENAorRUZDM0E3MTQ2ODE2NzQzREE4RUMzNEU5NTU4NjFDQ0RBMjJBRUNGMEM3NEQ3NEZBNjQwMjUwM0EyMDg4QzU2NAorRDQ0QTg3MjQ1RjI0NkRERDg0N0FCNTdEMkFDOEFCRkY3MDQ1MzQxQzZEMDQ2MDQ1NTE2QjJFMTBCODVFMDYzNworODE0RTEzNUUxM0JFMDQzOTY0NEI4RkY4QTQ2NDIzRUFBNkNBMzUwNUY5MTUyQzE5Q0UwRkVBRUI5MjQyMDM3RgorQUIyNDYyQTg3RUYyNzQzNTZCNUE0RjgzNzU0MjM3OEM2MUVBOTMyRUNGQjYzNUU0RjY5NjI4RUIwQjFDMjBBOQorMDk1MTA3RTBGRTQ2NTA1N0JEOTVDMEVDOENFQUZGRjEzRjNFRjVEOTc1OEU4QkRBMUQ1NUM4NkEyQzNENTk4NQorMUQzQjY3RThCMUY1RjkzQzRDRkNDNzVBMEJDOEFDRTZDNzg1NTc2NzUyM0RENkM3OUUyNTNERkMyRDQ5RUMzOAorQjI0QUIxQjdEMkQwODE2NTQyQUFBNDA4MTc2QzQ4NUU3QzQ5MENGMThGOEM3M0NGQzgyRTQ0OUUwOTc2RDY3MQorOTUwQzBDMzUxNzA1MTRBRDYyMjdBMzEyQkVBODUxOTgyNjUwNDk4REU1MzU5NDkzNzhFQ0YzQUU3MkEwRTc2MQorN0NDNjU2NDhEMzNDNUZGREI0OEM0OUFGMjdFOUM3RThEOEMyMkVDNDkxMTk3RjEzODQ2OTgzOTdGMDI0RUUzMgorMDFBOTdGNzA3NTlCNjlBRUIxMzhDRTEyRUE3QzRFMEYxMkIzNURBOEI3MjNDNDNBNTI1RTQ2MTg4NzIzNEM2NworMjQzQ0UzOTM3MkM0RUFCQ0I2QjBBMzUyMUM3REI2MDE3MDg4NDRDNjA2MkJDOUE5MzAyNDM5NUIxNTUxOUJFQgorQzU2Q0VEQjc4OThBREY5MkE5RDY3NTc4OERFM0I1MEE5NzIyNEMxOTQ3NTY1MDhFNUM1QTRFMEI5NkQ2MzcyRQorRjI3QUFFMzRBM0YxQkEzMzg5QTIyMkI1MUMyQTEzNzMxMzUxNDNCODBCNzFFQjRCNDJBQjFGMDlGNjBBQkJDMgorRUJBOTc0MDBBNDM5OEJDREFFOTlDODVGMEE5QzAzMzY2RTkxRjFBMTlGQzIyNjcwRDYwOEYxMDk3QUZGNTAyRgorRUZGMzA3NDhCNTc4RkQ4RDc1MEQyOEM2MEM0MjUwODk2Qjg3RTg0MUFBQkU2RDQ0MkZERTQ1ODZCOTBGRDkwNQorRkMzRDE5QzAwREI0REI2NzE5RDU4Rjc1MDgxMUI3RUIzRDVFQzQwQjY5RTY2Q0Q3RjVCQ0M0MTMxQjlDQTE5NAorQjI3REJCN0EzMEJCNTEyMUI3OTUwRUM2QjQ1M0ZDRDUzNTNGNzM0RkFBMTU3RDFGODVCNTA4Qjc1MDg3RUUyQQorRUFFOUFDRTgyQ0IzQTdEN0VDQjNEQkRENDI2M0EwMUQxMjhEODNCMjNEM0JFOTg4NjVDOTBENDdDNzhFMEUwNQorQzI4Q0Y3OTNGRjc1NkRFOTE2ODMzNzBFODFDRjdDMzZDNThDRUYxOUJBQUYzNkEyMDY2NEUwRkYyREM3NENENworQTYyNzFBNDZGQzM4NDhEQjU4OUM1MEE3MTVCRkQ1MzcxNkMwQjQ2MTQ2Q0IyOTIwRERDQzUyNUJGODNENzY2QworMUU0NUY2NjkwQUIyOEM0NUNFRkY0QkY0MjZFNjdCODJFN0NDRUFDNkExNjU5NzdCQTM3NUQxNEVERTIwNjA2NworNTY0OTdCN0UyRDFDODFBQkJGN0E1MTgwMDY3RjFBNjk4RERCRDlFNDIzRUQ2N0I3MkVDRENDMkFCN0RBRjk1MAorMzM4NUFBQTQzODQ0OTBFMzY5QzlGRkNEOEY0OTFFQjM3MkE4MDQ4NURGNTdBQkVFMjk5NUJBNTlDMzk3QTg1OAorMzkzMThDNzYzOEI1MTFBQTlBNDBBOEFENjlEMDUzQThCMDVFM0RERjkzRkI4NzZGQTUwMDdFRkY5MjBDMzcwQworMzY4QTI2NTdDNzhGNUFERDgzODkwQjRGNjg5MEM0QkREMjA0MTk1MUQ1ODAyMUY1QUY0Q0I1Q0Y1RjQzMkU1OQorQzhBNkY1OTcxRDM1NDcyMEVFRDgzNTJCMUZFMzJCQ0QyMzFEMzNCQzA5MEJGN0UxRDczMTU3NEM2OEZCOENEMQorRkY5QTdGRkQ3MEUzOTEyQjJBMTE4MUJEQ0FGOTg5QzlDRDdGQjNCMzBFRjJEODI4MEM3RDNEMjAyQTc0NDNCRgorRjhFNDREMjFDQkZENzI2NzFERjBENTdBQkQxNjVBOUI0QTkyNUUxNDY2OUE2QUIwQUEzMzQ2MkVEN0VERTcwRgorRDg4RDRGNDNBQThBOTMyNkM2OUQ5NEE3NkYyMzZGODVEQkRDMTNEQkRFNzVGNTkwMTU1Q0NEQjBDMThFQUE3NAorRUVERUY5NTc3MUNGRjQxMkQzQzlEQUM2NURCMzU3MEQ4MjExQkU5OEMyN0NGMEMyQTUzNjIwMkZDQTU5NDhEOAorN0M4M0VGQjc3NENDMTI2MTk2MkYxQzNDMDU0NjdDMkY4RUEzRThDM0UzQkQ4MkIxRjM5NjM5RENFRTQ2RjZGQgorNzk3MDAyNTdEREI2MTcyMjA2QzZDQ0RCREU4MjI2OEUzQjVFNDBDQjhFMUEzM0U3Qzg3RjM4NjA4NkEzQjAxNQorMTE0NDMzNTIyRjlEMENFMzQzRjFDN0NDNkUxODhBMjlGQjkzQzJEMjQ2NjcwRDJGOTJFRkM2ODE3OEQzNUVEQQorQkIyQTRCQTgzNTVDRUNCQzk3MjU0RTNDRDUyRjE4OEVBREI1QjU4MjVGQjEwOUU5NEVBQ0VCREI1NTk3RTkzOQorQjdGMkJGNUE1M0JBQ0ZGNkREMjRBQ0NFMkRENDU5N0I3OTIxRUYyMUZGOTExQzQ4MTJDRDIzNkQ5NUM5QUY2OAorN0JERUM1NTRDOEI3NDgzMDFFRjVCRDZCQjlDOENFQTBGMUU1MDU1NzQwMThDQzJENTk5MTc1RTZBOUE3NDI4NQorMUQzREMwRTY4QjA1NzlEOUFBQUQ5OUVCNDlENTE4Njk5OTkwRTBCNENENjVGN0NDOEVBRjc0MTNBREZERjIxOQorQ0VCOEYxMjM0RDcwRjZCNjYwNjRBRDUxOERDREIwQkY5RTkwQUIwRUUwMTZFRDdDMzIzQUNBNDIxNDE2QkM0NworMTAzRDRBQ0VCNDUzQjgzMDJCRTdFODY3OURBQzZGQ0MwQkI2MTREOUUzMTIzNTE5NjRCRkZEM0FEMzU2OTUzRgorNjJGMEI2ODNFQTc1QTgzNDYxRjg4QjQzMDNDMDQ2RURCNTE4RTc0RTA5RDE5MTE1RTYwNjRENjI4NDhGOUUyRQorNDk0MkVFQTdBQjkxREJGQjc2NDQzOTBCRjExQjlFOURCNDlDNDU4NUI2NDI3OTc5RjUyNDQxOUIzRkQyRTdGOAorNzUxNzA1NkM2ODhENUYwNTFDODIxRUIxOTY0MTRFM0Q0ODA0MjA2MTlCMTkxMERENkY3QTEyQjVFMDFDQUIwNgorRkREQUU1NTBDMTFFN0FDMzk1QjFGNDgwQTczNDMwRDk3MTg4OTc3MjExMEE4MDZDQ0E5QjU5MjFCQzM3QUU3QgorOTQxMDVBRjEwMkE3OUUzQ0REMzJDNTY4MjA0M0QzRUZCQUVCREFGN0FFOTIyMjExRTRDNEM2MUQzNzk2NkY1NgorMTdFM0ZEOUE0N0Q0MEZEREM0NUQyMUFERTgwRjY1MzlBRkQ2OUMzQUI4QTAxNzk3RkRCQjlBQzE1MEZERkRBQQorNzM2RjNFNEYxNDk5NTlDNEFFRTRCMEU1MjlGNzcwRTVFN0VGOUQzMEIwNDA5ODkyMDE0MjhGODM5OUUzNjc5QQorMDFENEZDNjFCNkE0ODc5RDQ3NjRCMjNENDI0Q0JBMTEyNTZFRDNDRTA5MEYxRDdGMTMyOEJDQjVGODAwQzcwNQorQTE5QTEyMTJBOTY2MkQ4NjI2OTQyMEI2QzdFNkJCNjM4REFBOTQ2MEZBQjlCQjg1NDVCNDI3QjQxN0ZGMkE4MgorNDg2QzhEMTE0NDY4RkZBMkM0NUI1MzBENTlBRTcyRTdGQTM2NUY0MUFFNTg5RTNFMTk1NzgwOEYwNjVBNEExQworMjQwQUU1NDVBODc2NTIzNTZCRTkwNjgyNzdCQTBCOUU3OURDODQ2OTgxMzlEODM1RjNGNTAwMzQ4MzE3QkI0MworMkM1OUMwQzBGRjdDQUY1Q0M4MzUwRDE1Q0E1OTEwMUEyNUU0RjJFMENCMkRBOEU1QzA5NEI0OTM0QTE4OURCMQorNjI4OENFNDY5QjYwRkRDNTAyODBDMjMyQUU3RUIxRUUxMjNDQTRBQ0NGRjdBRjUxRERFMjU4Q0U1MkVENTlFQgorMzZEQzZDOTQ4OTMxNDY1MDVGM0RBRDhFM0M4MzhFQjNDMTJCMTNCMkFBMzhFN0Y0M0YzMTM5QzVCQzExMzhENAorRjFGMkY1MkI1QUU0NTUwRDNBODIwQkRDQURGMTk4OTA0MERENzdCOEVGNUZDRDNBQzQyQkY4ODRGRDAyQzFERAorMTNCMjQ1NTY3MDFFM0NENDNCNDhDOUZCNDVFNTc1OERDNzU3MUVBNEVEMzQ0MjAyMjMwMEZEQzU1NUE1RTRDNQorMTQ1NkJBRDU5RjBDQjFEMzg5RjE5RTc4NjhBNEZFOTVBQUU3RDQyMzY2NzFCMUU4QjZBOUZGNTE0NzdENjhBMgorQkVGNUJFNEU4NkJFODFGMEE0Qzg3OTQ4REZGMDA2RDFDMkE0N0I2NTBCOUNCRDEyMUQzODgxODA3MjFFNEUxQgorNzkwNjU4MkNFOTFBMkExNjY2MjA4QjUyNzI4RjFCNUU0RTQ5NDNBRERBNUY3QUExQjk0ODdDMjA3Qzg2QzMwRAorOTk3MzMyN0M4RjYwMENBODZEQTg5MkQ3MENGNkU3MzQ1NTJGNkU3NzM0NzNGQjU3MTM3NTlDNzMwMzgwRjRGRgorRTQ0MEU1N0JFNjAwNTBDRjVDMzNCQzFBRTEwMjIwQjBCOTY3M0M3QkRFNEY4QkI1OTZCRDQxQ0E3REMxOUNEQQorRjI3NDY1Qjk0NzY5NjFBQUIzQUNFMjg1NDVGMUQ1REQ4NTVFQjQ0MTc1MUY4MzhFMzU2RDY5RkQxNzMyMDVBNgorQkI1MkJCNjAyMjM5RjYxMkY0NzdERDY0MUE0NEVBMkQ1NTZDQjExMzk4M0EwNDBDRTYxMDQ2QUI3RUI1MjkyNworNjgxQUE0OTYyNjA3MEVCOTFEQTNFMkE0NkZBNEE4RUFDMDQ2OEQ2MkJEQzczQzgyMDczQ0U1RTZCRjBEMUE5MworREM1NEY5MDYwMDJERUEzMkMzOUM3MTNGQUI4RUM3MzQyQ0ZEQjU3NDg1RDNFNDFCN0U1MDY3QTc5NUQ3QUQ0MworNUFBODQyMTBFRjc3QzI5QTMxOTU2MjM3NUExOEYyREVGMUIwQjk5QTJCRDdENTIyMDM3MTA3OEU3NkRDNkQ3RgorQzREMzdBNDg2NTI1QzVEQTY5QjM0QTcxMENDOTM4QUM1M0MxN0Y1RTJCMTcyNkYwRTU1MkYyNTc1MEU5QzFGOQorNUJDMTIyNjBBMEI0MkFGNDcxMDg1MkQ4NTM3RUE3MzAxOTExQUI0MEQ1QURGMjZDNjczOERBMTkyQjEwNThENAorQjYxRkIxQTg0QjEyQkU0OTE2Qjg1REQ2QTcyMUJBQjcwMzUyODdBRjY4RUFBQjhCMEQ1QUVGNDVGMjVFMUUxNQorMDRFOUM5MjEyMzVEMzNBRTU5OTk2REEwM0I0NkE4MUVFNkJGRUU1MTdFNTVGNTRGRTY1RjUwOUREN0YyMzBEQgorNjdENEUyMTI3NTdDMDk5RTZERjk0RTI3RUVBNDFCNTRDQkU3RUVERTc4NTk0QTA3Qzg2QUY4MDk1N0E0QzI0MQorNjdGNUY1RTA0QjBEMTkwRkVFQTQ3NTYyRTk4MzUxQjY3QUIzNUM1MTM2NDlGQzcxNzdDNUVERDlCRURBODQxNgorQjExMkUwQThDMjhBNDVDRjlBMDVDNkJGRDlBMDkzMTM0MTMyNDVGOUQ3OTdDREI1NkU0MDJFRUYwNUM4OEE2MQorOUU1MTA4MzUzMTE1RjE0MTVGRjAxNEUxRTlBM0NBRDYxMDM5MjZCRDQyOTQ1QkUwMUQ4RURGODc1QTk1QUY0QworRTVEQjhBNERGNEIyNUU3RDI1QzNCRjRDRTY5QzE3MUQyMTk3MjYxOUVCOERGQkNBREJFQUY0MjAxRDI5OUFCMworRkM3OUJFNjJBMkU4NTBGNEZCQ0YwNDc3NjM5OEFBMjc2OQorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorY2xlYXJ0b21hcmsKKyUlRW5kRm9udCAKKyUlQmVnaW5Gb250OiBDTVRJMTAKKyUhUFMtQWRvYmVGb250LTEuMTogQ01USTEwIDEuMDBCCislJUNyZWF0aW9uRGF0ZTogMTk5MiBGZWIgMTkgMTk6NTY6MTYKKyUgQ29weXJpZ2h0IChDKSAxOTk3IEFtZXJpY2FuIE1hdGhlbWF0aWNhbCBTb2NpZXR5LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorMTEgZGljdCBiZWdpbgorL0ZvbnRJbmZvIDcgZGljdCBkdXAgYmVnaW4KKy92ZXJzaW9uICgxLjAwQikgcmVhZG9ubHkgZGVmCisvTm90aWNlIChDb3B5cmlnaHQgKEMpIDE5OTcgQW1lcmljYW4gTWF0aGVtYXRpY2FsIFNvY2lldHkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQpIHJlYWRvbmx5IGRlZgorL0Z1bGxOYW1lIChDTVRJMTApIHJlYWRvbmx5IGRlZgorL0ZhbWlseU5hbWUgKENvbXB1dGVyIE1vZGVybikgcmVhZG9ubHkgZGVmCisvV2VpZ2h0IChNZWRpdW0pIHJlYWRvbmx5IGRlZgorL0l0YWxpY0FuZ2xlIC0xNC4wNCBkZWYKKy9pc0ZpeGVkUGl0Y2ggZmFsc2UgZGVmCitlbmQgcmVhZG9ubHkgZGVmCisvRm9udE5hbWUgL0NNVEkxMCBkZWYKKy9QYWludFR5cGUgMCBkZWYKKy9Gb250VHlwZSAxIGRlZgorL0ZvbnRNYXRyaXggWzAuMDAxIDAgMCAwLjAwMSAwIDBdIHJlYWRvbmx5IGRlZgorL0VuY29kaW5nIDI1NiBhcnJheQorMCAxIDI1NSB7MSBpbmRleCBleGNoIC8ubm90ZGVmIHB1dH0gZm9yCitkdXAgMCAvLm5vdGRlZiBwdXQKK3JlYWRvbmx5IGRlZgorL0ZvbnRCQm94ey0xNjMgLTI1MCAxMTQ2IDk2OX1yZWFkb25seSBkZWYKKy9VbmlxdWVJRCA1MDAwODI4IGRlZgorY3VycmVudGRpY3QgZW5kCitjdXJyZW50ZmlsZSBlZXhlYworRDlENjZGNjMzQjg0NkE5N0I2ODZBOTdFNDVBM0QwQUEwNTI5NzMxQzk5QTc4NENDQkU4NUI0OTkzQjJFRUJERQorM0IxMkQ0NzJCN0NGNTQ2NTFFRjIxMTg1MTE2QTY5QUIxMDk2RUQ0QkFEMkY2NDY2MzVFMDE5QjY0MTdDQzc3QgorNTMyRjg1RDgxMUM3MEQxNDI5QTE5QTUzMDdFRjYzRUI1QzVFMDJDODlGQzZDMjBGNkQ5RDg5RTdEOTFGRTQ3MAorQjcyQkVGREEyM0Y1REY3NkJFMDVBRjRDRTkzMTM3QTIxOUVEOEEwNEE5RDdENkZERjM3RTZCN0ZDREUwRDkwQgorOTg2NDIzRTU5NjBBNUQ5RkJCNEM5NTY1NTZFOERGOTBDQkZBRUM0NzZGQTM2RkQ5QTVDODE3NUM5QUY1MTNGRQorRDkxOUMyREREMjZCREMwRDk5Mzk4QjlGNEQwM0Q1OTkzREZDMDkzMDI5Nzg2NkUxQ0QwQTMxOUI2QjFGRDk1OAorOUUzOTQ4RkZCMEI0RTcwRjIxMkVDOTc2RDY1MDk5RDg0RTBEMzdBN0E3NzFDMzEwMUQ2QUQyNkEwNTEzMzc4RgorMjFFQzM2NDMwNzlFRUNFMEM5QUI1NEI0NzcyRTVEQ0E4MkQwRDRBQ0M3RjQyRkI0OTNBQTA0QTNCRjRBMUJENgorMDZFQ0UxODYzMTVEQkU5Q0ZEQ0IxQTAzMDNFOEQzRTgzMDI3Q0QzQUZBOEYwQkQ0NjZBOEU4Q0EwRTcxNjRDRgorNTVCMzMyRkFENDM0ODI3NDhERDRBMUNCM0Y0MENCMUY1RTY3MTkyQjgyMTZBMEQ4RkUzMEY5RjA1QkYwMTZGNQorQjVDQzEzMEE0QjA3OTZFRTA2NTQ5NTQyMkZCQTU1QkVFOUJGRDk5RDA0NDY0RDk4N0FDNEQyMzdDMjA4RkE4NgorMEIxMTJFNTVDRTdCMzc4MkEzNEJDMjJFM0RFMzE3NTVEOUFGRjE5RTQ5MEM4RTQzQjg1RTE3RUNFODdGQThCOQorMTQ4NTgzMTYyNEQyNEYzN0MzOUJGOTk3MkQ3NEU2RUM0Nzg0NzI3QUMwMEI5QzRBM0FEM0RBMUMyMkJENjk2MQorN0UwQURBRjU1NDIyRjIyQUNBNUU0RENENERGOUZDRDE4N0E1NjZCN0ZCNjYxRDA1MzA0NTREMERENkM2QzUwQQorN0EzODc1QzZDQkY4RUM3NzY5RjMyQTFGM0Y3RkMxQzA3MkJBREVDOTc3OTRENEU5MEUwMDM1MjgyQTE3MDQwMgorMzU2RTVBOUNEOUFCRDgwQUM0MzQyQTUyODNFNDU4QTcyNjkyNTJGNDU0MUNCQjY0NTJCMzlFRDU0RDMzNkQwQgorMTk5MjhFOUNEMUFCMjZBRDgzRUIyMDlFMkVDNzUwMTFBMjY0MzgxMzA1M0I1REJCMDI0NjA5N0M0ODIxQjVGMgorQzkyNTU0RTkxNDBCRTM1QjJEQkZDRDk4ODA5QThFQzlGQzkxMEZERTlFMEQ4NjQ1N0M3MEFDQjA1NkVCRjkwRgorMjQ0REMwQTVCQkQ0NTVFMTVENkUzMTgwMzExRDUyQ0Y1MEIwQkY3RDBBN0Y2NEYzQTE4MjFFMEFFREJDMkU3QgorQUVCNTQ5RkUxRDUxMDg4QzE1Mzc5OUM2RTA4OUI1RDVENjVFMUM0RTJEMkI0MzBDREYxRkZBMjNDQ0IyNUQ5NQorNTkyOTQzMjA5RTg0NkU1NUI0Q0I1NEY2NjU4Q0JBM0MwQjI5Nzk2RDY5RDA0MzVENTQzMUFCRUNGMzQ0OEMxNQorOThDQTJGMzZGMzY1OUUyOUFFQjc5MzU1RUMyQURGODM1Q0YwODg2QzIxQjc2NkI5REVCQzM5NTBCNUIzQjQ5NgorMkUwNkQ5ODBBOEM2MDMwNUIyNzMyMzJENDYwNEYxMjYzMkZCNEYxQjJGOTcwMzk1MkM4MjNDMDk4NTQzQUVEMQorQ0ZCNEVDRjI1OUExMTk4NUYwQzk0NEE1N0I1QUZEODUzMzc0RkNGMTIzMDU2MDEyMDBDMkEzOTNFMkZDNzdGRAorRjc4QzJCRUI4M0FCMjIzQTg5RDlFMjMxRDFCQjU2MUNFMUY0RDMzMTIwNDlGMzFDRDU0NEMzOTM1NDQ5MzgwMworRDQ3Q0Y0NTQ4MjA1NDgxOEU4NjIxODAxQTk3NDYxRUM3QkY1M0M2QUYxQzM4QUM5MEIzODM0MkQ1MUM0NjE1QworNTlENDVCOTI2MDZEMDQ3OUY0MzE0OUYyNTc5REVGNUEyMEI0RDdEMTA1MjhFOTc1MEFERkM0QzdEREQ3M0RBOAorNDMyMjk3RTYwQUJCQjcyQTYzNzIzMTA0OTQyNTM5MzQyNkY2NkJGQzA4NTFGRTUwNEU1ODlGMTMzNTExODdBOQorRDc4NEFDQzIwN0IxRjQ2NTM3QkFBNUYyRUJGNjM3RUI4REZEOUQyNDk4MkUyNjMxRjZEM0EyREE0N0I0RTlFQQorMEM4OTlERUY4MkE3REVCMEFDRENFNjA0M0YzNkNFMUY3NEJGMUIwMEExRUUwNzY1RjQ5N0E2N0I5NUJFMTg3MQorQThCMzI2M0IwM0Q0MUVEOEJENkIwM0NBNTk4MzkxMkUwOTRFMkFFNDdERkRCRgorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorY2xlYXJ0b21hcmsKKyUlRW5kRm9udCAKKyUlQmVnaW5Gb250OiBDTUJYVEkxMAorJSFQUy1BZG9iZUZvbnQtMS4xOiBDTUJYVEkxMCAxLjAKKyUlQ3JlYXRpb25EYXRlOiAxOTkxIEF1ZyAxOCAxNzo0NjozMAorJSBDb3B5cmlnaHQgKEMpIDE5OTcgQW1lcmljYW4gTWF0aGVtYXRpY2FsIFNvY2lldHkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisxMSBkaWN0IGJlZ2luCisvRm9udEluZm8gNyBkaWN0IGR1cCBiZWdpbgorL3ZlcnNpb24gKDEuMCkgcmVhZG9ubHkgZGVmCisvTm90aWNlIChDb3B5cmlnaHQgKEMpIDE5OTcgQW1lcmljYW4gTWF0aGVtYXRpY2FsIFNvY2lldHkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQpIHJlYWRvbmx5IGRlZgorL0Z1bGxOYW1lIChDTUJYVEkxMCkgcmVhZG9ubHkgZGVmCisvRmFtaWx5TmFtZSAoQ29tcHV0ZXIgTW9kZXJuKSByZWFkb25seSBkZWYKKy9XZWlnaHQgKEJvbGQpIHJlYWRvbmx5IGRlZgorL0l0YWxpY0FuZ2xlIC0xNC4wNCBkZWYKKy9pc0ZpeGVkUGl0Y2ggZmFsc2UgZGVmCitlbmQgcmVhZG9ubHkgZGVmCisvRm9udE5hbWUgL0NNQlhUSTEwIGRlZgorL1BhaW50VHlwZSAwIGRlZgorL0ZvbnRUeXBlIDEgZGVmCisvRm9udE1hdHJpeCBbMC4wMDEgMCAwIDAuMDAxIDAgMF0gcmVhZG9ubHkgZGVmCisvRW5jb2RpbmcgMjU2IGFycmF5CiswIDEgMjU1IHsxIGluZGV4IGV4Y2ggLy5ub3RkZWYgcHV0fSBmb3IKK2R1cCAwIC8ubm90ZGVmIHB1dAorcmVhZG9ubHkgZGVmCisvRm9udEJCb3h7LTI5IC0yNTAgMTI3NCA3NTR9cmVhZG9ubHkgZGVmCisvVW5pcXVlSUQgNTAwMDc3MSBkZWYKK2N1cnJlbnRkaWN0IGVuZAorY3VycmVudGZpbGUgZWV4ZWMKK0Q5RDY2RjYzM0I4NDZBOTdCNjg2QTk3RTQ1QTNEMEFBMDUyOTczMUM5OUE3ODRDQ0JFODVCNDk5M0IyRUVCREUKKzNCMTJENDcyQjdDRjU0NjUxRUYyMTE4NTExNkE2OUFCMTA5NkVENEJBRDJGNjQ2NjM1RTAxOUI2NDE3Q0M3N0IKKzUzMkY4NUQ4MTFDNzBEMTQyOUExOUE1MzA3RUY2M0VCNUM1RTAyQzg5RkM2QzIwRjZEOUQ4OUU3RDkxRkU0NzAKK0I3MkJFRkRBMjNGNURGNzZCRTA1QUY0Q0U5MzEzN0EyMTlFRDhBMDRBOUQ3RDZGREYzN0U2QjdGQ0RFMEQ5MEIKKzk4NjQyM0U1OTYwQTVEOUZCQjRDOTU2NTU2RThERjkwQ0JGQUVDNDc2RkEzNkZEOUE1QzgxNzVDOUFGNTEzRkUKK0Q5MTlDMkRERDI2QkRDMEQ5OTM5OEI5RjREMDA0QjgzNkQzNEU4OEMyMEVFQjUyN0NFMTEyNDIwOTM4OEEyREYKK0UyN0E4REYyOThBMjY5M0E5RDUyOTkxNkFBMEIyMTc2RTZFRDIzN0Y2OUQ4NEE4RkVFQjM2ODYxRDE4NDcyMDcKK0JFMkJENjFDNkE0MTJGRkZFREZGMTNBRkVDMzJBQzc3MzVCQ0NFNTk2NUY1OTY2NDE4QTYyRUNCOTkxMTJBQjMKKzNCQzkzOEVDNTkwRkY2OTIyNjU5MTI1RUI2N0UyNjBCRjAyODg1RTQ5QkE2MDE5RTY5NkQzM0YwQjUzNjA2QTIKK0Y1MTVFMEM0NUYzMjMzMTE2MTNBOTRCODM4NDkxQkFCOUZFMjMwQzVDQzc5RDIyOTI1RTNEODgyNzk5RjI3MDcKK0MzMjk3NUE0OTRGMEY5NTEzRTREODMzMkU3RTU0NDcwRDk3MjFGQkQzNDVDREJCNDgyODZGMkYxOUNDNkQ2NkUKK0JCNjMxREQ2NDc2QTUwOTE2N0E0OUNBNTI1QTcyQ0E1MEU4MkMxRDA4QzJCMzcyREI1NEM1OTQ5Qzc1M0I2MzIKKzIwMDlCNzYxRUI5MDQ5MkFDRDNDQkU2QTM1Q0UxQjY2RjNCQzREOERDMzY4MjdDRTQyNjFBNzAzMzI4NDUxRDEKKzg3OTQzODQ3OTkxN0MxNjQ3NzcyOTk5MTcxRENDRjE0OTFBMUM5MDg2RTBDNjM5MzUwNjc2OEY4NzU3QkQ4MUQKKzE0MUM0NkVCOUJGNTA3RUVDMjk5NjJBMDA3MkI2QzVEOEM4NTg4RjNENjg4ODZDRDI2MDZERDNCRDJGRUNDRUYKKzYzMjQ1NDk0RTkzRUVBMTJBQUZCMDYxMTBFNTRBREM0NDRDN0U3NjE5NjI3QTQ4QTQ2NDM5NEU1REUwNkVCNDYKKzRDNzZBMkZGMDEwMzE4QkJFNDhCMzc3NkM4MjZBMjY1QzY2NTE1NzE3RjdGMkU5NDNDNjBFQkFCMjNEOTZCNUIKK0ZENTE0QTFDNEU3OUJCM0QzRDJERUI5MzZGOTBDRDNGQUJGN0IwOUZGN0Y1NjRBQjVDRjRBRjZBNDBFODY5RkQKKzM5NTg4NUE4OEY0QTEzOEIzQ0E2OTQzQTJENDMwQkJFNDNEOTFGN0YxNzYyMUNBRjUyRkI3MTYxREEzQjIwMDMKKzgyMjQ0RkI2RUU3OTJEQ0ExNzIyQzAzMzkyQzI5NkMwMjlBMkRDQzVCQUFCM0VBMDNGOERFQjAzOURDODNBRTEKKzc2M0FBQjg0Nzc2QTJDQ0ZGQUU5RUFGMEJGREFFNDE3RThCRTY4MkQyMzdGRkVEQUYyMjRBQzA5Qzk2NjUwMTkKKzE2NUNFMzJGNTM0OUU4NTcxNzdEOTRBRDYzOTY1NzA5MzJFMTY1N0FERTREM0ZGNTdBMzQxOTk0NkNDRDIxMEUKKzU3RTVBMUQ5MUNGNzA4Mzk1OTQyNTI3RDEyNzYwNjM1MDkyNEQ3MUJDMjFDNkY5NjkyODhCMUM4Q0EzNDA0RUQKK0U2MjE5OTg1RjczMDFBMjA2MjEzNjhGNzQ3NDdFQUQzODk5MEE0QzlGMkI2MjkxM0I4RkRCOTM2NTc0MDlGRjUKKzE3OERBQTdDOTdDMzVFQUZBNDc3NzhDRTAzRTg2MzMwMzU4MkQ4QTk5MDBFRjRGOERBODc5REVENTRCQUNEN0EKKzRBNTBDMThBQTJFRDkwNkZDNERDMDczQjFFNkNBMUUzODU1QUQ1Qjc2OThFRjRBOTZCNzdEQkUxOUExMjM4MkEKK0NGQTg3MTdERTIzMENCNjE4MkYyMjUwODg1QjhFOTBBQzQyQTY2NDg0QTdCNTI3MDYxQjIyM0E2RDFDQzcyRDQKKzg5MDM1OUU3RTA0NjkwQkZGQTk5RkFCNUNDOTk5OUYwODczQTlEQkU0OUUzM0Y3OUU0ODNGQUQ3MjMxM0RGOUEKKzdCN0Q5MjY0NjE5ODhDMjNDQ0U5RjcxQUI3QkI2M0JEQjJCMTBCM0Y3ODE3NjM4MEFGRkMxNTQ4MjVDOUJEQ0UKKzgyMzAzRkJGQzNCNTlFMDcwNDM4OTg0QzI4RDEyRTg2NTVCQkJGMDQ5MTI1QkY1NkREMkIwREU4QzA0NTBFNTUKKzgyODMyREE1OUVCRUIwMDFBQUQ4NkYyMzE3NDYwREQ3RUQyNjQ2MTFCOTA0MzYxNDIyMUVDRgorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorY2xlYXJ0b21hcmsKKyUlRW5kRm9udCAKKyUlQmVnaW5Gb250OiBDTVNZMTAKKyUhUFMtQWRvYmVGb250LTEuMTogQ01TWTEwIDEuMAorJSVDcmVhdGlvbkRhdGU6IDE5OTEgQXVnIDE1IDA3OjIwOjU3CislIENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKzExIGRpY3QgYmVnaW4KKy9Gb250SW5mbyA3IGRpY3QgZHVwIGJlZ2luCisvdmVyc2lvbiAoMS4wKSByZWFkb25seSBkZWYKKy9Ob3RpY2UgKENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZCkgcmVhZG9ubHkgZGVmCisvRnVsbE5hbWUgKENNU1kxMCkgcmVhZG9ubHkgZGVmCisvRmFtaWx5TmFtZSAoQ29tcHV0ZXIgTW9kZXJuKSByZWFkb25seSBkZWYKKy9XZWlnaHQgKE1lZGl1bSkgcmVhZG9ubHkgZGVmCisvSXRhbGljQW5nbGUgLTE0LjAzNSBkZWYKKy9pc0ZpeGVkUGl0Y2ggZmFsc2UgZGVmCitlbmQgcmVhZG9ubHkgZGVmCisvRm9udE5hbWUgL0NNU1kxMCBkZWYKKy9QYWludFR5cGUgMCBkZWYKKy9Gb250VHlwZSAxIGRlZgorL0ZvbnRNYXRyaXggWzAuMDAxIDAgMCAwLjAwMSAwIDBdIHJlYWRvbmx5IGRlZgorL0VuY29kaW5nIDI1NiBhcnJheQorMCAxIDI1NSB7MSBpbmRleCBleGNoIC8ubm90ZGVmIHB1dH0gZm9yCitkdXAgMCAvLm5vdGRlZiBwdXQKK3JlYWRvbmx5IGRlZgorL0ZvbnRCQm94ey0yOSAtOTYwIDExMTYgNzc1fXJlYWRvbmx5IGRlZgorL1VuaXF1ZUlEIDUwMDA4MjAgZGVmCitjdXJyZW50ZGljdCBlbmQKK2N1cnJlbnRmaWxlIGVleGVjCitEOUQ2NkY2MzNCODQ2QTk3QjY4NkE5N0U0NUEzRDBBQTA1MkYwOUY5QzhBREU5RDkwN0MwNThCODdFOUI2OTY0Cis3RDUzMzU5RTUxMjE2Nzc0QTRFQUExRTJCNThFQzMxNzZCRDExODRBNjMzQjk1MTM3MkI0MTk4RDRFOEM1RUY0CitBMjEzQUNCNThBQTBBNjU4OTA4MDM1QkYyRUQ4NTMxNzc5ODM4QTk2MERGRTJCMjdFQTQ5QzM3MTU2OTg5Qzg1CitFMjFCM0FCRjcyRTM5QTg5MjMyQ0Q5RjQyMzdGQzgwQzlFNjRFODQyNUFBM0JFRjdERUQ2MEIxMjJBNTI5MjJBCisyMjFBMzdEOUE4MDdERDAxMTYxNzc5RERFN0QzMUZGMkI4N0Y5N0M3M0Q2M0VFQ0REQTRDNDk1MDE3NzM0NjhBCisyN0QxNjYzRTBCNjJGNDYxRjZFNDBBNUQ2Njc2RDFEMTJCNTFFNjQxQzFENEU4RTI3NzE4NjRGQzEwNEY4Q0JGCis1Qjc4RUMxRDg4MjI4NzI1RjFDNDUzQTY3OEY1OEE3RTFCN0JEN0NBNzAwNzE3RDI4OEVCOERBMUY1N0M0RjA5CiswQUJGMUQ0MkM1REREMEMzODRDN0UyMkY4RjgwNDdCRTFENEMxQ0M4RTMzMzY4RkIxQUM4MkI0RTk2MTQ2NzMwCitERTMzMDJCMkU2QjgxOUNCNkFFNDU1QjFBRjMxODdGRkU4MDcxQUE1N0VGOEE2NjE2QjlDQjc5NDFENDRFQzdBCis3MUE3QkIzREY3NTUxNzhEN0QyRTRCQjY5ODU5RUZBNEJCQzMwQkQ2QkIxNTMxMTMzRkQ0RDk0MzhGRjk5RjA5Cis0RUNDMDY4QTMyNEQ3NUI1RjY5NkI4Njg4RUVCMkYxN0U1RUQzNENDRDZEMDQ3QTRFMzgwNkQwMDBDMTk5RDdDCis1MTVEQjcwQThENEY2MTQ2RkUwNjhEQzFFNURFOEJDNTcwMzcxMURBMDkwMzEyQkEzRkMwMEEwOEM0NTNDNjA5CitDNjI3QThCRkVGNzVCNERFRkFGMzRCNDRCMzU2QTUxNkI3NjVBRkNERDNGNTQ3NUIxRjkyODczMUQwOUQyMTcwCitCOTdFNDBGMTJDQ0VERjRGNkJCMzc1NkM0NzM0RjZFOThENzRCN0U5NDJBOTU0QjFCQUFCODNENEFENzI3RkY2CitERjZEQzUwQjIyMjNCQ0I1NTY4QTczQTExMkU0ODYwQUQ0OTA1NTRFNjRFNzgwMDczRkYzMzk5Q0I0Njg4RDMzCis5RTg4Mjk2NjdDRDZFQUVGMjVFMEM3RDJENDRGMkJCRkE0MEU5OTkzMjVGOTU2MTUxNDg0NDIyMUI1MEJDOEZDCis0QzdBRDY4Q0E3MjIwRDY5MTI1QzJBRjA2ODQ5QTNFMDY4RDE4NzMzMjc2RjBDMEE2QTI5MzZEM0MyQzg3Q0RFCis1OUNEMUFGMTQ4QzQ0Rjg1Nzg0QTVEQUQ1NjlGNUZGNTNDMDYxMDU2QzA2N0NFMjlBRUYxRTNCRDFGRDhCMEI4Cis3MUEwQTYzOENEQUM2QUVFREJENTMzN0Q0NjgzQzA4NEJCNjBCMTg1OUU2MDBGNTlDQjRFMTlDNUZDNUM2MzI3CitFQzU0NEE2ODEzNDQ5NkE5QkQwQjg3RDgzQUY2RkRBM0NCNjJGQkYwQjU0RkFDRTFGMEU2QTJEODRCNDY3QUZGCiswRjYyREIKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKK2NsZWFydG9tYXJrCislJUVuZEZvbnQgCislJUJlZ2luRm9udDogQ01SMTAKKyUhUFMtQWRvYmVGb250LTEuMTogQ01SMTAgMS4wMEIKKyUlQ3JlYXRpb25EYXRlOiAxOTkyIEZlYiAxOSAxOTo1NDo1MgorJSBDb3B5cmlnaHQgKEMpIDE5OTcgQW1lcmljYW4gTWF0aGVtYXRpY2FsIFNvY2lldHkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisxMSBkaWN0IGJlZ2luCisvRm9udEluZm8gNyBkaWN0IGR1cCBiZWdpbgorL3ZlcnNpb24gKDEuMDBCKSByZWFkb25seSBkZWYKKy9Ob3RpY2UgKENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZCkgcmVhZG9ubHkgZGVmCisvRnVsbE5hbWUgKENNUjEwKSByZWFkb25seSBkZWYKKy9GYW1pbHlOYW1lIChDb21wdXRlciBNb2Rlcm4pIHJlYWRvbmx5IGRlZgorL1dlaWdodCAoTWVkaXVtKSByZWFkb25seSBkZWYKKy9JdGFsaWNBbmdsZSAwIGRlZgorL2lzRml4ZWRQaXRjaCBmYWxzZSBkZWYKK2VuZCByZWFkb25seSBkZWYKKy9Gb250TmFtZSAvQ01SMTAgZGVmCisvUGFpbnRUeXBlIDAgZGVmCisvRm9udFR5cGUgMSBkZWYKKy9Gb250TWF0cml4IFswLjAwMSAwIDAgMC4wMDEgMCAwXSByZWFkb25seSBkZWYKKy9FbmNvZGluZyAyNTYgYXJyYXkKKzAgMSAyNTUgezEgaW5kZXggZXhjaCAvLm5vdGRlZiBwdXR9IGZvcgorZHVwIDAgLy5ub3RkZWYgcHV0CityZWFkb25seSBkZWYKKy9Gb250QkJveHstMjUxIC0yNTAgMTAwOSA5Njl9cmVhZG9ubHkgZGVmCisvVW5pcXVlSUQgNTAwMDc5MyBkZWYKK2N1cnJlbnRkaWN0IGVuZAorY3VycmVudGZpbGUgZWV4ZWMKK0Q5RDY2RjYzM0I4NDZBOTdCNjg2QTk3RTQ1QTNEMEFBMDUyQTAxNDI2N0I3OTA0RUIzQzBEM0JEMEI4M0Q4OTEKKzAxNkNBNkNBNEI3MTJBREVCMjU4RkFBQjlBMTMwRUU2MDVFNjFGNzdGQzFCNzM4QUJDN0M1MUNENDZFRjgxNzEKKzkwOThENUZFRTY3NjYwRTY5QTdBQjkxQjU4RjI5QTRENzlFNTcwMjJGNzgzRUIwRkJCQjZENEY0RUMzNTAxNEYKK0QyREVDQkE5OTQ1OUE0QzU5REYwQzZFQkExNTAyODQ0NTRFNzA3REMyMTAwQzE1Qjc2QjRDMTlCODQzNjM3NTgKKzQ2OUE2QzU1ODc4NUIyMjYzMzIxNTIxMDk4NzFBOTg4MzQ4N0RENzcxMDk0OTIwNEREQ0Y4MzdFNkE4NzA4QjgKKzJCREJGMTZGQkM3NTEyRkFBMzA4QTA5M0ZFNUNGNzE1OEYxMTYzQkMxRjMzNTJFMjJBMTQ1MkU3M0ZFQ0E4QTQKKzg3MTAwRkIxRkZDNEM4QUY0MDlCMjA2NzUzNzIyMEU2MDVEQTA4NTJDQTQ5ODM5RTEzODZBRjlEN0ExQTQ1NUYKK0QxRjAxN0NFNDU4ODRENzZFRjJDQjlCQzU4MjFGRDI1MzY1RERFQTZFNDVGMzMyQjVGNjhBNDRBRDhBNTMwRjAKKzkyQTM2RkFDOEQyN0Y5MDg3QUZFRUEyMDk2RjgzOUEyQkM0QjkzN0YyNEUwODBFRjdDMEY5Mzc0QTE4RDU2NUMKKzI5NUEwNTIxMERCOTZBMjMxNzVBQzU5QTlCRDAxNDdBMzEwRUY0OUM1NTFBNDE3RTBBMjI3MDNGOTRGRjdCNzUKKzQwOUE1RDQxN0RBNjczMEE2OUUzMTBGQTZBNDIyOUZDN0U0RjYyMEIwRkM0QzYzQzUwRTk5RTE3OUVCNTFFNEMKKzRCQzQ1MjE3NzIyRjFFOEU0MEYxRTE0MjhFNzkyRUFGRTA1QzVBNTBEMzhDNTIxMTRERkNEMjRENTQwMjdDQkYKKzI1MTJERDExNkYwNDYzREU0MDUyQTdBRDUzQjY0MUEyN0U4MUU0ODE5NDc4ODRDRTM1NjYxQjQ5MTUzRkExOUUKKzBBMkE4NjBDN0I2MTU1ODY3MTMwM0RFNkFFMDZBODBFNEU0NTBFMTcwNjc2NzZFNkJCQjQyQTlBMjRBQ0JDM0UKK0IwQ0E3QjdBM0JGRUE4NEZFRDM5Q0NGQjZENTQ1QkIyQkNDNDlFNUUxNjk3NjQwN0FCOUQ5NDU1NkNENEYwMDgKKzI0RUY1NzlCNjgwMEI2REMzQUFGODQwQjNGQzY4MjI4NzIzNjhFM0I0Mjc0REQwNkNBMzZBRjhGNjM0NkMxMUIKKzQzQzc3MkNDMjQyRjNCMjEyQzRCRDcwMThENzFBMUE3NEM5QTk0RUQwMDkzQTVGQjY1NTdGNEUwNzUxMDQ3QUYKK0Q3MjA5OEVDQTMwMUI4QUU2ODExMEY5ODM3OTZFNTgxRjEwNjE0NDk1MURGNUI3NTA0MzJBMjMwRkRBM0I1NzUKKzVBMzhCNUU3OTcyQUFCQzEyMzA2QTAxQTk5RkNGODE4OUQ3MUI4REJGNDk1NTBCQUVBOUNGMUI5N0NCRkM3Q0MKKzk2NDk4RUNDOTM4QjFBMTcxMEI2NzA2NTdERTkyM0E2NTlEQjg3NTcxNDdCMTQwQTQ4MDY3MzI4RTdFM0Y5QzMKKzdEMTg4OEIyODQ5MDQzMDE0NTBDRTBCQzE1RUVFQTAwRTQ4Q0NENjM4OEYzRkMzQkVGRDhEOUM0MDAwMTVCNjUKKzBGMkY1MzZEMDM1NjI2QjFGRjBBNjlENzMyQzdBMTgzNkQ2MzVDMzBDMDZCRUQ0MzI3NzM3MDI5RTVCQTU4MzAKK0I5RTg4QTQwMjRDMzMyNkFEMkYzNEY0N0I1NDczOUI0ODgyNUFENjY5OUY3RDExN0VBNEM0QUVDNDQ0MEJGNkQKK0FBMDA5OURFRkQzMjYyMzU5NjVDNjM2NDc5MjE4MjhCRjI2OUVDQzg3QTJCMUM4Q0FENkM3OEI2RTU2MUIwMDcKKzk3QkUyQkM3Q0EzMkI0NTM0MDc1RjY0OTFCRTk1OUQxRjYzNTQ2M0U3MTY3OUU1MjdGNEY0NTZGNzc0QjJBRjgKK0ZFRjNEOEM2M0IyRjhCOTlGRTBGNzNCQTQ0QjNDRjE1QTYxMzQ3MUVBM0M3QTFDRDc4M0QzRUI0MUY0QUNFRTUKKzIwNzU5QjZBNEM0NDY2RTJEODBFRjdDNzg2NkJBRDA2RTVERjA0MzREMkM2MDdGQzgyQzlFQkQ0RDg5MDJFRTQKKzBBNzYxN0MzQUVBQ0NCN0NDRTAwMzE5RDA2NzdBQTZEQjdFMDI1MEI1MTkwOEY5NjY5NzdCRDhDOEQwN0ZEQkQKK0Y0RDA1ODQ0NEU3RDdEOTE3ODhERUE5OTdDQkUwNTQ1OTAyRTY3MTk0QjdCQTNDRDBCRjQ1NEZDQTYwQjlBMjAKKzNFNkJCNTI2RDJENUI1MzIxRUUxOEREMkEwQjE1RTUzQkNCOEUzRTAxMDY3QjMwRUQyREQyQ0I5QjA2RDMxMjIKK0E3Mzc0MzUzMDVENDJERTlDNkI2MTQ5MjZCRkQ0NERGMTBEMTQ0MDJFQkVERkYwQjE0NEIxQzlCRDIyRDczNzkKKzUyNjJGRUVBRkUzMUM4QTcyMUMyRDQ2QUEwMEMxMDY4MUJBOTk3MEQwOUYxRUE0RkExNTY2Qjk2RTIyMTg2NEEKKzQ1QTI0QURBRUM2M0Y2MUM5RkQxODM3NkQzOTg0NDQ5QTFGOTk4QzMxOEE4RkUzNkQwRDUwMjBFMThBNDk2MjUKKzBGM0JCNjAzQkExRjNFNjZGRjQxMkY2QTMyNDMzRkY4QkQyOTY4RDc5Q0U0MjczQUQwRTBDRERBNTE1M0MyQkYKK0Y4QTQ2QTIyNDRGOTM5NEE0OUQzMzlGNzYzRjVBNzQxMUEzQzI5MzM2QjIxQ0NCMDE3MjM3MDVBRjU4OUIwNzgKKzM3NjMwMzU0MTFGRTM2QUI1RDc0NEU4MTM3OTEwNjg5MDY4OENCNUJDNDExODQ1NDhCN0ZFQkEwOERFNzI4OEUKK0U2NTcwRkVBMjBDNTFGQUNFOEU4RjgyNEJCNjFBNEEwMzhBQjgxN0M0N0I4NzM5MTYxMUI3NzkyOEIyNTY1QTkKKzNCMjdBNTczQzA1RDM2RUQwMUQ4RjI3Q0IyQzc5MzM3MEZBOUI5MDAyMUI1Njk2MjgwQTU1RjJDQjYxMTdCNjQKKzI5M0VBRTBFQTVBMjQzRjU2RkQwMDc3NzNDQTM1REY3MUIzRDI4NjQzQzI1MjEwQ0NFMjVGMzdBNTA5NUQ2RTUKKzlDQUZEOTlERDFEQjBEN0VBRDQ1NEMxMzQ2NERGNkZGNURENDIzMzk3OTdBRTVBRTQ2NzA4NDU1MEZDMDAxMzkKKzZFRTgxOEM2MzY1MDA3QjJGRDZFMjYyODVCODMyQ0ZFNkVBN0U5OTY2NUEyMjRDOTgxM0MwMzZDRUQyNjI2MzkKKzNGQjM5QzFGMDVGRjhGMzFEMkRFRjM3QkI5Qjg4MzMzNEY1MUVBMTI0MzMzMkZFMUUzRkM5MTg2NEM4QUVBNzkKKzE2QTcyNkY5MjRBRkQ4NEYyRjQyMTVGQjc5NUZDNDFEQ0ZGQzgzNUM5MEI5RTMxRDI5MUU0N0FBNEJCOEMwNUMKKzYyMEY2OURGMzFFOTFBMEZCQThFMjE3Q0RCRkFEN0M0RDQ4MEVCQzFFQjM5NjAyOUNERTYxNUMyMjdBMzY3QUQKKzcyODM0QkE5NTUzOUQzOUEzOEVBMENBM0NGN0YxMTIzRjcwNzkyQ0YzMTVCQUFBMzhCQkNCNkRGQTgwQjQ0OTMKKzUwMjVGMzNDMzY5NkRBRDZBMEFERjU4NEM3MUJDQjFEMjlFNTIzRUE0QjgxRkZDRTE1RjMyMDQwMjJCQkJFQTAKK0E5NDgzRUU4RUFDMDdENTgxMTYyNjcyQTBENjYxOTkxNzQ4MjFBQkQwOTc1NjFBMjYzQzBDMEYyNDA2NkZCRTYKKzA5NTFGMzFGQkJGMjY3NTE0MUYzRkI0NDU3Q0MyQTk0QTQwMTkxRUEwQUIyQTYwNkNGNTQwQkJCODg4N0I2REUKKzcxNUVEQjEwNDFFQkI5RDA1RDBGNEE0NjcyRjUzNDM5N0I5NTI5RUY4NzQzQkU4OEJCQTEwQzgxRTBBNDYyNTkKKzJGMkFBN0I2MzhFMjBDOUM4QTNBODI3OTc3QUI1OEFCRjc1MjVCRTE1REI2NkNFOEU5QjgxNDU3NTUyMDczQjUKKzg1REYzRkE3MEI1MjMxQzQ0N0M1NzI0RTE0NzMwQjkwRkEzNUVEMUI1NzIzMDM2RjE2NThDQThFMTlFRjVBNkQKK0QzMzNCNzhFOTFFNEQ3MDMyRUZCRkQ0MEE1QTIyNjlCMERGRDlGN0MzNDM4REI1OEY5NEI1MDdFQjkzMDMyRjkKKzk5RTVGMTVEOUY1RDhDQjAzMUJCQkZCQ0E4QTE1QTYxN0FDRURERTcwREQ5QzJEOUVFMjExNzlGQjE3QUQ5MTMKK0I0QkY1NzdBOTA0Njk5NDY4OUQxQkM2QTY5ODVGRjVGNUE2N0Q2OTlDMkZEMjg4RkQ5RTVCQ0FENTQ1M0VFQzUKKzY4Mjg3QkQ3Qjg4NzI3MjZDMjhDRDI4OEI0REVEMjI0NkI4NDM1NzcxNzM0NTBCNkU1NzYwODUyQ0YyRTE3MjcKKzAxRkRCMEZGRkJFMTJDQTEzQUNGNjQzNEFFRjRCNTlFRkYzRTBEQjFFODdEMzUwNzVCMUQ1NUFDMTI2MzMxNjcKKzVBODNBMzkwNTZDMDc3RUFFNkYyRjdEMURERUQzMDBCQTQzODMwQjgwMzRGMEE2QUVDNTYyRDMwMjMyNzA2MDEKKzZDNTk0RDAzNTlERjZGMjMwRjdCODBCNTRFQkFFNDg4MEFGMzM4OTU2QjgxM0UzQjhEQjhCQzc3OEJFMEY2MTIKKzdEODQ5MzlDMjg3OEI0M0VBQTQ1QkYxMEUyNTdGMjJDMjhDMkMxNDhGRjQ4ODQzRDJCNTI2MjYxNDhFM0NBQTcKKzQ1MjdCOUYyNDZDMTdCREUyMUM2RTdFQUI0OTA2QkI2RDlFODQ5MDZDRDE4MzJDNEJEOUU0MDVBRkZFMzNBQTIKK0FFMDg2QzI1RUEyNkJDMjNENjg5ODY2MzkzNjZCOTlDODczNTk5MTVFQkI3NkQ3MTYyQUE2NjdBREU0OTU0RDAKK0IxRTE4MDI3RkFDMjQ2OENCMkZFQTI1NjhFMjNEQkMyMDFFOUI2QTExNTFGQkYyMTEyOUEwODhEODlFM0U3MjgKKzI4QjI3ODVDMUE4QjI2MzdGMzY4QTkzRUFCNDU5RjgwNTA2NDM1QkUyM0E4NTM5Njk2OUUyQUM0RTBENkU0QjAKKzhCMTJFQUNEMTUwMDQ5RUY4OTQyQzEwOEI5Njg0MzE1OUQ0NDA4NDI0Mzk0QjMzNjAzRjU2NUQxNjIyRkNCNzgKKzAwMzMwNTUxRTA1OTUyQzhEMDFENkI3N0JERjlCMzk1RUVDMzhCQTZDRjI5REE2MDVCQTE1OUM5M0FBN0NGQzEKKzg2RDAzRERFQTFDODg5NjJCNTU4NzY2MTgyODUxQTRCNEU1REEwRUM4NjhCMTc3QkRBNkQzRkIwQjhFOTAxQkQKKzlGRjJGNUJDOUQ0RDI3MzdEREY4Qzk2NTU5QzRBMEU3NTc4NzI2NzI2RjE3MDlBMDlDMkU0MjA4MjNGNkI1M0EKKzlCNDRERTFGRkFGQzZFMTA1Qzg4NzA1MDMwOTUzMEI1OUExMUI2QjcxNDc1NDI3REMyMTAxODFENDlBNDlDRDUKK0M2MjBFRTBCQ0MwOUEyMDZDOTBFMjg5NDY2OUVDMTJFNTkyNzg3MEZGNTBFMDg0OUUyRTJCNzg4NUQ3QzIwNEEKKzI4OTE4QjVFRjkzRjdEOEE1RkU0N0FENDE5MERGMzM0OEIxRTlCN0YzNzJFMzc2Njk5RjcyN0Q2REFDNTlENkYKKzU2MkE5ODkxNzVGNjZENTVGMDk5RTM2MjFGQzIxMkFCNkMyRUVERjZCNjMyMURBQTc3NzczNEJCQzkwQkEwNEUKKzBGNkM2NTQ2RDAyQzAyRUMwRDZDRkVGREFBMjlGMzcyOEFDOUM5NDgxNUE5NEI2MDlBRDdFQjJBQTI0RUZFMjMKKzk1NEU4MjAwOENFNkY1M0ZBRTcyMzQ0MjMzNDhBNkU5NENGNkUyMkY0QUYzRTMzMkQ3MDJBMTk1QjBEMzY0NzcKK0RBREY0OEY2QTAwMzQ2M0ZCQjZEQzM5NkRENzJEQkMzRjAwN0VEN0RGNEE0MzJCQ0JCMTI4NjdCMDQ0Njc5MzkKKzBEMUJGOThEQzQ1RUNBQkJEMDQ3Mzk3RjkxMDI3RkE4MUVDRjM5OTA3QjcwMDk1QTI4RkE3NTBFOENCQTkzNDgKK0VGNzRDQTk4Njg5NzEyMkY1RTFERjI1MzQ3NzkwNTY5QjMyMDcxNjdFRTc5MTQxQzAxRTZENTY3RjcxOTlCRTcKKzA1MjJBRTdDNDMyQUExNjFBODM4MTFBQzQ3OEQ4RjU1RDczMEI5NkIxRDRCQjJGNTBERjVGQTRFOUMxNkY5NUEKKzE1NTIwMEI5QjQwNjUyNkQwNUMxQTMzRUExQjZEM0VENzIzRTg1MkZDRUVBNEQ3Nzg3Mjg2MEZCQzJCQjk5OEYKK0U1RUY0MDlDNzA4QzVGMTQ5N0IwMUJENjMyQzQxQjYzRjQ5MUJBOUQ5NkYxMkY4RjM5N0MzQzBFNEE0NkJBMzYKKzMzQTlDRjVDRUUyQ0FBNTVBQ0YzODIzQTEyMDg5M0QzRkY1NTU0REUxQjFGNUVCQzMzQjNERjUxOTQyNzU4NDcKK0VBOEMyQkM1NUIyODVCMzkzQjAwRjY2QTNGMTcxQTIxRjFERDZDRDhFNzFDNEQ5M0FDQjNFRTlGOEI1MzA5NTcKK0RENzQ2NDRCNTE2M0FFRkZDQ0U5OTIzMzhFNDA2Q0ZDQ0MyM0U5RkIxRkUyQjQ5ODdGQUZFRTQ5RDdGMkE5NDcKK0JFQzg4RjZCOEY2NzcwRDU1OTgxOTFFRUFGODc3MzdBNjlBMENGRUNFQkIzQ0FCQzE5QUYxRTY3RjMzMUI1RjUKKzdDNDA3NkZFQTg4N0M0NEE3NEVEQjdEQUU5QkU1QkMwRTI1QjUyODI1RTE2NkUzRkZFMjlGOEQ5RTY5MTJCQ0EKKzAyOUFBNUNFRTJFRUUxRUUzODQ4QTZERTM0RDg2Q0EzOTAzRTExQTVGQThFQTYwQzY1RkZGNTYwOTFGNzZGNEIKKzU0MEM1QjQzN0U1MjJBMzU0NDQxRTNENTQ0NERDMjdFRkJCNjNDREEzOTU5NjIyQjIzMjlFOEM3RTU3MDM3MDMKK0NFMzg0QjlERDg5REE0QTNEOTdBRThDMEZDRTE4MkM3Mzg3QjM3MTkwMDk5MDE0Mzk5QzhGOTRFQUU4OTc1MjgKKzNCNTJCNTkxNzI1RTMyRUM5Q0MyNjM2MDM5OTBBMkM5NEM4NUM5NzkxNjlGMzFBMUI0N0FCMEZEMDBBRTNDNjAKKzA0NjIyOUNFQkQ4MTIxNTFCMEIxNjUxREM3MDU0NjYwOTlGNjRBODg3NjRENDBCNEU3REJGRTUzNjFGQUQ3M0QKKzI5MjkxRTgzRDUzRjBCN0RFNTk1RUYzMTFFN0VCRTBGRDNCOTk1M0RFQUY4RTMzRjU3MTc2NEM4RDdBQkIzNjIKK0ZEOTYzMkUwMTBGNzEyOURGOTFBQjU4QzBGOUI3MjU2MkY2ODZEQTUxQkRFNjU3RTY4Q0FCNkM1Q0MzMTZDMjkKK0FEQUMyRjAwQjYzRTYyRjY3RDI4RjhEMkNGNzMyNzlBMEJGOTY0QjlGQzkwODVDQjkzQ0NDRDdCNzkzNjkwQ0QKKzZGMUUxOTI3NUNDRTYyOTlFQjMwODlGMUVGMjg2NDczMjI4MTkxRkI1REU0Njk2NjI2MkNERDAwMDFDQjI1RjYKKzMyRkMyMDZDQjNBQzcxQkYxN0YzOUE2MzQ4MDlBNTAzRDJENzJBRjQ4QjA4NENCNzg0OEE1ODY5MjNERTM0QkUKKzlEOTBCRTk0RTFEMkYxMjE3REY0N0ZENTVEM0RGNDY3OUJENkJCNjM3NzZGNEREMkVCNzREMjVFRDdBQ0QwN0IKKzUyNjFBMjY2MTVCOEM0NkIwODg4MEQzRDA0MkU3OERDRkU4MzIzODAxN0ZCNTdCQjBCMTFBQzA4NzA4RkExOEIKK0FDM0M2NDVGMkRFNkUwODI1QkJFNTA3Q0NEQUQyRUI1QTY2RDFDOUIxQTRFQTFDMjJFOUExODZBNEQyNjY2MjUKK0Y2NUUyRTQ5NTZENzhGMkZGNUM2RTA3RDc5QTc3MDFDQkM2REJBNkQ3QjM3MEYyQ0IxRDhERjdGQzVDMjE3RUYKKzkwMzU3OTA1OEYyNkIyNTFFQ0ZFQjg3MzA5M0RCMUU2N0QyRENEMzA4N0EyOEQ5RjA1NkU3NTBDMjc2REU0MkEKKzk3QzIzOTNFQzM3QjcwRDIxQjI0MTVENzU0OTExQkNDNkIzNjFBMTZFNkRDMEJDN0NFODk3NjJCQjFDRjhGMDcKKzQ0NjQ1NzFGQ0FCMjlGMjlCRjVEM0U0MjQ1REY2MDE2NEU2NTdGMzdDMDgwOTk3MjEwM0ZBMDk2NjNGMzk3QjAKKzE1RkQ1OUJBRjU5QUQ4MzE0MTE4QkZCRUEwQTQyRjhDOTlCNUEzNzZBRDAwOUUzODM0Njc3RjBENzQzMjFGNkQKKzc4MTZGOTRGNkU2NkM1NkRCQkYwRjE2NzIxRUQ4QkRGRjlDRUNDRTdEQTkxRUMzRkQ5NDVGRDk4RUVDOTBDODUKKzBFQjgzNjk2NkVGQjYyMzM1MzhDMjhCMjIyRkI5NzUyQzMzNjRDNkVDMzQ3MTY1RUEyRTE4QzJFQzRGRTMyQkIKKzI3QjE1OENBMTk2RTQwNzhGRTZBMDFGQzA5REI0MTlCMENCQjY1ODU1MTg2MjgzMTJENTNDNDcxQ0VGNjlFNjgKKzQ4RjIyQTY0Q0NGNzVEQTJFRTVDNjI0QTExOEVCNTJGNEQ4Nzc1MjI4OTIyQjY1RTlBOUQ5MTA4RDJDRjRCMUIKKzY5NkVFREZCQUI0QTkxNzE3OTA4OUMyOUQ4OTJERTMyM0U5ODNGRUVDNzBFNTdEMDcxRTE4NjAyMUNFOTYwMkIKK0VGMzI2QTkzM0JENjc3QTRFMUNGMjc1RDc4Q0ZFMUU5RjBCOTRGOEJGQkUwNjkyMEY2MDVCQjMxQ0NEOEM1REQKK0Y3MzA4NzBCQkQ1NjdENTNBRkUzNTI2QzU4OUI2OEE2ODg3NUEwRjZEQjY1RjdCREQ1RDcyMjA0N0M3QjBDQ0MKKzIyOUQyN0MwRTJCNTZFNDdDOTVDOEZDMTc0QjA4QkMxODUzRUQ4QzFBOUQ5MURBOUQwQ0ZFOUZBMDQ5RDc3QzgKK0QyN0UwMTdDOEVBRjU0QzdFQkNCQTMyRjdERDNGQjQ0ODQ0QTU3QzRFMDYzMDVGNEM5QjY0QjdCRkFCNEQ3QUUKK0JFRDBFQzFDM0MzNTkzQkQ3NjhEQzFFODIwQTcyNjVCOUZBODI2QTcyOTVCQzgxRTJBQUZFNDIwRkVGNzIwREUKK0ZGREVBODdDRTRFNThDQTQwQUJFMjgwRUQ3OTBGMDBEMzkyMzI1MzhDMEM1OTcwODA5ODQ2M0Q2MDJEOTNCRkMKK0MwMkY3MDlFQTNFMDMzQzc2RDdDMUVGMzk2MDgzRTJGRDkzQUY3MTNGRjc5RDZGODE4MUQ4RDdBNzQ3M0VFRUEKKzQ4OTdBQTdDNjhGMkQzM0JCOTYzRjkxRjQ2RTM2QTQwRTZGQUZCNjdEMUM2NUUwM0ZGNDJCQjUzNjEyRThEQkEKKzJFMTdBRUUzNzNFNTQwOUQ3MzI5NDdENzVGQjJEQjZBRjg2M0Q5NjM5M0I0MDcyMTg3QUFFQjcyMERFRTk4RUIKKzdDRjBCMEI2MzFGN0FBNzVEMjZCNDUxQzZENUU1NTlERjc5RDQ0QzYxNEY5QUJDM0E3OEE2OEIxMzkyMTgwQjAKKzA0NjIyNzY1NzM1QkU1QkQ1NDYwMEE2MTJCMDkwNzZEOTc1RjQ2RTExRThDN0ExQ0E0MUMzMThBNjI3RTdBRjAKKzZEQjk2RUQxRTlFNTUwMDc4Q0YxODBCMDlBRkE1RTk0RUNGRkE0QzY4MjY0NTRBM0Q0RTFDNTgwRTcyOEVBNEQKKzc5NjNCQzZFQjE1RkRCMjIzREI3MTYyRDgxN0VFMzNGMzY4MkQ3QkNGMkE5NDM2MTY4MzhCOUVBNDE3Qjg5NzYKK0Y0MDcwMzY2REZGMjIwMTkyNjVDMzBCQjI1MURCRjA5NzVBQ0Y1RkY3M0FFMUQ3QzM5RkZDOTI2OTc3NURFMzMKK0VBQTJFM0FDNUUxODBENUI0MjYyMzIzNzgyODc5RUE0REE1MTUxNkU2MDc4OTNCNERGMUExM0I5MzY2QzcxMEIKKzg1NUJGODM1NDA5NUE3MjJBMEU4Qzg0ODI3MTZDOTUwQTg1NUMxRUM2QTE0OEVGMzU0NDE3RDI4REZBMDcxMjYKKzcxMUQyNTg4QkIyN0Q4QUE0RTA0NTZFMDJCRjhCNTFCN0QyNTNDNjBDMDFGRjU5QUM1N0RCNUM4Q0U0RUM3RDUKKzJDNERBMTI1N0VEQURDOEY3RkEzRDBGQzkzRUNEMjgzMjY3MUMyQTU1QzA1REI1QUE3RjMxMkIzQTZDMzQ5NzMKK0ZBMDkyOEE0NTJEQzE4RDlDQUFEMDdERTdEODA4NjdBNDAxMjlBRkQyOEVERDMyNDk5OTFGQTUzODg5NjA1OEIKK0ZDRUE1NzY4REMwNDY3OTZFQzZDQUM5MDM2RkFCODE2REVBRjFGQ0VFNzQ2QjJFQzNEODg1NURBMEEwRDFFRkYKK0QzNDkxNTFCMTNGODVBMzJDRjg0OUY4RkREQUMyOUQ1MTdGNjhFMjEyRTU1OTZGMTIxMjI2MUIyM0FDQTMzQTUKKzMxRDc0NUZCNEZFQjNGNTRCRkQ2NjZBQzY2MUQ5Rjg3Qjg1NjNCQkREMEI4NkZGQkE5QTYyOUNFRjEwRkMwNzQKK0I4RTIyRjQwQzYyRTFFNTEyODA2NDY2NTVCNzM2MkFGQkU2NTQ5REIyMTE0OEY2OTRGNTY5RkIyNjEwQTY0NDEKKzJCNDNGNzM3NjZEMEM4ODg3RENDRjZCODlGMjVCQjg1RTk0RDU5RTRGRDdDNDg3ODdDQkUzM0JGQjE1QzgzQjYKK0UzQzRCQUI4OTAzRDE2QjU0NENDNUFGQUNDMDhGODlEN0UzMTJDMURGREZCMzM2MTExOUMyMUZFODBGNEM0RDMKKzMyMjRGRERFOTA2Mjg4NUI2N0NCQkY0QTczNkFBN0IyMENGRDk4MjhDNzRBQkE3RUZFNEU2NkQ0MDM0ODNDNkQKK0MyNDRDNURDQkUwN0EyODI5RjJDMUU0OUMzMERGQ0ZGQzM0QTg0NzQ0MjE2MzI3OURGMDM0MjU1RUM2NjBFRTUKK0I2NjRGMDlGOTU2MURFNEQ4QUFDNDQ4NEE0ODA2Mjk3MkY1RkI3NjQzNkQ1RkMxQTNFQzlBNTREN0REM0RDNDYKKzUzMDM3RTEwMDkwNjI0NjNEMDg0RTkxMzFFNjA1RjI2RTg4NzdENUUzNjkwMEMwOTlBQzVFNUE4QTgyODYzQTUKK0M0RkY5ODhGMUY1NERDM0U5N0JCMkE2ODBGOEVENThGNzY0NDJCNEFFOTIzMkNDNUU5ODM5QUVCMzE4MjRDNUUKK0I2M0Y4ODgxQUFBNTU2NDhEMDE0MTM1MURFQ0VCNjgxODc3RkVCQTE2QjU5Qjc2MDU5NkYzQTUzQjQ5MjhFQjUKK0YwRkEzRjZFRTI2ODQ5REU5OTkwN0Q3MUE5NDJGOUYxM0QwRjZGNkIyQzc3NTQzOTM4MzM5QTA2NEVEMkIxQ0YKK0MwQzRENDIwRDcyNTIzNTgyQUFDOTE1RDlGRUYwNTE4OTUxMjIyQkY3MUVGNzJGMEU0NkVCQjY4QTE5Qzk2NDQKKzExQTI3QkYyMzk1ODE2OTUyOURDOEEyQUQyMTZERDg5RDg5RkY0N0U3Njc5OThDMDNBQzNGODU4NjFFOTQxMjgKKzk3MkZFNzc1RjY0RDc4REMxNTZCODkxMDU1MkQ0Q0MyQ0I1MzNBMThEQjJEMEZGRjNCRDhFRDM4RUYyN0NDODgKKzkzMjgxRDg0QkY4MkNDNDY5QTg5RUE2M0RCRjAwQkVCMDNGNkRFQTAzRDE5RDFFNDc3QjA0NTg3RTM1NThCMzgKK0Y4MzdENDQ3OUFCQTdGMTY5NjZDRUEwMUU1NEM3MDY3OEZFRjgxMjU4NDgxRkI0NDhEMERGNUE2ODcxMUUwQzEKKzI2MTk5NkEyNUI3N0FFQzc2ODA5QjFFNDNGRjAxRDQxOTdGQkFGRjQ3RDE2QjFGMkNGODA1RjU5NEEwQTYzM0YKK0ZDOTFCNUFBQ0VCMzJBMTYyQUI1MjJBNDkwQzNEQkYwQTRDQTg1QkYyOUVFNDg5QkFBQUY5RUI4REFBMDQ0OTgKKzcxMUMxOUZDOTMwOEQ1MTdDQ0NBQTIyNEIzMTU5NjcwNkJEOTQwMkI5NENGRTVENjE4Qjc0MkNFMUE0MThFN0QKKzdGMzIyMkFDMDRCNkE1MTFDQkQ5MEJERjVDQzlFNDdFMzk2M0M5N0M1QkE3N0E3MUE1QjA1Q0VEOUU4NkNCMkUKKzVENzdBQzc0RjVGN0M0MUQ4RDk1N0M4ODEzMjFCQzZBRDZFREM0NUYwMjJENEI5OTgxQjM2MUNDOEJEODM0NzUKKzE2OTFFQzExNDk2ODAwQkY1MDUxQTk3Rjk1QThBNzIzQ0QzNTJBMDRCRTk5RTU3RkIwNEI0OTc0QjMyRDNCRTQKKzY1NkNCMDc1QzgwRUU5NzkwRjA2RjlFRjA1RUM4NDQwNDU2QTAxNTg0QTU2REIxOEJCQ0FDNDhBQjNEMDJCNzAKKzI5MDBBOTA4NDY1REUyMjI1RERFRUQ4Q0QzMkE5QTgwRDY3MUNBQUUzODZGNzNFRUI3QkNGOTBEMjcwMjg5NzgKK0ZEQzYzOEU3Q0M2RTBDQjkwMjMwQUI1RTNBRDNBQTA2NDc2QTlGNzcwM0RFQzI5NjdFODBGMEQ5RTk0QTE5MzYKKzZDQzhGQkU5QTQ0NkVCRTZCMzFBOERGODlBREExMTg3Qjg5QzdDQ0IwNTEzNjlFNjYyNkY3MThBMjk3MzcxRjgKKzYwODFGRjlCNTk3RjRCMTNEMEFBNzkyQjA4NDk2MzNDRjcyRDgyQ0I3MjY5QUY5N0I5OTk3NjkwMzFDQ0QxQjIKKzhFNEYwMzcyNTlGMDhFN0Q2QjJEODIwRjVGNjVGOEFBRTdFQzA5ODMzNzdCODgzQjE2REFBOTYxM0M5NjBENjEKKzY3QzZCN0FEMDJDNjJDQkE1MDVGNkIyNkM5Q0Q0M0QzRTJFODJGQUIzMERERDM5MjlDRDcyMDZERUJCMEY5QUYKKzg0RkVDQ0I5M0VDRjEzODc4MzY4RDFBM0Q0MTQxQzY3NTEzQTUwQzE2RDVDREIyMEVGMkQxQ0MyOTM5MjgwNjkKK0QyQzAyRTI4QzM2M0EzRTJGMTNDMTQ5MDFDM0FFRUJCRjQwMTkxMzVBRkFDM0U1MDY1MzUxRTBFQTkxRkQzOUYKKzAzQUZGNzZENjhBQjM4NEM3NTRCRUE1OTdDQzVDMTQ4QTI5RUVENzkxRDQzNzBEOTk5RUFDMkY1NEVDQ0Q1NzIKK0M2N0FGQURENDc0RDU5NzM5MDdBODQzRDBERTcxMDdFNUMxNEEwMjcxMTI2QTY2OTMzQ0JBMEE2MkI2Njg2QjcKK0JEMDc1QzAzQjhCMzYxODFDOUZEMkRFMUFBRjg0MUU2NkNFQThCNzA2Qzg0RjE0QjQ1REI1Qzk2NkFDMUNCRTgKK0FCOUY1MTMzMDUxMEE2QzI0MjU3NzcyQTYzRTlGRTAxMDhBREI1NTdDN0FFMTdDODlGNTdEQzM4QkY4MUM0ODIKKzMyOTJEQzAzRUEwRTIwMzNBRkRDNzU2ODFCOTc1QkQ1NUE3Rjg5REJCRDBBQ0ExMUFENkY0MzgxRjYyMDQyODkKKzNDMDYyOEMzOTM4RTNFNTMzRjI3NTc3MTNEMDQ3ODM0RDJGNzRCQkVDOEQyOTg0N0QzQzRDMDYyMjA2QzNCQTkKKzdDMDA1Q0Q0RjQxMTk0OTFFRUUzMzcwRDFGQjRGQzM0OUNCQTQ0NjQ3QUE3MkIxMERDRTAzMzVDODMyQkE0ODQKKzVCOTYzNjc0RjA5MkRBMkJFNkUxOTQ2MjQ4MkQzMUY3N0IxQzY5QkM4MTlDQ0UxNEI0NDEzOTU3OTY0MTg5Q0UKKzk4RkU3NTYwQzU3NUMwMDdGQ0Y2RDhCOURFOEM3NDJDNzYyOTREODY2MjU4MzU2MEUxNjk0RjYwOURGRkM3QkIKKzBCMThEOUU3MzU0QTEyMDRGNEEyRTU4RjcwMzFEN0ZGREI2MEVDOTc0NDUxQ0I2NTczNTZDQjFEOUNCRjY1QUIKKzREOTFGMjc1REZFQTRENDlFQzFERDQ3NkJGNEFEOEIzMzc3OENCQTU5NDU2QTNDODlGMTUzMDIzNEE1MDM1QkIKKzNFMzZBRkE0MDk5NTRCMTQ1MUJFMjdFNkE3MzA1MjQxOUIxRkEyQkY0Qzg4MEZENjY0QzBDQTQ4NkI4QkM0MTQKK0FCNUY1REYxQUM3NjAwNzlGRjY0M0Q0QUExRTlDMDQ0NTAyQzdEMzRGNjI1NzcxRjZDNjY5OUIxQ0M0NzU4RjUKK0IwNDFFRUIxOUU5MTkxNTVGNTQ0NEYxRTJBM0M4MTA0RTgwRDE4RkFCMUNEQUU2NjQ3NDEyOUU3OTJDQTI4NUYKKzIwOTZCQzkwREQzN0IzOTQyOTNFNzk5MDMxMTI2QzlCQjdEMUY0MzZFQjdCMjY5NUNDODEzMkZEOTVDQkFCRTkKKzU3M0E1NkZCMTI5QTk3NDU4Q0VDMDc2ODMzMTVFRDRERkFGODQwMzNFQ0REN0ZBNzdFMDAwRDM2MjU2QzRDNUEKK0E4RTYxODc4MDY1RDU1NUM5QzZEMDg1MTE4RDIwRTBFMEIyMTEwMDA3MjVENDhBQzc4NUNGNTJFRUNFRTBCODMKK0VCREUzMDZFOTVCMDM0NDhFNjhBNjVFODlDRjY2RTYwNUQ2OEE1MTU4N0I0NkVFMzlBQzczM0ZEN0RFNjE4QzMKK0RBNkZFMzI0Mzc1MzY0NTI1NkVCQ0UwNTAyOTU4N0VGOTUwNTI0MEUwN0NCQ0RGQzdFOTc2RjkxODNFM0NBMjgKK0ExMTU3QUU3RDBDMjAxMzYwQTFCQ0YyMzc5OEIyNDM4MTRBREVDNEI2MTdEMDY0RUNEQUNERTZENjczMzYwRTAKK0YzQjlBMTY2RjYxMzQ1QkQ2RDg1QUM0MkQyNTFFNEFDRkE4M0JBNzk5MDQyNERGMjkzMjM0Q0NFNDQzQjVGQjkKK0UyNUZDNTlEMkVGQjVBMjQwOTEzQkQxRDFEOTUwQjE5ODM1NjJBOUJGMTg0NzRGM0FENkZEMUZCMTEwRjFFNUYKK0NBMjJCNTZBQzU0NERDNTc2RkZEMzFBNkUzMDkyQzJBRTRFMTRGNzQyQTM0OUQ3QzUxRUFGOTgzNjRBOUIxREIKK0IyNTlENkZDNUJBNUJGOTI4NkYzMTAyNkE3Q0JEQ0FBRUM1QjM4Njk1NTRBMDUxNzFDQzY0ODUwNEZBM0Q3ODIKKzIxREU3MzFGMzkwMTdCNDAwNzY4NDYxMjlGQjhEMjVBNDc4NTFCQkJEMDM2NDVBRkE0MzEwNEE2NkUwN0ExNjcKKzk0RTE5ODY3RThDMDE2RUNGNzBDMjRENTkzODE1REE5Mzc1MkUyRTg0Qjk2QzNDOEFDQURFRjdBOTMzQkM1N0UKKzNGRjZCRTg1ODA3QzEzRkE2ODMyN0Y5OTEwNzFDRDZGMkI1NzY3Q0VCQkE3NUI0OTY2RkJGRjQ4NDNBQ0QxREQKKzI4OTk1QkI0NTZDOEQ0ODM2QTdCNTM5NUNFNTEzNENDNDQ3QzQ2OTUzNTYzMzVENjE2NEYyMzUxNjBCRURFRkYKKzkwRTQzMURGNkQxMEY5Q0EzQjA5NjhGRUUyM0FGRkMwNDkzM0Y4RDFGOEI1NjQwRkUzNDg0OEE2NzJDMzUwNzYKK0Y0NTg4QzA0QTkxNjAwNTM2Mjk1OERCMzNFMkRFMjJEQkNGQUY0OTVFNDZDQzVBNUU0RkU2MDdFRDA3Q0VBRUUKK0JCN0E1RjUyM0Y1Qjg4QzZCRDU0QzczRDY4MDVFQzUxRTgwRjU4NzZFQkNDMzUzREYxQzA4OTNBMzdGMDJCODcKK0MwM0VEMzQzOUFEQ0QyRUJEQjNGQUJBNjM1OEU3RjkyMjUyMzhBNTY1NDFDOUQ4QjI4NUUwN0VDNkI5MkE0RDcKKzM4QkJEMEZGQ0JFQjM2MTIzRkY2OTk0NUIwQzU5QzA1M0E1MTg0MURCN0RFMDg5MThEMjdERjBDOTU0N0UyQTQKKzVDNkI3Mjg3ODE0OERFM0MwRTEyMEM1RDZDM0Y4MkI3MDhFOUNEMjkwOEI4MDc2QUY3NzJGQjA1MEVFQUFBMzAKKzEyOUQ3RUI4N0JDRjNGNjkzRTEzMjhGQTk0Q0EwMjYzRjE0RUZENzIyQzU4QTlCODdFNzYxRDk0N0E5MjA3NzkKKzYzMjU3QkEyNjkxNDg2ODMzNzdFNTVGRTI3Rjk5NDEzRDQ4ODk5RjdCOTUyNDkyRkNFNjY3MTgzREJBQkJBQkQKK0NEMjcxNkIzMTZERTA2RTYwNkQ0RTZEQzY1NEIxMzdBRkQ1NkM5MEZFOEU2QzcyQzkxMDI4QTgzNTgzRkJFQjEKKzMzQTEyOUVDQUY2ODQ5RUJDQjlBRDdBOERGREZEMzJCQjQ0ODZFMTUwRDZGNEQxMzgxQzA3RjQ2ODZCRTZBOEUKK0MyOTdEQTNGRTk0NDM5NDNENUM4QzQxOUFCNUEzRUQ5MTlFMEIyMkM0QTQ1RjFFNjFCRDMzRUZEMUJCQjYwOUYKKzE1REIyNTY2NzBDODU0MzJBMUYxOTAwNTQzMDMwMDMxMjg2NDNDMjUyMTNDOUM5ODhFMzQ0QUEyMTlFMzY5NDUKKzIyMDFEMDQ5MDg0MjM0RTY5QkEyOTU0Mzg2MEEwRjE5MzBFNkJGRjIxMzA1Rjg0NzI0NTQ0MEVERkFGOENGQzAKKzVDOEUwMUIzNTkyOTIwNkZFRTYxNzA3RENGMTE1NTE3NTc3QjZDQUY2QURFMzU5RDI5MzU1NTA5NDFDQjc0MUIKKzlGMTVDMjVFRUUxMjE0QTI3OTZGRjVFMTNCOTAxOEUzNjE4RDQxRjZCM0EzRjkwNzI4RjMxOEVERTcwNThFM0YKKzg5QjA3M0E5RTcwRTE1RkQ5RERDQTk5OEI4RDA3QjgwMjQ3OENCNTI4OTM0OEY0NkM2ODE3M0EzMkQ5QjBCNDYKK0RDNTYwNDcxQjhBNDhGNjUyRTk0MkU3OEY1MjBBQjM2QjEzRjhCMUY4MzYxNjE3RDlERTRFNjM5Qjg1RkVGMTAKK0U4MUE5NDRFQjVBRTkxQkU4RjU4RDIyRjkyMzZBQ0Q0M0IwQjAwMDg4Qzc0N0NCQzEwODkwRTg0NDBFMDI1RkYKKzhGOUI0ODlCOUY3QjdCREI5MTE1OTE3OTI5NDBDNkFERDMwRTI0NzI4MDEyMkQyMDQ1Q0REQ0VGRTNFOTg0MzkKKzIyRDRENzVGNDJERjEzNUM1RTM0MUY2QkVBOTE0QkQ0NUZEMjk4NzZDM0JBMjNCQTkxMDU0NTY2OUY2MzY2NDcKKzVGMDk4RTc3OThGMjI2ODc4OEIwM0EwOTA3RTY1M0RENzY2QkJGRTYxQkM1NDREMzczODhEMTcwOUEyMzlBMjgKKzFDQTEyQkM4MEYyNEUzOEQ0MEIxOTdCMTI0NjA3OThGMEM5QTRFQkJDODBGMEVBOUVGNTg1OERCRTgxQjU3QjEKK0ZENzAwNjYzNTIxNUU3Rjk4NUJDREU3QTU5MDA5RDlBM0VBMkQ5NUVEMkE4MzY5NzgyQkIxREVCMUUwMzMyNDQKK0MxNkZCNzA3RTk1RUEyOTM1OTNBNDI3MUVDMzcyODM1RTJGQkFFQzA2NzE2MEIzQ0M3RDMxNjkyMTEwQjk1MjMKKzM5Q0NCODJDNkY3Q0M3NEIwRDZGNzg5QURDNTI0OEQwMUQ1RjFFODJCQkVFRjgyQjk5OTM2MjJDQUQ0NTlCRkYKKzVFQUFCNDE5ODJGRkNBMzI0MjI3Nzc5Rjg2OUE3NkQxNTdEQkFCMkM3MEQ4QzM3MUZBRDQ5OEQ1QTIyQURDMTIKKzVBMDkzRTdCQjYzRTY5MThFQzUwOTBGMUFGOUQzOUM5QjY4RkZGNUM0Qjg4QThFODY0Rjk2RUVENTU2NEJEOTEKKzhGNDA3QkRGNjMxOEUyRUM2RDg1MDA5MkU2MTAzRkFBRkNGRDQ1MEFENTA5NEUyM0JBNjhDMkNGMTgxRDJDRkEKKzYzOTJBNUExNTQxNUEzMDkzNzFFM0ZEOTg3NzJFMjUzNEQ1QjIxNDcyNkZFNDJFMjREQjk5OTg2RjIwQjhCNkIKK0JDQjU3NjUwQjQ1MDRERjlDMTA3RkNDNEU2OTVBMkU4QTJEREU1REM1QTA1QTI2QUZCMzM3MTJGOEFDMkU1MTcKKzMyMDJBQkZCMjQ1RUY1QkZGNEM1RDdDM0MwMjgwRDY4OEMwQ0EwNERDMjgzRTE3ODIzMzAyM0Q5Qzk3MDIxRkQKKzMzNkRCRDA0MDA0OEVFM0U2QTg3MjQ5RjExM0RDOEFFNEYyMDNCMUFENkQzNTA5NTVEODQ5OTBBODYwQjIzRjYKK0I4OTY4RjBCNjhEQUNCMEJBNDU2RjI2NzIzREQ5Qjg3Q0E0QzEyODI3Njg0NEJBREYwNjI1MzlGRDE5MzExRDkKK0JBQzU5OEFDQjQ3NUFFMkZEOEE5NjUxMEYwREM1QzYwMTIwQTMzRkUwQjZEQzM0MzQxNjM4RUE3NTE4NEU0QkMKK0Y0RjY4MUM5NDY0NzYyMjI0QTczQzIyRjYzN0Q4ODFCRDZBMDE5NDNENUEzRDNBREVENzI1NTFEMjEyNEVFMzgKKzk4N0E5QkYxQjU5NkQ4ODcxRDg5OTBFRjM2MTMxMEZDODFDQUUyOEY5RThEOUEwNUY0RDQzMjI0OEM3QTdFM0QKKzNGMjExNDkzMzM0MTgyRDdBNDQ1NDBFMjRBNkY3MTZFNzg1RTRDQ0IwRTMxREQyQ0JGOTkzODdEQjRBREJDQTUKKzJBMUZGN0EwNjc2QTU4RUM2RTkwMkQxQjlDMUQ1OUIzRUQ4MjQ1MTM5MkY4RDkzRDQ2MTAwNTA1OEZFQTQ0Q0EKK0REMEZDMjA0OTU4MTM0RDY3Q0MyRjU0N0I4QTFDQUUyMzRBQTdDNzg5QUQ1MTVDNzMzMTU1MkQ1OTgxM0YzMDYKKzQ5QzE3QzgxQjY4NzZGNDNFNDE2MUM0QzJGNTE1MzRGRDhGRDkwMzJBMEZDODAzMTdCMjAwRTg4NzVDMjEyN0UKKzdENEFFRTlERjFCODFBQ0U2Q0U0QzRDNUE3NjA5MkU4NTI4REQ5NjFDQkM5QjdDMjNFODUzRjg2MjczOTU3ODEKKzkzMkFENkMwRkNFQjM5N0I3NTUwQjQzRTlGMTJFMzMwREFEODhEN0FBRkRGRDM2RjA0NzNGNTAyRTU2M0Q2NkMKK0NFRjZFRTExMDBFREJEMkM4QjQxNzNDQ0ZCOEFFMTlDOEM5ODFFRjIwRDU2RjY5M0VBNUI2NjFCOTRGNjE3ODUKKzY2NDAxMTJCREZCMTU1OUQ2MzlCRjE0REQxRURCQzQ5RkVGMkZBM0U4RDYxQUE5QkYwRkI1NDVERjhDODkwNDgKK0YwMzZEODNBMUFGMDc4MDk5RTNFQkEyNDZFQjgxNDBGQzhERjVDQjc1QjBEMkY3OTg3QUEzNUNDMkJBMUNDNjMKKzM4NkYzMzlDMEU3NjJBNEY0MjE1QTMxNzVBNEQ5MzMyMkY2QzczNzQyQjIwMjJBRDE1MjRGMjlGNTZDMzJDMjMKKzJGRUJGNTZGRURFNEM1ODgzRTNDMzU1MkIzRUJEQjc3N0Q4NTI1NThEMTdDMjFBNUFDNERFMzIwRkJBN0NFOTMKKzEwRjREMzdDOTRGNkY4NUMxRUZCMkZEMzFCQzQ5RjU5NTgxNDJCRUVFRjI3N0E3Njg2NTY2NjA4OUZDRDY4QTYKKzUzQzlEOTQ1QTREMkJEN0RDMUQ1MzJGNTNENjM1RUQ4MDhEM0ZCMEU3OTg5MDQ5NDI2MkIzODBERkFGQjM4NUEKKzE2RUMxMEExQ0E1QkRBMDc3ODdCQ0FCNzdEOUY1NkZDMkIwM0ExQzUwMDIyNkM0REJCNzgyOUI4NzUyODQ2MDIKKzBERTE3QTNCNTJCQTcwMUQyNENFRDAyQzQzMzEwOTk4Mzc2OTEyMTE4MjE3N0VCM0U1RDU3OUEyREFDN0U0MkUKKzM3NkE2NTk5NzY1N0Q0MzVFRjhENUY2NzEwMUE5QzZCNkUxMUExRjFEMUQxQkNFQzNEQzM3REYxRDExMUNCMjkKKzAyRDExMjQ3NDdDRjBBQUFGREM0REYzRDZCREQyMzg1OEMwNzA4QUYwOUQxRUU2QjhFNTNCNkRFQ0IwRUM0M0UKK0NGRjU0OUYzNDgyOTBFMUY1M0ZDQkFGNjI4OEQ2MTRGMkREMjkxRTk1Q0Q1QTgwMDcwQjA0NTVDNDIyQkYzMUEKK0I5MzU4MEZEQUM0RkJCNTk5QTg4MDA5ODRGNzUxNzBGQUIwQkJCNDc5MERGNEUxQjJDMDg3QURBNEExNUJDQUEKKzA2RkUzMTlGRTQ3MTVFNzIxNjkxRDNFMjMwQzU3RENCN0I5Mjg1RkEzQzAwMDVCQTk4MDZCQzlBRTU1MjI0RDUKK0Y1MDFGMUI0M0ExMTE4MUIyNjNDOUUxMkIxNjcwNEE3MjQxQjE3RTY4MEIzQjY5QzAyMTlFMjM5MDYxMkE0M0QKKzA4MUZFRjAwQTg5N0M2RUUzQTA2RjI0RTI0MjUzRDQyMjhDN0I4NkYxQzEzREQ5QjE3OTFGMTMwQjQ1NUQ4MzMKKzExOTcwQjEwNDEyQkMzODZBNTk2OUEwMEQ2NURFMDlCQzE0RDI0NkU0MEQ4OEIzQTA2NkYyQzk1OEQyNTc5RkYKKzcyRkU5OTI2MTY1MTRDOENDNUNFRjA3NEQxQTIwQjIwMzJDODhCMTRFQTY2QjJBNzA2MkQ5OTYwOThDRDc4NkEKKzExMTJGMUU5QUNGMkI5QzQ3RkQ3QkFGQzAwNzhEQTQ5RjkxNUJBRkQzMjk4OEQwODYxMjc5NjlBNzA2OUJGOTgKKzAyQjJEMDAwMkNGNDUyNTAwRkVFNjkxRTA0MjkxMTk0Njg3NEI2RDdGRTMwRTdBRUMyODBBMEJGQUU2REY2N0IKKzE3NjIzQjYzMzEwN0FENEY0ODY4QjNEQ0RDODJDRkNCMDk4Qzk3QTI4Qjk2NDBEODkzM0VFMzFBODc1RUY2MzkKK0IyMUI5RTlENTAwMTFCOENFNTY5NjI0MTgwMkJEMThGOUE3NkY3Nzk4RjlDREJDREU1QTVDNkU2QzI3NUNFRDIKK0JEMUY1QTNEMTQyMUYxNDQ1NUYzNjNDNjBFQUYwREM2NUJBQjlENUQzM0RDMEJBRjM0NkUxRUY3Q0Q1QjFFMTEKKzA2MUFFRTExRDAzMDlGREM4MEY2OTEzODkzMTJBMTdERDMzNTQ5NkU5MTZCQUMwNkFGNjBENUUwMDQ1QjJDRDAKKzQ4ODlBNzIyQzU4MUY0MkFENTRENEE5ODAxQ0I0QTUwQjIxQTM5RUNDN0E3MkU5RENFMEM4RUYyNkVGRUNEMjQKK0I3MEFEM0JFM0E1N0EzREZBMjk0QzhCMzVDQTlDNDEwM0U2M0I1MzkyM0IyRDlDNzQ5RDdBNzVBMDE1OUZBOUMKK0QwMDM4QURDMzM2Qjc4Q0IzRDFGNjNDRTc5MDhBNjlDRjE4REJBM0Y1MDNDRUY4NDQwMjJDQTM2NkFDOENFRDYKK0IxQTVDNEY0RTYyNzZEMkQxQzAzODk4NDk1NzA3MDg2REQxRUE2NThDRERGQTY5QTU4NTBDNEMwMEYyQjRBMjQKKzA4OUFCNEI2QTkxQjkwMTgwNjBCMjBCQzhFQkEwMDkxOUVFRkU5RTg0NUM4Mzc2Qzk0QUMzNUUzMEMxNDBFQTIKKzlDRUE3QzBCRjBBNUVEMUM1NTJDMkExNDU4RkFDMDc2RTgzOTBGODhFMTU3REExRERFNTEzOEM3NzMwMjIzNzYKKzBFN0NCRjNGMjYyMUU5NjIwQ0MxQTBENEEwMzgzNURDRjMzNjgyOTNGMkIxQTgyMEEzREVFOTk4QTFGQTdBRjQKKzdERDczRDZCNzkwRjZERjc4OUZFMjk5MDY4MTdGMjFBODA4QTNGOTZGNDVGNjhFQTg0MUFENTYwMDQ1NkEyNzAKK0U2QjEzRjU3Mzc5Nzk0MkY1MUYwOEUyNjMwOUMzRUE4NTlCQjRBODI4NENFQ0VBQ0Q1MjJGRTZGNTIzNkUxNzQKK0IyNDRGNDkzNTE4QUZERUZGQ0RFRUJCMkIyNzI2NjdDRTNBRTBDQUQwMzFFRjlDMDBGMDFDQjc0MDM1NzYzMEUKK0NDQjg5QTg5NEVFRDA0MTM1OENDNUU3MDk5NzZENUI1NTMyRjc3NUFEQzM3NTMzQ0EwNkQxMTRFNjg5QjhFMjgKK0Q2QjI4MkU5MDk4QkExQTBDNjBENTA5MEY2MzA3NTJBMjIyMEJFQTU2MUU5NTFGRTdCNEZBMUI0ODYyQzI3ODcKKzJCQTlERjk4QUIxNjFCQzBGNzFDRDhCQ0JDQTQ5MTBDRTY5MkZDMzIxMzAzODkyNDE5QjZDRTFFQzhGQkI4Q0UKK0EwMUY1NTA2MzgwMjBFMTQxNkI2MzhGNjE4RjQ4NEFFRDNGMEM2RjlEQjZGRjBCNUU0MzgwOEM1QTU0MTExNDEKK0JCNjdFMjQ5ODczODZGQjg0RUQ1MDNERjE2OEZERjVERDQ5OEFBMTUxNzI3QUFCQUY1N0I5MDY5MjQ0RThGMUIKKzMxNTAxMUFGRTUxRDg0NkQ2MjIzQTY5ODhGRUNFMDBCOEE4NzFGMDQ3QTMzREM4N0EzRjg5NkU3QjdFREM3QjEKKzlFMDE5OEYzNUFENzk2QzhBQTZFNjU4NzdFOUI4MzY0RTFCMDhFRDM2NDY5RDM1ODU5QzhGOEQyMTQ0QkRERjkKKzA5N0EzOEQ4REI2RjE2NTAyM0I5M0RGNENBQjhCQUY2MkEwMDJEQUIzNjczMTFGRkNFRjE2QTM2NDRDOTMwOTcKKzY3RTU1M0UwMTU3OTlENEVCRkZDRTQ4NzdGRUMwOUE5OUVEQzE2OUQyNThGNzBERUY4QjAzQzk5QjREQTkzQzQKK0QwMjZDMUZENjY1NkI0NkEyQjlCQUFEMTJFQ0U5NUNFNDNFOTFCMDJFMUM3QzE3MDYwQTA4M0ZENkVCQ0Y1MDYKKzg5RDI3RkVDMDIwMUNEQ0IzMzIyNEFCRUEzMkNGRTczREIyNTk0REMxNUU4RUY1NjRFN0I5RjY2QzhDNTI3NDcKKzk1QTRCQkNDMENGM0QzRkRCNUYyQ0RDNEM4QjUzMkVGREM0MTEzQTYzQjU0NTAwNTQxQkQxMjc2NDZGQ0FFMTMKK0FENTgwOTVEMkM2NTE4Mjk0MUFBNzgzRUZCMkM2MjdGMkJFMjRFNDIzQzdBRTBDMzIzOTI1QTRBQTEyNENDODUKK0E2NUNFRTFGMkI5RkZCNzNCOTc3RDhEMEZFODI5QjY0OTgxOERGRTI2NjY3RkIzRTExOEVCQjI0REZFNzRGMTIKK0VBMDMwOTlCMTdDMkE0OTg0NDlFOTM1REVBMDY0QUYxOUIzMkVFOEE4MTkzNEFDNEZFMjkxNkM3MEU4MURGMzkKKzY1QjM3NzczRTU3QzBDNjZENDY4QTg2MEUwNDg1MkVEQzQzNkFERkMwRjdGOEM5QUQ2QjNCQ0RBQ0Y5RTA4RkIKKzlBNUMxNTlFMEIzMzVFMDgwRjZGNTFCREE3RjUzRDFFRjQ1QjVFRUY4NjQ3OTcwRDE5QUU2Mzg3NzE0NzY5M0YKK0U3QzlERDY3MjFDQkU2RDk1NEE0Qjc4NDA2MDk3OEJCMEM2OUE4RjNGRUJFOTVGRjZCNDg0NjFGN0U1MERBQzgKKzIzNkM0MDhFOEJGNjkyNTk2RUUzRDNCQUQzMEQ3QzkwNDA3Njc4NTk0RkRDRUZCQjAxQzM1NDVEQkU1QUNFNjgKKzMyQTdERUU5NTFENUJEMUM3MjhFQTIyOTkwQkE1MTFDNTI0MEU2QUQ1NzhEMkU4NTg5MDg0RTc5MkUyMzMyRDAKK0YyMkUxQzFDNjkxQjlGNThEODFGOTk5QUFEOUJCODlFMTZDN0ExNzJCQkM3ODdEMjU1OUE2RkQ0QUYwMkRGMTAKK0M3NjIxRkIzOEVBRjQ3NDUwNjMzNTkyRjM1MEU1NUQwNjhFMjQ4QkZBMzcxNjY2NkVCMjk5NUVBRjM1MjgzOEYKKzZCNDNDNTZDNkFCNEQxQUNDNTFFRkRCRTNDRERGMjcwN0Y0MjNCRUUxMDc3ODgwOTQ2OEIwQjI5OEY0REYyMjgKK0RDQjNDMkZDQTc3QjUzNzQ5Nzk4QkZBMzA2RTg1QzZFQzIzQ0VCNDY4RDA3NDY2RDAwQTczRkQxNkY4NTg0OEIKK0Q0ODA2QUU1QkVCMzBFMkI5MjU5RkRBRjI4NTg4RjY5MzFBRDIzMTg2NTUyNkE4MkNCNTJDRTg1RjhDNEU1NUIKKzU0MjI1MzZCNUIzN0E1OEU1Q0JFNEQwODJBODA1NjVEQkY3MjdGNzgyODJFNUJBMTE4RTdFRjYxREEyNDBBNDgKKzJERjQxRjMyMEU1QjhDMTZFQkU4ODExRTVBREZDRUEwNkYwMzFDNUVGNDBDMzJBNEE4NjczMDY3RjNEMDVCQ0QKK0QxMjQyM0Q2OTVCODlGQ0E4QkY5OTc0MDAxRTMzNDlDNEVBQjVFNDdFMEU5M0FDODg0QkQzOTAwRjM4MkRENzQKKzU4MzU1MzQ0NkZGMTM5OTU1NTVENDMzNUQ2QTVCQUQ4QTgxRDkxODNCM0NCNDUwMEFFQzI3NjIzNDAwMjE5MEEKKzc5RjNEQjM2ODI5NzRBNTVBQTQ1Qjg2MTFFOEU0MjU2RUJEQjc0REIxRjQzQkYwOTU0RDMyMjkzQjlFNzRDNUYKKzNDNzU3NkExREYwNTRFNzVBQzIwQTBGNzdDMUJENTBBOTJBRDA3NTVCN0FERUYxMTlBNDdEOTI4MTYzMUMyNDQKKzNBRUI4NzQ1RjhCNzY4QjZERjE4QUU4OTNCNkM4MTc4OEVBMUY0NjY5QTFGRTAyNEU5QkM5MTcxNTIyMURGQzUKKzAxQzZGMDFDRkVGRkZENjcwQzE2RUNBQTJDMjFBNjM1MzQxQTQzRjQ5MjNCRkM0Mjg0RDcxRjg4NTMzQzYzRTIKK0UxODVFNDA1ODUxREE1QTczRUM0OUY2QkREREQxMjEwRDkwQjMzMEE1ODk5RDNCQzM3QkY3NjI5NzAwRTZDNjkKKzM1NEU2MUJDODdCNDU0NzdCRTRCOThDMDNBOEY1MzYwQTc5RTA5MkY1RkI3QTkzRDgyQzk0QzYwOUMwQzVCOTcKKzFDRDRCRjNDQkNGNTUzNDYyQkU4NDY3MUY0RTBBNDM0N0M3RjhDNEZDNzkzMTk3QUFDMTc1MTNFMTVDQjczMjEKKzU4NjYyMEE1NUQ1MDFEMDAxMjBDQTFDMzg1NUNFQ0RBNkJCN0M4MEFEOTAxQUNGODZFRjMzOEM5QkQwQTNDRDUKK0M2OEM3RkRDRkVFRkEzQTM5N0MzNTlEOTFBQTFGM0IzMkZDMTMzRkQ1NEE3REQ2MDM0QUI5NjNFOEU4MzRBOUEKKzNDQkNFQzZEM0U2NkIzMjY5NThFQUM4RUU2RTI5OTJGRDM2RDNGNEMxMDRFQzdDODBBMTlCODA3NzNDNkJFOTkKKzVDNjlFRTZEQTBCMkFERDUxNEIxMzMwQTc4QjdDNEZDMzYxQzhGNzI2MkVDNzRCMjJGMjI4NUI4NjQyNjZFQjMKKzRBNTk1MTkzMUI2RTQwNjM1RDI3RDNBOTU1NDk2MDkyNDFCODZGNjUwREU0RUE3N0VDMTI0ODNFQ0EyRUE5MTIKKzFGQ0IxMTNCQUQ2RDNBRDAwM0ZGNTEzNDAwNDNEMzlFRDY3QTRFM0FCNDhDQzhBQkFFREUyOTVGOTkxMUVFQjgKKzk2RjE2OUVCQjQzRjgwNjY1RDhFMkJDNjJFMTdCRDc1MkZGOUZBNzg2NDI1MDAxNzdCMDBFMUJGODQ3ODk0MUEKK0JBRjgzRUQ0RDUzRjEzMTY1Q0JFOUI4NEQ1MzdENUQ2NUUxQzg3NjhCMjc4MTJBNjFERjhCQzgyMzI1NDFBQUUKKzc3QTE5MjA5QzY2OEUyMDFCQzIzQ0ZCMkM4OTE0NDM3QkYzQjE1Q0RERjRGNjVBOUFCNEE5QkM4MzU0OTAwQTgKKzEwQjE0RjIxN0U4MTMyNDA4MzYyNkU3NjBDQ0YwQjA5QThFQUFBNzAxNzQ5ODY3RkY2OUNEOERGNEMwQzgyMjkKKzQzQzU4MDE2Q0UxRjk2NDk1OTVERTRBOEJERUMyRDFCMDZGNEIzRDRGQjBGMzIwNTVBNjZGQzkxN0ExQUE3RTMKK0I0MkQ5RjAxNEVDNTgzMTUzMkU0RTFBRkREN0JFMThDOTgzNDMwMEQ0OEZGNDc2RDJBNUQ1NTExRDM0NEVCNjMKK0VCNjAxNEU4ODNDOUFDQUMxRjc5Q0I2NzFERkI1NUIwRUQ0NDA0QjU1NUQ2QzZERUMwOTFFQkU1RkY1RkZDQUQKKzhFRjZENkZEMTA1RUQyQzE1QkJEM0QyMkY1RTJBMUNDQUFGN0MwQzEwMkYzRTU1OTY4QzlEN0YzMDhCMjk4RjIKKzA0MkJEQTE3RjQ4Mjc4NTBCMjI1NTkyN0E2N0Q3Qzc3QTUxRjgzQjg2OUQxNzFBMjdGQzYwRTYyMkNFM0Y5OUQKKzQ0NDAzQzk1NzJENTgzQkNFNDQ5QTY0Mjg5QjVBMUQyNENCM0NCOTA0NDQyN0RDQTdFRDY1M0YyNDcwRkUyNzUKK0I5N0E4OTBFMTc3NzdCM0EyQUMyNzc4MTEyNTQ0MDMzN0E3RUQyRDQ5ODk3NDY2QjZBM0I1MzQ4QzAxM0I4NzkKKzM5ODI1MUUyQzY5QUIyOTE4M0FBNTgxRUUwQjlDNjVCNDU5QzdBQjUwMTBBOTgzN0E1MDA2MDBDMkYyNEY4RDgKK0Y4MTFBNzE5NDY4QzNCMEFGNTBFQTkwQ0M3RTM5NDg4RTk1RUU1NTZBNUU3NzQzOEM0M0Y3NTdGRjkyQkEyQkIKKzUwMDYzNDBEMDYxMzk2MDhEOUE2QTM4QkQ2MUU2MUZFRTAxMjc3QkE3MzlFODM1RkQ0NTM1NzVDQTFCNTk5NUMKKzVBNTBCNjE3QjEyN0NEMEQwMzk4MDkxOUMwQ0VGOEJFMDg1ODA4NTg1Q0M3QjhFRkUxQ0Y3RjAwMjU5M0Q2NzcKKzZEODNBNUUwOUVCRjVGNDlCRTRFRTM1MDQ3QzJCRjZFNjVGQjY0MEREODQxQTAwQ0JFMjczMDQyQjM4RTJBMTYKKzNENTI5Q0Y0M0VGNEQzQzVBOUUwM0E2NDk5QkZDQThENzM4N0VEQzQ5OUQ5QjkxNEVGRkU3OEFCMkJEMDhFRjkKK0IxQjdDRkEzNEI1MjJBMjhBNjZDMjhCRjEyNzdFQTUzRUM3OEQ1OTlFNEE3RjhDMkY3N0JBNjIyRUFGRDY1MTgKK0JERTAzREIxNkQwMEQ2QTgxQUI1RUQyM0VCMUQ4M0Q0RTg1N0IwN0ZERUY5M0M1MjIxOUIwNEY4N0M5NzM4RUQKK0IzMkNBNTg4MDA3NDk5NTM2OTYyNzE2MDRBNzczNjYwNUNCOEVBQThDQzg0NTk0QTdFNTMzOEE0Rjk3RTYwREYKKzM1MTcyNjY4REFBMjM1RUE0NDQwNEI5N0UyRTAxMDQ2OEMwOEEwN0FCNEU0ODUyQzVCOTU3OEYwN0E5RERENTgKKzYxMTNCQkE5MzcwODhCQkRDRTgyRDIwREQyOTJFM0ZCMTM5QUUxNzhEMzU0OEI2NjI5N0RBNEUxNDg4QzM0MEEKKzIyNURERjEzMUY2QkU1NjVDMTUzQTc2NzAxNzRGRDlFM0Y2MUI4N0VFM0FEREU5QzVCMjI5M0MwMDQ2MzdBMUMKKzYyMTY2RUVCMTYxQzgzN0ZGQjA3MzBCMTY0NUMwMUM2QjE5MkI3ODFGMUM0QkRFQTBBM0VEOUQ5ODI3MEZEOTMKKzk0QzFDN0ZDNzM2MUZCMTVDMzBCQkQ0NUFCNzhBRUE4QjhFMjk4RDU2QzQ4RjBEREI2Qzk5RUVBOTRDQkNEMkYKKzdENkQzQjU0RTZDQkRFQzU2NjgzRDI4RjYxMzc0OUQ1MTZCQUI5RkUxQzIwNjJCQjYxNEREQjM5RDJGQURENUIKKzMxMTFDOTc2M0IyMDFFNDE2QjlFMzc4QzhFQzVDOTlGNkFDQkU5MDE3RTcxMjc2OUQ5NzYzOUNENDRFOTdFNEIKK0FFOUNGODNENkM5MkU4MDRCNDI3RjZCQ0U4RTY2MkMyRTNFMEUzODQ4QTlGQzcxNjRGOTk2MDNENDdGNzQzOEUKKzhCQjM3Mzc3NjYyRkZDMzI1RTQ3NUNEMjAwOENGNjdERDlEMkY1QzczRkEwNjczRTgxNTYwNTFBMzQ1MTFDM0YKKzM1NzMxODg2NUY1M0M0ODZDRERFOTI1NzkwMzkyM0I4NzdDNDU3NTg3QTVFNTMxNjI5NTJERDNDODAzQTZENjIKK0RDMjJFQjcyQjM2MkRFMDU4MDM0NkIxQkU3MkRFQkQ5MUI1MDEzMUM1RjY4Q0Y0RkVBREVGQjE4RTM3OURDOEYKKzlCQjZERUNFMUMxNUU3MzlFQjQ1MDBDODY4OTZBNUJDQTA0NUIxMTRDMzYxNTRGMTFFQzFDQjMxQjRFOUEyNjcKKzQxNTMzMUI2OEI5MkZFNjgyODRDREY2NDhBOUMzRDNFQTA4RTcxOERCQzBFRTc0MkZFQTE5MkVCQTYzQkQ0MEQKKzVDRTZBMjA0OEI1NjRCOTJDQkI0MTEwMzZENjZGRTc2QzlGRUQzNzYwMjEwMkZGM0Y4OUJBN0MxQUREQkUwM0UKK0RFMjlEODYxOTdBNzlEOTM4MjAwRUQzQ0I5ODhFMzBFRjYxMkQ0MUQ5NjRGMUY4OEVBRjJCQjE4Q0M5MjRBODUKK0U1OTkzQzA3QkMwMDNDMkNDQzY3NDdBOUZENjUxNTIzRUEzRDFBNjI0NTMwRjJEQjBFM0M4NzIwQ0MzOTlERjQKKzhGRjM1ODU0ODVDNEVBN0YzRTE2RjZCMzU2NDY4NEJDODRDQzEwN0M5MzNCNEMzOEIzQzIzQTFCNzkwNzEzREEKK0JFRUUxRkU1REE3OUM5M0NCODRBQUY4MDBBNjhGOEFFNzlGQkVDQUZBMDFENkFFNTlBRTIyMzRCQUJGRURGMEYKKzBFOEQ1NDczQjU2QzQxQUFFNDlDOURDQTRFQTUwQjE2Q0JBNTBBMkU5MkRBMENCNURDRjZBOTE3QTk3Mjc3RDYKK0ZBMTIwQTc2NzZFOUZERjVDNzY4Njg2RUJDMzI2ODIxNDM3MUZEMkZCMTg2OTY4RjhBNEI2MTI0MkI0QjM5QzIKKzAxOThCQUI4MzVFNjMyREI0Mjk3NDMxOUI1RUJEOTY2OTM0MkYxRjNFQzFFNDlGM0FBNDI0NjFDMDE4MkM3QzYKKzFGMDcwN0FCNjFFNDQ4QTk2NjY5OEYyRDA3OTk0Q0Y3N0E5ODIwMzE0NjZFODc3OEY5QkEyQzg1REQ4RkUzMzkKKzk1QkRBNUZEOUREOUU5RkZEMUUxQ0YxOEQzQjJGMTA0OEU0QjA4NDlFOTI3NjdFODNGQ0E4Q0ExQ0U4NUI5RUQKK0QyRjhEQTM0RTEzRDJBNDRGNjMxMUM0RkNBMDRGRjc1RTFCQzlDNzIwNDFBMEFBMURCRTQ1ODI1QjlFQkRDM0UKK0QyMzRDOEZFMzJDQzQ0OEI5QjhBM0FBQzZCRjEzMUQ1MzZBMTMyMUQyMUQwNzMzRUY2MkYzMjM3NzA5Qjc3REUKKzMxNUQ3RkIzRTUyRTJBQjk0QUZBMTRGMEM5MkY2OTlDODlEQTgyNzhEOTNEQjI5REQ2RDVCMzkwRkM5OTUzRkEKKzUyNjMwRjlFNzRGMzQwODkwQjI5OUVDOEIxQTY1MzFCQjVENERFNzg4OTdGRjhFQzEyMTVCODRCMEIzMEM3MDkKK0Y0REUzRjlCQkY4QTcyNDBCNzM5RDg2MEFBOUMxNTk0ODRERkRERDk0NkZDNzE5ODdDMTZBMTA1REQ0NEJERjAKK0RFQkRBREJERTNEMTBBNzJCNEZCMzE0MUQyNjJFQTVEMTA5MDkzNERGQjQwQjhFMkE1M0ExQzgxN0NCOEM3MDgKK0ExMDFCMDkwN0RFNTVGRTAwN0ZCQkEzNkZFNjQ0QjBBRTVDMjhFMDM4NUUxM0I5Q0Y1N0ZDQkM3MjE0MTEzQTYKKzA1NTQxMTVFODVBNDdGODcwMkNBMDRBMDVFQTE0OURDQTQ2MEQ4NzJEQjc4NjY5REJFMDk1MURGRTUwMUMyQTcKKzkwNTZDMkE1NUY0MzJCOEU5QjEzNTIzQUZBMkREQjU2OUI4NTQ0NDZGQTVBNTMwQjhEMkFFQUU5MjU4OEQzNkQKKzU2MDEyQjdDODI5MTZBRjEyOTcxMjAwM0FFNEU4RTg1MEVCNDYyMjdENjc3ODMyNTc4NjIyRkE1QTU1NzkzRkYKKzZGOTQzOTY3NERFMTY2QzlGQTU4NkM4ODc3QjRBOTNDQjlFQ0ZBMjFDMjZBODZFMTY3M0M3ODEwQkE1Mjk1NDcKKzA5MzRCMzI4RTUwM0E0OUU0Q0JEODgyMzFGMjlEMDJFRkU0MEU0N0Q1MUJENzlBMDI3RjU1MTA3RkY0QTNCQzEKKzY5QTQ1MTYxQTM3QzkxNThCNTk1QkUzQkY1NDBGOTI5RjhBMjlBQ0VENjkwODU0QjRDNEVDQjk3NjcwQ0MyNjMKKzgzRTI0MkYzMkIxQjkzMEQ1RkFEQzUyQ0IxQUIzRTBFMDExNzcxNkZCQ0Y0MTlFOTZCQTM3OTkwNzVEQTUwMDAKK0E4MjA2QzVEMEFBNjQ0NzZGRDgwRDlFQTQ2MUE3RTU1ODhBQjUxODc5QUI3ODJENTI0NTk4QjlEMUEwQzI1RkMKKzQ2QkRFQkU3QUEzNUQxMDNDQjg1NjhGRURDQTRBNjYwMDZBQkIwQjlFNDJEM0Y5RkM1M0RDMzQzQjRFNTZGRTMKKzM4Mjc1OEYxNzFCQjQ1NDE3NTYwNzFFQUI2RkZDMzE1MThERDFCNDVDOTcxMTM4RDJFNkJGMEI5ODA0NUZBMkMKKzhENUU1RjFGRDI4REFBMDk1MEEyRTJDREJCODgwMzkzOTM4OEQzOTQ1QTU2RDhGOUU5RkMxQjNBQTJBOUE0MTgKKzlBQ0U5RTc2QkFEODJBQUMzMzBCOEYwODE2RjhGQUQyNkNGNjY0ODk0OTgwMjhEN0ZCQjAzODg5MjYzRjZCMkUKKzZCNzY2QTExQUE1NkE0RjBDNzE5MzYzRDE2OEIzODczQkU2RDg5MjI5NTdBRTZENTdBODY4Q0NDOUIyNjI5NDYKK0Y2NUNFMzVDMzA0M0UzRThCNUM2Q0M0MEJGQ0JDMzBBNTAxRTE1MjM0MENGMUVCNzVDNTdDQzk3MkRBNTgwNUUKK0VBNzY2MzgyNDc4NDg3RTQxMkZEMzNEN0VERjlFMDA5MjYwNDFDNzg0MEY0Qzk4NkFBMUNFNTlGODQ4NEY2MkUKK0FEQkEwRjI0NEUzMjk5MDcxNEVFNjQ0RDdDOEE2ODlERTg3NkYxQkMxNjZDRDhGRTU5NzY4RDEwQ0JDRDI0MjUKKzFFRkJFNTdFMjQ5QzE4MzQwNzI2MTA5NEY2QjU4QUMyMjVGNjk1RTdBMjQ1MDhGRjI3MDI0NUREMDU2ODNFNjQKKzVFRUFFOUE3N0M5MEYzMjdERTlEQ0IxREIyNDI0NzZGMTFFQUQzRjczNDhBMjcxMkNCRTA1NjIyNTA1QThEQzMKKzdBNUMwMzI2MjlDODA0MDQ3QjhEM0EyRTc1MkJDNkQ5RUM0QzkzMDIyN0VBOUIyN0FDMjhFNUI5QjUxNUI4NjYKKzQ0QjE3N0VENEQ0NkRFNDI3NTFDRTEzRUU4MjZGOThBNEI5NjRFM0M2Mjk1QzU4RTE5MzZGODIxMUNGNEI0ODMKK0JDNzRFRDc0NDYzQ0Y5OEFGMUVCOEY1MEY4OTJEQjdGNjZFNjRERTUxRDMwNkRCNjdFOUQxNTg0MTJENUU5NDAKKzBCREU1NjBDMEIyQ0I5QkExOTc0RUM1Njk3OTY3ODQ1NUE3NEFCQjBFMDk2Q0FERjExMEU3MDQ1Qjk1NkFDOTUKK0MxMDI3OEM1RkEzNzIwQkE1NkY0RjhDMDU0N0U1MjY0ODJCNDBCRUQzRDJCOUFBQTlCMkI2MjVGQzI0OUQwRDYKK0Y1MzM4MjQ3QjcwNkE2OUM2OTQ2NTQ3RTY4MjBFNUU4RkI1NkNEODNDQTkyMTZBMUU1RERFQThFQjJGMDA4RTEKKzlEQkU4NTJEMDZENTg2MjcxQUI3QzdDQjkyQzMxMERDM0EyNkRFQUJGMDgyQ0U1Nzc3MDExRTc3RTAwMUFBNTkKKzIyMUUxNDUzNTYzNERBQzlFRUEwMjg0MURCN0JERDNBMUVFQkQ5RDYzMERCQUQwMzdGNjJCN0MxNTFDRTY2NkYKKzUxQzg5MTFCMUU3RjU3MTE4QUFCOTZGNDY1RjRDRTdFOEFFOUVEOUU4RjkxMDQ3OTQ0MzQyMzE1OTc2RTQ3QkYKKzhBREY2QTEyNjZGM0ZEQ0U0M0RFOEMyQzc3MERCQjJFQTc0RUM1NTA4MTE3MUE1QjVDQTg4QzQwMkJCOTc2REUKK0EwNDlDMjlBRjkyMDI3MTBCRjY2NUM3NENEQ0U0RTE3RjRCQUIwNUEyQTBDRjFENjE0MTIyN0Q3OTIxMjNERjkKK0FCQjA0MjJDQkUxQTIwREIyM0MzQkZGRjY5OUU1MUY4NThCMzVENkI2NzlDRjNEN0E1REUwMTQyRUYwRTg3QUYKKzg4MjlBQkM2QUQ2NTdENjNFRTcwM0MxRjRGM0FFMTQ5RTlBMTVDMTc5MDVDMjgwRjZERERBQTJDNENDRDBFOEYKK0VEODYyQzBGNTQ4NERFOURBQzUyOTJFMjY3NjFCRkY4Nzg4QTAzMjUwRTMxNDMyMzhDQkYwOUI4MDdBODQyODUKK0NFQkM3OEU0QTEwNDBGQUY1RTI5Q0E5MkNGQTBFNEM4QkNEMzUxN0U4NjE1M0Y1NzU5RDJEMzFFODZCQjU0NzcKK0NEODUzNjM0NDYwQThCQUE3OTgyOEExQTE0RjkzQ0M5NTBEOUE4MkQ2MzcxM0VFMTdDQzA1OTgzNDYxQTJGRDQKK0Q2NDA3Nzg2RTJENDZEMTZERDZBMkY2NENDRUJBQTY5NTY0OTk2N0FEMTc5N0FBOTA5RjEwMDE5QzRDQzZEMkIKKzJCRjU5NUFFNEZENUQwNURBM0I3QjhGRjc5ODFFOEJBMDQxQ0ZBMzI5OThDQjdDNzE3NzgzRDM1ODAyRTQ4NzIKKzNCRDlDRjJCOUYxMEYwRDc2QkRFMzMwQzBCNENCNTkzNDM0MTFCRDAzQTQwNjgyRTg2Q0FBMjc2MzZENTgwN0MKK0QyRTJDNjU2NEE0MzkxNDk2RUVBRjJGQ0JBODQyNUNDNEIzNEJCOTNDMDFEOEIyRDhFODg3NjAzRDUzMUU4NEMKK0M3RTI2NzVDM0U2MzNEMjgwMDFGQkJEOEI2RDgxMkNFMEFGQjNDRkI5MDAxMzg1QjUxREU0MkQwQTgyMTU0REUKKzA3MTk1QTZDQzg5MTQ0ODlDMzQzNUE3RTc4ODVCODQ5N0Y2NkU5QTQwNEMwQkZGQ0I0RTQyNDMwNUE1NDkxMzUKKzlEQzU0NEI0MDE1QkZBMUQzNjBFODQ2MjYwRERDMEY2REI0OUMwMEEzMDc0MTQ0QTAzQTVBM0Q5NzJEMzk3RjcKK0Q2MUI0MjhBNjE4MTUxQzBBMTBDRENCMTUxNEFBMEYwNjVCODMxNDkwMTY0NjU0MzhEQjhDRUM0QTBCNzRGMjEKK0RCQURCNUNEMzc1MzNFNDgyQkYwQTU5OTE2RTU5OTY0NjJFODNGNDA1RjUxOEUzMDJCQkQ2M0M3RTU0M0EyMDAKKzUxNjM0QkEzODdBQURENEMxMEY2QTk1Qzg2RTQzNEUxRkI5M0RCOUFFOEZENTU5NTFBQTMzOEUwQjU4OTc4RDkKK0I2NjMyMURGOTJDMTBDODNCNzY0NDlDNDJCNkVCRDdGNTQyMUQxREFENDkzNUZFREQwMTlCNTk5NkNEMTc5QkIKKzc1Q0IzMEJCRDRFM0U0QzI2RDQyQ0MyMUE3NDExODlFNDcwNzE3NkNDMEM2NzY3RUU4ODZFNUI4OEIzRDM1ODIKKzJCNTI1MjhCNjI5OTBFNjQwMEY0RTU4NEIxNTYxMUIyRTlBN0QyNjg0NDU0QjgzNzkyMjVDNkE2Qjk0OTBFRTIKK0M4OEI5NzI3RkU2RkU1OUZEMEI5NDA4Q0I0QzQ4MjRGODIxNERFMDE1REIzQzkzNUJCQTRGMjUwODQwQkE5MjgKK0I4OUEwM0M0RjNCNDIzNzU1MUNCNjlEMDRCM0FFMDhGRTRDODYxNzFEMzA1NjY1QzZGMjZEQzQ1N0ZDRDI2NjUKK0QyNzgwMUJGRTQ5Mzk0RDY5MENCNkI1QjAwQkFFNzdCMzg0MUE2NjBFODY5N0VBMDE5MEIzQUJBMDFDRTEzMkUKKzdCQjMzMDk2ODZDRTYwMDdEMzIyQjFDRDQ0Q0ZDMDI1RjJCMzIyODRERkQ1QUMxQzkwN0RBQkFBODQwRjEzQ0UKKzgyM0NFM0NGOEVBM0QzOTdCQTlCREZCRkEyREE0REZFRjJFQzFFRDVCMzYxNEVFQjlDMjI1ODdEN0IwRDBENzQKKzk5NzE0NEEwODI0MjZCMEJBNzhDNEE2OTg5Q0U0QzExNjAzNzBDQjBGNEFGM0U4RDQ4Q0FDQkIwNUY0RjI1OTQKK0VFMDAwOTBBMjU2MjVFRTY0NDgyMDI3MTQwMURGQTRGQjJBNzc5ODkwRjI0RjcwQzA5MTc4NkFERUZENTQwMDAKKzQ2RDk0QjQ1NTYyQUY4OEE3ODEzNTY5ODA1OTQ1QTNERUVFMDA5OUQ3REVFRjA0QkQwN0FFQ0U1MTI3RjRGOEUKK0YzMEIwQTdERjI5NTM1RDQ4MzEwQjU3MjA0RkYxODE0ODk3QjU1NzI5NTQwQjMyMUJCRUM0RDIxNTdEQTIyREYKKzhFMTA2MzNEMkVGRDNDNjNCNDczRDUzMkYwQUZEOEQ4OTIzRUUyMTY0REU2QUI0REY1MzcyMTk5NDRENEFDRDMKK0M5RjA4QTMzNTkxMTFERjZGRjY2MkM4MjA1OUM1NTA1MzU5MTFCNzIxMkZBOEExRkMxMjY5REI0MDUwMUQyREIKKzNGMTEzODNDQTg0NjUxQkQwQjE4RjE2NjhGNjZCMjVFMTU5NzhBNDI0QjQyQjVCNDRDNTMxMDJCQjk4NjdFNEIKK0Y0REFCRkQ4RUJCMDZGRTc1RkZFOEIzNUJDMzE5NTQyQjFCNjEzNUFFOTM5OTdDNTY3Q0MyNUY5OTY5QUQ1MTcKKzRDOUVDMzU0RTNBRDdDREQ5RTNCMTVFODAyREJDMTE3MDU5OUU0NTMyOUU3RDdGQkIwMUYxQjcwRjhGMzM2RDMKKzUyNDNFOURBOTFEREJGRjJEQjM3RTZEMTc5MEUwQUI2MUIxMjRDOERBOUNDMDExQ0ZGQjBDMTZENTdDOEY5MzUKKzM4NkU5RTkwMTZCMkVEMEFDOTU1MDhDRTZGRDU0RTk1RDQ0RDE0REU0RUZBNzdFMDBCOEQ1MURCRjU4REFFMEUKK0VGMUYwNTBGMTIwQ0Y1MTA4MjNGOTAzMTE0MTUyMzZCNTQzMEZFMEExQTJDRUFCQjkxQjAxQjJGM0NENkJGRjcKKzdGNTIzREVCMkE1NDVFNjJDQTY1RTZBQTJDREEyMURCMjczRDIzOEIyQTMxOTY0Nzc2OUUzMEZDODFFNUQ5NzUKKzQ4ODZCMTI5RjY1NDExODFFNjMxRjk0QjExQTk5RDdBREIyRUI5QkMwRTYzRkE3N0MxNjlDQkU1N0U4RDZGQ0YKKzZDRENGNkUwQUM5NEY2OTI5NUY0NzgyMTM1MkQyQTkwNjQ3RjIwNkI4QkFCOTQxMEYwREJGNERENjE0MzEzOEMKKzhGOTc5NTk0MThEOUIwQzg4Njc3NzQwMTkyNEE5NDg3NzhCMEVCQkZFQTUwQ0YwNDVGOEQxMTc3MTREREY3QUIKKzQ0Qjc3QTE3QTY5RUNBMTFGQzA2MzFEMkI3M0YyQzNEQkJDNjkwRjA4NDg2MTZFQzc3OUEzNTgxQUFDMThCRjQKKzY2RTgxREE2MEVEODYxOENDNERENTU1MDY4MURGMEYwRTJBNTM1RTBFNUYxMzM4RTEwNDg2QzdBRkIyMzcwOTMKKzFCMTMwRDk4RUFEMTA3N0RGMTZERTUwNkQxMTgxQkU2QzRCMEE3MURGRkREMkNFNDlFNThEMjE5MjQxOTU4MjEKK0E2NjdBNEEyMzc3MDJCQkYzRUJFNzE0MjMyQTFBRjAwQkQ5QzRGRkRERjg2RTYyQjZERDUwQkIzQkMxQUQ1QjAKK0Q1RjlBRDg2Njg5RDkxNDhBQjg5OTAwM0IzQUFBQUExODZDRjkyQzRDQzZGRjM3QkQ3MkExNEE2OEE3RUQzRDIKKzhCQ0RDRjI5MUZDODE5N0VCQjAzRTFGODkyNjMxMDA2Q0NEM0FERDE4NERGQ0FFRjM3Q0M0RTQ3OTI1RTcxQ0UKKzUwNzNDMTY4NTFBNEEwNDJCQkM4MUE4NjMyMjk2Q0VGMDQ5ODExRkFGNkQxMzk5RTVEODI3Q0ZBN0QzRjEyMDgKK0E1MDk4NENGRDU1RUQ3RjM4MjFFMkY0QkE5ODVBMkVBMjA3OTQzNDg1RjBCNUJFQUZENEYwMTI5NTdEMkQ3MDgKK0M1MTUyMjU5Qjg1MzA1NzhBOEE3RTBDMDA1RTgyRjE5MzkwMDg4MkY2MUIyMjY3NUFFOTQwREE5Q0Q1NUIyRjEKK0E4RUMxQzY5QjBDRjlDRTQ3QTY2MjdCQzEzMDU0Q0U0RDAwRDkyRDQ0MTg3RjVCN0E2QzdEODEwMTkwMzEwMkEKKzU4MEQ2OUQyREQ5MTk1OEM2RjRERDc4REU5QzJCMDBEMjM2QTg5MUNGQjJDN0QzQTI0MkRDMEYxQ0Y2NTU1QTcKKzhDRjZEQzk0QjkzNDcyNzM4NzU4QTM1OEE2N0NCODhDODRGMzBBQzVERjU1NDQ4MjM3RjJCNzM5NzQ2MTlBNjIKKzgxREQ3QjFGNTI0NzQzODc5RDNDQjA4MDBCQTlBM0NCQzFDRkUyQjQwMTM0QkJFRjgzOEJBQTI1Qjg2MUU0RUYKK0UwNTQyOERFMDJFNDYwOEEyNEU0Njg1MTQzOTQyNjZBRTRGMzk3OEUwRjc4RTQ2ODk5MzkzMzE5NzRCMjJBRDkKK0E3RUQ0Q0UwRDE0MDk4NEY0QzMwRUEzOEUxMTk2MERBNTI1QkNCNTc4NTVGRUU4MTA5RTc3RUQxMjM4MDNBQzgKK0EzQUYwMjc1QkM1QzhFOUE3N0UxODJDMTA5NzVFRTk5QUFEQUY5QURFRDhCQjEyMUQxMUJGMkU4QTRFOTk1MTAKKzc4RDhFOEYwQkE0QTQxQTNCOTVFOTYxQzEzNTBGQkIwODAzRjE4Mzg0QjIyM0NEQTE2MDA1QTlGMTdFODhBRDgKK0VFQjZDRUUxRDNGNkZGQjE0QzBFQjk4MkE5OUIzRDg4RTQyQ0Y4NjBFMDE1RjM3OERBODlENDMyMDgwNjE2QjcKK0I1OUMwNTMyMDBENkExMzVEMkQ5MzFCODBDNjU3MEU4N0YzNzI1RTRBNDQ3QTk5RjQwRjIyNkREREZBNEY5NEYKK0M0RTJEOEU2QUFCNjJFNEFCQUJDMDYwMDE1NEYyQzUzNzEzOEZCMDY3N0I1RUMyMjYwRDcwMTg4NzAzMTVFMEYKKzdERTNGQjYwMDUzN0RFNUQ1NDEyQTI1RTA4RDVDREQyRDYyOTZDOEVFMEZDNDZFNzcwQTdDQzk2NzIxMEE2NEYKK0FCOUZBMDEzMzY5Q0RGRkYwRDMyMjg2RDhDNzlBRUQ4RjM2RENFQjIxNzBCOEFDRTNGNTQxMkFGMEIzOTEyQkEKK0IxQUNFMjk4NTk4M0QzODhFMEM2NzZDODFFMzI5QjlCMTFENkJCQTY2RjU4MEE3NDE2MkFGNkEzMjJBM0U2OTYKK0ZFMjU2NzZCODdCRjUwQTkxRkUwNzc2RTRGRTA2MUI0NkY0OTY1MERDNzE4MjczMkE2QjA5NjBFNzU0Qjg3OEUKK0Q1QkQwMzdDNzlFQTlENzM1MTE2NkEyNTkyQUE5NDQ3OUZDMUZEQ0IyRTFCQkNCNkMwNUEyREJFMjk1NDNBQTIKKzY0QzY0QTdEQUU0QTBCOEMxOTg3NDYzRURFQzgzRUE5RTk3MERBRDBGQkVCRUNENDdCMURDMjMxOThDNTU5MkMKK0FGMkJEQzAwQTA4RDQyQzhEMDVGREM1OUY0QUNEMzU1NTkyN0M3MEJFOTAzRDA1QzY1MTRDMjIzNDU4QjA2NEEKK0ZFMjVCRkI4OTQ0ODc4Qjc4QzBEODE2RTg5RjA0RkYwRjA0MDgzOEVGRTJEOTU4NTY1RjNGQTNCNUU4QTg0NzQKKzIzNjM1RTY1RDg1MTcwRjM5NTBCQUM1RjhDMkUzNzkyNEFENTlCMjMwOTBBRkJDMzBGN0Y3MDE0RDEzNzIxQkIKKzA2NDIxMUQ1QUYzODlDNTg2NzNGNTYyRTczQzdBN0JDQzI1RTIzMkZGRjAxQzU1NUI1OEFBNUJDRUJEQTg5OEMKK0Q0QURGODQ2Mzc1OTU3NDg3OTgyN0NCNjIzMjg3NUI5RkNBNUUxQkEyRkQ0MjZCQUM1NTBDMkVDODMwOUQxRTAKKzY5RDRBQ0E3MDJDMTMxMkQyMkExNDE1MDVGNzlERkUwMzE2REI5MThGNEExRDA3NTM2NThENjc5QUEwNzExODkKKzNDNkQwRDVDREY4RDMyMkQyOTY2QUM2NkNDRTUyNjhFQUIzQ0FDOEIwQzJEQkYzQ0I2MEYwM0IyODI1ODVEMjMKK0Y5MzcwM0YwMzk0RkFGNzczNDQ2ODVBODZFREEzNUUxQ0VCNDMyNDNCMDAyQkQyOUNBRjUxMkYyQjE2RUQzNTkKKzM2RUY4QThCMjQ5QTUzRjUyMDRFQThGOUUxODY2MEM2OTU4NUJERkEwMkNGNEZCNTZBM0ZDMzY3NjA0MUZDMjkKKzA4NTdBMjYxRDg3REE3OEQ5RDg0QjlGRTY1QkZDQjdGQjk4MTgzQjk4N0Y0MzI5OEE4QzlFODdCMjZCMjU3RTEKKzgyMjA2NzExRURGRjQzNDdFRDRBNzU0MEVFRjM5N0ZFNUYyRUVFMTlGQTNFMDk0NTg1NTQ2MjRFMTg0NTVGQzcKKzhDRjQyRTQzOUUzOTQ0RUIwQURDMDMyRUMwMDAxMTkyNjYzMzUxMzM3NkVCNDY3MjZBRUUxMkEwRjFCN0ZCRUIKKzFFQjU5MzY1MUQzMkMyN0E0QTRBMDdDQzFGREYxQkYxQTkxNjRCNjczQkFEQUNENUZENUM0NkJDQzFBQzQ1QjMKK0MzQTdENzZGMjEwNkFFOEZEREI1MkIxNTY1MjEyNkRFRjhCRDg3MjAwQzEyOUZEQUMwMDM1MjY4ODcyNzcwOUEKKzdERTdFQzA4QkNBOUU3MzZFODdGREJGNkFEQ0JGRTFGNjJCRkJFOUVBNEEwRDdFODdCREZBMEVFMkMyOTExMEQKKzUxQjQ5RTM2QkJDRjc2RUM5RjBEQUY5NzU5Mzg2NTZEQzczREVDM0Q5MDkzNDZCQzA5QkFDQTJGRkUzNTc2OTIKK0RBM0Y2MERGMTRDRkREQkI4MjMzMUE4QjIyQ0NBQzM5ODdBMEY0ODVCOEJGRTExQ0YzNzFCRTYwMEI2MEMxNzUKK0FBMkVDMDA4MjZBMDdGMDY4RjMxRkYyMUI4QjVCQjVERDNBQjcyOUU1RUREMjM1NUM3RTY1NDk4NEI1MEU2NjgKKzA4QkU3NkQxMkRGOTM2MzJFQzEwMThFMUQ1NTg1OTJGM0U4NUJFMjczN0EyRDVDMTNERTIzMDIxNzE1RkMxQ0EKK0UzMzJGQ0ZEQ0UzNzMzMzg4ODUzMzgzM0JGRUU2NTI1QkI5QkVFMDUKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKK2NsZWFydG9tYXJrCislJUVuZEZvbnQgCitUZVhEaWN0IGJlZ2luIDQwMjU4NDMxIDUyMDk5MTQ2IDEwMDAgNjAwIDYwMCAoaGlzdG9yeS5kdmkpCitAc3RhcnQgL0ZhIDIwOVsyNCA0Nlt7IFRlWDc0YWZjNzRjRW5jb2RpbmcgUmVFbmNvZGVGb250IH0xCis3NC43MTk4IC9DTVRJOSByZiAvRmIgMTM0WzQxIDQxIDFbNDEgNDMgMzAgMzAgMzAgMVs0MworMzggNDMgNjQgM1syMSA0MyAzOCAxWzM0IDQzIDM0IDFbMzggMTFbNTggMVs0MyA0WzU4IDFbNDgKKzNbNTggNjAgNTAgMVs1OSAxMFszOCAzOCAzOCAzOCAyWzM4IDFbMzggMzggM1syMSA0NFt7CisgVGVYZjdiNmQzMjBFbmNvZGluZyBSZUVuY29kZUZvbnQgfTM0IDc0LjcxOTggL0NNUjkgcmYKKy9GYyAxMzRbMzkgM1szOSAzOSAzOSAzOSAyWzM5IDM5IDM5IDM5IDJbMzkgMzkgMlszOSAzWzM5Cis5N1t7IFRlWDA5ZmJiZmFjRW5jb2RpbmcgUmVFbmNvZGVGb250IH0xMyA3NC43MTk4IC9DTVNMVFQxMAorcmYgL0ZkIDEzMFszOSAzOSAzOSAzOSAzOSAzOSAzOSAzOSAzOSAzOSAzOSAzOSAzOSAzOQorMzkgMzkgMzkgMzkgMzkgMVszOSAzOSAzOSAzOSAzOSAzOSAzOSAzOSAzOSAzOSAzOSAxWzM5CiszOSAzOSAxWzM5IDJbMzkgMzkgMzkgMzkgMzkgMVszOSAxWzM5IDFbMzkgMlszOSAzOSAzOQorMzkgMzkgMzkgMzkgMzkgMzkgMlszOSAzOSAzOSAzOSAzOSAzWzM5IDFbMzkgMVszOSAzOQorMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzNbeworIFRlWDA5ZmJiZmFjRW5jb2RpbmcgUmVFbmNvZGVGb250IH03NiA3NC43MTk4IC9DTVRUOQorcmYgL0ZlIDIxNFszNSAzNSA0MFt7IFRlWGY3YjZkMzIwRW5jb2RpbmcgUmVFbmNvZGVGb250IH0yCis5MC45MDkxIC9DTVNTMTAgcmYgL0ZmIDEzM1s1MSA2MCA2MCA4MyA2MCA2NCA0NSA0NSA0NworNjAgNjQgNTcgNjQgOTUgMzIgNjAgMVszMiA2NCA1NyAzNSA1MyA2NCA1MSA2NCA1NiA4M1s2NAorNjQgMTJbeyBUZVhmN2I2ZDMyMEVuY29kaW5nIFJlRW5jb2RlRm9udCB9MjcgOTkuNjI2NAorL0NNQlgxMCByZiAvRmcgMTM3WzUyIDUyIDUyIDUyIDUyIDJbNTIgNTIgNTIgNTIgMls1MgorNTIgMVs1MiA1MiA1MiA1MiA1MiA1MiAxWzUyIDVbNTIgNFs1MiA1MiA1MiAyWzUyIDUyIDRbNTIKKzUyIDJbNTIgM1s1MiAyMls1MiA0Mlt7IFRlWDA5ZmJiZmFjRW5jb2RpbmcgUmVFbmNvZGVGb250IH0yOQorOTkuNjI2NCAvQ01UVDEwIHJmIC9GaCAxMzRbNDggNDggNDggMVs0OCA0OCA0OCA0OCAyWzQ4Cis0OCAxWzQ4IDJbNDggMVs0OCA0OCA0OCA0OCA0OVs0OCA0OCA0OVt7CisgVGVYMDlmYmJmYWNFbmNvZGluZyBSZUVuY29kZUZvbnQgfTE3IDkwLjkwOTEgL0NNU0xUVDEwCityZiAvRmkgMTMzWzU1IDY1IDY1IDg5IDY1IDY4IDQ4IDQ4IDUwIDFbNjggNjEgNjggMTAyCiszNCAyWzM0IDY4IDYxIDM3IDU2IDY4IDU1IDY4IDYwIDlbMTI3IDFbOTQgMVs2OCA0Wzk2CisxMTYgNzQgMls0NiA5NiAxWzc3IDgxIDk0IDJbOTMgNlszNCAyWzYxIDYxIDYxIDYxIDYxCis2MSA2MSAyWzM0IDMzWzY4IDEyW3sgVGVYZjdiNmQzMjBFbmNvZGluZyBSZUVuY29kZUZvbnQgfTQ1CisxMDkuMDkxIC9DTUJYMTIgcmYgL0ZqIDEzNFs0OCA0OCA2NiA0OCA1MSAzNSAzNiAzNiA0OAorNTEgNDUgNTEgNzYgMjUgMlsyNSA1MSA0NSAyOCA0MCA1MSA0MCAxWzQ1IDNbMjUgMVsyNQorNDBbNDUgNDUgNls0NSAyOVs1MSA1MyAxMVt7IFRlWGY3YjZkMzIwRW5jb2RpbmcgUmVFbmNvZGVGb250IH0yOQorOTAuOTA5MSAvQ01TTDEwIHJmIC9GayAxMzVbNTYgMls1NiA1NCA0MiAyWzUxIDFbNTYgNjgKKzQ3IDFbMzkgMjcgNTYgNTggNDkgMVs1NyA1NCAxWzU2IDk3W3sgVGVYMGVmMGFmY2FFbmNvZGluZyBSZUVuY29kZUZvbnQgfQorMTYgOTAuOTA5MSAvQ01DU0MxMCByZiAvRmwgMjA5WzI4IDQ2W3sKKyBUZVg3NGFmYzc0Y0VuY29kaW5nIFJlRW5jb2RlRm9udCB9MSA5MC45MDkxIC9DTVRJMTAKK3JmIC9GbSAyMDlbNDMgNDZbeyBUZVg3NGFmYzc0Y0VuY29kaW5nIFJlRW5jb2RlRm9udCB9MQorMTE5LjU1MiAvQ01CWFRJMTAgcmYgL0ZuIDEzNFs4NSA4NSAxMTcgODUgOTAgNjMgNjQgNjYKKzFbOTAgODEgOTAgMTM0IDQ1IDJbNDUgOTAgODEgNDkgNzQgOTAgNzIgOTAgNzggMTBbMTIyCisxMjQgMTEyIDNbMTEwIDFbMTI2IDE1MyAzWzYwIDEyNiAxMjcgMTAxIDJbMTE3IDExNSAxMjIKKzE0WzgxIDgxIDQ5W3sgVGVYZjdiNmQzMjBFbmNvZGluZyBSZUVuY29kZUZvbnQgfTM3IDE0My40NjIKKy9DTUJYMTIgcmYgL0ZvIDI0Mls5MSAxM1t7IFRlWGJiYWQxNTNmRW5jb2RpbmcgUmVFbmNvZGVGb250IH0xCis5MC45MDkxIC9DTVNZMTAgcmYgL0ZwIDEzNFs3MSA3MSA5NyA3MSA3NSA1MiA1MyA1NSAxWzc1Cis2NyA3NSAxMTIgMzcgMlszNyA3NSA2NyA0MSA2MSA3NSA2MCA3NSA2NSA5WzEzOSAxMDIgMTAzCis5NCA3NSAxMDAgMVs5MiAxWzEwNSAxMjggODEgMls1MCAxMDUgMTA2IDg1IDg4IDEwMyA5NworOTYgMTAyIDExWzY3IDY3IDY3IDY3IDY3IDJbMzcgMVszNyA0NFt7CisgVGVYZjdiNmQzMjBFbmNvZGluZyBSZUVuY29kZUZvbnQgfTQ4IDExOS41NTIgL0NNQlgxMgorcmYgL0ZxIDEyOVs0OCA0OCA0OCA0OCA0OCA0OCA0OCA0OCA0OCA0OCA0OCA0OCA0OCA0OAorNDggNDggNDggNDggNDggNDggMVs0OCA0OCA0OCA0OCA0OCA0OCA0OCA0OCA0OCAxWzQ4IDQ4Cis0OCA0OCA0OCAxWzQ4IDNbNDggNDggNDggNDggMVs0OCA0OCA0OCAxWzQ4IDJbNDggNDggNDgKKzQ4IDQ4IDQ4IDJbNDggMVs0OCA0OCA0OCA0OCA0OCA0OCA3WzQ4IDQ4IDQ4IDQ4IDQ4IDQ4Cis0OCA0OCA0OCA0OCA0OCAxWzQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDMzW3sKKyBUZVgwOWZiYmZhY0VuY29kaW5nIFJlRW5jb2RlRm9udCB9NzMgOTAuOTA5MSAvQ01UVDEwCityZiAvRnIgMTMxWzkxIDFbNDAgNDggNDggNjYgNDggNTEgMzUgMzYgMzYgNDggNTEgNDUgNTEKKzc2IDI1IDQ4IDI4IDI1IDUxIDQ1IDI4IDQwIDUxIDQwIDUxIDQ1IDI1IDJbMjUgNDUgMjUKKzU2IDY4IDY4IDkzIDY4IDY4IDY2IDUxIDY3IDcxIDYyIDcxIDY4IDgzIDU3IDcxIDQ3IDMzCis2OCA3MSA1OSA2MiA2OSA2NiA2NCA2OCA1WzI1IDI1IDQ1IDQ1IDQ1IDQ1IDQ1IDQ1IDQ1Cis0NSA0NSA0NSA0NSAyNSAzMCAyNSAyWzM1IDM1IDI1IDRbNDUgMTlbNzYgNTEgNTEgNTMgMTFbeworIFRlWGY3YjZkMzIwRW5jb2RpbmcgUmVFbmNvZGVGb250IH04MSA5MC45MDkxIC9DTVIxMAorcmYgL0ZzIDEzNFsxMDIgNFs3NSA3NiA3OSAyWzk3IDVbNTQgNlsxMDggOTQgMTFbMTQ5IDZbMTUxCisxWzExNiAzWzE1MSAxNTIgNzFbeyBUZVhmN2I2ZDMyMEVuY29kaW5nIFJlRW5jb2RlRm9udCB9MTMKKzE3Mi4xNTQgL0NNQlgxMiByZiBlbmQKICUlRW5kUHJvbG9nCiAlJUJlZ2luU2V0dXAKLSUlRmVhdHVyZTogKlJlc29sdXRpb24gMzAwZHBpCislJUZlYXR1cmU6ICpSZXNvbHV0aW9uIDYwMGRwaQogVGVYRGljdCBiZWdpbgogJSVCZWdpblBhcGVyU2l6ZTogTGV0dGVyCiBsZXR0ZXIKICUlRW5kUGFwZXJTaXplCi0KKyBlbmQKICUlRW5kU2V0dXAKICUlUGFnZTogMSAxCi0xIDAgYm9wIDc1IDY1OSBhIEZxKEdOVSkzMyBiKEhpc3RvcnkpZihMaWJyYXJ5KXAgNzUgNzA5Ci0xODAwIDE3IHYgOTYwIDc1NyBhIEZwKEVkaXRpb24pMTYgYig0LjMsKWUoZm9yKWggRm8oSGlzdG9yeSlmKExpYnJhcnkpZwotRnAoVilsKGVyc2lvbilpKDQuMy4pMTY0MyA4MTEgeShNYXJjKW8oaCllKDIwMDIpNzUgMjQ2NwoteSBGbihCcmlhbikyMyBiKEYpLTYgYihvKW4oeCwpMjMgYihGKS02IGIocmVlKTIzIGIoU29mdCluKHcpbihhcmUpZihGKQotLTYgYihvdW5kYXRpb24pNzUgMjUzNCB5KENoZXQpMjIgYihSYW1leSktNiBiKCwpMjMgYihDYXNlKWUoVyktNgotYihlc3Rlcm4pMjMgYihSZXNlcnYpbihlKWYoVW5pdiluKGVyc2l0KW4oeSlwIDc1IDI1NzAKLTE4MDAgOSB2IGVvcAorVGVYRGljdCBiZWdpbiAxIDAgYm9wIDE1MCAxMzE4IGEgRnMoR05VKTY1IGIoSGlzdG9yeSloKExpYnJhcnkpcAorMTUwIDE0MTggMzYwMCAzNCB2IDE0MjAgMTUxNSBhIEZyKEVkaXRpb24pMzEgYig1LjEtYilzKGV0YTEsKWkoZm9yKWQKK0ZxKEhpc3RvcnkpZShMaWJyYXJ5KWggRnIoViktOCBiKGVyc2lvbikzMSBiKDUuMS1iKXMoZXRhMS4pMzEzOQorMTYyMyB5KE5vKW0odiltKGVtKW0oYilzKGVyKWcoMjAwNSkxNTAgNDkzNSB5IEZwKENoZXQpNDUKK2IoUmFtZXkpLTExIGIoLCk0NiBiKENhc2UpZyhXKS0xMSBiKGVzdGVybik0NiBiKFJlc2VydilsKGUpZyhVbml2KWwKKyhlcnNpdClsKHkpMTUwIDUwNjggeShCcmlhbilmKEYpLTExIGIobylsKHgsKTQ1IGIoRiktMTEKK2IocmVlKTQ1IGIoU29mdClsKHcpbChhcmUpaChGKS0xMSBiKG91bmRhdGlvbilwIDE1MCA1MTQxCiszNjAwIDE3IHYgZW9wIGVuZAogJSVQYWdlOiAyIDIKLTIgMSBib3AgNzUgMjE3IGEgRnAoVGhpcykyMSBiKGRvKXEoY3VtZW4pbyh0KWcoZGVzY3JpYilxKGVzKWgodGhlKWYKLShHTlUpZihIaXN0b3J5KWcobGlicmFyeSlsKCwpaihhKWQocHJvZ3JhbW1pbmcpZyh0bylxKG9sKWcodGhhdClnKHBybylvCi0odmlkZXMpaChhKTc1IDI3MSB5KGNvbnNpc3RlbilvKHQpMTUgYih1c2VyKWgoaW4pbyh0ZXJmYWNlKWYoZm9yKWcKLShyZWNhbGxpbmcpaShsaW5lcylmKG9mKWYocHJldmlvdXNseSlpKHQpbyh5cClxKGVkKWUoaW5wdXQuKTc1Ci0zMzkgeShQdWJsaXNoZWQpaShiKW8oeSlmKHRoZSlmKEYpbChyZWUpZyhTb2Z0KW8odylvKGFyZSlmKEYpbAotKG91bmRhdGlvbik3NSAzOTQgeSg1OSloKFQpbChlbXBsZSloKFBsYWNlLClmKFN1aXRlKWkoMzMwLCk3NQotNDQ4IHkoQm9zdG9uLClkKE1BKWgoMDIxMTEpZihVU0EpNzUgNTE2IHkoUClvKGVybWlzc2lvbilqKGlzKWYoZ3JhbilvCi0odGVkKWcodG8pZihtYWspbyhlKWgoYW5kKWcoZGlzdHJpYnV0ZSlpKHYpbyhlcmJhdGltKWQoY29waWVzKWkob2YpZgotKHRoaXMpaChtYW4pbyh1YWwpZihwcm8pbyh2aWRlZCloKHRoZSk3NSA1NzAgeShjb3Apbyh5cmlnaClvKHQpZQotKG5vdGljZSloKGFuZClmKHRoaXMpaChwKXEoZXJtaXNzaW9uKWcobm90aWNlKWcoYXJlKWYocHJlc2VydilvKGVkKWgKLShvbilmKGFsbCloKGNvcGllcy4pNzUgNjM4IHkoUClvKGVybWlzc2lvbiljKGlzKWgoZ3JhbilvKHRlZCllKHRvKWcKLShjb3Apbyh5KWgoYW5kKWcoZGlzdHJpYnV0ZSloKG1vKXEoZGlcMDE0ZWQpZyh2KW8oZXJzaW9ucylmKG9mKWYodGhpcyloCi0obWFuKW8odWFsKWcodW5kZXIpaCh0aGUpZihjb24tKTc1IDY5MiB5KGRpdGlvbnMpayhmb3IpZSh2KW8oZXJiYXRpbSloCi0oY29wKW8oeWluZywpZyhwcm8pbyh2aWRlZCloKHRoYXQpZSh0aGUpaChlbilvKHRpcmUpaChyZXN1bHRpbmcpZwotKGRlcml2KW8oZWQpZyh3KW8ob3JrKWUoaXMpaChkaXN0cmlidXRlZCk3NSA3NDcgeSh1bmRlciloKHRoZSlmKHRlcm1zKWcKLShvZilnKGEpZihwKXEoZXJtaXNzaW9uKWoobm90aWNlKWYoaWRlbilvKHRpY2FsKWgodG8pZSh0aGlzKWcob25lLik3NQotODE0IHkoUClvKGVybWlzc2lvbilpKGlzKWcoZ3JhbilvKHRlZClmKHRvKWcoY29wKW8oeSloKGFuZClmCi0oZGlzdHJpYnV0ZSlpKHRyYW5zbGF0aW9ucylmKG9mKWYodGhpcyloKG1hbilvKHVhbClnKGluKW8odG8pZihhbm90aGVyKQotZyhsYW4tKTc1IDg2OSB5KGd1YWdlLCllKHVuZGVyKWgodGhlKWYoYWIpcShvKW8odilvKGUpZyhjb25kaXRpb25zKWkKLShmb3IpZChtbylxKGRpXDAxNGVkKWoodilvKGVyc2lvbnMsKWUoZXhjZXB0KWgodGhhdClmKHRoaXMpaChwKXEKLShlcm1pc3Npb24pZyhub3RpY2UpNzUgOTI0IHkobWEpbyh5KWYoYilxKGUpaShzdGF0ZWQpZihpbiloKGEpZgotKHRyYW5zbGF0aW9uKWcoYXBwcm8pbyh2KW8oZWQpZyhiKW8oeSlnKHRoZSlnKEYpbChyZWUpaChTb2Z0KW8odylvKGFyZSkKLWQoRilsKG91bmRhdGlvbi4pNzUgMjY2MSB5KENvcClvKHlyaWdoKW8odCkzMDEgMjY2MCB5KGMpMjg5Ci0yNjYxIHkgRm0oXDAxNSloIEZwKDE5ODgtMjAwMilmKEYpbChyZWUpaShTb2Z0KW8odylvKGFyZSlmKEYpbAotKG91bmRhdGlvbiwpaChJbmMuKXAgZW9wCi0lJVBhZ2U6IDEgMwotMSAyIGJvcCA3NSAtNTggYSBGcChDaGFwdGVyKTE1IGIoMTopayhVc2luZylkKEhpc3RvcnkpZihJbilvKHRlcmFjdGl2KW8KLShlbHkpMTAwNyBiKDEpNzUgMTQ5IHkgRmwoMSk0MSBiKFVzaW5nKTI2IGIoSGlzdG9yeSloKEluKW4odGVyYWN0aXYpbgotKGVseSkxMzcgMjg5IHkgRnAoVGhpcykxNyBiKGMpbyhoYXB0ZXIpZyhkZXNjcmliKXEoZXMpaChobylvKHcpZSh0bylnCi0odXNlKWgodGhlKWcgRmsoZ251KWYgRnAoSGlzdG9yeSlnKExpYnJhcnkpaChpbilvKHRlcmFjdGl2KW8oZWx5KWwoLCloCi0oZnJvbSllKGEpZyh1c2VyJ3MpNzUgMzQ0IHkoc3RhbmRwKXEob2luKW8odC4pMzggYihJdCkyMQotYihzaG91bGQpaChiKXEoZSlnKGNvbnNpZGVyZWQpZyhhKWYodXNlcidzKWcoZ3VpZGUuKTM4Ci1iKEYpbChvcikyMSBiKGluZm9ybWF0aW9uKWcob24pZyh1c2luZyloKHRoZSlmIEZrKGdudSk3NQotMzk4IHkgRnAoSGlzdG9yeSljKExpYnJhcnkpaChpbiloKHkpbyhvdXIpZShvKW8od24pZyhwcm9ncmFtcywpZihzZWUpaQotKENoYXB0ZXIpZigyKWgoW1Byb2dyYW1taW5nKWUod2l0aClpKEdOVSlmKEhpc3RvcnldLCk3NQotNDUzIHkocGFnZSllKDUuKTc1IDYwMCB5IEZuKDEuMSkzMyBiKEhpc3RvcnkpMjIgYihFeHBhbnNpb24pMTM3Ci03MDQgeSBGcChUaGUpYyhIaXN0b3J5KWcobGlicmFyeSloKHBybylvKHZpZGVzKWYoYSlmKGhpc3RvcnkpaAotKGV4cGFuc2lvbiloKGZlYXR1cmUpZSh0aGF0KWgoaXMpZyhzaW1pbGFyKWgodG8pZSh0aGUpaChoaXN0b3J5KTc1Ci03NTkgeShleHBhbnNpb24pMTIgYihwcm8pbyh2aWRlZClnKGIpbyh5KWYgRm8oY3NoKXAgRnAoLikxOAotYihUaGlzKTExIGIoc2VjdGlvbiloKGRlc2NyaWIpcShlcylnKHRoZSlnKHN5bilvKHRheCllKHVzZWQpaCh0bylnCi0obWFuaXB1bGF0ZSloKHRoZSlmKGhpc3RvcnkpNzUgODE0IHkoaW5mb3JtYXRpb24uKTEzNwotODg4IHkoSGlzdG9yeSlrKGV4cGFuc2lvbnMpaChpbilvKHRybylxKGR1Y2UpaCh3KW8ob3JkcylkKGZyb20pZyh0aGUpaQotKGhpc3RvcnkpZihsaXN0KWgoaW4pbyh0bylmKHRoZSloKGlucHV0KWcoc3RyZWFtLCllKG1ha2luZyk3NQotOTQzIHkoaXQpaChlYXN5KWcodG8pZyhyZXApcShlYXQpZyhjb21tYW5kcywpZyhpbnNlcnQpaCh0aGUpZihhcmd1bWVuKW8KLSh0cylmKHRvKWgoYSlnKHByZXZpb3VzKWgoY29tbWFuZClmKGluKW8odG8pZyh0aGUpZyhjdXJyZW4pbyh0KTc1Ci05OTggeShpbnB1dCloKGxpbmUsKWgob3IpZChcMDE0eClpKGVycm9ycyllKGluKWkocHJldmlvdXMpZyhjb21tYW5kcylmCi0ocXVpYylvKGtseSlsKC4pMTM3IDEwNzIgeShIaXN0b3J5KWooZXhwYW5zaW9uKWkodGFrKW8oZXMpZChwbGFjZSlpKGluKQotaCh0KW8odylvKG8pZChwYXJ0cy4pMjggYihUaGUpMTkgYihcMDE0cnN0KWYoaXMpZyh0bylnKGRldGVybWluZSlpCi0od2hpYylvKGgpZihsaW5lKWgoZnJvbSk3NSAxMTI3IHkodGhlKWgoaGlzdG9yeSlmKGxpc3QpaShzaG91bGQpZyhiKXEKLShlKWYodXNlZClnKGR1cmluZyloKHN1YnN0aXR1dGlvbi4pMzcgYihUaGUpMjEgYihzZWNvbmQpZyhpcylnKHRvKWYKLShzZWxlY3QpaShwKXEob3J0aW9ucyllKG9mKTc1IDExODIgeSh0aGF0KTE1IGIobGluZSlpKGZvcilkKGluY2x1c2lvbilrCi0oaW4pbyh0bylkKHRoZSloKGN1cnJlbilvKHQpZihvbmUuKTIwIGIoVGhlKWMobGluZSlnKHNlbGVjdGVkKWgoZnJvbSllCi0odGhlKWcoaGlzdG9yeSlnKGlzKWgoY2FsbGVkKWgodGhlKTc1IDEyMzcgeSBGaihldilvKGVuKW8odClwCi1GcCgsKWMoYW5kKWgodGhlKWcocClxKG9ydGlvbnMpZyhvZilmKHRoYXQpZyhsaW5lKWkodGhhdCllKGFyZSlnKGFjdGVkKQotaCh1cClxKG9uKWcoYXJlKWYoY2FsbGVkKWogRmoodylvKG9yZHMpcCBGcCguKWkoVilsKGFyaW91cyljCi1GaihtbylxKGRpXDAxNGVycyk3NSAxMjkyIHkgRnAoYXJlKWkoYSlvKHYpbShhaWxhYmxlKWkodG8pZShtYW5pcHVsYXRlKQotaSh0aGUpZShzZWxlY3RlZClpKHcpbyhvcmRzLikyMyBiKFRoZSkxNyBiKGxpbmUpaChpcylmKGJyb2spbyhlbilmKGluKW8KLSh0byloKHcpbyhvcmRzKWUoaW4paih0aGUpZShzYW1lKTc1IDEzNDYgeShmYXNoaW9uKWModGhhdCllKEJhc2gpaShkbylxCi0oZXMsKWcoc28pZih0aGF0KWcoc2V2KW8oZXJhbClnKHcpbyhvcmRzKWcoc3Vycm91bmRlZCloKGIpbyh5KWYocXVvdGVzKQotaChhcmUpZihjb25zaWRlcmVkKWgob25lKWcodylvKG9yZC4pNzUgMTQwMSB5KEhpc3RvcnkpMTgKLWIoZXhwYW5zaW9ucyloKGFyZSlnKGluKW8odHJvKXEoZHVjZWQpZyhiKW8oeSlmKHRoZSloKGFwcClxKGVhcmFuY2UpZwotKG9mKWYodGhlKWcoaGlzdG9yeSloKGV4cGFuc2lvbilnKGMpbyhoYXJhY3RlciwpNzUgMTQ1NgoteSh3aGljKW8oaClkKGlzKWcoYClwIEZvKCEpcCBGcCgnKWUoYilvKHkpaChkZWZhdWx0Lik3NQotMTU4MyB5IEZpKDEuMS4xKTMwIGIoRXYpbihlbiluKHQpMjEgYihEZXNpZ25hdG9ycykxMzcKLTE2ODcgeSBGcChBbikxNiBiKGV2KW8oZW4pbyh0KWYoZGVzaWduYXRvcilnKGlzKWcoYSlnKHJlZmVyZW5jZSloKHRvKWYKLShhKWcoY29tbWFuZClnKGxpbmUpaShlbilvKHRyeSlkKGluKWkodGhlKWcoaGlzdG9yeSlmKGxpc3QuKTc1Ci0xNzc3IHkgRm8oISkyMTYgYiBGcChTdGFydCkxNiBiKGEpZyhoaXN0b3J5KWgoc3Vic3RpdHV0aW9uLClnKGV4Y2VwdCloCi0od2hlbilmKGZvbGxvKW8odylvKGVkKWcoYilvKHkpZihhKWgoc3BhY2UsKWcodGFiLClmKHRoZSloKGVuZClnKG9mKTMxNQotMTgzMiB5KHRoZSllKGxpbmUsKWkoYClwIEZvKD0pcCBGcCgnKWQob3IpaChgKXAgRm8oXCgpcAotRnAoJy4pNzUgMTkxOSB5IEZvKCEpcCBGaihuKTE5MSBiIEZwKFJlZmVyKTE1IGIodG8pZihjb21tYW5kKWgobGluZSlpCi1GaihuKXAgRnAoLik3NSAyMDA2IHkgRm8oIS0pcCBGaihuKTE2NyBiIEZwKFJlZmVyKTE1Ci1iKHRvKWYodGhlKWkoY29tbWFuZClmIEZqKG4pZyBGcChsaW5lcylpKGJhYylvKGsuKTc1Ci0yMDk0IHkgRm8oISEpMTkyIGIgRnAoUmVmZXIpMTUgYih0bylmKHRoZSlpKHByZXZpb3VzKWYoY29tbWFuZC4pMjAKLWIoVGhpcyljKGlzKWcoYSlmKHN5bm9uKW8oeW0pZyhmb3IpZihgKXAgRm8oIS0xKXAgRnAoJy4pNzUKLTIxODEgeSBGbyghKXAgRmooc3RyaW5nKTEwMiBiIEZwKFJlZmVyKTE1IGIodG8pZih0aGUpaShtb3N0KWUocmVjZW4pbwotKHQpaChjb21tYW5kKWcoc3RhcnRpbmcpZyh3aXRoKWcgRmooc3RyaW5nKXAgRnAoLik3NQotMjI2OCB5IEZvKCE/KXAgRmooc3RyaW5nKXQgRm8oWz9dKTMxNSAyMzIzIHkgRnAoUmVmZXIpaCh0bylnKHRoZSloCi0obW9zdClmKHJlY2VuKW8odCloKGNvbW1hbmQpZyhjb24pbyh0YWluaW5nKWcgRmooc3RyaW5nKXAKLUZwKC4pMjUgYihUaGUpMTcgYih0cmFpbGluZylnKGApcCBGbyg/KXAgRnAoJylmKG1hKW8oeSlnKGIpcShlKTMxNQotMjM3NyB5KG9taXR0ZWQpZihpZiloKHRoZSlmIEZqKHN0cmluZylrIEZwKGlzKWQoZm9sbG8pbyh3KW8oZWQpZgotKGltbWVkaWF0ZWx5KWkoYilvKHkpZShhKWcobmV3bGluZS4pNzUgMjQ2NCB5IEZvKF4pcAotRmooc3RyaW5nMSl0IEZvKF4pcCBGaihzdHJpbmcyKXQgRm8oXikzMTUgMjUxOSB5IEZwKFF1aWMpbyhrKWkKLShTdWJzdGl0dXRpb24uKTIzIGIoUmVwKXEoZWF0KTE2IGIodGhlKWcobGFzdClmKGNvbW1hbmQsKWgocmVwbGFjaW5nKWgKLUZqKHN0cmluZzEpaSBGcCh3aXRoKWUgRmooc3RyaW5nMilwIEZwKC4pMzE1IDI1NzQgeShFcXVpdiltKGFsZW4pbyh0KWcKLSh0bylkIEZvKCEhOnMvKXAgRmooc3RyaW5nMSl0IEZvKC8pcCBGaihzdHJpbmcyKXQgRm8oLylwCi1GcCguKTc1IDI2NjEgeSBGbyghIykxOTIgYiBGcChUaGUpMTUgYihlbilvKHRpcmUpaChjb21tYW5kKWYobGluZSlpKHQpbwotKHlwKXEoZWQpZihzbyllKGZhci4pcCBlb3AKLSUlUGFnZTogMiA0Ci0yIDMgYm9wIDc1IC01OCBhIEZwKDIpMTM0NyBiKEdOVSkxNSBiKEhpc3RvcnkpZyhMaWJyYXJ5KTc1Ci0xNDkgeSBGaSgxLjEuMikzMCBiKFcpLTUgYihvcmQpMjAgYihEZXNpZ25hdG9ycykxMzcgMjQ3Ci15IEZwKFcpbChvcmQpZChkZXNpZ25hdG9ycylnKGFyZSlnKHVzZWQpaCh0bylmKHNlbGVjdCloKGRlc2lyZWQpaCh3KW8KLShvcmRzKWQoZnJvbSloKHRoZSlnKGV2KW8oZW4pbyh0LikyNiBiKEEpMTggYihgKXAgRm8oOilwCi1GcCgnKWUoc2VwYXJhdGVzKWgodGhlKTc1IDMwMiB5KGV2KW8oZW4pbyh0KWooc3ApcShlY2lcMDE0Y2F0aW9uKWgKLShmcm9tKWUodGhlKWgodylvKG9yZClmKGRlc2lnbmF0b3IuKTM0IGIoSXQpMjAgYihtYSlvKHkpZihiKXEoZSloCi0ob21pdHRlZClnKGlmKWcodGhlKWcodylvKG9yZClmKGRlc2lnbmF0b3IpNzUgMzU3IHkoYilxKGVnaW5zKWYod2l0aClnCi0oYSllKGApcCBGbyheKXAgRnAoJywpaChgKXAgRm8oJClwIEZwKCcsKWYoYClwIEZvKCopcAotRnAoJywpZyhgKXAgRm8oLSlwIEZwKCcsKWcob3IpaChgKXAgRm8oXDA0NSlwIEZwKCcuKTI0Ci1iKFcpbChvcmRzKTE3IGIoYXJlKWcobilvKHVtKW8oYilxKGVyZWQpZyhmcm9tKWcodGhlKWcoYilxKGVnaW5uaW5nKWkKLShvZillKHRoZSlnKGxpbmUsKTc1IDQxMSB5KHdpdGgpaih0aGUpZyhcMDE0cnN0KWYodylvKG9yZCloKGIpcShlaW5nKWgKLShkZW5vdGVkKWYoYilvKHkpZygwKWYoXCh6ZXJvXCkuKTMzIGIoVylsKG9yZHMpMjAgYihhcmUpZihpbnNlcnRlZClpCi0oaW4pbyh0bylmKHRoZSlnKGN1cnJlbilvKHQpZihsaW5lKTc1IDQ2NiB5KHNlcGFyYXRlZCljKGIpbyh5KWcoc2luZ2xlKQotaShzcGFjZXMuKTEzNyA1MzUgeShGKWwob3IpZShleGFtcGxlLCk3NSA2MTYgeSBGbyghISkxOTIKLWIgRnAoZGVzaWduYXRlcykxOCBiKHRoZSlnKHByZWNlZGluZylpKGNvbW1hbmQuKTI4IGIoV2hlbikxOAotYih5KW8ob3UpZyh0KW8oeXApcShlKWcodGhpcywpaCh0aGUpZihwcmVjZWRpbmcpaChjb20tKTMxNQotNjcxIHkobWFuZCljKGlzKWgocmVwKXEoZWF0ZWQpZyhpbilnKHRvdG8uKTc1IDc1MiB5IEZvKCEhOiQpMTQ0Ci1iIEZwKGRlc2lnbmF0ZXMpMTIgYih0aGUpZihsYXN0KWcoYXJndW1lbilvKHQpZihvZiloKHRoZSlnKHByZWNlZGluZylpCi0oY29tbWFuZC4pMTkgYihUaGlzKTExIGIobWEpbyh5KWcoYilxKGUpaChzaG9ydGVuZWQpMzE1Ci04MDcgeSh0bylqIEZvKCEkKXAgRnAoLik3NSA4ODcgeSBGbyghZmk6MikxMjAgYiBGcChkZXNpZ25hdGVzKTE1Ci1iKHRoZSlnKHNlY29uZClnKGFyZ3VtZW4pbyh0KWYob2YpZyh0aGUpaChtb3N0KWYocmVjZW4pbyh0KWcoY29tbWFuZCloCi0oc3RhcnRpbmcpZih3aXRoKWgodGhlKTMxNSA5NDIgeShsZXR0ZXJzKWcgRm8oZmkpcCBGcCguKTEzNwotMTAyNCB5KEhlcmUpaChhcmUpZih0aGUpZyh3KW8ob3JkKWYoZGVzaWduYXRvcnM6KTc1IDExMDUKLXkgRm8oMCloKFwoemVyb1wpKTU3IGIgRnAoVGhlKTE1IGIgRm8oMClwIEZwKHRoKWcodylvKG9yZC4pMjAKLWIoRilsKG9yKTE0IGIobWFuKW8oeSloKGFwcGxpY2F0aW9ucywpaCh0aGlzKWcoaXMpZyh0aGUpZihjb21tYW5kKWcodylvCi0ob3JkLik3NSAxMTg2IHkgRmoobikyMTUgYiBGcChUaGUpMTUgYiBGaihuKXAgRnAodGgpaCh3KW8ob3JkLik3NQotMTI2NyB5IEZvKF4pMjE2IGIgRnAoVGhlKTE1IGIoXDAxNHJzdClnKGFyZ3VtZW4pbyh0OylmKHRoYXQpaChpcywpZyh3KW8KLShvcmQpZygxLik3NSAxMzQ4IHkgRm8oJCkyMTYgYiBGcChUaGUpMTUgYihsYXN0KWgoYXJndW1lbilvKHQuKTc1Ci0xNDI5IHkgRm8oXDA0NSkyMTYgYiBGcChUaGUpMTUgYih3KW8ob3JkKWcobWF0YylvKGhlZClnKGIpbyh5KWcodGhlKWcKLShtb3N0KWcocmVjZW4pbyh0KWcoYClwIEZvKD8pcCBGaihzdHJpbmcpdCBGbyg/KXAgRnAoJylmKHNlYXJjKW8oaC4pNzUKLTE1MTAgeSBGaih4KXAgRm8oLSlwIEZqKHkpMTY4IGIgRnAoQSkxNSBiKHJhbmdlKWcob2YpZyh3KW8ob3JkczspZihgKXAKLUZvKC0pcCBGaih5KXQgRnAoJylnKGFiYnJldmlhdGVzKWkoYClwIEZvKDAtKXAgRmooeSl0Ci1GcCgnLik3NSAxNTkxIHkgRm8oKikyMTYgYiBGcChBbGwpMTUgYihvZilmKHRoZSlmKHcpbyhvcmRzLClnKGV4Y2VwdClpCi0odGhlKWYgRm8oMClwIEZwKHRoLikxOSBiKFRoaXMpMTQgYihpcyloKGEpZShzeW5vbilvKHltKWgoZm9yKWYoYClwCi1GbygxLSQpcCBGcCgnLikxOCBiKEl0KWMoaXMpZyhub3QpZyhhbilnKGVycm9yKTMxNSAxNjQ1Ci15KHRvKWcodXNlKWgoYClwIEZvKCopcCBGcCgnKWYoaWYpaSh0aGVyZSllKGlzKWkoanVzdCllKG9uZSloKHcpbyhvcmQpZgotKGluKWkodGhlKWYoZXYpbyhlbilvKHQ7KWYodGhlKWgoZW1wdClvKHkpZyhzdHJpbmcpZyhpcylnKHJldHVybmVkKWcKLShpbikzMTUgMTcwMCB5KHRoYXQpZihjYXNlLik3NSAxNzgxIHkgRmooeClzIEZvKCopMTg5Ci1iIEZwKEFiYnJldmlhdGVzKTE2IGIoYClwIEZqKHgpcCBGbygtJClwIEZwKCcpNzUgMTg2MgoteSBGaih4KXAgRm8oLSkxOTIgYiBGcChBYmJyZXZpYXRlcykxNiBiKGApcCBGaih4KXAgRm8oLSQpcAotRnAoJyllKGxpaylvKGUpaShgKXAgRmooeClzIEZvKCopcCBGcCgnLCllKGJ1dClpKG9taXRzKWYodGhlKWcobGFzdClnCi0odylvKG9yZC4pMTM3IDE5NDMgeShJZilpKGEpZyh3KW8ob3JkKWYoZGVzaWduYXRvciloKGlzKWgoc3VwcGxpZWQpaAotKHdpdGhvdXQpZShhbilnKGV2KW8oZW4pbyh0KWYoc3ApcShlY2lcMDE0Y2F0aW9uLClqKHRoZSllKHByZXZpb3VzKWgKLShjb21tYW5kKTc1IDE5OTggeShpcyllKHVzZWQpZihhcylnKHRoZSloKGV2KW8oZW4pbyh0Lik3NQotMjExMyB5IEZpKDEuMS4zKTMwIGIoTW8pcihkaVwwMTRlcnMpMTM3IDIyMTAgeSBGcChBZnRlcikxMAotYih0aGUpaChvcHRpb25hbClnKHcpbyhvcmQpZShkZXNpZ25hdG9yLClpKHkpbyhvdSlmKGNhbiloKGFkZClmKGEpZwotKHNlcXVlbmNlKWkob2YpZShvbmUpZyhvcilnKG1vcmUpZyhvZilnKHRoZSlnKGZvbGxvKW8od2luZyk3NQotMjI2NSB5KG1vKXEoZGlcMDE0ZXJzLCkxNiBiKGVhYylvKGgpZihwcmVjZWRlZClpKGIpbyh5KWUoYSlnKGApcAotRm8oOilwIEZwKCcuKTc1IDIzNDYgeSBGbyhoKTIxNiBiIEZwKFJlbW8pbyh2KW8oZSkxNAotYihhKWgodHJhaWxpbmcpaChwYXRobmFtZSlmKGNvbXApcShvbmVuKW8odCwpZyhsZWEpbyh2aW5nKWgob25seSlnKHRoZSkKLWYoaGVhZC4pNzUgMjQyNyB5IEZvKHQpMjE2IGIgRnAoUmVtbylvKHYpbyhlKTE0IGIoYWxsKWkobGVhZGluZyloCi0ocGF0aG5hbWUpZShjb21wKXEob25lbilvKHRzLClnKGxlYSlvKHZpbmcpaCh0aGUpZih0YWlsLik3NQotMjUwOCB5IEZvKHIpMjE2IGIgRnAoUmVtbylvKHYpbyhlKTE0IGIoYSloKHRyYWlsaW5nKWgoc3VcMDE2eClmKG9mKWcKLSh0aGUpZyhmb3JtKWcoYClwIEZvKC4pcCBGaihzdVwwMTZ4KXMgRnAoJywpZihsZWEpbyh2aW5nKWkodGhlKWYKLShiYXNlbmFtZS4pNzUgMjU4OSB5IEZvKGUpMjE2IGIgRnAoUmVtbylvKHYpbyhlKTE0IGIoYWxsKWkoYnV0KWcodGhlKWYKLSh0cmFpbGluZyloKHN1XDAxNnguKTc1IDI2NzAgeSBGbyhwKTIxNiBiIEZwKFByaW4pbyh0KTE1Ci1iKHRoZSlnKG5ldyloKGNvbW1hbmQpZihidXQpZyhkbylnKG5vdClnKGV4ZWN1dGUpaChpdC4pcAotZW9wCi0lJVBhZ2U6IDMgNQotMyA0IGJvcCA3NSAtNTggYSBGcChDaGFwdGVyKTE1IGIoMTopayhVc2luZylkKEhpc3RvcnkpZihJbilvKHRlcmFjdGl2KW8KLShlbHkpMTAwNyBiKDMpNzUgMTQ5IHkgRm8ocy8pcCBGaihvbGQpciBGbygvKXAgRmoobmV3KXQKLUZvKC8pMzE1IDIwNCB5IEZwKFN1YnN0aXR1dGUpMTcgYiBGaihuZXcpaiBGcChmb3IpYyh0aGUpaChcMDE0cnN0KWUobylxCi0oY2N1cnJlbmNlKWoob2YpZSBGaihvbGQpaSBGcChpbilmKHRoZSlnKGV2KW8oZW4pbyh0KWYobGluZS4pMjUKLWIoQW4pbyh5KTE2IGIoZGVsaW1pdGVyKTMxNSAyNTkgeShtYSlvKHkpYyhiKXEoZSloKHVzZWQpZyhpbilnKHBsYWNlKWcKLShvZilmKGApcCBGbygvKXAgRnAoJy4pMTggYihUaGUpMTMgYihkZWxpbWl0ZXIpaChtYSlvKHkpZShiKXEoZSloCi0ocXVvdGVkKWYoaW4paSBGaihvbGQpZyBGcChhbmQpZiBGaihuZXcpayBGcCh3aXRoKTEyCi1iKGEpMzE1IDMxNCB5KHNpbmdsZSlqKGJhYylvKGtzbGFzaC4pMjAgYihJZikxNSBiKGApcAotRm8oJilwIEZwKCcpZShhcHApcShlYXJzKWgoaW4paCBGaihuZXcpcCBGcCgsKWYoaXQpZyhpcyloKHJlcGxhY2VkKWcoYikKLW8oeSlmIEZqKG9sZClwIEZwKC4pMjAgYihBKTE0IGIoc2luZ2xlKWkoYmFjKW8oa3NsYXNoKTMxNQotMzY5IHkod2lsbClqKHF1b3RlKWUodGhlKWgoYClwIEZvKCYpcCBGcCgnLikyNSBiKFRoZSkxNwotYihcMDE0bmFsKWkoZGVsaW1pdGVyKWcoaXMpZihvcHRpb25hbClnKGlmKWYoaXQpaChpcylnKHRoZSlmKGxhc3QpZyhjKW8KLShoYXJhY3RlcilnKG9uKTMxNSA0MjMgeSh0aGUpZShpbnB1dCloKGxpbmUuKTc1IDUwMyB5Ci1GbygmKTIxNiBiIEZwKFJlcClxKGVhdCkxNSBiKHRoZSlnKHByZXZpb3VzKWgoc3Vic3RpdHV0aW9uLik3NQotNTgzIHkgRm8oZykyMTYgYiBGcChDYXVzZSkxOSBiKGMpbyhoYW5nZXMpaCh0byllKGIpcShlKWkoYXBwbGllZCloKG8pbwotKHYpbyhlcillKHRoZSlnKGVuKW8odGlyZSloKGV2KW8oZW4pbyh0KWYobGluZS4pMzQgYihVc2VkKTIwCi1iKGluKWcoY29uanVuY3Rpb24pMzE1IDYzOCB5KHdpdGgpYyhgKXAgRm8ocylwIEZwKCcsKWQoYXMpaShpbiloCi1Gbyhncy8pcCBGaihvbGQpciBGbygvKXAgRmoobmV3KXQgRm8oLylwIEZwKCwpZihvcilnKHdpdGgpZyhgKXAKLUZvKCYpcCBGcCgnLilwIGVvcAotJSVQYWdlOiA0IDYKLTQgNSBib3AgNzUgLTU4IGEgRnAoNCkxMzQ3IGIoR05VKTE1IGIoSGlzdG9yeSlnKExpYnJhcnkpcAotZW9wCi0lJVBhZ2U6IDUgNwotNSA2IGJvcCA3NSAtNTggYSBGcChDaGFwdGVyKTE1IGIoMjopayhQcm9ncmFtbWluZyljKHdpdGgpZyhHTlUpZwotKEhpc3RvcnkpODg5IGIoNSk3NSAxNDkgeSBGbCgyKTQxIGIoUHJvZ3JhbW1pbmcpMjggYih3aXRoKWUoR05VKWkKLShIaXN0b3J5KTEzNyAyNjkgeSBGcChUaGlzKTE3IGIoYylvKGhhcHRlcilmKGRlc2NyaWIpcShlcylpKGhvKW8odyllCi0odG8pZihpbilvKHRlcmZhY2UpaShwcm9ncmFtcyllKHRoYXQpZyh5KW8ob3UpaCh3cml0ZSlnKHdpdGgpaCh0aGUpZgotRmsoZ251KWcgRnAoSGlzdG9yeSk3NSAzMjQgeShMaWJyYXJ5KWwoLikyNCBiKEl0KTE3IGIoc2hvdWxkKWcoYilxKGUpZwotKGNvbnNpZGVyZWQpaChhKWUodGVjKW8oaG5pY2FsKWkoZ3VpZGUuKTI1IGIoRilsKG9yKTE1Ci1iKGluZm9ybWF0aW9uKWkob24pZih0aGUpaChpbilvKHRlcmFjdGl2KW8oZSlnKHVzZSk3NQotMzc5IHkob2YpZSBGayhnbnUpZyBGcChIaXN0b3J5KWwoLClnKHNlZSlnKENoYXB0ZXIpZygxKWcoW1VzaW5nKWcKLShIaXN0b3J5KWcoSW4pbyh0ZXJhY3RpdilvKGVseV0sKWgocGFnZSlmKDEuKTc1IDUwOSB5Ci1GbigyLjEpMzMgYihJbiluKHRybylyKGR1Y3Rpb24pMjQgYih0byllKEhpc3RvcnkpMTM3Ci02MDcgeSBGcChNYW4pbyh5KTExIGIocHJvZ3JhbXMpZihyZWFkKWgoaW5wdXQpaShmcm9tKWQodGhlKWkodXNlcilmKGEpZwotKGxpbmUpaShhdCllKGEpZyh0aW1lLikxOSBiKFRoZSkxMiBiIEZrKGdudSlmIEZwKEhpc3RvcnkpZyhsaWJyYXJ5KWgKLShpcylnKGFibGUpNzUgNjYxIHkodG8paShrKW8oZWVwKWcodHJhYylvKGspZyhvZilnKHRob3NlKWcobGluZXMsKWkKLShhc3NvKXEoY2lhdGUpZShhcmJpdHJhcnkpZyhkYXRhKWcod2l0aClnKGVhYylvKGgpaChsaW5lLCloKGFuZCllCi0odXRpbGl6ZSlqKGluZm9ybWF0aW9uKTc1IDcxNiB5KGZyb20pZChwcmV2aW91cylpKGxpbmVzKWgoaW4pZihjb21wKXEKLShvc2luZylnKG5ldylmKG9uZXMuKTEzNyA3ODQgeShUaGUpZihwcm9ncmFtbWVyKWYodXNpbmcpaCh0aGUpZwotKEhpc3RvcnkpZyhsaWJyYXJ5KWcoaGFzKWcoYSlvKHYpbShhaWxhYmxlKWgoZnVuY3Rpb25zKWcoZm9yKWUocmVtZW0pbwotKGIpcShlcmluZyloKGxpbmVzKTc1IDgzOSB5KG9uKWMoYSlnKGhpc3RvcnkpaChsaXN0LClnKGFzc28pcShjaWF0aW5nKWcKLShhcmJpdHJhcnkpZihkYXRhKWYod2l0aClpKGEpZihsaW5lLClqKHJlbW8pbyh2aW5nKWQobGluZXMpaShmcm9tKWQKLSh0aGUpaShsaXN0LCloKHNlYXJjKW8oaGluZyk3NSA4OTQgeSh0aHJvdWdoKTE3IGIodGhlKWgobGlzdClnKGZvcilmKGEpCi1oKGxpbmUpaChjb24pbyh0YWluaW5nKWYoYW4pZyhhcmJpdHJhcnkpZih0ZXh0KWcoc3RyaW5nLCloKGFuZClnCi0ocmVmZXJlbmNpbmcpaChhbilvKHkpZShsaW5lKWkoaW4pNzUgOTQ5IHkodGhlKWMobGlzdClpKGRpcmVjdGx5KWwoLikyMgotYihJbikxNiBiKGFkZGl0aW9uLClnKGEpZihoaXN0b3J5KWcgRmooZXhwYW5zaW9uKWggRnAoZnVuY3Rpb24paChpcyllCi0oYSlvKHYpbShhaWxhYmxlKWkod2hpYylvKGgpZyhwcm8pbyh2aWRlcylmKGZvcillKGEpNzUKLTEwMDMgeShjb25zaXN0ZW4pbyh0KWgodXNlciloKGluKW8odGVyZmFjZSlmKGFjcm9zcylnKGRpXDAxM2VyZW4pbyh0KWcKLShwcm9ncmFtcy4pMTM3IDEwNzIgeShUaGUpZih1c2VyKWgodXNpbmcpZihwcm9ncmFtcylmKHdyaXR0ZW4paCh3aXRoKWcKLSh0aGUpZyhIaXN0b3J5KWcobGlicmFyeSloKGhhcylmKHRoZSlnKGIpcShlbmVcMDE0dCloKG9mKWUoYSloCi0oY29uc2lzdGVuKW8odCk3NSAxMTI2IHkodXNlcikyMCBiKGluKW8odGVyZmFjZSlmKHdpdGgpaChhKWYoc2V0KWgob2YpZgotKHcpbyhlbGwta25vKW8od24paChjb21tYW5kcylnKGZvcillKG1hbmlwdWxhdGluZylrKHRoZSlkKHRleHQpZyhvZilnCi0ocHJldmlvdXMpNzUgMTE4MSB5KGxpbmVzKWMoYW5kKWYodXNpbmcpaCh0aGF0KWUodGV4dClnKGluKWkobmV3KWYKLShjb21tYW5kcy4pMTkgYihUaGUpMTQgYihiYXNpYyloKGhpc3RvcnkpZShtYW5pcHVsYXRpb24paihjb21tYW5kcylkCi0oYXJlKTc1IDEyMzYgeShzaW1pbGFyKWoodG8pZih0aGUpZyhoaXN0b3J5KWcoc3Vic3RpdHV0aW9uKWgocHJvKW8KLSh2aWRlZClnKGIpbyh5KWcgRm8oY3NoKXAgRnAoLikxMzcgMTMwNCB5KElmKWYodGhlKWcocHJvZ3JhbW1lcilmCi0oZGVzaXJlcywpaChoZSlnKGNhbilnKHVzZSlnKHRoZSlnKFJlYWRsaW5lKWgobGlicmFyeSlsKCwpZyh3aGljKW8oaClmCi0oaW5jbHVkZXMpaihzb21lKWMoaGlzdG9yeSk3NSAxMzU5IHkobWFuaXB1bGF0aW9uKWooYilvKHkpZShkZWZhdWx0LClnCi0oYW5kKWgoaGFzKWYodGhlKWcoYWRkZWQpaChhZHYpbShhbilvKHRhZ2UpZihvZilmKGNvbW1hbmQpaChsaW5lKWkKLShlZGl0aW5nLikxMzcgMTQyNyB5KEJlZm9yZSlpKGRlY2xhcmluZylpKGFuKW8oeSlkKGZ1bmN0aW9ucylpKHVzaW5nKWcKLShhbilvKHkpZihmdW5jdGlvbmFsaXQpbyh5KWgodGhlKWYoSGlzdG9yeSlnKGxpYnJhcnkpaChwcm8pbyh2aWRlcylmCi0oaW4pNzUgMTQ4MiB5KG90aGVyKTE0IGIoY28pcShkZSwpaChhbilmKGFwcGxpY2F0aW9uKWkod3JpdGVyKWUoc2hvdWxkKQotaShpbmNsdWRlKWcodGhlKWYoXDAxNGxlKWcgRm8oPHJlYWRsaW5lL2hpc3RvcnkuaD4pZAotRnAoaW4paihhbilvKHkpZihcMDE0bGUpNzUgMTUzNyB5KHRoYXQpZCh1c2VzKWgodGhlKWgoSGlzdG9yeSllCi0obGlicmFyeSdzKWkoZmVhdHVyZXMuKTE4IGIoSXQpMTIgYihzdXBwbGllcylpKGV4dGVybillKGRlY2xhcmF0aW9ucyloCi0oZm9yKWUoYWxsKWkob2YpZih0aGUpZyhsaWJyYXJ5J3MpNzUgMTU5MSB5KHB1YmxpYykxNwotYihmdW5jdGlvbnMpZihhbmQpZyh2KW0oYXJpYWJsZXMsKWcoYW5kKWYoZGVjbGFyZXMpaChhbGwpZyhvZilmKHRoZSloCi0ocHVibGljKWgoZGF0YSlkKHN0cnVjdHVyZXMuKTc1IDE3MjIgeSBGbigyLjIpMzMgYihIaXN0b3J5KTIyCi1iKFN0b3JhZ2UpMTM3IDE4MTkgeSBGcChUaGUpMTYgYihoaXN0b3J5KWYobGlzdCloKGlzKWcoYW4pZihhcnJhKW8oeSlmCi0ob2YpZyhoaXN0b3J5KWkoZW4pbyh0cmllcy4payhBKTE1IGIoaGlzdG9yeSlnKGVuKW8odHJ5KWcoaXMpaAotKGRlY2xhcmVkKWcoYXMpZihmb2xsbylvKHdzOikxOTUgMTg4NSB5IEZvKHR5cGVkZWYpMjMKLWIodm9pZClnKCpoaXN0ZGF0YV90OykxOTUgMTk4OCB5KHR5cGVkZWYpZyhzdHJ1Y3QpZyhfaGlzdF9lbnRyeSlmKHspMjQzCi0yMDQwIHkoY2hhciloKCpsaW5lOykyNDMgMjA5MiB5KGhpc3RkYXRhX3QpZihkYXRhOykxOTUKLTIxNDQgeSh9KWkoSElTVF9FTlRSWTspMTM3IDIyMTIgeSBGcChUaGUpMTYgYihoaXN0b3J5KWYobGlzdCloKGl0c2VsZilnCi0obWlnaClvKHQpZih0aGVyZWZvcmUpZyhiKXEoZSloKGRlY2xhcmVkKWcoYXMpMTk1IDIyNzcKLXkgRm8oSElTVF9FTlRSWSkyMiBiKCoqdGhlX2hpc3RvcnlfbGlzdDspMTM3IDIzNDUgeSBGcChUaGUpMTYKLWIoc3RhdGUpZShvZiloKHRoZSlnKEhpc3RvcnkpZyhsaWJyYXJ5KWgoaXMpZyhlbmNhcHN1bGF0ZWQpZyhpbilvKHRvKWYKLShhKWcoc2luZ2xlKWkoc3RydWN0dXJlOikxOTUgMjQxMSB5IEZvKC8qKTIxOSAyNDYyIHkoKikyNAotYihBKWYoc3RydWN0dXJlKWcodXNlZClnKHRvKWgocGFzcylmKGFyb3VuZClnKHRoZSloKGN1cnJlbnQpZihzdGF0ZSlnCi0ob2YpZyh0aGUpaChoaXN0b3J5LikyMTkgMjUxNCB5KCovKTE5NSAyNTY2IHkodHlwZWRlZilmKHN0cnVjdClnCi0oX2hpc3Rfc3RhdGUpZih7KTI0MyAyNjE4IHkoSElTVF9FTlRSWSlnKCoqZW50cmllczspaCgvKilnKFBvaW50ZXIpZwotKHRvKWgodGhlKWYoZW50cmllcylnKHRoZW1zZWx2ZXMuKWcoKi8pMjQzIDI2NzAgeShpbnQpZyhvZmZzZXQ7KTI2MgotYigvKikyMyBiKFRoZSloKGxvY2F0aW9uKWYocG9pbnRlcilmKHdpdGhpbiloKHRoaXMpaChhcnJheS4pZigqLylwCi1lb3AKLSUlUGFnZTogNiA4Ci02IDcgYm9wIDc1IC01OCBhIEZwKDYpMTM0NyBiKEdOVSkxNSBiKEhpc3RvcnkpZyhMaWJyYXJ5KTI0MwotMTQ5IHkgRm8oaW50KTIzIGIobGVuZ3RoOykyNjIgYigvKikyMyBiKE51bWJlcilnKG9mKWgoZWxlbWVudHMpZgotKHdpdGhpbilnKHRoaXMpZyhhcnJheS4pZygqLykyNDMgMjAxIHkoaW50KWcoc2l6ZTspMzEwCi1iKC8qKTIzIGIoTnVtYmVyKWcob2YpaChzbG90cylmKGFsbG9jYXRlZClnKHRvKWcodGhpcyloKGFycmF5LilmKCovKTI0MwotMjUzIHkoaW50KWcoZmxhZ3M7KTE5NSAzMDUgeSh9KWgoSElTVE9SWV9TVEFURTspMTM3IDM3MgoteSBGcChJZikxNiBiKHRoZSlmKFwwMTVhZ3MpZyhtZW0pbyhiKXEoZXIpZyhpbmNsdWRlcylqCi1GbyhIU19TVElGTEVEKXAgRnAoLCkxMyBiKHRoZSlpKGhpc3RvcnkpaChoYXMpZihiKXEoZWVuKWgoc3RpXDAxNWVkLik3NQotNDk4IHkgRm4oMi4zKTMzIGIoSGlzdG9yeSkyMiBiKEYpLTYgYih1bmN0aW9ucykxMzcgNTkzCi15IEZwKFRoaXMpMTMgYihzZWN0aW9uKWcoZGVzY3JpYilxKGVzKWgodGhlKWUoY2FsbGluZylpKHNlcXVlbmNlKWcoZm9yKQotZSh0aGUpZyh2KW0oYXJpb3VzKWgoZnVuY3Rpb25zKWcoZXhwKXEob3J0ZWQpZihiKW8oeSloKHRoZSlmCi1GayhnbnUpNzUgNjQ4IHkgRnAoSGlzdG9yeSlqKGxpYnJhcnkpbCguKTc1IDc1OCB5IEZpKDIuMy4xKTMwCi1iKEluaXRpYWxpemluZykyMCBiKEhpc3RvcnkpaChhbmQpZihTdGF0ZSlnKE1hbmFnZW1lbiluKHQpMTM3Ci04NTMgeSBGcChUaGlzKWUoc2VjdGlvbilnKGRlc2NyaWIpcShlcyloKGZ1bmN0aW9ucylmKHVzZWQpZyh0byllCi0oaW5pdGlhbGl6ZSkyMSBiKGFuZCljKG1hbmFnZSlnKHRoZSlnKHN0YXRlKWcob2YpZyh0aGUpZyhIaXN0b3J5KTc1Ci05MDggeShsaWJyYXJ5KWYod2hlbilnKHkpbyhvdSlmKHcpbyhhbilvKHQpZih0bylnKHVzZSlpKHRoZSlmKGhpc3RvcnkpZwotKGZ1bmN0aW9ucyloKGluKWcoeSlvKG91cilmKHByb2dyYW0uKTE3NjIgMTAyMSB5KEYpbCh1bmN0aW9uKS0xODYxCi1iIEZoKHZvaWQpMjAgYiBGZyh1c2luZylwIDMzMyAxMDIxIDE4IDMgdiAyMCB3KGhpc3RvcnkpagotRmYoXCgpcCBGbyh2b2lkKXAgRmYoXCkpMTk1IDEwNzUgeSBGcChCZWdpbillKGEpZihzZXNzaW9uKWcoaW4paCh3aGljKW8KLShoKWcodGhlKWYoaGlzdG9yeSlnKGZ1bmN0aW9ucylnKG1pZ2gpbyh0KWcoYilxKGUpaCh1c2VkLikzNAotYihUaGlzKTIxIGIoaW5pdGlhbGl6ZXMpaSh0aGUpMTk1IDExMzAgeShpbilvKHRlcmFjdGl2KW8oZSkxNgotYih2KW0oYXJpYWJsZXMuKTE3NjIgMTI0MyB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmgoSElTVE9SWV9TVEFURSkyMQotYigqKWUgRmcoaGlzdG9yeSlwIDY1NyAxMjQzIFYgMjEgdyhnZXQpcCA3NTUgMTI0MyBWIDIxCi13KGhpc3RvcnkpcCA5NTEgMTI0MyBWIDIxIHcoc3RhdGUpaiBGZihcKClwIEZvKHZvaWQpcAotRmYoXCkpMTk1IDEyOTggeSBGcChSZXR1cm4pMTUgYihhKWcoc3RydWN0dXJlKWcoZGVzY3JpYmluZylpKHRoZSllCi0oY3VycmVuKW8odClnKHN0YXRlKWYob2YpaCh0aGUpZyhpbnB1dClpKGhpc3RvcnkpbCguKTE3NjIKLTE0MTEgeShGKWwodW5jdGlvbiktMTg2MSBiIEZoKHZvaWQpMjAgYiBGZyhoaXN0b3J5KXAKLTM3NyAxNDExIFYgMjAgdyhzZXQpcCA0NjggMTQxMSBWIDIxIHcoaGlzdG9yeSlwIDY2NCAxNDExCi1WIDIxIHcoc3RhdGUpaiBGZihcKClwIEZvKEhJU1RPUllfU1RBVEUpMTMgYigqc3RhdGUpcAotRmYoXCkpMTk1IDE0NjYgeSBGcChTZXQpaSh0aGUpaChzdGF0ZSllKG9mKWgodGhlKWcoaGlzdG9yeSlnKGxpc3QpaAotKGFjY29yZGluZylnKHRvKWUgRmooc3RhdGUpcCBGcCguKTc1IDE1NzUgeSBGaSgyLjMuMikzMAotYihIaXN0b3J5KTIwIGIoTGlzdCloKE1hbmFnZW1lbiluKHQpMTM3IDE2NzEgeSBGcChUaGVzZSkxMQotYihmdW5jdGlvbnMpaChtYW5hZ2UpZShpbmRpdmlkdWFsKWsoZW4pbyh0cmllcylkKG9uKWcodGhlKWcoaGlzdG9yeSlmCi0obGlzdCwpaShvcilmKHNldClmKHBhcmFtZXRlcnMpZyhtYW5hZ2luZyk3NSAxNzI1IHkodGhlKTE1Ci1iKGxpc3QpaChpdHNlbGYuKTE3NjIgMTgzOCB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmgodm9pZCkyMAotYiBGZyhhZGQpcCAyOTQgMTgzOCBWIDIwIHcoaGlzdG9yeSlqIEZmKFwoKXAgRm8oY29uc3QpMTQKLWIoY2hhcilnKCpzdHJpbmcpcCBGZihcKSkxOTUgMTg5MyB5IEZwKFBsYWNlKWkgRmooc3RyaW5nKWkKLUZwKGF0KWQodGhlKWcoZW5kKWgob2YpZSh0aGUpaChoaXN0b3J5KWcobGlzdC4pMjEgYihUaGUpMTUKLWIoYXNzbylxKGNpYXRlZClnKGRhdGEpZyhcMDE0ZWxkKWgoXChpZilmKGFuKW8oeVwpKWYoaXMpaShzZXQpZih0bykxOTUKLTE5NDggeSBGbyhOVUxMKXAgRnAoLikxNzYyIDIwNjEgeShGKWwodW5jdGlvbiktMTg2MSBiCi1GaChISVNUX0VOVFJZKTIxIGIoKillIEZnKHJlbW8pbih2KW4oZSlwIDU4NCAyMDYxIFYgMjAKLXcoaGlzdG9yeSlrIEZmKFwoKXAgRm8oaW50KTE0IGIod2hpY2gpcCBGZihcKSkxOTUgMjExNQoteSBGcChSZW1vKW8odilvKGUpMjIgYihoaXN0b3J5KWcoZW4pbyh0cnkpaChhdClmKG9cMDEzc2V0KWcKLUZqKHdoaWMpbyhoKWggRnAoZnJvbSlmKHRoZSloKGhpc3RvcnkpbCguKTQzIGIoVGhlKTIzCi1iKHJlbW8pbyh2KW8oZWQpZihlbGVtZW4pbyh0KWgoaXMpMTk1IDIxNzAgeShyZXR1cm5lZCkxNgotYihzbyllKHkpbyhvdSloKGNhbiloKGZyZWUpZih0aGUpZyhsaW5lLClpKGRhdGEsKWQoYW5kKWgoY29uKW8odGFpbmluZykKLWgoc3RydWN0dXJlLikxNzYyIDIyODMgeShGKWwodW5jdGlvbiktMTg2MSBiIEZoKEhJU1RfRU5UUlkpMjEKLWIoKillIEZnKHJlcGxhY2UpcCA1ODAgMjI4MyBWIDIyIHcoaGlzdG9yeSlwIDc3NyAyMjgzCi1WIDIwIHcoZW4pbih0cnkpMjQgYiBGZihcKClwIEZvKGludCkxNCBiKHdoaWNoLClnKGNvbnN0KWgoY2hhcikyODMKLTIzMzggeSgqbGluZSwpZihoaXN0ZGF0YV90KWcoZGF0YSlwIEZmKFwpKTE5NSAyMzkzIHkKLUZwKE1haylvKGUpZih0aGUpaChoaXN0b3J5KWcoZW4pbyh0cnkpZihhdClnKG9cMDEzc2V0KWcKLUZqKHdoaWMpbyhoKWkgRnAoaGEpbyh2KW8oZSllIEZqKGxpbmUpMTggYiBGcChhbmQpYyBGaihkYXRhKXAKLUZwKC4pMTkgYihUaGlzKTE0IGIocmV0dXJucylnKHRoZSlnKG9sZClnKGVuKW8odHJ5KTE5NQotMjQ0OCB5KHNvKTE5IGIoeSlvKG91KWYoY2FuKWkoZGlzcClxKG9zZSlnKG9mKWUodGhlKWkoZGF0YS4pMzAKLWIoSW4pMjAgYih0aGUpZihjYXNlKWcob2YpZyhhbilnKGluKW8odiltKGFsaWQpaSBGaih3aGljKW8oaClwCi1GcCgsKWcoYSlkIEZvKE5VTEwpaCBGcChwKXEob2luKW8odGVyKWcoaXMpMTk1IDI1MDIgeShyZXR1cm5lZC4pMTc2MgotMjYxNSB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmgodm9pZCkyMCBiIEZnKGNsZWFyKXAgMzIwCi0yNjE1IFYgMjEgdyhoaXN0b3J5KWogRmYoXCgpcCBGbyh2b2lkKXAgRmYoXCkpMTk1IDI2NzAKLXkgRnAoQ2xlYXIpMTUgYih0aGUpaChoaXN0b3J5KWYobGlzdCloKGIpbyh5KWYoZGVsZXRpbmcpaShhbGwpZih0aGUpZgotKGVuKW8odHJpZXMuKXAgZW9wCi0lJVBhZ2U6IDcgOQotNyA4IGJvcCA3NSAtNTggYSBGcChDaGFwdGVyKTE1IGIoMjopayhQcm9ncmFtbWluZyljKHdpdGgpZyhHTlUpZwotKEhpc3RvcnkpODg5IGIoNykxNzYyIDE0OSB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmgodm9pZCkyMAotYiBGZyhzdGlcMDE1ZSlwIDMyMCAxNDkgMTggMyB2IDIxIHcoaGlzdG9yeSlqIEZmKFwoKXAKLUZvKGludCkxNCBiKG1heClwIEZmKFwpKTE5NSAyMDQgeSBGcChTdGlcMDE1ZSlpKHRoZSlmKGhpc3RvcnkpaChsaXN0LClmCi0ocmVtZW0pbyhiKXEoZXJpbmcpaChvbmx5KWcodGhlKWYobGFzdClnIEZqKG1heClqIEZwKGVuKW8odHJpZXMuKTE3NjIKLTMwMiB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmgoaW50KTIwIGIgRmcodW5zdGlcMDE1ZSlwCi0zNTggMzAyIFYgMjEgdyhoaXN0b3J5KWkgRmYoXCgpcCBGbyh2b2lkKXAgRmYoXCkpMTk1Ci0zNTcgeSBGcChTdG9wKTE0IGIoc3RpXDAxNWluZylnKHRoZSlnKGhpc3RvcnkpbCguKTIwCi1iKFRoaXMpMTQgYihyZXR1cm5zKWYodGhlKWgocHJldmlvdXNseS1zZXQpaChtYXhpbSlvKHVtKWYobilvKHVtKW8oYilxCi0oZXIpZyhvZilmKGhpc3RvcnkpMTk1IDQxMSB5KGVuKW8odHJpZXMpaChcKGFzKWUoc2V0KWkoYilvKHkpZgotRm8oc3RpZmxlX2hpc3RvcnlcKFwpKXAgRnAoXCkuKWsoVGhlKWModiltKGFsdWUpaShpcylmKHApcShvc2l0aXYpbyhlKWcKLShpZilnKHRoZSlnKGhpc3RvcnkpZih3KW8oYXMpZihzdGlcMDE1ZWQsKTE5NSA0NjYgeShuZWdhdGl2KW8oZSlqKGlmKWgKLShpdClmKHcpbyhhc24ndC4pMTc2MiA1NjQgeShGKWwodW5jdGlvbiktMTg2MSBiIEZoKGludCkyMAotYiBGZyhoaXN0b3J5KXAgMzUxIDU2NCBWIDIwIHcoaXMpcCA0MDkgNTY0IFYgMjEgdyhzdGlcMDE1ZWQpawotRmYoXCgpcCBGbyh2b2lkKXAgRmYoXCkpMTk1IDYxOSB5IEZwKFJldHVybnMpMTUgYihub24temVybylnKGlmKWgodGhlKWYKLShoaXN0b3J5KWcoaXMpaChzdGlcMDE1ZWQsKWcoemVybylmKGlmKWcoaXQpaChpcylnKG5vdC4pNzUKLTcxOSB5IEZpKDIuMy4zKTMwIGIoSW5mb3JtYXRpb24pMTkgYihBYilyKG91dClpKHRoZSlmKEhpc3RvcnkpaChMaXN0KQotMTM3IDgxMSB5IEZwKFRoZXNlKTEzIGIoZnVuY3Rpb25zKWgocmV0dXJuKWYoaW5mb3JtYXRpb24pZyhhYilxKG91dClmCi0odGhlKWgoZW4pbyh0aXJlKWgoaGlzdG9yeSllKGxpc3QpaShvcillKGluZGl2aWR1YWwpayhsaXN0KWUoZW4pbwotKHRyaWVzLikxNzYyIDkwOSB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmgoSElTVF9FTlRSWSkyMQotYigqKillIEZnKGhpc3RvcnkpcCA2MDUgOTA5IFYgMjEgdyhsaXN0KTI0IGIgRmYoXCgpcAotRm8odm9pZClwIEZmKFwpKTE5NSA5NjQgeSBGcChSZXR1cm4pMTUgYihhKWcgRm8oTlVMTClmCi1GcCh0ZXJtaW5hdGVkKWkoYXJyYSlvKHkpZShvZiloIEZvKEhJU1RfRU5UUlkpZigqKWggRnAod2hpYylvKGgpaChpcylmCi0odGhlKWgoY3VycmVuKW8odClmKGlucHV0KWgoaGlzdG9yeSlsKC4pMTk1IDEwMTggeShFbGVtZW4pbyh0KWcoMClmKG9mKQotZih0aGlzKWkobGlzdClnKGlzKWcodGhlKWYoYilxKGVnaW5uaW5nKWkob2YpZSh0aW1lLikyMAotYihJZiljKHRoZXJlKWYoaXMpaChubylmKGhpc3RvcnkpbCgsKWcocmV0dXJuKWcgRm8oTlVMTClwCi1GcCguKTE3NjIgMTExNiB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmgoaW50KTIwIGIgRmcod2hlcmUpcAotMzI1IDExMTYgViAyMCB3KGhpc3RvcnkpaiBGZihcKClwIEZvKHZvaWQpcCBGZihcKSkxOTUKLTExNzEgeSBGcChSZXR1cm5zKTE1IGIodGhlKWcob1wwMTNzZXQpZihvZiloKHRoZSlnKGN1cnJlbilvKHQpZwotKGhpc3RvcnkpZyhlbGVtZW4pbyh0LikxNzYyIDEyNjggeShGKWwodW5jdGlvbiktMTg2MQotYiBGaChISVNUX0VOVFJZKTIxIGIoKillIEZnKGN1cnJlbiluKHQpcCA1ODcgMTI2OCBWIDIxCi13KGhpc3RvcnkpayBGZihcKClwIEZvKHZvaWQpcCBGZihcKSkxOTUgMTMyMyB5IEZwKFJldHVybikxMgotYih0aGUpaChoaXN0b3J5KWYoZW4pbyh0cnkpZyhhdClnKHRoZSlnKGN1cnJlbilvKHQpaChwKXEob3NpdGlvbiwpZyhhcykKLWYoZGV0ZXJtaW5lZClpKGIpbyh5KWUgRm8od2hlcmVfaGlzdG9yeVwoXCkpcCBGcCguKTE5NQotMTM3OCB5KElmKWoodGhlcmUpaChpcylmKG5vKWgoZW4pbyh0cnkpZSh0aGVyZSwpaChyZXR1cm4pZyhhKWcKLUZvKE5VTEwpZyBGcChwKXEob2luKW8odGVyLikxNzYyIDE0NzUgeShGKWwodW5jdGlvbiktMTg2MQotYiBGaChISVNUX0VOVFJZKTIxIGIoKillIEZnKGhpc3RvcnkpcCA1NzkgMTQ3NSBWIDIxIHcoZ2V0KWoKLUZmKFwoKXAgRm8oaW50KTE1IGIob2Zmc2V0KXAgRmYoXCkpMTk1IDE1MzAgeSBGcChSZXR1cm4pMjAKLWIodGhlKWgoaGlzdG9yeSlnKGVuKW8odHJ5KWYoYXQpaChwKXEob3NpdGlvbilnIEZqKG9cMDEzc2V0KXAKLUZwKCwpZyhzdGFydGluZylmKGZyb20pZyBGbyhoaXN0b3J5X2Jhc2UpZiBGcChcKHNlZSlpKFNlYy0pMTk1Ci0xNTg1IHkodGlvbikxNSBiKDIuNClmKFtIaXN0b3J5KWcoVilsKGFyaWFibGVzXSwpaChwYWdlKWcoMTBcKS4paihJZilkCi0odGhlcmUpZyhpcylnKG5vKWcoZW4pbyh0cnkpZih0aGVyZSwpaChvcilmKGlmKWggRmoob1wwMTNzZXQpZwotRnAoaXMpZyhncmVhdGVyKTE5NSAxNjQwIHkodGhhbilnKHRoZSlnKGhpc3RvcnkpZyhsZW5ndGgsKWgocmV0dXJuKWYoYSkKLWcgRm8oTlVMTClnIEZwKHApcShvaW4pbyh0ZXIuKTE3NjIgMTczNyB5KEYpbCh1bmN0aW9uKS0xODYxCi1iIEZoKGludCkyMCBiIEZnKGhpc3RvcnkpcCAzNTEgMTczNyBWIDIwIHcodG90YWwpcCA0ODcKLTE3MzcgViAyMiB3KGIpbih5dGVzKWogRmYoXCgpcCBGbyh2b2lkKXAgRmYoXCkpMTk1IDE3OTIKLXkgRnAoUmV0dXJuKTEzIGIodGhlKWgobilvKHVtKW8oYilxKGVyKWcob2YpZyhiKW8oeXRlcylmKHRoYXQpZyh0aGUpaAotKHByaW1hcnkpZyhoaXN0b3J5KWcoZW4pbyh0cmllcylnKGFyZSlnKHVzaW5nLikyMCBiKFRoaXMpMTQKLWIoZnVuY3Rpb24pMTk1IDE4NDcgeShyZXR1cm5zKWgodGhlKWcoc3VtKWgob2YpZSh0aGUpaShsZW5ndGhzKWYob2YpZwotKGFsbCloKHRoZSlnKGxpbmVzKWcoaW4pZyh0aGUpZyhoaXN0b3J5KWwoLik3NSAxOTQ3IHkKLUZpKDIuMy40KTMwIGIoTW8pbih2aW5nKTIxIGIoQXJvdW5kKWYodGhlKWgoSGlzdG9yeSlnKExpc3QpMTM3Ci0yMDQwIHkgRnAoVGhlc2UpMTYgYihmdW5jdGlvbnMpZyhhbGxvKW8odylmKHRoZSlnKGN1cnJlbilvKHQpaChpbmRleClnCi0oaW4pbyh0bylmKHRoZSloKGhpc3RvcnkpZihsaXN0KWgodG8pZShiKXEoZSlpKHNldClmKG9yKWcoYylvKGhhbmdlZC4pCi0xNzYyIDIxMzcgeShGKWwodW5jdGlvbiktMTg2MSBiIEZoKGludCkyMCBiIEZnKGhpc3RvcnkpcAotMzUxIDIxMzcgViAyMCB3KHNldClwIDQ0MiAyMTM3IFYgMjEgdyhwKXIob3MpaCBGZihcKClwCi1GbyhpbnQpMTUgYihwb3MpcCBGZihcKSkxOTUgMjE5MiB5IEZwKFNldClqKHRoZSloKGN1cnJlbilvKHQpZihoaXN0b3J5KQotZyhvXDAxM3NldClnKHRvKWYgRmoocClxKG9zKXAgRnAoLClpKGFuKWYoYWJzb2x1dGUpaChpbmRleCloKGluKW8odG8pZQotKHRoZSlnKGxpc3QuKTMwIGIoUmV0dXJucykxOCBiKDEpZyhvbikxOTUgMjI0NyB5KHN1Y2Nlc3MsKWQoMClnKGlmKWgKLUZqKHApcShvcyloIEZwKGlzKWYobGVzcylnKHRoYW4pZih6ZXJvKWcob3IpZyhncmVhdGVyKWYodGhhbiloKHRoZSlnKG4pCi1vKHVtKW8oYilxKGVyKWgob2YpZShoaXN0b3J5KWkoZW4pbyh0cmllcy4pMTc2MiAyMzQ0Ci15KEYpbCh1bmN0aW9uKS0xODYxIGIgRmgoSElTVF9FTlRSWSkyMSBiKCopZSBGZyhwcmV2aW91cylwCi02MTUgMjM0NCBWIDIwIHcoaGlzdG9yeSlrIEZmKFwoKXAgRm8odm9pZClwIEZmKFwpKTE5NQotMjM5OSB5IEZwKEJhYylvKGspMTQgYih1cCloKHRoZSlnKGN1cnJlbilvKHQpZihoaXN0b3J5KWcob1wwMTNzZXQpZyh0bykKLWYodGhlKWkocHJldmlvdXMpZyhoaXN0b3J5KWYoZW4pbyh0cnkpbCgsKWcoYW5kKWgocmV0dXJuKWYoYSlnKHApcShvaW4pCi1vKHRlcikxOTUgMjQ1NCB5KHRvKWgodGhhdClmKGVuKW8odHJ5KWwoLikyMCBiKElmKTE1Ci1iKHRoZXJlKWcoaXMpaChubylmKHByZXZpb3VzKWgoZW4pbyh0cnkpbCgsKWYocmV0dXJuKWcoYSlnCi1GbyhOVUxMKWcgRnAocClxKG9pbilvKHRlci4pMTc2MiAyNTUyIHkoRilsKHVuY3Rpb24pLTE4NjEKLWIgRmgoSElTVF9FTlRSWSkyMSBiKCopZSBGZyhuZXh0KXAgNTE0IDI1NTIgViAyMSB3KGhpc3RvcnkpawotRmYoXCgpcCBGbyh2b2lkKXAgRmYoXCkpMTk1IDI2MDYgeSBGcChNbylvKHYpbyhlKTE3IGIodGhlKWgoY3VycmVuKW8odCkKLWYoaGlzdG9yeSloKG9cMDEzc2V0KWYoZm9ydylvKGFyZClmKHRvKWgodGhlKWgobmV4dClnKGhpc3RvcnkpZyhlbilvCi0odHJ5KWwoLClnKGFuZClnKHJldHVybilmKHRoZSloKGEpMTk1IDI2NjEgeShwKXEob2luKW8odGVyKWUodG8pZSh0aGF0KQotaChlbilvKHRyeSlsKC4payhJZilkKHRoZXJlKWYoaXMpaChubylmKG5leHQpZyhlbilvKHRyeSlsKCwpZyhyZXR1cm4pZwotKGEpZyBGbyhOVUxMKWcgRnAocClxKG9pbilvKHRlci4pcCBlb3AKLSUlUGFnZTogOCAxMAotOCA5IGJvcCA3NSAtNTggYSBGcCg4KTEzNDcgYihHTlUpMTUgYihIaXN0b3J5KWcoTGlicmFyeSk3NQotMTQ5IHkgRmkoMi4zLjUpMzAgYihTZWFyYyluKGhpbmcpMjEgYih0aGUpZihIaXN0b3J5KWgoTGlzdCkxMzcKLTI0NSB5IEZwKFRoZXNlKTE0IGIoZnVuY3Rpb25zKWcoYWxsbylvKHcpZyhzZWFyYylvKGhpbmcpZyhvZillKHRoZSlpCi0oaGlzdG9yeSlmKGxpc3QpaChmb3IpZihlbilvKHRyaWVzKWgoY29uKW8odGFpbmluZylnKGEpZihzcClxKGVjaVwwMTRjKQotaShzdHJpbmcuKTc1IDMwMCB5KFNlYXJjKW8oaGluZylmKG1hKW8oeSlnKGIpcShlKWcocClxKGVyZm9ybWVkKWcoYilxCi0ob3RoKWcoZm9ydylvKGFyZCllKGFuZClpKGJhYylvKGt3KW8oYXJkKWYoZnJvbSlnKHRoZSloKGN1cnJlbilvKHQpZwotKGhpc3RvcnkpZihwKXEob3NpdGlvbi4pNzUgMzU1IHkoVGhlKWooc2VhcmMpbyhoKWYobWEpbyh5KWcoYilxKGUpaQotRmooYW5jKW8oaG9yZWQpcCBGcCgsKWUobWVhbmluZyloKHRoYXQpZih0aGUpaChzdHJpbmcpZyhtKW8odXN0KWYobWF0YykKLW8oaClnKGF0KWcodGhlKWgoYilxKGVnaW5uaW5nKWkob2YpZCh0aGUpNzUgNDEwIHkoaGlzdG9yeSlnKGVuKW8odHJ5KWwKLSguKTE3NjIgNTI0IHkoRilsKHVuY3Rpb24pLTE4NjEgYiBGaChpbnQpMjAgYiBGZyhoaXN0b3J5KXAKLTM1MSA1MjQgMTggMyB2IDIwIHcoc2VhcmMpbihoKWogRmYoXCgpcCBGbyhjb25zdCkxNCBiKGNoYXIpaCgqc3RyaW5nLClmCi0oaW50KWgoZGlyZWN0aW9uKXAgRmYoXCkpMTk1IDU3OCB5IEZwKFNlYXJjKW8oaClnKHRoZSlmKGhpc3RvcnkpZyhmb3IpZwotRmooc3RyaW5nKXAgRnAoLClnKHN0YXJ0aW5nKWcoYXQpZyh0aGUpaChjdXJyZW4pbyh0KWYoaGlzdG9yeSlnCi0ob1wwMTNzZXQuKTE5IGIoSWYpYyBGaihkaXJlY3Rpb24pZyBGcChpcylnKGxlc3MpMTk1Ci02MzMgeSh0aGFuKTIwIGIoMCwpZyh0aGVuKWgodGhlKWYoc2VhcmMpbyhoKWYoaXMpaSh0aHJvdWdoKWYocHJldmlvdXMpZwotKGVuKW8odHJpZXMsKWkob3RoZXJ3aXNlKWUodGhyb3VnaClmKHN1YnNlcXVlbilvKHQpMTk1Ci02ODggeShlbilvKHRyaWVzLiloKElmKWMgRmooc3RyaW5nKWogRnAoaXMpZChmb3VuZCwpZih0aGVuKWcodGhlKWgKLShjdXJyZW4pbyh0KWYoaGlzdG9yeSlnKGluZGV4KWgoaXMpZyhzZXQpZih0bylnKHRoYXQpZihoaXN0b3J5KWgoZW4pbwotKHRyeSlsKCwpMTk1IDc0MyB5KGFuZClpKHRoZSlnKHYpbShhbHVlKWgocmV0dXJuZWQpZihpcylnKHRoZSlnCi0ob1wwMTNzZXQpZShpbilqKHRoZSlmKGxpbmUpaChvZillKHRoZSloKGVuKW8odHJ5KWcod2hlcmUpZwotRmooc3RyaW5nKWogRnAodylvKGFzKWMoZm91bmQuKTE5NSA3OTggeShPdGhlcndpc2UsKWcobm90aGluZylmKGlzKWgoYykKLW8oaGFuZ2VkLClmKGFuZCloKGEpZSgtMSloKGlzKWgocmV0dXJuZWQuKTE3NjIgOTEyIHkoRilsKHVuY3Rpb24pLTE4NjEKLWIgRmgoaW50KTIwIGIgRmcoaGlzdG9yeSlwIDM1MSA5MTIgViAyMCB3KHNlYXJjKW4oaClwCi01MjcgOTEyIFYgMjEgdyhwcmVcMDE0eClpIEZmKFwoKXAgRm8oY29uc3QpMTQgYihjaGFyKWgoKnN0cmluZywpZihpbnQpaAotKGRpcmVjdGlvbilwIEZmKFwpKTE5NSA5NjYgeSBGcChTZWFyYylvKGgpMjAgYih0aGUpaChoaXN0b3J5KWYoZm9yKWcKLUZqKHN0cmluZylwIEZwKCwpaChzdGFydGluZyllKGF0KWgodGhlKWcoY3VycmVuKW8odCloKGhpc3RvcnkpZgotKG9cMDEzc2V0LikzNCBiKFRoZSkyMCBiKHNlYXJjKW8oaClnKGlzKTE5NSAxMDIxIHkoYW5jKW8oaG9yZWQ6KWcobWF0YykKLW8oaGluZykxNCBiKGxpbmVzKWoobSlvKHVzdClkKGIpcShlZ2luKWkod2l0aClmIEZqKHN0cmluZylwCi1GcCguKTIwIGIoSWYpMTUgYiBGaihkaXJlY3Rpb24paCBGcChpcylmKGxlc3MpZyh0aGFuKWcoMCwpZih0aGVuKWgodGhlKQotMTk1IDEwNzYgeShzZWFyYylvKGgpZyhpcylpKHRocm91Z2gpZShwcmV2aW91cyloKGVuKW8odHJpZXMsKWcKLShvdGhlcndpc2UpZyh0aHJvdWdoKWYoc3Vic2VxdWVuKW8odCloKGVuKW8odHJpZXMuKTIyCi1iKElmKTE2IGIgRmooc3RyaW5nKWogRnAoaXMpMTk1IDExMzEgeShmb3VuZCwpZSh0aGVuKWcodGhlKWYoY3VycmVuKW8KLSh0KWgoaGlzdG9yeSlmKGluZGV4KWkoaXMpZihzZXQpZih0bylnKHRoYXQpZyhlbilvKHRyeSlsKCwpZyhhbmQpaCh0aGUpCi1mKHJldHVybiloKHYpbShhbHVlKWgoaXMpZigwLikxOTUgMTE4NiB5KE90aGVyd2lzZSwpZihub3RoaW5nKWYoaXMpaChjKQotbyhoYW5nZWQsKWYoYW5kKWgoYSllKC0xKWgoaXMpaChyZXR1cm5lZC4pMTc2MiAxMzAwIHkoRilsKHVuY3Rpb24pLTE4NjEKLWIgRmgoaW50KTIwIGIgRmcoaGlzdG9yeSlwIDM1MSAxMzAwIFYgMjAgdyhzZWFyYyluKGgpcAotNTI3IDEzMDAgViAyMSB3KHApcihvcyloIEZmKFwoKXAgRm8oY29uc3QpMTQgYihjaGFyKWgoKnN0cmluZywpZihpbnQpaAotKGRpcmVjdGlvbiwpZihpbnQpMjgzIDEzNTUgeShwb3MpcCBGZihcKSkxOTUgMTQwOSB5IEZwKFNlYXJjKW8oaClqKGZvcikKLWcgRmooc3RyaW5nKWsgRnAoaW4pZCh0aGUpZihoaXN0b3J5KWcobGlzdCwpaChzdGFydGluZyllKGF0KWgKLUZqKHApcShvcylwIEZwKCwpZyhhbilnKGFic29sdXRlKWgoaW5kZXgpZyhpbilvKHRvKWYodGhlKWgobGlzdC4pMTk1Ci0xNDY0IHkoSWYpZyBGaihkaXJlY3Rpb24paSBGcChpcyllKG5lZ2F0aXYpbyhlLCloKHRoZSlmKHNlYXJjKW8oaClnCi0ocHJvKXEoY2VlZHMpZyhiYWMpbyhrdylvKGFyZClnKGZyb20pZiBGaihwKXEob3MpcCBGcCgsKWgob3RoZXJ3aXNlKWgKLShmb3J3KW8oYXJkLikxOTUgMTUxOSB5KFJldHVybnMpaih0aGUpZyhhYnNvbHV0ZSlnKGluZGV4KWgob2YpZih0aGUpZwotKGhpc3RvcnkpZyhlbGVtZW4pbyh0KWgod2hlcmUpZiBGaihzdHJpbmcpayBGcCh3KW8oYXMpMjEKLWIoZm91bmQsKWoob3IpZCgtMSkxOTUgMTU3NCB5KG90aGVyd2lzZS4pNzUgMTY4NCB5IEZpKDIuMy42KTMwCi1iKE1hbmFnaW5nKTIwIGIodGhlKWcoSGlzdG9yeSloKEZpbGUpMTM3IDE3ODAgeSBGcChUaGUpMTYKLWIoSGlzdG9yeSlnKGxpYnJhcnkpaChjYW4pZShyZWFkKWgodGhlKWcoaGlzdG9yeSlnKGZyb20pZihhbmQpaCh3cml0ZSlnCi0oaXQpZyh0bylmKGEpaChcMDE0bGUuKTIyIGIoVGhpcykxNyBiKHNlY3Rpb24pZihkbylxKGN1LSk3NQotMTgzNSB5KG1lbilvKHRzKWYodGhlKWcoZnVuY3Rpb25zKWgoZm9yKWYobWFuYWdpbmcpZyhhKWcoaGlzdG9yeSlnCi0oXDAxNGxlLikxNzYyIDE5NDkgeShGKWwodW5jdGlvbiktMTg2MSBiIEZoKGludCkyMCBiCi1GZyhyZWFkKXAgMjg2IDE5NDkgViAyMCB3KGhpc3RvcnkpaSBGZihcKClwIEZvKGNvbnN0KTE1Ci1iKGNoYXIpZigqZmlsZW5hbWUpcCBGZihcKSkxOTUgMjAwMyB5IEZwKEFkZCloKHRoZSlnKGNvbilvKHRlbilvKHRzKWYKLShvZiloIEZqKFwwMTRsZW5hbWUpaiBGcCh0byljKHRoZSloKGhpc3RvcnkpZyhsaXN0LClnKGEpZyhsaW5lKWgoYXQpZgotKGEpZih0aW1lLikyMCBiKElmKTE1IGIgRmooXDAxNGxlbmFtZSlrIEZwKGlzKWMgRm8oTlVMTClwCi1GcCgsKTE5NSAyMDU4IHkodGhlbiloKHJlYWQpZihmcm9tKWYoYClwIEZvKH4vLmhpc3RvcnkpcAotRnAoJy4payhSZXR1cm5zKWQoMClmKGlmKWkoc3VjY2Vzc2Z1bCwpZyhvcilmIEZvKGVycm5vKWYKLUZwKGlmKWkobm90LikxNzYyIDIxNzIgeShGKWwodW5jdGlvbiktMTg2MSBiIEZoKGludCkyMAotYiBGZyhyZWFkKXAgMjg2IDIxNzIgViAyMCB3KGhpc3RvcnkpcCA0ODEgMjE3MiBWIDIwIHcocmFuZ2UpaQotRmYoXCgpcCBGbyhjb25zdCkxNCBiKGNoYXIpaCgqZmlsZW5hbWUsKWYoaW50KWgoZnJvbSwpZihpbnQpaCh0bylwCi1GZihcKSkxOTUgMjIyNyB5IEZwKFJlYWQpZihhKWYocmFuZ2UpaChvZilmKGxpbmVzKWooZnJvbSlkCi1GaihcMDE0bGVuYW1lKXAgRnAoLClpKGFkZGluZylnKHRoZW0pZih0bylmKHRoZSloKGhpc3RvcnkpZyhsaXN0LikyMAotYihTdGFydCkxMyBiKHJlYWRpbmcpaShhdCkxOTUgMjI4MiB5KGxpbmUpZyBGaihmcm9tKWQKLUZwKGFuZCloKGVuZCloKGF0KWYgRmoodG8pcCBGcCguKTE4IGIoSWYpYyBGaihmcm9tKWUKLUZwKGlzKWkoemVybywpZihzdGFydClmKGF0KWcodGhlKWgoYilxKGVnaW5uaW5nLikyMiBiKElmKTEzCi1iIEZqKHRvKWkgRnAoaXMpZShsZXNzKWgodGhhbilmIEZqKGZyb20pcCBGcCgsKTE5NSAyMzM3Ci15KHRoZW4paShyZWFkKWcodW4pbyh0aWwpaSh0aGUpZShlbmQpZyhvZilnKHRoZSlnKFwwMTRsZS4pMjEKLWIoSWYpMTUgYiBGaihcMDE0bGVuYW1lKWsgRnAoaXMpZCBGbyhOVUxMKXAgRnAoLCllKHRoZW4paChyZWFkKWcoZnJvbSlmCi0oYClwIEZvKH4vLmhpc3RvcnkpcCBGcCgnLikxOTUgMjM5MiB5KFJldHVybnMpaCgwKWcoaWYpZyhzdWNjZXNzZnVsLCloCi0ob3IpZiBGbyhlcnJubylnIEZwKGlmKWcobm90LikxNzYyIDI1MDYgeShGKWwodW5jdGlvbiktMTg2MQotYiBGaChpbnQpMjAgYiBGZyh3cml0ZSlwIDMwNCAyNTA2IFYgMjIgdyhoaXN0b3J5KWkgRmYoXCgpcAotRm8oY29uc3QpMTUgYihjaGFyKWYoKmZpbGVuYW1lKXAgRmYoXCkpMTk1IDI1NjAgeSBGcChXKWwocml0ZSlrKHRoZSlmCi0oY3VycmVuKW8odClnKGhpc3RvcnkpaCh0bylmIEZqKFwwMTRsZW5hbWUpcCBGcCgsKWgobylvKHYpbyhlcndyaXRpbmcpZgotRmooXDAxNGxlbmFtZSlrIEZwKGlmKWQobmVjZXNzYXJ5KWwoLikyNyBiKElmKTE4IGIgRmooXDAxNGxlbmFtZSkxOTUKLTI2MTUgeSBGcChpcylmIEZvKE5VTEwpcCBGcCgsKWUodGhlbiloKHdyaXRlKWgodGhlKWYoaGlzdG9yeSlnKGxpc3QpaAotKHRvKWUoYClwIEZvKH4vLmhpc3RvcnkpcCBGcCgnLikyMSBiKFJldHVybnMpMTYgYigwKWYob24paChzdWNjZXNzLCloCi0ob3IpZiBGbyhlcnJubykxOTUgMjY3MCB5IEZwKG9uKWYoYSlnKHJlYWQpZyhvcilnKHdyaXRlKWcoZXJyb3IuKXAKLWVvcAotJSVQYWdlOiA5IDExCi05IDEwIGJvcCA3NSAtNTggYSBGcChDaGFwdGVyKTE1IGIoMjopayhQcm9ncmFtbWluZyljKHdpdGgpZyhHTlUpZwotKEhpc3RvcnkpODg5IGIoOSkxNzYyIDE0OSB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmgoaW50KTIwCi1iIEZnKGFwcClyKGVuZClwIDM2MCAxNDkgMTggMyB2IDE5IHcoaGlzdG9yeSlqIEZmKFwoKXAKLUZvKGludCkxNCBiKG5lbGVtZW50cywpZyhjb25zdCloKGNoYXIpZigqZmlsZW5hbWUpcCBGZihcKSkxOTUKLTIwNCB5IEZwKEFwcClxKGVuZCkxOSBiKHRoZSllKGxhc3QpZyBGaihuZWxlbWVuKW8odHMpawotRnAob2YpMTYgYih0aGUpaShoaXN0b3J5KWYobGlzdCloKHRvKWYgRmooXDAxNGxlbmFtZSlwCi1GcCguKTI3IGIoSWYpMTggYiBGaihcMDE0bGVuYW1lKWogRnAoaXMpZCBGbyhOVUxMKXAgRnAoLClmKHRoZW4pMTk1Ci0yNTkgeShhcHApcShlbmQpZih0bylmKGApcCBGbyh+Ly5oaXN0b3J5KXAgRnAoJy4paihSZXR1cm5zKWMoMCloKG9uKWcKLShzdWNjZXNzLCloKG9yKWUgRm8oZXJybm8paCBGcChvbilnKGEpZyhyZWFkKWcob3IpZyh3cml0ZSlnKGVycm9yLikxNzYyCi00MDQgeShGKWwodW5jdGlvbiktMTg2MSBiIEZoKGludCkyMCBiIEZnKGhpc3RvcnkpcCAzNTEKLTQwNCBWIDIwIHcodHJ1bmNhdGUpcCA1ODIgNDA0IFYgMjEgdyhcMDE0bGUpayBGZihcKClwCi1Gbyhjb25zdCkxNCBiKGNoYXIpaCgqZmlsZW5hbWUsKWUoaW50KWkobmxpbmVzKXAgRmYoXCkpMTk1Ci00NTkgeSBGcChUKWwocnVuY2F0ZSlrKHRoZSloKGhpc3RvcnkpZihcMDE0bGUpaCBGaihcMDE0bGVuYW1lKXAKLUZwKCwpaChsZWEpbyh2aW5nKWYob25seSlnKHRoZSlmKGxhc3QpZyBGaihubGluZXMpayBGcChsaW5lcy4pMzQKLWIoSWYpMjAgYiBGaihcMDE0bGVuYW1lKWkgRnAoaXMpMTk1IDUxMyB5IEZvKE5VTEwpcCBGcCgsKTE0Ci1iKHRoZW4paShgKXAgRm8ofi8uaGlzdG9yeSlwIEZwKCcpZChpcylqKHRydW5jYXRlZC4paihSZXR1cm5zKWMoMClnKG9uKQotZyhzdWNjZXNzLCloKG9yKWUgRm8oZXJybm8paCBGcChvbilnKGZhaWx1cmUuKTc1IDY0NAoteSBGaSgyLjMuNykzMCBiKEhpc3RvcnkpMjAgYihFeHBhbnNpb24pMTM3IDc1MCB5IEZwKFRoZXNlKWMoZnVuY3Rpb25zKWcKLShpbXBsZW1lbilvKHQpZyhoaXN0b3J5KWYoZXhwYW5zaW9uLikxNzYyIDg5NSB5KEYpbCh1bmN0aW9uKS0xODYxCi1iIEZoKGludCkyMCBiIEZnKGhpc3RvcnkpcCAzNTEgODk1IFYgMjAgdyhleHBhbmQpaiBGZihcKClwCi1GbyhjaGFyKTE0IGIoKnN0cmluZywpZyhjaGFyKWgoKipvdXRwdXQpcCBGZihcKSkxOTUgOTQ5Ci15IEZwKEV4cGFuZClqIEZqKHN0cmluZylwIEZwKCwpZihwbGFjaW5nKWgodGhlKWcocmVzdWx0KWYoaW4pbyh0bylnCi1GaihvdXRwdXQpcCBGcCgsKWgoYSllKHApcShvaW4pbyh0ZXIpaSh0bylmKGEpZyhzdHJpbmcpZyhcKHNlZSlnCi0oU2VjdGlvbiloKDEuMSkxOTUgMTAwNCB5KFtIaXN0b3J5KWQoSW4pbyh0ZXJhY3Rpb25dLClmKHBhZ2UpaCgxXCkuKTIwCi1iKFJldHVybnM6KTE5NSAxMDk4IHkgRm8oMCkyMTYgYiBGcChJZikxOSBiKG5vKWcoZXhwYW5zaW9ucylnKHRvKXEob2spZgotKHBsYWNlKWkoXChvciwpZShpZilpKHRoZSllKG9ubHkpaShjKW8oaGFuZ2UpZShpbilpKHRoZSlmKHRleHQpZih3KW8KLShhcylnKHRoZSk0MzUgMTE1MiB5KHJlbW8pbyh2KW0oYWwpZChvZilnKGVzY2FwKXEoZSloKGMpbyhoYXJhY3RlcnMpZQotKHByZWNlZGluZylpKHRoZSlmKGhpc3RvcnkpZyhleHBhbnNpb24paChjKW8oaGFyYWN0ZXJcKTspMTk1Ci0xMjQxIHkgRm8oMSkyMTYgYiBGcChpZikxNiBiKGV4cGFuc2lvbnMpZyhkaWQpZyh0YWspbyhlKWUocGxhY2U7KTE5NQotMTMzMCB5IEZvKC0xKTE5MiBiIEZwKGlmKTE2IGIodGhlcmUpZih3KW8oYXMpZihhbiloKGVycm9yKWcoaW4paAotKGV4cGFuc2lvbjspMTk1IDE0MTkgeSBGbygyKTIxNiBiIEZwKGlmKTE0IGIodGhlKWcocmV0dXJuZWQpZyhsaW5lKWkKLShzaG91bGQpZihiKXEoZSlmKGRpc3BsYSlvKHkpbyhlZCwpaChidXQpZihub3QpZihleGVjdXRlZCwpaShhcyllKHdpdGgpCi1oKHRoZSlnIEZvKDpwKTQzNSAxNDc0IHkgRnAobW8pcShkaVwwMTRlcilpKFwoc2VlKWYoU2VjdGlvbiloKDEuMS4zKWUKLShbTW8pcShkaVwwMTRlcnNdLCloKHBhZ2UpZygyXCkuKTE5NSAxNTY4IHkoSWYpZyhhbiloKGVycm9yKWUobylxCi0oY3VycmVkKWkoaW4pZyhleHBhbnNpb24sKWYodGhlbiloIEZqKG91dHB1dClnIEZwKGNvbilvKHRhaW5zKWYoYSlnCi0oZGVzY3JpcHRpdilvKGUpaShlcnJvcilkKG1lc3NhZ2UuKTE3NjIgMTcxMyB5KEYpbCh1bmN0aW9uKS0xODYxCi1iIEZoKGNoYXIpMjAgYigqKWYgRmcoZ2V0KXAgMzI0IDE3MTMgViAyMSB3KGhpc3RvcnkpcAotNTIwIDE3MTMgViAyMCB3KGV2KW4oZW4pbih0KTI1IGIgRmYoXCgpcCBGbyhjb25zdCkxNAotYihjaGFyKWgoKnN0cmluZywpZihpbnQpZygqY2luZGV4LClnKGludCkyODMgMTc2NyB5KHFjaGFyKXAKLUZmKFwpKTE5NSAxODIyIHkgRnAoUmV0dXJucykyMiBiKHRoZSloKHRleHQpZihvZiloKHRoZSlmKGhpc3RvcnkpaChldilvCi0oZW4pbyh0KWcoYilxKGVnaW5uaW5nKWgoYXQpZiBGaihzdHJpbmcpaiBGbygrKWQgRmooKmNpbmRleClwCi1GcCguKTQzIGIgRmooKmNpbmRleCkyNyBiIEZwKGlzKTE5NSAxODc3IHkobW8pcShkaVwwMTRlZCkxNgotYih0byllKHApcShvaW4pbyh0KWgodG8pZihhZnRlcilnKHRoZSloKGV2KW8oZW4pbyh0KWYoc3ApcShlY2lcMDE0ZXIuKQotMjIgYihBKW8odCkxNCBiKGZ1bmN0aW9uKWgoZW4pbyh0cnkpbCgsKWcgRmooY2luZGV4KWsKLUZwKHApcShvaW4pbyh0cyljKHRvKWYodGhlKTE5NSAxOTMyIHkoaW5kZXgpMTkgYihpbilvKHRvKWYKLUZqKHN0cmluZylrIEZwKHdoZXJlKWModGhlKWcoaGlzdG9yeSlnKGV2KW8oZW4pbyh0KWcoc3ApcQotKGVjaVwwMTRjYXRpb24paChiKXEoZWdpbnMuKTMwIGIgRmoocWMpbyhoYXIpMjEgYiBGcChpcylkKGEpZyhjKW8KLShoYXJhY3RlcikxOTUgMTk4NyB5KHRoYXQpMTMgYihpcyloKGFsbG8pbyh3KW8oZWQpZyh0byllKGVuZClpKHRoZSlnCi0oZXYpbyhlbilvKHQpZihzcClxKGVjaVwwMTRjYXRpb24paihpbillKGFkZGl0aW9uKWcodG8pZih0aGUpaAotKFxcbm9ybWFsIilmKHRlcm1pbmF0aW5nKTE5NSAyMDQxIHkoYylvKGhhcmFjdGVycy4pMTc2MgotMjE4NiB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmgoY2hhcikyMCBiKCoqKWYgRmcoaGlzdG9yeSlwCi00NDggMjE4NiBWIDIxIHcodG9rKW4oZW5pemUpMjUgYiBGZihcKClwIEZvKGNvbnN0KTE0Ci1iKGNoYXIpaCgqc3RyaW5nKXAgRmYoXCkpMTk1IDIyNDEgeSBGcChSZXR1cm4pZyhhbilnKGFycmEpbyh5KWcob2YpZwotKHRvaylvKGVucylnKHBhcnNlZClnKG91dClnKG9mKWcgRmooc3RyaW5nKXAgRnAoLClnKG0pbyh1YylvKGgpaChhcylmCi0odGhlKWcoc2hlbGwpaShtaWdoKW8odC4payhUaGUpMTUgYih0b2spbyhlbnMpMTk1IDIyOTYKLXkoYXJlKWgoc3BsaXQpaChvbillKHRoZSloKGMpbyhoYXJhY3RlcnMpZyhpbilnKHRoZSlnCi1GaihoaXN0b3J5KXAgMTAwNyAyMjk2IDE0IDIgdiAxNyB3KHcpbyhvcmQpcCAxMTIyIDIyOTYKLVYgMTUgdyhkZWxpbWl0ZXJzKWsgRnAodiltKGFyaWFibGUsKWQoYW5kKWYoc2hlbGwpaShxdW90aW5nKTE5NQotMjM1MSB5KGNvbilvKHYpbyhlbilvKHRpb25zKWQoYXJlKWcob2IpcShleSlvKGVkLikxNzYyCi0yNDk2IHkoRilsKHVuY3Rpb24pLTE4NjEgYiBGaChjaGFyKTIwIGIoKilmIEZnKGhpc3RvcnkpcAotNDIyIDI0OTYgMTggMyB2IDIxIHcoYXJnKXAgNTI0IDI0OTYgViAxOSB3KGV4dHJhY3QpMjQKLWIgRmYoXCgpcCBGbyhpbnQpMTQgYihmaXJzdCwpaChpbnQpZyhsYXN0LClmKGNvbnN0KWcoY2hhcikyODMKLTI1NTAgeSgqc3RyaW5nKXAgRmYoXCkpMTk1IDI2MDUgeSBGcChFeHRyYWN0KTE5IGIoYSloKHN0cmluZylnKHNlZ21lbilvCi0odClnKGNvbnNpc3RpbmcpaChvZilmKHRoZSlnIEZqKFwwMTRyc3QpaCBGcCh0aHJvdWdoKWYKLUZqKGxhc3QpaCBGcChhcmd1bWVuKW8odHMpZShwcmVzZW4pbyh0KWgoaW4pMTk1IDI2NjAKLXkgRmooc3RyaW5nKXAgRnAoLilnKEFyZ3VtZW4pbyh0cykxNSBiKGFyZSlmKHNwbGl0KWoodXNpbmcpZgotRm8oaGlzdG9yeV90b2tlbml6ZSlwIEZwKC4pcCBlb3AKLSUlUGFnZTogMTAgMTIKLTEwIDExIGJvcCA3NSAtNTggYSBGcCgxMCkxMzI0IGIoR05VKTE1IGIoSGlzdG9yeSlnKExpYnJhcnkpNzUKLTE0OSB5IEZuKDIuNCkzMyBiKEhpc3RvcnkpMjIgYihWKS02IGIoYXJpYWJsZXMpMTM3IDI1MQoteSBGcChUaGlzKTE4IGIoc2VjdGlvbilmKGRlc2NyaWIpcShlcylpKHRoZSllKGV4dGVybmFsbHktdmlzaWJsZSlrKHYpbQotKGFyaWFibGVzKWQoZXhwKXEob3J0ZWQpZihiKW8oeSlnKHRoZSlnIEZrKGdudSlnIEZwKEhpc3RvcnkpZyhMaS0pNzUKLTMwNiB5KGJyYXJ5KWwoLikxNzczIDQzOCB5KFYpbChhcmlhYmxlKS0xODYxIGIgRmgoaW50KTIwCi1iIEZnKGhpc3RvcnkpcCAzNTEgNDM4IDE4IDMgdiAyMCB3KGJhc2UpMTk1IDQ5MyB5IEZwKFRoZSkxNQotYihsb2dpY2FsKWkob1wwMTNzZXQpZChvZiloKHRoZSlnKFwwMTRyc3QpZyhlbilvKHRyeSlnKGluKWgodGhlKWYKLShoaXN0b3J5KWcobGlzdC4pMTc3MyA2MjUgeShWKWwoYXJpYWJsZSktMTg2MSBiIEZoKGludCkyMAotYiBGZyhoaXN0b3J5KXAgMzUxIDYyNSBWIDIwIHcobGVuZ3RoKTE5NSA2ODAgeSBGcChUaGUpMTUKLWIobilvKHVtKW8oYilxKGVyKWgob2YpZihlbilvKHRyaWVzKWcoY3VycmVuKW8odGx5KWgoc3RvcmVkKWYoaW4paCh0aGUpCi1mKGhpc3RvcnkpZyhsaXN0LikxNzczIDgxMiB5KFYpbChhcmlhYmxlKS0xODYxIGIgRmgoaW50KTIwCi1iIEZnKGhpc3RvcnkpcCAzNTEgODEyIFYgMjAgdyhtYXgpcCA0NzggODEyIFYgMjAgdyhlbiluKHRyaWVzKTE5NQotODY3IHkgRnAoVGhlKWoobWF4aW0pbyh1bSlnKG4pbyh1bSlvKGIpcShlcilnKG9mKWcoaGlzdG9yeSlnKGVuKW8KLSh0cmllcy4pNDMgYihUaGlzKTI0IGIobSlvKHVzdCllKGIpcShlKWkoYylvKGhhbmdlZClmKHVzaW5nKWgKLUZvKHN0aWZsZV8pMTk1IDkyMiB5KGhpc3RvcnlcKFwpKXAgRnAoLikxNzczIDEwNTQgeShWKWwoYXJpYWJsZSktMTg2MQotYiBGaChjaGFyKTIwIGIgRmcoaGlzdG9yeSlwIDM3NyAxMDU0IFYgMjAgdyhleHBhbnNpb24pcAotNjQ0IDEwNTQgViAyMSB3KGMpbihoYXIpMTk1IDExMDkgeSBGcChUaGUpZShjKW8oaGFyYWN0ZXIpZih0aGF0KWcoaW4pbwotKHRybylxKGR1Y2VzKWgoYSlmKGhpc3RvcnkpaChldilvKGVuKW8odC4pMjcgYihUaGUpMTgKLWIoZGVmYXVsdClnKGlzKWcoYClwIEZvKCEpcCBGcCgnLikyNiBiKFNldHRpbmcpMTggYih0aGlzKWcodG8pZigwKTE5NQotMTE2NCB5KGluaGliaXRzKWcoaGlzdG9yeSlmKGV4cGFuc2lvbi4pMTc3MyAxMjk2IHkoVilsKGFyaWFibGUpLTE4NjEKLWIgRmgoY2hhcikyMCBiIEZnKGhpc3RvcnkpcCAzNzcgMTI5NiBWIDIwIHcoc3Vic3QpcCA1MjkKLTEyOTYgViAyMCB3KGMpbihoYXIpMTk1IDEzNTEgeSBGcChUaGUpaChjKW8oaGFyYWN0ZXIpZSh0aGF0KWgoaW4pbyh2KW8KLShvaylvKGVzKWcodylvKG9yZClnKHN1YnN0aXR1dGlvbiloKGlmKWcoZm91bmQpZihhdClnKHRoZSloKHN0YXJ0KWUob2YpCi1oKGEpZyhsaW5lLikzNyBiKFRoZSkxOTUgMTQwNiB5KGRlZmF1bHQpMTYgYihpcylmKGApcAotRm8oXilwIEZwKCcuKTE3NzMgMTUzOCB5KFYpbChhcmlhYmxlKS0xODYxIGIgRmgoY2hhcikyMAotYiBGZyhoaXN0b3J5KXAgMzc3IDE1MzggViAyMCB3KGNvbW1lbiluKHQpcCA2MjcgMTUzOAotViAxOSB3KGMpbihoYXIpMTk1IDE1OTMgeSBGcChEdXJpbmcpZih0b2spbyhlbml6YXRpb24sKWgoaWYpZih0aGlzKWgoYykKLW8oaGFyYWN0ZXIpZShpcyloKHNlZW4paChhcyllKHRoZSloKFwwMTRyc3QpZyhjKW8oaGFyYWN0ZXIpZihvZilnKGEpaAotKHcpbyhvcmQsKWcodGhlbikxOTUgMTY0OCB5KGl0KWooYW5kKWcoYWxsKWcoc3Vic2VxdWVuKW8odCloKGMpbwotKGhhcmFjdGVycylkKHVwKWoodG8pZShhKWcobmV3bGluZSlpKGFyZSlmKGlnbm9yZWQsKWgoc3VwcHJlc3NpbmcpZwotKGhpc3RvcnkpMTk1IDE3MDIgeShleHBhbnNpb24pMTYgYihmb3IpZih0aGUpZyhyZW1haW5kZXIpaChvZilmKHRoZSlnCi0obGluZS4pMjEgYihUaGlzKTE2IGIoaXMpZyhkaXNhYmxlZCloKGIpbyh5KWUoZGVmYXVsdC4pMTc3MwotMTgzNSB5KFYpbChhcmlhYmxlKS0xODYxIGIgRmgoY2hhcikyMCBiKCopZiBGZyhoaXN0b3J5KXAKLTQyMiAxODM1IFYgMjEgdyh3KW4ob3JkKXAgNTY3IDE4MzUgViAyMCB3KGRlbGltaXRlcnMpMTk1Ci0xODg5IHkgRnAoVGhlKTE0IGIoYylvKGhhcmFjdGVycylmKHRoYXQpZyhzZXBhcmF0ZSlnKHRvaylvKGVucyloKGZvcilmCi1GbyhoaXN0b3J5X3Rva2VuaXplXChcKSlwIEZwKC4payhUaGUpZChkZWZhdWx0KWcodiltKGFsdWUpaChpcylmCi1GbygiKTE5NSAxOTQ0IHkoXFx0XFxuXChcKTw+OyZ8IilwIEZwKC4pMTc3MyAyMDc3IHkoVilsKGFyaWFibGUpLTE4NjEKLWIgRmgoY2hhcikyMCBiKCopZiBGZyhoaXN0b3J5KXAgNDIyIDIwNzcgViAyMSB3KG5vKXAKLTUwNCAyMDc3IFYgMjAgdyhleHBhbmQpcCA3MDQgMjA3NyBWIDIwIHcoYyluKGhhcnMpMTk1Ci0yMTMxIHkgRnAoVGhlKWMobGlzdCloKG9mKWUoYylvKGhhcmFjdGVycylnKHdoaWMpbyhoKWkoaW5oaWJpdCloCi0oaGlzdG9yeSllKGV4cGFuc2lvbiloKGlmKWYoZm91bmQpaChpbW1lZGlhdGVseSlnKGZvbGxvKW8od2luZykxOTUKLTIxODYgeSBGaihoaXN0b3J5KXAgMzM2IDIxODYgMTQgMiB2IDE2IHcoZXhwYW5zaW9uKXAKLTU0NyAyMTg2IFYgMTggdyhjKW8oaGFyKXAgRnAoLilqKFRoZSlkKGRlZmF1bHQpZihpcyloKHNwYWNlLClmKHRhYiwpZwotKG5ld2xpbmUsKWgoY2FycmlhZ2UpZihyZXR1cm4sKWcoYW5kKWgoYClwIEZvKD0pcCBGcCgnLikxNzczCi0yMzE4IHkoVilsKGFyaWFibGUpLTE4NjEgYiBGaChjaGFyKTIwIGIoKilmIEZnKGhpc3RvcnkpcAotNDIyIDIzMTggMTggMyB2IDIxIHcoc2VhcmMpbihoKXAgNTk5IDIzMTggViAyMCB3KGRlbGltaXRlcilwCi04NDMgMjMxOCBWIDIzIHcoYyluKGhhcnMpMTk1IDIzNzMgeSBGcChUaGUpMTMgYihsaXN0KWgob2YpZihhZGRpdGlvbmFsKQotaChjKW8oaGFyYWN0ZXJzKWUod2hpYylvKGgpaShjYW4pZyhkZWxpbWl0KWcoYSlmKGhpc3RvcnkpZyhzZWFyYylvKGgpZwotKHN0cmluZywpZyhpbiloKGFkZGl0aW9uKTE5NSAyNDI4IHkodG8paChzcGFjZSwpZyhUKWwoQUIsKWcoYClwCi1Gbyg6KXAgRnAoJylmKGFuZCloKGApcCBGbyg/KXAgRnAoJylnKGluKWgodGhlKWYoY2FzZSlnKG9mKWcoYSlnCi0oc3Vic3RyaW5nKWcoc2VhcmMpbyhoLikyMCBiKFRoZSljKGRlZmF1bHQpZihpcyloKGVtcHQpbyh5KWwoLikxNzczCi0yNTYwIHkoVilsKGFyaWFibGUpLTE4NjEgYiBGaChpbnQpMjAgYiBGZyhoaXN0b3J5KXAgMzUxCi0yNTYwIFYgMjAgdyhxdW90ZXMpcCA1MzMgMjU2MCBWIDIxIHcoaW5oaWJpdClwIDcxNyAyNTYwCi1WIDIzIHcoZXhwYW5zaW9uKTE5NSAyNjE1IHkgRnAoSWYpMTUgYihub24temVybywpZihzaW5nbGUtcXVvdGVkKWoodylvCi0ob3JkcyljKGFyZSlpKG5vdClmKHNjYW5uZWQpaChmb3IpZih0aGUpaChoaXN0b3J5KWcoZXhwYW5zaW9uKWcoYylvCi0oaGFyYWN0ZXIuKTE5NSAyNjcwIHkoVGhlKWcoZGVmYXVsdCloKHYpbShhbHVlKWgoaXMpZSgwLilwCi1lb3AKLSUlUGFnZTogMTEgMTMKLTExIDEyIGJvcCA3NSAtNTggYSBGcChDaGFwdGVyKTE1IGIoMjopayhQcm9ncmFtbWluZyljKHdpdGgpZyhHTlUpZwotKEhpc3RvcnkpODY3IGIoMTEpMTc3MyAxNDkgeShWKWwoYXJpYWJsZSktMTg2MSBiIEZoKHJsX2xpbmVidWZfZnVuY190KQotMjIgYigqKWQgRmcoaGlzdG9yeSlwIDc2MiAxNDkgMTggMyB2IDIxIHcoaW5oaWJpdClwIDk0NgotMTQ5IFYgMjMgdyhleHBhbnNpb24pcCAxMjE2IDE0OSBWIDIwIHcoZnVuY3Rpb24pMTk1IDIwNAoteSBGcChUaGlzKWUoc2hvdWxkKWgoYilxKGUpZihzZXQpZyh0bylmKHRoZSlnKGFkZHJlc3MpaChvZilmKGEpaAotKGZ1bmN0aW9uKWcodGhhdClmKHRhaylvKGVzKWcodClvKHcpbyhvKWYoYXJndW1lbilvKHRzOikyMgotYihhKTE3IGIgRm8oY2hhcilkKCopMTk1IDI1OSB5IEZwKFwoKXAgRmooc3RyaW5nKXQgRnAoXCkpZShhbmQpaShhbilmCi1GbyhpbnQpZyBGcChpbmRleClpKGluKW8odG8pZSh0aGF0KWYoc3RyaW5nKWkoXCgpcCBGaihpKXIKLUZwKFwpLikxOSBiKEl0KTE0IGIoc2hvdWxkKWcocmV0dXJuKWYoYSlnKG5vbi16ZXJvKWgodiltKGFsdWUpZyhpZilnCi0odGhlKTE5NSAzMTQgeShoaXN0b3J5KWgoZXhwYW5zaW9uKWcoc3RhcnRpbmcpZihhdClnCi1GaihzdHJpbmdbaV0paSBGcChzaG91bGQpZyhub3QpZShiKXEoZSloKHApcShlcmZvcm1lZDspZyh6ZXJvKWYoaWYpaAotKHRoZSlnKGV4cGFuc2lvbikxOTUgMzY5IHkoc2hvdWxkKWkoYilxKGUpZyhkb25lLikyMgotYihJdCkxNiBiKGlzKWgoaW4pbyh0ZW5kZWQpZyhmb3IpZSh1c2UpaShiKW8oeSlmKGFwcGxpY2F0aW9ucyloKGxpaylvCi0oZSlnKEJhc2gpZih0aGF0KWcodXNlKWcodGhlKWcoaGlzdG9yeSkxOTUgNDIzIHkoZXhwYW5zaW9uKWcoYylvCi0oaGFyYWN0ZXIpZihmb3IpZihhZGRpdGlvbmFsKWoocHVycClxKG9zZXMuKWooQnkpYyhkZWZhdWx0LClmKHRoaXMpaCh2KQotbShhcmlhYmxlKWcoaXMpZyhzZXQpZih0bylmIEZvKE5VTEwpcCBGcCguKTc1IDU0MyB5IEZuKDIuNSkzMwotYihIaXN0b3J5KTIyIGIoUHJvZ3JhbW1pbmcpaChFeGFtcGxlKTEzNyA2MzcgeSBGcChUaGUpMTYKLWIoZm9sbG8pbyh3aW5nKWcocHJvZ3JhbSllKGRlbW9uc3RyYXRlcylnKHNpbXBsZSlqKHVzZSllKG9mKWcodGhlKWcKLUZrKGdudSlnIEZwKEhpc3RvcnkpZyhMaWJyYXJ5KWwoLikxOTUgNjk4IHkgRm8oI2luY2x1ZGUpMjMKLWIoPHN0ZGlvLmg+KTE5NSA3NTAgeSgjaW5jbHVkZSlnKDxyZWFkbGluZS9oaXN0b3J5Lmg+KTE5NQotODU0IHkobWFpbilnKFwoYXJnYywpZyhhcmd2XCkpMzE0IDkwNiB5KGludCloKGFyZ2M7KTMxNAotOTU4IHkoY2hhcilnKCoqYXJndjspMTk1IDEwMTAgeSh7KTI0MyAxMDYxIHkoY2hhcilmKGxpbmVbMTAyNF0sKWYoKnQ7KQotMjQzIDExMTMgeShpbnQpaChsZW4sKWcoZG9uZSloKD0pZygwOykyNDMgMTIxNyB5KGxpbmVbMF0pZig9KWcoMDspMjQzCi0xMzIxIHkodXNpbmdfaGlzdG9yeSlmKFwoXCk7KTI0MyAxMzczIHkod2hpbGUpaChcKCFkb25lXCkpMjkwCi0xNDI1IHkoeykzMzggMTQ3NyB5KHByaW50ZilnKFwoImhpc3RvcnkkKWcoIlwpOykzMzggMTUyOAoteShmZmx1c2gpZyhcKHN0ZG91dFwpOykzMzggMTU4MCB5KHQpaCg9KWcoZmdldHMpZihcKGxpbmUsKWcoc2l6ZW9mKWcKLShcKGxpbmVcKSlnKC0paCgxLClmKHN0ZGluXCk7KTMzOCAxNjMyIHkoaWYpaChcKHQpZigmJiloKCp0XCkpMzg2Ci0xNjg0IHkoeyk0MzQgMTczNiB5KGxlbilmKD0paChzdHJsZW4pZihcKHRcKTspNDM0IDE3ODgKLXkoaWYpZyhcKHRbbGVuKWcoLSloKDFdKWcoPT0pZignXFxuJ1wpKTQ4MSAxODQwIHkodFtsZW4paCgtKWYoMV0paCg9KWcKLSgnXFwwJzspMzg2IDE4OTIgeSh9KTMzOCAxOTk1IHkoaWYpZyhcKCF0XCkpMzg2IDIwNDcKLXkoc3RyY3B5KWYoXChsaW5lLClnKCJxdWl0IlwpOykzMzggMjE1MSB5KGlmKWgoXChsaW5lWzBdXCkpMzg2Ci0yMjAzIHkoeyk0MzQgMjI1NSB5KGNoYXIpZigqZXhwYW5zaW9uOyk0MzQgMjMwNyB5KGludClnKHJlc3VsdDspNDM0Ci0yNDExIHkocmVzdWx0KWcoPSlnKGhpc3RvcnlfZXhwYW5kKWYoXChsaW5lLCloKCZleHBhbnNpb25cKTspNDM0Ci0yNDYyIHkoaWYpZyhcKHJlc3VsdFwpKTQ4MSAyNTE0IHkoZnByaW50ZilnKFwoc3RkZXJyLClnKCJcMDQ1c1xcbiIsKWcKLShleHBhbnNpb25cKTspNDM0IDI2MTggeShpZilnKFwocmVzdWx0KWcoPCloKDApZyh8fClmKHJlc3VsdClnKD09KWgKLSgyXCkpNDgxIDI2NzAgeSh7KXAgZW9wCi0lJVBhZ2U6IDEyIDE0Ci0xMiAxMyBib3AgNzUgLTU4IGEgRnAoMTIpMTMyNCBiKEdOVSkxNSBiKEhpc3RvcnkpZyhMaWJyYXJ5KTUyOQotMTQ5IHkgRm8oZnJlZSkyMyBiKFwoZXhwYW5zaW9uXCk7KTUyOSAyMDEgeShjb250aW51ZTspNDgxCi0yNTMgeSh9KTQzNCAzNTcgeShhZGRfaGlzdG9yeSlmKFwoZXhwYW5zaW9uXCk7KTQzNCA0MDkKLXkoc3RybmNweSloKFwobGluZSwpZyhleHBhbnNpb24sKWYoc2l6ZW9mKWgoXChsaW5lXCkpZygtKWgoMVwpOyk0MzQKLTQ2MSB5KGZyZWUpZihcKGV4cGFuc2lvblwpOykzODYgNTEzIHkofSkzMzggNjE2IHkoaWYpaChcKHN0cmNtcClmCi0oXChsaW5lLClnKCJxdWl0IlwpKWcoPT0pZygwXCkpMzg2IDY2OCB5KGRvbmUpZyg9KWgoMTspMzM4Ci03MjAgeShlbHNlKWYoaWYpaChcKHN0cmNtcClmKFwobGluZSwpZygic2F2ZSJcKSlnKD09KWgoMFwpKTM4NgotNzcyIHkod3JpdGVfaGlzdG9yeSllKFwoImhpc3RvcnlfZmlsZSJcKTspMzM4IDgyNCB5KGVsc2UpaChpZiloCi0oXChzdHJjbXApZihcKGxpbmUsKWcoInJlYWQiXCkpZyg9PSloKDBcKSkzODYgODc2IHkocmVhZF9oaXN0b3J5KWUKLShcKCJoaXN0b3J5X2ZpbGUiXCk7KTMzOCA5MjggeShlbHNlKWgoaWYpaChcKHN0cmNtcClmKFwobGluZSwpZwotKCJsaXN0IlwpKWcoPT0paCgwXCkpMzg2IDk4MCB5KHspNDM0IDEwMzIgeShyZWdpc3RlcillKEhJU1RfRU5UUlkpaAotKCoqdGhlX2xpc3Q7KTQzNCAxMDgzIHkocmVnaXN0ZXIpZihpbnQpaShpOyk0MzQgMTE4NwoteSh0aGVfbGlzdCllKD0paShoaXN0b3J5X2xpc3QpZShcKFwpOyk0MzQgMTIzOSB5KGlmKWgoXCh0aGVfbGlzdFwpKTQ4MQotMTI5MSB5KGZvciloKFwoaSlmKD0paCgwOylnKHRoZV9saXN0W2ldOyllKGkrK1wpKTUyOQotMTM0MyB5KHByaW50ZiloKFwoIlwwNDVkOilnKFwwNDVzXFxuIiwpZyhpKWgoKylnKGhpc3RvcnlfYmFzZSwpZQotKHRoZV9saXN0W2ldLT5saW5lXCk7KTM4NiAxMzk1IHkofSkzMzggMTQ0NyB5KGVsc2UpaChpZiloKFwoc3RybmNtcClmCi0oXChsaW5lLClnKCJkZWxldGUiLClnKDZcKSlnKD09KWgoMFwpKTM4NiAxNDk5IHkoeyk0MzQKLTE1NTAgeShpbnQpZih3aGljaDspNDM0IDE2MDIgeShpZilnKFwoXChzc2NhbmYpZyhcKGxpbmUpZygrKWgoNiwpZgotKCJcMDQ1ZCIsKWgoJndoaWNoXClcKSllKD09KWkoMVwpKTQ4MSAxNjU0IHkoeyk1MjkgMTcwNgoteShISVNUX0VOVFJZKWYoKmVudHJ5KWcoPSlnKHJlbW92ZV9oaXN0b3J5KWYoXCh3aGljaFwpOyk1MjkKLTE3NTggeShpZilpKFwoIWVudHJ5XCkpNTc3IDE4MTAgeShmcHJpbnRmKWYoXChzdGRlcnIsKWYoIk5vKWkoc3VjaClmCi0oZW50cnkpZyhcMDQ1ZFxcbiIsKWcod2hpY2hcKTspNTI5IDE4NjIgeShlbHNlKTU3NyAxOTE0Ci15KHspNjI1IDE5NjYgeShmcmVlKWcoXChlbnRyeS0+bGluZVwpOyk2MjUgMjAxNyB5KGZyZWUpZyhcKGVudHJ5XCk7KTU3NwotMjA2OSB5KH0pNDgxIDIxMjEgeSh9KTQzNCAyMTczIHkoZWxzZSk0ODEgMjIyNSB5KHspNTI5Ci0yMjc3IHkoZnByaW50ZilnKFwoc3RkZXJyLClnKCJub24tbnVtZXJpYylmKGFyZyloKGdpdmVuKWgodG8pZgotKGBkZWxldGUnXFxuIlwpOyk0ODEgMjMyOSB5KH0pMzg2IDIzODEgeSh9KTI5MCAyNDMzIHkofSkxOTUKLTI0ODQgeSh9KXAgZW9wCi0lJVBhZ2U6IDEzIDE1Ci0xMyAxNCBib3AgNzUgLTU4IGEgRnAoQXBwKXEoZW5kaXgpMTcgYihBOillKENvbmNlcHQpZyhJbmRleCkxMTk2Ci1iKDEzKTc1IDE0OSB5IEZsKEFwcClyKGVuZGl4KTI1IGIoQSk0MSBiKENvbmNlcHQpMjcgYihJbmRleCk3NQotMzIxIHkgRm4oQSk3NSAzODMgeSBGZShhbmMpbyhob3JlZCkxNCBiKHNlYXJjKW8oaClzIEZkKC4pOAotYiguKWUoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnCi0oLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLikxNgotYiBGZSg4KTc1IDUwNyB5IEZuKEUpNzUgNTY4IHkgRmUoZXYpbyhlbilvKHQpZChkZXNpZ25hdG9ycylnCi1GZCguKTYgYiguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKQotaCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pMjMgYgotRmUoMSkxMDEyIDMyMSB5IEZuKEgpMTAxMiA0MzEgeSBGZShoaXN0b3J5KTE1IGIoZXYpbyhlbilvKHRzKWQKLUZkKC4pNiBiKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pCi1nKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLikyNAotYiBGZSgxKTEwMTIgNTAwIHkoaGlzdG9yeSkxNSBiKGV4cGFuc2lvbik4IGIgRmQoLilnKC4pZSguKWcoLilnKC4paCguKWYKLSguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pCi1mKC4pZyguKWcoLilnKC4pZyguKTIxIGIgRmUoMSkxMDEyIDU2OCB5KEhpc3RvcnkpMTQgYihTZWFyYylvKGhpbmcpNgotYiBGZCguKWooLilkKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLikKLWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKTE5IGIKLUZlKDgpcCBlb3AKLSUlUGFnZTogMTQgMTYKLTE0IDE1IGJvcCA3NSAtNTggYSBGcCgxNCkxMzI0IGIoR05VKTE1IGIoSGlzdG9yeSlnKExpYnJhcnkpcAotZW9wCi0lJVBhZ2U6IDE1IDE3Ci0xNSAxNiBib3AgNzUgLTU4IGEgRnAoQXBwKXEoZW5kaXgpMTcgYihCOillKEYpbCh1bmN0aW9uKWgoYW5kKWcoVilsCi0oYXJpYWJsZSlnKEluZGV4KTkxOSBiKDE1KTc1IDE0OSB5IEZsKEFwcClyKGVuZGl4KTI1Ci1iKEIpNDEgYihGKS03IGIodW5jdGlvbikyNiBiKGFuZCloKFYpLTcgYihhcmlhYmxlKTI2Ci1iKEluZGV4KTc1IDMyMSB5IEZuKEEpNzUgMzgyIHkgRmMoYWRkX2hpc3RvcilvKHkpOCBiCi1GZCguKWUoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnCi0oLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLikyMwotYiBGZSg2KTc1IDQyOCB5IEZjKGFwcGVuZF9oaXMpbyh0bylvKHJ5KTggYiBGZCguKXMoLilmKC4pZiguKWcoLilnKC4pZwotKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLikKLWcoLilnKC4pZyguKWgoLilmKC4pZyguKTIxIGIgRmUoOSk3NSA1NTcgeSBGbihDKTc1IDYxOAoteSBGYyhjbGVhcl9oaXN0KW8ob3Ipbyh5KTYgYiBGZCguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcKLSguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pCi1mKC4pZyguKWcoLikyMiBiIEZlKDYpNzUgNjY0IHkgRmMoY3VycmVudF9oaSlvKHN0KW8ob3J5KTcKLWIgRmQoLilzKC4pZiguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pCi1mKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLikyMCBiCi1GZSg3KTc1IDc5MyB5IEZuKEcpNzUgODU0IHkgRmMoZ2V0X2hpc3RvcilvKHlfKW8oZXZlKW8obnQpNQotYiBGZCguKXQoLiloKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLikKLWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLikxOSBiIEZlKDkpNzUKLTk4NCB5IEZuKEgpNzUgMTA0NCB5IEZjKGhpc3RvcnlfYXIpbyhnXylvKGV4dClvKHJhKW8oY3QpNQotYiBGZCguKXMoLiloKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLikKLWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pMTggYiBGZSg5KTc1IDEwOTAgeSBGYyhoaXN0b3J5X2JhKW8oc2UpCi02IGIgRmQoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnCi0oLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKTIyCi1iIEZlKDEwKTc1IDExMzYgeSBGYyhoaXN0b3J5X2NvKW8obW0pbyhlbnQpbyhfYylvKGhhcilzCi1GZCguKXMoLik2IGIoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKQotZiguKWcoLilnKC4pZyguKWcoLiloKC4pMTYgYiBGZSgxMCk3NSAxMTgyIHkgRmMoaGlzdG9yeV9leClvKHBhKW8obmQpOAotYiBGZCguKXMoLilmKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLikKLWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLikyMQotYiBGZSg5KTc1IDEyMjcgeSBGYyhoaXN0b3J5X2V4KW8ocGEpbyhuc2kpbyhvbilvKF9jaClvKGFyKTgKLWIgRmQoLillKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pCi1oKC4pZiguKWcoLikyNCBiIEZlKDEwKTc1IDEyNzMgeSBGYyhoaXN0b3J5X2dlKW8odCk4Ci1iIEZkKC4pZSguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKQotZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKTIzCi1iIEZlKDcpNzUgMTMxOSB5IEZjKGhpc3RvcnlfZ2Upbyh0XylvKGhpcylvKHRvKW8ocnlfKW8oc3RhKW8odGUpNgotYiBGZCguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLikKLWYoLikyMiBiIEZlKDYpNzUgMTM2NCB5IEZjKGhpc3RvcnlfaW4pbyhoaSlvKGJpdClvKF9lKW8oeHBhKW8obnNpKW8ob24pCi1vKF9mdSlvKG5jKW8odGlvKW8obik5IGIgRmQoLilkKC4pZyguKWcoLilnKC4pZyguKWgoLikyNAotYiBGZSgxMSk3NSAxNDEwIHkgRmMoaGlzdG9yeV9pcylvKF9zKW8odGlmKW8obGUpbyhkKTYKLWIgRmQoLilzKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pCi1nKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLikxOCBiIEZlKDcpNzUgMTQ1NgoteSBGYyhoaXN0b3J5X2xlKW8obmcpbyh0aCk4IGIgRmQoLilzKC4pZSguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLikKLWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZwotKC4pZyguKTIxIGIgRmUoMTApNzUgMTUwMSB5IEZjKGhpc3RvcnlfbGkpbyhzdCk2IGIgRmQoLiloKC4pZiguKWcoLilnCi0oLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKQotZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKTIzIGIgRmUoNyk3NQotMTU0NyB5IEZjKGhpc3RvcnlfbWEpbyh4XylvKGVudClvKHJpKW8oZXMpdCBGZCguKXMoLik2Ci1iKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcKLSguKWcoLilnKC4paCguKWYoLikxNyBiIEZlKDEwKTc1IDE1OTMgeSBGYyhoaXN0b3J5X25vKW8oX2Upbyh4cGEpbyhuZClvCi0oX2NoKW8oYXJzKTcgYiBGZCguKWYoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcKLSguKWcoLilnKC4pZyguKWcoLiloKC4pMjMgYiBGZSgxMCk3NSAxNjM4IHkgRmMoaGlzdG9yeV9xdSlvKG90KW8oZXNfKW8KLShpbilvKGhpYilvKGl0XylvKGV4KW8ocGFuKW8oc2kpbyhvbil0IEZkKC4pcyguKTYgYiguKWcoLilnKC4paCguKWYoLilnCi0oLilnKC4pZyguKTE3IGIgRmUoMTApNzUgMTY4NCB5IEZjKGhpc3Rvcnlfc2UpbyhhcilvKGNoKTgKLWIgRmQoLilzKC4pZiguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pCi1nKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pMjEKLWIgRmUoOCk3NSAxNzMwIHkgRmMoaGlzdG9yeV9zZSlvKGFyKW8oY2hfKW8oZGUpbyhsaW0pbyhpdGUpbyhyXylvKGNoYSlvCi0ocnMpNSBiIEZkKC4pcyguKWgoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLikxOAotYiBGZSgxMCk3NSAxNzc2IHkgRmMoaGlzdG9yeV9zZSlvKGFyKW8oY2hfKW8ocG8pbyhzKTYKLWIgRmQoLilzKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pCi1nKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLikxOCBiIEZlKDgpNzUgMTgyMQoteSBGYyhoaXN0b3J5X3NlKW8oYXIpbyhjaF8pbyhwcilvKGVmaSlvKHgpcyBGZCguKXQoLik2Ci1iKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcKLSguKWgoLilmKC4pZyguKTE2IGIgRmUoOCk3NSAxODY3IHkgRmMoaGlzdG9yeV9zZSlvKHRfKW8oaGlzKW8odG8pbyhyeV8pCi1vKHN0YSlvKHRlKTYgYiBGZCguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcKLSguKWcoLilnKC4paCguKWYoLikyMiBiIEZlKDYpNzUgMTkxMyB5IEZjKGhpc3Rvcnlfc2Upbyh0XylvKHBvcyk3Ci1iIEZkKC4pcyguKWYoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKQotZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pMjAgYgotRmUoNykxMDEyIDMyMSB5IEZjKGhpc3Rvcnlfc3ViKW8oc3QpbyhfY2gpbyhhcil0IEZkKC4pdCguKTYKLWIoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZgotKC4pZyguKWcoLilnKC4pZyguKWcoLikxOSBiIEZlKDEwKTEwMTIgMzY4IHkgRmMoaGlzdG9yeV90b2spbyhlbilvKGl6ZSkKLTYgYiBGZCguKXQoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcKLSguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pMjAgYiBGZSg5KTEwMTIKLTQxNCB5IEZjKGhpc3RvcnlfdG90KW8oYWwpbyhfYnkpbyh0ZSlvKHMpNSBiIEZkKC4pcyguKWgoLilnKC4paCguKWYoLilnCi0oLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKQotZyguKTE4IGIgRmUoNykxMDEyIDQ2MCB5IEZjKGhpc3RvcnlfdHJ1KW8obmMpbyhhdGUpbyhfZilvKGlsZSlzCi1GZCguKXMoLik2IGIoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKQotaCguKWYoLilnKC4pZyguKWcoLilnKC4pMTcgYiBGZSg5KTEwMTIgNTA3IHkgRmMoaGlzdG9yeV93b3IpbyhkXylvKGRlbCkKLW8oaW0pbyhpdGUpbyhycyk3IGIgRmQoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcKLSguKWcoLilnKC4paCguKWYoLilnKC4pZyguKTI0IGIgRmUoMTApMTAxMiA2NDAgeSBGbihOKTEwMTIKLTcwMiB5IEZjKG5leHRfaGlzdG9yKW8oeSk3IGIgRmQoLilmKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnCi0oLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKQotZyguKWcoLiloKC4pZiguKTIzIGIgRmUoNykxMDEyIDgzNiB5IEZuKFApMTAxMiA4OTggeQotRmMocHJldmlvdXNfaGkpbyhzdClvKG9yeSk2IGIgRmQoLil0KC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLikKLWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZgotKC4pMjAgYiBGZSg3KTEwMTIgMTAzMSB5IEZuKFIpMTAxMiAxMDk0IHkgRmMocmVhZF9oaXN0b3Ipbyh5KTcKLWIgRmQoLilmKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pCi1oKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLikyMwotYiBGZSg4KTEwMTIgMTE0MCB5IEZjKHJlYWRfaGlzdG9yKW8oeV8pbyhyYW4pbyhnZSk1IGIKLUZkKC4pcyguKWgoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcKLSguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pMTkgYiBGZSg4KTEwMTIgMTE4NgoteSBGYyhyZW1vdmVfaGlzdClvKG9yKW8oeSk5IGIgRmQoLilzKC4pZCguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLikKLWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZwotKC4pZyguKWcoLikyMiBiIEZlKDYpMTAxMiAxMjMzIHkgRmMocmVwbGFjZV9oaXMpbyh0bylvKHJ5XylvKGVuKW8odHJ5KXMKLUZkKC4pcyguKTYgYiguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pCi1oKC4pZiguKWcoLilnKC4pZyguKWcoLikxNyBiIEZlKDYpMTAxMiAxMzY2IHkgRm4oUykxMDEyCi0xNDI5IHkgRmMoc3RpZmxlX2hpc3QpbyhvcilvKHkpOSBiIEZkKC4pcyguKWQoLilnKC4pZyguKWcoLiloKC4pZiguKWcKLSguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pCi1mKC4pZyguKWcoLilnKC4pMjIgYiBGZSg3KTEwMTIgMTU2MiB5IEZuKFUpMTAxMiAxNjI0Ci15IEZjKHVuc3RpZmxlX2hpKW8oc3QpbyhvcnkpNiBiIEZkKC4pdCguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmCi0oLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKQotZiguKTIwIGIgRmUoNykxMDEyIDE2NzEgeSBGYyh1c2luZ19oaXN0bylvKHJ5KTYgYiBGZCguKWcoLilnKC4pZyguKWcoLikKLWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZwotKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLikyMiBiIEZlKDYpMTAxMiAxODA0Ci15IEZuKFcpMTAxMiAxODY2IHkgRmMod2hlcmVfaGlzdG8pbyhyeSk2IGIgRmQoLilnKC4pZyguKWcoLilnKC4pZyguKWgKLSguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pCi1oKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pMjIgYiBGZSg3KTEwMTIgMTkxMyB5IEZjKHdyaXRlX2hpc3RvKW8ocnkpNgotYiBGZCguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLikKLWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pMjIKLWIgRmUoOClwIGVvcAotJSVQYWdlOiAxNiAxOAotMTYgMTcgYm9wIDc1IC01OCBhIEZwKDE2KTEzMjQgYihHTlUpMTUgYihIaXN0b3J5KWcoTGlicmFyeSlwCi1lb3AKLSUlUGFnZTogLTEgMTkKLS0xIDE4IGJvcCAxODYyIC01OCBhIEZwKGkpNzUgMTQ5IHkgRmwoVCktNyBiKGFibGUpMjcKLWIob2YpZihDb24pbih0ZW4pbih0cyk3NSAzMjAgeSBGbigxKTY3IGIoVXNpbmcpMjIgYihIaXN0b3J5KWgoSW4pbgotKHRlcmFjdGl2KW4oZWx5KTkgYiBGYiguKWsoLilkKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4paAotKC4pZiguKWcoLilnKC4paCguKTMxIGIgRm4oMSkyMjQgMzg5IHkgRnAoMS4xKTQ1IGIoSGlzdG9yeSkxNQotYihFeHBhbnNpb24pNSBiIEZhKC4paiguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZyguKWYoLiloKC4pZgotKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLikKLWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pMTkgYiBGcCgxKTM3NCA0NDQgeSgxLjEuMSk0NAotYihFdilvKGVuKW8odCkxNCBiKERlc2lnbmF0b3JzKWUgRmEoLik3IGIoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloCi0oLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZyguKWYoLiloKC4pZiguKWgoLilmKC4paCguKQotZiguKWgoLilmKC4paCguKTI2IGIgRnAoMSkzNzQgNDk5IHkoMS4xLjIpNDQgYihXKWwob3JkKTE1Ci1iKERlc2lnbmF0b3JzKTUgYiBGYSguKWgoLilpKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKQotZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloCi0oLikxOSBiIEZwKDIpMzc0IDU1MyB5KDEuMS4zKTQ0IGIoTW8pcShkaVwwMTRlcnMpdCBGYSguKTgKLWIoLilnKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilnKC4pZgotKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLikKLWYoLiloKC4pZiguKTE5IGIgRnAoMik3NSA2NzUgeSBGbigyKTY3IGIoUHJvZ3JhbW1pbmcpMjMKLWIod2l0aClnKEdOVSlmKEhpc3RvcnkpMTYgYiBGYiguKTEwIGIoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZgotKC4pZyguKTM4IGIgRm4oNSkyMjQgNzQzIHkgRnAoMi4xKTQ1IGIoSW4pbyh0cm8pcShkdWN0aW9uKTE2Ci1iKHRvKWYoSGlzdG9yeSkxMCBiIEZhKC4pZCguKWcoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmCi0oLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKQotZiguKWgoLilmKC4paCguKTI0IGIgRnAoNSkyMjQgNzk4IHkoMi4yKTQ1IGIoSGlzdG9yeSkxNQotYihTdG9yYWdlKWMgRmEoLilkKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZgotKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLikKLWcoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKTI2IGIgRnAoNSkyMjQgODUzCi15KDIuMyk0NSBiKEhpc3RvcnkpMTUgYihGKWwodW5jdGlvbnMpZCBGYSguKWMoLilmKC4paCguKWYoLiloKC4pZiguKWgKLSguKWcoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pCi1mKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKTI2Ci1iIEZwKDYpMzc0IDkwNyB5KDIuMy4xKTQ0IGIoSW5pdGlhbGl6aW5nKTE4IGIoSGlzdG9yeSlkKGFuZCloKFN0YXRlKWUKLShNYW5hZ2VtZW4pbyh0KWcgRmEoLik3IGIoLiloKC4pZyguKWYoLiloKC4pZiguKTI5IGIKLUZwKDYpMzc0IDk2MiB5KDIuMy4yKTQ0IGIoSGlzdG9yeSkxNSBiKExpc3QpaChNYW5hZ2VtZW4pbyh0KWQKLUZhKC4pNyBiKC4paCguKWYoLiloKC4pZyguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4pCi1oKC4pZiguKWgoLilmKC4paCguKWYoLikyOSBiIEZwKDYpMzc0IDEwMTcgeSgyLjMuMyk0NAotYihJbmZvcm1hdGlvbikxNSBiKEFiKXEob3V0KWcodGhlKWgoSGlzdG9yeSlmKExpc3QpYwotRmEoLilkKC4pZyguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4pMjYKLWIgRnAoNykzNzQgMTA3MiB5KDIuMy40KTQ0IGIoTW8pbyh2aW5nKTE1IGIoQXJvdW5kKWcodGhlKWcoSGlzdG9yeSlnCi0oTGlzdCljIEZhKC4pZCguKWcoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmCi0oLiloKC4pMjUgYiBGcCg3KTM3NCAxMTI3IHkoMi4zLjUpNDQgYihTZWFyYylvKGhpbmcpMTYKLWIodGhlKWYoSGlzdG9yeSlnKExpc3QpNyBiIEZhKC4paCguKWcoLilmKC4paCguKWcoLilmKC4paCguKWYoLiloKC4pZgotKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4pMjIKLWIgRnAoOCkzNzQgMTE4MSB5KDIuMy42KTQ0IGIoTWFuYWdpbmcpMTUgYih0aGUpZyhIaXN0b3J5KWcoRmlsZSk2Ci1iIEZhKC4paSguKWcoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKQotZiguKWgoLilmKC4paCguKWYoLiloKC4pMjAgYiBGcCg4KTM3NCAxMjM2IHkoMi4zLjcpNDQKLWIoSGlzdG9yeSkxNSBiKEV4cGFuc2lvbik5IGIgRmEoLilmKC4pZyguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloCi0oLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKQotaCguKWYoLikyNCBiIEZwKDkpMjI0IDEyOTEgeSgyLjQpNDUgYihIaXN0b3J5KTE1IGIoVilsKGFyaWFibGVzKTYKLWIgRmEoLilpKC4pZyguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pCi1mKC4paCguKWcoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYKLSguKWgoLilmKC4paCguKWYoLikyMSBiIEZwKDEwKTIyNCAxMzQ2IHkoMi41KTQ1IGIoSGlzdG9yeSkxNQotYihQcm9ncmFtbWluZylmKEV4YW1wbGUpNyBiIEZhKC4paCguKWYoLiloKC4pZiguKWgoLilnKC4pZiguKWgoLilmKC4paAotKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4pMjIKLWIgRnAoMTEpNzUgMTQ2NyB5IEZuKEFwcClyKGVuZGl4KWkoQSk2NyBiKENvbmNlcHQpMjIKLWIoSW5kZXgpMTcgYiBGYiguKTEwIGIoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcKLSguKWgoLilmKC4pZyguKTM4IGIgRm4oMTMpNzUgMTYwMiB5KEFwcClyKGVuZGl4KTI0IGIoQik2NwotYihGKS02IGIodW5jdGlvbikyNSBiKGFuZCllKFYpLTYgYihhcmlhYmxlKTI0IGIoSW5kZXgpMTYKLWIgRmIoLikxMCBiKC4pZyguKWcoLikzOCBiIEZuKDE1KXAgZW9wCi0lJVBhZ2U6IC0yIDIwCi0tMiAxOSBib3AgNzUgLTU4IGEgRnAoaWkpMTM0NiBiKEdOVSkxNSBiKEhpc3RvcnkpZyhMaWJyYXJ5KXAKLWVvcAorVGVYRGljdCBiZWdpbiAyIDEgYm9wIDE1MCAzMDI0IGEgRnIoVGhpcykzMSBiKGRvKXMoY3VtZW4pbSh0KWcoZGVzY3JpYikKK3MoZXMpZyh0aGUpZyhHTlUpaChIaXN0b3J5KWcobGlicmFyeSlmKFwodiltKGVyc2lvbilpKDUuMS1iKXMoZXRhMSwpaAorKDExKWUoTm8pbSh2KW0oZW0pbShiKXMoZXIpaCgyMDA1XCksKTE1MCAzMTMzIHkoYSkyNgorYihwcm9ncmFtbWluZylnKHRvKXMob2wpaCh0aGF0KWcocHJvKW0odmlkZXMpZihhKWcoY29uc2lzdGVuKW0odClpCisodXNlcilkKGluKW0odGVyZmFjZSlpKGZvcilmKHJlY2FsbGluZylpKGxpbmVzKWUob2YpZyhwcmV2aW91c2x5KTE1MAorMzI0MyB5KHQpbSh5cClzKGVkKWsoaW5wdXQuKTE1MCAzMzc3IHkoQ29wKW0oeXJpZ2gpbSh0KTYwMgorMzM3NCB5KGMpNTc3IDMzNzcgeSBGbyhcMDE1KWcgRnIoMTk4OC0yMDA0KWsoRiktOCBiKHJlZSkzMgorYihTb2Z0KW0odyltKGFyZSlmKEYpLTggYihvdW5kYXRpb24sKTMyIGIoSW5jLikxNTAgMzUxMgoreShQKW0oZXJtaXNzaW9uKWcoaXMpaChncmFuKW0odGVkKWcodG8pZihtYWspbShlKWkoYW5kKWQoZGlzdHJpYnV0ZSloCisodiltKGVyYmF0aW0paChjb3BpZXMpZyhvZilmKHRoaXMpZyhtYW4pbSh1YWwpaChwcm8pbSh2aWRlZClmKHRoZSkxNTAKKzM2MjEgeShjb3ApbSh5cmlnaCltKHQpZyhub3RpY2UpZihhbmQpZih0aGlzKWcocClzKGVybWlzc2lvbilnKG5vdGljZSloCisoYXJlKWcocHJlc2VydiltKGVkKWYob24paChhbGwpZyhjb3BpZXMuKTM5MCAzNzU2IHkoUCltKGVybWlzc2lvbilrKGlzKQoraChncmFuKW0odGVkKWYodG8paChjb3ApbSh5KS04IGIoLCkzOCBiKGRpc3RyaWJ1dGUpZChhbmQvb3IpZyhtbylzCisoZGlmeSlmKHRoaXMpaChkbylzKGN1bWVuKW0odClnKHVuZGVyKTM5MCAzODY2IHkodGhlKWoodGVybXMpZyhvZilnCisodGhlKWcoR05VKWgoRiktOCBiKHJlZSkzOSBiKERvKXMoY3VtZW4pbSh0YXRpb24paChMaWNlbnNlLClnKFYpLTgKK2IoZXJzaW9uKTM5IGIoMS4xKWcob3IpZihhbiltKHkpZyhsYXRlcikzOTAgMzk3NSB5KHYpbShlcnNpb24pMjgKK2IocHVibGlzaGVkKWQoYiltKHkpaih0aGUpZihGKS04IGIocmVlKTI5IGIoU29mdCltKHcpbShhcmUpZihGKS04CitiKG91bmRhdGlvbjspMzAgYih3aXRoKWQobm8pZyhJbiltKHYpLTUgYihhcmlhbiltKHQpMjgKK2IoU2VjdGlvbnMsKTM5MCA0MDg1IHkod2l0aClpKHRoZSloKEYpLTggYihyb24pbSh0LUNvKW0odiltKGVyKTMzCitiKHRleHRzKWUoYilzKGVpbmcpZyhcXEEpZyhHTlUpZyhNYW4pbSh1YWwsIiloKGFuZCllKHdpdGgpZyh0aGUpaChCYWMpbQorKGstQ28pbSh2KW0oZXIpMzkwIDQxOTQgeShUKS04IGIoZXh0cykzMyBiKGFzKWcoaW4pZihcKGFcKSloKGIpcyhlbG8pbQorKHcuKTQ3IGIoQSkzMyBiKGNvcCltKHkpZyhvZilmKHRoZSloKGxpY2Vuc2UpZyhpcylnKGluY2x1ZGVkKWUoaW4paAorKHRoZSloKHNlY3Rpb24pZyhlbiltKHRpdGxlZCkzOTAgNDMwNCB5KFxcR05VKWUoRiktOAorYihyZWUpMzIgYihEbylzKGN1bWVuKW0odGF0aW9uKWcoTGljZW5zZS4iKTM5MCA0NDM4IHkoXChhXCkpMzkKK2IoVGhlKWYoRlNGJ3MpZyhCYWMpbShrLUNvKW0odiltKGVyKWooVCktOCBiKGV4dCkzOSBiKGlzOik1NgorYihcXFkpLTggYihvdSkzOSBiKGhhKW0odiltKGUpZyhmcmVlZG9tKWYodG8paChjb3ApbSh5KWYoYW5kKWcobW8pcworKGRpZnkpMzkwIDQ1NDggeSh0aGlzKTMyIGIoR05VKWkoTWFuKW0odWFsLClnKGxpayltKGUpZyhHTlUpZihzb2Z0KW0odykKK20oYXJlLik0OSBiKENvcGllcykzMiBiKHB1Ymxpc2hlZClmKGIpbSh5KWgodGhlKWgoRiktOAorYihyZWUpMzQgYihTb2Z0KW0odyltKGFyZSkzOTAgNDY1OCB5KEYpLTggYihvdW5kYXRpb24pMzEKK2IocmFpc2UpZyhmdW5kcylkKGZvcilqKEdOVSlnKGRldiltKGVsb3BtZW4pbSh0LiIpMTUwCis0OTAyIHkoUHVibGlzaGVkKWUoYiltKHkpaCh0aGUpaChGKS04IGIocmVlKTMxIGIoU29mdCltKHcpbShhcmUpaChGKS04CitiKG91bmRhdGlvbikxNTAgNTAxMSB5KDU5KTMxIGIoVCktOCBiKGVtcGxlKTMxIGIoUGxhY2UsKWgoU3VpdGUpZSgzMzAsKQorMTUwIDUxMjEgeShCb3N0b24sKWkoTUEpZSgwMjExMS0xMzA3KTE1MCA1MjMwIHkoVVNBKXAKK2VvcCBlbmQKKyUlUGFnZTogLTEgMworVGVYRGljdCBiZWdpbiAtMSAyIGJvcCAzNzI1IC0xMTYgYSBGcihpKTE1MCAyOTkgeSBGbihUKS0xMworYihhYmxlKTUzIGIob2YpaChDb24pbCh0ZW4pbCh0cykxNTAgNjQxIHkgRnAoMSkxMzUgYihVc2luZyk0NQorYihIaXN0b3J5KWgoSW4pbCh0ZXJhY3RpdilsKGVseSkxOCBiIEZtKC4pMjMgYiguKWMoLilnKC4paCguKWYoLiloKC4pZgorKC4paCguKWYoLilnKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4pNjMgYiBGcCgxKTQ0OQorNzc4IHkgRnIoMS4xKTkyIGIoSGlzdG9yeSkzMSBiKEV4cGFuc2lvbik5IGIgRmwoLikxNQorYiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnCisoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKQorZyguKWcoLilnKC4pMzkgYiBGcigxKTc0OCA4ODggeSgxLjEuMSk5MyBiKEV2KW0oZW4pbSh0KTMxCitiKERlc2lnbmF0b3JzKTI1IGIgRmwoLikxNSBiKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKQorZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnCisoLik1NCBiIEZyKDEpNzQ4IDk5NyB5KDEuMS4yKTkzIGIoVyktOCBiKG9yZCkzMCBiKERlc2lnbmF0b3JzKTkKK2IgRmwoLikxNyBiKC4pZSguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnCisoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKTM5CitiIEZyKDEpNzQ4IDExMDcgeSgxLjEuMyk5MyBiKE1vKXMoZGlcMDE0ZXJzKTkgYiBGbCguKTE0CitiKC4paCguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcKKyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pCitnKC4pZyguKWcoLikzOCBiIEZyKDIpMTUwIDEzNDkgeSBGcCgyKTEzNSBiKFByb2dyYW1taW5nKTQ2CitiKHdpdGgpZihHTlUpZyhIaXN0b3J5KTMzIGIgRm0oLikxOSBiKC4paCguKWYoLilnKC4paCguKWYoLiloKC4pZiguKWgKKyguKWYoLik3NiBiIEZwKDUpNDQ5IDE0ODYgeSBGcigyLjEpOTIgYihJbiltKHRybylzKGR1Y3Rpb24pMzAKK2IodG8paChIaXN0b3J5KTE5IGIgRmwoLilkKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcKKyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pCitnKC4pZyguKWcoLilnKC4pNDkgYiBGcig1KTQ0OSAxNTk2IHkoMi4yKTkyIGIoSGlzdG9yeSkzMQorYihTdG9yYWdlKTI1IGIgRmwoLikxNSBiKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLikKK2coLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZworKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKTU0IGIgRnIoNSk0NDkKKzE3MDUgeSgyLjMpOTIgYihIaXN0b3J5KTMxIGIoRiktOCBiKHVuY3Rpb25zKTI0IGIgRmwoLikxNQorYiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnCisoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKQorZyguKWcoLilnKC4pNTMgYiBGcig2KTc0OCAxODE1IHkoMi4zLjEpOTMgYihJbml0aWFsaXppbmcpMzIKK2IoSGlzdG9yeSlmKGFuZCllKFN0YXRlKWooTWFuYWdlbWVuKW0odClmIEZsKC4pMTUgYiguKWcoLilnKC4pZyguKWcoLilnCisoLik1OSBiIEZyKDYpNzQ4IDE5MjQgeSgyLjMuMik5MyBiKEhpc3RvcnkpMzEgYihMaXN0KWYoTWFuYWdlbWVuKW0odCloCitGbCguKTE1IGIoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcKKyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKTU4IGIgRnIoNik3NDggMjAzNCB5KDIuMy4zKTkzCitiKEluZm9ybWF0aW9uKTMwIGIoQWIpcyhvdXQpZyh0aGUpZyhIaXN0b3J5KWgoTGlzdCkyMworYiBGbCguKTE1IGIoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLik1MgorYiBGcig3KTc0OCAyMTQ0IHkoMi4zLjQpOTMgYihNbyltKHZpbmcpMzEgYihBcm91bmQpZSh0aGUpaShIaXN0b3J5KWcKKyhMaXN0KTIxIGIgRmwoLikxNSBiKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pCitnKC4pZyguKWcoLik1MSBiIEZyKDcpNzQ4IDIyNTMgeSgyLjMuNSk5MyBiKFNlYXJjKW0oaGluZykzMAorYih0aGUpaChIaXN0b3J5KWcoTGlzdCkxNSBiIEZsKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZworKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pNDQKK2IgRnIoOCk3NDggMjM2MyB5KDIuMy42KTkzIGIoTWFuYWdpbmcpMzEgYih0aGUpZyhIaXN0b3J5KWcoRmlsZSkxMQorYiBGbCguKTE2IGIoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcKKyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKTQxIGIgRnIoOCk3NDggMjQ3MiB5KDIuMy43KTkzCitiKEhpc3RvcnkpMzEgYihFeHBhbnNpb24pMTggYiBGbCguKWMoLiloKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKQorZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnCisoLilnKC4pZyguKTQ4IGIgRnIoOSk0NDkgMjU4MiB5KDIuNCk5MiBiKEhpc3RvcnkpMzEgYihWKS04CitiKGFyaWFibGVzKTExIGIgRmwoLikxNyBiKC4pZSguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcKKyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pCitnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLik0MCBiIEZyKDEwKTQ0OSAyNjkyCit5KDIuNSk5MiBiKEhpc3RvcnkpMzEgYihQcm9ncmFtbWluZylmKEV4YW1wbGUpMTMgYiBGbCguKWooLilmKC4pZyguKWcKKyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pCitnKC4paCguKWYoLilnKC4pNDIgYiBGcigxMSkxNTAgMjkzNCB5IEZwKEFwcCl0KGVuZGl4KWkoQSk5OQorYihDb3ApbCh5aW5nKTQ2IGIoVGhpcyllKE1hbilsKHVhbCkyOSBiIEZtKC4pMjAgYiguKWcoLilmKC4paCguKWYoLilnCisoLiloKC4pZiguKWgoLilmKC4pNzQgYiBGcCgxMyk0NDkgMzA3MSB5IEZyKEEuMSk5MiBiKEdOVSkzMQorYihGKS04IGIocmVlKTMxIGIoRG8pcyhjdW1lbiltKHRhdGlvbiloKExpY2Vuc2UpYyBGbCguKTE1CitiKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcKKyguKWcoLilnKC4pZyguKTU2IGIgRnIoMTMpNzQ4IDMxODEgeShBLjEuMSk5MiBiKEFEREVORFVNOikzMworYihIbyltKHcpZSh0bylnKHVzZSlmKHRoaXMpZyhMaWNlbnNlKWgoZm9yKWcoeSltKG91cik5MzAKKzMyOTAgeShkbylzKGN1bWVuKW0odHMpYyBGbCguKTE1IGIoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcKKyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pCitnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pNTcgYiBGcigxOSkxNTAKKzM1MzMgeSBGcChBcHApdChlbmRpeCk0NCBiKEIpMTA1IGIoQ29uY2VwdCk0NiBiKEluZGV4KTE2CitiIEZtKC4paiguKWgoLilmKC4pZyguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWcoLiloKC4pZiguKWgoLilmKC4paCguKQorZiguKTYxIGIgRnAoMjEpMTUwIDM4MDIgeShBcHApdChlbmRpeCk0NCBiKEMpMTA0IGIoRiktMTEKK2IodW5jdGlvbik0NCBiKGFuZCloKFYpLTExIGIoYXJpYWJsZSk0NiBiKEluZGV4KTEzIGIKK0ZtKC4pMTkgYiguKWcoLiloKC4pZiguKTU4IGIgRnAoMjMpcCBlb3AgZW5kCislJVBhZ2U6IC0yIDQKK1RlWERpY3QgYmVnaW4gLTIgMyBib3AgMTUwIC0xMTYgYSBGcihpaSkyNjkxIGIoR05VKTMxCitiKEhpc3RvcnkpZyhMaWJyYXJ5KXAgZW9wIGVuZAorJSVQYWdlOiAxIDUKK1RlWERpY3QgYmVnaW4gMSA0IGJvcCAxNTAgLTExNiBhIEZyKENoYXB0ZXIpMzAgYigxOik0MQorYihVc2luZykzMCBiKEhpc3RvcnkpaChJbiltKHRlcmFjdGl2KW0oZWx5KTIwMTYgYigxKTE1MAorMjk5IHkgRm4oMSk4MCBiKFVzaW5nKTUzIGIoSGlzdG9yeSlnKEluKWwodGVyYWN0aXYpbChlbHkpMjc1Cis1NjIgeSBGcihUaGlzKTMyIGIoYyltKGhhcHRlcilpKGRlc2NyaWIpcyhlcyllKGhvKW0odyloKHRvKWgodXNlKWYodGhlKQorZyBGayhnbnUpZyBGcihIaXN0b3J5KWgoTGlicmFyeSllKGluKW0odGVyYWN0aXYpbShlbHkpLTgKK2IoLCkzNyBiKGZyb20pYyhhKWgodXNlcidzKTE1MCA2NzIgeShzdGFuZHApcyhvaW4pbSh0Lik3NgorYihJdCk0MiBiKHNob3VsZClmKGIpcyhlKWgoY29uc2lkZXJlZClnKGEpZyh1c2VyJ3MpZyhndWlkZS4pNzYKK2IoRiktOCBiKG9yKTQzIGIoaW5mb3JtYXRpb24pZihvbilnKHVzaW5nKWcodGhlKWcgRmsoZ251KTE1MAorNzgxIHkgRnIoSGlzdG9yeSkzNiBiKExpYnJhcnkpZShpbiloKHkpbShvdXIpZihvKW0od24paShwcm9ncmFtcywpZworKHNlZSlmKENoYXB0ZXIpZygyKWcoW1Byb2dyYW1taW5nKWcod2l0aClnKEdOVSloKEhpc3RvcnldLCkxNTAKKzg5MSB5KHBhZ2UpMzEgYig1LikxNTAgMTE3MiB5IEZwKDEuMSk2OCBiKEhpc3RvcnkpNDYKK2IoRXhwYW5zaW9uKTI3NSAxNDI2IHkgRnIoVGhlKTM1IGIoSGlzdG9yeSloKGxpYnJhcnkpZihwcm8pbSh2aWRlcyloKGEpCitnKGhpc3RvcnkpZihleHBhbnNpb24paChmZWF0dXJlKWcodGhhdClnKGlzKWcoc2ltaWxhcilnKHRvKWcodGhlKWcKKyhoaXN0b3J5KTE1MCAxNTM2IHkoZXhwYW5zaW9uKTIyIGIocHJvKW0odmlkZWQpZihiKW0oeSloCitGcShjc2gpcCBGciguKTM3IGIoVGhpcykyMiBiKHNlY3Rpb24paChkZXNjcmliKXMoZXMpZSh0aGUpaChzeW4pbSh0YXgpaAorKHVzZWQpZSh0byloKG1hbmlwdWxhdGUpaCh0aGUpZihoaXN0b3J5KTE1MCAxNjQ1IHkoaW5mb3JtYXRpb24uKTI3NQorMTc4OSB5KEhpc3RvcnkpMzEgYihleHBhbnNpb25zKWYoaW4pbSh0cm8pcyhkdWNlKWcodyltKG9yZHMpZyhmcm9tKWcKKyh0aGUpaChoaXN0b3J5KWYobGlzdCloKGluKW0odG8pZyh0aGUpZyhpbnB1dClmKHN0cmVhbSwpaChtYWtpbmcpMTUwCisxODk5IHkoaXQpZyhlYXN5KWcodG8pZyhyZXApcyhlYXQpZyhjb21tYW5kcywpZihpbnNlcnQpZyh0aGUpaChhcmd1bWVuKQorbSh0cylmKHRvKWgoYSlnKHByZXZpb3VzKWYoY29tbWFuZClnKGluKW0odG8paSh0aGUpZShjdXJyZW4pbSh0KTE1MAorMjAwOSB5KGlucHV0KWYobGluZSwpaShvcilnKFwwMTR4KWYoZXJyb3JzKWYoaW4paChwcmV2aW91cylnKGNvbW1hbmRzKWcKKyhxdWljKW0oa2x5KS04IGIoLikyNzUgMjE1MyB5KEhpc3RvcnkpMzcgYihleHBhbnNpb24pZih0YWspbShlcylpCisocGxhY2UpZyhpbillKHQpbSh3KW0obylpKHBhcnRzLik1OSBiKFRoZSkzNiBiKFwwMTRyc3QpZyhpcyloKHRvKWcKKyhkZXRlcm1pbmUpZyh3aGljKW0oaClmKGxpbmUpaChmcm9tKTE1MCAyMjYyIHkodGhlKTQyCitiKGhpc3RvcnkpZihsaXN0KWgoc2hvdWxkKWUoYilzKGUpaCh1c2VkKWYoZHVyaW5nKWcoc3Vic3RpdHV0aW9uLik3NAorYihUaGUpNDAgYihzZWNvbmQpaShpcylmKHRvKWgoc2VsZWN0KWgocClzKG9ydGlvbnMpZShvZikxNTAKKzIzNzIgeSh0aGF0KTMxIGIobGluZSlnKGZvcilmKGluY2x1c2lvbiloKGluKW0odG8pZyh0aGUpZyhjdXJyZW4pbSh0KWYKKyhvbmUuKTQyIGIoVGhlKTMwIGIobGluZSloKHNlbGVjdGVkKWgoZnJvbSllKHRoZSloKGhpc3RvcnkpZihpcyloCisoY2FsbGVkKWgodGhlKTE1MCAyNDgxIHkgRmooZXYpbShlbiltKHQpcCBGcigsKWUoYW5kKWModGhlKWkocClzCisob3J0aW9ucyllKG9mKWkodGhhdClmKGxpbmUpaCh0aGF0KWcoYXJlKWYoYWN0ZWQpaSh1cClzKG9uKWMoYXJlKWoKKyhjYWxsZWQpZyBGaih3KW0ob3JkcylwIEZyKC4pMzkgYihWKS04IGIoYXJpb3VzKTI4IGIKK0ZqKG1vKXMoZGlcMDE0ZXJzKTE1MCAyNTkxIHkgRnIoYXJlKTMzIGIoYSltKHYpLTUgYihhaWxhYmxlKTM2CitiKHRvKWQobWFuaXB1bGF0ZSloKHRoZSlmKHNlbGVjdGVkKWgodyltKG9yZHMuKTQ4IGIoVGhlKTMyCitiKGxpbmUpaShpcylmKGJyb2spbShlbilmKGluKW0odG8paSh3KW0ob3JkcylmKGluKWYodGhlKWkoc2FtZSkxNTAKKzI3MDEgeShmYXNoaW9uKTIzIGIodGhhdClnKEJhc2gpZyhkbylzKGVzLCloKHNvKWYodGhhdCloKHNldiltKGVyYWwpZworKHcpbShvcmRzKWUoc3Vycm91bmRlZCllKGIpbSh5KWoocXVvdGVzKWcoYXJlKWcoY29uc2lkZXJlZClnKG9uZSlnKHcpbQorKG9yZC4pMTUwIDI4MTAgeShIaXN0b3J5KTM3IGIoZXhwYW5zaW9ucylnKGFyZSlnKGluKW0odHJvKXMoZHVjZWQpZihiKW0KKyh5KWgodGhlKWcoYXBwKXMoZWFyYW5jZSlnKG9mKWcodGhlKWcoaGlzdG9yeSlmKGV4cGFuc2lvbiloKGMpbQorKGhhcmFjdGVyLCkxNTAgMjkyMCB5KHdoaWMpbShoKTMwIGIoaXMpaChgKXAgRnEoISlwIEZyKCcpZihiKW0oeSlnCisoZGVmYXVsdC4pMTUwIDMxNjMgeSBGaSgxLjEuMSk2MyBiKEV2KW0oZW4pbSh0KTM5IGIoRGVzaWduYXRvcnMpMjc1CiszNDE3IHkgRnIoQW4pMzAgYihldiltKGVuKW0odCloKGRlc2lnbmF0b3IpaChpcyllKGEpaChyZWZlcmVuY2UpZyh0bylnCisoYSlmKGNvbW1hbmQpaChsaW5lKWYoZW4pbSh0cnkpaChpbilmKHRoZSloKGhpc3RvcnkpZihsaXN0LikxNTAKKzM1OTEgeSBGcSghKTQzMiBiIEZyKFN0YXJ0KTM0IGIoYSlmKGhpc3RvcnkpaChzdWJzdGl0dXRpb24sKWcoZXhjZXB0KWcKKyh3aGVuKWYoZm9sbG8pbSh3KW0oZWQpaShiKW0oeSllKGEpaChzcGFjZSwpaCh0YWIsKWYodGhlKWcoZW5kKWYob2YpNjMwCiszNzAxIHkodGhlKWUobGluZSwpZyhvcilmKGApcCBGcSg9KXAgRnIoJy4pMTUwIDM4NzAgeQorRnEoISlwIEZoKG4pMzg0IGIgRnIoUmVmZXIpMzAgYih0bylpKGNvbW1hbmQpZShsaW5lKWcKK0ZqKG4pcCBGciguKTE1MCA0MDM5IHkgRnEoIS0pcCBGaChuKTMzNiBiIEZyKFJlZmVyKTMwCitiKHRvKWkodGhlKWUoY29tbWFuZClnIEZqKG4pZyBGcihsaW5lcyloKGJhYyltKGsuKTE1MAorNDIwOCB5IEZxKCEhKTM4NCBiIEZyKFJlZmVyKTMwIGIodG8paSh0aGUpZShwcmV2aW91cylnKGNvbW1hbmQuKTQwCitiKFRoaXMpMzAgYihpcylnKGEpaChzeW5vbiltKHltKWYoZm9yKWcoYClwIEZxKCEtMSlwCitGcignLikxNTAgNDM3NyB5IEZxKCEpcCBGaChzdHJpbmcpMTQ0IGIgRnIoUmVmZXIpMzAgYih0bylpKHRoZSllKG1vc3QpaAorKHJlY2VuKW0odClnKGNvbW1hbmQpZihzdGFydGluZylpKHdpdGgpZSBGaihzdHJpbmcpcAorRnIoLikxNTAgNDU0NiB5IEZxKCE/KXAgRmgoc3RyaW5nKTExIGIgRnEoWz9dKTYzMCA0NjU1Cit5IEZyKFJlZmVyKTM0IGIodG8pZyh0aGUpZihtb3N0KWgocmVjZW4pbSh0KWgoY29tbWFuZCllKGNvbiltKHRhaW5pbmcpaQorRmooc3RyaW5nKXAgRnIoLik1MCBiKFRoZSkzMyBiKHRyYWlsaW5nKWkoYClwIEZxKD8pcAorRnIoJyllKG1hKW0oeSlpKGIpcyhlKTYzMCA0NzY1IHkob21pdHRlZCljKGlmKWcodGhlKWYKK0ZqKHN0cmluZykzOCBiIEZyKGlzKTMxIGIoZm9sbG8pbSh3KW0oZWQpaChpbW1lZGlhdGVseSlnKGIpbSh5KWUoYSloCisobmV3bGluZS4pMTUwIDQ5MzQgeSBGcSheKXAgRmgoc3RyaW5nMSkxMSBiIEZxKF4pcCBGaChzdHJpbmcyKWcKK0ZxKF4pNjMwIDUwNDQgeSBGcihRdWljKW0oaykzMiBiKFN1YnN0aXR1dGlvbi4pNDQgYihSZXApcyhlYXQpMzIKK2IodGhlKWcobGFzdCloKGNvbW1hbmQsKWYocmVwbGFjaW5nKWcgRmooc3RyaW5nMSk0MCBiCitGcih3aXRoKTMxIGIgRmooc3RyaW5nMilwIEZyKC4pNjMwIDUxNTMgeShFcXVpdiktNSBiKGFsZW4pbSh0KTMxCitiKHRvKWcgRnEoISE6cy8pcCBGaChzdHJpbmcxKTExIGIgRnEoLylwIEZoKHN0cmluZzIpZworRnEoLylwIEZyKC4pMTUwIDUzMjIgeSBGcSghIykzODQgYiBGcihUaGUpMzAgYihlbiltKHRpcmUpaChjb21tYW5kKWYKKyhsaW5lKWgodCltKHlwKXMoZWQpZihzbyloKGZhci4pcCBlb3AgZW5kCislJVBhZ2U6IDIgNgorVGVYRGljdCBiZWdpbiAyIDUgYm9wIDE1MCAtMTE2IGEgRnIoMikyNjk2IGIoR05VKTMxIGIoSGlzdG9yeSlnCisoTGlicmFyeSkxNTAgMjk5IHkgRmkoMS4xLjIpNjMgYihXKS0xMCBiKG9yZCk0MSBiKERlc2lnbmF0b3JzKTI3NQorNTQyIHkgRnIoVyktOCBiKG9yZCkzNSBiKGRlc2lnbmF0b3JzKWcoYXJlKWcodXNlZClmKHRvKWgoc2VsZWN0KWgKKyhkZXNpcmVkKWUodyltKG9yZHMpaChmcm9tKWYodGhlKWgoZXYpbShlbiltKHQuKTU1IGIoQSkzNAorYihgKXAgRnEoOilwIEZyKCcpaChzZXBhcmF0ZXMpaCh0aGUpMTUwIDY1MiB5KGV2KW0oZW4pbSh0KTQxCitiKHNwKXMoZWNpXDAxNGNhdGlvbilmKGZyb20pZyh0aGUpZih3KW0ob3JkKWcoZGVzaWduYXRvci4pNjkKK2IoSXQpNDAgYihtYSltKHkpZyhiKXMoZSlmKG9taXR0ZWQpaShpZillKHRoZSloKHcpbShvcmQpZihkZXNpZ25hdG9yKQorMTUwIDc2MSB5KGIpcyhlZ2lucykzMyBiKHdpdGgpaChhKWgoYClwIEZxKF4pcCBGcignLClnKGApcAorRnEoJClwIEZyKCcsKWcoYClwIEZxKCopcCBGcignLCloKGApcCBGcSgtKXAgRnIoJywpZihvcilmKGApcAorRnEoXDA0NSlwIEZyKCcuKTUyIGIoVyktOCBiKG9yZHMpMzUgYihhcmUpZihuKW0odW0pbShiKXMoZXJlZClmKGZyb20pZworKHRoZSlpKGIpcyhlZ2lubmluZyllKG9mKWgodGhlKWcobGluZSwpMTUwIDg3MSB5KHdpdGgpMzkKK2IodGhlKWgoXDAxNHJzdClmKHcpbShvcmQpZyhiKXMoZWluZylnKGRlbm90ZWQpaChiKW0oeSlnKDApZyhcKHplcm9cKS4pCis3MCBiKFcpLTggYihvcmRzKTM5IGIoYXJlKWgoaW5zZXJ0ZWQpZyhpbiltKHRvKWcodGhlKWcoY3VycmVuKW0odClnCisobGluZSkxNTAgOTgwIHkoc2VwYXJhdGVkKTMxIGIoYiltKHkpZihzaW5nbGUpaChzcGFjZXMuKTI3NQorMTExNCB5KEYpLTggYihvcikzMSBiKGV4YW1wbGUsKTE1MCAxMjcyIHkgRnEoISEpMzg0IGIKK0ZyKGRlc2lnbmF0ZXMpMzcgYih0aGUpZihwcmVjZWRpbmcpZyhjb21tYW5kLik1NyBiKFdoZW4pMzUKK2IoeSltKG91KWkodCltKHlwKXMoZSlmKHRoaXMsKWgodGhlKWYocHJlY2VkaW5nKWcoY29tLSk2MzAKKzEzODEgeShtYW5kKTMwIGIoaXMpZyhyZXApcyhlYXRlZClnKGluKWcodG90by4pMTUwIDE1MzkKK3kgRnEoISE6JCkyODggYiBGcihkZXNpZ25hdGVzKTIzIGIodGhlKWcobGFzdClnKGFyZ3VtZW4pbSh0KWcob2YpZih0aGUpCitoKHByZWNlZGluZylmKGNvbW1hbmQuKTM4IGIoVGhpcykyMiBiKG1hKW0oeSloKGIpcyhlKWUoc2hvcnRlbmVkKTYzMAorMTY0OCB5KHRvKTMxIGIgRnEoISQpcCBGciguKTE1MCAxODA2IHkgRnEoIWZpOjIpMjQwIGIKK0ZyKGRlc2lnbmF0ZXMpMzAgYih0aGUpZyhzZWNvbmQpZihhcmd1bWVuKW0odCloKG9mKWYodGhlKWgobW9zdClmCisocmVjZW4pbSh0KWkoY29tbWFuZCllKHN0YXJ0aW5nKWgod2l0aClmKHRoZSk2MzAgMTkxNgoreShsZXR0ZXJzKWogRnEoZmkpcCBGciguKTI3NSAyMDczIHkoSGVyZSllKGFyZSloKHRoZSlnKHcpbShvcmQpZgorKGRlc2lnbmF0b3JzOikxNTAgMjIzMSB5IEZxKDApZyhcKHplcm9cKSkxMTQgYiBGcihUaGUpMzAKK2IgRnEoMClwIEZyKHRoKWcodyltKG9yZC4pNDAgYihGKS04IGIob3IpMzEgYihtYW4pbSh5KWcoYXBwbGljYXRpb25zLCloCisodGhpcyllKGlzKWcodGhlKWgoY29tbWFuZClmKHcpbShvcmQuKTE1MCAyMzg4IHkgRmgobik0MzIKK2IgRnIoVGhlKTMwIGIgRmoobilwIEZyKHRoKWcodyltKG9yZC4pMTUwIDI1NDYgeSBGcSheKTQzMgorYiBGcihUaGUpMzAgYihcMDE0cnN0KWYoYXJndW1lbiltKHQ7KWoodGhhdClmKGlzLClmKHcpbShvcmQpZygxLikxNTAKKzI3MDMgeSBGcSgkKTQzMiBiIEZyKFRoZSkzMCBiKGxhc3QpaChhcmd1bWVuKW0odC4pMTUwCisyODYxIHkgRnEoXDA0NSk0MzIgYiBGcihUaGUpMzAgYih3KW0ob3JkKWcobWF0YyltKGhlZCloKGIpbSh5KWYodGhlKWgKKyhtb3N0KWcocmVjZW4pbSh0KWcoYClwIEZxKD8pcCBGaChzdHJpbmcpMTEgYiBGcSg/KXAKK0ZyKCcpMjggYihzZWFyYyltKGguKTE1MCAzMDE5IHkgRmgoeClwIEZxKC0pcCBGaCh5KTMzNgorYiBGcihBKTMwIGIocmFuZ2UpaChvZilnKHcpbShvcmRzOylmKGApcCBGcSgtKXAgRmgoeSkxMQorYiBGcignKTMwIGIoYWJicmV2aWF0ZXMpaChgKXAgRnEoMC0pcCBGaCh5KTExIGIgRnIoJy4pMTUwCiszMTc2IHkgRnEoKik0MzIgYiBGcihBbGwpMjggYihvZilnKHRoZSlnKHcpbShvcmRzLClnKGV4Y2VwdCloKHRoZSllCitGcSgwKXAgRnIodGguKTQwIGIoVGhpcykyNyBiKGlzKWcoYSloKHN5bm9uKW0oeW0pZihmb3IpaChgKXAKK0ZxKDEtJClwIEZyKCcuKTM5IGIoSXQpMjggYihpcylnKG5vdClnKGFuKWYoZXJyb3IpNjMwCiszMjg2IHkodG8paih1c2UpZyhgKXAgRnEoKilwIEZyKCcpZihpZiloKHRoZXJlKWcoaXMpZyhqdXN0KWYob25lKWgodyltCisob3JkKWYoaW4pZyh0aGUpaChldiltKGVuKW0odDspaSh0aGUpZChlbXB0KW0oeSlpKHN0cmluZyllKGlzKWgKKyhyZXR1cm5lZCllKGluKTYzMCAzMzk1IHkodGhhdClqKGNhc2UuKTE1MCAzNTUzIHkgRmgoeCkxMQorYiBGcSgqKTM3MyBiIEZyKEFiYnJldmlhdGVzKTMxIGIoYClwIEZoKHgpcCBGcSgtJClwIEZyKCcpMTUwCiszNzExIHkgRmgoeClwIEZxKC0pMzg0IGIgRnIoQWJicmV2aWF0ZXMpMzEgYihgKXAgRmgoeClwCitGcSgtJClwIEZyKCcpZihsaWspbShlKWgoYClwIEZoKHgpMTEgYiBGcSgqKXAgRnIoJywpMzEKK2IoYnV0KWUob21pdHMpaSh0aGUpZyhsYXN0KWcodyltKG9yZC4pMjc1IDM4NjggeShJZilpKGEpaCh3KW0ob3JkKWcKKyhkZXNpZ25hdG9yKWcoaXMpZyhzdXBwbGllZClmKHdpdGhvdXQpaChhbilnKGV2KW0oZW4pbSh0KWgoc3ApcworKGVjaVwwMTRjYXRpb24sKWgodGhlKWUocHJldmlvdXMpZihjb21tYW5kKTE1MCAzOTc4IHkoaXMpZCh1c2VkKWcoYXMpaAorKHRoZSlmKGV2KW0oZW4pbSh0LikxNTAgNDE5OSB5IEZpKDEuMS4zKTYzIGIoTW8pcyhkaVwwMTRlcnMpMjc1Cis0NDQyIHkgRnIoQWZ0ZXIpMjAgYih0aGUpaChvcHRpb25hbCloKHcpbShvcmQpZihkZXNpZ25hdG9yLClpKHkpbShvdSllCisoY2FuKWcoYWRkKWYoYSloKHNlcXVlbmNlKWcob2YpZyhvbmUpZyhvcilnKG1vcmUpZyhvZilnKHRoZSlmKGZvbGxvKW0KKyh3aW5nKTE1MCA0NTUyIHkobW8pcyhkaVwwMTRlcnMsKTI5IGIoZWFjKW0oaClqKHByZWNlZGVkKWUoYiltKHkpZyhhKWgKKyhgKXAgRnEoOilwIEZyKCcuKTE1MCA0NzEwIHkgRnEoaCk0MzIgYiBGcihSZW1vKW0odiltKGUpMzIKK2IoYSlmKHRyYWlsaW5nKWcocGF0aG5hbWUpZyhjb21wKXMob25lbiltKHQsKWcobGVhKW0odmluZyloKG9ubHkpZSh0aGUpCitoKGhlYWQuKTE1MCA0ODY3IHkgRnEodCk0MzIgYiBGcihSZW1vKW0odiltKGUpMzIgYihhbGwpZihsZWFkaW5nKWgKKyhwYXRobmFtZSllKGNvbXApcyhvbmVuKW0odHMsKWgobGVhKW0odmluZyloKHRoZSllKHRhaWwuKTE1MAorNTAyNSB5IEZxKHIpNDMyIGIgRnIoUmVtbyltKHYpbShlKTMyIGIoYSlmKHRyYWlsaW5nKWcoc3VcMDE2eClmKG9mKWcKKyh0aGUpaChmb3JtKWYoYClwIEZxKC4pcCBGaChzdWZmaXgpMTEgYiBGcignLCkyOCBiKGxlYSltKHZpbmcpMzMKK2IodGhlKWQoYmFzZW5hbWUuKTE1MCA1MTgyIHkgRnEoZSk0MzIgYiBGcihSZW1vKW0odiltKGUpMzIKK2IoYWxsKWYoYnV0KWYodGhlKWgodHJhaWxpbmcpZyhzdVwwMTZ4LikxNTAgNTM0MCB5IEZxKHApNDMyCitiIEZyKFByaW4pbSh0KTMwIGIodGhlKWgobmV3KWYoY29tbWFuZClnKGJ1dClnKGRvKWcobm90KWcoZXhlY3V0ZSlpCisoaXQuKXAgZW9wIGVuZAorJSVQYWdlOiAzIDcKK1RlWERpY3QgYmVnaW4gMyA2IGJvcCAxNTAgLTExNiBhIEZyKENoYXB0ZXIpMzAgYigxOik0MQorYihVc2luZykzMCBiKEhpc3RvcnkpaChJbiltKHRlcmFjdGl2KW0oZWx5KTIwMTYgYigzKTE1MAorMjk5IHkgRnEocy8pcCBGaChvbGQpMTEgYiBGcSgvKXAgRmgobmV3KWcgRnEoLyk2MzAgNDA4Cit5IEZyKFN1YnN0aXR1dGUpMzIgYiBGaihuZXcpNDAgYiBGcihmb3IpMzIgYih0aGUpaChcMDE0cnN0KWYobylzCisoY2N1cnJlbmNlKWgob2YpZiBGaihvbGQpMzcgYiBGcihpbikzMiBiKHRoZSloKGV2KW0oZW4pbSh0KWgobGluZS4pNDgKK2IoQW4pbSh5KTMyIGIoZGVsaW1pdGVyKTYzMCA1MTggeShtYSltKHkpMjUgYihiKXMoZSlnKHVzZWQpZihpbilnCisocGxhY2UpaShvZilmKGApcCBGcSgvKXAgRnIoJy4pMzkgYihUaGUpMjQgYihkZWxpbWl0ZXIpaChtYSltKHkpaChiKXMKKyhlKWUocXVvdGVkKWgoaW4pZiBGaihvbGQpMjkgYiBGcihhbmQpMjQgYiBGaihuZXcpMzIKK2IgRnIod2l0aCkyNSBiKGEpNjMwIDYyOCB5KHNpbmdsZSlrKGJhYyltKGtzbGFzaC4pNDAKK2IoSWYpMjggYihgKXAgRnEoJilwIEZyKCcpZyhhcHApcyhlYXJzKWcoaW4pZiBGaihuZXcpcAorRnIoLClpKGl0KWYoaXMpaChyZXBsYWNlZClmKGIpbSh5KWcgRmoob2xkKXAgRnIoLik0MAorYihBKTI4IGIoc2luZ2xlKWgoYmFjKW0oa3NsYXNoKTYzMCA3MzcgeSh3aWxsKTM1IGIocXVvdGUpZyh0aGUpZyhgKXAKK0ZxKCYpcCBGcignLik1NCBiKFRoZSkzNCBiKFwwMTRuYWwpZyhkZWxpbWl0ZXIpaShpcyllKG9wdGlvbmFsKWkoaWYpZgorKGl0KWcoaXMpZih0aGUpaChsYXN0KWgoYyltKGhhcmFjdGVyKWcob24pNjMwIDg0NyB5KHRoZSkzMQorYihpbnB1dCllKGxpbmUuKTE1MCAxMDA2IHkgRnEoJik0MzIgYiBGcihSZXApcyhlYXQpMzEKK2IodGhlKWYocHJldmlvdXMpZyhzdWJzdGl0dXRpb24uKTE1MCAxMTY2IHkgRnEoZykxNTAKKzEyNzUgeShhKTQzMiBiIEZyKENhdXNlKTM4IGIoYyltKGhhbmdlcylpKHRvKWYoYilzKGUpZihhcHBsaWVkKWgobyltKHYpCittKGVyKWgodGhlKWYoZW4pbSh0aXJlKWcoZXYpbShlbiltKHQpaChsaW5lLik2NiBiKFVzZWQpMzkKK2IoaW4pZihjb25qdW5jdGlvbik2MzAgMTM4NSB5KHdpdGgpMzAgYihgKXAgRnEocylwIEZyKCcsKWgoYXMpZihpbiloCitGcShncy8pcCBGaChvbGQpMTEgYiBGcSgvKXAgRmgobmV3KWcgRnEoLylwIEZyKCwpMjYgYihvcilrKHdpdGgpaChgKXAKK0ZxKCYpcCBGcignLikxNTAgMTU0NCB5IEZxKEcpNDMyIGIgRnIoQXBwbHkpMzAgYih0aGUpZyhmb2xsbyltKHdpbmcpaQorKGApcCBGcShzKXAgRnIoJylmKG1vKXMoZGlcMDE0ZXIpZShvbmNlKWkodG8pZyhlYWMpbShoKWgodyltKG9yZCllKGluKWcKKyh0aGUpZyhldiltKGVuKW0odC4pcCBlb3AgZW5kCislJVBhZ2U6IDQgOAorVGVYRGljdCBiZWdpbiA0IDcgYm9wIDE1MCAtMTE2IGEgRnIoNCkyNjk2IGIoR05VKTMxIGIoSGlzdG9yeSlnCisoTGlicmFyeSlwIGVvcCBlbmQKKyUlUGFnZTogNSA5CitUZVhEaWN0IGJlZ2luIDUgOCBib3AgMTUwIC0xMTYgYSBGcihDaGFwdGVyKTMwIGIoMjopNDEKK2IoUHJvZ3JhbW1pbmcpMzAgYih3aXRoKWcoR05VKWgoSGlzdG9yeSkxNzgwIGIoNSkxNTAKKzI5OSB5IEZuKDIpODAgYihQcm9ncmFtbWluZyk1NCBiKHdpdGgpZihHTlUpaChIaXN0b3J5KTI3NQorNTI1IHkgRnIoVGhpcykzMSBiKGMpbShoYXB0ZXIpaShkZXNjcmliKXMoZXMpZihobyltKHcpZyh0byloKGluKW0KKyh0ZXJmYWNlKWgocHJvZ3JhbXMpZSh0aGF0KWgoeSltKG91KWcod3JpdGUpZyh3aXRoKWYodGhlKWcKK0ZrKGdudSlnIEZyKEhpc3RvcnkpMTUwIDYzNCB5KExpYnJhcnkpLTggYiguKTQ4IGIoSXQpMzMKK2Ioc2hvdWxkKWUoYilzKGUpaShjb25zaWRlcmVkKWYoYSloKHRlYyltKGhuaWNhbClpKGd1aWRlLik0OAorYihGKS04IGIob3IpMzQgYihpbmZvcm1hdGlvbilmKG9uKWcodGhlKWcoaW4pbSh0ZXJhY3RpdiltKGUpaSh1c2UpMTUwCis3NDQgeShvZiljIEZrKGdudSlmIEZyKEhpc3RvcnkpLTggYigsKTMxIGIoc2VlKWcoQ2hhcHRlcilmKDEpaChbVXNpbmcpZworKEhpc3RvcnkpZyhJbiltKHRlcmFjdGl2KW0oZWx5XSwpaShwYWdlKWUoMS4pMTUwIDk5NgoreSBGcCgyLjEpNjggYihJbilsKHRybyl0KGR1Y3Rpb24pNDUgYih0bylnKEhpc3RvcnkpMjc1CisxMjM5IHkgRnIoTWFuKW0oeSkyMyBiKHByb2dyYW1zKWYocmVhZCloKGlucHV0KWYoZnJvbSlnKHRoZSloKHVzZXIpZihhKQoraChsaW5lKWcoYXQpZyhhKWcodGltZS4pMzkgYihUaGUpMjMgYiBGayhnbnUpZiBGcihIaXN0b3J5KWgobGlicmFyeSlnCisoaXMpZihhYmxlKTE1MCAxMzQ4IHkodG8pMjkgYihrKW0oZWVwKWgodHJhYyltKGspZyhvZilmKHRob3NlKWcobGluZXMsKQoraChhc3NvKXMoY2lhdGUpZyhhcmJpdHJhcnkpZihkYXRhKWcod2l0aClnKGVhYyltKGgpaChsaW5lLClmKGFuZClnCisodXRpbGl6ZSloKGluZm9ybWF0aW9uKTE1MCAxNDU4IHkoZnJvbSlnKHByZXZpb3VzKWcobGluZXMpZyhpbilnKGNvbXApcworKG9zaW5nKWgobmV3KWYob25lcy4pMjc1IDE1OTEgeShUaGUpZChwcm9ncmFtbWVyKWcodXNpbmcpZyh0aGUpZworKEhpc3RvcnkpaChsaWJyYXJ5KWYoaGFzKWgoYSltKHYpLTUgYihhaWxhYmxlKTI5IGIoZnVuY3Rpb25zKWUoZm9yKWgKKyhyZW1lbSltKGIpcyhlcmluZylmKGxpbmVzKTE1MCAxNzAwIHkob24pMjEgYihhKWcoaGlzdG9yeSlmKGxpc3QsKWsKKyhhc3NvKXMoY2lhdGluZyllKGFyYml0cmFyeSllKGRhdGEpaSh3aXRoKWUoYSloKGxpbmUsKWkocmVtbyltKHZpbmcpZgorKGxpbmVzKWYoZnJvbSlmKHRoZSloKGxpc3QsKWkoc2VhcmMpbShoaW5nKTE1MCAxODEwIHkodGhyb3VnaCkzNQorYih0aGUpZyhsaXN0KWgoZm9yKWYoYSloKGxpbmUpZihjb24pbSh0YWluaW5nKWkoYW4pZShhcmJpdHJhcnkpZyh0ZXh0KWgKKyhzdHJpbmcsKWgoYW5kKWUocmVmZXJlbmNpbmcpZyhhbiltKHkpaChsaW5lKWYoaW4pMTUwCisxOTE5IHkodGhlKWMobGlzdClnKGRpcmVjdGx5KS04IGIoLik0MyBiKEluKTMwIGIoYWRkaXRpb24sKWgoYSlnCisoaGlzdG9yeSlnIEZqKGV4cGFuc2lvbilnIEZyKGZ1bmN0aW9uKWYoaXMpaChhKW0odiktNQorYihhaWxhYmxlKTMzIGIod2hpYyltKGgpZChwcm8pbSh2aWRlcyloKGZvcilnKGEpMTUwIDIwMjkKK3koY29uc2lzdGVuKW0odCloKHVzZXIpZChpbiltKHRlcmZhY2UpaihhY3Jvc3MpZihkaVwwMTNlcmVuKW0odClnCisocHJvZ3JhbXMuKTI3NSAyMTYyIHkoVGhlKWModXNlcilnKHVzaW5nKWcocHJvZ3JhbXMpaCh3cml0dGVuKWcod2l0aClnCisodGhlKWcoSGlzdG9yeSlnKGxpYnJhcnkpZyhoYXMpZih0aGUpaChiKXMoZW5lXDAxNHQpZihvZiloKGEpaAorKGNvbnNpc3RlbiltKHQpMTUwIDIyNzEgeSh1c2VyKTM4IGIoaW4pbSh0ZXJmYWNlKWood2l0aCllKGEpZyhzZXQpZyhvZikKK2godyltKGVsbC1rbm8pbSh3bilmKGNvbW1hbmRzKWcoZm9yKWcobWFuaXB1bGF0aW5nKWcodGhlKWcodGV4dCloKG9mKWYKKyhwcmV2aW91cykxNTAgMjM4MSB5KGxpbmVzKTI4IGIoYW5kKWYodXNpbmcpZyh0aGF0KWgodGV4dClnKGluKWcobmV3KWYKKyhjb21tYW5kcy4pMzkgYihUaGUpMjcgYihiYXNpYyloKGhpc3RvcnkpZyhtYW5pcHVsYXRpb24pZihjb21tYW5kcyloCisoYXJlKTE1MCAyNDkxIHkoc2ltaWxhcilqKHRvKWcodGhlKWYoaGlzdG9yeSloKHN1YnN0aXR1dGlvbilmKHBybyltCisodmlkZWQpZyhiKW0oeSlnIEZxKGNzaClwIEZyKC4pMjc1IDI2MjMgeShJZilmKHRoZSlnKHByb2dyYW1tZXIpZworKGRlc2lyZXMsKWgoaGUpZyhjYW4pZih1c2UpaCh0aGUpZihSZWFkbGluZSlpKGxpYnJhcnkpLTgKK2IoLCkzMCBiKHdoaWMpbShoKWYoaW5jbHVkZXMpZyhzb21lKWgoaGlzdG9yeSkxNTAgMjczMworeShtYW5pcHVsYXRpb24paChiKW0oeSlmKGRlZmF1bHQsKWgoYW5kKWUoaGFzKWkodGhlKWYoYWRkZWQpZyhhZHYpLTUKK2IoYW4pbSh0YWdlKTMyIGIob2YpZihjb21tYW5kKWYobGluZSlnKGVkaXRpbmcuKTI3NSAyODY2Cit5KEJlZm9yZSkzOSBiKGRlY2xhcmluZylmKGFuKW0oeSloKGZ1bmN0aW9ucyllKHVzaW5nKWgoYW4pbSh5KWcKKyhmdW5jdGlvbmFsaXQpbSh5KWkodGhlKWUoSGlzdG9yeSloKGxpYnJhcnkpZShwcm8pbSh2aWRlcyloKGluKTE1MAorMjk3NiB5KG90aGVyKTI5IGIoY28pcyhkZSwpZyhhbilnKGFwcGxpY2F0aW9uKWgod3JpdGVyKWYoc2hvdWxkKWUKKyhpbmNsdWRlKWkodGhlKWcoXDAxNGxlKWYgRnEoPHJlYWRsaW5lL2hpc3RvcnkuaD4pMjMKK2IgRnIoaW4pMjkgYihhbiltKHkpZyhcMDE0bGUpMTUwIDMwODUgeSh0aGF0KWModXNlcyllKHRoZSloKEhpc3RvcnkpaAorKGxpYnJhcnkncyllKGZlYXR1cmVzLikzOSBiKEl0KTI0IGIoc3VwcGxpZXMpZihleHRlcm4paChkZWNsYXJhdGlvbnMpaQorKGZvcilkKGFsbClpKG9mKWYodGhlKWcobGlicmFyeSdzKTE1MCAzMTk1IHkocHVibGljKTMwCitiKGZ1bmN0aW9ucylnKGFuZClmKHYpLTUgYihhcmlhYmxlcywpMzIgYihhbmQpZChkZWNsYXJlcylqKGFsbClmKG9mKWYKKyh0aGUpaChwdWJsaWMpZihkYXRhKWgoc3RydWN0dXJlcy4pMTUwIDM0NDcgeSBGcCgyLjIpNjgKK2IoSGlzdG9yeSk0NiBiKFN0b3JhZ2UpMjc1IDM2ODkgeSBGcihUaGUpMjkgYihoaXN0b3J5KWkobGlzdClnKGlzKWYoYW4pCitnKGFycmEpbSh5KWgob2YpZyhoaXN0b3J5KWYoZW4pbSh0cmllcy4pNDIgYihBKTMwIGIoaGlzdG9yeSlnKGVuKW0odHJ5KQoraChpcylmKGRlY2xhcmVkKWgoYXMpZyhmb2xsbyltKHdzOikzOTAgMzgyMiB5IEZxKHR5cGVkZWYpNDYKK2Iodm9pZClnKCpoaXN0ZGF0YV90OykzOTAgNDA0MiB5KHR5cGVkZWYpZyhzdHJ1Y3QpZyhfaGlzdF9lbnRyeSlmKHspNDg1Cis0MTUxIHkoY2hhcilpKCpsaW5lOyk0ODUgNDI2MSB5KGNoYXIpZygqdGltZXN0YW1wOyk0ODUKKzQzNzAgeShoaXN0ZGF0YV90KWUoZGF0YTspMzkwIDQ0ODAgeSh9KWkoSElTVF9FTlRSWTspMjc1Cis0NjEzIHkgRnIoVGhlKTI5IGIoaGlzdG9yeSlpKGxpc3QpZyhpdHNlbGYpZyhtaWdoKW0odClnKHRoZXJlZm9yZSlnKGIpcworKGUpZihkZWNsYXJlZClnKGFzKTM5MCA0NzQ2IHkgRnEoSElTVF9FTlRSWSk0NSBiKCoqdGhlX2hpc3RvcnlfbGlzdDspCisyNzUgNDg3OCB5IEZyKFRoZSkyOSBiKHN0YXRlKWoob2YpZih0aGUpZihIaXN0b3J5KWgobGlicmFyeSlmKGlzKWgKKyhlbmNhcHN1bGF0ZWQpZyhpbiltKHRvKWcoYSlnKHNpbmdsZSlnKHN0cnVjdHVyZTopMzkwCis1MDExIHkgRnEoLyopNDM4IDUxMjEgeSgqKTQ3IGIoQSloKHN0cnVjdHVyZSlkKHVzZWQpaSh0bylnKHBhc3MpZgorKGFyb3VuZClnKHRoZSloKGN1cnJlbnQpZihzdGF0ZSloKG9mKWcodGhlKWcoaGlzdG9yeS4pNDM4Cis1MjMwIHkoKi8pMzkwIDUzNDAgeSh0eXBlZGVmKWYoc3RydWN0KWcoX2hpc3Rfc3RhdGUpZih7KXAKK2VvcCBlbmQKKyUlUGFnZTogNiAxMAorVGVYRGljdCBiZWdpbiA2IDkgYm9wIDE1MCAtMTE2IGEgRnIoNikyNjk2IGIoR05VKTMxIGIoSGlzdG9yeSlnCisoTGlicmFyeSk0ODUgMjk5IHkgRnEoSElTVF9FTlRSWSk0NSBiKCoqZW50cmllczspZygvKilqKFBvaW50ZXIpZCh0bylqCisodGhlKWYoZW50cmllcyllKHRoZW1zZWx2ZXMuKWcoKi8pNDg1IDQwOCB5KGludClpKG9mZnNldDspNTIzCitiKC8qKTQ4IGIoVGhlKWYobG9jYXRpb24pZShwb2ludGVyKWgod2l0aGluKWcodGhpcyloKGFycmF5LilmKCovKTQ4NQorNTE4IHkoaW50KWgobGVuZ3RoOyk1MjMgYigvKik0OCBiKE51bWJlcillKG9mKWgoZWxlbWVudHMpZSh3aXRoaW4paQorKHRoaXMpZihhcnJheS4pZygqLyk0ODUgNjI4IHkoaW50KWgoc2l6ZTspNjE5IGIoLyopNDgKK2IoTnVtYmVyKWUob2YpaChzbG90cylmKGFsbG9jYXRlZClnKHRvKWgodGhpcylmKGFycmF5LilnKCovKTQ4NQorNzM3IHkoaW50KWgoZmxhZ3M7KTM5MCA4NDcgeSh9KWcoSElTVE9SWV9TVEFURTspMjc1IDk4NQoreSBGcihJZikyOSBiKHRoZSlpKFwwMTVhZ3MpZyhtZW0pbShiKXMoZXIpZShpbmNsdWRlcyloCitGcShIU19TVElGTEVEKXAgRnIoLCllKHRoZSlqKGhpc3RvcnkpZihoYXMpZyhiKXMoZWVuKWcoc3RpXDAxNWVkLikxNTAKKzEyNTIgeSBGcCgyLjMpNjggYihIaXN0b3J5KTQ2IGIoRiktMTEgYih1bmN0aW9ucykyNzUKKzE1MDAgeSBGcihUaGlzKTIzIGIoc2VjdGlvbilqKGRlc2NyaWIpcyhlcyllKHRoZSloKGNhbGxpbmcpaChzZXF1ZW5jZSlmCisoZm9yKWYodGhlKWgodiktNSBiKGFyaW91cykyNSBiKGZ1bmN0aW9ucylmKGV4cClzKG9ydGVkKWcoYiltKHkpZyh0aGUpaAorRmsoZ251KTE1MCAxNjEwIHkgRnIoSGlzdG9yeSkzMSBiKGxpYnJhcnkpLTggYiguKTE1MAorMTg0MiB5IEZpKDIuMy4xKTYzIGIoSW5pdGlhbGl6aW5nKTQwIGIoSGlzdG9yeSlpKGFuZClmKFN0YXRlKWYKKyhNYW5hZ2VtZW4pbSh0KTI3NSAyMDkwIHkgRnIoVGhpcykzMyBiKHNlY3Rpb24paihkZXNjcmliKXMoZXMpZQorKGZ1bmN0aW9ucylnKHVzZWQpZyh0byloKGluaXRpYWxpemUpaShhbmQpZChtYW5hZ2UpaCh0aGUpZyhzdGF0ZSloKG9mKWYKKyh0aGUpZihIaXN0b3J5KTE1MCAyMjAwIHkobGlicmFyeSljKHdoZW4pZih5KW0ob3UpaSh3KW0oYW4pbSh0KWcodG8pZworKHVzZSlmKHRoZSloKGhpc3RvcnkpZihmdW5jdGlvbnMpZyhpbilnKHkpbShvdXIpaChwcm9ncmFtLikzMzUwCisyMzkyIHkoW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKHZvaWQpMzkgYiBGZih1c2luZylwCis2NjcgMjM5MiAzNSA1IHYgNTAgdyhoaXN0b3J5KTQ2IGIgRmUoXCgpcCBGcSh2b2lkKXAgRmUoXCkpMzkwCisyNTAxIHkgRnIoQmVnaW4pNDEgYihhKWYoc2Vzc2lvbilnKGluKWcod2hpYyltKGgpZih0aGUpaChoaXN0b3J5KWcKKyhmdW5jdGlvbnMpZihtaWdoKW0odClpKGIpcyhlKWUodXNlZC4pNjkgYihUaGlzKTM5IGIoaW5pdGlhbGl6ZXMpaih0aGUpCiszOTAgMjYxMSB5KGluKW0odGVyYWN0aXYpbShlKTMzIGIodiktNSBiKGFyaWFibGVzLikzMzUwCisyODAzIHkoW0YpZCh1bmN0aW9uXSktMzU5OSBiIEZnKEhJU1RPUllfU1RBVEUpNDIgYigqKWQKK0ZmKGhpc3RvcnkpcCAxMzE3IDI4MDMgViA1MCB3KGdldClwIDE1MjIgMjgwMyBWIDUwIHcoaGlzdG9yeSlwCisxOTIyIDI4MDMgViA1MSB3KHN0YXRlKWsgRmUoXCgpcCBGcSh2b2lkKXAgRmUoXCkpMzkwCisyOTEzIHkgRnIoUmV0dXJuKTMwIGIoYSlnKHN0cnVjdHVyZSlnKGRlc2NyaWJpbmcpZyh0aGUpaChjdXJyZW4pbSh0KWYKKyhzdGF0ZSlpKG9mKWUodGhlKWgoaW5wdXQpZShoaXN0b3J5KS04IGIoLikzMzUwIDMxMDUKK3koW0YpZyh1bmN0aW9uXSktMzU5OSBiIEZnKHZvaWQpMzkgYiBGZihoaXN0b3J5KXAgNzU1CiszMTA1IFYgNTEgdyhzZXQpcCA5NDkgMzEwNSBWIDUwIHcoaGlzdG9yeSlwIDEzNDkgMzEwNQorViA1MCB3KHN0YXRlKTQ0IGIgRmUoXCgpcCBGcShISVNUT1JZX1NUQVRFKTI3IGIoKnN0YXRlKXAKK0ZlKFwpKTM5MCAzMjE1IHkgRnIoU2V0KWsodGhlKWYoc3RhdGUpaShvZillKHRoZSloKGhpc3RvcnkpZihsaXN0KWgKKyhhY2NvcmRpbmcpaCh0bylmIEZqKHN0YXRlKXAgRnIoLikxNTAgMzQ0NyB5IEZpKDIuMy4yKTYzCitiKEhpc3RvcnkpNDEgYihMaXN0KWcoTWFuYWdlbWVuKW0odCkyNzUgMzY5NSB5IEZyKFRoZXNlKTIxCitiKGZ1bmN0aW9ucylnKG1hbmFnZSloKGluZGl2aWR1YWwpZihlbiltKHRyaWVzKWgob24pZyh0aGUpZihoaXN0b3J5KWgKKyhsaXN0LClpKG9yKWQoc2V0KWgocGFyYW1ldGVycylnKG1hbmFnaW5nKTE1MCAzODA0IHkodGhlKTMxCitiKGxpc3QpZyhpdHNlbGYuKTMzNTAgMzk5NiB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkgYgorRmcodm9pZCkzOSBiIEZmKGFkZClwIDU4OSAzOTk2IFYgNTAgdyhoaXN0b3J5KTQ1IGIgRmUoXCgpcAorRnEoY29uc3QpMzAgYihjaGFyKWYoKnN0cmluZylwIEZlKFwpKTM5MCA0MTA2IHkgRnIoUGxhY2UpaQorRmooc3RyaW5nKTM4IGIgRnIoYXQpMzEgYih0aGUpZihlbmQpZihvZiloKHRoZSlnKGhpc3RvcnkpZyhsaXN0Lik0MgorYihUaGUpMjkgYihhc3NvKXMoY2lhdGVkKWkoZGF0YSlnKFwwMTRlbGQpZihcKGlmKWcoYW4pbSh5XCkpaChpcylmKHNldCkKK2codG8pMzkwIDQyMTYgeSBGcShOVUxMKXAgRnIoLikzMzUwIDQ0MDggeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5CitiIEZnKHZvaWQpMzkgYiBGZihhZGQpcCA1ODkgNDQwOCBWIDUwIHcoaGlzdG9yeSlwIDk4OQorNDQwOCBWIDUwIHcodGltZSk0NSBiIEZlKFwoKXAgRnEoY29uc3QpMjkgYihjaGFyKWgoKnN0cmluZylwCitGZShcKSkzOTAgNDUxNyB5IEZyKENoYW5nZSlnKHRoZSloKHRpbWUpZyhzdGFtcClmKGFzc28pcyhjaWF0ZWQpaSh3aXRoKQorZSh0aGUpaChtb3N0KWYocmVjZW4pbSh0KWkoaGlzdG9yeSllKGVuKW0odHJ5KWgodG8pZworRmooc3RyaW5nKXAgRnIoLikzMzUwIDQ3MDkgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIKK0ZnKEhJU1RfRU5UUlkpNDEgYigqKWUgRmYocmVtbyltKHYpbShlKXAgMTE2OSA0NzA5IFYKKzUwIHcoaGlzdG9yeSk0NiBiIEZlKFwoKXAgRnEoaW50KTMwIGIod2hpY2gpcCBGZShcKSkzOTAKKzQ4MTkgeSBGcihSZW1vKW0odiltKGUpNDcgYihoaXN0b3J5KWYoZW4pbSh0cnkpZihhdClpKG9cMDEzc2V0KWYKK0ZqKHdoaWMpbShoKWYgRnIoZnJvbSlnKHRoZSloKGhpc3RvcnkpLTggYiguKTg2IGIoVGhlKTQ1CitiKHJlbW8pbSh2KW0oZWQpaShlbGVtZW4pbSh0KWcoaXMpMzkwIDQ5MjkgeShyZXR1cm5lZCkyOQorYihzbylpKHkpbShvdSlnKGNhbilmKGZyZWUpaCh0aGUpZihsaW5lLCloKGRhdGEsKWgoYW5kKWQoY29uKW0odGFpbmluZykKK2ooc3RydWN0dXJlLikzMzUwIDUxMjEgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcoaGlzdGRhdGFfdCk0MQorYiBGZihmcmVlKXAgOTA3IDUxMjEgViA1MCB3KGhpc3RvcnkpcCAxMzA3IDUxMjEgViA1MAordyhlbiltKHRyeSlrIEZlKFwoKXAgRnEoSElTVF9FTlRSWSkyOCBiKCpoaXN0ZW50KXAgRmUoXCkpMzkwCis1MjMwIHkgRnIoRiktOCBiKHJlZSkyOSBiKHRoZSlmKGhpc3RvcnkpZyhlbiltKHRyeSlnCitGaihoaXN0ZW4pbSh0KWogRnIoYW5kKWMoYW4pbSh5KWkoaGlzdG9yeSllKGxpYnJhcnkpaChwcml2KS01CitiKGF0ZSkyOCBiKGRhdGEpaChhc3NvKXMoY2lhdGVkKWcod2l0aClmKGl0LikzOTAgNTM0MAoreShSZXR1cm5zKWgodGhlKWkoYXBwbGljYXRpb24tc3ApcyhlY2lcMDE0YyloKGRhdGEpZihzbylnKHRoZSlmKGNhbGxlcikKK2koY2FuKWUoZGlzcClzKG9zZSlnKG9mKWgoaXQuKXAgZW9wIGVuZAorJSVQYWdlOiA3IDExCitUZVhEaWN0IGJlZ2luIDcgMTAgYm9wIDE1MCAtMTE2IGEgRnIoQ2hhcHRlcikzMCBiKDI6KTQxCitiKFByb2dyYW1taW5nKTMwIGIod2l0aClnKEdOVSloKEhpc3RvcnkpMTc4MCBiKDcpMzM1MAorMjk5IHkoW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKEhJU1RfRU5UUlkpNDEgYigqKWUKK0ZmKHJlcGxhY2UpcCAxMTY2IDI5OSAzNSA1IHYgNDggdyhoaXN0b3J5KXAgMTU2NCAyOTkKK1YgNTEgdyhlbiltKHRyeSk0NSBiIEZlKFwoKXAgRnEoaW50KTI5IGIod2hpY2gsKWcoY29uc3QpZyhjaGFyKTU2NQorNDA4IHkoKmxpbmUsKWcoaGlzdGRhdGFfdCllKGRhdGEpcCBGZShcKSkzOTAgNTE4IHkgRnIoTWFrKW0oZSlpKHRoZSlmCisoaGlzdG9yeSlmKGVuKW0odHJ5KWgoYXQpaChvXDAxM3NldClmIEZqKHdoaWMpbShoKWcgRnIoaGEpbSh2KW0oZSlnCitGaihsaW5lKTMzIGIgRnIoYW5kKTI3IGIgRmooZGF0YSlwIEZyKC4pNDEgYihUaGlzKTI3CitiKHJldHVybnMpZih0aGUpaShvbGQpZyhlbiltKHRyeSkzOTAgNjI4IHkoc28pMzcgYih0aGUpaChjYWxsZXIpZyhjYW4pZgorKGRpc3Apcyhvc2UpZyhvZilnKGFuKW0oeSlnKGFwcGxpY2F0aW9uLXNwKXMoZWNpXDAxNGMpaShkYXRhLik2MQorYihJbikzNyBiKHRoZSlnKGNhc2UpaChvZilmKGFuKWcoaW4pbSh2KS01IGIoYWxpZCkzOTAKKzczNyB5IEZqKHdoaWMpbShoKXAgRnIoLCkzMCBiKGEpaCBGcShOVUxMKWUgRnIocClzKG9pbiltKHRlcilpKGlzKWYKKyhyZXR1cm5lZC4pMzM1MCA5NTcgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcodm9pZCkzOQorYiBGZihjbGVhcilwIDY0NCA5NTcgViA1MCB3KGhpc3RvcnkpNDYgYiBGZShcKClwIEZxKHZvaWQpcAorRmUoXCkpMzkwIDEwNjcgeSBGcihDbGVhcikzMSBiKHRoZSlmKGhpc3RvcnkpaChsaXN0KWcoYiltKHkpZihkZWxldGluZykKK2goYWxsKWgodGhlKWUoZW4pbSh0cmllcy4pMzM1MCAxMjg3IHkoW0YpLTggYih1bmN0aW9uXSktMzU5OQorYiBGZyh2b2lkKTM5IGIgRmYoc3RpXDAxNWUpcCA2NDQgMTI4NyBWIDUwIHcoaGlzdG9yeSk0NQorYiBGZShcKClwIEZxKGludCkzMCBiKG1heClwIEZlKFwpKTM5MCAxMzk2IHkgRnIoU3RpXDAxNWUpZyh0aGUpaAorKGhpc3RvcnkpZihsaXN0LCloKHJlbWVtKW0oYilzKGVyaW5nKWYob25seSloKHRoZSlmKGxhc3QpaQorRmoobWF4KWsgRnIoZW4pbSh0cmllcy4pMzM1MCAxNjE2IHkoW0YpLTggYih1bmN0aW9uXSktMzU5OQorYiBGZyhpbnQpMzkgYiBGZih1bnN0aVwwMTVlKXAgNzIwIDE2MTYgViA0OSB3KGhpc3RvcnkpNDUKK2IgRmUoXCgpcCBGcSh2b2lkKXAgRmUoXCkpMzkwIDE3MjYgeSBGcihTdG9wKTI3IGIoc3RpXDAxNWluZyloKHRoZSlmCisoaGlzdG9yeSktOCBiKC4pNDAgYihUaGlzKTI3IGIocmV0dXJucylmKHRoZSloKHByZXZpb3VzbHktc2V0KWgobWF4aW0pbQorKHVtKWYobiltKHVtKW0oYilzKGVyKWYob2YpaShoaXN0b3J5KTM5MCAxODM2IHkoZW4pbSh0cmllcylnKFwoYXMpZgorKHNldClnKGIpbSh5KWcgRnEoc3RpZmxlX2hpc3RvcnlcKFwpKXAgRnIoXCkuKTM1IGIoVGhlKTI3CitiKHYpLTUgYihhbHVlKTI3IGIoaXMpZyhwKXMob3NpdGl2KW0oZSlnKGlmKWcodGhlKWcoaGlzdG9yeSlnKHcpbShhcylnCisoc3RpXDAxNWVkLCkzOTAgMTk0NSB5KG5lZ2F0aXYpbShlKTMzIGIoaWYpZChpdCloKHcpbShhc24ndC4pMzM1MAorMjE2NSB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkgYiBGZyhpbnQpMzkgYiBGZihoaXN0b3J5KXAKKzcwMyAyMTY1IFYgNTEgdyhpcylwIDgzMSAyMTY1IFYgNTAgdyhzdGlcMDE1ZWQpNDQgYiBGZShcKClwCitGcSh2b2lkKXAgRmUoXCkpMzkwIDIyNzUgeSBGcihSZXR1cm5zKTI5IGIobm9uLXplcm8paShpZilnKHRoZSlmCisoaGlzdG9yeSloKGlzKWYoc3RpXDAxNWVkLClnKHplcm8paShpZillKGl0KWgoaXMpZihub3QuKTE1MAorMjUzNSB5IEZpKDIuMy4zKTYzIGIoSW5mb3JtYXRpb24pNDIgYihBYilzKG91dClmKHRoZSlnKEhpc3RvcnkpZyhMaXN0KQorMjc1IDI3OTcgeSBGcihUaGVzZSkyNSBiKGZ1bmN0aW9ucylnKHJldHVybilnKGluZm9ybWF0aW9uKWgoYWIpcyhvdXQpZgorKHRoZSloKGVuKW0odGlyZSlnKGhpc3RvcnkpZyhsaXN0KWcob3IpZyhpbmRpdmlkdWFsKWYobGlzdCloKGVuKW0KKyh0cmllcy4pMzM1MCAzMDE3IHkoW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKEhJU1RfRU5UUlkpNDEKK2IoKiopZSBGZihoaXN0b3J5KXAgMTIxMiAzMDE3IFYgNTEgdyhsaXN0KTQ0IGIgRmUoXCgpcAorRnEodm9pZClwIEZlKFwpKTM5MCAzMTI2IHkgRnIoUmV0dXJuKTMwIGIoYSloIEZxKE5VTEwpZQorRnIodGVybWluYXRlZClpKGFycmEpbSh5KWcob2YpZiBGcShISVNUX0VOVFJZKWUoKilpIEZyKHdoaWMpbShoKWcoaXMpaAorKHRoZSlnKGN1cnJlbiltKHQpZihpbnB1dClmKGhpc3RvcnkpLTggYiguKTM5MCAzMjM2IHkoRWxlbWVuKW0odCkzMQorYigwKWcob2YpZyh0aGlzKWYobGlzdCloKGlzKWYodGhlKWgoYilzKGVnaW5uaW5nKWYob2YpZyh0aW1lLik0MgorYihJZikyOSBiKHRoZXJlKWkoaXMpZihubyloKGhpc3RvcnkpLTggYigsKTMxIGIocmV0dXJuKWUKK0ZxKE5VTEwpcCBGciguKTMzNTAgMzQ1NiB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkgYiBGZyhpbnQpMzkKK2IgRmYod2hlcmUpcCA2NTMgMzQ1NiBWIDQ5IHcoaGlzdG9yeSk0NiBiIEZlKFwoKXAgRnEodm9pZClwCitGZShcKSkzOTAgMzU2NSB5IEZyKFJldHVybnMpMjkgYih0aGUpaShvXDAxM3NldClnKG9mKWcodGhlKWcoY3VycmVuKW0KKyh0KWYoaGlzdG9yeSlnKGVsZW1lbiltKHQuKTMzNTAgMzc4NiB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkKK2IgRmcoSElTVF9FTlRSWSk0MSBiKCopZSBGZihjdXJyZW4pbSh0KXAgMTE3OCAzNzg2IFYKKzQ5IHcoaGlzdG9yeSk0NSBiIEZlKFwoKXAgRnEodm9pZClwIEZlKFwpKTM5MCAzODk1IHkKK0ZyKFJldHVybikyNCBiKHRoZSloKGhpc3RvcnkpZyhlbiltKHRyeSlnKGF0KWgodGhlKWYoY3VycmVuKW0odClmKHApcworKG9zaXRpb24sKWooYXMpZShkZXRlcm1pbmVkKWYoYiltKHkpaCBGcSh3aGVyZV9oaXN0b3J5XChcKSlwCitGciguKTM5MCA0MDA1IHkoSWYpMzAgYih0aGVyZSlnKGlzKWgobm8pZihlbiltKHRyeSloKHRoZXJlLClnKHJldHVybillCisoYSlpIEZxKE5VTEwpZSBGcihwKXMob2luKW0odGVyLikzMzUwIDQyMjUgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5CitiIEZnKEhJU1RfRU5UUlkpNDEgYigqKWUgRmYoaGlzdG9yeSlwIDExNjAgNDIyNSBWIDUwCit3KGdldCk0NSBiIEZlKFwoKXAgRnEoaW50KTMwIGIob2Zmc2V0KXAgRmUoXCkpMzkwIDQzMzQKK3kgRnIoUmV0dXJuKTQxIGIodGhlKWcoaGlzdG9yeSloKGVuKW0odHJ5KWcoYXQpZyhwKXMob3NpdGlvbilnCitGaihvXDAxM3NldClwIEZyKCwpaihzdGFydGluZyllKGZyb20pZSBGcShoaXN0b3J5X2Jhc2UpZAorRnIoXChzZWUpayhTZWMtKTM5MCA0NDQ0IHkodGlvbikzMCBiKDIuNClnKFtIaXN0b3J5KWgoViktOAorYihhcmlhYmxlc10sKTMxIGIocGFnZSlmKDEwXCkuKTQyIGIoSWYpMjggYih0aGVyZSlpKGlzKWYobm8paChlbiltKHRyeSkKK2YodGhlcmUsKWgob3IpZyhpZilmIEZqKG9cMDEzc2V0KWogRnIoaXMpZShncmVhdGVyKTM5MAorNDU1MyB5KHRoYW4pZyh0aGUpaChoaXN0b3J5KWYobGVuZ3RoLCloKHJldHVybillKGEpaQorRnEoTlVMTCllIEZyKHApcyhvaW4pbSh0ZXIuKTMzNTAgNDc3NCB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkKK2IgRmcodGltZV90KTQwIGIgRmYoaGlzdG9yeSlwIDg2MCA0Nzc0IFYgNTEgdyhnZXQpcCAxMDY2Cis0Nzc0IFYgNDkgdyh0aW1lKTQ1IGIgRmUoXCgpcCBGcShISVNUX0VOVFJZKTI4IGIoKmVudHJ5KXAKK0ZlKFwpKTM5MCA0ODgzIHkgRnIoUmV0dXJuKWkodGhlKWcodGltZSloKHN0YW1wKWYoYXNzbylzKGNpYXRlZClpKHdpdGgpCitlKHRoZSloKGhpc3RvcnkpZihlbiltKHRyeSloIEZqKGVuKW0odHJ5KXAgRnIoLikzMzUwCis1MTAzIHkoW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKGludCkzOSBiIEZmKGhpc3RvcnkpcAorNzAzIDUxMDMgViA1MSB3KHRvdGFsKXAgOTg5IDUxMDMgViA0OSB3KGIpbSh5dGVzKTQ1IGIKK0ZlKFwoKXAgRnEodm9pZClwIEZlKFwpKTM5MCA1MjEzIHkgRnIoUmV0dXJuKTI3IGIodGhlKWgobiltKHVtKW0oYilzCisoZXIpZShvZilpKGIpbSh5dGVzKWcodGhhdClnKHRoZSlnKHByaW1hcnkpZShoaXN0b3J5KWkoZW4pbSh0cmllcylnCisoYXJlKWcodXNpbmcuKTM5IGIoVGhpcykyNyBiKGZ1bmN0aW9uKTM5MCA1MzIyIHkocmV0dXJucylpKHRoZSlpKHN1bSllCisob2YpaSh0aGUpZihsZW5ndGhzKWgob2YpZihhbGwpaSh0aGUpZShsaW5lcyloKGluKWYodGhlKWcoaGlzdG9yeSktOAorYiguKXAgZW9wIGVuZAorJSVQYWdlOiA4IDEyCitUZVhEaWN0IGJlZ2luIDggMTEgYm9wIDE1MCAtMTE2IGEgRnIoOCkyNjk2IGIoR05VKTMxCitiKEhpc3RvcnkpZyhMaWJyYXJ5KTE1MCAyOTkgeSBGaSgyLjMuNCk2MyBiKE1vKW0odmluZyk0MQorYihBcm91bmQpaCh0aGUpZihIaXN0b3J5KWcoTGlzdCkyNzUgNTQ0IHkgRnIoVGhlc2UpMzAKK2IoZnVuY3Rpb25zKWcoYWxsbyltKHcpaCh0aGUpZyhjdXJyZW4pbSh0KWYoaW5kZXgpZyhpbiltKHRvKWgodGhlKWcKKyhoaXN0b3J5KWYobGlzdCloKHRvKWcoYilzKGUpZihzZXQpaChvcilmKGMpbShoYW5nZWQuKTMzNTAKKzczMCB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkgYiBGZyhpbnQpMzkgYiBGZihoaXN0b3J5KXAKKzcwMyA3MzAgMzUgNSB2IDUxIHcoc2V0KXAgODk3IDczMCBWIDQ5IHcocClzKG9zKTQ2IGIKK0ZlKFwoKXAgRnEoaW50KTMwIGIocG9zKXAgRmUoXCkpMzkwIDgzOSB5IEZyKFNldCkzNyBiKHRoZSlnKGN1cnJlbiltKHQpCitmKGhpc3RvcnkpZyhvXDAxM3NldClpKHRvKWYgRmoocClzKG9zKXAgRnIoLCloKGFuKWYoYWJzb2x1dGUpZyhpbmRleClmCisoaW4pbSh0bylpKHRoZSllKGxpc3QuKTYwIGIoUmV0dXJucykzNiBiKDEpaChvbikzOTAgOTQ5Cit5KHN1Y2Nlc3MsKTMxIGIoMClnKGlmKWYgRmoocClzKG9zKWogRnIoaXMpZShsZXNzKWYodGhhbiloKHplcm8pZyhvcilmCisoZ3JlYXRlcilpKHRoYW4pZSh0aGUpZyhuKW0odW0pbShiKXMoZXIpZihvZilpKGhpc3RvcnkpZihlbiltKHRyaWVzLikKKzMzNTAgMTEzNSB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkgYiBGZyhISVNUX0VOVFJZKTQxCitiKCopZSBGZihwcmV2aW91cylwIDEyMzIgMTEzNSBWIDUwIHcoaGlzdG9yeSk0NiBiIEZlKFwoKXAKK0ZxKHZvaWQpcCBGZShcKSkzOTAgMTI0NCB5IEZyKEJhYyltKGspMzAgYih1cCllKHRoZSloKGN1cnJlbiltKHQpZworKGhpc3RvcnkpZihvXDAxM3NldClpKHRvKWcodGhlKWYocHJldmlvdXMpZihoaXN0b3J5KWgoZW4pbSh0cnkpLTgKK2IoLCkzMCBiKGFuZCllKHJldHVybilnKGEpaChwKXMob2luKW0odGVyKTM5MCAxMzU0IHkodG8paSh0aGF0KWcoZW4pbQorKHRyeSktOCBiKC4pNDEgYihJZikzMCBiKHRoZXJlKWgoaXMpZihubyloKHByZXZpb3VzKWYoZW4pbSh0cnkpLTgKK2IoLCkzMSBiKHJldHVybillKGEpaSBGcShOVUxMKWUgRnIocClzKG9pbiltKHRlci4pMzM1MAorMTU0MCB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkgYiBGZyhISVNUX0VOVFJZKTQxIGIoKillCitGZihuZXh0KXAgMTAzMiAxNTQwIFYgNDkgdyhoaXN0b3J5KTQ2IGIgRmUoXCgpcCBGcSh2b2lkKXAKK0ZlKFwpKTM5MCAxNjQ5IHkgRnIoTW8pbSh2KW0oZSkzOCBiKHRoZSlkKGN1cnJlbiltKHQpaChoaXN0b3J5KWYKKyhvXDAxM3NldClpKGZvcncpbShhcmQpZSh0byloKHRoZSlnKG5leHQpZihoaXN0b3J5KWgoZW4pbSh0cnkpLTgKK2IoLCkzNyBiKGFuZCllKHJldHVybilnKHRoZSloKGEpMzkwIDE3NTkgeShwKXMob2luKW0odGVyKTMwCitiKHRvKWgodGhhdClnKGVuKW0odHJ5KS04IGIoLik0MiBiKElmKTMwIGIodGhlcmUpZyhpcyloKG5vKWYobmV4dCloKGVuKQorbSh0cnkpLTggYigsKTMxIGIocmV0dXJuKWUoYSlpIEZxKE5VTEwpZSBGcihwKXMob2luKW0odGVyLikxNTAKKzE5ODUgeSBGaSgyLjMuNSk2MyBiKFNlYXJjKW0oaGluZyk0MCBiKHRoZSloKEhpc3RvcnkpaChMaXN0KTI3NQorMjIzMCB5IEZyKFRoZXNlKTI2IGIoZnVuY3Rpb25zKWcoYWxsbyltKHcpaShzZWFyYyltKGhpbmcpZyhvZilmKHRoZSlnCisoaGlzdG9yeSlmKGxpc3QpaShmb3IpZShlbiltKHRyaWVzKWkoY29uKW0odGFpbmluZylnKGEpZihzcClzKGVjaVwwMTRjKQorZyhzdHJpbmcuKTE1MCAyMzM5IHkoU2VhcmMpbShoaW5nKWgobWEpbSh5KWcoYilzKGUpZihwKXMoZXJmb3JtZWQpZihiKXMKKyhvdGgpaChmb3J3KW0oYXJkKWYoYW5kKWgoYmFjKW0oa3cpbShhcmQpaChmcm9tKWYodGhlKWgoY3VycmVuKW0odClmCisoaGlzdG9yeSloKHApcyhvc2l0aW9uLikxNTAgMjQ0OSB5KFRoZSlqKHNlYXJjKW0oaCloKG1hKW0oeSlnKGIpcyhlKWUKK0ZqKGFuYyltKGhvcmVkKXAgRnIoLClpKG1lYW5pbmcpZyh0aGF0KWcodGhlKWYoc3RyaW5nKWgobSltKHVzdClmKG1hdGMpCittKGgpaChhdClnKHRoZSlnKGIpcyhlZ2lubmluZyllKG9mKWkodGhlKTE1MCAyNTU4IHkoaGlzdG9yeSllKGVuKW0odHJ5KQorLTggYiguKTMzNTAgMjc0NCB5KFtGKWcodW5jdGlvbl0pLTM1OTkgYiBGZyhpbnQpMzkgYgorRmYoaGlzdG9yeSlwIDcwMyAyNzQ0IFYgNTEgdyhzZWFyYyltKGgpNDQgYiBGZShcKClwIEZxKGNvbnN0KTI5CitiKGNoYXIpaCgqc3RyaW5nLCllKGludCloKGRpcmVjdGlvbilwIEZlKFwpKTM5MCAyODU0Cit5IEZyKFNlYXJjKW0oaClnKHRoZSlnKGhpc3RvcnkpZyhmb3IpZyBGaihzdHJpbmcpcCBGcigsKWcoc3RhcnRpbmcpaAorKGF0KWYodGhlKWcoY3VycmVuKW0odClnKGhpc3RvcnkpZyhvXDAxM3NldC4pNDEgYihJZikyOAorYiBGaihkaXJlY3Rpb24paSBGcihpcylmKGxlc3MpMzkwIDI5NjMgeSh0aGFuKTQwIGIoMCwpaih0aGVuKWModGhlKWgKKyhzZWFyYyltKGgpaChpcylmKHRocm91Z2gpZihwcmV2aW91cyloKGVuKW0odHJpZXMsKWoob3RoZXJ3aXNlKWQKKyh0aHJvdWdoKWcoc3Vic2VxdWVuKW0odCkzOTAgMzA3MyB5KGVuKW0odHJpZXMuKWkoSWYpMzAKK2IgRmooc3RyaW5nKTM4IGIgRnIoaXMpMzAgYihmb3VuZCwpZyh0aGVuKWcodGhlKWcoY3VycmVuKW0odCloKGhpc3RvcnkpCitmKGluZGV4KWcoaXMpZyhzZXQpaCh0byloKHRoYXQpZihoaXN0b3J5KWYoZW4pbSh0cnkpLTgKK2IoLCkzOTAgMzE4MyB5KGFuZCkzMyBiKHRoZSlnKHYpLTUgYihhbHVlKTM0IGIocmV0dXJuZWQpZShpcylpKHRoZSlnCisob1wwMTNzZXQpZyhpbilmKHRoZSloKGxpbmUpZihvZiloKHRoZSlnKGVuKW0odHJ5KWYod2hlcmUpZworRmooc3RyaW5nKTQxIGIgRnIodyltKGFzKTM0IGIoZm91bmQuKTM5MCAzMjkyIHkoT3RoZXJ3aXNlLCljKG5vdGhpbmcpaAorKGlzKWYoYyltKGhhbmdlZCwpaChhbmQpZihhKWgoLTEpZyhpcylmKHJldHVybmVkLikzMzUwCiszNDc4IHkoW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKGludCkzOSBiIEZmKGhpc3RvcnkpcAorNzAzIDM0NzggViA1MSB3KHNlYXJjKW0oaClwIDEwNjcgMzQ3OCBWIDQ5IHcocHJlXDAxNHgpNDUKK2IgRmUoXCgpcCBGcShjb25zdCkyOSBiKGNoYXIpZygqc3RyaW5nLClnKGludClnKGRpcmVjdGlvbilwCitGZShcKSkzOTAgMzU4OCB5IEZyKFNlYXJjKW0oaCk0MSBiKHRoZSlnKGhpc3RvcnkpZihmb3IpZworRmooc3RyaW5nKXAgRnIoLClrKHN0YXJ0aW5nKWQoYXQpZyh0aGUpZyhjdXJyZW4pbSh0KWYoaGlzdG9yeSloCisob1wwMTNzZXQuKTcyIGIoVGhlKTQwIGIoc2VhcmMpbShoKWgoaXMpMzkwIDM2OTcgeShhbmMpbShob3JlZDopZihtYXRjKQorbShoaW5nKTMxIGIobGluZXMpZihtKW0odXN0KWYoYilzKGVnaW4pZyh3aXRoKWcgRmooc3RyaW5nKXAKK0ZyKC4pNDAgYihJZikyOSBiIEZqKGRpcmVjdGlvbiloIEZyKGlzKWcobGVzcylmKHRoYW4pZygwLClpKHRoZW4pZSh0aGUpCiszOTAgMzgwNyB5KHNlYXJjKW0oaClqKGlzKWYodGhyb3VnaClnKHByZXZpb3VzKWcoZW4pbSh0cmllcywpaAorKG90aGVyd2lzZSlnKHRocm91Z2gpZShzdWJzZXF1ZW4pbSh0KWgoZW4pbSh0cmllcy4pNDQKK2IoSWYpMzEgYiBGaihzdHJpbmcpMzkgYiBGcihpcykzOTAgMzkxNiB5KGZvdW5kLCkzMyBiKHRoZW4pZih0aGUpaAorKGN1cnJlbiltKHQpZyhoaXN0b3J5KWcoaW5kZXgpZyhpcylnKHNldClnKHRvKWgodGhhdClnKGVuKW0odHJ5KS04CitiKCwpMzQgYihhbmQpZih0aGUpZyhyZXR1cm4pZih2KS01IGIoYWx1ZSkzMyBiKGlzKWcoMC4pMzkwCis0MDI2IHkoT3RoZXJ3aXNlLClkKG5vdGhpbmcpaChpcylmKGMpbShoYW5nZWQsKWgoYW5kKWYoYSloKC0xKWcoaXMpZgorKHJldHVybmVkLikzMzUwIDQyMTIgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcoaW50KTM5CitiIEZmKGhpc3RvcnkpcCA3MDMgNDIxMiBWIDUxIHcoc2VhcmMpbShoKXAgMTA2NyA0MjEyCitWIDQ5IHcocClzKG9zKTQ2IGIgRmUoXCgpcCBGcShjb25zdCkyOSBiKGNoYXIpZygqc3RyaW5nLClmKGludClpCisoZGlyZWN0aW9uLClkKGludCk1NjUgNDMyMSB5KHBvcylwIEZlKFwpKTM5MCA0NDMxIHkgRnIoU2VhcmMpbShoKTM0CitiKGZvcilnIEZqKHN0cmluZyk0MiBiIEZyKGluKTM0IGIodGhlKWgoaGlzdG9yeSlmKGxpc3QsKWkoc3RhcnRpbmcpZgorKGF0KWcgRmoocClzKG9zKXAgRnIoLClnKGFuKWYoYWJzb2x1dGUpaChpbmRleCllKGluKW0odG8paih0aGUpZShsaXN0LikKKzM5MCA0NTQxIHkoSWYpaSBGaihkaXJlY3Rpb24pZyBGcihpcylnKG5lZ2F0aXYpbShlLClrKHRoZSljKHNlYXJjKW0oaCloCisocHJvKXMoY2VlZHMpZihiYWMpbShrdyltKGFyZClnKGZyb20pZyBGaihwKXMob3MpcCBGcigsKWgob3RoZXJ3aXNlKWYKKyhmb3J3KW0oYXJkLikzOTAgNDY1MCB5KFJldHVybnMpNDMgYih0aGUpaChhYnNvbHV0ZSloKGluZGV4KWYob2YpZyh0aGUpCitnKGhpc3RvcnkpZyhlbGVtZW4pbSh0KWgod2hlcmUpZiBGaihzdHJpbmcpNTIgYiBGcih3KW0oYXMpNDQKK2IoZm91bmQsKWkob3IpZSgtMSkzOTAgNDc2MCB5KG90aGVyd2lzZS4pMTUwIDQ5ODYgeSBGaSgyLjMuNik2MworYihNYW5hZ2luZyk0MSBiKHRoZSlnKEhpc3RvcnkpaChGaWxlKTI3NSA1MjMwIHkgRnIoVGhlKTMxCitiKEhpc3RvcnkpaChsaWJyYXJ5KWYoY2FuKWgocmVhZClmKHRoZSloKGhpc3RvcnkpZyhmcm9tKWYoYW5kKWcod3JpdGUpaAorKGl0KWcodG8pZyhhKWcoXDAxNGxlLik0NSBiKFRoaXMpMzEgYihzZWN0aW9uKWgoZG8pcyhjdS0pMTUwCis1MzQwIHkobWVuKW0odHMpZih0aGUpZihmdW5jdGlvbnMpZyhmb3IpZyhtYW5hZ2luZyloKGEpZyhoaXN0b3J5KWYKKyhcMDE0bGUuKXAgZW9wIGVuZAorJSVQYWdlOiA5IDEzCitUZVhEaWN0IGJlZ2luIDkgMTIgYm9wIDE1MCAtMTE2IGEgRnIoQ2hhcHRlcikzMCBiKDI6KTQxCitiKFByb2dyYW1taW5nKTMwIGIod2l0aClnKEdOVSloKEhpc3RvcnkpMTc4MCBiKDkpMzM1MAorMjk5IHkoW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKGludCkzOSBiIEZmKHJlYWQpcAorNTczIDI5OSAzNSA1IHYgNTAgdyhoaXN0b3J5KTQ1IGIgRmUoXCgpcCBGcShjb25zdCkyOQorYihjaGFyKWgoKmZpbGVuYW1lKXAgRmUoXCkpMzkwIDQwOCB5IEZyKEFkZClmKHRoZSloKGNvbiltKHRlbiltKHRzKWgKKyhvZilmIEZqKFwwMTRsZW5hbWUpayBGcih0bylkKHRoZSlmKGhpc3RvcnkpZihsaXN0LClpKGEpZihsaW5lKWcoYXQpZworKGEpZyh0aW1lLik0MSBiKElmKTI5IGIgRmooXDAxNGxlbmFtZSkzNSBiIEZyKGlzKTMwIGIKK0ZxKE5VTEwpcCBGcigsKTM5MCA1MTggeSh0aGVuKWcocmVhZClnKGZyb20pZyhgKXAgRnEofi8uaGlzdG9yeSlwCitGcignLikzOSBiKFJldHVybnMpMjkgYigwKWkoaWYpZihzdWNjZXNzZnVsLCloKG9yKWYgRnEoZXJybm8pZgorRnIoaWYpaChub3QuKTMzNTAgNzE3IHkoW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKGludCkzOQorYiBGZihyZWFkKXAgNTczIDcxNyBWIDUwIHcoaGlzdG9yeSlwIDk3MyA3MTcgViA1MCB3KHJhbmdlKTQ1CitiIEZlKFwoKXAgRnEoY29uc3QpMjkgYihjaGFyKWcoKmZpbGVuYW1lLClmKGludCloKGZyb20sKWcoaW50KWgodG8pcAorRmUoXCkpMzkwIDgyNiB5IEZyKFJlYWQpZShhKWcocmFuZ2UpaChvZilmKGxpbmVzKWcoZnJvbSlmCitGaihcMDE0bGVuYW1lKXAgRnIoLClpKGFkZGluZyllKHRoZW0paCh0byloKHRoZSlmKGhpc3RvcnkpZyhsaXN0Lik0MAorYihTdGFydCkyOCBiKHJlYWRpbmcpZyhhdCkzOTAgOTM2IHkobGluZSlmIEZqKGZyb20pZQorRnIoYW5kKWgoZW5kKWYoYXQpaSBGaih0bylwIEZyKC4pNDEgYihJZikyNSBiIEZqKGZyb20paAorRnIoaXMpZyh6ZXJvLClpKHN0YXJ0KWYoYXQpZyh0aGUpZihiKXMoZWdpbm5pbmcuKTM5IGIoSWYpMjYKK2IgRmoodG8pMzEgYiBGcihpcyljKGxlc3MpZih0aGFuKWcgRmooZnJvbSlwIEZyKCwpMzkwCisxMDQ1IHkodGhlbilrKHJlYWQpZyh1biltKHRpbClnKHRoZSlnKGVuZClnKG9mKWcodGhlKWcoXDAxNGxlLik0MQorYihJZikzMCBiIEZqKFwwMTRsZW5hbWUpMzUgYiBGcihpcykzMCBiIEZxKE5VTEwpcCBGcigsKWcodGhlbilmKHJlYWQpaAorKGZyb20pZyhgKXAgRnEofi8uaGlzdG9yeSlwIEZyKCcuKTM5MCAxMTU1IHkoUmV0dXJucylmKDApaShpZilnCisoc3VjY2Vzc2Z1bCwpZihvcilnIEZxKGVycm5vKWYgRnIoaWYpaShub3QuKTMzNTAgMTM1MworeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcoaW50KTM5IGIgRmYod3JpdGUpcCA2MTMKKzEzNTMgViA0OSB3KGhpc3RvcnkpNDYgYiBGZShcKClwIEZxKGNvbnN0KTI5IGIoY2hhcilnKCpmaWxlbmFtZSlwCitGZShcKSkzOTAgMTQ2MyB5IEZyKFcpLTggYihyaXRlKTM2IGIodGhlKWYoY3VycmVuKW0odClnKGhpc3RvcnkpZyh0bylnCitGaihcMDE0bGVuYW1lKXAgRnIoLCloKG8pbSh2KW0oZXJ3cml0aW5nKWggRmooXDAxNGxlbmFtZSlqCitGcihpZikzNSBiKG5lY2Vzc2FyeSktOCBiKC4pNTQgYihJZikzNSBiIEZqKFwwMTRsZW5hbWUpMzkwCisxNTczIHkgRnIoaXMpZCBGcShOVUxMKXAgRnIoLClnKHRoZW4pZyh3cml0ZSlnKHRoZSloKGhpc3RvcnkpZihsaXN0KWgKKyh0bylnKGApcCBGcSh+Ly5oaXN0b3J5KXAgRnIoJy4pNDQgYihSZXR1cm5zKTMxIGIoMClpKG9uKWYoc3VjY2VzcywpaAorKG9yKWYgRnEoZXJybm8pMzkwIDE2ODIgeSBGcihvbillKGEpaChyZWFkKWYob3IpaCh3cml0ZSlmKGVycm9yLikzMzUwCisxODgxIHkoW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKGludCkzOSBiIEZmKGFwcClzKGVuZClwCis3MjEgMTg4MSBWIDQ4IHcoaGlzdG9yeSk0NiBiIEZlKFwoKXAgRnEoaW50KTMwIGIobmVsZW1lbnRzLCllKGNvbnN0KWcKKyhjaGFyKWkoKmZpbGVuYW1lKXAgRmUoXCkpMzkwIDE5OTAgeSBGcihBcHApcyhlbmQpaih0aGUpaShsYXN0KWcKK0ZqKG5lbGVtZW4pbSh0cylrIEZyKG9mKWModGhlKWcoaGlzdG9yeSlmKGxpc3QpaSh0bylmCitGaihcMDE0bGVuYW1lKXAgRnIoLik1NCBiKElmKTM0IGIgRmooXDAxNGxlbmFtZSk0MCBiCitGcihpcykzNCBiIEZxKE5VTEwpcCBGcigsKWgodGhlbikzOTAgMjEwMCB5KGFwcClzKGVuZCkyOQorYih0bylpKGApcCBGcSh+Ly5oaXN0b3J5KXAgRnIoJy4pMzggYihSZXR1cm5zKTMwIGIoMClnKG9uKWgoc3VjY2VzcywpZworKG9yKWYgRnEoZXJybm8pZiBGcihvbiloKGEpaChyZWFkKWYob3IpaCh3cml0ZSlmKGVycm9yLikzMzUwCisyMjk5IHkoW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKGludCkzOSBiIEZmKGhpc3RvcnkpcAorNzAzIDIyOTkgViA1MSB3KHRydW5jYXRlKXAgMTE3OSAyMjk5IFYgNDggdyhcMDE0bGUpNDQKK2IgRmUoXCgpcCBGcShjb25zdCkzMCBiKGNoYXIpZigqZmlsZW5hbWUsKWUoaW50KWoobmxpbmVzKXAKK0ZlKFwpKTM5MCAyNDA4IHkgRnIoVCktOCBiKHJ1bmNhdGUpMzkgYih0aGUpZihoaXN0b3J5KWgoXDAxNGxlKWYKK0ZqKFwwMTRsZW5hbWUpcCBGcigsKWoobGVhKW0odmluZylmKG9ubHkpZih0aGUpZyhsYXN0KWcKK0ZqKG5saW5lcylqIEZyKGxpbmVzLik2NSBiKElmKTM4IGIgRmooXDAxNGxlbmFtZSk0NCBiCitGcihpcykzOTAgMjUxOCB5IEZxKE5VTEwpcCBGcigsKTI5IGIodGhlbilpKGApcCBGcSh+Ly5oaXN0b3J5KXAKK0ZyKCcpZChpcylpKHRydW5jYXRlZC4pNDEgYihSZXR1cm5zKTI5IGIoMClpKG9uKWYoc3VjY2VzcywpaChvcilmCitGcShlcnJubylmIEZyKG9uKWkoZmFpbHVyZS4pMTUwIDI3NTYgeSBGaSgyLjMuNyk2MyBiKEhpc3RvcnkpNDEKK2IoRXhwYW5zaW9uKTI3NSAzMDA3IHkgRnIoVGhlc2UpMzAgYihmdW5jdGlvbnMpZyhpbXBsZW1lbiltKHQpaAorKGhpc3RvcnkpZihleHBhbnNpb24uKTMzNTAgMzIwNiB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkKK2IgRmcoaW50KTM5IGIgRmYoaGlzdG9yeSlwIDcwMyAzMjA2IFYgNTEgdyhleHBhbmQpNDQKK2IgRmUoXCgpcCBGcShjaGFyKTI5IGIoKnN0cmluZywpZihjaGFyKWkoKipvdXRwdXQpcCBGZShcKSkzOTAKKzMzMTUgeSBGcihFeHBhbmQpaiBGaihzdHJpbmcpcCBGcigsKWoocGxhY2luZylmKHRoZSlmKHJlc3VsdCloKGluKW0odG8pCitnIEZqKG91dHB1dClwIEZyKCwpZyhhKWcocClzKG9pbiltKHRlcilmKHRvKWgoYSlnKHN0cmluZylmKFwoc2VlKWkKKyhTZWN0aW9uKWYoMS4xKTM5MCAzNDI1IHkoW0hpc3RvcnkpYyhJbiltKHRlcmFjdGlvbl0sKWkocGFnZSllKDFcKS4pNDEKK2IoUmV0dXJuczopMzkwIDM1OTUgeSBGcSgwKTQzMiBiIEZyKElmKTM3IGIobm8pZyhleHBhbnNpb25zKWcodG8pcyhvaylpCisocGxhY2UpZihcKG9yLClpKGlmKWQodGhlKWgob25seSlmKGMpbShoYW5nZSlpKGluKWUodGhlKWcodGV4dClpKHcpbQorKGFzKWYodGhlKTg3MCAzNzA1IHkocmVtbyltKHYpLTUgYihhbCkzMSBiKG9mKWcoZXNjYXApcyhlKWYoYyltCisoaGFyYWN0ZXJzKWkocHJlY2VkaW5nKWUodGhlKWcoaGlzdG9yeSlnKGV4cGFuc2lvbilnKGMpbShoYXJhY3RlclwpOykKKzM5MCAzODcxIHkgRnEoMSk0MzIgYiBGcihpZikzMCBiKGV4cGFuc2lvbnMpZyhkaWQpZyh0YWspbShlKWkocGxhY2U7KQorMzkwIDQwMzggeSBGcSgtMSkzODQgYiBGcihpZikzMCBiKHRoZXJlKWgodyltKGFzKWcoYW4pZihlcnJvcilnKGluKWcKKyhleHBhbnNpb247KTM5MCA0MjA0IHkgRnEoMik0MzIgYiBGcihpZikyOCBiKHRoZSlmKHJldHVybmVkKWcobGluZSlnCisoc2hvdWxkKWcoYilzKGUpZyhkaXNwbGEpbSh5KW0oZWQsKWkoYnV0KWUobm90KWgoZXhlY3V0ZWQsKWgoYXMpZih3aXRoKQorZih0aGUpaCBGcSg6cCk4NzAgNDMxNCB5IEZyKG1vKXMoZGlcMDE0ZXIpaChcKHNlZSlqKFNlY3Rpb24pZigxLjEuMyloCisoW01vKXMoZGlcMDE0ZXJzXSwpZShwYWdlKWkoMlwpLikzOTAgNDQ4NCB5KElmKWUoYW4pZyhlcnJvcilnKG8pcworKGN1cnJlZClmKGluKWkoZXhwYW5zaW9uLClmKHRoZW4pZyBGaihvdXRwdXQpaSBGcihjb24pbSh0YWlucylnKGEpZQorKGRlc2NyaXB0aXYpbShlKWkoZXJyb3IpZShtZXNzYWdlLikzMzUwIDQ2ODIgeShbRiktOAorYih1bmN0aW9uXSktMzU5OSBiIEZnKGNoYXIpMzkgYigqKWcgRmYoZ2V0KXAgNjUxIDQ2ODIKK1YgNTAgdyhoaXN0b3J5KXAgMTA1MSA0NjgyIFYgNTAgdyhldiltKGVuKW0odCk0NCBiIEZlKFwoKXAKK0ZxKGNvbnN0KTI5IGIoY2hhciloKCpzdHJpbmcsKWUoaW50KWgoKmNpbmRleCwpZihpbnQpNTY1Cis0NzkyIHkocWNoYXIpcCBGZShcKSkzOTAgNDkwMiB5IEZyKFJldHVybnMpNDUgYih0aGUpZyh0ZXh0KWkob2YpZSh0aGUpaAorKGhpc3RvcnkpZihldiltKGVuKW0odClpKGIpcyhlZ2lubmluZyllKGF0KWggRmooc3RyaW5nKTUzCitiIEZxKCspNDUgYiBGaigqY2luZGV4KXAgRnIoLik4NyBiIEZqKCpjaW5kZXgpNTIgYiBGcihpcykzOTAKKzUwMTEgeShtbylzKGRpXDAxNGVkKTI4IGIodG8paShwKXMob2luKW0odClmKHRvKWgoYWZ0ZXIpZyh0aGUpZyhldiltCisoZW4pbSh0KWgoc3ApcyhlY2lcMDE0ZXIuKTM5IGIoQSltKHQpMzEgYihmdW5jdGlvbillKGVuKW0odHJ5KS04CitiKCwpMzAgYiBGaihjaW5kZXgpMzYgYiBGcihwKXMob2luKW0odHMpMjkgYih0byloKHRoZSkzOTAKKzUxMjEgeShpbmRleCkzNSBiKGluKW0odG8paSBGaihzdHJpbmcpNDQgYiBGcih3aGVyZSkzNQorYih0aGUpaChoaXN0b3J5KWcoZXYpbShlbiltKHQpaChzcClzKGVjaVwwMTRjYXRpb24pZyhiKXMoZWdpbnMuKTU3CitiIEZqKHFjKW0oaGFyKTQyIGIgRnIoaXMpMzYgYihhKWcoYyltKGhhcmFjdGVyKTM5MCA1MjMwCit5KHRoYXQpMjcgYihpcylnKGFsbG8pbSh3KW0oZWQpaSh0bylmKGVuZCllKHRoZSloKGV2KW0oZW4pbSh0KWgoc3ApcworKGVjaVwwMTRjYXRpb24pZyhpbilmKGFkZGl0aW9uKWcodG8pZyh0aGUpZyhcXG5vcm1hbCIpaCh0ZXJtaW5hdGluZykzOTAKKzUzNDAgeShjKW0oaGFyYWN0ZXJzLilwIGVvcCBlbmQKKyUlUGFnZTogMTAgMTQKK1RlWERpY3QgYmVnaW4gMTAgMTMgYm9wIDE1MCAtMTE2IGEgRnIoMTApMjY1MSBiKEdOVSkzMQorYihIaXN0b3J5KWcoTGlicmFyeSkzMzUwIDI5OSB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkKK2IgRmcoY2hhcikzOSBiKCoqKWcgRmYoaGlzdG9yeSlwIDg5OCAyOTkgMzUgNSB2IDUxIHcodG9rKW0oZW5pemUpNDQKK2IgRmUoXCgpcCBGcShjb25zdCkyOSBiKGNoYXIpZygqc3RyaW5nKXAgRmUoXCkpMzkwIDQwOAoreSBGcihSZXR1cm4paChhbiloKGFycmEpbSh5KWcob2YpZyh0b2spbShlbnMpaChwYXJzZWQpZShvdXQpaChvZilnCitGaihzdHJpbmcpcCBGcigsKWgobSltKHVjKW0oaCllKGFzKWkodGhlKWYoc2hlbGwpZyhtaWdoKW0odC4pNDMKK2IoVGhlKTMwIGIodG9rKW0oZW5zKTM5MCA1MTggeShhcmUpaChzcGxpdClnKG9uKWYodGhlKWgoYyltKGhhcmFjdGVycyloCisoaW4pZSh0aGUpaCBGaihoaXN0b3J5KXAgMjAwNiA1MTggMjggNCB2IDQwIHcodyltKG9yZClwCisyMjQxIDUxOCBWIDM5IHcoZGVsaW1pdGVycylrIEZyKHYpLTUgYihhcmlhYmxlLCkzMiBiKGFuZCllKHNoZWxsKWcKKyhxdW90aW5nKTM5MCA2MjggeShjb24pbSh2KW0oZW4pbSh0aW9ucylpKGFyZSlmKG9iKXMoZXkpbShlZC4pMzM1MAorODE4IHkoW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKGNoYXIpMzkgYigqKWcgRmYoaGlzdG9yeSlwCis4NDYgODE4IDM1IDUgdiA1MCB3KGFyZylwIDEwNTYgODE4IFYgNTEgdyhleHRyYWN0KTQ0CitiIEZlKFwoKXAgRnEoaW50KTMwIGIoZmlyc3QsKWYoaW50KWcobGFzdCwpZyhjb25zdClnKGNoYXIpNTY1Cis5MjcgeSgqc3RyaW5nKXAgRmUoXCkpMzkwIDEwMzcgeSBGcihFeHRyYWN0KTQxIGIoYSlnKHN0cmluZylmKHNlZ21lbiltCisodClpKGNvbnNpc3RpbmcpZihvZilmKHRoZSloIEZqKFwwMTRyc3QpZyBGcih0aHJvdWdoKWYKK0ZqKGxhc3QpaiBGcihhcmd1bWVuKW0odHMpZShwcmVzZW4pbSh0KWYoaW4pMzkwIDExNDYKK3kgRmooc3RyaW5nKXAgRnIoLiloKEFyZ3VtZW4pbSh0cykzMCBiKGFyZSloKHNwbGl0KWYodXNpbmcpZworRnEoaGlzdG9yeV90b2tlbml6ZSlwIEZyKC4pMTUwIDE0MTEgeSBGcCgyLjQpNjggYihIaXN0b3J5KTQ2CitiKFYpLTExIGIoYXJpYWJsZXMpMjc1IDE2NTggeSBGcihUaGlzKTMzIGIoc2VjdGlvbilpKGRlc2NyaWIpcyhlcyllCisodGhlKWgoZXh0ZXJuYWxseS12aXNpYmxlKWkodiktNSBiKGFyaWFibGVzKTM1IGIoZXhwKXMob3J0ZWQpZShiKW0oeSloCisodGhlKWcgRmsoZ251KWcgRnIoSGlzdG9yeSloKExpLSkxNTAgMTc2NyB5KGJyYXJ5KS04CitiKC4pMzM3MSAxOTU3IHkoW1YpZyhhcmlhYmxlXSktMzU5OCBiIEZnKGludCkzOSBiIEZmKGhpc3RvcnkpcAorNzAzIDE5NTcgViA1MSB3KGJhc2UpMzkwIDIwNjcgeSBGcihUaGUpMzAgYihsb2dpY2FsKWoob1wwMTNzZXQpZShvZilnCisodGhlKWYoXDAxNHJzdClnKGVuKW0odHJ5KWcoaW4paCh0aGUpZihoaXN0b3J5KWcobGlzdC4pMzM3MQorMjI1NyB5KFtWKS04IGIoYXJpYWJsZV0pLTM1OTggYiBGZyhpbnQpMzkgYiBGZihoaXN0b3J5KXAKKzcwMyAyMjU3IFYgNTEgdyhsZW5ndGgpMzkwIDIzNjYgeSBGcihUaGUpMzAgYihuKW0odW0pbShiKXMoZXIpZihvZiloCisoZW4pbSh0cmllcylpKGN1cnJlbiltKHRseSllKHN0b3JlZCloKGluKWYodGhlKWcoaGlzdG9yeSlnKGxpc3QuKTMzNzEKKzI1NTYgeShbViktOCBiKGFyaWFibGVdKS0zNTk4IGIgRmcoaW50KTM5IGIgRmYoaGlzdG9yeSlwCis3MDMgMjU1NiBWIDUxIHcobWF4KXAgOTY1IDI1NTYgViA1MSB3KGVuKW0odHJpZXMpMzkwCisyNjY2IHkgRnIoVGhlKTQ1IGIobWF4aW0pbSh1bSloKG4pbSh1bSltKGIpcyhlcilmKG9mKWgoaGlzdG9yeSlnKGVuKW0KKyh0cmllcy4pODggYihUaGlzKTQ1IGIobSltKHVzdCloKGIpcyhlKWYoYyltKGhhbmdlZClpKHVzaW5nKWUKK0ZxKHN0aWZsZV8pMzkwIDI3NzYgeShoaXN0b3J5XChcKSlwIEZyKC4pMzM3MSAyOTY2IHkoW1YpLTgKK2IoYXJpYWJsZV0pLTM1OTggYiBGZyhpbnQpMzkgYiBGZihoaXN0b3J5KXAgNzAzIDI5NjYKK1YgNTEgdyh3cml0ZSlwIDEwMTQgMjk2NiBWIDQ5IHcodGltZXN0YW1wcykzOTAgMzA3NSB5CitGcihJZik0NCBiKG5vbi16ZXJvLCk0OSBiKHRpbWVzdGFtcHMpYyhhcmUpZyh3cml0dGVuKWcodG8pZyh0aGUpZworKGhpc3RvcnkpZihcMDE0bGUsKTQ5IGIoc28pYyh0aGV5KWYoY2FuKWgoYilzKGUpZihwcmVzZXJ2KW0oZWQpMzkwCiszMTg1IHkoYilzKGV0KW0odyltKGVlbikzMSBiKHNlc3Npb25zLik0MSBiKFRoZSkzMCBiKGRlZmF1bHQpZyh2KS01CitiKGFsdWUpMzEgYihpcylmKDAsKWgobWVhbmluZylnKHRoYXQpZyh0aW1lc3RhbXBzKWcoYXJlKWcobm90KWYoc2EpbSh2KQorbShlZC4pMzM3MSAzMzc1IHkoW1YpLTggYihhcmlhYmxlXSktMzU5OCBiIEZnKGNoYXIpMzkKK2IgRmYoaGlzdG9yeSlwIDc1NSAzMzc1IFYgNTEgdyhleHBhbnNpb24pcCAxMzAxIDMzNzUKK1YgNDkgdyhjKW0oaGFyKTM5MCAzNDg0IHkgRnIoVGhlKWMoYyltKGhhcmFjdGVyKWkodGhhdCllKGluKW0odHJvKXMKKyhkdWNlcylnKGEpaChoaXN0b3J5KWYoZXYpbShlbiltKHQuKTU3IGIoVGhlKTM0IGIoZGVmYXVsdClpKGlzKWYoYClwCitGcSghKXAgRnIoJy4pNTYgYihTZXR0aW5nKTM1IGIodGhpcyloKHRvKWcoMCkzOTAgMzU5NAoreShpbmhpYml0cykzMCBiKGhpc3RvcnkpZyhleHBhbnNpb24uKTMzNzEgMzc4NCB5KFtWKS04CitiKGFyaWFibGVdKS0zNTk4IGIgRmcoY2hhcikzOSBiIEZmKGhpc3RvcnkpcCA3NTUgMzc4NAorViA1MSB3KHN1YnN0KXAgMTA2OSAzNzg0IFYgNTAgdyhjKW0oaGFyKTM5MCAzODkzIHkgRnIoVGhlKWgoYyltCisoaGFyYWN0ZXIpaSh0aGF0KWcoaW4pbSh2KW0ob2spbShlcylnKHcpbShvcmQpZihzdWJzdGl0dXRpb24pZihpZiloCisoZm91bmQpZShhdClpKHRoZSlnKHN0YXJ0KWcob2YpZyhhKWcobGluZS4pNzIgYihUaGUpMzkwCis0MDAzIHkoZGVmYXVsdCkzMSBiKGlzKWYoYClwIEZxKF4pcCBGcignLikzMzcxIDQxOTMgeShbViktOAorYihhcmlhYmxlXSktMzU5OCBiIEZnKGNoYXIpMzkgYiBGZihoaXN0b3J5KXAgNzU1IDQxOTMKK1YgNTEgdyhjb21tZW4pbSh0KXAgMTI2MyA0MTkzIFYgNTAgdyhjKW0oaGFyKTM5MCA0MzAzCit5IEZyKER1cmluZyllKHRvayltKGVuaXphdGlvbiwpNDMgYihpZikzOCBiKHRoaXMpZihjKW0oaGFyYWN0ZXIpaihpcyllCisoc2VlbilmKGFzKWgodGhlKWcoXDAxNHJzdClmKGMpbShoYXJhY3RlcilqKG9mKWUoYSlnKHcpbShvcmQsKWgodGhlbikKKzM5MCA0NDEyIHkoaXQpNDQgYihhbmQpZShhbGwpaihzdWJzZXF1ZW4pbSh0KWQoYyltKGhhcmFjdGVycylqKHVwKWQodG8pCitpKGEpZyhuZXdsaW5lKWYoYXJlKWgoaWdub3JlZCwpaShzdXBwcmVzc2luZyljKGhpc3RvcnkpMzkwCis0NTIyIHkoZXhwYW5zaW9uKTMwIGIoZm9yKWcodGhlKWgocmVtYWluZGVyKWYob2YpZyh0aGUpaChsaW5lLik0MQorYihUaGlzKTI5IGIoaXMpaShkaXNhYmxlZClmKGIpbSh5KWcoZGVmYXVsdC4pMzM3MSA0NzEyCit5KFtWKS04IGIoYXJpYWJsZV0pLTM1OTggYiBGZyhjaGFyKTM5IGIoKilnIEZmKGhpc3RvcnkpcAorODQ2IDQ3MTIgViA1MCB3KHcpbShvcmQpcCAxMTQ0IDQ3MTIgViA1MSB3KGRlbGltaXRlcnMpMzkwCis0ODIxIHkgRnIoVGhlKTI3IGIoYyltKGhhcmFjdGVycylpKHRoYXQpZihzZXBhcmF0ZSloKHRvayltKGVucylmKGZvcilmCitGcShoaXN0b3J5X3Rva2VuaXplXChcKSlwIEZyKC4pMzUgYihUaGUpMjcgYihkZWZhdWx0KWgodiktNQorYihhbHVlKTI4IGIoaXMpZiBGcSgiKTM5MCA0OTMxIHkoXFx0XFxuXChcKTw+OyZ8IilwIEZyKC4pMzM3MQorNTEyMSB5KFtWKS04IGIoYXJpYWJsZV0pLTM1OTggYiBGZyhjaGFyKTM5IGIoKilnIEZmKGhpc3RvcnkpcAorODQ2IDUxMjEgViA1MCB3KHNlYXJjKW0oaClwIDEyMDkgNTEyMSBWIDUwIHcoZGVsaW1pdGVyKXAKKzE3MTIgNTEyMSBWIDQ5IHcoYyltKGhhcnMpMzkwIDUyMzAgeSBGcihUaGUpMjYgYihsaXN0KWcob2YpZworKGFkZGl0aW9uYWwpaChjKW0oaGFyYWN0ZXJzKWgod2hpYyltKGgpZShjYW4pZyhkZWxpbWl0KWgoYSlmKGhpc3RvcnkpZworKHNlYXJjKW0oaCloKHN0cmluZywpZyhpbilmKGFkZGl0aW9uKTM5MCA1MzQwIHkodG8pMzEKK2Ioc3BhY2UsKWcoVCktOCBiKEFCLCkzMiBiKGApcCBGcSg6KXAgRnIoJyllKGFuZClnKGApcAorRnEoPylwIEZyKCcpZyhpbilnKHRoZSloKGNhc2UpZyhvZilnKGEpZyhzdWJzdHJpbmcpZShzZWFyYyltKGguKTQxCitiKFRoZSkzMCBiKGRlZmF1bHQpaChpcylmKGVtcHQpbSh5KS04IGIoLilwIGVvcCBlbmQKKyUlUGFnZTogMTEgMTUKK1RlWERpY3QgYmVnaW4gMTEgMTQgYm9wIDE1MCAtMTE2IGEgRnIoQ2hhcHRlcikzMCBiKDI6KTQxCitiKFByb2dyYW1taW5nKTMwIGIod2l0aClnKEdOVSloKEhpc3RvcnkpMTczNCBiKDExKTMzNzEKKzI5OSB5KFtWKS04IGIoYXJpYWJsZV0pLTM1OTggYiBGZyhjaGFyKTM5IGIoKilnIEZmKGhpc3RvcnkpcAorODQ2IDI5OSAzNSA1IHYgNTAgdyhubylwIDEwMTcgMjk5IFYgNTEgdyhleHBhbmQpcCAxNDI5CisyOTkgViA0OSB3KGMpbShoYXJzKTM5MCA0MDggeSBGcihUaGUpMjkgYihsaXN0KWkob2YpZihjKW0oaGFyYWN0ZXJzKWgKKyh3aGljKW0oaCllKGluaGliaXQpaChoaXN0b3J5KWcoZXhwYW5zaW9uKWYoaWYpaChmb3VuZCllKGltbWVkaWF0ZWx5KWoKKyhmb2xsbyltKHdpbmcpMzkwIDUxOCB5IEZqKGhpc3RvcnkpcCA2NzIgNTE4IDI4IDQgdiA0MAordyhleHBhbnNpb24pcCAxMTA0IDUxOCBWIDQwIHcoYyltKGhhcilwIEZyKC4pNDEgYihUaGUpMzAKK2IoZGVmYXVsdClnKGlzKWgoc3BhY2UsKWcodGFiLClnKG5ld2xpbmUsKWYoY2FycmlhZ2UpaShyZXR1cm4sKWUoYW5kKWcKKyhgKXAgRnEoPSlwIEZyKCcuKTMzNzEgNzA3IHkoW1YpLTggYihhcmlhYmxlXSktMzU5OCBiCitGZyhpbnQpMzkgYiBGZihoaXN0b3J5KXAgNzAzIDcwNyAzNSA1IHYgNTEgdyhxdW90ZXMpcAorMTA3OCA3MDcgViA1MCB3KGluaGliaXQpcCAxNDYxIDcwNyBWIDQ4IHcoZXhwYW5zaW9uKTM5MAorODE3IHkgRnIoSWYpMjkgYihub24temVybywpaChzaW5nbGUtcXVvdGVkKWcodyltKG9yZHMpZihhcmUpZyhub3QpaAorKHNjYW5uZWQpZihmb3IpZyh0aGUpZyhoaXN0b3J5KWcoZXhwYW5zaW9uKWcoYyltKGhhcmFjdGVyLikzOTAKKzkyNyB5KFRoZSloKGRlZmF1bHQpZyh2KS01IGIoYWx1ZSkzMSBiKGlzKWcoMC4pMzM3MSAxMTE2Cit5KFtWKS04IGIoYXJpYWJsZV0pLTM1OTggYiBGZyhybF9saW5lYnVmX2Z1bmNfdCk0MyBiKCopYworRmYoaGlzdG9yeSlwIDE1MjYgMTExNiBWIDUwIHcoaW5oaWJpdClwIDE5MDkgMTExNiBWIDQ5Cit3KGV4cGFuc2lvbilwIDI0NTMgMTExNiBWIDQ5IHcoZnVuY3Rpb24pMzkwIDEyMjYgeSBGcihUaGlzKTMyCitiKHNob3VsZCloKGIpcyhlKWYoc2V0KWkodG8pZyh0aGUpZyhhZGRyZXNzKWUob2YpaShhKWYoZnVuY3Rpb24pZyh0aGF0KQoraCh0YWspbShlcyloKHQpbSh3KW0obylnKGFyZ3VtZW4pbSh0czopNDYgYihhKTM0IGIgRnEoY2hhcikyOQorYigqKTM5MCAxMzM1IHkgRnIoXCgpcCBGaihzdHJpbmcpOCBiIEZyKFwpKTI3IGIoYW5kKWYoYW4pZworRnEoaW50KWcgRnIoaW5kZXgpZyhpbiltKHRvKWkodGhhdClmKHN0cmluZylmKFwoKXAgRmooaSk1CitiIEZyKFwpLik0MCBiKEl0KTI3IGIoc2hvdWxkKWYocmV0dXJuKWYoYSlpKG5vbi16ZXJvKWcodiktNQorYihhbHVlKTI3IGIoaWYpZyh0aGUpMzkwIDE0NDUgeShoaXN0b3J5KWkoZXhwYW5zaW9uKWcoc3RhcnRpbmcpaChhdClnCitGaihzdHJpbmdbaV0paiBGcihzaG91bGQpMjggYihub3QpaShiKXMoZSllKHApcyhlcmZvcm1lZDspaCh6ZXJvKWgoaWYpZgorKHRoZSlnKGV4cGFuc2lvbikzOTAgMTU1NCB5KHNob3VsZClpKGIpcyhlKWcoZG9uZS4pNDUKK2IoSXQpMzIgYihpcylnKGluKW0odGVuZGVkKWcoZm9yKWcodXNlKWcoYiltKHkpZihhcHBsaWNhdGlvbnMpaShsaWspbQorKGUpaChCYXNoKWUodGhhdClnKHVzZSlnKHRoZSlnKGhpc3RvcnkpMzkwIDE2NjQgeShleHBhbnNpb24pZShjKW0KKyhoYXJhY3RlcilpKGZvcillKGFkZGl0aW9uYWwpaShwdXJwKXMob3Nlcy4pMzkgYihCeSkzMAorYihkZWZhdWx0LCloKHRoaXMpZih2KS01IGIoYXJpYWJsZSkzMSBiKGlzKWcoc2V0KWcodG8pZworRnEoTlVMTClwIEZyKC4pMTUwIDE5MjggeSBGcCgyLjUpNjggYihIaXN0b3J5KTQ2IGIoUHJvZ3JhbW1pbmcpZworKEV4YW1wbGUpMjc1IDIxNzQgeSBGcihUaGUpMjkgYihmb2xsbyltKHdpbmcpaihwcm9ncmFtKWUoZGVtb25zdHJhdGVzKWgKKyhzaW1wbGUpZyh1c2UpZihvZilnKHRoZSloIEZrKGdudSlmIEZyKEhpc3RvcnkpaChMaWJyYXJ5KS04CitiKC4pMzkwIDIyODkgeSBGZCgjaW5jbHVkZSk0MSBiKDxzdGRpby5oPikzOTAgMjM3NiB5KCNpbmNsdWRlKWcKKyg8cmVhZGxpbmUvaGlzdG9yeS5oPikzOTAgMjU1MCB5KG1haW4pZihcKGFyZ2MsKWgoYXJndlwpKTU4NgorMjYzOCB5KGludClmKGFyZ2M7KTU4NiAyNzI1IHkoY2hhcilnKCoqYXJndjspMzkwIDI4MTIKK3koeyk0NjggMjg5OSB5KGNoYXIpaChsaW5lWzEwMjRdLClnKCp0Oyk0NjggMjk4NiB5KGludClmKGxlbiwpZyhkb25lKWgKKyg9KWUoMDspNDY4IDMxNjEgeShsaW5lWzBdKWkoPSlmKDA7KTQ2OCAzMzM1IHkodXNpbmdfaGlzdG9yeSlqKFwoXCk7KQorNDY4IDM0MjIgeSh3aGlsZSllKFwoIWRvbmVcKSk1NDcgMzUwOSB5KHspNjI1IDM1OTcgeShwcmludGYpZworKFwoImhpc3RvcnkkKWcoIlwpOyk2MjUgMzY4NCB5KGZmbHVzaClnKFwoc3Rkb3V0XCk7KTYyNQorMzc3MSB5KHQpZig9KWYoZmdldHMpaShcKGxpbmUsKWYoc2l6ZW9mKWgoXChsaW5lXCkpZigtKWcoMSwpZyhzdGRpblwpOykKKzYyNSAzODU4IHkoaWYpZyhcKHQpZygmJilmKCp0XCkpNzA0IDM5NDUgeSh7KTc4MiA0MDMyCit5KGxlbiloKD0pZyhzdHJsZW4pZyhcKHRcKTspNzgyIDQxMjAgeShpZilnKFwodFtsZW4paCgtKWUoMV0paCg9PSlmCisoJ1xcbidcKSk4NjEgNDIwNyB5KHRbbGVuKWgoLSlnKDFdKWYoPSloKCdcXDAnOyk3MDQgNDI5NAoreSh9KTYyNSA0NDY4IHkoaWYpZyhcKCF0XCkpNzA0IDQ1NTUgeShzdHJjcHkpZyhcKGxpbmUsKWgoInF1aXQiXCk7KTYyNQorNDczMCB5KGlmKWYoXChsaW5lWzBdXCkpNzA0IDQ4MTcgeSh7KTc4MiA0OTA0IHkoY2hhcilnKCpleHBhbnNpb247KTc4MgorNDk5MSB5KGludClnKHJlc3VsdDspNzgyIDUxNjYgeShyZXN1bHQpaCg9KWUoaGlzdG9yeV9leHBhbmQpayhcKGxpbmUsKWQKKygmZXhwYW5zaW9uXCk7KTc4MiA1MjUzIHkoaWYpZyhcKHJlc3VsdFwpKTg2MSA1MzQwIHkoZnByaW50ZiloCisoXChzdGRlcnIsKWcoIlwwNDVzXFxuIiwpZihleHBhbnNpb25cKTspcCBlb3AgZW5kCislJVBhZ2U6IDEyIDE2CitUZVhEaWN0IGJlZ2luIDEyIDE1IGJvcCAxNTAgLTExNiBhIEZyKDEyKTI2NTEgYihHTlUpMzEKK2IoSGlzdG9yeSlnKExpYnJhcnkpNzgyIDM4NiB5IEZkKGlmKTQwIGIoXChyZXN1bHQpaCg8KWUoMCloKHx8KWYKKyhyZXN1bHQpaSg9PSlmKDJcKSk4NjEgNDczIHkoeyk5MzkgNTYwIHkoZnJlZSlnKFwoZXhwYW5zaW9uXCk7KTkzOQorNjQ4IHkoY29udGludWU7KTg2MSA3MzUgeSh9KTc4MiA5MDkgeShhZGRfaGlzdG9yeSlpKFwoZXhwYW5zaW9uXCk7KTc4MgorOTk2IHkoc3RybmNweSlmKFwobGluZSwpZyhleHBhbnNpb24sKWcoc2l6ZW9mKWcoXChsaW5lXCkpZigtKWcoMVwpOyk3ODIKKzEwODMgeShmcmVlKWcoXChleHBhbnNpb25cKTspNzA0IDExNzEgeSh9KTYyNSAxMzQ1IHkoaWYpZyhcKHN0cmNtcCloCisoXChsaW5lLClmKCJxdWl0IlwpKWgoPT0pZigwXCkpNzA0IDE0MzIgeShkb25lKWcoPSlmKDE7KTYyNQorMTUxOSB5KGVsc2UpaChpZilnKFwoc3RyY21wKWgoXChsaW5lLClnKCJzYXZlIlwpKWYoPT0pZygwXCkpNzA0CisxNjA2IHkod3JpdGVfaGlzdG9yeSlpKFwoImhpc3RvcnlfZmlsZSJcKTspNjI1IDE2OTQgeShlbHNlKWUoaWYpZworKFwoc3RyY21wKWgoXChsaW5lLClnKCJyZWFkIlwpKWYoPT0pZygwXCkpNzA0IDE3ODEgeShyZWFkX2hpc3RvcnkpaQorKFwoImhpc3RvcnlfZmlsZSJcKTspNjI1IDE4NjggeShlbHNlKWUoaWYpZyhcKHN0cmNtcCloKFwobGluZSwpZworKCJsaXN0IlwpKWYoPT0pZygwXCkpNzA0IDE5NTUgeSh7KTc4MiAyMDQyIHkocmVnaXN0ZXIpaChISVNUX0VOVFJZKWgKKygqKnRoZV9saXN0Oyk3ODIgMjEzMCB5KHJlZ2lzdGVyKWYoaW50KWYoaTspNzgyIDIzMDQKK3kodGhlX2xpc3QpaCg9KWYoaGlzdG9yeV9saXN0KWkoXChcKTspNzgyIDIzOTEgeShpZillKFwodGhlX2xpc3RcKSk4NjEKKzI0NzggeShmb3IpZyhcKGkpZig9KWgoMDspZih0aGVfbGlzdFtpXTspaihpKytcKSk5MzkKKzI1NjUgeShwcmludGYpZihcKCJcMDQ1ZDopZihcMDQ1c1xcbiIsKWgoaSllKCspaChoaXN0b3J5X2Jhc2UsKWkKKyh0aGVfbGlzdFtpXS0+bGluZVwpOyk3MDQgMjY1MyB5KH0pNjI1IDI3NDAgeShlbHNlKWUoaWYpZyhcKHN0cm5jbXApaAorKFwobGluZSwpZygiZGVsZXRlIiwpZyg2XCkpZig9PSlmKDBcKSk3MDQgMjgyNyB5KHspNzgyCisyOTE0IHkoaW50KWgod2hpY2g7KTc4MiAzMDAxIHkoaWYpZyhcKFwoc3NjYW5mKWgoXChsaW5lKWYoKylnKDYsKWcKKygiXDA0NWQiLClnKCZ3aGljaFwpXCkpaCg9PSlmKDFcKSk4NjEgMzA4OCB5KHspOTM5IDMxNzYKK3koSElTVF9FTlRSWSlpKCplbnRyeSllKD0pZyhyZW1vdmVfaGlzdG9yeSlpKFwod2hpY2hcKTspOTM5CiszMjYzIHkoaWYpZShcKCFlbnRyeVwpKTEwMTggMzM1MCB5KGZwcmludGYpZyhcKHN0ZGVyciwpaSgiTm8pZChzdWNoKWkKKyhlbnRyeSlmKFwwNDVkXFxuIiwpaCh3aGljaFwpOyk5MzkgMzQzNyB5KGVsc2UpMTAxOCAzNTI0Cit5KHspMTA5NiAzNjExIHkoZnJlZSlmKFwoZW50cnktPmxpbmVcKTspMTA5NiAzNjk5IHkoZnJlZSlnKFwoZW50cnlcKTspCisxMDE4IDM3ODYgeSh9KTg2MSAzODczIHkofSk3ODIgMzk2MCB5KGVsc2UpODYxIDQwNDcgeSh7KTkzOQorNDEzNCB5KGZwcmludGYpaChcKHN0ZGVyciwpZygibm9uLW51bWVyaWMpaChhcmcpZShnaXZlbilnKHRvKWcKKyhgZGVsZXRlJ1xcbiJcKTspODYxIDQyMjIgeSh9KTcwNCA0MzA5IHkofSk1NDcgNDM5NiB5KH0pMzkwCis0NDgzIHkofSlwIGVvcCBlbmQKKyUlUGFnZTogMTMgMTcKK1RlWERpY3QgYmVnaW4gMTMgMTYgYm9wIDE1MCAtMTE2IGEgRnIoQXBwKXMoZW5kaXgpMjkKK2IoQTopaChDb3ApbSh5aW5nKWgoVGhpcylmKE1hbiltKHVhbCkyMTA1IGIoMTMpMTUwIDI5OQoreSBGbihBcHApdChlbmRpeCk1MiBiKEEpNDAgYihDb3ApbCh5aW5nKTUxIGIoVGhpcylqKE1hbilsKHVhbCkxNTAKKzY5MCB5IEZwKEEuMSk2NyBiKEdOVSk0NSBiKEYpLTExIGIocmVlKTQ1IGIoRG8pdChjdW1lbilsKHRhdGlvbiloCisoTGljZW5zZSkxMzk2IDkwOSB5IEZyKFYpLTggYihlcnNpb24pMzEgYigxLjIsKWgoTm8pbSh2KW0oZW0pbShiKXMoZXIpZworKDIwMDIpMzkwIDEwNTIgeShDb3ApbSh5cmlnaCltKHQpODQyIDEwNDkgeShjKTgxNyAxMDUyCit5IEZvKFwwMTUpZSBGcigyMDAwLDIwMDEsMjAwMikzNiBiKEYpLTggYihyZWUpMzIgYihTb2Z0KW0odyltKGFyZSlmKEYpCistOCBiKG91bmRhdGlvbiwpMzIgYihJbmMuKTM5MCAxMTYxIHkoNTkpZihUKS04IGIoZW1wbGUpMzEKK2IoUGxhY2UsKWgoU3VpdGUpZSgzMzAsKWkoQm9zdG9uLClnKE1BKTYxIGIoMDIxMTEtMTMwNywpMzUKK2IoVVNBKTM5MCAxMzgwIHkoRXYpbShlcnkpbShvbmUpYyhpcylnKHApcyhlcm1pdHRlZClmKHRvKWgoY29wKW0oeSlnCisoYW5kKWYoZGlzdHJpYnV0ZSlnKHYpbShlcmJhdGltKWgoY29waWVzKTM5MCAxNDkwIHkob2YpZyh0aGlzKWYKKyhsaWNlbnNlKWgoZG8pcyhjdW1lbiltKHQsKWcoYnV0KWUoYyltKGhhbmdpbmcpaihpdClmKGlzKWYobm90KWgoYWxsbyltCisodyltKGVkLikxOTkgMTYzMiB5KDAuKTYxIGIoUFJFQU1CTEUpMzMwIDE3NzAgeShUaGUpMzcKK2IocHVycClzKG9zZSllKG9mKWkodGhpcylnKExpY2Vuc2UpaChpcylmKHRvKWgobWFrKW0oZSlnKGEpZyhtYW4pbQorKHVhbCwpaCh0ZXh0YilzKG8pcyhvaywpaChvcilkKG90aGVyKWcoZnVuY3Rpb25hbCloKGFuZCkzMzAKKzE4ODAgeSh1c2VmdWwpMjkgYihkbylzKGN1bWVuKW0odCloIEZqKGZyZWUpMzYgYiBGcihpbikyOQorYih0aGUpaShzZW5zZSlmKG9mKWcoZnJlZWRvbTopNDEgYih0bykzMSBiKGFzc3VyZSllKGV2KW0oZXJ5KW0ob25lKWoKKyh0aGUpZShlXDAxM2VjdGl2KW0oZSlqKGZyZWVkb20pMzMwIDE5OTAgeSh0bylmKGNvcCltKHkpZyhhbmQpZgorKHJlZGlzdHJpYnV0ZSlnKGl0LCloKHdpdGgpZyhvcilmKHdpdGhvdXQpZyhtbylzKGRpZnlpbmcpZyhpdCwpaQorKGVpdGhlcilmKGNvbW1lcmNpYWxseSloKG9yKWUobm9uLSkzMzAgMjA5OSB5KGNvbW1lcmNpYWxseSktOAorYiguKTU2IGIoU2Vjb25kYXJpbHkpLTggYigsKTM2IGIodGhpcylmKExpY2Vuc2UpZyhwcmVzZXJ2KW0oZXMpZyhmb3IpZgorKHRoZSloKGF1dGhvcilmKGFuZClnKHB1Ymxpc2hlcilmKGEpaSh3KW0oYSltKHkpMzMwIDIyMDkKK3kodG8paShnZXQpZyhjcmVkaXQpZyhmb3IpZih0aGVpcilnKHcpbShvcmssKWkod2hpbGUpZShub3QpZyhiKXMoZWluZylnCisoY29uc2lkZXJlZClnKHJlc3ApcyhvbnNpYmxlKWYoZm9yKWgobW8pcyhkaVwwMTRjYXRpb25zKTMzMAorMjMxOCB5KG1hZGUpMzAgYihiKW0oeSloKG90aGVycy4pMzMwIDI0NTcgeShUaGlzKTIyIGIoTGljZW5zZSlpKGlzKWYoYSkKK2goa2luZCllKG9mKWkoXFxjb3ApbSh5bGVmdCIsKWood2hpYyltKGgpYyhtZWFucylnKHRoYXQpaChkZXJpdiktNQorYihhdGl2KW0oZSkyNCBiKHcpbShvcmtzKWYob2YpaCh0aGUpZihkbylzKGN1bWVuKW0odCkzMzAKKzI1NjYgeShtKW0odXN0KTM0IGIodGhlbXNlbHYpbShlcyloKGIpcyhlKWUoZnJlZSloKGluKWcodGhlKWcoc2FtZSlnCisoc2Vuc2UuKTUxIGIoSXQpMzQgYihjb21wbGVtZW4pbSh0cyloKHRoZSlmKEdOVSlnKEdlbmVyYWwpaChQdWJsaWMpMzMwCisyNjc2IHkoTGljZW5zZSwpYyh3aGljKW0oaClmKGlzKWgoYSlmKGNvcCltKHlsZWZ0KWkobGljZW5zZSlnKGRlc2lnbmVkKQorZShmb3IpZyhmcmVlKWgoc29mdCltKHcpbShhcmUuKTMzMCAyODE0IHkoVyktOCBiKGUpMzEKK2IoaGEpbSh2KW0oZSlmKGRlc2lnbmVkKWcodGhpcylmKExpY2Vuc2UpaChpbilmKG9yZGVyKWcodG8paSh1c2UpZShpdCloCisoZm9yKWYobWFuKW0odWFscyloKGZvcilmKGZyZWUpaChzb2Z0KW0odyltKGFyZSwpaChiKXMoZWNhdXNlKTMzMAorMjkyNCB5KGZyZWUpNDIgYihzb2Z0KW0odyltKGFyZSlpKG5lZWRzKWUoZnJlZSlnKGRvKXMoY3VtZW4pbSh0YXRpb246KQorNjUgYihhKTQyIGIoZnJlZSloKHByb2dyYW0pZihzaG91bGQpZihjb21lKWkod2l0aClmKG1hbiltKHVhbHMpMzMwCiszMDMzIHkocHJvKW0odmlkaW5nKTI5IGIodGhlKWcoc2FtZSlnKGZyZWVkb21zKWYodGhhdClpKHRoZSlmKHNvZnQpbSh3KQorbShhcmUpaChkbylzKGVzLik0MCBiKEJ1dCkyOSBiKHRoaXMpZihMaWNlbnNlKWkoaXMpZihub3QpZyhsaW1pdGVkKWcKKyh0bykzMzAgMzE0MyB5KHNvZnQpbSh3KW0oYXJlKWoobWFuKW0odWFsczspZihpdClnKGNhbilnKGIpcyhlKWYodXNlZClnCisoZm9yKWcoYW4pbSh5KWgodGV4dHVhbCloKHcpbShvcmssKWYocmVnYXJkbGVzcylnKG9mKWcoc3ViKTUKK2IoamVjdCkzMCBiKG1hdHRlcilpKG9yKTMzMCAzMjUyIHkod2hldGhlcilmKGl0KWgoaXMpZihwdWJsaXNoZWQpZihhcylpCisoYSlmKHByaW4pbSh0ZWQpZyhiKXMobylzKG9rLik0NCBiKFcpLTggYihlKTMyIGIocmVjb21tZW5kKWYodGhpcyloCisoTGljZW5zZSlnKHByaW5jaXBhbGx5KWYoZm9yKTMzMCAzMzYyIHkodyltKG9ya3MpZih3aG9zZSloKHB1cnApcyhvc2UpZAorKGlzKWooaW5zdHJ1Y3Rpb24pZihvcilnKHJlZmVyZW5jZS4pMTk5IDM1MDAgeSgxLik2MQorYihBUFBMSUNBQklMSVRZKTI5IGIoQU5EKWooREVGSU5JVElPTlMpMzMwIDM2MzkgeShUaGlzKTM5CitiKExpY2Vuc2UpaShhcHBsaWVzKWYodG8pZyhhbiltKHkpaChtYW4pbSh1YWwpZihvcilnKG90aGVyKWcodyltKG9yaywpaQorKGluKWUoYW4pbSh5KWcobWVkaXVtLClpKHRoYXQpZShjb24pbSh0YWlucylpKGEpMzMwIDM3NDgKK3kobm90aWNlKWgocGxhY2VkKWYoYiltKHkpZih0aGUpaChjb3ApbSh5cmlnaCltKHQpaChob2xkZXIpZShzYSltKHlpbmcpCitoKGl0KWcoY2FuKWcoYilzKGUpZihkaXN0cmlidXRlZClmKHVuZGVyKWcodGhlKWkodGVybXMpMzMwCiszODU4IHkob2YpYyh0aGlzKWYoTGljZW5zZS4pNjIgYihTdWMpbShoKTM3IGIoYSloKG5vdGljZSloKGdyYW4pbSh0cylmCisoYSlnKHcpbShvcmxkLXdpZGUsKWgocm8pbSh5KW0oYWx0KW0oeS1mcmVlKWkobGljZW5zZSwpZih1bmxpbWl0ZWQpZAorKGluKTMzMCAzOTY3IHkoZHVyYXRpb24sKTQ5IGIodG8pZCh1c2UpZih0aGF0KWcodyltKG9yayloKHVuZGVyKWQodGhlKWoKKyhjb25kaXRpb25zKWYoc3RhdGVkKWgoaGVyZWluLik4NSBiKFRoZSk0NSBiKFxcRG8pcyhjdW1lbiltKHQiLCkzMzAKKzQwNzcgeShiKXMoZWxvKW0odywpMjkgYihyZWZlcnMpZih0byloKGFuKW0oeSlnKHN1YyltKGgpZihtYW4pbSh1YWwpaAorKG9yKWYodyltKG9yay4pNDAgYihBbiltKHkpMjkgYihtZW0pbShiKXMoZXIpZShvZilpKHRoZSlmKHB1YmxpYylnKGlzKWcKKyhhKWgobGljZW5zZWUsKWkoYW5kKTMzMCA0MTg3IHkoaXMpMjUgYihhZGRyZXNzZWQpZihhcyloKFxceSltKG91Ii4pNDAKK2IoWSktOCBiKG91KTI2IGIoYWNjZXB0KWcodGhlKWYobGljZW5zZSloKGlmKWYoeSltKG91KWgoY29wKW0oeSktOAorYigsKTI3IGIobW8pcyhkaWZ5KWQob3IpaChkaXN0cmlidXRlKWcodGhlKWcodyltKG9yaykzMzAKKzQyOTYgeShpbikzMCBiKGEpaCh3KW0oYSltKHkpZyhyZXF1aXJpbmcpZihwKXMoZXJtaXNzaW9uKWYodW5kZXIpZyhjb3ApCittKHlyaWdoKW0odClqKGxhKW0ody4pMzMwIDQ0MzUgeShBKWkoXFxNbylzKGRpXDAxNGVkKWYoViktOAorYihlcnNpb24iKTM1IGIob2YpZih0aGUpZyhEbylzKGN1bWVuKW0odClnKG1lYW5zKWcoYW4pbSh5KWcodyltKG9yaylmCisoY29uKW0odGFpbmluZylqKHRoZSllKERvKXMoY3VtZW4pbSh0KWcob3IpMzMwIDQ1NDQgeShhKWsocClzKG9ydGlvbilmCisob2YpaChpdCwpaShlaXRoZXIpZShjb3BpZWQpZyh2KW0oZXJiYXRpbSwpaShvcilkKHdpdGgpaChtbylzCisoZGlcMDE0Y2F0aW9ucylmKGFuZC9vciloKHRyYW5zbGF0ZWQpZyhpbiltKHRvKTMzMCA0NjU0Cit5KGFub3RoZXIpMzEgYihsYW5ndWFnZS4pMzMwIDQ3OTIgeShBKTI2IGIoXFxTZWNvbmRhcnkpZyhTZWN0aW9uIiloKGlzKQorZihhKWgobmFtZWQpZShhcHApcyhlbmRpeClmKG9yKWkoYSloKGZyb24pbSh0LW1hdHRlcilnKHNlY3Rpb24pZyhvZilmCisodGhlKWcoRG8pcyhjdW1lbiltKHQpMzMwIDQ5MDIgeSh0aGF0KWMoZGVhbHMpZyhleGNsdXNpdiltKGVseSloKHdpdGgpZQorKHRoZSlnKHJlbGF0aW9uc2hpcCloKG9mKWYodGhlKWgocHVibGlzaGVycylkKG9yKWkoYXV0aG9ycylnKG9mKWgodGhlKWYKKyhEbylzKGN1bWVuKW0odCkzMzAgNTAxMSB5KHRvKTM4IGIodGhlKWYoRG8pcyhjdW1lbiltKHQncylpKG8pbSh2KW0KKyhlcmFsbClnKHN1Yik1IGIoamVjdCkzNyBiKFwob3IpaCh0bylnKHJlbGF0ZWQpZyhtYXR0ZXJzXCkpZyhhbmQpZihjb24pCittKHRhaW5zKWgobm90aGluZylmKHRoYXQpMzMwIDUxMjEgeShjb3VsZClqKGZhbGwpaChkaXJlY3RseSlnKHdpdGhpbilmCisodGhhdCloKG8pbSh2KW0oZXJhbGwpaShzdWIpNSBiKGplY3QuKTcwIGIoXChUaCltKHVzLCk0MgorYihpZillKHRoZSloKERvKXMoY3VtZW4pbSh0KWcoaXMpZihpbilnKHBhcnQpaChhKTMzMAorNTIzMCB5KHRleHRiKXMobylzKG9rKTI0IGIob2YpZyhtYXRoZW1hdGljcywpaihhKWQoU2Vjb25kYXJ5KWYoU2VjdGlvbikKK2gobWEpbSh5KWcobm90KWcoZXhwbGFpbilnKGFuKW0oeSlnKG1hdGhlbWF0aWNzLlwpKTQwCitiKFRoZSkzMzAgNTM0MCB5KHJlbGF0aW9uc2hpcCkyOCBiKGNvdWxkKWYoYilzKGUpZyhhKWcobWF0dGVyKWkob2YpZQorKGhpc3RvcmljYWwpaShjb25uZWN0aW9uKWYod2l0aClmKHRoZSloKHN1Yik1IGIoamVjdCkyNworYihvcilnKHdpdGgpZyhyZWxhdGVkKXAgZW9wIGVuZAorJSVQYWdlOiAxNCAxOAorVGVYRGljdCBiZWdpbiAxNCAxNyBib3AgMTUwIC0xMTYgYSBGcigxNCkyNjUxIGIoR05VKTMxCitiKEhpc3RvcnkpZyhMaWJyYXJ5KTMzMCAyOTkgeShtYXR0ZXJzLCkzOCBiKG9yKWQob2YpaChsZWdhbCwpaQorKGNvbW1lcmNpYWwsKWgocGhpbG9zb3BoaWNhbCwpZihldGhpY2FsKWYob3IpZShwKXMob2xpdGljYWwpaShwKXMKKyhvc2l0aW9uKWYocmVnYXJkaW5nKTMzMCA0MDggeSh0aGVtLikzMzAgNTQ5IHkoVGhlKTI1CitiKFxcSW4pbSh2KS01IGIoYXJpYW4pbSh0KTI3IGIoU2VjdGlvbnMiKWcoYXJlKWYoY2VydGFpbilnKFNlY29uZGFyeSlnCisoU2VjdGlvbnMpZyh3aG9zZSlmKHRpdGxlcylpKGFyZSlmKGRlc2lnbmF0ZWQsKWkoYXMpMzMwCis2NTkgeShiKXMoZWluZyllKHRob3NlKWgob2YpZyhJbiltKHYpLTUgYihhcmlhbiltKHQpMjcKK2IoU2VjdGlvbnMsKWkoaW4pZCh0aGUpaChub3RpY2UpaCh0aGF0KWYoc2EpbSh5cylnKHRoYXQpZyh0aGUpZyhEbylzCisoY3VtZW4pbSh0KWcoaXMpZyhyZWxlYXNlZCkzMzAgNzY5IHkodW5kZXIpZih0aGlzKWkoTGljZW5zZS4pNDAKK2IoSWYpMjcgYihhKWgoc2VjdGlvbiloKGRvKXMoZXMpZihub3QpZihcMDE0dCloKHRoZSlnKGFiKXMobyltKHYpbShlKWgKKyhkZVwwMTRuaXRpb24pZShvZiloKFNlY29uZGFyeSlmKHRoZW4paChpdClnKGlzKTMzMCA4NzgKK3kobm90KWsoYWxsbyltKHcpbShlZClpKHRvKWUoYilzKGUpZyhkZXNpZ25hdGVkKWcoYXMpZyhJbiltKHYpLTUKK2IoYXJpYW4pbSh0Lik0NiBiKFRoZSkzMSBiKERvKXMoY3VtZW4pbSh0KWkobWEpbSh5KWYoY29uKW0odGFpbilpKHplcm8pCitlKEluKW0odiktNSBiKGFyaWFuKW0odCkzMzAgOTg4IHkoU2VjdGlvbnMuKTM5IGIoSWYpMjUKK2IodGhlKWYoRG8pcyhjdW1lbiltKHQpaShkbylzKGVzKWUobm90KWgoaWRlbiltKHRpZnkpZyhhbiltKHkpZyhJbiltKHYpCistNSBiKGFyaWFuKW0odCkyNSBiKFNlY3Rpb25zKWgodGhlbillKHRoZXJlKWgoYXJlKWcobm9uZS4pMzMwCisxMTI5IHkoVGhlKTM2IGIoXFxDbyltKHYpbShlcilpKFQpLTggYihleHRzIikzOCBiKGFyZSlmKGNlcnRhaW4pZworKHNob3J0KWcocGFzc2FnZXMpZyhvZilnKHRleHQpZyh0aGF0KWgoYXJlKWYobGlzdGVkLClpKGFzKWQoRiktOAorYihyb24pbSh0LUNvKW0odiltKGVyKTMzMCAxMjM4IHkoVClnKGV4dHMpMjYgYihvcilmKEJhYyltKGstQ28pbSh2KW0KKyhlcilqKFQpLTggYihleHRzLCkyNyBiKGluKWQodGhlKWgobm90aWNlKWkodGhhdCllKHNhKW0oeXMpaCh0aGF0KWcKKyh0aGUpZihEbylzKGN1bWVuKW0odCloKGlzKWYocmVsZWFzZWQpZyh1bmRlcikzMzAgMTM0OAoreSh0aGlzKWgoTGljZW5zZS4pNDAgYihBKTI1IGIoRiktOCBiKHJvbiltKHQtQ28pbSh2KW0oZXIpMjkKK2IoVCktOCBiKGV4dCkyNiBiKG1hKW0oeSloKGIpcyhlKWUoYXQpaShtb3N0KWYoNSlnKHcpbShvcmRzLClnKGFuZClnKGEpCitnKEJhYyltKGstQ28pbSh2KW0oZXIpaihUKS04IGIoZXh0KTI2IGIobWEpbSh5KTMzMCAxNDU3Cit5KGIpcyhlKWsoYXQpaChtb3N0KWcoMjUpZyh3KW0ob3Jkcy4pMzMwIDE1OTggeShBKTM2CitiKFxcVCktOCBiKHJhbnNwYXJlbiltKHQiKTM2IGIoY29wKW0oeSlnKG9mKWcodGhlKWYoRG8pcyhjdW1lbiltKHQpaAorKG1lYW5zKWcoYSlnKG1hYyltKGhpbmUtcmVhZGFibGUpaChjb3ApbSh5KS04IGIoLCkzOAorYihyZXByZXNlbiltKHRlZCkzMzAgMTcwOCB5KGluKWQoYSloKGZvcm1hdClnKHdob3NlKWcoc3ApcworKGVjaVwwMTRjYXRpb24pZyhpcylnKGEpbSh2KS01IGIoYWlsYWJsZSkzOCBiKHRvKWYodGhlKWYoZ2VuZXJhbClnCisocHVibGljLCloKHRoYXQpZihpcylnKHN1aXRhYmxlKWcoZm9yKTMzMCAxODE3IHkocmV2aXNpbmcpYyh0aGUpZyhkbylzCisoY3VtZW4pbSh0KWYoc3RyYWlnaCltKHRmb3J3KW0oYXJkbHkpaSh3aXRoKWUoZ2VuZXJpYylpKHRleHQpZyhlZGl0b3JzKQorZihvcilmKFwoZm9yKWgoaW1hZ2VzKWgoY29tLSkzMzAgMTkyNyB5KHApcyhvc2VkKTIzIGIob2YpaChwaXhlbHNcKSlnCisoZ2VuZXJpYyloKHBhaW4pbSh0KWYocHJvZ3JhbXMpZyhvcilmKFwoZm9yKWgoZHJhKW0od2luZ3NcKSlnKHNvbWUpZworKHdpZGVseSlnKGEpbSh2KS01IGIoYWlsYWJsZSkyNiBiKGRyYSltKHdpbmcpMzMwIDIwMzcKK3koZWRpdG9yLClrKGFuZClmKHRoYXQpZyhpcylnKHN1aXRhYmxlKWgoZm9yKWYoaW5wdXQpZih0bylpKHRleHQpZworKGZvcm1hdHRlcnMpZihvcilnKGZvcilnKGF1dG9tYXRpYylpKHRyYW5zbGF0aW9uKWYodG8pMzMwCisyMTQ2IHkoYSlkKHYpLTUgYihhcmlldCltKHkpMjggYihvZilmKGZvcm1hdHMpZyhzdWl0YWJsZSloKGZvcillKGlucHV0KQorZyh0bylpKHRleHQpZyhmb3JtYXR0ZXJzLik0MCBiKEEpMjcgYihjb3ApbSh5KWcobWFkZSlnKGluKWcoYW4pZworKG90aGVyd2lzZSkzMzAgMjI1NiB5KFQpLTggYihyYW5zcGFyZW4pbSh0KTM3IGIoXDAxNGxlKWgoZm9ybWF0KWcKKyh3aG9zZSlmKG1hcmt1cCwpaShvcillKGFic2VuY2UpaChvZilnKG1hcmt1cCwpZyhoYXMpZyhiKXMoZWVuKWYKKyhhcnJhbmdlZClnKHRvKTMzMCAyMzY1IHkodGgpbSh3KW0oYXJ0KTI3IGIob3IpZyhkaXNjb3VyYWdlKWcKKyhzdWJzZXF1ZW4pbSh0KWYobW8pcyhkaVwwMTRjYXRpb24paChiKW0oeSlnKHJlYWRlcnMpZihpcylnKG5vdCloKFQpLTgKK2IocmFuc3BhcmVuKW0odC4pMzkgYihBbikyNyBiKGltYWdlKTMzMCAyNDc1IHkoZm9ybWF0KTM1CitiKGlzKWYobm90KWgoVCktOCBiKHJhbnNwYXJlbiltKHQpMzQgYihpZilnKHVzZWQpZyhmb3IpZyhhbiltKHkpZworKHN1YnN0YW4pbSh0aWFsKWgoYW1vdW4pbSh0KWcob2YpZyh0ZXh0Lik1MyBiKEEpMzUgYihjb3ApbSh5KWcodGhhdClnCisoaXMpMzMwIDI1ODUgeShub3QpYyhcXFQpLTggYihyYW5zcGFyZW4pbSh0IikzMSBiKGlzKWYoY2FsbGVkKWkKKyhcXE9wYXF1ZSIuKTMzMCAyNzI1IHkoRXhhbXBsZXMpNTMgYihvZilnKHN1aXRhYmxlKWgoZm9ybWF0cylmKGZvcilnKFQpCistOCBiKHJhbnNwYXJlbiltKHQpNTMgYihjb3BpZXMpaChpbmNsdWRlKWYocGxhaW4pZyBGayhhc2NpKXIoaSlnCitGcih3aXRob3V0KTMzMCAyODM1IHkobWFya3VwLCk0MSBiKFQpLTggYihleGluZm8pNDAgYihpbnB1dClmKGZvcm1hdCwpagorKExhVCkxNzc1IDI4NTUgeShFKTE4MjYgMjgzNSB5KFgpZChpbnB1dClnKGZvcm1hdCwpaworRmsoc2dtbCljIEZyKG9yKWcgRmsoeG1sKWcgRnIodXNpbmcpZyhhKWgocHVibGljbHkpMzMwCisyOTQ1IHkoYSltKHYpLTUgYihhaWxhYmxlKTM0IGIgRmsoZHRkKXAgRnIoLClkKGFuZClnCisoc3RhbmRhcmQtY29uZm9ybWluZylnKHNpbXBsZSloIEZrKGh0bWwpcCBGcigsKWYoUCltKG9zdFNjcmlwdCloKG9yKWYKK0ZrKHBkZilnIEZyKGRlc2lnbmVkKWcoZm9yKTMzMCAzMDU0IHkoaCltKHVtYW4pMzcgYihtbylzKGRpXDAxNGNhdGlvbi4pCis2NSBiKEV4YW1wbGVzKTM4IGIob2YpZyh0cmFuc3BhcmVuKW0odClnKGltYWdlKWkoZm9ybWF0cyllKGluY2x1ZGUpZworRmsocG5nKXAgRnIoLClpIEZrKHgpbihjZillIEZyKGFuZCkzMzAgMzE2NCB5IEZrKGpwZylwCitGciguKTYzIGIoT3BhcXVlKTM4IGIoZm9ybWF0cylnKGluY2x1ZGUpZyhwcm9wcmlldGFyeSlnKGZvcm1hdHMpZyh0aGF0KQoraChjYW4pZihiKXMoZSlnKHJlYWQpZyhhbmQpZihlZGl0ZWQpaShvbmx5KTMzMCAzMjczIHkoYiltKHkpZworKHByb3ByaWV0YXJ5KWcodyltKG9yZClnKHBybylzKGNlc3NvcnMsKWogRmsoc2dtbCljIEZyKG9yKWkKK0ZrKHhtbCllIEZyKGZvcilpKHdoaWMpbShoKWYodGhlKWcgRmsoZHRkKWcgRnIoYW5kL29yKWcocHJvKXMoY2Vzc2luZykKKzMzMCAzMzgzIHkodG8pcyhvbHMpMzIgYihhcmUpZihub3QpZyhnZW5lcmFsbHkpaChhKW0odiktNQorYihhaWxhYmxlLCkzNCBiKGFuZCljKHRoZSloKG1hYyltKGhpbmUtZ2VuZXJhdGVkKWkgRmsoaHRtbClwCitGcigsKWQoUCltKG9zdFNjcmlwdClpKG9yKWYgRmsocGRmKTMzMCAzNDkzIHkgRnIocHJvKXMoZHVjZWQpZShiKW0oeSloCisoc29tZSloKHcpbShvcmQpZihwcm8pcyhjZXNzb3JzKWcoZm9yKWcob3V0cHV0KWcocHVycClzKG9zZXMpZShvbmx5KS04CitiKC4pMzMwIDM2MzQgeShUaGUpMzQgYihcXFRpdGxlKWgoUCltKGFnZSIpaShtZWFucywpZShmb3IpZihhKWgocHJpbiltCisodGVkKWYoYilzKG8pcyhvaywpaCh0aGUpZih0aXRsZSlpKHBhZ2UpZihpdHNlbGYsKWgocGx1cyllKHN1YyltKGgpZgorKGZvbGxvKW0od2luZykzMzAgMzc0MyB5KHBhZ2VzKTI4IGIoYXMpZyhhcmUpZyhuZWVkZWQpZyh0bylnKGhvbGQsKWcKKyhsZWdpYmx5KS04IGIoLCkzMCBiKHRoZSllKG1hdGVyaWFsKWgodGhpcylmKExpY2Vuc2UpZyhyZXF1aXJlcylmKHRvKWgKKyhhcHApcyhlYXIpZihpbiloKHRoZSkzMzAgMzg1MyB5KHRpdGxlKWcocGFnZS4pNDAgYihGKS04CitiKG9yKTI4IGIodyltKG9ya3MpZShpbilnKGZvcm1hdHMpaCh3aGljKW0oaClnKGRvKWYobm90KWgoaGEpbSh2KW0oZSloCisoYW4pbSh5KWUodGl0bGUpaihwYWdlKWUoYXMpZyhzdWMpbShoLClnKFxcVGl0bGUpaChQKW0oYWdlIikzMzAKKzM5NjIgeShtZWFucylqKHRoZSlmKHRleHQpaShuZWFyKWUodGhlKWgobW9zdClnKHByb21pbmVuKW0odClnKGFwcClzCisoZWFyYW5jZSlmKG9mKWgodGhlKWcodyltKG9yaydzKWcodGl0bGUsKWgocHJlY2VkaW5nKWYodGhlKTMzMAorNDA3MiB5KGIpcyhlZ2lubmluZylmKG9mKWcodGhlKWgoYilzKG8pcyhkeSllKG9mKWgodGhlKWgodGV4dC4pMzMwCis0MjEzIHkoQSlmKHNlY3Rpb24paChcXEVuKW0odGl0bGVkKWcoWFlaIilmKG1lYW5zKWYoYSloKG5hbWVkKWcKKyhzdWJ1bml0KWUob2YpaCh0aGUpaChEbylzKGN1bWVuKW0odCloKHdob3NlKWUodGl0bGUpaShlaXRoZXIpMzMwCis0MzIyIHkoaXMpZChwcmVjaXNlbHkpZyhYWVopZyhvcilmKGNvbiltKHRhaW5zKWkoWFlaKWYoaW4pZihwYXJlbiltCisodGhlc2VzKWkoZm9sbG8pbSh3aW5nKWcodGV4dClnKHRoYXQpZih0cmFuc2xhdGVzKWgoWFlaKWUoaW4pMzMwCis0NDMyIHkoYW5vdGhlcillKGxhbmd1YWdlLik0MCBiKFwoSGVyZSkyNiBiKFhZWilmKHN0YW5kcylmKGZvciloKGEpZworKHNwKXMoZWNpXDAxNGMpZyhzZWN0aW9uKWgobmFtZSlmKG1lbiltKHRpb25lZCloKGIpcyhlbG8pbSh3LClnKHN1YyltCisoaCkzMzAgNDU0MiB5KGFzKWkoXFxBYyltKGtubyltKHdsZWRnZW1lbiltKHRzIiwpMzMgYihcXERlZGljYXRpb25zIiwpZQorKFxcRW5kb3JzZW1lbiltKHRzIiwpZShvcilmKFxcSGlzdG9yeSIuXCkpNDIgYihUKS04IGIobykyOQorYihcXFByZXNlcnYpbShlKTMzMCA0NjUxIHkodGhlKTM0IGIoVGl0bGUiKWgob2YpZShzdWMpbShoKWgoYSlnCisoc2VjdGlvbilnKHdoZW4pZih5KW0ob3UpaChtbylzKGRpZnkpZSh0aGUpaShEbylzKGN1bWVuKW0odCloKG1lYW5zKWUKKyh0aGF0KWgoaXQpZyhyZW1haW5zKWcoYSkzMzAgNDc2MSB5KHNlY3Rpb24pZShcXEVuKW0odGl0bGVkKWYoWFlaIilnCisoYWNjb3JkaW5nKWcodG8pZyh0aGlzKWcoZGVcMDE0bml0aW9uLikzMzAgNDkwMiB5KFRoZSljKERvKXMoY3VtZW4pbSh0KQoraShtYSltKHkpZihpbmNsdWRlKWYoVyktOCBiKGFycmFuKW0odCltKHkpMzAgYihEaXNjbGFpbWVycylmKG5leHQpZih0bykKK2codGhlKWcobm90aWNlKWgod2hpYyltKGgpZShzdGF0ZXMpaSh0aGF0KTMzMCA1MDExIHkodGhpcykzNAorYihMaWNlbnNlKWcoYXBwbGllcylnKHRvKWgodGhlKWYoRG8pcyhjdW1lbiltKHQuKTUyIGIoVGhlc2UpMzMKK2IoVyktOCBiKGFycmFuKW0odCltKHkpMzYgYihEaXNjbGFpbWVycylmKGFyZSlnKGNvbnNpZGVyZWQpZSh0bykzMzAKKzUxMjEgeShiKXMoZSlrKGluY2x1ZGVkKWcoYiltKHkpZyhyZWZlcmVuY2UpaChpbilnKHRoaXMpZihMaWNlbnNlLClqCisoYnV0KWQob25seSloKGFzKWcocmVnYXJkcylmKGRpc2NsYWltaW5nKWkodyltKGFycmFuKW0odGllczopMzMwCis1MjMwIHkoYW4pbSh5KWUob3RoZXIpZyhpbXBsaWNhdGlvbilpKHRoYXQpZSh0aGVzZSlnKFcpLTgKK2IoYXJyYW4pbSh0KW0oeSkzOSBiKERpc2NsYWltZXJzKWYobWEpbSh5KWcoaGEpbSh2KW0oZSlnKGlzKWYodiltKG9pZClnCisoYW5kKWYoaGFzKWgobm8pMzMwIDUzNDAgeShlXDAxM2VjdCkzMiBiKG9uKWUodGhlKWgobWVhbmluZylmKG9mKWgKKyh0aGlzKWYoTGljZW5zZS4pcCBlb3AgZW5kCislJVBhZ2U6IDE1IDE5CitUZVhEaWN0IGJlZ2luIDE1IDE4IGJvcCAxNTAgLTExNiBhIEZyKEFwcClzKGVuZGl4KTI5CitiKEE6KWgoQ29wKW0oeWluZyloKFRoaXMpZihNYW4pbSh1YWwpMjEwNSBiKDE1KTE5OSAyOTkKK3koMi4pNjEgYihWRVJCQSktOCBiKFRJTSkzMSBiKENPUFlJTkcpMzMwIDQ0NSB5KFkpLTgKK2Iob3UpMzkgYihtYSltKHkpZihjb3ApbSh5KWgoYW5kKWUoZGlzdHJpYnV0ZSloKHRoZSlnKERvKXMoY3VtZW4pbSh0KWgKKyhpbilmKGFuKW0oeSlnKG1lZGl1bSwpaChlaXRoZXIpZyhjb21tZXJjaWFsbHkpaChvcikzMzAKKzU1NSB5KG5vbmNvbW1lcmNpYWxseSktOCBiKCwpNDggYihwcm8pbSh2aWRlZCk0MiBiKHRoYXQpaCh0aGlzKWYKKyhMaWNlbnNlLCk0NyBiKHRoZSk0MiBiKGNvcCltKHlyaWdoKW0odClpKG5vdGljZXMsKWooYW5kKTQyCitiKHRoZSloKGxpY2Vuc2UpMzMwIDY2NCB5KG5vdGljZSkzNyBiKHNhKW0oeWluZylnKHRoaXMpZShMaWNlbnNlKWkKKyhhcHBsaWVzKWUodG8paSh0aGUpZihEbylzKGN1bWVuKW0odClnKGFyZSlnKHJlcHJvKXMoZHVjZWQpZShpbilpKGFsbClnCisoY29waWVzLClqKGFuZCkzMzAgNzc0IHkodGhhdCkyNyBiKHkpbShvdSlnKGFkZClmKG5vKWgob3RoZXIpZgorKGNvbmRpdGlvbnMpaCh3aGF0c28pcyhldiltKGVyKWgodG8pZih0aG9zZSlnKG9mKWcodGhpcylmKExpY2Vuc2UuKTQwCitiKFkpLTggYihvdSkyNyBiKG1hKW0oeSlnKG5vdClnKHVzZSkzMzAgODgzIHkodGVjKW0oaG5pY2FsKTM1CitiKG1lYXN1cmVzKWQodG8paShvYnN0cnVjdClmKG9yKWcoY29uKW0odHJvbCloKHRoZSlmKHJlYWRpbmcpZyhvcilnCisoZnVydGhlcillKGNvcCltKHlpbmcpaihvZilmKHRoZSlnKGNvcGllcykzMzAgOTkzIHkoeSltKG91KTI1CitiKG1hayltKGUpZyhvcilnKGRpc3RyaWJ1dGUuKTM4IGIoSG8pbSh3KW0oZXYpbShlciwpMjgKK2IoeSltKG91KWQobWEpbSh5KWcoYWNjZXB0KWgoY29tcClzKGVuc2F0aW9uKWYoaW4pZihleGMpbShoYW5nZSlqKGZvcilkCisoY29waWVzLikzMzAgMTEwMyB5KElmKTMyIGIoeSltKG91KWcoZGlzdHJpYnV0ZSlnKGEpaChsYXJnZSlnKGVub3VnaClmCisobiltKHVtKW0oYilzKGVyKWYob2YpaChjb3BpZXMpaCh5KW0ob3UpZihtKW0odXN0KWgoYWxzbylnKGZvbGxvKW0odylnCisodGhlKWYoY29uZGl0aW9ucykzMzAgMTIxMiB5KGluKWUoc2VjdGlvbilpKDMuKTMzMCAxMzU4Cit5KFkpLTggYihvdSkyMSBiKG1hKW0oeSloKGFsc28pZihsZW5kKWcoY29waWVzLClpKHVuZGVyKWQodGhlKWgoc2FtZSlnCisoY29uZGl0aW9ucylnKHN0YXRlZCloKGFiKXMobyltKHYpbShlLClpKGFuZCljKHkpbShvdSloKG1hKW0oeSlnCisocHVibGljbHkpMzMwIDE0NjggeShkaXNwbGEpbSh5KTMxIGIoY29waWVzLikxOTkgMTYxNAoreSgzLik2MSBiKENPUFlJTkcpMzAgYihJTilnKFFVQU5USVRZKTMzMCAxNzYwIHkoSWYpMjUKK2IoeSltKG91KWcocHVibGlzaClmKHByaW4pbSh0ZWQpZyhjb3BpZXMpaShcKG9yKWcoY29waWVzKWcoaW4pZihtZWRpYSlnCisodGhhdCloKGNvbW1vbmx5KWcoaGEpbSh2KW0oZSlnKHByaW4pbSh0ZWQpZihjbyltKHYpbShlcnNcKSlpKG9mKTMzMAorMTg3MCB5KHRoZSkzMiBiKERvKXMoY3VtZW4pbSh0LCloKG4pbSh1bSltKGIpcyhlcmluZyllKG1vcmUpaCh0aGFuKWYKKygxMDAsKWooYW5kKWQodGhlKWgoRG8pcyhjdW1lbiltKHQncyloKGxpY2Vuc2UpZihub3RpY2UpaChyZXF1aXJlcykzMzAKKzE5NzkgeShDbyltKHYpbShlcilpKFQpLTggYihleHRzLCkzNiBiKHkpbShvdSlmKG0pbSh1c3QpZihlbmNsb3NlKWkKKyh0aGUpZShjb3BpZXMpaChpbilmKGNvKW0odiltKGVycylpKHRoYXQpZihjYXJyeSktOCBiKCwpMzYKK2IoY2xlYXJseSlmKGFuZClmKGxlZ2libHkpLTggYigsKTM3IGIoYWxsKTMzMCAyMDg5IHkodGhlc2UpaihDbyltKHYpbQorKGVyKWcoVCktOCBiKGV4dHM6KTU5IGIoRiktOCBiKHJvbiltKHQtQ28pbSh2KW0oZXIpNDEKK2IoVCktOCBiKGV4dHMpNDAgYihvbilmKHRoZSlnKGZyb24pbSh0KWcoY28pbSh2KW0oZXIsKTQ0CitiKGFuZCkzOCBiKEJhYyltKGstQ28pbSh2KW0oZXIpayhUKS04IGIoZXh0cyk0MCBiKG9uKTMzMAorMjE5OCB5KHRoZSkyOSBiKGJhYyltKGspaChjbyltKHYpbShlci4pNDIgYihCb3RoKTMwIGIoY28pbSh2KW0oZXJzKWgobSkKK20odXN0KWUoYWxzbyloKGNsZWFybHkpZyhhbmQpZihsZWdpYmx5KWgoaWRlbiltKHRpZnkpZih5KW0ob3UpaChhcylmCisodGhlKWgocHVibGlzaGVyKTMzMCAyMzA4IHkob2Ypayh0aGVzZSloKGNvcGllcy4pNTMgYihUaGUpMzQKK2IoZnJvbiltKHQpaChjbyltKHYpbShlciloKG0pbSh1c3QpZShwcmVzZW4pbSh0KWcodGhlKWgoZnVsbClmKHRpdGxlKWkKKyh3aXRoKWQoYWxsKWoodyltKG9yZHMpZChvZilpKHRoZSlmKHRpdGxlKTMzMCAyNDE4IHkoZXF1YWxseSllCisocHJvbWluZW4pbSh0KWUoYW5kKWcodmlzaWJsZS4pNDMgYihZKS04IGIob3UpMzEgYihtYSltKHkpZyhhZGQpZworKG90aGVyKWcobWF0ZXJpYWwpaChvbilmKHRoZSlnKGNvKW0odiltKGVycyloKGluKWUoYWRkaXRpb24uKTMzMAorMjUyNyB5KENvcCltKHlpbmcpMzYgYih3aXRoKWcoYyltKGhhbmdlcyloKGxpbWl0ZWQpZyh0bylnKHRoZSlnKGNvKW0odikKK20oZXJzLClpKGFzKWQobG9uZyloKGFzKWcodGhleSlmKHByZXNlcnYpbShlKWcodGhlKWgodGl0bGUpZyhvZilnKHRoZSkKKzMzMCAyNjM3IHkoRG8pcyhjdW1lbiltKHQpaChhbmQpZShzYXRpc2Z5KWkodGhlc2UpZihjb25kaXRpb25zLClqKGNhbilkCisoYilzKGUpZyh0cmVhdGVkKWgoYXMpZih2KW0oZXJiYXRpbSloKGNvcCltKHlpbmcpZyhpbilmKG90aGVyKTMzMAorMjc0NiB5KHJlc3ApcyhlY3RzLikzMzAgMjg5MiB5KElmKTMyIGIodGhlKWgocmVxdWlyZWQpZih0ZXh0cylpKGZvcillCisoZWl0aGVyKWgoY28pbSh2KW0oZXIpaShhcmUpZSh0bylzKG8pZyh2KW0ob2x1bWlub3VzKWcodG8pZyhcMDE0dClnCisobGVnaWJseSktOCBiKCwpMzUgYih5KW0ob3UpZShzaG91bGQpZihwdXQpMzMwIDMwMDIgeSh0aGUpaChcMDE0cnN0KWYKKyhvbmVzKWgobGlzdGVkKWcoXChhcyloKG1hbiltKHkpZihhcylnKFwwMTR0KWcocmVhc29uYWJseVwpKWcob24pZyh0aGUpCitnKGFjdHVhbCloKGNvKW0odiltKGVyLCloKGFuZCllKGNvbiltKHRpbiltKHVlKWgodGhlKTMzMAorMzExMiB5KHJlc3QpZChvbiltKHRvKWcoYWRqYWNlbiltKHQpaChwYWdlcy4pMzMwIDMyNTgKK3koSWYpMjcgYih5KW0ob3UpZyhwdWJsaXNoKWUob3IpaShkaXN0cmlidXRlKWcoT3BhcXVlKWYoY29waWVzKWkob2YpZgorKHRoZSloKERvKXMoY3VtZW4pbSh0KWYobiltKHVtKW0oYilzKGVyaW5nKWYobW9yZSlpKHRoYW4pZSgxMDAsKTMzMAorMzM2NyB5KHkpbShvdSlpKG0pbSh1c3QpZyhlaXRoZXIpaChpbmNsdWRlKWUoYSlpKG1hYyltKGhpbmUtcmVhZGFibGUpZworKFQpLTggYihyYW5zcGFyZW4pbSh0KTI4IGIoY29wKW0oeSloKGFsb25nKWcod2l0aCllKGVhYyltKGgpaShPcGFxdWUpCiszMzAgMzQ3NyB5KGNvcCltKHkpLTggYigsKTM4IGIob3IpZChzdGF0ZSloKGluKWYob3IpZyh3aXRoKWcoZWFjKW0oaCloCisoT3BhcXVlKWUoY29wKW0oeSlpKGEpZyhjb21wdXRlci1uZXQpbSh3KW0ob3JrKWcobG8pcyhjYXRpb24paChmcm9tKWQKKyh3aGljKW0oaCkzMzAgMzU4NyB5KHRoZSkyNCBiKGdlbmVyYWwpaShuZXQpbSh3KW0ob3JrLXVzaW5nKWYocHVibGljKWUKKyhoYXMpaChhY2Nlc3MpaSh0bylmKGRvKW0od25sb2FkKWYodXNpbmcpZyhwdWJsaWMtc3RhbmRhcmQpZihuZXQpbSh3KW0KKyhvcmspMzMwIDM2OTYgeShwcm90bylzKGNvbHMpNDAgYihhKWYoY29tcGxldGUpaChUKS04CitiKHJhbnNwYXJlbiltKHQpMzkgYihjb3ApbSh5KWcob2YpZyh0aGUpaChEbylzKGN1bWVuKW0odCwpaShmcmVlKWQob2YpZworKGFkZGVkKWYobWF0ZXJpYWwuKTY3IGIoSWYpMzMwIDM4MDYgeSh5KW0ob3UpMzkgYih1c2UpZyh0aGUpZyhsYXR0ZXIpaAorKG9wdGlvbiwpaCh5KW0ob3UpZihtKW0odXN0KWUodGFrKW0oZSlqKHJlYXNvbmFibHkpZShwcnVkZW4pbSh0KWUKKyhzdGVwcywpayh3aGVuKWQoeSltKG91KWgoYilzKGVnaW4pMzMwIDM5MTUgeShkaXN0cmlidXRpb24pZihvZilnCisoT3BhcXVlKWcoY29waWVzKWgoaW4pZShxdWFuKW0odGl0KW0oeSktOCBiKCwpNDMgYih0bykzOAorYihlbnN1cmUpZyh0aGF0KWgodGhpcylmKFQpLTggYihyYW5zcGFyZW4pbSh0KTM4IGIoY29wKW0oeSloKHdpbGwpMzMwCis0MDI1IHkocmVtYWluKTMwIGIodGgpbSh1cylnKGFjY2Vzc2libGUpaShhdClmKHRoZSlmKHN0YXRlZCloKGxvKXMKKyhjYXRpb24paCh1biltKHRpbCllKGF0KWgobGVhc3QpaChvbmUpZSh5KW0oZWFyKWgoYWZ0ZXIpZyh0aGUpZihsYXN0KWgKKyh0aW1lKTMzMCA0MTM0IHkoeSltKG91KTM3IGIoZGlzdHJpYnV0ZSlmKGFuKWgoT3BhcXVlKWYoY29wKW0oeSlpCisoXChkaXJlY3RseSlnKG9yKWUodGhyb3VnaClnKHkpbShvdXIpaChhZ2VuKW0odHMpaChvcilmKHJldGFpbGVyc1wpKWgKKyhvZilmKHRoYXQpMzMwIDQyNDQgeShlZGl0aW9uKTMxIGIodG8pZyh0aGUpZyhwdWJsaWMuKTMzMAorNDM5MCB5KEl0KWsoaXMpZihyZXF1ZXN0ZWQsKWkoYnV0KWUobm90KWgocmVxdWlyZWQsKWcodGhhdClnKHkpbShvdSlnCisoY29uKW0odGFjdCloKHRoZSlmKGF1dGhvcnMpZihvZiloKHRoZSlnKERvKXMoY3VtZW4pbSh0KWcodyltKGVsbCkzMzAKKzQ1MDAgeShiKXMoZWZvcmUpMjggYihyZWRpc3RyaWJ1dGluZylnKGFuKW0oeSloKGxhcmdlKWgobiltKHVtKW0oYilzCisoZXIpZChvZilpKGNvcGllcywpaCh0bylmKGdpdiltKGUpaCh0aGVtKWYoYSlnKGMpbShoYW5jZSloKHRvKWYocHJvKW0KKyh2aWRlKWcoeSltKG91KTMzMCA0NjA5IHkod2l0aCloKGFuKWcodXApcyhkYXRlZClmKHYpbShlcnNpb24paShvZilnCisodGhlKWYoRG8pcyhjdW1lbiltKHQuKTE5OSA0NzU1IHkoNC4pNjEgYihNT0RJRklDQSktOAorYihUSU9OUykzMzAgNDkwMiB5KFkpZyhvdSkyNiBiKG1hKW0oeSlnKGNvcCltKHkpZyhhbmQpZihkaXN0cmlidXRlKWcoYSkKK2goTW8pcyhkaVwwMTRlZClmKFYpLTggYihlcnNpb24pMjYgYihvZilnKHRoZSlnKERvKXMoY3VtZW4pbSh0KWcodW5kZXIpCitlKHRoZSloKGNvbmRpdGlvbnMpMzMwIDUwMTEgeShvZiljKHNlY3Rpb25zKWgoMilnKGFuZCllKDMpaChhYilzKG8pbSh2KQorbShlLClrKHBybyltKHZpZGVkKTIwIGIodGhhdClpKHkpbShvdSlmKHJlbGVhc2UpaSh0aGUpZShNbylzKGRpXDAxNGVkKWYKKyhWKS04IGIoZXJzaW9uKTIyIGIodW5kZXIpZChwcmVjaXNlbHkpMzMwIDUxMjEgeSh0aGlzKTI5CitiKExpY2Vuc2UsKWgod2l0aClmKHRoZSlnKE1vKXMoZGlcMDE0ZWQpZihWKS04IGIoZXJzaW9uKTMwCitiKFwwMTRsbGluZylmKHRoZSlnKHJvbGUpaChvZilmKHRoZSlnKERvKXMoY3VtZW4pbSh0LCloKHRoKW0odXMpZgorKGxpY2Vuc2luZykzMzAgNTIzMCB5KGRpc3RyaWJ1dGlvbilrKGFuZCloKG1vKXMoZGlcMDE0Y2F0aW9uKWcob2YpaAorKHRoZSlmKE1vKXMoZGlcMDE0ZWQpZihWKS04IGIoZXJzaW9uKTM1IGIodG8pZyh3aG8pcyhldiltKGVyKWYocClzCisob3NzZXNzZXMpZihhKWkoY29wKW0oeSlnKG9mKTMzMCA1MzQwIHkoaXQuKTQxIGIoSW4pMzAKK2IoYWRkaXRpb24sKWgoeSltKG91KWYobSltKHVzdCloKGRvKWYodGhlc2UpaCh0aGluZ3MpZihpbilnKHRoZSloKE1vKXMKKyhkaVwwMTRlZCllKFYpLTggYihlcnNpb246KXAgZW9wIGVuZAorJSVQYWdlOiAxNiAyMAorVGVYRGljdCBiZWdpbiAxNiAxOSBib3AgMTUwIC0xMTYgYSBGcigxNikyNjUxIGIoR05VKTMxCitiKEhpc3RvcnkpZyhMaWJyYXJ5KTM1NyAyOTkgeShBLik2MCBiKFVzZSkzMyBiKGluKWYodGhlKWgoVGl0bGUpaChQKW0KKyhhZ2UpZyhcKGFuZClmKG9uKWYodGhlKWgoY28pbSh2KW0oZXJzLClpKGlmKWUoYW4pbSh5XCkpZyhhKWcodGl0bGUpaAorKGRpc3RpbmN0KWYoZnJvbSlnKHRoYXQpZyhvZilnKHRoZSk1MTAgNDA4IHkoRG8pcyhjdW1lbiltKHQsKWooYW5kKWQKKyhmcm9tKWcodGhvc2UpaShvZilmKHByZXZpb3VzKWYodiltKGVyc2lvbnMpaChcKHdoaWMpbShoKWcoc2hvdWxkLClnCisoaWYpZyh0aGVyZSlnKHcpbShlcmUpZyhhbiltKHkpLTggYigsKTUxMCA1MTggeShiKXMoZSkzMQorYihsaXN0ZWQpaChpbilmKHRoZSlnKEhpc3RvcnkpaChzZWN0aW9uKWcob2YpZyh0aGUpZihEbylzKGN1bWVuKW0odFwpLikKKzQ1IGIoWSktOCBiKG91KTMyIGIobWEpbSh5KWcodXNlKWYodGhlKWcoc2FtZSloKHRpdGxlKWgoYXMpNTEwCis2MjggeShhKWUocHJldmlvdXMpZih2KW0oZXJzaW9uKWcoaWYpaCh0aGUpZihvcmlnaW5hbClpKHB1Ymxpc2hlcilkKG9mKQoraCh0aGF0KWgodiltKGVyc2lvbilnKGdpdiltKGVzKWgocClzKGVybWlzc2lvbi4pMzYwIDc1OAoreShCLik2MSBiKExpc3QpMzEgYihvbilmKHRoZSloKFRpdGxlKWcoUCltKGFnZSwpaShhcylkKGF1dGhvcnMsKWgob25lKWcKKyhvcilmKG1vcmUpaChwKXMoZXJzb25zKWUob3IpaChlbiltKHRpdGllcylqKHJlc3ApcyhvbnNpYmxlKWMoZm9yKTUxMAorODY3IHkoYXV0aG9yc2hpcCljKG9mKWgodGhlKWgobW8pcyhkaVwwMTRjYXRpb25zKWYoaW4pZyh0aGUpZyhNbylzCisoZGlcMDE0ZWQpZihWKS04IGIoZXJzaW9uLCkyOCBiKHRvZ2V0aGVyKWcod2l0aClkKGF0KWkobGVhc3QpaChcMDE0diltCisoZSk1MTAgOTc3IHkob2YpYyh0aGUpZyhwcmluY2lwYWwpZyhhdXRob3JzKWYob2YpaSh0aGUpZihEbylzKGN1bWVuKW0KKyh0KWcoXChhbGwpaChvZilnKGl0cylmKHByaW5jaXBhbClnKGF1dGhvcnMsKWgoaWYpZihpdClnKGhhcylnKGZldyltCisoZXIpNTEwIDEwODcgeSh0aGFuKTMwIGIoXDAxNHYpbShlXCksKWgodW5sZXNzKWYodGhleSloKHJlbGVhc2UpZyh5KW0KKyhvdSlnKGZyb20pZih0aGlzKWcocmVxdWlyZW1lbiltKHQuKTM1OSAxMjE3IHkoQy4pNjAKK2IoU3RhdGUpMzIgYihvbillKHRoZSloKFRpdGxlKWgocGFnZSlmKHRoZSlnKG5hbWUpZyhvZilnKHRoZSlnCisocHVibGlzaGVyKWUob2YpaSh0aGUpZyhNbylzKGRpXDAxNGVkKWYoViktOCBiKGVyc2lvbiwpMzIKK2IoYXMpZih0aGUpNTEwIDEzMjYgeShwdWJsaXNoZXIuKTM1NSAxNDU2IHkoRC4pNjEgYihQcmVzZXJ2KW0oZSkzMQorYihhbGwpZyh0aGUpZyhjb3ApbSh5cmlnaCltKHQpaChub3RpY2VzKWYob2YpZyh0aGUpZihEbylzKGN1bWVuKW0odC4pCiszNjMgMTU4NyB5KEUuKTYwIGIoQWRkKTMwIGIoYW4paShhcHByb3ByaWF0ZSlmKGNvcCltKHlyaWdoKW0odClpCisobm90aWNlKWYoZm9yKWcoeSltKG91cilmKG1vKXMoZGlcMDE0Y2F0aW9ucylnKGFkamFjZW4pbSh0KWkodG8pZih0aGUpZworKG90aGVyKTUxMCAxNjk2IHkoY29wKW0oeXJpZ2gpbSh0KWcobm90aWNlcy4pMzY1IDE4MjYKK3koRi4pNjEgYihJbmNsdWRlLCkyOCBiKGltbWVkaWF0ZWx5KWgoYWZ0ZXIpZih0aGUpaChjb3ApbSh5cmlnaCltKHQpZworKG5vdGljZXMsKWgoYSllKGxpY2Vuc2UpaChub3RpY2UpZyhnaXZpbmcpZyh0aGUpZihwdWJsaWMpNTEwCisxOTM2IHkocClzKGVybWlzc2lvbikyMyBiKHRvKWoodXNlKWUodGhlKWcoTW8pcyhkaVwwMTRlZClnKFYpLTgKK2IoZXJzaW9uKTI1IGIodW5kZXIpZSh0aGUpaSh0ZXJtcylmKG9mKWgodGhpcylmKExpY2Vuc2UsKWooaW4pZCh0aGUpZworKGZvcm0pNTEwIDIwNDUgeShzaG8pbSh3bikzMCBiKGluKWcodGhlKWcoQWRkZW5kdW0pZihiKXMoZWxvKW0ody4pMzUzCisyMTc2IHkoRy4pNjEgYihQcmVzZXJ2KW0oZSkyMyBiKGluKWcodGhhdClnKGxpY2Vuc2UpaChub3RpY2UpZyh0aGUpZgorKGZ1bGwpZyhsaXN0cylnKG9mKWcoSW4pbSh2KS01IGIoYXJpYW4pbSh0KTIzIGIoU2VjdGlvbnMpaChhbmQpZQorKHJlcXVpcmVkKWcoQ28pbSh2KW0oZXIpNTEwIDIyODUgeShUKS04IGIoZXh0cykzMSBiKGdpdiltKGVuKWcoaW4pZgorKHRoZSloKERvKXMoY3VtZW4pbSh0J3MpZyhsaWNlbnNlKWgobm90aWNlLikzNTcgMjQxNQoreShILik2MCBiKEluY2x1ZGUpMzAgYihhbilnKHVuYWx0ZXJlZClnKGNvcCltKHkpaChvZilnKHRoaXMpZihMaWNlbnNlLikKKzM5MiAyNTQ1IHkoSS4pNjAgYihQcmVzZXJ2KW0oZSkzMyBiKHRoZSlmKHNlY3Rpb24paChFbiltKHRpdGxlZClnCisoXFxIaXN0b3J5IiwpaChQcmVzZXJ2KW0oZSlmKGl0cylmKFRpdGxlLClpKGFuZClkKGFkZCloKHRvKWgoaXQpZihhbilnCisoaXRlbSk1MTAgMjY1NSB5KHN0YXRpbmcpZChhdClnKGxlYXN0KWcodGhlKWcodGl0bGUsKWgoeSltKGVhciwpZyhuZXcpZAorKGF1dGhvcnMsKWkoYW5kKWUocHVibGlzaGVyKWYob2Ypaih0aGUpZihNbylzKGRpXDAxNGVkKWYoViktOAorYihlcnNpb24pNTEwIDI3NjUgeShhcykzMiBiKGdpdiltKGVuKWcob24pZih0aGUpaChUaXRsZSlnKFApbShhZ2UuKTQ1CitiKElmKTMxIGIodGhlcmUpaChpcylmKG5vKWcoc2VjdGlvbilpKEVuKW0odGl0bGVkKWYoXFxIaXN0b3J5IiloKGluKWUKKyh0aGUpZyhEbylzKGN1LSk1MTAgMjg3NCB5KG1lbiltKHQsKTM3IGIoY3JlYXRlKWYob25lKWYoc3RhdGluZyloKHRoZSlmCisodGl0bGUsKWkoeSltKGVhciwpZyhhdXRob3JzLClmKGFuZCllKHB1Ymxpc2hlcilmKG9mKWkodGhlKWcoRG8pcworKGN1bWVuKW0odCk1MTAgMjk4NCB5KGFzKWgoZ2l2KW0oZW4paChvbilmKGl0cyloKFRpdGxlKWcoUCltKGFnZSwpaQorKHRoZW4pZChhZGQpZyhhbilnKGl0ZW0pZyhkZXNjcmliaW5nKWcodGhlKWcoTW8pcyhkaVwwMTRlZClnKFYpLTgKK2IoZXJzaW9uKTM3IGIoYXMpNTEwIDMwOTMgeShzdGF0ZWQpMzEgYihpbilmKHRoZSloKHByZXZpb3VzKWYoc2VuKW0KKyh0ZW5jZS4pMzc4IDMyMjQgeShKLik2MCBiKFByZXNlcnYpbShlKTMzIGIodGhlKWcobmV0KW0odyltKG9yaylnKGxvKXMKKyhjYXRpb24sKWkoaWYpZChhbiltKHkpLTggYigsKTM0IGIoZ2l2KW0oZW4pZihpbilnKHRoZSlmKERvKXMoY3VtZW4pbQorKHQpaChmb3IpZyhwdWJsaWMpZShhY2Nlc3Mpaih0byk1MTAgMzMzMyB5KGEpZShUKS04IGIocmFuc3BhcmVuKW0odCkzMAorYihjb3ApbSh5KWkob2YpZyh0aGUpZihEbylzKGN1bWVuKW0odCwpaChhbmQpZihsaWspbShld2lzZSloKHRoZSlnKG5ldCkKK20odyltKG9yaylnKGxvKXMoY2F0aW9ucylnKGdpdiltKGVuKWcoaW4pNTEwIDM0NDMgeSh0aGUpZyhEbylzKGN1bWVuKW0KKyh0KWcoZm9yKWcocHJldmlvdXMpZih2KW0oZXJzaW9ucyloKGl0KWcodyltKGFzKWcoYmFzZWQpZihvbi4pNDUKK2IoVGhlc2UpMzEgYihtYSltKHkpaChiKXMoZSlmKHBsYWNlZCloKGluKWcodGhlKTUxMCAzNTUyCit5KFxcSGlzdG9yeSIpMjcgYihzZWN0aW9uLik0MCBiKFkpLTggYihvdSkyNSBiKG1hKW0oeSloKG9taXQpZyhhKWYobmV0KQorbSh3KW0ob3JrKWgobG8pcyhjYXRpb24pZyhmb3IpZihhKWgodyltKG9yaylmKHRoYXQpZyh3KW0oYXMpaAorKHB1Ymxpc2hlZCk1MTAgMzY2MiB5KGF0KTM2IGIobGVhc3QpaChmb3VyKWUoeSltKGVhcnMpaShiKXMoZWZvcmUpZQorKHRoZSloKERvKXMoY3VtZW4pbSh0KWgoaXRzZWxmLCloKG9yKWQoaWYpaCh0aGUpZyhvcmlnaW5hbCloKHB1Ymxpc2hlcikKK2Qob2YpaSh0aGUpNTEwIDM3NzEgeSh2KW0oZXJzaW9uKTMxIGIoaXQpZyhyZWZlcnMpZih0byloKGdpdiltKGVzKWgocClzCisoZXJtaXNzaW9uLikzNTQgMzkwMiB5KEsuKTYwIGIoRiktOCBiKG9yKTI0IGIoYW4pbSh5KWgoc2VjdGlvbilmKEVuKW0KKyh0aXRsZWQpaChcXEFjKW0oa25vKW0od2xlZGdlbWVuKW0odHMiKWkob3IpZChcXERlZGljYXRpb25zIiwpaworKFByZXNlcnYpbShlKWModGhlKWcoVGl0bGUpNTEwIDQwMTEgeShvZilqKHRoZSlmKHNlY3Rpb24sKWooYW5kKWQKKyhwcmVzZXJ2KW0oZSloKGluKWYodGhlKWgoc2VjdGlvbilnKGFsbCloKHRoZSllKHN1YnN0YW5jZSloKGFuZClmKHRvbmUpCitoKG9mKWYoZWFjKW0oaClpKG9mKWYodGhlKTUxMCA0MTIxIHkoY29uKW0odHJpYnV0b3IpayhhYyltKGtubyltCisod2xlZGdlbWVuKW0odHMpaShhbmQvb3IpZChkZWRpY2F0aW9ucyloKGdpdiltKGVuKWgodGhlcmVpbi4pMzY4Cis0MjUxIHkoTC4pNjAgYihQcmVzZXJ2KW0oZSkzNiBiKGFsbClnKHRoZSlnKEluKW0odiktNQorYihhcmlhbiltKHQpMzYgYihTZWN0aW9ucylnKG9mKWYodGhlKWgoRG8pcyhjdW1lbiltKHQsKWgodW5hbHRlcmVkKWYKKyhpbilmKHRoZWlyKWcodGV4dClpKGFuZCk1MTAgNDM2MSB5KGluKWYodGhlaXIpZyh0aXRsZXMuKTU4CitiKFNlY3Rpb24pMzcgYihuKW0odW0pbShiKXMoZXJzKWQob3IpaSh0aGUpZyhlcXVpdiktNQorYihhbGVuKW0odCkzOCBiKGFyZSllKG5vdClnKGNvbnNpZGVyZWQpZyhwYXJ0KWcob2YpZyh0aGUpNTEwCis0NDcwIHkoc2VjdGlvbiljKHRpdGxlcy4pMzQxIDQ2MDAgeShNLik2MSBiKERlbGV0ZSkzMworYihhbiltKHkpZShzZWN0aW9uKWgoRW4pbSh0aXRsZWQpZihcXEVuZG9yc2VtZW4pbSh0cyIuKTQyCitiKFN1YyltKGgpMzAgYihhKWkoc2VjdGlvbilmKG1hKW0oeSloKG5vdClmKGIpcyhlKWYoaW5jbHVkZWQpNTEwCis0NzEwIHkoaW4pZyh0aGUpaChNbylzKGRpXDAxNGVkKWUoViktOCBiKGVyc2lvbi4pMzU3Cis0ODQwIHkoTi4pNjAgYihEbykyOSBiKG5vdClnKHJldGl0bGUpaChhbiltKHkpZShleGlzdGluZylpKHNlY3Rpb24pZgorKHRvKWcoYilzKGUpZihFbiltKHRpdGxlZCloKFxcRW5kb3JzZW1lbiltKHRzIilnKG9yKWYodG8paChjb25cMDE1aWN0KWcKKyhpbik1MTAgNDk1MCB5KHRpdGxlKWood2l0aCllKGFuKW0oeSloKEluKW0odiktNSBiKGFyaWFuKW0odCkzMQorYihTZWN0aW9uLikzNTQgNTA4MCB5KE8uKTYwIGIoUHJlc2VydiltKGUpMzEgYihhbiltKHkpZyhXKS04CitiKGFycmFuKW0odCltKHkpMzIgYihEaXNjbGFpbWVycy4pMzMwIDUyMzAgeShJZiloKHRoZSlnKE1vKXMoZGlcMDE0ZWQpZworKFYpLTggYihlcnNpb24pMzQgYihpbmNsdWRlcylmKG5ldylnKGZyb24pbSh0LW1hdHRlcilpKHNlY3Rpb25zKWYob3IpZgorKGFwcClzKGVuZGljZXMpZyh0aGF0KWgocXVhbGlmeSkzMzAgNTM0MCB5KGFzKTI4IGIoU2Vjb25kYXJ5KWcKKyhTZWN0aW9ucylnKGFuZClmKGNvbiltKHRhaW4paihubylkKG1hdGVyaWFsKWooY29waWVkKWUoZnJvbSlmKHRoZSloCisoRG8pcyhjdW1lbiltKHQsKWkoeSltKG91KWUobWEpbSh5KWcoYXQpcCBlb3AgZW5kCislJVBhZ2U6IDE3IDIxCitUZVhEaWN0IGJlZ2luIDE3IDIwIGJvcCAxNTAgLTExNiBhIEZyKEFwcClzKGVuZGl4KTI5CitiKEE6KWgoQ29wKW0oeWluZyloKFRoaXMpZihNYW4pbSh1YWwpMjEwNSBiKDE3KTMzMCAyOTkKK3koeSltKG91cikzMiBiKG9wdGlvbiloKGRlc2lnbmF0ZSloKHNvbWUpZShvciloKGFsbClnKG9mKWYodGhlc2UpaAorKHNlY3Rpb25zKWgoYXMpZShpbiltKHYpLTUgYihhcmlhbiltKHQuKTQ4IGIoVCktOCBiKG8pMzMKK2IoZG8pZih0aGlzLCloKGFkZClmKHRoZWlyKTMzMCA0MDggeSh0aXRsZXMpMzcgYih0bylmKHRoZSlmKGxpc3QpaChvZilnCisoSW4pbSh2KS01IGIoYXJpYW4pbSh0KTM2IGIoU2VjdGlvbnMpZyhpbilmKHRoZSloKE1vKXMoZGlcMDE0ZWQpZihWKS04CitiKGVyc2lvbidzKTM2IGIobGljZW5zZSlnKG5vdGljZS4pNTcgYihUaGVzZSkzMzAgNTE4Cit5KHRpdGxlcykzMiBiKG0pbSh1c3QpZShiKXMoZSlnKGRpc3RpbmN0KWgoZnJvbSllKGFuKW0oeSlpKG90aGVyKWcKKyhzZWN0aW9uKWcodGl0bGVzLikzMzAgNjUwIHkoWSktOCBiKG91KTQzIGIobWEpbSh5KWcoYWRkKWYoYSlnKHNlY3Rpb24pCitpKEVuKW0odGl0bGVkKWYoXFxFbmRvcnNlbWVuKW0odHMiLClqKHBybyltKHZpZGVkKWMoaXQpaChjb24pbSh0YWlucylnCisobm90aGluZylnKGJ1dCkzMzAgNzU5IHkoZW5kb3JzZW1lbiltKHRzKTMwIGIob2YpZyh5KW0ob3VyKWYoTW8pcworKGRpXDAxNGVkKWcoViktOCBiKGVyc2lvbikzMSBiKGIpbSh5KWUodiktNSBiKGFyaW91cykzMAorYihwYXJ0aWVzfGZvcilnKGV4YW1wbGUsKWcoc3RhdGVtZW4pbSh0cylpKG9mKTMzMCA4NjkKK3kocClzKGVlcikyNyBiKHJldmlldylnKG9yKWcodGhhdCloKHRoZSlmKHRleHQpaShoYXMpZChiKXMoZWVuKWgoYXBwcm8pCittKHYpbShlZClnKGIpbSh5KWcoYW4paChvcmdhbml6YXRpb24paChhcyllKHRoZSloKGF1dGhvcml0YXRpdiltKGUpMzMwCis5NzggeShkZVwwMTRuaXRpb24paShvZiloKGEpZihzdGFuZGFyZC4pMzMwIDExMTAgeShZKS04CitiKG91KTI5IGIobWEpbSh5KWcoYWRkKWUoYSlpKHBhc3NhZ2UpZyhvZilnKHVwKWUodG8paShcMDE0diltKGUpZyh3KW0KKyhvcmRzKWUoYXMpaShhKWcoRiktOCBiKHJvbiltKHQtQ28pbSh2KW0oZXIpMzAgYihUKS04CitiKGV4dCwpMzAgYihhbmQpZShhKWcocGFzc2FnZSlpKG9mKWUodXApMzMwIDEyMTkgeSh0bylnKDI1KWcodyltKG9yZHMpZQorKGFzKWkoYSlmKEJhYyltKGstQ28pbSh2KW0oZXIpaihUKS04IGIoZXh0LCkyOSBiKHRvKWYodGhlKWYoZW5kKWYob2YpaQorKHRoZSlmKGxpc3QpaChvZilmKENvKW0odiltKGVyKWgoVCktOCBiKGV4dHMpMjcgYihpbilnKHRoZSloKE1vKXMKKyhkaVwwMTRlZCkzMzAgMTMyOSB5KFYpLTggYihlcnNpb24uKTU4IGIoT25seSkzNSBiKG9uZSloKHBhc3NhZ2UpaChvZilmCisoRiktOCBiKHJvbiltKHQtQ28pbSh2KW0oZXIpMzggYihUKS04IGIoZXh0KTM2IGIoYW5kKWcob25lKWcob2YpZyhCYWMpbQorKGstQ28pbSh2KW0oZXIpaihUKS04IGIoZXh0KTM2IGIobWEpbSh5KWgoYilzKGUpMzMwIDE0MzkKK3koYWRkZWQpMjcgYihiKW0oeSlnKFwob3IpaCh0aHJvdWdoKWYoYXJyYW5nZW1lbiltKHRzKWgobWFkZSlnKGIpbSh5XCkpCitnKGFuKW0oeSlnKG9uZSlmKGVuKW0odGl0KW0oeSktOCBiKC4pNDIgYihJZikyNyBiKHRoZSloKERvKXMoY3VtZW4pbSh0KQorZyhhbHJlYWR5KTMzMCAxNTQ4IHkoaW5jbHVkZXMpMzQgYihhKWcoY28pbSh2KW0oZXIpaCh0ZXh0KWcoZm9yKWYodGhlKWcKKyhzYW1lKWgoY28pbSh2KW0oZXIsKWgocHJldmlvdXNseSllKGFkZGVkKWYoYiltKHkpaCh5KW0ob3UpZyhvcilnKGIpbQorKHkpZyhhcnJhbmdlbWVuKW0odCkzMzAgMTY1OCB5KG1hZGUpaChiKW0oeSlnKHRoZSloKHNhbWUpZihlbiltKHRpdCltCisoeSlpKHkpbShvdSlmKGFyZSlmKGFjdGluZylpKG9uKWUoYilzKGVoYWxmKWYob2YsKWooeSltKG91KWYobWEpbSh5KWcKKyhub3QpZihhZGQpZyhhbm90aGVyOylqKGJ1dCkzMzAgMTc2NyB5KHkpbShvdSljKG1hKW0oeSloKHJlcGxhY2UpZyh0aGUpCitmKG9sZClnKG9uZSwpaShvbillKGV4cGxpY2l0KWgocClzKGVybWlzc2lvbillKGZyb20pZyh0aGUpaShwcmV2aW91cyllCisocHVibGlzaGVyKWYodGhhdCkzMzAgMTg3NyB5KGFkZGVkKWUodGhlKWcob2xkKWgob25lLikzMzAKKzIwMDggeShUaGUpMjUgYihhdXRob3JcKHNcKSloKGFuZClmKHB1Ymxpc2hlclwoc1wpKWYob2YpaSh0aGUpZihEbylzCisoY3VtZW4pbSh0KWgoZG8pZyhub3QpZihiKW0oeSloKHRoaXMpZihMaWNlbnNlKWgoZ2l2KW0oZSloKHApcworKGVybWlzc2lvbikzMzAgMjExOCB5KHRvKWsodXNlKWYodGhlaXIpZyhuYW1lcyloKGZvcilmKHB1YmxpY2l0KW0oeSlnCisoZm9yKWgob3IpZih0byloKGFzc2VydClnKG9yKWYoaW1wbHkpZyhlbmRvcnNlbWVuKW0odClnKG9mKWgoYW4pbSh5KWcKKyhNbylzKGRpXDAxNGVkKTMzMCAyMjI4IHkoViktOCBiKGVyc2lvbi4pMTk5IDIzNTkgeSg1Lik2MQorYihDT01CSU5JTkcpMzEgYihET0NVTUVOVFMpMzMwIDI0OTEgeShZKS04IGIob3UpMzkgYihtYSltKHkpZyhjb20pbQorKGJpbmUpaCh0aGUpZihEbylzKGN1bWVuKW0odClnKHdpdGgpZyhvdGhlcilmKGRvKXMoY3VtZW4pbSh0cyloCisocmVsZWFzZWQpZyh1bmRlcilmKHRoaXMpZyhMaWNlbnNlLCkzMzAgMjYwMCB5KHVuZGVyKWYodGhlKWgodGVybXMpZworKGRlXDAxNG5lZClmKGluKWgoc2VjdGlvbiloKDQpZyhhYilzKG8pbSh2KW0oZSlnKGZvcilmKG1vKXMoZGlcMDE0ZWQpZgorKHYpbShlcnNpb25zLClrKHBybyltKHZpZGVkKWQodGhhdCloKHkpbShvdSkzMzAgMjcxMAoreShpbmNsdWRlKTI1IGIoaW4pZyh0aGUpZyhjb20pbShiaW5hdGlvbilpKGFsbClmKG9mKWcodGhlKWYoSW4pbSh2KS01CitiKGFyaWFuKW0odCkyNiBiKFNlY3Rpb25zKWcob2YpZyhhbGwpZyhvZilmKHRoZSloKG9yaWdpbmFsKWcoZG8pcworKGN1bWVuKW0odHMsKTMzMCAyODE5IHkodW5tbylzKGRpXDAxNGVkLClnKGFuZClnKGxpc3QpaCh0aGVtKWcoYWxsKWcKKyhhcylnKEluKW0odiktNSBiKGFyaWFuKW0odCkyOCBiKFNlY3Rpb25zKWYob2YpZyh5KW0ob3VyKWcoY29tKW0oYmluZWQpCitnKHcpbShvcmspZihpbiloKGl0cylnKGxpY2Vuc2UpMzMwIDI5MjkgeShub3RpY2UsKTMyCitiKGFuZCllKHRoYXQpaCh5KW0ob3UpZihwcmVzZXJ2KW0oZSloKGFsbClnKHRoZWlyKWcoVyktOAorYihhcnJhbiltKHQpbSh5KTMyIGIoRGlzY2xhaW1lcnMuKTMzMCAzMDYxIHkoVGhlKWUoY29tKW0oYmluZWQpZyh3KW0KKyhvcmspaChuZWVkKWUob25seSlpKGNvbiltKHRhaW4pZyhvbmUpZyhjb3ApbSh5KWcob2YpZih0aGlzKWcoTGljZW5zZSwpCitpKGFuZClkKG0pbSh1bHRpcGxlKWkoaWRlbiltKHRpY2FsKTMzMCAzMTcwIHkoSW4pbSh2KS01CitiKGFyaWFuKW0odCkzMyBiKFNlY3Rpb25zKWcobWEpbSh5KWcoYilzKGUpZihyZXBsYWNlZCloKHdpdGgpZihhKWgKKyhzaW5nbGUpZyhjb3ApbSh5KS04IGIoLik0OCBiKElmKTMyIGIodGhlcmUpaChhcmUpZyhtKW0odWx0aXBsZSlnKEluKW0KKyh2KS01IGIoYXJpYW4pbSh0KTMzMCAzMjgwIHkoU2VjdGlvbnMpMjcgYih3aXRoKWcodGhlKWcoc2FtZSlnKG5hbWUpZworKGJ1dClmKGRpXDAxM2VyZW4pbSh0KWgoY29uKW0odGVuKW0odHMsKWkobWFrKW0oZSlmKHRoZSlmKHRpdGxlKWgob2YpZgorKGVhYyltKGgpaChzdWMpbShoKWYoc2VjdGlvbikzMzAgMzM4OSB5KHVuaXF1ZSkzMyBiKGIpbSh5KWgoYWRkaW5nKWYKKyhhdClpKHRoZSlmKGVuZClnKG9mKWcoaXQsKWgoaW4pZihwYXJlbiltKHRoZXNlcywpaSh0aGUpZShuYW1lKWcob2YpZworKHRoZSlnKG9yaWdpbmFsKWgoYXV0aG9yKWYob3IpMzMwIDM0OTkgeShwdWJsaXNoZXIpMjMKK2Iob2YpaSh0aGF0KWgoc2VjdGlvbilnKGlmKWYoa25vKW0od24sKWgob3IpZihlbHNlKWgoYSlmKHVuaXF1ZSlmKG4pbQorKHVtKW0oYilzKGVyLikzOCBiKE1hayltKGUpMjYgYih0aGUpZyhzYW1lKWYoYWRqdXN0bWVuKW0odCkzMzAKKzM2MDggeSh0bylnKHRoZSlnKHNlY3Rpb24pZyh0aXRsZXMpaChpbillKHRoZSloKGxpc3QpZyhvZilmKEluKW0odiktNQorYihhcmlhbiltKHQpMjYgYihTZWN0aW9ucylmKGluKWYodGhlKWcobGljZW5zZSlpKG5vdGljZSlnKG9mKWUodGhlKWgKKyhjb20pbShiaW5lZCkzMzAgMzcxOCB5KHcpbShvcmsuKTMzMCAzODUwIHkoSW4pNDEgYih0aGUpZyhjb20pbQorKGJpbmF0aW9uLCk0NiBiKHkpbShvdSk0MSBiKG0pbSh1c3QpZyhjb20pbShiaW5lKWgoYW4pbSh5KWcoc2VjdGlvbnMpZworKEVuKW0odGl0bGVkKWcoXFxIaXN0b3J5IiloKGluKWUodGhlKWcodiktNSBiKGFyaS0pMzMwCiszOTU5IHkob3VzKTMyIGIob3JpZ2luYWwpaChkbylzKGN1bWVuKW0odHMsKWcoZm9ybWluZylmKG9uZSlnKHNlY3Rpb24paAorKEVuKW0odGl0bGVkKWcoXFxIaXN0b3J5IjspaShsaWspbShld2lzZSlmKGNvbSltKGJpbmUpZihhbiltKHkpMzMwCis0MDY5IHkoc2VjdGlvbnMpZyhFbiltKHRpdGxlZClmKFxcQWMpbShrbm8pbSh3bGVkZ2VtZW4pbSh0cyIsKWsoYW5kKTMxCitiKGFuKW0oeSloKHNlY3Rpb25zKWgoRW4pbSh0aXRsZWQpZyhcXERlZGljYXRpb25zIi4pNDcKK2IoWSktOCBiKG91KTMzMCA0MTc4IHkobSltKHVzdCkzMCBiKGRlbGV0ZSlpKGFsbClmKHNlY3Rpb25zKWgoRW4pbQorKHRpdGxlZClmKFxcRW5kb3JzZW1lbiltKHRzLiIpMTk5IDQzMTAgeSg2Lik2MSBiKENPTExFQ1RJT05TKTI4CitiKE9GKWkoRE9DVU1FTlRTKTMzMCA0NDQxIHkoWSktOCBiKG91KTMyIGIobWEpbSh5KWgobWFrKW0oZSlnKGEpZgorKGNvbGxlY3Rpb24paShjb25zaXN0aW5nKWYob2YpZih0aGUpZyhEbylzKGN1bWVuKW0odClnKGFuZClnKG90aGVyKWcKKyhkbylzKGN1bWVuKW0odHMpZihyZWxlYXNlZCkzMzAgNDU1MSB5KHVuZGVyKTQxIGIodGhpcyloKExpY2Vuc2UsKWsKKyhhbmQpYyhyZXBsYWNlKWgodGhlKWcoaW5kaXZpZHVhbClmKGNvcGllcyloKG9mKWYodGhpcylnKExpY2Vuc2UpaChpbilmCisodGhlKWgodiktNSBiKGFyaW91cykzMzAgNDY2MSB5KGRvKXMoY3VtZW4pbSh0cyk0MiBiKHdpdGgpZyhhKWgoc2luZ2xlKQorZyhjb3ApbSh5KWgodGhhdClmKGlzKWYoaW5jbHVkZWQpZyhpbilnKHRoZSloKGNvbGxlY3Rpb24sKTQ4CitiKHBybyltKHZpZGVkKTQyIGIodGhhdClpKHkpbShvdSkzMzAgNDc3MCB5KGZvbGxvKW0odykzOAorYih0aGUpZyhydWxlcyllKG9mKWgodGhpcylnKExpY2Vuc2UpaChmb3IpZih2KW0oZXJiYXRpbSloKGNvcCltKHlpbmcpZworKG9mKWYoZWFjKW0oaCloKG9mKWYodGhlKWgoZG8pcyhjdW1lbiltKHRzKWUoaW4paChhbGwpMzMwCis0ODgwIHkob3RoZXIpMzEgYihyZXNwKXMoZWN0cy4pMzMwIDUwMTEgeShZKS04IGIob3UpMzIKK2IobWEpbSh5KWcoZXh0cmFjdCloKGEpZihzaW5nbGUpZyhkbylzKGN1bWVuKW0odClmKGZyb20pZyhzdWMpbShoKWcoYSloCisoY29sbGVjdGlvbiwpaShhbmQpZChkaXN0cmlidXRlKWcoaXQpaChpbmRpdmlkdS0pMzMwCis1MTIxIHkoYWxseSlrKHVuZGVyKWQodGhpcylpKExpY2Vuc2UsKWkocHJvKW0odmlkZWQpZSh5KW0ob3UpZyhpbnNlcnQpZworKGEpZyhjb3ApbSh5KWgob2YpZih0aGlzKWcoTGljZW5zZSlnKGluKW0odG8paCh0aGUpZyhleHRyYWN0ZWQpMzMwCis1MjMwIHkoZG8pcyhjdW1lbiltKHQsKWQoYW5kKWYoZm9sbG8pbSh3KWkodGhpcyllKExpY2Vuc2UpaChpbilnKGFsbClnCisob3RoZXIpZyhyZXNwKXMoZWN0cylmKHJlZ2FyZGluZyloKHYpbShlcmJhdGltKWcoY29wKW0oeWluZyloKG9mKTMzMAorNTM0MCB5KHRoYXQpZChkbylzKGN1bWVuKW0odC4pcCBlb3AgZW5kCislJVBhZ2U6IDE4IDIyCitUZVhEaWN0IGJlZ2luIDE4IDIxIGJvcCAxNTAgLTExNiBhIEZyKDE4KTI2NTEgYihHTlUpMzEKK2IoSGlzdG9yeSlnKExpYnJhcnkpMTk5IDI5OSB5KDcuKTYxIGIoQSltKEdHUkVHQSktOCBiKFRJT04pMzIKK2IoV0lUSCllKElOREVQRU5ERU5UKWgoVyltKE9SS1MpMzMwIDQyOCB5KEEpZChjb21waWxhdGlvbilpKG9mKWUodGhlKWcKKyhEbylzKGN1bWVuKW0odCloKG9yKWYoaXRzKWcoZGVyaXYpLTUgYihhdGl2KW0oZXMpMzAKK2Iod2l0aClkKG90aGVyKWkoc2VwYXJhdGUpZyhhbmQpZShpbmRlcClzKGVuZGVuKW0odCkzMzAKKzUzOCB5KGRvKXMoY3VtZW4pbSh0cykzMyBiKG9yKWcodyltKG9ya3MsKWgoaW4pZihvciloKG9uKWYoYSlnKHYpbQorKG9sdW1lKWgob2YpZyhhKWYoc3RvcmFnZSlpKG9yKWUoZGlzdHJpYnV0aW9uKWcobWVkaXVtLClnKGlzKWgoY2FsbGVkKQorMzMwIDY0OCB5KGFuKWMoXFxhZ2dyZWdhdGUiKWsoaWYpYyh0aGUpZyhjb3ApbSh5cmlnaCltKHQpaShyZXN1bHRpbmcpZQorKGZyb20pZih0aGUpaShjb21waWxhdGlvbilnKGlzKWYobm90KWgodXNlZCllKHRvKWkobGltaXQpZyh0aGUpMzMwCis3NTcgeShsZWdhbClkKHJpZ2gpbSh0cylmKG9mKWcodGhlKWcoY29tcGlsYXRpb24ncyloKHVzZXJzKWUoYilzKGV5KW0KKyhvbmQpZyh3aGF0KWcodGhlKWgoaW5kaXZpZHVhbClmKHcpbShvcmtzKWcocClzKGVybWl0LikzOQorYihXaGVuKTMzMCA4NjcgeSh0aGUpMjggYihEbylzKGN1bWVuKW0odClnKGlzKWcoaW5jbHVkZWQpZihhbilnCisoYWdncmVnYXRlLCkzMiBiKHRoaXMpMjcgYihMaWNlbnNlKWgoZG8pcyhlcylnKG5vdClnKGFwcGx5KWYodG8paCh0aGUpZworKG90aGVyKWcodyltKG9ya3MpMzMwIDk3NiB5KGluKWkodGhlKWgoYWdncmVnYXRlKWkod2hpYyltKGgpZChhcmUpaAorKG5vdClmKHRoZW1zZWx2KW0oZXMpaShkZXJpdiktNSBiKGF0aXYpbShlKTMyIGIodyltKG9ya3MpZShvZiloKHRoZSlmCisoRG8pcyhjdW1lbiltKHQuKTMzMCAxMTA2IHkoSWYpMjIgYih0aGUpaChDbyltKHYpbShlciloKFQpLTgKK2IoZXh0KTIzIGIocmVxdWlyZW1lbiltKHQpZyhvZilnKHNlY3Rpb24paCgzKWYoaXMpZyhhcHBsaWNhYmxlKWgodG8pZgorKHRoZXNlKWgoY29waWVzKWYob2YpZyh0aGUpZyhEbylzKGN1bWVuKW0odCwpMzMwIDEyMTUKK3kodGhlbilmKGlmKWcodGhlKWgoRG8pcyhjdW1lbiltKHQpZyhpcylnKGxlc3MpZih0aGFuKWcob25lKWgoaGFsZilmCisob2YpaCh0aGUpZyhlbiltKHRpcmUpZyhhZ2dyZWdhdGUsKWsodGhlKWMoRG8pcyhjdW1lbiltKHQncylnKENvKW0odiltCisoZXIpMzMwIDEzMjUgeShUKS04IGIoZXh0cykyNyBiKG1hKW0oeSlnKGIpcyhlKWYocGxhY2VkKWgob24pZyhjbyltKHYpbQorKGVycyloKHRoYXQpZihicmFjKW0oayltKGV0KWgodGhlKWYoRG8pcyhjdW1lbiltKHQpZyh3aXRoaW4pZih0aGUpaAorKGFnZ3JlZ2F0ZSwpaihvcilkKHRoZSkzMzAgMTQzNSB5KGVsZWN0cm9uaWMpMzcgYihlcXVpdiktNQorYihhbGVuKW0odCkzNiBiKG9mKWcoY28pbSh2KW0oZXJzKWcoaWYpZih0aGUpZyhEbylzKGN1bWVuKW0odCloKGlzKWYKKyhpbilnKGVsZWN0cm9uaWMpaShmb3JtLik1NCBiKE90aGVyd2lzZSkzNSBiKHRoZXkpMzMwCisxNTQ0IHkobSltKHVzdCkzMCBiKGFwcClzKGVhcilnKG9uKWcocHJpbiltKHRlZClnKGNvKW0odiltKGVycylpKHRoYXQpZgorKGJyYWMpbShrKW0oZXQpaCh0aGUpZih3aG9sZSlmKGFnZ3JlZ2F0ZS4pMTk5IDE2NzQgeSg4Lik2MQorYihUUkFOU0xBKS04IGIoVElPTikzMzAgMTgwMyB5KFQpZyhyYW5zbGF0aW9uKTQxIGIoaXMpZihjb25zaWRlcmVkKWYoYSkKK2koa2luZCllKG9mKWgobW8pcyhkaVwwMTRjYXRpb24sKWooc28pZCh5KW0ob3UpZyhtYSltKHkpaChkaXN0cmlidXRlKWUKKyh0cmFuc2xhdGlvbnMpMzMwIDE5MTMgeShvZik0NSBiKHRoZSlmKERvKXMoY3VtZW4pbSh0KWgodW5kZXIpZSh0aGUpaAorKHRlcm1zKWgob2YpZihzZWN0aW9uKWkoNC4pODMgYihSZXBsYWNpbmcpNDUgYihJbiltKHYpLTUKK2IoYXJpYW4pbSh0KTQ1IGIoU2VjdGlvbnMpZyh3aXRoKTMzMCAyMDIyIHkodHJhbnNsYXRpb25zKWgocmVxdWlyZXMpZgorKHNwKXMoZWNpYWwpaChwKXMoZXJtaXNzaW9uKWYoZnJvbSlnKHRoZWlyKWcoY29wKW0oeXJpZ2gpbSh0KWkKKyhob2xkZXJzLClpKGJ1dCljKHkpbShvdSlnKG1hKW0oeSkzMzAgMjEzMiB5KGluY2x1ZGUpMjQKK2IodHJhbnNsYXRpb25zKWkob2YpZShzb21lKWgob3IpZyhhbGwpZyhJbiltKHYpLTUgYihhcmlhbiltKHQpMjUKK2IoU2VjdGlvbnMpZyhpbilmKGFkZGl0aW9uKWgodG8pZyh0aGUpZyhvcmlnaW5hbCloKHYpbShlcnNpb25zKTMzMAorMjI0MiB5KG9mKTMyIGIodGhlc2UpZihJbiltKHYpLTUgYihhcmlhbiltKHQpMzMgYihTZWN0aW9ucy4pNDQKK2IoWSktOCBiKG91KTMyIGIobWEpbSh5KWcoaW5jbHVkZSlmKGEpaCh0cmFuc2xhdGlvbilnKG9mKWcodGhpcylmCisoTGljZW5zZSwpaShhbmQpZChhbGwpaih0aGUpMzMwIDIzNTEgeShsaWNlbnNlKTQyIGIobm90aWNlcylnKGluKWYodGhlKQoraChEbylzKGN1bWVuKW0odCwpaihhbmQpNDAgYihhbiltKHkpaShXKS04IGIoYXJyYW4pbSh0KW0oeSk0MgorYihEaXNjbGFpbWVycywpayhwcm8pbSh2aWRlZCk0MSBiKHRoYXQpaCh5KW0ob3UpMzMwIDI0NjEKK3koYWxzbylmKGluY2x1ZGUpZih0aGUpZyhvcmlnaW5hbCloKEVuZ2xpc2gpZih2KW0oZXJzaW9uKWcob2YpZyh0aGlzKWcKKyhMaWNlbnNlKWgoYW5kKWUodGhlKWgob3JpZ2luYWwpaCh2KW0oZXJzaW9ucylnKG9mKTMzMAorMjU3MCB5KHRob3NlKTM1IGIobm90aWNlcylnKGFuZCllKGRpc2NsYWltZXJzLik1MyBiKEluKTMzCitiKGNhc2UpaShvZilnKGEpZihkaXNhZ3JlZW1lbiltKHQpaChiKXMoZXQpbSh3KW0oZWVuKWcodGhlKWYKKyh0cmFuc2xhdGlvbilpKGFuZCkzMzAgMjY4MCB5KHRoZSlmKG9yaWdpbmFsKWkodiltKGVyc2lvbillKG9mKWgodGhpcylmCisoTGljZW5zZSloKG9yKWYoYSlnKG5vdGljZSlpKG9yKWUoZGlzY2xhaW1lciwpaSh0aGUpZihvcmlnaW5hbClnKHYpbQorKGVyc2lvbilnKHdpbGwpMzMwIDI3OTAgeShwcmV2KS01IGIoYWlsLikzMzAgMjkxOSB5KElmKTI4CitiKGEpaChzZWN0aW9uKWgoaW4pZSh0aGUpaChEbylzKGN1bWVuKW0odCloKGlzKWUoRW4pbSh0aXRsZWQpaShcXEFjKW0KKyhrbm8pbSh3bGVkZ2VtZW4pbSh0cyIsKWkoXFxEZWRpY2F0aW9ucyIsKWcob3IpZChcXEhpcy0pMzMwCiszMDI5IHkodG9yeSIsKWYodGhlKWYocmVxdWlyZW1lbiltKHQpZihcKHNlY3Rpb24paSg0XCkpZih0bylnKFByZXNlcnYpbQorKGUpZyhpdHMpZihUaXRsZSlpKFwoc2VjdGlvbilmKDFcKSlnKHdpbGwpZyh0KW0oeXBpY2FsbHkpaChyZXF1aXJlKTMzMAorMzEzOCB5KGMpbShoYW5naW5nKWoodGhlKWcoYWN0dWFsKWgodGl0bGUuKTE5OSAzMjY4IHkoOS4pNjEKK2IoVEVSTUlOQSktOCBiKFRJT04pMzMwIDMzOTcgeShZKWcob3UpMzAgYihtYSltKHkpaChub3QpZihjb3ApbSh5KS04CitiKCwpMzEgYihtbylzKGRpZnkpLTggYigsKTMwIGIoc3VibGljZW5zZSwpZyhvcilnKGRpc3RyaWJ1dGUpZih0aGUpaAorKERvKXMoY3VtZW4pbSh0KWcoZXhjZXB0KWgoYXMpZihleHByZXNzbHkpMzMwIDM1MDcgeShwcm8pbSh2aWRlZCk0MQorYihmb3IpaCh1bmRlcillKHRoaXMpaShMaWNlbnNlLik3NSBiKEFuKW0oeSk0MiBiKG90aGVyKWcoYXR0ZW1wdCloKHRvKWcKKyhjb3ApbSh5KS04IGIoLCk0NiBiKG1vKXMoZGlmeSktOCBiKCwpNDQgYihzdWJsaWNlbnNlKWUob3IpMzMwCiszNjE2IHkoZGlzdHJpYnV0ZSkzNiBiKHRoZSloKERvKXMoY3VtZW4pbSh0KWcoaXMpZyh2KW0ob2lkLClpKGFuZClkCisod2lsbCloKGF1dG9tYXRpY2FsbHkpaSh0ZXJtaW5hdGUpZih5KW0ob3VyKWUocmlnaCltKHRzKWgodW5kZXIpMzMwCiszNzI2IHkodGhpcykyOCBiKExpY2Vuc2UuKTQwIGIoSG8pbSh3KW0oZXYpbShlciwpMzEgYihwYXJ0aWVzKWQod2hvKWYKKyhoYSltKHYpbShlKWkocmVjZWl2KW0oZWQpZyhjb3BpZXMsKWgob3IpZChyaWdoKW0odHMsKWkoZnJvbSlmKHkpbShvdSlnCisodW5kZXIpZSh0aGlzKTMzMCAzODM2IHkoTGljZW5zZSkzNyBiKHdpbGwpZyhub3QpZyhoYSltKHYpbShlKWgodGhlaXIpZgorKGxpY2Vuc2VzKWcodGVybWluYXRlZCloKHNvKWYobG9uZylnKGFzKWcoc3VjKW0oaClmKHBhcnRpZXMpaChyZW1haW4pZworKGluKWYoZnVsbCkzMzAgMzk0NSB5KGNvbXBsaWFuY2UuKTE1NCA0MDc1IHkoMTAuKTYxIGIoRlVUVVJFKTMwCitiKFJFVklTSU9OUylmKE9GKWkoVEhJUyllKExJQ0VOU0UpMzMwIDQyMDQgeShUaGUpNDEgYihGKS04CitiKHJlZSk0MyBiKFNvZnQpbSh3KW0oYXJlKWYoRiktOCBiKG91bmRhdGlvbik0MyBiKG1hKW0oeSlmKHB1Ymxpc2gpZQorKG5ldywpayhyZXZpc2VkKWQodiltKGVyc2lvbnMpaChvZilnKHRoZSlnKEdOVSlnKEYpLTgKK2IocmVlKTMzMCA0MzE0IHkoRG8pcyhjdW1lbiltKHRhdGlvbikzNCBiKExpY2Vuc2UpZShmcm9tKWcodGltZSloKHRvKWcKKyh0aW1lLik0NiBiKFN1YyltKGgpMzEgYihuZXcpaCh2KW0oZXJzaW9ucylnKHdpbGwpaChiKXMoZSllKHNpbWlsYXIpaAorKGluKWcoc3Bpcml0KTMzMCA0NDIzIHkodG8paih0aGUpZyhwcmVzZW4pbSh0KWYodiltKGVyc2lvbiwpaShidXQpZShtYSkKK20oeSloKGRpXDAxM2VyKWYoaW4pZyhkZXRhaWwpaCh0bylnKGFkZHJlc3MpZihuZXcpZyhwcm9ibGVtcylmKG9yKWkKKyhjb25jZXJucy4pMzMwIDQ1MzMgeShTZWUpYyBGcShodHRwOi8vd3d3LmdudS5vcmcvY29weSlvKGxlZnQpbygvKXAKK0ZyKC4pMzMwIDQ2NjMgeShFYWMpbShoKWYodiltKGVyc2lvbilnKG9mKWcodGhlKWYoTGljZW5zZSloKGlzKWcoZ2l2KW0KKyhlbilnKGEpZyhkaXN0aW5ndWlzaGluZylmKHYpbShlcnNpb24paChuKW0odW0pbShiKXMoZXIuKTM5CitiKElmKTI5IGIodGhlKWcoRG8pcyhjdW1lbiltKHQpMzMwIDQ3NzIgeShzcClzKGVjaVwwMTRlcyk0NQorYih0aGF0KWgoYSlnKHBhcnRpY3VsYXIpZihuKW0odW0pbShiKXMoZXJlZClmKHYpbShlcnNpb24paShvZilmKHRoaXMpZworKExpY2Vuc2UpaChcXG9yKWcoYW4pbSh5KWcobGF0ZXIpZyh2KW0oZXJzaW9uIikzMzAgNDg4MgoreShhcHBsaWVzKTMzIGIodG8pZyhpdCwpaCh5KW0ob3UpZShoYSltKHYpbShlKWkodGhlKWYob3B0aW9uKWcob2YpZgorKGZvbGxvKW0od2luZylpKHRoZSlmKHRlcm1zKWYoYW5kKWcoY29uZGl0aW9ucyloKGVpdGhlcilnKG9mKWYodGhhdCkzMzAKKzQ5OTEgeShzcClzKGVjaVwwMTRlZCkzNyBiKHYpbShlcnNpb24paShvcillKG9mKWgoYW4pbSh5KWgobGF0ZXIpZyh2KW0KKyhlcnNpb24pZih0aGF0KWcoaGFzKWcoYilzKGVlbilmKHB1Ymxpc2hlZClmKFwobm90KWooYXMpZihhKWcoZHJhZnRcKSlnCisoYiltKHkpMzMwIDUxMDEgeSh0aGUpMzMgYihGKS04IGIocmVlKTM0IGIoU29mdCltKHcpbShhcmUpZihGKS04CitiKG91bmRhdGlvbi4pNDkgYihJZikzMiBiKHRoZSloKERvKXMoY3VtZW4pbSh0KWcoZG8pcyhlcylnKG5vdClnKHNwKXMKKyhlY2lmeSlmKGEpaCh2KW0oZXJzaW9uKWcobiltKHVtKW0oYilzKGVyKWYob2YpMzMwIDUyMTAKK3kodGhpcylpKExpY2Vuc2UsKWooeSltKG91KWQobWEpbSh5KWkoYyltKGhvKXMob3NlKWYoYW4pbSh5KWcodiltCisoZXJzaW9uKWcoZXYpbShlcilnKHB1Ymxpc2hlZCllKFwobm90KWkoYXMpZyhhKWYoZHJhZnRcKSloKGIpbSh5KWYodGhlKQoraChGKS04IGIocmVlKTMzMCA1MzIwIHkoU29mdCltKHcpbShhcmUpMzEgYihGKS04IGIob3VuZGF0aW9uLilwCitlb3AgZW5kCislJVBhZ2U6IDE5IDIzCitUZVhEaWN0IGJlZ2luIDE5IDIyIGJvcCAxNTAgLTExNiBhIEZyKEFwcClzKGVuZGl4KTI5CitiKEE6KWgoQ29wKW0oeWluZyloKFRoaXMpZihNYW4pbSh1YWwpMjEwNSBiKDE5KTE1MCAyOTkKK3kgRmkoQS4xLjEpNjIgYihBRERFTkRVTTopNDEgYihIbyltKHcpZyh0bylnKHVzZSlnKHRoaXMpZyhMaWNlbnNlKWcKKyhmb3IpaCh5KW0ob3VyKWYoZG8pcyhjdW1lbiltKHRzKTI3NSA1NDMgeSBGcihUKS04IGIobykyNworYih1c2UpZyh0aGlzKWcoTGljZW5zZSloKGluKWYoYSloKGRvKXMoY3VtZW4pbSh0KWYoeSltKG91KWgoaGEpbSh2KW0oZSkKK2cod3JpdHRlbiwpZyhpbmNsdWRlKWYoYSloKGNvcCltKHkpZyhvZilmKHRoZSloKExpY2Vuc2UpZyhpbilmKHRoZSkxNTAKKzY1MyB5KGRvKXMoY3VtZW4pbSh0KWooYW5kKWcocHV0KWcodGhlKWcoZm9sbG8pbSh3aW5nKWkoY29wKW0oeXJpZ2gpbQorKHQpZyhhbmQpZShsaWNlbnNlKWgobm90aWNlcylnKGp1c3QpZihhZnRlciloKHRoZSlnKHRpdGxlKWgocGFnZTopNDY4Cis3NjUgeSBGZChDb3B5cmlnaHQpNDIgYihcKENcKSk3OSBiIEZjKHllYXIpODggYih5b3VyKTQwCitiKG5hbWUpcCBGZCguKTQ2OCA4NTIgeShQZXJtaXNzaW9uKWkoaXMpZShncmFudGVkKWcodG8pZyhjb3B5LCloCisoZGlzdHJpYnV0ZSlnKGFuZC9vcilnKG1vZGlmeSlmKHRoaXMpZyhkb2N1bWVudCk0NjggOTM5Cit5KHVuZGVyKWgodGhlKWYodGVybXMpZyhvZilnKHRoZSlnKEdOVSlnKEZyZWUpZyhEb2N1bWVudGF0aW9uKWkKKyhMaWNlbnNlLClmKFZlcnNpb24pZygxLjIpNDY4IDEwMjYgeShvcilmKGFueSlnKGxhdGVyKWcodmVyc2lvbiloCisocHVibGlzaGVkKWgoYnkpZCh0aGUpaChGcmVlKWcoU29mdHdhcmUpaChGb3VuZGF0aW9uOyk0NjgKKzExMTMgeSh3aXRoKWcobm8pZShJbnZhcmlhbnQpaihTZWN0aW9ucywpZihubylmKEZyb250LUNvdmVyKWgoVGV4dHMsKWcKKyhhbmQpZihubylmKEJhY2stQ292ZXIpaihUZXh0cy4pNDY4IDEyMDAgeShBKWUoY29weSlnKG9mKWcodGhlKWcKKyhsaWNlbnNlKWcoaXMpZyhpbmNsdWRlZCloKGluKWYodGhlKWcoc2VjdGlvbiloKGVudGl0bGVkKWcoYGBHTlUpNDY4CisxMjg4IHkoRnJlZSlnKERvY3VtZW50YXRpb24paChMaWNlbnNlJycuKTI3NSAxNDEwIHkgRnIoSWYpZCh5KW0ob3UpaAorKGhhKW0odiltKGUpaChJbiltKHYpLTUgYihhcmlhbiltKHQpNDEgYihTZWN0aW9ucywpaShGKS04CitiKHJvbiltKHQtQ28pbSh2KW0oZXIpNDIgYihUKS04IGIoZXh0cyk0MSBiKGFuZCllKEJhYyltKGstQ28pbSh2KW0oZXIpaworKFQpLTggYihleHRzLCk0MyBiKHJlcGxhY2UpZSh0aGUpMTUwIDE1MjAgeShcXHdpdGguLi5UKS04CitiKGV4dHMuIik0MyBiKGxpbmUpMzAgYih3aXRoKWgodGhpczopNTQ3IDE2MzIgeSBGZCh3aXRoKTQwCitiKHRoZSlnKEludmFyaWFudCloKFNlY3Rpb25zKWcoYmVpbmcpZyBGYyhsaXN0KWYodGhlaXIpZyh0aXRsZXMpcAorRmQoLCloKHdpdGgpNTQ3IDE3MTkgeSh0aGUpZihGcm9udC1Db3ZlcilpKFRleHRzKWUoYmVpbmcpZworRmMobGlzdClwIEZkKCwpaChhbmQpZih3aXRoKWcodGhlKWcoQmFjay1Db3ZlciloKFRleHRzKTU0NworMTgwNiB5KGJlaW5nKWYgRmMobGlzdClwIEZkKC4pMjc1IDE5MjkgeSBGcihJZikzNCBiKHkpbShvdSlpKGhhKW0odiltCisoZSlnKEluKW0odiktNSBiKGFyaWFuKW0odCkzNiBiKFNlY3Rpb25zKWcod2l0aG91dClmKENvKW0odiltKGVyKWgoVCktOAorYihleHRzLCkzOCBiKG9yKWQoc29tZSlnKG90aGVyKWgoY29tKW0oYmluYXRpb24pZyhvZilnKHRoZSkxNTAKKzIwMzggeSh0aHJlZSwpMzEgYihtZXJnZSlnKHRob3NlKWcodCltKHcpbShvKWcoYWx0ZXJuYXRpdiltKGVzKWkodG8pZQorKHN1aXQpZih0aGUpaChzaXR1YXRpb24uKTI3NSAyMTczIHkoSWYpMjMgYih5KW0ob3VyKWgoZG8pcyhjdW1lbiltKHQpZgorKGNvbiltKHRhaW5zKWkobm9uKW0odHJpdmlhbClnKGV4YW1wbGVzKWcob2YpZihwcm9ncmFtKWYoY28pcyhkZSwpaih3KW0KKyhlKWUocmVjb21tZW5kKWcocmVsZWFzaW5nKTE1MCAyMjgzIHkodGhlc2UpNDQgYihleGFtcGxlcylmKGluKWcKKyhwYXJhbGxlbCloKHVuZGVyKWUoeSltKG91ciloKGMpbShob2ljZSlpKG9mKWUoZnJlZSlnKHNvZnQpbSh3KW0oYXJlKWgKKyhsaWNlbnNlLClrKHN1YyltKGgpNDMgYihhcylnKHRoZSlnKEdOVSkxNTAgMjM5MiB5KEdlbmVyYWwpMzEKK2IoUHVibGljKWYoTGljZW5zZSwpaSh0bylmKHApcyhlcm1pdCllKHRoZWlyKWkodXNlKWYoaW4pZyhmcmVlKWcoc29mdCltCisodyltKGFyZS4pcCBlb3AgZW5kCislJVBhZ2U6IDIwIDI0CitUZVhEaWN0IGJlZ2luIDIwIDIzIGJvcCAxNTAgLTExNiBhIEZyKDIwKTI2NTEgYihHTlUpMzEKK2IoSGlzdG9yeSlnKExpYnJhcnkpcCBlb3AgZW5kCislJVBhZ2U6IDIxIDI1CitUZVhEaWN0IGJlZ2luIDIxIDI0IGJvcCAxNTAgLTExNiBhIEZyKEFwcClzKGVuZGl4KTI5CitiKEI6KWkoQ29uY2VwdClmKEluZGV4KTIzOTEgYigyMSkxNTAgMjk5IHkgRm4oQXBwKXQoZW5kaXgpNTIKK2IoQik0NyBiKENvbmNlcHQpayhJbmRleCkxNTAgNjM4IHkgRnAoQSkxNTAgNzk2IHkgRmIoYW5jKW4oaG9yZWQpMjYKK2Ioc2VhcmMpbihoKTcgYiBGYSguKTEyIGIoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLikKK2coLikzMyBiIEZiKDgpMTUwIDExMzggeSBGcChFKTE1MCAxMjk2IHkgRmIoZXYpbihlbiluKHQpMjUKK2IoZGVzaWduYXRvcnMpZCBGYSguKTEyIGIoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZworKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKTQ2CitiIEZiKDEpMjAyNSA2MzggeSBGcChGKTIwMjUgNzU0IHkgRmIoRkRMLCkyNSBiKEdOVSlnKEYpLTYKK2IocmVlKTI2IGIoRG8pcihjdW1lbiluKHRhdGlvbilnKExpY2Vuc2UpMTEgYiBGYSguKWkoLilnKC4pZiguKWcoLiloKC4pCitmKC4pMzcgYiBGYigxMykyMDI1IDEwMDUgeSBGcChIKTIwMjUgMTEyMSB5IEZiKGhpc3RvcnkpMjUKK2IoZXYpbihlbiluKHRzKWQgRmEoLikxMyBiKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcKKyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pCitmKC4pZyguKTQ5IGIgRmIoMSkyMDI1IDEyMDkgeShoaXN0b3J5KTI1IGIoZXhwYW5zaW9uKTE1CitiIEZhKC4pZSguKWYoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKQorZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pNDEgYgorRmIoMSkyMDI1IDEyOTYgeShIaXN0b3J5KTI1IGIoU2VhcmMpbihoaW5nKTEyIGIgRmEoLiloKC4pZiguKWgoLilmKC4pZworKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLikKK2YoLilnKC4paCguKWYoLilnKC4paCguKTM4IGIgRmIoOClwIGVvcCBlbmQKKyUlUGFnZTogMjIgMjYKK1RlWERpY3QgYmVnaW4gMjIgMjUgYm9wIDE1MCAtMTE2IGEgRnIoMjIpMjY1MSBiKEdOVSkzMQorYihIaXN0b3J5KWcoTGlicmFyeSlwIGVvcCBlbmQKKyUlUGFnZTogMjMgMjcKK1RlWERpY3QgYmVnaW4gMjMgMjYgYm9wIDE1MCAtMTE2IGEgRnIoQXBwKXMoZW5kaXgpMjkKK2IoQzopaChGKS04IGIodW5jdGlvbikzMSBiKGFuZClmKFYpLTggYihhcmlhYmxlKTMyIGIoSW5kZXgpMTgzMgorYigyMykxNTAgMjk5IHkgRm4oQXBwKXQoZW5kaXgpNTIgYihDKTQ1IGIoRiktMTMgYih1bmN0aW9uKTUyCitiKGFuZCloKFYpLTEzIGIoYXJpYWJsZSk1MyBiKEluZGV4KTE1MCA2MzggeSBGcChBKTE1MAorNzU1IHkgRmQoYWRkX2hpc3RvcnkpMjQgYiBGYSguKTEyIGIoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcKKyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pCitmKC4pZyguKWgoLilmKC4pZyguKTQ4IGIgRmIoNikxNTAgODQyIHkgRmQoYWRkX2hpc3RvcnlfdGltZSkxNAorYiBGYSguKWkoLilkKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLikKK2coLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pNDAgYiBGYig2KTE1MAorOTI5IHkgRmQoYXBwZW5kX2hpc3RvcnkpMTcgYiBGYSguKWYoLiljKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgKKyguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pCitnKC4paCguKTQzIGIgRmIoOSkxNTAgMTE4MiB5IEZwKEMpMTUwIDEyOTkgeSBGZChjbGVhcl9oaXN0b3J5KTIyCitiIEZhKC4pMTIgYiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLik0NQorYiBGYig3KTE1MCAxMzg2IHkgRmQoY3VycmVudF9oaXN0b3J5KTE2IGIgRmEoLilmKC4pZSguKWYoLilnKC4paCguKWYoLikKK2coLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKTQyIGIgRmIoNykxNTAgMTYzOSB5IEZwKEYpMTUwIDE3NTUKK3kgRmQoZnJlZV9oaXN0b3J5X2VudHJ5KTExIGIgRmEoLikxNyBiKC4pMTIgYiguKWcoLiloKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikKKzM3IGIgRmIoNikxNTAgMjAwOCB5IEZwKEcpMTUwIDIxMjQgeSBGZChnZXRfaGlzdG9yeV9ldmVudCkxMworYiBGYSguKWooLiljKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLikKK2coLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLikzOSBiIEZiKDkpMTUwCisyMzc3IHkgRnAoSCkxNTAgMjQ5NCB5IEZkKGhpc3RvcnlfYXJnX2V4dHJhY3QpOSBiIEZhKC4pMTcKK2IoLikxMiBiKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pCitmKC4pZyguKWgoLilmKC4pZyguKWgoLikzNCBiIEZiKDEwKTE1MCAyNTgxIHkgRmQoaGlzdG9yeV9iYXNlKTIyCitiIEZhKC4pMTIgYiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLik0NQorYiBGYigxMCkxNTAgMjY2OSB5IEZkKGhpc3RvcnlfY29tbWVudF9jaGFyKTcgYiBGYSguKTE3CitiKC4pYyguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgKKyguKWYoLilnKC4paCguKWYoLikzMyBiIEZiKDEwKTE1MCAyNzU2IHkgRmQoaGlzdG9yeV9leHBhbmQpMTcKK2IgRmEoLilmKC4pYyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pCitmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pNDMKK2IgRmIoOSkxNTAgMjg0MyB5IEZkKGhpc3RvcnlfZXhwYW5zaW9uX2NoYXIpMjggYiBGYSguKTEyCitiKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgKKyguKWYoLik0OCBiIEZiKDEwKTE1MCAyOTMxIHkgRmQoaGlzdG9yeV9nZXQpMjQgYiBGYSguKTEyCitiKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pNDgKK2IgRmIoNykxNTAgMzAxOCB5IEZkKGhpc3RvcnlfZ2V0X2hpc3Rvcnlfc3RhdGUpMjUgYiBGYSguKTEyCitiKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKTQ1CitiIEZiKDYpMTUwIDMxMDYgeSBGZChoaXN0b3J5X2dldF90aW1lKTE0IGIgRmEoLilpKC4pZCguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pCitoKC4pZiguKWcoLiloKC4pNDAgYiBGYig3KTE1MCAzMTkzIHkgRmQoaGlzdG9yeV9pbmhpYml0X2V4cGFuc2lvbl9mdW4pcQorKGN0aW8pcShuKTI5IGIgRmEoLikxMiBiKC4paCguKWYoLilnKC4paCguKWYoLik0OSBiIEZiKDExKTE1MAorMzI4MCB5IEZkKGhpc3RvcnlfaXNfc3RpZmxlZCkxMSBiIEZhKC4pMTcgYiguKTEyIGIoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikKK2goLikzNyBiIEZiKDcpMTUwIDMzNjggeSBGZChoaXN0b3J5X2xlbmd0aCkxNiBiIEZhKC4pZyguKWMoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pCitoKC4pZiguKWcoLiloKC4pZiguKWcoLik0MiBiIEZiKDEwKTE1MCAzNDU1IHkgRmQoaGlzdG9yeV9saXN0KTIzCitiIEZhKC4pMTIgYiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pNDYKK2IgRmIoNykxNTAgMzU0MyB5IEZkKGhpc3RvcnlfbWF4X2VudHJpZXMpOSBiIEZhKC4pMTcKK2IoLikxMiBiKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pCitmKC4pZyguKWgoLilmKC4pZyguKWgoLikzNCBiIEZiKDEwKTE1MCAzNjMwIHkgRmQKKyhoaXN0b3J5X25vX2V4cGFuZF9jaGFycykyNiBiIEZhKC4pMTMgYiguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnCisoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLik0NyBiIEZiKDExKTE1MAorMzcxOCB5IEZkKGhpc3RvcnlfcXVvdGVzX2luaGliaXRfZXhwYW5zKXEoaW9uKTkgYiBGYSguKTE4CitiKC4pMTIgYiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikzNCBiIEZiKDExKTE1MAorMzgwNSB5IEZkKGhpc3Rvcnlfc2VhcmNoKTE3IGIgRmEoLilmKC4pYyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikKK2goLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWgoLik0MyBiIEZiKDgpMTUwIDM4OTIgeSBGZChoaXN0b3J5X3NlYXJjaF9kZWxpbWl0ZXJfY2hhcilxKHMpMTEKK2IgRmEoLikxOCBiKC4pMTMgYiguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKTM3CitiIEZiKDEwKTE1MCAzOTgwIHkgRmQoaGlzdG9yeV9zZWFyY2hfcG9zKTExIGIgRmEoLikxNworYiguKTEyIGIoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLikKK2coLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pMzcgYiBGYig4KTIwMjUgNjM4IHkKK0ZkKGhpc3Rvcnlfc2VhcmNoX3ByZWZpeCk3IGIgRmEoLikxNyBiKC4pMTIgYiguKWgoLilmKC4pZyguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikzMworYiBGYig4KTIwMjUgNzI1IHkgRmQoaGlzdG9yeV9zZXRfaGlzdG9yeV9zdGF0ZSkyNSBiIEZhKC4pMTIKK2IoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pNDYKK2IgRmIoNikyMDI1IDgxMyB5IEZkKGhpc3Rvcnlfc2V0X3BvcykxNiBiIEZhKC4pZiguKWUoLilmKC4pZyguKWgoLilmKC4pCitnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgKKyguKWYoLilnKC4paCguKWYoLik0MiBiIEZiKDgpMjAyNSA5MDAgeSBGZChoaXN0b3J5X3N1YnN0X2NoYXIpMTAKK2IgRmEoLikxNyBiKC4pMTIgYiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKTM2IGIgRmIoMTApMjAyNQorOTg3IHkgRmQoaGlzdG9yeV90b2tlbml6ZSkxMyBiIEZhKC4paiguKWMoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloCisoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKQorMzkgYiBGYigxMCkyMDI1IDEwNzQgeSBGZChoaXN0b3J5X3RvdGFsX2J5dGVzKTEwIGIgRmEoLikxNgorYiguKWQoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloCisoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikzNiBiIEZiKDcpMjAyNSAxMTYyIHkgRmQKKyhoaXN0b3J5X3RydW5jYXRlX2ZpbGUpNyBiIEZhKC4pMTcgYiguKTEyIGIoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnCisoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pMzMKK2IgRmIoOSkyMDI1IDEyNDkgeSBGZChoaXN0b3J5X3dvcmRfZGVsaW1pdGVycykyNiBiIEZhKC4pMTMKK2IoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZgorKC4pNDcgYiBGYigxMCkyMDI1IDEzMzYgeSBGZChoaXN0b3J5X3dyaXRlX3RpbWVzdGFtcHMpMjUKK2IgRmEoLikxMiBiKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnCisoLilnKC4pNDYgYiBGYigxMCkyMDI1IDE1ODggeSBGcChOKTIwMjUgMTcwNCB5IEZkKG5leHRfaGlzdG9yeSkyMworYiBGYSguKTEyIGIoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgKKyguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKTQ2CitiIEZiKDgpMjAyNSAxOTU2IHkgRnAoUCkyMDI1IDIwNzIgeSBGZChwcmV2aW91c19oaXN0b3J5KTE0CitiIEZhKC4paSguKWMoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKQorZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLik0MSBiIEZiKDgpMjAyNQorMjMyNCB5IEZwKFIpMjAyNSAyNDQwIHkgRmQocmVhZF9oaXN0b3J5KTIzIGIgRmEoLikxMgorYiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnCisoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pNDYKK2IgRmIoOSkyMDI1IDI1MjcgeSBGZChyZWFkX2hpc3RvcnlfcmFuZ2UpMTEgYiBGYSguKTE3CitiKC4pMTIgYiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKQorZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikzOCBiIEZiKDkpMjAyNSAyNjE0IHkKK0ZkKHJlbW92ZV9oaXN0b3J5KTE3IGIgRmEoLillKC4pZSguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikKK2coLik0NCBiIEZiKDYpMjAyNSAyNzAyIHkgRmQocmVwbGFjZV9oaXN0b3J5X2VudHJ5KTcKK2IgRmEoLikxNyBiKC4pMTIgYiguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcKKyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikzMyBiIEZiKDcpMjAyNSAyOTUzIHkKK0ZwKFMpMjAyNSAzMDY5IHkgRmQoc3RpZmxlX2hpc3RvcnkpMTcgYiBGYSguKWUoLillKC4pZiguKWcoLiloKC4pZiguKWcKKyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pCitnKC4paCguKWYoLilnKC4pZyguKTQ0IGIgRmIoNykyMDI1IDMzMjEgeSBGcChVKTIwMjUgMzQzNworeSBGZCh1bnN0aWZsZV9oaXN0b3J5KTE0IGIgRmEoLilpKC4pYyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKQorNDEgYiBGYig3KTIwMjUgMzUyNSB5IEZkKHVzaW5nX2hpc3RvcnkpMjEgYiBGYSguKTEzIGIoLilmKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKQoraCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLik0NSBiIEZiKDYpMjAyNSAzNzc2IHkKK0ZwKFcpMjAyNSAzODkzIHkgRmQod2hlcmVfaGlzdG9yeSkyMSBiIEZhKC4pMTMgYiguKWYoLilnKC4paCguKWYoLilnKC4pCitoKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKTQ1IGIgRmIoNykyMDI1IDM5ODAgeSBGZCh3cml0ZV9oaXN0b3J5KTIxCitiIEZhKC4pMTMgYiguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLik0NQorYiBGYig5KXAgZW9wIGVuZAorJSVQYWdlOiAyNCAyOAorVGVYRGljdCBiZWdpbiAyNCAyNyBib3AgMTUwIC0xMTYgYSBGcigyNCkyNjUxIGIoR05VKTMxCitiKEhpc3RvcnkpZyhMaWJyYXJ5KXAgZW9wIGVuZAogJSVUcmFpbGVyCi1lbmQKKwogdXNlcmRpY3QgL2VuZC1ob29rIGtub3due2VuZC1ob29rfWlmCiAlJUVPRgpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvZG9jL2hpc3RvcnkudGV4aSBiL3JlYWRsaW5lL2RvYy9oaXN0b3J5LnRleGkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjZhM2QyMAotLS0gL2Rldi9udWxsCisrKyBiL3JlYWRsaW5lL2RvYy9oaXN0b3J5LnRleGkKQEAgLTAsMCArMSwxMDQgQEAKK1xpbnB1dCB0ZXhpbmZvICAgIEBjIC0qLXRleGluZm8tKi0KK0BjICUqKnN0YXJ0IG9mIGhlYWRlciAoVGhpcyBpcyBmb3IgcnVubmluZyBUZXhpbmZvIG9uIGEgcmVnaW9uLikKK0BzZXRmaWxlbmFtZSBoaXN0b3J5LmluZm8KK0BzZXR0aXRsZSBHTlUgSGlzdG9yeSBMaWJyYXJ5CitAYyAlKiplbmQgb2YgaGVhZGVyIChUaGlzIGlzIGZvciBydW5uaW5nIFRleGluZm8gb24gYSByZWdpb24uKQorCitAc2V0Y2hhcHRlcm5ld3BhZ2Ugb2RkCisKK0BpbmNsdWRlIHZlcnNpb24udGV4aQorCitAY29weWluZworVGhpcyBkb2N1bWVudCBkZXNjcmliZXMgdGhlIEdOVSBIaXN0b3J5IGxpYnJhcnkKKyh2ZXJzaW9uIEB2YWx1ZXtWRVJTSU9OfSwgQHZhbHVle1VQREFURUR9KSwKK2EgcHJvZ3JhbW1pbmcgdG9vbCB0aGF0IHByb3ZpZGVzIGEgY29uc2lzdGVudCB1c2VyIGludGVyZmFjZSBmb3IKK3JlY2FsbGluZyBsaW5lcyBvZiBwcmV2aW91c2x5IHR5cGVkIGlucHV0LgorCitDb3B5cmlnaHQgQGNvcHlyaWdodHt9IDE5ODgtMjAwNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIG1ha2UgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzIG9mCit0aGlzIG1hbnVhbCBwcm92aWRlZCB0aGUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZQorYXJlIHByZXNlcnZlZCBvbiBhbGwgY29waWVzLgorCitAcXVvdGF0aW9uCitQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoaXMgZG9jdW1lbnQKK3VuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLCBWZXJzaW9uIDEuMSBvcgorYW55IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHdpdGggbm8KK0ludmFyaWFudCBTZWN0aW9ucywgd2l0aCB0aGUgRnJvbnQtQ292ZXIgdGV4dHMgYmVpbmcgYGBBIEdOVSBNYW51YWwsJycKK2FuZCB3aXRoIHRoZSBCYWNrLUNvdmVyIFRleHRzIGFzIGluIChhKSBiZWxvdy4gIEEgY29weSBvZiB0aGUgbGljZW5zZSBpcworaW5jbHVkZWQgaW4gdGhlIHNlY3Rpb24gZW50aXRsZWQgYGBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UuJycKKworKGEpIFRoZSBGU0YncyBCYWNrLUNvdmVyIFRleHQgaXM6IGBgWW91IGhhdmUgZnJlZWRvbSB0byBjb3B5IGFuZCBtb2RpZnkKK3RoaXMgR05VIE1hbnVhbCwgbGlrZSBHTlUgc29mdHdhcmUuICBDb3BpZXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlCitTb2Z0d2FyZSBGb3VuZGF0aW9uIHJhaXNlIGZ1bmRzIGZvciBHTlUgZGV2ZWxvcG1lbnQuJycKK0BlbmQgcXVvdGF0aW9uCitAZW5kIGNvcHlpbmcKKworQGRpcmNhdGVnb3J5IExpYnJhcmllcworQGRpcmVudHJ5CisqIEhpc3Rvcnk6IChoaXN0b3J5KS4gICAgICAgVGhlIEdOVSBoaXN0b3J5IGxpYnJhcnkgQVBJLgorQGVuZCBkaXJlbnRyeQorCitAdGl0bGVwYWdlCitAdGl0bGUgR05VIEhpc3RvcnkgTGlicmFyeQorQHN1YnRpdGxlIEVkaXRpb24gQHZhbHVle0VESVRJT059LCBmb3IgQGNvZGV7SGlzdG9yeSBMaWJyYXJ5fSBWZXJzaW9uIEB2YWx1ZXtWRVJTSU9OfS4KK0BzdWJ0aXRsZSBAdmFsdWV7VVBEQVRFRC1NT05USH0KK0BhdXRob3IgQ2hldCBSYW1leSwgQ2FzZSBXZXN0ZXJuIFJlc2VydmUgVW5pdmVyc2l0eQorQGF1dGhvciBCcmlhbiBGb3gsIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorCitAcGFnZQorCitAdnNraXAgMHB0IHBsdXMgMWZpbGxsCitAaW5zZXJ0Y29weWluZworCitAc3AgMQorUHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gQCoKKzU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBAKgorQm9zdG9uLCBNQSAwMjExMS0xMzA3IEAqCitVU0EgQCoKKworQGVuZCB0aXRsZXBhZ2UKKworQGNvbnRlbnRzCisKK0BpZm5vdHRleAorQG5vZGUgVG9wCitAdG9wIEdOVSBIaXN0b3J5IExpYnJhcnkKKworVGhpcyBkb2N1bWVudCBkZXNjcmliZXMgdGhlIEdOVSBIaXN0b3J5IGxpYnJhcnksIGEgcHJvZ3JhbW1pbmcgdG9vbCB0aGF0Citwcm92aWRlcyBhIGNvbnNpc3RlbnQgdXNlciBpbnRlcmZhY2UgZm9yIHJlY2FsbGluZyBsaW5lcyBvZiBwcmV2aW91c2x5Cit0eXBlZCBpbnB1dC4KKworQG1lbnUKKyogVXNpbmcgSGlzdG9yeSBJbnRlcmFjdGl2ZWx5OjoJICBHTlUgSGlzdG9yeSBVc2VyJ3MgTWFudWFsLgorKiBQcm9ncmFtbWluZyB3aXRoIEdOVSBIaXN0b3J5OjogIEdOVSBIaXN0b3J5IFByb2dyYW1tZXIncyBNYW51YWwuCisqIENvcHlpbmcgVGhpcyBNYW51YWw6OgkJICBDb3B5aW5nIFRoaXMgTWFudWFsLgorKiBDb25jZXB0IEluZGV4OjoJCSAgSW5kZXggb2YgY29uY2VwdHMgZGVzY3JpYmVkIGluIHRoaXMgbWFudWFsLgorKiBGdW5jdGlvbiBhbmQgVmFyaWFibGUgSW5kZXg6OgkgIEluZGV4IG9mIGV4dGVybmFsbHkgdmlzaWJsZSBmdW5jdGlvbnMKKwkJCQkgIGFuZCB2YXJpYWJsZXMuCitAZW5kIG1lbnUKK0BlbmQgaWZub3R0ZXgKKworQHN5bmNvZGVpbmRleCBmbiB2cgorCitAaW5jbHVkZSBoc3VzZXIudGV4aQorQGluY2x1ZGUgaHN0ZWNoLnRleGkKKworQG5vZGUgQ29weWluZyBUaGlzIE1hbnVhbAorQGFwcGVuZGl4IENvcHlpbmcgVGhpcyBNYW51YWwKKworQG1lbnUKKyogR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlOjoJTGljZW5zZSBmb3IgY29weWluZyB0aGlzIG1hbnVhbC4KK0BlbmQgbWVudQorCitAaW5jbHVkZSBmZGwudGV4aQorCitAbm9kZSBDb25jZXB0IEluZGV4CitAYXBwZW5kaXggQ29uY2VwdCBJbmRleAorQHByaW50aW5kZXggY3AKKworQG5vZGUgRnVuY3Rpb24gYW5kIFZhcmlhYmxlIEluZGV4CitAYXBwZW5kaXggRnVuY3Rpb24gYW5kIFZhcmlhYmxlIEluZGV4CitAcHJpbnRpbmRleCB2cgorCitAYnllCmRpZmYgLS1naXQgYS9yZWFkbGluZS9kb2MvaGlzdG9yeV8zLnBzIGIvcmVhZGxpbmUvZG9jL2hpc3RvcnlfMy5wcwppbmRleCBmNTIzMWE1Li44NTUyOTJiIDEwMDY0NAotLS0gYS9yZWFkbGluZS9kb2MvaGlzdG9yeV8zLnBzCisrKyBiL3JlYWRsaW5lL2RvYy9oaXN0b3J5XzMucHMKQEAgLTEsMTYgKzEsMTYgQEAKICUhUFMtQWRvYmUtMy4wCi0lJUNyZWF0b3I6IGdyb2ZmIHZlcnNpb24gMS4xNi4xCi0lJUNyZWF0aW9uRGF0ZTogTW9uIE1hciAxOCAxMDoxNzoyNyAyMDAyCislJUNyZWF0b3I6IGdyb2ZmIHZlcnNpb24gMS4xOC4xCislJUNyZWF0aW9uRGF0ZTogTW9uIFNlcCAyMiAwOToxNTo0NCAyMDAzCiAlJURvY3VtZW50TmVlZGVkUmVzb3VyY2VzOiBmb250IFRpbWVzLVJvbWFuCiAlJSsgZm9udCBUaW1lcy1Cb2xkCiAlJSsgZm9udCBUaW1lcy1JdGFsaWMKLSUlRG9jdW1lbnRTdXBwbGllZFJlc291cmNlczogcHJvY3NldCBncm9wcyAxLjE2IDEKKyUlRG9jdW1lbnRTdXBwbGllZFJlc291cmNlczogcHJvY3NldCBncm9wcyAxLjE4IDEKICUlUGFnZXM6IDcKICUlUGFnZU9yZGVyOiBBc2NlbmQKICUlT3JpZW50YXRpb246IFBvcnRyYWl0CiAlJUVuZENvbW1lbnRzCiAlJUJlZ2luUHJvbG9nCi0lJUJlZ2luUmVzb3VyY2U6IHByb2NzZXQgZ3JvcHMgMS4xNiAxCislJUJlZ2luUmVzb3VyY2U6IHByb2NzZXQgZ3JvcHMgMS4xOCAxCiAvc2V0cGFja2luZyB3aGVyZXsKIHBvcAogY3VycmVudHBhY2tpbmcKQEAgLTEwOCwxMSArMTA4LDIwIEBACiAvU1Qvc3Ryb2tlIGxvYWQgZGVmCiAvTVQvbW92ZXRvIGxvYWQgZGVmCiAvQ0wvY2xvc2VwYXRoIGxvYWQgZGVmCi0vRkx7Ci1jdXJyZW50Z3JheSBleGNoIHNldGdyYXkgZmlsbCBzZXRncmF5CisvRnJ7CitzZXRyZ2Jjb2xvciBmaWxsCiB9YmluZCBkZWYKLS9CTC9maWxsIGxvYWQgZGVmCisvRmt7CitzZXRjbXlrY29sb3IgZmlsbAorfWJpbmQgZGVmCisvRmd7CitzZXRncmF5IGZpbGwKK31iaW5kIGRlZgorL0ZML2ZpbGwgbG9hZCBkZWYKIC9MVy9zZXRsaW5ld2lkdGggbG9hZCBkZWYKKy9Dci9zZXRyZ2Jjb2xvciBsb2FkIGRlZgorL0NrL3NldGNteWtjb2xvciBsb2FkIGRlZgorL0NnL3NldGdyYXkgbG9hZCBkZWYKIC9SRXsKIGZpbmRmb250CiBkdXAgbWF4bGVuZ3RoIDEgaW5kZXgvRm9udE5hbWUga25vd24gbm90ezEgYWRkfWlmIGRpY3QgYmVnaW4KQEAgLTE3MSw3ICsxODAsNyBAQAogJSVJbmNsdWRlUmVzb3VyY2U6IGZvbnQgVGltZXMtSXRhbGljCiBncm9wcyBiZWdpbi9ERUZTIDEgZGljdCBkZWYgREVGUyBiZWdpbi91ey4wMDEgbXVsfWJpbmQgZGVmIGVuZC9SRVMgNzIKIGRlZi9QTCA3OTIgZGVmL0xTIGZhbHNlIGRlZi9FTkMwWy9hc2NpaWNpcmN1bS9hc2NpaXRpbGRlL1NjYXJvbi9aY2Fyb24KLS9zY2Fyb24vemNhcm9uL1lkaWVyZXNpcy90cmFkZW1hcmsvcXVvdGVzaW5nbGUvLm5vdGRlZi8ubm90ZGVmLy5ub3RkZWYKKy9zY2Fyb24vemNhcm9uL1lkaWVyZXNpcy90cmFkZW1hcmsvcXVvdGVzaW5nbGUvRXVyby8ubm90ZGVmLy5ub3RkZWYKIC8ubm90ZGVmLy5ub3RkZWYvLm5vdGRlZi8ubm90ZGVmLy5ub3RkZWYvLm5vdGRlZi8ubm90ZGVmLy5ub3RkZWYvLm5vdGRlZgogLy5ub3RkZWYvLm5vdGRlZi8ubm90ZGVmLy5ub3RkZWYvLm5vdGRlZi8ubm90ZGVmLy5ub3RkZWYvLm5vdGRlZi8ubm90ZGVmCiAvLm5vdGRlZi8ubm90ZGVmL3NwYWNlL2V4Y2xhbS9xdW90ZWRibC9udW1iZXJzaWduL2RvbGxhci9wZXJjZW50CkBAIC0yNjIsMTYgKzI3MSwxNiBAQAogRjIoISEpMTA4IDQ1OC40IFEgRjAoUmVmZXIgdG8gdGhlIHByZSkyOS4zNCBFKHZpb3VzIGNvbW1hbmQuKS0uMjUgRQogKFRoaXMgaXMgYSBzeW5vbik1IEUoeW0gZm9yIGAhXDI1NTEnLiktLjE1IEUgRjIoISkxMDggNDcwLjQgUSBGMyhzdHJpbmcpCiBBIEYwKFJlZmVyIHRvIHRoZSBtb3N0IHJlY2VudCBjb21tYW5kIHN0YXJ0aW5nIHdpdGgpOS4zMyBFIEYzKHN0cmluZykyLjUKLUUgRjAoLikuMjIgRSBGMighPykxMDggNDgyLjQgUSBGMyhzdHJpbmcpQSBGMihbP10pQSBGMCAxLjA1NwotKFJlZmVyIHRvIHRoZSBtb3N0IHJlY2VudCBjb21tYW5kIGNvbnRhaW5pbmcpMTQ0IDQ5NC40IFIgRjMoc3RyaW5nKTMuNTU3Ci1FIEYwIDYuMDU3KC5UKS4yMiBHIDEuMDU3KGhlIHRyYWlsaW5nKS02LjA1NyBGIEYyKD8pMy41NTcgRSBGMCAxLjA1NwotKG1heSBiZSBvbWl0dGVkIGlmKTMuNTU3IEYgRjMoc3RyaW5nKTMuNTU3IEUgRjAoaXMpMy41NTcgRShmb2xsbykxNDQKK0UgRjAoLikuMjIgRSBGMighPykxMDggNDgyLjQgUSBGMyhzdHJpbmcpQSBGMihbP10pQSBGMCAxLjAyMgorKFJlZmVyIHRvIHRoZSBtb3N0IHJlY2VudCBjb21tYW5kIGNvbnRhaW5pbmcpMTQ0IDQ5NC40IFIgRjMoc3RyaW5nKTMuNTIyCitFIEYwIDYuMDIyKC5UKS4yMiBHIDEuMDIyKGhlIHRyYWlsaW5nKS02LjAyMiBGIEYyKD8pMy41MjIgRSBGMCAxLjAyMgorKG1heSBiZSBvbWl0dGVkIGlmKTMuNTIyIEYgRjMoc3RyaW5nKTMuODYyIEUgRjAoaXMpMy43NDIgRShmb2xsbykxNDQKIDUwNi40IFEod2VkIGltbWVkaWF0ZWx5IGJ5IGEgbmUpLS4yNSBFKHdsaW5lLiktLjI1IEUvRjQgMTIvVGltZXMtQm9sZEAwCiBTRiheKTEwOCA1MjMuNCBRIEYzKHN0cmluZzEpLTUgSSBGNCheKTUgSSBGMyhzdHJpbmcyKS01IEkgRjQoXik1IEkgRjAKLTIuNjYoUXVpY2sgc3Vic3RpdHV0aW9uLikxNDQgNTMwLjQgUiAyLjY2Ci0oUmVwZWF0IHRoZSBsYXN0IGNvbW1hbmQsIHJlcGxhY2luZyk3LjY2IEYgRjMoc3RyaW5nMSk1LjE2IEUgRjAod2l0aCkKLTUuMTYgRSBGMyhzdHJpbmcyKTUuMTYgRSBGMCA3LjY2KC5FKS4wMiBHKHF1aSktNy42NiBFIC0uMjUodmEpLS4yNSBHCi0yLjY2KGxlbnQgdG8pLjI1IEYgLS43NChgYCkxNDQgNTQyLjQgUyghITpzLykuNzQgRSBGMyhzdHJpbmcxKUEgRjAoLylBCisyLjYzKFF1aWNrIHN1YnN0aXR1dGlvbi4pMTQ0IDUzMC40IFIgMi42MjkKKyhSZXBlYXQgdGhlIGxhc3QgY29tbWFuZCwgcmVwbGFjaW5nKTcuNjI5IEYgRjMoc3RyaW5nMSk1LjQ2OSBFIEYwKHdpdGgpCis1LjEyOSBFIEYzKHN0cmluZzIpNS4xMjkgRSBGMCA3LjYyOSguRSkuMDIgRyhxdWkpLTcuNjI5IEUgLS4yNSh2YSktLjI1IEcKKzIuNjI5KGxlbnQgdG8pLjI1IEYgLS43NChgYCkxNDQgNTQyLjQgUyghITpzLykuNzQgRSBGMyhzdHJpbmcxKUEgRjAoLylBCiBGMyhzdHJpbmcyKUEgRjAoLycpQSAyLjUoJ1woKS0uNzQgRyhzZWUpLTIuNSBFIEYyKE1vZGlcMjE0ZXJzKTIuNSBFIEYwCiAoYmVsbykyLjUgRSh3XCkuKS0uMjUgRSBGMighIykxMDggNTU0LjQgUSBGMAogKFRoZSBlbnRpcmUgY29tbWFuZCBsaW5lIHR5cGVkIHNvIGYpMjcuNjcgRShhciktLjEgRSguKS0uNTUgRSBGMiAtLjc1CkBAIC0yOTAsMTQgKzI5OSwxNCBAQAogRihpbnNlcnRlZCBpbnRvIHRoZSBjdXJyZW50IGxpbmUgc2VwYXJhdGVkIGJ5IHNpbmdsZSBzcGFjZXMuKTEwOCA2MTkuMiBRCiBGMiAyLjUoMFwoKTEwOCA2MzYgUyh6ZXIpLTIuNSBFKG9cKSktLjE4IEUgRjAoVGhlIHplcm90aCB3KTE0NCA2NDggUSAyLjUKIChvcmQuIEYpLS4xIEYob3IgdGhlIHNoZWxsLCB0aGlzIGlzIHRoZSBjb21tYW5kIHcpLS4xNSBFKG9yZC4pLS4xIEUgRjMKLShuKTEwOCA2NjAgUSBGMChUaGUpMzEgRSBGMyhuKTIuNSBFIEYwKHRoIHcpQShvcmQuKS0uMSBFIEYyKF4pMTA4IDY3MiBRCi1GMChUaGUgXDIxNHJzdCBhcikzMi42NyBFIDIuNShndW1lbnQuIFRoYXQpLS4xOCBGKGlzLCB3KTIuNSBFKG9yZCAxLiktLjEKLUUgRjIoJCkxMDggNjg0IFEgRjAoVGhlIGxhc3QgYXIpMzEgRShndW1lbnQuKS0uMTggRSBGMiglKTEwOCA2OTYgUSBGMAotKFRoZSB3KTI2IEUob3JkIG1hdGNoZWQgYnkgdGhlIG1vc3QgcmVjZW50IGA/KS0uMSBFIEYzKHN0cmluZylBIEYwCi0oPycgc2VhcmNoLilBIEYzKHgpMTA4IDcwOCBRIEYyPGFkPkEgRjMoeSlBIEYwIDIuNShBcikyMS40MiBHKGFuZ2Ugb2YgdykKLS0yLjUgRShvcmRzOyBgXDI1NSktLjEgRSBGMyh5KUEgRjAgMi41KCdhKUMoYmJyZSktMi41IEUodmlhdGVzIGAwXDI1NSkKLS0uMjUgRSBGMyh5KUEgRjAoJy4pQShHTlUgSGlzdG9yeSA0LjMpNzIgNzY4IFEoMjAwMiBKYW51YXJ5IDMxKTEzMS43OSBFCi0oMSkxOTUuOTUgRSBFUAorKG4pMTA4LjM2IDY2MCBRIEYwKFRoZSkzMC42NCBFIEYzKG4pMi41IEUgRjAodGggdylBKG9yZC4pLS4xIEUgRjIoXikxMDgKKzY3MiBRIEYwKFRoZSBcMjE0cnN0IGFyKTMyLjY3IEUgMi41KGd1bWVudC4gVGhhdCktLjE4IEYoaXMsIHcpMi41IEUKKyhvcmQgMS4pLS4xIEUgRjIoJCkxMDggNjg0IFEgRjAoVGhlIGxhc3QgYXIpMzEgRShndW1lbnQuKS0uMTggRSBGMiglKTEwOAorNjk2IFEgRjAoVGhlIHcpMjYgRShvcmQgbWF0Y2hlZCBieSB0aGUgbW9zdCByZWNlbnQgYD8pLS4xIEUgRjMoc3RyaW5nKUEKK0YwKD8nIHNlYXJjaC4pQSBGMyh4KTEwOC43NyA3MDggUSBGMjxhZD5BIEYzKHkpQSBGMCAyLjUoQXIpMjAuNjUgRworKGFuZ2Ugb2YgdyktMi41IEUob3JkczsgYFwyNTUpLS4xIEUgRjMoeSlBIEYwIDIuNSgnYSlDKGJicmUpLTIuNSBFCisodmlhdGVzIGAwXDI1NSktLjI1IEUgRjMoeSlBIEYwKCcuKUEoR05VIEhpc3RvcnkgNS4wKTcyIDc2OCBRCisoMjAwMyBKdWx5IDMxKTEzOS4wMDUgRSgxKTIwMy4xNjUgRSAwIENnIEVQCiAlJVBhZ2U6IDIgMgogJSVCZWdpblBhZ2VTZXR1cAogQlAKQEAgLTMzMyw0NjggKzM0Miw0ODggQEAKIC0uMSBFIEYxKHgpMTA4IDI2Ni40IFEgRjAoUXVvdGUgdGhlIHN1YnN0aXR1dGVkIHcpMzEgRShvcmRzIGFzIHdpdGgpLS4xCiBFIEYxKHEpMi41IEUgRjAgMi41KCxiKUModXQgYnJlYWsgaW50byB3KS0yLjcgRShvcmRzIGF0KS0uMSBFIEYxKGJsYW5rcykKIDIuNSBFIEYwKGFuZCBuZSkyLjUgRSh3bGluZXMuKS0uMjUgRSBGMShzLykxMDggMjc4LjQgUSBGMihvbGQpQSBGMSgvKUEKLUYyKG5lKUEodyktLjE1IEUgRjEoLylBIEYwKFN1YnN0aXR1dGUpMTQ0IDI5MC40IFEgRjIobmUpMi44MTQgRSh3KS0uMTUgRQotRjAgLjMxNChmb3IgdGhlIFwyMTRyc3Qgb2NjdXJyZW5jZSBvZikyLjgxNCBGIEYyKG9sZCkyLjgxNCBFIEYwIC4zMTQKLShpbiB0aGUgZSkyLjgxNCBGIC0uMTUodmUpLS4yNSBHIC4zMTQobnQgbGluZS4pLjE1IEYoQW4pNS4zMTQgRSAyLjgxNAotKHlkKS0uMTUgRyAuMzE0KGVsaW1pdGVyIGNhbiBiZSB1c2VkIGluIHBsYWNlKS0yLjgxNCBGIC42MTYob2YgLy4pMTQ0CitGMihuZSlBKHcpLS4xNSBFIEYxKC8pQSBGMChTdWJzdGl0dXRlKTE0NCAyOTAuNCBRIEYyKG5lKTMuMDgyIEUodyktLjE1IEUKK0YwIC4yMjEoZm9yIHRoZSBcMjE0cnN0IG9jY3VycmVuY2Ugb2YpMy4wMzIgRiBGMihvbGQpMi45NTEgRSBGMCAuMjIxCisoaW4gdGhlIGUpMy40OTEgRiAtLjE1KHZlKS0uMjUgRyAuMjIxKG50IGxpbmUuKS4xNSBGKEFuKTUuMjIxIEUgMi43MjEKKyh5ZCktLjE1IEcgLjIyMShlbGltaXRlciBjYW4gYmUgdXNlZCBpbiBwbGFjZSktMi43MjEgRiAuNjE2KG9mIC8uKTE0NAogMzAyLjQgUiAuNjE3CiAoVGhlIFwyMTRuYWwgZGVsaW1pdGVyIGlzIG9wdGlvbmFsIGlmIGl0IGlzIHRoZSBsYXN0IGNoYXJhY3RlciBvZiB0aGUgZSkKIDUuNjE2IEYgLS4xNSh2ZSktLjI1IEcgLjYxNyhudCBsaW5lLikuMTUgRiAuNjE3KFRoZSBkZWxpbWl0ZXIgbWF5KTUuNjE3Ci1GIC43NShiZSBxdW90ZWQgaW4pMTQ0IDMxNC40IFIgRjIob2xkKTMuMjUgRSBGMChhbmQpMy4yNSBFIEYyKG5lKTMuMjUgRQotKHcpLS4xNSBFIEYwIC43NSh3aXRoIGEgc2luZ2xlIGJhY2tzbGFzaC4pMy4yNSBGIC43NDkoSWYgJiBhcHBlYXJzIGluKQotNS43NSBGIEYyKG5lKTMuMjQ5IEUodyktLjE1IEUgRjAgMy4yNDkoLGkpLjMxIEcgMy4yNDkodGkpLTMuMjQ5IEcgMy4yNDkKLShzciktMy4yNDkgRyAuNzQ5KGVwbGFjZWQgYnkpLTMuMjQ5IEYgRjIob2xkKTMuMjQ5IEUgRjAgNS43NDkoLkEpLjc3IEcKLS4zNjkoc2luZ2xlIGJhY2tzbGFzaCB3aWxsIHF1b3RlIHRoZSAmLikxNDQgMzI2LjQgUihJZik1LjM2OSBFIEYyKG9sZCkKLTIuODY5IEUgRjAgLjM3KGlzIG51bGwsIGl0IGlzIHNldCB0byB0aGUgbGFzdCkyLjg2OSBGIEYyKG9sZCkyLjg3IEUgRjAKLS4zNyhzdWJzdGl0dXRlZCwgb3IpMi44NyBGIDIuODcoLGkpLS40IEcgMi44NyhmbiktMi44NyBHIDIuODcob3ApLTIuODcgRwotKHJlKS0yLjg3IEUodmktKS0uMjUgRShvdXMgaGlzdG9yeSBzdWJzdGl0dXRpb25zIHRvb2sgcGxhY2UsIHRoZSBsYXN0KQotMTQ0IDMzOC40IFEgRjIoc3RyaW5nKTIuNSBFIEYwKGluIGEpMi41IEUgRjEoIT8pMi41IEUgRjIoc3RyaW5nKUEgRjEKLShbP10pQSBGMChzZWFyY2guKTUgRSBGMSgmKTEwOCAzNTAuNCBRIEYwKFJlcGVhdCB0aGUgcHJlKTI3LjY3IEUKLSh2aW91cyBzdWJzdGl0dXRpb24uKS0uMjUgRSBGMShnKTEwOCAzNjIuNCBRIEYwIC4zOTgKLShDYXVzZSBjaGFuZ2VzIHRvIGJlIGFwcGxpZWQgbykzMSBGIC0uMTUodmUpLS4xNSBHIDIuODk4KHJ0KS4xNSBHIC4zOTgKLShoZSBlbnRpcmUgZSktMi44OTggRiAtLjE1KHZlKS0uMjUgRyAuMzk4KG50IGxpbmUuKS4xNSBGIC4zOTcKLShUaGlzIGlzIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBgKTUuMzk4IEYgRjEoOnMpQSBGMCAyLjg5NygnXCgpQwotKGUuZy4sKS0yLjg5NyBFKGApMTQ0IDM3NC40IFEgRjEoOmdzLylBIEYyKG9sZClBIEYxKC8pQSBGMihuZSlBKHcpLS4xNSBFCi1GMSgvKUEgRjAgMS4yMTgoJ1wpIG9yIGApQiBGMSg6JilBIEYwIDMuNzE4KCcuIElmKUIgMS4yMTgodXNlZCB3aXRoIGApCi0zLjcxOCBGIEYxKDpzKUEgRjAgMS4yMTgoJywgYW4pQiAzLjcxOCh5ZCktLjE1IEcgMS4yMTkKLShlbGltaXRlciBjYW4gYmUgdXNlZCBpbiBwbGFjZSBvZiAvLCBhbmQgdGhlIFwyMTRuYWwpLTMuNzE4IEYKLShkZWxpbWl0ZXIgaXMgb3B0aW9uYWwgaWYgaXQgaXMgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIHRoZSBlKTE0NCAzODYuNCBRCi0tLjE1KHZlKS0uMjUgRyhudCBsaW5lLikuMTUgRS9GMyAxMC45NS9UaW1lcy1Cb2xkQDAgU0YoUFIpNzIgNDAzLjIgUQorRiAuNjY2KGJlIHF1b3RlZCBpbikxNDQgMzE0LjQgUiBGMihvbGQpMy4zOTYgRSBGMChhbmQpMy45MzYgRSBGMihuZSkKKzMuNTI2IEUodyktLjE1IEUgRjAgLjY2Nih3aXRoIGEgc2luZ2xlIGJhY2tzbGFzaC4pMy40NzYgRiAuNjY2CisoSWYgJiBhcHBlYXJzIGluKTUuNjY2IEYgRjIobmUpMy4xNjYgRSh3KS0uMTUgRSBGMCAzLjE2NigsaSkuMzEgRyAzLjE2NgorKHRpKS0zLjE2NiBHIDMuMTY2KHNyKS0zLjE2NiBHIC42NjYoZXBsYWNlZCBieSktMy4xNjYgRiBGMihvbGQpMy4xNjYgRQorRjAgNS42NjYoLkEpLjc3IEcgLjI3NChzaW5nbGUgYmFja3NsYXNoIHdpbGwgcXVvdGUgdGhlICYuKTE0NCAzMjYuNCBSCisoSWYpNS4yNzQgRSBGMihvbGQpMy4wMDQgRSBGMCAuMjc0KGlzIG51bGwsIGl0IGlzIHNldCB0byB0aGUgbGFzdCkzLjU0NAorRiBGMihvbGQpMy4wMDUgRSBGMCAuMjc1KHN1YnN0aXR1dGVkLCBvcikzLjU0NSBGIDIuNzc1KCxpKS0uNCBHIDIuNzc1CisoZm4pLTIuNzc1IEcgMi43NzUob3ApLTIuNzc1IEcocmUpLTIuNzc1IEUodmktKS0uMjUgRQorKG91cyBoaXN0b3J5IHN1YnN0aXR1dGlvbnMgdG9vayBwbGFjZSwgdGhlIGxhc3QpMTQ0IDMzOC40IFEgRjIoc3RyaW5nKQorMi44NCBFIEYwKGluIGEpMi43MiBFIEYxKCE/KTIuNSBFIEYyKHN0cmluZylBIEYxKFs/XSlBIEYwKHNlYXJjaC4pNSBFIEYxCisoJikxMDggMzUwLjQgUSBGMChSZXBlYXQgdGhlIHByZSkyNy42NyBFKHZpb3VzIHN1YnN0aXR1dGlvbi4pLS4yNSBFIEYxCisoZykxMDggMzYyLjQgUSBGMCAuMzk4KENhdXNlIGNoYW5nZXMgdG8gYmUgYXBwbGllZCBvKTMxIEYgLS4xNSh2ZSktLjE1IEcKKzIuODk4KHJ0KS4xNSBHIC4zOTgoaGUgZW50aXJlIGUpLTIuODk4IEYgLS4xNSh2ZSktLjI1IEcgLjM5OChudCBsaW5lLikKKy4xNSBGIC4zOTcoVGhpcyBpcyB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggYCk1LjM5OCBGIEYxKDpzKUEgRjAgMi44OTcKKygnXCgpQyhlLmcuLCktMi44OTcgRShgKTE0NCAzNzQuNCBRIEYxKDpncy8pQSBGMihvbGQpQSBGMSgvKUEgRjIobmUpQSh3KQorLS4xNSBFIEYxKC8pQSBGMCAxLjIxOCgnXCkgb3IgYClCIEYxKDomKUEgRjAgMy43MTgoJy4gSWYpQiAxLjIxOAorKHVzZWQgd2l0aCBgKTMuNzE4IEYgRjEoOnMpQSBGMCAxLjIxOCgnLCBhbilCIDMuNzE4KHlkKS0uMTUgRyAxLjIxOQorKGVsaW1pdGVyIGNhbiBiZSB1c2VkIGluIHBsYWNlIG9mIC8sIGFuZCB0aGUgXDIxNG5hbCktMy43MTggRiAuMDkKKyhkZWxpbWl0ZXIgaXMgb3B0aW9uYWwgaWYgaXQgaXMgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIHRoZSBlKTE0NCAzODYuNCBSCistLjE1KHZlKS0uMjUgRyAuMDg5KG50IGxpbmUuKS4xNSBGKEFuKTUuMDg5IEUgRjEoYSkyLjU4OSBFIEYwIC4wODkKKyhtYXkgYmUgdXNlZCBhcyBhIHN5bm9uKTIuNTg5IEYgLjA4OSh5bSBmb3IpLS4xNSBGIEYxKGcpMTQ0IDM5OC40IFEgRjAKKyguKUEgRjEoRykxMDggNDEwLjQgUSBGMChBcHBseSB0aGUgZm9sbG8pMjguMjIgRSh3aW5nIGApLS4yNSBFIEYxKHMpQSBGMAorMi41KCdtKUMob2RpXDIxNGVyIG9uY2UgdG8gZWFjaCB3KS0yLjUgRShvcmQgaW4gdGhlIGUpLS4xIEUgLS4xNSh2ZSktLjI1CitHKG50IGxpbmUuKS4xNSBFL0YzIDEwLjk1L1RpbWVzLUJvbGRAMCBTRihQUik3MiA0MjcuMiBRCiAoT0dSQU1NSU5HIFdJVEggSElTVCktLjMyOSBFKE9SKS0uMTk3IEUgMi43MzgoWUYpLS4zODMgRyhVTkNUSU9OUyktMi43MzgKLUUgRjAoVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyBobykxMDggNDE1LjIgUSAyLjUod3QpLS4yNSBHIDIuNShvdSktMi41IEcKLShzZSB0aGUgSGlzdG9yeSBsaWJyYXJ5IGluIG90aGVyIHByb2dyYW1zLiktMi41IEUgRjEoSW50cik4NyA0MzIgUQotKG9kdWN0aW9uIHRvIEhpc3RvcnkpLS4xOCBFIEYwIC43OTcKLShUaGUgcHJvZ3JhbW1lciB1c2luZyB0aGUgSGlzdG9yeSBsaWJyYXJ5IGhhcyBhKTEwOCA0NDQgUiAtLjI1KHZhKS0uMiBHCi0uNzk2KGlsYWJsZSBmdW5jdGlvbnMgZm9yIHJlbWVtYmVyaW5nIGxpbmVzIG9uIGEgaGlzdG9yeSBsaXN0LCkuMjUgRgotLjMwNyhhc3NvY2lhdGluZyBhcmJpdHJhcnkgZGF0YSB3aXRoIGEgbGluZSwgcmVtbykxMDggNDU2IFIgLjMwOAorRSBGMChUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIGhvKTEwOCA0MzkuMiBRIDIuNSh3dCktLjI1IEcgMi41KG91KS0yLjUgRworKHNlIHRoZSBIaXN0b3J5IGxpYnJhcnkgaW4gb3RoZXIgcHJvZ3JhbXMuKS0yLjUgRSBGMShJbnRyKTg3IDQ1NiBRCisob2R1Y3Rpb24gdG8gSGlzdG9yeSktLjE4IEUgRjAgLjc5NgorKFRoZSBwcm9ncmFtbWVyIHVzaW5nIHRoZSBIaXN0b3J5IGxpYnJhcnkgaGFzIGEpMTA4IDQ2OCBSIC0uMjUodmEpLS4yIEcKKy43OTcoaWxhYmxlIGZ1bmN0aW9ucyBmb3IgcmVtZW1iZXJpbmcgbGluZXMgb24gYSBoaXN0b3J5IGxpc3QsKS4yNSBGCisuMzA4KGFzc29jaWF0aW5nIGFyYml0cmFyeSBkYXRhIHdpdGggYSBsaW5lLCByZW1vKTEwOCA0ODAgUiAuMzA4CiAodmluZyBsaW5lcyBmcm9tIHRoZSBsaXN0LCBzZWFyY2hpbmcgdGhyb3VnaCB0aGUgbGlzdCBmb3IgYSBsaW5lIGNvbi0pCi0tLjE1IEYgLjMwMyh0YWluaW5nIGFuIGFyYml0cmFyeSB0ZSkxMDggNDY4IFIgLjMwMworLS4xNSBGIC4zMDModGFpbmluZyBhbiBhcmJpdHJhcnkgdGUpMTA4IDQ5MiBSIC4zMDMKICh4dCBzdHJpbmcsIGFuZCByZWZlcmVuY2luZyBhbiktLjE1IEYgMi44MDMoeWwpLS4xNSBHIC4zMDMKIChpbmUgaW4gdGhlIGxpc3QgZGlyZWN0bHkpLTIuODAzIEYgNS4zMDMoLkkpLS42NSBHIDIuODAzKG5hKS01LjMwMyBHCi0uMzAzKGRkaXRpb24sIGEgaGlzdG9yeSktMi44MDMgRiBGMiAtLjIoZXgpMi44MDIgRyhwYW5zaW9uKS4yIEUgRjAKLShmdW5jdGlvbiBpcyBhKTEwOCA0ODAgUSAtLjI1KHZhKS0uMiBHKGlsYWJsZSB3aGljaCBwcm8pLjI1IEUKKy4zMDMoZGRpdGlvbiwgYSBoaXN0b3J5KS0yLjgwMyBGIEYyIC0uMihleCkyLjgwMyBHKHBhbnNpb24pLjIgRSBGMAorKGZ1bmN0aW9uIGlzIGEpMTA4IDUwNCBRIC0uMjUodmEpLS4yIEcoaWxhYmxlIHdoaWNoIHBybykuMjUgRQogKHZpZGVzIGZvciBhIGNvbnNpc3RlbnQgdXNlciBpbnRlcmYpLS4xNSBFKGFjZSBhY3Jvc3MgZGlmKS0uMSBFCiAoZmVyZW50IHByb2dyYW1zLiktLjI1IEUgLjA1OShUaGUgdXNlciB1c2luZyBwcm9ncmFtcyB3cml0dGVuIHdpdGggdGhlIFwKLUhpc3RvcnkgbGlicmFyeSBoYXMgdGhlIGJlbmVcMjE0dCBvZiBhIGNvbnNpc3RlbnQgdXNlciBpbnRlcmYpMTA4IDQ5Ni44Ci1SIC4wNTkoYWNlIHdpdGggYSktLjEgRiAuOTE4KHNldCBvZiB3ZWxsLWtubykxMDggNTA4LjggUiAuOTE3CitIaXN0b3J5IGxpYnJhcnkgaGFzIHRoZSBiZW5lXDIxNHQgb2YgYSBjb25zaXN0ZW50IHVzZXIgaW50ZXJmKTEwOCA1MjAuOAorUiAuMDU4KGFjZSB3aXRoIGEpLS4xIEYgLjkxNyhzZXQgb2Ygd2VsbC1rbm8pMTA4IDUzMi44IFIgLjkxNwogKHduIGNvbW1hbmRzIGZvciBtYW5pcHVsYXRpbmcgdGhlIHRlKS0uMjUgRiAuOTE3KHh0IG9mIHByZSktLjE1IEYgLjkxNwotKHZpb3VzIGxpbmVzIGFuZCB1c2luZyB0aGF0IHRlKS0uMjUgRiAuOTE3KHh0IGluIG5lKS0uMTUgRiAzLjQxNyh3YyktLjI1Ci1HKG9tLSktMy40MTcgRSA0LjE4MyhtYW5kcy4gVGhlKTEwOCA1MjAuOCBSIDEuNjg0KGJhc2ljIGhpc3RvcnkgbWFuaXB1bFwKLWF0aW9uIGNvbW1hbmRzIGFyZSBpZGVudGljYWwgdG8gdGhlIGhpc3Rvcnkgc3Vic3RpdHV0aW9uIHBybyk0LjE4MyBGCi0xLjY4NCh2aWRlZCBieSktLjE1IEYgRjEoYmFzaCkxMDggNTMyLjggUSBGMCguKUEgLjkwNAotKElmIHRoZSBwcm9ncmFtbWVyIGRlc2lyZXMsIGhlIGNhbiB1c2UgdGhlIFJlYWRsaW5lIGxpYnJhcnkpMTA4IDU0OS42IFIKLTMuNDAzKCx3KS0uNjUgRyAuOTAzKGhpY2ggaW5jbHVkZXMgc29tZSBoaXN0b3J5IG1hbmlwdWxhdGlvbiBieSktMy40MDMgRgotKGRlZikxMDggNTYxLjYgUShhdWx0LCBhbmQgaGFzIHRoZSBhZGRlZCBhZHYpLS4xIEUKKyh2aW91cyBsaW5lcyBhbmQgdXNpbmcgdGhhdCB0ZSktLjI1IEYgLjkxNyh4dCBpbiBuZSktLjE1IEYgMy40MTgod2MpLS4yNQorRyhvbS0pLTMuNDE4IEUgNC4xODQobWFuZHMuIFRoZSkxMDggNTQ0LjggUiAxLjY4NChiYXNpYyBoaXN0b3J5IG1hbmlwdWxcCithdGlvbiBjb21tYW5kcyBhcmUgaWRlbnRpY2FsIHRvIHRoZSBoaXN0b3J5IHN1YnN0aXR1dGlvbiBwcm8pNC4xODQgRgorMS42ODModmlkZWQgYnkpLS4xNSBGIEYxKGJhc2gpMTA4IDU1Ni44IFEgRjAoLilBIC45MDMKKyhJZiB0aGUgcHJvZ3JhbW1lciBkZXNpcmVzLCBoZSBjYW4gdXNlIHRoZSBSZWFkbGluZSBsaWJyYXJ5KTEwOCA1NzMuNiBSCiszLjQwMygsdyktLjY1IEcgLjkwNChoaWNoIGluY2x1ZGVzIHNvbWUgaGlzdG9yeSBtYW5pcHVsYXRpb24gYnkpLTMuNDAzIEYKKyhkZWYpMTA4IDU4NS42IFEoYXVsdCwgYW5kIGhhcyB0aGUgYWRkZWQgYWR2KS0uMSBFCiAoYW50YWdlIG9mIGNvbW1hbmQgbGluZSBlZGl0aW5nLiktLjI1IEUgLjM5KEJlZm9yZSBkZWNsYXJpbmcgYW4pMTA4Ci01NzguNCBSIDIuODkoeWYpLS4xNSBHIC4zOSh1bmN0aW9ucyB1c2luZyBhbiktMi44OSBGIDIuODkoeWYpLS4xNSBHIC4zOQorNjAyLjQgUiAyLjg5KHlmKS0uMTUgRyAuMzkodW5jdGlvbnMgdXNpbmcgYW4pLTIuODkgRiAyLjg5KHlmKS0uMTUgRyAuMzkKICh1bmN0aW9uYWxpdHkgdGhlIEhpc3RvcnkgbGlicmFyeSBwcm8pLTIuODkgRiAuMzkKLSh2aWRlcyBpbiBvdGhlciBjb2RlLCBhbiBhcHBsaS0pLS4xNSBGIC4wNjcKLShjYXRpb24gd3JpdGVyIHNob3VsZCBpbmNsdWRlIHRoZSBcMjE0bGUpMTA4IDU5MC40IFIgRjIoPHIpNC4yMzMgRQotKGVhZGxpbmUvaGlzdG9yeSktLjM3IEUoLmg+KS0uNTUgRSBGMCAuMDY3KGluIGFuKTQuMjMzIEYgMi41NjY8Nzk4Yz4tLjE1Ci1HIC4wNjYobGUgdGhhdCB1c2VzIHRoZSBIaXN0b3J5IGxpYnJhcnknKS0yLjU2NiBGIDIuNTY2KHNmKS0uNTUgRwotKGVhdHVyZXMuKS0yLjU2NiBFIC41MzgoSXQgc3VwcGxpZXMgZSkxMDggNjAyLjQgUiAuNTM4CisodmlkZXMgaW4gb3RoZXIgY29kZSwgYW4gYXBwbGktKS0uMTUgRiAuMDY2CisoY2F0aW9uIHdyaXRlciBzaG91bGQgaW5jbHVkZSB0aGUgXDIxNGxlKTEwOCA2MTQuNCBSIEYyKDxyKTQuMjMyIEUKKyhlYWRsaW5lL2hpc3RvcnkpLS4zNyBFKC5oPiktLjU1IEUgRjAgLjA2NyhpbiBhbik0LjIzMiBGIDIuNTY3PDc5OGM+LS4xNQorRyAuMDY3KGxlIHRoYXQgdXNlcyB0aGUgSGlzdG9yeSBsaWJyYXJ5JyktMi41NjcgRiAyLjU2NyhzZiktLjU1IEcKKyhlYXR1cmVzLiktMi41NjcgRSAuNTM5KEl0IHN1cHBsaWVzIGUpMTA4IDYyNi40IFIgLjUzOAogKHh0ZXJuIGRlY2xhcmF0aW9ucyBmb3IgYWxsIG9mIHRoZSBsaWJyYXJ5JyktLjE1IEYgMy4wMzgoc3ApLS41NSBHIC41MzgKLSh1YmxpYyBmdW5jdGlvbnMgYW5kIHYpLTMuMDM4IEYgLjUzOShhcmlhYmxlcywgYW5kIGRlY2xhcmVzIGFsbCBvZiB0aGUpCi0tLjI1IEYocHVibGljIGRhdGEgc3RydWN0dXJlcy4pMTA4IDYxNC40IFEgRjEoSGlzdG9yeSBTdG9yYWdlKTg3IDY0My4yIFEKLUYwKFRoZSBoaXN0b3J5IGxpc3QgaXMgYW4gYXJyYXkgb2YgaGlzdG9yeSBlbnRyaWVzLikxMDggNjU1LjIgUSAyLjUoQWgpNQorKHVibGljIGZ1bmN0aW9ucyBhbmQgdiktMy4wMzggRiAuNTM4KGFyaWFibGVzLCBhbmQgZGVjbGFyZXMgYWxsIG9mIHRoZSkKKy0uMjUgRihwdWJsaWMgZGF0YSBzdHJ1Y3R1cmVzLikxMDggNjM4LjQgUSBGMShIaXN0b3J5IFN0b3JhZ2UpODcgNjY3LjIgUQorRjAoVGhlIGhpc3RvcnkgbGlzdCBpcyBhbiBhcnJheSBvZiBoaXN0b3J5IGVudHJpZXMuKTEwOCA2NzkuMiBRIDIuNShBaCk1CiBHKGlzdG9yeSBlbnRyeSBpcyBkZWNsYXJlZCBhcyBmb2xsbyktMi41IEUod3M6KS0uMjUgRSBGMih0eXBlZGVmIHZvaWQgKikKLTEwOCA2NzIgUSBGMShoaXN0ZGF0YV90OykyLjUgRSBGMCh0eXBlZGVmIHN0cnVjdCBfaGlzdF9lbnRyeSB7KTEwOCA2ODguOAotUShjaGFyICpsaW5lOykxMTMgNzAwLjggUShoaXN0ZGF0YV90IGRhdGE7KTExMyA3MTIuOCBRIDIuNSh9SCkxMDggNzI0LjgKLVMoSVNUX0VOVFIpLTIuNSBFIC0uOTIoWTspLS42NSBHKEdOVSBIaXN0b3J5IDQuMyk3MiA3NjggUQotKDIwMDIgSmFudWFyeSAzMSkxMzEuNzkgRSgyKTE5NS45NSBFIEVQCisxMDggNjk2IFEgRjEoaGlzdGRhdGFfdDspMi41IEUgRjAodHlwZWRlZiBzdHJ1Y3QgX2hpc3RfZW50cnkgeykxMDggNzEyLjgKK1EoY2hhciAqbGluZTspMTEzIDcyNC44IFEoR05VIEhpc3RvcnkgNS4wKTcyIDc2OCBRKDIwMDMgSnVseSAzMSkxMzkuMDA1CitFKDIpMjAzLjE2NSBFIDAgQ2cgRVAKICUlUGFnZTogMyAzCiAlJUJlZ2luUGFnZVNldHVwCiBCUAogJSVFbmRQYWdlU2V0dXAKIC9GMCAxMC9UaW1lcy1Sb21hbkAwIFNGKEhJU1QpNzIgNDggUShPUiktLjE4IEUgMzU3LjE4KFlcKDNcKSBISVNUKS0uNjUgRgotKE9SKS0uMTggRShZXCgzXCkpLS42NSBFCi0oVGhlIGhpc3RvcnkgbGlzdCBpdHNlbGYgbWlnaHQgdGhlcmVmb3JlIGJlIGRlY2xhcmVkIGFzKTEwOCA4NCBRL0YxIDEwCi0vVGltZXMtSXRhbGljQDAgU0YoSElTVF9FTlRSKTEwOCAxMDAuOCBRIDIuNShZKiktLjE4IEcoKiktMi41IEUvRjIgMTAKKyhPUiktLjE4IEUoWVwoM1wpKS0uNjUgRShjaGFyICp0aW1lc3RhbXA7KTExMyA4NCBRKGhpc3RkYXRhX3QgZGF0YTspMTEzCis5NiBRIDIuNSh9SCkxMDggMTA4IFMoSVNUX0VOVFIpLTIuNSBFIC0uOTIoWTspLS42NSBHCisoVGhlIGhpc3RvcnkgbGlzdCBpdHNlbGYgbWlnaHQgdGhlcmVmb3JlIGJlIGRlY2xhcmVkIGFzKTEwOCAxMjQuOCBRL0YxCisxMC9UaW1lcy1JdGFsaWNAMCBTRihISVNUX0VOVFIpMTA4IDE0MS42IFEgMi41KFkqKS0uMTggRygqKS0yLjUgRS9GMiAxMAogL1RpbWVzLUJvbGRAMCBTRih0aGVfaGlzdG9yeV9saXN0OykyLjUgRSBGMChUaGUgc3RhdGUgb2YgdGhlIEhpc3RvcnkgbGlcCi1icmFyeSBpcyBlbmNhcHN1bGF0ZWQgaW50byBhIHNpbmdsZSBzdHJ1Y3R1cmU6KTEwOCAxMTcuNiBRKC8qKTEwOCAxMzQuNAotUSAyLjUoKkFzKTExMC41IDE0Ni40IFMKK2JyYXJ5IGlzIGVuY2Fwc3VsYXRlZCBpbnRvIGEgc2luZ2xlIHN0cnVjdHVyZTopMTA4IDE1OC40IFEoLyopMTA4IDE3NS4yCitRIDIuNSgqQXMpMTEwLjUgMTg3LjIgUwogKHRydWN0dXJlIHVzZWQgdG8gcGFzcyBhcm91bmQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGhpc3RvcnkpLTIuNSBFKC4pCi0tLjY1IEUoKi8pMTEwLjUgMTU4LjQgUSh0eXBlZGVmIHN0cnVjdCBfaGlzdF9zdGF0ZSB7KTEwOCAxNzAuNCBRCi0oSElTVF9FTlRSKTExMyAxODIuNCBRIDIuNShZKiktLjY1IEcKKy0uNjUgRSgqLykxMTAuNSAxOTkuMiBRKHR5cGVkZWYgc3RydWN0IF9oaXN0X3N0YXRlIHspMTA4IDIxMS4yIFEKKyhISVNUX0VOVFIpMTEzIDIyMy4yIFEgMi41KFkqKS0uNjUgRwogKCplbnRyaWVzOyAvKiBQb2ludGVyIHRvIHRoZSBlbnRyaWVzIHRoZW1zZWx2KS0yLjUgRShlcy4gKi8pLS4xNSBFCi0oaW50IG9mKTExMyAxOTQuNCBRIDI1KGZzZXQ7IC8qKS0uMjUgRgorKGludCBvZikxMTMgMjM1LjIgUSAyNShmc2V0OyAvKiktLjI1IEYKIChUaGUgbG9jYXRpb24gcG9pbnRlciB3aXRoaW4gdGhpcyBhcnJheSkyLjUgRSAyLjUoLiopLS42NSBHKC8pLTIuNSBFCi0oaW50IGxlbmd0aDspMTEzIDIwNi40IFEoLyogTnVtYmVyIG9mIGVsZW1lbnRzIHdpdGhpbiB0aGlzIGFycmF5KTI3LjUgRQotMi41KC4qKS0uNjUgRygvKS0yLjUgRShpbnQgc2l6ZTspMTEzIDIxOC40IFEKKyhpbnQgbGVuZ3RoOykxMTMgMjQ3LjIgUSgvKiBOdW1iZXIgb2YgZWxlbWVudHMgd2l0aGluIHRoaXMgYXJyYXkpMjcuNSBFCisyLjUoLiopLS42NSBHKC8pLTIuNSBFKGludCBzaXplOykxMTMgMjU5LjIgUQogKC8qIE51bWJlciBvZiBzbG90cyBhbGxvY2F0ZWQgdG8gdGhpcyBhcnJheSkzMi41IEUgMi41KC4qKS0uNjUgRygvKS0yLjUKLUUoaW50IFwyMTVhZ3M7KTExMyAyMzAuNCBRIDIuNSh9SCkxMDggMjQyLjQgUyhJU1QpLTIuNSBFKE9SKS0uMTggRShZX1NUKQotLS42NSBFIC0xLjExKEFUKS0uOTMgRyhFOykxLjExIEUoSWYgdGhlIFwyMTVhZ3MgbWVtYmVyIGluY2x1ZGVzKTEwOAotMjU5LjIgUSBGMihIU19TVElGTEVEKTIuNSBFIEYwIDIuNSgsdClDKGhlIGhpc3RvcnkgaGFzIGJlZW4gc3RpXDIxNWVkLikKLS0yLjUgRS9GMyAxMC45NS9UaW1lcy1Cb2xkQDAgU0YoSGlzdG9yeSBGdW5jdGlvbnMpNzIgMjc2IFEgRjAKLShUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIHRoZSBjYWxsaW5nIHNlcXVlbmNlIGZvciB0aGUgdikxMDggMjg4IFEKK0UoaW50IFwyMTVhZ3M7KTExMyAyNzEuMiBRIDIuNSh9SCkxMDggMjgzLjIgUyhJU1QpLTIuNSBFKE9SKS0uMTggRShZX1NUKQorLS42NSBFIC0xLjExKEFUKS0uOTMgRyhFOykxLjExIEUoSWYgdGhlIFwyMTVhZ3MgbWVtYmVyIGluY2x1ZGVzKTEwOCAzMDAKK1EgRjIoSFNfU1RJRkxFRCkyLjUgRSBGMCAyLjUoLHQpQyhoZSBoaXN0b3J5IGhhcyBiZWVuIHN0aVwyMTVlZC4pLTIuNSBFCisvRjMgMTAuOTUvVGltZXMtQm9sZEAwIFNGKEhpc3RvcnkgRnVuY3Rpb25zKTcyIDMxNi44IFEgRjAKKyhUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIHRoZSBjYWxsaW5nIHNlcXVlbmNlIGZvciB0aGUgdikxMDggMzI4LjggUQogKGFyaW91cyBmdW5jdGlvbnMgZSktLjI1IEUoeHBvcnRlZCBieSB0aGUgR05VIEhpc3RvcnkgbGlicmFyeSktLjE1IEUoLikKLS0uNjUgRSBGMihJbml0aWFsaXppbmcgSGlzdG9yeSBhbmQgU3RhdGUgTWFuYWdlbWVudCk4NyAzMDQuOCBRIEYwIDEuMjc0CistLjY1IEUgRjIoSW5pdGlhbGl6aW5nIEhpc3RvcnkgYW5kIFN0YXRlIE1hbmFnZW1lbnQpODcgMzQ1LjYgUSBGMCAxLjI3NAogKFRoaXMgc2VjdGlvbiBkZXNjcmliZXMgZnVuY3Rpb25zIHVzZWQgdG8gaW5pdGlhbGl6ZSBhbmQgbWFuYWdlIHRoZSBzdGFcCi10ZSBvZiB0aGUgSGlzdG9yeSBsaWJyYXJ5IHdoZW4geW91KTEwOCAzMTYuOCBSIC0uMSh3YSkxMDggMzI4LjggUwotKG50IHRvIHVzZSB0aGUgaGlzdG9yeSBmdW5jdGlvbnMgaW4geW91ciBwcm9ncmFtLikuMSBFIEYxKHZvaWQpMTA4IDM1Mi44Cit0ZSBvZiB0aGUgSGlzdG9yeSBsaWJyYXJ5IHdoZW4geW91KTEwOCAzNTcuNiBSIC0uMSh3YSkxMDggMzY5LjYgUworKG50IHRvIHVzZSB0aGUgaGlzdG9yeSBmdW5jdGlvbnMgaW4geW91ciBwcm9ncmFtLikuMSBFIEYxKHZvaWQpMTA4IDM5My42CiBRIEYyKHVzaW5nX2hpc3RvcnkpMi41IEUgRjAoXCgpNC4xNjYgRSBGMSh2b2lkKUEgRjAoXCkpMS42NjYgRShCZSkxMDgKLTM2NC44IFEoZ2luIGEgc2Vzc2lvbiBpbiB3aGljaCB0aGUgaGlzdG9yeSBmdW5jdGlvbnMgbWlnaHQgYmUgdXNlZC4pLS4xNQorNDA1LjYgUShnaW4gYSBzZXNzaW9uIGluIHdoaWNoIHRoZSBoaXN0b3J5IGZ1bmN0aW9ucyBtaWdodCBiZSB1c2VkLiktLjE1CiBFKFRoaXMgaW5pdGlhbGl6ZXMgdGhlIGludGVyYWN0aSk1IEUgLjMgLS4xNSh2ZSB2KS0uMjUgSChhcmlhYmxlcy4pLS4xIEUKLUYxKEhJU1QpMTA4IDM4OC44IFEoT1IpLS4xOCBFKFlfU1QpLS4xOCBFIC0uMzcoQVQpLS41IEcgMi41KEUqKS4zNyBHIEYyCitGMShISVNUKTEwOCA0MjkuNiBRKE9SKS0uMTggRShZX1NUKS0uMTggRSAtLjM3KEFUKS0uNSBHIDIuNShFKikuMzcgRyBGMgogKGhpc3RvcnlfZ2V0X2hpc3Rvcnlfc3RhdGUpQSBGMChcKCk0LjE2NiBFIEYxKHZvaWQpQSBGMChcKSkxLjY2NiBFCiAoUmV0dXJuIGEgc3RydWN0dXJlIGRlc2NyaWJpbmcgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGlucHV0IGhpc3RvcnkpCi0xMDggNDAwLjggUSguKS0uNjUgRSBGMSh2b2lkKTEwOCA0MjQuOCBRIEYyKGhpc3Rvcnlfc2V0X2hpc3Rvcnlfc3RhdGUpCisxMDggNDQxLjYgUSguKS0uNjUgRSBGMSh2b2lkKTEwOCA0NjUuNiBRIEYyKGhpc3Rvcnlfc2V0X2hpc3Rvcnlfc3RhdGUpCiAyLjUgRSBGMChcKCk0LjE2NiBFIEYxKEhJU1QpQShPUiktLjE4IEUoWV9TVCktLjE4IEUgLS4zNyhBVCktLjUgRyAyLjUKIChFKikuMzcgRyhzdGF0ZSktMi41IEUgRjAoXCkpMS42NjYgRQotKFNldCB0aGUgc3RhdGUgb2YgdGhlIGhpc3RvcnkgbGlzdCBhY2NvcmRpbmcgdG8pMTA4IDQzNi44IFEgRjEoc3RhdGUpMi41Ci1FIEYwKC4pQSBGMihIaXN0b3J5IExpc3QgTWFuYWdlbWVudCk4NyA0NjUuNiBRIEYwCi0oVGhlc2UgZnVuY3Rpb25zIG1hbmFnZSBpbmRpKTEwOCA0NzcuNiBRKHZpZHVhbCBlbnRyaWVzIG9uIHRoZSBoaXN0b3J5IFwKKyhTZXQgdGhlIHN0YXRlIG9mIHRoZSBoaXN0b3J5IGxpc3QgYWNjb3JkaW5nIHRvKTEwOCA0NzcuNiBRIEYxKHN0YXRlKTIuNQorRSBGMCguKUEgRjIoSGlzdG9yeSBMaXN0IE1hbmFnZW1lbnQpODcgNTA2LjQgUSBGMAorKFRoZXNlIGZ1bmN0aW9ucyBtYW5hZ2UgaW5kaSkxMDggNTE4LjQgUSh2aWR1YWwgZW50cmllcyBvbiB0aGUgaGlzdG9yeSBcCiBsaXN0LCBvciBzZXQgcGFyYW1ldGVycyBtYW5hZ2luZyB0aGUgbGlzdCBpdHNlbGYuKS0uMjUgRSBGMSh2b2lkKTEwOAotNTAxLjYgUSBGMihhZGRfaGlzdG9yeSkyLjUgRSBGMChcKCk0LjE2NiBFIEYxKGNvbnN0IGMpQShoYXIgKnN0cmluZyktLjE1Ci1FIEYwKFwpKTEuNjY2IEUoUGxhY2UpMTA4IDUxMy42IFEgRjEoc3RyaW5nKTIuNSBFIEYwCis1NDIuNCBRIEYyKGFkZF9oaXN0b3J5KTIuNSBFIEYwKFwoKTQuMTY2IEUgRjEoY29uc3QgYylBKGhhciAqc3RyaW5nKS0uMTUKK0UgRjAoXCkpMS42NjYgRShQbGFjZSkxMDggNTU0LjQgUSBGMShzdHJpbmcpMi41IEUgRjAKIChhdCB0aGUgZW5kIG9mIHRoZSBoaXN0b3J5IGxpc3QuKTIuNSBFCiAoVGhlIGFzc29jaWF0ZWQgZGF0YSBcMjE0ZWxkIFwoaWYgYW4pNSBFKHlcKSBpcyBzZXQgdG8pLS4xNSBFIEYyKE5VTEwpCi0yLjUgRSBGMCguKUEgRjEoSElTVF9FTlRSKTEwOCA1MzcuNiBRIDIuNShZKiktLjE4IEcgRjIgLS4xOChyZSlDKG1vKS4xOAotRSAtLjEodmUpLS4xIEcoX2hpc3RvcnkpLjEgRSBGMChcKCk0LjE2NiBFIEYxKGludCB3aGljKUEoaCktLjE1IEUgRjAoXCkpCi0xLjY2NiBFKFJlbW8pMTA4IDU0OS42IFEgLjM1MiAtLjE1KHZlIGgpLS4xNSBIIC4wNTIoaXN0b3J5IGVudHJ5IGF0IG9mKQotLjE1IEYoZnNldCktLjI1IEUgRjEod2hpYykyLjU1MyBFKGgpLS4xNSBFIEYwIC4wNTMoZnJvbSB0aGUgaGlzdG9yeSkKLTIuNTUzIEYgNS4wNTMoLlQpLS42NSBHIC4wNTMoaGUgcmVtbyktNS4wNTMgRiAtLjE1KHZlKS0uMTUgRyAyLjU1MyhkZSkKLS4xNSBHIC4wNTMobGVtZW50IGlzIHJldHVybmVkIHNvIHlvdSBjYW4gZnJlZSB0aGUpLTIuNTUzIEYKLShsaW5lLCBkYXRhLCBhbmQgY29udGFpbmluZyBzdHJ1Y3R1cmUuKTEwOCA1NjEuNiBRIEYxKEhJU1RfRU5UUikxMDgKLTU4NS42IFEgMi41KFkqKS0uMTggRyBGMiAtLjE4KHJlKUMocGxhY2VfaGlzdG9yeV9lbnRyeSkuMTggRSBGMChcKCk0LjE2NgotRSBGMShpbnQgd2hpYylBIC0uODM0KGgsIGNvbnN0KS0uMTUgRiAtLjE1KGNoKTIuNSBHKGFyICpsaW5lKS4xNSBFIDEuNjY2Ci0oLGgpLS4xIEcoaXN0ZGF0YV90IGRhdGEpLTEuNjY2IEUgRjAoXCkpMy4zMzIgRShNYWspMTA4IDU5Ny42IFEgMi44NjgKLShldCktLjEgRyAuMzY4KGhlIGhpc3RvcnkgZW50cnkgYXQgb2YpLTIuODY4IEYoZnNldCktLjI1IEUgRjEod2hpYykyLjg2OAotRShoKS0uMTUgRSBGMChoYSkyLjg2OCBFIC0uMTUodmUpLS4yIEcgRjEobGluZSkzLjAxOCBFIEYwKGFuZCkyLjg2OCBFIEYxCi0oZGF0YSkyLjg2OCBFIEYwIDUuMzY3KC5UKUMgLjM2NwotKGhpcyByZXR1cm5zIHRoZSBvbGQgZW50cnkgc28geW91IGNhbiBkaXNwb3NlIG9mKS01LjM2NyBGKHRoZSBkYXRhLikxMDgKLTYwOS42IFEoSW4gdGhlIGNhc2Ugb2YgYW4gaW4pNSBFIC0uMjUodmEpLS40IEcobGlkKS4yNSBFIEYxKHdoaWMpMi41IEUKLShoKS0uMTUgRSBGMCAyLjUoLGEpQyBGMihOVUxMKUEgRjAocG9pbnRlciBpcyByZXR1cm5lZC4pMi41IEUgRjEodm9pZCkKLTEwOCA2MzMuNiBRIEYyKGNsZWFyX2hpc3RvcnkpMi41IEUgRjAoXCgpNC4xNjYgRSBGMSh2b2lkKUEgRjAoXCkpMS42NjYgRQotKENsZWFyIHRoZSBoaXN0b3J5IGxpc3QgYnkgZGVsZXRpbmcgYWxsIHRoZSBlbnRyaWVzLikxMDggNjQ1LjYgUSBGMQotKHZvaWQpMTA4IDY2OS42IFEgRjIoc3RpXDIxNWVfaGlzdG9yeSkyLjUgRSBGMChcKCk0LjE2NiBFIEYxKGludCBtYXgpQQotRjAoXCkpMS42NjYgRShTdGlcMjE1ZSB0aGUgaGlzdG9yeSBsaXN0LCByZW1lbWJlcmluZyBvbmx5IHRoZSBsYXN0KTEwOAotNjgxLjYgUSBGMShtYXgpMi41IEUgRjAoZW50cmllcy4pMi41IEUgRjEoaW50KTEwOCA3MDUuNiBRIEYyCi0odW5zdGlcMjE1ZV9oaXN0b3J5KTIuNSBFIEYwKFwoKTQuMTY2IEUgRjEodm9pZClBIEYwKFwpKTEuNjY2IEUgLjQ2Ci0oU3RvcCBzdGlcMjE1aW5nIHRoZSBoaXN0b3J5KTEwOCA3MTcuNiBSIDUuNDYoLlQpLS42NSBHIC40NgotKGhpcyByZXR1cm5zIHRoZSBwcmUpLTUuNDYgRiAuNDYKLSh2aW91c2x5LXNldCBtYXhpbXVtIG51bWJlciBvZiBoaXN0b3J5IGVudHJpZXMgXChhcyBzZXQgYnkpLS4yNSBGIEYyCi0oc3RpLSkyLjk2IEUoXDIxNWVfaGlzdG9yeVwoXCkpMTA4IDcyOS42IFEgRjAgMi41KFwpLiBoaXN0b3J5KUIgLS4xKHdhKQotMi41IEcgMi41KHNzKS4xIEcgMi41KHRpXDIxNWVkLiBUaGUpLTIuNSBGIC0uMjUodmEpMi41IEcobHVlIGlzIHBvc2l0aSkKLS4yNSBFIC4zIC0uMTUodmUgaSktLjI1IEggMi41KGZ0KS4xNSBHKGhlIGhpc3RvcnkgdyktMi41IEUKLShhcyBzdGlcMjE1ZWQsIG5lKS0uMSBFIC0uMDUoZ2EpLS4xNSBHKHRpKS4wNSBFIC4zIC0uMTUodmUgaSktLjI1IEggMi41Ci0oZmkpLjE1IEcgMi41KHR3KS0yLjUgRyhhc24nKS0yLjYgRSh0LiktLjE4IEUoR05VIEhpc3RvcnkgNC4zKTcyIDc2OCBRCi0oMjAwMiBKYW51YXJ5IDMxKTEzMS43OSBFKDMpMTk1Ljk1IEUgRVAKKzIuNSBFIEYwKC4pQSBGMSh2b2lkKTEwOCA1NzguNCBRIEYyKGFkZF9oaXN0b3J5X3RpbWUpMi41IEUgRjAoXCgpNC4xNjYgRQorRjEoY29uc3QgYylBKGhhciAqc3RyaW5nKS0uMTUgRSBGMChcKSkxLjY2NiBFCisoQ2hhbmdlIHRoZSB0aW1lIHN0YW1wIGFzc29jaWF0ZWQgd2l0aCB0aGUgbW9zdCByZWNlbnQgaGlzdG9yeSBlbnRyeSB0bykKKzEwOCA1OTAuNCBRIEYxKHN0cmluZykyLjUgRSBGMCguKUEgRjEoSElTVF9FTlRSKTEwOCA2MTQuNCBRIDIuNShZKiktLjE4CitHIEYyIC0uMTgocmUpQyhtbykuMTggRSAtLjEodmUpLS4xIEcoX2hpc3RvcnkpLjEgRSBGMChcKCk0LjE2NiBFIEYxCisoaW50IHdoaWMpQShoKS0uMTUgRSBGMChcKSkxLjY2NiBFKFJlbW8pMTA4IDYyNi40IFEgLjM1MyAtLjE1KHZlIGgpLS4xNQorSCAuMDUzKGlzdG9yeSBlbnRyeSBhdCBvZikuMTUgRihmc2V0KS0uMjUgRSBGMSh3aGljKTIuNTUzIEUoaCktLjE1IEUgRjAKKy4wNTMoZnJvbSB0aGUgaGlzdG9yeSkyLjU1MyBGIDUuMDUzKC5UKS0uNjUgRyAuMDUzKGhlIHJlbW8pLTUuMDUzIEYgLS4xNQorKHZlKS0uMTUgRyAyLjU1MyhkZSkuMTUgRyAuMDUyKGxlbWVudCBpcyByZXR1cm5lZCBzbyB5b3UgY2FuIGZyZWUgdGhlKQorLTIuNTUzIEYobGluZSwgZGF0YSwgYW5kIGNvbnRhaW5pbmcgc3RydWN0dXJlLikxMDggNjM4LjQgUSBGMQorKGhpc3RkYXRhX3QpMTA4IDY2Mi40IFEgRjIoZnIpMi41IEUoZWVfaGlzdG9yeV9lbnRyeSktLjE4IEUgRjAoXCgpNC4xNjYKK0UgRjEoSElTVF9FTlRSKUEgMi41KFkqKS0uMTggRyhoaXN0ZW50KS0yLjUgRSBGMChcKSkxLjY2NiBFIC45MzMKKyhGcmVlIHRoZSBoaXN0b3J5IGVudHJ5KTEwOCA2NzQuNCBSIEYxKGhpc3RlbnQpMy40MzMgRSBGMCAuOTMzKGFuZCBhbikKKzMuNDMzIEYgMy40MzMoeWgpLS4xNSBHIC45MzMoaXN0b3J5IGxpYnJhcnkgcHJpKS0zLjQzMyBGIC0uMjUodmEpLS4yNSBHCisuOTMzKHRlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIGl0LikuMjUgRiAuOTM0KFJldHVybnMgdGhlIGFwcGxpY2EtKTUuOTMzIEYKKyh0aW9uLXNwZWNpXDIxNGMgZGF0YSBzbyB0aGUgY2FsbGVyIGNhbiBkaXNwb3NlIG9mIGl0LikxMDggNjg2LjQgUSBGMQorKEhJU1RfRU5UUikxMDggNzEwLjQgUSAyLjUoWSopLS4xOCBHIEYyIC0uMTgocmUpQyhwbGFjZV9oaXN0b3J5X2VudHJ5KQorLjE4IEUgRjAoXCgpNC4xNjYgRSBGMShpbnQgd2hpYylBIC0uODM0KGgsIGNvbnN0KS0uMTUgRiAtLjE1KGNoKTIuNSBHCisoYXIgKmxpbmUpLjE1IEUgMS42NjYoLGgpLS4xIEcoaXN0ZGF0YV90IGRhdGEpLTEuNjY2IEUgRjAoXCkpMy4zMzIgRQorKE1haykxMDggNzIyLjQgUSA0LjAxNChldCktLjEgRyAxLjUxNChoZSBoaXN0b3J5IGVudHJ5IGF0IG9mKS00LjAxNCBGCisoZnNldCktLjI1IEUgRjEod2hpYyk0LjAxMyBFKGgpLS4xNSBFIEYwKGhhKTQuMDEzIEUgLS4xNSh2ZSktLjIgRyBGMQorKGxpbmUpNC4xNjMgRSBGMChhbmQpNC4wMTMgRSBGMShkYXRhKTQuMDEzIEUgRjAgNi41MTMoLlQpQyAxLjUxMworKGhpcyByZXR1cm5zIHRoZSBvbGQgZW50cnkgc28gdGhlIGNhbGxlciBjYW4pLTYuNTEzIEYoR05VIEhpc3RvcnkgNS4wKTcyCis3NjggUSgyMDAzIEp1bHkgMzEpMTM5LjAwNSBFKDMpMjAzLjE2NSBFIDAgQ2cgRVAKICUlUGFnZTogNCA0CiAlJUJlZ2luUGFnZVNldHVwCiBCUAogJSVFbmRQYWdlU2V0dXAKIC9GMCAxMC9UaW1lcy1Sb21hbkAwIFNGKEhJU1QpNzIgNDggUShPUiktLjE4IEUgMzU3LjE4KFlcKDNcKSBISVNUKS0uNjUgRgotKE9SKS0uMTggRShZXCgzXCkpLS42NSBFL0YxIDEwL1RpbWVzLUl0YWxpY0AwIFNGKGludCkxMDggODQgUS9GMiAxMAotL1RpbWVzLUJvbGRAMCBTRihoaXN0b3J5X2lzX3N0aVwyMTVlZCkyLjUgRSBGMChcKCk0LjE2NiBFIEYxKHZvaWQpQSBGMAotKFwpKTEuNjY2IEUKLShSZXR1cm5zIG5vbi16ZXJvIGlmIHRoZSBoaXN0b3J5IGlzIHN0aVwyMTVlZCwgemVybyBpZiBpdCBpcyBub3QuKTEwOCA5NgotUSBGMihJbmYpODcgMTI0LjggUShvcm1hdGlvbiBBYm91dCB0aGUgSGlzdG9yeSBMaXN0KS0uMjUgRSBGMChUaGVzZSBmdW5cCi1jdGlvbnMgcmV0dXJuIGluZm9ybWF0aW9uIGFib3V0IHRoZSBlbnRpcmUgaGlzdG9yeSBsaXN0IG9yIGluZGkpMTA4Ci0xMzYuOCBRKHZpZHVhbCBsaXN0IGVudHJpZXMuKS0uMjUgRSBGMShISVNUX0VOVFIpMTA4IDE2MC44IFEgMi41KFkqKS0uMTgKKyhPUiktLjE4IEUoWVwoM1wpKS0uNjUgRShkaXNwb3NlIG9mIGFuKTEwOCA4NCBRIDIuNSh5YSktLjE1IEcKKyhwcGxpY2F0aW9uLXNwZWNpXDIxNGMgZGF0YS4pLTIuNSBFKEluIHRoZSBjYXNlIG9mIGFuIGluKTUgRSAtLjI1KHZhKS0uNAorRyhsaWQpLjI1IEUvRjEgMTAvVGltZXMtSXRhbGljQDAgU0Yod2hpYykyLjUgRShoKS0uMTUgRSBGMCAyLjUoLGEpQy9GMgorMTAvVGltZXMtQm9sZEAwIFNGKE5VTEwpQSBGMChwb2ludGVyIGlzIHJldHVybmVkLikyLjUgRSBGMSh2b2lkKTEwOCAxMDgKK1EgRjIoY2xlYXJfaGlzdG9yeSkyLjUgRSBGMChcKCk0LjE2NiBFIEYxKHZvaWQpQSBGMChcKSkxLjY2NiBFCisoQ2xlYXIgdGhlIGhpc3RvcnkgbGlzdCBieSBkZWxldGluZyBhbGwgdGhlIGVudHJpZXMuKTEwOCAxMjAgUSBGMSh2b2lkKQorMTA4IDE0NCBRIEYyKHN0aVwyMTVlX2hpc3RvcnkpMi41IEUgRjAoXCgpNC4xNjYgRSBGMShpbnQgbWF4KUEgRjAoXCkpCisxLjY2NiBFKFN0aVwyMTVlIHRoZSBoaXN0b3J5IGxpc3QsIHJlbWVtYmVyaW5nIG9ubHkgdGhlIGxhc3QpMTA4IDE1NiBRCitGMShtYXgpMi41IEUgRjAoZW50cmllcy4pMi41IEUgRjEoaW50KTEwOCAxODAgUSBGMih1bnN0aVwyMTVlX2hpc3RvcnkpCisyLjUgRSBGMChcKCk0LjE2NiBFIEYxKHZvaWQpQSBGMChcKSkxLjY2NiBFIC40NgorKFN0b3Agc3RpXDIxNWluZyB0aGUgaGlzdG9yeSkxMDggMTkyIFIgNS40NiguVCktLjY1IEcgLjQ2CisoaGlzIHJldHVybnMgdGhlIHByZSktNS40NiBGIC40NgorKHZpb3VzbHktc2V0IG1heGltdW0gbnVtYmVyIG9mIGhpc3RvcnkgZW50cmllcyBcKGFzIHNldCBieSktLjI1IEYgRjIKKyhzdGktKTIuOTYgRShcMjE1ZV9oaXN0b3J5XChcKSkxMDggMjA0IFEgRjAgMi41KFwpLiBoaXN0b3J5KUIgLS4xKHdhKTIuNQorRyAyLjUoc3MpLjEgRyAyLjUodGlcMjE1ZWQuIFRoZSktMi41IEYgLS4yNSh2YSkyLjUgRyhsdWUgaXMgcG9zaXRpKS4yNSBFCisuMyAtLjE1KHZlIGkpLS4yNSBIIDIuNShmdCkuMTUgRyhoZSBoaXN0b3J5IHcpLTIuNSBFKGFzIHN0aVwyMTVlZCwgbmUpCistLjEgRSAtLjA1KGdhKS0uMTUgRyh0aSkuMDUgRSAuMyAtLjE1KHZlIGkpLS4yNSBIIDIuNShmaSkuMTUgRyAyLjUodHcpCistMi41IEcoYXNuJyktMi42IEUodC4pLS4xOCBFIEYxKGludCkxMDggMjI4IFEgRjIoaGlzdG9yeV9pc19zdGlcMjE1ZWQpCisyLjUgRSBGMChcKCk0LjE2NiBFIEYxKHZvaWQpQSBGMChcKSkxLjY2NiBFCisoUmV0dXJucyBub24temVybyBpZiB0aGUgaGlzdG9yeSBpcyBzdGlcMjE1ZWQsIHplcm8gaWYgaXQgaXMgbm90LikxMDgKKzI0MCBRIEYyKEluZik4NyAyNjguOCBRKG9ybWF0aW9uIEFib3V0IHRoZSBIaXN0b3J5IExpc3QpLS4yNSBFIEYwKFRoZXNlXAorIGZ1bmN0aW9ucyByZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIGVudGlyZSBoaXN0b3J5IGxpc3Qgb3IgaW5kaSkxMDgKKzI4MC44IFEodmlkdWFsIGxpc3QgZW50cmllcy4pLS4yNSBFIEYxKEhJU1RfRU5UUikxMDggMzA0LjggUSAyLjUoWSopLS4xOAogRygqKS0yLjUgRSBGMihoaXN0b3J5X2xpc3QpMi41IEUgRjAoXCgpNC4xNjYgRSBGMSh2b2lkKUEgRjAoXCkpMS42NjYgRQotLjcwOChSZXR1cm4gYSkxMDggMTcyLjggUiBGMihOVUxMKTMuMjA4IEUgRjAgLjcwOCh0ZXJtaW5hdGVkIGFycmF5IG9mKQorLjcwOChSZXR1cm4gYSkxMDggMzE2LjggUiBGMihOVUxMKTMuMjA4IEUgRjAgLjcwOCh0ZXJtaW5hdGVkIGFycmF5IG9mKQogMy4yMDggRiBGMShISVNUX0VOVFIpMy4yMDggRSAzLjIwOChZKiktLjE4IEcgRjAgLjcwOAogKHdoaWNoIGlzIHRoZSBjdXJyZW50IGlucHV0IGhpc3RvcnkpQiA1LjcwNyguRSktLjY1IEcgLjcwNwotKGxlbWVudCAwIG9mIHRoaXMpLTUuNzA3IEYobGlzdCBpcyB0aGUgYmUpMTA4IDE4NC44IFEoZ2lubmluZyBvZiB0aW1lLikKKyhsZW1lbnQgMCBvZiB0aGlzKS01LjcwNyBGKGxpc3QgaXMgdGhlIGJlKTEwOCAzMjguOCBRKGdpbm5pbmcgb2YgdGltZS4pCiAtLjE1IEUoSWYgdGhlcmUgaXMgbm8gaGlzdG9yeSk1IEUgMi41KCxyKS0uNjUgRyhldHVybiktMi41IEUgRjIoTlVMTCkyLjUKLUUgRjAoLilBIEYxKGludCkxMDggMjA4LjggUSBGMih3aGVyKTIuNSBFKGVfaGlzdG9yeSktLjE4IEUgRjAoXCgpNC4xNjYgRQotRjEodm9pZClBIEYwKFwpKTEuNjY2IEUoUmV0dXJucyB0aGUgb2YpMTA4IDIyMC44IFEKLShmc2V0IG9mIHRoZSBjdXJyZW50IGhpc3RvcnkgZWxlbWVudC4pLS4yNSBFIEYxKEhJU1RfRU5UUikxMDggMjQ0LjggUQorRSBGMCguKUEgRjEoaW50KTEwOCAzNTIuOCBRIEYyKHdoZXIpMi41IEUoZV9oaXN0b3J5KS0uMTggRSBGMChcKCk0LjE2NiBFCitGMSh2b2lkKUEgRjAoXCkpMS42NjYgRShSZXR1cm5zIHRoZSBvZikxMDggMzY0LjggUQorKGZzZXQgb2YgdGhlIGN1cnJlbnQgaGlzdG9yeSBlbGVtZW50LiktLjI1IEUgRjEoSElTVF9FTlRSKTEwOCAzODguOCBRCiAyLjUoWSopLS4xOCBHIEYyKGN1cnIpQShlbnRfaGlzdG9yeSktLjE4IEUgRjAoXCgpNC4xNjYgRSBGMSh2b2lkKUEgRjAKIChcKSkxLjY2NiBFIDEuMzczCiAoUmV0dXJuIHRoZSBoaXN0b3J5IGVudHJ5IGF0IHRoZSBjdXJyZW50IHBvc2l0aW9uLCBhcyBkZXRlcm1pbmVkIGJ5KTEwOAotMjU2LjggUiBGMih3aGVyKTMuODczIEUoZV9oaXN0b3J5XChcKSktLjE4IEUgRjAgNi4zNzMoLkkpQyAzLjg3MyhmdCkKLS02LjM3MyBHIDEuMzc0KGhlcmUgaXMgbm8gZW50cnkpLTMuODczIEYodGhlcmUsIHJldHVybiBhKTEwOCAyNjguOCBRIEYyCi0oTlVMTCkyLjUgRSBGMChwb2ludGVyKTIuNSBFKC4pLS41NSBFIEYxKEhJU1RfRU5UUikxMDggMjkyLjggUSAyLjUoWSopCis0MDAuOCBSIEYyKHdoZXIpMy44NzMgRShlX2hpc3RvcnlcKFwpKS0uMTggRSBGMCA2LjM3MyguSSlDIDMuODczKGZ0KQorLTYuMzczIEcgMS4zNzQoaGVyZSBpcyBubyBlbnRyeSktMy44NzMgRih0aGVyZSwgcmV0dXJuIGEpMTA4IDQxMi44IFEgRjIKKyhOVUxMKTIuNSBFIEYwKHBvaW50ZXIpMi41IEUoLiktLjU1IEUgRjEoSElTVF9FTlRSKTEwOCA0MzYuOCBRIDIuNShZKikKIC0uMTggRyBGMihoaXN0b3J5X2dldClBIEYwKFwoKTQuMTY2IEUgRjEoaW50IG9mKUEoZnNldCktLjE4IEUgRjAoXCkpCi0xLjY2NiBFIC4yODgoUmV0dXJuIHRoZSBoaXN0b3J5IGVudHJ5IGF0IHBvc2l0aW9uKTEwOCAzMDQuOCBSIEYxKG9mKQorMS42NjYgRSAuMjg4KFJldHVybiB0aGUgaGlzdG9yeSBlbnRyeSBhdCBwb3NpdGlvbikxMDggNDQ4LjggUiBGMShvZikKIDIuNzg3IEUoZnNldCktLjE4IEUgRjAgMi43ODcoLHMpQyAuMjg3KHRhcnRpbmcgZnJvbSktMi43ODcgRiBGMgogKGhpc3RvcnlfYmFzZSkyLjc4NyBFIEYwIDUuMjg3KC5JKUMgMi43ODcoZnQpLTUuMjg3IEcgLjI4NwogKGhlcmUgaXMgbm8gZW50cnkgdGhlcmUsIG9yIGlmKS0yLjc4NyBGIEYxKG9mKTIuNzg3IEUoZnNldCktLjE4IEUgRjAKLShpcyBncmVhdGVyIHRoYW4gdGhlIGhpc3RvcnkgbGVuZ3RoLCByZXR1cm4gYSkxMDggMzE2LjggUSBGMihOVUxMKTIuNSBFCi1GMChwb2ludGVyKTIuNSBFKC4pLS41NSBFIEYxKGludCkxMDggMzQwLjggUSBGMihoaXN0b3J5X3RvdGFsX2J5dGVzKTIuNQotRSBGMChcKCk0LjE2NiBFIEYxKHZvaWQpQSBGMChcKSkxLjY2NiBFIC4zOTEKKyhpcyBncmVhdGVyIHRoYW4gdGhlIGhpc3RvcnkgbGVuZ3RoLCByZXR1cm4gYSkxMDggNDYwLjggUSBGMihOVUxMKTIuNSBFCitGMChwb2ludGVyKTIuNSBFKC4pLS41NSBFIEYxKHRpbWVfdCkxMDggNDg0LjggUSBGMihoaXN0b3J5X2dldF90aW1lKTIuNQorRSBGMChcKCk0LjE2NiBFIEYxKEhJU1RfRU5UUilBIDIuNShZKiktLjE4IEcgRjAoXCkpLS44MzQgRShSZXR1cm4gdGhlIHRcCitpbWUgc3RhbXAgYXNzb2NpYXRlZCB3aXRoIHRoZSBoaXN0b3J5IGVudHJ5IHBhc3NlZCBhcyB0aGUgYXIpMTA4IDQ5Ni44IFEKKyhndW1lbnQuKS0uMTggRSBGMShpbnQpMTA4IDUyMC44IFEgRjIoaGlzdG9yeV90b3RhbF9ieXRlcykyLjUgRSBGMChcKCkKKzQuMTY2IEUgRjEodm9pZClBIEYwKFwpKTEuNjY2IEUgLjM5MQogKFJldHVybiB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRoYXQgdGhlIHByaW1hcnkgaGlzdG9yeSBlbnRyaWVzIGFyZSB1c2luZy4pCi0xMDggMzUyLjggUiAuMzkyKFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgc3VtIG9mIHRoZSk1LjM5MiBGCi0obGVuZ3RocyBvZiBhbGwgdGhlIGxpbmVzIGluIHRoZSBoaXN0b3J5KTEwOCAzNjQuOCBRKC4pLS42NSBFIEYyKE1vKTg3Ci0zOTMuNiBRKHZpbmcgQXIpLS4xIEUob3VuZCB0aGUgSGlzdG9yeSBMaXN0KS0uMTggRSBGMAotKFRoZXNlIGZ1bmN0aW9ucyBhbGxvKTEwOCA0MDUuNiBRIDIuNSh3dCktLjI1IEcoaGUgY3VycmVudCBpbmRlKS0yLjUgRQorMTA4IDUzMi44IFIgLjM5MihUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHN1bSBvZiB0aGUpNS4zOTIgRgorKGxlbmd0aHMgb2YgYWxsIHRoZSBsaW5lcyBpbiB0aGUgaGlzdG9yeSkxMDggNTQ0LjggUSguKS0uNjUgRSBGMihNbyk4NworNTczLjYgUSh2aW5nIEFyKS0uMSBFKG91bmQgdGhlIEhpc3RvcnkgTGlzdCktLjE4IEUgRjAKKyhUaGVzZSBmdW5jdGlvbnMgYWxsbykxMDggNTg1LjYgUSAyLjUod3QpLS4yNSBHKGhlIGN1cnJlbnQgaW5kZSktMi41IEUKIDIuNSh4aSktLjE1IEcobnRvIHRoZSBoaXN0b3J5IGxpc3QgdG8gYmUgc2V0IG9yIGNoYW5nZWQuKS0yLjUgRSBGMShpbnQpCi0xMDggNDI5LjYgUSBGMihoaXN0b3J5X3NldF9wb3MpMi41IEUgRjAoXCgpNC4xNjYgRSBGMShpbnQgcG9zKUEgRjAoXCkpCi0xLjY2NiBFIC43OShTZXQgdGhlIGN1cnJlbnQgaGlzdG9yeSBvZikxMDggNDQxLjYgUiAuNzkoZnNldCB0byktLjI1IEYgRjEKKzEwOCA2MDkuNiBRIEYyKGhpc3Rvcnlfc2V0X3BvcykyLjUgRSBGMChcKCk0LjE2NiBFIEYxKGludCBwb3MpQSBGMChcKSkKKzEuNjY2IEUgLjc5KFNldCB0aGUgY3VycmVudCBoaXN0b3J5IG9mKTEwOCA2MjEuNiBSIC43OShmc2V0IHRvKS0uMjUgRiBGMQogKHBvcykzLjI5IEUgRjAgMy4yOSgsYSlDIDMuMjkobmEpLTMuMjkgRyAuNzkoYnNvbHV0ZSBpbmRlKS0zLjI5IEYgMy4yOQogKHhpKS0uMTUgRyAuNzkobnRvIHRoZSBsaXN0LiktMy4yOSBGIC43OShSZXR1cm5zIDEgb24gc3VjY2VzcywgMCBpZik1Ljc5CiBGIEYxKHBvcykzLjI5IEUgRjAgLjc5KGlzIGxlc3MpMy4yOSBGCi0odGhhbiB6ZXJvIG9yIGdyZWF0ZXIgdGhhbiB0aGUgbnVtYmVyIG9mIGhpc3RvcnkgZW50cmllcy4pMTA4IDQ1My42IFEgRjEKLShISVNUX0VOVFIpMTA4IDQ3Ny42IFEgMi41KFkqKS0uMTggRyBGMihwcilBIC0uMTUoZXYpLS4xOCBHCisodGhhbiB6ZXJvIG9yIGdyZWF0ZXIgdGhhbiB0aGUgbnVtYmVyIG9mIGhpc3RvcnkgZW50cmllcy4pMTA4IDYzMy42IFEgRjEKKyhISVNUX0VOVFIpMTA4IDY1Ny42IFEgMi41KFkqKS0uMTggRyBGMihwcilBIC0uMTUoZXYpLS4xOCBHCiAoaW91c19oaXN0b3J5KS4xNSBFIEYwKFwoKTQuMTY2IEUgRjEodm9pZClBIEYwKFwpKTEuNjY2IEUgLjIwNwotKEJhY2sgdXAgdGhlIGN1cnJlbnQgaGlzdG9yeSBvZikxMDggNDg5LjYgUiAuMjA3KGZzZXQgdG8gdGhlIHByZSktLjI1IEYKKyhCYWNrIHVwIHRoZSBjdXJyZW50IGhpc3Rvcnkgb2YpMTA4IDY2OS42IFIgLjIwNyhmc2V0IHRvIHRoZSBwcmUpLS4yNSBGCiAuMjA3KHZpb3VzIGhpc3RvcnkgZW50cnkpLS4yNSBGIDIuNzA4KCxhKS0uNjUgRyAuMjA4CiAobmQgcmV0dXJuIGEgcG9pbnRlciB0byB0aGF0IGVudHJ5KS0yLjcwOCBGIDUuMjA4KC5JKS0uNjUgRyAyLjcwOChmdCkKLS01LjIwOCBHIC4yMDgoaGVyZSBpcyktMi43MDggRihubyBwcmUpMTA4IDUwMS42IFEodmlvdXMgZW50cnkpLS4yNSBFIDIuNQorLTUuMjA4IEcgLjIwOChoZXJlIGlzKS0yLjcwOCBGKG5vIHByZSkxMDggNjgxLjYgUSh2aW91cyBlbnRyeSktLjI1IEUgMi41CiAoLHIpLS42NSBHKGV0dXJuIGEpLTIuNSBFIEYyKE5VTEwpMi41IEUgRjAocG9pbnRlcikyLjUgRSguKS0uNTUgRSBGMQotKEhJU1RfRU5UUikxMDggNTI1LjYgUSAyLjUoWSopLS4xOCBHIEYyKG5leHRfaGlzdG9yeSlBIEYwKFwoKTQuMTY2IEUgRjEKLSh2b2lkKUEgRjAoXCkpMS42NjYgRShNbykxMDggNTM3LjYgUSAxLjA0NyAtLjE1KHZlIHQpLS4xNSBIIC43NDcKKyhISVNUX0VOVFIpMTA4IDcwNS42IFEgMi41KFkqKS0uMTggRyBGMihuZXh0X2hpc3RvcnkpQSBGMChcKCk0LjE2NiBFIEYxCisodm9pZClBIEYwKFwpKTEuNjY2IEUoTW8pMTA4IDcxNy42IFEgMS4wNDcgLS4xNSh2ZSB0KS0uMTUgSCAuNzQ3CiAoaGUgY3VycmVudCBoaXN0b3J5IG9mKS4xNSBGIC43NDcoZnNldCBmb3J3KS0uMjUgRiAuNzQ2KGFyZCB0byB0aGUgbmUpCiAtLjEgRiAuNzQ2KHh0IGhpc3RvcnkgZW50cnkpLS4xNSBGIDMuMjQ2KCxhKS0uNjUgRyAuNzQ2CiAobmQgcmV0dXJuIHRoZSBhIHBvaW50ZXIgdG8gdGhhdCBlbnRyeSktMy4yNDYgRiA1Ljc0NiguSSktLjY1IEcoZiktNS43NDYKLUUodGhlcmUgaXMgbm8gbmUpMTA4IDU0OS42IFEoeHQgZW50cnkpLS4xNSBFIDIuNSgsciktLjY1IEcoZXR1cm4gYSktMi41Ci1FIEYyKE5VTEwpMi41IEUgRjAocG9pbnRlcikyLjUgRSguKS0uNTUgRSBGMihTZWFyKTg3IDU3OC40IFEKLShjaGluZyB0aGUgSGlzdG9yeSBMaXN0KS0uMTggRSBGMCAuMDA1KFRoZXNlIGZ1bmN0aW9ucyBhbGxvKTEwOCA1OTAuNCBSCi0yLjUwNSh3cyktLjI1IEcgLjAwNihlYXJjaGluZyBvZiB0aGUgaGlzdG9yeSBsaXN0IGZvciBlbnRyaWVzIGNvbnRhaW5pblwKLWcgYSBzcGVjaVwyMTRjIHN0cmluZy4pLTIuNTA1IEYgLjAwNihTZWFyY2hpbmcgbWF5IGJlKTUuMDA2IEYgMS40NTIKLShwZXJmb3JtZWQgYm90aCBmb3J3KTEwOCA2MDIuNCBSIDEuNDUyKGFyZCBhbmQgYmFja3cpLS4xIEYgMS40NTEKLShhcmQgZnJvbSB0aGUgY3VycmVudCBoaXN0b3J5IHBvc2l0aW9uLiktLjEgRiAxLjQ1MShUaGUgc2VhcmNoIG1heSBiZSkKLTYuNDUxIEYgRjEoYW5jKTMuOTUxIEUoaG9yKS0uMTUgRShlZCktLjM3IEUgRjAoLClBCi0obWVhbmluZyB0aGF0IHRoZSBzdHJpbmcgbXVzdCBtYXRjaCBhdCB0aGUgYmUpMTA4IDYxNC40IFEKLShnaW5uaW5nIG9mIHRoZSBoaXN0b3J5IGVudHJ5KS0uMTUgRSguKS0uNjUgRSBGMShpbnQpMTA4IDYzOC40IFEgRjIKLShoaXN0b3J5X3NlYXIpMi41IEUoY2gpLS4xOCBFIEYwKFwoKTQuMTY2IEUgRjEoY29uc3QgYylBKGhhciAqc3RyaW5nKQotLS4xNSBFIDEuNjY2KCxpKS0uMSBHKG50IGRpciktMS42NjYgRShlY3Rpb24pLS4zNyBFIEYwKFwpKTEuNjY2IEUgLjE1NQotKFNlYXJjaCB0aGUgaGlzdG9yeSBmb3IpMTA4IDY1MC40IFIgRjEoc3RyaW5nKTIuNjU1IEUgRjAgMi42NTYoLHMpQyAuMTU2Ci0odGFydGluZyBhdCB0aGUgY3VycmVudCBoaXN0b3J5IG9mKS0yLjY1NiBGIDIuNjU2KGZzZXQuIElmKS0uMjUgRiBGMQotKGRpcikyLjY1NiBFKGVjdGlvbiktLjM3IEUgRjAgLjE1NihpcyBsZXNzIHRoYW4gMCwgdGhlbiB0aGUgc2VhcmNoKTIuNjU2Ci1GIC44MDIoaXMgdGhyb3VnaCBwcmUpMTA4IDY2Mi40IFIgLjgwMgotKHZpb3VzIGVudHJpZXMsIG90aGVyd2lzZSB0aHJvdWdoIHN1YnNlcXVlbnQgZW50cmllcy4pLS4yNSBGKElmKTUuODAxIEUKLUYxKHN0cmluZykzLjMwMSBFIEYwIC44MDEoaXMgZm91bmQsIHRoZW4gdGhlIGN1cnJlbnQgaGlzLSkzLjMwMSBGIC4wNjQKLSh0b3J5IGluZGUpMTA4IDY3NC40IFIgMi41NjQoeGkpLS4xNSBHIDIuNTY0KHNzKS0yLjU2NCBHIC4wNjQKLShldCB0byB0aGF0IGhpc3RvcnkgZW50cnkpLTIuNTY0IEYgMi41NjQoLGEpLS42NSBHIC4wNjQobmQgdGhlIHYpLTIuNTY0Ci1GIC4wNjQoYWx1ZSByZXR1cm5lZCBpcyB0aGUgb2YpLS4yNSBGIC4wNjQKLShmc2V0IGluIHRoZSBsaW5lIG9mIHRoZSBlbnRyeSB3aGVyZSktLjI1IEYgRjEoc3RyaW5nKTIuNTY1IEUgRjAgLS4xKHdhKQotMTA4IDY4Ni40IFMgMi41KHNmKS4xIEcgMi41KG91bmQuIE90aGVyd2lzZSwpLTIuNSBGCi0obm90aGluZyBpcyBjaGFuZ2VkLCBhbmQgYSAtMSBpcyByZXR1cm5lZC4pMi41IEUgRjEoaW50KTEwOCA3MTAuNCBRIEYyCi0oaGlzdG9yeV9zZWFyKTIuNSBFKGNoX3ByKS0uMTggRShlXDIxNHgpLS4xOCBFIEYwKFwoKTQuMTY2IEUgRjEoY29uc3QgYykKLUEoaGFyICpzdHJpbmcpLS4xNSBFIDEuNjY2KCxpKS0uMSBHKG50IGRpciktMS42NjYgRShlY3Rpb24pLS4zNyBFIEYwKFwpKQotMS42NjYgRSAuNjg0KFNlYXJjaCB0aGUgaGlzdG9yeSBmb3IpMTA4IDcyMi40IFIgRjEoc3RyaW5nKTMuMTgzIEUgRjAKLTMuMTgzKCxzKUMgLjY4Myh0YXJ0aW5nIGF0IHRoZSBjdXJyZW50IGhpc3Rvcnkgb2YpLTMuMTgzIEYgMy4xODMKLShmc2V0LiBUaGUpLS4yNSBGIC42ODMoc2VhcmNoIGlzIGFuY2hvcmVkOiBtYXRjaGluZyBsaW5lcykzLjE4MyBGCi0oR05VIEhpc3RvcnkgNC4zKTcyIDc2OCBRKDIwMDIgSmFudWFyeSAzMSkxMzEuNzkgRSg0KTE5NS45NSBFIEVQCitFKHRoZXJlIGlzIG5vIG5lKTEwOCA3MjkuNiBRKHh0IGVudHJ5KS0uMTUgRSAyLjUoLHIpLS42NSBHKGV0dXJuIGEpLTIuNQorRSBGMihOVUxMKTIuNSBFIEYwKHBvaW50ZXIpMi41IEUoLiktLjU1IEUoR05VIEhpc3RvcnkgNS4wKTcyIDc2OCBRCisoMjAwMyBKdWx5IDMxKTEzOS4wMDUgRSg0KTIwMy4xNjUgRSAwIENnIEVQCiAlJVBhZ2U6IDUgNQogJSVCZWdpblBhZ2VTZXR1cAogQlAKICUlRW5kUGFnZVNldHVwCiAvRjAgMTAvVGltZXMtUm9tYW5AMCBTRihISVNUKTcyIDQ4IFEoT1IpLS4xOCBFIDM1Ny4xOChZXCgzXCkgSElTVCktLjY1IEYKLShPUiktLjE4IEUoWVwoM1wpKS0uNjUgRSAxLjA2MyhtdXN0IGJlKTEwOCA4NCBSIDEuMDYzKGdpbiB3aXRoKS0uMTUgRi9GMQotMTAvVGltZXMtSXRhbGljQDAgU0Yoc3RyaW5nKTMuNTYzIEUgRjAgNi4wNjMoLkkpQyhmKS02LjA2MyBFIEYxKGRpcikKLTMuNTYzIEUoZWN0aW9uKS0uMzcgRSBGMCAxLjA2NAorKE9SKS0uMTggRShZXCgzXCkpLS42NSBFL0YxIDEwL1RpbWVzLUJvbGRAMCBTRihTZWFyKTg3IDg0IFEKKyhjaGluZyB0aGUgSGlzdG9yeSBMaXN0KS0uMTggRSBGMCAuMDA1KFRoZXNlIGZ1bmN0aW9ucyBhbGxvKTEwOCA5NiBSCisyLjUwNSh3cyktLjI1IEcgLjAwNihlYXJjaGluZyBvZiB0aGUgaGlzdG9yeSBsaXN0IGZvciBlbnRyaWVzIGNvbnRhaW5pblwKK2cgYSBzcGVjaVwyMTRjIHN0cmluZy4pLTIuNTA1IEYgLjAwNihTZWFyY2hpbmcgbWF5IGJlKTUuMDA2IEYgMS40NTIKKyhwZXJmb3JtZWQgYm90aCBmb3J3KTEwOCAxMDggUiAxLjQ1MihhcmQgYW5kIGJhY2t3KS0uMSBGIDEuNDUxCisoYXJkIGZyb20gdGhlIGN1cnJlbnQgaGlzdG9yeSBwb3NpdGlvbi4pLS4xIEYgMS40NTEoVGhlIHNlYXJjaCBtYXkgYmUpCis2LjQ1MSBGL0YyIDEwL1RpbWVzLUl0YWxpY0AwIFNGKGFuYykzLjk1MSBFKGhvciktLjE1IEUoZWQpLS4zNyBFIEYwKCwpQQorKG1lYW5pbmcgdGhhdCB0aGUgc3RyaW5nIG11c3QgbWF0Y2ggYXQgdGhlIGJlKTEwOCAxMjAgUQorKGdpbm5pbmcgb2YgdGhlIGhpc3RvcnkgZW50cnkpLS4xNSBFKC4pLS42NSBFIEYyKGludCkxMDggMTQ0IFEgRjEKKyhoaXN0b3J5X3NlYXIpMi41IEUoY2gpLS4xOCBFIEYwKFwoKTQuMTY2IEUgRjIoY29uc3QgYylBKGhhciAqc3RyaW5nKQorLS4xNSBFIDEuNjY2KCxpKS0uMSBHKG50IGRpciktMS42NjYgRShlY3Rpb24pLS4zNyBFIEYwKFwpKTEuNjY2IEUgLjE1NQorKFNlYXJjaCB0aGUgaGlzdG9yeSBmb3IpMTA4IDE1NiBSIEYyKHN0cmluZykyLjY1NSBFIEYwIDIuNjU2KCxzKUMgLjE1NgorKHRhcnRpbmcgYXQgdGhlIGN1cnJlbnQgaGlzdG9yeSBvZiktMi42NTYgRiAyLjY1Nihmc2V0LiBJZiktLjI1IEYgRjIKKyhkaXIpMi42NTYgRShlY3Rpb24pLS4zNyBFIEYwIC4xNTYoaXMgbGVzcyB0aGFuIDAsIHRoZW4gdGhlIHNlYXJjaCkyLjY1NgorRiAuODAyKGlzIHRocm91Z2ggcHJlKTEwOCAxNjggUiAuODAyCisodmlvdXMgZW50cmllcywgb3RoZXJ3aXNlIHRocm91Z2ggc3Vic2VxdWVudCBlbnRyaWVzLiktLjI1IEYoSWYpNS44MDEgRQorRjIoc3RyaW5nKTMuMzAxIEUgRjAgLjgwMShpcyBmb3VuZCwgdGhlbiB0aGUgY3VycmVudCBoaXMtKTMuMzAxIEYgLjA2NAorKHRvcnkgaW5kZSkxMDggMTgwIFIgMi41NjQoeGkpLS4xNSBHIDIuNTY0KHNzKS0yLjU2NCBHIC4wNjQKKyhldCB0byB0aGF0IGhpc3RvcnkgZW50cnkpLTIuNTY0IEYgMi41NjQoLGEpLS42NSBHIC4wNjQobmQgdGhlIHYpLTIuNTY0CitGIC4wNjQoYWx1ZSByZXR1cm5lZCBpcyB0aGUgb2YpLS4yNSBGIC4wNjQKKyhmc2V0IGluIHRoZSBsaW5lIG9mIHRoZSBlbnRyeSB3aGVyZSktLjI1IEYgRjIoc3RyaW5nKTIuNTY1IEUgRjAgLS4xKHdhKQorMTA4IDE5MiBTIDIuNShzZikuMSBHIDIuNShvdW5kLiBPdGhlcndpc2UsKS0yLjUgRgorKG5vdGhpbmcgaXMgY2hhbmdlZCwgYW5kIGEgLTEgaXMgcmV0dXJuZWQuKTIuNSBFIEYyKGludCkxMDggMjE2IFEgRjEKKyhoaXN0b3J5X3NlYXIpMi41IEUoY2hfcHIpLS4xOCBFKGVcMjE0eCktLjE4IEUgRjAoXCgpNC4xNjYgRSBGMihjb25zdCBjKQorQShoYXIgKnN0cmluZyktLjE1IEUgMS42NjYoLGkpLS4xIEcobnQgZGlyKS0xLjY2NiBFKGVjdGlvbiktLjM3IEUgRjAoXCkpCisxLjY2NiBFIC42ODQoU2VhcmNoIHRoZSBoaXN0b3J5IGZvcikxMDggMjI4IFIgRjIoc3RyaW5nKTMuMTgzIEUgRjAgMy4xODMKKygscylDIC42ODModGFydGluZyBhdCB0aGUgY3VycmVudCBoaXN0b3J5IG9mKS0zLjE4MyBGIDMuMTgzKGZzZXQuIFRoZSkKKy0uMjUgRiAuNjgzKHNlYXJjaCBpcyBhbmNob3JlZDogbWF0Y2hpbmcgbGluZXMpMy4xODMgRiAxLjA2MyhtdXN0IGJlKTEwOAorMjQwIFIgMS4wNjMoZ2luIHdpdGgpLS4xNSBGIEYyKHN0cmluZykzLjU2MyBFIEYwIDYuMDYzKC5JKUMoZiktNi4wNjMgRQorRjIoZGlyKTMuNTYzIEUoZWN0aW9uKS0uMzcgRSBGMCAxLjA2NAogKGlzIGxlc3MgdGhhbiAwLCB0aGVuIHRoZSBzZWFyY2ggaXMgdGhyb3VnaCBwcmUpMy41NjMgRiAxLjA2NAogKHZpb3VzIGVudHJpZXMsIG90aGVyd2lzZSktLjI1IEYgMS4xMTUodGhyb3VnaCBzdWJzZXF1ZW50IGVudHJpZXMuKTEwOAotOTYgUihJZik2LjExNSBFIEYxKHN0cmluZykzLjYxNSBFIEYwIDEuMTE1CisyNTIgUihJZik2LjExNSBFIEYyKHN0cmluZykzLjYxNSBFIEYwIDEuMTE1CiAoaXMgZm91bmQsIHRoZW4gdGhlIGN1cnJlbnQgaGlzdG9yeSBpbmRlKTMuNjE1IEYgMy42MTQoeGkpLS4xNSBHIDMuNjE0CiAoc3MpLTMuNjE0IEcgMS4xMTQoZXQgdG8gdGhhdCBlbnRyeSktMy42MTQgRiAzLjYxNCgsYSktLjY1IEcgMS4xMTQKLShuZCB0aGUpLTMuNjE0IEYocmV0dXJuIHYpMTA4IDEwOCBRKGFsdWUgaXMgMC4pLS4yNSBFCi0oT3RoZXJ3aXNlLCBub3RoaW5nIGlzIGNoYW5nZWQsIGFuZCBhIC0xIGlzIHJldHVybmVkLik1IEUgRjEoaW50KTEwOCAxMzIKLVEvRjIgMTAvVGltZXMtQm9sZEAwIFNGKGhpc3Rvcnlfc2VhcikyLjUgRShjaF9wb3MpLS4xOCBFIEYwKFwoKTQuMTY2IEUKLUYxKGNvbnN0IGMpQShoYXIgKnN0cmluZyktLjE1IEUgMS42NjYoLGkpLS4xIEcobnQgZGlyKS0xLjY2NiBFIC0uODM0Ci0oZWN0aW9uLCBpbnQpLS4zNyBGKHBvcykyLjUgRSBGMChcKSkzLjMzMiBFIC42MDMoU2VhcmNoIGZvcikxMDggMTQ0IFIgRjEKLShzdHJpbmcpMy4xMDMgRSBGMCAuNjAzKGluIHRoZSBoaXN0b3J5IGxpc3QsIHN0YXJ0aW5nIGF0KTMuMTAzIEYgRjEocG9zKQotMy4xMDQgRSBGMCAzLjEwNCgsYSlDIDMuMTA0KG5hKS0zLjEwNCBHIC42MDQoYnNvbHV0ZSBpbmRlKS0zLjEwNCBGIDMuMTA0Ci0oeGkpLS4xNSBHIC42MDQobnRvIHRoZSBsaXN0LiktMy4xMDQgRihJZik1LjYwNCBFIEYxKGRpcikzLjEwNCBFKGVjdGlvbikKLS0uMzcgRSBGMCAuNjA0KGlzIG5lKTMuMTA0IEYgLS4wNShnYSktLjE1IEcodGkpLjA1IEUgLS4xNSh2ZSktLjI1IEcoLCkKLS4xNSBFIC42MDgodGhlIHNlYXJjaCBwcm9jZWVkcyBiYWNrdykxMDggMTU2IFIgLjYwOChhcmQgZnJvbSktLjEgRiBGMQotKHBvcykzLjEwOCBFIEYwIDMuMTA4KCxvKUMgLjYwOCh0aGVyd2lzZSBmb3J3KS0zLjEwOCBGIDMuMTA4Ci0oYXJkLiBSZXR1cm5zKS0uMSBGIC42MDgodGhlIGFic29sdXRlIGluZGUpMy4xMDggRiAzLjEwOCh4byktLjE1IEcgMy4xMDgKLShmdCktMy4xMDggRyAuNjA4KGhlIGhpc3RvcnkgZWxlLSktMy4xMDggRihtZW50IHdoZXJlKTEwOCAxNjggUSBGMQotKHN0cmluZykyLjUgRSBGMCAtLjEod2EpMi41IEcgMi41KHNmKS4xIEcob3VuZCwgb3IgLTEgb3RoZXJ3aXNlLiktMi41IEUKLUYyKE1hbmFnaW5nIHRoZSBIaXN0b3J5IEZpbGUpODcgMTk2LjggUSBGMCAuMDM1KFRoZSBIaXN0b3J5IGxpYnJhcnkgY2FuXAotIHJlYWQgdGhlIGhpc3RvcnkgZnJvbSBhbmQgd3JpdGUgaXQgdG8gYSBcMjE0bGUuKTEwOCAyMDguOCBSIC4wMzYKKyhuZCB0aGUpLTMuNjE0IEYocmV0dXJuIHYpMTA4IDI2NCBRKGFsdWUgaXMgMC4pLS4yNSBFCisoT3RoZXJ3aXNlLCBub3RoaW5nIGlzIGNoYW5nZWQsIGFuZCBhIC0xIGlzIHJldHVybmVkLik1IEUgRjIoaW50KTEwOCAyODgKK1EgRjEoaGlzdG9yeV9zZWFyKTIuNSBFKGNoX3BvcyktLjE4IEUgRjAoXCgpNC4xNjYgRSBGMihjb25zdCBjKUEKKyhoYXIgKnN0cmluZyktLjE1IEUgMS42NjYoLGkpLS4xIEcobnQgZGlyKS0xLjY2NiBFIC0uODM0KGVjdGlvbiwgaW50KQorLS4zNyBGKHBvcykyLjUgRSBGMChcKSkzLjMzMiBFIC42MDMoU2VhcmNoIGZvcikxMDggMzAwIFIgRjIoc3RyaW5nKTMuMTAzCitFIEYwIC42MDMoaW4gdGhlIGhpc3RvcnkgbGlzdCwgc3RhcnRpbmcgYXQpMy4xMDMgRiBGMihwb3MpMy4xMDQgRSBGMAorMy4xMDQoLGEpQyAzLjEwNChuYSktMy4xMDQgRyAuNjA0KGJzb2x1dGUgaW5kZSktMy4xMDQgRiAzLjEwNCh4aSktLjE1IEcKKy42MDQobnRvIHRoZSBsaXN0LiktMy4xMDQgRihJZik1LjYwNCBFIEYyKGRpcikzLjEwNCBFKGVjdGlvbiktLjM3IEUgRjAKKy42MDQoaXMgbmUpMy4xMDQgRiAtLjA1KGdhKS0uMTUgRyh0aSkuMDUgRSAtLjE1KHZlKS0uMjUgRygsKS4xNSBFIC42MDgKKyh0aGUgc2VhcmNoIHByb2NlZWRzIGJhY2t3KTEwOCAzMTIgUiAuNjA4KGFyZCBmcm9tKS0uMSBGIEYyKHBvcykzLjEwOCBFCitGMCAzLjEwOCgsbylDIC42MDgodGhlcndpc2UgZm9ydyktMy4xMDggRiAzLjEwOChhcmQuIFJldHVybnMpLS4xIEYgLjYwOAorKHRoZSBhYnNvbHV0ZSBpbmRlKTMuMTA4IEYgMy4xMDgoeG8pLS4xNSBHIDMuMTA4KGZ0KS0zLjEwOCBHIC42MDgKKyhoZSBoaXN0b3J5IGVsZS0pLTMuMTA4IEYobWVudCB3aGVyZSkxMDggMzI0IFEgRjIoc3RyaW5nKTIuNSBFIEYwIC0uMQorKHdhKTIuNSBHIDIuNShzZikuMSBHKG91bmQsIG9yIC0xIG90aGVyd2lzZS4pLTIuNSBFIEYxCisoTWFuYWdpbmcgdGhlIEhpc3RvcnkgRmlsZSk4NyAzNTIuOCBRIEYwIC4wMzUoVGhlIEhpc3RvcnkgbGlicmFyeSBjYW4gclwKK2VhZCB0aGUgaGlzdG9yeSBmcm9tIGFuZCB3cml0ZSBpdCB0byBhIFwyMTRsZS4pMTA4IDM2NC44IFIgLjAzNgogKFRoaXMgc2VjdGlvbiBkb2N1bWVudHMgdGhlIGZ1bmN0aW9ucyBmb3IpNS4wMzUgRgotKG1hbmFnaW5nIGEgaGlzdG9yeSBcMjE0bGUuKTEwOCAyMjAuOCBRIEYxKGludCkxMDggMjQ0LjggUSBGMiAtLjE4KHJlKQotMi41IEcoYWRfaGlzdG9yeSkuMTggRSBGMChcKCk0LjE2NiBFIEYxKGNvbnN0IGMpQShoYXIgKlwyMTRsZW5hbWUpLS4xNSBFCi1GMChcKSkxLjY2NiBFIC4xNTEoQWRkIHRoZSBjb250ZW50cyBvZikxMDggMjU2LjggUiBGMShcMjE0bGVuYW1lKTIuNjUxIEUKLUYwIC4xNTEodG8gdGhlIGhpc3RvcnkgbGlzdCwgYSBsaW5lIGF0IGEgdGltZS4pMi42NTEgRihJZik1LjE1IEUgRjEKLShcMjE0bGVuYW1lKTIuNjUgRSBGMChpcykyLjY1IEUgRjIoTlVMTCkyLjY1IEUgRjAgMi42NSgsdClDIC4xNQotKGhlbiByZWFkIGZyb20pLTIuNjUgRiBGMSh+Ly5oaXMtKTIuNjUgRSh0b3J5KTEwOCAyNjguOCBRIEYwIDUoLlIpQwotKGV0dXJucyAwIGlmIHN1Y2Nlc3NmdWwsIG9yKS01IEUgRjIoZXJyKTIuNSBFKG5vKS0uMTUgRSBGMChpZiBub3QuKTIuNSBFCi1GMShpbnQpMTA4IDI5Mi44IFEgRjIgLS4xOChyZSkyLjUgRyhhZF9oaXN0b3J5X3JhbmdlKS4xOCBFIEYwKFwoKTQuMTY2IEUKLUYxKGNvbnN0IGMpQShoYXIgKlwyMTRsZW5hbWUpLS4xNSBFIDEuNjY2KCxpKS0uMSBHKG50IGZyKS0xLjY2NiBFIC0uODM0CisobWFuYWdpbmcgYSBoaXN0b3J5IFwyMTRsZS4pMTA4IDM3Ni44IFEgRjIoaW50KTEwOCA0MDAuOCBRIEYxIC0uMTgocmUpCisyLjUgRyhhZF9oaXN0b3J5KS4xOCBFIEYwKFwoKTQuMTY2IEUgRjIoY29uc3QgYylBKGhhciAqXDIxNGxlbmFtZSktLjE1IEUKK0YwKFwpKTEuNjY2IEUgLjE1MShBZGQgdGhlIGNvbnRlbnRzIG9mKTEwOCA0MTIuOCBSIEYyKFwyMTRsZW5hbWUpMi42NTEgRQorRjAgLjE1MSh0byB0aGUgaGlzdG9yeSBsaXN0LCBhIGxpbmUgYXQgYSB0aW1lLikyLjY1MSBGKElmKTUuMTUgRSBGMgorKFwyMTRsZW5hbWUpMi42NSBFIEYwKGlzKTIuNjUgRSBGMShOVUxMKTIuNjUgRSBGMCAyLjY1KCx0KUMgLjE1CisoaGVuIHJlYWQgZnJvbSktMi42NSBGIEYyKH4vLmhpcy0pMi42NSBFKHRvcnkpMTA4IDQyNC44IFEgRjAgNSguUilDCisoZXR1cm5zIDAgaWYgc3VjY2Vzc2Z1bCwgb3IpLTUgRSBGMShlcnIpMi41IEUobm8pLS4xNSBFIEYwKGlmIG5vdC4pMi41IEUKK0YyKGludCkxMDggNDQ4LjggUSBGMSAtLjE4KHJlKTIuNSBHKGFkX2hpc3RvcnlfcmFuZ2UpLjE4IEUgRjAoXCgpNC4xNjYgRQorRjIoY29uc3QgYylBKGhhciAqXDIxNGxlbmFtZSktLjE1IEUgMS42NjYoLGkpLS4xIEcobnQgZnIpLTEuNjY2IEUgLS44MzQKIChvbSwgaW50KS0uNDUgRih0bykyLjUgRSBGMChcKSkzLjMzMiBFIC4wNTIoUmVhZCBhIHJhbmdlIG9mIGxpbmVzIGZyb20pCi0xMDggMzA0LjggUiBGMShcMjE0bGVuYW1lKTIuNTUzIEUgRjAgMi41NTMoLGEpQyAuMDUzCisxMDggNDYwLjggUiBGMihcMjE0bGVuYW1lKTIuNTUzIEUgRjAgMi41NTMoLGEpQyAuMDUzCiAoZGRpbmcgdGhlbSB0byB0aGUgaGlzdG9yeSBsaXN0LiktMi41NTMgRiAuMDUzKFN0YXJ0IHJlYWRpbmcgYXQgbGluZSkKLTUuMDUzIEYgRjEoZnIpMi41NTMgRShvbSktLjQ1IEUgRjAgLjA1MyhhbmQgZW5kIGF0KTIuNTUzIEYgRjEodG8pMi41NTMgRQotRjAoLilBKElmKTEwOCAzMTYuOCBRIEYxKGZyKTIuODg5IEUob20pLS40NSBFIEYwIC4zODkKLShpcyB6ZXJvLCBzdGFydCBhdCB0aGUgYmUpMi44ODkgRiAyLjg4OShnaW5uaW5nLiBJZiktLjE1IEYgRjEodG8pMi44ODkgRQotRjAgLjM4OShpcyBsZXNzIHRoYW4pMi44ODkgRiBGMShmcikyLjg4OSBFKG9tKS0uNDUgRSBGMCAyLjg4OSgsdClDIC4zODgKLShoZW4gcmVhZCB1bnRpbCB0aGUgZW5kIG9mIHRoZSBcMjE0bGUuKS0yLjg4OSBGKElmKTUuMzg4IEUgRjEKLShcMjE0bGVuYW1lKTIuODg4IEUgRjAoaXMpMTA4IDMyOC44IFEgRjIoTlVMTCkyLjUgRSBGMCAyLjUoLHQpQwotKGhlbiByZWFkIGZyb20pLTIuNSBFIEYxKH4vLmhpc3RvcnkpMi41IEUgRjAgNSguUilDCi0oZXR1cm5zIDAgaWYgc3VjY2Vzc2Z1bCwgb3IpLTUgRSBGMihlcnIpMi41IEUobm8pLS4xNSBFIEYwKGlmIG5vdC4pMi41IEUKLUYxKGludCkxMDggMzUyLjggUSBGMih3cml0ZV9oaXN0b3J5KTIuNSBFIEYwKFwoKTQuMTY2IEUgRjEoY29uc3QgYylBCis1LjA1MyBGIEYyKGZyKTIuNTUzIEUob20pLS40NSBFIEYwIC4wNTMoYW5kIGVuZCBhdCkyLjU1MyBGIEYyKHRvKTIuNTUzIEUKK0YwKC4pQShJZikxMDggNDcyLjggUSBGMihmcikyLjg4OSBFKG9tKS0uNDUgRSBGMCAuMzg5CisoaXMgemVybywgc3RhcnQgYXQgdGhlIGJlKTIuODg5IEYgMi44ODkoZ2lubmluZy4gSWYpLS4xNSBGIEYyKHRvKTIuODg5IEUKK0YwIC4zODkoaXMgbGVzcyB0aGFuKTIuODg5IEYgRjIoZnIpMi44ODkgRShvbSktLjQ1IEUgRjAgMi44ODkoLHQpQyAuMzg4CisoaGVuIHJlYWQgdW50aWwgdGhlIGVuZCBvZiB0aGUgXDIxNGxlLiktMi44ODkgRihJZik1LjM4OCBFIEYyCisoXDIxNGxlbmFtZSkyLjg4OCBFIEYwKGlzKTEwOCA0ODQuOCBRIEYxKE5VTEwpMi41IEUgRjAgMi41KCx0KUMKKyhoZW4gcmVhZCBmcm9tKS0yLjUgRSBGMih+Ly5oaXN0b3J5KTIuNSBFIEYwIDUoLlIpQworKGV0dXJucyAwIGlmIHN1Y2Nlc3NmdWwsIG9yKS01IEUgRjEoZXJyKTIuNSBFKG5vKS0uMTUgRSBGMChpZiBub3QuKTIuNSBFCitGMihpbnQpMTA4IDUwOC44IFEgRjEod3JpdGVfaGlzdG9yeSkyLjUgRSBGMChcKCk0LjE2NiBFIEYyKGNvbnN0IGMpQQogKGhhciAqXDIxNGxlbmFtZSktLjE1IEUgRjAoXCkpMS42NjYgRSAuOTYxKFdyaXRlIHRoZSBjdXJyZW50IGhpc3RvcnkgdG8pCi0xMDggMzY0LjggUiBGMShcMjE0bGVuYW1lKTMuNDYxIEUgRjAgMy40NjEoLG8pQyAtLjE1KHZlKS0zLjYxMSBHCi0ocndyaXRpbmcpLjE1IEUgRjEoXDIxNGxlbmFtZSkzLjQ2MSBFIEYwIC45NjEoaWYgbmVjZXNzYXJ5KTMuNDYxIEYgNS45NjEKLSguSSktLjY1IEcoZiktNS45NjEgRSBGMShcMjE0bGVuYW1lKTMuNDYyIEUgRjAoaXMpMy40NjIgRSBGMihOVUxMKTMuNDYyCi1FIEYwIDMuNDYyKCx0KUMgLjk2MihoZW4gd3JpdGUpLTMuNDYyIEYodGhlIGhpc3RvcnkgbGlzdCB0bykxMDggMzc2LjggUQotRjEofi8uaGlzdG9yeSkyLjUgRSBGMCA1KC5SKUMoZXR1cm5zIDAgb24gc3VjY2Vzcywgb3IpLTUgRSBGMihlcnIpMi41IEUKLShubyktLjE1IEUgRjAob24gYSByZWFkIG9yIHdyaXRlIGVycm9yKTIuNSBFKC4pLS41NSBFIEYxKGludCkxMDggNDEyLjggUQotRjIoYXBwZW5kX2hpc3RvcnkpMi41IEUgRjAoXCgpNC4xNjYgRSBGMShpbnQgbmVsZW1lbnRzLClBKGNvbnN0IGMpMS42NjYKLUUoaGFyICpcMjE0bGVuYW1lKS0uMTUgRSBGMChcKSkxLjY2NiBFIC44MzkoQXBwZW5kIHRoZSBsYXN0KTEwOCA0MjQuOCBSCi1GMShuZWxlbWVudHMpMy4zMzkgRSBGMCAuODM5KG9mIHRoZSBoaXN0b3J5IGxpc3QgdG8pMy4zMzkgRiBGMQotKFwyMTRsZW5hbWUpMy4zMzkgRSBGMCA1LjgzOSguSSlDKGYpLTUuODM5IEUgRjEoXDIxNGxlbmFtZSkzLjMzOSBFIEYwCi0oaXMpMy4zMzkgRSBGMihOVUxMKTMuMzM5IEUgRjAgMy4zMzkoLHQpQyAuODM4KGhlbiBhcHBlbmQgdG8pLTMuMzM5IEYgRjEKLSh+Ly5oaXN0b3J5KTMuMzM4IEUgRjAoLilBKFJldHVybnMgMCBvbiBzdWNjZXNzLCBvcikxMDggNDM2LjggUSBGMihlcnIpCi0yLjUgRShubyktLjE1IEUgRjAob24gYSByZWFkIG9yIHdyaXRlIGVycm9yKTIuNSBFKC4pLS41NSBFIEYxKGludCkxMDgKLTQ2MC44IFEgRjIoaGlzdG9yeV90cnVuY2F0ZV9cMjE0bGUpMi41IEUgRjAoXCgpNC4xNjYgRSBGMShjb25zdCBjKUEKKzEwOCA1MjAuOCBSIEYyKFwyMTRsZW5hbWUpMy40NjEgRSBGMCAzLjQ2MSgsbylDIC0uMTUodmUpLTMuNjExIEcKKyhyd3JpdGluZykuMTUgRSBGMihcMjE0bGVuYW1lKTMuNDYxIEUgRjAgLjk2MShpZiBuZWNlc3NhcnkpMy40NjEgRiA1Ljk2MQorKC5JKS0uNjUgRyhmKS01Ljk2MSBFIEYyKFwyMTRsZW5hbWUpMy40NjIgRSBGMChpcykzLjQ2MiBFIEYxKE5VTEwpMy40NjIKK0UgRjAgMy40NjIoLHQpQyAuOTYyKGhlbiB3cml0ZSktMy40NjIgRih0aGUgaGlzdG9yeSBsaXN0IHRvKTEwOCA1MzIuOCBRCitGMih+Ly5oaXN0b3J5KTIuNSBFIEYwIDUoLlIpQyhldHVybnMgMCBvbiBzdWNjZXNzLCBvciktNSBFIEYxKGVycikyLjUgRQorKG5vKS0uMTUgRSBGMChvbiBhIHJlYWQgb3Igd3JpdGUgZXJyb3IpMi41IEUoLiktLjU1IEUgRjIoaW50KTEwOCA1NjguOCBRCitGMShhcHBlbmRfaGlzdG9yeSkyLjUgRSBGMChcKCk0LjE2NiBFIEYyKGludCBuZWxlbWVudHMsKUEoY29uc3QgYykxLjY2NgorRShoYXIgKlwyMTRsZW5hbWUpLS4xNSBFIEYwKFwpKTEuNjY2IEUgLjgzOShBcHBlbmQgdGhlIGxhc3QpMTA4IDU4MC44IFIKK0YyKG5lbGVtZW50cykzLjMzOSBFIEYwIC44Mzkob2YgdGhlIGhpc3RvcnkgbGlzdCB0bykzLjMzOSBGIEYyCisoXDIxNGxlbmFtZSkzLjMzOSBFIEYwIDUuODM5KC5JKUMoZiktNS44MzkgRSBGMihcMjE0bGVuYW1lKTMuMzM5IEUgRjAKKyhpcykzLjMzOSBFIEYxKE5VTEwpMy4zMzkgRSBGMCAzLjMzOSgsdClDIC44MzgoaGVuIGFwcGVuZCB0byktMy4zMzkgRiBGMgorKH4vLmhpc3RvcnkpMy4zMzggRSBGMCguKUEoUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIG9yKTEwOCA1OTIuOCBRIEYxKGVycikKKzIuNSBFKG5vKS0uMTUgRSBGMChvbiBhIHJlYWQgb3Igd3JpdGUgZXJyb3IpMi41IEUoLiktLjU1IEUgRjIoaW50KTEwOAorNjE2LjggUSBGMShoaXN0b3J5X3RydW5jYXRlX1wyMTRsZSkyLjUgRSBGMChcKCk0LjE2NiBFIEYyKGNvbnN0IGMpQQogKGhhciAqXDIxNGxlbmFtZSktLjE1IEUgMS42NjYoLGkpLS4xIEcobnQgbmxpbmVzKS0xLjY2NiBFIEYwKFwpKTEuNjY2IEUKLS0uMzUoVHIpMTA4IDQ3Mi44IFMgLjM4KHVuY2F0ZSB0aGUgaGlzdG9yeSBcMjE0bGUpLjM1IEYgRjEoXDIxNGxlbmFtZSkKLTIuODggRSBGMCAyLjg4KCxsKUMoZWEpLTIuODggRSAuMzgodmluZyBvbmx5IHRoZSBsYXN0KS0uMiBGIEYxKG5saW5lcykKLTIuODgxIEUgRjAgMi44ODEobGluZXMuIElmKTIuODgxIEYgRjEoXDIxNGxlbmFtZSkyLjg4MSBFIEYwKGlzKTIuODgxIEUKLUYyKE5VTEwpMi44ODEgRSBGMCAyLjg4MSgsdClDKGhlbiktMi44ODEgRSBGMSh+Ly5oaXN0b3J5KTIuODgxIEUgRjAoaXMpCi0yLjg4MSBFIDIuNSh0cnVuY2F0ZWQuIFJldHVybnMpMTA4IDQ4NC44IFIgMi41KDBvKTIuNSBHIDIuNShucyktMi41IEcKLSh1Y2Nlc3MsIG9yKS0yLjUgRSBGMihlcnIpMi41IEUobm8pLS4xNSBFIEYwKG9uIGYpMi41IEUoYWlsdXJlLiktLjEgRSBGMgotKEhpc3RvcnkgRXhwYW5zaW9uKTg3IDUxMy42IFEgRjAoVGhlc2UgZnVuY3Rpb25zIGltcGxlbWVudCBoaXN0b3J5IGUpMTA4Ci01MjUuNiBRKHhwYW5zaW9uLiktLjE1IEUgRjEoaW50KTEwOCA1NDkuNiBRIEYyKGhpc3RvcnlfZXhwYW5kKTIuNSBFIEYwCi0oXCgpNC4xNjYgRSBGMSAtLjE1KGNoKUMoYXIgKnN0cmluZykuMTUgRSAxLjY2NigsYyktLjEgRyhoYXIgKipvdXRwdXQpCi0tMS44MTYgRSBGMChcKSkxLjY2NiBFKEV4cGFuZCkxMDggNTYxLjYgUSBGMShzdHJpbmcpMi41IEUgRjAgMi41KCxwKUMKLShsYWNpbmcgdGhlIHJlc3VsdCBpbnRvKS0yLjUgRSBGMShvdXRwdXQpMi41IEUgRjAgMi41KCxhcClDCi0ob2ludGVyIHRvIGEgc3RyaW5nLiktMi41IEUoUmV0dXJuczopNSBFIDMxKDBJKTE0NCA1NzMuNiBTIDMuMDY2KGZuKS0zMQotRyAzLjA2NihvZSktMy4wNjYgRyAuNTY2KHhwYW5zaW9ucyB0b29rIHBsYWNlIFwob3IpLTMuMjE2IEYgMy4wNjUoLGkpLS40Ci1HIDMuMDY1KGZ0KS0zLjA2NSBHIC41NjUoaGUgb25seSBjaGFuZ2UgaW4gdGhlIHRlKS0zLjA2NSBGIC41NjUoeHQgdykKLS0uMTUgRiAuNTY1KGFzIHRoZSByZW1vKS0uMSBGIC0uMjUodmEpLS4xNSBHIDMuMDY1KGxvKS4yNSBHIDMuMDY1KGZlKQotLTMuMDY1IEcoc2NhcGUpLTMuMDY1IEUoY2hhcmFjdGVycyBwcmVjZWRpbmcgdGhlIGhpc3RvcnkgZSkxODAgNTg1LjYgUQotKHhwYW5zaW9uIGNoYXJhY3RlclwpOyktLjE1IEUgMzEoMWkpMTQ0IDU5Ny42IFMgMi41KGZlKS0zMSBHCi0oeHBhbnNpb25zIGRpZCB0YWspLTIuNjUgRSAyLjUoZXApLS4xIEcobGFjZTspLTIuNSBFIDI1LjE3KC0xIGlmKTE0NAotNjA5LjYgUih0aGVyZSB3KTIuNSBFKGFzIGFuIGVycm9yIGluIGUpLS4xIEUoeHBhbnNpb247KS0uMTUgRSAzMSgyaSkxNDQKLTYyMS42IFMgMi41KGZ0KS0zMSBHKGhlIHJldHVybmVkIGxpbmUgc2hvdWxkIGJlIGRpc3BsYXllZCwgYiktMi41IEUKLSh1dCBub3QgZSktLjIgRSAtLjE1KHhlKS0uMTUgRyhjdXRlZCwgYXMgd2l0aCB0aGUpLjE1IEUgRjIoOnApMi41IEUgRjAKLShtb2RpXDIxNGVyKTIuNSBFKC4pLS41NSBFKElmIGFuIGVycm9yIG9jdXJyZWQgaW4gZSkxMDggNjMzLjYgUQotKHhwYW5zaW9uLCB0aGVuKS0uMTUgRSBGMShvdXRwdXQpMi41IEUgRjAoY29udGFpbnMgYSBkZXNjcmlwdGkpMi41IEUgLjMKLS0uMTUodmUgZSktLjI1IEgocnJvciBtZXNzYWdlLikuMTUgRSBGMSAtLjE1KGNoKTEwOCA2NTcuNiBTKGFyICopLjE1IEUKLUYyKGdldF9oaXN0b3J5X2UpMi41IEUgLS4xKHZlKS0uMTUgRyhudCkuMSBFIEYwKFwoKTQuMTY2IEUgRjEoY29uc3QgYylBCi0oaGFyICpzdHJpbmcpLS4xNSBFIDEuNjY2KCxpKS0uMSBHKG50ICpjaW5kZSktMS42NjYgRSAtLjgzNCh4LCBpbnQpLS4yIEYKLShxYykyLjUgRShoYXIpLS4xNSBFIEYwKFwpKTMuMzMyIEUgLjI2MihSZXR1cm5zIHRoZSB0ZSkxMDggNjY5LjYgUiAuMjYyCi0oeHQgb2YgdGhlIGhpc3RvcnkgZSktLjE1IEYgLS4xNSh2ZSktLjI1IEcgLjI2MihudCBiZSkuMTUgRiAuMjYzCi0oZ2lubmluZyBhdCktLjE1IEYgRjEoc3RyaW5nKTIuNzYzIEUgRjAoKykyLjc2MyBFIEYxKCpjaW5kZSkyLjc2MyBFKHgpCi0tLjIgRSBGMCguKUEgRjEoKmNpbmRlKTUuMjYzIEUoeCktLjIgRSBGMCAuMjYzCi0oaXMgbW9kaVwyMTRlZCB0byBwb2ludCB0byBhZnRlciB0aGUpMi43NjMgRiAtMi4xNSAtLjI1KGV2IGUpMTA4IDY4MS42IFQKLS43MShudCBzcGVjaVwyMTRlcikuMjUgRiA1LjcxKC5BKS0uNTUgRyAzLjIxKHRmKS01LjcxIEcgLjcxCi0odW5jdGlvbiBlbnRyeSktMy4yMSBGKCwpLS42NSBFIEYxKGNpbmRlKTMuMjEgRSh4KS0uMiBFIEYwIC43MDkKLShwb2ludHMgdG8gdGhlIGluZGUpMy4yMSBGIDMuMjA5KHhpKS0uMTUgRyhudG8pLTMuMjA5IEUgRjEoc3RyaW5nKTMuMjA5Ci1FIEYwIC43MDkod2hlcmUgdGhlIGhpc3RvcnkgZSkzLjIwOSBGIC0uMTUodmUpLS4yNSBHIC43MDkKLShudCBzcGVjaVwyMTRjYS0pLjE1IEYgLjUyNyh0aW9uIGJlKTEwOCA2OTMuNiBSKGdpbnMuKS0uMTUgRSBGMShxYyk1LjUyNwotRShoYXIpLS4xNSBFIEYwIC41MjcoaXMgYSBjaGFyYWN0ZXIgdGhhdCBpcyBhbGxvKTMuMDI3IEYgLjUyNwotKHdlZCB0byBlbmQgdGhlIGUpLS4yNSBGIC0uMTUodmUpLS4yNSBHIC41MjgKLShudCBzcGVjaVwyMTRjYXRpb24gaW4gYWRkaXRpb24gdG8gdGhlIGApLjE1IEYoYG5vcm1hbCcpLS43NCBFKCcpLS43NCBFCi0odGVybWluYXRpbmcgY2hhcmFjdGVycy4pMTA4IDcwNS42IFEgRjEgLS4xNShjaCkxMDggNzI5LjYgUyhhciAqKikuMTUgRQotRjIoaGlzdG9yeV90b2spMi41IEUoZW5pemUpLS4xIEUgRjAoXCgpNC4xNjYgRSBGMShjb25zdCBjKUEoaGFyICpzdHJpbmcpCi0tLjE1IEUgRjAoXCkpMS42NjYgRShHTlUgSGlzdG9yeSA0LjMpNzIgNzY4IFEoMjAwMiBKYW51YXJ5IDMxKTEzMS43OSBFCi0oNSkxOTUuOTUgRSBFUAorLS4zNShUcikxMDggNjI4LjggUyAuMzgodW5jYXRlIHRoZSBoaXN0b3J5IFwyMTRsZSkuMzUgRiBGMihcMjE0bGVuYW1lKQorMi44OCBFIEYwIDIuODgoLGwpQyhlYSktMi44OCBFIC4zOCh2aW5nIG9ubHkgdGhlIGxhc3QpLS4yIEYgRjIobmxpbmVzKQorMi44ODEgRSBGMCAyLjg4MShsaW5lcy4gSWYpMi44ODEgRiBGMihcMjE0bGVuYW1lKTIuODgxIEUgRjAoaXMpMi44ODEgRQorRjEoTlVMTCkyLjg4MSBFIEYwIDIuODgxKCx0KUMoaGVuKS0yLjg4MSBFIEYyKH4vLmhpc3RvcnkpMi44ODEgRSBGMChpcykKKzIuODgxIEUgMi41KHRydW5jYXRlZC4gUmV0dXJucykxMDggNjQwLjggUiAyLjUoMG8pMi41IEcgMi41KG5zKS0yLjUgRworKHVjY2Vzcywgb3IpLTIuNSBFIEYxKGVycikyLjUgRShubyktLjE1IEUgRjAob24gZikyLjUgRShhaWx1cmUuKS0uMSBFIEYxCisoSGlzdG9yeSBFeHBhbnNpb24pODcgNjY5LjYgUSBGMChUaGVzZSBmdW5jdGlvbnMgaW1wbGVtZW50IGhpc3RvcnkgZSkxMDgKKzY4MS42IFEoeHBhbnNpb24uKS0uMTUgRSBGMihpbnQpMTA4IDcwNS42IFEgRjEoaGlzdG9yeV9leHBhbmQpMi41IEUgRjAKKyhcKCk0LjE2NiBFIEYyIC0uMTUoY2gpQyhhciAqc3RyaW5nKS4xNSBFIDEuNjY2KCxjKS0uMSBHKGhhciAqKm91dHB1dCkKKy0xLjgxNiBFIEYwKFwpKTEuNjY2IEUoRXhwYW5kKTEwOCA3MTcuNiBRIEYyKHN0cmluZykyLjUgRSBGMCAyLjUoLHApQworKGxhY2luZyB0aGUgcmVzdWx0IGludG8pLTIuNSBFIEYyKG91dHB1dCkyLjUgRSBGMCAyLjUoLGFwKUMKKyhvaW50ZXIgdG8gYSBzdHJpbmcuKS0yLjUgRShSZXR1cm5zOik1IEUoR05VIEhpc3RvcnkgNS4wKTcyIDc2OCBRCisoMjAwMyBKdWx5IDMxKTEzOS4wMDUgRSg1KTIwMy4xNjUgRSAwIENnIEVQCiAlJVBhZ2U6IDYgNgogJSVCZWdpblBhZ2VTZXR1cAogQlAKICUlRW5kUGFnZVNldHVwCiAvRjAgMTAvVGltZXMtUm9tYW5AMCBTRihISVNUKTcyIDQ4IFEoT1IpLS4xOCBFIDM1Ny4xOChZXCgzXCkgSElTVCktLjY1IEYKLShPUiktLjE4IEUoWVwoM1wpKS0uNjUgRSAuMjM5KFJldHVybiBhbiBhcnJheSBvZiB0b2spMTA4IDg0IFIgLjIzOQotKGVucyBwYXJzZWQgb3V0IG9mKS0uMSBGL0YxIDEwL1RpbWVzLUl0YWxpY0AwIFNGKHN0cmluZykyLjczOSBFIEYwIDIuNzM5Ci0oLG0pQyAuMjM4KHVjaCBhcyB0aGUgc2hlbGwgbWlnaHQuKS0yLjczOSBGIC4yMzgoVGhlIHRvayk1LjIzOCBGIC4yMzgKLShlbnMgYXJlIHNwbGl0IG9uIHRoZSBjaGFyYWMtKS0uMSBGKHRlcnMgaW4gdGhlKTEwOCA5NiBRL0YyIDEwCi0vVGltZXMtQm9sZEAwIFNGKGhpc3RvcnlfdykyLjUgRShvcmRfZGVsaW1pdGVycyktLjEgRSBGMCAtLjI1KHZhKTIuNSBHCisoT1IpLS4xOCBFKFlcKDNcKSktLjY1IEUgMzEoMEkpMTQ0IDg0IFMgMy4wNjYoZm4pLTMxIEcgMy4wNjYob2UpLTMuMDY2IEcKKy41NjYoeHBhbnNpb25zIHRvb2sgcGxhY2UgXChvciktMy4yMTYgRiAzLjA2NSgsaSktLjQgRyAzLjA2NShmdCktMy4wNjUgRworLjU2NShoZSBvbmx5IGNoYW5nZSBpbiB0aGUgdGUpLTMuMDY1IEYgLjU2NSh4dCB3KS0uMTUgRiAuNTY1CisoYXMgdGhlIHJlbW8pLS4xIEYgLS4yNSh2YSktLjE1IEcgMy4wNjUobG8pLjI1IEcgMy4wNjUoZmUpLTMuMDY1IEcKKyhzY2FwZSktMy4wNjUgRShjaGFyYWN0ZXJzIHByZWNlZGluZyB0aGUgaGlzdG9yeSBlKTE4MCA5NiBRCisoeHBhbnNpb24gY2hhcmFjdGVyXCk7KS0uMTUgRSAzMSgxaSkxNDQgMTA4IFMgMi41KGZlKS0zMSBHCisoeHBhbnNpb25zIGRpZCB0YWspLTIuNjUgRSAyLjUoZXApLS4xIEcobGFjZTspLTIuNSBFIDI1LjE3KC0xIGlmKTE0NCAxMjAKK1IodGhlcmUgdykyLjUgRShhcyBhbiBlcnJvciBpbiBlKS0uMSBFKHhwYW5zaW9uOyktLjE1IEUgMzEoMmkpMTQ0IDEzMiBTCisyLjUoZnQpLTMxIEcoaGUgcmV0dXJuZWQgbGluZSBzaG91bGQgYmUgZGlzcGxheWVkLCBiKS0yLjUgRSh1dCBub3QgZSktLjIKK0UgLS4xNSh4ZSktLjE1IEcoY3V0ZWQsIGFzIHdpdGggdGhlKS4xNSBFL0YxIDEwL1RpbWVzLUJvbGRAMCBTRig6cCkyLjUgRQorRjAobW9kaVwyMTRlcikyLjUgRSguKS0uNTUgRShJZiBhbiBlcnJvciBvY3VycmVkIGluIGUpMTA4IDE0NCBRCisoeHBhbnNpb24sIHRoZW4pLS4xNSBFL0YyIDEwL1RpbWVzLUl0YWxpY0AwIFNGKG91dHB1dCkyLjUgRSBGMAorKGNvbnRhaW5zIGEgZGVzY3JpcHRpKTIuNSBFIC4zIC0uMTUodmUgZSktLjI1IEgocnJvciBtZXNzYWdlLikuMTUgRSBGMgorLS4xNShjaCkxMDggMTY4IFMoYXIgKikuMTUgRSBGMShnZXRfaGlzdG9yeV9lKTIuNSBFIC0uMSh2ZSktLjE1IEcobnQpLjEKK0UgRjAoXCgpNC4xNjYgRSBGMihjb25zdCBjKUEoaGFyICpzdHJpbmcpLS4xNSBFIDEuNjY2KCxpKS0uMSBHCisobnQgKmNpbmRlKS0xLjY2NiBFIC0uODM0KHgsIGludCktLjIgRihxYykyLjUgRShoYXIpLS4xNSBFIEYwKFwpKTMuMzMyIEUKKy4yNjIoUmV0dXJucyB0aGUgdGUpMTA4IDE4MCBSIC4yNjIoeHQgb2YgdGhlIGhpc3RvcnkgZSktLjE1IEYgLS4xNSh2ZSkKKy0uMjUgRyAuMjYyKG50IGJlKS4xNSBGIC4yNjMoZ2lubmluZyBhdCktLjE1IEYgRjIoc3RyaW5nKTIuNzYzIEUgRjAoKykKKzIuNzYzIEUgRjIoKmNpbmRlKTIuNzYzIEUoeCktLjIgRSBGMCguKUEgRjIoKmNpbmRlKTUuMjYzIEUoeCktLjIgRSBGMAorLjI2MyhpcyBtb2RpXDIxNGVkIHRvIHBvaW50IHRvIGFmdGVyIHRoZSkyLjc2MyBGIC0yLjE1IC0uMjUoZXYgZSkxMDggMTkyCitUIC43MShudCBzcGVjaVwyMTRlcikuMjUgRiA1LjcxKC5BKS0uNTUgRyAzLjIxKHRmKS01LjcxIEcgLjcxCisodW5jdGlvbiBlbnRyeSktMy4yMSBGKCwpLS42NSBFIEYyKGNpbmRlKTMuMjEgRSh4KS0uMiBFIEYwIC43MDkKKyhwb2ludHMgdG8gdGhlIGluZGUpMy4yMSBGIDMuMjA5KHhpKS0uMTUgRyhudG8pLTMuMjA5IEUgRjIoc3RyaW5nKTMuMjA5CitFIEYwIC43MDkod2hlcmUgdGhlIGhpc3RvcnkgZSkzLjIwOSBGIC0uMTUodmUpLS4yNSBHIC43MDkKKyhudCBzcGVjaVwyMTRjYS0pLjE1IEYgLjUyNyh0aW9uIGJlKTEwOCAyMDQgUihnaW5zLiktLjE1IEUgRjIocWMpNS41MjcgRQorKGhhciktLjE1IEUgRjAgLjUyNyhpcyBhIGNoYXJhY3RlciB0aGF0IGlzIGFsbG8pMy4wMjcgRiAuNTI3Cisod2VkIHRvIGVuZCB0aGUgZSktLjI1IEYgLS4xNSh2ZSktLjI1IEcgLjUyOAorKG50IHNwZWNpXDIxNGNhdGlvbiBpbiBhZGRpdGlvbiB0byB0aGUgYCkuMTUgRihgbm9ybWFsJyktLjc0IEUoJyktLjc0IEUKKyh0ZXJtaW5hdGluZyBjaGFyYWN0ZXJzLikxMDggMjE2IFEgRjIgLS4xNShjaCkxMDggMjQwIFMoYXIgKiopLjE1IEUgRjEKKyhoaXN0b3J5X3RvaykyLjUgRShlbml6ZSktLjEgRSBGMChcKCk0LjE2NiBFIEYyKGNvbnN0IGMpQShoYXIgKnN0cmluZykKKy0uMTUgRSBGMChcKSkxLjY2NiBFIC4yMzkoUmV0dXJuIGFuIGFycmF5IG9mIHRvaykxMDggMjUyIFIgLjIzOQorKGVucyBwYXJzZWQgb3V0IG9mKS0uMSBGIEYyKHN0cmluZykyLjczOSBFIEYwIDIuNzM5KCxtKUMgLjIzOAorKHVjaCBhcyB0aGUgc2hlbGwgbWlnaHQuKS0yLjczOSBGIC4yMzgoVGhlIHRvayk1LjIzOCBGIC4yMzgKKyhlbnMgYXJlIHNwbGl0IG9uIHRoZSBjaGFyYWMtKS0uMSBGKHRlcnMgaW4gdGhlKTEwOCAyNjQgUSBGMShoaXN0b3J5X3cpCisyLjUgRShvcmRfZGVsaW1pdGVycyktLjEgRSBGMCAtLjI1KHZhKTIuNSBHCiAocmlhYmxlLCBhbmQgc2hlbGwgcXVvdGluZyBjb24pLjI1IEUgLS4xNSh2ZSktLjQgRyhudGlvbnMgYXJlIG9iZSkuMTUgRQotKHllZC4pLS4xNSBFIEYxIC0uMTUoY2gpMTA4IDEyMCBTKGFyICopLjE1IEUgRjIoaGlzdG9yeV9hcikyLjUgRQotKGdfZXh0cmFjdCktLjEgRSBGMChcKCk0LjE2NiBFIEYxKGludCBcMjE0cilBIC0uODM0KHN0LCBpbnQpLS4xIEYgLS44MzQKKyh5ZWQuKS0uMTUgRSBGMiAtLjE1KGNoKTEwOCAyODggUyhhciAqKS4xNSBFIEYxKGhpc3RvcnlfYXIpMi41IEUKKyhnX2V4dHJhY3QpLS4xIEUgRjAoXCgpNC4xNjYgRSBGMihpbnQgXDIxNHIpQSAtLjgzNChzdCwgaW50KS0uMSBGIC0uODM0CiAobGFzdCwgY29uc3QpMi41IEYgLS4xNShjaCkyLjUgRyhhciAqc3RyaW5nKS4xNSBFIEYwKFwpKTMuMzMyIEUgLjAyNQotKEV4dHJhY3QgYSBzdHJpbmcgc2UpMTA4IDEzMiBSIC4wMjUoZ21lbnQgY29uc2lzdGluZyBvZiB0aGUpLS4xNSBGIEYxCi08OGM3Mj4yLjUyNiBFKHN0KS0uMSBFIEYwKHRocm91Z2gpMi41MjYgRSBGMShsYXN0KTIuNTI2IEUgRjAoYXIpMi41MjYgRQotLjAyNihndW1lbnRzIHByZXNlbnQgaW4pLS4xOCBGIEYxKHN0cmluZykyLjUyNiBFIEYwIDUuMDI2KC5BKUMgLS4xOChyZykKLS01LjAyNiBHIC4wMjYodW1lbnRzIGFyZSBzcGxpdCkuMTggRih1c2luZykxMDggMTQ0IFEgRjIoaGlzdG9yeV90b2spMi41Ci1FKGVuaXplXChcKSktLjEgRSBGMCguKUEgRjIoSGlzdG9yeSBWKTg3IDE3Mi44IFEoYXJpYWJsZXMpLS45MiBFIEYwCi0oVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyB0aGUgZSkxMDggMTg0LjggUSh4dGVybmFsbHktdmlzaWJsZSB2KS0uMTUgRQotKGFyaWFibGVzIGUpLS4yNSBFKHhwb3J0ZWQgYnkgdGhlIEdOVSBIaXN0b3J5IExpYnJhcnkpLS4xNSBFKC4pLS42NSBFIEYxCi0oaW50KTEwOCAyMDguOCBRIEYyKGhpc3RvcnlfYmFzZSkyLjUgRSBGMChUaGUgbG9naWNhbCBvZikxMDggMjIwLjggUQotKGZzZXQgb2YgdGhlIFwyMTRyc3QgZW50cnkgaW4gdGhlIGhpc3RvcnkgbGlzdC4pLS4yNSBFIEYxKGludCkxMDggMjQ0LjgKLVEgRjIoaGlzdG9yeV9sZW5ndGgpMi41IEUgRjAKLShUaGUgbnVtYmVyIG9mIGVudHJpZXMgY3VycmVudGx5IHN0b3JlZCBpbiB0aGUgaGlzdG9yeSBsaXN0LikxMDggMjU2LjggUQotRjEoaW50KTEwOCAyODAuOCBRIEYyKGhpc3RvcnlfbWF4X2VudHJpZXMpMi41IEUgRjAKLShUaGUgbWF4aW11bSBudW1iZXIgb2YgaGlzdG9yeSBlbnRyaWVzLikxMDggMjkyLjggUQotKFRoaXMgbXVzdCBiZSBjaGFuZ2VkIHVzaW5nKTUgRSBGMihzdGlcMjE1ZV9oaXN0b3J5XChcKSkyLjUgRSBGMCguKUEgRjEKLS0uMTUoY2gpMTA4IDMxNi44IFMoYXIpLjE1IEUgRjIoaGlzdG9yeV9leHBhbnNpb25fY2hhcikyLjUgRSBGMAotKFRoZSBjaGFyYWN0ZXIgdGhhdCBpbnRyb2R1Y2VzIGEgaGlzdG9yeSBlKTEwOCAzMjguOCBRIC0uMTUodmUpLS4yNSBHCi0yLjUobnQuIFRoZSkuMTUgRihkZWYpMi41IEUoYXVsdCBpcyktLjEgRSBGMighKTIuNSBFIEYwIDUoLlMpQwotKGV0dGluZyB0aGlzIHRvIDAgaW5oaWJpdHMgaGlzdG9yeSBlKS01IEUoeHBhbnNpb24uKS0uMTUgRSBGMSAtLjE1KGNoKQotMTA4IDM1Mi44IFMoYXIpLjE1IEUgRjIoaGlzdG9yeV9zdWJzdF9jaGFyKTIuNSBFIEYwCi0oVGhlIGNoYXJhY3RlciB0aGF0IGluKTEwOCAzNjQuOCBRIC0uMih2byktLjQgRyAtLjEoa2UpLjIgRyAyLjUoc3cpLjEgRworKEV4dHJhY3QgYSBzdHJpbmcgc2UpMTA4IDMwMCBSIC4wMjUoZ21lbnQgY29uc2lzdGluZyBvZiB0aGUpLS4xNSBGIEYyCis8OGM3Mj4yLjUyNiBFKHN0KS0uMSBFIEYwKHRocm91Z2gpMi41MjYgRSBGMihsYXN0KTIuNTI2IEUgRjAoYXIpMi41MjYgRQorLjAyNihndW1lbnRzIHByZXNlbnQgaW4pLS4xOCBGIEYyKHN0cmluZykyLjUyNiBFIEYwIDUuMDI2KC5BKUMgLS4xOChyZykKKy01LjAyNiBHIC4wMjYodW1lbnRzIGFyZSBzcGxpdCkuMTggRih1c2luZykxMDggMzEyIFEgRjEoaGlzdG9yeV90b2spMi41CitFKGVuaXplXChcKSktLjEgRSBGMCguKUEgRjEoSGlzdG9yeSBWKTg3IDM0MC44IFEoYXJpYWJsZXMpLS45MiBFIEYwCisoVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyB0aGUgZSkxMDggMzUyLjggUSh4dGVybmFsbHktdmlzaWJsZSB2KS0uMTUgRQorKGFyaWFibGVzIGUpLS4yNSBFKHhwb3J0ZWQgYnkgdGhlIEdOVSBIaXN0b3J5IExpYnJhcnkpLS4xNSBFKC4pLS42NSBFIEYyCisoaW50KTEwOCAzNzYuOCBRIEYxKGhpc3RvcnlfYmFzZSkyLjUgRSBGMChUaGUgbG9naWNhbCBvZikxMDggMzg4LjggUQorKGZzZXQgb2YgdGhlIFwyMTRyc3QgZW50cnkgaW4gdGhlIGhpc3RvcnkgbGlzdC4pLS4yNSBFIEYyKGludCkxMDggNDEyLjgKK1EgRjEoaGlzdG9yeV9sZW5ndGgpMi41IEUgRjAKKyhUaGUgbnVtYmVyIG9mIGVudHJpZXMgY3VycmVudGx5IHN0b3JlZCBpbiB0aGUgaGlzdG9yeSBsaXN0LikxMDggNDI0LjggUQorRjIoaW50KTEwOCA0NDguOCBRIEYxKGhpc3RvcnlfbWF4X2VudHJpZXMpMi41IEUgRjAKKyhUaGUgbWF4aW11bSBudW1iZXIgb2YgaGlzdG9yeSBlbnRyaWVzLikxMDggNDYwLjggUQorKFRoaXMgbXVzdCBiZSBjaGFuZ2VkIHVzaW5nKTUgRSBGMShzdGlcMjE1ZV9oaXN0b3J5XChcKSkyLjUgRSBGMCguKUEgRjIKKyhpbnQpMTA4IDQ4NC44IFEgRjEoaGlzdG9yeV93cml0ZV90aW1lc3RhbXBzKTIuNSBFIEYwIDEuNDY4CisoSWYgbm9uLXplcm8sIHRpbWVzdGFtcHMgYXJlIHdyaXR0ZW4gdG8gdGhlIGhpc3RvcnkgXDIxNGxlLCBzbyB0aGUpMTA4Cis0OTYuOCBSIDMuOTY4KHljKS0uMTUgRyAxLjQ2OChhbiBiZSBwcmVzZXJ2KS0zLjk2OCBGIDEuNDY4CisoZWQgYmV0d2VlbiBzZXNzaW9ucy4pLS4xNSBGKFRoZSk2LjQ2OCBFKGRlZikxMDggNTA4LjggUShhdWx0IHYpLS4xIEUKKyhhbHVlIGlzIDAsIG1lYW5pbmcgdGhhdCB0aW1lc3RhbXBzIGFyZSBub3Qgc2EpLS4yNSBFIC0uMTUodmUpLS4yIEcoZC4pCisuMTUgRSBGMiAtLjE1KGNoKTEwOCA1MzIuOCBTKGFyKS4xNSBFIEYxKGhpc3RvcnlfZXhwYW5zaW9uX2NoYXIpMi41IEUgRjAKKyhUaGUgY2hhcmFjdGVyIHRoYXQgaW50cm9kdWNlcyBhIGhpc3RvcnkgZSkxMDggNTQ0LjggUSAtLjE1KHZlKS0uMjUgRworMi41KG50LiBUaGUpLjE1IEYoZGVmKTIuNSBFKGF1bHQgaXMpLS4xIEUgRjEoISkyLjUgRSBGMCA1KC5TKUMKKyhldHRpbmcgdGhpcyB0byAwIGluaGliaXRzIGhpc3RvcnkgZSktNSBFKHhwYW5zaW9uLiktLjE1IEUgRjIgLS4xNShjaCkKKzEwOCA1NjguOCBTKGFyKS4xNSBFIEYxKGhpc3Rvcnlfc3Vic3RfY2hhcikyLjUgRSBGMAorKFRoZSBjaGFyYWN0ZXIgdGhhdCBpbikxMDggNTgwLjggUSAtLjIodm8pLS40IEcgLS4xKGtlKS4yIEcgMi41KHN3KS4xIEcKIChvcmQgc3Vic3RpdHV0aW9uIGlmIGZvdW5kIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUuKS0yLjYgRShUaGUgZGVmKTUgRQotKGF1bHQgaXMpLS4xIEUgRjIoXikyLjUgRSBGMCguKUEgRjEgLS4xNShjaCkxMDggMzg4LjggUyhhcikuMTUgRSBGMgotKGhpc3RvcnlfY29tbWVudF9jaGFyKTIuNSBFIEYwIC4xMTcoRHVyaW5nIHRvaykxMDggNDAwLjggUiAuMTE3CisoYXVsdCBpcyktLjEgRSBGMSheKTIuNSBFIEYwKC4pQSBGMiAtLjE1KGNoKTEwOCA2MDQuOCBTKGFyKS4xNSBFIEYxCisoaGlzdG9yeV9jb21tZW50X2NoYXIpMi41IEUgRjAgLjExNihEdXJpbmcgdG9rKTEwOCA2MTYuOCBSIC4xMTcKIChlbml6YXRpb24sIGlmIHRoaXMgY2hhcmFjdGVyIGlzIHNlZW4gYXMgdGhlIFwyMTRyc3QgY2hhcmFjdGVyIG9mIGEgdykKLS0uMSBGIC4xMTcob3JkLCB0aGVuIGl0IGFuZCBhbGwgc3Vic2VxdWVudCBjaGFyKS0uMSBGKC0pLS4yIEUgLjI3NgotKGFjdGVycyB1cCB0byBhIG5lKTEwOCA0MTIuOCBSIC4yNzYKKy0uMSBGIC4xMTcob3JkLCB0aGVuIGl0IGFuZCBhbGwgc3Vic2VxdWVudCBjaGFyKS0uMSBGKC0pLS4yIEUgLjI3NworKGFjdGVycyB1cCB0byBhIG5lKTEwOCA2MjguOCBSIC4yNzYKICh3bGluZSBhcmUgaWdub3JlZCwgc3VwcHJlc3NpbmcgaGlzdG9yeSBlKS0uMjUgRiAuMjc2Ci0oeHBhbnNpb24gZm9yIHRoZSByZW1haW5kZXIgb2YgdGhlIGxpbmUuKS0uMTUgRiAuMjc3KFRoaXMgaXMgZGlzLSk1LjI3NgotRihhYmxlZCBieSBkZWYpMTA4IDQyNC44IFEoYXVsdC4pLS4xIEUgRjEgLS4xNShjaCkxMDggNDQ4LjggUyhhciAqKS4xNSBFCi1GMihoaXN0b3J5X3cpMi41IEUob3JkX2RlbGltaXRlcnMpLS4xIEUgRjAKLShUaGUgY2hhcmFjdGVycyB0aGF0IHNlcGFyYXRlIHRvaykxMDggNDYwLjggUShlbnMgZm9yKS0uMSBFIEYyCisoeHBhbnNpb24gZm9yIHRoZSByZW1haW5kZXIgb2YgdGhlIGxpbmUuKS0uMTUgRiAuMjc2KFRoaXMgaXMgZGlzLSk1LjI3NgorRihhYmxlZCBieSBkZWYpMTA4IDY0MC44IFEoYXVsdC4pLS4xIEUgRjIgLS4xNShjaCkxMDggNjY0LjggUyhhciAqKS4xNSBFCitGMShoaXN0b3J5X3cpMi41IEUob3JkX2RlbGltaXRlcnMpLS4xIEUgRjAKKyhUaGUgY2hhcmFjdGVycyB0aGF0IHNlcGFyYXRlIHRvaykxMDggNjc2LjggUShlbnMgZm9yKS0uMSBFIEYxCiAoaGlzdG9yeV90b2spMi41IEUoZW5pemVcKFwpKS0uMSBFIEYwIDUoLlQpQyhoZSBkZWYpLTUgRShhdWx0IHYpLS4xIEUKLShhbHVlIGlzKS0uMjUgRSBGMiAyLjUoIlxcKTIuNSBHKHRcXG5cKFwpPD47JnwiKS0yLjUgRSBGMCguKUEgRjEgLS4xNQotKGNoKTEwOCA0ODQuOCBTKGFyICopLjE1IEUgRjIoaGlzdG9yeV9ub19leHBhbmRfY2hhcnMpMi41IEUgRjAgMi4wNTQKLShUaGUgbGlzdCBvZiBjaGFyYWN0ZXJzIHdoaWNoIGluaGliaXQgaGlzdG9yeSBlKTEwOCA0OTYuOCBSIDIuMDU0Ci0oeHBhbnNpb24gaWYgZm91bmQgaW1tZWRpYXRlbHkgZm9sbG8pLS4xNSBGKHdpbmcpLS4yNSBFIEYyCi0oaGlzdG9yeV9leHBhbi0pNC41NTQgRShzaW9uX2NoYXIpMTA4IDUwOC44IFEgRjAgNSguVClDKGhlIGRlZiktNSBFCi0oYXVsdCBpcyBzcGFjZSwgdGFiLCBuZSktLjEgRSh3bGluZSwpLS4yNSBFIEYyKFxccikyLjUgRSBGMCAyLjUoLGEpQyhuZCkKLS0yLjUgRSBGMig9KTIuNSBFIEYwKC4pQSBGMSAtLjE1KGNoKTEwOCA1MzIuOCBTKGFyICopLjE1IEUgRjIKLShoaXN0b3J5X3NlYXIpMi41IEUoY2hfZGVsaW1pdGVyX2NoYXJzKS0uMTggRSBGMCAuNDAxKFRoZSBsaXN0IG9mIGFkZGl0XAotaW9uYWwgY2hhcmFjdGVycyB3aGljaCBjYW4gZGVsaW1pdCBhIGhpc3Rvcnkgc2VhcmNoIHN0cmluZywgaW4gYWRkaXRpb25cCi0gdG8gc3BhY2UsIHRhYiwpMTA4IDU0NC44IFIgRjEoOikyLjkwMSBFIEYwKGFuZCkyLjkwMSBFIEYxKD8pMi45MDIgRSBGMAotKGluIHRoZSBjYXNlIG9mIGEgc3Vic3RyaW5nIHNlYXJjaC4pMTA4IDU1Ni44IFEoVGhlIGRlZik1IEUKLShhdWx0IGlzIGVtcHR5KS0uMSBFKC4pLS42NSBFIEYxKGludCkxMDggNTgwLjggUSBGMgotKGhpc3RvcnlfcXVvdGVzX2luaGliaXRfZXhwYW5zaW9uKTIuNSBFIEYwIC42MjUKLShJZiBub24temVybywgc2luZ2xlLXF1b3RlZCB3KTEwOCA1OTIuOCBSIC42MjUKLShvcmRzIGFyZSBub3Qgc2Nhbm5lZCBmb3IgdGhlIGhpc3RvcnkgZSktLjEgRiAuNjI0KHhwYW5zaW9uIGNoYXJhY3RlcikKLS0uMTUgRiA1LjYyNCguVCktLjU1IEcgLjYyNChoZSBkZWYpLTUuNjI0IEYgLjYyNChhdWx0IHYpLS4xIEYgLjYyNAotKGFsdWUgaXMpLS4yNSBGKDAuKTEwOCA2MDQuOCBRIEYxKHJsX2xpbmViKTEwOCA2MjguOCBRKHVmX2Z1bmNfdCAqKS0uMiBFCi1GMihoaXN0b3J5X2luaGliaXRfZXhwYW5zaW9uX2Z1bmN0aW9uKTIuNSBFIEYwIC4zNDcKLShUaGlzIHNob3VsZCBiZSBzZXQgdG8gdGhlIGFkZHJlc3Mgb2YgYSBmdW5jdGlvbiB0aGF0IHRhaykxMDggNjQwLjggUgotLjM0OChlcyB0dyktLjEgRiAyLjg0OChvYSktLjEgRyAtLjE4KHJnKS0yLjg0OCBHIC4zNDgodW1lbnRzOiBhKS4xOCBGIEYyCi0uMzQ4KGNoYXIgKikyLjg0OCBGIEYwKFwoKTIuODQ4IEUgRjEoc3RyaW5nKUEgRjAgMi44NDgoXClhKUMgLjM0OChuZCBhbikKLS0yLjg0OCBGIEYyKGludCkyLjg0OCBFIEYwKGluZGUpMi44NDggRSh4KS0uMTUgRSAuMjI4Ci0oaW50byB0aGF0IHN0cmluZyBcKCkxMDggNjUyLjggUiBGMShpKUEgRjAgMi43MjgoXCkuIEl0KUIgLjIyNwotKHNob3VsZCByZXR1cm4gYSBub24temVybyB2KTIuNzI3IEYgLjIyNyhhbHVlIGlmIHRoZSBoaXN0b3J5IGUpLS4yNSBGCi0uMjI3KHhwYW5zaW9uIHN0YXJ0aW5nIGF0KS0uMTUgRiBGMShzdHJpbmdbaV0pMi43MjcgRSBGMCAuMjI3Ci0oc2hvdWxkIG5vdCkyLjcyNyBGIC4wMTkoYmUgcGVyZm9ybWVkOyB6ZXJvIGlmIHRoZSBlKTEwOCA2NjQuOCBSIC4wMTkKLSh4cGFuc2lvbiBzaG91bGQgYmUgZG9uZS4pLS4xNSBGIC4wMTkKLShJdCBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGFwcGxpY2F0aW9ucyBsaWspNS4wMTkgRihlKS0uMSBFIEYyKGJhc2gpCi0yLjUxOSBFIEYwIC4wMTkodGhhdCB1c2UpMi41MTkgRih0aGUgaGlzdG9yeSBlKTEwOCA2NzYuOCBRCi0oeHBhbnNpb24gY2hhcmFjdGVyIGZvciBhZGRpdGlvbmFsIHB1cnBvc2VzLiktLjE1IEUoQnkgZGVmKTUgRQotKGF1bHQsIHRoaXMgdiktLjEgRShhcmlhYmxlIGlzIHNldCB0byktLjI1IEUgRjIoTlVMTCkyLjUgRSBGMCguKUEvRjMKLTEwLjk1L1RpbWVzLUJvbGRAMCBTRihGSUxFUyk3MiA2OTMuNiBRIEYxKH4vLmhpc3RvcnkpMTA5LjY2NiA3MDUuNiBRIEYwCi0oRGVmKTE0NCA3MTcuNiBRKGF1bHQgXDIxNGxlbmFtZSBmb3IgcmVhZGluZyBhbmQgd3JpdGluZyBzYSktLjEgRSAtLjE1Ci0odmUpLS4yIEcgMi41KGRoKS4xNSBHKGlzdG9yeSktMi41IEUoR05VIEhpc3RvcnkgNC4zKTcyIDc2OCBRCi0oMjAwMiBKYW51YXJ5IDMxKTEzMS43OSBFKDYpMTk1Ljk1IEUgRVAKKyhhbHVlIGlzKS0uMjUgRSBGMSAyLjUoIlxcKTIuNSBHKHRcXG5cKFwpPD47JnwiKS0yLjUgRSBGMCguKUEgRjIgLS4xNQorKGNoKTEwOCA3MDAuOCBTKGFyICopLjE1IEUgRjEoaGlzdG9yeV9ub19leHBhbmRfY2hhcnMpMi41IEUgRjAgMi4wNTQKKyhUaGUgbGlzdCBvZiBjaGFyYWN0ZXJzIHdoaWNoIGluaGliaXQgaGlzdG9yeSBlKTEwOCA3MTIuOCBSIDIuMDU0CisoeHBhbnNpb24gaWYgZm91bmQgaW1tZWRpYXRlbHkgZm9sbG8pLS4xNSBGKHdpbmcpLS4yNSBFIEYxCisoaGlzdG9yeV9leHBhbi0pNC41NTUgRShzaW9uX2NoYXIpMTA4IDcyNC44IFEgRjAgNSguVClDKGhlIGRlZiktNSBFCisoYXVsdCBpcyBzcGFjZSwgdGFiLCBuZSktLjEgRSh3bGluZSwpLS4yNSBFIEYxKFxccikyLjUgRSBGMCAyLjUoLGEpQyhuZCkKKy0yLjUgRSBGMSg9KTIuNSBFIEYwKC4pQShHTlUgSGlzdG9yeSA1LjApNzIgNzY4IFEoMjAwMyBKdWx5IDMxKTEzOS4wMDUgRQorKDYpMjAzLjE2NSBFIDAgQ2cgRVAKICUlUGFnZTogNyA3CiAlJUJlZ2luUGFnZVNldHVwCiBCUAogJSVFbmRQYWdlU2V0dXAKIC9GMCAxMC9UaW1lcy1Sb21hbkAwIFNGKEhJU1QpNzIgNDggUShPUiktLjE4IEUgMzU3LjE4KFlcKDNcKSBISVNUKS0uNjUgRgotKE9SKS0uMTggRShZXCgzXCkpLS42NSBFL0YxIDEwLjk1L1RpbWVzLUJvbGRAMCBTRihTRUUgQUxTTyk3MiA4NCBRL0YyIDEwCi0vVGltZXMtSXRhbGljQDAgU0YoVGhlIEdudSBSZWFkbGluZSBMaWJyKTEwOCA5NiBRKGFyeSktLjE1IEUgRjAgMi41KCxCKUMKLShyaWFuIEYpLTIuNSBFKG94IGFuZCBDaGV0IFJhbWUpLS4xNSBFKHkpLS4xNSBFIEYyKFRoZSBHbnUgSGlzdG9yeSBMaWJyKQotMTA4IDEwOCBRKGFyeSktLjE1IEUgRjAgMi41KCxCKUMocmlhbiBGKS0yLjUgRShveCBhbmQgQ2hldCBSYW1lKS0uMTUgRQotKHkpLS4xNSBFIEYyKGJhc2gpMTA4IDEyMCBRIEYwKFwoMVwpKUEgRjIgLS4zNyhyZSkxMDggMTMyIFMoYWRsaW5lKS4zNyBFCi1GMChcKDNcKSlBIEYxIC0uNTQ4KEFVKTcyIDE0OC44IFMoVEhPUlMpLjU0OCBFIEYwKEJyaWFuIEYpMTA4IDE2MC44IFEKKyhPUiktLjE4IEUoWVwoM1wpKS0uNjUgRS9GMSAxMC9UaW1lcy1JdGFsaWNAMCBTRiAtLjE1KGNoKTEwOCA4NCBTKGFyICopCisuMTUgRS9GMiAxMC9UaW1lcy1Cb2xkQDAgU0YoaGlzdG9yeV9zZWFyKTIuNSBFKGNoX2RlbGltaXRlcl9jaGFycyktLjE4IEUKK0YwIC40MDEoVGhlIGxpc3Qgb2YgYWRkaXRpb25hbCBjaGFyYWN0ZXJzIHdoaWNoIGNhbiBkZWxpbWl0IGEgaGlzdG9yeSBzXAorZWFyY2ggc3RyaW5nLCBpbiBhZGRpdGlvbiB0byBzcGFjZSwgdGFiLCkxMDggOTYgUiBGMSg6KTIuOTAxIEUgRjAoYW5kKQorMi45MDEgRSBGMSg/KTIuOTAxIEUgRjAoaW4gdGhlIGNhc2Ugb2YgYSBzdWJzdHJpbmcgc2VhcmNoLikxMDggMTA4IFEKKyhUaGUgZGVmKTUgRShhdWx0IGlzIGVtcHR5KS0uMSBFKC4pLS42NSBFIEYxKGludCkxMDggMTMyIFEgRjIKKyhoaXN0b3J5X3F1b3Rlc19pbmhpYml0X2V4cGFuc2lvbikyLjUgRSBGMCAuNjI0CisoSWYgbm9uLXplcm8sIHNpbmdsZS1xdW90ZWQgdykxMDggMTQ0IFIgLjYyNQorKG9yZHMgYXJlIG5vdCBzY2FubmVkIGZvciB0aGUgaGlzdG9yeSBlKS0uMSBGIC42MjUoeHBhbnNpb24gY2hhcmFjdGVyKQorLS4xNSBGIDUuNjI1KC5UKS0uNTUgRyAuNjI1KGhlIGRlZiktNS42MjUgRiAuNjI1KGF1bHQgdiktLjEgRiAuNjI1CisoYWx1ZSBpcyktLjI1IEYoMC4pMTA4IDE1NiBRIEYxKHJsX2xpbmViKTEwOCAxODAgUSh1Zl9mdW5jX3QgKiktLjIgRSBGMgorKGhpc3RvcnlfaW5oaWJpdF9leHBhbnNpb25fZnVuY3Rpb24pMi41IEUgRjAgLjM0OAorKFRoaXMgc2hvdWxkIGJlIHNldCB0byB0aGUgYWRkcmVzcyBvZiBhIGZ1bmN0aW9uIHRoYXQgdGFrKTEwOCAxOTIgUiAuMzQ4CisoZXMgdHcpLS4xIEYgMi44NDgob2EpLS4xIEcgLS4xOChyZyktMi44NDggRyAuMzQ3KHVtZW50czogYSkuMTggRiBGMgorLjM0NyhjaGFyICopMi44NDcgRiBGMChcKCkyLjg0NyBFIEYxKHN0cmluZylBIEYwIDIuODQ3KFwpYSlDIC4zNDcobmQgYW4pCistMi44NDcgRiBGMihpbnQpMi44NDcgRSBGMChpbmRlKTIuODQ3IEUoeCktLjE1IEUgLjIyNworKGludG8gdGhhdCBzdHJpbmcgXCgpMTA4IDIwNCBSIEYxKGkpQSBGMCAyLjcyNyhcKS4gSXQpQiAuMjI3Cisoc2hvdWxkIHJldHVybiBhIG5vbi16ZXJvIHYpMi43MjcgRiAuMjI3KGFsdWUgaWYgdGhlIGhpc3RvcnkgZSktLjI1IEYKKy4yMjcoeHBhbnNpb24gc3RhcnRpbmcgYXQpLS4xNSBGIEYxKHN0cmluZ1tpXSkyLjcyOCBFIEYwIC4yMjgKKyhzaG91bGQgbm90KTIuNzI4IEYgLjAxOShiZSBwZXJmb3JtZWQ7IHplcm8gaWYgdGhlIGUpMTA4IDIxNiBSIC4wMTkKKyh4cGFuc2lvbiBzaG91bGQgYmUgZG9uZS4pLS4xNSBGIC4wMTkKKyhJdCBpcyBpbnRlbmRlZCBmb3IgdXNlIGJ5IGFwcGxpY2F0aW9ucyBsaWspNS4wMTkgRihlKS0uMSBFIEYyKGJhc2gpCisyLjUxOSBFIEYwIC4wMTgodGhhdCB1c2UpMi41MTkgRih0aGUgaGlzdG9yeSBlKTEwOCAyMjggUQorKHhwYW5zaW9uIGNoYXJhY3RlciBmb3IgYWRkaXRpb25hbCBwdXJwb3Nlcy4pLS4xNSBFKEJ5IGRlZik1IEUKKyhhdWx0LCB0aGlzIHYpLS4xIEUoYXJpYWJsZSBpcyBzZXQgdG8pLS4yNSBFIEYyKE5VTEwpMi41IEUgRjAoLilBL0YzCisxMC45NS9UaW1lcy1Cb2xkQDAgU0YoRklMRVMpNzIgMjQ0LjggUSBGMSh+Ly5oaXN0b3J5KTEwOS42NjYgMjU2LjggUSBGMAorKERlZikxNDQgMjY4LjggUShhdWx0IFwyMTRsZW5hbWUgZm9yIHJlYWRpbmcgYW5kIHdyaXRpbmcgc2EpLS4xIEUgLS4xNQorKHZlKS0uMiBHIDIuNShkaCkuMTUgRyhpc3RvcnkpLTIuNSBFIEYzKFNFRSBBTFNPKTcyIDI4NS42IFEgRjEKKyhUaGUgR251IFJlYWRsaW5lIExpYnIpMTA4IDI5Ny42IFEoYXJ5KS0uMTUgRSBGMCAyLjUoLEIpQyhyaWFuIEYpLTIuNSBFCisob3ggYW5kIENoZXQgUmFtZSktLjE1IEUoeSktLjE1IEUgRjEoVGhlIEdudSBIaXN0b3J5IExpYnIpMTA4IDMwOS42IFEKKyhhcnkpLS4xNSBFIEYwIDIuNSgsQilDKHJpYW4gRiktMi41IEUob3ggYW5kIENoZXQgUmFtZSktLjE1IEUoeSktLjE1IEUKK0YxKGJhc2gpMTA4IDMyMS42IFEgRjAoXCgxXCkpQSBGMSAtLjM3KHJlKTEwOCAzMzMuNiBTKGFkbGluZSkuMzcgRSBGMAorKFwoM1wpKUEgRjMgLS41NDgoQVUpNzIgMzUwLjQgUyhUSE9SUykuNTQ4IEUgRjAoQnJpYW4gRikxMDggMzYyLjQgUQogKG94LCBGcmVlIFNvZnR3KS0uMTUgRShhcmUgRiktLjEgRShvdW5kYXRpb24pLS4xNSBFKGJmb3hAZ251Lm9yKTEwOAotMTcyLjggUShnKS0uMTggRShDaGV0IFJhbWUpMTA4IDE4OS42IFEgMS4zIC0uNjUoeSwgQyktLjE1IEgoYXNlIFcpLjY1IEUKKzM3NC40IFEoZyktLjE4IEUoQ2hldCBSYW1lKTEwOCAzOTEuMiBRIDEuMyAtLjY1KHksIEMpLS4xNSBIKGFzZSBXKS42NSBFCiAoZXN0ZXJuIFJlc2VydiktLjggRSAyLjUoZVUpLS4xNSBHKG5pKS0yLjUgRSAtLjE1KHZlKS0uMjUgRyhyc2l0eSkuMTUgRQotKGNoZXRAaW5zLkNXUikxMDggMjAxLjYgUShVLkVkdSktLjQgRSBGMSAtLjExKEJVKTcyIDIxOC40IFMgMi43MzgoR1IpLjExCi1HKEVQT1IpLTIuNzM4IEUoVFMpLS40MzggRSBGMCAuMTYoSWYgeW91IFwyMTRuZCBhIGIpMTA4IDIzMC40IFIgLjE2Ci0odWcgaW4gdGhlKS0uMiBGL0YzIDEwL1RpbWVzLUJvbGRAMCBTRihoaXN0b3J5KTIuNjYgRSBGMChsaWJyYXJ5KTIuNjYgRQotMi42NigseSktLjY1IEcgLjE2KG91IHNob3VsZCByZXBvcnQgaXQuKS0yLjY2IEYgLjE2Ci0oQnV0IFwyMTRyc3QsIHlvdSBzaG91bGQgbWFrKTUuMTYgRiAyLjY2KGVzKS0uMSBHIC4xNgotKHVyZSB0aGF0IGl0IHJlYWxseSBpcyktMi42NiBGIDIuNShhYikxMDggMjQyLjQgUwotKHVnLCBhbmQgdGhhdCBpdCBhcHBlYXJzIGluIHRoZSBsYXRlc3QgdiktMi43IEUoZXJzaW9uIG9mIHRoZSktLjE1IEUgRjMKLShoaXN0b3J5KTIuNSBFIEYwKGxpYnJhcnkgdGhhdCB5b3UgaGEpMi41IEUgLS4xNSh2ZSktLjIgRyguKS4xNSBFIC43MDQKLShPbmNlIHlvdSBoYSkxMDggMjU5LjIgUiAxLjAwNCAtLjE1KHZlIGQpLS4yIEggLjcwNChldGVybWluZWQgdGhhdCBhIGIpCi0uMTUgRiAuNzA0KHVnIGFjdHVhbGx5IGUpLS4yIEYgLjcwNCh4aXN0cywgbWFpbCBhIGIpLS4xNSBGIC43MDUKLSh1ZyByZXBvcnQgdG8pLS4yIEYgRjIgLS4yKGJ1KTMuMjA1IEcoZ1wyNTVyKS4yIEUoZWFkbGluZSktLjM3IEUgRjAoQClBCi1GMihnbnUub3IpQShnKS0uMzcgRSBGMCA1LjcwNSguSSlDIDMuMjA1KGZ5KS01LjcwNSBHKG91KS0zLjIwNSBFKGhhKTEwOAotMjcxLjIgUSAxLjgxIC0uMTUodmUgYSBcMjE0KS0uMiBIIDEuNTEKLSh4LCB5b3UgYXJlIHdlbGNvbWUgdG8gbWFpbCB0aGF0IGFzIHdlbGwhKS4xNSBGIDEuNTA5Ci0oU3VnZ2VzdGlvbnMgYW5kIGBwaGlsb3NvcGhpY2FsJyBiKTYuNTA5IEYgMS41MDkodWcgcmVwb3J0cyBtYXkgYmUpLS4yIEYKLShtYWlsZWQgdG8pMTA4IDI4My4yIFEgRjIgLS4yKGJ1KTIuNSBHKGctcikuMiBFKGVhZGxpbmUpLS4zNyBFIEYwKEApQSBGMgotKGdudS5vcilBKGcpLS4zNyBFIEYwKG9yIHBvc3RlZCB0byB0aGUgVXNlbmV0IG5lKTIuNSBFKHdzZ3JvdXApLS4yNSBFIEYzCi0oZ251LmJhc2guYikyLjUgRSh1ZyktLjIgRSBGMCguKUEoQ29tbWVudHMgYW5kIGIpMTA4IDMwMCBRCi0odWcgcmVwb3J0cyBjb25jZXJuaW5nIHRoaXMgbWFudWFsIHBhZ2Ugc2hvdWxkIGJlIGRpcmVjdGVkIHRvKS0uMiBFIEYyCisoY2hldEBpbnMuQ1dSKTEwOCA0MDMuMiBRKFUuRWR1KS0uNCBFIEYzIC0uMTEoQlUpNzIgNDIwIFMgMi43MzgoR1IpLjExIEcKKyhFUE9SKS0yLjczOCBFKFRTKS0uNDM4IEUgRjAgLjE2KElmIHlvdSBcMjE0bmQgYSBiKTEwOCA0MzIgUiAuMTYKKyh1ZyBpbiB0aGUpLS4yIEYgRjIoaGlzdG9yeSkyLjY2IEUgRjAobGlicmFyeSkyLjY2IEUgMi42NigseSktLjY1IEcgLjE2Cisob3Ugc2hvdWxkIHJlcG9ydCBpdC4pLTIuNjYgRiAuMTYoQnV0IFwyMTRyc3QsIHlvdSBzaG91bGQgbWFrKTUuMTYgRgorMi42NihlcyktLjEgRyAuMTYodXJlIHRoYXQgaXQgcmVhbGx5IGlzKS0yLjY2IEYgMi41KGFiKTEwOCA0NDQgUworKHVnLCBhbmQgdGhhdCBpdCBhcHBlYXJzIGluIHRoZSBsYXRlc3QgdiktMi43IEUoZXJzaW9uIG9mIHRoZSktLjE1IEUgRjIKKyhoaXN0b3J5KTIuNSBFIEYwKGxpYnJhcnkgdGhhdCB5b3UgaGEpMi41IEUgLS4xNSh2ZSktLjIgRyguKS4xNSBFIC43MDUKKyhPbmNlIHlvdSBoYSkxMDggNDYwLjggUiAxLjAwNSAtLjE1KHZlIGQpLS4yIEggLjcwNShldGVybWluZWQgdGhhdCBhIGIpCisuMTUgRiAuNzA0KHVnIGFjdHVhbGx5IGUpLS4yIEYgLjcwNCh4aXN0cywgbWFpbCBhIGIpLS4xNSBGIC43MDQKKyh1ZyByZXBvcnQgdG8pLS4yIEYgRjEgLS4yKGJ1KTMuMjA0IEcoZ1wyNTVyKS4yIEUoZWFkbGluZSktLjM3IEUgRjAoQClBCitGMShnbnUub3IpQShnKS0uMzcgRSBGMCA1LjcwNCguSSlDIDMuMjA0KGZ5KS01LjcwNCBHKG91KS0zLjIwNCBFKGhhKTEwOAorNDcyLjggUSAxLjgwOSAtLjE1KHZlIGEgXDIxNCktLjIgSCAxLjUwOQorKHgsIHlvdSBhcmUgd2VsY29tZSB0byBtYWlsIHRoYXQgYXMgd2VsbCEpLjE1IEYgMS41MQorKFN1Z2dlc3Rpb25zIGFuZCBgcGhpbG9zb3BoaWNhbCcgYik2LjUxIEYgMS41MSh1ZyByZXBvcnRzIG1heSBiZSktLjIgRgorKG1haWxlZCB0bykxMDggNDg0LjggUSBGMSAtLjIoYnUpMi41IEcoZy1yKS4yIEUoZWFkbGluZSktLjM3IEUgRjAoQClBIEYxCisoZ251Lm9yKUEoZyktLjM3IEUgRjAob3IgcG9zdGVkIHRvIHRoZSBVc2VuZXQgbmUpMi41IEUod3Nncm91cCktLjI1IEUgRjIKKyhnbnUuYmFzaC5iKTIuNSBFKHVnKS0uMiBFIEYwKC4pQShDb21tZW50cyBhbmQgYikxMDggNTAxLjYgUQorKHVnIHJlcG9ydHMgY29uY2VybmluZyB0aGlzIG1hbnVhbCBwYWdlIHNob3VsZCBiZSBkaXJlY3RlZCB0byktLjIgRSBGMQogLS4xNShjaCkyLjUgRyhldEBpbnMuQ1dSKS4xNSBFIC0uMjUoVS4pLS40IEcoRWR1KS4yNSBFIEYwKC4pLjI1IEUKLShHTlUgSGlzdG9yeSA0LjMpNzIgNzY4IFEoMjAwMiBKYW51YXJ5IDMxKTEzMS43OSBFKDcpMTk1Ljk1IEUgRVAKKyhHTlUgSGlzdG9yeSA1LjApNzIgNzY4IFEoMjAwMyBKdWx5IDMxKTEzOS4wMDUgRSg3KTIwMy4xNjUgRSAwIENnIEVQCiAlJVRyYWlsZXIKIGVuZAogJSVFT0YKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2RvYy9oc3RlY2gudGV4aSBiL3JlYWRsaW5lL2RvYy9oc3RlY2gudGV4aQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZmRkYTVmCi0tLSAvZGV2L251bGwKKysrIGIvcmVhZGxpbmUvZG9jL2hzdGVjaC50ZXhpCkBAIC0wLDAgKzEsNTczIEBACitAaWdub3JlCitUaGlzIGZpbGUgZG9jdW1lbnRzIHRoZSB1c2VyIGludGVyZmFjZSB0byB0aGUgR05VIEhpc3RvcnkgbGlicmFyeS4KKworQ29weXJpZ2h0IChDKSAxOTg4LTIwMDIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCitBdXRob3JlZCBieSBCcmlhbiBGb3ggYW5kIENoZXQgUmFtZXkuCisKK1Blcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBtYWtlIGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcyBvZiB0aGlzIG1hbnVhbAorcHJvdmlkZWQgdGhlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgYXJlIHByZXNlcnZlZCBvbgorYWxsIGNvcGllcy4KKworUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIHByb2Nlc3MgdGhpcyBmaWxlIHRocm91Z2ggVGV4IGFuZCBwcmludCB0aGUKK3Jlc3VsdHMsIHByb3ZpZGVkIHRoZSBwcmludGVkIGRvY3VtZW50IGNhcnJpZXMgY29weWluZyBwZXJtaXNzaW9uIG5vdGljZQoraWRlbnRpY2FsIHRvIHRoaXMgb25lIGV4Y2VwdCBmb3IgdGhlIHJlbW92YWwgb2YgdGhpcyBwYXJhZ3JhcGggKHRoaXMKK3BhcmFncmFwaCBub3QgYmVpbmcgcmVsZXZhbnQgdG8gdGhlIHByaW50ZWQgbWFudWFsKS4KKworUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgdGhpcworbWFudWFsIHVuZGVyIHRoZSBjb25kaXRpb25zIGZvciB2ZXJiYXRpbSBjb3B5aW5nLCBwcm92aWRlZCBhbHNvIHRoYXQgdGhlCitHTlUgQ29weXJpZ2h0IHN0YXRlbWVudCBpcyBhdmFpbGFibGUgdG8gdGhlIGRpc3RyaWJ1dGVlLCBhbmQgcHJvdmlkZWQgdGhhdAordGhlIGVudGlyZSByZXN1bHRpbmcgZGVyaXZlZCB3b3JrIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiBhCitwZXJtaXNzaW9uIG5vdGljZSBpZGVudGljYWwgdG8gdGhpcyBvbmUuCisKK1Blcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIHRyYW5zbGF0aW9ucyBvZiB0aGlzIG1hbnVhbAoraW50byBhbm90aGVyIGxhbmd1YWdlLCB1bmRlciB0aGUgYWJvdmUgY29uZGl0aW9ucyBmb3IgbW9kaWZpZWQgdmVyc2lvbnMuCitAZW5kIGlnbm9yZQorCitAbm9kZSBQcm9ncmFtbWluZyB3aXRoIEdOVSBIaXN0b3J5CitAY2hhcHRlciBQcm9ncmFtbWluZyB3aXRoIEdOVSBIaXN0b3J5CisKK1RoaXMgY2hhcHRlciBkZXNjcmliZXMgaG93IHRvIGludGVyZmFjZSBwcm9ncmFtcyB0aGF0IHlvdSB3cml0ZQord2l0aCB0aGUgQHNje2dudX0gSGlzdG9yeSBMaWJyYXJ5LgorSXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYSB0ZWNobmljYWwgZ3VpZGUuCitGb3IgaW5mb3JtYXRpb24gb24gdGhlIGludGVyYWN0aXZlIHVzZSBvZiBAc2N7Z251fSBIaXN0b3J5LCBAcHhyZWZ7VXNpbmcKK0hpc3RvcnkgSW50ZXJhY3RpdmVseX0uCisKK0BtZW51CisqIEludHJvZHVjdGlvbiB0byBIaXN0b3J5OjoJV2hhdCBpcyB0aGUgR05VIEhpc3RvcnkgbGlicmFyeSBmb3I/CisqIEhpc3RvcnkgU3RvcmFnZTo6CQlIb3cgaW5mb3JtYXRpb24gaXMgc3RvcmVkLgorKiBIaXN0b3J5IEZ1bmN0aW9uczo6CQlGdW5jdGlvbnMgdGhhdCB5b3UgY2FuIHVzZS4KKyogSGlzdG9yeSBWYXJpYWJsZXM6OgkJVmFyaWFibGVzIHRoYXQgY29udHJvbCBiZWhhdmlvdXIuCisqIEhpc3RvcnkgUHJvZ3JhbW1pbmcgRXhhbXBsZTo6CUV4YW1wbGUgb2YgdXNpbmcgdGhlIEdOVSBIaXN0b3J5IExpYnJhcnkuCitAZW5kIG1lbnUKKworQG5vZGUgSW50cm9kdWN0aW9uIHRvIEhpc3RvcnkKK0BzZWN0aW9uIEludHJvZHVjdGlvbiB0byBIaXN0b3J5CisKK01hbnkgcHJvZ3JhbXMgcmVhZCBpbnB1dCBmcm9tIHRoZSB1c2VyIGEgbGluZSBhdCBhIHRpbWUuICBUaGUgQHNje2dudX0KK0hpc3RvcnkgbGlicmFyeSBpcyBhYmxlIHRvIGtlZXAgdHJhY2sgb2YgdGhvc2UgbGluZXMsIGFzc29jaWF0ZSBhcmJpdHJhcnkKK2RhdGEgd2l0aCBlYWNoIGxpbmUsIGFuZCB1dGlsaXplIGluZm9ybWF0aW9uIGZyb20gcHJldmlvdXMgbGluZXMgaW4KK2NvbXBvc2luZyBuZXcgb25lcy4gCisKK1RoZSBwcm9ncmFtbWVyIHVzaW5nIHRoZSBIaXN0b3J5IGxpYnJhcnkgaGFzIGF2YWlsYWJsZSBmdW5jdGlvbnMKK2ZvciByZW1lbWJlcmluZyBsaW5lcyBvbiBhIGhpc3RvcnkgbGlzdCwgYXNzb2NpYXRpbmcgYXJiaXRyYXJ5IGRhdGEKK3dpdGggYSBsaW5lLCByZW1vdmluZyBsaW5lcyBmcm9tIHRoZSBsaXN0LCBzZWFyY2hpbmcgdGhyb3VnaCB0aGUgbGlzdAorZm9yIGEgbGluZSBjb250YWluaW5nIGFuIGFyYml0cmFyeSB0ZXh0IHN0cmluZywgYW5kIHJlZmVyZW5jaW5nIGFueSBsaW5lCitpbiB0aGUgbGlzdCBkaXJlY3RseS4gIEluIGFkZGl0aW9uLCBhIGhpc3RvcnkgQGRmbntleHBhbnNpb259IGZ1bmN0aW9uCitpcyBhdmFpbGFibGUgd2hpY2ggcHJvdmlkZXMgZm9yIGEgY29uc2lzdGVudCB1c2VyIGludGVyZmFjZSBhY3Jvc3MKK2RpZmZlcmVudCBwcm9ncmFtcy4KKworVGhlIHVzZXIgdXNpbmcgcHJvZ3JhbXMgd3JpdHRlbiB3aXRoIHRoZSBIaXN0b3J5IGxpYnJhcnkgaGFzIHRoZQorYmVuZWZpdCBvZiBhIGNvbnNpc3RlbnQgdXNlciBpbnRlcmZhY2Ugd2l0aCBhIHNldCBvZiB3ZWxsLWtub3duCitjb21tYW5kcyBmb3IgbWFuaXB1bGF0aW5nIHRoZSB0ZXh0IG9mIHByZXZpb3VzIGxpbmVzIGFuZCB1c2luZyB0aGF0IHRleHQKK2luIG5ldyBjb21tYW5kcy4gIFRoZSBiYXNpYyBoaXN0b3J5IG1hbmlwdWxhdGlvbiBjb21tYW5kcyBhcmUgc2ltaWxhciB0bwordGhlIGhpc3Rvcnkgc3Vic3RpdHV0aW9uIHByb3ZpZGVkIGJ5IEBjb2Rle2NzaH0uCisKK0lmIHRoZSBwcm9ncmFtbWVyIGRlc2lyZXMsIGhlIGNhbiB1c2UgdGhlIFJlYWRsaW5lIGxpYnJhcnksIHdoaWNoCitpbmNsdWRlcyBzb21lIGhpc3RvcnkgbWFuaXB1bGF0aW9uIGJ5IGRlZmF1bHQsIGFuZCBoYXMgdGhlIGFkZGVkCithZHZhbnRhZ2Ugb2YgY29tbWFuZCBsaW5lIGVkaXRpbmcuCisKK0JlZm9yZSBkZWNsYXJpbmcgYW55IGZ1bmN0aW9ucyB1c2luZyBhbnkgZnVuY3Rpb25hbGl0eSB0aGUgSGlzdG9yeQorbGlicmFyeSBwcm92aWRlcyBpbiBvdGhlciBjb2RlLCBhbiBhcHBsaWNhdGlvbiB3cml0ZXIgc2hvdWxkIGluY2x1ZGUKK3RoZSBmaWxlIEBjb2RlezxyZWFkbGluZS9oaXN0b3J5Lmg+fSBpbiBhbnkgZmlsZSB0aGF0IHVzZXMgdGhlCitIaXN0b3J5IGxpYnJhcnkncyBmZWF0dXJlcy4gIEl0IHN1cHBsaWVzIGV4dGVybiBkZWNsYXJhdGlvbnMgZm9yIGFsbAorb2YgdGhlIGxpYnJhcnkncyBwdWJsaWMgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMsIGFuZCBkZWNsYXJlcyBhbGwgb2YKK3RoZSBwdWJsaWMgZGF0YSBzdHJ1Y3R1cmVzLgorCitAbm9kZSBIaXN0b3J5IFN0b3JhZ2UKK0BzZWN0aW9uIEhpc3RvcnkgU3RvcmFnZQorCitUaGUgaGlzdG9yeSBsaXN0IGlzIGFuIGFycmF5IG9mIGhpc3RvcnkgZW50cmllcy4gIEEgaGlzdG9yeSBlbnRyeSBpcworZGVjbGFyZWQgYXMgZm9sbG93czoKKworQGV4YW1wbGUKK3R5cGVkZWYgdm9pZCAqaGlzdGRhdGFfdDsKKwordHlwZWRlZiBzdHJ1Y3QgX2hpc3RfZW50cnkgQHsKKyAgY2hhciAqbGluZTsKKyAgY2hhciAqdGltZXN0YW1wOworICBoaXN0ZGF0YV90IGRhdGE7CitAfSBISVNUX0VOVFJZOworQGVuZCBleGFtcGxlCisKK1RoZSBoaXN0b3J5IGxpc3QgaXRzZWxmIG1pZ2h0IHRoZXJlZm9yZSBiZSBkZWNsYXJlZCBhcworCitAZXhhbXBsZQorSElTVF9FTlRSWSAqKnRoZV9oaXN0b3J5X2xpc3Q7CitAZW5kIGV4YW1wbGUKKworVGhlIHN0YXRlIG9mIHRoZSBIaXN0b3J5IGxpYnJhcnkgaXMgZW5jYXBzdWxhdGVkIGludG8gYSBzaW5nbGUgc3RydWN0dXJlOgorCitAZXhhbXBsZQorLyoKKyAqIEEgc3RydWN0dXJlIHVzZWQgdG8gcGFzcyBhcm91bmQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGhpc3RvcnkuCisgKi8KK3R5cGVkZWYgc3RydWN0IF9oaXN0X3N0YXRlIEB7CisgIEhJU1RfRU5UUlkgKiplbnRyaWVzOyAvKiBQb2ludGVyIHRvIHRoZSBlbnRyaWVzIHRoZW1zZWx2ZXMuICovCisgIGludCBvZmZzZXQ7ICAgICAgICAgICAvKiBUaGUgbG9jYXRpb24gcG9pbnRlciB3aXRoaW4gdGhpcyBhcnJheS4gKi8KKyAgaW50IGxlbmd0aDsgICAgICAgICAgIC8qIE51bWJlciBvZiBlbGVtZW50cyB3aXRoaW4gdGhpcyBhcnJheS4gKi8KKyAgaW50IHNpemU7ICAgICAgICAgICAgIC8qIE51bWJlciBvZiBzbG90cyBhbGxvY2F0ZWQgdG8gdGhpcyBhcnJheS4gKi8KKyAgaW50IGZsYWdzOworQH0gSElTVE9SWV9TVEFURTsKK0BlbmQgZXhhbXBsZQorCitJZiB0aGUgZmxhZ3MgbWVtYmVyIGluY2x1ZGVzIEBjb2Rle0hTX1NUSUZMRUR9LCB0aGUgaGlzdG9yeSBoYXMgYmVlbgorc3RpZmxlZC4KKworQG5vZGUgSGlzdG9yeSBGdW5jdGlvbnMKK0BzZWN0aW9uIEhpc3RvcnkgRnVuY3Rpb25zCisKK1RoaXMgc2VjdGlvbiBkZXNjcmliZXMgdGhlIGNhbGxpbmcgc2VxdWVuY2UgZm9yIHRoZSB2YXJpb3VzIGZ1bmN0aW9ucworZXhwb3J0ZWQgYnkgdGhlIEBzY3tnbnV9IEhpc3RvcnkgbGlicmFyeS4KKworQG1lbnUKKyogSW5pdGlhbGl6aW5nIEhpc3RvcnkgYW5kIFN0YXRlIE1hbmFnZW1lbnQ6OglGdW5jdGlvbnMgdG8gY2FsbCB3aGVuIHlvdQorCQkJCQkJd2FudCB0byB1c2UgaGlzdG9yeSBpbiBhCisJCQkJCQlwcm9ncmFtLgorKiBIaXN0b3J5IExpc3QgTWFuYWdlbWVudDo6CQlGdW5jdGlvbnMgdXNlZCB0byBtYW5hZ2UgdGhlIGxpc3QKKwkJCQkJb2YgaGlzdG9yeSBlbnRyaWVzLgorKiBJbmZvcm1hdGlvbiBBYm91dCB0aGUgSGlzdG9yeSBMaXN0OjoJRnVuY3Rpb25zIHJldHVybmluZyBpbmZvcm1hdGlvbiBhYm91dAorCQkJCQl0aGUgaGlzdG9yeSBsaXN0LgorKiBNb3ZpbmcgQXJvdW5kIHRoZSBIaXN0b3J5IExpc3Q6OglGdW5jdGlvbnMgdXNlZCB0byBjaGFuZ2UgdGhlIHBvc2l0aW9uCisJCQkJCWluIHRoZSBoaXN0b3J5IGxpc3QuCisqIFNlYXJjaGluZyB0aGUgSGlzdG9yeSBMaXN0OjoJCUZ1bmN0aW9ucyB0byBzZWFyY2ggdGhlIGhpc3RvcnkgbGlzdAorCQkJCQlmb3IgZW50cmllcyBjb250YWluaW5nIGEgc3RyaW5nLgorKiBNYW5hZ2luZyB0aGUgSGlzdG9yeSBGaWxlOjoJCUZ1bmN0aW9ucyB0aGF0IHJlYWQgYW5kIHdyaXRlIGEgZmlsZQorCQkJCQljb250YWluaW5nIHRoZSBoaXN0b3J5IGxpc3QuCisqIEhpc3RvcnkgRXhwYW5zaW9uOjoJCQlGdW5jdGlvbnMgdG8gcGVyZm9ybSBjc2gtbGlrZSBoaXN0b3J5CisJCQkJCWV4cGFuc2lvbi4KK0BlbmQgbWVudQorCitAbm9kZSBJbml0aWFsaXppbmcgSGlzdG9yeSBhbmQgU3RhdGUgTWFuYWdlbWVudAorQHN1YnNlY3Rpb24gSW5pdGlhbGl6aW5nIEhpc3RvcnkgYW5kIFN0YXRlIE1hbmFnZW1lbnQKKworVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyBmdW5jdGlvbnMgdXNlZCB0byBpbml0aWFsaXplIGFuZCBtYW5hZ2UKK3RoZSBzdGF0ZSBvZiB0aGUgSGlzdG9yeSBsaWJyYXJ5IHdoZW4geW91IHdhbnQgdG8gdXNlIHRoZSBoaXN0b3J5CitmdW5jdGlvbnMgaW4geW91ciBwcm9ncmFtLgorCitAZGVmdHlwZWZ1biB2b2lkIHVzaW5nX2hpc3RvcnkgKHZvaWQpCitCZWdpbiBhIHNlc3Npb24gaW4gd2hpY2ggdGhlIGhpc3RvcnkgZnVuY3Rpb25zIG1pZ2h0IGJlIHVzZWQuICBUaGlzCitpbml0aWFsaXplcyB0aGUgaW50ZXJhY3RpdmUgdmFyaWFibGVzLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIHtISVNUT1JZX1NUQVRFICp9IGhpc3RvcnlfZ2V0X2hpc3Rvcnlfc3RhdGUgKHZvaWQpCitSZXR1cm4gYSBzdHJ1Y3R1cmUgZGVzY3JpYmluZyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgaW5wdXQgaGlzdG9yeS4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biB2b2lkIGhpc3Rvcnlfc2V0X2hpc3Rvcnlfc3RhdGUgKEhJU1RPUllfU1RBVEUgKnN0YXRlKQorU2V0IHRoZSBzdGF0ZSBvZiB0aGUgaGlzdG9yeSBsaXN0IGFjY29yZGluZyB0byBAdmFye3N0YXRlfS4KK0BlbmQgZGVmdHlwZWZ1bgorCitAbm9kZSBIaXN0b3J5IExpc3QgTWFuYWdlbWVudAorQHN1YnNlY3Rpb24gSGlzdG9yeSBMaXN0IE1hbmFnZW1lbnQKKworVGhlc2UgZnVuY3Rpb25zIG1hbmFnZSBpbmRpdmlkdWFsIGVudHJpZXMgb24gdGhlIGhpc3RvcnkgbGlzdCwgb3Igc2V0CitwYXJhbWV0ZXJzIG1hbmFnaW5nIHRoZSBsaXN0IGl0c2VsZi4KKworQGRlZnR5cGVmdW4gdm9pZCBhZGRfaGlzdG9yeSAoY29uc3QgY2hhciAqc3RyaW5nKQorUGxhY2UgQHZhcntzdHJpbmd9IGF0IHRoZSBlbmQgb2YgdGhlIGhpc3RvcnkgbGlzdC4gIFRoZSBhc3NvY2lhdGVkIGRhdGEKK2ZpZWxkIChpZiBhbnkpIGlzIHNldCB0byBAY29kZXtOVUxMfS4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biB2b2lkIGFkZF9oaXN0b3J5X3RpbWUgKGNvbnN0IGNoYXIgKnN0cmluZykKK0NoYW5nZSB0aGUgdGltZSBzdGFtcCBhc3NvY2lhdGVkIHdpdGggdGhlIG1vc3QgcmVjZW50IGhpc3RvcnkgZW50cnkgdG8KK0B2YXJ7c3RyaW5nfS4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biB7SElTVF9FTlRSWSAqfSByZW1vdmVfaGlzdG9yeSAoaW50IHdoaWNoKQorUmVtb3ZlIGhpc3RvcnkgZW50cnkgYXQgb2Zmc2V0IEB2YXJ7d2hpY2h9IGZyb20gdGhlIGhpc3RvcnkuICBUaGUKK3JlbW92ZWQgZWxlbWVudCBpcyByZXR1cm5lZCBzbyB5b3UgY2FuIGZyZWUgdGhlIGxpbmUsIGRhdGEsCithbmQgY29udGFpbmluZyBzdHJ1Y3R1cmUuCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4ge2hpc3RkYXRhX3R9IGZyZWVfaGlzdG9yeV9lbnRyeSAoSElTVF9FTlRSWSAqaGlzdGVudCkKK0ZyZWUgdGhlIGhpc3RvcnkgZW50cnkgQHZhcntoaXN0ZW50fSBhbmQgYW55IGhpc3RvcnkgbGlicmFyeSBwcml2YXRlCitkYXRhIGFzc29jaWF0ZWQgd2l0aCBpdC4gIFJldHVybnMgdGhlIGFwcGxpY2F0aW9uLXNwZWNpZmljIGRhdGEKK3NvIHRoZSBjYWxsZXIgY2FuIGRpc3Bvc2Ugb2YgaXQuCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4ge0hJU1RfRU5UUlkgKn0gcmVwbGFjZV9oaXN0b3J5X2VudHJ5IChpbnQgd2hpY2gsIGNvbnN0IGNoYXIgKmxpbmUsIGhpc3RkYXRhX3QgZGF0YSkKK01ha2UgdGhlIGhpc3RvcnkgZW50cnkgYXQgb2Zmc2V0IEB2YXJ7d2hpY2h9IGhhdmUgQHZhcntsaW5lfSBhbmQgQHZhcntkYXRhfS4KK1RoaXMgcmV0dXJucyB0aGUgb2xkIGVudHJ5IHNvIHRoZSBjYWxsZXIgY2FuIGRpc3Bvc2Ugb2YgYW55CithcHBsaWNhdGlvbi1zcGVjaWZpYyBkYXRhLiAgSW4gdGhlIGNhc2UKK29mIGFuIGludmFsaWQgQHZhcnt3aGljaH0sIGEgQGNvZGV7TlVMTH0gcG9pbnRlciBpcyByZXR1cm5lZC4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biB2b2lkIGNsZWFyX2hpc3RvcnkgKHZvaWQpCitDbGVhciB0aGUgaGlzdG9yeSBsaXN0IGJ5IGRlbGV0aW5nIGFsbCB0aGUgZW50cmllcy4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biB2b2lkIHN0aWZsZV9oaXN0b3J5IChpbnQgbWF4KQorU3RpZmxlIHRoZSBoaXN0b3J5IGxpc3QsIHJlbWVtYmVyaW5nIG9ubHkgdGhlIGxhc3QgQHZhcnttYXh9IGVudHJpZXMuCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4gaW50IHVuc3RpZmxlX2hpc3RvcnkgKHZvaWQpCitTdG9wIHN0aWZsaW5nIHRoZSBoaXN0b3J5LiAgVGhpcyByZXR1cm5zIHRoZSBwcmV2aW91c2x5LXNldAorbWF4aW11bSBudW1iZXIgb2YgaGlzdG9yeSBlbnRyaWVzIChhcyBzZXQgYnkgQGNvZGV7c3RpZmxlX2hpc3RvcnkoKX0pLgorVGhlIHZhbHVlIGlzIHBvc2l0aXZlIGlmIHRoZSBoaXN0b3J5IHdhcworc3RpZmxlZCwgbmVnYXRpdmUgaWYgaXQgd2Fzbid0LgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBoaXN0b3J5X2lzX3N0aWZsZWQgKHZvaWQpCitSZXR1cm5zIG5vbi16ZXJvIGlmIHRoZSBoaXN0b3J5IGlzIHN0aWZsZWQsIHplcm8gaWYgaXQgaXMgbm90LgorQGVuZCBkZWZ0eXBlZnVuCisKK0Bub2RlIEluZm9ybWF0aW9uIEFib3V0IHRoZSBIaXN0b3J5IExpc3QKK0BzdWJzZWN0aW9uIEluZm9ybWF0aW9uIEFib3V0IHRoZSBIaXN0b3J5IExpc3QKKworVGhlc2UgZnVuY3Rpb25zIHJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZW50aXJlIGhpc3RvcnkgbGlzdCBvcgoraW5kaXZpZHVhbCBsaXN0IGVudHJpZXMuCisKK0BkZWZ0eXBlZnVuIHtISVNUX0VOVFJZICoqfSBoaXN0b3J5X2xpc3QgKHZvaWQpCitSZXR1cm4gYSBAY29kZXtOVUxMfSB0ZXJtaW5hdGVkIGFycmF5IG9mIEBjb2Rle0hJU1RfRU5UUlkgKn0gd2hpY2ggaXMgdGhlCitjdXJyZW50IGlucHV0IGhpc3RvcnkuICBFbGVtZW50IDAgb2YgdGhpcyBsaXN0IGlzIHRoZSBiZWdpbm5pbmcgb2YgdGltZS4KK0lmIHRoZXJlIGlzIG5vIGhpc3RvcnksIHJldHVybiBAY29kZXtOVUxMfS4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biBpbnQgd2hlcmVfaGlzdG9yeSAodm9pZCkKK1JldHVybnMgdGhlIG9mZnNldCBvZiB0aGUgY3VycmVudCBoaXN0b3J5IGVsZW1lbnQuCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4ge0hJU1RfRU5UUlkgKn0gY3VycmVudF9oaXN0b3J5ICh2b2lkKQorUmV0dXJuIHRoZSBoaXN0b3J5IGVudHJ5IGF0IHRoZSBjdXJyZW50IHBvc2l0aW9uLCBhcyBkZXRlcm1pbmVkIGJ5CitAY29kZXt3aGVyZV9oaXN0b3J5KCl9LiAgSWYgdGhlcmUgaXMgbm8gZW50cnkgdGhlcmUsIHJldHVybiBhIEBjb2Rle05VTEx9Citwb2ludGVyLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIHtISVNUX0VOVFJZICp9IGhpc3RvcnlfZ2V0IChpbnQgb2Zmc2V0KQorUmV0dXJuIHRoZSBoaXN0b3J5IGVudHJ5IGF0IHBvc2l0aW9uIEB2YXJ7b2Zmc2V0fSwgc3RhcnRpbmcgZnJvbQorQGNvZGV7aGlzdG9yeV9iYXNlfSAoQHB4cmVme0hpc3RvcnkgVmFyaWFibGVzfSkuCitJZiB0aGVyZSBpcyBubyBlbnRyeSB0aGVyZSwgb3IgaWYgQHZhcntvZmZzZXR9CitpcyBncmVhdGVyIHRoYW4gdGhlIGhpc3RvcnkgbGVuZ3RoLCByZXR1cm4gYSBAY29kZXtOVUxMfSBwb2ludGVyLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIHRpbWVfdCBoaXN0b3J5X2dldF90aW1lIChISVNUX0VOVFJZICplbnRyeSkKK1JldHVybiB0aGUgdGltZSBzdGFtcCBhc3NvY2lhdGVkIHdpdGggdGhlIGhpc3RvcnkgZW50cnkgQHZhcntlbnRyeX0uCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4gaW50IGhpc3RvcnlfdG90YWxfYnl0ZXMgKHZvaWQpCitSZXR1cm4gdGhlIG51bWJlciBvZiBieXRlcyB0aGF0IHRoZSBwcmltYXJ5IGhpc3RvcnkgZW50cmllcyBhcmUgdXNpbmcuCitUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHN1bSBvZiB0aGUgbGVuZ3RocyBvZiBhbGwgdGhlIGxpbmVzIGluIHRoZQoraGlzdG9yeS4KK0BlbmQgZGVmdHlwZWZ1bgorCitAbm9kZSBNb3ZpbmcgQXJvdW5kIHRoZSBIaXN0b3J5IExpc3QKK0BzdWJzZWN0aW9uIE1vdmluZyBBcm91bmQgdGhlIEhpc3RvcnkgTGlzdAorCitUaGVzZSBmdW5jdGlvbnMgYWxsb3cgdGhlIGN1cnJlbnQgaW5kZXggaW50byB0aGUgaGlzdG9yeSBsaXN0IHRvIGJlCitzZXQgb3IgY2hhbmdlZC4KKworQGRlZnR5cGVmdW4gaW50IGhpc3Rvcnlfc2V0X3BvcyAoaW50IHBvcykKK1NldCB0aGUgY3VycmVudCBoaXN0b3J5IG9mZnNldCB0byBAdmFye3Bvc30sIGFuIGFic29sdXRlIGluZGV4CitpbnRvIHRoZSBsaXN0LgorUmV0dXJucyAxIG9uIHN1Y2Nlc3MsIDAgaWYgQHZhcntwb3N9IGlzIGxlc3MgdGhhbiB6ZXJvIG9yIGdyZWF0ZXIKK3RoYW4gdGhlIG51bWJlciBvZiBoaXN0b3J5IGVudHJpZXMuCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4ge0hJU1RfRU5UUlkgKn0gcHJldmlvdXNfaGlzdG9yeSAodm9pZCkKK0JhY2sgdXAgdGhlIGN1cnJlbnQgaGlzdG9yeSBvZmZzZXQgdG8gdGhlIHByZXZpb3VzIGhpc3RvcnkgZW50cnksIGFuZAorcmV0dXJuIGEgcG9pbnRlciB0byB0aGF0IGVudHJ5LiAgSWYgdGhlcmUgaXMgbm8gcHJldmlvdXMgZW50cnksIHJldHVybgorYSBAY29kZXtOVUxMfSBwb2ludGVyLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIHtISVNUX0VOVFJZICp9IG5leHRfaGlzdG9yeSAodm9pZCkKK01vdmUgdGhlIGN1cnJlbnQgaGlzdG9yeSBvZmZzZXQgZm9yd2FyZCB0byB0aGUgbmV4dCBoaXN0b3J5IGVudHJ5LCBhbmQKK3JldHVybiB0aGUgYSBwb2ludGVyIHRvIHRoYXQgZW50cnkuICBJZiB0aGVyZSBpcyBubyBuZXh0IGVudHJ5LCByZXR1cm4KK2EgQGNvZGV7TlVMTH0gcG9pbnRlci4KK0BlbmQgZGVmdHlwZWZ1bgorCitAbm9kZSBTZWFyY2hpbmcgdGhlIEhpc3RvcnkgTGlzdAorQHN1YnNlY3Rpb24gU2VhcmNoaW5nIHRoZSBIaXN0b3J5IExpc3QKK0BjaW5kZXggSGlzdG9yeSBTZWFyY2hpbmcKKworVGhlc2UgZnVuY3Rpb25zIGFsbG93IHNlYXJjaGluZyBvZiB0aGUgaGlzdG9yeSBsaXN0IGZvciBlbnRyaWVzIGNvbnRhaW5pbmcKK2Egc3BlY2lmaWMgc3RyaW5nLiAgU2VhcmNoaW5nIG1heSBiZSBwZXJmb3JtZWQgYm90aCBmb3J3YXJkIGFuZCBiYWNrd2FyZAorZnJvbSB0aGUgY3VycmVudCBoaXN0b3J5IHBvc2l0aW9uLiAgVGhlIHNlYXJjaCBtYXkgYmUgQGRmbnthbmNob3JlZH0sCittZWFuaW5nIHRoYXQgdGhlIHN0cmluZyBtdXN0IG1hdGNoIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGhpc3RvcnkgZW50cnkuCitAY2luZGV4IGFuY2hvcmVkIHNlYXJjaAorCitAZGVmdHlwZWZ1biBpbnQgaGlzdG9yeV9zZWFyY2ggKGNvbnN0IGNoYXIgKnN0cmluZywgaW50IGRpcmVjdGlvbikKK1NlYXJjaCB0aGUgaGlzdG9yeSBmb3IgQHZhcntzdHJpbmd9LCBzdGFydGluZyBhdCB0aGUgY3VycmVudCBoaXN0b3J5IG9mZnNldC4KK0lmIEB2YXJ7ZGlyZWN0aW9ufSBpcyBsZXNzIHRoYW4gMCwgdGhlbiB0aGUgc2VhcmNoIGlzIHRocm91Z2gKK3ByZXZpb3VzIGVudHJpZXMsIG90aGVyd2lzZSB0aHJvdWdoIHN1YnNlcXVlbnQgZW50cmllcy4KK0lmIEB2YXJ7c3RyaW5nfSBpcyBmb3VuZCwgdGhlbgordGhlIGN1cnJlbnQgaGlzdG9yeSBpbmRleCBpcyBzZXQgdG8gdGhhdCBoaXN0b3J5IGVudHJ5LCBhbmQgdGhlIHZhbHVlCityZXR1cm5lZCBpcyB0aGUgb2Zmc2V0IGluIHRoZSBsaW5lIG9mIHRoZSBlbnRyeSB3aGVyZQorQHZhcntzdHJpbmd9IHdhcyBmb3VuZC4gIE90aGVyd2lzZSwgbm90aGluZyBpcyBjaGFuZ2VkLCBhbmQgYSAtMSBpcworcmV0dXJuZWQuCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4gaW50IGhpc3Rvcnlfc2VhcmNoX3ByZWZpeCAoY29uc3QgY2hhciAqc3RyaW5nLCBpbnQgZGlyZWN0aW9uKQorU2VhcmNoIHRoZSBoaXN0b3J5IGZvciBAdmFye3N0cmluZ30sIHN0YXJ0aW5nIGF0IHRoZSBjdXJyZW50IGhpc3RvcnkKK29mZnNldC4gIFRoZSBzZWFyY2ggaXMgYW5jaG9yZWQ6IG1hdGNoaW5nIGxpbmVzIG11c3QgYmVnaW4gd2l0aAorQHZhcntzdHJpbmd9LiAgSWYgQHZhcntkaXJlY3Rpb259IGlzIGxlc3MgdGhhbiAwLCB0aGVuIHRoZSBzZWFyY2ggaXMKK3Rocm91Z2ggcHJldmlvdXMgZW50cmllcywgb3RoZXJ3aXNlIHRocm91Z2ggc3Vic2VxdWVudCBlbnRyaWVzLgorSWYgQHZhcntzdHJpbmd9IGlzIGZvdW5kLCB0aGVuIHRoZQorY3VycmVudCBoaXN0b3J5IGluZGV4IGlzIHNldCB0byB0aGF0IGVudHJ5LCBhbmQgdGhlIHJldHVybiB2YWx1ZSBpcyAwLiAKK090aGVyd2lzZSwgbm90aGluZyBpcyBjaGFuZ2VkLCBhbmQgYSAtMSBpcyByZXR1cm5lZC4gCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4gaW50IGhpc3Rvcnlfc2VhcmNoX3BvcyAoY29uc3QgY2hhciAqc3RyaW5nLCBpbnQgZGlyZWN0aW9uLCBpbnQgcG9zKQorU2VhcmNoIGZvciBAdmFye3N0cmluZ30gaW4gdGhlIGhpc3RvcnkgbGlzdCwgc3RhcnRpbmcgYXQgQHZhcntwb3N9LCBhbgorYWJzb2x1dGUgaW5kZXggaW50byB0aGUgbGlzdC4gIElmIEB2YXJ7ZGlyZWN0aW9ufSBpcyBuZWdhdGl2ZSwgdGhlIHNlYXJjaAorcHJvY2VlZHMgYmFja3dhcmQgZnJvbSBAdmFye3Bvc30sIG90aGVyd2lzZSBmb3J3YXJkLiAgUmV0dXJucyB0aGUgYWJzb2x1dGUKK2luZGV4IG9mIHRoZSBoaXN0b3J5IGVsZW1lbnQgd2hlcmUgQHZhcntzdHJpbmd9IHdhcyBmb3VuZCwgb3IgLTEgb3RoZXJ3aXNlLgorQGVuZCBkZWZ0eXBlZnVuCisKK0Bub2RlIE1hbmFnaW5nIHRoZSBIaXN0b3J5IEZpbGUKK0BzdWJzZWN0aW9uIE1hbmFnaW5nIHRoZSBIaXN0b3J5IEZpbGUKKworVGhlIEhpc3RvcnkgbGlicmFyeSBjYW4gcmVhZCB0aGUgaGlzdG9yeSBmcm9tIGFuZCB3cml0ZSBpdCB0byBhIGZpbGUuCitUaGlzIHNlY3Rpb24gZG9jdW1lbnRzIHRoZSBmdW5jdGlvbnMgZm9yIG1hbmFnaW5nIGEgaGlzdG9yeSBmaWxlLgorCitAZGVmdHlwZWZ1biBpbnQgcmVhZF9oaXN0b3J5IChjb25zdCBjaGFyICpmaWxlbmFtZSkKK0FkZCB0aGUgY29udGVudHMgb2YgQHZhcntmaWxlbmFtZX0gdG8gdGhlIGhpc3RvcnkgbGlzdCwgYSBsaW5lIGF0IGEgdGltZS4KK0lmIEB2YXJ7ZmlsZW5hbWV9IGlzIEBjb2Rle05VTEx9LCB0aGVuIHJlYWQgZnJvbSBAZmlsZXt+Ly5oaXN0b3J5fS4KK1JldHVybnMgMCBpZiBzdWNjZXNzZnVsLCBvciBAY29kZXtlcnJub30gaWYgbm90LgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCByZWFkX2hpc3RvcnlfcmFuZ2UgKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBpbnQgZnJvbSwgaW50IHRvKQorUmVhZCBhIHJhbmdlIG9mIGxpbmVzIGZyb20gQHZhcntmaWxlbmFtZX0sIGFkZGluZyB0aGVtIHRvIHRoZSBoaXN0b3J5IGxpc3QuCitTdGFydCByZWFkaW5nIGF0IGxpbmUgQHZhcntmcm9tfSBhbmQgZW5kIGF0IEB2YXJ7dG99LgorSWYgQHZhcntmcm9tfSBpcyB6ZXJvLCBzdGFydCBhdCB0aGUgYmVnaW5uaW5nLiAgSWYgQHZhcnt0b30gaXMgbGVzcyB0aGFuCitAdmFye2Zyb219LCB0aGVuIHJlYWQgdW50aWwgdGhlIGVuZCBvZiB0aGUgZmlsZS4gIElmIEB2YXJ7ZmlsZW5hbWV9IGlzCitAY29kZXtOVUxMfSwgdGhlbiByZWFkIGZyb20gQGZpbGV7fi8uaGlzdG9yeX0uICBSZXR1cm5zIDAgaWYgc3VjY2Vzc2Z1bCwKK29yIEBjb2Rle2Vycm5vfSBpZiBub3QuCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4gaW50IHdyaXRlX2hpc3RvcnkgKGNvbnN0IGNoYXIgKmZpbGVuYW1lKQorV3JpdGUgdGhlIGN1cnJlbnQgaGlzdG9yeSB0byBAdmFye2ZpbGVuYW1lfSwgb3ZlcndyaXRpbmcgQHZhcntmaWxlbmFtZX0KK2lmIG5lY2Vzc2FyeS4KK0lmIEB2YXJ7ZmlsZW5hbWV9IGlzIEBjb2Rle05VTEx9LCB0aGVuIHdyaXRlIHRoZSBoaXN0b3J5IGxpc3QgdG8KK0BmaWxle34vLmhpc3Rvcnl9LgorUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIG9yIEBjb2Rle2Vycm5vfSBvbiBhIHJlYWQgb3Igd3JpdGUgZXJyb3IuCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4gaW50IGFwcGVuZF9oaXN0b3J5IChpbnQgbmVsZW1lbnRzLCBjb25zdCBjaGFyICpmaWxlbmFtZSkKK0FwcGVuZCB0aGUgbGFzdCBAdmFye25lbGVtZW50c30gb2YgdGhlIGhpc3RvcnkgbGlzdCB0byBAdmFye2ZpbGVuYW1lfS4KK0lmIEB2YXJ7ZmlsZW5hbWV9IGlzIEBjb2Rle05VTEx9LCB0aGVuIGFwcGVuZCB0byBAZmlsZXt+Ly5oaXN0b3J5fS4KK1JldHVybnMgMCBvbiBzdWNjZXNzLCBvciBAY29kZXtlcnJub30gb24gYSByZWFkIG9yIHdyaXRlIGVycm9yLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBoaXN0b3J5X3RydW5jYXRlX2ZpbGUgKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBpbnQgbmxpbmVzKQorVHJ1bmNhdGUgdGhlIGhpc3RvcnkgZmlsZSBAdmFye2ZpbGVuYW1lfSwgbGVhdmluZyBvbmx5IHRoZSBsYXN0CitAdmFye25saW5lc30gbGluZXMuCitJZiBAdmFye2ZpbGVuYW1lfSBpcyBAY29kZXtOVUxMfSwgdGhlbiBAZmlsZXt+Ly5oaXN0b3J5fSBpcyB0cnVuY2F0ZWQuCitSZXR1cm5zIDAgb24gc3VjY2Vzcywgb3IgQGNvZGV7ZXJybm99IG9uIGZhaWx1cmUuCitAZW5kIGRlZnR5cGVmdW4KKworQG5vZGUgSGlzdG9yeSBFeHBhbnNpb24KK0BzdWJzZWN0aW9uIEhpc3RvcnkgRXhwYW5zaW9uCisKK1RoZXNlIGZ1bmN0aW9ucyBpbXBsZW1lbnQgaGlzdG9yeSBleHBhbnNpb24uCisKK0BkZWZ0eXBlZnVuIGludCBoaXN0b3J5X2V4cGFuZCAoY2hhciAqc3RyaW5nLCBjaGFyICoqb3V0cHV0KQorRXhwYW5kIEB2YXJ7c3RyaW5nfSwgcGxhY2luZyB0aGUgcmVzdWx0IGludG8gQHZhcntvdXRwdXR9LCBhIHBvaW50ZXIKK3RvIGEgc3RyaW5nIChAcHhyZWZ7SGlzdG9yeSBJbnRlcmFjdGlvbn0pLiAgUmV0dXJuczoKK0B0YWJsZSBAY29kZQorQGl0ZW0gMAorSWYgbm8gZXhwYW5zaW9ucyB0b29rIHBsYWNlIChvciwgaWYgdGhlIG9ubHkgY2hhbmdlIGluCit0aGUgdGV4dCB3YXMgdGhlIHJlbW92YWwgb2YgZXNjYXBlIGNoYXJhY3RlcnMgcHJlY2VkaW5nIHRoZSBoaXN0b3J5IGV4cGFuc2lvbgorY2hhcmFjdGVyKTsKK0BpdGVtIDEKK2lmIGV4cGFuc2lvbnMgZGlkIHRha2UgcGxhY2U7CitAaXRlbSAtMQoraWYgdGhlcmUgd2FzIGFuIGVycm9yIGluIGV4cGFuc2lvbjsKK0BpdGVtIDIKK2lmIHRoZSByZXR1cm5lZCBsaW5lIHNob3VsZCBiZSBkaXNwbGF5ZWQsIGJ1dCBub3QgZXhlY3V0ZWQsCithcyB3aXRoIHRoZSBAY29kZXs6cH0gbW9kaWZpZXIgKEBweHJlZntNb2RpZmllcnN9KS4KK0BlbmQgdGFibGUKKworSWYgYW4gZXJyb3Igb2N1cnJlZCBpbiBleHBhbnNpb24sIHRoZW4gQHZhcntvdXRwdXR9IGNvbnRhaW5zIGEgZGVzY3JpcHRpdmUKK2Vycm9yIG1lc3NhZ2UuCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4ge2NoYXIgKn0gZ2V0X2hpc3RvcnlfZXZlbnQgKGNvbnN0IGNoYXIgKnN0cmluZywgaW50ICpjaW5kZXgsIGludCBxY2hhcikKK1JldHVybnMgdGhlIHRleHQgb2YgdGhlIGhpc3RvcnkgZXZlbnQgYmVnaW5uaW5nIGF0IEB2YXJ7c3RyaW5nfSArCitAdmFyeypjaW5kZXh9LiAgQHZhcnsqY2luZGV4fSBpcyBtb2RpZmllZCB0byBwb2ludCB0byBhZnRlciB0aGUgZXZlbnQKK3NwZWNpZmllci4gIEF0IGZ1bmN0aW9uIGVudHJ5LCBAdmFye2NpbmRleH0gcG9pbnRzIHRvIHRoZSBpbmRleCBpbnRvCitAdmFye3N0cmluZ30gd2hlcmUgdGhlIGhpc3RvcnkgZXZlbnQgc3BlY2lmaWNhdGlvbiBiZWdpbnMuICBAdmFye3FjaGFyfQoraXMgYSBjaGFyYWN0ZXIgdGhhdCBpcyBhbGxvd2VkIHRvIGVuZCB0aGUgZXZlbnQgc3BlY2lmaWNhdGlvbiBpbiBhZGRpdGlvbgordG8gdGhlIGBgbm9ybWFsJycgdGVybWluYXRpbmcgY2hhcmFjdGVycy4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biB7Y2hhciAqKn0gaGlzdG9yeV90b2tlbml6ZSAoY29uc3QgY2hhciAqc3RyaW5nKQorUmV0dXJuIGFuIGFycmF5IG9mIHRva2VucyBwYXJzZWQgb3V0IG9mIEB2YXJ7c3RyaW5nfSwgbXVjaCBhcyB0aGUKK3NoZWxsIG1pZ2h0LiAgVGhlIHRva2VucyBhcmUgc3BsaXQgb24gdGhlIGNoYXJhY3RlcnMgaW4gdGhlCitAdmFye2hpc3Rvcnlfd29yZF9kZWxpbWl0ZXJzfSB2YXJpYWJsZSwKK2FuZCBzaGVsbCBxdW90aW5nIGNvbnZlbnRpb25zIGFyZSBvYmV5ZWQuCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4ge2NoYXIgKn0gaGlzdG9yeV9hcmdfZXh0cmFjdCAoaW50IGZpcnN0LCBpbnQgbGFzdCwgY29uc3QgY2hhciAqc3RyaW5nKQorRXh0cmFjdCBhIHN0cmluZyBzZWdtZW50IGNvbnNpc3Rpbmcgb2YgdGhlIEB2YXJ7Zmlyc3R9IHRocm91Z2ggQHZhcntsYXN0fQorYXJndW1lbnRzIHByZXNlbnQgaW4gQHZhcntzdHJpbmd9LiAgQXJndW1lbnRzIGFyZSBzcGxpdCB1c2luZworQGNvZGV7aGlzdG9yeV90b2tlbml6ZX0uCitAZW5kIGRlZnR5cGVmdW4KKworQG5vZGUgSGlzdG9yeSBWYXJpYWJsZXMKK0BzZWN0aW9uIEhpc3RvcnkgVmFyaWFibGVzCisKK1RoaXMgc2VjdGlvbiBkZXNjcmliZXMgdGhlIGV4dGVybmFsbHktdmlzaWJsZSB2YXJpYWJsZXMgZXhwb3J0ZWQgYnkKK3RoZSBAc2N7Z251fSBIaXN0b3J5IExpYnJhcnkuCisKK0BkZWZ0eXBldmFyIGludCBoaXN0b3J5X2Jhc2UKK1RoZSBsb2dpY2FsIG9mZnNldCBvZiB0aGUgZmlyc3QgZW50cnkgaW4gdGhlIGhpc3RvcnkgbGlzdC4KK0BlbmQgZGVmdHlwZXZhcgorCitAZGVmdHlwZXZhciBpbnQgaGlzdG9yeV9sZW5ndGgKK1RoZSBudW1iZXIgb2YgZW50cmllcyBjdXJyZW50bHkgc3RvcmVkIGluIHRoZSBoaXN0b3J5IGxpc3QuCitAZW5kIGRlZnR5cGV2YXIKKworQGRlZnR5cGV2YXIgaW50IGhpc3RvcnlfbWF4X2VudHJpZXMKK1RoZSBtYXhpbXVtIG51bWJlciBvZiBoaXN0b3J5IGVudHJpZXMuICBUaGlzIG11c3QgYmUgY2hhbmdlZCB1c2luZworQGNvZGV7c3RpZmxlX2hpc3RvcnkoKX0uCitAZW5kIGRlZnR5cGV2YXIKKworQGRlZnR5cGV2YXIgaW50IGhpc3Rvcnlfd3JpdGVfdGltZXN0YW1wcworSWYgbm9uLXplcm8sIHRpbWVzdGFtcHMgYXJlIHdyaXR0ZW4gdG8gdGhlIGhpc3RvcnkgZmlsZSwgc28gdGhleSBjYW4gYmUKK3ByZXNlcnZlZCBiZXR3ZWVuIHNlc3Npb25zLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgMCwgbWVhbmluZyB0aGF0Cit0aW1lc3RhbXBzIGFyZSBub3Qgc2F2ZWQuCitAZW5kIGRlZnR5cGV2YXIKKworQGRlZnR5cGV2YXIgY2hhciBoaXN0b3J5X2V4cGFuc2lvbl9jaGFyCitUaGUgY2hhcmFjdGVyIHRoYXQgaW50cm9kdWNlcyBhIGhpc3RvcnkgZXZlbnQuICBUaGUgZGVmYXVsdCBpcyBAc2FtcHshfS4KK1NldHRpbmcgdGhpcyB0byAwIGluaGliaXRzIGhpc3RvcnkgZXhwYW5zaW9uLgorQGVuZCBkZWZ0eXBldmFyCisKK0BkZWZ0eXBldmFyIGNoYXIgaGlzdG9yeV9zdWJzdF9jaGFyCitUaGUgY2hhcmFjdGVyIHRoYXQgaW52b2tlcyB3b3JkIHN1YnN0aXR1dGlvbiBpZiBmb3VuZCBhdCB0aGUgc3RhcnQgb2YKK2EgbGluZS4gIFRoZSBkZWZhdWx0IGlzIEBzYW1we159LgorQGVuZCBkZWZ0eXBldmFyCisKK0BkZWZ0eXBldmFyIGNoYXIgaGlzdG9yeV9jb21tZW50X2NoYXIKK0R1cmluZyB0b2tlbml6YXRpb24sIGlmIHRoaXMgY2hhcmFjdGVyIGlzIHNlZW4gYXMgdGhlIGZpcnN0IGNoYXJhY3Rlcgorb2YgYSB3b3JkLCB0aGVuIGl0IGFuZCBhbGwgc3Vic2VxdWVudCBjaGFyYWN0ZXJzIHVwIHRvIGEgbmV3bGluZSBhcmUKK2lnbm9yZWQsIHN1cHByZXNzaW5nIGhpc3RvcnkgZXhwYW5zaW9uIGZvciB0aGUgcmVtYWluZGVyIG9mIHRoZSBsaW5lLgorVGhpcyBpcyBkaXNhYmxlZCBieSBkZWZhdWx0LgorQGVuZCBkZWZ0eXBldmFyCisKK0BkZWZ0eXBldmFyIHtjaGFyICp9IGhpc3Rvcnlfd29yZF9kZWxpbWl0ZXJzCitUaGUgY2hhcmFjdGVycyB0aGF0IHNlcGFyYXRlIHRva2VucyBmb3IgQGNvZGV7aGlzdG9yeV90b2tlbml6ZSgpfS4KK1RoZSBkZWZhdWx0IHZhbHVlIGlzIEBjb2RleyIgXHRcbigpPD47JnwifS4KK0BlbmQgZGVmdHlwZXZhcgorCitAZGVmdHlwZXZhciB7Y2hhciAqfSBoaXN0b3J5X3NlYXJjaF9kZWxpbWl0ZXJfY2hhcnMKK1RoZSBsaXN0IG9mIGFkZGl0aW9uYWwgY2hhcmFjdGVycyB3aGljaCBjYW4gZGVsaW1pdCBhIGhpc3Rvcnkgc2VhcmNoCitzdHJpbmcsIGluIGFkZGl0aW9uIHRvIHNwYWNlLCBUQUIsIEBzYW1wezp9IGFuZCBAc2FtcHs/fSBpbiB0aGUgY2FzZSBvZgorYSBzdWJzdHJpbmcgc2VhcmNoLiAgVGhlIGRlZmF1bHQgaXMgZW1wdHkuCitAZW5kIGRlZnR5cGV2YXIKKworQGRlZnR5cGV2YXIge2NoYXIgKn0gaGlzdG9yeV9ub19leHBhbmRfY2hhcnMKK1RoZSBsaXN0IG9mIGNoYXJhY3RlcnMgd2hpY2ggaW5oaWJpdCBoaXN0b3J5IGV4cGFuc2lvbiBpZiBmb3VuZCBpbW1lZGlhdGVseQorZm9sbG93aW5nIEB2YXJ7aGlzdG9yeV9leHBhbnNpb25fY2hhcn0uICBUaGUgZGVmYXVsdCBpcyBzcGFjZSwgdGFiLCBuZXdsaW5lLAorY2FycmlhZ2UgcmV0dXJuLCBhbmQgQHNhbXB7PX0uCitAZW5kIGRlZnR5cGV2YXIKKworQGRlZnR5cGV2YXIgaW50IGhpc3RvcnlfcXVvdGVzX2luaGliaXRfZXhwYW5zaW9uCitJZiBub24temVybywgc2luZ2xlLXF1b3RlZCB3b3JkcyBhcmUgbm90IHNjYW5uZWQgZm9yIHRoZSBoaXN0b3J5IGV4cGFuc2lvbgorY2hhcmFjdGVyLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgMC4KK0BlbmQgZGVmdHlwZXZhcgorCitAZGVmdHlwZXZhciB7cmxfbGluZWJ1Zl9mdW5jX3QgKn0gaGlzdG9yeV9pbmhpYml0X2V4cGFuc2lvbl9mdW5jdGlvbgorVGhpcyBzaG91bGQgYmUgc2V0IHRvIHRoZSBhZGRyZXNzIG9mIGEgZnVuY3Rpb24gdGhhdCB0YWtlcyB0d28gYXJndW1lbnRzOgorYSBAY29kZXtjaGFyICp9IChAdmFye3N0cmluZ30pCithbmQgYW4gQGNvZGV7aW50fSBpbmRleCBpbnRvIHRoYXQgc3RyaW5nIChAdmFye2l9KS4KK0l0IHNob3VsZCByZXR1cm4gYSBub24temVybyB2YWx1ZSBpZiB0aGUgaGlzdG9yeSBleHBhbnNpb24gc3RhcnRpbmcgYXQKK0B2YXJ7c3RyaW5nW2ldfSBzaG91bGQgbm90IGJlIHBlcmZvcm1lZDsgemVybyBpZiB0aGUgZXhwYW5zaW9uIHNob3VsZAorYmUgZG9uZS4KK0l0IGlzIGludGVuZGVkIGZvciB1c2UgYnkgYXBwbGljYXRpb25zIGxpa2UgQmFzaCB0aGF0IHVzZSB0aGUgaGlzdG9yeQorZXhwYW5zaW9uIGNoYXJhY3RlciBmb3IgYWRkaXRpb25hbCBwdXJwb3Nlcy4KK0J5IGRlZmF1bHQsIHRoaXMgdmFyaWFibGUgaXMgc2V0IHRvIEBjb2Rle05VTEx9LgorQGVuZCBkZWZ0eXBldmFyCisKK0Bub2RlIEhpc3RvcnkgUHJvZ3JhbW1pbmcgRXhhbXBsZQorQHNlY3Rpb24gSGlzdG9yeSBQcm9ncmFtbWluZyBFeGFtcGxlCisKK1RoZSBmb2xsb3dpbmcgcHJvZ3JhbSBkZW1vbnN0cmF0ZXMgc2ltcGxlIHVzZSBvZiB0aGUgQHNje2dudX0gSGlzdG9yeSBMaWJyYXJ5LgorCitAc21hbGxleGFtcGxlCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxyZWFkbGluZS9oaXN0b3J5Lmg+CisKK21haW4gKGFyZ2MsIGFyZ3YpCisgICAgIGludCBhcmdjOworICAgICBjaGFyICoqYXJndjsKK0B7CisgIGNoYXIgbGluZVsxMDI0XSwgKnQ7CisgIGludCBsZW4sIGRvbmUgPSAwOworCisgIGxpbmVbMF0gPSAwOworCisgIHVzaW5nX2hpc3RvcnkgKCk7CisgIHdoaWxlICghZG9uZSkKKyAgICBAeworICAgICAgcHJpbnRmICgiaGlzdG9yeSQgIik7CisgICAgICBmZmx1c2ggKHN0ZG91dCk7CisgICAgICB0ID0gZmdldHMgKGxpbmUsIHNpemVvZiAobGluZSkgLSAxLCBzdGRpbik7CisgICAgICBpZiAodCAmJiAqdCkKKyAgICAgICAgQHsKKyAgICAgICAgICBsZW4gPSBzdHJsZW4gKHQpOworICAgICAgICAgIGlmICh0W2xlbiAtIDFdID09ICdcbicpCisgICAgICAgICAgICB0W2xlbiAtIDFdID0gJ1wwJzsKKyAgICAgICAgQH0KKworICAgICAgaWYgKCF0KQorICAgICAgICBzdHJjcHkgKGxpbmUsICJxdWl0Iik7CisKKyAgICAgIGlmIChsaW5lWzBdKQorICAgICAgICBAeworICAgICAgICAgIGNoYXIgKmV4cGFuc2lvbjsKKyAgICAgICAgICBpbnQgcmVzdWx0OworCisgICAgICAgICAgcmVzdWx0ID0gaGlzdG9yeV9leHBhbmQgKGxpbmUsICZleHBhbnNpb24pOworICAgICAgICAgIGlmIChyZXN1bHQpCisgICAgICAgICAgICBmcHJpbnRmIChzdGRlcnIsICIlc1xuIiwgZXhwYW5zaW9uKTsKKworICAgICAgICAgIGlmIChyZXN1bHQgPCAwIHx8IHJlc3VsdCA9PSAyKQorICAgICAgICAgICAgQHsKKyAgICAgICAgICAgICAgZnJlZSAoZXhwYW5zaW9uKTsKKyAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBAfQorCisgICAgICAgICAgYWRkX2hpc3RvcnkgKGV4cGFuc2lvbik7CisgICAgICAgICAgc3RybmNweSAobGluZSwgZXhwYW5zaW9uLCBzaXplb2YgKGxpbmUpIC0gMSk7CisgICAgICAgICAgZnJlZSAoZXhwYW5zaW9uKTsKKyAgICAgICAgQH0KKworICAgICAgaWYgKHN0cmNtcCAobGluZSwgInF1aXQiKSA9PSAwKQorICAgICAgICBkb25lID0gMTsKKyAgICAgIGVsc2UgaWYgKHN0cmNtcCAobGluZSwgInNhdmUiKSA9PSAwKQorICAgICAgICB3cml0ZV9oaXN0b3J5ICgiaGlzdG9yeV9maWxlIik7CisgICAgICBlbHNlIGlmIChzdHJjbXAgKGxpbmUsICJyZWFkIikgPT0gMCkKKyAgICAgICAgcmVhZF9oaXN0b3J5ICgiaGlzdG9yeV9maWxlIik7CisgICAgICBlbHNlIGlmIChzdHJjbXAgKGxpbmUsICJsaXN0IikgPT0gMCkKKyAgICAgICAgQHsKKyAgICAgICAgICByZWdpc3RlciBISVNUX0VOVFJZICoqdGhlX2xpc3Q7CisgICAgICAgICAgcmVnaXN0ZXIgaW50IGk7CisKKyAgICAgICAgICB0aGVfbGlzdCA9IGhpc3RvcnlfbGlzdCAoKTsKKyAgICAgICAgICBpZiAodGhlX2xpc3QpCisgICAgICAgICAgICBmb3IgKGkgPSAwOyB0aGVfbGlzdFtpXTsgaSsrKQorICAgICAgICAgICAgICBwcmludGYgKCIlZDogJXNcbiIsIGkgKyBoaXN0b3J5X2Jhc2UsIHRoZV9saXN0W2ldLT5saW5lKTsKKyAgICAgICAgQH0KKyAgICAgIGVsc2UgaWYgKHN0cm5jbXAgKGxpbmUsICJkZWxldGUiLCA2KSA9PSAwKQorICAgICAgICBAeworICAgICAgICAgIGludCB3aGljaDsKKyAgICAgICAgICBpZiAoKHNzY2FuZiAobGluZSArIDYsICIlZCIsICZ3aGljaCkpID09IDEpCisgICAgICAgICAgICBAeworICAgICAgICAgICAgICBISVNUX0VOVFJZICplbnRyeSA9IHJlbW92ZV9oaXN0b3J5ICh3aGljaCk7CisgICAgICAgICAgICAgIGlmICghZW50cnkpCisgICAgICAgICAgICAgICAgZnByaW50ZiAoc3RkZXJyLCAiTm8gc3VjaCBlbnRyeSAlZFxuIiwgd2hpY2gpOworICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgQHsKKyAgICAgICAgICAgICAgICAgIGZyZWUgKGVudHJ5LT5saW5lKTsKKyAgICAgICAgICAgICAgICAgIGZyZWUgKGVudHJ5KTsKKyAgICAgICAgICAgICAgICBAfQorICAgICAgICAgICAgQH0KKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICBAeworICAgICAgICAgICAgICBmcHJpbnRmIChzdGRlcnIsICJub24tbnVtZXJpYyBhcmcgZ2l2ZW4gdG8gYGRlbGV0ZSdcbiIpOworICAgICAgICAgICAgQH0KKyAgICAgICAgQH0KKyAgICBAfQorQH0KK0BlbmQgc21hbGxleGFtcGxlCmRpZmYgLS1naXQgYS9yZWFkbGluZS9kb2MvaHN1c2VyLnRleGkgYi9yZWFkbGluZS9kb2MvaHN1c2VyLnRleGkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmM4OTE4MwotLS0gL2Rldi9udWxsCisrKyBiL3JlYWRsaW5lL2RvYy9oc3VzZXIudGV4aQpAQCAtMCwwICsxLDQ1NyBAQAorQGlnbm9yZQorVGhpcyBmaWxlIGRvY3VtZW50cyB0aGUgdXNlciBpbnRlcmZhY2UgdG8gdGhlIEdOVSBIaXN0b3J5IGxpYnJhcnkuCisKK0NvcHlyaWdodCAoQykgMTk4OC0yMDAyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorQXV0aG9yZWQgYnkgQnJpYW4gRm94IGFuZCBDaGV0IFJhbWV5LgorCitQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gbWFrZSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMgb2YgdGhpcyBtYW51YWwKK3Byb3ZpZGVkIHRoZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIGFyZSBwcmVzZXJ2ZWQgb24KK2FsbCBjb3BpZXMuCisKK1Blcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBwcm9jZXNzIHRoaXMgZmlsZSB0aHJvdWdoIFRleCBhbmQgcHJpbnQgdGhlCityZXN1bHRzLCBwcm92aWRlZCB0aGUgcHJpbnRlZCBkb2N1bWVudCBjYXJyaWVzIGNvcHlpbmcgcGVybWlzc2lvbiBub3RpY2UKK2lkZW50aWNhbCB0byB0aGlzIG9uZSBleGNlcHQgZm9yIHRoZSByZW1vdmFsIG9mIHRoaXMgcGFyYWdyYXBoICh0aGlzCitwYXJhZ3JhcGggbm90IGJlaW5nIHJlbGV2YW50IHRvIHRoZSBwcmludGVkIG1hbnVhbCkuCisKK1Blcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIG1vZGlmaWVkIHZlcnNpb25zIG9mIHRoaXMKK21hbnVhbCB1bmRlciB0aGUgY29uZGl0aW9ucyBmb3IgdmVyYmF0aW0gY29weWluZywgcHJvdmlkZWQgYWxzbyB0aGF0IHRoZQorR05VIENvcHlyaWdodCBzdGF0ZW1lbnQgaXMgYXZhaWxhYmxlIHRvIHRoZSBkaXN0cmlidXRlZSwgYW5kIHByb3ZpZGVkIHRoYXQKK3RoZSBlbnRpcmUgcmVzdWx0aW5nIGRlcml2ZWQgd29yayBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgYQorcGVybWlzc2lvbiBub3RpY2UgaWRlbnRpY2FsIHRvIHRoaXMgb25lLgorCitQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSB0cmFuc2xhdGlvbnMgb2YgdGhpcyBtYW51YWwKK2ludG8gYW5vdGhlciBsYW5ndWFnZSwgdW5kZXIgdGhlIGFib3ZlIGNvbmRpdGlvbnMgZm9yIG1vZGlmaWVkIHZlcnNpb25zLgorQGVuZCBpZ25vcmUKKworQG5vZGUgVXNpbmcgSGlzdG9yeSBJbnRlcmFjdGl2ZWx5CitAY2hhcHRlciBVc2luZyBIaXN0b3J5IEludGVyYWN0aXZlbHkKKworQGlmY2xlYXIgQmFzaEZlYXR1cmVzCitAZGVmY29kZWluZGV4IGJ0CitAZW5kIGlmY2xlYXIKKworQGlmc2V0IEJhc2hGZWF0dXJlcworVGhpcyBjaGFwdGVyIGRlc2NyaWJlcyBob3cgdG8gdXNlIHRoZSBAc2N7Z251fSBIaXN0b3J5IExpYnJhcnkKK2ludGVyYWN0aXZlbHksIGZyb20gYSB1c2VyJ3Mgc3RhbmRwb2ludC4KK0l0IHNob3VsZCBiZSBjb25zaWRlcmVkIGEgdXNlcidzIGd1aWRlLgorRm9yIGluZm9ybWF0aW9uIG9uIHVzaW5nIHRoZSBAc2N7Z251fSBIaXN0b3J5IExpYnJhcnkgaW4gb3RoZXIgcHJvZ3JhbXMsCitzZWUgdGhlIEBzY3tnbnV9IFJlYWRsaW5lIExpYnJhcnkgTWFudWFsLgorQGVuZCBpZnNldAorQGlmY2xlYXIgQmFzaEZlYXR1cmVzCitUaGlzIGNoYXB0ZXIgZGVzY3JpYmVzIGhvdyB0byB1c2UgdGhlIEBzY3tnbnV9IEhpc3RvcnkgTGlicmFyeSBpbnRlcmFjdGl2ZWx5LAorZnJvbSBhIHVzZXIncyBzdGFuZHBvaW50LiAgSXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYSB1c2VyJ3MgZ3VpZGUuICBGb3IKK2luZm9ybWF0aW9uIG9uIHVzaW5nIHRoZSBAc2N7Z251fSBIaXN0b3J5IExpYnJhcnkgaW4geW91ciBvd24gcHJvZ3JhbXMsCitAcHhyZWZ7UHJvZ3JhbW1pbmcgd2l0aCBHTlUgSGlzdG9yeX0uCitAZW5kIGlmY2xlYXIKKworQGlmc2V0IEJhc2hGZWF0dXJlcworQG1lbnUKKyogQmFzaCBIaXN0b3J5IEZhY2lsaXRpZXM6OglIb3cgQmFzaCBsZXRzIHlvdSBtYW5pcHVsYXRlIHlvdXIgY29tbWFuZAorCQkJCWhpc3RvcnkuCisqIEJhc2ggSGlzdG9yeSBCdWlsdGluczo6CVRoZSBCYXNoIGJ1aWx0aW4gY29tbWFuZHMgdGhhdCBtYW5pcHVsYXRlCisJCQkJdGhlIGNvbW1hbmQgaGlzdG9yeS4KKyogSGlzdG9yeSBJbnRlcmFjdGlvbjo6CQlXaGF0IGl0IGZlZWxzIGxpa2UgdXNpbmcgSGlzdG9yeSBhcyBhIHVzZXIuCitAZW5kIG1lbnUKK0BlbmQgaWZzZXQKK0BpZmNsZWFyIEJhc2hGZWF0dXJlcworQG1lbnUKKyogSGlzdG9yeSBJbnRlcmFjdGlvbjo6CQlXaGF0IGl0IGZlZWxzIGxpa2UgdXNpbmcgSGlzdG9yeSBhcyBhIHVzZXIuCitAZW5kIG1lbnUKK0BlbmQgaWZjbGVhcgorCitAaWZzZXQgQmFzaEZlYXR1cmVzCitAbm9kZSBCYXNoIEhpc3RvcnkgRmFjaWxpdGllcworQHNlY3Rpb24gQmFzaCBIaXN0b3J5IEZhY2lsaXRpZXMKK0BjaW5kZXggY29tbWFuZCBoaXN0b3J5CitAY2luZGV4IGhpc3RvcnkgbGlzdAorCitXaGVuIHRoZSBAb3B0aW9uey1vIGhpc3Rvcnl9IG9wdGlvbiB0byB0aGUgQGNvZGV7c2V0fSBidWlsdGluCitpcyBlbmFibGVkIChAcHhyZWZ7VGhlIFNldCBCdWlsdGlufSksCit0aGUgc2hlbGwgcHJvdmlkZXMgYWNjZXNzIHRvIHRoZSBAZGZue2NvbW1hbmQgaGlzdG9yeX0sCit0aGUgbGlzdCBvZiBjb21tYW5kcyBwcmV2aW91c2x5IHR5cGVkLgorVGhlIHZhbHVlIG9mIHRoZSBAZW52e0hJU1RTSVpFfSBzaGVsbCB2YXJpYWJsZSBpcyB1c2VkIGFzIHRoZQorbnVtYmVyIG9mIGNvbW1hbmRzIHRvIHNhdmUgaW4gYSBoaXN0b3J5IGxpc3QuCitUaGUgdGV4dCBvZiB0aGUgbGFzdCBAZW52eyRISVNUU0laRX0KK2NvbW1hbmRzIChkZWZhdWx0IDUwMCkgaXMgc2F2ZWQuCitUaGUgc2hlbGwgc3RvcmVzIGVhY2ggY29tbWFuZCBpbiB0aGUgaGlzdG9yeSBsaXN0IHByaW9yIHRvCitwYXJhbWV0ZXIgYW5kIHZhcmlhYmxlIGV4cGFuc2lvbgorYnV0IGFmdGVyIGhpc3RvcnkgZXhwYW5zaW9uIGlzIHBlcmZvcm1lZCwgc3ViamVjdCB0byB0aGUKK3ZhbHVlcyBvZiB0aGUgc2hlbGwgdmFyaWFibGVzCitAZW52e0hJU1RJR05PUkV9IGFuZCBAZW52e0hJU1RDT05UUk9MfS4KKworV2hlbiB0aGUgc2hlbGwgc3RhcnRzIHVwLCB0aGUgaGlzdG9yeSBpcyBpbml0aWFsaXplZCBmcm9tIHRoZQorZmlsZSBuYW1lZCBieSB0aGUgQGVudntISVNURklMRX0gdmFyaWFibGUgKGRlZmF1bHQgQGZpbGV7fi8uYmFzaF9oaXN0b3J5fSkuCitUaGUgZmlsZSBuYW1lZCBieSB0aGUgdmFsdWUgb2YgQGVudntISVNURklMRX0gaXMgdHJ1bmNhdGVkLCBpZgorbmVjZXNzYXJ5LCB0byBjb250YWluIG5vIG1vcmUgdGhhbiB0aGUgbnVtYmVyIG9mIGxpbmVzIHNwZWNpZmllZCBieQordGhlIHZhbHVlIG9mIHRoZSBAZW52e0hJU1RGSUxFU0laRX0gdmFyaWFibGUuCitXaGVuIGFuIGludGVyYWN0aXZlIHNoZWxsIGV4aXRzLCB0aGUgbGFzdAorQGVudnskSElTVFNJWkV9IGxpbmVzIGFyZSBjb3BpZWQgZnJvbSB0aGUgaGlzdG9yeSBsaXN0IHRvIHRoZSBmaWxlCituYW1lZCBieSBAZW52eyRISVNURklMRX0uCitJZiB0aGUgQGNvZGV7aGlzdGFwcGVuZH0gc2hlbGwgb3B0aW9uIGlzIHNldCAoQHB4cmVme0Jhc2ggQnVpbHRpbnN9KSwKK3RoZSBsaW5lcyBhcmUgYXBwZW5kZWQgdG8gdGhlIGhpc3RvcnkgZmlsZSwKK290aGVyd2lzZSB0aGUgaGlzdG9yeSBmaWxlIGlzIG92ZXJ3cml0dGVuLgorSWYgQGVudntISVNURklMRX0KK2lzIHVuc2V0LCBvciBpZiB0aGUgaGlzdG9yeSBmaWxlIGlzIHVud3JpdGFibGUsIHRoZSBoaXN0b3J5IGlzCitub3Qgc2F2ZWQuICBBZnRlciBzYXZpbmcgdGhlIGhpc3RvcnksIHRoZSBoaXN0b3J5IGZpbGUgaXMgdHJ1bmNhdGVkCit0byBjb250YWluIG5vIG1vcmUgdGhhbiBAZW52eyRISVNURklMRVNJWkV9CitsaW5lcy4gIElmIEBlbnZ7SElTVEZJTEVTSVpFfSBpcyBub3Qgc2V0LCBubyB0cnVuY2F0aW9uIGlzIHBlcmZvcm1lZC4KKworSWYgdGhlIEBlbnZ7SElTVFRJTUVGT1JNQVR9IGlzIHNldCwgdGhlIHRpbWUgc3RhbXAgaW5mb3JtYXRpb24KK2Fzc29jaWF0ZWQgd2l0aCBlYWNoIGhpc3RvcnkgZW50cnkgaXMgd3JpdHRlbiB0byB0aGUgaGlzdG9yeSBmaWxlLgorCitUaGUgYnVpbHRpbiBjb21tYW5kIEBjb2Rle2ZjfSBtYXkgYmUgdXNlZCB0byBsaXN0IG9yIGVkaXQgYW5kIHJlLWV4ZWN1dGUKK2EgcG9ydGlvbiBvZiB0aGUgaGlzdG9yeSBsaXN0LgorVGhlIEBjb2Rle2hpc3Rvcnl9IGJ1aWx0aW4gbWF5IGJlIHVzZWQgdG8gZGlzcGxheSBvciBtb2RpZnkgdGhlIGhpc3RvcnkKK2xpc3QgYW5kIG1hbmlwdWxhdGUgdGhlIGhpc3RvcnkgZmlsZS4KK1doZW4gdXNpbmcgY29tbWFuZC1saW5lIGVkaXRpbmcsIHNlYXJjaCBjb21tYW5kcworYXJlIGF2YWlsYWJsZSBpbiBlYWNoIGVkaXRpbmcgbW9kZSB0aGF0IHByb3ZpZGUgYWNjZXNzIHRvIHRoZQoraGlzdG9yeSBsaXN0IChAcHhyZWZ7Q29tbWFuZHMgRm9yIEhpc3Rvcnl9KS4KKworVGhlIHNoZWxsIGFsbG93cyBjb250cm9sIG92ZXIgd2hpY2ggY29tbWFuZHMgYXJlIHNhdmVkIG9uIHRoZSBoaXN0b3J5CitsaXN0LiAgVGhlIEBlbnZ7SElTVENPTlRST0x9IGFuZCBAZW52e0hJU1RJR05PUkV9Cit2YXJpYWJsZXMgbWF5IGJlIHNldCB0byBjYXVzZSB0aGUgc2hlbGwgdG8gc2F2ZSBvbmx5IGEgc3Vic2V0IG9mIHRoZQorY29tbWFuZHMgZW50ZXJlZC4KK1RoZSBAY29kZXtjbWRoaXN0fQorc2hlbGwgb3B0aW9uLCBpZiBlbmFibGVkLCBjYXVzZXMgdGhlIHNoZWxsIHRvIGF0dGVtcHQgdG8gc2F2ZSBlYWNoCitsaW5lIG9mIGEgbXVsdGktbGluZSBjb21tYW5kIGluIHRoZSBzYW1lIGhpc3RvcnkgZW50cnksIGFkZGluZworc2VtaWNvbG9ucyB3aGVyZSBuZWNlc3NhcnkgdG8gcHJlc2VydmUgc3ludGFjdGljIGNvcnJlY3RuZXNzLgorVGhlIEBjb2Rle2xpdGhpc3R9CitzaGVsbCBvcHRpb24gY2F1c2VzIHRoZSBzaGVsbCB0byBzYXZlIHRoZSBjb21tYW5kIHdpdGggZW1iZWRkZWQgbmV3bGluZXMKK2luc3RlYWQgb2Ygc2VtaWNvbG9ucy4KK1RoZSBAY29kZXtzaG9wdH0gYnVpbHRpbiBpcyB1c2VkIHRvIHNldCB0aGVzZSBvcHRpb25zLgorQHhyZWZ7QmFzaCBCdWlsdGluc30sIGZvciBhIGRlc2NyaXB0aW9uIG9mIEBjb2Rle3Nob3B0fS4KKworQG5vZGUgQmFzaCBIaXN0b3J5IEJ1aWx0aW5zCitAc2VjdGlvbiBCYXNoIEhpc3RvcnkgQnVpbHRpbnMKK0BjaW5kZXggaGlzdG9yeSBidWlsdGlucworCitCYXNoIHByb3ZpZGVzIHR3byBidWlsdGluIGNvbW1hbmRzIHdoaWNoIG1hbmlwdWxhdGUgdGhlCitoaXN0b3J5IGxpc3QgYW5kIGhpc3RvcnkgZmlsZS4KKworQHRhYmxlIEBjb2RlCisKK0BpdGVtIGZjCitAYnRpbmRleCBmYworQGV4YW1wbGUKK0Bjb2Rle2ZjIFstZSBAdmFye2VuYW1lfV0gWy1ubHJdIFtAdmFye2ZpcnN0fV0gW0B2YXJ7bGFzdH1dfQorQGNvZGV7ZmMgLXMgW0B2YXJ7cGF0fT1AdmFye3JlcH1dIFtAdmFye2NvbW1hbmR9XX0KK0BlbmQgZXhhbXBsZQorCitGaXggQ29tbWFuZC4gIEluIHRoZSBmaXJzdCBmb3JtLCBhIHJhbmdlIG9mIGNvbW1hbmRzIGZyb20gQHZhcntmaXJzdH0gdG8KK0B2YXJ7bGFzdH0gaXMgc2VsZWN0ZWQgZnJvbSB0aGUgaGlzdG9yeSBsaXN0LiAgQm90aCBAdmFye2ZpcnN0fSBhbmQKK0B2YXJ7bGFzdH0gbWF5IGJlIHNwZWNpZmllZCBhcyBhIHN0cmluZyAodG8gbG9jYXRlIHRoZSBtb3N0IHJlY2VudAorY29tbWFuZCBiZWdpbm5pbmcgd2l0aCB0aGF0IHN0cmluZykgb3IgYXMgYSBudW1iZXIgKGFuIGluZGV4IGludG8gdGhlCitoaXN0b3J5IGxpc3QsIHdoZXJlIGEgbmVnYXRpdmUgbnVtYmVyIGlzIHVzZWQgYXMgYW4gb2Zmc2V0IGZyb20gdGhlCitjdXJyZW50IGNvbW1hbmQgbnVtYmVyKS4gIElmIEB2YXJ7bGFzdH0gaXMgbm90IHNwZWNpZmllZCBpdCBpcyBzZXQgdG8KK0B2YXJ7Zmlyc3R9LiAgSWYgQHZhcntmaXJzdH0gaXMgbm90IHNwZWNpZmllZCBpdCBpcyBzZXQgdG8gdGhlIHByZXZpb3VzCitjb21tYW5kIGZvciBlZGl0aW5nIGFuZCBAbWludXN7fTE2IGZvciBsaXN0aW5nLiAgSWYgdGhlIEBvcHRpb257LWx9IGZsYWcgaXMKK2dpdmVuLCB0aGUgY29tbWFuZHMgYXJlIGxpc3RlZCBvbiBzdGFuZGFyZCBvdXRwdXQuICBUaGUgQG9wdGlvbnstbn0gZmxhZworc3VwcHJlc3NlcyB0aGUgY29tbWFuZCBudW1iZXJzIHdoZW4gbGlzdGluZy4gIFRoZSBAb3B0aW9uey1yfSBmbGFnCityZXZlcnNlcyB0aGUgb3JkZXIgb2YgdGhlIGxpc3RpbmcuICBPdGhlcndpc2UsIHRoZSBlZGl0b3IgZ2l2ZW4gYnkKK0B2YXJ7ZW5hbWV9IGlzIGludm9rZWQgb24gYSBmaWxlIGNvbnRhaW5pbmcgdGhvc2UgY29tbWFuZHMuICBJZgorQHZhcntlbmFtZX0gaXMgbm90IGdpdmVuLCB0aGUgdmFsdWUgb2YgdGhlIGZvbGxvd2luZyB2YXJpYWJsZSBleHBhbnNpb24KK2lzIHVzZWQ6IEBjb2RleyRAe0ZDRURJVDotJEB7RURJVE9SOi12aUB9QH19LiAgVGhpcyBzYXlzIHRvIHVzZSB0aGUKK3ZhbHVlIG9mIHRoZSBAZW52e0ZDRURJVH0gdmFyaWFibGUgaWYgc2V0LCBvciB0aGUgdmFsdWUgb2YgdGhlCitAZW52e0VESVRPUn0gdmFyaWFibGUgaWYgdGhhdCBpcyBzZXQsIG9yIEBjb2Rle3ZpfSBpZiBuZWl0aGVyIGlzIHNldC4KK1doZW4gZWRpdGluZyBpcyBjb21wbGV0ZSwgdGhlIGVkaXRlZCBjb21tYW5kcyBhcmUgZWNob2VkIGFuZCBleGVjdXRlZC4KKworSW4gdGhlIHNlY29uZCBmb3JtLCBAdmFye2NvbW1hbmR9IGlzIHJlLWV4ZWN1dGVkIGFmdGVyIGVhY2ggaW5zdGFuY2UKK29mIEB2YXJ7cGF0fSBpbiB0aGUgc2VsZWN0ZWQgY29tbWFuZCBpcyByZXBsYWNlZCBieSBAdmFye3JlcH0uCisKK0EgdXNlZnVsIGFsaWFzIHRvIHVzZSB3aXRoIHRoZSBAY29kZXtmY30gY29tbWFuZCBpcyBAY29kZXtyPSdmYyAtcyd9LCBzbwordGhhdCB0eXBpbmcgQHNhbXB7ciBjY30gcnVucyB0aGUgbGFzdCBjb21tYW5kIGJlZ2lubmluZyB3aXRoIEBjb2Rle2NjfQorYW5kIHR5cGluZyBAc2FtcHtyfSByZS1leGVjdXRlcyB0aGUgbGFzdCBjb21tYW5kIChAcHhyZWZ7QWxpYXNlc30pLgorCitAaXRlbSBoaXN0b3J5CitAYnRpbmRleCBoaXN0b3J5CitAZXhhbXBsZQoraGlzdG9yeSBbQHZhcntufV0KK2hpc3RvcnkgLWMKK2hpc3RvcnkgLWQgQHZhcntvZmZzZXR9CitoaXN0b3J5IFstYW5yd10gW0B2YXJ7ZmlsZW5hbWV9XQoraGlzdG9yeSAtcHMgQHZhcnthcmd9CitAZW5kIGV4YW1wbGUKKworV2l0aCBubyBvcHRpb25zLCBkaXNwbGF5IHRoZSBoaXN0b3J5IGxpc3Qgd2l0aCBsaW5lIG51bWJlcnMuCitMaW5lcyBwcmVmaXhlZCB3aXRoIGEgQHNhbXB7Kn0gaGF2ZSBiZWVuIG1vZGlmaWVkLgorQW4gYXJndW1lbnQgb2YgQHZhcntufSBsaXN0cyBvbmx5IHRoZSBsYXN0IEB2YXJ7bn0gbGluZXMuCitJZiB0aGUgc2hlbGwgdmFyaWFibGUgQGVudntISVNUVElNRUZPUk1BVH0gaXMgc2V0IGFuZCBub3QgbnVsbCwKK2l0IGlzIHVzZWQgYXMgYSBmb3JtYXQgc3RyaW5nIGZvciBAdmFye3N0cmZ0aW1lfSB0byBkaXNwbGF5Cit0aGUgdGltZSBzdGFtcCBhc3NvY2lhdGVkIHdpdGggZWFjaCBkaXNwbGF5ZWQgaGlzdG9yeSBlbnRyeS4KK05vIGludGVydmVuaW5nIGJsYW5rIGlzIHByaW50ZWQgYmV0d2VlbiB0aGUgZm9ybWF0dGVkIHRpbWUgc3RhbXAKK2FuZCB0aGUgaGlzdG9yeSBsaW5lLgorCitPcHRpb25zLCBpZiBzdXBwbGllZCwgaGF2ZSB0aGUgZm9sbG93aW5nIG1lYW5pbmdzOgorCitAdGFibGUgQGNvZGUKK0BpdGVtIC1jCitDbGVhciB0aGUgaGlzdG9yeSBsaXN0LiAgVGhpcyBtYXkgYmUgY29tYmluZWQKK3dpdGggdGhlIG90aGVyIG9wdGlvbnMgdG8gcmVwbGFjZSB0aGUgaGlzdG9yeSBsaXN0IGNvbXBsZXRlbHkuCisKK0BpdGVtIC1kIEB2YXJ7b2Zmc2V0fQorRGVsZXRlIHRoZSBoaXN0b3J5IGVudHJ5IGF0IHBvc2l0aW9uIEB2YXJ7b2Zmc2V0fS4KK0B2YXJ7b2Zmc2V0fSBzaG91bGQgYmUgc3BlY2lmaWVkIGFzIGl0IGFwcGVhcnMgd2hlbiB0aGUgaGlzdG9yeSBpcworZGlzcGxheWVkLgorCitAaXRlbSAtYQorQXBwZW5kIHRoZSBuZXcKK2hpc3RvcnkgbGluZXMgKGhpc3RvcnkgbGluZXMgZW50ZXJlZCBzaW5jZSB0aGUgYmVnaW5uaW5nIG9mIHRoZQorY3VycmVudCBCYXNoIHNlc3Npb24pIHRvIHRoZSBoaXN0b3J5IGZpbGUuCisKK0BpdGVtIC1uCitBcHBlbmQgdGhlIGhpc3RvcnkgbGluZXMgbm90IGFscmVhZHkgcmVhZCBmcm9tIHRoZSBoaXN0b3J5IGZpbGUKK3RvIHRoZSBjdXJyZW50IGhpc3RvcnkgbGlzdC4gIFRoZXNlIGFyZSBsaW5lcyBhcHBlbmRlZCB0byB0aGUgaGlzdG9yeQorZmlsZSBzaW5jZSB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjdXJyZW50IEJhc2ggc2Vzc2lvbi4KKworQGl0ZW0gLXIKK1JlYWQgdGhlIGN1cnJlbnQgaGlzdG9yeSBmaWxlIGFuZCBhcHBlbmQgaXRzIGNvbnRlbnRzIHRvCit0aGUgaGlzdG9yeSBsaXN0LgorCitAaXRlbSAtdworV3JpdGUgb3V0IHRoZSBjdXJyZW50IGhpc3RvcnkgdG8gdGhlIGhpc3RvcnkgZmlsZS4KKworQGl0ZW0gLXAKK1BlcmZvcm0gaGlzdG9yeSBzdWJzdGl0dXRpb24gb24gdGhlIEB2YXJ7YXJnfXMgYW5kIGRpc3BsYXkgdGhlIHJlc3VsdAorb24gdGhlIHN0YW5kYXJkIG91dHB1dCwgd2l0aG91dCBzdG9yaW5nIHRoZSByZXN1bHRzIGluIHRoZSBoaXN0b3J5IGxpc3QuCisKK0BpdGVtIC1zCitUaGUgQHZhcnthcmd9cyBhcmUgYWRkZWQgdG8gdGhlIGVuZCBvZgordGhlIGhpc3RvcnkgbGlzdCBhcyBhIHNpbmdsZSBlbnRyeS4KKworQGVuZCB0YWJsZQorCitXaGVuIGFueSBvZiB0aGUgQG9wdGlvbnstd30sIEBvcHRpb257LXJ9LCBAb3B0aW9uey1hfSwgb3IgQG9wdGlvbnstbn0gb3B0aW9ucyBpcwordXNlZCwgaWYgQHZhcntmaWxlbmFtZX0KK2lzIGdpdmVuLCB0aGVuIGl0IGlzIHVzZWQgYXMgdGhlIGhpc3RvcnkgZmlsZS4gIElmIG5vdCwgdGhlbgordGhlIHZhbHVlIG9mIHRoZSBAZW52e0hJU1RGSUxFfSB2YXJpYWJsZSBpcyB1c2VkLgorCitAZW5kIHRhYmxlCitAZW5kIGlmc2V0CisKK0Bub2RlIEhpc3RvcnkgSW50ZXJhY3Rpb24KK0BzZWN0aW9uIEhpc3RvcnkgRXhwYW5zaW9uCitAY2luZGV4IGhpc3RvcnkgZXhwYW5zaW9uCisKK1RoZSBIaXN0b3J5IGxpYnJhcnkgcHJvdmlkZXMgYSBoaXN0b3J5IGV4cGFuc2lvbiBmZWF0dXJlIHRoYXQgaXMgc2ltaWxhcgordG8gdGhlIGhpc3RvcnkgZXhwYW5zaW9uIHByb3ZpZGVkIGJ5IEBjb2Rle2NzaH0uICBUaGlzIHNlY3Rpb24KK2Rlc2NyaWJlcyB0aGUgc3ludGF4IHVzZWQgdG8gbWFuaXB1bGF0ZSB0aGUgaGlzdG9yeSBpbmZvcm1hdGlvbi4KKworSGlzdG9yeSBleHBhbnNpb25zIGludHJvZHVjZSB3b3JkcyBmcm9tIHRoZSBoaXN0b3J5IGxpc3QgaW50bwordGhlIGlucHV0IHN0cmVhbSwgbWFraW5nIGl0IGVhc3kgdG8gcmVwZWF0IGNvbW1hbmRzLCBpbnNlcnQgdGhlCithcmd1bWVudHMgdG8gYSBwcmV2aW91cyBjb21tYW5kIGludG8gdGhlIGN1cnJlbnQgaW5wdXQgbGluZSwgb3IKK2ZpeCBlcnJvcnMgaW4gcHJldmlvdXMgY29tbWFuZHMgcXVpY2tseS4KKworSGlzdG9yeSBleHBhbnNpb24gdGFrZXMgcGxhY2UgaW4gdHdvIHBhcnRzLiAgVGhlIGZpcnN0IGlzIHRvIGRldGVybWluZQord2hpY2ggbGluZSBmcm9tIHRoZSBoaXN0b3J5IGxpc3Qgc2hvdWxkIGJlIHVzZWQgZHVyaW5nIHN1YnN0aXR1dGlvbi4KK1RoZSBzZWNvbmQgaXMgdG8gc2VsZWN0IHBvcnRpb25zIG9mIHRoYXQgbGluZSBmb3IgaW5jbHVzaW9uIGludG8gdGhlCitjdXJyZW50IG9uZS4gIFRoZSBsaW5lIHNlbGVjdGVkIGZyb20gdGhlIGhpc3RvcnkgaXMgY2FsbGVkIHRoZQorQGRmbntldmVudH0sIGFuZCB0aGUgcG9ydGlvbnMgb2YgdGhhdCBsaW5lIHRoYXQgYXJlIGFjdGVkIHVwb24gYXJlCitjYWxsZWQgQGRmbnt3b3Jkc30uICBWYXJpb3VzIEBkZm57bW9kaWZpZXJzfSBhcmUgYXZhaWxhYmxlIHRvIG1hbmlwdWxhdGUKK3RoZSBzZWxlY3RlZCB3b3Jkcy4gIFRoZSBsaW5lIGlzIGJyb2tlbiBpbnRvIHdvcmRzIGluIHRoZSBzYW1lIGZhc2hpb24KK3RoYXQgQmFzaCBkb2VzLCBzbyB0aGF0IHNldmVyYWwgd29yZHMKK3N1cnJvdW5kZWQgYnkgcXVvdGVzIGFyZSBjb25zaWRlcmVkIG9uZSB3b3JkLgorSGlzdG9yeSBleHBhbnNpb25zIGFyZSBpbnRyb2R1Y2VkIGJ5IHRoZSBhcHBlYXJhbmNlIG9mIHRoZQoraGlzdG9yeSBleHBhbnNpb24gY2hhcmFjdGVyLCB3aGljaCBpcyBAc2FtcHshfSBieSBkZWZhdWx0LgorQGlmc2V0IEJhc2hGZWF0dXJlcworT25seSBAc2FtcHtcfSBhbmQgQHNhbXB7J30gbWF5IGJlIHVzZWQgdG8gZXNjYXBlIHRoZSBoaXN0b3J5IGV4cGFuc2lvbgorY2hhcmFjdGVyLgorQGVuZCBpZnNldAorCitAaWZzZXQgQmFzaEZlYXR1cmVzCitTZXZlcmFsIHNoZWxsIG9wdGlvbnMgc2V0dGFibGUgd2l0aCB0aGUgQGNvZGV7c2hvcHR9CitidWlsdGluIChAcHhyZWZ7QmFzaCBCdWlsdGluc30pIG1heSBiZSB1c2VkIHRvIHRhaWxvcgordGhlIGJlaGF2aW9yIG9mIGhpc3RvcnkgZXhwYW5zaW9uLiAgSWYgdGhlCitAY29kZXtoaXN0dmVyaWZ5fSBzaGVsbCBvcHRpb24gaXMgZW5hYmxlZCwgYW5kIFJlYWRsaW5lCitpcyBiZWluZyB1c2VkLCBoaXN0b3J5IHN1YnN0aXR1dGlvbnMgYXJlIG5vdCBpbW1lZGlhdGVseSBwYXNzZWQgdG8KK3RoZSBzaGVsbCBwYXJzZXIuCitJbnN0ZWFkLCB0aGUgZXhwYW5kZWQgbGluZSBpcyByZWxvYWRlZCBpbnRvIHRoZSBSZWFkbGluZQorZWRpdGluZyBidWZmZXIgZm9yIGZ1cnRoZXIgbW9kaWZpY2F0aW9uLgorSWYgUmVhZGxpbmUgaXMgYmVpbmcgdXNlZCwgYW5kIHRoZSBAY29kZXtoaXN0cmVlZGl0fQorc2hlbGwgb3B0aW9uIGlzIGVuYWJsZWQsIGEgZmFpbGVkIGhpc3RvcnkgZXhwYW5zaW9uIHdpbGwgYmUKK3JlbG9hZGVkIGludG8gdGhlIFJlYWRsaW5lIGVkaXRpbmcgYnVmZmVyIGZvciBjb3JyZWN0aW9uLgorVGhlIEBvcHRpb257LXB9IG9wdGlvbiB0byB0aGUgQGNvZGV7aGlzdG9yeX0gYnVpbHRpbiBjb21tYW5kCittYXkgYmUgdXNlZCB0byBzZWUgd2hhdCBhIGhpc3RvcnkgZXhwYW5zaW9uIHdpbGwgZG8gYmVmb3JlIHVzaW5nIGl0LgorVGhlIEBvcHRpb257LXN9IG9wdGlvbiB0byB0aGUgQGNvZGV7aGlzdG9yeX0gYnVpbHRpbiBtYXkgYmUgdXNlZCB0bworYWRkIGNvbW1hbmRzIHRvIHRoZSBlbmQgb2YgdGhlIGhpc3RvcnkgbGlzdCB3aXRob3V0IGFjdHVhbGx5IGV4ZWN1dGluZwordGhlbSwgc28gdGhhdCB0aGV5IGFyZSBhdmFpbGFibGUgZm9yIHN1YnNlcXVlbnQgcmVjYWxsLgorVGhpcyBpcyBtb3N0IHVzZWZ1bCBpbiBjb25qdW5jdGlvbiB3aXRoIFJlYWRsaW5lLgorCitUaGUgc2hlbGwgYWxsb3dzIGNvbnRyb2wgb2YgdGhlIHZhcmlvdXMgY2hhcmFjdGVycyB1c2VkIGJ5IHRoZQoraGlzdG9yeSBleHBhbnNpb24gbWVjaGFuaXNtIHdpdGggdGhlIEBjb2Rle2hpc3RjaGFyc30gdmFyaWFibGUuCitAZW5kIGlmc2V0CisKK0BtZW51CisqIEV2ZW50IERlc2lnbmF0b3JzOjoJSG93IHRvIHNwZWNpZnkgd2hpY2ggaGlzdG9yeSBsaW5lIHRvIHVzZS4KKyogV29yZCBEZXNpZ25hdG9yczo6CVNwZWNpZnlpbmcgd2hpY2ggd29yZHMgYXJlIG9mIGludGVyZXN0LgorKiBNb2RpZmllcnM6OgkJTW9kaWZ5aW5nIHRoZSByZXN1bHRzIG9mIHN1YnN0aXR1dGlvbi4KK0BlbmQgbWVudQorCitAbm9kZSBFdmVudCBEZXNpZ25hdG9ycworQHN1YnNlY3Rpb24gRXZlbnQgRGVzaWduYXRvcnMKK0BjaW5kZXggZXZlbnQgZGVzaWduYXRvcnMKKworQW4gZXZlbnQgZGVzaWduYXRvciBpcyBhIHJlZmVyZW5jZSB0byBhIGNvbW1hbmQgbGluZSBlbnRyeSBpbiB0aGUKK2hpc3RvcnkgbGlzdC4KK0BjaW5kZXggaGlzdG9yeSBldmVudHMKKworQHRhYmxlIEBhc2lzCisKK0BpdGVtIEBjb2RleyF9CitAaWZzZXQgQmFzaEZlYXR1cmVzCitTdGFydCBhIGhpc3Rvcnkgc3Vic3RpdHV0aW9uLCBleGNlcHQgd2hlbiBmb2xsb3dlZCBieSBhIHNwYWNlLCB0YWIsCit0aGUgZW5kIG9mIHRoZSBsaW5lLCBAc2FtcHs9fSBvciBAc2FtcHsofSAod2hlbiB0aGUKK0Bjb2Rle2V4dGdsb2J9IHNoZWxsIG9wdGlvbiBpcyBlbmFibGVkIHVzaW5nIHRoZSBAY29kZXtzaG9wdH0gYnVpbHRpbikuCitAZW5kIGlmc2V0CitAaWZjbGVhciBCYXNoRmVhdHVyZXMKK1N0YXJ0IGEgaGlzdG9yeSBzdWJzdGl0dXRpb24sIGV4Y2VwdCB3aGVuIGZvbGxvd2VkIGJ5IGEgc3BhY2UsIHRhYiwKK3RoZSBlbmQgb2YgdGhlIGxpbmUsIG9yIEBzYW1wez19LgorQGVuZCBpZmNsZWFyCisKK0BpdGVtIEBjb2RleyFAdmFye259fQorUmVmZXIgdG8gY29tbWFuZCBsaW5lIEB2YXJ7bn0uCisKK0BpdGVtIEBjb2RleyEtQHZhcntufX0KK1JlZmVyIHRvIHRoZSBjb21tYW5kIEB2YXJ7bn0gbGluZXMgYmFjay4KKworQGl0ZW0gQGNvZGV7ISF9CitSZWZlciB0byB0aGUgcHJldmlvdXMgY29tbWFuZC4gIFRoaXMgaXMgYSBzeW5vbnltIGZvciBAc2FtcHshLTF9LgorCitAaXRlbSBAY29kZXshQHZhcntzdHJpbmd9fQorUmVmZXIgdG8gdGhlIG1vc3QgcmVjZW50IGNvbW1hbmQgc3RhcnRpbmcgd2l0aCBAdmFye3N0cmluZ30uCisKK0BpdGVtIEBjb2RleyE/QHZhcntzdHJpbmd9Wz9dfQorUmVmZXIgdG8gdGhlIG1vc3QgcmVjZW50IGNvbW1hbmQgY29udGFpbmluZyBAdmFye3N0cmluZ30uICBUaGUgdHJhaWxpbmcKK0BzYW1wez99IG1heSBiZSBvbWl0dGVkIGlmIHRoZSBAdmFye3N0cmluZ30gaXMgZm9sbG93ZWQgaW1tZWRpYXRlbHkgYnkKK2EgbmV3bGluZS4KKworQGl0ZW0gQGNvZGV7XkB2YXJ7c3RyaW5nMX1eQHZhcntzdHJpbmcyfV59CitRdWljayBTdWJzdGl0dXRpb24uICBSZXBlYXQgdGhlIGxhc3QgY29tbWFuZCwgcmVwbGFjaW5nIEB2YXJ7c3RyaW5nMX0KK3dpdGggQHZhcntzdHJpbmcyfS4gIEVxdWl2YWxlbnQgdG8KK0Bjb2RleyEhOnMvQHZhcntzdHJpbmcxfS9AdmFye3N0cmluZzJ9L30uCisKK0BpdGVtIEBjb2RleyEjfQorVGhlIGVudGlyZSBjb21tYW5kIGxpbmUgdHlwZWQgc28gZmFyLgorCitAZW5kIHRhYmxlCisKK0Bub2RlIFdvcmQgRGVzaWduYXRvcnMKK0BzdWJzZWN0aW9uIFdvcmQgRGVzaWduYXRvcnMKKworV29yZCBkZXNpZ25hdG9ycyBhcmUgdXNlZCB0byBzZWxlY3QgZGVzaXJlZCB3b3JkcyBmcm9tIHRoZSBldmVudC4KK0EgQHNhbXB7On0gc2VwYXJhdGVzIHRoZSBldmVudCBzcGVjaWZpY2F0aW9uIGZyb20gdGhlIHdvcmQgZGVzaWduYXRvci4gIEl0CittYXkgYmUgb21pdHRlZCBpZiB0aGUgd29yZCBkZXNpZ25hdG9yIGJlZ2lucyB3aXRoIGEgQHNhbXB7Xn0sIEBzYW1weyR9LAorQHNhbXB7Kn0sIEBzYW1wey19LCBvciBAc2FtcHslfS4gIFdvcmRzIGFyZSBudW1iZXJlZCBmcm9tIHRoZSBiZWdpbm5pbmcKK29mIHRoZSBsaW5lLCB3aXRoIHRoZSBmaXJzdCB3b3JkIGJlaW5nIGRlbm90ZWQgYnkgMCAoemVybykuICBXb3JkcyBhcmUKK2luc2VydGVkIGludG8gdGhlIGN1cnJlbnQgbGluZSBzZXBhcmF0ZWQgYnkgc2luZ2xlIHNwYWNlcy4KKworQG5lZWQgMC43NQorRm9yIGV4YW1wbGUsCisKK0B0YWJsZSBAY29kZQorQGl0ZW0gISEKK2Rlc2lnbmF0ZXMgdGhlIHByZWNlZGluZyBjb21tYW5kLiAgV2hlbiB5b3UgdHlwZSB0aGlzLCB0aGUgcHJlY2VkaW5nCitjb21tYW5kIGlzIHJlcGVhdGVkIGluIHRvdG8uCisKK0BpdGVtICEhOiQKK2Rlc2lnbmF0ZXMgdGhlIGxhc3QgYXJndW1lbnQgb2YgdGhlIHByZWNlZGluZyBjb21tYW5kLiAgVGhpcyBtYXkgYmUKK3Nob3J0ZW5lZCB0byBAY29kZXshJH0uCisKK0BpdGVtICFmaToyCitkZXNpZ25hdGVzIHRoZSBzZWNvbmQgYXJndW1lbnQgb2YgdGhlIG1vc3QgcmVjZW50IGNvbW1hbmQgc3RhcnRpbmcgd2l0aAordGhlIGxldHRlcnMgQGNvZGV7Zml9LgorQGVuZCB0YWJsZQorCitAbmVlZCAwLjc1CitIZXJlIGFyZSB0aGUgd29yZCBkZXNpZ25hdG9yczoKKyAKK0B0YWJsZSBAY29kZQorCitAaXRlbSAwICh6ZXJvKQorVGhlIEBjb2RlezB9dGggd29yZC4gIEZvciBtYW55IGFwcGxpY2F0aW9ucywgdGhpcyBpcyB0aGUgY29tbWFuZCB3b3JkLgorCitAaXRlbSBAdmFye259CitUaGUgQHZhcntufXRoIHdvcmQuCisKK0BpdGVtIF4KK1RoZSBmaXJzdCBhcmd1bWVudDsgdGhhdCBpcywgd29yZCAxLgorCitAaXRlbSAkCitUaGUgbGFzdCBhcmd1bWVudC4KKworQGl0ZW0gJQorVGhlIHdvcmQgbWF0Y2hlZCBieSB0aGUgbW9zdCByZWNlbnQgQHNhbXB7P0B2YXJ7c3RyaW5nfT99IHNlYXJjaC4KKworQGl0ZW0gQHZhcnt4fS1AdmFye3l9CitBIHJhbmdlIG9mIHdvcmRzOyBAc2FtcHstQHZhcnt5fX0gYWJicmV2aWF0ZXMgQHNhbXB7MC1AdmFye3l9fS4KKworQGl0ZW0gKgorQWxsIG9mIHRoZSB3b3JkcywgZXhjZXB0IHRoZSBAY29kZXswfXRoLiAgVGhpcyBpcyBhIHN5bm9ueW0gZm9yIEBzYW1wezEtJH0uCitJdCBpcyBub3QgYW4gZXJyb3IgdG8gdXNlIEBzYW1weyp9IGlmIHRoZXJlIGlzIGp1c3Qgb25lIHdvcmQgaW4gdGhlIGV2ZW50OwordGhlIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZCBpbiB0aGF0IGNhc2UuCisKK0BpdGVtIEB2YXJ7eH0qCitBYmJyZXZpYXRlcyBAc2FtcHtAdmFye3h9LSR9CisKK0BpdGVtIEB2YXJ7eH0tCitBYmJyZXZpYXRlcyBAc2FtcHtAdmFye3h9LSR9IGxpa2UgQHNhbXB7QHZhcnt4fSp9LCBidXQgb21pdHMgdGhlIGxhc3Qgd29yZC4KKworQGVuZCB0YWJsZQorCitJZiBhIHdvcmQgZGVzaWduYXRvciBpcyBzdXBwbGllZCB3aXRob3V0IGFuIGV2ZW50IHNwZWNpZmljYXRpb24sIHRoZQorcHJldmlvdXMgY29tbWFuZCBpcyB1c2VkIGFzIHRoZSBldmVudC4KKworQG5vZGUgTW9kaWZpZXJzCitAc3Vic2VjdGlvbiBNb2RpZmllcnMKKworQWZ0ZXIgdGhlIG9wdGlvbmFsIHdvcmQgZGVzaWduYXRvciwgeW91IGNhbiBhZGQgYSBzZXF1ZW5jZSBvZiBvbmUgb3IgbW9yZQorb2YgdGhlIGZvbGxvd2luZyBtb2RpZmllcnMsIGVhY2ggcHJlY2VkZWQgYnkgYSBAc2FtcHs6fS4KKworQHRhYmxlIEBjb2RlCisKK0BpdGVtIGgKK1JlbW92ZSBhIHRyYWlsaW5nIHBhdGhuYW1lIGNvbXBvbmVudCwgbGVhdmluZyBvbmx5IHRoZSBoZWFkLgorCitAaXRlbSB0CitSZW1vdmUgYWxsIGxlYWRpbmcgIHBhdGhuYW1lICBjb21wb25lbnRzLCBsZWF2aW5nIHRoZSB0YWlsLgorCitAaXRlbSByCitSZW1vdmUgYSB0cmFpbGluZyBzdWZmaXggb2YgdGhlIGZvcm0gQHNhbXB7LkB2YXJ7c3VmZml4fX0sIGxlYXZpbmcKK3RoZSBiYXNlbmFtZS4KKworQGl0ZW0gZQorUmVtb3ZlIGFsbCBidXQgdGhlIHRyYWlsaW5nIHN1ZmZpeC4KKworQGl0ZW0gcAorUHJpbnQgdGhlIG5ldyBjb21tYW5kIGJ1dCBkbyBub3QgZXhlY3V0ZSBpdC4KKworQGlmc2V0IEJhc2hGZWF0dXJlcworQGl0ZW0gcQorUXVvdGUgdGhlIHN1YnN0aXR1dGVkIHdvcmRzLCBlc2NhcGluZyBmdXJ0aGVyIHN1YnN0aXR1dGlvbnMuCisKK0BpdGVtIHgKK1F1b3RlIHRoZSBzdWJzdGl0dXRlZCB3b3JkcyBhcyB3aXRoIEBzYW1we3F9LAorYnV0IGJyZWFrIGludG8gd29yZHMgYXQgc3BhY2VzLCB0YWJzLCBhbmQgbmV3bGluZXMuCitAZW5kIGlmc2V0CisKK0BpdGVtIHMvQHZhcntvbGR9L0B2YXJ7bmV3fS8KK1N1YnN0aXR1dGUgQHZhcntuZXd9IGZvciB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiBAdmFye29sZH0gaW4gdGhlCitldmVudCBsaW5lLiAgQW55IGRlbGltaXRlciBtYXkgYmUgdXNlZCBpbiBwbGFjZSBvZiBAc2FtcHsvfS4KK1RoZSBkZWxpbWl0ZXIgbWF5IGJlIHF1b3RlZCBpbiBAdmFye29sZH0gYW5kIEB2YXJ7bmV3fQord2l0aCBhIHNpbmdsZSBiYWNrc2xhc2guICBJZiBAc2FtcHsmfSBhcHBlYXJzIGluIEB2YXJ7bmV3fSwKK2l0IGlzIHJlcGxhY2VkIGJ5IEB2YXJ7b2xkfS4gIEEgc2luZ2xlIGJhY2tzbGFzaCB3aWxsIHF1b3RlCit0aGUgQHNhbXB7Jn0uICBUaGUgZmluYWwgZGVsaW1pdGVyIGlzIG9wdGlvbmFsIGlmIGl0IGlzIHRoZSBsYXN0CitjaGFyYWN0ZXIgb24gdGhlIGlucHV0IGxpbmUuCisKK0BpdGVtICYKK1JlcGVhdCB0aGUgcHJldmlvdXMgc3Vic3RpdHV0aW9uLgorCitAaXRlbSBnCitAaXRlbXggYQorQ2F1c2UgY2hhbmdlcyB0byBiZSBhcHBsaWVkIG92ZXIgdGhlIGVudGlyZSBldmVudCBsaW5lLiAgVXNlZCBpbgorY29uanVuY3Rpb24gd2l0aCBAc2FtcHtzfSwgYXMgaW4gQGNvZGV7Z3MvQHZhcntvbGR9L0B2YXJ7bmV3fS99LAorb3Igd2l0aCBAc2FtcHsmfS4KKworQGl0ZW0gRworQXBwbHkgdGhlIGZvbGxvd2luZyBAc2FtcHtzfSBtb2RpZmllciBvbmNlIHRvIGVhY2ggd29yZCBpbiB0aGUgZXZlbnQuCisKK0BlbmQgdGFibGUKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2RvYy9yZWFkbGluZS4wIGIvcmVhZGxpbmUvZG9jL3JlYWRsaW5lLjAKaW5kZXggODdiZWVhYy4uMTJkNTFmZCAxMDA2NDQKLS0tIGEvcmVhZGxpbmUvZG9jL3JlYWRsaW5lLjAKKysrIGIvcmVhZGxpbmUvZG9jL3JlYWRsaW5lLjAKQEAgLTEsNCArMSw0IEBACi1SRUFETElORSgzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUFETElORSgzKQorUkVBRExJTkUoMykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFQURMSU5FKDMpCiAKIAogCkBAIC0xNCw3MiArMTQsNjMgQEAKICAgICAgICByCHJlCGVhCGFkCGRsCGxpCGluCG5lCGUgKF8IY18Ib18Ibl8Ic18IdCBfCGNfCGhfCGFfCHIgXwgqXwhwXwhyXwhvXwhtXwhwXwh0KTsKIAogQwhDTwhPUAhQWQhZUghSSQhJRwhHSAhIVAhUCi0gICAgICAgUmVhZGxpbmUgIGlzICBDb3B5cmlnaHQgKEMpIDE5ODktMjAwMiBieSB0aGUgRnJlZSBTb2Z0d2FyZQotICAgICAgIEZvdW5kYXRpb24sIEluYy4KKyAgICAgICBSZWFkbGluZSAgaXMgIENvcHlyaWdodCAgKEMpIDE5ODktMjAwNCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorICAgICAgIEluYy4KIAogRAhERQhFUwhTQwhDUghSSQhJUAhQVAhUSQhJTwhPTghOCi0gICAgICAgcghyZQhlYQhhZAhkbAhsaQhpbghuZQhlIHdpbGwgcmVhZCBhIGxpbmUgZnJvbSB0aGUgdGVybWluYWwgYW5kIHJldHVybiBpdCwKLSAgICAgICB1c2luZyAgcAhwcghybwhvbQhtcAhwdAh0IGFzIGEgcHJvbXB0LiAgSWYgcAhwcghybwhvbQhtcAhwdAh0IGlzIE4ITlUIVUwITEwITCBvciB0aGUgZW1wdHkKLSAgICAgICBzdHJpbmcsIG5vIHByb21wdCBpcyBpc3N1ZWQuICBUaGUgbGluZSByZXR1cm5lZCAgaXMgIGFsbG8tCi0gICAgICAgY2F0ZWQgIHdpdGggIF8IbV8IYV8IbF8IbF8Ib18IYygzKTsgIHRoZSBjYWxsZXIgbXVzdCBmcmVlIGl0IHdoZW4gZmluLQotICAgICAgIGlzaGVkLiAgVGhlIGxpbmUgcmV0dXJuZWQgaGFzIHRoZSBmaW5hbCAgbmV3bGluZSAgcmVtb3ZlZCwKLSAgICAgICBzbyBvbmx5IHRoZSB0ZXh0IG9mIHRoZSBsaW5lIHJlbWFpbnMuCisgICAgICAgcghyZQhlYQhhZAhkbAhsaQhpbghuZQhlIHdpbGwgcmVhZCBhIGxpbmUgZnJvbSB0aGUgdGVybWluYWwgYW5kIHJldHVybiBpdCwgdXNpbmcgcAhwcghybwhvbQhtcAhwdAh0CisgICAgICAgYXMgIGEgIHByb21wdC4gICBJZiAgcAhwcghybwhvbQhtcAhwdAh0ICBpcyAgTghOVQhVTAhMTAhMIG9yIHRoZSBlbXB0eSBzdHJpbmcsIG5vIHByb21wdCBpcworICAgICAgIGlzc3VlZC4gIFRoZSBsaW5lIHJldHVybmVkIGlzIGFsbG9jYXRlZCB3aXRoIF8IbV8IYV8IbF8IbF8Ib18IYygzKTsgdGhlIGNhbGxlciBtdXN0CisgICAgICAgZnJlZSAgaXQgIHdoZW4gIGZpbmlzaGVkLiAgIFRoZSAgbGluZSAgcmV0dXJuZWQgIGhhcyAgdGhlIGZpbmFsIG5ld2xpbmUKKyAgICAgICByZW1vdmVkLCBzbyBvbmx5IHRoZSB0ZXh0IG9mIHRoZSBsaW5lIHJlbWFpbnMuCiAKLSAgICAgICByCHJlCGVhCGFkCGRsCGxpCGluCG5lCGUgIG9mZmVycyAgZWRpdGluZyAgY2FwYWJpbGl0aWVzICB3aGlsZSB0aGUgdXNlciBpcwotICAgICAgIGVudGVyaW5nIHRoZSBsaW5lLiAgQnkgZGVmYXVsdCwgdGhlIGxpbmUgZWRpdGluZyAgY29tbWFuZHMKLSAgICAgICBhcmUgIHNpbWlsYXIgIHRvICB0aG9zZSBvZiBlbWFjcy4gIEEgdmktc3R5bGUgbGluZSBlZGl0aW5nCi0gICAgICAgaW50ZXJmYWNlIGlzIGFsc28gYXZhaWxhYmxlLgorICAgICAgIHIIcmUIZWEIYWQIZGwIbGkIaW4IbmUIZSBvZmZlcnMgZWRpdGluZyBjYXBhYmlsaXRpZXMgd2hpbGUgdGhlICB1c2VyICBpcyAgZW50ZXJpbmcgIHRoZQorICAgICAgIGxpbmUuICAgQnkgIGRlZmF1bHQsICB0aGUgbGluZSBlZGl0aW5nIGNvbW1hbmRzIGFyZSBzaW1pbGFyIHRvIHRob3NlIG9mCisgICAgICAgZW1hY3MuICBBIHZpLXN0eWxlIGxpbmUgZWRpdGluZyBpbnRlcmZhY2UgaXMgYWxzbyBhdmFpbGFibGUuCiAKLSAgICAgICBUaGlzIG1hbnVhbCBwYWdlIGRlc2NyaWJlcyBvbmx5ICB0aGUgIG1vc3QgIGJhc2ljICB1c2UgIG9mCi0gICAgICAgcghyZQhlYQhhZAhkbAhsaQhpbghuZQhlLiAgIE11Y2ggIG1vcmUgZnVuY3Rpb25hbGl0eSBpcyBhdmFpbGFibGU7IHNlZSBfCFRfCGhfCGUKLSAgICAgICBfCEdfCE5fCFUgXwhSXwhlXwhhXwhkXwhsXwhpXwhuXwhlIF8ITF8IaV8IYl8Icl8IYV8Icl8IeSBhbmQgXwhUXwhoXwhlIF8IR18ITl8IVSBfCEhfCGlfCHNfCHRfCG9fCHJfCHkgXwhMXwhpXwhiXwhyXwhhXwhyXwh5IGZvciBhZGRpLQotICAgICAgIHRpb25hbCBpbmZvcm1hdGlvbi4KKyAgICAgICBUaGlzIG1hbnVhbCBwYWdlIGRlc2NyaWJlcyBvbmx5IHRoZSBtb3N0IGJhc2ljIHVzZSBvZiAgcghyZQhlYQhhZAhkbAhsaQhpbghuZQhlLiAgIE11Y2gKKyAgICAgICBtb3JlICBmdW5jdGlvbmFsaXR5ICBpcyBhdmFpbGFibGU7IHNlZSBfCFRfCGhfCGUgXwhHXwhOXwhVIF8IUl8IZV8IYV8IZF8IbF8IaV8Ibl8IZSBfCExfCGlfCGJfCHJfCGFfCHJfCHkgYW5kIF8IVF8IaF8IZQorICAgICAgIF8IR18ITl8IVSBfCEhfCGlfCHNfCHRfCG9fCHJfCHkgXwhMXwhpXwhiXwhyXwhhXwhyXwh5IGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uLgogCiBSCFJFCEVUCFRVCFVSCFJOCE4gVghWQQhBTAhMVQhVRQhFCi0gICAgICAgcghyZQhlYQhhZAhkbAhsaQhpbghuZQhlICByZXR1cm5zIHRoZSB0ZXh0IG9mIHRoZSBsaW5lIHJlYWQuICBBIGJsYW5rIGxpbmUKLSAgICAgICByZXR1cm5zIHRoZSBlbXB0eSBzdHJpbmcuICBJZiAgRQhFTwhPRghGICBpcyAgZW5jb3VudGVyZWQgIHdoaWxlCi0gICAgICAgcmVhZGluZyAgYSAgbGluZSwgYW5kIHRoZSBsaW5lIGlzIGVtcHR5LCBOCE5VCFVMCExMCEwgaXMgcmV0dXJuZWQuCi0gICAgICAgSWYgYW4gRQhFTwhPRghGIGlzIHJlYWQgd2l0aCBhIG5vbi1lbXB0eSBsaW5lLCBpdCBpcyB0cmVhdGVkICBhcwotICAgICAgIGEgbmV3bGluZS4KKyAgICAgICByCHJlCGVhCGFkCGRsCGxpCGluCG5lCGUgcmV0dXJucyB0aGUgdGV4dCBvZiB0aGUgbGluZSByZWFkLiAgQSBibGFuayBsaW5lICByZXR1cm5zICB0aGUKKyAgICAgICBlbXB0eSBzdHJpbmcuICBJZiBFCEVPCE9GCEYgaXMgZW5jb3VudGVyZWQgd2hpbGUgcmVhZGluZyBhIGxpbmUsIGFuZCB0aGUgbGluZQorICAgICAgIGlzIGVtcHR5LCBOCE5VCFVMCExMCEwgaXMgcmV0dXJuZWQuICBJZiBhbiBFCEVPCE9GCEYgaXMgcmVhZCB3aXRoIGEgIG5vbi1lbXB0eSAgbGluZSwKKyAgICAgICBpdCBpcyB0cmVhdGVkIGFzIGEgbmV3bGluZS4KIAogTghOTwhPVAhUQQhBVAhUSQhJTwhPTghOCi0gICAgICAgQW4gIGVtYWNzLXN0eWxlICBub3RhdGlvbiAgaXMgIHVzZWQgIHRvIGRlbm90ZSBrZXlzdHJva2VzLgotICAgICAgIENvbnRyb2wga2V5cyBhcmUgZGVub3RlZCBieSBDLV8Ia18IZV8IeSwgZS5nLiwgIEMtbiAgbWVhbnMgIENvbi0KLSAgICAgICB0cm9sLU4uICBTaW1pbGFybHksIF8IbV8IZV8IdF8IYSBrZXlzIGFyZSBkZW5vdGVkIGJ5IE0tXwhrXwhlXwh5LCBzbyBNLXgKLSAgICAgICBtZWFucyBNZXRhLVguICAoT24ga2V5Ym9hcmRzIHdpdGhvdXQgYSBfCG1fCGVfCHRfCGEga2V5LCBNLV8IeCBtZWFucwotICAgICAgIEVTQyAgXwh4LCAgaS5lLiwgIHByZXNzIHRoZSBFc2NhcGUga2V5IHRoZW4gdGhlIF8IeCBrZXkuICBUaGlzCi0gICAgICAgbWFrZXMgRVNDIHRoZSBfCG1fCGVfCHRfCGEgXwhwXwhyXwhlXwhmXwhpXwh4LiAgVGhlICBjb21iaW5hdGlvbiAgTS1DLV8IeCAgbWVhbnMKLSAgICAgICBFU0MtQ29udHJvbC1fCHgsICBvciBwcmVzcyB0aGUgRXNjYXBlIGtleSB0aGVuIGhvbGQgdGhlIENvbi0KLSAgICAgICB0cm9sIGtleSB3aGlsZSBwcmVzc2luZyB0aGUgXwh4IGtleS4pCisgICAgICAgQW4gZW1hY3Mtc3R5bGUgbm90YXRpb24gaXMgdXNlZCB0byBkZW5vdGUga2V5c3Ryb2tlcy4gIENvbnRyb2wga2V5cyBhcmUKKyAgICAgICBkZW5vdGVkIGJ5IEMtXwhrXwhlXwh5LCBlLmcuLCBDLW4gbWVhbnMgQ29udHJvbC1OLiAgU2ltaWxhcmx5LCBfCG1fCGVfCHRfCGEga2V5cyAgYXJlCisgICAgICAgZGVub3RlZCAgYnkgIE0tXwhrXwhlXwh5LCAgc28gTS14IG1lYW5zIE1ldGEtWC4gIChPbiBrZXlib2FyZHMgd2l0aG91dCBhIF8IbV8IZV8IdF8IYQorICAgICAgIGtleSwgTS1fCHggbWVhbnMgRVNDIF8IeCwgaS5lLiwgcHJlc3MgdGhlIEVzY2FwZSBrZXkgdGhlbiB0aGUgXwh4IGtleS4gICBUaGlzCisgICAgICAgbWFrZXMgIEVTQyB0aGUgXwhtXwhlXwh0XwhhIF8IcF8Icl8IZV8IZl8IaV8IeC4gIFRoZSBjb21iaW5hdGlvbiBNLUMtXwh4IG1lYW5zIEVTQy1Db250cm9sLV8IeCwKKyAgICAgICBvciBwcmVzcyB0aGUgRXNjYXBlIGtleSB0aGVuIGhvbGQgdGhlIENvbnRyb2wga2V5IHdoaWxlIHByZXNzaW5nIHRoZSAgXwh4CisgICAgICAga2V5LikKIAotICAgICAgIFJlYWRsaW5lIGNvbW1hbmRzIG1heSBiZSBnaXZlbiAgbnVtZXJpYyAgXwhhXwhyXwhnXwh1XwhtXwhlXwhuXwh0XwhzLCAgd2hpY2gKLSAgICAgICBub3JtYWxseSBhY3QgYXMgYSByZXBlYXQgY291bnQuICBTb21ldGltZXMsIGhvd2V2ZXIsIGl0IGlzCi0gICAgICAgdGhlIHNpZ24gb2YgdGhlIGFyZ3VtZW50IHRoYXQgaXMgc2lnbmlmaWNhbnQuICAgUGFzc2luZyAgYQotICAgICAgIG5lZ2F0aXZlICBhcmd1bWVudCAgdG8gIGEgY29tbWFuZCB0aGF0IGFjdHMgaW4gdGhlIGZvcndhcmQKLSAgICAgICBkaXJlY3Rpb24gKGUuZy4sIGsIa2kIaWwIbGwIbC0ILWwIbGkIaW4IbmUIZSkgY2F1c2VzIHRoYXQgY29tbWFuZCB0byBhY3QgIGluCi0gICAgICAgYSAgYmFja3dhcmQgZGlyZWN0aW9uLiAgQ29tbWFuZHMgd2hvc2UgYmVoYXZpb3Igd2l0aCBhcmd1LQotICAgICAgIG1lbnRzIGRldmlhdGVzIGZyb20gdGhpcyBhcmUgbm90ZWQuCisgICAgICAgUmVhZGxpbmUgY29tbWFuZHMgbWF5IGJlIGdpdmVuIG51bWVyaWMgXwhhXwhyXwhnXwh1XwhtXwhlXwhuXwh0XwhzLCB3aGljaCBub3JtYWxseSBhY3QgYXMKKyAgICAgICBhIHJlcGVhdCBjb3VudC4gIFNvbWV0aW1lcywgaG93ZXZlciwgaXQgaXMgdGhlICBzaWduICBvZiAgdGhlICBhcmd1bWVudAorICAgICAgIHRoYXQgIGlzICBzaWduaWZpY2FudC4gICBQYXNzaW5nICBhIG5lZ2F0aXZlIGFyZ3VtZW50IHRvIGEgY29tbWFuZCB0aGF0CisgICAgICAgYWN0cyBpbiB0aGUgZm9yd2FyZCBkaXJlY3Rpb24gKGUuZy4sIGsIa2kIaWwIbGwIbC0ILWwIbGkIaW4IbmUIZSkgY2F1c2VzIHRoYXQgY29tbWFuZCAgdG8KKyAgICAgICBhY3QgIGluICBhICBiYWNrd2FyZCBkaXJlY3Rpb24uICBDb21tYW5kcyB3aG9zZSBiZWhhdmlvciB3aXRoIGFyZ3VtZW50cworICAgICAgIGRldmlhdGVzIGZyb20gdGhpcyBhcmUgbm90ZWQuCiAKLSAgICAgICBXaGVuIGEgY29tbWFuZCBpcyBkZXNjcmliZWQgIGFzICBfCGtfCGlfCGxfCGxfCGlfCG5fCGcgIHRleHQsICB0aGUgIHRleHQKLSAgICAgICBkZWxldGVkICBpcyBzYXZlZCBmb3IgcG9zc2libGUgZnV0dXJlIHJldHJpZXZhbCAoXwh5XwhhXwhuXwhrXwhpXwhuXwhnKS4KLSAgICAgICBUaGUga2lsbGVkIHRleHQgaXMgc2F2ZWQgIGluICBhICBfCGtfCGlfCGxfCGwgIF8Icl8IaV8Ibl8IZy4gICBDb25zZWN1dGl2ZQotICAgICAgIGtpbGxzICBjYXVzZSAgdGhlICB0ZXh0ICB0byAgYmUgYWNjdW11bGF0ZWQgaW50byBvbmUgdW5pdCwKLSAgICAgICB3aGljaCBjYW4gYmUgeWFua2VkIGFsbCBhdCBvbmNlLiAgQ29tbWFuZHMgIHdoaWNoICBkbyAgbm90Ci0gICAgICAga2lsbCB0ZXh0IHNlcGFyYXRlIHRoZSBjaHVua3Mgb2YgdGV4dCBvbiB0aGUga2lsbCByaW5nLgorICAgICAgIFdoZW4gYSBjb21tYW5kIGlzIGRlc2NyaWJlZCBhcyBfCGtfCGlfCGxfCGxfCGlfCG5fCGcgdGV4dCwgdGhlIHRleHQgZGVsZXRlZCBpcyAgc2F2ZWQKKyAgICAgICBmb3IgcG9zc2libGUgZnV0dXJlIHJldHJpZXZhbCAoXwh5XwhhXwhuXwhrXwhpXwhuXwhnKS4gIFRoZSBraWxsZWQgdGV4dCBpcyBzYXZlZCBpbiBhCisgICAgICAgXwhrXwhpXwhsXwhsIF8Icl8IaV8Ibl8IZy4gIENvbnNlY3V0aXZlIGtpbGxzIGNhdXNlIHRoZSB0ZXh0IHRvIGJlIGFjY3VtdWxhdGVkIGludG8gb25lCisgICAgICAgdW5pdCwgd2hpY2ggY2FuIGJlIHlhbmtlZCBhbGwgYXQgb25jZS4gIENvbW1hbmRzIHdoaWNoIGRvIG5vdCBraWxsIHRleHQKKyAgICAgICBzZXBhcmF0ZSB0aGUgY2h1bmtzIG9mIHRleHQgb24gdGhlIGtpbGwgcmluZy4KIAogSQhJTghOSQhJVAhUSQhJQQhBTAhMSQhJWghaQQhBVAhUSQhJTwhPTghOIEYIRkkISUwITEUIRQotICAgICAgIFJlYWRsaW5lICBpcyBjdXN0b21pemVkIGJ5IHB1dHRpbmcgY29tbWFuZHMgaW4gYW4gaW5pdGlhbC0KLSAgICAgICBpemF0aW9uIGZpbGUgKHRoZSBfCGlfCG5fCHBfCHVfCHRfCHJfCGMgZmlsZSkuICBUaGUgbmFtZSBvZiB0aGlzIGZpbGUgaXMKLSAgICAgICB0YWtlbiAgZnJvbSB0aGUgdmFsdWUgb2YgdGhlIEkISU4ITlAIUFUIVVQIVFIIUkMIQyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KLSAgICAgICBJZiB0aGF0IHZhcmlhYmxlIGlzICB1bnNldCwgIHRoZSAgZGVmYXVsdCAgaXMgIF8Ifl8IL18ILl8IaV8Ibl8IcF8IdV8IdF8Icl8IYy4KLSAgICAgICBXaGVuICBhIHByb2dyYW0gd2hpY2ggdXNlcyB0aGUgcmVhZGxpbmUgbGlicmFyeSBzdGFydHMgdXAsCi0gICAgICAgdGhlIGluaXQgZmlsZSBpcyByZWFkLCBhbmQgdGhlIGtleSBiaW5kaW5ncyBhbmQgIHZhcmlhYmxlcwotICAgICAgIGFyZSBzZXQuICBUaGVyZSBhcmUgb25seSBhIGZldyBiYXNpYyBjb25zdHJ1Y3RzIGFsbG93ZWQgaW4KLSAgICAgICB0aGUgcmVhZGxpbmUgaW5pdCBmaWxlLiAgQmxhbmsgbGluZXMgYXJlICBpZ25vcmVkLiAgIExpbmVzCi0gICAgICAgYmVnaW5uaW5nIHdpdGggYSAjCCMgYXJlIGNvbW1lbnRzLiAgTGluZXMgYmVnaW5uaW5nIHdpdGggYSAkCCQKLSAgICAgICBpbmRpY2F0ZSBjb25kaXRpb25hbCBjb25zdHJ1Y3RzLiAgT3RoZXIgbGluZXMgIGRlbm90ZSAga2V5Ci0gICAgICAgYmluZGluZ3MgIGFuZCAgdmFyaWFibGUgc2V0dGluZ3MuICBFYWNoIHByb2dyYW0gdXNpbmcgdGhpcwotICAgICAgIGxpYnJhcnkgbWF5IGFkZCBpdHMgb3duIGNvbW1hbmRzIGFuZCBiaW5kaW5ncy4KKyAgICAgICBSZWFkbGluZSBpcyBjdXN0b21pemVkIGJ5IHB1dHRpbmcgY29tbWFuZHMgaW4gIGFuICBpbml0aWFsaXphdGlvbiAgZmlsZQorICAgICAgICh0aGUgIF8IaV8Ibl8IcF8IdV8IdF8Icl8IYyAgZmlsZSkuICBUaGUgbmFtZSBvZiB0aGlzIGZpbGUgaXMgdGFrZW4gZnJvbSB0aGUgdmFsdWUgb2YKKyAgICAgICB0aGUgSQhJTghOUAhQVQhVVAhUUghSQwhDIGVudmlyb25tZW50IHZhcmlhYmxlLiAgIElmICB0aGF0ICB2YXJpYWJsZSAgaXMgIHVuc2V0LCAgdGhlCisgICAgICAgZGVmYXVsdCAgaXMgXwh+XwgvXwguXwhpXwhuXwhwXwh1Xwh0XwhyXwhjLiAgV2hlbiBhIHByb2dyYW0gd2hpY2ggdXNlcyB0aGUgcmVhZGxpbmUgbGlicmFyeQorICAgICAgIHN0YXJ0cyB1cCwgdGhlIGluaXQgZmlsZSBpcyByZWFkLCBhbmQgdGhlIGtleSAgYmluZGluZ3MgIGFuZCAgdmFyaWFibGVzCisgICAgICAgYXJlIHNldC4gIFRoZXJlIGFyZSBvbmx5IGEgZmV3IGJhc2ljIGNvbnN0cnVjdHMgYWxsb3dlZCBpbiB0aGUgcmVhZGxpbmUKKyAgICAgICBpbml0IGZpbGUuICBCbGFuayBsaW5lcyBhcmUgaWdub3JlZC4gIExpbmVzIGJlZ2lubmluZyB3aXRoIGEgIwgjIGFyZSBjb20tCisgICAgICAgbWVudHMuICAgTGluZXMgIGJlZ2lubmluZyAgd2l0aCAgYSAgJAgkICBpbmRpY2F0ZSBjb25kaXRpb25hbCBjb25zdHJ1Y3RzLgorICAgICAgIE90aGVyIGxpbmVzIGRlbm90ZSBrZXkgYmluZGluZ3MgYW5kIHZhcmlhYmxlICBzZXR0aW5ncy4gICBFYWNoICBwcm9ncmFtCisgICAgICAgdXNpbmcgdGhpcyBsaWJyYXJ5IG1heSBhZGQgaXRzIG93biBjb21tYW5kcyBhbmQgYmluZGluZ3MuCiAKICAgICAgICBGb3IgZXhhbXBsZSwgcGxhY2luZwogCkBAIC04Nyw1OCArNzgsNTIgQEAKICAgICAgICBvcgogICAgICAgICAgICAgICBDLU1ldGEtdTogdW5pdmVyc2FsLWFyZ3VtZW50CiAKLSAgICAgICBpbnRvIHRoZSBfCGlfCG5fCHBfCHVfCHRfCHJfCGMgd291bGQgbWFrZSAgTS1DLXUgIGV4ZWN1dGUgIHRoZSAgcmVhZGxpbmUKLSAgICAgICBjb21tYW5kIF8IdV8Ibl8IaV8Idl8IZV8Icl8Ic18IYV8IbF8ILV8IYV8Icl8IZ18IdV8IbV8IZV8Ibl8IdC4KKyAgICAgICBpbnRvICB0aGUgXwhpXwhuXwhwXwh1Xwh0XwhyXwhjIHdvdWxkIG1ha2UgTS1DLXUgZXhlY3V0ZSB0aGUgcmVhZGxpbmUgY29tbWFuZCBfCHVfCG5fCGlfCHZfCGVfCHJfCC0KKyAgICAgICBfCHNfCGFfCGxfCC1fCGFfCHJfCGdfCHVfCG1fCGVfCG5fCHQuCiAKLSAgICAgICBUaGUgIGZvbGxvd2luZyAgc3ltYm9saWMgIGNoYXJhY3RlciAgbmFtZXMgIGFyZSByZWNvZ25pemVkCi0gICAgICAgd2hpbGUgcHJvY2Vzc2luZyBrZXkgYmluZGluZ3M6IF8IRF8IRV8ITCwgXwhFXwhTXwhDLCBfCEVfCFNfCENfCEFfCFBfCEUsIF8ITF8IRl8IRCwgXwhOXwhFXwhXXwgtCi0gICAgICAgXwhMXwhJXwhOXwhFLCBfCFJfCEVfCFQsIF8IUl8IRV8IVF8IVV8IUl8ITiwgXwhSXwhVXwhCXwhPXwhVXwhULCBfCFNfCFBfCEFfCENfCEUsIF8IU18IUF8IQywgYW5kIF8IVF8IQV8IQi4KKyAgICAgICBUaGUgZm9sbG93aW5nIHN5bWJvbGljIGNoYXJhY3RlciBuYW1lcyBhcmUgcmVjb2duaXplZCB3aGlsZSAgcHJvY2Vzc2luZworICAgICAgIGtleSAgYmluZGluZ3M6ICBfCERfCEVfCEwsICBfCEVfCFNfCEMsICBfCEVfCFNfCENfCEFfCFBfCEUsICBfCExfCEZfCEQsIF8ITl8IRV8IV18ITF8ISV8ITl8IRSwgXwhSXwhFXwhULCBfCFJfCEVfCFRfCFVfCFJfCE4sIF8IUl8IVV8IQl8IT18IVV8IVCwKKyAgICAgICBfCFNfCFBfCEFfCENfCEUsIF8IU18IUF8IQywgYW5kIF8IVF8IQV8IQi4KIAotICAgICAgIEluICBhZGRpdGlvbiAgdG8gY29tbWFuZCBuYW1lcywgcmVhZGxpbmUgYWxsb3dzIGtleXMgdG8gYmUKLSAgICAgICBib3VuZCB0byBhIHN0cmluZyB0aGF0IGlzIGluc2VydGVkIHdoZW4gdGhlIGtleSBpcyBwcmVzc2VkCi0gICAgICAgKGEgXwhtXwhhXwhjXwhyXwhvKS4KKyAgICAgICBJbiBhZGRpdGlvbiB0byBjb21tYW5kIG5hbWVzLCByZWFkbGluZSBhbGxvd3Mga2V5cyB0byAgYmUgIGJvdW5kICB0byAgYQorICAgICAgIHN0cmluZyB0aGF0IGlzIGluc2VydGVkIHdoZW4gdGhlIGtleSBpcyBwcmVzc2VkIChhIF8IbV8IYV8IY18Icl8IbykuCiAKIAogICAgSwhLZQhleQh5IEIIQmkIaW4IbmQIZGkIaW4IbmcIZ3MIcwotICAgICAgIFRoZSAgc3ludGF4ICBmb3IgIGNvbnRyb2xsaW5nICBrZXkgYmluZGluZ3MgaW4gdGhlIF8IaV8Ibl8IcF8IdV8IdF8Icl8IYwotICAgICAgIGZpbGUgaXMgc2ltcGxlLiAgQWxsIHRoYXQgaXMgcmVxdWlyZWQgaXMgdGhlIG5hbWUgIG9mICB0aGUKLSAgICAgICBjb21tYW5kIG9yIHRoZSB0ZXh0IG9mIGEgbWFjcm8gYW5kIGEga2V5IHNlcXVlbmNlIHRvIHdoaWNoCi0gICAgICAgaXQgc2hvdWxkIGJlIGJvdW5kLiBUaGUgbmFtZSBtYXkgYmUgc3BlY2lmaWVkICBpbiAgb25lICBvZgotICAgICAgIHR3byAgd2F5czogIGFzIGEgc3ltYm9saWMga2V5IG5hbWUsIHBvc3NpYmx5IHdpdGggXwhNXwhlXwh0XwhhXwgtIG9yCisgICAgICAgVGhlICBzeW50YXggZm9yIGNvbnRyb2xsaW5nIGtleSBiaW5kaW5ncyBpbiB0aGUgXwhpXwhuXwhwXwh1Xwh0XwhyXwhjIGZpbGUgaXMgc2ltcGxlLgorICAgICAgIEFsbCB0aGF0IGlzIHJlcXVpcmVkIGlzIHRoZSBuYW1lIG9mIHRoZSBjb21tYW5kIG9yIHRoZSB0ZXh0IG9mIGEgIG1hY3JvCisgICAgICAgYW5kICBhIGtleSBzZXF1ZW5jZSB0byB3aGljaCBpdCBzaG91bGQgYmUgYm91bmQuIFRoZSBuYW1lIG1heSBiZSBzcGVjaS0KKyAgICAgICBmaWVkIGluIG9uZSBvZiB0d28gd2F5czogYXMgYSBzeW1ib2xpYyBrZXkgbmFtZSwgcG9zc2libHkgd2l0aCBfCE1fCGVfCHRfCGFfCC0gb3IKICAgICAgICBfCENfCG9fCG5fCHRfCHJfCG9fCGxfCC0gcHJlZml4ZXMsIG9yIGFzIGEga2V5IHNlcXVlbmNlLgogCi0gICAgICAgV2hlbiB1c2luZyB0aGUgZm9ybSBrCGtlCGV5CHluCG5hCGFtCG1lCGU6XwhmXwh1XwhuXwhjXwh0XwhpXwhvXwhuXwgtXwhuXwhhXwhtXwhlIG9yICBfCG1fCGFfCGNfCHJfCG8sICBfCGtfCGVfCHlfCC0KLSAgICAgICBfCG5fCGFfCG1fCGUgIGlzICB0aGUgIG5hbWUgIG9mIGEga2V5IHNwZWxsZWQgb3V0IGluIEVuZ2xpc2guICBGb3IKLSAgICAgICBleGFtcGxlOgorICAgICAgIFdoZW4gdXNpbmcgdGhlIGZvcm0gawhrZQhleQh5bghuYQhhbQhtZQhlOl8IZl8IdV8Ibl8IY18IdF8IaV8Ib18Ibl8ILV8Ibl8IYV8IbV8IZSBvciBfCG1fCGFfCGNfCHJfCG8sIF8Ia18IZV8IeV8Ibl8IYV8IbV8IZSBpcyB0aGUgbmFtZQorICAgICAgIG9mIGEga2V5IHNwZWxsZWQgb3V0IGluIEVuZ2xpc2guICBGb3IgZXhhbXBsZToKIAogICAgICAgICAgICAgICBDb250cm9sLXU6IHVuaXZlcnNhbC1hcmd1bWVudAogICAgICAgICAgICAgICBNZXRhLVJ1Ym91dDogYmFja3dhcmQta2lsbC13b3JkCiAgICAgICAgICAgICAgIENvbnRyb2wtbzogIj4gb3V0cHV0IgogCi0gICAgICAgSW4gdGhlIGFib3ZlIGV4YW1wbGUsIF8IQ18ILV8IdSBpcyBib3VuZCB0byB0aGUgZnVuY3Rpb24gdQh1bghuaQhpdgh2ZQhlcghyLQgtCi0gICAgICAgcwhzYQhhbAhsLQgtYQhhcghyZwhndQh1bQhtZQhlbghudAh0LCAgIF8ITV8ILV8IRF8IRV8ITCAgaXMgIGJvdW5kICB0byAgdGhlICBmdW5jdGlvbiAgYghiYQhhYwhjawhrLQgtCi0gICAgICAgdwh3YQhhcghyZAhkLQgtawhraQhpbAhsbAhsLQgtdwh3bwhvcghyZAhkLCAgYW5kICBfCENfCC1fCG8gIGlzICBib3VuZCAgdG8gIHJ1biAgdGhlICAgbWFjcm8KLSAgICAgICBleHByZXNzZWQgIG9uICB0aGUgcmlnaHQgaGFuZCBzaWRlICh0aGF0IGlzLCB0byBpbnNlcnQgdGhlCisgICAgICAgSW4gdGhlIGFib3ZlIGV4YW1wbGUsIF8IQ18ILV8IdSBpcyBib3VuZCB0byB0aGUgZnVuY3Rpb24gIHUIdW4IbmkIaXYIdmUIZXIIcnMIc2EIYWwIbC0ILWEIYXIIcmcIZ3UIdW0IbWUIZW4IbnQIdCwKKyAgICAgICBfCE1fCC1fCERfCEVfCEwgIGlzIGJvdW5kIHRvIHRoZSBmdW5jdGlvbiBiCGJhCGFjCGNrCGt3CHdhCGFyCHJkCGQtCC1rCGtpCGlsCGxsCGwtCC13CHdvCG9yCHJkCGQsIGFuZCBfCENfCC1fCG8gaXMgYm91bmQgdG8KKyAgICAgICBydW4gdGhlIG1hY3JvIGV4cHJlc3NlZCBvbiB0aGUgcmlnaHQgaGFuZCBzaWRlICh0aGF0IGlzLCB0byBpbnNlcnQgIHRoZQogICAgICAgIHRleHQgYGA+IG91dHB1dCcnIGludG8gdGhlIGxpbmUpLgogCi0gICAgICAgSW4gdGhlIHNlY29uZCBmb3JtLCAiCCJrCGtlCGV5CHlzCHNlCGVxCHEiCCI6XwhmXwh1XwhuXwhjXwh0XwhpXwhvXwhuXwgtXwhuXwhhXwhtXwhlIG9yIF8IbV8IYV8IY18Icl8IbywgIGsIa2UIZXkIeS0ILQotICAgICAgIHMIc2UIZXEIcSBkaWZmZXJzIGZyb20gawhrZQhleQh5bghuYQhhbQhtZQhlIGFib3ZlIGluIHRoYXQgc3RyaW5ncyBkZW5vdGluZyBhbgotICAgICAgIGVudGlyZSBrZXkgIHNlcXVlbmNlICBtYXkgIGJlICBzcGVjaWZpZWQgIGJ5ICBwbGFjaW5nICB0aGUKLSAgICAgICBzZXF1ZW5jZSAgd2l0aGluICBkb3VibGUgcXVvdGVzLiAgU29tZSBHTlUgRW1hY3Mgc3R5bGUga2V5Ci0gICAgICAgZXNjYXBlcyBjYW4gYmUgdXNlZCwgYXMgaW4gdGhlIGZvbGxvd2luZyBleGFtcGxlLCBidXQgIHRoZQotICAgICAgIHN5bWJvbGljIGNoYXJhY3RlciBuYW1lcyBhcmUgbm90IHJlY29nbml6ZWQuCisgICAgICAgSW4gIHRoZSAgc2Vjb25kICBmb3JtLCAgIggiawhrZQhleQh5cwhzZQhlcQhxIggiOl8IZl8IdV8Ibl8IY18IdF8IaV8Ib18Ibl8ILV8Ibl8IYV8IbV8IZSBvciBfCG1fCGFfCGNfCHJfCG8sIGsIa2UIZXkIeXMIc2UIZXEIcSBkaWZmZXJzCisgICAgICAgZnJvbSBrCGtlCGV5CHluCG5hCGFtCG1lCGUgYWJvdmUgaW4gdGhhdCBzdHJpbmdzIGRlbm90aW5nIGFuIGVudGlyZSBrZXkgc2VxdWVuY2UgIG1heQorICAgICAgIGJlICBzcGVjaWZpZWQgIGJ5ICBwbGFjaW5nIHRoZSBzZXF1ZW5jZSB3aXRoaW4gZG91YmxlIHF1b3Rlcy4gIFNvbWUgR05VCisgICAgICAgRW1hY3Mgc3R5bGUga2V5IGVzY2FwZXMgY2FuIGJlIHVzZWQsIGFzIGluIHRoZSBmb2xsb3dpbmcgIGV4YW1wbGUsICBidXQKKyAgICAgICB0aGUgc3ltYm9saWMgY2hhcmFjdGVyIG5hbWVzIGFyZSBub3QgcmVjb2duaXplZC4KIAogICAgICAgICAgICAgICAiXEMtdSI6IHVuaXZlcnNhbC1hcmd1bWVudAogICAgICAgICAgICAgICAiXEMteFxDLXIiOiByZS1yZWFkLWluaXQtZmlsZQogICAgICAgICAgICAgICAiXGVbMTF+IjogIkZ1bmN0aW9uIEtleSAxIgogCi0gICAgICAgSW4gIHRoaXMgIGV4YW1wbGUsIF8IQ18ILV8IdSBpcyBhZ2FpbiBib3VuZCB0byB0aGUgZnVuY3Rpb24gdQh1bghuaQhpLQgtCi0gICAgICAgdgh2ZQhlcghycwhzYQhhbAhsLQgtYQhhcghyZwhndQh1bQhtZQhlbghudAh0LiAgIF8IQ18ILV8IeCAgXwhDXwgtXwhyICBpcyAgYm91bmQgIHRvICB0aGUgICBmdW5jdGlvbgotICAgICAgIHIIcmUIZS0ILXIIcmUIZWEIYWQIZC0ILWkIaW4IbmkIaXQIdC0ILWYIZmkIaWwIbGUIZSwgIGFuZCBfCEVfCFNfCEMgXwhbIF8IMSBfCDEgXwh+IGlzIGJvdW5kIHRvIGluc2VydCB0aGUKLSAgICAgICB0ZXh0IGBgRnVuY3Rpb24gS2V5IDEnJy4KKyAgICAgICBJbiB0aGlzIGV4YW1wbGUsIF8IQ18ILV8IdSBpcyBhZ2FpbiBib3VuZCB0byB0aGUgZnVuY3Rpb24gdQh1bghuaQhpdgh2ZQhlcghycwhzYQhhbAhsLQgtYQhhcghyZwhndQh1bQhtZQhlbghudAh0LgorICAgICAgIF8IQ18ILV8IeCBfCENfCC1fCHIgaXMgYm91bmQgdG8gdGhlIGZ1bmN0aW9uIHIIcmUIZS0ILXIIcmUIZWEIYWQIZC0ILWkIaW4IbmkIaXQIdC0ILWYIZmkIaWwIbGUIZSwgYW5kIF8IRV8IU18IQyBfCFsgXwgxIF8IMSBfCH4gIGlzCisgICAgICAgYm91bmQgdG8gaW5zZXJ0IHRoZSB0ZXh0IGBgRnVuY3Rpb24gS2V5IDEnJy4KIAotICAgICAgIFRoZSBmdWxsIHNldCBvZiBHTlUgRW1hY3Mgc3R5bGUgZXNjYXBlIHNlcXVlbmNlcyBhdmFpbGFibGUKLSAgICAgICB3aGVuIHNwZWNpZnlpbmcga2V5IHNlcXVlbmNlcyBpcworICAgICAgIFRoZSAgZnVsbCBzZXQgb2YgR05VIEVtYWNzIHN0eWxlIGVzY2FwZSBzZXF1ZW5jZXMgYXZhaWxhYmxlIHdoZW4gc3BlY2ktCisgICAgICAgZnlpbmcga2V5IHNlcXVlbmNlcyBpcwogICAgICAgICAgICAgICBcCFxDCEMtCC0gICAgY29udHJvbCBwcmVmaXgKICAgICAgICAgICAgICAgXAhcTQhNLQgtICAgIG1ldGEgcHJlZml4CiAgICAgICAgICAgICAgIFwIXGUIZSAgICAgYW4gZXNjYXBlIGNoYXJhY3RlcgpAQCAtMTQ2LDggKzEzMSw4IEBACiAgICAgICAgICAgICAgIFwIXCIIIiAgICAgbGl0ZXJhbCAiLCBhIGRvdWJsZSBxdW90ZQogICAgICAgICAgICAgICBcCFwnCCcgICAgIGxpdGVyYWwgJywgYSBzaW5nbGUgcXVvdGUKIAotICAgICAgIEluICBhZGRpdGlvbiAgdG8gIHRoZSAgR05VIEVtYWNzIHN0eWxlIGVzY2FwZSBzZXF1ZW5jZXMsIGEKLSAgICAgICBzZWNvbmQgc2V0IG9mIGJhY2tzbGFzaCBlc2NhcGVzIGlzIGF2YWlsYWJsZToKKyAgICAgICBJbiBhZGRpdGlvbiB0byB0aGUgR05VIEVtYWNzIHN0eWxlIGVzY2FwZSBzZXF1ZW5jZXMsIGEgIHNlY29uZCAgc2V0ICBvZgorICAgICAgIGJhY2tzbGFzaCBlc2NhcGVzIGlzIGF2YWlsYWJsZToKICAgICAgICAgICAgICAgXAhcYQhhICAgICBhbGVydCAoYmVsbCkKICAgICAgICAgICAgICAgXAhcYghiICAgICBiYWNrc3BhY2UKICAgICAgICAgICAgICAgXAhcZAhkICAgICBkZWxldGUKQEAgLTE1NiwxOTAgKzE0MSwxODMgQEAKICAgICAgICAgICAgICAgXAhccghyICAgICBjYXJyaWFnZSByZXR1cm4KICAgICAgICAgICAgICAgXAhcdAh0ICAgICBob3Jpem9udGFsIHRhYgogICAgICAgICAgICAgICBcCFx2CHYgICAgIHZlcnRpY2FsIHRhYgotICAgICAgICAgICAgICBcCFxfCG5fCG5fCG4gICB0aGUgZWlnaHQtYml0IGNoYXJhY3RlciB3aG9zZSB2YWx1ZSAgaXMgIHRoZQotICAgICAgICAgICAgICAgICAgICAgb2N0YWwgdmFsdWUgXwhuXwhuXwhuIChvbmUgdG8gdGhyZWUgZGlnaXRzKQotICAgICAgICAgICAgICBcCFx4CHhfCEhfCEggICB0aGUgIGVpZ2h0LWJpdCAgY2hhcmFjdGVyIHdob3NlIHZhbHVlIGlzIHRoZQotICAgICAgICAgICAgICAgICAgICAgaGV4YWRlY2ltYWwgdmFsdWUgXwhIXwhIIChvbmUgb3IgdHdvIGhleCBkaWdpdHMpCisgICAgICAgICAgICAgIFwIXF8Ibl8Ibl8IbiAgIHRoZSAgZWlnaHQtYml0ICBjaGFyYWN0ZXIgIHdob3NlIHZhbHVlIGlzIHRoZSBvY3RhbCB2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgXwhuXwhuXwhuIChvbmUgdG8gdGhyZWUgZGlnaXRzKQorICAgICAgICAgICAgICBcCFx4CHhfCEhfCEggICB0aGUgZWlnaHQtYml0IGNoYXJhY3RlciB3aG9zZSB2YWx1ZSAgaXMgIHRoZSAgaGV4YWRlY2ltYWwKKyAgICAgICAgICAgICAgICAgICAgIHZhbHVlIF8ISF8ISCAob25lIG9yIHR3byBoZXggZGlnaXRzKQogCi0gICAgICAgV2hlbiBlbnRlcmluZyB0aGUgdGV4dCBvZiBhIG1hY3JvLCBzaW5nbGUgb3IgZG91YmxlIHF1b3RlcwotICAgICAgIHNob3VsZCBiZSB1c2VkIHRvIGluZGljYXRlIGEgbWFjcm8gIGRlZmluaXRpb24uICAgVW5xdW90ZWQKLSAgICAgICB0ZXh0IGlzIGFzc3VtZWQgdG8gYmUgYSBmdW5jdGlvbiBuYW1lLiAgSW4gdGhlIG1hY3JvIGJvZHksCi0gICAgICAgdGhlIGJhY2tzbGFzaCBlc2NhcGVzIGRlc2NyaWJlZCBhYm92ZSBhcmUgZXhwYW5kZWQuICBCYWNrLQotICAgICAgIHNsYXNoICB3aWxsICBxdW90ZSAgYW55IG90aGVyIGNoYXJhY3RlciBpbiB0aGUgbWFjcm8gdGV4dCwKLSAgICAgICBpbmNsdWRpbmcgIiBhbmQgJy4KKyAgICAgICBXaGVuICBlbnRlcmluZyAgdGhlICB0ZXh0IG9mIGEgbWFjcm8sIHNpbmdsZSBvciBkb3VibGUgcXVvdGVzIHNob3VsZCBiZQorICAgICAgIHVzZWQgdG8gaW5kaWNhdGUgYSBtYWNybyBkZWZpbml0aW9uLiAgVW5xdW90ZWQgdGV4dCBpcyBhc3N1bWVkIHRvIGJlICBhCisgICAgICAgZnVuY3Rpb24gIG5hbWUuICAgSW4gIHRoZSAgbWFjcm8gIGJvZHksIHRoZSBiYWNrc2xhc2ggZXNjYXBlcyBkZXNjcmliZWQKKyAgICAgICBhYm92ZSBhcmUgZXhwYW5kZWQuICBCYWNrc2xhc2ggd2lsbCBxdW90ZSBhbnkgb3RoZXIgIGNoYXJhY3RlciAgaW4gIHRoZQorICAgICAgIG1hY3JvIHRleHQsIGluY2x1ZGluZyAiIGFuZCAnLgogCi0gICAgICAgQghCYQhhcwhzaAhoIGFsbG93cyB0aGUgY3VycmVudCByZWFkbGluZSBrZXkgYmluZGluZ3MgdG8gIGJlICBkaXMtCi0gICAgICAgcGxheWVkICBvciAgbW9kaWZpZWQgIHdpdGggIHRoZSBiCGJpCGluCG5kCGQgYnVpbHRpbiBjb21tYW5kLiAgVGhlCi0gICAgICAgZWRpdGluZyBtb2RlIG1heSBiZSBzd2l0Y2hlZCAgZHVyaW5nICBpbnRlcmFjdGl2ZSAgdXNlICBieQotICAgICAgIHVzaW5nICB0aGUgIC0ILW8IbyAgb3B0aW9uICB0byB0aGUgcwhzZQhldAh0IGJ1aWx0aW4gY29tbWFuZC4gIE90aGVyCi0gICAgICAgcHJvZ3JhbXMgdXNpbmcgdGhpcyBsaWJyYXJ5ICBwcm92aWRlICBzaW1pbGFyICBtZWNoYW5pc21zLgotICAgICAgIFRoZSAgXwhpXwhuXwhwXwh1Xwh0XwhyXwhjICBmaWxlICBtYXkgYmUgZWRpdGVkIGFuZCByZS1yZWFkIGlmIGEgcHJvZ3JhbQotICAgICAgIGRvZXMgbm90IHByb3ZpZGUgYW55IG90aGVyIG1lYW5zIHRvIGluY29ycG9yYXRlIG5ldyAgYmluZC0KLSAgICAgICBpbmdzLgorICAgICAgIEIIQmEIYXMIc2gIaCAgYWxsb3dzIHRoZSBjdXJyZW50IHJlYWRsaW5lIGtleSBiaW5kaW5ncyB0byBiZSBkaXNwbGF5ZWQgb3IgbW9kaS0KKyAgICAgICBmaWVkIHdpdGggdGhlIGIIYmkIaW4IbmQIZCBidWlsdGluIGNvbW1hbmQuICBUaGUgZWRpdGluZyBtb2RlIG1heSAgYmUgIHN3aXRjaGVkCisgICAgICAgZHVyaW5nICBpbnRlcmFjdGl2ZSAgdXNlIGJ5IHVzaW5nIHRoZSAtCC1vCG8gb3B0aW9uIHRvIHRoZSBzCHNlCGV0CHQgYnVpbHRpbiBjb20tCisgICAgICAgbWFuZC4gIE90aGVyIHByb2dyYW1zIHVzaW5nIHRoaXMgbGlicmFyeSAgcHJvdmlkZSAgc2ltaWxhciAgbWVjaGFuaXNtcy4KKyAgICAgICBUaGUgIF8IaV8Ibl8IcF8IdV8IdF8Icl8IYyAgZmlsZSBtYXkgYmUgZWRpdGVkIGFuZCByZS1yZWFkIGlmIGEgcHJvZ3JhbSBkb2VzIG5vdCBwcm8tCisgICAgICAgdmlkZSBhbnkgb3RoZXIgbWVhbnMgdG8gaW5jb3Jwb3JhdGUgbmV3IGJpbmRpbmdzLgogCiAgICBWCFZhCGFyCHJpCGlhCGFiCGJsCGxlCGVzCHMKLSAgICAgICBSZWFkbGluZSAgaGFzICB2YXJpYWJsZXMgIHRoYXQgY2FuIGJlIHVzZWQgdG8gZnVydGhlciBjdXMtCi0gICAgICAgdG9taXplIGl0cyBiZWhhdmlvci4gIEEgdmFyaWFibGUgbWF5IGJlIHNldCBpbiB0aGUgXwhpXwhuXwhwXwh1Xwh0XwhyXwhjCi0gICAgICAgZmlsZSB3aXRoIGEgc3RhdGVtZW50IG9mIHRoZSBmb3JtCisgICAgICAgUmVhZGxpbmUgaGFzIHZhcmlhYmxlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIGZ1cnRoZXIgY3VzdG9taXplIGl0cyBiZWhhdi0KKyAgICAgICBpb3IuICBBIHZhcmlhYmxlIG1heSBiZSBzZXQgaW4gdGhlIF8IaV8Ibl8IcF8IdV8IdF8Icl8IYyBmaWxlIHdpdGggYSBzdGF0ZW1lbnQgb2YgdGhlCisgICAgICAgZm9ybQogCiAgICAgICAgICAgICAgIHMIc2UIZXQIdCBfCHZfCGFfCHJfCGlfCGFfCGJfCGxfCGVfCC1fCG5fCGFfCG1fCGUgXwh2XwhhXwhsXwh1XwhlCiAKLSAgICAgICBFeGNlcHQgd2hlcmUgbm90ZWQsIHJlYWRsaW5lIHZhcmlhYmxlcyBjYW4gdGFrZSB0aGUgdmFsdWVzCi0gICAgICAgTwhPbghuIG9yIE8IT2YIZmYIZiAod2l0aG91dCByZWdhcmQgdG8gIGNhc2UpLiAgIFRoZSAgdmFyaWFibGVzICBhbmQKLSAgICAgICB0aGVpciBkZWZhdWx0IHZhbHVlcyBhcmU6CisgICAgICAgRXhjZXB0IHdoZXJlIG5vdGVkLCByZWFkbGluZSB2YXJpYWJsZXMgY2FuIHRha2UgdGhlIHZhbHVlcyAgTwhPbghuICBvciAgTwhPZghmZghmCisgICAgICAgKHdpdGhvdXQgIHJlZ2FyZCAgdG8gIGNhc2UpLiAgIFVucmVjb2duaXplZCB2YXJpYWJsZSBuYW1lcyBhcmUgaWdub3JlZC4KKyAgICAgICBXaGVuIGEgdmFyaWFibGUgdmFsdWUgaXMgcmVhZCwgZW1wdHkgb3IgbnVsbCB2YWx1ZXMsICJvbiIgIChjYXNlLWluc2VuLQorICAgICAgIHNpdGl2ZSksIGFuZCAiMSIgYXJlIGVxdWl2YWxlbnQgdG8gTwhPbghuLiAgQWxsIG90aGVyIHZhbHVlcyBhcmUgZXF1aXZhbGVudAorICAgICAgIHRvIE8IT2YIZmYIZi4gIFRoZSB2YXJpYWJsZXMgYW5kIHRoZWlyIGRlZmF1bHQgdmFsdWVzIGFyZToKIAogICAgICAgIGIIYmUIZWwIbGwIbC0ILXMIc3QIdHkIeWwIbGUIZSAoCChhCGF1CHVkCGRpCGliCGJsCGxlCGUpCCkKLSAgICAgICAgICAgICAgQ29udHJvbHMgIHdoYXQgIGhhcHBlbnMgd2hlbiByZWFkbGluZSB3YW50cyB0byByaW5nCi0gICAgICAgICAgICAgIHRoZSB0ZXJtaW5hbCBiZWxsLiAgSWYgc2V0IHRvIG4Ibm8Ib24IbmUIZSwgcmVhZGxpbmUgIG5ldmVyCi0gICAgICAgICAgICAgIHJpbmdzIHRoZSBiZWxsLiAgSWYgc2V0IHRvIHYIdmkIaXMIc2kIaWIIYmwIbGUIZSwgcmVhZGxpbmUgdXNlcyBhCi0gICAgICAgICAgICAgIHZpc2libGUgYmVsbCBpZiBvbmUgaXMgYXZhaWxhYmxlLiAgSWYgc2V0IHRvICBhCGF1CHVkCGRpCGktCC0KLSAgICAgICAgICAgICAgYghibAhsZQhlLCByZWFkbGluZSBhdHRlbXB0cyB0byByaW5nIHRoZSB0ZXJtaW5hbCdzIGJlbGwuCisgICAgICAgICAgICAgIENvbnRyb2xzIHdoYXQgaGFwcGVucyB3aGVuIHJlYWRsaW5lIHdhbnRzIHRvIHJpbmcgIHRoZSAgdGVybWluYWwKKyAgICAgICAgICAgICAgYmVsbC4gIElmIHNldCB0byBuCG5vCG9uCG5lCGUsIHJlYWRsaW5lIG5ldmVyIHJpbmdzIHRoZSBiZWxsLiAgSWYgc2V0IHRvCisgICAgICAgICAgICAgIHYIdmkIaXMIc2kIaWIIYmwIbGUIZSwgcmVhZGxpbmUgdXNlcyBhIHZpc2libGUgYmVsbCBpZiBvbmUgaXMgIGF2YWlsYWJsZS4gICBJZgorICAgICAgICAgICAgICBzZXQgdG8gYQhhdQh1ZAhkaQhpYghibAhsZQhlLCByZWFkbGluZSBhdHRlbXB0cyB0byByaW5nIHRoZSB0ZXJtaW5hbCdzIGJlbGwuCisgICAgICAgYghiaQhpbghuZAhkLQgtdAh0dAh0eQh5LQgtcwhzcAhwZQhlYwhjaQhpYQhhbAhsLQgtYwhjaAhoYQhhcghycwhzICgIKE8IT24IbikIKQorICAgICAgICAgICAgICBJZiAgc2V0ICB0byBPCE9uCG4sIHJlYWRsaW5lIGF0dGVtcHRzIHRvIGJpbmQgdGhlIGNvbnRyb2wgY2hhcmFjdGVycworICAgICAgICAgICAgICB0cmVhdGVkIHNwZWNpYWxseSBieSB0aGUga2VybmVsJ3MgdGVybWluYWwgZHJpdmVyIHRvIHRoZWlyIHJlYWQtCisgICAgICAgICAgICAgIGxpbmUgZXF1aXZhbGVudHMuCiAgICAgICAgYwhjbwhvbQhtbQhtZQhlbghudAh0LQgtYghiZQhlZwhnaQhpbghuICgIKGAIYGAIYCMIIycIJycIJykIKQotICAgICAgICAgICAgICBUaGUgc3RyaW5nIHRoYXQgaXMgaW5zZXJ0ZWQgaW4gIHYIdmkIaSAgbW9kZSAgd2hlbiAgdGhlCi0gICAgICAgICAgICAgIGkIaW4IbnMIc2UIZXIIcnQIdC0ILWMIY28Ib20IbW0IbWUIZW4IbnQIdCAgY29tbWFuZCAgaXMgZXhlY3V0ZWQuICBUaGlzIGNvbW1hbmQKLSAgICAgICAgICAgICAgaXMgYm91bmQgdG8gTQhNLQgtIwgjIGluIGVtYWNzIG1vZGUgYW5kIHRvICMIIyBpbiAgdmkgIGNvbS0KLSAgICAgICAgICAgICAgbWFuZCBtb2RlLgorICAgICAgICAgICAgICBUaGUgIHN0cmluZyAgdGhhdCBpcyBpbnNlcnRlZCBpbiB2CHZpCGkgbW9kZSB3aGVuIHRoZSBpCGluCG5zCHNlCGVyCHJ0CHQtCC1jCGNvCG9tCG1tCG1lCGVuCG50CHQKKyAgICAgICAgICAgICAgY29tbWFuZCBpcyBleGVjdXRlZC4gIFRoaXMgY29tbWFuZCBpcyBib3VuZCB0byBNCE0tCC0jCCMgaW4gZW1hY3MgbW9kZQorICAgICAgICAgICAgICBhbmQgdG8gIwgjIGluIHZpIGNvbW1hbmQgbW9kZS4KICAgICAgICBjCGNvCG9tCG1wCHBsCGxlCGV0CHRpCGlvCG9uCG4tCC1pCGlnCGduCG5vCG9yCHJlCGUtCC1jCGNhCGFzCHNlCGUgKAgoTwhPZghmZghmKQgpCi0gICAgICAgICAgICAgIElmICBzZXQgIHRvIE8IT24IbiwgcmVhZGxpbmUgcGVyZm9ybXMgZmlsZW5hbWUgbWF0Y2hpbmcKLSAgICAgICAgICAgICAgYW5kIGNvbXBsZXRpb24gaW4gYSBjYXNlLWluc2Vuc2l0aXZlIGZhc2hpb24uCisgICAgICAgICAgICAgIElmIHNldCB0byBPCE9uCG4sIHJlYWRsaW5lIHBlcmZvcm1zIGZpbGVuYW1lIG1hdGNoaW5nIGFuZCBjb21wbGV0aW9uCisgICAgICAgICAgICAgIGluIGEgY2FzZS1pbnNlbnNpdGl2ZSBmYXNoaW9uLgogICAgICAgIGMIY28Ib20IbXAIcGwIbGUIZXQIdGkIaW8Ib24Ibi0ILXEIcXUIdWUIZXIIcnkIeS0ILWkIaXQIdGUIZW0IbXMIcyAoCCgxCDEwCDAwCDApCCkKLSAgICAgICAgICAgICAgVGhpcyBkZXRlcm1pbmVzIHdoZW4gIHRoZSAgdXNlciAgaXMgIHF1ZXJpZWQgIGFib3V0Ci0gICAgICAgICAgICAgIHZpZXdpbmcgIHRoZSAgbnVtYmVyIG9mIHBvc3NpYmxlIGNvbXBsZXRpb25zIGdlbmVyLQotICAgICAgICAgICAgICBhdGVkIGJ5IHRoZSBwCHBvCG9zCHNzCHNpCGliCGJsCGxlCGUtCC1jCGNvCG9tCG1wCHBsCGxlCGV0CHRpCGlvCG9uCG5zCHMgY29tbWFuZC4gICBJdCAgbWF5Ci0gICAgICAgICAgICAgIGJlICBzZXQgIHRvIGFueSBpbnRlZ2VyIHZhbHVlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbAotICAgICAgICAgICAgICB0byB6ZXJvLiAgSWYgdGhlIG51bWJlciBvZiBwb3NzaWJsZSBjb21wbGV0aW9ucyAgaXMKLSAgICAgICAgICAgICAgZ3JlYXRlciAgdGhhbiAgb3IgIGVxdWFsIHRvIHRoZSB2YWx1ZSBvZiB0aGlzIHZhcmktCi0gICAgICAgICAgICAgIGFibGUsIHRoZSB1c2VyIGlzIGFza2VkIHdoZXRoZXIgb3Igbm90IGhlIHdpc2hlcyB0bwotICAgICAgICAgICAgICB2aWV3ICB0aGVtOyBvdGhlcndpc2UgdGhleSBhcmUgc2ltcGx5IGxpc3RlZCBvbiB0aGUKLSAgICAgICAgICAgICAgdGVybWluYWwuCisgICAgICAgICAgICAgIFRoaXMgZGV0ZXJtaW5lcyB3aGVuIHRoZSB1c2VyIGlzIHF1ZXJpZWQgYWJvdXQgdmlld2luZyB0aGUgIG51bS0KKyAgICAgICAgICAgICAgYmVyICBvZiAgcG9zc2libGUgIGNvbXBsZXRpb25zIGdlbmVyYXRlZCBieSB0aGUgcAhwbwhvcwhzcwhzaQhpYghibAhsZQhlLQgtYwhjbwhvbQhtcAhwbAhsZQhlLQgtCisgICAgICAgICAgICAgIHQIdGkIaW8Ib24IbnMIcyBjb21tYW5kLiAgSXQgbWF5IGJlIHNldCB0byBhbnkgaW50ZWdlciB2YWx1ZSBncmVhdGVyICB0aGFuCisgICAgICAgICAgICAgIG9yICBlcXVhbCAgdG8gIHplcm8uICAgSWYgIHRoZSBudW1iZXIgb2YgcG9zc2libGUgY29tcGxldGlvbnMgaXMKKyAgICAgICAgICAgICAgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSB2YWx1ZSBvZiB0aGlzIHZhcmlhYmxlLCB0aGUgdXNlciBpcworICAgICAgICAgICAgICBhc2tlZCAgd2hldGhlciBvciBub3QgaGUgd2lzaGVzIHRvIHZpZXcgdGhlbTsgb3RoZXJ3aXNlIHRoZXkgYXJlCisgICAgICAgICAgICAgIHNpbXBseSBsaXN0ZWQgb24gdGhlIHRlcm1pbmFsLiAgQSBuZWdhdGl2ZSB2YWx1ZSBjYXVzZXMgcmVhZGxpbmUKKyAgICAgICAgICAgICAgdG8gbmV2ZXIgYXNrLgogICAgICAgIGMIY28Ib24IbnYIdmUIZXIIcnQIdC0ILW0IbWUIZXQIdGEIYSAoCChPCE9uCG4pCCkKLSAgICAgICAgICAgICAgSWYgc2V0IHRvIE8IT24IbiwgcmVhZGxpbmUgd2lsbCBjb252ZXJ0IGNoYXJhY3RlcnMgd2l0aAotICAgICAgICAgICAgICB0aGUgIGVpZ2h0aCAgYml0ICBzZXQgIHRvICBhbiBBU0NJSSBrZXkgc2VxdWVuY2UgYnkKLSAgICAgICAgICAgICAgc3RyaXBwaW5nIHRoZSBlaWdodGggYml0IGFuZCBwcmVmaXhpbmcgaXQgIHdpdGggIGFuCi0gICAgICAgICAgICAgIGVzY2FwZSAgY2hhcmFjdGVyICAoaW4gIGVmZmVjdCwgdXNpbmcgZXNjYXBlIGFzIHRoZQotICAgICAgICAgICAgICBfCG1fCGVfCHRfCGEgXwhwXwhyXwhlXwhmXwhpXwh4KS4KKyAgICAgICAgICAgICAgSWYgIHNldCAgdG8gTwhPbghuLCByZWFkbGluZSB3aWxsIGNvbnZlcnQgY2hhcmFjdGVycyB3aXRoIHRoZSBlaWdodGgKKyAgICAgICAgICAgICAgYml0IHNldCB0byBhbiBBU0NJSSBrZXkgc2VxdWVuY2UgYnkgc3RyaXBwaW5nIHRoZSBlaWdodGggYml0IGFuZAorICAgICAgICAgICAgICBwcmVmaXhpbmcgIGl0ICB3aXRoIGFuIGVzY2FwZSBjaGFyYWN0ZXIgKGluIGVmZmVjdCwgdXNpbmcgZXNjYXBlCisgICAgICAgICAgICAgIGFzIHRoZSBfCG1fCGVfCHRfCGEgXwhwXwhyXwhlXwhmXwhpXwh4KS4KICAgICAgICBkCGRpCGlzCHNhCGFiCGJsCGxlCGUtCC1jCGNvCG9tCG1wCHBsCGxlCGV0CHRpCGlvCG9uCG4gKAgoTwhPZghmZghmKQgpCi0gICAgICAgICAgICAgIElmIHNldCB0byBPCE9uCG4sIHJlYWRsaW5lIHdpbGwgIGluaGliaXQgIHdvcmQgIGNvbXBsZS0KLSAgICAgICAgICAgICAgdGlvbi4gICBDb21wbGV0aW9uIGNoYXJhY3RlcnMgd2lsbCBiZSBpbnNlcnRlZCBpbnRvCi0gICAgICAgICAgICAgIHRoZSBsaW5lIGFzIGlmIHRoZXkgaGFkIGJlZW4gbWFwcGVkIHRvIHMIc2UIZWwIbGYIZi0ILWkIaW4IbnMIc2UIZXIIcnQIdC4KKyAgICAgICAgICAgICAgSWYgc2V0IHRvIE8IT24IbiwgcmVhZGxpbmUgd2lsbCBpbmhpYml0IHdvcmQgY29tcGxldGlvbi4gIENvbXBsZXRpb24KKyAgICAgICAgICAgICAgY2hhcmFjdGVycyAgd2lsbCAgYmUgIGluc2VydGVkIGludG8gdGhlIGxpbmUgYXMgaWYgdGhleSBoYWQgYmVlbgorICAgICAgICAgICAgICBtYXBwZWQgdG8gcwhzZQhlbAhsZghmLQgtaQhpbghucwhzZQhlcghydAh0LgogICAgICAgIGUIZWQIZGkIaXQIdGkIaW4IbmcIZy0ILW0IbW8Ib2QIZGUIZSAoCChlCGVtCG1hCGFjCGNzCHMpCCkKLSAgICAgICAgICAgICAgQ29udHJvbHMgIHdoZXRoZXIgcmVhZGxpbmUgYmVnaW5zIHdpdGggYSBzZXQgb2Yga2V5Ci0gICAgICAgICAgICAgIGJpbmRpbmdzIHNpbWlsYXIgdG8gZW1hY3Mgb3IgdmkuICBlCGVkCGRpCGl0CHRpCGluCG5nCGctCC1tCG1vCG9kCGRlCGUgIGNhbgotICAgICAgICAgICAgICBiZSBzZXQgdG8gZWl0aGVyIGUIZW0IbWEIYWMIY3MIcyBvciB2CHZpCGkuCisgICAgICAgICAgICAgIENvbnRyb2xzIHdoZXRoZXIgcmVhZGxpbmUgYmVnaW5zIHdpdGggYSBzZXQgb2Yga2V5IGJpbmRpbmdzIHNpbS0KKyAgICAgICAgICAgICAgaWxhciB0byBlbWFjcyBvciB2aS4gIGUIZWQIZGkIaXQIdGkIaW4IbmcIZy0ILW0IbW8Ib2QIZGUIZSBjYW4gYmUgc2V0IHRvIGVpdGhlciBlCGVtCG1hCGFjCGNzCHMgb3IKKyAgICAgICAgICAgICAgdgh2aQhpLgogICAgICAgIGUIZW4IbmEIYWIIYmwIbGUIZS0ILWsIa2UIZXkIeXAIcGEIYWQIZCAoCChPCE9mCGZmCGYpCCkKLSAgICAgICAgICAgICAgV2hlbiAgc2V0ICB0byAgTwhPbghuLCAgcmVhZGxpbmUgd2lsbCB0cnkgdG8gZW5hYmxlIHRoZQotICAgICAgICAgICAgICBhcHBsaWNhdGlvbiBrZXlwYWQgd2hlbiBpdCBpcyBjYWxsZWQuICBTb21lIHN5c3RlbXMKLSAgICAgICAgICAgICAgbmVlZCB0aGlzIHRvIGVuYWJsZSB0aGUgYXJyb3cga2V5cy4KKyAgICAgICAgICAgICAgV2hlbiBzZXQgdG8gTwhPbghuLCByZWFkbGluZSB3aWxsIHRyeSB0byBlbmFibGUgdGhlIGFwcGxpY2F0aW9uIGtleS0KKyAgICAgICAgICAgICAgcGFkICB3aGVuICBpdCAgaXMgIGNhbGxlZC4gIFNvbWUgc3lzdGVtcyBuZWVkIHRoaXMgdG8gZW5hYmxlIHRoZQorICAgICAgICAgICAgICBhcnJvdyBrZXlzLgogICAgICAgIGUIZXgIeHAIcGEIYW4IbmQIZC0ILXQIdGkIaWwIbGQIZGUIZSAoCChPCE9mCGZmCGYpCCkKLSAgICAgICAgICAgICAgSWYgIHNldCAgdG8gIG8Ib24IbiwgIHRpbGRlIGV4cGFuc2lvbiBpcyBwZXJmb3JtZWQgd2hlbgotICAgICAgICAgICAgICByZWFkbGluZSBhdHRlbXB0cyB3b3JkIGNvbXBsZXRpb24uCi0gICAgICAgaAhoaQhpcwhzdAh0bwhvcghyeQh5LQgtcAhwcghyZQhlcwhzZQhlcghydgh2ZQhlLQgtcAhwbwhvaQhpbghudAh0Ci0gICAgICAgICAgICAgIElmIHNldCB0byBvCG9uCG4sIHRoZSBoaXN0b3J5IGNvZGUgIGF0dGVtcHRzICB0byAgcGxhY2UKLSAgICAgICAgICAgICAgcG9pbnQgIGF0ICB0aGUgIHNhbWUgIGxvY2F0aW9uIG9uIGVhY2ggaGlzdG9yeSBsaW5lCi0gICAgICAgICAgICAgIHJldHJpdmVkIHdpdGggcAhwcghyZQhldgh2aQhpbwhvdQh1cwhzLQgtaAhoaQhpcwhzdAh0bwhvcghyeQh5IG9yIG4IbmUIZXgIeHQIdC0ILWgIaGkIaXMIc3QIdG8Ib3IIcnkIeS4KKyAgICAgICAgICAgICAgSWYgc2V0ICB0byAgbwhvbghuLCAgdGlsZGUgIGV4cGFuc2lvbiAgaXMgIHBlcmZvcm1lZCAgd2hlbiAgcmVhZGxpbmUKKyAgICAgICAgICAgICAgYXR0ZW1wdHMgd29yZCBjb21wbGV0aW9uLgorICAgICAgIGgIaGkIaXMIc3QIdG8Ib3IIcnkIeS0ILXAIcHIIcmUIZXMIc2UIZXIIcnYIdmUIZS0ILXAIcG8Ib2kIaW4IbnQIdCAoCChPCE9mCGZmCGYpCCkKKyAgICAgICAgICAgICAgSWYgIHNldCAgdG8gIG8Ib24IbiwgdGhlIGhpc3RvcnkgY29kZSBhdHRlbXB0cyB0byBwbGFjZSBwb2ludCBhdCB0aGUKKyAgICAgICAgICAgICAgc2FtZSBsb2NhdGlvbiBvbiBlYWNoIGhpc3RvcnkgbGluZSByZXRyaWV2ZWQgd2l0aCAgcAhwcghyZQhldgh2aQhpbwhvdQh1cwhzLQgtaAhoaQhpcwhzLQgtCisgICAgICAgICAgICAgIHQIdG8Ib3IIcnkIeSBvciBuCG5lCGV4CHh0CHQtCC1oCGhpCGlzCHN0CHRvCG9yCHJ5CHkuCiAgICAgICAgaAhobwhvcghyaQhpegh6bwhvbghudAh0YQhhbAhsLQgtcwhzYwhjcghybwhvbAhsbAhsLQgtbQhtbwhvZAhkZQhlICgIKE8IT2YIZmYIZikIKQotICAgICAgICAgICAgICBXaGVuIHNldCB0byBPCE9uCG4sIG1ha2VzIHJlYWRsaW5lIHVzZSAgYSAgc2luZ2xlICBsaW5lCi0gICAgICAgICAgICAgIGZvciAgZGlzcGxheSwgc2Nyb2xsaW5nIHRoZSBpbnB1dCBob3Jpem9udGFsbHkgb24gYQotICAgICAgICAgICAgICBzaW5nbGUgc2NyZWVuIGxpbmUgd2hlbiBpdCBiZWNvbWVzIGxvbmdlciB0aGFuICB0aGUKLSAgICAgICAgICAgICAgc2NyZWVuIHdpZHRoIHJhdGhlciB0aGFuIHdyYXBwaW5nIHRvIGEgbmV3IGxpbmUuCisgICAgICAgICAgICAgIFdoZW4gIHNldCAgdG8gIE8IT24IbiwgbWFrZXMgcmVhZGxpbmUgdXNlIGEgc2luZ2xlIGxpbmUgZm9yIGRpc3BsYXksCisgICAgICAgICAgICAgIHNjcm9sbGluZyB0aGUgaW5wdXQgaG9yaXpvbnRhbGx5IG9uIGEgc2luZ2xlIHNjcmVlbiBsaW5lIHdoZW4gaXQKKyAgICAgICAgICAgICAgYmVjb21lcyAgbG9uZ2VyICB0aGFuIHRoZSBzY3JlZW4gd2lkdGggcmF0aGVyIHRoYW4gd3JhcHBpbmcgdG8gYQorICAgICAgICAgICAgICBuZXcgbGluZS4KICAgICAgICBpCGluCG5wCHB1CHV0CHQtCC1tCG1lCGV0CHRhCGEgKAgoTwhPZghmZghmKQgpCi0gICAgICAgICAgICAgIElmICBzZXQgdG8gTwhPbghuLCByZWFkbGluZSB3aWxsIGVuYWJsZSBlaWdodC1iaXQgaW5wdXQKLSAgICAgICAgICAgICAgKHRoYXQgaXMsIGl0IHdpbGwgbm90IGNsZWFyIHRoZSBlaWdodGggYml0ICBpbiAgdGhlCi0gICAgICAgICAgICAgIGNoYXJhY3RlcnMgaXQgcmVhZHMpLCByZWdhcmRsZXNzIG9mIHdoYXQgdGhlIHRlcm1pLQotICAgICAgICAgICAgICBuYWwgY2xhaW1zIGl0IGNhbiBzdXBwb3J0LiAgVGhlIG5hbWUgbQhtZQhldAh0YQhhLQgtZghmbAhsYQhhZwhnIGlzIGEKLSAgICAgICAgICAgICAgc3lub255bSBmb3IgdGhpcyB2YXJpYWJsZS4KKyAgICAgICAgICAgICAgSWYgc2V0IHRvIE8IT24IbiwgcmVhZGxpbmUgd2lsbCBlbmFibGUgZWlnaHQtYml0IGlucHV0ICh0aGF0IGlzLCAgaXQKKyAgICAgICAgICAgICAgd2lsbCAgbm90ICBjbGVhciAgdGhlICBlaWdodGggIGJpdCAgaW4gdGhlIGNoYXJhY3RlcnMgaXQgcmVhZHMpLAorICAgICAgICAgICAgICByZWdhcmRsZXNzIG9mIHdoYXQgdGhlIHRlcm1pbmFsIGNsYWltcyBpdCBjYW4gc3VwcG9ydC4gIFRoZSBuYW1lCisgICAgICAgICAgICAgIG0IbWUIZXQIdGEIYS0ILWYIZmwIbGEIYWcIZyBpcyBhIHN5bm9ueW0gZm9yIHRoaXMgdmFyaWFibGUuCiAgICAgICAgaQhpcwhzZQhlYQhhcghyYwhjaAhoLQgtdAh0ZQhlcghybQhtaQhpbghuYQhhdAh0bwhvcghycwhzICgIKGAIYGAIYEMIQy0ILVsIWyBDCEMtCC1KCEonCCcnCCcpCCkKLSAgICAgICAgICAgICAgVGhlICBzdHJpbmcgIG9mIGNoYXJhY3RlcnMgdGhhdCBzaG91bGQgdGVybWluYXRlIGFuCi0gICAgICAgICAgICAgIGluY3JlbWVudGFsIHNlYXJjaCB3aXRob3V0ICBzdWJzZXF1ZW50bHkgIGV4ZWN1dGluZwotICAgICAgICAgICAgICB0aGUgIGNoYXJhY3RlciAgYXMgYSBjb21tYW5kLiAgSWYgdGhpcyB2YXJpYWJsZSBoYXMKLSAgICAgICAgICAgICAgbm90IGJlZW4gZ2l2ZW4gYSB2YWx1ZSwgdGhlIGNoYXJhY3RlcnMgXwhFXwhTXwhDIGFuZCAgXwhDXwgtXwhKCi0gICAgICAgICAgICAgIHdpbGwgdGVybWluYXRlIGFuIGluY3JlbWVudGFsIHNlYXJjaC4KKyAgICAgICAgICAgICAgVGhlICBzdHJpbmcgIG9mICBjaGFyYWN0ZXJzIHRoYXQgc2hvdWxkIHRlcm1pbmF0ZSBhbiBpbmNyZW1lbnRhbAorICAgICAgICAgICAgICBzZWFyY2ggd2l0aG91dCBzdWJzZXF1ZW50bHkgZXhlY3V0aW5nIHRoZSBjaGFyYWN0ZXIgIGFzICBhICBjb20tCisgICAgICAgICAgICAgIG1hbmQuICAgSWYgdGhpcyB2YXJpYWJsZSBoYXMgbm90IGJlZW4gZ2l2ZW4gYSB2YWx1ZSwgdGhlIGNoYXJhYy0KKyAgICAgICAgICAgICAgdGVycyBfCEVfCFNfCEMgYW5kIF8IQ18ILV8ISiB3aWxsIHRlcm1pbmF0ZSBhbiBpbmNyZW1lbnRhbCBzZWFyY2guCiAgICAgICAgawhrZQhleQh5bQhtYQhhcAhwICgIKGUIZW0IbWEIYWMIY3MIcykIKQotICAgICAgICAgICAgICBTZXQgIHRoZSBjdXJyZW50IHJlYWRsaW5lIGtleW1hcC4gIFRoZSBzZXQgb2YgbGVnYWwKLSAgICAgICAgICAgICAga2V5bWFwIG5hbWVzIGlzIF8IZV8IbV8IYV8IY18Ic18ILCBfCGVfCG1fCGFfCGNfCHNfCC1fCHNfCHRfCGFfCG5fCGRfCGFfCHJfCGRfCCwgIF8IZV8IbV8IYV8IY18Ic18ILV8IbV8IZV8IdF8IYV8ILAotICAgICAgICAgICAgICBfCGVfCG1fCGFfCGNfCHNfCC1fCGNfCHRfCGxfCHhfCCwgXwh2XwhpXwgsIF8Idl8IaV8ILV8IbV8Ib18Idl8IZV8ILCBfCHZfCGlfCC1fCGNfCG9fCG1fCG1fCGFfCG5fCGQsIGFuZCBfCHZfCGlfCC1fCGlfCG5fCHNfCGVfCHJfCHQuCi0gICAgICAgICAgICAgIF8Idl8IaSBpcyBlcXVpdmFsZW50IHRvIF8Idl8IaV8ILV8IY18Ib18IbV8IbV8IYV8Ibl8IZDsgXwhlXwhtXwhhXwhjXwhzIGlzIGVxdWl2YWxlbnQKLSAgICAgICAgICAgICAgdG8gIF8IZV8IbV8IYV8IY18Ic18ILV8Ic18IdF8IYV8Ibl8IZF8IYV8Icl8IZC4gICBUaGUgIGRlZmF1bHQgIHZhbHVlIGlzIF8IZV8IbV8IYV8IY18Icy4KLSAgICAgICAgICAgICAgVGhlIHZhbHVlIG9mIGUIZWQIZGkIaXQIdGkIaW4IbmcIZy0ILW0IbW8Ib2QIZGUIZSBhbHNvIGFmZmVjdHMgdGhlICBkZWZhdWx0CisgICAgICAgICAgICAgIFNldCB0aGUgY3VycmVudCByZWFkbGluZSBrZXltYXAuICBUaGUgc2V0IG9mIGxlZ2FsIGtleW1hcCAgbmFtZXMKKyAgICAgICAgICAgICAgaXMgIF8IZV8IbV8IYV8IY18Ic18ILCAgXwhlXwhtXwhhXwhjXwhzXwgtXwhzXwh0XwhhXwhuXwhkXwhhXwhyXwhkXwgsIF8IZV8IbV8IYV8IY18Ic18ILV8IbV8IZV8IdF8IYV8ILCBfCGVfCG1fCGFfCGNfCHNfCC1fCGNfCHRfCGxfCHhfCCwgXwh2XwhpXwgsIF8Idl8IaV8ILV8IbV8Ib18Idl8IZV8ILAorICAgICAgICAgICAgICBfCHZfCGlfCC1fCGNfCG9fCG1fCG1fCGFfCG5fCGQsIGFuZCBfCHZfCGlfCC1fCGlfCG5fCHNfCGVfCHJfCHQuICAgXwh2XwhpICBpcyAgZXF1aXZhbGVudCAgdG8gIF8Idl8IaV8ILV8IY18Ib18IbV8IbV8IYV8Ibl8IZDsKKyAgICAgICAgICAgICAgXwhlXwhtXwhhXwhjXwhzICBpcyAgZXF1aXZhbGVudCAgdG8gIF8IZV8IbV8IYV8IY18Ic18ILV8Ic18IdF8IYV8Ibl8IZF8IYV8Icl8IZC4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzCisgICAgICAgICAgICAgIF8IZV8IbV8IYV8IY18Icy4gIFRoZSB2YWx1ZSAgb2YgIGUIZWQIZGkIaXQIdGkIaW4IbmcIZy0ILW0IbW8Ib2QIZGUIZSAgYWxzbyAgYWZmZWN0cyAgdGhlICBkZWZhdWx0CiAgICAgICAgICAgICAgIGtleW1hcC4KICAgICAgICBtCG1hCGFyCHJrCGstCC1kCGRpCGlyCHJlCGVjCGN0CHRvCG9yCHJpCGllCGVzCHMgKAgoTwhPbghuKQgpCi0gICAgICAgICAgICAgIElmICBzZXQgIHRvICBPCE9uCG4sICBjb21wbGV0ZWQgIGRpcmVjdG9yeSBuYW1lcyBoYXZlIGEKLSAgICAgICAgICAgICAgc2xhc2ggYXBwZW5kZWQuCisgICAgICAgICAgICAgIElmIHNldCB0byBPCE9uCG4sIGNvbXBsZXRlZCBkaXJlY3RvcnkgbmFtZXMgaGF2ZSBhIHNsYXNoIGFwcGVuZGVkLgogICAgICAgIG0IbWEIYXIIcmsIay0ILW0IbW8Ib2QIZGkIaWYIZmkIaWUIZWQIZC0ILWwIbGkIaW4IbmUIZXMIcyAoCChPCE9mCGZmCGYpCCkKLSAgICAgICAgICAgICAgSWYgc2V0IHRvIE8IT24IbiwgaGlzdG9yeSBsaW5lcyB0aGF0IGhhdmUgYmVlbiBtb2RpZmllZAotICAgICAgICAgICAgICBhcmUgZGlzcGxheWVkIHdpdGggYSBwcmVjZWRpbmcgYXN0ZXJpc2sgKCoIKikuCisgICAgICAgICAgICAgIElmICBzZXQgIHRvICBPCE9uCG4sICBoaXN0b3J5IGxpbmVzIHRoYXQgaGF2ZSBiZWVuIG1vZGlmaWVkIGFyZSBkaXMtCisgICAgICAgICAgICAgIHBsYXllZCB3aXRoIGEgcHJlY2VkaW5nIGFzdGVyaXNrICgqCCopLgogICAgICAgIG0IbWEIYXIIcmsIay0ILXMIc3kIeW0IbWwIbGkIaW4IbmsIa2UIZWQIZC0ILWQIZGkIaXIIcmUIZWMIY3QIdG8Ib3IIcmkIaWUIZXMIcyAoCChPCE9mCGZmCGYpCCkKLSAgICAgICAgICAgICAgSWYgIHNldCAgdG8gIE8IT24IbiwgY29tcGxldGVkIG5hbWVzIHdoaWNoIGFyZSBzeW1ib2xpYwotICAgICAgICAgICAgICBsaW5rcyB0byBkaXJlY3RvcmllcyBoYXZlIGEgc2xhc2ggYXBwZW5kZWQgKHN1YmplY3QKLSAgICAgICAgICAgICAgdG8gdGhlIHZhbHVlIG9mIG0IbWEIYXIIcmsIay0ILWQIZGkIaXIIcmUIZWMIY3QIdG8Ib3IIcmkIaWUIZXMIcykuCisgICAgICAgICAgICAgIElmIHNldCB0byBPCE9uCG4sIGNvbXBsZXRlZCBuYW1lcyB3aGljaCBhcmUgc3ltYm9saWMgbGlua3MgdG8gZGlyZWMtCisgICAgICAgICAgICAgIHRvcmllcyAgIGhhdmUgICBhICBzbGFzaCAgYXBwZW5kZWQgIChzdWJqZWN0ICB0byAgdGhlICB2YWx1ZSAgb2YKKyAgICAgICAgICAgICAgbQhtYQhhcghyawhrLQgtZAhkaQhpcghyZQhlYwhjdAh0bwhvcghyaQhpZQhlcwhzKS4KICAgICAgICBtCG1hCGF0CHRjCGNoCGgtCC1oCGhpCGlkCGRkCGRlCGVuCG4tCC1mCGZpCGlsCGxlCGVzCHMgKAgoTwhPbghuKQgpCi0gICAgICAgICAgICAgIFRoaXMgIHZhcmlhYmxlLCAgd2hlbiBzZXQgdG8gTwhPbghuLCBjYXVzZXMgcmVhZGxpbmUgdG8KLSAgICAgICAgICAgICAgbWF0Y2ggZmlsZXMgd2hvc2UgbmFtZXMgYmVnaW4gd2l0aCAgYSAgYC4nICAoaGlkZGVuCi0gICAgICAgICAgICAgIGZpbGVzKSAgd2hlbiBwZXJmb3JtaW5nIGZpbGVuYW1lIGNvbXBsZXRpb24sIHVubGVzcwotICAgICAgICAgICAgICB0aGUgbGVhZGluZyBgLicgaXMgc3VwcGxpZWQgIGJ5ICB0aGUgIHVzZXIgIGluICB0aGUKLSAgICAgICAgICAgICAgZmlsZW5hbWUgdG8gYmUgY29tcGxldGVkLgorICAgICAgICAgICAgICBUaGlzIHZhcmlhYmxlLCB3aGVuIHNldCB0byBPCE9uCG4sIGNhdXNlcyByZWFkbGluZSAgdG8gIG1hdGNoICBmaWxlcworICAgICAgICAgICAgICB3aG9zZSAgbmFtZXMgIGJlZ2luICB3aXRoICBhICBgLicgKGhpZGRlbiBmaWxlcykgd2hlbiBwZXJmb3JtaW5nCisgICAgICAgICAgICAgIGZpbGVuYW1lIGNvbXBsZXRpb24sIHVubGVzcyB0aGUgbGVhZGluZyBgLicgaXMgc3VwcGxpZWQgIGJ5ICB0aGUKKyAgICAgICAgICAgICAgdXNlciBpbiB0aGUgZmlsZW5hbWUgdG8gYmUgY29tcGxldGVkLgogICAgICAgIG8Ib3UIdXQIdHAIcHUIdXQIdC0ILW0IbWUIZXQIdGEIYSAoCChPCE9mCGZmCGYpCCkKLSAgICAgICAgICAgICAgSWYgc2V0IHRvIE8IT24IbiwgcmVhZGxpbmUgd2lsbCBkaXNwbGF5IGNoYXJhY3RlcnMgd2l0aAotICAgICAgICAgICAgICB0aGUgZWlnaHRoIGJpdCBzZXQgZGlyZWN0bHkgcmF0aGVyIHRoYW4gYXMgYSAgbWV0YS0KLSAgICAgICAgICAgICAgcHJlZml4ZWQgZXNjYXBlIHNlcXVlbmNlLgorICAgICAgICAgICAgICBJZiAgc2V0ICB0byBPCE9uCG4sIHJlYWRsaW5lIHdpbGwgZGlzcGxheSBjaGFyYWN0ZXJzIHdpdGggdGhlIGVpZ2h0aAorICAgICAgICAgICAgICBiaXQgc2V0IGRpcmVjdGx5IHJhdGhlciB0aGFuIGFzIGEgbWV0YS1wcmVmaXhlZCBlc2NhcGUgc2VxdWVuY2UuCiAgICAgICAgcAhwYQhhZwhnZQhlLQgtYwhjbwhvbQhtcAhwbAhsZQhldAh0aQhpbwhvbghucwhzICgIKE8IT24IbikIKQotICAgICAgICAgICAgICBJZiAgc2V0ICB0byBPCE9uCG4sIHJlYWRsaW5lIHVzZXMgYW4gaW50ZXJuYWwgXwhtXwhvXwhyXwhlLWxpa2UKLSAgICAgICAgICAgICAgcGFnZXIgdG8gZGlzcGxheSBhIHNjcmVlbmZ1bCAgb2YgIHBvc3NpYmxlICBjb21wbGUtCi0gICAgICAgICAgICAgIHRpb25zIGF0IGEgdGltZS4KKyAgICAgICAgICAgICAgSWYgIHNldCB0byBPCE9uCG4sIHJlYWRsaW5lIHVzZXMgYW4gaW50ZXJuYWwgXwhtXwhvXwhyXwhlLWxpa2UgcGFnZXIgdG8gZGlzLQorICAgICAgICAgICAgICBwbGF5IGEgc2NyZWVuZnVsIG9mIHBvc3NpYmxlIGNvbXBsZXRpb25zIGF0IGEgdGltZS4KICAgICAgICBwCHByCHJpCGluCG50CHQtCC1jCGNvCG9tCG1wCHBsCGxlCGV0CHRpCGlvCG9uCG5zCHMtCC1oCGhvCG9yCHJpCGl6CHpvCG9uCG50CHRhCGFsCGxsCGx5CHkgKAgoTwhPZghmZghmKQgpCi0gICAgICAgICAgICAgIElmICBzZXQgIHRvICBPCE9uCG4sICByZWFkbGluZSB3aWxsIGRpc3BsYXkgY29tcGxldGlvbnMKLSAgICAgICAgICAgICAgd2l0aCBtYXRjaGVzIHNvcnRlZCAgaG9yaXpvbnRhbGx5ICBpbiAgYWxwaGFiZXRpY2FsCi0gICAgICAgICAgICAgIG9yZGVyLCByYXRoZXIgdGhhbiBkb3duIHRoZSBzY3JlZW4uCisgICAgICAgICAgICAgIElmIHNldCB0byBPCE9uCG4sIHJlYWRsaW5lIHdpbGwgIGRpc3BsYXkgIGNvbXBsZXRpb25zICB3aXRoICBtYXRjaGVzCisgICAgICAgICAgICAgIHNvcnRlZCAgaG9yaXpvbnRhbGx5IGluIGFscGhhYmV0aWNhbCBvcmRlciwgcmF0aGVyIHRoYW4gZG93biB0aGUKKyAgICAgICAgICAgICAgc2NyZWVuLgogICAgICAgIHMIc2gIaG8Ib3cIdy0ILWEIYWwIbGwIbC0ILWkIaWYIZi0ILWEIYW0IbWIIYmkIaWcIZ3UIdW8Ib3UIdXMIcyAoCChPCE9mCGZmCGYpCCkKLSAgICAgICAgICAgICAgVGhpcyAgYWx0ZXJzIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBjb21wbGV0aW9uCi0gICAgICAgICAgICAgIGZ1bmN0aW9ucy4gIElmIHNldCB0byBvCG9uCG4sICB3b3JkcyAgd2hpY2ggIGhhdmUgIG1vcmUKLSAgICAgICAgICAgICAgdGhhbiAgb25lICBwb3NzaWJsZSBjb21wbGV0aW9uIGNhdXNlIHRoZSBtYXRjaGVzIHRvCi0gICAgICAgICAgICAgIGJlIGxpc3RlZCBpbW1lZGlhdGVseSBpbnN0ZWFkIG9mIHJpbmdpbmcgdGhlICBiZWxsLgorICAgICAgICAgICAgICBUaGlzIGFsdGVycyB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiAgdGhlICBjb21wbGV0aW9uICBmdW5jdGlvbnMuCisgICAgICAgICAgICAgIElmIHNldCB0byBvCG9uCG4sIHdvcmRzIHdoaWNoIGhhdmUgbW9yZSB0aGFuIG9uZSBwb3NzaWJsZSBjb21wbGV0aW9uCisgICAgICAgICAgICAgIGNhdXNlIHRoZSBtYXRjaGVzIHRvIGJlIGxpc3RlZCBpbW1lZGlhdGVseSAgaW5zdGVhZCAgb2YgIHJpbmdpbmcKKyAgICAgICAgICAgICAgdGhlIGJlbGwuCisgICAgICAgcwhzaAhobwhvdwh3LQgtYQhhbAhsbAhsLQgtaQhpZghmLQgtdQh1bghubQhtbwhvZAhkaQhpZghmaQhpZQhlZAhkICgIKE8IT2YIZmYIZikIKQorICAgICAgICAgICAgICBUaGlzICBhbHRlcnMgdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgdGhlIGNvbXBsZXRpb24gZnVuY3Rpb25zIGluCisgICAgICAgICAgICAgIGEgZmFzaGlvbiBzaW1pbGFyIHRvIHMIc2gIaG8Ib3cIdy0ILWEIYWwIbGwIbC0ILWkIaWYIZi0ILWEIYW0IbWIIYmkIaWcIZ3UIdW8Ib3UIdXMIcy4gIElmIHNldCB0byBvCG9uCG4sIHdvcmRzCisgICAgICAgICAgICAgIHdoaWNoICBoYXZlIG1vcmUgdGhhbiBvbmUgcG9zc2libGUgY29tcGxldGlvbiB3aXRob3V0IGFueSBwb3NzaS0KKyAgICAgICAgICAgICAgYmxlIHBhcnRpYWwgY29tcGxldGlvbiAodGhlIHBvc3NpYmxlIGNvbXBsZXRpb25zIGRvbid0ICBzaGFyZSAgYQorICAgICAgICAgICAgICBjb21tb24gIHByZWZpeCkgIGNhdXNlICB0aGUgIG1hdGNoZXMgIHRvICBiZSAgbGlzdGVkIGltbWVkaWF0ZWx5CisgICAgICAgICAgICAgIGluc3RlYWQgb2YgcmluZ2luZyB0aGUgYmVsbC4KICAgICAgICB2CHZpCGlzCHNpCGliCGJsCGxlCGUtCC1zCHN0CHRhCGF0CHRzCHMgKAgoTwhPZghmZghmKQgpCi0gICAgICAgICAgICAgIElmIHNldCB0byBPCE9uCG4sIGEgY2hhcmFjdGVyIGRlbm90aW5nIGEgZmlsZSdzIHR5cGUgYXMKLSAgICAgICAgICAgICAgcmVwb3J0ZWQgYnkgXwhzXwh0XwhhXwh0KDIpIGlzICBhcHBlbmRlZCAgdG8gIHRoZSAgZmlsZW5hbWUKLSAgICAgICAgICAgICAgd2hlbiBsaXN0aW5nIHBvc3NpYmxlIGNvbXBsZXRpb25zLgorICAgICAgICAgICAgICBJZiBzZXQgdG8gTwhPbghuLCBhIGNoYXJhY3RlciBkZW5vdGluZyBhIGZpbGUncyB0eXBlIGFzIHJlcG9ydGVkICBieQorICAgICAgICAgICAgICBfCHNfCHRfCGFfCHQoMikgIGlzICBhcHBlbmRlZCB0byB0aGUgZmlsZW5hbWUgd2hlbiBsaXN0aW5nIHBvc3NpYmxlIGNvbS0KKyAgICAgICAgICAgICAgcGxldGlvbnMuCiAKICAgIEMIQ28Ib24IbmQIZGkIaXQIdGkIaW8Ib24IbmEIYWwIbCBDCENvCG9uCG5zCHN0CHRyCHJ1CHVjCGN0CHRzCHMKLSAgICAgICBSZWFkbGluZSAgaW1wbGVtZW50cyAgYSAgZmFjaWxpdHkgc2ltaWxhciBpbiBzcGlyaXQgdG8gdGhlCi0gICAgICAgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gZmVhdHVyZXMgIG9mICB0aGUgIEMgIHByZXByb2Nlc3NvcgotICAgICAgIHdoaWNoIGFsbG93cyBrZXkgYmluZGluZ3MgYW5kIHZhcmlhYmxlIHNldHRpbmdzIHRvIGJlIHBlci0KLSAgICAgICBmb3JtZWQgYXMgdGhlIHJlc3VsdCBvZiAgdGVzdHMuICAgVGhlcmUgIGFyZSAgZm91ciAgcGFyc2VyCi0gICAgICAgZGlyZWN0aXZlcyB1c2VkLgorICAgICAgIFJlYWRsaW5lIGltcGxlbWVudHMgYSBmYWNpbGl0eSBzaW1pbGFyIGluICBzcGlyaXQgIHRvICB0aGUgIGNvbmRpdGlvbmFsCisgICAgICAgY29tcGlsYXRpb24gIGZlYXR1cmVzICBvZiAgdGhlIEMgcHJlcHJvY2Vzc29yIHdoaWNoIGFsbG93cyBrZXkgYmluZGluZ3MKKyAgICAgICBhbmQgdmFyaWFibGUgc2V0dGluZ3MgdG8gYmUgcGVyZm9ybWVkIGFzIHRoZSByZXN1bHQgIG9mICB0ZXN0cy4gICBUaGVyZQorICAgICAgIGFyZSBmb3VyIHBhcnNlciBkaXJlY3RpdmVzIHVzZWQuCiAKLSAgICAgICAkCCRpCGlmCGYgICAgVGhlICAkCCRpCGlmCGYgY29uc3RydWN0IGFsbG93cyBiaW5kaW5ncyB0byBiZSBtYWRlIGJhc2VkCi0gICAgICAgICAgICAgIG9uIHRoZSBlZGl0aW5nIG1vZGUsIHRoZSB0ZXJtaW5hbCAgYmVpbmcgIHVzZWQsICBvcgotICAgICAgICAgICAgICB0aGUgIGFwcGxpY2F0aW9uICB1c2luZyAgcmVhZGxpbmUuICBUaGUgdGV4dCBvZiB0aGUKLSAgICAgICAgICAgICAgdGVzdCBleHRlbmRzIHRvIHRoZSBlbmQgb2YgdGhlIGxpbmU7IG5vICBjaGFyYWN0ZXJzCi0gICAgICAgICAgICAgIGFyZSByZXF1aXJlZCB0byBpc29sYXRlIGl0LgorICAgICAgICQIJGkIaWYIZiAgICBUaGUgICQIJGkIaWYIZiBjb25zdHJ1Y3QgYWxsb3dzIGJpbmRpbmdzIHRvIGJlIG1hZGUgYmFzZWQgb24gdGhlIGVkaXQtCisgICAgICAgICAgICAgIGluZyBtb2RlLCB0aGUgdGVybWluYWwgYmVpbmcgIHVzZWQsICBvciAgdGhlICBhcHBsaWNhdGlvbiAgdXNpbmcKKyAgICAgICAgICAgICAgcmVhZGxpbmUuICAgVGhlIHRleHQgb2YgdGhlIHRlc3QgZXh0ZW5kcyB0byB0aGUgZW5kIG9mIHRoZSBsaW5lOworICAgICAgICAgICAgICBubyBjaGFyYWN0ZXJzIGFyZSByZXF1aXJlZCB0byBpc29sYXRlIGl0LgogCi0gICAgICAgICAgICAgIG0IbW8Ib2QIZGUIZSAgIFRoZSAgbQhtbwhvZAhkZQhlPQg9IGZvcm0gb2YgdGhlICQIJGkIaWYIZiBkaXJlY3RpdmUgaXMgdXNlZAotICAgICAgICAgICAgICAgICAgICAgdG8gdGVzdCB3aGV0aGVyIHJlYWRsaW5lIGlzIGluIGVtYWNzICBvciAgdmkKLSAgICAgICAgICAgICAgICAgICAgIG1vZGUuICAgVGhpcyBtYXkgYmUgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoCi0gICAgICAgICAgICAgICAgICAgICB0aGUgcwhzZQhldAh0IGsIa2UIZXkIeW0IbWEIYXAIcCBjb21tYW5kLCBmb3IgaW5zdGFuY2UsIHRvIHNldAotICAgICAgICAgICAgICAgICAgICAgYmluZGluZ3MgIGluICB0aGUgIF8IZV8IbV8IYV8IY18Ic18ILV8Ic18IdF8IYV8Ibl8IZF8IYV8Icl8IZCBhbmQgXwhlXwhtXwhhXwhjXwhzXwgtCi0gICAgICAgICAgICAgICAgICAgICBfCGNfCHRfCGxfCHgga2V5bWFwcyBvbmx5IGlmICByZWFkbGluZSAgaXMgIHN0YXJ0aW5nCi0gICAgICAgICAgICAgICAgICAgICBvdXQgaW4gZW1hY3MgbW9kZS4KKyAgICAgICAgICAgICAgbQhtbwhvZAhkZQhlICAgVGhlIG0IbW8Ib2QIZGUIZT0IPSBmb3JtIG9mIHRoZSAgJAgkaQhpZghmICBkaXJlY3RpdmUgIGlzICB1c2VkICB0byAgdGVzdAorICAgICAgICAgICAgICAgICAgICAgd2hldGhlciAgcmVhZGxpbmUgIGlzICBpbiAgZW1hY3Mgb3IgdmkgbW9kZS4gIFRoaXMgbWF5IGJlCisgICAgICAgICAgICAgICAgICAgICB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggIHRoZSAgcwhzZQhldAh0ICBrCGtlCGV5CHltCG1hCGFwCHAgIGNvbW1hbmQsICBmb3IKKyAgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLCAgdG8gIHNldCAgYmluZGluZ3MgIGluICB0aGUgIF8IZV8IbV8IYV8IY18Ic18ILV8Ic18IdF8IYV8Ibl8IZF8IYV8Icl8IZCBhbmQKKyAgICAgICAgICAgICAgICAgICAgIF8IZV8IbV8IYV8IY18Ic18ILV8IY18IdF8IbF8IeCBrZXltYXBzIG9ubHkgaWYgcmVhZGxpbmUgaXMgIHN0YXJ0aW5nICBvdXQgIGluCisgICAgICAgICAgICAgICAgICAgICBlbWFjcyBtb2RlLgogCi0gICAgICAgICAgICAgIHQIdGUIZXIIcm0IbSAgIFRoZSB0CHRlCGVyCHJtCG09CD0gZm9ybSBtYXkgYmUgdXNlZCB0byBpbmNsdWRlIHRlcm1pLQotICAgICAgICAgICAgICAgICAgICAgbmFsLXNwZWNpZmljIGtleSBiaW5kaW5ncywgcGVyaGFwcyAgdG8gIGJpbmQKLSAgICAgICAgICAgICAgICAgICAgIHRoZSAga2V5ICBzZXF1ZW5jZXMgb3V0cHV0IGJ5IHRoZSB0ZXJtaW5hbCdzCi0gICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBrZXlzLiAgVGhlIHdvcmQgb24gdGhlICByaWdodCAgc2lkZQotICAgICAgICAgICAgICAgICAgICAgb2YgIHRoZSA9CD0gaXMgdGVzdGVkIGFnYWluc3QgdGhlIGZ1bGwgbmFtZSBvZgotICAgICAgICAgICAgICAgICAgICAgdGhlIHRlcm1pbmFsIGFuZCB0aGUgcG9ydGlvbiBvZiB0aGUgdGVybWluYWwKLSAgICAgICAgICAgICAgICAgICAgIG5hbWUgYmVmb3JlIHRoZSBmaXJzdCAtCC0uICBUaGlzIGFsbG93cyBfCHNfCHVfCG4gdG8KLSAgICAgICAgICAgICAgICAgICAgIG1hdGNoIGJvdGggXwhzXwh1XwhuIGFuZCBfCHNfCHVfCG5fCC1fCGNfCG1fCGQsIGZvciBpbnN0YW5jZS4KKyAgICAgICAgICAgICAgdAh0ZQhlcghybQhtICAgVGhlICB0CHRlCGVyCHJtCG09CD0gIGZvcm0gbWF5IGJlIHVzZWQgdG8gaW5jbHVkZSB0ZXJtaW5hbC1zcGVjaWZpYworICAgICAgICAgICAgICAgICAgICAga2V5IGJpbmRpbmdzLCBwZXJoYXBzIHRvIGJpbmQgdGhlIGtleSBzZXF1ZW5jZXMgb3V0cHV0IGJ5CisgICAgICAgICAgICAgICAgICAgICB0aGUgdGVybWluYWwncyBmdW5jdGlvbiBrZXlzLiAgVGhlIHdvcmQgb24gdGhlIHJpZ2h0IHNpZGUKKyAgICAgICAgICAgICAgICAgICAgIG9mIHRoZSA9CD0gaXMgdGVzdGVkIGFnYWluc3QgdGhlIGZ1bGwgbmFtZSBvZiB0aGUgIHRlcm1pbmFsCisgICAgICAgICAgICAgICAgICAgICBhbmQgIHRoZSBwb3J0aW9uIG9mIHRoZSB0ZXJtaW5hbCBuYW1lIGJlZm9yZSB0aGUgZmlyc3QgLQgtLgorICAgICAgICAgICAgICAgICAgICAgVGhpcyBhbGxvd3MgXwhzXwh1XwhuICB0byAgbWF0Y2ggIGJvdGggIF8Ic18IdV8IbiAgYW5kICBfCHNfCHVfCG5fCC1fCGNfCG1fCGQsICBmb3IKKyAgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlLgogCiAgICAgICAgICAgICAgIGEIYXAIcHAIcGwIbGkIaWMIY2EIYXQIdGkIaW8Ib24IbgotICAgICAgICAgICAgICAgICAgICAgVGhlIGEIYXAIcHAIcGwIbGkIaWMIY2EIYXQIdGkIaW8Ib24IbiBjb25zdHJ1Y3QgaXMgdXNlZCB0byBpbmNsdWRlCi0gICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbi1zcGVjaWZpYyBzZXR0aW5ncy4gIEVhY2ggcHJvZ3JhbQotICAgICAgICAgICAgICAgICAgICAgdXNpbmcgdGhlIHJlYWRsaW5lIGxpYnJhcnkgc2V0cyB0aGUgXwhhXwhwXwhwXwhsXwhpXwhjXwhhXwgtCi0gICAgICAgICAgICAgICAgICAgICBfCHRfCGlfCG9fCG4gIF8Ibl8IYV8IbV8IZSwgIGFuZCAgYW4gaW5pdGlhbGl6YXRpb24gZmlsZSBjYW4KLSAgICAgICAgICAgICAgICAgICAgIHRlc3QgZm9yIGEgcGFydGljdWxhciB2YWx1ZS4gIFRoaXMgY291bGQgIGJlCi0gICAgICAgICAgICAgICAgICAgICB1c2VkIHRvIGJpbmQga2V5IHNlcXVlbmNlcyB0byBmdW5jdGlvbnMgdXNlLQotICAgICAgICAgICAgICAgICAgICAgZnVsIGZvciBhIHNwZWNpZmljIHByb2dyYW0uICAgRm9yICBpbnN0YW5jZSwKLSAgICAgICAgICAgICAgICAgICAgIHRoZSAgZm9sbG93aW5nICBjb21tYW5kICBhZGRzIGEga2V5IHNlcXVlbmNlCi0gICAgICAgICAgICAgICAgICAgICB0aGF0IHF1b3RlcyB0aGUgY3VycmVudCBvciBwcmV2aW91cyB3b3JkICBpbgorICAgICAgICAgICAgICAgICAgICAgVGhlIGEIYXAIcHAIcGwIbGkIaWMIY2EIYXQIdGkIaW8Ib24IbiBjb25zdHJ1Y3QgaXMgdXNlZCB0byBpbmNsdWRlIGFwcGxpY2F0aW9uLQorICAgICAgICAgICAgICAgICAgICAgc3BlY2lmaWMgIHNldHRpbmdzLiAgIEVhY2ggIHByb2dyYW0gIHVzaW5nICB0aGUgIHJlYWRsaW5lCisgICAgICAgICAgICAgICAgICAgICBsaWJyYXJ5ICBzZXRzIHRoZSBfCGFfCHBfCHBfCGxfCGlfCGNfCGFfCHRfCGlfCG9fCG4gXwhuXwhhXwhtXwhlLCBhbmQgYW4gaW5pdGlhbGl6YXRpb24KKyAgICAgICAgICAgICAgICAgICAgIGZpbGUgY2FuIHRlc3QgZm9yIGEgcGFydGljdWxhciB2YWx1ZS4gIFRoaXMgY291bGQgYmUgdXNlZAorICAgICAgICAgICAgICAgICAgICAgdG8gIGJpbmQga2V5IHNlcXVlbmNlcyB0byBmdW5jdGlvbnMgdXNlZnVsIGZvciBhIHNwZWNpZmljCisgICAgICAgICAgICAgICAgICAgICBwcm9ncmFtLiAgRm9yIGluc3RhbmNlLCB0aGUgZm9sbG93aW5nIGNvbW1hbmQgYWRkcyBhICBrZXkKKyAgICAgICAgICAgICAgICAgICAgIHNlcXVlbmNlICB0aGF0ICBxdW90ZXMgIHRoZSAgY3VycmVudCAgb3IgcHJldmlvdXMgd29yZCBpbgogICAgICAgICAgICAgICAgICAgICAgQmFzaDoKIAogICAgICAgICAgICAgICAgICAgICAgJAgkaQhpZghmIEJhc2gKQEAgLTM0Nyw2OCArMzI1LDYwIEBACiAgICAgICAgICAgICAgICAgICAgICAiXEMteHEiOiAiXGViXCJcZWZcIiIKICAgICAgICAgICAgICAgICAgICAgICQIJGUIZW4IbmQIZGkIaWYIZgogCi0gICAgICAgJAgkZQhlbghuZAhkaQhpZghmIFRoaXMgY29tbWFuZCwgYXMgc2VlbiBpbiB0aGUgcHJldmlvdXMgZXhhbXBsZSwgdGVyLQotICAgICAgICAgICAgICBtaW5hdGVzIGFuICQIJGkIaWYIZiBjb21tYW5kLgorICAgICAgICQIJGUIZW4IbmQIZGkIaWYIZiBUaGlzIGNvbW1hbmQsIGFzIHNlZW4gaW4gdGhlIHByZXZpb3VzIGV4YW1wbGUsIHRlcm1pbmF0ZXMgYW4gJAgkaQhpZghmCisgICAgICAgICAgICAgIGNvbW1hbmQuCiAKLSAgICAgICAkCCRlCGVsCGxzCHNlCGUgIENvbW1hbmRzIGluIHRoaXMgYnJhbmNoIG9mIHRoZSAgJAgkaQhpZghmICBkaXJlY3RpdmUgIGFyZQotICAgICAgICAgICAgICBleGVjdXRlZCBpZiB0aGUgdGVzdCBmYWlscy4KKyAgICAgICAkCCRlCGVsCGxzCHNlCGUgIENvbW1hbmRzIGluIHRoaXMgYnJhbmNoIG9mIHRoZSAkCCRpCGlmCGYgZGlyZWN0aXZlIGFyZSBleGVjdXRlZCBpZiB0aGUKKyAgICAgICAgICAgICAgdGVzdCBmYWlscy4KIAogICAgICAgICQIJGkIaW4IbmMIY2wIbHUIdWQIZGUIZQotICAgICAgICAgICAgICBUaGlzICBkaXJlY3RpdmUgdGFrZXMgYSBzaW5nbGUgZmlsZW5hbWUgYXMgYW4gYXJndS0KLSAgICAgICAgICAgICAgbWVudCBhbmQgcmVhZHMgIGNvbW1hbmRzICBhbmQgIGJpbmRpbmdzICBmcm9tICB0aGF0Ci0gICAgICAgICAgICAgIGZpbGUuICAgRm9yICBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGRpcmVjdGl2ZSB3b3VsZAotICAgICAgICAgICAgICByZWFkIF8IL18IZV8IdF8IY18IL18IaV8Ibl8IcF8IdV8IdF8Icl8IYzoKKyAgICAgICAgICAgICAgVGhpcyBkaXJlY3RpdmUgdGFrZXMgYSBzaW5nbGUgZmlsZW5hbWUgYXMgYW4gYXJndW1lbnQgYW5kICByZWFkcworICAgICAgICAgICAgICBjb21tYW5kcyAgYW5kIGJpbmRpbmdzIGZyb20gdGhhdCBmaWxlLiAgRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3ctCisgICAgICAgICAgICAgIGluZyBkaXJlY3RpdmUgd291bGQgcmVhZCBfCC9fCGVfCHRfCGNfCC9fCGlfCG5fCHBfCHVfCHRfCHJfCGM6CiAKICAgICAgICAgICAgICAgJAgkaQhpbghuYwhjbAhsdQh1ZAhkZQhlICBfCC9fCGVfCHRfCGNfCC9fCGlfCG5fCHBfCHVfCHRfCHJfCGMKIAogUwhTRQhFQQhBUghSQwhDSAhISQhJTghORwhHCi0gICAgICAgUmVhZGxpbmUgcHJvdmlkZXMgY29tbWFuZHMgZm9yIHNlYXJjaGluZyB0aHJvdWdoIHRoZSAgY29tLQotICAgICAgIG1hbmQgIGhpc3RvcnkgIGZvciAgbGluZXMgIGNvbnRhaW5pbmcgIGEgc3BlY2lmaWVkIHN0cmluZy4KLSAgICAgICBUaGVyZSBhcmUgdHdvIHNlYXJjaCBtb2RlczogXwhpXwhuXwhjXwhyXwhlXwhtXwhlXwhuXwh0XwhhXwhsIGFuZCAgXwhuXwhvXwhuXwgtXwhpXwhuXwhjXwhyXwhlXwhtXwhlXwhuXwgtCi0gICAgICAgXwh0XwhhXwhsLgorICAgICAgIFJlYWRsaW5lIHByb3ZpZGVzIGNvbW1hbmRzIGZvciBzZWFyY2hpbmcgdGhyb3VnaCAgdGhlICBjb21tYW5kICBoaXN0b3J5CisgICAgICAgZm9yICBsaW5lcyAgY29udGFpbmluZyBhIHNwZWNpZmllZCBzdHJpbmcuICBUaGVyZSBhcmUgdHdvIHNlYXJjaCBtb2RlczoKKyAgICAgICBfCGlfCG5fCGNfCHJfCGVfCG1fCGVfCG5fCHRfCGFfCGwgYW5kIF8Ibl8Ib18Ibl8ILV8IaV8Ibl8IY18Icl8IZV8IbV8IZV8Ibl8IdF8IYV8IbC4KIAotICAgICAgIEluY3JlbWVudGFsICBzZWFyY2hlcyAgYmVnaW4gIGJlZm9yZSB0aGUgdXNlciBoYXMgZmluaXNoZWQKLSAgICAgICB0eXBpbmcgdGhlIHNlYXJjaCBzdHJpbmcuICBBcyBlYWNoIGNoYXJhY3RlciBvZiB0aGUgc2VhcmNoCi0gICAgICAgc3RyaW5nIGlzIHR5cGVkLCByZWFkbGluZSBkaXNwbGF5cyB0aGUgbmV4dCBlbnRyeSBmcm9tIHRoZQotICAgICAgIGhpc3RvcnkgbWF0Y2hpbmcgdGhlIHN0cmluZyB0eXBlZCBzbyBmYXIuICBBbiAgaW5jcmVtZW50YWwKLSAgICAgICBzZWFyY2ggIHJlcXVpcmVzIG9ubHkgYXMgbWFueSBjaGFyYWN0ZXJzIGFzIG5lZWRlZCB0byBmaW5kCi0gICAgICAgdGhlIGRlc2lyZWQgaGlzdG9yeSBlbnRyeS4gIFRvIHNlYXJjaCBiYWNrd2FyZCBpbiB0aGUgaGlzLQotICAgICAgIHRvcnkgIGZvciAgYSAgcGFydGljdWxhciAgc3RyaW5nLCAgdHlwZSAgQwhDLQgtcghyLiAgIFR5cGluZyBDCEMtCC1zCHMKLSAgICAgICBzZWFyY2hlcyBmb3J3YXJkIHRocm91Z2ggdGhlIGhpc3RvcnkuICBUaGUgY2hhcmFjdGVycyBwcmUtCi0gICAgICAgc2VudCAgaW4gdGhlIHZhbHVlIG9mIHRoZSBpCGlzCHNlCGVhCGFyCHJjCGNoCGgtCC10CHRlCGVyCHJtCG1pCGluCG5hCGF0CHRvCG9yCHJzCHMgdmFyaWFibGUgYXJlCi0gICAgICAgdXNlZCB0byB0ZXJtaW5hdGUgYW4gaW5jcmVtZW50YWwgc2VhcmNoLiAgSWYgdGhhdCB2YXJpYWJsZQotICAgICAgIGhhcyAgbm90ICBiZWVuIGFzc2lnbmVkIGEgdmFsdWUgdGhlIF8IRV8Ic18IY18IYV8IcF8IZSBhbmQgQwhDLQgtSghKIGNoYXJhYy0KLSAgICAgICB0ZXJzIHdpbGwgdGVybWluYXRlIGFuIGluY3JlbWVudGFsIHNlYXJjaC4gIEMIQy0ILUcIRyB3aWxsIGFib3J0Ci0gICAgICAgYW4gaW5jcmVtZW50YWwgc2VhcmNoIGFuZCByZXN0b3JlIHRoZSBvcmlnaW5hbCBsaW5lLiAgV2hlbgotICAgICAgIHRoZSBzZWFyY2ggaXMgdGVybWluYXRlZCwgdGhlIGhpc3RvcnkgZW50cnkgY29udGFpbmluZyB0aGUKLSAgICAgICBzZWFyY2ggc3RyaW5nIGJlY29tZXMgdGhlIGN1cnJlbnQgbGluZS4KKyAgICAgICBJbmNyZW1lbnRhbCBzZWFyY2hlcyBiZWdpbiBiZWZvcmUgdGhlICB1c2VyICBoYXMgIGZpbmlzaGVkICB0eXBpbmcgIHRoZQorICAgICAgIHNlYXJjaCAgc3RyaW5nLiAgQXMgZWFjaCBjaGFyYWN0ZXIgb2YgdGhlIHNlYXJjaCBzdHJpbmcgaXMgdHlwZWQsIHJlYWQtCisgICAgICAgbGluZSBkaXNwbGF5cyB0aGUgbmV4dCBlbnRyeSBmcm9tIHRoZSBoaXN0b3J5IG1hdGNoaW5nIHRoZSBzdHJpbmcgdHlwZWQKKyAgICAgICBzbyAgZmFyLiAgIEFuICBpbmNyZW1lbnRhbCAgc2VhcmNoICByZXF1aXJlcyBvbmx5IGFzIG1hbnkgY2hhcmFjdGVycyBhcworICAgICAgIG5lZWRlZCB0byBmaW5kIHRoZSBkZXNpcmVkIGhpc3RvcnkgZW50cnkuICBUbyBzZWFyY2ggIGJhY2t3YXJkICBpbiAgdGhlCisgICAgICAgaGlzdG9yeSBmb3IgYSBwYXJ0aWN1bGFyIHN0cmluZywgdHlwZSBDCEMtCC1yCHIuICBUeXBpbmcgQwhDLQgtcwhzIHNlYXJjaGVzIGZvcndhcmQKKyAgICAgICB0aHJvdWdoIHRoZSBoaXN0b3J5LiAgVGhlICBjaGFyYWN0ZXJzICBwcmVzZW50ICBpbiAgdGhlICB2YWx1ZSAgb2YgIHRoZQorICAgICAgIGkIaXMIc2UIZWEIYXIIcmMIY2gIaC0ILXQIdGUIZXIIcm0IbWkIaW4IbmEIYXQIdG8Ib3IIcnMIcyAgdmFyaWFibGUgIGFyZSAgdXNlZCAgdG8gIHRlcm1pbmF0ZSAgYW4gaW5jcmVtZW50YWwKKyAgICAgICBzZWFyY2guICBJZiB0aGF0IHZhcmlhYmxlIGhhcyBub3QgYmVlbiBhc3NpZ25lZCBhIHZhbHVlIHRoZSBfCEVfCHNfCGNfCGFfCHBfCGUgIGFuZAorICAgICAgIEMIQy0ILUoISiBjaGFyYWN0ZXJzIHdpbGwgdGVybWluYXRlIGFuIGluY3JlbWVudGFsIHNlYXJjaC4gIEMIQy0ILUcIRyB3aWxsIGFib3J0IGFuCisgICAgICAgaW5jcmVtZW50YWwgc2VhcmNoIGFuZCByZXN0b3JlIHRoZSBvcmlnaW5hbCBsaW5lLiAgV2hlbiB0aGUgIHNlYXJjaCAgaXMKKyAgICAgICB0ZXJtaW5hdGVkLCAgdGhlIGhpc3RvcnkgZW50cnkgY29udGFpbmluZyB0aGUgc2VhcmNoIHN0cmluZyBiZWNvbWVzIHRoZQorICAgICAgIGN1cnJlbnQgbGluZS4KIAotICAgICAgIFRvICBmaW5kICBvdGhlciBtYXRjaGluZyBlbnRyaWVzIGluIHRoZSBoaXN0b3J5IGxpc3QsIHR5cGUKLSAgICAgICBDCEMtCC1zCHMgb3IgQwhDLQgtcghyIGFzIGFwcHJvcHJpYXRlLiAgVGhpcyB3aWxsIHNlYXJjaCAgYmFja3dhcmQgIG9yCi0gICAgICAgZm9yd2FyZCAgaW4gIHRoZSAgaGlzdG9yeSAgZm9yICB0aGUgbmV4dCBsaW5lIG1hdGNoaW5nIHRoZQotICAgICAgIHNlYXJjaCBzdHJpbmcgdHlwZWQgc28gZmFyLiAgQW55IG90aGVyIGtleSBzZXF1ZW5jZSAgYm91bmQKLSAgICAgICB0byAgYSAgcmVhZGxpbmUgY29tbWFuZCB3aWxsIHRlcm1pbmF0ZSB0aGUgc2VhcmNoIGFuZCBleGUtCi0gICAgICAgY3V0ZSB0aGF0IGNvbW1hbmQuICBGb3IgaW5zdGFuY2UsIGEgbmV3bGluZSB3aWxsIHRlcm1pbmF0ZQotICAgICAgIHRoZSBzZWFyY2ggYW5kIGFjY2VwdCB0aGUgbGluZSwgdGhlcmVieSBleGVjdXRpbmcgdGhlIGNvbS0KLSAgICAgICBtYW5kIGZyb20gdGhlIGhpc3RvcnkgbGlzdC4gIEEgbW92ZW1lbnQgY29tbWFuZCB3aWxsICB0ZXItCi0gICAgICAgbWluYXRlICB0aGUgIHNlYXJjaCwgIG1ha2UgdGhlIGxhc3QgbGluZSBmb3VuZCB0aGUgY3VycmVudAotICAgICAgIGxpbmUsIGFuZCBiZWdpbiBlZGl0aW5nLgorICAgICAgIFRvIGZpbmQgb3RoZXIgbWF0Y2hpbmcgZW50cmllcyBpbiB0aGUgaGlzdG9yeSBsaXN0LCB0eXBlIEMIQy0ILXMIcyBvciBDCEMtCC1yCHIgIGFzCisgICAgICAgYXBwcm9wcmlhdGUuICAgVGhpcyAgd2lsbCBzZWFyY2ggYmFja3dhcmQgb3IgZm9yd2FyZCBpbiB0aGUgaGlzdG9yeSBmb3IKKyAgICAgICB0aGUgbmV4dCBsaW5lIG1hdGNoaW5nIHRoZSBzZWFyY2ggc3RyaW5nIHR5cGVkIHNvIGZhci4gIEFueSAgb3RoZXIgIGtleQorICAgICAgIHNlcXVlbmNlIGJvdW5kIHRvIGEgcmVhZGxpbmUgY29tbWFuZCB3aWxsIHRlcm1pbmF0ZSB0aGUgc2VhcmNoIGFuZCBleGUtCisgICAgICAgY3V0ZSB0aGF0IGNvbW1hbmQuICBGb3IgaW5zdGFuY2UsIGEgbmV3bGluZSB3aWxsIHRlcm1pbmF0ZSAgdGhlICBzZWFyY2gKKyAgICAgICBhbmQgIGFjY2VwdCAgdGhlICBsaW5lLCAgdGhlcmVieSBleGVjdXRpbmcgdGhlIGNvbW1hbmQgZnJvbSB0aGUgaGlzdG9yeQorICAgICAgIGxpc3QuICBBIG1vdmVtZW50IGNvbW1hbmQgd2lsbCB0ZXJtaW5hdGUgdGhlIHNlYXJjaCwgbWFrZSB0aGUgbGFzdCBsaW5lCisgICAgICAgZm91bmQgdGhlIGN1cnJlbnQgbGluZSwgYW5kIGJlZ2luIGVkaXRpbmcuCiAKLSAgICAgICBOb24taW5jcmVtZW50YWwgc2VhcmNoZXMgcmVhZCAgdGhlICBlbnRpcmUgIHNlYXJjaCAgc3RyaW5nCi0gICAgICAgYmVmb3JlIHN0YXJ0aW5nIHRvIHNlYXJjaCBmb3IgbWF0Y2hpbmcgaGlzdG9yeSBsaW5lcy4gIFRoZQotICAgICAgIHNlYXJjaCBzdHJpbmcgbWF5IGJlIHR5cGVkIGJ5IHRoZSB1c2VyIG9yIGJlIHBhcnQgIG9mICB0aGUKLSAgICAgICBjb250ZW50cyBvZiB0aGUgY3VycmVudCBsaW5lLgorICAgICAgIE5vbi1pbmNyZW1lbnRhbCAgc2VhcmNoZXMgcmVhZCB0aGUgZW50aXJlIHNlYXJjaCBzdHJpbmcgYmVmb3JlIHN0YXJ0aW5nCisgICAgICAgdG8gc2VhcmNoIGZvciBtYXRjaGluZyBoaXN0b3J5IGxpbmVzLiAgVGhlIHNlYXJjaCBzdHJpbmcgbWF5ICBiZSAgdHlwZWQKKyAgICAgICBieSB0aGUgdXNlciBvciBiZSBwYXJ0IG9mIHRoZSBjb250ZW50cyBvZiB0aGUgY3VycmVudCBsaW5lLgogCiBFCEVECERJCElUCFRJCElOCE5HCEcgQwhDTwhPTQhNTQhNQQhBTghORAhEUwhTCi0gICAgICAgVGhlICBmb2xsb3dpbmcgIGlzIGEgbGlzdCBvZiB0aGUgbmFtZXMgb2YgdGhlIGNvbW1hbmRzIGFuZAotICAgICAgIHRoZSBkZWZhdWx0IGtleSBzZXF1ZW5jZXMgdG8gd2hpY2ggdGhleSBhcmUgIGJvdW5kLiAgIENvbS0KLSAgICAgICBtYW5kICBuYW1lcyAgd2l0aG91dCAgYW4gIGFjY29tcGFueWluZyAga2V5ICBzZXF1ZW5jZSAgYXJlCi0gICAgICAgdW5ib3VuZCBieSBkZWZhdWx0LgorICAgICAgIFRoZSAgZm9sbG93aW5nICBpcyAgYSBsaXN0IG9mIHRoZSBuYW1lcyBvZiB0aGUgY29tbWFuZHMgYW5kIHRoZSBkZWZhdWx0CisgICAgICAga2V5IHNlcXVlbmNlcyB0byB3aGljaCB0aGV5IGFyZSBib3VuZC4gIENvbW1hbmQgbmFtZXMgd2l0aG91dCBhbiBhY2NvbS0KKyAgICAgICBwYW55aW5nIGtleSBzZXF1ZW5jZSBhcmUgdW5ib3VuZCBieSBkZWZhdWx0LgogCi0gICAgICAgSW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbnMsIF8IcF8Ib18IaV8Ibl8IdCByZWZlcnMgdG8gdGhlIGN1cnJlbnQKLSAgICAgICBjdXJzb3IgIHBvc2l0aW9uLCAgYW5kICBfCG1fCGFfCHJfCGsgIHJlZmVycyAgdG8gYSBjdXJzb3IgcG9zaXRpb24KLSAgICAgICBzYXZlZCBieSB0aGUgcwhzZQhldAh0LQgtbQhtYQhhcghyawhrIGNvbW1hbmQuICBUaGUgdGV4dCBiZXR3ZWVuIHRoZSBwb2ludAotICAgICAgIGFuZCBtYXJrIGlzIHJlZmVycmVkIHRvIGFzIHRoZSBfCHJfCGVfCGdfCGlfCG9fCG4uCisgICAgICAgSW4gdGhlIGZvbGxvd2luZyBkZXNjcmlwdGlvbnMsIF8IcF8Ib18IaV8Ibl8IdCByZWZlcnMgdG8gdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2ktCisgICAgICAgdGlvbiwgYW5kIF8IbV8IYV8Icl8IayByZWZlcnMgdG8gYSBjdXJzb3IgcG9zaXRpb24gc2F2ZWQgYnkgdGhlICBzCHNlCGV0CHQtCC1tCG1hCGFyCHJrCGsgIGNvbS0KKyAgICAgICBtYW5kLiAgIFRoZSAgdGV4dCAgYmV0d2VlbiAgdGhlICBwb2ludCAgYW5kICBtYXJrIGlzIHJlZmVycmVkIHRvIGFzIHRoZQorICAgICAgIF8Icl8IZV8IZ18IaV8Ib18Ibi4KIAogICAgQwhDbwhvbQhtbQhtYQhhbghuZAhkcwhzIGYIZm8Ib3IIciBNCE1vCG92CHZpCGluCG5nCGcKICAgICAgICBiCGJlCGVnCGdpCGluCG5uCG5pCGluCG5nCGctCC1vCG9mCGYtCC1sCGxpCGluCG5lCGUgKAgoQwhDLQgtYQhhKQgpCkBAIC00MjAsMTM2ICszOTAsMTIyIEBACiAgICAgICAgYghiYQhhYwhjawhrdwh3YQhhcghyZAhkLQgtYwhjaAhoYQhhcghyICgIKEMIQy0ILWIIYikIKQogICAgICAgICAgICAgICBNb3ZlIGJhY2sgYSBjaGFyYWN0ZXIuCiAgICAgICAgZghmbwhvcghydwh3YQhhcghyZAhkLQgtdwh3bwhvcghyZAhkICgIKE0ITS0ILWYIZikIKQotICAgICAgICAgICAgICBNb3ZlICBmb3J3YXJkICB0byAgdGhlIGVuZCBvZiB0aGUgbmV4dCB3b3JkLiAgV29yZHMKLSAgICAgICAgICAgICAgYXJlIGNvbXBvc2VkIG9mICBhbHBoYW51bWVyaWMgIGNoYXJhY3RlcnMgIChsZXR0ZXJzCi0gICAgICAgICAgICAgIGFuZCBkaWdpdHMpLgorICAgICAgICAgICAgICBNb3ZlIGZvcndhcmQgdG8gdGhlIGVuZCBvZiB0aGUgbmV4dCB3b3JkLiAgV29yZHMgYXJlIGNvbXBvc2VkIG9mCisgICAgICAgICAgICAgIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIChsZXR0ZXJzIGFuZCBkaWdpdHMpLgogICAgICAgIGIIYmEIYWMIY2sIa3cId2EIYXIIcmQIZC0ILXcId28Ib3IIcmQIZCAoCChNCE0tCC1iCGIpCCkKLSAgICAgICAgICAgICAgTW92ZSAgYmFjayAgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjdXJyZW50IG9yIHByZXZpb3VzCi0gICAgICAgICAgICAgIHdvcmQuICBXb3JkcyBhcmUgY29tcG9zZWQgb2YgIGFscGhhbnVtZXJpYyAgY2hhcmFjLQotICAgICAgICAgICAgICB0ZXJzIChsZXR0ZXJzIGFuZCBkaWdpdHMpLgorICAgICAgICAgICAgICBNb3ZlICBiYWNrICB0byB0aGUgc3RhcnQgb2YgdGhlIGN1cnJlbnQgb3IgcHJldmlvdXMgd29yZC4gIFdvcmRzCisgICAgICAgICAgICAgIGFyZSBjb21wb3NlZCBvZiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyAobGV0dGVycyBhbmQgZGlnaXRzKS4KICAgICAgICBjCGNsCGxlCGVhCGFyCHItCC1zCHNjCGNyCHJlCGVlCGVuCG4gKAgoQwhDLQgtbAhsKQgpCi0gICAgICAgICAgICAgIENsZWFyICB0aGUgIHNjcmVlbiAgbGVhdmluZyB0aGUgY3VycmVudCBsaW5lIGF0IHRoZQotICAgICAgICAgICAgICB0b3Agb2YgdGhlIHNjcmVlbi4gIFdpdGggYW4gYXJndW1lbnQsICByZWZyZXNoICB0aGUKLSAgICAgICAgICAgICAgY3VycmVudCBsaW5lIHdpdGhvdXQgY2xlYXJpbmcgdGhlIHNjcmVlbi4KKyAgICAgICAgICAgICAgQ2xlYXIgdGhlIHNjcmVlbiBsZWF2aW5nIHRoZSBjdXJyZW50IGxpbmUgIGF0ICB0aGUgIHRvcCAgb2YgIHRoZQorICAgICAgICAgICAgICBzY3JlZW4uICAgV2l0aCAgYW4gIGFyZ3VtZW50LCAgcmVmcmVzaCAgdGhlIGN1cnJlbnQgbGluZSB3aXRob3V0CisgICAgICAgICAgICAgIGNsZWFyaW5nIHRoZSBzY3JlZW4uCiAgICAgICAgcghyZQhlZAhkcghyYQhhdwh3LQgtYwhjdQh1cghycghyZQhlbghudAh0LQgtbAhsaQhpbghuZQhlCiAgICAgICAgICAgICAgIFJlZnJlc2ggdGhlIGN1cnJlbnQgbGluZS4KIAogICAgQwhDbwhvbQhtbQhtYQhhbghuZAhkcwhzIGYIZm8Ib3IIciBNCE1hCGFuCG5pCGlwCHB1CHVsCGxhCGF0CHRpCGluCG5nCGcgdAh0aAhoZQhlIEgISGkIaXMIc3QIdG8Ib3IIcnkIeQogICAgICAgIGEIYWMIY2MIY2UIZXAIcHQIdC0ILWwIbGkIaW4IbmUIZSAoCChOCE5lCGV3CHdsCGxpCGluCG5lCGUsCCwgUghSZQhldAh0dQh1cghybghuKQgpCi0gICAgICAgICAgICAgIEFjY2VwdCAgdGhlIGxpbmUgcmVnYXJkbGVzcyBvZiB3aGVyZSB0aGUgY3Vyc29yIGlzLgotICAgICAgICAgICAgICBJZiB0aGlzIGxpbmUgaXMgbm9uLWVtcHR5LCBpdCBtYXkgYmUgYWRkZWQgIHRvICB0aGUKLSAgICAgICAgICAgICAgaGlzdG9yeSAgbGlzdCBmb3IgZnV0dXJlIHJlY2FsbCB3aXRoIGEIYWQIZGQIZF8IX2gIaGkIaXMIc3QIdG8Ib3IIcnkIeSgIKCkIKS4KLSAgICAgICAgICAgICAgSWYgdGhlIGxpbmUgaXMgYSBtb2RpZmllZCBoaXN0b3J5IGxpbmUsIHRoZSBoaXN0b3J5Ci0gICAgICAgICAgICAgIGxpbmUgaXMgcmVzdG9yZWQgdG8gaXRzIG9yaWdpbmFsIHN0YXRlLgorICAgICAgICAgICAgICBBY2NlcHQgdGhlIGxpbmUgcmVnYXJkbGVzcyBvZiB3aGVyZSB0aGUgY3Vyc29yIGlzLiAgSWYgdGhpcyBsaW5lCisgICAgICAgICAgICAgIGlzICBub24tZW1wdHksICBpdCAgbWF5ICBiZSBhZGRlZCB0byB0aGUgaGlzdG9yeSBsaXN0IGZvciBmdXR1cmUKKyAgICAgICAgICAgICAgcmVjYWxsIHdpdGggYQhhZAhkZAhkXwhfaAhoaQhpcwhzdAh0bwhvcghyeQh5KAgoKQgpLiAgSWYgdGhlIGxpbmUgaXMgIGEgIG1vZGlmaWVkICBoaXN0b3J5CisgICAgICAgICAgICAgIGxpbmUsIHRoZSBoaXN0b3J5IGxpbmUgaXMgcmVzdG9yZWQgdG8gaXRzIG9yaWdpbmFsIHN0YXRlLgogICAgICAgIHAIcHIIcmUIZXYIdmkIaW8Ib3UIdXMIcy0ILWgIaGkIaXMIc3QIdG8Ib3IIcnkIeSAoCChDCEMtCC1wCHApCCkKLSAgICAgICAgICAgICAgRmV0Y2ggIHRoZSAgcHJldmlvdXMgY29tbWFuZCBmcm9tIHRoZSBoaXN0b3J5IGxpc3QsCi0gICAgICAgICAgICAgIG1vdmluZyBiYWNrIGluIHRoZSBsaXN0LgorICAgICAgICAgICAgICBGZXRjaCB0aGUgcHJldmlvdXMgY29tbWFuZCBmcm9tIHRoZSBoaXN0b3J5IGxpc3QsIG1vdmluZyBiYWNrIGluCisgICAgICAgICAgICAgIHRoZSBsaXN0LgogICAgICAgIG4IbmUIZXgIeHQIdC0ILWgIaGkIaXMIc3QIdG8Ib3IIcnkIeSAoCChDCEMtCC1uCG4pCCkKLSAgICAgICAgICAgICAgRmV0Y2ggdGhlIG5leHQgY29tbWFuZCBmcm9tIHRoZSBoaXN0b3J5IGxpc3QsICBtb3YtCi0gICAgICAgICAgICAgIGluZyBmb3J3YXJkIGluIHRoZSBsaXN0LgorICAgICAgICAgICAgICBGZXRjaCB0aGUgbmV4dCBjb21tYW5kIGZyb20gdGhlIGhpc3RvcnkgbGlzdCwgbW92aW5nIGZvcndhcmQgIGluCisgICAgICAgICAgICAgIHRoZSBsaXN0LgogICAgICAgIGIIYmUIZWcIZ2kIaW4Ibm4IbmkIaW4IbmcIZy0ILW8Ib2YIZi0ILWgIaGkIaXMIc3QIdG8Ib3IIcnkIeSAoCChNCE0tCC08CDwpCCkKICAgICAgICAgICAgICAgTW92ZSB0byB0aGUgZmlyc3QgbGluZSBpbiB0aGUgaGlzdG9yeS4KICAgICAgICBlCGVuCG5kCGQtCC1vCG9mCGYtCC1oCGhpCGlzCHN0CHRvCG9yCHJ5CHkgKAgoTQhNLQgtPgg+KQgpCi0gICAgICAgICAgICAgIE1vdmUgIHRvICB0aGUgIGVuZCAgb2YgdGhlIGlucHV0IGhpc3RvcnksIGkuZS4sIHRoZQotICAgICAgICAgICAgICBsaW5lIGN1cnJlbnRseSBiZWluZyBlbnRlcmVkLgorICAgICAgICAgICAgICBNb3ZlICB0byAgdGhlIGVuZCBvZiB0aGUgaW5wdXQgaGlzdG9yeSwgaS5lLiwgdGhlIGxpbmUgY3VycmVudGx5CisgICAgICAgICAgICAgIGJlaW5nIGVudGVyZWQuCiAgICAgICAgcghyZQhldgh2ZQhlcghycwhzZQhlLQgtcwhzZQhlYQhhcghyYwhjaAhoLQgtaAhoaQhpcwhzdAh0bwhvcghyeQh5ICgIKEMIQy0ILXIIcikIKQotICAgICAgICAgICAgICBTZWFyY2ggYmFja3dhcmQgc3RhcnRpbmcgYXQgdGhlICBjdXJyZW50ICBsaW5lICBhbmQKLSAgICAgICAgICAgICAgbW92aW5nIGB1cCcgdGhyb3VnaCB0aGUgaGlzdG9yeSBhcyBuZWNlc3NhcnkuICBUaGlzCi0gICAgICAgICAgICAgIGlzIGFuIGluY3JlbWVudGFsIHNlYXJjaC4KKyAgICAgICAgICAgICAgU2VhcmNoIGJhY2t3YXJkIHN0YXJ0aW5nIGF0IHRoZSBjdXJyZW50ICBsaW5lICBhbmQgIG1vdmluZyAgYHVwJworICAgICAgICAgICAgICB0aHJvdWdoICB0aGUgIGhpc3RvcnkgIGFzICBuZWNlc3NhcnkuICAgVGhpcyAgaXMgIGFuIGluY3JlbWVudGFsCisgICAgICAgICAgICAgIHNlYXJjaC4KICAgICAgICBmCGZvCG9yCHJ3CHdhCGFyCHJkCGQtCC1zCHNlCGVhCGFyCHJjCGNoCGgtCC1oCGhpCGlzCHN0CHRvCG9yCHJ5CHkgKAgoQwhDLQgtcwhzKQgpCi0gICAgICAgICAgICAgIFNlYXJjaCBmb3J3YXJkIHN0YXJ0aW5nIGF0ICB0aGUgIGN1cnJlbnQgIGxpbmUgIGFuZAotICAgICAgICAgICAgICBtb3ZpbmcgIGBkb3duJyAgdGhyb3VnaCAgdGhlICBoaXN0b3J5IGFzIG5lY2Vzc2FyeS4KLSAgICAgICAgICAgICAgVGhpcyBpcyBhbiBpbmNyZW1lbnRhbCBzZWFyY2guCisgICAgICAgICAgICAgIFNlYXJjaCBmb3J3YXJkIHN0YXJ0aW5nIGF0IHRoZSBjdXJyZW50IGxpbmUgIGFuZCAgbW92aW5nICBgZG93bicKKyAgICAgICAgICAgICAgdGhyb3VnaCAgdGhlICBoaXN0b3J5ICBhcyAgbmVjZXNzYXJ5LiAgIFRoaXMgIGlzICBhbiBpbmNyZW1lbnRhbAorICAgICAgICAgICAgICBzZWFyY2guCiAgICAgICAgbghubwhvbghuLQgtaQhpbghuYwhjcghyZQhlbQhtZQhlbghudAh0YQhhbAhsLQgtcghyZQhldgh2ZQhlcghycwhzZQhlLQgtcwhzZQhlYQhhcghyYwhjaAhoLQgtaAhoaQhpcwhzdAh0bwhvcghyeQh5ICgIKE0ITS0ILXAIcCkIKQotICAgICAgICAgICAgICBTZWFyY2ggYmFja3dhcmQgdGhyb3VnaCB0aGUgaGlzdG9yeSBzdGFydGluZyBhdCB0aGUKLSAgICAgICAgICAgICAgY3VycmVudCAgbGluZSAgdXNpbmcgYSBub24taW5jcmVtZW50YWwgc2VhcmNoIGZvciBhCi0gICAgICAgICAgICAgIHN0cmluZyBzdXBwbGllZCBieSB0aGUgdXNlci4KLSAgICAgICBuCG5vCG9uCG4tCC1pCGluCG5jCGNyCHJlCGVtCG1lCGVuCG50CHRhCGFsCGwtCC1mCGZvCG9yCHJ3CHdhCGFyCHJkCGQtCC1zCHNlCGVhCGFyCHJjCGNoCGgtCC1oCGhpCGlzCHN0CHRvCG9yCHJ5CHkgKAgoTQhNLQgtbghuKQgpCi0gICAgICAgICAgICAgIFNlYXJjaCBmb3J3YXJkIHRocm91Z2ggdGhlICBoaXN0b3J5ICB1c2luZyAgYSAgbm9uLQotICAgICAgICAgICAgICBpbmNyZW1lbnRhbCAgc2VhcmNoICBmb3IgIGEgIHN0cmluZyBzdXBwbGllZCBieSB0aGUKKyAgICAgICAgICAgICAgU2VhcmNoIGJhY2t3YXJkIHRocm91Z2ggdGhlIGhpc3Rvcnkgc3RhcnRpbmcgYXQgdGhlIGN1cnJlbnQgbGluZQorICAgICAgICAgICAgICB1c2luZyAgYSAgbm9uLWluY3JlbWVudGFsICBzZWFyY2ggIGZvciAgYSBzdHJpbmcgc3VwcGxpZWQgYnkgdGhlCiAgICAgICAgICAgICAgIHVzZXIuCisgICAgICAgbghubwhvbghuLQgtaQhpbghuYwhjcghyZQhlbQhtZQhlbghudAh0YQhhbAhsLQgtZghmbwhvcghydwh3YQhhcghyZAhkLQgtcwhzZQhlYQhhcghyYwhjaAhoLQgtaAhoaQhpcwhzdAh0bwhvcghyeQh5ICgIKE0ITS0ILW4IbikIKQorICAgICAgICAgICAgICBTZWFyY2ggZm9yd2FyZCAgdGhyb3VnaCAgdGhlICBoaXN0b3J5ICB1c2luZyAgYSAgbm9uLWluY3JlbWVudGFsCisgICAgICAgICAgICAgIHNlYXJjaCBmb3IgYSBzdHJpbmcgc3VwcGxpZWQgYnkgdGhlIHVzZXIuCiAgICAgICAgaAhoaQhpcwhzdAh0bwhvcghyeQh5LQgtcwhzZQhlYQhhcghyYwhjaAhoLQgtZghmbwhvcghydwh3YQhhcghyZAhkCi0gICAgICAgICAgICAgIFNlYXJjaCBmb3J3YXJkIHRocm91Z2ggdGhlIGhpc3RvcnkgZm9yICB0aGUgIHN0cmluZwotICAgICAgICAgICAgICBvZiBjaGFyYWN0ZXJzIGJldHdlZW4gdGhlIHN0YXJ0IG9mIHRoZSBjdXJyZW50IGxpbmUKLSAgICAgICAgICAgICAgYW5kIHRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbiAodGhlIF8IcF8Ib18IaV8Ibl8IdCkuICAgVGhpcwotICAgICAgICAgICAgICBpcyBhIG5vbi1pbmNyZW1lbnRhbCBzZWFyY2guCisgICAgICAgICAgICAgIFNlYXJjaCAgZm9yd2FyZCB0aHJvdWdoIHRoZSBoaXN0b3J5IGZvciB0aGUgc3RyaW5nIG9mIGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAgYmV0d2VlbiB0aGUgc3RhcnQgb2YgdGhlIGN1cnJlbnQgbGluZSAgYW5kICB0aGUgIGN1cnJlbnQgIGN1cnNvcgorICAgICAgICAgICAgICBwb3NpdGlvbiAodGhlIF8IcF8Ib18IaV8Ibl8IdCkuICBUaGlzIGlzIGEgbm9uLWluY3JlbWVudGFsIHNlYXJjaC4KICAgICAgICBoCGhpCGlzCHN0CHRvCG9yCHJ5CHktCC1zCHNlCGVhCGFyCHJjCGNoCGgtCC1iCGJhCGFjCGNrCGt3CHdhCGFyCHJkCGQKLSAgICAgICAgICAgICAgU2VhcmNoICBiYWNrd2FyZCB0aHJvdWdoIHRoZSBoaXN0b3J5IGZvciB0aGUgc3RyaW5nCi0gICAgICAgICAgICAgIG9mIGNoYXJhY3RlcnMgYmV0d2VlbiB0aGUgc3RhcnQgb2YgdGhlIGN1cnJlbnQgbGluZQotICAgICAgICAgICAgICBhbmQgdGhlIHBvaW50LiAgVGhpcyBpcyBhIG5vbi1pbmNyZW1lbnRhbCBzZWFyY2guCisgICAgICAgICAgICAgIFNlYXJjaCBiYWNrd2FyZCB0aHJvdWdoIHRoZSBoaXN0b3J5IGZvciB0aGUgc3RyaW5nIG9mIGNoYXJhY3RlcnMKKyAgICAgICAgICAgICAgYmV0d2VlbiB0aGUgc3RhcnQgb2YgdGhlIGN1cnJlbnQgbGluZSBhbmQgdGhlIHBvaW50LiAgVGhpcyBpcyAgYQorICAgICAgICAgICAgICBub24taW5jcmVtZW50YWwgc2VhcmNoLgogICAgICAgIHkIeWEIYW4IbmsIay0ILW4IbnQIdGgIaC0ILWEIYXIIcmcIZyAoCChNCE0tCC1DCEMtCC15CHkpCCkKLSAgICAgICAgICAgICAgSW5zZXJ0ICB0aGUgIGZpcnN0IGFyZ3VtZW50IHRvIHRoZSBwcmV2aW91cyBjb21tYW5kCi0gICAgICAgICAgICAgICh1c3VhbGx5IHRoZSBzZWNvbmQgd29yZCBvbiB0aGUgcHJldmlvdXMgIGxpbmUpICBhdAotICAgICAgICAgICAgICBwb2ludC4gICBXaXRoICBhbiAgYXJndW1lbnQgIF8IbiwgaW5zZXJ0IHRoZSBfCG50aCB3b3JkCi0gICAgICAgICAgICAgIGZyb20gdGhlIHByZXZpb3VzIGNvbW1hbmQgKHRoZSB3b3JkcyBpbiB0aGUgIHByZXZpLQotICAgICAgICAgICAgICBvdXMgIGNvbW1hbmQgIGJlZ2luIHdpdGggd29yZCAwKS4gIEEgbmVnYXRpdmUgYXJndS0KLSAgICAgICAgICAgICAgbWVudCBpbnNlcnRzIHRoZSBfCG50aCB3b3JkIGZyb20gdGhlIGVuZCBvZiB0aGUgIHByZS0KLSAgICAgICAgICAgICAgdmlvdXMgY29tbWFuZC4KKyAgICAgICAgICAgICAgSW5zZXJ0ICB0aGUgIGZpcnN0IGFyZ3VtZW50IHRvIHRoZSBwcmV2aW91cyBjb21tYW5kICh1c3VhbGx5IHRoZQorICAgICAgICAgICAgICBzZWNvbmQgd29yZCBvbiB0aGUgcHJldmlvdXMgbGluZSkgYXQgcG9pbnQuICBXaXRoIGFuIGFyZ3VtZW50IF8IbiwKKyAgICAgICAgICAgICAgaW5zZXJ0ICB0aGUgXwhudGggd29yZCBmcm9tIHRoZSBwcmV2aW91cyBjb21tYW5kICh0aGUgd29yZHMgaW4gdGhlCisgICAgICAgICAgICAgIHByZXZpb3VzIGNvbW1hbmQgIGJlZ2luICB3aXRoICB3b3JkICAwKS4gICBBICBuZWdhdGl2ZSAgYXJndW1lbnQKKyAgICAgICAgICAgICAgaW5zZXJ0cyB0aGUgXwhudGggd29yZCBmcm9tIHRoZSBlbmQgb2YgdGhlIHByZXZpb3VzIGNvbW1hbmQuICBPbmNlCisgICAgICAgICAgICAgIHRoZSBhcmd1bWVudCBfCG4gaXMgY29tcHV0ZWQsIHRoZSBhcmd1bWVudCBpcyBleHRyYWN0ZWQgYXMgaWYgIHRoZQorICAgICAgICAgICAgICAiIV8IbiIgaGlzdG9yeSBleHBhbnNpb24gaGFkIGJlZW4gc3BlY2lmaWVkLgogICAgICAgIHkIeWEIYW4IbmsIay0ILWwIbGEIYXMIc3QIdC0ILWEIYXIIcmcIZyAoCChNCE0tCC0uCC4sCCwgTQhNLQgtXwhfKQgpCi0gICAgICAgICAgICAgIEluc2VydCAgdGhlICBsYXN0ICBhcmd1bWVudCB0byB0aGUgcHJldmlvdXMgY29tbWFuZAotICAgICAgICAgICAgICAodGhlIGxhc3Qgd29yZCAgb2YgIHRoZSAgcHJldmlvdXMgIGhpc3RvcnkgIGVudHJ5KS4KLSAgICAgICAgICAgICAgV2l0aCBhbiBhcmd1bWVudCwgYmVoYXZlIGV4YWN0bHkgbGlrZSB5CHlhCGFuCG5rCGstCC1uCG50CHRoCGgtCC1hCGFyCHJnCGcuCi0gICAgICAgICAgICAgIFN1Y2Nlc3NpdmUgY2FsbHMgdG8geQh5YQhhbghuawhrLQgtbAhsYQhhcwhzdAh0LQgtYQhhcghyZwhnIG1vdmUgYmFjayB0aHJvdWdoCi0gICAgICAgICAgICAgIHRoZSAgaGlzdG9yeSAgbGlzdCwgIGluc2VydGluZyB0aGUgbGFzdCBhcmd1bWVudCBvZgotICAgICAgICAgICAgICBlYWNoIGxpbmUgaW4gdHVybi4KKyAgICAgICAgICAgICAgSW5zZXJ0ICB0aGUgbGFzdCBhcmd1bWVudCB0byB0aGUgcHJldmlvdXMgY29tbWFuZCAodGhlIGxhc3Qgd29yZAorICAgICAgICAgICAgICBvZiB0aGUgIHByZXZpb3VzICBoaXN0b3J5ICBlbnRyeSkuICAgV2l0aCAgYW4gIGFyZ3VtZW50LCAgYmVoYXZlCisgICAgICAgICAgICAgIGV4YWN0bHkgIGxpa2UgIHkIeWEIYW4IbmsIay0ILW4IbnQIdGgIaC0ILWEIYXIIcmcIZy4gICBTdWNjZXNzaXZlIGNhbGxzIHRvIHkIeWEIYW4IbmsIay0ILWwIbGEIYXMIc3QIdC0ILWEIYXIIcmcIZworICAgICAgICAgICAgICBtb3ZlIGJhY2sgdGhyb3VnaCB0aGUgaGlzdG9yeSBsaXN0LCBpbnNlcnRpbmcgdGhlIGxhc3QgIGFyZ3VtZW50CisgICAgICAgICAgICAgIG9mIGVhY2ggbGluZSBpbiB0dXJuLiAgVGhlIGhpc3RvcnkgZXhwYW5zaW9uIGZhY2lsaXRpZXMgYXJlIHVzZWQKKyAgICAgICAgICAgICAgdG8gZXh0cmFjdCB0aGUgbGFzdCBhcmd1bWVudCwgYXMgaWYgdGhlICIhJCIgIGhpc3RvcnkgIGV4cGFuc2lvbgorICAgICAgICAgICAgICBoYWQgYmVlbiBzcGVjaWZpZWQuCiAKICAgIEMIQ28Ib20IbW0IbWEIYW4IbmQIZHMIcyBmCGZvCG9yCHIgQwhDaAhoYQhhbghuZwhnaQhpbghuZwhnIFQIVGUIZXgIeHQIdAogICAgICAgIGQIZGUIZWwIbGUIZXQIdGUIZS0ILWMIY2gIaGEIYXIIciAoCChDCEMtCC1kCGQpCCkKLSAgICAgICAgICAgICAgRGVsZXRlIHRoZSBjaGFyYWN0ZXIgYXQgcG9pbnQuICBJZiBwb2ludCBpcyBhdCAgdGhlCi0gICAgICAgICAgICAgIGJlZ2lubmluZyAgb2YgIHRoZSBsaW5lLCB0aGVyZSBhcmUgbm8gY2hhcmFjdGVycyBpbgotICAgICAgICAgICAgICB0aGUgbGluZSwgYW5kIHRoZSAgbGFzdCAgY2hhcmFjdGVyICB0eXBlZCAgd2FzICBub3QKLSAgICAgICAgICAgICAgYm91bmQgdG8gZAhkZQhlbAhsZQhldAh0ZQhlLQgtYwhjaAhoYQhhcghyLCB0aGVuIHJldHVybiBFCEVPCE9GCEYuCisgICAgICAgICAgICAgIERlbGV0ZSAgdGhlIGNoYXJhY3RlciBhdCBwb2ludC4gIElmIHBvaW50IGlzIGF0IHRoZSBiZWdpbm5pbmcgb2YKKyAgICAgICAgICAgICAgdGhlIGxpbmUsIHRoZXJlIGFyZSBubyBjaGFyYWN0ZXJzIGluICB0aGUgIGxpbmUsICBhbmQgIHRoZSAgbGFzdAorICAgICAgICAgICAgICBjaGFyYWN0ZXIgdHlwZWQgd2FzIG5vdCBib3VuZCB0byBkCGRlCGVsCGxlCGV0CHRlCGUtCC1jCGNoCGhhCGFyCHIsIHRoZW4gcmV0dXJuIEUIRU8IT0YIRi4KICAgICAgICBiCGJhCGFjCGNrCGt3CHdhCGFyCHJkCGQtCC1kCGRlCGVsCGxlCGV0CHRlCGUtCC1jCGNoCGhhCGFyCHIgKAgoUghSdQh1YghibwhvdQh1dAh0KQgpCi0gICAgICAgICAgICAgIERlbGV0ZSB0aGUgY2hhcmFjdGVyIGJlaGluZCB0aGUgY3Vyc29yLiAgV2hlbiBnaXZlbgotICAgICAgICAgICAgICBhIG51bWVyaWMgYXJndW1lbnQsIHNhdmUgdGhlIGRlbGV0ZWQgIHRleHQgIG9uICB0aGUKLSAgICAgICAgICAgICAga2lsbCByaW5nLgorICAgICAgICAgICAgICBEZWxldGUgIHRoZSAgY2hhcmFjdGVyICBiZWhpbmQgdGhlIGN1cnNvci4gIFdoZW4gZ2l2ZW4gYSBudW1lcmljCisgICAgICAgICAgICAgIGFyZ3VtZW50LCBzYXZlIHRoZSBkZWxldGVkIHRleHQgb24gdGhlIGtpbGwgcmluZy4KICAgICAgICBmCGZvCG9yCHJ3CHdhCGFyCHJkCGQtCC1iCGJhCGFjCGNrCGt3CHdhCGFyCHJkCGQtCC1kCGRlCGVsCGxlCGV0CHRlCGUtCC1jCGNoCGhhCGFyCHIKLSAgICAgICAgICAgICAgRGVsZXRlICB0aGUgIGNoYXJhY3RlciB1bmRlciB0aGUgY3Vyc29yLCB1bmxlc3MgdGhlCi0gICAgICAgICAgICAgIGN1cnNvciBpcyBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lLCBpbiB3aGljaCBjYXNlIHRoZQotICAgICAgICAgICAgICBjaGFyYWN0ZXIgYmVoaW5kIHRoZSBjdXJzb3IgaXMgZGVsZXRlZC4KKyAgICAgICAgICAgICAgRGVsZXRlIHRoZSBjaGFyYWN0ZXIgdW5kZXIgdGhlIGN1cnNvciwgdW5sZXNzIHRoZSBjdXJzb3IgIGlzICBhdAorICAgICAgICAgICAgICB0aGUgZW5kIG9mIHRoZSBsaW5lLCBpbiB3aGljaCBjYXNlIHRoZSBjaGFyYWN0ZXIgYmVoaW5kIHRoZSBjdXItCisgICAgICAgICAgICAgIHNvciBpcyBkZWxldGVkLgogICAgICAgIHEIcXUIdW8Ib3QIdGUIZWQIZC0ILWkIaW4IbnMIc2UIZXIIcnQIdCAoCChDCEMtCC1xCHEsCCwgQwhDLQgtdgh2KQgpCi0gICAgICAgICAgICAgIEFkZCAgdGhlICBuZXh0ICBjaGFyYWN0ZXIgdGhhdCB5b3UgdHlwZSB0byB0aGUgbGluZQotICAgICAgICAgICAgICB2ZXJiYXRpbS4gIFRoaXMgaXMgaG93IHRvICBpbnNlcnQgIGNoYXJhY3RlcnMgIGxpa2UKLSAgICAgICAgICAgICAgQwhDLQgtcQhxLCBmb3IgZXhhbXBsZS4KKyAgICAgICAgICAgICAgQWRkIHRoZSBuZXh0IGNoYXJhY3RlciB0aGF0IHlvdSB0eXBlIHRvIHRoZSBsaW5lIHZlcmJhdGltLiAgVGhpcworICAgICAgICAgICAgICBpcyBob3cgdG8gaW5zZXJ0IGNoYXJhY3RlcnMgbGlrZSBDCEMtCC1xCHEsIGZvciBleGFtcGxlLgogICAgICAgIHQIdGEIYWIIYi0ILWkIaW4IbnMIc2UIZXIIcnQIdCAoCChNCE0tCC1UCFRBCEFCCEIpCCkKICAgICAgICAgICAgICAgSW5zZXJ0IGEgdGFiIGNoYXJhY3Rlci4KICAgICAgICBzCHNlCGVsCGxmCGYtCC1pCGluCG5zCHNlCGVyCHJ0CHQgKAgoYQhhLAgsIGIIYiwILCBBCEEsCCwgMQgxLAgsICEIISwILCAuCC4uCC4uCC4pCCkKICAgICAgICAgICAgICAgSW5zZXJ0IHRoZSBjaGFyYWN0ZXIgdHlwZWQuCiAgICAgICAgdAh0cghyYQhhbghucwhzcAhwbwhvcwhzZQhlLQgtYwhjaAhoYQhhcghycwhzICgIKEMIQy0ILXQIdCkIKQotICAgICAgICAgICAgICBEcmFnICB0aGUgIGNoYXJhY3RlciAgYmVmb3JlIHBvaW50IGZvcndhcmQgb3ZlciB0aGUKLSAgICAgICAgICAgICAgY2hhcmFjdGVyIGF0IHBvaW50LCBtb3ZpbmcgcG9pbnQgZm9yd2FyZCAgYXMgIHdlbGwuCi0gICAgICAgICAgICAgIElmICBwb2ludCAgaXMgIGF0ICB0aGUgIGVuZCAgb2YgdGhlIGxpbmUsIHRoZW4gdGhpcwotICAgICAgICAgICAgICB0cmFuc3Bvc2VzIHRoZSB0d28gY2hhcmFjdGVycyBiZWZvcmUgcG9pbnQuICAgTmVnYS0KLSAgICAgICAgICAgICAgdGl2ZSBhcmd1bWVudHMgaGF2ZSBubyBlZmZlY3QuCisgICAgICAgICAgICAgIERyYWcgIHRoZSAgY2hhcmFjdGVyICBiZWZvcmUgcG9pbnQgZm9yd2FyZCBvdmVyIHRoZSBjaGFyYWN0ZXIgYXQKKyAgICAgICAgICAgICAgcG9pbnQsIG1vdmluZyBwb2ludCBmb3J3YXJkIGFzIHdlbGwuICBJZiBwb2ludCBpcyBhdCB0aGUgZW5kICBvZgorICAgICAgICAgICAgICB0aGUgIGxpbmUsIHRoZW4gdGhpcyB0cmFuc3Bvc2VzIHRoZSB0d28gY2hhcmFjdGVycyBiZWZvcmUgcG9pbnQuCisgICAgICAgICAgICAgIE5lZ2F0aXZlIGFyZ3VtZW50cyBoYXZlIG5vIGVmZmVjdC4KICAgICAgICB0CHRyCHJhCGFuCG5zCHNwCHBvCG9zCHNlCGUtCC13CHdvCG9yCHJkCGRzCHMgKAgoTQhNLQgtdAh0KQgpCi0gICAgICAgICAgICAgIERyYWcgIHRoZSAgd29yZCAgYmVmb3JlICBwb2ludCAgcGFzdCB0aGUgd29yZCBhZnRlcgotICAgICAgICAgICAgICBwb2ludCwgbW92aW5nIHBvaW50IG92ZXIgdGhhdCAgd29yZCAgYXMgIHdlbGwuICAgSWYKLSAgICAgICAgICAgICAgcG9pbnQgIGlzICBhdCAgdGhlIGVuZCBvZiB0aGUgbGluZSwgdGhpcyB0cmFuc3Bvc2VzCi0gICAgICAgICAgICAgIHRoZSBsYXN0IHR3byB3b3JkcyBvbiB0aGUgbGluZS4KKyAgICAgICAgICAgICAgRHJhZyB0aGUgd29yZCBiZWZvcmUgcG9pbnQgcGFzdCB0aGUgIHdvcmQgIGFmdGVyICBwb2ludCwgIG1vdmluZworICAgICAgICAgICAgICBwb2ludCAgb3ZlciAgdGhhdCAgd29yZCAgYXMgd2VsbC4gIElmIHBvaW50IGlzIGF0IHRoZSBlbmQgb2YgdGhlCisgICAgICAgICAgICAgIGxpbmUsIHRoaXMgdHJhbnNwb3NlcyB0aGUgbGFzdCB0d28gd29yZHMgb24gdGhlIGxpbmUuCiAgICAgICAgdQh1cAhwYwhjYQhhcwhzZQhlLQgtdwh3bwhvcghyZAhkICgIKE0ITS0ILXUIdSkIKQotICAgICAgICAgICAgICBVcHBlcmNhc2UgdGhlIGN1cnJlbnQgKG9yIGZvbGxvd2luZykgd29yZC4gIFdpdGggIGEKLSAgICAgICAgICAgICAgbmVnYXRpdmUgYXJndW1lbnQsIHVwcGVyY2FzZSB0aGUgcHJldmlvdXMgd29yZCwgYnV0Ci0gICAgICAgICAgICAgIGRvIG5vdCBtb3ZlIHBvaW50LgorICAgICAgICAgICAgICBVcHBlcmNhc2UgdGhlIGN1cnJlbnQgKG9yICBmb2xsb3dpbmcpICB3b3JkLiAgIFdpdGggIGEgIG5lZ2F0aXZlCisgICAgICAgICAgICAgIGFyZ3VtZW50LCB1cHBlcmNhc2UgdGhlIHByZXZpb3VzIHdvcmQsIGJ1dCBkbyBub3QgbW92ZSBwb2ludC4KICAgICAgICBkCGRvCG93CHduCG5jCGNhCGFzCHNlCGUtCC13CHdvCG9yCHJkCGQgKAgoTQhNLQgtbAhsKQgpCi0gICAgICAgICAgICAgIExvd2VyY2FzZSB0aGUgY3VycmVudCAob3IgZm9sbG93aW5nKSB3b3JkLiAgV2l0aCAgYQotICAgICAgICAgICAgICBuZWdhdGl2ZSBhcmd1bWVudCwgbG93ZXJjYXNlIHRoZSBwcmV2aW91cyB3b3JkLCBidXQKLSAgICAgICAgICAgICAgZG8gbm90IG1vdmUgcG9pbnQuCisgICAgICAgICAgICAgIExvd2VyY2FzZSAgdGhlICBjdXJyZW50ICAob3IgIGZvbGxvd2luZykgIHdvcmQuICBXaXRoIGEgbmVnYXRpdmUKKyAgICAgICAgICAgICAgYXJndW1lbnQsIGxvd2VyY2FzZSB0aGUgcHJldmlvdXMgd29yZCwgYnV0IGRvIG5vdCBtb3ZlIHBvaW50LgogICAgICAgIGMIY2EIYXAIcGkIaXQIdGEIYWwIbGkIaXoIemUIZS0ILXcId28Ib3IIcmQIZCAoCChNCE0tCC1jCGMpCCkKLSAgICAgICAgICAgICAgQ2FwaXRhbGl6ZSB0aGUgY3VycmVudCAob3IgZm9sbG93aW5nKSB3b3JkLiAgV2l0aCBhCi0gICAgICAgICAgICAgIG5lZ2F0aXZlICBhcmd1bWVudCwgIGNhcGl0YWxpemUgIHRoZSBwcmV2aW91cyB3b3JkLAotICAgICAgICAgICAgICBidXQgZG8gbm90IG1vdmUgcG9pbnQuCisgICAgICAgICAgICAgIENhcGl0YWxpemUgdGhlIGN1cnJlbnQgKG9yIGZvbGxvd2luZykgIHdvcmQuICAgV2l0aCAgYSAgbmVnYXRpdmUKKyAgICAgICAgICAgICAgYXJndW1lbnQsIGNhcGl0YWxpemUgdGhlIHByZXZpb3VzIHdvcmQsIGJ1dCBkbyBub3QgbW92ZSBwb2ludC4KICAgICAgICBvCG92CHZlCGVyCHJ3CHdyCHJpCGl0CHRlCGUtCC1tCG1vCG9kCGRlCGUKLSAgICAgICAgICAgICAgVG9nZ2xlIG92ZXJ3cml0ZSBtb2RlLiAgV2l0aCBhbiAgZXhwbGljaXQgIHBvc2l0aXZlCi0gICAgICAgICAgICAgIG51bWVyaWMgYXJndW1lbnQsIHN3aXRjaGVzIHRvIG92ZXJ3cml0ZSBtb2RlLiAgV2l0aAotICAgICAgICAgICAgICBhbiBleHBsaWNpdCBub24tcG9zaXRpdmUgbnVtZXJpYyBhcmd1bWVudCwgc3dpdGNoZXMKLSAgICAgICAgICAgICAgdG8gIGluc2VydCAgbW9kZS4gICBUaGlzIGNvbW1hbmQgYWZmZWN0cyBvbmx5IGUIZW0IbWEIYWMIY3MIcwotICAgICAgICAgICAgICBtb2RlOyB2CHZpCGkgbW9kZSAgZG9lcyAgb3ZlcndyaXRlICBkaWZmZXJlbnRseS4gICBFYWNoCi0gICAgICAgICAgICAgIGNhbGwgdG8gXwhyXwhlXwhhXwhkXwhsXwhpXwhuXwhlXwgoXwgpIHN0YXJ0cyBpbiBpbnNlcnQgbW9kZS4gIEluIG92ZXItCi0gICAgICAgICAgICAgIHdyaXRlIG1vZGUsIGNoYXJhY3RlcnMgYm91bmQgdG8gcwhzZQhlbAhsZghmLQgtaQhpbghucwhzZQhlcghydAh0IHJlcGxhY2UKLSAgICAgICAgICAgICAgdGhlICB0ZXh0ICBhdCBwb2ludCByYXRoZXIgdGhhbiBwdXNoaW5nIHRoZSB0ZXh0IHRvCi0gICAgICAgICAgICAgIHRoZSAgIHJpZ2h0LiAgICAgQ2hhcmFjdGVycyAgICBib3VuZCAgICB0byAgICBiCGJhCGFjCGNrCGstCC0KLSAgICAgICAgICAgICAgdwh3YQhhcghyZAhkLQgtZAhkZQhlbAhsZQhldAh0ZQhlLQgtYwhjaAhoYQhhcghyIHJlcGxhY2UgdGhlIGNoYXJhY3RlciBiZWZvcmUgcG9pbnQKLSAgICAgICAgICAgICAgd2l0aCBhIHNwYWNlLiAgQnkgZGVmYXVsdCwgdGhpcyBjb21tYW5kIGlzIHVuYm91bmQuCisgICAgICAgICAgICAgIFRvZ2dsZSAgb3ZlcndyaXRlIG1vZGUuICBXaXRoIGFuIGV4cGxpY2l0IHBvc2l0aXZlIG51bWVyaWMgYXJndS0KKyAgICAgICAgICAgICAgbWVudCwgc3dpdGNoZXMgdG8gb3ZlcndyaXRlIG1vZGUuICBXaXRoIGFuIGV4cGxpY2l0IG5vbi1wb3NpdGl2ZQorICAgICAgICAgICAgICBudW1lcmljIGFyZ3VtZW50LCBzd2l0Y2hlcyB0byBpbnNlcnQgbW9kZS4gIFRoaXMgY29tbWFuZCBhZmZlY3RzCisgICAgICAgICAgICAgIG9ubHkgZQhlbQhtYQhhYwhjcwhzIG1vZGU7IHYIdmkIaSBtb2RlIGRvZXMgb3ZlcndyaXRlIGRpZmZlcmVudGx5LiAgRWFjaCAgY2FsbAorICAgICAgICAgICAgICB0byBfCHJfCGVfCGFfCGRfCGxfCGlfCG5fCGVfCChfCCkgc3RhcnRzIGluIGluc2VydCBtb2RlLiAgSW4gb3ZlcndyaXRlIG1vZGUsIGNoYXJhYy0KKyAgICAgICAgICAgICAgdGVycyBib3VuZCB0byBzCHNlCGVsCGxmCGYtCC1pCGluCG5zCHNlCGVyCHJ0CHQgcmVwbGFjZSB0aGUgdGV4dCBhdCBwb2ludCByYXRoZXIgIHRoYW4KKyAgICAgICAgICAgICAgcHVzaGluZyAgdGhlICB0ZXh0ICB0byAgdGhlICByaWdodC4gICBDaGFyYWN0ZXJzICBib3VuZCB0byBiCGJhCGFjCGNrCGstCC0KKyAgICAgICAgICAgICAgdwh3YQhhcghyZAhkLQgtZAhkZQhlbAhsZQhldAh0ZQhlLQgtYwhjaAhoYQhhcghyIHJlcGxhY2UgIHRoZSAgY2hhcmFjdGVyICBiZWZvcmUgIHBvaW50ICB3aXRoICBhCisgICAgICAgICAgICAgIHNwYWNlLiAgQnkgZGVmYXVsdCwgdGhpcyBjb21tYW5kIGlzIHVuYm91bmQuCiAKICAgIEsIS2kIaWwIbGwIbGkIaW4IbmcIZyBhCGFuCG5kCGQgWQhZYQhhbghuawhraQhpbghuZwhnCiAgICAgICAgawhraQhpbAhsbAhsLQgtbAhsaQhpbghuZQhlICgIKEMIQy0ILWsIaykIKQpAQCAtNTU3LDIxMSArNTEzLDE4NiBAQAogICAgICAgIGIIYmEIYWMIY2sIa3cId2EIYXIIcmQIZC0ILWsIa2kIaWwIbGwIbC0ILWwIbGkIaW4IbmUIZSAoCChDCEMtCC14CHggUghSdQh1YghibwhvdQh1dAh0KQgpCiAgICAgICAgICAgICAgIEtpbGwgYmFja3dhcmQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZS4KICAgICAgICB1CHVuCG5pCGl4CHgtCC1sCGxpCGluCG5lCGUtCC1kCGRpCGlzCHNjCGNhCGFyCHJkCGQgKAgoQwhDLQgtdQh1KQgpCi0gICAgICAgICAgICAgIEtpbGwgIGJhY2t3YXJkICBmcm9tICBwb2ludCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZQotICAgICAgICAgICAgICBsaW5lLiAgVGhlIGtpbGxlZCB0ZXh0IGlzIHNhdmVkIG9uIHRoZSBraWxsLXJpbmcuCisgICAgICAgICAgICAgIEtpbGwgIGJhY2t3YXJkICBmcm9tICBwb2ludCAgdG8gIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUuICBUaGUKKyAgICAgICAgICAgICAga2lsbGVkIHRleHQgaXMgc2F2ZWQgb24gdGhlIGtpbGwtcmluZy4KICAgICAgICBrCGtpCGlsCGxsCGwtCC13CHdoCGhvCG9sCGxlCGUtCC1sCGxpCGluCG5lCGUKLSAgICAgICAgICAgICAgS2lsbCBhbGwgY2hhcmFjdGVycyBvbiB0aGUgY3VycmVudCBsaW5lLCBubyAgbWF0dGVyCi0gICAgICAgICAgICAgIHdoZXJlIHBvaW50IGlzLgorICAgICAgICAgICAgICBLaWxsIGFsbCBjaGFyYWN0ZXJzIG9uIHRoZSBjdXJyZW50IGxpbmUsIG5vIG1hdHRlciAgd2hlcmUgIHBvaW50CisgICAgICAgICAgICAgIGlzLgogICAgICAgIGsIa2kIaWwIbGwIbC0ILXcId28Ib3IIcmQIZCAoCChNCE0tCC1kCGQpCCkKLSAgICAgICAgICAgICAgS2lsbCAgZnJvbSBwb2ludCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IHdvcmQsIG9yIGlmCi0gICAgICAgICAgICAgIGJldHdlZW4gd29yZHMsIHRvIHRoZSBlbmQgb2YgdGhlIG5leHQgIHdvcmQuICAgV29yZAotICAgICAgICAgICAgICBib3VuZGFyaWVzICBhcmUgIHRoZSAgc2FtZSAgYXMgIHRob3NlICB1c2VkIGJ5IGYIZm8Ib3IIci0ILQotICAgICAgICAgICAgICB3CHdhCGFyCHJkCGQtCC13CHdvCG9yCHJkCGQuCisgICAgICAgICAgICAgIEtpbGwgIGZyb20gIHBvaW50ICB0aGUgIGVuZCAgb2YgIHRoZSBjdXJyZW50IHdvcmQsIG9yIGlmIGJldHdlZW4KKyAgICAgICAgICAgICAgd29yZHMsIHRvIHRoZSBlbmQgb2YgdGhlIG5leHQgd29yZC4gICBXb3JkICBib3VuZGFyaWVzICBhcmUgIHRoZQorICAgICAgICAgICAgICBzYW1lIGFzIHRob3NlIHVzZWQgYnkgZghmbwhvcghydwh3YQhhcghyZAhkLQgtdwh3bwhvcghyZAhkLgogICAgICAgIGIIYmEIYWMIY2sIa3cId2EIYXIIcmQIZC0ILWsIa2kIaWwIbGwIbC0ILXcId28Ib3IIcmQIZCAoCChNCE0tCC1SCFJ1CHViCGJvCG91CHV0CHQpCCkKLSAgICAgICAgICAgICAgS2lsbCB0aGUgd29yZCBiZWhpbmQgcG9pbnQuICAgV29yZCAgYm91bmRhcmllcyAgYXJlCi0gICAgICAgICAgICAgIHRoZSBzYW1lIGFzIHRob3NlIHVzZWQgYnkgYghiYQhhYwhjawhrdwh3YQhhcghyZAhkLQgtdwh3bwhvcghyZAhkLgorICAgICAgICAgICAgICBLaWxsICB0aGUgIHdvcmQgIGJlaGluZCAgcG9pbnQuICBXb3JkIGJvdW5kYXJpZXMgYXJlIHRoZSBzYW1lIGFzCisgICAgICAgICAgICAgIHRob3NlIHVzZWQgYnkgYghiYQhhYwhjawhrdwh3YQhhcghyZAhkLQgtdwh3bwhvcghyZAhkLgogICAgICAgIHUIdW4IbmkIaXgIeC0ILXcId28Ib3IIcmQIZC0ILXIIcnUIdWIIYm8Ib3UIdXQIdCAoCChDCEMtCC13CHcpCCkKLSAgICAgICAgICAgICAgS2lsbCAgdGhlIHdvcmQgYmVoaW5kIHBvaW50LCB1c2luZyB3aGl0ZSBzcGFjZSBhcyBhCi0gICAgICAgICAgICAgIHdvcmQgYm91bmRhcnkuICBUaGUga2lsbGVkIHRleHQgIGlzICBzYXZlZCAgb24gIHRoZQotICAgICAgICAgICAgICBraWxsLXJpbmcuCisgICAgICAgICAgICAgIEtpbGwgdGhlIHdvcmQgYmVoaW5kIHBvaW50LCB1c2luZyB3aGl0ZSBzcGFjZSBhcyBhICB3b3JkICBib3VuZC0KKyAgICAgICAgICAgICAgYXJ5LiAgVGhlIGtpbGxlZCB0ZXh0IGlzIHNhdmVkIG9uIHRoZSBraWxsLXJpbmcuCisgICAgICAgdQh1bghuaQhpeAh4LQgtZghmaQhpbAhsZQhlbghuYQhhbQhtZQhlLQgtcghydQh1YghibwhvdQh1dAh0CisgICAgICAgICAgICAgIEtpbGwgIHRoZSAgd29yZCAgYmVoaW5kICBwb2ludCwgIHVzaW5nIHdoaXRlIHNwYWNlIGFuZCB0aGUgc2xhc2gKKyAgICAgICAgICAgICAgY2hhcmFjdGVyIGFzIHRoZSB3b3JkIGJvdW5kYXJpZXMuICBUaGUga2lsbGVkIHRleHQgaXMgIHNhdmVkICBvbgorICAgICAgICAgICAgICB0aGUga2lsbC1yaW5nLgogICAgICAgIGQIZGUIZWwIbGUIZXQIdGUIZS0ILWgIaG8Ib3IIcmkIaXoIem8Ib24IbnQIdGEIYWwIbC0ILXMIc3AIcGEIYWMIY2UIZSAoCChNCE0tCC1cCFwpCCkKICAgICAgICAgICAgICAgRGVsZXRlIGFsbCBzcGFjZXMgYW5kIHRhYnMgYXJvdW5kIHBvaW50LgogICAgICAgIGsIa2kIaWwIbGwIbC0ILXIIcmUIZWcIZ2kIaW8Ib24IbgotICAgICAgICAgICAgICBLaWxsICB0aGUgIHRleHQgIGJldHdlZW4gIHRoZSBwb2ludCBhbmQgXwhtXwhhXwhyXwhrIChzYXZlZAotICAgICAgICAgICAgICBjdXJzb3IgcG9zaXRpb24pLiAgVGhpcyB0ZXh0IGlzIHJlZmVycmVkIHRvIGFzICB0aGUKLSAgICAgICAgICAgICAgXwhyXwhlXwhnXwhpXwhvXwhuLgorICAgICAgICAgICAgICBLaWxsICB0aGUgIHRleHQgIGJldHdlZW4gIHRoZSBwb2ludCBhbmQgXwhtXwhhXwhyXwhrIChzYXZlZCBjdXJzb3IgcG9zaS0KKyAgICAgICAgICAgICAgdGlvbikuICBUaGlzIHRleHQgaXMgcmVmZXJyZWQgdG8gYXMgdGhlIF8Icl8IZV8IZ18IaV8Ib18Ibi4KICAgICAgICBjCGNvCG9wCHB5CHktCC1yCHJlCGVnCGdpCGlvCG9uCG4tCC1hCGFzCHMtCC1rCGtpCGlsCGxsCGwKICAgICAgICAgICAgICAgQ29weSB0aGUgdGV4dCBpbiB0aGUgcmVnaW9uIHRvIHRoZSBraWxsIGJ1ZmZlci4KICAgICAgICBjCGNvCG9wCHB5CHktCC1iCGJhCGFjCGNrCGt3CHdhCGFyCHJkCGQtCC13CHdvCG9yCHJkCGQKLSAgICAgICAgICAgICAgQ29weSB0aGUgd29yZCBiZWZvcmUgcG9pbnQgdG8gdGhlIGtpbGwgYnVmZmVyLiAgVGhlCi0gICAgICAgICAgICAgIHdvcmQgYm91bmRhcmllcyBhcmUgdGhlIHNhbWUgYXMgYghiYQhhYwhjawhrdwh3YQhhcghyZAhkLQgtdwh3bwhvcghyZAhkLgorICAgICAgICAgICAgICBDb3B5IHRoZSB3b3JkIGJlZm9yZSBwb2ludCB0byB0aGUga2lsbCBidWZmZXIuICBUaGUgd29yZCAgYm91bmQtCisgICAgICAgICAgICAgIGFyaWVzIGFyZSB0aGUgc2FtZSBhcyBiCGJhCGFjCGNrCGt3CHdhCGFyCHJkCGQtCC13CHdvCG9yCHJkCGQuCiAgICAgICAgYwhjbwhvcAhweQh5LQgtZghmbwhvcghydwh3YQhhcghyZAhkLQgtdwh3bwhvcghyZAhkCi0gICAgICAgICAgICAgIENvcHkgdGhlIHdvcmQgZm9sbG93aW5nIHBvaW50IHRvIHRoZSAga2lsbCAgYnVmZmVyLgotICAgICAgICAgICAgICBUaGUgd29yZCBib3VuZGFyaWVzIGFyZSB0aGUgc2FtZSBhcyBmCGZvCG9yCHJ3CHdhCGFyCHJkCGQtCC13CHdvCG9yCHJkCGQuCisgICAgICAgICAgICAgIENvcHkgIHRoZSAgd29yZCAgZm9sbG93aW5nICBwb2ludCAgdG8gdGhlIGtpbGwgYnVmZmVyLiAgVGhlIHdvcmQKKyAgICAgICAgICAgICAgYm91bmRhcmllcyBhcmUgdGhlIHNhbWUgYXMgZghmbwhvcghydwh3YQhhcghyZAhkLQgtdwh3bwhvcghyZAhkLgogICAgICAgIHkIeWEIYW4IbmsIayAoCChDCEMtCC15CHkpCCkKLSAgICAgICAgICAgICAgWWFuayAgdGhlICB0b3AgIG9mIHRoZSBraWxsIHJpbmcgaW50byB0aGUgYnVmZmVyIGF0Ci0gICAgICAgICAgICAgIHBvaW50LgorICAgICAgICAgICAgICBZYW5rIHRoZSB0b3Agb2YgdGhlIGtpbGwgcmluZyBpbnRvIHRoZSBidWZmZXIgYXQgcG9pbnQuCiAgICAgICAgeQh5YQhhbghuawhrLQgtcAhwbwhvcAhwICgIKE0ITS0ILXkIeSkIKQotICAgICAgICAgICAgICBSb3RhdGUgdGhlIGtpbGwgcmluZywgYW5kIHlhbmsgdGhlIG5ldyAgdG9wLiAgIE9ubHkKLSAgICAgICAgICAgICAgd29ya3MgZm9sbG93aW5nIHkIeWEIYW4IbmsIayBvciB5CHlhCGFuCG5rCGstCC1wCHBvCG9wCHAuCisgICAgICAgICAgICAgIFJvdGF0ZSB0aGUga2lsbCByaW5nLCBhbmQgeWFuayB0aGUgbmV3IHRvcC4gIE9ubHkgd29ya3MgIGZvbGxvdy0KKyAgICAgICAgICAgICAgaW5nIHkIeWEIYW4IbmsIayBvciB5CHlhCGFuCG5rCGstCC1wCHBvCG9wCHAuCiAKICAgIE4ITnUIdW0IbWUIZXIIcmkIaWMIYyBBCEFyCHJnCGd1CHVtCG1lCGVuCG50CHRzCHMKICAgICAgICBkCGRpCGlnCGdpCGl0CHQtCC1hCGFyCHJnCGd1CHVtCG1lCGVuCG50CHQgKAgoTQhNLQgtMAgwLAgsIE0ITS0ILTEIMSwILCAuCC4uCC4uCC4sCCwgTQhNLQgtLQgtKQgpCi0gICAgICAgICAgICAgIEFkZCAgdGhpcyAgZGlnaXQgdG8gdGhlIGFyZ3VtZW50IGFscmVhZHkgYWNjdW11bGF0LQotICAgICAgICAgICAgICBpbmcsIG9yIHN0YXJ0IGEgbmV3IGFyZ3VtZW50LiAgTS0tIHN0YXJ0cyAgYSAgbmVnYS0KLSAgICAgICAgICAgICAgdGl2ZSBhcmd1bWVudC4KKyAgICAgICAgICAgICAgQWRkICB0aGlzIGRpZ2l0IHRvIHRoZSBhcmd1bWVudCBhbHJlYWR5IGFjY3VtdWxhdGluZywgb3Igc3RhcnQgYQorICAgICAgICAgICAgICBuZXcgYXJndW1lbnQuICBNLS0gc3RhcnRzIGEgbmVnYXRpdmUgYXJndW1lbnQuCiAgICAgICAgdQh1bghuaQhpdgh2ZQhlcghycwhzYQhhbAhsLQgtYQhhcghyZwhndQh1bQhtZQhlbghudAh0Ci0gICAgICAgICAgICAgIFRoaXMgIGlzICBhbm90aGVyICB3YXkgIHRvIHNwZWNpZnkgYW4gYXJndW1lbnQuICBJZgotICAgICAgICAgICAgICB0aGlzIGNvbW1hbmQgaXMgZm9sbG93ZWQgYnkgIG9uZSAgb3IgIG1vcmUgIGRpZ2l0cywKLSAgICAgICAgICAgICAgb3B0aW9uYWxseSAgd2l0aCBhIGxlYWRpbmcgbWludXMgc2lnbiwgdGhvc2UgZGlnaXRzCi0gICAgICAgICAgICAgIGRlZmluZSB0aGUgYXJndW1lbnQuICBJZiB0aGUgY29tbWFuZCBpcyBmb2xsb3dlZCBieQotICAgICAgICAgICAgICBkaWdpdHMsIGV4ZWN1dGluZyB1CHVuCG5pCGl2CHZlCGVyCHJzCHNhCGFsCGwtCC1hCGFyCHJnCGd1CHVtCG1lCGVuCG50CHQgYWdhaW4gZW5kcyB0aGUKLSAgICAgICAgICAgICAgbnVtZXJpYyBhcmd1bWVudCwgYnV0IGlzIG90aGVyd2lzZSBpZ25vcmVkLiAgIEFzICBhCi0gICAgICAgICAgICAgIHNwZWNpYWwgIGNhc2UsICBpZiB0aGlzIGNvbW1hbmQgaXMgaW1tZWRpYXRlbHkgZm9sLQotICAgICAgICAgICAgICBsb3dlZCBieSBhIGNoYXJhY3RlciB0aGF0IGlzICBuZWl0aGVyICBhICBkaWdpdCAgb3IKLSAgICAgICAgICAgICAgbWludXMgc2lnbiwgdGhlIGFyZ3VtZW50IGNvdW50IGZvciB0aGUgbmV4dCBjb21tYW5kCi0gICAgICAgICAgICAgIGlzIG11bHRpcGxpZWQgYnkgZm91ci4gIFRoZSBhcmd1bWVudCBjb3VudCBpcyAgaW5pLQotICAgICAgICAgICAgICB0aWFsbHkgIG9uZSwgIHNvICBleGVjdXRpbmcgdGhpcyBmdW5jdGlvbiB0aGUgZmlyc3QKLSAgICAgICAgICAgICAgdGltZSBtYWtlcyB0aGUgYXJndW1lbnQgY291bnQgZm91ciwgYSAgc2Vjb25kICB0aW1lCi0gICAgICAgICAgICAgIG1ha2VzIHRoZSBhcmd1bWVudCBjb3VudCBzaXh0ZWVuLCBhbmQgc28gb24uCisgICAgICAgICAgICAgIFRoaXMgaXMgYW5vdGhlciB3YXkgdG8gc3BlY2lmeSBhbiBhcmd1bWVudC4gIElmIHRoaXMgY29tbWFuZCAgaXMKKyAgICAgICAgICAgICAgZm9sbG93ZWQgIGJ5IG9uZSBvciBtb3JlIGRpZ2l0cywgb3B0aW9uYWxseSB3aXRoIGEgbGVhZGluZyBtaW51cworICAgICAgICAgICAgICBzaWduLCB0aG9zZSBkaWdpdHMgZGVmaW5lIHRoZSBhcmd1bWVudC4gIElmIHRoZSBjb21tYW5kIGlzICBmb2wtCisgICAgICAgICAgICAgIGxvd2VkICBieSAgZGlnaXRzLCAgZXhlY3V0aW5nICB1CHVuCG5pCGl2CHZlCGVyCHJzCHNhCGFsCGwtCC1hCGFyCHJnCGd1CHVtCG1lCGVuCG50CHQgYWdhaW4gZW5kcyB0aGUKKyAgICAgICAgICAgICAgbnVtZXJpYyBhcmd1bWVudCwgYnV0IGlzIG90aGVyd2lzZSBpZ25vcmVkLiAgQXMgYSBzcGVjaWFsICBjYXNlLAorICAgICAgICAgICAgICBpZiAgdGhpcyAgY29tbWFuZCBpcyBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBhIGNoYXJhY3RlciB0aGF0IGlzCisgICAgICAgICAgICAgIG5laXRoZXIgYSBkaWdpdCBvciBtaW51cyBzaWduLCB0aGUgYXJndW1lbnQgY291bnQgZm9yICB0aGUgIG5leHQKKyAgICAgICAgICAgICAgY29tbWFuZCAgaXMgbXVsdGlwbGllZCBieSBmb3VyLiAgVGhlIGFyZ3VtZW50IGNvdW50IGlzIGluaXRpYWxseQorICAgICAgICAgICAgICBvbmUsIHNvIGV4ZWN1dGluZyB0aGlzIGZ1bmN0aW9uIHRoZSBmaXJzdCB0aW1lIG1ha2VzICB0aGUgIGFyZ3UtCisgICAgICAgICAgICAgIG1lbnQgY291bnQgZm91ciwgYSBzZWNvbmQgdGltZSBtYWtlcyB0aGUgYXJndW1lbnQgY291bnQgc2l4dGVlbiwKKyAgICAgICAgICAgICAgYW5kIHNvIG9uLgogCiAgICBDCENvCG9tCG1wCHBsCGxlCGV0CHRpCGluCG5nCGcKICAgICAgICBjCGNvCG9tCG1wCHBsCGxlCGV0CHRlCGUgKAgoVAhUQQhBQghCKQgpCi0gICAgICAgICAgICAgIEF0dGVtcHQgIHRvICBwZXJmb3JtICBjb21wbGV0aW9uIG9uIHRoZSB0ZXh0IGJlZm9yZQotICAgICAgICAgICAgICBwb2ludC4gIFRoZSBhY3R1YWwgY29tcGxldGlvbiBwZXJmb3JtZWQgaXMgYXBwbGljYS0KLSAgICAgICAgICAgICAgdGlvbi1zcGVjaWZpYy4gICBCCEJhCGFzCHNoCGgsICBmb3IgaW5zdGFuY2UsIGF0dGVtcHRzIGNvbS0KLSAgICAgICAgICAgICAgcGxldGlvbiB0cmVhdGluZyB0aGUgdGV4dCBhcyAgYSAgdmFyaWFibGUgIChpZiAgdGhlCi0gICAgICAgICAgICAgIHRleHQgIGJlZ2lucyAgd2l0aCAkCCQpLCB1c2VybmFtZSAoaWYgdGhlIHRleHQgYmVnaW5zCi0gICAgICAgICAgICAgIHdpdGggfgh+KSwgaG9zdG5hbWUgKGlmIHRoZSB0ZXh0IGJlZ2lucyB3aXRoICBACEApLCAgb3IKLSAgICAgICAgICAgICAgY29tbWFuZCAgKGluY2x1ZGluZyBhbGlhc2VzIGFuZCBmdW5jdGlvbnMpIGluIHR1cm4uCi0gICAgICAgICAgICAgIElmIG5vbmUgb2YgdGhlc2UgcHJvZHVjZXMgYSBtYXRjaCwgZmlsZW5hbWUgY29tcGxlLQotICAgICAgICAgICAgICB0aW9uICBpcyBhdHRlbXB0ZWQuICBHCEdkCGRiCGIsIG9uIHRoZSBvdGhlciBoYW5kLCBhbGxvd3MKLSAgICAgICAgICAgICAgY29tcGxldGlvbiBvZiBwcm9ncmFtIGZ1bmN0aW9ucyBhbmQgdmFyaWFibGVzLCAgYW5kCi0gICAgICAgICAgICAgIG9ubHkgIGF0dGVtcHRzICBmaWxlbmFtZSAgY29tcGxldGlvbiAgdW5kZXIgY2VydGFpbgotICAgICAgICAgICAgICBjaXJjdW1zdGFuY2VzLgorICAgICAgICAgICAgICBBdHRlbXB0IHRvIHBlcmZvcm0gY29tcGxldGlvbiBvbiB0aGUgIHRleHQgIGJlZm9yZSAgcG9pbnQuICAgVGhlCisgICAgICAgICAgICAgIGFjdHVhbCAgY29tcGxldGlvbiBwZXJmb3JtZWQgaXMgYXBwbGljYXRpb24tc3BlY2lmaWMuICBCCEJhCGFzCHNoCGgsIGZvcgorICAgICAgICAgICAgICBpbnN0YW5jZSwgYXR0ZW1wdHMgY29tcGxldGlvbiB0cmVhdGluZyB0aGUgdGV4dCAgYXMgIGEgIHZhcmlhYmxlCisgICAgICAgICAgICAgIChpZiAgdGhlICB0ZXh0IGJlZ2lucyB3aXRoICQIJCksIHVzZXJuYW1lIChpZiB0aGUgdGV4dCBiZWdpbnMgd2l0aAorICAgICAgICAgICAgICB+CH4pLCBob3N0bmFtZSAoaWYgdGhlIHRleHQgYmVnaW5zIHdpdGggQAhAKSwgb3IgY29tbWFuZCAgKGluY2x1ZGluZworICAgICAgICAgICAgICBhbGlhc2VzICBhbmQgIGZ1bmN0aW9ucykgIGluICB0dXJuLiAgSWYgbm9uZSBvZiB0aGVzZSBwcm9kdWNlcyBhCisgICAgICAgICAgICAgIG1hdGNoLCBmaWxlbmFtZSBjb21wbGV0aW9uIGlzICBhdHRlbXB0ZWQuICAgRwhHZAhkYghiLCAgb24gIHRoZSAgb3RoZXIKKyAgICAgICAgICAgICAgaGFuZCwgIGFsbG93cyBjb21wbGV0aW9uIG9mIHByb2dyYW0gZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMsIGFuZAorICAgICAgICAgICAgICBvbmx5IGF0dGVtcHRzIGZpbGVuYW1lIGNvbXBsZXRpb24gdW5kZXIgY2VydGFpbiBjaXJjdW1zdGFuY2VzLgogICAgICAgIHAIcG8Ib3MIc3MIc2kIaWIIYmwIbGUIZS0ILWMIY28Ib20IbXAIcGwIbGUIZXQIdGkIaW8Ib24IbnMIcyAoCChNCE0tCC0/CD8pCCkKLSAgICAgICAgICAgICAgTGlzdCB0aGUgcG9zc2libGUgY29tcGxldGlvbnMgb2YgIHRoZSAgdGV4dCAgYmVmb3JlCi0gICAgICAgICAgICAgIHBvaW50LgorICAgICAgICAgICAgICBMaXN0IHRoZSBwb3NzaWJsZSBjb21wbGV0aW9ucyBvZiB0aGUgdGV4dCBiZWZvcmUgcG9pbnQuCiAgICAgICAgaQhpbghucwhzZQhlcghydAh0LQgtYwhjbwhvbQhtcAhwbAhsZQhldAh0aQhpbwhvbghucwhzICgIKE0ITS0ILSoIKikIKQotICAgICAgICAgICAgICBJbnNlcnQgIGFsbCAgY29tcGxldGlvbnMgIG9mICB0aGUgdGV4dCBiZWZvcmUgcG9pbnQKLSAgICAgICAgICAgICAgdGhhdCB3b3VsZCBoYXZlIGJlZW4gZ2VuZXJhdGVkIGJ5ICBwCHBvCG9zCHNzCHNpCGliCGJsCGxlCGUtCC1jCGNvCG9tCG1wCHBsCGxlCGUtCC0KLSAgICAgICAgICAgICAgdAh0aQhpbwhvbghucwhzLgorICAgICAgICAgICAgICBJbnNlcnQgYWxsIGNvbXBsZXRpb25zIG9mIHRoZSB0ZXh0IGJlZm9yZSBwb2ludCB0aGF0IHdvdWxkICBoYXZlCisgICAgICAgICAgICAgIGJlZW4gZ2VuZXJhdGVkIGJ5IHAIcG8Ib3MIc3MIc2kIaWIIYmwIbGUIZS0ILWMIY28Ib20IbXAIcGwIbGUIZXQIdGkIaW8Ib24IbnMIcy4KICAgICAgICBtCG1lCGVuCG51CHUtCC1jCGNvCG9tCG1wCHBsCGxlCGV0CHRlCGUKLSAgICAgICAgICAgICAgU2ltaWxhciAgdG8gIGMIY28Ib20IbXAIcGwIbGUIZXQIdGUIZSwgIGJ1dCByZXBsYWNlcyB0aGUgd29yZCB0byBiZQotICAgICAgICAgICAgICBjb21wbGV0ZWQgd2l0aCBhIHNpbmdsZSBtYXRjaCBmcm9tIHRoZSBsaXN0IG9mIHBvcy0KLSAgICAgICAgICAgICAgc2libGUgY29tcGxldGlvbnMuICBSZXBlYXRlZCBleGVjdXRpb24gb2YgbQhtZQhlbghudQh1LQgtYwhjbwhvbQhtLQgtCi0gICAgICAgICAgICAgIHAIcGwIbGUIZXQIdGUIZSBzdGVwcyB0aHJvdWdoIHRoZSBsaXN0ICBvZiAgcG9zc2libGUgIGNvbXBsZS0KLSAgICAgICAgICAgICAgdGlvbnMsIGluc2VydGluZyBlYWNoIG1hdGNoIGluIHR1cm4uICBBdCB0aGUgZW5kIG9mCi0gICAgICAgICAgICAgIHRoZSBsaXN0IG9mIGNvbXBsZXRpb25zLCB0aGUgYmVsbCBpcyBydW5nICAoc3ViamVjdAotICAgICAgICAgICAgICB0byAgdGhlICBzZXR0aW5nICBvZiAgMAgwYQhhbghuZAhkICB0CHRoCGhlCGUgIG8Ib3IIcmkIaWcIZ2kIaW4IbmEIYWwIbCAgdAh0ZQhleAh4dAh0ICBpCGlzCHMKLSAgICAgICAgICAgICAgcghyZQhlcwhzdAh0bwhvcghyZQhlZAhkLgguICBBCEFuCG4gYQhhcghyZwhndQh1bQhtZQhlbghudAh0IG8Ib2YIZiBfCG4gbQhtbwhvdgh2ZQhlcwhzIF8IbiBwCHBvCG9zCHNpCGl0CHRpCGlvCG9uCG5zCHMgIGYIZm8Ib3IIci0ILQotICAgICAgICAgICAgICB3CHdhCGFyCHJkCGQgIGkIaW4IbiAgdAh0aAhoZQhlICBsCGxpCGlzCHN0CHQgbwhvZghmIG0IbWEIYXQIdGMIY2gIaGUIZXMIczsIOyBhCGEgbghuZQhlZwhnYQhhdAh0aQhpdgh2ZQhlIGEIYXIIcmcIZ3UIdW0IbWUIZW4IbnQIdAotICAgICAgICAgICAgICBtCG1hCGF5CHkgYghiZQhlIHUIdXMIc2UIZWQIZCB0CHRvCG8gIG0IbW8Ib3YIdmUIZSAgYghiYQhhYwhjawhrdwh3YQhhcghyZAhkICB0CHRoCGhyCHJvCG91CHVnCGdoCGggIHQIdGgIaGUIZSAgbAhsaQhpcwhzdAh0LgguCi0gICAgICAgICAgICAgIFQIVGgIaGkIaXMIcyBjCGNvCG9tCG1tCG1hCGFuCG5kCGQgaQhpcwhzIGkIaW4IbnQIdGUIZW4IbmQIZGUIZWQIZCB0CHRvCG8gYghiZQhlIGIIYm8Ib3UIdW4IbmQIZCB0CHRvCG8gVAhUQQhBQghCLAgsIGIIYnUIdXQIdCBpCGlzCHMKLSAgICAgICAgICAgICAgdQh1bghuYghibwhvdQh1bghuZAhkIGIIYnkIeSBkCGRlCGVmCGZhCGF1CHVsCGx0CHQuCC4KKyAgICAgICAgICAgICAgU2ltaWxhciAgdG8gYwhjbwhvbQhtcAhwbAhsZQhldAh0ZQhlLCBidXQgcmVwbGFjZXMgdGhlIHdvcmQgdG8gYmUgY29tcGxldGVkIHdpdGgKKyAgICAgICAgICAgICAgYSBzaW5nbGUgbWF0Y2ggZnJvbSB0aGUgbGlzdCBvZiBwb3NzaWJsZSBjb21wbGV0aW9ucy4gICBSZXBlYXRlZAorICAgICAgICAgICAgICBleGVjdXRpb24gIG9mICBtCG1lCGVuCG51CHUtCC1jCGNvCG9tCG1wCHBsCGxlCGV0CHRlCGUgIHN0ZXBzIHRocm91Z2ggdGhlIGxpc3Qgb2YgcG9zc2libGUKKyAgICAgICAgICAgICAgY29tcGxldGlvbnMsIGluc2VydGluZyBlYWNoIG1hdGNoIGluIHR1cm4uICBBdCB0aGUgIGVuZCAgb2YgIHRoZQorICAgICAgICAgICAgICBsaXN0IG9mIGNvbXBsZXRpb25zLCB0aGUgYmVsbCBpcyBydW5nIChzdWJqZWN0IHRvIHRoZSBzZXR0aW5nIG9mCisgICAgICAgICAgICAgIGIIYmUIZWwIbGwIbC0ILXMIc3QIdHkIeWwIbGUIZSkgYW5kIHRoZSBvcmlnaW5hbCB0ZXh0IGlzIHJlc3RvcmVkLiAgQW4gYXJndW1lbnQgb2YgXwhuCisgICAgICAgICAgICAgIG1vdmVzICBfCG4gIHBvc2l0aW9ucyAgZm9yd2FyZCAgaW4gdGhlIGxpc3Qgb2YgbWF0Y2hlczsgYSBuZWdhdGl2ZQorICAgICAgICAgICAgICBhcmd1bWVudCBtYXkgYmUgdXNlZCB0byBtb3ZlIGJhY2t3YXJkIHRocm91Z2ggIHRoZSAgbGlzdC4gICBUaGlzCisgICAgICAgICAgICAgIGNvbW1hbmQgIGlzICBpbnRlbmRlZCAgdG8gIGJlICBib3VuZCAgdG8gIFQIVEEIQUIIQiwgYnV0IGlzIHVuYm91bmQgYnkKKyAgICAgICAgICAgICAgZGVmYXVsdC4KICAgICAgICBkCGRlCGVsCGxlCGV0CHRlCGUtCC1jCGNoCGhhCGFyCHItCC1vCG9yCHItCC1sCGxpCGlzCHN0CHQKLSAgICAgICAgICAgICAgRGVsZXRlcyB0aGUgY2hhcmFjdGVyIHVuZGVyIHRoZSBjdXJzb3IgIGlmICBub3QgIGF0Ci0gICAgICAgICAgICAgIHRoZSAgYmVnaW5uaW5nICBvciAgZW5kICBvZiAgdGhlIGxpbmUgKGxpa2UgZAhkZQhlbAhsZQhldAh0ZQhlLQgtCi0gICAgICAgICAgICAgIGMIY2gIaGEIYXIIcikuICBJZiBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lLCBiZWhhdmVzICBpZGVudGktCi0gICAgICAgICAgICAgIGNhbGx5IHRvIHAIcG8Ib3MIc3MIc2kIaWIIYmwIbGUIZS0ILWMIY28Ib20IbXAIcGwIbGUIZXQIdGkIaW8Ib24IbnMIcy4KKyAgICAgICAgICAgICAgRGVsZXRlcyB0aGUgY2hhcmFjdGVyIHVuZGVyIHRoZSBjdXJzb3IgaWYgbm90IGF0ICB0aGUgIGJlZ2lubmluZworICAgICAgICAgICAgICBvciAgZW5kICBvZiAgdGhlICBsaW5lIChsaWtlIGQIZGUIZWwIbGUIZXQIdGUIZS0ILWMIY2gIaGEIYXIIcikuICBJZiBhdCB0aGUgZW5kIG9mIHRoZQorICAgICAgICAgICAgICBsaW5lLCBiZWhhdmVzIGlkZW50aWNhbGx5IHRvIHAIcG8Ib3MIc3MIc2kIaWIIYmwIbGUIZS0ILWMIY28Ib20IbXAIcGwIbGUIZXQIdGkIaW8Ib24IbnMIcy4KIAogICAgSwhLZQhleQh5YghibwhvYQhhcghyZAhkIE0ITWEIYWMIY3IIcm8Ib3MIcwogICAgICAgIHMIc3QIdGEIYXIIcnQIdC0ILWsIa2IIYmQIZC0ILW0IbWEIYWMIY3IIcm8IbyAoCChDCEMtCC14CHggKAgoKQgpCi0gICAgICAgICAgICAgIEJlZ2luICBzYXZpbmcgdGhlIGNoYXJhY3RlcnMgdHlwZWQgaW50byB0aGUgY3VycmVudAotICAgICAgICAgICAgICBrZXlib2FyZCBtYWNyby4KKyAgICAgICAgICAgICAgQmVnaW4gc2F2aW5nIHRoZSBjaGFyYWN0ZXJzICB0eXBlZCAgaW50byAgdGhlICBjdXJyZW50ICBrZXlib2FyZAorICAgICAgICAgICAgICBtYWNyby4KICAgICAgICBlCGVuCG5kCGQtCC1rCGtiCGJkCGQtCC1tCG1hCGFjCGNyCHJvCG8gKAgoQwhDLQgteAh4ICkIKSkIKQotICAgICAgICAgICAgICBTdG9wIHNhdmluZyB0aGUgY2hhcmFjdGVycyB0eXBlZCBpbnRvICB0aGUgIGN1cnJlbnQKLSAgICAgICAgICAgICAga2V5Ym9hcmQgbWFjcm8gYW5kIHN0b3JlIHRoZSBkZWZpbml0aW9uLgorICAgICAgICAgICAgICBTdG9wIHNhdmluZyB0aGUgY2hhcmFjdGVycyB0eXBlZCBpbnRvIHRoZSBjdXJyZW50IGtleWJvYXJkIG1hY3JvCisgICAgICAgICAgICAgIGFuZCBzdG9yZSB0aGUgZGVmaW5pdGlvbi4KICAgICAgICBjCGNhCGFsCGxsCGwtCC1sCGxhCGFzCHN0CHQtCC1rCGtiCGJkCGQtCC1tCG1hCGFjCGNyCHJvCG8gKAgoQwhDLQgteAh4IGUIZSkIKQotICAgICAgICAgICAgICBSZS1leGVjdXRlIHRoZSBsYXN0IGtleWJvYXJkIG1hY3JvIGRlZmluZWQsIGJ5IG1hay0KLSAgICAgICAgICAgICAgaW5nIHRoZSBjaGFyYWN0ZXJzIGluIHRoZSBtYWNybyBhcHBlYXIgYXMgaWYgIHR5cGVkCi0gICAgICAgICAgICAgIGF0IHRoZSBrZXlib2FyZC4KKyAgICAgICAgICAgICAgUmUtZXhlY3V0ZSB0aGUgbGFzdCBrZXlib2FyZCBtYWNybyBkZWZpbmVkLCBieSBtYWtpbmcgdGhlICBjaGFyLQorICAgICAgICAgICAgICBhY3RlcnMgaW4gdGhlIG1hY3JvIGFwcGVhciBhcyBpZiB0eXBlZCBhdCB0aGUga2V5Ym9hcmQuCiAKICAgIE0ITWkIaXMIc2MIY2UIZWwIbGwIbGEIYW4IbmUIZW8Ib3UIdXMIcwogICAgICAgIHIIcmUIZS0ILXIIcmUIZWEIYWQIZC0ILWkIaW4IbmkIaXQIdC0ILWYIZmkIaWwIbGUIZSAoCChDCEMtCC14CHggQwhDLQgtcghyKQgpCi0gICAgICAgICAgICAgIFJlYWQgIGluICB0aGUgIGNvbnRlbnRzICBvZiAgdGhlICBfCGlfCG5fCHBfCHVfCHRfCHJfCGMgZmlsZSwgYW5kCi0gICAgICAgICAgICAgIGluY29ycG9yYXRlIGFueSBiaW5kaW5ncyAgb3IgIHZhcmlhYmxlICBhc3NpZ25tZW50cwotICAgICAgICAgICAgICBmb3VuZCB0aGVyZS4KKyAgICAgICAgICAgICAgUmVhZCAgaW4gIHRoZSAgY29udGVudHMgb2YgdGhlIF8IaV8Ibl8IcF8IdV8IdF8Icl8IYyBmaWxlLCBhbmQgaW5jb3Jwb3JhdGUgYW55CisgICAgICAgICAgICAgIGJpbmRpbmdzIG9yIHZhcmlhYmxlIGFzc2lnbm1lbnRzIGZvdW5kIHRoZXJlLgogICAgICAgIGEIYWIIYm8Ib3IIcnQIdCAoCChDCEMtCC1nCGcpCCkKLSAgICAgICAgICAgICAgQWJvcnQgdGhlIGN1cnJlbnQgZWRpdGluZyBjb21tYW5kIGFuZCByaW5nIHRoZSB0ZXItCi0gICAgICAgICAgICAgIG1pbmFsJ3MgICBiZWxsICAgKHN1YmplY3QgICB0byAgIHRoZSAgIHNldHRpbmcgICBvZgotICAgICAgICAgICAgICBiCGJlCGVsCGxsCGwtCC1zCHN0CHR5CHlsCGxlCGUpLgorICAgICAgICAgICAgICBBYm9ydCB0aGUgY3VycmVudCBlZGl0aW5nIGNvbW1hbmQgYW5kIHJpbmcgdGhlICB0ZXJtaW5hbCdzICBiZWxsCisgICAgICAgICAgICAgIChzdWJqZWN0IHRvIHRoZSBzZXR0aW5nIG9mIGIIYmUIZWwIbGwIbC0ILXMIc3QIdHkIeWwIbGUIZSkuCiAgICAgICAgZAhkbwhvLQgtdQh1cAhwcAhwZQhlcghyYwhjYQhhcwhzZQhlLQgtdgh2ZQhlcghycwhzaQhpbwhvbghuICgIKE0ITS0ILWEIYSwILCBNCE0tCC1iCGIsCCwgTQhNLQgtXwh4LAgsIC4ILi4ILi4ILikIKQotICAgICAgICAgICAgICBJZiAgdGhlICBtZXRhZmllZCBjaGFyYWN0ZXIgXwh4IGlzIGxvd2VyY2FzZSwgcnVuIHRoZQotICAgICAgICAgICAgICBjb21tYW5kIHRoYXQgaXMgYm91bmQgdG8gdGhlICBjb3JyZXNwb25kaW5nICB1cHBlci0KLSAgICAgICAgICAgICAgY2FzZSBjaGFyYWN0ZXIuCisgICAgICAgICAgICAgIElmICB0aGUgIG1ldGFmaWVkIGNoYXJhY3RlciBfCHggaXMgbG93ZXJjYXNlLCBydW4gdGhlIGNvbW1hbmQgdGhhdAorICAgICAgICAgICAgICBpcyBib3VuZCB0byB0aGUgY29ycmVzcG9uZGluZyB1cHBlcmNhc2UgY2hhcmFjdGVyLgogICAgICAgIHAIcHIIcmUIZWYIZmkIaXgIeC0ILW0IbWUIZXQIdGEIYSAoCChFCEVTCFNDCEMpCCkKLSAgICAgICAgICAgICAgTWV0YWZ5ICB0aGUgbmV4dCBjaGFyYWN0ZXIgdHlwZWQuICBFCEVTCFNDCEMgZghmIGlzIGVxdWl2YS0KLSAgICAgICAgICAgICAgbGVudCB0byBNCE1lCGV0CHRhCGEtCC1mCGYuCisgICAgICAgICAgICAgIE1ldGFmeSB0aGUgbmV4dCBjaGFyYWN0ZXIgdHlwZWQuICBFCEVTCFNDCEMgZghmIGlzIGVxdWl2YWxlbnQgdG8gTQhNZQhldAh0YQhhLQgtZghmLgogICAgICAgIHUIdW4IbmQIZG8IbyAoCChDCEMtCC1fCF8sCCwgQwhDLQgteAh4IEMIQy0ILXUIdSkIKQotICAgICAgICAgICAgICBJbmNyZW1lbnRhbCB1bmRvLCBzZXBhcmF0ZWx5ICByZW1lbWJlcmVkICBmb3IgIGVhY2gKLSAgICAgICAgICAgICAgbGluZS4KKyAgICAgICAgICAgICAgSW5jcmVtZW50YWwgdW5kbywgc2VwYXJhdGVseSByZW1lbWJlcmVkIGZvciBlYWNoIGxpbmUuCiAgICAgICAgcghyZQhldgh2ZQhlcghydAh0LQgtbAhsaQhpbghuZQhlICgIKE0ITS0ILXIIcikIKQotICAgICAgICAgICAgICBVbmRvICBhbGwgIGNoYW5nZXMgbWFkZSB0byB0aGlzIGxpbmUuICBUaGlzIGlzIGxpa2UKLSAgICAgICAgICAgICAgZXhlY3V0aW5nIHRoZSB1CHVuCG5kCGRvCG8gY29tbWFuZCBlbm91Z2ggdGltZXMgIHRvICByZXR1cm4KLSAgICAgICAgICAgICAgdGhlIGxpbmUgdG8gaXRzIGluaXRpYWwgc3RhdGUuCisgICAgICAgICAgICAgIFVuZG8gIGFsbCBjaGFuZ2VzIG1hZGUgdG8gdGhpcyBsaW5lLiAgVGhpcyBpcyBsaWtlIGV4ZWN1dGluZyB0aGUKKyAgICAgICAgICAgICAgdQh1bghuZAhkbwhvIGNvbW1hbmQgZW5vdWdoIHRpbWVzIHRvIHJldHVybiAgdGhlICBsaW5lICB0byAgaXRzICBpbml0aWFsCisgICAgICAgICAgICAgIHN0YXRlLgogICAgICAgIHQIdGkIaWwIbGQIZGUIZS0ILWUIZXgIeHAIcGEIYW4IbmQIZCAoCChNCE0tCC0mCCYpCCkKICAgICAgICAgICAgICAgUGVyZm9ybSB0aWxkZSBleHBhbnNpb24gb24gdGhlIGN1cnJlbnQgd29yZC4KICAgICAgICBzCHNlCGV0CHQtCC1tCG1hCGFyCHJrCGsgKAgoQwhDLQgtQAhALAgsIE0ITS0ILTwIPHMIc3AIcGEIYWMIY2UIZT4IPikIKQotICAgICAgICAgICAgICBTZXQgIHRoZSAgbWFyayB0byB0aGUgcG9pbnQuICBJZiBhIG51bWVyaWMgYXJndW1lbnQKLSAgICAgICAgICAgICAgaXMgc3VwcGxpZWQsIHRoZSBtYXJrIGlzIHNldCB0byB0aGF0IHBvc2l0aW9uLgorICAgICAgICAgICAgICBTZXQgIHRoZSAgbWFyayB0byB0aGUgcG9pbnQuICBJZiBhIG51bWVyaWMgYXJndW1lbnQgaXMgc3VwcGxpZWQsCisgICAgICAgICAgICAgIHRoZSBtYXJrIGlzIHNldCB0byB0aGF0IHBvc2l0aW9uLgogICAgICAgIGUIZXgIeGMIY2gIaGEIYW4IbmcIZ2UIZS0ILXAIcG8Ib2kIaW4IbnQIdC0ILWEIYW4IbmQIZC0ILW0IbWEIYXIIcmsIayAoCChDCEMtCC14CHggQwhDLQgteAh4KQgpCi0gICAgICAgICAgICAgIFN3YXAgdGhlIHBvaW50IHdpdGggdGhlIG1hcmsuICBUaGUgIGN1cnJlbnQgIGN1cnNvcgotICAgICAgICAgICAgICBwb3NpdGlvbiAgaXMgc2V0IHRvIHRoZSBzYXZlZCBwb3NpdGlvbiwgYW5kIHRoZSBvbGQKLSAgICAgICAgICAgICAgY3Vyc29yIHBvc2l0aW9uIGlzIHNhdmVkIGFzIHRoZSBtYXJrLgorICAgICAgICAgICAgICBTd2FwIHRoZSBwb2ludCB3aXRoIHRoZSBtYXJrLiAgVGhlIGN1cnJlbnQgIGN1cnNvciAgcG9zaXRpb24gIGlzCisgICAgICAgICAgICAgIHNldCAgdG8gdGhlIHNhdmVkIHBvc2l0aW9uLCBhbmQgdGhlIG9sZCBjdXJzb3IgcG9zaXRpb24gaXMgc2F2ZWQKKyAgICAgICAgICAgICAgYXMgdGhlIG1hcmsuCiAgICAgICAgYwhjaAhoYQhhcghyYQhhYwhjdAh0ZQhlcghyLQgtcwhzZQhlYQhhcghyYwhjaAhoICgIKEMIQy0ILV0IXSkIKQotICAgICAgICAgICAgICBBIGNoYXJhY3RlciBpcyByZWFkIGFuZCBwb2ludCBpcyBtb3ZlZCB0byB0aGUgIG5leHQKLSAgICAgICAgICAgICAgb2NjdXJyZW5jZSAgb2YgIHRoYXQgIGNoYXJhY3Rlci4gICBBIG5lZ2F0aXZlIGNvdW50Ci0gICAgICAgICAgICAgIHNlYXJjaGVzIGZvciBwcmV2aW91cyBvY2N1cnJlbmNlcy4KKyAgICAgICAgICAgICAgQSBjaGFyYWN0ZXIgaXMgcmVhZCBhbmQgcG9pbnQgaXMgbW92ZWQgdG8gdGhlIG5leHQgb2NjdXJyZW5jZSBvZgorICAgICAgICAgICAgICB0aGF0ICBjaGFyYWN0ZXIuICAgQSBuZWdhdGl2ZSBjb3VudCBzZWFyY2hlcyBmb3IgcHJldmlvdXMgb2NjdXItCisgICAgICAgICAgICAgIHJlbmNlcy4KICAgICAgICBjCGNoCGhhCGFyCHJhCGFjCGN0CHRlCGVyCHItCC1zCHNlCGVhCGFyCHJjCGNoCGgtCC1iCGJhCGFjCGNrCGt3CHdhCGFyCHJkCGQgKAgoTQhNLQgtQwhDLQgtXQhdKQgpCi0gICAgICAgICAgICAgIEEgY2hhcmFjdGVyIGlzIHJlYWQgYW5kIHBvaW50IGlzIG1vdmVkIHRvIHRoZSAgcHJlLQotICAgICAgICAgICAgICB2aW91cyAgb2NjdXJyZW5jZSAgb2YgIHRoYXQgIGNoYXJhY3Rlci4gIEEgbmVnYXRpdmUKLSAgICAgICAgICAgICAgY291bnQgc2VhcmNoZXMgZm9yIHN1YnNlcXVlbnQgb2NjdXJyZW5jZXMuCisgICAgICAgICAgICAgIEEgY2hhcmFjdGVyIGlzIHJlYWQgYW5kIHBvaW50IGlzIG1vdmVkIHRvICB0aGUgIHByZXZpb3VzICBvY2N1ci0KKyAgICAgICAgICAgICAgcmVuY2UgIG9mICB0aGF0IGNoYXJhY3Rlci4gIEEgbmVnYXRpdmUgY291bnQgc2VhcmNoZXMgZm9yIHN1YnNlLQorICAgICAgICAgICAgICBxdWVudCBvY2N1cnJlbmNlcy4KICAgICAgICBpCGluCG5zCHNlCGVyCHJ0CHQtCC1jCGNvCG9tCG1tCG1lCGVuCG50CHQgKAgoTQhNLQgtIwgjKQgpCi0gICAgICAgICAgICAgIFdpdGhvdXQgYSBudW1lcmljIGFyZ3VtZW50LCB0aGUgdmFsdWUgb2YgdGhlICByZWFkLQotICAgICAgICAgICAgICBsaW5lICBjCGNvCG9tCG1tCG1lCGVuCG50CHQtCC1iCGJlCGVnCGdpCGluCG4gIHZhcmlhYmxlICBpcyAgaW5zZXJ0ZWQgIGF0IHRoZQotICAgICAgICAgICAgICBiZWdpbm5pbmcgb2YgdGhlIGN1cnJlbnQgbGluZS4gIElmIGEgbnVtZXJpYyAgYXJndS0KLSAgICAgICAgICAgICAgbWVudCAgaXMgIHN1cHBsaWVkLCAgdGhpcyBjb21tYW5kIGFjdHMgYXMgYSB0b2dnbGU6Ci0gICAgICAgICAgICAgIGlmIHRoZSBjaGFyYWN0ZXJzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlICBsaW5lICBkbwotICAgICAgICAgICAgICBub3QgIG1hdGNoIHRoZSB2YWx1ZSBvZiBjCGNvCG9tCG1tCG1lCGVuCG50CHQtCC1iCGJlCGVnCGdpCGluCG4sIHRoZSB2YWx1ZSBpcwotICAgICAgICAgICAgICBpbnNlcnRlZCwgb3RoZXJ3aXNlIHRoZSBjaGFyYWN0ZXJzIGluIGMIY28Ib20IbW0IbWUIZW4IbnQIdC0ILWIIYmUIZWcIZ2kIaW4IbgotICAgICAgICAgICAgICBhcmUgIGRlbGV0ZWQgIGZyb20gIHRoZSAgYmVnaW5uaW5nIG9mIHRoZSBsaW5lLiAgSW4KLSAgICAgICAgICAgICAgZWl0aGVyIGNhc2UsIHRoZSBsaW5lIGlzIGFjY2VwdGVkIGFzIGlmICBhICBuZXdsaW5lCi0gICAgICAgICAgICAgIGhhZCBiZWVuIHR5cGVkLiAgVGhlIGRlZmF1bHQgdmFsdWUgb2YgYwhjbwhvbQhtbQhtZQhlbghudAh0LQgtYghiZQhlZwhnaQhpbghuCi0gICAgICAgICAgICAgIG1ha2VzIHRoZSBjdXJyZW50ICBsaW5lICBhICBzaGVsbCAgY29tbWVudC4gICBJZiAgYQotICAgICAgICAgICAgICBudW1lcmljIGFyZ3VtZW50IGNhdXNlcyB0aGUgY29tbWVudCBjaGFyYWN0ZXIgdG8gYmUKLSAgICAgICAgICAgICAgcmVtb3ZlZCwgdGhlIGxpbmUgd2lsbCBiZSBleGVjdXRlZCBieSB0aGUgc2hlbGwuCisgICAgICAgICAgICAgIFdpdGhvdXQgYSBudW1lcmljIGFyZ3VtZW50LCAgdGhlICB2YWx1ZSAgb2YgIHRoZSAgcmVhZGxpbmUgIGMIY28Ib20IbS0ILQorICAgICAgICAgICAgICBtCG1lCGVuCG50CHQtCC1iCGJlCGVnCGdpCGluCG4gIHZhcmlhYmxlIGlzIGluc2VydGVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGN1cnJlbnQKKyAgICAgICAgICAgICAgbGluZS4gIElmIGEgbnVtZXJpYyBhcmd1bWVudCBpcyBzdXBwbGllZCwgdGhpcyBjb21tYW5kIGFjdHMgYXMgYQorICAgICAgICAgICAgICB0b2dnbGU6ICAgaWYgIHRoZSBjaGFyYWN0ZXJzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUgZG8gbm90CisgICAgICAgICAgICAgIG1hdGNoIHRoZSB2YWx1ZSBvZiBjCGNvCG9tCG1tCG1lCGVuCG50CHQtCC1iCGJlCGVnCGdpCGluCG4sIHRoZSB2YWx1ZSBpcyBpbnNlcnRlZCwgIG90aGVyLQorICAgICAgICAgICAgICB3aXNlIHRoZSBjaGFyYWN0ZXJzIGluIGMIY28Ib20IbW0IbWUIZW4IbnQIdC0ILWIIYmUIZWcIZ2kIaW4IbiBhcmUgZGVsZXRlZCBmcm9tIHRoZSBiZWdpbi0KKyAgICAgICAgICAgICAgbmluZyBvZiB0aGUgbGluZS4gIEluIGVpdGhlciBjYXNlLCB0aGUgbGluZSBpcyBhY2NlcHRlZCBhcyBpZiAgYQorICAgICAgICAgICAgICBuZXdsaW5lICBoYWQgIGJlZW4gIHR5cGVkLiAgIFRoZSAgZGVmYXVsdCB2YWx1ZSBvZiBjCGNvCG9tCG1tCG1lCGVuCG50CHQtCC1iCGJlCGVnCGdpCGluCG4KKyAgICAgICAgICAgICAgbWFrZXMgdGhlIGN1cnJlbnQgbGluZSBhIHNoZWxsIGNvbW1lbnQuICBJZiBhICBudW1lcmljICBhcmd1bWVudAorICAgICAgICAgICAgICBjYXVzZXMgIHRoZSAgY29tbWVudCAgY2hhcmFjdGVyICB0byBiZSByZW1vdmVkLCB0aGUgbGluZSB3aWxsIGJlCisgICAgICAgICAgICAgIGV4ZWN1dGVkIGJ5IHRoZSBzaGVsbC4KICAgICAgICBkCGR1CHVtCG1wCHAtCC1mCGZ1CHVuCG5jCGN0CHRpCGlvCG9uCG5zCHMKLSAgICAgICAgICAgICAgUHJpbnQgYWxsIG9mIHRoZSBmdW5jdGlvbnMgYW5kIHRoZWlyICBrZXkgIGJpbmRpbmdzCi0gICAgICAgICAgICAgIHRvICB0aGUgIHJlYWRsaW5lICBvdXRwdXQgIHN0cmVhbS4gICBJZiAgYSAgbnVtZXJpYwotICAgICAgICAgICAgICBhcmd1bWVudCBpcyBzdXBwbGllZCwgdGhlIG91dHB1dCAgaXMgIGZvcm1hdHRlZCAgaW4KLSAgICAgICAgICAgICAgc3VjaCAgYSAgd2F5IHRoYXQgaXQgY2FuIGJlIG1hZGUgcGFydCBvZiBhbiBfCGlfCG5fCHBfCHVfCHRfCHJfCGMKLSAgICAgICAgICAgICAgZmlsZS4KKyAgICAgICAgICAgICAgUHJpbnQgYWxsIG9mIHRoZSBmdW5jdGlvbnMgYW5kIHRoZWlyIGtleSBiaW5kaW5ncyB0byAgdGhlICByZWFkLQorICAgICAgICAgICAgICBsaW5lIG91dHB1dCBzdHJlYW0uICBJZiBhIG51bWVyaWMgYXJndW1lbnQgaXMgc3VwcGxpZWQsIHRoZSBvdXQtCisgICAgICAgICAgICAgIHB1dCBpcyBmb3JtYXR0ZWQgaW4gc3VjaCBhIHdheSB0aGF0IGl0IGNhbiBiZSBtYWRlICBwYXJ0ICBvZiAgYW4KKyAgICAgICAgICAgICAgXwhpXwhuXwhwXwh1Xwh0XwhyXwhjIGZpbGUuCiAgICAgICAgZAhkdQh1bQhtcAhwLQgtdgh2YQhhcghyaQhpYQhhYghibAhsZQhlcwhzCi0gICAgICAgICAgICAgIFByaW50IGFsbCBvZiB0aGUgc2V0dGFibGUgdmFyaWFibGVzIGFuZCB0aGVpciAgdmFsLQotICAgICAgICAgICAgICB1ZXMgIHRvICB0aGUgIHJlYWRsaW5lIG91dHB1dCBzdHJlYW0uICBJZiBhIG51bWVyaWMKLSAgICAgICAgICAgICAgYXJndW1lbnQgaXMgc3VwcGxpZWQsIHRoZSBvdXRwdXQgIGlzICBmb3JtYXR0ZWQgIGluCi0gICAgICAgICAgICAgIHN1Y2ggIGEgIHdheSB0aGF0IGl0IGNhbiBiZSBtYWRlIHBhcnQgb2YgYW4gXwhpXwhuXwhwXwh1Xwh0XwhyXwhjCi0gICAgICAgICAgICAgIGZpbGUuCisgICAgICAgICAgICAgIFByaW50ICBhbGwgIG9mICB0aGUgIHNldHRhYmxlICB2YXJpYWJsZXMgYW5kIHRoZWlyIHZhbHVlcyB0byB0aGUKKyAgICAgICAgICAgICAgcmVhZGxpbmUgb3V0cHV0IHN0cmVhbS4gIElmIGEgbnVtZXJpYyBhcmd1bWVudCBpcyBzdXBwbGllZCwgIHRoZQorICAgICAgICAgICAgICBvdXRwdXQgaXMgZm9ybWF0dGVkIGluIHN1Y2ggYSB3YXkgdGhhdCBpdCBjYW4gYmUgbWFkZSBwYXJ0IG9mIGFuCisgICAgICAgICAgICAgIF8IaV8Ibl8IcF8IdV8IdF8Icl8IYyBmaWxlLgogICAgICAgIGQIZHUIdW0IbXAIcC0ILW0IbWEIYWMIY3IIcm8Ib3MIcwotICAgICAgICAgICAgICBQcmludCBhbGwgb2YgdGhlIHJlYWRsaW5lIGtleSAgc2VxdWVuY2VzICBib3VuZCAgdG8KLSAgICAgICAgICAgICAgbWFjcm9zICBhbmQgIHRoZSAgc3RyaW5ncyB0aGV5IG91cHV0LiAgSWYgYSBudW1lcmljCi0gICAgICAgICAgICAgIGFyZ3VtZW50IGlzIHN1cHBsaWVkLCB0aGUgb3V0cHV0ICBpcyAgZm9ybWF0dGVkICBpbgotICAgICAgICAgICAgICBzdWNoICBhICB3YXkgdGhhdCBpdCBjYW4gYmUgbWFkZSBwYXJ0IG9mIGFuIF8IaV8Ibl8IcF8IdV8IdF8Icl8IYwotICAgICAgICAgICAgICBmaWxlLgorICAgICAgICAgICAgICBQcmludCBhbGwgb2YgdGhlIHJlYWRsaW5lIGtleSBzZXF1ZW5jZXMgYm91bmQgdG8gbWFjcm9zIGFuZCAgdGhlCisgICAgICAgICAgICAgIHN0cmluZ3MgIHRoZXkgIG91dHB1dC4gICBJZiAgYSBudW1lcmljIGFyZ3VtZW50IGlzIHN1cHBsaWVkLCB0aGUKKyAgICAgICAgICAgICAgb3V0cHV0IGlzIGZvcm1hdHRlZCBpbiBzdWNoIGEgd2F5IHRoYXQgaXQgY2FuIGJlIG1hZGUgcGFydCBvZiBhbgorICAgICAgICAgICAgICBfCGlfCG5fCHBfCHVfCHRfCHJfCGMgZmlsZS4KICAgICAgICBlCGVtCG1hCGFjCGNzCHMtCC1lCGVkCGRpCGl0CHRpCGluCG5nCGctCC1tCG1vCG9kCGRlCGUgKAgoQwhDLQgtZQhlKQgpCi0gICAgICAgICAgICAgIFdoZW4gaW4gdgh2aQhpIGNvbW1hbmQgbW9kZSwgdGhpcyBjYXVzZXMgIGEgIHN3aXRjaCAgdG8KLSAgICAgICAgICAgICAgZQhlbQhtYQhhYwhjcwhzIGVkaXRpbmcgbW9kZS4KKyAgICAgICAgICAgICAgV2hlbiAgaW4gIHYIdmkIaSBjb21tYW5kIG1vZGUsIHRoaXMgY2F1c2VzIGEgc3dpdGNoIHRvIGUIZW0IbWEIYWMIY3MIcyBlZGl0aW5nCisgICAgICAgICAgICAgIG1vZGUuCiAgICAgICAgdgh2aQhpLQgtZQhlZAhkaQhpdAh0aQhpbghuZwhnLQgtbQhtbwhvZAhkZQhlICgIKE0ITS0ILUMIQy0ILWoIaikIKQotICAgICAgICAgICAgICBXaGVuIGluIGUIZW0IbWEIYWMIY3MIcyBlZGl0aW5nIG1vZGUsIHRoaXMgY2F1c2VzIGEgc3dpdGNoIHRvCi0gICAgICAgICAgICAgIHYIdmkIaSBlZGl0aW5nIG1vZGUuCisgICAgICAgICAgICAgIFdoZW4gaW4gZQhlbQhtYQhhYwhjcwhzIGVkaXRpbmcgbW9kZSwgdGhpcyBjYXVzZXMgYSBzd2l0Y2ggdG8gIHYIdmkIaSAgZWRpdGluZworICAgICAgICAgICAgICBtb2RlLgogCiBECERFCEVGCEZBCEFVCFVMCExUCFQgSwhLRQhFWQhZIEIIQkkISU4ITkQIREkISU4ITkcIR1MIUwotICAgICAgIFRoZSBmb2xsb3dpbmcgaXMgYSBsaXN0IG9mIHRoZSBkZWZhdWx0IGVtYWNzIGFuZCB2aSAgYmluZC0KLSAgICAgICBpbmdzLiAgIENoYXJhY3RlcnMgIHdpdGggdGhlIGVpZ2h0aCBiaXQgc2V0IGFyZSB3cml0dGVuIGFzCi0gICAgICAgTS08Y2hhcmFjdGVyPiwgYW5kIGFyZSByZWZlcnJlZCB0byBhcyBfCG1fCGVfCHRfCGFfCGZfCGlfCGVfCGQgY2hhcmFjdGVycy4KLSAgICAgICBUaGUgIHByaW50YWJsZSAgQVNDSUkgY2hhcmFjdGVycyBub3QgbWVudGlvbmVkIGluIHRoZSBsaXN0Ci0gICAgICAgb2YgZW1hY3Mgc3RhbmRhcmQgYmluZGluZ3MgYXJlIGJvdW5kICB0byAgdGhlICBzCHNlCGVsCGxmCGYtCC1pCGluCG5zCHNlCGVyCHJ0CHQKLSAgICAgICBmdW5jdGlvbiwgIHdoaWNoIGp1c3QgaW5zZXJ0cyB0aGUgZ2l2ZW4gY2hhcmFjdGVyIGludG8gdGhlCi0gICAgICAgaW5wdXQgbGluZS4gIEluIHZpICBpbnNlcnRpb24gIG1vZGUsICBhbGwgIGNoYXJhY3RlcnMgIG5vdAotICAgICAgIHNwZWNpZmljYWxseSAgbWVudGlvbmVkIGFyZSBib3VuZCB0byBzCHNlCGVsCGxmCGYtCC1pCGluCG5zCHNlCGVyCHJ0CHQuICBDaGFyYWMtCi0gICAgICAgdGVycyBhc3NpZ25lZCB0byBzaWduYWwgZ2VuZXJhdGlvbiBieSBfCHNfCHRfCHRfCHkoMSkgb3IgdGhlICB0ZXItCi0gICAgICAgbWluYWwgIGRyaXZlciwgIHN1Y2ggIGFzIEMtWiBvciBDLUMsIHJldGFpbiB0aGF0IGZ1bmN0aW9uLgotICAgICAgIFVwcGVyIGFuZCBsb3dlciBjYXNlIG1ldGFmaWVkIGNoYXJhY3RlcnMgYXJlIGJvdW5kIHRvICB0aGUKLSAgICAgICBzYW1lICBmdW5jdGlvbiBpbiB0aGUgZW1hY3MgbW9kZSBtZXRhIGtleW1hcC4gIFRoZSByZW1haW4tCi0gICAgICAgaW5nIGNoYXJhY3RlcnMgYXJlIHVuYm91bmQsIHdoaWNoIGNhdXNlcyByZWFkbGluZSB0byAgcmluZwotICAgICAgIHRoZSAgYmVsbCAgKHN1YmplY3QgdG8gdGhlIHNldHRpbmcgb2YgdGhlIGIIYmUIZWwIbGwIbC0ILXMIc3QIdHkIeWwIbGUIZSB2YXJpLQotICAgICAgIGFibGUpLgorICAgICAgIFRoZSAgZm9sbG93aW5nIGlzIGEgbGlzdCBvZiB0aGUgZGVmYXVsdCBlbWFjcyBhbmQgdmkgYmluZGluZ3MuICBDaGFyYWMtCisgICAgICAgdGVycyB3aXRoIHRoZSBlaWdodGggYml0IHNldCBhcmUgIHdyaXR0ZW4gIGFzICBNLTxjaGFyYWN0ZXI+LCAgYW5kICBhcmUKKyAgICAgICByZWZlcnJlZCB0byBhcyBfCG1fCGVfCHRfCGFfCGZfCGlfCGVfCGQgY2hhcmFjdGVycy4gIFRoZSBwcmludGFibGUgQVNDSUkgY2hhcmFjdGVycyBub3QKKyAgICAgICBtZW50aW9uZWQgaW4gdGhlIGxpc3Qgb2YgZW1hY3MgIHN0YW5kYXJkICBiaW5kaW5ncyAgYXJlICBib3VuZCAgdG8gIHRoZQorICAgICAgIHMIc2UIZWwIbGYIZi0ILWkIaW4IbnMIc2UIZXIIcnQIdCAgZnVuY3Rpb24sICB3aGljaCBqdXN0IGluc2VydHMgdGhlIGdpdmVuIGNoYXJhY3RlciBpbnRvIHRoZQorICAgICAgIGlucHV0IGxpbmUuICBJbiB2aSBpbnNlcnRpb24gbW9kZSwgYWxsIGNoYXJhY3RlcnMgbm90IHNwZWNpZmljYWxseSBtZW4tCisgICAgICAgdGlvbmVkIGFyZSBib3VuZCB0byBzCHNlCGVsCGxmCGYtCC1pCGluCG5zCHNlCGVyCHJ0CHQuICBDaGFyYWN0ZXJzIGFzc2lnbmVkIHRvIHNpZ25hbCBnZW5lcmEtCisgICAgICAgdGlvbiBieSBfCHNfCHRfCHRfCHkoMSkgb3IgdGhlIHRlcm1pbmFsIGRyaXZlciwgc3VjaCBhcyBDLVogb3IgQy1DLCByZXRhaW4gdGhhdAorICAgICAgIGZ1bmN0aW9uLiAgIFVwcGVyICBhbmQgIGxvd2VyIGNhc2UgbWV0YWZpZWQgY2hhcmFjdGVycyBhcmUgYm91bmQgdG8gdGhlCisgICAgICAgc2FtZSBmdW5jdGlvbiBpbiB0aGUgZW1hY3MgbW9kZSBtZXRhIGtleW1hcC4gIFRoZSByZW1haW5pbmcgIGNoYXJhY3RlcnMKKyAgICAgICBhcmUgIHVuYm91bmQsICB3aGljaCAgY2F1c2VzICByZWFkbGluZSB0byByaW5nIHRoZSBiZWxsIChzdWJqZWN0IHRvIHRoZQorICAgICAgIHNldHRpbmcgb2YgdGhlIGIIYmUIZWwIbGwIbC0ILXMIc3QIdHkIeWwIbGUIZSB2YXJpYWJsZSkuCiAKICAgIEUIRW0IbWEIYWMIY3MIcyBNCE1vCG9kCGRlCGUKICAgICAgICAgICAgICBFbWFjcyBTdGFuZGFyZCBiaW5kaW5ncwpAQCAtOTc0LDI0ICs5MDUsMjIgQEAKICAgICAgICBjaGV0QGlucy5DV1JVLkVkdQogCiBCCEJVCFVHCEcgUghSRQhFUAhQTwhPUghSVAhUUwhTCi0gICAgICAgSWYgeW91IGZpbmQgYSBidWcgaW4gcghyZQhlYQhhZAhkbAhsaQhpbghuZQhlLAgsIHlvdSBzaG91bGQgcmVwb3J0IGl0LiAgIEJ1dAotICAgICAgIGZpcnN0LCAgeW91ICBzaG91bGQgbWFrZSBzdXJlIHRoYXQgaXQgcmVhbGx5IGlzIGEgYnVnLCBhbmQKLSAgICAgICB0aGF0IGl0IGFwcGVhcnMgaW4gdGhlICBsYXRlc3QgIHZlcnNpb24gIG9mICB0aGUgIHIIcmUIZWEIYWQIZGwIbGkIaW4IbmUIZQotICAgICAgIGxpYnJhcnkgdGhhdCB5b3UgaGF2ZS4KKyAgICAgICBJZiB5b3UgZmluZCBhIGJ1ZyBpbiByCHJlCGVhCGFkCGRsCGxpCGluCG5lCGUsCCwgeW91IHNob3VsZCByZXBvcnQgaXQuICAgQnV0ICBmaXJzdCwgIHlvdQorICAgICAgIHNob3VsZCAgbWFrZSAgc3VyZSAgdGhhdCBpdCByZWFsbHkgaXMgYSBidWcsIGFuZCB0aGF0IGl0IGFwcGVhcnMgaW4gdGhlCisgICAgICAgbGF0ZXN0IHZlcnNpb24gb2YgdGhlIHIIcmUIZWEIYWQIZGwIbGkIaW4IbmUIZSBsaWJyYXJ5IHRoYXQgeW91IGhhdmUuCiAKLSAgICAgICBPbmNlICB5b3UgaGF2ZSBkZXRlcm1pbmVkIHRoYXQgYSBidWcgYWN0dWFsbHkgZXhpc3RzLCBtYWlsCi0gICAgICAgYSBidWcgcmVwb3J0IHRvIF8IYl8IdV8IZ18ILV8Icl8IZV8IYV8IZF8IbF8IaV8Ibl8IZUBfCGdfCG5fCHVfCC5fCG9fCHJfCGcuICBJZiB5b3UgaGF2ZSBhICBmaXgsCi0gICAgICAgeW91ICBhcmUgIHdlbGNvbWUgIHRvICBtYWlsIHRoYXQgYXMgd2VsbCEgIFN1Z2dlc3Rpb25zIGFuZAotICAgICAgIGBwaGlsb3NvcGhpY2FsJyBidWcgcmVwb3J0cyBtYXkgIGJlICBtYWlsZWQgIHRvICBfCGJfCHVfCGdfCC1fCHJfCGVfCGFfCGRfCC0KLSAgICAgICBfCGxfCGlfCG5fCGVAXwhnXwhuXwh1XwguXwhvXwhyXwhnICAgb3IgICBwb3N0ZWQgICB0byAgIHRoZSAgIFVzZW5ldCAgIG5ld3Nncm91cAorICAgICAgIE9uY2UgeW91IGhhdmUgZGV0ZXJtaW5lZCB0aGF0IGEgYnVnIGFjdHVhbGx5IGV4aXN0cywgbWFpbCBhIGJ1ZyAgcmVwb3J0CisgICAgICAgdG8gIF8IYl8IdV8IZ18ILV8Icl8IZV8IYV8IZF8IbF8IaV8Ibl8IZUBfCGdfCG5fCHVfCC5fCG9fCHJfCGcuICAgSWYgIHlvdSBoYXZlIGEgZml4LCB5b3UgYXJlIHdlbGNvbWUgdG8gbWFpbAorICAgICAgIHRoYXQgYXMgd2VsbCEgIFN1Z2dlc3Rpb25zICBhbmQgIGBwaGlsb3NvcGhpY2FsJyAgYnVnICByZXBvcnRzICBtYXkgIGJlCisgICAgICAgbWFpbGVkICB0byAgXwhiXwh1XwhnXwgtXwhyXwhlXwhhXwhkXwhsXwhpXwhuXwhlQF8IZ18Ibl8IdV8ILl8Ib18Icl8IZyAgb3IgIHBvc3RlZCAgdG8gIHRoZSAgVXNlbmV0IG5ld3Nncm91cAogICAgICAgIGcIZ24IbnUIdS4ILmIIYmEIYXMIc2gIaC4ILmIIYnUIdWcIZy4KIAotICAgICAgIENvbW1lbnRzIGFuZCAgYnVnICByZXBvcnRzICBjb25jZXJuaW5nICB0aGlzICBtYW51YWwgIHBhZ2UKLSAgICAgICBzaG91bGQgYmUgZGlyZWN0ZWQgdG8gXwhjXwhoXwhlXwh0XwhAXwhpXwhuXwhzXwguXwhDXwhXXwhSXwhVXwguXwhFXwhkXwh1LgorICAgICAgIENvbW1lbnRzIGFuZCBidWcgcmVwb3J0cyBjb25jZXJuaW5nIHRoaXMgbWFudWFsIHBhZ2Ugc2hvdWxkIGJlIGRpcmVjdGVkCisgICAgICAgdG8gXwhjXwhoXwhlXwh0XwhAXwhpXwhuXwhzXwguXwhDXwhXXwhSXwhVXwguXwhFXwhkXwh1LgogCiBCCEJVCFVHCEdTCFMKICAgICAgICBJdCdzIHRvbyBiaWcgYW5kIHRvbyBzbG93LgogCiAKIAotR05VIFJlYWRsaW5lIDQuMyAgICAgICAgIDIwMDIgSmFudWFyeSAyMiAgICAgICAgICAgICAgUkVBRExJTkUoMykKK0dOVSBSZWFkbGluZSA1LjEtYmV0YTEgICAgICAgICAgICAyMDA1IFNlcCAxMyAgICAgICAgICAgICAgICAgICAgICBSRUFETElORSgzKQpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvZG9jL3JlYWRsaW5lLjMgYi9yZWFkbGluZS9kb2MvcmVhZGxpbmUuMwppbmRleCBhZmQ2YmEyLi45MGNkOTk3IDEwMDY0NAotLS0gYS9yZWFkbGluZS9kb2MvcmVhZGxpbmUuMworKysgYi9yZWFkbGluZS9kb2MvcmVhZGxpbmUuMwpAQCAtNiw5ICs2LDkgQEAKIC5cIglDYXNlIFdlc3Rlcm4gUmVzZXJ2ZSBVbml2ZXJzaXR5CiAuXCIJY2hldEBpbnMuQ1dSVS5FZHUKIC5cIgotLlwiCUxhc3QgQ2hhbmdlOiBUdWUgSmFuIDIyIDA5OjE4OjI1IEVTVCAyMDAyCisuXCIJTGFzdCBDaGFuZ2U6IFR1ZSBTZXAgMTMgMTI6MDc6MjYgRURUIDIwMDUKIC5cIgotLlRIIFJFQURMSU5FIDMgIjIwMDIgSmFudWFyeSAyMiIgIkdOVSBSZWFkbGluZSA0LjMiCisuVEggUkVBRExJTkUgMyAiMjAwNSBTZXAgMTMiICJHTlUgUmVhZGxpbmUgNS4xLWJldGExIgogLlwiCiAuXCIgRmlsZSBOYW1lIG1hY3JvLiAgVGhpcyB1c2VkIHRvIGJlIGAuUE4nLCBmb3IgUGF0aCBOYW1lLAogLlwiIGJ1dCBTdW4gZG9lc24ndCBzZWVtIHRvIGxpa2UgdGhhdCB2ZXJ5IG11Y2guCkBAIC0zNCw4ICszNCw4IEBACiBcZkJyZWFkbGluZVxmUCAoXGZJY29uc3QgY2hhciAqcHJvbXB0XGZQKTsKIC5maQogLlNIIENPUFlSSUdIVAotLmlmIG4gUmVhZGxpbmUgaXMgQ29weXJpZ2h0IChDKSAxOTg5XC0yMDAyIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLS5pZiB0IFJlYWRsaW5lIGlzIENvcHlyaWdodCBcKGNvIDE5ODlcLTIwMDIgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorLmlmIG4gUmVhZGxpbmUgaXMgQ29weXJpZ2h0IChDKSAxOTg5XC0yMDA0IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKy5pZiB0IFJlYWRsaW5lIGlzIENvcHlyaWdodCBcKGNvIDE5ODlcLTIwMDQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogLlNIIERFU0NSSVBUSU9OCiAuTFAKIC5CIHJlYWRsaW5lCkBAIC0zMjgsNiArMzI4LDEwIEBACiBvcgogLkIgT2ZmCiAod2l0aG91dCByZWdhcmQgdG8gY2FzZSkuCitVbnJlY29nbml6ZWQgdmFyaWFibGUgbmFtZXMgYXJlIGlnbm9yZWQuCitXaGVuIGEgdmFyaWFibGUgdmFsdWUgaXMgcmVhZCwgZW1wdHkgb3IgbnVsbCB2YWx1ZXMsICJvbiIgKGNhc2UtaW5zZW5zaXRpdmUpLAorYW5kICIxIiBhcmUgZXF1aXZhbGVudCB0byBcZkJPblxmUC4gIEFsbCBvdGhlciB2YWx1ZXMgYXJlIGVxdWl2YWxlbnQgdG8KK1xmQk9mZlxmUC4KIFRoZSB2YXJpYWJsZXMgYW5kIHRoZWlyIGRlZmF1bHQgdmFsdWVzIGFyZToKIC5QUAogLlBEIDAKQEAgLTMzOCw2ICszNDIsMTEgQEAKIFxmQnZpc2libGVcZlAsIHJlYWRsaW5lIHVzZXMgYSB2aXNpYmxlIGJlbGwgaWYgb25lIGlzIGF2YWlsYWJsZS4KIElmIHNldCB0byBcZkJhdWRpYmxlXGZQLCByZWFkbGluZSBhdHRlbXB0cyB0byByaW5nIHRoZSB0ZXJtaW5hbCdzIGJlbGwuCiAuVFAKKy5CIGJpbmRcLXR0eVwtc3BlY2lhbFwtY2hhcnMgKE9uKQorSWYgc2V0IHRvIFxmQk9uXGZQLCByZWFkbGluZSBhdHRlbXB0cyB0byBiaW5kIHRoZSBjb250cm9sIGNoYXJhY3RlcnMgIAordHJlYXRlZCBzcGVjaWFsbHkgYnkgdGhlIGtlcm5lbCdzIHRlcm1pbmFsIGRyaXZlciB0byB0aGVpciByZWFkbGluZQorZXF1aXZhbGVudHMuCisuVFAKIC5CIGNvbW1lbnRcLWJlZ2luIChgYCMnJykKIFRoZSBzdHJpbmcgdGhhdCBpcyBpbnNlcnRlZCBpbiBcZkJ2aVxmUCBtb2RlIHdoZW4gdGhlCiAuQiBpbnNlcnRcLWNvbW1lbnQKQEAgLTM2MCw3ICszNjksNyBAQAogemVyby4gIElmIHRoZSBudW1iZXIgb2YgcG9zc2libGUgY29tcGxldGlvbnMgaXMgZ3JlYXRlciB0aGFuCiBvciBlcXVhbCB0byB0aGUgdmFsdWUgb2YgdGhpcyB2YXJpYWJsZSwgdGhlIHVzZXIgaXMgYXNrZWQgd2hldGhlcgogb3Igbm90IGhlIHdpc2hlcyB0byB2aWV3IHRoZW07IG90aGVyd2lzZSB0aGV5IGFyZSBzaW1wbHkgbGlzdGVkCi1vbiB0aGUgdGVybWluYWwuCitvbiB0aGUgdGVybWluYWwuICBBIG5lZ2F0aXZlIHZhbHVlIGNhdXNlcyByZWFkbGluZSB0byBuZXZlciBhc2suCiAuVFAKIC5CIGNvbnZlcnRcLW1ldGEgKE9uKQogSWYgc2V0IHRvIFxmQk9uXGZQLCByZWFkbGluZSB3aWxsIGNvbnZlcnQgY2hhcmFjdGVycyB3aXRoIHRoZQpAQCAtMzkxLDkgKzQwMCw5IEBACiBJZiBzZXQgdG8gXGZCb25cZlAsIHRpbGRlIGV4cGFuc2lvbiBpcyBwZXJmb3JtZWQgd2hlbiByZWFkbGluZQogYXR0ZW1wdHMgd29yZCBjb21wbGV0aW9uLgogLlRQCi0uQiBoaXN0b3J5LXByZXNlcnZlLXBvaW50ICAgICAKKy5CIGhpc3RvcnlcLXByZXNlcnZlXC1wb2ludCAoT2ZmKQogSWYgc2V0IHRvIFxmQm9uXGZQLCB0aGUgaGlzdG9yeSBjb2RlIGF0dGVtcHRzIHRvIHBsYWNlIHBvaW50IGF0IHRoZSAKLXNhbWUgbG9jYXRpb24gb24gZWFjaCBoaXN0b3J5IGxpbmUgcmV0cml2ZWQgd2l0aCBcZkJwcmV2aW91cy1oaXN0b3J5XGZQIAorc2FtZSBsb2NhdGlvbiBvbiBlYWNoIGhpc3RvcnkgbGluZSByZXRyaWV2ZWQgd2l0aCBcZkJwcmV2aW91cy1oaXN0b3J5XGZQIAogb3IgXGZCbmV4dC1oaXN0b3J5XGZQLgogLlRQCiAuQiBob3Jpem9udGFsXC1zY3JvbGxcLW1vZGUgKE9mZikKQEAgLTQ2NSw2ICs0NzQsMTYgQEAKIHdvcmRzIHdoaWNoIGhhdmUgbW9yZSB0aGFuIG9uZSBwb3NzaWJsZSBjb21wbGV0aW9uIGNhdXNlIHRoZQogbWF0Y2hlcyB0byBiZSBsaXN0ZWQgaW1tZWRpYXRlbHkgaW5zdGVhZCBvZiByaW5naW5nIHRoZSBiZWxsLgogLlRQCisuQiBzaG93XC1hbGxcLWlmXC11bm1vZGlmaWVkIChPZmYpCitUaGlzIGFsdGVycyB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgY29tcGxldGlvbiBmdW5jdGlvbnMgaW4KK2EgZmFzaGlvbiBzaW1pbGFyIHRvIFxmQnNob3dcLWFsbFwtaWZcLWFtYmlndW91c1xmUC4KK0lmIHNldCB0bworLkJSIG9uICwgCit3b3JkcyB3aGljaCBoYXZlIG1vcmUgdGhhbiBvbmUgcG9zc2libGUgY29tcGxldGlvbiB3aXRob3V0IGFueQorcG9zc2libGUgcGFydGlhbCBjb21wbGV0aW9uICh0aGUgcG9zc2libGUgY29tcGxldGlvbnMgZG9uJ3Qgc2hhcmUgCithIGNvbW1vbiBwcmVmaXgpIGNhdXNlIHRoZSBtYXRjaGVzIHRvIGJlIGxpc3RlZCBpbW1lZGlhdGVseSBpbnN0ZWFkCitvZiByaW5naW5nIHRoZSBiZWxsLgorLlRQCiAuQiB2aXNpYmxlXC1zdGF0cyAoT2ZmKQogSWYgc2V0IHRvIFxmQk9uXGZQLCBhIGNoYXJhY3RlciBkZW5vdGluZyBhIGZpbGUncyB0eXBlIGFzIHJlcG9ydGVkICAKIGJ5IFxmSXN0YXRcZlAoMikgaXMgYXBwZW5kZWQgdG8gdGhlIGZpbGVuYW1lIHdoZW4gbGlzdGluZyBwb3NzaWJsZQpAQCAtNjgxLDYgKzcwMCw4IEBACiBpbnNlcnQgdGhlIFxmSW5cZlB0aCB3b3JkIGZyb20gdGhlIHByZXZpb3VzIGNvbW1hbmQgKHRoZSB3b3JkcwogaW4gdGhlIHByZXZpb3VzIGNvbW1hbmQgYmVnaW4gd2l0aCB3b3JkIDApLiAgQSBuZWdhdGl2ZSBhcmd1bWVudAogaW5zZXJ0cyB0aGUgXGZJblxmUHRoIHdvcmQgZnJvbSB0aGUgZW5kIG9mIHRoZSBwcmV2aW91cyBjb21tYW5kLgorT25jZSB0aGUgYXJndW1lbnQgXGZJblxmUCBpcyBjb21wdXRlZCwgdGhlIGFyZ3VtZW50IGlzIGV4dHJhY3RlZAorYXMgaWYgdGhlICIhXGZJblxmUCIgaGlzdG9yeSBleHBhbnNpb24gaGFkIGJlZW4gc3BlY2lmaWVkLgogLlRQCiAuQgogeWFua1wtbGFzdFwtYXJnIChNXC0uXF4sIE1cLV9cXikKQEAgLTY4OSw2ICs3MTAsOCBAQAogYmVoYXZlIGV4YWN0bHkgbGlrZSBcZkJ5YW5rXC1udGhcLWFyZ1xmUC4KIFN1Y2Nlc3NpdmUgY2FsbHMgdG8gXGZCeWFua1wtbGFzdFwtYXJnXGZQIG1vdmUgYmFjayB0aHJvdWdoIHRoZSBoaXN0b3J5CiBsaXN0LCBpbnNlcnRpbmcgdGhlIGxhc3QgYXJndW1lbnQgb2YgZWFjaCBsaW5lIGluIHR1cm4uCitUaGUgaGlzdG9yeSBleHBhbnNpb24gZmFjaWxpdGllcyBhcmUgdXNlZCB0byBleHRyYWN0IHRoZSBsYXN0IGFyZ3VtZW50LAorYXMgaWYgdGhlICIhJCIgaGlzdG9yeSBleHBhbnNpb24gaGFkIGJlZW4gc3BlY2lmaWVkLgogLlBECiAuU1MgQ29tbWFuZHMgZm9yIENoYW5naW5nIFRleHQKIC5QUApAQCAtNzg3LDYgKzgxMCwxMSBAQAogS2lsbCB0aGUgd29yZCBiZWhpbmQgcG9pbnQsIHVzaW5nIHdoaXRlIHNwYWNlIGFzIGEgd29yZCBib3VuZGFyeS4KIFRoZSBraWxsZWQgdGV4dCBpcyBzYXZlZCBvbiB0aGUga2lsbC1yaW5nLgogLlRQCisuQiB1bml4XC1maWxlbmFtZVwtcnVib3V0CitLaWxsIHRoZSB3b3JkIGJlaGluZCBwb2ludCwgdXNpbmcgd2hpdGUgc3BhY2UgYW5kIHRoZSBzbGFzaCBjaGFyYWN0ZXIKK2FzIHRoZSB3b3JkIGJvdW5kYXJpZXMuCitUaGUga2lsbGVkIHRleHQgaXMgc2F2ZWQgb24gdGhlIGtpbGwtcmluZy4KKy5UUAogLkIgZGVsZXRlXC1ob3Jpem9udGFsXC1zcGFjZSAoTVwtXGUpCiBEZWxldGUgYWxsIHNwYWNlcyBhbmQgdGFicyBhcm91bmQgcG9pbnQuCiAuVFAKQEAgLTg2OCw3ICs4OTYsNyBAQAogUmVwZWF0ZWQgZXhlY3V0aW9uIG9mIFxmQm1lbnVcLWNvbXBsZXRlXGZQIHN0ZXBzIHRocm91Z2ggdGhlIGxpc3QKIG9mIHBvc3NpYmxlIGNvbXBsZXRpb25zLCBpbnNlcnRpbmcgZWFjaCBtYXRjaCBpbiB0dXJuLgogQXQgdGhlIGVuZCBvZiB0aGUgbGlzdCBvZiBjb21wbGV0aW9ucywgdGhlIGJlbGwgaXMgcnVuZwotKHN1YmplY3QgdG8gdGhlIHNldHRpbmcgb2YgXEJiZWxsXC1zdHlsZVxmUCkKKyhzdWJqZWN0IHRvIHRoZSBzZXR0aW5nIG9mIFxmQmJlbGxcLXN0eWxlXGZQKQogYW5kIHRoZSBvcmlnaW5hbCB0ZXh0IGlzIHJlc3RvcmVkLgogQW4gYXJndW1lbnQgb2YgXGZJblxmUCBtb3ZlcyBcZkluXGZQIHBvc2l0aW9ucyBmb3J3YXJkIGluIHRoZSBsaXN0CiBvZiBtYXRjaGVzOyBhIG5lZ2F0aXZlIGFyZ3VtZW50IG1heSBiZSB1c2VkIHRvIG1vdmUgYmFja3dhcmQgCkBAIC05NzksNyArMTAwNyw3IEBACiAuVFAKIC5CIGR1bXBcLW1hY3JvcwogUHJpbnQgYWxsIG9mIHRoZSByZWFkbGluZSBrZXkgc2VxdWVuY2VzIGJvdW5kIHRvIG1hY3JvcyBhbmQgdGhlCi1zdHJpbmdzIHRoZXkgb3VwdXQuICBJZiBhIG51bWVyaWMgYXJndW1lbnQgaXMgc3VwcGxpZWQsCitzdHJpbmdzIHRoZXkgb3V0cHV0LiAgSWYgYSBudW1lcmljIGFyZ3VtZW50IGlzIHN1cHBsaWVkLAogdGhlIG91dHB1dCBpcyBmb3JtYXR0ZWQgaW4gc3VjaCBhIHdheSB0aGF0IGl0IGNhbiBiZSBtYWRlIHBhcnQKIG9mIGFuIFxmSWlucHV0cmNcZlAgZmlsZS4KIC5UUApkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvZG9jL3JlYWRsaW5lLmR2aSBiL3JlYWRsaW5lL2RvYy9yZWFkbGluZS5kdmkKaW5kZXggM2MxYzMwZi4uYmVhNTVlNiAxMDA2NDQKLS0tIGEvcmVhZGxpbmUvZG9jL3JlYWRsaW5lLmR2aQorKysgYi9yZWFkbGluZS9kb2MvcmVhZGxpbmUuZHZpCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2RvYy9yZWFkbGluZS5odG1sIGIvcmVhZGxpbmUvZG9jL3JlYWRsaW5lLmh0bWwKaW5kZXggNDI0ODVmNS4uMTFkNDk2YSAxMDA2NDQKLS0tIGEvcmVhZGxpbmUvZG9jL3JlYWRsaW5lLmh0bWwKKysrIGIvcmVhZGxpbmUvZG9jL3JlYWRsaW5lLmh0bWwKQEAgLTEsNiArMSw2IEBACiA8SFRNTD4KIDwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPgotPCEtLSBDcmVhdGVkIG9uIEp1bmUsIDI3ICAyMDAyIGJ5IHRleGkyaHRtbCAxLjY0IC0tPgorPCEtLSBDcmVhdGVkIG9uIERlY2VtYmVyLCA2ICAyMDA1IGJ5IHRleGkyaHRtbCAxLjY0IC0tPgogPCEtLSAKIFdyaXR0ZW4gYnk6IExpb25lbCBDb25zIDxMaW9uZWwuQ29uc0BjZXJuLmNoPiAob3JpZ2luYWwgYXV0aG9yKQogICAgICAgICAgICAgS2FybCBCZXJyeSAgPGthcmxAZnJlZWZyaWVuZHMub3JnPgpAQCAtMjcsMjEgKzI3LDIyIEBACiA8VEFCTEUgQ0VMTFBBRERJTkc9MSBDRUxMU1BBQ0lORz0xIEJPUkRFUj0wPgogPFRSPjxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMT5HTlUgUmVhZGxpbmUgTGlicmFyeTwvSDE+PC9QPjxQPgogCiBUaGlzIGRvY3VtZW50IGRlc2NyaWJlcyB0aGUgR05VIFJlYWRsaW5lIExpYnJhcnksIGEgdXRpbGl0eSB3aGljaCBhaWRzCi1pbiB0aGUgY29uc2lzdGVuY3kgb2YgdXNlciBpbnRlcmZhY2UgYWNyb3NzIGRpc2NyZXRlIHByb2dyYW1zIHRoYXQgbmVlZAotdG8gcHJvdmlkZSBhIGNvbW1hbmQgbGluZSBpbnRlcmZhY2UuCitpbiB0aGUgY29uc2lzdGVuY3kgb2YgdXNlciBpbnRlcmZhY2UgYWNyb3NzIGRpc2NyZXRlIHByb2dyYW1zIHdoaWNoCitwcm92aWRlIGEgY29tbWFuZCBsaW5lIGludGVyZmFjZS4KIDwvUD48UD4KIAogPEJMT0NLUVVPVEU+PFRBQkxFIEJPUkRFUj0wIENFTExTUEFDSU5HPTA+IAogPFRSPjxURCBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMSI+MS4gQ29tbWFuZCBMaW5lIEVkaXRpbmc8L0E+PC9URD48VEQ+Jm5ic3A7Jm5ic3A7PC9URD48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj5HTlUgUmVhZGxpbmUgVXNlcidzIE1hbnVhbC48L1REPjwvVFI+CiA8VFI+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMyI+Mi4gUHJvZ3JhbW1pbmcgd2l0aCBHTlUgUmVhZGxpbmU8L0E+PC9URD48VEQ+Jm5ic3A7Jm5ic3A7PC9URD48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj5HTlUgUmVhZGxpbmUgUHJvZ3JhbW1lcidzIE1hbnVhbC48L1REPjwvVFI+Ci08VFI+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+Q29uY2VwdCBJbmRleDwvQT48L1REPjxURD4mbmJzcDsmbmJzcDs8L1REPjxURCBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPkluZGV4IG9mIGNvbmNlcHRzIGRlc2NyaWJlZCBpbiB0aGlzIG1hbnVhbC48L1REPjwvVFI+Ci08VFI+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MCI+RnVuY3Rpb24gYW5kIFZhcmlhYmxlIEluZGV4PC9BPjwvVEQ+PFREPiZuYnNwOyZuYnNwOzwvVEQ+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+SW5kZXggb2YgZXh0ZXJuYWxseSB2aXNpYmxlIGZ1bmN0aW9ucworPFRSPjxURCBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDkiPkEuIENvcHlpbmcgVGhpcyBNYW51YWw8L0E+PC9URD48VEQ+Jm5ic3A7Jm5ic3A7PC9URD48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj5Db3B5aW5nIHRoaXMgbWFudWFsLjwvVEQ+PC9UUj4KKzxUUj48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUyIj5Db25jZXB0IEluZGV4PC9BPjwvVEQ+PFREPiZuYnNwOyZuYnNwOzwvVEQ+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+SW5kZXggb2YgY29uY2VwdHMgZGVzY3JpYmVkIGluIHRoaXMgbWFudWFsLjwvVEQ+PC9UUj4KKzxUUj48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUzIj5GdW5jdGlvbiBhbmQgVmFyaWFibGUgSW5kZXg8L0E+PC9URD48VEQ+Jm5ic3A7Jm5ic3A7PC9URD48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj5JbmRleCBvZiBleHRlcm5hbGx5IHZpc2libGUgZnVuY3Rpb25zCiAJCQkJICAgYW5kIHZhcmlhYmxlcy48L1REPjwvVFI+CiA8L1RBQkxFPjwvQkxPQ0tRVU9URT4KIDxQPgpAQCAtNTYsNyArNTcsNyBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjMiPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxBIE5BTUU9IkNvbW1hbmQgTGluZSBFZGl0aW5nIj48L0E+CkBAIC05MCw3ICs5MSw3IEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMyI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEgyPiAxLjEgSW50cm9kdWN0aW9uIHRvIExpbmUgRWRpdGluZyA8L0gyPgpAQCAtMTQ5LDcgKzE1MCw3IEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM5Ij4gJmd0OyZndDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDkiPkluZGV4PC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNTIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+CiA8L1RSPjwvVEFCTEU+CiA8SDI+IDEuMiBSZWFkbGluZSBJbnRlcmFjdGlvbiA8L0gyPgpAQCAtMTg4LDcgKzE4OSw3IEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM5Ij4gJmd0OyZndDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDkiPkluZGV4PC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNTIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+CiA8L1RSPjwvVEFCTEU+CiA8SDM+IDEuMi4xIFJlYWRsaW5lIEJhcmUgRXNzZW50aWFscyA8L0gzPgpAQCAtMjUwLDcgKzI1MSw3IEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM5Ij4gJmd0OyZndDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDkiPkluZGV4PC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNTIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+CiA8L1RSPjwvVEFCTEU+CiA8SDM+IDEuMi4yIFJlYWRsaW5lIE1vdmVtZW50IENvbW1hbmRzIDwvSDM+CkBAIC0yOTQsNyArMjk1LDcgQEAKIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzkiPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMz4gMS4yLjMgUmVhZGxpbmUgS2lsbGluZyBDb21tYW5kcyA8L0gzPgpAQCAtMzc5LDcgKzM4MCw3IEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM5Ij4gJmd0OyZndDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDkiPkluZGV4PC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNTIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+CiA8L1RSPjwvVEFCTEU+CiA8SDM+IDEuMi40IFJlYWRsaW5lIEFyZ3VtZW50cyA8L0gzPgpAQCAtNDE0LDcgKzQxNSw3IEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM5Ij4gJmd0OyZndDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDkiPkluZGV4PC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNTIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+CiA8L1RSPjwvVEFCTEU+CiA8SDM+IDEuMi41IFNlYXJjaGluZyBmb3IgQ29tbWFuZHMgaW4gdGhlIEhpc3RvcnkgPC9IMz4KQEAgLTQ3Niw3ICs0NzcsNyBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTMiPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMj4gMS4zIFJlYWRsaW5lIEluaXQgRmlsZSA8L0gyPgpAQCAtNTI3LDcgKzUyOCw3IEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxMyI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEgzPiAxLjMuMSBSZWFkbGluZSBJbml0IEZpbGUgU3ludGF4IDwvSDM+CkBAIC01NjIsNyArNTYzLDEyIEBACiA8L3ByZT48L3RkPjwvdHI+PC90YWJsZT48L1A+PFA+CiAKIFZhcmlhYmxlIG5hbWVzIGFuZCB2YWx1ZXMsIHdoZXJlIGFwcHJvcHJpYXRlLCBhcmUgcmVjb2duaXplZCB3aXRob3V0IHJlZ2FyZAotdG8gY2FzZS4gCit0byBjYXNlLiAgVW5yZWNvZ25pemVkIHZhcmlhYmxlIG5hbWVzIGFyZSBpZ25vcmVkLgorPC9QPjxQPgorCitCb29sZWFuIHZhcmlhYmxlcyAodGhvc2UgdGhhdCBjYW4gYmUgc2V0IHRvIG9uIG9yIG9mZikgYXJlIHNldCB0byBvbiBpZgordGhlIHZhbHVlIGlzIG51bGwgb3IgZW1wdHksIDxWQVI+b248L1ZBUj4gKGNhc2UtaW5zZW5zaXRpdmUpLCBvciAxLiAgQW55IG90aGVyCit2YWx1ZSByZXN1bHRzIGluIHRoZSB2YXJpYWJsZSBiZWluZyBzZXQgdG8gb2ZmLgogPC9QPjxQPgogCiBBIGdyZWF0IGRlYWwgb2YgcnVuLXRpbWUgYmVoYXZpb3IgaXMgY2hhbmdlYWJsZSB3aXRoIHRoZSBmb2xsb3dpbmcKQEAgLTU4MSw4ICs1ODcsMTUgQEAKIHRoZSB0ZXJtaW5hbCdzIGJlbGwuCiA8UD4KIAotPERUPjxDT0RFPmNvbW1lbnQtYmVnaW48L0NPREU+Cis8RFQ+PENPREU+YmluZC10dHktc3BlY2lhbC1jaGFyczwvQ09ERT4KIDxERD48QSBOQU1FPSJJRFg2Ij48L0E+CitJZiBzZXQgdG8gPFNBTVA+YG9uJzwvU0FNUD4sIFJlYWRsaW5lIGF0dGVtcHRzIHRvIGJpbmQgdGhlIGNvbnRyb2wgY2hhcmFjdGVycyAgCit0cmVhdGVkIHNwZWNpYWxseSBieSB0aGUga2VybmVsJ3MgdGVybWluYWwgZHJpdmVyIHRvIHRoZWlyIFJlYWRsaW5lCitlcXVpdmFsZW50cy4KKzxQPgorCis8RFQ+PENPREU+Y29tbWVudC1iZWdpbjwvQ09ERT4KKzxERD48QSBOQU1FPSJJRFg3Ij48L0E+CiBUaGUgc3RyaW5nIHRvIGluc2VydCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lIHdoZW4gdGhlCiA8Q09ERT5pbnNlcnQtY29tbWVudDwvQ09ERT4gY29tbWFuZCBpcyBleGVjdXRlZC4gIFRoZSBkZWZhdWx0IHZhbHVlCiBpcyA8Q09ERT4iIyI8L0NPREU+LgpAQCAtNTk1LDE4ICs2MDgsMTkgQEAKIDxQPgogCiA8RFQ+PENPREU+Y29tcGxldGlvbi1xdWVyeS1pdGVtczwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg3Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYOCI+PC9BPgogVGhlIG51bWJlciBvZiBwb3NzaWJsZSBjb21wbGV0aW9ucyB0aGF0IGRldGVybWluZXMgd2hlbiB0aGUgdXNlciBpcwotYXNrZWQgd2hldGhlciBoZSB3YW50cyB0byBzZWUgdGhlIGxpc3Qgb2YgcG9zc2liaWxpdGllcy4gIElmIHRoZQotbnVtYmVyIG9mIHBvc3NpYmxlIGNvbXBsZXRpb25zIGlzIGdyZWF0ZXIgdGhhbiB0aGlzIHZhbHVlLAorYXNrZWQgd2hldGhlciB0aGUgbGlzdCBvZiBwb3NzaWJpbGl0aWVzIHNob3VsZCBiZSBkaXNwbGF5ZWQuCitJZiB0aGUgbnVtYmVyIG9mIHBvc3NpYmxlIGNvbXBsZXRpb25zIGlzIGdyZWF0ZXIgdGhhbiB0aGlzIHZhbHVlLAogUmVhZGxpbmUgd2lsbCBhc2sgdGhlIHVzZXIgd2hldGhlciBvciBub3QgaGUgd2lzaGVzIHRvIHZpZXcKIHRoZW07IG90aGVyd2lzZSwgdGhleSBhcmUgc2ltcGx5IGxpc3RlZC4KIFRoaXMgdmFyaWFibGUgbXVzdCBiZSBzZXQgdG8gYW4gaW50ZWdlciB2YWx1ZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMC4KK0EgbmVnYXRpdmUgdmFsdWUgbWVhbnMgUmVhZGxpbmUgc2hvdWxkIG5ldmVyIGFzay4KIFRoZSBkZWZhdWx0IGxpbWl0IGlzIDxDT0RFPjEwMDwvQ09ERT4uCiA8UD4KIAogPERUPjxDT0RFPmNvbnZlcnQtbWV0YTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg4Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYOSI+PC9BPgogSWYgc2V0IHRvIDxTQU1QPmBvbic8L1NBTVA+LCBSZWFkbGluZSB3aWxsIGNvbnZlcnQgY2hhcmFjdGVycyB3aXRoIHRoZQogZWlnaHRoIGJpdCBzZXQgdG8gYW4gQVNDSUkga2V5IHNlcXVlbmNlIGJ5IHN0cmlwcGluZyB0aGUgZWlnaHRoCiBiaXQgYW5kIHByZWZpeGluZyBhbiA8S0JEPkVTQzwvS0JEPiBjaGFyYWN0ZXIsIGNvbnZlcnRpbmcgdGhlbSB0byBhCkBAIC02MTQsMTQgKzYyOCwxNCBAQAogPFA+CiAKIDxEVD48Q09ERT5kaXNhYmxlLWNvbXBsZXRpb248L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYOSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDEwIj48L0E+CiBJZiBzZXQgdG8gPFNBTVA+YE9uJzwvU0FNUD4sIFJlYWRsaW5lIHdpbGwgaW5oaWJpdCB3b3JkIGNvbXBsZXRpb24uCiBDb21wbGV0aW9uICBjaGFyYWN0ZXJzIHdpbGwgYmUgaW5zZXJ0ZWQgaW50byB0aGUgbGluZSBhcyBpZiB0aGV5IGhhZAogYmVlbiBtYXBwZWQgdG8gPENPREU+c2VsZi1pbnNlcnQ8L0NPREU+LiAgVGhlIGRlZmF1bHQgaXMgPFNBTVA+YG9mZic8L1NBTVA+LgogPFA+CiAKIDxEVD48Q09ERT5lZGl0aW5nLW1vZGU8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTAiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxMSI+PC9BPgogVGhlIDxDT0RFPmVkaXRpbmctbW9kZTwvQ09ERT4gdmFyaWFibGUgY29udHJvbHMgd2hpY2ggZGVmYXVsdCBzZXQgb2YKIGtleSBiaW5kaW5ncyBpcyB1c2VkLiAgQnkgZGVmYXVsdCwgUmVhZGxpbmUgc3RhcnRzIHVwIGluIEVtYWNzIGVkaXRpbmcKIG1vZGUsIHdoZXJlIHRoZSBrZXlzdHJva2VzIGFyZSBtb3N0IHNpbWlsYXIgdG8gRW1hY3MuICBUaGlzIHZhcmlhYmxlIGNhbiBiZQpAQCAtNjI5LDI2ICs2NDMsMjcgQEAKIDxQPgogCiA8RFQ+PENPREU+ZW5hYmxlLWtleXBhZDwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxMSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDEyIj48L0E+CiBXaGVuIHNldCB0byA8U0FNUD5gb24nPC9TQU1QPiwgUmVhZGxpbmUgd2lsbCB0cnkgdG8gZW5hYmxlIHRoZSBhcHBsaWNhdGlvbgoga2V5cGFkIHdoZW4gaXQgaXMgY2FsbGVkLiAgU29tZSBzeXN0ZW1zIG5lZWQgdGhpcyB0byBlbmFibGUgdGhlCiBhcnJvdyBrZXlzLiAgVGhlIGRlZmF1bHQgaXMgPFNBTVA+YG9mZic8L1NBTVA+LgogPFA+CiAKIDxEVD48Q09ERT5leHBhbmQtdGlsZGU8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTIiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxMyI+PC9BPgogSWYgc2V0IHRvIDxTQU1QPmBvbic8L1NBTVA+LCB0aWxkZSBleHBhbnNpb24gaXMgcGVyZm9ybWVkIHdoZW4gUmVhZGxpbmUKIGF0dGVtcHRzIHdvcmQgY29tcGxldGlvbi4gIFRoZSBkZWZhdWx0IGlzIDxTQU1QPmBvZmYnPC9TQU1QPi4KIDxQPgogCi08QSBOQU1FPSJJRFgxMyI+PC9BPgorPERUPjxDT0RFPmhpc3RvcnktcHJlc2VydmUtcG9pbnQ8L0NPREU+Cis8REQ+PEEgTkFNRT0iSURYMTQiPjwvQT4KIElmIHNldCB0byA8U0FNUD5gb24nPC9TQU1QPiwgdGhlIGhpc3RvcnkgY29kZSBhdHRlbXB0cyB0byBwbGFjZSBwb2ludCBhdCB0aGUKLXNhbWUgbG9jYXRpb24gb24gZWFjaCBoaXN0b3J5IGxpbmUgcmV0cml2ZWQgd2l0aCA8Q09ERT5wcmV2aW91cy1oaXN0b3J5PC9DT0RFPgotb3IgPENPREU+bmV4dC1oaXN0b3J5PC9DT0RFPi4KLTwvUD48UD4KK3NhbWUgbG9jYXRpb24gb24gZWFjaCBoaXN0b3J5IGxpbmUgcmV0cmlldmVkIHdpdGggPENPREU+cHJldmlvdXMtaGlzdG9yeTwvQ09ERT4KK29yIDxDT0RFPm5leHQtaGlzdG9yeTwvQ09ERT4uICBUaGUgZGVmYXVsdCBpcyA8U0FNUD5gb2ZmJzwvU0FNUD4uCis8UD4KIAogPERUPjxDT0RFPmhvcml6b250YWwtc2Nyb2xsLW1vZGU8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTQiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxNSI+PC9BPgogVGhpcyB2YXJpYWJsZSBjYW4gYmUgc2V0IHRvIGVpdGhlciA8U0FNUD5gb24nPC9TQU1QPiBvciA8U0FNUD5gb2ZmJzwvU0FNUD4uICBTZXR0aW5nIGl0CiB0byA8U0FNUD5gb24nPC9TQU1QPiBtZWFucyB0aGF0IHRoZSB0ZXh0IG9mIHRoZSBsaW5lcyBiZWluZyBlZGl0ZWQgd2lsbCBzY3JvbGwKIGhvcml6b250YWxseSBvbiBhIHNpbmdsZSBzY3JlZW4gbGluZSB3aGVuIHRoZXkgYXJlIGxvbmdlciB0aGFuIHRoZSB3aWR0aApAQCAtNjU3LDggKzY3Miw4IEBACiA8UD4KIAogPERUPjxDT0RFPmlucHV0LW1ldGE8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTUiPjwvQT4KLTxBIE5BTUU9IklEWDE2Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTYiPjwvQT4KKzxBIE5BTUU9IklEWDE3Ij48L0E+CiBJZiBzZXQgdG8gPFNBTVA+YG9uJzwvU0FNUD4sIFJlYWRsaW5lIHdpbGwgZW5hYmxlIGVpZ2h0LWJpdCBpbnB1dCAoaXQKIHdpbGwgbm90IGNsZWFyIHRoZSBlaWdodGggYml0IGluIHRoZSBjaGFyYWN0ZXJzIGl0IHJlYWRzKSwKIHJlZ2FyZGxlc3Mgb2Ygd2hhdCB0aGUgdGVybWluYWwgY2xhaW1zIGl0IGNhbiBzdXBwb3J0LiAgVGhlCkBAIC02NjcsNyArNjgyLDcgQEAKIDxQPgogCiA8RFQ+PENPREU+aXNlYXJjaC10ZXJtaW5hdG9yczwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxNyI+PC9BPgorPEREPjxBIE5BTUU9IklEWDE4Ij48L0E+CiBUaGUgc3RyaW5nIG9mIGNoYXJhY3RlcnMgdGhhdCBzaG91bGQgdGVybWluYXRlIGFuIGluY3JlbWVudGFsIHNlYXJjaCB3aXRob3V0CiBzdWJzZXF1ZW50bHkgZXhlY3V0aW5nIHRoZSBjaGFyYWN0ZXIgYXMgYSBjb21tYW5kIChzZWUgc2VjdGlvbiA8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzgiPjEuMi41IFNlYXJjaGluZyBmb3IgQ29tbWFuZHMgaW4gdGhlIEhpc3Rvcnk8L0E+KS4KIElmIHRoaXMgdmFyaWFibGUgaGFzIG5vdCBiZWVuIGdpdmVuIGEgdmFsdWUsIHRoZSBjaGFyYWN0ZXJzIDxLQkQ+RVNDPC9LQkQ+IGFuZApAQCAtNjc1LDcgKzY5MCw3IEBACiA8UD4KIAogPERUPjxDT0RFPmtleW1hcDwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxOCI+PC9BPgorPEREPjxBIE5BTUU9IklEWDE5Ij48L0E+CiBTZXRzIFJlYWRsaW5lJ3MgaWRlYSBvZiB0aGUgY3VycmVudCBrZXltYXAgZm9yIGtleSBiaW5kaW5nIGNvbW1hbmRzLgogQWNjZXB0YWJsZSA8Q09ERT5rZXltYXA8L0NPREU+IG5hbWVzIGFyZQogPENPREU+ZW1hY3M8L0NPREU+LApAQCAtNjk4LDE0ICs3MTMsMTQgQEAKIDxQPgogCiA8RFQ+PENPREU+bWFyay1tb2RpZmllZC1saW5lczwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxOSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDIwIj48L0E+CiBUaGlzIHZhcmlhYmxlLCB3aGVuIHNldCB0byA8U0FNUD5gb24nPC9TQU1QPiwgY2F1c2VzIFJlYWRsaW5lIHRvIGRpc3BsYXkgYW4KIGFzdGVyaXNrICg8U0FNUD5gKic8L1NBTVA+KSBhdCB0aGUgc3RhcnQgb2YgaGlzdG9yeSBsaW5lcyB3aGljaCBoYXZlIGJlZW4gbW9kaWZpZWQuCiBUaGlzIHZhcmlhYmxlIGlzIDxTQU1QPmBvZmYnPC9TQU1QPiBieSBkZWZhdWx0LgogPFA+CiAKIDxEVD48Q09ERT5tYXJrLXN5bWxpbmtlZC1kaXJlY3RvcmllczwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgyMCI+PC9BPgorPEREPjxBIE5BTUU9IklEWDIxIj48L0E+CiBJZiBzZXQgdG8gPFNBTVA+YG9uJzwvU0FNUD4sIGNvbXBsZXRlZCBuYW1lcyB3aGljaCBhcmUgc3ltYm9saWMgbGlua3MKIHRvIGRpcmVjdG9yaWVzIGhhdmUgYSBzbGFzaCBhcHBlbmRlZCAoc3ViamVjdCB0byB0aGUgdmFsdWUgb2YKIDxDT0RFPm1hcmstZGlyZWN0b3JpZXM8L0NPREU+KS4KQEAgLTcxMyw3ICs3MjgsNyBAQAogPFA+CiAKIDxEVD48Q09ERT5tYXRjaC1oaWRkZW4tZmlsZXM8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMjEiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgyMiI+PC9BPgogVGhpcyB2YXJpYWJsZSwgd2hlbiBzZXQgdG8gPFNBTVA+YG9uJzwvU0FNUD4sIGNhdXNlcyBSZWFkbGluZSB0byBtYXRjaCBmaWxlcyB3aG9zZQogbmFtZXMgYmVnaW4gd2l0aCBhIDxTQU1QPmAuJzwvU0FNUD4gKGhpZGRlbiBmaWxlcykgd2hlbiBwZXJmb3JtaW5nIGZpbGVuYW1lCiBjb21wbGV0aW9uLCB1bmxlc3MgdGhlIGxlYWRpbmcgPFNBTVA+YC4nPC9TQU1QPiBpcwpAQCAtNzIyLDE0ICs3MzcsMTQgQEAKIDxQPgogCiA8RFQ+PENPREU+b3V0cHV0LW1ldGE8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMjIiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgyMyI+PC9BPgogSWYgc2V0IHRvIDxTQU1QPmBvbic8L1NBTVA+LCBSZWFkbGluZSB3aWxsIGRpc3BsYXkgY2hhcmFjdGVycyB3aXRoIHRoZQogZWlnaHRoIGJpdCBzZXQgZGlyZWN0bHkgcmF0aGVyIHRoYW4gYXMgYSBtZXRhLXByZWZpeGVkIGVzY2FwZQogc2VxdWVuY2UuICBUaGUgZGVmYXVsdCBpcyA8U0FNUD5gb2ZmJzwvU0FNUD4uCiA8UD4KIAogPERUPjxDT0RFPnBhZ2UtY29tcGxldGlvbnM8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMjMiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgyNCI+PC9BPgogSWYgc2V0IHRvIDxTQU1QPmBvbic8L1NBTVA+LCBSZWFkbGluZSB1c2VzIGFuIGludGVybmFsIDxDT0RFPm1vcmU8L0NPREU+LWxpa2UgcGFnZXIKIHRvIGRpc3BsYXkgYSBzY3JlZW5mdWwgb2YgcG9zc2libGUgY29tcGxldGlvbnMgYXQgYSB0aW1lLgogVGhpcyB2YXJpYWJsZSBpcyA8U0FNUD5gb24nPC9TQU1QPiBieSBkZWZhdWx0LgpAQCAtNzQyLDcgKzc1Nyw3IEBACiA8UD4KIAogPERUPjxDT0RFPnNob3ctYWxsLWlmLWFtYmlndW91czwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgyNCI+PC9BPgorPEREPjxBIE5BTUU9IklEWDI1Ij48L0E+CiBUaGlzIGFsdGVycyB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgY29tcGxldGlvbiBmdW5jdGlvbnMuICBJZgogc2V0IHRvIDxTQU1QPmBvbic8L1NBTVA+LCAKIHdvcmRzIHdoaWNoIGhhdmUgbW9yZSB0aGFuIG9uZSBwb3NzaWJsZSBjb21wbGV0aW9uIGNhdXNlIHRoZQpAQCAtNzUwLDggKzc2NSwyMCBAQAogVGhlIGRlZmF1bHQgdmFsdWUgaXMgPFNBTVA+YG9mZic8L1NBTVA+LgogPFA+CiAKKzxEVD48Q09ERT5zaG93LWFsbC1pZi11bm1vZGlmaWVkPC9DT0RFPgorPEREPjxBIE5BTUU9IklEWDI2Ij48L0E+CitUaGlzIGFsdGVycyB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgY29tcGxldGlvbiBmdW5jdGlvbnMgaW4KK2EgZmFzaGlvbiBzaW1pbGFyIHRvIDxWQVI+c2hvdy1hbGwtaWYtYW1iaWd1b3VzPC9WQVI+LgorSWYgc2V0IHRvIDxTQU1QPmBvbic8L1NBTVA+LCAKK3dvcmRzIHdoaWNoIGhhdmUgbW9yZSB0aGFuIG9uZSBwb3NzaWJsZSBjb21wbGV0aW9uIHdpdGhvdXQgYW55Citwb3NzaWJsZSBwYXJ0aWFsIGNvbXBsZXRpb24gKHRoZSBwb3NzaWJsZSBjb21wbGV0aW9ucyBkb24ndCBzaGFyZQorYSBjb21tb24gcHJlZml4KSBjYXVzZSB0aGUgbWF0Y2hlcyB0byBiZSBsaXN0ZWQgaW1tZWRpYXRlbHkgaW5zdGVhZAorb2YgcmluZ2luZyB0aGUgYmVsbC4KK1RoZSBkZWZhdWx0IHZhbHVlIGlzIDxTQU1QPmBvZmYnPC9TQU1QPi4KKzxQPgorCiA8RFQ+PENPREU+dmlzaWJsZS1zdGF0czwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgyNSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDI3Ij48L0E+CiBJZiBzZXQgdG8gPFNBTVA+YG9uJzwvU0FNUD4sIGEgY2hhcmFjdGVyIGRlbm90aW5nIGEgZmlsZSdzIHR5cGUKIGlzIGFwcGVuZGVkIHRvIHRoZSBmaWxlbmFtZSB3aGVuIGxpc3RpbmcgcG9zc2libGUKIGNvbXBsZXRpb25zLiAgVGhlIGRlZmF1bHQgaXMgPFNBTVA+YG9mZic8L1NBTVA+LgpAQCAtOTEwLDcgKzkzNyw3IEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxMyI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEgzPiAxLjMuMiBDb25kaXRpb25hbCBJbml0IENvbnN0cnVjdHMgPC9IMz4KQEAgLTk5NSw3ICsxMDIyLDcgQEAKIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzEzIj4gJmd0OyZndDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDkiPkluZGV4PC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNTIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+CiA8L1RSPjwvVEFCTEU+CiA8SDM+IDEuMy4zIFNhbXBsZSBJbml0IEZpbGUgPC9IMz4KQEAgLTExMTgsNyArMTE0NSw3IEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMiI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEgyPiAxLjQgQmluZGFibGUgUmVhZGxpbmUgQ29tbWFuZHMgPC9IMj4KQEAgLTExNTksNjAgKzExODYsNjAgQEAKIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzIyIj4gJmd0OyZndDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDkiPkluZGV4PC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNTIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+CiA8L1RSPjwvVEFCTEU+CiA8SDM+IDEuNC4xIENvbW1hbmRzIEZvciBNb3ZpbmcgPC9IMz4KIDwhLS1kb2NpZDo6U0VDMTQ6Oi0tPgogPERMIENPTVBBQ1Q+Ci08QSBOQU1FPSJJRFgyNiI+PC9BPgorPEEgTkFNRT0iSURYMjgiPjwvQT4KIDxEVD48Q09ERT5iZWdpbm5pbmctb2YtbGluZSAoQy1hKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgyNyI+PC9BPgorPEREPjxBIE5BTUU9IklEWDI5Ij48L0E+CiBNb3ZlIHRvIHRoZSBzdGFydCBvZiB0aGUgY3VycmVudCBsaW5lLgogPFA+CiAKLTxBIE5BTUU9IklEWDI4Ij48L0E+Cis8QSBOQU1FPSJJRFgzMCI+PC9BPgogPERUPjxDT0RFPmVuZC1vZi1saW5lIChDLWUpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDI5Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYMzEiPjwvQT4KIE1vdmUgdG8gdGhlIGVuZCBvZiB0aGUgbGluZS4KIDxQPgogCi08QSBOQU1FPSJJRFgzMCI+PC9BPgorPEEgTkFNRT0iSURYMzIiPjwvQT4KIDxEVD48Q09ERT5mb3J3YXJkLWNoYXIgKEMtZik8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMzEiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgzMyI+PC9BPgogTW92ZSBmb3J3YXJkIGEgY2hhcmFjdGVyLgogPFA+CiAKLTxBIE5BTUU9IklEWDMyIj48L0E+Cis8QSBOQU1FPSJJRFgzNCI+PC9BPgogPERUPjxDT0RFPmJhY2t3YXJkLWNoYXIgKEMtYik8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMzMiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgzNSI+PC9BPgogTW92ZSBiYWNrIGEgY2hhcmFjdGVyLgogPFA+CiAKLTxBIE5BTUU9IklEWDM0Ij48L0E+Cis8QSBOQU1FPSJJRFgzNiI+PC9BPgogPERUPjxDT0RFPmZvcndhcmQtd29yZCAoTS1mKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgzNSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDM3Ij48L0E+CiBNb3ZlIGZvcndhcmQgdG8gdGhlIGVuZCBvZiB0aGUgbmV4dCB3b3JkLiAgV29yZHMgYXJlIGNvbXBvc2VkIG9mCiBsZXR0ZXJzIGFuZCBkaWdpdHMuCiA8UD4KIAotPEEgTkFNRT0iSURYMzYiPjwvQT4KKzxBIE5BTUU9IklEWDM4Ij48L0E+CiA8RFQ+PENPREU+YmFja3dhcmQtd29yZCAoTS1iKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgzNyI+PC9BPgorPEREPjxBIE5BTUU9IklEWDM5Ij48L0E+CiBNb3ZlIGJhY2sgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjdXJyZW50IG9yIHByZXZpb3VzIHdvcmQuICBXb3JkcyBhcmUKIGNvbXBvc2VkIG9mIGxldHRlcnMgYW5kIGRpZ2l0cy4KIDxQPgogCi08QSBOQU1FPSJJRFgzOCI+PC9BPgorPEEgTkFNRT0iSURYNDAiPjwvQT4KIDxEVD48Q09ERT5jbGVhci1zY3JlZW4gKEMtbCk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMzkiPjwvQT4KKzxERD48QSBOQU1FPSJJRFg0MSI+PC9BPgogQ2xlYXIgdGhlIHNjcmVlbiBhbmQgcmVkcmF3IHRoZSBjdXJyZW50IGxpbmUsCiBsZWF2aW5nIHRoZSBjdXJyZW50IGxpbmUgYXQgdGhlIHRvcCBvZiB0aGUgc2NyZWVuLgogPFA+CiAKLTxBIE5BTUU9IklEWDQwIj48L0E+Cis8QSBOQU1FPSJJRFg0MiI+PC9BPgogPERUPjxDT0RFPnJlZHJhdy1jdXJyZW50LWxpbmUgKCk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYNDEiPjwvQT4KKzxERD48QSBOQU1FPSJJRFg0MyI+PC9BPgogUmVmcmVzaCB0aGUgY3VycmVudCBsaW5lLiAgQnkgZGVmYXVsdCwgdGhpcyBpcyB1bmJvdW5kLgogPFA+CiAKQEAgLTEyMzAsNyArMTI1Nyw3IEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMiI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEgzPiAxLjQuMiBDb21tYW5kcyBGb3IgTWFuaXB1bGF0aW5nIFRoZSBIaXN0b3J5IDwvSDM+CkBAIC0xMjM4LDkgKzEyNjUsOSBAQAogPFA+CiAKIDxETCBDT01QQUNUPgotPEEgTkFNRT0iSURYNDIiPjwvQT4KKzxBIE5BTUU9IklEWDQ0Ij48L0E+CiA8RFQ+PENPREU+YWNjZXB0LWxpbmUgKE5ld2xpbmUgb3IgUmV0dXJuKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg0MyI+PC9BPgorPEREPjxBIE5BTUU9IklEWDQ1Ij48L0E+CiBBY2NlcHQgdGhlIGxpbmUgcmVnYXJkbGVzcyBvZiB3aGVyZSB0aGUgY3Vyc29yIGlzLgogSWYgdGhpcyBsaW5lIGlzCiBub24tZW1wdHksIGl0IG1heSBiZSBhZGRlZCB0byB0aGUgaGlzdG9yeSBsaXN0IGZvciBmdXR1cmUgcmVjYWxsIHdpdGgKQEAgLTEyNDksOTcgKzEyNzYsMTAxIEBACiB0byBpdHMgb3JpZ2luYWwgc3RhdGUuCiA8UD4KIAotPEEgTkFNRT0iSURYNDQiPjwvQT4KKzxBIE5BTUU9IklEWDQ2Ij48L0E+CiA8RFQ+PENPREU+cHJldmlvdXMtaGlzdG9yeSAoQy1wKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg0NSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDQ3Ij48L0E+CiBNb3ZlIGBiYWNrJyB0aHJvdWdoIHRoZSBoaXN0b3J5IGxpc3QsIGZldGNoaW5nIHRoZSBwcmV2aW91cyBjb21tYW5kLgogPFA+CiAKLTxBIE5BTUU9IklEWDQ2Ij48L0E+Cis8QSBOQU1FPSJJRFg0OCI+PC9BPgogPERUPjxDT0RFPm5leHQtaGlzdG9yeSAoQy1uKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg0NyI+PC9BPgorPEREPjxBIE5BTUU9IklEWDQ5Ij48L0E+CiBNb3ZlIGBmb3J3YXJkJyB0aHJvdWdoIHRoZSBoaXN0b3J5IGxpc3QsIGZldGNoaW5nIHRoZSBuZXh0IGNvbW1hbmQuCiA8UD4KIAotPEEgTkFNRT0iSURYNDgiPjwvQT4KKzxBIE5BTUU9IklEWDUwIj48L0E+CiA8RFQ+PENPREU+YmVnaW5uaW5nLW9mLWhpc3RvcnkgKE0tJiM2MDspPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDQ5Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYNTEiPjwvQT4KIE1vdmUgdG8gdGhlIGZpcnN0IGxpbmUgaW4gdGhlIGhpc3RvcnkuCiA8UD4KIAotPEEgTkFNRT0iSURYNTAiPjwvQT4KKzxBIE5BTUU9IklEWDUyIj48L0E+CiA8RFQ+PENPREU+ZW5kLW9mLWhpc3RvcnkgKE0tJiM2MjspPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDUxIj48L0E+Cis8REQ+PEEgTkFNRT0iSURYNTMiPjwvQT4KIE1vdmUgdG8gdGhlIGVuZCBvZiB0aGUgaW5wdXQgaGlzdG9yeSwgaS5lLiwgdGhlIGxpbmUgY3VycmVudGx5CiBiZWluZyBlbnRlcmVkLgogPFA+CiAKLTxBIE5BTUU9IklEWDUyIj48L0E+Cis8QSBOQU1FPSJJRFg1NCI+PC9BPgogPERUPjxDT0RFPnJldmVyc2Utc2VhcmNoLWhpc3RvcnkgKEMtcik8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYNTMiPjwvQT4KKzxERD48QSBOQU1FPSJJRFg1NSI+PC9BPgogU2VhcmNoIGJhY2t3YXJkIHN0YXJ0aW5nIGF0IHRoZSBjdXJyZW50IGxpbmUgYW5kIG1vdmluZyBgdXAnIHRocm91Z2gKIHRoZSBoaXN0b3J5IGFzIG5lY2Vzc2FyeS4gIFRoaXMgaXMgYW4gaW5jcmVtZW50YWwgc2VhcmNoLgogPFA+CiAKLTxBIE5BTUU9IklEWDU0Ij48L0E+Cis8QSBOQU1FPSJJRFg1NiI+PC9BPgogPERUPjxDT0RFPmZvcndhcmQtc2VhcmNoLWhpc3RvcnkgKEMtcyk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYNTUiPjwvQT4KKzxERD48QSBOQU1FPSJJRFg1NyI+PC9BPgogU2VhcmNoIGZvcndhcmQgc3RhcnRpbmcgYXQgdGhlIGN1cnJlbnQgbGluZSBhbmQgbW92aW5nIGBkb3duJyB0aHJvdWdoCiB0aGUgdGhlIGhpc3RvcnkgYXMgbmVjZXNzYXJ5LiAgVGhpcyBpcyBhbiBpbmNyZW1lbnRhbCBzZWFyY2guCiA8UD4KIAotPEEgTkFNRT0iSURYNTYiPjwvQT4KKzxBIE5BTUU9IklEWDU4Ij48L0E+CiA8RFQ+PENPREU+bm9uLWluY3JlbWVudGFsLXJldmVyc2Utc2VhcmNoLWhpc3RvcnkgKE0tcCk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYNTciPjwvQT4KKzxERD48QSBOQU1FPSJJRFg1OSI+PC9BPgogU2VhcmNoIGJhY2t3YXJkIHN0YXJ0aW5nIGF0IHRoZSBjdXJyZW50IGxpbmUgYW5kIG1vdmluZyBgdXAnCiB0aHJvdWdoIHRoZSBoaXN0b3J5IGFzIG5lY2Vzc2FyeSB1c2luZyBhIG5vbi1pbmNyZW1lbnRhbCBzZWFyY2gKIGZvciBhIHN0cmluZyBzdXBwbGllZCBieSB0aGUgdXNlci4KIDxQPgogCi08QSBOQU1FPSJJRFg1OCI+PC9BPgorPEEgTkFNRT0iSURYNjAiPjwvQT4KIDxEVD48Q09ERT5ub24taW5jcmVtZW50YWwtZm9yd2FyZC1zZWFyY2gtaGlzdG9yeSAoTS1uKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg1OSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDYxIj48L0E+CiBTZWFyY2ggZm9yd2FyZCBzdGFydGluZyBhdCB0aGUgY3VycmVudCBsaW5lIGFuZCBtb3ZpbmcgYGRvd24nCiB0aHJvdWdoIHRoZSB0aGUgaGlzdG9yeSBhcyBuZWNlc3NhcnkgdXNpbmcgYSBub24taW5jcmVtZW50YWwgc2VhcmNoCiBmb3IgYSBzdHJpbmcgc3VwcGxpZWQgYnkgdGhlIHVzZXIuCiA8UD4KIAotPEEgTkFNRT0iSURYNjAiPjwvQT4KKzxBIE5BTUU9IklEWDYyIj48L0E+CiA8RFQ+PENPREU+aGlzdG9yeS1zZWFyY2gtZm9yd2FyZCAoKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg2MSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDYzIj48L0E+CiBTZWFyY2ggZm9yd2FyZCB0aHJvdWdoIHRoZSBoaXN0b3J5IGZvciB0aGUgc3RyaW5nIG9mIGNoYXJhY3RlcnMKIGJldHdlZW4gdGhlIHN0YXJ0IG9mIHRoZSBjdXJyZW50IGxpbmUgYW5kIHRoZSBwb2ludC4KIFRoaXMgaXMgYSBub24taW5jcmVtZW50YWwgc2VhcmNoLgogQnkgZGVmYXVsdCwgdGhpcyBjb21tYW5kIGlzIHVuYm91bmQuCiA8UD4KIAotPEEgTkFNRT0iSURYNjIiPjwvQT4KKzxBIE5BTUU9IklEWDY0Ij48L0E+CiA8RFQ+PENPREU+aGlzdG9yeS1zZWFyY2gtYmFja3dhcmQgKCk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYNjMiPjwvQT4KKzxERD48QSBOQU1FPSJJRFg2NSI+PC9BPgogU2VhcmNoIGJhY2t3YXJkIHRocm91Z2ggdGhlIGhpc3RvcnkgZm9yIHRoZSBzdHJpbmcgb2YgY2hhcmFjdGVycwogYmV0d2VlbiB0aGUgc3RhcnQgb2YgdGhlIGN1cnJlbnQgbGluZSBhbmQgdGhlIHBvaW50LiAgVGhpcwogaXMgYSBub24taW5jcmVtZW50YWwgc2VhcmNoLiAgQnkgZGVmYXVsdCwgdGhpcyBjb21tYW5kIGlzIHVuYm91bmQuCiA8UD4KIAotPEEgTkFNRT0iSURYNjQiPjwvQT4KKzxBIE5BTUU9IklEWDY2Ij48L0E+CiA8RFQ+PENPREU+eWFuay1udGgtYXJnIChNLUMteSk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYNjUiPjwvQT4KKzxERD48QSBOQU1FPSJJRFg2NyI+PC9BPgogSW5zZXJ0IHRoZSBmaXJzdCBhcmd1bWVudCB0byB0aGUgcHJldmlvdXMgY29tbWFuZCAodXN1YWxseQogdGhlIHNlY29uZCB3b3JkIG9uIHRoZSBwcmV2aW91cyBsaW5lKSBhdCBwb2ludC4KIFdpdGggYW4gYXJndW1lbnQgPFZBUj5uPC9WQVI+LAogaW5zZXJ0IHRoZSA8VkFSPm48L1ZBUj50aCB3b3JkIGZyb20gdGhlIHByZXZpb3VzIGNvbW1hbmQgKHRoZSB3b3JkcwogaW4gdGhlIHByZXZpb3VzIGNvbW1hbmQgYmVnaW4gd2l0aCB3b3JkIDApLiAgQSBuZWdhdGl2ZSBhcmd1bWVudAogaW5zZXJ0cyB0aGUgPFZBUj5uPC9WQVI+dGggd29yZCBmcm9tIHRoZSBlbmQgb2YgdGhlIHByZXZpb3VzIGNvbW1hbmQuCitPbmNlIHRoZSBhcmd1bWVudCA8VkFSPm48L1ZBUj4gaXMgY29tcHV0ZWQsIHRoZSBhcmd1bWVudCBpcyBleHRyYWN0ZWQKK2FzIGlmIHRoZSA8U0FNUD5gITxWQVI+bjwvVkFSPic8L1NBTVA+IGhpc3RvcnkgZXhwYW5zaW9uIGhhZCBiZWVuIHNwZWNpZmllZC4KIDxQPgogCi08QSBOQU1FPSJJRFg2NiI+PC9BPgorPEEgTkFNRT0iSURYNjgiPjwvQT4KIDxEVD48Q09ERT55YW5rLWxhc3QtYXJnIChNLS4gb3IgTS1fKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg2NyI+PC9BPgorPEREPjxBIE5BTUU9IklEWDY5Ij48L0E+CiBJbnNlcnQgbGFzdCBhcmd1bWVudCB0byB0aGUgcHJldmlvdXMgY29tbWFuZCAodGhlIGxhc3Qgd29yZCBvZiB0aGUKIHByZXZpb3VzIGhpc3RvcnkgZW50cnkpLiAgV2l0aCBhbgogYXJndW1lbnQsIGJlaGF2ZSBleGFjdGx5IGxpa2UgPENPREU+eWFuay1udGgtYXJnPC9DT0RFPi4KIFN1Y2Nlc3NpdmUgY2FsbHMgdG8gPENPREU+eWFuay1sYXN0LWFyZzwvQ09ERT4gbW92ZSBiYWNrIHRocm91Z2ggdGhlIGhpc3RvcnkKIGxpc3QsIGluc2VydGluZyB0aGUgbGFzdCBhcmd1bWVudCBvZiBlYWNoIGxpbmUgaW4gdHVybi4KK1RoZSBoaXN0b3J5IGV4cGFuc2lvbiBmYWNpbGl0aWVzIGFyZSB1c2VkIHRvIGV4dHJhY3QgdGhlIGxhc3QgYXJndW1lbnQsCithcyBpZiB0aGUgPFNBTVA+YCEkJzwvU0FNUD4gaGlzdG9yeSBleHBhbnNpb24gaGFkIGJlZW4gc3BlY2lmaWVkLgogPFA+CiAKIDwvREw+CkBAIC0xMzU2LDcgKzEzODcsNyBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjIiPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMz4gMS40LjMgQ29tbWFuZHMgRm9yIENoYW5naW5nIFRleHQgPC9IMz4KQEAgLTEzNjQsNTIgKzEzOTUsNTIgQEAKIDxQPgogCiA8REwgQ09NUEFDVD4KLTxBIE5BTUU9IklEWDY4Ij48L0E+Cis8QSBOQU1FPSJJRFg3MCI+PC9BPgogPERUPjxDT0RFPmRlbGV0ZS1jaGFyIChDLWQpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDY5Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYNzEiPjwvQT4KIERlbGV0ZSB0aGUgY2hhcmFjdGVyIGF0IHBvaW50LiAgSWYgcG9pbnQgaXMgYXQgdGhlCiBiZWdpbm5pbmcgb2YgdGhlIGxpbmUsIHRoZXJlIGFyZSBubyBjaGFyYWN0ZXJzIGluIHRoZSBsaW5lLCBhbmQKIHRoZSBsYXN0IGNoYXJhY3RlciB0eXBlZCB3YXMgbm90IGJvdW5kIHRvIDxDT0RFPmRlbGV0ZS1jaGFyPC9DT0RFPiwgdGhlbgogcmV0dXJuIEVPRi4KIDxQPgogCi08QSBOQU1FPSJJRFg3MCI+PC9BPgorPEEgTkFNRT0iSURYNzIiPjwvQT4KIDxEVD48Q09ERT5iYWNrd2FyZC1kZWxldGUtY2hhciAoUnVib3V0KTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg3MSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDczIj48L0E+CiBEZWxldGUgdGhlIGNoYXJhY3RlciBiZWhpbmQgdGhlIGN1cnNvci4gIEEgbnVtZXJpYyBhcmd1bWVudCBtZWFucwogdG8ga2lsbCB0aGUgY2hhcmFjdGVycyBpbnN0ZWFkIG9mIGRlbGV0aW5nIHRoZW0uCiA8UD4KIAotPEEgTkFNRT0iSURYNzIiPjwvQT4KKzxBIE5BTUU9IklEWDc0Ij48L0E+CiA8RFQ+PENPREU+Zm9yd2FyZC1iYWNrd2FyZC1kZWxldGUtY2hhciAoKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg3MyI+PC9BPgorPEREPjxBIE5BTUU9IklEWDc1Ij48L0E+CiBEZWxldGUgdGhlIGNoYXJhY3RlciB1bmRlciB0aGUgY3Vyc29yLCB1bmxlc3MgdGhlIGN1cnNvciBpcyBhdCB0aGUKIGVuZCBvZiB0aGUgbGluZSwgaW4gd2hpY2ggY2FzZSB0aGUgY2hhcmFjdGVyIGJlaGluZCB0aGUgY3Vyc29yIGlzCiBkZWxldGVkLiAgQnkgZGVmYXVsdCwgdGhpcyBpcyBub3QgYm91bmQgdG8gYSBrZXkuCiA8UD4KIAotPEEgTkFNRT0iSURYNzQiPjwvQT4KKzxBIE5BTUU9IklEWDc2Ij48L0E+CiA8RFQ+PENPREU+cXVvdGVkLWluc2VydCAoQy1xIG9yIEMtdik8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYNzUiPjwvQT4KKzxERD48QSBOQU1FPSJJRFg3NyI+PC9BPgogQWRkIHRoZSBuZXh0IGNoYXJhY3RlciB0eXBlZCB0byB0aGUgbGluZSB2ZXJiYXRpbS4gIFRoaXMgaXMKIGhvdyB0byBpbnNlcnQga2V5IHNlcXVlbmNlcyBsaWtlIDxLQkQ+Qy1xPC9LQkQ+LCBmb3IgZXhhbXBsZS4KIDxQPgogCi08QSBOQU1FPSJJRFg3NiI+PC9BPgorPEEgTkFNRT0iSURYNzgiPjwvQT4KIDxEVD48Q09ERT50YWItaW5zZXJ0IChNLTxLQkQ+VEFCPC9LQkQ+KTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg3NyI+PC9BPgorPEREPjxBIE5BTUU9IklEWDc5Ij48L0E+CiBJbnNlcnQgYSB0YWIgY2hhcmFjdGVyLgogPFA+CiAKLTxBIE5BTUU9IklEWDc4Ij48L0E+Cis8QSBOQU1FPSJJRFg4MCI+PC9BPgogPERUPjxDT0RFPnNlbGYtaW5zZXJ0IChhLCBiLCBBLCAxLCAhLCA8c21hbGw+Li4uPC9zbWFsbD4pPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDc5Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYODEiPjwvQT4KIEluc2VydCB5b3Vyc2VsZi4KIDxQPgogCi08QSBOQU1FPSJJRFg4MCI+PC9BPgorPEEgTkFNRT0iSURYODIiPjwvQT4KIDxEVD48Q09ERT50cmFuc3Bvc2UtY2hhcnMgKEMtdCk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYODEiPjwvQT4KKzxERD48QSBOQU1FPSJJRFg4MyI+PC9BPgogRHJhZyB0aGUgY2hhcmFjdGVyIGJlZm9yZSB0aGUgY3Vyc29yIGZvcndhcmQgb3ZlcgogdGhlIGNoYXJhY3RlciBhdCB0aGUgY3Vyc29yLCBtb3ZpbmcgdGhlCiBjdXJzb3IgZm9yd2FyZCBhcyB3ZWxsLiAgSWYgdGhlIGluc2VydGlvbiBwb2ludApAQCAtMTQxOCwzOSArMTQ0OSwzOSBAQAogTmVnYXRpdmUgYXJndW1lbnRzIGhhdmUgbm8gZWZmZWN0LgogPFA+CiAKLTxBIE5BTUU9IklEWDgyIj48L0E+Cis8QSBOQU1FPSJJRFg4NCI+PC9BPgogPERUPjxDT0RFPnRyYW5zcG9zZS13b3JkcyAoTS10KTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg4MyI+PC9BPgorPEREPjxBIE5BTUU9IklEWDg1Ij48L0E+CiBEcmFnIHRoZSB3b3JkIGJlZm9yZSBwb2ludCBwYXN0IHRoZSB3b3JkIGFmdGVyIHBvaW50LAogbW92aW5nIHBvaW50IHBhc3QgdGhhdCB3b3JkIGFzIHdlbGwuCiBJZiB0aGUgaW5zZXJ0aW9uIHBvaW50IGlzIGF0IHRoZSBlbmQgb2YgdGhlIGxpbmUsIHRoaXMgdHJhbnNwb3NlcwogdGhlIGxhc3QgdHdvIHdvcmRzIG9uIHRoZSBsaW5lLgogPFA+CiAKLTxBIE5BTUU9IklEWDg0Ij48L0E+Cis8QSBOQU1FPSJJRFg4NiI+PC9BPgogPERUPjxDT0RFPnVwY2FzZS13b3JkIChNLXUpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDg1Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYODciPjwvQT4KIFVwcGVyY2FzZSB0aGUgY3VycmVudCAob3IgZm9sbG93aW5nKSB3b3JkLiAgV2l0aCBhIG5lZ2F0aXZlIGFyZ3VtZW50LAogdXBwZXJjYXNlIHRoZSBwcmV2aW91cyB3b3JkLCBidXQgZG8gbm90IG1vdmUgdGhlIGN1cnNvci4KIDxQPgogCi08QSBOQU1FPSJJRFg4NiI+PC9BPgorPEEgTkFNRT0iSURYODgiPjwvQT4KIDxEVD48Q09ERT5kb3duY2FzZS13b3JkIChNLWwpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDg3Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYODkiPjwvQT4KIExvd2VyY2FzZSB0aGUgY3VycmVudCAob3IgZm9sbG93aW5nKSB3b3JkLiAgV2l0aCBhIG5lZ2F0aXZlIGFyZ3VtZW50LAogbG93ZXJjYXNlIHRoZSBwcmV2aW91cyB3b3JkLCBidXQgZG8gbm90IG1vdmUgdGhlIGN1cnNvci4KIDxQPgogCi08QSBOQU1FPSJJRFg4OCI+PC9BPgorPEEgTkFNRT0iSURYOTAiPjwvQT4KIDxEVD48Q09ERT5jYXBpdGFsaXplLXdvcmQgKE0tYyk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYODkiPjwvQT4KKzxERD48QSBOQU1FPSJJRFg5MSI+PC9BPgogQ2FwaXRhbGl6ZSB0aGUgY3VycmVudCAob3IgZm9sbG93aW5nKSB3b3JkLiAgV2l0aCBhIG5lZ2F0aXZlIGFyZ3VtZW50LAogY2FwaXRhbGl6ZSB0aGUgcHJldmlvdXMgd29yZCwgYnV0IGRvIG5vdCBtb3ZlIHRoZSBjdXJzb3IuCiA8UD4KIAotPEEgTkFNRT0iSURYOTAiPjwvQT4KKzxBIE5BTUU9IklEWDkyIj48L0E+CiA8RFQ+PENPREU+b3ZlcndyaXRlLW1vZGUgKCk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYOTEiPjwvQT4KKzxERD48QSBOQU1FPSJJRFg5MyI+PC9BPgogVG9nZ2xlIG92ZXJ3cml0ZSBtb2RlLiAgV2l0aCBhbiBleHBsaWNpdCBwb3NpdGl2ZSBudW1lcmljIGFyZ3VtZW50LAogc3dpdGNoZXMgdG8gb3ZlcndyaXRlIG1vZGUuICBXaXRoIGFuIGV4cGxpY2l0IG5vbi1wb3NpdGl2ZSBudW1lcmljCiBhcmd1bWVudCwgc3dpdGNoZXMgdG8gaW5zZXJ0IG1vZGUuICBUaGlzIGNvbW1hbmQgYWZmZWN0cyBvbmx5CkBAIC0xNDgxLDcgKzE1MTIsNyBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjIiPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMz4gMS40LjQgS2lsbGluZyBBbmQgWWFua2luZyA8L0gzPgpAQCAtMTQ5MCw5OCArMTUyMSwxMDYgQEAKIAogPERMIENPTVBBQ1Q+CiAKLTxBIE5BTUU9IklEWDkyIj48L0E+Cis8QSBOQU1FPSJJRFg5NCI+PC9BPgogPERUPjxDT0RFPmtpbGwtbGluZSAoQy1rKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg5MyI+PC9BPgorPEREPjxBIE5BTUU9IklEWDk1Ij48L0E+CiBLaWxsIHRoZSB0ZXh0IGZyb20gcG9pbnQgdG8gdGhlIGVuZCBvZiB0aGUgbGluZS4KIDxQPgogCi08QSBOQU1FPSJJRFg5NCI+PC9BPgorPEEgTkFNRT0iSURYOTYiPjwvQT4KIDxEVD48Q09ERT5iYWNrd2FyZC1raWxsLWxpbmUgKEMteCBSdWJvdXQpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDk1Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYOTciPjwvQT4KIEtpbGwgYmFja3dhcmQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZS4KIDxQPgogCi08QSBOQU1FPSJJRFg5NiI+PC9BPgorPEEgTkFNRT0iSURYOTgiPjwvQT4KIDxEVD48Q09ERT51bml4LWxpbmUtZGlzY2FyZCAoQy11KTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg5NyI+PC9BPgorPEREPjxBIE5BTUU9IklEWDk5Ij48L0E+CiBLaWxsIGJhY2t3YXJkIGZyb20gdGhlIGN1cnNvciB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjdXJyZW50IGxpbmUuCiA8UD4KIAotPEEgTkFNRT0iSURYOTgiPjwvQT4KKzxBIE5BTUU9IklEWDEwMCI+PC9BPgogPERUPjxDT0RFPmtpbGwtd2hvbGUtbGluZSAoKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg5OSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDEwMSI+PC9BPgogS2lsbCBhbGwgY2hhcmFjdGVycyBvbiB0aGUgY3VycmVudCBsaW5lLCBubyBtYXR0ZXIgd2hlcmUgcG9pbnQgaXMuCiBCeSBkZWZhdWx0LCB0aGlzIGlzIHVuYm91bmQuCiA8UD4KIAotPEEgTkFNRT0iSURYMTAwIj48L0E+Cis8QSBOQU1FPSJJRFgxMDIiPjwvQT4KIDxEVD48Q09ERT5raWxsLXdvcmQgKE0tZCk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTAxIj48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTAzIj48L0E+CiBLaWxsIGZyb20gcG9pbnQgdG8gdGhlIGVuZCBvZiB0aGUgY3VycmVudCB3b3JkLCBvciBpZiBiZXR3ZWVuCiB3b3JkcywgdG8gdGhlIGVuZCBvZiB0aGUgbmV4dCB3b3JkLgogV29yZCBib3VuZGFyaWVzIGFyZSB0aGUgc2FtZSBhcyA8Q09ERT5mb3J3YXJkLXdvcmQ8L0NPREU+LgogPFA+CiAKLTxBIE5BTUU9IklEWDEwMiI+PC9BPgorPEEgTkFNRT0iSURYMTA0Ij48L0E+CiA8RFQ+PENPREU+YmFja3dhcmQta2lsbC13b3JkIChNLTxLQkQ+REVMPC9LQkQ+KTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxMDMiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxMDUiPjwvQT4KIEtpbGwgdGhlIHdvcmQgYmVoaW5kIHBvaW50LgogV29yZCBib3VuZGFyaWVzIGFyZSB0aGUgc2FtZSBhcyA8Q09ERT5iYWNrd2FyZC13b3JkPC9DT0RFPi4KIDxQPgogCi08QSBOQU1FPSJJRFgxMDQiPjwvQT4KKzxBIE5BTUU9IklEWDEwNiI+PC9BPgogPERUPjxDT0RFPnVuaXgtd29yZC1ydWJvdXQgKEMtdyk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTA1Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTA3Ij48L0E+CiBLaWxsIHRoZSB3b3JkIGJlaGluZCBwb2ludCwgdXNpbmcgd2hpdGUgc3BhY2UgYXMgYSB3b3JkIGJvdW5kYXJ5LgogVGhlIGtpbGxlZCB0ZXh0IGlzIHNhdmVkIG9uIHRoZSBraWxsLXJpbmcuCiA8UD4KIAotPEEgTkFNRT0iSURYMTA2Ij48L0E+Cis8QSBOQU1FPSJJRFgxMDgiPjwvQT4KKzxEVD48Q09ERT51bml4LWZpbGVuYW1lLXJ1Ym91dCAoKTwvQ09ERT4KKzxERD48QSBOQU1FPSJJRFgxMDkiPjwvQT4KK0tpbGwgdGhlIHdvcmQgYmVoaW5kIHBvaW50LCB1c2luZyB3aGl0ZSBzcGFjZSBhbmQgdGhlIHNsYXNoIGNoYXJhY3RlcgorYXMgdGhlIHdvcmQgYm91bmRhcmllcy4KK1RoZSBraWxsZWQgdGV4dCBpcyBzYXZlZCBvbiB0aGUga2lsbC1yaW5nLgorPFA+CisKKzxBIE5BTUU9IklEWDExMCI+PC9BPgogPERUPjxDT0RFPmRlbGV0ZS1ob3Jpem9udGFsLXNwYWNlICgpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDEwNyI+PC9BPgorPEREPjxBIE5BTUU9IklEWDExMSI+PC9BPgogRGVsZXRlIGFsbCBzcGFjZXMgYW5kIHRhYnMgYXJvdW5kIHBvaW50LiAgQnkgZGVmYXVsdCwgdGhpcyBpcyB1bmJvdW5kLgogPFA+CiAKLTxBIE5BTUU9IklEWDEwOCI+PC9BPgorPEEgTkFNRT0iSURYMTEyIj48L0E+CiA8RFQ+PENPREU+a2lsbC1yZWdpb24gKCk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTA5Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTEzIj48L0E+CiBLaWxsIHRoZSB0ZXh0IGluIHRoZSBjdXJyZW50IHJlZ2lvbi4KIEJ5IGRlZmF1bHQsIHRoaXMgY29tbWFuZCBpcyB1bmJvdW5kLgogPFA+CiAKLTxBIE5BTUU9IklEWDExMCI+PC9BPgorPEEgTkFNRT0iSURYMTE0Ij48L0E+CiA8RFQ+PENPREU+Y29weS1yZWdpb24tYXMta2lsbCAoKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxMTEiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxMTUiPjwvQT4KIENvcHkgdGhlIHRleHQgaW4gdGhlIHJlZ2lvbiB0byB0aGUga2lsbCBidWZmZXIsIHNvIGl0IGNhbiBiZSB5YW5rZWQKIHJpZ2h0IGF3YXkuICBCeSBkZWZhdWx0LCB0aGlzIGNvbW1hbmQgaXMgdW5ib3VuZC4KIDxQPgogCi08QSBOQU1FPSJJRFgxMTIiPjwvQT4KKzxBIE5BTUU9IklEWDExNiI+PC9BPgogPERUPjxDT0RFPmNvcHktYmFja3dhcmQtd29yZCAoKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxMTMiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxMTciPjwvQT4KIENvcHkgdGhlIHdvcmQgYmVmb3JlIHBvaW50IHRvIHRoZSBraWxsIGJ1ZmZlci4KIFRoZSB3b3JkIGJvdW5kYXJpZXMgYXJlIHRoZSBzYW1lIGFzIDxDT0RFPmJhY2t3YXJkLXdvcmQ8L0NPREU+LgogQnkgZGVmYXVsdCwgdGhpcyBjb21tYW5kIGlzIHVuYm91bmQuCiA8UD4KIAotPEEgTkFNRT0iSURYMTE0Ij48L0E+Cis8QSBOQU1FPSJJRFgxMTgiPjwvQT4KIDxEVD48Q09ERT5jb3B5LWZvcndhcmQtd29yZCAoKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxMTUiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxMTkiPjwvQT4KIENvcHkgdGhlIHdvcmQgZm9sbG93aW5nIHBvaW50IHRvIHRoZSBraWxsIGJ1ZmZlci4KIFRoZSB3b3JkIGJvdW5kYXJpZXMgYXJlIHRoZSBzYW1lIGFzIDxDT0RFPmZvcndhcmQtd29yZDwvQ09ERT4uCiBCeSBkZWZhdWx0LCB0aGlzIGNvbW1hbmQgaXMgdW5ib3VuZC4KIDxQPgogCi08QSBOQU1FPSJJRFgxMTYiPjwvQT4KKzxBIE5BTUU9IklEWDEyMCI+PC9BPgogPERUPjxDT0RFPnlhbmsgKEMteSk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTE3Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTIxIj48L0E+CiBZYW5rIHRoZSB0b3Agb2YgdGhlIGtpbGwgcmluZyBpbnRvIHRoZSBidWZmZXIgYXQgcG9pbnQuCiA8UD4KIAotPEEgTkFNRT0iSURYMTE4Ij48L0E+Cis8QSBOQU1FPSJJRFgxMjIiPjwvQT4KIDxEVD48Q09ERT55YW5rLXBvcCAoTS15KTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxMTkiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxMjMiPjwvQT4KIFJvdGF0ZSB0aGUga2lsbC1yaW5nLCBhbmQgeWFuayB0aGUgbmV3IHRvcC4gIFlvdSBjYW4gb25seSBkbyB0aGlzIGlmCiB0aGUgcHJpb3IgY29tbWFuZCBpcyA8Q09ERT55YW5rPC9DT0RFPiBvciA8Q09ERT55YW5rLXBvcDwvQ09ERT4uCiA8L0RMPgpAQCAtMTU5OCwyMyArMTYzNywyMyBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjIiPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMz4gMS40LjUgU3BlY2lmeWluZyBOdW1lcmljIEFyZ3VtZW50cyA8L0gzPgogPCEtLWRvY2lkOjpTRUMxODo6LS0+CiA8REwgQ09NUEFDVD4KIAotPEEgTkFNRT0iSURYMTIwIj48L0E+Cis8QSBOQU1FPSJJRFgxMjQiPjwvQT4KIDxEVD48Q09ERT5kaWdpdC1hcmd1bWVudCAoPEtCRD5NLTA8L0tCRD4sIDxLQkQ+TS0xPC9LQkQ+LCA8c21hbGw+Li4uPC9zbWFsbD4gPEtCRD5NLS08L0tCRD4pPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDEyMSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDEyNSI+PC9BPgogQWRkIHRoaXMgZGlnaXQgdG8gdGhlIGFyZ3VtZW50IGFscmVhZHkgYWNjdW11bGF0aW5nLCBvciBzdGFydCBhIG5ldwogYXJndW1lbnQuICA8S0JEPk0tLTwvS0JEPiBzdGFydHMgYSBuZWdhdGl2ZSBhcmd1bWVudC4KIDxQPgogCi08QSBOQU1FPSJJRFgxMjIiPjwvQT4KKzxBIE5BTUU9IklEWDEyNiI+PC9BPgogPERUPjxDT0RFPnVuaXZlcnNhbC1hcmd1bWVudCAoKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxMjMiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxMjciPjwvQT4KIFRoaXMgaXMgYW5vdGhlciB3YXkgdG8gc3BlY2lmeSBhbiBhcmd1bWVudC4KIElmIHRoaXMgY29tbWFuZCBpcyBmb2xsb3dlZCBieSBvbmUgb3IgbW9yZSBkaWdpdHMsIG9wdGlvbmFsbHkgd2l0aCBhCiBsZWFkaW5nIG1pbnVzIHNpZ24sIHRob3NlIGRpZ2l0cyBkZWZpbmUgdGhlIGFyZ3VtZW50LgpAQCAtMTY0MSw3ICsxNjgwLDcgQEAKIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzIyIj4gJmd0OyZndDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDkiPkluZGV4PC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNTIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+CiA8L1RSPjwvVEFCTEU+CiA8SDM+IDEuNC42IExldHRpbmcgUmVhZGxpbmUgVHlwZSBGb3IgWW91IDwvSDM+CkBAIC0xNjQ5LDMwICsxNjg4LDMwIEBACiA8UD4KIAogPERMIENPTVBBQ1Q+Ci08QSBOQU1FPSJJRFgxMjQiPjwvQT4KKzxBIE5BTUU9IklEWDEyOCI+PC9BPgogPERUPjxDT0RFPmNvbXBsZXRlICg8S0JEPlRBQjwvS0JEPik8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTI1Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTI5Ij48L0E+CiBBdHRlbXB0IHRvIHBlcmZvcm0gY29tcGxldGlvbiBvbiB0aGUgdGV4dCBiZWZvcmUgcG9pbnQuCiBUaGUgYWN0dWFsIGNvbXBsZXRpb24gcGVyZm9ybWVkIGlzIGFwcGxpY2F0aW9uLXNwZWNpZmljLgogVGhlIGRlZmF1bHQgaXMgZmlsZW5hbWUgY29tcGxldGlvbi4KIDxQPgogCi08QSBOQU1FPSJJRFgxMjYiPjwvQT4KKzxBIE5BTUU9IklEWDEzMCI+PC9BPgogPERUPjxDT0RFPnBvc3NpYmxlLWNvbXBsZXRpb25zIChNLT8pPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDEyNyI+PC9BPgorPEREPjxBIE5BTUU9IklEWDEzMSI+PC9BPgogTGlzdCB0aGUgcG9zc2libGUgY29tcGxldGlvbnMgb2YgdGhlIHRleHQgYmVmb3JlIHBvaW50LgogPFA+CiAKLTxBIE5BTUU9IklEWDEyOCI+PC9BPgorPEEgTkFNRT0iSURYMTMyIj48L0E+CiA8RFQ+PENPREU+aW5zZXJ0LWNvbXBsZXRpb25zIChNLSopPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDEyOSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDEzMyI+PC9BPgogSW5zZXJ0IGFsbCBjb21wbGV0aW9ucyBvZiB0aGUgdGV4dCBiZWZvcmUgcG9pbnQgdGhhdCB3b3VsZCBoYXZlCiBiZWVuIGdlbmVyYXRlZCBieSA8Q09ERT5wb3NzaWJsZS1jb21wbGV0aW9uczwvQ09ERT4uCiA8UD4KIAotPEEgTkFNRT0iSURYMTMwIj48L0E+Cis8QSBOQU1FPSJJRFgxMzQiPjwvQT4KIDxEVD48Q09ERT5tZW51LWNvbXBsZXRlICgpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDEzMSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDEzNSI+PC9BPgogU2ltaWxhciB0byA8Q09ERT5jb21wbGV0ZTwvQ09ERT4sIGJ1dCByZXBsYWNlcyB0aGUgd29yZCB0byBiZSBjb21wbGV0ZWQKIHdpdGggYSBzaW5nbGUgbWF0Y2ggZnJvbSB0aGUgbGlzdCBvZiBwb3NzaWJsZSBjb21wbGV0aW9ucy4KIFJlcGVhdGVkIGV4ZWN1dGlvbiBvZiA8Q09ERT5tZW51LWNvbXBsZXRlPC9DT0RFPiBzdGVwcyB0aHJvdWdoIHRoZSBsaXN0CkBAIC0xNjg3LDkgKzE3MjYsOSBAQAogYnkgZGVmYXVsdC4KIDxQPgogCi08QSBOQU1FPSJJRFgxMzIiPjwvQT4KKzxBIE5BTUU9IklEWDEzNiI+PC9BPgogPERUPjxDT0RFPmRlbGV0ZS1jaGFyLW9yLWxpc3QgKCk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTMzIj48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTM3Ij48L0E+CiBEZWxldGVzIHRoZSBjaGFyYWN0ZXIgdW5kZXIgdGhlIGN1cnNvciBpZiBub3QgYXQgdGhlIGJlZ2lubmluZyBvcgogZW5kIG9mIHRoZSBsaW5lIChsaWtlIDxDT0RFPmRlbGV0ZS1jaGFyPC9DT0RFPikuCiBJZiBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lLCBiZWhhdmVzIGlkZW50aWNhbGx5IHRvCkBAIC0xNzExLDI5ICsxNzUwLDI5IEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMiI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEgzPiAxLjQuNyBLZXlib2FyZCBNYWNyb3MgPC9IMz4KIDwhLS1kb2NpZDo6U0VDMjA6Oi0tPgogPERMIENPTVBBQ1Q+CiAKLTxBIE5BTUU9IklEWDEzNCI+PC9BPgorPEEgTkFNRT0iSURYMTM4Ij48L0E+CiA8RFQ+PENPREU+c3RhcnQta2JkLW1hY3JvIChDLXggKCk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTM1Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTM5Ij48L0E+CiBCZWdpbiBzYXZpbmcgdGhlIGNoYXJhY3RlcnMgdHlwZWQgaW50byB0aGUgY3VycmVudCBrZXlib2FyZCBtYWNyby4KIDxQPgogCi08QSBOQU1FPSJJRFgxMzYiPjwvQT4KKzxBIE5BTUU9IklEWDE0MCI+PC9BPgogPERUPjxDT0RFPmVuZC1rYmQtbWFjcm8gKEMteCApKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxMzciPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxNDEiPjwvQT4KIFN0b3Agc2F2aW5nIHRoZSBjaGFyYWN0ZXJzIHR5cGVkIGludG8gdGhlIGN1cnJlbnQga2V5Ym9hcmQgbWFjcm8KIGFuZCBzYXZlIHRoZSBkZWZpbml0aW9uLgogPFA+CiAKLTxBIE5BTUU9IklEWDEzOCI+PC9BPgorPEEgTkFNRT0iSURYMTQyIj48L0E+CiA8RFQ+PENPREU+Y2FsbC1sYXN0LWtiZC1tYWNybyAoQy14IGUpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDEzOSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDE0MyI+PC9BPgogUmUtZXhlY3V0ZSB0aGUgbGFzdCBrZXlib2FyZCBtYWNybyBkZWZpbmVkLCBieSBtYWtpbmcgdGhlIGNoYXJhY3RlcnMKIGluIHRoZSBtYWNybyBhcHBlYXIgYXMgaWYgdHlwZWQgYXQgdGhlIGtleWJvYXJkLgogPFA+CkBAIC0xNzUyLDk0ICsxNzkxLDk0IEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMiI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEgzPiAxLjQuOCBTb21lIE1pc2NlbGxhbmVvdXMgQ29tbWFuZHMgPC9IMz4KIDwhLS1kb2NpZDo6U0VDMjE6Oi0tPgogPERMIENPTVBBQ1Q+CiAKLTxBIE5BTUU9IklEWDE0MCI+PC9BPgorPEEgTkFNRT0iSURYMTQ0Ij48L0E+CiA8RFQ+PENPREU+cmUtcmVhZC1pbml0LWZpbGUgKEMteCBDLXIpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDE0MSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDE0NSI+PC9BPgogUmVhZCBpbiB0aGUgY29udGVudHMgb2YgdGhlIDxWQVI+aW5wdXRyYzwvVkFSPiBmaWxlLCBhbmQgaW5jb3Jwb3JhdGUKIGFueSBiaW5kaW5ncyBvciB2YXJpYWJsZSBhc3NpZ25tZW50cyBmb3VuZCB0aGVyZS4KIDxQPgogCi08QSBOQU1FPSJJRFgxNDIiPjwvQT4KKzxBIE5BTUU9IklEWDE0NiI+PC9BPgogPERUPjxDT0RFPmFib3J0IChDLWcpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDE0MyI+PC9BPgorPEREPjxBIE5BTUU9IklEWDE0NyI+PC9BPgogQWJvcnQgdGhlIGN1cnJlbnQgZWRpdGluZyBjb21tYW5kIGFuZAogcmluZyB0aGUgdGVybWluYWwncyBiZWxsIChzdWJqZWN0IHRvIHRoZSBzZXR0aW5nIG9mCiA8Q09ERT5iZWxsLXN0eWxlPC9DT0RFPikuCiA8UD4KIAotPEEgTkFNRT0iSURYMTQ0Ij48L0E+Cis8QSBOQU1FPSJJRFgxNDgiPjwvQT4KIDxEVD48Q09ERT5kby11cHBlcmNhc2UtdmVyc2lvbiAoTS1hLCBNLWIsIE0tPFZBUj54PC9WQVI+LCA8c21hbGw+Li4uPC9zbWFsbD4pPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDE0NSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDE0OSI+PC9BPgogSWYgdGhlIG1ldGFmaWVkIGNoYXJhY3RlciA8VkFSPng8L1ZBUj4gaXMgbG93ZXJjYXNlLCBydW4gdGhlIGNvbW1hbmQKIHRoYXQgaXMgYm91bmQgdG8gdGhlIGNvcnJlc3BvbmRpbmcgdXBwZXJjYXNlIGNoYXJhY3Rlci4KIDxQPgogCi08QSBOQU1FPSJJRFgxNDYiPjwvQT4KKzxBIE5BTUU9IklEWDE1MCI+PC9BPgogPERUPjxDT0RFPnByZWZpeC1tZXRhICg8S0JEPkVTQzwvS0JEPik8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTQ3Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTUxIj48L0E+CiBNZXRhZnkgdGhlIG5leHQgY2hhcmFjdGVyIHR5cGVkLiAgVGhpcyBpcyBmb3Iga2V5Ym9hcmRzCiB3aXRob3V0IGEgbWV0YSBrZXkuICBUeXBpbmcgPFNBTVA+YDxLQkQ+RVNDPC9LQkQ+IGYnPC9TQU1QPiBpcyBlcXVpdmFsZW50IHRvIHR5cGluZwogPEtCRD5NLWY8L0tCRD4uCiA8UD4KIAotPEEgTkFNRT0iSURYMTQ4Ij48L0E+Cis8QSBOQU1FPSJJRFgxNTIiPjwvQT4KIDxEVD48Q09ERT51bmRvIChDLV8gb3IgQy14IEMtdSk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTQ5Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTUzIj48L0E+CiBJbmNyZW1lbnRhbCB1bmRvLCBzZXBhcmF0ZWx5IHJlbWVtYmVyZWQgZm9yIGVhY2ggbGluZS4KIDxQPgogCi08QSBOQU1FPSJJRFgxNTAiPjwvQT4KKzxBIE5BTUU9IklEWDE1NCI+PC9BPgogPERUPjxDT0RFPnJldmVydC1saW5lIChNLXIpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDE1MSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDE1NSI+PC9BPgogVW5kbyBhbGwgY2hhbmdlcyBtYWRlIHRvIHRoaXMgbGluZS4gIFRoaXMgaXMgbGlrZSBleGVjdXRpbmcgdGhlIDxDT0RFPnVuZG88L0NPREU+CiBjb21tYW5kIGVub3VnaCB0aW1lcyB0byBnZXQgYmFjayB0byB0aGUgYmVnaW5uaW5nLgogPFA+CiAKLTxBIE5BTUU9IklEWDE1MiI+PC9BPgorPEEgTkFNRT0iSURYMTU2Ij48L0E+CiA8RFQ+PENPREU+dGlsZGUtZXhwYW5kIChNLX4pPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDE1MyI+PC9BPgorPEREPjxBIE5BTUU9IklEWDE1NyI+PC9BPgogUGVyZm9ybSB0aWxkZSBleHBhbnNpb24gb24gdGhlIGN1cnJlbnQgd29yZC4KIDxQPgogCi08QSBOQU1FPSJJRFgxNTQiPjwvQT4KKzxBIE5BTUU9IklEWDE1OCI+PC9BPgogPERUPjxDT0RFPnNldC1tYXJrIChDLUApPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDE1NSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDE1OSI+PC9BPgogU2V0IHRoZSBtYXJrIHRvIHRoZSBwb2ludC4gIElmIGEKIG51bWVyaWMgYXJndW1lbnQgaXMgc3VwcGxpZWQsIHRoZSBtYXJrIGlzIHNldCB0byB0aGF0IHBvc2l0aW9uLgogPFA+CiAKLTxBIE5BTUU9IklEWDE1NiI+PC9BPgorPEEgTkFNRT0iSURYMTYwIj48L0E+CiA8RFQ+PENPREU+ZXhjaGFuZ2UtcG9pbnQtYW5kLW1hcmsgKEMteCBDLXgpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDE1NyI+PC9BPgorPEREPjxBIE5BTUU9IklEWDE2MSI+PC9BPgogU3dhcCB0aGUgcG9pbnQgd2l0aCB0aGUgbWFyay4gIFRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbiBpcyBzZXQgdG8KIHRoZSBzYXZlZCBwb3NpdGlvbiwgYW5kIHRoZSBvbGQgY3Vyc29yIHBvc2l0aW9uIGlzIHNhdmVkIGFzIHRoZSBtYXJrLgogPFA+CiAKLTxBIE5BTUU9IklEWDE1OCI+PC9BPgorPEEgTkFNRT0iSURYMTYyIj48L0E+CiA8RFQ+PENPREU+Y2hhcmFjdGVyLXNlYXJjaCAoQy1dKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxNTkiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxNjMiPjwvQT4KIEEgY2hhcmFjdGVyIGlzIHJlYWQgYW5kIHBvaW50IGlzIG1vdmVkIHRvIHRoZSBuZXh0IG9jY3VycmVuY2Ugb2YgdGhhdAogY2hhcmFjdGVyLiAgQSBuZWdhdGl2ZSBjb3VudCBzZWFyY2hlcyBmb3IgcHJldmlvdXMgb2NjdXJyZW5jZXMuCiA8UD4KIAotPEEgTkFNRT0iSURYMTYwIj48L0E+Cis8QSBOQU1FPSJJRFgxNjQiPjwvQT4KIDxEVD48Q09ERT5jaGFyYWN0ZXItc2VhcmNoLWJhY2t3YXJkIChNLUMtXSk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTYxIj48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTY1Ij48L0E+CiBBIGNoYXJhY3RlciBpcyByZWFkIGFuZCBwb2ludCBpcyBtb3ZlZCB0byB0aGUgcHJldmlvdXMgb2NjdXJyZW5jZQogb2YgdGhhdCBjaGFyYWN0ZXIuICBBIG5lZ2F0aXZlIGNvdW50IHNlYXJjaGVzIGZvciBzdWJzZXF1ZW50CiBvY2N1cnJlbmNlcy4KIDxQPgogCi08QSBOQU1FPSJJRFgxNjIiPjwvQT4KKzxBIE5BTUU9IklEWDE2NiI+PC9BPgogPERUPjxDT0RFPmluc2VydC1jb21tZW50IChNLSMpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDE2MyI+PC9BPgorPEREPjxBIE5BTUU9IklEWDE2NyI+PC9BPgogV2l0aG91dCBhIG51bWVyaWMgYXJndW1lbnQsIHRoZSB2YWx1ZSBvZiB0aGUgPENPREU+Y29tbWVudC1iZWdpbjwvQ09ERT4KIHZhcmlhYmxlIGlzIGluc2VydGVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGN1cnJlbnQgbGluZS4KIElmIGEgbnVtZXJpYyBhcmd1bWVudCBpcyBzdXBwbGllZCwgdGhpcyBjb21tYW5kIGFjdHMgYXMgYSB0b2dnbGU6ICBpZgpAQCAtMTg1MCw0MyArMTg4OSw0MyBAQAogSW4gZWl0aGVyIGNhc2UsIHRoZSBsaW5lIGlzIGFjY2VwdGVkIGFzIGlmIGEgbmV3bGluZSBoYWQgYmVlbiB0eXBlZC4KIDxQPgogCi08QSBOQU1FPSJJRFgxNjQiPjwvQT4KKzxBIE5BTUU9IklEWDE2OCI+PC9BPgogPERUPjxDT0RFPmR1bXAtZnVuY3Rpb25zICgpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDE2NSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDE2OSI+PC9BPgogUHJpbnQgYWxsIG9mIHRoZSBmdW5jdGlvbnMgYW5kIHRoZWlyIGtleSBiaW5kaW5ncyB0byB0aGUKIFJlYWRsaW5lIG91dHB1dCBzdHJlYW0uICBJZiBhIG51bWVyaWMgYXJndW1lbnQgaXMgc3VwcGxpZWQsCiB0aGUgb3V0cHV0IGlzIGZvcm1hdHRlZCBpbiBzdWNoIGEgd2F5IHRoYXQgaXQgY2FuIGJlIG1hZGUgcGFydAogb2YgYW4gPFZBUj5pbnB1dHJjPC9WQVI+IGZpbGUuICBUaGlzIGNvbW1hbmQgaXMgdW5ib3VuZCBieSBkZWZhdWx0LgogPFA+CiAKLTxBIE5BTUU9IklEWDE2NiI+PC9BPgorPEEgTkFNRT0iSURYMTcwIj48L0E+CiA8RFQ+PENPREU+ZHVtcC12YXJpYWJsZXMgKCk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTY3Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTcxIj48L0E+CiBQcmludCBhbGwgb2YgdGhlIHNldHRhYmxlIHZhcmlhYmxlcyBhbmQgdGhlaXIgdmFsdWVzIHRvIHRoZQogUmVhZGxpbmUgb3V0cHV0IHN0cmVhbS4gIElmIGEgbnVtZXJpYyBhcmd1bWVudCBpcyBzdXBwbGllZCwKIHRoZSBvdXRwdXQgaXMgZm9ybWF0dGVkIGluIHN1Y2ggYSB3YXkgdGhhdCBpdCBjYW4gYmUgbWFkZSBwYXJ0CiBvZiBhbiA8VkFSPmlucHV0cmM8L1ZBUj4gZmlsZS4gIFRoaXMgY29tbWFuZCBpcyB1bmJvdW5kIGJ5IGRlZmF1bHQuCiA8UD4KIAotPEEgTkFNRT0iSURYMTY4Ij48L0E+Cis8QSBOQU1FPSJJRFgxNzIiPjwvQT4KIDxEVD48Q09ERT5kdW1wLW1hY3JvcyAoKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxNjkiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxNzMiPjwvQT4KIFByaW50IGFsbCBvZiB0aGUgUmVhZGxpbmUga2V5IHNlcXVlbmNlcyBib3VuZCB0byBtYWNyb3MgYW5kIHRoZQogc3RyaW5ncyB0aGV5IG91dHB1dC4gIElmIGEgbnVtZXJpYyBhcmd1bWVudCBpcyBzdXBwbGllZCwKIHRoZSBvdXRwdXQgaXMgZm9ybWF0dGVkIGluIHN1Y2ggYSB3YXkgdGhhdCBpdCBjYW4gYmUgbWFkZSBwYXJ0CiBvZiBhbiA8VkFSPmlucHV0cmM8L1ZBUj4gZmlsZS4gIFRoaXMgY29tbWFuZCBpcyB1bmJvdW5kIGJ5IGRlZmF1bHQuCiA8UD4KIAotPEEgTkFNRT0iSURYMTcwIj48L0E+Cis8QSBOQU1FPSJJRFgxNzQiPjwvQT4KIDxEVD48Q09ERT5lbWFjcy1lZGl0aW5nLW1vZGUgKEMtZSk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTcxIj48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTc1Ij48L0E+CiBXaGVuIGluIDxDT0RFPnZpPC9DT0RFPiBjb21tYW5kIG1vZGUsIHRoaXMgY2F1c2VzIGEgc3dpdGNoIHRvIDxDT0RFPmVtYWNzPC9DT0RFPgogZWRpdGluZyBtb2RlLgogPFA+CiAKLTxBIE5BTUU9IklEWDE3MiI+PC9BPgorPEEgTkFNRT0iSURYMTc2Ij48L0E+CiA8RFQ+PENPREU+dmktZWRpdGluZy1tb2RlIChNLUMtaik8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTczIj48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTc3Ij48L0E+CiBXaGVuIGluIDxDT0RFPmVtYWNzPC9DT0RFPiBlZGl0aW5nIG1vZGUsIHRoaXMgY2F1c2VzIGEgc3dpdGNoIHRvIDxDT0RFPnZpPC9DT0RFPgogZWRpdGluZyBtb2RlLgogPFA+CkBAIC0xOTA1LDcgKzE5NDQsNyBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjMiPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMj4gMS41IFJlYWRsaW5lIHZpIE1vZGUgPC9IMj4KQEAgLTE5MzMsMTEgKzE5NzIsMTEgQEAKIDwvUD48UD4KIAogVGhpcyBkb2N1bWVudCBkZXNjcmliZXMgdGhlIEdOVSBSZWFkbGluZSBMaWJyYXJ5LCBhIHV0aWxpdHkgZm9yIGFpZGluZwotaW4gdGhlIGNvbnNpdGVuY3kgb2YgdXNlciBpbnRlcmZhY2UgYWNyb3NzIGRpc2NyZXRlIHByb2dyYW1zIHRoYXQgbmVlZAoraW4gdGhlIGNvbnNpc3RlbmN5IG9mIHVzZXIgaW50ZXJmYWNlIGFjcm9zcyBkaXNjcmV0ZSBwcm9ncmFtcyB0aGF0IG5lZWQKIHRvIHByb3ZpZGUgYSBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLgogPC9QPjxQPgogCi1Db3B5cmlnaHQgKEMpIDE5ODgtMjAwMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KK0NvcHlyaWdodCAoQykgMTk4OC0yMDA1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogPC9QPjxQPgogCiBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gbWFrZSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMgb2YKQEAgLTE5NjUsMTAgKzIwMDQsMTAgQEAKIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzI0Ij4gJmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPlsgJmx0OyZsdDsgXTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfVG9wIj4gVXAgPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WyAmZ3Q7Jmd0OyBdPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ5Ij4gJmd0OyZndDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDkiPkluZGV4PC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNTIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+CiA8L1RSPjwvVEFCTEU+CiA8SDE+IDIuIFByb2dyYW1taW5nIHdpdGggR05VIFJlYWRsaW5lIDwvSDE+CkBAIC0yMDA0LDEwICsyMDQzLDEwIEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyNSI+ICZndDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bICZsdDsmbHQ7IF08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjMiPiBVcCA8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bICZndDsmZ3Q7IF08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDkiPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMj4gMi4xIEJhc2ljIEJlaGF2aW9yIDwvSDI+CkBAIC0yMDIxLDggKzIwNjAsOCBAQAogPENPREU+Z2V0cygpPC9DT0RFPiBvciA8Q09ERT5mZ2V0cygpPC9DT0RFPi4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMTc0Ij48L0E+Ci08QSBOQU1FPSJJRFgxNzUiPjwvQT4KKzxBIE5BTUU9IklEWDE3OCI+PC9BPgorPEEgTkFNRT0iSURYMTc5Ij48L0E+CiA8L1A+PFA+CiAKIFRoZSBmdW5jdGlvbiA8Q09ERT5yZWFkbGluZSgpPC9DT0RFPiBwcmludHMgYSBwcm9tcHQgPFZBUj5wcm9tcHQ8L1ZBUj4KQEAgLTIxMzEsNyArMjE3MCw3IEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyOCI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEgyPiAyLjIgQ3VzdG9tIEZ1bmN0aW9ucyA8L0gyPgpAQCAtMjE4MSw3ICsyMjIwLDcgQEAKIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzI4Ij4gJmd0OyZndDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDkiPkluZGV4PC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNTIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+CiA8L1RSPjwvVEFCTEU+CiA8SDM+IDIuMi4xIFJlYWRsaW5lIFR5cGVkZWZzIDwvSDM+CkBAIC0yMjc4LDcgKzIzMTcsNyBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMz4gMi4yLjIgV3JpdGluZyBhIE5ldyBGdW5jdGlvbiA8L0gzPgpAQCAtMjMxMyw2ICsyMzUyLDggQEAKIAogQSBjb21tYW5kIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gMCBpZiBpdHMgYWN0aW9uIGNvbXBsZXRlcyBzdWNjZXNzZnVsbHksCiBhbmQgYSBub24temVybyB2YWx1ZSBpZiBzb21lIGVycm9yIG9jY3Vycy4KK1RoaXMgaXMgdGhlIGNvbnZlbnRpb24gb2JleWVkIGJ5IGFsbCBvZiB0aGUgYnVpbHRpbiBSZWFkbGluZSBiaW5kYWJsZQorY29tbWFuZCBmdW5jdGlvbnMuCiA8L1A+PFA+CiAKIDxBIE5BTUU9IlJlYWRsaW5lIFZhcmlhYmxlcyI+PC9BPgpAQCAtMjMyMywxMCArMjM2NCwxMCBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjkiPiAmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjkiPiAmbHQ7Jmx0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMyI+IFVwIDwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPlsgJmd0OyZndDsgXTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEgyPiAyLjMgUmVhZGxpbmUgVmFyaWFibGVzIDwvSDI+CkBAIC0yMzM2LDcgKzIzNzcsNyBAQAogVGhlc2UgdmFyaWFibGVzIGFyZSBhdmFpbGFibGUgdG8gZnVuY3Rpb24gd3JpdGVycy4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMTc2Ij48L0E+Cis8QSBOQU1FPSJJRFgxODAiPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IGNoYXIgKiA8Qj5ybF9saW5lX2J1ZmZlcjwvQj4KIDxERD5UaGlzIGlzIHRoZSBsaW5lIGdhdGhlcmVkIHNvIGZhci4gIFlvdSBhcmUgd2VsY29tZSB0byBtb2RpZnkgdGhlCkBAIC0yMzQ2LDcgKzIzODcsNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMTc3Ij48L0E+Cis8QSBOQU1FPSJJRFgxODEiPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IGludCA8Qj5ybF9wb2ludDwvQj4KIDxERD5UaGUgb2Zmc2V0IG9mIHRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbiBpbiA8Q09ERT5ybF9saW5lX2J1ZmZlcjwvQ09ERT4KQEAgLTIzNTQsNyArMjM5NSw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgxNzgiPjwvQT4KKzxBIE5BTUU9IklEWDE4MiI+PC9BPgogPERMPgogPERUPjxVPlZhcmlhYmxlOjwvVT4gaW50IDxCPnJsX2VuZDwvQj4KIDxERD5UaGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgcHJlc2VudCBpbiA8Q09ERT5ybF9saW5lX2J1ZmZlcjwvQ09ERT4uICBXaGVuCkBAIC0yMzYzLDcgKzI0MDQsNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMTc5Ij48L0E+Cis8QSBOQU1FPSJJRFgxODMiPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IGludCA8Qj5ybF9tYXJrPC9CPgogPEREPlRoZSA8VkFSPm1hcms8L1ZBUj4gKHNhdmVkIHBvc2l0aW9uKSBpbiB0aGUgY3VycmVudCBsaW5lLiAgSWYgc2V0LCB0aGUgbWFyawpAQCAtMjM3MSw3ICsyNDEyLDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDE4MCI+PC9BPgorPEEgTkFNRT0iSURYMTg0Ij48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBpbnQgPEI+cmxfZG9uZTwvQj4KIDxERD5TZXR0aW5nIHRoaXMgdG8gYSBub24temVybyB2YWx1ZSBjYXVzZXMgUmVhZGxpbmUgdG8gcmV0dXJuIHRoZSBjdXJyZW50CkBAIC0yMzc5LDcgKzI0MjAsNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMTgxIj48L0E+Cis8QSBOQU1FPSJJRFgxODUiPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IGludCA8Qj5ybF9udW1fY2hhcnNfdG9fcmVhZDwvQj4KIDxERD5TZXR0aW5nIHRoaXMgdG8gYSBwb3NpdGl2ZSB2YWx1ZSBiZWZvcmUgY2FsbGluZyA8Q09ERT5yZWFkbGluZSgpPC9DT0RFPiBjYXVzZXMKQEAgLTIzODgsNyArMjQyOSw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgxODIiPjwvQT4KKzxBIE5BTUU9IklEWDE4NiI+PC9BPgogPERMPgogPERUPjxVPlZhcmlhYmxlOjwvVT4gaW50IDxCPnJsX3BlbmRpbmdfaW5wdXQ8L0I+CiA8REQ+U2V0dGluZyB0aGlzIHRvIGEgdmFsdWUgbWFrZXMgaXQgdGhlIG5leHQga2V5c3Ryb2tlIHJlYWQuICBUaGlzIGlzIGEKQEAgLTIzOTYsNyArMjQzNyw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgxODMiPjwvQT4KKzxBIE5BTUU9IklEWDE4NyI+PC9BPgogPERMPgogPERUPjxVPlZhcmlhYmxlOjwvVT4gaW50IDxCPnJsX2Rpc3BhdGNoaW5nPC9CPgogPEREPlNldCB0byBhIG5vbi16ZXJvIHZhbHVlIGlmIGEgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkIGZyb20gYSBrZXkgYmluZGluZzsKQEAgLTI0MDUsNyArMjQ0Niw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgxODQiPjwvQT4KKzxBIE5BTUU9IklEWDE4OCI+PC9BPgogPERMPgogPERUPjxVPlZhcmlhYmxlOjwvVT4gaW50IDxCPnJsX2VyYXNlX2VtcHR5X2xpbmU8L0I+CiA8REQ+U2V0dGluZyB0aGlzIHRvIGEgbm9uLXplcm8gdmFsdWUgY2F1c2VzIFJlYWRsaW5lIHRvIGNvbXBsZXRlbHkgZXJhc2UKQEAgLTI0MTUsNyArMjQ1Niw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgxODUiPjwvQT4KKzxBIE5BTUU9IklEWDE4OSI+PC9BPgogPERMPgogPERUPjxVPlZhcmlhYmxlOjwvVT4gY2hhciAqIDxCPnJsX3Byb21wdDwvQj4KIDxERD5UaGUgcHJvbXB0IFJlYWRsaW5lIHVzZXMuICBUaGlzIGlzIHNldCBmcm9tIHRoZSBhcmd1bWVudCB0bwpAQCAtMjQyNSw3ICsyNDY2LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDE4NiI+PC9BPgorPEEgTkFNRT0iSURYMTkwIj48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBpbnQgPEI+cmxfYWxyZWFkeV9wcm9tcHRlZDwvQj4KIDxERD5JZiBhbiBhcHBsaWNhdGlvbiB3aXNoZXMgdG8gZGlzcGxheSB0aGUgcHJvbXB0IGl0c2VsZiwgcmF0aGVyIHRoYW4gaGF2ZQpAQCAtMjQzOCwxNCArMjQ3OSwxNCBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMTg3Ij48L0E+Cis8QSBOQU1FPSJJRFgxOTEiPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IGNvbnN0IGNoYXIgKiA8Qj5ybF9saWJyYXJ5X3ZlcnNpb248L0I+CiA8REQ+VGhlIHZlcnNpb24gbnVtYmVyIG9mIHRoaXMgcmV2aXNpb24gb2YgdGhlIGxpYnJhcnkuCiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgxODgiPjwvQT4KKzxBIE5BTUU9IklEWDE5MiI+PC9BPgogPERMPgogPERUPjxVPlZhcmlhYmxlOjwvVT4gaW50IDxCPnJsX3JlYWRsaW5lX3ZlcnNpb248L0I+CiA8REQ+QW4gaW50ZWdlciBlbmNvZGluZyB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LiAgVGhlIGVuY29kaW5nIGlzCkBAIC0yNDU2LDcgKzI0OTcsNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMTg5Ij48L0E+Cis8QSBOQU1FPSJJRFgxOTMiPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IGludCA8Qj5ybF9nbnVfcmVhZGxpbmVfcDwvQj4KIDxERD5BbHdheXMgc2V0IHRvIDEsIGRlbm90aW5nIHRoYXQgdGhpcyBpcyBHTlUgcmVhZGxpbmUgcmF0aGVyIHRoYW4gc29tZQpAQCAtMjQ2NCw3ICsyNTA1LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDE5MCI+PC9BPgorPEEgTkFNRT0iSURYMTk0Ij48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBjb25zdCBjaGFyICogPEI+cmxfdGVybWluYWxfbmFtZTwvQj4KIDxERD5UaGUgdGVybWluYWwgdHlwZSwgdXNlZCBmb3IgaW5pdGlhbGl6YXRpb24uICBJZiBub3Qgc2V0IGJ5IHRoZSBhcHBsaWNhdGlvbiwKQEAgLTI0NzMsNyArMjUxNCw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgxOTEiPjwvQT4KKzxBIE5BTUU9IklEWDE5NSI+PC9BPgogPERMPgogPERUPjxVPlZhcmlhYmxlOjwvVT4gY29uc3QgY2hhciAqIDxCPnJsX3JlYWRsaW5lX25hbWU8L0I+CiA8REQ+VGhpcyB2YXJpYWJsZSBpcyBzZXQgdG8gYSB1bmlxdWUgbmFtZSBieSBlYWNoIGFwcGxpY2F0aW9uIHVzaW5nIFJlYWRsaW5lLgpAQCAtMjQ4Miw3ICsyNTIzLDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDE5MiI+PC9BPgorPEEgTkFNRT0iSURYMTk2Ij48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBGSUxFICogPEI+cmxfaW5zdHJlYW08L0I+CiA8REQ+VGhlIHN0ZGlvIHN0cmVhbSBmcm9tIHdoaWNoIFJlYWRsaW5lIHJlYWRzIGlucHV0LgpAQCAtMjQ5MCw3ICsyNTMxLDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDE5MyI+PC9BPgorPEEgTkFNRT0iSURYMTk3Ij48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBGSUxFICogPEI+cmxfb3V0c3RyZWFtPC9CPgogPEREPlRoZSBzdGRpbyBzdHJlYW0gdG8gd2hpY2ggUmVhZGxpbmUgcGVyZm9ybXMgb3V0cHV0LgpAQCAtMjQ5OCw3ICsyNTM5LDE2IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgxOTQiPjwvQT4KKzxBIE5BTUU9IklEWDE5OCI+PC9BPgorPERMPgorPERUPjxVPlZhcmlhYmxlOjwvVT4gaW50IDxCPnJsX3ByZWZlcl9lbnZfd2luc2l6ZTwvQj4KKzxERD5JZiBub24temVybywgUmVhZGxpbmUgZ2l2ZXMgdmFsdWVzIGZvdW5kIGluIHRoZSA8Q09ERT5MSU5FUzwvQ09ERT4gYW5kCis8Q09ERT5DT0xVTU5TPC9DT0RFPiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgZ3JlYXRlciBwcmVjZWRlbmNlIHRoYW4gdmFsdWVzIGZldGNoZWQKK2Zyb20gdGhlIGtlcm5lbCB3aGVuIGNvbXB1dGluZyB0aGUgc2NyZWVuIGRpbWVuc2lvbnMuCis8L0RMPgorPC9QPjxQPgorCis8QSBOQU1FPSJJRFgxOTkiPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IHJsX2NvbW1hbmRfZnVuY190ICogPEI+cmxfbGFzdF9mdW5jPC9CPgogPEREPlRoZSBhZGRyZXNzIG9mIHRoZSBsYXN0IGNvbW1hbmQgZnVuY3Rpb24gUmVhZGxpbmUgZXhlY3V0ZWQuICBNYXkgYmUgdXNlZCB0bwpAQCAtMjUwNyw3ICsyNTU3LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDE5NSI+PC9BPgorPEEgTkFNRT0iSURYMjAwIj48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBybF9ob29rX2Z1bmNfdCAqIDxCPnJsX3N0YXJ0dXBfaG9vazwvQj4KIDxERD5JZiBub24temVybywgdGhpcyBpcyB0aGUgYWRkcmVzcyBvZiBhIGZ1bmN0aW9uIHRvIGNhbGwganVzdApAQCAtMjUxNSw3ICsyNTY1LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDE5NiI+PC9BPgorPEEgTkFNRT0iSURYMjAxIj48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBybF9ob29rX2Z1bmNfdCAqIDxCPnJsX3ByZV9pbnB1dF9ob29rPC9CPgogPEREPklmIG5vbi16ZXJvLCB0aGlzIGlzIHRoZSBhZGRyZXNzIG9mIGEgZnVuY3Rpb24gdG8gY2FsbCBhZnRlcgpAQCAtMjUyNCw3ICsyNTc0LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDE5NyI+PC9BPgorPEEgTkFNRT0iSURYMjAyIj48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBybF9ob29rX2Z1bmNfdCAqIDxCPnJsX2V2ZW50X2hvb2s8L0I+CiA8REQ+SWYgbm9uLXplcm8sIHRoaXMgaXMgdGhlIGFkZHJlc3Mgb2YgYSBmdW5jdGlvbiB0byBjYWxsIHBlcmlvZGljYWxseQpAQCAtMjUzNCw3ICsyNTg0LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDE5OCI+PC9BPgorPEEgTkFNRT0iSURYMjAzIj48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBybF9nZXRjX2Z1bmNfdCAqIDxCPnJsX2dldGNfZnVuY3Rpb248L0I+CiA8REQ+SWYgbm9uLXplcm8sIFJlYWRsaW5lIHdpbGwgY2FsbCBpbmRpcmVjdGx5IHRocm91Z2ggdGhpcyBwb2ludGVyCkBAIC0yNTQ0LDcgKzI1OTQsNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMTk5Ij48L0E+Cis8QSBOQU1FPSJJRFgyMDQiPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IHJsX3ZvaWRmdW5jX3QgKiA8Qj5ybF9yZWRpc3BsYXlfZnVuY3Rpb248L0I+CiA8REQ+SWYgbm9uLXplcm8sIFJlYWRsaW5lIHdpbGwgY2FsbCBpbmRpcmVjdGx5IHRocm91Z2ggdGhpcyBwb2ludGVyCkBAIC0yNTU0LDcgKzI2MDQsNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMjAwIj48L0E+Cis8QSBOQU1FPSJJRFgyMDUiPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IHJsX3ZpbnRmdW5jX3QgKiA8Qj5ybF9wcmVwX3Rlcm1fZnVuY3Rpb248L0I+CiA8REQ+SWYgbm9uLXplcm8sIFJlYWRsaW5lIHdpbGwgY2FsbCBpbmRpcmVjdGx5IHRocm91Z2ggdGhpcyBwb2ludGVyCkBAIC0yNTY1LDcgKzI2MTUsNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMjAxIj48L0E+Cis8QSBOQU1FPSJJRFgyMDYiPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IHJsX3ZvaWRmdW5jX3QgKiA8Qj5ybF9kZXByZXBfdGVybV9mdW5jdGlvbjwvQj4KIDxERD5JZiBub24temVybywgUmVhZGxpbmUgd2lsbCBjYWxsIGluZGlyZWN0bHkgdGhyb3VnaCB0aGlzIHBvaW50ZXIKQEAgLTI1NzYsNyArMjYyNiw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyMDIiPjwvQT4KKzxBIE5BTUU9IklEWDIwNyI+PC9BPgogPERMPgogPERUPjxVPlZhcmlhYmxlOjwvVT4gS2V5bWFwIDxCPnJsX2V4ZWN1dGluZ19rZXltYXA8L0I+CiA8REQ+VGhpcyB2YXJpYWJsZSBpcyBzZXQgdG8gdGhlIGtleW1hcCAoc2VlIHNlY3Rpb24gPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzMSI+Mi40LjIgU2VsZWN0aW5nIGEgS2V5bWFwPC9BPikgaW4gd2hpY2ggdGhlCkBAIC0yNTg0LDcgKzI2MzQsNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMjAzIj48L0E+Cis8QSBOQU1FPSJJRFgyMDgiPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IEtleW1hcCA8Qj5ybF9iaW5kaW5nX2tleW1hcDwvQj4KIDxERD5UaGlzIHZhcmlhYmxlIGlzIHNldCB0byB0aGUga2V5bWFwIChzZWUgc2VjdGlvbiA8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzMxIj4yLjQuMiBTZWxlY3RpbmcgYSBLZXltYXA8L0E+KSBpbiB3aGljaCB0aGUKQEAgLTI1OTIsMTQgKzI2NDIsMTQgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDIwNCI+PC9BPgorPEEgTkFNRT0iSURYMjA5Ij48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBjaGFyICogPEI+cmxfZXhlY3V0aW5nX21hY3JvPC9CPgogPEREPlRoaXMgdmFyaWFibGUgaXMgc2V0IHRvIHRoZSB0ZXh0IG9mIGFueSBjdXJyZW50bHktZXhlY3V0aW5nIG1hY3JvLgogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMjA1Ij48L0E+Cis8QSBOQU1FPSJJRFgyMTAiPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IGludCA8Qj5ybF9yZWFkbGluZV9zdGF0ZTwvQj4KIDxERD5BIHZhcmlhYmxlIHdpdGggYml0IHZhbHVlcyB0aGF0IGVuY2Fwc3VsYXRlIHRoZSBjdXJyZW50IFJlYWRsaW5lIHN0YXRlLgpAQCAtMjY1NSw3ICsyNzA1LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDIwNiI+PC9BPgorPEEgTkFNRT0iSURYMjExIj48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBpbnQgPEI+cmxfZXhwbGljaXRfYXJnPC9CPgogPEREPlNldCB0byBhIG5vbi16ZXJvIHZhbHVlIGlmIGFuIGV4cGxpY2l0IG51bWVyaWMgYXJndW1lbnQgd2FzIHNwZWNpZmllZCBieQpAQCAtMjY2Myw3ICsyNzEzLDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDIwNyI+PC9BPgorPEEgTkFNRT0iSURYMjEyIj48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBpbnQgPEI+cmxfbnVtZXJpY19hcmc8L0I+CiA8REQ+U2V0IHRvIHRoZSB2YWx1ZSBvZiBhbnkgbnVtZXJpYyBhcmd1bWVudCBleHBsaWNpdGx5IHNwZWNpZmllZCBieSB0aGUgdXNlcgpAQCAtMjY3Miw3ICsyNzIyLDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDIwOCI+PC9BPgorPEEgTkFNRT0iSURYMjEzIj48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBpbnQgPEI+cmxfZWRpdGluZ19tb2RlPC9CPgogPEREPlNldCB0byBhIHZhbHVlIGRlbm90aW5nIFJlYWRsaW5lJ3MgY3VycmVudCBlZGl0aW5nIG1vZGUuICBBIHZhbHVlIG9mCkBAIC0yNjkyLDcgKzI3NDIsNyBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDMiPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMj4gMi40IFJlYWRsaW5lIENvbnZlbmllbmNlIEZ1bmN0aW9ucyA8L0gyPgpAQCAtMjcyOCw3ICsyNzc4LDcgQEAKIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQzIj4gJmd0OyZndDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDkiPkluZGV4PC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNTIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+CiA8L1RSPjwvVEFCTEU+CiA8SDM+IDIuNC4xIE5hbWluZyBhIEZ1bmN0aW9uIDwvSDM+CkBAIC0yNzUwLDcgKzI4MDAsNyBAQAogd2VsbC4gIFJlYWRsaW5lIHByb3ZpZGVzIGEgZnVuY3Rpb24gZm9yIGRvaW5nIHRoYXQ6CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDIwOSI+PC9BPgorPEEgTkFNRT0iSURYMjE0Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+cmxfYWRkX2RlZnVuPC9CPiA8ST4oY29uc3QgY2hhciAqbmFtZSwgcmxfY29tbWFuZF9mdW5jX3QgKmZ1bmN0aW9uLCBpbnQga2V5KTwvST4KIDxERD5BZGQgPFZBUj5uYW1lPC9WQVI+IHRvIHRoZSBsaXN0IG9mIG5hbWVkIGZ1bmN0aW9ucy4gIE1ha2UgPFZBUj5mdW5jdGlvbjwvVkFSPiBiZQpAQCAtMjc1OSwxMSArMjgwOSwxMSBAQAogPC9ETD4KIDwvUD48UD4KIAotVXNpbmcgdGhpcyBmdW5jdGlvbiBhbG9uZSBpcyBzdWZmaWNpZW50IGZvciBtb3N0IGFwcGxpY2F0aW9ucy4gIEl0IGlzCi10aGUgcmVjb21tZW5kZWQgd2F5IHRvIGFkZCBhIGZldyBmdW5jdGlvbnMgdG8gdGhlIGRlZmF1bHQgZnVuY3Rpb25zIHRoYXQKLVJlYWRsaW5lIGhhcyBidWlsdCBpbi4gIElmIHlvdSBuZWVkIHRvIGRvIHNvbWV0aGluZyBvdGhlcgotdGhhbiBhZGRpbmcgYSBmdW5jdGlvbiB0byBSZWFkbGluZSwgeW91IG1heSBuZWVkIHRvIHVzZSB0aGUKLXVuZGVybHlpbmcgZnVuY3Rpb25zIGRlc2NyaWJlZCBiZWxvdy4KK1VzaW5nIHRoaXMgZnVuY3Rpb24gYWxvbmUgaXMgc3VmZmljaWVudCBmb3IgbW9zdCBhcHBsaWNhdGlvbnMuCitJdCBpcyB0aGUgcmVjb21tZW5kZWQgd2F5IHRvIGFkZCBhIGZldyBmdW5jdGlvbnMgdG8gdGhlIGRlZmF1bHQKK2Z1bmN0aW9ucyB0aGF0IFJlYWRsaW5lIGhhcyBidWlsdCBpbi4KK0lmIHlvdSBuZWVkIHRvIGRvIHNvbWV0aGluZyBvdGhlciB0aGFuIGFkZGluZyBhIGZ1bmN0aW9uIHRvIFJlYWRsaW5lLAoreW91IG1heSBuZWVkIHRvIHVzZSB0aGUgdW5kZXJseWluZyBmdW5jdGlvbnMgZGVzY3JpYmVkIGJlbG93LgogPC9QPjxQPgogCiA8QSBOQU1FPSJLZXltYXBzIj48L0E+CkBAIC0yNzc3LDcgKzI4MjcsNyBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDMiPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMz4gMi40LjIgU2VsZWN0aW5nIGEgS2V5bWFwIDwvSDM+CkBAIC0yNzkwLDcgKzI4NDAsNyBAQAogUmVhZGxpbmUgd2hpY2gga2V5bWFwIHRvIHVzZS4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMjEwIj48L0E+Cis8QSBOQU1FPSJJRFgyMTUiPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IEtleW1hcCA8Qj5ybF9tYWtlX2JhcmVfa2V5bWFwPC9CPiA8ST4odm9pZCk8L0k+CiA8REQ+UmV0dXJucyBhIG5ldywgZW1wdHkga2V5bWFwLiAgVGhlIHNwYWNlIGZvciB0aGUga2V5bWFwIGlzIGFsbG9jYXRlZCB3aXRoCkBAIC0yNzk5LDE0ICsyODQ5LDE0IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyMTEiPjwvQT4KKzxBIE5BTUU9IklEWDIxNiI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gS2V5bWFwIDxCPnJsX2NvcHlfa2V5bWFwPC9CPiA8ST4oS2V5bWFwIG1hcCk8L0k+CiA8REQ+UmV0dXJuIGEgbmV3IGtleW1hcCB3aGljaCBpcyBhIGNvcHkgb2YgPFZBUj5tYXA8L1ZBUj4uCiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyMTIiPjwvQT4KKzxBIE5BTUU9IklEWDIxNyI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gS2V5bWFwIDxCPnJsX21ha2Vfa2V5bWFwPC9CPiA8ST4odm9pZCk8L0k+CiA8REQ+UmV0dXJuIGEgbmV3IGtleW1hcCB3aXRoIHRoZSBwcmludGluZyBjaGFyYWN0ZXJzIGJvdW5kIHRvIHJsX2luc2VydCwKQEAgLTI4MTUsNyArMjg2NSw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyMTMiPjwvQT4KKzxBIE5BTUU9IklEWDIxOCI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gdm9pZCA8Qj5ybF9kaXNjYXJkX2tleW1hcDwvQj4gPEk+KEtleW1hcCBrZXltYXApPC9JPgogPEREPkZyZWUgdGhlIHN0b3JhZ2UgYXNzb2NpYXRlZCB3aXRoIDxWQVI+a2V5bWFwPC9WQVI+LgpAQCAtMjgyNiwyMSArMjg3NiwyMSBAQAogY2hhbmdlIHdoaWNoIGtleW1hcCBpcyBhY3RpdmUuCiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDIxNCI+PC9BPgorPEEgTkFNRT0iSURYMjE5Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBLZXltYXAgPEI+cmxfZ2V0X2tleW1hcDwvQj4gPEk+KHZvaWQpPC9JPgogPEREPlJldHVybnMgdGhlIGN1cnJlbnRseSBhY3RpdmUga2V5bWFwLgogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMjE1Ij48L0E+Cis8QSBOQU1FPSJJRFgyMjAiPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IHZvaWQgPEI+cmxfc2V0X2tleW1hcDwvQj4gPEk+KEtleW1hcCBrZXltYXApPC9JPgogPEREPk1ha2VzIDxWQVI+a2V5bWFwPC9WQVI+IHRoZSBjdXJyZW50bHkgYWN0aXZlIGtleW1hcC4KIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDIxNiI+PC9BPgorPEEgTkFNRT0iSURYMjIxIj48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBLZXltYXAgPEI+cmxfZ2V0X2tleW1hcF9ieV9uYW1lPC9CPiA8ST4oY29uc3QgY2hhciAqbmFtZSk8L0k+CiA8REQ+UmV0dXJuIHRoZSBrZXltYXAgbWF0Y2hpbmcgPFZBUj5uYW1lPC9WQVI+LiAgPFZBUj5uYW1lPC9WQVI+IGlzIG9uZSB3aGljaCB3b3VsZApAQCAtMjg0OCw3ICsyODk4LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDIxNyI+PC9BPgorPEEgTkFNRT0iSURYMjIyIj48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBjaGFyICogPEI+cmxfZ2V0X2tleW1hcF9uYW1lPC9CPiA8ST4oS2V5bWFwIGtleW1hcCk8L0k+CiA8REQ+UmV0dXJuIHRoZSBuYW1lIG1hdGNoaW5nIDxWQVI+a2V5bWFwPC9WQVI+LiAgPFZBUj5uYW1lPC9WQVI+IGlzIG9uZSB3aGljaCB3b3VsZApAQCAtMjg2Nyw3ICsyOTE3LDcgQEAKIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQzIj4gJmd0OyZndDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDkiPkluZGV4PC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNTIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+CiA8L1RSPjwvVEFCTEU+CiA8SDM+IDIuNC4zIEJpbmRpbmcgS2V5cyA8L0gzPgpAQCAtMjg5Myw3ICsyOTQzLDcgQEAKIFRoZXNlIGZ1bmN0aW9ucyBtYW5hZ2Uga2V5IGJpbmRpbmdzLgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyMTgiPjwvQT4KKzxBIE5BTUU9IklEWDIyMyI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPnJsX2JpbmRfa2V5PC9CPiA8ST4oaW50IGtleSwgcmxfY29tbWFuZF9mdW5jX3QgKmZ1bmN0aW9uKTwvST4KIDxERD5CaW5kcyA8VkFSPmtleTwvVkFSPiB0byA8VkFSPmZ1bmN0aW9uPC9WQVI+IGluIHRoZSBjdXJyZW50bHkgYWN0aXZlIGtleW1hcC4KQEAgLTI5MDEsMTUgKzI5NTEsMzQgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDIxOSI+PC9BPgorPEEgTkFNRT0iSURYMjI0Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+cmxfYmluZF9rZXlfaW5fbWFwPC9CPiA8ST4oaW50IGtleSwgcmxfY29tbWFuZF9mdW5jX3QgKmZ1bmN0aW9uLCBLZXltYXAgbWFwKTwvST4KLTxERD5CaW5kIDxWQVI+a2V5PC9WQVI+IHRvIDxWQVI+ZnVuY3Rpb248L1ZBUj4gaW4gPFZBUj5tYXA8L1ZBUj4uICBSZXR1cm5zIG5vbi16ZXJvIGluIHRoZSBjYXNlCi1vZiBhbiBpbnZhbGlkIDxWQVI+a2V5PC9WQVI+LgorPEREPkJpbmQgPFZBUj5rZXk8L1ZBUj4gdG8gPFZBUj5mdW5jdGlvbjwvVkFSPiBpbiA8VkFSPm1hcDwvVkFSPi4KK1JldHVybnMgbm9uLXplcm8gaW4gdGhlIGNhc2Ugb2YgYW4gaW52YWxpZCA8VkFSPmtleTwvVkFSPi4KIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDIyMCI+PC9BPgorPEEgTkFNRT0iSURYMjI1Ij48L0E+Cis8REw+Cis8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+cmxfYmluZF9rZXlfaWZfdW5ib3VuZDwvQj4gPEk+KGludCBrZXksIHJsX2NvbW1hbmRfZnVuY190ICpmdW5jdGlvbik8L0k+Cis8REQ+QmluZHMgPFZBUj5rZXk8L1ZBUj4gdG8gPFZBUj5mdW5jdGlvbjwvVkFSPiBpZiBpdCBpcyBub3QgYWxyZWFkeSBib3VuZCBpbiB0aGUKK2N1cnJlbnRseSBhY3RpdmUga2V5bWFwLgorUmV0dXJucyBub24temVybyBpbiB0aGUgY2FzZSBvZiBhbiBpbnZhbGlkIDxWQVI+a2V5PC9WQVI+IG9yIGlmIDxWQVI+a2V5PC9WQVI+IGlzCithbHJlYWR5IGJvdW5kLgorPC9ETD4KKzwvUD48UD4KKworPEEgTkFNRT0iSURYMjI2Ij48L0E+Cis8REw+Cis8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+cmxfYmluZF9rZXlfaWZfdW5ib3VuZF9pbl9tYXA8L0I+IDxJPihpbnQga2V5LCBybF9jb21tYW5kX2Z1bmNfdCAqZnVuY3Rpb24sIEtleW1hcCBtYXApPC9JPgorPEREPkJpbmRzIDxWQVI+a2V5PC9WQVI+IHRvIDxWQVI+ZnVuY3Rpb248L1ZBUj4gaWYgaXQgaXMgbm90IGFscmVhZHkgYm91bmQgaW4gPFZBUj5tYXA8L1ZBUj4uCitSZXR1cm5zIG5vbi16ZXJvIGluIHRoZSBjYXNlIG9mIGFuIGludmFsaWQgPFZBUj5rZXk8L1ZBUj4gb3IgaWYgPFZBUj5rZXk8L1ZBUj4gaXMKK2FscmVhZHkgYm91bmQuCis8L0RMPgorPC9QPjxQPgorCis8QSBOQU1FPSJJRFgyMjciPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IGludCA8Qj5ybF91bmJpbmRfa2V5PC9CPiA8ST4oaW50IGtleSk8L0k+CiA8REQ+QmluZCA8VkFSPmtleTwvVkFSPiB0byB0aGUgbnVsbCBmdW5jdGlvbiBpbiB0aGUgY3VycmVudGx5IGFjdGl2ZSBrZXltYXAuCkBAIC0yOTE3LDcgKzI5ODYsNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMjIxIj48L0E+Cis8QSBOQU1FPSJJRFgyMjgiPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IGludCA8Qj5ybF91bmJpbmRfa2V5X2luX21hcDwvQj4gPEk+KGludCBrZXksIEtleW1hcCBtYXApPC9JPgogPEREPkJpbmQgPFZBUj5rZXk8L1ZBUj4gdG8gdGhlIG51bGwgZnVuY3Rpb24gaW4gPFZBUj5tYXA8L1ZBUj4uCkBAIC0yOTI1LDMwICsyOTk0LDY3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyMjIiPjwvQT4KKzxBIE5BTUU9IklEWDIyOSI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPnJsX3VuYmluZF9mdW5jdGlvbl9pbl9tYXA8L0I+IDxJPihybF9jb21tYW5kX2Z1bmNfdCAqZnVuY3Rpb24sIEtleW1hcCBtYXApPC9JPgogPEREPlVuYmluZCBhbGwga2V5cyB0aGF0IGV4ZWN1dGUgPFZBUj5mdW5jdGlvbjwvVkFSPiBpbiA8VkFSPm1hcDwvVkFSPi4KIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDIyMyI+PC9BPgorPEEgTkFNRT0iSURYMjMwIj48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+cmxfdW5iaW5kX2NvbW1hbmRfaW5fbWFwPC9CPiA8ST4oY29uc3QgY2hhciAqY29tbWFuZCwgS2V5bWFwIG1hcCk8L0k+CiA8REQ+VW5iaW5kIGFsbCBrZXlzIHRoYXQgYXJlIGJvdW5kIHRvIDxWQVI+Y29tbWFuZDwvVkFSPiBpbiA8VkFSPm1hcDwvVkFSPi4KIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDIyNCI+PC9BPgorPEEgTkFNRT0iSURYMjMxIj48L0E+CiA8REw+Ci08RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+cmxfc2V0X2tleTwvQj4gPEk+KGNvbnN0IGNoYXIgKmtleXNlcSwgcmxfY29tbWFuZF9mdW5jX3QgKmZ1bmN0aW9uLCBLZXltYXAgbWFwKTwvST4KKzxEVD48VT5GdW5jdGlvbjo8L1U+IGludCA8Qj5ybF9iaW5kX2tleXNlcTwvQj4gPEk+KGNvbnN0IGNoYXIgKmtleXNlcSwgcmxfY29tbWFuZF9mdW5jX3QgKmZ1bmN0aW9uKTwvST4KIDxERD5CaW5kIHRoZSBrZXkgc2VxdWVuY2UgcmVwcmVzZW50ZWQgYnkgdGhlIHN0cmluZyA8VkFSPmtleXNlcTwvVkFSPiB0byB0aGUgZnVuY3Rpb24KLTxWQVI+ZnVuY3Rpb248L1ZBUj4uICBUaGlzIG1ha2VzIG5ldyBrZXltYXBzIGFzCi1uZWNlc3NhcnkuICBUaGUgaW5pdGlhbCBrZXltYXAgaW4gd2hpY2ggdG8gZG8gYmluZGluZ3MgaXMgPFZBUj5tYXA8L1ZBUj4uCis8VkFSPmZ1bmN0aW9uPC9WQVI+LCBiZWdpbm5pbmcgaW4gdGhlIGN1cnJlbnQga2V5bWFwLgorVGhpcyBtYWtlcyBuZXcga2V5bWFwcyBhcyBuZWNlc3NhcnkuCitUaGUgcmV0dXJuIHZhbHVlIGlzIG5vbi16ZXJvIGlmIDxWQVI+a2V5c2VxPC9WQVI+IGlzIGludmFsaWQuCiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyMjUiPjwvQT4KKzxBIE5BTUU9IklEWDIzMiI+PC9BPgorPERMPgorPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPnJsX2JpbmRfa2V5c2VxX2luX21hcDwvQj4gPEk+KGNvbnN0IGNoYXIgKmtleXNlcSwgcmxfY29tbWFuZF9mdW5jX3QgKmZ1bmN0aW9uLCBLZXltYXAgbWFwKTwvST4KKzxERD5CaW5kIHRoZSBrZXkgc2VxdWVuY2UgcmVwcmVzZW50ZWQgYnkgdGhlIHN0cmluZyA8VkFSPmtleXNlcTwvVkFSPiB0byB0aGUgZnVuY3Rpb24KKzxWQVI+ZnVuY3Rpb248L1ZBUj4uICBUaGlzIG1ha2VzIG5ldyBrZXltYXBzIGFzIG5lY2Vzc2FyeS4KK0luaXRpYWwgYmluZGluZ3MgYXJlIHBlcmZvcm1lZCBpbiA8VkFSPm1hcDwvVkFSPi4KK1RoZSByZXR1cm4gdmFsdWUgaXMgbm9uLXplcm8gaWYgPFZBUj5rZXlzZXE8L1ZBUj4gaXMgaW52YWxpZC4KKzwvREw+Cis8L1A+PFA+CisKKzxBIE5BTUU9IklEWDIzMyI+PC9BPgorPERMPgorPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPnJsX3NldF9rZXk8L0I+IDxJPihjb25zdCBjaGFyICprZXlzZXEsIHJsX2NvbW1hbmRfZnVuY190ICpmdW5jdGlvbiwgS2V5bWFwIG1hcCk8L0k+Cis8REQ+RXF1aXZhbGVudCB0byA8Q09ERT5ybF9iaW5kX2tleXNlcV9pbl9tYXA8L0NPREU+LgorPC9ETD4KKzwvUD48UD4KKworPEEgTkFNRT0iSURYMjM0Ij48L0E+Cis8REw+Cis8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+cmxfYmluZF9rZXlzZXFfaWZfdW5ib3VuZDwvQj4gPEk+KGNvbnN0IGNoYXIgKmtleXNlcSwgcmxfY29tbWFuZF9mdW5jX3QgKmZ1bmN0aW9uKTwvST4KKzxERD5CaW5kcyA8VkFSPmtleXNlcTwvVkFSPiB0byA8VkFSPmZ1bmN0aW9uPC9WQVI+IGlmIGl0IGlzIG5vdCBhbHJlYWR5IGJvdW5kIGluIHRoZQorY3VycmVudGx5IGFjdGl2ZSBrZXltYXAuCitSZXR1cm5zIG5vbi16ZXJvIGluIHRoZSBjYXNlIG9mIGFuIGludmFsaWQgPFZBUj5rZXlzZXE8L1ZBUj4gb3IgaWYgPFZBUj5rZXlzZXE8L1ZBUj4gaXMKK2FscmVhZHkgYm91bmQuCis8L0RMPgorPC9QPjxQPgorCis8QSBOQU1FPSJJRFgyMzUiPjwvQT4KKzxETD4KKzxEVD48VT5GdW5jdGlvbjo8L1U+IGludCA8Qj5ybF9iaW5kX2tleXNlcV9pZl91bmJvdW5kX2luX21hcDwvQj4gPEk+KGNvbnN0IGNoYXIgKmtleXNlcSwgcmxfY29tbWFuZF9mdW5jX3QgKmZ1bmN0aW9uLCBLZXltYXAgbWFwKTwvST4KKzxERD5CaW5kcyA8VkFSPmtleXNlcTwvVkFSPiB0byA8VkFSPmZ1bmN0aW9uPC9WQVI+IGlmIGl0IGlzIG5vdCBhbHJlYWR5IGJvdW5kIGluIDxWQVI+bWFwPC9WQVI+LgorUmV0dXJucyBub24temVybyBpbiB0aGUgY2FzZSBvZiBhbiBpbnZhbGlkIDxWQVI+a2V5c2VxPC9WQVI+IG9yIGlmIDxWQVI+a2V5c2VxPC9WQVI+IGlzCithbHJlYWR5IGJvdW5kLgorPC9ETD4KKzwvUD48UD4KKworPEEgTkFNRT0iSURYMjM2Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+cmxfZ2VuZXJpY19iaW5kPC9CPiA8ST4oaW50IHR5cGUsIGNvbnN0IGNoYXIgKmtleXNlcSwgY2hhciAqZGF0YSwgS2V5bWFwIG1hcCk8L0k+CiA8REQ+QmluZCB0aGUga2V5IHNlcXVlbmNlIHJlcHJlc2VudGVkIGJ5IHRoZSBzdHJpbmcgPFZBUj5rZXlzZXE8L1ZBUj4gdG8gdGhlIGFyYml0cmFyeQpAQCAtMjk1OSw3ICszMDY1LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDIyNiI+PC9BPgorPEEgTkFNRT0iSURYMjM3Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+cmxfcGFyc2VfYW5kX2JpbmQ8L0I+IDxJPihjaGFyICpsaW5lKTwvST4KIDxERD5QYXJzZSA8VkFSPmxpbmU8L1ZBUj4gYXMgaWYgaXQgaGFkIGJlZW4gcmVhZCBmcm9tIHRoZSA8Q09ERT5pbnB1dHJjPC9DT0RFPiBmaWxlIGFuZApAQCAtMjk2OCw3ICszMDc0LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDIyNyI+PC9BPgorPEEgTkFNRT0iSURYMjM4Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+cmxfcmVhZF9pbml0X2ZpbGU8L0I+IDxJPihjb25zdCBjaGFyICpmaWxlbmFtZSk8L0k+CiA8REQ+UmVhZCBrZXliaW5kaW5ncyBhbmQgdmFyaWFibGUgYXNzaWdubWVudHMgZnJvbSA8VkFSPmZpbGVuYW1lPC9WQVI+CkBAIC0yOTg3LDcgKzMwOTMsNyBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDMiPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMz4gMi40LjQgQXNzb2NpYXRpbmcgRnVuY3Rpb24gTmFtZXMgYW5kIEJpbmRpbmdzIDwvSDM+CkBAIC0yOTk5LDE0ICszMTA1LDE0IEBACiBhc3NvY2lhdGUgYSBuZXcgZnVuY3Rpb24gbmFtZSB3aXRoIGFuIGFyYml0cmFyeSBmdW5jdGlvbi4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMjI4Ij48L0E+Cis8QSBOQU1FPSJJRFgyMzkiPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IHJsX2NvbW1hbmRfZnVuY190ICogPEI+cmxfbmFtZWRfZnVuY3Rpb248L0I+IDxJPihjb25zdCBjaGFyICpuYW1lKTwvST4KIDxERD5SZXR1cm4gdGhlIGZ1bmN0aW9uIHdpdGggbmFtZSA8VkFSPm5hbWU8L1ZBUj4uCiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyMjkiPjwvQT4KKzxBIE5BTUU9IklEWDI0MCI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gcmxfY29tbWFuZF9mdW5jX3QgKiA8Qj5ybF9mdW5jdGlvbl9vZl9rZXlzZXE8L0I+IDxJPihjb25zdCBjaGFyICprZXlzZXEsIEtleW1hcCBtYXAsIGludCAqdHlwZSk8L0k+CiA8REQ+UmV0dXJuIHRoZSBmdW5jdGlvbiBpbnZva2VkIGJ5IDxWQVI+a2V5c2VxPC9WQVI+IGluIGtleW1hcCA8VkFSPm1hcDwvVkFSPi4KQEAgLTMwMTYsNyArMzEyMiw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyMzAiPjwvQT4KKzxBIE5BTUU9IklEWDI0MSI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gY2hhciAqKiA8Qj5ybF9pbnZva2luZ19rZXlzZXFzPC9CPiA8ST4ocmxfY29tbWFuZF9mdW5jX3QgKmZ1bmN0aW9uKTwvST4KIDxERD5SZXR1cm4gYW4gYXJyYXkgb2Ygc3RyaW5ncyByZXByZXNlbnRpbmcgdGhlIGtleSBzZXF1ZW5jZXMgdXNlZCB0bwpAQCAtMzAyNCw3ICszMTMwLDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDIzMSI+PC9BPgorPEEgTkFNRT0iSURYMjQyIj48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBjaGFyICoqIDxCPnJsX2ludm9raW5nX2tleXNlcXNfaW5fbWFwPC9CPiA8ST4ocmxfY29tbWFuZF9mdW5jX3QgKmZ1bmN0aW9uLCBLZXltYXAgbWFwKTwvST4KIDxERD5SZXR1cm4gYW4gYXJyYXkgb2Ygc3RyaW5ncyByZXByZXNlbnRpbmcgdGhlIGtleSBzZXF1ZW5jZXMgdXNlZCB0bwpAQCAtMzAzMiw3ICszMTM4LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDIzMiI+PC9BPgorPEEgTkFNRT0iSURYMjQzIj48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiB2b2lkIDxCPnJsX2Z1bmN0aW9uX2R1bXBlcjwvQj4gPEk+KGludCByZWFkYWJsZSk8L0k+CiA8REQ+UHJpbnQgdGhlIHJlYWRsaW5lIGZ1bmN0aW9uIG5hbWVzIGFuZCB0aGUga2V5IHNlcXVlbmNlcyBjdXJyZW50bHkKQEAgLTMwNDIsMTQgKzMxNDgsMTQgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDIzMyI+PC9BPgorPEEgTkFNRT0iSURYMjQ0Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiB2b2lkIDxCPnJsX2xpc3RfZnVubWFwX25hbWVzPC9CPiA8ST4odm9pZCk8L0k+CiA8REQ+UHJpbnQgdGhlIG5hbWVzIG9mIGFsbCBiaW5kYWJsZSBSZWFkbGluZSBmdW5jdGlvbnMgdG8gPENPREU+cmxfb3V0c3RyZWFtPC9DT0RFPi4KIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDIzNCI+PC9BPgorPEEgTkFNRT0iSURYMjQ1Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBjb25zdCBjaGFyICoqIDxCPnJsX2Z1bm1hcF9uYW1lczwvQj4gPEk+KHZvaWQpPC9JPgogPEREPlJldHVybiBhIE5VTEwgdGVybWluYXRlZCBhcnJheSBvZiBrbm93biBmdW5jdGlvbiBuYW1lcy4gIFRoZSBhcnJheSBpcwpAQCAtMzA1OCw3ICszMTY0LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDIzNSI+PC9BPgorPEEgTkFNRT0iSURYMjQ2Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+cmxfYWRkX2Z1bm1hcF9lbnRyeTwvQj4gPEk+KGNvbnN0IGNoYXIgKm5hbWUsIHJsX2NvbW1hbmRfZnVuY190ICpmdW5jdGlvbik8L0k+CiA8REQ+QWRkIDxWQVI+bmFtZTwvVkFSPiB0byB0aGUgbGlzdCBvZiBiaW5kYWJsZSBSZWFkbGluZSBjb21tYW5kIG5hbWVzLCBhbmQgbWFrZQpAQCAtMzA3Nyw3ICszMTgzLDcgQEAKIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQzIj4gJmd0OyZndDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDkiPkluZGV4PC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNTIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+CiA8L1RSPjwvVEFCTEU+CiA8SDM+IDIuNC41IEFsbG93aW5nIFVuZG9pbmcgPC9IMz4KQEAgLTMxMTMsNyArMzIxOSw3IEBACiA8Q09ERT5ybF9lbmRfdW5kb19ncm91cCgpPC9DT0RFPi4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMjM2Ij48L0E+Cis8QSBOQU1FPSJJRFgyNDciPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IGludCA8Qj5ybF9iZWdpbl91bmRvX2dyb3VwPC9CPiA8ST4odm9pZCk8L0k+CiA8REQ+QmVnaW5zIHNhdmluZyB1bmRvIGluZm9ybWF0aW9uIGluIGEgZ3JvdXAgY29uc3RydWN0LiAgVGhlIHVuZG8KQEAgLTMxMjMsNyArMzIyOSw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyMzciPjwvQT4KKzxBIE5BTUU9IklEWDI0OCI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPnJsX2VuZF91bmRvX2dyb3VwPC9CPiA8ST4odm9pZCk8L0k+CiA8REQ+Q2xvc2VzIHRoZSBjdXJyZW50IHVuZG8gZ3JvdXAgc3RhcnRlZCB3aXRoIDxDT0RFPnJsX2JlZ2luX3VuZG9fZ3JvdXAKQEAgLTMxMzIsNyArMzIzOCw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyMzgiPjwvQT4KKzxBIE5BTUU9IklEWDI0OSI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gdm9pZCA8Qj5ybF9hZGRfdW5kbzwvQj4gPEk+KGVudW0gdW5kb19jb2RlIHdoYXQsIGludCBzdGFydCwgaW50IGVuZCwgY2hhciAqdGV4dCk8L0k+CiA8REQ+UmVtZW1iZXIgaG93IHRvIHVuZG8gYW4gZXZlbnQgKGFjY29yZGluZyB0byA8VkFSPndoYXQ8L1ZBUj4pLiAgVGhlIGFmZmVjdGVkCkBAIC0zMTQwLDE0ICszMjQ2LDE0IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyMzkiPjwvQT4KKzxBIE5BTUU9IklEWDI1MCI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gdm9pZCA8Qj5ybF9mcmVlX3VuZG9fbGlzdDwvQj4gPEk+KHZvaWQpPC9JPgogPEREPkZyZWUgdGhlIGV4aXN0aW5nIHVuZG8gbGlzdC4KIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDI0MCI+PC9BPgorPEEgTkFNRT0iSURYMjUxIj48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+cmxfZG9fdW5kbzwvQj4gPEk+KHZvaWQpPC9JPgogPEREPlVuZG8gdGhlIGZpcnN0IHRoaW5nIG9uIHRoZSB1bmRvIGxpc3QuICBSZXR1cm5zIDxDT0RFPjA8L0NPREU+IGlmIHRoZXJlIHdhcwpAQCAtMzE2MSw3ICszMjY3LDcgQEAKIHRoZSB0ZXh0IHJhbmdlIHRoYXQgeW91IGFyZSBnb2luZyB0byBtb2RpZnkuCiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDI0MSI+PC9BPgorPEEgTkFNRT0iSURYMjUyIj48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+cmxfbW9kaWZ5aW5nPC9CPiA8ST4oaW50IHN0YXJ0LCBpbnQgZW5kKTwvST4KIDxERD5UZWxsIFJlYWRsaW5lIHRvIHNhdmUgdGhlIHRleHQgYmV0d2VlbiA8VkFSPnN0YXJ0PC9WQVI+IGFuZCA8VkFSPmVuZDwvVkFSPiBhcyBhCkBAIC0zMTgxLDE0ICszMjg3LDE0IEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0MyI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEgzPiAyLjQuNiBSZWRpc3BsYXkgPC9IMz4KIDwhLS1kb2NpZDo6U0VDMzU6Oi0tPgogPFA+CiAKLTxBIE5BTUU9IklEWDI0MiI+PC9BPgorPEEgTkFNRT0iSURYMjUzIj48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiB2b2lkIDxCPnJsX3JlZGlzcGxheTwvQj4gPEk+KHZvaWQpPC9JPgogPEREPkNoYW5nZSB3aGF0J3MgZGlzcGxheWVkIG9uIHRoZSBzY3JlZW4gdG8gcmVmbGVjdCB0aGUgY3VycmVudCBjb250ZW50cwpAQCAtMzE5Niw3ICszMzAyLDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDI0MyI+PC9BPgorPEEgTkFNRT0iSURYMjU0Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+cmxfZm9yY2VkX3VwZGF0ZV9kaXNwbGF5PC9CPiA8ST4odm9pZCk8L0k+CiA8REQ+Rm9yY2UgdGhlIGxpbmUgdG8gYmUgdXBkYXRlZCBhbmQgcmVkaXNwbGF5ZWQsIHdoZXRoZXIgb3Igbm90CkBAIC0zMjA0LDcgKzMzMTAsNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMjQ0Ij48L0E+Cis8QSBOQU1FPSJJRFgyNTUiPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IGludCA8Qj5ybF9vbl9uZXdfbGluZTwvQj4gPEk+KHZvaWQpPC9JPgogPEREPlRlbGwgdGhlIHVwZGF0ZSBmdW5jdGlvbnMgdGhhdCB3ZSBoYXZlIG1vdmVkIG9udG8gYSBuZXcgKGVtcHR5KSBsaW5lLApAQCAtMzIxMiw3ICszMzE4LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDI0NSI+PC9BPgorPEEgTkFNRT0iSURYMjU2Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+cmxfb25fbmV3X2xpbmVfd2l0aF9wcm9tcHQ8L0I+IDxJPih2b2lkKTwvST4KIDxERD5UZWxsIHRoZSB1cGRhdGUgZnVuY3Rpb25zIHRoYXQgd2UgaGF2ZSBtb3ZlZCBvbnRvIGEgbmV3IGxpbmUsIHdpdGgKQEAgLTMyMjQsNyArMzMzMCw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyNDYiPjwvQT4KKzxBIE5BTUU9IklEWDI1NyI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPnJsX3Jlc2V0X2xpbmVfc3RhdGU8L0I+IDxJPih2b2lkKTwvST4KIDxERD5SZXNldCB0aGUgZGlzcGxheSBzdGF0ZSB0byBhIGNsZWFuIHN0YXRlIGFuZCByZWRpc3BsYXkgdGhlIGN1cnJlbnQgbGluZQpAQCAtMzIzMiwxNCArMzMzOCwxNCBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMjQ3Ij48L0E+Cis8QSBOQU1FPSJJRFgyNTgiPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IGludCA8Qj5ybF9jcmxmPC9CPiA8ST4odm9pZCk8L0k+CiA8REQ+TW92ZSB0aGUgY3Vyc29yIHRvIHRoZSBzdGFydCBvZiB0aGUgbmV4dCBzY3JlZW4gbGluZS4KIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDI0OCI+PC9BPgorPEEgTkFNRT0iSURYMjU5Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+cmxfc2hvd19jaGFyPC9CPiA8ST4oaW50IGMpPC9JPgogPEREPkRpc3BsYXkgY2hhcmFjdGVyIDxWQVI+YzwvVkFSPiBvbiA8Q09ERT5ybF9vdXRzdHJlYW08L0NPREU+LgpAQCAtMzI1MCw3ICszMzU2LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDI0OSI+PC9BPgorPEEgTkFNRT0iSURYMjYwIj48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+cmxfbWVzc2FnZTwvQj4gPEk+KGNvbnN0IGNoYXIgKiwgPHNtYWxsPi4uLjwvc21hbGw+KTwvST4KIDxERD5UaGUgYXJndW1lbnRzIGFyZSBhIGZvcm1hdCBzdHJpbmcgYXMgd291bGQgYmUgc3VwcGxpZWQgdG8gPENPREU+cHJpbnRmPC9DT0RFPiwKQEAgLTMyNTgsMTcgKzMzNjQsMjEgQEAKIGFueSBhZGRpdGlvbmFsIGFyZ3VtZW50cyBuZWNlc3NhcnkgdG8gc2F0aXNmeSB0aGUgY29udmVyc2lvbiBzcGVjaWZpY2F0aW9ucy4KIFRoZSByZXN1bHRpbmcgc3RyaW5nIGlzIGRpc3BsYXllZCBpbiB0aGUgPEVNPmVjaG8gYXJlYTwvRU0+LiAgVGhlIGVjaG8gYXJlYQogaXMgYWxzbyB1c2VkIHRvIGRpc3BsYXkgbnVtZXJpYyBhcmd1bWVudHMgYW5kIHNlYXJjaCBzdHJpbmdzLgorWW91IHNob3VsZCBjYWxsIDxDT0RFPnJsX3NhdmVfcHJvbXB0PC9DT0RFPiB0byBzYXZlIHRoZSBwcm9tcHQgaW5mb3JtYXRpb24KK2JlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uCiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyNTAiPjwvQT4KKzxBIE5BTUU9IklEWDI2MSI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPnJsX2NsZWFyX21lc3NhZ2U8L0I+IDxJPih2b2lkKTwvST4KLTxERD5DbGVhciB0aGUgbWVzc2FnZSBpbiB0aGUgZWNobyBhcmVhLgorPEREPkNsZWFyIHRoZSBtZXNzYWdlIGluIHRoZSBlY2hvIGFyZWEuICBJZiB0aGUgcHJvbXB0IHdhcyBzYXZlZCB3aXRoIGEgY2FsbCB0bworPENPREU+cmxfc2F2ZV9wcm9tcHQ8L0NPREU+IGJlZm9yZSB0aGUgbGFzdCBjYWxsIHRvIDxDT0RFPnJsX21lc3NhZ2U8L0NPREU+LAorY2FsbCA8Q09ERT5ybF9yZXN0b3JlX3Byb21wdDwvQ09ERT4gYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi4KIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDI1MSI+PC9BPgorPEEgTkFNRT0iSURYMjYyIj48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiB2b2lkIDxCPnJsX3NhdmVfcHJvbXB0PC9CPiA8ST4odm9pZCk8L0k+CiA8REQ+U2F2ZSB0aGUgbG9jYWwgUmVhZGxpbmUgcHJvbXB0IGRpc3BsYXkgc3RhdGUgaW4gcHJlcGFyYXRpb24gZm9yCkBAIC0zMjc2LDE1ICszMzg2LDE4IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyNTIiPjwvQT4KKzxBIE5BTUU9IklEWDI2MyI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gdm9pZCA8Qj5ybF9yZXN0b3JlX3Byb21wdDwvQj4gPEk+KHZvaWQpPC9JPgogPEREPlJlc3RvcmUgdGhlIGxvY2FsIFJlYWRsaW5lIHByb21wdCBkaXNwbGF5IHN0YXRlIHNhdmVkIGJ5IHRoZSBtb3N0CiByZWNlbnQgY2FsbCB0byA8Q09ERT5ybF9zYXZlX3Byb21wdDwvQ09ERT4uCitpZiA8Q09ERT5ybF9zYXZlX3Byb21wdDwvQ09ERT4gd2FzIGNhbGxlZCB0byBzYXZlIHRoZSBwcm9tcHQgYmVmb3JlIGEgY2FsbAordG8gPENPREU+cmxfbWVzc2FnZTwvQ09ERT4sIHRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgdGhlCitjb3JyZXNwb25kaW5nIGNhbGwgdG8gPENPREU+cmxfY2xlYXJfbWVzc2FnZTwvQ09ERT4uCiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyNTMiPjwvQT4KKzxBIE5BTUU9IklEWDI2NCI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPnJsX2V4cGFuZF9wcm9tcHQ8L0I+IDxJPihjaGFyICpwcm9tcHQpPC9JPgogPEREPkV4cGFuZCBhbnkgc3BlY2lhbCBjaGFyYWN0ZXIgc2VxdWVuY2VzIGluIDxWQVI+cHJvbXB0PC9WQVI+IGFuZCBzZXQgdXAgdGhlCkBAIC0zMjk0LDEwICszNDA3LDE1IEBACiBmdW5jdGlvbiBvciA8Q09ERT5ybF9hbHJlYWR5X3Byb21wdGVkPC9DT0RFPiB2YXJpYWJsZSBpcyB1c2VkLgogSXQgcmV0dXJucyB0aGUgbnVtYmVyIG9mIHZpc2libGUgY2hhcmFjdGVycyBvbiB0aGUgbGFzdCBsaW5lIG9mIHRoZQogKHBvc3NpYmx5IG11bHRpLWxpbmUpIHByb21wdC4KK0FwcGxpY2F0aW9ucyBtYXkgaW5kaWNhdGUgdGhhdCB0aGUgcHJvbXB0IGNvbnRhaW5zIGNoYXJhY3RlcnMgdGhhdCB0YWtlCit1cCBubyBwaHlzaWNhbCBzY3JlZW4gc3BhY2Ugd2hlbiBkaXNwbGF5ZWQgYnkgYnJhY2tldGluZyBhIHNlcXVlbmNlIG9mCitzdWNoIGNoYXJhY3RlcnMgd2l0aCB0aGUgc3BlY2lhbCBtYXJrZXJzIDxDT0RFPlJMX1BST01QVF9TVEFSVF9JR05PUkU8L0NPREU+CithbmQgPENPREU+UkxfUFJPTVBUX0VORF9JR05PUkU8L0NPREU+IChkZWNsYXJlZCBpbiA8VFQ+YHJlYWRsaW5lLmgnPC9UVD4uICBUaGlzIG1heQorYmUgdXNlZCB0byBlbWJlZCB0ZXJtaW5hbC1zcGVjaWZpYyBlc2NhcGUgc2VxdWVuY2VzIGluIHByb21wdHMuCiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyNTQiPjwvQT4KKzxBIE5BTUU9IklEWDI2NSI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPnJsX3NldF9wcm9tcHQ8L0I+IDxJPihjb25zdCBjaGFyICpwcm9tcHQpPC9JPgogPEREPk1ha2UgUmVhZGxpbmUgdXNlIDxWQVI+cHJvbXB0PC9WQVI+IGZvciBzdWJzZXF1ZW50IHJlZGlzcGxheS4gIFRoaXMgY2FsbHMKQEAgLTMzMTcsMTQgKzM0MzUsMTQgQEAKIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQzIj4gJmd0OyZndDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDkiPkluZGV4PC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNTIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+CiA8L1RSPjwvVEFCTEU+CiA8SDM+IDIuNC43IE1vZGlmeWluZyBUZXh0IDwvSDM+CiA8IS0tZG9jaWQ6OlNFQzM2OjotLT4KIDxQPgogCi08QSBOQU1FPSJJRFgyNTUiPjwvQT4KKzxBIE5BTUU9IklEWDI2NiI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPnJsX2luc2VydF90ZXh0PC9CPiA8ST4oY29uc3QgY2hhciAqdGV4dCk8L0k+CiA8REQ+SW5zZXJ0IDxWQVI+dGV4dDwvVkFSPiBpbnRvIHRoZSBsaW5lIGF0IHRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbi4KQEAgLTMzMzIsNyArMzQ1MCw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyNTYiPjwvQT4KKzxBIE5BTUU9IklEWDI2NyI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPnJsX2RlbGV0ZV90ZXh0PC9CPiA8ST4oaW50IHN0YXJ0LCBpbnQgZW5kKTwvST4KIDxERD5EZWxldGUgdGhlIHRleHQgYmV0d2VlbiA8VkFSPnN0YXJ0PC9WQVI+IGFuZCA8VkFSPmVuZDwvVkFSPiBpbiB0aGUgY3VycmVudCBsaW5lLgpAQCAtMzM0MCw3ICszNDU4LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDI1NyI+PC9BPgorPEEgTkFNRT0iSURYMjY4Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBjaGFyICogPEI+cmxfY29weV90ZXh0PC9CPiA8ST4oaW50IHN0YXJ0LCBpbnQgZW5kKTwvST4KIDxERD5SZXR1cm4gYSBjb3B5IG9mIHRoZSB0ZXh0IGJldHdlZW4gPFZBUj5zdGFydDwvVkFSPiBhbmQgPFZBUj5lbmQ8L1ZBUj4gaW4KQEAgLTMzNDgsNyArMzQ2Niw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyNTgiPjwvQT4KKzxBIE5BTUU9IklEWDI2OSI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPnJsX2tpbGxfdGV4dDwvQj4gPEk+KGludCBzdGFydCwgaW50IGVuZCk8L0k+CiA8REQ+Q29weSB0aGUgdGV4dCBiZXR3ZWVuIDxWQVI+c3RhcnQ8L1ZBUj4gYW5kIDxWQVI+ZW5kPC9WQVI+IGluIHRoZSBjdXJyZW50IGxpbmUKQEAgLTMzNjAsNyArMzQ3OCw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyNTkiPjwvQT4KKzxBIE5BTUU9IklEWDI3MCI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPnJsX3B1c2hfbWFjcm9faW5wdXQ8L0I+IDxJPihjaGFyICptYWNybyk8L0k+CiA8REQ+Q2F1c2UgPFZBUj5tYWNybzwvVkFSPiB0byBiZSBpbnNlcnRlZCBpbnRvIHRoZSBsaW5lLCBhcyBpZiBpdCBoYWQgYmVlbiBpbnZva2VkCkBAIC0zMzgwLDE0ICszNDk4LDE0IEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0MyI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEgzPiAyLjQuOCBDaGFyYWN0ZXIgSW5wdXQgPC9IMz4KIDwhLS1kb2NpZDo6U0VDMzc6Oi0tPgogPFA+CiAKLTxBIE5BTUU9IklEWDI2MCI+PC9BPgorPEEgTkFNRT0iSURYMjcxIj48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+cmxfcmVhZF9rZXk8L0I+IDxJPih2b2lkKTwvST4KIDxERD5SZXR1cm4gdGhlIG5leHQgY2hhcmFjdGVyIGF2YWlsYWJsZSBmcm9tIFJlYWRsaW5lJ3MgY3VycmVudCBpbnB1dCBzdHJlYW0uCkBAIC0zMzk5LDcgKzM1MTcsNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMjYxIj48L0E+Cis8QSBOQU1FPSJJRFgyNzIiPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IGludCA8Qj5ybF9nZXRjPC9CPiA8ST4oRklMRSAqc3RyZWFtKTwvST4KIDxERD5SZXR1cm4gdGhlIG5leHQgY2hhcmFjdGVyIGF2YWlsYWJsZSBmcm9tIDxWQVI+c3RyZWFtPC9WQVI+LCB3aGljaCBpcyBhc3N1bWVkIHRvCkBAIC0zNDA3LDcgKzM1MjUsNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMjYyIj48L0E+Cis8QSBOQU1FPSJJRFgyNzMiPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IGludCA8Qj5ybF9zdHVmZl9jaGFyPC9CPiA8ST4oaW50IGMpPC9JPgogPEREPkluc2VydCA8VkFSPmM8L1ZBUj4gaW50byB0aGUgUmVhZGxpbmUgaW5wdXQgc3RyZWFtLiAgSXQgd2lsbCBiZSAicmVhZCIKQEAgLTM0MTgsNyArMzUzNiw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyNjMiPjwvQT4KKzxBIE5BTUU9IklEWDI3NCI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPnJsX2V4ZWN1dGVfbmV4dDwvQj4gPEk+KGludCBjKTwvST4KIDxERD5NYWtlIDxWQVI+YzwvVkFSPiBiZSB0aGUgbmV4dCBjb21tYW5kIHRvIGJlIGV4ZWN1dGVkIHdoZW4gPENPREU+cmxfcmVhZF9rZXkoKTwvQ09ERT4KQEAgLTM0MjYsNyArMzU0NCw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyNjQiPjwvQT4KKzxBIE5BTUU9IklEWDI3NSI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPnJsX2NsZWFyX3BlbmRpbmdfaW5wdXQ8L0I+IDxJPih2b2lkKTwvST4KIDxERD5VbnNldCA8VkFSPnJsX3BlbmRpbmdfaW5wdXQ8L1ZBUj4sIGVmZmVjdGl2ZWx5IG5lZ2F0aW5nIHRoZSBlZmZlY3Qgb2YgYW55CkBAIC0zNDM1LDcgKzM1NTMsNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMjY1Ij48L0E+Cis8QSBOQU1FPSJJRFgyNzYiPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IGludCA8Qj5ybF9zZXRfa2V5Ym9hcmRfaW5wdXRfdGltZW91dDwvQj4gPEk+KGludCB1KTwvST4KIDxERD5XaGlsZSB3YWl0aW5nIGZvciBrZXlib2FyZCBpbnB1dCBpbiA8Q09ERT5ybF9yZWFkX2tleSgpPC9DT0RFPiwgUmVhZGxpbmUgd2lsbApAQCAtMzQ1NiwxNCArMzU3NCwxNCBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDMiPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMz4gMi40LjkgVGVybWluYWwgTWFuYWdlbWVudCA8L0gzPgogPCEtLWRvY2lkOjpTRUMzODo6LS0+CiA8UD4KIAotPEEgTkFNRT0iSURYMjY2Ij48L0E+Cis8QSBOQU1FPSJJRFgyNzciPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IHZvaWQgPEI+cmxfcHJlcF90ZXJtaW5hbDwvQj4gPEk+KGludCBtZXRhX2ZsYWcpPC9JPgogPEREPk1vZGlmeSB0aGUgdGVybWluYWwgc2V0dGluZ3MgZm9yIFJlYWRsaW5lJ3MgdXNlLCBzbyA8Q09ERT5yZWFkbGluZSgpPC9DT0RFPgpAQCAtMzQ3Myw3ICszNTkxLDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDI2NyI+PC9BPgorPEEgTkFNRT0iSURYMjc4Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiB2b2lkIDxCPnJsX2RlcHJlcF90ZXJtaW5hbDwvQj4gPEk+KHZvaWQpPC9JPgogPEREPlVuZG8gdGhlIGVmZmVjdHMgb2YgPENPREU+cmxfcHJlcF90ZXJtaW5hbCgpPC9DT0RFPiwgbGVhdmluZyB0aGUgdGVybWluYWwgaW4KQEAgLTM0ODIsMTYgKzM2MDAsMjUgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDI2OCI+PC9BPgorPEEgTkFNRT0iSURYMjc5Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiB2b2lkIDxCPnJsX3R0eV9zZXRfZGVmYXVsdF9iaW5kaW5nczwvQj4gPEk+KEtleW1hcCBrbWFwKTwvST4KLTxERD5SZWFkIHRoZSBvcGVyYXRpbmcgc3lzdGVtJ3MgdGVybWluYWwgZWRpdGluZyBjaGFyYWN0ZXJzIChhcyB3b3VsZCBiZSBkaXNwbGF5ZWQKLWJ5IDxDT0RFPnN0dHk8L0NPREU+KSB0byB0aGVpciBSZWFkbGluZSBlcXVpdmFsZW50cy4gIFRoZSBiaW5kaW5ncyBhcmUgcGVyZm9ybWVkCi1pbiA8VkFSPmttYXA8L1ZBUj4uCis8REQ+UmVhZCB0aGUgb3BlcmF0aW5nIHN5c3RlbSdzIHRlcm1pbmFsIGVkaXRpbmcgY2hhcmFjdGVycyAoYXMgd291bGQgYmUKK2Rpc3BsYXllZCBieSA8Q09ERT5zdHR5PC9DT0RFPikgdG8gdGhlaXIgUmVhZGxpbmUgZXF1aXZhbGVudHMuCitUaGUgYmluZGluZ3MgYXJlIHBlcmZvcm1lZCBpbiA8VkFSPmttYXA8L1ZBUj4uCiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyNjkiPjwvQT4KKzxBIE5BTUU9IklEWDI4MCI+PC9BPgorPERMPgorPERUPjxVPkZ1bmN0aW9uOjwvVT4gdm9pZCA8Qj5ybF90dHlfdW5zZXRfZGVmYXVsdF9iaW5kaW5nczwvQj4gPEk+KEtleW1hcCBrbWFwKTwvST4KKzxERD5SZXNldCB0aGUgYmluZGluZ3MgbWFuaXB1bGF0ZWQgYnkgPENPREU+cmxfdHR5X3NldF9kZWZhdWx0X2JpbmRpbmdzPC9DT0RFPiBzbwordGhhdCB0aGUgdGVybWluYWwgZWRpdGluZyBjaGFyYWN0ZXJzIGFyZSBib3VuZCB0byA8Q09ERT5ybF9pbnNlcnQ8L0NPREU+LgorVGhlIGJpbmRpbmdzIGFyZSBwZXJmb3JtZWQgaW4gPFZBUj5rbWFwPC9WQVI+LgorPC9ETD4KKzwvUD48UD4KKworPEEgTkFNRT0iSURYMjgxIj48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+cmxfcmVzZXRfdGVybWluYWw8L0I+IDxJPihjb25zdCBjaGFyICp0ZXJtaW5hbF9uYW1lKTwvST4KIDxERD5SZWluaXRpYWxpemUgUmVhZGxpbmUncyBpZGVhIG9mIHRoZSB0ZXJtaW5hbCBzZXR0aW5ncyB1c2luZwpAQCAtMzUxMiwxNCArMzYzOSwxNCBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDMiPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMz4gMi40LjEwIFV0aWxpdHkgRnVuY3Rpb25zIDwvSDM+CiA8IS0tZG9jaWQ6OlNFQzM5OjotLT4KIDxQPgogCi08QSBOQU1FPSJJRFgyNzAiPjwvQT4KKzxBIE5BTUU9IklEWDI4MiI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gdm9pZCA8Qj5ybF9yZXBsYWNlX2xpbmU8L0I+IDxJPihjb25zdCBjaGFyICp0ZXh0LCBpbnQgY2xlYXJfdW5kbyk8L0k+CiA8REQ+UmVwbGFjZSB0aGUgY29udGVudHMgb2YgPENPREU+cmxfbGluZV9idWZmZXI8L0NPREU+IHdpdGggPFZBUj50ZXh0PC9WQVI+LgpAQCAtMzUyOSw3ICszNjU2LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDI3MSI+PC9BPgorPEEgTkFNRT0iSURYMjgzIj48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+cmxfZXh0ZW5kX2xpbmVfYnVmZmVyPC9CPiA8ST4oaW50IGxlbik8L0k+CiA8REQ+RW5zdXJlIHRoYXQgPENPREU+cmxfbGluZV9idWZmZXI8L0NPREU+IGhhcyBlbm91Z2ggc3BhY2UgdG8gaG9sZCA8VkFSPmxlbjwvVkFSPgpAQCAtMzUzNyw3ICszNjY0LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDI3MiI+PC9BPgorPEEgTkFNRT0iSURYMjg0Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+cmxfaW5pdGlhbGl6ZTwvQj4gPEk+KHZvaWQpPC9JPgogPEREPkluaXRpYWxpemUgb3IgcmUtaW5pdGlhbGl6ZSBSZWFkbGluZSdzIGludGVybmFsIHN0YXRlLgpAQCAtMzU0NiwyMSArMzY3MywyMSBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMjczIj48L0E+Cis8QSBOQU1FPSJJRFgyODUiPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IGludCA8Qj5ybF9kaW5nPC9CPiA8ST4odm9pZCk8L0k+CiA8REQ+UmluZyB0aGUgdGVybWluYWwgYmVsbCwgb2JleWluZyB0aGUgc2V0dGluZyBvZiA8Q09ERT5iZWxsLXN0eWxlPC9DT0RFPi4KIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDI3NCI+PC9BPgorPEEgTkFNRT0iSURYMjg2Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+cmxfYWxwaGFiZXRpYzwvQj4gPEk+KGludCBjKTwvST4KIDxERD5SZXR1cm4gMSBpZiA8VkFSPmM8L1ZBUj4gaXMgYW4gYWxwaGFiZXRpYyBjaGFyYWN0ZXIuCiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyNzUiPjwvQT4KKzxBIE5BTUU9IklEWDI4NyI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gdm9pZCA8Qj5ybF9kaXNwbGF5X21hdGNoX2xpc3Q8L0I+IDxJPihjaGFyICoqbWF0Y2hlcywgaW50IGxlbiwgaW50IG1heCk8L0k+CiA8REQ+QSBjb252ZW5pZW5jZSBmdW5jdGlvbiBmb3IgZGlzcGxheWluZyBhIGxpc3Qgb2Ygc3RyaW5ncyBpbgpAQCAtMzU3NywyOCArMzcwNCwyOCBAQAogQXBwbGljYXRpb25zIHNob3VsZCByZWZyYWluIGZyb20gdXNpbmcgdGhlbS4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMjc2Ij48L0E+Cis8QSBOQU1FPSJJRFgyODgiPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IGludCA8Qj5fcmxfdXBwZXJjYXNlX3A8L0I+IDxJPihpbnQgYyk8L0k+CiA8REQ+UmV0dXJuIDEgaWYgPFZBUj5jPC9WQVI+IGlzIGFuIHVwcGVyY2FzZSBhbHBoYWJldGljIGNoYXJhY3Rlci4KIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDI3NyI+PC9BPgorPEEgTkFNRT0iSURYMjg5Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+X3JsX2xvd2VyY2FzZV9wPC9CPiA8ST4oaW50IGMpPC9JPgogPEREPlJldHVybiAxIGlmIDxWQVI+YzwvVkFSPiBpcyBhIGxvd2VyY2FzZSBhbHBoYWJldGljIGNoYXJhY3Rlci4KIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDI3OCI+PC9BPgorPEEgTkFNRT0iSURYMjkwIj48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+X3JsX2RpZ2l0X3A8L0I+IDxJPihpbnQgYyk8L0k+CiA8REQ+UmV0dXJuIDEgaWYgPFZBUj5jPC9WQVI+IGlzIGEgbnVtZXJpYyBjaGFyYWN0ZXIuCiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyNzkiPjwvQT4KKzxBIE5BTUU9IklEWDI5MSI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPl9ybF90b191cHBlcjwvQj4gPEk+KGludCBjKTwvST4KIDxERD5JZiA8VkFSPmM8L1ZBUj4gaXMgYSBsb3dlcmNhc2UgYWxwaGFiZXRpYyBjaGFyYWN0ZXIsIHJldHVybiB0aGUgY29ycmVzcG9uZGluZwpAQCAtMzYwNiw3ICszNzMzLDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDI4MCI+PC9BPgorPEEgTkFNRT0iSURYMjkyIj48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+X3JsX3RvX2xvd2VyPC9CPiA8ST4oaW50IGMpPC9JPgogPEREPklmIDxWQVI+YzwvVkFSPiBpcyBhbiB1cHBlcmNhc2UgYWxwaGFiZXRpYyBjaGFyYWN0ZXIsIHJldHVybiB0aGUgY29ycmVzcG9uZGluZwpAQCAtMzYxNCw3ICszNzQxLDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDI4MSI+PC9BPgorPEEgTkFNRT0iSURYMjkzIj48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+X3JsX2RpZ2l0X3ZhbHVlPC9CPiA8ST4oaW50IGMpPC9JPgogPEREPklmIDxWQVI+YzwvVkFSPiBpcyBhIG51bWJlciwgcmV0dXJuIHRoZSB2YWx1ZSBpdCByZXByZXNlbnRzLgpAQCAtMzYzMiwxNCArMzc1OSwxNCBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDMiPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMz4gMi40LjExIE1pc2NlbGxhbmVvdXMgRnVuY3Rpb25zIDwvSDM+CiA8IS0tZG9jaWQ6OlNFQzQwOjotLT4KIDxQPgogCi08QSBOQU1FPSJJRFgyODIiPjwvQT4KKzxBIE5BTUU9IklEWDI5NCI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPnJsX21hY3JvX2JpbmQ8L0I+IDxJPihjb25zdCBjaGFyICprZXlzZXEsIGNvbnN0IGNoYXIgKm1hY3JvLCBLZXltYXAgbWFwKTwvST4KIDxERD5CaW5kIHRoZSBrZXkgc2VxdWVuY2UgPFZBUj5rZXlzZXE8L1ZBUj4gdG8gaW52b2tlIHRoZSBtYWNybyA8VkFSPm1hY3JvPC9WQVI+LgpAQCAtMzY0OSw3ICszNzc2LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDI4MyI+PC9BPgorPEEgTkFNRT0iSURYMjk1Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiB2b2lkIDxCPnJsX21hY3JvX2R1bXBlcjwvQj4gPEk+KGludCByZWFkYWJsZSk8L0k+CiA8REQ+UHJpbnQgdGhlIGtleSBzZXF1ZW5jZXMgYm91bmQgdG8gbWFjcm9zIGFuZCB0aGVpciB2YWx1ZXMsIHVzaW5nCkBAIC0zNjU5LDcgKzM3ODYsNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMjg0Ij48L0E+Cis8QSBOQU1FPSJJRFgyOTYiPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IGludCA8Qj5ybF92YXJpYWJsZV9iaW5kPC9CPiA8ST4oY29uc3QgY2hhciAqdmFyaWFibGUsIGNvbnN0IGNoYXIgKnZhbHVlKTwvST4KIDxERD5NYWtlIHRoZSBSZWFkbGluZSB2YXJpYWJsZSA8VkFSPnZhcmlhYmxlPC9WQVI+IGhhdmUgPFZBUj52YWx1ZTwvVkFSPi4KQEAgLTM2NjksNyArMzc5NiwxNSBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMjg1Ij48L0E+Cis8QSBOQU1FPSJJRFgyOTciPjwvQT4KKzxETD4KKzxEVD48VT5GdW5jdGlvbjo8L1U+IGNoYXIgKiA8Qj5ybF92YXJpYWJsZV92YWx1ZTwvQj4gPEk+KGNvbnN0IGNoYXIgKnZhcmlhYmxlKTwvST4KKzxERD5SZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSB2YWx1ZSBvZiB0aGUgUmVhZGxpbmUgdmFyaWFibGUgPFZBUj52YXJpYWJsZTwvVkFSPi4KK0ZvciBib29sZWFuIHZhcmlhYmxlcywgdGhpcyBzdHJpbmcgaXMgZWl0aGVyIDxTQU1QPmBvbic8L1NBTVA+IG9yIDxTQU1QPmBvZmYnPC9TQU1QPi4KKzwvREw+Cis8L1A+PFA+CisKKzxBIE5BTUU9IklEWDI5OCI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gdm9pZCA8Qj5ybF92YXJpYWJsZV9kdW1wZXI8L0I+IDxJPihpbnQgcmVhZGFibGUpPC9JPgogPEREPlByaW50IHRoZSByZWFkbGluZSB2YXJpYWJsZSBuYW1lcyBhbmQgdGhlaXIgY3VycmVudCB2YWx1ZXMKQEAgLTM2NzksNyArMzgxNCw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyODYiPjwvQT4KKzxBIE5BTUU9IklEWDI5OSI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPnJsX3NldF9wYXJlbl9ibGlua190aW1lb3V0PC9CPiA8ST4oaW50IHUpPC9JPgogPEREPlNldCB0aGUgdGltZSBpbnRlcnZhbCAoaW4gbWljcm9zZWNvbmRzKSB0aGF0IFJlYWRsaW5lIHdhaXRzIHdoZW4gc2hvd2luZwpAQCAtMzY4Nyw3ICszODIyLDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDI4NyI+PC9BPgorPEEgTkFNRT0iSURYMzAwIj48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBjaGFyICogPEI+cmxfZ2V0X3Rlcm1jYXA8L0I+IDxJPihjb25zdCBjaGFyICpjYXApPC9JPgogPEREPlJldHJpZXZlIHRoZSBzdHJpbmcgdmFsdWUgb2YgdGhlIHRlcm1jYXAgY2FwYWJpbGl0eSA8VkFSPmNhcDwvVkFSPi4KQEAgLTM3MTAsNyArMzg0NSw3IEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0MyI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEgzPiAyLjQuMTIgQWx0ZXJuYXRlIEludGVyZmFjZSA8L0gzPgpAQCAtMzcyNSw3ICszODYwLDcgQEAKIGFyZSBmdW5jdGlvbnMgYXZhaWxhYmxlIHRvIG1ha2UgdGhpcyBlYXN5LgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyODgiPjwvQT4KKzxBIE5BTUU9IklEWDMwMSI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gdm9pZCA8Qj5ybF9jYWxsYmFja19oYW5kbGVyX2luc3RhbGw8L0I+IDxJPihjb25zdCBjaGFyICpwcm9tcHQsIHJsX3ZjcGZ1bmNfdCAqbGhhbmRsZXIpPC9JPgogPEREPlNldCB1cCB0aGUgdGVybWluYWwgZm9yIHJlYWRsaW5lIEkvTyBhbmQgZGlzcGxheSB0aGUgaW5pdGlhbApAQCAtMzczNSw3ICszODcwLDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDI4OSI+PC9BPgorPEEgTkFNRT0iSURYMzAyIj48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiB2b2lkIDxCPnJsX2NhbGxiYWNrX3JlYWRfY2hhcjwvQj4gPEk+KHZvaWQpPC9JPgogPEREPldoZW5ldmVyIGFuIGFwcGxpY2F0aW9uIGRldGVybWluZXMgdGhhdCBrZXlib2FyZCBpbnB1dCBpcyBhdmFpbGFibGUsIGl0CkBAIC0zNzU0LDcgKzM4ODksNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMjkwIj48L0E+Cis8QSBOQU1FPSJJRFgzMDMiPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IHZvaWQgPEI+cmxfY2FsbGJhY2tfaGFuZGxlcl9yZW1vdmU8L0I+IDxJPih2b2lkKTwvST4KIDxERD5SZXN0b3JlIHRoZSB0ZXJtaW5hbCB0byBpdHMgaW5pdGlhbCBzdGF0ZSBhbmQgcmVtb3ZlIHRoZSBsaW5lIGhhbmRsZXIuCkBAIC0zNzc3LDcgKzM5MTIsNyBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDMiPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMz4gMi40LjEzIEEgUmVhZGxpbmUgRXhhbXBsZSA8L0gzPgpAQCAtMzg1NiwxMCArMzk5MSwxMCBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDQiPiAmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDQiPiAmbHQ7Jmx0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMyI+IFVwIDwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPlsgJmd0OyZndDsgXTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEgyPiAyLjUgUmVhZGxpbmUgU2lnbmFsIEhhbmRsaW5nIDwvSDI+CkBAIC0zOTEyLDcgKzQwNDcsNyBAQAogYSBzaWduYWwgaGFuZGxlciwgc28gUmVhZGxpbmUncyBpbnRlcm5hbCBzaWduYWwgc3RhdGUgaXMgbm90IGNvcnJ1cHRlZC4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMjkxIj48L0E+Cis8QSBOQU1FPSJJRFgzMDQiPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IGludCA8Qj5ybF9jYXRjaF9zaWduYWxzPC9CPgogPEREPklmIHRoaXMgdmFyaWFibGUgaXMgbm9uLXplcm8sIFJlYWRsaW5lIHdpbGwgaW5zdGFsbCBzaWduYWwgaGFuZGxlcnMgZm9yCkBAIC0zOTI0LDcgKzQwNTksNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMjkyIj48L0E+Cis8QSBOQU1FPSJJRFgzMDUiPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IGludCA8Qj5ybF9jYXRjaF9zaWd3aW5jaDwvQj4KIDxERD5JZiB0aGlzIHZhcmlhYmxlIGlzIG5vbi16ZXJvLCBSZWFkbGluZSB3aWxsIGluc3RhbGwgYSBzaWduYWwgaGFuZGxlciBmb3IKQEAgLTM5NDIsNyArNDA3Nyw3IEBACiBhbmQgaW50ZXJuYWwgc3RhdGUgY2xlYW51cCB1cG9uIHJlY2VpcHQgb2YgYSBzaWduYWwuCiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDI5MyI+PC9BPgorPEEgTkFNRT0iSURYMzA2Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiB2b2lkIDxCPnJsX2NsZWFudXBfYWZ0ZXJfc2lnbmFsPC9CPiA8ST4odm9pZCk8L0k+CiA8REQ+VGhpcyBmdW5jdGlvbiB3aWxsIHJlc2V0IHRoZSBzdGF0ZSBvZiB0aGUgdGVybWluYWwgdG8gd2hhdCBpdCB3YXMgYmVmb3JlCkBAIC0zOTUyLDcgKzQwODcsNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMjk0Ij48L0E+Cis8QSBOQU1FPSJJRFgzMDciPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IHZvaWQgPEI+cmxfZnJlZV9saW5lX3N0YXRlPC9CPiA8ST4odm9pZCk8L0k+CiA8REQ+VGhpcyB3aWxsIGZyZWUgYW55IHBhcnRpYWwgc3RhdGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IGlucHV0IGxpbmUKQEAgLTM5NjQsNyArNDA5OSw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyOTUiPjwvQT4KKzxBIE5BTUU9IklEWDMwOCI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gdm9pZCA8Qj5ybF9yZXNldF9hZnRlcl9zaWduYWw8L0I+IDxJPih2b2lkKTwvST4KIDxERD5UaGlzIHdpbGwgcmVpbml0aWFsaXplIHRoZSB0ZXJtaW5hbCBhbmQgcmVpbnN0YWxsIGFueSBSZWFkbGluZSBzaWduYWwKQEAgLTM5NzksMTggKzQxMTQsMTkgQEAKIGlzIHJlY2VpdmVkLgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyOTYiPjwvQT4KKzxBIE5BTUU9IklEWDMwOSI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gdm9pZCA8Qj5ybF9yZXNpemVfdGVybWluYWw8L0I+IDxJPih2b2lkKTwvST4KIDxERD5VcGRhdGUgUmVhZGxpbmUncyBpbnRlcm5hbCBzY3JlZW4gc2l6ZSBieSByZWFkaW5nIHZhbHVlcyBmcm9tIHRoZSBrZXJuZWwuCiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyOTciPjwvQT4KKzxBIE5BTUU9IklEWDMxMCI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gdm9pZCA8Qj5ybF9zZXRfc2NyZWVuX3NpemU8L0I+IDxJPihpbnQgcm93cywgaW50IGNvbHMpPC9JPgogPEREPlNldCBSZWFkbGluZSdzIGlkZWEgb2YgdGhlIHRlcm1pbmFsIHNpemUgdG8gPFZBUj5yb3dzPC9WQVI+IHJvd3MgYW5kCi08VkFSPmNvbHM8L1ZBUj4gY29sdW1ucy4KKzxWQVI+Y29sczwvVkFSPiBjb2x1bW5zLiAgSWYgZWl0aGVyIDxWQVI+cm93czwvVkFSPiBvciA8VkFSPmNvbHVtbnM8L1ZBUj4gaXMgbGVzcyB0aGFuCitvciBlcXVhbCB0byAwLCBSZWFkbGluZSdzIGlkZWEgb2YgdGhhdCB0ZXJtaW5hbCBkaW1lbnNpb24gaXMgdW5jaGFuZ2VkLgogPC9ETD4KIDwvUD48UD4KIApAQCAtMzk5OSw3ICs0MTM1LDcgQEAKIHNpemUgbWF5IGJlIHF1ZXJpZWQuCiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDI5OCI+PC9BPgorPEEgTkFNRT0iSURYMzExIj48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiB2b2lkIDxCPnJsX2dldF9zY3JlZW5fc2l6ZTwvQj4gPEk+KGludCAqcm93cywgaW50ICpjb2xzKTwvST4KIDxERD5SZXR1cm4gUmVhZGxpbmUncyBpZGVhIG9mIHRoZSB0ZXJtaW5hbCdzIHNpemUgaW4gdGhlCkBAIC00MDA3LDEwICs0MTQzLDE3IEBACiA8L0RMPgogPC9QPjxQPgogCis8QSBOQU1FPSJJRFgzMTIiPjwvQT4KKzxETD4KKzxEVD48VT5GdW5jdGlvbjo8L1U+IHZvaWQgPEI+cmxfcmVzZXRfc2NyZWVuX3NpemU8L0I+IDxJPih2b2lkKTwvST4KKzxERD5DYXVzZSBSZWFkbGluZSB0byByZW9idGFpbiB0aGUgc2NyZWVuIHNpemUgYW5kIHJlY2FsY3VsYXRlIGl0cyBkaW1lbnNpb25zLgorPC9ETD4KKzwvUD48UD4KKwogVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgaW5zdGFsbCBhbmQgcmVtb3ZlIFJlYWRsaW5lJ3Mgc2lnbmFsIGhhbmRsZXJzLgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgyOTkiPjwvQT4KKzxBIE5BTUU9IklEWDMxMyI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPnJsX3NldF9zaWduYWxzPC9CPiA8ST4odm9pZCk8L0k+CiA8REQ+SW5zdGFsbCBSZWFkbGluZSdzIHNpZ25hbCBoYW5kbGVyIGZvciA8Q09ERT5TSUdJTlQ8L0NPREU+LCA8Q09ERT5TSUdRVUlUPC9DT0RFPiwKQEAgLTQwMjAsNyArNDE2Myw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgzMDAiPjwvQT4KKzxBIE5BTUU9IklEWDMxNCI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPnJsX2NsZWFyX3NpZ25hbHM8L0I+IDxJPih2b2lkKTwvST4KIDxERD5SZW1vdmUgYWxsIG9mIHRoZSBSZWFkbGluZSBzaWduYWwgaGFuZGxlcnMgaW5zdGFsbGVkIGJ5CkBAIC00MDM2LDEwICs0MTc5LDEwIEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NSI+ICZndDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bICZsdDsmbHQ7IF08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjMiPiBVcCA8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bICZndDsmZ3Q7IF08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDkiPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMj4gMi42IEN1c3RvbSBDb21wbGV0ZXJzIDwvSDI+CkBAIC00MDY5LDEwICs0MjEyLDEwIEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NiI+ICZndDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bICZsdDsmbHQ7IF08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDQiPiBVcCA8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bICZndDsmZ3Q7IF08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDkiPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMz4gMi42LjEgSG93IENvbXBsZXRpbmcgV29ya3MgPC9IMz4KQEAgLTQxMjYsMTIgKzQyNjksMTQgQEAKIG9uZSBhdCBhIHRpbWUgb24gc3Vic2VxdWVudCBjYWxscy4gIEVhY2ggc3RyaW5nIHRoZSBnZW5lcmF0b3IgZnVuY3Rpb24KIHJldHVybnMgYXMgYSBtYXRjaCBtdXN0IGJlIGFsbG9jYXRlZCB3aXRoIDxDT0RFPm1hbGxvYygpPC9DT0RFPjsgUmVhZGxpbmUKIGZyZWVzIHRoZSBzdHJpbmdzIHdoZW4gaXQgaGFzIGZpbmlzaGVkIHdpdGggdGhlbS4KK1N1Y2ggYSBnZW5lcmF0b3IgZnVuY3Rpb24gaXMgcmVmZXJyZWQgdG8gYXMgYW4KKzxFTT5hcHBsaWNhdGlvbi1zcGVjaWZpYyBjb21wbGV0aW9uIGZ1bmN0aW9uPC9FTT4uCiA8UD4KIAogPC9PTD4KIDxQPgogCi08QSBOQU1FPSJJRFgzMDEiPjwvQT4KKzxBIE5BTUU9IklEWDMxNSI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPnJsX2NvbXBsZXRlPC9CPiA8ST4oaW50IGlnbm9yZSwgaW50IGludm9raW5nX2tleSk8L0k+CiA8REQ+Q29tcGxldGUgdGhlIHdvcmQgYXQgb3IgYmVmb3JlIHBvaW50LiAgWW91IGhhdmUgc3VwcGxpZWQgdGhlIGZ1bmN0aW9uCkBAIC00MTQwLDcgKzQyODUsNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMzAyIj48L0E+Cis8QSBOQU1FPSJJRFgzMTYiPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IHJsX2NvbXBlbnRyeV9mdW5jX3QgKiA8Qj5ybF9jb21wbGV0aW9uX2VudHJ5X2Z1bmN0aW9uPC9CPgogPEREPlRoaXMgaXMgYSBwb2ludGVyIHRvIHRoZSBnZW5lcmF0b3IgZnVuY3Rpb24gZm9yCkBAIC00MTQ4LDYgKzQyOTMsOSBAQAogSWYgdGhlIHZhbHVlIG9mIDxDT0RFPnJsX2NvbXBsZXRpb25fZW50cnlfZnVuY3Rpb248L0NPREU+IGlzCiA8Q09ERT5OVUxMPC9DT0RFPiB0aGVuIHRoZSBkZWZhdWx0IGZpbGVuYW1lIGdlbmVyYXRvcgogZnVuY3Rpb24sIDxDT0RFPnJsX2ZpbGVuYW1lX2NvbXBsZXRpb25fZnVuY3Rpb24oKTwvQ09ERT4sIGlzIHVzZWQuCitBbiA8RU0+YXBwbGljYXRpb24tc3BlY2lmaWMgY29tcGxldGlvbiBmdW5jdGlvbjwvRU0+IGlzIGEgZnVuY3Rpb24gd2hvc2UKK2FkZHJlc3MgaXMgYXNzaWduZWQgdG8gPENPREU+cmxfY29tcGxldGlvbl9lbnRyeV9mdW5jdGlvbjwvQ09ERT4gYW5kIHdob3NlCityZXR1cm4gdmFsdWVzIGFyZSB1c2VkIHRvICBnZW5lcmF0ZSBwb3NzaWJsZSBjb21wbGV0aW9ucy4KIDwvREw+CiA8L1A+PFA+CiAKQEAgLTQxNTksMTAgKzQzMDcsMTAgQEAKIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ3Ij4gJmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ3Ij4gJmx0OyZsdDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDQiPiBVcCA8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bICZndDsmZ3Q7IF08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDkiPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMz4gMi42LjIgQ29tcGxldGlvbiBGdW5jdGlvbnMgPC9IMz4KQEAgLTQxNzMsNyArNDMyMSw3IEBACiBSZWFkbGluZS4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMzAzIj48L0E+Cis8QSBOQU1FPSJJRFgzMTciPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IGludCA8Qj5ybF9jb21wbGV0ZV9pbnRlcm5hbDwvQj4gPEk+KGludCB3aGF0X3RvX2RvKTwvST4KIDxERD5Db21wbGV0ZSB0aGUgd29yZCBhdCBvciBiZWZvcmUgcG9pbnQuICA8VkFSPndoYXRfdG9fZG88L1ZBUj4gc2F5cyB3aGF0IHRvIGRvCkBAIC00MTgxLDExICs0MzI5LDEzIEBACiBjb21wbGV0aW9ucy4gIDxTQU1QPmBUQUInPC9TQU1QPiBtZWFucyBkbyBzdGFuZGFyZCBjb21wbGV0aW9uLiAgPFNBTVA+YConPC9TQU1QPiBtZWFucwogaW5zZXJ0IGFsbCBvZiB0aGUgcG9zc2libGUgY29tcGxldGlvbnMuICA8U0FNUD5gISc8L1NBTVA+IG1lYW5zIHRvIGRpc3BsYXkKIGFsbCBvZiB0aGUgcG9zc2libGUgY29tcGxldGlvbnMsIGlmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUsIGFzIHdlbGwgYXMKLXBlcmZvcm1pbmcgcGFydGlhbCBjb21wbGV0aW9uLgorcGVyZm9ybWluZyBwYXJ0aWFsIGNvbXBsZXRpb24uICA8U0FNUD5gQCc8L1NBTVA+IGlzIHNpbWlsYXIgdG8gPFNBTVA+YCEnPC9TQU1QPiwgYnV0Citwb3NzaWJsZSBjb21wbGV0aW9ucyBhcmUgbm90IGxpc3RlZCBpZiB0aGUgcG9zc2libGUgY29tcGxldGlvbnMgc2hhcmUKK2EgY29tbW9uIHByZWZpeC4KIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDMwNCI+PC9BPgorPEEgTkFNRT0iSURYMzE4Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+cmxfY29tcGxldGU8L0I+IDxJPihpbnQgaWdub3JlLCBpbnQgaW52b2tpbmdfa2V5KTwvST4KIDxERD5Db21wbGV0ZSB0aGUgd29yZCBhdCBvciBiZWZvcmUgcG9pbnQuICBZb3UgaGF2ZSBzdXBwbGllZCB0aGUgZnVuY3Rpb24KQEAgLTQxOTcsNyArNDM0Nyw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgzMDUiPjwvQT4KKzxBIE5BTUU9IklEWDMxOSI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPnJsX3Bvc3NpYmxlX2NvbXBsZXRpb25zPC9CPiA8ST4oaW50IGNvdW50LCBpbnQgaW52b2tpbmdfa2V5KTwvST4KIDxERD5MaXN0IHRoZSBwb3NzaWJsZSBjb21wbGV0aW9ucy4gIFNlZSBkZXNjcmlwdGlvbiBvZiA8Q09ERT5ybF9jb21wbGV0ZQpAQCAtNDIwNiw3ICs0MzU2LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDMwNiI+PC9BPgorPEEgTkFNRT0iSURYMzIwIj48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBpbnQgPEI+cmxfaW5zZXJ0X2NvbXBsZXRpb25zPC9CPiA8ST4oaW50IGNvdW50LCBpbnQgaW52b2tpbmdfa2V5KTwvST4KIDxERD5JbnNlcnQgdGhlIGxpc3Qgb2YgcG9zc2libGUgY29tcGxldGlvbnMgaW50byB0aGUgbGluZSwgZGVsZXRpbmcgdGhlCkBAIC00MjE1LDE4ICs0MzY1LDE5IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgzMDciPjwvQT4KKzxBIE5BTUU9IklEWDMyMSI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gaW50IDxCPnJsX2NvbXBsZXRpb25fbW9kZTwvQj4gPEk+KHJsX2NvbW1hbmRfZnVuY190ICpjZnVuYyk8L0k+CiA8REQ+UmV0dXJucyB0aGUgYXBwcHJpYXRlIHZhbHVlIHRvIHBhc3MgdG8gPENPREU+cmxfY29tcGxldGVfaW50ZXJuYWwoKTwvQ09ERT4KIGRlcGVuZGluZyBvbiB3aGV0aGVyIDxWQVI+Y2Z1bmM8L1ZBUj4gd2FzIGNhbGxlZCB0d2ljZSBpbiBzdWNjZXNzaW9uIGFuZAotdGhlIHZhbHVlIG9mIHRoZSA8Q09ERT5zaG93LWFsbC1pZi1hbWJpZ3VvdXM8L0NPREU+IHZhcmlhYmxlLgordGhlIHZhbHVlcyBvZiB0aGUgPENPREU+c2hvdy1hbGwtaWYtYW1iaWd1b3VzPC9DT0RFPiBhbmQKKzxDT0RFPnNob3ctYWxsLWlmLXVubW9kaWZpZWQ8L0NPREU+IHZhcmlhYmxlcy4KIEFwcGxpY2F0aW9uLXNwZWNpZmljIGNvbXBsZXRpb24gZnVuY3Rpb25zIG1heSB1c2UgdGhpcyBmdW5jdGlvbiB0byBwcmVzZW50CiB0aGUgc2FtZSBpbnRlcmZhY2UgYXMgPENPREU+cmxfY29tcGxldGUoKTwvQ09ERT4uCiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgzMDgiPjwvQT4KKzxBIE5BTUU9IklEWDMyMiI+PC9BPgogPERMPgogPERUPjxVPkZ1bmN0aW9uOjwvVT4gY2hhciAqKiA8Qj5ybF9jb21wbGV0aW9uX21hdGNoZXM8L0I+IDxJPihjb25zdCBjaGFyICp0ZXh0LCBybF9jb21wZW50cnlfZnVuY190ICplbnRyeV9mdW5jKTwvST4KIDxERD5SZXR1cm5zIGFuIGFycmF5IG9mIHN0cmluZ3Mgd2hpY2ggaXMgYSBsaXN0IG9mIGNvbXBsZXRpb25zIGZvcgpAQCAtNDI0NCwxOCArNDM5NSwxOCBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMzA5Ij48L0E+Cis8QSBOQU1FPSJJRFgzMjMiPjwvQT4KIDxETD4KIDxEVD48VT5GdW5jdGlvbjo8L1U+IGNoYXIgKiA8Qj5ybF9maWxlbmFtZV9jb21wbGV0aW9uX2Z1bmN0aW9uPC9CPiA8ST4oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXRlKTwvST4KIDxERD5BIGdlbmVyYXRvciBmdW5jdGlvbiBmb3IgZmlsZW5hbWUgY29tcGxldGlvbiBpbiB0aGUgZ2VuZXJhbCBjYXNlLgogPFZBUj50ZXh0PC9WQVI+IGlzIGEgcGFydGlhbCBmaWxlbmFtZS4KLVRoZSBCYXNoIHNvdXJjZSBpcyBhIHVzZWZ1bCByZWZlcmVuY2UgZm9yIHdyaXRpbmcgY3VzdG9tCitUaGUgQmFzaCBzb3VyY2UgaXMgYSB1c2VmdWwgcmVmZXJlbmNlIGZvciB3cml0aW5nIGFwcGxpY2F0aW9uLXNwZWNpZmljCiBjb21wbGV0aW9uIGZ1bmN0aW9ucyAodGhlIEJhc2ggY29tcGxldGlvbiBmdW5jdGlvbnMgY2FsbCB0aGlzIGFuZCBvdGhlcgogUmVhZGxpbmUgZnVuY3Rpb25zKS4KIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDMxMCI+PC9BPgorPEEgTkFNRT0iSURYMzI0Ij48L0E+CiA8REw+CiA8RFQ+PFU+RnVuY3Rpb246PC9VPiBjaGFyICogPEI+cmxfdXNlcm5hbWVfY29tcGxldGlvbl9mdW5jdGlvbjwvQj4gPEk+KGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGF0ZSk8L0k+CiA8REQ+QSBjb21wbGV0aW9uIGdlbmVyYXRvciBmb3IgdXNlcm5hbWVzLiAgPFZBUj50ZXh0PC9WQVI+IGNvbnRhaW5zIGEgcGFydGlhbApAQCAtNDI3MywyNiArNDQyNCwyNiBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDgiPiAmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDgiPiAmbHQ7Jmx0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NCI+IFVwIDwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPlsgJmd0OyZndDsgXTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEgzPiAyLjYuMyBDb21wbGV0aW9uIFZhcmlhYmxlcyA8L0gzPgogPCEtLWRvY2lkOjpTRUM0Nzo6LS0+CiA8UD4KIAotPEEgTkFNRT0iSURYMzExIj48L0E+Cis8QSBOQU1FPSJJRFgzMjUiPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IHJsX2NvbXBlbnRyeV9mdW5jX3QgKiA8Qj5ybF9jb21wbGV0aW9uX2VudHJ5X2Z1bmN0aW9uPC9CPgogPEREPkEgcG9pbnRlciB0byB0aGUgZ2VuZXJhdG9yIGZ1bmN0aW9uIGZvciA8Q09ERT5ybF9jb21wbGV0aW9uX21hdGNoZXMoKTwvQ09ERT4uCi08Q09ERT5OVUxMPC9DT0RFPiBtZWFucyB0byB1c2UgPENPREU+cmxfZmlsZW5hbWVfY29tcGxldGlvbl9mdW5jdGlvbigpPC9DT0RFPiwgdGhlIGRlZmF1bHQKLWZpbGVuYW1lIGNvbXBsZXRlci4KKzxDT0RFPk5VTEw8L0NPREU+IG1lYW5zIHRvIHVzZSA8Q09ERT5ybF9maWxlbmFtZV9jb21wbGV0aW9uX2Z1bmN0aW9uKCk8L0NPREU+LAordGhlIGRlZmF1bHQgZmlsZW5hbWUgY29tcGxldGVyLgogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMzEyIj48L0E+Cis8QSBOQU1FPSJJRFgzMjYiPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IHJsX2NvbXBsZXRpb25fZnVuY190ICogPEI+cmxfYXR0ZW1wdGVkX2NvbXBsZXRpb25fZnVuY3Rpb248L0I+CiA8REQ+QSBwb2ludGVyIHRvIGFuIGFsdGVybmF0aXZlIGZ1bmN0aW9uIHRvIGNyZWF0ZSBtYXRjaGVzLgpAQCAtNDMwOSw3ICs0NDYwLDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDMxMyI+PC9BPgorPEEgTkFNRT0iSURYMzI3Ij48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBybF9xdW90ZV9mdW5jX3QgKiA8Qj5ybF9maWxlbmFtZV9xdW90aW5nX2Z1bmN0aW9uPC9CPgogPEREPkEgcG9pbnRlciB0byBhIGZ1bmN0aW9uIHRoYXQgd2lsbCBxdW90ZSBhIGZpbGVuYW1lIGluIGFuCkBAIC00MzI2LDcgKzQ0NzcsNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMzE0Ij48L0E+Cis8QSBOQU1FPSJJRFgzMjgiPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IHJsX2RlcXVvdGVfZnVuY190ICogPEI+cmxfZmlsZW5hbWVfZGVxdW90aW5nX2Z1bmN0aW9uPC9CPgogPEREPkEgcG9pbnRlciB0byBhIGZ1bmN0aW9uIHRoYXQgd2lsbCByZW1vdmUgYXBwbGljYXRpb24tc3BlY2lmaWMgcXVvdGluZwpAQCAtNDMzOSw3ICs0NDkwLDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDMxNSI+PC9BPgorPEEgTkFNRT0iSURYMzI5Ij48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBybF9saW5lYnVmX2Z1bmNfdCAqIDxCPnJsX2NoYXJfaXNfcXVvdGVkX3A8L0I+CiA8REQ+QSBwb2ludGVyIHRvIGEgZnVuY3Rpb24gdG8gY2FsbCB0aGF0IGRldGVybWluZXMgd2hldGhlciBvciBub3QgYSBzcGVjaWZpYwpAQCAtNDM1Miw3ICs0NTAzLDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDMxNiI+PC9BPgorPEEgTkFNRT0iSURYMzMwIj48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBybF9jb21waWdub3JlX2Z1bmNfdCAqIDxCPnJsX2lnbm9yZV9zb21lX2NvbXBsZXRpb25zX2Z1bmN0aW9uPC9CPgogPEREPlRoaXMgZnVuY3Rpb24sIGlmIGRlZmluZWQsIGlzIGNhbGxlZCBieSB0aGUgY29tcGxldGVyIHdoZW4gcmVhbCBmaWxlbmFtZQpAQCAtNDM2NSw3ICs0NTE2LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDMxNyI+PC9BPgorPEEgTkFNRT0iSURYMzMxIj48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBybF9pY3BwZnVuY190ICogPEI+cmxfZGlyZWN0b3J5X2NvbXBsZXRpb25faG9vazwvQj4KIDxERD5UaGlzIGZ1bmN0aW9uLCBpZiBkZWZpbmVkLCBpcyBhbGxvd2VkIHRvIG1vZGlmeSB0aGUgZGlyZWN0b3J5IHBvcnRpb24KQEAgLTQzODEsNyArNDUzMiw3IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgzMTgiPjwvQT4KKzxBIE5BTUU9IklEWDMzMiI+PC9BPgogPERMPgogPERUPjxVPlZhcmlhYmxlOjwvVT4gcmxfY29tcGRpc3BfZnVuY190ICogPEI+cmxfY29tcGxldGlvbl9kaXNwbGF5X21hdGNoZXNfaG9vazwvQj4KIDxERD5JZiBub24temVybywgdGhlbiB0aGlzIGlzIHRoZSBhZGRyZXNzIG9mIGEgZnVuY3Rpb24gdG8gY2FsbCB3aGVuCkBAIC00Mzk4LDcgKzQ1NDksNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMzE5Ij48L0E+Cis8QSBOQU1FPSJJRFgzMzMiPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IGNvbnN0IGNoYXIgKiA8Qj5ybF9iYXNpY193b3JkX2JyZWFrX2NoYXJhY3RlcnM8L0I+CiA8REQ+VGhlIGJhc2ljIGxpc3Qgb2YgY2hhcmFjdGVycyB0aGF0IHNpZ25hbCBhIGJyZWFrIGJldHdlZW4gd29yZHMgZm9yIHRoZQpAQCAtNDQwOCwxNCArNDU1OSwxNCBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMzIwIj48L0E+Cis8QSBOQU1FPSJJRFgzMzQiPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IGNvbnN0IGNoYXIgKiA8Qj5ybF9iYXNpY19xdW90ZV9jaGFyYWN0ZXJzPC9CPgogPEREPkEgbGlzdCBvZiBxdW90ZSBjaGFyYWN0ZXJzIHdoaWNoIGNhbiBjYXVzZSBhIHdvcmQgYnJlYWsuCiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgzMjEiPjwvQT4KKzxBIE5BTUU9IklEWDMzNSI+PC9BPgogPERMPgogPERUPjxVPlZhcmlhYmxlOjwvVT4gY29uc3QgY2hhciAqIDxCPnJsX2NvbXBsZXRlcl93b3JkX2JyZWFrX2NoYXJhY3RlcnM8L0I+CiA8REQ+VGhlIGxpc3Qgb2YgY2hhcmFjdGVycyB0aGF0IHNpZ25hbCBhIGJyZWFrIGJldHdlZW4gd29yZHMgZm9yCkBAIC00NDI0LDcgKzQ1NzUsMTkgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDMyMiI+PC9BPgorPEEgTkFNRT0iSURYMzM2Ij48L0E+Cis8REw+Cis8RFQ+PFU+VmFyaWFibGU6PC9VPiBybF9jcHZmdW5jX3QgKiA8Qj5ybF9jb21wbGV0aW9uX3dvcmRfYnJlYWtfaG9vazwvQj4KKzxERD5JZiBub24temVybywgdGhpcyBpcyB0aGUgYWRkcmVzcyBvZiBhIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiBSZWFkbGluZSBpcworZGVjaWRpbmcgd2hlcmUgdG8gc2VwYXJhdGUgd29yZHMgZm9yIHdvcmQgY29tcGxldGlvbi4gIEl0IHNob3VsZCByZXR1cm4KK2EgY2hhcmFjdGVyIHN0cmluZyBsaWtlIDxDT0RFPnJsX2NvbXBsZXRlcl93b3JkX2JyZWFrX2NoYXJhY3RlcnM8L0NPREU+IHRvIGJlCit1c2VkIHRvIHBlcmZvcm0gdGhlIGN1cnJlbnQgY29tcGxldGlvbi4gIFRoZSBmdW5jdGlvbiBtYXkgY2hvb3NlIHRvIHNldAorPENPREU+cmxfY29tcGxldGVyX3dvcmRfYnJlYWtfY2hhcmFjdGVyczwvQ09ERT4gaXRzZWxmLiAgSWYgdGhlIGZ1bmN0aW9uCityZXR1cm5zIDxDT0RFPk5VTEw8L0NPREU+LCA8Q09ERT5ybF9jb21wbGV0ZXJfd29yZF9icmVha19jaGFyYWN0ZXJzPC9DT0RFPiBpcyB1c2VkLgorPC9ETD4KKzwvUD48UD4KKworPEEgTkFNRT0iSURYMzM3Ij48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBjb25zdCBjaGFyICogPEI+cmxfY29tcGxldGVyX3F1b3RlX2NoYXJhY3RlcnM8L0I+CiA8REQ+QSBsaXN0IG9mIGNoYXJhY3RlcnMgd2hpY2ggY2FuIGJlIHVzZWQgdG8gcXVvdGUgYSBzdWJzdHJpbmcgb2YgdGhlIGxpbmUuCkBAIC00NDM0LDcgKzQ1OTcsNyBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMzIzIj48L0E+Cis8QSBOQU1FPSJJRFgzMzgiPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IGNvbnN0IGNoYXIgKiA8Qj5ybF9maWxlbmFtZV9xdW90ZV9jaGFyYWN0ZXJzPC9CPgogPEREPkEgbGlzdCBvZiBjaGFyYWN0ZXJzIHRoYXQgY2F1c2UgYSBmaWxlbmFtZSB0byBiZSBxdW90ZWQgYnkgdGhlIGNvbXBsZXRlcgpAQCAtNDQ0Miw3ICs0NjA1LDcgQEAKIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDMyNCI+PC9BPgorPEEgTkFNRT0iSURYMzM5Ij48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBjb25zdCBjaGFyICogPEI+cmxfc3BlY2lhbF9wcmVmaXhlczwvQj4KIDxERD5UaGUgbGlzdCBvZiBjaGFyYWN0ZXJzIHRoYXQgYXJlIHdvcmQgYnJlYWsgY2hhcmFjdGVycywgYnV0IHNob3VsZCBiZQpAQCAtNDQ1Myw1MyArNDYxNiw4NSBAQAogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMzI1Ij48L0E+Cis8QSBOQU1FPSJJRFgzNDAiPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IGludCA8Qj5ybF9jb21wbGV0aW9uX3F1ZXJ5X2l0ZW1zPC9CPgogPEREPlVwIHRvIHRoaXMgbWFueSBpdGVtcyB3aWxsIGJlIGRpc3BsYXllZCBpbiByZXNwb25zZSB0byBhCi1wb3NzaWJsZS1jb21wbGV0aW9ucyBjYWxsLiAgQWZ0ZXIgdGhhdCwgd2UgYXNrIHRoZSB1c2VyIGlmIHNoZSBpcyBzdXJlCi1zaGUgd2FudHMgdG8gc2VlIHRoZW0gYWxsLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgMTAwLgorcG9zc2libGUtY29tcGxldGlvbnMgY2FsbC4gIEFmdGVyIHRoYXQsIHJlYWRsaW5lIGFza3MgdGhlIHVzZXIgaWYgc2hlIGlzIHN1cmUKK3NoZSB3YW50cyB0byBzZWUgdGhlbSBhbGwuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAxMDAuICBBIG5lZ2F0aXZlIHZhbHVlIAoraW5kaWNhdGVzIHRoYXQgUmVhZGxpbmUgc2hvdWxkIG5ldmVyIGFzayB0aGUgdXNlci4KIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDMyNiI+PC9BPgorPEEgTkFNRT0iSURYMzQxIj48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBpbnQgPEI+cmxfY29tcGxldGlvbl9hcHBlbmRfY2hhcmFjdGVyPC9CPgogPEREPldoZW4gYSBzaW5nbGUgY29tcGxldGlvbiBhbHRlcm5hdGl2ZSBtYXRjaGVzIGF0IHRoZSBlbmQgb2YgdGhlIGNvbW1hbmQKIGxpbmUsIHRoaXMgY2hhcmFjdGVyIGlzIGFwcGVuZGVkIHRvIHRoZSBpbnNlcnRlZCBjb21wbGV0aW9uIHRleHQuICBUaGUKIGRlZmF1bHQgaXMgYSBzcGFjZSBjaGFyYWN0ZXIgKDxTQU1QPmAgJzwvU0FNUD4pLiAgU2V0dGluZyB0aGlzIHRvIHRoZSBudWxsCiBjaGFyYWN0ZXIgKDxTQU1QPmBcMCc8L1NBTVA+KSBwcmV2ZW50cyBhbnl0aGluZyBiZWluZyBhcHBlbmRlZCBhdXRvbWF0aWNhbGx5LgotVGhpcyBjYW4gYmUgY2hhbmdlZCBpbiBjdXN0b20gY29tcGxldGlvbiBmdW5jdGlvbnMgdG8KK1RoaXMgY2FuIGJlIGNoYW5nZWQgaW4gYXBwbGljYXRpb24tc3BlY2lmaWMgY29tcGxldGlvbiBmdW5jdGlvbnMgdG8KIHByb3ZpZGUgdGhlICJtb3N0IHNlbnNpYmxlIHdvcmQgc2VwYXJhdG9yIGNoYXJhY3RlciIgYWNjb3JkaW5nIHRvCiBhbiBhcHBsaWNhdGlvbi1zcGVjaWZpYyBjb21tYW5kIGxpbmUgc3ludGF4IHNwZWNpZmljYXRpb24uCiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgzMjciPjwvQT4KKzxBIE5BTUU9IklEWDM0MiI+PC9BPgogPERMPgogPERUPjxVPlZhcmlhYmxlOjwvVT4gaW50IDxCPnJsX2NvbXBsZXRpb25fc3VwcHJlc3NfYXBwZW5kPC9CPgogPEREPklmIG5vbi16ZXJvLCA8VkFSPnJsX2NvbXBsZXRpb25fYXBwZW5kX2NoYXJhY3RlcjwvVkFSPiBpcyBub3QgYXBwZW5kZWQgdG8KLW1hdGNoZXMgYXQgdGhlIGVuZCBvZiB0aGUgY29tbWFuZCBsaW5lLCBhcyBkZXNjcmliZWQgYWJvdmUuICBJdCBpcwotc2V0IHRvIDAgYmVmb3JlIGFueSBhcHBsaWNhdGlvbi1zcGVjaWZpYyBjb21wbGV0aW9uIGZ1bmN0aW9uIGlzIGNhbGxlZC4KK21hdGNoZXMgYXQgdGhlIGVuZCBvZiB0aGUgY29tbWFuZCBsaW5lLCBhcyBkZXNjcmliZWQgYWJvdmUuCitJdCBpcyBzZXQgdG8gMCBiZWZvcmUgYW55IGFwcGxpY2F0aW9uLXNwZWNpZmljIGNvbXBsZXRpb24gZnVuY3Rpb24KK2lzIGNhbGxlZCwgYW5kIG1heSBvbmx5IGJlIGNoYW5nZWQgd2l0aGluIHN1Y2ggYSBmdW5jdGlvbi4KIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDMyOCI+PC9BPgorPEEgTkFNRT0iSURYMzQzIj48L0E+Cis8REw+Cis8RFQ+PFU+VmFyaWFibGU6PC9VPiBpbnQgPEI+cmxfY29tcGxldGlvbl9xdW90ZV9jaGFyYWN0ZXI8L0I+Cis8REQ+V2hlbiBSZWFkbGluZSBpcyBjb21wbGV0aW5nIHF1b3RlZCB0ZXh0LCBhcyBkZWxpbWl0ZWQgYnkgb25lIG9mIHRoZQorY2hhcmFjdGVycyBpbiA8VkFSPnJsX2NvbXBsZXRlcl9xdW90ZV9jaGFyYWN0ZXJzPC9WQVI+LCBpdCBzZXRzIHRoaXMgdmFyaWFibGUKK3RvIHRoZSBxdW90aW5nIGNoYXJhY3RlciBmb3VuZC4KK1RoaXMgaXMgc2V0IGJlZm9yZSBhbnkgYXBwbGljYXRpb24tc3BlY2lmaWMgY29tcGxldGlvbiBmdW5jdGlvbiBpcyBjYWxsZWQuCis8L0RMPgorPC9QPjxQPgorCis8QSBOQU1FPSJJRFgzNDQiPjwvQT4KKzxETD4KKzxEVD48VT5WYXJpYWJsZTo8L1U+IGludCA8Qj5ybF9jb21wbGV0aW9uX3N1cHByZXNzX3F1b3RlPC9CPgorPEREPklmIG5vbi16ZXJvLCBSZWFkbGluZSBkb2VzIG5vdCBhcHBlbmQgYSBtYXRjaGluZyBxdW90ZSBjaGFyYWN0ZXIgd2hlbgorcGVyZm9ybWluZyBjb21wbGV0aW9uIG9uIGEgcXVvdGVkIHN0cmluZy4KK0l0IGlzIHNldCB0byAwIGJlZm9yZSBhbnkgYXBwbGljYXRpb24tc3BlY2lmaWMgY29tcGxldGlvbiBmdW5jdGlvbgoraXMgY2FsbGVkLCBhbmQgbWF5IG9ubHkgYmUgY2hhbmdlZCB3aXRoaW4gc3VjaCBhIGZ1bmN0aW9uLgorPC9ETD4KKzwvUD48UD4KKworPEEgTkFNRT0iSURYMzQ1Ij48L0E+Cis8REw+Cis8RFQ+PFU+VmFyaWFibGU6PC9VPiBpbnQgPEI+cmxfY29tcGxldGlvbl9mb3VuZF9xdW90ZTwvQj4KKzxERD5XaGVuIFJlYWRsaW5lIGlzIGNvbXBsZXRpbmcgcXVvdGVkIHRleHQsIGl0IHNldHMgdGhpcyB2YXJpYWJsZQordG8gYSBub24temVybyB2YWx1ZSBpZiB0aGUgd29yZCBiZWluZyBjb21wbGV0ZWQgY29udGFpbnMgb3IgaXMgZGVsaW1pdGVkCitieSBhbnkgcXVvdGluZyBjaGFyYWN0ZXJzLCBpbmNsdWRpbmcgYmFja3NsYXNoZXMuCitUaGlzIGlzIHNldCBiZWZvcmUgYW55IGFwcGxpY2F0aW9uLXNwZWNpZmljIGNvbXBsZXRpb24gZnVuY3Rpb24gaXMgY2FsbGVkLgorPC9ETD4KKzwvUD48UD4KKworPEEgTkFNRT0iSURYMzQ2Ij48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBpbnQgPEI+cmxfY29tcGxldGlvbl9tYXJrX3N5bWxpbmtfZGlyczwvQj4KIDxERD5JZiBub24temVybywgYSBzbGFzaCB3aWxsIGJlIGFwcGVuZGVkIHRvIGNvbXBsZXRlZCBmaWxlbmFtZXMgdGhhdCBhcmUKIHN5bWJvbGljIGxpbmtzIHRvIGRpcmVjdG9yeSBuYW1lcywgc3ViamVjdCB0byB0aGUgdmFsdWUgb2YgdGhlCiB1c2VyLXNldHRhYmxlIDxWQVI+bWFyay1kaXJlY3RvcmllczwvVkFSPiB2YXJpYWJsZS4KLVRoaXMgdmFyaWFibGUgZXhpc3RzIHNvIHRoYXQgYXBwbGljYXRpb24gY29tcGxldGlvbiBmdW5jdGlvbnMgY2FuCi1vdmVycmlkZSB0aGUgdXNlcidzIGdsb2JhbCBwcmVmZXJlbmNlIChzZXQgdmlhIHRoZQorVGhpcyB2YXJpYWJsZSBleGlzdHMgc28gdGhhdCBhcHBsaWNhdGlvbi1zcGVjaWZpYyBjb21wbGV0aW9uIGZ1bmN0aW9ucworY2FuIG92ZXJyaWRlIHRoZSB1c2VyJ3MgZ2xvYmFsIHByZWZlcmVuY2UgKHNldCB2aWEgdGhlCiA8VkFSPm1hcmstc3ltbGlua2VkLWRpcmVjdG9yaWVzPC9WQVI+IFJlYWRsaW5lIHZhcmlhYmxlKSBpZiBhcHByb3ByaWF0ZS4KIFRoaXMgdmFyaWFibGUgaXMgc2V0IHRvIHRoZSB1c2VyJ3MgcHJlZmVyZW5jZSBiZWZvcmUgYW55Ci1hcHBsaWNhdGlvbiBjb21wbGV0aW9uIGZ1bmN0aW9uIGlzIGNhbGxlZCwgc28gdW5sZXNzIHRoYXQgZnVuY3Rpb24KLW1vZGlmaWVzIHRoZSB2YWx1ZSwgdGhlIHVzZXIncyBwcmVmZXJlbmNlcyBhcmUgaG9ub3JlZC4KK2FwcGxpY2F0aW9uLXNwZWNpZmljIGNvbXBsZXRpb24gZnVuY3Rpb24gaXMgY2FsbGVkLCBzbyB1bmxlc3MgdGhhdAorZnVuY3Rpb24gbW9kaWZpZXMgdGhlIHZhbHVlLCB0aGUgdXNlcidzIHByZWZlcmVuY2VzIGFyZSBob25vcmVkLgogPC9ETD4KIDwvUD48UD4KIAotPEEgTkFNRT0iSURYMzI5Ij48L0E+Cis8QSBOQU1FPSJJRFgzNDciPjwvQT4KIDxETD4KIDxEVD48VT5WYXJpYWJsZTo8L1U+IGludCA8Qj5ybF9pZ25vcmVfY29tcGxldGlvbl9kdXBsaWNhdGVzPC9CPgogPEREPklmIG5vbi16ZXJvLCB0aGVuIGR1cGxpY2F0ZXMgaW4gdGhlIG1hdGNoZXMgYXJlIHJlbW92ZWQuCkBAIC00NTA3LDMzICs0NzAyLDM1IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgzMzAiPjwvQT4KKzxBIE5BTUU9IklEWDM0OCI+PC9BPgogPERMPgogPERUPjxVPlZhcmlhYmxlOjwvVT4gaW50IDxCPnJsX2ZpbGVuYW1lX2NvbXBsZXRpb25fZGVzaXJlZDwvQj4KIDxERD5Ob24temVybyBtZWFucyB0aGF0IHRoZSByZXN1bHRzIG9mIHRoZSBtYXRjaGVzIGFyZSB0byBiZSB0cmVhdGVkIGFzCi1maWxlbmFtZXMuICBUaGlzIGlzIDxFTT5hbHdheXM8L0VNPiB6ZXJvIG9uIGVudHJ5LCBhbmQgY2FuIG9ubHkgYmUgY2hhbmdlZAotd2l0aGluIGEgY29tcGxldGlvbiBlbnRyeSBnZW5lcmF0b3IgZnVuY3Rpb24uICBJZiBpdCBpcyBzZXQgdG8gYSBub24temVybwotdmFsdWUsIGRpcmVjdG9yeSBuYW1lcyBoYXZlIGEgc2xhc2ggYXBwZW5kZWQgYW5kIFJlYWRsaW5lIGF0dGVtcHRzIHRvCi1xdW90ZSBjb21wbGV0ZWQgZmlsZW5hbWVzIGlmIHRoZXkgY29udGFpbiBhbnkgY2hhcmFjdGVycyBpbgotPENPREU+cmxfZmlsZW5hbWVfcXVvdGVfY2hhcmFjdGVyczwvQ09ERT4gYW5kIDxDT0RFPnJsX2ZpbGVuYW1lX3F1b3RpbmdfZGVzaXJlZDwvQ09ERT4KLWlzIHNldCB0byBhIG5vbi16ZXJvIHZhbHVlLgorZmlsZW5hbWVzLiAgVGhpcyBpcyA8RU0+YWx3YXlzPC9FTT4gemVybyB3aGVuIGNvbXBsZXRpb24gaXMgYXR0ZW1wdGVkLAorYW5kIGNhbiBvbmx5IGJlIGNoYW5nZWQKK3dpdGhpbiBhbiBhcHBsaWNhdGlvbi1zcGVjaWZpYyBjb21wbGV0aW9uIGZ1bmN0aW9uLiAgSWYgaXQgaXMgc2V0IHRvIGEKK25vbi16ZXJvIHZhbHVlIGJ5IHN1Y2ggYSBmdW5jdGlvbiwgZGlyZWN0b3J5IG5hbWVzIGhhdmUgYSBzbGFzaCBhcHBlbmRlZAorYW5kIFJlYWRsaW5lIGF0dGVtcHRzIHRvIHF1b3RlIGNvbXBsZXRlZCBmaWxlbmFtZXMgaWYgdGhleSBjb250YWluIGFueQorY2hhcmFjdGVycyBpbiA8Q09ERT5ybF9maWxlbmFtZV9xdW90ZV9jaGFyYWN0ZXJzPC9DT0RFPiBhbmQKKzxDT0RFPnJsX2ZpbGVuYW1lX3F1b3RpbmdfZGVzaXJlZDwvQ09ERT4gaXMgc2V0IHRvIGEgbm9uLXplcm8gdmFsdWUuCiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgzMzEiPjwvQT4KKzxBIE5BTUU9IklEWDM0OSI+PC9BPgogPERMPgogPERUPjxVPlZhcmlhYmxlOjwvVT4gaW50IDxCPnJsX2ZpbGVuYW1lX3F1b3RpbmdfZGVzaXJlZDwvQj4KIDxERD5Ob24temVybyBtZWFucyB0aGF0IHRoZSByZXN1bHRzIG9mIHRoZSBtYXRjaGVzIGFyZSB0byBiZSBxdW90ZWQgdXNpbmcKIGRvdWJsZSBxdW90ZXMgKG9yIGFuIGFwcGxpY2F0aW9uLXNwZWNpZmljIHF1b3RpbmcgbWVjaGFuaXNtKSBpZiB0aGUKIGNvbXBsZXRlZCBmaWxlbmFtZSBjb250YWlucyBhbnkgY2hhcmFjdGVycyBpbgogPENPREU+cmxfZmlsZW5hbWVfcXVvdGVfY2hhcnM8L0NPREU+LiAgVGhpcyBpcyA8RU0+YWx3YXlzPC9FTT4gbm9uLXplcm8KLW9uIGVudHJ5LCBhbmQgY2FuIG9ubHkgYmUgY2hhbmdlZCB3aXRoaW4gYSBjb21wbGV0aW9uIGVudHJ5IGdlbmVyYXRvcgotZnVuY3Rpb24uICBUaGUgcXVvdGluZyBpcyBlZmZlY3RlZCB2aWEgYSBjYWxsIHRvIHRoZSBmdW5jdGlvbiBwb2ludGVkIHRvCit3aGVuIGNvbXBsZXRpb24gaXMgYXR0ZW1wdGVkLCBhbmQgY2FuIG9ubHkgYmUgY2hhbmdlZCB3aXRoaW4gYW4KK2FwcGxpY2F0aW9uLXNwZWNpZmljIGNvbXBsZXRpb24gZnVuY3Rpb24uCitUaGUgcXVvdGluZyBpcyBlZmZlY3RlZCB2aWEgYSBjYWxsIHRvIHRoZSBmdW5jdGlvbiBwb2ludGVkIHRvCiBieSA8Q09ERT5ybF9maWxlbmFtZV9xdW90aW5nX2Z1bmN0aW9uPC9DT0RFPi4KIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDMzMiI+PC9BPgorPEEgTkFNRT0iSURYMzUwIj48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBpbnQgPEI+cmxfYXR0ZW1wdGVkX2NvbXBsZXRpb25fb3ZlcjwvQj4KIDxERD5JZiBhbiBhcHBsaWNhdGlvbi1zcGVjaWZpYyBjb21wbGV0aW9uIGZ1bmN0aW9uIGFzc2lnbmVkIHRvCkBAIC00NTQ0LDE2ICs0NzQxLDE5IEBACiA8L0RMPgogPC9QPjxQPgogCi08QSBOQU1FPSJJRFgzMzMiPjwvQT4KKzxBIE5BTUU9IklEWDM1MSI+PC9BPgogPERMPgogPERUPjxVPlZhcmlhYmxlOjwvVT4gaW50IDxCPnJsX2NvbXBsZXRpb25fdHlwZTwvQj4KIDxERD5TZXQgdG8gYSBjaGFyYWN0ZXIgZGVzY3JpYmluZyB0aGUgdHlwZSBvZiBjb21wbGV0aW9uIFJlYWRsaW5lIGlzIGN1cnJlbnRseQogYXR0ZW1wdGluZzsgc2VlIHRoZSBkZXNjcmlwdGlvbiBvZiA8Q09ERT5ybF9jb21wbGV0ZV9pbnRlcm5hbCgpPC9DT0RFPgogKHNlZSBzZWN0aW9uIDxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDYiPjIuNi4yIENvbXBsZXRpb24gRnVuY3Rpb25zPC9BPikgZm9yIHRoZSBsaXN0IG9mIGNoYXJhY3RlcnMuCitUaGlzIGlzIHNldCB0byB0aGUgYXBwcm9wcmlhdGUgdmFsdWUgYmVmb3JlIGFueSBhcHBsaWNhdGlvbi1zcGVjaWZpYworY29tcGxldGlvbiBmdW5jdGlvbiBpcyBjYWxsZWQsIGFsbG93aW5nIHN1Y2ggZnVuY3Rpb25zIHRvIHByZXNlbnQKK3RoZSBzYW1lIGludGVyZmFjZSBhcyA8Q09ERT5ybF9jb21wbGV0ZSgpPC9DT0RFPi4KIDwvREw+CiA8L1A+PFA+CiAKLTxBIE5BTUU9IklEWDMzNCI+PC9BPgorPEEgTkFNRT0iSURYMzUyIj48L0E+CiA8REw+CiA8RFQ+PFU+VmFyaWFibGU6PC9VPiBpbnQgPEI+cmxfaW5oaWJpdF9jb21wbGV0aW9uPC9CPgogPEREPklmIHRoaXMgdmFyaWFibGUgaXMgbm9uLXplcm8sIGNvbXBsZXRpb24gaXMgaW5oaWJpdGVkLiAgVGhlIGNvbXBsZXRpb24KQEAgLTQ1NjksMTAgKzQ3NjksMTAgQEAKIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ5Ij4gJmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPlsgJmx0OyZsdDsgXTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NCI+IFVwIDwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPlsgJmd0OyZndDsgXTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEgzPiAyLjYuNCBBIFNob3J0IENvbXBsZXRpb24gRXhhbXBsZSA8L0gzPgpAQCAtNTAwMiw3ICs1MjAyLDcgQEAKICAgICAgY2hhciAqY2FsbGVyOwogewogICBmcHJpbnRmIChzdGRlcnIsCi0gICAgICAgICAgICIlczogVG9vIGRhbmdlcm91cyBmb3IgbWUgdG8gZGlzdHJpYnV0ZS5cbiIKKyAgICAgICAgICAgIiVzOiBUb28gZGFuZ2Vyb3VzIGZvciBtZSB0byBkaXN0cmlidXRlLlxuIiwKICAgICAgICAgICAgY2FsbGVyKTsKICAgZnByaW50ZiAoc3RkZXJyLCAiV3JpdGUgaXQgeW91cnNlbGYuXG4iKTsKIH0KQEAgLTUwMjMsMjYgKzUyMjMsNTkxIEBACiB9CiA8L0ZPTlQ+PC9wcmU+PC90ZD48L3RyPjwvdGFibGU+PC9QPjxQPgogCi08QSBOQU1FPSJDb25jZXB0IEluZGV4Ij48L0E+Cis8QSBOQU1FPSJDb3B5aW5nIFRoaXMgTWFudWFsIj48L0E+CiA8SFIgU0laRT0iNiI+CiA8QSBOQU1FPSJTRUM0OSI+PC9BPgogPFRBQkxFIENFTExQQURESU5HPTEgQ0VMTFNQQUNJTkc9MSBCT1JERVI9MD4KIDxUUj48VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OCI+ICZsdDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNTAiPiAmZ3Q7IDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjMiPiAmbHQ7Jmx0OyA8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfVG9wIj4gVXAgPC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WyAmZ3Q7Jmd0OyBdPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUyIj5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgorPC9UUj48L1RBQkxFPgorPEgxPiBBLiBDb3B5aW5nIFRoaXMgTWFudWFsIDwvSDE+Cis8IS0tZG9jaWQ6OlNFQzQ5OjotLT4KKzxQPgorCis8QkxPQ0tRVU9URT48VEFCTEUgQk9SREVSPTAgQ0VMTFNQQUNJTkc9MD4gCis8VFI+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MCI+QS4xIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZTwvQT48L1REPjxURD4mbmJzcDsmbmJzcDs8L1REPjxURCBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPkxpY2Vuc2UgZm9yIGNvcHlpbmcgdGhpcyBtYW51YWwuPC9URD48L1RSPgorPC9UQUJMRT48L0JMT0NLUVVPVEU+Cis8UD4KKworPEEgTkFNRT0iR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlIj48L0E+Cis8SFIgU0laRT0iNiI+Cis8QSBOQU1FPSJTRUM1MCI+PC9BPgorPFRBQkxFIENFTExQQURESU5HPTEgQ0VMTFNQQUNJTkc9MSBCT1JERVI9MD4KKzxUUj48VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+ICZsdDsgPC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNTEiPiAmZ3Q7IDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDkiPiAmbHQ7Jmx0OyA8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+IFVwIDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPlsgJmd0OyZndDsgXTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KKzwvVFI+PC9UQUJMRT4KKzxIMj4gQS4xIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZSA8L0gyPgorPCEtLWRvY2lkOjpTRUM1MDo6LS0+Cis8UD4KKworPEEgTkFNRT0iSURYMzUzIj48L0E+Cis8Y2VudGVyPgorIFZlcnNpb24gMS4yLCBOb3ZlbWJlciAyMDAyCis8L2NlbnRlcj4KKzwvUD48UD4KKworPFRBQkxFPjx0cj48dGQ+Jm5ic3A7PC90ZD48dGQgY2xhc3M9ZGlzcGxheT48cHJlIHN0eWxlPSJmb250LWZhbWlseTogc2VyaWYiPkNvcHlyaWdodCAoQykgMjAwMCwyMDAxLDIwMDIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCis1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNywgVVNBCisKK0V2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcworb2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQgaXMgbm90IGFsbG93ZWQuCis8L3ByZT48L3RkPjwvdHI+PC90YWJsZT48L1A+PFA+CisKKzxPTD4KKzxMST4KK1BSRUFNQkxFCis8UD4KKworVGhlIHB1cnBvc2Ugb2YgdGhpcyBMaWNlbnNlIGlzIHRvIG1ha2UgYSBtYW51YWwsIHRleHRib29rLCBvciBvdGhlcgorZnVuY3Rpb25hbCBhbmQgdXNlZnVsIGRvY3VtZW50IDxFTT5mcmVlPC9FTT4gaW4gdGhlIHNlbnNlIG9mIGZyZWVkb206IHRvCithc3N1cmUgZXZlcnlvbmUgdGhlIGVmZmVjdGl2ZSBmcmVlZG9tIHRvIGNvcHkgYW5kIHJlZGlzdHJpYnV0ZSBpdCwKK3dpdGggb3Igd2l0aG91dCBtb2RpZnlpbmcgaXQsIGVpdGhlciBjb21tZXJjaWFsbHkgb3Igbm9uY29tbWVyY2lhbGx5LgorU2Vjb25kYXJpbHksIHRoaXMgTGljZW5zZSBwcmVzZXJ2ZXMgZm9yIHRoZSBhdXRob3IgYW5kIHB1Ymxpc2hlciBhIHdheQordG8gZ2V0IGNyZWRpdCBmb3IgdGhlaXIgd29yaywgd2hpbGUgbm90IGJlaW5nIGNvbnNpZGVyZWQgcmVzcG9uc2libGUKK2ZvciBtb2RpZmljYXRpb25zIG1hZGUgYnkgb3RoZXJzLgorPC9QPjxQPgorCitUaGlzIExpY2Vuc2UgaXMgYSBraW5kIG9mICJjb3B5bGVmdCIsIHdoaWNoIG1lYW5zIHRoYXQgZGVyaXZhdGl2ZQord29ya3Mgb2YgdGhlIGRvY3VtZW50IG11c3QgdGhlbXNlbHZlcyBiZSBmcmVlIGluIHRoZSBzYW1lIHNlbnNlLiAgSXQKK2NvbXBsZW1lbnRzIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgd2hpY2ggaXMgYSBjb3B5bGVmdAorbGljZW5zZSBkZXNpZ25lZCBmb3IgZnJlZSBzb2Z0d2FyZS4KKzwvUD48UD4KKworV2UgaGF2ZSBkZXNpZ25lZCB0aGlzIExpY2Vuc2UgaW4gb3JkZXIgdG8gdXNlIGl0IGZvciBtYW51YWxzIGZvciBmcmVlCitzb2Z0d2FyZSwgYmVjYXVzZSBmcmVlIHNvZnR3YXJlIG5lZWRzIGZyZWUgZG9jdW1lbnRhdGlvbjogYSBmcmVlCitwcm9ncmFtIHNob3VsZCBjb21lIHdpdGggbWFudWFscyBwcm92aWRpbmcgdGhlIHNhbWUgZnJlZWRvbXMgdGhhdCB0aGUKK3NvZnR3YXJlIGRvZXMuICBCdXQgdGhpcyBMaWNlbnNlIGlzIG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIG1hbnVhbHM7CitpdCBjYW4gYmUgdXNlZCBmb3IgYW55IHRleHR1YWwgd29yaywgcmVnYXJkbGVzcyBvZiBzdWJqZWN0IG1hdHRlciBvcgord2hldGhlciBpdCBpcyBwdWJsaXNoZWQgYXMgYSBwcmludGVkIGJvb2suICBXZSByZWNvbW1lbmQgdGhpcyBMaWNlbnNlCitwcmluY2lwYWxseSBmb3Igd29ya3Mgd2hvc2UgcHVycG9zZSBpcyBpbnN0cnVjdGlvbiBvciByZWZlcmVuY2UuCis8L1A+PFA+CisKKzxMST4KK0FQUExJQ0FCSUxJVFkgQU5EIERFRklOSVRJT05TCis8UD4KKworVGhpcyBMaWNlbnNlIGFwcGxpZXMgdG8gYW55IG1hbnVhbCBvciBvdGhlciB3b3JrLCBpbiBhbnkgbWVkaXVtLCB0aGF0Citjb250YWlucyBhIG5vdGljZSBwbGFjZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXIgc2F5aW5nIGl0IGNhbiBiZQorZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZS4gIFN1Y2ggYSBub3RpY2UgZ3JhbnRzIGEKK3dvcmxkLXdpZGUsIHJveWFsdHktZnJlZSBsaWNlbnNlLCB1bmxpbWl0ZWQgaW4gZHVyYXRpb24sIHRvIHVzZSB0aGF0Cit3b3JrIHVuZGVyIHRoZSBjb25kaXRpb25zIHN0YXRlZCBoZXJlaW4uICBUaGUgIkRvY3VtZW50IiwgYmVsb3csCityZWZlcnMgdG8gYW55IHN1Y2ggbWFudWFsIG9yIHdvcmsuICBBbnkgbWVtYmVyIG9mIHRoZSBwdWJsaWMgaXMgYQorbGljZW5zZWUsIGFuZCBpcyBhZGRyZXNzZWQgYXMgInlvdSIuICBZb3UgYWNjZXB0IHRoZSBsaWNlbnNlIGlmIHlvdQorY29weSwgbW9kaWZ5IG9yIGRpc3RyaWJ1dGUgdGhlIHdvcmsgaW4gYSB3YXkgcmVxdWlyaW5nIHBlcm1pc3Npb24KK3VuZGVyIGNvcHlyaWdodCBsYXcuCis8L1A+PFA+CisKK0EgIk1vZGlmaWVkIFZlcnNpb24iIG9mIHRoZSBEb2N1bWVudCBtZWFucyBhbnkgd29yayBjb250YWluaW5nIHRoZQorRG9jdW1lbnQgb3IgYSBwb3J0aW9uIG9mIGl0LCBlaXRoZXIgY29waWVkIHZlcmJhdGltLCBvciB3aXRoCittb2RpZmljYXRpb25zIGFuZC9vciB0cmFuc2xhdGVkIGludG8gYW5vdGhlciBsYW5ndWFnZS4KKzwvUD48UD4KKworQSAiU2Vjb25kYXJ5IFNlY3Rpb24iIGlzIGEgbmFtZWQgYXBwZW5kaXggb3IgYSBmcm9udC1tYXR0ZXIgc2VjdGlvbgorb2YgdGhlIERvY3VtZW50IHRoYXQgZGVhbHMgZXhjbHVzaXZlbHkgd2l0aCB0aGUgcmVsYXRpb25zaGlwIG9mIHRoZQorcHVibGlzaGVycyBvciBhdXRob3JzIG9mIHRoZSBEb2N1bWVudCB0byB0aGUgRG9jdW1lbnQncyBvdmVyYWxsCitzdWJqZWN0IChvciB0byByZWxhdGVkIG1hdHRlcnMpIGFuZCBjb250YWlucyBub3RoaW5nIHRoYXQgY291bGQgZmFsbAorZGlyZWN0bHkgd2l0aGluIHRoYXQgb3ZlcmFsbCBzdWJqZWN0LiAgKFRodXMsIGlmIHRoZSBEb2N1bWVudCBpcyBpbgorcGFydCBhIHRleHRib29rIG9mIG1hdGhlbWF0aWNzLCBhIFNlY29uZGFyeSBTZWN0aW9uIG1heSBub3QgZXhwbGFpbgorYW55IG1hdGhlbWF0aWNzLikgIFRoZSByZWxhdGlvbnNoaXAgY291bGQgYmUgYSBtYXR0ZXIgb2YgaGlzdG9yaWNhbAorY29ubmVjdGlvbiB3aXRoIHRoZSBzdWJqZWN0IG9yIHdpdGggcmVsYXRlZCBtYXR0ZXJzLCBvciBvZiBsZWdhbCwKK2NvbW1lcmNpYWwsIHBoaWxvc29waGljYWwsIGV0aGljYWwgb3IgcG9saXRpY2FsIHBvc2l0aW9uIHJlZ2FyZGluZwordGhlbS4KKzwvUD48UD4KKworVGhlICJJbnZhcmlhbnQgU2VjdGlvbnMiIGFyZSBjZXJ0YWluIFNlY29uZGFyeSBTZWN0aW9ucyB3aG9zZSB0aXRsZXMKK2FyZSBkZXNpZ25hdGVkLCBhcyBiZWluZyB0aG9zZSBvZiBJbnZhcmlhbnQgU2VjdGlvbnMsIGluIHRoZSBub3RpY2UKK3RoYXQgc2F5cyB0aGF0IHRoZSBEb2N1bWVudCBpcyByZWxlYXNlZCB1bmRlciB0aGlzIExpY2Vuc2UuICBJZiBhCitzZWN0aW9uIGRvZXMgbm90IGZpdCB0aGUgYWJvdmUgZGVmaW5pdGlvbiBvZiBTZWNvbmRhcnkgdGhlbiBpdCBpcyBub3QKK2FsbG93ZWQgdG8gYmUgZGVzaWduYXRlZCBhcyBJbnZhcmlhbnQuICBUaGUgRG9jdW1lbnQgbWF5IGNvbnRhaW4gemVybworSW52YXJpYW50IFNlY3Rpb25zLiAgSWYgdGhlIERvY3VtZW50IGRvZXMgbm90IGlkZW50aWZ5IGFueSBJbnZhcmlhbnQKK1NlY3Rpb25zIHRoZW4gdGhlcmUgYXJlIG5vbmUuCis8L1A+PFA+CisKK1RoZSAiQ292ZXIgVGV4dHMiIGFyZSBjZXJ0YWluIHNob3J0IHBhc3NhZ2VzIG9mIHRleHQgdGhhdCBhcmUgbGlzdGVkLAorYXMgRnJvbnQtQ292ZXIgVGV4dHMgb3IgQmFjay1Db3ZlciBUZXh0cywgaW4gdGhlIG5vdGljZSB0aGF0IHNheXMgdGhhdAordGhlIERvY3VtZW50IGlzIHJlbGVhc2VkIHVuZGVyIHRoaXMgTGljZW5zZS4gIEEgRnJvbnQtQ292ZXIgVGV4dCBtYXkKK2JlIGF0IG1vc3QgNSB3b3JkcywgYW5kIGEgQmFjay1Db3ZlciBUZXh0IG1heSBiZSBhdCBtb3N0IDI1IHdvcmRzLgorPC9QPjxQPgorCitBICJUcmFuc3BhcmVudCIgY29weSBvZiB0aGUgRG9jdW1lbnQgbWVhbnMgYSBtYWNoaW5lLXJlYWRhYmxlIGNvcHksCityZXByZXNlbnRlZCBpbiBhIGZvcm1hdCB3aG9zZSBzcGVjaWZpY2F0aW9uIGlzIGF2YWlsYWJsZSB0byB0aGUKK2dlbmVyYWwgcHVibGljLCB0aGF0IGlzIHN1aXRhYmxlIGZvciByZXZpc2luZyB0aGUgZG9jdW1lbnQKK3N0cmFpZ2h0Zm9yd2FyZGx5IHdpdGggZ2VuZXJpYyB0ZXh0IGVkaXRvcnMgb3IgKGZvciBpbWFnZXMgY29tcG9zZWQgb2YKK3BpeGVscykgZ2VuZXJpYyBwYWludCBwcm9ncmFtcyBvciAoZm9yIGRyYXdpbmdzKSBzb21lIHdpZGVseSBhdmFpbGFibGUKK2RyYXdpbmcgZWRpdG9yLCBhbmQgdGhhdCBpcyBzdWl0YWJsZSBmb3IgaW5wdXQgdG8gdGV4dCBmb3JtYXR0ZXJzIG9yCitmb3IgYXV0b21hdGljIHRyYW5zbGF0aW9uIHRvIGEgdmFyaWV0eSBvZiBmb3JtYXRzIHN1aXRhYmxlIGZvciBpbnB1dAordG8gdGV4dCBmb3JtYXR0ZXJzLiAgQSBjb3B5IG1hZGUgaW4gYW4gb3RoZXJ3aXNlIFRyYW5zcGFyZW50IGZpbGUKK2Zvcm1hdCB3aG9zZSBtYXJrdXAsIG9yIGFic2VuY2Ugb2YgbWFya3VwLCBoYXMgYmVlbiBhcnJhbmdlZCB0byB0aHdhcnQKK29yIGRpc2NvdXJhZ2Ugc3Vic2VxdWVudCBtb2RpZmljYXRpb24gYnkgcmVhZGVycyBpcyBub3QgVHJhbnNwYXJlbnQuCitBbiBpbWFnZSBmb3JtYXQgaXMgbm90IFRyYW5zcGFyZW50IGlmIHVzZWQgZm9yIGFueSBzdWJzdGFudGlhbCBhbW91bnQKK29mIHRleHQuICBBIGNvcHkgdGhhdCBpcyBub3QgIlRyYW5zcGFyZW50IiBpcyBjYWxsZWQgIk9wYXF1ZSIuCis8L1A+PFA+CisKK0V4YW1wbGVzIG9mIHN1aXRhYmxlIGZvcm1hdHMgZm9yIFRyYW5zcGFyZW50IGNvcGllcyBpbmNsdWRlIHBsYWluCitBU0NJSSB3aXRob3V0IG1hcmt1cCwgVGV4aW5mbyBpbnB1dCBmb3JtYXQsIExhVGVYIGlucHV0Citmb3JtYXQsIDxGT05UIFNJWkU9Ii0xIj5TR01MPC9GT05UPiBvciA8Rk9OVCBTSVpFPSItMSI+WE1MPC9GT05UPiB1c2luZyBhIHB1YmxpY2x5IGF2YWlsYWJsZQorPEZPTlQgU0laRT0iLTEiPkRURDwvRk9OVD4sIGFuZCBzdGFuZGFyZC1jb25mb3JtaW5nIHNpbXBsZSA8Rk9OVCBTSVpFPSItMSI+SFRNTDwvRk9OVD4sCitQb3N0U2NyaXB0IG9yIDxGT05UIFNJWkU9Ii0xIj5QREY8L0ZPTlQ+IGRlc2lnbmVkIGZvciBodW1hbiBtb2RpZmljYXRpb24uICBFeGFtcGxlcworb2YgdHJhbnNwYXJlbnQgaW1hZ2UgZm9ybWF0cyBpbmNsdWRlIDxGT05UIFNJWkU9Ii0xIj5QTkc8L0ZPTlQ+LCA8Rk9OVCBTSVpFPSItMSI+WENGPC9GT05UPiBhbmQKKzxGT05UIFNJWkU9Ii0xIj5KUEc8L0ZPTlQ+LiAgT3BhcXVlIGZvcm1hdHMgaW5jbHVkZSBwcm9wcmlldGFyeSBmb3JtYXRzIHRoYXQgY2FuIGJlCityZWFkIGFuZCBlZGl0ZWQgb25seSBieSBwcm9wcmlldGFyeSB3b3JkIHByb2Nlc3NvcnMsIDxGT05UIFNJWkU9Ii0xIj5TR01MPC9GT05UPiBvcgorPEZPTlQgU0laRT0iLTEiPlhNTDwvRk9OVD4gZm9yIHdoaWNoIHRoZSA8Rk9OVCBTSVpFPSItMSI+RFREPC9GT05UPiBhbmQvb3IgcHJvY2Vzc2luZyB0b29scyBhcmUKK25vdCBnZW5lcmFsbHkgYXZhaWxhYmxlLCBhbmQgdGhlIG1hY2hpbmUtZ2VuZXJhdGVkIDxGT05UIFNJWkU9Ii0xIj5IVE1MPC9GT05UPiwKK1Bvc3RTY3JpcHQgb3IgPEZPTlQgU0laRT0iLTEiPlBERjwvRk9OVD4gcHJvZHVjZWQgYnkgc29tZSB3b3JkIHByb2Nlc3NvcnMgZm9yCitvdXRwdXQgcHVycG9zZXMgb25seS4KKzwvUD48UD4KKworVGhlICJUaXRsZSBQYWdlIiBtZWFucywgZm9yIGEgcHJpbnRlZCBib29rLCB0aGUgdGl0bGUgcGFnZSBpdHNlbGYsCitwbHVzIHN1Y2ggZm9sbG93aW5nIHBhZ2VzIGFzIGFyZSBuZWVkZWQgdG8gaG9sZCwgbGVnaWJseSwgdGhlIG1hdGVyaWFsCit0aGlzIExpY2Vuc2UgcmVxdWlyZXMgdG8gYXBwZWFyIGluIHRoZSB0aXRsZSBwYWdlLiAgRm9yIHdvcmtzIGluCitmb3JtYXRzIHdoaWNoIGRvIG5vdCBoYXZlIGFueSB0aXRsZSBwYWdlIGFzIHN1Y2gsICJUaXRsZSBQYWdlIiBtZWFucwordGhlIHRleHQgbmVhciB0aGUgbW9zdCBwcm9taW5lbnQgYXBwZWFyYW5jZSBvZiB0aGUgd29yaydzIHRpdGxlLAorcHJlY2VkaW5nIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGJvZHkgb2YgdGhlIHRleHQuCis8L1A+PFA+CisKK0Egc2VjdGlvbiAiRW50aXRsZWQgWFlaIiBtZWFucyBhIG5hbWVkIHN1YnVuaXQgb2YgdGhlIERvY3VtZW50IHdob3NlCit0aXRsZSBlaXRoZXIgaXMgcHJlY2lzZWx5IFhZWiBvciBjb250YWlucyBYWVogaW4gcGFyZW50aGVzZXMgZm9sbG93aW5nCit0ZXh0IHRoYXQgdHJhbnNsYXRlcyBYWVogaW4gYW5vdGhlciBsYW5ndWFnZS4gIChIZXJlIFhZWiBzdGFuZHMgZm9yIGEKK3NwZWNpZmljIHNlY3Rpb24gbmFtZSBtZW50aW9uZWQgYmVsb3csIHN1Y2ggYXMgIkFja25vd2xlZGdlbWVudHMiLAorIkRlZGljYXRpb25zIiwgIkVuZG9yc2VtZW50cyIsIG9yICJIaXN0b3J5Ii4pICBUbyAiUHJlc2VydmUgdGhlIFRpdGxlIgorb2Ygc3VjaCBhIHNlY3Rpb24gd2hlbiB5b3UgbW9kaWZ5IHRoZSBEb2N1bWVudCBtZWFucyB0aGF0IGl0IHJlbWFpbnMgYQorc2VjdGlvbiAiRW50aXRsZWQgWFlaIiBhY2NvcmRpbmcgdG8gdGhpcyBkZWZpbml0aW9uLgorPC9QPjxQPgorCitUaGUgRG9jdW1lbnQgbWF5IGluY2x1ZGUgV2FycmFudHkgRGlzY2xhaW1lcnMgbmV4dCB0byB0aGUgbm90aWNlIHdoaWNoCitzdGF0ZXMgdGhhdCB0aGlzIExpY2Vuc2UgYXBwbGllcyB0byB0aGUgRG9jdW1lbnQuICBUaGVzZSBXYXJyYW50eQorRGlzY2xhaW1lcnMgYXJlIGNvbnNpZGVyZWQgdG8gYmUgaW5jbHVkZWQgYnkgcmVmZXJlbmNlIGluIHRoaXMKK0xpY2Vuc2UsIGJ1dCBvbmx5IGFzIHJlZ2FyZHMgZGlzY2xhaW1pbmcgd2FycmFudGllczogYW55IG90aGVyCitpbXBsaWNhdGlvbiB0aGF0IHRoZXNlIFdhcnJhbnR5IERpc2NsYWltZXJzIG1heSBoYXZlIGlzIHZvaWQgYW5kIGhhcworbm8gZWZmZWN0IG9uIHRoZSBtZWFuaW5nIG9mIHRoaXMgTGljZW5zZS4KKzwvUD48UD4KKworPExJPgorVkVSQkFUSU0gQ09QWUlORworPFA+CisKK1lvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSB0aGUgRG9jdW1lbnQgaW4gYW55IG1lZGl1bSwgZWl0aGVyCitjb21tZXJjaWFsbHkgb3Igbm9uY29tbWVyY2lhbGx5LCBwcm92aWRlZCB0aGF0IHRoaXMgTGljZW5zZSwgdGhlCitjb3B5cmlnaHQgbm90aWNlcywgYW5kIHRoZSBsaWNlbnNlIG5vdGljZSBzYXlpbmcgdGhpcyBMaWNlbnNlIGFwcGxpZXMKK3RvIHRoZSBEb2N1bWVudCBhcmUgcmVwcm9kdWNlZCBpbiBhbGwgY29waWVzLCBhbmQgdGhhdCB5b3UgYWRkIG5vIG90aGVyCitjb25kaXRpb25zIHdoYXRzb2V2ZXIgdG8gdGhvc2Ugb2YgdGhpcyBMaWNlbnNlLiAgWW91IG1heSBub3QgdXNlCit0ZWNobmljYWwgbWVhc3VyZXMgdG8gb2JzdHJ1Y3Qgb3IgY29udHJvbCB0aGUgcmVhZGluZyBvciBmdXJ0aGVyCitjb3B5aW5nIG9mIHRoZSBjb3BpZXMgeW91IG1ha2Ugb3IgZGlzdHJpYnV0ZS4gIEhvd2V2ZXIsIHlvdSBtYXkgYWNjZXB0Citjb21wZW5zYXRpb24gaW4gZXhjaGFuZ2UgZm9yIGNvcGllcy4gIElmIHlvdSBkaXN0cmlidXRlIGEgbGFyZ2UgZW5vdWdoCitudW1iZXIgb2YgY29waWVzIHlvdSBtdXN0IGFsc28gZm9sbG93IHRoZSBjb25kaXRpb25zIGluIHNlY3Rpb24gMy4KKzwvUD48UD4KKworWW91IG1heSBhbHNvIGxlbmQgY29waWVzLCB1bmRlciB0aGUgc2FtZSBjb25kaXRpb25zIHN0YXRlZCBhYm92ZSwgYW5kCit5b3UgbWF5IHB1YmxpY2x5IGRpc3BsYXkgY29waWVzLgorPC9QPjxQPgorCis8TEk+CitDT1BZSU5HIElOIFFVQU5USVRZCis8UD4KKworSWYgeW91IHB1Ymxpc2ggcHJpbnRlZCBjb3BpZXMgKG9yIGNvcGllcyBpbiBtZWRpYSB0aGF0IGNvbW1vbmx5IGhhdmUKK3ByaW50ZWQgY292ZXJzKSBvZiB0aGUgRG9jdW1lbnQsIG51bWJlcmluZyBtb3JlIHRoYW4gMTAwLCBhbmQgdGhlCitEb2N1bWVudCdzIGxpY2Vuc2Ugbm90aWNlIHJlcXVpcmVzIENvdmVyIFRleHRzLCB5b3UgbXVzdCBlbmNsb3NlIHRoZQorY29waWVzIGluIGNvdmVycyB0aGF0IGNhcnJ5LCBjbGVhcmx5IGFuZCBsZWdpYmx5LCBhbGwgdGhlc2UgQ292ZXIKK1RleHRzOiBGcm9udC1Db3ZlciBUZXh0cyBvbiB0aGUgZnJvbnQgY292ZXIsIGFuZCBCYWNrLUNvdmVyIFRleHRzIG9uCit0aGUgYmFjayBjb3Zlci4gIEJvdGggY292ZXJzIG11c3QgYWxzbyBjbGVhcmx5IGFuZCBsZWdpYmx5IGlkZW50aWZ5Cit5b3UgYXMgdGhlIHB1Ymxpc2hlciBvZiB0aGVzZSBjb3BpZXMuICBUaGUgZnJvbnQgY292ZXIgbXVzdCBwcmVzZW50Cit0aGUgZnVsbCB0aXRsZSB3aXRoIGFsbCB3b3JkcyBvZiB0aGUgdGl0bGUgZXF1YWxseSBwcm9taW5lbnQgYW5kCit2aXNpYmxlLiAgWW91IG1heSBhZGQgb3RoZXIgbWF0ZXJpYWwgb24gdGhlIGNvdmVycyBpbiBhZGRpdGlvbi4KK0NvcHlpbmcgd2l0aCBjaGFuZ2VzIGxpbWl0ZWQgdG8gdGhlIGNvdmVycywgYXMgbG9uZyBhcyB0aGV5IHByZXNlcnZlCit0aGUgdGl0bGUgb2YgdGhlIERvY3VtZW50IGFuZCBzYXRpc2Z5IHRoZXNlIGNvbmRpdGlvbnMsIGNhbiBiZSB0cmVhdGVkCithcyB2ZXJiYXRpbSBjb3B5aW5nIGluIG90aGVyIHJlc3BlY3RzLgorPC9QPjxQPgorCitJZiB0aGUgcmVxdWlyZWQgdGV4dHMgZm9yIGVpdGhlciBjb3ZlciBhcmUgdG9vIHZvbHVtaW5vdXMgdG8gZml0CitsZWdpYmx5LCB5b3Ugc2hvdWxkIHB1dCB0aGUgZmlyc3Qgb25lcyBsaXN0ZWQgKGFzIG1hbnkgYXMgZml0CityZWFzb25hYmx5KSBvbiB0aGUgYWN0dWFsIGNvdmVyLCBhbmQgY29udGludWUgdGhlIHJlc3Qgb250byBhZGphY2VudAorcGFnZXMuCis8L1A+PFA+CisKK0lmIHlvdSBwdWJsaXNoIG9yIGRpc3RyaWJ1dGUgT3BhcXVlIGNvcGllcyBvZiB0aGUgRG9jdW1lbnQgbnVtYmVyaW5nCittb3JlIHRoYW4gMTAwLCB5b3UgbXVzdCBlaXRoZXIgaW5jbHVkZSBhIG1hY2hpbmUtcmVhZGFibGUgVHJhbnNwYXJlbnQKK2NvcHkgYWxvbmcgd2l0aCBlYWNoIE9wYXF1ZSBjb3B5LCBvciBzdGF0ZSBpbiBvciB3aXRoIGVhY2ggT3BhcXVlIGNvcHkKK2EgY29tcHV0ZXItbmV0d29yayBsb2NhdGlvbiBmcm9tIHdoaWNoIHRoZSBnZW5lcmFsIG5ldHdvcmstdXNpbmcKK3B1YmxpYyBoYXMgYWNjZXNzIHRvIGRvd25sb2FkIHVzaW5nIHB1YmxpYy1zdGFuZGFyZCBuZXR3b3JrIHByb3RvY29scworYSBjb21wbGV0ZSBUcmFuc3BhcmVudCBjb3B5IG9mIHRoZSBEb2N1bWVudCwgZnJlZSBvZiBhZGRlZCBtYXRlcmlhbC4KK0lmIHlvdSB1c2UgdGhlIGxhdHRlciBvcHRpb24sIHlvdSBtdXN0IHRha2UgcmVhc29uYWJseSBwcnVkZW50IHN0ZXBzLAord2hlbiB5b3UgYmVnaW4gZGlzdHJpYnV0aW9uIG9mIE9wYXF1ZSBjb3BpZXMgaW4gcXVhbnRpdHksIHRvIGVuc3VyZQordGhhdCB0aGlzIFRyYW5zcGFyZW50IGNvcHkgd2lsbCByZW1haW4gdGh1cyBhY2Nlc3NpYmxlIGF0IHRoZSBzdGF0ZWQKK2xvY2F0aW9uIHVudGlsIGF0IGxlYXN0IG9uZSB5ZWFyIGFmdGVyIHRoZSBsYXN0IHRpbWUgeW91IGRpc3RyaWJ1dGUgYW4KK09wYXF1ZSBjb3B5IChkaXJlY3RseSBvciB0aHJvdWdoIHlvdXIgYWdlbnRzIG9yIHJldGFpbGVycykgb2YgdGhhdAorZWRpdGlvbiB0byB0aGUgcHVibGljLgorPC9QPjxQPgorCitJdCBpcyByZXF1ZXN0ZWQsIGJ1dCBub3QgcmVxdWlyZWQsIHRoYXQgeW91IGNvbnRhY3QgdGhlIGF1dGhvcnMgb2YgdGhlCitEb2N1bWVudCB3ZWxsIGJlZm9yZSByZWRpc3RyaWJ1dGluZyBhbnkgbGFyZ2UgbnVtYmVyIG9mIGNvcGllcywgdG8gZ2l2ZQordGhlbSBhIGNoYW5jZSB0byBwcm92aWRlIHlvdSB3aXRoIGFuIHVwZGF0ZWQgdmVyc2lvbiBvZiB0aGUgRG9jdW1lbnQuCis8L1A+PFA+CisKKzxMST4KK01PRElGSUNBVElPTlMKKzxQPgorCitZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgYSBNb2RpZmllZCBWZXJzaW9uIG9mIHRoZSBEb2N1bWVudCB1bmRlcgordGhlIGNvbmRpdGlvbnMgb2Ygc2VjdGlvbnMgMiBhbmQgMyBhYm92ZSwgcHJvdmlkZWQgdGhhdCB5b3UgcmVsZWFzZQordGhlIE1vZGlmaWVkIFZlcnNpb24gdW5kZXIgcHJlY2lzZWx5IHRoaXMgTGljZW5zZSwgd2l0aCB0aGUgTW9kaWZpZWQKK1ZlcnNpb24gZmlsbGluZyB0aGUgcm9sZSBvZiB0aGUgRG9jdW1lbnQsIHRodXMgbGljZW5zaW5nIGRpc3RyaWJ1dGlvbgorYW5kIG1vZGlmaWNhdGlvbiBvZiB0aGUgTW9kaWZpZWQgVmVyc2lvbiB0byB3aG9ldmVyIHBvc3Nlc3NlcyBhIGNvcHkKK29mIGl0LiAgSW4gYWRkaXRpb24sIHlvdSBtdXN0IGRvIHRoZXNlIHRoaW5ncyBpbiB0aGUgTW9kaWZpZWQgVmVyc2lvbjoKKzwvUD48UD4KKworPE9MPgorPExJPgorVXNlIGluIHRoZSBUaXRsZSBQYWdlIChhbmQgb24gdGhlIGNvdmVycywgaWYgYW55KSBhIHRpdGxlIGRpc3RpbmN0Citmcm9tIHRoYXQgb2YgdGhlIERvY3VtZW50LCBhbmQgZnJvbSB0aG9zZSBvZiBwcmV2aW91cyB2ZXJzaW9ucworKHdoaWNoIHNob3VsZCwgaWYgdGhlcmUgd2VyZSBhbnksIGJlIGxpc3RlZCBpbiB0aGUgSGlzdG9yeSBzZWN0aW9uCitvZiB0aGUgRG9jdW1lbnQpLiAgWW91IG1heSB1c2UgdGhlIHNhbWUgdGl0bGUgYXMgYSBwcmV2aW91cyB2ZXJzaW9uCitpZiB0aGUgb3JpZ2luYWwgcHVibGlzaGVyIG9mIHRoYXQgdmVyc2lvbiBnaXZlcyBwZXJtaXNzaW9uLgorPFA+CisKKzxMST4KK0xpc3Qgb24gdGhlIFRpdGxlIFBhZ2UsIGFzIGF1dGhvcnMsIG9uZSBvciBtb3JlIHBlcnNvbnMgb3IgZW50aXRpZXMKK3Jlc3BvbnNpYmxlIGZvciBhdXRob3JzaGlwIG9mIHRoZSBtb2RpZmljYXRpb25zIGluIHRoZSBNb2RpZmllZAorVmVyc2lvbiwgdG9nZXRoZXIgd2l0aCBhdCBsZWFzdCBmaXZlIG9mIHRoZSBwcmluY2lwYWwgYXV0aG9ycyBvZiB0aGUKK0RvY3VtZW50IChhbGwgb2YgaXRzIHByaW5jaXBhbCBhdXRob3JzLCBpZiBpdCBoYXMgZmV3ZXIgdGhhbiBmaXZlKSwKK3VubGVzcyB0aGV5IHJlbGVhc2UgeW91IGZyb20gdGhpcyByZXF1aXJlbWVudC4KKzxQPgorCis8TEk+CitTdGF0ZSBvbiB0aGUgVGl0bGUgcGFnZSB0aGUgbmFtZSBvZiB0aGUgcHVibGlzaGVyIG9mIHRoZQorTW9kaWZpZWQgVmVyc2lvbiwgYXMgdGhlIHB1Ymxpc2hlci4KKzxQPgorCis8TEk+CitQcmVzZXJ2ZSBhbGwgdGhlIGNvcHlyaWdodCBub3RpY2VzIG9mIHRoZSBEb2N1bWVudC4KKzxQPgorCis8TEk+CitBZGQgYW4gYXBwcm9wcmlhdGUgY29weXJpZ2h0IG5vdGljZSBmb3IgeW91ciBtb2RpZmljYXRpb25zCithZGphY2VudCB0byB0aGUgb3RoZXIgY29weXJpZ2h0IG5vdGljZXMuCis8UD4KKworPExJPgorSW5jbHVkZSwgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGNvcHlyaWdodCBub3RpY2VzLCBhIGxpY2Vuc2Ugbm90aWNlCitnaXZpbmcgdGhlIHB1YmxpYyBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgTW9kaWZpZWQgVmVyc2lvbiB1bmRlciB0aGUKK3Rlcm1zIG9mIHRoaXMgTGljZW5zZSwgaW4gdGhlIGZvcm0gc2hvd24gaW4gdGhlIEFkZGVuZHVtIGJlbG93LgorPFA+CisKKzxMST4KK1ByZXNlcnZlIGluIHRoYXQgbGljZW5zZSBub3RpY2UgdGhlIGZ1bGwgbGlzdHMgb2YgSW52YXJpYW50IFNlY3Rpb25zCithbmQgcmVxdWlyZWQgQ292ZXIgVGV4dHMgZ2l2ZW4gaW4gdGhlIERvY3VtZW50J3MgbGljZW5zZSBub3RpY2UuCis8UD4KKworPExJPgorSW5jbHVkZSBhbiB1bmFsdGVyZWQgY29weSBvZiB0aGlzIExpY2Vuc2UuCis8UD4KKworPExJPgorUHJlc2VydmUgdGhlIHNlY3Rpb24gRW50aXRsZWQgIkhpc3RvcnkiLCBQcmVzZXJ2ZSBpdHMgVGl0bGUsIGFuZCBhZGQKK3RvIGl0IGFuIGl0ZW0gc3RhdGluZyBhdCBsZWFzdCB0aGUgdGl0bGUsIHllYXIsIG5ldyBhdXRob3JzLCBhbmQKK3B1Ymxpc2hlciBvZiB0aGUgTW9kaWZpZWQgVmVyc2lvbiBhcyBnaXZlbiBvbiB0aGUgVGl0bGUgUGFnZS4gIElmCit0aGVyZSBpcyBubyBzZWN0aW9uIEVudGl0bGVkICJIaXN0b3J5IiBpbiB0aGUgRG9jdW1lbnQsIGNyZWF0ZSBvbmUKK3N0YXRpbmcgdGhlIHRpdGxlLCB5ZWFyLCBhdXRob3JzLCBhbmQgcHVibGlzaGVyIG9mIHRoZSBEb2N1bWVudCBhcworZ2l2ZW4gb24gaXRzIFRpdGxlIFBhZ2UsIHRoZW4gYWRkIGFuIGl0ZW0gZGVzY3JpYmluZyB0aGUgTW9kaWZpZWQKK1ZlcnNpb24gYXMgc3RhdGVkIGluIHRoZSBwcmV2aW91cyBzZW50ZW5jZS4KKzxQPgorCis8TEk+CitQcmVzZXJ2ZSB0aGUgbmV0d29yayBsb2NhdGlvbiwgaWYgYW55LCBnaXZlbiBpbiB0aGUgRG9jdW1lbnQgZm9yCitwdWJsaWMgYWNjZXNzIHRvIGEgVHJhbnNwYXJlbnQgY29weSBvZiB0aGUgRG9jdW1lbnQsIGFuZCBsaWtld2lzZQordGhlIG5ldHdvcmsgbG9jYXRpb25zIGdpdmVuIGluIHRoZSBEb2N1bWVudCBmb3IgcHJldmlvdXMgdmVyc2lvbnMKK2l0IHdhcyBiYXNlZCBvbi4gIFRoZXNlIG1heSBiZSBwbGFjZWQgaW4gdGhlICJIaXN0b3J5IiBzZWN0aW9uLgorWW91IG1heSBvbWl0IGEgbmV0d29yayBsb2NhdGlvbiBmb3IgYSB3b3JrIHRoYXQgd2FzIHB1Ymxpc2hlZCBhdAorbGVhc3QgZm91ciB5ZWFycyBiZWZvcmUgdGhlIERvY3VtZW50IGl0c2VsZiwgb3IgaWYgdGhlIG9yaWdpbmFsCitwdWJsaXNoZXIgb2YgdGhlIHZlcnNpb24gaXQgcmVmZXJzIHRvIGdpdmVzIHBlcm1pc3Npb24uCis8UD4KKworPExJPgorRm9yIGFueSBzZWN0aW9uIEVudGl0bGVkICJBY2tub3dsZWRnZW1lbnRzIiBvciAiRGVkaWNhdGlvbnMiLCBQcmVzZXJ2ZQordGhlIFRpdGxlIG9mIHRoZSBzZWN0aW9uLCBhbmQgcHJlc2VydmUgaW4gdGhlIHNlY3Rpb24gYWxsIHRoZQorc3Vic3RhbmNlIGFuZCB0b25lIG9mIGVhY2ggb2YgdGhlIGNvbnRyaWJ1dG9yIGFja25vd2xlZGdlbWVudHMgYW5kL29yCitkZWRpY2F0aW9ucyBnaXZlbiB0aGVyZWluLgorPFA+CisKKzxMST4KK1ByZXNlcnZlIGFsbCB0aGUgSW52YXJpYW50IFNlY3Rpb25zIG9mIHRoZSBEb2N1bWVudCwKK3VuYWx0ZXJlZCBpbiB0aGVpciB0ZXh0IGFuZCBpbiB0aGVpciB0aXRsZXMuICBTZWN0aW9uIG51bWJlcnMKK29yIHRoZSBlcXVpdmFsZW50IGFyZSBub3QgY29uc2lkZXJlZCBwYXJ0IG9mIHRoZSBzZWN0aW9uIHRpdGxlcy4KKzxQPgorCis8TEk+CitEZWxldGUgYW55IHNlY3Rpb24gRW50aXRsZWQgIkVuZG9yc2VtZW50cyIuICBTdWNoIGEgc2VjdGlvbgorbWF5IG5vdCBiZSBpbmNsdWRlZCBpbiB0aGUgTW9kaWZpZWQgVmVyc2lvbi4KKzxQPgorCis8TEk+CitEbyBub3QgcmV0aXRsZSBhbnkgZXhpc3Rpbmcgc2VjdGlvbiB0byBiZSBFbnRpdGxlZCAiRW5kb3JzZW1lbnRzIiBvcgordG8gY29uZmxpY3QgaW4gdGl0bGUgd2l0aCBhbnkgSW52YXJpYW50IFNlY3Rpb24uCis8UD4KKworPExJPgorUHJlc2VydmUgYW55IFdhcnJhbnR5IERpc2NsYWltZXJzLgorPC9PTD4KKzxQPgorCitJZiB0aGUgTW9kaWZpZWQgVmVyc2lvbiBpbmNsdWRlcyBuZXcgZnJvbnQtbWF0dGVyIHNlY3Rpb25zIG9yCithcHBlbmRpY2VzIHRoYXQgcXVhbGlmeSBhcyBTZWNvbmRhcnkgU2VjdGlvbnMgYW5kIGNvbnRhaW4gbm8gbWF0ZXJpYWwKK2NvcGllZCBmcm9tIHRoZSBEb2N1bWVudCwgeW91IG1heSBhdCB5b3VyIG9wdGlvbiBkZXNpZ25hdGUgc29tZSBvciBhbGwKK29mIHRoZXNlIHNlY3Rpb25zIGFzIGludmFyaWFudC4gIFRvIGRvIHRoaXMsIGFkZCB0aGVpciB0aXRsZXMgdG8gdGhlCitsaXN0IG9mIEludmFyaWFudCBTZWN0aW9ucyBpbiB0aGUgTW9kaWZpZWQgVmVyc2lvbidzIGxpY2Vuc2Ugbm90aWNlLgorVGhlc2UgdGl0bGVzIG11c3QgYmUgZGlzdGluY3QgZnJvbSBhbnkgb3RoZXIgc2VjdGlvbiB0aXRsZXMuCis8L1A+PFA+CisKK1lvdSBtYXkgYWRkIGEgc2VjdGlvbiBFbnRpdGxlZCAiRW5kb3JzZW1lbnRzIiwgcHJvdmlkZWQgaXQgY29udGFpbnMKK25vdGhpbmcgYnV0IGVuZG9yc2VtZW50cyBvZiB5b3VyIE1vZGlmaWVkIFZlcnNpb24gYnkgdmFyaW91cworcGFydGllcy0tZm9yIGV4YW1wbGUsIHN0YXRlbWVudHMgb2YgcGVlciByZXZpZXcgb3IgdGhhdCB0aGUgdGV4dCBoYXMKK2JlZW4gYXBwcm92ZWQgYnkgYW4gb3JnYW5pemF0aW9uIGFzIHRoZSBhdXRob3JpdGF0aXZlIGRlZmluaXRpb24gb2YgYQorc3RhbmRhcmQuCis8L1A+PFA+CisKK1lvdSBtYXkgYWRkIGEgcGFzc2FnZSBvZiB1cCB0byBmaXZlIHdvcmRzIGFzIGEgRnJvbnQtQ292ZXIgVGV4dCwgYW5kIGEKK3Bhc3NhZ2Ugb2YgdXAgdG8gMjUgd29yZHMgYXMgYSBCYWNrLUNvdmVyIFRleHQsIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QKK29mIENvdmVyIFRleHRzIGluIHRoZSBNb2RpZmllZCBWZXJzaW9uLiAgT25seSBvbmUgcGFzc2FnZSBvZgorRnJvbnQtQ292ZXIgVGV4dCBhbmQgb25lIG9mIEJhY2stQ292ZXIgVGV4dCBtYXkgYmUgYWRkZWQgYnkgKG9yCit0aHJvdWdoIGFycmFuZ2VtZW50cyBtYWRlIGJ5KSBhbnkgb25lIGVudGl0eS4gIElmIHRoZSBEb2N1bWVudCBhbHJlYWR5CitpbmNsdWRlcyBhIGNvdmVyIHRleHQgZm9yIHRoZSBzYW1lIGNvdmVyLCBwcmV2aW91c2x5IGFkZGVkIGJ5IHlvdSBvcgorYnkgYXJyYW5nZW1lbnQgbWFkZSBieSB0aGUgc2FtZSBlbnRpdHkgeW91IGFyZSBhY3Rpbmcgb24gYmVoYWxmIG9mLAoreW91IG1heSBub3QgYWRkIGFub3RoZXI7IGJ1dCB5b3UgbWF5IHJlcGxhY2UgdGhlIG9sZCBvbmUsIG9uIGV4cGxpY2l0CitwZXJtaXNzaW9uIGZyb20gdGhlIHByZXZpb3VzIHB1Ymxpc2hlciB0aGF0IGFkZGVkIHRoZSBvbGQgb25lLgorPC9QPjxQPgorCitUaGUgYXV0aG9yKHMpIGFuZCBwdWJsaXNoZXIocykgb2YgdGhlIERvY3VtZW50IGRvIG5vdCBieSB0aGlzIExpY2Vuc2UKK2dpdmUgcGVybWlzc2lvbiB0byB1c2UgdGhlaXIgbmFtZXMgZm9yIHB1YmxpY2l0eSBmb3Igb3IgdG8gYXNzZXJ0IG9yCitpbXBseSBlbmRvcnNlbWVudCBvZiBhbnkgTW9kaWZpZWQgVmVyc2lvbi4KKzwvUD48UD4KKworPExJPgorQ09NQklOSU5HIERPQ1VNRU5UUworPFA+CisKK1lvdSBtYXkgY29tYmluZSB0aGUgRG9jdW1lbnQgd2l0aCBvdGhlciBkb2N1bWVudHMgcmVsZWFzZWQgdW5kZXIgdGhpcworTGljZW5zZSwgdW5kZXIgdGhlIHRlcm1zIGRlZmluZWQgaW4gc2VjdGlvbiA0IGFib3ZlIGZvciBtb2RpZmllZAordmVyc2lvbnMsIHByb3ZpZGVkIHRoYXQgeW91IGluY2x1ZGUgaW4gdGhlIGNvbWJpbmF0aW9uIGFsbCBvZiB0aGUKK0ludmFyaWFudCBTZWN0aW9ucyBvZiBhbGwgb2YgdGhlIG9yaWdpbmFsIGRvY3VtZW50cywgdW5tb2RpZmllZCwgYW5kCitsaXN0IHRoZW0gYWxsIGFzIEludmFyaWFudCBTZWN0aW9ucyBvZiB5b3VyIGNvbWJpbmVkIHdvcmsgaW4gaXRzCitsaWNlbnNlIG5vdGljZSwgYW5kIHRoYXQgeW91IHByZXNlcnZlIGFsbCB0aGVpciBXYXJyYW50eSBEaXNjbGFpbWVycy4KKzwvUD48UD4KKworVGhlIGNvbWJpbmVkIHdvcmsgbmVlZCBvbmx5IGNvbnRhaW4gb25lIGNvcHkgb2YgdGhpcyBMaWNlbnNlLCBhbmQKK211bHRpcGxlIGlkZW50aWNhbCBJbnZhcmlhbnQgU2VjdGlvbnMgbWF5IGJlIHJlcGxhY2VkIHdpdGggYSBzaW5nbGUKK2NvcHkuICBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgSW52YXJpYW50IFNlY3Rpb25zIHdpdGggdGhlIHNhbWUgbmFtZSBidXQKK2RpZmZlcmVudCBjb250ZW50cywgbWFrZSB0aGUgdGl0bGUgb2YgZWFjaCBzdWNoIHNlY3Rpb24gdW5pcXVlIGJ5CithZGRpbmcgYXQgdGhlIGVuZCBvZiBpdCwgaW4gcGFyZW50aGVzZXMsIHRoZSBuYW1lIG9mIHRoZSBvcmlnaW5hbAorYXV0aG9yIG9yIHB1Ymxpc2hlciBvZiB0aGF0IHNlY3Rpb24gaWYga25vd24sIG9yIGVsc2UgYSB1bmlxdWUgbnVtYmVyLgorTWFrZSB0aGUgc2FtZSBhZGp1c3RtZW50IHRvIHRoZSBzZWN0aW9uIHRpdGxlcyBpbiB0aGUgbGlzdCBvZgorSW52YXJpYW50IFNlY3Rpb25zIGluIHRoZSBsaWNlbnNlIG5vdGljZSBvZiB0aGUgY29tYmluZWQgd29yay4KKzwvUD48UD4KKworSW4gdGhlIGNvbWJpbmF0aW9uLCB5b3UgbXVzdCBjb21iaW5lIGFueSBzZWN0aW9ucyBFbnRpdGxlZCAiSGlzdG9yeSIKK2luIHRoZSB2YXJpb3VzIG9yaWdpbmFsIGRvY3VtZW50cywgZm9ybWluZyBvbmUgc2VjdGlvbiBFbnRpdGxlZAorIkhpc3RvcnkiOyBsaWtld2lzZSBjb21iaW5lIGFueSBzZWN0aW9ucyBFbnRpdGxlZCAiQWNrbm93bGVkZ2VtZW50cyIsCithbmQgYW55IHNlY3Rpb25zIEVudGl0bGVkICJEZWRpY2F0aW9ucyIuICBZb3UgbXVzdCBkZWxldGUgYWxsCitzZWN0aW9ucyBFbnRpdGxlZCAiRW5kb3JzZW1lbnRzLiIKKzwvUD48UD4KKworPExJPgorQ09MTEVDVElPTlMgT0YgRE9DVU1FTlRTCis8UD4KKworWW91IG1heSBtYWtlIGEgY29sbGVjdGlvbiBjb25zaXN0aW5nIG9mIHRoZSBEb2N1bWVudCBhbmQgb3RoZXIgZG9jdW1lbnRzCityZWxlYXNlZCB1bmRlciB0aGlzIExpY2Vuc2UsIGFuZCByZXBsYWNlIHRoZSBpbmRpdmlkdWFsIGNvcGllcyBvZiB0aGlzCitMaWNlbnNlIGluIHRoZSB2YXJpb3VzIGRvY3VtZW50cyB3aXRoIGEgc2luZ2xlIGNvcHkgdGhhdCBpcyBpbmNsdWRlZCBpbgordGhlIGNvbGxlY3Rpb24sIHByb3ZpZGVkIHRoYXQgeW91IGZvbGxvdyB0aGUgcnVsZXMgb2YgdGhpcyBMaWNlbnNlIGZvcgordmVyYmF0aW0gY29weWluZyBvZiBlYWNoIG9mIHRoZSBkb2N1bWVudHMgaW4gYWxsIG90aGVyIHJlc3BlY3RzLgorPC9QPjxQPgorCitZb3UgbWF5IGV4dHJhY3QgYSBzaW5nbGUgZG9jdW1lbnQgZnJvbSBzdWNoIGEgY29sbGVjdGlvbiwgYW5kIGRpc3RyaWJ1dGUKK2l0IGluZGl2aWR1YWxseSB1bmRlciB0aGlzIExpY2Vuc2UsIHByb3ZpZGVkIHlvdSBpbnNlcnQgYSBjb3B5IG9mIHRoaXMKK0xpY2Vuc2UgaW50byB0aGUgZXh0cmFjdGVkIGRvY3VtZW50LCBhbmQgZm9sbG93IHRoaXMgTGljZW5zZSBpbiBhbGwKK290aGVyIHJlc3BlY3RzIHJlZ2FyZGluZyB2ZXJiYXRpbSBjb3B5aW5nIG9mIHRoYXQgZG9jdW1lbnQuCis8L1A+PFA+CisKKzxMST4KK0FHR1JFR0FUSU9OIFdJVEggSU5ERVBFTkRFTlQgV09SS1MKKzxQPgorCitBIGNvbXBpbGF0aW9uIG9mIHRoZSBEb2N1bWVudCBvciBpdHMgZGVyaXZhdGl2ZXMgd2l0aCBvdGhlciBzZXBhcmF0ZQorYW5kIGluZGVwZW5kZW50IGRvY3VtZW50cyBvciB3b3JrcywgaW4gb3Igb24gYSB2b2x1bWUgb2YgYSBzdG9yYWdlIG9yCitkaXN0cmlidXRpb24gbWVkaXVtLCBpcyBjYWxsZWQgYW4gImFnZ3JlZ2F0ZSIgaWYgdGhlIGNvcHlyaWdodAorcmVzdWx0aW5nIGZyb20gdGhlIGNvbXBpbGF0aW9uIGlzIG5vdCB1c2VkIHRvIGxpbWl0IHRoZSBsZWdhbCByaWdodHMKK29mIHRoZSBjb21waWxhdGlvbidzIHVzZXJzIGJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtzIHBlcm1pdC4KK1doZW4gdGhlIERvY3VtZW50IGlzIGluY2x1ZGVkIGFuIGFnZ3JlZ2F0ZSwgdGhpcyBMaWNlbnNlIGRvZXMgbm90CithcHBseSB0byB0aGUgb3RoZXIgd29ya3MgaW4gdGhlIGFnZ3JlZ2F0ZSB3aGljaCBhcmUgbm90IHRoZW1zZWx2ZXMKK2Rlcml2YXRpdmUgd29ya3Mgb2YgdGhlIERvY3VtZW50LgorPC9QPjxQPgorCitJZiB0aGUgQ292ZXIgVGV4dCByZXF1aXJlbWVudCBvZiBzZWN0aW9uIDMgaXMgYXBwbGljYWJsZSB0byB0aGVzZQorY29waWVzIG9mIHRoZSBEb2N1bWVudCwgdGhlbiBpZiB0aGUgRG9jdW1lbnQgaXMgbGVzcyB0aGFuIG9uZSBoYWxmIG9mCit0aGUgZW50aXJlIGFnZ3JlZ2F0ZSwgdGhlIERvY3VtZW50J3MgQ292ZXIgVGV4dHMgbWF5IGJlIHBsYWNlZCBvbgorY292ZXJzIHRoYXQgYnJhY2tldCB0aGUgRG9jdW1lbnQgd2l0aGluIHRoZSBhZ2dyZWdhdGUsIG9yIHRoZQorZWxlY3Ryb25pYyBlcXVpdmFsZW50IG9mIGNvdmVycyBpZiB0aGUgRG9jdW1lbnQgaXMgaW4gZWxlY3Ryb25pYyBmb3JtLgorT3RoZXJ3aXNlIHRoZXkgbXVzdCBhcHBlYXIgb24gcHJpbnRlZCBjb3ZlcnMgdGhhdCBicmFja2V0IHRoZSB3aG9sZQorYWdncmVnYXRlLgorPC9QPjxQPgorCis8TEk+CitUUkFOU0xBVElPTgorPFA+CisKK1RyYW5zbGF0aW9uIGlzIGNvbnNpZGVyZWQgYSBraW5kIG9mIG1vZGlmaWNhdGlvbiwgc28geW91IG1heQorZGlzdHJpYnV0ZSB0cmFuc2xhdGlvbnMgb2YgdGhlIERvY3VtZW50IHVuZGVyIHRoZSB0ZXJtcyBvZiBzZWN0aW9uIDQuCitSZXBsYWNpbmcgSW52YXJpYW50IFNlY3Rpb25zIHdpdGggdHJhbnNsYXRpb25zIHJlcXVpcmVzIHNwZWNpYWwKK3Blcm1pc3Npb24gZnJvbSB0aGVpciBjb3B5cmlnaHQgaG9sZGVycywgYnV0IHlvdSBtYXkgaW5jbHVkZQordHJhbnNsYXRpb25zIG9mIHNvbWUgb3IgYWxsIEludmFyaWFudCBTZWN0aW9ucyBpbiBhZGRpdGlvbiB0byB0aGUKK29yaWdpbmFsIHZlcnNpb25zIG9mIHRoZXNlIEludmFyaWFudCBTZWN0aW9ucy4gIFlvdSBtYXkgaW5jbHVkZSBhCit0cmFuc2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UsIGFuZCBhbGwgdGhlIGxpY2Vuc2Ugbm90aWNlcyBpbiB0aGUKK0RvY3VtZW50LCBhbmQgYW55IFdhcnJhbnR5IERpc2NsYWltZXJzLCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIGluY2x1ZGUKK3RoZSBvcmlnaW5hbCBFbmdsaXNoIHZlcnNpb24gb2YgdGhpcyBMaWNlbnNlIGFuZCB0aGUgb3JpZ2luYWwgdmVyc2lvbnMKK29mIHRob3NlIG5vdGljZXMgYW5kIGRpc2NsYWltZXJzLiAgSW4gY2FzZSBvZiBhIGRpc2FncmVlbWVudCBiZXR3ZWVuCit0aGUgdHJhbnNsYXRpb24gYW5kIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mIHRoaXMgTGljZW5zZSBvciBhIG5vdGljZQorb3IgZGlzY2xhaW1lciwgdGhlIG9yaWdpbmFsIHZlcnNpb24gd2lsbCBwcmV2YWlsLgorPC9QPjxQPgorCitJZiBhIHNlY3Rpb24gaW4gdGhlIERvY3VtZW50IGlzIEVudGl0bGVkICJBY2tub3dsZWRnZW1lbnRzIiwKKyJEZWRpY2F0aW9ucyIsIG9yICJIaXN0b3J5IiwgdGhlIHJlcXVpcmVtZW50IChzZWN0aW9uIDQpIHRvIFByZXNlcnZlCitpdHMgVGl0bGUgKHNlY3Rpb24gMSkgd2lsbCB0eXBpY2FsbHkgcmVxdWlyZSBjaGFuZ2luZyB0aGUgYWN0dWFsCit0aXRsZS4KKzwvUD48UD4KKworPExJPgorVEVSTUlOQVRJT04KKzxQPgorCitZb3UgbWF5IG5vdCBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2UsIG9yIGRpc3RyaWJ1dGUgdGhlIERvY3VtZW50IGV4Y2VwdAorYXMgZXhwcmVzc2x5IHByb3ZpZGVkIGZvciB1bmRlciB0aGlzIExpY2Vuc2UuICBBbnkgb3RoZXIgYXR0ZW1wdCB0bworY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlIG9yIGRpc3RyaWJ1dGUgdGhlIERvY3VtZW50IGlzIHZvaWQsIGFuZCB3aWxsCithdXRvbWF0aWNhbGx5IHRlcm1pbmF0ZSB5b3VyIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2UuICBIb3dldmVyLAorcGFydGllcyB3aG8gaGF2ZSByZWNlaXZlZCBjb3BpZXMsIG9yIHJpZ2h0cywgZnJvbSB5b3UgdW5kZXIgdGhpcworTGljZW5zZSB3aWxsIG5vdCBoYXZlIHRoZWlyIGxpY2Vuc2VzIHRlcm1pbmF0ZWQgc28gbG9uZyBhcyBzdWNoCitwYXJ0aWVzIHJlbWFpbiBpbiBmdWxsIGNvbXBsaWFuY2UuCis8L1A+PFA+CisKKzxMST4KK0ZVVFVSRSBSRVZJU0lPTlMgT0YgVEhJUyBMSUNFTlNFCis8UD4KKworVGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBtYXkgcHVibGlzaCBuZXcsIHJldmlzZWQgdmVyc2lvbnMKK29mIHRoZSBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldwordmVyc2lvbnMgd2lsbCBiZSBzaW1pbGFyIGluIHNwaXJpdCB0byB0aGUgcHJlc2VudCB2ZXJzaW9uLCBidXQgbWF5CitkaWZmZXIgaW4gZGV0YWlsIHRvIGFkZHJlc3MgbmV3IHByb2JsZW1zIG9yIGNvbmNlcm5zLiAgU2VlCis8QSBIUkVGPSJodHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvIj5odHRwOi8vd3d3LmdudS5vcmcvY29weWxlZnQvPC9BPi4KKzwvUD48UD4KKworRWFjaCB2ZXJzaW9uIG9mIHRoZSBMaWNlbnNlIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuCitJZiB0aGUgRG9jdW1lbnQgc3BlY2lmaWVzIHRoYXQgYSBwYXJ0aWN1bGFyIG51bWJlcmVkIHZlcnNpb24gb2YgdGhpcworTGljZW5zZSAib3IgYW55IGxhdGVyIHZlcnNpb24iIGFwcGxpZXMgdG8gaXQsIHlvdSBoYXZlIHRoZSBvcHRpb24gb2YKK2ZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZWl0aGVyIG9mIHRoYXQgc3BlY2lmaWVkIHZlcnNpb24gb3IKK29mIGFueSBsYXRlciB2ZXJzaW9uIHRoYXQgaGFzIGJlZW4gcHVibGlzaGVkIChub3QgYXMgYSBkcmFmdCkgYnkgdGhlCitGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uICBJZiB0aGUgRG9jdW1lbnQgZG9lcyBub3Qgc3BlY2lmeSBhIHZlcnNpb24KK251bWJlciBvZiB0aGlzIExpY2Vuc2UsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkIChub3QKK2FzIGEgZHJhZnQpIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCis8L09MPgorPFA+CisKKzxIUiBTSVpFPSI2Ij4KKzxBIE5BTUU9IlNFQzUxIj48L0E+Cis8VEFCTEUgQ0VMTFBBRERJTkc9MSBDRUxMU1BBQ0lORz0xIEJPUkRFUj0wPgorPFRSPjxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUwIj4gJmx0OyA8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+ICZndDsgPC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+ICZsdDsmbHQ7IDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUwIj4gVXAgPC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WyAmZ3Q7Jmd0OyBdPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUyIj5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgorPC9UUj48L1RBQkxFPgorPEgzPiBBLjEuMSBBRERFTkRVTTogSG93IHRvIHVzZSB0aGlzIExpY2Vuc2UgZm9yIHlvdXIgZG9jdW1lbnRzIDwvSDM+Cis8IS0tZG9jaWQ6OlNFQzUxOjotLT4KKzxQPgorCitUbyB1c2UgdGhpcyBMaWNlbnNlIGluIGEgZG9jdW1lbnQgeW91IGhhdmUgd3JpdHRlbiwgaW5jbHVkZSBhIGNvcHkgb2YKK3RoZSBMaWNlbnNlIGluIHRoZSBkb2N1bWVudCBhbmQgcHV0IHRoZSBmb2xsb3dpbmcgY29weXJpZ2h0IGFuZAorbGljZW5zZSBub3RpY2VzIGp1c3QgYWZ0ZXIgdGhlIHRpdGxlIHBhZ2U6Cis8L1A+PFA+CisKKzxUQUJMRT48dHI+PHRkPiZuYnNwOzwvdGQ+PHRkIGNsYXNzPXNtYWxsZXhhbXBsZT48Rk9OVCBTSVpFPS0xPjxwcmU+ICBDb3B5cmlnaHQgKEMpICA8VkFSPnllYXI8L1ZBUj4gIDxWQVI+eW91ciBuYW1lPC9WQVI+LgorICBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoaXMgZG9jdW1lbnQKKyAgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UsIFZlcnNpb24gMS4yCisgIG9yIGFueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOworICB3aXRoIG5vIEludmFyaWFudCBTZWN0aW9ucywgbm8gRnJvbnQtQ292ZXIgVGV4dHMsIGFuZCBubyBCYWNrLUNvdmVyIFRleHRzLgorICBBIGNvcHkgb2YgdGhlIGxpY2Vuc2UgaXMgaW5jbHVkZWQgaW4gdGhlIHNlY3Rpb24gZW50aXRsZWQgYGBHTlUKKyAgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UnJy4KKzwvRk9OVD48L3ByZT48L3RkPjwvdHI+PC90YWJsZT48L1A+PFA+CisKK0lmIHlvdSBoYXZlIEludmFyaWFudCBTZWN0aW9ucywgRnJvbnQtQ292ZXIgVGV4dHMgYW5kIEJhY2stQ292ZXIgVGV4dHMsCityZXBsYWNlIHRoZSAid2l0aC4uLlRleHRzLiIgbGluZSB3aXRoIHRoaXM6Cis8L1A+PFA+CisKKzxUQUJMRT48dHI+PHRkPiZuYnNwOzwvdGQ+PHRkIGNsYXNzPXNtYWxsZXhhbXBsZT48Rk9OVCBTSVpFPS0xPjxwcmU+ICAgIHdpdGggdGhlIEludmFyaWFudCBTZWN0aW9ucyBiZWluZyA8VkFSPmxpc3QgdGhlaXIgdGl0bGVzPC9WQVI+LCB3aXRoCisgICAgdGhlIEZyb250LUNvdmVyIFRleHRzIGJlaW5nIDxWQVI+bGlzdDwvVkFSPiwgYW5kIHdpdGggdGhlIEJhY2stQ292ZXIgVGV4dHMKKyAgICBiZWluZyA8VkFSPmxpc3Q8L1ZBUj4uCis8L0ZPTlQ+PC9wcmU+PC90ZD48L3RyPjwvdGFibGU+PC9QPjxQPgorCitJZiB5b3UgaGF2ZSBJbnZhcmlhbnQgU2VjdGlvbnMgd2l0aG91dCBDb3ZlciBUZXh0cywgb3Igc29tZSBvdGhlcgorY29tYmluYXRpb24gb2YgdGhlIHRocmVlLCBtZXJnZSB0aG9zZSB0d28gYWx0ZXJuYXRpdmVzIHRvIHN1aXQgdGhlCitzaXR1YXRpb24uCis8L1A+PFA+CisKK0lmIHlvdXIgZG9jdW1lbnQgY29udGFpbnMgbm9udHJpdmlhbCBleGFtcGxlcyBvZiBwcm9ncmFtIGNvZGUsIHdlCityZWNvbW1lbmQgcmVsZWFzaW5nIHRoZXNlIGV4YW1wbGVzIGluIHBhcmFsbGVsIHVuZGVyIHlvdXIgY2hvaWNlIG9mCitmcmVlIHNvZnR3YXJlIGxpY2Vuc2UsIHN1Y2ggYXMgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAordG8gcGVybWl0IHRoZWlyIHVzZSBpbiBmcmVlIHNvZnR3YXJlLgorPC9QPjxQPgorCis8QSBOQU1FPSJDb25jZXB0IEluZGV4Ij48L0E+Cis8SFIgU0laRT0iNiI+Cis8QSBOQU1FPSJTRUM1MiI+PC9BPgorPFRBQkxFIENFTExQQURESU5HPTEgQ0VMTFNQQUNJTkc9MSBCT1JERVI9MD4KKzxUUj48VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MSI+ICZsdDsgPC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNTMiPiAmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WyAmbHQ7Jmx0OyBdPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Ub3AiPiBVcCA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bICZndDsmZ3Q7IF08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDkiPkluZGV4PC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNTIiPkluZGV4PC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+CiA8L1RSPjwvVEFCTEU+CiA8SDE+IENvbmNlcHQgSW5kZXggPC9IMT4KLTwhLS1kb2NpZDo6U0VDNDk6Oi0tPgotPHRhYmxlPjx0cj48dGggdmFsaWduPXRvcD5KdW1wIHRvOiAmbmJzcDsgPC90aD48dGQ+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNjcF9DIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOm5vbmUiPjxiPkM8L2I+PC9BPgorPCEtLWRvY2lkOjpTRUM1Mjo6LS0+Cis8dGFibGU+PHRyPjx0aCB2YWxpZ249dG9wPkp1bXAgdG86ICZuYnNwOyA8L3RoPjx0ZD48QSBIUkVGPSJyZWFkbGluZS5odG1sI2NwX0EiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZSI+PGI+QTwvYj48L0E+CisgJm5ic3A7IAorPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNjcF9DIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOm5vbmUiPjxiPkM8L2I+PC9BPgogICZuYnNwOyAKIDxBIEhSRUY9InJlYWRsaW5lLmh0bWwjY3BfRSIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lIj48Yj5FPC9iPjwvQT4KICAmbmJzcDsgCis8QSBIUkVGPSJyZWFkbGluZS5odG1sI2NwX0YiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZSI+PGI+RjwvYj48L0E+CisgJm5ic3A7IAogPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNjcF9JIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOm5vbmUiPjxiPkk8L2I+PC9BPgogICZuYnNwOyAKIDxBIEhSRUY9InJlYWRsaW5lLmh0bWwjY3BfSyIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lIj48Yj5LPC9iPjwvQT4KQEAgLTUwNTksMTIgKzU4MjQsMTggQEAKIDxUQUJMRSBib3JkZXI9MD4KIDxUUj48VEQ+PC9URD48VEggQUxJR049TEVGVD5JbmRleCBFbnRyeTwvVEg+PFRIIEFMSUdOPUxFRlQ+IFNlY3Rpb248L1RIPjwvVFI+CiA8VFI+PFREIENPTFNQQU49Mz4gPEhSPjwvVEQ+PC9UUj4KKzxUUj48VEg+PEEgTkFNRT0iY3BfQSI+PC9BPkE8L1RIPjxURD48L1REPjxURD48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NCI+YXBwbGljYXRpb24tc3BlY2lmaWMgY29tcGxldGlvbiBmdW5jdGlvbnM8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ0Ij4yLjYgQ3VzdG9tIENvbXBsZXRlcnM8L0E+PC9URD48L1RSPgorPFRSPjxURCBDT0xTUEFOPTM+IDxIUj48L1REPjwvVFI+CiA8VFI+PFRIPjxBIE5BTUU9ImNwX0MiPjwvQT5DPC9USD48VEQ+PC9URD48VEQ+PC9URD48L1RSPgogPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNCI+Y29tbWFuZCBlZGl0aW5nPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0Ij4xLjIuMSBSZWFkbGluZSBCYXJlIEVzc2VudGlhbHM8L0E+PC9URD48L1RSPgogPFRSPjxURCBDT0xTUEFOPTM+IDxIUj48L1REPjwvVFI+CiA8VFI+PFRIPjxBIE5BTUU9ImNwX0UiPjwvQT5FPC9USD48VEQ+PC9URD48VEQ+PC9URD48L1RSPgogPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNCI+ZWRpdGluZyBjb21tYW5kIGxpbmVzPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0Ij4xLjIuMSBSZWFkbGluZSBCYXJlIEVzc2VudGlhbHM8L0E+PC9URD48L1RSPgogPFRSPjxURCBDT0xTUEFOPTM+IDxIUj48L1REPjwvVFI+Cis8VFI+PFRIPjxBIE5BTUU9ImNwX0YiPjwvQT5GPC9USD48VEQ+PC9URD48VEQ+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzUzIj5GREwsIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZTwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNTAiPkEuMSBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2U8L0E+PC9URD48L1RSPgorPFRSPjxURCBDT0xTUEFOPTM+IDxIUj48L1REPjwvVFI+CiA8VFI+PFRIPjxBIE5BTUU9ImNwX0kiPjwvQT5JPC9USD48VEQ+PC9URD48VEQ+PC9URD48L1RSPgogPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDOSI+aW5pdGlhbGl6YXRpb24gZmlsZSwgcmVhZGxpbmU8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzkiPjEuMyBSZWFkbGluZSBJbml0IEZpbGU8L0E+PC9URD48L1RSPgogPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMyI+aW50ZXJhY3Rpb24sIHJlYWRsaW5lPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzIj4xLjIgUmVhZGxpbmUgSW50ZXJhY3Rpb248L0E+PC9URD48L1RSPgpAQCAtNTA3Nyw3ICs1ODQ4LDcgQEAKIDxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQiPm5vdGF0aW9uLCByZWFkbGluZTwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNCI+MS4yLjEgUmVhZGxpbmUgQmFyZSBFc3NlbnRpYWxzPC9BPjwvVEQ+PC9UUj4KIDxUUj48VEQgQ09MU1BBTj0zPiA8SFI+PC9URD48L1RSPgogPFRSPjxUSD48QSBOQU1FPSJjcF9SIj48L0E+UjwvVEg+PFREPjwvVEQ+PFREPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE3NSI+cmVhZGxpbmUsIGZ1bmN0aW9uPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyNCI+Mi4xIEJhc2ljIEJlaGF2aW9yPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE3OSI+cmVhZGxpbmUsIGZ1bmN0aW9uPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyNCI+Mi4xIEJhc2ljIEJlaGF2aW9yPC9BPjwvVEQ+PC9UUj4KIDxUUj48VEQgQ09MU1BBTj0zPiA8SFI+PC9URD48L1RSPgogPFRSPjxUSD48QSBOQU1FPSJjcF9WIj48L0E+VjwvVEg+PFREPjwvVEQ+PFREPjwvVEQ+PC9UUj4KIDxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDQiPnZhcmlhYmxlcywgcmVhZGxpbmU8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzEwIj4xLjMuMSBSZWFkbGluZSBJbml0IEZpbGUgU3ludGF4PC9BPjwvVEQ+PC9UUj4KQEAgLTUwODUsMTAgKzU4NTYsMTQgQEAKIDxUUj48VEg+PEEgTkFNRT0iY3BfWSI+PC9BPlk8L1RIPjxURD48L1REPjxURD48L1REPjwvVFI+CiA8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyIj55YW5raW5nIHRleHQ8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzYiPjEuMi4zIFJlYWRsaW5lIEtpbGxpbmcgQ29tbWFuZHM8L0E+PC9URD48L1RSPgogPFRSPjxURCBDT0xTUEFOPTM+IDxIUj48L1REPjwvVFI+Ci08L1RBQkxFPjxQPjwvUD48dGFibGU+PHRyPjx0aCB2YWxpZ249dG9wPkp1bXAgdG86ICZuYnNwOyA8L3RoPjx0ZD48QSBIUkVGPSJyZWFkbGluZS5odG1sI2NwX0MiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZSI+PGI+QzwvYj48L0E+Cis8L1RBQkxFPjxQPjwvUD48dGFibGU+PHRyPjx0aCB2YWxpZ249dG9wPkp1bXAgdG86ICZuYnNwOyA8L3RoPjx0ZD48QSBIUkVGPSJyZWFkbGluZS5odG1sI2NwX0EiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZSI+PGI+QTwvYj48L0E+CisgJm5ic3A7IAorPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNjcF9DIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOm5vbmUiPjxiPkM8L2I+PC9BPgogICZuYnNwOyAKIDxBIEhSRUY9InJlYWRsaW5lLmh0bWwjY3BfRSIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lIj48Yj5FPC9iPjwvQT4KICAmbmJzcDsgCis8QSBIUkVGPSJyZWFkbGluZS5odG1sI2NwX0YiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZSI+PGI+RjwvYj48L0E+CisgJm5ic3A7IAogPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNjcF9JIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOm5vbmUiPjxiPkk8L2I+PC9BPgogICZuYnNwOyAKIDxBIEhSRUY9InJlYWRsaW5lLmh0bWwjY3BfSyIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lIj48Yj5LPC9iPjwvQT4KQEAgLTUxMDUsMjAgKzU4ODAsMjAgQEAKIAogPEEgTkFNRT0iRnVuY3Rpb24gYW5kIFZhcmlhYmxlIEluZGV4Ij48L0E+CiA8SFIgU0laRT0iNiI+Ci08QSBOQU1FPSJTRUM1MCI+PC9BPgorPEEgTkFNRT0iU0VDNTMiPjwvQT4KIDxUQUJMRSBDRUxMUEFERElORz0xIENFTExTUEFDSU5HPTEgQk9SREVSPTA+Ci08VFI+PFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDkiPiAmbHQ7IDwvQT5dPC9URD4KKzxUUj48VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+ICZsdDsgPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WyAmZ3Q7IF08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bICZsdDsmbHQ7IF08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX1RvcCI+IFVwIDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPlsgJmd0OyZndDsgXTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19Db250ZW50cyI+Q29udGVudHM8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+SW5kZXg8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+SW5kZXg8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUNfQWJvdXQiPiA/IDwvQT5dPC9URD4KIDwvVFI+PC9UQUJMRT4KIDxIMT4gRnVuY3Rpb24gYW5kIFZhcmlhYmxlIEluZGV4IDwvSDE+Ci08IS0tZG9jaWQ6OlNFQzUwOjotLT4KKzwhLS1kb2NpZDo6U0VDNTM6Oi0tPgogPHRhYmxlPjx0cj48dGggdmFsaWduPXRvcD5KdW1wIHRvOiAmbmJzcDsgPC90aD48dGQ+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNmbl9fIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOm5vbmUiPjxiPl88L2I+PC9BPgogICZuYnNwOyAKIDxCUj4KQEAgLTUxNjcsMzc1ICs1OTQyLDM5MyBAQAogPFRSPjxURD48L1REPjxUSCBBTElHTj1MRUZUPkluZGV4IEVudHJ5PC9USD48VEggQUxJR049TEVGVD4gU2VjdGlvbjwvVEg+PC9UUj4KIDxUUj48VEQgQ09MU1BBTj0zPiA8SFI+PC9URD48L1RSPgogPFRSPjxUSD48QSBOQU1FPSJmbl9fIj48L0E+XzwvVEg+PFREPjwvVEQ+PFREPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI3OCI+PENPREU+X3JsX2RpZ2l0X3A8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzOSI+Mi40LjEwIFV0aWxpdHkgRnVuY3Rpb25zPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI4MSI+PENPREU+X3JsX2RpZ2l0X3ZhbHVlPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzkiPjIuNC4xMCBVdGlsaXR5IEZ1bmN0aW9uczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNzciPjxDT0RFPl9ybF9sb3dlcmNhc2VfcDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM5Ij4yLjQuMTAgVXRpbGl0eSBGdW5jdGlvbnM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjgwIj48Q09ERT5fcmxfdG9fbG93ZXI8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzOSI+Mi40LjEwIFV0aWxpdHkgRnVuY3Rpb25zPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI3OSI+PENPREU+X3JsX3RvX3VwcGVyPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzkiPjIuNC4xMCBVdGlsaXR5IEZ1bmN0aW9uczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNzYiPjxDT0RFPl9ybF91cHBlcmNhc2VfcDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM5Ij4yLjQuMTAgVXRpbGl0eSBGdW5jdGlvbnM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjkwIj48Q09ERT5fcmxfZGlnaXRfcDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM5Ij4yLjQuMTAgVXRpbGl0eSBGdW5jdGlvbnM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjkzIj48Q09ERT5fcmxfZGlnaXRfdmFsdWU8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzOSI+Mi40LjEwIFV0aWxpdHkgRnVuY3Rpb25zPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI4OSI+PENPREU+X3JsX2xvd2VyY2FzZV9wPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzkiPjIuNC4xMCBVdGlsaXR5IEZ1bmN0aW9uczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyOTIiPjxDT0RFPl9ybF90b19sb3dlcjwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM5Ij4yLjQuMTAgVXRpbGl0eSBGdW5jdGlvbnM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjkxIj48Q09ERT5fcmxfdG9fdXBwZXI8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzOSI+Mi40LjEwIFV0aWxpdHkgRnVuY3Rpb25zPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI4OCI+PENPREU+X3JsX3VwcGVyY2FzZV9wPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzkiPjIuNC4xMCBVdGlsaXR5IEZ1bmN0aW9uczwvQT48L1REPjwvVFI+CiA8VFI+PFREIENPTFNQQU49Mz4gPEhSPjwvVEQ+PC9UUj4KIDxUUj48VEg+PEEgTkFNRT0iZm5fQSI+PC9BPkE8L1RIPjxURD48L1REPjxURD48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNDIiPjxDT0RFPmFib3J0IChDLWcpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjEiPjEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNDMiPjxDT0RFPmFib3J0IChDLWcpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjEiPjEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg0MiI+PENPREU+YWNjZXB0LWxpbmUgKE5ld2xpbmUgb3IgUmV0dXJuKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE1Ij4xLjQuMiBDb21tYW5kcyBGb3IgTWFuaXB1bGF0aW5nIFRoZSBIaXN0b3J5PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDQzIj48Q09ERT5hY2NlcHQtbGluZSAoTmV3bGluZSBvciBSZXR1cm4pPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTUiPjEuNC4yIENvbW1hbmRzIEZvciBNYW5pcHVsYXRpbmcgVGhlIEhpc3Rvcnk8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTQ2Ij48Q09ERT5hYm9ydCAoQy1nKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzIxIj4xLjQuOCBTb21lIE1pc2NlbGxhbmVvdXMgQ29tbWFuZHM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTQ3Ij48Q09ERT5hYm9ydCAoQy1nKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzIxIj4xLjQuOCBTb21lIE1pc2NlbGxhbmVvdXMgQ29tbWFuZHM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYNDQiPjxDT0RFPmFjY2VwdC1saW5lIChOZXdsaW5lIG9yIFJldHVybik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNSI+MS40LjIgQ29tbWFuZHMgRm9yIE1hbmlwdWxhdGluZyBUaGUgSGlzdG9yeTwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg0NSI+PENPREU+YWNjZXB0LWxpbmUgKE5ld2xpbmUgb3IgUmV0dXJuKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE1Ij4xLjQuMiBDb21tYW5kcyBGb3IgTWFuaXB1bGF0aW5nIFRoZSBIaXN0b3J5PC9BPjwvVEQ+PC9UUj4KIDxUUj48VEQgQ09MU1BBTj0zPiA8SFI+PC9URD48L1RSPgogPFRSPjxUSD48QSBOQU1FPSJmbl9CIj48L0E+QjwvVEg+PFREPjwvVEQ+PFREPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMyIj48Q09ERT5iYWNrd2FyZC1jaGFyIChDLWIpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTQiPjEuNC4xIENvbW1hbmRzIEZvciBNb3Zpbmc8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzMiPjxDT0RFPmJhY2t3YXJkLWNoYXIgKEMtYik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNCI+MS40LjEgQ29tbWFuZHMgRm9yIE1vdmluZzwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg3MCI+PENPREU+YmFja3dhcmQtZGVsZXRlLWNoYXIgKFJ1Ym91dCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNiI+MS40LjMgQ29tbWFuZHMgRm9yIENoYW5naW5nIFRleHQ8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYNzEiPjxDT0RFPmJhY2t3YXJkLWRlbGV0ZS1jaGFyIChSdWJvdXQpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTYiPjEuNC4zIENvbW1hbmRzIEZvciBDaGFuZ2luZyBUZXh0PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDk0Ij48Q09ERT5iYWNrd2FyZC1raWxsLWxpbmUgKEMteCBSdWJvdXQpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTciPjEuNC40IEtpbGxpbmcgQW5kIFlhbmtpbmc8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYOTUiPjxDT0RFPmJhY2t3YXJkLWtpbGwtbGluZSAoQy14IFJ1Ym91dCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNyI+MS40LjQgS2lsbGluZyBBbmQgWWFua2luZzwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMDIiPjxDT0RFPmJhY2t3YXJkLWtpbGwtd29yZCAoTS08S0JEPkRFTDwvS0JEPik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNyI+MS40LjQgS2lsbGluZyBBbmQgWWFua2luZzwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMDMiPjxDT0RFPmJhY2t3YXJkLWtpbGwtd29yZCAoTS08S0JEPkRFTDwvS0JEPik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNyI+MS40LjQgS2lsbGluZyBBbmQgWWFua2luZzwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzNiI+PENPREU+YmFja3dhcmQtd29yZCAoTS1iKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE0Ij4xLjQuMSBDb21tYW5kcyBGb3IgTW92aW5nPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDM3Ij48Q09ERT5iYWNrd2FyZC13b3JkIChNLWIpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTQiPjEuNC4xIENvbW1hbmRzIEZvciBNb3Zpbmc8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYNDgiPjxDT0RFPmJlZ2lubmluZy1vZi1oaXN0b3J5IChNLSYjMzg7IzYwOyk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNSI+MS40LjIgQ29tbWFuZHMgRm9yIE1hbmlwdWxhdGluZyBUaGUgSGlzdG9yeTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg0OSI+PENPREU+YmVnaW5uaW5nLW9mLWhpc3RvcnkgKE0tJiMzODsjNjA7KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE1Ij4xLjQuMiBDb21tYW5kcyBGb3IgTWFuaXB1bGF0aW5nIFRoZSBIaXN0b3J5PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI2Ij48Q09ERT5iZWdpbm5pbmctb2YtbGluZSAoQy1hKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE0Ij4xLjQuMSBDb21tYW5kcyBGb3IgTW92aW5nPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI3Ij48Q09ERT5iZWdpbm5pbmctb2YtbGluZSAoQy1hKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE0Ij4xLjQuMSBDb21tYW5kcyBGb3IgTW92aW5nPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDM0Ij48Q09ERT5iYWNrd2FyZC1jaGFyIChDLWIpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTQiPjEuNC4xIENvbW1hbmRzIEZvciBNb3Zpbmc8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzUiPjxDT0RFPmJhY2t3YXJkLWNoYXIgKEMtYik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNCI+MS40LjEgQ29tbWFuZHMgRm9yIE1vdmluZzwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg3MiI+PENPREU+YmFja3dhcmQtZGVsZXRlLWNoYXIgKFJ1Ym91dCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNiI+MS40LjMgQ29tbWFuZHMgRm9yIENoYW5naW5nIFRleHQ8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYNzMiPjxDT0RFPmJhY2t3YXJkLWRlbGV0ZS1jaGFyIChSdWJvdXQpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTYiPjEuNC4zIENvbW1hbmRzIEZvciBDaGFuZ2luZyBUZXh0PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDk2Ij48Q09ERT5iYWNrd2FyZC1raWxsLWxpbmUgKEMteCBSdWJvdXQpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTciPjEuNC40IEtpbGxpbmcgQW5kIFlhbmtpbmc8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYOTciPjxDT0RFPmJhY2t3YXJkLWtpbGwtbGluZSAoQy14IFJ1Ym91dCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNyI+MS40LjQgS2lsbGluZyBBbmQgWWFua2luZzwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMDQiPjxDT0RFPmJhY2t3YXJkLWtpbGwtd29yZCAoTS08S0JEPkRFTDwvS0JEPik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNyI+MS40LjQgS2lsbGluZyBBbmQgWWFua2luZzwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMDUiPjxDT0RFPmJhY2t3YXJkLWtpbGwtd29yZCAoTS08S0JEPkRFTDwvS0JEPik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNyI+MS40LjQgS2lsbGluZyBBbmQgWWFua2luZzwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzOCI+PENPREU+YmFja3dhcmQtd29yZCAoTS1iKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE0Ij4xLjQuMSBDb21tYW5kcyBGb3IgTW92aW5nPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDM5Ij48Q09ERT5iYWNrd2FyZC13b3JkIChNLWIpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTQiPjEuNC4xIENvbW1hbmRzIEZvciBNb3Zpbmc8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYNTAiPjxDT0RFPmJlZ2lubmluZy1vZi1oaXN0b3J5IChNLSYjMzg7IzYwOyk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNSI+MS40LjIgQ29tbWFuZHMgRm9yIE1hbmlwdWxhdGluZyBUaGUgSGlzdG9yeTwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg1MSI+PENPREU+YmVnaW5uaW5nLW9mLWhpc3RvcnkgKE0tJiMzODsjNjA7KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE1Ij4xLjQuMiBDb21tYW5kcyBGb3IgTWFuaXB1bGF0aW5nIFRoZSBIaXN0b3J5PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI4Ij48Q09ERT5iZWdpbm5pbmctb2YtbGluZSAoQy1hKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE0Ij4xLjQuMSBDb21tYW5kcyBGb3IgTW92aW5nPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI5Ij48Q09ERT5iZWdpbm5pbmctb2YtbGluZSAoQy1hKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE0Ij4xLjQuMSBDb21tYW5kcyBGb3IgTW92aW5nPC9BPjwvVEQ+PC9UUj4KIDxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDUiPmJlbGwtc3R5bGU8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzEwIj4xLjMuMSBSZWFkbGluZSBJbml0IEZpbGUgU3ludGF4PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDYiPmJpbmQtdHR5LXNwZWNpYWwtY2hhcnM8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzEwIj4xLjMuMSBSZWFkbGluZSBJbml0IEZpbGUgU3ludGF4PC9BPjwvVEQ+PC9UUj4KIDxUUj48VEQgQ09MU1BBTj0zPiA8SFI+PC9URD48L1RSPgogPFRSPjxUSD48QSBOQU1FPSJmbl9DIj48L0E+QzwvVEg+PFREPjwvVEQ+PFREPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEzOCI+PENPREU+Y2FsbC1sYXN0LWtiZC1tYWNybyAoQy14IGUpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjAiPjEuNC43IEtleWJvYXJkIE1hY3JvczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMzkiPjxDT0RFPmNhbGwtbGFzdC1rYmQtbWFjcm8gKEMteCBlKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzIwIj4xLjQuNyBLZXlib2FyZCBNYWNyb3M8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYODgiPjxDT0RFPmNhcGl0YWxpemUtd29yZCAoTS1jKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE2Ij4xLjQuMyBDb21tYW5kcyBGb3IgQ2hhbmdpbmcgVGV4dDwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg4OSI+PENPREU+Y2FwaXRhbGl6ZS13b3JkIChNLWMpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTYiPjEuNC4zIENvbW1hbmRzIEZvciBDaGFuZ2luZyBUZXh0PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE1OCI+PENPREU+Y2hhcmFjdGVyLXNlYXJjaCAoQy1dKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzIxIj4xLjQuOCBTb21lIE1pc2NlbGxhbmVvdXMgQ29tbWFuZHM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTU5Ij48Q09ERT5jaGFyYWN0ZXItc2VhcmNoIChDLV0pPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjEiPjEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNjAiPjxDT0RFPmNoYXJhY3Rlci1zZWFyY2gtYmFja3dhcmQgKE0tQy1dKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzIxIj4xLjQuOCBTb21lIE1pc2NlbGxhbmVvdXMgQ29tbWFuZHM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTYxIj48Q09ERT5jaGFyYWN0ZXItc2VhcmNoLWJhY2t3YXJkIChNLUMtXSk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDM4Ij48Q09ERT5jbGVhci1zY3JlZW4gKEMtbCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNCI+MS40LjEgQ29tbWFuZHMgRm9yIE1vdmluZzwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzOSI+PENPREU+Y2xlYXItc2NyZWVuIChDLWwpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTQiPjEuNC4xIENvbW1hbmRzIEZvciBNb3Zpbmc8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYNiI+Y29tbWVudC1iZWdpbjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTAiPjEuMy4xIFJlYWRsaW5lIEluaXQgRmlsZSBTeW50YXg8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTI0Ij48Q09ERT5jb21wbGV0ZSAoPEtCRD5UQUI8L0tCRD4pPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTkiPjEuNC42IExldHRpbmcgUmVhZGxpbmUgVHlwZSBGb3IgWW91PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEyNSI+PENPREU+Y29tcGxldGUgKDxLQkQ+VEFCPC9LQkQ+KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE5Ij4xLjQuNiBMZXR0aW5nIFJlYWRsaW5lIFR5cGUgRm9yIFlvdTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg3Ij5jb21wbGV0aW9uLXF1ZXJ5LWl0ZW1zPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxMCI+MS4zLjEgUmVhZGxpbmUgSW5pdCBGaWxlIFN5bnRheDwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg4Ij5jb252ZXJ0LW1ldGE8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzEwIj4xLjMuMSBSZWFkbGluZSBJbml0IEZpbGUgU3ludGF4PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDExMiI+PENPREU+Y29weS1iYWNrd2FyZC13b3JkICgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTciPjEuNC40IEtpbGxpbmcgQW5kIFlhbmtpbmc8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTEzIj48Q09ERT5jb3B5LWJhY2t3YXJkLXdvcmQgKCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNyI+MS40LjQgS2lsbGluZyBBbmQgWWFua2luZzwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMTQiPjxDT0RFPmNvcHktZm9yd2FyZC13b3JkICgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTciPjEuNC40IEtpbGxpbmcgQW5kIFlhbmtpbmc8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTE1Ij48Q09ERT5jb3B5LWZvcndhcmQtd29yZCAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE3Ij4xLjQuNCBLaWxsaW5nIEFuZCBZYW5raW5nPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDExMCI+PENPREU+Y29weS1yZWdpb24tYXMta2lsbCAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE3Ij4xLjQuNCBLaWxsaW5nIEFuZCBZYW5raW5nPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDExMSI+PENPREU+Y29weS1yZWdpb24tYXMta2lsbCAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE3Ij4xLjQuNCBLaWxsaW5nIEFuZCBZYW5raW5nPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE0MiI+PENPREU+Y2FsbC1sYXN0LWtiZC1tYWNybyAoQy14IGUpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjAiPjEuNC43IEtleWJvYXJkIE1hY3JvczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNDMiPjxDT0RFPmNhbGwtbGFzdC1rYmQtbWFjcm8gKEMteCBlKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzIwIj4xLjQuNyBLZXlib2FyZCBNYWNyb3M8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYOTAiPjxDT0RFPmNhcGl0YWxpemUtd29yZCAoTS1jKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE2Ij4xLjQuMyBDb21tYW5kcyBGb3IgQ2hhbmdpbmcgVGV4dDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg5MSI+PENPREU+Y2FwaXRhbGl6ZS13b3JkIChNLWMpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTYiPjEuNC4zIENvbW1hbmRzIEZvciBDaGFuZ2luZyBUZXh0PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE2MiI+PENPREU+Y2hhcmFjdGVyLXNlYXJjaCAoQy1dKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzIxIj4xLjQuOCBTb21lIE1pc2NlbGxhbmVvdXMgQ29tbWFuZHM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTYzIj48Q09ERT5jaGFyYWN0ZXItc2VhcmNoIChDLV0pPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjEiPjEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNjQiPjxDT0RFPmNoYXJhY3Rlci1zZWFyY2gtYmFja3dhcmQgKE0tQy1dKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzIxIj4xLjQuOCBTb21lIE1pc2NlbGxhbmVvdXMgQ29tbWFuZHM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTY1Ij48Q09ERT5jaGFyYWN0ZXItc2VhcmNoLWJhY2t3YXJkIChNLUMtXSk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDQwIj48Q09ERT5jbGVhci1zY3JlZW4gKEMtbCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNCI+MS40LjEgQ29tbWFuZHMgRm9yIE1vdmluZzwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg0MSI+PENPREU+Y2xlYXItc2NyZWVuIChDLWwpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTQiPjEuNC4xIENvbW1hbmRzIEZvciBNb3Zpbmc8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYNyI+Y29tbWVudC1iZWdpbjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTAiPjEuMy4xIFJlYWRsaW5lIEluaXQgRmlsZSBTeW50YXg8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTI4Ij48Q09ERT5jb21wbGV0ZSAoPEtCRD5UQUI8L0tCRD4pPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTkiPjEuNC42IExldHRpbmcgUmVhZGxpbmUgVHlwZSBGb3IgWW91PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEyOSI+PENPREU+Y29tcGxldGUgKDxLQkQ+VEFCPC9LQkQ+KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE5Ij4xLjQuNiBMZXR0aW5nIFJlYWRsaW5lIFR5cGUgRm9yIFlvdTwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg4Ij5jb21wbGV0aW9uLXF1ZXJ5LWl0ZW1zPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxMCI+MS4zLjEgUmVhZGxpbmUgSW5pdCBGaWxlIFN5bnRheDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg5Ij5jb252ZXJ0LW1ldGE8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzEwIj4xLjMuMSBSZWFkbGluZSBJbml0IEZpbGUgU3ludGF4PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDExNiI+PENPREU+Y29weS1iYWNrd2FyZC13b3JkICgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTciPjEuNC40IEtpbGxpbmcgQW5kIFlhbmtpbmc8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTE3Ij48Q09ERT5jb3B5LWJhY2t3YXJkLXdvcmQgKCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNyI+MS40LjQgS2lsbGluZyBBbmQgWWFua2luZzwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMTgiPjxDT0RFPmNvcHktZm9yd2FyZC13b3JkICgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTciPjEuNC40IEtpbGxpbmcgQW5kIFlhbmtpbmc8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTE5Ij48Q09ERT5jb3B5LWZvcndhcmQtd29yZCAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE3Ij4xLjQuNCBLaWxsaW5nIEFuZCBZYW5raW5nPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDExNCI+PENPREU+Y29weS1yZWdpb24tYXMta2lsbCAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE3Ij4xLjQuNCBLaWxsaW5nIEFuZCBZYW5raW5nPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDExNSI+PENPREU+Y29weS1yZWdpb24tYXMta2lsbCAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE3Ij4xLjQuNCBLaWxsaW5nIEFuZCBZYW5raW5nPC9BPjwvVEQ+PC9UUj4KIDxUUj48VEQgQ09MU1BBTj0zPiA8SFI+PC9URD48L1RSPgogPFRSPjxUSD48QSBOQU1FPSJmbl9EIj48L0E+RDwvVEg+PFREPjwvVEQ+PFREPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDY4Ij48Q09ERT5kZWxldGUtY2hhciAoQy1kKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE2Ij4xLjQuMyBDb21tYW5kcyBGb3IgQ2hhbmdpbmcgVGV4dDwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg2OSI+PENPREU+ZGVsZXRlLWNoYXIgKEMtZCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNiI+MS40LjMgQ29tbWFuZHMgRm9yIENoYW5naW5nIFRleHQ8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTMyIj48Q09ERT5kZWxldGUtY2hhci1vci1saXN0ICgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTkiPjEuNC42IExldHRpbmcgUmVhZGxpbmUgVHlwZSBGb3IgWW91PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEzMyI+PENPREU+ZGVsZXRlLWNoYXItb3ItbGlzdCAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE5Ij4xLjQuNiBMZXR0aW5nIFJlYWRsaW5lIFR5cGUgRm9yIFlvdTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMDYiPjxDT0RFPmRlbGV0ZS1ob3Jpem9udGFsLXNwYWNlICgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTciPjEuNC40IEtpbGxpbmcgQW5kIFlhbmtpbmc8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTA3Ij48Q09ERT5kZWxldGUtaG9yaXpvbnRhbC1zcGFjZSAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE3Ij4xLjQuNCBLaWxsaW5nIEFuZCBZYW5raW5nPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEyMCI+PENPREU+ZGlnaXQtYXJndW1lbnQgKDxLQkQ+TS0wPC9LQkQ+LCA8S0JEPk0tMTwvS0JEPiwgJiM2MDtzbWFsbCYjNjI7Li4uJiM2MDsvc21hbGwmIzYyOyA8S0JEPk0tLTwvS0JEPik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxOCI+MS40LjUgU3BlY2lmeWluZyBOdW1lcmljIEFyZ3VtZW50czwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMjEiPjxDT0RFPmRpZ2l0LWFyZ3VtZW50ICg8S0JEPk0tMDwvS0JEPiwgPEtCRD5NLTE8L0tCRD4sICYjNjA7c21hbGwmIzYyOy4uLiYjNjA7L3NtYWxsJiM2MjsgPEtCRD5NLS08L0tCRD4pPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTgiPjEuNC41IFNwZWNpZnlpbmcgTnVtZXJpYyBBcmd1bWVudHM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYOSI+ZGlzYWJsZS1jb21wbGV0aW9uPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxMCI+MS4zLjEgUmVhZGxpbmUgSW5pdCBGaWxlIFN5bnRheDwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNDQiPjxDT0RFPmRvLXVwcGVyY2FzZS12ZXJzaW9uIChNLWEsIE0tYiwgTS08VkFSPng8L1ZBUj4sICYjNjA7c21hbGwmIzYyOy4uLiYjNjA7L3NtYWxsJiM2MjspPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjEiPjEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNDUiPjxDT0RFPmRvLXVwcGVyY2FzZS12ZXJzaW9uIChNLWEsIE0tYiwgTS08VkFSPng8L1ZBUj4sICYjNjA7c21hbGwmIzYyOy4uLiYjNjA7L3NtYWxsJiM2MjspPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjEiPjEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg4NiI+PENPREU+ZG93bmNhc2Utd29yZCAoTS1sKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE2Ij4xLjQuMyBDb21tYW5kcyBGb3IgQ2hhbmdpbmcgVGV4dDwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg4NyI+PENPREU+ZG93bmNhc2Utd29yZCAoTS1sKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE2Ij4xLjQuMyBDb21tYW5kcyBGb3IgQ2hhbmdpbmcgVGV4dDwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNjQiPjxDT0RFPmR1bXAtZnVuY3Rpb25zICgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjEiPjEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNjUiPjxDT0RFPmR1bXAtZnVuY3Rpb25zICgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjEiPjEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNjgiPjxDT0RFPmR1bXAtbWFjcm9zICgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjEiPjEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNjkiPjxDT0RFPmR1bXAtbWFjcm9zICgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjEiPjEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNjYiPjxDT0RFPmR1bXAtdmFyaWFibGVzICgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjEiPjEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNjciPjxDT0RFPmR1bXAtdmFyaWFibGVzICgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjEiPjEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg3MCI+PENPREU+ZGVsZXRlLWNoYXIgKEMtZCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNiI+MS40LjMgQ29tbWFuZHMgRm9yIENoYW5naW5nIFRleHQ8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYNzEiPjxDT0RFPmRlbGV0ZS1jaGFyIChDLWQpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTYiPjEuNC4zIENvbW1hbmRzIEZvciBDaGFuZ2luZyBUZXh0PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEzNiI+PENPREU+ZGVsZXRlLWNoYXItb3ItbGlzdCAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE5Ij4xLjQuNiBMZXR0aW5nIFJlYWRsaW5lIFR5cGUgRm9yIFlvdTwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMzciPjxDT0RFPmRlbGV0ZS1jaGFyLW9yLWxpc3QgKCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxOSI+MS40LjYgTGV0dGluZyBSZWFkbGluZSBUeXBlIEZvciBZb3U8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTEwIj48Q09ERT5kZWxldGUtaG9yaXpvbnRhbC1zcGFjZSAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE3Ij4xLjQuNCBLaWxsaW5nIEFuZCBZYW5raW5nPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDExMSI+PENPREU+ZGVsZXRlLWhvcml6b250YWwtc3BhY2UgKCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNyI+MS40LjQgS2lsbGluZyBBbmQgWWFua2luZzwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMjQiPjxDT0RFPmRpZ2l0LWFyZ3VtZW50ICg8S0JEPk0tMDwvS0JEPiwgPEtCRD5NLTE8L0tCRD4sICYjNjA7c21hbGwmIzYyOy4uLiYjNjA7L3NtYWxsJiM2MjsgPEtCRD5NLS08L0tCRD4pPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTgiPjEuNC41IFNwZWNpZnlpbmcgTnVtZXJpYyBBcmd1bWVudHM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTI1Ij48Q09ERT5kaWdpdC1hcmd1bWVudCAoPEtCRD5NLTA8L0tCRD4sIDxLQkQ+TS0xPC9LQkQ+LCAmIzYwO3NtYWxsJiM2MjsuLi4mIzYwOy9zbWFsbCYjNjI7IDxLQkQ+TS0tPC9LQkQ+KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE4Ij4xLjQuNSBTcGVjaWZ5aW5nIE51bWVyaWMgQXJndW1lbnRzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEwIj5kaXNhYmxlLWNvbXBsZXRpb248L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzEwIj4xLjMuMSBSZWFkbGluZSBJbml0IEZpbGUgU3ludGF4PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE0OCI+PENPREU+ZG8tdXBwZXJjYXNlLXZlcnNpb24gKE0tYSwgTS1iLCBNLTxWQVI+eDwvVkFSPiwgJiM2MDtzbWFsbCYjNjI7Li4uJiM2MDsvc21hbGwmIzYyOyk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE0OSI+PENPREU+ZG8tdXBwZXJjYXNlLXZlcnNpb24gKE0tYSwgTS1iLCBNLTxWQVI+eDwvVkFSPiwgJiM2MDtzbWFsbCYjNjI7Li4uJiM2MDsvc21hbGwmIzYyOyk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDg4Ij48Q09ERT5kb3duY2FzZS13b3JkIChNLWwpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTYiPjEuNC4zIENvbW1hbmRzIEZvciBDaGFuZ2luZyBUZXh0PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDg5Ij48Q09ERT5kb3duY2FzZS13b3JkIChNLWwpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTYiPjEuNC4zIENvbW1hbmRzIEZvciBDaGFuZ2luZyBUZXh0PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE2OCI+PENPREU+ZHVtcC1mdW5jdGlvbnMgKCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE2OSI+PENPREU+ZHVtcC1mdW5jdGlvbnMgKCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE3MiI+PENPREU+ZHVtcC1tYWNyb3MgKCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE3MyI+PENPREU+ZHVtcC1tYWNyb3MgKCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE3MCI+PENPREU+ZHVtcC12YXJpYWJsZXMgKCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE3MSI+PENPREU+ZHVtcC12YXJpYWJsZXMgKCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KIDxUUj48VEQgQ09MU1BBTj0zPiA8SFI+PC9URD48L1RSPgogPFRSPjxUSD48QSBOQU1FPSJmbl9FIj48L0E+RTwvVEg+PFREPjwvVEQ+PFREPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEwIj5lZGl0aW5nLW1vZGU8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzEwIj4xLjMuMSBSZWFkbGluZSBJbml0IEZpbGUgU3ludGF4PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE3MCI+PENPREU+ZW1hY3MtZWRpdGluZy1tb2RlIChDLWUpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjEiPjEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNzEiPjxDT0RFPmVtYWNzLWVkaXRpbmctbW9kZSAoQy1lKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzIxIj4xLjQuOCBTb21lIE1pc2NlbGxhbmVvdXMgQ29tbWFuZHM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTEiPmVuYWJsZS1rZXlwYWQ8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzEwIj4xLjMuMSBSZWFkbGluZSBJbml0IEZpbGUgU3ludGF4PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEzNiI+PENPREU+ZW5kLWtiZC1tYWNybyAoQy14ICkpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjAiPjEuNC43IEtleWJvYXJkIE1hY3JvczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMzciPjxDT0RFPmVuZC1rYmQtbWFjcm8gKEMteCApKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzIwIj4xLjQuNyBLZXlib2FyZCBNYWNyb3M8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYNTAiPjxDT0RFPmVuZC1vZi1oaXN0b3J5IChNLSYjMzg7IzYyOyk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNSI+MS40LjIgQ29tbWFuZHMgRm9yIE1hbmlwdWxhdGluZyBUaGUgSGlzdG9yeTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg1MSI+PENPREU+ZW5kLW9mLWhpc3RvcnkgKE0tJiMzODsjNjI7KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE1Ij4xLjQuMiBDb21tYW5kcyBGb3IgTWFuaXB1bGF0aW5nIFRoZSBIaXN0b3J5PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI4Ij48Q09ERT5lbmQtb2YtbGluZSAoQy1lKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE0Ij4xLjQuMSBDb21tYW5kcyBGb3IgTW92aW5nPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI5Ij48Q09ERT5lbmQtb2YtbGluZSAoQy1lKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE0Ij4xLjQuMSBDb21tYW5kcyBGb3IgTW92aW5nPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE1NiI+PENPREU+ZXhjaGFuZ2UtcG9pbnQtYW5kLW1hcmsgKEMteCBDLXgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjEiPjEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNTciPjxDT0RFPmV4Y2hhbmdlLXBvaW50LWFuZC1tYXJrIChDLXggQy14KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzIxIj4xLjQuOCBTb21lIE1pc2NlbGxhbmVvdXMgQ29tbWFuZHM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTIiPmV4cGFuZC10aWxkZTwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTAiPjEuMy4xIFJlYWRsaW5lIEluaXQgRmlsZSBTeW50YXg8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTEiPmVkaXRpbmctbW9kZTwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTAiPjEuMy4xIFJlYWRsaW5lIEluaXQgRmlsZSBTeW50YXg8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTc0Ij48Q09ERT5lbWFjcy1lZGl0aW5nLW1vZGUgKEMtZSk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE3NSI+PENPREU+ZW1hY3MtZWRpdGluZy1tb2RlIChDLWUpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjEiPjEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMiI+ZW5hYmxlLWtleXBhZDwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTAiPjEuMy4xIFJlYWRsaW5lIEluaXQgRmlsZSBTeW50YXg8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTQwIj48Q09ERT5lbmQta2JkLW1hY3JvIChDLXggKSk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMCI+MS40LjcgS2V5Ym9hcmQgTWFjcm9zPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE0MSI+PENPREU+ZW5kLWtiZC1tYWNybyAoQy14ICkpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjAiPjEuNC43IEtleWJvYXJkIE1hY3JvczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg1MiI+PENPREU+ZW5kLW9mLWhpc3RvcnkgKE0tJiMzODsjNjI7KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE1Ij4xLjQuMiBDb21tYW5kcyBGb3IgTWFuaXB1bGF0aW5nIFRoZSBIaXN0b3J5PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDUzIj48Q09ERT5lbmQtb2YtaGlzdG9yeSAoTS0mIzM4OyM2MjspPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTUiPjEuNC4yIENvbW1hbmRzIEZvciBNYW5pcHVsYXRpbmcgVGhlIEhpc3Rvcnk8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzAiPjxDT0RFPmVuZC1vZi1saW5lIChDLWUpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTQiPjEuNC4xIENvbW1hbmRzIEZvciBNb3Zpbmc8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzEiPjxDT0RFPmVuZC1vZi1saW5lIChDLWUpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTQiPjEuNC4xIENvbW1hbmRzIEZvciBNb3Zpbmc8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTYwIj48Q09ERT5leGNoYW5nZS1wb2ludC1hbmQtbWFyayAoQy14IEMteCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE2MSI+PENPREU+ZXhjaGFuZ2UtcG9pbnQtYW5kLW1hcmsgKEMteCBDLXgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjEiPjEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMyI+ZXhwYW5kLXRpbGRlPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxMCI+MS4zLjEgUmVhZGxpbmUgSW5pdCBGaWxlIFN5bnRheDwvQT48L1REPjwvVFI+CiA8VFI+PFREIENPTFNQQU49Mz4gPEhSPjwvVEQ+PC9UUj4KIDxUUj48VEg+PEEgTkFNRT0iZm5fRiI+PC9BPkY8L1RIPjxURD48L1REPjxURD48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg3MiI+PENPREU+Zm9yd2FyZC1iYWNrd2FyZC1kZWxldGUtY2hhciAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE2Ij4xLjQuMyBDb21tYW5kcyBGb3IgQ2hhbmdpbmcgVGV4dDwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg3MyI+PENPREU+Zm9yd2FyZC1iYWNrd2FyZC1kZWxldGUtY2hhciAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE2Ij4xLjQuMyBDb21tYW5kcyBGb3IgQ2hhbmdpbmcgVGV4dDwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzMCI+PENPREU+Zm9yd2FyZC1jaGFyIChDLWYpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTQiPjEuNC4xIENvbW1hbmRzIEZvciBNb3Zpbmc8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzEiPjxDT0RFPmZvcndhcmQtY2hhciAoQy1mKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE0Ij4xLjQuMSBDb21tYW5kcyBGb3IgTW92aW5nPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDU0Ij48Q09ERT5mb3J3YXJkLXNlYXJjaC1oaXN0b3J5IChDLXMpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTUiPjEuNC4yIENvbW1hbmRzIEZvciBNYW5pcHVsYXRpbmcgVGhlIEhpc3Rvcnk8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYNTUiPjxDT0RFPmZvcndhcmQtc2VhcmNoLWhpc3RvcnkgKEMtcyk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNSI+MS40LjIgQ29tbWFuZHMgRm9yIE1hbmlwdWxhdGluZyBUaGUgSGlzdG9yeTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzNCI+PENPREU+Zm9yd2FyZC13b3JkIChNLWYpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTQiPjEuNC4xIENvbW1hbmRzIEZvciBNb3Zpbmc8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzUiPjxDT0RFPmZvcndhcmQtd29yZCAoTS1mKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE0Ij4xLjQuMSBDb21tYW5kcyBGb3IgTW92aW5nPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDc0Ij48Q09ERT5mb3J3YXJkLWJhY2t3YXJkLWRlbGV0ZS1jaGFyICgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTYiPjEuNC4zIENvbW1hbmRzIEZvciBDaGFuZ2luZyBUZXh0PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDc1Ij48Q09ERT5mb3J3YXJkLWJhY2t3YXJkLWRlbGV0ZS1jaGFyICgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTYiPjEuNC4zIENvbW1hbmRzIEZvciBDaGFuZ2luZyBUZXh0PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMyIj48Q09ERT5mb3J3YXJkLWNoYXIgKEMtZik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNCI+MS40LjEgQ29tbWFuZHMgRm9yIE1vdmluZzwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzMyI+PENPREU+Zm9yd2FyZC1jaGFyIChDLWYpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTQiPjEuNC4xIENvbW1hbmRzIEZvciBNb3Zpbmc8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYNTYiPjxDT0RFPmZvcndhcmQtc2VhcmNoLWhpc3RvcnkgKEMtcyk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNSI+MS40LjIgQ29tbWFuZHMgRm9yIE1hbmlwdWxhdGluZyBUaGUgSGlzdG9yeTwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg1NyI+PENPREU+Zm9yd2FyZC1zZWFyY2gtaGlzdG9yeSAoQy1zKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE1Ij4xLjQuMiBDb21tYW5kcyBGb3IgTWFuaXB1bGF0aW5nIFRoZSBIaXN0b3J5PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDM2Ij48Q09ERT5mb3J3YXJkLXdvcmQgKE0tZik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNCI+MS40LjEgQ29tbWFuZHMgRm9yIE1vdmluZzwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzNyI+PENPREU+Zm9yd2FyZC13b3JkIChNLWYpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTQiPjEuNC4xIENvbW1hbmRzIEZvciBNb3Zpbmc8L0E+PC9URD48L1RSPgogPFRSPjxURCBDT0xTUEFOPTM+IDxIUj48L1REPjwvVFI+CiA8VFI+PFRIPjxBIE5BTUU9ImZuX0giPjwvQT5IPC9USD48VEQ+PC9URD48VEQ+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTMiPmhpc3RvcnktcHJlc2VydmUtcG9pbnQ8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzEwIj4xLjMuMSBSZWFkbGluZSBJbml0IEZpbGUgU3ludGF4PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDYyIj48Q09ERT5oaXN0b3J5LXNlYXJjaC1iYWNrd2FyZCAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE1Ij4xLjQuMiBDb21tYW5kcyBGb3IgTWFuaXB1bGF0aW5nIFRoZSBIaXN0b3J5PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDYzIj48Q09ERT5oaXN0b3J5LXNlYXJjaC1iYWNrd2FyZCAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE1Ij4xLjQuMiBDb21tYW5kcyBGb3IgTWFuaXB1bGF0aW5nIFRoZSBIaXN0b3J5PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDYwIj48Q09ERT5oaXN0b3J5LXNlYXJjaC1mb3J3YXJkICgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTUiPjEuNC4yIENvbW1hbmRzIEZvciBNYW5pcHVsYXRpbmcgVGhlIEhpc3Rvcnk8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYNjEiPjxDT0RFPmhpc3Rvcnktc2VhcmNoLWZvcndhcmQgKCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNSI+MS40LjIgQ29tbWFuZHMgRm9yIE1hbmlwdWxhdGluZyBUaGUgSGlzdG9yeTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNCI+aG9yaXpvbnRhbC1zY3JvbGwtbW9kZTwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTAiPjEuMy4xIFJlYWRsaW5lIEluaXQgRmlsZSBTeW50YXg8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTQiPmhpc3RvcnktcHJlc2VydmUtcG9pbnQ8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzEwIj4xLjMuMSBSZWFkbGluZSBJbml0IEZpbGUgU3ludGF4PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDY0Ij48Q09ERT5oaXN0b3J5LXNlYXJjaC1iYWNrd2FyZCAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE1Ij4xLjQuMiBDb21tYW5kcyBGb3IgTWFuaXB1bGF0aW5nIFRoZSBIaXN0b3J5PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDY1Ij48Q09ERT5oaXN0b3J5LXNlYXJjaC1iYWNrd2FyZCAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE1Ij4xLjQuMiBDb21tYW5kcyBGb3IgTWFuaXB1bGF0aW5nIFRoZSBIaXN0b3J5PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDYyIj48Q09ERT5oaXN0b3J5LXNlYXJjaC1mb3J3YXJkICgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTUiPjEuNC4yIENvbW1hbmRzIEZvciBNYW5pcHVsYXRpbmcgVGhlIEhpc3Rvcnk8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYNjMiPjxDT0RFPmhpc3Rvcnktc2VhcmNoLWZvcndhcmQgKCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNSI+MS40LjIgQ29tbWFuZHMgRm9yIE1hbmlwdWxhdGluZyBUaGUgSGlzdG9yeTwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNSI+aG9yaXpvbnRhbC1zY3JvbGwtbW9kZTwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTAiPjEuMy4xIFJlYWRsaW5lIEluaXQgRmlsZSBTeW50YXg8L0E+PC9URD48L1RSPgogPFRSPjxURCBDT0xTUEFOPTM+IDxIUj48L1REPjwvVFI+CiA8VFI+PFRIPjxBIE5BTUU9ImZuX0kiPjwvQT5JPC9USD48VEQ+PC9URD48VEQ+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTUiPmlucHV0LW1ldGE8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzEwIj4xLjMuMSBSZWFkbGluZSBJbml0IEZpbGUgU3ludGF4PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE2MiI+PENPREU+aW5zZXJ0LWNvbW1lbnQgKE0tIyk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE2MyI+PENPREU+aW5zZXJ0LWNvbW1lbnQgKE0tIyk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEyOCI+PENPREU+aW5zZXJ0LWNvbXBsZXRpb25zIChNLSopPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTkiPjEuNC42IExldHRpbmcgUmVhZGxpbmUgVHlwZSBGb3IgWW91PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEyOSI+PENPREU+aW5zZXJ0LWNvbXBsZXRpb25zIChNLSopPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTkiPjEuNC42IExldHRpbmcgUmVhZGxpbmUgVHlwZSBGb3IgWW91PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE3Ij5pc2VhcmNoLXRlcm1pbmF0b3JzPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxMCI+MS4zLjEgUmVhZGxpbmUgSW5pdCBGaWxlIFN5bnRheDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNiI+aW5wdXQtbWV0YTwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTAiPjEuMy4xIFJlYWRsaW5lIEluaXQgRmlsZSBTeW50YXg8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTY2Ij48Q09ERT5pbnNlcnQtY29tbWVudCAoTS0jKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzIxIj4xLjQuOCBTb21lIE1pc2NlbGxhbmVvdXMgQ29tbWFuZHM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTY3Ij48Q09ERT5pbnNlcnQtY29tbWVudCAoTS0jKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzIxIj4xLjQuOCBTb21lIE1pc2NlbGxhbmVvdXMgQ29tbWFuZHM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTMyIj48Q09ERT5pbnNlcnQtY29tcGxldGlvbnMgKE0tKik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxOSI+MS40LjYgTGV0dGluZyBSZWFkbGluZSBUeXBlIEZvciBZb3U8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTMzIj48Q09ERT5pbnNlcnQtY29tcGxldGlvbnMgKE0tKik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxOSI+MS40LjYgTGV0dGluZyBSZWFkbGluZSBUeXBlIEZvciBZb3U8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTgiPmlzZWFyY2gtdGVybWluYXRvcnM8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzEwIj4xLjMuMSBSZWFkbGluZSBJbml0IEZpbGUgU3ludGF4PC9BPjwvVEQ+PC9UUj4KIDxUUj48VEQgQ09MU1BBTj0zPiA8SFI+PC9URD48L1RSPgogPFRSPjxUSD48QSBOQU1FPSJmbl9LIj48L0E+SzwvVEg+PFREPjwvVEQ+PFREPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE4Ij5rZXltYXA8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzEwIj4xLjMuMSBSZWFkbGluZSBJbml0IEZpbGUgU3ludGF4PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDkyIj48Q09ERT5raWxsLWxpbmUgKEMtayk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNyI+MS40LjQgS2lsbGluZyBBbmQgWWFua2luZzwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg5MyI+PENPREU+a2lsbC1saW5lIChDLWspPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTciPjEuNC40IEtpbGxpbmcgQW5kIFlhbmtpbmc8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTA4Ij48Q09ERT5raWxsLXJlZ2lvbiAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE3Ij4xLjQuNCBLaWxsaW5nIEFuZCBZYW5raW5nPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEwOSI+PENPREU+a2lsbC1yZWdpb24gKCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNyI+MS40LjQgS2lsbGluZyBBbmQgWWFua2luZzwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg5OCI+PENPREU+a2lsbC13aG9sZS1saW5lICgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTciPjEuNC40IEtpbGxpbmcgQW5kIFlhbmtpbmc8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYOTkiPjxDT0RFPmtpbGwtd2hvbGUtbGluZSAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE3Ij4xLjQuNCBLaWxsaW5nIEFuZCBZYW5raW5nPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEwMCI+PENPREU+a2lsbC13b3JkIChNLWQpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTciPjEuNC40IEtpbGxpbmcgQW5kIFlhbmtpbmc8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTAxIj48Q09ERT5raWxsLXdvcmQgKE0tZCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNyI+MS40LjQgS2lsbGluZyBBbmQgWWFua2luZzwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxOSI+a2V5bWFwPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxMCI+MS4zLjEgUmVhZGxpbmUgSW5pdCBGaWxlIFN5bnRheDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg5NCI+PENPREU+a2lsbC1saW5lIChDLWspPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTciPjEuNC40IEtpbGxpbmcgQW5kIFlhbmtpbmc8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYOTUiPjxDT0RFPmtpbGwtbGluZSAoQy1rKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE3Ij4xLjQuNCBLaWxsaW5nIEFuZCBZYW5raW5nPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDExMiI+PENPREU+a2lsbC1yZWdpb24gKCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNyI+MS40LjQgS2lsbGluZyBBbmQgWWFua2luZzwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMTMiPjxDT0RFPmtpbGwtcmVnaW9uICgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTciPjEuNC40IEtpbGxpbmcgQW5kIFlhbmtpbmc8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTAwIj48Q09ERT5raWxsLXdob2xlLWxpbmUgKCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNyI+MS40LjQgS2lsbGluZyBBbmQgWWFua2luZzwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMDEiPjxDT0RFPmtpbGwtd2hvbGUtbGluZSAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE3Ij4xLjQuNCBLaWxsaW5nIEFuZCBZYW5raW5nPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEwMiI+PENPREU+a2lsbC13b3JkIChNLWQpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTciPjEuNC40IEtpbGxpbmcgQW5kIFlhbmtpbmc8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTAzIj48Q09ERT5raWxsLXdvcmQgKE0tZCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNyI+MS40LjQgS2lsbGluZyBBbmQgWWFua2luZzwvQT48L1REPjwvVFI+CiA8VFI+PFREIENPTFNQQU49Mz4gPEhSPjwvVEQ+PC9UUj4KIDxUUj48VEg+PEEgTkFNRT0iZm5fTSI+PC9BPk08L1RIPjxURD48L1REPjxURD48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxOSI+bWFyay1tb2RpZmllZC1saW5lczwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTAiPjEuMy4xIFJlYWRsaW5lIEluaXQgRmlsZSBTeW50YXg8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjAiPm1hcmstc3ltbGlua2VkLWRpcmVjdG9yaWVzPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxMCI+MS4zLjEgUmVhZGxpbmUgSW5pdCBGaWxlIFN5bnRheDwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMSI+bWF0Y2gtaGlkZGVuLWZpbGVzPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxMCI+MS4zLjEgUmVhZGxpbmUgSW5pdCBGaWxlIFN5bnRheDwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMzAiPjxDT0RFPm1lbnUtY29tcGxldGUgKCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxOSI+MS40LjYgTGV0dGluZyBSZWFkbGluZSBUeXBlIEZvciBZb3U8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTMxIj48Q09ERT5tZW51LWNvbXBsZXRlICgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTkiPjEuNC42IExldHRpbmcgUmVhZGxpbmUgVHlwZSBGb3IgWW91PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE2Ij5tZXRhLWZsYWc8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzEwIj4xLjMuMSBSZWFkbGluZSBJbml0IEZpbGUgU3ludGF4PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIwIj5tYXJrLW1vZGlmaWVkLWxpbmVzPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxMCI+MS4zLjEgUmVhZGxpbmUgSW5pdCBGaWxlIFN5bnRheDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMSI+bWFyay1zeW1saW5rZWQtZGlyZWN0b3JpZXM8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzEwIj4xLjMuMSBSZWFkbGluZSBJbml0IEZpbGUgU3ludGF4PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIyIj5tYXRjaC1oaWRkZW4tZmlsZXM8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzEwIj4xLjMuMSBSZWFkbGluZSBJbml0IEZpbGUgU3ludGF4PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEzNCI+PENPREU+bWVudS1jb21wbGV0ZSAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE5Ij4xLjQuNiBMZXR0aW5nIFJlYWRsaW5lIFR5cGUgRm9yIFlvdTwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMzUiPjxDT0RFPm1lbnUtY29tcGxldGUgKCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxOSI+MS40LjYgTGV0dGluZyBSZWFkbGluZSBUeXBlIEZvciBZb3U8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTciPm1ldGEtZmxhZzwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTAiPjEuMy4xIFJlYWRsaW5lIEluaXQgRmlsZSBTeW50YXg8L0E+PC9URD48L1RSPgogPFRSPjxURCBDT0xTUEFOPTM+IDxIUj48L1REPjwvVFI+CiA8VFI+PFRIPjxBIE5BTUU9ImZuX04iPjwvQT5OPC9USD48VEQ+PC9URD48VEQ+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYNDYiPjxDT0RFPm5leHQtaGlzdG9yeSAoQy1uKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE1Ij4xLjQuMiBDb21tYW5kcyBGb3IgTWFuaXB1bGF0aW5nIFRoZSBIaXN0b3J5PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDQ3Ij48Q09ERT5uZXh0LWhpc3RvcnkgKEMtbik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNSI+MS40LjIgQ29tbWFuZHMgRm9yIE1hbmlwdWxhdGluZyBUaGUgSGlzdG9yeTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg1OCI+PENPREU+bm9uLWluY3JlbWVudGFsLWZvcndhcmQtc2VhcmNoLWhpc3RvcnkgKE0tbik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNSI+MS40LjIgQ29tbWFuZHMgRm9yIE1hbmlwdWxhdGluZyBUaGUgSGlzdG9yeTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg1OSI+PENPREU+bm9uLWluY3JlbWVudGFsLWZvcndhcmQtc2VhcmNoLWhpc3RvcnkgKE0tbik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNSI+MS40LjIgQ29tbWFuZHMgRm9yIE1hbmlwdWxhdGluZyBUaGUgSGlzdG9yeTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg1NiI+PENPREU+bm9uLWluY3JlbWVudGFsLXJldmVyc2Utc2VhcmNoLWhpc3RvcnkgKE0tcCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNSI+MS40LjIgQ29tbWFuZHMgRm9yIE1hbmlwdWxhdGluZyBUaGUgSGlzdG9yeTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg1NyI+PENPREU+bm9uLWluY3JlbWVudGFsLXJldmVyc2Utc2VhcmNoLWhpc3RvcnkgKE0tcCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNSI+MS40LjIgQ29tbWFuZHMgRm9yIE1hbmlwdWxhdGluZyBUaGUgSGlzdG9yeTwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg0OCI+PENPREU+bmV4dC1oaXN0b3J5IChDLW4pPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTUiPjEuNC4yIENvbW1hbmRzIEZvciBNYW5pcHVsYXRpbmcgVGhlIEhpc3Rvcnk8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYNDkiPjxDT0RFPm5leHQtaGlzdG9yeSAoQy1uKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE1Ij4xLjQuMiBDb21tYW5kcyBGb3IgTWFuaXB1bGF0aW5nIFRoZSBIaXN0b3J5PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDYwIj48Q09ERT5ub24taW5jcmVtZW50YWwtZm9yd2FyZC1zZWFyY2gtaGlzdG9yeSAoTS1uKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE1Ij4xLjQuMiBDb21tYW5kcyBGb3IgTWFuaXB1bGF0aW5nIFRoZSBIaXN0b3J5PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDYxIj48Q09ERT5ub24taW5jcmVtZW50YWwtZm9yd2FyZC1zZWFyY2gtaGlzdG9yeSAoTS1uKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE1Ij4xLjQuMiBDb21tYW5kcyBGb3IgTWFuaXB1bGF0aW5nIFRoZSBIaXN0b3J5PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDU4Ij48Q09ERT5ub24taW5jcmVtZW50YWwtcmV2ZXJzZS1zZWFyY2gtaGlzdG9yeSAoTS1wKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE1Ij4xLjQuMiBDb21tYW5kcyBGb3IgTWFuaXB1bGF0aW5nIFRoZSBIaXN0b3J5PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDU5Ij48Q09ERT5ub24taW5jcmVtZW50YWwtcmV2ZXJzZS1zZWFyY2gtaGlzdG9yeSAoTS1wKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE1Ij4xLjQuMiBDb21tYW5kcyBGb3IgTWFuaXB1bGF0aW5nIFRoZSBIaXN0b3J5PC9BPjwvVEQ+PC9UUj4KIDxUUj48VEQgQ09MU1BBTj0zPiA8SFI+PC9URD48L1RSPgogPFRSPjxUSD48QSBOQU1FPSJmbl9PIj48L0E+TzwvVEg+PFREPjwvVEQ+PFREPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIyIj5vdXRwdXQtbWV0YTwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTAiPjEuMy4xIFJlYWRsaW5lIEluaXQgRmlsZSBTeW50YXg8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYOTAiPjxDT0RFPm92ZXJ3cml0ZS1tb2RlICgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTYiPjEuNC4zIENvbW1hbmRzIEZvciBDaGFuZ2luZyBUZXh0PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDkxIj48Q09ERT5vdmVyd3JpdGUtbW9kZSAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE2Ij4xLjQuMyBDb21tYW5kcyBGb3IgQ2hhbmdpbmcgVGV4dDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMyI+b3V0cHV0LW1ldGE8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzEwIj4xLjMuMSBSZWFkbGluZSBJbml0IEZpbGUgU3ludGF4PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDkyIj48Q09ERT5vdmVyd3JpdGUtbW9kZSAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE2Ij4xLjQuMyBDb21tYW5kcyBGb3IgQ2hhbmdpbmcgVGV4dDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg5MyI+PENPREU+b3ZlcndyaXRlLW1vZGUgKCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNiI+MS40LjMgQ29tbWFuZHMgRm9yIENoYW5naW5nIFRleHQ8L0E+PC9URD48L1RSPgogPFRSPjxURCBDT0xTUEFOPTM+IDxIUj48L1REPjwvVFI+CiA8VFI+PFRIPjxBIE5BTUU9ImZuX1AiPjwvQT5QPC9USD48VEQ+PC9URD48VEQ+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjMiPnBhZ2UtY29tcGxldGlvbnM8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzEwIj4xLjMuMSBSZWFkbGluZSBJbml0IEZpbGUgU3ludGF4PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEyNiI+PENPREU+cG9zc2libGUtY29tcGxldGlvbnMgKE0tPyk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxOSI+MS40LjYgTGV0dGluZyBSZWFkbGluZSBUeXBlIEZvciBZb3U8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTI3Ij48Q09ERT5wb3NzaWJsZS1jb21wbGV0aW9ucyAoTS0/KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE5Ij4xLjQuNiBMZXR0aW5nIFJlYWRsaW5lIFR5cGUgRm9yIFlvdTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNDYiPjxDT0RFPnByZWZpeC1tZXRhICg8S0JEPkVTQzwvS0JEPik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE0NyI+PENPREU+cHJlZml4LW1ldGEgKDxLQkQ+RVNDPC9LQkQ+KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzIxIj4xLjQuOCBTb21lIE1pc2NlbGxhbmVvdXMgQ29tbWFuZHM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYNDQiPjxDT0RFPnByZXZpb3VzLWhpc3RvcnkgKEMtcCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNSI+MS40LjIgQ29tbWFuZHMgRm9yIE1hbmlwdWxhdGluZyBUaGUgSGlzdG9yeTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg0NSI+PENPREU+cHJldmlvdXMtaGlzdG9yeSAoQy1wKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE1Ij4xLjQuMiBDb21tYW5kcyBGb3IgTWFuaXB1bGF0aW5nIFRoZSBIaXN0b3J5PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI0Ij5wYWdlLWNvbXBsZXRpb25zPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxMCI+MS4zLjEgUmVhZGxpbmUgSW5pdCBGaWxlIFN5bnRheDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMzAiPjxDT0RFPnBvc3NpYmxlLWNvbXBsZXRpb25zIChNLT8pPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTkiPjEuNC42IExldHRpbmcgUmVhZGxpbmUgVHlwZSBGb3IgWW91PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEzMSI+PENPREU+cG9zc2libGUtY29tcGxldGlvbnMgKE0tPyk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxOSI+MS40LjYgTGV0dGluZyBSZWFkbGluZSBUeXBlIEZvciBZb3U8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTUwIj48Q09ERT5wcmVmaXgtbWV0YSAoPEtCRD5FU0M8L0tCRD4pPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjEiPjEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNTEiPjxDT0RFPnByZWZpeC1tZXRhICg8S0JEPkVTQzwvS0JEPik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDQ2Ij48Q09ERT5wcmV2aW91cy1oaXN0b3J5IChDLXApPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTUiPjEuNC4yIENvbW1hbmRzIEZvciBNYW5pcHVsYXRpbmcgVGhlIEhpc3Rvcnk8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYNDciPjxDT0RFPnByZXZpb3VzLWhpc3RvcnkgKEMtcCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNSI+MS40LjIgQ29tbWFuZHMgRm9yIE1hbmlwdWxhdGluZyBUaGUgSGlzdG9yeTwvQT48L1REPjwvVFI+CiA8VFI+PFREIENPTFNQQU49Mz4gPEhSPjwvVEQ+PC9UUj4KIDxUUj48VEg+PEEgTkFNRT0iZm5fUSI+PC9BPlE8L1RIPjxURD48L1REPjxURD48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg3NCI+PENPREU+cXVvdGVkLWluc2VydCAoQy1xIG9yIEMtdik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNiI+MS40LjMgQ29tbWFuZHMgRm9yIENoYW5naW5nIFRleHQ8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYNzUiPjxDT0RFPnF1b3RlZC1pbnNlcnQgKEMtcSBvciBDLXYpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTYiPjEuNC4zIENvbW1hbmRzIEZvciBDaGFuZ2luZyBUZXh0PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDc2Ij48Q09ERT5xdW90ZWQtaW5zZXJ0IChDLXEgb3IgQy12KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE2Ij4xLjQuMyBDb21tYW5kcyBGb3IgQ2hhbmdpbmcgVGV4dDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg3NyI+PENPREU+cXVvdGVkLWluc2VydCAoQy1xIG9yIEMtdik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNiI+MS40LjMgQ29tbWFuZHMgRm9yIENoYW5naW5nIFRleHQ8L0E+PC9URD48L1RSPgogPFRSPjxURCBDT0xTUEFOPTM+IDxIUj48L1REPjwvVFI+CiA8VFI+PFRIPjxBIE5BTUU9ImZuX1IiPjwvQT5SPC9USD48VEQ+PC9URD48VEQ+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTQwIj48Q09ERT5yZS1yZWFkLWluaXQtZmlsZSAoQy14IEMtcik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE0MSI+PENPREU+cmUtcmVhZC1pbml0LWZpbGUgKEMteCBDLXIpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjEiPjEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNzQiPjxDT0RFPnJlYWRsaW5lPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjQiPjIuMSBCYXNpYyBCZWhhdmlvcjwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg0MCI+PENPREU+cmVkcmF3LWN1cnJlbnQtbGluZSAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE0Ij4xLjQuMSBDb21tYW5kcyBGb3IgTW92aW5nPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDQxIj48Q09ERT5yZWRyYXctY3VycmVudC1saW5lICgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTQiPjEuNC4xIENvbW1hbmRzIEZvciBNb3Zpbmc8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYNTIiPjxDT0RFPnJldmVyc2Utc2VhcmNoLWhpc3RvcnkgKEMtcik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNSI+MS40LjIgQ29tbWFuZHMgRm9yIE1hbmlwdWxhdGluZyBUaGUgSGlzdG9yeTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg1MyI+PENPREU+cmV2ZXJzZS1zZWFyY2gtaGlzdG9yeSAoQy1yKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE1Ij4xLjQuMiBDb21tYW5kcyBGb3IgTWFuaXB1bGF0aW5nIFRoZSBIaXN0b3J5PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE1MCI+PENPREU+cmV2ZXJ0LWxpbmUgKE0tcik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE1MSI+PENPREU+cmV2ZXJ0LWxpbmUgKE0tcik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIwOSI+PENPREU+cmxfYWRkX2RlZnVuPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzAiPjIuNC4xIE5hbWluZyBhIEZ1bmN0aW9uPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIzNSI+PENPREU+cmxfYWRkX2Z1bm1hcF9lbnRyeTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzMzIj4yLjQuNCBBc3NvY2lhdGluZyBGdW5jdGlvbiBOYW1lcyBhbmQgQmluZGluZ3M8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjM4Ij48Q09ERT5ybF9hZGRfdW5kbzwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM0Ij4yLjQuNSBBbGxvd2luZyBVbmRvaW5nPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI3NCI+PENPREU+cmxfYWxwaGFiZXRpYzwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM5Ij4yLjQuMTAgVXRpbGl0eSBGdW5jdGlvbnM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTg2Ij5ybF9hbHJlYWR5X3Byb21wdGVkPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyOCI+Mi4zIFJlYWRsaW5lIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzMTIiPnJsX2F0dGVtcHRlZF9jb21wbGV0aW9uX2Z1bmN0aW9uPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzMyIj5ybF9hdHRlbXB0ZWRfY29tcGxldGlvbl9vdmVyPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzIwIj5ybF9iYXNpY19xdW90ZV9jaGFyYWN0ZXJzPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzE5Ij5ybF9iYXNpY193b3JkX2JyZWFrX2NoYXJhY3RlcnM8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ3Ij4yLjYuMyBDb21wbGV0aW9uIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMzYiPjxDT0RFPnJsX2JlZ2luX3VuZG9fZ3JvdXA8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzNCI+Mi40LjUgQWxsb3dpbmcgVW5kb2luZzwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMTgiPjxDT0RFPnJsX2JpbmRfa2V5PC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzIiPjIuNC4zIEJpbmRpbmcgS2V5czwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMTkiPjxDT0RFPnJsX2JpbmRfa2V5X2luX21hcDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzMyIj4yLjQuMyBCaW5kaW5nIEtleXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjAzIj5ybF9iaW5kaW5nX2tleW1hcDwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjg4Ij48Q09ERT5ybF9jYWxsYmFja19oYW5kbGVyX2luc3RhbGw8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0MSI+Mi40LjEyIEFsdGVybmF0ZSBJbnRlcmZhY2U8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjkwIj48Q09ERT5ybF9jYWxsYmFja19oYW5kbGVyX3JlbW92ZTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQxIj4yLjQuMTIgQWx0ZXJuYXRlIEludGVyZmFjZTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyODkiPjxDT0RFPnJsX2NhbGxiYWNrX3JlYWRfY2hhcjwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQxIj4yLjQuMTIgQWx0ZXJuYXRlIEludGVyZmFjZTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyOTEiPnJsX2NhdGNoX3NpZ25hbHM8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQzIj4yLjUgUmVhZGxpbmUgU2lnbmFsIEhhbmRsaW5nPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI5MiI+cmxfY2F0Y2hfc2lnd2luY2g8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQzIj4yLjUgUmVhZGxpbmUgU2lnbmFsIEhhbmRsaW5nPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMxNSI+cmxfY2hhcl9pc19xdW90ZWRfcDwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDciPjIuNi4zIENvbXBsZXRpb24gVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI5MyI+PENPREU+cmxfY2xlYW51cF9hZnRlcl9zaWduYWw8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0MyI+Mi41IFJlYWRsaW5lIFNpZ25hbCBIYW5kbGluZzwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNTAiPjxDT0RFPnJsX2NsZWFyX21lc3NhZ2U8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzNSI+Mi40LjYgUmVkaXNwbGF5PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI2NCI+PENPREU+cmxfY2xlYXJfcGVuZGluZ19pbnB1dDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM3Ij4yLjQuOCBDaGFyYWN0ZXIgSW5wdXQ8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzAwIj48Q09ERT5ybF9jbGVhcl9zaWduYWxzPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDMiPjIuNSBSZWFkbGluZSBTaWduYWwgSGFuZGxpbmc8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzAxIj48Q09ERT5ybF9jb21wbGV0ZTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ1Ij4yLjYuMSBIb3cgQ29tcGxldGluZyBXb3JrczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzMDQiPjxDT0RFPnJsX2NvbXBsZXRlPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDYiPjIuNi4yIENvbXBsZXRpb24gRnVuY3Rpb25zPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMwMyI+PENPREU+cmxfY29tcGxldGVfaW50ZXJuYWw8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NiI+Mi42LjIgQ29tcGxldGlvbiBGdW5jdGlvbnM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzIyIj5ybF9jb21wbGV0ZXJfcXVvdGVfY2hhcmFjdGVyczwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDciPjIuNi4zIENvbXBsZXRpb24gVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMyMSI+cmxfY29tcGxldGVyX3dvcmRfYnJlYWtfY2hhcmFjdGVyczwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDciPjIuNi4zIENvbXBsZXRpb24gVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMyNiI+cmxfY29tcGxldGlvbl9hcHBlbmRfY2hhcmFjdGVyPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzE4Ij5ybF9jb21wbGV0aW9uX2Rpc3BsYXlfbWF0Y2hlc19ob29rPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzAyIj5ybF9jb21wbGV0aW9uX2VudHJ5X2Z1bmN0aW9uPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NSI+Mi42LjEgSG93IENvbXBsZXRpbmcgV29ya3M8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzExIj5ybF9jb21wbGV0aW9uX2VudHJ5X2Z1bmN0aW9uPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzI4Ij5ybF9jb21wbGV0aW9uX21hcmtfc3ltbGlua19kaXJzPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzA4Ij48Q09ERT5ybF9jb21wbGV0aW9uX21hdGNoZXM8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NiI+Mi42LjIgQ29tcGxldGlvbiBGdW5jdGlvbnM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzA3Ij48Q09ERT5ybF9jb21wbGV0aW9uX21vZGU8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NiI+Mi42LjIgQ29tcGxldGlvbiBGdW5jdGlvbnM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzI1Ij5ybF9jb21wbGV0aW9uX3F1ZXJ5X2l0ZW1zPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzI3Ij5ybF9jb21wbGV0aW9uX3N1cHByZXNzX2FwcGVuZDwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDciPjIuNi4zIENvbXBsZXRpb24gVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMzMyI+cmxfY29tcGxldGlvbl90eXBlPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjExIj48Q09ERT5ybF9jb3B5X2tleW1hcDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzMxIj4yLjQuMiBTZWxlY3RpbmcgYSBLZXltYXA8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjU3Ij48Q09ERT5ybF9jb3B5X3RleHQ8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzNiI+Mi40LjcgTW9kaWZ5aW5nIFRleHQ8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjQ3Ij48Q09ERT5ybF9jcmxmPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzUiPjIuNC42IFJlZGlzcGxheTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNTYiPjxDT0RFPnJsX2RlbGV0ZV90ZXh0PC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzYiPjIuNC43IE1vZGlmeWluZyBUZXh0PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIwMSI+cmxfZGVwcmVwX3Rlcm1fZnVuY3Rpb248L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzI4Ij4yLjMgUmVhZGxpbmUgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI2NyI+PENPREU+cmxfZGVwcmVwX3Rlcm1pbmFsPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzgiPjIuNC45IFRlcm1pbmFsIE1hbmFnZW1lbnQ8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjczIj48Q09ERT5ybF9kaW5nPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzkiPjIuNC4xMCBVdGlsaXR5IEZ1bmN0aW9uczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzMTciPnJsX2RpcmVjdG9yeV9jb21wbGV0aW9uX2hvb2s8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ3Ij4yLjYuMyBDb21wbGV0aW9uIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMTMiPjxDT0RFPnJsX2Rpc2NhcmRfa2V5bWFwPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzEiPjIuNC4yIFNlbGVjdGluZyBhIEtleW1hcDwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxODMiPnJsX2Rpc3BhdGNoaW5nPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyOCI+Mi4zIFJlYWRsaW5lIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNzUiPjxDT0RFPnJsX2Rpc3BsYXlfbWF0Y2hfbGlzdDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM5Ij4yLjQuMTAgVXRpbGl0eSBGdW5jdGlvbnM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjQwIj48Q09ERT5ybF9kb191bmRvPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzQiPjIuNC41IEFsbG93aW5nIFVuZG9pbmc8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTgwIj5ybF9kb25lPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyOCI+Mi4zIFJlYWRsaW5lIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMDgiPnJsX2VkaXRpbmdfbW9kZTwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTc4Ij5ybF9lbmQ8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzI4Ij4yLjMgUmVhZGxpbmUgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIzNyI+PENPREU+cmxfZW5kX3VuZG9fZ3JvdXA8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzNCI+Mi40LjUgQWxsb3dpbmcgVW5kb2luZzwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxODQiPnJsX2VyYXNlX2VtcHR5X2xpbmU8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzI4Ij4yLjMgUmVhZGxpbmUgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE5NyI+cmxfZXZlbnRfaG9vazwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjYzIj48Q09ERT5ybF9leGVjdXRlX25leHQ8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzNyI+Mi40LjggQ2hhcmFjdGVyIElucHV0PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIwMiI+cmxfZXhlY3V0aW5nX2tleW1hcDwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjA0Ij5ybF9leGVjdXRpbmdfbWFjcm88L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzI4Ij4yLjMgUmVhZGxpbmUgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI1MyI+PENPREU+cmxfZXhwYW5kX3Byb21wdDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM1Ij4yLjQuNiBSZWRpc3BsYXk8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjA2Ij5ybF9leHBsaWNpdF9hcmc8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzI4Ij4yLjMgUmVhZGxpbmUgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI3MSI+PENPREU+cmxfZXh0ZW5kX2xpbmVfYnVmZmVyPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzkiPjIuNC4xMCBVdGlsaXR5IEZ1bmN0aW9uczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzMzAiPnJsX2ZpbGVuYW1lX2NvbXBsZXRpb25fZGVzaXJlZDwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDciPjIuNi4zIENvbXBsZXRpb24gVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMwOSI+PENPREU+cmxfZmlsZW5hbWVfY29tcGxldGlvbl9mdW5jdGlvbjwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ2Ij4yLjYuMiBDb21wbGV0aW9uIEZ1bmN0aW9uczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzMTQiPnJsX2ZpbGVuYW1lX2RlcXVvdGluZ19mdW5jdGlvbjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDciPjIuNi4zIENvbXBsZXRpb24gVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMyMyI+cmxfZmlsZW5hbWVfcXVvdGVfY2hhcmFjdGVyczwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDciPjIuNi4zIENvbXBsZXRpb24gVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMzMSI+cmxfZmlsZW5hbWVfcXVvdGluZ19kZXNpcmVkPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzEzIj5ybF9maWxlbmFtZV9xdW90aW5nX2Z1bmN0aW9uPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjQzIj48Q09ERT5ybF9mb3JjZWRfdXBkYXRlX2Rpc3BsYXk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzNSI+Mi40LjYgUmVkaXNwbGF5PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI5NCI+PENPREU+cmxfZnJlZV9saW5lX3N0YXRlPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDMiPjIuNSBSZWFkbGluZSBTaWduYWwgSGFuZGxpbmc8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjM5Ij48Q09ERT5ybF9mcmVlX3VuZG9fbGlzdDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM0Ij4yLjQuNSBBbGxvd2luZyBVbmRvaW5nPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIzMiI+PENPREU+cmxfZnVuY3Rpb25fZHVtcGVyPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzMiPjIuNC40IEFzc29jaWF0aW5nIEZ1bmN0aW9uIE5hbWVzIGFuZCBCaW5kaW5nczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMjkiPjxDT0RFPnJsX2Z1bmN0aW9uX29mX2tleXNlcTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzMzIj4yLjQuNCBBc3NvY2lhdGluZyBGdW5jdGlvbiBOYW1lcyBhbmQgQmluZGluZ3M8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjM0Ij48Q09ERT5ybF9mdW5tYXBfbmFtZXM8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzMyI+Mi40LjQgQXNzb2NpYXRpbmcgRnVuY3Rpb24gTmFtZXMgYW5kIEJpbmRpbmdzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIyNSI+PENPREU+cmxfZ2VuZXJpY19iaW5kPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzIiPjIuNC4zIEJpbmRpbmcgS2V5czwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMTQiPjxDT0RFPnJsX2dldF9rZXltYXA8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzMSI+Mi40LjIgU2VsZWN0aW5nIGEgS2V5bWFwPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIxNiI+PENPREU+cmxfZ2V0X2tleW1hcF9ieV9uYW1lPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzEiPjIuNC4yIFNlbGVjdGluZyBhIEtleW1hcDwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMTciPjxDT0RFPnJsX2dldF9rZXltYXBfbmFtZTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzMxIj4yLjQuMiBTZWxlY3RpbmcgYSBLZXltYXA8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjk4Ij48Q09ERT5ybF9nZXRfc2NyZWVuX3NpemU8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0MyI+Mi41IFJlYWRsaW5lIFNpZ25hbCBIYW5kbGluZzwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyODciPjxDT0RFPnJsX2dldF90ZXJtY2FwPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDAiPjIuNC4xMSBNaXNjZWxsYW5lb3VzIEZ1bmN0aW9uczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNjEiPjxDT0RFPnJsX2dldGM8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzNyI+Mi40LjggQ2hhcmFjdGVyIElucHV0PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE5OCI+cmxfZ2V0Y19mdW5jdGlvbjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTg5Ij5ybF9nbnVfcmVhZGxpbmVfcDwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzI5Ij5ybF9pZ25vcmVfY29tcGxldGlvbl9kdXBsaWNhdGVzPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzE2Ij5ybF9pZ25vcmVfc29tZV9jb21wbGV0aW9uc19mdW5jdGlvbjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDciPjIuNi4zIENvbXBsZXRpb24gVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMzNCI+cmxfaW5oaWJpdF9jb21wbGV0aW9uPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjcyIj48Q09ERT5ybF9pbml0aWFsaXplPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzkiPjIuNC4xMCBVdGlsaXR5IEZ1bmN0aW9uczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzMDYiPjxDT0RFPnJsX2luc2VydF9jb21wbGV0aW9uczwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ2Ij4yLjYuMiBDb21wbGV0aW9uIEZ1bmN0aW9uczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNTUiPjxDT0RFPnJsX2luc2VydF90ZXh0PC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzYiPjIuNC43IE1vZGlmeWluZyBUZXh0PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE5MiI+cmxfaW5zdHJlYW08L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzI4Ij4yLjMgUmVhZGxpbmUgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIzMCI+PENPREU+cmxfaW52b2tpbmdfa2V5c2VxczwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzMzIj4yLjQuNCBBc3NvY2lhdGluZyBGdW5jdGlvbiBOYW1lcyBhbmQgQmluZGluZ3M8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjMxIj48Q09ERT5ybF9pbnZva2luZ19rZXlzZXFzX2luX21hcDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzMzIj4yLjQuNCBBc3NvY2lhdGluZyBGdW5jdGlvbiBOYW1lcyBhbmQgQmluZGluZ3M8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjU4Ij48Q09ERT5ybF9raWxsX3RleHQ8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzNiI+Mi40LjcgTW9kaWZ5aW5nIFRleHQ8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTk0Ij5ybF9sYXN0X2Z1bmM8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzI4Ij4yLjMgUmVhZGxpbmUgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE4NyI+cmxfbGlicmFyeV92ZXJzaW9uPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyOCI+Mi4zIFJlYWRsaW5lIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNzYiPnJsX2xpbmVfYnVmZmVyPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyOCI+Mi4zIFJlYWRsaW5lIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMzMiPjxDT0RFPnJsX2xpc3RfZnVubWFwX25hbWVzPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzMiPjIuNC40IEFzc29jaWF0aW5nIEZ1bmN0aW9uIE5hbWVzIGFuZCBCaW5kaW5nczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyODIiPjxDT0RFPnJsX21hY3JvX2JpbmQ8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0MCI+Mi40LjExIE1pc2NlbGxhbmVvdXMgRnVuY3Rpb25zPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI4MyI+PENPREU+cmxfbWFjcm9fZHVtcGVyPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDAiPjIuNC4xMSBNaXNjZWxsYW5lb3VzIEZ1bmN0aW9uczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMTAiPjxDT0RFPnJsX21ha2VfYmFyZV9rZXltYXA8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzMSI+Mi40LjIgU2VsZWN0aW5nIGEgS2V5bWFwPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIxMiI+PENPREU+cmxfbWFrZV9rZXltYXA8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzMSI+Mi40LjIgU2VsZWN0aW5nIGEgS2V5bWFwPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE3OSI+cmxfbWFyazwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjQ5Ij48Q09ERT5ybF9tZXNzYWdlPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzUiPjIuNC42IFJlZGlzcGxheTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNDEiPjxDT0RFPnJsX21vZGlmeWluZzwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM0Ij4yLjQuNSBBbGxvd2luZyBVbmRvaW5nPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIyOCI+PENPREU+cmxfbmFtZWRfZnVuY3Rpb248L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzMyI+Mi40LjQgQXNzb2NpYXRpbmcgRnVuY3Rpb24gTmFtZXMgYW5kIEJpbmRpbmdzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE4MSI+cmxfbnVtX2NoYXJzX3RvX3JlYWQ8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzI4Ij4yLjMgUmVhZGxpbmUgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIwNyI+cmxfbnVtZXJpY19hcmc8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzI4Ij4yLjMgUmVhZGxpbmUgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI0NCI+PENPREU+cmxfb25fbmV3X2xpbmU8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzNSI+Mi40LjYgUmVkaXNwbGF5PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI0NSI+PENPREU+cmxfb25fbmV3X2xpbmVfd2l0aF9wcm9tcHQ8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzNSI+Mi40LjYgUmVkaXNwbGF5PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE5MyI+cmxfb3V0c3RyZWFtPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyOCI+Mi4zIFJlYWRsaW5lIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMjYiPjxDT0RFPnJsX3BhcnNlX2FuZF9iaW5kPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzIiPjIuNC4zIEJpbmRpbmcgS2V5czwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxODIiPnJsX3BlbmRpbmdfaW5wdXQ8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzI4Ij4yLjMgUmVhZGxpbmUgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE3NyI+cmxfcG9pbnQ8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzI4Ij4yLjMgUmVhZGxpbmUgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMwNSI+PENPREU+cmxfcG9zc2libGVfY29tcGxldGlvbnM8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NiI+Mi42LjIgQ29tcGxldGlvbiBGdW5jdGlvbnM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTk2Ij5ybF9wcmVfaW5wdXRfaG9vazwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjAwIj5ybF9wcmVwX3Rlcm1fZnVuY3Rpb248L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzI4Ij4yLjMgUmVhZGxpbmUgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI2NiI+PENPREU+cmxfcHJlcF90ZXJtaW5hbDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM4Ij4yLjQuOSBUZXJtaW5hbCBNYW5hZ2VtZW50PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE4NSI+cmxfcHJvbXB0PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyOCI+Mi4zIFJlYWRsaW5lIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNTkiPjxDT0RFPnJsX3B1c2hfbWFjcm9faW5wdXQ8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzNiI+Mi40LjcgTW9kaWZ5aW5nIFRleHQ8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjI3Ij48Q09ERT5ybF9yZWFkX2luaXRfZmlsZTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzMyIj4yLjQuMyBCaW5kaW5nIEtleXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjYwIj48Q09ERT5ybF9yZWFkX2tleTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM3Ij4yLjQuOCBDaGFyYWN0ZXIgSW5wdXQ8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTkxIj5ybF9yZWFkbGluZV9uYW1lPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyOCI+Mi4zIFJlYWRsaW5lIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMDUiPnJsX3JlYWRsaW5lX3N0YXRlPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyOCI+Mi4zIFJlYWRsaW5lIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxODgiPnJsX3JlYWRsaW5lX3ZlcnNpb248L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzI4Ij4yLjMgUmVhZGxpbmUgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI0MiI+PENPREU+cmxfcmVkaXNwbGF5PC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzUiPjIuNC42IFJlZGlzcGxheTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxOTkiPnJsX3JlZGlzcGxheV9mdW5jdGlvbjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjcwIj48Q09ERT5ybF9yZXBsYWNlX2xpbmU8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzOSI+Mi40LjEwIFV0aWxpdHkgRnVuY3Rpb25zPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI5NSI+PENPREU+cmxfcmVzZXRfYWZ0ZXJfc2lnbmFsPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDMiPjIuNSBSZWFkbGluZSBTaWduYWwgSGFuZGxpbmc8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjQ2Ij48Q09ERT5ybF9yZXNldF9saW5lX3N0YXRlPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzUiPjIuNC42IFJlZGlzcGxheTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNjkiPjxDT0RFPnJsX3Jlc2V0X3Rlcm1pbmFsPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzgiPjIuNC45IFRlcm1pbmFsIE1hbmFnZW1lbnQ8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjk2Ij48Q09ERT5ybF9yZXNpemVfdGVybWluYWw8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0MyI+Mi41IFJlYWRsaW5lIFNpZ25hbCBIYW5kbGluZzwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNTIiPjxDT0RFPnJsX3Jlc3RvcmVfcHJvbXB0PC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzUiPjIuNC42IFJlZGlzcGxheTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNTEiPjxDT0RFPnJsX3NhdmVfcHJvbXB0PC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzUiPjIuNC42IFJlZGlzcGxheTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMjQiPjxDT0RFPnJsX3NldF9rZXk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzMiI+Mi40LjMgQmluZGluZyBLZXlzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI2NSI+PENPREU+cmxfc2V0X2tleWJvYXJkX2lucHV0X3RpbWVvdXQ8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzNyI+Mi40LjggQ2hhcmFjdGVyIElucHV0PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIxNSI+PENPREU+cmxfc2V0X2tleW1hcDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzMxIj4yLjQuMiBTZWxlY3RpbmcgYSBLZXltYXA8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjg2Ij48Q09ERT5ybF9zZXRfcGFyZW5fYmxpbmtfdGltZW91dDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQwIj4yLjQuMTEgTWlzY2VsbGFuZW91cyBGdW5jdGlvbnM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjU0Ij48Q09ERT5ybF9zZXRfcHJvbXB0PC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzUiPjIuNC42IFJlZGlzcGxheTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyOTciPjxDT0RFPnJsX3NldF9zY3JlZW5fc2l6ZTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQzIj4yLjUgUmVhZGxpbmUgU2lnbmFsIEhhbmRsaW5nPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI5OSI+PENPREU+cmxfc2V0X3NpZ25hbHM8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0MyI+Mi41IFJlYWRsaW5lIFNpZ25hbCBIYW5kbGluZzwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNDgiPjxDT0RFPnJsX3Nob3dfY2hhcjwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM1Ij4yLjQuNiBSZWRpc3BsYXk8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzI0Ij5ybF9zcGVjaWFsX3ByZWZpeGVzPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTk1Ij5ybF9zdGFydHVwX2hvb2s8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzI4Ij4yLjMgUmVhZGxpbmUgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI2MiI+PENPREU+cmxfc3R1ZmZfY2hhcjwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM3Ij4yLjQuOCBDaGFyYWN0ZXIgSW5wdXQ8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTkwIj5ybF90ZXJtaW5hbF9uYW1lPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyOCI+Mi4zIFJlYWRsaW5lIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNjgiPjxDT0RFPnJsX3R0eV9zZXRfZGVmYXVsdF9iaW5kaW5nczwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM4Ij4yLjQuOSBUZXJtaW5hbCBNYW5hZ2VtZW50PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIyMyI+PENPREU+cmxfdW5iaW5kX2NvbW1hbmRfaW5fbWFwPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzIiPjIuNC4zIEJpbmRpbmcgS2V5czwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMjIiPjxDT0RFPnJsX3VuYmluZF9mdW5jdGlvbl9pbl9tYXA8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzMiI+Mi40LjMgQmluZGluZyBLZXlzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIyMCI+PENPREU+cmxfdW5iaW5kX2tleTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzMyIj4yLjQuMyBCaW5kaW5nIEtleXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjIxIj48Q09ERT5ybF91bmJpbmRfa2V5X2luX21hcDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzMyIj4yLjQuMyBCaW5kaW5nIEtleXM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzEwIj48Q09ERT5ybF91c2VybmFtZV9jb21wbGV0aW9uX2Z1bmN0aW9uPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDYiPjIuNi4yIENvbXBsZXRpb24gRnVuY3Rpb25zPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI4NCI+PENPREU+cmxfdmFyaWFibGVfYmluZDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQwIj4yLjQuMTEgTWlzY2VsbGFuZW91cyBGdW5jdGlvbnM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjg1Ij48Q09ERT5ybF92YXJpYWJsZV9kdW1wZXI8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0MCI+Mi40LjExIE1pc2NlbGxhbmVvdXMgRnVuY3Rpb25zPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE0NCI+PENPREU+cmUtcmVhZC1pbml0LWZpbGUgKEMteCBDLXIpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjEiPjEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNDUiPjxDT0RFPnJlLXJlYWQtaW5pdC1maWxlIChDLXggQy1yKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzIxIj4xLjQuOCBTb21lIE1pc2NlbGxhbmVvdXMgQ29tbWFuZHM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTc4Ij48Q09ERT5yZWFkbGluZTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzI0Ij4yLjEgQmFzaWMgQmVoYXZpb3I8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYNDIiPjxDT0RFPnJlZHJhdy1jdXJyZW50LWxpbmUgKCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNCI+MS40LjEgQ29tbWFuZHMgRm9yIE1vdmluZzwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg0MyI+PENPREU+cmVkcmF3LWN1cnJlbnQtbGluZSAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE0Ij4xLjQuMSBDb21tYW5kcyBGb3IgTW92aW5nPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDU0Ij48Q09ERT5yZXZlcnNlLXNlYXJjaC1oaXN0b3J5IChDLXIpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTUiPjEuNC4yIENvbW1hbmRzIEZvciBNYW5pcHVsYXRpbmcgVGhlIEhpc3Rvcnk8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYNTUiPjxDT0RFPnJldmVyc2Utc2VhcmNoLWhpc3RvcnkgKEMtcik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNSI+MS40LjIgQ29tbWFuZHMgRm9yIE1hbmlwdWxhdGluZyBUaGUgSGlzdG9yeTwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNTQiPjxDT0RFPnJldmVydC1saW5lIChNLXIpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjEiPjEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNTUiPjxDT0RFPnJldmVydC1saW5lIChNLXIpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjEiPjEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMTQiPjxDT0RFPnJsX2FkZF9kZWZ1bjwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzMwIj4yLjQuMSBOYW1pbmcgYSBGdW5jdGlvbjwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNDYiPjxDT0RFPnJsX2FkZF9mdW5tYXBfZW50cnk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzMyI+Mi40LjQgQXNzb2NpYXRpbmcgRnVuY3Rpb24gTmFtZXMgYW5kIEJpbmRpbmdzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI0OSI+PENPREU+cmxfYWRkX3VuZG88L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzNCI+Mi40LjUgQWxsb3dpbmcgVW5kb2luZzwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyODYiPjxDT0RFPnJsX2FscGhhYmV0aWM8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzOSI+Mi40LjEwIFV0aWxpdHkgRnVuY3Rpb25zPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE5MCI+cmxfYWxyZWFkeV9wcm9tcHRlZDwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzI2Ij5ybF9hdHRlbXB0ZWRfY29tcGxldGlvbl9mdW5jdGlvbjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDciPjIuNi4zIENvbXBsZXRpb24gVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDM1MCI+cmxfYXR0ZW1wdGVkX2NvbXBsZXRpb25fb3ZlcjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDciPjIuNi4zIENvbXBsZXRpb24gVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMzNCI+cmxfYmFzaWNfcXVvdGVfY2hhcmFjdGVyczwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDciPjIuNi4zIENvbXBsZXRpb24gVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMzMyI+cmxfYmFzaWNfd29yZF9icmVha19jaGFyYWN0ZXJzPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjQ3Ij48Q09ERT5ybF9iZWdpbl91bmRvX2dyb3VwPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzQiPjIuNC41IEFsbG93aW5nIFVuZG9pbmc8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjIzIj48Q09ERT5ybF9iaW5kX2tleTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzMyIj4yLjQuMyBCaW5kaW5nIEtleXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjI1Ij48Q09ERT5ybF9iaW5kX2tleV9pZl91bmJvdW5kPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzIiPjIuNC4zIEJpbmRpbmcgS2V5czwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMjYiPjxDT0RFPnJsX2JpbmRfa2V5X2lmX3VuYm91bmRfaW5fbWFwPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzIiPjIuNC4zIEJpbmRpbmcgS2V5czwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMjQiPjxDT0RFPnJsX2JpbmRfa2V5X2luX21hcDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzMyIj4yLjQuMyBCaW5kaW5nIEtleXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjMxIj48Q09ERT5ybF9iaW5kX2tleXNlcTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzMyIj4yLjQuMyBCaW5kaW5nIEtleXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjM0Ij48Q09ERT5ybF9iaW5kX2tleXNlcV9pZl91bmJvdW5kPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzIiPjIuNC4zIEJpbmRpbmcgS2V5czwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMzUiPjxDT0RFPnJsX2JpbmRfa2V5c2VxX2lmX3VuYm91bmRfaW5fbWFwPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzIiPjIuNC4zIEJpbmRpbmcgS2V5czwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMzIiPjxDT0RFPnJsX2JpbmRfa2V5c2VxX2luX21hcDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzMyIj4yLjQuMyBCaW5kaW5nIEtleXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjA4Ij5ybF9iaW5kaW5nX2tleW1hcDwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzAxIj48Q09ERT5ybF9jYWxsYmFja19oYW5kbGVyX2luc3RhbGw8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0MSI+Mi40LjEyIEFsdGVybmF0ZSBJbnRlcmZhY2U8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzAzIj48Q09ERT5ybF9jYWxsYmFja19oYW5kbGVyX3JlbW92ZTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQxIj4yLjQuMTIgQWx0ZXJuYXRlIEludGVyZmFjZTwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzMDIiPjxDT0RFPnJsX2NhbGxiYWNrX3JlYWRfY2hhcjwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQxIj4yLjQuMTIgQWx0ZXJuYXRlIEludGVyZmFjZTwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzMDQiPnJsX2NhdGNoX3NpZ25hbHM8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQzIj4yLjUgUmVhZGxpbmUgU2lnbmFsIEhhbmRsaW5nPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMwNSI+cmxfY2F0Y2hfc2lnd2luY2g8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQzIj4yLjUgUmVhZGxpbmUgU2lnbmFsIEhhbmRsaW5nPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMyOSI+cmxfY2hhcl9pc19xdW90ZWRfcDwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDciPjIuNi4zIENvbXBsZXRpb24gVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMwNiI+PENPREU+cmxfY2xlYW51cF9hZnRlcl9zaWduYWw8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0MyI+Mi41IFJlYWRsaW5lIFNpZ25hbCBIYW5kbGluZzwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNjEiPjxDT0RFPnJsX2NsZWFyX21lc3NhZ2U8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzNSI+Mi40LjYgUmVkaXNwbGF5PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI3NSI+PENPREU+cmxfY2xlYXJfcGVuZGluZ19pbnB1dDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM3Ij4yLjQuOCBDaGFyYWN0ZXIgSW5wdXQ8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzE0Ij48Q09ERT5ybF9jbGVhcl9zaWduYWxzPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDMiPjIuNSBSZWFkbGluZSBTaWduYWwgSGFuZGxpbmc8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzE1Ij48Q09ERT5ybF9jb21wbGV0ZTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ1Ij4yLjYuMSBIb3cgQ29tcGxldGluZyBXb3JrczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzMTgiPjxDT0RFPnJsX2NvbXBsZXRlPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDYiPjIuNi4yIENvbXBsZXRpb24gRnVuY3Rpb25zPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMxNyI+PENPREU+cmxfY29tcGxldGVfaW50ZXJuYWw8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NiI+Mi42LjIgQ29tcGxldGlvbiBGdW5jdGlvbnM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzM3Ij5ybF9jb21wbGV0ZXJfcXVvdGVfY2hhcmFjdGVyczwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDciPjIuNi4zIENvbXBsZXRpb24gVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMzNSI+cmxfY29tcGxldGVyX3dvcmRfYnJlYWtfY2hhcmFjdGVyczwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDciPjIuNi4zIENvbXBsZXRpb24gVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDM0MSI+cmxfY29tcGxldGlvbl9hcHBlbmRfY2hhcmFjdGVyPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzMyIj5ybF9jb21wbGV0aW9uX2Rpc3BsYXlfbWF0Y2hlc19ob29rPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzE2Ij5ybF9jb21wbGV0aW9uX2VudHJ5X2Z1bmN0aW9uPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NSI+Mi42LjEgSG93IENvbXBsZXRpbmcgV29ya3M8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzI1Ij5ybF9jb21wbGV0aW9uX2VudHJ5X2Z1bmN0aW9uPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzQ1Ij5ybF9jb21wbGV0aW9uX2ZvdW5kX3F1b3RlPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzQ2Ij5ybF9jb21wbGV0aW9uX21hcmtfc3ltbGlua19kaXJzPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzIyIj48Q09ERT5ybF9jb21wbGV0aW9uX21hdGNoZXM8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NiI+Mi42LjIgQ29tcGxldGlvbiBGdW5jdGlvbnM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzIxIj48Q09ERT5ybF9jb21wbGV0aW9uX21vZGU8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NiI+Mi42LjIgQ29tcGxldGlvbiBGdW5jdGlvbnM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzQwIj5ybF9jb21wbGV0aW9uX3F1ZXJ5X2l0ZW1zPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzQzIj5ybF9jb21wbGV0aW9uX3F1b3RlX2NoYXJhY3RlcjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDciPjIuNi4zIENvbXBsZXRpb24gVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDM0MiI+cmxfY29tcGxldGlvbl9zdXBwcmVzc19hcHBlbmQ8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ3Ij4yLjYuMyBDb21wbGV0aW9uIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzNDQiPnJsX2NvbXBsZXRpb25fc3VwcHJlc3NfcXVvdGU8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ3Ij4yLjYuMyBDb21wbGV0aW9uIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzNTEiPnJsX2NvbXBsZXRpb25fdHlwZTwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDciPjIuNi4zIENvbXBsZXRpb24gVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMzNiI+cmxfY29tcGxldGlvbl93b3JkX2JyZWFrX2hvb2s8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ3Ij4yLjYuMyBDb21wbGV0aW9uIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMTYiPjxDT0RFPnJsX2NvcHlfa2V5bWFwPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzEiPjIuNC4yIFNlbGVjdGluZyBhIEtleW1hcDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNjgiPjxDT0RFPnJsX2NvcHlfdGV4dDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM2Ij4yLjQuNyBNb2RpZnlpbmcgVGV4dDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNTgiPjxDT0RFPnJsX2NybGY8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzNSI+Mi40LjYgUmVkaXNwbGF5PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI2NyI+PENPREU+cmxfZGVsZXRlX3RleHQ8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzNiI+Mi40LjcgTW9kaWZ5aW5nIFRleHQ8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjA2Ij5ybF9kZXByZXBfdGVybV9mdW5jdGlvbjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjc4Ij48Q09ERT5ybF9kZXByZXBfdGVybWluYWw8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzOCI+Mi40LjkgVGVybWluYWwgTWFuYWdlbWVudDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyODUiPjxDT0RFPnJsX2Rpbmc8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzOSI+Mi40LjEwIFV0aWxpdHkgRnVuY3Rpb25zPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMzMSI+cmxfZGlyZWN0b3J5X2NvbXBsZXRpb25faG9vazwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDciPjIuNi4zIENvbXBsZXRpb24gVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIxOCI+PENPREU+cmxfZGlzY2FyZF9rZXltYXA8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzMSI+Mi40LjIgU2VsZWN0aW5nIGEgS2V5bWFwPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE4NyI+cmxfZGlzcGF0Y2hpbmc8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzI4Ij4yLjMgUmVhZGxpbmUgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI4NyI+PENPREU+cmxfZGlzcGxheV9tYXRjaF9saXN0PC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzkiPjIuNC4xMCBVdGlsaXR5IEZ1bmN0aW9uczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNTEiPjxDT0RFPnJsX2RvX3VuZG88L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzNCI+Mi40LjUgQWxsb3dpbmcgVW5kb2luZzwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxODQiPnJsX2RvbmU8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzI4Ij4yLjMgUmVhZGxpbmUgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIxMyI+cmxfZWRpdGluZ19tb2RlPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyOCI+Mi4zIFJlYWRsaW5lIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxODIiPnJsX2VuZDwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjQ4Ij48Q09ERT5ybF9lbmRfdW5kb19ncm91cDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM0Ij4yLjQuNSBBbGxvd2luZyBVbmRvaW5nPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE4OCI+cmxfZXJhc2VfZW1wdHlfbGluZTwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjAyIj5ybF9ldmVudF9ob29rPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyOCI+Mi4zIFJlYWRsaW5lIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNzQiPjxDT0RFPnJsX2V4ZWN1dGVfbmV4dDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM3Ij4yLjQuOCBDaGFyYWN0ZXIgSW5wdXQ8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjA3Ij5ybF9leGVjdXRpbmdfa2V5bWFwPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyOCI+Mi4zIFJlYWRsaW5lIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMDkiPnJsX2V4ZWN1dGluZ19tYWNybzwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjY0Ij48Q09ERT5ybF9leHBhbmRfcHJvbXB0PC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzUiPjIuNC42IFJlZGlzcGxheTwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMTEiPnJsX2V4cGxpY2l0X2FyZzwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjgzIj48Q09ERT5ybF9leHRlbmRfbGluZV9idWZmZXI8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzOSI+Mi40LjEwIFV0aWxpdHkgRnVuY3Rpb25zPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDM0OCI+cmxfZmlsZW5hbWVfY29tcGxldGlvbl9kZXNpcmVkPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzIzIj48Q09ERT5ybF9maWxlbmFtZV9jb21wbGV0aW9uX2Z1bmN0aW9uPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDYiPjIuNi4yIENvbXBsZXRpb24gRnVuY3Rpb25zPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMyOCI+cmxfZmlsZW5hbWVfZGVxdW90aW5nX2Z1bmN0aW9uPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzM4Ij5ybF9maWxlbmFtZV9xdW90ZV9jaGFyYWN0ZXJzPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzQ5Ij5ybF9maWxlbmFtZV9xdW90aW5nX2Rlc2lyZWQ8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ3Ij4yLjYuMyBDb21wbGV0aW9uIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzMjciPnJsX2ZpbGVuYW1lX3F1b3RpbmdfZnVuY3Rpb248L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ3Ij4yLjYuMyBDb21wbGV0aW9uIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNTQiPjxDT0RFPnJsX2ZvcmNlZF91cGRhdGVfZGlzcGxheTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM1Ij4yLjQuNiBSZWRpc3BsYXk8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzA3Ij48Q09ERT5ybF9mcmVlX2xpbmVfc3RhdGU8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0MyI+Mi41IFJlYWRsaW5lIFNpZ25hbCBIYW5kbGluZzwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNTAiPjxDT0RFPnJsX2ZyZWVfdW5kb19saXN0PC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzQiPjIuNC41IEFsbG93aW5nIFVuZG9pbmc8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjQzIj48Q09ERT5ybF9mdW5jdGlvbl9kdW1wZXI8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzMyI+Mi40LjQgQXNzb2NpYXRpbmcgRnVuY3Rpb24gTmFtZXMgYW5kIEJpbmRpbmdzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI0MCI+PENPREU+cmxfZnVuY3Rpb25fb2Zfa2V5c2VxPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzMiPjIuNC40IEFzc29jaWF0aW5nIEZ1bmN0aW9uIE5hbWVzIGFuZCBCaW5kaW5nczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNDUiPjxDT0RFPnJsX2Z1bm1hcF9uYW1lczwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzMzIj4yLjQuNCBBc3NvY2lhdGluZyBGdW5jdGlvbiBOYW1lcyBhbmQgQmluZGluZ3M8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjM2Ij48Q09ERT5ybF9nZW5lcmljX2JpbmQ8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzMiI+Mi40LjMgQmluZGluZyBLZXlzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIxOSI+PENPREU+cmxfZ2V0X2tleW1hcDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzMxIj4yLjQuMiBTZWxlY3RpbmcgYSBLZXltYXA8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjIxIj48Q09ERT5ybF9nZXRfa2V5bWFwX2J5X25hbWU8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzMSI+Mi40LjIgU2VsZWN0aW5nIGEgS2V5bWFwPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIyMiI+PENPREU+cmxfZ2V0X2tleW1hcF9uYW1lPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzEiPjIuNC4yIFNlbGVjdGluZyBhIEtleW1hcDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzMTEiPjxDT0RFPnJsX2dldF9zY3JlZW5fc2l6ZTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQzIj4yLjUgUmVhZGxpbmUgU2lnbmFsIEhhbmRsaW5nPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMwMCI+PENPREU+cmxfZ2V0X3Rlcm1jYXA8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0MCI+Mi40LjExIE1pc2NlbGxhbmVvdXMgRnVuY3Rpb25zPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI3MiI+PENPREU+cmxfZ2V0YzwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM3Ij4yLjQuOCBDaGFyYWN0ZXIgSW5wdXQ8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjAzIj5ybF9nZXRjX2Z1bmN0aW9uPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyOCI+Mi4zIFJlYWRsaW5lIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxOTMiPnJsX2dudV9yZWFkbGluZV9wPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyOCI+Mi4zIFJlYWRsaW5lIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzNDciPnJsX2lnbm9yZV9jb21wbGV0aW9uX2R1cGxpY2F0ZXM8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ3Ij4yLjYuMyBDb21wbGV0aW9uIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzMzAiPnJsX2lnbm9yZV9zb21lX2NvbXBsZXRpb25zX2Z1bmN0aW9uPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NyI+Mi42LjMgQ29tcGxldGlvbiBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzUyIj5ybF9pbmhpYml0X2NvbXBsZXRpb248L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ3Ij4yLjYuMyBDb21wbGV0aW9uIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyODQiPjxDT0RFPnJsX2luaXRpYWxpemU8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzOSI+Mi40LjEwIFV0aWxpdHkgRnVuY3Rpb25zPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMyMCI+PENPREU+cmxfaW5zZXJ0X2NvbXBsZXRpb25zPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDYiPjIuNi4yIENvbXBsZXRpb24gRnVuY3Rpb25zPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI2NiI+PENPREU+cmxfaW5zZXJ0X3RleHQ8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzNiI+Mi40LjcgTW9kaWZ5aW5nIFRleHQ8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTk2Ij5ybF9pbnN0cmVhbTwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjQxIj48Q09ERT5ybF9pbnZva2luZ19rZXlzZXFzPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzMiPjIuNC40IEFzc29jaWF0aW5nIEZ1bmN0aW9uIE5hbWVzIGFuZCBCaW5kaW5nczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNDIiPjxDT0RFPnJsX2ludm9raW5nX2tleXNlcXNfaW5fbWFwPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzMiPjIuNC40IEFzc29jaWF0aW5nIEZ1bmN0aW9uIE5hbWVzIGFuZCBCaW5kaW5nczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNjkiPjxDT0RFPnJsX2tpbGxfdGV4dDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM2Ij4yLjQuNyBNb2RpZnlpbmcgVGV4dDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxOTkiPnJsX2xhc3RfZnVuYzwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTkxIj5ybF9saWJyYXJ5X3ZlcnNpb248L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzI4Ij4yLjMgUmVhZGxpbmUgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE4MCI+cmxfbGluZV9idWZmZXI8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzI4Ij4yLjMgUmVhZGxpbmUgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI0NCI+PENPREU+cmxfbGlzdF9mdW5tYXBfbmFtZXM8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzMyI+Mi40LjQgQXNzb2NpYXRpbmcgRnVuY3Rpb24gTmFtZXMgYW5kIEJpbmRpbmdzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI5NCI+PENPREU+cmxfbWFjcm9fYmluZDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQwIj4yLjQuMTEgTWlzY2VsbGFuZW91cyBGdW5jdGlvbnM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjk1Ij48Q09ERT5ybF9tYWNyb19kdW1wZXI8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0MCI+Mi40LjExIE1pc2NlbGxhbmVvdXMgRnVuY3Rpb25zPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIxNSI+PENPREU+cmxfbWFrZV9iYXJlX2tleW1hcDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzMxIj4yLjQuMiBTZWxlY3RpbmcgYSBLZXltYXA8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjE3Ij48Q09ERT5ybF9tYWtlX2tleW1hcDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzMxIj4yLjQuMiBTZWxlY3RpbmcgYSBLZXltYXA8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTgzIj5ybF9tYXJrPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyOCI+Mi4zIFJlYWRsaW5lIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNjAiPjxDT0RFPnJsX21lc3NhZ2U8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzNSI+Mi40LjYgUmVkaXNwbGF5PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI1MiI+PENPREU+cmxfbW9kaWZ5aW5nPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzQiPjIuNC41IEFsbG93aW5nIFVuZG9pbmc8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjM5Ij48Q09ERT5ybF9uYW1lZF9mdW5jdGlvbjwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzMzIj4yLjQuNCBBc3NvY2lhdGluZyBGdW5jdGlvbiBOYW1lcyBhbmQgQmluZGluZ3M8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTg1Ij5ybF9udW1fY2hhcnNfdG9fcmVhZDwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjEyIj5ybF9udW1lcmljX2FyZzwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjU1Ij48Q09ERT5ybF9vbl9uZXdfbGluZTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM1Ij4yLjQuNiBSZWRpc3BsYXk8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjU2Ij48Q09ERT5ybF9vbl9uZXdfbGluZV93aXRoX3Byb21wdDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM1Ij4yLjQuNiBSZWRpc3BsYXk8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTk3Ij5ybF9vdXRzdHJlYW08L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzI4Ij4yLjMgUmVhZGxpbmUgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIzNyI+PENPREU+cmxfcGFyc2VfYW5kX2JpbmQ8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzMiI+Mi40LjMgQmluZGluZyBLZXlzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE4NiI+cmxfcGVuZGluZ19pbnB1dDwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTgxIj5ybF9wb2ludDwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzE5Ij48Q09ERT5ybF9wb3NzaWJsZV9jb21wbGV0aW9uczwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ2Ij4yLjYuMiBDb21wbGV0aW9uIEZ1bmN0aW9uczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMDEiPnJsX3ByZV9pbnB1dF9ob29rPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyOCI+Mi4zIFJlYWRsaW5lIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxOTgiPnJsX3ByZWZlcl9lbnZfd2luc2l6ZTwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjA1Ij5ybF9wcmVwX3Rlcm1fZnVuY3Rpb248L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzI4Ij4yLjMgUmVhZGxpbmUgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI3NyI+PENPREU+cmxfcHJlcF90ZXJtaW5hbDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM4Ij4yLjQuOSBUZXJtaW5hbCBNYW5hZ2VtZW50PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE4OSI+cmxfcHJvbXB0PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyOCI+Mi4zIFJlYWRsaW5lIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNzAiPjxDT0RFPnJsX3B1c2hfbWFjcm9faW5wdXQ8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzNiI+Mi40LjcgTW9kaWZ5aW5nIFRleHQ8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjM4Ij48Q09ERT5ybF9yZWFkX2luaXRfZmlsZTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzMyIj4yLjQuMyBCaW5kaW5nIEtleXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjcxIj48Q09ERT5ybF9yZWFkX2tleTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM3Ij4yLjQuOCBDaGFyYWN0ZXIgSW5wdXQ8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTk1Ij5ybF9yZWFkbGluZV9uYW1lPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyOCI+Mi4zIFJlYWRsaW5lIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMTAiPnJsX3JlYWRsaW5lX3N0YXRlPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyOCI+Mi4zIFJlYWRsaW5lIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxOTIiPnJsX3JlYWRsaW5lX3ZlcnNpb248L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzI4Ij4yLjMgUmVhZGxpbmUgVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI1MyI+PENPREU+cmxfcmVkaXNwbGF5PC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzUiPjIuNC42IFJlZGlzcGxheTwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMDQiPnJsX3JlZGlzcGxheV9mdW5jdGlvbjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjgyIj48Q09ERT5ybF9yZXBsYWNlX2xpbmU8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzOSI+Mi40LjEwIFV0aWxpdHkgRnVuY3Rpb25zPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMwOCI+PENPREU+cmxfcmVzZXRfYWZ0ZXJfc2lnbmFsPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDMiPjIuNSBSZWFkbGluZSBTaWduYWwgSGFuZGxpbmc8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjU3Ij48Q09ERT5ybF9yZXNldF9saW5lX3N0YXRlPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzUiPjIuNC42IFJlZGlzcGxheTwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzMTIiPjxDT0RFPnJsX3Jlc2V0X3NjcmVlbl9zaXplPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDMiPjIuNSBSZWFkbGluZSBTaWduYWwgSGFuZGxpbmc8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjgxIj48Q09ERT5ybF9yZXNldF90ZXJtaW5hbDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM4Ij4yLjQuOSBUZXJtaW5hbCBNYW5hZ2VtZW50PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMwOSI+PENPREU+cmxfcmVzaXplX3Rlcm1pbmFsPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDMiPjIuNSBSZWFkbGluZSBTaWduYWwgSGFuZGxpbmc8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjYzIj48Q09ERT5ybF9yZXN0b3JlX3Byb21wdDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM1Ij4yLjQuNiBSZWRpc3BsYXk8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjYyIj48Q09ERT5ybF9zYXZlX3Byb21wdDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM1Ij4yLjQuNiBSZWRpc3BsYXk8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjMzIj48Q09ERT5ybF9zZXRfa2V5PC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzIiPjIuNC4zIEJpbmRpbmcgS2V5czwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNzYiPjxDT0RFPnJsX3NldF9rZXlib2FyZF9pbnB1dF90aW1lb3V0PC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzciPjIuNC44IENoYXJhY3RlciBJbnB1dDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMjAiPjxDT0RFPnJsX3NldF9rZXltYXA8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzMSI+Mi40LjIgU2VsZWN0aW5nIGEgS2V5bWFwPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI5OSI+PENPREU+cmxfc2V0X3BhcmVuX2JsaW5rX3RpbWVvdXQ8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0MCI+Mi40LjExIE1pc2NlbGxhbmVvdXMgRnVuY3Rpb25zPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI2NSI+PENPREU+cmxfc2V0X3Byb21wdDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzM1Ij4yLjQuNiBSZWRpc3BsYXk8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMzEwIj48Q09ERT5ybF9zZXRfc2NyZWVuX3NpemU8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0MyI+Mi41IFJlYWRsaW5lIFNpZ25hbCBIYW5kbGluZzwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzMTMiPjxDT0RFPnJsX3NldF9zaWduYWxzPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDMiPjIuNSBSZWFkbGluZSBTaWduYWwgSGFuZGxpbmc8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjU5Ij48Q09ERT5ybF9zaG93X2NoYXI8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzNSI+Mi40LjYgUmVkaXNwbGF5PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDMzOSI+cmxfc3BlY2lhbF9wcmVmaXhlczwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDciPjIuNi4zIENvbXBsZXRpb24gVmFyaWFibGVzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIwMCI+cmxfc3RhcnR1cF9ob29rPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyOCI+Mi4zIFJlYWRsaW5lIFZhcmlhYmxlczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNzMiPjxDT0RFPnJsX3N0dWZmX2NoYXI8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzNyI+Mi40LjggQ2hhcmFjdGVyIElucHV0PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE5NCI+cmxfdGVybWluYWxfbmFtZTwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjgiPjIuMyBSZWFkbGluZSBWYXJpYWJsZXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjc5Ij48Q09ERT5ybF90dHlfc2V0X2RlZmF1bHRfYmluZGluZ3M8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzOCI+Mi40LjkgVGVybWluYWwgTWFuYWdlbWVudDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyODAiPjxDT0RFPnJsX3R0eV91bnNldF9kZWZhdWx0X2JpbmRpbmdzPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzgiPjIuNC45IFRlcm1pbmFsIE1hbmFnZW1lbnQ8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjMwIj48Q09ERT5ybF91bmJpbmRfY29tbWFuZF9pbl9tYXA8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMzMiI+Mi40LjMgQmluZGluZyBLZXlzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDIyOSI+PENPREU+cmxfdW5iaW5kX2Z1bmN0aW9uX2luX21hcDwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzMyIj4yLjQuMyBCaW5kaW5nIEtleXM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjI3Ij48Q09ERT5ybF91bmJpbmRfa2V5PC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzIiPjIuNC4zIEJpbmRpbmcgS2V5czwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyMjgiPjxDT0RFPnJsX3VuYmluZF9rZXlfaW5fbWFwPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMzIiPjIuNC4zIEJpbmRpbmcgS2V5czwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgzMjQiPjxDT0RFPnJsX3VzZXJuYW1lX2NvbXBsZXRpb25fZnVuY3Rpb248L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0NiI+Mi42LjIgQ29tcGxldGlvbiBGdW5jdGlvbnM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjk2Ij48Q09ERT5ybF92YXJpYWJsZV9iaW5kPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDAiPjIuNC4xMSBNaXNjZWxsYW5lb3VzIEZ1bmN0aW9uczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyOTgiPjxDT0RFPnJsX3ZhcmlhYmxlX2R1bXBlcjwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQwIj4yLjQuMTEgTWlzY2VsbGFuZW91cyBGdW5jdGlvbnM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjk3Ij48Q09ERT5ybF92YXJpYWJsZV92YWx1ZTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQwIj4yLjQuMTEgTWlzY2VsbGFuZW91cyBGdW5jdGlvbnM8L0E+PC9URD48L1RSPgogPFRSPjxURCBDT0xTUEFOPTM+IDxIUj48L1REPjwvVFI+CiA8VFI+PFRIPjxBIE5BTUU9ImZuX1MiPjwvQT5TPC9USD48VEQ+PC9URD48VEQ+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYNzgiPjxDT0RFPnNlbGYtaW5zZXJ0IChhLCBiLCBBLCAxLCAhLCAmIzYwO3NtYWxsJiM2MjsuLi4mIzYwOy9zbWFsbCYjNjI7KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE2Ij4xLjQuMyBDb21tYW5kcyBGb3IgQ2hhbmdpbmcgVGV4dDwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg3OSI+PENPREU+c2VsZi1pbnNlcnQgKGEsIGIsIEEsIDEsICEsICYjNjA7c21hbGwmIzYyOy4uLiYjNjA7L3NtYWxsJiM2MjspPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTYiPjEuNC4zIENvbW1hbmRzIEZvciBDaGFuZ2luZyBUZXh0PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE1NCI+PENPREU+c2V0LW1hcmsgKEMtQCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE1NSI+PENPREU+c2V0LW1hcmsgKEMtQCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI0Ij5zaG93LWFsbC1pZi1hbWJpZ3VvdXM8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzEwIj4xLjMuMSBSZWFkbGluZSBJbml0IEZpbGUgU3ludGF4PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEzNCI+PENPREU+c3RhcnQta2JkLW1hY3JvIChDLXggKCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMCI+MS40LjcgS2V5Ym9hcmQgTWFjcm9zPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEzNSI+PENPREU+c3RhcnQta2JkLW1hY3JvIChDLXggKCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMCI+MS40LjcgS2V5Ym9hcmQgTWFjcm9zPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDgwIj48Q09ERT5zZWxmLWluc2VydCAoYSwgYiwgQSwgMSwgISwgJiM2MDtzbWFsbCYjNjI7Li4uJiM2MDsvc21hbGwmIzYyOyk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNiI+MS40LjMgQ29tbWFuZHMgRm9yIENoYW5naW5nIFRleHQ8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYODEiPjxDT0RFPnNlbGYtaW5zZXJ0IChhLCBiLCBBLCAxLCAhLCAmIzYwO3NtYWxsJiM2MjsuLi4mIzYwOy9zbWFsbCYjNjI7KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE2Ij4xLjQuMyBDb21tYW5kcyBGb3IgQ2hhbmdpbmcgVGV4dDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNTgiPjxDT0RFPnNldC1tYXJrIChDLUApPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjEiPjEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNTkiPjxDT0RFPnNldC1tYXJrIChDLUApPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjEiPjEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kczwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNSI+c2hvdy1hbGwtaWYtYW1iaWd1b3VzPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxMCI+MS4zLjEgUmVhZGxpbmUgSW5pdCBGaWxlIFN5bnRheDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgyNiI+c2hvdy1hbGwtaWYtdW5tb2RpZmllZDwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTAiPjEuMy4xIFJlYWRsaW5lIEluaXQgRmlsZSBTeW50YXg8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTM4Ij48Q09ERT5zdGFydC1rYmQtbWFjcm8gKEMteCAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzIwIj4xLjQuNyBLZXlib2FyZCBNYWNyb3M8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTM5Ij48Q09ERT5zdGFydC1rYmQtbWFjcm8gKEMteCAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzIwIj4xLjQuNyBLZXlib2FyZCBNYWNyb3M8L0E+PC9URD48L1RSPgogPFRSPjxURCBDT0xTUEFOPTM+IDxIUj48L1REPjwvVFI+CiA8VFI+PFRIPjxBIE5BTUU9ImZuX1QiPjwvQT5UPC9USD48VEQ+PC9URD48VEQ+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYNzYiPjxDT0RFPnRhYi1pbnNlcnQgKE0tPEtCRD5UQUI8L0tCRD4pPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTYiPjEuNC4zIENvbW1hbmRzIEZvciBDaGFuZ2luZyBUZXh0PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDc3Ij48Q09ERT50YWItaW5zZXJ0IChNLTxLQkQ+VEFCPC9LQkQ+KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE2Ij4xLjQuMyBDb21tYW5kcyBGb3IgQ2hhbmdpbmcgVGV4dDwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNTIiPjxDT0RFPnRpbGRlLWV4cGFuZCAoTS1+KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzIxIj4xLjQuOCBTb21lIE1pc2NlbGxhbmVvdXMgQ29tbWFuZHM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTUzIj48Q09ERT50aWxkZS1leHBhbmQgKE0tfik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDgwIj48Q09ERT50cmFuc3Bvc2UtY2hhcnMgKEMtdCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNiI+MS40LjMgQ29tbWFuZHMgRm9yIENoYW5naW5nIFRleHQ8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYODEiPjxDT0RFPnRyYW5zcG9zZS1jaGFycyAoQy10KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE2Ij4xLjQuMyBDb21tYW5kcyBGb3IgQ2hhbmdpbmcgVGV4dDwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg4MiI+PENPREU+dHJhbnNwb3NlLXdvcmRzIChNLXQpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTYiPjEuNC4zIENvbW1hbmRzIEZvciBDaGFuZ2luZyBUZXh0PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDgzIj48Q09ERT50cmFuc3Bvc2Utd29yZHMgKE0tdCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNiI+MS40LjMgQ29tbWFuZHMgRm9yIENoYW5naW5nIFRleHQ8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYNzgiPjxDT0RFPnRhYi1pbnNlcnQgKE0tPEtCRD5UQUI8L0tCRD4pPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTYiPjEuNC4zIENvbW1hbmRzIEZvciBDaGFuZ2luZyBUZXh0PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDc5Ij48Q09ERT50YWItaW5zZXJ0IChNLTxLQkQ+VEFCPC9LQkQ+KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE2Ij4xLjQuMyBDb21tYW5kcyBGb3IgQ2hhbmdpbmcgVGV4dDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNTYiPjxDT0RFPnRpbGRlLWV4cGFuZCAoTS1+KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzIxIj4xLjQuOCBTb21lIE1pc2NlbGxhbmVvdXMgQ29tbWFuZHM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTU3Ij48Q09ERT50aWxkZS1leHBhbmQgKE0tfik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDgyIj48Q09ERT50cmFuc3Bvc2UtY2hhcnMgKEMtdCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNiI+MS40LjMgQ29tbWFuZHMgRm9yIENoYW5naW5nIFRleHQ8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYODMiPjxDT0RFPnRyYW5zcG9zZS1jaGFycyAoQy10KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE2Ij4xLjQuMyBDb21tYW5kcyBGb3IgQ2hhbmdpbmcgVGV4dDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg4NCI+PENPREU+dHJhbnNwb3NlLXdvcmRzIChNLXQpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTYiPjEuNC4zIENvbW1hbmRzIEZvciBDaGFuZ2luZyBUZXh0PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDg1Ij48Q09ERT50cmFuc3Bvc2Utd29yZHMgKE0tdCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNiI+MS40LjMgQ29tbWFuZHMgRm9yIENoYW5naW5nIFRleHQ8L0E+PC9URD48L1RSPgogPFRSPjxURCBDT0xTUEFOPTM+IDxIUj48L1REPjwvVFI+CiA8VFI+PFRIPjxBIE5BTUU9ImZuX1UiPjwvQT5VPC9USD48VEQ+PC9URD48VEQ+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTQ4Ij48Q09ERT51bmRvIChDLV8gb3IgQy14IEMtdSk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE0OSI+PENPREU+dW5kbyAoQy1fIG9yIEMteCBDLXUpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjEiPjEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kczwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMjIiPjxDT0RFPnVuaXZlcnNhbC1hcmd1bWVudCAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE4Ij4xLjQuNSBTcGVjaWZ5aW5nIE51bWVyaWMgQXJndW1lbnRzPC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEyMyI+PENPREU+dW5pdmVyc2FsLWFyZ3VtZW50ICgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTgiPjEuNC41IFNwZWNpZnlpbmcgTnVtZXJpYyBBcmd1bWVudHM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYOTYiPjxDT0RFPnVuaXgtbGluZS1kaXNjYXJkIChDLXUpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTciPjEuNC40IEtpbGxpbmcgQW5kIFlhbmtpbmc8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYOTciPjxDT0RFPnVuaXgtbGluZS1kaXNjYXJkIChDLXUpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTciPjEuNC40IEtpbGxpbmcgQW5kIFlhbmtpbmc8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTA0Ij48Q09ERT51bml4LXdvcmQtcnVib3V0IChDLXcpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTciPjEuNC40IEtpbGxpbmcgQW5kIFlhbmtpbmc8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTA1Ij48Q09ERT51bml4LXdvcmQtcnVib3V0IChDLXcpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTciPjEuNC40IEtpbGxpbmcgQW5kIFlhbmtpbmc8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYODQiPjxDT0RFPnVwY2FzZS13b3JkIChNLXUpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTYiPjEuNC4zIENvbW1hbmRzIEZvciBDaGFuZ2luZyBUZXh0PC9BPjwvVEQ+PC9UUj4KLTxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDg1Ij48Q09ERT51cGNhc2Utd29yZCAoTS11KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE2Ij4xLjQuMyBDb21tYW5kcyBGb3IgQ2hhbmdpbmcgVGV4dDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxNTIiPjxDT0RFPnVuZG8gKEMtXyBvciBDLXggQy11KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzIxIj4xLjQuOCBTb21lIE1pc2NlbGxhbmVvdXMgQ29tbWFuZHM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTUzIj48Q09ERT51bmRvIChDLV8gb3IgQy14IEMtdSk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEyNiI+PENPREU+dW5pdmVyc2FsLWFyZ3VtZW50ICgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTgiPjEuNC41IFNwZWNpZnlpbmcgTnVtZXJpYyBBcmd1bWVudHM8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTI3Ij48Q09ERT51bml2ZXJzYWwtYXJndW1lbnQgKCk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxOCI+MS40LjUgU3BlY2lmeWluZyBOdW1lcmljIEFyZ3VtZW50czwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMDgiPjxDT0RFPnVuaXgtZmlsZW5hbWUtcnVib3V0ICgpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTciPjEuNC40IEtpbGxpbmcgQW5kIFlhbmtpbmc8L0E+PC9URD48L1RSPgorPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTA5Ij48Q09ERT51bml4LWZpbGVuYW1lLXJ1Ym91dCAoKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE3Ij4xLjQuNCBLaWxsaW5nIEFuZCBZYW5raW5nPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDk4Ij48Q09ERT51bml4LWxpbmUtZGlzY2FyZCAoQy11KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE3Ij4xLjQuNCBLaWxsaW5nIEFuZCBZYW5raW5nPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDk5Ij48Q09ERT51bml4LWxpbmUtZGlzY2FyZCAoQy11KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE3Ij4xLjQuNCBLaWxsaW5nIEFuZCBZYW5raW5nPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEwNiI+PENPREU+dW5peC13b3JkLXJ1Ym91dCAoQy13KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE3Ij4xLjQuNCBLaWxsaW5nIEFuZCBZYW5raW5nPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEwNyI+PENPREU+dW5peC13b3JkLXJ1Ym91dCAoQy13KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE3Ij4xLjQuNCBLaWxsaW5nIEFuZCBZYW5raW5nPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDg2Ij48Q09ERT51cGNhc2Utd29yZCAoTS11KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE2Ij4xLjQuMyBDb21tYW5kcyBGb3IgQ2hhbmdpbmcgVGV4dDwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg4NyI+PENPREU+dXBjYXNlLXdvcmQgKE0tdSk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNiI+MS40LjMgQ29tbWFuZHMgRm9yIENoYW5naW5nIFRleHQ8L0E+PC9URD48L1RSPgogPFRSPjxURCBDT0xTUEFOPTM+IDxIUj48L1REPjwvVFI+CiA8VFI+PFRIPjxBIE5BTUU9ImZuX1YiPjwvQT5WPC9USD48VEQ+PC9URD48VEQ+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTcyIj48Q09ERT52aS1lZGl0aW5nLW1vZGUgKE0tQy1qKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzIxIj4xLjQuOCBTb21lIE1pc2NlbGxhbmVvdXMgQ29tbWFuZHM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTczIj48Q09ERT52aS1lZGl0aW5nLW1vZGUgKE0tQy1qKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzIxIj4xLjQuOCBTb21lIE1pc2NlbGxhbmVvdXMgQ29tbWFuZHM8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMjUiPnZpc2libGUtc3RhdHM8L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzEwIj4xLjMuMSBSZWFkbGluZSBJbml0IEZpbGUgU3ludGF4PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE3NiI+PENPREU+dmktZWRpdGluZy1tb2RlIChNLUMtaik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDE3NyI+PENPREU+dmktZWRpdGluZy1tb2RlIChNLUMtaik8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMyMSI+MS40LjggU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDI3Ij52aXNpYmxlLXN0YXRzPC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxMCI+MS4zLjEgUmVhZGxpbmUgSW5pdCBGaWxlIFN5bnRheDwvQT48L1REPjwvVFI+CiA8VFI+PFREIENPTFNQQU49Mz4gPEhSPjwvVEQ+PC9UUj4KIDxUUj48VEg+PEEgTkFNRT0iZm5fWSI+PC9BPlk8L1RIPjxURD48L1REPjxURD48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMTYiPjxDT0RFPnlhbmsgKEMteSk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNyI+MS40LjQgS2lsbGluZyBBbmQgWWFua2luZzwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMTciPjxDT0RFPnlhbmsgKEMteSk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNyI+MS40LjQgS2lsbGluZyBBbmQgWWFua2luZzwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg2NiI+PENPREU+eWFuay1sYXN0LWFyZyAoTS0uIG9yIE0tXyk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNSI+MS40LjIgQ29tbWFuZHMgRm9yIE1hbmlwdWxhdGluZyBUaGUgSGlzdG9yeTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg2NyI+PENPREU+eWFuay1sYXN0LWFyZyAoTS0uIG9yIE0tXyk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNSI+MS40LjIgQ29tbWFuZHMgRm9yIE1hbmlwdWxhdGluZyBUaGUgSGlzdG9yeTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg2NCI+PENPREU+eWFuay1udGgtYXJnIChNLUMteSk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNSI+MS40LjIgQ29tbWFuZHMgRm9yIE1hbmlwdWxhdGluZyBUaGUgSGlzdG9yeTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFg2NSI+PENPREU+eWFuay1udGgtYXJnIChNLUMteSk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNSI+MS40LjIgQ29tbWFuZHMgRm9yIE1hbmlwdWxhdGluZyBUaGUgSGlzdG9yeTwvQT48L1REPjwvVFI+Ci08VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMTgiPjxDT0RFPnlhbmstcG9wIChNLXkpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTciPjEuNC40IEtpbGxpbmcgQW5kIFlhbmtpbmc8L0E+PC9URD48L1RSPgotPFRSPjxURD48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjSURYMTE5Ij48Q09ERT55YW5rLXBvcCAoTS15KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE3Ij4xLjQuNCBLaWxsaW5nIEFuZCBZYW5raW5nPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEyMCI+PENPREU+eWFuayAoQy15KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE3Ij4xLjQuNCBLaWxsaW5nIEFuZCBZYW5raW5nPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEyMSI+PENPREU+eWFuayAoQy15KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE3Ij4xLjQuNCBLaWxsaW5nIEFuZCBZYW5raW5nPC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDY4Ij48Q09ERT55YW5rLWxhc3QtYXJnIChNLS4gb3IgTS1fKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE1Ij4xLjQuMiBDb21tYW5kcyBGb3IgTWFuaXB1bGF0aW5nIFRoZSBIaXN0b3J5PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDY5Ij48Q09ERT55YW5rLWxhc3QtYXJnIChNLS4gb3IgTS1fKTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE1Ij4xLjQuMiBDb21tYW5kcyBGb3IgTWFuaXB1bGF0aW5nIFRoZSBIaXN0b3J5PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDY2Ij48Q09ERT55YW5rLW50aC1hcmcgKE0tQy15KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE1Ij4xLjQuMiBDb21tYW5kcyBGb3IgTWFuaXB1bGF0aW5nIFRoZSBIaXN0b3J5PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDY3Ij48Q09ERT55YW5rLW50aC1hcmcgKE0tQy15KTwvQ09ERT48L0E+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzE1Ij4xLjQuMiBDb21tYW5kcyBGb3IgTWFuaXB1bGF0aW5nIFRoZSBIaXN0b3J5PC9BPjwvVEQ+PC9UUj4KKzxUUj48VEQ+PC9URD48VEQgdmFsaWduPXRvcD48QSBIUkVGPSJyZWFkbGluZS5odG1sI0lEWDEyMiI+PENPREU+eWFuay1wb3AgKE0teSk8L0NPREU+PC9BPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUMxNyI+MS40LjQgS2lsbGluZyBBbmQgWWFua2luZzwvQT48L1REPjwvVFI+Cis8VFI+PFREPjwvVEQ+PFREIHZhbGlnbj10b3A+PEEgSFJFRj0icmVhZGxpbmUuaHRtbCNJRFgxMjMiPjxDT0RFPnlhbmstcG9wIChNLXkpPC9DT0RFPjwvQT48L1REPjxURCB2YWxpZ249dG9wPjxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMTciPjEuNC40IEtpbGxpbmcgQW5kIFlhbmtpbmc8L0E+PC9URD48L1RSPgogPFRSPjxURCBDT0xTUEFOPTM+IDxIUj48L1REPjwvVFI+CiA8L1RBQkxFPjxQPjwvUD48dGFibGU+PHRyPjx0aCB2YWxpZ249dG9wPkp1bXAgdG86ICZuYnNwOyA8L3RoPjx0ZD48QSBIUkVGPSJyZWFkbGluZS5odG1sI2ZuX18iIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZSI+PGI+XzwvYj48L0E+CiAgJm5ic3A7IApAQCAtNTU4Nyw3ICs2MzgwLDcgQEAKIDxUQUJMRSBDRUxMUEFERElORz0xIENFTExTUEFDSU5HPTEgQk9SREVSPTA+CiA8VFI+PFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEgxPlRhYmxlIG9mIENvbnRlbnRzPC9IMT4KQEAgLTU3MDQsOSArNjQ5NywxOSBAQAogPEJSPgogPC9VTD4KIDwvVUw+Ci08QSBOQU1FPSJUT0M0OSIgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+Q29uY2VwdCBJbmRleDwvQT4KKzxBIE5BTUU9IlRPQzQ5IiBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ5Ij5BLiBDb3B5aW5nIFRoaXMgTWFudWFsPC9BPgogPEJSPgotPEEgTkFNRT0iVE9DNTAiIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNTAiPkZ1bmN0aW9uIGFuZCBWYXJpYWJsZSBJbmRleDwvQT4KKzxVTD4KKzxBIE5BTUU9IlRPQzUwIiBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUwIj5BLjEgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlPC9BPgorPEJSPgorPFVMPgorPEEgTkFNRT0iVE9DNTEiIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNTEiPkEuMS4xIEFEREVORFVNOiBIb3cgdG8gdXNlIHRoaXMgTGljZW5zZSBmb3IgeW91ciBkb2N1bWVudHM8L0E+Cis8QlI+Cis8L1VMPgorPC9VTD4KKzxBIE5BTUU9IlRPQzUyIiBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUyIj5Db25jZXB0IEluZGV4PC9BPgorPEJSPgorPEEgTkFNRT0iVE9DNTMiIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNTMiPkZ1bmN0aW9uIGFuZCBWYXJpYWJsZSBJbmRleDwvQT4KIDxCUj4KIDwvVUw+CiA8SFIgU0laRT0xPgpAQCAtNTcxNCw3ICs2NTE3LDcgQEAKIDxUQUJMRSBDRUxMUEFERElORz0xIENFTExTUEFDSU5HPTEgQk9SREVSPTA+CiA8VFI+PFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEgxPlNob3J0IFRhYmxlIG9mIENvbnRlbnRzPC9IMT4KQEAgLTU3MjMsOSArNjUyNiwxMSBAQAogPEJSPgogPEEgTkFNRT0iVE9DMjMiIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDMjMiPjIuIFByb2dyYW1taW5nIHdpdGggR05VIFJlYWRsaW5lPC9BPgogPEJSPgotPEEgTkFNRT0iVE9DNDkiIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDNDkiPkNvbmNlcHQgSW5kZXg8L0E+Cis8QSBOQU1FPSJUT0M0OSIgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM0OSI+QS4gQ29weWluZyBUaGlzIE1hbnVhbDwvQT4KIDxCUj4KLTxBIE5BTUU9IlRPQzUwIiBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUwIj5GdW5jdGlvbiBhbmQgVmFyaWFibGUgSW5kZXg8L0E+Cis8QSBOQU1FPSJUT0M1MiIgSFJFRj0icmVhZGxpbmUuaHRtbCNTRUM1MiI+Q29uY2VwdCBJbmRleDwvQT4KKzxCUj4KKzxBIE5BTUU9IlRPQzUzIiBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUzIj5GdW5jdGlvbiBhbmQgVmFyaWFibGUgSW5kZXg8L0E+CiA8QlI+CiAKIDwvQkxPQ0tRVU9URT4KQEAgLTU3MzQsMTEgKzY1MzksMTEgQEAKIDxUQUJMRSBDRUxMUEFERElORz0xIENFTExTUEFDSU5HPTEgQk9SREVSPTA+CiA8VFI+PFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX1RvcCI+VG9wPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJlYWRsaW5lLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzQ5Ij5JbmRleDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQzUyIj5JbmRleDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJyZWFkbGluZS5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgogPC9UUj48L1RBQkxFPgogPEgxPkFib3V0IHRoaXMgZG9jdW1lbnQ8L0gxPgotVGhpcyBkb2N1bWVudCB3YXMgZ2VuZXJhdGVkIGJ5IDxJPkNoZXQgUmFtZXk8L0k+IG9uIDxJPkp1bmUsIDI3ICAyMDAyPC9JPgorVGhpcyBkb2N1bWVudCB3YXMgZ2VuZXJhdGVkIGJ5IDxJPkNoZXQgUmFtZXk8L0k+IG9uIDxJPkRlY2VtYmVyLCA2ICAyMDA1PC9JPgogdXNpbmcgPEEgSFJFRj0iaHR0cDovL3d3dy5tYXRoZW1hdGlrLnVuaS1rbC5kZS9+b2JhY2htYW4vVGV4aTJodG1sCiAiPjxJPnRleGkyaHRtbDwvST48L0E+CiA8UD48L1A+ICAKQEAgLTU5MDAsNyArNjcwNSw3IEBACiA8QlI+ICAKIDxGT05UIFNJWkU9Ii0xIj4KIFRoaXMgZG9jdW1lbnQgd2FzIGdlbmVyYXRlZAotYnkgPEk+Q2hldCBSYW1leTwvST4gb24gPEk+SnVuZSwgMjcgIDIwMDI8L0k+CitieSA8ST5DaGV0IFJhbWV5PC9JPiBvbiA8ST5EZWNlbWJlciwgNiAgMjAwNTwvST4KIHVzaW5nIDxBIEhSRUY9Imh0dHA6Ly93d3cubWF0aGVtYXRpay51bmkta2wuZGUvfm9iYWNobWFuL1RleGkyaHRtbAogIj48ST50ZXhpMmh0bWw8L0k+PC9BPgogCmRpZmYgLS1naXQgYS9yZWFkbGluZS9kb2MvcmVhZGxpbmUuaW5mbyBiL3JlYWRsaW5lL2RvYy9yZWFkbGluZS5pbmZvCmluZGV4IDU3ZGJkZmEuLjdmMmQwZjMgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL2RvYy9yZWFkbGluZS5pbmZvCisrKyBiL3JlYWRsaW5lL2RvYy9yZWFkbGluZS5pbmZvCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2RvYy9yZWFkbGluZS5wZGYgYi9yZWFkbGluZS9kb2MvcmVhZGxpbmUucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmYzJkZmUKLS0tIC9kZXYvbnVsbAorKysgYi9yZWFkbGluZS9kb2MvcmVhZGxpbmUucGRmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2RvYy9yZWFkbGluZS5wcyBiL3JlYWRsaW5lL2RvYy9yZWFkbGluZS5wcwppbmRleCAyMWNhMmNhLi40ZDhlZmM0IDEwMDY0NAotLS0gYS9yZWFkbGluZS9kb2MvcmVhZGxpbmUucHMKKysrIGIvcmVhZGxpbmUvZG9jL3JlYWRsaW5lLnBzCkBAIC0xLDE0ICsxLDE2IEBACiAlIVBTLUFkb2JlLTIuMAotJSVDcmVhdG9yOiBkdmlwcyhrKSA1Ljg2IENvcHlyaWdodCAxOTk5IFJhZGljYWwgRXllIFNvZnR3YXJlCislJUNyZWF0b3I6IGR2aXBzKGspIDUuOTJiIENvcHlyaWdodCAyMDAyIFJhZGljYWwgRXllIFNvZnR3YXJlCiAlJVRpdGxlOiByZWFkbGluZS5kdmkKLSUlUGFnZXM6IDY2CislJVBhZ2VzOiA3NAogJSVQYWdlT3JkZXI6IEFzY2VuZAogJSVCb3VuZGluZ0JveDogMCAwIDYxMiA3OTIKKyUlRG9jdW1lbnRGb250czogQ01CWDEyIENNUjEwIENNVFQxMCBDTVNZMTAgQ01CWFRJMTAgQ01USTEwIENNQ1NDMTAKKyUlKyBDTVNMVFQxMCBDTVNZOSBDTVI4IENNU0wxMCBDTUJYMTAgQ01TUzEwIENNVFQ5IENNUjkgQ01USTkKICUlRW5kQ29tbWVudHMKICVEVklQU1dlYlBhZ2U6ICh3d3cucmFkaWNhbGV5ZS5jb20pCi0lRFZJUFNDb21tYW5kTGluZTogZHZpcHMgLUQgMzAwIC10IGxldHRlciAtbyByZWFkbGluZS5wcyByZWFkbGluZS5kdmkKLSVEVklQU1BhcmFtZXRlcnM6IGRwaT0zMDAsIGNvbXByZXNzZWQKLSVEVklQU1NvdXJjZTogIFRlWCBvdXRwdXQgMjAwMi4wNi4yNzoxMzU0CislRFZJUFNDb21tYW5kTGluZTogZHZpcHMgLUQgNjAwIC10IGxldHRlciAtbyByZWFkbGluZS5wcyByZWFkbGluZS5kdmkKKyVEVklQU1BhcmFtZXRlcnM6IGRwaT02MDAsIGNvbXByZXNzZWQKKyVEVklQU1NvdXJjZTogIFRlWCBvdXRwdXQgMjAwNS4xMi4wNjoxNTQ2CiAlJUJlZ2luUHJvY1NldDogdGV4Yy5wcm8KICUhCiAvVGVYRGljdCAzMDAgZGljdCBkZWYgVGVYRGljdCBiZWdpbi9Oe2RlZn1kZWYvQntiaW5kIGRlZn1OL1N7ZXhjaH1OL1h7UwpAQCAtNjcsNTEzNCArNjksOTEyMCBAQAogcm1vdmV0b31CL3l7MyAyIHJvbGwgcCBhfUIvYm9zey9TUyBzYXZlIE59Qi9lb3N7U1MgcmVzdG9yZX1CIGVuZAogCiAlJUVuZFByb2NTZXQKLVRlWERpY3QgYmVnaW4gNDAyNTg0MzEgNTIwOTkxNDYgMTAwMCAzMDAgMzAwIChyZWFkbGluZS5kdmkpCi1Ac3RhcnQKLSVEVklQU0JpdG1hcEZvbnQ6IEZhIGNtYnh0aTEwIDE0LjQgMQotL0ZhIDEgNDcgZGY8MTIwRTEyM0ZFQTdGODBBMjEyRkZBMjEzMDAxMjdFMTIzQzA5MDk3OTg4MTU+NDYKLUQgRQotJUVuZERWSVBTQml0bWFwRm9udAotJURWSVBTQml0bWFwRm9udDogRmIgY21zbDkgOSAxCi0vRmIgMSAxMjEgZGY8MzgzRkM3RTAzODA3ODM4MEVCMDIwMEVBMDM4NDEzQzhFQTAxRDhFQTAwRjA1QjdGMTIwMTEzMzgxMgotMDI0ODdFRUEwODFFMTIzODM4RkMzRkMwMTMxMDdGOEYxND4xMjAgRCBFCi0lRW5kRFZJUFNCaXRtYXBGb250Ci0lRFZJUFNCaXRtYXBGb250OiBGYyBjbXNsdHQxMCA5IDQKLS9GYyA0IDc4IGRmPEVBRkZGQzEzRkUxM0ZDMEYwMzdDOEMxND40NSBEPEVBMDFFMEVBMDdGOEVBMEUzQ0VBMUMxQ0VBMTgwRQotMTIzODEyNzBBMzEyRTBBNDEzMUNBMzEzMzhBMjEzNzBFQTcwRTAxMjcxRUEzRjgwRUExRjAwMEYxNzdDOTYxND40OAotRDwxMzQwMTNFMEVBMDFDMDEyMDMxMjBGMTIzRDEyMTExMjAxRUEwMzgwQTZFQTA3MDBBNjEyMEVFQUZGRTBBMjBCMTc3Qjk2Ci0xND5JPDM4MUY4MUY4MTNDMTM4MEZDM0UwRUEwRUMyMTNDNkEyMTNDRTEzQ0MzODFDQ0RDMDEzREQxM0Q5QTIxM0YxQTIzOAotMzhFMzgwMTMwM0E1Mzg3MDA3MDAzOEZDMEZDMEEyMTUxNzdGOTYxND43NyBEIEUKLSVFbmREVklQU0JpdG1hcEZvbnQKLSVEVklQU0JpdG1hcEZvbnQ6IEZkIGNtdHQ5IDkgNDcKLS9GZCA0NyAxMjcgZGY8MTI2MDEyRjBBRDEyNjAxMjAwQTQxMjYwMTJGMEEyMTI2MDA0MTc3ODk2MTQ+MzMKLUQ8RUEwNzFDQTVCNTEyODBBMjdFMzgwRTM4MDBBNzM4N0ZGRjgwQjVGQ0EyMzgxQzcwMDBBNTExMTc3Rjk2MTQ+MzUKLUQ8RUEwMTgwMTIwM0VBMDYwMDVBMTIxQzEyMTgxMjM4NUFBMzVBQTkxMjcwQTM3RTEyMTgxMjFDMTIwQzdFRUEwMzgwMTIwMQotMDkxRDc5OTkxND40MCBEPDEyODAxMkMwMTI2MDEyMzAxMjM4MTIxODEyMUMxMjBFQTMxMjA3QTkxMjBFQTMxMjFDMTIxODEyCi0zODEyMzAxMjYwMTJDMDEyODAwODFEN0M5OTE0Pkk8RUEwMzgwQTNFQTYzOENFQUYzOUVFQTdGRkNFQTNGRjhFQTBGRTBBMgotRUEzRkY4RUE3RkZDRUFGMzlFRUE2MzhDRUEwMzgwQTMwRjEwN0U5MjE0Pkk8MTI3MDEyRjgxMkZDQTIxMjdDMTIwQzEyMTgKLTEyMzAxMkUwMTJDMDA2MEE3OTg0MTQ+NDQgRDxFQUZGRkVBMzBGMDM3RThDMTQ+STwxMjcwMTJGOEEzMTI3MDA1MDU3OTg0Ci0xND5JPDEyMDNBMjVBNUExMjNGMTJGNzEyNDcxMjA3QUVFQTdGRjBBMjBDMTc3Qzk2MTQ+NDkKLUQ8MTMwNjEzMUUxMzNFMTNGOEVBMDFGMEVBMDNDMEVBMEY4MEVBMUYwMDEyM0MxMkY4NUE3RTEyM0MxMjFGRUEwRjgwRUEwMwotQzBFQTAxRjBFQTAwRjgxMzNFMTMxRTEzMDYwRjE1N0U5NTE0PjYwIEQ8MTJDMDEyRjA3RTEyM0U3RUVBMDc4MEVBMDNFMEVBCi0wMUYwRUEwMDc4MTMzRTEzMUUxMzNFMTM3OEVBMDFGMEVBMDNFMEVBMDc4MEVBMUYwMDEyM0UxMkY4NUExMkMwMEYxNTdFOTUKLTE0PjYyIEQ8RUExRkUwRUEzRkY4RUE3MDFDRUFFMDBFQTIxMjQwRUEwMDNDMTM3MDEzRTBFQTAxQzBFQTAzODBBNDEzMDBDNwotRkNBNDEyMDNFQTA3ODBBMkVBMDMwMDBGMTc3RTk2MTQ+STxFQTAxRTBFQTA3RjBFQTBFMzhFQTE4MUNFQTM4RkMxMjcxRUEKLTczMUUxMjc3RUFFRTBFQTdFQTc3MUNFQTczMThFQTcxRjBFQTM4RTBFQTE4MDZFQTBFMUVFQTA3RjhFQTAxRjAwRjE3N0U5NgotMTQ+STxFQTAxQzA0ODdFQTIxMzYwQTJFQTA3NzBBNEVBMDYzMEVBMEUzOEE0NDg3RUVBMUZGQ0EyRUExQzFDQTI0ODdFQTIKLTM4RkUzRjgwQTIxMTE3N0Y5NjE0Pkk8MzgwMUYxODBFQTA3RkZFQTBFMUZFQTFDMDcxMjM4RUE3MDAzQTM0OEM3RkNBNzM4Ci03MDAzODBBMzM4MzgwNzAwMTIxQ0VBMEUwRUVBMDdGQ0VBMDFGMDExMTc3Rjk2MTQ+NjcgRDwzOEZDMUY4MEEyMDA3QzEzMDAKLUVBNzYzN0E0RUE3Nzc3QTJFQTczNjdBMzEzRTdFQTcxQzdBMkVBNzAwN0E2MzhGODBGODBBMjExMTc3Rjk2MTQ+NzcKLUQ8MzhGRTNGODBBMjM4M0UwRTAwMTIzQkE0MTM4RTEyMzlBMjEzQ0VBMzEyMzhBMjEzRUUxMzZFQTQxMzNFMTJGRUEyMTExNwotN0Y5NjE0Pkk8RUFGRkUwMTNGOEVBMzgzQzEzMUM3RkE0NUIxMzNDRUEzRkY4NUJFQTM4Mzg3RkE1MTQ4MEVCMURDMEEyMzgKLUZFMEY4MEVCMDcwMDEyMTc3Rjk2MTQ+ODIgRDxFQUZGRTBBMjEyMDBCM0E3MTJGRkEyMEIxRDdGOTkxND45MwotRDxFQUZGRkVBMzBGMDM3RTdFMTQ+OTUgRDxFQTFGQzBFQTdGRjBFQTcwNzhFQTIwMThFQTAwMUNBMkVBMDdGQzEyMUZFQTNDCi0xQzEyNzAxMkUwQTNFQTcwN0MzODNGRkY4MEVBMEY4RjExMTA3RThGMTQ+OTcgRDwxMkZDQTIxMjFDQTUxM0Y4RUExREZFRUEKLTFGMDdFQTFFMDMwMDFDMTM4MEVCMDFDMEE2RUIwMzgwMDAxRTEzMDBFQTFGMEVFQTFERkNFQTBDRjgxMjE3ODA5NjE0Pkk8Ci1FQTAzRjhFQTBGRkVFQTFDMEVFQTM4MDRFQTcwMDAxMjYwMTJFMEE0MTI2MDEyNzBFQTM4MEVFQTFDMUVFQTBGRkNFQTAzRjAKLTBGMTA3RThGMTQ+STwxMzdFQTIxMzBFQTVFQTA3Q0VFQTBGRkVFQTFDM0VFQTMwMUVFQTcwMEUxMkUwQTYxMjcwRUEzMDFFCi1FQTM4M0UzODFGRUZDMEVBMDdDRjEyMTc3Rjk2MTQ+STxFQTA3RTBFQTBGRjBFQTFDMzhFQTMwMUNFQTcwMENFQUUwMEVBMgotRUFGRkZFQTJFQUUwMDAxMjYwMTI3MEVBMzgwRUVBMUMxRUVBMEZGQ0VBMDNGMDBGMTA3RThGMTQ+STwxM0ZDRUEwMUZFRUEKLTAzOEVFQTA3MDQxMzAwQTNFQTdGRkUxMkZGRUEwNzAwQUNFQUZGRjhBMjBGMTc3Rjk2MTQ+STxFQTA3Q0YzODFGRkY4MEVBCi0zODNCMzgzMDE4MDBFQTcwMUNBM0VBMzAxOEVBMzgzOEVBM0ZGMEVBMzdDMDAwNzBDN0ZDQTJFQTNGRjg2QzdFNDg3RUVBNzAKLTBGMzhFMDAzODBBNDM4NzAwNzAwRUEzQzFFRUExRkZDRUEwN0YwMTExOTdGOEYxND5JPDEyRkNBMjEyMUNBNTEzNzhFQTFECi1GRUVBMUY4NkVBMUUwNzEyMUNBQTM4RkY4RkUwQTIxMzE3ODA5NjE0Pkk8MTIwNjEyMEZBMjEyMDZDN0ZDQTRCNEZDQTIxMgotMDdBQ0VBRkZGOEEyMEQxODdDOTcxND5JPDEzNjAxM0YwQTIxMzYwMTMwMEE0RUExRkYwQTJFQTAwNzBCMkVBNDBFMEVBRTAKLUMwRUE3RjgwRUEzRjAwMEMyMDdFOTcxND5JPDEyRkNBMjEyMUNBNUVCRkY4MEEyRUIxQzAwNUI1QjVCRUExREMwRUExRkUwCi1BMkVBMUU3MEVBMUMzODEzM0MxMzFDN0YzOEZGMUY4MEEyMTExNzgwOTYxND5JPEVBRkY4MEEyMTIwM0IzRUFGRkZFQTIwRgotMTc3RTk2MTQ+STxFQUZCOEVFQUZGREYzODNDRjM4MEEyRUEzOEUzQUEzOEZFRkJFMDEzNzkxMzEwODA4RjE0Pkk8RUFGQzc4Ci1FQUZERkVFQTFGODZFQTFFMDcxMjFDQUEzOEZGOEZFMEEyMTMxMDgwOEYxND5JPEVBMDdDMEVBMUZGMEVBM0M3OEVBNzAxQwotQTJFQUUwMEVBNkVBNzAxQ0VBNzgzQ0VBM0M3OEVBMUZGMEVBMDdDMDBGMTA3RThGMTQ+STxFQUZDRjhFQUZERkVFQTFGMDcKLUVBMUUwMzAwMUMxMzgwRUIwMUMwQTZFQjAzODAwMDFFMTMwMEVBMUYwRUVBMURGQ0VBMUNGODkwQzdGQ0E2QjQ3RUEyMTIxOAotODA4RjE0Pkk8RUEwM0U3RUEwRkY3RUExQzFGRUEzMDBGMTI3MDQ4N0VBNkVBNzAwRjEyMzBFQTFDM0ZFQTBGRjdFQTA3QzcKLUVBMDAwN0E2RUIzRkUwQTIxMzE4N0Y4RjE0Pkk8RUFGRTFGRUI3RjgwRUEwRUUzMzgwRjgxMDA5MEM3RkNBMjEyMEVBOEVBCi1GRkYwQTIxMTEwN0Y4RjE0Pkk8RUEwRkQ4RUEzRkY4RUE2MDM4MTJDMEEyRUFGMDAwRUE3RjgwRUEzRkYwRUEwN0Y4RUEwMAotMUNFQTYwMDYxMkUwMTJGMEVBRjgxQ0VBRkZGOEVBQ0ZFMDBGMTA3RThGMTQ+STwxMjA2MTIwRUE0RUE3RkZDMTJGRkVBMEUKLTAwQTgxMzBFQTMxMzFDRUEwN0Y4RUEwMUYwMEYxNTdGOTQxND5JPEVBRkMzRkEyRUExQzA3QUIxMzFGMzgwRkZGRTBFQTAzCi1FNzEzMTA4MDhGMTQ+STwzOEZFM0Y4MEEyMzgzQzFFMDBFQTFDMUNBMzZDNUFBM0VBMDYzMEVBMDc3MEEzNkM1QUEzMTExMAotN0Y4RjE0Pkk8MzhGRTNGODBBMjM4NzAwNzAwRUEzODBFQTNFQTM5Q0VBM0VBMUI2QzEyMUFBM0VBMUU3Q0EyRUEwRTM4MTEKLTEwN0Y4RjE0Pkk8RUE3RTNGQTJFQTFFM0NFQTBFNzhFQTA3NzA1QjEyMDM2QzVBMTIwMzdGRUEwNzcwRUEwRTc4MTMzODQ4Ci03RTM4RkUzRjgwQTIxMTEwN0Y4RjE0Pkk8MzhGRTNGODBBMjM4MUMwRTAwNUJBMjEyMEU1QkEyMTIwNzEzMzBBMkVBMDM3MAotQTI1QjEyMDFBMjVCQTM0ODVBMTI3MzAwNzdDN0ZDMTI3RTEyM0MxMTE4N0Y4RjE0Pkk8RUEzRkZGNUFFQTcwMEUxMzFDMTMKLTM4RUEwMDcwMTNFMEVBMDFDMEVBMDM4MEVBMDcwMDEyMEVFQTFDMDcxMjM4MTI3MEI1RkNBMjEwMTA3RjhGMTQ+STxFQTFDCi0xMEVBM0YzOEVBRTdFMEVBNDFDMDBEMDQ3RDk2MTQ+MTI2IEQgRQotJUVuZERWSVBTQml0bWFwRm9udAotJURWSVBTQml0bWFwRm9udDogRmUgY210aTkgOSAxCi0vRmUgMSA0NyBkZjwxMjMwMTI3ODEyRjAxMjYwMDUwNDdDODMwQz40NiBEIEUKLSVFbmREVklQU0JpdG1hcEZvbnQKLSVEVklQU0JpdG1hcEZvbnQ6IEZmIGNtcjkgOSAzOQotL0ZmIDM5IDEyMyBkZjwxM0ZFRUEwMzgxMzgwNjAxODBFQTBFMDMzODFDMDEwMDkwQzdGQ0E1QjUxMjgwRUExQzAzQUUzOEZGCi04RkYwMTQxQTgwOTkxNT4xMiBEPEVCRkY4MEVBMDM4M0VBMDYwMzEyMEUxMjFDQTZCNUZDRUExQzAzQUUzOEZGOUZGMDE0MUEKLTgwOTkxNT5JPDEyNjAxMkYwQTIxMjcwMTIxMEEzMTIyMEEyMTI0MEEyMDQwQjdEODMwQj40NAotRDxFQUZGQzBBMjBBMDI4MDg4MEQ+STxFQTA3RTBFQTFDMzhFQTM4MUNFQTMwMENFQTcwMEVFQTYwMDZBMkVBRTAwN0FBRUEKLTYwMDZBMkVBNzAwRUVBMzAwQ0VBMzgxQ0VBMUMzOEVBMDdFMDEwMTg3Rjk3MTM+NDggRDwxMjAzNUFCNEZDMTIwN0IzQTJFQQotN0ZGODBEMTg3RDk3MTM+STxFQTBGODBFQTEwNjBFQTIwMzBFQTQwMzhFQTgwM0NFQUMwMUMxMkUwMTI0MEVBMDAzQzEzMzgKLUEyMTM3MDEzNjAxM0MwRUEwMTgwMTMwMDEyMDJFQTA0MDQxMjA4MTIxMEVBMzAwOEVBM0ZGODEyN0YxMkZGMEUxODdFOTcxMwotPkk8RUEwN0UwRUExODM4RUEyMDFDRUE2MDFFRUE3MDBFRUEyMDFFMTIwMDEzMUNBMjEzMzgxMzcwRUEwN0UwRUEwMDM4MTMKLTFDMTMwRTEzMEZBMjEyRTBBMjEyQzBFQTQwMEVFQTYwMUNFQTE4MzhFQTA3RTAxMDE4N0Y5NzEzPkk8MTMxOEEyMTMzODEzCi03ODEzRjgxM0I4RUEwMTM4MTIwMkEyMTIwNDEyMDgxMjE4MTIxMDEyMjAxMjQwMTJDMEI1RkNFQTAwMzhBNkVBMDNGRjEwMTgKLTdGOTcxMz5JPEVBMzAxOEVBM0ZGMDEzRTAxMzgwRUEyMDAwQTVFQTJGQzBFQTMwNjBFQTIwMzBFQTAwMzgxMzE4MTMxQ0EyCi0xMjQwMTJFMEEyRUE4MDE4RUE0MDM4MTMzMEVBMzBFMEVBMEY4MDBFMTg3RTk3MTM+STxFQTAxRjhFQTA3MDRFQTBDMDZFQQotMTgwRTEyMzAxMzAwMTI3MDEyNjAxMkUwRUFFM0UwRUFFNDE4RUFFODBDRUFGMDBFRUFFMDA2MTMwN0EzMTI2MEEyRUE3MDA2Ci1FQTMwMEVFQTE4MENFQTBDMzhFQTA3RTAxMDE4N0Y5NzEzPkk8MTI0MEVBN0ZGRjEzRkVBMkVBNDAwNEVBODAwODEzMTBBMgotRUEwMDIwMTM0MEEyMTM4MDEyMDExMzAwNUFBMjVBMTIwNkEyMTIwRUE1MTIwNDEwMTk3RTk4MTM+STxFQTA3RTBFQTE4MTgKLUVBMzAwQ0VBMjAwNjEyNjBBMjEyNzBFQTc4MENFQTNFMThFQTFGMzBFQTA3QzBFQTAzRTBFQTBDRjhFQTMwN0NFQTYwMUUxMwotMEZFQUMwMDcxMzAzQTNFQTYwMDJFQTIwMDRFQTE4MThFQTA3RTAxMDE4N0Y5NzEzPkk8RUEwN0UwRUExQzMwRUEzMDE4RUEKLTcwMENFQTYwMEVFQUUwMDZBMjEzMDdBMzEyNjBFQTcwMEZFQTMwMTdFQTE4MjdFQTA3QzdFQTAwMDcxMzA2MTMwRTEzMEMxMgotNzAxMzE4RUE2MDMwRUEzMDYwRUEwRjgwMTAxODdGOTcxMz5JPEVBMUZDMEVBMzg3MDdGRUExMDFDMTIwMEEyRUEwM0ZDRUEKLTFFMUMxMjM4MTI3MDEyRTAxNDgwQTIxMzNDRUE3MDVGMzgxRjhGMDAxMTEwN0Y4RjEzPjk3Ci1EPDEyRkMxMjFDQTkxM0ZDRUExRDA3MzgxRTAzODAzODFDMDFDMDEzMDAxNEUwQTZFQjAxQzAxNDgwMzgxRTAzMDBFQTE5MDYKLUVBMTBGODEzMUE4MDk5MTU+STxFQTA3RjhFQTFDMUMxMjM4RUE3MDA4MTMwMDVBQTYxMjcwMTMwNEVBMzgwOEVBMUMxOEVBCi0wN0UwMEUxMDdGOEYxMT5JPDEzM0YxMzA3QTlFQTAzRTdFQTBDMTdFQTE4MEY0ODdFMTI3MDEyRTBBNjEyNjAxMjcwNkM1QQotRUExQzM3MzgwN0M3RTAxMzFBN0Y5OTE1Pkk8RUEwN0MwRUExQzMwRUEzMDE4MTI3MEVBNjAwQzEyRTBFQUZGRkNFQUUwMDAKLUE0MTI2MEVBNzAwNEVBMzgwOEVBMUMxOEVBMDdFMDBFMTA3RjhGMTE+STxFQTAxRjBFQTA3MThFQTBFMzhFQTFDMTAxMzAwCi1BNkVBRkZDMEVBMUMwMEFFRUFGRjgwMEQxQTgwOTkwQz5JPEVBMEZDRjM4MTg3MTgwMzgzMDMwMDBFQTcwMzhBNEVBMzAzMAotNkM1QUVBMkZDMDAwNjBDN0ZDQTIxMjcwRUEzRkYwMTNGQzZDN0VFQTYwMEZFQUMwMDNBNEVBNjAwNkVBMzgxQ0VBMDdFMDExCi0xODdGOEYxMz5JPDEyRkMxMjFDQTkxMzdDRUExRDg3MzgxRTAzODBBMjEyMUNBQjM4RkY5RkYwMTQxQTgwOTkxNT5JPDEyMTgKLTEyM0NBMjEyMTgxMjAwQTYxMkZDMTIxQ0FFMTJGRjA4MUE4MDk5MEE+STwxMkZDMTIxQ0E5RUIxRkMwRUIwRjAwMTMwQzVCCi0xMzIwNUIxM0UwMTIxREVBMUU3MEVBMUM3ODEzMzg3RjEzMUU3RjE0ODAzOEZGOUZFMDEzMUE4MDk5MTQ+MTA3Ci1EPDEyRkMxMjFDQjNBNkVBRkY4MDA5MUE4MDk5MEE+STwzOEZDN0MxRjM5MUQ4RTYzODAzOTFFMDc4MUMwQTIwMDFDMTMwMQotQUIzOUZGOUZFN0Y4MUQxMDdGOEYyMD5JPEVBRkM3Q0VBMUQ4NzM4MUUwMzgwQTIxMjFDQUIzOEZGOUZGMDE0MTA4MDhGMTU+Ci1JPEVBMDdFMEVBMUMzOEVBMzAwQ0VBNzAwRUVBNjAwNkVBRTAwN0E2RUE2MDA2RUE3MDBFRUEzODFDRUExQzM4RUEwN0UwMTAKLTEwN0Y4RjEzPkk8RUFGQ0ZDRUExRDA3MzgxRTAzODAzODFDMDFDMEEyRUIwMEUwQTZFQjAxQzAxNDgwMzgxRTAzMDBFQTFECi0wNkVBMUNGODkwQzdGQ0E2QjQ3RTEzMTc4MDhGMTU+STxFQTAzRTFFQTBDMTNFQTE4MEJFQTMwMEZFQTcwMDcxMkUwQTYxMgotNzBBMjZDNUFFQTFDMzdFQTA3QzdFQTAwMDdBNkVCM0ZFMDEzMTc3RjhGMTQ+STxFQUZDNzhFQTFEOUNFQTFFMUMxMzA4RUEKLTFDMDBBQkVBRkY4MDBFMTA4MDhGMEY+STxFQTFGMjBFQTYwRTBFQTQwMjAxMkMwQTJFQUYwMDAxMjdGRUEzRkMwRUExRkUwCi1FQTAwRjBFQTgwNzAxMzMwMTJDMDEzMjBFQUYwNDBFQThGODAwQzEwN0Y4RjBGPkk8MTIwOEE0MTIxOEEyMTIzOEVBRkZDMAotRUEzODAwQTgxMzIwQTQxMjE4RUExQzQwRUEwNzgwMEIxNzdGOTYwRj5JPDM4RkMxRjgwRUExQzAzQUIxMzA3MTIwQ0VBMEUKLTBCMzgwM0YzRjAxNDEwODA4RjE1Pkk8MzhGRjBGODAzODNDMDcwMEVBMUMwNjEzMDRBMjZDNUFBMjZDNUFBM0VBMDNBMEEyCi1FQTAxQzBBMzZDNUExMTEwN0Y4RjE0Pkk8MzlGRTdGMUY4MDM5MzgxQzA3MDAwMDNDMTMwNjM4MUMwQzA0MTMwRTM4MEUxNgotMDgxMzE3QTIzODA3MjMxMDE0OTAxM0EzMzgwM0MxQTAxNEUwMzgwMTgwQzBBMzE5MTA3RjhGMUM+STwzOEZFM0Y4MDM4M0MKLTFFMDBFQTFDMDg2QzVBRUEwRjMwNkM1QTZDNUExMjAxN0YxMjAzRUEwMjcwNDg3RTEyMDhFQTE4MUNFQTM4MUUzOEZDM0ZDMAotMTIxMDdGOEYxND5JPDM4RkYwRjgwMzgzQzA3MDBFQTFDMDYxMzA0QTI2QzVBQTI2QzVBQTNFQTAzQTBBMkVBMDFDMEEzNkMKLTVBQTI0OEM3RkNBMjEyRTExMkUyMTJFNDEyNzgxMTE3N0Y4RjE0Pkk8RUFGRkY4RUFFMDcwMTJDMEVBODBFMEVBODFDMEEyCi1FQTAzODBFQTA3MDBBMkVBMEUwNDEyMUNBMkVBMzgwODEyNzAxMzM4RUFGRkY4MEUxMDdGOEYxMT5JCi1FCi0lRW5kRFZJUFNCaXRtYXBGb250Ci0lRFZJUFNCaXRtYXBGb250OiBGZyBjbXNzMTAgMTAuOTUgMgotL0ZnIDIgNDIgZGY8MTNFMEVBMDFDMEVBMDM4MDEyMDcxMzAwNUExMjFFQTIxMjFDMTIzQ0EyMTIzODEyNzhBMzEyNzAxMkYwCi1BRTEyNzAxMjc4QTMxMjM4MTIzQ0EyMTIxQzEyMUVBMjdFN0UxMzgwMTIwM0VBMDFDMEVBMDBFMDBCMkU3Q0ExMTI+NDAKLUQ8MTJFMDEyNzA3RTEyM0MxMjFDMTIxRTdFQTI3RTEzODBBMjEyMDMxM0MwQTMxMjAxMTNFMEFFMTNDMDEyMDNBMzEzODAxMgotMDdBMjEzMDA1QUEyMTIxRTEyMUMxMjNDMTIzODVBNUEwQjJFN0VBMTEyPkkgRQotJUVuZERWSVBTQml0bWFwRm9udAotJURWSVBTQml0bWFwRm9udDogRmggY21ieDEwIDEyIDI3Ci0vRmggMjcgMTIzIGRmPDkwMzgwRkY4M0Y5MDM5N0ZGREZGQzAzQTAxRkMxRkUzRTAzOTAzRjAzRkM3RUEwN0UwRDgwRkMwMTMKLTg3RUQ4M0MwOTEzODFGODAwMEE2QjYxMkZDQTIzOTBGQzAxRjgwQjIzOTdGRjhGRkY4QTIyMzIzN0ZBMjIxPjExCi1EPEVCMDdGOEVCN0ZGQzM4MDFGQzBFMzgwM0YwMUY0ODQ4NUFFQTBGQzBBMzE0MUUxNDBDOTFDN0ZDQTJFQ0ZGODBCNkZDQTIKLTM4MEZDMDFGQjIzOTdGRjhGRkYwQTIxQzIzN0ZBMjIwPkk8RUEwN0ZFMzgxRkZGODAzODNGMDdFMDZEN0UxMzAxODAxMjFFCi0xMjAwQTIxMzNGRUEwM0ZERUExRjgxRUEzRTAxMTI3QzEyRjhBNEVBN0MwMkVBN0UwQzM5MUZGODdGODAzODA3RTAzRjE5MTYKLTdFOTUxQz45NyBEPEI0N0VBMjEyMUZBQkVCODdGMEVCQkZGQ0VCRjAzRUVCQzAxRjkwMzg4MDBGODAxNUMwMTQwNzE1RTBBNwotMTVDMEEyMTQwRjE1ODA5MDM4QzAxRjAwMzgxRTcwN0UzODFDM0ZGQzM4MTgwRkUwMUIyMzdFQTIyMD5JPEVCRkY4MDAwMDcKLTEzRTAzODBGODNGMEVBMUYwMzEyM0UxMjdFMzg3QzAxRTA5MEM3RkMxMkZDQTYxMjdDMTI3RUEyMDAzRTEzMTg2QzEzMzAzOAotMEZDMDYwMzgwN0ZGQzBDNjEzMDAxNTE2N0U5NTE5Pkk8NDlCNEZDQTJFQjAwM0ZBQjEzRkUzODA3RkZCRjM4MEZDMUZGNDgKLUM2N0UwMDNFN0YxMjdFMTI3Q0EyMTJGQ0E3MTI3QzEyN0UxMjNFNkM1QjM4MEY4MUZGMzkwN0ZGM0ZFMEVBMDFGQzFCMjM3RQotQTIyMD5JPDEzRkUzODA3RkY4MDM4MEY4M0MwMzgxRTAxRTAzODNFMDBGMDEyN0UwMDdDMTNGODE0NzgxMkZDQjUxMkY4QTIKLTAwRkNDN0ZDQTMxMjdDQTI2QzEzMThBMjZDMTMzMDM4MEY4MEUwMzgwM0ZGQzBDNjEzMDAxNTE2N0U5NTFBPkk8RUIxRjgwCi1FQkZGRTAzODAxRjFGMEVBMDNFMzEyMDdFQTBGQzNFQkMxRTBFQkMwMDBBNkVBRkZGRUEyRUEwRkMwQjJFQTdGRkNBMjE0MjMKLTdFQTIxMj5JPDkwMzhGRTBGODAzOTAzRkY5RkMwMzgwRjgzRTMzODFGMDFGMzM5MUUwMEYwMDAwMDNFN0ZBNTAwMUU1QkVBCi0xRjAxMzgwRjgzRTAzODBCRkY4MEQ4MDhGRUM3RkMwMDE4QzhGQ0EyMTIxQzM4MUZGRkUwMTRGQzZDMTNGRjdFMDAxRjE0ODAKLTM5N0MwMDFGQzAwMDc4MTMwRjAwRjgxMzA3QTMwMDdDRUIwRjgwNkNFQjFGMDAzODFGODA3RTZDQjQ1QTAwMDExM0UwMUEyMQotN0Y5NTFEPkk8QjQ3RUEyMTIxRkFCRUI4M0YwRUI4RkZDRUI5ODdFRUJBMDNFRUJDMDNGQTIxMzgwQUUzOUZGRjFGRkUwQTIKLTFCMjM3REEyMjA+STwxMjFFMTIzRkVBN0Y4MEE0RUEzRjAwMTIxRUM3RkNBNkVBRkY4MEEyMTIxRkIyRUFGRkYwQTIwQzI0Ci03RUEzMEY+STxCNDdFQTIxMjFGQUJFQ0ZGODBBMkVDM0MwMDE0MzAxNEUwRUI4MUMwMDE4M0M3RkMxMzg2MTM5RTEzQkUxMwotRkZFQkRGODBFQjhGQzAxMzA3ODA2RDdFNkQ3RTEzMDA4MDE0N0UzOUZGRTFGRkMwQTIxQTIzN0VBMjFFPjEwNwotRDxFQUZGODBBMjEyMUZCM0FERUFGRkYwQTIwQzIzN0VBMjBGPkk8M0FGRjAzRjgwM0Y4OTAzOTBGRkUwRkZFM0ExRjE4M0YKLTE4M0Y5MDM5MjAxRjIwMUYwMTQwMDFDMDEzODBBMjAxODAxMzgwQUUzQkZGRjBGRkYwRkZGMEEyMkMxNjdEOTUzMT5JPDM4Ci1GRjAzRjBFQjBGRkMzODFGMTg3RUVCMjAzRUVCNDAzRkEyMTM4MEFFMzlGRkYxRkZFMEEyMUIxNjdEOTUyMD5JPDEzRkYwMAotMDcxM0UwMzgwRjgxRjAzODFGMDBGODAwM0UxMzdDNDgxMzNFQTMwMEZDMTMzRkE3MDA3QzEzM0UwMDdFMTM3RTAwM0UxMzdDCi02QzEzRjgzODBGODFGMDM4MDdGRkUwQzYxMzAwMTgxNjdFOTUxRD5JPDM4RkY4N0YwRUJCRkZDMzgxRkYwN0VFQkMwMUY5MAotMzg4MDBGODAxNUMwQTJFQzA3RTBBNzE1QzAxNDBGQTJFQzFGODAwMUMwMTMwMEVCRjA3RUVCQkZGQ0VCOEZFMDAxODBDN0ZDCi1BOEVBRkZGMEEyMUIyMDdFOTUyMD5JPEVCRkUwMzM4MDdGRjA3MzgwRkMxQ0YzODFGMDBERjQ4MTM3RjAwN0U3RkEyMTI3QwotMTJGQ0E3MTI3RUEyMDAzRTVCNkM1QkVBMEZDMTM4MDdGRjNGRUEwMEZDMTMwMEE4OTAzODAxRkZFMEEyMUIyMDdFOTUxRT4KLUk8MzhGRjBGODBFQjFGRTAzODFGMzNGMDEzNjMxMzQzQTJFQkMxRTBFQjgwMDBBREVBRkZGOEEyMTQxNjdFOTUxOD5JPDM4Ci0wN0Y5ODBFQTFGRkZFQTM4MDdFQTcwMDNFQUYwMDFBMjZDQzdGQ0I0RkMxM0Y4RUE3RkZFNkM3RTZDMTM4MDEyMDczODAwM0YKLUMwRUFDMDA3MTMwMzEyRTBBMjAwRjAxMzgwMzhGQzBGMDBFQUVGRkVFQUMzRjgxMjE2N0U5NTE3Pkk8NDg3RUE0MTIwM0EyCi0xMjA3QTIxMjBGMTIzRkI1RkNBMkVBMUY4MEFCRUI4MTgwQTUzODBGODMwMDEzQzNFQTA3RkVFQTAxRjgxMTIwN0Y5RjE2PgotSTwzOEZGODFGRkEyMzgxRjgwM0ZBRjVDNUMzODBGQzFCRjM5MDdGRjNGRTBFQTAxRkMxQjE2N0Q5NTIwPkk8MzlGRkYwMUYKLUUwQTIzOTFGQzAwNzAwMDAwRjEzMDZFQkUwMEUwMDA3MTMwQzEzRjAwMDAzNUJBMjZDNkM1QUEyNkM2QzVBQTJFQkZFRTBFQgotN0VDMDEzN0Y2RDVBQTI2REM3RkNBMjEzMEVBMjFCMTY3Rjk1MUU+STwzQUZGRjNGRjgzRkNBMjNBMUY4MDdDMDBFMEQ4MEYKLUMwMTRDMDgwMDFFMDEzMDEwMDA3MDE3RjEzODBBMkQ4MDNGMEVCMDMwMEVDQ0Y4MzAxRjgxMzg3RDgwMUY5MTNDNjE0ODdEOAotMDBGRDEzRUNFQkZGMDMxNUZDMDE3RjVCRUI3RTAxMDEzRTVCRUIzQzAwQTIwMTE4MTM2MDI2MTY3Rjk1Mjk+STwzOUZGRjAKLTdGQzBBMjM5MEZDMDFDMDA2QzZDNUE2RDVBMDAwMzVCNkM2QzVBMzgwMEZEODAxMzdGOTFDN0ZDN0Y2RDdFNDk3RUVCMzdFMAotRUI2N0YwMTNDMzM4MDFDMUY4MzgwMzgwRkM0ODQ4N0UwMDBFMTM3RjM5RkY4MUZGRTBBMjFCMTY3Rjk1MUU+STwzOUZGRjAKLTFGRTBBMjM5MUZDMDA3MDAwMDBGMTMwNkVCRTAwRTAwMDcxMzBDMTNGMDAwMDM1QkEyNkM2QzVBQTI2QzZDNUFBMkVCRkVFMAotRUI3RUMwMTM3RjZENUFBMjZEQzdGQ0EyMTMwRUEyMTMwQ0EyNUIxMjc4RUFGQzM4MTMzMDVCRUE2OUMwRUE3RjgwMDAxRkM4Ci1GQzFCMjA3Rjk1MUU+STwzODdGRkZGMEEyMzg3QzA3RTAzODcwMEZDMEVBNjAxRjAwRTAxMzgwMzhDMDNGMDA1QjEzN0VDNgotNUExMjAxNDg1QUVCRjAzMEVBMDdFMDEyMEZFQkMwNzBFQTFGODAwMDNGMTM2MEVCMDBFMEVBN0UwM0I1RkNBMjE0MTY3RTk1Ci0xOT5JIEUKLSVFbmREVklQU0JpdG1hcEZvbnQKLSVEVklQU0JpdG1hcEZvbnQ6IEZpIGNtdHQxMCAxMiAyOQotL0ZpIDI5IDEyMiBkZjwxM0UwQTUzOEYwRTFFMEVBRkNFNzM4N0VFRkMwMzgxRkZGMDBFQTA3RkNFQTAxRjBFQTA3RkNFQTFGCi1GRjM4N0VFRkMwMzhGQ0U3RTBFQUYwRTEzODAwRTAwMEE1MTMxNTdEOTkxQT40MiBEPEI1MTJGOEEzMzgxQzAwMzhBNTE0MDAKLUEyMTMwRUEzRUExRkZFQTNFQTFDMEVBMzkwQzdGQ0EzMTQxQ0E1QjUxMkZDQTMxNjFFN0U5RDFBPjY5Ci1EPDM4N0ZGRkZDQjVGQzdFMzgwRTAwMUNBNTE0MDBBMkVCMDM4MEEzRUEwRkZGQTNFQTBFMDNBMzkwQzdGQ0E4RUE3RkUwMTIKLUZGMTI3RjE2MUU3RjlEMUE+STxCNTEyODBBMzM4MDFDMDAwQjNBNkI1MTI4MEEzMTExRTdDOUQxQT43MwotRDwzODdGMDNGODM4RkY4N0ZDMzg3RjAzRjgzODFDMDFFMEVCMDNDMDE0ODBFQjA3MDA1QjEzMUUxMzFDNUIxMzc4NUI3RjEyCi0xREVBMUZEQzEzOUMxMzBFRUExRTBGN0YwMDFDMTM4MDEzMDNFQjAxQzBBMkVCMDBFMEEyMTQ3MDAwN0YxM0ZDMzhGRjgxRkUKLTM4N0YwMEZDMTcxRTdGOUQxQT43NSBEPEVBN0ZFMDQ4N0U2QzVBMDAwRUM3RkNCMzE0MUNBNTM4N0ZGRkZDQjVGQzdFMTYxRQotN0Y5RDFBPkk8Mzg3RkZGQzBCNTEyRTBBMjZDMTNDMDEzMDQ3RDdFMUE+OTUgRDxFQTFGRjBFQTNGRkM0ODdFRUE3ODBGRUEKLTMwMDczODAwMDM4MEEyMTM3RkVBMDdGRjEyMUZFQTNGODNFQTc4MDMxMjcwMTJFMEEzRUE3MDA3RUE3ODBGMzgzRkZGRkNFQQotMUZGREVBMDdGMDE2MTU3RDk0MUE+OTcgRDwxMkZFQTMxMjBFQTYxMzNFRUJGRjgwMDAwRjEzRTBFQkMxRjBFQjgwNzBFQjAwCi0zODEyMEUxNDFDQTcwMDBGMTMzODE0NzhFQjgwRjBFQkMxRTBFQkZGQzAwMDBFMTM4MDM4MDYzRTAwMTYxRTdGOUQxQT5JPAotRUJGRjgwMDAwMzEzQzAwMDBGMTNFMEVBMUYwMTM4M0MwMEMwNDgxMzAwMTI3MEEyNUFBNTEyNzBBMjAwNzgxMzcwN0UzODFGCi0wMUYwMzgwRkZGRTAwMDAzMTNDMDM4MDBGRTAwMTQxNTdEOTQxQT5JPEVCMUZDMEEzMTMwMUE2RUEwMUYxRUEwN0ZERUEwRgotRkZFQTFFMEZFQTNDMDdFQTc4MDNFQTcwMDExMkUwQTdFQTcwMDNBMkVBMzgwN0VBM0UwRjM4MUZGRkZDRUEwN0ZERUEwMUYxCi0xNjFFN0U5RDFBPkk8RUEwMUY4RUEwN0ZGNDgxMzgwMzgxRTA3QzBFQTNDMDEzODc4MDBFMDEyNzA0ODEzNzBBMkI1MTJGMAotQTMwMEUwQzdGQzEyNzBBMjAwNzgxMzcwN0UzODFGMDFGMDM4MEZGRkUwMDAwMzEzODAzODAwRkUwMDE0MTU3RDk0MUE+STwKLUVCMDdFMEVCMUZGMEVCM0ZGOEVCNzg3OEVCRjAzMEVCRTAwMEE0Mzg3RkZGRjBCNUZDQTIzODAwRTAwMEFGMzgzRkZGODA0OAotMTNDMDZDMTM4MDE1MUU3RjlEMUE+STwzODAxRjg3QzM4MDdGRkZFNUEzODFFMDc4QzM4MUMwMzgwMzgzODAxQzBBNTM4MUMKLTAzODBFQTFFMDczODFGRkYwMDVCRUEzOUY4MDAzOEM3RkNBMjdFMzgxRkZGODAxNEUwNDgxM0Y4Mzg3ODAwN0MwMDcwMTMxQwotNDgxMzBFQTQwMDcwMTMxQzAwNzgxMzNDMDAzRTEzRjgzODFGRkZGMDAwMDcxM0MwMDAwMTEzMDAxNzIxN0Y5NDFBPkk8MTIKLUZFQTMxMjBFQTYxMzNFRUJGRjgwMDAwRjEzQzAxM0MxRUI4MEUwMTMwMDEyMEVBQzM4RkZFM0ZFMTNFNzEzRTMxNzFFN0Y5RAotMUE+STxFQTAxQzA0ODdFQTM2QzVBQzhGQ0E1RUE3RkUwQTMxMjAwQUYzODdGRkY4MEI1MTJDMDZDMTM4MDEyMUY3QzlFMUE+Ci1JPDEyRkVBMzEyMEVBNkVCMEZGQ0VCMUZGRUVCMEZGQ0VCMDNDMEVCMDc4MEVCMEYwMDEzMUU1QjVCMTNGQzEyMEYxM0RFMTMKLThGMzgwRTA3ODAxMzAzRUIwMUMwMTRFMEVCMDBGMDM4RkZFM0ZFMTRGRjE0RkUxODFFN0Y5RDFBPjEwNwotRDxFQUZGRTBBMzEyMDBCM0E2QjUxMkUwQTMxMzFFN0Q5RDFBPkk8Mzg3Q0UwRTAzOEZGRkJGOEVBN0ZGRjM4MUYxRjFDRUEKLTFFMUVBMkVBMUMxQ0FDMzg3RjFGMUYzOUZGOUY5RjgwMzk3RjFGMUYwMDE5MTU4MDk0MUE+STxFQUZFM0VFQkZGODBCNTEyCi1DMEVBMEZDMUVCODBFMDEzMDAxMjBFQUMzOEZGRTNGRTEzRTcxM0UzMTcxNTdGOTQxQT5JPEVBMDFGMEVBMDdGQ0VBMUZGRgotMzgzRTBGODBFQTNDMDczODc4MDNDMEVBNzAwMTM4RTAwMEUwQTZFQUYwMDEwMDcwMTNDMEVBNzgwMzM4M0MwNzgwRUEzRTBGCi0zODFGRkYwMEVBMDdGQ0VBMDFGMDEzMTU3RDk0MUE+STxFQUZFM0VFQkZGODBCNTEyRTAzODBGQzFGMEVCODA3MEVCMDAzOAotMTIwRTE0MUNBNzAwMEYxMzM4MTQ3OEVCODBGMEVCQzFFMEVCRkZDMDAwMEUxMzgwRUIzRTAwOTBDN0ZDQThFQUZGRTBBMzE2Ci0yMDdGOTQxQT5JPDM4MDFGOEUwRUEwN0ZFRUEwRkZGRUExRTA3RUEzQzAzRUE3ODAxMTI3MEVBRTAwMEE2MTMwMTEyNzBFQQotNzgwMzEyM0NFQTFFMEZFQTBGRkZFQTA3RkNFQTAxRjBDN0ZDQThFQjBGRkVBMzE3MjA3RTk0MUE+STwzODdGODFGODM4RkYKLThGRkMzODdGOUZGRTM4MDNGRTFFRUJGODBDRUJFMDAwQTI1QjVCQUFFQTdGRkZCNUZDN0UxNzE1N0Y5NDFBPkk8MzgwN0ZCCi04MEVBMUZGRjEyN0ZFQTc4MDdFQUUwMDNBMzAwNzhDN0ZDRUE3RkMwRUExRkZDRUEwN0ZFMzgwMDNGODAxMzA3Mzg2MDAxQzAKLTEyRTBBMkVBRjAwMzM4RkMwNzgwQjUxMjAwRUFFRkZFRUFFM0Y4MTIxNTdDOTQxQT5JPDQ4N0UxMjAzQTYzODdGRkZFMEI1Ci1GQ0EyMzgwMzgwMDBBQTE0NzBBNDM4MDFDMUUwMTNGRjZDMTM4MEVCM0YwMDE0MUM3RjlCMUE+STwzOEZFMEZFMEEzRUEwRQotMDBBRDEzMDFFQTBGMDMzODA3RkZGRTdFRUEwMEZDMTcxNTdGOTQxQT5JPDM4N0ZDN0ZDMDBGRjEzRkUwMDdGMTNGQzM4MEUKLTAwRTBBMzM4MDcwMUMwQTMzODAzODM4MEEzMzgwMUM3MDBBM0VBMDBFRUEzMTM3Q0EyMTMzODE3MTU3Rjk0MUE+STwzODdGCi1DN0ZDMDBGRjEzRkUwMDdGMTNGQzM4MEUwMEUwQTI3RUVCMDFDMDEzODExMjAzRUI4MzgwRUEwMUMzQTJFQkM3MDBFQTAwRTcKLUEyMTNFNjEzNjYxMzZFMTMzQ0EzMTMzOEEzMTM3ODEzNzAxMjMwRUE3OEUwMTI3MUVBN0ZDMDZDNUEwMDFFQzdGQzE3MjA3RgotOTQxQT4xMjEgRCBFCi0lRW5kRFZJUFNCaXRtYXBGb250Ci0lRFZJUFNCaXRtYXBGb250OiBGaiBjbWJ4MTIgMTMuMTQgNTIKLS9GaiA1MiAxMjIgZGY8MTIzQzEyN0UxMkZGQTQxMjdFMTIzQzA4MDg3Qzg3MTE+NDYgRDxFQjdGODAzODAzRkZGMDM4MDdFMQotRjgzODBGODA3QzQ4NDg3RTQ4MTMzRjAwM0U3RjAwN0UxNDgwQTQwMEZFMTRDMEFEMDA3RTE0ODBBNDZDRUIzRjAwQTI2QzEzCi0zRTZDNkM1QTM4MDdFMUY4NkNCNDVBMzgwMDdGODAxQTIzN0VBMjFGPjQ4IEQ8MTMxQzEzM0MxM0ZDMTJGRkEyMTIwMEIzQUEKLTM4N0ZGRkZDQTIxNjIzN0NBMjFGPkk8NDhCNEZDMDAwNzEzQzAzODFFMDdGMDM4MzgwM0Y4Mzg2MDAxRkMzODdDMDBGRTEyCi1GRTE0RkYxNDdGQTIxMjdDMDAzODEzRkZDN0ZDMTRGRUEyRUIwMUZDMTRGOEVCMDNGMEVCMDdFMDE0ODBFQjBGMDAxMzFFNUIKLTEzNzBFQkUwMDNFQTAxQzAzODAzODAwNzM4MDcwMDA2MTIwNjM4MEZGRkZFNUE1QTQ4MTNGQ0I1RkNBMjE4MjM3REEyMUY+Ci1JPDQ4QjRGQzAwMDcxM0UwMzgxRTAzRjAzODM4MDFGODAwM0MxM0ZDMzg3RTAwRkVBMzEyM0VFQTFDMDEwMDAwMTNGQ0EyRUIKLTAzRjhFQjA3RjBFQjBGQzAzODAxRkYwMEEyMzgwMDA3RTBFQjAxRjAxNEY4RUIwMEZDMTRGRTE0RkZBMjEyMTAxMjdDMTJGRQotQTIxNEZFQTIzODdDMDFGQzAwNzAxM0Y4MzgzRTA3RjAzODBGRkZDMDAwMDExMzAwMTgyMzdEQTIxRj5JPDE0MzgxNDc4QTIKLTE0RjgxMzAxMTMwMzEzMDcxMzA2MTMwQzEzMUMxMzM4MTMzMDEzNjAxM0UwRUEwMUMwMTM4MEVBMDMwMDVBMTIwRTVBMTIxOAotNUExMjcwNUFCNjEyQzBBMjM5MDAwMUY4MDBBNzkwMzg3RkZGQzBBMjFBMjM3RUEyMUY+STwwMDE4MTMwQzAwMUYxMzdDRUIKLUZGRjgxNEYwMTRFMDE0QzAxNDgwRUJGQzAwMDAxOEM3RkNBNTEzRkYwMDFCMTNFMDM4MUYwM0YwMzgxQzAwRjgwMDA4MTNGQwotQzcxMjdFQTMxNDdGQTIxMjc4MTJGQ0EzMTQ3RTVBMDA2MDEzRkMxMjcwMzgzODAxRjgzODFFMDdFMDM4MDdGRkMwMzgwMUZFCi0wMDE4MjM3REEyMUY+STxFQjFGQzBFQjdGRjAzODAxRjAzODM4MDNFMDBDMzgwNzgwM0UwMDBGMTM3RUVBMUYwMDVBQTIwMAotN0UxMzNDMTQwMEEzMzhGRTNGQzBFQjdGRjBFQjgwRjgwMEZGMTNGQ0VCMDA3QzE0N0U1QTE0N0ZBNDEyN0VBNDAwM0UxMzdFCi0xMjNGNkMxMzdDMzgwRjgwRjgzODA3QzFGMDM4MDNGRkMwMzgwMDdGMDAxODIzN0RBMjFGPkk8MTIzMDEyM0MwMDNGQjUxMgotQzBBMjE1ODA0ODE0MDA1QzVDMzg2MDAwMThBMjAwRTA1QjQ4NUI1Q0M2NDg1QUEyNDlDN0ZDMTMwNjEzMEVBMjVCQTIxMzNDCi1BMjVCQTIxM0Y4QTQxMjAxQTY2QzVBMTM2MDFBMjU3REE0MUY+STxFQkZGODAwMDAzMTNFMDM4MEYwMUY4MzgxQzAwN0M0OAotMTMzQzE0MUUxMjc4QTIxMjdDMTI3RTM4N0Y4MDNDMTNFMDM4M0ZGODc4MzgxRkZERjBFQkZGQzA3RTAwMDMxM0UwMTRGODAwCi0wRjEzRkNFQTFFMUYzODNDMDdGRUVBNzgwM0VCMDBGRjQ4MTMzRjE0MUYxNDBGQTMxNDBFMTI3ODE0MUM2QzEzMzgzODFGODAKLUYwMzgwN0ZGRTAwMDAxMTMwMDE4MjM3REEyMUY+STwxM0ZGMDAwMzEzQzAzODBGODNFMDM4MUYwMEYwNDgxM0Y4MDA3RTEzCi03Q0EyMTQ3RTEyRkVBMzE0N0ZBNDEyN0UxNEZGMTIzRUVBM0YwMTAwMUYxMzdGRUEwRkZFRUEwM0ZDQzdGQzE0N0VBMjEyM0MKLTAwN0UxM0ZDQTIxNEY4MTRGMEVBN0MwMTM4MzAwM0UwMzgxQzBGODAzODBGRkYwMEVBMDNGODE4MjM3REEyMUY+STwxNDFDCi1BMjE0M0VBMzE0N0ZBMjRBN0VBMzkwMzgwMTlGQzBBMjkwMzgwMzFGRTAxNDBGMDEwNzdGRUIwNjA3QTIwMTBDN0YxNDAzMDEKLTFDN0ZFQjE4MDFBMjQ5NkM3RUEyMDE3RkI1RkNBMjkwMzlFMDAwN0Y4MDQ5MTMzRkEyNDg0ODgwMTUxRjAwMDM4MTkwQzcxMgotMEZBMjQ4NkU3RUQ4RkZGMDkwQjUxMjgwQTIyOTI1N0VBNDJFPjY1IEQ8QjYxMkUwMTVGQzM5MDNGMDAwN0ZFRDNGODBFRDFGCi1DMEVEMEZFMEEyMTZGMEEyMTUwNzE1MEZBMjE2RTAxNTFGMTZDMEVEN0Y4MDkxMzgwMUZFMDA5MEI1MTJGODE1RkY5MDM5RjAKLTAwM0ZDMEVEMEZFMEVEMDdGMDE2RjgxNTAzMTZGQ0E2MTZGODE1MDdFRDBGRjBFRDFGRTBFRDdGQzBCNzEyMDAxNUY4MjYyNQotN0VBNDJDPkk8OTEzOEZGODAwODAxMEZFQkYwMTg5MDM5M0ZDMDNDNzg5MDM5RkUwMDA2RjhEODAxRjgxMzAzNDg0ODEzMDEKLTQ4NDgxMzAwNDg0ODE0NzgxMjFGNDg0ODE0MzhBMjAwN0YxNTE4OTBDOEZDQTI0ODE1MDBBOTdFMTYxODdGMTIzRkEyNkM2QwotMTQzMDEyMEY2QzZDMTQ2MDZDNkMxNEMwNkM2Q0VCMDE4MEQ4MDBGRUVCMDcwMDkwMzgzRkMwMUU5MDM4MEZGRkY4MDEwMDEzCi1DMDI1MjU3REE0MkM+STxCN0ZDQTIzOTAzRjgwMDdGRUQwRjgwMTUwNzE1MDNBMjE1MDFBM0VEMDBDMDE0MDZBMjE2MDBBMgotMTQwRTE0MUVFQkZGRkVBMkVCRjgxRTE0MEUxNDA2QTIxNjYwQTI5MUM3RkMxNkMwQTQxNTAxMTUwM0EyRUQwRjgwMTUzRkI3Ci1GQ0EyMjMyNTdFQTQyOD42OSBEPEI2MTJGRUEyMzgwM0Y4MDAxNTFGODE4MUEyODFBM0VEMDE4MDE0MDNBMjkyQzdGQ0EyNUMKLTVDOTBCNUZDQTJFQkY4MEY4MDgwQTQ5MUM4RkNBQUI1MTJGMEEyMjEyNTdFQTQyNz5JPEI1MDBFMEI1MTJFMEEyM0IwM0Y4Ci0wMDAzRjgwMEFGOTBCNkZDQTI5MDM4RjgwMDAzQjBCNTAwRTBCNTEyRTBBMjJCMjU3RUE0MzA+NzIKLUQ8QjUxMkUwQTIzODAzRjgwMEIzQUZCNTEyRTBBMjEzMjU3RUE0MTc+STxCNTM5RTAwN0ZGODBBMkQ4MDNGOEM3RUE3ODAwCi0xNjYwNUU0QjVBMDMwN0M3RkMxNTBFMTUxODVENUQ1REVDMDM4MDRBQzhGQzE0MEUxNDFGNEE3RTE0N0ZFQ0RGQzA5MDM4RkIKLThGRTA5MDM4RkYwRkYwRUJGQzA3NDk2QzdFODE2RTdFMTQwMDE1N0Y4MjE1M0Y2RjdFNkY3RTgyMTUwNzZGN0U4MkI1MzlFMAotM0ZGRkMwQTIyQTI1N0VBNDMwPjc1IEQ8QjUxMkYwQTJEODAzRjhDN0ZDQjNBMzE1MDNBMzE1MDZBMzE1MEVBMjE1MUUxNTNFCi0xNTdDRUMwM0ZDQjZGQ0EyMjAyNTdFQTQyNT5JPEQ4RkZGOEVERkZGODZENUMwMDAzRUVGRTAwMDE3RUVDMDM3RUEzNkQxNAotMDZBMjZENkMxMzBDQTI2RDZDMTMxOEEyNkQ2QzEzMzBBMzZENkMxMzYwQTI2RDZDMTNDMEEyOTAzOTAwRkMwMTgwQTI5MTM4Ci03RTAzMDBBM0VDM0YwNkEyRUMxRjhDQTJFQzBGRDhBMkVDMDdGMEEzNkU1QUVBMDc4MDNDRkZGQzAxQzAxRkZGRjhBMjM1MjUKLTdFQTQzQT5JPEQ4RkZGODkwMzgwN0ZGRTA3RkQ4MDNGRTkwMzgwMDNDMDA2RDE0MTg3RjZEN0U2RDdFODA2RDdFNkQ3RTEzCi0wMzZEN0U2RDdFODBFQzdGODBFQzNGQzAxNDFGRUMwRkUwMTVGMEVDMDdGOEVDMDNGQzE0MDFFQzAwRkUxNTdGMTY5OEVEM0YKLUQ4RUQxRkY4MTUwRjE1MDcxNTAzQTIxNTAxMTUwMDE2Nzg0ODZDMTQzOEQ4RkZGQzE0MThBMjJCMjU3RUE0MzA+STxCNjdFCi0xNUY4MzkwM0Y4MDFGRUVDMDA3RjZGN0U2RjdFQTI4MkE1NUVBMjRCNUE0QkM3RkNFQzAxRkU5MEI1MTJGODE1QzA5MDM4RjgKLTAzRjA2RTdFNkU3RTE1N0VBMjE1N0ZBNDgyQTMxNzYwRUQzRkMwMTdDMEVEMUZFMUI1MzlFMDBGRkY4MDkyMzgwMUZFMDAyQgotMjU3RUE0MkU+ODIgRDwwMUZGMTM4MDAwMDcxM0UzMzgwRjgwRjczODFFMDAxRjQ4MTMwRjQ4MTMwNzE0MDMxMkY4MTQwMUEyCi03RTkxQzdGQ0I0RkNFQTdGRTAxM0ZFMzgzRkZGRTAxNEY4NkMxM0ZFMDAwNzdGNkMxNDgwQzY3RTAxMDMxM0MwRUIwMDNGRUMKLTBGRTAxNDA3QTIwMEMwMTMwM0EzMTVDMDdFNkMxMzA3NkMxNDgwNkNFQjBGMDAzOEZGQzAzRTM4RTNGRkY4Mzg4MDNGRTAxQgotMjU3REE0MjI+STwwMDdGQjYxMkY4QTIzOTdFMDBGRTAxMDA3OEVDMDA3ODAwNzAxNTM4MDA2MDE1MThBMjAwRTAxNTFDMTYKLTBDNUFBNEM3MTQwMEIzQTM5MEI1MTJGRUEyMjYyNDdFQTMyQj5JPEI1MzlFMDBGRkZDMEEyRDgwM0Y4QzdFQTc4MDAxNjMwCi1CM0E3MDAwMTVEN0YwMDAwNUQxMzdDNkQ0OTVBNkQwMTA3QzdGQzkwMzgwRkUwM0U5MDM4MDNGRkY4OTAzODAwN0ZDMDJBMjUKLTdFQTQyRj5JPEI1Mzk4MDAxRkZFMEEyRDgwN0Y4QzdFQTFDMDAwMDAzMTUxOEEyNkQxNDM4MDAwMTE1MzA2RDE0NzAwMDAwCi0xNTYwN0Y2RDVDODAwMTNGNDk1QUEyRUNDMDAzMDExRjkxQzdGQzZFNUEwMTBGMTMwNjE0RjAwMTA3NUJBMjZENkM1QUEyRUMKLUZDMzgwMTAxMTMzMEVDRkU3MDAxMDAxMzYwMTRGRjZFNUFBMjZFNUFBMzZFQzhGQ0EyMTQwRUEyMkIyNTdGQTQyRT5JPEI1Ci0zQjgxRkZGRTAxRkZGMEEyM0QwN0YwMDAxRkMwMDAwRjAwNzAxMzA2NkM2QzAxMEY1Q0EyNkY3RTZDNkM1RUEyNkQ0OTZDMTMKLTM4MDAwMDE3MzA0QjdFMDE3RjAxMTk1Q0EyOTEzODgwMzBGRTAxM0Y1RTgyOTEzOUMwNjA3RjAxMDExRjVFMDNFMDEzODE5MAotMjgwRkUwQzAzRjgzQzdGQ0EyOTEzOUYxODAxRkMzMDEwNzE1QzYxN0U2OTEzOUZCMDAwRkVFMDEwMzE1RUMwMkZGMTRGQzZECi00ODZENUFBMjRBMTMwMzAxMDA1REEyNEExMzAxMDI3ODVDQTIwMjMwNkQ1QTNDMjU3RkE0M0Y+STxCNTM5QzAwMUZGRTBBMgotRDgwN0Y4QzdFQTFDMDA2QzZDMTQxODE2Mzg2QzZDMTQzMDZDNkM1QzE2RTA2RDZDNUI2RDZDNDg1QTE1MDNEOTFGRTA5MEM3Ci1GQzkwMzgwRkYwMDYxNTBFOTAzODA3RjgwQzZENkM1QTE1Mzg2RDZDNUE5MDM4MDBGRjYwMTVFMDZFNUE2RTVBQUU5MDM4MEYKLUZGRkNBMjJCMjU3RkE0MkU+ODkgRDxFQTA3RkYwMDFGMTNFMDM4M0UwM0YwMzgzRjAwRjg4MDE0N0UxMjFFQzdGQ0EzRUIxRgotRkUzODAzRkU3RUVBMEZDMEVBMUYwMDEyM0UxMjdFNUFBMzE0QkVFQTdFMDEzODNGMDczRTM5MUZGRTFGRTAzODA3RjAwRjFCCi0xODdFOTcxRT45NyBEPEVBRkZDMEEyMTIwRkFDRUJDMUZDRUJDRkZGOTAzOEZDMEZDMDkwMzhGMDA3RTA5MDM4QzAwM0YwQTIKLUVDMDFGOEEyMTVGQ0E4MTVGOEEyRUMwM0YwMTNFMDkwMzhGMDA3RTA5MDM4MUMxRjgwMzkwRTBGRkYwMDM4MEMwM0Y4MUUyNgotN0ZBNTIyPkk8RUI3RkUwMzgwM0ZGRjgzODA3QzA3QzM4MUY4MEZDMTMwMDVBMDA3RTEzNzgxNDAwMTJGRUE4MTI3RTEyN0YKLTZDMTMwQ0VBMUY4MEVCQzAxODM4MDdFMDcwMzgwM0ZGRTAzODAwN0YwMDE2MTg3RTk3MUI+STxFQ0ZGQzBBMjE0MEZBQzEzCi03RjM4MDNGRkNGMzgwRkUwRkYzODFGODAzRjM4M0YwMDBGQTIxMjdFQTIxMkZFQTgxMjdFQTI3RTE0MUYzODFGODAzRjM4MEYKLUMwRUYzOTAzRkZDRkZDMzgwMEZFMEYxRTI2N0VBNTIyPkk8MTM3RjM4MDNGRkMwMzgwN0MxRjAzODBGODBGOEVBMUYwMDQ4Ci0xMzdDMTI3RTE0N0UxMkZFQTJCNTEyRkVBMjQ4QzdGQ0EzMTI3RUEyMTQwNjdFNkMxMzBDMzgwRjgwMTgzODA3RTA3MDM4MDMKLUZGRTAzODAwN0Y4MDE3MTg3RTk3MUM+STxFQjFGQzBFQjdGRjBFQTAxRjgzODAzRTFGODEyMDcxM0MxMzgwRkMwRjAxNDAwCi1BN0I1RkNBMkVBMEZDMEIzQTJFQUZGRkVBMjE1MjY3RUE1MTM+STwzOTAxRkYwN0MwMDAwN0VCREZFMDM4MEY4M0YxRUExRgotMDEzOTNFMDBGODAwMDA3RTdGQTYwMDNFNUI2QzQ4NUEzODBGODNFMEVCRkZDMDAwMTE5MEM3RkMwMDMwQzhGQ0EyMTIzODEyCi0zQzM4M0ZGRkUwNkMxM0ZDODA2QzdGNDgxNDgwMzgzQzAwM0Y0OEVCMEZDMDAwRjgxMzA3QTQwMDdDRUIwRjgwNkNFQjFGMDAKLTM4MUY4MDdFMzgwN0ZGRjhDNjEzQzAxQjI0N0U5NzFGPkk8RUFGRkMwQTIxMjBGQUMxNEZFOTAzOEMzRkY4MDkwMzhDRTBGCi1DMDEzRDg5MDM4RDAwN0UwMTNFMEEyMTNDMEFGMzlGRkZDN0ZGRUEyMUYyNjdFQTUyMj5JPDEyMEZFQTFGODBFQTNGQzBBNAotRUExRjgwRUEwRjAwQzdGQ0E3RUE3RkMwQTIxMjBGQjNBMkVBRkZGOEEyMEQyNzdFQTYxMT5JPEVBRkZDMEEyMTIwRkFDRUMKLTFGRjBBMkVDMDc4MEVDMEUwMDVDMTQzMDVDRUJDMUMwRUJDMzgwMTNDNzEzREZFQkZGQzBFQkU3RTBFQkMzRjAxMzgxODBFQgotODBGQzE0N0U4MEEyRUMxRjgwRUMwRkMwMzlGRkY4M0ZGOEEyMUQyNjdGQTUyMD4xMDcgRDxFQUZGQzBBMjEyMEZCM0IwRUEKLUZGRkNBMjBFMjY3RUE1MTE+STwyNkZGODBGRTEzN0Y5MDNBODNGRjgxRkZDMDNCMEY4RTBGQzcwN0UwMDE5ODEzQ0M5MDNBCi05MDA3RTgwM0YwMDFBMDEzRjBBMjAxQzAxM0UwQUYzQkZGRkM3RkZFM0ZGRkEyMzAxODdFOTczMz5JPDM4RkY4MEZFOTAzOAotODNGRjgwMzkwRjhFMEZDMDEzOTg5MDM4OTAwN0UwMTNBMEEyMTNDMEFGMzlGRkZDN0ZGRUEyMUYxODdFOTcyMj5JPEVCN0YKLTgwMzgwM0ZGRjAzODA3QzBGODM4MUY4MDdFNDg0ODdFQTIwMDdFRUIxRjgwQTIwMEZFMTRDMEE4MDA3RTE0ODBBMjZDRUIzRgotMDBBMjM4MUY4MDdFNkM2QzVBMzgwM0ZGRjAzODAwN0Y4MDFBMTg3RTk3MUY+STwzOEZGQzFGQ0VCQ0ZGRjM5MEZGQzFGQzAKLTkwMzhGMDA3RTAwMUMwMTNGMDE0MDMxNUY4MTQwMTE1RkNBOEVDMDNGOEEyMTVGMEVCRTAwNzkwMzhGMDBGRTA5MDM4REMxRgotODA5MDM4Q0ZGRjAwRUJDM0Y4MDFDMEM3RkNBOUVBRkZGQ0EyMUUyMzdGOTcyMj5JPDM4RkY4M0UwRUI4RkY4MzgwRjhDN0MKLUVCOTBGQzEzQjAxM0EwMTQ3OEVCRTAwMDVCQUVFQUZGRkVBMjE2MTg3Rjk3MTk+MTE0IEQ8MzgwN0Y4QzBFQTFGRkZFQTNDCi0wN0VBNzAwMUVBRjAwMEEzMDBGQzEzMDBCNDdFRUE3RkZDN0YzODNGRkY4MDAwMEYxM0MwMTIwMzM4MDAxRkUwMTMwM0VBQzAKLTAxQTIxMkUwMTRDMEVBRjAwMzM4RkMwNzgwMzhFRkZGMDBFQUMzRkMxMzE4N0U5NzE4Pkk8MTNDMEE0MTIwMUEzMTIwMzEyCi0wNzEyMEYxMjFGQjUxMkMwQTIzODBGQzAwMEFDMTQ2MEE2MzgwN0UwQzAxM0UxMzgwMUZGODAzODAwN0UwMDEzMjM3RkEyMTgKLT5JPDM5RkZDMDdGRTBBMjAwMEYxMzA3QjAxNDBGQTIwMDA3MTMxN0VCRTA2NzM5MDNGRkM3RkUzODAwN0YwNzFGMTg3RTk3Ci0yMj5JPDM5RkZGODBGRjhBMjM5MEZDMDAxQzAxNTgwMzkwN0UwMDMwMEEyNkQ1QTAwMDMxMzA2RUJGODBFMDAwMTEzMEMxMwotRkMwMDAwNUIxM0ZFRUI3RTMwQTI2RDVBQTIxNEUwNkQ1QUEyNkQ1QUEyNkRDN0ZDQTIxRDE4N0Y5NzIwPkk8M0JGRkY5RkYKLUUwRkY4MEEyM0IxRkMwM0YwMDFDMDAwMDBGNkQxMzE4MTU4MEQ4MDdFMDVDQTI5MDM5RjAzRkMwNzAwMDAzMDEzNzEzNjAxNQotRTAyNjAxRjg2MzVCQTI5MDM4RkNFM0YxMDAwMDAxQzE1QjE1Rjk5MDI2N0Y4MEZCQzdGQ0EyMTVGRjkwMzgzRjAwN0VBMjAxCi0xRTEzM0NBMzAxMEMxMzE4MjkxODdGOTcyQz5JPDM5RkZGODNGRjBBMjM5MEZDMDBGMDAzODA3RTAwRTZDNkM1QTZENUE2QwotNkM1QTAwMDAxMzYwRUI3RUMwNkQ1QUEyMTMxRjZEN0U0OTdFODBFQjMzRjgxMzYxRUJFMEZDMzgwMUMwN0UzODAzODA3RjM5Ci0wNzAwM0Y4MDQ4MTMxRjM5RkZDMDdGRjhBMjFEMTg3Rjk3MjA+STwzOUZGRjgwRkY4QTIzOTBGQzAwMUMwMTU4MDM5MDdFMAotMDMwMEEyNkQ1QTAwMDMxMzA2RUJGODBFMDAwMTEzMEMxM0ZDMDAwMDVCMTNGRUVCN0UzMEEyNkQ1QUEyMTRFMDZENUFBMjZECi01QUEyNkRDN0ZDQTIxMzA2QTI1QjEyMzBFQTc4MUNFQUZDMTg1QjEzNzBFQTY4RTBFQTdGQzAwMDFGQzhGQzFEMjM3Rjk3MjAKLT5JIEUKLSVFbmREVklQU0JpdG1hcEZvbnQKLSVEVklQU0JpdG1hcEZvbnQ6IEZrIGNtc2wxMCAxMC45NSA0OAotL0ZrIDQ4IDEyMiBkZjxFQjAzRTBFQjFDMTgxMzM4RUI3MDNDMTNFMDE0MzgzODAxQzAwMEE1NDg1QTM4N0ZGRkYwMzgwMzgwCi03MEE0MzgwNzAwRTBBNjM4MEUwMUMwQTYzODFDMDM4MDAwMUUxM0MwMzhGRjBGRjAxNjIwN0U5RjE5PjEyCi1EPEVCMDNGNEVCMUMxQ0VCMzgzQzEzNzAxM0UwMTQzOEVBMDFDMEE1MzgwMzgwNzAzODdGRkZGMDM4MDM4MDcwQTQzODA3MDAKLUUwQTYzODBFMDFDMEE2MzgxQzAzODAwMDFFMTNDMDM4RkY5RkYwMTYyMDdFOUYxOT5JPEVBRkZGMEEyMEMwMjdFOEEwRj4KLTQ1IEQ8MTM3RUVBMDFDMzM4MDMwMTgwMDAwNzEzQzBFQTBFMDAxNEUwNUFBMkVBM0MwMTEyMzgxMjc4QTUzOEYwMDNDMEE1Ci0xNDgwMTMwNzEyRTAxNDAwQTIxMzBFMTI2MEVBNzAxQ0VBMzAzOEVBMzg3MEVBMEZDMDEzMUY3QzlEMTc+NDgKLUQ8MTMxODEzMzhFQTAxRjhFQTBFNzAxMjAwQTUxM0UwQTZFQTAxQzBBNkVBMDM4MEE2RUEwNzAwMTM4MEVBRkZGQzBFMUU3QgotOUQxNz5JPDE0MDgxNDBDMTQxQzE0M0NBMjE0N0MxNDdFMTQ5RUEyRUIwMTFFQTIxMzAyODAxMzA0QTIxMzA4QTIwMTEwMTMKLTgwMTQwNzEzMjBBMkVCN0ZGRjkwMzg0MDA3QzBFQjgwMDNBMkVBMDEwMEEyMTIwMkVDMDFFMDEyMDYwMDFGMTMwMzM5RkY4MAotMUZGRTFGMjA3RjlGMjI+NjUgRDwwMDA3QjVGQzM5MDBGODAzQzA5MDM4NzgwMUUwRUMwMEYwNDkxM0Y4QTUxNUYwMzgwMUUwCi0wMUVDMDNFMDE1QzBFQzBGODA5MDM4RkZGRTAwOTAzOEUwMEY4MDM5MDNDMDAzQzBFQzAxRTAxNUYwQTIxNDAwQTI0ODVBMTQKLTAxQTIxNUUwMTQwM0VDMDdDMDM5MEYwMDBGODBFQzNFMDBCNTEyRjAxRDFGN0U5RTIwPkk8RUNGRTAyOTAzODA3MDE4NjkwCi0zODFDMDA0RTAxNzAxMzNFNDkxMzFFNDg0ODEzMUM0ODQ4MTMwQzEyMDc0OEM3RkM1QTEyMUUwMDNFMTQwODAwM0MxNDAwMTIKLTdDQTQ1QUE0MTI3ODE1MTAxNTIwQTI3RTE1NDAwMDFDMTQ4MDZDRUIwMTAwNkMxMzAyMzgwMzgwMEMzODAwRTAzMEVCM0ZDMAotMUYyMTdDOUYyMT5JPDAwMDdCNTdFMzkwMEY4MDFFMDkwMzg3ODAwNzA4MTQ5N0YxNTFFMTUwRTE1MEZBMzQ4NDgxNDgwQTYKLTQ4NDgxNDAwNURBMzE1MUUxNTNFNDg0ODEzM0M1REEyNUQ0QTVBNEE1QTI2MEYwMDBGQzdGQzE0M0NCNTEyRjAyMTFGN0U5RQotMjM+STwwMDA3QjUxMkZDMzkwMEY4MDA3QzAxNzgxMzFDMTUwQzVCMTUwNEE0MTQwNDM5MDFFMDA4MDBBMzE0MzhFQkZGRjgKLUVCRTAzODM4MDNDMDEwQTRFQzAwMDgxNTEwNDg1QUEyMTUyMEEyMTU2MDE1QzAzODBGMDAwMTE0MDdCNjEyODAxRTFGN0U5RQotMUY+STwwMDA3QjUxMkY4MzkwMEY4MDA3ODAxNzgxMzM4MTUxODVCMTUwOEE1MzkwMUUwMDgwMEEzMTQxODE0MzhFQkZGRjgKLTM4MDNDMDMwMTQxMEE0OTFDN0ZDNDg1QUE2NDhDOEZDN0ZFQUZGRkMxRDFGN0U5RTFFPkk8M0EwN0ZGODNGRkMwM0EwMEY4Ci0wMDdDMDAwMTc4MTMzQ0EyNDk1QkE2NDg0ODVCQTQ5MEI1RkNFQkUwMDA0ODQ4NDg1QUE2NDg0ODQ4NUFBNjQ4NDg0ODVBMDEKLTgwN0YzOUZGRjA3RkY4MjIxRjdFOUUyMj43MiBEPDM4MDdGRjgwMzgwMEY4MDAxMzc4QTI1QkE2NDg1QUE2NDg1QUE2NDg1QQotQTY0OEM3RkM3RkVBRkZGMDExMUY3RTlFMTA+STwzQTA3RkY4MDNGRTAzQTAwRjgwMDFGMDAwMTc4MTMwQzVENDkxMzIwNUQKLTVENEFDN0ZDMTQwMjE0MDg0ODQ4NUE1QzE0NjAxNEYwMTNFMUVCRTRGODM4MDNDODc4RUJEMDdDRUJFMDNDRUJDMDNFMTQxRQotMTQxRjQ4NDg3RTgxMTQwNzgxMTQwMzgxMzgwRjAwMDE2RDQ4N0UzOUZGRjAwRkZFMjMxRjdFOUUyMz43NQotRDwzODA3RkZFMEQ4MDBGQ0M3RkMxMzc4QTI1QkE2NDg1QUE2NDg1QUE0MTU4MEVDMDEwMEVBMDc4MEEyNUMxNDAyMTQwNjE0Ci0wRTM4MEYwMDFFMTQ3Q0I1MTJGQzE5MUY3RTlFMUM+STxEODA3RjhFQzdGRTAwMDAwRUQ3QzAwMDE3ODE0QkNBMjAxOUM0OQotNUFBMjE1MDJBMjAxOEUxMzA0MTUwOEQ4MDEwRTVDMTUxMEEyNkQxMzIwQTIxNTQwMDAwMkVDNDFFMDkwMzgwMzgwODFFQzgxCi0wMUEyMTQ4MkEyM0EwNDAxQzQwM0MwQTIxNEM4QTJFQjAwRjAwMDBDMTNFMDRCNUEwMDFFMDFDMDdGRDhGRkMwRUI3RkZDMkIKLTFGN0U5RTJBPkk8RDgwN0Y4RUI3RkMwRDgwMDdDRUIxRjAwMTUwQzAxNUUxMzA0MDE5RTVCMTM4RkEyRUI4NzgwQTJFQjgzCi1DMEQ4MDEwMzVCRUIwMUUwQTJFQjAwRjBBMjE0NzgwMDAyNUMxNDNDQTIxNDFFQTIxNDBGNDg1Q0VDMDdDMEEyMTQwM0EyMTQKLTAxMDAwQzVDMDAxRTEzMDBCNDdFMjIxRjdFOUUyMj5JPEVCMDFGQ0VCMEUwNzkwMzgzODAxQzA5MDM4NzAwMEUwNDg0ODEzCi1GMDQ4NDgxMzc4NDg1QTE1M0M0OEM3RkM1QTAwMUUxNDNFMTIzRTEyM0MxMjdDQTQ0ODE0N0NBMzE1NzgxNUY4MTI3OEVDMDEKLUYwMDA3QzE0RTAxNDAzMDAzQzE0QzAwMDFDRUIwNzgwMDAxRUVCMEYwMDZDMTMxRTM4MDc4MDM4MzgwMUMwRTAzODAwN0Y4MAotMUYyMTdDOUYyMz5JPDAwMDdCNUZDMzkwMEY4MDNDMDkwMzg3ODAwRjAxNTc4NUIxNTdDQTQxNTc4NDg0ODEzRjgxNUYwRUMKLTAxRTBFQzAzQzBFQzBGMDBFQkZGRkNEODAzQzBDN0ZDQTY0ODVBQTY0OEM4RkM3RkVBRkZGODFFMUY3RTlFMUY+STwzODA3Ci1GRkZFMzkwMEY4MDc4MDkwMzg3ODAxRTBFQzAwRjA1QjE1RjhBNDE1RjAzODAxRTAwMTE1RTBFQzAzQzBFQzA3ODBFQzFFMDAKLUVCRkZGMDM4MDNDMDM4ODAxNDFFMTQwRUEyMTQwRjQ4NDg1QUE1MTUwMUQ4MEYwMDEzMDI5MDM4ODAwRjgyMzlGRkY4MDc4QwotQzdFQTAxRjAyMDIwN0U5RTIyPjgyIEQ8RUIxRjgyRUI3MDY2RUJDMDFFMzgwMTgwMEVFQTAzMDA0ODEzMEMwMDA2MTMwNDEyCi0wRUEzMDAwRjEzMDBBMjdGRUEwN0YwMTNGRjZDMTNDMDZDMTNFMDM4MDAzRkYwRUIwM0Y4MTMwMDE0NzgxNDNDQTIwMDQwMTMKLTM4QTMxNDMwMDA2MDEzNzAxNDYwMDBGMDEzQzAzOEU4MDE4MDM4QzYwMzAwRUE4MUZDMTcyMTdFOUYxOT5JPDAwM0ZCNTEyCi1GMDM4M0MwNzgwMDAzMDE0MzAxMjYwMzk0MDBGMDAxMEEyMTJDMDEyODBBM0Q4MDAxRTEzMDBBNjVCQTY1QkE2NUI3RjM4M0YKLUZGRTAxQzFGN0E5RTIxPkk8MzlGRkYwMEZGODM5MUYwMDAzRTA2Q0VCMDE4MDE0MDAwMDFFRUIwMTAwQTY0ODEzMDJBNjQ4Ci01QkE2MDA3MDVCQTI1Q0EyMDA3ODVCMTIzODAwMTgxM0MwNkM0OEM3RkNFQTA3MDZFQTAxRjgxRDIwNzk5RTIyPkk8M0JGRgotRjA3RkY4MUZGMDNCMUYwMDBGQzAwN0MwMDAxRTkwMzkwNzgwMDM4MDAwMUZFRDAxMDA2QzE1MDIxNDBGNUVFQzE3QzAwMjEzCi01QjE0MjMwMTgwNUMwMDA3MTM0MzVFMTRDMzkxMzg4M0UwNDAxNDgxRDk4MTAxNUIxM0MxRDgwM0MyMTNFMTkzQzdGQzEzQzQKLTE1RjJFQkM4MDAxNUY0RUEwMUYwMTVGODVCNUQ1QjE1NjA1QjAwMDAxNDQwMkMyMDdBOUUyRj44NwotRDxFQTA3RjhFQTBDMENFQTFFMDYxMzA3MTIxQzEyMDBBMzEzRkZFQTA3QzdFQTFFMDdFQTNDMEUxMjc4MDBGMDEzMTBBMzEzCi0xRUVCMkUyMDM4Nzg0RjQwMzgxRjg3ODAxNDE0N0Q5MzE3Pjk3IEQ8MTIwNzEyM0YxMjBGN0VBMjEyMEVBNjVBMTM3Q0VBMUQKLTgzMzgxRTAxODAwMDFDMTNDMEVCMDBFMDVBMTRGMEE1Mzg3MDAxRTBBMjE0QzAxMzAzMTQ4MEVCMDcwMEVBRTgwRUVBQ0MzOAotRUE4M0UwMTQyMDdCOUYxOT5JPDEzRkVFQTAzODMzODBFMDc4MDEyMUMwMDM4MTMwMDkwQzdGQzEyNzg1QUE0NUFBMzdFNUIKLUVBNzAwMjZDNUFFQTFDMThFQTA3RTAxMTE0N0Q5MzE0Pkk8MTQzOEVCMDFGOEVCMDA3ODE0MzhBMjE0NzBBNjE0RTAxM0ZDCi1FQTAzODJFQTA2MDExMjFDRUEzQzAwMzgzODAxQzAxMjc4MTJGMEE0MzhFMDAzODBBNDEyRjBFQTcwMDczODM4MEYwMDM4MUMKLTM3ODAzODA3QzdFMDE1MjA3RDlGMTk+STwxM0Y4RUEwNzBFRUEwRTA3MzgxQzAzODAxMjM4MTI3ODEyNzAxMkYwQjVGQzAwCi1GMEM3RkNBMjVBQTQ2QzVBRUE3MDAyRUEzMDA0RUExQzE4RUEwN0UwMTExNDdEOTMxND5JPEVCMDdDMEVCMUM2MEVCMzBGMAotMTM2MEVCRTBFMEVCQzAwMDEyMDFBNTQ4NUFFQTNGRkNFQTAzODBBNDQ4QzdGQ0E2MTIwRUE2NUExMjFFRUFGRkMwMTQyMDdGCi05RjBFPkk8MTQwRUVCM0UxMUVCRTFBMzM4MDFDMUMyMzgwMzgxRTBFQTA3ODAxMzAxMTIwRkEzMzgwNzAzQzAxNDgwRUI4NwotMDBFQTA0RkM0OEM3RkNBMjEyMTgxMjFDRUEwRkZGMTRDMDE0RTAzODE4MDBGMDQ4MTMzMDVBNUFBMzAwNjAxMzYwNkMxM0MwCi0zODFDMDcwMEVBMDdGQzE4MUY4MDk0MTc+STwxM0UwMTIwNzEyMDExMjAwQTI0ODVBQTY0ODVBRUI4RjgwRUI5MEUwMTNBMAotRUJDMDYwMTM4MDAwMDcxM0UwMTMwMEE1MzgwRTAxQzBBNjM4MUMwMzgwMDAxRTEzQzAzOEZGOEZGMDE0MjA3RTlGMTk+STwKLUVBMDFDMEVBMDNFMEEyMTNDMEVBMDE4MEM3RkNBNkVBMDM4MDEyMUYxMjA3MTIwM0EyRUEwNzAwQTYxMjBFQTY1QTEyMUVFQQotRkY4MDBCMUY3RjlFMEM+STwxM0UwMTIwNzEyMDExMjAwQTI0ODVBQTY0ODVBRUI4MUZDRUI4MEYwMTRDMEVCODE4MDE0MDAKLUVBMDcwNDVCMTMxODEzMzgxMzdDMTMxQzEyMEU3RkEyMTMwRjdGMTQ4MEVBMUMwMzM4MUUwN0MwMzhGRjhGRjAxNjIwN0U5RgotMTg+MTA3IEQ8MTNFMDEyMDcxMjAxMTIwMEEyRUEwMUMwQTZFQTAzODBBNkVBMDcwMEE2MTIwRUE2NUExMjFFRUFGRjgwMEIKLTIwN0Y5RjBDPkk8MzkwMzg3QzA3QzM5MUY5ODYxODYzOTA3QTA3MjA3MzkwM0MwMzQwM0VCODAzODAwMDdFQjc4MDdFQjAwCi03MEE1MDAwRUVCRTAwRUE2NDg0ODQ4NUEwMDFFRUJFMDFFM0FGRkNGRkNGRkMwMjIxNDdFOTMyNj5JPDM4MDM4RjgwMzgxRgotOTBFMEVBMDdBMDM4MDNDMDYwMTM4MDAwMDcxM0UwMTMwMEE1MzgwRTAxQzBBNjM4MUMwMzgwMDAxRTEzQzAzOEZGOEZGMDE0Ci0xNDdFOTMxOT5JPDEzRkNFQTAzODczODBFMDE4MDM4MUMwMEMwNDgxM0UwQTI0ODEzRjAxMkYwQTQzOEUwMDFFMEEyMTRDMAotMTMwMzAwRjAxMzgwMzg3MDA3MDBFQTM4MEU2QzVBRUEwN0UwMTQxNDdEOTMxNz5JPEVCRTNFMDM4MDdFQzM4MzgwMUYwMUMKLTZDNDg3RTE0MEY0ODQ4N0UxNTgwQTUzOTAzODAwRjAwQTIxNDBFMTQxRTE0MUM1QzM4MDc0MDcwRUI2MUMwMDExRkM3RkM5MAotQzhGQ0EzMTIwRUE0MTIxRUVBRkZDMDE5MUQ4MDkzMTk+STxFQkZDMjAzODAzODI2MEVBMDcwMjM4MUUwMUUwMTIzQzAwMzgKLTEzQzAxMjc4MTJGMEE0MzhFMDAzODBBMjEyRjBBMjEzMDcxMjcwMzgzODBGMDBFQTFDMzdFQTA3QzdFQTAwMDdBMzEzMEVBNAotMTMxRUVCRkZDMDEzMUQ3RDkzMTg+STxFQTAzOEUzODFGQjM4MEVBMDdDNzEyMDNFQjgzMDBFQTA3ODA5MEM3RkNBNTEyMEUKLUE2NUExMjFFRUFGRkMwMTExNDdFOTMxMj5JPEVBMDFGOUVBMDYwN0VBMDgwMzEyMTgxMzAxRUEzODAyRUEzQzAwMTIxRjEzCi1GMEVBMDdGQ0VBMDFGRUVBMDAxRkVBNDAwNzEzMDNBMjEyNjAxMzA2RUFGMDA0RUFDODE4RUE4N0UwMTAxNDdGOTMxMj5JPAotMTM4MEVBMDEwMEEzNUE1QTVBMTIxRUVBRkZGOEVBMEUwMEE0NUFBNjVBMTMxMEE0MTMyMEEyRUExODQwRUEwRjgwMEQxQzdDCi05QjEyPkk8MzgxQzAzODBFQUZDMUZFQTNDMDdFQTFDMDNBMjM4MzgwNzAwQTZFQTcwMEVBNDEzMUVBMjVCRUEzMDVFMzgxRgotOUY4MDExMTQ3QjkzMTk+STwzOEZGODNGODM4MUUwMEUwMDAxQzEzQzAxNDgwMTIxRTM4MEUwMTAwNUIxMzAyNUIxMjA3NUIKLUEyNUJFQTAzOTAxM0EwMTNFMDVCNUIxMjAxOTBDN0ZDMTUxNDdDOTMxOD5JPDM5RkY5RkUxRkMzOTNDMDc4MDcwMzkxQzAzCi0wMDYwMTQ4MDE1NDAxNTgwRUEwRTA3OTAzODBEODEwMDEzMDlFQjE5QzIxMzExMzgwRjIxQzRFQTA3MjBFQjQwQzgxNEU4RUIKLTgwRjBBMjZDNDg1QTE0NjAwMDAyMTM0MDFFMTQ3QzkzMjE+STwzODFGRjBGRjM4MDNDMDc4MDAwMTEzNzAxNDQwMzgwMEUwCi1DMEVCRTE4MEVCNzMwMDEzNzYxMzNDQTIxMzFDMTMyRTEzNEUxMzg3RUEwMTA3MzgwMjAzODAxMjA0MzgwQzAxQzAzODNDMDMKLUUwMzhGRTA3RkMxODE0N0Y5MzE4Pkk8MzkwRkY4M0Y4MDM5MDFFMDBFMDBFQkMwMEMxNDA4MTNFMDAwMDA1QjE0MzAxNDIwCi01QzEzNzA1Q0EyMDE3MUM3RkMxMzM5MTMzQTEzM0UxMzNDMTMzODEzMTgxMzEwQTI1QkEyNUJFQTcwQzBFQUYwODAwMEYxQzgKLUZDMTJFNjEyNzgxOTFEODA5MzE4PkkgRQotJUVuZERWSVBTQml0bWFwRm9udAotJURWSVBTQml0bWFwRm9udDogRmwgY210aTEwIDEwLjk1IDIwCi0vRmwgMjAgMTIyIGRmPEVDM0ZFMEVDRTAxMDkwMzgwMTgwMzgwMTAzMTM3OEEyOTAzODA3MDAzMDE1MDBBMzEzMEVBMzkwQjUKLTEyRTBFQjBFMDA5MDM4MUMwMUMwQTRFQzAzODAxMzM4QTNFQzA3MDBBMjEzNzgwMTcwMTMxMEVDMEUyMEEzMTM2MDkwMzhFMAotMDY0MEVDMDM4MDkxQzdGQzVCQTIxMjAxRUEzMTgwMTI3OTQ4QzhGQzEyNjIxMjNDMUQyOTgyOUYxQT4xMgotRDwxMjcwMTJGOEEyMTJGMDEyRTAwNTA1N0I4NDBFPjQ2IEQ8RUJGMTgwMzgwMzg5QzAzODA3MDc4MEVBMEUwMzEyMUMxMjNDCi0zODM4MDcwMDEyNzhBM0VBRjAwRUEzMTQyMEVCMUM0MEEyRUE3MDNDMTM1QzM4MzA4QzgwMzgwRjA3MDAxMzE0N0M5MzE3PgotOTcgRDwxMzdFRUEwMUMxMzgwMzAwODBFQTBFMDcxMjFFMDAxQzEzMDAwMDNDQzdGQzVBQTM1QUE0NUIxMjcwMTMwMkVBMzAKLTBDRUExODMwRUEwN0MwMTExNDdDOTMxNT45OSBEPDE0NzhFQjAzRjhFQjAwNzBBNDE0RTBBNEVCMDFDMEEyMTNGMUVBMDM4OQotMzgwNzA3ODBFQTBFMDMxMjFDMTIzQzM4MzgwNzAwMTI3OEEzRUFGMDBFQTMxNDIwRUIxQzQwQTJFQTcwM0MxMzVDMzgzMDhDCi04MDM4MEYwNzAwMTUyMDdDOUYxNz5JPDEzN0NFQTAxQzJFQTA3MDExMjBFMTIxQzEyM0NFQTM4MDJFQTc4MENFQTdGRjBFQQotNzgwMDVBQTRFQTcwMDFBMjEzMDJFQTM4MENFQTE4MzBFQTA3QzAxMDE0N0M5MzE1Pkk8RUIzQzYwRUJFMjcwMzgwMUMxRTAKLUVBMDM4MEVBMDcwMDVBMzgwRTAxQzAxMjFFQTMzODNDMDM4MEE0RUIwNzAwQTJFQTFDMEYxMzE3RUEwQzJFRUEwM0NFRUEwMAotMEVBMjVCQTIxMjMwRUE3ODM4NDg1QUVBNjBFMEVBM0Y4MDE0MUQ3RTkzMTU+MTAzIEQ8MTNDMEVBMDFFMEEyMTNDMEM3RkMKLUE3MTIwRTEyMTMxMjIzRUE0MzgwRUE0NzAwQTIxMjg3MTIwRUEzNUFBM0VBMzg0MDEzODBBMjEyNzBFQTMxMDAxMjMyMTIxQwotMEIxRjdDOUUwRT4xMDUgRDxFQTAzQzAxMjFGRUEwMzgwQTRFQTA3MDBBNDEyMEVBNDVBQTQ1QUE0NUFBMzEyNzExMkUyQTQKLTEyNjQxMjM4MEEyMDdDOUYwQz4xMDggRDwzOTFDMEY4MEYwMzkyNjMwQzMxODM5NDc0MDY0MEM5MDM4ODA2ODBFRUIwMDcwCi1BMjAwOEU0OTVBMTIwRUEzNDg0ODQ4NUFBM0VENzA4MDNBMzgwMzgwNzEwMEEyMTVFMTE1NjIzOTcwMDcwMDY0RDgzMDAzMTMKLTM4MjExNDdDOTMyNT5JPDM4MUMwRjgwMzgyNjMwQzAzODQ3NDA2MDEzODBFQjAwNzBBMjAwOEUxM0UwMTIwRUEzMzgxQzAxCi1DMEEzRUIwMzg0MDAzODEzODhBMkVCMDcwOEVCMDMxMDAwNzAxMzMwMzgzMDAxQzAxNjE0N0M5MzFBPkk8MTM3Q0VBMDFDMwotMzgwMzAxODAwMDBFMTNDMDEyMUUwMDFDMTNFMDEyM0MxMjc4QTMzOEYwMDNDMEEzRUIwNzgwMTQwMEVBNzAwRjEzMEVFQTMwCi0xOEVBMTg3MEVBMDdDMDEzMTQ3QzkzMTc+STwzODAxQzFFMDM4MDI2MjE4MzgwNDc0MUMxMzc4RUI3MDFFQTJFQTA4RTAxMgotMDBBMzM4MDFDMDNDQTMxNDM4MzgwMzgwNzgxNDcwMTRFMEVCQzFDMDM4MDcyMzgwRUIxRTAwOTBDN0ZDQTIxMjBFQTQ1QUEyCi1CNDdFMTcxRDgwOTMxNz5JPEVBMUMxRUVBMjY2MTM4Mjc4MzgwRUE0Nzg3MTMwN0VCMDMwMDAwOEVDN0ZDMTIwRUEzNUFBNAotNUFBNDVBMTIzMDExMTQ3QzkzMTM+MTE0IEQ8MTNGQ0VBMDMwMkVBMDYwMUVBMEMwMzEzMDcxMzA2MTMwMEVBMEY4MDEzRjAKLUVBMDdGOEVBMDNGQ0VBMDAzRTEzMEUxMjcwRUFGMDBDQTJFQUUwMDhFQTQwMTBFQTIwNjBFQTFGODAxMDE0N0Q5MzEzPkk8Ci1FQTAxODAxM0MwRUEwMzgwQTRFQTA3MDBBMkVBRkZGMEVBMDcwMDEyMEVBNDVBQTQ1QUEzMTMyMEVBNzA0MEEyMTM4MEEyRUEKLTMxMDAxMjFFMEMxQzdDOUIwRj5JPDAwMEUxM0MwMDAxMzEzRTAzODIzMDFDMEVBNDM4MUVBNDcwMUEyMzg4NzAzODAxMjBFCi1BMzM4MUMwNzAwQTMxNDEwRUIwRTIwMTIxOEEyMzgxQzFFNDBFQTBDMjYzODA3QzM4MDE0MTQ3QzkzMTg+STwzODBFMDM4MAotRUExMzA3MDAyMzEzQzBFQTQzODNFQTQ3MDExMzAwMDA4NzEzODAxMjBFQTMzODFDMDEwMEEzMTMwMkEyNUJBMjVCRUEwRTMwCi1FQTAzQzAxMjE0N0M5MzE1Pkk8MDAwRUVCQzFDMDAwMTMxM0UzMzkyMzAxQzNFMDM4NDM4MUMxMzg0NzAxQzAxNTYwMzk4NwotMDM4MDQwMTIwRUEzMzkxQzA3MDA4MEEzRUMwMTAwQTIxMzA2RUIwRjAyMDAwQzVCMzgwRTEzMDgzODAzRTFGMDFCMTQ3QzkzCi0xRT5JPDAwMEUxM0MwMDAxMzEzRTAzODIzMDFDMEVBNDM4MUVBNDcwMUEyMzg4NzAzODAxMjBFQTMzODFDMDcwMEE0MTMwRQotMTIxOEEyRUExQzFFRUEwQzNDRUEwN0RDRUEwMDFDQTI1QjEyRjA1QkVBRTA2MDQ4NUFFQTQzODAwMDNFQzdGQzEzMUQ3QzkzCi0xNj4xMjEgRCBFCi0lRW5kRFZJUFNCaXRtYXBGb250Ci0lRFZJUFNCaXRtYXBGb250OiBGbSBjbXI4IDggMjkKLS9GbSAyOSAxMTggZGY8MTI2MDEyRjBBMjEyNzAxMjEwQTIxMjIwQTIxMjQwQTIwNDBBN0Q5NjBBPjM5Ci1EPEVBRkY4MEEyMDkwMjgwODcwQz40NSBEPDEyMDYxMjBFMTJGRTEyMEVCMUVBRkZFMDBCMTU3RDk0MTI+NDkKLUQ8MTMxMDEzMzhBMzEzNUNBMzEzOEVBM0VBMDEwN0EyMzgwMjAzODBBMzM4MDdGRkMwRUEwNDAxQTIzODA4MDBFMEEyMDAxOAotMTNGMDEyMzgzOEZFMDNGRTE3MTc3Rjk2MUE+NjUgRDxFQUZGRkUzODFDMDM4MEVCMDBFMDE0NjAxNDcwQTQxNEUwRUIwMUMwCi0zODFGRkY4MDE0QzAzODFDMDBFMDE0NzAxNDMwMTQzOEE0MTQ3MDE0RTBFQjAxQzBCNTEyMDAxNTE3N0Y5NjE5Pkk8RUJGQwotMTAzODAzODMzMDM4MEUwMEIwNDgxMzcwNDgxMzMwMTIzMDAwNzAxMzEwMTI2MDEyRTAxNDAwQTUxNDEwMTI2MDEyNzAwMDMwCi0xMzIwMTIzODZDMTM0MDZDMTM4MDM4MDM4MzAwRUEwMEZDMTQxNzdFOTYxOT5JPEI1RkMzODFDMDFDMEVCMDBFMDE0MzAxNAotMzgxNDE4MTQxQzE0MEMxNDBFQTcxNDBDMTQxQ0EyMTQzODE0MzAxNDYwRUIwMUMwQjUxMjAwMTcxNzdGOTYxQj5JPEI1MTIKLUUwRUExQzAwMTQ2MDE0MjAxNDEwQTNFQjA0MDBBMzEzMENFQTFGRkNFQTFDMEMxMzA0MTQwOEEyMTMwMDE0MTgxNDEwQTIxNAotMzAxNEYwQjVGQzE1MTc3Rjk2MTg+STxCNTEyRTBFQTFDMDAxNDYwMTQyMDE0MTBBM0VCMDQwMEEzMTMwQ0VBMUZGQ0VBMUMKLTBDMTMwNEEzOTBDN0ZDQTZFQUZGQzAxNDE3N0Y5NjE3Pkk8RUFGRkMwMDAxQ0M3RkNBRDE0MjBBMzE0NjBBMjE0NDAxNEMwCi0xMzAzQjVGQzEzMTc3Rjk2MTY+NzYgRDwwMEZFRUIwM0Y4MDAxRTE0QzAwMDE3MTMwNUEzMzgxMzgwMDlBMjM4MTFDMDExQTMKLTM4MTBFMDIxQTJFQjcwNDFBM0VCMzg4MUEyRUIxRDAxQTIxMzBFQTIxMjM4MzlGRTA0MEZGODFEMTc3Rjk2MjA+STxFQUZGCi1GRTM4MUMwMzgwRUIwMEMwMTQ2MDE0NzBBNDE0NjAxNEMwRUIwMzgwMzgxRkZFMDAwMDFDQzdGQ0FBQjQ3RTE0MTc3Rjk2MTgKLT44MCBEPEVBRkZGQzM4MUMwMzgwRUIwMEMwMTRFMDE0NzBBNDE0RTAxNEMwRUIwMzgwMzgxRkZFMDAzODFDMDc4MEVCMDFDMAotRUIwMEUwQTUxNEUxQTIxNDcyMzhGRjgwM0MxODE3N0Y5NjFBPjgyIEQ8RUEwRkM0RUEzMDJDRUE2MDFDRUE0MDBDRUFDMDA0Ci1BM0VBRTAwMDEyNzAxMjdGRUEzRkUwRUEwRkY4RUEwMUZDRUEwMDFDMTMwRTEzMDYxMjgwQTNFQUMwMDRFQUUwMDhFQUQ4MTAKLUVBODdFMDBGMTc3RTk2MTQ+STwzODdGRkZGODM4NjAzODE4MDA0MDEzMDhBMjAwODAxMzA0QTMwMDAwMTMwMEFGMzgwM0ZGCi04MDE2MTc3Rjk2MTk+STwxMkZDQTIxMkMwQjNBQjEyRkNBMjA2MjE3RDk4MEE+OTEgRDxFQTNGQzBFQTcwNjAxMzMwRUEyMAotMzgxMjAwRUEwM0Y4RUExRTM4MTIzMDEyNzBFQUUwMzlBMjEzNzlFQTcwRkZFQTFGMUUxMDBFN0Y4RDEyPjk3Ci1EPDEyRjgxMjM4QThFQTM5RjBFQTNFMENFQTM4MDYxMzA3N0YxNDgwQTQxNDAwNUIxMzA2RUEzNjFDRUEyMUYwMTExNzdGOTYKLTE0Pkk8RUEwN0YwRUExODM4MTIzMEVBNzAxMEVBNjAwMDEyRTBBNDEyNjBFQTcwMDgxMjMwRUExODMwRUEwN0MwMEQwRTdGCi04RDEwPkk8RUEwRkMwRUExODYwRUEzMDMwRUE3MDM4RUFFMDE4RUFGRkY4RUFFMDAwQTMxMjYwRUE3MDA4RUEzMDEwRUExOAotMzBFQTA3QzAwRDBFN0Y4RDEwPjEwMSBEPDEyMDNFQTA3ODBBMkVBMDMwMEM3RkNBNUVBMUY4MDEyMDNBRjEyNDNFQUUzMDAKLTEyRTcxMjdDMDkxRDgyOTYwQj4xMDYgRDwxMkY4MTIzOEE4MTMzRTEzMzgxMzMwMTM0MDEzODAxMjM5RUEzRkMwRUEzOUUwCi0xMjM4MTNGMDEzNzgxMzNDQTJFQUZFN0YxMDE3N0Y5NjEzPkk8RUFGOEY4RUEzQjFDRUEzQzBFMTIzOEFBMzhGRTNGODAxMQotMEU3RjhEMTQ+MTEwIEQ8RUEwN0MwRUExODMwRUEzMDE4RUE2MDBDQTJFQUUwMEVBNUVBNzAxQ0VBMzAxOEVBMTgzMEVBMDcKLUMwMEYwRTdGOEQxMj5JPEVBRjlGMEVBM0UxQ0VBMzgwNjEzMDc3RjE0ODBBNDE0MDA1QjEzMEVFQTNFMUNFQTM5RjAwMDM4Ci1DN0ZDQTUxMkZFMTExNDdGOEQxND5JPEVBRjlFMEVBM0E3MDEyM0NFQTM4MjAxMzAwQTlCNEZDMEMwRTdGOEQwRT4xMTQKLUQ8RUExRjQwRUE2MEMwRUFDMDQwQTJFQUUwMDBCNEZDRUE3RjgwRUExRkMwRUEwMUUwRUE4MDYwQTIxMkMwRUFFMEMwRUE5RgotMDAwQjBFN0Y4RDBFPkk8MTIwOEEzMTIxOEEyMTIzOEVBRkZDMEVBMzgwMEE3MTM0MEE0RUExQzgwRUEwRjAwMEExNDdGOTMKLTBFPkk8RUFGODNFRUEzODBFQUExMzFFRUExQzJFMzgwN0NGODAxMTBFN0Y4RDE0PkkgRQotJUVuZERWSVBTQml0bWFwRm9udAotJURWSVBTQml0bWFwRm9udDogRm4gY21zeTkgOSAyCi0vRm4gMiAxMDYgZGY8MTM4MDEyMDFFQTAzMDBBMzEyMDZBMjVBQTM1QUEzNUFBMjVBQTM1QUEyMTI2MEEzN0VBMjdFQTM3RQotQTM3RUEyN0VBM0VBMDE4MDEyMDAwOTI2N0Q5QjBGPjEwNCBEPDEyQzBBMjEyNjBBMzdFQTI3RUEzN0VBMzdFQTI3RUEzRUEKLTAxODBBMkVBMDMwMEEzMTIwNkEyNUFBMzVBQTM1QUEyNUFBMzVBQTIwOTI2N0U5QjBGPkkKLUUKLSVFbmREVklQU0JpdG1hcEZvbnQKLSVEVklQU0JpdG1hcEZvbnQ6IEZvIGNtc2x0dDEwIDEwLjk1IDI5Ci0vRm8gMjkgMTIyIGRmPDEyMDYxMjBGRUExRjgwMTIwRkEyMTIwM0VBMDcwMEEyNUExMjBFMTIzQzEyN0MxMkYwMTI2MDA5MEUKLTc2OUIxOD4zOSBEPDM4N0ZGRkMwQjUxMkUwQTI2QzEzQzAxMzA0N0M4RjE4PjQ1IEQ8MTMzRTEzRkYwMDAzMTM4MDM4MDdDMwotQzBFQTBGMDEwMDBFMTNFMEVBMUMwMDEyM0MwMDM4MTNGMDE0NzA1QUEzNDgxM0UwQTRFQjAxQzBBMjEzMDMwMEYwMTM4MEVBCi03MDA3RUIwRjAwRUE3ODFFNkM1QUVBMUZGODVCRUEwN0MwMTQxQzdDOUIxOD40OCBEPDEzMTgxMzM4QTIxMzc4MTNGODEyMDMKLTEyMEYxMzcwMTIwNDEyMDBBNDEzRTBBNkVBMDFDMEE2RUE3RkZFMTJGRjEyN0YwRjFDN0I5QjE4Pkk8RUIzRTE4RUJGRkI4Ci00ODEzRjhFQTA3QzFFQjgwNzhFQTBFMDAxMjFFMDAxQzEzNzA0ODEzMzAxNDAwNUFBMzVBQTYxNEMwRUE3MDAxQTIxMzAzMzgKLTM4MDc4MDM4M0MwRjAwRUExRkZFNkM1QUVBMDNGMDE1MUM3QzlCMTg+NjcgRDwzODA3RkZDMDE0RTAxNEYwMzgwMUMwRjgxNAotNzgxNDNDMTQxQ0VBMDM4MDE0MUVBMjE0MEVBMzM4MDcwMDFDQTQxNDNDMTQzODEyMEUxNDcwMTRGMEVCMDFFMEVCMDNDMDEzCi0wNzM4N0ZGRjgwMzhGRkZFMDBFQTdGRjgxNzFDN0Y5QjE4Pkk8MDAwN0I1RkM1QTdFMzgwMUMwMDdBMzE0MDYzODAzODAwMAotQTJFQjgxODAxNEMwQTIxM0ZGNDgxMzgwQTIxMzAzQTIxNDAwOTBDN0ZDMTIwRTE0MEMxNDFDQTQzODdGRkZGOEI1RkM3RTE4Ci0xQzdGOUIxOD5JPEVCMUZGOEVCM0ZGQ0VCMUZGOEVCMDFDMEE0RUIwMzgwQTZFQjA3MDBBNjEzMEVBMjEyNDAxMkUwNkM1QQotRUFFMDNDRUFGRkY4NkM1QUVBMUZDMDE2MUM3QzlCMTg+NzQgRDxFQTA3RkM0ODdFNkM1QUVBMDFDMEE0NDg1QUE2NDhDN0ZDCi1BNjEyMEUxNDMwMTQ3MEE0QjUxMkUwQTMxNDFDN0U5QjE4Pjc2IEQ8MzkwN0UwMUY4MDAwMEZFQjNGQzAwMDA3MTQ4MDM5MDMKLUIwMkUwMDE0NkVBMjE0Q0UzODA3MzBEQzEzMzExNDlDQTIxMzMzMTQxQzAwMEU1QjEzMzcxMzM2MTMzRTEzM0MxMzE4NDhDNgotNUFBNjM4RkUwM0Y4MDBGRjdGMDBGRTVCMUExQzdGOUIxOD5JPDEyNjAxMkYwQTM3RTEyNzhBMzEyN0MxMjNDQTMxMjNFMTIKLTFFQTMxMjFGN0VBMzEzODAxMjA3QTMxM0MwMTIwM0E0MTNFMDEyMDFBMzEzRjAxMjAwMTM2MDBDMjQ3ODlGMTg+OTIKLUQ8Mzg3RkZGQzBCNTEyRTBBMjZDMTNDMDEzMDQ3RTdGMTg+OTUgRDxFQTAzRkM0OEI0RkM0ODEzODAxMzAzMzgwNjAxQzAxMgotMDBBMjEzN0ZFQTA3RkYxMjFGRUEzRjgxMzg3ODAzODAxMkYwMTJFMEEyMTMwN0VBNzAxRjM4N0ZGRkYwRUEzRkZCRUEwRkUxCi0xNDE0N0Q5MzE4Pjk3IEQ8MTI3RUEzMTIwRUE0NUExMzdDRUExREZGMDAxRjEzODAxMzgzMzgxRTAxQzAxMjNDRUIwMEUwMTIKLTM4QTQzODc4MDFDMEEyRUIwMzgwQTJFQjBGMDBFQTdDMUZFQUZGRkNFQUVGRjhFQTYzRTAxMzFDN0M5QjE4Pkk8RUIwN0UwCi1BMzEzMDBBNEVCMDFDMEVBMDFGMUVBMDdGREVBMEZGRkVBMUUwRkVBM0MwNzM4NzgwMzgwMTI3MDEyRTBBNEVCMDcwMEEyNUIKLTVCNkM1QUVBNzg3RjM4M0ZGRkMwMzgxRkVGRTAzODBGODdDMDEzMUM3QzlCMTg+MTAwIEQ8MTNGOEVBMDdGRTQ4N0UzODFGCi0wNzgwRUEzQzAzMzg3ODAxQzAxMjcwMTJFMEEyQjVGQ0EyMTQ4MDAwRTBDN0ZDQTIxMzAzMzg3MDA3ODAzODc4MEYwMEVBM0YKLUZFNkM1QUVBMDdGMDEyMTQ3QjkzMTg+STxFQjAxRjhFQjA3RkMxMzFGRUIxRTNDRUIzODE4MTQwMEEyNUIzODFGRkZGMDVBCi03RTM4MDA3MDAwQTI1QkE2NDg1QUE2RUE3RkZFMTJGRjEyN0YxNjFDN0U5QjE4Pkk8RUIxRTFGOTAzODdGRkY4MDkwQjVGQwotMzkwMUUxRTMwMDM4MDNDMEUwMTM4MEVBMDcwMEEzNDk1QUEyMzgwMzg3ODBFQTA3RkY0OUM3RkNFQTBFNzg5MEM4RkNBMjZDCi1CNDdFNDgxM0UwNDg3RjM4M0MwMDc4NDgxMzM4MTI3MDVBQTIxNDc4MDA3MDVCMzg3QzAzRTAzODNGRkZDMDAwMEY5MEM3RkMKLUVBMDNGQzE5MUY4MDkzMTg+STwxNEMwRUIwMUUwMTMwMzEzMDFFQjAwQzAxNDAwQTRFQkZGQzBBMzEzMDFBMkVCMDM4MEE2Ci1FQjA3MDBBNjEzMEVBNjVCQTJFQTYwMzhFQUYwNzhCNDVBNUJFQTNGODAxMzI3N0Y5QzE4PjEwNgotRDxFQTA3RTAxMjBGMTIwNzEyMDBBNDQ4NUFFQkM3RkVBM0VCQzFFMEVCQzNDMDM4MDM4NzgwRUI4RjAwMTM5RTEzQkMxM0ZFCi0xM0VFRUEwN0NGMTM4N0VCMDc4MDEzMDMxNEMwMTMwMTM4N0ZDN0Y4MzhGRkU3RkMzODdGQzdGODE3MUM3RjlCMTg+STxFQQotMEZGQ0EzRUEwMDFDQTQ1QkE2NUJBNjVCQTZCNTEyODAxNEMwMTQ4MDEyMUM3RDlCMTg+STwxM0ZDRUEwM0ZGMDAwRjEzODAKLUVBMUYwNzM4M0MwM0MwRUE3ODAxMDA3MDEzRTBFQUUwMDBBNEVCMDFDMEEyRUIwMzgwRUFGMDA3RUIwRjAwRUE3QzNFRUEzRgotRkM2QzVBRUEwN0UwMTMxNDdDOTMxOD4xMTEgRDxFQkY4QzBFQTAzRkRFQTBGRkZFQTFGMEZFQTNDMDczODc4MDM4MDEyNzAKLTEyRTBBNEVCMDcwMEEyNUJBMjZDNUFFQTc4N0ZFQTNGRkVFQTFGRUVFQTA3OEVFQTAwMEVBMzVCQTQzODAxRkY4MEEzMTIxRQotN0M5MzE4PjExMyBEPDM4MUZFMUY4RUJFN0ZDRUJFRkZFMzgwMEZFMUVFQkZDMEMzODAxRjgwMDVCNUI1QkEzNDg1QUE2RUEKLUZGRkM3RjVCMTcxNDdFOTMxOD5JPEVCRkU2MDM4MDdGRkUwNUFFQTFGMDExMjFDMDAzODEzQzBFQTNDMDAwMDFGMTMwMEVBCi0wRkY4RUEwN0ZFMzgwMEZGODAxMzA3MzgzMDAxQzAxMjcwQTIzODc4MDM4MEVBN0MwN0I1MTIwMEVBRUZGRUVBNjNGODEzMTQKLTdEOTMxOD5JPDM4N0UwN0UwRUFGRTBGRUE3RTA3RUEwRTAwQTIzODFDMDFDMEE2MzgzODAzODBBNDEzMDcxMzFGMzgzRkZGCi1FMDZDMTNGMDM4MDdFM0UwMTQxNDdEOTMxOD4xMTcgRDwzOEZGODdGODEzOEYxMzg3MzgzODAwRTBFQjAxQzBBMzE0ODAxMwotRTNFQTM5RjMxMjMzRUI3NzAwQTIxMjM3MTM3NkVBMzY2NjEzNkVFQTNDN0NBMkVBMzgzODE1MTQ3QzkzMTg+MTE5Ci1EPDM4MUZFM0ZDMTNFNzEzRTMzODAzQzNDMDAwMDExMzgwRUJFNzAwRUEwMEVFMTNGQzEzN0MxMzM4MTM3ODEzRkNFQTAxREMKLUVBMDM4RTEyMDcxMzA3MTIwRTM4RkYxRkUwRUI5RkYwRUIxRkUwMTYxNDdFOTMxOD5JPDM4MEZGMUZFMzgxRkY5RkYzODBGCi1GMUZFMzgwMzgwNzAxM0MwMDAwMTEzRTBBMjEzQzExNEMwQTIzODAwRTM4MEEyRUJFNzAwQTIxM0U2MTM2RTEzNkMxMzdDMTMKLTc4QTIxMzcwQTI1QkEyNDg1QTEyRjNFQUY3ODBCNEM3RkM1QTEyNzgxODFFN0Y5MzE4PkkKLUUKLSVFbmREVklQU0JpdG1hcEZvbnQKLSVEVklQU0JpdG1hcEZvbnQ6IEZwIGNtY3NjMTAgMTAuOTUgMTIKLS9GcCAxMiAxMjEgZGY8MTMxOEEyMTMzQ0EzMTM0RUEyMTNDRjEzODdBMjM4MDEwMzgwQTIwMDAzMTNDMEVBMDIwMUEyMzgwNwotRkZFMEVBMDQwMEEyNDgxMzcwQTIwMDE4MTMzODAwMzgxMzc4MzhGRTAxRkYxODE3N0Y5NjFDPjk3Ci1EPEVCN0UwODM4MDM4MTk4MzgwNzAwNzgwMDBDMTMzODAwMUMxMzE4NUEwMDc4MTMwODEyNzAwMEYwMTMwMEE3MDA3MDEzMDgKLTEyNzgxMjM4NkMxMzEwMTIwQzAwMDcxMzYwMzgwMzgxODAzODAwN0UwMDE1MTc3RTk2MUI+OTkKLUQ8QjUxMkMwRUExQzAxMTMwMDE0NDAxNDYwMTQyMEEyMTMwODE0MDBBMjEzMThFQTFGRjhFQTFDMTgxMzA4MTQxMEEyMTMwMAotMTQzMDE0MjBBMjE0NjBFQjAxRTBCNUZDMTQxNzdFOTYxOT4xMDEgRDxCNTEyQzBFQTFDMDExMzAwMTQ0MDE0NjAxNDIwQTIKLTEzMDgxNDAwQTIxMzE4RUExRkY4RUExQzE4MTMwOEEzOTBDN0ZDQTZFQUZGQzAxMzE3N0U5NjE4Pkk8RUI3RTA4MzgwMzgxCi05ODM4MDcwMDc4MDAwQzEzMzgwMDFDMTMxODVBMDA3ODEzMDgxMjcwMDBGMDEzMDBBNUVCMDNGRUVCMDAzODEyNzAxMjc4MTIKLTM4N0UxMjBDMTIwNzM4MDM4MEQ4MzgwMDdGMDgxNzE3N0U5NjFEPkk8RUFGRjgwRUExQzAwQjNBM0VBRkY4MDA5MTc3RTk2Ci0wRT4xMDUgRDwzOEZDMDFGQzM4MUUwMDcwMTQyMDEyMTdFQTEzODBBMkVBMTFDMEVBMTBFMEEyMTM3MDEzMzhBMjEzMUMxMwotMEUxMzA3QTJFQjAzQTBFQjAxRTBBMjEzMDAxNDYwMTIzODAwRkUxMzIwMTYxNzdFOTYxQz4xMTAKLUQ8MTNGRTM4MDM4MzgwMzgwRTAwRTA0ODEzNzAwMDNDMTM3ODAwMzgxMzM4MDA3ODEzM0MwMDcwMTMxQzAwRjAxMzFFQTcwMAotNzAxMzFDMDA3ODEzM0MwMDM4MTMzODAwM0MxMzc4MDAxQzEzNzA2QzEzRTAzODAzODM4MDM4MDBGRTAwMTcxNzdFOTYxRD4KLUk8RUFGRkZDRUExQzA3RUIwM0MwMTMwMTE0RTBBNDE0QzAxMzAzRUIwNzAwRUExRkZDMDAxQ0M3RkNBQUI0N0UxMzE3N0U5NgotMTk+STxFQTBGQzRFQTMwMkNFQTYwMUNFQTQwMENFQUMwMDRBM0VBRTAwMDEyNzAxMjdGRUEzRkUwRUEwRkY4RUEwMUZDRUEKLTAwMUMxMzBFMTMwNjEyODBBM0VBQzAwNEVBRTAwOEVBRDgxMEVBODdFMDBGMTc3RTk2MTU+MTE1Ci1EPDM4RkY4MUZDMzgxQzAwNzAxNDIwQjAwMDBDMTM0MDEyMEU2QzEzODAzODAxODMwMEVBMDA3QzE2MTc3RTk2MUM+MTE3Ci1EPDM4RkY4MEZFMzgxRjAwNzAwMDBFMTM2MDZDMTM0MEVCODA4MDM4MDNDMTAwRUEwMUMzRUEwMEUyMTNGNDEzNzgxMzM4N0YKLTEzM0UxMzRFMTNDN0VCODc4MDM4MDEwM0MwRUEwMjAxMzgwNjAwRTAwMDA0MTNGMDAwMEMxMzcwMDAzQzEzNzgwMEZFMTNGRgotMTgxNzdGOTYxQz4xMjAgRCBFCi0lRW5kRFZJUFNCaXRtYXBGb250Ci0lRFZJUFNCaXRtYXBGb250OiBGcSBjbWJ4MTIgMTcuMjggMzQKLS9GcSAzNCAxMjEgZGY8RUIwMUMwMTMwMzEzMEYxMzdGRUExRkZGQjVGQzEzQkZFQUUwM0YxMjAwQjNCMTAwN0ZCNTEyRjBBMwotMUMyRTdBQUQyOD40OSBEPEVCM0ZFMDM4MDFGRkZFMDAwN0VCRkY4MEQ4MEY4MDEzQzAzOTFFMDAzRkUwMDAzOEVCMUZGMDAwCi03Q0VCMEZGODAwN0VFQjA3RkNCNEZDMDE4MDEzRkVBMjE0MDNBMkVBN0YwMDAwM0UxMzA3QzdGQzE1RkNBMkVDMEZGOEEyMTUKLUYwRUMxRkUwMTVDMEVDM0Y4MEVDN0YwMDE0N0UxNEY4NDk1QTQ5NUE0OTVBNDlDN0ZDMDExRTEzMEU1QjEzMzg0OTEzMUU0OQotMTMxQzQ4NUE0OEM3MTIzQzQ4QjUxMkZDNUE1QTVBNDgxNEY4QjZGQ0EzMUYyRTdDQUQyOD5JPDkxM0EwM0ZGODAwMTgwMDIKLTNGRUJGMDAzNDlCNUVBRkMwNzAxMDc5MDM4MDAzRjBGRDkxRkY4RUIwNzlGRDkzRkMwRUIwMUZGRDlGRjgwN0Y0ODQ4QzgxMgotN0Y0ODQ4MTUzRjAwMDcxNjFGNDkxNTBGNDg1QTAwMUYxNjA3QTI0ODVBMTcwMzEyN0ZBMjQ5OTJDN0ZDQTIxMkZGQTkxMjdGCi1BMjdGRUYwMzgwMTIzRkEyNkM3RTE3MDcwMDBGMTcwMDZDN0U2RDE1MEUwMDAzMTYxRTZDNkMxNTFDNkM2QzZDMTQ3OEQ5M0YKLUMwNUNEOTFGRjhFQjAzRTBEOTA3RkZFQjNGODAwMTAxRDlGRkZFQzdGQ0Q5MDAzRjEzRjgwMjAzMTM4MDMxMzE3Q0IwM0E+Ci02NyBEPEI4MTJGMEEzQzY5MDM4ODAwMDNGRUUwN0Y4MTYwMzE2MDBBMjE3NzhBMjE3MzhBMzE3MUMxNTA3QTMxNzAwQTI1RAotNUQ1RDkxQjVGQ0EzRUM4MDNGODE4MTgxQTIxNzA3QTM5MkM3MTIwRUE0MTcxRUEyMTczQ0EyMTc3QzE3RkMxNjAxMTYwNzE2Ci0zRkI4MTJGOEEzMzAzMTdFQjAzNT42OSBEPEI4MTJFMEEzQzY5MDM4ODAwMDdGRUUwRkYwMTYwMzE2MDFBMjE2MDBBMjE3NzAKLUEzMTczOEEyMTUwN0EyMTcwMEEzNUQ1RDVEOTFCNUZDQTNFQzgwM0Y4MTgxODFBNTkyQzhGQ0FDQjYxMkMwQTMyRDMxN0VCMAotMzM+STxEQTAzRkYxMzAzMDI3RkVCRjAwNzQ5QjVFQUZDMEYwMTA3OTAzODAwN0UxRkQ5MUZGMEVCMEZCRkQ5N0ZDMEVCMDMKLUZGNDk0ODdGNDg0OEM4N0U0ODVBMDAwNzgyNDg0ODgxNUIwMDFGODJBMjQ4NDg4MUEyMTI3RkEyNDk5MkM3RkMxMkZGQUEwMwotMDdCNTEyRjgxMjdGN0ZEQjAwMDExMzAwMTIzRkEyNkM3RUEyMTIwRjdGNkM3RTEyMDM2QzdFNkM2QzdFNkQ2QzVCRDkxRkY4Ci00OTdFRDkwN0ZGRUIzRTNGMDEwMTkwMzhGRkZDMUY2RDZDRUJGMDBGMDIwM0VCODAwMzM1MzE3Q0IwM0Y+STxCNjEyODBBMwotQzZFQjgwMDBCM0IzQTdCNjEyODBBMzE5MzE3RUIwMUU+NzMgRDxCNjdFQTMwMDAxOTBDOUZDQjNBOUVFMDM4MEE0MTYwNzE3Ci0wMEEyNUVBMzVFNUU1RTVFNEI1QTE1MEZCN0ZDQTMyOTMxN0RCMDMwPjc2IEQ8QjU2QzQ5QjUxMkMwODA4MEM2NkQ5MDM5MDAKLTAzRTAwMDZFNkU1QUVCRUZGQzEzRTc4MEVCRTNGRjAxRTE3RjAxRTA3RjZFN0UxNDNGODE2RTdFNkU3RTZFN0UxNDAzNkU3RQotMTY4MDZFMTNDMEVEN0ZFMEVEM0ZGMDE1MUYxNkY4RUQwRkZDRUQwN0ZFRUQwM0ZGNkYxMzgxODExN0MxRUU3RkUxRUUzRkYxCi1FRTFGRjlFRTBGRkQxNjA3MTdGRjgyODI4MjE3N0YxNzNGQTIxNzFGMTcwRjQ4NkMxNTA3QjUwMEUwMTQwMzE3MDFBMjNBMzEKLTdFQjAzRj43OCBEPEI3MTJFMDE2RkVFRUZGODBDNkQ5ODAwMDEzRTBFRTNGRjBFRTBGRjhFRTA3RkNBMkVFMDNGRUEyMTdGRgotQTcxN0ZFQTJFRTA3RkMxN0Y4MTYwRkVFM0ZFMEVFRkZDMDkxQjYxMjAwMTZGODAyODBDOEZDQjNBMkI2N0VBMzMwMzE3RUIwCi0zNz44MCBEPEI3N0UxNkY4MTZGRUM2OTAzOTgwMDNGRjgwOTIzODAwN0ZFMEVFMUZGMDcwN0VBMjgzMTYwNzgzQTY1RjE2MEYKLTVGNEM1QTRDNUE0QzVBREIwM0ZGQzhGQzkxQjUxMkY4MTZFMDkxMzg4MDA3RjhFRDAxRkM2RjdFMTY3RjgzNzA3RUEyODNBNQotODNBNEYwMDM4MDE3RjgxNjFGMTkwMDcwNkM1QUI2Mzk4MDAzRkUwRTkzMzgwMUZGRkM5MzM4MDAxRkYwMzkzMTdFQjAzQz4KLTgyIEQ8MDA3RkI4RkNBMzkwMzlDMDBGRjgwMUQ4N0UwMEVDMDAzRjAwN0M4MjAwNzg4MkEyMDA3MDgyMDBGMDE3ODBBMzQ4Ci0xNjAzQTVDNzkyQzdGQ0IzQUEwMTdGQjZGQ0EzMzEzMDdEQUYzOD44NCBEPEI2RDg4MDAzQjUxMjgwQTNDNjAxODBDNzM4MDcKLUMwMDA3MTVBQjNBRTEzN0Y0REM3RkM4MDAxM0YxNTBFQTI2RDZDNUM2RDZDNUM2RDZDNUM2RDZDNDk1QTkwM0EwMEZGODAxRgotQzAwMjNGQjU1QTAyMEY0OUM4RkMwMjAwMTNFMDM5MzE3RUIwM0U+STxCNTAwRkM5MUI1RkNBMzAwMDM5MEM4RUEwM0MwNkMKLTE3ODA2RTE0MDc2QzE3MDA4MDAxN0YxNTBFQTI2RTE0MUUwMTNGMTUxQzZFMTQzQzAxMUYxNTM4ODAwMTBGNUQ4MDAxMDc1RAotQTI2RTEzMDEwMTAzNUQ2RTEzMDM2RDVEMTU4MDZENEFDN0ZDQTI2RjVBMDI3RjEzMEVFREUwMUUwMjNGMTMxQ0VERjAzQzAyCi0xRjEzMzgxNUY4MDIwRjVCQTJFREZDRjAwMjA3NUIxNUZGNkU1QkEyNkU1QkEyNkU5MEM4RkNBMzE1N0VBMjE1M0NBMjM4MzEKLTdFQjAzRD5JPEVCRkZGMDAwMDMxM0ZGMzkwRjgwM0Y4MDkwMzhDMDBGRTA0ODZDNkM3RUEyNkU3RUQ4MEZDMDdGRUEwNzgwCi1DN0ZDQTQxNEZGMTMxRkVCRkZFMzM4MDNGQzAzRUEwRkYwRUExRkMwMTIzRkVBN0Y4MEEyRUFGRjAwQTMxNDA3QTIzODdGODAKLTBEMzkzRkMwMURGRTNBMUZFMDc4RkZGMDM5MDdGRkUwN0ZDNkVCODAzRjI0MjA3RTlGMjc+OTcKLUQ8RUEwMUY4MTJGRkEzMTIwRjEyMDdBREVDM0ZFMEVDRkZGQzkwMzhGQkUwN0Y5MDM5RkYwMDFGODA0OUVCMEZDMDQ5MTRFMAotNDlFQjA3RjAxNkY4QTJFRDAzRkNBMzE2RkVBODE2RkNBM0VEMDdGOEEyMTZGMDZERUIwRkUwNkQxNEMwMDFFN0VCM0Y4MDkwCi0zOUMzQzBGRTAwOTAzODgwRkZGODkwMzgwMDNGQzAyNzMyN0VCMTJEPkk8RUIwRkZGMDE3RjEzQzAzOTAxRkMwMUYwMzgwMwotRjAwMzM5MDdFMDA3RjgxMjBGRUExRkMwMDAzRkVCMDNGMEVDMDFFMDQ4NDhDN0ZDQTMxMkZGQTgxMjdGQTM2QzZDMTMxQ0EyCi0wMDFGMTQzODZDN0UwMDA3MTQ3MDM5MDNGMDAxRTAzOTAxRkMwN0MwMzkwMDdGRkYwMEVCMEZGODFFMjA3RDlGMjQ+STxFRAotMEZDMEVDMDdGRkEzRUMwMDdGMTUzRkFERUIwN0Y4RUIzRkZGOTAzOEZFMDdCRjM5MDNGODAxRkYzOTA3RTAwMDdGMTIwRjQ4Ci00ODEzM0YxMjNGQTI0ODVBQTMxMkZGQTgxMjdGQTM2QzdFQTIxMjFGNkM2QzEzN0YwMDA3MTRGRjI2MDNGMDAzMTNFMDNBMDEKLUZDMEYzRkZFMzgwMDdGRkVFQjBGRjAyNzMyN0RCMTJEPkk8RUIwRkZDOTAzODdGRkY4MDM5MDFGQzBGQzAzOTAzRjAwM0UwCi0zOTA3RTAwMUYwMDAwRjE0RjgzOTFGQzAwMEZDMDAzRjE0RkVBMjQ4NDgxMzdFMTU3RkEyMTJGRkEyOTBCNkZDQTIwMTgwQzcKLUZDQTQxMjdGQTM2QzZDMTMwNzEyMUYxNTBFNkM3RTZDNkMxMzFDNkM2QzEzNzgzOTAwRkUwM0UwOTAzODNGRkZDMDkwMzgwNwotRkUwMDIwMjA3RTlGMjU+STxFQjAxRkU5MDM4MEZGRjgwOTAzODFGQzNDMDkwMzg3RjA3RTA5MDM4RkUwRkYwMTIwMTEzRkMKLTEyMDNFQzA3RTBFQzAxODA5MUM3RkNBOEI1MTJGQ0EzRDgwM0ZDQzdGQ0IzQTgzODdGRkZGMEEzMUMzMjdFQjExOT5JPDkwCi0zOTFGRjAwN0MwOTAzOUZGRkUzRkUwM0EwMUY4M0Y3OUYwMzkwN0UwMEZDMzAwMEYxNEUxOTAzOUMwMDdFMEUwMDAxRkVDRjAKLTAwQTIwMDNGODBBNTAwMUY1Q0EyMDAwRjVDRUJFMDBGMDAwNzVDMjYwM0Y4M0ZDN0ZDMzgwNkZGRkUzODBFMUZGMDkwQzlGQwotMTIxRUEyMTIxRjdGOTBCNTdFNkMxNEYwMTVGQzZDODA2QzgwMTY4MDAwMEYxNUMwMDAzRkM3MTI3RjAwN0VFQzFGRTAwMDdDCi0xNDBGMDBGQzE0MDdBNDAwN0VFQzBGQzAwMDNFMTU4MDAwM0YxNDFGRDgwRkMwRUI3RTAwMzkwN0Y4MDNGQzAwMDFCNTEyRjAKLUQ4MDAxRjkwQzdGQzI0MkY3RTlGMjg+STxFQTAxRjgxMkZGQTMxMjBGMTIwN0FERUMwN0Y4RUMzRkZFRUM3ODNGMDJDMDEzCi04MDkwMzlGOTgwMUZDMEVCRkIwMDAxRkUxNEUwNUJBMzVCQjNCNTAwQzNCNUZDQTMyODMyN0RCMTJEPkk8RUEwM0MwNDg3RQotNDg3RTQ4N0VBNDZDNUE2QzVBNkM1QUM4RkNBOUVBMDFGODEyN0ZBMzEyMDdCM0E3QjUxMjgwQTMxMTMzN0RCMjE3Pkk8RUEKLTAxRjgxMkZGQTMxMjBGMTIwN0IzQjNBNkI1MTJDMEEzMTIzMjdEQjExNz4xMDggRDwyNzAzRjAwN0Y4RUIxRkUwMDBGRkQ5Ci0zRkZFRUJGRkY4OTEzQTc4M0YwMUUwRkMwMkMwOTAzODgzMDBGRTI4MEZGMTgwMUZDNjEzN0YyNjA3RjMwMDEzQ0MwMUY2MDIKLUY4MTQ4MDAxRkM1Q0EzNDk1Q0IzQjUwMEMzQjUzODBGRkZGQ0EzM0UyMDdEOUY0Mz5JPDM5MDNGMDA3RjgwMEZGRUIzRkZFCi1FQzc4M0YwMkMwMTM4MDNBMEZGMTgwMUZDMDM4MDdGMzAwMDFGNjE0RTAxM0ZDQTM1QkIzQjUwMEMzQjVGQ0EzMjgyMDdEOUYKLTJEPkk8RUIwN0ZDOTAzODdGRkZDMDM5MDFGQzA3RjAzOTAzRjAwMUY4NDg0ODZDN0U0ODQ4MTM3RTAwMUYxNDdGMDAzRjE1Ci04MDQ5MTMzRjAwN0YxNUMwQTMwMEZGMTVFMEE4MDA3RjE1QzBBMzZDNkNFQjdGODBBMjAwMUYxNTAwNkM2QzEzRkUwMDA3NUMKLTM5MDNGODAzRjgzOTAxRkUwRkYwMzkwMDdGRkZDMEQ5MDdGQ0M3RkMyMzIwN0U5RjI4Pkk8MzkwMUY4M0ZFMDAwRkZFQkZGCi1GQzkwMzhGQkUwN0Y5MDM5RkYwMDNGODBEODBGRkVFQjFGQzA2QzQ4RUIwRkUwNDkxNEYwRUQwN0Y4QTIxNkZDMTUwM0EyMTYKLUZFQTgxNkZDMTUwN0EyMTZGOEEyRUQwRkYwNkQxNEUwNkRFQjFGQzA2REVCM0Y4MDkwMzlGQkMwRkUwMDkwMzhGOEZGRjhFQwotM0ZDMDkxQzhGQ0FCQjUxMkMwQTMyNzJFN0U5RjJEPkk8MzgwM0YwM0YwMEZGRUI3RkMwOTAzOEYxQzNFMDE0ODczOTBGRjMKLTBGRjBFQTA3RjZBMjkwMzhGQzA3RTBFQzAzQzA5MUM3RkNBMjVCQjJCNTEyRTBBMzFDMjA3RTlGMjE+MTE0Ci1EPDM4MDFGRjg2MDAwNzEzRkVFQTFGMDAwMDNDMTMzRTQ4MTMxRTE0MEUxMkY4QTM2QzkwQzdGQ0I0N0UxM0ZDMzg3RkZGQzAKLTZDMTNGMDgwNkM3RjAwMDc3RjAwMDE3RkVBMDAzRjAxMDAxMzgwMTQzRjAwNjAxMzFGMDBFMDEzMEZBMjdFMTUwMDdFNkMxMwotMUU2QzEzMUMzOEZGODA3ODM4RjNGRkYwMzhDMDdGODAxOTIwN0Q5RjIwPkk8MTMxQ0E1MTMzQ0EzMTM3Q0EyMTNGQzEyMDEKLTEyMDMxMjA3MzgxRkZGRkVCNUZDQTJEODAzRkNDN0ZDQjBFQzAzODBBNzEyMDFFQzA3MDBFQTAwRkVFQjdGMEVFQjNGRkNFQgotMDdGMDE5MkU3RkFEMUY+STxEODAxRjhFQjA3RTAwMEZGRUIwM0ZGQTMwMDBGRUIwMDNGMDAwNzE0MUZCMzE1M0ZBMjAwMDMKLTE0N0ZBMjZDNkNFQkRGRjAzQTAwRkUwMzlGRkY5MDM4N0ZGRjFGRUIwRkZDMjgyMDdEOUYyRD5JPEI1M0ExRkZGRTAzRkY4Ci1BMzNDMEZGMDAwRkUwMDA3ODA2RDE1MDMwMDA3NkVFQjA3MDA4MTZENUQwMDAzOTEzOEZGODAwRUEyNkM2QzQ4NkQ1QTE1REYKLTAxRkYxNTNDNkM5MDM5MDM4RkUwMzhBMkQ5N0Y4NzZENUExNTA3MDJDNzE0RjBEOTNGQ0Y2RDVBRUNDRTAzRDkxRkZFRUJGOQotQzA5MTM4RkMwMUZEMTZGRjAxMEY1RDRBN0VBMjZENDg2REM3RkNBMjAxMDMxNDdFNEExMzNFQTI2RDQ4MTMxQzM1MjA3RTlGCi0zQT4xMTkgRDwzQTdGRkY4MDdGRkNBMzNBMDNGQzAwMEYwMDZDNkMxMzFFNkM2QzVCRUM4MDM4OTAzODdGQzA3ODAxM0Y1QgotOTAzODFGRTFFMDkwMzgwRkYzQzBFQ0ZGODA2RDkwQzdGQzZENUExMzAxNkQ3RTgxODE1QjkwMzgwM0RGRTA5MDM4MDc4RkYwCi04MTkwMzgwRjA3RkM5MDM4MUUwM0ZFRUIzQzAxNDk2QzdFNDkxNDgwNDg0OEVCN0ZDMDAwMDNFQzNGRTAyNkZGRkMwMUI1RkMKLUEzMjgyMDdGOUYyQj5JIEUKLSVFbmREVklQU0JpdG1hcEZvbnQKLSVEVklQU0JpdG1hcEZvbnQ6IEZyIGNtc3kxMCAxMC45NSAxCi0vRnIgMSAxNCBkZjwxNEZFOTAzODA3RkZDMDkwMzgxRjAxRjA5MDM4NzgwMDNDMDFFMDEzMEVEODAxODAxMzAzNDhDN0VBMDEKLTgwMDAwNkVDMDBDMDQ4MTU2MEEyNDgxNTMwNDgxNTE4QTI0ODE1MENBNDQ4MTUwNkE5MDA2MDE1MENBNDZDMTUxOEEyNkMxNQotMzA2QzE1NjBBMjZDMTVDMDZDRUMwMTgwNkM2Q0VCMDMwMEQ4MDBFMDEzMEUwMTc4MTMzQzkwMzgxRjAxRjA5MDM4MDdGRkMwCi1EOTAwRkVDN0ZDMjcyQjdEQTAyRT4xMyBEIEUKLSVFbmREVklQU0JpdG1hcEZvbnQKLSVEVklQU0JpdG1hcEZvbnQ6IEZzIGNtYngxMiAxNC40IDU1Ci0vRnMgNTUgMTIyIGRmPDEyM0MxMjdGRUFGRjgwQTIxM0MwQTMxMjdGMTIzRTEyMDBBMkVBMDE4MEEzRUEwMzAwQTIxMjA2MTIKLTBFNUE1QTEyMTAwQTE1N0I4ODEzPjQ0IEQ8MTIxQzEyN0ZBMkVBRkY4MEEzRUE3RjAwQTIxMjFDMDkwOTdCODgxMz40NgotRDwxMzBFMTMxRTEzN0VFQTA3RkUxMkZGQTIxMkY4MTIwMEIzQUJCNTEyRkVBMzE3Mjc3QkE2MjI+NDkKLUQ8RUJGRjgwMDAwNzEzRjA0ODEzRkMzODFFMDNGRTM5MzgwMEZGODAwMDdDMTMzRjAwRkUxNEMwNkMxMzFGMTVFMDE0MEZBMgotMTI3RTAwM0MxMzFGQzdGQzE1QzBBMkVDM0Y4MDE1MDAxNDdFNUM1QzQ5NUE0OTVBRUIwNzgwNDlDN0ZDMTMxRTQ5MTNFMDEzCi03MDVCMzkwMUMwMDFDMEVBMDM4MEVBMDYwMDAwMEZCNUZDNUE1QTVBQjYxMjgwQTMxQjI3N0RBNjIyPkk8RUI3RjgwMzgwMwotRkZGMDQ4MTNGQzM4MEY4MUZFMzgxRjAwN0ZFQTNGODBFQzNGODBBMzEyMUYxMzAwQzdFQTdGMDBBMjE0N0U1QzQ5NUFFQjA3Ci1GMEVCRkZDMEEyRUIwMUY4RUIwMDdFODAxNTgwRUMxRkMwQTIxNUUwQTIxMjNDMTI3RUI0RkNBMjE1QzAxNDNGNDgxNDgwMDAKLTdDRUI3RjAwMzgzRjAxRkU2Q0I0NUEwMDA3MTNGMEM2MTM4MDFCMjc3REE2MjI+STwxNDBGQTI1QzVDNUM1QzVCQTJFQjAzCi1CRkVCMDczRjEzMEUxMzFDMTMzQzEzMzgxMzcwMTNFMEVBMDFDMEVBMDM4MDEyMDcxMzAwMTIwRTVBNUE1QTEyRjBCNjEyRjgKLUEzQzdFQTdGMDBBODkwMzgxRkZGRjhBMzFEMjc3RUE2MjI+STwwMDE4MTMwMzM4MUY4MDFGRUJGRkZFNUM1QzVDMTRDMDkxCi1DN0ZDMDAxQ0M4RkNBN0VCN0ZDMDM4MURGRkY4MzgxRjgwRkMzODFFMDAzRjEyMDhDN0VBMUY4MDE1QzBBMjE1RTBBMjEyMTgKLTEyN0MxMkZFQTMxNUMwNUEwMDc4RUIzRjgwQTI2Q0VCN0YwMDM4MUYwMUZFNkNCNDVBMDAwMzEzRjBDNjEzODAxQjI3N0RBNgotMjI+STxFQjA3RjhFQjNGRkU5MEI1RkMzOTAxRkMwNzgwMzkwM0YwMEZDMDM4MDdDMDFGRUEwRjgwMTIxRjEzMDA0OEVCMEYKLTgwOTFDN0ZDMTI3RUEzRUFGRTAyRUIxRkYwRUIzRkZDRUI2MDNFRUI4MDFGMDBGRjE0ODA5MDM4MDAwRkMwQTI0ODE0RTBBNAotMTI3RUE0MTIzRTAwM0YxNEMwN0VFQzFGODBEODBGODAxMzAwMzgwN0UwN0U2Q0I0NUE2QzVCMzgwMDNGQzAxQjI3N0RBNjIyCi0+STwxMjM4MTIzRTAwM0ZCNTEyRjBBMzQ4MTRFMDE1QzAxNTgwMTUwMDM4NzAwMDBFQTI1QzQ4NUI1QzVDQzY0ODVBQTI0OQotNUExMzA3OTFDN0ZDNUI1QjEzMUUxMzNFQTIxMzdFMTM3Q0EyMTNGQ0E0MTIwMUE3NkM1QTEzNzAxQzI5N0NBODIyPkk8RUIKLTdGODAzODAxRkZGMDAwMDc3RjM4MEZDMEZDMzgxRjgwM0U0ODQ4N0UwMDdFMTQ4MEEyMTQwRjAwRkUxNEMwQTMxNUUwQTUwMAotN0UxMzFGQTI2QzEzM0Y2QzEzMkYzODBGODBDRjM4MDdGRjhGMDAwMTEzMEZFQTAwMDgwMTAwMTNDMEEzRUMxRjgwMTIzRTEyCi03RkVDM0YwMDE0M0UxNDdFMDA3RTVCMzgzRTAzRjgzODFGRkZFMDZDMTM4MEQ4MDFGRUM3RkMxQjI3N0RBNjIyPjU3Ci1EPEVDMDc4MEEyNEE3RUEzNEE3RUEyNEE3RUEzRUM3N0Y4QTJFQ0Y3RkMxNEUzQTI5MDM4MDFDMUZFQTIwMTAzN0YxNDgwQTIKLTQ5NDg2QzdFQTI0OTgwMDEwRTEzM0ZBMjQ5NkQ3RUEyMDEzRkI1N0VBMzkwMzk3MDAwMDdGOEEyMDFGMDgwNDkxMzAzMDAwMQotODE0OTEzMDFBMjAwMDM4MUQ4RkZGRTAxM0YxM0ZDQTMyRTI5N0VBODMzPjY1IEQ8QjYxMkY4MTVGRjE2QzAzQTAzRjgwMDFGCi1FMEVEMEZGMEVEMDdGODE1MDMxNkZDQTIxNTAxQTMxNTAzMTZGOEEyRUQwN0YwMTUwRkVEMUZDMEVERkY4MDkwQjVFQUZFMDAKLUVERkZDMDkwMzlGODAwMEZGMEVEMDNGOEVEMDFGQzE2RkUxNTAwQTIxNkZGQTYxNkZFMTUwMUVEMDNGQzE1MDdFRDFGRjhCNwotMTJFMDE2QzBFREZFMDAyODI5N0RBODMwPkk8OTEzODdGRTAwMzkwMzkwN0ZGRkMwNzAxMUZFQkZGMEY5MDM5N0ZGMDBGOUYKLTkwMzlGRjAwMDFGRkQ4MDFGQzdGNDg0ODE0N0Y0ODQ4MTQzRjQ4NDgxNDFGNDg1QTE2MEY0ODVBMTYwNzEyN0ZBMjkwQzlGQwotNUFBOTdFN0YxNjA3MTIzRkEyNkM3RTE2MEU2QzdFNkM2QzE0MUM2QzZDMTQzQzZDNkMxNDc4NkNCNEVCMDFGMDkwMzk3RkYwCi0wN0MwMDExRkI1MTI4MDAxMDdFQkZFMDA5MDM4MDA3RkYwMjgyOTdDQTgzMT5JPEI2MTJGQ0VERkY4MDE2RTAzQTAzRkMwMAotMUZGOEVEMDNGQ0VEMDBGRTE2N0ZFRTNGODBFRTFGQzBBMkVFMEZFMEEyRUUwN0YwQTQxN0Y4QUExN0YwQTNFRTBGRTBBMjE3Ci1DMDE2MUZFRTNGODBFRTdGMDA1RUVEMDNGQ0VEMUZGOEI3NUExNjgwMDNGQ0M3RkMyRDI5N0VBODM0Pkk8QjcxMkUwQTMzOQotMDNGQzAwMUZFRDA3RjAxNTAxQTIxNTAwMTY3MEEzOTEzODAxQzA3ODE2MzhBMzAyMDMxMzAwQTIxNDBGOTBCNUZDQTNFQkZDCi0wRjE0MDNBMjAyMDExMzBFQTMxNjFDOTFDN0ZDQTMxNjNDMTYzODE2NzgxNkY4MTUwMTE1MDMxNTFGQjcxMkYwQTMyNzI5N0UKLUE4MkM+STxCNzEyQzBBMzM5MDNGQzAwM0ZFRDBGRTAxNTAzMTUwMUEyMTUwMEEzMTZGMDkxMzgwMUMwNzBBMzE2MDAxNDAzCi1BMjE0MEY5MEI1RkNBM0VCRkMwRjE0MDNBMjE0MDFBNDkxQzhGQ0E5QjUxMkZDQTMyNDI5N0VBODJBPkk8OTEzODdGRTAwMwotOTAzOTA3RkZGQzA3MDExRkVCRkYwRjkwMzk3RkYwMEY5RjkwMzlGRjAwMDFGRkQ4MDFGQzdGNDg0ODgwNDg0ODgwNDg0ODgwCi00ODVBODI0ODVBODIxMjdGQTI5MENBRkM1QUE4OTJCNTEyRjg3RTdGMDMwMDEzMDAxMjNGQTI2QzdFQTI2QzdFNkM3RTZDN0UKLTZDN0U2Q0I0NUI5MDM4N0ZGMDA3MDExRkI1MTI5RjAxMDdFQkZFMEY5MDM5MDA3RkYwMDMyRDI5N0NBODM1Pkk8QjVEOEYwCi0wRkI1RkNBM0Q4MDNGQ0M3RUEzRkMwQUY5MEI3RkNBMzAxRkNDNzEyM0ZCMUI1RDhGMDBGQjVGQ0EzMzAyOTdFQTgzNT5JPAotQjUxMkYwQTMzODAzRkMwMEIzQjFCNTEyRjBBMzE0Mjk3RUE4MTk+STxCNTAwRjBFQkZGRkVBM0Q4MDNGQ0M3RUEwRjAwMTYKLTFFNUU1RTE2RTBFRDAzQzA0QjVBNEJDN0ZDMTUxRTVEMTVGMDRBNUE0QTVBMTQwNzE0MEY0QTdFRUM3RkYwNEE3RUVCRkRFNwotOTAzOEZGQzNGQ0VDODNGRTkwMzhGRTAxRkY0OTdFNkY3RTgyNkY3RTE1MUY2RjdFODIxNTA3NkY3RTZGN0U4MjgxRUU3RjgwCi1CNTM5RjAwRkZGRkVBMzJGMjk3RUE4MzU+NzUgRDxCNTEyRkNBM0Q4MDNGQ0M4RkNCM0EzRUQwMUMwQTQxNTAzMTY4MEEyMTUKLTA3QTIxNTBGQTIxNTFGMTU3RjkxMzgwMUZGMDBCN0ZDQTMyMjI5N0VBODI4Pkk8RDhGRkZFOTIzODNGRkY4MEEyNkQ1RDAwCi0wM0VGRTAwMEEyRDlCRjgwMTRFRkEyRDk5RkMwRUIwMUNGQTJEOThGRTBFQjAzOEZBM0Q5ODdGMEVCMDcwRkEyRDk4M0Y4MTMKLTBFQTJEOTgxRkMxMzFDQTNEOTgwRkUxMzM4QTIwMjdGMTM3MEEyOTEzODNGODBFMEEzOTEzODFGQzFDMEEyOTEzODBGRTM4MAotQTI5MTM4MDdGNzAwQTNFQzAzRkVBMjZFNUFBMjZFNUFEOEZGRkUwMjAzQjUxMjgwQTIxNTcwMzkyOTdEQTg0MD5JPEQ4RkYKLUZDRUM3RkZGN0Y3RjAwMDM2REVCMDFDMDgwRUJCRkUwMTM5RjgwRUI4RkY4RUI4N0ZDRUI4M0ZFRUI4MUZGMDE4MDEzODAxNAotN0YxNUMwRUMzRkUwRUMxRkYwRUMwRkY4RUMwN0ZDMTQwMzE1RkVFQzAxRkY2RTEzODFFRDdGQzFFRDNGRTFFRDFGRjExNTBGCi0xNkY5RUQwN0ZERUQwM0ZGODE4MTE2N0ZBMjE2M0YxNjFGMTYwRjE2MDdEOEZGRkUxNDAzMTYwMUEyMzAyOTdFQTgzNT5JPAotRUNGRkMwMDEwRjEzRkM5MDM4M0Y4MDdGOTAzOUZFMDAxRkMwRDgwMUY4RUIwN0UwNDg0ODZEN0U0ODQ4NkQ3RTAwMEY4MTQ4Ci00ODZEN0VBMjQ4NDgxNDdGQTIwMDdGMTY4MDkwQzgxMjNGQTM0ODE2QzBBQTZDMTY4MDZEMTQ3RkEyMDAzRjE2MDBBMjZDNkMKLTE0RkVBMjZDNkM0OTVBNkM2QzQ5NUE2QzZDNDk1QTZDNkM0OTVBNkM2QzQ5NUE5MDI2M0ZDMEZGQzdGQzkwMzgwRkZGRkMwMQotMDAxM0MwMkEyOTdDQTgzMz5JPEI2MTJGODE1RkYxNkMwM0EwM0ZDMDAzRkUwRUQwN0YwRUQwM0Y4MTZGQzE1MDExNkZFQTcKLTE2RkMxNTAzMTZGOEVEMDdGMEVEM0ZFMDkwQjYxMjgwRURGRTAwMDFGQ0M4RkNCMEI1MTJGMEEzMjcyOTdFQTgyRT5JPEVDCi1GRkMwMDEwRjEzRkM5MDM4M0ZDMEZGOTAzOUZFMDAxRkMwNDg0ODZEN0VEODAzRjBFQjAzRjAwMDA3ODE0ODQ4NkQ3RTQ4NDgKLTZEN0VBMjQ4NDgxNDdGQTIwMDdGMTY4MEEyOTBDODEyM0ZBMjQ4MTZDMEFBNkMxNjgwNkQxNDdGQTIwMDNGMTYwMEEyNkM2QwotMTRGRTE0M0UzQTBGRTA3RjgxRkMwMDA3OTAzOEMxQzFGODNBMDNGMTgwNjNGMEQ4MDFGOUVCNjdFMEQ4MDBGRkVCM0ZDMDkwCi0yNjNGQzA3RkM3RkM5MDM4MEZGRkZDMDEwMDQ5MTNDMEVDMDAzQzgxMTYwMUVEMUY4MzE2RkY2RjEzODBBMjE3MDA4MTZGNUEKLTZGNUE2RjVBMkEzNTdDQTgzMz5JPEI2MTJFMDE1RkU2RjdFM0EwM0ZDMDAzRkUwRUQwRkYwNkY3RTZGN0UxNTAxODJBNjVFCi00QjVBMTUwN0VEMEZFMEVEM0ZDMDkwQjUwMEZFQzdGQ0EyOTAzOUZDMDBGRjgwRUQzRkMwNkY3RTZGN0U2RjdFQTkxNzBFQTIKLTE1MDM5MjM4MDFGQzFDQjUzOEYwMDBGRUVFN0ZGOEVFMEZFMDJGMjk3RUE4MzI+STw5MDM4RkY4MDYwMDAwM0VCRjBFMDAwCi0wRjEzRjgzODFGODBGRDM4M0YwMDFGMDAzRTEzMDc0ODEzMDNBMjAwRkMxMzAxQTIxNDAwN0VBMjZDMTQwMDEzQzBFQTdGRkMKLUVCRkZFMDZDMTNGODZDMTNGRTgwMDAwNzE0ODA2QzE0QzBDNkZDMDEwRjEzRTBFQjAwN0ZFQzFGRjAxNDBGMTQwNzAwRTAxMwotMDNBNDZDMTRFMEEyNkMxMzA3NkMxNEMwQjRFQjBGODBFQkUwM0YzOUUzRkZGRTAwMDBFMTVCMzhDMDFGRjAxQzI5N0NBODI1Ci0+STwwMDdGQjcxMjgwQTM5MDM5ODA3RjgwN0ZEODdDMDAxNDBGMDA3ODE1MDdBMjAwNzAxNTAzMDBGMDE2QzBBMjQ4MTUwMQotQTVDNzkxQzdGQ0IzQTQ5MEI2MTJDMEEzMkEyODdFQTcyRj5JPEI1MDBGMEVCRkZGRUEzRDgwM0ZDQzdFQTAzODBCM0FBMDAKLTAxRUQwNzAwN0YwMDAwMTUwRTEzN0Y2RDE0M0NEOTFGQzA1QjkwMzkwRkYwMDNGMDZEQjU1QTAxMDAxNDgwREExRkZDQzdGQwotMkYyOTdFQTgzND5JPEI1MDBGMEVCN0ZGRkEzRDgwM0ZFQzdFQTAxQzAwMDAxRUQwMzgwQTI2RDE0MDc2QzE2MDA2RTVCMDEKLTdGMTQwRTgwMDEzRjVDQTI2RTEzM0MwMTFGMTQzODZFMTM3ODAxMEYxNDcwODAwMTA3NUNBMjZENkM0ODVBQTJFQ0ZFMDMwMQotMDE1Q0VDRkYwNzZEOTFDN0ZDMTU4N0VDN0Y4RUEyMTVERUVDM0ZEQzE1RkM2RTVBQTI2RTVBQTM2RTVBQTI2RTVBQTIzMDI5Ci03RkE4MzM+STxCNTNDRTA3RkZGRTAxRkZGQzBBMzI4MDNGQzAwMDNGQ0M3RUE3MDAwQTI2RDZEN0UwMDAxNjBBMjZENkUxMwotMDE2QzYwNEIxMzgwMDI4MDE1MDMwMTdGNUY0QjEzQzBEOTNGQzAwMTNGNDlDN0ZDQTI5MTNBRTAwRTFGRTAwRjAxMUYxNjBFCi0xN0YwOTEyNkYwMUMwRjEzMUUwMTBGMTYxQzAzM0MxM0Y4OTAyNzA3RjgzODA3NUJBMjAzNzgxM0ZDOTAyNzAzRkM3MDAzNUIKLUEyOTEzQUZFRTAwMUZFRjAwMTAxNUUwMkZGMTRGRjRCN0U2RDVFQTI2RTQ4NkQ1QUEzNkVDNzZDQzhGQ0EyMDIzRTgwMDIxRQotMTQxRUEyNDIyOTdGQTg0NT5JPEI1MDBGMEVCM0ZGRkEzRDgwM0ZFQzdFQTAzQzA2QzZDMTU4MDZDNkRFQjA3MDA1RTZENkMKLTEzMEU2RTVCMDEzRjE0M0M2RDZDMTMzODZFNUIwMTBGMTRGMDZENkM1QjZFNDg1QTAxMDMxMzAzRDkwMUZGNUIwMzg3QzdGQwotNkQxMzhGRUM3RkNFMTVGQzE0M0Y2RTVBNUQxNDBGQUUwMTAzQjUxMkMwQTMzMDI5N0ZBODMzPjg5Ci1EPDM4MDNGRjgwMDAwRjEzRjAzODFGMDFGQzM4M0Y4MEZFMTQ3RjgwMTU4MEVBMUYwMEM3RkNBNEVCM0ZGRjM4MDFGQzNGRUEKLTBGRTBFQTFGODBFQTNGMDAxMjdFNUFBNDE0NUYwMDdFMTNERjM5M0Y4MzlGRkMzODFGRkUwRjM4MDNGQzAzMUUxQjdFOUEyMQotPjk3IEQ8RUFGRkUwQTMxMjBGQUNFQkUxRkU5MDM4RUZGRjgwOTAzOEZFMDdFMDkwMzhGODAzRjA5MDM4RjAwMUY4OTAzOEUwCi0wMEZDQTIxNTdFQTIxNTdGQTgxNTdFQTMxNUZDQTI5MDM4RjAwMUY4OTAzOEY4MDNGMDkwMzg5QzBGRTA5MDM4MEZGRjgwMzkKLTBFMDFGQzAwMjAyQTdFQTkyNT5JPEVCM0ZGMDM4MDFGRkZDMzgwM0YwM0UzODBGQzA3RkVBMUY4MEVBM0YwMEEyNDgxMzNFCi0wMDdFOTBDN0ZDQTIxMkZFQTcxMjdFQTIxMjdGNkNFQjAzODAxMzgwMDAxRkVCMDcwMDM4MEZFMDBFMzgwM0Y4M0MzODAxRkYKLUY4MzgwMDNGQzAxOTFCN0U5QTFFPkk8RUM3RkYwQTMxNDA3QUNFQjNGODczODAxRkZGNzM4MDdGMDNGMzgwRkMwMEYzODFGCi04MDA3RUEzRjAwQTIxMjdFQTMxMkZFQTgxMjdFQTI3RUEyMzgxRjgwMEYzODBGQzAxRjM5MDdFMDdGRkYzODAxRkZFNzM4MDAKLTdGODcyMDJBN0VBOTI1Pkk8RUIzRkMwMzgwMUZGRjAzODAzRTA3QzM4MEY4MDNFMDAxRjdGMTMwMDQ4RUIwRjgwMTI3RTE1Ci1DMEEyMDBGRTEzMDdBMkI2RkNBMjQ4QzhGQ0EzMTI3RUEyMTI3RjZDRUIwMUMwN0UzOTBGODAwMzgwMzkwN0MwMDcwMDM4MDMKLUYwMUUzODAwRkZGQ0VCM0ZFMDFBMUI3RTlBMUY+STxFQjA3RjhFQjNGRkNFQjdFM0UzODAxRkM3RkVBMDNGODEzRjAxMjA3Ci0xNDNFMTQwMEE3QjUxMkMwQTMzODA3RjAwMEIzQTMzODdGRkY4MEEzMTgyQTdFQTkxNT5JPDkwMzhGRjgwRjAwMDAzRUJFMwotRjgzOTBGQzFGRTFDMzkxRjAwN0M3QzQ4MTM3RTAwM0VFQjNFMTAwMDdFRUIzRjAwQTYwMDNFMTMzRTAwM0YxMzdFNkMxMzdDCi0zODBGQzFGODM4MEJGRkUwMDAxODEzODA5MEM4RkMxMjM4QTIxMjNDMzgzRkZGRjgxNEZGNkMxNEMwNkMxNEUwNkMxNEYwMTIKLTFGMzgzQzAwMDcwMDdDRUIwMUY4NDgxMzAwQTQwMDdDRUIwMUYwQTIwMDNGRUIwN0UwMzkwRkMwMUY4MDZDQjUxMjAwMzgwMAotN0ZGMDFFMjg3RTlBMjI+STxFQUZGRTBBMzEyMEZBQzE0N0U5MDM4RTFGRjgwOTAzOEUzMEZDMDAxRTQxM0UwRUJFODA3MDEKLUY4MTNGMDEzRjBBMjEzRTBCMDM5RkZGRTNGRkZBMzIwMkE3REE5MjU+STwxMjA3RUEwRjgwRUExRkMwRUEzRkUwQTNFQTFGCi1DMEVBMEY4MEVBMDcwMEM3RkNBN0VBRkZFMEEzMTIwRkIzQTNFQUZGRkVBMzBGMkI3RUFBMTI+STxFQUZGRTBBMzEyMEZCMwotQjJFQUZGRkVBMzBGMkE3RUE5MTI+MTA4IEQ8MjZGRkMwN0ZFQjFGQzA5MDNBQzFGRkMwN0ZGMDkwM0FDMzA3RTBDMUY4RDgKLTBGQzQ5MDM4RjEwMUZDOTAzOUM4MDNGMjAwMDFEODAxRkU3RjAxRDA1QkEyMDFFMDVCQjAzQ0ZGRkUzRkZGOEZGRkUwQTMzMwotMUI3RDlBMzg+STwzOEZGQzA3RTkwMzhDMUZGODA5MDM4QzMwRkMwRDgwRkM0MTNFMEVCQzgwNzAxRDgxM0YwMTNEMEEyMTMKLUUwQjAzOUZGRkUzRkZGQTMyMDFCN0Q5QTI1Pkk8RUIzRkUwMzgwMUZGRkMzODAzRjA3RTM5MEZDMDFGODAzOTFGODAwRkMwCi0zOTNGMDAwN0UwQTIwMDdFRUIwM0YwQTMwMEZFMTRGOEE4MDA3RTE0RjBBMjZDRUIwN0UwQTIzOTFGODAwRkMwMzkwRkMwMUYKLTgwMzkwN0YwN0YwMDM4MDFGRkZDMzgwMDNGRTAxRDFCN0U5QTIyPkk8MzhGRkUxRkU5MDM4RUZGRjgwOTAzOEZFMEZFMDM5Ci0wRkY4MDNGMDkwMzhGMDAxRjgwMUUwMTNGQzE0MDAxNUZFQTIxNTdGQTgxNTdFMTVGRUEyMTVGQzE0MDEwMUYwMTNGODkwMzgKLUY4MDdGMDkwMzhGQzBGRTA5MDM4RUZGRjgwOTAzOEUxRkMwMDAxRTBDN0ZDQTlFQUZGRkVBMzIwMjc3RTlBMjU+STwzOEZGCi1DMUYwRUJDN0ZDRUJDNjNFMzgwRkNDN0YxM0Q4MTNEMEEyRUJGMDNFRUJFMDAwQjBCNUZDQTMxODFCN0Y5QTFCPjExNAotRDwzODAzRkUzMDM4MEZGRkYwRUEzRTAzRUE3ODAwMTI3MDAwRjAxMzcwQTI3RTAwRkUxMzAwRUFGRkUwNkNCNEZDMTRDMDZDCi0xM0UwNkMxM0YwMDAwNzEzRjhDNkZDRUIwN0ZDMTMwMDAwRTAxMzdDMTQzQzdFMTQzODdFNkMxMzcwMzhGRjAxRTAzOEU3RkYKLUMwMDBDMTEzMDAxNjFCN0U5QTFCPkk8MTNFMEE0MTIwMUEzMTIwM0EyMTIwNzEyMEYzODFGRkZFMEI1RkNBMjM4MEZFMDAwCi1BRDE0NzBBNzM4MDdGMEUwMDAwMzEzQzAzODAxRkY4MDM4MDA3RjAwMTQyNjdGQTUxQT5JPDM5RkZFMDdGRjBBMzAwMEYxMwotMDdCMjE0MEZBMjAwMDcxMzE3MzkwM0YwNjdGRjM4MDFGRkM3MzgwMDdGODcyMDFCN0Q5QTI1Pkk8MzlGRkZDMDNGRkEzMzkKLTBGRjAwMEYwMDAwNzE0RTA3RjAwMDNFQjAxQzBBMkVCRkMwMzAwMDExNDgwRUJGRTA3MDAwMDE0MDAxM0ZGRUI3RjBFQTIxNAotOUVFQjNGOUMxNEZDNkQ1QUEyNkQ1QUEzNkQ1QUEyNkQ1QUEyMjAxQjdGOUEyMz5JPDNCRkZGQzdGRkMxRkZDQTMzQjBGRTAKLTBGRTAwMUMwMjYwN0YwMDdFQjAzODBBMjAxRjhFQkYwMDcwMDAzMTYwMEVDMEZGODAxRkM1QzAwMDExNTBFRUMxRkZDMjYwMAotRkUxQzVCMTVGRTkwMzlGRjM4N0UzQzAxN0YxNDM4RUM3ODdGNkQ0ODZDNUExNkYwRUNFMDFGMDExRjVDQTI2RDQ4NkM1QUEyCi1FQzgwMDcwMTA3NUNBMjJFMUI3RjlBMzE+STwzOUZGRkMxRkZFQTMzOTA3RjAwMzgwMzgwM0Y4MDc5MDM4RkMwRjAwMzgwMQotRkUxRTAwMDA1QkVCN0YzODE0Rjg2RDVBNkQ1QTEzMEY4MDZEN0UxMzBGNDk3RUVCM0NGRUVCMzhGRkVCNzg3RjkwMzhGMDNGCi04MDM5MDFFMDFGQzBEODAzQzAxM0UwRUI4MDBGMzlGRkYwM0ZGRkEzMjAxQjdGOUEyMz5JPDM5RkZGQzAzRkZBMzM5MEZGMAotMDBGMDAwMDcxNEUwN0YwMDAzRUIwMUMwQTJFQkZDMDMwMDAxMTQ4MEVCRkUwNzAwMDAxNDAwMTNGRkVCN0YwRUEyMTQ5RUVCCi0zRjlDMTRGQzZENUFBMjZENUFBMzZENUFBMjZENUFBMjVDQTIxMzA3MDAzODkwQzdGQ0VBN0MwRkVBRkUwRTEzMUUxMzFDNUIKLUVBNzRGMEVBM0ZFMEVBMEY4MDIwMjc3RjlBMjM+SSBFCi0lRW5kRFZJUFNCaXRtYXBGb250Ci0lRFZJUFNCaXRtYXBGb250OiBGdCBjbXR0MTAgMTAuOTUgOTEKLS9GdCA5MSAxMjcgZGY8MTI3MDEyRjhCMDEyNzAxMjAwQTUxMjcwMTJGOEEzMTI3MDA1MUM3NzlCMTg+MzMKLUQ8RUE0MDEwRUFFMDM4RUFGMDc4RUFFMDM4QUFFQTYwMzAwRDBFN0I5QzE4Pkk8RUEwMzA2RUEwNzhGQTYzODdGRkZDMEI1Ci0xMkUwQTI2QzEzQzAzODBGMUUwMEE2Mzg3RkZGQzBCNTEyRTBBMjZDMTNDMDM4MUUzQzAwQTZFQTBDMTgxMzFDN0U5QjE4PgotSTwxM0MwMTIwMUEzRUEwM0YwRUEwRkZDRUEzRkZFRUE3RENGRUE3MUM3MzhFMUMzODAxM0M3QTMzOEYxQzAwMDEyNzkxMjNGCi02QzdFRUEwRkY4RUEwMUZDMTNERTEzQ0YxM0M3Mzg2MUMzODAxMkYxQTIxMkUxRUJDNzAwMTI3MUVBNzlERUVBM0ZGRUVBMUYKLUY4RUEwN0UwRUEwMUMwQTMxMjAwMTEyNDdEOUYxOD5JPEVBMzgwMzM4N0MwNzgwQTJFQUVFMEYxNDAwQTI1QjEzMUVBMjEzCi0zRUVBN0MzQ0EyRUEzODdDRUEwMDc4QTIxM0Y4NUIxMjAxNUJBMjEyMDM1QkEyMTIwN0VCODM4MEVCODdDMDEyMEZFQjBFRTAKLUEyMTIxRjEyMUVBMjEyM0UzODNDMDdDMEEyMzgxODAzODAxMzI0N0U5RjE4Pkk8RUEwMUMwRUEwN0UwNDg3RUVBMEU3MDQ4Ci03RUE0RUI3M0Y4MTNGMzEzRTMzODBGQzFDMEVCQzM4MDEzODMxMzAzMzgxRjA3MDBFQTNGODdFQTdCOEVFQTcxQ0VFQUUxRkMKLTEyRTAxMzdDRUI3ODcwQTJFQTcwRkUzODdGRkZFMEVBM0ZDNzM4MEYwM0MwMTUxQzdGOUIxOD5JPDEyMzgxMjdDQTIxMjdFCi0xMjNFMTIwRUEzMTIxQ0EyMTIzODEyRjgxMkYwMTJDMDA3MEU3ODlCMTg+STwxMzcwMTNGMEVBMDFFMEVBMDNDMEVBMDc4MAotRUEwRjAwMTIxRTEyMUM1QUEyNUFBNDVBQTgxMjcwQTQ3RUEyN0UxMjFFN0VFQTA3ODBFQTAzQzBFQTAxRjAxMjAwMTM3MDBDCi0yNDc5OUYxOD5JPDEyNjAxMkYwMTI3ODdFN0U3RUVBMDc4MDEyMDNFQTAxQzBBMkVBMDBFMEE0MTM3MEE4MTNFMEE0RUEwMQotQzBBMkVBMDM4MDEyMDdFQTBGMDAxMjFFNUE1QTVBMTI2MDBDMjQ3QzlGMTg+STxFQTAxQzBBNEVBNDFDMTM4RjFDNzgwRUEKLUZEREYzODdGRkYwMEVBMUZGQ0VBMDdGMEEyRUExRkZDRUE3RkZGMzhGRERGODBFQUYxQzczODQxQzEwMEVBMDFDMEE0MTExNAotN0Q5NzE4Pkk8MTM2MDEzRjBBNzM4N0ZGRkMwQjUxMkUwQTI2QzEzQzAzODAwRjAwMEE3MTM2MDEzMTQ3RTk3MTg+STwxMjFDCi0xMjNFMTI3RTEyN0YxMjNGMTIxRjEyMDcxMjBFMTIxRTEyN0MxMkY4MTI2MDA4MEM3ODg1MTg+STwzODdGRkZDMEI1MTJFMAotQTI2QzEzQzAxMzA0N0U4RjE4Pkk8MTIzMDEyNzgxMkZDQTIxMjc4MTIzMDA2MDY3Nzg1MTg+STwxMzAzRUIwNzgwQTIxMzBGCi0xNDAwNUIxMzFFQTIxMzNFMTMzQzEzN0MxMzc4QTIxM0Y4NUIxMjAxNUIxMjAzNUJBMjEyMDc1QjEyMEY5MEM3RkNBMjVBMTIKLTFFMTIzRTEyM0NBMjEyN0MxMjc4MTJGODVBQTIxMjYwMTEyNDdEOUYxOD5JPEVBMDFGMEVBMDdGQzQ4N0VFQTFGMUZFQTFDCi0wNzM4MzgwMzgwMDA3ODEzQzBFQTcwMDFBMjM4RTAwMEUwQTlFQUYwMDEwMDcwMTNDMEEyRUE3ODAzMDAzODEzODAzODFDMDcKLTAwRUExRjFGRUEwRkZFNkM1QUVBMDFGMDEzMUM3RTlCMTg+STxFQTAxODAxMjAzQTIxMjA3MTIwRjEyM0YxMkZGMTJGQjEyCi00MzEyMDNCMEVBN0ZGQ0VBRkZGRUVBN0ZGQzBGMUM3QjlCMTg+STxFQTAzRjBFQTBGRkVFQTNGRkYzODdDMEY4MDM4NzAwMwotQzBFQUUwMDEzOEYwMDBFMEEyMTI2MEM3RkNBMkVCMDFDMEEyMTMwM0VCMDc4MEVCMEYwMDEzMUU1QjVCNUI0ODVBRUEwN0MwCi00ODVBMzgxRTAwRTA1QUVBN0ZGRkI1RkM3RTEzMUM3RTlCMTg+STwxMzFGNUIxMzc3QTIxM0U3MTIwMTEzQzdFQTAzODcxMgotMDcxMzA3MTIwRTEyMUUxMjNDMTIzODEyNzgxMkYwQjUxMkY4QTMzODAwMDcwMEE2RUI3RkYwQTMxNTFDN0Y5QjE4PjUyCi1EPDM4M0ZGRjgwQTMwMDM4QzdGQ0E4RUEzQkY4RUEzRkZFN0YzODNDMDc4MDM4MzAwM0MwRUEwMDAxRUIwMEUwQTIxMjYwMTIKLUYwQTIzOEUwMDFDMEVBNzAwMzM4N0MwRjgwMzgzRkZGMDBFQTFGRkNFQTAzRjAxMzFDN0U5QjE4Pkk8MTM3RTQ4QjRGQzAwCi0wNzEzODAzODBGODNDMEVBMUUwMzEyMUMzODM4MDE4MDkwQzdGQzVBQTJFQUUxRjhFQUU3RkVCNUZDMzhGRTA3ODAzOEY4MDMKLUMwRUFGMDAxRUIwMEUwNUFBMjEyNzBBMzM4MzgwMUMwRUEzQzAzMzgxRTA3ODAzODBGRkYwMDZDNUFFQTAxRjgxMzFDN0U5QgotMTg+STwxMkUwQjUxMkUwQTIxNEMwMzhFMDAzODBFQjA3MDBDNjVBMTMxRTEzMUM1QkEyNUIxM0YwNUJBMjQ4NUFBMzQ4NUEKLUE0NDhDN0ZDQTcxMzFEN0U5QzE4Pkk8RUEwM0Y4RUEwRkZFNDg3RTM4M0UwRjgwRUEzODAzMzg3MDAxQzBBNDM4MzgwMzgwCi1FQTNDMDczODFGRkYwMEVBMDdGQzQ4N0VFQTFGMUYzODNDMDc4MDM4NzAwMUMwMDBGMDEzRTBFQUUwMDBBNDM4NzAwMUMwRUEKLTc4MDMzODNFMEY4MDM4MUZGRjAwNkM1QUVBMDNGODEzMUM3RTlCMTg+STwxMjMwMTI3ODEyRkNBMjEyNzgxMjMwMTIwMEE4Ci0xMjMwMTI3ODEyRkNBMjEyNzgxMjMwMDYxNDc3OTMxOD41OCBEPDEyMTgxMjNDMTI3RUEyMTIzQzEyMTgxMjAwQTgxMjE4MTIKLTNDMTI3RUEyMTIzRTEyMUUxMjBFMTIxQzEyM0MxMjc4MTJGMDEyNjAwNzFBNzg5MzE4Pkk8MTRDMEVCMDNFMDEzMDdFQjFGCi1DMEVCM0Y4MEVCRkUwMDQ4NUFFQTA3RjA0ODVBRUEzRjgwNDhDN0ZDMTJGQ0EyMTI3RjZDN0VFQTBGRTA2QzdFRUEwMUZDNkMKLTdFRUIzRjgwRUIxRkMwRUIwN0UwMTMwM0VCMDBDMDEzMTg3RTk5MTg+STwzODdGRkZDMEI1MTJFMEEyNkMxM0MwQzhGQ0E0Ci0zODdGRkZDMEI1MTJFMEEyNkMxM0MwMTMwQzdFOTMxOD5JPDEyNjAxMkY4N0UxMjdGNkM3RUVBMEZFMDZDN0VFQTAxRkM2QwotN0VFQjNGODBFQjFGQzBFQjA3RTBBMkVCMUZDMEVCM0Y4MEVCRkUwMDQ4NUFFQTA3RjA0ODVBRUEzRjgwNDhDN0ZDMTJGQzVBCi0xMjYwMTMxODdFOTkxOD5JPEVBMEZGMEVBM0ZGQzQ4QjRGQ0VBNzAwRjM4RjAwMzgwQTJFQTYwMDczODAwMEYwMDEzM0U1QgotRUEwMUYwNUI0ODVBQTU1QkM4RkNBNUVBMDM4MDQ4N0VBMzZDNUExMTFDN0Q5QjE4Pkk8MTM3Q0VBMDFGRUVBMDdGRjM4MEYKLTg3ODAzODFFMDNDMEVBM0MxREVBMzg3RjM4NzBGRkUwRUE3MUUzMTNDMTEyRTFFQUUzODBBNjM4RTFDMUMwMTI3MTEzRTMzOAotNzBGRjgwMzgzODdGMDBFQTNDMUMzODFFMDBFMEVBMEY4MzM4MDdGRkMwMDAwMTEzODAzODAwN0UwMDEzMUM3RTlCMTg+STwKLTEzNzAxM0Y4QTIxM0Q4QTJFQTAxRENBMzEzOENFQTAzOEVBNEVBMDcwN0E1MzgwRkZGODBBM0VBMEUwMzM4MUMwMUMwQTMzOAotN0YwN0YwMDBGRjEzRjgwMDdGMTNGMDE1MUM3RjlCMTg+STxFQTdGRkNCNUZDNkMxMzgwMzgxQzAzQzAxMzAxRUIwMEUwQTQKLTEzMDExNEMwMTMwNzM4MUZGRjgwMTQwMDE0QzBFQTFDMDNFQjAwRTAxNEYwMTQ3MEE0MTRGMDE0RTAxMzAzMzg3RkZGQzBCNQotMTI4MDM4N0ZGRTAwMTQxQzdGOUIxOD5JPEVCRjhFMEVBMDNGRUVBMDdGRkVBMEYwN0VBMUUwM0VBM0MwMUVBMzgwMDVBQTIKLTE0MDA1QUE4MTI3MDE0RTBBMjdFMTIzQzM4MUUwMUMwRUEwRjA3MzgwN0ZGODAzODAzRkUwMEVBMDBGODEzMUM3RTlCMTg+Ci1JPEVBN0ZGOEVBRkZGRTZDN0UzODFDMEY4MEVCMDNDMEEyRUIwMUUwMTMwMEEyMTRGMDE0NzBBODE0RjAxNEUwQTIxMzAxMTQKLUMwMTMwM0VCMEY4MDM4N0ZGRjAwNDg1QUVBN0ZGODE0MUM3RjlCMTg+STxCNTEyRjBBMzM4MUMwMDcwQTQxNDAwQTIxMzBFCi1BM0VBMUZGRUEzRUExQzBFQTM5MEM3RkNBMjE0MzhBNUI1MTJGOEEzMTUxQzdGOUIxOD5JPEI1MTJGMEEzMzgxQzAwNzBBNAotMTQwMEEyMTMwRUEzRUExRkZFQTNFQTFDMEVBMzkwQzdGQ0E3RUFGRkMwQTMxNDFDN0U5QjE4Pkk8MzgwMUYxQzBFQTAzRkQKLUVBMEZGRkVBMUYwRkVBMUMwMzEyMzgxMzAxMTI3MEEyOTBDN0ZDNUFBNUVCMEZGMDEzMUYxMzBGMzg3MDAxQzBBMjEzMDMxMgotMzhBMkVBMUMwN0VBMUYwRkVBMEZGRkVBMDNGREVBMDFGMTE0MUM3RTlCMTg+STwzODdGMDdGMDM4RkY4RkY4Mzg3RjA3RjAKLTM4MUMwMUMwQTlFQTFGRkZBM0VBMUMwMUFBMzg3RjA3RjAzOEZGOEZGODM4N0YwN0YwMTUxQzdGOUIxOD5JPEVBN0ZGRkI1Ci0xMjgwNkMxMzAwRUEwMUMwQjNBNEVBN0ZGRkI1MTI4MDZDMTMwMDExMUM3RDlCMTg+STwzODAxRkZDMEEzMzgwMDBFMDBCMwotMTJGMEEyMTMzQ0VBN0ZGQ0VBM0ZGMEVBMEZDMDEyMUM3RDlCMTg+STwzODdGMDdGMDM4RkY4N0Y4Mzg3RjA3RjAzODFDMDMKLUMwRUIwNzgwMTQwMDEzMEUxMzFFNUIxMzM4NUIxM0YwMTIxREEyRUExRkI4QTIxMzFDMTIxRUVBMUMwRUEyN0ZBMkVCMDM4MAotQTJFQjAxQzAzODdGMDNGMDM4RkY4N0Y4Mzg3RjAzRjAxNTFDN0Y5QjE4Pkk8RUFGRkMwQTMwMDFDQzdGQ0IxMTRFMEE1QjUKLUZDQTMxMzFDN0U5QjE4Pkk8MzhGQzAxRjhFQUZFMDNBMjM4M0IwNkUwQTQxMzhFQTJFQTM5OENBMjEzRENBM0VBMzhEOEEyCi0xM0Y4MTM3MEEyMTMwMEE2MzhGRTAzRjhBMzE1MUM3RjlCMTg+STwzODdFMDdGMDM4RkYwRkY4Mzg3RjA3RjAzODFEODFDMAotQTMxM0MxMTIxQ0EyMTNFMUEzMTM2MTEzNzFBMjEzMzExMzM5QTMxMzE5QTIxMzFEMTMwREEzRUE3RjA3RUFGRjg3RUE3RjAzCi0xNTFDN0Y5QjE4Pkk8RUEwRkZFMzgzRkZGODA0ODEzQzBFQTc4MDNFQTcwMDEwMEYwMTNFMEVBRTAwMEIwRUFGMDAxMDA3MAotMTNDMEVBN0MwN0VBN0ZGRjZDMTM4MDM4MEZGRTAwMTMxQzdFOUIxOD5JPEVBRkZGRUVCRkY4MDE0QzBFQTFDMDNFQjAxRTAKLTEzMDAxNDcwQTUxNEUwMTMwMUVCMDNDMEVBMUZGRjE0ODBFQkZFMDAwMDFDQzdGQ0E4QjQ3RUEzMTQxQzdGOUIxOD5JPEVBCi0wRkZFMzgzRkZGODA0ODEzQzBFQTc4MDNFQTcwMDEwMEYwMTNFMEVBRTAwMEFFMTM3MEEyRUFGMDc5Mzg3MDM5QzBFQTc4M0YKLUVBN0ZGRjZDMTM4MDM4MEZGRTAwRUEwMDBGRUIwNzgwQTJFQjAzQzAxMzAxQTIxMzIyN0U5QjE4Pkk8RUE3RkY4RUFGRkZFCi02QzdFMzgxQzBGODAxMzAzMTRDMDEzMDFBMzEzMDMxNDgwMTMwRjM4MUZGRjAwNUJBMkVBMUMwRjdGRUIwMzgwQTUxNDlDQTMKLTM4N0YwMUY4RUFGRjgxMzg3RjAwRjAxNjFDN0Y5QjE4Pkk8MzgwM0YxQzBFQTFGRkY1QUVBN0MwRkVBNzAwM0VBRTAwMUEzCi05MEM3RkMxMjcwMTI3ODEyM0ZFQTFGRjBFQTA3RkVDNjdFRUIwRjgwRUIwM0MwMTMwMUVCMDBFMEEyMTI2MDEyRTAxMzAxMDAKLUYwMTNDMDM4RjgwNzgwQjVGQ0VCRkUwMEVBRTdGODEzMUM3RTlCMTg+STwzODdGRkZGOEI1RkNBMjM4RTA3MDM4QTQwMDAwCi0xMzAwQjJFQTA3RkZBMzE1MUM3RjlCMTg+STwzOEZGODNGRUEzMzgxQzAwNzBCMzZDMTNFMEVBMEYwMTM4MDc4M0MwMzgwMwotRkY4MDZDMTMwMEVBMDA3QzE3MUM4MDlCMTg+STwzOEZFMDNGOEVBRkYwN0VBRkUwMzM4M0MwMUUwMDAxQzEzQzBBM0VBMUUKLTAzMDAwRTEzODBBNDM4MDcwNzAwQTRFQTAzOEVBNEVBMDE4QzEzRENBM0VBMDBEODEzRjhBMjEzNzAxNTFDN0Y5QjE4Pkk8Ci0zOEZFMDNGOEEzMzg3MDAwNzBBMzZDMTNFMEE1MTNGOEVBMzlGQzEzRENBMjAwMTkxM0MwQTMxMzhDQTJFQTFEOERBMzEzMDUKLTAwMEQxMzgwRUEwRjA3QTJFQTBFMDMxNTFDN0Y5QjE4Pkk8Mzg3RjBGRTAxMzlGMTMwRjM4MEUwNzAwMTIwRkVBMDcwRTEzCi04RUVBMDM5QzEzRENFQTAxRjhBMjEyMDA1QjEzNzAxM0YwN0Y0ODdFMTNEQ0VBMDM5RTEzOEVFQTA3MEY3RjAwMEUxMzgwMTMKLTAzMDAxRTEzQzAzODdGMDdGMDAwRkYxM0Y4MDA3RjEzRjAxNTFDN0Y5QjE4Pkk8MzhGRTAzRjhFQUZGMDdFQUZFMDMzODFDCi0wMUMwRUExRTAzMDAwRTEzODBFQTBGMDcwMDA3MTMwMEEyRUEwMzhFQTJFQTAxRENBM0VBMDBGOEEyMTM3MEE5RUEwMUZDNDgKLTdFNkM1QTE1MUM3RjlCMTg+STwzODNGRkZFMDVBQTIzODcwMDFDMDEzMDNFQjA3ODAxNDAwQzY1QTEzMUUxMzFDMTMzQzVCCi0xMzcwMTNGMDQ4NUE1QjEyMDM0ODVBOTBDN0ZDNUEwMDFFMTNFMDEyMUMxMjNDNUExMjcwQjVGQ0EzMTMxQzdFOUIxOD5JPAotRUFGRkY4QTNFQUUwMDBCM0FDRUFGRkY4QTMwRDI0Nzc5RjE4Pkk8MTI2MDEyRjBBMjdFMTI3ODEyN0MxMjNDQTIxMjNFMTIKLTFFMTIxRjdFQTI3RjEyMDc3RjEyMDNBMjdGMTIwMTdGMTIwMDdGMTM3OEEyMTM3QzEzM0MxMzNFMTMxRUEyMTMxRjdGMTQ4MAotMTMwN0EyRUIwMzAwMTEyNDdEOUYxOD5JPEVBRkZGOEEzRUEwMDM4QjNBQ0VBRkZGOEEzMEQyNDdGOUYxOD5JPDM4N0ZGRkMwCi1CNTEyRTBBMjZDMTNDMDEzMDQ3RTdGMTg+OTUgRDwxMjA2MTIxRTEyM0UxMjM4MTI3MEEyMTJFMEEzMTJGODEyRkMxMjdDQTIKLTEyMzgwNzBFNzg5RTE4Pkk8RUEwRkYwRUExRkZDNDg3RUVBM0MwRkVBMTgwNzM4MDAwMzgwQTIxM0ZGMTIwNzEyMUZFQTdGCi0wMzEyNzgxMkUwQTNFQUYwMDdFQTc4MEYzODNGRkZGOEVBMUZGREVBMDdGMDE1MTQ3RTkzMTg+STwxMjdFMTJGRTEyN0UxMgotMEVBNTEzM0VFQkZGODAwMDBGMTNDMEVCQzFFMDEzODBFQjAwNzAxMjBFMTQzOEE2MDAwRjEzNzBBMkVCODBFMDEzQzFFQkZGCi1DMDAwMEUxMzgwMzgwNjNFMDAxNTFDODA5QjE4Pkk8RUEwMUZFRUEwN0ZGMDAxRjEzODBFQTNFMDczODM4MDMwMDQ4QzdGQwotQTI1QUE2MTI3MEVCMDFDMDEyMzhFQTNFMDMzODFGRkY4MDAwMDcxMzAwRUEwMUZDMTIxNDdEOTMxOD5JPEVCMUY4MDEzM0YKLTEzMUYxMzAzQTVFQTAzRTNFQTBGRkJFQTFGRkZFQTNDMUZFQTM4MEZFQTcwMDcxMzAzMTJFMEE2RUE3MDA3QTJFQTM4MEZFQQotM0MxRjM4MUZGRkYwMzgwRkZCRjgzODAzRTNGMDE1MUM3RTlCMTg+STxFQTAxRjBFQTA3RkNFQTFGRkVFQTNFMEYzODM4MDcKLTgwRUE3MDAzQTIzOEUwMDFDMEEyQjVGQ0EzMDBFMEM3RkMxMjcwRUIwMUMwMTIzOEVBM0UwNzM4MUZGRjgwMDAwNzEzMDBFQQotMDFGODEyMTQ3RDkzMTg+STxFQjFGODBFQjdGQzBFQkZGRTAxM0UxMzgwMUMwQzAxNDAwQTMzODdGRkZDMEI1RkNBMjM4MDEKLUMwMDBBRUVBN0ZGRkEzMTMxQzdGOUIxOD5JPDM4MDFFMUYwMzgwN0ZGRjg1QTM4MUUxRTMwMzgxQzBFMDA0ODdFQTVFQTFDCi0wRUVBMUUxRUVBMUZGQzVCRUEzOUUwMDAzOEM3RkM3RUVBMUZGRUVCRkZDMDQ4MTNFMDM4NzgwMUYwMzg3MDAwNzA0ODEzMzgKLUE0MDA3ODEzRjBFQTdFMDMzODFGRkZDMDZDMTM4MDM4MDFGQzAwMTUxRjdGOTMxOD5JPDEyN0UxMkZFMTI3RTEyMEVBNTEzCi0zRUVCRkY4MDAwMEYxM0MwMTNDMUVCODBFMDEzMDAxMjBFQUIzODdGQzdGQzM4RkZFN0ZFMzg3RkM3RkMxNzFDODA5QjE4PgotSTxFQTAzODBFQTA3QzBBM0VBMDM4MEM3RkNBNEVBN0ZDMDEyRkYxMjdGMTIwMUFFQjVGQ0EzMTAxRDdDOUMxOD5JPDEzMzgKLTEzN0NBMzEzMzgxMzAwQTRFQTBGRkNBM0VBMDAxQ0IzQTRFQTYwMzhFQUYwNzhFQUZGRjBFQTdGRTBFQTNGODAwRTI3N0U5QwotMTg+STwxMjdFMTJGRTEyN0UxMjBFQTVFQjNGRjBBM0VCMDc4MEVCMEYwMDEzMUU1QjVCNUJFQTBGRjg3RjEzOUMxMzBFRUEKLTBFMEY3RkVCMDM4MDE0QzAzODdGQzdGODEyRkYxMjdGMTUxQzdGOUIxOD5JPEVBRkZDMEEzMTIwMUIzQTRCNTEyODBBMzExCi0xQzdEOUIxOD5JPDM4RjlDMUMwMzhGRkY3RjAxM0ZGMzgzRTNFMzhFQTNDM0NBMkVBMzgzOEFCMzhGRTNFM0VFQjdFN0VFQgotM0UzRTE3MTQ4MDkzMTg+STxFQTdFM0UzOEZFRkY4MDAwN0YxM0MwRUEwRkMxRUI4MEUwMTMwMDEyMEVBQjM4N0ZDN0ZDMzgKLUZGRTdGRTM4N0ZDN0ZDMTcxNDgwOTMxOD5JPEVBMDFGMEVBMEZGRTQ4N0UzODNFMEY4MEVBMzgwMzM4NzAwMUMwQTIzOEUwCi0wMEUwQTVFQUYwMDEwMDcwMTNDMEVBNzgwMzM4M0MwNzgwRUEzRTBGMzgxRkZGMDA2QzVBRUEwMUYwMTMxNDdFOTMxOD5JPAotRUE3RTNFMzhGRUZGODAwMDdGMTNDMDM4MEZDMUUwMTM4MEVCMDA3MDEyMEUxNDM4QTYwMDBGMTM3MEEyRUI4MEUwMTNDMUVCCi1GRkMwMDAwRTEzODBFQjNFMDA5MEM3RkNBN0VBN0ZDMDQ4N0U2QzVBMTUxRTgwOTMxOD5JPDM4MDFGMzgwRUEwN0ZCRUExRgotRkZFQTNFMUZFQTM4MEZFQTcwMDdBMkVBRTAwM0E2RUE3MDA3QTJFQTM4MEZFQTNDMUZFQTFGRkZFQTBGRkJFQTAzRTNFQTAwCi0wM0E3RUIxRkYwRUIzRkY4RUIxRkYwMTUxRTdFOTMxOD5JPDM4RkYwRkMwRUIzRkUwRUI3RkYwRUEwN0YwRUJFMDYwRUJDMAotMDA1QkEyOTBDN0ZDQTlFQUZGRkM3RjVCMTQxNDdFOTMxOD5JPEVBMDdGN0VBM0ZGRjVBRUE3ODBGRUFFMDA3QTMwMDdDQzcKLUZDRUE3RkUwRUExRkZDRUEwM0ZFRUEwMDFGMzg2MDA3ODBFQUUwMDNBMjEyRjAzOEY4MEYwMEI1RkMxM0ZDRUFFN0YwMTExNAotN0Q5MzE4Pkk8NDg3RTEyMDNBNDM4N0ZGRkMwQjVGQ0EyMzgwMzgwMDBBOTE0NDAxNEUwQTMzODAxQzFDMDEzRkY2QzEzODAKLUVCM0UwMDEzMTk3Rjk4MTg+STwzODdFMDdFMEVBRkUwRkVBN0UwN0VBMEUwMEFDMTMwMUVBMEYwMzM4MDdGRkZDNkMxM0ZFCi0zODAxRkNGQzE3MTQ4MDkzMTg+STwzODdGOEZGMDAwRkYxM0Y4MDA3RjEzRjAzODFDMDFDMDM4MEUwMzgwQTMzODA3MDcwMAotQTMxMzhGRUEwMzhFQTNFQTAxRENBM0VBMDBGOEEyMTM3MDE1MTQ3RjkzMTg+STwzOEZGMDdGODEzOEYxMzA3MzgzODAwRTAKLUE0MzgxQzAxQzAxMzcxMTNGOUEyMTNEOUVBMURERDAwMEQxMzgwQTMxMzhERUEwRjhGQTIzODA3MDcwMDE1MTQ3RjkzMTg+Ci1JPDM4N0Y4RkYwMTM5RjEzOEYzODBGMDcwMEVBMDc4RUVBMDM5RUVBMDFEQzEzRjgxMjAwMTM3MDEzRjA3RkVBMDFEQ0VBMDMKLTlFMTM4RUVBMDcwNzAwMEUxMzgwMzg3RjhGRjAwMEZGMTNGODAwN0YxM0YwMTUxNDdGOTMxOD5JPDM4N0Y4RkYwMDBGRjEzCi1GODAwN0YxM0YwMzgwRTAxQzBFQjAzODBBMjEyMDdFQjA3MDBBMkVBMDM4N0EyMTM4RUVBMDFDRUEyMTNDQzEyMDAxM0RDMTMKLTc4QTMxMzcwQTMxM0YwNUIxMjc5RUE3QkMwRUE3RjgwNkNDN0ZDMTIxRTE1MUU3RjkzMTg+STwzODNGRkZGMDVBQTIzODcwCi0wMUUwRUIwM0MwRUIwNzgwMzgwMDBGMDAxMzFFNUIxM0Y4NDg1QUVBMDNDMDQ4NUEzODBGMDA3MDEyMUU1QTVBQjUxMkYwQTMKLTE0MTQ3RjkzMTg+STxFQjA3RTAxMzFGMTM3RkVCNzgwMDEzRTBBQjEyMDFFQTdGQzA0ODVBQTI2QzdFRUEwMUUwMTIwMEFCCi0xMzc4RUI3RkUwMTMxRjEzMDcxMzI0N0U5RjE4Pkk8MTI2MDEyRjBCM0IwMTI2MDA0MjQ3NjlGMTg+STwxMjdDQjRGQzEzQzAKLTEyMDNDNjdFQUI3RkVCN0ZDMEVCM0ZFMEEyRUI3RkMwRUJGMDAwNUJBQkVBMDNDMDEyRkY5MEM3RkMxMjdDMTMyNDdFOUYxOAotPkk8RUEwNjBDRUExRjFFRUEzRkJFRUFGQkY4RUFGMUYwRUE2MEMwMEYwNjdDOUIxOD5JIEUKLSVFbmREVklQU0JpdG1hcEZvbnQKLSVEVklQU0JpdG1hcEZvbnQ6IEZ1IGNtcjEwIDEwLjk1IDc3Ci0vRnUgNzcgMTIzIGRmPDkwMzgxRjgzRTA5MDM4RjA2RTMwMzkwMUMwNzg3ODM4MDM4MEY4OTAzODAwRjAzMDQ4RUI3MDAwQTcKLUI2MTI4MDM5MDcwMDcwMDBCMjM4M0ZFM0ZGMUQyMDgwOUYxQj4xMSBEPDEzM0ZFQkUwQzBFQTAxQzAzODAzODFFMEVBMDcwMQotQTI5MEM3RkNBNkI1MTJFMEVBMDcwMEIyMzgzRkMzRkMxNjIwODA5RjE5Pkk8RUIzRkUwMTNFMEVBMDFDMUVBMDM4MUVBMDcKLTAwQThCNUZDRUEwNzAwQjIzODNGRTdGQzE2MjA4MDlGMTk+STw5MDM4MUY4MUY4OTAzOEYwNEYwNDM5MDFDMDdDMDYzOTAzCi04MEY4MEZFQjAwRjA1QTAyNzBDN0ZDQTZCN0ZDMzkwNzAwNzAwN0IyM0EzRkUzRkUzRkUwMjMyMDgwOUYyNj5JPEVBNzAzOAotRUFGODdDRUFGQzdFQTJFQTc0M0FFQTA0MDJBM0VBMDgwNEEyRUExMDA4QTJFQTIwMTBFQTQwMjAwRjBFN0Y5RjE3PjM0Ci1EPDEzNDBBMkVBMDNGMEVBMEM0RUVBMTA0MTM4MjA0MDgwMTI2MDAwNDAxMzQwMzhDMDQxQzAxMzQzQTIzOEUwNDE4MEVCNDAKLTAwMTI3MDEyN0NFQTNGQzBFQTFGRjg2QzdFRUEwM0ZFRUEwMDdGRUI0RjgwMTM0M0VCNDFDMEEyRUFGMDQwQTMxMjgwMTQ4MAotRUE0MDQxMDAyMDEzMDBFQTMwNDJFQTBDNENFQTAzRjBFQTAwNDBBMzEyMjU3RUExMTc+MzYKLUQ8MTI3MDEyRjgxMkZDQTIxMjc0MTIwNEEzMTIwOEEyMTIxMEEyMTIyMDEyNDAwNjBFN0M5RjBEPjM5Ci1EPDEzNDAxMzgwRUEwMTAwNUExMjA2MTIwNDEyMEM1QUEyMTIzODEyMzBBMjEyNzAxMjYwQTQxMkUwQUMxMjYwQTQxMjcwMTIKLTMwQTIxMjM4MTIxOEEyN0UxMjA0MTIwNjdFN0VFQTAwODAxMzQwMEEyRTdCQTExMj5JPDdFMTI0MDdFMTIzMDdFMTIwODEyCi0wQzdFQTIxMjA3N0VBMjEzODAxMjAxQTQxM0MwQUMxMzgwQTQxMjAzMTMwMEEyNUExMjA2QTI1QTEyMDgxMjE4NUExMjIwNUEKLTVBMEEyRTdFQTExMj5JPDEyNzAxMkYwMTJGOEEyMTI3ODEyMDhBMzEyMTBBMzEyMjBBMjEyNDAwNTBFN0M4NDBEPjQ0Ci1EPEVBRkZGMEEyMEMwMjgwOEEwRj5JPDEyNzAxMkY4QTMxMjcwMDUwNTdDODQwRD5JPDE0NDAxNEMwRUIwMTgwQTNFQjAzMDAKLUEzMTMwNkEyNUJBMzVCQTM1QkEyNUJBMzVCQTM0ODVBQTM0OEM3RkNBMjEyMDZBMzVBQTM1QUEyNUFBMzVBQTM1QUEyMTIyRAotN0VBMTE3Pkk8RUEwM0YwRUEwRTFDNDg3RUVBMTgwNkVBMzgwNzM4NzAwMzgwQTQwMEYwMTNDMEFEMDA3MDEzODBBM0VBNzgKLTA3MDAzODEzMDBFQTE4MDZFQTFDMEU2QzVBRUEwM0YwMTIxRjdFOUQxNz5JPDEzODAxMjAzMTIwRjEyRjMxMjAzQjNBNkVBCi0wN0MwRUE3RkZFMEYxRTdDOUQxNz5JPEVBMDNGMEVBMEMxQ0VBMTAwRTQ4N0UwMDQwMTM4MDEyODAwMEYwMTNDMEVBRjgwMwotQTNFQTIwMDcxMjAwMTQ4MEEyRUIwRjAwMTMwRTVCNUI1QjEzNjA1QjQ4NUE0OEM3RkMwMDA2MTM0MDVBNUEwMDEwMTM4MEVBCi0zRkZGNUFCNUZDMTIxRTdFOUQxNz5JPEVBMDNGMEVBMEMxQ0VBMTAwRUVBMjAwRjAwNzgxMzgwMTMwN0EyRUEzODBGMTIwMAotMTQwMEEyMTMxRTEzMUMxMzcwRUEwN0YwRUEwMDNDMTMwRTEzMEZFQjA3ODBBMjE0QzAxMjIwMTJGOEEzMDBGMDEzODAxMjQwCi1FQjBGMDBFQTIwMEVFQTE4M0NFQTA3RjAxMjFGN0U5RDE3Pkk8MTMwNkEyMTMwRUEyMTMxRTEzMkVBMjEzNEUxMzhFQTJFQQotMDEwRTEyMDJBMjEyMDQxMjA4QTIxMjEwMTIyMEEyMTI0MDEyQzBCNTEyRjAzODAwMEUwMEE3RUJGRkUwMTQxRTdGOUQxNz4KLUk8RUExODAzRUExRkZFNUI1QjEzRTAwMDEwQzdGQ0E2RUExMUYwRUExNjFDRUExODBFRUExMDA3MTQ4MEVBMDAwM0EyMTRDMAotQTMxMjcwMTJGMEEyMDBFMDEzODAxMjQwRUIwNzAwRUEyMDA2NkM1QUVBMDgzOEVBMDdFMDEyMUY3RTlEMTc+STwxMzdDRUEKLTAxODJFQTA3MDEzODBFMDM4MEVBMEMwNzEyMTgzODM4MDMwMDkwQzdGQzEyNzgxMjcwQTJFQUYxRjBFQUYyMUNFQUY0MDZFQQotRjgwN0VCMDM4MEEyMDBGMDEzQzBBNTEyNzBBMjE0ODAxMjM4RUIwNzAwMTIxOEVBMEMwRTZDNUFFQTAxRjAxMjFGN0U5RDE3Ci0+STwxMjQwMzg3RkZGRTAxNEMwQTIzODQwMDA4MDM4ODAwMTAwQTIxMzAyNDg1QUEyNUI1QkEyNUJBMjEzNjBBMjEzRTA1QgotMTIwMUE0MTIwM0E3NkM1QTEzMUY3RTlEMTc+STxFQTAzRjBFQTBDMENFQTEwMDZFQTMwMDMzODIwMDE4MDEyNjBBMzEyNzAKLTM4NzgwMzAwMTIzRUVBM0YwNkVBMUZDOEVBMEZGMEVBMDNGODQ4N0VFQTBDN0VFQTEwM0YzODMwMEY4MEVBNjAwN0VCMDFDMAotMTJDMDEzMDBBMzE0ODBFQTYwMDEwMDIwMTMwMEVBMTAwMkVBMEMwQ0VBMDNGMDEyMUY3RTlEMTc+STxFQTAzRjBFQTBFMTgKLTQ4N0U0ODdFMTMwNzEyNzBFQjAzODAxMkYwQTIxNEMwQTVFQTcwMDdBMjEyMzhFQTE4MEJFQTBFMTNFQTAzRTMzODAwMDM4MAotQTNFQjA3MDAxMjMwRUE3ODA2MTMwRUVBNzAwQ0VBMjAxOEVBMTA3MEVBMEZDMDEyMUY3RTlEMTc+STwxMjcwMTJGOEEzMTIKLTcwMTIwMEFBMTI3MDEyRjhBMzEyNzAwNTE0N0M5MzBEPkk8MTI3MDEyRjhBMzEyNzAxMjAwQUExMjcwMTJGMDEyRjhBMjEyCi03ODEyMDhBMzEyMTBBMzEyMjBBMjEyNDAwNTFEN0M5MzBEPkk8NUI0OTdFQTM0OTdFQTNFQjA5RTBBM0VCMTBGMEEzRUIyMAotNzhBMzQ5N0VBMkVCQzAzRUVCODAxRUEyNDhCNUZDRUIwMDBGQTIwMDAyRUIwNzgwQTM0OEVCMDNDMEEyMTIwQzAwMUUxNEUwCi0zOUZGODAxRkZFMUYyMDdGOUYyMj42NSBEPEI1MTJFMDM4MEYwMDc4MTQxRUEyODAxNTgwQTUxNTAwNUMxNDFFMTQ3Q0VCRkYKLUYwRUIwMDdDMTQxRkVDMEY4MEVDMDdDMDE0MDMxNUUwQTUxNUMwMTQwNzE1ODBFQzBGMDAxNDNFQjUxMkYwMUIxRjdFOUUyMAotPkk8OTAzODBGRTAxMDkwMzgzODFDMzA5MDM4RTAwMjcwMzgwM0MwMDEzOTA3ODAwMEYwNDhDNzEyNzAxMjFFMTUzMDVBMTUKLTEwMTI3QzEyNzgwMEY4MTQwMEE5MTI3ODAwN0MxNDEwMTIzQ0EyNkMxNDIwQTI3RTZDNkMxMzQwNkM2QzEzODAzOTAwRTAwMwotMDBFQjM4MENFQjBGRjAxQzIxN0U5RjIxPkk8QjUxMkY4MzgwNzgwMUVFQzA3ODBFQzAzQzBFQzAxRTBFQzAwRjAxNTcwMTUKLTc4QTIxNTNDQTMxNTNFQTgxNTNDQTIxNTdDMTU3OEEyMTVGMEVDMDFFMEVDMDNDMEVDMDc4MEVDMUUwMEI1MTJGODFGMUY3RgotOUUyMz5JPEI2MTI4MDM4MEYwMDBGMTQwMzE0MDExNDAwMTVDMDE1NDBBMzE0NDAxNTAwQTIxNEMwMTMwMTEzRkYxMzAxMTMKLTAwMTQ0MEEzRUMwMDIwQTMxNTQwQTMxNUMwMTQwMUVDMDM4MDE0MEZCNkZDMUIxRjdFOUUxRj5JPEI2MTI4MDM4MDc4MDA3Ci0xNDAxQTIxNDAwMTVDMDE1NDBBNEVDMjAwMEEzMTQ2MDE0RTAxM0ZGMTM4MDE0NjAxNDIwQTM5MUM3RkNBODdGRUFGRkZFMUEKLTFGN0Y5RTFFPkk8OTAzODBGRTAyMDkwMzg3ODE4NjA5MDM4RTAwNEUwMzgwMzgwMDIzODA3MDAwMTQ4MTMwMDAwMUUxNDYwCi1BMjVBMTUyMDEyN0MxMjc4MDBGODE0MDBBN0VDN0ZGQ0VDMDNFMDAwNzgxMzAxMTI3QzEyM0NBMjdFQTI3RTdFMzgwMzgwMDIKLTM5MDBFMDA0NjA5MDM4NzgxODIwOTAzODBGRTAwMDFFMjE3RDlGMjQ+STwzOUZGRjA3RkY4MzkwRjAwMDc4MEFEOTBCNUZDCi1FQjAwMDdBRjM5RkZGMDdGRjgxRDFGN0U5RTIyPkk8RUFGRkYwRUEwRjAwQjNBQkVBRkZGMDBDMUY3RTlFMTA+STwzOUZGRjAKLTA3RkMzOTBGMDAwM0UwRUMwMTgwMTUwMDE0MDI1QzVDNUM1QzVDNUM0OUM3RkM1QjQ5N0UxMzBGRUIxM0MwRUIyMUUwMTM0MQotRUI4MEYwRUIwMDc4QTI4MDgwQTI4MEVDMDc4MEEyRUMwM0MwMTVFMDE1RjAzOUZGRjAxRkZFMUYxRjdFOUUyMz43NQotRDxFQUZGRjhFQTBGODA5MEM3RkNCMjE0MDJBNDE0MDYxNDA0QTIxNDBDMTQxQzE0N0NCNTEyRkMxNzFGN0U5RTFDPkk8QjQKLTZDRUIwN0ZFMDAwNzE1QzBBMkQ4MDVDMDEzMEJBMkQ4MDRFMDEzMTNBMzAxNzAxMzIzQTI2RDEzNDNBMzZEMTM4M0EyOTAzOAotMEUwMTAzQTNFQjA3MDJBM0VCMDM4NEEyRUIwMUM4QTNFQjAwRjBBMjE0NjAxMjFGRDhGRkUwRUI3RkZFMjcxRjdGOUUyQT4KLUk8QjRFQjBGRjgzOTBGODAwM0UwRUMwMDgwRUEwQkMwRUEwOUUwQTJFQTA4RjAxMzc4QTI3RjdGQTI3RkVCMDc4MEEyRUIwMwotQzBFQjAxRTBBMkVCMDBGMDE0NzhBMjE0M0MxNDFFQTIxNDBGMTQwN0EyMTQwMzE0MDExMjNFMzhGRjgwMDAxRDFGN0U5RTIyCi0+STxFQjFGRTBFQjcwMzgzODAxQzAwRTQ4NDg3RTM5MDcwMDAzODA0ODE0QzAwMDFFRUIwMUUwNDhFQjAwRjBBMjAwN0MxNAotRjhBMjAwNzgxNDc4MDBGODE0N0NBOTAwNzgxNDc4MDA3QzE0RjhBMjAwM0MxNEYwMDAzRTEzMDEwMDFFMTRFMDZDRUIwM0MwCi02QzE0ODAzOTAzODAwNzAwMzgwMUUwMUUzODAwNzAzOEVCMUZFMDFFMjE3RTlGMjM+STxCNTEyRTAzODBGMDA3QzE0MUU4MAotRUMwNzgwQTIxNUMwQTQxNTgwQTJFQzBGMDAxNDFFMTQ3Q0VCRkZFMDkwQzhGQ0FFRUFGRkYwMUExRjdFOUUxRj5JPEI1MTIKLUUwMzgwRjgwNzgwMDA3MTMxRTgwRUMwNzgwQTIxNUMwQTQxNTgwQTJFQzBGMDAxNDFFMTQ3OEVCRkZFMEVCODA2MDE0MzgxNAotM0MxNDFDMTQxRUEzMTQxRkEzMTUwMTE1ODExNDBGMzkwRkMwMDc4MjM5RkZGQzAzQzRDODEyRjgyMDIwN0Y5RTIyPjgyCi1EPDM4MDNGMDQwMzgwQzBDQzBFQTE4MDNFQTMwMDFFQTYwMDBBMjEyRTAxNDQwQTM2QzEzMDA3RTEyN0NFQTdGODBFQTNGRjgKLTZDQjRGQzAwMDcxMzgwQzYxM0MwRUIxRkUwMTMwMzEzMDFFQjAwRjAxNDcwN0VBNDZDMTM2MDE0RTA2QzEzQzAzOEY4MDE4MAotMzhDNjAzMDBFQTgxRkMxNDIxN0U5RjE5Pkk8MDA3RkI1MTJFMDM4NzgwRjAxMDA2MEVCMDA2MDAwNDAxNDIwQTIwMEMwMTQKLTMwMDA4MDE0MTBBNDAwMDAxNDAwQjM0OTdFMzgwM0ZGRkMxQzFGN0U5RTIxPkk8MzlGRkYwMEZGODM5MEYwMDAzRTBFQzAwCi04MEIzQTQ2Q0VCMDEwMDEzODAxMjAzMTQwMjZDNkM1QTZDNkM1QUVCMzgzMEVCMEZDMDFEMjA3RTlFMjI+STwzOUZGRjAwMwotRkUzOTFGODAwMEY4NkNDNzEyNjAxNTIwNkM2QzEzNDBBMzZDNkMxMzgwQTJFQkUwMDEwMDAxMTQwMEEyMzgwMEYwMDJBMjEzCi1GOEVCNzgwNEEyNkQ1QUEzNkQ1QUEyMTMxRjZENUFBMkVCMDdDMEEzNkQ1QUEzNkRDN0ZDMUYyMDdGOUUyMj5JPDNCRkZGMAotN0ZGODFGRjAzQjFGMDAwRkMwMDdDMDZDOTAzOTA3ODAwMTgwMTcwMDE1QzAwMTgwNUMwMDA3MTUwMkVDMDlFMDEzQzAwMDAzCi01REVDMTlGMDE0MTBEODAxRTA1Q0EyRUMyMDc4RDgwMEYwNUNBMkVDNDAzQzAxNzg1Q0EyRUM4MDFFMDE3QzE0NjAwMTNDMTQKLTQwOTAzODNEMDAwRjEzM0Y2RDVDQTIwMTFFMTMwNzAxMEU5MUM3RkNBMjAxMEM3RjAxMDQxMzAyMkMyMDdGOUUyRj5JPDM5Ci1GRkYwMDFGRjM5MUY4MDAwNzgwMDBGMTQ2MDEyMDc2RDEzNDAwMDAzMTQ4MDdGMzkwMUYwMDEwMDEyMDBFQkY4MDJFQjdDMDYKLUVCM0MwNEVCM0UwODEzMUVFQjFGMTBFQjBGQjBFQjA3QTAxNEUwNkQ1QUFDRUIzRkZDMjAxRjdGOUUyMj44OQotRDwxMkZGQTIxMkMwQjNCM0E1MTJGRkEyMDgyRDdDQTEwRD45MSBEPEVBMDgwNEVBMTAwOEVBMjAxMEEyRUE0MDIwQTJFQTgwCi00MEEzRUFCODVDRUFGQzdFQTJFQTdDM0VFQTM4MUMwRjBFN0E5RjE3Pkk8MTJGRkEyMTIwM0IzQjNBNTEyRkZBMjA4MkQ4MAotQTEwRD5JPDEyMDgxMjEwMTIyMEEyMTI0MEEyMTI4MEEzMTJCODEyRkNBMjEyN0MxMjM4MDYwRTdEOUYwRD45NgotRDxFQTFGRTBFQTMwMzBFQTc4MTgxMzFDRUEzMDBFMTIwMEEzMTNGRUVBMEY4RUVBMUUwRTEyMzgxMjc4MDBGMDEzMTBBMzEzCi0xRTEyNzgzODM4NjcyMDM4MEY4M0MwMTQxNDdFOTMxNz5JPDEyMUMxMkZDMTIxQ0FBMTM3Q0VBMUQ4NzM4MUUwMTgwRUIwMAotQzAwMDFDMTNFMDE0NzBBMjE0NzhBNjE0NzAxNEYwMTRFMDAwMUUxM0MwMzgxQTAxODAzODE5ODcwMEVBMTA3QzE1MjA3RTlGCi0xOT5JPEVBMDFGQ0VBMDcwNkVBMUMwRjEyMzgxMzA2MDA3OEM3RkMxMjcwMTJGMEE2MTI3MDEyNzgwMDM4MTM4MEEyMzgxQwotMDEwMEVBMDcwNkVBMDFGODExMTQ3RjkzMTQ+STxFQjAxQzAxMzBGMTMwMUFBRUEwMUYxRUEwNzBERUEwQzAzRUExODAxMTIKLTM4MTI3ODEyNzAxMkYwQTYxMjcwQTIxMjM4RUExODAzMTIwQ0VBMDcwRDM4MDFGMUY4MTUyMDdGOUYxOT5JPEVBMDNGMEVBCi0wRTFDNDg3RTQ4N0VBMjM4NzAwMzgwQTIxMkYwQjVGQzAwRjBDN0ZDQTQxMjcwQTI2QzEzODBBMjM4MUMwMTAwRUEwNzA2RUEKLTAxRjgxMTE0N0Y5MzE0Pkk8MTM3Q0VBMDFDNkVBMDMwRjEyMDdFQTBFMDYxMzAwQTdFQUZGRjBFQTBFMDBCMkVBN0ZFMDEwCi0yMDgwOUYwRT5JPDE0RTAzODAzRTMzMEVBMEUzQ0VBMUMxQzM4MzgwRTAwRUE3ODBGQTVFQTM4MEU2QzVBRUExRTM4RUEzMwotRTAwMDIwQzdGQ0EyMTIzMEEyRUEzRkZFMzgxRkZGODAxNEMwMzgzMDAxRTAzODYwMDA3MDQ4MTMzMEE0MDA2MDEzNjA2QzEzCi1DMDM4MUMwMzgwMzgwM0ZDMDAxNDFGN0Y5NDE3Pkk8MTIxQzEyRkMxMjFDQUExMzdDMTM4NkVBMUQwMzAwMUUxMzgwQTIxMgotMUNBRTM4RkY4RkYwMTQyMDdFOUYxOT5JPDEyMzgxMjdDQTMxMjM4QzdGQ0E2MTIxQzEyRkMxMjFDQjFFQUZGODAwOTFGN0YKLTlFMEM+STwxM0UwRUEwMUYwQTNFQTAwRTAxMzAwQTYxMzcwRUEwN0YwMTIwMDEzNzBCM0EzMTI2MEVBRjA2MDEzQzBFQTYxCi04MEVBM0YwMDBDMjg4MjlFMEU+STwxMjFDMTJGQzEyMUNBQUVCMUZFMEVCMDc4MEVCMDYwMDEzMDQ1QjVCNUIxMzYwMTNFMAotRUExREYwRUExRTcwRUExQzM4MTMzQzEzMUM3RjEzMEY3RjE0ODAxNEMwMzhGRjlGRjAxNDIwN0U5RjE4Pkk8MTIxQzEyRkMKLTEyMUNCM0FCRUFGRjgwMDkyMDdGOUYwQz5JPDM5MUMzRTAzRTAzOUZDQzMwQzMwMzkxRDAxOTAxODAwMUVFQkUwMUNBMjAwCi0xQzEzQzBBRTNBRkY4RkY4RkY4MDIxMTQ3RTkzMjY+STxFQTFDN0NFQUZDODZFQTFEMDMwMDFFMTM4MEEyMTIxQ0FFMzhGRgotOEZGMDE0MTQ3RTkzMTk+STxFQTAxRjhFQTA3MEUzODFDMDM4MDM4MzgwMUMwQTIzODcwMDBFMEEyMDBGMDEzRjBBNjAwNzAKLTEzRTBBMjM4MzgwMUMwQTIzODFDMDM4MDM4MDcwRTAwRUEwMUY4MTQxNDdGOTMxNz5JPEVBMUM3Q0VBRkQ4NzM4MUUwMTgwCi0xNEMwMzgxQzAwRTAxNEYwMTQ3MDE0NzhBNjE0NzAxNEYwMTRFMDM4MUUwMUMwRUIwMzgwMzgxRDg3MDBFQTFDN0M5MEM3RkMKLUE4QjQ3RTE1MUQ3RTkzMTk+STwzODAxRjA0MDM4MDcwQ0MwRUEwRTAyRUExQzAzRUEzODAxMTI3ODEyNzAxMkYwQTYxMjcwCi0xMjc4MTIzOEVBMUMwM0VBMEMwNUVBMDcwOUVBMDFGMUVBMDAwMUE4RUIwRkY4MTUxRDdGOTMxOD5JPEVBMUNGMEVBRkQxOAotRUExRTNDQTIxMzE4RUExQzAwQUVFQUZGQzAwRTE0N0U5MzEyPkk8RUEwRkM4RUEzMDM4RUE2MDE4RUFDMDA4QTNFQUUwMDAKLTEyN0NFQTNGRTBFQTFGRjBFQTA3RjhFQTAwM0NFQTgwMEUxMzA2MTJDMEEyMTMwNEVBRTAwQ0VBRDgxOEVBODdFMDBGMTQ3RgotOTMxMj5JPDEyMDJBMzEyMDZBMjEyMEVBMjEyM0VFQUZGRjhFQTBFMDBBQjEzMDRBNUVBMDcwODEyMDNFQTAxRjAwRTFDN0YKLTlCMTI+STwzODFDMDM4MEVBRkMxRkVBMUMwM0FFMTMwNzEyMENFQTA2MUIzODAzRTNGMDE0MTQ3RTkzMTk+STwzOEZGODNGOAotMzgzRTAwRTAwMDFDMTNDMDZDMTM4MEEzMzgwNzAxMDBBMjEzODNFQTAzODJBMkVBMDFDNEEyMTNFNEVBMDBFOEEyMTM3MEEzCi0xMzIwMTUxNDdGOTMxOD5JPDM5RkY5RkUxRkMzOTNDMDc4MDcwMzkxQzAzMDA2MEVDODAyMDAwMEUxNDQwQTIxNEMwRDgwNwotMDQxMzgwMTRFMEEyMzkwMzg4NjEwMDE0NzFBMjM4MDFEMDMyMTQzQTE0M0UzODAwRTAxQ0EyRUI2MDE4RUI0MDA4MUUxNDdGCi05MzIxPkk8MzhGRjg3RjgzODFFMDNDMDM4MEUwMTgwRUIwMzAwRUEwNzAyRUEwMzg0RUEwMUM4MTNEOEVBMDBGMDEzNzAxMwotNzgxM0Y4MTM5Q0VBMDEwRTEyMDJFQTA2MDczODA0MDM4MDAwMEMxM0MwMDAzQzEzRTAzOEZFMDdGQzE2MTQ3RjkzMTg+STwKLTM4RkY4M0Y4MzgzRTAwRTAwMDFDMTNDMDZDMTM4MEEzMzgwNzAxMDBBMjEzODNFQTAzODJBMkVBMDFDNEEyMTNFNEVBMDBFOAotQTIxMzcwQTMxMzIwQTI1QkEzRUFGMDgwQTIwMEYxQzdGQzEyNjIxMjNDMTUxRDdGOTMxOD5JPEVBN0ZGRkVBNzAwRTEyNjAKLUVBNDAxQzEzMzgxMzc4MTM3MEVBMDBFMDEyMDExM0MwRUEwMzgwMTIwNzEzMDExMjBFMTIxRUVBMUMwM0VBMzgwMkVBNzAwNgotMTMwRUVBRkZGRTEwMTQ3RjkzMTQ+SSBFCi0lRW5kRFZJUFNCaXRtYXBGb250Ci0lRFZJUFNCaXRtYXBGb250OiBGdiBjbWJ4MTIgMjAuNzM2IDE0Ci0vRnYgMTQgMTIyIGRmPERCMUZGQzE0QzAwMjAzQjVFQUMwMDEwMjFGRUNGMDAzMDI3RkVDRkMwNzkwM0IwMUZGRkMwMEZFMEYKLTAxMDcwMUMwRUIxRjlGNDk0OEM3RUEwN0ZGRDkzRkY4ODA0OTQ4MTQwMDQ5NDgxNTdGNDg1QjRBMTUzRjQ4OTBDOTEyMUY0OAotNUEwMDBGMTcwRjVCMDAxRjE3MDdBMjQ4NUExODAzQTIxMjdGQTI0OTkzQzhGQ0EyMTJGRkFBMDQxRkI2MTI4MDEyN0ZBMjdGCi1EQzAwMDFFQkMwMDAxMjNGQTM2QzdFQTI2QzdFQTI2QzdFN0U2QzdGODA2QzdGNkQ2QzVDRUIzRkZDRDkwRkZGNUM2RDAxQzAKLUVCMUZCRjAxMDEwMUZDRUJGRjFGNkQ2Q0I1RUFGRTBGMDIxRkVDRjgwMzAyMDNFQ0UwMDA5MTI2MDAxRkZFQzlGQzQxM0Q3QgotQkI0Qz43MSBEPEI2MTJGRUE0MjYwMDdGRjBDOUZDQjNBREVGMDNDMEE1MTcwNzE4ODBBMzE3MEZBMzE3MUZBMjE3M0YxNzdGCi0xN0ZGNUUwNDA3MTMwMDE2M0ZCOUZDQTQzMjNCN0RCQTNBPjc2IEQ8QjUwMEYwMDIwN0I1MTJFMDgwODA4MEQ4MDA3RjkyMzkKLTAwMDdFMDAwNkU2RjVBODEwMTdCN0Y4MTEzNzkwMTc4N0Y2RTdFNkU3RTgxMTQxRjZFN0U2RTdGNkU3RjgyODA2RTdGNkY3RQotNkY3RTgyNkY3RTgxNkYxMzgwNkYxM0MwMTdFMDZGMTNGMDgxRUU3RkY4RUUzRkZDMTdGRUVFMUZGRjgyNzAxMzgzNzAxM0MzCi0xOEUzNzAxM0YzODJFRjdGRkJFRjNGRkZBMjgzODM4MzgzQTI4MzgzMTg3RjE4M0ZBMjAxRkMxNjFGQjUwMEZDMTUwRjE4MDcKLTE4MDNBMjQzM0I3Q0JBNEM+NzggRDxCNzEyRjhFRUZGQzAxN0Y4MTdGRTNCMDA3RkYwMDAxRkZGMDQwMzEzQzAwNDAwN0Y3MQotN0U3MTdFQTI4NDE3MUZBMjg0QTY2MEEyMTczRjYwNEQ1QTYwNEM0ODVBNEM1QkRDMUZGRUM4RkM5MUI2MTJGODE3QzBBMjkxCi0zOUYwMDA3RkYwRUUxRkY4NzA3RTcwN0U3MDdFODQ4MkEyODRBNTg0QTVGMTAxRTBBMjcwMTNGMEEyRjEwM0MwRUY3RkY4QjYKLTAwRjg5MDM5M0ZGQzA3ODA5NDM4MUZGRTBGMDUwN0I1MTIwMDA1MDExM0ZDQ0JFQTFGRjA0MzNDN0NCQTQ4PjgyCi1EPEI2MDBGODAxMDdCNTEyRTBBNDI2MDA3RkYwQzgzODA3RTAwMDcyNUFCM0IzQTMwMTNGNEM1QUEyODAwMTFGNENDN0ZDQTIKLTZENkMxNTFFMDEwNzE2M0U2RTVENkQ2QzVENkQ2RDEzMDE5MDI2MDA3RkUwRUIwRkUwREEzRkZDRUI3RkMwMDIwRkI2NUEwMgotMDM0QUM4RkNEQTAwN0YxM0YwMDMwNzEzODA0MzNDN0RCQTRBPjg1IEQ8RUIzRkZFNDhCNTEyRTAwMDA3MTRGODM5MEZFMDA3Ci1GQzkwMzhGMDAxRkU0ODZDNkM3RTZGN0U4MjE1M0Y2QzQ4ODA2QzVBNkM1QUM4RkNBNDkxQjVGQzEzMUY5MDM4N0ZGODNGMzgKLTAzRkY4MDM4MDdGQzAwRUEwRkYwNDg1QTEyM0Y0ODVBQTI0ODVBQTQxNTdGNkM3RTE1REYzQTNGRTAwMzlGRjAzQjFGRjgwRgotMEZGRkUwMzgwN0ZGRkUwMDAxNDk3RTM5MDAzRkUwMDAyQjI2N0RBNTJGPjk3IEQ8MTNGRTEyRkZBNDEyMDcxMjAzQjA0QUI0Ci1GQzAyMUYxM0YwMDI3RjEzRkM5MTM4RkMwM0ZFOTAzOUZGRjAwMEZGMDJDMEVCM0Y4MDkxQzdFQTFGQzA0OTE1RTBFRTBGRjAKLTE3RjhBMkVFMDdGQ0EzMTdGRUE5MTdGQ0EzMTYwRjE3RjgxN0YwMTYxRjZEMTVFMDZFRUIzRkMwNkVFQjdGODBEOUY5RTBFQgotRkYwMDkwMzlGMEZDMDdGRTkxMzg3RkZGRjhEOUUwMUYxM0UwOTAyNkMwMDNGRUM3RkMyRjNDN0RCQjM2Pkk8RUUzRjgwRUQKLTNGRkZBNDE1MDE4MUIwRUNGRjgwMDEwRjEzRjAwMTNGMTNGQzkwMzhGRkMwM0YzOTAxRkUwMDBGNDg0ODEzMDM0ODQ4N0Y0OAotNDg3RjEyMUY0ODVBQTIxMjdGNUJBMzEyRkZBOTEyN0ZBMzZDN0VBMjEyMUY2QzZDNUI2QzZDNUIwMDAzNUNEODAxRkUwMTFGCi0xM0MwMjcwMEZGODA3RTEzRkU5MDM4N0ZGRkY4MDEwRjEzRTAwMTAxMTMwMDJGM0M3REJCMzY+MTAwCi1EPDQ5QjQ3RTAxMEYxM0YwMDE3RjEzRkM5MDM4RkY4MUZFM0EwM0ZFMDA3RjgwRDgwN0Y4MTMzRjQ4NDhFQjFGQzBFRDBGRTAKLTQ4NUEwMDNGMTVGMDE1MDc0ODVBMTZGOEEyMTJGRkEyOTBCNkZDQTMwMUMwQzhGQ0E0MTI3RkEzNkM3RTE2NzgxMjFGN0YwMAotMEYxNUYwNkM2QzEzMDE2QzZDRUIwM0UwNkM2Q0VCMEZDMDNBMDBGRkMwN0Y4MDkwMzkzRkZGRkUwMDAxMEYxM0Y4MDEwMDEzCi1DMDI1MjY3REE1MkM+STxFQTAxRTBFQTA3Rjg0ODdFQTI0ODdFQTQ2QzVBQTI2QzVBRUEwMUUwQzhGQ0FCMTNGRTEyN0ZBNAotMTIwNzEyMDNCM0FBQjUxMkYwQTQxNDNEN0RCQzFBPjEwNSBEPDEzRkUxMkZGQTQxMjA3MTIwM0IzQjNBRUI1MTJGOEE0MTUKLTNDN0RCQjFBPjEwOCBEPEQ4MDFGQ0VCRkY4MDAwRkYwMTAzMTNGMDAyMEY3RjkxMzgxRTAzRkM5MTM4MzgwMUZFMDAwNzAxCi02MDdGMDAwMzQ5N0UwMUZEMTU4MDVDMDFGRkM3RkNBMzVCQjNBNEI1RDhGODNGMTNGRUE0MkYyNjdDQTUzNj4xMTAKLUQ8MzkwMUZDMDNGMDAwRkZFQjBGRkM0QUI0RkM5MTM4M0MzRjgwRUM3MDdGMDAwNzkwMzhFMEZGQzAwMDAzNUJFQkZEODBBMgotMDFGRkVCN0Y4MDkxMzgwMDNGMDAxNTFFOTJDN0ZDNUJCM0EzQjUxMkZDQTQyMjI2N0RBNTI4PjExNAotRDxCNTAwRjBFQkZGRkNBNEQ4MDNGRUM3RUExRjgwNkQxNTAwNkMxNTFFODA2QzVEQTI2RTEzN0MwMTdGMTQ3ODZFMTNGODAxCi0zRjVDRUNGMDAxMDExRjVDRUNGODAzMDEwRjVDQTJFQ0ZDMDcwMTA3NUNFQ0ZFMEYwMTAzOTFDN0ZDNkU1QTZEMTMxRTE1QkUKLTZEMTNCQzE1RkM2RTVBQTM2RTVBQTI2RTVBQTI2RTVBQTI2RTVBQTIxNDBGOTJDOEZDNUMxNDFFMDAwODEzM0UwMDdGMTMzQwotMTQ3QzM4RkY4MDc4MTRGOEVCODFGMEVCODNFMDZDNDg1QTM4N0MxRjgwRDgzRkZGQzlGQ0VBMUZGQ0VBMDdGMDJFMzc3RUE1Ci0zMz4xMjEgRCBFCi0lRW5kRFZJUFNCaXRtYXBGb250CislJUJlZ2luUHJvY1NldDogZjdiNmQzMjAuZW5jCislIFRob21hcyBFc3NlciwgRGVjIDIwMDIuIHB1YmxpYyBkb21haW4KKyUKKyUgRW5jb2RpbmcgZm9yOgorJSAgICAgY21iMTAgY21ieDEwIGNtYngxMiBjbWJ4NSBjbWJ4NiBjbWJ4NyBjbWJ4OCBjbWJ4OSBjbWJ4c2wxMAorJSAgICAgY21kdW5oMTAgY21yMTAgY21yMTIgY21yMTdjbXI2IGNtcjcgY21yOCBjbXI5IGNtc2wxMCBjbXNsMTIgY21zbDgKKyUgICAgIGNtc2w5IGNtc3MxMGNtc3MxMiBjbXNzMTcgY21zczggY21zczkgY21zc2J4MTAgY21zc2RjMTAgY21zc2kxMAorJSAgICAgY21zc2kxMiBjbXNzaTE3IGNtc3NpOGNtc3NpOSBjbXNzcTggY21zc3FpOCBjbXZ0dDEwCislCisvVGVYZjdiNmQzMjBFbmNvZGluZyBbCisvR2FtbWEgL0RlbHRhIC9UaGV0YSAvTGFtYmRhIC9YaSAvUGkgL1NpZ21hIC9VcHNpbG9uIC9QaGkgL1BzaSAvT21lZ2EKKy9mZiAvZmkgL2ZsIC9mZmkgL2ZmbCAvZG90bGVzc2kgL2RvdGxlc3NqIC9ncmF2ZSAvYWN1dGUgL2Nhcm9uIC9icmV2ZQorL21hY3JvbiAvcmluZyAvY2VkaWxsYSAvZ2VybWFuZGJscyAvYWUgL29lIC9vc2xhc2ggL0FFIC9PRSAvT3NsYXNoCisvc3VwcHJlc3MgL2V4Y2xhbSAvcXVvdGVkYmxyaWdodCAvbnVtYmVyc2lnbiAvZG9sbGFyIC9wZXJjZW50IC9hbXBlcnNhbmQKKy9xdW90ZXJpZ2h0IC9wYXJlbmxlZnQgL3BhcmVucmlnaHQgL2FzdGVyaXNrIC9wbHVzIC9jb21tYSAvaHlwaGVuCisvcGVyaW9kIC9zbGFzaCAvemVybyAvb25lIC90d28gL3RocmVlIC9mb3VyIC9maXZlIC9zaXggL3NldmVuIC9laWdodAorL25pbmUgL2NvbG9uIC9zZW1pY29sb24gL2V4Y2xhbWRvd24gL2VxdWFsIC9xdWVzdGlvbmRvd24gL3F1ZXN0aW9uIC9hdAorL0EgL0IgL0MgL0QgL0UgL0YgL0cgL0ggL0kgL0ogL0sgL0wgL00gL04gL08gL1AgL1EgL1IgL1MgL1QgL1UgL1YgL1cgL1gKKy9ZIC9aIC9icmFja2V0bGVmdCAvcXVvdGVkYmxsZWZ0IC9icmFja2V0cmlnaHQgL2NpcmN1bWZsZXggL2RvdGFjY2VudAorL3F1b3RlbGVmdCAvYSAvYiAvYyAvZCAvZSAvZiAvZyAvaCAvaSAvaiAvayAvbCAvbSAvbiAvbyAvcCAvcSAvciAvcyAvdCAvdQorL3YgL3cgL3ggL3kgL3ogL2VuZGFzaCAvZW1kYXNoIC9odW5nYXJ1bWxhdXQgL3RpbGRlIC9kaWVyZXNpcyAvc3VwcHJlc3MKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC9zcGFjZQorL0dhbW1hIC9EZWx0YSAvVGhldGEgL0xhbWJkYSAvWGkgL1BpIC9TaWdtYSAvVXBzaWxvbiAvUGhpIC9Qc2kgLy5ub3RkZWYKKy8ubm90ZGVmIC9PbWVnYSAvZmYgL2ZpIC9mbCAvZmZpIC9mZmwgL2RvdGxlc3NpIC9kb3RsZXNzaiAvZ3JhdmUgL2FjdXRlCisvY2Fyb24gL2JyZXZlIC9tYWNyb24gL3JpbmcgL2NlZGlsbGEgL2dlcm1hbmRibHMgL2FlIC9vZSAvb3NsYXNoIC9BRQorL09FIC9Pc2xhc2ggL3N1cHByZXNzIC9kaWVyZXNpcyAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKK10gZGVmCisKKyUlRW5kUHJvY1NldAorJSVCZWdpblByb2NTZXQ6IDA5ZmJiZmFjLmVuYworJSBUaG9tYXMgRXNzZXIsIERlYyAyMDAyLiBwdWJsaWMgZG9tYWluCislCislIEVuY29kaW5nIGZvcjoKKyUgICAgIGNtc2x0dDEwIGNtdHQxMCBjbXR0MTIgY210dDggY210dDkKKy9UZVgwOWZiYmZhY0VuY29kaW5nIFsKKy9HYW1tYSAvRGVsdGEgL1RoZXRhIC9MYW1iZGEgL1hpIC9QaSAvU2lnbWEgL1Vwc2lsb24gL1BoaSAvUHNpCisvT21lZ2EgL2Fycm93dXAgL2Fycm93ZG93biAvcXVvdGVzaW5nbGUgL2V4Y2xhbWRvd24gL3F1ZXN0aW9uZG93bgorL2RvdGxlc3NpIC9kb3RsZXNzaiAvZ3JhdmUgL2FjdXRlIC9jYXJvbiAvYnJldmUgL21hY3JvbiAvcmluZyAvY2VkaWxsYQorL2dlcm1hbmRibHMgL2FlIC9vZSAvb3NsYXNoIC9BRSAvT0UgL09zbGFzaCAvdmlzaWJsZXNwYWNlIC9leGNsYW0KKy9xdW90ZWRibCAvbnVtYmVyc2lnbiAvZG9sbGFyIC9wZXJjZW50IC9hbXBlcnNhbmQgL3F1b3RlcmlnaHQgL3BhcmVubGVmdAorL3BhcmVucmlnaHQgL2FzdGVyaXNrIC9wbHVzIC9jb21tYSAvaHlwaGVuIC9wZXJpb2QgL3NsYXNoIC96ZXJvIC9vbmUKKy90d28gL3RocmVlIC9mb3VyIC9maXZlIC9zaXggL3NldmVuIC9laWdodCAvbmluZSAvY29sb24gL3NlbWljb2xvbiAvbGVzcworL2VxdWFsIC9ncmVhdGVyIC9xdWVzdGlvbiAvYXQgL0EgL0IgL0MgL0QgL0UgL0YgL0cgL0ggL0kgL0ogL0sgL0wgL00gL04KKy9PIC9QIC9RIC9SIC9TIC9UIC9VIC9WIC9XIC9YIC9ZIC9aIC9icmFja2V0bGVmdCAvYmFja3NsYXNoIC9icmFja2V0cmlnaHQKKy9hc2NpaWNpcmN1bSAvdW5kZXJzY29yZSAvcXVvdGVsZWZ0IC9hIC9iIC9jIC9kIC9lIC9mIC9nIC9oIC9pIC9qIC9rIC9sCisvbSAvbiAvbyAvcCAvcSAvciAvcyAvdCAvdSAvdiAvdyAveCAveSAveiAvYnJhY2VsZWZ0IC9iYXIgL2JyYWNlcmlnaHQKKy9hc2NpaXRpbGRlIC9kaWVyZXNpcyAvdmlzaWJsZXNwYWNlIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvc3BhY2UgL0dhbW1hIC9EZWx0YSAvVGhldGEgL0xhbWJkYSAvWGkgL1BpCisvU2lnbWEgL1Vwc2lsb24gL1BoaSAvUHNpIC8ubm90ZGVmIC8ubm90ZGVmIC9PbWVnYSAvYXJyb3d1cCAvYXJyb3dkb3duCisvcXVvdGVzaW5nbGUgL2V4Y2xhbWRvd24gL3F1ZXN0aW9uZG93biAvZG90bGVzc2kgL2RvdGxlc3NqIC9ncmF2ZSAvYWN1dGUKKy9jYXJvbiAvYnJldmUgL21hY3JvbiAvcmluZyAvY2VkaWxsYSAvZ2VybWFuZGJscyAvYWUgL29lIC9vc2xhc2ggL0FFCisvT0UgL09zbGFzaCAvdmlzaWJsZXNwYWNlIC9kaWVyZXNpcyAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKK10gZGVmCisKKyUlRW5kUHJvY1NldAorJSVCZWdpblByb2NTZXQ6IGJiYWQxNTNmLmVuYworJSBUaG9tYXMgRXNzZXIsIERlYyAyMDAyLiBwdWJsaWMgZG9tYWluCislCislIEVuY29kaW5nIGZvcjoKKyUgICAgIGNtc3kxMCBjbXN5NSBjbXN5NiBjbXN5NyBjbXN5OCBjbXN5OQorJQorL1RlWGJiYWQxNTNmRW5jb2RpbmcgWworL21pbnVzIC9wZXJpb2RjZW50ZXJlZCAvbXVsdGlwbHkgL2FzdGVyaXNrbWF0aCAvZGl2aWRlIC9kaWFtb25kbWF0aAorL3BsdXNtaW51cyAvbWludXNwbHVzIC9jaXJjbGVwbHVzIC9jaXJjbGVtaW51cyAvY2lyY2xlbXVsdGlwbHkKKy9jaXJjbGVkaXZpZGUgL2NpcmNsZWRvdCAvY2lyY2xlY29weXJ0IC9vcGVuYnVsbGV0IC9idWxsZXQKKy9lcXVpdmFzeW1wdG90aWMgL2VxdWl2YWxlbmNlIC9yZWZsZXhzdWJzZXQgL3JlZmxleHN1cGVyc2V0IC9sZXNzZXF1YWwKKy9ncmVhdGVyZXF1YWwgL3ByZWNlZGVzZXF1YWwgL2ZvbGxvd3NlcXVhbCAvc2ltaWxhciAvYXBwcm94ZXF1YWwKKy9wcm9wZXJzdWJzZXQgL3Byb3BlcnN1cGVyc2V0IC9sZXNzbXVjaCAvZ3JlYXRlcm11Y2ggL3ByZWNlZGVzIC9mb2xsb3dzCisvYXJyb3dsZWZ0IC9hcnJvd3JpZ2h0IC9hcnJvd3VwIC9hcnJvd2Rvd24gL2Fycm93Ym90aCAvYXJyb3dub3J0aGVhc3QKKy9hcnJvd3NvdXRoZWFzdCAvc2ltaWxhcmVxdWFsIC9hcnJvd2RibGxlZnQgL2Fycm93ZGJscmlnaHQgL2Fycm93ZGJsdXAKKy9hcnJvd2RibGRvd24gL2Fycm93ZGJsYm90aCAvYXJyb3dub3J0aHdlc3QgL2Fycm93c291dGh3ZXN0IC9wcm9wb3J0aW9uYWwKKy9wcmltZSAvaW5maW5pdHkgL2VsZW1lbnQgL293bmVyIC90cmlhbmdsZSAvdHJpYW5nbGVpbnYgL25lZ2F0aW9uc2xhc2gKKy9tYXBzdG8gL3VuaXZlcnNhbCAvZXhpc3RlbnRpYWwgL2xvZ2ljYWxub3QgL2VtcHR5c2V0IC9SZnJhY3R1ciAvSWZyYWN0dXIKKy9sYXR0aWNldG9wIC9wZXJwZW5kaWN1bGFyIC9hbGVwaCAvQSAvQiAvQyAvRCAvRSAvRiAvRyAvSCAvSSAvSiAvSworL0wgL00gL04gL08gL1AgL1EgL1IgL1MgL1QgL1UgL1YgL1cgL1ggL1kgL1ogL3VuaW9uIC9pbnRlcnNlY3Rpb24KKy91bmlvbm11bHRpIC9sb2dpY2FsYW5kIC9sb2dpY2Fsb3IgL3R1cm5zdGlsZWxlZnQgL3R1cm5zdGlsZXJpZ2h0CisvZmxvb3JsZWZ0IC9mbG9vcnJpZ2h0IC9jZWlsaW5nbGVmdCAvY2VpbGluZ3JpZ2h0IC9icmFjZWxlZnQgL2JyYWNlcmlnaHQKKy9hbmdicmFja2V0bGVmdCAvYW5nYnJhY2tldHJpZ2h0IC9iYXIgL2JhcmRibCAvYXJyb3dib3RodiAvYXJyb3dkYmxib3RodgorL2JhY2tzbGFzaCAvd3JlYXRocHJvZHVjdCAvcmFkaWNhbCAvY29wcm9kdWN0IC9uYWJsYSAvaW50ZWdyYWwKKy91bmlvbnNxIC9pbnRlcnNlY3Rpb25zcSAvc3Vic2V0c3FlcXVhbCAvc3VwZXJzZXRzcWVxdWFsIC9zZWN0aW9uCisvZGFnZ2VyIC9kYWdnZXJkYmwgL3BhcmFncmFwaCAvY2x1YiAvZGlhbW9uZCAvaGVhcnQgL3NwYWRlIC9hcnJvd2xlZnQKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvbWludXMgL3BlcmlvZGNlbnRlcmVkIC9tdWx0aXBseSAvYXN0ZXJpc2ttYXRoIC9kaXZpZGUgL2RpYW1vbmRtYXRoCisvcGx1c21pbnVzIC9taW51c3BsdXMgL2NpcmNsZXBsdXMgL2NpcmNsZW1pbnVzIC8ubm90ZGVmIC8ubm90ZGVmCisvY2lyY2xlbXVsdGlwbHkgL2NpcmNsZWRpdmlkZSAvY2lyY2xlZG90IC9jaXJjbGVjb3B5cnQgL29wZW5idWxsZXQKKy9idWxsZXQgL2VxdWl2YXN5bXB0b3RpYyAvZXF1aXZhbGVuY2UgL3JlZmxleHN1YnNldCAvcmVmbGV4c3VwZXJzZXQKKy9sZXNzZXF1YWwgL2dyZWF0ZXJlcXVhbCAvcHJlY2VkZXNlcXVhbCAvZm9sbG93c2VxdWFsIC9zaW1pbGFyCisvYXBwcm94ZXF1YWwgL3Byb3BlcnN1YnNldCAvcHJvcGVyc3VwZXJzZXQgL2xlc3NtdWNoIC9ncmVhdGVybXVjaAorL3ByZWNlZGVzIC9mb2xsb3dzIC9hcnJvd2xlZnQgL3NwYWRlIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorXSBkZWYKKworJSVFbmRQcm9jU2V0CislJUJlZ2luUHJvY1NldDogNzRhZmM3NGMuZW5jCislIFRob21hcyBFc3NlciwgRGVjIDIwMDIuIHB1YmxpYyBkb21haW4KKyUKKyUgRW5jb2RpbmcgZm9yOgorJSAgICAgY21ieHRpMTAgY21mZjEwIGNtZmkxMCBjbWZpYjggY210aTEwIGNtdGkxMiBjbXRpNyBjbXRpOGNtdGk5IGNtdTEwCislCisvVGVYNzRhZmM3NGNFbmNvZGluZyBbCisvR2FtbWEgL0RlbHRhIC9UaGV0YSAvTGFtYmRhIC9YaSAvUGkgL1NpZ21hIC9VcHNpbG9uIC9QaGkgL1BzaSAvT21lZ2EKKy9mZiAvZmkgL2ZsIC9mZmkgL2ZmbCAvZG90bGVzc2kgL2RvdGxlc3NqIC9ncmF2ZSAvYWN1dGUgL2Nhcm9uIC9icmV2ZQorL21hY3JvbiAvcmluZyAvY2VkaWxsYSAvZ2VybWFuZGJscyAvYWUgL29lIC9vc2xhc2ggL0FFIC9PRSAvT3NsYXNoCisvc3VwcHJlc3MgL2V4Y2xhbSAvcXVvdGVkYmxyaWdodCAvbnVtYmVyc2lnbiAvc3RlcmxpbmcgL3BlcmNlbnQKKy9hbXBlcnNhbmQgL3F1b3RlcmlnaHQgL3BhcmVubGVmdCAvcGFyZW5yaWdodCAvYXN0ZXJpc2sgL3BsdXMgL2NvbW1hCisvaHlwaGVuIC9wZXJpb2QgL3NsYXNoIC96ZXJvIC9vbmUgL3R3byAvdGhyZWUgL2ZvdXIgL2ZpdmUgL3NpeCAvc2V2ZW4KKy9laWdodCAvbmluZSAvY29sb24gL3NlbWljb2xvbiAvZXhjbGFtZG93biAvZXF1YWwgL3F1ZXN0aW9uZG93biAvcXVlc3Rpb24KKy9hdCAvQSAvQiAvQyAvRCAvRSAvRiAvRyAvSCAvSSAvSiAvSyAvTCAvTSAvTiAvTyAvUCAvUSAvUiAvUyAvVCAvVSAvViAvVworL1ggL1kgL1ogL2JyYWNrZXRsZWZ0IC9xdW90ZWRibGxlZnQgL2JyYWNrZXRyaWdodCAvY2lyY3VtZmxleCAvZG90YWNjZW50CisvcXVvdGVsZWZ0IC9hIC9iIC9jIC9kIC9lIC9mIC9nIC9oIC9pIC9qIC9rIC9sIC9tIC9uIC9vIC9wIC9xIC9yIC9zIC90IC91CisvdiAvdyAveCAveSAveiAvZW5kYXNoIC9lbWRhc2ggL2h1bmdhcnVtbGF1dCAvdGlsZGUgL2RpZXJlc2lzIC9zdXBwcmVzcworLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgL3NwYWNlCisvR2FtbWEgL0RlbHRhIC9UaGV0YSAvTGFtYmRhIC9YaSAvUGkgL1NpZ21hIC9VcHNpbG9uIC9QaGkgL1BzaSAvLm5vdGRlZgorLy5ub3RkZWYgL09tZWdhIC9mZiAvZmkgL2ZsIC9mZmkgL2ZmbCAvZG90bGVzc2kgL2RvdGxlc3NqIC9ncmF2ZSAvYWN1dGUKKy9jYXJvbiAvYnJldmUgL21hY3JvbiAvcmluZyAvY2VkaWxsYSAvZ2VybWFuZGJscyAvYWUgL29lIC9vc2xhc2ggL0FFCisvT0UgL09zbGFzaCAvc3VwcHJlc3MgL2RpZXJlc2lzIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorXSBkZWYKKworJSVFbmRQcm9jU2V0CislJUJlZ2luUHJvY1NldDogMGVmMGFmY2EuZW5jCislIFRob21hcyBFc3NlciwgRGVjIDIwMDIuIHB1YmxpYyBkb21haW4KKyUKKyUgRW5jb2RpbmcgZm9yOgorJSAgICAgY21yNQorJQorL1RlWDBlZjBhZmNhRW5jb2RpbmcgWworL0dhbW1hIC9EZWx0YSAvVGhldGEgL0xhbWJkYSAvWGkgL1BpIC9TaWdtYSAvVXBzaWxvbiAvUGhpIC9Qc2kgL09tZWdhCisvYXJyb3d1cCAvYXJyb3dkb3duIC9xdW90ZXNpbmdsZSAvZXhjbGFtZG93biAvcXVlc3Rpb25kb3duIC9kb3RsZXNzaQorL2RvdGxlc3NqIC9ncmF2ZSAvYWN1dGUgL2Nhcm9uIC9icmV2ZSAvbWFjcm9uIC9yaW5nIC9jZWRpbGxhIC9nZXJtYW5kYmxzCisvYWUgL29lIC9vc2xhc2ggL0FFIC9PRSAvT3NsYXNoIC9zdXBwcmVzcyAvZXhjbGFtIC9xdW90ZWRibHJpZ2h0CisvbnVtYmVyc2lnbiAvZG9sbGFyIC9wZXJjZW50IC9hbXBlcnNhbmQgL3F1b3RlcmlnaHQgL3BhcmVubGVmdAorL3BhcmVucmlnaHQgL2FzdGVyaXNrIC9wbHVzIC9jb21tYSAvaHlwaGVuIC9wZXJpb2QgL3NsYXNoIC96ZXJvIC9vbmUKKy90d28gL3RocmVlIC9mb3VyIC9maXZlIC9zaXggL3NldmVuIC9laWdodCAvbmluZSAvY29sb24gL3NlbWljb2xvbgorL2xlc3MgL2VxdWFsIC9ncmVhdGVyIC9xdWVzdGlvbiAvYXQgL0EgL0IgL0MgL0QgL0UgL0YgL0cgL0ggL0kgL0ogL0sKKy9MIC9NIC9OIC9PIC9QIC9RIC9SIC9TIC9UIC9VIC9WIC9XIC9YIC9ZIC9aIC9icmFja2V0bGVmdCAvcXVvdGVkYmxsZWZ0CisvYnJhY2tldHJpZ2h0IC9jaXJjdW1mbGV4IC9kb3RhY2NlbnQgL3F1b3RlbGVmdCAvYSAvYiAvYyAvZCAvZSAvZiAvZyAvaAorL2kgL2ogL2sgL2wgL20gL24gL28gL3AgL3EgL3IgL3MgL3QgL3UgL3YgL3cgL3ggL3kgL3ogL2VuZGFzaCAvZW1kYXNoCisvaHVuZ2FydW1sYXV0IC90aWxkZSAvZGllcmVzaXMgL3N1cHByZXNzIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvc3BhY2UgL0dhbW1hIC9EZWx0YSAvVGhldGEgL0xhbWJkYQorL1hpIC9QaSAvU2lnbWEgL1Vwc2lsb24gL1BoaSAvUHNpIC8ubm90ZGVmIC8ubm90ZGVmIC9PbWVnYSAvYXJyb3d1cAorL2Fycm93ZG93biAvcXVvdGVzaW5nbGUgL2V4Y2xhbWRvd24gL3F1ZXN0aW9uZG93biAvZG90bGVzc2kgL2RvdGxlc3NqCisvZ3JhdmUgL2FjdXRlIC9jYXJvbiAvYnJldmUgL21hY3JvbiAvcmluZyAvY2VkaWxsYSAvZ2VybWFuZGJscyAvYWUgL29lCisvb3NsYXNoIC9BRSAvT0UgL09zbGFzaCAvc3VwcHJlc3MgL2RpZXJlc2lzIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorXSBkZWYKKworJSVFbmRQcm9jU2V0CislJUJlZ2luUHJvY1NldDogdGV4cHMucHJvCislIQorVGVYRGljdCBiZWdpbi9yZntmaW5kZm9udCBkdXAgbGVuZ3RoIDEgYWRkIGRpY3QgYmVnaW57MSBpbmRleC9GSUQgbmUgMgoraW5kZXgvVW5pcXVlSUQgbmUgYW5ke2RlZn17cG9wIHBvcH1pZmVsc2V9Zm9yYWxsWzEgaW5kZXggMCA2IC0xIHJvbGwKK2V4ZWMgMCBleGNoIDUgLTEgcm9sbCBWUmVzb2x1dGlvbiBSZXNvbHV0aW9uIGRpdiBtdWwgbmVnIDAgMF1Gb250VHlwZSAwCituZXsvTWV0cmljcyBleGNoIGRlZiBkaWN0IGJlZ2luIEVuY29kaW5ne2V4Y2ggZHVwIHR5cGUvaW50ZWdlcnR5cGUgbmV7Citwb3AgcG9wIDEgc3ViIGR1cCAwIGxle3BvcH17W31pZmVsc2V9e0ZvbnRNYXRyaXggMCBnZXQgZGl2IE1ldHJpY3MgMCBnZXQKK2RpdiBkZWZ9aWZlbHNlfWZvcmFsbCBNZXRyaWNzL01ldHJpY3MgY3VycmVudGRpY3QgZW5kIGRlZn17ezEgaW5kZXggdHlwZQorL25hbWV0eXBlIGVxe2V4aXR9aWYgZXhjaCBwb3B9bG9vcH1pZmVsc2VbMiBpbmRleCBjdXJyZW50ZGljdCBlbmQKK2RlZmluZWZvbnQgMyAtMSByb2xsIG1ha2Vmb250L3NldGZvbnQgY3Z4XWN2eCBkZWZ9ZGVmL09ibGlxdWVTbGFudHtkdXAKK3NpbiBTIGNvcyBkaXYgbmVnfUIvU2xhbnRGb250ezQgaW5kZXggbXVsIGFkZH1kZWYvRXh0ZW5kRm9udHszIC0xIHJvbGwKK211bCBleGNofWRlZi9SZUVuY29kZUZvbnR7Q2hhclN0cmluZ3MgcmNoZWNrey9FbmNvZGluZyBmYWxzZSBkZWYgZHVwWworZXhjaHtkdXAgQ2hhclN0cmluZ3MgZXhjaCBrbm93biBub3R7cG9wLy5ub3RkZWYvRW5jb2RpbmcgdHJ1ZSBkZWZ9aWZ9Citmb3JhbGwgRW5jb2Rpbmd7XWV4Y2ggcG9wfXtjbGVhcnRvbWFya31pZmVsc2V9aWYvRW5jb2RpbmcgZXhjaCBkZWZ9ZGVmCiBlbmQKKworJSVFbmRQcm9jU2V0CislJUJlZ2luRm9udDogQ01USTkKKyUhUFMtQWRvYmVGb250LTEuMTogQ01USTkgMS4wCislJUNyZWF0aW9uRGF0ZTogMTk5MSBBdWcgMTggMjE6MDg6MDcKKyUgQ29weXJpZ2h0IChDKSAxOTk3IEFtZXJpY2FuIE1hdGhlbWF0aWNhbCBTb2NpZXR5LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorMTEgZGljdCBiZWdpbgorL0ZvbnRJbmZvIDcgZGljdCBkdXAgYmVnaW4KKy92ZXJzaW9uICgxLjApIHJlYWRvbmx5IGRlZgorL05vdGljZSAoQ29weXJpZ2h0IChDKSAxOTk3IEFtZXJpY2FuIE1hdGhlbWF0aWNhbCBTb2NpZXR5LiBBbGwgUmlnaHRzIFJlc2VydmVkKSByZWFkb25seSBkZWYKKy9GdWxsTmFtZSAoQ01USTkpIHJlYWRvbmx5IGRlZgorL0ZhbWlseU5hbWUgKENvbXB1dGVyIE1vZGVybikgcmVhZG9ubHkgZGVmCisvV2VpZ2h0IChNZWRpdW0pIHJlYWRvbmx5IGRlZgorL0l0YWxpY0FuZ2xlIC0xNC4wNCBkZWYKKy9pc0ZpeGVkUGl0Y2ggZmFsc2UgZGVmCitlbmQgcmVhZG9ubHkgZGVmCisvRm9udE5hbWUgL0NNVEk5IGRlZgorL1BhaW50VHlwZSAwIGRlZgorL0ZvbnRUeXBlIDEgZGVmCisvRm9udE1hdHJpeCBbMC4wMDEgMCAwIDAuMDAxIDAgMF0gcmVhZG9ubHkgZGVmCisvRW5jb2RpbmcgMjU2IGFycmF5CiswIDEgMjU1IHsxIGluZGV4IGV4Y2ggLy5ub3RkZWYgcHV0fSBmb3IKK2R1cCAwIC8ubm90ZGVmIHB1dAorcmVhZG9ubHkgZGVmCisvRm9udEJCb3h7LTM1IC0yNTAgMTE0OCA3NTB9cmVhZG9ubHkgZGVmCisvVW5pcXVlSUQgNTAwMDgyNyBkZWYKK2N1cnJlbnRkaWN0IGVuZAorY3VycmVudGZpbGUgZWV4ZWMKK0Q5RDY2RjYzM0I4NDZBOTdCNjg2QTk3RTQ1QTNEMEFBMDUyOTczMUM5OUE3ODRDQ0JFODVCNDk5M0IyRUVCREUKKzNCMTJENDcyQjdDRjU0NjUxRUYyMTE4NTExNkE2OUFCMTA5NkVENEJBRDJGNjQ2NjM1RTAxOUI2NDE3Q0M3N0IKKzUzMkY4NUQ4MTFDNzBEMTQyOUExOUE1MzA3RUY2M0VCNUM1RTAyQzg5RkM2QzIwRjZEOUQ4OUU3RDkxRkU0NzAKK0I3MkJFRkRBMjNGNURGNzZCRTA1QUY0Q0U5MzEzN0EyMTlFRDhBMDRBOUQ3RDZGREYzN0U2QjdGQ0RFMEQ5MEIKKzk4NjQyM0U1OTYwQTVEOUZCQjRDOTU2NTU2RThERjkwQ0JGQUVDNDc2RkEzNkZEOUE1QzgxNzVDOUFGNTEzRkUKK0Q5MTlDMkRERDI2QkRDMEQ5OTM5OEI5RjREMDNENTk5M0RGQzA5MzAyOTc4NjZFMUNEMEEzMTlCNkIxRkQ5NTgKKzlFMzk0OEZGQjNERjdCRkYxMEM5QkRBNEVGRTVGNjhBOENCMTUyNjk5MEQxMzU3QUU2RDJGN0MyRDJFRjg0OTYKKzRFNDdCMzlFNjcxMkVCODkwOEEzMjY1RTVGQUI0MDU2N0U4NjZDMjQ0ODE0NDQ5RjFFOTkzQUFCNDIyQzNGMUQKK0RGQThDNzExODU4NEYyRTUxOTdGRDRCRkEzQThBRTlFOTUzQzZDRDQ2NzJDMEZGNTFFNDFDM0E5MTk3NDlDMUEKK0YwNjY1MERGNEM1RTE3NDkyMTY0QkRCQ0RGMjI2MDlBNzRCRkE3RjY5OTYwQTY0QjlGOTQ5RkZDMkE4MDc0NTgKKzg1NzkzNjZDNEY0MUJERTFGREZCQ0M0ODQ1RkExOUJCQjY5NjNENjVFRTg1MzI1NDkyNzRCQUVCREZGMjRGQTYKKzAzMjM1RDFCRTM3QzA2QjE5MzhBRjM2OURBNzVCRjM4RERCQzg3QTFGRjQ0NUVBQTE2RTE4OTVBQkU5NTA2QjkKKzIxMTk1NTc1M0U0NDc4NjVEMzNDRUYwMDczOTFEMjY2NkEwNDYyNzdBMzBBNDk4MDRGRkNFRDNGRUE1RUIyQzMKK0U1MkVFMTRBOUY3NTI0MUVBMTBDOTE5NzRDREE2MjM2RUI4NDBGRDQ0RDZEREU0RDlCMzI2NkMzQjk5QkQzOEIKK0Q4MzVCQ0E4Q0I4MTlDMDczNDgwRkI5NzJDQzAyOEQyMThGNkExRDM0NENFMUI2M0Y0RkJGMkM4MjZGNDEyRTEKKzZFMEIwNUEyNjEyNTg2NUExNEZEN0I3MDMwQjQ3OEJCOEJDNkJDMzk1MzM1QzNCQTk0MEUxQzM0ODI2N0Y0RjkKKzBBRjk3QkJFRTI1MzUxMTk0MEYxMDQ4RTE3NUQzNTY5RjdEMDVBMjg4NTFCNkY1MDc2NUZFQjZDOTY1NEZFREMKKzFCRjUyRjUzNURCNUJCOTBDMUJENUQyRUJGNzVFMEFFQkU4MkIyMDUwN0YzQzI4QTAzNzQ2NzgxMDE4RDRFQjIKKzI5OEU0RjJDMjdBQ0Y3M0ZBNzNFQkU0M0YwMTRCQjU3NUFBRDUxNkMwNDA3QjI5RTE2NTMzNzUxMzVFQ0I3NEQKK0M5MTM3MkYwNkZBOEVGMzdDMzFBRjNGQTQ4QUU2NTMxOEVBQTZDMzQ4MzBBNTM3N0FCQjJERkE1REE1M0E1NzQKKzQzMzQ4NEJBMTQ2NjcwOUE0QjE4Njc2MTY1NUM4RTQ4MjgzM0I2OTc2NzNFODQ3QzY5MTA3OUU3RjFEQ0I4RDYKKzFBRDkxMTAxRDc1N0I4M0UyMDkwMzM3RDUyNUFFRUNCMDI4RkIzQzlGNkE2RTZBRDJGMzIyQ0ZEQzVBODMzRTYKKzFDRTRFREJGNDFGRDM0RkQ2MTYzMDU4MUQyMjJGODU0QTc2QzJFQTlGRDcyNzk2QTdDOUNDMUY2QzJGQ0NEMTYKK0U5NUNBMDU4MjZBNEVDRkFEQTZBNUZCODNDNDFBNzEzMUU1MkJBNjU4NURENkRENzg1MTVEOEY3MzI3REZDNkYKKzk0MDRGODkyOTNENkFDQjQzM0NEMDgwMkM0M0YwRTc0QzZDNDc2NkEyM0E2QUUzNzg4RkU2Q0FFODJFMUExMDQKK0JBRUM4QkVGREVGRTRGMjkyRjYyNUU2MDM2MkYzODg2RjYwMkNFNDEyMUJGMEFBRDkzNTI2MzE0QkNCQjU5NzEKKzQwMDkxQTdCQkY3RUZCM0JBMzU1Qjg4Qzg5N0Q5QzcwQzg0MURFNDEzMDkzNDg3NTFFREZGQTg2NzUyMTU5ODgKKzQ5Q0IxNTk5ODM0QTAxRUM2Q0Q0RkQ4MTNBRkY5N0E2MTRGNTY5NzU3NzVENUY0OEU5QzFBOUNFNTMyRkFFQjEKKzRFQkUyMEMzRkE4N0NGRTAzNjY0QzQyOEJGQzVDODk0NjY4RTUwNzk1MDAwNUJEOEMyQkNBODk5OEMxRkI5MkMKKzRFNkI3OTFCQTA1Qjc5RjMzMkVCOEFGNUIwRjg1MUI4QjdFRTM3MkVDMDg2MUIwOUMwMDdDREY0M0Y4MkQwQjcKKzM1NDQ2RjY4MkEwREE3RjQxMTJDREFCRTRGOTIyRUFDRkNCN0I4Qzg4QkY1NTBCNjA5NTdFNworMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorY2xlYXJ0b21hcmsKKyUlRW5kRm9udCAKKyUlQmVnaW5Gb250OiBDTVI5CislIVBTLUFkb2JlRm9udC0xLjE6IENNUjkgMS4wCislJUNyZWF0aW9uRGF0ZTogMTk5MSBBdWcgMjAgMTY6Mzk6NTkKKyUgQ29weXJpZ2h0IChDKSAxOTk3IEFtZXJpY2FuIE1hdGhlbWF0aWNhbCBTb2NpZXR5LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorMTEgZGljdCBiZWdpbgorL0ZvbnRJbmZvIDcgZGljdCBkdXAgYmVnaW4KKy92ZXJzaW9uICgxLjApIHJlYWRvbmx5IGRlZgorL05vdGljZSAoQ29weXJpZ2h0IChDKSAxOTk3IEFtZXJpY2FuIE1hdGhlbWF0aWNhbCBTb2NpZXR5LiBBbGwgUmlnaHRzIFJlc2VydmVkKSByZWFkb25seSBkZWYKKy9GdWxsTmFtZSAoQ01SOSkgcmVhZG9ubHkgZGVmCisvRmFtaWx5TmFtZSAoQ29tcHV0ZXIgTW9kZXJuKSByZWFkb25seSBkZWYKKy9XZWlnaHQgKE1lZGl1bSkgcmVhZG9ubHkgZGVmCisvSXRhbGljQW5nbGUgMCBkZWYKKy9pc0ZpeGVkUGl0Y2ggZmFsc2UgZGVmCitlbmQgcmVhZG9ubHkgZGVmCisvRm9udE5hbWUgL0NNUjkgZGVmCisvUGFpbnRUeXBlIDAgZGVmCisvRm9udFR5cGUgMSBkZWYKKy9Gb250TWF0cml4IFswLjAwMSAwIDAgMC4wMDEgMCAwXSByZWFkb25seSBkZWYKKy9FbmNvZGluZyAyNTYgYXJyYXkKKzAgMSAyNTUgezEgaW5kZXggZXhjaCAvLm5vdGRlZiBwdXR9IGZvcgorZHVwIDAgLy5ub3RkZWYgcHV0CityZWFkb25seSBkZWYKKy9Gb250QkJveHstMzkgLTI1MCAxMDM2IDc1MH1yZWFkb25seSBkZWYKKy9VbmlxdWVJRCA1MDAwNzkyIGRlZgorY3VycmVudGRpY3QgZW5kCitjdXJyZW50ZmlsZSBlZXhlYworRDlENjZGNjMzQjg0NkE5N0I2ODZBOTdFNDVBM0QwQUEwNTJBMDE0MjY3Qjc5MDRFQjNDMEQzQkQwQjgzRDg5MQorMDE2Q0E2Q0E0QjcxMkFERUIyNThGQUFCOUExMzBFRTYwNUU2MUY3N0ZDMUI3MzhBQkM3QzUxQ0Q0NkVGODE3MQorOTA5OEQ1RkVFNjc2NjBFNjlBN0FCOTFCNThGMjlBNEQ3OUU1NzAyMkY3ODNFQjBGQkJCNkQ0RjRFQzM1MDE0RgorRDJERUNCQTk5NDU5QTRDNTlERjBDNkVCQTE1MDI4NDQ1NEU3MDdEQzIxMDBDMTVCNzZCNEMxOUI4NDM2Mzc1OAorNDY5QTZDNTU4Nzg1QjIyNjMzMjE1MjEwOTg3MUE5ODgzNDg3REQ3NzEwOTQ5MjA0RERDRjgzN0U2QTg3MDhCOAorMkJEQkYxNkZCQzc1MTJGQUEzMDhBMDkzRkU1Q0Y3MTU4RjExNjNCQzFGMzM1MkUyMkExNDUyRTczRkVDQThBNAorODcxMDBGQjFGRkM0QzhBRjQwOUIyMDY3NTM3MjIwRTYwNURBMDg1MkNBNDk4MzlFMTM4NkFGOUQ3QTFBNDU1RgorRDFGMDE3Q0U0NTg4NEQ3NkVGMkNCOUJDNTgyMUZEMjUzNjVEREVBNkU0NUYzMzJCNUY2OEE0NEFEOEE1MzBGMAorOTJBMzZGQURCNjc5Q0Y1OEJBRkREM0U1MURGREQzMTRCOTFBNjA1NTE1RDcyOUVFMjBDNDI1MDVGRDRFMDgzNQorM0M5RDM2NUIxNEMwMDNCQzZERDM1MkYwMjI4QThDMTYxRjE3MkQyNTUxQ0QxQzY3Q0QwQjFCMjFERUQ1MzIwMworMDQ2RkFGRjlCMTEyOTE2NzkyMUREODJDNTk2NEY5RERERkUwRDI2ODY4NzVCRDA3NUZDODE4MzFBOTQxRjIwRQorQzVDRDkwMDQwQTA5MkU1NTlGNkQxRDNCMEU5QkI3MTczMzU5NUFFMEVBNjA5M0Y5ODYzNzdBOTYwNjBCRjEyQQorQTFCNTI1Q0Q5RkE3NDFGRTA1MURENTRBMzJCRUNENTVBODY4REQ2MzExOUE0MzcwRjgzMjJDQ0JFQzg4OUJDMgorQTcyM0NCNDAxNUZDNEFBOTBBRTg3M0VBMTRERTEzMzgyQ0E5Q0YwRDhERkI2NUYwQUJFREZEOUE2NEJCM0Y0RAorNzMxRTJFMUM5QTE3ODkyMjhGRjQ0MTE2MjMwQTcwQzMzOUM5ODE5Njc2MDIyQUIzMUI1QzlDNTg5QUU5MDk0QgorMDk4ODIwNTFBRDQ2MzdDMTcxMEQ5M0U4REQxMTdCNEU3QjQ3ODQ5M0I5MUVBNjMwNkZEQjNGQTZENzM4QUFCMQorNDlGQkIyMUEwMEFDMkE5OTlDMjE0NDVERTMxNzdGMjFEOEI2QUFCMzM4NjlDODgyNjEzRUE2QjVFQzU2NDc2QgorNTYzNDE4MUVDQkYwM0JGRURCNTdGMDc5RUFDRTNCMzM0RjZGMzg0QkRGOUQ3MEFFQkQ1OTJDOEVDRjIxMzc4QgorNTRBOEI1REJGN0NCOTI4MkUxNkFBNTE3RTE0ODQzOTA5MzM5QjVFN0M1NUIwMzhCRjNCQjQ5M0YzQjg4NEExQworQzI1RjlFOEZCOTEyQ0JFMjMxOTlBRDlEMkMzRTU3MzcyNzcwMUJBMzAxNTI2QzY2QzM2MTdCOTUxNEQ2RjExRgorMTE5MzBCMUQ5N0MxNzgxNkM4NUIxQkZEOUI5NzNBMTkxQjMzQ0MzQjM5MTgxNUFEMTRGMUNCRTkzNTk0MkFFQworRDQwMDRFNkJFRjM3OTA2NkZENzIyMDlEQzg4RDJFNjM0RTc5QkNDMkI5OEM3NjZDQkQ5MkM1NjFGMjcwM0Y4QQorMTA5RTZDNkNFQzdCODY2RjJGQzdBREY2NDZCRjQ5MkU1MjAzMTlGM0I5NDlBQjVEODRBRTk5MEIzMzM0NEE0MAorMzk3MUY1OERGREY4RDhENjdGQTBCOEYyQTBEODg0RjhDMDlBNUE3MjEzMTlCOTExREJBMEEzNTkwMzg3NzM0MworQzM3QkMzNkM1RUIzMjM1MzI3MkQxRTZFRDVGQ0E2MTFCRTMxOUE3RTFFODQyQ0I3NTc2RTdBNjhCNUVENTFGQQorM0Q1NjBBNDA4NjUxRTFERTRDQTdGNzA0NTMwNEJDOTI2OTVGQTY0RUU5QkIyNjMyMzUwMUJCNjgxMkJGOTNDOAorRjA5NDNERDdGN0Q0REIxMUI2NzEyNEMxQTAzNkY2MDJBODlDOTJDODhDQTBDNkI1RTU1M0VEQUQ3NzZFMkQzMAorNjhDQ0E2MDg3QkY1QjhFNUYyMUZEOThCMjhGRjk4Qzk1QjAyNjlGQTIyQzcwNEQ3QUQ2MjA1MUU1QjNBRUU4OAorQTM3QkRBQ0U1NDlDMzlFMjZERjY4OUIxOEQ1RDZCMDhFRTAwMDM5RTZBNDg1MzVGMDM2NjczMTk2MkM5OTY1QgorNTkwMzlFNzdCODZDQzg2ODE4RTUxNDlFRTM4RTI1MzJDMjdGMzgxQjM1QjdDMTFFNDVDOTM3ODM2MUJCMURDMQorNDE3NzFDRDg4MkIzRjQ0NDJDODBDRDc3Q0E5NzBEQTkwQUJDREE0RkYxOTgwRUU1NTZCRUQ2RUFGOUVFOEJDRQorQjhBMTY4QzI3REMyOTkzRURDQTBEMDQyMDIyQjUxRDhDNjhDNTc0MTkzRTM2MDQ2MEY3REM0MjhCMDdDM0E5QgorMzEwNDZGMjQ1MTlCMTE3M0YzMEYxNTAwNjFGRUEwRDFCRkM1NTAyRDgzOTQ4OTBCMkVGMjM4M0ZBMDlFNkRGRgorNTM3NjBEQTdDMEQ4RUU2M0M0MDg4NkM3RTU1REFERTE1QzBDREE5MDIxMEMzRkZCMzlBN0JEOTgxMDcyNTgzNAorOUZGM0U0NUJDREZDRkNEMDYwRTU1MjZERjc3ODY1MUY0OTI2M0M2MTFGNzA1NzhCNDgxNTJCMzNERTYyNUFEQQorNEU3ODA4Mzg1NzA5NTFGMDFDOUQxNjZCMzY2MTg0QjA4QUZGODU3N0I2QTJDMUY5RDU0RTA3QzVBMjI1NTY0OAorQUM3RTc3RkRDNkQxNTlGMDQyMkI2QzgwN0NFMEVBRDQ2N0Q1RUQ5MURFODQyRDYxRkUwM0NDNzEyOTNDQTBEMgorMDdBREUyMjI1OTU4NDFDQTc5NTU0MTNDRkZBN0JDNDdBNUMxMjJFOUYwQTRCRjE3ODRERDJERTFDMTY5RkQ5QworOTk1RUVCMTk0MjY4ODQwODE1OUJDM0FERUJGOEU3MjhGRjE1NDFFMkI4NjIzNTNGMjVGNjAyOURDMDhERUNGOQorNTkxNUUzNjQ1RUYyMDEzRTkwNEVBQkYyMzk4RjZCN0EwNDEwRkUwM0ZCQURDNjQwRTEwNDMwOTZBNUMzMzZCOQorRDlCRDA3OUNCNjRGQTlERTZBRDhCRTQyMzRCRkZGRTc3MDk1MEE5OEI4RjY3Qjk4MUU0MTcyMDI3MjgwMDRGNQorNERDN0MxMzA3Q0M5RTFBRjg1MEZDRDUxODg0RjJGMERFODcwQkFFMUMzMEYzOEI4MjE5OUMzMTgwNDA5RTgyQQorMDAwNzY2QzRBQkZCNTQ2NDg0NEEyQTIwNUQ0NkQwQkFFMTQyMTc4NDU3MzMzOERBQjYwRjVBRTI2OTIzNzUzNAorMjAwQ0RDMDc3MDMzMjUxRTJFMTRDNURENjg2REM0QkVEMjlGNTlGNUQ4RUJBNzI1OTFGQkU0RTBGQjA4NjUxQQorNjhFOTZGODZGMTkyNUQxOTgyQUIzRkFGOTNCMEU3RjkyNTU1RDkyMUJDQkJCRTc3RENERjQ3MzdCQjQ0MTFFRAorRjAwOEEzQTlFMTAwRkFBNTJGQjE0MTFDRTJFRUEwNTMzMDM1RjhFNjg5MzQwNEQ2RTQ5RTNBMzBEOTY1ODZEOAorMUVCRkUwMEM2MDczMTU5QjVERTVBMDkwMDY3MTVDNjc5M0FBOEJBMDJEMDgwRjcxNUI3RjcwMzg3QzY4RjE3MAorNjU5REY0OTQ4Q0ZFNTg0RDVEMUJFMTFCRDUyREYwMkRCOEQxQjNCREZENTFERjVGOTBFRDlBM0MzQTk5OTE2MgorNEFGMkI1NThDMEZCRjBFNDg0ODRDOTJBMTQ4Mzg3QzRDRUMxNUM5OEE0NkZFNjBCREY0N0E2Q0I1NkRCOTlGQQorNjk0MUZFM0JBOTBFQ0VCMDYxMjYzMkY2MTQ0OUM4NTg3RDU5QTBGODA1NjJDRDdGOEM0ODMxNTcyNkRDMUM0RgorOTQ3QzQyQThCMjBBMDRDQ0JBNEY3MUVDMjYzODM1QzUwMzhGQ0JCQkRDQThDRDlBRjhFNEUyRUJCOTZBODVGNQorMzlGQjZCRUIzMkYyOTQ0NEMwOUUxMDZFRTAwREVFMEUwM0IxNzQwRjY3QUUzMDUzQ0QzNjhDMTE0NkRBOEI5NQorQUYwQzIxODQ2NjY3NzE1QTc0MUE0QTE2NTdERDIyQzBEREQwQzlGQTM1N0Y4NEIwNTNBNjc2NDQxMTgwOUVFMAorREJCRDkyMDY4QUNBRUNDMURBOERENjZBRDA5M0NENUQzRDk0MUZEM0I1MUExMzkyOERCREM5NkQxN0Y1REQ3OQorQjM1QURCQTBGMTlDNzM2NzBFNThCNERBNDc1ODNDQzlBNDg1NkFGNjBBNUEzNTQ5Q0Q0NzY3RDA0MjZGQjI5QgorQUI2NjAzODZGMDJEM0RCRkU3RkRENzA2ODY1QjI0QkUzRDNDRTM3NzRGMThGNkJDNzAwREM5OTk1NEQ3QzQ4RAorRjMwMTEzRUFFNTQ2QTRGMDJGMTI1Q0Y4NUExOENFNjlFNEQ2QUU5RTA4RTc0Qjc5RUE1QjY4RkM1N0ZCRjA5RQorMTMwNjA2MDk0NDYzQjZDREFCRTdBQTZFNTU5MjZBNDc0Q0JERjI4MTg1RUU3NTU2QTA4RDE3QzQ1QUM5NDE2MAorNTkzREE4NzNEOUZEOEY2OURBNjhEMTg3Mjc2OTJENkM4N0VDNzhBMjkzQzRDQ0JENjYxQTAyRUNCRjA2MjU4MAorMzY5QjJCRUE1NkE0RTMyOTkxQUI2MjZCREVBMjlGRjc3MkYxNzk2QjQ4RDhGOTY1ODY5MkVCNDA0NEQ3RUYwMQorM0IzQ0E0MUFBRjkyN0MzNjQzMDlDRjQxNTIxMkJBRDFEODUyQjA1NjBBOEQ0OTg3NEM5MkFCMjU0MUMxRTM2MQorMDkzMEUzMTQyNEEzNDhGNjgwRjk0RENFRDM4OTk1QkZCMzMwMkRENjQyMjVGMEIwNEEwOUE3NEUxNTk1RDIyMQorOUMyNTkxM0JEN0FFRTc2Qjk2N0I5QkNCMkY2MkUxQkMzRjFEMTU3ODZBMkQzQjlGM0M1MDA5RkQ4RjQ4NzlEOAorMTZGQkJCMzUxQUY4OTQ3ODhDNTQzNjUxNEMyN0Q0NzM5ODhGM0E4MEY3NjFCMjhCMThCNjU1RTBBNzZCNkJGNQorMEQ4RjI4NEZGNkU0QUU3QjBDMjYxMjc3MTJGN0E0RjdCOUQyOEUwQjZCNDAzNDk1QjJFMDJGQUJBQTI3NTc0RgorMzVEREE5ODVDQzAwMEMxODczNDA4MzU1NjQ1QzlFM0IyMTMwREZDRUMwNkI3Mjg3REFCMEY4M0FBQjQ3MTg2NgorRjY3NjM0QTYxNzhDNDhBODMzMkQ1RUE4N0Y0RjZERkI2RUZGRUZGMDUzRjAyM0U4QTQ0QTk3N0ZFOUMxNkVERQorN0UwNkJDOUY3RjEyRjg4M0Q5NDkyQ0VEMDNDRDBGODVDNzdBQjdFQjZBMzlDQUEwOUM0Q0Q3MTU3QTlDOUNFOQorNEE0OEY4Rjk3NjE0MzFFNURDQTI4OEQ4NTY3MEZBMUYzRjU5QTJDREY5NDY3RjMzRjI3QjI1QkE3NDI3NDNDOAorMTgyMjdEMzA2NkRCNTYwMTg2RDMwREIxQkIzOThGRDgwMTZDQTVFNDU0OUIwMTEzOEY5NDRERDVFQTcwNUI2MQorODk0N0RENzBBMzE3OTQ2NTU2Rjk1QjBCNkJGNjREMkJBNUFFQ0JGODFFMUZEMTAxRUE1QjczMDdCODRFRTU5NAorNUFENDA1OUM4RDE0MzE0QzBBNTJDOTQyQ0ZEQkI2N0Q3QTY5ODFCQzdGNTMyMEQzRDJCNTVGMkJBQ0Q1NEZGQworQTJGNzlFRDg0MkY5RTIyRkZBRjU3ODNFRTYzMkFCMEE1RDA1RDc2ODNGNzk2NkY4NDM5QjhFMUM4RjRERjYzNQorQjgxMDI1NzRFMjI1RjRGMkQzQjBEMkVDMEI5MkI1MEUzMzFCODQzOEM4OTNBNjQ2MEMzRjQ1RjI2NjE3MjEzMQorMzg3NzIxRUM4MzdGNEVEOEY5RjRDQjVCMkM2RjJERTg5QzE1QzA1QkMzRTU1RjE4QTY0Mzk2RDA1NkM5MjRFMgorN0IzNUE5NUUxQTQ4QTM4MTg1NTI2MUVDMjcyMjY0QkU1RUJDNTcwMEI0NkYwRTIyMjdBRTU5MEFENTc3NjRBRQorMzA3NEQwNjVDQkJGOEZEODlDMTUyMEQyNjZCNDhCNTJDMzk4NEE2OTRFMjAxOTlBNEIwNzlFOEZGMjMzOTg4NworQUFEQ0ZFQzUzMzBGMTBCOTIzN0JDNEVGNjEyMjQ0MjM3QkQ1NTdGREU1OEJCQTQ1MTJEQjIzRUIyQkM5NDE4NworQjNENUY1OTBCRjQ0OTY4MDIxOTAzMzA3ODg5RjQxOEFFNTQ1QkY3M0I4M0U4ODc4QTA0MDdCQ0QzNzk2MDlEQQorQzU3NTFFMDc0QkQ5QkU0NkZEMzNFQTQzNzBEMkQ1REFFN0NBQzAyRkFEOUY4RTFCQjU4REFENjM1QjBCRDdFQQorNDY5RURDMTg5QUNCNUMzRUU2N0E2N0JGODA2QzUxRTEyQkM5MkU5MUVGMUUxMTdERTY2QzRGMkE5RTc0NUE0NworMTVERTdGMUEwQUVBMTBBNDVGMDhFMkY0Mzk5MzYwQjExRjNBMDlFMEMzMkJEMEYxNEVGNTMwQTg4MzNDRDU2OQorQkNDOUE1MTQ1QkYzOENCMjlFMzkxOUMyQUQ5NzMxMjMwNzgyRTE1OUU5NEMwMkE3NjE4NEQ2NjlGRDE3REQ2OAorMkYxM0VBMTRFRjMyNUU2QzlBRjU3RUEyRUNEM0EzQjFDNERFNzA3ODVCRjJCMjgxN0Q3NThCQjIzNDQxMUYwMworOUUxQzQ2QjE4OTM1QTU2QkVDNUQ1NUI5MDgwNjAyQUE4NEY5OEE1NUI2RDRDRjY2RTgzMjc2NzIzRURCMUIyRQorMEE5QzlCN0M4NDU5Q0VCMEVGMjQwNzE0QjVCNzg1MTQ0OTVGNDQyNTQ5NkE1RDFERTc0QjA5RUI5RDMxOTQwQworMDcyRDZEMjQ5OTEyQjkxN0REQjFGRDRCNjczQjhEMjdCQzg1MDQ4RTBFNTg5Q0QyQTE3RTAyRkRDN0I0RkJDQgorMkVDQjMzNUIzNEI0NjYzQ0ZBQkRDQjU0MTdDQTdDMTE0MjA2OUMyNTc5NEQ1NjhCOTVDRTI5QjlEQ0MwRDdCNQorNDc5NjJCQ0I1MzVDODk2MkY1QjY2QkM1MDA3RTYxQTgyQTg3MDNENjc2RkQ2OTcwMDkyOTQxOUVBREMxMDIyMworQUYzMDA0OTJGNTM0NkI2MUE2NjFEMUIzMzgyNjVCMzEyNkQwRDAwRDVFQTVBQzkxQjU0Qjc1ODc4M0REREE0MQorMURFODgyMkQ4NTFEMDgwRkQ4NTBERkZBMEZENEIyOEY5MzQ1OENFNENEQTUyNEY0Q0ZGQTIyRERENjAyOTIwOQorNEFFNEM1NjYwMTZERTZDQjczQjUzNEIwRDM2MjhDMDE5OEMyOTc4QjUwMTRCMDlBMTA4Qzk4MjE0OUNFMEUzOAorNEJCNUE5QzdCQ0M1QzZDRjkyNTdENTEzQTkyMzNDMEVENjRBQkQ2MkQ4MzY4RkMwQjIwMkFFMzgxNjJBMkYzOQorMDc0OTI3MjY2M0VDQTJGMTI4NkVCQTQ5Q0Y4OEM3MkNCRDBDNUNCMjY2NENCQzczMjcyMzk4NzMxRDE1RDlGOQorNzlDNTEzMTRCQ0IwMEZEMDRBRDY1Q0JFRDNERUYyRjk2Q0M5Mjk3RENCQjQyMzUyMTVDQzUzREJGMDIzNzVFOQorMDE2NDJFQUNCMzQ5MzBEMzVENDdDNDZGOTg4NzVFMEM1RjYyRjIxQTEzNDJDQTc5OEIyQUFBQUE3ODI1NEI1RQorRUYyNDgyNTFDRkQyRDdFOUZDMjk5Q0ZGMEIxQzgxRUEwQ0RDQTEwNkUyRDZBMjJBNDBCNEFERUMyMDA1RDcxMworNTk3OTZCQTFFNkZCQkM1NTU0OUI5NjQxQUQ2QTZBRjk3N0M1MjM0QjY2Nzg5RTk0NkUxMzg3NTRGMTVDOUEwNQorRTY3RDczNDBENzNGNzZDQ0I1RTBEMDFBNjg1REZFMTY2QTBCNTgzNThEOEQwNUE0MDdERjA5NDlFNEQ2RkUzMgorNjI2OTE3RUIzOTY0QTMyNUE1OEQxQTAxRjhEN0Q3NEQ5NTY1NjE5QTMwQTRBN0E5NUU1OTYxQjJBREI1NDM4NworRUExNjBEMUM1NTNBNkYzNzU2RERERjQxNUE0MzFGOTEwQTJDQ0M1NEI3RkVGMTdDRUM0QTM5QkY3MjgyRUU3NgorQkIyQzM1Q0FCOUY2MEQzNjM0OTFEQTA5N0QxQjNBM0ZEN0Y3Njc0MDA4NTMxNDAyQkQ1N0NDQUNDMjZCMkQwNworMTJBMzI4N0Y5MDNGQjU1QzQ4NjY0QTM0NDM5Qjc5N0YzNTYwRUY1RjE4M0ZFMURFMzNBNTA1N0NBNDdFNDZFQworNEVGNUI2NjgzRTQ0Mzg0RTZCQjMzMDQ0OTQwQzEwMjVBM0NCM0Y1OUE0NkVBRjdEMEQ1RkY2NkM1OEU4OUY3QgorMjI0OUU5NUU4MzBFOTREQzAxNTlDOTg5RUM2Njk3M0MzNTk2ODVFRTNBMDJCOTE5NEE3MkM3Njk3QkMyNzk3OAorOEQ3QjgyREY2QzQ0ODYyM0JGRTRBRDhCRDkzNzYxQzNENkE3MUEwRjZGNjZBOUVFMDIzRTA1MDZGQjJGRURCQQorOTNGQzA3M0NEMTlENURGRDlDMjg1MDVCM0I4RTJGRTc1NkUwMEFERDg0NjcyMDhDMDc5ODYwQUU0NjA1NDNDNQorQjZDRUJCQzEwQjJFQTFFRUE2Q0QxM0QyMEVEQzVBMTE4RjJGRUY1NkJDODE5NThBOUQ5RDBGN0EwOEZBRjkyNgorREYwNDVBNzU3QjMzRkQzREQwOTNBOEE3QzgyQjkxNENBMzlFQkU4N0VGQkZDNUIzNUVCREU4NDVFNEQyREFEOQorNzc2NEFCOERDOEEwQUI3N0UzMjQyM0Y5MUIzRDBEMkMxNTRFRTJEMTc5NzlDQjhERkRCRDBBNDU0OUZGMkVFMgorQUQzN0NBOEY0MTk2MUNGRTkwQkY1RDY2OUYzRUYxQzI2QzYxNjJGNDA1NTE2NTYwNjRBM0Q4QTM0NzhENDc4NgorOEM5MTQ5OTgwRjI5NEVFQ0E1OEE5REMyM0RENTU2NkY3QTA2RUQ3NjE4REEyQkVGM0Q5OUZBNDAxOEFGNEQ2RgorMDJGNjQ1NEEwQjIzMzdERUI4OUQ2NkVCQzA2Njk3NENEMzk4RkZGQkE3RkNBRDFCMUJCMzdDOTE0M0YwQTg5QworMjI5MEM5MkYzNEFFNjRDMzM5QjQyRUYzQTVCQzQ4QUI3NzA4MDIxNDA5MzVCOTBFREY3NzkzNTA4NEM3NzE3OAorODczQTc0QjExNDk2Mzc0RjU1MDY5QjNGRjQ2OTkyMjAyNzQ5MURBNzM4QkJCNTAyMDdERDNEQ0M4Q0E4MERCMAorQTA0MTg0OERGM0Y2MUI4NDQ3RjE1Q0UxQkNGMEJBM0FFRjc4NUEwNEYxN0MxQTIyNTY5REQyMEQwMzRCOTY1MgorMURDREE5MzkyQzVEQTdGRjBGQTMxMjcwN0RFRjhDNTM4QzI5MTM4NDE5QzczMUNEQjY4RkQwMUZFQjRGRkY2NworRDQxOTE2RDc2ODFBNTYzRTBCN0JCQTMyNEJBRDJGMDQ3QjU1RDMyNTVGNzE3RTcyM0Y3QTJDQ0Y4OUExQjkzQQorNzY0ODVFNDU4MkVDMkEzOUJEQTc5RDNDMTcxMzZDNDc2MzkyQTgyQjY4OTcwOTVERjYyRDJCNkU2NUExNEQwNgorNkUzMjdDQkY0RThGN0VDMURFRDZGNDlCNjQ5M0QxMkRFMERGNzU5RDg5Q0RDNTA0NTZCQkJCNTVEQUFDOTUwMgorRDBBRTRFMTVGOEE2OEU1QzI0MTFDQTZCQ0U0REZCREQ0RENEN0JFNjBBMjVBNzMwQkVCRkY0NDQ5OThDMkVBRAorMkMxNEUzMzE2RDY1OUI4MzRBNzYyMkI5MjFFMDNGOEQwQUMyQzVFMDI5NTIyMzZCRDVBMjhGNEVBREQ3MzM2NgorOTNBOTlGNjEzMTNCQTExOUZFOUU4RTg3RUE5REQ5OTc1ODM3MTZEQTM3MjczRDJCRjU4NjZCRjBGQjQ0MjE1RAorOUUyMERGRTAzQ0REOEJGQzYxREE0ODc3RkFGRjA3MUVCRjlGRjVDRjE5NjM0RDkyREJFNUVCOEUwNjFBMkEwNworMzVDQzdCQUREREYyRDczODI3N0M4NzNERUM2Qzk3QTg1NEQwQUJDRENGMTJGNDg2MzZEMEM2RjQ0OUM3MDQ4RAorRjAzOEU4MjdENTRENkZCN0RBOTQ1MzI3NjZCOTREMDcxQzlCOUZGN0Q4MEQxNzVBNzlCMDlERkYzQ0U0MUQxRQorQzk0MDJEMzJFQjVGRDVCOUJFMzJGMjMyNEVGOEQ2NkRGRUMyRUY5RTU2REY5REUzODVBNzI4MDVFMTA1MDFDMworMEMxNzk3RTVERUUzODcwOEE3ODU5ODVCNkE2MUZGRTk5NjEzQ0JDOTk4MDExOEY5RUNBNzU4MkI5ODc0QTgxMQorNzQzMEVDRjM5RTJBNzc0QTQ5RDMzMjVFOTM4NEY3MzExNDVGN0VERDBCQTNENTk2M0VERjFBMjkyOEI1MzA4RgorM0E1MEQ3MjQ5MTQ4NDA5MkJBOTlFN0Q2RjAyN0YwRUNFMUQ1ODMzRkIyNDhGRUIwNjk1NzIzMEY2ODEwQzY0NQorN0E2RjgyMzI5RTA1MDk0NTA2QUFBNkY5RTA5QjYxRUUyQ0M5NUU0RDk5RjhEOEIxMkI4MjIzNDI0RTlFNEIzNgorOTI0OTkwMDE1MjFBOUQ0MzFGMDk4RkY2M0QyNDA0OThCRTFDRDk1REY1MjA0NkIwN0VBODhDNDQ1REZBMzVBQworNkNGRDVFNkRCRDBBNDRCQ0M0MTgyREFDRjYyMDUzQ0RFMDNEMEU2NDUyNkVBMzQyNjJDNzA3RjFBOTkwQTg0NAorMTFCRTNDN0YwMkNCRUU5QzdFQUFBMjEyRUVENDQ5M0I4MDExMTk2NDJBNjY3MEMxOEM0NTE4NEI5MUIxMDA5NgorRjgwM0U5OUNEMTIwOUQxM0I4NjZEOEE0NUFEOTk5MjI4Qzk0REU1REVFRjZDRUNBRTE1NENBRTRBODIyODZEMgorMDJBODMyNEYzODY2REI2OThCNkIwODVEMDUwMjhBRDQwNDdFNTlEMTk2MkVFMjE4Njc5RUNBNzAyMDZBNTk3NgorNTgwMkU3MzlCQUREMTQ3NzMzMDE5NkI3NUE2MzFCMTJERTE2QzBFNjM0RTlDRDc1OUYwODBEQjk3NUY2OTJFMworRTE4RTcyNUEwOTNBMUMxMDJGQTBGNzNBMjNEQjFBRThFMTc0MDBGQTA4MUNBODhBRDU0Rjk3NUUyNTA3Qzk0OAorQ0M2REYxNDlDMUYyNjQ2RkQzRjYyNTI5NDg4Q0U3OERFRTRBREExNTUwODFCRDgxOUM0MEY2MjQ1NzFCQjY0OQorQzU5OEUyQjNDNjA3RENDNTM4M0EwNzc0QkI1OTBDRkI1N0NDMjQzMjYwNTE1NTQyNUZDQjVGMDJCMTJBMjBCRAorNTc5MDU5QjgwQzExNjhFM0Q5QkRDNEZFNkQyMDk3MEQzNEYyQTJEREE3NTQyQTRCRDg4MTVFRTA2NTY1NThFNworOUQwMjVCRkZFNkZGNkQ1MEQ5MkFCQjdBODJDNDQ1REFBQjEzODk2QjI4QkNEMzJFRUMwOEJFNTVENzIwMzgzRAorQTZDQTlCRENFQjM5QkEwNjE1MTgyOTQxQUNEMEQ1MkFFNEUxOTcwMEFDREYyQjk4M0MyMkM4QTRENTU2OEM5MQorNDkzRkJDQjRDMUY1ODIyNDlDOTMwRjFEMDUxNUU0MjA4RTVBRjc1OUQ0MzE3RkEzOUNCMjYzNDM1OUJDMjg1OAorNDlBOThCOEM1NzNBRkE4MDEyQTE2QzNFNTEwOUQ1NEQwNDBCRERCMUM3OUI2QzQ3NUQxQUI5NUNCRjAyMkE1NQorN0NCMTAyOTc2QjI3REQyMTBCRTk5RjI3OUU3QkMyQTU4NENENUQ3MzJBODAyODM5ODBFNEMxODA0NUU2ODdENAorNUQ3OUVGRDlFMkEyNzBEQUE1QTc3N0UyRDUzODM5RDVCMDQ1NDBCNzU2Qjc1RTVEMDZCMTM0QzAyMzhDRDZDOAorQjg3NUY5QTMzNUZCODU3NEE2RTM5Mjg1RDc5MjRCRDQxMjNGRDBDODc2NUM4MjkxOEMwRDYyNTUwNzk5OUIzQworNUYyQzk3ODkzOUY0N0MwRUVBN0MzRUQ4MzdGNENGMzg5MUJDNzkwQzBBMUEzMDEzQjY1MDA5RjlFQjAwQkRFMAorMEE4QjNGODg0RkNFRkNBRDY3NDU2NjE0NTNBQjkyREU4NDQyRTI3Qzg5OUUyQzdEQUFBRUQzRjc5REZFNkI1QgorMUYxMjQ0NzA2MTEyRjU4QTdBNDE1NEQ1NkUwODQxQzQzREU0OTZGMUI4NDk0NTk5QjY2MkY4REIwMzI3OEU5RAorQjkwNzg3QkJCQTRFOTM0Njg4Rjk5NzJGMjM4NTU3QzBEMTEwODRENkYxN0QyOENFOEIwNTM5RUYzNkE2RTMzRQorQ0E3NDdDNjRBQjJERUJCRjJDQzhCNzA4NkU0RkY2OTQwOUM5NUVGNUMwMjFDNjQ4OTMxN0UwOEI4NTQ3REM1RAorRkJBNDUyMjQzNzk1OTVGQzI2M0I1NzU4N0I4MjNFOTU2NjUzNDA5MTdFNjA5REI4ODA1RTIwMDg5Q0MyMEMwRQorNTdBOUE1MzFBMDA2ODQ2NkRDQTJBRUE0MUMzMzJGMDRCMTAzNDdCOEM2Q0U0ODIzMzMyNUJGNEIxODQ4NTQwMQorQkJBNEFBRkEzMzA2NzYyM0E4ODQzRjEzNEY5MEQwQTk2NTFDMjJCNUNDNUZENzVFRUM4NjYwRkUxNTRDQzg3NQorQkZGOUU2MjVFRTJDNjJBNkIwRkZCOEU5OTQ0N0IzNjA1MjU2MDRBODVERTQ2MjlBODYwMEU1NTdBRkM1MTY0MworMjBERDRBRUE0OERDNEQzQjM2RDBBRjE0ODkzNENGM0E5RDVFMUNFMEE2NzJGRDZBNURFNkY4RUUwNEQyQzQ4OQorMjIzNjZGMjZBM0NFOUE3MDM1NDVENkM0RDE0OTE3MzkwQUE2QTczM0VDRjUzRDdBRkMzQjhBRkRGMDMzMThFQQorMkFGQTRDNjFEMjkxQjZBNDc5MTM3NDI0RTg3RTNBMEY5OTgxQkU4Qjg0RDEyRTU2MDFDODc0MEIzODFENUU4OAorMzYyRDE2MjY1NDdEMUFFNTAxQkI3NDhBQkUzRjU5MUNCNTI1NzU0OEE4NjE4NUIyNkQxNDE0RTQxOTJBQTY4NQorQzkwNzcxMjlDRkZGRTFEN0E2MzI5RjEwMzk3M0YyOTI4QUI2QTUwOUJDRjMyQjAxNDY4NUJFMjUxQjg4NzgzOAorQzdDMERCOEY4NTM2MUY3MEMxNUY2NzlDNTM1NTNBRDA3QkMwQURCNkU4NjYyNDlEMDFFQkRDM0U1MDA2OTZGMworOURBNkY5Q0M4QzZBMzUzNUJCREQ5MDk2NjU4NjEwMTgzRTk4OUJFNzA0QzI1OUY2MTExNjE2REM3NDcxQURFNgorQThERTczQ0MzNDAxMTBCOERFNkU5NDdDQzJDNzBFNENGMDI0NUVDRTFEQTIwQzdBNjk1MzMwQzUwQkM0RjEyRAorRjUxRTkzQjQxMTgxQjYzNUIzNTJCMTVBQjUwQ0Q4RTE2MzNCMjVBQ0MxMUM3M0YyOUE2MDc1RTMwQ0Y1Njc3MworQUM3Rjg4ODBBRjg4QjY4OUNEMjkyQTA1NkUwODIxRTE1MUUxMjcyNTc3RjRFMDYxRDE2NEE4MDFCMUIyNjE4MgorRUJFMzFERjNERjFGMzVGMjY0RjYwNTUwM0QxNTQzMkQ5NkMxNTdFQzc5MDM5RUM0NEZERkQ4NzU3RjFBMTA4MQorNkQ1OUQ4ODlFNkE1OUMzQjZCM0VGMjg4QUE2MkQzNjEwRjBFNkIzMDE1QkYwOERBNDBGQkI0MjBFRDg5MzQyMworN0JBMjExNTJBOUNEQjVCNEE3Nzg3MTE3RUFFQTExMDlBNDU0ODEzMDAyOEI0RkZGRDk0OUE5OTdCODc1NEZGNAorOEM3OUE3MTMxNDA0QUZBRTcwNEY2ODMyMUNDMTZDQUVDOUI4Q0RCMTI3RkE1RUUyRDhDQUJEMzYyRkY2OTRFMAorMEU4RkU1NzZGQTg5Qjk2QkNBRDQ4REE0Q0E3MjUyNTlFNTdGRjUwQTI0RjIxNjc5RkU3OEVFODg5REI5MkZCOAorNTNGOEE2NTM5QTNFQzhFNUFEMzQ5MTVBMjA2NzE1MkU5MjA0ODJGNjMyQjU4N0E3NjQ5ODVENjg2RUFEM0M4NAorMkZCQUVBN0VFREFDMjMwNkFCQzVEM0Q4MDg4QTg0NEZENjM4MzBGNDdDQkJENUQxNzlDQTUyMEM1REMwRDkxNAorRDgyQjYzMTM5NTFFQjZCMzQwN0EwQjE2OTMyRjRCNjFBMDhBMTY0MzM5Q0IwRTcyMThFNEE3RjA4Nzc1QTA2NAorQTg1QTA5NENFMjc4RjExRkVFMDU1MjI4MTVGQUNDMEIwQzk0OTFEMTU2RUY0MkI4NjA2ODdDQkFBMjZFNEEyOAorREFEMEY2MTk5QjZFM0Q3OEQ5ODM5RDE1OTVFNkI3QTFFOUE3QkQ5NzRCNjdGQzEyMDRGMURBQUZCODA4NTM5QgorRkVDNkM5MDM2M0IzOEYwOURENjM2NDA4OUQxMEI1RURFMzkwQ0Q3NUUxNjY5MzVBM0JGRTgzNTY3MzlGODU4MworRTdEN0Y0QjUxODA0NjkwMUM3OTEwOERCNDUzREU5QjMzMTJGQTdFNTA1M0Q3QzNFNEExMkYxM0M5NzkzNkUwQQorMzFFNzRDRDk0MjNDNkZEM0FBMDBGNzYyNzVFNTgyMkI0NjhCM0ExMDAyQkExQjgxNjFCOEUzQjU1QTcwRkEzMgorRTNGOEI3MThDNjE5N0U3M0JBNkI3MkM2ODVGQjc1Q0IwOEI4NzA4MEUwMUREMkZFM0VDREM2MzNFQ0U5QTI5OAorQzU0NDNBQzJENjk2QTM4RDYxOTdEMzEzOTk2OEI1QjlEQjkzNjdBMjA2RDVGMjAxNEEwODNGNEEzRDBCREFDNQorQ0Y3OTJDMjE4NjBDMkM0OUY2MTQwOUE0MDIyMDdCNzY0NjhDRkZENEZFMzA3RjNDRDM3Mzg1NkJBMzI2OTY1OQorRTI3MTdCOUJGNTdEMDFDRTdBN0JGMTA2QTZDMDEyMENDQ0Q2Q0RDMTQ2QURGMzAyNTVEOEY4M0NGMEVCM0U1NQorQThGQ0U4MkM0RjFCMzgwNEMxMUYxMUNFOEFBRDY1NjVERDNBMzY5MTAzOENFRTdEMzg1RUQ3QURFRDQxQjhENQorNUJDQkIwMjNDOTkwNUU2ODBDMDI0NTg4MDVBQ0I2RUZFQ0VEMDI5M0MzOTVFRjQ1OUM0QjVFQ0ZDNzBDQ0M4RQorMjU1QzQyOTFCMjMwNUMyRjEyNkIzQzQxQzg3MkIzQUMxM0Q0RDc2MTJDMjk2RTAzRTc0QjNENzdFOUExQUI2NgorQjdDNzA5QTNFMTg3MDZCMTJFRUMzNkZENDNCM0M0RTJGNEVFMjgzMTY1RENFQjc2QkU2MTBGQTg0MDNDQjY2RQorNzkxMDc0NUZBRTQyNTA4MTA4NzM4NkJDODM1M0Q0MDRFRUU3MjVGMzBCOTE5RDczQTY2ODY2MTUxOTgwOUE0QworOTZCQzk0MDVCNDgzRjY1NEJEODA4QTlERTU5QjBFM0QzMDdBNkFFREY1MjY5MjFEOTE3NTBCMzYyQTgzOTA3NQorMUI5Nzk5NkZERTA4OTU4QkNERjE4ODY3Mzc4RDc5MTc0QjU0OTVGQ0Q0NzBCMENFMTIwQjVFNDcwREZFRjkwNAorN0U5OUIzMjk4MEM0MTQ2RTEzOUYyRDQzNjU5QUU4REM3MTlGMkYyODM4QzA5MDZDNjNBQTFBQ0JFMjc4NEI4OAorRDYyRUUwMTQwMzZCMzg3OTREN0E2QkJDQzFFMDA4MjAyMTI3RkEyRDQzMDQ3NjA0N0VDMUMzNEM1Q0M2MkFFMgorRUMxRkFEMTY2NDRFRjlGNjQ0RTY3RjFCODE1Qjk2MDM5REEyRUFEMTA5NjY2Mjg5MzE0MzlGOTg4QkE3ODA1NgorRUU4NURDNkIyM0RGMTAxMDVBRjI2N0Q1RUQ2QjFDRTAxQzE4OTUzNTE3RDdFNjNDNDVFQTk3NUY1RTkzRTkyMAorRjBEMkYzNDk5OTVBMUEzNjZCRkQxMEMzRTUxN0NDNjRGMkJBQ0E4RUJEQ0RCMTcyNkFBREI3QTk5NThFNzA3MQorNUM2Q0UxMjZENDY2NDBCNzVGNzZDNjg5NzIyNTQyQTMyMUU5RkNGMUM2RTAxMzEwOTc0QTdGQTU0OEI1MTU2MQorQTMxQzJFNEM2RUFEQjE5NEI1RDFFOEE2NEEyN0Y4N0Q5MjdGQTg4QzMwRUU2MUExMzBCNzU4QUE3MDgwOUY5MQorM0VFNTYwN0NFQ0E5QzE4QzcwMjhDMUQ3RUE3NkEyNEIwOEY3NERDNzRGMUYwMzQ5MzA1NDNDOUM0Q0IwRDE0MworMzFDRDY4RTI1RTc5QzgyN0UwNjc4NUVBNjM2MUYzRUIyNTFBMDFBQTEwRDY0NzQ2NEJDNUNGNDFERDY4N0UxRQorM0FFRUNCNjk5OTUyMTgxQjNFQUZBQkY0NDc2Q0VFMTFERDg4OUExREM4ODE4RUYyMTI4RUYwMkJBNkQ2Qjk2QworMDQ4RjQxNTY1MjBCRjcyOEMxREM2NTM4MkI3QThGRDIxRUY4RUZBQkEzQjNEN0RFOUJFODAzRjM4NTlBOUIxOAorMDQ0QUUwNjU2MDcwMzU0RkQ4NkE1Rjc4QjM0MzU1RDU0ODlGNTQ2NEVFQUVCNUUwQjUwQjhEMTdFQzkxRUMxNAorNzY5RTEwRDM0Q0QwM0VDN0IyOUY3NjFGMTlDMkI2NjU1QkMxNDMyMjU4MDFDMUY2QkM5OTVBRTc0QUExQzU1NgorMTVDMTQ1MEE2MkI1NjNGNTdBRkQzRUQ2NUFDNDk2REJBOENEMEEzMEU1OUFFNDM3N0FGOUZDMjMwNkEyMDgwQgorQjFCOTI4NzI4MjlGRkZFMENGMEFBQUNFQzFCNzYwODM4RDVGRDQ5Q0M3QjlCRkEzQUM4Q0MxMERCMEVGQzVENQorMzFDMDhFNENDNjEyRDBGMzc1MDNBN0RGNjJDRTNGQjQ1QjRGMjNDOUQxQjAzOTgyMTA3QTA1MzhCMjBCOTRFQgorOTA0RTc2RjI2RTg5NjBGOEIyNDA2NDUyNDM4OUU3NEMzODZFNTc4RjFBRjZGMzQwNTAxN0Q2RkJDOThDNTExMAorRjhEREIxQjcyNkNCQkE5NDhBRkQ0Rjg3RkEwOTI1QzUwMzA1NkY5ODI1NkJBQkNBMDRFOUYxRTBGOTA2NDlFNgorMjE0RUEzMEE2Q0IxNTU5Q0RFODhBODQzMDZCMjJGNTJCRURFMjQxM0QyNDkxODc3RUYxRTQ3QUE2MDRDRENFQgorREFGRjMzRjBCM0ZGNTJFQzA5MzQ5NzZENTgyOUMzMEQ2MDU4NTM2QTkzRjVGRTI5QzUzREIyOTA0RjJBQTEzNgorNEMwNTE4Mzk5QjE0MUUwM0EwQjdGODgzOEQ1NjUzMDQ5MjNFOUJCMzEyQ0JBNkMyNjE5MDMwOTI0Qjk3NjFBOQorREVGNTFGN0M1NTBBMkVEOTBFQkE2RUNDODQ3MjIxN0YxNTNDQTJFNjlCRjgxQUYxOTI2MUVFRUNEMkEwQjQ0NworRjFEQzk0QUQzNjAxQzkzMjJCQjg4OTdEMUZCRkFBNzZCM0RERUYxRDZFOEY2OEMyQURBNDYzRDY5RDRDNzYxQQorMzVCOUU1Njc2RkVDRjVFNTI5RjVERDYwODY1QTNFQzIzOTBBNEMwODI3OThBRTlBOTM1NEZGRDE1MUY4NzhENAorRjZCNUFFRTZFNDVCMTZCMEJERTkwMUJCODE0MDlGMTAyNzU4MTcyMTY1MjBEQUNCRjg0RTU0RDREQTM1Qjc5MworNEExMDc5QzhBOUJBQ0E2RjJFNjQwQkUxRTExNTM5MzNDNjVCMDFERjQ1REVFMzRBOTJFOUFDMTg0ODVGQTRCRQorRDhGN0JGNjFBNDQxRUZFNUY1RjEzNDY0Qzk0ODQ4MTU1NTZCOUQ1Mjc5M0JDNkVCMTZBMzE5NjJGNkQ2RkUwNgorREY2REZBMDhGQkJFQzQ4Mzk3NDRCNTcxRTU2QUUxQTYzNEYzQzhCQzY4OTUxMUE4OTM1MTdDRjQzQzdBOUU4NworNDEzMEQ0REVDNTk2RjczMEIwNERENEQyNTdEMTQ3MTdDMzQ2ODI5MkY5RTYyQjNDRTFBMzUxM0YzQ0NFMEY5NworQzk4ODVCNDIyOTA3NjY5OEZCNDJCMkNDQzM1NUFGQTdFREVGNUZFMjQ3MjBDOEI3NTA5MTNENjg4MTRBOTVGQQorMjEyMEJGQ0QwMEFCRTlFNDk4QzU4RkY4M0U5QjZFOTQ1MDNFQTcwMDJCNkUzMzhFNjA3NDcwMkQzNDIxOEE3MworMEZENTFBQzk2Nzc4MDc0MkJBNEIyRTM2NDg5RDRBQzU3Njk2NTAzM0U2M0I1RTQ5M0JGMkJFNzBGODFDQURDNgorQTkzNTZBMUJBMEYxMkU1OEVGNkQzQTNGQkVCQjJFODk4Njk1REIzMDc3NzYxNzdFMjFFNUUxMkNFNzE1MDE0NworQzVGMkU0MDkyMzUyNDJFMTAyNTIyMTE0MEM3OEUxNEIyQ0QxNzVFOUU2MTZBOUUxMUU3QkUzMzgwNDczMzlCMworRDQ0MDBBRTA4NDQ1QjVFNkEzNDgyMDMzNUQyRkU2REVBRTdDNjIzQ0MwMDlCOTdCMTZBMDg1Qjk2NkYyOERBOAorOEU5OTc3ODI1NUE3RUMzNTI5QTI2Njg3QjRGRTFDQTVFNTEyMTk3MjI2RkNGQjdERjk5Qzg1OEQ2MjI0RjM5NworREUxNDVEMTkyQUM0QUU0QzE5ODcyNjk0QjkzRkZDQjdCMzA2NTU4NzRFODMzNTkxNjRBQTIwRjAyQTk5MTVCQgorQ0FBRTkwRjZFN0NEREY0QjU1RjNBNjBFMDdBQjc0NzY4QjdGREEwNzYyMDM0N0ZBMjBFQ0YyREY4RUZGMENEQworNzQwOTE3RTJENTlERTU3QUI0QTIzMkVBRDJFMDZGRjAyRDc2QUVDNEMwM0FBMzJFREU2OEQ5MzJDQjUxQTRGRAorRkFGNTRCNjQyRUU3NjUzMkU4Qjg2QTIwN0ZCQzUyNDJDQTZBODY0RURDNTlBREY5RUI2OEFCMEJBRkQyNEU2OQorQTRCNkU5MzgyMzBERDUxMTc2N0I2ODY5Q0ZGQ0UyODY1Rjk1OTI4OTY0NEJCNDFCMTA4NUVCQjZBNThGRjEzNgorMjQzM0RGMkZFOTJCQ0VGMDM0M0Y2OTEwOEI3OUQ0QzU2Njg1RDFENkM4NEQzNjhCMUU4MTNGRkYyNzBFMDk2RgorRURBMkM0Njk3RUFFRkYxOUQ2MDQ2NUM3NzJEMjJDRDdCQjA5MTE1RTk3QjQ1MTQ4RkY3MTAzREUzQzhBNTlBQQorQUVFNjg2MTU2NUM0OTA3RTQ3NTJGQjI4MDdGMENDQzNCMTRBRkY2Nzc1RDEwMzJGNzY2MzdBREFDOTA5Q0MzNgorNTMyNjU2MEU2REUxNDhCRjQ5QTlFRjk2MjI2NEJBNTBBOEYxQ0EzOTMxOTEwM0Y5MjEwQjcxM0MwNTNCNkRCNQorMjJBM0VGMkMyNEY0M0Q0OEIzMjk3ODA1OEYzRTBGMUE1MEI3RDZDMzFDQ0Q3MDZGNDdEODlGQjY0NjA4Mzc2QQorNjU4RTdCODdBNDgwNTBBNzA0RUU3RjBGNDZERkE2M0IxOTlDQ0Q5NDQwNjFGRURBMjdGODQ2MDVFQjM1QzJDMAorN0E1MzIyQjVDRkZBOTc5NDdBMjg5OTU0QkM2RDNGNjFCN0JDMEVBRDg1QkMxODg0QTZGNkM2NTA4RkQ5NUY0MQorMUQ1QUMxQTIxMzcyNTdBM0VCNzM2M0M4NjVFNTYyMzNBQjM4ODk0NTcwMzMxMURERDA4OUEwMzQzMEZDMTlDQgorMUVDMUI1MjRFQjQzMjY4RkJBOEQwOUYxREE0M0E1MEVEQ0NGREZGQ0Q3RjRERTA0MUE1QURGMzcyMUZDREU0MgorNUM2ODlENUEyNDM2REI1OEVEMkQ0MzVEMzAxMzFCNTFFODc3N0UwNzdFRkMzRDMxNERFMENEQjBEMkVBRkNBRQorNUYyMjY3QzNCQjZCOTU2Qjk3MEFBMkM2MUVDOEQzQTlCQ0Y4QkE5NDVBQjcyQTJCNEI1RDAyODZCQTYyMTlBMgorQTIwMDgxQzQ0NTIzOTNCQTg0Rjg2QTRBMTkwOTBBRTY5OEU5NjZDQzk0N0UzODkyM0ZERjM2RUIxQzcwNkRFQQorOEVCMDNGODZCQ0Q2QUFGMzIyMkNGMTNBNDY5RTBCOTNDREU2ODlFOEZGQjI4MUJFMTNGQzkzOTUwNTQyN0JFOAorRjQ0NjAwOTc3NTkzMTVDQ0QyMjk0MjMxNkQwQUI5ODBGMENGNzIxMERGREFGQTJCQTg1MkU2MzEwQjhCNTBGMQorMjU3REE4RTE0ODY1NDAzREQ5RTYzNDBCNkVEOTA3OUYzRUFERjJCRUY4MDZEMjFCRjI0NEZGMkVCNUFCMDdBMworNEZDNzY2QTkxRkVDRjJCNTg3NkQ5OEM4RUExOTA4MDVGNDM3QUZCMTgxMzBGQURBOTZCQkVGOEY2REQwNEQ5MQorMzlEQTlGMzYxNUZFMUE2QUI2NDdGRjA5Mjg5MTZFMUVGQ0U4MTVDMjdGQkRGNTgwREE3MUM3QjgzRkUyQTQ5MgorQjc5NDRBMjAyMUREQkM5RUQxNDIzM0Q0Qzg0QzlGOTkwODIyNTBCNjVEQzhBMjNFQjA5MDBCQUVCMkM1NzA5QgorMjBDNUJCNDlGRjY1NTk5QTYzQjZERUUwQUZCOTE1NTQxNkM3QzYyMDlCRDY5RURENjVBNUUyMzVERjkwMEREOAorNjY4RjY0OThBODBENzlBQTFCMkU0RTlGNzIwMjRBN0VGMDBCOTI3QTEyN0U5RTM0MkJDMjE0MTQ5QkE5QURCOQorOUNFQkMwRjdDQTc2QjNFMkJBQjAxQ0M2ODVGNkJBQjMzRjQxMkM3MzJFNUFBQjlEMDAwRUVFNUM3RUU3NEI3OAorMDREMzBCQTc1N0Y1OTUxRjdEMzkyMzM4OTdDODBGMjlBMDU3CiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCitjbGVhcnRvbWFyaworJSVFbmRGb250IAorJSVCZWdpbkZvbnQ6IENNU0xUVDEwCislIVBTLUFkb2JlRm9udC0xLjE6IENNU0xUVDEwIDEuMAorJSVDcmVhdGlvbkRhdGU6IDE5OTEgQXVnIDIwIDE2OjQxOjQzCislIENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKzExIGRpY3QgYmVnaW4KKy9Gb250SW5mbyA3IGRpY3QgZHVwIGJlZ2luCisvdmVyc2lvbiAoMS4wKSByZWFkb25seSBkZWYKKy9Ob3RpY2UgKENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZCkgcmVhZG9ubHkgZGVmCisvRnVsbE5hbWUgKENNU0xUVDEwKSByZWFkb25seSBkZWYKKy9GYW1pbHlOYW1lIChDb21wdXRlciBNb2Rlcm4pIHJlYWRvbmx5IGRlZgorL1dlaWdodCAoTWVkaXVtKSByZWFkb25seSBkZWYKKy9JdGFsaWNBbmdsZSAtOS40NiBkZWYKKy9pc0ZpeGVkUGl0Y2ggdHJ1ZSBkZWYKK2VuZCByZWFkb25seSBkZWYKKy9Gb250TmFtZSAvQ01TTFRUMTAgZGVmCisvUGFpbnRUeXBlIDAgZGVmCisvRm9udFR5cGUgMSBkZWYKKy9Gb250TWF0cml4IFswLjAwMSAwIDAgMC4wMDEgMCAwXSByZWFkb25seSBkZWYKKy9FbmNvZGluZyAyNTYgYXJyYXkKKzAgMSAyNTUgezEgaW5kZXggZXhjaCAvLm5vdGRlZiBwdXR9IGZvcgorZHVwIDAgLy5ub3RkZWYgcHV0CityZWFkb25seSBkZWYKKy9Gb250QkJveHstMjAgLTIzMyA2MTcgNjk2fXJlYWRvbmx5IGRlZgorL1VuaXF1ZUlEIDUwMDA4MDAgZGVmCitjdXJyZW50ZGljdCBlbmQKK2N1cnJlbnRmaWxlIGVleGVjCitEOUQ2NkY2MzNCODQ2QTk3QjY4NkE5N0U0NUEzRDBBQTA1MjhBNDA1REYxNUYwM0RCMUMzREE4Qjg1MDQzMUY4CiswRTVGNzNEQUM5NzM0NTBEMUVEMDUzMDMxMzA1N0U5NzFGQzdFN0NBODhFNjFEQTZEQjlBNUNENjFGMEY3NkNCCis0REU5MTA1RDA2MjdCOERERjUxQTY1NTA5ODIyOTkyMENGNDI5Q0RBRkMzRjc3ODhDOTVFN0FCMzBFODRGODQwCis4Q0VENTJFOThEQjRDRkYxNjFEMkU2MkIwRDI4Q0I4QjBBQzgyRTdBOEQyQzAwNzk1M0JBRkIzMDU2RDY2MDc5Cis4MDY0OTU2RTI1N0QzMUMxMzUwOUZCODFBMjUwRDlFODc1Qzc3QTRFOTFDQzQ5RTlGQjNDMDcxOEIyRjY5MUQ0CitCNEE2NEYzNTFGNERENjgxMzNERUQ3NjI5QjBEOTZFNTEyNDU4NEExNkZEMkFDN0EzRUIyNDRBOTM0RkYwNTlGCitFRDcyOTdCMDUwNUYzQzI5OTRBRDY2QTNDQTVEMjcyOEIwMzRERTk0QjY0QThBRkFGMzQxNjAxQkQ0REI1ODU4CitDOTk1MEE4QkI5QzU5OEI4OTYwNjA5RjQ4MTE2QUJBOEMwMDcxOTBBRjBFRDMzNUVCNUJGNjFCQTY4NzFGQTVGCitFQUI1QTI2QUVCNUM3QzM1MkVCODA3OTlDRUI5ODNGMTlFRUZBODAxMDkzRjYyMDg2QUFERDBCODBCQjY1ODBGCisyQ0Y2MUIxMzkwRkE1NkRGQTFBMEI2MUM1OERFRjk2QkE3NjdBOEEzN0VBNDQ3MzA3ODNDNjAwNzA2NjA2QzYwCis0RUU3NEVBOTlCN0MwRjhFMjUyNUM4ODQ3RjNEMzE5MDdDM0M0ODNFRkE5OEY2QzQxNkI2QjJDMzQzREU2MzcwCis1MkZBRTQyMzAwOEQwODZBNzZBMUZGQjMyN0NDN0ZEODRCMUM2NkIyMDNBNEY0MTU4MkY0NTk5QTgyRjgzNjJECiszODEwODQ1MkVBQ0NDOTM3RkZDNEYzQUJCRkUzNjI4REY1MTM2N0RBNkJBM0Y2ODI2RkM2NTIyRDZBQzVFOEVBCiswMEJBRDMwMEZGQjZERURBQjkzMjM3NzA0MjAyQkFDRDAzMEFBODI0QjFFOTdDMEFGRTE3RkNFOEM3NUY0RkEwCitCOEE3NDMyOUE2Q0YxNzg4QzdFQjM0REE3MzA3NDExRTlBRDdFRDhENjU4Mjg4NDQ1NkUwNkUwMzNCNEZGRTdECitDRDRERDhCMDZBRDAxMzQwQ0NDRkJDMzgyQzE4Q0E0NTFFNEM4ODZCMDFEMDgyRkY4Q0M1NzkzRjQ3MjdDM0RGCitCNTJCNEYxQTI0MkYzMUQxRUI3OUQxRTM5QTFENEZEMTNENkM1RTJBNDJBRDRCNEQxQ0M0RUU3QkEwRTVGODBGCis4MDJFNUFCNTdFQTE1RjRERTQ0RDgyQUM0MDhBQTg2RDRCRjU4RUY5NjdGQkM2NDk3QkJDN0YwMTdDMDU5OEFFCiszMkNGODY1REZGRjBGQzdGRjlFNkRDRTlCNUYyRjRDNzQ5MUFDNjc0RjQ2RThFNzY2MDQ1MkNFMEE3N0MxRUU4CiswMERFMzgyQUJFRDg1MzUwMDMzRjhFQ0I5NzM5OEU0RTBBNzVENDg3N0ExMDdGNkE5MDlEMEM3NkQxNEY5QTk2Cis4QTZDRkRFM0ZEOUQ3OUI2RkQ4MjY5M0E5RjM1NEJEMkVDRjMwQzZEOTlGN0FDNTIyRjhENkM5M0VBMjE0RjdCCiszRDBFRDc3RjA0MkFDREU5NDE0MjY0QzA2OThFODYzOTg1NjJFMkM2NDBERUJCQTA3MzRBQjRDM0FDRTM5MDdECitDQzc5RTZCMkM2QzNDM0Y5QjAxNTI2RThDRDk4MjM3RDRBOUI0MDNGRjhDRTMxMzIyMjJGQTYwQzE5NkExOUJDCitBMjM5M0FFNjkzNUMwRjhCNjdGQzFEMUExMkFBNzQ2OTVFRkM3N0RBRkEyODA0RTBFQkNBRTc3RTRCNUNFMTAzCitBMDE2NEI3QUY2NTkzRTU4MDI4QThBOEE1QUY0RjVFQzVGNzM3NjMzMDQzMjU2NkY0NThBQTI2NjFBNkFEMEFDCitCNzEzMDQ3RTIxRkFBODBGODFDNURFMzBFMTM1ODc3M0ZDMDM5QTYyNjNEQUNCRjg5ODc4MTY5QTVCNkVFMEE1CitCRTAyRjVERTg4MDI5MTJGMDREMzczRjE2QjJFNDYyN0Q1NDcwNUVDQ0RGMUE0M0RFMjlDM0JBNzMwNzdCQ0YzCisxNDhFMEZFMDZBNERCNTFGOTI1MTcwODYxQzQzRjU4MTY4QUU4NUNENDc4Q0VEOEU4MTE4MjFEQjYzOEJDRkVDCitBOUZCRDkzMTJCNjk1OEUzQTNEQkNFQkJFMkNGNzhCNTJEOTYzQThDRDAwMTM0MjhDRjNCQjNDOEJFNzkyNDk2CitENEM2OTMzQjA3MEU1NDkyQzc4OUE5N0I3RTM4NjQ4MDFBRjgyNEM0NDE3QkM0MkJCNUUwQUI4OTdFMTM5Q0U5Cis4NkQ1OUIxODlFOTBGN0I1RkFFNjlCNjdENUE0Qzc5N0M3MzM1RTNBM0NDODRDOTJEQzk4QjE2NTA3N0U0OERCCiszNEY5MEE1NTFCNENGMzg3RDA2QTA4QTYzNzYzNUUyQzc1ODIyNzk1NkI4ODBDMjdFNkE2MDQ4RDVBNzVGMjJFCitFQ0NFNkQ4N0VGRDQzMjk4M0Q3NkU1MjY2OTUwREFBMTg2Qjg5RUU0MTc5OEVDMTkwMzAxMDVBMzY0Qjg4MzUxCis0Q0I3OEFCMkFGNEJGNEUzNzlBQzg1NzI2MUQxNjQ4QkUzMkIwODBEQzc2MEIwMUVDOTI3MEZGRDc3OUU5MDc0CiswNDFBMDRBM0ZDMTMwREYyQjdCODI4OUJFNTEyREZGRTkzQTYyQjc3NTI5RTQ5MEM5MDE3ODA4RjFCMUU5RkRDCisyMUU3Q0M1QkU1NjRDMDNBRTYwMkZFQ0M2MEIyQkZEMENEM0FCQjg5NUI0QUMzRTM2MjBEQTcyNjA2MDNCNkRDCitBOTE4MzIxQTU4QjIwMTE0MTMzRkVCMUFBNzg0NUU4QUNEOTY2RkRBNkEwRDc2MjMyRkE0RDBFM0FDQjE2NzI1CiswNzBENkExQUQxQzEyQzRGRDE5Q0Q2NDAzN0Q4QTEyQTc1MEFERTFFNTg5QjM4QzcwQTFFNENCMTYzRTIwQkEyCiswRkZDNDY2RDE0NTJENTU2MUMyMzY3N0U3MDZBNTg4RERFMTg0RUVFMDAxQTc4RDVDODMzREJEMzRFMkY1ODI4CitFODkwMDZFQUEzMDQ4NDhGMkQ5MzJDNUY1MkU3RjU0NkUxOENERDc3QUVFMUQzRkNDMUExQ0Y1REUwOEE0RkMwCiswQUVGQjNGQkM2NkMyMDUzQjU1OUJDRDU2MkExMUZCMDY3MjJCQkVENjU4MUQ5Mzk0RUIzRjM2QTBDQTIyMEU4Cis1RDA5QjgwQ0YyMUEwMkU0NEFCNzVGQ0VDRUZFNDFFMkQxQTQ0NDM1OTM2QUE3ODEyQjQ0NTNGNEUzMUFENkQ2CitGNjE2MEEyRUMxOTlGNUFBMzZENjRFRTI0N0IwNzJCQzU4RTVGOUM3RDk1MzkwRTQ1QkM4OTRENzAzN0Q4NjFGCis3OTFEMzM5Mzg3Q0REOTVFRjcyODNFQzQwOUI2NjlFMTBFOTQ5QjdDNjU5Q0ExQ0M1ODJFRUVGNEYzOENFMDgwCitCMjQzMjkwOEI4MkVBRDk0NUZDQzY3QjVENzU3OUExQkIyRDVFQjNGMDVGN0QzMkJFNDE1RjFCQjQzNTY2RjAzCitCOUMyQjNDQjJBM0Y1MThGMzAzNTNGODFCQjUxN0I5MEMyMjc4QjhFRDhCQzY3MTM3MEQ5RUQ1NkQzNkUwMENFCitGMkM1QjFGN0RCMTlCRDMxNDBCQjJEN0VDN0Q1RTNEREEyNDZCNjYwNTEwRjkzMjkwRjVGQkY0OTFGNERGRjZCCitGNTQyODk3NkQ1QTBENzAxM0NBRTY1MjhCMDcwNjY3QkYyOTdDNDU3MTY1OTM3ODEzMjQ4MjBDNkY4QjRBQTdECisxMzRCRkQwODIxMjlDOTFBOEUxMEQ4RUU1OUI4QzZCNTU5NTZBRjU5MTcyRjA3NjAyRUY1NDE0NzA4OTRFNDZBCitBNTQwRkUzNTk1REM3QjI1MDYzNkQyNUE1QkFGRTkxMDdBREJFRUI0NTNENEEwOUM2MjYzODY3NEI4Rjg0MUYwCitDM0NCMUUzNjU2QzdGRTk1MThFMzE4REQxM0MzN0IxRTdCQjU3QTEwNjk1RjkyQzYxODAwQTgyRDlGMzY1QkNBCis0QzBEMUM4MTBFMzE5NkNFNDAzRTE2RjcxRTMxMEUzRTY1OEQ3Q0M1RkU4NTE1MzIyNDU2QjI1MkM0QzVFNTZECis4MDdBMkUwNTgyOTFCQTZFQUFEMjI0RDQ5NzczNTI4RUY4MTM1NTZGNTM5Q0NDODQ0MzJDQTYxMzM4QzgxRTk5Cis4OEFBMjQ0MDEwNDI3NTEyODhDQjcyQjY5NURCMDVEMTZBRjZGQjEwOTI0RTJENUQ5RTQzOTdBNzEwN0Y1RUI3CitEQkU3REE0RUI2NkMyQTlDNjdBMDIxRTZDQjBEQzMxQzU4QTc2QkM4ODc2Mzc5REVBNEI2QkZFRDg2MjI1OTkwCis5OTEwMUE5RjE0RUY1QjBFRjU1QkQ0QTU0QjU3MEQ1MDM3QzYyN0JFMUVCNjZCMjBCN0ZEQjdEMzhBM0JDRDkwCitGQjU4MDNERThCM0NCOEFDRDFEMDA0RDI2RDI3NzQ2OUExMzU5QzlCN0VDQ0FGNDc1MzQ4REY0QjUwOTRGOEI3Cis5QzBCNTczRDE2MUIwQzQ0Mzk2OTRGQzE5NkM0NzVCNDBCMDUxRjFFOEE2NERBQzhFN0EyQzE4NDExRTZEN0M5Cis3RTk1MEYxRUE0QUY5MUNBRkM1NTRBMjJBODQwQzE4NzNFNjhERUFCOTEyMEQ3RDlCQThGNzAyRjE3NENCRkM5CiswNERENkEwNTY3NzUzRTk3Q0U1RTc3OTU5NjBCNEVBRkFGNzYwMzdFNTRBQ0M4QjlEOTFBMDYwMjBFMEMwQUFECitERTlEMkIzNDA4OTQ4Njk3QTNEN0M4RjA1RDI3MDcyRjQ3MEVEQ0ZFRENDMURDMDk5OTEwNjIyRTg0QzA0NjJCCiszMTM5MkI5OEYyOUNGMEZCMTkyM0Q0ODBBNUFGODYxNkVBQjExREUxQjI0OTdGN0JGNkFCNDQ5QUZGNUM2QkU2CitBRDIyQUQ2MjRCRjg0QThENTkxODdEMjZGN0NFQzA3NjQ1MUFENzhERjI4QUVFREY0MURFQkNENTRBQjJFNzQ3CiszMzAzQTYxRDFBODZDQTZERTdDQzEyRjJDOEI5N0Y3N0ZFQUI4RDI3NTA2MEE3NDY3MjZGMjBFOUU1MDY4RkZDCiszNENBRjk3RjNGNEM0MUZDQ0Q1RjcxRDMzM0M0RUU5MTM5ODZFNDE1N0UzN0E0Q0NGOEIxOTUzRTFDQjIzQzUyCiszNkE5QkU0NEFFMDM0OUJCQTExMTQ5MjBEREEzMTVCRDk5NDU1RTNGRjQzOTlBNjQ1QTdBREI0MzE4NEJCNjE1CiszQTI0RDUxMzhDMDk2MzIxMjQwODVDRUIwMDVERTFFMDBDQkZDMTVDNUEwNDFBQ0JGMUI3RkVBOTMzRTY4N0U2Cis3N0ZBODVCQjQwRDgyRTgwQzk2MTg2QzlDRjI5NTY3NDAyNUY1OEZBMUU0M0JCQUREQ0UxQzYwQUM0RjBFMDE3Cis2MTE3NjJDRDdDQkRBRjQzNjU5MDc4QkY2MkRERDdEMjQ5QkM5QzVGQ0RFQjA2RDcwOEFFNTZERTg3NDkwNjgxCitFNTE5MURCMzZEMjZBMTIzN0EyQTE1MERCMDNBQkNGQjBFRTFBODg3QUJCOTJCNDJGREYyNUQwMkEwQ0QyMzcxCiswQTJCNTg0NDgxMEE3NEFFQjQ1ODM2RUMxOUVERDYwOTBCNUJDOTVDMjU4RkZERTNFNkZENjE2Qjk0MkM2NUY2CiszQzM1RDgxMjNFMDZEMDY0RjRFM0NCM0I5OEUzOEI4ODI4MzZEREJGMzc1MkFCMUVFRjJCNzMxNTA4NzkxRTIyCiswQTY3QTgyRUIxMzA1ODg2NUM2ODQyRjYxRUI0M0ZDQjI2RjBENEFCMkI4RkM4NzUzQjFDNkNCRDEzNEQ4QzNCCiswMzAzODZDRjIzNjg5MUM3NEY3NTZGMzU3QkRFQzBERTQ4MzAyNkNBNjRGRkY1NzNDMUFBNDM4RkMzNUM0M0FDCitDNzUwMUQwRTA1MkI0MzU0NUI1NjJEODAxOTJDNTNGOEM1MjYxOTU0QkY0NDI5QzM1M0FGNDY5QjY3QjZCRkFECiszN0UxMEJENjQzMDUwMEM2QkY3NTZBRTIwNjYwMDU1NTQxNzg1M0RENTFDRUZCRUZEMEQzMEE2REIwMkEwMDhDCisxNjA1MjA4MjUwRTQxNDg1RUUwQ0RFN0YwRDcxMEQ0Qjg0NkZGQzM0RDMxNDY5RkIxNDFBMDRCRThDRTUzQzI3CiswREExMzlDMDQxOEY2QTMzMUNFODE3NjA5RTgwNzQyQUM4QkYzQTIwRkYxMUI1MTRCMzIzN0U0M0YxNzY0OTg3CitFNkI0QzBDN0JBRjk5OTE1RjYyREFFNEMyMkY1OUQzQ0EwQ0RDNkU3NTREMzNERkFGOUQzNDAyOEJDMkIwRUI5Cis4Q0I1NTU2MDAwRDFDRTk4NkY2MEM4NEQwQjZFM0Y0RjU1QURGMkU0MTczNThGMUIxNEI1NDJEOEE5NkVGQzUzCitDM0YzRjkxREFFOTMyQUQzREE5Qzg0OUJBMDc5MUMwMUVFRUEzQjk2N0E3ODMyOTA4MzMzOEQxQTBCMjc4RDhDCitDRUFENUI2RjgwMTc0NTFGMzRDQjQ1ODA5MTQwNUUxNDE1RTk2MjFBNTc3RDZGNjFBNzZFMUZDNzgxMzg1Q0NDCiswQTMxN0U5RTc5NENEOTcyMjcyRTk4OERDRjc5MzU3MEM5RDQwNzZEQUU5QkU1MEVGNjNBMTFCN0VGRDAzRTNGCis5NkZFQTAwRTY1RjA2OUNERDE1NzcyOEExQzk4QUMwQTkzNzcxOTdENEJDQzE1NzMwOEQwOUYxNDlBQjcwODM4CitDNjYzMTMyNzJEMDA1MDRFODBGRDA4MzlCM0EzRjEyNkNGQUMzQjgyMDk5MUY5NEM0OTdCMjdCMzhEMDU4QjRBCisxMTZFNjI4RjdCOTc4QzFGMjUzODcyNzA2QjQwQTdFNDc1RjMwNzg5OTJCMDEzMzZEQ0IwMTNBQ0UzMUY1RDFGCisyMDI5QjRGOEEyMzIxQTlERURERDEwRjJFMTRBMzg4MTg2MzdFOEM1NTk1ODA1MjlCOTk5RTg0RTA3Q0QwNjY2CiszMzIzRDc1N0Q3NUM5REY2QTEyNUUzRjYzMUQ5RjZBRjVEMEMwRDJCN0M0NTQ4NDAyODJEMTlCQTIzNzY0QkNGCis1ODQyMzY5QTY5RDg0N0RGMDEzQjc2NUMyODkzRjgwRTY4QTlEOUQ1OUE2MzRDRkQ5RTg1QjkwQjZGN0YwOUE3Cis1RDYwOUFDOEM5RTg4MjBGMkY4NEI3MjEyMkIwODE4MjVDMTE2Q0ZERkMzRTVENjA3OEE3MTVGMzVFMDY4MTFBCis0QkE3RTc0REEwQjJBMjRDRkM1MEQ2REU3RkQwREU1NzY0QjUzQjdBN0IzMzM2ODI4MzYxNUYxMThFNzA5RDY1CitFRERDRkQ4ODE2MzcyQjUxNDg1OTBFMEFDOEMxN0ZFQTkzMjA1RjRBRUMwNkRBRDg5QkJDQzI4QjQ4RjZDNzAyCisxMTlCRDNDNzlEMDM4QzNGMkI4MEQ2MERDNjFFMEM2MEQ4NzI2MTQ4MTNERDU0QjYzRThCMDg2MjM1MDdFOTJGCis5NjJFNTM1QzYxQTJFQTIzNEE2M0M2MDdGQUJBQzQ5NkNGMDNDRjIyNkM2QzgwNTI3NTMwMzBBMEVGNzQwRTdGCis0NjZCQTRBMzRCMDcyRDU4RjNFNTYwQUZCODQzQzUyMzI5OTc5NzZGM0MzRDRBQkNEQ0EyMzdFNDNCMDVBQjczCis1QkQ2NUM2NTU5REFDOTcwRTdGMzRENEMxNzBGN0UzNEJFQjIwNENENjUxMzcwNTg4Q0U0RjJGMTdBMEU3MTMxCis2MzY0QTI2NTE5NEI3QzMxMzI1N0REODM0NjdCMjFEODRFOUVERUY1Q0VCRDQ1RUJGRkJEOTEyRUZEMzczRkIxCis1NDA5QUJCMEQ0QjA2RkJFMDg1Nzc0NTlBMTQ2MzZBMzc0OTQzREM2RDRDRUEwQUIzM0REMTE1NEZFNzlCQUJFCis3RjVEMUQ5MkVBN0VEN0U2RDI2MUMzQjI1NjlFODNCNUU5Q0NCMTcxN0I3OTk1OTg3NkYxNkZCNzIwQURDQTUwCiswNUEzM0E0N0YxNjY4RTA1QTdBREY2RTUyQjM4RDlENTAxNjkyM0VCNTVFQ0RBQTcyQTdEOTUwNDYzNUMwMzUyCis3NkY4OTlDQjhERkI0MkJCNURGODA4QTY0OTlFNTJDMjMwRDVGQjhFOUUzOTI0QzI0NzRENDE3ODI2RDI4MkY0Cis4QjYxMTEyRkMzOUI1NzRBRjhEQ0FGNTcyRTg5NzIwRjUzOTUyOEUyMERBQkREODdFRTBBREY3ODY2NEU5NEFECiswMEIzODY3QkVFRDZDOTQ4ODAzNjk1OUFBRDE0Q0IzMDFCMjlGMTkxNjU3NzZERjkxMUEwMUE2QTUzNDE0NzUxCis2OEU0RTQwMUM5QjNDMkIwNEM5QTMwNjZFQTBDMzU1M0U4RjRCRkMzRjA1QzczRkRGNTVFQUMzMjEzRTgyRTAwCitDNTBEREYyMTY1RTUxNjc3Q0Q5NDlEMjdCMDlEQkIzMDM3NkZBMDVEMkZGMzg1NjI1M0YyQkFBNzkwN0YyRUE4Cis5NUZBNjFEOEEwNDJDODE3OUJGODM0RERFN0Y2N0NGMzg2QTBENzlGQkFFNUU4NTk4ODc5NDJDNkM0ODI3ODVDCitFMUZCRjNGOTdDNjY2RDgyRkUyNjBENkE4RkJENzJDQTQzRDczMUJENEI0MzAxQzQ4MjQ5QjFFN0MzMUMxNzY1CitENkY3RjlDOEI1OUU0N0Q3MkQ3RERFRDg3MzUxRTBGMDA3OTM4QkZENzNDMjMyNEJFNUJGQkM3NDZBRjUyOUVGCiszMjU5REJDOUQ4M0I1MDI1MTg1RkQ3NUUwRDA0MDIwMzM5OEQxNzM5MTE1RjYwOTZBQjhEQzhBMEFCNTM5QzE3Cis3NTVENTkyNzA4MUJBRDhGQUE3QUMwMjFGRDAyOEE1QzgyM0UzNzM3OTVDMkE4OTJEQzU3NTBDNTc1RDYwNzkyCis1QkFGQzRERDgzNTk2RDhBMTgyMjkzRDYzMDk4NTQ1OUJBQjU1OTMxNEYyN0VGREI3RTE4NkRCRTBFNzA4MUVDCitBOEJCRjBGMzBFRTlBOEI1M0RFNDdDOUYyMDU3MTM5OTM3RDhCNzc4N0JCMzEwN0M0MDAwMjI2NEU2RTNDMEMzCitFNzdDRjBCNjhGMjdFN0EwQTVDRDhBRTlBMkNCREY5OEVENEExMkU5RDFDMEREQTgyODc3MzhBMTJBNjA3Rjg4CisxNUIxQTY0QkNGQTY4NUMyMzA3NTYxOUUxOTZFQUE0QjM4NTE3QkUzN0NCQzY0NjQzNjkyNDVGQUYzRDMyRjkwCitBNkY4QTQ1MEI2NkZBOTRGQzY2MzlENTgwQTFBRTg1ODJFQjMwN0FCRTIzOTZDMTA5M0VEQkMyMjlCRkREODdGCis5QzVGNDlGNTFEQjQxRDY3MUJGODM2REI3MDA0NzkzOEEzNkNGMTI0QTU4NjkyNTVEMDZGM0FDMEUzNDM1REZBCitGQjVEQURBMjlDNzYyMTY2MzdGMEU1RUYwNjk2QkU1ODMzQ0UwQUFENzJGRTFGOEJBODYwMjc3RTcwMjc4QzZCCiszMjM4NkMxQkE1MDVBN0JCODA4QkVGRTJENzVFNkQxNTlENThCODVGMDkzQkRFQ0UzNDQ3NjVGMzg4REIwRjA4Cis2RDA3MkMyNjVBMzI5NDRDMEE5NjVDMTBFN0JBODY5ODgxRDU0N0E2MzZBRjU4NkUxQjY5RjA1RTk2MTBDNDExCitFQTMxMzc0OUU0NTg0QTlDMzg2RTc4OUQwQkY0RUVCRUFDQjJBMDFDRDE5NUE1QzY4NzY3NThDOEIyQzIxRTRBCis2QzY4REY2MzMxM0NFMzJDMDMzQ0VFOTMyN0I5RkNFQkExQ0I5MUQzMDJEMUU1MDY4REQ2MTg5RUEzOEIyQzYyCisxQ0JBRkFCNDZGOEJGMzAzNEEwMjU1RkJCMDkwNEI0QjFCNEZCMENDMkRGMkQ0MTJCMjhFOEJERTgxNkYxMzI5Cis1NTYzNUI3RTZGNzEyM0RBRTA2RTY2MDhDRThFQkQ0NjM0NTI3OUU0N0VGMTg1M0IwMjdDRTU4M0QxMTk0RUY2CisxOTU5OUY2RUNBREUyOThCNjRDQjlGRDczM0NBN0RBODM3REVBQkMxOThFNzUwNjAzQTAyRjYxODc0MjA0OTQyCis0RDA5OTFFMDMwNDk4QjQwODNDOEY4MUI4QjlCRDU0OUY2RkQwRTRDMzc4ODgwRkQ5OTY4NTkwQzEzNzQ4NTUzCis3RTBBNjI0QUQ0MDhFMEQyREJCRjJCMDU2NkIzMzdDQjUxQkM0MTQ1OThCRENCMTlGOUQ4NDQxNkRFQzQzMTEwCitBOEE4OTlFMDFENDg2NDhEMjZEOTJDMkY4Qjc4NEEyM0JBMzQzNkY2NDAzQUUyOUVCQ0NCMDVGOEYzMTcyRkI0CiswNDA4RTQ1NzQwMEMxMTMyMzNDRjA1NEEyRUFCNjEyQjdGNkJEN0E5MjQ4NkU2OUJEMTIyODBDNUE3MjUxRTIwCitFMTAzNjY4RjQ4ODg2QkY0NzYxODMwREI5QkJBNTIzMjVGOEMzMTAwQjkyM0VERUFENEIzQ0U3NDk0OTEyRTU4Cis0NzIwQkZENkI2NDlENjRFMzAxNUE0MkZBNUE2Mjg0QTVBNERDMzgzOEI1ODMzN0M4QjM1Q0U3RDQ3QzM5OTEzCitFQTcwNkM0NjhFNDZEREFBRjRBNUE3NDlGQ0I1ODg5RkQ1OUY5MEZGRENEQjQ0RTU4MzlFQTNFNDk1NzU3OTlCCis3NUExM0NCMUExNzkyMzc1MTMyNkQ3NUEyRUQxRDJDREFDMzk0MDg0MzE0RkY2OTdENDA4QTg2RDA4RUI4NDk0CitCNTI2RUZBQjEyNTg2NUQ4OTI0MzFERTgwQzBFRjUzRTZGRkJEREU5RjEzMDU3NTk3NjAzN0EzNUM3ODUzREQ2Cis1MTI2Rjc3OUEzNDRFOTZFNjM4MTgxMzk1MDU5NEMxMjMzMzM3NDU5MjE3NjY2QTk4OUI1RjE3MThBNkJFMEFDCisxOUEzQjQ3Njk1MEI1QzkzNjAwNzNDM0YyRDNEMEVFQTUyQ0U4NTc0M0JDMzQ4QzM4QUI4OUI1MUFBMDBCODk5CisyMTdFNTAwOEVERTA1NzZFODI2MzY1REVEREFFNDBFNEE0QTY5MTM4MDI5RDBFNTk3MjdDQ0NEMzkwNTA1NkRBCitEQzhGQTM0OUM2MDIyNEI2MzUxNjE4NjE0M0YwN0VGRTM2MTkyMUMwNUQ5NDkyQTZFMjQyMzRDMDI2QTM0QkQzCitCNjREMDM5MDE5NzlCQURFQ0Q5MjkyNzY4NDhCNDQ3OUI1MTAwNkI4RDExNzFGN0M1RDBGOERBMDI3MDQzQzg2CitENDRBRjVBRTM1RTM1MEY0QjExRENEOTJEREZGQzgzMjZFOTlFNzY0OTc4Rjk2NTcwNkFDNThEQzZDMEQyRjM2Cis5OTRDQ0Q0NDhBQzNDQkNDNDIyNjhCOTRFMTZGQTlDMTM4N0ZEQzZGNDVDREU5RjU4RkZBNzRGMjdBNEE5OEZBCitFQTNGMkExN0UxRDIwMTJBQTc4RjkwNkI4OEVFMDE2OTQ3MzZCQzREMTg0RUVGNEZCODE0MEU1RkFGNjQxNTBECitFNTBFOEUwNkY3QjlCRTEyNUEwRkNGMjQ2NDgzNjZDQTdBN0JCRjBFMTFFNkEyREI1ODI1NjM3MzY4REFDNUQyCis3NjZBMEUxNUIzQkYzQ0EwODM4NTE4NTEyREQ0Njk3MzczQkI4QTk1QkJCNDZCMzlBNDY1OUIzMThFRjY2RjIzCis1RDA2ODgxNTA5OTg5ODE3NEU5NTIyOUE3MTQxRkQxRUFGNEQ3NjUwMzdCQjg2RkU2MzNFRjAyQkMyQTE0MDVBCitBMDFBQTJENUNEODk2MjhBMUIwQ0QyQzVBRjA4ODQ0MUU1MkJBN0UxQkM2QTdGMDlFM0E0N0Y2RjNCOTdBQUE0CitBNDFEM0VGMTUyMTFCMjFDRkZDODcyQTQwQzExODJBNENBRDBGQTVGMDhDRUQ0QkE3RDg3RTUwNjg1MzUzNDlCCis4MDU2RDI1M0U3QTNFNTQ5NEYwN0RCNDZCNDAzRTAyQUMzQTQzQkNENDU2MzREQkEyQzQ3QzE0QjFBMkU0RTBECisyMkEwMDkyRTY4RjFFMzIwQkQ2Mzk0MUY0QkU4QjkxMkI2MkMyQjhENjgxQjI5Mjg4MzMwRjRDQUVBMDI0RkY0CiszQTE4MDlBQUE2MjYzNjU2QzQ1MTQ2RDVBMDFFMkUxM0E1QUZGQUYyNjA3ODkxOTg4RkIwMTcwNTk1RTIzQTNGCitCOTcxNDA0N0Y1NDAzM0JBNjBCRTc2RURDREJBNUM1OTU3OTU0NDA3MTJFNjRGMTA2NDUyQjQ3MEQ1QTlDRkM4CitBMkM2MDRCQjQxNTg5MEZGN0FBMzEyNkMzQ0UxRDMwQzNFNThFQ0U0QUEwNDMwN0RBQjE5MzcwMkREQUQwNjg2Cis3ODhBOEI5RjhGNkYwRDIxMTlEQjNENEUzMzlDMDUyQjMxNDIwMjgzNEY0NzhCODkxNEZCOTMwMjAzN0ZEODRCCitCMjU2NzREQTQ2QjVDOUQyQTQ4ODVCRUE1MTk4MzFEMkRDNDA2QzNDMzc1MzI1MUYyQkJBQzc1RTExNzA3NTBGCitDNTQ0MjYwOTBEQjM3M0FENkVBOTBBRDczQzZFODBDQkJEMDFGMEM1NkY5OEMwOUZGMkExNjI5MzA2NTFBQjQ1CitFOEE0Q0JGQzhCMUJDMjk1MjJBRjI2OUM1RTE4MjEzMEY1REY2ODIyMjcwMzU5MTUxOTQ4RUZCNEMzM0EyNjg3Cis1OTU0NDA3QTFFRTk2RjI0NUFERjlFOTNGOTcyQUJDNUUxQjE0NTdBMDMwRjA0N0NGQ0VDMDJBM0Q4MjI4MDExCitFQ0MyQ0IwRTBDN0FFNEIwMUFBMzQyQzY1OTZCRDBGODVBNDVFN0JFNDQ1NUQ0MUZDMTU1MzlEMDdGNzEwNjM2Cis1MzdBOEJFMEVDNTBCNkExRkREOTBCNTk5QTA4Qjc4MjRGQzY1NTU5RTNCNkZFRDY3NkE0MTU0MkJENThBMDlBCis0MjM4OEQ3NjYxRDM0MjJDQjg2RjEzQ0Y2MjM5QkI1NkVBMEIxREFBNTU0MkFERDMxNkVFNzZCMDFGOThFMEVGCisyOUE4Mjg0NjEwMjBERjBGRjY0M0U1NDZFRTA0Q0IwMDMyQzA2QUFFNTMzQzIwNzIwRjg4ODI5NUFDRkQ1MkQwCis1QUQxNTJDRDdEMDkyMkY5MTFGNjEzMzU0MzQ0NjIyQkY4MDBCMEZBMkFGMzMyNEU4OThCMzlGOTUzODE4OTUwCitCNzU4N0FGREY5MUYxNkVGNTdFNDZFNDZGMDdFMTRFODkzMjY3MzdERkQxQ0RDMEUxMUU5REIyRkVCQ0QxNDdCCis4MjU3QjRDMkQyM0RGODZBQzEyOUJBMTY1NUZFNkFDMjEyRjIwODBCRTZGQkMxQkZGOUJFQThEOEUxMjEwNDBFCisyQUY5NTAwQjkyNjA3MkJBOUJCNDc0QThDQjU1RTcyN0E5RkZGQjJDODM1Q0IzRTc5ODFCOTA0RTlFRkFGNERFCis5RjhDQTVEMzM4RTMxRkQyNTM1RTVDQTlBNTkwMDIxMjNDRjA4QzYyMUQxODVDMTAyMDc3QUI4MEFGNjI0NEU2Cis0OUQyMkMyQUREMzUzQzNGOTA2REU5NTJDRUUxMDFBOUQwOEYxRDk4NTNFRjhFRTI4MjUwNkE1M0ZERTVGNjRGCisyRkY0MzNDQTZFNjA4MTlCNzk0NUE0REJGMjE1MzRFMzUwMzk4NTM2MDBDRUYxQTlGQjUzQjk5RjA3NEY5MDlCCis1MTY0NDk5QkI4NzY1MkE3MUM2QTU1RkFCQjMyMzhDMUMwNEFDM0QyNzM5M0QzMjE0RDg0QTZBMzdCNzE0RTdGCitCMjgyNTZFMDVGRUVBNUY3RTg2Q0EwNENFNEJDQzU0NzlGNDBGRDc5N0NCNUJCNkMwQzgxNzgwOEMwODM0RUVDCis2M0YxRDc4RjBGRTcxMkQxRUM2RjAwMUIzOTVEMjE2NTY4MzRENjIyMEQ3NzM5M0RFODlDREVEREFCQ0YzRDU5Cis3QjE3MDNCODg4NEVENTZDRUNFOTNBQzcxMzIzOUQ1RDgxNDA5M0MyREY0MDI1ODg0RDM2NTM1OTk0Q0UxREVDCitDQjY0QjUxQUY2M0I0MzRGN0ExOEE2RkI2NDRGNDkwODlFQjMxNjFCNDZGNkVFQzQzMEI3M0RFMTBFQUIwRUQyCis3MDczNkQwQjZGM0RDQTNCOTZFQjAzNkMyMUUwRTk0NDFDQzdCNEJBRDREMUIzQjM0MDI3RDA0NzVDNDgyQTRDCis2QUQxNzY3MEUxNkIxRDg3MDc4QUI5NEQyQzA0Rjk5Q0JCNEM4OEU1RjI5MzI3ODg0QkQ2NzNCREQ4NDFFOEVFCitCM0EyRTU0NEI3ODgyRjU4OUY5OTEyRDg2ODI4RTBDMzk1MTk5MzJGREUyMDVFREE2Q0MwMzkwNEIyNTNCQzkwCisyQUQ5OEMyOUYxMDlEODE1QkU5MDBBQjQ0QzdCQTFENjM0OTMxM0UwM0Y5QTk1NDlGREIwNkE2QzY1REQyNzk4CitFQTA3NDQwQUFDRDU5QUU5MUZCRjdFRjEwRTgyRUYzRkI4MEUxMENDNTE1QTk5MjgxMUNBNUJDQUU3QTgwRURFCiszMEJERTkwMEYwRjQ5RDhGNDc5MTEyNzRBQzNGRDQxQTVEODMwOTJGQ0M5OEIwNTdCRUY2NjAzMEY5QkY1NzczCis2NjRBQTgyMTUzNkIzRDAzM0MxNDRDQTFEQjdDRDdFRTM3OTY1OTU4MDkzMjUzMDYxMjc3QTE5NzQ0OUE4MEU4CitBRUQxQzQ3RDhCQjNCRjA1NjBFMjQ0MzJGNkE5RkZDQTNDNDY4QUIzMDlDNTRGOTIwQzMwRkVDRjA0OUJDNzVDCitFQTc0MTUzOTBFQzMwNDY4QTk2QzYxNUY3NTI5QjVFMkQ5NkJBMjMxM0Q0ODAzM0M3MzE2MjI3NUFFNEYzODMxCis4RUIyOUEyRkYyMDUwMzdFQTRCNkRERDFBRTAxN0FCRjJEQTNFNEM2QjgyMTVGQTEwNTIxMjBEN0YyREE4QkJGCis4MTkyOENEMjJGMTBBQzBCMURFMjU0Q0Y1NDQzREU4MUY2OEVFNkMxOTk5NUFCQjRGODcxNjk5OEM5QUY3OEVGCitEQzFCRTEzMTM5QzZDOUM1OTVDQzUyNjk3NEIxRTBFNEY2QjRENTUyQzZGQjYzN0Q5MUQ4NTBFMTA0OTM5Mjg3Cis4ODhBREQwNzdCN0MwNTgxOEFGN0M3MDAxNTI5MkYyRTk2OEQ0MjE0QkM1REQ4Nzc2N0VEQTM2MjQ5RThDNENGCisxNDVFMEM4Q0EzREFFNDNEQjZFREExMEFDQ0RFMDM2MDhFQkI2M0MyQjM5RDZEQzA3REUyRTU4NzlBMDUyREQ3Cis4NEU4MjZBM0UyMkUwQjExNTUyNzIxOTZGNEU3Q0M4MjUyNTlERjcwRkYwNTk5RDkxNTk5QThENjFEQ0M0RjAyCitCQTZBNkJGOTIyOEVBMDdCODgyOENFM0Q1RUU0MzM0MENBMjQ5N0IwNTg1NTJBM0FDQ0Y0OTlERkYzQThCOUI5CiswNDQ4Q0JFMDdFMEJCNzM4OUIzQUJCNTc4NTY2RTc4MUE4OUFFOEEyOTA4ODIzRDJCNTEyN0VBMDI4MkUwRTJCCitFOUJGREZGQzdENTI5NjEzRjNFMEQwNjNFRkUzRDcxRjcxQTA5OUYyQUFENTBCRjc3NkEyRjBFNTQ0RTEzQjdECis4MkUwQkUwMjk2NTU2QTNGNzZCQTgxNzUxMzUyRTJEODJERDBDQ0I0RjU3N0Q3ODM4RTM0QjQ1MkI1Qzc5QjU4CitBMDk1OTJDMTY5NDU5QkVCQTI4M0Q5ODc1Njk2MENFMzdBMjM5NzY5QkNBMjI2NjBBMjA0MThCMUEyOThCMEQ4Cis3NzU1RkU4MTAzMjE1MDZEMzVGQ0U3MEU5MDE5NjZGRTc3ODE2ODIzRTRENEI5QzY1MDNDOTBENkYzMUM2Mzc5CisyQTQ4NTJBQTYxREM2M0YzNTkzRDY2NTA4QTlFRkI4RjE0MzI0NDhGMkZENDU2NDcyNzE3MzFFMjg4NkM0Qzc0Cis5RUY0NzdCOUFFNTM2Mzg5NzI0M0M5MzFEMzRFM0NFNUJGNzkwMkYyN0I5M0ZBNUNDRkY1RDg1M0EyOEEwOEJBCitCMTdFM0REQUE2NDhGMzczRjRFRERBRTFERjI1QzgwQkVBMzk4OUMyQThENzFBNEI0QjRFOEEzQzU1OTA0RTU2Cis4M0M5OEVCQjVFQzMwMTU2NDdFNTlBMjQ0NTdCMzkwRTMzMTFBQzYyQTY3REVCRDI1Qzc4MDlGOEIxMURERjQ0Cis3N0M3QUM5QTcwODBBMkYxMzhCMjE0RkZERDA5MEQxODdEQjY2OEFEQ0RBN0MyQTVBREU5NEE0NjkyQzU5NkIwCis0MkY0RTdBOTA1Njc1NDRCQUY2NUIzMDJCQkZEQjU1QjQ0MkI2MjRDRjEyODg3NjMzMENDMkZCMzk0RTUxRUZCCis4QjBDNTk2QkRENjBDMDNGMTZBNkNERDg5NDM0MTEwRDdFRDc1OEYxNTE5RjFFOENGMDk4OUFCNjUyOTM5MjA0CisxN0Y0MEQzRDcwMTYzOTk2MTI2MTBCNTY3ODhDNkQ5MjU3QTU0QzlCRjhDNzk0M0E2REI5QjY5OTBDMEJGOTg4CitGRjM4Qzk3ODkyMjg4QzUwOUI3MUJCOEREMjBBNjlCOEVCMEJEQkUwNUY4NDUwRjY1N0I3RDIxNzM2NzBFNDJDCitBRDQ4RjE3NEU0NEFEMTdDNjZCOTZERkJCOTg3MUFGQzVFCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCitjbGVhcnRvbWFyaworJSVFbmRGb250IAorJSVCZWdpbkZvbnQ6IENNVFQ5CislIVBTLUFkb2JlRm9udC0xLjE6IENNVFQ5IDEuMAorJSVDcmVhdGlvbkRhdGU6IDE5OTEgQXVnIDIwIDE2OjQ2OjI0CislIENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKzExIGRpY3QgYmVnaW4KKy9Gb250SW5mbyA3IGRpY3QgZHVwIGJlZ2luCisvdmVyc2lvbiAoMS4wKSByZWFkb25seSBkZWYKKy9Ob3RpY2UgKENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZCkgcmVhZG9ubHkgZGVmCisvRnVsbE5hbWUgKENNVFQ5KSByZWFkb25seSBkZWYKKy9GYW1pbHlOYW1lIChDb21wdXRlciBNb2Rlcm4pIHJlYWRvbmx5IGRlZgorL1dlaWdodCAoTWVkaXVtKSByZWFkb25seSBkZWYKKy9JdGFsaWNBbmdsZSAwIGRlZgorL2lzRml4ZWRQaXRjaCB0cnVlIGRlZgorZW5kIHJlYWRvbmx5IGRlZgorL0ZvbnROYW1lIC9DTVRUOSBkZWYKKy9QYWludFR5cGUgMCBkZWYKKy9Gb250VHlwZSAxIGRlZgorL0ZvbnRNYXRyaXggWzAuMDAxIDAgMCAwLjAwMSAwIDBdIHJlYWRvbmx5IGRlZgorL0VuY29kaW5nIDI1NiBhcnJheQorMCAxIDI1NSB7MSBpbmRleCBleGNoIC8ubm90ZGVmIHB1dH0gZm9yCitkdXAgMCAvLm5vdGRlZiBwdXQKK3JlYWRvbmx5IGRlZgorL0ZvbnRCQm94ey02IC0yMzMgNTQyIDY5OH1yZWFkb25seSBkZWYKKy9VbmlxdWVJRCA1MDAwODMxIGRlZgorY3VycmVudGRpY3QgZW5kCitjdXJyZW50ZmlsZSBlZXhlYworRDlENjZGNjMzQjg0NkE5N0I2ODZBOTdFNDVBM0QwQUEwNTJBMDE0MjY3Qjc5MDRFQjNDMEQzQkQwQjgzRDg5MQorMDE2Q0E2Q0E0QjcxMkFERUIyNThGQUFCOUExMzBFRTYwNUU2MUY3N0ZDMUI3MzhBQkM3QzUxQ0Q0NkVGODE3MQorOTA5OEQ1RkVFNjc2NjBFNjlBN0FCOTFCNThGMjlBNEQ3OUU1NzAyMkY3ODNFQjBGQkJCNkQ0RjRFQzM1MDE0RgorRDJERUNCQTk5NDU5QTRDNTlERjBDNkVCQTE1MDI4NDQ1NEU3MDdEQzIxMDBDMTVCNzZCNEMxOUI4NDM2Mzc1OAorNDY5QTZDNTU4Nzg1QjIyNjMzMjE1MjEwOTg3MUE5ODgzNDg3REQ3NzEwOTQ5MjA0RERDRjgzN0U2QTg3MDhCOAorMkJEQkYxNkZCQzc1MTJGQUEzMDhBMDkzRkU1RjAwRjk2MzA2OEI4MjMyNDI5RUQ4QjdDRjZBM0Q4NzlBMkQxRQorMjkzMUNFNUY1RDE4QzY1ODYwMjA1OUYwN0JFNjZFNkVGQzkyMzlEN0FCMkZCOEE0Q0JENDE2NzVCOEVDRjI3OQorNjUwQzI5RTUzQjE0QUMwRTM5MkE2NjQ4NDhDMTg0NEIxQ0VDQkIyRDVDRkI3MkQwOTE2QjY3NUM5QTlBMUUzNQorRjEyNjk2QTZGNjI4NDczQzYwNEE5NTM3NjQ2OEUwNkUyOTVBRDZGNzZDRUI5MzlEOTQxMTM1MzIwNTBCOUQ1QQorRDJGNDFBOUVGQjk0MjREOTg2NjEyMzEzQjg5RUZFOUM4QTcxMzEzMzQwQjI0OEY2ODUzQjFFREJGMDJCN0Y5RQorRjQ0NzIyMEZFMTMxRDdENTRDRkI4QUExMjgxREJBRUE3M0U2NjVCQUNCMUYxNjQ1NTJDQzBDRURCNjNCRDRCMQorNEE5QUU4QUM2RkEwMjI0MkRCRThEQTQ2QjY0QjZCRkMxMTc2MkYwNzg0RjIxNkZDOEI5MTIwRDY4OEQxNzA1QQorNDM4QjE0RjVFNURFQUYyQTk4NDA4QjNCNjQ2MjBERTM3MzJBNERBRTZEMDhENUQ5N0UzNEM3NURBRTE5RUFCRAorQkEwNzk2MTY1QzExNTFCQ0JGQjFERjhEMjlBNjNBODMwMERCREI5RTMzMjNDQjgyRDAzMzc1OThCODNGNEYyQgorQTk3Q0Y1MTk2RDREMUNFQzFFREI4OTY2RTU0OEMwRDlDMTk0QzkzMjMxOTYxMEZCNDNFQTFCODYzMjJGRTY0MQorQUI0ODc3MEZGMTNCRDQ3NUE3MjY3RTE0MjM4ODU2M0QxQTQwMDQxOUM1ODVCMjJBOTg4NjA3NDY4N0JFREY3NAorRDkwNUJFOEVFNDQwQkEyQUJGMjhFQUI2NzMzOTlCN0YxMjlCOTcyOURENTU2NEM2ODE5NTQ2MjE5MDNCODRCQgorQ0FGODlBQzVBREIyOTMyNDcyREYyOUFEQTJCREJEQjREMDVGNjVGMjhGNUY0QzUyOTYxM0Q2MTg1OEUwMDc0QQorMDgyQTg1MjcxMEE2MkExNDdDOTY2RjJCODVCNTFCMEJFODVGMTFEMjA1N0M2NkZERDYxRjZDNTc1NTM2Nzk4MAorOUY0REU2ODA2MDFENERBNDFCNDZGOEQyMTQ4NDUwMDAwNDEzQzI3QUEzOUI1ODZCNzRCOTc3QjI1RjBGRDNDMAorNEJBMUVCRkFGREJFQzUzMUVBMTIxMDM2NTA5MTY3MUNFM0M4NkE2RDRCQzU5MUMzN0RDQzAyNTcwMDQyNTc1QQorOUQyNDI1MkQ2RTAxQTg2MDM3NTM5MzREN0VBNUNBQzFCRTRFNUFEMkJBMDQ3REU4RjM5ODNCMjNBOEExNTExRgorQjA4RDM3M0I2OUU1MDc2Q0U0MzAwMTM3Qjg4MDVFQkNDMEFBQjg5QkJCMzEyQTc3ODM1Nzk1RTNDMDY5MzIyRAorNDJDODkzQTMwQUQ3MzlFMkJERDI5OTY3OUIxNThGNzQ5Mzc2NEYyMzIxRTM5NjUxNDFCNUVEMUM2RjQ3NjVFRAorRjQ2RDM5MUE2NDZCMzBDOTAwMDJCMUM0NjFBRUU3OUU1RjA5NENBQ0NBNjU2Q0VBM0RCOTIxQ0M1MjA1RjMyOAorQTJDNjlGODE3MDYxRDZDNjBCMTIxRUVFODQ0Q0E1MDA4RjIzREYwNzJCRjBEN0YxODcwNEU2MUI3MkNGNEJCMworRkZBQTVDOTQzNjBGQkNCMEM4QTNFNzg3QTA3NjRERDIxMEJFQjlDMDcwMEJGNjdGOUU0NTQ3RDNFRkUyRTk2MworREIzMzYxQzZEMTJFRUE0QUIwQjI2NEU1OEY1OEFEMjk4OUY5RTYxODA5RTA1QkFBQkY5NURCOTI4NTZCMDBDMworQTQyRjRGRUVGODIwQjQ5NENGN0RCRDA0NzhCMEM3NTU4QTQ0QTA3NzYwRDJENzIwQ0Y5ODFEMjMxMEUwQ0FFNAorQTQ2OTRBNkM2MUJBNzYzQzJGQTk3QzkwMTQ4MTBFMTI5NDdCNjc1MDU4NDlBMkFEQ0Y1OEZFNjE3RkVEQzVCMgorMDQwOUY4QTYyM0FFRjRGQUE5NzRCMzYzMjMwODdBREJCMzVFMkZDM0RDMTAzQzEyMkE4OUY0Mzk3QzlENDkxMAorMTQ0N0VDNDI2NEQxNkExRDNCMkVFREQ0NTYwMUNEQUU1ODExODYwOUM0MDMxNzU0Q0U5NkJDQzdFQ0FFNTUxRAorQTY3QjE5NDVBNjE2OUIyRDdFQjgwMjdEN0FGRDMyNzI0Q0NGNUE5QkQ1ODg1MDFDQUU0QjRCMDZENjZEQ0NERAorMDlGMUM4RTJEQzY5ODlDNUFGMzI3NTRBRkI0REJDRTFCQjNFNjk3M0YwRDYwOUMwNzc2NDg0MEZGNTExQzcwMworREVBOTJFMTA5MjcwRkUzRkYyNDcwQjQ2RTNDN0ZBMDVEMzhCMzVGRDQxQThEOUE0MDZCMjEzNUVCNzcwQkM1RgorRDNBRTg1NjgxNkVERDA3REY4Q0QzOEE5NTg1MUVGRTdDNEQ3REU0QzZFN0MzMTI3QjcyQkFDQzIxNTA4MDAxRQorRjAxRTY1MjYyRTcwQ0RCN0QzRjEwNkI5MjQyMUE4NUFDMkI0RDAyRjE3Qzg1MzgyQTVDMDI0MkE4NkM0NjJDOAorOEZFOTlBNzc3MzkxNjIzNzQzMkIwNjE3M0ExNDM5MEYzQzEyNzdCMzJCMDFEMTQxN0Y4QzQwNzI5NzIxQzQ0MAorRkNGMjdEREM5MDJFQ0IzRTZFQUMxNDNCQzA5MEZEQ0ZFMkQwOTMzOEU3OTZCQjQ3MDg0QkQxRjlFQ0UyQTAzRgorOTQ1OEY3NThBQUNCNURDNkFCMjMzQTk0MDQ2QzM0ODVDRDk1OURCMkZCM0M3MzVERDg1OTc1NkRFNDJDQkZCOQorNEFEREI2MzY0MjMyMjdEQzlFMzI3QThCQzA0RTE4QTRFMjEzRjk3QTIxNDM5QjUxRDZGN0FENTNFMDBFMzM2MAorOUI2ODRGN0FCQUNERURBM0Q5RTEzRkE3QTNDQTQyN0M5RkYzNTVCRUVDQzMyMTg1Q0RCM0ZENjZDQTY1NTQ3NgorQzVBRUMwNDgwN0NFRTM4NEI3NzYwQjMyRkM0NjJCNjNGMzkwM0NDQjYxRDM0MDVBODM4Qjk1M0Q4MTgyMDdGQQorREZEMjhFMjY3NkYwRTgxRERFODFCMDkwNTQ0RUZDRTE0QzlFOTEwRjBCNzVGRTRBMkREN0RFQzA4NTJGMzQ4MworN0ZBNUUzQjkxNTBBRTRFOTIzQThCQ0M0QzE0NzI4RkFCRUIyNUY0RkY0MDk0MUQ4OTBCRTMyNEEyNTNDOTRGMworMjM2MkUxM0VBNjIzRDFCMEE1NTdDQTYwMDg1RjY0M0VCNTQwRjVENTUzODI1MkEyQkIyRUJERTc0RDY5QzVERQorMzA0MTM5ODBGRUQ2RTM2RTVGRDQ5NkNBQTQ4QTJFQjU5NTU5QzJCNjdBNTAzMUIxMzU5Rjk3NkMzQTkzQzU4MQorMzIzQTg3QzMzMEFCNUQ1N0Q5MjE0NTFBRkMzRDlCNkRFRkY2MjYzNjJGNjkzRDM1RkNDMDFGQ0RCMDhEODM2MgorNDQwMDQ5NEQ1QTNFM0JERDlDQzkyQ0IxMEI4N0I3QTVCNjUzQ0U2NzZENUE3QzMzNzg3RUI0OTE4QUZCODY1RQorMEI2MDkwN0U4MEYwQ0Y2MTgzMTkyMkI4RDYwREZDOEM1NDU0NkRCNzdCQjQ3MjYwREVCRDcxODBBRTAwOTRCNAorQzk2NzZEQjlCNjE1QTIyMUI3OEVDRkQxNTNFODJBOTVCMzg2MjM3MkU1MkEwMDJCM0I4Nzg4M0E5NzZERDc5MAorREU3NzBGMDE4N0JEQUZEREVBOTRFMUYwOTMwNEI5NjEwQjA0NjM2OEZEMjgyQTU2NUMwMTg0MTUzOUJCQUI2RQorMENBQTY1NzMzNkUxMDlFNkQwRTlFQkFDOTU2ODhCNDUxQkZDNUNGOTZFQTI0OUUxNjE4MzVDN0MwQjQ0OEJEQQorMUY1NjYwMUU2NERFMjg1MEU1ODREOUVENDQwNTcwMUNBNkE4MzExNjFGMzcyOUQ5QUE0MEYyMEYxRTQ2QUQ3MQorNzhDMUMwNjJGQzI0NzQyMzc2M0YyRkJGRTE2OEIzQkUzNDAzMDY4QThERjQ1MTc0NDc2RTFCRTk0M0QwRTBFNAorNjM0NkYyODY2N0FCRUU2RTdDMDg1QUUyNkNGOTkyMDQyMUExMTE5NDc4REQwQUExNjhENURCNUVFRkE4RDhBQgorMERCMjk3QzlDM0Y2NjJFODBCMUJEMDUyQjNBMTRFREZCRUFEMDM4QkJERkI0NkQ0NDRFOUI0MzdBMUIyMERDNgorNDc4Q0Q1RUY0QUFBQjNDNkUxOEM3OUREQUNGNkZDNUI0OEE3Q0MwN0I2NUJDRjFFN0E0RDhGRjI3NjZEMjBDNworRDExQjI0QkRDMEJGRDAwNEE0NDVBQkREMDg3M0Y1RjcwRUVEOTg4Qjk1QzEzMTc1QTA5RDdEMjY0QzVBMTE4QworNzk5QzU1MjREM0MzQTIxOTg0REI2QTY1OTNDQjM2Mjg4OURFMTQ4MzJGREVCOERGRUUyNjQxN0FGQ0Q1MUJBRQorMDY0NkFFNzM5Qjg5RUI2MUEyQzNEMDk1N0Q3RjlGM0IwMjlENEMwN0M5NTc0MTE2MjU4RUFFN0ZEN0FGOEEyMgorQUUyRDhCRDU5OUVFQzgwNDU0RTRENzZCMjBENzAyMjAyQ0MxQTY1Njk1MzZGRkI3QUJEMjM5QThENzA0RjM1OAorQjZBMTVCRTlDMTUxQzI1M0YzQ0NDMEMyNzVDRDFDNjVCQjhFM0M3QzlBRjc4MTM3REYzRTkyOUI1MkQyMDQ0QworNUNCOTlBQzAzQjk3QjJEREM3QjI3OUI4RkZCOTBFQThEQUYxRTBGREY2OTMxNzNENjhGNkM4NDVDRkQ3RDNDRgorNEY2MTk1MjA2RkE0OEI0RERDQTgxNTgyRTNBRkU3NURCMkQ1RjYxRDQ1MzJGNzY0MzlFNDc1QTMyMjgxNEU4RQorNzMxMjQ2ODVBNzJEMjUzM0UyRjBCMDJBOEMzRkNDN0IwOEU1RjI1M0QzNTk1MThBQkZDNDFDMTAxRkFDRTU2RgorMjM1QkE2MjY0QzFCOTNBRUNDMzUwMUU2MDQ2NTNENTMxQTVCQjJGRDcxMTBDQ0FGMTM2ODEwM0ZCRTdBMEUyQQorQ0U4Mjg0Q0MyNEE5N0UxRjI5OEFDQ0M4MThDMUQ1N0Y0NDMyNkIxQjlEMTAxN0M1QkE1REIyQTREQ0I2QzZDQworRTUwNzBGODkyODhCMzIzOEJDRjFCMjJBQjhEMEQwMjJGMzFGMDFCMjY1Q0U0QkFDRUUyNkI0QkYxOTRFMjU5OQorRUU0ODEzRjZFQzc0M0Q5OUI1MDVDNDhBM0I1Njg0N0QxMTlFMzMyMEFEQ0E5NDZFRTI3OTBBNzVGQ0MzMjJDRQorM0MxMEU4RTgxMUY2RjQxNUJEOUNBNTMwQjZCRjIwMzYyQThGMUIwM0UxMEE3NzdBRTEzQzRCQzIxOTkyMTA5QgorRTNBQzVFMUY2RkUxOEM0NTU0MUQ2NTlBQ0IzMEU0RkI3QTdDRTk1OTA0QjEzRTM0RjhCMDg3MEUwQzQ2QjM2RAorRDIxRjhFRjI2MEI1RjQyNjMxQUY2RjE2Qzg0RTQ2NDRERkQ0MzIxNEVBQjRCNUIzRTQ5RTQyQzdGRjBCQjc2RAorRDk2MEE5OEEzM0UxOUYzOTIyOUMzODg1NDhCRjhCMjlENUU3RkZDOEM4MjVFOTkwQjA1RjVFNzNEQUY1OThCNAorQTZGNDMyRTJFNTYxQkY1QTcwMzQzQzI4MUI5NDc2OTE0N0YxRjYzOTY1NzJDQUM5MUE5NjZENDI3NDAzNjk2OQorNUE3OThEMzFGM0RDOTAyRDU2MEY2OURFNTg3NUZCRjIzRjcxNzE1OTkwODI3MDM0NzBCMTM2REYxODU0MkIyRgorMTdGQzdFMDVBMENFRDdBNjM5QkVBOENDRUYxOEMwMTk4NDI5NkY2MjIzQTYzNkQwQTdBRDMxNTgyREJGQ0I5RQorOEQ3OTI4QUNEODkwOUQ1QzVBNkY0NDM1NDQwRTk3OTNGQTQ0Qjg1NTgxODBEQzBGQUMxRTYxNEFFNTdBNDNBMAorNjMxQjY3MTExQTgzRUUyRDM3MUM3QTI3RkNFQjZFQjI0MDQzN0FFMzY3RUE4NkZCNTE4MDlCRERBMDFDNDhBRAorMDA2OTUyM0UxNDAyQzYyMUJERDVBREVERjY1QkNEOUM4MUM2OTJEMENFODRERjQ0N0NDMTMzMjFCMEJBRDA2NworRjY0NzgxOUZENUM1NDI0OUYxMjM2RjY1RkVBNUFCRTZFNkVBOTUyMjNDODZERTg2MzdGMTU4MzhEMDQ3NkU0NAorNDAzQjFDNkJFNTNDNjk1REFCQzFFNTNGRDk5NzVBRTFGMTgyMDcyRThFOTQxNkZCRDY2NzFCNzIwNzhGQzlGRQorQ0M4NzNBOUE1QTFENkM2QTU4NTU1MTk4REIzRjE1MjQ1OEUwMzIzODg0NDYyRTI5OEJDMjA4MkM5QjlBMTlGNAorRDgzNDcxRkM1RkUxMjM3MERGQTkyQzRDQjMwMkUwMDIxRTZDOTIzQUYxMjIzRjc4QkI4QUMxNUI3RTBCNDg2NQorNEE0MzA4QTkxREREQTM1QjVEQjE0NkE2MzlBOERDNzk5M0JDNEZENDYyODU5NUUxNzFDQ0M5RTg2RDVEOUM5RgorRjI2MkVDRkY5MTVEOUVCQkE4REM3QjM3QUM3RUE4NERGMzJEMjBBNUREQzM4REI4QTQwNEZDNDYxMjVEQTBEOAorREYzODE5NjhFMjBFNEQ4M0Y4MkEyMDg1Mjk1RjU0NTc4OTM1Qjc0MDZEODk1MzdBQTJENDlBRjIyNkY1RTU2QworQjY4QTRGM0M4RThFRUQyNTdEOUQ1MzgyRUJGMjJFODA0RDMwRjNFNDMyRTM1MDAzQzJGNkRFM0IzODAwNUEyNQorQzE2RDNFRThGRTlFM0QwRDMwMjQ2QkM0QTI5MENCNDEyMTE4MDEyMzg1ODQ3QjhCOUVBQTBCMjVGQUIxREVDNQorMDMyRjEwNDMyOTA1ODMxRkQyQTZDNjc1QkJEQUU4OTgwMTNEQTdBREIzNDI0RjUzNDYzQkE5MTUyOTAwNDc4RQorNEQzMEM2MERBRjcyNjFGRkU4NDAxOENCNkU0NkVDMTE1NEY1MzY2QTAxQzZCMjMxMTFGM0IwQzkyNzQ4QzQ2NQorQTFFNEE4N0YxNzhEMDhDQ0U5NzNDRTk5MjM1OENEM0MzNzBGMDhFNDE4NjZEMjU2MjQ1RDk4OTJGOEM0MjA2QQorMTE3NzZERDc5NjJFRjFDQTlGMjMzNzVBRjlFMTQ1REY0OEE4RTk0NkExMzFFRUJCRTAxQTA5QzM0M0E0MkU2OAorQ0Q2OTlGQjJEMUZGMTMxQTUzQ0QzOTA5OENFNDc0NUQyMTU0MkM1Mjg0MTUwNTk5QUZENTg2NjY0RjQ4OUI3QgorRkQwOUREMjZBQjRFQ0QyQTU4NkE2RUUwMDM3NzU4MjVCMDNFQjQ4NTM1QkY5RjI2OUNEREUzMTc2MjU3QkUzMworQTREM0REOUJFN0QyMUMxNzI5ODNERUI5RDQ5RDNGMjE3NUZGNENGMDIyRDZBQjdCRTc0QTBGRkI3ODZDOTlDQworNEIxNTZFQ0E4OUU5QkRENDk2ODFCRURCQTdCNzA5RTYxNUFGRjAyQTk0QjUyQjlCRDBBQkZBRDg4MUY0NTJFMworMTRDRjk4Q0E1MkNCRkVFNTg1QjdDNTk1MEVGNEY0QkE0ODI5RDA1NTA2QTZDMTkwQTI5MzY2QTlDQTBGNzg2RAorRUNEMEMxRDk2ODFDODRDQUM4MEE1ODU4RjA3QjFGNUJFQjg5MTg3QzVDMDU2MTY3MzEzRjQyNzNGM0E2QUY0NworMzQ3NUQ2RjlFM0FGNUM2QTQ4RkI0ODMwNTEzQzUzRkZFQkIwREM1M0YxNjU2NzI3OENBNDY2RTMzNzVEOEY5QgorRDMzQjY0RTcwOUFGMDIyOTBFMEI2MjlFMDA3RDRERUVBRUIxNEVBODM4Q0Q0NkI0MkYxMTBBNjNFOTQ4MjE1QworRUY3Njc2MUNBM0Y3NkI2NTE1QkUzMjQ4MjA2NEZDNDYxQTRFNjA5OUJERTFBOTgyMUMwMTdBOTgwN0Y0NDQyNworMUFFNEUyNEUyQjJEOERGODg0MTAzRDJFNDA0NjNBRDgxNTIyQUEwRDIwMkFDNjgzNjIxODE1RUFFQTk5M0NERgorNUYzQzQ0NzFBMTlGMTQ2Q0QxNkVFODZFN0I1MjQ4MTA1Q0YxNzE5QUE0RDdENDk2NDQxRDVCMURFMTIwM0Y0MgorRTREMUJFRUI5NjYzRjA4QUQ2MDZDNzQ5MTZCQ0U3NzcxMDIzOTBEOTdBNUE2ODBCMkRDODlEMzI2QzI5RTJDMworM0JBNzQyQ0RGODQ2MzIwNjU4RUU0MzUwRDg5NTY3MzJEQzkyMUI1OUZGOEU3Q0M0QzFFMjU0NkQxMTk0MkU3RQorMUNBMjBEMThFMDY0NEI4OTJGRDQ5MjhBNzc4NDlFQjJBNDVGNEQ1N0E3NDFCNDE5MjkxQjAxMTA1MDkxODc2RgorRUZBMDhGQkUyQ0VEQTJFMzgzQUVFMDVBRUY0RjYzNjM3QjRGNjY4RkZEQkY4Q0I0OUIyOTE0QzgwMTc1Rjk5MAorRkE0NjRENTA1NkFGOERDNTBCRTE4NkFEQUIxQjYyNDQyMDVGRkM2Mjg4MzEyQzFEQzlEMjc1RjQ0MDU2RkE1NAorNUQ2M0NBMTBGMzZCOURBMjI1RTVFNUVDNUJCNEM1NkM4QUM0OEJDNTM1QkY0NDY0OTc3NUYzOURDNzA1NTFENQorRDYyNTQzRkM3NDU2N0IwMEFGNjYxQUJFRDU1RjYwREY0NjAxRjdFNDBCQjlBQzkzNEYzQkM1RjQ2QkVDMUQwNQorMEU2MEE5MzMzNzIxRDY3NjZFNjQ4RTk0NkYyRERGMkM4NEMwNzY5QTBGQjJDRDJBRDEzOUM2NjBGQTVEMzMwOQorNEI4QTdGOEM4OURDNDcwQkRCMkZEMDYxRDVFQkEzNjg5MkY4QUJDQkY5NDJGMERBOThBMTIxNDEyM0EzM0ZCMQorODI2RDlCQ0M3RDVCMkQ3MkMxM0YzNjhFQ0JFNEJBRTVBRUI3NzdERjFFM0FENDgzOEU0RkE0RkVDOThDNTNBNAorMzY3NTk3OTJFQjgwQ0UwMkE0ODFEMkU3ODU0OEQ4NDZBNzNEQTgyOTYzOTMxNTMzNUQ5NDJEMTgyNEEwQzE0RQorQTNGMzQxQzdFMTU0QzBFQjcyMkVBNTgwQ0Y3M0E0ODM0NEU0MjZDREQ5QzhBQjUxQzgxNkVDQ0Q4MzhBRjE5QgorM0ZFMThFQ0M0RTRBRTYyM0UyRDYzNjUzNzVBMkI0Q0EwQzE5MjRDMzI5QzM3M0Y5RUU5MTU0Qjg5NTdFOTczRAorQzhFRDc2RDU5M0NFQjc0N0QxNERERkQ5ODQ4RTM2MzFFN0RGNThCNjNGNTY0N0NCNzg0QkE0RTRENzAzMUVGMgorRUQ2MzNBRjcwNkQ4MEQ0MENFRkZBNUY2ODM3NjE2RERFRDM2OEMwMjhBRUQ4QjgyRjE3MDlBRUJGNDlGODNDOQorRjE3QzYyMjhDMDE0NTAyODZGQjJEMDlDREJEODgyRDcyQ0M2NjQxQ0IzREZENDIzMDg2NDc0MzcyQjU3OEYxQQorMUE1RDJBMUQ3M0VBNDk2MUFCMENBMjM5MDEwM0VFRjBGOTE4MkU2ODk2MDg4M0Y3QTQyRjIxRDJFQUM0N0E4MworQzIzQTdEMUFGQjM5NUM2QUFFRjg4NjE5NDFCODhFMEFDQTc3MDhCNDVGRkE3M0JFRkFDMjBDNEM5OTZDRTE1OAorRjgyMUI5MjMxN0Q3RUI2RjI5QkM1Q0Q4NkIwQzA5RTY1MjMzM0E4QzYxQzA2RjhFQzVFNjAxNTBFNjc0REU3QgorQ0JFMkM1M0IzODNBRDIwNjM5MjY0MzY2NkVBMDBCNzU2OTJDMDIxRjhDQ0IwNkVFMEY4RTFFRkU4OTQwNjQ3NQorQjM3RDE5MThGOTQ5OENFNUVBNTA4MzUwQzE2NDQ1Q0Y0ODQ3QUQwRjdFQUQxNjMxQUFGRTQ3MzJEOTczNDBCMQorNUJCMDY4NDIyRjYxNjIzNUQ4MzU2N0U4QjE2NzJGRjZCRDVGQkM5MzdFQjFCMzlGN0VBMEY3NUI1OENGODY1MAorOTA3N0JFRTg3MjdCMjlCQzk5N0Y4NDhFRjIxRkVDRDBGNzM5NzZFRTRBQUU1ODFGRUIzQTNGNTAzOTQ2ODczNAorRDNGRDIxMEIyMUQ5Mzk1QzVBQzk2M0NDM0JGNDhGMzUwNzdCMEVBMjMxQTkxOTc5M0E4M0I3QkY5RTEzQzg3MgorRDU4RTFEN0Y2OUZBNTVENTlBNjJFNTk5QjY5MUFERkQxNTdEOEZCOTg2ODczNTRFRTA2NUY4MEFFRTUzRjY2MworMEIzNkUxRkZEMjY1RjUzMURBODc1QzhCNDQyMzE3QkNBRDg1MEM1MDlFNEIzM0JDQ0Q2QjBEOEIzNjcxNkFGNgorMTA5ODQ0MEIwMDgzMzIxRkIyMTYxN0ZGRUNEMzEyNTJCMUE4NDJFODBEN0E2QTEzQjAwRDE0MEFCNjJDMUZBQgorOUJDNDY4QjFFMUM3QThFOEQzM0EwQTUxNTE0RTg2OTREOUNENDBFRjg2Mjg0MEFERDQ3ODE3RjZFNUE0MjBDQworN0E2MkUyMjQwMzcyQkYwREI4NEJCRENCRUVERUZCQzVGMTM0OTJDRjY1OEMzMkVCOEEyNDU3MzZCNUJFMkFGNQorNjRFQzkwNUJFNUU0M0RGRDI1MjBCQ0Y0REYyMUU3OEE1MDJGOUYyOTUxMDIxMzVFMDEzMzZFQ0UzNzQ4RjM0RgorRDYyRDNGQTc1QTczNkY5MDc1Q0JCNUVGRkFGOEE0RDk2REU5M0RCNUQyMkNENTBDQTEzRUJCOEIxMDk0MTNBNAorN0Q1QjA1OENEMEYxRTBBRkNGQTc2NjRFNjU0QUZEMjNBOUY1QjU4OUEzOUE1NUFBNTg5RkJCMjY5RDZDNzA5NAorNjZBNzZBMDYxN0FCQzNFRTIxNTVEOTdGQzIxRTAwOEY0RkExRkY5M0I1NjU0NURFQTVFQjQ2MkYxOEI0RkEzQQorNDY4NjIwMDBCRDQzNUQzNzExRTNEMEQxNTkyQTczNjU4Q0E4QkI2MzlGMjkyQUJERDVBMzg0ODJDQzJDMEU2MworOTY4Mjc0RTMyNDBFNUREOTRCRDNDNEIyNTQ3ODg3QURGNzcyRUIzRTUzOEFDRTU3MUM0RUExOTI2NEM4RjYwMworNDQyMjkxNjNDOEZDNzg0NjlBNzk2NjkzQTRCQ0Y3QUMxQTE1OTdBREJGQkMzRUU5QjczNTkwQjRBQjE4Qjc4QgorRDczM0Q0MkY2NDVGMzVDNTVDOEE3RUVEQkM0MUM4NkE1ODlBNkZFRDNGRjYxREEyMUFFMjk4OEM4OEM4MkU4RAorQUZGMUQ5MTE0QTUyNzVGMUNBQUM1MzdGMkIwOTU5MUFFMEVFMDU3ODlBMjI1ODA3NEU3OEI5NzJFMDI3MkQzOAorOEU2M0RFNTRFMTFDNkNCN0NBMDQ1MTk4OUY0QjM5RTM4MzQ5N0VBNDg1OENCMjI1MEYyNzRBNEFCODlGQ0I2MworRTIwOTE5MTMyQTZGOEMzMzg1QzgyRDE0MDEzMENBRkU5NDRFMUU2RTdGQzA4ODkwQzUxNkI1MzIxODYwNDU1RQorMDZCMEFGNEFDMTRCNjdFQzk1QzA3QUY4NjA3RTg2MzZBNTVCMjVBQkY3RjkzMzBBMTkwQjEyMEJBQkRBQzRDOQorRkE0NDg4N0Y2QTA5NTQwOTUwMjU5RDA4RUNBNDdGRTZCQzc5MjMxM0VGNzgyNzcxMTdFRDBBQzREOUYyOTMxNAorRTlDMzlCMjA1MTQ0NjZERDg4NTI1Nzc2Q0ZEMURCMTFDNkI4RURDOEZEQjQ2QkNERDdBQzRGM0RDM0JDNDI0NgorRDY5NEI0N0JCNjE0NzdERkFCQzZDRTZGNUE2MURDNjhDNDVGNzI2RTJEMTdDNjUwOTIzQ0Y4NjJCNEI2MjQ0RQorQzM2RTVEMTdFQzZBRTM0NzhBOUJFQzVERkM5OEU4NTBEMjQzRkQwRDQ0Q0E3MzAyN0IyMUY3NzVEQjM3OTgzNAorMTZENUFFOUM0M0I4N0JGRjUwNUEwQzNGRDhGRjcyMzFFQ0E3NDNDQTNCNDYzRTE2QjFBMThDOUM1QkU2M0I3MgorOUFCRjlGNUUyODgyNjg0NkQ4QzA1MzkxNjJBRUI0RTA0QUVDN0IyMkI4QkY3RjRBODFDODJCRjBCQzc0RTk4MworNzY2NjRCNkU4RjQwNjZCOEZEOEQ5NkZDNDkwMTUyMENEMUREODkyRTQ0RDc5REU3ODBFOTZEMzhFNDEzRUM3NworMkVBNUQyMjI3NTU0Rjc4Q0ZEQ0M2NENGMUI2RDkwN0Y5M0VGMTYzMDJEMTRCOTE2QzIxNEI1MTc2QjcyMDU5RQorMEFEMDlFMTJFMzM0QkI4QjQxNzRCOTNGMjc5OUQ1QTJBMzNCMUIyMDJDQTlENEY2RjJCM0M0OUE0MDE0OEI1QworNEUwNTRDMDYzQjkxMDIzQzUwOTYyMjU0M0Q5QUU4NUZCQzlDMTgxNjhDNjk4MzQyMTEzRDNGNUQ5MjBEMjUxMgorODkwRTgwQ0FEMDE0NEM1QzFCN0U5ODY2Q0U1NzdFQUI0Mjc0NTYzODQ1RjlDMTYzNzZFNjI4MjgwMkNGRDZGQgorOEQxMjhGQ0Q1QjgxQkFGQzQyNkNBOEE0QUI3QjFFRDg2MjQ0ODE3RTlFNjZFNzY5NTdBNkU3MTA1ODMwNzc5RAorOEVGOUE1NzRCMEExMTYwRTgyRkYyMkZENkRFMzJDOTUyMTE5NUUyNjczRjIyMzk0RkMxMEEwQTQxQjZDRjM4QgorODNGNzYxQzM3RjhBNUZCNzk3MkQ2MDFBOEQyQUREMzFBMzY2ODRCRTFGRDQxQTY2M0FFQjY3RkE3RDU1RjdFMQorMEMxMTEzOERBRUY1RDVERTVCNTYxRTdFNjg0OTQ3OTVBNDM3NzMxMjIxN0YwQkQ0NDlGREFFQkU4N0Y1RkYxOQorQzE4MkU3NzA1MUYwQkZBODU1RDk0ODZBOEE0NkUzQTYzMjJENDMxRUEyNkQwOUREOTdCNjQzMDRBODQwQTEwOAorNzVFRDZFMkRCMUQwNEM0RkU5NTQxMEY0NUQ0QjY3NjZENjkzRjYyOEFDNkExOTc4MTIxNUY5NUZDREI2NERENQorOTQwQTJFQjdGM0JFODREQjUyRDNGQjVDNkVDMERBMzBCNEREREFBQjczREYzQkQzQUI2NTc3QjNEMjFBOUE0OQorNUIzNURDODdDOUI2RjlFQTFDNkMyREJFMTY2MTQwMDdDNDk3QTRBOEQ0MjkzRDA2NzFCQkJBRkFBODM5MzI0QgorNDBBODhFMDI1Q0IxOEZDRDg4QjI1MTM5M0I3ODc2Njc0RTVFMTM1QzlDQkM0NjVBQTZGNDRFNDMyOERERDY3MworRTg5ODAzQzA5NkY4RDgxMzQ4OEMyNDUyQkNCNDY5M0Q0MjFEMjY0RUU3QUJBNTMzRUREMTc0RjU5NDVGRUQwMgorMDVFQTMxQUVDQzNBRDk4RDlEMzVBQ0EwRkQ4MUIyNzk5QjgzOEY2NjIwRkQ1OTE5MjM3NTU2MTZGNzk4QTdGMworMjUwOTQ4RkY1NzQwNzhFM0Q4OEQzNUM4NkU5MzcyQjgyOEZBMEZDRTQ3QUJBNkE5NzMyQ0YxOEJCNkREOThCNgorMzlBQTlFNDE5RTNBNDhBMUYzMjBBQTZENzRFNTI1MTAwMDA5RjZDQUVBOTA4ODNGN0Q1MTJBMTFCRjJBQjMzRAorRTMxRTdDRjFBMEQ0NTE3Qzk3RUM3RjRDRjkzMTFGODM4QzY2RDI0MzdGQjE4RTAzQkUxOUI0Mzg5RDQ0Q0VEQQorNkM5N0U3NTBDMjk0NkJEODBFOEYzQURERjE5REE0OENDMjI1NkQzMTE0NkRGQjU5RkY0QjhGODg0MTg4Rjk3RgorRDFBMzREMzEyOTQyMDNFOUI0NzczMzBDQUFGNkZGQTZGRTRBMjU5MDkxNTU4NEU2RTQ1RThFRjc1NTcyM0Y3QworMTFBMjk1QzkwODNBQjIwQzkzOTAyNUM0NTgzNDNDRTBBOEU0RTdGRkIyMTVFQkJFRkY5N0M3MTUzNDIxODEwNgorNzc3NTFGNUY2MTQxMjlDRTNBRkFCQjg2NkI2MjhBNkNEMURBMjFGMzk1NDg4RjIxRUVDNDhEODNDQzJDRTM2QgorMTkzNzREQ0QxQUMyRkVBMTg0NDQ2NEQ5MjUyOUUxNTFCRTM0QTc2QUY2QjUwQTE5ODA5NjRGNTA1NEU3M0RBMworRTIyQTQyRTFBM0UxRDdCNTAxQkVGQkFBM0I3NDkxMTE2RTU5QzQ4QzNBRkI0MzBFREYzQ0Q5QzA2RjczNDY4NQorOUNENTE4ODA1OUQwMDgyMzk3MUZENkMyNzNGODY1NEJGMzUzRTcwRDU2ODg3RTA2OUNDMzcyNTA2MkQ0NEFCRAorMzBBQzIyNUFEMTI1QTNFMDJDNkNBRTUzMEI5MDY2RjVFQ0M3NjI0OUEyMzRFQTUyMkNGODkxRkY3OEJERjFDMgorQjZDOEE2NjY2NEVGODBENEREQUM2MDQ1RkI0NEM4OUMwRTE2NDQ2NjIxRUQ4MEYxQjUzQjYzMjg2QjRBQUI2NworRjgxMDlBOEEwOTE5NUZDQTYzMkRDOTM4QTg2NzY3MDQ1OUQwMURCN0MxRUQ4NEQxRUI4Njg4QTkwNzdDMURDOAorMUQ5MkJERENGM0ZCQkQ1REYxMkRFMzQ2NjVDNjQwRTdFMkI3QjJEQTg5OEE1RDNDQTFFOThFRDA0MEU1RjE3QQorNEY5OTI0ODJDQjRFQjJDMTczMzg1RUVBOTYxM0YwNDdEQ0Y2MDM0REMzQzZDNjVENUFFODJFOUFBNDI4RTRGOQorM0JCQUEyNDcyMzE4ODA1ODhENzZBQkFFRjg4OTVEOTQ1NkI3QkM4RjVCMDNCMkQzN0U5REU2NUE4RDVBM0FENworQjE5QjBCOTY0NTI0Mzc4QkI5NDZEQzExMTM4ODI4MDZFMTJGQzk2RDI0N0E2Rjc3NkMxQzgzNkYzNDlGRDRENgorMjlBRkNFQUE1OTBCQzY5MTA4NjZENTA5MjA0NDgwQkREMDgxOEU0NjNFM0NGRDUzMjUxMTQzOTU2RTlENEREMworRkIzNjE2NjVDMzMxRTVGQkFCQzY4NzZDQzQxOTc5OTRBMTlDNTk4QTY2QTFCQzQxNjY5QjdGNjE4N0ZGQjEwNgorNEI0MDg4QTdFNDIzQThBNzBEQzgxQTE0ODU0MjQzNEI3MkE1NjAxOUU0MTg2NjBGNTY5Q0VCRUQ5M0MzQzVFMworQjZENzg4NjU2RTQ4RjAyQjI3NDM3ODk0QTlCRUMzODJDNDNBRTdCOUFDQ0EzM0RBMEU0MzU4RjkyM0QzRTg2MworRUNENkZDMDlFOUJBRDVCQkZFM0ZFQjNBNjQ5MTdERTQ1MTQ2NEE3QUU1QzZGQjBBMTA4NzQ0ODQzRjMzMTU0OAorNkU0RDMzNzI1Nzc5RDE5NEQzOTA1QzY2OUM2Q0U3MDgwMTUwMEYwMjMwMzFBMDg1NTg4RUQ4QTRFQTVBQzlDOQorMjg5QzlDN0YyMjc5MEJBRDYxREY4ODVCNEIxMzJBNUJCNEQ4MjA5NzU3OTFBNEJBM0JEREQ0MzlCODk3NDUwQgorNjJFRDA0NUVCMDJDRTdFQUVDNUVGQ0RDMzFBNERCNDhFQTZFRDY1MTZBRUQwQTIzQUIyNzg0N0ZCNEZCRTE1QgorOTQ2MDYwNDI0Q0I0NEQ5MjM3QkQzOTdFQ0MwQzNBNEY4RkMxRUFFOTA1MkRDMERFRjYzMkZFNTZGRkRFQkMxOQorOTQ5OTYyN0Q3N0QwOTNGRTdDMTg1OTBDMzNCMjdBMjZBRUE1ODM4ODYxQzhBRDUzNEVBODI5NjZFQUEwMUNBQQorNURCODhDQ0E3REI4MzI1QkQ5RDIzNDk3MTgwNEEwNUI3NENBODgxOEU4NjJFQkQwNTdEQkZFQUY5MDI5NkNDMworNDg3NkREOEQzNTc2NjY4QzczNEEwQzA0QTM4RUJERTRBOEY1REUwNDEyMzA0NUYzOTQ5NjU3Q0I1QUU4MDQzQQorRkUyRTdBNDY0MzFGNEYwOEYxMzExOEI3MEI3MEQzNkE5MjlEMkUxMDhDNEU3QjU4NEY0N0ZCQUI1MDQ4NUYwMQorQzcxNkQwNkMwODZDNTE4MjcwOUFBOEU5ODREQzJEQzdCNzAzMkY3MTZGNTYyNjQzRjY0NDg5ODQxMTdEQ0JFNAorMTlCRTUxREM1MDc4QzFFMkJCQzQzRUZCRkE1NkMxRUFENzFEREM4OTVDNzU2Qjg3NEY5NUI0RTZEODJCRTNGMQorNEFDNDU1QTczOUNEMkZDMEYxMUE1OTJGOUY3NDE5RTIwQzZCNThBRkU2RDE2RkJCOTUxOTRDOUQ5MTVFMjNCNgorRDFFMzdDNkU3MTdFQjlDN0U0NEVEOTJBQzY5REFBNTgyQTM1REE4RjFDQzI2NjIxM0E2MTA2MTk2MzgwNTNFNworMUNEREY2RTgyMDVCQTVFQTg0MjQ1QjQ1QUFDRkNBOERBMzhDQTM1NUY3OEY2MUMyMjBFOTgyMUFEQzlFRTAwMworRTc1N0ZDNzhCMTBDN0VENzAyRDc4OTE3NzMzQzc0OTI0OENBQ0MxQjYwNDIwNzAxQkUwNjVGRkI0RjUxMTBFMAorNTBDMkUzNTgzQjg4QjFDNDFFQUUzMzE5QkQ2RTlFQTQxRTAzNTMxMEVCQ0Q1MzYyNTlFMzk2ODk2ODhFQTE0OQorMUE0QTVBNjVFMThENDc1RDM5QjFCQUREM0I3Mjg5RTRFQjhEREJGMDgyRUNGQUMyNENCMjdCMzg1OTczRDNEOAorNkY4MDkwNURFQTY5Q0MwOEQwMURCMDhFMjlBRkRCOTFEQTkzNTZFREJBNjkzNjJBNTc2NTkwNjcwNjUwM0U1MgorMUYwMzBERUUzNEUyNjBBQTBCRTVENkE0QjE4QkI2OTkwOEIxRDQ1NjcxN0VENjVEMjlBMTBCN0UzNjI4NzQyMgorOTdENjQ2RjlBNEIxM0JERkE0OTYwOTJDRTIwOEQ4NTMxN0Q5RTI4NUQ1NzYxREYxQUE5Q0RFOTNFMTRGRUUzNAorRjUyMjk0RkMzMkE2OEY0RkY1N0E1MEZFMjg1QUUxNUJFQUYwRDgyNzVFQ0MwREIwMEZCQzcwNUI0RTZEOEYxMworNzE5MkFCQURGMUU1NkNCNUI0QjVEQ0IwRTgyREExRjUyODlDOTY4QjI3ODgxN0JGRkYyNTdBNUExRDBEMkFDRgorNzEzNDhENTY0N0UyM0MzRkMwOTc1OUIxNUE4NDI1MUREQzVFNjIyRjZENkQzOEJGQ0I4ODA2NDQxMTIyQzA0MgorREM1MzJFRDI3MTg3M0QwOTJGQzk4NDU5NEIyRjEzQzdEMjQ1M0MxMTU3N0U3RjBCNjY4Qzc0RDAyQjQ4RTgwQgorNzE3MTE0NzhCQkMyQjM2QTkzRDZGMUI5RTk1MzdGNzkxODY0QTY5MzI3MDY1N0ZGRDJBQjhERkNDRTMxMEY0NAorOTkzQ0FBMTBFQTQ2MDA0NkI1NTJCMUY5MzQzODBGNTJCMTU2QzM2MDc4OENBNzc3RTE2OTgwNDIxMzkxQkM2RQorNjgwNzEwOUZCOTRCNjBCMDJBQjE5MUVDRjREMEMwMDA4NkNDRTZGRDEwNjZGRURBMjREQ0JBNDJFQTBGNzMyNAorMzUwNzcwMzVDNjVCREMxNzZDRENFMkEzQTVFMEZDMUFBNDVDOThFOUFFRDEwRTU1RUE5QzQ0MjVGQ0RENjhCQgorMjYzODI1NDRDMDJGMTlERTBERTEwQjcwQTM2RDdFRjI1OUVDNTgzMEZENDI4NUI4NDUzQzk2RTRFRERGRTkzRQorODlERTBDQTVGNzQzOThCRDE1QTRCNEUxRjM2OTQwQzg2NTNERjdFQTlDQTA0Mjg5QkZFMjM4Q0UxM0NEQzNGMAorQzcwOEUxMzYyQTU1NEYzNERBNDNGMDJEQkUxMzREMkE0RUQ2NTUzNTNCMzZFQTkzODJDNDQ2QkZBQzM5NjZERgorREYzRUZBOUM4M0VBNENEODAwOUZGODQ3Q0Y2QkI5Q0Q0ODQ2OTkyMzBBQkU4QzJFOUZGMENDMEUyOEM2NTFFRQorRDRCODMwOTIxNUE4OTZEREVGODI4NTg4NDlCNEJBRjQ1MTFCMkIwODY4RTY2REVERDAxM0E1QjY0MjhBM0JDMAorODUyRTEyNTY5OUNFQkNBRUU1NDBEMzNFQ0E5RkU1NEEyRTQ1QTZEQThCM0QwODhBOTMyNDZFMTBGNjcyNkIzNgorMzlGNURDN0E1ODE4QzhENDdDRTk4NzkyNkVGRkUxODdBNTg4MjlBRjhCRjJBMTg3M0QzRUMwNUE0QzlFQTE5RAorQURFODlDRjAxNDBCNEVGQjE0MUY0Rjc5MzMzM0Q3OENDQ0VBMTkyRjE4N0FDRTA0RTY2RjQzNTlDQzQyOEExMgorMjk0REI3MEQ2NjAxNUREN0JBM0FBMUUyMzlCNDI4REZBMzcwMzEyOUZFMzA3MkMxNUVBMDVGMEQ4MTg4NkI4QQorNjUwREU2N0Y1M0FBNzFGQTM3REU1QTJFODA2NUI4M0JBRDkwQjc0OERDRDIzRDVDOEU2NDQyOTUwNkQwNjQ4NgorQTEzMjZEMEQzOEYyRTc3MDlFOUQ2MjQyRDM0MDJDNDkyRkJENkYzRkQ1Rjk4Nzg1NUU0MjUyQzgxNTc4RkYyNQorMDlBQjZEMzA3QzJFRjI4QkYzQ0QyQ0I4OTRFNDM2RjBGNDhDNzhGRjQ5OTZBRjVDRjE3OTZEQUFCNDVBQ0E0NAorNjQwMUYxNTU4M0ZEMTM2NEQ5M0UxNjA4NkJFNkY1RjAyODAxMkJGNDBBRkQyNzI4MzRBNkI2QjgxN0MyMUExMQorRDk0NUFBNjNCNUYxNzUzQTFFOTE1QkYyNzM3QTg5OEY4Njc1MDM5OTgwQzBGRUI2RjQ5RjI3NUJBRUUyMEYwRQorNTBDNkQwQTI3N0E4MTJGQzlFRkMzRDJCOEQ5NUFCQThBQ0M5RUVEOTI1NDI1QzEyOTQ5OTlGOTAzQUI5N0M0MQorQjhEMjRCMzc1OUM0OEUxMEVBREZCNkExMEIwOTRDNkM3NUJBN0VDOEY1QTQxOUY2NTU1NzE0NjlDN0MzNUYxNgorRTMwNUM0QUJEMjdEMjI0RjhERThFRTlDMjlCQTREREYzNTcwNDI1QjNDNEU5QzE1QTU1OTdGNEQ5MDU3N0FCQworMDY1N0ZDRUNEMzc5QTg3QjJCNTQ0NkJGMzdGNTA2NkZDQzY0NDU2NDEyMDVDQUYyRjExODE4NTAzNUVCRDdGMworNDQ3OTA0NzNDOTYzQUE4QTA5QUU0RTYwNTdBOUEwNDM3RUM0MTNBQTdBREQzNkJEQzkwNTg4RDQ1RkU1QTU0NgorOEUwMUZDQkEzMzQxQzFCMDQzQkJCOTI3RTQ2QkQ4ODkxNTQ2NUMwQTU4QjRFRTdDODlGQTM2ODFCNEI0QTVDMAorQzg0NkI4N0ExRTYyMkE0NTUyNkFEM0YwNjE5QUQwOTlBNzU0ODkwNjFDQ0Q5RUM2NEQ3Rjk1NkJDQkZGN0UzOQorNERBQ0ZDNzExMzdBN0NDMEEwOUI3QkJCMjdEMDA1QzQzQUQzMTVBNTU2OEIyNDJCRjE0REQ1NDhDQTI0MkJGRgorMUZFMzc5Q0MyNzcxNjNDQTIyMkE3NTIzQTk4RDcyRjE1QzFCOUE4NzZBRUUwNzc2MUM0QzU5NUYxQjlDNzUwQQorNDdBODM3MDQ1QTFDRkVCNjNBMTkzNDdDREZEMDNGN0NGQTZCNEJBQTVENkFFQkVCRjgzQTkyRjg0OThDMTcxOQorQzhBMTVDMDdEQkRGMzc5MkU0QjcwQjBEQjJBMzZBQ0VDMDEyMDEyMTM0ODcyNzNGRkM4MjFEMUNCMTk1OERCOQorQjVEQTE4ODM1NUEzN0EwNjcwMEQxQjk2NjJFODBFRjNFRjY0NzE5ODNGMDdBODQ4MDBGNDJBQTQzQjUxQjkyRAorODg3RTkwNzk3OEExNkJCNzY5MjNCMUIwRjMxMDhBMjQxMERFNkY3RUZEMEYzNEExQUMyQUNFRTc5NjVCRDJBQQorODc4OTBCRkFCNjYzNDM2MEM5RDBGRDI3RkY2QTJGRTk5MEU5QkJCRDM0QjRCMTQ2NUU5RUEyMUEyOUYzQUVBMworREVDNjA3QTEyMDE3RDFCQzJCNTlBQjgxMzlDNkYzQzkyMjU5NDk4NkVFODI1NzlCQjdCNzQzOTBBNTUyNDMxMQorRTYzRUNGQjBBRURCQzg0MzhDRkExNzk1QjNGRUZFQTJCMDYxRDc5Njk4NkY1NjlBODhCMUQzMEIyNzM3MEE5MQorRTYxNjgyOEYzQzIwMDJEOEYyNjkzMTQ4NEFEMkZGMDRDRTgxNjM3MDI0MTQwQjVFNjQ2NzVEMEVDMUI2RUIwOQorMDIzNkFGNUEyNTVDQzNERDQxQTY0MjZDQzcxMzI3QzU5MUUyRTlDOUVFMzQ2NEE2MDc4RjREQTlFRDUyNERCQQorNTJGNTU0NERFQTc1QjA5Q0I5N0ZCNDE1NDE0MEFEOEFGNUNEMUJDMTMxRUY1M0VCMjAyRjc3MjFFNEFEQzk3OQorN0YyNEI5RDgzMzAxRDI0MzQxMzA5NjZBMjAwQTE1RTlGMkUzMzdDQkY2QzE3MDExMEI5RTFCMEZBQUMzQTkwOQorNTJGRUU0MzM0MzI4M0EzRUZENjkyRkU5OUIyM0YwODg2NjJBNjVFQ0YzRTM4RDY3QjE3MjYwODU3RDY2REMzMgorMjRBMjZBMzAyOEJGMjk1RTlFRUJFNjVFRTIwNThEMkVFNDZEMTZDMzlENjU5NTEzQjVBQkUwQjAwQUEyNTcwRAorOEMyOUMwOTNEMzkzOTdFNDNBQzZEODZGNDkwQjU1MjY5MjMyNTFFOTA3QTMwRDMzQkQ2RjQ2NDlFQ0UxMzQwMworQUU5QkMwRkNGQTBCNDhBNjYxQzJDOUY1RTI2OUZEODg3MkQ0MUQ3Rjg0MEUxRTFEMjlGRDRDNjZCMEZCOUFBOQorN0U3MUJGNjg1QkZGRUZCQTczQjEzQ0Q4NEI4OUFBOUVBM0Q4RDdCOUJCRjc1ODRDQzEyOEY4N0UyNjY4NUMyRAorMDIwNkE1QURGRUU0MzMzMEE5Mjg2NjA2RjkxMTUwRUI2NDQzQUM5MzY2QUYwMDZCMTgwNjI2NTFFNzk0ODZEQQorNThFOTVCRjgwRDFCMDUyNTI5MEIzOEYzNUM3RUQzQjdFOTk0ODE0MTc5RkI2OTRGNTI3Njg1RkQ1QkJEMDRGNworRTdFMTQ5QTM1M0JBNDVFNzQ3RTQxQTkyRkEwNzdCMUYzNzA0NjdGNThCQjE2NzE1QzNBNzg3MTlBRjJGODU5NgorMjEyMENBQ0NBM0E3NDc4Q0NGQzA0QUE3MzhEQkZGMzA5QThGOEY2ODM4MzRDNTA5QjhGMDQ0NUUxMTEyQUQ4NgorNjU0Q0FCRUI1MzUyMzdEQjJCQzgwMUVCQjIxNEIwNDI5RDdCMDEyNTM5QUNFNTVFNEVDQjlFNUY5N0I1Rjc1NgorOUNGNjY3REIyOEZDREM2MTcyQ0EyMzgxRjNCOUQwQzNBMkI4MTZDQzE3NkIyRjBDQ0JCQzYzQzk0NTJDRjNBOQorRDk5QzZCQzk3OUEzMURCODIyQTEwODE3QTI2RkFDMEE4RTFENzFBNUE5MjQ1RDY5OUNGQUIyNEZBNENEQ0M3RQorMUZCMDU0OTUyOTQ0M0NEODBENkE0RTNDOTcxM0U2RTNFOTZEM0E1MTIwODExNDg2MTE5RDUyN0FBRkJGODBDNQorRTYwRDU3RkJBOTBCNENBODZBMDMzN0I2Q0E4OUUxNDNBQUYxRTBFMkIzNUM1OEM2NjNDRUI4MUI1MjZDNjc1MworQTM0M0U3OTQ2MENDOTNFNEJGNzA5QzlEQzhEMDdGRDIxOEY2RDkwMkIxMUU3OURCRDgwQjJBMERDOTJGMzExQgorMjM0OTE5NTJDMDJFQTRBNDY4OEIxODJDOEVEMThENzNGQzUwQ0I1MUJGNUY0RTEzNjY4OTg2RDVBNEY5NDM2MQorODY0M0U0NDk4ODMxMTgyQjY1MDQyOEYzNUVDQjEyMkNBMDA1QkMyNUFDMzdERjI1NEUxRThGNEFFRTc1NjUyMQorQ0NGMUE5MkNEOEIzQkVFMTc2RjcyMDEzQTMwQ0NGNEI3QjdBOENDQUY2NjJFMTREQzBFNjJDMkY2QUM5MkM3NgorNDEwNEQxNEYxQUM3RkRFQjk2OTU0NkE3MzYwQTRCREU0NDM4RTlBNTczNDZFNkUyNjVCMDI0NjJGMjAzNTI0NQorOEVDRjRBQUQ1RDIwODYwREZGNTFBOUEwNzk4NkFDNUQzQ0Q4NTA5MzRCQUI3MTRCQUVBQkZFNTVFQUJFRDAxRgorMjA5NjlDRkJDQjcyODlEMEI5RDc2RDY4RUY3MUUxNzQyMzVBOTBDQzc1Nzg4NTNGMkQ3RDVFMEIxNTgyRTAzQworQzc0QjJBNDg4M0U2QUE2NTRFODUxMUI3MDI0QTFGRDNFMkI2MTc5OURBMTI2MjE3Q0VCMDExQjEwRDdENkMxMQorQzBCRjE1RTU0MzBDQzdCQTdFMDU4RjlGMjZEMkEzNzU0ODU3MTk0RDBGM0ZEQzEyNjRCQkNGNzFGNzkwMzNBOQorQkNCQjc0OERFREQ4NDY4NTU4OEE0OUI0RUE0MTUzMkY4MjBBNzU3MUI1OTE4Mjg4M0NDMTk4QTE0Nzg0NkI2OQorMjMzRDE1Q0Y0QjU0OUQ2QjI0NUU3NTZDMDNBMkJGRDYxNTYzMkJCM0YyOTc3NjkwNzRGQ0I2MEZGNjA0RDk0RQorRDEyQkY4RDEzOTczNjVGRDk4MTYyQjZEQzcyOUFFODdFNDhFM0E2NTk0NjlERTQ4OURGNDFEMTBEOTMwQUU0RAorQTk1MTc2NjYwMDc4QzZFOTJCMDQ4NEQ5OTMxN0Q2REJGRDlGNTdEMkY4NzkwQzVGMjFBQUJDRUUxQ0EzMkU4MgorRUQ4NTI4QjRCRTdDMEIzNkMwMTY2NDU3RDFFQzRBRDExQUFEQ0U5QTJCOTNERjdBNTU2MzAwODM1RDI0RkREOQorODcxODAxNzc2MUU2ODgxNDMwMTlDM0NBMTJCODI0QUU0MzJBQzMwMjBDQzhGMzNFQjE5ODE4NzU2RDg5RTZBRQorQUZDQTFCMjk3RERBRDRBNDRDMTE0NEI0N0M3NUYyQjhBQzk2NzNFQTMyODQwRTQ0Q0JBMzg3MjA5MzhCMEZFNworRkFFMjM5MzgxM0JDNDUxQzYxOUE1RUFDMzA5NDFFRkYyNkQzNTBBMkREOEQ4QzJGMjBFRjI1NjEzNDdGNjNENworMDA2MzY2MzE3NEUwQkZBOTQ0MkMxRTMwNUQ4NjdBQjNCMDREQ0VFRTRFQjAyMjJEOTY5RDAxMTM2MzBBMzg5QgorOUUwRUQwQUJFMUFCOTQxRUU0Njg3NTBBNzNBNDUwQzEzQTdBOTE4MEY4NUZGOEVGQjRDMDdENDg0Q0E4NjIzOQorNDhDRjhEQ0IzQkJGMzRBNzM2MTQzQzc2QTY4RkQ2MUJBMDBFRTBFRTI2RTI3OTAwOUFBQkNCNkI4OUUxNzY3MgorNDZBNkI0MzBDQTQxOTA1RTZBQjFDMDcxNzY4MTdGQUQxNTRDQjJDMzg3RkJGQUVFNDg1NzM2NTcxM0RCRkRDOAorNjAxREU3QTA4N0U4ODJDNDc3MEFDQkJCQUU3NTMwNTBBNTA1NjQ0RUE2ODNENUY5ODQ1RjlFNjA1QTc5RDI3MworNTRCNUE1MjgxQjA0NEFBRUY4NTY3QTgwNTNGNjRDMzIzMjY0RjFGQ0ExMjAyNDMxODVEMUIxQjNBMTM4OUJFRQorOTNERTRDQTY0RTg3QzNFMTg5QTlEQzI3QTk3RTkxNzZDNjE1QTIxMDNGMkUxNjAwNTUxNkQ1MTRFOUZGNjJCNQorQjdEN0Y0MDc4MEM1NzVDQjlCNjJGMUQyMUVDMjdBNTAwOTNBRjJFMzM5NTlCNUQxNDYyMEFBNkE1M0I0NDU0NgorODg0MzBGQjc3QTE2MjY2MUU2NzRGMTVDRTAzQkRGNjg1RUQyNDBEMDE3RUM0QjJGRTYwNEI1Rjc3RjgxNEZEQworQjc4NEZGRTA4QzIwRDYwMERBOUM5RUFDMzAxMTM0RkVERjc1NTQ4NzM4MzYxRDVBQTM0MTkyOTYyN0Q3ODYyMworREJBOTBEMjhBREFDRUZGM0RDRURCRkFEQjY5MjFBQzc0QzU1NzIzMjQwNkRGQTRERkRGNzdFQ0RDOEUzMkVCOAorRjI4NDJENjlBOEY2MkRERTc4NUU1MjNCN0NGREMyQjY3QzVGNDk3M0QxOERFMENFRDk1QzgzRDY5N0M4RDMwMQorQzRCMTdGREYyN0IwMjVFMjkwNTkxNkE3RUMyOUQwNEQyNDM3N0RBREVBNzMzQjkwNzIzOTBDRDQwOEY5REQ4MgorMTg4QjBEMEFDNjU4Mzc5NzRENDEyRjAxOUVDRDIzQjA2Q0I5QjVCRTFDQ0MxRDAyRTUyQjc0NkU4ODY2RUY4MQorNUU0MTNFRDlFNzgwMkVENEY4M0Q5NTE0RTE0NTMyREU2NkVBNDc4MUExQUI2MzlCNTkyQkM0NUUwMUYxQkQ4RAorNTdCMDRGODQ2MjAzQzdEQjMwN0IwRUFCRTA1REI3QTlENDZFN0E3QUU4RjQ3OUY2N0ZGMkZGNzIwODA3MDczRgorNzc4QTcyOTEyQTQ0OTRDQzVERjk5QTkzNTRGQzE1RDM1NzYyQTRENjE4MjkwRTA3QkUzREQxNUZFRjU3QjY0OAorNDY5REVCNkY2OEVFNENDRUUzODNFNkRCQ0FFMzgzREYzNkJFREE5ODNENjRGOTZGODMzMUQ0RjE4QzY3NkFEQgorQjkwQUY4RkZFNjVEQzlERDcyNTYyOTVGM0RDODZCMTIyNDc0N0Q3RjUxMkYyRTcwRURCQkQ1MDhBN0I5NTU3MgorNTdEQ0ZEODdFOUQxMUU2Qzc1QTEyOENFNkU0MzI1NjQ5MkVDNzA2RjkxODM1M0FFMTUxQkQwQTk4RjlGNjFFMAorODk2M0MwQkQzNUJEQjVCNzc5QjQxNTlGOUY0MTYyMDRBNDlBQTdBQjNFQjA3OTJCNjhGNzZGNTIwMkE1NTcwRQorQkRCMzdCRTAyMTdFMDIwNDlGMkVCMzJENzhFQ0JBMzg4Nzc3REIwOTA4QkFBQzkzODczMTkzMjNDNUQ3NzBFOAorNDJFM0E0NDBDQkY2MURBMjA0MDQyQzgxREYwOUExOUEzQUUyQjNGRTBCMDU0Njc2QkRCRTA2MDk4MUVBNDNEQgorNzBEMUI0REFCMkVFQTdGNTdFMEI1QjI1ODQ0MUZFRDg2NDhEQzc2QzlENDVCQzczRjQ0NjhGNkQ3NEMyMjAyRgorNkU3QkE2MjI3MTRDRDQyQzFCQTBDNDMyRENDMTJDRjg4QkVGN0UxM0VBMjA3MkQxQTZERTI4OUQwREE3QTE3MgorRTcxQjQxQkExNTE3QTIxMjQ5MEI1MjNDOTgxMEYwMDAyOEMyNkU3MjU3NjRFNzRDNTA0NUJGRThDNzcxNjA5RAorMzlFRjY2MkNDMUFDOTNCN0MyN0MwN0I2Qzc0NzY1RjU0MzBFNDJEMDk1MUI3MTUyMjEyQzdEMTk2MzZGQTFFMQorNzI0Mzc0OTYyOTM3RTFGOEYxRUI2QUIzQzIyQzRCRTRGRjA3OEQwRTgwNkU0NDdCRjU5NjUzOUFBODNGRDNDMworOEZCQzE0M0I3QUI3NTNBNTMzMDRCQTk5QTlFREQyNTIxMTRDMzZGNzRGN0VCQTZEQjVCQTVGOTQwMTQzNDU5NAorOTA3MjNGRURENEY0Q0U1QUQyMTk3RDE1QTU4QzlCRUVGRDUzQjE1OTcwRTlCMEQzOEJFQjJGMUQ4NkQxMDJBRgorQ0I2RUQ2ODE2QjYzQkNDNjc5RDQxQTVCRDJCREVBMzcwQ0NGMUIyQkFERTdEQTEzMUMzRjUyMkFCQjRCQjc4NAorN0QyQzJFQ0RGQ0Q0NTk5RERCM0Y1Njg3MTk2NEM3OEY5QjcyOEVCQTk4MTQwNUFFRDVBQzU4MzUxMjBGOUUwNQorOTY4QUNCODFCQTQ4MkY5QjE0RjAzQzM0Nzk3RUEyRkM5NUZDM0FCRTdDQjRCMjg2N0M4RkExNTE3OTU1MDFDMQorRTVDQzZFQTA5MjAzQTEzRkUxNUFFNTIyOTBENkU1MURFOTI2OUNBQkZBQzUyQzk4MjQzNkE0MTQzODJCMjNCNworMjk4REE4RDhGMTg5ODJFQjczQzgwOENGNkEzQkI3NjRGMkU2NTUwOEQ0M0U5QURDNDE4RjY5NUMwNzY1MkE5MAorREM1NENDQjk2NkE5QUQ4ODg1NDk1MzcyRjQ0RTFCQjdFNzQwMDUzOTU2ODk5OTc3RERGNDMwNkEyRDY2MTAxRgorNDc4RkE2NkU5NDU4MzZFMzcwMDA3Qzc2Rjc4RTY0MjM2REQ4NTQ4QkEwQUJBQUY3NjVBNjdGREMyMDkyRUExNAorNUZEQTgxMjQ1RjcxNjM4RDVFMUZEQTJGRTE2MUQxNDc0QzA1QjY4RUJDMEQxRDJEMjBFMTM3RTEwMjdDRjVBMQorMkQyODQzMTU0ODExM0VCMTc0RTM5RUJFOEU5MUQzRkI4QzhBQ0FBNDQ2NjZERkE0RDdBRUU4N0M2MkMwREE0MQorOEIzRDIwRUNEQkU0Nzg5OTJGNDZBQzI1RTUxOTVFNjZFRTAyNDk1M0EzODREMkUxMzVEQzFGRTFDMEYxNTZDMAorRTdFNTFBQTg5MkIzMThBNjY5RTA1QUY2OEMwQTA0QjFBQTc4NDFEMThEMEJERkUwQTZGQzI4MkFGNzk1NTlFRQorMjZFRkQ2OEY1NENFMTdFOTRFM0FEOTM2RjZDMkM0N0I5Nzk3QTE5NTVENTdDNkQyQjRDMDdBMjRCOTNGRTg3MgorRDM5RTlBQ0ExNjdEOTRGNzQ3OTdBRTc2N0EzNzg0NDgwNUMyMTA2MTAxRTY0NUIwOTI5OUU1NUUwNDZBRjVFMQorMjY4MDNEQzc3QzAwMzAyODY4NzNGRjlFMDkyNDY0M0E0RUM1RkIyMTk3RTM0MTRGRTdDRTlDM0Y3NzdFREUzMgorQTk3MTQ3OEJGRDRFRUQxQzVCQTY0RUY4RDRFQjlENTQxREJGQzVGNUZGRDYxODNENjFFMjA0MUFFOTdGMDc1RAorMjcyMkU0NzQzMTYyM0VGNjYwQUQ5OEZBMEE1MUY0RkZCNDkxQTdCMDYxRkRDNDlDQjYyMzYxRkM4NDRDNEU1QworM0M3MTFERjZCMEZGN0YzNzM5OEQzRUJGMDg1MTMwMjkzQUMyQUI0Q0U0OTk3NzhEM0Y5RjU3Mzk3OEE1OTE4MworOUU4NzQ0QTRFNTZBNUY4MjI5NzVFMjNDQkVCMTE3M0M4RDRFNjVCRUMxNkQzNTQxMDEyNDQ3RjhFMTFDRUUwMQorRTBEOTkwODBCNTQ4MDM4QkIxREFCNzQ4QUNFNjUxNjdBN0FCODA4MzZCRDlFOTc1QzhENTRFNjE2MjlGMEM0RgorMkI1QzlFQzQ0RDFFMzNFOUFGQ0YxOEZDRUQzMkVEMkZGMDVENTdDM0YwQ0Q4MzI5NzdBRjg1MzI5NUVGMDdGQgorRkFDNEIxMUI2QTdGQ0ZFQkIxN0M4MTY2OTJCQUQxQjg5OTM2MkRFRUE3QTVDN0I5RUFFMTI4OTY5OTcyMkY0QgorOTM3Q0U5NDZDNDgwNzI5NkFFNUI2RDI2QURCM0ZGRDIyNDEzRkQ5RDVFNDhBODkxQUJBOUVEMzBGRDA0NjZDMAorMDFBMUE3MEM3QjQ3M0U5MTUwRUY5MTZFRkUxMEJGNDk3MjI3N0YzMDZCQzJCMTU3RjM3QTdDQTc3RDg3QjI3QgorMzA0OTU1RkQ1MzQ5OUM4N0U2QTdCOTM5RkM5RDBFOEZCNDcxM0E0NEVDQzZCMkUwODNFMjJGODkyRUQ3MkQyQgorOERGNjQ1OTlCMDZFMDM2QjlGM0RCNTQzN0REQTUwQTJENTMwNTNDRUYwMEUzMThBQUM4ODVDMkJCOUQ1MDI0NworQ0I0QjJGRTEwNjYyQjk1RUU2QUQ2QUJERDFCN0NCN0Q2QkMwQUYyMUE5QkQ1NzlFQTAxNzBFQUY0OTY2QjdCMAorREFENjJCNUU3ODgyNjExMzEyQzcwMDM1NzEzNzI0NDgyM0NBREIxM0MyQzIxMDlFN0VBMDk4REMyQ0E2NjBGNworQUVGMzFGRTAyQkQwQ0FGOTc3Mzc5ODk0QjU4NEJCRkJEMEM2RTcxNEQyQTIyNjQ5REUxOEM3NTQ4RjA1NjlCMQorRDYxODg2NjExMDc0QkJCQ0IyNUIxRkVGQTFFMUMzNEY5QTRDQzQxMTQ0QzBCNTEwQjJFRjVDRjVCMTY4RTZFMworQjg2RkI5MTQ3MzVGMEQ0MUQyRkJERjNGM0IzODcwNDlCMTgxN0ZEMzc3QjMzQThCMUFFNjU2RUZEMTU4M0U4MgorQzM3Nzg1MTY4Q0RBOUVBNzVCREEyRkZDRTFCRjg4QjIwN0JEQTc4MDg0QTIzQUQ1MzQxRTZENDRCMDg5Qjg2MQorQ0Q2RTVDODhBNDgwQjlDOUU5MzQ3MkE0MjdBNTYwODhCODhFQUE4OUY5Q0E2MkIwNkM3OTY5NjQ1QjMzRDVEMQorQzhDOTAxNEI5MzdFQzk0Qjg2ODE5NUFDQTAzQzhENDcwODdEMDcyMzI1NTA0MjExMEFFNEI1QTUxQ0NEMUJBRQorNjE2NkYyQkM2QTRDQkVBRjM5NEQyQ0FEOUYxQzI0MkU4NDM0NzcxQjYwQTJCRDU0QkFFRjI3OUYyQ0YyRDlBMgorM0FFOUFGNzFBNTg0RDdDNzg2QTNDNTczQkNGNTRBQUIxNDQ4NkZBMDQ2OEQ1Q0ExOUJFQzdERTAwQzI0M0ZGRAorQTdCRUVBQkY0N0RFRDQyRURGRTdGMjkzQjAyMEY3MTI4Q0MxNDgyRjc4M0Q2NDAzMjQ5MUJDMjhFOTJDMEYzQworMEYwQUI4RjQyREJCQUY2RDQxMkMxODZGNTRENkExMDExODQ1MDA1NzkyQkY3MjBERUI2MjBERjgwRTg0ODExNgorQUYzQzU4RjQ4NzQ3QTdCOTJENDVBMUMyODlDREUzQTUyNTM1OTM4NERBNjcyNDRGMjc0RDgyQzdGOEY2NEM0OQorQTFDN0E0ODY0QzhCODUxN0JGMDc5RERCOUVDMEU3Mjk0QUU0NUNBMTA3NUE2MUZEQTY3NTFEQkEyMjhDODg1NAorOUQ3QkJGRUE1MkRCNDA5NkJDRUVFMTJFQ0ZDMzE2MDFDMTMxNDNDMkNENjc3Rjk0RjA0RTdBQ0FDQzFCRUI0MAorNDMxQzdDQjU5REU3NDZCRDY2NkI0OEI3OTY2N0M1MkQwRUJGNDAxODdFQTIyRkUxNTA4OEVGMjAyNTI1OEEzQworN0VEREIxOTJBNkMzRkQ5RTM0QTI1RDlBOEExRDEzMTk1NzkxRTIxMTc0NDI3QzRFRkVBRjlDMEVFMEZDRDYyRgorNTdCRkNGRDk4QTQ3QjM0NzE4MTIzQTJDRjA1NDMwQTNCREVCNUE5NTc3Q0EzMjRGREM3Mjk2NURFMUVFQjlFNworNzg5QTE0NTBBNEI3QjRFNURDRjE2MDM4MkNFMkY0QUE4NUUyQzkzRkNBMDI5QkZEQzEzQzcwQjgyNDE1QTJEOAorNzhGQjE1OTE4QzNBNDREREFBMUY2ODE4Q0NFMjMzMzQ3RjIwMEQ5QkVGQTE3QzY4NTJFMzZFNEExREVFNTc4RQorQjdGMDFFMjc1QjE1QTFBNDc3RTFEN0M2OTQ5NzhCNDI5QTA0RkRBMEQ0RkQzMkUwNUJFM0QxNENFRTI5N0M2MQorODI5RkZGOEJEMDdEQkYxMzc3REM0NEQ3NDQzNkRGQzMxRTRGMERCQ0M5OEJGQzMxQTVENTlFNTlBQ0NFRkI5OAorNUY3NkI5RkFFNEJDQTRBNTI4Qjk3NTFCMzU5QkJENjkwQkMyQjNGRTRGODc5MDQ3RjNDRDkwMjdFNzc5RTM2RQorNzk3NUE4QzU5QTkwODM0QzdFRUVDQjcyMkNDQzczQjU0NjhDMzNDODY0MEMxN0RCNDM0MUU3Mjc2N0Y1NUJCOQorRTRDNkREQ0I5M0FGRUJFNkQ5MjBEODgwRDBBRjAzODMxOTgyOTkwNzJDRjBCQkM3NUQwQjlGQkY5N0YwNjk4NAorNERENjdFREExODVEREU3MTBBQ0M5MDA0RTgxN0MzNTc4QkQ0NjYxQjlBMjhGQUVBNjJEQTE2QzE3MEY2MUQ2RgorQjk4MUZEQkQ4NEQ3QUM5NjAzQzVCNkYzREFFMkU0OTIzMTRCRjIxNUFGQTRGRjc0QTRBNEVCQzUxNUE3NTFCMworNTRGQ0U0QTEyMzVDRUZGMTgzMEJDMERENjczMEE4RTc4MjREMzJBOTNGREIyMUM1RUE3NUVFN0ZEQkMzOUZCOQorNEYwRjAzMTU3QUQ4QjBBODRGNjdDRTlFRUU4MTQ3MjUzQjhFN0M1MDdBQTFGRUE3QTdERUJGRDUxNzVBNUNCOQorNTlCQjQzRDUxREJBOTg5Qjg5NzMyNDc3OUY5ODRCNDE2NjgzMDlEM0U4NTlBMjk2M0U4Q0I2RjAwQkVFMDlGRQorQ0VEMTQ1Q0NBMEIyRjlFN0NBRDMwRTkzRTFFMzUwQzE2RDgyNTdEOUIzM0M3MjFFQTE2MzE3MzhCMDAzREYzQgorMkFBRDk3RkREQTMwRjgzMEVDQTVGMjRDODE1QjkxQkQ3QjkwREJFREI2QzE1OEJBOUE1QTRGMjVDNEFEMjM3OQorMDg2RERGQ0RCMjFCQzY0NDcwN0RFOUMwNTk4NjFFNTIzRkZCMERBMjIzQTlDMjhEOTg0QjYyMzVCRkFERkJCOQorRDVDRDQyQ0Q4NERFQTY5RTBBOTMyMDNBMUVDQUUxMjA3Q0UzMEIzQ0YwQjc1QkIwODBFMzQyRUFFNDEzNzhBRAorQzZDRjhFNkYzNTE1ODBFNTc5Njc5REI1QTY5RDhFQzVGQTRBNUVBNTkyQkY4MEQ1RkE4MTk0QTNDMjMzNTRENworQzk3OEE0MTQ2RTYxNUI0QjIxNDM3RUVFRUIzRjZGODE3QTVCMzI3MjVCMUY0QkM5RDQwNTNEQkYwMTg3MUQ5OAorMTQwOUQ3OTU4QURENDQ2QzQzNjc0RjQzOENENUI3QTFGNDI5MjZCQUE2RjUzREU1QkQzQkVFNUNBOURDMTlDNworNDI1MDk1QzJDQzAwMEJERkIzOTk1RkIzMjAyN0MyREUyNEZCRTc0N0M0OTEyNDVFRUNCMjA1MkREMEUxQ0NBRQorQUE2RDJCREU0MTJBNkY4MTRDNjcwNUZGOEY5NENBODgyQ0E3OTM4N0E2REU0ODBBQkRFREREN0M0NDk4NkFBNAorNTNFRTFGNDQ1OUY2OEE5NzY5MjY2ODA4ODk0REYxMkE5N0JFQzE5MTBCMDdEODY0NjM0ODRBNjIzQzE5MTc3MgorMkY3Q0VDMjlFNTU5NTgyNkZFRThDMjMyNUFFRUMzN0EyN0JDOTc5RDZGMzA0MUQ5MDZFRTM1MEY0MkYwNkI0MAorMDRGRjQ0MjA0QzI0MEZFRDM0QUY2NTc1QkNFMkY4NkU4NTZEOUJCNzcwQTA3NDE5RjMxRTVBRTBGOTQxODA5RQorMzQ2MDc4REJEMDBBQzU3OTZBRjgxNTkwODc1MTQ3NTQzRjgxNEFFQ0MxNEFBQ0M3OTc1QkRFMDExRUFCNThEMgorRjU5MjQ2QTM2MjhBMTAwMjc3OUI2RjYxNzg1MUY0REUyRURGNTREMjZEMjU0NUM4OUIzOTdDMEZCNkVDMTZEQworMEE1M0JGMTQ1NkRBRURGMkIyODM1ODExNTg3MTZCNzA2OTk4RDUzRTA4RkRBNzBFQzBFNDVBMTMxREYwMEVDNworQUU5ODk2MjhEREE0QTEyM0JDRjhEODMzRDA4RERCOTdFMDk1RERCREYzMTVFNzUwOEI3NDJFRjkwMENBQTQxNQorMDZERjM0NDg1MzJDNjk0QUIwNEI4QjhBMzUyNjg0MDk3OEEyRDNEMzc4QkE2ODk1Mzk4MkJBNkQ4QTFGNUY1OAorRjQyQzQyMEM4RjQzNzQzMTgzNzJFOUY4OENGMkQ0MUU3OUIyQkY4RDk0QUNFQzYyODE3M0JGRENFNzMzQjI3QgorRTlBNzQ0QUQ1QjJBNjA2QzA0OTQxMTAzMDNGOUM2QUYzMkMxMzAzNTY1MDM4OTg4MzlBOEI4OTdCQjkzOUNENQorMDNENUU1OThFRTZERjgzOUJBQUUxM0IzRjE4QjA5MzIwMkIxODVBNDI3ODdEOTBEQUU5NzU5MjQ4RDFGRjlBQgorOUUwQTkxQkU5NDNFQjc2MjcwRjg3RDcwOEU1MEQ2QkRBNjQ1M0M5RTA1MEI3MzlCMjA3OUNFQkJFNTE4ODNFQQorOEMyQUY3NDBCREYzREVGMjA4MzVGOTc3Mzc1NTZEMTU4NDVCNzU3NUZFMTIwMThENUMzMzRFOERDMjkzNkFCMgorODk2ODRCRTc2QTY2RDBCN0NCNEE0QkY0NTUwQTc2NDIyOTI3MjVCM0IwMEY0NEEyNUJEQ0Q2OTVDNzNGMkU1RAorMEJCQzZCODJBNUFDM0U0MjlBOTY3RDlBQkFDM0JDODEzMTZDREFEQTVCMTRDQzQxNUExRjIwMkQ5OTgzQjRFNAorMTcxNDgyRTMwNDI5NzkzQTZFODNCQzY1NkY1MThBRkM3MzU5QzI0OQorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorY2xlYXJ0b21hcmsKKyUlRW5kRm9udCAKKyUlQmVnaW5Gb250OiBDTVNTMTAKKyUhUFMtQWRvYmVGb250LTEuMTogQ01TUzEwIDEuMAorJSVDcmVhdGlvbkRhdGU6IDE5OTEgQXVnIDIwIDE3OjMzOjM0CislIENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKzExIGRpY3QgYmVnaW4KKy9Gb250SW5mbyA3IGRpY3QgZHVwIGJlZ2luCisvdmVyc2lvbiAoMS4wKSByZWFkb25seSBkZWYKKy9Ob3RpY2UgKENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZCkgcmVhZG9ubHkgZGVmCisvRnVsbE5hbWUgKENNU1MxMCkgcmVhZG9ubHkgZGVmCisvRmFtaWx5TmFtZSAoQ29tcHV0ZXIgTW9kZXJuKSByZWFkb25seSBkZWYKKy9XZWlnaHQgKE1lZGl1bSkgcmVhZG9ubHkgZGVmCisvSXRhbGljQW5nbGUgMCBkZWYKKy9pc0ZpeGVkUGl0Y2ggZmFsc2UgZGVmCitlbmQgcmVhZG9ubHkgZGVmCisvRm9udE5hbWUgL0NNU1MxMCBkZWYKKy9QYWludFR5cGUgMCBkZWYKKy9Gb250VHlwZSAxIGRlZgorL0ZvbnRNYXRyaXggWzAuMDAxIDAgMCAwLjAwMSAwIDBdIHJlYWRvbmx5IGRlZgorL0VuY29kaW5nIDI1NiBhcnJheQorMCAxIDI1NSB7MSBpbmRleCBleGNoIC8ubm90ZGVmIHB1dH0gZm9yCitkdXAgMCAvLm5vdGRlZiBwdXQKK3JlYWRvbmx5IGRlZgorL0ZvbnRCQm94ey02MSAtMjUwIDk5OSA3NTl9cmVhZG9ubHkgZGVmCisvVW5pcXVlSUQgNTAwMDgwMyBkZWYKK2N1cnJlbnRkaWN0IGVuZAorY3VycmVudGZpbGUgZWV4ZWMKK0Q5RDY2RjYzM0I4NDZBOTdCNjg2QTk3RTQ1QTNEMEFBMDUyQTAxNDI2N0I3OTA0RUIzQzBEM0JEMEI4M0Q4OTEKKzAxNkNBNkNBNEI3MTJBREVCMjU4RkFBQjlBMTMwRUU2MDVFNjFGNzdGQzFCNzM4QUJDN0M1MUNENDZFRjgxNzEKKzkwOThENUZFRTY3NjYwRTY5QTdBQjkxQjU4RjI5QTRENzlFNTcwMjJGNzgzRUIwRkJCQjZENEY0RUMzNTAxNEYKK0QyREVDQkE5OTQ1OUE0QzU5REYwQzZFQkExNTAyODQ0NTRFNzA3REMyMTAwQzE1Qjc2QjRDMTlCODQzNjM3NTgKKzQ2OUE2QzU1ODc4NUIyMjYzMzIxNTIxMDk4NzFBOTg4MzQ4N0RENzcxMDk0OTIwNEREQ0Y4MzdFNkE4NzA4QjgKKzJCREJGMTZGQkM3NTEyRkFBMzA4QTA5M0ZFNUNGNzE1OEYxMTYzQkRDRUVBODg4RDA3QjQzOURCRDRFOEI0QzkKK0QxOThDMDM4NzRCNUU2RjhGQkY0OTIyMDY1QTkyQkMzRTY2RDA1REU1Mzk3MUNCMTQyNDUxMEU4OTI0NDI4NTgKK0Q2OUNFMUY3NkU0REE3NkM4N0M3NjNBNEIyRkUzNjMyMUU1NEIxMzI4QzkxNTVCOEVENjM2MTg1NUExNTE3MjMKKzMzODZBRUEzRDA0MkI4RDg5QzhDMEU5QTMzRTVERjNCNDY2RjdCQjhDMkM4QTRFRDRDREFGRjU1RkM2RDNFRTYKKzBBRjJDRUJGQzFBQzNBNkU2NjkyRjhCQjgxRjgyRDg2QkFFODUwMTZBRDYyRkNCMDU0NjcwODJDMkU1QUQzNDgKKzQ0RDE0MzlDMkI1OUY2NTU5MEU1N0NBMERFNDgxQTdBMzRFNzk5MzFCMTUxM0M0QzMwMTU2MTcwNDA5QTRCQjgKKzQ2RDQxMkQxREFGODhBRDMwNzIyRjEyREJDQTFDQ0M2QjRCQ0MyOEQwNkIwRDI5MTQ5RERFQzUyMEM4RkJBMTMKKzZCODJFMkUxNzkwRjAwQjIxNjI4MkZGMTIyRUYwRDQ3QjcwQTFCMjk1MTREREY3QzA0MzVFRDIzOEMxNEJERjUKKzZEQTI0MzExN0ZCRUY3Mzk4Rjk3RUI5NTU5NzcwN0VENjNDNjc5N0VCQTFCNDZFQTE5QUJCMURBQkRBMTcxQjMKKzE2Q0Q1MDBGNUQ2NENCRkJFNEY5Q0JDM0U2NkEzNDQyN0QzQzREMEM0MzI3MTAyODkzODFGOUJGRDkxQjRGRjQKKzFFM0E4OTZDM0VFQTJGMzEwNUMyMTg4NzdENkMwQzZCNzYzNzYwRkEzNjREMDAwNjVFMUNBRTlEQ0I1Njc2RUQKKzI4NkE5RUQwRDFDOTQ2RENBNkEyQTY3MEVFMDkzNkZCNDcwNkNDNjJFMjM0Q0ZFRUQzNEFBNjE1QzQ4RDI4NzIKK0EwODdGMzA5OTBDODVFNjRCQTY4RjNENUMxMTcxMjM0NjdEQjQxMUM5RjJENkY2ODU4Q0M3MEMxRTM1MkM0NzcKKzcxMzA5NzMyMUI0QzRGRDRDNUNERTMwNTQxNUY5OThFNzI0NTkwOEVFREU2RTA1NkE3MzZFQTc3QkQ4QzYzOUMKKzNBNzlGRkQwQjc0QjNEMjhGMDQ5NEExMTVGMjg0MUNGOEE4ODI3QUI1NjA4Rjk2RkQ4OTk4QTVGNDBGQjNERkUKKzNBQTBDNzY5NkRFNEUxRDE4REMwRDZFODRCOTQzMTc1RkMzOEZGQzQyQTlDMENCQjEzQTkwODk3OEM5OEJGRTUKKzAzNEY4ODQ4MEYzMkI5REVCMkZEMjI4RkY2Q0IwQjg5QjA0NUFCMDIwMjBDODJFM0Y1NzE2REM2NDA2MTMxODUKKzlGNTk3Q0UyNjI3MjlCQzUyMTMyRjQzOTIyQjlFMjhCQjcxQTMwQUM4NzA5NjM0NTYxQjIyRDEzQzRGQUZFMEEKKzEyQzQ0NTE5NjkyMjZCMjIwMDM4QUQ4RERBOTkwQTRFMkNBRDUzREJFQUI2OTg4OThCQkQzMDQ2MjM0RUI0RUEKKzkwMTI4N0U3MUNCNDEyOTZDNDMxMzgzQUI4NUYxODg4MkY2NUJFMzY5MjNGNkMwRkQ2RkFEQUM1QjQyRkRCNjgKKzY0QzA2RTA0NzQzNEZBN0E2NTlFRjdGM0QxQUE4RTU0NzkzOUZCRjlDMkVEN0FDODI5RjAzQ0E1OUFGRkJGQTUKK0E3QUQyRTBGQzdCQkU2MTk5NjFBRTE3ODVEMDk0NDRCMzMzOTkzMTk5RkZFRDAwNzM4MkI1NEREQUVCRTIxRTAKKzFFNzVFMEFCNkQzMDlEQkU1M0JDN0JCOUY5NUQzNDJGNTE3OTg1NzRENzBCOTUwMjFGQTQwMTYzQTg2QkU2QzkKKzM0MjUzNkE1NzMwODM3QzUyMkQ1MzE0QjEyODlEOUI3RTRFREQxMDhCRTdGMzVBMjBBQjJBMTY2MDhGNkYwMDcKKzZEREQ3MDJBNUE5QkExMzI1Q0UyQzFDRDAyMERGNjc3ODcyMTM1Q0YwNEY0RTRGMUU5QUE2QjQ5NEUyQkMyMkYKKzEwN0MzMzFBN0U4MDcxOEIwMzBBMTEwMzgwNEQxNDQ4MDJFM0IwM0VGN0NCMDgzQkNDREVBQzdCNDNGMUI0RjUKK0MxQkY2MDE2NzQxQjc0MUNGN0UxMkI0QkY5NTIyMUE3MkNDOUY0NjU3MjY0NzcxQUE2OUM3M0RBMURBMjkxMDIKKzY1RDAxQTBFNjFGMzAyNEU2NzJBRkNDQkUxM0NEMEI3RjU0QUUxNDE4QjcyRTM1N0EwQkFCQjREMDMwNzNCMUQKK0Y0RUI1NEY4OTlBRDRBNDFBOUY5NERDMjAwODgwQTBEQjk5RDY3MjM1QTI0NTFCMjVGNzEwQzI5QTg4Mjg2NUIKK0E5MjJFNTZFOUZDMTY3NTYwMTRGQTVDQkRCMUMzMjc1MEJENjgzNUE3MEVCNzE1Q0VBMTlBODg3MjA0MTkwNUUKKzhDNjYwQkFDRENBMjZDODI0N0Q2QjNDMTBGQTVEQzI0MEU0MzNFNDc5QUM2QUZDRjU3Q0Y5NjY5N0ZGNDZCRTYKKzQ0NzQ4RQorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorY2xlYXJ0b21hcmsKKyUlRW5kRm9udCAKKyUlQmVnaW5Gb250OiBDTUJYMTAKKyUhUFMtQWRvYmVGb250LTEuMTogQ01CWDEwIDEuMDBCCislJUNyZWF0aW9uRGF0ZTogMTk5MiBGZWIgMTkgMTk6NTQ6MDYKKyUgQ29weXJpZ2h0IChDKSAxOTk3IEFtZXJpY2FuIE1hdGhlbWF0aWNhbCBTb2NpZXR5LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorMTEgZGljdCBiZWdpbgorL0ZvbnRJbmZvIDcgZGljdCBkdXAgYmVnaW4KKy92ZXJzaW9uICgxLjAwQikgcmVhZG9ubHkgZGVmCisvTm90aWNlIChDb3B5cmlnaHQgKEMpIDE5OTcgQW1lcmljYW4gTWF0aGVtYXRpY2FsIFNvY2lldHkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQpIHJlYWRvbmx5IGRlZgorL0Z1bGxOYW1lIChDTUJYMTApIHJlYWRvbmx5IGRlZgorL0ZhbWlseU5hbWUgKENvbXB1dGVyIE1vZGVybikgcmVhZG9ubHkgZGVmCisvV2VpZ2h0IChCb2xkKSByZWFkb25seSBkZWYKKy9JdGFsaWNBbmdsZSAwIGRlZgorL2lzRml4ZWRQaXRjaCBmYWxzZSBkZWYKK2VuZCByZWFkb25seSBkZWYKKy9Gb250TmFtZSAvQ01CWDEwIGRlZgorL1BhaW50VHlwZSAwIGRlZgorL0ZvbnRUeXBlIDEgZGVmCisvRm9udE1hdHJpeCBbMC4wMDEgMCAwIDAuMDAxIDAgMF0gcmVhZG9ubHkgZGVmCisvRW5jb2RpbmcgMjU2IGFycmF5CiswIDEgMjU1IHsxIGluZGV4IGV4Y2ggLy5ub3RkZWYgcHV0fSBmb3IKK2R1cCAwIC8ubm90ZGVmIHB1dAorcmVhZG9ubHkgZGVmCisvRm9udEJCb3h7LTMwMSAtMjUwIDExNjQgOTQ2fXJlYWRvbmx5IGRlZgorL1VuaXF1ZUlEIDUwMDA3NjggZGVmCitjdXJyZW50ZGljdCBlbmQKK2N1cnJlbnRmaWxlIGVleGVjCitEOUQ2NkY2MzNCODQ2QTk3QjY4NkE5N0U0NUEzRDBBQTA1MkEwMTQyNjdCNzkwNEVCM0MwRDNCRDBCODNEODkxCiswMTZDQTZDQTRCNzEyQURFQjI1OEZBQUI5QTEzMEVFNjA1RTYxRjc3RkMxQjczOEFCQzdDNTFDRDQ2RUY4MTcxCis5MDk4RDVGRUU2NzY2MEU2OUE3QUI5MUI1OEYyOUE0RDc5RTU3MDIyRjc4M0VCMEZCQkI2RDRGNEVDMzUwMTRGCitEMkRFQ0JBOTk0NTlBNEM1OURGMEM2RUJBMTUwMjg0NDU0RTcwN0RDMjEwMEMxNUI3NkI0QzE5Qjg0MzYzNzU4Cis0NjlBNkM1NTg3ODVCMjI2MzMyMTUyMTA5ODcxQTk4ODM0ODdERDc3MTA5NDkyMDRERENGODM3RTZBODcwOEI4CisyQkRCRjE2RkJDNzUxMkZBQTMwOEEwOTNGRTVGMDBGOTYzMDY4QjhCNzMxQTg4RDc3NDBCMEREQUVEMUIzRjgyCis3REI5REZCNDM3MkQzOTM1QzI4NkUzOUVFN0FDOUZCNkE5QjVDRTREMkZBRTFCQzBFNTVBRTAyQkZDNDY0Mzc4Cis3N0I5RjY1QzIzRTNCQUI0MUVGQUUzNDREREM5QUIxQjNDQ0JDMDYxODI5MEQ4M0RDNzU2RjlENUJFRkVDQjE4CisyREIwRTM5OTk3RjI2NEQ0MDhCRDA3NkY2NUE1MEU3RTk0QzlDODhEODQ5QUIyRTkyMDA1Q0ZBMzE2QUNDRDkxCitGRjUyNEFBRDcyNjJCMTAzNTFDNTBFQkFEMDhGQjRDRDU1RDJFMzY5RjZFODM2QzgyQzU5MTYwNkUxRTVDNzNGCitERTNGQTNDQUQyNzJDNjdDNkNCRjQzQjY2RkU0Qjg2NzdEQUZFRUExOTI4ODQyOEQwN0ZFQjFGNDAwMUJBQTY4Cis3QUFENkREQkU0MzI3MTRFNzk5Q0ZBNDlEOEExQTEyOEYzMkU4QjI4MDUyNEJDODA0MUYxRTY0RUNFNDA1M0M0Cis5RjBBRUM2OTlBNzVCODI3MDAyRTlGOTU4MjZEQjNGNjQzMzM4Rjg1ODAxMTAwOEUzMzhBODk5MDIwOTYyMTc2CitDRjY2QTYyRTNBRUYwNDZEOTFDODhDODdERUIwM0NFNkNDREY0RkI2NTE5OTBGMEU4NkQxNzQwOUYxMjE3NzNECis2ODc3REYwMDg1REZCMjY5QTNDMDdBQTY2NjA0MTlCRDBGMEVGM0M1M0RBMjMxOEJBMTg2MEFCMzRFMjhCQUM2CitFODJEREIxQzQzRTUyMDNBQzlERjkyNzcwOThGMkU0MkMwRjdCRDAzQzZEOTBCNjI5REU5NzczMDI0NUI4RThFCis4OTAzQjkyMjUwOTgwNzlDNTVBMzdFNEU1OUFFMkE5RTM2QjYzNDlGQTJDMDlCQjFGNUY0NDMzRTRFRUZDNzVFCiszRjk4MzBFQjA4NUU3RTZGQkUyNjY2QUM1QTM5OEMyREYyMjgwNjJBQ0Y5RkNBNTY1NjM5MEExNTgzN0M0QTk5CitFQzM3NDBEODczQ0ZFRjJFMjQ4QjQ0Q0ExMzQ2OTNBNzgyNTk0REQwNjkyQjREQkYxRjE2QzRDREVDQTY5MkM0CiswRTQ0RkRCRUY3MDQxMDExMThCQzUzNTc1QkYyMjczMUU3Rjc3MTc5MzRBRDcxNUFDMzNCNUQzNjc5Qjc4NEM5Cis0MDQ2RTZDRDNDMEFEODBFRDFGNjU2MjZCMTRFMzNDRkRBNkVCMjgyNURDNDQ0RkE2MjA5NjE1QkMwODE3M0ZGCisxODA1QkRGQ0NBNEIxMUY1MEQ2QkQ0ODNGRDg2MzlGOUU4RDAyNDVCNDYzRDY1QTBGMTJDMjZDOEE4RUUyOTEwCis3NTc2OTZDM0YxMzE0NEQ4RUE1NjQ5ODE2QUFENjFBOTQ5QzNBNzIzQUJCNTg1OTkwNTkzRjIwQTM1Q0Q2QjdFCiswRkEwQUQ4NTUxQ0VFNDFGNjE5MjREQzM2QTQ2NEExMEExQjE0QzMzRkFGQjA0ODYyRTMwQzY2QzFCQzU1NjY1Cis2RDA3RDkzQjhDMEQ1OTZFMTA5RUUyQjFBQUI0NzlGN0ZBQTM1Mjc5QURCNDY4QTYyNEJFMjZENTI3QkZGNUVECitFMDY3NTk4RTFCOEI3ODE4OEZBNEJDRkIwQjUxNjkyRDA3QjBCRUJCOTMwQzZGMDk5N0I0MzdFMkM1MUI4NzZCCis2MUE1NjNBMjY3MzkzMkMyMDQ1ODMzRkFBMzVEQjIyQURFMTIxMDIzMzVENURDNzM0QUUzQUM1RUVFNjY1OEQ3Cis5MkVCNjIxMzFFMURGQkE0NDFGNTNFRkY5MDIxRDlENEM0OTFGMjZCRThGNTRDNjExNjVDQUQ3NzhDRTg2OTVDCitFRUFGNzBFM0IyMEM2NEQ0QzJCMzRBMDg0QjU3NzBCQUIyQTk3NEU4OThGNjJCRkU5MEYxMzJBMzdFMkRDQTRGCis0M0UxM0RCMTNDOTRERkE4RUNFMkI3Mzc0ODI3QUUxNjg2MzRGQTAwN0Y4OTgxQURBMDQ2Q0VEMzQ0OEJGNDUzCitGQ0Q5QTRGMTk0RkE2NDhGOUZDMDk3MTczNEJCNjlDQjc1MzQ4QTg4Q0MzNjFGRjA2RTk4NEM4NkFGMEVBNDI5CitEQUE1ODA4Q0NFMzU4MzY2NEFFRkUwQzU5RURBMDRBMTQ3RkI1MTIyN0E1QUIwQzEzOTQyMzIzRTlCMzczM0RECiszRUU3REY3Rjc3NERFNUQwRDA5ODBEQThDMDE5Mjk4M0YxRTNFRjE4NDgxRUFGMUVGRURBMDA2OEJDQkRCMjhBCis3RkM3RDkxOTFFRkZDNTc0NTg4REVDMUUxODAzNDFEQzk1OUY4RUY1NkVENUIxOUY1MEFBODJBNDY1MzY0OUI3CitDRENBMTFBMUZGMjdBRkE3RkYxODlBN0U4QTdDMEU5NEFFRUM5MDFEREVCNTQxNjA0REVDMEZFOTBGQTA2ODVBCitGREVBREVDRTYxQ0UyNzMxRkRERjdGQ0YyQUVGN0NDMkIxRUU3MDk1RjQ4M0MyNTk3RjY2Njk0RkJEMkFEODFCCitGNjhGRjJFMzc4QkQ4MzU3Q0QxQjYwQTFDRURBMkRFNzYwQTk4ODY4QUNCNDVDQ0M4Q0MyMzcwRkUyNjc4MzBGCitCNzk1MDU4RTBGQjBFQjNDNjI1MjU5QzM2QkY5QUQyRUZCNUM2NEE0NTc5N0UxODc5N0NFMUEyQzAzMDRDREU5Cis5RDg4RTExRTg3OEE3MjE2MTBFQzU3OTU4QzdFODBBNUU3ODIyNjAxN0EyNjMyODhERUY1RDMzNTE5OUU4RjI4Cis3ODdERjc2OTU1MEFEMzNFMTUzNDJGQzVFNDc1MUY4ODY1QUE2NkU3OEI4Q0QyMzg4RUMzNjE4QTYxOUFEMzAyCis1NzYwRTlGMjkzMDg1Q0I1NEJCQkRENDdDNUFEQzNGNDc5RTM5QTc5NTU0MUVEOENDOTIxRDFCNDFDOUZCMUNFCis1N0IxMzQwQkI0QkZBRDEzMjlFRTRFRjJERTU5OTk0NDQwNEI3REY5NEM3NTkwMzdDQkU5NjA3M0ZENzdEQUM5CitCMTQwQjQ1ODBFRjE3OEE4NEQwNzQ2Mjc2RDZFNjY3RTI2NjcxMTE3RUUwNDEwMjMwNEYyRjU5OUE0MjNBNjg3Cis1M0NEOUUyQjA2MUQwMkQ1NEVGNTY0MzlFMzNBRDk4NUE4NEMxQ0E4RjY2NjZDRjc3NDZFMERCMTlBNzlGMjQ5CitBRTFGNzcxNEFFNUUxRDY3MjNDNUQzQUY4NkU2QURDOUYyQkVBNkE2MkMzQzAzQTY3NDE0QTk5RkNDQ0ZFQjQyCis0RUU0QkU5RkM4QTUzMEYwNjg3OUY0Njg4OTYyNEY3RDcwNEVGQ0I5NTFDMURBMTYxM0Q1NUQ2MUQzM0Y2MjEzCitGMTI2MTBBNkYwNzFFNzk5MThBQzI4OUVBNUEzQUE5MDQ5MjI5OTAyQjY0NkZFMTRFOEQxOURCRTY3M0UxRDdDCis3NjU3N0UzNEFCRTgwRUNGMkY1RDZFMTNDRTA5MjZGMEM5QjExRjVFNUQxN0VDNTk4NjA0MkJBMkFCNkIxRUU5CitCNTRDRjQ1MEQ2MTZEQTQ2MzczOTE4OTUzNDM4QTdCRjgzQTU3MDdDQ0NGMjY1OTBBN0VBRDg5QjVEMzU3OTQ3CiswQjZGOEJBQkNFNkZDNjZCRjJBRjQ2MkMyQ0I5OUI1QTY4RjFBMkMyMzcxNDNGRjkyQzI2NDZCMTQ5RUZFMDQwCis0MUY5N0E1MkM0ODQ3NDY4NEI5RUREMEYzRDBGMzgzOEFGRkI3MEU3RjdGRjhDQjhCREEwNjQ4M0Y4REQwNEY4Cis5MTRCNzUyRjRDMTE2QkYyNDNEMzFDQkY5QUNGMDREQTkzQkRFNEI4N0QxODFDNDIxMTFBMkM5MDE4MUUwQTExCis5RTg3NDM0RjQ2ODAxRDZDRkVCMzUwNDY3QTc4QTg5OUE3MERDOEUxMkNCMkZDQjM3NjY0N0Y1QTE1NUE4M0MzCis3N0I3MkEwRTA1ODU1MEUwRjYwQzI3M0E2MzIwQjMzMUE2RUEyMUI1MUY1QjAwQjZBNTI3MUMzMzEyMzVBOEQ2CitGQjlCQUY5OUU0NTY1QjE0NjE5MzdERkY2ODE4Q0NCOEE4NDgzQkI1NEU1ODcyNkMxREU4MzZCOUM0NzA2NDkxCis0MjJGMjQzREFGRTZCRTczNjlCMDlEODdCQzVDRTNCQzgwODUzNDRENEM4NDVBNDVBQTlEOTE1Njk1RjlCQjhECis5QjA2Q0EzNThBM0EzMzA2OTRFNkQyNjlCRTE3OTcwNERDRURFOTg1QzJEODg2QjdCMDYzQUE3RjUyMUZDOEI5CitFNzk4NzZCOUZDMEVCOUJBODQ0MUUzMzE3MzE2QUZBMDUwRTM2Njg0MTFDRTgxMzQyMjQ5NDVBMzBGMkVBNUI5CitBNURENTgxQTY3QjlFRDg0OTdGOTE1ODlCM0QzMUQ0NzdEMEQ0RTNGNzExMDAzRkQyMjY5Q0QzNjhEODlDNTU2CitFOTM4RjFERTUzNzJCQ0RGRUU0REMxMEZCMzIwNzQxQTFFMUJCQTYyNzg2OEFCNjY1REM1OEJGM0YzRUI2QzY1CitDNDkyQkI5REY4QTY2QUIyREY3OUE2OUExM0QwQkZGNkEwQ0Y1QkRGN0RENjdDMzEzNTU1MEM1N0RDREM5RkNFCis4QTJFNDgwMkJBRUVDQkU4MTYzRDczMDYxNkQ3QkQyNzM4MEJBOEYxMjBEQ0FDRkExRkNEMzlBQzUzOEQwQjc0Cis2QTg5MTAyNzc1QTM2QTA3QTQ4NTM3MUM2MDAzODQ5OTg0RUM5NTEwRTQ0RkI2NEM3QzQ4REQxRDRFRkNCNDY2CitFQUM0QzA1MjE0QTIyRDU2MkFDMjZBNEExMkYyODVGNTcyMkFBODkxMjk4ODU1MkVFRjJBRDM3MzczQUQwMDVGCis5MENGNUMxQkI2RjFGMEVBREYwREVCQ0Q5ODU3ODMyMUJFMjc5MTQ5NTdFMzZCMzM5MDM4NjZGODREQjlFMjlBCiswQTJBQ0YyM0REQTI4MzdBNjYxRUE1RDc5RTU3Mzg2NjU0NkU2NzI3RDAzNDM3NEYyMDEyQ0YyRjk4MDJDMzEzCiszNDkzRDY1RDY3M0E3QzdGMTFCM0NCQkE1RTIyOEExQTFCN0MwREZDRUNCRUZBNTBGMTI4MjM2MjdGNTc0QjBDCis1MkQzQkZCNDQ2QkEzNEREOURCREFBOEU4RjJBMzQwQ0UwOEJBNENCN0IwMjY5NjI5NTVBMjREMTRDNkQzNjg5Cis0NzY0NTk5RkJENDAwMzQ4QjE2MEM0N0EyQjc4NTQ5MDVFNjVGNjhGNzdDQzc2NzkxOUNDNTRCM0VEMDhCMTc2CitGRDYxM0YzMkE1RkYwOUYzOEI1REU1MEFCQ0NFNjcwQjUyRkEyRDUyRDg5RDVGRjZGQUVCOTQ4OEMxM0IzRDlDCis0NzgxMEEwOTZDMTdDQUM2OTdDRTUxRThBREZCOUFEQUMwRTRENzk1N0U0NjBBOTY4MUE5RDlBQTk3NDQ4RTg5CiswREJBQjgyRjU1Q0YxRjg0MUFBMDU3RjQwQTg1ODRBN0MzMTlBNTg4MDMxNzJEMzAwQzJEODY4OTE5NEUyQzcwCitGQ0UyM0U4QTJCQTU2OUIzMDE2NDg5OENEQ0RCOERDOTEyQzdBNUUyNzJDMDM5MEExQ0M0QjkwNEE1QzZEMjBDCisxOUU0RDIzOEVGRUQ1NkM5MDY2RTM3N0ZEMjgyM0IwMDVDODAwNzYwRUY3NzJCQjQwMzQxMTkyRUM0NTE4RTNBCis4OUUwNjZCRjdGQTRCRkU4OUYzMTk0QUE1RDkzNDU4QTA1RUUyOTI0NzNDMDcyQUIwMTNGMjc4OTA5MjUzNjc3Cis5RUEwNjFDMTQ0NUYwNjI3N0FCM0FDQUIzN0I3MTMyNEY5MkY3NTE2QzZCOTAwQ0U5NEQ3RUQ0Mzk5ODNCNzY3CitBRkQ1MUI5REU4OTQ1MDY3RDg3MDBDRTM5NENDQkIzQzQ2MDBDQTVFQjAxRTI2RUQzRkFFOTA3QjAyQ0M2ODkwCis0MDc1MjE2QzZEOUE1MzI5NUZGMzE5QTI4MjYxMEVGNkRGNEE0OTlFMzZENTdFNDc1Mjc4MTRCQjMwOTA3MTkxCis0OEYzNjVENzBFMEJGNTJFM0UwNDM5RTdENzg5M0VBMDRDNjUyQjI0ODExNjZBMkFCQzdCMzI2OEMyRURDQTA5CitERjdCMUNEMDM4MzU4QTM0QkU1NjgyNjI2MTJBMzAxNjkwRDU2MEFDNzREMUY3QTc4Rjc2MTRGNDkwQUNENzkzCitERjM2MTdEQkQ4OEVBQjNBN0MwMjZCMzI2NENFOTAxQkY3RUFENjEwNzNCQTM0MERGMjE2OTY4Qzg3M0I5QjBECis1MUFCRjZCMzQyNEE5MzRFMzY5M0QzMDAxQUVCRUQ3MzhGNjc4QzJCQzlBQjNGQzYxMDAzMTYzNDIwMjJCOTk3Cis5NDJGNTEyNDlCNkI1QUM5QTZGNDQ0Mzc3RkExM0JEMEIwQTk2OTZEMjkyRUExRDQxRTQ2NTNBMDEyMzhENkFECiszRjdBRDVFRkMyMEVGQjM2RjNDMTk3MDc4RkVDMkIyMTA3MkZBNTNGMTNBMUVFNDA4RjExRDVEODI4Q0MyNzdGCisyMjA0OTU2MEUzMzM4NTI1MDE5MDYzRkM0RTUyNjNGOTMzOEEwRTQ2MjJCNDNGMzA1MEIxM0JDMjBDNDJGNTk0Cis3QjhGQUQwODhCOTUwMjQ2NTYzNTcwQzFCNjY4NDI1RUVFNDg0MjM0RkZGOTY2RTZGMzc4QzQ0NEVBRDA5NjlDCitCRjU3OUZBRDVFMEZEMTRCNURCRjYzOTRBMkNBQzEzMjUzMERGQ0Q4Q0U1RTlFRjkyRTQ0RjA1QzExMjc3MTFDCitCMTFEMkRCMkE3Qjk2MTM4QkU0NEMxNUI2NDFGRDIzRTAwNzVEQjA5NURGN0M3RjEwOTdGRTE1RkREMzE5NjIwCitDM0YyNjY4OEFCRDY5QjQ3QzdBMDlENkNFMzNGQUI1NzIzMTU1ODUxMDlCOUU3RDBCODlFQ0REMTQyNDQyODEzCis1MjIwMjFBMzlFOTA2MENBNkVBNzM0NDYzN0JBMzAxQzNCQTEwRkU2QTY4MTI3QkY5MkQxQkI4MDMzOTA5RUJCCis1QjkwOEI2QjA2QjgyNkI1RDVEODg1QjdGRTAwQ0IwMjNGRENCMkE1RDg5MjFDNEVFQjMzRkZGQzgwRjVGREEwCis0RkM2NEYzRjcwMzg5Mjc1NDUzOEYxMDFBMTcxRTUxMDEzRkE3MUE3RUM4ODlGMTY4REQyOTE5QzYyRTM1MUQxCis2MEUxOTg4RUI5QkQzNzMxMTYwQ0FGMjQ3MThGNjU1Nzk0RDA3MTMyNTlBMzMxRDI1NTk1MjBFRDdFODA3RjRGCis3RTFBODlFQkIxODc5RUI0RjgyQzY4NDU3QjlGMERDNkVEQjcwMUIyQzY2QzYwQkUyOEIwRjJEMDFCODJERTk2CitBN0RERUNDODlFMkE4OThBREJFNDc4NjUxMDI0MTRBNDNFOTYyOUI1OTk5QjQ0NUFGMDFBMkZDNTY3NTM2NkRBCis3Nzc5NTgxRUM3QTA3QjM1NTBGNzI0N0MzM0E4MkNENUUzRjA2QjY5RkY4RDJDRDRGMUM0OTk2M0VENTVEOTM1CisyN0RCQ0RBMUU1MDEwNzI2MDMwRkY3M0Q2QzgxMjc2MTNDNTY5RDk0RThENUFCMDlEN0YzNjJBODQ1QTVGMTkxCitCNzAxN0NCNjJCRkE2QjlEMTc5NDQ0RjYyQzQ4QTZBMDNFOEZEODBDRUFFM0U3NEI1OEFFRkJDMkI0NDY3RDYzCitEQjZBMjAwODNFMjYwNDI1RkE4QjE4RDEwQ0VCNjU2MkU3QUMwQkUwMjM4QzI2QjI3NEE3MDlBMjI0MEQ3RjMwCiswMzQyNUMzN0U1RDQ5Qjk0QjVBOEY2RUE4RTY5MjA0QkM4NjFBRjBGRjdBMzMzMThEMkRBNzhFRTFDOUMwOUQ5CitBMDZEQjBERDRGNTRDNUU5NjRENzE5Nzk3M0Y4OTg4NTU5RkJCNTY3QjVCOTc2QTY0QTQwQjA0QjA5NkMxRTY3CitDRjNDQTEzOTg5RjBEMDVDQjg0QkY4OUFCOEI0RUQ3MjdEREQ2MDM0MURCNjUzRTc3Qjc1MjU3NzRFNzk5RDUzCitDQzVFMTE4MjQ2RTJFRDE0MjlCNDhDRjAwODYxRTBFRDIyOENEOUMwOEI3MUVBMTUwQ0Q4NTMzRkFDNTY4REU0CisyQzczMEYxMzdGNjNFRjg3OTgyNkY1RDI4N0MyM0QzRERBNjg1RDc2M0MwMzYwMzI4RkVDREUwRTI5MDY2RUQzCis2OTA1MTk5RjlCMjVGQUNBMzg0MjQyQjlCOTJGMjk0MDNCNDFCQTA1NzJCN0M1NjBEOEZCNjM3RUQyM0M0QTI3Cis3MEVCODU1MzE1MTEyRkVCOTQ1NjE1NkUyOUIyRUJCRDk0MUI5OTE2RUM2Mjc5RThCOTU3NzVBQjBBMDQxQ0FGCisyMjlGNTMwMjNFQjA1RUIzQkEwNUIxMDQ3NzY0Rjc0MEUyMjEzN0NBMjYxNDE5NjA1RUQxMUJDQzFEMTE3N0JECiswQzE2OUZENUZBM0I5NTU5RkU2Mzg5OTEwMUUxOUYxQTUzN0M4OTY5QTU1RDFEMTFDNzM2MkIxOTk0MTA1NzJFCitENzY3NjA0N0E1ODkyQ0Q0QkRDREQ5NjIwOUU4MjZCMzUwOTU5REEwRkY1QUMwQjVBRUU4RTE0OTc0RTYwMDkxCitFODQyMDJEMDUxN0JGQUZGRDgzODQ0OEUzQkJEQTBGNzcyOEQ2ODYzNDBFOTMxRjUzODM0NEZGMkQwREI2NTQ1CisyQUE2Njk5NEQzQzQwNjYyRUEwN0REQzg5OEI1ODc5Q0QwMUE5NTA0QzkxQkI0MEYyODEyMzg5NUY1QjEzMTYzCitEQzdGQkQ2MTUzNEYzNTcyRTkwRjAxODA2OEQxNDQ4NkM5ODUwNkE5QkVERDg3QzlDNUQwQTM2M0I0RUQ0QzNGCis1OEY0NUE4OUU4MUJBNEQ1QTQxMjc2N0E4REFCQTQ4RUI3Q0E2QTdFRUZDOEEyODM0OUM2RTNFMDc0NUU5RTIxCiswOUUxOTYxQjE3OThGRjBDNTBCRDBDQ0MwRDUxOUQxRDRDMTExNDNGMTI5QzRDNDEwRTI2RkFFMDBFMjc3NjVBCis1RTNBMEE2RTNFNzlEMTQxRTQ5RDM2QkQ2Qjg4OUJDREVBMDkwNkM5NDFGMTlFMkEwOTUyNkM4Njc1OUZGRTg2CitCNDJDNjY0QThFNEFCNDYwNzdBOERGQkVBMEZDMDQ4MjBGRjQzQzRDNzgxRDg0QTZBRUI2M0I5QUU1MEYyOURECitFNkMwM0NBMjE2MkNDMTM4QTc3OTkyRjY5MjU5NjFFN0M2QkU5QzAwQkI4NzM2QkE3QTk2MUJENkFDNDBBMURFCitDQjc4QzA2RDNBQjEyMDVEQ0VGMjg1MDMyQjIxRjI2MzVDNUI3OEYwMDI1NjNGNDNCNkEzRTdFQjAzODkxRDIzCis5M0M0ODUxMURCNkY3QkY5QTczMThFM0ExNUE0RTU3OTczQzU2OTczNzlDNkI1REY1NTUxM0ZBQ0UyRURFQUMwCisyNEJBQTVGOTI0RjkzMjQzQTkwQzVBNEZDRjlCOTVEQTEzOTVFQUEzODY0RjlGMTA0NkQ4NzE0OUY1MzY2OUIxCis1NTNFNjMwMkU3OTY3MjZEOTU2MzM0OTNCRTY1MjEyOTBGMTkwNDE5NTdGN0FBRTM4QzVDQTQwRDJEOUY0MzIyCitBMDc5RUM5N0YyRTExQkYzRDgyRDk2QzlBQTJFQUM0QkRBRDBGN0QxQUI3RDYzQ0MzOUNDRTM4RUMzQTY4NDk2CisyNDlGRkZGMzMwNTc2QUVENEMwNzQ3QkZCRkExNTlDM0RBQkZGNDgwQUVDQUNFNTM4ODg0QURDQTg0MTVENkYyCitFNDM0MDlCNUQzMkEyMkQ1OTk3RDIzNkY2NTA4QUIwNzY2ODQ2RTYxN0U5RDREQjkwQzRCNDc3RDM2OEFEOEI2CitGMEU0RDFBOTg0RDdCQzY5QjRGRTlBMTRGNEEzMDg4NENEQkU3MDM4REY4REFFNDIwMjhGRDdEQkMwRjRFQ0ZBCis5MDZFNTdGN0RDNEYwRTZDRTE5Qzg3NDIzQTc1MDUzMEY2NDEzMTZBOUEyQjU0ODhFMDVCRjM3QkVERjE4OUU5CisyNDUzQkREMTI5REU1ODQ2MDZGM0U3NTcwRDgyMjI5REU5REIyQzQ0QzM1Qzc3NUM1NjQ0NjUyMjFDRjE5QzVBCiswMTZCRjk0QTlCNzM4NDcxRUJENzJEMzU0MzRDNzU1OTdBOEFDRTQ0MDJDNDMwMDlBNDdDMkZGN0ZCNzk1NTAyCis3M0RGNkU2ODU2NzYxMDU3NDNBNkZFRDBBNDM2NTZFODcxQzA5RkYxRDZGMzVDNTBENEYwM0JDRTA0QThEM0U3Cis3RDk3NTRDMTg2QUE3QzY1NUZENkRDQkE0MjA2QTRCQjQ0RjZFRDM5Q0EyNDRBMjVEQTY2QUM5NDYwMDAwQkNBCisyQUE1QUYwREIxODk1RDZCMzA5M0RCNDUwM0Y0QUE0RjA0RkFCM0YzNjhENzE3OEQ2MDZEMTM3MDdCMUM0ODM3CitCODQ4MTNGNjgxQ0RBODJDRUE2RDEyNkQ0RTU2OTQ0NUMxNzQ0ODhGMUZFNTFGMEY2NUE4RjI0M0I5ODE3QUE4Cis4NzgwRENBNzk5MzgzMkE2RDQyRjI2NThGQUZGRDY5M0NEMTQ5QkQ5NTYxOTMwODdDN0Y4RTU1MjJGNUUwRDVCCiswRTY0QzAwQkU1Q0QxQ0U3RTkwMTNCRjhERUE0OTc3M0Q3RDVGNUFDQjc1QTBCRjk4Mzk4MDhCOUEyQzUwMUY0CiswOTc3QkY1NjY0MDc2NEQ4NTVBMjcyRUY1MjA0RkNFQ0JEMUNFRUMxNTZGRTA0QUU4NkFBNjQ0QzFDNDYwQTlFCis2REZDQjQxN0REQjdFQzY3NTkwODhCNTNEMzM4OTBDODhBQUI4MkE1Q0U4NzBBRDM0N0U5NzE2RjJFNDg4NTZFCitFRjIxNEVEOUQyNDA3MjQ2QzY5RkU3M0VFOUZDRDY4MkU4RUQ1MDg0NTRGQkMwMEQ2OEYxNTIzNTYwQUE1MzU3Cis1QjM5MTUyNEMwOUYyOUE5NUJERkI5RUY0RTgyNEQwODA4NDcwNzYzOEI3MkNCRDgyQjcxMTZCMjExRUYyNDcyCis2N0JEN0JBQkJDMzFGMkQ3N0IwNzA5NjJCQjczMEZBNjY2RjhFMEVFNEM3QkNBQTRCNUZGOEUzMDMzQTVEMzZCCis4NUFBMDQzNTA4RTNDMDA4NTc0QUYyNzYwM0JBM0NCNUU5REQxMzc0NjJEMDI1REQxMkU0M0NEOTBFMTJFQzM3CitGODU5N0UwN0RENTQxQjA4MDQxMEEwNTJBNDk5RjY5MjNDNEU4Mzk1MTVFRTNBMjJEMUEzQ0Y3OEY1QTBCMEI0CitBOTJCQTlDMDdCQzU1QTgwRjZGMjA3NTExQUVDRTRGMTE3OUQyQzNFQUFCMjkyQTYxRkE1M0VBOEU1RDA3RkIzCiszMUEzQUUyMjczMDNEMEU5QjJCQUVGRDBDMTM1MjVBODM5OTg5OTZCMjUzNUM2MEUyMTZBMjREQjlEQUI3RURECitBOEMxNUNCRkE2N0FCNDM5RDY2QkI2RjlFRDE2ODA4ODk4MkUxOTcyM0VGMjkxQjA3QTgwNUI0MUJFQzVENDdECitFOUEyNkY2REQyMTdFQjhDN0QyNDFDNjA4NjA5NTA0NjBGRjUyMzFEOEE2MDYyQkE1NkVCNjcwRUE0QzcyRkI3CitFMjEyNkM0QzkyOEM2MTdGQkFBMTM4RDlGQTVGODU0RTNCRUVBQTQ2NDMxMzk1RUVGNkM3Nzg1MzhCMkEyQjE1CiszMzI2NTNFQUVFNDczREMzREQ1ODRDNDkyMTMxMjM1NDA1OTYyMEQyOEFBRUM4QTJCQzMzNzE1NjBFMEUxNjQ2CitGNDVGRUY3RTNCOUEzNkY2Mjg5MjU3QTg0RUE0QzIxREZGMkI3N0VFN0E4N0VEODk2NjU0QkVCOTk5N0I1QjU3Cis5NjkwOUU4RDZDRkNENjhFOTE1MzUwQUVBRjk5MkVDNDkzNzIwMTk0Qzc0MjdFQjk5ODFDREIxQzExNjdEMERGCis5ODBEN0QwMTAzQUJFNERBMTIyQzlBQzdFRTVDOUQyMUIzQkE2RjA3RDUzM0QwMjdEREIyN0IyRTk0Q0Y3OEYyCiszMzREOEEzMkIwNTZCMjY1MzQ4Q0I5MzYwNUU2NDIwRjVBMDM0QzA2OEE0NERBMkZCQ0U4Q0Q0QTkwNzJBNzYzCitCRUMxRUMwMzYxQUE3REVENjRFRkU5REU4OUYxQjc1NkNEMkVBRjQyMTJCOEUxMzAwNzMxN0JFOThENzY4NDRECisxN0YzRDk3RTA5N0QxNUY3OERDRDRDMDE5QTUyNDBFRTRENzQ0MUYxODkwODAwMDhCRDQ0RjhCMjVCODMwNUU2CiszQzg4RUEyMERENzZGQzg0RjE3NjQ3NTgxOTlFRkJBQTUyNjZFOTRFNEU1N0NCOTQ4RTkyQjcxRUNBMEEwQTA4Cis1NDM0QzExN0JCRUY2Q0IxRjQ5ODY5RDdCOEFDMjMwNkU5Rjg1OTVDMTYzNDJCNTZDNDRDN0RDQTU4MEE0MzM3CisxNEZGMzEyMTUwRENCOTg1Nzk5QzNGNjNCRUE0MkRFNTQyREY3MEI1MTFDNjlCQzRBQUNEQTc4RTM4MkUyOTQwCitGRUYyNkM4NkEzOTY2QTczOTZFRTZFNkZFQTNGNTYyQkM1RkNBMDA1MDBDQjEzRUEyRTE4QTY0MUEyOTJENzI2Cis4NTA2NUJFMzJDNjkwNEU4OTAzMjVGMTkyOEYxMEFBMTc1NjczMzA0OEUwRDYwMkREMjM1QzFFNEVFRDkyRURCCitFRTY3REU1QzdDMEM4RTNDNzkyMkIxM0ZDQzJEMkY3QUIzQUQwRjU2QUFDQzZBRTRDMDI2NzZEQzIyRDIyNzk2CitCNTE2REJCNjRGMDU3RUYxRkRDNDE2ODhGMzgyQzg1MTUyNkFBNEEyREQ3MEEzRUQ3ODA1N0IyQkY1MkUyQzZFCisyOUU2RTk2QzcxNDdFRkZBMzc0QTI0OTQyNzhGODNCNkNFOUIxQzA1Q0U4MzM2RTBBRUNGMjAwOEFBODdGMzYwCitBQTM3NTdDODMzRTdGQ0VEMDMyNkRDMUZCNDk3RTA2QzUzNThFRjI0MDJBNTFBMjBCM0Q2MjdCNTcyRjE4OTVFCis2QUI5MDU2QUQwRTMxQ0IzQzBGMkM3Qzk3NDlCMzE2RjRCM0E4M0MzNDUwMjcwNjk1MzhGN0Y1RTRFRTUyQ0QxCis1NjJBNTEzQ0UyOUQ0NzU5RkNCOTk3NUFBQzc3RkYwMUJFMUUwMUU3Rjc2NDcwNjYwMDAyODZBMDQ2MEREMzkxCis2NEE1NkZBOUQzM0U3REJERjE3QzRFRkY1Njc5QzZFNEJFRjQ2QjA4MjkzNkExMDlFNEYyRDcxMzhCQjMzREZECitBOURBQjIxQ0NFMjU2NzFGMDgwQjdBMENFNkIwNjJGRkFFNDA3NTI4Mzk5MDdDMjY0MkE0NzBGMEE1OTgyNDdDCitCNDJDNkFCMzU0RjdBREJBODdCRkY5RkRDQ0YyQzI3MDkxM0RGRERDMUVBNDU2Q0YyQ0YxRDYyQjNENEFCMTZCCitCMDJFNEIyQkE0M0M5NzEzODM2MzBGNUU5Q0EwRDg1Njg5OTcwQUJBODFFODMwNUI2MjVFQ0NGRjRGRTRENEY3Cis4MTVDNUNFNDVGQThGODAzRkU0RDJERDMzNjgwOENFOTY2QkY5NjMxN0Q0QzBGQzcwMDA5NUYzRjk0RjNFQTNFCis1NDkzMkFCNUE0RTU3NDEwQjY3RkJBMDYwQUI5MTFCQjMyMzkzOTNBMDc3QUNERTVDQ0ExNkI1ODIzNTFBQUU1CiszNzg5REI3RkM4M0E4QzZGRjJGMjIyNDgyMTI2MEU5OUE4QkY4NDhDRUZBNTY0RkJEQ0QwQzFGQjU0OUY0NzRGCitDRjlGREI4ODVBMDkzRjVENEY2MTNCRTdCMkY2MjRFNDkwMjA2Q0YxNEI5QkNDMDYyRkIwQkMyNTQ5Q0FBN0FFCitGODVFMEE1RDFFNjkxRUQ4QTM5NTA4NDI5MTYwQTk0QzYxQjNGNjlEMzFBNjM3QTFBOEQ0RTFCM0Y3NkQyMDJDCitGRkYzRTQ4RENDNkU5MTBFOTNDQjNCQTVDQjdGRDUwREFFMzY2QTM4MjEwRUM4MUIwNjREOTExQ0UzRDc3NEIyCisxQjM0QkNCQUUxREY2MkI2OTFCQjIzRkVDNTcxMzU4MTk2M0Q5MjE2RkRDMTU0QkI3RkE2OURBNDNCNjcwQTRDCitBMDdDRTQzNzIwRkRBRDFDNUEyQTcwQzFGQUNGMTNBOUE0RDQ1Nzc0RUFENjRGMDVGQzY1RDMyMDYwMEU2RjJDCiszMTRGQzFFQzdFQ0QyRjA2RkZCNkM0MDM1NEZGODYyNkIzNzI1RTYwNjU4NTlDMENBRUVCMUI2NkE1NDlGMkQwCisyMkFEQ0Y4NjhGMDFBREI3NjM3QThGMDE3RjdDNDczMTRDNDM3NkVCNTMwMkFDOEU4QUFDRTgwMTk4QUNDNDBBCiszRTE2NjY3RERBNkVDREI1QzFBNkExMkM4RjNCQ0E1MDU1MTY5Q0U4Qzk3RUVFODgwNDBEMDE3MEY5OTBFMDc5CitGQUE0MEFBRjIyQUI0MDNDNTY4ODBCM0Q5NkY0NzlBMjc5Q0FDMjNCODVGMDZGQjBDNjZGOUEzOTM5RUI2MjA3CisyODNCNzkyQzBEOEU2QzI2RDVERDc3NkQyMkVDQjg0QTEzQ0M2QTE1NEU2RjhERjVEMEQ2QTE5NjNGMjk2QUJECis5MzM2OEYxOTZCQ0Q5RUI2RTYyMjBCNzUwNDUzNTNFREU1OTUyMEM2MkQ1QjU1OUIxMjU0OTRDNkQwMUU1M0MyCitBQkQzNDRDRUVBNDZGRjNCREM1NDY5M0U2QjAzMURGNkY5OTVFQUY0Mjg5OTg3M0QyQkYzN0VGQjE5QzVFNzY0CitBREUxMTZGNzdEOUM4MUJCMTA3QUJCMzM5MkMyODU3NUM3NjNDREY5RTI0NzUwNERGQ0E4RTUwRjkxQzk0ODExCisyRjI4RTVCM0YyMjQxOTAyMjI2QTU1NjAxM0NCMUVGRjc0NDk1QzY2MzlEQ0VBNjBBODk5NDY0NTA5Nzk1NzJBCitGQ0VDNkMwMDIyNkYxRUJBRkQ3RUI0NjlBNjYwNzRERjBERjI0QTQyMEE3QzIzNDdBODE4RUMyNjcxREE1MjM4Cis1QjRCNTY1NkFFNTBCNTI2MDMyNkE4NjhFMTVFRTdDMjFGNDQ4MDdGRTA1MzAwQkE3QjgyMDFGQUU1QkFENDg1Cis3REEzRUY3RDFBQ0Y1QURCNTk2M0ZGQjQzRjk5MzZGMUZBNEU5MkQwNTcwNUFGRUEyNkQwNzQwMTRBMDM5RjZCCitGMDZFMDE3RjRENTFFOEU5OTAwNUZGNEVEQ0I1OEY2MEJGMEE2QzlCQzRFOTNCODkxMkJBMEFCNDM5MEEzNDU4CitCQjgxQ0E3RkFEMERENTEzMUVBQjlFODA3Qjg0MEVGMDI2MDIwNjc2NDA3NjAzRDA4NUU4Rjg5RDkzMkFCMDRBCis0MjAwRkEwRDdCMTFFQkJCODRENEU2RDgwOTEzQ0UzQTYwMEJDMTFCQjdGNjk1NDdCMzU2QjUxMUIwRUJFMENDCitCMzZCOTAzMEM5N0I5Q0VDN0E1OEJBNkZGMzgyOTBERkE2NDEyQkVDQjhBODEwRkExRTM0QzFEMDI0QTNBNTMwCitFNTg0RDk1QTlCQjEzRTU1OTQ1QjdEOTMzNERFREI5NkNFRjNCRDEzRDZDNTdEMkJFMzgzNTJFQTE5RDRDNjA5CitGNzk4REM2RTM4RUQ3QjFCNDNDRUY1REZCQkMxQkQ2QUFFN0M0OEI0N0YyNTQyQUQ1NEM2RDZDM0ZFRjAwN0ZFCis2NkU0M0JFNjM3NTY2MUFFODRFQkVDNTRBQjIwRDM3ODY5Q0Y5RTFEQjlBNDlDMTJCNkQ5NDNGNDYyQkY3ODA4CitERTZGRTBERkQwRTUzNzRFNjhDMTdFMDA3MThFOEIxQzJFOEVBQzIyRDk5NzRGOThGNDg1NzQ1QzU1MzQxNDZFCitCNkUxRjc4MjgxM0QzM0M4NTYzODNBMUQ2NQorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorY2xlYXJ0b21hcmsKKyUlRW5kRm9udCAKKyUlQmVnaW5Gb250OiBDTVRUMTAKKyUhUFMtQWRvYmVGb250LTEuMTogQ01UVDEwIDEuMDBCCislJUNyZWF0aW9uRGF0ZTogMTk5MiBBcHIgMjYgMTA6NDI6NDIKKyUgQ29weXJpZ2h0IChDKSAxOTk3IEFtZXJpY2FuIE1hdGhlbWF0aWNhbCBTb2NpZXR5LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorMTEgZGljdCBiZWdpbgorL0ZvbnRJbmZvIDcgZGljdCBkdXAgYmVnaW4KKy92ZXJzaW9uICgxLjAwQikgcmVhZG9ubHkgZGVmCisvTm90aWNlIChDb3B5cmlnaHQgKEMpIDE5OTcgQW1lcmljYW4gTWF0aGVtYXRpY2FsIFNvY2lldHkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQpIHJlYWRvbmx5IGRlZgorL0Z1bGxOYW1lIChDTVRUMTApIHJlYWRvbmx5IGRlZgorL0ZhbWlseU5hbWUgKENvbXB1dGVyIE1vZGVybikgcmVhZG9ubHkgZGVmCisvV2VpZ2h0IChNZWRpdW0pIHJlYWRvbmx5IGRlZgorL0l0YWxpY0FuZ2xlIDAgZGVmCisvaXNGaXhlZFBpdGNoIHRydWUgZGVmCitlbmQgcmVhZG9ubHkgZGVmCisvRm9udE5hbWUgL0NNVFQxMCBkZWYKKy9QYWludFR5cGUgMCBkZWYKKy9Gb250VHlwZSAxIGRlZgorL0ZvbnRNYXRyaXggWzAuMDAxIDAgMCAwLjAwMSAwIDBdIHJlYWRvbmx5IGRlZgorL0VuY29kaW5nIDI1NiBhcnJheQorMCAxIDI1NSB7MSBpbmRleCBleGNoIC8ubm90ZGVmIHB1dH0gZm9yCitkdXAgMCAvLm5vdGRlZiBwdXQKK3JlYWRvbmx5IGRlZgorL0ZvbnRCQm94ey00IC0yMzUgNzMxIDgwMH1yZWFkb25seSBkZWYKKy9VbmlxdWVJRCA1MDAwODMyIGRlZgorY3VycmVudGRpY3QgZW5kCitjdXJyZW50ZmlsZSBlZXhlYworRDlENjZGNjMzQjg0NkE5N0I2ODZBOTdFNDVBM0QwQUEwNTJBMDE0MjY3Qjc5MDRFQjNDMEQzQkQwQjgzRDg5MQorMDE2Q0E2Q0E0QjcxMkFERUIyNThGQUFCOUExMzBFRTYwNUU2MUY3N0ZDMUI3MzhBQkM3QzUxQ0Q0NkVGODE3MQorOTA5OEQ1RkVFNjc2NjBFNjlBN0FCOTFCNThGMjlBNEQ3OUU1NzAyMkY3ODNFQjBGQkJCNkQ0RjRFQzM1MDE0RgorRDJERUNCQTk5NDU5QTRDNTlERjBDNkVCQTE1MDI4NDQ1NEU3MDdEQzIxMDBDMTVCNzZCNEMxOUI4NDM2Mzc1OAorNDY5QTZDNTU4Nzg1QjIyNjMzMjE1MjEwOTg3MUE5ODgzNDg3REQ3NzEwOTQ5MjA0RERDRjgzN0U2QTg3MDhCOAorMkJEQkYxNkZCQzc1MTJGQUEzMDhBMDkzRkU1RjAwRjk2MzA2OEI4MjMyNDI5RUQ4QjdDRjZBM0Q4NzlBMkQxOQorMzhERDVDNDQ2N0Y5REQ4QzVEMUEyMDAwQjNBNkJGMkYyNTYyOUJBRUMxOTlBRThCRDRCQTZFRDlCQkY3REFCRgorRDBFMTUzQkFCMUMxNzkwMEQ0RkNFMjA5NjIyQUNEMTlFN0M3NEMyODA3RDAzOTczNTdFRDA3QUI0NjBENTIwNAorRUIzQTQ1QjdBQzREMTA2QjczMDNBRDgzNDg4NTMwMzJBNzQ1RjQxNzk0M0Y5QjRGRUQ2NTJCODM1QUE0OTcyNworQThCNDExN0FGRjFENEJDRTgzMUVCNTEwQjY4NTE3OTZEMEJFNjk4MkI3NjYyMENCM0NFMEMyMkNBQ0RENDU5MworRjI0NEMxNEVFQzBFNUE3QzRBQzQyMzkyRjgxQzAxQkM0MjU3RkUxMkFGMzNGNEJGRUE5MTA4RkYxMUNGOTcxNAorNERENkVDNzBBMkM0QzFFNEYzMjhBMUVCMjVFNDM1MjVGQjFFMTZDMDdFMjhDQzM1OURGNjFGNDI2QjdENDFFQQorNkEwQzg0REQ2MzI3NTM5NUE1MDNBQUU5MDhFMUM4MkQzODlGRDEyQTIxRTg2OTk5Nzk5RTdGMjRBOTk0NDcyRQorQTEwRUFFNzcwOTY3MDlCRTBEMTFBQUQyNEEzMEQ5NkUxNUE1MUQ3MjBBRkIzQjEwRDJFMEFDOERDMUExMjA0QgorRTg3MjVFMDBEN0UzQTk2Rjk5NzhCQzE5Mzc3MDM0RDkzRDA4MEM0MzkxRTU3OUMzNEZGOUZDMjM3OUNCMTE5RgorMUU1QkJFQTkxQUUyMEYzNDNDNjQyMEJFMUUyQkQwNjM2QjA0RkNDQzBCRUUwREMyRDU2RDY2RjA2REIyMjQzOAorNDUyODIyQ0JFQUYwM0VFOUVBQTgzOThGMjc2RUMwRDkyQTdGQjk3OEMxNzgwNURCMkY0QTdERkJBNTZGRDZBRgorODY3MEVCMzY0RjAxREU4RkNBRkJBRjY1N0Q2OEMzQTAzMTEyOTE1NzM2Q0VBQkFBOEJBNUMwQUMyNTI4ODM2OQorNUQ0OUJEODkxRkFCRUZFODY5OUEwQUUzRUQ4NUI0OEFDQjIyMjI5RTE1NjIzMzk5QzkzREU3RDkzNTczNEFEQQorREE3QTE0NjJDMTExRDQ0QUQ1M0VBMzVCNTdFNUQwQjVGQzBCNDgxODIwRTQzMjIyREI4RUZDRDVEMzBFMTVGOQorQkEzMDRGQTg3OTM5MkVFMEJDQzBFMUE2MUU3NEIzQTFGQzNBM0QxNzAyMThENzI0NDU4MEM3QUEwREM2NUQxOQorNzQxRkE1RkU2RjhDQkY2MDI1MEFDQzI3NDU0QkJGMDg5N0NBNEI5MDlDODNBNTY2NzI5NTg3NTJFRDRCNUU3OQorRTE4NjYwNzY0RjE1NUU4NkYwOUVGQTlGNzY4NUYyRjUwMjdFQzg1QTc3NTI4N0IzMEUyMDY5REU0RTRENTcxMgorRTdEMDMzNDgxQTUzQTI3MDJCQTc1NDJDNzEwNjIxNzMwMzkwMzBDRjI4RDhCOUM2M0I1NTk2QTlCNDJCMzNFNworRDkyMjk0NEEzODcxMzM4M0QzNjQ4QTRBRjE2MEEzQjBDOEYzMzc5QkE0MzcyQkUyRTdFQTQ5QUFCQTc1QUVFRQorQzVEREUxRDhCRjY4NDgzQzNEMjEyNzEyODBBQkI5MUQ1NENDODE5NjgwMzIyRUFCNzJFMTI1MEE3NjBCQzhEQQorNzI2NDA1RUZFNDIwNjM1QjVCN0YwQjQ4NzUyQzA2MDgzRTkyQkRFMDY0MDFDNDJBMkM1MjhDOEE2MDM4MTIyNworQ0VCRUYwQzk0NDBEQzAzNERBRDlDMTlGQjI3QTM1MDIzMzExMkIwQTMzOTM2NkI3MzczQ0UwNTg0NTZFMEUxRgorMTM5OTM2RjZDQzlCNTA0NDFDMkY1OTk0OTc3NDI2QUQ3REM4QzcxN0U3MzdGOEMyMDFFQTU1QUQ5NDkwODMzNgorRkZFOTU2OEMwRTZFRjMyMDJEOENEN0I3QTZDQzIwM0VDNjAxRjlBN0UyQTQzOTVBQkEzNDA2NTAzREVDQUM1NgorQjAzMjE5Q0VCRDBFNDY1RUEwRjYzNUYyNkQ5ODRGNTk0MkU0RkIxODZBQjg3NEYzRTc0Q0MyRjJFMzc4QkQ4MworNTdDRDFCNjNDOURFOTk2MzU4N0I3NDU3RDU2MDI0RDk1NjQ1QURFMEQ5NURFQTc0OEE2RUNDNjgwOUMyQTdFOAorNkE1NjhGODNCRkIxODRCMzEzNDlBNzcxREQ3MkVEM0ZGRThEMTZFMzEzOEVDNDlFQzZENzUyNEU2MTEzMzFDNgorREIyRTE2MDU5QzlBMTI1MTJDNzIwOEUzQjMwRjA0MjczRTIwQkFGNDFFRjhDOTZCQTRCMTdGMzE1NzJCREQxNQorM0ZCN0QxNUNFMzE2ODRENzIxMDgzMjA4RDc2OThBMzFEMDcxNjA5MjdDOUE3Q0Y4QjdFQkU4MUE4M0MwQkQ0NgorOUNBMDYyNDVGREEzN0YwRjJERjc5NDhBMjBEMTIxNjYwQTczRTA3OUY0QUJERDhGOTAzNjdCREJCQTMyMzk1NworMDYyNDM4RkYzQjI4QTM4ODAzODBDREM3NkEwNTUwOTZEMzBGQUJBNEFFQ0FGMjM4QUJDMjUxM0YwODlBNkM0RAorNjdFQTAwNTBBMzRGNURCRTVGRTMyRDlFNzVFNjdGNEM4N0FEODExNURCRkMwMDEyNERCNEQzRjRDQjYyQ0EwMgorNTlCRkU0NkU5MERFOUVEMzA2RDZDREM1MTAwNUMyMzNCRDM5RjQxQjI2NEUyODkyQUQyM0U4RjkzQzhDNjFBMAorQjVDNUNDMTAyMTQxMURBQjUxNTAzOURDQUMwNkUxRkFFRkEyNTlFNkFCMDcxMzVDQkIzNDVFOTBFMkJENjRBRQorMzdCOUE0NjkzNEJFQjM4M0QzQUIxNzg3QTI2NTZGQ0NFQTY0NjdFQ0MyNTgyODA3RTdERUQxODFDNTM4MjlBNworMTgxOEMzRkIxNzU2N0Q4MUQxQTgzM0UwNTU5Nzk4RDA2MTYzNzgxRDc4OTVDMzFCMUQ4MUNDNDM5QUQ1MUNBMAorNUUzM0U5NjI1MzA2NEI2ODRGMzI2MUVGODZBQTg0NTJCMzJFOUM1OTA3MTUzQkJENjkyQkY4QkQ0QUM0NUUzRAorNzE2MTQ4OEM3MTZDRUZBQTY5NTg3N0IwMzc4MUY2NDg0MEQ0OUM5QzFCQ0U5RDVFNzU5QkYxODEyNzEyRjJFRQorMDU0QTM0RjIxNTNBRDZDOTUzRTc5NUI2RjQwQUZBQjExNUM1RkNERDE4NjRBODVDMUFFRjVEQUY0MDMzNzA2OAorMDg3MzBCQTdBQzU4MDIxMzg4MUY4QUYxRjc2RkM4MzBFQzc2QkU0Q0U2RTA5MEExRjkxNjE4NTk1QUI2RDFGQgorQTg4NUQwNEE0RTczQzlDN0E5MjNEODEzMjc1ODEwREQyQjJBM0FCNEZBRTRCREEyNEZDMTcwQTRCQ0Y0NkUwNQorNTcyNTI5QTE5QjA5RTVBREVBQUREMDcxRUFDMjBDNURBODg0QzdENDE0RjVBQzUyMDZFODdFNTM5ODlCNzM3OAorQkFEQ0VFQzZGQ0RENEI0RUEwM0VBOTk0RkRGNkE4MEEyRTIzMkIxQTAwN0I3NTU0NDcxRkMxREEyNDkwMTg5NgorOUNBODQyODNBMDJGQTFEOTE3NjAyNkJDMTUyOTE0N0YxOUQwNzUyMUE0OTk3QjcwMjU4RkZDMDM4MjFFRUQwQworRDQ0QkM5QzJFNjdDM0NEOTk3MTk1NEM1OEJGMTc3NUQ2MTExNUI3NUUyNkFGQ0MzQjdDRTZFNUVDQjhDQ0RGQgorNjQwREU0NDAzMzQ3MzdENjNGNTM5Mzg1RjgzQkJGNjAzQjYzMUFCMkY3NTBEQkFFNzA3RjVEMDA4NTkxQTA1RQorOUQ1MzJDMTY1RkEzNUI1ODBENjkwMTM4NDYzMDQ3Rjc3RjEwRkQ0RkRDOEY3MjQzNjc1NDVDMEY1QjZBRjk3OAorQjZBRkE0OTYyNEVDMkFFQkNCMkQxOUU5NjUyQ0M3NEI2NjI4OUU0MkE4RkM0QTY5NEYxMzYyNkMzQ0EwNTkyNgorQzEzNjlGODBGRjExMTRGMEVCMDNDRkE0MEMzN0IyMzI3OTkyREQwQ0M1OThGMTBCRDlEMTQ4MzA4MENGMzNDMQorMDJERTBDQTdCQzM4NDI0QzM0MzhCNENEQkVFNjY3OTNBMjQ4MEExNUJGNDdGMkZDNjIxRTY2Q0M1NjNGNTA1MgorNDkxRUNERDlDMzhCRTE5NjYxNjE0MDNCQzIyQkE0MUNCM0ZGOUU5MEE3MEE5OTIwNUVDQzU1OEM5MjhGMkZFNgorNUVBNTIwMzk3NzEwMEZEM0FCRTk1M0U3RTVCQTU3QUUwNzAwRTMzQTBFQ0I2RkM2OTUzQzkwMjlCMjVENjFDNQorRjU3MzIzQUVBMTBCNDNENUE0NkM2RjI0OEYwMjFFMDk2RTAyQUQ3RUIwMDkyM0IwMjI5MzM2MzY5RUM4MkZFMQorRjFDMTk4NDU2Qjk5ODI5NTY1NDlDQzQ0MUI4NTk1MDFGQUEwQ0U1MDdBOEIxMzFGMTBCQzk5QjA2MEI4MTEzQworMkRCNTM2REU4NDg1REYzM0YxQkRGNEZDRDU3MTA5OENDNkZDNkIyQTgyOEQ4NDc4OTkxQjM1NEIyMzA5RTMxRAorMERBRTNFOEZBQTAxODlCM0MxRTgyMDhGQzRDMzFGQkY2NDY4OUJGODFCRTM5RkZDMkU2ODAyNDZCQ0ZFNDQ0OAorOEZGRjRDNzUyMkNDMTJCNjIyRUU3OTgyRTBGNTI4NjNCOTc5NjVBQzJDQjc0NDQ0NjE4QzY5MTk3NUQ3NThFNQorNTM4NzhDNDQxODBEMkJDQUM0Q0RGRjA2RDFGMTA5RkY4NTgxOThDRDIyNUM3RjlCQ0U1NjREODYxMzk0NzMwQgorOUE0Nzg3NkNEQUEzMDBFQkFBNzkzQkREMjg4MUQ2RDBBNjZEMzcyN0M4NzFEOTdGMTk5RkFGMUNBNDU0MjVCRgorNUI0QTE2MUY4QzE0MDhBMjBGRkFFQUQzMTE0MUIxOEFERTZEMjI5RjU3Q0UyOUU5MkRGOUZENTUzMjc0Q0RFNAorMjhFOTQxMDBBOTMwQ0Q4RjQxRjlCRjYyODU3NDNFQzVERkM5QkFEQjE5NjAyMUUwNDVCQTIzMUIwREZGQzhFNworM0VCN0I3QkM4RjY0MUNGMzM3RkU1N0QxN0JDRDAyQzQ5ODBGRjFBNjQ5RUU2MkQyNDQ1QzI4MDMzMzU1NTAwRgorQjQ2MEM1OEJGNjNERTEzMEJBODI5MDk0MDQ2MTMzNDgxNDlGMDFEQTM5NkFGMDYxOTVCNEY0MkQ0MDJGMjJBMworNzA4REFCODdGODVFQTUxNUI3NDNDQjk0RDQ2NEYxQzk4MEYwQkVDMDNFQzdFMzQ5MTFGMjg4NDU5QjU5QjY3MgorOTQ3NEM5M0NCOEE4QTAxNkVENTIyMDFGNEU0MzgzMEZGOEVDRkQ2NTI5MjRCREEyMjNEQTVFMkIyRDZDMDU3RQorQzhFNTU4ODcyRDc2MkMwRUEzNDM2NTdBNjI3RkVCNUY0OTIxMTREMzhFQ0E5NkIxNEFBQ0FBN0VERDg1QjU2MgorRUEwODdENzY4QTk2NTA3QzFFODE0NTc0QjA4NDQyQzQ5RUEyQUY0REQ2N0MzMjJDM0Q4REQ0Njg2NjMyMDY3RgorMDFFN0U2MkU4NDg2QzE2M0EzOUMyOEY3MDcwMzE4RkU5MTE2N0QxNDgyNjVCQkFFODA4OTE2OTAwRjBCNDVGQworQzEwNkYzQ0IwNDdCRTgwMEJGNDQyQTc1QkNGRUI5NEU3REM3RTMxNzg0NTA5N0EzMEYxRDI2ODY0MzlCRTA3NworNzQxQTk2OEYzRDRDNTkyNzAzMDE5MkQ1MkNGMjUzNkQ0Rjc0ODkzMjNFQUI3NEVGQURFQUUxRkUzRjg4NzkyNQorOEUxMDYzNTJGQTBFRDk5RUJDOTdENjkzRDI4N0FEMjlFNTdGRDFBQTZBOUVDMTIxMDQxNjM2MzExMzY0RkNERgorMDQ1RTk2OUZGQjc3NjFEMEVERUQzOERCNDQ3N0RBNENFQjA1NzU4QjMxNENBNjMxRTcwNEFFQTE4MjdCM0EzQgorOENGOEI0Nzg1MTQ3NDI2QUM3Rjg1RDE1NzYwQzk2NDMwNUVDNjMxQjIxRjYyODBFMzFERUQ4NTQ5RjEwMEI4OQorOTE4RDZBNDhCQ0E3NEZFNEVGNDVBNkU0RjlCNjk0QzIzMjRCMUU3MDAyNTZCODRCN0REQTNDMThFRjg1NDYyNgorREM1NDI5MTAwM0JCMTEwOEI5OUMxRTczMEM4RTU2MjgzMEUxMkE1NjFGMUMyOTJCMUVCRjgwOUVCQzI1NThEQgorNzFGODk0OUM5QjQzNTUxM0JGMDFBQjg2RDdBNzk4OTI4N0QwMjhBQzg4MkE5OEI1NkVFQkM5NTU4MkQwNTREOAorMjFCQkQ2RDRBRTE0ODM2MTYzMjFFMUMxNDg2OTlCODJCMzM0M0MyRDYzQkFDMEJEMjkxMEUwRUU5N0FCRTQ0MgorMEVFNjAwM0QxMjRENDVFNENFNzVDOTk1QkY3QTc1QUFCQzk2Qjk2MTdFREQ1RUQ5MUM2OUZBMzkyOEY5MzMyNQorRDdFMzU0RTgxRjhGNjNFMjVBRkJBODA0NEQ5NUZFNTYwRDc0REY1MUZEMDBGODgwM0U1QzI1N0QzODBBM0NFOQorNkYyODI0RUUzQzUzOEIxQ0NENTlCNEJFN0RBNzQyMjAwRkNGQUQxODc3MjJFRUNERjhGRkNCNTlDODMwNkFBMAorRkVFM0MwNjg5MDkzRkZGMUZEMzkzRDI0RjFCMUE2RjBBNUNDNTIzQUIxREM1QTM0Qzc2OEI2RkRFNTdGNzU2QQorREVFRkI2QUNDN0RDOTkwQzBFQTA3ODcyQjkzNjREMkQwMjRCMkQ1NkRGQjQxMDMyNDIxODRFMERGQThFMkEyNAorQTZDNUY0RERGQjFBM0Y4NkE1MDhEQzE1QUU4NUIxQzVBODQxNjE3NUI1RjFGRjMzQjRDQjcwRkZBNjcwMUQ1RAorRDNFRTMyOTQzOTFEQjY2OUMwM0RBQzQ2MkM1MDE1NTVFMDMxQUE2RTdGMjIxREFBOTk5OTlFODdCMkMzNDVDQgorMjM1MEQ3RjYyMjQyNjM1RTU1RDkyNkZFQ0FGNENGRDNCNTUyNjZCQzg2NzIyQUI2MzE3NzFCRkRFOTFBQjdEMQorQjU1Qzg2NTFCRENBM0JCRTc3RDQ5RTI2RThBN0I1NjQ3ODA2ODYxM0ZCMTMyNTIxQzRDODAwQ0E5M0E5M0NDMgorNjAxRDQ4NjlBQkY3OUVBRUMzNTMzNjNGNkE4RTcwMDU4MzFCOTI1MzIzRDczNzBCMUVEQTlDQjkxNjI2RTQ1MgorMzVFOTYxQjNEQ0VGRkEyN0Q4RDAwOTJERDkxMTk1MUQ0RUM0OEY5QkNCRjRGMTlFNkRGRjY4MzFCNTc1NUJGMworQTU5M0ZBMTMxNDQ1NUMxOTIzRThBOERFQUJDODdBOTNDQjRDRDIyRTFDQUNBN0M0QTRGNjE3MkY3REE2QjZBNgorRDA3RTQ1REEyRkNGMTZDNjdENzMwRUMyMjFFM0UzMjE3Q0I5MDc3NTZDNTc4M0RCMzYzRTc3NTU5OEZGODM0MgorNzBFQjM2QkQyMzA3RTM1OUE3QTEwREIyRkRBOEJBMTgyNjRCN0M3MTU5RkQ2QjFDNTY4RENCQzY3RkU3NUFCMQorQTE3NTFCREI0MjQ2QTEzNUFGNjY0NjA0NEU3RUEzQkU4NjhEQzJCMjY0MzM5NTEyOTAzNEIxNERGNDJGNEI3NworRDUxM0VEQTJFNDM4REJBRUIxNDdDQTZGNDEyNTYwNDhEQzAzNDY4MEU5MUNDNUI2QjgwMEZBNDJGMDg1NzkxMQorODI3OTBGNDczMTE5QkYzNjhENUE0OTI1N0Q2NkM2NjU1NjM0MDYyNjVBNDc2NjFENTYwMzI5QkM0Q0FFQzlFMAorNzc1Njk1MjI0QkREMzQ3QTg5NkUwQTQxMTYzRDU0OEI4REQ3MDE4REYzNjhFM0U2RkUzNjREREFBQzAyMEI4OAorMjBBNkMyMThDRjBENDBCMzAwQjE2NkIzMTI1RDgxQkNGNkMwNEY0M0VDN0YxQzFFMzUyMkM3RDExOTQ3M0YwMworMjY2NTQ3Mzg5REFBQjg0M0Y5QUQ1MkQ5NEYxMkJENjIwNzYzRkQ4QzEzQjBDNDNCMjlFNDAzNzNDQzg2RTlBNworRDgzRjIyMkU1QjI0NDhCRkI0MTlCM0JBN0VEMjA5QjMwNDg1Qzc4RjdFMEM2QzQ4MjEyQjg0MThCMTRGQzJCRAorRjRDOTI4Qzc2OTlGNjdENkNDQTNEQTc0NjJEMzc0NDI4MDU3ODI1MEU3RTY3Mjg3ODFERkY5Q0UzNEI1NDAzQgorMDcwMzBFOUM0QjJFNjlENDMwOTgyM0RFMENFMTNFRTc1ODgzNDQxNkY5REQ2RjkwQjhEREVDQTFDNzYwM0RCRgorNjIwNThENEU3NjhEQzE4QUI2Mjg4MTVDMzBGNTlDQURBNEQ1QkRFOEI0MEYxQTU5QzNDQUUxMDdEMTY5NjgyMworQzNBRTQzOTNBRDhCRDFDNUFFMjRBRUIwMEQyRDJDRTg4NzYyRDMxQUIyQjFBMUQ0NjIwMzdGMkYxQjNCNDhEQgorNTcyOTg0OTBDRjBDNEVGMjNDMzQyMTUyMjY1Rjg2RTNBMEJBMTQ3RTM3MDBEQzNFODg5NDc1NTQ4QTI0QzU3NworRDExMzk5Qzk3MURDNENCOEMxMjIwNjZEMjBCMUZEODYyQ0NDNDQwQzZEOUY5QzBEOTEyNjdDRUJDMjUyQzY3QgorQTZDN0U1NDVEREU2OUJCQTRGNTQwN0VEMzBBOEVFMTY1RTA1RTc4RkZENzYzMkFCNTY0MUQ3NkE0MUM2QUYzNgorMTQ5N0U2QTNBN0Q4NkM0QzBEM0I0OTE2RjA0NENFQkVGRjJFQjA1MTRGNENGOUZCOTY3Q0EyQzFFMzY3NkE5NgorRDMwQjJDQURGRjA1QzMyOEI2ODkxNEZCNTg0RUE1RjQxQTY2QUU0QkNDOTREOUEwRTMwMDZGODJBOUI5MEVGMQorMDBEMTUxOTI0MEQwQTFFMDgxMEIwQjA2MTg0MUE0OTE0M0ZEMEVDNEIxNEJFMDk1RUZGNUJGMDZGMkJGNDIyNgorMDYzNUVFMDExRTNGMDVFODA4MzhFRjg2QjZGMUYxODNGNTc4ODczODEzQTZBRUE4NzQyOEJFRDRBM0FBQzlFMworNUREMEZFODU3RkM3NjkzNkI5NzlEMTI5NzNBNTgyM0U3NUUwQTg3MzFBRDkxNEI2NjZEOERBRTJDODE5OUU1NgorMEUyMzZENDdGMzY1NDlBRUFDMUE3NDk1MUQ0M0E0NTNBREQ1MTU0QTkzN0VDOUNEQ0FGOUQzNzI4NDA2NTk2QgorNkVBN0MxQUU0Q0IwOTg1NEI1MjUyM0Q2Nzg4QkFCN0FCMUNFNDM4OUE4MTFFNEU4NDUxRTM2OTVBQzlEMzM2RAorQjUxRTlFNDkzRTY1NjI4RkJGRDUxRDZEQTgyMjdBRDA1QkYyQzRBMTUwNzZBNTFBM0I4M0Q5OTc1MDE4QkJGMgorQjNDQjJFQkM3MkI5RTU3N0M3NDBDQzY0ODU0NjM1Qzc2MzdEQTE1N0Y2OTdFRTNFRTFGQjRFNTY1N0NBNjAyQQorODQyQUMyOTUyM0IyMEJGQ0IxODUwQzVCMzI5REZDMzA3QTE3NDk4RkY0QzBEMTA1MEU0QTBCNzJCMUI3MDYzRAorOUU2NTFCOUMzM0M3MzJERUVBNEI4NThFOENCRDJCN0Y1MDdBNDIzMjNGMEY2MjVBQjUzMjJEQzg2NkUwNjE5NworQzNGNzYxRjIyNTc2Q0Q2QzIyOEZGNjlFNTRCQjFEOUIwNTRDNkI4QkUzQzYwNDMwQTY5QzI2MDlBMzJFREVCMQorQkMyQjFBRDAwQkUwRDMyRTMyQTY2RDE5RTU5MEJDOEZFNjI0NTc4MjM4N0VBQjJFMkM1NTY2MEEzRERGNjNDMgorQTE4RUVCREE0NDhBNkNBM0UzQUZFNEU1NjJBN0FBMERBODdDMzFEQkM4M0YyMDhFN0Q4MzgyRTY0MDgyQTRDMworRUVGRDgzMDY4REU2REE5NkY5MEUzNTUzQkQ2NjQzMTRGQUM0QTZCQ0NBNkU1MjBBNUQwRDlCQjQ1MTEzODlCNAorRTNFM0FDQTNGNTFENDdCNjJGMTFEOEI4MEE3Qzc1Mjk5MTk2RjUyNUY5NTgyRjMzQjI5NUNDRkNFRUQ0QTI3QQorNjAxQ0Q4MDUyQzlCQUUzMEExMUJDRkYxMEU0MjY0OThEMjNBMEUwNTg0QzBEMTcxREZBM0Q1MjY5NkExQjg2NgorMTA0MTNGQTYyNzQ1QTgyNjk4OEJGRkYxRDU0MzI3MUE0REY3QUUyNDJBN0JDRkUxNTRGRUNDQjYzMjQ3RTVCMAorMTJGNDVFMERBQkUxNTY1NEUxNjA3NDdBNDg4MkNFREYwMzZBRjdGM0E2OUYxMTkwNEI4RDRFN0ZCN0NENTgwMQorM0E0MDdDOTI4MTY4NTY2OUVERUNDRjkxQkEzQjI1QUI1NUFDOEU3QUQxMkM5RDI2ODM5REM5RjY5OEMxQTg1NAorMkNGNDMwRjJCNjI1RDNFNjI5RDg2NUEwMTMzNjk1NzNBMzZCODlENkE3NjEzM0U2NjdGOTUyOTIzQzM4NzY2MAorRTJCOEJCMUIwOUNEMzg1QTMzQ0U4REU1MjA4QTdBOUI0MDRCODQ1RENGOUIxODcyQUZCNzM0RENCNUU3MkJGNgorNjU1RkJFOTRFNTRFNjk5NEM0RDVGQTY1MkQ3Q0FGQjAwREZGQzg1NDc1REZEN0Q4Q0EwNzg1ODE5ODVEQjU1MQorNTMxNDgyRkJCRUQ2MTY1MkU4NjJGODRDQUM0MkM0RDc4NkYyNzRERUEyOENCODA1OEVFNjRDQjNEQkExOTk0MAorOEU5QURGMTMwNkU5NzFBQzhFRDYwRjQyMjY4NTQ4RDE2MzM5RENDRjBGQ0IyQTUyRDcwMjQxRDUzMTQ2OUNERAorRjMwNkUzNTBFRUJDNDYxMEIyMzdCOTNFOUQ0Mzg1RDE0MTRCMzA4MTJDNDFGQjg5OUE1RDE2QURGOERDNDA4MQorMUYyMDdDOENBQUU0RDM5Qjk5RTkzODZDNUFBQURCREUyMzJFOEI3NTE4MTFDOTcxMTI2REY4MjI5RDgwMjE1MworNURCNjJEMjg2REFERkM4NDdEOThBQUI3M0IxNTlGNjFGNkYxQkJBOUQ0RTE4QzcxRDk4MjQzNjI5NDE3OEVEQgorOUQzRTJDMzM5NEY4MjRCMUE2N0IzODEyMjRBQzJCMTI2REMwN0Y5RDFGQjFGRUI1NUU0RTE2OTgxMzA1ODRFNgorRUM3ODk4NDcwOTBBQzM1OUE0NjVDMzM4ODlGRDY3NzBCRTc5RUFCNDRBNDg5QkU4NkRDMjEwQzYxMTY3Q0FDRgorMzI4QkNDNTBFREVENDU4QTEwRUMwQzBFQzkwN0E4MDhCOTAyQjkyQUNBQkU0NDJDOEQxNzUwMzk4MDkyOUYwNgorMEVGMDRDRUIyODI4MzAyRTlFQUVBNzVCNDNBMTQyQTc5MTUwOEQxQzM1NzZCMEYwNTg0QUYyMDY0QkRFMDRENQorNEIyQTk4REQ2NDg5NzRCQjcxMkY0RDRGQTBDM0UzRjI0NzM1NTcwOUNBMTg3RjJFMjI4MDg4NDdFNUJGQzBDNQorQTJEMkY2QjUzMzQwQTk0MzM3OUQyNkJGOTVBRDBFNzcxRkRFRTQ3RTg4Mjk5RkJBNzBFRUVBMDlCNUNBRTkxRgorMzkyMEY1RTNERjE1OEIzMUU2MDk3MURBRUQ4MjExRkUyMUNCODI2MDlCNTgxQTIwREQ2MEQ3MzhDMTg2QThGMgorQUQyRjgyNkE5MDMxODMxQkQxQjUxMEExMUJFNUM2MUQ2ODM5MjI5NTdBOEQ5MDk3NzNBRTFFQzZDQTNFNjE1QworMjFBQzRBQ0RDNkZBQkNDMURFMDAwN0QxNkYxMzdCMjY5OEQ5MkMzMTJENTkxM0QzNUJCNzAzQTY3ODQyNUQ0MgorRTRFNDkyM0MzRDZCODQ0NjgyMjE5OTE2QjMzMTYzQ0U2RDg3RUZENDNFQ0NFRjdCRURENTk3NDAxRkE3NUE3MAorQTNEOTAyQkY0RDg3MTZGRjQ3RTVEN0IxNTg3QURGNEVFMkY4NzE4QkQ2RUU5QTNGQTU4NDYwRTg3NUFEN0U3OAorNDVDMkY0OTk4MUIzRTREREFGMkEwRTU0NjNCRDg0NUEyQjdGNjVBNEE3RjU4Qjc4MTk0QUUwNEY1OEZFNTNFMQorNkY4MDI5REJGRjE4RTFCNTJCREEwOTg3OTNFRjc0MUMxRTRBNzA1QTE1OEU0N0ZFRjBCN0Y3REVGQjlDOUMzQgorMUEwQjgyREY2NkU3MUFEMzRFMEYwQTBBRUYzMTRFNjA0MDkwMkFCQTA4MjJBNDRCMjA0MDE1NkVDOTQyQTc4QgorNjBFMjYyNTc2ODZBMUMxNTg3Mzk4NkRFM0JDRkVEMkE1QUVEMzkyRjk0NzA5OTEwNDBENTE0Nzk1MUM4NEQzNAorNzE1RTc2N0ZDNkQxQkQ4NTVDNkZGRkZDOUI4RTBGMjEzMDNBQzAxRDE1RTIxMDI0Q0QyOTM2RDhCQjA1NEU1NAorMTEzMDNDMkEyMjU5OTlBQ0U0MEY4MzhCMzZEQkM5Mjc5MUFEOTcxMTI0MDg0MDlGREU3NEQ3Q0UzNUIyMDZGRgorMjlDOUZCMjNGNzFENUQ2NUIyRTg5NjFBMDA2QjA0QjgxODM2NDMwRTBGRjM5ODZFRjBERkFBRjIyMkRFRTUwRAorRDM5RUYxQ0Q4QUVEQ0MxRTdCQ0RFOTNEMEJFQURCREE5NTc4MUY2N0U1QUQ1MjNEQ0QyNDA0Qjg5QURCMTJDMgorNTQ1MTlEMjYyN0Q1NzdCN0JDQ0I2RTlEOEEyREM0QUIwQzlGMkZGMjdFRkM2QkYxNEYwRTE4Nzg2MDcxOTEyMAorQTlGNjA0QjU3QUIwNDczQjY5NTAzODg4M0E2MTM4NzI3RjFFMDkzQzFEQzg4NDhFRTJCNkI3QUIzMzc1RTJDMgorNEY5NjY2RDYwRDM3NkFGNUVDMDFGNDA5RkQzRUVFMTNCMEM2N0EzMURDNTVBMkMzQzBDOUU3QjZBRDA3RkZCQgorMUQ5MUU4MDlBQTY0ODkwRUVEQkY2OTVEMTYxRkM0RjUxRUI3MjUxNEU1NzVEQkRFRkVBNzA4Njc1MDhCMUUxOQorOERBNUQ2RkE4NUYwQjFFNTQ0RDRBM0EyRjQzMENDQ0QxMzA3N0Q5RTQ2REY5NEFFRDMwMERDOTBGMTk2QUVGQQorMjEyRTVENDVDMTcyODVFMkQxM0E0NEU1MjQyNDNBNjY4QTIzQTZDOTdCQzdCNkY2ODMyMUNENDgzNzYxOENBMAorM0QxRkJGOEVDN0M2MUVFMjU2OUExNjM1N0QyMzAxMUMyMjczQjcyMjRDMDNCQjVEMUQxNzY3RDA0QjExQUVENAorOUIwRjIxNTdFODQ1NzZBQjg2NEVGRjA5N0E2MTcxNTI5RTBFNkFEQjFGNDIxMzlDOTFDNENFRkE1NDNDMDZCRgorQzVEMUIzRERBMjM4MjIyMzRCRjBFODk4RDQ2Q0JEOUEzMTYxMDFFNDExMzg5ODU2Q0E2NTA0QUI3QzFERjdBMworODYwMkU0MTMwM0M0RTk2N0VFQjU0RDU2QkVBRjE1OUJFMDYwNTU3QzlERDAxMTZEODhENkIyNDMwREZBRjQ4QworREU2ODY4QTZENzRBMkRFOTQwNTJFMUI0NEYwQ0FBMEI4ODQ2OUIwRTRFNzc4MjUwRUExRjEyMUFERDBEMDg5OQorN0M4OEIxN0EzRTcxOTY0M0Y5RTFFMThGNzgxRERBMzA2MTkwQkM4NzI1MTU2QUExM0RFNkI1ODlDNTVCNDIxOAorNkUwM0EzRTMzQjdDMzExNTY4NTlEQTMwNzAwMzVCQkQ2QjdGQzJGQkUzRENCOUU5NDY4OTVCNjMzNzU0RkQyRQorQ0IwOTE5RjUzNjU1Qzg1MkZDNjZDMjVDODM1MTFGRTREMTFCQkExOTQ4RUMwOTRGRTAyNDIzNEI0M0ZBNDE2MQorRDZEN0I2OTE3QzQyM0Q4MEZFRUZEMTJCMzJDNTBGNDVDNDY2NDNEQkVCMjc1NkJCMzYzOUFEREI0QTYyOEZCRgorQTA4MzgxRkRBODFFOTAwNERFMDQ2NDRCQUMzM0FDMDZDQzQ2REVBM0I2MTc4NUYzRjdBQjIwRUIwOUFEOTBCRgorNUM1MjI1MTJDMDlBRjdCOUI2NEQyRkNCODhEMjk3QzkxMTMzMDJENjAxNzc4RjRBNDA1MDIyMDhCREZCNjIzNworMEE1ODUxN0YwM0Y0RUIyNEFDQUVCQUNGRUQ3MkRCOTlDNkYwOUIxQTlCNTJDMDcyQTVCNDU3M0EwQTMyN0E5MAorOThBMTBCQUI3NTEyNEEwMEI4Q0UwQUVFRjI5QTZFQjY0MjNCMDJCRTU0MkQ5Q0Y1QzFDMjU4M0FCMjNCOTQ5RQorRTdGNjBGNjQzRUUxREU4RjlFRjVBNEVFMTg1MTk3MDU2NUNDMzkxQjE4NDlCRkQxQ0Q1Q0M5OUU5NDlFM0M2OQorOTg2MjkyRDA5Mzk2REI1N0ZFMDY4QUY1RTFGQjYxQTdDMkI4QzYwNDRFRERGMTdGOEM1QjJEQjlBREFEOTNGRQorMzg2MTg0ODcwMTgyNzQ3MzMwMTk4MTMwMjdBQjFDNDNENzc4RjAyRUI5NEIwOUZDQTdGM0UyMUM1NjZDQ0Y2MworMzE3MkEwMjgyN0ZBODA1NkQ1OUUyNkM3NEVFRkI3QjY1MUVERTdDNzRFRjQzRDIwNTk0MUE1OERFNUY1QUJDMQorMERBQjJFMEFEODYxN0NBMjZDQTk5MDJERjkzQUZENDJDNERGMzA4RDhERUNFQURCMzg0QTkxMzM1OEIwRjI3OQorNzY2RjE4RTZGOUM5NEVBRjc1NEM3NEYyMTgwQzYxNDE3ODk5RUU3QzAxQjUyRTVFRTg3M0FBMUVGRkNDMEREMgorQjU4RDkzRTY4QzRBQTQxMTFFNzk2NEU4MkZGN0QxOEE2N0ExNEZEMTgxQUVFMkUxMkM0MDBFNkJFM0RBRDVGMQorMzNCMERGRDk1MjI3RjNCQUIzODE4MTNEOUU3NkJFNzI2NkExM0E3QjBERjA2QkVGMjM3QjQwQjVEQzgxQjVENworQzYwMUZERkQwNzk2NUZCQTZBNTFENjVERUEyNkNDMDY1MkYxNDlCQTg2QkQzNjZBQjJBNTEwQ0Q1REU5QjE2MworNzYwMUVCNDI3M0IwNzAzRDVBREEyMTI2RkE1NDcyQ0Q0RkNFRTk5QUYyQTdBRkI3OTgxMDQzM0RDOTNEMDI1QQorOUNEQTFFM0Q0MzFGQTE4QkJFQUIzMzNBNTEwMDgzQTFGNzZBNzE4NzIzRDQzNjM1ODI2QjUxODY4Q0MwQzg1RQorRjE2QTJBN0FGMzlGQTY2OTNBNjA1QTY1REY0Mjg1MUM0NDRGNjFDQTM4RTA3MzQxMkFDODlFNzMyNDk5N0FEMAorMkI3MDlFRkU5NkYwNUIwRkM2MEM0QTNDODA0QUY2RDJBNkMwRUVGODUwNzI4Q0E3REQ1NDE5REY4QkYxQzMyNAorNERGMkRCOTQ0QTY4M0ZFQ0RBMkIyOUFCNTY0RkU2RjY1OTAzN0ZDNDk5RjFENkZCN0E2Mzc0QzVDMzM2QzhDNworNDU5MTM1NENCMUU2QUYxMzUyNjFBQTMyMjJGQTE1NkU2MTI4RjNFQURENTkxMDMwRjU5QjNEMUYwNjE5QjUwNgorNDk4Q0MyRUZBNzJDMzVFODhFRjM3RENCQzZDRURGODM3QzUyMkU4OEE1NjUyRjk0N0M1NDA3RDhGQkFGMjQ0OAorRUFBMUY0QzAzQThBMEMxNzM5NDY0MTVGQzA2QjQ2MDRGNzc5NTJDNTkxM0U0MjYzQjc0MUNEOUIxNTEyOTEyQgorMENGOUQ4OUY4MjEzMzcxOUJGOUQ0OEM3MTI3QkRGQUIwQjI4MDExMzQxMjdDMjNGODRGOEFDMzEzRTIzRjkxRQorMkQzNTdCOTdBMzU5ODVCMTgxNUU1MEI2NDVCNjBBODM3RDUzMEU4QUM5MzlFRkZENUIzMzY2NTlCRUNBNUYyRAorRjQ1Q0FBQUYyQkZDNTdCRUNBQTFBODAxNTZDQkIxRDgyRkUzMjYzOTk4MTQxMkI0Nzk4NTAxQTE0MDRGODQ1OAorMEZCNTNGNDgzOTcxQTM2NEQ0RTQzOTBFQTE4NTc1ODg1RTI5RUQ4QzM5MTgyN0FGQUQ3MTI2QzFBN0E0M0U5RQorMjk5ODk0MTYwMUVBODYzRjg5RUQwQ0Q3NkRFMjk4RDU5NEQxNjdERDRDMTFDMTYxRDU0QzgwNEU4QUZENzhBNgorNkM1QTFBRkMwQzkzOURGRjE2NTlDNDg1M0NFRUQ2RjFCQkQ2ODk0NjVFQUZBQTA1OUFBNDFDRjQyMjZDNzY5MQorNzE4NTQ3NDVDRTc1NDUwMEFFRjVDNzdGMURCQTQ3Qzg0QzYyRERCNEY4RkJEMTI3QzI5NDgzMTg5RUUwMEY2NworMTlGNjAxQTRDMEE2MUJFMUVEOTI3Rjc2QThFQjc4N0Q3RUU2MkUyOTJDRDJBRkIxRDQzOTZBNTMzOEFBMTZBNQorNDYzQjBDOENCRTczRkU0QkJDRDQ1MTdBNDM4NUE3Nzk3MTQ1N0M1NTRGQkQ2REVCRjc1RjY5NkRFRUEzNEMyRgorOTJDMDE0NzE2MzhEODJFQ0FBRjEzREZCMTg4OTZFQjVFM0Q1MkE1RjEwRTIyQ0VFNjU0MkY3REExMEU1OEQ4OQorQ0VFM0FCQURFNzcyMUM3NUI4M0NERjQ1RUJEQ0REMjU4MTU0NjI4REZERjg4MzQxMERERjc3OTJFRjVCRjRGMgorMjdGNTY1MDFCNzkxMEQ2RDM5QUQ1MDlBNEYzMTYzRDc4M0U5NDFBQUUyNDU3OUIzQUVDODk4RjIxRERBOTAxNgorRkVCN0Q0OTAyMkUwMDRBQjQ5NTU4Qzg3N0MzMTMzNzU0QkU5OUEzQzgxMTc3RDY1MTdCMDY2ODE4OUI1NTU4MQorNDlBQTA5MUIzRDZFM0YxOTMzMjM2RjU0NkY0NjUyRDQ2NDQ0N0M0NDMwOTUxMEJBQkE4NjlFMjE5RUUzMkJEMgorM0U0MEE3MzNDNDVBNzFDNzlCMjExNkEzNkE3MUJENzVFRkZFQTEyNjE0QUY2RTRGOEIzMzI5RDQwN0Q5NTFGQworMkVBRTUzN0M5RUU4NzJFRUVENzkyRDg5RkI1NkM1RjA4NDBGODA0REQxOEMxMjU2NDM0RTU4RkRCMEYxNTczNQorQjZFQjk4MzYzRTE0Q0U0RUZBMEFEOEE4NjMwMThCOTI0RjRCNEE3MDlEMkY3RUNGRDJDMkJFQ0NEMjc3NTM5MAorOEVGODAyOUFFMzM2NzZFRkZDNUUyODNDQzMzNzYwNTFFQkY1MEVBQUM1M0VBNzZCRTU4OTA0M0U2ODYyRkM2OAorRDczNjdGMDY5NTVDNzk5RkM0RkQ5OEZBNDMxOEM4QjhBMzg3NEI4NENGMDNBQTJGREYzODFBRThEMEZCMjIzMQorRkJDQzVBMTQ0QkU3RDRGOUExNDQ5RjlDMjQwOUU3MTJGM0REMTA3RERCMTY3Njk1ODQzRkFCRkU4RUMzMURENAorQTY2MEFEOUU3QjA1QkRDNDEyMjAzNDc3NjQxMkZERTExMkMxODU4Rjc5OTk0RTNENTAwMDUxM0VBOUY4QkI5NAorN0U1OEQxQkRCRjlDQjc5NzU4NUUxNkQ2QkVEMzUwQTVBRjBDOTk5RTQwOUQyMDQ4N0RGRDIxRDg4MTY5OUM5MworNDYxRjkyNUI3OTMwRkM2ODY3MzcyQjBENkY3QkRBM0JCMTlEODQ1NTE5NDk2MUQ5QTg4OEYyN0I3RUQzQjFCQgorMzJBQzY1MEUzNTEwRUI0QTU2M0JBQ0IwNzkyMTBEM0I3ODdEMTUzRUExMjQwMDU5MEEwMTg3MUM1RjdBMjlCMworMDM2MTA1QTE1MTNFRDZEQkVDRTM5RTdBNDZDOUI0Nzk2OEMwODNBMDFDMURBNDI4RDU5NjY4MTFGNUFCNzU2RgorOTY1NDg4MzJCNkVGRURBNDNDNTM0RjRDRTlBMkYzNzYwNzUwQzQzNDFDN0E0NDA3RDY5QzkwRUQ2ODkzMkYwMgorNDlERkE3MzkzMDExRUJCNTgxOTk3RkU5RkI5QUExMkE0M0MxNURCMUMwMjExRDVBNENFM0MxRkY4RTI4RkEwRAorNEE1RkU4MTUwMUVGMEVEMkUxRTJFMDE0QjYxM0E1NkRGMTY0RTQyN0FDOTYwRkY3MzM5MUIwNTRGQ0VCOEFFMworOTQ1NDU1MjA5NDFCODI1N0UwODI4NjAzN0E3QUI3NjMzRTZBQzdFMzc2NDU0NTVBNzE3M0E1MUZCOUVBOTExNQorODg4QTVGRDBENDE5Q0I5MEE3RDBENkY2NEI1N0I3NkZENzQxNzlGOEExQTE2MkYwQjlENTQzQkY1M0JERkVCQQorM0I0QUJCN0JGMjdGQzEwMzBDNkQxQTE4OEM1OTVCRTlENTlGOUNBOEYzQzQzNjc4NzYyRjZCMDE0MDg0NzFEQQorRDdBRTAxRDk0MEE1OUI3QTUwRDlDMDE0M0MwNzQ0Q0I5MEZBREM5NEE3NzEwNDUwQkU2NDM3MDYyRDQ4RThGMQorQTM0MzI2RTlDNjhDREUzQjdFNjE4NUU3OTNDMEFGNTA1REYxODZCRUNFQjY2NjY3RUUwQ0EwNEIwMDZBQ0Y4QQorMENBNDA3RUE5MThBQTdGRENDNDBEODUxREM1NkEyNzAxRTY0NjY5NURCRTU2RUE0MTkzMjAwRDk4MTI2MzA3RgorM0ZBNTQ3QUJCNzVFRUYyQjMzRURFRjEzNzFEN0MwNjhCQjEyOTdDRDk1MzZCQTIyOEM1MkY4NUYyMzcyRjNGMAorM0M4MDIzNEM5RjY4NzFEMEI3NjY4NzMxMjUxNkVGRDE3MzFGOTc0OEExNERBNjk3OEM4NjIxOUNBNjc0QjI2NworREZDQUQwRkQ3QkNFRjQ3N0UwRURBNEVGQzQ4MTYxQzQzRDU1N0M3MzIwNTJDNUU2MkFFRDhDMEIwMEQ1NEExMQorRkE1MUNBODc0MTU1NjM2MDNEN0NBQTIxRTI5Qzg0NTAxREEwNzc3QjE1NEY1REU5NDM3MDFFMDJCODExMzY2RAorMDVGNTIwQzlFNEQ1Mzg2NUEzMDYwQTk3MzlDQjZGNkI5OTdCRDUyQTcwNUJFQTg0NURFNDA0MzkyRjRERENCMAorNzgzREQxOTA2OTAzM0UxRDNFMDk1QzQ4MDQyMDIyMTRBN0UyRDE5QTEzNEQxMzA3RTVBMTIxQkZCMDQ3MTVCMworNUI5ODk3NTFGNTE0QjZFRTU3NjNEM0E4RkM2NEJBNTU4QzcxRTI2ODM0MTQ0RTA4OEZGQUQzQjE4MzYwMEQ2MAorQTVGQ0VBRDAyQzE0MTg1OTNCOEYxRTBERTZGQkYzMjRCREYyNjIwMjRGNzExN0NBNzQyMjYwOTQyNTg4MDkzRAorQzA4MTg1QTkwRjIzQjE4NUI1Rjk1NzY3NDI0QzUzN0RGREVBRDUwQ0M3RkUzQjhBRTNGNTEwODg3M0M5QzdCNQorOENBNTg2QUVGN0I3RjZEREUyMDJGQzIyNzQwOTU0QTEwRjZBRTNFODI2NkNFQzcwMDJCOUYyRERCQ0Y2NENDQgorMzNFQTcxNkM2RTFCN0MwRkRDOUE4QjY5NzM5M0M3RkJGQUJBMTc1RkFFMDQ2MTgyNTk2MTRCMDM1RUUxM0U3QgorNDcxRUNCMkFEREM0QUZEM0VENDlGQURFRTBDQzQzNDM3NUEwRURGOTY3MDExMzYxNDY2QTkwMENCRUQwRTc2MQorNUM5RTNENzlDQzhDODQ0RDQyM0VDQUYyNzFGRkEwMEI0M0QzODg3QjlDODg2MDU5MzkzMEQxN0RCNEMyMEQyQQorMUUyM0IwNzBCM0M5MDJGQzFCQzFBODhEOThCNEVDNTEzRjM4Q0RGNzMxMTcxNzc5MEUxQjkwQjQxMURDRkVDNworNkYyMzhGRkM4N0QxREU0MTg2NDA3NzlDNjYxODg1NEU4REU0MjNBNDhBRDg3NzkxNjMzQTAwMERGMEJERDQ5RQorRjY2NEMyMENCMDI1RjE3QUJGQzhGNjA2NzU0QUYyMjk2MzhDNkMwRDIxMUMwQUQzQUE4QUMzQzlERDVENjI0RQorMTAzODU0RERBMkE4MzRDMzQ3RTZGMjQyOTQ3QkYwNkVCNURCRjBEMzA2NkUyNEI4Rjc4ODAyMzhGNzJEMEYwQQorODhBNEI1QTREQjExRkVEREJBMTEyRDg5Qzc1NUIzNzU5QjE4N0Y0RTEyREIzRDkwQ0FGRUZEOTFEQTlBMTYwQQorMzlBNzc0OUJEMkU3REY0OTQ2NDU3MjYwQzZEODk1MzQ3RDA3NENFQzA2Q0QzRTQ0MkRGNjgyQjMyQTlDNDc1MworQ0JFNEUwRjZCRENGMTUwOTQ1MjY4QTdGRTVDMEJFRDc1M0ZEMjk4MzgxQjM0RUEwODI5QjJCOTREQzM4MDA3QgorQjcyRDBGQ0ZDQTBDREY1ODQ2MTkwQTI0MDM2RURFQzg1M0FDMTdCQzQwRkI5QkEyRjYyRTk2NTgxNjA3QzFBMgorQjY4RDUwRjNGMTg2RDQ4ODg3QTVFODIwNERGODREN0VERTJFNjE5QjY2RDJEMkFGRjk2OEY0NTNEOEU1ODVBRgorMkIyRkE0RkFEODEwOTQ1MzAxNzI0MjZDREY1Q0EwRjg3NjUwMjI4N0REMTA4MDA0N0UzMUQxOEQ2NzcwNEQzMQorMDdGMEJBMDkxREQwNTBFNDY2MEZENURFNDkxMkFCNUQyQTUzMDAzNUFEREEyMEFFNjFEQ0I3QjMwOTgxMzA5QworM0I2QkIwMDVFRjg3MjlBQjA0NTI2OTdCRUREQTVERTVBRDdENTRBMUQxNDU0REYwMTM0MjAzRTYxOEQwMkExMAorRUQxMTUxMzFCMDM5MzlFMDFGNzQxQTg1MDJCODhCQUI0RDgyQzY3MEM3NkU3RjRFODU5MkQ1RDZBNzREODFENAorOUU4RjNFQjE4NjIyQkUxMTY1MDUwRDkwQzg2ODEyODNEMjQ3NkQ2NDA0RTBCNzE5NzQyOUQwRjgxRjFDODQ2RQorMEZGMkVCREJCRkNDMjg5RDY5MjYwOEY0RDgyREZFRThBQjFEMjY0NDE5NUFCM0U0MzNDMjY0RTk5MUY2RTFCMgorRTJCMjFEREJFQjRFNDZFMDM1MzdCNEMzNTk1MDUwRTY1Q0I1MjVFMDgyRDY5MDI0MEUxOTc2OEFGMDYyRjg5QQorMjk3MEE1QzlDQUVFNjk1NTkzNzE5NjE5MkZDRTNENDIxMDZCMjBBQzQ4ODQ2M0IyOEY1QjAyOEI4MDk1MjlCNworMEIxNjQwNDQ3ODlBQjQ1Q0U4RkI0MEQ3MDEyN0IxRjM4NjdBMUVENTQ0Q0Y4QzhDRjJFMjRCQjZFMUE1MTRDMworRTI1RTMyN0U1MTk3MkZCRjdFMDgxM0ZFRTUyMDEwRTQ4OTQ0NjgyRkEzNDhBNjczMDZFMDE2NkJCMzA2OTkyNQorQzY3MEY2OTU0RTg1NjE1RUEyNzU4REFDRTkzRUU4OUE0M0ZEMEJGNTNEQzdFM0JDNjg5NjZCNDc1QzAwQUQ2NQorNzNBOTc3ODcyM0ZCQzkzMDQ1MjM5M0ZERTA2ODIzQTU5MzNDRDM1NzAzQzlBMzI3QUMzNjY0NDEwNUFGOTI3NworQTBDQTlBM0RGQzRCRDM0OEQwMDE2ODAxMjUzMjE3MTJCQTcxQjE2QzM4QTUxMjg5ODU5MjdGQjIzODY5RUVDQworODkzREQyNjg4MzY3OTgwRTdGOThFOEJEODMxMTA0NjRFMzhFQTc3MEI4ODMwM0FBMUREM0YyRDFENjVBNDFBNgorRUM2QkNCMzI5MEI4MjQ4NjAzMUQzRENCRUNEMUU2QTJDNDI4MjI1RjU2QjZERDY2NjY4REVBODRDRTE0NkNGQgorOTk1OEFGQUY5MzRBNUZEQ0NDQ0U3Qjk5Q0M4MDAyQzI3REU1NUQ4NjdGMUI5MTU4MTIxRDA0RDc2M0Q5QTNCQworRDBEOEQ4N0FFQ0JFREJDMjUwQTJFQ0ZDNkY0MkU1OEE4QkYwNjlEREU5NEE0QTE2MkE2Rjc2QTY3OTBFREFCQQorRTU2NEIyODZCRjIwMEQzM0Q5RkU2Nzc0REE5QkQ5MUExQUM0RTA5MDZDQzhFRUQzNTBBMjMyRkIzNUMwODRDOQorM0M1MjFFQUNGOTE0MzgzMTY5QzI3NEE4M0Y0RUI3OUY1QTBEMTBFNjNDQjgzMzgzNjZFMzI3M0ZGODMxQjA1QworQjM3ODQwQzdCQ0NEOTdCNTRBOTU0QzI1NDJCNURGQTk2ODhGMjczNUQ5OTNGN0VEMkYzNjlCNkJDMzdGOEI3OAorNTE5QUIwQkE0QzkzNkMxNkM0MTcyNEFCOTZGNTk0MUQ0QzZDQjY0MzE1MDlDRUUwMjA3MzExNUMwMEZDRDAxRgorNkY0Qjc2QzJGOTk3QkYyQjlGMDlDNTM2MTM3NjZBOTRFMUI0NjZGOUQ0MzRCNzNCMzUxNzNEREEzNjVFRUI0RgorNUI0OEU4NUM5Q0MwQTUwNzY3RkI2MUQ3RkQzQzZDRkUyREUwODhGRjA2RTFBNURGRENBOTIxQTA5RDczMDEzRQorOEU5MDg3NTU5RjA4MTMyNDU3NkFCQjUzQUVFNjZGQkM5RDI0OEVBNERDNkVEMUJCODIxMjM1QzZBMTc3NzMxOQorRkRFNkZDREVEQzU0NzYzQzNGODIyRTUwMEQwRDU1N0U5MzQ2MzFBRjg4RTEwQkNDQzA2MTc5NzA4RTJCM0E5OQorMDE3MkIwQUI2OUU0Nzg0OUJBODA2N0VBMTRDMTg0RjAxQ0Q1NDAwOTY0QkM2MDNERjIwRERCQzA1NTkzNkJCRAorRTY1MjdEQUM5QjE5OERDQTlDNDE4QUQyMUZEQTM3MEQyMTQxRDcwQ0JDOEQxNTI3NkMyMTI3M0Y5RTFCOTNGRQorODEyQkJFRTRCMEQ3MkFEQjRCNTkzRENFODM4NjVDQTNGNUVDRDIwRUUyODIyNUI3MjlBNjgwMEU4RkFDQUE2RAorM0M2NENFMTE0OTJCNDkxRDE1QzA2OEIzN0RBNTgzNjBGOUE3RjlCOUI2NUE1MDg4NDhFMTJCODNGN0RCN0ZENgorNzcyMDMzQTk4OUIzNEU0Njk1NUQyRjRDMDYzMDQ5NDMwMkNEOUFENDI0N0RDQUUzRUI5MUY2N0Q5NTQ0RTg4RAorOEZFODRFQ0FDQTExM0FCQTFEODU1NUZGRTFBQkQwRjQzMUZGMTU3Qzg1OTVGNDM5N0ZDQ0NCODBENUIyQjE3QQorMEM2MDFENDMwMjZGQjlFRDBFOUU5QzQ2Q0I4NzA2NzJDMTMyNEQ3MjgzQkQyOEU5NjkzODQyMjY5NjY5RjU3QgorMkVBMkQwREMxQTg3NTdDRjZDNTgzQTMyMzUzMTFCQ0QwMTUzOUFDMDBBQ0U2QURBNUVEQjIwMzA2QzQ2OUVEOQorNzNBN0RDNjg3NTcwQUEyODM3RDM4NzdBRDUxRTE3RTBBNjQ5MDc4RTczODk1RUQ3QTU1NTBFMTY1MEEzNEIzMworNzJDMkVGNTY5Q0RCMjI0MkFCOTExMjkxNzVGNTc4QkEwMTM0NjM1QTAzQzA0RjY4NEY3OTgyQ0RBNTdDOUU5MAorNEIzMzNFNDk2MkFDQTlFMjY4NkZCQkNDMEZDMjYwNkE1MTRFNjgzQUQ4MzUxRDk3OTUzMjYwOTEzMzlEQkMxQworRDVCNTQ3RTQ0OTA5NkNBMkE3MUQxM0RFMjhCOTY3MjU3RjFGMDczMUUxQTRBREJGQkQ2REY3NEQ2REZGQTVCQworMDhDNEMyQUU2MTVFQ0QyMEQ1MkJEOEVGNTM3REEyRTBGRUUzMTRGMUQ2MDkyOEE4N0VGQzdBNDJDNEIxNjdGRAorNTM3RjkyNTZFMDNDRDhEMkVFQjA3QUM0MzhFNTVDMzNGREJFMkZFNDQzOEY2RjhCMjlFRDAxRDIzQkUzM0YwQworNDY1QjBGQkQxQjU1MDQxRDE2QkQ1RUNCOTIyMDRCNEY2MTQwMjQxOTBFRjRCODdDNkQwM0VBQzFFQjg2MzAwNQorRDNBRkU0ODdEMTY4NkE0QTM1NjI1Mjc0NTEwMUZERkYzRjg1QzE2MkFGRjM0QjIwNjNFNkIyREI3NzQ5NjUzQQorRDNFQURERTdDMUZEQTJGMjQ2Q0IzMTU0NzM3RTI3NzUwOTkyNUVEOEREODYyMTBDOTRCNjRCQzdCOEM0QTAzNworOUY0QzE0N0NDRkY4QzJDMUM0MzFFMUU4RTVFRkQ4RDQ5QUQxMEU0MTZBMkRBNEY0NTA5MkZENDk5RTQwMjVCRAorOTM1ODgwNTBFRTk5MDdBNTMwQkUzRkY4QkQ5QTRCRTE5NTI2QUIzQ0NBMTBGNzBFNzAyRTkwQzcyQkVBRkMxNQorQzY2Nzc0NDczQUY4NzU2OUFGOTlCNTE2Q0Q2N0YyRjZEMjZEQzZEQjU1MDhBRjYyODZBRTU0N0JDNjNGOTVDOQorREE2MTkwRUM4NUYzRDg2MDVERDFBN0E0MkM3QzdCNjBERDNCRkI4RTg0RkUwRjU4NEQ4QTk4NkJGMEVERkQzQgorMzNCNkM5NTNDOEU2OURBMDNBNUQwQzVEQ0ZDNjZEODAwMzg4QjJFNDQ3M0Y2OEY1MkNBNDc0RkI4RjFFNEQxQworRjdGNTExOUNGRURFNkY0NUIyQzZCQTFFMEI4MkRFQzk1M0EyNkYxMTA0RUE4QzZFRUQzOEIwNjVCMDJFRTk1MgorNEQ3Q0Q3RkFDNzcyRDZBRjM4NjJEOEZEQ0Y3QkVFQzUxNDc5NUJGMzdDMTRENEE1MDJFQTdFMTA2OTlFMkI5OQorMEVDMjk2Rjc2OUVBNkMyMDA3ODI2NUQyNTYxN0IxMjI1QzdEN0VFREExQTEwMDYyMjE2RUI4M0VCQUFBOENDQworQTFDNzUwRkFBRjZGNDQyNDY0MzZEQjhDMkNBN0MzMDEwRUNGNkZFOUE2NkJBNkFGNjQwMDYxOEQxNzBERDQ0RgorRTIzMTM0M0UyMzY4NjMyQzg5QzczOERGMzhGNjE4REQ5Nzc0Qjc1RUUyQjE0NjY5MEVFNjcyNkU2NDYyNjEzRgorMkE2RjQ3NTIyRjE4NDNGMTI2QkUyMUE4RkY0RkEwRDlFNkFCMTU0RUNGMEZGQTEzOEUwMzZDNTdENDlFRDFERgorNTE3RDM2Q0E2MTcxRTVDNEEyNjAyNzc4N0YyREU4NzNCNjQzOEM1NUI3Q0ZBMDIzQ0JCNTM2MEI2MEM4NDQ5NgorMTMwOTY4QzNERkQ0RjE2NjA4RDMxMDQ1ODcyNUU5MDQzMDBEMzA0QjY2MEY1RDY5NjI1OTJDNzA3M0IyQzlFMAorNTEzRjhGNkQyNUFGRkQ3RTc0M0E3MTAzMDJDRDVGMTJBRUNCMDhBQkMwMkU2NTAzNzFBNUIyM0MxOEZFMDI0QworOTgyN0ZEMTMxQTE0RTYyMkU3RTNGMUMyREQwNTMxQ0M2QjkxQUM5RTI1OUU3ODQ2MzMxNEFDQTBCQzdERDJFOQorQjJFQzI1MEIzQkQ0ODA3NTA0MEZBQkJDNUM4N0Y1RUU1MUI1Q0JFMUUxNjdEQzRFMTUxRTkwMjQwM0E1OUYxMgorQzRFNEJEMUEzMUU5NUU0MzBFQjZDMjE0RUFCOEY2ODI1RURCMEVDRjEyM0FFMEI5ODBDNDM2MUEyRUZENTVDNAorNzQ5MjVBMjU5MkFFMjE5NUIwMjY3RTgyOEY3RUNGN0I5RjY3NEQwRDNENEQyQTlGRTdFMDNBRkU4MjE0QzgyRQorQjk3RjY5RTRBQkQ2ODkyNTdGMzk4N0Y4NEIzMUFGRTEwMTMzQTZBODY2MTBENDk3RURFQjY4MDE0NUYwRDYyQgorNjQ3OTk4QThEQTI5NUE1RURCNDMwMDBDNjNFQjkxMDZCRDM1QzI4MEJCREI4NEQ0NzhFQjMxNkU1MDZCRTBCNworMTgyM0FFOEU0MDk2NTJBQzA1RDk2QUJCMDJFODgxNTY0MEIzM0JGRjA4NzkzRDIzQTI3OTc4NDdDNzc5MzU3MworQkU5QTBBRTM0QUJDQkI3MTJCQTg2QkMyQjNENjE0RDc3Q0RFNzdEQUQ4RDQxQTU5QzI5RkUyMTM4QkUxODcxNworNjBGMjNGMjc1QkVBRUE3MzZFMTIzNzIzMkI0RjVDOTE3MUU0OUM1MjE0Rjg0MUFDRTkxOTQxMUZENjUxRDRFRQorRDBFNDlDNzlFMTc1RTJBQzE5QjA2OTBEN0Y3MDkxNjY1RUEzREEyMERFNUE1NTlEMTQ4MUVDMDU4QjU1MjFGNQorRDI2QThCMTA5NjZCNkVBNTVFN0IyM0NGMDMzM0Q3RUUyMDkxOUM5MTY4QTUwRUY3QUY0RDRFNTdEOUU1QzY5OAorM0EwNjI2RDY3NTc1QkU2Q0JGMDYxOEMxMkExNjlGOUNBNjJGMzI3M0M0RTc5MERFQ0Y4NTkwMjc0RDdEN0MyMAorQkVENjUxRTJDNjUxMDdDRkU1N0FBMTZEQjE3RjQ1RjdGMTc4RjhCNjNFQTNFOTk2OUZCM0Q2QTM3NkE0MTZBNAorMTRGODA5RjAyRjhCOUE1MzMxQTZBMTI3OUIxOUM5RDRDQTlEOTk4N0I4RkMxQUQzQ0VGMDc5N0Y1M0I3MEYyNQorQ0JDODVCRkZEM0FEM0YxRDQ2MERCQkIyQ0M2NDQxMDk2Njg3OTBERDJCNUFCNzMwMUYzN0YxOUZEMUFEMEE1MgorQzY5MjBFQTczODU4QUIxMEVGMzY5RTVBQ0NCMzVBNjEwNTFBQ0I2NTg2QjNCNTQzNUZCN0E4Q0U1MUMxNkVFNgorQTlERTdDRkIxQjdDNjY5NURFQjQ4NEE4RDRBNzIzRTgzQjU3M0IwMzk5QUI0NDJBMUU1Nzc5M0Y5RDZBQzczRAorQjhERUMyMzEwNUQ1NkJFQTI0MjRFOTFCOURBNUNBQjExNEJEQzM2MzZGMENCMzRDNjBCRjFCMERCQzkxNzRBNgorQThFRUI1RjgzMkQzQjQ0QkI3NTkzMjUwQTZFRDA2NTMwOURFREZEOUExQjNFNTdFMTBDRDFDNjUxODc3MTUxRAorQjA4NkUyRDgyOTU5QzNCQjk5OUMxMTExMEMyRDYxQ0I4Mjc4QUM2NUIwMTNGNkE0OEQ1MDE0MTdBQzQ5NEQ1MQorRTc1RjU3OTI0NkY0NDQ5RDREN0I4MzYxMkE0RTgwRjY1ODQ1Qjg3NjZFOTVFQTUxMjlGNDlCRDgwQ0REMkU5NgorNjBDRTdBNkVCNkRGRjhFOUU5NEE3N0EwMTI2ODkyRDY2MUFEMkZBM0Q1ODdCNzI2MEFCRjNBODQ0OUE0M0U5RAorMTU4MkQwRDEyREUzRTM1RjNBRjY4QkM0ODkzNTQ4N0E2QzhBRkY2MTQwMTJGRkU4NkU0OERBNTRERDYyQjUxMAorQkJDRDMxMUFBRjI0NzJCMjg4MkIwRTFBOEU0QTBCMzdEQ0ZGOTY4QTdGMjkzQjUyOUVBRUJERkY1ODYxRTU2QgorRkExMDA5REY3NTk4Njc1MTJGNjhDRkQ4RjAxQTcxMjJDRTA3QUQzRjQwOUY4MDlFM0I2QTZGQzBDNTI0NDIyOQorOTE5OTM0MkVEQjU4RTBEMzVCNjUxOTQ0MzQxMTc5NDk3OERCMEJCRDI4RTczNjQ5MUIwRjA0RUJFMTRCMkMxQworM0JGNkVDN0NCRjE0MTFCQTUwQUFCNTIwODhCODg5OTczNTU0MTdBNzA0OUYzODlDNzcwRjFEMzNEQ0IzQ0VENgorMEFDRUIxNDEwMzNGMjM3NjExRDQ3MzE5MUMxQzU0NDY3MzkxRUY0QkVCM0E2NDI0MTU4M0E2MDNGM0M3OUI3QworMkYwQjc1RENFNzdDNEM4OEExQUMzODI1MDNGRTJGNjQyMUEzQ0M1ODI0REMxNkFENzUzN0JDQkE0REIxRUM0QgorRjMzNkY3NzM1MjY4M0JFMTU0NjM1NkNDQzk3MDJGMjREQ0U2RDFGODRBQzU1REM3QkY1NjJCNjYwNUEzNjExNQorNkY5RDZBQkEzMEEwNDNDOTlDMUEwMTk0ODc5QUU2MzVCNEFFRTFDMEYwRDUxNTAxOEY0NUY5RUM1OERENzZBNgorRUEwREQ4RUUxMDhFRTM1M0Q4Q0IzQUU3QTZFNEMyMzkxRTI0RjQ2MDdBNjg4RTI4M0FDRjUyMTk5RTIwOTAyRAorRjhFQjc5NjA2NjZDODU1MkJGRDQ4N0Y2QkIzNDhEQzUwMTg5QjAzRjBGOTU5NzQzMTgzQjkyREFCREU3QThCQQorRTFERTAwN0NEQTU4MDJENkIyRjAwNTUzQjkyN0Q5Qjc4NzYzMDQ0MUMwNDU5MzM0NEVFN0JEMTJERDA4NUE2NAorOEZCNjJGQjQ4MzZDNUFBMkIxQUM3NDAwQTAwQzAzOEU1NURFMkZCOUFEOTJGRUY3RUJDRDhGMTEzNzg0NTBFMgorODM2NzNGODdERTU5OUM4MDc4NkIwRTBCQTIyMzU2Q0YzMEU5RDJFMTZFNUQyN0ZBQkQ1NzlENzFEMzk5QUI3RAorNDQ4NTI5OTAzOEY2ODEzQ0Y4QzUwNjNDRTU1MTcyRTM5ODk1NjJEQjUxNzUyMkJFQTczQTRGQ0JFRUNGODVEOAorQUU0QTRGOUNGMzMyNEVEQ0E5RUM5ODFEQTIyNjRGRkY3Mjg0QTE1RTNBMzBEREI3RTM0NzA3MjE5M0QwQkE0QQorMDhBMTI3Qjg5RjU5MUUyNzAyQTdENEQ2Rjk1NTU2MTQwQUE0MTdDRjVDQzYyRDY5Rjk0NTdFMDIxNUFFMDE5QgorMUE4OTcwRTg3MDc0QjIwODcxOUI0RENFRjc2NzlEMTJENzcxREUyQTAxRTcyMzM5MUQ1OURGN0JEMEE3MzI2RgorQjU2OTU5MjZEQzkyRTQwQzE3NzM4OUUyODkyMDA5MDlFNDI1RDFDRDI4RDFBMTlFMUIxRTRFNDE2ODJBODJDMgorN0ZEQUJGMUFFNTdERUFGRTdDMzk1ODg2RTA2NTI0QUQ5NkUyMTQ3MjUxMjlBM0FERjhENTE1RkYzQ0Y3OENGQQorRUY4NEI1MzYyMEQ1RkZEOTlCMUVBM0YyOERCQUJDQTY1MEIwNDZDMzIwQTAyODQyNkM0NEQyQUUzOTUzQTlEOQorNDZFRkQ3MTdCODM4RjJFM0ZEOEZBRUFCNDBGMjEyOEY0NjQxMEYxNDMxNDQwRjYwMzI2QTExOTg4ODlDQ0RGOQorQzJGOUREM0QxMTlBOTEzMjU0MUZGMDkxMTZBOEMzMEM2RThDRkZEOUFBM0VFMzFFMDAyODg1NjZGMDdEQzU5OAorRDcyMzRGREZBOEY4QjA2OEUxMDYyOTk4RjhFQjZCNDc1MUNGMUQ0RkFDRjk4Q0VENjU4MUZGQjQ2OTkwQTUyNAorQjM4MkExRDY1QzY2RDEzMUJEQzkzNkExQTE4MzRFM0NFMzY1MjVENjNCRUQ4NjQxNkI3QjdGMUQyNDU2NEQyNQorQTYwOTkwRkREOUU5RkIxQzFCQkU1RkZGNURBRDlEODUyNUFBRDdCODIzQjAwRUVDQzkzNzNENjcxRkJBN0I4QQorNTE2NkIyQjRCNzJBOTMzNzNGQTkwNjNERTRCMjJEN0E2RDE4NTlFRUI0NDA2MzREQjU3OTkwQUNFQTg0RDUwNworNjk0MDlEQkYyNEM1QTk2RUNFQzJERkU3MTU2NDNGREI4NzcwM0E0QjQyRUI2RDNFRDVENUZDMTE3MTk5RTMyNAorRkEzNkMwMEFFMDdBNkE3NzJGNkREQjQ4QkMxOUY2MjU1RkEzNTgzQkY5NjdBQ0Q1NDk5MUE3OEE1RTNCRDgwMworQzQ0MkMzRTg0Mzg4MTNGOEU0RDA0MEZGNUYyODdGRTlEOUQ0NTBGNTQyMEFGRDFCREI3MDA2QTFDMjk2NTU2MgorRDhCOEJCOEE4REI5RTgwMTZFNjlDMjVCNkZFQjg2NENCQUM5QjE2MzVGNzhFNTdBMDE2N0U0RkJDMzI2OTI4NgorQTgyOUJBQkY1NDgzNzdFREQ0QTdBNzgwOTIxOTk0MUJDRjYyMTYwREU1RUIxMUE2QzNGNzNGMjJFRUVGQUQ2RAorNzkzNDlDQTZFODNERTVGMDE0OTg5QkE3ODAxMTcyQjdEQ0U3NEIxQ0JBMDU1NjM0MzQzNTJEOENDQThERTIyMAorM0ZFOTJFRUU2REJFNUQwRjE1RTFFNEE0QURFRjdCRUYwNUREMEY1QTA2NjM3M0I0N0M5OENEQTg1NTA5RjY4NQorQkIwQTlFRTEzRTIzOUMzNEJBRkExOURGMTI1M0JBM0UwM0ZCQzFGQzg1RDUzODc4NzhFRjVFRTYyQjc3RDI1NAorNUQ3NDY4RkI1NUI5RDVFRkUxMUJFMzJGN0U3RkU4M0E4RDYwQjE1NDgwNjc0RkVDNTRDRTFEQjUwRDA1QzU4QQorM0MzREJBOTY3ODRBRkU4OTQ2OEZFODgxQzdENUU1NjlBNjM4N0VCOTZBMkU2QzAyOTNGQ0NCMjlGRDVFMzAyMgorNkM0REFCREIwN0M0RDJCMjExQTZDN0FFQjYxRTYxNTFGQkE2MzZFRjY0MDNCQTZDN0I4QkI3OTNDNUY0RjdEOQorNjJBRDYxNjBCNjcwNUJCNTM2QzdDNEM2QjYwNDlFQ0FDNURENzI4MTQzNzBFRjUzNTQ0NEM2MTFDQUEwREYxQworQ0U2NkE2NDFBMzBFRThCM0I4NzAzNDEwRTU1OTcwRkY1REQ3N0U1QjM5MzIzNTVFQzYyNjkxMDJEN0Q5Q0VFNworRDNFNzhCMDBEQjNDMDAyQ0NDNUE1NDQ3QTM1Njg2NjlFQkE1MTMzRDU2ODJBRkJGNTU4OUFGNUU1ODMzRjUzOQorRDc2N0I4QkFERTY3M0Q2NUI4OEM4Mjk3NDI4Q0IwNzdFNjhGRUNERDIzODdDNThEN0MzRUI5RTU0NUNFRDI2RQorQTFENzM3MEYyRjREQURGQkQ5NzIyMDMxQTcyRkExRDNFOEY1NjQzNzhEMDhENUQ5QjA1REMxNkQxRTJDMTg3QgorQzVEMjBBREEzNEIzRkFCOTgyNzQzQjMwNzA5NzdFQTRBOUNFQzAwMEM0NkNCNzlCRDNFODRGMzBEMUEyRDMzNAorNkIwNzcxQTY2MDMzRkNBNjgxM0YyMjMwMEU2NDNFMzNCMTMwOTM5MjM2QUE0MDE5QUY4NjQxRDBENTk3NEFGMQorODhEMThFQzhCMjVFRTQ2NUZBRUYzRTc2OTAzOTFFMzNGQThFQkYyQjQzQTc2MjI4OTQzNTYzMDNENkU3Q0VCNgorRkMyRkY1MDUwRTFBMkQyMUQ2MUFFNkQxRjU2NDFFQzc2ODk4NDZCQTRCN0VBODdBMjBEMzA5RUZFNzhDOURFOAorQTEwMjUxRkZCNkE0RTAyNjlGN0EzN0Y1NjZBODI2QjFGQTJDNTVBMjQzNzY5NTQ2QTJCQjlENENEQ0Y0QTU0MworMDI5QkZDNDQyNUU3OTMwN0YxQTNFQkY0RDVCOEVBMjYxQ0M0QzAzMjBFMjQ0OUEzODFFOUQ4RTRCQTdDN0Y2RAorMzQwRkJDOEIzQzUwQjBFNTlBNjFFOTc4MkRDQ0Q5QkJEMjNEM0ZBOUM1NDIzMEM1RTFDRTNEMEEyMzVGMzNFRQorN0Q4RUYyNTFEMzNFQjIxOEQ1N0JDQTM2ODQ4N0IwQjZGN0Q1NzkyQ0VGMEI4ODVGNzFEQUVENUJCQjE3QkVGRAorMTdERUIzQzE1QkUwRjQ1MjUzNERENjEwOTRDMjk4RkE5QjVDRkEwRTk2RDA5MUEyNTg5RDBGNjlDODVGOEJEQQorNTk5MzZDNjdBODBBRjkyNENCQTA3NjU3MDY2NzI5NDA0NzZDOTFDNzZGQUVFRkU0ODQ2N0ZGODE5ODQ2OEJGOQorMjM4RTI5MjYzNzdDMkNDMTQxQ0ZBMkI0RkVBQzcxMTdGRjA4MUVGMEZEM0IyQjQ4MDI4RDU3RUE0OUI0NDhFNworOTAyRDA2OTAwOTZFRTZDODMyMzFGRDMyNjUzNDMyQTIzMTk0MzcxOEY2QkI5REIxMEM1MzQ3MzBCQzhDRjE5MgorMDI5NzNEQkQxMjU2MThFRjIxQkExNzE0MkM4REE0MDk5QTZCNTMwRjM2RjlDNzgyNDM2OTI3QkIwM0I5QTc2MQorNzdEMEFCQ0Q1M0JGMjM5ODU2MkM2MjMyNjAwNDNCM0U3RDA0MUI1QzJBMjQ0REFBRjZCNTcyNDVDNkE5NzdDRgorQzVBMzQ2OTNENTU4REZFQjAyQUNDN0MwODM5M0UyMUFFODhDMjJFM0MyMjhBMkZDNEIwMDBBMTQ2NjRGNTg2QQorRkFGNDFCMkRFOTU5Q0MzRjU4RkZFQkRCQ0IzRDhDRUNDODU2NjBGOEY2NjI4NjQzQUM2M0VCRTE3QzAyQTZENQorQkIzOTY1RDQyNTU5RDQ3RUVGOUE5OEEzREREMTIxOTNBNDQ1RDY3OEU1M0U1NUE4RkM5NUE5NkYzRkUxRjBCQgorODI1QTBBNEYxNThGNTQwOTc4ODBFRDJEQUJCQkY3QjZEQjNGQUFGRDU5RTk4MUZBRTQ5Qjc5NDA2QjgxM0U5MQorREFBMkFCMzE5NUE1QTBDRDY1NTUxNkE5MjE1N0JENTkxNjQ4NDBCNEY0QTdEMjY2Qjk0NzRCQTIyMEE0ODU5OQorMUMyQjFEREQ3QkRGQkQ5OTMyN0Q2NzdFNDU2OThGODAzNTNENDNBOUJBREYwMzQ4MjQ0NzM3NjVGMEVBMkYxMAorNDRCOTg0OTlGQzk3NENCOTEzQzRCNjRFMTI2OUU2QjVCQzkxMkIzNEQwQjg5RkEzNzg3OUE2M0I5M0E5MTI1NgorNTUzNDE2Rjk0QThCMDBFRTMyNUYzMjg2MzE3ODdFMzdDOURGM0FBOUQ3QzIwNDFEQzU4NDI1RkFBNURBMENDQQorQkUyOTcxRTQzN0ZFMTQ2RDU1N0FCRDIzOEY4Q0EwNkM1RTI5NjY4MTVDQjRCN0UxREE3NUE1QUI4MzYxN0UwQQorQUEwREQ0RjVCRkI3OTIyNUY3RDA4M0I2MzgwRUYzNDJENkFGQ0U2QjE4RkJCNDBFRUJDODQ1RDIwNjMyMzg1RQorODA2MzU1MTcxNkVERjIyRjI1NzQ4N0RGMTkwNDYxOEFERTc0ODdGNjcwOEZBQjIwOEE5MTEzOTkzNTFGNzFBMQorRkJCRTQxNjAyNTEyRDkyQ0JBNkNFRTM2MDQzMDkzRkFBRDI2ODhCQjA0MDlENzFCNkIwOUM2MTk4MkVERkZDNworMUJBQTQwNEQzRUQ4NTRFQ0JGRUQ3RTlENEZDQTFERjc0RjVCRjA1QTE0MTdFOTczQzMwOENCODA1QjQzMzZBOQorMkVDRUI2Q0M3NjkwOEM5M0Q2MjdDNTU3QjNCRDc3MDE4Rjk2REVGNDE0NUE5RERDRERFMDhFNDdGODA2MjZDMgorNDg5QzcwNDJERjEyQTM3QzU3NEZFRTU2REI1NDJBRUQ5MDhDMjI2MDBGMjJENDY3QjhGNTBGNEM0ODA5MDE1RQorRUJFOTZENEE2Mjg4QTA3QkVGMEQ3MzY5MEQ3RkNCNDU5OTVGMDcwMUQwREY1MDc2NzVGNTlGREEzREQ5OTdFRAorQzM0OUFEREI1NzZBNkYyRkUxMTdDRDQyOTc4Q0Y5NzUyNDYzOTA2MTBERjIyQUI5QkVFNEJDODEyNEZERjg2OQorMEQzM0M5NzNGQjYyNDI5ODFERDA3RTIxRUEyNEYwQzQ2NTZFRjQ1MEJFMTVGQUY4M0JDOUI1QTVDMzhDMkQ2OAorOTk0MTJCODU4RTgwQ0U5RUQ3M0U1MTNDOEExNjlGOTQ5MEM5NEZENzRDODM3RDMzOEEyRjYyN0U0ODFGMDlGMAorODlCMzE5RjYwNzZBNzBBMEFGMUVEOUU0RThDNkM5QzBDNjk3Mzc0QkUxMDI0NjZDNTg3MEU3NTY0QzY5Mjg5OQorOUEwRkFDOUE4MkMwMzhGQkZFQkIyOTEyRThFMzM1RkZFRDBBQTI3ODg4NTYxNDRFQzJFMTQ3NzE0MDc1OTg4QgorRkJFNjUyODQ3Q0M0NkFDQTQ3Rjc3RUE2NzJCQTIxRDZCMTgxNTA3MUI4NUFERjg2MkRCMEYyNjkyODc2MUY1NQorOTJCNjEwRDU1MjQ4MzlDQUNGQjg5QTBDMUMzQTUwMDYzNzEwQkYzRjg1RTQ4NzQ4MzUyRUQ0NTkwNzEyMjYyNQorM0QxMjcwRjQ1NDhFNjg5M0QxQjI1RjZEMEMxMzg0REM5MUY2NDAwQjBBRUMzQkYwN0Y2MzQ3MTY4NDQ2ODlFNAorRUJGNjVDMUJFMkE1QjMxQjExMUJFQzBBRDkwRTRENTcxRjY3QzBGMjhBNTc4NzhEMkI5M0FBNjE2RkQxRTk2OQorMURDREE0RkQzMDA0Q0VGQjA1MzYwNTdCNDEyMzE4RTY5RDlFNTg5Qjg1MkU0MUFCMUQ3OUM4OEEyMTQ2MzFFRgorNkY0MDcwMDNGMUUzMDNDNjQ5MkJBOTVGNDc1RjEzOUU5QTUwODEzNEUzOUZGQTUwMUMwMUY1OTc5QTA2MjA4NQorRTA3MTQ5QUFDOTY2RTE5MERGMUMxMEQ2QzE5N0Y3RDkwRjM4OEFFMTU0QjQwMTEwMkI3MTU1QjQ4QjVFODEyQgorQkIwMzVFNEJGODU1MDRGMEY2RDczRjEyRjE4NzFCOTg2REI1MDM3RkYxQTA3QkZBOTEwMTBDNjlGN0RFNEQwNAorNTU2OEZENkRDNTgxQzIwNDg1QzU4REM4NzI5NkFFMTREOTRERDRFRkNCOTBGQzQ5RDU5QjNBMjRGRDUxMzRBRQorMjI4RjlENkI1MjJCOUQ2OThEODJCMDFBMjU5ODk5MUQ0MjczMjRBRDE0MTg4MTFBMzAwMzkzMjUxMzRBMzk5MQorMTkwMEI5RjEwNENDRTE0QTZGRTgwNjAxOTJBOUJEMjI3MjM5MERBODY3MTBGQTM4OTY4Rjg0QTBFRUI3MjJCQQorNjQ3ODUwODkyQzIxRTQ0NkM1MkNCNDRENjVDRTZBQkFGOTYzRUY3RTQzNzNGQzg0QjhDMUMwMjRFMjFEM0VBMworQjlFQkREOUE3QzU1QTZGNzU5ODA3QkZEMDg2Qzc4Q0Y1QjUyMjQ0OUIxNjEwRjNCRDA1OTBDOTdCMTdCMjZCNQorNEVFRDVEMTM5NUQ5QkZFNjBFRDM3RUY0QjAwQ0I0OEJBMUE5MDRDNDEzNzQzMzA2N0VCMkFFQUYzNTAzMDg3NAorRDBDMDYxRjJDODNCOEE0MjgzQURCMzg2MjAxMTkyODMyRTRDM0M1QTQ3MDMxRDZBRjAwQ0MyNjdGN0RFODQ0OQorNzNDRTU1MjMyOTkyQUUzRTcxMTMxQTE4QjM0OEVBN0QwMTE4ODU3MDAwQ0VDQzY5QjgwQkFDM0VGNjUwODk5OQorMjdDQkZDQzIxMTMxNEQyNTZFMTEyQkJBRkU4QkUwMDYzRjg1NzY0RTJGQ0JBODIxQ0FGQjlERUU4RUVGOUIyMQorN0I3RjM2MUI4RjgxNzU3NkYwOUI5QThBMzNDRERERTIwQ0QzMEU1RDA3QkYwNzI1NTNDRDU1RkUxNjQxMTJGQQorQ0VFN0FGNzEwRkI4NDgxMkUzMzRBQ0JGNjAzRTIxQTNBMUI3OEFCNDcwQjIzMjA0MUQ3NUUwNDFEREFBQUYyNgorM0YzRDkyNjdFOUREMzA3QUY2MjBFMTZCNTAwNjREOEY1QzhGMUU5MTdDODYwODQwNURFMUVCOEIxQUQxRkU5MAorNkVGQjBGMjlBOTU0MEY5QTBGRkRGNDgxMENFN0NFRjE4M0E2QUUzRERGMTkzRUQzQzZERjNERkNDRjk4OUM2NAorMzcyNDg2ODhCNTMyQ0Y5QjkxNzUwQTg2NzY4REI2NzQxRTJEQjMzMTJGRUQzNTdCMTc0QUE5MzE4REQ2QTc4RAorMjU0NTZFNkQ4MEIzMjQ5NUZBRTYwRTVBRkUwQUMxQTA1RDFEOEZEQUQ2Mjg4Q0M2Q0JEM0VGMTRCM0I4NzA1OAorNDU0ODQxQjJCNUQzN0RFM0VENEU1RjBGQzRFNjg0ODM2RURENjlCREJFQUYzQzRBQzQ4MzY2NjcxNUZGNjA3NQorOTgzMTNBRjg0NjE5QzJDOUFFREREMEQyMEVGMkNGOTVDNTZGNUE5MTBDNjI4REMyNDJGRjcxQkVGNzk3MzJDNAorOTNCMzg5N0JFMTQzQjFDNzQ5NDJGMTI0RjE5NEVDOTA0QkY5MkI2NzdGQUZDQjBBODVDMzkwMEE3NUIxRjBENQorQ0VDMUY5NzdBQzE3QzdFQzM5NDcxOENERDA4QUIyMTgyMTFBNUM3MDJGRDQyNDZFNTczNzk1OUY1Mjc4NDdDNAorQzE3MzBCMEFBQzNFMjhERjcyNkRFRjdCQTA1MUVBRjQyNUU0NDI0OTNDN0E2MTZBQzcwRTk2NThDOTVENDE3QgorMjlFNjU1ODI3RDk2MzBBRjgzNEM4N0VFODU0MTlGNEFEMUQ2RjYxODQ5M0QzQzYxMEYxNDA5QThGRkUzRTVDOAorNDM2NDJBMTYxMzAwRTZDOTAxNTFDRDIxRUUxMURBMTNDNzkyNUI3RDVCNDRDNTlBRjM1NjVEODlDN0Q5NTk0QQorNjZDNDExQTg0OEUwNjc0MjRBMjNCMTNFQzAzRkNCMDkwQTE1NzkxQ0UzNDYzNzYyNDE4MDlFMzg1MTM4OEY5RQorQkI5MEM0ODhEQjUwQUE2MEFCQUM2NENCNjdEQUU4RjM3NEYyQzkwQ0ZEM0Q4QjJGMkNDRDQxNzQwRUFFMjM0OQorMjE2Nzk1MkY2M0QwMDVDOUYxRjA5RTZEQUEyMjA3N0Y3OTk4Q0ExMjA5NjMzQTFGNzE5RjJFRUQ1RkIzMTIyQQorNTJGNjdEMUNGMEZERjQyMzI0QTZDODZFRUNERDMwMEVCRkQ5NDk0NDMwQkU1QjQ2MkQ3MDM0OUJCNjRDMjUwOAorRjBEN0ZDQTQxNDQ2MkRENEYzQ0REMEM1MzFGMzg1MTc5QjMxNkI3QjA0MzQwNERDNDA2N0Q0NTBGODEzNjZGMworOUQzQkZEQTcwNjg1OUNFQjFERUUzRTYyQzQ1MzM0NEJCNDhENjlEMDkzQjdCMTVCNzFGQkM1MDNFMjQxNDMxNgorRUNFQkQ5RjdFMjVDMjBGMDZGMjI0Njk5MDI5NTRBRjNCMkExMjhGNzZDMEI3Q0I2MzU3QTVEODQwMkVEQUIwQworRjVENTI4OEQwN0NCNDg0QjY5QkI2ODc2MDhGNTE2MTFFRDNBQzM3ODBEMTFBQzNBRkE5RTgwNEVGNTZEODA4OQorNjRFRDhBNUYwNTg5MjY3RDgzMzBGMTc1ODBCQTNFMzU1MTdFQzJDNjkyQTY2OTY1QkMwODk3NzdEQUE3QzhFOAorOUQ0MTlCQzg1QzZERUFEMTY3MTk2NzYxOTI4QjI4QzIxMkI0Qjg4QTgzMDk2RUNCNjhCODRFQkU5OEQ5N0M4NQorMjkzQjhDQjEwMjFERDU0MUVBQzJEQUUxMDg3RDY0NjRBNzRDREMxNjU0Nzk5NDBDOTQyNUQ2MzY2MTlCMUJFNworOTY3RjcyNTlEMUE1MzZCMkQ4M0VEQjM4RTQ3MzMxMUUxRkQwQzAyQTMxRUY4NTFGM0FEMDAxNDgyQUVDMEQ5RgorRDUwN0YwMERBOTc1QTJFQzMzRjVERUQ4RDZERDU1MTI1N0UyMDkzMEVBMDQ5N0U0MEM2OTJDRDc2RUZENjAxMgorMkZCQTAyMjQ0RUU3RDBDNTQwRDk4REI2QjMzQUM1NDcyQUQ5RTY1M0MxRUEzNUZCMkNBNUE3MzA5MDYxRTI4QQorMDk2NjE3QjlGNkEzNEEwMTdBNDJEMkExM0M3QUVFOEQ4NzVBOTRDRkRBRUE3M0UxRUMzMkIyRjRGMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorY2xlYXJ0b21hcmsKKyUlRW5kRm9udCAKKyUlQmVnaW5Gb250OiBDTUJYMTIKKyUhUFMtQWRvYmVGb250LTEuMTogQ01CWDEyIDEuMAorJSVDcmVhdGlvbkRhdGU6IDE5OTEgQXVnIDIwIDE2OjM0OjU0CislIENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKzExIGRpY3QgYmVnaW4KKy9Gb250SW5mbyA3IGRpY3QgZHVwIGJlZ2luCisvdmVyc2lvbiAoMS4wKSByZWFkb25seSBkZWYKKy9Ob3RpY2UgKENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZCkgcmVhZG9ubHkgZGVmCisvRnVsbE5hbWUgKENNQlgxMikgcmVhZG9ubHkgZGVmCisvRmFtaWx5TmFtZSAoQ29tcHV0ZXIgTW9kZXJuKSByZWFkb25seSBkZWYKKy9XZWlnaHQgKEJvbGQpIHJlYWRvbmx5IGRlZgorL0l0YWxpY0FuZ2xlIDAgZGVmCisvaXNGaXhlZFBpdGNoIGZhbHNlIGRlZgorZW5kIHJlYWRvbmx5IGRlZgorL0ZvbnROYW1lIC9DTUJYMTIgZGVmCisvUGFpbnRUeXBlIDAgZGVmCisvRm9udFR5cGUgMSBkZWYKKy9Gb250TWF0cml4IFswLjAwMSAwIDAgMC4wMDEgMCAwXSByZWFkb25seSBkZWYKKy9FbmNvZGluZyAyNTYgYXJyYXkKKzAgMSAyNTUgezEgaW5kZXggZXhjaCAvLm5vdGRlZiBwdXR9IGZvcgorZHVwIDAgLy5ub3RkZWYgcHV0CityZWFkb25seSBkZWYKKy9Gb250QkJveHstNTMgLTI1MSAxMTM5IDc1MH1yZWFkb25seSBkZWYKKy9VbmlxdWVJRCA1MDAwNzY5IGRlZgorY3VycmVudGRpY3QgZW5kCitjdXJyZW50ZmlsZSBlZXhlYworRDlENjZGNjMzQjg0NkE5N0I2ODZBOTdFNDVBM0QwQUEwNTJBMDE0MjY3Qjc5MDRFQjNDMEQzQkQwQjgzRDg5MQorMDE2Q0E2Q0E0QjcxMkFERUIyNThGQUFCOUExMzBFRTYwNUU2MUY3N0ZDMUI3MzhBQkM3QzUxQ0Q0NkVGODE3MQorOTA5OEQ1RkVFNjc2NjBFNjlBN0FCOTFCNThGMjlBNEQ3OUU1NzAyMkY3ODNFQjBGQkJCNkQ0RjRFQzM1MDE0RgorRDJERUNCQTk5NDU5QTRDNTlERjBDNkVCQTE1MDI4NDQ1NEU3MDdEQzIxMDBDMTVCNzZCNEMxOUI4NDM2Mzc1OAorNDY5QTZDNTU4Nzg1QjIyNjMzMjE1MjEwOTg3MUE5ODgzNDg3REQ3NzEwOTQ5MjA0RERDRjgzN0U2QTg3MDhCOAorMkJEQkYxNkZCQzc1MTJGQUEzMDhBMDkzRkU1RjAzNjRDRDU2NjBGNzRCRUU5Njc5MERFMzVBRkE5MENDRjcxMgorQjE4MDVEQTg4QUUzNzVBMDREOTk1OThFQURGQzYyNUJEQzFGOUMzMTVCNkNGMjhDOUJENDI3RjMyQzc0NUM5OQorQUVCRTcwREFBRUQ0OUVBNDVBRjk0RjA4MTkzNEFBNDc4OTRBMzcwRDY5OEFCQUJEQTQyMTU1MDBCMTkwQUYyNgorN0ZDRkI3RERBMkJDNjg2MDVBNEVGNjFFQ0NBM0Q2MUM2ODRCNDdGRkI1ODg3QTNCRURFMEI0RDMwRThFQkFCRgorMjA5ODBDMjMzMTI2MThFQjBFQUYyODlCMjkyNEZGNEEzMzRCODVEOThGRDY4NTQ1RkRBREI0N0Y5OTFFNzM5MAorQjEwRUU4NkE0NkE1QUY4ODY2QzAxMDIyNTAyNEQ1RTU4NjJENDlERUI1RDhFQ0NCOTVEOTQyODNDNTBBMzYzRAorNjhBNDkwNzE0NDU2MTBGMDNDRTM2MDA5NDUxMThBNkJDMEIzQUE0NTkzMTA0RTcyNzI2MUM2OEM0QTQ3RjgwOQorRDc3RTRDRjI3QjM2ODFGNkI2RjNBQzQ5OEU0NTM2MUJGOUUwMUZBRjU1MjdGNUUzQ0M3OTBEMzA4NDY3NEIzRQorMjYyOTZGM0UwMzMyMUI1QzU1NUQyNDU4NTc4QTg5RTcyRDMxNjZBM0M1RDc0MEIzQUJCMTI3Q0Y0MjBDMzE2RAorRjk1Nzg3M0RBMDRDRjBEQjI1QTczNTc0QTRERTJFNEYyRDVENEU4RTBCNDMwNjU0Q0Y3RjM0MUExQkRCM0UyNgorNzdDMTk0NzY0RUFENThDNTg1RjQ5RUYxMDg0M0ZFMDIwRjlGREZEOTAwOEQ2NjBERTUwQjlCRDdBMkE4NzI5OQorQkMzMTlFNjZENzgxMTAxQkI5NTZFMzA2NDNBMTlCOTNDODk2N0UxQUU0NzE5RjMwMEJGRTU4NjZGMEQ2REE1RQorQzU1RTE3MUEyNEQzQjcwN0VGQTMyNUQ0N0Y0NzM3NjRFOTlCQzhCMTEwOEQ4MTVDRjJBQ0FERkE2QzQ2NjNFOAorMzA4NTVENjczQ0U5OEFCNzhGNUY4MjlGN0ZBMjI2QUI1N0YwN0IzRTdENEU3Q0UzMEVEM0I3RUIwRDMwMzVDNQorMTQ4REE4RDlGQTM0NDgzNDE0RkRBOEUzREM5RTZDNDc5RTNFRUU5QTExQTA1NDdGQzkwODVGQTQ2MzFBRDE5QworRTkzNkUwNTk4RTMxOTcyMDdGQTdCQjZFNTVDRkQ1RUY3MkFFQzEyRDlBOTY3NTI0MUM3QTcxMzE2QjJFMTQ4RAorRTJBMTczMkIzNjI3MTA5RUE0NDZDQjMyMEVCQkUyRTc4MjgxQ0RGMDg5MEUyRTcyQjY3MTEzMzU4NTdGMUUyMworMzM3Qzc1RTcyOTcwMUU5M0Q1QkVDMDYzMENEQzdGNEU5NTcyMzNFQzA5RjkxN0U1Q0E3MDNDN0U5Mzg0MTU5OAorMEU3Mzg0M0ZDNjYxOURFMDE3Qzg0NzNBNkQxQjJCRTUxNDJERUJBMjg1Qjk4RkExQ0M1RTY0RDJBREI5ODFFNgorNDcyOTcxODQ4NDUxQTI0NURERjZBQTNCODIyNUU5QUM4RTQ2MzBCMEZGMzJENjc5RUMyN0FDQUQ4NUM2Mzk0RQorQTZGNzEwMjNCNjYwRUU4ODNEOEI2NzY4MzdFOUVCQTRFNDJCQThGMzY1NDMzQTkwMEYxREMzQTlGMEU4OEEyNgorMzBGMTlFMUJDRTY5QkM0OTlEODYwRjlCMTdFNkE3ODQ2OUY2NTJFNDY5RTIyREYzQkJCQ0M4MDNGNzQ4MzQ2MworOTZGMUM4MTFBRjYyRkMzNjg5MTQ1N0JEM0E1Qjk4OEY2MjE3Nzg2NDkzOUMyM0U4NkJFQjUwQjlGRDBEMTg2QQorMUMxNDc5NTk0NTY0NkQ4MkFBOTdGNjZGNjA1MEY4MUQ5Mjc5QUM2Q0JCOTA4QzdFMUY5NkUwODJCMzFEQzFDRQorNjY3NzdGM0Q3QzE4NjM3RTk0RkZGRDI4MTcxRTE5RTE3OENGOTMyQjM4QThDMTY4MTg3N0RDQTBDQzRCQkExNworMjUwRDlDMDBCQ0E4Rjc1M0E0RDNDQ0Y1MDM1MjhCMENBMTE4NzFGMkYwRTFGNDAwRkE5QUE1ODk0MTI4RDA3RgorQ0M3MzlBQTdCMEE4QTNCODcyNjQ3RTFCQ0M5RjAxNUUwMDdGMjA4Q0VDQjA4RUUxNUM5MUFERjBGMDYwOTRDRgorQTFBNkVDREY1QkFCNTNCNjczOTVDNDIyRjAwOUM1MTE1NzBDRTM5RjczOUY0QzUxODczODYwMzdBRUM5QkFGMworNDM0MzY4MDE1NDA4QTQzMTcxMTVBMUE4RDI5NkNGNDc3RTY3QzBBNDk2MTQ2MDJGNEI5QzkwMDdCMkM3ODAyNAorRTMzNTg0RDMyQjZBMUQyMjYwNDRDQTU3MzM2RkFBMDE1ODVGM0JBMzlEOTYxNjc4MEZENkMxMjRCNjNGMTlFMgorRjIwRUJDRkQyMzIyMjM1OEQ4MjI5QjcwMUIyNzAzMjgwRTBCODZFNDc3MUFFMkM1MDE3QTNCRjIyQTU0NTI0NgorOEQ2QkM5ODVDMjIyMDAzNEEzNEUwQ0E4NUJBQ0RBNzM1QTlBREIzRDM5ODFFMDRCOUFBQjlFMTFBOTU5QUZGNworMEFDOUI3QzU0QUI4MTZFMkNGNDgxNzhDQ0FDODM5RDEyMTZBRjI2RDkzNTQ3RjI0MjA2OUY4NzdBQkE5M0UxOQorNDVCNzVCQzc5QTQ1RDEyRTIzQjQwRDFEMjgwNzRBQjdEMjA1OTdCNTE3RTBBQzM4ODYwRDFEMDA0ODY2MTk5OQorNEE0MjRGNjk4M0RBMjNFMEU2REMwNkQ2RjdFRkZBODdDODhFQUQxQUFFMkJDODU1NzQ1OTZCOTEzMjc5QkNBRQorQjUzNTA0MjMwNkFERTVFRTJBRUIxRkExQjgzM0Q1NkVFOTA3QjFGRDY4MzgzNjkwMDAwMjNDQTcyOERCMzY0RgorNkMyMDEyRTRDMjYxNEUwQzY2MkY4OEUyRkQwMkIzMjQ5OUNBRjY5MThEQzA1MEJBRDk1N0Q3QjcyNzkyN0IxMAorMjRGOThDOUI3ODBFNkZCRUQ4NkI2Mzc5NTcxOUZGNjBGMEVCNTgyRDRBNUU5Q0RBNkZFMDVEN0ZGQjA2MjVFMQorRkI5NDE1MTA2NUM2MDc5MTRGRkM3MkQzNzIzOTkyODNBNDhCNkFBOTY0MjE5NzRGNUFGQzYwRTI4QkQyNUQ0OAorQjI4QkNGNzg0MjhCMjFFQjAzQTAwQzg3ODI0NkVGOEJBMkEyRUU3REI2QUZDQTQ3RUM5QTAyRURCQzU1RDJCNworOTI5QTBCMTc4NDkxQTRDNDgzNjk5QUY5NDVBQ0I4NDA1MjU2NDdDOUU3RjU1RTExQkRCNzZFMkE2RTNDMjgyOAorRkZCQjVEQjM3NUY0RTE1MjkzQjQ5NDg2OEZGMzFCMDc4NjBCRUFERkY2NjMxMTEzMEEwQkQ1MUQ5NzYyODdEQworMjAxRUIzNEZEODFCQTMyNzQ5MzhDRTBBM0M2ODMyNEJDOUZCNzBDMDA5MTBEN0MzNEQ1MDdCNTI5RUFGQzZDRAorMjRDQTExMzg1Q0JBQzMwOTI4RjRFMDg4OTYwQzc3MzAyMDcyMDMxMkE3Q0NENjBFQTVGODIyRTEyODU1QkVFMworN0E3MzRDMTJDODk1NkEzNzNBQTc2NThDODA5RTRGREMyODBFMzkzNkQ0MjJGQzUwQUNFMDFBNjZDNzNBNDYzNgorQkZCQTVGOTQwRTA4RjNDQTM4MkI1NDBGQzc5NUQ2RUQyRDU3MTkwQkZBQjE0MzBDRTA4RjM5MDIwQjI5QkYyRQorQjEzOTlCMkQzMjkyQUE5OUY4OTI1MjBGODhDNUEwRkY5QjQ3OUVENDU3MjFFQjc3MkJDMThENERBOUNCMDJFQQorNTRCRERFQ0Y0MjQ5RkJBMDE4NEVFRTk5OTBFQTkwMjYxM0I1RjZENTVENUIwMTBEMTkxODhCMEIzNkRBRUI3NQorOTIyQTdBRTIyRUQ1M0EzNEFDNDdGQUQ3RTcyMzc0RDQ3RjM0OTk0M0ZCREE0NzMxRDJFMUNGMzBCQzEwM0Y0RgorNTc1QTAzRTQ2RjM3RUJBRkU5MDNDNzREODFEOEQzRjI0MTUxNjAyMTg2MkQ5RTIwM0NGQzEyODA1NzJFMEM1MAorMzU5RDRFODdCMjk3NkM3RjM1MzM0RjQ3NDRGQzc4RTE1REQ3OTc5RjI5MzA4MTQ4NDk0QzJBNDJBMkZFRTFDRQorRkJGNzU2QkE4NjgzQjdBQjA2NUZCMDdGNjY2ODk2ODMyQTVDODNBMkI4NUVFNTQ2RkNBQzJERDg3MEZGRERDRAorMTk4OTBBNUZEOUQ4OEZCQTZBRTI2N0ZDOEYxNjY0MjcwRjNCQTZCOTkwQkUwNTZBQzc5RTU1NzYyOTkwQ0JDQgorRDhENjBFRjVBNzQ3NjIzRDcxOUM2QTc2NDE0QkRCQkU0NTQ5RDMxQzE1RUUyREQwMkQ0NTJBREREMjJFNjRGOAorQ0QxMzUyNUMyNzQ0NTZBMjE2QUE5MTlFQjhCNkNDMzY5MkQ5MTI4QTc2QjAzNTY2Q0EzM0MxQjBDNUUzMTU4QQorMDcyMkU4MjM2MTU2RjFCNTEzMDJCRDAyQzk3RDRDMDBEQzYwQjI5OEUyNzMxNDg1RjNFQUVFQjUwQTRENzEzNQorNzJEQjNERTg3QUNGQ0UxRTQwQzg2MDJBNkMyRTAwRDZGM0M3Q0Q3MTJEMjE0QTUzQkI4RUEwQjQ0NUJCQ0YxQQorNDEyQUZEQTk3QUQ0NERBMkRGRDI5MzQyMERFOTVCMEI4ODU4NEIyQ0M3OUFFQTgyNjg1MDA2QkU1QzZDNzgzRgorOTk1N0Q0QjFGNzdFMjkzMjc0MUUwNTZGM0ZBNzgwMzNCQ0I5MkZEQkEwMEIyRTQ5OEZCRjEwMDBERTZEOURBRQorMjk5Q0Q4NTQ3NDNBODIwMzJERDYyRjA0RjRCRkE5QzVDRDg0RDIyRjJDRjcwMTNDMkNCNkFDMjQ5RDY3QUIxMgorMzM5NkMzQjMzM0E1Q0JFOUE5N0U0RjA3QkUwREIyQzcxQUU0RUY3OURGM0RFOTUyRDdFNDczQzVBQjJFRTg5OAorNDk2OEZGMzdENDA5REFERjI0MzJCNzc0QjVBMEJBNTVBQURBMTAwRDI3Qzk2MTAyQkNFREYwNDQwQ0ZBQkU0MQorMTlENDlENkJBNUE4QTg4N0VFMDIwNjhDQjE3ODhGQTM3OENCMEJDQTQzNjg0N0UwOTI1QzJGODgzQTk4MDE1OAorNjk0RDY2OTI3QzExNzIxMjQ5MzAxNUJDQUUyMDAyNDlCNzc1OERDOThEODQ5QjdBRUIzMkM3OEIyRjE1NzdEMQorMUQ5MTkxMkMwNTIyQUYxNEY3NURBNDhBMTk3MjI5QzJCRTA4QjZGOEY1MkE4MzlBQjUwN0M4Q0E1MjRGQ0YyNAorQzkxRENFNkM1M0Q3ODREMTVFNjkxQ0RBMThFQjQwQkUwQTdDM0IyNEJDQjk5RjM2RjdFOEY3N0M0NUVGODdBMQorQTA5MzJBQjE5NEEwRDVFOERFNEM1NjdDNkU4NkVCM0U3MzRGODlFQzFFNEM0ODVEODFCOTBENTA1RkRFRTQ2MworQjRFQjlEQ0U1M0NEQ0RDMTlGNEY5OTAzM0RCMkFCRjk2OThGRDE1M0ZCNjg1NzZBMjVGRDE4OEI5OENFMUJCNQorQjdGRDQyMDg0OUMwODM1QTU0MzkxQzI4QTE2OUY1N0VGQjUzQUIyOUIwRTlEQkU3NzZFMzdDMDRBNkQ2QkQ5MQorMjBGQ0Q2ODk1MzIwNTlBOThCNDQ3NzEwN0U4NjhBMTIzQjI3MzEyOEY3RTc0N0MwRjA3MjQ4MTFERjAyOUFBNQorMjJDMjA4MkQ1NTdFQjhDRTlERjM0OTQ1MEM0NDQ2QjRCMURFQTcwQ0MxQjE0NkFGRUNBMDZBMTg1OUQyMTJGMgorQkRBRjQxRUQ1NDZCRDEwNTdGNkY2QUZGNDZGRUU2MEZFODM4MEU4ODk5RjcxNzM1RDJDOEQ3RUI5NjUzQjAyNworNjgzMjE0MzJCMzcwNTAyMjlCNjgxNUE4QzRBMUVCRkUxOUE3NjEwOUVFMjk4MDBCODhFNkM1MjgwNTRBMTdCNworMzk1Q0Y0ODJBRTYyNDQ1NDc4RDZGNDFDMEU3QjhGNzgzMTNERjFEQkVEMzM5RTM4OTg3NUE4RTg4Mzg2NzkyMQorMUFCNTNDQTBBMzk4MDU5NDgzMEIxMzIwMDA3M0Y5NjZGMDA1RDFCMTQwMjg3N0NBNEE0NjQ4NTMxOEExQjg2MworMjQ0NjQ0NDVFMjY0RUJERDM1NjdFOTI3M0ZGMDEwMTZFQzFDREMxNDJGRDlEQkY5ODBGMDk5NTA5RjMzMDMwNQorM0IxMzhDNTExNzBCQ0UzRDU5MDcyQUJBNkMyNDEwNDg2MTI0MzQyNzE0MTlBODBERkREMUJBMTU2QThBRDU0QgorMzlFNDVGRTY0RjFCNTU4QTcxMkQ5M0M0NkQ3MjlBMUY4QjM2NENCRUNBNjdBNjE4RkExMzM3MjQ3QzA4RDBDQgorOUIwQTQxOEM3Mjk2NjgxNDdERUE0N0JCREUzNDJDMkUwRTI5QTgzNjMxMDc3REYzNEM4NjFFREM5RTgwRUZFQQorNzVCRTMwNDAxMjVCQ0M2MEQ0RkI2OUNEQjc4QzI1QURBNzJGMkQxMDRDQUI4RDNGQkFBQjVFODkzMUE3QjhGQgorNkVCNDEyNTI1NDJGMzAyQzExRDNEQ0JBNjYzNDVFRkQ4MTZEOTYyM0JFMjAxOUFDMzMyNTc3RTFDRThFNkE4QgorM0RBNDg3QkM1NEI4MkVBOTg3Njk2MUE0OTY4RTc3MjYwM0YzNzkzNkM1RUNCNEMxNDYyNURDM0UzNkU0QkU5OQorRTY5MkVGRDNBRDdCMDgxNERBMzJCMTNENkM2NEZDRTc1MEY4MEU1OTg1RTcwOEU1NEM3QTU0NTQyOTQ5Njg5NAorNjQ1MUJCODYwOEYxMkRFRkJENTg1RUQ2MkEyNDUyMzc3REQ5MUFFNTYwRDE0RTU0QzlBNDQ5RkFCQkQxNkYyNgorQUFENzYwMjYwNjZDRDhGNTY3N0JDMThGRTlGOUJGODkzNDREOTBCNDU0QjdBN0ZGMjBBM0VGMDU4ODE2RUNBQworRDQ5NDg2MjYzQkI0QUM4N0FCQkRGNDNEOEJFNEEwOUYwREVGNDE2Qzk1QUQ4REE5MUUxODdBNTUyODM5MEY5RgorRkU5NkQwQ0VDNTMwMjJGMUREN0M1NjVBRENDQkFENjNCMTEwNUNGMTFEQUVBMkQyQTlEODI3MTcxQ0RFMUI5MAorMEE3MUQ5QzJDNzgyQjc0ODg0Qzk2MDVEQUYwNjNGOTk3NTkwNzlFM0E4MjExOTY3ODFDNzU2NjE0RTQwMDE0OQorQTYxOTk2OTlGNUYyQUE5Nzg1OUZDMzY2OTlGODY1MDRENThCQTc3RDE0ODEwNDI0QzJBM0ZENzkyNDdGM0RFMgorMUVFNkNFMDAxMTI1MDQzM0VDNTA0QTMxNDY4Mjc5NDk0NjgyMjdFNzU2ODdCQjgxRUU0MEY0RURDMjgwM0Y3MQorQ0NFM0JCNUY2MEZCMEUxMjEyNTNDMzM4NTU0M0I2QUY3NDFCRkQ2NzE1OEQyRjM4MjI3QTI5QzNBQkE0MjlBMworMzNCQzU2NEU4ODY3QzFGQkIwNThFRDZFRUM4RkQwRDgzNUFBRjQ0MjEwMzM0ODc1MUM3QUQ5NDFEMUIxNjU2NgorNzYxRUQ2OUFGQ0VCNEIyMTNDQzlBNzVBMUMwMTI2MEI1NDU2NTRFRkRFNzA0MkM4RTdBQkQwNTA4RjQzRDRFOAorQjUwRTZFNzk5QTVDQzg1MDdFODE0RUJBOTU4RUMyREQ5NjU1Q0JEMThCMDE4RjI4NDY1OEM0QzgyOTk1MzJBQQorNDhFQTc0NzAxOUQ5REI3NERBRjg0OENCNzYxOTJDMDEyNUM3QTUxNjk1RThEQ0I3M0M0QkFEODI2QTgzRkM5RAorQUIxNzc2ODVEREY1Q0UzQTdEQ0EyMUIwMkZCQzZERDdCNTJCNkMwODZCMEMwNkFBMjQ5MTlBMzg4NDVGQjI5NQorMUVBMTY5QzhEMTcyMTBDMTRFNzEyQ0Q5MDA5OTMzNEM5RUY0NDlGQ0UyMTRDRjY0MEZGMzlDQTFEQTIxMjBGRgorQ0Y1QTlGMzg3QjNFMEM3RUU0OTA0REJBMzM0NDRBNjY4MzE2RENBQzE4Qjg1Qzk4ODI2RjVGQ0E1Q0FCMTJBNQorOUY3NTQyNDUyMUNBRjQxN0IzMjZGODk3NUU2NTc0RTVDOUU1NUVFMjc3MkZFMjBBRUM2NUM0Q0I2OTJBMjQyNQorOUEyOUY3NUVERjlCMzFDMjUwM0M2QTdFNzlBMTdCOTU3RUIxOUQ0RTVFNjY2QzgzQUVBOTJBOERCREIwMzNFRgorMTYyODQ4NkUyQkZDQUMxQzlFMzI2NzY0ODhCQTEzQjMwMDFGNkFBMkVBMDM3NDdBM0VBNUQyMjBBNUYzM0IyOQorNEFDNUFENjIzQjBDOUE0RDBDNEM2RDQxRjg5RTNGQzMyNTc0NzE3MEJDQjA4MDNBN0Q5ODg2MjdDREFDREVFQgorMEQ5REZFOEFDMzU3QzA3RjZCNjBFOTBDNURBM0FDRjg2OEYxNDUyMzdEMTcxMDg5NUM0ODU5QTMxOUZFRTAzOAorRDdGQ0M5RDU2NjIwNjA3RjUzOTJEMTk5OEM2QkIxQjJFRDJCRjRGOUI1QkI2RjgwQUIwQ0M1QTUzNUQ1MkJFMworQTk5NkE3MEQ1ODFDRTQzQzM2NUVFRTE2OEFEQUQ5NjNEMEIyODkyRjU2RkRFQ0ZBODY2NDczN0E1Q0MwNTk1RAorM0QxMzU0MTBDRTVDQjRCMDk0NzQ2RDVDRDhDMzM1NUM0QkY3N0Y5RDUzNzUzMzRBMTE5ODMzOTk1RUJGNzU3RgorRUFFQzZFQ0FENEE2MkI5MDkxNzAwNkExQUU0NjMyRDc1OEQ0MzdEQjQ0M0Q2RDc2NjE0MzRDOUE4ODEzQkIxQQorODBDNTM4OUQyMjEwRjRCRkEwNTdEQTc5MDBGREY2QjYwMjEyQjU3NDdFNTg2RkI4NjVFMkZGNDI2MEIyRTNEOAorMEM3OEUwMDNGM0ZENTI3OTI1QkNBMjJERkI4N0VDN0RCMjE4ODMwOUQ4REY2QzY0MjQwNDhEOTlDMENEN0YxOAorNDc4NzQwNDEzQTgxNkI5MkQ2QTM4QUYwMDI1RkM3OUI0QThEMzVFMkIzRkY1QkVENDUyM0IyMUU5Q0U0OTM1MAorQUI0MkQyNUE1QjQyQjFBNDlENUE0NjhDMzg2MzVFOTFBQTFCNkM4MzVDMThENUIyNTA2NTMzQjRFNzdFQzBEMQorQ0VFRTFENjY1Njk0OThGNjQ4MkJFQUMzRkQ4MThFQTJCMzE5MUEzQTY3MjEyRUI0MUQ4QzcyNUY1MjkzN0Y5OQorMDZEMzM0ODYyNzJFODJBM0M5QjVBNTQ1N0QwMjE5QTNDRkZDQTBGMThEMjQ2QUU2NTA2OTE1RTA1NUYyRTFCRQorODY3ODM4OTc0NUIyOEVEQzJEQjAwNkEwQUE1QTRDNjQ4M0IyNEREQzBGM0EzOEVFRDdDRjMwRkEwMEI4MUNENQorNTY3NTdFQThDNDQxNjRGMkJERTA3MTIyNjU5OEQ2MjQ2QzhBMENGOTcyQUY1MjMzMUQwRDJBMTkyQzk4QTMyMAorMDE0MzVDNzdDQTBCNjEyNTZFRTk4RDM3M0EzQThGMkI0MTYyMkE2QkNENUFFRkVCOTAwNEI5MEY4QTk1NThDNQorRDRFRjZCMzY5MTJFODU0MDE0QUIzNTg0MUI5OUY2RTFBQzExRjA5RjUzNjEzNERFOTA4NjVGNzIxREY4NkRBMAorRDEzQjZCQTIxNDZENzU2OTZCMkMyREUyMUY0QUJBQzM3QjNDMENBOTZCREJBRTgzMzRFMkZBNkUzOEY3NTg2NgorRkY3RUQwRjY0RDU4OTZDQzI5NDAzMkFCODZFNUMzMjhBNkIwNkMyMjI1QTYxN0YzOUNDRThCNjlBRkQ1QjA0MQorOUIxRjlGRjAwNDAxRDdGMEM5MTg5Qjc5QjBDMkI3MDA5NDVFRUVCQ0FBMzhBOUUyMDJDRDVCNjg0Njk1NDJERQorRTlFQTc4MkQ3QzQ5NENDNkI0MTFENjE0ODY3QjQ5OEIyQzI3MjlENjVENjA4N0MzRDE3OTU2MjI3QjAyMzQ1QQorRkQzRTg2NTNBM0Q0QTlDRTFGQkM0NkM3RTg2OTBDODAzQjQ1NTZBODBGMDU2NzRDRTI3MDY5RDI0NTYzREE0NgorN0QyQzQyMTlEMjQyNDUzRDA2NjUwQTk1MjJBMzE4NDI0NjkzN0NCRjRFQTJBMTg4QzZCMkE3MUUyOUUwQ0ZCMgorOTM0QjkzNTUwQjQ1MUFFOTg0N0Y5NkFFMTg2NDdDMDlDOTI3QzRBQzEyODQ2MTgwREJBQkYzRjE0NUZFMDczRQorNDVDMTI5RDY2M0UyMUExRjFGMUY2NzU1RjZGRUNEMUMxRjcwNjE5Mzk3MjJENDAzQkMyRjJFODU2QkJDMjVEQQorRjA2OUYzOUE0NDFDODM3RkRERDI1NjNCM0EzNzBFRjczRjA4MzVEMzREQTg2Q0U2NTE2MjkxN0U4NEM3NjIwMQorMEE1RjI4NTQ4MzA4MjJGQUE1NDVGQzBBMEY3N0U2MkE3OTU0NUZEQ0FFNzI4RkNDREYyQjcyMEMwQUY5QTlDMQorMkZCNTg3OEU5ODMxRDQyRkM5QTU2RDQxOTA0QjE1NTFEQjJFNzQxMEVFMDU1OTQ4Q0RCOEI5NjI1QzZEQzYxOAorRjgyODI4OTZDMUMyNTg2MDgyMzRBMzcyQ0YwMzFFNTY2MDk0OTI1MDA3MjAyNUI3RUM0RTUzNTg5OUVBOEJEOAorRDFDRTk4QTg3MEMxNTk5NjRDRUJDMEVDRUE1REVCQkFDMUNBRjg2QTM5OEQ5Qzg0QTA3NkVENjMwOTkxNTAxQworMTQxQUUyREVEMTY4OEMxRjEzODlBREM0MEIwMjU0MDdCQUU3RUYzQUE4NDdFRUJDNjFERjU4QTZDM0ZDOEYyQQorRDlGQzgyMERDRjFEQjNDRDJGRDMyQTQ2QkUxQjk4RDg3RjNEMjkxQzgyMjlERDkxNjlFMzcwQkIxMDcwNkIwQQorNjA2RDQ1RDY1RTNGOUE0RDVDQTIzREJGMjM5NzI2NjhBMEQwRkFENEQ0ODVBRkY0NEFFMjg0QjkxRUE2QkIxMworMTA4QjlFMEFBNUMwQ0U1RUU4MEQ5QTZEMTAxMTRBREFGMTRBQzA1NTY5QjdDQTdGN0E4NDQ0RDc1RDUwNDcwMAorODlFN0RFNTE1QkI2NkUzMjA4MTZCQjYxREY2NUQ5QjZEQkNERjVCRkVCNDc1RUI2QkM5MzY2MUQzOUJGQUJGMgorQjU0MkNCOUU1RjM4QUIzMjcxQ0FFQzYwQUZERThGRjUzM0RBRDgwNkI2MUMxN0E5ODVGQTVDRDhFNTM3RDk0MQorMDIwRDJDRjdDQUQ2Mzg5QUQ3MzU3ODU1OEI0OTc5NUNBNUQyODMxRkRFQTFCQjBCQzE4MUFDODQ4RURENUZCRgorRTlBMDUyRkNENUJDRkI4ODNDNzA0RDgwRDlDQTA2QzdEMTQ3NjQ1NzQyRUMwQTYwMUY2NkE1RDE5OEE3QjZEMQorNzg1MUNGNUQ2NUU5NkU0RDgwMUQ4N0ZEMjcxRDA3OUE1OUFBNUU5NkUzNDUwNTNGQTNDRjQyN0E4MEQ3OEE1QQorRDUwMDdGMTJBQ0VBQTJGMjFFNjEyQUMyQUREN0IzNTk0MUVBRUM3MjhDRTdCRjY0ODA5MjcwRDA5RDQ2OUJDMAorNDIyQzM3NjBEMUQ2RkZBQTc1QjBGMzZBMTk2MTI3OEE1RTYzNDA2RTRBQUVEOTM1MzIwQzY4QTNFNTUxNUM1QworMjI2NDg4Rjk4Q0FDM0IwNEYwMTZBMDNFMzQzQTk4MzVFRThFMzczQTZCNDlDNjg1RjFCMDI3OTg0MzZCQjA5OAorREY4NTQ4MjVFQTE0NTI2QjMzNzYzMERGQzI3OTE0RjM3NERFOUE5MTVENzczNjlEREQ4OEZFQUM2MjZCMDE4MworRUVDRTM3OEJEOUIwRkY0NDhFQUEyQjY1NkEyMDEwMjY0MUIxODE0MzNDQUVCNkQ2QTBBMzBBODM0NkU3MTBCNgorQjlFMkM2MTAzMTAzQ0QyNUNCQzgxOTVDMDJEREI4QTZFNDIxNkYyNEZFQzVFMEY4MDkyRDlCNzRGNzk0NUY1OAorQzhCQkVERTFGNjk5MzU5MkU3MjNBRDBGMzQzQjJCMTE4MDk4RjY0RDUyQkM1NzI2QjI1M0JDQzRFRTM1MjZDMgorNDlEMjJFMkFFMDJDQzQ0RjExQzJERjBGM0FCMEFFNDhCQTAzNzk1QzFFRDNENUUxMEIxMTU4NjkwRDQwMkM0MworRkYzREI1ODVEQkYzRUI5RUFBODA4M0RFNjJCMTk4RTJEODFEOUNDRjRDRkQxM0Q1RjVEQ0NDMUEwN0Y2RDk0QQorRTNFMTFEQjU1MUNDMTEyNDIyOUM4NEYzMTFFQUQxRUE1NEIzMDkxOEE0NENFMENCNTY1QzI5QzA5OUFCQ0VEMworMjVFRTE5QjlCMTc3NUMyNUUyQkNDMEQ1ODAyNzVGNEU1MjY1NzFCMDc0Q0Q4NTMxQzY2QTYzMDJGRUQzRUZFNgorQzUxNjQyNzM0MTA4MjYzM0FGMjE3NzdBMDIxNDBDOTA3NzlCMzNDQTBEMzFGQjREOEE3OTQ3NDQ1NEFGOTQ5RQorODU1QzVFMUQxRDk1MTBCMjc1OUE5REY5NjI2QTJEQTI2QjZEQ0YwNUU2OEFCQjExQjUzMjFEOTI5OUYzRDhDMworOTE1ODg3MDdCNjNDREZEMzNGRTM0QkVDQUNBODk5NjEyMDcyODMwMTcyRjE0ODE3MDI1NDEzMjI0MTZFM0Y1NQorQkZEMkJCRkREOUE0MzIyRTI3NTc2NzQ4RUEwNDNFNDA5MjYwM0JDNEI3OTAxOTY3NEEyOTM3OEFFOUEzNUE4MgorNDI0MDU2NTBENjJBMTNEQkRFNkJERDU1QTgzMTY4NURFMzFGOUMyMEFCNzZBRTIzMzdFMUU3Q0M2QjBGQjQ0QworRkMzOTYxOTAwODM1NzVFMTg2QkFDQjUyOTMyQUExMTYyNEQ4MzBBNThBRkJCMjY3MEUzOTI0MkY4NjA5QkE1MAorQkNCMDYyOTkxQzRBMTkzQzA5NDY2RjRGRjJBQzA5RjFFN0MwOTRGNTAyRTY2NEYxMjk1MDBGMkI5M0FDQzJDRQorQjkxNkQwODBDNkRFMTQyRTQ5NjUyNkYwQzlBNTgwNDY4ODg5NkQzMTg5NUQwQzBBQkI3QTBBRTQ5MThEMzQ4MQorNTM2MEM4Q0Q2MTg5NjBBOEYwMTRCMEFENTU1NzVDNTBCOTAxQzVBNTdBRUY5OTYyMzA2NDJBNUM4REEwOTQ0QQorNzZFQ0RFQzA3MzBFNkVGQzdGQUREMDlEOTA5NUZCNTQwRjM3N0Q0NjBEMTU5Q0NGRDcwNTlCMEEzNEY3MzhERgorMDEyQjdDRDhCQTYzQTQ3MjYzNDIzQTlBNzBDMTRCRjcyMzg2NzQ2NzcyQ0E4OTU0QzVCRDFGMUZDNEM3NzExNQorRkQ0N0U3MjYzOEZGQTMyMkYzOTlENzEyM0JBOURCMjgwMjI1ODk3MzU4NzVGMDU4REMwNTUyMTMwOURFOEIwMQorMjczODdGMzMwQzU0ODlCMTc1MkI3ODk1NjFGQUI4QzkyQURGNzc3ODA2OEJDMjdFMjVDMjQ1NTM5QUQxMUIxNQorMDE3QTdBRkQ3QkZBRDYzRDBEQzQwMEIzNjkxOTRCOEQ5RTREMjk4RDU0OEZDMTk2OEEwMDYzQTdFQjhGRTFFRgorNzFBRTc3Rjk5Qjc4RjY1MjlDRjk0MTVFODg2QzU2NUVDMzA1QkVBREVDMEFCNjVERUFCQUM0MERDRDVFMjQzMAorMzYzMTVGNTJDMDA1QTk4MDJEQzQ5OTQ0QTQyM0YxODI4NTEzRUIzODFGMjRCMEZFRkZCOTlGQjUzRkI4NkE0RAorREJGRDdCNTk5NEZFNzM2ODIwQUVCMzBBQjU4MzJFRDU2MDQ4QTg0NkExMzg4RDNCQTY5QzY4MTgwRTAxNzE3MAorQ0Q2RURGMjQ2QTEyN0JEOEQ4RDI0NjY0MTcxMDI0RUQ5RTFBOTkyNzlEQjZCNUZDOTFFNDI0OEVEQjdFRjQ1RAorNUE5QTg1MUVERUQ1OEYxMUQ1ODZFQTA3RjlEMzJEODBCRkY2MTEyQjQzOTU5MTZGQkI1REMwNkJBMDg5NjQ5MgorRDlDNzcwRjk3MzUyMkU2Q0I1Q0NDOTJBMDhDQTFGOTA2N0Y3RUQwQTM1Q0U0MTAzRUY3M0MzQkVFRTIyRjJFRgorQjM0NDU0MzMyOTVBRkMzMEQ0NjQ5MjlDMDYwN0ZDRDc0OTVGOUE2QzBGNTcyN0NEODg0NEJDM0VBRTQzNjA0NgorQjhENDg0REU0QjhCQ0U2MDc5MDREQkU1RDAxOTI0QTg2RTE4RjczQzVENTMwQkJERkU3REVFQTMwRUNGMUM4MAorRDEwNjE0Rjc3MTNDRUEzNkRDQThBQjlERDQ4OEM1N0U0RDBFODQ2QjQ4NDMzREUzNTIwNUI1NzUwNjE3NTU3MAorRjhBMDc0MEY2QjY1NEI3QzNCNzQ0QzVEMDMwODI3REQyOTk1MkNENTc5QkFDMjdFMjVBRDY3RDk0NkY3MDdGMQorRUM0NEQ5QUExRkE2Rjk5QkJDOUY0NzNGRTUxOTFDN0E5MTg5NTFGNjZBQjA5QTlBRTY5ODBEQkUzQ0IxNzQyQQorOUQ5NTE3NUQ0NDA3NzhBM0Y5Q0I1QjVDOUEwQUZEQTU5RUZCOUVGQTY4ODNDODM2RDU2MkUyNjI5QzkyMDJBMQorMEMxMkZCMEI3Q0Q0MzEzQjg5RkM0NzIwMkQ5QTkxMzFCQUE0MDA4MkNCRDlGM0IwNzU3ODUzRDc5RkJCNjNEQworNDIzMDA5N0ZEMTUxQzk2MjBGNTIzOEM4QTM5MDBEM0Y0RDBBNEU5REZBQ0JFOUNFQUE1MDQyQThEQTFDOTgzOAorNTU0Qzc1NEQxRjk0N0RBMEYxMzg2MUY3MTkxOUE4ODY5MzU0MDlFQUJERTVCREY4MEFCNTg2QUQ4MEZERkFDMworMjU5QTU4Q0E1QjIxNjRGRTRFOEJCNDQxQzc2REZBRTQxMkY5RDhGNkEwNzkxRDY1NEM4ODQ2NDE1QjhGNTBFRQorMkI1MURERTk0QzU5NEMzNUIyMDBGNjM5NDcyN0Y2QUFDQUI3QkNBNzA4OTcyOEM0RDQzRDA4RDkyMDg1RTg5OQorNEQ0OUI4NjdBMjBENEQ5ODgyNjlFNUJFOTA3NUI4NTk4ODE1Qjk4QTMzRjcxRUYxREM1N0ExNkYxRjhBNkEyMQorNUVGQ0ZDQjhENUQ2RUE2M0JENzFBQTgxMkEwNkI2NTE3OEJBODYxQjQ5RDIyOEIwNTYyQ0I2NDNDQzI3MkZENQorNUI3NUQ5MUM1MkIyM0Y1MTE5QUU1NjcwMEQ5MzE2MTYyNTM3QTRCMTEwMDRERDJCMzZDRDVCRUVGN0NGNTAwNworMTMyMUE1QThGRTYwM0IxMkVCM0FBNjg3NEUyQUNCNDRGRjg5MjI4QkVEOEI0NTdFMUU2NzFEQjI2MkZCMzk5OQorRjIxNzU0MTcyQ0QwNkUyNTA3MzRERDBCMDM3RDM5QkM3Rjk1QjU5RjcwNkQ5NkIzNDM4RkJEMzZGODA5NkFFMQorQ0VGMEM2QjIwNkZEMUZDMDlBMjY3RjA1QzJGQ0FEOUQ0OEI3RUQ3OUM1Mjc0QUJCOTAxRUJDNzEwQzU2Q0I1MQorMjkzMTRGNEZCRUVBNDhCRjBDNjM1ODJDNTA3MTYyN0JFNjNGMUE4OTk3RDQ1RERGMDc3N0Y5ODM2MjlGREY0MworMUM4OEQ5MTc5MEIxQURENDAwMDcxMzFEOUVCRkQyNzc1Q0NDN0RCNUY0M0U2NTQ5RTZERUE5MkZEOTNBNkU2MgorNUYxOTc0MkE5NjlCNkRGNjgzNUU1OEZEQkEwQUNBNzU2MUREQTkxMUI4ODcyQzVGNzY0OUNDNzk4Q0FFM0JBQgorRDM0QkU1QjhGQkMxOTJDRDQ5REJERjg2OTg2NUM4OUNEMTNENUUxREVFQjA3OENBODNCNTQxMTVFMzk4QjAyNworRjAyRjIwQTJGQTE1OThDRTU1RDYyNjFENzFGOTFCODI1MEM4QzJGMjc3NEUyMUM2MjNBQjg1NThFNkJFMjIwRgorNUNGMEQ0M0U2RjQ4QUJCNUU3QUUyMTMyNjZFQ0FCMDQ4MTBDRTMwQkY4NUVFOThEODE0NTQyN0VDOENGRjVFOQorODZFMUJGMTQyRUI0MUQ4QzcyNzZERTU0NTYwNUJGODEwNDgwNjM1NTMwMzQwOUNBRjYxOUVBRjEzOURGNjdBMAorN0Y3NjhCODY3MDY2Qzk1RjQyOURGREY0NDg0NjVCOTQ5NzlDQUIxNkEwREEyQjExNkE0RjQyOTY4RUVGQUM0MworQzg5RTlBNEIyQzlDNEVBRkZERDg0RkE0QzNBOTk3RDA0MjM4OTM5MkFEMjkxMTMzQTQyMTUyRUNFQjM1RDM2MQorN0ZFREYyNTk1NzY3NDQ5MjA3NEM3N0VFNURGQkY1NDRERUJDQzg4M0MyOTIzOTBDOURERjk5MUIwMjg3RDhGNgorRDNEMDcwRUM1OTAyM0FFQzY0QkVFRjE0Rjg3MDMzOUI4M0FFMTBERkZDNDlBRTc0QUVCNDVFQ0FFOEFDMkUzNAorMjQzRDc1MjBENDg0NUQ4OUZGQTZCNTk0RDhBQjk1REFFQTY1ODY4RTRDNkZBNTY2MTYyMzMyNjlGNEREMEE5NAorRkJDREUzQjFCRTZEN0E5OEY2MkU2RTU4MjA4Q0Y2QjUyNEI5QjgyNjc1N0E1RTQ0M0EwN0ZEREIwNTdDNTUwRgorRDM5OTJCOUU0NjRFNkVFODMzQ0M1MzA4NkYwM0Y5OTBDODJCMzZFOUExODEwQjI0NTYwREIwOTgxNEM4NTVEQworMkNEQ0UyMzgzNjRFNDJCOTM4MkJFRTc3RDlDMjlCQzg2MDZFOUE1MTRDMEVBMEM4Mzg4NDc2NEY2RTAzNEUyMAorOUJDMTUyQzJGMTBGMEM4NjdDQTRDQzk4RDBEMDc2OUZDMjU0RDhEQkEzODIxNUY2Q0M4NUYzNzY3MTA0MTI2QgorMkNFNzBBNEQ0MEM4RjhDRTU4OTVGQUNBRjM2OUZEOUJDRDI3NDQxRUFCMjlFQTA0MjdGQjA2RjQyRjhERDY4OQorMTE1MzM4NDlBMDg3NTkzNzZFODdBQzM0MUFFRTVGQjk1Q0IzMTUyQjJCREZFOUNCMDQ2RTAxMkFBMzM4OUIxNQorRUFGQkFERjlDODg2OUU1M0IwMDk5NjRCMDIyMzlCQjdCOURCM0FFMDFEMEY1QjMzREYzMTU1MjBBNzMzNzQ1RgorOTA0QkI4QjAwMzYyNEIzQjg1MTFENjdCRUNEMzdERUQ3N0YwMjM3QzBENTFCNzJBN0Y3RjkyRUVFOUEwNEJGQQorOUVGQzAyRUY0Njk5QzJFQzBGNDY5OUNBNjAzODFDNEYyQTM5MzUxQUVFMjc3MkFGRURBQ0M5MEQ5MjMzM0Y4OQorNTRENjVGMTYxMzUxRkIyNDM2ODA2OEE3OEM1MjdCQ0YxODgyMDQwMzNDQjA4MDY1QTg5MjgyOEY0M0MwNUEyQworMjY0OEY5QTk3OTczMzE5MDc4NkEwM0Q0N0E3MjdGREZFOEVEQkEzRjQ5MjU1QkMzNzk1RTM3M0NFMkE5MzNCNQorMkE3MkUyRjY3MDk3N0Y0OTg2MTU2NDg3QjQ5NzRCREI5NDhFNDUyRTJEQjQyOUQzRDJGQjgyNjZGN0IzNjYyNgorMUNDMjEwNzYwQ0ZFQzlEMjNDOTYyMUFCRTE0RkMxOEFEN0M5RkRBRDAzMUQ1NkNFNzJFQjc5ODJCNjUzQjhGMAorRDk5MUY5QjVBMDk0NkFEMzA4MzU1RURGQkIyQTNGNjJGQzhCNTdCNEZGMkY2NkZCMzU2NDczODFFNTQ1OTcyQgorODA5OUE3REI5Q0VEMDkzMDU1Q0UxQTQxNDA2MjQ1OEQ3MDFBQ0E2NzUzNjI1OThBRDBFRDczOTQ0RUE5REFGRAorNkUzMDQzQjkxREMzOTA3N0M3NzU4NDM5QkU3MUNBQkMyQzE2QjU5MzAzQjQ5RkE0QzAyQjVBNTg0NEEwMTM2NworMEI4MDY4RkE5QjRDQjU4QzVGMjRGRjQ2MkFGMDEzRjhFRUVEMzg2REM1RTVDMENFMzBFNTkwOEU3MjJFNDBGRgorODYwQzAyQzA4MEUxNDI4Mjk4MEMwOUM1MzA3QjYzODA2RDAxRTZBNjFBMzdEMzlEQzI0NDY0NzBEN0Q5MEU0NQorMkUzQ0JGMTg0N0JGNEJGOEQ3ODQ1QUVFNEFGMUNFMzQ5Nzg1NzdGQUUyQTcxRDUwMUY5N0M4NUJFNDlDMTU4MworQTA3QjU5MDI1NjMyNDEwNUFDMzYwMUQwNjExNDlFQ0ZEODdFMUZBNzI2MDg5QTJDMTlEMUE0QjJCMjczRkM4QgorMEZCQTlFMjNGNjNFMTc2NkU1RkIyMTY4NzdGRkVBQjI0NzNEMDIzQkQxRjc5M0Y2RDc1NjE4NTBCQTA2MEM0MworNzM0MjY4MkM2MjJFMDIwM0JFMTc1MDk3QUM2OUNGOTMyNEE4N0JBQkNFNkZEQjRBRjA4RTI3QzNEOEU3RDY1RgorREIxOUY2OEIzMzM1QjNFQzJGNUU4RUUxNDYyQzUyQUFDQ0IwQTk4OTgyMDU4NTVFRDgxNUE0MjgzMDY3NUY5RAorNDU3NDc5QTMzQkE2QTAzNEYzQkJBRjY2Nzk5RUFEM0ExNTI2MjRDM0Y1MDI3OTI2NEM4Q0YzOEE2NkRGNUZEOQorOTdGOUVBQjUyQjdBMjgwNjY3QjQyOTgzRDY1REZFNDQxNDRCQTM0RkIxQkVFQzVGRTFCN0UzRDIwMTAzOEM0NworODhBNURBRTBFNzE5QzhFNEIzRDI5ODhCRjUzNkYyQzk0OTYyQkNBQ0IxMkE4QTI4Q0ExMjQ4N0I3MDk1ODVDRQorQTM2RjdDMjg5QkRBRkM1MkU5Mzc0QjA1OTg5RDJCNDA5QURBRDZGMTgxNDlCRUMxREREMTZDOEZGNUIxOEJCNQorNEFFQkQ3RkJGOUM2MjE3NDk3OTY2NUQyQkE3OTE0RUNCRTNEMERGREUzRkMyQUE2RkY3Rjg4QTM3MjQwQTM1MworRDNFQkQ4NThCMEQxRkY5MzlGNDA0NDlCQTU4RDU5MkI4NUYyQzYyMTcyNzlGQjYyQjQ4NEMyQzRFQjBCNkI1QQorRDM1RkQwNzA2NTNBMTY0NDNENTFEMjkxQzRBOTIwMEFBQjE4NUEyOEVFRDM4MkM5MUUzMDdBM0I0QUExQUYyNgorRUYwRTY4Mzc3MzBCQTQwMDM4QjMzNjg2MzQzMUQzMDUyNURGOEFBRkI2RkRDOTJDMEU5OEU1NTI4OTU2RDRDQgorMzMwREU5NUNCNzk1NDI2NzBBOEM4OUE4MTNDMzU2MjU1QTI2M0ZERERCQkM1NDNBQzVEN0IyQ0ZEMUFFMjVGMAorRDZBMDE0NjVFQUNGNjlCQTg0QUVEQjZGMDE1NEFBMjVBRUJENzkyN0Q2MzZDRUY0MTY0OTRBQzhFNTM0MDQyNAorNENEMEFDNDNDNUMwMzU5OENCNkJEODA0OUIzNEIyNjQxMDYwREJCMEUzRkNCNUFDNjBCRTIyOUYzNTVEOTRDNAorMjI1RkVBMTc2NDFBQTIzQUVFNjU1RkY1NjlGOTBFMjRDOENGMjcwODJFNEU3QUFENjM0RjI4MTYxMkY4NzcwNQorQTE1QjdDMDVCRTgzMzBBQTk3MEVCODJCMDFEQjRBRjE4QjMxMTdCRkI1Mzg2MEI0MEIzNzBBOThFRTUxM0U0RgorMkU2MTA4QkE1MDgxNzJDRUI4QkNEMjJDRTRGRTUxODhEMkM3REU3Njg2MkEzRjc4NzQ3RERFRTNBNjE3MzM2QworQkI3RDNFRTUyRDQ2RUNCNTJEQzA1N0U4MkI2NzA0QTJGMUEwQzMxMTVBRThFN0QyRDhCMzE1MTdERTU4NkFENworREI3MkE0QkVERjJEMjJGODgzRjcwREYwMzU5M0NBQzkyRUJBQkM1QUZDQ0RFMUE3ODUwOUUwMjRDNkFBRjU1OAorQzQ1QzdGMUE0QUFBMjQ2Nzc4Rjk2N0FEQUFDMjE2OTlCM0MyRjdGNTNDQ0Q0MjQ2NDI4OTJDMzE3M0Y2MTcwMworQkNBNDdFNjUzQzYyNDU4MzA5Njg5Nzg1RUY4RUUyOTIyRTgwNjM0NDQ5RjBENUY3QThENzBGRjg1NjFFMzBERAorQ0M0NjRBQTNGMzc2MEU3QUNEMTk4OEJCNDQ3NzBGMjU4RUMwNzE3MkRGRUZDOTVBRkU0NUI3MTQzRjYxQkE0NworRUZFMDU0NzJDNDNBMTI0MEU0RUNBNTE2NjQ2MTRGQjlFNDZDMDhDQjAwQjNCRUI5QTE5NzlFN0NDRDZFMTk4QgorNDBENUQ2RkY4NDM1RUQwMjM0RkRCQzY3ODZCMEVFRDg2NDZFQjNGNDlCNjhEMkY0RTIzOEEzQTVGQjUwOUZGRAorMEMxOEQ3MzcwQzc2ODE5MkE2Njc3MEY3N0YyNTRGM0Q2Q0U5OTg2NUVFODUyNDM3Nzc1RTJFQ0Y2QTA3MEQwNgorNjI5RDhDRDYzNDlEMEU0MDczOERGRTJCMjMyMkY4RTlCNTNBNDBCNkZGNDQyMjMwMDcxRkUzQzhGMUNCMTY1QgorNUFDNjE0NDZBRjZERENCQUYyMzVBRjhDM0U1ODk3QjI5NUY1Qzg5ODg3MUZDNzY3NkVFNTUzNkYyM0Q5NDhDRAorNzMwRjY3RDY1OERDRThCQTMyMURFODhCRkM1QjJENUFGQjc2RDA0Q0I3QkRGMzE0MkUxQ0RCRTIyMjE4REI5RAorQTIxODdEQjZDMkJBMjhGOEIxRTU2RTRGQkRBNjRBNzNDQzkzRkQzMDFERTJFRDg2NjFENjFEMjFBNTRCMjU4RAorNjY0RDkxMzA1QjYyQkMwM0Y5RkJBRDFDOUIwOTY0M0RCRUIzNzQ5NTBFOEJERUNEMjg0MEUzQjQ4QTJCMDA0NQorODVGRjU5NEJCNkFGQ0ZCOTRCQzRGODJBQThCODEwNzNFOUE5OTFBRkU2QTM5NzA5NjA2OTY3RUE1OEY2QjQ5OAorMTJCMzM2QTEzOUYxQzgzOThCMTBDNDM0NjhFNEQ1NEY4REYzNkY3NEI5QTM0MjcxNzU5Q0YyNDlGNjk4N0UxNgorOUExMTlDQjZCQTE5MzAwQUExNjAyRDJBMUE2OEU3ODU5RTBCRUQ1QURFOTQzNjgxMDE0QjgzRTQwOThBOTcyNAorRTdCRkQ5MDhDRjZFOTBBMjVFRkQxNDhDQUMyMDE3QzcxRDg0RDhFRjIxNEZGOTQxN0IwRkM4RTQ3NTUxM0QzQQorMzk1MzBDRDI2QzA4MDA0Q0ZGRENEQTA1QTc4NTg2ODRGNUFFQzFDQ0MxMzFBREQ5MTBBNTFBOTNBNEYxRTI4OAorODQ4NkJGQTNDQjNFRDAwMTVEODUyNzczMUM1M0QyNzNGNUM1MURGMzc2OEMxRkE3QzAwNDUzNzQ1N0QwRUM4NgorNDVGMjQ4NEE3NkZFNTlDNTU1MjNDMjFFQTU2NkQ3RTc1QTZBODI1MDAxMTczRjZBMzRBRUQ4NTM3QzBEMzEyRAorOUU1QUY1QkJCOEMxOUJFQTQwNzFCRTlCMTRFNzVFRUQzOUJFQjM3QTZFNzhDQ0M5QzU4RkM5QkQ3NEU5M0ExNgorQkE0NzlEQUQyMkJGODc5RjdGNzZEN0NFMEEzOTQ3ODE5MDc4N0M0MTBENEU3QkFCNkNBODEzQ0MyQUVFMUE3RgorRTFGMzU0MzFGRjA3QUQxQTVEQUZBQTE4NTMzODVFOTYwMjI1NTNFQzVCMUI2MjUxMThGQ0I2QzFCMzAwNTFDQQorRTIzMURFMDlCOThEOUQ5OUU4MjFGNTBENDM1QkUxOERGMDYyMUY2MEQ5RDVEMzdBNTVDRUNFMDBFRUM1NzExRQorM0RBN0E2OTZFNDEyRUMyMkI3QjBBNDhCNTZGQjJGQ0M1Q0FCNkJDQ0E4MEY3M0FCOUU3NzUzNkUwM0FFQkIyMQorQUEyRTdGNUZCMjY4N0U3QTcyNkIxRjI0RkU5QUJEMzg4QzJEQkZGQjhDNzY0NUVDQTFDMzE5MjAwN0VERDIyMworNkI3OUQxNjFGOTRGODM4QzUzRTFEOTk0QTlEODk0MDlEOTk4NDI3QTRDQ0E1NjU4MEY1Q0VGQ0QzMTYzRjkwRQorRjRERkZGRERBRDk2MzI2NENGRDAzNEM0MEMxMUI1QTQyNUMxQTUxRDJERTc4MUUwM0VCMjY0OEE0MDk4MTlBQworMUQ2QzczRjRFQTA4MDMxQjZBRENFNjFGODAzMjNGRUFGM0MwNDlFRDRGN0E2MDA4RjRFQzA0MTkzQ0YwNTFBRAorOTZGMTVDNkE0Nzc3MUI0Q0IyNjdERjQ1MjU1RUZGNUQ3QkVBMjFDNEI4RjA2NTk4RTBGQzJGM0U3Q0JDMkIxRQorMkREQTA3OEQwMUQ5QjU1RDhBMjBBRjYxNjY2NDkzQjc0QTM2OUY3QjY0QzJEN0I3RTMxMDlCMDMzMDI2RUM3RQorQzJBMDFCRTdDOEVBN0FBRDFGNTMzMDA4RjZDQ0REM0FBMDg5ODIzOEJFMDU1QkFFODBFMTVEM0VENzc3OEMxQworMEFEOUUzOUVDQzY3RkQ5Qjk5MTAwMTFGOTgwRUYzNjE4RjhFOTFFQ0VENzYyNjNEMEExM0IxOTE3QTg2QUUzRAorRDgwMDg3OUVFN0Q3NDIzMjhCMEIxNDQ4QUYzNTQwNzMyRDUyQzlENjUzMENFMzYwMzI1ODZENUVFNjQzQkY1MQorMTc0OTJBM0JGNUNCNjJDOUVFQTAxOUY3NzAyNkIxMzU4MTU0MUEwNkExMDk4RDZGMEUzMzAxOTZFMEI5MjlFMworRDkyM0MwQjQzQzI4RDBCREFDQjYzOUY3RDA0NzRCODRBNDNBM0NCOEEyQzYxRkZGMEMwNzQ3OUVGNTg4MjVGMQorMTMzNDg3REU4QjJBMzgyQjU4NTM4ODU1MTY1RjQ2NkEzRjA2NkJGM0JCOTBGM0U0OUI4RjkyRDY5QTAyRDBCMQorRjc5QkYwMTRERjc5NDZEMEU0OTJFOTM2ODM3QzkxMDIyNDAzMDJFMjY3MjY5NDNCRTcwQzBCQzY0QkIwOEQ0QQorOUMwQUJGMkUxNDQ0OTgwQ0QzNTk1NTNENjdCMTc4QjUyNzk3QkQwM0Y2NEM2OUJCQzQ3MzdDNjU0REMyRkZBNQorMjlGNjRDMzVEN0NERjJFRTI5REE5N0E3QkE0RDMyRTQ3NTcwMjc2NzI5MEU5ODRCRjlFRTg1RUJDRkRCREEyNAorQzk4NDgyNkM3NTY0QUQ4MjI0OUFEMDVERDE3QkNEREZERTY0NkU4MjI0OTJDQjNFNjY0OEM0MTRGOURCNEEyMAorQTc2RjZEQThFRkEwNDZBMEE1MEEyODM0NjcxQjY2ODUyQ0VFQkJCQjU3RjFDMTYyRjZDNUJDRTdBMzk2MkEyQgorRDA4RDQ5QjNEOEE2Njg4MjEzMkI0OTRGRDAyOEJGNDAxNjFCRDI0QjA3RjNFODUxQjM3MkQ4ODgzQkE2Qjk1NQorNTFGNUE1MzVEOEQ0NEU5RjUxNDE0MjA3OTg3NzBGMzY4MDc5OTU0NTQ5QjUwNUY5NDU0MUIzOTg4QkIxNzE2RQorQzQzMzZENkZGMTJFQzI4MjU5N0RBOERBODdFQjY2QkZFMTM0ODg1QTdBMUUyN0RDQUMyOEIyMjhBNTBDQjQxQgorNUFFQTAzNEZBQ0JFMzU0MzNCMDc2NEY0NTFBNTFERENBQTM0ODBBMDc5MTA1MDEwODBBOTRFREU1OUQ5NUNGQQorOTRDOEVGNUZBMEU4NkU3NTFBMURCNjUzRDZDOTAyMkI5NENFRjc3RUU4MDQ1NUZFNTEzRjE3RjA3RTNCNjM2NgorQjE0MDMyNjg0MDA0NzYzRTcyMjk4RENERjNBNTcyMjJENjRERUUyRTQ5RDhGQkZBMzA5RkE2RjRCNzhGNzQxNAorQ0IzMEEyQzhGNDE2OEI5REMwMkM0RDQ4OUNBMTMwNURCNTBEMUYyRjAyQUQ4ODY4MDI4NUM4NURFNzEyRDJBQworNjczQzIzNTY3MkNENkI0Mjg3NjY1NzVDNzAzMjk3MTkzMEFFMjY0QTc2OEQ0MDQ3NEMyNzVFMUNBOUQ4RTY5MAorRTU5MkM1NjVGRkE3RUExQ0JDN0Y3RkE1ODZFRDhFMjk4NzIxN0Y4NzE2NDJGNjc3QTU4OERGM0MxMEYyQTg1NQorNzhCNzRDRUVBNDM3RkM2MzI4REE2RTFGRjk0MkNFNkZBOTcxMzgxRkE2NDQwNDkwQzBEQjYwNjQ0RTFFNDIzNworRTI0MzFCNDc1RDdBRDY3OEU2QTcyQUQwQTNFRDBFQjdFMDI2QUREMjY2NkQ5OUVCRDRGMDVDMkUxQzI1RkQxOQorODY2NDFDMUFFMTVERkE3NDg5QUI3QjI2MzkzQThGNzdGMTQxMDUwNzUyMEVDRUNFQ0VFOENGNUQ2Q0E0MUY3QgorODVFRUMxREZCRTMyQ0Y0MzUxNENFNjkxMjg5QTA2Mjg2QTQ2QUMwRkQyM0EyM0Y3Q0I2MDI5MzY4NUFCQ0E4OAorMjk5NkJCREUzRDk4RjU3RUVGNzA4QjIyMDA3RjkyMEVFRjc0QTU1QkVBNDA0RjZCN0RDRUUxMEREQkM5OTI0MQorRTAwM0ZGQ0UzMDNGNzhDNUVCRTFFNEE2MEYzM0MxRkU5MTg3NzgwNkYyMjU3MTJEMjA5NTE0MUUxRTQzQkYwQQorMjNCNDJBMkMzQkE5OUYxRjNDNDYxMjcyMTFGNEI5RDhCRUM4NTYzQjI0RDNFQTJGMUQzQzM3QzU5RUVEOEU2MAorRUJDNEE3NDY2RTk2MzY2N0JDQkEyMDZEREM3MDBCMUY5OUQ1QkI1NEIxQURCODQzNzk3REVBREE2REZGMEQ1OAorNDNFMUVCRUJBRkVCOTcwNjg1NzcxMkVERDFGMjFEMEREMTEwMkE5NTk1MDIyM0EzNkJEODRCQTc4RTcwODVDNAorQUJDMkI5ODUyRDFCREYyMDU5MDU5NDhCMzVGODVBNTUzRkEzNzE5QjBFNkQ1Q0UyRDIxNjdFQTIzOEVEMDNFNgorQzgzQjI5MDkwNzlDRjlEMEFDODlFOEFERjg5OUZGRUYxQTk1MTE1OEM4MjU3QzI1NkFEN0YwMDgxOUYyOUYzNworQTNDNEQ0OEE2QzdEMUZEMEQyMTIxMDdGNDYyNDA2QkU0Qzc0QzdEMjQxQ0EwQkE5M0ZFMjI1QTMxMTkwNTA1QgorQjQ3RjQzNTk3NEY2NTIyOEIzOUQ2OUEyQ0Q5NEQyRTY0RUMxN0EwQUUxMUZCRDdGODhCQTg5ODY4Q0FCNkI0NQorMDZDOUY3QzA3ODhBNjc1ODU5NDc5NjE4NkVGNjU2MTcyM0Q5RTNENTQwQTBFNEMzRjQ2ODEyODVFM0U1M0JCNgorMERBNTJGNEEyQkRENDE0RDE3NDg1ODZCQ0M2OEJCNDA4Nzc1RUE5QTM4QjAyQzFEMzBBMTJFNkVGNTZENzAyQQorNEIyQTQ0Mzg1NEQ5RjEzREFEOTA1NTg3RTg3OTQ5NzQ1NUY4MEZBRjYwRDVFMDNGMDk1MUE1RjU3RDZCMEI4NworRkUxOUU4NjdDM0VBM0NCNDQ1NTI3RUZBQTQxMTA3NzA4MjhDQ0YwRTAxM0MxMDJDMkIxREIwMkFCOTM5RDQ2QQorOEVCNDNCMDI4QTEwRTZDN0VDM0U2MTZGQjQ5OERCRDE3MDMzMzAxM0E0MDA4NjM1QjIzRjdDQ0RDRDhBMDg3OQorMzREMkZGNDQ5RDZGMkI5MEMzMUFBRDBFRjVGNUFGQjMxMkUwRkQ0OTZGQkY1MTc3OTk5RUJBMTVBNDQ4RTZCQgorQTQ1RjU0NjBGQTBFCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCitjbGVhcnRvbWFyaworJSVFbmRGb250IAorJSVCZWdpbkZvbnQ6IENNU0wxMAorJSFQUy1BZG9iZUZvbnQtMS4xOiBDTVNMMTAgMS4wCislJUNyZWF0aW9uRGF0ZTogMTk5MSBBdWcgMjAgMTY6NDA6MjAKKyUgQ29weXJpZ2h0IChDKSAxOTk3IEFtZXJpY2FuIE1hdGhlbWF0aWNhbCBTb2NpZXR5LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorMTEgZGljdCBiZWdpbgorL0ZvbnRJbmZvIDcgZGljdCBkdXAgYmVnaW4KKy92ZXJzaW9uICgxLjApIHJlYWRvbmx5IGRlZgorL05vdGljZSAoQ29weXJpZ2h0IChDKSAxOTk3IEFtZXJpY2FuIE1hdGhlbWF0aWNhbCBTb2NpZXR5LiBBbGwgUmlnaHRzIFJlc2VydmVkKSByZWFkb25seSBkZWYKKy9GdWxsTmFtZSAoQ01TTDEwKSByZWFkb25seSBkZWYKKy9GYW1pbHlOYW1lIChDb21wdXRlciBNb2Rlcm4pIHJlYWRvbmx5IGRlZgorL1dlaWdodCAoTWVkaXVtKSByZWFkb25seSBkZWYKKy9JdGFsaWNBbmdsZSAtOS40NiBkZWYKKy9pc0ZpeGVkUGl0Y2ggZmFsc2UgZGVmCitlbmQgcmVhZG9ubHkgZGVmCisvRm9udE5hbWUgL0NNU0wxMCBkZWYKKy9QYWludFR5cGUgMCBkZWYKKy9Gb250VHlwZSAxIGRlZgorL0ZvbnRNYXRyaXggWzAuMDAxIDAgMCAwLjAwMSAwIDBdIHJlYWRvbmx5IGRlZgorL0VuY29kaW5nIDI1NiBhcnJheQorMCAxIDI1NSB7MSBpbmRleCBleGNoIC8ubm90ZGVmIHB1dH0gZm9yCitkdXAgMCAvLm5vdGRlZiBwdXQKK3JlYWRvbmx5IGRlZgorL0ZvbnRCQm94ey02MiAtMjUwIDExMjMgNzUwfXJlYWRvbmx5IGRlZgorL1VuaXF1ZUlEIDUwMDA3OTggZGVmCitjdXJyZW50ZGljdCBlbmQKK2N1cnJlbnRmaWxlIGVleGVjCitEOUQ2NkY2MzNCODQ2QTk3QjY4NkE5N0U0NUEzRDBBQTA1Mjk3MzFDOTlBNzg0Q0NCRTg1QjQ5OTNCMkVFQkRFCiszQjEyRDQ3MkI3Q0Y1NDY1MUVGMjExODUxMTZBNjlBQjEwOTZFRDRCQUQyRjY0NjYzNUUwMTlCNjQxN0NDNzdCCis1MzJGODVEODExQzcwRDE0MjlBMTlBNTMwN0VGNjNFQjVDNUUwMkM4OUZDNkMyMEY2RDlEODlFN0Q5MUZFNDcwCitCNzJCRUZEQTIzRjVERjc2QkUwNUFGNENFOTMxMzdBMjE5RUQ4QTA0QTlEN0Q2RkRGMzdFNkI3RkNERTBEOTBCCis5ODY0MjNFNTk2MEE1RDlGQkI0Qzk1NjU1NkU4REY5MENCRkFFQzQ3NkZBMzZGRDlBNUM4MTc1QzlBRjUxM0ZFCitEOTE5QzJEREQyNkJEQzBEOTkzOThCOUY0RDAzRDU5OTNERkMwOTMwMjk3ODY2RTFDRDBBMzE5QjZCMUZEOTU4Cis5NDI5QjlENDA5MjREQzA1OTMyNUQ5RDRDQzAzNDRGM0Y5OTdBOTlFNkNDMDY3NjczNUVCQ0Q2ODVBQUM5MTQyCiswOERBRkVDNzhCQjQxQUZDMkYxQzIxOTkxMEJERjQxRDYyNzkyODRFRjYwMEI2OTc3NkNBMTVCQzhBMzQzNDdDCiszMDc4M0M1MkFGQTYwRkJFM0UzNTNFMkFFMzU0Q0Y4N0I1NTg3NzZBMjJDNzc2QzdBMEI1QUI1Q0UxRjk0MUVGCitDMkQ5Q0FDMzcyOTRCRjQwN0E2NzFGMTBFNDc0M0JGODQyMTQzRjRGN0RGRUU2NDNCQTNCQkQ4QkI5RTNGMjRBCitCQ0NGN0YwQURGOEJBNTAwNjIwQzgxMDMzRUFFOEM0RUYyQzFERUYxM0FDNTc1RjFCM0JCQjY2RjA5M0QzQjc4Cis1NDEyQjgyQjY3RkZBMDg3QUY1NzE4MkIyMjMwRjlGMjEzNzE4MENBNThBN0Q5QjJDODIyRkYwNEJFNkNEMDFECis0M0IyQ0E3MDU4QzdCOTUzRjZEOUI1RDZFOTFFQ0JBQTVDREUxMTU5QjBFNTlDODNEQkFEOTZENkM4QzhCQUIxCiszNzRFRjY1MkQxMEMwRjNFRTcxMDQ0NzJDOThERDM1NzJBQUYyRDQ1QTcwQkY3MDYxNDQ3RTIxRUUzQzNCRjIzCitERjM5QzJEMUIzNUI0MkNENTI5N0JFQkU2QkM5NEY3QzlEQzZFNjFFQzY3RTRGNjc3MjU2RkVEOTA2NEJEM0U0CitCNTFBNzFCMUQyN0NBNEU1QUE5RTFEODA4MEU2REFCNTMxMDcxMUVFRjg3QzQwODU5RkE5MzVCMTk1MjRBRTgzCis2M0IxNjNGQTgzOTdCREZGNDQzMjI3RkVERjdEQjI3REMzNUQ4OUZCMUM1RTQzNURBMDYxOUE1Qzg4QUZDNzNCCis4OUEyREY1RTc2N0M1QjUzNkJDNzE2N0E4NDBBMEMzMkJENTdBMTRERTY5QTdEMEQ4MTlBQzM2RkYzMkY5MDhBCis1MDcwRjMyOTgzQkIwMDc0MzdFMzUwMDc5OURGNUUwQUQzNzEwQTRDMDAwMEYwMDk4RDVCRTk5RjJFQjlDMUMyCitDNDQ0RkQ5NTUyRDBEQ0EwOThBOTRCM0JGMTc2RjUxMUNFRTEzREI3RUZGQUVEN0M0N0I1QURDRjhENDcwMEY1Cis3QTVGRDFCNDk1NjA5NjlCRjVDNDRGMzc0OTM3MDY2M0EwNDc3NkY3NDlEREQ3QjUwNjc0RDkzMjU0NDI2QzRCCitFRkUyNjRCRUU3ODEwRUM5Mzc4NEI3QzAxQTdGMjlFRkQ5MjU0N0UxM0EyQzc4NTFBMkU3MDlGQkQ1Qjg3ODUwCis0QTQ0RjA4RjU2QTU0MkRCRTA3MkQyRkJDNThEOUU2NDY4RTFBQjg1OERDMzUyNDBFMzBEMzFDN0FDMTNENkM1Cis3RDJCQjYzNEJFRTk2RkEwRTEwRjg0MkIxMUE3ODlGNzJBMzMzREQ2RERDQjFCQzIzMjI3RUJDNDA2RTUwQjQwCiszMEFGMEM0OEU2MzU5QUIwQzQ2ODk4Q0RBRjExMThFNDZCRkY4QjAwRjU0RUFDQkMyQUMyNjJBQjg5OEM0MkI5CisyRTA4MEMxMERFOTIzQzE4QTRFODcyMkMwQkEyMjQ3RTQ0NDVBRjUwQ0YyNDU3RDBGMzIwQUIxNkRBRjU4NTMwCiswOUM0Njk5MjJBNDEyMDFERTgxMzE0NTUyMDI4OEM0MjdDOENGRkVBRTQwMzdGMDk5OUIxQURDQzg3MkZBNDE0CitFNUY0MURGNDRBRDFBNzlGMTBGNjIwMTlCQ0Q4NDY2MzI4MDM0M0U3Q0E1MEZGNDEwNjAxOUFFMEEwMzUxQjM2CitGODg5ODE0OTE0QjRDQUE0MzZBNUUyQTE1MjRENDVDQzBCRTZERkFGMTYwNjY2MkI1NDQyQ0JGNkUwNTZFNDlDCis5NzUyNUYwNkQ5M0UyMzAzNTI1NzY2OEI2Q0EwRUQ4NjNFMDlBQjEwRDkzMEJBRThFRUY0ODJCOUFEQTQ3N0RECis5MTEzOEMxNzkxOEMwMTMwQTg0MTdCRUUzMDE0NUNGQkZEOTc0OTY2ODY1NkVERjU0Njg0NUE0NzFGQTUwRTBDCiswMThENDZBMkFGRDVFMkM1ODdGMUJEMUE0MzkyMTVBQzhGQ0Y2MTUwMTY1N0EyOTY2RTUxQzREOTg2NjcyQjAwCisyMDgxRDgwMjkzRjQxNEFBOTAyRDkxRDBEMUFCRjdGQTZEQTgxNzcwRTRDMzhGMTZEM0QxOTU3OTgyOUEzNDdFCisxNzQ1OTU1QTAzRDE4Q0IzNzQwOUIyOEJFNjU3OUY5Q0YwNDE1MUEyRjA0NEU5OUMwRjI4MDUyOTFFREZEQkE0CiswMkQ2N0Q2RkJGQ0Y0QjNEMzk1OEQ1QkZEMEFDMEQwMTYwNEY2NUZDRDYzMUJFNUM0OUNDRjlENkE3OEMxMkE0CitFQjAzRjExOTIzQzFERjYzNjQzM0ExMTJFQTU1OEQ1RjA2ODFENEY3ODRCRTE1ODVFNTYwNzU3QkVFNjcwMDhCCis4NUM3NEE4RjM0RUMwMTY4NzlFOUI1NzQ4RjE0RkU2MDc2QzdEMjdGNThGNEFBN0VFQ0ExRjgxNDgzMzNBNzkxCitFOUM4NEY2MTcwMDRBQjY0QjQwQzRDMTk2QzNCNEY3MzBCNEZEQjU1MzMwOTRGMDAzQzM1QkMyQTMzRjE5NEE2CitCRjUxM0QyMEFDNTVDMTgyMTk0NDBEQjAyMjkwMTE0QkFERjNENTA3NEQwQzMzNkNFMTJENzNBQzlFRERENTA5CiszMzI0NUM1NzMxREVGN0NDNUM3NzBFRjVBODIwQ0I1Qjg5OTNEM0FCMEIzNDAzM0FBQzhGRUUwNkJGMDA5MzgyCitBREQ3QzlDQTlFNzQ5MjIzMzBFMERCNkRCOTM1OUY0NzVDMzc3NTU2QTA1NjExNTk5NjA2QUM0NjE1N0JFMzY1CitCMjczODJCMjk4NDQwNjc1OUI0RTI5QTREQjAxMzVFMkM5N0E4RkJFMUI2MjMwQ0E4NEU1Qjk2MEZCRDYxQkZECitFQkI2MEIzRDFERjU4NTQxRjg1RjZDNzI2NUJBNjhCRkQ3MTM0MTdGMzJFOEJFNjJBQkIyNzQ5NDhBNDU0NDQ2CitEMkEzQzcxREVFRjJEMEJCNEM1NDU0MjYzNTk3MkY4OTJGRUYyREUxODdEQ0NGNDI5Q0M3NDVENDNDMDFBQzI0Cis5QzY1MkI0MDQ4REFDM0ZGNzg0MTkxQ0QzN0NBNTY0MTI3RDRCOTEwMDBBNzEzMjY3NjlDMkFBOUM4NEZDRjFBCis1QjUxMkZBMTcxRTA0OEMyMzQ2QTk4QzdCODFCQUE1OTBFNDI1QTMyMTFCMUVCQTYzRUIyQUQwRjY4QzIzRDMwCisyNjRFMjRGMEY4OUY3NTJENTkxNUE3NDQ5NjVCOUVBNTMyRTU2N0UyMTMwNDVFRTkyNjA3NEM1MTM3ODUzQjBDCis2OEI3RjFBMzJCQjZFQThDMkFDNkUxREVCMDM1MDREMDVBQzQ1M0VFNzM5NjMxMDYxQzAyRENGOTBBRDAxNzIxCiswQTQ5MjM1MzVEQTJCOTk5MUU0RTk1NzE5NTQ2ODExMjYwODlENDBBQkYyNzc0MzNCNkFEN0Y2QTYwODdEQzkyCiszMTg0NUNFNjBCNzAzNzcxMDVCNDhGQTZFRThFRjNEMDI1NTBEMTYwNjA5QUJBOUEyMjg0MDE2MjIzMTVDNDhFCitGNEZGRDNFMjQzNzVBMEQ3Qzg4RDQ0NTRGNTVDRTM5NzBGQUFFOTA5NzgwQjJCRTk2MERDQkMzRTQyMzY0OTU4CisxMUJCMTgwMTY1OUI2RERFOUFERDgzRDdBREFGNjZBOTU4MDA2MUYxNDlCREE0MzdGRjdCNUM5OENGNzI2QTExCis0MzhCRUE2Qjc5NDhDNENBOTY4MDMxMzI4QjY5RUVBNUMzMEVENkRFQjg2REQzNkU5RTUzMzRCOTNBOUYyMzgxCitCMTQxQTY0RjIwMjczNjBDOUU3NjcxQzQwMUFBMjU2MDU0MDVFNTA3QUE0MTZBREQwN0JBRTAxNDg5NTc0NDgyCis1NTI5RkMzN0Y1MDE5N0ExNjMyQ0EwODUxMjFBQzNFREE1NDdBQUY2NjdGMDg3NDA3ODMzMkI4QUY3RUIyNzE2CitBOTJFNzZBNTAyNTQ0OEM4MUY2OUI5QjdBRkM1NkU3OTRBQkU1RUZDRjcwM0E1NERGNTc3REQ3QzE3QkY2RTU2CiswNTQwQTg0RDY3RTMyQ0JGQjA2QUZBRDMxMjQ5OTg1NzhDQTExRUExM0U3MDdFRURGNUVFMzQ2ODlDMDUxNUE0Cis1RTYzQzAxODNEQkI5RDk0N0RBMkY3ODMxOTQwODI4NUQ3OTUzNTBFODk1NDdCQTBEMTc1MUU3QUNEQ0Y0MjU1CiszMkYxNDNFN0ZGMTk5Q0U2QTJDOTE1MzAzOUMyRTE1Q0UxOUFCMzQ3NTk2MzIzOUFDM0Q2NEQxRkJERjVDQkQ4Cis5OUIyQ0M0QjhBMDhBQ0EzRTcxMUE3OTVCRThDMjRGODU3RUE3NDdCREZFRENDODdEMzI3MDNCRjE2M0EzMkIzCis4MTI3QjA0QkRCQ0FFMzc2NEFFNUMzNjk3NzIyRTA4NDkwODg4RkU5QkJGNTYyMUVFMDI0NDg2NUFDOEZCRDVFCitCMEI4RkYyRTk3QjY2REQyQTA1OTFGRjZDRTA5NDQzRjM4RUU2NUU5OTlBRjQwODQ5NTgyQzdENEE1QUZGODc4CiswQjMyMzM3RkRGRkVBMTkzMTRCQzE3Q0YzODdDODc2NDFFMzRGMjg1RkUwNDFCNTYxODA1Nzc0OENCNTIyODc4CiszNEI5NjM2NTQ4QjM3Q0RCMDhCMzVFRjc3REIyRTlBMjRENzY4NUQwMEVDRjA1RUE5MTgyRjgzRTc3MENERDZGCis4MTk1MzA4NkIwQTBDMzE2MDZEOTkxRUM3NTVCMDUxRTdDODlCNUNBOUFFNkM4RjY1OUVCQzNFNUNFRjRCODQ2CiszMTE4RjFDMzlGMDFCQTFCQTg3NkU5QjhDRUFDNDZERDIxMEJERjkyNjRDQ0EzOEJDOUFDMkU2NTFBRDYyRkRECis1MjkxQzdEMUIwRDk1OEI4M0M1RjY4OTdGMjJBOTk3NjY2NUNENzRDQjNFQjQ0QUM0QjhDRjREOTA5ODEyNzQ0Cis0NDFGMzI5MDc4Njc4NEQzMzcxNkUyNzk5MkRBNkQxOEE1OEFFMDc4OUY5ODFEQzc2QzQ1NkVENzc1MkYwMEI4Cis4RTgxQ0Y1OEQ4NTQ5ODM3RUUyNEJFRTdFNjJCRTc5MTMyOTVENzg4M0U1QjUyN0VBQzE2ODNCODRDMTUwN0QyCiswQTdGOEUwMDc5MkIyQUE3RDZCM0FGRjNGQjkxQ0Y0NDE2MDgyMTkzNjdBMTU2MjI5NDMzOEJDRkYwQ0E1QkY4Cis2NTI5OTFEODhDQjRGNzQ4RjhFREZEMDM5RUM4RTQ5NDBENjg5RkYxOEE0QzM5MjNCRTFERkVDNzdENTFCQjgxCis3QTEyRDc2Q0FCM0IwMDc2Q0M3RUE5OTQ4MDNBQzkyOEUzQkRFNTEyRjk4MTg1NDAwMUNGNTJCNUZEOTkyMjYzCis4N0ZGNjgzMjQ2ODVGRjU4OTE0NUUwRkQzM0JDM0M4MTc0NkIwOEQ2MzFEQjYwQjE5MEFFNTAxMDA3RjdEMDhDCisyN0FBMzQ2QzY1M0Y1NjA2MEQwNkIxRTQxRTJFNTlFRkVCRjgyOTVFQjFCMTcyQzlGRUQ1NUU5NTYwMTA0M0I0CitEOEYxQzVGQkVDNDJENzU3RTE2MzQyMjc5MEQ2QTY3NTg5RkE1RDI3OTBBOTk2QTIyNzJGMkNCQUY2OTAyOEQ1CitBMTNFMDE2RTdDM0QyODVFNkVGOTYzN0ExOEYwMUZEODc5QjBFNDMwMTY0OEE2RTM3NTlDODhDNjhBNUJENTgyCitBNEU2REIzRDFDRjVFRjc0OTU1NDY0MjI5RjM5QjhENjI1NURBNDdEOEJBQUZFMDlDOTI4QkVDRDEzMjkwRjRDCisxMjYwNjc1NkRBOTU3NkY4NTNBOTJDRjdDMEI3MUU4MUM0RkMxNUU0Qjc4RDAwMkZFQjNBNTZFRkE5RkQ4RjE4CitERkI1MDczNThGQ0ZDNTQzNjc3QjcxNUIyRjU5RTk3NTQyM0E1Q0ZBRDZCMDBCNTBBMzI1OUE2MEM2OEU0NkQ5Cis5QUE1NjExQzdEODM5RjJDODg5QUMxQjc1Njk1RjBCMUREQUQxRjEwOTM4RjY0ODNDNThGNUQwRjJGMjVFQkQ0CitGMTcxNzlEOEMyQzg4MTIxQjc2RTIxRTRBNUVCRjE0RjM0RkI2NzkyOTM2RjBBMTY5RkQ1MTY3RDJCNDcxN0I0CisxMERCRkM5NTM2RkNGOEMxQzAwRjg1NUMyOUJERDc1MTNBQjc1QkNCQUExMUE0RTZEOEY3OTc1QUU0NjkzNTVDCitDN0FGQjNDQkY1QkREQ0I2NkNDRjJBQzU2RkNDNzUxOEU2OTQxRTI1QzBENEYzODMwRDU4NkNGOTI1N0JDMjFGCitBOTdBRkYyRkREMDkzODMzQzg4NDc3RjkxNzk4NUVEQUI0RDg3MEIxRjMwQzYwNzREMjk2RTJBRTIxQUIwOTFDCitBQjFCNUIxNDRBRUQzMTUzMTc5RUJCQzlGODdCOUZCQzAxNkZCRTg3MzlGNjYwRTE3MEJBQTZDQzJFMTRDRDY4CisxMkYyQUUyRkY4QjQxRURDQTkxNzkwOTE3OUZDREUzNDQ1RDZGMkFFQjgxQzMyMTRBRTRGMTI0QzE0NzJEMTA5Cis3REE3NjM1RTQyRkFEMTdDRERBQzY3REUwRDExODg3NzExNjYzQkE1MDVCQUQzNDQyOTI2MDAyOTcwNTBDOEQwCitFMkNBQTExMTREMUEzMjA0RkJCOTE5RjU4NDIzNEYwNkVFRTY4QzQxNDQwMTQxQkVDMUE3NkYxNEYxOEVDNTE3Cis5ODAyOUUzNzEzODFEM0Y0MTg2OTlGQjhGQzY1OTMwNDY4OTMwM0REQjREMkVCMEUxNjRGMzhGMDdFQUVEMEYxCiswQkI0QjkxNTdBMUE1RUYzNjg0OUJBMDcwRDA4NEFGMzZEQzc0ODY1OEQxNTY5QzZBNkI5OUYzNzVFNDdCOUI1CitBQ0E0QjBCMzk5RjUxRTBBRTc4NUQzQzM4RTBBRDc3OTczQTAxN0FDNkVEMzlDNkI1NTE1ODJCQTVENjRERENGCisxRUU2QjA1MEQ4MUM5OEU5M0RCMkFCOUREODQ3MzdCMzUzODVCQUNEQTk2RDMxOTU1QkMxREZGMEI2QUJFQ0I5CitFRTYwQjE5RDE3MjhDRkU5NTgyNjdFNzUzQjdBMTU5MTNBRjgyNjJFQzlCNkEwNEIyNEFDRjZEODg0OEUwQTUxCis5RUZBQ0NGRTk0RjEyRTE4Q0QwOTVDMEU5OUVBQUEwN0QzOUY0NzM2MkUzMTQ2RkRFNDE5MTgzQzgwQjI5QTE4Cis2RTE1RkFEQ0Q1OTYzNkMwREE5QTUxMkRGQjQ0NDVDRjY3NjNBNTIzQzdCQURBRTFBNTEwQTE1NkUwNDJCQUJDCis0RDU5N0RFNUM1RTNCNjQ2MTEzM0QzN0RGMjc3NzExQkNBMDgxNUNFQTQwOTA4QzFEN0Q3QUQ5NEQyNjczQjU2CitGMUMzOEU4QkJDQzRFRjY0QjBDQjQ2MkJCQjQyNDQ5RjVFMjZCRTFGNkQ0RTUyQjY3MTM2NkY0RjE1QTc3QUZDCis0QTFCMEE3NDY5MkQ3RTU3RTBFM0NGRDkyQ0M3MUUxMUZFOEIzMEFFMjJCOTBEMDg5Njc0MTQzNTQ2NEVFNTA3CitBNzI4MjYwMzQ0NTg1M0NFMzUxQjczRTA2MkRDMkU5QjcxNkQzMEUxMkI4OEI2RUFGNThEMjg4QjBBQURFMTMzCis1QUFGMjFDMDYzNTU1OUVCNkQ0QjgzMTQ0MzA5RENBOERGNTNFNzdBMjI3MTJBRENGM0IxRjg0NDBFRDQwNTBGCis5RDlEM0YzQ0I4NjY5MDhDMTNFMDRGOEQyRkNDQjE5ODQxQjNEODNDMjk3RjYwRkQ5MzM3RDAwOEUzMTIwMTAwCis2QzI5MDk0RTUwQUYzQkQxOTk2MUVDQkY5NEMxOUJDODYyMjRGQkVCRDVCQTlFODMwNEI3N0NCODA1RTc4QTZCCiswRUUxREQyMkEyRDVGQjk5N0YxQkVBQUIwODI3NzlGMUFBNzNERjc5Q0YxQzJGNEM0RDM0RDdGOTE3MEQxQkJGCis2RThEQTNDNDM5QjExM0JCQkQyOUE3MTQ0QzA1OUVENkJGMjI0MzQ3QjhCNEM5RDE5Q0VCMjQ2RDJDRUE4NzY3CisyQzY4RTAwMzlDNEIxRjI5OUU2NzQzOUE4MzkxQkFCNEZBNjBBQTU0RTY5NkExMkE2MEE4Q0ExMUQ5QjMwNzJFCis1QkFFN0UzMDM4MzA5REExQUE4QUI2RDMxM0RCOTQxRDE5Qzk5MkRFNjU4RTgxNzA3MjI5MTNBRkFGQThFQ0MyCitCRjc5N0VDQzhDODkwOTVDRUI1QjNGMTc2MDFEMDNCRDMwMkY0MkVCQ0FBOEM5MDVCMTk3OTU0QkMxNkM0OEQzCis4NzdCOEI2QzQ3RUIyRUE1QkI1OTc5RTFFMEE2RkI2ODhGQjQyODhEMzgxN0YzQ0VERURDOUM1Qjc4NTJENjc4CitFQjUxRUU2RTFBQUMxMkQ2OEIzNDI3NEE2NjM2N0M3OUREMDc5MUM5MzJBMUE5OTA3Mjc3MTY5MTRFNEM1QkYxCitGNDc5RTQ4RjQ4MTdGQTIyRjUxMTJFRTc0NTg5OTdDMDQ4RjNCRjRERUI4M0U3QUE1QjI2NkJFQUQ0MkRFRTBDCis2OUM3Mzg5RjVENDhEMzNGODkxOTAyNTc4NThCNjA5OUJGNkY2NjFBQjU1RDBENkVCMEY3OEI1RDA5RkUyRTU4Cis0MjMwMDFBQjA3NThEMTA5MDA4NDI3NjhDQ0E2NDc1MkE1RTkzQ0Y0NEIyNUY2NkEyMDM1NTYyRDMyQTIwM0YxCisyREJEMDBEQUMzOUVFMzZBMjQ4MEJCODcyMUI5NTE5RThFRTRDN0MxQjFFRjcxQjlCRDc5MkFCQjFEMzhGOEFECis3NkJGRERCQUMwQzY3QzkxMzk1NzU5MzY5MEFCMDEwOURFNDMyQTcwQTk0QTM2OTRBNEU1Njg5NkIzNDBGRTMxCiszOUQzRkQ5QjczMjgxMkMzMjI3MkMxRjBERTQ5NTdEOEVFQzk0Mjc2NUU2REQwNEFCNEUzMTE3NjM2Q0E1MUJBCitDQUM5RURERDQ5NkRCODQ4M0UyOTE0Njc3QzcxRjFDRTU2QkRFQkI0QjlDNjRBMjIwNzlGMUY0QTI3OTk1NEZDCitDM0JGNjU5RTdCNzU5M0I0NENCMTYxMERERjk4QjU4QzJDMzIyRDQ1RjExQjgwMTc1MzdGNTMxMTcyNDg2NEMwCitCREIzOEY2NTBCRkNGQzc1ODBEMTMxQ0M0QUVGM0I0NEUwNUQ5NjVBNUYzQTNFNkRENjY3RjUzRTE3RkQxMkE3CiswODBGOUE3OTgzOEI3NDJFOTM3RTk5OEU2RUI5Rjc4RjE3MEM2OUI1ODdFQzhFNTdCNjc1RDg5QTU2OTlBMTE4Cis5N0E2MTlFQzQ3MTJDRUE3NzE3MzBGMTQwOUYzRUE4MTAwRjZCRUUzOUFDNTJCRTNBQkI2NzY3OTI5M0FDRUNCCisyQ0QwRUZGRUYwNzJFODRGQ0YxQ0Y5RUJGQTJCMEJDNzk5M0RCREExNDk2QTdCRkQzOTQ3NzJDMTAwMzRFQzg2CitGMkU3RTk2Mzk4NUVFNkU3QkU3REExQzYwOEE1MEUyOTZGNUI0NEUwQ0ExNjM3OUM4QkY5OTlEMTNERDY3MTRGCisyODBFQzkyMzdEQTJDODA2MDdDMzA5RUI0QjE1OTA4RjM3QzM4QjczRjBBMkExQjY1NzE1Q0Q5MjE0OEIzMzM0Cis3QzQzNEEzRjcwQ0NCNjhFOTczMUYyQzYxQThDNjdGRTIxOEI5RkJFM0JBN0FCNDQwM0I5RUY4NDI1QTg4MzcwCis4RUY2QzA2QkExNjZCQjIyNDAyNkU2QUNBRjU1MDc3NDlDQjkzMEUyOEI5QUNCODZFQzEwN0I2ODRBODEwNkIzCis5ODE2REE1RjZFOEZBRjQ3RjRBNzlBQUU3NkJFNUJBM0M4MTExQTREMkM1MDUwMTMyQkJFODIwMkFDQzY2OEE2Cis1REQzQzM4NEUxNzlBQzAyMDBGNDQ3Mjc5QjJEOTc2RUU4MEIzNDYwNEQ5MTg1MzNGQ0RDREY5OEU0RkUwNEU0CisyQjY3MjJGNEZDNjlFNjk4QjU2M0ZEMkZGRUJENjA3QTFFQTc2MTA5MEJBMDNFNDNERDNFMTlCOTczQkE0MTc3Cis2QzVBRTNDMTExMTg0NEJDQUVBRTE4REQ2QjYyNDIxQkU0NEQ4MTM4M0IxRjEyNURDQkM3M0RDMkVBRTNDQzNCCis2MEVBOURCNjEzRTAzNzlCRTdCNjg4RTQxRjdENTlBMjUyMDhFRkY2NjRCMUMxMkE5RThCMkZEODNGMkNFRTJECis3OEMwNDNDOUEyQTUwQzdGRjNDRTZGMENGRjMyOENGOEQ5Q0FDRjc1NzFCMDQ0QzE3MkY3RTBBNEY4ODc4RDIyCisxMjlDNDE1QTg2QjRFNzk0NTY3Qzk4NjEwN0MxNkFGRkI3MUMxQUEwNTdDMjFCOUM4MDUzNTYzQjE2MzU0OTIzCitFMzhGMTYxRjk0RTc3MTRGMEQ2NDIyREM5NkNEODI5NTdGOTE0N0ZBMUNGQ0M0NkIxQTExN0VBRTRGQjhFOTc3CitDNTBBMTY5QjlENEJERDdBMThDQUJDOTM2NjUwQkNDNTQ1QTBDNjlBMkNEMUU2REY0MkE5QTc0NkRFRTBEQUVFCitEQUJDMENGRkZCQzYyOUFDMkY2MDQ3NUNBMUEzODI1MkU1MTEyQTFEREJGRjY3MTFFRTIyQjk1NDExNTQ2RkQ0CisyNzAzOEVEMTkwMzdCN0M3NUFFQ0Y0Qzk5RDZENDZEQ0IzOUZFQzY2NDFCNDQ4RkUwREQ4NjBBNjUxQkQ2ODkyCis4OEFBRTBFMzUyMTI5NTMyQUJBNDFCRTM1QTE1RjBGREZBNUQ2REQ4NERDQTFEQkI1RjE2OUVDQTFBOEIyOThCCitEMTA0QzVCNkQyOTQwNkY0RTQ4RUU2QkFBRTZFN0VCQjNDQzVGQzRGREMxNjg2QUU3QjREOUJGQ0JBOEFEQUU2CitGOEYyNkNCQzRFM0Q0QkE3QkM0OUJFOEVBMTcwQjEzQUI3Qjg1MkVBMzlFQkMwQjBCNDkzNDQ0QUIyODBGRERDCis2NjA5QkE3ODVEOTQ3QjczRDFEMTgxRjJGOUE2N0Q3RTU1QzcxMDk4NEI0NjAzMzg4OTg0MThBNDlFMDEzMzJDCitCOTRDQjY1MTY4RUUxODgyOTA1MTk4MjUyREUyQTMxQTIwNzA2MEYzQkQwN0FBREFBNkYxQzY4M0VFMDQ3QjVBCis0MDFBQTg1MzA3NTM1NkUyM0FBNDM2MDFGODY1QzZDQUU5NTFEM0Y4NjhDNzQ3NjY0MUIxMDE5QURGODkxNjkzCitDOTYzMTQ4MzJBQURCN0ZFMkZBMDNERjNBNTJGOTEwNEQ5M0Q0NDg3NTZEQzBFNkM3REQ1Mjg1RjZERjgzRTc4CisyQThGODNGQjJGM0FGNjEzQ0U5MjE5NDIyOTM4M0JEN0E0MjA3MEFBMDY4Njg4OEZFRkFBOEQ0QkVENDEzODM5CitGMjgyRDU4QkE3NUQ2RTc5NDVGMUVCQTg5RDE3MkIzMTlFNzZCMzFDODk5NjQ2NUY2ODI1MzU3NEM3MTYwODkzCis3NUY4QTI3OERGNUU2OEQ2MjkwRDU5REUyQTE4N0QwODBBNUQ2QTk0Mjk1NjIzMzk3QzJGODREMkJERDQxQ0VGCis3MkUyNjVGNUZFMTVGNzFFQjc3QTJFMkZFRkU2REQxNjNDQjlFQjc0MURBN0EwQjYwOTA4Q0EzNjdFREYyMjMyCiswM0Y5ODZBRDc1MTg2ODVBNDlFOTQ5OEEzNERBNjNBM0MxMEU4QUU2QUJEOTA0NTVFNTBGMzgwRDZCRTk1OTIwCis2RTY3NTc3MEIxRTg1MjQ1MkVBRTc1MTQ3MzQwMzE4NDg5MjFBOTlDQjQ3M0U0QjZGMzI3MzMxRjYwM0E1NzMwCiswRTA3QUE1OEJBNkZDN0Q5MEQyNzFCRUJDREFENkU2NTZGNDJBQzAyRDdDRUI1OEUzMEY1QzkyMTkwMjhBODZECis2OUZDMTczQzU2MjNFMjE3MzZDMUQ1REQxOTQ1RUVCREEzOUQ0N0REOTQ5M0ZEMUVENDEzODA2NTM4MjZCMUEzCis2Mzg0RUE3RTEyRkU4MjhDQjM2QjJEOTU1MUUzOEY4NzZDNDI2Rjc1QUZGQzNCN0E2MjZBNDk4NUFCOUQzREIxCis3MkEzQTNGMUFFRjVDRUI4QjdCNzBBMDRGODVDOUM0Q0JBMjc4QzFGRkMxMDk0ODM2MTQyMzVEMzI3OUZERjI0Cis0ODRGMzI2Njc3QTlDNTk4NkE5NkRBRTQ1MjBDNUI1REQ3NUNEMjNGRDA0NjE4MjFCMzAyNUU3OTZDMUFDMkQwCisxNTgwNjFBM0FFOTM1ODc3NTYwOEQyODhDRjQ0OTE5OEQzQTVBNzQ1OTY0OTgwMkNERTZCQTZFRjA0M0Q3NDUwCiszNkI1MDVGMTJDQzQzMTU4MjUzMDgzMEVEODRFQzQ5MzEwNDk1MTBEQ0MxQkI4NzU1MjAzMTI0QUM4NTFGMEMzCisxRjM1NTk3OTM4NDhDQjI1RDRDMDkxRDJGNTU5RUY0M0UyNjUxMUM3MjZDQzIzNTc1MkNDRUI5OEMxNTZFQUZDCitEMjE1RDBFMjJDQUYzMUY1ODIyRkY0N0M1NDRCRDg3NkRBNERCQzI0RTIxQTlDOUJDRDNEQTBGRkNCNkE5MDcxCisyMDAyNDYxQkVDMTU3QTIyOUVFNkQ3QUMyOENCMjlEMDk0NzVENkY5RDY0MDVGNzY2OEUyNzA4Qjg0QzdEODU3CiszQTU0MUE3MEMyNjlFRjA2RjEwREIwMEMzMEIxOUZDMjY3NzcyMDAwQzJDRkM1NTU3Mjk3ODFBNEZFMEFCNTIyCitDMDlBMzQ5NzdEMTk0NkEzNDUzQTRCMTBGNzRCODIzNTdEOThBMzcyNzM3MkU1ODAzQUVGNzNBMUQ3RTkwRjgwCiszN0REQkE3ODIzM0FBMTM5N0FDOTQzOEVCMUE5NjJCOTExMDcyMDBDRThBNEUyQkVEQ0RCNjY5NzQzNTE4RjA3Cis2OTc4NkU0NUMxRDc5ODIxQUUxRjcxQjNDMDBGOTY5QTE2QzcyOEMxN0IyOUMwRUM5NjAzQkU0RUM1Mzc2QTZBCis3NDE1NTgwQjJDNDAyRTNBQkFDMkI0NDczQTg2REE3OEJBNjlCQjQ2QkREMDU5MERFNTczRTcyODgyQzVBOTIyCitDMDY0NkRBRkYwRDU1MkI0MTJBNkI3RTdFM0YxQzU5QzE5RUNCODc1REM0M0YwQUYyRjgzMzZDRjcxRDk2OEFDCitGMTg5NEUwRUMwMDk2NjZEOEIzN0Q1NTg4RjlCOUYyNDE3ODgzOTFEM0U5QjNCNTM2NTNDRDdCQ0QxQjI1RUY5Cis1NjJFNzFCNzNCNTlGNkUyQTU0NkE3NzE4ODU3NkVFNDA4NDk5MjFDMEM0MUIzOEVFQjEyNzhFOTFFQjEzQUY0Cis2RTA2QkJFMzc3MjcyMjdGMkFCRDcwQTE2RUM2OEIxN0U2QjNFMDhBNDE1QTJBMUMyMTlDQ0M3M0Y3NUI3NjY5CisyOUQxNERDNjNENDMxOUEyMDc2QzNFOTQ1OTVBNkZEOUFFQkIwMjk2QTBDMUE3MkFBMERFM0MxRURENkRGRjYzCitBREQ5NkI5MUNEQ0M3QjY5QkIwMTQ3Mjc4NUY4OUQyQzZGOUU4Q0IxRDI3NzYxMDM0QTcxMUEyOEI1QzJCNDgyCitBNDQ2QzU5QkZEQkNCMUE5QkFEMEE2MkE0NjU3MEM2MkRBNThEMERFRjQ1ODdFNjAyQzQwMjRCMTIzOTlBOUZECitDNDk4Njk3MjdBNjU1QzBEQ0U4MDNBNDMyMTc3RDMyOUNDNTRGMDM0REI4NEMyMDMzN0Q2MTAxQ0EzRTVBQ0FDCiswNjA4MDJFM0Q0NUFFNERGRDY1MzQxNzE3ODNCQkEzMTAxMjg2MjI2MDk2QzcyQzZFNzVGMzNDOTA1QTFEMTcyCitCMEJDMzczNEE1MkU4RDIyQUVFRkNFNURCMkU3RkUxOUM0QjgyMjk5NjEyNTJFQjU2RTQzQzI3QTIwNjk0QjIxCitCNzVEOTZGOERBRUU2RDFGNDg4MzBEMDJEMTBCRkI1MEE2OUMyRUEyRTU4NUY3NEQzRTA4NkI4NEQ3REI5RTY1CiszQUJFQUJFNDg2NUVBRTU3MkE0OTlGMURFRUY3OTQwMTMxQTRGODIxOTc3QkY5Mzc2MTYwRTFGM0VENEM2RjU1Cis0REVDOTZDNzU1RDM2ODAzMkE5QjQ4NUQ2MDk3QjUxOUFENEZGNzk4OTI5NTk1MkEzMkQ3REU2NjBFMzdFQTFECitGMTVEMUY3NUNDN0JCMUQ4Mzc0MjhGNUI0N0IyMTJFRUI0NjkzMkY0OEFBOTM0MERBRTBGNDA0ODM2RjQzMDdDCitCRUQ2QTE5RDU1MDQ5QzlDNTQwNDVGREJDRUM3MDFGOTUwQkVGMjYyNjgwNTAwMUE2OEZBQ0ZCN0FEQzU0QTdBCis5QUEyRTI5OTBDNTk2OENBRTIzODI4QjA2QTYwNDIzODY5NjUyRDQzQUE3NEZDMEIxRTBDMUVENkM0QzFDMzc4CisyOUIzRjM2OTI3N0MyNUIxOTgxRTg1RDQxRjU2NzdFMkFCN0I5RUUzRkQzMUQyRUI4OTY1QjY1QUVCOTk0MUJGCitGQkUzQTJDRUQxQTkwRjA0MzZBQTRFOEMxOUIzMkU4MzdBQ0ZDODRCMzMwRUJDMDM1RkI1QUNGN0VDQjZCQkEyCis2MjY1NTlEQTJDMjc5QUUwQUQ0M0EyODE4RTIxNjI2REYwNTBCRTRBNTRDNjgzODI1Q0Q2QzNCRkRCQkE1RkJECitCMTcwOUFEQjhFMENCNjRGRDQ3RUFDMjJFMUQzMjA1QjAxQ0NDOTg4MjREQUFGNzMzNzQ3OUUxMjJDOTU0NDI2CiswRTY3QTk5NzAyN0E0QjhBMzdBMUNDQ0VFQzhERTA2MjM5RkFFNkEyMEUxOUQyNzMxOTcyNDc5RDA0REMzRjdCCis4NDE1NDkyRDgxRUQyQjA0RjhBNzkyMUY4M0E4RDNGNjkwNEE2ODUwODI3NkFFMDI5RjMxQjMzRkExNjA4RkY4Cis4MDA4MEFGRDVCMkVCMkY5NzRCMUVBOEZEMzAxRjA1MDI2RTlBNUUyODc2OEFERjZDNUE3REE4NzU1RTA2ODk0CitEODVCNUJERjc1QTExRUEzMUZGNTNGMDY3OEE3NzQxRDhEODhDRjYyMjNFREREMDAxOUE4QzYzOEI2QTEzOEU5CitGRkQxN0M3OTcyQUFENUFBNkNDOEUyNzFFODREMzc2RTAzNEY1MDczMzRBOTRFMEEwQ0M5QTQzRDEyODE5MTk5Cis3MzhBRUMyREI2OEUzOTEyMkFDREU3RDA1MzBERDlFRTZDNjg2RDA0NDQ2RDJEMkQ0RjBEMUVEQjZCNTk0QzFFCitDMDdDRUY0MDlBRkFCNzk5NzQxNjdDRDM1NjFBMjUzNTg5NkNGMkMwNzQxOTUwNTMzRjlDMzVENTUyQTFENTlGCitFRERDOTVBMDFGODVFMDk1QTg3N0FFQTMwMjVBODZFQzEwQzY5QjgwMkU3MkRCNUI3MzM5RUM0MzQxODA4RkM5CisxNzM3NERCRDJBMzQ5QjhCNzJDM0NDNTg4MTQ4MTUzQjE4QjdENjQ0QTdERTU5NzVDQzhBNTc0NDg0NzYwQzE0CitDOUY1Qzc1MENCNkY4ODg3QkVGQ0VDMTFBMDFGNzEzQjdDQkJFRThBREIzQzVENzY4N0U5MTA1REU3OUFDRUUwCisxQjY2NDEwMjJDREQwNjRDQTUyODg2NTEzNkFEMDgzNjY1RDhDNDE3RTE1NjE1RDlBQzI5QTJCNTJDNDgxMEQyCitERTI5NENBREQwRTMyMTdGQjg0Rjk1NEU2RTM0REQxQzEzNjVENzYzNTZGQjI1NTkwNDFBNDM2MTg2QjJGNThGCis5NkQ4RjlCRTZENEJCNDMzM0NBODNFREVGQTA1NDNGQTY2RDkxNzZEODFFNEY3Q0NERjA1NTcxNTUzOTQ1OTA4Cis3NzU5QzIwMzQ4NjQ3RDFFRjNFMDlGOUY4NDI5RUQyRjE3Q0NCNTM4MEMyNTZCRTdCRTg4MTdFNjQ2OTk4M0JCCiszMTZFMjFGQjk1NjRERTc2RUQ5MzNGOTMyMzhEQzVGMkNCMTQwRUQ5RTA5MDYzOTVGQUZGMzVBNjc5NTE4ODM1Cis2RUQyRTY1RDBDQjkzOUU4REU0NjcyMEIwOTRDRjg2OTkwMDM1QjBCOTM1MUVDNTM2NzA5REQyNDc3MjMzMzg4Cis5NTdEQjBGRjczNUNDRkMwNERBRjQyRDkwRDA3ODUyODBGNjJCOEVDNkU3N0MyNjU5MUE4NEEzNjcyOUU2ODlCCitFOTg1M0I4OEMyREE1M0Y2NEU2Nzc3ODZCQkI4MzAxQjE5RUE2NzA3RkVBODQ1NkMzOEM1MzA2MUFCMDlFOTQ2CiszMkQ2RjY5RUQ2REE4MzkzNEEzN0I3QkNFN0Q5NDk3MjY2RDVEQTMxQTExNDE3RENEMzc1MDczMEE3NEJCRjc2CitDMEMyNzI5RjI5RjY4RjMwQzY2RTRCMUYwOUFFNDJGRjk1MzNBRkI4RjI3QjgxMUYyQjAzRUYxQzU3QjdEQTY2CitFMDAyOUNEMjM2RDA0RkZFMTJCRDAwQzFCRDZBQkM2NURCQTc3OEE4QkZERDEyNzg2MjEwNEFENkQ1MzQ3MUNBCitDREJDRTM4Njg3QTJDQTMwRTI1ODlCREZCMUQ5Nzc2Q0I0NDJGREVBQjU5MDk3NDQzOTBBMjI4RTNBQkQ3M0EyCitFQjMxODdERTkzMkQ2MDNBN0NCNjIzMzY3MzcxNjU3RDhCNjk3OUI4MEYwNDFGNkM2OUU4NkQ3M0REMzI2MzQ3CiswMTcyRkE1REI4NzVGOUQwRDQyNTk0MjAyNjU1QzI4MThFRENBNDYxRTE3MTNFOTAwQzk2Njc1MEM1M0E2OUJFCis3RTVERTQ4NERGMjgyQ0U4ODQ1MEYwOTk3NTVEMUQ5NzM5NjE4RTJEOTM4Q0Y4NzExMTg3RjEzNTU2QUFFQTY4Cis4MjFBQTk1MjNBOUNBRUNDMjJCRTRDOUJBRTMwRThGNUI4QTRBREM4Q0NBM0Y0MTQyNTZFNzY2NkI2RTYxMDk3CitFMEY4RkNERkNFRTBEMEY0MjRENTU0OEQ1MTFGRkI5NjlDOUM0REE5OTk2RDgwRDYzNDlBNEY0OTkzRUY1RTA3CisxOEMyQTc5OTg2RDQ5MUJEQjczODQ3NUNGMDdENUY2RDdCNTFERTA3QTJGMkM3MEJCOEQzNjM3NENGREE2RDQ4Cis0NTAzQ0E3MDdFQTk2OUY3QTJEODdBOTRFQTkzRUMyRkQ2QzQ5ODQxMUJBMTlERDBFQzQ4NjJCRThDQjIxOEZECitFQjREMTFCRTlFNzdFOTQ1RTNDRDlCQ0IxOUM2RjlCNTlCNDBFOUZCMkI5NTFFMzY0QjY3OUE1NTcyRURBMjBBCiswOTNBNUJCQkNCRTY5Mzg1NzI4MzMyRDgwMTJFNzhFNDIxREVBOEM5Qzk2NDQ1RjA2NEVEN0RDQUFDMDI3M0ZGCiszQjNBRjMzMzVCQzI3RDUzRTU0REYwRTJGNTQzQzdCQkE1MDBDMzdEQjJBRDVDMjNCOEE3M0E3RUU1MzUxNTJFCitCNTgyQzM4NEMyOUJCNDg0MkY2RDRGM0MwRjdDQUI1QjQ0RkMxQzMwQzhFNzIyQkYzREQ0M0VDNjg3RUQ2MTZCCitDNTJERUY0RkZFRDkzREUwQUY1QTUxRjI2MENDNDUxRTI3QjBCNDQ3MjlGQ0ZEQkY2MkJGQzVENjdBOTI1OTg5CitDNzFBODI5Q0U0NkQ0RUIwNTc3QzU4NDdBODJENUU4MDU0Njg4MkZCQTNCQzRDNzJDQ0Y5QjUyNDc4NURFNzdDCitFNTNGRjk0NTZCOTc0MEQ2MTE3MTczQzdGNzY3QzU3M0NBRkI3OTUxMzhEMkQwNTI0MkU4Q0Q3ODdDQUVCQzZECis3Qzc5RUE3QTBDRDY1MzQ2RTNDM0I0RkQxRTBGRUFENjdFOTZGRkY0MEQzQjZCMUJFMTM4NDZBOTYwQjI5RDgxCis2OEU4MUNFMTNGRDUxNUIyNjE3RkQ0OENGNjQxRDA1QkIwQjRGNUE4RDZENTBGRThGNTJBRTM2ODI2QUQ5MTg5Cis4ODgxMEM3OEU1RDMwMDE3MTQzNEUwNUEzNTc2M0NDMDI4MUVBNUU0QTVGNEZEOERCM0ZFODUwOTMxMTA2OTI0CiswRjNBMkI5NDA3RDk0N0E0NDZCQTlFODZGRjc2Q0U2MTlEN0Q4MjU1RjBEQzlEMzdFMzU4MEM4MjU1NDYzMUVBCis0RjAzQ0Y4NDE4MkJCOUNGREM5RUI0RkIzRkY4QUFENjBDRjI1REQzNTlERTVCRDU2NEU1Q0Y0NTc5QkY5MzUwCitFQTlGM0I0NDQ3NTU4N0Y2NkIyNUJDQ0NDNEQ4QUZFMzExNjgxNzQxQTVCNjNERjRGRjI2M0JDRkJFNDEwRjYxCis0ODIxN0EzRDdGQzJEOEIzODk3MzUxM0FERDYyQkI2NEFBRDE5RUI1RkFDMDhENjUzNTYzMTAxRUY5REI2MDQ2CisxNkJEN0Y2MUMyQTIwRjI5ODM5OEM3QjM1NkNBQkM0Nzk2ODcxNUExNkQ4Q0ExM0RFMkI0NjI4NTUwQUQ0NDk1Cis4RjhDNTNBRjE3RTBDODczMUYzOTA1NjBGNDM0RkMyNzM0MTlDMEQ3OTM1QTc2RTJGODVGNjk2RDAzOTI4MThDCitCRkEyQzNGOTIxREFGQTc4QTE5ODcyNzQ2NDQ4QzNDNTVBNTVGQ0EzNkVFRTcwNkJDMjNENzNGMUNEMzAzOTE3CitBM0Y2M0IyRkRGMUE0MjVGQkU2Nzg5QzEwMUZGMTVFNUM2NjEwMUNEM0ZCMkFCMTAzNUEwRTcyNUM2NDU1REYyCisyQTYzMjlCRTZENjJDNzkxRTJDMEFGRjgwNTZCQ0Y1QjU5Q0FGMUVCREM0MTY0RDZEOENDNDdCQjBGNDIwMjA5CitDNDJEQ0NGMTg3NTBDNDk4NjJGRjUwNDA2MTAxODBCMDUwRTBCODE2MTdGQThEQUI1NUQ2RTE4Njk0QUM3OEY5CitBMkM1MjA1QUVDMzY5MDg2OUU4REJCRkExRDQxQ0RGNEJGOEQ1NjE3NjU0QjY1QkM3MzhFNjg2NkQyQkExQzIzCiswQzlGNjUzNEE5MjQ4Q0IxMkQ3MTQxNjk3NDk3QzBCMDg5QkExNjA4NEE3Rjk5Qjg1RTE3QzNFMzM1QzEzOUU2Cis4QTg2NEMzQzQ1M0U4Njc2ODgxNjlENDRGMzRCMzgyNUM5RkRBMjA3MkVBQkU0NUM4NzM3MjM3MEZCQTBGODJFCitDRjVCMEI5NjM1NkY4NjlEQkFGMTA4MUVFQzE5M0IxQzRBNTRFNzMzQ0NDOUE0M0I5QkM3MDYyRkUzMjAyNkVECitCMUNEQkMwQ0QxNDJGQzg4MjA3OEYwOTRCMDQxRUMzMDVDQjc0RjZBMTgyNDY3REUwQkJCNEFCQkQ0M0NDN0Y2Cis0MjIwNzUyRjg3REQ1QzA2NTI2QzlFMTY4MEU5NjQzMzE1OTk0ODUyMjI2OUM2QkQ1QzE2NUY2Q0E1RTY2RkY0Cis5RDc1N0ZGNTVBMjFCMzQyNEI0NjA0QkI0OUM2QUQxODQxQ0FCQTg4NEZBQjJBQzhENTI4NzNBNjUzMTEyOTI2CitDMEFCQUZBNzk5MEY0OUM2RDUwODdDOEJDQzA0MjYxRjVBRDRGNjMxOURFREIzM0UzMjFGRDIzOTlENjBCOUNDCitENTJEM0YzQ0ZBQjgxOUI2QjA0N0MzQ0REQjQwQkM2NjlEQ0U3NkU0QTY1NjBBQkRGRjU3NzdDNUQ3MDQ0MjE1CitDMkVBRUM5MjZBOTI1NjkzMzVEN0M1RUFEQjlGQ0I4MkQ0RkE3REVBMUIyRUZFQzZEN0VGMTNDNTIwOUU4NEQ2CitGQzkzQUJFNTU2RUNGRjdDRDA3RUNGNDQ3QjZGNkQ4MkYzQTdGN0NFM0Y2RTc1NTAzMTgxQjM0OTVFQjBCOTMzCis3OUFDRDRCQUJBQTM5NzJGN0JCODFGOUE3ODZFNjMzMTMyMTZGRjY2ODcxN0FCNUMzOEE2NTBGNTAyNzFBNzI3CitEOENBMDI3NDg2RTc3MTMxNzAxODE4NjU0NzRGNDA5RDgwMzkwRTFCQkY3ODRBNkM2MjQwQUNEMTg4ODAxRkI5CisyNjEyNTU2NDBDRTkwMTQyRDZBNzhFREEzMEE4NEExQTE0NkM3QjYzQTc0QTE4MEIwNTYxOEUyRUY3NzY1RUM0Cis5QjU2MTlERURDRTQxRkQwMEVGM0ZGMjczQzlCQkRBOEFGMDBCMDZGNzk1NDk1OUYyNDlEQjQ2NDBBOTZGMERDCisxRjZGRkQxNEFEQzJGOTlDMEFBQkUxNTI0MzRDOEJEN0U0NUY2MTE2MTZEMjUzMEU4NjI2MThDQkI1OTM1QzM3Cis5NDMxQTE4MEJGMTREOTU5NzA3NjNCNDJDOTFENEUzNTNEODZCNTMxNDg1NUE1RTM1MUJDRUYxNEQ2MDZCRjE2Cis1ODUzNTZENTc5NDlDQzREMDZFNUFENTRCQTVCM0FDMUZCMzYzNjZGRDBCMUY4NTk4ODc4RjgxRUM4MzUwMkY3Cis5NjA1ODVEQTIxM0UyRDY3MEMwNjg1RDFFRjY3OTVGMTA2NTk0MkM1MjJFM0VGNjk1N0ZERDY3QzVGRjE5ODAwCitFNTE4RjFBMzk3MUZFQ0E3QkQzQjQwRkJBMDYwNjVDMjM2OTFGREYxRTk2QTJBMTFFMURBMTc5RDJDNjIwQUU1Cis0QzE4MDMxMjkwRDgzQTFBNEQ2Q0FBRjY3ODNCMzI1ODY0MDcyMTQxNzQ0OENBQzQ0OTk2ODkzODM2NjI3RDMyCis0NUUwN0RDOTQwOTA1NDVDMkJDQTg1N0U1OThBNDQzMjk5RkExMjIzOEJCMjlBRjlFNjhFNDQ3OTQwQ0IzNkJECisyRUU2Q0Q3MzU1NUQ2NjAxQTQ1MERCMDZBRjRBQkVBNTJBOTk2MEUwNEM4MkVFOTFDRDRDRUIwODUyNzYzNzhCCitFOTA4MTJCMkM3MEVFNjZFREIzRDAzMURBQUM1QjZEREQ1NUZFRkEzMjlENDhFNjhDQTVCMThFQzQ4RUE4ODFFCis5MDk4QkE0MkZCNkJGQThCNThDNTgzMzcwOTNBREM3OTRENjM3MzkxQUY1RkYwMUZDM0VBNTBCODU0MkY1MjcxCis2QUFFRTVENDk2QUY3RjRENkYzRUJEMTlBQTM2QjA3M0EyNzRDREJBRDI0NkI1QTc5ODM5QTg0Mzg1QzQxNEEyCis2MzVEQUMwOTgwNEEzQURGMTA4NjJDNjQyMzZDNkFCRDMxQzkxMzE4RTc3QUFBQkZGNDg1N0YzNjc5Q0NCMTdECiszQjE5RTJEM0Y1QTkyNjg4RjZBRDlBQUExMTY2RUQxQzdGRTgyMkQxODNFQjEyN0JGNkJBRDJBM0IzRjBFNTU2CiszN0IwNUU1MDIxMEM4N0U3OUE4QjY4QzY5NzFCNTlFNTQ3NzlGQTJBOTEzNUE4NTc5NEY0MDgxRTBBMTRERTdDCitEMkVFNzcxMTMxMDA4QzgzQzBFMTk4MDIyQzI5MjE3NEFCNDA2OEVFMEQ1M0ExNkYyM0RGMTBENUQwOEZCQkFGCitGRjBCQTNCNUQ3MDg1N0QwOTM0MTZCMEMwNTU4OUFBNjg5MDM5Njg4MTVBODlFQTVFODlBN0U0MzcxRUVBNTA0CisyMjk4OUFENUQyMTI1NjU4RDkyMDREMzJDQkFCQkE0Nzc1MjQyMDcyNjVBNTNEOEYxNzJCQTM2Njk1OTk4QzExCis5ODZBQUJGNUM0MURBQzAzQjAzNzMxQzYwNEJFN0Q0Q0JCQjYxM0E0Q0I1RTY2QUEzOTZFRjBDNzc1NTBERTMyCitGOTI5NEY4RDNEQkE0MkJGMTQ3NTQ4QjI2RDRFQkVBMTQ5NTQwNkQ5MjQwNkM0Mjc2M0U0QkZBNkI1RjdFQjg4CitGMTE4NjhCQUUyODI3NEEzMjBGM0NDQzQwMjM4RkQ2RURDNjE5QUFGMzlFQzYzN0ZDNkRCRTY2NjE1NThBMjFBCis0MDg4ODZBQkY3QTg2REI0ODI2MzQ4RDM3OUYwQTIxQzBFMjEyNEU3MTFDNzM3QUNEQTdDMjAyRjg0OUNEQkE1CitCQkUzMjBEMjZGQ0QzMjJERTc4NTk4NDExQzc0MDI2RjBERDk2RUFCNTY3RjMzQ0FGMzZBNDQ3MkU3NzkwNjQ5CitFOUNBOTE4ODY1NzY3NzFFNTVDQzA0RDk1NzkxREEyMzIxNEQ4RTk1Q0Q0REE0REFFOTk1RUI2OEIyRTVEMDM0CiszMjNEQkY3MTlGNDU4NUE1NkQ0RjMzM0QwOEIzMTUzOTMyOEVBMTY0MkVDNEMyQkQyN0RGRTlGQTk0ODhCRjdFCis4OEEwRjI4MERENTc4MEU1ODAzRDRCQjU1RDlBN0E4Mzk5Q0ZBQkY4RTFBQkQyOTkxRjExRDM3N0JDNDUyQkIwCitBNjQ3OEFCNDIyQTE4NUI3RDZFOUY2Q0YwQjMyMjc5MEM3MTVCMUY0NDZBNDBGODA4NDYxQzA1QTUxRjlERTZBCisxNkQ3NzQ4OTNGNjJFRUYwNTIwRTUyMjdDMEI3NjhDRkZFMDg3NTQzRjk1M0Y1OTlFN0Y2Mzk3NDBGNzk0ODRECiswMDVCMTJDREExQ0Y5OUE2NTUxNjU1N0E0RDcxRjQxRUM2NTlERDA0NzU2NzkxRDlDREY2MTJERjk1MTZGMDA0CiszNTYyMjZEQzg2MkNGREMwOTJGNTJBOUI1RTFENzZDNkJCRUM1NENDMjJFMTZGMkNBMDkyRTJEOERCNzhEOEMwCis0NUIyODg5QjhBOUFBRjcwRjA0NDlEMTIxMzAyOUYwNUQzNzJGNDA4MjQ1MDU4QUMwN0EwNjk1MTlBQkMyNkY2Cis0NEQ0OUZENTA1MzhCRUZDNjE4MjVGRUU3MzYzOUQ3MEE1MkRCOERGNUI3QjE4NTdCRDBGMDA3QzFEQUJCNEI1CitBNEZFRjJDOUREQzNFMTdCMEIxNjM5QTFDODc1OTI5ODMzRjBGQzYzRkY5QTI2MEM3RkREMjJCMDIyMDRBQjA3CitEODZGNzZBN0I2RkEyNUU4NjI5REI3QTI2M0YwOTVDRDAxNjI4QzFBOTRCM0M1RkEwQkRFNTI5RDJBOThENjEzCitGODI0NDIxNDc3MkQ1N0EzMzBFMjY5NzNGNjQ3RkM0QjlDOTkwMjE5N0JFRTFGNzE4MURERjhFMTVCNEYyMENECis5ODNGREE5QjYxQUNGNDcyRTFFQzhDQzRDODNBMzMzOEI2MDZFNTJCMzQ1NUMyRjNENTRENTcwQ0MyQTZBNzNFCitCMDk1NEFCOUYzNjFCOTE5N0JBMDYzNjVGNTZCRTYyMTkyNUVCRkUyQTFCQkI4RTAzRUJBQkMxODc3QzExMjRECis5RjM0M0ZGQUM0NzI2OEEwQ0ZDNzJBNTg3MTk2ODQ5RDBCOUU1M0Q5Qjc5Mjk0RDIwNEUwRUE1RkYxQkUzQ0MwCitGRTAyRTc2NEE0NkNDODhDM0IzM0FEQ0YzOTgzQzg5NTU0NzAwRDdCQ0NDNjFGMDlEQkNENDBFOTRCMTRGQkNGCis2RThBOTFEMTE5NjVFNDZGMjBDOTQ0MTAwMUE1OTM5MEJBMkVBQzIzNUJENEZFMkI5OTU5MjNGNjk4QTlEN0Y4Cis0QUIyMDE2MEEwRTcyMzAwRUJGOUZCRTZFOUY3RTNBMjVCNzFGN0ExODNEQ0JBM0M2NTBDRjYwRDJERkRBM0RFCitENTdEOTAzNTcxQUExRTREQjk5ODZFREZFRjEyNUNBREE3NzkyNjJDQzBBMzNENkJEQTNEMDg0OTgzRjQ2QzFFCis0QTU2NEE0RDhCOTAyOUU4NjU2Njc4MUUyM0ZGQjZFOUQ2Q0EzQ0NDNkEyREQ4QTRBNTY4OEEzMjk5MTNDNjI5Cis4QkMwMTg3Q0I4Rjk1RDI4MkJGRjMzMjk4QTQ1Q0RDQTM4RDYyRTEzNzhDREYyMDdDNDEwMzE2M0Q5MUVBMDZFCis5MDM0NUVGMDcwMkY1NDlBN0JFRjE0RUFGQjMzRDQ5Nzc2REVFQ0RGMjIyNDZFMTBDQkY1MTgwRjJCRUQwMTJFCis0MjQ4REE3RUYwMkUzNDk3MEI4M0QwODAzMTg0MDFENzdENTUzOTlCMENBNjlFMTkwOUE1RkVDRTVBM0ZEOUM1CitCNjZDRUQ3QjdDMDNBRTBDRDc2QkY4Q0IyNDIzOUQzOEY3QzkyQzI4QkM4NkIzNkEyMzhENzIzMEVGNDlBM0JECis0RDA1MTE5MERDRjE0NjYzNkM1MkI5RjFFNUM4RkFBNjJBNjM3ODZDMEYwNDkyMDhDNkY4RDgxNzJDMkJCRUI3CitEODVEQjdDNDQzNkZGRUExNzc4QUIwNDJBRUQ1NkZBOEQ2Q0RCN0U5M0FBNkFGODI1ODQ3NjY5RENEOTE1N0JCCiswRTUxRjFGM0U3MjU3NkRBODE1MTNFMEIxQTVFRTdEODBGNzc0RkI4QjhDOEUyMzIwODI2Qjk5RTUxNTA5Q0RDCis4Mjk5RTQ0RTQ0QkEwNTRBOEI5MzAyQkNGRUIwMTk5NTA4RTY1M0ZGQUE1OTNCRkVGOUU2QjcwNTA4MzREMDIyCisxOUUwOTYwRTAyQjI3REQ4NEMwMEJGMzNCQTg3NTYyQTA2OTdDMkFGMEY2QzMyQkNCNkE1ODAwOUM2NDlCOTI3Cis1MDk3MUI4OUQ4QUIyNjg3MTg3QjIzMjQ1MTNCMzgzMTBERURGRjJGQzlGRkNENDZGOThBQUZBRUQyRDEyMkVECitDMjcwRkRFNkQ4MzczNjRFRkZCRDE3NDczRDJCOEE2ODZGNzRGQzNBMEY2QTc4NjEyMTlCMTQ1RTI0MUZENThBCiswQ0FBMTc4MDVENzhFN0FFQUE4OTdBMkMxRURDQzY4NzZEMjkyQUU3QjBEQjZENUMyQkFDRTc0Njg3QzBCRTg3CitBMDE0NTU2ODZDM0U1MDlCQ0E2ODg5RTQyMkVDQUVCNjA3RDFENzBEODYwNkM5RTlGRkU3QzFDNDkxMThCQjNBCitENUJEQUU0Qjg5NDk1RDgyODg0M0FCQTQ5QzBDRTc0OUE5NDBEOURGNzg5RTQ5MTY1RUQyNDE0NUM4REY4MDA2CitGOEZBMzJBOEZDQkYwODhBMUEyMkE4RDc4OTIwNkZFOEMxNzczMkMwMkYzMDNBMTA5NzQ1Q0U4MDE3RTEzRDc0Cis0RTQ4RDlEQTc1QkNGREYxMjlERUJGMzIzMDFENTI1OTJDRDVFRTVBN0NBMkFGODRCNTkwQjhCM0VBMUMwMUVDCis2M0FFNEIwMEJGNzRCNUIxM0YwREUwRUE2QjQ5RjY4NDlCNzA5MDk2MzBCNzZBMUEwQ0E2OTI3NDNDQzA2NDdCCis2NDY3RjNGMjMyNEQ4RjRBNTEwQjAzNEM1OUJEMEUzQUNBRjNFM0ZEMzBBNjA5ODc2ODk3Q0REMzkyMUFBNkQ5CisxRjQ1MjdFNUE1OEJGMjg2MkNGNjcxNkZGQUZDRDlCQUNCOEMyMEQ3OEUzOURDMDAxRTYzODdFODM0RTg3MDlECis3ODZBNzg2OTI4RDgzMDJEMjA1RUEwQkVDMzJBNEI5NUVDQUE1QkQyOUE5MUE3Nzk4MEUwMDI0QTc1NEM0NjJDCis0ODMxMTMwNTkxQUU0MTQ2NkU2Q0RDRTEwMTE4QjhEODcyMzdFRkI1MDc0NkE2QTIzMDc2RUY0QkVGMjU3NEIwCis0NDdGQzY4MDNGNUJEODBCMDI5QTFBOTQ0MzFDRTJBREI2Q0VENjdBOTc3MjUyRTRGQzNDMDNFQ0FGQUQ5MkZGCis1Njg5RkQ2NDRGNEQ0ODM5MDZCQUE4ODU2NkZGQkQ3Mzc3NDVDQkYzRTVGRDNFMzNCNDQ5REFERkYxQkZBQjE1CisyNkU5Q0EwMUU3NTdERDJDRTc5QzQ0MEU1NjU1MDAyMTVFOUFFQjFDOUZDQjJGQzVBMTVFMkY3M0YyNzg3RjE3Cis3Qjg2RkYyMkREREFDNDU4NjQ5RDI0NzdBRjNGQkYyNjFFN0VEQjE5RURFMEY4MTIwRUYyNEQzRTEyMzUxNjkyCisyMjA1NDBCRDQ0QkY3MzFGMTU5MEQyRjAwQTkzMzNGMjlBRkU3RERGOUQ4NTU0OUJCNjQzRTFFQUNBMDlGRkNFCitENkY2NkY3QzY0NkMzREYxNEY1MTIxQjM0RTQxREJCQTY1MzM3MDU0OTdBNDQ4QzQxMTVERjAxRTdERjc1M0VGCis2MUQ5Qjg2MTg3OTZBQTI2RTBBOEU3ODNBNkRGCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCitjbGVhcnRvbWFyaworJSVFbmRGb250IAorJSVCZWdpbkZvbnQ6IENNUjgKKyUhUFMtQWRvYmVGb250LTEuMTogQ01SOCAxLjAKKyUlQ3JlYXRpb25EYXRlOiAxOTkxIEF1ZyAyMCAxNjozOTo0MAorJSBDb3B5cmlnaHQgKEMpIDE5OTcgQW1lcmljYW4gTWF0aGVtYXRpY2FsIFNvY2lldHkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisxMSBkaWN0IGJlZ2luCisvRm9udEluZm8gNyBkaWN0IGR1cCBiZWdpbgorL3ZlcnNpb24gKDEuMCkgcmVhZG9ubHkgZGVmCisvTm90aWNlIChDb3B5cmlnaHQgKEMpIDE5OTcgQW1lcmljYW4gTWF0aGVtYXRpY2FsIFNvY2lldHkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQpIHJlYWRvbmx5IGRlZgorL0Z1bGxOYW1lIChDTVI4KSByZWFkb25seSBkZWYKKy9GYW1pbHlOYW1lIChDb21wdXRlciBNb2Rlcm4pIHJlYWRvbmx5IGRlZgorL1dlaWdodCAoTWVkaXVtKSByZWFkb25seSBkZWYKKy9JdGFsaWNBbmdsZSAwIGRlZgorL2lzRml4ZWRQaXRjaCBmYWxzZSBkZWYKK2VuZCByZWFkb25seSBkZWYKKy9Gb250TmFtZSAvQ01SOCBkZWYKKy9QYWludFR5cGUgMCBkZWYKKy9Gb250VHlwZSAxIGRlZgorL0ZvbnRNYXRyaXggWzAuMDAxIDAgMCAwLjAwMSAwIDBdIHJlYWRvbmx5IGRlZgorL0VuY29kaW5nIDI1NiBhcnJheQorMCAxIDI1NSB7MSBpbmRleCBleGNoIC8ubm90ZGVmIHB1dH0gZm9yCitkdXAgMCAvLm5vdGRlZiBwdXQKK3JlYWRvbmx5IGRlZgorL0ZvbnRCQm94ey0zNiAtMjUwIDEwNzAgNzUwfXJlYWRvbmx5IGRlZgorL1VuaXF1ZUlEIDUwMDA3OTEgZGVmCitjdXJyZW50ZGljdCBlbmQKK2N1cnJlbnRmaWxlIGVleGVjCitEOUQ2NkY2MzNCODQ2QTk3QjY4NkE5N0U0NUEzRDBBQTA1MkEwMTQyNjdCNzkwNEVCM0MwRDNCRDBCODNEODkxCiswMTZDQTZDQTRCNzEyQURFQjI1OEZBQUI5QTEzMEVFNjA1RTYxRjc3RkMxQjczOEFCQzdDNTFDRDQ2RUY4MTcxCis5MDk4RDVGRUU2NzY2MEU2OUE3QUI5MUI1OEYyOUE0RDc5RTU3MDIyRjc4M0VCMEZCQkI2RDRGNEVDMzUwMTRGCitEMkRFQ0JBOTk0NTlBNEM1OURGMEM2RUJBMTUwMjg0NDU0RTcwN0RDMjEwMEMxNUI3NkI0QzE5Qjg0MzYzNzU4Cis0NjlBNkM1NTg3ODVCMjI2MzMyMTUyMTA5ODcxQTk4ODM0ODdERDc3MTA5NDkyMDRERENGODM3RTZBODcwOEI4CisyQkRCRjE2RkJDNzUxMkZBQTMwOEEwOTNGRTVDRjRFOUQyNDA1QjE2OUNENTM2NUQ2RUNFRDVENzY4RDY2RDZDCis2ODYxOEI4QzQ4MkIzNDFGOENBMzhFOUJCOUJBRkNGQUFEOUMyRjNGRDAzM0I2MjY5MDk4NkVENDNEOUM5MzYxCiszNjQ1QjgyMzkyRDVDQUUxMUE3Q0I0OUQ3RTJFODJEQ0Q0ODVDQkExNzcyQ0U0MjJCQjFENzI4M0FENjc1QjY1Cis0OEE3RUEwMDY5QTg4M0VDMURBQTNFMUY5RUNFNzU4NkQ2Q0YwQTEyOENENTU3QzdFNUQ3QUEzRUE5N0VCQUQzCis5NjE5RDFCRkNGNEE2RDY0NzY4NzQxRURFQTBBNUIwRUZCQkYzNDdDRENCRTJFMDNENzU2OTY3QTE2QjYxM0RCCiswRkM0NUZBMkEzMzEyRTBDNDZBNUZEMDQ2NkFCMDk3QzU4RkZFRUM0MDYwMUI4Mzk1RTUyNzc1RDBBRkNEN0RCCis4QUIzMTczMzMxMTA1MzFFNUM0NEE0Q0I0QjVBQ0Q1NzFBMUE2MDk2MEIxNUU0NTA5NDhBNUVFQTE0REQzMzBGCitFQTIwOTI2NURCOEUxQTFGQzgwRENEMzg2MDMyM0ZEMjZDMTEzQjA0MUE4OEM4OEEyMTY1NTg3ODY4MEE0NDY2CitGQTEwNDAzRDI0QkI5NzE1MkE0OUI4NDJDMTgwRTREMjU4QzlENDhGMjFEMDU3NzgyRDkwNjIzMTE2ODMwQkEzCis5OTAyQjNDNUYyRjJERDAxNDMzQjBENzA5OUMwN0RCREUyNjhEMEZGRUQ1MTY5QkNEMDNENDhCMkYwNThBRDYyCitEODY3OEM2MjZEQzdBM0YzNTIxNTJDOTlCQTk2M0VGOTVGOEFEMTFEQjhCMEQzNTEyMTBBMTdFNEMyQzU1QUQ4Cis5RUI2NDE3MjkzNUQzQzIwQTM5OEYzRUVFRUMzMTU1MTk2NkE3NDM4RUYzRkVFNDIyQzZENEUwNTMzNzYyMEQ1CitBQ0M3QjUyQkVEOTg0QkZBQUQzNkVGOUQyMDc0OEIwNUQwN0JFNDQxNEE2Mzk3NTEyNUQyNzJGQUQ4M0Y3NkU2CisxMEZGRjgzNjMwMTRCRTUyNkQ1ODA4NzNDNUE0MkI3MEZBOTExRUM3Qjg2OTA1RjEzQUZFNTVFQjAyNzNGNTgyCis4MzE1ODc5M0I4Q0MyOTZCOERFMURDQ0YxMjUwRkQ1N0NCMEUwMzVDN0VEQTNCMDA5MkVEOTQwRDM3QTA1NDkzCisyRUM1NEUwOUI5ODRGQ0E0QUI3RDJFQTE4MkJDRjEyNjNBQTI0NEIwN0VDMEVBOTEyQTJCQ0M2Q0E2MTA1QjI5CiswNDQwMDVEREJFQUY4OEUwRjA1NTQxQkJEMjMzOTc3QTQ0N0I0NjlGMDEzRDg1MzVBOUQ3MDIzQ0MwRkI3QjQ5CitBOTVDRDJCNkYxODkzNUMzN0Y0OUU5QTczRTk3QTg2MDJDNUMyNkVFMTNEN0EwNEExODgzMzZGQ0FCNENERUUwCisyM0RFOUQ4MDNGRDZFOEQ4NDZCM0Y3MjlCRDM2MTM3RTgzNEUwMTYyNDJDRDJGN0JGMDQ4OTU5REQ0NUFENDEzCisxOUI5ODVEMDVFNUQ0MjJGM0QwOTY4Mzc1RUE2QTkwRkJFQkY4QjQyQjE1RjE1MjgwNDY5RDY5NjI5QzA4QTQyCisxQzI5OENDMDI3Q0MyODhCOUM5ODQyMzlBQkI5NkI2QTg5MUMxMzYwRDA4RjlFQ0MyMjIwMjg2MUU0Q0U5QjM5Cis4QkY3NjY0RTMwRUMxODhGQkRCQkY5OTU4OTBGOUFDNkM5MjM2ODRBMDJGNkM3REI4OTE1NEQwOUM4MUJDN0VBCis5QTJCMzRDOTgwNjIxNjExN0U1NTMzNTQxOTgwREQ3NkI4MDQ2QkI3MjIxQ0QyRUZDQzE4OEVDMzJCNjYwODVGCitFNDJBNjg5MkRCNTM1RUMwMjgyODExNjU4OEZCRDc0RUE0RTBFM0JGRDg4Njg0RkE2QzdDQjcxNTU1QUVGNzdFCiswRDc4MTQyMjA0RjI4NUNDRjA2MEQ5NjRBNzk2N0E2QTIxNTRCM0QwOERGRTJCMjMyMkZEQTg2RUQ1RDQ1NDcwCitFRTlCNTg5NDQ5QzZERjA4Njk3RDNCQUE2MjgwRDc0RTM0MkZDNjAyRTVGRDYxREYyRDc0RkVFRjFEQ0Y4MEMwCiswNDk3RjNGMTIwOEE5RTU3NEQyMTZDM0I0ODA5M0FFMTVEMTFGOTg0NzYyNEI1Q0Y0ODU3RDU3MEQ2QzBBOTA3CisxNEQ0ODQzNzA3NDg0RUE1RDNCQUU4RDA2NzJGNkIzQTlDOEMxRUQ2QkY0REFGMkE4MUY1QzdGQzI2M0NDQzhFCis5RkNDMzBGQzg4NTc1MEZEMjNCMTcwQzRBMDAxRUUwRDBGQjM1QkRGRUU5MTFBRTlGNzBBOEM2NkRCMTdDNjBBCis0QUM3NERDNDg1MjJCNjU1RjIzMUMwMUU0QzYxRTk1OUIwQTBDQkZCRjAwMUZCMEI0MkU0REJFOUIxQTZCRjlCCis0RDIwQjBEREQ0NUY0NjJGRjQ3MTlFODkzQjVGNjEwNzg4NjAwODdEM0RGQkJFRjk2MEUxQTZGNzIyMzg1Rjk5Cis2NDQ2MEU1Q0NEMEVFNkNGOTU3NDRFMjEzMTUwMEIyQzY5MTc5NUJENDk5MDI3QkNFQkE5NzMxQjE1MDg2RkQzCis3NzRBM0JBREJEQkUyNjAxMkNGM0Y0MDAxNTY1QUJCQjJDNDY0MkIzMzlCRTc3MzQzQUM4NTExRDcyMEI2MjcyCisyQjYwNjk5OTQyN0E2NzEwNjNBRTlEOTdEQ0M4MjJGRkMzOUU2NTRFMDc3MTI5QjJDRDlCMjk1MDYxQkM3QUIzCisyNTIyM0E5REFGMUQ2ODM1NjI3RkQ2MjMxN0NGOUJDQUY1NUIwNDEwNUQyMjk2MzgzOEYzQjRENkFEREE5NUNFCitFNUU0OUE2QkQyRTdBRkI3MkU1NjQ2MDdFMTIyQzE3OUQ4MjNEQUQ2NDlDNTkxOTY3MUUyQjUzQThDQzY4M0MwCitDRUMwRTkwMDNGMDRFMjAwRkMyNURGNUNBNjE2QjBCMTlDRjIzMEY2QkNDNjcxQkU2MDk0M0UzRDQ0MEQyMjkxCiswRDE1MTExQUFBQjgzQjRDQTVDODQyMzY5NjkwQzI5NDA4REQ0MjFCNUVBMjlFMTc5NzRGRTAzMjIzNUFDMjVFCisyMDE5RDNBNEE1RDNGNDU4ODRGNUM0NEMwOEMzNUMyMDVEQTFDMDMyMjA4RUI5NDc2QzZBRUQ2ODZFQ0FFQTQ2CitENjM2NDZCMkU2NTJGRjg3MjkyODA1NUJENkE1MzEwRDE4NUE2OTM0QzI4NkFBRUZGRTU4RTY1MEY0Q0I5NjdFCitENkU4NTlBNzM0QjYyQzE5RDNDQUE2M0QzMUM3MUVBMjE2RDNFRTUzQzNFOEU5NTJFQ0U5REU0MDQyQzk1QkI3CitFREREQzkzNTNGNURGNTI0QTMwNTYzRTk1MkEzMUY1RDA0MERBRUYxMTUwRjg3RTQwMEE0QUYzOERFRURFRDU1Cis4QjBGNEM3MTdFNDRENkM0QjlENkE1MTdDRUM0RjhBMzUyNUFEQ0QzMjFGMTJGODFDRDgyRDI3RTQ5NkFDMUEzCis3OEM0MkI5NTQwMjVERDBCMUIyOERFOUFDNjZCRDlBRjE3MUQ2NkIzM0ZFMTQ5MkQwODdGQUEwOTIxREI4Q0MxCitENUMwOTcyMDIwQkNEOEI2NjdGQzBBMjQ5QUVDQ0I4Q0FENjc0MURDREQwNkYwMzY0NjEzRUIyNkRDMkI5NUFCCisxNENENzUwMzY2N0VBRDkyMDg0Qzk5MDM3RjU5QkUzOUY5OEFDMkQwMkY4OEYzNDFDN0NERDcyRUIxRkY3RDY4Cis0NzU0QUQwN0QyMzg1RDM0MTVFMDRERUUzQUNENURBQTk0MTU4NUExMjE1QkE0MjZCRDVFNTNBNjJENjBERkJBCis5MzdDNDVCMEY5Q0IxRTVFNDI0MjlCMTc0N0RBRkZBNDNFNEE1MjM0RjM0QjdCRjBEMTA0NDJEMTZEQkYxRDBCCis3NTk1MzU2RTczQkUzQzg1QzExQkZGNjNFMjZEQ0QxQjQzNDM0MTlDMTMwOEUyMzEyNTI3RTM5OTJGQzY1MTVGCiswMTQzQzdBOTgwOTk2NjhEOEFBNjZBNDMyRDVGQTI2ODA2MjY4QzRENjg3M0VFN0MzQjkwRTBBMzY4MTY4QzMzCiszRkRGOEQ0ODNBRTAxNTFFN0M5MDYxQ0VFNTQ0Njk5QkVFMUVGNUU4QkI5RUY4OTc3NDVGQUE3Q0IyQkQzODAzCitCQjQ2RjBFNkYwMUFDRTc0NDQ4MkVFNEQ4NjY2MkRBQzMwNDNDNTcxNkQwRTJBNzdEREEzMTE3QzcwRjcyMjVGCitDRTJFQzFDQTAwNjYzRjAxOUExNENDRTQ3M0Q0NzgyMEFERkM2MjBDM0UyRjlBRTBCRTUwRTkwOTkzNEIyNUE1Cis4QkNGRjZEMDU3RjIyRDQzQUZBRjQ3NTc1MEVGQzk5RkJCQjVDMTYyMEM3M0ZEMjZGNDE0NUY4NTQyQjg5Q0VECisxQUY2RTREMDQ0RjREMUY1OEU4QjdGM0Q2NTUxMTI5NzVEOEQ5OTZGMjUyMzgzRTRCOTNBODUxREU4MEY2Q0VBCis5MjUxOTQyMzA5RTM1OTFDQTczMkUxQTlDRDhBQzJBREQ1QkFDNEIwQkVGMzE4QkU3M0MxNUUyRjA3QzAzNTkyCiszMjUyODkxQ0QxRDNGRkExMjBCRTJBNDk2RkI0MTdENjgzRTBGMjJEQzBFRjhGMEY3MzAzREUzREVCRDY4MTFBCitFQUFDRDM3QUY3MDhDNjQxQTc1RkY2OTg0QUIwRTlGQ0RCQkMzRjBBNDVEQjVBMTQ2RURCMUY5OUJFMjA4ODcxCitCRjY0M0RFMTVGMjM3RjE5MkY4RDk5MDYxMkY3MTZGMkZDODFFQTNBQ0FEODk2MzkxNTgwMzAzMjJBQUUzNUVECitFREY4OUYwQThGNDFBOTI3RDVGNTM2RUNFNUVFMzlGRTZGMTlFOUY5OTY2RUI1ODE0QzI0MTM0RDcwRjQ0RjZGCitBNzk1ODJEMjk2RTM2MkRFNTVDQTI3QzkyQUM4Mzc2REFEOEJDMEVEQjVGRTlDNjBCMDU3N0M2MDI5N0E3RjU3Cis5Qzk0MENGNjZFNUU4MEJBNUY4MDJENTg0RjMyMjdDMUM3RDVEQjI0MzM2MEY5NEFGNEQ3QzZBRTZCQUU1RkYwCis0N0VBQkE2NkY1NEY0OUVEQzBBMkQzNUM4QkY1MzEwOTMwNTE1RUE5NTU2OUEwMEM3NkVBMjNCQkRGOTU4RURFCitBMUJCOEYxMDY5M0FFM0Q3NzhCNDczQTM1MERBRkE0QkVGQjI2Q0Q1NkY5OUVBMEI2MDk1OEM0M0JDRjc4NTc2CiswNDg1MDM1NTNDQjQxODk5MDY2RjYwRjY3MjJFRUY0RkI3OEM3MkRFRDk4ODNDMjIwN0IwRDcyRUJDQTgzNjBFCitFRkNEQTk1QUY2MjRERUJENTVBQzgwMkEwQTlFQzBBQjc4QzdENjc3M0FCQTE2MzhEMTJFMjA3MTJFQzRDQkNGCisyODk4MUUzRjk1QkVFRDZGQ0ExNURGNENGMjRDOEVFRkIwQUMzMTQ0NjZFOTcwNjBCN0U1RDRDMjNGMjYxRUYzCisyOUFGNkQ1M0MwODgxNEQ5RkIxNUY1MDkyMUEzN0JFNkEzRDY2M0EzM0JBODBCNkRDMjE4MUM0RDY1NEQwNDhDCitCREYyNTM4NDIzQjcwRUYyMUMwN0NFRTdDNkY1M0E2NUUyMEY4NjE2NTdCRDVDOTM0N0NFNDNDQUY5N0ZBMUQyCisyRTNBQTEyQ0UyOTIyNUMwRTUyRjVFNzVBRjA5RjI5MkYxMDI3REJBRTI5QUE3QjQwQzMzMEY0RUI1MkE0MjE2CiswNkEwMTY0NUE5NTY0Qzg3NUE3MDFBNEQzMjNEN0E0RTUyMTMxOTgxQTA0NEZENTJCNEVDNzE1NkRGQkQwMjFFCitERkJFOUFBQzI4QzRCNkU3QUFFNEUwMDA0MzdFQ0UyM0I0MDRBNURGMUUyRURBMkEyNTZBQzg4OTNCODJCQkUwCis2RkFENzYwODY1RTQwOUQwM0I4NjVCODc4MDEzQ0QzQzc0NjgzRDY2NzI0RTZBNzYwNzg1NzlFRDgwNUM2OUE5CisxMzFDOTBFRjE5NTlCQkM5QzgzMzgwN0QxMEEzOTkwMDE1Rjc1QzczMzg2NzZCNEVFMzIwQjZFRTcwODIzMjdBCisyRjg2MzhBNkFGOUQ0MEQyOEU1NjYzM0Q5NjAxRDI0MzI1REQxQ0ZDOTYwMzMwMTJENDVCNTQ1NTY1Q0I2N0YyCis3OUJBN0Y2QjYzOENDNzQxNkJCQkIwNzhENzI5OEU1NDREMDE1MTU0RDU2RjE1MTk1NTI1RDM1MTE1NkRFOTk0Cis5M0QyNDJGREY4REFCQzI0RTA1MEY5OTU4Mzk5OTFCRTAyMTRCQ0UwRDc5NkNFMTQ1NkM4MkUyOEY1NDZDMTdFCitGNzAzMUI4MDY4MDM2MDQ1QUJEQ0NFMDE4MDdFNDRCMTcxQjUwMzg1REIzRjRBNUZDOTY3MzEyQjdBMTg5OUQ0CitCMERCRDFCMkQ5MzVDN0ZFRDkxREQzQkM4OTU1QzBDQzZEMUM5RkE4OTQ1NTRBRjE2QTdGQURBMEUzMEVDMjBCCitFNUZERTMyQzBFOTQzMjJDMkUwQ0FFNjk0Q0E2MkE1NTU5MjlDOENENTdFMzQ0RjA0NTU0MzIwRDhFOEFCRDFCCis3RTFBQzlBNENEQUMzODE2OEM0QkNFRUQ5RDlCQTI5QzMyMUMyMkY3QTRDMTc1MDRGRDYwMjZERjUxM0I0QjBFCisxMkYwQjEyMzRDNTU1RkI3RUMxOUQ3MDRFMTFGM0M4RkYyMkE1OUE4M0UzRDM3RkU0Qzc0RTM3QjcwOUI0Q0Y4Cis4QTA1NEJCRjZDOTE1NTkwQjg3QkM4MjRERDhENTJDNUREMDc0QjYwNTk5MUM0QzhFMjc2RUQ4MzAwRUI5NzRBCis0ODZENTlDN0RDMjc3NTE0QzU3QThBODM1NzE1QjQ4OTNENEI3ODIwMTM0QjUyNTlERjY5OTcyOEUyMEU4NUVBCis5MEEyQzVFMEFDRjk2M0Q0QzMzNzkwNEM0OEVEODUxQkZFMkNFN0M3MURFNzM3QzQ4RUUxNzJFNTdERTdCQ0Y4Cis0QTc1NDJFQUQwQkM3NkQ4MTMzODJBQjI1NEI5ODk4RjA5MjkwNDVGODQxRkJDQkQwODUyNDhGMDQ0MzdGMzY4Cis5OTk4RDkzRTFDQjkzQjk2Njk0NTIwRUIwRTQ2QjBDMURDOEEyNzI2MTVBNEVFMUE1Qzg5QjExNkYwRTBENTk2CitGM0I3MjlBMjc2MEI3OTA2NjM1Mzk3NTY2MTFGMjdCQUM1RDBBNUIwMDc0MTFDNDhERUFDRDEwQzNCODVFNkM2CiswNzkxNzJGOUY3QTgxMDk3QkMxMkQxQURBODA1RjA2QTc4MTI5NTI0NTY2ODc3NDdCMzYyMUQ3OTc5QzQ2RjE0CitDQUUyRUVCRjQ4OERDREJBOEMxMEUxNzFBMjMxMjM3M0QxNjYwNTNBNDg2NEEwQkZDQ0I5NThBQjUyNTI2NTE0CiswNjM4QzNDNDI2MDNGRjg2MTMwNTFFODUxQjUxNzdCNjdFMTlFRkNBRTE2ODc1MDc5QjFDRThCMDdDQ0IwNTVGCitGREE3MEJDNDkwNjU2MkE3NkJENERBMUE4QTdENTcxODdGNjQ3N0FCQUY4QUZCQzQ5RkIwREVCM0Y2MjIxM0M4Cis0MUY1QTQ2OUY4NDE1MkQyMEI3MkExQzQ4RDgwNzJFODdFMzg0MUMyQjgzMkYyOEE3RUE4OEU0NzI3NDU3RENCCitBOURFOTEwMTBFODNFQ0Y0Nzg4QTdCMkJBMEMxMDIyM0FGMjE2QUI1ODk5MjRGREQyMjA2OEMzOTBCMDREQ0YyCitFODgwOTEyN0NEMjBDNEE0MUVDNDVGOTJGQ0Q3RjMxOUZFQzUwQzg0QjAzMTdGQUE0NENCN0YxMjQ1MjY4Q0YzCis2QkI4MDY3QUY0ODYyRDg0MkY3NDNFMjgyMzgyQTU1QTgyQzExMzUxM0E1NTc2NDkwQzUwNTlBRjQzMUEyODU3CiszMDFDRDMzMTMwMUEyRjkyRDZFOEJBRDZFQjQ3REY5MEJEMjFFNTYxQUFCMkFDRUQ5REJEOUJBMjJDM0NGNTIyCitCNkUxMDkxOUYyQ0YxRkM4Q0EwMkQ0NDkzNUMyOUNGOEQzQTczMzBBOTE1MTI5ODJFMjE5RDU2Q0Q3MUFCMTk2CiszODI2MkQ2M0I0Njc2QUUzQTMwQzQxNkJGRjUwRUJFNjgzMDIzMzdGQTI3RUY3NDIyN0Q2NEZBRkI0MjRFRTlFCitEQUJGREI3MTUwRDVDMzM2RjU4QTJGRTlBRUY0NTM4NTE5Mzc3ODMzQTg1N0IxMUM4QUQ1MUQxQTA5M0IxQUU5CitFMDkxOTgwRjM4NTBBOEVBQjI2MzNDRDkwOTAyOTNDNzk4MjAwMzE2Qjg1RTI5MkFFRDg3OEFEN0MyOENGMEFBCis1Rjk3MDYxOUUyQzA0MTNCMkI3MTlFRDAxREE3NDkwMkQxNjNGMEMxM0RGNDhDMDExNDZBNDI3N0U0MkFGMzcxCitDMzQ5NkY1NTcwRUMxRUJGNzY5RjFGOTdGQTE0MkJENjYwNzA3MDI4QkIzQTVGMUVGQ0IyMERGMjE1RDVENTM4CitDQzY3NzA0MzhGN0I4NkQ5NEFENjREMzhCQjNGNjIwOTlDMDRCOEZDNkY4NjQ2NjVDNEIwM0ExNzhBM0RENzM4Cis0NUE1OEEwODJFN0I2RENFN0NDODJGQUZFQzJEQUJGNDQzRjlDMEE3OTJBNDI2QUE1RUY0MjU1MTdCNDdGMTFBCitDNkU5Qjk4QjFENDY4QTNGNkZBRDIyMUJCQjY5RTgwOEE5MDBBMDA5ODc4NEE4OTBEMzJEODhGMzIxOUI1MjhBCisxODY4NkI1RERCRTZBNjgzOTY3QzRDQTMxQTgzMjE0RTlDRUY2REI0MkMyRkMzRTE4QzRDRTM3M0VDRUYwMzhCCiswNEYyNjk1MzkzMkI1NDAxRjA1QjkxQTBDNjM2QUExMTEwNjNCRTcyREFBMkE2MEFDOUU3QkI0RDhDMzU3MkNECitGRjAzMkNENEY2QkFFRUYxMzZDMDJFN0Y5OTdGNkNCNTEzQ0EyNDkyMTkwMDQzRTRENEMzNTA3RkI4NDA4MTc1CiswRkI0N0MwOEREQzcwRTg2RDNCQ0Y3RjlERUIxNURDQTY1ODMxNTEwNzRERjkyN0JBQ0I5NzA3REQwODE5MDg1Cis5NDBBMEJDRUQ0MUJDMThCQzdBNjIyNTEyMDNFMkUxQzAxMEFCMEY1QjQ0QTg0MjM1NkFGN0NGOUJFQjAxM0U2CitBMTAzNjJENDczNjBEQjUwNjc4NDlDODM1QUMyMDc1NEY5QzlGMEI3RkExM0Q2QThGQkQxNzFCQkVEMUQxM0YwCitGMDMwNzY3Rjc2MTRENEM5QTAwMzlCQTA2NTBBOTM3NzNGNzAzMjUzQ0MzREZCQzc1QTcyRUEwRkFBNTYzNDBGCiswN0Q2MzEwNjNGMzQ3RTNFODczNEE3RTFGMkQ2QkIzRDVCOTFGOTU5MEM3REEzNTVBRDlGMkI4RDQ1MTNFN0Q0Cis1Mjg0MTBBMUVDNkE1QzY1RUVGNzg2NTlGRDlFNTExQjg1REU2ODBDRjRFRjEwNEVDQTIzNkMzMTI3QzczMDEzCitFMkUzMUJDNkI5MUY2MEVEMjdCQTZCOUYzODcwMEM0MDJCMEQ3NThFOEUyQTU0OTk5RDRENDcyRTEwRUI0OTQzCitGOEVFNTU0OURBMTU2NUY5QzIyNjVCM0Q0OUQyQjE0NzYzODI0QTE2QUE4NzE4QjY2NEJGMTVCOTZFODhEMjBDCitDREY3RkQ0ODUyRDcwQjcxQUQwMzY5QjNEODkyMDNFRjdEQUI2OTM3MEI3MDNDRDMwOTYyQjIyQzhENkU5MjlDCisyQTJGMzk1QzVBNDU1RDE3MDFFRjBEMDUwNzZGMkM0MDc4OEI5REQ3NDU3RjY4QTRBMTNBRUFEODA3RjU0NEI3CiszQTg0NEQzNzZENjFGRDQ5QUYwOUU1MDJCNkY1RDE1NDE5RTMxRkQwMzM1NUQyNjFFNTVGMzZFOTg5RDZDMDMwCitDMDZBQjExRTc2NEY0QTdCNTVBNDlFMjZEN0E0RDkyMkY3RkMxRjcyODM3NzRDQjg2NjNGQjRFQjk3RDNGNTBBCitBNzYyNEY0QjJBOEQ1ODEzRUExRTE1NjBCQ0JFMTM2MzUxNUQxRTlGNEU0NTMwMEQ2MkYxMjlGNDg1NDAxNEVECis3NTRFQUFGMDY1MjhFMEFBQTI1RDMxQTFBNUFENTVGMEMzREZCMkY1REJBQUMwRTUyREFGQzIwN0Q2RjRBMDA2Cis3RkRCNDUyRjNGRUY5MEFDRURGMTM3RDhDNTNFMjcyRkJGODQ2REQ2Nzc4MDJCQTEzRkNFODUwNzMyQjA5NjZCCis5MkZGQ0M2NzlDRTE4MUI1RDVEQUZFMEZCOTQzOTIyMDIwREVEMEFGMjQyMzgwMzU5QTY3M0UwREI3RkY4QUNECitCMEYxQzFFRkI1QTI2RkY1NzkzOTk5RTQzQThDRkQ5QkFEMkI3MzNENUYwOEEzMTFBOTlBQUY3QkU0NDVCOTRBCiswOTI3RTM0RDREQzQ0ODAwMzBGNUM4M0JBMkVFOUQ5MEQ0RERGMkVFMDQ2NkY0NkIzRkQ3NzZERTBBNDAyNjUzCis4NENBRUY2QzgzMjUzMjVEN0U5OTMzN0M0NjFDRDI0OEIxQUJFODU3QTlDMjk2RjZEOTcyQzY1MjRBRkJBMDg5CiswRTNCRjQxNjQ0RDM5ODYwNDI1QTdCMDhGRjhBRjAxQTRCQjdGMzM0MDJBNzk0NTJENUI0OEU1REFEQjNGODdDCitDN0I0MUY4QTY1MEFEN0ZGQUEyQjE2MzQyOTQ3QkIwMjI0RDIyNUNGNUVFOEJENDRCMkZBRjc5QTdCRTBBNjU0Cis5RkE2RDA0RUVCNTdCMjg3RDQ2RjIwMkZERTA3MUYwMUEzMkM2QTU2MUZCODE5RTk4QUYyNTUzMEVCMUVDNEU0CitDQjM1NjBCMzQ4MDIzRjRDRjlEQjk5MTA2REYwRkQ4N0NEQTlDOEQxQ0E3MDJDQkU1NEYxQzRFNkQ5NzIwNkNFCitBMDNCODA5RDUxOTU2NkMwM0FBOEIwM0FFQzlENTk4MzA3RUYxODIzMEI3MDdBREEwMUU1M0NGRTdEM0RCNUM3Cis1NjgzMTZGMUE4RERGQTU0MjcxQjFGOUNDMEMxREJBNTgzQTBBRDQwNzNBQUNBMDQ2Q0I0NjYzNEE2MENDODYyCis3Njg4RDZEQkFFRDQ3Mjk3ODk4REVBOTE0QzVBRTFEOEE3MUNFQTQ4OTlBQ0JGNzAwRkJBQjBFMDhBQzI0RUEzCitEQzQxRjM5MTdDMDIxRDM3QUVDQzFFN0E3QkUzOUI4NzAwMEM4QjFCNjQwNTcwNjQyN0YyNzk4NEMwMjI3QUEyCitGMEJCMUQwNTc5RjE5NkQ4M0M1NDhCQjFBMkJDMEU1QjRDNDlDMjdERDQxRkExMjQwOTM0OTE2OTFDODc4QzY4CitFRjJGOEM5MTVCRDNDOTlGOTYwNDhBQUFCN0Q5MUIyOUQ3MTM4MjQxNDgzNkRFRDA3NUUyMzUxMDdBRTM4MjY4CitEMUIzOTNFMDZCNTYwOTI0NUYzNTZDOUIwMUUxMEVGMEI1NUM0NkU1QTFDMEUyQUVDN0IyMzg5QkMxQ0MxMTNDCis3QTlDODg1MDdEOThCRTg2MUI4MDhFQTQ2MDIzQkE3M0M5M0VFQjFCOEVBRkY5NjZCMEVGMkVFNjY4MDk2QjYxCis2MUJGMkIwODEyRDA3MjY0OUI4REE1NUNFMDNDQjBFRjQ4QkZGRjZGREVBREVDQUYyRkRBNENFNjVEOEE0NzRBCitCMDY0NDk3MzAyMTIwNURFMzlGRTgzOEJDN0IyQzc5MkJFMDUxRUNGM0MwQzRCM0ZDRDNERTdBRjgyM0UyOEFECis5RUEyMjZCMjIxNjc2NTJDMDY4M0E0MjA4NzA0RjQ1MUVFMzExRkQ3OUFBQjg0OUUwOEMzMjM0NUMwQkVFNDUyCiszMTcyMTkwNkE3REM5RTY3QzAyQTI4ODBFNkI2OTIwNUQ4Qzc3N0UyNkJBMTg4RTA4Q0ZGOEUwODA3OEYzMDIwCis5QTQwRUFGNzNFOTdBNTcyRTY5QkNCNkJFNUMxQzk5RkE4QkZENTk4MzY1QjU5Q0VDQzNBQTZDQTAzQjFDM0VGCitGQkNGQUFDNTY0NDREQkEzQjFGQjhGRTU1NEU4MjQ2ODg1RENFNzA3Qzc5NTVEMTU1RTRDNDNFNzQxMzNFNUJGCis0QjQ0QjEyQ0UyN0M3OTUyN0E1NzBDM0MzNzI3NzBEOTUzMzZBQTgyMzBCN0FDRDYwMTI2Nzc3MzUwMTBGRDM4CitCREU2MkFEMkYwMDE1N0RDNjkyOTIyODMxMjI5MjMyMjJGM0M5ODRFODExNjVCODcyRjI5OTIxNTUxMDM5N0Y3CisyODU0RDNGRDNERTBFOTZFNzA4NUM3MkRCNTg3RjcyQUY0M0I5OUExMkIxQTAzOEREOTU5NTVBNTMxMkUwOTFGCis3M0RCMDM0REJGNEE4Nzk3NzdGNzc1QjBEQUE0MUI1RDkzOEMxRDc3NUQzMjU5M0I3RjBBMDNBMjlDRDRBNjdDCis4QUFDRkNEMjBFMzhGQzJCN0U4MDU4RTk5RUM3MjE5RTk1MTE4NEU4RTUwNUEzMTc5RTlERjY0RjZDNEQ2NzZDCis1ODI2QzgzNERBM0RDQTU3QTMwRENCMEFCQTk5N0EwNzJENzAwRDhCMTQzRUI0RDk0NThDRDZBNzcyQ0NERDY2Cis5QUIyQTI5QkY3RTA5MzZDNjk0QzI3NjQ2RjJDMkQzMkYwNDZBM0M5RTA5QTI5MjNFMDZEQURFMjgyMzZBRURBCis0QTMxMEI1NkVGMUU1MzhBNTNCM0QxRkMyODJBNDBGMzBFRTlERjVBMjgwQUVBRjJDRDM2NkI3RjAzNjA4RTM2CitDODNCQzk2M0Y1MjhFMDU2OTUwNjNFRjFERDMwMThBMEE5OEU3RDQ4NjEzRDc5QUNEMjg1QzVCRkZDQUVCMDRFCis0QjQyOENBMTNGQ0QwNDg1QjJGQkYzRUQxOTlDNEQ5MDM1MDMyNkVERUIyM0U5RTM1NzYyNERENDA2RUQ3OUFGCis3NUU0REFBRERFOTg3OUZCMDNFQzZFQjU2Q0EzNDhENkNBNzM5MTdGRDUzMTUwRjBFQUVEOTU3MzhCMDgyNDI2CitCNTQ0NjY3NjIyNDgyODYxMDQwMTNENDg2MTA1MDgzNzQ1MEFCRTcwNkI0M0VBN0U3NEE4N0MxNkUzQ0RCNEE4Cis5MjVEMzE4NURCMDEzNkRCQzM0OTNGM0UxRTg5QjkwQjU0RkUxODIyRjNDNjc1N0ZCNUExMUEKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKK2NsZWFydG9tYXJrCislJUVuZEZvbnQgCislJUJlZ2luRm9udDogQ01TWTkKKyUhUFMtQWRvYmVGb250LTEuMTogQ01TWTkgMS4wCislJUNyZWF0aW9uRGF0ZTogMTk5MSBBdWcgMTUgMDc6MjI6MjcKKyUgQ29weXJpZ2h0IChDKSAxOTk3IEFtZXJpY2FuIE1hdGhlbWF0aWNhbCBTb2NpZXR5LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorMTEgZGljdCBiZWdpbgorL0ZvbnRJbmZvIDcgZGljdCBkdXAgYmVnaW4KKy92ZXJzaW9uICgxLjApIHJlYWRvbmx5IGRlZgorL05vdGljZSAoQ29weXJpZ2h0IChDKSAxOTk3IEFtZXJpY2FuIE1hdGhlbWF0aWNhbCBTb2NpZXR5LiBBbGwgUmlnaHRzIFJlc2VydmVkKSByZWFkb25seSBkZWYKKy9GdWxsTmFtZSAoQ01TWTkpIHJlYWRvbmx5IGRlZgorL0ZhbWlseU5hbWUgKENvbXB1dGVyIE1vZGVybikgcmVhZG9ubHkgZGVmCisvV2VpZ2h0IChNZWRpdW0pIHJlYWRvbmx5IGRlZgorL0l0YWxpY0FuZ2xlIC0xNC4wMzUgZGVmCisvaXNGaXhlZFBpdGNoIGZhbHNlIGRlZgorZW5kIHJlYWRvbmx5IGRlZgorL0ZvbnROYW1lIC9DTVNZOSBkZWYKKy9QYWludFR5cGUgMCBkZWYKKy9Gb250VHlwZSAxIGRlZgorL0ZvbnRNYXRyaXggWzAuMDAxIDAgMCAwLjAwMSAwIDBdIHJlYWRvbmx5IGRlZgorL0VuY29kaW5nIDI1NiBhcnJheQorMCAxIDI1NSB7MSBpbmRleCBleGNoIC8ubm90ZGVmIHB1dH0gZm9yCitkdXAgMCAvLm5vdGRlZiBwdXQKK3JlYWRvbmx5IGRlZgorL0ZvbnRCQm94ey0zMCAtOTU4IDExNDYgNzc3fXJlYWRvbmx5IGRlZgorL1VuaXF1ZUlEIDUwMDA4MTkgZGVmCitjdXJyZW50ZGljdCBlbmQKK2N1cnJlbnRmaWxlIGVleGVjCitEOUQ2NkY2MzNCODQ2QTk3QjY4NkE5N0U0NUEzRDBBQTA1MkYwOUY5QzhBREU5RDkwN0MwNThCODdFOUI2OTY0Cis3RDUzMzU5RTUxMjE2Nzc0QTRFQUExRTJCNThFQzMxNzZCRDExODRBNjMzQjk1MTM3MkI0MTk4RDRFOEM1RUY0CitBMjEzQUNCNThBQTBBNjU4OTA4MDM1QkYyRUQ4NTMxNzc5ODM4QTk2MERGRTJCMjdFQTQ5QzM3MTU2OTg5Qzg1CitFMjFCM0FCRjcyRTM5QTg5MjMyQ0Q5RjQyMzdGQzgwQzlFNjRFODQyNUFBM0JFRjdERUQ2MEIxMjJBNTI5MjJBCisyMjFBMzdEOUE4MDdERDAxMTYxNzc5RERFN0QzMUZGMkI4N0Y5N0M3M0Q2M0VFQ0REQTRDNDk1MDE3NzM0NjhBCisyN0QxNjYzRTBCNjJGNDYxRjZFNDBBNUQ2Njc2RDAwMzdEMzNGMjRFMkZBQzJCMDAwOUFEM0M4MzUwQ0RGOENDCis2NUJDQTg3OTc5QzM2RDE0Q0I1NTJFOUE5ODVFNDhCRTRFODhFQ0ExNkRGNDE4NzQ5QUYwNEZERDJCMEUxMzgwCitEMjgxQkIyNDc2QkI0NUZGMzA5NDZCMjQ3REZEN0Y1NzMwNUZBODdFNTBDQTMzODEyMUM3MUNERkRGOTI3QTlDCis3N0ZGMTRDQjRBMUQ2RDgwMzU2RkIxMTcxRUQzOEMzNzcwMjM1MDQ5N0I0NEU0MkNFMzFEQjJGNDkzODA3REFBCisxNUI4ODdDNjcxMTk5QTU0QzRDMTI5NEJDNTIwRjU1MzhDMTU1NTZCQzQzQzlGNjIzNDJCMTIxQzZEQ0Q2QzVGCis0OTFEQTQ3RkYzNjAyMDFFRTIxQzA4QTc4MUVEMDU4OUE2REY5MUI5OUZFMTE4QjlCMjlFNEYwNjg2NzJFNTJGCisxQTA2QzUxNEQ5MUM0QzkzN0Q0RTY0MjUwMzM5MkIxQ0QxQkY1QUYwQkNBMjhFQkQ4NDBBRDc2Q0MzOUFEN0FBCitDRjJDMDU3MTEzNzRGNzg0OTcwOEUxMTA2Rjg4NzM3QzlBQTYwNjEyRDM4NENBOEMxNzNGRjEwMzFFQkY2RUE0CisxNzYxMzZERTFCOUYyOUU0MEU4MjY4MEEyQ0ZGREMyNERBMDU4NTMzMDdGMUQxRjY1MzdEMDYxRUJDQkNDNUFFCitFNjMxNjM4MEVDRDhFNjNBQ0JFQTlGRDFGQzI4OTQ5MzY2ODUwQUFBQkNCQzk1NTJDQUIyQ0EzQkI5MzRDOEEyCisxNEM5REZBREUyNEQ5MjE0ODU4QjFENDJCMjE3MURCMThBNDc1QUY3ODg2OEMyNTQ5RjE5NTU1QUFCMDdGNTg2Cis1OEIyODU0MUM3NEUxNEYyOEI2OERBNDJBOUQ0NkMwMzFDQkQ3NEZDMDlCRkVBQTNBQzFEREM2OEI3QjcxQjgxCis2MDAzQzlDNkFDOEVERERDMDQ2RDI0N0EyQjhBRkE2M0EzQjFCQTFGMTJBRTBCNEREMDczMjdGMDEzOEJGNDcwCis0NjMwRTRCNURBNTVDMTk0RjQ1NEVFMkU4NzJFMEFCRTZCODc5REYyRTg3Q0Y4MUY3NUQ3OUY0NThGN0QzRjgxCitGREI3NkMxNUVFQzQxMjVEMTg2ODVFMUQ4NTkxQzU0QzBCMEQwNjlFMkVENzM0MzQ2MTdCOUQzMEU2NDQ1N0U2CisxNTQyRTQ2MzBFODQ4OTQ4RkYyNzQ3RDVDMzFCOUMzMTRBRTEwODkzMTAwM0RCOUY3NjY0NERCNDNEMjQ1NDk5CisyRDI4RTg0NTJFNTBCMTk0NUUxM0E1REUyQThCOTM1MjNEMzY3MUQxQzdFRDA3RUFCNkZGQjU1OUU1QTFGODI4CitCMjJEMkZBRjM0OUI0MEMzQjMxRkU4MDY1OTVGNjdDNUU3NTI2MDUxNEY0NTZGQTAwMTM2NjhEOTQ4NjE5NTE0CiswRUZGQzM1QzFBQTEzMUFGODU3OEEyNTRBRTYyQ0E3NUE2NjMxNDg5Qzc4Q0NFNjMzQTNCMzAyQkZBQ0IKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKK2NsZWFydG9tYXJrCislJUVuZEZvbnQgCislJUJlZ2luRm9udDogQ01DU0MxMAorJSFQUy1BZG9iZUZvbnQtMS4xOiBDTUNTQzEwIDEuMAorJSVDcmVhdGlvbkRhdGU6IDE5OTEgQXVnIDE4IDE3OjQ2OjQ5CislIENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKzExIGRpY3QgYmVnaW4KKy9Gb250SW5mbyA3IGRpY3QgZHVwIGJlZ2luCisvdmVyc2lvbiAoMS4wKSByZWFkb25seSBkZWYKKy9Ob3RpY2UgKENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZCkgcmVhZG9ubHkgZGVmCisvRnVsbE5hbWUgKENNQ1NDMTApIHJlYWRvbmx5IGRlZgorL0ZhbWlseU5hbWUgKENvbXB1dGVyIE1vZGVybikgcmVhZG9ubHkgZGVmCisvV2VpZ2h0IChNZWRpdW0pIHJlYWRvbmx5IGRlZgorL0l0YWxpY0FuZ2xlIDAgZGVmCisvaXNGaXhlZFBpdGNoIGZhbHNlIGRlZgorZW5kIHJlYWRvbmx5IGRlZgorL0ZvbnROYW1lIC9DTUNTQzEwIGRlZgorL1BhaW50VHlwZSAwIGRlZgorL0ZvbnRUeXBlIDEgZGVmCisvRm9udE1hdHJpeCBbMC4wMDEgMCAwIDAuMDAxIDAgMF0gcmVhZG9ubHkgZGVmCisvRW5jb2RpbmcgMjU2IGFycmF5CiswIDEgMjU1IHsxIGluZGV4IGV4Y2ggLy5ub3RkZWYgcHV0fSBmb3IKK2R1cCAwIC8ubm90ZGVmIHB1dAorcmVhZG9ubHkgZGVmCisvRm9udEJCb3h7MTQgLTI1MCAxMDc3IDc1MH1yZWFkb25seSBkZWYKKy9VbmlxdWVJRCA1MDAwNzcyIGRlZgorY3VycmVudGRpY3QgZW5kCitjdXJyZW50ZmlsZSBlZXhlYworRDlENjZGNjMzQjg0NkE5N0I2ODZBOTdFNDVBM0QwQUEwNTI5NzMxQzk5QTc4NENDQkU4NUI0OTkzQjJFRUJERQorM0IxMkQ0NzJCN0NGNTQ2NTFFRjIxMTg1MTE2QTY5QUIxMDk2RUQ0QkFEMkY2NDY2MzVFMDE5QjY0MTdDQzc3QgorNTMyRjg1RDgxMUM3MEQxNDI5QTE5QTUzMDdFRjYzRUI1QzVFMDJDODlGQzZDMjBGNkQ5RDg5RTdEOTFGRTQ3MAorQjcyQkVGREEyM0Y1REY3NkJFMDVBRjRDRTkzMTM3QTIxOUVEOEEwNEE5RDdENkZERjM3RTZCN0ZDREUwRDkwQgorOTg2NDIzRTU5NjBBNUQ5RkJCNEM5NTY1NTZFOERGOTBDQkZBRUM0NzZGQTM2RkQ5QTVDODE3NUM5QUY1MTNGRQorRDkxOUMyREREMjZCREMwRDk5Mzk4QjlGNEQwM0Q1OTkzREZDMDkzMDI5Nzg2NkUxQ0QwQTMwRUI3NjAyOTMzNworOTAwRUNGQjEzOTBDQTVDMEMzQTA0NTI4MDQ0RjI2NkJBMTdCRTQ4N0M3OUI5NEZBQzZENjQ4NDY4NEM1QkZFQQorODdCQ0NDNzdENDBBRDExNTUyMDM1RTk1RTMwMDcxMjY0MThFRDQ5QjY4NDY4QjM4QTE0RTg4RTY4QTI2N0I5OAorMDc2RjFDOTc2OUE1QUZCQzI4NUU1QjE1OEVBQzlGOTI2RjFENkMwQjhGMUQ1N0Q5QzMxRDI1QUUyNzEyMzUxOAorOUQyQ0Q5MkU1Njg5RTAyMTMwODlCRDI2OERBNUU0NzUyNUNCOEVBQkFBNEI3OEExNUFFQTM0NzA1ODg5QUIzQQorRkZCODk1M0I1QjM0ODJFNTJCRkEwOTQwNjMwQURGOEMwQUMyMTc3RDkwNzMyNDI5OUVFOTgwRTg1MEYyMDNDRAorQjYyNzk2MkY0M0Q1QTY3OEM0NDI0M0NERTk3ODUzQkRDNkFCNDVGRDVDMDlBRDI3NERBRjg5OTI5RjU4M0NDOQorQ0NDMjRCREZDNjhCOTIxMTEwNTVBQkE1RjI2RDJEQzY3QzcwOTA2RjcxQzI5NTc3MDFENjVBRTc0NkE2MEMzMAorNDBFNkNCMjRCOTdGQ0RBRDA0ODdBRTM4QTIwMUZCRjBFNDFCQUJEMjE4MTk4MUE3MTk0MEYxRTcwN0Y5MUU1RAorQzhDQTUwQ0IxNkQ4NzAyRDE4OEU1NkQwMTREOTJGNzZDRTBCNTJBQkRCOTExMEUzMjQzOEQyQkJGM0U2QTQwQgorN0IwMDVGMTBCQjQzNzgxMkNBQzZFRDI5OTZGNzYwNkRDOTYyQzRGREUyMDdGRjMyMjc4MkMzNDNERjQ0Q0VDNQorRkYwNkE1NUM2MzBDMjBFOUFFMUIwRDFDNTY3Mzc1M0M0M0JBMDc2N0Q2NUQxQjQ1MUNDNjM4MEQ4QkIzQzREQworODFFOEZEOEFBNzlCRTk5MzIxODY4NkYyOUQzQ0Q5MjU1NjZERDU4N0Y1NDFBMERBMUIxQ0MzQkNFQTJFNkM3RAorNUUxMDE2RjY5MTdBODcxRjFCQkFEOTZBRjlFODY3NzM1MDE3MTE5QTM4MUZDRjMzRUIyRDNFMUU3MDkzRkQ5MAorQ0RCMENFRDQ4MThDRkQ5RTIwMUEwMzQzMENFQzcxMzYyMEJFMEQzMjU0MTU4OTMxRkI2NTdDNjg3N0MxQjNEMgorMjQwMzBGMzc3ODIwREE1OEY0Qjk1Q0ZFNjQ1MTA5RjNGMUI4MERCNUZBQ0ZEN0QwNUFFMjkwOUVFRkNGOTVBRAorOUNCMjg2QzhCNkMwNzVDQTIyNjdDMTAxQjczNjEzOTg2MzE4NkMxOTNFMzEwODVFN0M5RkQ4OEVGOEJCRUNFMworOTMzNTQyQzg1MzA5MDEzMzI1QjRCQkZFOUE1QjYwNjc4MEM4NTgwQUJEQTJGNUQwMDY0RUJGQzIzOTM5QjMwNworMDg1NjhDM0I3RjVGMDUzQkYzNjdERUJBMzQ5RkFCQjlGNzYwQzQ0RDEwMEJERUVGQkIwMUYyN0JGQzYxRkNEOQorM0JBMEM0QUUwRkY0RjAzQ0RCNjdBNTlCRjBGQTNFRjU2NUI3MUI2QjQ2NTY3RjQ3Mzg2QTM3QjczREMzRUEzQworODNENjAwNjU5Q0JFNUNGREM5Qjg0Q0UxMUQ2NTlEODMzNTJGNUI2RTlGRjU5OUUwRTI1MjQ0NzA5Q0Y5NDk5OQorRjQ0OTBGNzlDNzY2RkE1NTEzNkNEODVEOEJGNzkzMjAyRkREODEwQTYxODQ0QkNCN0FEQzU3MzZDMzM4QjcyRQorRjZCNkVBQ0Y0MDJFMjI1MDExNjJDN0I5ODVDQUJCRTVDRDY1M0JENEJDODgyRjNDREEzMDZCOEQ4MkY4QzI1NgorRDY2Rjg2QkI4RDgwMDU1NkFENTM2ODNFMzU4MTJFRDYxNDcwRjExRTg0NDRGMEE5N0NBMDk2RkEzN0VFNjNBMworQkJBQkEzN0QyNDA1NDlEOTVENkZBQTVFREU5ODY3RUUyQ0ZFRDdFRjkyOUI4MzNFQURFRkI5RTRFOURCMTlEOQorMkEwMTNEMzg4NEYxQTE3QUVCOTVEMTg5Q0VEMEY0QzgwRkZBRTE4RjcxNzMzNjk3MjAyRERDNEFDRTkxRTZCNAorNjAwMzMyRkI0OUY5NTM0NDRBQTcwMDVFNjVEQTc4N0VFMzk1M0VBMkIwQjkyODcyNjU1M0M3RUMxMzA5QzVGRAorN0IwQjdBQUM1QkQ0RTI1MzU4NjY1NDAwNDNGNUY2ODE1RDcxNzFBQzQ0N0VGNjNEOEI3OTQ3MUI0MUY1MEM5NAorN0Y0MDU0MTkyMDRBODBDMzM0NjNBQjAwMjA1RjUxNTQ1QzdDNkM3MjM1MDVERjY4MjM4RDI1OTFDMjVCNzYyNworN0ZDMEY0QTIxNUIyRjhGMjI1QTExNzYzQTk3QkMyQUMyNUUwNjBBQ0M0RDNENkQzREU5MDY1QThBMjE5N0Y3OAorRUMwQ0RDOUFCNjAzNkY4RTZFODNEMEQwOTlFNzgwMjlDNUE3NTVDMDBBNUYyNEI1RjZFQzQzNTU1ODcwNzQzMAorQzZDOTY2NTI2RjdBQkIxQ0Q2MzVCQUY0QkZEOTkwNDI4MjIzOUEyMjRFREFEODMzMDM0NEExNzk2RkIxODU4MAorOTY1RjM0Rjg4NUYyOENBRkJENTUxOTQxMUZDODMzQTMxOUY4MjY1QjhFOUE5N0FFMDY0QjEzNjRCOUE1QTNBMworQzU5RTE5NjIwQTUzRjgyQjEwOEQ5QzQ4RkQyNDBBNTI1MkQyQUNEQkY0NDk4OTczRTMxQzlGRjNBRDREOTQzRAorMDFBNkY5REVEQzAwNjBFOUFBOEVDMzhERkJFRUI1QTYzREE0QTZGQzk5ODFGM0VENzE4MThDNEYzQkJDREQ2QgorNDY1MjgyNDY5MUMzNjlEMTA1MjgwMUFFNzYxRUM4Q0FCOUVGNDZDNkY4MjBGODg4NzRCMUFCQjhGQjkwN0MxNAorMDNDODk5MEZEODEwNkMzREMxNDg4MkMzRjY1MUJCODlCOUU0NzlCN0FDQkI5NThFMzlDRTQyNzlGODE3M0YyQworNTAzNjlEM0VDNzlCNTY3OUU4RDNCQzQyQjQwQzg5NkIyQTczMTgwRTk0MzAyRkZFMEFBNUE2RDYwNjZDRUMzQworMTE2MTE1MTg5Q0IwRkU1QjA3MDBFODk4RDYyNENDNzcyRTkzMkI0RUNFQzg3QUI3REY5QjcxNDcxRUQ3Q0JBQworQjhCQTg0ODI1RTlCMkY2OTA0MEQzMUNDREQ2NzdCRUE1MUM2QjcxOEUyRDFCODZGNzE4RTNFNEYwNUYxRkExQgorNUIxNDI2NDEyRUMzNTM5RjU0OTlEM0YzMUM3OENBMUY4QzcyRjJFNzY3NDI4NkE5RjlCMjA4NzFBMEM3NkNFOAorRTg5Q0E0MTExRUY2NjI4RkVBNkZCRTdEMjA4NTMxMTFFQkM0MDE2NzE4MUI4QjVEOTczOTE1MDJDOTYwQUQxNQorNTk2RDZCMEQ4MUYzQjNFOTJBMjM4NkQzNzhCQzVCMjM2QkMzNTk0MTk2M0U1ODdBMDhFQzEyNkY3RUVFQTg2MAorODlDQjY0NEZBQzhFNzdFQUNFRDA0OUQ3RUUyNzY3NjBBQUFENjg0RTY4RDAxMjZDN0QyMkYxODBBMTMyRjk0MgorNUY2OEEwM0U3RUYwN0M3MEI1MERDODAyRkFBMDVCQ0Y5RTJFRjNGRjhCM0QzRjdDNTk2M0M0REZCRUI5RDExRAorODk5QUIyNTk3OTA0MkRFOTQwRjAyNTYxMjQ5MjY5QTAzOEI3NkVCQzI5RUNDRkEwRDQ0QzA1NTMxOUY0NzkyQworMkI3QjRDQzQ3QUVDNEM4M0EzNDlGMEYzQjI4MUJGNjJCNjJEQTBGQjBEOEYyNEE4Q0UxRjczMDI0ODE1QTgwMgorRTA4QjlCRkQxNEFCRDYxMUM3QTlGNzY0QzVGOTFBQUI1QkFGMkEyRTQ2RkMyNjk0OTVCMjM2NjEyOUUzREI0NworRDA5RTcwNzU0OTkwMEMwRDE1NzhGRTYwMUU4RUI4MDNDQTZCQjgwQ0M1QTQ4OEY5QjdGMUQ5MjNEQjVEMDZFMworQkYxRTAzREJBREE3MDE2MzlBMjFCOUNEQjY3QkE4QkY2MkQzMDhEQjRDNDYwREFGMThENDYyMkFDMDM5MTJCMgorNEQ5MDRENDE2RkI5Mjc2MDBCNDJGMjcxREUxNUY3Mjg2RTUyRTUzREFENEYyQ0VGQzU0NTg0NUUxQjdBRkYzRAorOEIyNUZEQkI2RTcyMTU3NjlFNDIyNUREMjg0RjZEMzdDNzg1RkRCMEM3REYxODJCNTRDNDQzMTAwRUM1OERGRQorMTgxNjRGRTY1M0I5RTU5NzcxNDhBNkJGNzdCRDA4OUVFQjgyODYwMjRBNzE5REI3MjFGNUQ5RUZDNDZFMURCNQorRERFQTNDRDg4MzE2OTY4NkYwNTM0QjM1RUM5MUJCMkJBNjk3MUY5RkY0NEU4NjkxQTlEOEM4RThDMDI2MkE2QgorRjIwQjE0OTcxNzRDOEE4RkY2QjNBRjEzMjNDNTlDQkE0RTM0ODlCRDg1MjdGRUE2NTJCNDA0QUI1NTJEQkFBQgorRjVGQkM0NEQ3QkNERTQ5NTg5NUE1MDUxNkM2RTlBMTBCQjg2OTFEQkFCMjk1MDZENzAzMTY3MTM0RDU2N0Y4MworOTUxNDE4RjYxMUNFNzMyMzY1OUVFNjBFQUNDODAwMEY2QkIwRjc0NDBDNjVCRTk4MEQ4Mjc1MkNDMzgyMzE2OQorRDJDOTM0NTE0Q0FCNzFGQ0Q4QzhGQ0UxMzlCQTAzREI2QkM3Qjk1NTdFN0IwQkRDMTQ2ODFGRjMzNzBFRDJFQgorQTFCOUMzMTVDMDM1MjhBQTM4MUVDRDM4OUVCNTM4MzMwNzQ2NjhGREE1REEyMjgyRTdFNDQzM0ZGN0I5NDQ1NworQzNBQTI4NzRCRkY3M0ZCMjFBNTU0NDFEM0REMTE0ODlCNUUwQTRFODk0NkQzRjI3M0VERjVBODQ1NTg3QTQyMgorMTkxNTY5NkEwRDFCN0M4Q0JDRTNEMzAzMUE2OURCMzEwMUFFN0Y1NDc2MjhCRkYzOEQ4RTM4M0RBMTZCNTJGMAorM0Q0MjY3NkFCNDU5NzY5RjJCRDUwQzhGM0NFN0E2REMwNDMwQUMzODU2MzYwODc3ODNFOThFNkE0NTgyMjkxQQorRjM0RTNGNjEyMEU1RTIyODJDNzY1RTk3RjhBOTlFQjkyMkJFOThGRUZFQjg2NTg3QzYzRTlCMTAzOTlGMDBBRgorQ0RBQkFGQUQ4QTFFRTM2NzE0OUM0NjE4NTgyQkM4NURFNUQ1N0ZFNkI3RTgyNTRFOEI5QUJGQjlGNEFCODYzNQorNzRBNDQ5RjJBRUMzNUE4NEFERjRFQ0E0OTQwQUEyQUYxMzZEQTYwRUI4Nzk3RUE3MjY3NjM5NzQzNzY4OTNDRQorOEY3OTlFMUY3NUZDMDEyRDRBNDFCRDVBOUE3NjZDRjIzQkU5OENBM0QzMURERUM1OUYyNkU5RTY1MzFBM0JENgorM0Y0REVDOTU0MTY4RDBDRTk0ODMyOUMwREZDMUYyMTJGNzgxQzMxRjg0NDg0RUJFNEFCRUE1NTkyM0M5RkJERQorMzRCRTZEQzAyQjFBOUUwRUE2QUM5RjBEMDcxMEIwRTg4QUI3RTZEODc1MzQ1MjJEOThFQjM5QjQxREY5RDk2MAorQ0VBNEE2NUQ2MzExQzBBQUE2RTE4OTM5OTIyMkVENUIyRjE3MjhDNzIxOEU0NUU0OTkyMzQ0NUZDRDg1ODYzMworQzgwMTk5MjkxNzBDNTBCREY4NDExODIyQUIyNzU5QTNDQjM4OTA4RTFDRDU1OThERDg5RjY4REYwQjkwNTIwNAorMDMwRjE1QzE2QUQ5MzhEQjMzODkwMjYyMzRBRjRCMDY5QjlFREVENTIyMTVBQTJCMjFBQzcyRDUwNUYxRUI1OAorODhFQTZENjFFODE1RUJEODNEMUJBN0E2REVENkY0NUE4RjZBRTAwMzlBRDQxQzg4QzQwNDkyOTlDMUJFQkRGQgorQTQ2NEMyRjU1RUMwNjE5MjZEQjkzREZDRkUxOUEzM0Y5RURBMzk3MUZGMTY4MUZDMDAxQUQzNzQwN0ZBQUNDNAorNTZDQkEyQzQ1MDMxQUJGQjFFOTZFNUFFMUY3RTQ2NDVGQjZBRDEzNzAyNDUzRkI3OUFBRThFRjZCNUQ2Q0E5RAorMUIzQTM3RDRFODBFOUFDRTU3QkY2MjQ5RTNEMURGMzY5NDVEOTQ5M0ZCRjgzQUY3QkI5RjAzOEFFOTZEMzY0RAorNzNDMjEyMDU4N0NDNkFFMjYwMzI5RjA3ODZCRUUzRjI4MkFDRjQxRkQ3REU1QkY4RTdEQ0ZDM0RCMTlFMDlCMworODVDREZGQzVEOTYwOEIyN0Y2QUJBQjJBMENEMjVGQUUxODNEMDZFN0U1NUMwMDJCM0E5MjAwNjMyREQ5RDk2NAorRTgxMDlFQUM5NDZDNEMyNzIwMDZDREJENkNEOEMyRURCMEJDQ0VCN0M1QzI1QzlCNkM3RDg4MTc5NDUzMzUwOAorMjAyOUE5MzZEQTkzNUExNzgwMkYyRUI0MzhCNTQyNUNFRkI1MUNFQzk0QTdBQjdBMTU1OEYwQjEzMkY1N0RCNQorQUJFMzRCNUVEMjM0REIzOTRENTc2NDgxNjczMDcxNEFFM0FGRUQyOEZGMDY5Nzg5Q0Q3NUI3MENCN0VEMUM3QgorMUQ5RjU0N0JGNjIyM0M4OUY5N0M2MkQxREIwMzIyMUE3OTg0NjIwREFGNjhFQkVCOTM0RTJDMUVGNEU5OTAzOAorMEJDOURCQjYwQjg5M0Y4MDc4NDgwRjVCQUI4MUE5ODFGODQ5RkJCOEI2RTlFNjQ1ODlENEJDNzc3QTQ5M0IwOAorNTcwNTc3RjU0MUJDQTg0Q0IwQUFGQUQ0REVGRUNFMjI5QzdFNTA3RUUzMzJFRjdDMjMzNUU2REMwRUI3MUY3OQorMzhFRjE3RURFNjgzMDk4MzQ1MjdFRjlFRjkyQzYxOTIyRTU2MjExODREODUwQTk3NDM3MzMyRkI2Q0Q0MDEyMworQzU2MTUzQ0FENjdBNjM2NTQyMjFCREQ1RjNEMDRFQjI1RDM3MEEzQ0VGNTk3RDVFQzY2NDgzMURFMkRGOTlGOAorQ0Y0MkI3RTY2NTg1MEMzMDYxMEU5MzQ3QUY3QThCMkQyRjY3NTRFMkM4ODA3Q0EwNDkyNTM5NDlFNjNDMEM5QworNjhGQ0UzMjA0NjQ5M0IyRTlFMTYyMkFDNjVGMzBBRDE3Q0JGMzk4NEYyREFFMkI2RDExNUQwOEEyM0IwQjJFOAorQzA1NjhFMjM1NDNFOTNDNzQ4MEM5RDczQTcwNjJCMTJGNzBGMEE1NTZGRDE5N0I5MkFDQTBGRDYwRDE1NzIzNgorRkFENTFEMzZBOEI4RDFFODFDNzY4QTg4QjJFOTY3NkU0NTNGODkyMzFERTgwNTg3N0VGOUE3MUIxQUU4MDY5OQorMUNEMEM0NjNFQzE1OTZCMzJCOTg1REJGQTk3MjVBQjMxRDIzQzQwMDEyQjQ4QkNBNUQ5OTI5NjFDMUZFRDVFQgorQkVGQkNBNzk1MkFFNDY4OTJBMURCQjhDMjVEQUQyMkNBRTQxNTlDQzlCOUNGRDI2QkM5MUVBOUU0QThFNTBCMworNkIwNEIzQzc1Mzk4RTRCMzAzOEJBOERGODhDNTE0MDRFNTJFQTVFOUJENkU4N0YzNUYzNzI5NkJGQkUwQkVFMQorMDcyODlCQUMyOUI3MjUxMEY2REUwMjE5QjYzNjAwOEY5RDUwNjI0OUZFRDNENThCMzNDQjQ3Rjk3NTQwODlEOAorNDc3QjU1RTYxQjBGQkZDNzE2NEI0MEIyRkVBNEU0NUY5OTY2RkQ3QkRENzU4QjI0QkRFOTZEN0U4RkM1RUVEOAorOUZCOTFEMDNBNTEwRUM4RDIwNjNDOTE0RTIyNzQ5N0E0MjUyQzAwNTU0RDc0NUQzNUM3RTJFNTlENEEwM0I5RAorNjZFNzJENjI1OTdDMUZGQjhGOUE1ODg5QzE3NjZFNjcwMTc4OEU4MzgzQTBGOTI4N0NDRDc1RTcyRUZGMjBCQworNzAyQjYwNjMxNEJBRjk1Njc2RkI2OTYzMDJEMjVGMUIxQkY5NDE3MDQ2QTM3RDUzODU4RDJCOEE1QTNGRkVFOAorRkJDMjQ1RDZGOTNERkEwMTQ2MEY5ODE0N0UyRDE1OUQwOUM2MkU3NkI2N0U1MTM4Mzk3NkM3Q0U4NjFENDA0MQorMDc1Mzk0NzkxMDE2QjFFRkI2NDI5QjRGQjkzMDc5MjkzOTgyMEFDMUM1NTNGMkIzRTY2OTFFMDlGMDYzMjY4OQorRjU5QTFBODgzOEFEM0Y4Rjc1OEMwQjc5RDVERTRCRUU4NjQ2MzMyNjRCQUYxMEVFRTBFNkQ1MDFBNUVFOUVFQworMzc1MENENkM5MUZCOUY3RTY3OUEwQjAyODg1RTg0Mzc3NjQ3OTdCQ0MwNjEzOTA1QjlDREVBODc5MThEOUUzMQorRUM2M0Y0RjE0NjRERURFNDcwQzUyNzE3NEIwNzk5NzkwODVCQzAzNDMwQ0NBQzdBOTJGN0RGODNEQTJERUNFMgorRDc3MDk0OUIzRjNGQzEwMTJDMUVFNzUzMUU4NjM3NTMzNTA3QUZCMjA4NjlGMTMyM0VCOTg0MDZEODYzMUU1RAorRUREREVGNTdEQUU2MEVEQjI2QkY2NkRBQjE4NTYxNkQ0MjQ1RDBGQTkyQTMxNEYzOTk1RThDNzI2MTQ0MzE2NQorQTgxRTI1MDM1N0Q4NEEwNjQyMzk1RDA5QTAxN0UzMjRBMzgxMDQ4RDhBOUFDN0Q0MkY3RDFEQzQ3MTI1MkUyNgorRENGQzI1RUFBQkU4QzEyRTU5MDQ1QzBCQzJGNzkwQzhDNzFBN0JCNkMwRkFGOTE0OTQwQkI3ODMxMEMzOEE1MgorNzRBNkEzRDNCMTkzODIxNzFCOEU3QUY4QTlDQUUxMDUxMkU5NDJEOTI4QTUyRjEwRDQxMzRGQjY2QzYwQTkxNQorRkI2NjNBNkJFMzFBQjI3RjZGN0FGMkYxMjFGQjZCRjFBQjc5Qzc2RUVBM0JCRENBMzkyRjRFRTY0REY5M0VDNAorQUY1RDI1MjhFNjZFQ0E3N0UxMzRFQzNENDM2OEUwQUQ4MDU1RDc4MkQ1QkNFMkU0M0Y1ODMwRjM0QUQxRDY0QgorOTc5N0RGMTQxNjA0NjMyNjI5MERDRURGM0VBMDcxNzUzODFBOEMxRDI2OEI1QTZFN0M3Qzg2NEFGNTlFRTlBNworMUUxMDQyRUU1RjIzRDMwM0RCMUIwQTk0MEQ3QzQwOTUwQjRGN0M2MEE3OEFFNjM3CiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCitjbGVhcnRvbWFyaworJSVFbmRGb250IAorJSVCZWdpbkZvbnQ6IENNVEkxMAorJSFQUy1BZG9iZUZvbnQtMS4xOiBDTVRJMTAgMS4wMEIKKyUlQ3JlYXRpb25EYXRlOiAxOTkyIEZlYiAxOSAxOTo1NjoxNgorJSBDb3B5cmlnaHQgKEMpIDE5OTcgQW1lcmljYW4gTWF0aGVtYXRpY2FsIFNvY2lldHkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisxMSBkaWN0IGJlZ2luCisvRm9udEluZm8gNyBkaWN0IGR1cCBiZWdpbgorL3ZlcnNpb24gKDEuMDBCKSByZWFkb25seSBkZWYKKy9Ob3RpY2UgKENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZCkgcmVhZG9ubHkgZGVmCisvRnVsbE5hbWUgKENNVEkxMCkgcmVhZG9ubHkgZGVmCisvRmFtaWx5TmFtZSAoQ29tcHV0ZXIgTW9kZXJuKSByZWFkb25seSBkZWYKKy9XZWlnaHQgKE1lZGl1bSkgcmVhZG9ubHkgZGVmCisvSXRhbGljQW5nbGUgLTE0LjA0IGRlZgorL2lzRml4ZWRQaXRjaCBmYWxzZSBkZWYKK2VuZCByZWFkb25seSBkZWYKKy9Gb250TmFtZSAvQ01USTEwIGRlZgorL1BhaW50VHlwZSAwIGRlZgorL0ZvbnRUeXBlIDEgZGVmCisvRm9udE1hdHJpeCBbMC4wMDEgMCAwIDAuMDAxIDAgMF0gcmVhZG9ubHkgZGVmCisvRW5jb2RpbmcgMjU2IGFycmF5CiswIDEgMjU1IHsxIGluZGV4IGV4Y2ggLy5ub3RkZWYgcHV0fSBmb3IKK2R1cCAwIC8ubm90ZGVmIHB1dAorcmVhZG9ubHkgZGVmCisvRm9udEJCb3h7LTE2MyAtMjUwIDExNDYgOTY5fXJlYWRvbmx5IGRlZgorL1VuaXF1ZUlEIDUwMDA4MjggZGVmCitjdXJyZW50ZGljdCBlbmQKK2N1cnJlbnRmaWxlIGVleGVjCitEOUQ2NkY2MzNCODQ2QTk3QjY4NkE5N0U0NUEzRDBBQTA1Mjk3MzFDOTlBNzg0Q0NCRTg1QjQ5OTNCMkVFQkRFCiszQjEyRDQ3MkI3Q0Y1NDY1MUVGMjExODUxMTZBNjlBQjEwOTZFRDRCQUQyRjY0NjYzNUUwMTlCNjQxN0NDNzdCCis1MzJGODVEODExQzcwRDE0MjlBMTlBNTMwN0VGNjNFQjVDNUUwMkM4OUZDNkMyMEY2RDlEODlFN0Q5MUZFNDcwCitCNzJCRUZEQTIzRjVERjc2QkUwNUFGNENFOTMxMzdBMjE5RUQ4QTA0QTlEN0Q2RkRGMzdFNkI3RkNERTBEOTBCCis5ODY0MjNFNTk2MEE1RDlGQkI0Qzk1NjU1NkU4REY5MENCRkFFQzQ3NkZBMzZGRDlBNUM4MTc1QzlBRjUxM0ZFCitEOTE5QzJEREQyNkJEQzBEOTkzOThCOUY0RDAzRDU5OTNERkMwOTMwMjk3ODY2RTFDRDBBMzE5QjZCMUZEOTU4Cis5RTM5NDhGRkIwQjRFNzBGMjEyRUM5NzZENjUwOTlEODRFMEQzN0E3QTc3MUMzMTAxRDZBRDI2QTA1MTMzNzhGCisyMUVDMzY0MzA3OUVFQ0UwQzlBQjU0QjQ3NzJFNURDQTgyRDBENEFDQzdGNDJGQjQ5M0FBMDRBM0JGNEExQkQ2CiswNkVDRTE4NjMxNURCRTlDRkRDQjFBMDMwM0U4RDNFODMwMjdDRDNBRkE4RjBCRDQ2NkE4RThDQTBFNzE2NENGCis1NUIzMzJGQUQ0MzQ4Mjc0OERENEExQ0IzRjQwQ0IxRjVFNjcxOTJCODIxNkEwRDhGRTMwRjlGMDVCRjAxNkY1CitCNUNDMTMwQTRCMDc5NkVFMDY1NDk1NDIyRkJBNTVCRUU5QkZEOTlEMDQ0NjREOTg3QUM0RDIzN0MyMDhGQTg2CiswQjExMkU1NUNFN0IzNzgyQTM0QkMyMkUzREUzMTc1NUQ5QUZGMTlFNDkwQzhFNDNCODVFMTdFQ0U4N0ZBOEI5CisxNDg1ODMxNjI0RDI0RjM3QzM5QkY5OTcyRDc0RTZFQzQ3ODQ3MjdBQzAwQjlDNEEzQUQzREExQzIyQkQ2OTYxCis3RTBBREFGNTU0MjJGMjJBQ0E1RTREQ0Q0REY5RkNEMTg3QTU2NkI3RkI2NjFEMDUzMDQ1NEQwREQ2QzZDNTBBCis3QTM4NzVDNkNCRjhFQzc3NjlGMzJBMUYzRjdGQzFDMDcyQkFERUM5Nzc5NEQ0RTkwRTAwMzUyODJBMTcwNDAyCiszNTZFNUE5Q0Q5QUJEODBBQzQzNDJBNTI4M0U0NThBNzI2OTI1MkY0NTQxQ0JCNjQ1MkIzOUVENTREMzM2RDBCCisxOTkyOEU5Q0QxQUIyNkFEODNFQjIwOUUyRUM3NTAxMUEyNjQzODEzMDUzQjVEQkIwMjQ2MDk3QzQ4MjFCNUYyCitDOTI1NTRFOTE0MEJFMzVCMkRCRkNEOTg4MDlBOEVDOUZDOTEwRkRFOUUwRDg2NDU3QzcwQUNCMDU2RUJGOTBGCisyNDREQzBBNUJCRDQ1NUUxNUQ2RTMxODAzMTFENTJDRjUwQjBCRjdEMEE3RjY0RjNBMTgyMUUwQUVEQkMyRTdCCitBRUI1NDlGRTFENTEwODhDMTUzNzk5QzZFMDg5QjVENUQ2NUUxQzRFMkQyQjQzMENERjFGRkEyM0NDQjI1RDk1Cis1QzRERDg4NTMxMEE3MDZCMzIwQUIyNUM4RDc0MkM2RjI5OTUzMjU0RkE1NERBQUVFNjBFRDQ3Nzg3N0QxOUJDCitEMjhFOUFCNTc2QjBFQTA4ODE3MUZEMDAwQjYwRDczQjNDNTdGNzU0QkMwN0VCQzlCRjc1MUI3RDJCMzI0NTlECis5OTM4NjFCN0M0QjBEOThDNDIyQTExQkVDRUY3NkY0RUZDMEVDQUVFODk3MjNFNkNFRDUzRTM2NzhENzMzMzYzCisyREYwNjhBRUYwRkU3REZCNTczOTNCREFBNDM5QTZBNEMzOTZGODYwMzJBOTgwMDlFQUUxMjQ3QjdERTgzQjNCCitFNDZERjI4OTg1OThGRjVFNkNBNjk1MzEyNzQzMkE5NjdFNEZENDFDREQ2MEQ2RTQxMzA1OUE1OEZBNTU2RUYzCiszMDkxNzhCNTdDMTZBNzYzQ0ZDOUJFRUMyNzY5NDRCREVBMjU1Nzg5RUY0RTFFQ0RFMUVBNDNFRURCOTU1NTEzCitGNDJFRERDRjM5QUU1MjJBMURDMkQ4MEIyNzcyQjA1REE2MEYzREMxNUE4MTVBNkJBRkVEQzM5OUM3OTU2RTc1CiszODUxQ0IzNTg4RTIyOTM2RkJGQjYzQTU4MzAwMjk4QjExQzQ1RDgyMzg1QzA4M0QwN0FGMTMzQkIxQkM5NDFBCitGREQ5RjM0RDVFMEI4MDg3RUYyQTU4QzU0RDhBQjc1ODBFRTNFRDU4QUVCODNCNzJDQjkwMjhGNDcyQURCRjExCiswNUE3NzY1MUYxMTg4MjRGNkNEMDAyMDlFRkI2MEMxRDMyRDQ2QTc4RThDOERDQjhCMEU3NDI4MjhFM0I3RDE3CitERjUyMDBENjgxODlDOTFGQjg0ODlDREVFOEJDMjIzQzQyODFERENBNUY3REE4MEJENUMyRDY2QTE0Njk1RUExCis1RjA1RTAzNTAwNTc5QURENDQwRUQyQzU3RjUzNTgwNzU2MEM2RkUzODczMTQzRDc5MjczNEZFQUI5M0FFOERECis2MzNCQTZGQzU2ODMwODM0MDJCRjA4NkQyMzU5NEFBQzg0QTQ4NjhBRkFBMzJBRkJERjg2MTQyQjM1MEY4RjYyCitFMjUzMTMyMUU0Q0NGMzQyOTMwMjRFRjhBQjYxN0JBQjExQTNBNUVEQTAzQ0FDNUFDNDMxQzg5MzYwN0RGOEU1CitDM0RDODY0NjAyN0E3NTU0NjI1QTE2RkQxODRBNzBEQjVGRTZEQ0VBMzY2QjY0NDMwQTE0NzE0NENDOTgzOUY1Cis3MjgyOUZGQTQyQkMzQTg0MDZENjgwRTQ0QTAzMDVDOUM5RTI2NUU5MUFFODJFREYzMEY3MzczMERDRDRBQTIxCis1QTdBOUQ2ODI5N0Q4NEIwMDExREREQTZBNDREOEU2RjBCNTExM0FGQUU5RDNCMEY2NkQ2RkI4NDgxNjBGRjEzCis0MDIxQUREMTU1Njk3N0I5QUM5NUJGODExNDhDMUZFNzZGMzk5MkJDOEIxREFCQzJDOEY1RkJCRDRBMzkyMUJCCis3MERERjMxNEQ3OEU0MUYwRUQ1NjcyMUYzMTNBMjA4RkYwNTAzRDg1RjEyNTk1NUFEODY1MTNGRDhEQ0RDMDkzCis5RkEzQzI5MDc2RkEyN0I1Qzc0NTE2MkYxNEFGRTdFODU4NjAzOEUzREI3RTJCRTIwRDgxQTNERjFCRTA0REIyCitCQzU0QUFDOTI4M0Y2RDkxMTA3RjBFNjQzMTBDNkUyODFGRUIyMUVFNUI1OTRBMDUyMjU5Qzg3QzU1QTU5OUMxCitBQ0Q2OUY3RUU5MDJDRTc0RTkyQzQxQTFDNDZEMDY5RjQ3NTMyMTEyRkMxODNGQTE5Q0JDQzdFNzI2NzE5MDE0Cis1REI1QkFCODU1NjcxQjQ4NTNERTZGMjQwMjg2ODMyNEJEMDMyQjFBNkM3NjhGRUNGRTE3NzBCNjU1MzM4RUIwCis2MEJFMTFDMjJDMDZDMjRCQUE5OUEzRjIyNzRCRTY4RDIxQTczMjhDQzMxOTBEMDAzN0Y1MTZCNkFGNTU1RTg0Cis2RTk3M0M5ODhCOTYwNEU2RjFGMDlCNUM2RDc2MkQwMTlERENCRDYwMTBEOUYwQUY2Mjg1QUJFMjVFQjdCOUY5CitCRkY5OUQ3MkM3QTQ0MDBERjk3OTE2NDNCNUREQTk1MDMwQzM2MjVBQjE0RjNFQTU0NzczNjNCQjk4RDRDRDJGCitBOTAzM0IxODA3Mzc2OUQ2NDBFOEJCQzRDRTlDODMwRTAzMjU0MEVFNjNFNEYwMERCOUQ3MjBFQkYyNDgyRkIxCisyQjgzRDhERjdBRTU2QkQ0NTg3NkUxNkQ3NEU0Njc2ODA3NEFGOEU0OEQ0RTMyOUNGQzI0NDlBQzk5OEY1MjkxCitFRDg4RUE0RjU4Mzg4N0RDRUQyNThGMzJCMjAyMDlBMDc2NzA4Rjk3OTA1QzE2QjUwMDk0NTUyNDdGNDEyNEI5Cis0QzcxN0U0QzEzNjY0NDA5OTU1MjU0ODY1QkEyRDM4MEI3RDc4MDVBODkwNzlBMkE1QTYwQ0E5NDYwMkQ5OUVFCis2OEJCMjE5RDlGREY3REU3MDkwMUI5REE3MjZBMENCOUI3NjU5ODE5MDcyNEFBNkJBRTIyQjFFNDdBQTAxN0M4CitEOTI4MEQ1ODJDOUMzNTc2MDY1RkE1MUM1RDgyNTk5Mjc1OUE0RTIzRDM4MDg5NTQ4OUE4OEZCMzA5M0M2N0JECis0MTcxRDVBQ0MyNDkyQTI4OEU1QkJEMEEzOEU2RThBN0I4NjEzQjcyNDI5QjVDOUNDMUZGRTFEMDVDMTc3NzA0CisxMjdCMTE3ODYwMjcyQUYzNTc0MDE3MDFFRTk4RTEyNEU4RTg2NDUwRjMyNDA5MTlEQzJENjM5MTQ4MTNBNjRDCis5RUI0QTY1MzAzMzFCRkMyQ0RGQkZCRDkyQjVBMTNBMTg1RUYzRThCNDFDNTUwRkNBNTI2NkIwRjU3QTBFMUU5Cis2NzZBRkZFNjU0OENDODM0NjUwRDc1OTZGM0Q2OTRGMjA4MzY1NDc2OEMwRjY5QjNEMDQ4Q0M2NEExN0E4Q0E2Cis0NjhCNEUwNDgxQ0QwNTA1MzUyOTZGMDRBNDRGQ0Y2RURFRDIyMDk3RDRENzhBQzE1MDhBMkIzMUMyMzg4RkFBCis2MzgzODg5NzVBNEYwNzQ5QThENjFEMzAzNjVBNDk3QzUyRTQ5Q0ZFRjExQ0FGRDVDOUI0QUYxNzQ5RjQ4MURECis2NDE0ODVGNEY4QkNENTI3RjA0OTUwMDA3RDk4MUFFNzMzRjgwOTFBMUE0MzQ5OTA2MTU3RTVGQ0M4NERFOEYwCiswRDlCQkUwNzg5NDQ2MjZFQTdCOEU1QkIyOTJBQkUyOTEyMTAyQUJBOTc2OEJBNDFFOTFFRkE1ODczQTVEQzRBCisxOTVEMEFFNTc0ODk0MzJGMUFERkExMUUzQzQyMDE3QTVEMEVBMTk1RTI2OTQzRTBCNzhBREE0Q0MzODg4NjI0CiszODcxNDQ1Mjc2OTE4NDVEOEI4MDRGNjU3QTE0OTI3RjhDNzMxRDBGM0NFRjM0N0Y3OEMzOEU0MEU3ODhERjI4Cis1OTIxQjVGNjUxOUJFOURDOUYzODEzQUIzMDZEREVGNzQwQTcwRkUwMzNCNTAxMzBGNUE0NkZEMTBBMjNBMkZGCiswNkFBRjY1MEM5QjBFQzc5NThCNkY4MkFDQTlCMTMwOTM0NjM1REFCRjI3OTgwMDQ4NEFFODI2MjE0MTM4MTBBCisyMUM0NUNBRTE1RjRCNkE4MDJDNUUxODc3MjZDODhFMEUzNTIwMDUxRDFGRkUzNUFFNTMxQzAyRjcxQjBFRkIwCis4MEUyMkM0RTdFQjlBRjNBNTRFMjYzOTFBQTExNkNGOUY2QkQ2MEUwRkYxMDhGOEI2Q0E2REI3NEY3QkI5RjlDCitENjcyREVENzNFRTVEOTNDRDQyMEU3NkE4ODQ5RTJBMkFCOUEzRUZCRDY4OTkyMEQzNDU0QjEyMzJBNzQ4NERFCitGMkY4RjkwRjcwRkZGMzQ5MzE5RjI4MDUwMkYyOEYxMkQ1RjMyMjM5NEYxMjI2NkMxRTc5RUZGM0I1NjA1MjQ5CitBRUEwQUVFMTE2OEZEMTgwRjgzOTQ3NzI5NUIwNEJBNjhCOUM5RTI2MEQ4MDkyNzI1M0VERjU1OTIzNjk1OEFBCiszOTRCREUzREY2MDZFNDdDMDlCRUI2OEY1RTUwNUVCMjMxNURFODkxRTM1NDZFQUZENzgyQzg5RkE5RjlBNTZECitCMTFCOEREMDAwRTQ0MDNFNjk4RUM3QTc5M0RCMjk2NjU4NDc2NEI2MzNBN0FDRkZFNEJGNjJBOTkyNjQzMURDCiszNzgwOERGREJEOTdBQUU5REY2QjVBODYxRkIxMkFDQ0E1OUU4NDU0NERGMDdCQUQ1OTkyNzdDNzI2NkQ5ODZCCis5QkNFRjZDMzgwRDBEREI0QjE2QTc5Q0M4OTQ1NjI4NTI2N0VCRDUyM0VEMjk3MURFNTBGNzkyNjkzQzFFMjE5CitGMkM1N0VEQTgxQUJGM0U5Q0MxM0NGMTE5N0YyQUNGNEJGOTU5N0FGRDdDRkVCRDEwOUNDMEM4NkJFODEyRUY2CitGMEE1RTQxMkFBMDI1RUVEN0JGN0YyQzFCQTgzNUExM0VDQ0E0NzRBOUZFQjg1MzgwN0IyNzQyNzAzMDBEODE0CiszMzMwRkIwQTZDMTdGNzIzRjEyNzI2NzdGOEY1QjI4MzcyQjkzMTQxOTBBNDhBMEIwMEU4Q0U0NURENjU3RTY1CisxMzQ4QUMwNjhEMDIxMUM2N0Q4NUYzMzQ2RjlENUQ3RkFCMkEwOEQ3QTAyMjk1MTYzQjZCMDQxNjYxRUE1QTRDCis3MjNEQkNERkM4QTQ3MUZEMzhDNDJERDJFMzJEQjc3MjFFM0ZBQUQwQkVBRkI4NTg1M0MxRUY4Qjc3MDJGMkE1CitEQkVENzVBRjgwNDBCRkYxRTlGRjM2NDMyNTlFNEU3Rjg1QTM4RjQ1REZDMDlCN0MzMzNBQTQ0QjJFRUMxRkZECis5OTNEQTFFMjg2MEJFRDhFRTQxRkEzNDU0M0RGQzBENzYwRTBBNDdCMTExNEEyNEVFMzM0NkM5M0E0Q0VGNTJECis4QUM5OUU2MTMyQTMzMEFFMzQwQkVBMkVBMTg0MEJBMTUyQTcxNzJCMTQyOThCRUIzMThBNkZDMjE5MkRBRTVECisxMzdDMTMyM0U2RDFFQkYwQjJDQzc0OUYyMENBM0FDMzUwNDkyNzI3OUQ5RUUzRUY5NzEyNzYxOUMzNDM5RUE3CitDMjgxMjRGQ0Y5NkY5QkVGNEE2QUM5NjBDNDRFRThGRTA2NzczNjZGQzI5NUE1RUFCRTM3MEEwOUFDNTQzNEFBCiszQUFGREI4NjE0QjZDMzE4N0M3M0M5Rjk0QjYxQjM2OUNENzAyQUFDNzgzMzY3RTdBNjdBRkU1MEU2MjFFQzkyCis0Mjc3Q0JDMDg0RkREODg2NUQ2MDQ4QkZBOTkwQjcwQzNCQUFDNkY0NDlGRThEMDA2RENGQ0Q3RUMyNzU1QUM5Cis4MTBGNEU1N0I2NDY0OUQ3RDFGOEJGMjFENzY2RjU2NUFDMkE3RDExMUVBRDYwQURBMzE0MUNGQkVBQzhFMTM5Cis5RTQ4RUM3MjQ5NTY0MjE1QTczNjc5MDk1RTVGRjFEQ0NGMUFDMEM4Q0VFNEUyMjU3QzM4NEYzRTVFRkFGODU3CitEOUIzQTA0MzExMkQzRTMzODNBQjk1RjFBRjEzMkQxNTZFQzg5NDQyMjA4RTFEOEY1MzE4M0NGODgyREYzNjgzCis0NEQxMjM4RTI0MDAzRUNCNzQ2RDkxOTIxREYyRkEzM0IwQUU4NDExMUJFNTRENjJCRTk4Q0M4RjQxOURDOTFECitFN0U4QTZENkEzNzFGRDc1QkExNjA0NjY2MDZEOEVBMTNGRkMxNkZDRUQ1OUUyQ0JBQUUwMzNBMDkwQjk2OTAxCisxRDc2QzBDODYwRDIwNEI4MjZDMTgwRTU4ODdFNTIwNDEyMDZGNkRGOTFDMzZERjZGMjM0MDIyMTZEMTA4RUM5CitDMjQzOEVCMzAyMzc2M0I1N0YxQUEwRTQyMTQ1MzVFQzQ5NzcyNTUzOTAwNjZBMTlBNjFFMEMzRjNFMzk0MDlECisxOTE2MDEwMzA5NUREOTlDODcyQThCMUIzMzlBRjBGRTU1MUJBNjY3REE0MjlDRjY0QjM4MTUwMkJFQjE5RDgzCis3RTBCNjA3RjE5NjA1OEM4NzQ2MTdBRDkwQjVCREM3OTE2QUQ3MDZGNjk2QUMxMzUzMEQxMTFENzBBQjMxNDA5Cis3MjAxOTNDOTAxRjY1NkVBRDc4MUZBQzNGRURFQTdEMTBFMEY5MEY2MTM2QzAwNUNBODNBNDFBNkQ1QUExQjVCCitDQTI1MTQ0RTNBQ0QzNjUzOEU4OTVDQjU2MjM3ODg3NDcyQzIwRDBDQ0U0MThERjM3ODFGNjBEREY5Q0E3RTk0CiswNTFGNEZEN0JDMzA4NjdEN0NDMzcxMTg1NjlFOURCRDZBRUVENjVDRTA0ODk0RUI4QTFBREMyNTYyNjYwREQ2CitBQjkxQTIxNDQ1MDlCOTNBOTMzRUQ4NEYxNjQ0MURDQjdBNEM0NEU2QTAwMEJFNEUxMEM4NDNEQTMwNTVDODEzCis1N0MyMEI4RDYxOTgzRTc1RjcyQjlFRDUzMTlFRTk1QUQyRDM3RTU4OTUzMDA3RENBN0VFODZDQ0ZGRTVCRUNFCis2QkM5RjAzQ0E0N0NFRkU5RkQ1QkU1RTA5QTA3MjE2RjVBQ0Q4MjYzMzk4Rjk5RTcwODgxN0JGRjI3MTk0Q0YwCis1Nzg4RjJFNzA5Q0JBN0Y3NTNGNzRDMDgxRDMwNjhCQjA5NUYyQjQwNjM1Q0U2NDA0QUM2RUJEQUZBQUNEMThECiswNDAwOEI4MTU0QzM4ODI0RDA1QjgxRjJBM0Y3Qzk5NTE2Rjc5MkY0OUM3M0YwNDU0Mzk0MTYwQjE1QzRGQ0U0Cis0RDRENzY5REMyNTU5QzAwQkUyMjRGRjUyQTlFQUE1NTBEQjZGNUY3Mzc1QjkwMEYxODM5QUIzMTE2NjkzQUZCCis2NjkyMjhGOUIzMTFGNkRBMjRCRTA4MDRCNUM2QjI4NTFCNUFEQjZDNTczMTlDNEMxQ0M3MEUyM0M1Q0FENkE3CitCOTAxOUEyMUQ4QjUwODAxQjg5NzdCNzY2Q0Q1RDRFMUZEMzdCMTk4NTI5MTlEQjIwMUZEQ0UwN0FDQkJDQjY3CisxQTNEMzRFNDAxNjVEM0I4NzY1OTM5NDI5N0JEMEE2NjA0RTExQjFBNzFCRjk5QTA3Qjc1MTg4OEQ3NDIxMERGCis1ODU3RUM0RjIyNzAwRkIwNTcyMDVGMjg0QkYxRkFBRUEyMTI1MUE0NzEzQzY1NjI2ODU1ODdDODJFREM1RkY1CiswNDBBQjA4MzgwMUE4OTc0RDJBMDA4QjU5REQxMzY4QzEzQ0UwMEZGQkNGNzNCN0E0MjJCRUY2RUY4QzA4NDkwCitCNDA3MEQyQTFGRkY0NjBFNEUwNTAyNUNBNjk3M0ZGMDgyRTc2QzRGRUVBMTIzQTFEMEE0N0UzRDQxOTdFRjRBCis5Nzg2MzY5NDQ2RjM4NzVCNDUwQ0NDNTM4OUQ2QzNDREIxRDBBNjRDOEQ1QTVDMzE2QTMzNDFEQUJEQkY0OTZDCis2OTRBRTk3RUNDNzdDMkVDNTcwNDBFODNDRDA5MTY2ODBCNDkwRjBERjk0NDNEQkQyMEJCOTdFNTQzQkJCRjE1CitFMjAwNDlDNzY5NjlDRTU2QjBBRUEyOEEyOEI2QkZDM0VGN0U2QkZDNThDNjkzMzlDOTI3Rjg2NTdFQ0ZCNjMxCitEMzlENzQxQjAxMkFBNDI1OTM3RkVCRUFGMzE0N0FBRjFGMThFMzIyNTY2NkQ5NEVBMTgxNjY2MjJFNjcyMzE1CiszMDMxREQ5OEVCQ0Y5NEY5RkUxRDI4NDA2RDhEOENCQjlGOUNFRTE3M0E2RjJDNkE4RTYyMTkwMkM2MjBFNzJCCitDOUNBRjczNEExNjdDNTgzRjc4QUFDNzkyMzYzRjlDRTdDQzNDQ0I1QTkwQzMyRjJCQjk4ODBDMjg3NDI5QjlBCitDQjdDMDU3NDQ3NzdEMzM5RTg2MzAwOTk4NjE1RTFGOTkxQjg5RkEwRjQxNUVERUI3NkZFREI0NzZFOTk5NkZFCitDNUIzMDFDQzFGOEM2RTNGQjIwRTZCNEEwMzY1NkIyRTdBRDY2NDFDNzE3OUJGRUEzOTg4OUNBNkNENEFGRTZCCitEOUJCNDgxMjJFQjg4QjMxRjM5MDk1NDk0MThFMjBFRjAxODkzMzA3NkQ1RUIxMUFGQUQyQTRFMjIwMzMwN0VDCis2MjAyQkI1NDQ0MjM0NTlEMzdBMjZFQTVEMDY0RjVBM0E3NkFEREE1MEREQTYwQjA4RjNFOERFNUE5RDE3NDU4CitBM0NGNTQ4M0Q3RjU3QkRBMEIwRTY1NDM4MTk4RTY1OTUwOTU0OTY3RjdDQUU4RDcwQUI3QkVDQTYyQzhBMkZGCiszNUIyMzFFMzUzQzlDRUFFRTlDNzZDNEUzODJFRTAzQzk5NUVGNTUxNDdGMTRBMzgxN0ZBRkYyRDlDM0Y5QTdCCis2RUU0OEYzNjM0OTBDQjk1QkUyQ0M0QjFDNjZEODM1RTNENjhCMzg3MDY1Qzk0QzQ3REQyMUJFNUZBN0RENzc1Cis2NTYxRTUzRDY2NDk5QzU2ODNGRUEwNTBFQzU3MDIzQzE0RUJEMDhFQzA1QUYxNTE3QjE0RTQ3QkUxODNCMEI0CitCREYxMjI5Q0RGRUQ2MzgxMEI0OTEyOTdBRkY2NTIyOTI3NjI1NEZDQUFEREYxMDg2OEE4OTcwQzk4QUQwOUIyCitGMjlDQzIwNkVDQ0Y2QUNBNzdGQUEyMEQ0QTAyRDk1RUFFNjc3NTZDNDdCRTREMENDN0IxQTk2NDIwN0JERDc1CitENDhENjlBNzBDRURBRjAyNkM0QzlDRUZBMTdDMzM2QzA5ODVDOUVDQUM2M0Q4MUE4RTI0Qzc3QTQyQzU3NDMxCiswMkYzNUFCNzhFRTU5RTg0OTE0MjY5NTNBMzBDNTIyM0NBMDRENUM1MjkyMEQ2NDREMURERThENzQ2MjM5QzIxCis0MkQ1NzNBRUYyMzc1Q0Q2RjIyRDQ4RDNGRUM0OTFBNDM1OTg2MzY1Njc5MjcxNEM2MjNFOUFFREQxQ0Y0NTg0Cis5MzA4NDNCQTE3MTczMkMxM0FDQ0QxM0QyMjgwN0JEQTY2MUFBOUI4QjI1RjI4OTlCMzgzQTIyNjRFOUY3QjE2Cis2MkJBMzU2N0UxQkMzRjFENUIzN0UwRDhCQkNBNENFMzFDQzhGODcyNThDMkYxQjEwQTYxNjNCMzJDNzNGOERECiswMjJGOEUwODJEQTU0RDA4QzQ2QkU5MUM4OUQ5NUFGMUFFQUM1NTQ1MDdGMzA4QjQ5QjZDQjE3RTNDNDcyRTYxCisxRjM0NDVFNDI0MkFERTkzRDJENDM2OEU2RUM0N0U2NEFENkRERTI4OTA4NUYwMUJCNzgwRjdDRDIzMTU2RTJGCis4NkRDRDMxRTIyMUUwQTk3RkU1RjgzMEM3MDlFMDA5MzMxQkU4RDUxMURCQUI2NEY0RDcxQjcwNTQ3QjEyNzdBCitFQjQ0NDhFRjkzN0RGMDM3Mjc1QUI0NTJDOEI4NDhENkQzMUU0MTA0RTk1OTgxNzhDNjg3NzIzQzVFQjAwMjVFCitCQzkwMTY3MTNBQ0VEQzgwQ0M0RTNCRjg0MTkwOUI1NDIwQjZFNzMyRTBFNjcwN0E0NTYxNzBCNUM2Njg1ODBFCisxRDZBOUI1MzJFNEEyNDRERDU1NjVBREU3QjU0NDg0OEVCQzFGOEYxM0M2NzJEREVFNTI3RUUwRjAwQzhFNjUwCitEQjg2MURGNDFCRDcwNjgxRjQ0MjU0NUM4Nzc2MEYzNTNBQjQ0NjhDNjgxNUREMUVGRDJGQjU1NjdGMTJFMzFFCis5NUEwMUM1N0JGRUQ4RDY3MEQyQTlCNTNFRTY5MjdDRkU5MkExMTAzRkI4QTVFQjVGQTA0RTJDMkE5REMzNDY4Cis3OUE2QjczNzMxMTE3NkVDRjEyODQ1MUE2NkIyNDJGRjU4ODJBMkNEMjNGQUE0NzNDRDg0MkMyNjQ3NzA2OEFCCitGRjkwNDNEOUVGRTkxQzVEOTFDODMwMzk0MEREODJGNEUwMUFFMTkwRkJCNzQ4RUUyRDU5QzM0QzgyQzQwQ0E0Cis2NDUwNjY2MTZBQTA1MTE5OTdENTZFMThEN0U3MjAzRjE1NTJDMjJDNzBGNTZDNjU1Mjk3OERDNTU5MUI0Qzg3CitFOUQ0N0UxM0EyRkU1NTQzRUM5OTA0Q0YyNTQyOEE2NzhBMUYyRjkxNzFEMEU2MzRBMDgyMEVDMjRFMDFENTcyCis1RTdFNkQ4NDNEQkFDN0Q5RDBDNEYxRkU0ODhCRDNDNjI2NDlCNzhBOTgyRTcxMENDOEM2NDY3REMyRDAxQzQxCis3MzVCQThDOEJGRkVCRkZCM0EyNTE5ODcxQzcwN0E1NjJCMzM4MzI1Mjc3MTc2MUQ2RTVDMTNDMzAzMUI0NzJDCis0QjJFODY1REVFNUNENTA3MDNGNURCNjFBNjUyOTdGQkYzN0EyQzMyOUZBMjVBRTcxRUVBMDQxMzMzNkIwNDUzCis2RDE2RjNFNjY2NzgyMjg2QzBDNzQzODUxOEIyMTc5RUYyNURGNTBERUQxRUVGM0IzNjRCMDI0MjIyQTVGMTRFCitDMTlCNDA3RUJCOUIwMzk3RjRCNTlBOUIzOEYxQ0VGRkVENUQ4QTBGQzQyNzZDQ0E2MEJDNkE5RjQxOTZCNjUyCitDRTgzODQyMzRGRTFFNzNBMzY5MThCNEJCRUYzMjY5QjdDOEFCRjBBOUJBNTkwRUIxMUQwMUFENjgyRDAyNEE4CitGODJDQjIxOTZDRjA3NDQ2OTZFRDM2MDI2QUI3NDQ3Q0M5N0JGNzhDRkZFNTUxM0Q2Q0ZGQzhFOTZERjA2M0MyCisyNUNGREZCNTZCMkIxNTM2RTIwN0UxMEI1MDIyOTcxQzhGNEUyMDIxRDUyODI1QTQ2NTA4QTk3NkI5MDQzRERBCis3MTU0OUNBODBFQkFBRUJGQTJBRTUwREMyNTQ2RjZCQzZEQjA1NjIxMjc3QzYzQzAwRUUwMUZCQTkwNzhFNUU1Cis1NkQxQTI0NzkzREUwNjczMEY2RDc0QUU1MkFFMTU3OUZFMzZEMjhGODk4MDQ0Q0REQjM4NjA0MTA0QUY3OENGCitEMDA5MzU0MTA4QTg2RUQ4NkM3REQzRjVFMDRCMEVDRkY5MjRGQjMyQTcyMTVBNjQ3QkQ3NTk4MzE3MzY0RjcxCiszMEZGMTUxMzM5N0MwQzlCOTAwOTA2RkUwMzZDODQyREZGNjRFMkM1MkEyQ0M1MTk3Mzg4ODAwOTI2QjFDNjIzCis3RTRDMkRGQ0FEMERFQUQ1NDk1NEYxODM1NTUyRUY0N0Y4MzJBNkRFMjBEQTk2NzgzQzhFMEZFMjU1QTQ4QjFDCis0RDlEMzA4MkU1MTMxNDQ1QzI1MjE1RkFFQjRDMkNGRUE0QUM1QjJGQ0NBQzk1NTA2RTg4ODY0QjAzOUVBOUJBCis4NTBGN0MzNjY5NDU4REQzNTc4ODkwQjRFMTRBMThFNTI3QTgzNzEzN0VCOUExQTY2NTgyRUVDM0YzN0M0M0M5Cis5NkQ2OTFFOUE1ODcyNjhGMzNFRTJEQjBBRkQyOUM0REU2NzU1NzJDNzRGOEE5QTgxNDU3OTgzQzBENzVGNEEyCitCNzhEMTQzRTg0MTdCNDc4QkMyMzJCMzU5NjdBMEE0RDA1NTQ4MkY4OTFCNkVBNzBFQ0JFOTAyMzYwQjI5RTk1CitDRDc1RjYwQkZEQkQ4NkFBMzc1NjREQUZCNUQ2NUY0RUIzMzEzMDI3ODJEOQorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorY2xlYXJ0b21hcmsKKyUlRW5kRm9udCAKKyUlQmVnaW5Gb250OiBDTUJYVEkxMAorJSFQUy1BZG9iZUZvbnQtMS4xOiBDTUJYVEkxMCAxLjAKKyUlQ3JlYXRpb25EYXRlOiAxOTkxIEF1ZyAxOCAxNzo0NjozMAorJSBDb3B5cmlnaHQgKEMpIDE5OTcgQW1lcmljYW4gTWF0aGVtYXRpY2FsIFNvY2lldHkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisxMSBkaWN0IGJlZ2luCisvRm9udEluZm8gNyBkaWN0IGR1cCBiZWdpbgorL3ZlcnNpb24gKDEuMCkgcmVhZG9ubHkgZGVmCisvTm90aWNlIChDb3B5cmlnaHQgKEMpIDE5OTcgQW1lcmljYW4gTWF0aGVtYXRpY2FsIFNvY2lldHkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQpIHJlYWRvbmx5IGRlZgorL0Z1bGxOYW1lIChDTUJYVEkxMCkgcmVhZG9ubHkgZGVmCisvRmFtaWx5TmFtZSAoQ29tcHV0ZXIgTW9kZXJuKSByZWFkb25seSBkZWYKKy9XZWlnaHQgKEJvbGQpIHJlYWRvbmx5IGRlZgorL0l0YWxpY0FuZ2xlIC0xNC4wNCBkZWYKKy9pc0ZpeGVkUGl0Y2ggZmFsc2UgZGVmCitlbmQgcmVhZG9ubHkgZGVmCisvRm9udE5hbWUgL0NNQlhUSTEwIGRlZgorL1BhaW50VHlwZSAwIGRlZgorL0ZvbnRUeXBlIDEgZGVmCisvRm9udE1hdHJpeCBbMC4wMDEgMCAwIDAuMDAxIDAgMF0gcmVhZG9ubHkgZGVmCisvRW5jb2RpbmcgMjU2IGFycmF5CiswIDEgMjU1IHsxIGluZGV4IGV4Y2ggLy5ub3RkZWYgcHV0fSBmb3IKK2R1cCAwIC8ubm90ZGVmIHB1dAorcmVhZG9ubHkgZGVmCisvRm9udEJCb3h7LTI5IC0yNTAgMTI3NCA3NTR9cmVhZG9ubHkgZGVmCisvVW5pcXVlSUQgNTAwMDc3MSBkZWYKK2N1cnJlbnRkaWN0IGVuZAorY3VycmVudGZpbGUgZWV4ZWMKK0Q5RDY2RjYzM0I4NDZBOTdCNjg2QTk3RTQ1QTNEMEFBMDUyOTczMUM5OUE3ODRDQ0JFODVCNDk5M0IyRUVCREUKKzNCMTJENDcyQjdDRjU0NjUxRUYyMTE4NTExNkE2OUFCMTA5NkVENEJBRDJGNjQ2NjM1RTAxOUI2NDE3Q0M3N0IKKzUzMkY4NUQ4MTFDNzBEMTQyOUExOUE1MzA3RUY2M0VCNUM1RTAyQzg5RkM2QzIwRjZEOUQ4OUU3RDkxRkU0NzAKK0I3MkJFRkRBMjNGNURGNzZCRTA1QUY0Q0U5MzEzN0EyMTlFRDhBMDRBOUQ3RDZGREYzN0U2QjdGQ0RFMEQ5MEIKKzk4NjQyM0U1OTYwQTVEOUZCQjRDOTU2NTU2RThERjkwQ0JGQUVDNDc2RkEzNkZEOUE1QzgxNzVDOUFGNTEzRkUKK0Q5MTlDMkRERDI2QkRDMEQ5OTM5OEI5RjREMDA0QjgzNkQzNEU4OEMyMEVFQjUyN0NFMTEyNDIwOTM4OEEyREYKK0UyN0E4REYyOThBMjY5M0E5RDUyOTkxNkFBMEIyMTc2RTZFRDIzN0Y2OUQ4NEE4RkVFQjM2ODYxRDE4NDcyMDcKK0JFMkJENjFDNkE0MTJGRkZFREZGMTNBRkVDMzJBQzc3MzVCQ0NFNTk2NUY1OTY2NDE4QTYyRUNCOTkxMTJBQjMKKzNCQzkzOEVDNTkwRkY2OTIyNjU5MTI1RUI2N0UyNjBCRjAyODg1RTQ5QkE2MDE5RTY5NkQzM0YwQjUzNjA2QTIKK0Y1MTVFMEM0NUYzMjMzMTE2MTNBOTRCODM4NDkxQkFCOUZFMjMwQzVDQzc5RDIyOTI1RTNEODgyNzk5RjI3MDcKK0MzMjk3NUE0OTRGMEY5NTEzRTREODMzMkU3RTU0NDcwRDk3MjFGQkQzNDVDREJCNDgyODZGMkYxOUNDNkQ2NkUKK0JCNjMxREQ2NDc2QTUwOTE2N0E0OUNBNTI1QTcyQ0E1MEU4MkMxRDA4QzJCMzcyREI1NEM1OTQ5Qzc1M0I2MzIKKzIwMDlCNzYxRUI5MDQ5MkFDRDNDQkU2QTM1Q0UxQjY2RjNCQzREOERDMzY4MjdDRTQyNjFBNzAzMzI4NDUxRDEKKzg3OTQzODQ3OTkxN0MxNjQ3NzcyOTk5MTcxRENDRjE0OTFBMUM5MDg2RTBDNjM5MzUwNjc2OEY4NzU3QkQ4MUQKKzE0MUM0NkVCOUJGNTA3RUVDMjk5NjJBMDA3MkI2QzVEOEM4NTg4RjNENjg4ODZDRDI2MDZERDNCRDJGRUNDRUYKKzYzMjQ1NDk0RTkzRUVBMTJBQUZCMDYxMTBFNTRBREM0NDRDN0U3NjE5NjI3QTQ4QTQ2NDM5NEU1REUwNkVCNDYKKzRDNzZBMkZGMDEwMzE4QkJFNDhCMzc3NkM4MjZBMjY1QzY2NTE1NzE3RjdGMkU5NDNDNjBFQkFCMjNEOTZCNUIKK0ZENTE0QTFDNEU3OUJCM0QzRDJERUI5MzZGOTBDRDNGQUJGN0IwOUZGN0Y1NjRBQjVDRjRBRjZBNDBFODY5RkQKKzM5NTg4NUE4OEY0QTEzOEIzQ0E2OTQzQTJENDMwQkJFNDNEOTFGN0YxNzYyMUNBRjUyRkI3MTYxREEzQjIwMDMKKzgyMjQ0RkI2RUU3OTJEQ0ExNzIyQzAzMzkyQzI5NkMwMjlBMkRDQzVCQUFCM0VBMDNGOERFQjAzOURDODNBRTEKKzc2M0FBQjg0Nzc2QTJDQ0ZGQUU5RUFGMEJGREFFNDE3RThCRTY4MkQyMzdGRkVEQUYyMjRBQzA5Qzk2NjUwMTkKKzE2NUNFMzJGNTM0OUU4NTcxNzdEOTRBRDYzOTY1NzA5MzJFMTY1N0FERTREM0ZGNTdBMzQxOTk0NkNDRDIxMEUKKzU3RTVBMUQ5MUNGNzA4Mzk1OTQyNTI3RDEyNzYwNjM1MDkyNEQ3MUJDMjFDNkY5NjkyODhCMUM4Q0EzNDA0RUQKK0U2MjE5OTg1RjczMDFBMjA2MjEzNjhGNzQ3NDdFQUQzODk5MEE0QzlGMkI2MjkxM0I4RkRCOTM2NTc0MDlGRjUKKzE3OERBQTdDOTdDMzVFQUZBNDc3NzhDRTAzRTg2MzMwMzU4MkQ4QTk5MDBFRjRGOERBODc5REVENTRCQUNEN0EKKzRBNTBDMThBQTJFRDkwNkZDNERDMDczQjFFNkNBMUUzODU1QUQ1Qjc2OThFRjRBOTZCNzdEQkUxOUExMjM4MkEKK0NGQTg3MTdERTIzMENCNjE4MkYyMjUwODg1QjhFOTBBQzQyQTY2NDg0QTdCNTI3MDYxQjIyM0E2RDFDQzcyRDQKKzg5MDM1OUU3RTA0NjkwQkZGQTk5RkFCNUNDOTk5OUYwODczQTlEQkU0OUUzM0Y3OUU0ODNGQUQ3MjMxM0RGOUEKKzdCN0Q5MjY0NjE5ODhDMjNDQ0U5RjcxQUI3QkI2M0JEQjJCMTBCM0Y3ODE3NjM4MEFGRkMxNTQ4MjVDOUJEQ0UKKzgyMzAzRkJGQzNCNTlFMDcwNDM4OTg0QzI4RDEyRTg2NTVCQkJGMDQ5MTI1QkY1NkREMkIwREU4QzA0NTBFNTUKKzgyODMyREE1OUVCRUIwMDFBQUQ4NkYyMzE3NDYwREQ3RUQyNjQ2MTFCOTA0MzYxNDIyMUVDRgorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorY2xlYXJ0b21hcmsKKyUlRW5kRm9udCAKKyUlQmVnaW5Gb250OiBDTVNZMTAKKyUhUFMtQWRvYmVGb250LTEuMTogQ01TWTEwIDEuMAorJSVDcmVhdGlvbkRhdGU6IDE5OTEgQXVnIDE1IDA3OjIwOjU3CislIENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKzExIGRpY3QgYmVnaW4KKy9Gb250SW5mbyA3IGRpY3QgZHVwIGJlZ2luCisvdmVyc2lvbiAoMS4wKSByZWFkb25seSBkZWYKKy9Ob3RpY2UgKENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZCkgcmVhZG9ubHkgZGVmCisvRnVsbE5hbWUgKENNU1kxMCkgcmVhZG9ubHkgZGVmCisvRmFtaWx5TmFtZSAoQ29tcHV0ZXIgTW9kZXJuKSByZWFkb25seSBkZWYKKy9XZWlnaHQgKE1lZGl1bSkgcmVhZG9ubHkgZGVmCisvSXRhbGljQW5nbGUgLTE0LjAzNSBkZWYKKy9pc0ZpeGVkUGl0Y2ggZmFsc2UgZGVmCitlbmQgcmVhZG9ubHkgZGVmCisvRm9udE5hbWUgL0NNU1kxMCBkZWYKKy9QYWludFR5cGUgMCBkZWYKKy9Gb250VHlwZSAxIGRlZgorL0ZvbnRNYXRyaXggWzAuMDAxIDAgMCAwLjAwMSAwIDBdIHJlYWRvbmx5IGRlZgorL0VuY29kaW5nIDI1NiBhcnJheQorMCAxIDI1NSB7MSBpbmRleCBleGNoIC8ubm90ZGVmIHB1dH0gZm9yCitkdXAgMCAvLm5vdGRlZiBwdXQKK3JlYWRvbmx5IGRlZgorL0ZvbnRCQm94ey0yOSAtOTYwIDExMTYgNzc1fXJlYWRvbmx5IGRlZgorL1VuaXF1ZUlEIDUwMDA4MjAgZGVmCitjdXJyZW50ZGljdCBlbmQKK2N1cnJlbnRmaWxlIGVleGVjCitEOUQ2NkY2MzNCODQ2QTk3QjY4NkE5N0U0NUEzRDBBQTA1MkYwOUY5QzhBREU5RDkwN0MwNThCODdFOUI2OTY0Cis3RDUzMzU5RTUxMjE2Nzc0QTRFQUExRTJCNThFQzMxNzZCRDExODRBNjMzQjk1MTM3MkI0MTk4RDRFOEM1RUY0CitBMjEzQUNCNThBQTBBNjU4OTA4MDM1QkYyRUQ4NTMxNzc5ODM4QTk2MERGRTJCMjdFQTQ5QzM3MTU2OTg5Qzg1CitFMjFCM0FCRjcyRTM5QTg5MjMyQ0Q5RjQyMzdGQzgwQzlFNjRFODQyNUFBM0JFRjdERUQ2MEIxMjJBNTI5MjJBCisyMjFBMzdEOUE4MDdERDAxMTYxNzc5RERFN0QzMUZGMkI4N0Y5N0M3M0Q2M0VFQ0REQTRDNDk1MDE3NzM0NjhBCisyN0QxNjYzRTBCNjJGNDYxRjZFNDBBNUQ2Njc2RDFEMTJCNTFFNjQxQzFENEU4RTI3NzE4NjRGQzEwNEY4Q0JGCis1Qjc4RUMxRDg4MjI4NzI1RjFDNDUzQTY3OEY1OEE3RTFCN0JEN0NBNzAwNzE3RDI4OEVCOERBMUY1N0M0RjA5CiswQUJGMUQ0MkM1REREMEMzODRDN0UyMkY4RjgwNDdCRTFENEMxQ0M4RTMzMzY4RkIxQUM4MkI0RTk2MTQ2NzMwCitERTMzMDJCMkU2QjgxOUNCNkFFNDU1QjFBRjMxODdGRkU4MDcxQUE1N0VGOEE2NjE2QjlDQjc5NDFENDRFQzdBCis3MUE3QkIzREY3NTUxNzhEN0QyRTRCQjY5ODU5RUZBNEJCQzMwQkQ2QkIxNTMxMTMzRkQ0RDk0MzhGRjk5RjA5Cis0RUNDMDY4QTMyNEQ3NUI1RjY5NkI4Njg4RUVCMkYxN0U1RUQzNENDRDZEMDQ3QTRFMzgwNkQwMDBDMTk5RDdDCis1MTVEQjcwQThENEY2MTQ2RkUwNjhEQzFFNURFOEJDNTcwMzcxMURBMDkwMzEyQkEzRkMwMEEwOEM0NTNDNjA5CitDNjI3QThCRkVGNzVCNERFRkFGMzRCNDRCMzU2QTUxNkI3NjVBRkNERDNGNTQ3NUIxRjkyODczMUQwOUQyMTcwCitCOTdFNDBGMTJDQ0VERjRGNkJCMzc1NkM0NzM0RjZFOThENzRCN0U5NDJBOTU0QjFCQUFCODNENEFENzI3RkY2CitERjZEQzUwQjIyMjNCQ0I1NTY4QTczQTExMkU0ODYwQUQ0OTA1NTRFNjRFNzgwMDczRkYzMzk5Q0I0Njg4RDMzCis5RTg4Mjk2NjdDRDZFQUVGMjVFMEM3RDJENDRGMkJCRkE0MEU5OTkzMjVGOTU2MTUxNDg0NDIyMUI1MEJDOEZDCis0QzdBRDY4Q0E3MjIwRDY5MTI1QzJBRjA2ODQ5QTNFMDY4RDE4NzMzMjc2RjBDMEE2QTI5MzZEM0MyQzg3Q0RFCis1OUNEMUFGMTQ4QzQ0Rjg1Nzg0QTVEQUQ1NjlGNUZGNTNDMDYxMDU2QzA2N0NFMjlBRUYxRTNCRDFGRDhCMEI4Cis3MUEwQTYzOENEQUM2QUVFREJENTMzN0Q0NjgzQzA4NEJCNjBCMTg1OUU2MDBGNTlDQjRFMTlDNUZDNUM2MzI3CitFQzU0NEE2ODEzNDQ5NkE5QkQwQjg3RDgzQUY2RkRBM0NCNjJGQkYwQjU0RkFDRTFGMEU2QTJEODRCNDY3QUZGCiswRjYyREIKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKK2NsZWFydG9tYXJrCislJUVuZEZvbnQgCislJUJlZ2luRm9udDogQ01SMTAKKyUhUFMtQWRvYmVGb250LTEuMTogQ01SMTAgMS4wMEIKKyUlQ3JlYXRpb25EYXRlOiAxOTkyIEZlYiAxOSAxOTo1NDo1MgorJSBDb3B5cmlnaHQgKEMpIDE5OTcgQW1lcmljYW4gTWF0aGVtYXRpY2FsIFNvY2lldHkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisxMSBkaWN0IGJlZ2luCisvRm9udEluZm8gNyBkaWN0IGR1cCBiZWdpbgorL3ZlcnNpb24gKDEuMDBCKSByZWFkb25seSBkZWYKKy9Ob3RpY2UgKENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZCkgcmVhZG9ubHkgZGVmCisvRnVsbE5hbWUgKENNUjEwKSByZWFkb25seSBkZWYKKy9GYW1pbHlOYW1lIChDb21wdXRlciBNb2Rlcm4pIHJlYWRvbmx5IGRlZgorL1dlaWdodCAoTWVkaXVtKSByZWFkb25seSBkZWYKKy9JdGFsaWNBbmdsZSAwIGRlZgorL2lzRml4ZWRQaXRjaCBmYWxzZSBkZWYKK2VuZCByZWFkb25seSBkZWYKKy9Gb250TmFtZSAvQ01SMTAgZGVmCisvUGFpbnRUeXBlIDAgZGVmCisvRm9udFR5cGUgMSBkZWYKKy9Gb250TWF0cml4IFswLjAwMSAwIDAgMC4wMDEgMCAwXSByZWFkb25seSBkZWYKKy9FbmNvZGluZyAyNTYgYXJyYXkKKzAgMSAyNTUgezEgaW5kZXggZXhjaCAvLm5vdGRlZiBwdXR9IGZvcgorZHVwIDAgLy5ub3RkZWYgcHV0CityZWFkb25seSBkZWYKKy9Gb250QkJveHstMjUxIC0yNTAgMTAwOSA5Njl9cmVhZG9ubHkgZGVmCisvVW5pcXVlSUQgNTAwMDc5MyBkZWYKK2N1cnJlbnRkaWN0IGVuZAorY3VycmVudGZpbGUgZWV4ZWMKK0Q5RDY2RjYzM0I4NDZBOTdCNjg2QTk3RTQ1QTNEMEFBMDUyQTAxNDI2N0I3OTA0RUIzQzBEM0JEMEI4M0Q4OTEKKzAxNkNBNkNBNEI3MTJBREVCMjU4RkFBQjlBMTMwRUU2MDVFNjFGNzdGQzFCNzM4QUJDN0M1MUNENDZFRjgxNzEKKzkwOThENUZFRTY3NjYwRTY5QTdBQjkxQjU4RjI5QTRENzlFNTcwMjJGNzgzRUIwRkJCQjZENEY0RUMzNTAxNEYKK0QyREVDQkE5OTQ1OUE0QzU5REYwQzZFQkExNTAyODQ0NTRFNzA3REMyMTAwQzE1Qjc2QjRDMTlCODQzNjM3NTgKKzQ2OUE2QzU1ODc4NUIyMjYzMzIxNTIxMDk4NzFBOTg4MzQ4N0RENzcxMDk0OTIwNEREQ0Y4MzdFNkE4NzA4QjgKKzJCREJGMTZGQkM3NTEyRkFBMzA4QTA5M0ZFNUNGNzE1OEYxMTYzQkMxRjMzNTJFMjJBMTQ1MkU3M0ZFQ0E4QTQKKzg3MTAwRkIxRkZDNEM4QUY0MDlCMjA2NzUzNzIyMEU2MDVEQTA4NTJDQTQ5ODM5RTEzODZBRjlEN0ExQTQ1NUYKK0QxRjAxN0NFNDU4ODRENzZFRjJDQjlCQzU4MjFGRDI1MzY1RERFQTZFNDVGMzMyQjVGNjhBNDRBRDhBNTMwRjAKKzkyQTM2RkFDOEQyN0Y5MDg3QUZFRUEyMDk2RjgzOUEyQkM0QjkzN0YyNEUwODBFRjdDMEY5Mzc0QTE4RDU2NUMKKzI5NUEwNTIxMERCOTZBMjMxNzVBQzU5QTlCRDAxNDdBMzEwRUY0OUM1NTFBNDE3RTBBMjI3MDNGOTRGRjdCNzUKKzQwOUE1RDQxN0RBNjczMEE2OUUzMTBGQTZBNDIyOUZDN0U0RjYyMEIwRkM0QzYzQzUwRTk5RTE3OUVCNTFFNEMKKzRCQzQ1MjE3NzIyRjFFOEU0MEYxRTE0MjhFNzkyRUFGRTA1QzVBNTBEMzhDNTIxMTRERkNEMjRENTQwMjdDQkYKKzI1MTJERDExNkYwNDYzREU0MDUyQTdBRDUzQjY0MUEyN0U4MUU0ODE5NDc4ODRDRTM1NjYxQjQ5MTUzRkExOUUKKzBBMkE4NjBDN0I2MTU1ODY3MTMwM0RFNkFFMDZBODBFNEU0NTBFMTcwNjc2NzZFNkJCQjQyQTlBMjRBQ0JDM0UKK0IwQ0E3QjdBM0JGRUE4NEZFRDM5Q0NGQjZENTQ1QkIyQkNDNDlFNUUxNjk3NjQwN0FCOUQ5NDU1NkNENEYwMDgKKzI0RUY1NzlCNjgwMEI2REMzQUFGODQwQjNGQzY4MjI4NzIzNjhFM0I0Mjc0REQwNkNBMzZBRjhGNjM0NkMxMUIKKzQzQzc3MkNDMjQyRjNCMjEyQzRCRDcwMThENzFBMUE3NEM5QTk0RUQwMDkzQTVGQjY1NTdGNEUwNzUxMDQ3QUYKK0Q3MjA5OEVDQTMwMUI4QUU2ODExMEY5ODM3OTZFNTgxRjEwNjE0NDk1MURGNUI3NTA0MzJBMjMwRkRBM0I1NzUKKzVBMzhCNUU3OTcyQUFCQzEyMzA2QTAxQTk5RkNGODE4OUQ3MUI4REJGNDk1NTBCQUVBOUNGMUI5N0NCRkM3Q0MKKzk2NDk4RUNDOTM4QjFBMTcxMEI2NzA2NTdERTkyM0E2NTlEQjg3NTcxNDdCMTQwQTQ4MDY3MzI4RTdFM0Y5QzMKKzdEMTg4OEIyODQ5MDQzMDE0NTBDRTBCQzE1RUVFQTAwRTQ4Q0NENjM4OEYzRkMzQkVGRDhEOUM0MDAwMTVCNjUKKzBGMkY1MzZEMDM1NjI2QjFGRjBBNjlENzMyQzdBMTgzNkQ2MzVDMzBDMDZCRUQ0MzI3NzM3MDI5RTVCQTU4MzAKK0I5RTg4QTQwMjRDMzMyNkFEMkYzNEY0N0I1NDczOUI0ODgyNUFENjY5OUY3RDExN0VBNEM0QUVDNDQ0MEJGNkQKK0FBMDA5OURFRkQzMjYyMzU5NjVDNjM2NDc5MjE4MjhCRjI2OUVDQzg3QTJCMUM4Q0FENkM3OEI2RTU2MUIwMDcKKzk3QkUyQkM3Q0EzMkI0NTM0MDc1RjY0OTFCRTk1OUQxRjYzNTQ2M0U3MTY3OUU1MjdGNEY0NTZGNzc0QjJBRjgKK0ZFRjNEOEM2M0IyRjhCOTlGRTBGNzNCQTQ0QjNDRjE1QTYxMzQ3MUVBM0M3QTFDRDc4M0QzRUI0MUY0QUNFRTUKKzIwNzU5QjZBNEM0NDY2RTJEODBFRjdDNzg2NkJBRDA2RTVERjA0MzREMkM2MDdGQzgyQzlFQkQ0RDg5MDJFRTQKKzBBNzYxN0MzQUVBQ0NCN0NDRTAwMzE5RDA2NzdBQTZEQjdFMDI1MEI1MTkwOEY5NjY5NzdCRDhDOEQwN0ZEQkQKK0Y0RDA1ODQ0NEU3RDdEOTE3ODhERUE5OTdDQkUwNTQ1OTAyRTY3MTk0QjdCQTNDRDBCRjQ1NEZDQTYwQjlBMjAKKzNFNkJCNTI2RDJENUI1MzIxRUUxOEREMkEwQjE1RTUzQkNCOEUzRTAxMDY3QjMwRUQyREQyQ0I5QjA2RDMxMjIKK0E3Mzc0MzUzMDVENDJERTlDNkI2MTQ5MjZCRkQ0NERGMTBEMTQ0MDJFQkVERkYwQjE0NEIxQzlCRDIyRDczNzkKKzUyNjJGRUVBRkUzMUM4QTcyMUMyRDQ2QUEwMEMxMDY4MUJBOTk3MEQwOUYxRUE0RkE3NzQyODAyNUQ0MDU5QkEKKzI5ODhBQzJFM0Q3MjQ2QkFBQUZCODk3NDVGMEUzODU4MDU0NjA0NTUyN0M4Nzc5QTI1NERCMDhEQ0M2RkI5QjkKKzBFMTcyMjA5RkJFMzg1N0FGNDk1QTdGMkIzNEJDODkzRDk0MkMxNDVDMjIwNENGQ0Q2QTVDNjlGRUZDMjVCNjAKK0U0MTJDQjJCRUFFN0Y3RkFEMDNBRjQ2MzQ0RjZBN0Q0ODNCQkIxRTg5NkJGMTZCMEY0QzM2Mzc5OURGMjNDRTIKK0U4MTI3OTk2REU4NDFCNkY5RDhBOUU1NkJENzk5QjZBOTM4NTgyOTg4QUY4NzE1MUJCOEQzQUVBODVDNDk4NTcKK0REODYyQjVFMTBEOUYzM0Q1Nzc5NUQ2NTZGQjYxNkJDOUI4Mzk3QjM2MTIxMzFBMkIwRjQ3MjY1NjcwMDk1OEYKKzczOUE1NDhGN0MzQTM0ODY5OEFGOUY2Rjk4MjFEN0E5RkQ0MTMxNzgxQUNCRjdFQUI4ODVBM0FDMjU0REJGOTQKKzAyRkE2OTc5NDFBMEY5N0YwNDg4NjE3ODhCRUFDQzIwREU4Mjk3NjQ0MTNDQTU4RjlEMDQ1QTZCMzhCQ0Q2RTYKK0U0ODI3MjQ3RURGMTE3MUY2NEUzQjA0MUE2OUIyNDQzMDhEQzA3RjY2NjQzRkNEN0Q1RkQzN0YzNkVDNENCNUYKKzk1N0Q0QURBRjkxODUwQTNCMUE3NjVFMEU1ODBFREM3NzU1NjU5M0QxQjJFMUMyMjY4NTI2ODQ2OTI5ODY4OEEKKzQ1QzQ3NEM5RDA0NzJEMDE5Q0UxRTgzRjI1MTgyRDA4NEFEODVBNDlDNTAyRThENjc5QzIyN0RBOEUzMjA0NUYKKzgwNTVEMTYyMkM0NzhGOEZEQTM0MjY4NUY4NThERTNGNTNGMUNFQTBENzBCRjNGRTA5MDM3RDk4MUU5RTdGRkIKK0JDM0Y4OTY1MzVEMERDRjUzRjRDODVBMURBNUQwQjYzMjQ4NEQxRjI1NDYwRTNFQjM4RTI1MUQyQUExNzgxN0UKK0YzQjI1QTJBNDlDMEFFREUwQjg5RTI3N0Y1MkNCRjc0NEVGMDI0M0M0MDlGRDcxRkIwQzU3NDY0MENGMTE1OTkKKzExN0E0RjQyRjI3RDhEMjgyRDM0NDg1QUQxMTZGN0U3NTNBOERFQkZERjdDNTUyQTExNzlDMDJCN0EzNzc4MkIKKzc0M0QwREY4NUMxNUEzMzNCRTlFRTgyQzEzREJDOUNCMDA3REVCNTkwMDk1NEFEOTMwOTkwMkUwOEIzRDVCQjQKK0U4NDE0MjExQjk3MUNFOEI5RjA1QTYxQzE1RjQwMEQ5Mjk3NzQ1RjYwNkM2NDE5RThBOEE5QURDQkRDMzkyNDMKKzYxN0VGQUJGRENGOUY4MzZEMTQ0MTFCRDcyRUUxOUQwQkRFODkyMzRCRjdENTJFN0E2OEVDQzk1MkZCNzRGRTMKKzMzRTFBODdEQTM5QUVFRTlFOTA0MDZFMkIxQ0YzNzk5QzYzRTlCQTg1OEQ1NEYzODkxOEI4MTRDMERGMEI2OTYKKzgzOUM4MjBDMjZGQjQ3M0FDQzVDMDhFMjA1NjQ1N0E3NDEyM0EzOTg4MDZFRUNEQjQyN0JCMTgzRjU0NTgxMDUKKzJCNjZEN0UxRkMzNTI5MDI1RDMyNDNBMDQ1NjI1RTlERDk0MTdGQTA4OUIzQzdDMzk0RDJCNjVDMDM2N0ZGNzMKKzc5RjE3QURFQzZCNUQyN0E1RDNEM0UyNDRBMDgzOUUzODI2N0FDRjA3QjJEOTk0QzJCNEU3RjMwQTQxNkVFRTIKK0QxNjg4RjE2N0QxNjQxQTcyQTc5NUIxRjREQTMzNTBGNzVBRDZENTQ2QUExMThCNUY4QTUwODVGNTc5NEU2RTUKKzI4MjU2Q0QzMUQyNTBEODMyOEM5NjIwQjhBQ0FCMDNFNEEzM0RCNDU5NUU5NTlGNEQwRkIxQzhDRTg1QTcxMEUKKzIyRjE5NDAwNjdDMDM2QTdEQ0VEN0VBNDhGMUVCODFBQzQ3MzVGQjI2QTI0OUEzMkFDMkUzRTc2MzZCMzJEMzEKKzdENzZGQkVCQTEwNkQ2QzY3Qzk0QTNCRDQyNTZCNzg2QjcxQzZFRjhEMTkxQ0E5MENBRDhEMkVFQUQ0MkM2REQKKzhCQjRCRUE3REFENEVDQjZFMDAyRjNCNzFDMjk1NUE1QTQwMUUzNEQ1NUY3NTVCRUQ2ODE3OEMyNzAxMDlCQUIKK0ZBMEFEODQ4MzQ3RUI5NzczMjU1MzBCMjcxODA2NjFBNTk0NDdEN0RCNTVBNjJENjUzMDlERTI0QjY2Mzg5ODYKKzFEM0E1MzlCRDM3RTc0QzJDMDBERkVEMzMzNkI1QzZCMjhEOTE1QUI3MTg4RkZCQ0UzQURCM0NCOTAzOTQ0REYKKzFCQTU5MjNBMUMwNTNENDY4MkJCODYxNkY0NEU4MUUxOERCMkI1ODI5OEY0QjFBNjI4OUNBOTkzREYzRTdDNzMKK0IwMERFQTNBOUI3NDdGRUVCQzRBMTFFNUI5QjhCMDVDQTI3MDlCOEFBOTM1QTQyMTU5RDNERTM5OTU0NEY1QUYKK0FDMUNDMDBGNkNCOTRBQjY5ODU2MDc4QzlBMkVCMjA0NkJCOTA1NUNERDZBMDYyMjExMkY3RDM3MTAxNDNGMUMKKzIwQ0Q4REFCNDEwOUNENDdCQzAwRUJDQjg4MzE0MDgxQzFENkM0MzEzMjQxMkYyNjFDRTAyNjJGQTI4REI3QTMKK0M3RDg1MzRCQ0JFMUE2MDQ4OEVBMjMwREM1NThCNzNDNzJBRTg3NTM5QTlEN0UyOEMyQkUwNUZDMDVGNThEREQKKzg3MTE3QjdERUM3OTc3QkFCNDVENEE5NDU3MDg3MDVGMDE3MjM1MTMzNzU0MDk5NUFFMzAwMTRENzJFQzc0QkYKKzlGRTcxOUMyREI3MjE5RUE1RTZBM0NBNTNEN0MyN0VBMDkxRTRERTEyRjNGODEwRjNFQzQ4MzhCNUIzQTg3MkEKKzFCMERGRTY3QzI1QjJBQ0FCRUY2RDgyQzQ1RUM5QjE1MDEyRkE5RDBFRjY5MjY1MDk3RTkxRjk2OUM4RTIyRTQKKzgyNTE2MEI5NkVFOTE4MTAwNUJDQTM1RTA0NTQ3QkI4Q0JBQjNCMzBGMjUyOEQ3MDc5NTgyQzUyN0UxQjhDQTYKK0MxNTI5RUQ3MDAyOUM4QjQ1NzEwMTg4OUMzN0RFMTI1NDFBMkU2MzQxRjk5RTE4MURFQUI4NDk1M0YwNzMzQ0MKKzcxNzNBRjNBMkQ0OTk5QTZGNzk4QUI1OTZCODdENDRGNkI1NzY3MkQ2RTQ3NUExRUZBQkQ3NjY5OENEQTg4N0EKKzg2MjAxMTQzQ0I2RUM4REQ3QTY0QUYyMjlDNjA1Mjg3RjUxQUE4OEJBMUM5OTAzOTZERkVGREQ0OURDNkNBMzIKK0MwNEQ2MTQ5MzBFNzY5RUFDNTEyRkY2NjQxRkJFNDFEQzdBMTdCMUQ5N0IzRkJENTAyQ0VFRTYyQjQwMjVBRDQKK0NEQjcwRUFDOTU4QkYwMDM3N0VEMkRFNDdGMTk2REE5REYwQUEwMEM0RTdEOEEwNTc4Q0RDNkZFQkQ2QzJERjcKKzFEMTA2QjRGOTZCNjkxRUZDNjI1Rjc3ODE3MkU5QTlCMkM5QTU4NEJFMjlBMUEyODdGRTExMUJCRjUzNEM4M0MKK0IyN0I1OTlBRjA0N0Y3MjFBMENDRkE4N0QxQzAwQjE0M0M0NjI4NzVFMjM2MjJEM0E3NzlGRjUwN0M5OUYzQkMKK0JCNENBRjE1NEY2Nzc4RkMzRkFENDE5RkU1MkNCQjAwQkM0MTAxMzg0MjUyNzJDMkZBQUQ5RERDNEY4OTBDNUMKK0EzMUJENDFDRTY0OEFCMUYzODFGQTQ0RjA2ODgyNDgwMzU4ODk0QTZBQUM0MDdBNkI3MEU1NzFBMENGMzBCODgKKzlFRjVFOUE0NDczODM1OUIzRTVBOTcwNEY4ODI3RUNERDUwNzRFRDIyODIzNjZDRTk4NUFBRkFEQTBFNDVCMjEKKzI2MDIzQzE5NzFERTU2QjZGQjIzODI0MjU1OUY3RDA0NUZGNjE2QURGMTk0NDgxMEVENTU2NjMxMDU3QzdEN0UKKzEwNUY4NDFBNTFDNkJCNzZBQjQ5OUExRTM2REVEQkNBMEU5QUIwMTg2RjU5NjAzRjIwQjU2NTIzQjE5RTgxMUIKK0Q4Q0ZERjEwMjVENTk5NTQyQjM0QUMwNDg0RTQ0NjU2ODAwRkQ2NTZEMDcwMzBDN0ZBNUE2QTJGRDkyRTJFNjUKK0Q5MkY4N0E4QjlGRTYzNzQ2MzcyRDJDNDg2NzVDMkU3ODZCRjhCODNBQkZBRUUyQjQ3RjM2QzBENkY3QzhDMUUKK0QxM0JERjMxODczMTM5QkJBODRBOTA4M0QyOUM0NkFCMUFCOURBMERGRkEyNjE2QTQ5NDJCOTU5MEM2OTA0MDUKKzgxMUY3N0MzOTIwRkY2NjFCQTAzQTFBNTBCQTEwMjhFOTY4RkE2NTMwNkE2MEE4RTQwMEE5NDE0ODQxMTY3QzAKK0I0ODYwNjNGRTlENEU3NkM1MTQ3NDg1RTA1QTVEOUVGNDgwOUNBMEM0MURBMjEyMzQ1OEEzOUY1MDMzOTNBQ0MKK0M5MTQ5RkU4MjMxRDIwRTY2OUQ2N0YzRDlDMTk1NDdCQUQxOTQxNTBDMTNDMjNGQkY5MjQ0Q0Q3N0Y4OTgzMzcKK0Q0OEU1NzY2NTkxMTNGNUY1QjlERkNFMkFEMzVFQTlDQjhFQjBGRTM2QkYyNzYxQ0U0MTMwQTc0RDMyMEM0MTkKK0IzM0FFRjc2MTFEMDA1NTQ5MjBENjQ4NEYxQzJFQjIyRjkwMzdBOUY3MDAyQkYyNzBDMTA0RTJEN0U0NkU2NTEKKzUzRUEzOTNDOTBBN0E3MERDOEY3MkMyNzMzODMyNzU4QzE4Mzk4QUVCODgwN0YzOTJBMTJFQzk0Njg4NDhFMDgKKzM3NDlFNjQ3N0Q3NTg5RDZDQzdBRDYzRUNENTIzOTdDMzMzNzJBRDhCMTNCQTc1NEJCREE1RjhGOTIyMDYyMzUKK0FDQjZGNDg5QjMwNjcyMEMzNkY1QTNGMDkwMkVBN0I0QzY5OTY4QzQzNjJDN0NFNjlERjBBMzFGOTAyODcwODMKK0M3QzAwNDkzNEYyM0E3MDM4NkM5RjBERTBGRjU2ODQ2MjNGOEY3MjNBN0I1REQ1RUE2OTgxRkEyMTMwMDc4QjMKKzdFQTRFNjhGRDAxMjU1NUQyQTc0QkE1MTA5RjFENjc5ODM0QzFCNEE4REQ4RjIyM0M4MDk2OTlGNjhFOUY0NTIKKzNFN0ZDN0U3RjlFMzBBMTlDNTIxMkEwNkE4NjJGQzRBQkU4MzVCMEIxN0E5QTc3ODhDNUVEQzdCMzNERDQwODAKK0YzRUU0MEE4ODA0QjdBRDg2NzRCQzQxNEVDQkVCNURFNzQzQkQ3OTYzMjU0QTNBMTY5M0YyODFGQ0M5M0M1MTgKK0U1NDU1MEFFMkYyMzZCNDJCMUFFREYzNzc0RTYwM0VEODUwRERDRjA5QTZFQzRBOTJEMzFDMjlCQTg2N0IzRTUKK0NBN0U3RDM3Qjk5ODVDNjg4N0ExNDAyQzU2RjU3NEQ4RUZCRUMyMzUzRTRBMzcyOTQ0MDFBMjY3RkI3OUZDRkIKKzQ5QzVBNkRBMzc0RTExRUYxQzJGMDE1NTc0QjlBODYzREM3QURFMTU0MTc0Nzg5RTVDMENBQThGMEU2NDg5ODYKKzE2NDMzMDQwRjU4QzgwNEZENUE1NTQ1MEI5QjExNjc2RDkyM0MyQjBDNzM2Q0U3MURFODEwRkY5M0IyOUVCMjUKK0I3RjdGQzc3MDIwMzQ1QjA5MDA2RjUwMkQ3RjgzQjQ3MkI4MDc0MjRDNEIwMjEwMkIyNDJDMDdBRDMwOUQ2M0MKKzI0RkRFQUE5RUQzOUQ3RDVBM0IwMUVENURGNTg5NzAzRjEwMTQ5RUMzOUVENjNBNUMzMzdGMjVDMEJGQzM2MjEKK0IxMTlBQTYxMzAyN0NCNTA2OUM1RDY4NTRCRkU4OUJEMTk0NDFFOTFBNDhERDkyODgzOUNCRkUzMzE3QUY0QTEKKzRGRDZGNDUyRDkzNDQ4MDFDQkIzREUwODREQjIwRERDN0Y1MTExQ0E5MDM3NTU0M0NCNzYzRjIzNkIyOTk0OUUKK0FEREUyREMxMjIzNTE1QkM3NkY4MTI2ODM2MDQ3NTZBMTU3MTczRjhDRTMwRjlGQzc5NEY4QzdCQjA3QzUyNTIKKzMxODVFREU4NENFNDVFOTk2ODFERDE0QTZCQzlERTFFOTQyRkNCQTJDRDJCN0E5NEFCN0U1RTQ1MUZBMjRDRUQKKzZEMDA4RkVFOTAwRDVEODMyMjE1NERFNDBEODkzQTZCQTc2MkRFRUUzMDFEQkM0MDA5OUMyQ0M5NDAwOTg3MDgKKzg3MDNDMTQ1NUQ1MzkwMEUwQ0Y5RTg0OTYzQTBCNTI1OTE5RjBDQzJCNjRCOEM4MzVEQTIxN0Y3MjQ1NDMyQTkKKzFEQjVGMTBBOUQ0RjVFNjNDMjhDNDBDNDc5OUQ2M0I4MTY3QzhFNjU1QjBGRDMzNDg3Q0RBQ0UzMjNGMzA0NTIKKzUzODU2QjNFQTY3REVBRDc4RTc5ODAwRjZDMEJFRUM5NEU5RjFERUU2M0REQTFGODczQzcyQTNBNzQ0NEU1MDEKK0I2QjhGQkMyNjYxRkRBMjJENEI0RDFGNkM2MjIyNjg5OUVGN0E1M0Y3REY2RTlFMEJFMEYzRTk0NzE1RDc4NkIKK0Q4MEFDQ0ZFM0NGQ0Q0NEQyQzQ0OEM5RDZENkY2NTNFNEEyQTY3QTNFN0ZBM0JDNUE5NjIxNzIyNDc3MkFGMTQKK0Y2RUQ4MUY2OEQ1MDU3QTgwRkY5QUMxQzQ4NkYzOEM3RjFDNzdBQzY0MDVCREU5NkE4MzZBMEE0NEU3OTA1QUYKKzJERjc5Rjg2RDRCQ0NFNjVCRkJDNzdGMkQzMjhEODgwN0JERkU0NTU4QTNFRjk4QkNFMTk4Qzc1REJBMDYxNDQKK0M2MkJFMEVGNzFFMkZCMjRGODgyQTAxNzcwRURDQjdFOUU4RTMwMTI4NEFENUNGMkUwQzUyQkMyMTVGRDZEMzAKK0JENjVBMjZDOEFDREJCQUUyQ0RBOUE0NEYxREU0MkI4N0MxODIzMjgwREFFNjRCNjY5OTYwNDhERTE5Njc0ODkKKzdEMkJFQjY4M0M5M0M5MDlGMUIwOTE2NjA3NURGMTcyMEU4QkFCM0NFREFDMURBNkM5NDJENzFGNTlENzREOTgKK0Q3RDUyNENFOUM1RjMwRkFCRTk5MjVCQjMwRTJEMzVFMjc0QTA1MkZGNjMyNEM3NjdBQzQ0RUEyOEQwOTFEOEYKKzU3QjZDMTU2RUE4OUMwODg5MTYxRUU0RjhDN0RBNUY4MzM3QjM3NzFDNkUwRTkzRUNENjlFN0RDNTI1OEE5RjIKKzI4OUNDMTFGREFBNkUzNTE3QjczNzU3NjJFNkZDQkMxQkJDODgxOTJBRDE5Mjk5RkRBRDVDRDIyRTUwNDIwOUMKKzFCRTZDREMyRUZFRUNCODg2MDcyMDE4OTk4MzQ4NUUxMEJFRTczRTZCNDg3MkM4QjQxOUY4NkUwMDE5MjVFMjgKK0I0ODNDOTkzMjJFNkRBQTI3QzI5MzdDODkwN0U3MTNDMzFEQjdFQjBCQzg3MjVBRjg3MEUzNzQ0MTY4Qjk3QzYKK0JDRjM0ODNFQkE1OENENUU5RjkxOTFDNURGMjIyMEUyNEI1QTA3MzkxNzJFNkQ4NkVCNDFFQjExMjc2QjA1MDAKKzY5RUQxMTg2RjA1NTI1NTcyQ0RCREYzQkFBRkNDMDVFMzcyRDVDMENFNEY4RUNGNzg4OUMyMDBFMTk0QTFGRjMKK0RGRjBEMDQyRTdEM0FDM0E1MUE4MjdBOTg2RTZBM0RCOEY4QkNDNUI2NkU1MDlGOURDQTE4NDg5QTI5NkExQzkKK0MxRjc2QkY4QjZBNzlFNzJDMUUwRTlDMEE5RjQ5OTU0MDkyQzQxNERGQjc3QkUxRDEzMjE0MzY5RTg2RDI2MDgKKzUyRTE0MUE1NzIyQUNCMzFGRkZEMkNCQkVCOUNBRUU5OEQwOTYwMUQ5ODhFOThGQ0QwODM1RDU3NDA2NENCMjkKK0QxOTJBODQxMDY5MENFQzZGRUQ2NzZFNTI5MkQ4N0M4RUUwMzU0QjVFMUEyMTg2QkJFM0Q5QkJGQzFDMEFEQTkKKzY1QTlCNzYwQkIzNkY1MkUzOTIzNjI0OTU3RDU5M0Y4RkY2RkM2QjZCRDZBOURBRDJCNTExQUM3OEZDNTJBNjQKK0JCNjRCMEJEMDIzNTY4OUYwMTREOTI2NDdCQzFBQ0NERTUyMzMyRkVDMEE3NDI4RDcyMTZGRTJGODQxQUE0MkUKK0EyREUyNDU2NEE2QTY5M0UwRTMyOTEwNzVBMUQxODMzN0RBNURFREFFQTZGREFCNzdCM0FCRjI3MTFFNTQ2RUUKKzYxNkVFQzI3RDREMEQ4QkQ1RkM4RDJEQTFEQkZGRUNFRjA2NDBENzE1OURDQkNFRjBCRjhEQTBCNkNBQzFBRUUKK0JDNjdERDI0ODI0NzAzNDZDRjhFRkREOENGRTIyNDI3RTAyNjY5MDQ0Qzc4RUM5OTQ3MjA0Rjk2NTFBQjM5RkUKKzRCNjZBRjBEQTlBOTY2RkU1QkE0MzYwREIwNTdGMUYxNEQxM0IzREU2Rjk0Q0MwQkI4M0FBMEYwOTY3MUMwQTUKKzcwOEEwQjU5MTcyNTkzQzkzRDg1RjA0ODcwNEJBMjU3OURDMzI0QjNBRUY1ODA4OUFBRTE2MzQ2MkMyRTAzMzIKK0Q0OTg1QjdCNTBCMUYzNzA0OEMwRTc5RTdCODVBODA5MkI4OUU2MDc3MTA4RkU2NDRDRkQwRjU4QjQzRTk5MjMKKzgyMjE1MDM0NjRERkY5NEFGNDlGQzExMjFBQkVERjI1MDM3MUM5MzQ5RENGNzc5QzNENDg4Q0M0M0EyNTBDMEMKK0I0NzYwNDY2MEY4NkY5M0IzQ0MxNjA0NEUyMzBFNDhBOTc2MDY4NTcyODNERkUyMTkyMjBFQjFDQ0E5ODM3N0EKK0I3QzU0NDQwQUZGMzVBQUEzMjY0NjY0ODVBRkFBM0Y1QUM4RTNEOURCRUFFNjEwN0FBOUY4RTk3ODE4QzVCQzgKKzg1MkIyMUFEREYzQ0FGN0NBNzU5Q0UxNDQzNDc0RDc2RENBQzU5M0E5NkQ3NTdBQzY0MkI2QjhDQkNGODlFRDMKKzRGRDQwQUI5OThGRDI0NUE1QjRERjRENTAxMTMyQkFBRDZBQTcwQjI3MkEzNzg4RTBBRTcwOTNCNkEzMzgxOTkKK0ZGN0NFRkU3RUY2QUQ0OUFGQUY0NUFDODRGRjY3RjZDODkwQjAyNzRGNzVCNjU0NjFBODY4NUZBNDQwN0FDMjcKKzE3REQwMEVCMkI3QTVDMDc3MUZEMjVCOEM0MTQ1MEU5MUQyRURCQzcwOEI4RTA3NDgxMTgzMzg3QkZENjUyRkMKK0JGMUYwNUYxNjBGQkE1M0QzM0MxMTk1OUYzRjIyOTlFRDQwQTgxMzkyMzMzRTdEMTA2RUY1QjQwRjBEMzg2NjMKK0RFRTA5NURBRjVCNzJEMDBCQjRGOUY4RjI2MzU2QjNBNjQ1NjAxN0I5NDk0NkEzNTE3Q0Y3MTI5NTBFOUZGNEIKK0VCODk4OEFFMTc0MzJFQzlBQTIwNDhEN0UyODA5REFGNkJBRDg5NEREMjYzNzkyM0UzRDc1NzY3OTg4REU0M0QKK0FCMjJEMzdDNkMwNDIwQzY1OEJFRTVDQTY3NjEyOERCRUUxNUNCMjQ1MERBNDAyMDQyNzlGMDYxQUNBRkQxNUQKKzk0QjY1MTQ4NDM0MzYyMzgxQ0Q2MTQ5MDAxNTlGN0FDMkVFNUVGN0MwNTMxQzczRTE1NzFCQTc2ODkwNzg3MjcKK0U4NjVDRDg1NjNBMzZBQUNGMzVFNkExRTE2MkE5Qzk4Qzk5NTc0RTgxM0I5MTAwQkNBNTNBOEQ3MUU2OTdBQzYKKzYxNUNGMEE1OTkyMzhEMzY5MjQzQzIwRDFCNEU4QkYwMkY3MjdFQTVBMkZGNjczRjBBQzc2Qzg0QjVENzA4NDcKKzFEREUyNzdFRTVFRjQxQzIwODMxODVDNUUxMUMxQTRDRjc3QThBMkMzQURGQzBGQzhGMjcxMUFDOUIzOEY5MkEKK0I1MUFDOTQwNzM2NzNBNjdEMUFCNTRCOTM1NkUxMDgyMzNCMkU4OEFFMDA0QkU5QjYyNTRDRTUxOThBRjk5RTMKKzdENDk5NUJCQUUzMkRFQjczOEZFQjY1QTEzRDNGMjIwNjVGODNFNDhBMzBGMEJEOTQ4QUFBMUM5M0U3QzBCODQKK0NGMzM5OEMyQjg2QjMzNzU5RjgwMTgyMzlGQzJDRTYxNURCM0IzN0IyQzM1RTQ0NkE2RkM4QzI0Qjg1RkY2QzYKKzEwNzQyNDU2ODE3MzgxQ0QwNzBEQjExNUUyNUYxNUQ4NUJDOEJCM0VERUVDQTZGMjFCNTgwOTEzMjIxRUM4MEMKKzY0RkVCRUJGNjRBODIwNDYzMjJGMjg5RDMyRkVEQzAzMzEzNDA3RUI2M0ZBNDUzMzcwNUMwMUFBODVEMTI4MzYKK0UxOTA4NDhCNDYxMzkwQTYwRTRCMDgxNkM1MDkwRThDQkFGMzE1QkY0RTI2N0IwRDM4NzVDMDY4MThBOUNFREEKKzZBMTZCQkRDOUUwNzAxMjc2Q0Y2RTdCOUNGNjg4MkZENURGRDI4RTlDM0UzQzJBQzkwMzZFQTNGMjRBNEVBNzEKK0Y2NTA4OERBNjE5QTYyQUQ2MzQzM0RGMTZBNERDRDcwODRGQTNCNkQ0QzIwQTc2QjNBNUI0Mzc0MzdDMDJBMjAKKzQ1MkE3OUI3QTc3OEM4QTI0NUQzQjIzODZGOEY4MEQ2MzAzQzgyOTdDOUU0OUM3MTc5MUIyQTk0MEI3MDQwNDQKK0VDNjg3QzdGNzA2NDc5RDNCMDIzNTNCREE2RTc4ODcwNDM2RkNCQkYxRTRCREQwQ0FEMTczQTcwN0FCMTU5NDEKK0Q5NTMyRjhDNTUyREFGN0UzREE2QjAyNDk4QzlFMTM5MTJGMDcxRTNGMTE3MDg1QzRFQ0QyMUNCM0Y2RTFDQUMKKzY0MUFDRTAwRTkyNjkzNzc1QzI5QUE0OTZEODVGMjFGOUE3RDBFM0U5NkI5NTcyMDhDRThEMUY3NTQwQzJCN0YKKzQwQTcxMjU1NTUxMjM0RDkxN0MyMzk3N0I3ODdENEI5N0Q4Q0ZBMjhEMUIzQzZCMDI3OTMyNzhCMEVDQzJGMkMKKzdFN0REMDAxRTE1ODVBNjZCMUEzMDE5OTEwQzE2NjlCRThBRDY3MDU1NzFBRjc5RTFBNTg2QjE2NkUzMzE1RkQKK0JBM0NCNEM0MjZERTQ3MEM4RkUyOEUzMDM1NzZGMzQzOTRENTMxMzU5Mjg0QUEzNDk2Mzk2NTgwNEE5MDI3MkUKKzk4OTZGNjY2RjJCMEIxQ0EyOUU0OTgwMEUxOUM1Mjg2RkI1MTU2NTI1Qzk1NUVFODMwRTNFNDg4OEQwN0FDQTgKKzYzMTAyQzk0NjA2OTVCNDRFRjdENDIyRUMxQTgxOUYxRTgwQUUzQTk4MzQyQUIwRTBCNzc1NTQ3NjQxMjUwQzUKKzQ3RjAyNDIyM0UzN0VEODk3MDk3NjAyMkI0NzhGOUM1QzNGODgzMUZEQjRERENCMkM4MUI2RDFDMkE3RkUxMzQKK0QyNDM4NEQ5NjgwMzcyREEwQjRDRTg4MUVENkQzQzZDMzM0QTBGNURGM0RFRjlEMjYyMDUyQjEwNDc5NTFGRTQKKzQyREQ1MjcwRjM2N0U5NEQzM0E1OEU5Q0ZBOTRDQzczNkY5QTVGQUE0N0Q5MDVDRDI4QUI0RTQyRDM0RjQwODUKKzhDMDREOEJDNjVCQkYwNjlGQzAzNDI0OTJBNjkyOUEyMTFCMDM0Nzk5NUI1Mzg2QTA1QTYzQTc4RjZEMUVBQzUKKzcyRDkyNTMzNkM4NjJDQzEwQTVFRjNGM0M3MjYwNzlFRkUzRERFQzI4NjE4MzgwOTIwQzdEOUYzQzczRkZDRUIKKzEzN0JBRjVERDlERUE2MDlGQTk1QUI3RjE3NzBBOEE4MkY5ODYyNzI4OTU2NUQ4N0FFRjZGREIwRkZCMzY0REQKKzE4MjAzRDEzODI0MEJGNkEwMjYzNkZERUM4NUE1OTk2Njk1QzZBNkM4RTJFNDFCMjk1ODE5QTQ4QkU3Q0YwOTQKKzhCMTI3QjI2QUZFQ0FFMzFFMTBFNjU5QUZDMDVBMDE1QzJEQkQyNjc4NzE3OTM1NzA1NzIzRUM5MTI5MTk4M0IKK0ZCNDhENzE3NjlBRjVDQzM0Q0IzODQ0QjY4ODI3QzJFODE3QThGOTNBRjMwQTA2NzBBQThFNjAxRjcxNDQzQkMKK0ZBNDIwNzM1Q0MxOUM5MDI5OTE4N0VCMTE4M0I0OTY0MURCQkQ2Rjg3RjExNUVCOTBEMkU1MDRGMjk3QjA0QzAKK0ZCNUNDRkFERkE4MjYxODBGNkQzODE0QURGQzc5MDJBQUNERDE5N0YxNjc1MjBDQzUyOEM4MjRFNjQ3MTMyN0MKK0I1MEM0QzEzNzE2MzUwMzhGQjMzMTk4MkM3REMyREY0OEZFQzNGNDA0OEQxMUFGNUJCQTkxNThCMEI4NkJBMjgKKzRCQzFBQjI2MDdBM0VDQzJDOTQ0Q0QzQkNCRThDNTQ3OUM0Q0NDNEYxNUJBRjBBRDlBRjkyOTZDNjg3NzhBQzYKK0VENTIwMzNGOUIwNDI1RjIxRjgzRUQyQTQ1MkU4MTk5NEYzNkUyOTM5NDhEREIxRjI3NTU0RUUzRDE5MjJBNUUKKzFCOUYxM0ZGRkU3OUVERjY4Q0I0MThGQzhGNjdBMTc4NTZGOEU0NDIyMDFBRDY4RjQ1MDk1MzA2QUI2RTAzOTEKK0MzMkY5OEM3QjQ2MDI0MTI1Mzg5N0I2NDUzRDlGMTdCOTIyMzQ2NDNDODAwQkU3MTU0NDk4NUFBMjJEMjM4ODEKKzdFNzYwMUM5MEU2NTVENUM5REM0QzcwRjU1Qjg2MTdFRDc4RkFEODVBQUZBMzkxRkY3NTFCRjBDOTNGMDNGNzkKK0JFQTI5OTI3MUM3QjZGRUQ4QkQ0MkQzNDUzNjZGREMwRDQ0RTA2MUZDNTE2RjM1MTQ4MzcyODVCNURFNjBEOEYKK0VCMUU2NDI0RDg0MEY0NjZBOTM2QzlGREFCODhDMzQyRUI4ODcxNTJDNUEwRUIyMDc0OTkxNjgwMDgzMEQzRjUKKzIxRDI5QkQ3RDExNDdCMEY5OTE0OEU0MDdCQUU1MkYxRTEyNDk3N0U4QzA1RTQ2RDU0MTA4MDY1MzY2REFBQjIKKzk0Mjc4Q0M0QkU5MTBBNjhBMDY0NERCNkY4ODQyM0Y5MjMzQTIwM0Q4OUNDM0RDODhBMEY4NEFGRTRFOTk4RTQKK0M0RjA4MkY1MUY4NjkzRjk1QTZGMDhBOTZCNTYyN0E4QzEwMDA0Q0ZGMzVFMTEyN0NDNDI5OUJDMTU5QjI3MTEKKzI3Qjg5NTM3MUE2NUQ4REE5NEJEOUUxQkI1NkM1QUU4NEM4QkJDMjNBNTI2RTYxMzNFODlCQkVBREQyRTI1RjgKKzMxOEVGNEJCNTU0MURGNjhBRUE3MTI5NDBBOUI1MEMxQUZBQTA5RjE5RjU3QkE0RTI5OTg2REJBQzAyMzY4RTAKKzI0MTVDN0RGMzcxNTBFMTk2Q0RENzQzMzdDQjI2NDU0RUE2RjBBQzE0RjFGNTk4ODEwRDQzMUMwNzVDOEI5MzkKK0EyMDU2ODhFODY5ODdDOEE5QzZFNTYwNDJEMjYyN0M1RTY3MzA0NDVEOEEzOTREQzZDRTZEQzZGMzA1NjM3M0YKK0REOENDMThFQTE5RUY0RjNGNEI1RjIwNTVBQzg1RjI0MUM5RTlFOTcwNjg3RkM2QjIyMzg1QUYzQkRBNzBBNkYKK0E2RkU4QzM2RkFFMDJGMzgxODBEQkZFRTY1QzY3MzdFQTk3MzhCNDlENzc0MDM1Q0E2MEVCMjI4RDhDQ0E3MDkKKzMwRkJBRjZCREI1ODgwMjcwODA3MUU1NDNCNkE1NjVCQjc3NUY4QUJGMEJFM0UxM0Q0RjdCOTc1NDJEQzRGNDYKK0NGM0FFMjQxNDk2QTI5QTI5NUI4MDdEMzY3RDAyMzdDMUYzOTdCOTQyQTY1RTYwQTEzMTNGNzgyMTBGN0UwODIKKzREMzU1MTk1Qjk5M0JFQzE0OUM5MDVCOEQxQUZCODlDMzdBMzc3RDA4QUI4NTNDMUEwRTU2QjQyNDIzRjUzMDgKKzY4MjQwMjFFNDMxNTdGODVFMUE1REFCMzhFMTE0N0M5QzRCNTBFM0I3NjVCNDEwRTU2OTk5QjMzRDlENjY0ODgKKzI2RTg3ODBEQjJBMUI3QTg5MzZGNjc0NTI5MzVGMjcxRTI2MjgyMzQ0MTEyNDY1N0Y2QjI4M0FERTc5RTA1RjQKKzlGQUE0RDI3MzRDQjdCN0I4RUVDRDE1NUM5RkZFRDQ4QTQ3QkFERTMyRDFDQTU2Q0E1ODAxQzZENEI1QkM5MDAKK0MzNzc5QzA3OEZDRjU2NzBGNzRERTY1NTU2RThBNjU0NTI2OUQxNTdENTRFRThENTU1RjBCNERFNDMxNTQ4NkMKK0ZCQzZDNTM0REY4M0U1MjcwODIwNTExMjgxODcxMTVBNjhBOEIyRjJBRDcyMjRDMENGMDU0QzJBNkZBN0I3QzMKK0JBQzgxMUE1QzcxN0EzM0ZBOTVGMjdFMkVGMDA1QzA3QjYyQTgxMEE0RUY2MkMxREVCNUJEQzgxMTdGMzk1REEKKzBENEVFN0Q1NTVBMkM5RkJGMDIxNDYwMEI2QTZDQzAxMjlFREQ0RUQxNTI2OTYzMUFDNjZFMTMzRDQyMjU3QTIKKzhDNzQyNkRFQTlEMDExMThBOTNCQjA4Mzg0OUJCMjZBRDYxRjBGQzI5QkMyMzNBMDlFN0ZBQjg3RjFGNzA2MTYKKzNDMjNFQjcwQUNFMjIxRTNCQkQyOTM3MDUzMkVGMENDMTM0OTg0MDY1RUExRDg2OTJCRDhDQzA4NThCRDYxRkYKKzk2NDE4Q0I5NjUzRUZDNDU3MzBGQjlCNDQ2M0IyRDYzMjQ1RTM3MjBFOTVFN0MxQTAwMEI5MDNCMTAyRTc1MTEKKzQxOEFDNzI2NjMzMzczQTRGMEJFNkIzRjM3QTE5N0QwQjc1QUNCNzIyNTk3RkYxNzlBQjFBRjk1QURGODQxQjkKKzk3QjM1QTQ4RkU3RTNFQzU5NEIyOTFBMjAyQjc4NTU2NDBFMTQzMzA5Q0NBQjQxRjI1QzNDMzVFQTZCQjBGMTEKKzk2MTdGNERDNTc1REUxNTUzQzQzMkUyQzQ4RTFFNzdBQjA0RDg1QTBCQzE4NUM4OEJBRkQwRTBENUQ0RTkwQkIKKzg5REZDN0QxODgyNEVEMTI1RTE5NUFGMjM0MUIzMDE3RTgyODJBQ0JEQTkwRjk2RUYxOUI4RkEyMjMxNDFGMTcKK0NCMzgwMThDQ0E1RDlCRERCNUJDNUJBMkM2RTg0ODc2ODMzMUM5RDczRUJFN0YxNzZDRTk2OUU0MTlBN0I4NjUKK0ExMkU4NTNGMzE0RTMwNzFGNThGMEU4QTA3QUVEQURCOTUxQTcwMTVGQkE2RjQ3QjU5ODFBQTA4OTAzNUUzNDkKKzQwNDA2RDAzMzRCQkIxRjZGMjFDNjA0MjY5QjIwN0U4NDMyQjVDNDhENjA4OUNCQTExNUQwNUZDRDMwREYyMTMKK0NGREY0QUM3QTMzNTFDNUE4OUNFRDM5RjkyNjdENEY2MTI0QjkzNTBDOUZGQ0UzNEU4MTIxOUNDNjA0RTlGM0IKK0I0RUQ3NDI2RDU3QzhDNjg4NjIyQ0UxODZBRUZBNDI3ODgwRjIyRUIxNzczOTVCMDcxNkQ2RDczNjdCRUU3NkQKKzg5OUQ2NDBGMDE3RUVERTQ4RDNDN0U2QjVDRUI5MkU5QzNGRjZENzA4QUE1QTg3MUI2QjA5OTIyMjU1QUREQTEKKzBGOENGN0FBQjUyOTA2RDRGMzIzRkFCOUM0NkQ4RjQzOTYxQUVCNkVDNzJDOEVBQTBCMUZBQkQ0RDgwNUMyN0YKKzJENkM4OUI0MTREMUFFRkJCMzE3NkE2NzI2OUZFQ0I3MkIyRjNBRDgwM0E3NUI4QUQxNTkwMDc1QjVCNDEyNTMKK0JDMzExODIyNEI4Q0NBRDNFQzIwNEMzOEJFN0VBRTA3QkIxODkzOThBMzE4MzdFMUQ1RkE4MUVFM0Y1QTRENEQKKzgxNDU1RUY4OTAxNTFBQzQzMThFNkQzNzYzRUQ0MDUzMUNBNzVGNzI1MjI2NzM4NkJFQzREQjhBQzFBM0Q4Q0YKKzdDQkZGQkRERERFODBBMDcyOENCMDRGQjA1QUY1QTM5QUUwOEQ5NUUwMTM2RTAxQUM0RTZFRkRFODg0NzE0ODAKKzAxOEU2MzYyNkMwMDI2MjA5NDY4NzYxMzZDOEYzQ0RBRTREMUJEN0RGRjFGNjc0RkYyMjMyRTQ2RDg0RkIyMEUKKzcwODhGRjVFM0VDNzgzMTU1QzZCOEZBMUUxREI2NkM4M0YzN0U5NDEzNEUwNzI5RDIwRTc0REExQTUzRjlGMDAKKzEzRjQyODM5Nzc0Q0UzRTFCRTIyNUNGOTY5Mjg2QjA3MTlDRTAzOTlBMUQ4M0Q1MTI3OEY3NTE0QjdGMDJBMjEKKzM1MUYwMDZFN0ExNUZEQjY1MEE1QzlFMzg3N0Q1NDkwQUFDREIzMzU0MUNDMTVBQ0U4RTFDOUU1NDgzMDNFOTAKKzFEMjNBMkZGNzE0NzNDQzgzREJFQzc4QTMyRTJENTFGNDE1MzVCNzc2QjQyMDgzQ0QwMkU0RTE4RUU5MUIzMzEKKzM0N0E3RkI1RDU3MDI1MkZBNTEwN0E1Q0I0NzFEMUY2RkRCMDU5NTFDQ0VGRkQ5RkRCODEyOUZCRTQ3NUZGQjAKK0IwMUQ5MUE4MDEzODUyRDU1NEM0N0U0OEY0QjlGOEU5NjYzMDJFNDczMzc5Q0M2OEU4QTJFMENBMTdGRUIwMTYKKzE1RkE3MUZGRjg1Mjk4NEI3NjhDQjY3Q0VBRDk0MkM4REJBOThDMDZFRjExNEFFOTkyNzQxOTA4NzNCQTFBREMKKzY1MTgxRTlFQTg4MDk1OUU0RkU3REI5N0Q3OTlENEQ4N0EzREZFRTY4MEZBMkU0MzBDNjYyNTVCNUFFOTg2QjUKKzE0NjMxQjJGMTBBQzBDMjVFMUFCMTQ4NjUxRUYyNkFDMTY2NTIzNEM1MDQ2RjA2NUE3MUI5NTczMEExNzM2RDIKK0RCMjMzOTA0NzAxMDA1MTA0ODNCREUxQkEwODU1RTFENzdEOUIyQTBFMDEwNkEzMjEyRUVFQTExQ0NCMzUzQzMKKzJEMUU4REU0NzA0RkNCNUNBQTIyRENBNUIxOTUxODBDRkFGOUQxQjlDQTBBREUzODc3MDA0MDM1QTgyRUZBN0MKKzJDMzdBQzFCMkEwMjQ0N0E3Qjc4ODZCQzMxQUFCRDREOUM2NDkxRThFQkFFMjg0RUQyMDhCQTgyMUMwMTI4MkIKKzRCQTE0MENCREQ1OEREOUY1MEM5MENBRkExQTk5QzRGOTUxRjkwNzM0REFEQjJENUMwQTU5RTBCRUU0NjA5Q0EKK0Q4MjEwRTNENTVBOTg1ODAwRUYwNTg2OUEzN0MzRjRCRkU0NkNFQjc2NTY3M0JGN0Q2M0U3MkNCMDM5NTgwMjUKK0M1MDg1RDgzOEVFNTE0MERFRjIzNzM1QTk0QUFEQjU5MjA4Q0FGMUE3RDI1MjlBOEQ2NTM1RUYzODk1OEI2QjgKK0MzMDdDOTNFOTgzMDg3RjNDRDgzMjc0RTEwMkFBMEY4ODQyRTYzNzM5QUQwOEM1NUI4OTEwMUE2MDRBOUYzQzUKKzE0NjIwQjdGOTUwNzg1MzlCNDlFRTUyMzY5OUEwNDk0QTA5MTExOUQ0OEU1MUZGM0MwOTQ1OTA5MTMxQzI3NTYKKzZBNjZERjZDNUFFRjEyQ0ZCNjNDQjhDOUFGQzNCRkE0Q0Y4OUM5MkJEODYyODVGQTRFQTY0NTFGRjJDODVFMjQKK0JGNEMwNjFEMTY5MjgxNzlFQjI2ODc5RjdBODQ1MTQwODg0MjE0NDlBMTcxMjNDQTUzOTc2RTBGQ0YxMEREQjcKKzIyMTJENUM0QTFEN0FEODlCMjdGQURCMzAzRTk1MUMwQ0JCRTg0QjU5NjNDRDExNjA2MUZGMjc2N0E2MTc2RkMKKzc0MDVGNkI1NkY5NjgyRTM0NThGRURCRTMwMUFCQkNEMkVBOTBDNTc2RjQ0NTlENTZGRUQxNDA2MzRGMzI0MDEKKzgwRDMzQTRCMTQxMTY5MUZDQjJDMDNGNDM2MjhFNTk3MkQ1MzM4MUM4QjA4MkVBRkI0MkNCMEEzQzRGNjQ2MzMKKzQ0NTMzOTBCODJDMkMyRTFDOUVFNkZGRDM5RjgyQUU2NjZCRUUzOENCNjg4MTJCQjA4QzJDN0Y4RjIyQzVCQUMKKzBGOTAwQTAzRkVGNjk4MTI3OEYzMjQyNUIwQjlDMjQ4QjE4RDhFMzY4Rjk5MzJDRDJCRTU5QTMzNzU5MzJBOTcKK0UzQzczQzAyNDMwMkRDRTU5MkVGODRCMTQxNTAxRjk5RDlDQTBDRkY4RjI1NkIxNjhGQURERDcwOTNFRjkxMzIKKzEyNzUxNzFBNkM3MTU0RUExMTdFMjc3OTFEMTU1QzREOEIwNTA4QTk2RUI4QjUyOTJGOTA4MTEzNUJFMEQ1OUEKKzU4NTdBQUMyNDg0RjRBN0U3QzgxNTZDNzJCRTdDQjdCMzFBOUI5NEMxREMxRTM2NTQwQTY0QjhFQUI4NTY5OEYKK0E2RjNBMzY5QUNENkVCQTdEMkZEODYzODhCMDk3NTk1MjYwQTdGMjc2QTdDNUVGNTI5OEYzQjQ2NDQ4QjM2RjMKK0EzMDRDQkI2NDE2MDk2RkFBNDVBMTUzMUMxREJDNjc4QzYxNDNEMEZFRjQ5NEVCMkQ1QURERjI4NjgxQzE1RUIKKzhDQUZDQUFBNEFEM0I5MTI2ODNDNTI1OTQ0NzdBODA4NjI3MDgzOUJFMkI3RUYwNDNCMDIwNjhDMDM3NkY4NkEKKzY2RTM1M0RDNENEMTAwRERDNEJGRURBRDQ3RjY1NkQyQjQ3ODZGMzg2RjYxQTkxNTdBRjBGMUExMTZDNTE0NzQKK0QwN0JCODc3RkZBMUJBMDRCRTY4RDA3QzNENjA2Q0E0QjIyRDI0Q0Y3NjFGODlERkQwNTRCNTcxMTg2NzQ0MUYKKzRCQTNENTQxQjQyMDVFREIyRUJCN0RBNDA2QTlEN0Q1RjlFQkRBMUM1RkM2QjVFODBDMkZENjFDMTI4QUI1Q0IKKzFFNzZCODk2QTc2QjNDMEFGNUQ1RUMwRkM0MTZGQTk5MTAxOTNFRThDOERCM0VEMzU2QUJENEZCMzhBNUIyMEUKKzk3MUFBMTk5QkNCNTRCNzNCNDczNjFBMERDN0E3NjE3QjJDQzEyNDg4NDM3NDNFOTVGNzExNjRBNTI0Mjc3RTIKKzE5NjU0NkMxNDZCQTRGNEVGMDMxMTdDNDlBRUNCQjQ4MzA4RjgyMEE3OTM1NDk3OTBBNzIzMzgyNTUwNTAxM0EKK0ZGRjlFQjBCQkJBMjlBNTRFQjY2MzdFMTFERjlGMTcwNEIwRjJGMTE1RDc1ODNBMEMyMDVBRjdDRTdFQ0E0M0YKK0YyNzNGRjg3Njk3N0UwQjU0Njc3ODE5NjJGMzEyNjQ2OEU1RjgzN0JDOTJEQjdFRUZERkYxNzI0NkMyNjZBRTIKKzdCQjNEMjY0NkQwREVBNTE5RUZGQzYwREIxMjY3RDZFRTk0MzVERkY2OUMxMzgwQkI5OEU0N0I0OTFBRkIxMkEKKzVENkRBMUVFOTg5Q0JEMDg0RTM4RDJCMTVEQkFCMjNCMkMyMzM4OUNFNzUyMTlGMjk1MjA3QjVDNzhDNzlFMjcKKzIyMjM2MjFFMDIyOUM2N0E2NjhDMjc0Mjc4NjFBNEU0NDQ2MUI1NUVFOEYwRjM0QzA5MTY2OTQyNDE0MEYwQUEKKzYxRUJGRDlCRkU1QzQwRjVBQjg1QUNDOEFFQUNBNkMxOUM5OEQyOEFFQTJFN0I3MjcxOTYzMTZCQjhCODk3RTkKKzZGQTdENThFQTRGRkM5QzlDNDhCRTRENzMzMzc2MDU2QUE1Q0E4Q0RGRTM0Q0IxQjk5QUZEOEUyNUZGMTlEQ0QKKzJCNThFRUVFMUE5MEJCMzNGQjcxOEVDRkVCMTk1N0I1MDBCNjE4Mzg4QTgzQjMyRkVDMkZDRjU4QzVBM0IzQzcKKzY4MjkwQ0JGRkE1MTVDNkIzQkU4RTI0OTM2NENCMURGMjU4M0UwNjc3RTA3MEE2QTExMDMzNDgyMzg2MEEyNjYKK0U2MTc2NDY0QzY3NUM2NTdCQzU1NTkxMDA2NkY3MDU4NjBBN0U5ODIzODhFMTY2RDhEODlCODRFMDJGQUVBNTIKK0Q3RUFCNjZCRDlFOEI3RUNDOUZGQ0YyRTYwQUJDMUU5NEJCNjgyRTQ4RjU0Rjc2MTE5QjU4MTZFQ0ZENDk5QkEKKzRDREE5ODQwOUY5OUQwRDcwNUNFMjIwOTMxMUU4NDRBMDNBOEU5MkM0ODg1MjlGNUM4RjY3REQ2NTIxMDMzODIKKzE3NkIyMEM1QTI5QzE4NTBCQ0VCRTYzOTg0OTFCMkVEQjg0MURGNEVDQzMwQjdBN0JGN0QxMTI3QzNBNDEzNTkKKzJBMEIzQTZGMDc4RkFFMUZFQTEzRDEyRTEyMENGQTcyRjQwMEM4M0E4NUJFRDVEMTM5MzQxMTFFOTc1Mzc2M0YKK0RBQ0YwNzA3REQ4QTc5NkVDNEI1OTg5MjMxQUU3QTY3MjYyMjBBMkY2QkNGNjAxQzlBODNDMTk0MDFDNzg4MUMKKzdBOTQyNzNDMDhGMkFGM0U3NzkyRDUxQzMwMEZBRjYzRjlCQTkyQTE1QjRDRjI2OUIwMTNCRDVGNTJGMEZDMjAKKzE4ODMzMThDNDY2NTZFMUQ3QTQ5MUJBNTY0NjM0QUFBN0NFRkYzODlFREE0RDUyQkMxQzNBNkQ4NjUyQjRBQzAKKzBENzM3MjMxNkIyM0M2QTc2NzhEODlCNEIzRjdERkRGOTE4ODg5NDY5M0NGRUY3RTRDOUQ5RDYyQTUxNzk0NDkKKzcyNTdFNEI3QzM1NjFGQjYxMzZCMTJGQzdDRTk3MkE0MzRDQkJCOUQ4RjU5QzgzMjA5N0VGOEZEMTYzRTQ3N0MKKzMzMjk3N0RBOTkwRjlEMzcxRkMwRUU0NjlCMUM0QTczRDJDQzEwN0NGQzQ2RDNFQzQyQkUwNUU0Njc5OUE1NjcKK0REMzM5OTNFQjJCMzFBMTlGRDM0NjNDRDhBOEIzQzE0REY2QUEyRTREREM5NUI4RjkwNjgxMDZDMTk0MDhBRDUKK0NBNEUwOUM5NzVCQjdBMTYxRjdBNDRENjUwRkNGNUZGMDk2RjM5OURDOTUzOTg3QzJCOTYyOTRFNzM2ODAyRjIKK0U0NDMyNjhBNUE4MzY3QUM4REJEQkU1ODFEOUEzOTFGRUZCMTE0Qjk2QTVERDlBNjZFNkNGMEM1MkE0NjIyN0YKKzZENERDRTkxNjU0NDdDMERDMkRGM0JCREIyMDZGQkVBNkFGRDNBODdDMDczNDVDRUQ3ODg0M0Y2MEJCM0EwM0EKKzM0ODFFNEM5MENBQ0E1QTY4Q0E1QUJCMjJEMTUyODJDQjNCMTA0OTJGRTgyMUVEMTE0MURGNkU3QThCMzYyMDQKKzc4OEM4NTM1OTFDMzFCREJGODZGMURCRTA4QUJDMUY0NEMzOTRBQkZFREZCMjNBOTlBQjE4REQ5RDY1OTk2MDYKK0FGQjJBOUIzQ0UwNjhEMjREMjE1NEMyREVFNzQ1OTM5NURDQkRCODA4ODk3NUJDMUQyMzM5MDI5QzRGNjI5QzUKK0M1MThDREIyNzBBOTUyNzYzRTdCMTNBOTNBODk5NjAzMzJFN0E5QzY0RDAxMDcwOTlGQUY1OUZDRjlDMkY2RUIKKzkyODEwQzY5MEUwNEE2REJBMTA5QzgyOThFNjgwRDc5NTVENzYwODYxMUIwRDE0NUI0OEFEMTQxQTI3MEE4NzAKKzdEQzNGOTlFQTg5NTMyMjY5QzIxRjIzMDlFMEQ2QTVGN0Y3QTI4RDVDRDI3QzFGRjJBMjNFMjJDODZBMENGQzcKKzIwRUQ2QjBCQTQ0REMwRDE1Mjg5NzRDNEJDRjdDMDE2OUVGQjE3QTY5QUU1MDVGOTQ0ODI1ODQ2M0NGRjg5MzUKK0NGQkRGODlCODVFM0UzQTM3NkZDQjczQjIwNUE3NERBMzdDQ0MwMTQ0MzQzQjI1RjFERDc2MERCRDdGOTVGQzIKKzNGOEU0OUY5RkM0RUVFMUI2MDY0NTk4RDNDRTBBMkIzQ0M5Rjg3QkJGQzdDQ0E2OUE5QzMzNTBDMDJEQUY0ODAKKzAxOUVCNEIzMUVGRkU3QkU1NzZBNUIyREU4ODczN0Q1OUE4RjYyMjIzRTZGM0NERTQ3MzdGMTMzNTJDNzM5OUEKK0EzRDNBOTgxMzRBQTNGQkRCRjE3NkI0QTkzM0U3QjA2RkNBREI5NDFEOEU5Njg4OEQ3RjExRTgzRUVEQzU0RTIKK0VCOEUwQzk2NjI1NDg1MEI5RENFOEM5ODQ5QTlFQUNDNzA0RkM2OEM4REMzMzBGRTJCOEJCMjMyNDJDNDc2RDEKK0M5NDkxM0VBMzc4MzQxQzhGMDNDOTRFMERDODNGNjAwRjQxM0E4NUMyQzYwNUYzRTYzREEzQTA4MjAwM0FGNzkKKzRCNjUwQTAxQjMxMzhCNDkzQjYxNDc1MUM3QTQ0NzA4OTE2RDc1RTQ1ODk5N0I1QzFGOEMyMzU5REFDQzYxRjcKK0M5RDU4QTk4ODk4RThDMzdDRUJFNzQ3NUFGMEMxRkREQTBGMzBEMUIyN0U0NTcwQUMwQjc0NTUzRDIyRDU4OEQKK0MzMjIzM0Y3MTdFRUM3QkFFRjU2NzMzRDA2MTZDNDREOTY2QTRDOTZEN0EzN0MzRjUxMUExMTg3Mzk5RjZFMDkKK0U5RDI4QkJGRkE5RDYyN0EyODg1NTk3MTBGOUNBMzEwOURERDkyMEI4OUQ2NjAzODA5MDMwOUZERDAyNTQ2QzEKKzZGMTVBQURDQ0IyQzM3OEM3NzBGQzMzRTQ4OTExRjRFRjU3M0I0RTYyMzFBRUFCRTFCRjg0MTFGODFEQzdGMTYKKzAzNkEyRUU2QTU0QTBDQTM1QzIxRUU5NTI2RTM4NTc4RDhCOTc2RUJCRUI5RUZEN0ZDQkE2MzBGODQ1NEJBN0IKKzMzQTEwQ0Y2MjM0QTEwRTk2MkYxQkU4OThBRDNBNzc4NUU5RjE0NzA2ODk3MjZFMDNERkM5REY1OEU4MTREREEKKzFFOUY0MjgwMzdGQ0VGRUE3RTQyODYyMkYwRTkzNjFBMEY2NDFDRDg5Qzk3NEFDQjNCRjhEQUJCRDJFRjI2NjkKKzdDNkQzMzQ5OUVGNTUzOUZCMEI0Qjk5MEM1MDg5NTdDNTZCNkVDREUzNjkyNjI4RjIyQjZBNjdENTkxQjc4M0MKK0U2MTk5QjEwRjI0NjBCQzhDRDhEMDhBMzFDODQ4MzIyQkM1QTY2MTQyMjYzRkRCOTVFMEMzRTFCM0IwMDlGNDcKKzU2RDNDMkREMzQ0ODIxQUUxQjM3NTkzN0FENzFCQTBCMUJEOEVFQTZCNDIzQzZGMEEzRDA2NUMwREU4NzZFRTUKKzZFNkYxRUVFOTU1QTY3RTFDN0E2NTIxMzU3NUJENTNBM0MzMkJBRkVBQTQ2OEY1QjBCMEQ1MjNBMEVENDU5ODQKK0NGOEQ4RTkwNDNBQzBBQjJDRTNCRTM5MkE1MDhGQjA5MkE4NTVDRjRFNEQ1QkVEM0ZCQzI3RDZCMUFDMzJGQUEKK0U5MDVBREY0ODM5NDkxMjNFOThBNkYyRjY1RjU2MTgyMjgzN0M1N0M2RDVENUJBRjg2MEQ5MzVEQjJBNENFNzUKK0JGRUNDODZGMDIxMDQyNEYwN0ZFNUE4RjMxOEIxRkY4MThCNUY0NDI0N0Q2RjBCOTc1RUMwMjE0NUU0N0YxRjkKK0M1NzlGQzAyNTExRjlDRjE5RDY1QjEwMzM4QTEwMERFQUM4NjFENjU2OUZBRkU4NDdDQkY3MjUzMUNENTQ4NjQKKzYwQTczNjhFOEREQTcwQ0M4MzMyQTg1ODkzRTNFMjcwRkM3ODc2REVFMkU0MjA1RTU5MkI4RDQzMTQzOEIyOUQKKzMyNDEzNjAwN0YxQkQ4MDI1MDNCMjI1OUFDNzFEQTg5MDc4NkI3MzFFMEMzNEE3MzE3OUQ4NTIyREZCQUM1QUUKK0NEQzFGQzA4NTJBMDFFRkRGNkQ1MEJCRTQ3QTRGRjY5OTM2QThDREZFNjEwMkE1QjI1NDQzRjJCNjg0RTQ1MEUKKzU4QzhDQjkwNjhFRUIxMjc2MzRDQzlBRDc0MEUwMTk1MUY4RUI3MjRGMkU0MkVDOURFRDQ0MzQ2MjlCRUI4MTAKKzg4RDJDMDEzQURFMjNBMTVENjEwODdDQzFERUQ2OEFCNDkyNEZEREVGMEUzMEIyQ0U1QzE3REQ0QkFBODhCNzcKKzA2ODM3QUU4MjQ1Qjg4MjM5QjZBRTc5NTNEQzFEOTU5NzUzNTZCRUYxNTI5REU3NTgyNDU1RjQzRUQ4M0E0ODgKKzAxQzFBRTQ2ODM0RjFCREQ5NzA0RTg1QTE1MUNFRUY0RjBEOUUwOEM4NUFERjY4QTQ5N0E4MTA2NEMwOTMwMDcKKzA4RjlERUM0NEFGNzUzRDU4NkJDMkQyRjFENDBFQ0UyQjNCNEU1N0E4RjA0MDRBQTI5NTVENkFDMkRCQjM3RUUKKzA3NEQwM0U1MUZCNThGRDU3Mzg5M0I4OEU4RUNDN0U2ODE5OENEMThGNURBRUIwQkM4NDkxNUVFRUM0QkE5MTgKKzg2RjdFNjRBNTc1QUIwOUVDMTlCQUUyQzMzRDhFREFFMDVBOUM5MEI5MEYwODYxNDEwQ0MwRkNDRDZCQkYxMUQKKzc4RUM2NEY4QzQ1M0FCQzdGRUFCRDVDNDlFNzBDQ0QyM0I3QTRGNDM1RjA5RTBBQjMzRENEMjRBNzZENTExMkQKK0JCMDUzNjg3MkEyRjM5QjBFNTQwQzg5NjFGQjcxQTI5NTBGQTVBMzg4MDIxNkQyOTZCOUI3NjRCN0E5NTVCRDcKKzM4MDcyQ0NCQ0RFNkI1RkM4NjJGRDIzQzk1NDYwQkYxNEJCNDMxQTM4M0JFOEY2RENEOTAyQjRBODA4QkM2NEMKKzUxNUU3QkQzQThBOTA3ODZCNjQxNDlBQzY1MDU5RTVFNkE4NjcwOEQ5NTEwNTRCNDg4QTE1ODdDQjFCQzAwMDAKK0E4MEYxN0Y0RTcyRTJDQjRGMEQxOERBNTU2MzNDRDlCRDA0NDkwRTNDMDRCMTFEMkZBNDg4QTk4RjMxRTc0M0QKKzdBRkFGMERGMzBFRDZBMzcxRkVBQzBDOURDRjMzNDI4OThERDhBM0M0NTYwQUZEMDNENTIyODI3NjdDODM0NjcKKzM4QzM5N0Q4NzMyRjE3RjZERTAyQTcyMkYyQzI4NDYxQTEyOUY0MjdCNDgyNEM5RTEyRDlBMTY0ODBFQjgxRDQKK0JFNEEwNjI4MzQxNDk2NzZEMzE4MjFDRDNCNjg5MDVDRjEyMEM1ODAxMzYxNUQ2Qjg5NjY1RDA1QTcyREQxMjcKKzc4REVFMTVEOUI2MTIzMzZCQjgxQTZDMTNGQ0NDNTI5OTc2OUQwQ0U2RjFBQkE3NjE2OTUzQTcyRjgwMzA2QjMKKzk1REQxRjI0QUIyRTVENzVCQ0VBRjFERjE5MEE1NEJFRjY3MzI4MDE1MDk5MDI1MDIzMkYxNjM3Q0E3RjVGQjIKKzczNkMzRDcxQzFGOTNGMTI1NTBBQUJEOTBCN0NBMEZBQzBCOEQ0RTk5NDg4RTI3MENEREQ2NzVGQTFDNkFGMUMKK0Y4NTUzMDlDQjI0MTdENDA5NEY4M0Y3RjlEMkRCRjRDQ0QyQ0FGMTc5MjY1OTFERTA3N0FERkU4NkZBQTQ0NTIKK0IxRDYxM0E1NEExNjE0RDg1RkQ2QTFGOUFERTQxQjA0RUUwRkRDQzk2QTVFRDAxNjExQzE2Q0NDQ0Y5ODNGRUYKK0UwNTc2QThDNUM2MEUwNURGQUI4NDJCNEMxQTFFMjMwRjdGQkU2NTkxREQ1N0MwMzQzMjY4NzZFOEZFNzUyMTcKK0IwMzZGNUU3MEQ0NDg3RDhGQ0MxQUNFQzg3MDlDQjlBRTAyOEE3MzVEODI0MjUwMzVENUEyN0VDNjA4RjFFRUMKKzg2RTExQTIwNEI3NkJDMkJDOEQzRkY5QTE5MkJGOEU2RjhGQkUwNUE0RTE4NzZENzdGODlBMDJFMDk4RjNFNTIKKzBFQTJDNjExMkFBNzFBNjI0QThGQzI4MjYxRDc0Qzc4RjBDQzQwMUIyNjcwOTJBNUM2QkNBNURBRkYzOEIwQjgKK0ZENTlDNTNEQzM2QjQ2NENDN0UyMjkyMUVERUEyODZGM0VDNUQyRDM4NUZFOTE2MzlERUJEOTI3NDNFOTUxNkIKK0FERjA4NDVGRURCOTM2RUJBMTAwNUVENEI0OTk4M0VGQkVEMzY5NTM1QzEwQTlFOEU0NDYwMzJBMjUxNjdBODEKKzkwREJENkM5RkExQzFCQUFCNDc1QjNGMEU3Q0UwMjI3MDMzRTAxM0FDMkU2MTkzRTVBQ0U2MzgzQzZFQkQ2OTcKKzAyOTM4MUVBRUU3NzE5N0JDMUU5ODZFMzAzRTdDNjA0NjNCNzMyMzExREUxMTkzRTQxNzZGMkM1OTk1NDJCNEUKKzNEMTg4QkNFQ0YxQUI2RjJDNTUyN0QwNDFCRDVDRkI2RDQ2RjE5QTA4QUM4QjI2MjY4RDgxRkEzMUUyOEQxOTYKK0FCMjUxQzlDQUVEMjI0NzhBOEE3NDQxRkNCNEE5QTlEOTFBODhFQzkyNEZFRTcyRjk1NkY1NTg4MEIwQUQ1MzcKKzk3RjE0REYyOTczQTdBNkMzRDY2QUE2RUFFRUMyMjY5MTMzMzFBQUVFQzY0MDI5NzdCMUM3REQyMDMzRjc3NkIKKzc2M0Q0OTA3OUM4M0FEMjAzRTM0NjM3N0ZGMDY5RkVBNzI0Q0MzRjczQTExNEFFNTA5OTBBQTAzMDA5RUMzMTkKK0VDN0JCODU2MzY4MDcyREIwMEZFMkVFODcyQ0E5RDQzMERGMzNBQTdGQjk1MDgyQkQzM0MwNjcwRTc3OEQ4OTcKK0U1MzkzNTU2OUZGQzZGMUJFNjA1RThEOEMxRDRCOTJEQTNBMTA2RTlEMTZFNEU2QjlGQkFBQkNBOTE3QTBFRDIKK0MzQjg3NEIwOEU1NDJDODg1MUVFMUY4NjhDNjc1QTYwRDMzQjc0NjA1M0E0MTk3MjFDN0JBRDJFQTEyRjI3RjEKK0E1ODU0NkIyQzI4OEM4Qzc2MUYxNTI1OERFQTc1QkM2MjdBNjM5RkZEREUzQTE2REIwRDkzMDlEQUVCODY5QzEKK0QxQUJFMjMzMDY5QTA5MTJEREY4MTE5MzYwNTg4NkUxNDI4Mjk4MEMxRjM0NzkwMjM4OUJCOURCMTc1ODA4OTkKKzg4RTRDNUY1MDJFMTZFM0QxQUU0ODgxRkQ2Mjc5NzQ4M0JEQTVBQzNERTI5M0FDMjkwNThENzk2NzNGQ0Q2RjIKK0NBNUE1ODU0RjBGOTUxNTMyRjI0MkIyM0NBRDNBRUVFOUY0MjI2QjA0REJCQjA4N0RBNzFENkEyMUQ1NTU4NDcKK0ZGODYzMDA0RjA4NDg2QTg0RUJGRDIzNDMzNEU1RkMyNDE4NjZFMTgwM0EwNjM3REU0OTJCNEFFMEY5OEQ0QkQKK0FDMEQyQjkyNTQ5RDI4NzE1QjlFN0JBNjhEMjJBMUZDRUJFQjc3MzQxMzYxQjU0MUY5Q0MxMzQyMTQ1OUFGQTQKK0IwRkRBOTNEMjkwRTQ0M0ZFNzBBQjU0QTJBQUUzMEFBQkE3MEY1N0JDMDg3MEVEODdFQTJFRjU0NjQ4RkNEQTkKKzYwRDEyOUY0NEMwOUFENEQ5QUREOEJFRkM3OEY5MEU3REYzQUU3QTVENjc3NDdFQzZGRjZERjNDNTFDRkMxRTEKK0E3OUNCQkY3NEI1MEJFN0MyODY4QUM5MzNBOUEzMDAzOTg0MDgxNzk1RDFFMkNCNUNENTI1NzNGQThCMkM5RTYKKzU3OTAxMEUyMjFEQjA2RERCREVBMTExQUYwRTcyNzg5QTMxNkY0NjFCMEZDNTMyNUJENkNEQ0NGOUQ4NzJGOEMKKzE1N0UyMkYyQjE2RjcxNzZBNTJBQzMxRDA1RTJDNDlBNjYxQTI3ODg4Mjc2OEYxMDBBREE2NThFM0FEQjUxNEUKKzcxQkFGMDU2MDZGNDYyQTA0NjUyQUYyOTEwNTA3OUQwMURERDhCODVBRDg2NjA2RDc0QkJGREM0NDE1N0NDNUIKK0FBN0YxNjhEOEZDRDNGNDFCMTcxQTNBMkIxQjg3QjVERDNDMzZCQUVBN0Q3NURGMzVFMjU4NTQwMzYwQTNGOTQKKzMxREFDRjExQzIxNjgxNDk2NDlGRTYxMDM5NjE2ODI5MUEyMjlBMThCRkFEOTU2RjgzOUFBNzA0MDY2MEJENTYKK0RERjcwQ0MwNkRBNjAyMUI5NTE5NkVCNzAwQTg0RTFDQTU5QThGODA2NTg5NUMyRDQwODcwMEI2MTNGQ0U2QkIKKzY4N0I0NjU0RUFGOEM3RjhFMUMyQjAyNDREMzZBNTgzNjc1QTkzQzcwRjk0MUQ4MEMxMjQ1RTgzNTJEMEYzQzUKK0MxQkUyN0MyMkQ0MzBCQzY4Q0I1QTE5RDBDMUFFOUFBQUZDMDNENjVEQzI5QkUzRjVBQjcxNTVCMEZFQUFGNDYKKzBERTc4MDRCMjQzRDYzNUI0Q0U5MUJCRjBBOUJDQ0ZCNzk3NEM2QTAzQTlGNjRDNDVBQTk5M0RCNzAzNzRDOTEKK0UzNzQ3MTE5M0RDNjMzNENCMTgxQ0ZFNDBBOUJGRUZGNDFERkRCRjEwNDc3QTJEMUQ4MkMzMzUyOTIyNUJENDkKK0Y3NjAwMzJDRjlCRDM3NENDNjgwRUVDRTQ3MUNENzNCMTI5MEQ0Q0U2NTcwNTdERjRFMjNFM0E1MjEyMkJBNkEKK0UxNzI3MTYzOTMzODQ4RTlBRjdFMjkwNTI2QTNEQUY3OURFNjVCN0JGRTZCQzZFMzMyODhGQjg0N0VEOUY5QjMKKzM5RTAxMzJEMTRDMjQ0RDFFN0I4MzBBQjUxOUUzMDRDOUFDREQ0QTEyRDg1RDRDRkRFMUE0RkRDQ0I0NTFEOEEKKzI3N0FCQTMwQkY5MjYyNUI1OTNDMDVCNjU1Mjc2OTY2MjM5QUU2OTZDMjc5QTA3ODlGOUZDOUE2MjBGQkMyMjQKKzg4NkNERkUyRDMwN0Q3MjNERTIyQTBDMEM1MEU5QUZGQTJEMzNFOUFDMTk4RTk0MDVBM0I2MDdDRDVBRTZFQzYKK0E2MTZCMjE0NDRENTgwMjlBNDRBOTM4OUFDRkNDRDQ5N0Y0RkUyOUNDNEIxODE2OTk1MzRFMUI4M0FEODVGNjEKKzg5MTE0OTlEQTY5ODY3QUE5QjUyNTVERkRCODY0RkMzN0E2OTg3RTZDQjY2MTQzNkNFM0E5RTAxQjhCNUJGOTYKKzczNDM3QzkzNjZBODk0MUI5NTJDMjk4RkM0QUI5M0VFMzY0QzU0RjExOUM1RjJBNjBGRDVCQzkzM0E0NEZGNDAKK0Q4N0Q3ODQyQjEzODRCN0YyRDgzODc1RDU3Q0MyNDVGMkQxQzNCN0JEMEVFMkU4OEQ2MjY5M0YyQzgyMjlBQkUKK0NEQzVFNDM4REIyQ0Y3MDY5M0FGMTYzMjM4RTQ4RkY4N0E0N0FEMTA3QUNFRkY2QkEzMTk2NjNEQjhGODE3MkMKKzFDQzkxRUIxOTA2M0JCM0I3NDJFNjA3RUI3MDIwQzU1MzQ1QUM2Q0U5NDQ2Q0ZDRUVDM0NBQ0JFNkZEQjY5RkQKK0JDMTNGRjY0NDU3RkYwMDFBREFDRUQ5MEUwQ0YxQzYxRkFCRTU4QjY3MjBFMDYxNTQ1NkQ0MDg0RDQ5ODE1MTUKKzYzQ0JCNzE0MkQ4OTczRDQ4MUYwQjNGRTlCNTRBMEYyNzY2NjhDRUIxQjE0NDFGMDhFOUI0MUIyNzU0RjgxNDUKKzBDN0JGNDczNDAxNUI5MEUyRDYxQUVEQjcxODlEQ0MxOEU3QzYwNTE5Mzg3QjJFMEJGMTc3RjQ5NzA4M0U4QTEKKzA1MkQxRDQ5NEFCMjUyOENERTM3QkZCNDU5NjgyMDY2QzQ5NTQ1RUUyQkMwNEMzMUQ5RkQ3MEUwOTJCNENGQjcKK0ZDOEZCOUI2REUwRUI0OEYyNERBQzlCQjgwRDFERjk1QzQyNDhENUMyOENBRUFGQTBCRTlDMzQ0NUQ4QzlDRTMKK0FCRTBGQTBBRjRBRDQyNTg1MUU3NTg4QTlDNEE5Q0RBNTRDQTRBMDc1QUNGQTVEODhEQTBGNTE3NkNFRDg1MjcKKzA4M0IwOEM2MURDMTgzMTE2Njg5NzNBRUNENTBEQkE3RTk0NjI1QjM2RkEzQjE5RUYzNEIxQjQ0MjRDQjQwNEUKK0RGNTI5ODlGMzEzNjc2QTE5NjI5QzI4RkY2MkExNUUxMDMyOEQ1MjZBRjBBQjI0RTNENzU4RjJDMEY4NEY1MkUKK0JGQUQ1Rjk4MEQ3NDk4REYxMkQxOUNFQTU2MTc3Q0UxNDI0ODY5Q0M5MzQyMTI2NDA0QUY5RTU2RDBCNTZFNUUKKzRBOUZDOURDQjUxOUIxMjU1QkUyQjM2NTZCMjVFNjgzNDgzOTc4Mjk4N0YyNTg3QjNCNkJEOTJDRjVCMDYwQTUKKzQ2MTU0QjcyMzYyOUM2QUY5RjNGOUQ3NUFBODMzMkFGNjRBREE2MzJCNkYwMzg3OTRCRjlFMjkzNkRDOUI0RjUKKzQzQzI5QjdFRTRBRTk4NDE1NEY2RjQ1NTQ3MDZFNzIzNjFDQ0I0NTEyRDhGMzMyMERCMTkyMUNFN0Y3QUNGRTMKKzFCN0YwQTcyRDIwQTI5MTI1NDBFMTdERUJCQzhDQzJCMkUyMzZEQTI4RjMwODExN0I3NkQyNTUwMjAwQTJCNjYKKzk0Q0E2NjlBOTA5QjJBRTJGQUJGRTc2QjY0MUJGM0VEOUYyMzZFMjk3MjJGNzRDRkFDMzM3QzY5QjUxQjQ0NTgKKzdFQjg3MDMxNUEwQTEzNkIwRDE4M0I1QzlFMjVEMkZENTdDNzVCQ0MwQzc0MDZBQjMwQUUzRTNGRTFENjBCMkEKK0M4MDUwMjQyQzE0QTcxMkVFNkM4NjdBQUE3MDFDQUY4QjMzMjc2MTUwRDkwQzYwQjVFRDYyOTU4RkZDRjRFNjcKKzU1OEI1MTgwMjA5NTkwNDBBM0I5OTBCNDEyRjc0OTg3QTk0QjA5QzRBQ0U4OTRFQzU3RTUyRjQzNERBNDk2MDQKK0YzMzI2MkI1OUQ3M0I3RjcwQkY2OTZEN0JCRDhGN0Y0QUM4MTIwQjU5NDlERUQwOUQ4OTkzQ0VCNkFBNjFFN0UKKzU4NkQ1MEI2NTJBN0I3RDgwQkYxRjE5Rjg0RDA5MkVEMkQ0NDhBOUJCQURGQ0M4NzM5Q0I2RjZCRDBCMzcyOTcKK0EzQ0Y4MTUzMjUxNDVFMTc0RDNCRjZBMDdDREIyODM0OTQzQjAyRkM0RkVERkY5ODYxOEM4RjdFODExNDNGM0QKKzZCRjM3N0ZGOUI5MTkzQzJERDI0RjNBM0ZDRUNDQzYxMEM0RDIxNTlFMTZGQzUxMzEyMDZGN0E5NkQ4RTdGRDgKK0FCMUI2NzY4NEIxNEJBQ0M1RTc2MDA3M0JDRTMyN0FBREVFMTY0MzZENDMwNEZGN0UxRDVFNDBCNzM5MDE1RjMKKzgwREYyMDRFMkFEMEVGQUNFN0IxMUY4N0RCNzREQUNEQ0IyRkE5NzNEOTg4MDQyNjI5MEZFODY1RTlEMjE0Q0IKKzc4M0I0Q0MyOTkwRTdDNjY3NTkyNjlDNDgyOUFGNTE5RkI2NjQ3MTY2MTA3QjdGQkYzRUMxNjkxQkM3NUU3OEEKKzc4RDlDMTNDQ0E4OTM0RTQ3NURCMUVBQzVGNjM4RThFMzQ4RDVDM0YwRTc4NTk2QUQxNTBDRDZDRTA3RTY4N0QKKzVCMTlFNTMxQTZCMjc4MEZFQzg0MEM1RjVBQTM0RkIzRDBGOUY3RDA4MDMyNTQ3ODgyMDA1QThCMzdCOUU3QzgKKzkxNjI2NjRGODRGREM0NUU0ODhCMzc5MTA4REYyMkRGQUUzQzk0RkZGMDJEQUIzMDk0M0Y0RkFBQURGMTNBQTUKKzg1Q0E1OTM3OTAzRTk2MTk5MDYyOUQyQjBCNThDNkJFM0NCMzVGNTMzMzhDNTMzMDlFNjRBQkE0QjNFMkM2MTkKK0U4NDJGNjlEOTQ2Qzk0NTM1OUJFRkJDQkE0MzU1MEIzQkE5QkExNjk4MzNBQzMyQjdDODlFQzlDMEY3RDU2MzYKKzg5RTMxMEJEMUZEMTIxRUEwMkIzMUUxQTU2QzU3MzhBRTJFQjRCMjc4ODM3NjY2OTFBQTYxRDRBNUQwMzg0NEUKKzZENjU1QzcxRTQ5OUFCOUJFQTc4QTRFRTcxRDc3MjVBRDMxMEIyM0JGOTI1Q0VGQzdFMEM2MUQwNjAwMjdFMTAKK0FGM0Y1QTU3Q0Y2OTkxOUUwMjc5NEQxNTlBMjA2RDMzMUI2MkEyOTAwNjk5QzhDQjY1MjA1MjY3NEY0MDhFNTcKKzhFRDdGNkE3OTcxOENGRDU4RTM5RDk5MEYxMTgyNzc0NkU4Q0M0MTE5MUE0QjIxNEMwRDU4MkY3MkY4QzlGRjUKKzExQTlEMUQzNUM3QTY2OUM2MzI5N0Q4QkE0NzNFQUU1MUUwOEVGNjAwMDQ3NDM4NzhDQkRCMjE1NjJBNzA3N0IKK0VEMzAwNjY2RkVDRjkzODY3NTkwN0RBMEM3QUNDMjlDMjEwNDZERDk4RTc0MUQ2QUVGNTExMjBEOTc1RTE1OTAKK0U0OTNDRDVBRDY3MzlEQTgzOTAwQjEwOUIxREI4NjU4MTJCM0I4MjFDNEFFREMwODk3MTlDODE0NDFDMkM4MEQKKzE4MUI2NDBFMEM1N0M1M0JCMUJFOTk1OTRCRkM2RDVGRUU2NDZGRTc1RTAzQjc1OUE1QUIxMkVDNTkxRTlBNjcKKzFDMUQwNENDMjA3QzMwMEY3OUQyRUQ5QTA1QTFGMjg1RDg3RjkwM0Y4MDgyMEIxRTc4NDdDNjFBMDRDQzU5QzUKKzFDRjA4NDVGNDAxMTkwMTM5RDUxQTA0NTM5NDk4OTA2Qjk0RjYxNjlFQzAzODg0OUQ2OTgxQ0YzREIzNDAwMEYKKzEwREVCODE3QkI5RkMzRDk0QjdDMUUwQTk2RTRGOEIzMTE4RTMwMkNDNzY2OTAxMkREOUM0RUI5RTFBMTNDNjcKKzY1OEY2MTY4ODQ0MEE3QTlGOUUyNkJDNjNBODdBQzNFRDIyMDFCOENFODk1MjkyNzI4RkJCMUU2RTRDM0QxODUKK0ZGOEMxQjREOUMwNTc0QTg2OEU4MUUyNzNBQzk2ODM4RTM3RjcyNThENUZGNUEzOUY5MEZDMkY5NDE1NkY3MUYKK0Y5QzNFNTc2QjI5RUFCNzRBMTM3NUEzMDQyQjVENDZGQzRGODM5QzI2QjNGQjJFRTVDNjdFQTlFNzdEREVDRTcKKzEzNEE3NTQyMEM5OTc3MUI5NUYyOEQzMEI3NjZDRjRCNTUzRTkwQkQwNkRGRDYzQjM5MjRFOTQwOUQ4ODQxRjgKKzg1MDI0NDA2RTlGNkUzOEY0NDc2MzcxRjM2OEFEQ0I0NEMwQzZEN0Q1NzZBQTFFQ0E2QTBDMEFEMUY0QkEyQTgKKzY3NDM0MTY3MDY3ODAxNEU5NzRGMTJFNUU2NEZFM0FCODBCRkFCRjVDMjdFOUIyN0I4M0E5QUZCOUQxNjYyOUMKK0EyREMyRkRDN0UyREY3MTgxOEJBMzM0RjA0MzczMzYzMkEyMEFENDk1RkY0NjlGMDVFRDg4RTkzNzkzNzhCM0UKKzFFOEI3NUFEREMzRTU5QTNEN0I0OEY3RkY4QTYxQTg1Qjk2RTg3NTI4RDU2QTY5NTBBRjU5NjBDMzZEMjMxQTkKK0Q4M0M5RkU2NDJFQzUyMDFCQjc5ODk1NEE5MDBCNDAyMDcwQjUyNEUyOUE1OTMyMzA0NjA3MTU5QTRGNDk0RUMKKzRDRTBFMUZEQThFNDlBMzRGMzNCMkM5NkM5RDQ2M0E2NjA5OEJDQjg4MzNDNUQ3RTFCMzY4NDU0RTQ4Q0RCMjUKKzRCM0NGRDdFQkMwOUVFMDNCQjk1RDQ4QzQwQzdGRUZCNEYxMUExOTEwMzI0Mjc5NjI3NTQ5MTY4NzdENkU2QjQKK0MxNzJBN0Q2NEZBMzkyMTE3RUQ1MzQyMEMwQ0Y2MEI1QUFCQTcxN0RCOUNCQUUwODlEQ0RBQUI5MEZERkFCNkEKKzlGMDIwNThEOThGMkYxRjgyQUVFN0ZGNjIxQTE5MURCODYxQzk1RUUyNjE1MTc5NzE2MzQzQ0Q0NEVFRkFGMUYKKzgzMUFFNzQ1RkJGNDNBMzg3ODQ5MkMyNjA2MDI2QURBMUI4RTYxRjhBRDBFOEM4MzIzODg4QzkxQUMzQUIzNTkKKzlGNEYxQjBFRDQ2MDY4NEMzQkI4QkZFRDgxNTUyMzc2Rjc2RUU5QjU2OERGQjI1MTlCMDMyRkY3ODJGODJFQkQKKzNFQTUyMDY0QUY2QTBDMDRFMkI5NzYxMTY3RDFDOEY5M0Q4QUJGQUQ3NUExQ0ZFRDJGNUY0RDFBRkMxN0U5RkMKKzdCMDY3NTJFMTdDQ0ZCM0VGMEZDNUVCMTgzMkY2QzdEQkExRDU5MEE4MDREQUM4M0ZDOUFGOEM5MTkwMTRDMzIKK0YxRDBFOUE2Njc0NTZBMjM2NDc5MTQwNUJBNThDNjdBOUFCMDAyRjQ4ODJERjZERDk1NDQ4NkIxNTE4QTlDOTEKKzFCQkJCQ0ZDRDg4MzcxNEIwQTg4OENBQ0M4Q0RCM0I4OTgyRkQ4QUI3RDUxMkE1QkQ3MTQ1QzI0NUZBNkUzRDQKKzY2QzZFODI5QTBBODY0MDc0NEY3ODFFRTZBNTlCNDkwRjc4M0EyNTFEMjIzRDkyNzBDOEJDNUIwNERDMTFENDMKKzQwNEUxNjEzMTAyOTBGRTI1MkE3OEQ3QTc2NkZGMEI3NjdBQUI3MDJEMzY2NEY3NTZGN0UwMTNCQjg0RUFBMzIKK0E5OTAyRjczRjlFRUE1NkM3RDI1ODA2OEVBRERDQjkwODlERTJFREE1NDM1MEFDNzMxMkQ1MEFBODc3Mzg3QTEKKzREMzM4NDQyNTY0QUVENDM1MTI3QzgzREE5NTZCRUM2QTlGNEYwQzg3NkQxNTA3RjU3NDlBNkQwNEFGRkQxN0EKK0UxMTZBMzM3QzU5QUY5QjhBNTUwNTExRjk4MTFCNzVDRDQ1RTUzOTg0QjI2MTE1QjA4NTk1MTU2NTRBRTU3NDkKKzE3QTg5M0RGNEMzNjEzMTAzRjIzODhBRUI3MzBBNzJDNkYxOTExODhFMUY0NTZGQUI1MDJDMDE1NjdBRjc1QTYKK0M3NDM3M0JBMkMzMzA0NkE5ODIxMTIyNTE0Q0E5NkM4MUVFMjIwMjFCRkU3MzYyNTYwOTI1MkE0OTMxQUJGQzMKKzc5QTgxRDIzMTQzQjM5NTlBRjVFNTQ2QUIyQURGNkNCRDRFQjc4RDg3MzFCNjgzMTVDQkQ1RDk1MjMwQzBCREIKK0M0RDc0M0IyODg4RjVDMDlBM0MzOEY4MjE2MTRCRjRDNDdBQUVDOTUwM0Q1MEI4QjBBQzYwQUE5Qzg0M0RFRkQKKzZDNjBEMzMxRDk0N0UyRkU0MDM2NjY0N0Q3OTQ0QUMyQzE0OUEyN0UyQzcyQUQ0MDE5QjA0OTJCOENDQkY0MTEKKzc0Q0EzMzI1NjlDODE1RjUzRjIzN0ZDQUNCMzhDOTA3NDhCNjg4RTFDM0REOTZBMjE3M0E3NDdCMUVDM0QwM0YKKzZCRDhCNENDRTA4NDcyQkRCQjQwNjM2NDg0QTRBODA5MDQ1MjJDNzc0NjUzRjU3MkZCQzJFMEM2Q0JBNzg4MDkKK0U1M0M2NEVCMDIyMjNERTYzMjRBRkIxNDJBQ0RCRDI5Q0EwNzlBNTAxMDdFQUMxMjlFN0Y3RDY4MzVFNEU3MUYKKzEyMzdEOTQ1MjFGRDRBRDEzNURGNkUwM0M2ODg2RTFCNTVGM0UzRTBGNDY2QUEwRjM2RTY5MzgyQTM0RkJGNkIKKzA5NjNDMjc5NTA5Njk1MzhBOTgyOUQxOTk3ODBDMzY3NjEzMEY4MkI2NjQwNTRCMzA2QUExM0ZCMzY5ODZDQTUKKzQ0MkUyRkRCRDk0NkMxM0Y4MkRBMkM0MzY5MjQ2QTAwMTY4NTY2Q0E2NkY4NjlDNkJBREFFREE4MjkxQ0VGRUYKK0IwN0JFMTgxREY5NTY2Qzk4MTcyN0FCNjJCNUE4RjI3MDNCODcyMTdERThFNDZGN0I0QjM5RkNDQjQ3MTBGNEYKKzA4QzcwRjMzNkFGN0VENERFOEM2ODU2NjE0Q0EyMjg2ODEwMjg4NDcyMzdGRkEyRDcyQkYxNjdBRjFCRjk5QTkKK0VBRjQ3OTA1MzdBNEU1MUJCOUUzMUU5RDZENjE0MkRBRkNGQUYwRUZFMzFGQTUwMkY4RjQ1NDA2MzhGQ0E5NEIKKzI5RUNFNENDNTBEMUYwREIwOENENkMzOUM4RTg3RDY1RkJGNjk2RDBFOUQ4NUM5NzAzOEU4QTBENjNEQUQxOTMKKzJBNzAyRUZERTg1RkExRTQxQTk3MTM3RUE0NTc2NTNCRkM1NjhFNjBERDZDMUQxOTk3N0ZDODUyRkUzRTMyODcKK0RENjA0MzE0RUIwMUM5NzQ2OTExRTREQjFBMUFDNEUwOTgyMzhFQUQxNzM3N0FBMTRCMkNDMTVCMzM2OTQwMkYKK0M0RTBDMzMxNDEyQjc5OEE1RjMyOUMzNDRFNDlFRTk0NEQxQjAxRUExNjhCRDBDQkU0RjU4OTdDM0FFNUU4RkEKK0M2NTc2MzUzRUZFRTY2MzkzRDM0RUREM0U2RkYyREEzOENENjYwMzY2REMzM0RBQUZBMDIzQTlERTMxOTEzOTcKK0MwQUZCN0U1QjVCMTYzREU3NTAwQTdCNDNGMzIyQkEyMEI3RDk1QzhFMUJDNUU4RDFENzcxOTZEMEFGMjdEODkKKzQ3NkUwRjAxRTIzRUEwNDNDQ0U3MTFFM0E4RTI3QzA0MTlGN0RDMzIwMjEyRjg2QTNENDRFNDBGRjE4NEM3QUIKKzdERjAxM0FGOURGNDVBNURBOTI4NUM1NDlGNkMxMzI0ODhCQkQ1MUI0MzU3NkE5MkY4Mjk3RkJBRERENThGRDgKKzlDMUNEN0E0MTQyQkE2NjhCNUUwMTg1OEQwMUMzNDU2Mjg4QjUyQjhDRjgxNTJDOEExQzc4NTVBNzc3RTVEQ0QKKzMxRENCMzQwQjI5N0ZFRTI1OTZEQTFFQzZBM0EzQTA5MDdGMzhGNjIwRDRFMEI1NEFCOTVFMzBGRjNBNDQ0MEQKKzczQzY5NjM1QzM5OEFBNzc3Q0Y5NzNEN0IzNTVBRTYwQkREODRCODgwQUIzRDczMkM2M0M2NEZERTNBRkI0QTYKKzU3RTkwRjUxNDM4QzM5QkEzOTQ4RDJGNjZFQThEOTA4OUMwMkQ1OEYwQjgzQjMzQ0YzQzg2MzBCRTFGNDgyNTcKKzJCMTZDNkZBQjRCQTg0RjMwNkM4OUI2MjQyQTBFMkVFRTgyQUUxNTcxNjdFNTM3MzYzQTgzNDIxRDMwRTE1N0IKK0Q2REFFNEU5NUI0M0IzQTkwNDk5RkY0ODg5OEQ1M0Q5RkI2QjMzMDI2ODc4RTVENUVDRDI2RkZBQkQ4NjZBRkQKKzcwRkUzMEI0MTgzQzY1ODcxRDQwOTRFNTRFQTY5M0IzOTc0OTVGOTkxRjEzNjUzQTE1MjUwQzAxMUFEODE2RkMKK0RFN0QxMzk2Mzc3NTA0NjFDN0E2QTYwREFGQTY4QjdGOEM2MzlGQ0Y1NTA0QjY4RUZFREU4NDk3QzlERDg1MzcKK0Y4OEVGREJFRUFDMEEyMDM3MkVBMUIxNTRDQjIwQzBCMDU0QTA5MkU2MDM5NzM3MUY1MDE2OUJDODc4NjNBQzUKK0M0OTc0RjJFRTFFMzc0NkJCOAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorY2xlYXJ0b21hcmsKKyUlRW5kRm9udCAKK1RlWERpY3QgYmVnaW4gNDAyNTg0MzEgNTIwOTkxNDYgMTAwMCA2MDAgNjAwIChyZWFkbGluZS5kdmkpCitAc3RhcnQgL0ZhIDIwOVsyNCA0Nlt7IFRlWDc0YWZjNzRjRW5jb2RpbmcgUmVFbmNvZGVGb250IH0xCis3NC43MTk4IC9DTVRJOSByZiAvRmIgMTMzWzM0IDQxIDQxIDU1IDQxIDQzIDMwIDMwIDMwCis0MSA0MyAzOCA0MyA2NCAyMSA0MSAxWzIxIDQzIDM4IDIzIDM0IDQzIDM0IDQzIDM4IDExWzU4Cis2WzU4IDFbNDggNFs2MCA1MCAxWzU5IDEwWzM4IDM4IDM4IDM4IDM4IDM4IDM4IDM4IDM4CiszOCAyWzI2IDIxIDMwWzQzIDQzIDEyW3sgVGVYZjdiNmQzMjBFbmNvZGluZyBSZUVuY29kZUZvbnQgfTQ1Cis3NC43MTk4IC9DTVI5IHJmIC9GYyAxMzRbMzkgMzkgMlszOSAzOSAzOSAzOSAyWzM5IDM5CiszOSAzOSAyWzM5IDM5IDJbMzkgM1szOSAxOVszOSAyN1szOSAzOSAyWzM5IDQ1W3sKKyBUZVgwOWZiYmZhY0VuY29kaW5nIFJlRW5jb2RlRm9udCB9MTggNzQuNzE5OCAvQ01TTFRUMTAKK3JmIC9GZCAxMjlbMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkKKzM5IDM5IDM5IDM5IDM5IDM5IDM5IDM5IDM5IDM5IDM5IDM5IDM5IDM5IDM5IDM5IDM5IDM5CisxWzM5IDM5IDM5IDJbMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMVszOQorMzkgMVszOSAzOSAzOSAzOSAzOSAzOSAzOSAzOSAzOSAzOSAzOSAzOSAzOSAzOSAzWzM5IDFbMzkKKzFbMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMVszOSAzOSAzOQorMzNbeyBUZVgwOWZiYmZhY0VuY29kaW5nIFJlRW5jb2RlRm9udCB9ODMgNzQuNzE5OCAvQ01UVDkKK3JmIC9GZSAyMTRbMzUgMzUgNDBbeyBUZVhmN2I2ZDMyMEVuY29kaW5nIFJlRW5jb2RlRm9udCB9MgorOTAuOTA5MSAvQ01TUzEwIHJmIC9GZiAxMzNbNTEgNjAgNjAgODMgNjAgNjQgNDUgNDUgNDcKKzYwIDY0IDU3IDY0IDk1IDMyIDYwIDFbMzIgNjQgNTcgMzUgNTMgNjQgNTEgNjQgNTYgODRbNjQKKzY3IDExW3sgVGVYZjdiNmQzMjBFbmNvZGluZyBSZUVuY29kZUZvbnQgfTI3IDk5LjYyNjQKKy9DTUJYMTAgcmYgL0ZnIDEzNFs1MiAyWzUyIDUyIDUyIDUyIDUyIDUyIDUyIDUyIDUyIDUyCis1MiA1MiAxWzUyIDUyIDUyIDUyIDUyIDUyIDUyIDUyIDUyIDFbNTIgMThbNTIgNTIgMVs1MgorMls1MiA1MiAyNls1MiA0Mlt7IFRlWDA5ZmJiZmFjRW5jb2RpbmcgUmVFbmNvZGVGb250IH0yOQorOTkuNjI2NCAvQ01UVDEwIHJmIC9GaCAxMzRbNjUgNjUgODkgNjUgNjggNDggNDggNTAgMVs2OAorNjEgNjggMTAyIDM0IDY1IDFbMzQgNjggNjEgMzcgNTYgNjggNTUgNjggNjAgN1s5MyAxWzEyNworOTMgOTQgODUgNjggOTIgM1s5NiAxMTYgNzQgOTYgMVs0NiA5NiAxWzc3IDgxIDk0IDg5IDg3Cis5MyA2WzM0IDYxIDYxIDYxIDYxIDYxIDYxIDYxIDYxIDYxIDYxIDFbMzQgNDZbeworIFRlWGY3YjZkMzIwRW5jb2RpbmcgUmVFbmNvZGVGb250IH01NCAxMDkuMDkxIC9DTUJYMTIKK3JmIC9GaSAxMzRbNDggNDggNjYgNDggNTEgMzUgMzYgMzYgNDggNTEgNDUgNTEgNzYgMjUKKzQ4IDFbMjUgNTEgNDUgMjggNDAgNTEgNDAgNTEgNDUgOVs5MyAxWzY4IDY2IDUxIDY3IDFbNjIKKzcxIDY4IDgzIDU3IDcxIDFbMzMgNjggMVs1OSA2MiA2OSA2NiA2NCA2OCAxNVs0NSA0NSAyWzMwCiszMVs1MSA1MSAxMlt7IFRlWGY3YjZkMzIwRW5jb2RpbmcgUmVFbmNvZGVGb250IH00OCA5MC45MDkxCisvQ01TTDEwIHJmIC9GaiAxMzhbMzkgMjcgMjggMjggMVszOSAzNSAzOSAyWzM3IDIyIDRbMzEKKzFbMzEgMzkgMzUgNVsyMCA2WzUxIDM5IDUyIDFbNDggMls2NSA0NCA1WzQ2IDQ4IDU0IDUxCis1MCA1MyAxNVszNSAzWzI0IDVbMjAgMzlbeyBUZVhmN2I2ZDMyMEVuY29kaW5nIFJlRW5jb2RlRm9udCB9MjkKKzY2LjQxNzYgL0NNUjggcmYgL0ZrIDE1MFszMCAzMCAxMDRbeyBUZVhiYmFkMTUzZkVuY29kaW5nIFJlRW5jb2RlRm9udCB9CisyIDc0LjcxOTggL0NNU1k5IHJmIC9GbCAxMzRbNDggNDggNDggNDggNDggNDggNDggNDggNDgKKzQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDFbNDggNDggNDggNDggNDggNDggNDggMVs0OCAyWzQ4CisxNFs0OCA0OCAxWzQ4IDFbNDggMls0OCA0OCA0OCAxN1s0OCA0OCAyWzQ4IDVbNDggMzlbeworIFRlWDA5ZmJiZmFjRW5jb2RpbmcgUmVFbmNvZGVGb250IH0zNyA5MC45MDkxIC9DTVNMVFQxMAorcmYgL0ZtIDEzNVs1NiAyWzU2IDU0IDQyIDJbNTEgNTggNTYgNjggNDcgMVszOSAyNyA1NgorNTggNDkgNTEgNTcgNTQgMVs1NiA5N1t7IFRlWDBlZjBhZmNhRW5jb2RpbmcgUmVFbmNvZGVGb250IH0xOAorOTAuOTA5MSAvQ01DU0MxMCByZiAvRm4gMTM0WzQ0IDFbNjAgNDIgNDkgMzAgMzcgMzggMVs0NgorNDYgNTEgNzQgMjMgMlsyOCAxWzQyIDFbNDIgNDYgNDIgMVs0NiA1MFsyOCAzM1s1MSAxMlt7CisgVGVYNzRhZmM3NGNFbmNvZGluZyBSZUVuY29kZUZvbnQgfTIwIDkwLjkwOTEgL0NNVEkxMAorcmYgL0ZvIDIwOVs0MyA0Nlt7IFRlWDc0YWZjNzRjRW5jb2RpbmcgUmVFbmNvZGVGb250IH0xCisxMTkuNTUyIC9DTUJYVEkxMCByZiAvRnAgMTM0Wzg1IDg1IDExNyAxWzkwIDYzIDY0IDY2CisxWzkwIDgxIDkwIDEzNCA0NSAyWzQ1IDkwIDgxIDQ5IDc0IDkwIDcyIDkwIDc4IDEwWzEyMgorMTI0IDExMiAxWzEyMCAxWzExMCAxWzEyNiAxNTMgOTcgMls2MCAxWzEyNyAxMDEgMTA2IDFbMTE3CisxWzEyMiAxNFs4MSA4MSA0OVt7IFRlWGY3YjZkMzIwRW5jb2RpbmcgUmVFbmNvZGVGb250IH0zNworMTQzLjQ2MiAvQ01CWDEyIHJmIC9GcSAyNDJbOTEgMTNbeyBUZVhiYmFkMTUzZkVuY29kaW5nIFJlRW5jb2RlRm9udCB9MQorOTAuOTA5MSAvQ01TWTEwIHJmIC9GciAxMzRbNzEgNzEgOTcgNzEgNzUgNTIgNTMgNTUgMVs3NQorNjcgNzUgMTEyIDM3IDJbMzcgNzUgNjcgNDEgNjEgNzUgNjAgNzUgNjUgN1sxMDIgMVsxMzkKKzEwMiAxMDMgOTQgNzUgMTAwIDEwMSA5MiAxMDEgMTA1IDEyOCA4MSAxMDUgMVs1MCAxMDUKKzEwNiA4NSA4OCAxMDMgOTcgOTYgMTAyIDlbNjcgNjcgNjcgNjcgNjcgNjcgNjcgMlszNyAxWzM3Cis0NFt7IFRlWGY3YjZkMzIwRW5jb2RpbmcgUmVFbmNvZGVGb250IH01NCAxMTkuNTUyIC9DTUJYMTIKK3JmIC9GcyAxMjlbNDggNDggNDggNDggNDggNDggNDggNDggNDggNDggNDggNDggNDggNDgKKzQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4CisxWzQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4Cis0OCA0OCAxWzQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4IDQ4Cis0OCAxWzQ4IDQ4IDFbNDggNDggMVs0OCA0OCA0OCA0OCA0OCA0OCA0OCA0OCA0OCA0OCA0OAorNDggNDggNDggNDggNDggNDggNDggMzNbeyBUZVgwOWZiYmZhY0VuY29kaW5nIFJlRW5jb2RlRm9udCB9ODkKKzkwLjkwOTEgL0NNVFQxMCByZiAvRnQgMTMxWzkxIDFbNDAgNDggNDggNjYgNDggNTEgMzUKKzM2IDM2IDQ4IDUxIDQ1IDUxIDc2IDI1IDQ4IDI4IDI1IDUxIDQ1IDI4IDQwIDUxIDQwIDUxCis0NSAyNSAyWzI1IDQ1IDI1IDU2IDY4IDY4IDkzIDY4IDY4IDY2IDUxIDY3IDcxIDYyIDcxCis2OCA4MyA1NyA3MSA0NyAzMyA2OCA3MSA1OSA2MiA2OSA2NiA2NCA2OCA1WzI1IDI1IDQ1Cis0NSA0NSA0NSA0NSA0NSA0NSA0NSA0NSA0NSA0NSAyNSAzMCAyNSAyWzM1IDM1IDI1IDJbNDUKKzFbNDUgMTlbNzYgNTEgNTEgNTMgMTFbeyBUZVhmN2I2ZDMyMEVuY29kaW5nIFJlRW5jb2RlRm9udCB9ODIKKzkwLjkwOTEgL0NNUjEwIHJmIC9GdSAxMzRbMTAyIDZbNzkgM1sxMDggMVs1NCAyWzU0IDNbODgKKzEwOCAxWzEwOCA5NCAxMVsxNDkgMlsxNDQgM1sxNTEgMVsxMTYgNFsxNTIgNzFbeworIFRlWGY3YjZkMzIwRW5jb2RpbmcgUmVFbmNvZGVGb250IH0xNCAxNzIuMTU0IC9DTUJYMTIKK3JmIGVuZAogJSVFbmRQcm9sb2cKICUlQmVnaW5TZXR1cAotJSVGZWF0dXJlOiAqUmVzb2x1dGlvbiAzMDBkcGkKKyUlRmVhdHVyZTogKlJlc29sdXRpb24gNjAwZHBpCiBUZVhEaWN0IGJlZ2luCiAlJUJlZ2luUGFwZXJTaXplOiBMZXR0ZXIKIGxldHRlcgogJSVFbmRQYXBlclNpemUKLQorIGVuZAogJSVFbmRTZXR1cAogJSVQYWdlOiAxIDEKLTEgMCBib3AgNzUgNjU5IGEgRnYoR05VKTMzIGIoUmVhZGxpbmUpaChMaWJyYXJ5KXAgNzUKLTcwOSAxODAwIDE3IHYgOTM2IDc1NyBhIEZ1KEVkaXRpb24pMTcgYig0LjMsKWMoZm9yKWkKLUZ0KFJlYWRsaW5lKWYoTGlicmFyeSlnIEZ1KFYpbChlcnNpb24paSg0LjMuKTE2NDMgODExCi15KE1hcmMpbyhoKWUoMjAwMik3NSAyNDY3IHkgRnMoQnJpYW4pMjMgYihGKS02IGIobyluKHgsKTIzCi1iKEYpLTYgYihyZWUpMjMgYihTb2Z0KW4odyluKGFyZSlmKEYpLTYgYihvdW5kYXRpb24pNzUKLTI1MzQgeShDaGV0KTIyIGIoUmFtZXkpLTYgYigsKTIzIGIoQ2FzZSllKFcpLTYgYihlc3Rlcm4pMjMKLWIoUmVzZXJ2KW4oZSlmKFVuaXYpbihlcnNpdCluKHkpcCA3NSAyNTcwIDE4MDAgOSB2IGVvcAorVGVYRGljdCBiZWdpbiAxIDAgYm9wIDE1MCAxMzE4IGEgRnUoR05VKTY1IGIoUmVhZGxpbmUpZyhMaWJyYXJ5KXAKKzE1MCAxNDE4IDM2MDAgMzQgdiAxMzczIDE1MTUgYSBGdChFZGl0aW9uKTMwIGIoNS4xLWIpcyhldGExLClqKGZvcilkCitGcyhSZWFkbGluZSllKExpYnJhcnkpaCBGdChWKS04IGIoZXJzaW9uKTMxIGIoNS4xLWIpcyhldGExLikzMTM5CisxNjIzIHkoTm8pbSh2KW0oZW0pbShiKXMoZXIpZygyMDA1KTE1MCA0OTM1IHkgRnIoQ2hldCk0NQorYihSYW1leSktMTEgYigsKTQ2IGIoQ2FzZSlnKFcpLTExIGIoZXN0ZXJuKTQ2IGIoUmVzZXJ2KWwoZSlnKFVuaXYpbAorKGVyc2l0KWwoeSkxNTAgNTA2OCB5KEJyaWFuKWYoRiktMTEgYihvKWwoeCwpNDUgYihGKS0xMQorYihyZWUpNDUgYihTb2Z0KWwodylsKGFyZSloKEYpLTExIGIob3VuZGF0aW9uKXAgMTUwIDUxNDEKKzM2MDAgMTcgdiBlb3AgZW5kCiAlJVBhZ2U6IDIgMgotMiAxIGJvcCA3NSAyMTcgYSBGdShUaGlzKTE0IGIoZG8pcShjdW1lbilvKHQpaChkZXNjcmliKXEoZXMpZyh0aGUpZgotKEdOVSlnKFJlYWRsaW5lKWgoTGlicmFyeSlsKCwpZihhKWcodXRpbGl0KW8oeSloKHdoaWMpbyhoKWYoYWlkcylnKGluKWgKLSh0aGUpZihjb25zaXN0ZW5jeSk3NSAyNzEgeShvZiloKHVzZXIpZyhpbilvKHRlcmZhY2UpaChhY3Jvc3MpZQotKGRpc2NyZXRlKWkocHJvZ3JhbXMpZSh0aGF0KWgobmVlZCloKHRvKWUocHJvKW8odmlkZSlpKGEpZihjb21tYW5kKWcKLShsaW5lKWkoaW4pbyh0ZXJmYWNlLik3NSAzMzkgeShQdWJsaXNoZWQpZyhiKW8oeSlmKHRoZSlmKEYpbChyZWUpZwotKFNvZnQpbyh3KW8oYXJlKWYoRilsKG91bmRhdGlvbik3NSAzOTQgeSg1OSloKFQpbChlbXBsZSloKFBsYWNlLClmCi0oU3VpdGUpaSgzMzAsKTc1IDQ0OCB5KEJvc3RvbiwpZChNQSloKDAyMTExKWYoVVNBKTc1Ci01MTYgeShQKW8oZXJtaXNzaW9uKWooaXMpZihncmFuKW8odGVkKWcodG8pZihtYWspbyhlKWgoYW5kKWcKLShkaXN0cmlidXRlKWkodilvKGVyYmF0aW0pZChjb3BpZXMpaShvZilmKHRoaXMpaChtYW4pbyh1YWwpZihwcm8pbwotKHZpZGVkKWgodGhlKTc1IDU3MCB5KGNvcClvKHlyaWdoKW8odCllKG5vdGljZSloKGFuZClmKHRoaXMpaChwKXEKLShlcm1pc3Npb24pZyhub3RpY2UpZyhhcmUpZihwcmVzZXJ2KW8oZWQpaChvbilmKGFsbCloKGNvcGllcy4pNzUKLTYzOCB5KFApbyhlcm1pc3Npb24pYyhpcyloKGdyYW4pbyh0ZWQpZSh0bylnKGNvcClvKHkpaChhbmQpZwotKGRpc3RyaWJ1dGUpaChtbylxKGRpXDAxNGVkKWcodilvKGVyc2lvbnMpZihvZilmKHRoaXMpaChtYW4pbyh1YWwpZwotKHVuZGVyKWgodGhlKWYoY29uLSk3NSA2OTIgeShkaXRpb25zKWsoZm9yKWUodilvKGVyYmF0aW0paChjb3Apbyh5aW5nLCkKLWcocHJvKW8odmlkZWQpaCh0aGF0KWUodGhlKWgoZW4pbyh0aXJlKWgocmVzdWx0aW5nKWcoZGVyaXYpbyhlZClnKHcpbwotKG9yayllKGlzKWgoZGlzdHJpYnV0ZWQpNzUgNzQ3IHkodW5kZXIpaCh0aGUpZih0ZXJtcylnKG9mKWcoYSlmKHApcQotKGVybWlzc2lvbilqKG5vdGljZSlmKGlkZW4pbyh0aWNhbCloKHRvKWUodGhpcylnKG9uZS4pNzUKLTgxNCB5KFApbyhlcm1pc3Npb24paShpcylnKGdyYW4pbyh0ZWQpZih0bylnKGNvcClvKHkpaChhbmQpZgotKGRpc3RyaWJ1dGUpaSh0cmFuc2xhdGlvbnMpZihvZilmKHRoaXMpaChtYW4pbyh1YWwpZyhpbilvKHRvKWYoYW5vdGhlcikKLWcobGFuLSk3NSA4NjkgeShndWFnZSwpZSh1bmRlciloKHRoZSlmKGFiKXEobylvKHYpbyhlKWcoY29uZGl0aW9ucylpCi0oZm9yKWQobW8pcShkaVwwMTRlZClqKHYpbyhlcnNpb25zLCllKGV4Y2VwdCloKHRoYXQpZih0aGlzKWgocClxCi0oZXJtaXNzaW9uKWcobm90aWNlKTc1IDkyNCB5KG1hKW8oeSlmKGIpcShlKWkoc3RhdGVkKWYoaW4paChhKWYKLSh0cmFuc2xhdGlvbilnKGFwcHJvKW8odilvKGVkKWcoYilvKHkpZyh0aGUpZyhGKWwocmVlKWgoU29mdClvKHcpbyhhcmUpCi1kKEYpbChvdW5kYXRpb24uKTc1IDI2NjEgeShDb3Apbyh5cmlnaClvKHQpMzAxIDI2NjAgeShjKTI4OQotMjY2MSB5IEZyKFwwMTUpaCBGdSgxOTg4LTIwMDIpZihGKWwocmVlKWkoU29mdClvKHcpbyhhcmUpZihGKWwKLShvdW5kYXRpb24sKWgoSW5jLilwIGVvcAotJSVQYWdlOiAxIDMKLTEgMiBib3AgNzUgLTU4IGEgRnUoQ2hhcHRlcikxNSBiKDE6KWsoQ29tbWFuZCljKExpbmUpaShFZGl0aW5nKTEwNzcKLWIoMSk3NSAxNDkgeSBGcSgxKTQxIGIoQ29tbWFuZCkyOCBiKExpbmUpZShFZGl0aW5nKTEzNwotMjcxIHkgRnUoVGhpcykxNiBiKGMpbyhoYXB0ZXIpZihkZXNjcmliKXEoZXMpaSh0aGUpZShiYXNpYyloKGZlYXR1cmVzKWYKLShvZilnKHRoZSlnIEZwKGdudSlnIEZ1KGNvbW1hbmQpZyhsaW5lKWkoZWRpdGluZylmKGluKW8odGVyZmFjZS4pNzUKLTQwMyB5IEZzKDEuMSkzMyBiKEluKW4odHJvKXIoZHVjdGlvbikyNCBiKHRvKWUoTGluZSlpKEVkaXRpbmcpMTM3Ci01MDEgeSBGdShUaGUpMTYgYihmb2xsbylvKHdpbmcpZyhwYXJhZ3JhcGhzKWUoZGVzY3JpYilxKGUpaih0aGUpZQotKG5vdGF0aW9uKWcodXNlZCloKHRvKWUocmVwcmVzZW4pbyh0KWkoaylvKGV5c3Ryb2spbyhlcy4pMTM3Ci01NjkgeShUaGUpaCh0ZXh0KWYgRm8oQy1rKWggRnUoaXMpZyhyZWFkKWcoYXMpZihgQ29uKW8odHJvbC1LJylnKGFuZCloCi0oZGVzY3JpYilxKGVzKWgodGhlKWYoYylvKGhhcmFjdGVyKWYocHJvKXEoZHVjZWQpaCh3aGVuKWgodGhlKTE4MzEKLTU2NyB5IEZuKGgpcCAxODQ0IDU0MSAxOSAyIHYgMTg0NCA1NjkgYSBGbShrKXAgMTg0NCA1NzcKLVYgMTg2MCA1NjcgYSBGbihpKTc1IDYyNCB5IEZ1KGspbyhleSlkKGlzKWgocHJlc3NlZClnKHdoaWxlKWcodGhlKWYKLShDb24pbyh0cm9sKWcoaylvKGV5KWcoaXMpaChkZXByZXNzZWQuKTEzNyA2OTMgeShUaGUpZyh0ZXh0KWcKLUZvKE0taylmIEZ1KGlzKWkocmVhZClmKGFzKWYoYE1ldGEtSycpZyhhbmQpaChkZXNjcmliKXEoZXMpaSh0aGUpZShjKW8KLShoYXJhY3RlcilmKHBybylxKGR1Y2VkKWkod2hlbilnKHRoZSlmKE1ldGEpNzUgNzQ3IHkoaylvKGV5KWUoXChpZilnKHkpCi1vKG91KWcoaGEpbyh2KW8oZSlnKG9uZVwpKWcoaXMpaChkZXByZXNzZWQsKWcoYW5kKWYodGhlKTkzMAotNzQ1IHkgRm4oaClwIDk0MiA3MTkgViA5NDIgNzQ3IGEgRm0oaylwIDk0MiA3NTUgViA5NTgKLTc0NSBhIEZuKGkpOTg3IDc0NyB5IEZ1KGspbyhleSlnKGlzKWgocHJlc3NlZC4pMjAgYihUaGUpMTUKLWIoTWV0YSllKGspbyhleSloKGlzKWgobGFiKXEoZWxlZCkxNzc5IDc0NSB5IEZuKGgpcCAxNzkxCi03MTkgNzIgMiB2IDE3OTEgNzQ3IGEgRm0oQUwpbShUKXAgMTc5MSA3NTUgViAxODYwIDc0NQotYSBGbihpKTc1IDgwMiB5IEZ1KG9uKWUobWFuKW8oeSlnKGspbyhleWIpcShvYXJkcy4pMTkKLWIoT24pMTMgYihrKW8oZXliKXEob2FyZHMpZyh3aXRoKWgodClvKHcpbyhvKWUoaylvKGV5cylnKGxhYilxKGVsZWQpCi0xMjEzIDgwMCB5IEZuKGgpcCAxMjI1IDc3NCBWIDEyMjUgODAyIGEgRm0oQUwpbShUKXAgMTIyNQotODEwIFYgMTI5NCA4MDAgYSBGbihpKTEzMjIgODAyIHkgRnUoXCh1c3VhbGx5KWkodG8pZShlaXRoZXIpaShzaWRlKWcKLShvZilmKHRoZSk3NSA4NTcgeShzcGFjZSlqKGJhclwpLClmKHRoZSkzODggODU1IHkgRm4oaClwCi00MDAgODI5IFYgNDAwIDg1NyBhIEZtKEFMKW0oVClwIDQwMCA4NjUgViA0NjkgODU1IGEgRm4oaSk0OTkKLTg1NyB5IEZ1KG9uKWgodGhlKWcobGVmdClnKHNpZGUpZyhpcylnKGdlbmVyYWxseSloKHNldClmKHRvKWYodylvKG9yaylnCi0oYXMpZyhhKWcoTWV0YSlnKGspbyhleSlsKC4pMjIgYihUaGUpMTY5NyA4NTUgeSBGbihoKXAKLTE3MDkgODI5IFYgMTcwOSA4NTcgYSBGbShBTCltKFQpcCAxNzA5IDg2NSBWIDE3NzggODU1Ci1hIEZuKGkpMTgwOCA4NTcgeSBGdShrKW8oZXkpNzUgOTEyIHkob24pMTcgYih0aGUpZihyaWdoKW8odCloKG1hKW8oeSlmCi0oYWxzbyloKGIpcShlKWcoY29uXDAxNGd1cmVkKWcodG8pZih3KW8ob3JrKWcoYXMpZyhhKWgoTWV0YSlmKGspbyhleSlnCi0ob3IpZyhtYSlvKHkpZyhiKXEoZSlpKGNvblwwMTRndXJlZClmKGFzKWYoc29tZSk3NSA5NjcKLXkob3RoZXIpZihtbylxKGRpXDAxNGVyLCloKHN1YylvKGgpZihhcylnKGEpZyhDb21wKXEob3NlKWcoaylvKGV5KWcKLShmb3IpZih0KW8oeXBpbmcpaShhY2NlbilvKHRlZClmKGMpbyhoYXJhY3RlcnMuKTEzNyAxMDM1Ci15KElmKWMoeSlvKG91KWcoZG8pZyhub3QpZihoYSlvKHYpbyhlKWgoYSlmKE1ldGEpaChvcik2OTQKLTEwMzMgeSBGbihoKXAgNzA2IDEwMDcgViA3MDYgMTAzNSBhIEZtKEFMKW0oVClwIDcwNiAxMDQzCi1WIDc3NSAxMDMzIGEgRm4oaSk4MDEgMTAzNSB5IEZ1KGspbyhleSlsKCwpZyhvcilnKGFub3RoZXIpZihrKW8oZXkpaCh3KQotbyhvcmtpbmcpZihhcyloKGEpZihNZXRhKWgoaylvKGV5KWwoLClnKHRoZSlnKGlkZW4pbyh0aWNhbCk3NQotMTA5MCB5KGspbyhleXN0cm9rKW8oZSlmKGNhbilpKGIpcShlKWcoZ2VuZXJhdGVkKWYoYilvKHkpZyh0KW8oeXBpbmcpCi04MDkgMTA4OCB5IEZuKGgpcCA4MjIgMTA2MiA3MCAyIHYgODIyIDEwOTAgYSBGbShFU0MpcAotODIyIDEwOTggViA4ODggMTA4OCBhIEZuKGkpOTE1IDEwOTAgeSBGbChcMDE0cnN0KXAgRnUoLClnKGFuZClnKHRoZW4paAotKHQpbyh5cGluZykxMzM5IDEwODggeSBGbihoKXAgMTM1MSAxMDYyIDE5IDIgdiAxMzUxIDEwOTAKLWEgRm0oaylwIDEzNTEgMTA5OCBWIDEzNjggMTA4OCBhIEZuKGkpMTM4MyAxMDkwIHkgRnUoLikxOAotYihFaXRoZXIpMTIgYihwcm8pcShjZXNzKWYoaXMpaChrbm8pbyh3bik3NSAxMTQ1IHkoYXMpagotRmsobWV0YWZ5aW5nKWsgRnUodGhlKTQyNSAxMTQzIHkgRm4oaClwIDQzNyAxMTE3IFYgNDM3Ci0xMTQ1IGEgRm0oaylwIDQzNyAxMTUzIFYgNDU0IDExNDMgYSBGbihpKTQ4NCAxMTQ1IHkgRnUoaylvKGV5KWwoLikxMzcKLTEyMTQgeShUaGUpaSh0ZXh0KWUgRm8oTS1DLWspaCBGdShpcyloKHJlYWQpZihhcylmKGBNZXRhLUNvbilvKHRyb2wtaycpCi1nKGFuZCloKGRlc2NyaWIpcShlcylpKHRoZSllKGMpbyhoYXJhY3RlcilnKHBybylxKGR1Y2VkKWgoYilvKHkpNzUKLTEyNjggeSBGayhtZXRhZnlpbmcpZSBGbyhDLWspcCBGdSguKTEzNyAxMzM3IHkoSW4pZyhhZGRpdGlvbiwpaChzZXYpbwotKGVyYWwpZihrKW8oZXlzKWYoaGEpbyh2KW8oZSlnKHRoZWlyKWgobylvKHduKWYobmFtZXMuKTMwCi1iKFNwKXEoZWNpXDAxNGNhbGx5KWwoLCkxMzg0IDEzMzUgeSBGbihoKXAgMTM5NiAxMzA5Ci03MyAyIHYgMTM5NiAxMzM3IGEgRm0oREVMKXAgMTM5NiAxMzQ1IFYgMTQ2NyAxMzM1IGEgRm4oaSkxNDgyCi0xMzM3IHkgRnUoLCkxNTE0IDEzMzUgeSBGbihoKXAgMTUyNiAxMzA5IDcwIDIgdiAxNTI2Ci0xMzM3IGEgRm0oRVNDKXAgMTUyNiAxMzQ1IFYgMTU5MyAxMzM1IGEgRm4oaSkxNjA4IDEzMzcKLXkgRnUoLCkxNjQwIDEzMzUgeSBGbihoKXAgMTY1MiAxMzA5IDcyIDIgdiAxNjUyIDEzMzcKLWEgRm0oTEZEKXAgMTY1MiAxMzQ1IFYgMTcyMiAxMzM1IGEgRm4oaSkxNzM3IDEzMzcgeSBGdSgsKTE3NjgKLTEzMzUgeSBGbihoKXAgMTc4MCAxMzA5IDcwIDIgdiAxNzgwIDEzMzcgYSBGbShTUEMpcCAxNzgwCi0xMzQ1IFYgMTg0NyAxMzM1IGEgRm4oaSkxODYyIDEzMzcgeSBGdSgsKTc1IDEzOTAgeSBGbihoKXAKLTg3IDEzNjQgNzYgMiB2IDg3IDEzOTIgYSBGbShSRVQpcCA4NyAxMzk5IFYgMTYwIDEzOTAKLWEgRm4oaSkxNzUgMTM5MiB5IEZ1KCwpMjMgYihhbmQpMzA2IDEzOTAgeSBGbihoKXAgMzE4Ci0xMzY0IDc0IDIgdiAzMTggMTM5MiBhIEZtKFQpbShBQilwIDMxOCAxMzk5IFYgMzkwIDEzOTAKLWEgRm4oaSk0MjcgMTM5MiB5IEZ1KGFsbClmKHN0YW5kKWcoZm9yKWYodGhlbXNlbHYpbyhlcyloKHdoZW4paChzZWVuKWYKLShpbilnKHRoaXMpZyh0ZXh0LCloKG9yKWUoaW4paShhbillKGluaXQpaShcMDE0bGUpZyhcKHNlZSk3NQotMTQ0NyB5KFNlY3Rpb24pZCgxLjMpZihbUmVhZGxpbmUpaChJbml0KWcoRmlsZV0sKWgocGFnZSllKDRcKS4pMzIKLWIoSWYpMTkgYih5KW8ob3VyKWcoaylvKGV5YilxKG9hcmQpaChsYWMpbyhrcylmKGEpMTQ0NAotMTQ0NSB5IEZuKGgpcCAxNDU2IDE0MTkgNzIgMiB2IDE0NTYgMTQ0NyBhIEZtKExGRClwIDE0NTYKLTE0NTQgViAxNTI2IDE0NDUgYSBGbihpKTE1NjAgMTQ0NyB5IEZ1KGspbyhleSlsKCwpaCh0KW8oeXBpbmcpMTgwMgotMTQ0NSB5IEZuKGgpcCAxODE0IDE0MTkgNDkgMiB2IDE4MTQgMTQ0NyBhIEZtKEMtailwIDE4MTQKLTE0NTQgViAxODYwIDE0NDUgYSBGbihpKTc1IDE1MDEgeSBGdSh3aWxsKWMocHJvKXEoZHVjZSlnKHRoZSlmKGRlc2lyZWQpCi1oKGMpbyhoYXJhY3Rlci4paihUaGUpODc0IDE0OTkgeSBGbihoKXAgODg2IDE0NzMgNzYgMgotdiA4ODYgMTUwMSBhIEZtKFJFVClwIDg4NiAxNTA5IFYgOTU5IDE0OTkgYSBGbihpKTk4OQotMTUwMSB5IEZ1KGspbyhleSljKG1hKW8oeSlmKGIpcShlKWgobGFiKXEoZWxlZCkxMzg1IDE0OTkKLXkgRm4oaClwIDEzOTcgMTQ3MyAxMDkgMiB2IDEzOTcgMTUwMSBhIEZtKFJldHVybilwIDEzOTcKLTE1MDkgViAxNTAzIDE0OTkgYSBGbihpKTE1MzMgMTUwMSB5IEZ1KG9yKTE1ODggMTQ5OSB5Ci1GbihoKXAgMTYwMCAxNDczIDg2IDIgdiAxNjAwIDE1MDEgYSBGbShFbilvKHRlcilwIDE2MDAKLTE1MDkgViAxNjg0IDE0OTkgYSBGbihpKTE3MTQgMTUwMSB5IEZ1KG9uKWYoc29tZSk3NSAxNTU2Ci15KGspbyhleWIpcShvYXJkcy4pNzUgMTY4OCB5IEZzKDEuMikzMyBiKFJlYWRsaW5lKTIzCi1iKEluKW4odGVyYWN0aW9uKTEzNyAxNzg2IHkgRnUoT2Z0ZW4pMTMgYihkdXJpbmcpaChhbillKGluKW8odGVyYWN0aXYpbwotKGUpaChzZXNzaW9uKWcoeSlvKG91KWcodClvKHlwKXEoZSlmKGluKWkoYSllKGxvbmcpaChsaW5lKWgob2YpZSh0ZXh0LCkKLWgob25seSlnKHRvKWYobm90aWNlKWgodGhhdClmKHRoZSk3NSAxODQxIHkoXDAxNHJzdClrKHcpbyhvcmQpZihvbiloCi0odGhlKWgobGluZSloKGlzKWUobWlzc3ApcShlbGxlZC4pMjYgYihUaGUpMTYgYihSZWFkbGluZSlpKGxpYnJhcnkpZgotKGdpdilvKGVzKWYoeSlvKG91KWcoYSlnKHNldClnKG9mKWcoY29tbWFuZHMpZyhmb3IpNzUKLTE4OTYgeShtYW5pcHVsYXRpbmcpZyh0aGUpZih0ZXh0KWcoYXMpZih5KW8ob3UpaCh0KW8oeXApcShlKWcoaXQpZyhpbiwpCi1nKGFsbG8pbyh3aW5nKWgoeSlvKG91KWYodG8pZihqdXN0KWgoXDAxNHgpZyh5KW8ob3VyKWYodClvKHlwKXEobywpZwotKGFuZCloKG5vdClnKGZvcmNpbmcpNzUgMTk1MCB5KHkpbyhvdSlmKHRvKWYocmV0KW8oeXApcShlKWgodGhlKWcobWEpcwotKGpvcml0KW8oeSlmKG9mKWgodGhlKWcobGluZS4pMjEgYihVc2luZykxNSBiKHRoZXNlKWYoZWRpdGluZyloCi0oY29tbWFuZHMsKWYoeSlvKG91KWcobW8pbyh2KW8oZSlmKHRoZSloKGN1cnNvcik3NSAyMDA1Ci15KHRvKWkodGhlKWkocGxhY2UpZyh0aGF0KWUobmVlZHMpaShjb3JyZWN0aW9uLClnKGFuZClmKGRlbGV0ZSloKG9yKWYKLShpbnNlcnQpZyh0aGUpaCh0ZXh0KWUob2YpaCh0aGUpZyhjb3JyZWN0aW9ucy4pMjYgYihUaGVuLCk3NQotMjA2MCB5KHdoZW4pMTYgYih5KW8ob3UpZihhcmUpaChzYXRpc1wwMTRlZClnKHdpdGgpZyh0aGUpZihsaW5lLClpKHkpbwotKG91KWUoc2ltcGx5KWkocHJlc3MpMTE2MCAyMDU4IHkgRm4oaClwIDExNzIgMjAzMiA3NgotMiB2IDExNzIgMjA2MCBhIEZtKFJFVClwIDExNzIgMjA2OCBWIDEyNDUgMjA1OCBhIEZuKGkpMTI2MAotMjA2MCB5IEZ1KC4payhZKWwob3UpMTYgYihkbylmKG5vdCloKGhhKW8odilvKGUpZih0bylnKGIpcShlKWgoYXQpZgotKHRoZSk3NSAyMTE1IHkoZW5kKWsob2YpZSh0aGUpaChsaW5lKWkodG8pZChwcmVzcyk1NjMKLTIxMTMgeSBGbihoKXAgNTc1IDIwODcgViA1NzUgMjExNSBhIEZtKFJFVClwIDU3NSAyMTIyCi1WIDY0OCAyMTEzIGEgRm4oaSk2NjMgMjExNSB5IEZ1KDspaSh0aGUpZihlbilvKHRpcmUpaChsaW5lKWcoaXMpZwotKGFjY2VwdGVkKWYocmVnYXJkbGVzcylnKG9mKWcodGhlKWcobG8pcShjYXRpb24pZyhvZilnKHRoZSk3NQotMjE3MCB5KGN1cnNvcilkKHdpdGhpbiloKHRoZSlnKGxpbmUuKTc1IDIyODQgeSBGaigxLjIuMSkzMAotYihSZWFkbGluZSkyMCBiKEJhcmUpZyhFc3NlbiluKHRpYWxzKTEzNyAyMzgyIHkgRnUoSW4pMTIKLWIob3JkZXIpZyh0bylmKGVuKW8odGVyKWcoYylvKGhhcmFjdGVycylnKGluKW8odG8pZyh0aGUpaChsaW5lLCloCi0oc2ltcGx5KWcodClvKHlwKXEoZSlmKHRoZW0uKTE4IGIoVGhlKTEyIGIodClvKHlwKXEoZWQpZyhjKW8oaGFyYWN0ZXIpZgotKGFwcClxKGVhcnMpNzUgMjQzNyB5KHdoZXJlKTE2IGIodGhlKWgoY3Vyc29yKWYodylvKGFzLClmKGFuZCloKHRoZW4paAotKHRoZSlmKGN1cnNvcilnKG1vKW8odilvKGVzKWcob25lKWcoc3BhY2UpZyh0bylnKHRoZSlnKHJpZ2gpbyh0LikyMwotYihJZikxNyBiKHkpbyhvdSlmKG1pc3Qpbyh5cClxKGUpZyhhKTc1IDI0OTIgeShjKW8oaGFyYWN0ZXIsKWUoeSlvKG91KWgKLShjYW4pZyh1c2UpaCh5KW8ob3VyKWYoZXJhc2UpZyhjKW8oaGFyYWN0ZXIpZih0byloKGJhYylvKGspZyh1cClnKGFuZCloCi0oZGVsZXRlKWcodGhlKWYobWlzdClvKHlwKXEoZWQpaChjKW8oaGFyYWN0ZXIuKTEzNyAyNTYwCi15KFNvbWV0aW1lcylnKHkpbyhvdSlmKG1hKW8oeSlnKG1pc3Qpbyh5cClxKGUpaChhKWYoYylvKGhhcmFjdGVyLClmCi0oYW5kKWkobm90KWYobm90aWNlKWgodGhlKWYoZXJyb3IpZyh1bilvKHRpbClpKHkpbyhvdSllKGhhKW8odilvKGUpZyh0KQotbyh5cClxKGVkKTc1IDI2MTUgeShzZXYpbyhlcmFsKWcob3RoZXIpZihjKW8oaGFyYWN0ZXJzLikxOQotYihJbiljKHRoYXQpZShjYXNlLClpKHkpbyhvdSlmKGNhbilnKHQpbyh5cClxKGUpaCBGbyhDLWIpZgotRnUodG8pZyhtbylvKHYpbyhlKWYodGhlKWkoY3Vyc29yKWYodG8pZyh0aGUpZyhsZWZ0LCloKGFuZCk3NQotMjY3MCB5KHRoZW4paChjb3JyZWN0KWUoeSlvKG91ciloKG1pc3RhaylvKGUuKTIwIGIoQWZ0ZXJ3KW8oYXJkcywpMTMKLWIoeSlvKG91KWkoY2FuKWcobW8pbyh2KW8oZSlnKHRoZSlnKGN1cnNvcilnKHRvKWcodGhlKWcocmlnaClvKHQpZwotKHdpdGgpZyBGbyhDLWYpcCBGdSguKXAgZW9wCi0lJVBhZ2U6IDIgNAotMiAzIGJvcCA3NSAtNTggYSBGdSgyKTEzMjIgYihHTlUpMTUgYihSZWFkbGluZSloKExpYnJhcnkpMTM3Ci0xNDkgeShXaGVuKWgoeSlvKG91KWYoYWRkKWcodGV4dClnKGluKWgodGhlKWcobWlkZGxlKWgob2YpZShhKWYobGluZSwpagotKHkpbyhvdSllKHdpbGwpaShub3RpY2UpZih0aGF0KWYoYylvKGhhcmFjdGVycylmKHRvKWgodGhlKWcocmlnaClvKHQpNzUKLTIwNCB5KG9mKWUodGhlKWcoY3Vyc29yKWcoYXJlKWcoYHB1c2hlZCloKG8pbyh2KW8oZXInKWYodG8pZihtYWspbyhlKWgKLShybylxKG9tKWcoZm9yKWYodGhlKWkodGV4dClmKHRoYXQpZih5KW8ob3UpaChoYSlvKHYpbyhlKWcoaW5zZXJ0ZWQuKTIxCi1iKExpaylvKGV3aXNlLCk3NSAyNTkgeSh3aGVuKWUoeSlvKG91KWcoZGVsZXRlKWgodGV4dCllKGIpcShlaGluZClqCi0odGhlKWUoY3Vyc29yLClnKGMpbyhoYXJhY3RlcnMpZih0bylnKHRoZSloKHJpZ2gpbyh0KWYob2YpZyh0aGUpaAotKGN1cnNvcilnKGFyZSlmKGBwdWxsZWQpNzUgMzE0IHkoYmFjKW8oaycpMTEgYih0bylnKFwwMTRsbCloKGluKWgodGhlKWUKLShibGFuayloKHNwYWNlKWcoY3JlYXRlZClmKGIpbyh5KWgodGhlKWYocmVtbylvKHYpbShhbClnKG9mKWcodGhlKWgKLSh0ZXh0LikxOCBiKEEpMTEgYihsaXN0KWgob2YpZih0aGUpaChiYXJlKWYoZXNzZW4pbyh0aWFscyk3NQotMzY5IHkoZm9yKWsoZWRpdGluZyloKHRoZSlmKHRleHQpZyhvZilnKGFuKWcoaW5wdXQpaChsaW5lKWgoZm9sbG8pbwotKHdzLik3NSA0NDkgeSBGbyhDLWIpMTY4IGIgRnUoTW8pbyh2KW8oZSkxNCBiKGJhYylvKGspaChvbmUpaChjKW8KLShoYXJhY3Rlci4pNzUgNTMwIHkgRm8oQy1mKTE2OCBiIEZ1KE1vKW8odilvKGUpMTQgYihmb3J3KW8oYXJkKWcob25lKWgKLShjKW8oaGFyYWN0ZXIuKTc1IDYwOCB5IEZuKGgpcCA4NyA1ODIgNzMgMiB2IDg3IDYxMCBhCi1GbShERUwpcCA4NyA2MTggViAxNTggNjA4IGEgRm4oaSkxODggNjEwIHkgRnUob3IpMjQ0Ci02MDggeSBGbihoKXAgMjU2IDU4MiAxNTkgMiB2IDI1NiA2MTAgYSBGbShCYWMpbyhrc3BhY2UpcAotMjU2IDYxOCBWIDQxMiA2MDggYSBGbihpKTMxNSA2NjUgeSBGdShEZWxldGUpaCh0aGUpZihjKW8oaGFyYWN0ZXIpZyh0bykKLWYodGhlKWgobGVmdCloKG9mKWYodGhlKWcoY3Vyc29yLik3NSA3NDUgeSBGbyhDLWQpMTY4Ci1iIEZ1KERlbGV0ZSkxNiBiKHRoZSlmKGMpbyhoYXJhY3RlcilnKHVuZGVybmVhdGgpaCh0aGUpZihjdXJzb3IuKTc1Ci04MjUgeShQcmluKW8odGluZyloKGMpbyhoYXJhY3RlcnMpMzE1IDg4MCB5KEluc2VydClmKHRoZSloKGMpbwotKGhhcmFjdGVyKWUoaW4pbyh0byloKHRoZSloKGxpbmUpaChhdClkKHRoZSloKGN1cnNvci4pNzUKLTk2MSB5IEZvKEMtXylnIEZ1KG9yKWYgRm8oQy14KWgoQy11KTMxNSAxMDE1IHkgRnUoVW5kbylpKHRoZSlnKGxhc3QpZgotKGVkaXRpbmcpaShjb21tYW5kLikyNSBiKFkpbChvdSkxNyBiKGNhbilnKHVuZG8pZyhhbGwpZyh0aGUpZyh3KW8oYSlvCi0oeSlmKGJhYylvKGspaCh0bylmKGFuKWcoZW1wdClvKHkpMzE1IDEwNzAgeShsaW5lLik3NQotMTE1MSB5KFwoRGVwKXEoZW5kaW5nKWkob24pZih5KW8ob3VyKWcoY29uXDAxNGd1cmF0aW9uLClnKHRoZSk4NjMKLTExNDkgeSBGbihoKXAgODc1IDExMjMgViA4NzUgMTE1MSBhIEZtKEJhYylvKGtzcGFjZSlwCi04NzUgMTE1OSBWIDEwMzIgMTE0OSBhIEZuKGkpMTA2MyAxMTUxIHkgRnUoaylvKGV5KWcoYilxKGUpaChzZXQpZih0bylmCi0oZGVsZXRlKWkodGhlKWYoYylvKGhhcmFjdGVyKWcodG8pZih0aGUpNzUgMTIwNiB5KGxlZnQpaChvZilmKHRoZSloCi0oY3Vyc29yKWYoYW5kKWcodGhlKTU5NiAxMjA0IHkgRm4oaClwIDYwOCAxMTc4IDczIDIgdgotNjA4IDEyMDYgYSBGbShERUwpcCA2MDggMTIxMyBWIDY3OSAxMjA0IGEgRm4oaSk3MTAgMTIwNgoteSBGdShrKW8oZXkpaChzZXQpZih0bylnKGRlbGV0ZSloKHRoZSlnKGMpbyhoYXJhY3RlcilmKHVuZGVybmVhdGgpaAotKHRoZSlnKGN1cnNvciwpZihsaWspbyhlKTc1IDEyNjAgeSBGbyhDLWQpcCBGdSgsKWUocmF0aGVyKWgodGhhbilnKHRoZSkKLWcoYylvKGhhcmFjdGVyKWcodG8pZih0aGUpaShsZWZ0KWYob2YpZyh0aGUpZyhjdXJzb3IuXCkpNzUKLTEzNzQgeSBGaigxLjIuMikzMCBiKFJlYWRsaW5lKTIwIGIoTW8pbih2KW4oZW1lbiluKHQpaShDb21tYW5kcykxMzcKLTE0NzEgeSBGdShUaGUpMTQgYihhYilxKG8pbyh2KW8oZSllKHRhYmxlKWkoZGVzY3JpYilxKGVzKWcodGhlKWcobW9zdCllCi0oYmFzaWMpaShrKW8oZXlzdHJvaylvKGVzKWQodGhhdClpKHkpbyhvdSlnKG5lZWQpaChpbilmKG9yZGVyKWcodG8pZwotKGRvKWcoZWRpdGluZyk3NSAxNTI2IHkob2YpZih0aGUpaChpbnB1dCloKGxpbmUuKTIxIGIoRilsKG9yKTEyCi1iKHkpbyhvdXIpZyhjb24pbyh2KW8oZW5pZW5jZSwpaShtYW4pbyh5KWYob3RoZXIpZihjb21tYW5kcyloKGhhKW8odilvCi0oZSlmKGIpcShlZW4paShhZGRlZClmKGluKWgoYWRkaXRpb24pNzUgMTU4MCB5KHRvKWggRm8oQy1iKXAKLUZ1KCwpaCBGbyhDLWYpcCBGdSgsKWYgRm8oQy1kKXAgRnUoLClnKGFuZCk1MjIgMTU3OCB5Ci1GbihoKXAgNTM0IDE1NTIgViA1MzQgMTU4MCBhIEZtKERFTClwIDUzNCAxNTg4IFYgNjA1Ci0xNTc4IGEgRm4oaSk2MTkgMTU4MCB5IEZ1KC4pMjMgYihIZXJlKTE2IGIoYXJlKWcoc29tZSlmKGNvbW1hbmRzKWgoZm9yKQotZihtbylvKHZpbmcpaChtb3JlKWcocmFwaWRseSloKGFiKXEob3V0KWYodGhlKTc1IDE2MzUKLXkobGluZS4pNzUgMTcxNiB5IEZvKEMtYSkxNjggYiBGdShNbylvKHYpbyhlKTE0IGIodG8paCh0aGUpZyhzdGFydClmCi0ob2YpaCh0aGUpZyhsaW5lLik3NSAxNzk2IHkgRm8oQy1lKTE2OCBiIEZ1KE1vKW8odilvKGUpMTQKLWIodG8paCh0aGUpZyhlbmQpaChvZilmKHRoZSlnKGxpbmUuKTc1IDE4NzYgeSBGbyhNLWYpMTY4Ci1iIEZ1KE1vKW8odilvKGUpMTQgYihmb3J3KW8oYXJkKWcoYSloKHcpbyhvcmQsKWYod2hlcmUpaShhKWUodylvKG9yZCloCi0oaXMpaChjb21wKXEob3NlZClmKG9mKWcobGV0dGVycylnKGFuZCloKGRpZ2l0cy4pNzUgMTk1NwoteSBGbyhNLWIpMTY4IGIgRnUoTW8pbyh2KW8oZSkxNCBiKGJhYylvKGt3KW8oYXJkKWgoYSlnKHcpbyhvcmQuKTc1Ci0yMDM3IHkgRm8oQy1sKTE2OCBiIEZ1KENsZWFyKTE1IGIodGhlKWgoc2NyZWVuLClmKHJlcHJpbilvKHRpbmcpaCh0aGUpZgotKGN1cnJlbilvKHQpZyhsaW5lKWkoYXQpZSh0aGUpZyh0b3AuKTEzNyAyMTE4IHkoTm90aWNlKWUoaG8pbyh3KWYKLUZvKEMtZilnIEZ1KG1vKW8odilvKGVzKWYoZm9ydylvKGFyZClnKGEpaChjKW8oaGFyYWN0ZXIsKWcod2hpbGUpaQotRm8oTS1mKWUgRnUobW8pbyh2KW8oZXMpZihmb3J3KW8oYXJkKWcoYSloKHcpbyhvcmQuKTE4Ci1iKEl0KTEzIGIoaXMpZyhhKWYobG8pcShvc2UpNzUgMjE3MyB5KGNvbilvKHYpbyhlbilvKHRpb24paih0aGF0KWYoY29uKQotbyh0cm9sKWgoaylvKGV5c3Ryb2spbyhlcylmKG9wKXEoZXJhdGUpaChvbilmKGMpbyhoYXJhY3RlcnMpaCh3aGlsZSloCi0obWV0YSllKGspbyhleXN0cm9rKW8oZXMpZyhvcClxKGVyYXRlKWgob24pNzUgMjIyNyB5KHcpbyhvcmRzLik3NQotMjM0MSB5IEZqKDEuMi4zKTMwIGIoUmVhZGxpbmUpMjAgYihLaWxsaW5nKWgoQ29tbWFuZHMpMTM3Ci0yNDM4IHkgRmsoS2lsbGluZykyNiBiIEZ1KHRleHQpMTggYihtZWFucylnKHRvKWcoZGVsZXRlKWkodGhlKWYodGV4dClmCi0oZnJvbSlnKHRoZSloKGxpbmUsKWkoYnV0KWQodG8pZyhzYSlvKHYpbyhlKWcoaXQpaChhKW8odylvKGEpbyh5KWUoZm9yKQotaChsYXRlciloKHVzZSwpNzUgMjQ5MyB5KHVzdWFsbHkpZihiKW8oeSlmIEZrKHkpbyhhbmtpbmcpMjIKLWIgRnUoXChyZS1pbnNlcnRpbmdcKSkxNyBiKGl0KWcoYmFjKW8oaylnKGluKW8odG8pZyh0aGUpaChsaW5lLikyNwotYihcKGBDdXQnKTE1IGIoYW5kKWooYHBhc3RlJyllKGFyZSlnKG1vcmUpaChyZWNlbilvKHQpNzUKLTI1NDcgeShqYXJnb24pZChmb3IpaChga2lsbCcpaChhbmQpZyhgeSlvKGFuaycuXCkpMTM3Ci0yNjE1IHkoSWYpZyh0aGUpZihkZXNjcmlwdGlvbiloKGZvcilmKGEpZyhjb21tYW5kKWcoc2Epbyh5cylmKHRoYXQpaAotKGl0KWcoYGtpbGxzJyloKHRleHQsKWUodGhlbilpKHkpbyhvdSlmKGNhbilnKGIpcShlKWgoc3VyZSlmKHRoYXQpZih5KW8KLShvdSk3NSAyNjcwIHkoY2FuKWgoZ2V0KWcodGhlKWcodGV4dClnKGJhYylvKGspZyhpbiloKGEpZihkaVwwMTNlcmVuKW8KLSh0KWcoXChvcilnKHRoZSlnKHNhbWVcKSlnKHBsYWNlKWgobGF0ZXIuKXAgZW9wCi0lJVBhZ2U6IDMgNQotMyA0IGJvcCA3NSAtNTggYSBGdShDaGFwdGVyKTE1IGIoMTopayhDb21tYW5kKWMoTGluZSlpKEVkaXRpbmcpMTA3NwotYigzKTEzNyAxNDkgeShXaGVuKTEyIGIoeSlvKG91KWcodXNlKWcoYSlmKGtpbGwpaShjb21tYW5kLClmKHRoZSlnCi0odGV4dClmKGlzKWgoc2Epbyh2KW8oZWQpZihpbilpKGEpZSBGayhraWxsLXJpbmcpcCBGdSguKTIxCi1iKEFuKW8oeSkxMiBiKG4pbyh1bSlvKGIpcShlcilnKG9mKWYoY29uc2VjdXRpdilvKGUpNzUKLTIwNCB5KGtpbGxzKTE3IGIoc2Epbyh2KW8oZSllKGFsbCloKG9mKWYodGhlKWgoa2lsbGVkKWkodGV4dClkCi0odG9nZXRoZXIsKWYoc28paCh0aGF0KWcod2hlbiloKHkpbyhvdSlmKHkpbyhhbmspZyhpdCloKGJhYylvKGssKWYoeSlvCi0ob3UpZyhnZXQpZyhpdCloKGFsbC4pMjIgYihUaGUpNzUgMjU5IHkoa2lsbCljKHJpbmcpZihpcylmKG5vdClnKGxpbmUpaQotKHNwKXEoZWNpXDAxNGM7KWcodGhlKWUodGV4dClnKHRoYXQpZih5KW8ob3UpaChraWxsZWQpaihvbilkKGEpZwotKHByZXZpb3VzbHkpaCh0KW8oeXApcShlZClnKGxpbmUpaChpcyllKGEpbyh2KW0oYWlsYWJsZSk3NQotMzE0IHkodG8pZihiKXEoZSlnKHkpbyhhbmspbyhlZClnKGJhYylvKGspaChsYXRlciwpZSh3aGVuKWkoeSlvKG91KWYKLShhcmUpZyh0KW8oeXBpbmcpZyhhbm90aGVyKWcobGluZS4pMTM3IDM4MCB5KEhlcmUpaChpcylmKHRoZSloKGxpc3QpZwotKG9mKWUoY29tbWFuZHMpaChmb3IpZyhraWxsaW5nKWoodGV4dC4pNzUgNDU4IHkgRm8oQy1rKTE2OAotYiBGdShLaWxsKTE3IGIodGhlKWYodGV4dCllKGZyb20paCh0aGUpZyhjdXJyZW4pbyh0KWcoY3Vyc29yKWcocClxCi0ob3NpdGlvbiloKHRvKWYodGhlKWcoZW5kKWgob2YpZih0aGUpZyhsaW5lLik3NSA1MzUgeQotRm8oTS1kKTE2OCBiIEZ1KEtpbGwpMTUgYihmcm9tKWUodGhlKWcoY3Vyc29yKWcodG8pZih0aGUpaShlbmQpZyhvZillCi0odGhlKWkoY3VycmVuKW8odClmKHcpbyhvcmQsKWYob3IsKWgoaWYpZyhiKXEoZXQpbyh3KW8oZWVuKWgodylvKG9yZHMsKQotZSh0byloKHRoZSkzMTUgNTkwIHkoZW5kKWoob2YpZih0aGUpZyhuZXh0KWcodylvKG9yZC4payhXKWwob3JkKWMoYilxCi0ob3VuZGFyaWVzKWkoYXJlKWUodGhlKWcoc2FtZSlnKGFzKWcodGhvc2UpZih1c2VkKWkoYilvKHkpZgotRm8oTS1mKXAgRnUoLik3NSA2NjggeSBGbyhNLSkxMjMgNjY2IHkgRm4oaClwIDEzNSA2NDAKLTczIDIgdiAxMzUgNjY4IGEgRm0oREVMKXAgMTM1IDY3NSBWIDIwNiA2NjYgYSBGbihpKTMxNQotNjY4IHkgRnUoS2lsbClpKGZyb20pZSh0aGUpZyhjdXJzb3IpZyh0aGUpaChzdGFydCllKG9mKWgodGhlKWcoY3VycmVuKW8KLSh0KWcodylvKG9yZCwpZihvciwpaChpZilnKGIpcShldClvKHcpbyhlZW4paCh3KW8ob3JkcywpZSh0byloKHRoZSkzMTUKLTcyMyB5KHN0YXJ0KWoob2YpaCh0aGUpZyhwcmV2aW91cyloKHcpbyhvcmQuKTMxIGIoVylsKG9yZCkxOQotYihiKXEob3VuZGFyaWVzKWgoYXJlKWYodGhlKWgoc2FtZSllKGFzKWgodGhvc2UpZyh1c2VkKWgoYilvKHkpMzE1Ci03NzcgeSBGbyhNLWIpcCBGdSguKTc1IDg1NSB5IEZvKEMtdykxNjggYiBGdShLaWxsKTE4Ci1iKGZyb20pZCh0aGUpZyhjdXJzb3IpaCh0bylmKHRoZSlnKHByZXZpb3VzKWkod2hpdGVzcGFjZS4pMjIKLWIoVGhpcykxNiBiKGlzKWcoZGlcMDEzZXJlbilvKHQpZyh0aGFuKWYgRm8oTS0pMTc3NyA4NTMKLXkgRm4oaClwIDE3ODkgODI3IFYgMTc4OSA4NTUgYSBGbShERUwpcCAxNzg5IDg2MyBWIDE4NjAKLTg1MyBhIEZuKGkpMzE1IDkxMCB5IEZ1KGIpcShlY2F1c2UpaCh0aGUpZih3KW8ob3JkKWcoYilxKG91bmRhcmllcyloCi0oZGlcMDEzZXIuKTEzNyA5ODcgeShIZXJlKTIxIGIoaXMpaChobylvKHcpZSh0bylnIEZrKHkpbyhhbmspagotRnUodGhlKWUodGV4dClmKGJhYylvKGspaChpbilvKHRvKWcodGhlKWYobGluZS4pMzkgYihZKWwoYW5raW5nKTIxCi1iKG1lYW5zKWcodG8pZihjb3Apbyh5KWgodGhlKWcobW9zdC0pNzUgMTA0MiB5KHJlY2VuKW8odGx5LWtpbGxlZClkCi0odGV4dClkKGZyb20pZih0aGUpaShraWxsKWgoYnVcMDEzZXIuKTc1IDExMjAgeSBGbyhDLXkpMTY4Ci1iIEZ1KFkpbChhbmspMTUgYih0aGUpaChtb3N0KWUocmVjZW4pbyh0bHkpaShraWxsZWQpaCh0ZXh0KWUoYmFjKW8oaylnCi0oaW4pbyh0bylnKHRoZSloKGJ1XDAxM2VyKWYoYXQpZih0aGUpaShjdXJzb3IuKTc1IDExOTgKLXkgRm8oTS15KTE2OCBiIEZ1KFJvdGF0ZSkxNiBiKHRoZSloKGtpbGwtcmluZywpaihhbmQpZCh5KW8oYW5rKWcodGhlKWgKLShuZXcpZih0b3AuKTI2IGIoWSlsKG91KTE3IGIoY2FuKWgob25seSlnKGRvKWYodGhpcyloKGlmKWYodGhlKWgocHJpb3IpCi0zMTUgMTI1MiB5KGNvbW1hbmQpZChpcyloIEZvKEMteSlmIEZ1KG9yKWYgRm8oTS15KXAgRnUoLik3NQotMTM2MSB5IEZqKDEuMi40KTMwIGIoUmVhZGxpbmUpMjAgYihBcmd1bWVuKW4odHMpMTM3IDE0NTcKLXkgRnUoWSlsKG91KTE1IGIoY2FuKWcocGFzcylmKG4pbyh1bWVyaWMpaShhcmd1bWVuKW8odHMpZSh0bylnCi0oUmVhZGxpbmUpaChjb21tYW5kcy4pMjAgYihTb21ldGltZXMpMTUgYih0aGUpZyhhcmd1bWVuKW8odCllKGFjdHMpNzUKLTE1MTEgeShhcykyMCBiKGEpZihyZXApcShlYXQpaShjb3VuKW8odCwpZihvdGhlcilnKHRpbWVzKWcoaXQpaChpcylmCi0odGhlKWcgRmwoc2lnbilqIEZ1KG9mKWModGhlKWgoYXJndW1lbilvKHQpZyh0aGF0KWYoaXMpaShzaWduaVwwMTRjYW4pbwotKHQuKTM1IGIoSWYpMjAgYih5KW8ob3UpNzUgMTU2NiB5KHBhc3MpZChhKWYobmVnYXRpdilvKGUpaChhcmd1bWVuKW8odCkKLWYodG8pZyhhKWcoY29tbWFuZCloKHdoaWMpbyhoKWgobm9ybWFsbHkpZihhY3RzKWYoaW4paShhKWUoZm9ydylvKGFyZClnCi0oZGlyZWN0aW9uLClpKHRoYXQpNzUgMTYyMSB5KGNvbW1hbmQpZyh3aWxsKWgoYWN0KWUoaW4paShhKWUoYmFjKW8oa3cpbwotKGFyZClnKGRpcmVjdGlvbi4pMjggYihGKWwob3IpMTcgYihleGFtcGxlLClpKHRvKWUoa2lsbClqKHRleHQpZChiYWMpbwotKGspZyh0bylnKHRoZSloKHN0YXJ0KWUob2YpNzUgMTY3NiB5KHRoZSlmKGxpbmUsKWkoeSlvKG91KWUobWlnaClvKHQpZwotKHQpbyh5cClxKGUpZyhgKXAgRnQoTS0tKWYoQy1rKXAgRnUoJy4pMTM3IDE3NDIgeShUaGUpaChnZW5lcmFsKWYodylvCi0oYSlvKHkpZih0byloKHBhc3MpZyhuKW8odW1lcmljKWgoYXJndW1lbilvKHRzKWUodG8pZyhhKWgoY29tbWFuZClnKGlzKQotaCh0byllKHQpbyh5cClxKGUpaChtZXRhKWcoZGlnaXRzKWgoYilxKGVmb3JlKTc1IDE3OTcKLXkodGhlKWgoY29tbWFuZC4payhJZiljKHRoZSlmKFwwMTRyc3QpZyhgZGlnaXQnKWgodClvKHlwKXEoZWQpZihpcyloKGEpCi1nKG1pbilvKHVzKWcoc2lnbilnKFwoYClwIEZ0KC0pcCBGdSgnXCksKWQodGhlbilqKHRoZSlmKHNpZ24paChvZilmCi0odGhlKWgoYXJndW1lbilvKHQpNzUgMTg1MiB5KHdpbGwpMjEgYihiKXEoZSlmKG5lZ2F0aXYpbyhlLikzMQotYihPbmNlKTIwIGIoeSlvKG91KWYoaGEpbyh2KW8oZSlnKHQpbyh5cClxKGVkKWcob25lKWcobWV0YSlnKGRpZ2l0KWgKLSh0byllKGdldCloKHRoZSlnKGFyZ3VtZW4pbyh0KWYoc3RhcnRlZCwpaCh5KW8ob3UpNzUKLTE5MDYgeShjYW4pYyh0KW8oeXApcShlKWYodGhlKWgocmVtYWluZGVyKWcob2YpZih0aGUpZyhkaWdpdHMsKWgoYW5kKWcKLSh0aGVuKWcodGhlKWYoY29tbWFuZC4pMjAgYihGKWwob3IpMTMgYihleGFtcGxlLClpKHRvKWYoZ2l2KW8oZSloKHRoZSlmCi1GbyhDLWQpNzUgMTk2MSB5IEZ1KGNvbW1hbmQpMTkgYihhbilmKGFyZ3VtZW4pbyh0KWcob2YpZygxMCwpaCh5KW8ob3UpZgotKGNvdWxkKWkodClvKHlwKXEoZSlmKGApcCBGdChNLTEpMTQgYigwKWgoQy1kKXAgRnUoJywpayh3aGljKW8oaClnCi0od2lsbCloKGRlbGV0ZSlnKHRoZSlmKG5leHQpZyh0ZW4pNzUgMjAxNiB5KGMpbyhoYXJhY3RlcnMpMTQKLWIob24paSh0aGUpZihpbnB1dCloKGxpbmUuKTc1IDIxMjUgeSBGaigxLjIuNSkzMCBiKFNlYXJjKW4oaGluZykyMQotYihmb3IpZihDb21tYW5kcyloKGluKWYodGhlKWgoSGlzdG9yeSkxMzcgMjIyMCB5IEZ1KFJlYWRsaW5lKWQocHJvKW8KLSh2aWRlcyllKGNvbW1hbmRzKWcoZm9yKWcoc2VhcmMpbyhoaW5nKWcodGhyb3VnaClnKHRoZSlnKGNvbW1hbmQpZwotKGhpc3RvcnkpZyhmb3IpZyhsaW5lcylpKGNvbi0pNzUgMjI3NSB5KHRhaW5pbmcpZShhKWYoc3ApcShlY2lcMDE0ZWQpaQotKHN0cmluZy4paihUaGVyZSljKGFyZSllKHQpbyh3KW8obylnKHNlYXJjKW8oaCloKG1vKXEoZGVzOikyMAotYiBGayhpbmNyZW1lbilvKHRhbCllIEZ1KGFuZCllIEZrKG5vbi1pbmNyZW1lbilvKHRhbClwCi1GdSguKTEzNyAyMzQxIHkoSW5jcmVtZW4pbyh0YWwpZShzZWFyYylvKGhlcylmKGIpcShlZ2luKWgoYilxKGVmb3JlKWYKLSh0aGUpZyh1c2VyKWcoaGFzKWcoXDAxNG5pc2hlZCloKHQpbyh5cGluZylmKHRoZSlnKHNlYXJjKW8oaClnKHN0cmluZy4pCi0xOSBiKEFzKTEzIGIoZWFjKW8oaCk3NSAyMzk2IHkoYylvKGhhcmFjdGVyKWsob2YpZyh0aGUpaChzZWFyYylvKGgpZwotKHN0cmluZylmKGlzKWgodClvKHlwKXEoZWQsKWgoUmVhZGxpbmUpZyhkaXNwbGEpbyh5cylmKHRoZSlnKG5leHQpZyhlbikKLW8odHJ5KWYoZnJvbSlnKHRoZSloKGhpc3RvcnkpNzUgMjQ1MSB5KG1hdGMpbyhoaW5nKTEyCi1iKHRoZSlnKHN0cmluZylnKHQpbyh5cClxKGVkKWcoc28pZyhmYXIuKTE4IGIoQW4pMTMgYihpbmNyZW1lbilvKHRhbClnCi0oc2VhcmMpbyhoKWYocmVxdWlyZXMpZyhvbmx5KWgoYXMpZihtYW4pbyh5KWYoYylvKGhhcmFjdGVycylnKGFzKTc1Ci0yNTA2IHkobmVlZGVkKTE2IGIodG8pZChcMDE0bmQpaih0aGUpZShkZXNpcmVkKWkoaGlzdG9yeSllKGVuKW8odHJ5KWwKLSguKTE5IGIoVClsKG8pYyhzZWFyYylvKGgpZihiYWMpbyhrdylvKGFyZClmKGluKWoodGhlKWUoaGlzdG9yeSlnKGZvcilnCi0oYSlnKHBhcnRpY3VsYXIpNzUgMjU2MCB5KHN0cmluZywpZyh0KW8oeXApcShlKWggRm8oQy1yKXAKLUZ1KC4payhUKW8oeXBpbmcpZCBGbyhDLXMpZSBGdShzZWFyYylvKGhlcyloKGZvcncpbyhhcmQpZSh0aHJvdWdoKWgKLSh0aGUpaChoaXN0b3J5KWwoLikyMCBiKFRoZSkxNSBiKGMpbyhoYXJhY3RlcnMpZihwcmVzZW4pbyh0KTc1Ci0yNjE1IHkoaW4pMjAgYih0aGUpZih2KW0oYWx1ZSloKG9mKWYodGhlKWcgRnQoaXNlYXJjaC10ZXJtaW5hdG9ycylkCi1GdSh2KW0oYXJpYWJsZSlrKGFyZSlmKHVzZWQpaCh0byllKHRlcm1pbmF0ZSloKGFuKWcoaW5jcmVtZW4pbyh0YWwpNzUKLTI2NzAgeShzZWFyYylvKGguKTMxIGIoSWYpMTkgYih0aGF0KWYodiltKGFyaWFibGUpaShoYXMpZihub3QpZihiKXEKLShlZW4paShhc3NpZ25lZClnKGEpZSh2KW0oYWx1ZSwpaih0aGUpMTI4OSAyNjY4IHkgRm4oaClwCi0xMzAxIDI2NDIgNzAgMiB2IDEzMDEgMjY3MCBhIEZtKEVTQylwIDEzMDEgMjY3OCBWIDEzNjgKLTI2NjggYSBGbihpKTE0MDIgMjY3MCB5IEZ1KGFuZCllIEZvKEMtSilmIEZ1KGMpbyhoYXJhY3RlcnMpZyh3aWxsKXAKLWVvcAotJSVQYWdlOiA0IDYKLTQgNSBib3AgNzUgLTU4IGEgRnUoNCkxMzIyIGIoR05VKTE1IGIoUmVhZGxpbmUpaChMaWJyYXJ5KTc1Ci0xNDkgeSh0ZXJtaW5hdGUpMjEgYihhbilnKGluY3JlbWVuKW8odGFsKWkoc2VhcmMpbyhoLikzNwotYiBGbyhDLWcpMjEgYiBGdSh3aWxsKWkoYWIpcShvcnQpZShhbilnKGluY3JlbWVuKW8odGFsKWgoc2VhcmMpbyhoKWYKLShhbmQpZyhyZXN0b3JlKWcodGhlKTc1IDIwNCB5KG9yaWdpbmFsKTE2IGIobGluZS4pMjEKLWIoV2hlbikxNSBiKHRoZSlmKHNlYXJjKW8oaClnKGlzKWgodGVybWluYXRlZCwpZyh0aGUpZihoaXN0b3J5KWgoZW4pbwotKHRyeSlmKGNvbilvKHRhaW5pbmcpaCh0aGUpZyhzZWFyYylvKGgpZihzdHJpbmcpNzUgMjU5Ci15KGIpcShlY29tZXMpaSh0aGUpZihjdXJyZW4pbyh0KWcobGluZS4pMTM3IDMyNSB5KFQpbChvKWcoXDAxNG5kKWkKLShvdGhlcillKG1hdGMpbyhoaW5nKWcoZW4pbyh0cmllcyloKGluKWgodGhlKWUoaGlzdG9yeSloKGxpc3QsKWcodClvCi0oeXApcShlKWYgRm8oQy1yKWcgRnUob3IpZyBGbyhDLXMpZyBGdShhcyloKGFwcHJvcHJpYXRlLilrKFRoaXMpNzUKLTM4MCB5KHdpbGwpMTUgYihzZWFyYylvKGgpZShiYWMpbyhrdylvKGFyZClmKG9yKWcoZm9ydylvKGFyZClnKGluKWkKLSh0aGUpZihoaXN0b3J5KWcoZm9yKWcodGhlKWcobmV4dClnKGVuKW8odHJ5KWcobWF0YylvKGhpbmcpZyh0aGUpZwotKHNlYXJjKW8oaClnKHN0cmluZyk3NSA0MzQgeSh0KW8oeXApcShlZCkxOSBiKHNvKWcoZmFyLikzMAotYihBbilvKHkpMTkgYihvdGhlcilmKGspbyhleSloKHNlcXVlbmNlKWgoYilxKG91bmQpZyh0byllKGEpaChSZWFkbGluZSkKLWgoY29tbWFuZCllKHdpbGwpaih0ZXJtaW5hdGUpZSh0aGUpNzUgNDg5IHkoc2VhcmMpbyhoKTEwCi1iKGFuZCloKGV4ZWN1dGUpZyh0aGF0KWYoY29tbWFuZC4pMTggYihGKWwob3IpMTAgYihpbnN0YW5jZSwpaShhKTEwNjMKLTQ4NyB5IEZuKGgpcCAxMDc2IDQ2MSA3NiAyIHYgMTA3NiA0ODkgYSBGbShSRVQpcCAxMDc2Ci00OTcgViAxMTQ5IDQ4NyBhIEZuKGkpMTE3NCA0ODkgeSBGdSh3aWxsKWcodGVybWluYXRlKWYodGhlKWcoc2VhcmMpbyhoKQotZihhbmQpaChhY2NlcHQpNzUgNTQ0IHkodGhlKWsobGluZSwpaCh0aGVyZWIpbyh5KWYoZXhlY3V0aW5nKWcodGhlKWcKLShjb21tYW5kKWcoZnJvbSlmKHRoZSlnKGhpc3RvcnkpaChsaXN0LikyMCBiKEEpMTUgYihtbylvKHYpbyhlbWVuKW8odClmCi0oY29tbWFuZClnKHdpbGwpNzUgNTk5IHkodGVybWluYXRlKWgodGhlKWcoc2VhcmMpbyhoLClnKG1haylvKGUpZyh0aGUpZwotKGxhc3QpZyhsaW5lKWkoZm91bmQpZih0aGUpZihjdXJyZW4pbyh0KWcobGluZSwpaChhbmQpZyhiKXEoZWdpbilnCi0oZWRpdGluZy4pMTM3IDY2NSB5KFJlYWRsaW5lKWoocmVtZW0pbyhiKXEoZXJzKWUodGhlKWgobGFzdClmKGluY3JlbWVuKQotbyh0YWwpaShzZWFyYylvKGgpZShzdHJpbmcuKTI3IGIoSWYpMTcgYih0KW8odylvKG8pZgotRm8oQy1yKXAgRnUocyloKGFyZSlnKHQpbyh5cClxKGVkKWgod2l0aG91dCk3NSA3MTkgeShhbilvKHkpZyhpbilvCi0odGVydilvKGVuaW5nKWgoYylvKGhhcmFjdGVycylmKGRlXDAxNG5pbmcpaChhKWYobmV3KWgoc2VhcmMpbyhoKWYKLShzdHJpbmcsKWcoYW4pbyh5KWcocmVtZW0pbyhiKXEoZXJlZCloKHNlYXJjKW8oaClmKHN0cmluZylnKGlzKTc1Ci03NzQgeSh1c2VkLikxMzcgODQwIHkoTm9uLWluY3JlbWVuKW8odGFsKTI1IGIoc2VhcmMpbyhoZXMpZShyZWFkKWgodGhlKQotZihlbilvKHRpcmUpaChzZWFyYylvKGgpZihzdHJpbmcpZyhiKXEoZWZvcmUpaChzdGFydGluZylmKHRvKWYoc2VhcmMpbwotKGgpaShmb3IpNzUgODk1IHkobWF0YylvKGhpbmcpZChoaXN0b3J5KWgobGluZXMuKTM5IGIoVGhlKTIyCi1iKHNlYXJjKW8oaClmKHN0cmluZylnKG1hKW8oeSlnKGIpcShlKWgodClvKHlwKXEoZWQpZihiKW8oeSloKHRoZSlmCi0odXNlciloKG9yKWUoYilxKGUpaShwYXJ0KWYob2YpZyh0aGUpNzUgOTUwIHkoY29uKW8odGVuKW8odHMpMTUKLWIob2YpZih0aGUpaShjdXJyZW4pbyh0KWYobGluZS4pNzUgMTA3NCB5IEZzKDEuMykzMyBiKFJlYWRsaW5lKTIzCi1iKEluaXQpaChGaWxlKTEzNyAxMTY5IHkgRnUoQWx0aG91Z2gpZih0aGUpZyhSZWFkbGluZSloKGxpYnJhcnkpZgotKGNvbWVzKWcod2l0aClnKGEpZihzZXQpZyhvZilnKEVtYWNzLWxpaylvKGUpaShrKW8oZXliaW5kaW5ncylnCi0oaW5zdGFsbGVkKTc1IDEyMjQgeShiKW8oeSlkKGRlZmF1bHQsKWgoaXQpZihpcyloKHApcShvc3NpYmxlKWcodG8pZQotKHVzZSlpKGEpZShkaVwwMTNlcmVuKW8odCloKHNldClnKG9mKWYoaylvKGV5YmluZGluZ3MuKTM5Ci1iKEFuKW8oeSkyMCBiKHVzZXIpaChjYW4pZyhjdXN0b21pemUpNzUgMTI3OCB5KHByb2dyYW1zKTE1Ci1iKHRoYXQpaCh1c2UpZyhSZWFkbGluZSlpKGIpbyh5KWUocHV0dGluZylnKGNvbW1hbmRzKWcoaW4paShhbillCi1GayhpbnB1dHJjKWsgRnUoXDAxNGxlLClkKGNvbilvKHYpbyhlbilvKHRpb25hbGx5KWcoaW4pZyhoaXMpNzUKLTEzMzMgeShob21lKWcoZGlyZWN0b3J5KWwoLikyNCBiKFRoZSkxNyBiKG5hbWUpZyhvZilmKHRoaXMpaChcMDE0bGUpZwotKGlzKWcodGFrKW8oZW4pZyhmcm9tKWUodGhlKWkodiltKGFsdWUpaChvZillKHRoZSloKGVuKW8odmlyb25tZW4pbyh0KWcKLSh2KW0oYXJpYWJsZSk3NSAxMzg4IHkgRnQoSU5QVVRSQylwIEZ1KC4paShJZiljKHRoYXQpZyh2KW0oYXJpYWJsZSloCi0oaXMpZyh1bnNldCwpZih0aGUpZyhkZWZhdWx0KWgoaXMpZyhgKXAgRnQofi8uaW5wdXRyYylwCi1GdSgnLikxMzcgMTQ1NCB5KFdoZW4pZihhKWcocHJvZ3JhbSlmKHdoaWMpbyhoKWgodXNlcylnKHRoZSlnKFJlYWRsaW5lKQotaChsaWJyYXJ5KWcoc3RhcnRzKWQodXAsKWkodGhlKWcoaW5pdCloKFwwMTRsZSlnKGlzKWYocmVhZCwpZyhhbmQpZwotKHRoZSk3NSAxNTA5IHkoaylvKGV5KWcoYmluZGluZ3MpaShhcmUpZShzZXQuKTEzNyAxNTc0Ci15KEluKWYoYWRkaXRpb24sKWgodGhlKWUgRnQoQy14KWkoQy1yKWUgRnUoY29tbWFuZClnKHJlLXJlYWRzKWgodGhpcylnCi0oaW5pdClnKFwwMTRsZSwpaCh0aClvKHVzKWUoaW5jb3JwKXEob3JhdGluZyloKGFuKW8oeSlmKGMpbyhoYW5nZXMpNzUKLTE2MjkgeSh0aGF0KWgoeSlvKG91KWgobWlnaClvKHQpZyhoYSlvKHYpbyhlKWcobWFkZSlnKHRvKWcoaXQuKTc1Ci0xNzM3IHkgRmooMS4zLjEpMzAgYihSZWFkbGluZSkyMCBiKEluaXQpZyhGaWxlKWgoU3luKW4odGF4KTEzNwotMTgzMiB5IEZ1KFRoZXJlKWMoYXJlKWcob25seSlnKGEpZyhmZXcpZihiYXNpYylpKGNvbnN0cnVjdHMpZShhbGxvKW8odykKLW8oZWQpaShpbilmKHRoZSlnKFJlYWRsaW5lKWgoaW5pdClnKFwwMTRsZS4pMjYgYihCbGFuaykxOAotYihsaW5lcylnKGFyZSk3NSAxODg2IHkoaWdub3JlZC4pMzYgYihMaW5lcykyMiBiKGIpcShlZ2lubmluZyloKHdpdGgpZAotKGEpaChgKXAgRnQoIylwIEZ1KCcpZShhcmUpaChjb21tZW4pbyh0cy4pMzUgYihMaW5lcykyMgotYihiKXEoZWdpbm5pbmcpaCh3aXRoKWUoYSlmKGApcCBGdCgkKXAgRnUoJylmKGluZGljYXRlKTc1Ci0xOTQxIHkoY29uZGl0aW9uYWwpYyhjb25zdHJ1Y3RzKWYoXChzZWUpZyhTZWN0aW9uKWcoMS4zLjIpZgotKFtDb25kaXRpb25hbCloKEluaXQpaChDb25zdHJ1Y3RzXSwpZShwYWdlKWgoOVwpLilrKE90aGVyKWMobGluZXMpNzUKLTE5OTYgeShkZW5vdGUpaCh2KW0oYXJpYWJsZSlpKHNldHRpbmdzKWUoYW5kKWgoaylvKGV5KWYoYmluZGluZ3MuKTc1Ci0yMDczIHkoVilsKGFyaWFibGUpaChTZXR0aW5ncykzMTUgMjEyOCB5KFkpbChvdSlrKGNhbiloKG1vKXEoZGlmeSlnCi0odGhlKWYocnVuLXRpbWUpaChiKXEoZWhhKW8odmlvcilnKG9mKWUoUmVhZGxpbmUpaihiKW8oeSllKGFsdGVyaW5nKWgKLSh0aGUpZih2KW0oYWx1ZXMpaChvZikzMTUgMjE4MiB5KHYpbShhcmlhYmxlcylkKGluKWcoUmVhZGxpbmUpZyh1c2luZylmCi0odGhlKWcgRnQoc2V0KWcgRnUoY29tbWFuZClmKHdpdGhpbilpKHRoZSlmKGluaXQpaChcMDE0bGUuKTI2Ci1iKFRoZSkxNyBiKHN5bilvKHRheCkzMTUgMjIzNyB5KGlzKWYoc2ltcGxlOik0MzUgMjMwMAoteSBGdChzZXQpMjMgYiBGayh2KW0oYXJpYWJsZSkyOCBiKHYpbShhbHVlKTMxNSAyMzY2IHkKLUZ1KEhlcmUsKTE0IGIoZm9yKWYoZXhhbXBsZSwpaChpcylnKGhvKW8odylmKHRvKWcoYylvKGhhbmdlKWgoZnJvbSlmCi0odGhlKWgoZGVmYXVsdClnKEVtYWNzLWxpaylvKGUpaChrKW8oZXkpZShiaW5kaW5nKWoodG8pMzE1Ci0yNDIxIHkodXNlKWcgRnQodmkpZSBGdShsaW5lKWooZWRpdGluZylnKGNvbW1hbmRzOik0MzUKLTI0ODQgeSBGdChzZXQpMjMgYihlZGl0aW5nLW1vZGUpZyh2aSkzMTUgMjU0OSB5IEZ1KFYpbChhcmlhYmxlKWMobmFtZXMpCi1lKGFuZCloKHYpbShhbHVlcywpaCh3aGVyZSllKGFwcHJvcHJpYXRlLCloKGFyZSlmKHJlY29nbml6ZWQpaSh3aXRob3V0KQotZShyZWdhcmQpMzE1IDI2MDQgeSh0byllKGNhc2UuKTMxNSAyNjcwIHkoQSlnKGdyZWF0KWcoZGVhbClnKG9mKWcKLShydW4tdGltZSloKGIpcShlaGEpbyh2aW9yKWcoaXMpZyhjKW8oaGFuZ2VhYmxlKWcod2l0aClmKHRoZSloKGZvbGxvKW8KLSh3aW5nKWYodiltKGFyaWFibGVzLilwIGVvcAotJSVQYWdlOiA1IDcKLTUgNiBib3AgNzUgLTU4IGEgRnUoQ2hhcHRlcikxNSBiKDE6KWsoQ29tbWFuZCljKExpbmUpaShFZGl0aW5nKTEwNzcKLWIoNSkzMTUgMTQ5IHkgRnQoYmVsbC1zdHlsZSk1NTUgMjA0IHkgRnUoQ29uKW8odHJvbHMpMjEKLWIod2hhdCloKGhhcHApcShlbnMpaCh3aGVuKWYoUmVhZGxpbmUpaCh3KW8oYW4pbyh0cyllKHRvKWcocmluZylpKHRoZSlmCi0odGVybWktKTU1NSAyNTkgeShuYWwpZChiKXEoZWxsLikzMiBiKElmKTE5IGIoc2V0KWYodG8pZyhgKXAKLUZ0KG5vbmUpcCBGdSgnLClnKFJlYWRsaW5lKWkobmV2KW8oZXIpZihyaW5ncylnKHRoZSlmKGIpcShlbGwuKTMyCi1iKElmKTE5IGIoc2V0KWcodG8pNTU1IDMxNCB5KGApcCBGdCh2aXNpYmxlKXAgRnUoJywpYyhSZWFkbGluZSlpKHVzZXMpZwotKGEpZih2aXNpYmxlKWooYilxKGVsbClnKGlmKWUob25lKWYoaXMpaChhKW8odiltKGFpbGFibGUuKTI2Ci1iKElmKTE2IGIoc2V0KWgodG8pNTU1IDM2OSB5KGApcCBGdChhdWRpYmxlKXAgRnUoJylnKFwodGhlKWgKLShkZWZhdWx0XCksKWkoUmVhZGxpbmUpZyhhdHRlbXB0cyllKHRvKWcocmluZyloKHRoZSlnKHRlcm1pbmFsJ3MpNTU1Ci00MjMgeShiKXEoZWxsLikzMTUgNTA0IHkgRnQoY29tbWVudC1iZWdpbik1NTUgNTU5IHkgRnUoVGhlKWMoc3RyaW5nKWYKLSh0bylnKGluc2VydClpKGF0KWQodGhlKWkoYilxKGVnaW5uaW5nKWkob2YpZCh0aGUpaChsaW5lKWgod2hlbilmKHRoZSlnCi1GdChpbnNlcnQtKTU1NSA2MTQgeShjb21tZW50KWYgRnUoY29tbWFuZCloKGlzKWgoZXhlY3V0ZWQuKTIxCi1iKFRoZSkxNSBiKGRlZmF1bHQpaCh2KW0oYWx1ZSlnKGlzKWcgRnQoIiMiKXAgRnUoLikzMTUKLTY5NCB5IEZ0KGNvbXBsZXRpb24taWdub3JlLWNhc2UpNTU1IDc0OSB5IEZ1KElmKWUoc2V0KWYodG8pZyhgKXAKLUZ0KG9uKXAgRnUoJywpZyhSZWFkbGluZSlpKHApcShlcmZvcm1zKWUoXDAxNGxlbmFtZSlpKG1hdGMpbyhoaW5nKWYKLShhbmQpZyhjb21wbGV0aW9uKTU1NSA4MDQgeShpbilpKGEpZihjYXNlLWluc2Vuc2l0aXYpbyhlKWkoZmFzaGlvbi4pawotKFRoZSkxNSBiKGRlZmF1bHQpaCh2KW0oYWx1ZSlnKGlzKWcoYClwIEZ0KG9mZilwIEZ1KCcuKTMxNQotODg0IHkgRnQoY29tcGxldGlvbi1xdWVyeS1pdGVtcyk1NTUgOTM5IHkgRnUoVGhlKWQobilvKHVtKW8oYilxKGVyKWgKLShvZillKHApcShvc3NpYmxlKWooY29tcGxldGlvbnMpZyh0aGF0KWQoZGV0ZXJtaW5lcylpKHdoZW4pZyh0aGUpZgotKHVzZXIpNTU1IDk5NCB5KGlzKTIxIGIoYXNrKW8oZWQpZyh3aGV0aGVyKWcoaGUpaCh3KW8oYW4pbyh0cylkKHRvKWkKLShzZWUpZyh0aGUpZyhsaXN0KWgob2YpZShwKXEob3NzaWJpbGl0aWUpcShzLik0MCBiKElmKTIxCi1iKHRoZSk1NTUgMTA0OSB5KG4pbyh1bSlvKGIpcShlcikxNCBiKG9mKWYocClxKG9zc2libGUpaShjb21wbGV0aW9ucylmCi0oaXMpZyhncmVhdGVyKWYodGhhbilnKHRoaXMpaCh2KW0oYWx1ZSwpaChSZWFkbGluZSk1NTUKLTExMDQgeSh3aWxsKWcoYXNrKWUodGhlKWcodXNlciloKHdoZXRoZXIpZihvcilnKG5vdClnKGhlKWcod2lzaGVzKWgodG8pCi1mKHZpZXcpaCh0aGVtOylmKG90aGVyd2lzZSwpNTU1IDExNTggeSh0aGV5KWYoYXJlKWcoc2ltcGx5KWkobGlzdGVkLikyMAotYihUaGlzKTEzIGIodiltKGFyaWFibGUpZyhtKW8odXN0KWYoYilxKGUpaChzZXQpZih0bylmKGFuKWgoaW4pbyh0ZWdlcikKLWgodiltKGFsdWUpNTU1IDEyMTMgeShncmVhdGVyKWgodGhhbiloKG9yKWcoZXF1YWwpaCh0bylmKDAuKWsoVGhlKWQKLShkZWZhdWx0KWYobGltaXQpaShpcylmIEZ0KDEwMClwIEZ1KC4pMzE1IDEyOTQgeSBGdChjb252ZXJ0LW1ldGEpNTU1Ci0xMzQ4IHkgRnUoSWYpMTEgYihzZXQpZyh0bylnKGApcCBGdChvbilwIEZ1KCcsKWYoUmVhZGxpbmUpaSh3aWxsKWgoY29uKQotbyh2KW8oZXJ0KWQoYylvKGhhcmFjdGVycyloKHdpdGgpZyh0aGUpZyhlaWdoKW8odGgpaChiaXQpZihzZXQpNTU1Ci0xNDAzIHkodG8pZihhbiloIEZwKGFzY2kpcShpKWUgRnUoaylvKGV5KWkoc2VxdWVuY2UpZyhiKW8oeSlnCi0oc3RyaXBwaW5nKWgodGhlKWUoZWlnaClvKHRoKWgoYml0KWgoYW5kKWUocHJlXDAxNHhpbmcpaShhbik1NTUKLTE0NTYgeSBGbihoKXAgNTY3IDE0MzAgNzAgMiB2IDU2NyAxNDU4IGEgRm0oRVNDKXAgNTY3Ci0xNDY2IFYgNjM0IDE0NTYgYSBGbihpKTY2NiAxNDU4IHkgRnUoYylvKGhhcmFjdGVyLClrKGNvbilvKHYpbyhlcnRpbmcpaAotKHRoZW0pZyh0bylmKGEpaChtZXRhLXByZVwwMTR4ZWQpZyhrKW8oZXkpZyhzZXF1ZW5jZS4pNTU1Ci0xNTEzIHkoVGhlKWUoZGVmYXVsdCloKHYpbShhbHVlKWgoaXMpZShgKXAgRnQob24pcCBGdSgnLikzMTUKLTE1OTMgeSBGdChkaXNhYmxlLWNvbXBsZXRpb24pNTU1IDE2NDggeSBGdShJZilrKHNldClmKHRvKWYoYClwCi1GdChPbilwIEZ1KCcsKWgoUmVhZGxpbmUpaSh3aWxsKWcoaW5oaWJpdClnKHcpbyhvcmQpZShjb21wbGV0aW9uLikzMAotYihDb21wbGV0aW9uKTU1NSAxNzAzIHkoYylvKGhhcmFjdGVycykxMiBiKHdpbGwpaihiKXEoZSlmKGluc2VydGVkKWcKLShpbilvKHRvKWYodGhlKWcobGluZSloKGFzKWYoaWYpaCh0aGV5KWYoaGFkKWcoYilxKGVlbiloKG1hcHApcShlZCk1NTUKLTE3NTggeSh0byloIEZ0KHNlbGYtaW5zZXJ0KXAgRnUoLilqKFRoZSlkKGRlZmF1bHQpaChpcylnKGApcAotRnQob2ZmKXAgRnUoJy4pMzE1IDE4MzggeSBGdChlZGl0aW5nLW1vZGUpNTU1IDE4OTMgeQotRnUoVGhlKWYgRnQoZWRpdGluZy1tb2RlKWQgRnUodiltKGFyaWFibGUpayhjb24pbyh0cm9scyllKHdoaWMpbyhoKWgKLShkZWZhdWx0KWcoc2V0KWYob2YpZyhrKW8oZXkpZyhiaW5kLSk1NTUgMTk0OCB5KGluZ3MpZihpcylnKHVzZWQuKTIwCi1iKEJ5KTEyIGIoZGVmYXVsdCwpaShSZWFkbGluZSlmKHN0YXJ0cylmKHVwKWgoaW4pZyhFbWFjcylmKGVkaXRpbmcpaQotKG1vKXEoZGUsKTU1NSAyMDAzIHkod2hlcmUpaCh0aGUpZihrKW8oZXlzdHJvaylvKGVzKWcoYXJlKWcobW9zdClnCi0oc2ltaWxhcilpKHRvKWQoRW1hY3MuKTIwIGIoVGhpcykxNSBiKHYpbShhcmlhYmxlKWgoY2FuKTU1NQotMjA1OCB5KGIpcShlKWcoc2V0KWYodG8pZihlaXRoZXIpaShgKXAgRnQoZW1hY3MpcCBGdSgnKWUob3IpaChgKXAKLUZ0KHZpKXAgRnUoJy4pMzE1IDIxMzggeSBGdChlbmFibGUta2V5cGFkKTU1NSAyMTkzIHkKLUZ1KFdoZW4pZChzZXQpZih0byloKGApcCBGdChvbilwIEZ1KCcsKWUoUmVhZGxpbmUpaih3aWxsKWgodHJ5KWQodG8pZwotKGVuYWJsZSlpKHRoZSlmKGFwcGxpY2F0aW9uKWgoaylvKGV5cGFkKTU1NSAyMjQ4IHkod2hlbiloKGl0KWYoaXMpaAotKGNhbGxlZC4pMjEgYihTb21lKTEzIGIoc3lzdGVtcylnKG5lZWQpaCh0aGlzKWcodG8pZihlbmFibGUpaCh0aGUpZwotKGFycm8pbyh3KWUoaylvKGV5cy4pNTU1IDIzMDMgeShUaGUpaihkZWZhdWx0KWgoaXMpZyhgKXAKLUZ0KG9mZilwIEZ1KCcuKTMxNSAyMzgzIHkgRnQoZXhwYW5kLXRpbGRlKTU1NSAyNDM4IHkKLUZ1KElmKWUoc2V0KWcodG8pZihgKXAgRnQob24pcCBGdSgnLClmKHRpbGRlKWsoZXhwYW5zaW9uKWUoaXMpaChwKXEKLShlcmZvcm1lZClmKHdoZW4pZyhSZWFkbGluZSloKGF0dGVtcHRzKTU1NSAyNDkzIHkodylvKG9yZClnCi0oY29tcGxldGlvbi4pMjEgYihUaGUpMTUgYihkZWZhdWx0KWgoaXMpZihgKXAgRnQob2ZmKXAKLUZ1KCcuKTU1NSAyNTYwIHkoSWYpZyhzZXQpZyh0bylmKGApcCBGdChvbilwIEZ1KCcsKWcodGhlKWcoaGlzdG9yeSloCi0oY28pcShkZSloKGF0dGVtcHRzKWUodG8pZyhwbGFjZSlpKHApcShvaW4pbyh0KWYoYXQpZih0aGUpaChzYW1lKTU1NQotMjYxNSB5KGxvKXEoY2F0aW9uKTIwIGIob24pZihlYWMpbyhoKWcoaGlzdG9yeSloKGxpbmUpZyhyZXRyaXYpbyhlZClnCi0od2l0aClmIEZ0KHByZXZpb3VzLWhpc3RvcnkpZSBGdShvcik1NTUgMjY3MCB5IEZ0KG5leHQtaGlzdG9yeSlwCi1GdSguKXAgZW9wCi0lJVBhZ2U6IDYgOAotNiA3IGJvcCA3NSAtNTggYSBGdSg2KTEzMjIgYihHTlUpMTUgYihSZWFkbGluZSloKExpYnJhcnkpMzE1Ci0xNDkgeSBGdChob3Jpem9udGFsLXNjcm9sbC1tb2RlKTU1NSAyMDQgeSBGdShUaGlzKWoodiltKGFyaWFibGUpZyhjYW4pZgotKGIpcShlKWcoc2V0KWcodG8pZihlaXRoZXIpaShgKXAgRnQob24pcCBGdSgnKWUob3IpZyhgKXAKLUZ0KG9mZilwIEZ1KCcuKTI3IGIoU2V0dGluZykxOSBiKGl0KWYodG8pZihgKXAgRnQob24pcAotRnUoJyk1NTUgMjU5IHkobWVhbnMpYyh0aGF0KWYodGhlKWkodGV4dCllKG9mKWgodGhlKWcobGluZXMpaShiKXEoZWluZykKLWYoZWRpdGVkKWcod2lsbCloKHNjcm9sbClmKGhvcml6b24pbyh0YWxseSk1NTUgMzE0IHkob24paShhKWYoc2luZ2xlKWkKLShzY3JlZW4pZyhsaW5lKWcod2hlbilnKHRoZXkpZihhcmUpZihsb25nZXIpaCh0aGFuKWcodGhlKWcod2lkdGgpZyhvZilnCi0odGhlKTU1NSAzNjkgeShzY3JlZW4sKWUoaW5zdGVhZClmKG9mKWcod3JhcHBpbmcpZyhvbilvKHRvKWYoYSloKG5ldylnCi0oc2NyZWVuKWgobGluZS4pMjEgYihCeSkxMyBiKGRlZmF1bHQsKWgodGhpcyk1NTUgNDIzCi15KHYpbShhcmlhYmxlKWooaXMpZShzZXQpZyh0bylnKGApcCBGdChvZmYpcCBGdSgnLikzMTUKLTUwNiB5IEZ0KGlucHV0LW1ldGEpNTU1IDU2MCB5IEZ1KElmKWgoc2V0KWYodG8pZyhgKXAKLUZ0KG9uKXAgRnUoJywpZihSZWFkbGluZSlqKHdpbGwpaChlbmFibGUpZShlaWdoKW8odC1iaXQpaChpbnB1dClmKFwoaXQpCi1nKHdpbGwpaChub3QpZShjbGVhcik1NTUgNjE1IHkodGhlKTIwIGIoZWlnaClvKHRoKWcoYml0KWcoaW4paCh0aGUpZihjKQotbyhoYXJhY3RlcnMpZihpdCloKHJlYWRzXCksKWcocmVnYXJkbGVzcylnKG9mKWcod2hhdClmKHRoZSk1NTUKLTY3MCB5KHRlcm1pbmFsKWkoY2xhaW1zKWcoaXQpZihjYW4pZyhzdXBwKXEob3J0LikzNCBiKFRoZSkyMAotYihkZWZhdWx0KWgodiltKGFsdWUpZyhpcylnKGApcCBGdChvZmYpcCBGdSgnLikzMyBiKFRoZSk1NTUKLTcyNSB5KG5hbWUpMTUgYiBGdChtZXRhLWZsYWcpZiBGdShpcylpKGEpZihzeW5vbilvKHltKWcoZm9yKWYodGhpcylpKHYpCi1tKGFyaWFibGUuKTMxNSA4MDcgeSBGdChpc2VhcmNoLXRlcm1pbmF0b3JzKTU1NSA4NjIgeQotRnUoVGhlKTI2IGIoc3RyaW5nKWcob2YpZihjKW8oaGFyYWN0ZXJzKWcodGhhdClnKHNob3VsZClpKHRlcm1pbmF0ZSlmCi0oYW4pZyhpbmNyZW1lbilvKHRhbCk1NTUgOTE3IHkoc2VhcmMpbyhoKTEyIGIod2l0aG91dCloKHN1YnNlcXVlbilvCi0odGx5KWcoZXhlY3V0aW5nKWgodGhlKWUoYylvKGhhcmFjdGVyKWcoYXMpZyhhKWcoY29tbWFuZCk1NTUKLTk3MSB5KFwoc2VlKTIyIGIoU2VjdGlvbiloKDEuMi41KWUoW1NlYXJjKW8oaGluZ10sKWoocGFnZSllKDNcKS4pNDAKLWIoSWYpMjMgYih0aGlzKWcodiltKGFyaWFibGUpZyhoYXMpZihub3QpNTU1IDEwMjYgeShiKXEoZWVuKTE3Ci1iKGdpdilvKGVuKWYoYSlnKHYpbShhbHVlLClnKHRoZSlnKGMpbyhoYXJhY3RlcnMpMTI0NwotMTAyNCB5IEZuKGgpcCAxMjU5IDk5OCA3MCAyIHYgMTI1OSAxMDI2IGEgRm0oRVNDKXAgMTI1OQotMTAzNCBWIDEzMjYgMTAyNCBhIEZuKGkpMTM1NyAxMDI2IHkgRnUoYW5kKWcgRm8oQy1KKWYKLUZ1KHdpbGwpaSh0ZXJtaW5hdGUpZihhbik1NTUgMTA4MSB5KGluY3JlbWVuKW8odGFsKWcoc2VhcmMpbyhoLikzMTUKLTExNjMgeSBGdChrZXltYXApOTYgYiBGdShTZXRzKTE5IGIoUmVhZGxpbmUncylpKGlkZWEpZihvZilmKHRoZSlnCi0oY3VycmVuKW8odCloKGspbyhleW1hcClmKGZvcilmKGspbyhleSlpKGJpbmRpbmcpaChjb20tKTU1NQotMTIxOCB5KG1hbmRzLik0MSBiKEFjY2VwdGFibGUpMjMgYiBGdChrZXltYXApZiBGdShuYW1lcylnKGFyZSlmCi1GdChlbWFjcylwIEZ1KCwpaSBGdChlbWFjcy1zdGFuZGFyZClwIEZ1KCwpNTU1IDEyNzMgeQotRnQoZW1hY3MtbWV0YSlwIEZ1KCwpNDkgYiBGdChlbWFjcy1jdGx4KXAgRnUoLClnIEZ0KHZpKXAKLUZ1KCwpaCBGdCh2aS1tb3ZlKXAgRnUoLClmIEZ0KHZpLWNvbW1hbmQpcCBGdSgsKWcoYW5kKTU1NQotMTMyOCB5IEZ0KHZpLWluc2VydClwIEZ1KC4pMzEgYiBGdCh2aSkyMCBiIEZ1KGlzKWcoZXF1aXYpbShhbGVuKW8odCloCi0odG8pZSBGdCh2aS1jb21tYW5kKXAgRnUoOylnIEZ0KGVtYWNzKWcgRnUoaXMpaChlcXVpdiltKGFsZW4pbyh0KTU1NQotMTM4MiB5KHRvKTE1IGIgRnQoZW1hY3Mtc3RhbmRhcmQpcCBGdSguKTIwIGIoVGhlKWQoZGVmYXVsdClmKHYpbShhbHVlKWgKLShpcylnIEZ0KGVtYWNzKXAgRnUoLilrKFRoZSkxNiBiKHYpbShhbHVlKWgob2YpZih0aGUpNTU1Ci0xNDM3IHkgRnQoZWRpdGluZy1tb2RlKWUgRnUodiltKGFyaWFibGUpaShhbHNvKWYoYVwwMTNlY3RzKWcodGhlKWcKLShkZWZhdWx0KWgoaylvKGV5bWFwLikzMTUgMTUxOSB5IEZ0KG1hcmstZGlyZWN0b3JpZXMpNTU1Ci0xNTc0IHkgRnUoSWYpaihzZXQpZyh0bylnKGApcCBGdChvbilwIEZ1KCcsKWYoY29tcGxldGVkKWkoZGlyZWN0b3J5KWcKLShuYW1lcylmKGhhKW8odilvKGUpZihhKWgoc2xhc2gpaChhcHApcShlbmRlZC4pNTU1IDE2MjkKLXkoVGhlKTE1IGIoZGVmYXVsdCloKGlzKWcoYClwIEZ0KG9uKXAgRnUoJy4pMzE1IDE3MTEKLXkgRnQobWFyay1tb2RpZmllZC1saW5lcyk1NTUgMTc2NiB5IEZ1KFRoaXMpaih2KW0oYXJpYWJsZSwpZyh3aGVuKWcKLShzZXQpZSh0byloKGApcCBGdChvbilwIEZ1KCcsKWYoY2F1c2VzKWgoUmVhZGxpbmUpaCh0byllKGRpc3BsYSlvKHkpaQotKGFuKWYoYXMtKTU1NSAxODIxIHkodGVyaXNrKWYoXChgKXAgRnQoKilwIEZ1KCdcKSllKGF0KWkodGhlKWYoc3RhcnQpZwotKG9mKWgoaGlzdG9yeSlmKGxpbmVzKWood2hpYylvKGgpZShoYSlvKHYpbyhlKWcoYilxKGVlbiloKG1vKXEKLShkaVwwMTRlZC4pNTU1IDE4NzUgeShUaGlzKWUodiltKGFyaWFibGUpZyhpcylnKGApcCBGdChvZmYpcAotRnUoJyllKGIpbyh5KWgoZGVmYXVsdC4pMzE1IDE5NTggeSBGdChtYXJrLXN5bWxpbmtlZC1kaXJlY3Rvcmllcyk1NTUKLTIwMTIgeSBGdShJZikyMyBiKHNldClmKHRvKWYoYClwIEZ0KG9uKXAgRnUoJywpaShjb21wbGV0ZWQpZyhuYW1lcylnCi0od2hpYylvKGgpZyhhcmUpZihzeW0pbyhiKXEob2xpYylpKGxpbmtzKWYodG8pZihkaS0pNTU1Ci0yMDY3IHkocmVjdG9yaWVzKWgoaGEpbyh2KW8oZSlnKGEpZyhzbGFzaClnKGFwcClxKGVuZGVkKWkoXChzdWIpcyhqZWN0KQotZSh0bylmKHRoZSlpKHYpbShhbHVlKWcob2YpZiBGdChtYXJrLSk1NTUgMjEyMiB5KGRpcmVjdG9yaWVzKXAKLUZ1KFwpLikxOCBiKFRoZSlkKGRlZmF1bHQpaChpcylnKGApcCBGdChvZmYpcCBGdSgnLikzMTUKLTIyMDQgeSBGdChtYXRjaC1oaWRkZW4tZmlsZXMpNTU1IDIyNTkgeSBGdShUaGlzKWModiltKGFyaWFibGUsKWgod2hlbillCi0oc2V0KWcodG8pZyhgKXAgRnQob24pcCBGdSgnLClmKGNhdXNlcyloKFJlYWRsaW5lKWkodG8pZChtYXRjKW8oaCloCi0oXDAxNGxlcyloKHdob3NlKTU1NSAyMzE0IHkobmFtZXMpMjIgYihiKXEoZWdpbiloKHdpdGgpZyhhKWUoYClwCi1GdCguKXAgRnUoJyloKFwoaGlkZGVuKWgoXDAxNGxlc1wpKWcod2hlbilmKHApcShlcmZvcm1pbmcpaChcMDE0bGVuYW1lKQotNTU1IDIzNjkgeShjb21wbGV0aW9uLClnKHVubGVzcylmKHRoZSlmKGxlYWRpbmcpaChgKXAKLUZ0KC4pcCBGdSgnKWUoaXMpaChzdXBwbGllZClpKGIpbyh5KWUodGhlKWYodXNlciloKGluKWgodGhlKTU1NQotMjQyMyB5KFwwMTRsZW5hbWUpMTYgYih0bylmKGIpcShlKWgoY29tcGxldGVkLikyMSBiKFRoaXMpMTUKLWIodiltKGFyaWFibGUpaShpcylmKGApcCBGdChvbilwIEZ1KCcpZShiKW8oeSloKGRlZmF1bHQuKTMxNQotMjUwNiB5IEZ0KG91dHB1dC1tZXRhKTU1NSAyNTYwIHkgRnUoSWYpaihzZXQpZih0bylnKGApcAotRnQob24pcCBGdSgnLClnKFJlYWRsaW5lKWkod2lsbCloKGRpc3BsYSlvKHkpZihjKW8oaGFyYWN0ZXJzKWQod2l0aClqCi0odGhlKWUoZWlnaClvKHRoKWgoYml0KTU1NSAyNjE1IHkoc2V0KWcoZGlyZWN0bHkpaShyYXRoZXIpZCh0aGFuKWgoYXMpZwotKGEpZyhtZXRhLXByZVwwMTR4ZWQpaChlc2NhcClxKGUpZyhzZXF1ZW5jZS4pMzAgYihUaGUpNTU1Ci0yNjcwIHkoZGVmYXVsdCkxNiBiKGlzKWYoYClwIEZ0KG9mZilwIEZ1KCcuKXAgZW9wCi0lJVBhZ2U6IDcgOQotNyA4IGJvcCA3NSAtNTggYSBGdShDaGFwdGVyKTE1IGIoMTopayhDb21tYW5kKWMoTGluZSlpKEVkaXRpbmcpMTA3NwotYig3KTMxNSAxNDkgeSBGdChwYWdlLWNvbXBsZXRpb25zKTU1NSAyMDQgeSBGdShJZikxNwotYihzZXQpZyh0bylmKGApcCBGdChvbilwIEZ1KCcsKWcoUmVhZGxpbmUpaSh1c2VzKWcoYW4pZShpbilvKHRlcm5hbClpCi1GdChtb3JlKXAgRnUoLWxpaylvKGUpZyhwYWdlcilmKHRvKWYoZGlzcGxhKW8oeSk1NTUgMjU5Ci15KGEpZyhzY3JlZW5mdWwpaChvZilmKHApcShvc3NpYmxlKWkoY29tcGxldGlvbnMpZihhdClmKGEpZyh0aW1lLikyMwotYihUaGlzKTE3IGIodiltKGFyaWFibGUpZyhpcylnKGApcCBGdChvbilwIEZ1KCcpNTU1IDMxNAoteShiKW8oeSllKGRlZmF1bHQuKTMxNSAzOTUgeSBGdChwcmludC1jb21wbGV0aW9ucy1ob3Jpem9udClvKGFsbHkpNTU1Ci00NTAgeSBGdShJZilkKHNldClnKHRvKWYoYClwIEZ0KG9uKXAgRnUoJywpaChSZWFkbGluZSloKHdpbGwpZyhkaXNwbGEpbwotKHkpaChjb21wbGV0aW9ucylmKHdpdGgpZihtYXRjKW8oaGVzKWYoc29ydGVkKTU1NSA1MDUKLXkoaG9yaXpvbilvKHRhbGx5KTIzIGIoaW4pZihhbHBoYWIpcShldGljYWwpaShvcmRlciwpZihyYXRoZXIpZSh0aGFuKWcKLShkbylvKHduKWgodGhlKWcoc2NyZWVuLik1NTUgNTYwIHkoVGhlKTE1IGIoZGVmYXVsdCloKGlzKWcoYClwCi1GdChvZmYpcCBGdSgnLikzMTUgNjQxIHkgRnQoc2hvdy1hbGwtaWYtYW1iaWd1b3VzKTU1NQotNjk2IHkgRnUoVGhpcylnKGFsdGVycyllKHRoZSlpKGRlZmF1bHQpZihiKXEoZWhhKW8odmlvciloKG9mKWUodGhlKWgKLShjb21wbGV0aW9uKWgoZnVuY3Rpb25zLikyMSBiKElmKTE1IGIoc2V0KTU1NSA3NTEgeSh0byllKGApcAotRnQob24pcCBGdSgnLClnKHcpbyhvcmRzKWcod2hpYylvKGgpaChoYSlvKHYpbyhlKWcobW9yZSlmKHRoYW4pZyhvbmUpaAotKHApcShvc3NpYmxlKWkoY29tcGxldGlvbilmKGNhdXNlKTU1NSA4MDYgeSh0aGUpMjAgYihtYXRjKW8oaGVzKWYodG8pZgotKGIpcShlKWoobGlzdGVkKWYoaW1tZWRpYXRlbHkpaChpbnN0ZWFkKWYob2YpZihyaW5naW5nKWkodGhlKWUoYilxCi0oZWxsLik1NTUgODYxIHkoVGhlKWMoZGVmYXVsdCloKHYpbShhbHVlKWgoaXMpZShgKXAgRnQob2ZmKXAKLUZ1KCcuKTMxNSA5NDIgeSBGdCh2aXNpYmxlLXN0YXRzKTU1NSA5OTcgeSBGdShJZiloKHNldClnKHRvKWYoYClwCi1GdChvbilwIEZ1KCcsKWcoYSloKGMpbyhoYXJhY3RlcilmKGRlbm90aW5nKWgoYSlnKFwwMTRsZSdzKWgodClvKHlwKXEKLShlKWYoaXMpZyhhcHApcShlbmRlZClpKHRvKWQodGhlKTU1NSAxMDUyIHkoXDAxNGxlbmFtZSloKHdoZW4pZwotKGxpc3RpbmcpaChwKXEob3NzaWJsZSlnKGNvbXBsZXRpb25zLilqKFRoZSljKGRlZmF1bHQpZyhpcylmKGApcAotRnQob2ZmKXAgRnUoJy4pNzUgMTEzMyB5KEtleSloKEJpbmRpbmdzKTMxNSAxMTg4IHkoVGhlKTIxCi1iKHN5bilvKHRheClmKGZvciloKGNvbilvKHRyb2xsaW5nKWgoaylvKGV5KWYoYmluZGluZ3MpaChpbilnKHRoZSlmCi0oaW5pdCloKFwwMTRsZSlnKGlzKWcoc2ltcGxlLikzOSBiKEZpcnN0KTIwIGIoeSlvKG91KTMxNQotMTI0MyB5KG5lZWQpMTUgYih0byllKFwwMTRuZCloKHRoZSlnKG5hbWUpZyhvZilnKHRoZSlmKGNvbW1hbmQpaCh0aGF0KWYKLSh5KW8ob3UpaCh3KW8oYW4pbyh0KWYodG8pZyhjKW8oaGFuZ2UuKTE5IGIoVGhlKTE0IGIoZm9sbG8pbyh3aW5nKTMxNQotMTI5OCB5KHNlY3Rpb25zKWsoY29uKW8odGFpbiloKHRhYmxlcylmKG9mKWYodGhlKWgoY29tbWFuZClnKG5hbWUsKWcKLSh0aGUpZyhkZWZhdWx0KWgoaylvKGV5YmluZGluZywpaChpZillKGFuKW8oeSlsKCwpMzE1Ci0xMzUzIHkoYW5kKWQoYSlnKHNob3J0KWcoZGVzY3JpcHRpb24paShvZilkKHdoYXQpaCh0aGUpZyhjb21tYW5kKWcoZG8pcQotKGVzLikzMTUgMTQyMSB5KE9uY2Upayh5KW8ob3UpZihrbm8pbyh3KWYodGhlKWgobmFtZSlnKG9mKWcodGhlKWcKLShjb21tYW5kLClnKHNpbXBseSloKHBsYWNlKWcob24pZihhKWYobGluZSlqKGluKWYodGhlKWYoaW5pdCkzMTUKLTE0NzYgeShcMDE0bGUpZyh0aGUpZihuYW1lKWcob2YpZih0aGUpaChrKW8oZXkpZyh5KW8ob3UpZih3aXNoKWkodG8pZQotKGJpbmQpaSh0aGUpZihjb21tYW5kKWcodG8sKWYoYSlnKGNvbG9uLClpKGFuZClmKHRoZW4pMzE1Ci0xNTMwIHkodGhlKWYobmFtZSlnKG9mKWcodGhlKWcoY29tbWFuZC4pMjIgYihUaGUpMTYgYihuYW1lKWcob2YpZyh0aGUpZwotKGspbyhleSlmKGNhbilpKGIpcShlKWYoZXhwcmVzc2VkKWgoaW4pZyhkaVwwMTNlcmVuKW8odCkzMTUKLTE1ODUgeSh3KW8oYSlvKHlzLClkKGRlcClxKGVuZGluZylqKG9uKWUod2hhdClnKHkpbyhvdSlnKFwwMTRuZCloKG1vc3QpCi1lKGNvbWZvcnRhYmxlLikzMTUgMTY1MyB5KEluKTE5IGIoYWRkaXRpb24pZyh0byllKGNvbW1hbmQpaChuYW1lcywpZwotKHJlYWRsaW5lKWkoYWxsbylvKHdzKWUoaylvKGV5cylnKHRvKWYoYilxKGUpaShiKXEob3VuZClnKHRvKWUoYSloCi0oc3RyaW5nKTMxNSAxNzA4IHkodGhhdCljKGlzKWkoaW5zZXJ0ZWQpZyh3aGVuKWcodGhlKWYoaylvKGV5KWcoaXMpaAotKHByZXNzZWQpZyhcKGEpZSBGayhtYWNybylyIEZ1KFwpLikzMTUgMTc5MCB5IEZrKGspbyhleW5hbWUpcwotRnUoOikxOSBiIEZrKGZ1bmN0aW9uLW5hbWUpZyBGdShvciljIEZrKG1hY3JvKTU1NSAxODQ1Ci15KGspbyhleW5hbWUpaSBGdShpcyllKHRoZSlmKG5hbWUpaChvZilmKGEpZyhrKW8oZXkpZyhzcClxKGVsbGVkKWoob3V0KQotZChpbiloKEVuZ2xpc2guKTIxIGIoRilsKG9yKTEzIGIoZXhhbXBsZTopNjc1IDE5MTAgeQotRnQoQ29udHJvbC11OikyMiBiKHVuaXZlcnNhbC1hcmd1bWVudCk2NzUgMTk2MiB5KE1ldGEtUnVib3V0OilnCi0oYmFja3dhcmQta2lsbC13b3JkKTY3NSAyMDE0IHkoQ29udHJvbC1vOilnKCI+KWkob3V0cHV0Iik1NTUKLTIwODIgeSBGdShJbiljKHRoZSlmKGFiKXEobylvKHYpbyhlKWcoZXhhbXBsZSwpaSBGbyhDLXUpZQotRnUoaXMpaChiKXEob3VuZClnKHRvKWYodGhlKWcoZnVuY3Rpb24paCBGdCh1bml2ZXJzYWwtKTU1NQotMjEzNyB5KGFyZ3VtZW50KXAgRnUoLCllIEZvKE0tREVMKWggRnUoaXMpZyhiKXEob3VuZCloKHRvKWUodGhlKWgKLShmdW5jdGlvbiloIEZ0KGJhY2t3YXJkLWtpbGwtd29yZClwIEZ1KCwpNTU1IDIxOTEgeShhbmQpZwotRm8oQy1vKWYgRnUoaXMpaChiKXEob3VuZClnKHRvKWYocnVuKWgodGhlKWYobWFjcm8pZyhleHByZXNzZWQpaChvbilnCi0odGhlKWYocmlnaClvKHQpaChoYW5kKTU1NSAyMjQ2IHkoc2lkZSljKFwodGhhdCllKGlzLClpKHRvKWUoaW5zZXJ0KWkKLSh0aGUpZih0ZXh0KWcoYClwIEZ0KD4pZihvdXRwdXQpcCBGdSgnKWcoaW4pbyh0bylpKHRoZSlmKGxpbmVcKS4pNTU1Ci0yMzE0IHkoQSlrKG4pbyh1bSlvKGIpcShlcilmKG9mKWcoc3ltKW8oYilxKG9saWMpaShjKW8oaGFyYWN0ZXIpZQotKG5hbWVzKWcoYXJlKWcocmVjb2duaXplZClpKHdoaWxlKWcocHJvLSk1NTUgMjM2OSB5KGNlc3NpbmcpMTMKLWIodGhpcylmKGspbyhleSlnKGJpbmRpbmcpaChzeW4pbyh0YXg6KTE4IGIgRmsoREVMKXAKLUZ1KCwpMTEgYiBGayhFU0MpcCBGdSgsKWggRmsoRVNDQVBFKXAgRnUoLClmIEZrKExGRClwCi1GdSgsKWcgRmsoTkVXLSk1NTUgMjQyNCB5KExJTkUpcCBGdSgsKTE2IGIgRmsoUkVUKXAgRnUoLCllCi1GayhSRVRVUk4pcCBGdSgsKWYgRmsoUilvKFVCT1VUKXAgRnUoLClpIEZrKFNQKWwoQSlvKENFKXAKLUZ1KCwpZyBGayhTUEMpcCBGdSgsKWYoYW5kKWkgRmsoVClsKEFCKXAgRnUoLikzMTUgMjUwNgoteSBGdCgiKXAgRmsoaylvKGV5c2VxKXEgRnQoIilwIEZ1KDopayBGayhmdW5jdGlvbi1uYW1lKWUKLUZ1KG9yKWQgRmsobWFjcm8pNTU1IDI1NjAgeShrKW8oZXlzZXEpaSBGdShkaVwwMTNlcnMpZShmcm9tKWcKLUZrKGspbyhleW5hbWUpaiBGdShhYilxKG8pbyh2KW8oZSlkKGluKWkodGhhdClkKHN0cmluZ3MpaShkZW5vdGluZylnCi0oYW4pZihlbi0pNTU1IDI2MTUgeSh0aXJlKWkoaylvKGV5KWcoc2VxdWVuY2UpaChjYW4pZihiKXEoZSlnKHNwKXEKLShlY2lcMDE0ZWQsKWkoYilvKHkpZShwbGFjaW5nKWgodGhlKWYoaylvKGV5KWcoc2VxdWVuY2UpaChpbik1NTUKLTI2NzAgeShkb3VibGUpZShxdW90ZXMuKWooU29tZSljIEZwKGdudSlnIEZ1KEVtYWNzKWYoc3Qpbyh5bGUpaChrKW8oZXkpCi1nKGVzY2FwKXEoZXMpZyhjYW4pZyhiKXEoZSlnKHVzZWQsKWcoYXMpcCBlb3AKLSUlUGFnZTogOCAxMAotOCA5IGJvcCA3NSAtNTggYSBGdSg4KTEzMjIgYihHTlUpMTUgYihSZWFkbGluZSloKExpYnJhcnkpNTU1Ci0xNDkgeShpbilpKHRoZSlmKGZvbGxvKW8od2luZylnKGV4YW1wbGUsKWgoYnV0KWYodGhlKWcoc3ApcShlY2lhbClpKGMpbwotKGhhcmFjdGVyKWQobmFtZXMpaChhcmUpZihub3QpNTU1IDIwNCB5KHJlY29nbml6ZWQuKTY3NQotMjcwIHkgRnQoIlxcQy11IjopMjMgYih1bml2ZXJzYWwtYXJndW1lbnQpNjc1IDMyMiB5KCJcXEMteFxcQy1yIjopZgotKHJlLXJlYWQtaW5pdC1maWxlKTY3NSAzNzMgeSgiXFxlWzExfiI6KWgoIkZ1bmN0aW9uKWYoS2V5KWkoMSIpNTU1Ci00NDIgeSBGdShJbikzMyBiKHRoZSlmKGFiKXEobylvKHYpbyhlKWcoZXhhbXBsZSwpMzcgYgotRm8oQy11KTMyIGIgRnUoaXMpaChhZ2FpbilmKGIpcShvdW5kKWgodG8pZih0aGUpZyhmdW5jdGlvbik1NTUKLTQ5NyB5IEZ0KHVuaXZlcnNhbC1hcmd1bWVudCkxOSBiIEZ1KFwoanVzdClqKGFzKWYoaXQpaCh3KW8oYXMpZihpbilpCi0odGhlKWYoXDAxNHJzdClmKGV4YW1wbGVcKSwpaihgKXAgRm8oQy14KTU1NSA1NTEgeShDLXIpcAotRnUoJyljKGlzKWgoYilxKG91bmQpZyh0bylmKHRoZSloKGZ1bmN0aW9uKWcgRnQocmUtcmVhZC1pbml0LWZpbGUpcAotRnUoLClmKGFuZClnKGApMTczMSA1NDkgeSBGbihoKXAgMTc0MyA1MjMgNzAgMiB2IDE3NDMKLTU1MSBhIEZtKEVTQylwIDE3NDMgNTU5IFYgMTgxMCA1NDkgYSBGbihpKTE1IGIoaClwIDE4NTIKLTUyMyAxMCAyIHYgMTg1MiA1NTEgYSBGbShbKXAgMTg1MiA1NjAgViAxODYwIDU0OSBhIEZuKGkpNTU1Ci02MDQgeShoKXAgNTY3IDU3OCAxOCAyIHYgNTY3IDYwNiBhIEZtKDEpcCA1NjcgNjE0IFYgNTgzCi02MDQgYSBGbihpKWcoaClwIDYyNSA1NzggViA2MjUgNjA2IGEgRm0oMSlwIDYyNSA2MTQgVgotNjQwIDYwNCBhIEZuKGkpZyhoKXAgNjgzIDU3OCAyNCAyIHYgNjgzIDYwNiBhIEZ0KH4pcAotNjgzIDYxNCBWIDcwNCA2MDQgYSBGbihpKTcxOSA2MDYgeSBGdSgnKWcoaXMpaChiKXEob3VuZClnKHRvKWUoaW5zZXJ0KWkKLSh0aGUpZih0ZXh0KWcoYClwIEZ0KEZ1bmN0aW9uKWYoS2V5KWcoMSlwIEZ1KCcuKTMxNSA2ODgKLXkoVGhlKWgoZm9sbG8pbyh3aW5nKWggRnAoZ251KWUgRnUoRW1hY3MpaChzdClvKHlsZSlnKGVzY2FwKXEoZSloCi0oc2VxdWVuY2VzKWcoYXJlKWUoYSlvKHYpbShhaWxhYmxlKWood2hlbillKHNwKXEoZWNpZnlpbmcpMzE1Ci03NDMgeShrKW8oZXkpZyhzZXF1ZW5jZXM6KTMxNSA4MjUgeSBGbyhcXEMtKTE2OCBiIEZ1KGNvbilvKHRyb2wpMTUKLWIocHJlXDAxNHgpMzE1IDkwNyB5IEZvKFxcTS0pMTY4IGIgRnUobWV0YSkxNSBiKHByZVwwMTR4KTMxNQotOTg5IHkgRm8oXFxlKTE5MiBiIEZ1KGFuKTE1IGIoZXNjYXApcShlKWgoYylvKGhhcmFjdGVyKTMxNQotMTA3MSB5IEZvKFxcXFwpMTkyIGIgRnUoYmFjKW8oa3NsYXNoKTMxNSAxMTUyIHkgRm8oXFwpcAotRnQoIik1NTUgMTE1MCB5IEZuKGgpcCA1NjcgMTEyNCBWIDU2NyAxMTUyIGEgRnQoIilwIDU2NwotMTE2MCBWIDU4OSAxMTUwIGEgRm4oaSk2MDQgMTE1MiB5IEZ1KCwpMTUgYihhKWYoZG91YmxlKWoocXVvdGF0aW9uKWUKLShtYXJrKTMxNSAxMjM0IHkgRm8oXFwnKTU1NSAxMjMyIHkgRm4oaClwIDU2NyAxMjA2IDEwCi0yIHYgNTY3IDEyMzQgYSBGbSgnKXAgNTY3IDEyNDIgViA1NzUgMTIzMiBhIEZuKGkpNTkwCi0xMjM0IHkgRnUoLClnKGEpZihzaW5nbGUpaihxdW90ZSllKG9yKWcoYXApcShvc3Ryb3BoZSkzMTUKLTEzMTYgeShJbilmKGFkZGl0aW9uKWgodG8pZih0aGUpZiBGcChnbnUpaCBGdShFbWFjcylnKHN0KW8oeWxlKWYoZXNjYXApCi1xKGUpaShzZXF1ZW5jZXMsKWcoYSllKHNlY29uZClpKHNldCllKG9mKWgoYmFjKW8oa3NsYXNoKTMxNQotMTM3MSB5KGVzY2FwKXEoZXMpaShpcylnKGEpbyh2KW0oYWlsYWJsZTopMzE1IDE0NTMgeQotRnQoXFxhKTE5MiBiIEZ1KGFsZXJ0KTE1IGIoXChiKXEoZWxsXCkpMzE1IDE1MzUgeSBGdChcXGIpMTkyCi1iIEZ1KGJhYylvKGtzcGFjZSkzMTUgMTYxNyB5IEZ0KFxcZClnIEZ1KGRlbGV0ZSkzMTUgMTY5OQoteSBGdChcXGYpZyBGdShmb3JtKTE0IGIoZmVlZCkzMTUgMTc4MSB5IEZ0KFxcbikxOTIgYgotRnUobmV3bGluZSkzMTUgMTg2MiB5IEZ0KFxccilnIEZ1KGNhcnJpYWdlKTE1IGIocmV0dXJuKTMxNQotMTk0NCB5IEZ0KFxcdCkxOTIgYiBGdShob3Jpem9uKW8odGFsKTE2IGIodGFiKTMxNSAyMDI2Ci15IEZ0KFxcdikxOTIgYiBGdSh2KW8oZXJ0aWNhbCkxNiBiKHRhYikzMTUgMjEwOCB5IEZ0KFxcKXAKLUZrKG5ubikxNDEgYiBGdSh0aGUpMTcgYihlaWdoKW8odC1iaXQpaChjKW8oaGFyYWN0ZXIpZih3aG9zZSlnKHYpbQotKGFsdWUpaShpcyllKHRoZSloKG8pcShjdGFsKWYodiltKGFsdWUpaSBGayhubm4pZiBGdShcKG9uZSlmKHRvKTU1NQotMjE2MyB5KHRocmVlKWUoZGlnaXRzXCkpMzE1IDIyNDUgeSBGdChcXHgpcCBGayhISCkxMjQKLWIgRnUodGhlKTIwIGIoZWlnaClvKHQtYml0KWcoYylvKGhhcmFjdGVyKWYod2hvc2UpaCh2KW0oYWx1ZSloKGlzKWYKLSh0aGUpZyhoZXhhZGVjaW1hbCloKHYpbShhbHVlKWcgRmsoSEgpNTU1IDIzMDAgeSBGdShcKG9uZSkxNQotYihvcilnKHQpbyh3KW8obylmKGhleCloKGRpZ2l0c1wpKTMxNSAyMzgyIHkoV2hlbilrKGVuKW8odGVyaW5nKWcodGhlKWcKLSh0ZXh0KWYob2YpZyhhKWgobWFjcm8sKWYoc2luZ2xlKWkob3IpZShkb3VibGUpaShxdW90ZXMpZihtKW8odXN0KWYoYilxCi0oZSloKHVzZWQpaCh0bykzMTUgMjQzNiB5KGluZGljYXRlKTEyIGIoYSlmKG1hY3JvKWYoZGVcMDE0bml0aW9uLikyMAotYihVbnF1b3RlZCkxMSBiKHRleHQpZihpcylpKGFzc3VtZWQpZSh0byloKGIpcShlKWcoYSlmKGZ1bmN0aW9uKWkKLShuYW1lLikxOCBiKEluKTMxNSAyNDkxIHkodGhlKTExIGIobWFjcm8pZihiKXEobylxKGR5KWwoLClpKHRoZSlmKGJhYylvCi0oa3NsYXNoKWcoZXNjYXApcShlcylnKGRlc2NyaWIpcShlZClpKGFiKXEobylvKHYpbyhlKWQoYXJlKWcoZXhwYW5kZWQuKQotMjAgYihCYWMpbyhrc2xhc2gpMzE1IDI1NDYgeSh3aWxsKWkocXVvdGUpZChhbilvKHkpaChvdGhlcilnKGMpbwotKGhhcmFjdGVyKWYoaW4paSh0aGUpZihtYWNybylmKHRleHQsKWgoaW5jbHVkaW5nKWooYClwCi1GdCgiKXAgRnUoJyljKGFuZCloKGApcCBGdCgnKXAgRnUoJy4pMzQgYihGKWwob3IpMzE1Ci0yNjAxIHkoZXhhbXBsZSwpMTQgYih0aGUpZihmb2xsbylvKHdpbmcpZyhiaW5kaW5nKWkod2lsbClnKG1haylvKGUpZChgKQotcCBGbyhDLXgpaSBGdChcXClwIEZ1KCcpZihpbnNlcnQpZyhhKWcoc2luZ2xlKWgoYClwIEZ0KFxcKXAKLUZ1KCcpZShpbilvKHRvKWgodGhlKWcobGluZTopNDM1IDI2NjYgeSBGdCgiXFxDLXhcXFxcIjopMjMKLWIoIlxcXFwiKXAgZW9wCi0lJVBhZ2U6IDkgMTEKLTkgMTAgYm9wIDc1IC01OCBhIEZ1KENoYXB0ZXIpMTUgYigxOilrKENvbW1hbmQpYyhMaW5lKWkoRWRpdGluZykxMDc3Ci1iKDkpNzUgMTQ5IHkgRmooMS4zLjIpMzAgYihDb25kaXRpb25hbCkyMCBiKEluaXQpZyhDb25zdHJ1Y3RzKTEzNwotMjQ2IHkgRnUoUmVhZGxpbmUpZihpbXBsZW1lbilvKHRzKWcoYSlmKGZhY2lsaXQpbyh5KWcoc2ltaWxhciloKGluKWcKLShzcGlyaXQpZih0bylmKHRoZSloKGNvbmRpdGlvbmFsKWgoY29tcGlsYXRpb24pZyhmZWF0dXJlcyk3NQotMzAxIHkob2YpZSh0aGUpZyhDKWcocHJlcHJvKXEoY2Vzc29yKWcod2hpYylvKGgpaShhbGxvKW8od3MpZShrKW8oZXkpZwotKGJpbmRpbmdzKWkoYW5kKWYodiltKGFyaWFibGUpZyhzZXR0aW5ncylmKHRvKWcoYilxKGUpaChwKXEoZXJmb3JtZWQpZgotKGFzKTc1IDM1NSB5KHRoZSllKHJlc3VsdCloKG9mKWYodGVzdHMuKWsoVGhlcmUpYyhhcmUpZyhmb3VyKWcocGFyc2VyKWcKLShkaXJlY3RpdilvKGVzKWgodXNlZC4pNzUgNDM1IHkgRnQoJGlmKTE2OCBiIEZ1KFRoZSkxNgotYiBGdCgkaWYpZiBGdShjb25zdHJ1Y3QpZyhhbGxvKW8od3MpaChiaW5kaW5ncylpKHRvKWQoYilxKGUpaChtYWRlKWcKLShiYXNlZClnKG9uKWYodGhlKWgoZWRpdGluZyloKG1vKXEoZGUsKWYodGhlKTMxNSA0OTAKLXkodGVybWluYWwpayhiKXEoZWluZylnKHVzZWQsKWcob3IpZih0aGUpZyhhcHBsaWNhdGlvbilpKHVzaW5nKWUKLShSZWFkbGluZS4pMzMgYihUaGUpMTkgYih0ZXh0KWcob2YpZih0aGUpaSh0ZXN0KTMxNSA1NDUKLXkoZXh0ZW5kcyljKHRvKWUodGhlKWgoZW5kKWgob2YpZih0aGUpZyhsaW5lOylpKG5vKWUoYylvKGhhcmFjdGVycylmCi0oYXJlKWgocmVxdWlyZWQpaSh0bylkKGlzb2xhdGUpaShpdC4pMzE1IDYyNCB5IEZ0KG1vZGUpMTQ0Ci1iIEZ1KFRoZSkxMSBiIEZ0KG1vZGU9KWUgRnUoZm9ybSloKG9mKWcodGhlKWggRnQoJGlmKWYKLUZ1KGRpcmVjdGl2KW8oZSloKGlzKWcodXNlZClnKHRvKWYodGVzdClnKHdoZXRoZXIpaChSZWFkbGluZSk1NTUKLTY3OSB5KGlzKWsoaW4paCBGdChlbWFjcyllIEZ1KG9yKWcgRnQodmkpZyBGdShtbylxKGRlLikyMAotYihUaGlzKWMobWEpbyh5KWUoYilxKGUpaCh1c2VkKWcoaW4paChjb25qdW5jdGlvbilnKHdpdGgpZih0aGUpNTU1Ci03MzQgeShgKXAgRnQoc2V0KWYoa2V5bWFwKXAgRnUoJylmKGNvbW1hbmQsKWcoZm9yKWgoaW5zdGFuY2UsKWcodG8pZgotKHNldCloKGJpbmRpbmdzKWgoaW4pZyh0aGUpZiBGdChlbWFjcy0pNTU1IDc4OSB5KHN0YW5kYXJkKWQKLUZ1KGFuZClpIEZ0KGVtYWNzLWN0bHgpZSBGdShrKW8oZXltYXBzKWgob25seSlpKGlmKWYoUmVhZGxpbmUpZyhpcylnCi0oc3RhcnRpbmcpZihvdXQpNTU1IDg0NCB5KGluKWsgRnQoZW1hY3MpZiBGdShtbylxKGRlLikzMTUKLTkyMyB5IEZ0KHRlcm0pMTQ0IGIgRnUoVGhlKTE0IGIgRnQodGVybT0pZSBGdShmb3JtKWgobWEpbyh5KWcoYilxKGUpaAotKHVzZWQpZyh0bylmKGluY2x1ZGUpaih0ZXJtaW5hbC1zcClxKGVjaVwwMTRjKWcoaylvKGV5KWQoYmluZC0pNTU1Ci05NzggeShpbmdzLCkxOSBiKHApcShlcmhhcHMpZyh0byllKGJpbmQpaSh0aGUpZyhrKW8oZXkpZShzZXF1ZW5jZXMpagotKG91dHB1dCllKGIpbyh5KWcodGhlKWcodGVybWluYWwncyk1NTUgMTAzMyB5KGZ1bmN0aW9uKTEzCi1iKGspbyhleXMuKTE4IGIoVGhlKTEzIGIodylvKG9yZCllKG9uKWgodGhlKWcocmlnaClvKHQpZyhzaWRlKWcob2YpZwotKHRoZSlnKGApcCBGdCg9KXAgRnUoJylmKGlzKWgodGVzdGVkKWcoYWdhaW5zdCk1NTUgMTA4OAoteShiKXEob3RoKWoodGhlKWcoZnVsbClpKG5hbWUpZShvZilmKHRoZSloKHRlcm1pbmFsKWgoYW5kKWYodGhlKWcocClxCi0ob3J0aW9uKWgob2YpZSh0aGUpaCh0ZXJtaW5hbCk1NTUgMTE0MiB5KG5hbWUpaShiKXEoZWZvcmUpZyh0aGUpZwotKFwwMTRyc3QpZihgKXAgRnQoLSlwIEZ1KCcuKTI0IGIoVGhpcykxNyBiKGFsbG8pbyh3cylnCi1GdChzdW4pZiBGdSh0bylnKG1hdGMpbyhoKWgoYilxKG90aClmIEZ0KHN1biloIEZ1KGFuZCk1NTUKLTExOTcgeSBGdChzdW4tY21kKXAgRnUoLClkKGZvcilnKGluc3RhbmNlLikzMTUgMTI3NyB5Ci1GdChhcHBsaWNhdGlvbik1NTUgMTMzMiB5IEZ1KFRoZSlkIEZrKGFwcGxpY2F0aW9uKWkgRnUoY29uc3RydWN0KWUoaXMpZwotKHVzZWQpaCh0byllKGluY2x1ZGUpaihhcHBsaWNhdGlvbi1zcClxKGVjaSlxKFwwMTRjKWgoc2V0LSk1NTUKLTEzODYgeSh0aW5ncy4pMTkgYihFYWMpbyhoKTEyIGIocHJvZ3JhbSlmKHVzaW5nKWoodGhlKWUoUmVhZGxpbmUpaQotKGxpYnJhcnkpZihzZXRzKWYodGhlKWcgRmsoYXBwbGljYXRpb24pNTU1IDE0NDEgeShuYW1lKXAKLUZ1KCwpZyhhbmQpZyh5KW8ob3UpZihjYW4paCh0ZXN0KWYoZm9yKWcoYSlnKHBhcnRpY3VsYXIpaCh2KW0oYWx1ZS4pMjAKLWIoVGhpcykxMiBiKGNvdWxkKWgoYilxKGUpZih1c2VkKWgodG8pNTU1IDE0OTYgeShiaW5kKTE4Ci1iKGspbyhleSllKHNlcXVlbmNlcylpKHRvKWQoZnVuY3Rpb25zKWoodXNlZnVsKWYoZm9yKWYoYSlnKHNwKXEKLShlY2lcMDE0YylpKHByb2dyYW0uKTIzIGIoRilsKG9yKTU1NSAxNTUxIHkoaW5zdGFuY2UsKTE3Ci1iKHRoZSlnKGZvbGxvKW8od2luZylnKGNvbW1hbmQpZyhhZGRzKWYoYSlnKGspbyhleSloKHNlcXVlbmNlKWcodGhhdClmCi0ocXVvdGVzKTU1NSAxNjA2IHkodGhlKWYoY3VycmVuKW8odClnKG9yKWcocHJldmlvdXMpaCh3KW8ob3JkKWUoaW4pagotKEJhc2g6KTY3NSAxNjcwIHkgRnQoJGlmKTIzIGIoQmFzaCk2NzUgMTcyMiB5KCMpaChRdW90ZSlmKHRoZSlnCi0oY3VycmVudClnKG9yKWgocHJldmlvdXMpZih3b3JkKTY3NSAxNzc0IHkoIlxcQy14cSI6KWcKLSgiXFxlYlxcIlxcZWZcXCIiKTY3NSAxODI2IHkoJGVuZGlmKTc1IDE5MDUgeSgkZW5kaWYpOTYKLWIgRnUoVGhpcykxNiBiKGNvbW1hbmQsKWUoYXMpaChzZWVuKWgoaW4pZyh0aGUpZihwcmV2aW91cyloKGV4YW1wbGUsKWcKLSh0ZXJtaW5hdGVzKWYoYW4pZyBGdCgkaWYpZiBGdShjb21tYW5kLik3NSAxOTg1IHkgRnQoJGVsc2UpMTIwCi1iIEZ1KENvbW1hbmRzKTE1IGIoaW4paCh0aGlzKWYoYnJhbmMpbyhoKWgob2YpZSh0aGUpaQotRnQoJGlmKWUgRnUoZGlyZWN0aXYpbyhlKWooYXJlKWUoZXhlY3V0ZWQpaChpZilnKHRoZSlmKHRlc3QpZyhmYWlscy4pNzUKLTIwNjUgeSBGdCgkaW5jbHVkZSk0OCBiIEZ1KFRoaXMpMjIgYihkaXJlY3RpdilvKGUpaCh0YWspbyhlcyllKGEpaAotKHNpbmdsZSloKFwwMTRsZW5hbWUpZyhhcyllKGFuKWgoYXJndW1lbilvKHQpZihhbmQpaChyZWFkcylmKGNvbW1hbmRzKQotMzE1IDIxMjAgeShhbmQpZShiaW5kaW5ncylqKGZyb20pYyh0aGF0KWgoXDAxNGxlLikzMwotYihGKWwob3IpMTkgYihleGFtcGxlLClpKHRoZSllKGZvbGxvKW8od2luZyloKGRpcmVjdGl2KW8oZSloKHJlYWRzKWUKLShmcm9tKTMxNSAyMTc0IHkoYClwIEZ0KC9ldGMvaW5wdXRyYylwIEZ1KCc6KTQzNSAyMjM5Ci15IEZ0KCRpbmNsdWRlKWsoL2V0Yy9pbnB1dHJjKTc1IDIzNTEgeSBGaigxLjMuMykzMCBiKFNhbXBsZSkyMAotYihJbml0KWgoRmlsZSkxMzcgMjQ0NyB5IEZ1KEhlcmUpMTYgYihpcylnKGFuKWYoZXhhbXBsZSloKG9mKWYoYW4pZwotRmsoaW5wdXRyYylrIEZ1KFwwMTRsZS4paShUaGlzKTE2IGIoaWxsdXN0cmF0ZXMpZyhrKW8oZXkpZihiaW5kaW5nLClpCi0odiltKGFyaWFibGUpZihhc3NpZ25tZW4pbyh0LCk3NSAyNTAyIHkoYW5kKWYoY29uZGl0aW9uYWwpaShzeW4pbyh0YXguKQotcCBlb3AKLSUlUGFnZTogMTAgMTIKLTEwIDExIGJvcCA3NSAtNTggYSBGdSgxMCkxMjk5IGIoR05VKTE1IGIoUmVhZGxpbmUpaChMaWJyYXJ5KTE5NQotMjAxIHkgRnQoIykyNCBiKFRoaXMpZihmaWxlKWcoY29udHJvbHMpZyh0aGUpaChiZWhhdmlvdXIpZShvZilpKGxpbmUpZgotKGlucHV0KWcoZWRpdGluZylnKGZvcikxOTUgMjUzIHkoIyloKHByb2dyYW1zKWUodGhhdClpKHVzZSlmKHRoZSloKEdOVSkKLWYoUmVhZGxpbmUpZyhsaWJyYXJ5Lik0NyBiKEV4aXN0aW5nKTE5NSAzMDUgeSgjKTI0IGIocHJvZ3JhbXMpZQotKGluY2x1ZGUpaChGVFAsKWgoQmFzaCwpZihhbmQpZyhHREIuKTE5NSAzNTcgeSgjKTE5NQotNDA5IHkoIyloKFlvdSlmKGNhbiloKHJlLXJlYWQpZih0aGUpZyhpbnB1dHJjKWcoZmlsZSlnKHdpdGgpaChDLXgpZgotKEMtci4pMTk1IDQ2MSB5KCMpaChMaW5lcylmKGJlZ2lubmluZylnKHdpdGgpZygnIycpZyhhcmUpaChjb21tZW50cy4pCi0xOTUgNTEzIHkoIykxOTUgNTY1IHkoIylnKEZpcnN0LClmKGluY2x1ZGUpZyhhbnkpZyhzeXN0ZW13aWRlKWcKLShiaW5kaW5ncylmKGFuZClpKHZhcmlhYmxlKTE5NSA2MTYgeSgjKWcoYXNzaWdubWVudHMpZShmcm9tKWgKLSgvZXRjL0lucHV0cmMpMTk1IDY2OCB5KCRpbmNsdWRlKWcoL2V0Yy9JbnB1dHJjKTE5NSA3NzIKLXkoIykxOTUgODI0IHkoIyloKFNldClmKHZhcmlvdXMpZyhiaW5kaW5ncylnKGZvcilnKGVtYWNzKWcobW9kZS4pMTk1Ci05MjggeShzZXQpZyhlZGl0aW5nLW1vZGUpZyhlbWFjcykxOTUgMTAzMiB5KCRpZilnKG1vZGU9ZW1hY3MpMTk1Ci0xMTM1IHkoTWV0YS1Db250cm9sLWg6KTQ2IGIoYmFja3dhcmQta2lsbC13b3JkKTIxIGIoVGV4dClpKGFmdGVyKWgodGhlKQotZihmdW5jdGlvbilnKG5hbWUpZyhpcyloKGlnbm9yZWQpcCAxOTg2IDExNDUgMjEgMzggdgotMTk1IDEyMzkgYSgjKTE5NSAxMjkxIHkoIylnKEFycm93KWYoa2V5cylnKGluKWgoa2V5cGFkKWYobW9kZSkxOTUKLTEzNDMgeSgjKTE5NSAxMzk1IHkoIyJcXE0tT0QiOikxOTAgYihiYWNrd2FyZC1jaGFyKTE5NQotMTQ0NyB5KCMiXFxNLU9DIjopZyhmb3J3YXJkLWNoYXIpMTk1IDE0OTkgeSgjIlxcTS1PQSI6KWcKLShwcmV2aW91cy1oaXN0b3J5KTE5NSAxNTUwIHkoIyJcXE0tT0IiOilnKG5leHQtaGlzdG9yeSkxOTUKLTE2MDIgeSgjKTE5NSAxNjU0IHkoIykyNCBiKEFycm93KWYoa2V5cylnKGluKWgoQU5TSSlmKG1vZGUpMTk1Ci0xNzA2IHkoIykxOTUgMTc1OCB5KCJcXE0tW0QiOikxOTAgYihiYWNrd2FyZC1jaGFyKTE5NQotMTgxMCB5KCJcXE0tW0MiOilnKGZvcndhcmQtY2hhcikxOTUgMTg2MiB5KCJcXE0tW0EiOilnCi0ocHJldmlvdXMtaGlzdG9yeSkxOTUgMTkxNCB5KCJcXE0tW0IiOilnKG5leHQtaGlzdG9yeSkxOTUKLTE5NjYgeSgjKTE5NSAyMDE3IHkoIykyNCBiKEFycm93KWYoa2V5cylnKGluKWgoOClnKGJpdClmKGtleXBhZClnKG1vZGUpCi0xOTUgMjA2OSB5KCMpMTk1IDIxMjEgeSgjIlxcTS1cXEMtT0QiOikxNjUgYihiYWNrd2FyZC1jaGFyKTE5NQotMjE3MyB5KCMiXFxNLVxcQy1PQyI6KWcoZm9yd2FyZC1jaGFyKTE5NSAyMjI1IHkoIyJcXE0tXFxDLU9BIjopZwotKHByZXZpb3VzLWhpc3RvcnkpMTk1IDIyNzcgeSgjIlxcTS1cXEMtT0IiOilnKG5leHQtaGlzdG9yeSkxOTUKLTIzMjkgeSgjKTE5NSAyMzgxIHkoIykyNCBiKEFycm93KWYoa2V5cylnKGluKWgoOClnKGJpdClmKEFOU0kpZyhtb2RlKQotMTk1IDI0MzMgeSgjKTE5NSAyNDg0IHkoIyJcXE0tXFxDLVtEIjopMTY1IGIoYmFja3dhcmQtY2hhcikxOTUKLTI1MzYgeSgjIlxcTS1cXEMtW0MiOilnKGZvcndhcmQtY2hhcikxOTUgMjU4OCB5KCMiXFxNLVxcQy1bQSI6KWcKLShwcmV2aW91cy1oaXN0b3J5KTE5NSAyNjQwIHkoIyJcXE0tXFxDLVtCIjopZyhuZXh0LWhpc3RvcnkpcAotZW9wCi0lJVBhZ2U6IDExIDEzCi0xMSAxMiBib3AgNzUgLTU4IGEgRnUoQ2hhcHRlcikxNSBiKDE6KWsoQ29tbWFuZCljKExpbmUpaShFZGl0aW5nKTEwNTUKLWIoMTEpMTk1IDIwMSB5IEZ0KEMtcTopMjMgYihxdW90ZWQtaW5zZXJ0KTE5NSAzMDUgeSgkZW5kaWYpMTk1Ci00MDkgeSgjKWgoQW4pZihvbGQtc3R5bGUpZyhiaW5kaW5nLik0NyBiKFRoaXMpMjMgYihoYXBwZW5zKWcodG8pZyhiZSloCi0odGhlKWYoZGVmYXVsdC4pMTk1IDQ2MSB5KFRBQjopZyhjb21wbGV0ZSkxOTUgNTY1IHkoIyloKE1hY3JvcylmKHRoYXQpZwotKGFyZSloKGNvbnZlbmllbnQpZShmb3IpaChzaGVsbCloKGludGVyYWN0aW9uKTE5NSA2MTYKLXkoJGlmKWYoQmFzaCkxOTUgNjY4IHkoIyloKGVkaXQpZih0aGUpZyhwYXRoKTE5NSA3MjAKLXkoIlxcQy14cCI6KWcoIlBBVEg9JHtQQVRIfVxcZVxcQy1lXFxDLWFcXClvKGVmXFxDLWYiKTE5NQotNzcyIHkoIyloKHByZXBhcmUpZih0bylnKHR5cGUpaChhKWYocXVvdGVkKWcod29yZCloKC0tKTE5NQotODI0IHkoIylnKGluc2VydClmKG9wZW4pZyhhbmQpaChjbG9zZSlmKGRvdWJsZSlnKHF1b3RlcykxOTUKLTg3NiB5KCMpaChhbmQpZihtb3ZlKWcodG8paChqdXN0KWYoYWZ0ZXIpaCh0aGUpZihvcGVuKWcocXVvdGUpMTk1Ci05MjggeSgiXFxDLXhcXCIiOilnKCJcXCJcXCJcXEMtYiIpMTk1IDk4MCB5KCMpaChpbnNlcnQpZihhKWcoYmFja3NsYXNoKQotZyhcKHRlc3RpbmcpZyhiYWNrc2xhc2gpZyhlc2NhcGVzKTE5NSAxMDMyIHkoIyloKGluKWYoc2VxdWVuY2VzKWcoYW5kKWcKLShtYWNyb3NcKSkxOTUgMTA4MyB5KCJcXEMteFxcXFwiOilnKCJcXFxcIikxOTUgMTEzNSB5KCMpaChRdW90ZSlmKHRoZSlnCi0oY3VycmVudClnKG9yKWgocHJldmlvdXMpZih3b3JkKTE5NSAxMTg3IHkoIlxcQy14cSI6KWcKLSgiXFxlYlxcIlxcZWZcXCIiKTE5NSAxMjM5IHkoIyloKEFkZClmKGEpaChiaW5kaW5nKWYodG8pZyhyZWZyZXNoKWcKLSh0aGUpaChsaW5lLClmKHdoaWNoKWcoaXMpaCh1bmJvdW5kKTE5NSAxMjkxIHkoIlxcQy14ciI6KWYKLShyZWRyYXctY3VycmVudC1saW5lKTE5NSAxMzQzIHkoIyloKEVkaXQpZih2YXJpYWJsZSlnKG9uKWcoY3VycmVudClnCi0obGluZS4pMTk1IDEzOTUgeSgiXFxNLVxcQy12IjopZigiXFxDLWFcXEMtayRcXEMteVxcTS1cXEMtZVxcQy1hXFxDLXk9KQotbygiKTE5NSAxNDQ3IHkoJGVuZGlmKTE5NSAxNTUwIHkoIylpKHVzZSlmKGEpaCh2aXNpYmxlKWYoYmVsbClnKGlmKWgKLShvbmUpZihpcyloKGF2YWlsYWJsZSkxOTUgMTYwMiB5KHNldClmKGJlbGwtc3R5bGUpZyh2aXNpYmxlKTE5NQotMTcwNiB5KCMpaChkb24ndClmKHN0cmlwKWcoY2hhcmFjdGVycylnKHRvKWcoNyloKGJpdHMpZih3aGVuKWgocmVhZGluZykKLTE5NSAxNzU4IHkoc2V0KWYoaW5wdXQtbWV0YSlnKG9uKTE5NSAxODYyIHkoIyloKGFsbG93KWYoaXNvLWxhdGluMSlmCi0oY2hhcmFjdGVycyloKHRvKWcoYmUpaChpbnNlcnRlZClmKHJhdGhlcikxOTUgMTkxNCB5KCMpaCh0aGFuKWYKLShjb252ZXJ0ZWQpZyh0bylnKHByZWZpeC1tZXRhKWcoc2VxdWVuY2VzKTE5NSAxOTY2IHkoc2V0KWcKLShjb252ZXJ0LW1ldGEpZyhvZmYpMTk1IDIwNjkgeSgjKWgoZGlzcGxheSlmKGNoYXJhY3RlcnMpZih3aXRoKWgodGhlKWgKLShlaWdodGgpZihiaXQpZyhzZXQpaChkaXJlY3RseSkxOTUgMjEyMSB5KCMpZyhyYXRoZXIpZih0aGFuKWcoYXMpaAotKG1ldGEtcHJlZml4ZWQpZShjaGFyYWN0ZXJzKTE5NSAyMTczIHkoc2V0KWgob3V0cHV0LW1ldGEpZyhvbikxOTUKLTIyNzcgeSgjKWgoaWYpZih0aGVyZSlnKGFyZSloKG1vcmUpZih0aGFuKWgoMTUwKWYocG9zc2libGUpZwotKGNvbXBsZXRpb25zKWYoZm9yKTE5NSAyMzI5IHkoIylpKGEpZih3b3JkLCloKGFzaylmKHRoZSloKHVzZXIpZihpZilnCi0oaGUpaCh3YW50cylmKHRvKWgoc2VlKWYoYWxsKWgob2YpZih0aGVtKTE5NSAyMzgxIHkoc2V0KWcKLShjb21wbGV0aW9uLXF1ZXJ5LWl0ZW1zKWUoMTUwKTE5NSAyNDg0IHkoIylqKEZvcilmKEZUUCkxOTUKLTI1MzYgeSgkaWYpZyhGdHApMTk1IDI1ODggeSgiXFxDLXhnIjopZygiZ2V0KWcoXFxNLT8iKTE5NQotMjY0MCB5KCJcXEMteHQiOilnKCJwdXQpZyhcXE0tPyIpcCBlb3AKLSUlUGFnZTogMTIgMTQKLTEyIDEzIGJvcCA3NSAtNTggYSBGdSgxMikxMjk5IGIoR05VKTE1IGIoUmVhZGxpbmUpaChMaWJyYXJ5KTE5NQotMTQ5IHkgRnQoIlxcTS0uIjopMjMgYih5YW5rLWxhc3QtYXJnKTE5NSAyMDEgeSgkZW5kaWYpNzUKLTMyOSB5IEZzKDEuNCkzMyBiKEJpbmRhYmxlKTI0IGIoUmVhZGxpbmUpZihDb21tYW5kcykxMzcKLTQyNSB5IEZ1KFRoaXMpMTcgYihzZWN0aW9uKWYoZGVzY3JpYilxKGVzKWgoUmVhZGxpbmUpZyhjb21tYW5kcylmKHRoYXQpCi1lKG1hKW8oeSloKGIpcShlKWkoYilxKG91bmQpZih0bylmKGspbyhleSloKHNlcXVlbmNlcy4pMjIKLWIoQ29tLSk3NSA0ODAgeShtYW5kKTE1IGIobmFtZXMpZyh3aXRob3V0KWgoYW4pZihhY2NvbXBhbilvKHlpbmcpZyhrKW8KLShleSlnKHNlcXVlbmNlKWkoYXJlKWUodW4pbyhiKXEob3VuZCloKGIpbyh5KWYoZGVmYXVsdC4pMTM3Ci01NDcgeShJbilmKHRoZSlmKGZvbGxvKW8od2luZyloKGRlc2NyaXB0aW9ucywpaCBGayhwKXEob2luKW8odClmCi1GdShyZWZlcnMpZih0bylnKHRoZSlnKGN1cnJlbilvKHQpZyhjdXJzb3IpZihwKXEob3NpdGlvbiwpaihhbmQpZQotRmsobWFyaylpIEZ1KHJlZmVycyk3NSA2MDEgeSh0bylrKGEpZyhjdXJzb3IpZyhwKXEob3NpdGlvbiloKHNhKW8odilvCi0oZWQpZihiKW8oeSloKHRoZSlmIEZ0KHNldC1tYXJrKWcgRnUoY29tbWFuZC4pMzIgYihUaGUpMjAKLWIodGV4dClmKGIpcShldClvKHcpbyhlZW4pZyh0aGUpaChwKXEob2luKW8odClnKGFuZCk3NQotNjU2IHkobWFyaykxNSBiKGlzKWcocmVmZXJyZWQpaCh0byllKGFzKWgodGhlKWcgRmsocmVnaW9uKXAKLUZ1KC4pNzUgNzY3IHkgRmooMS40LjEpMzAgYihDb21tYW5kcykyMSBiKEYpLTUgYihvcikxOQotYihNbyluKHZpbmcpNzUgODg4IHkgRnQoYmVnaW5uaW5nLW9mLWxpbmUpMTMgYihcKEMtYVwpKTMxNQotOTQyIHkgRnUoTW8pbyh2KW8oZSloKHRvKWgodGhlKWcoc3RhcnQpZihvZiloKHRoZSlnKGN1cnJlbilvKHQpZyhsaW5lLikKLTc1IDEwMzQgeSBGdChlbmQtb2YtbGluZSlmKFwoQy1lXCkpMzE1IDEwODggeSBGdShNbylvKHYpbyhlKWcodG8paCh0aGUpCi1nKGVuZCloKG9mKWYodGhlKWcobGluZS4pNzUgMTE3OSB5IEZ0KGZvcndhcmQtY2hhcilmKFwoQy1mXCkpMzE1Ci0xMjM0IHkgRnUoTW8pbyh2KW8oZSlnKGZvcncpbyhhcmQpZyhhKWgoYylvKGhhcmFjdGVyLik3NQotMTMyNSB5IEZ0KGJhY2t3YXJkLWNoYXIpZShcKEMtYlwpKTMxNSAxMzgwIHkgRnUoTW8pbyh2KW8oZSloKGJhYylvKGspaAotKGEpZyhjKW8oaGFyYWN0ZXIuKTc1IDE0NzEgeSBGdChmb3J3YXJkLXdvcmQpZihcKE0tZlwpKTMxNQotMTUyNiB5IEZ1KE1vKW8odilvKGUpZyhmb3J3KW8oYXJkKWcodG8pZyh0aGUpaShlbmQpZyhvZillKHRoZSloKG5leHQpaAotKHcpbyhvcmQuKWooVylsKG9yZHMpYyhhcmUpZihjb21wKXEob3NlZClpKG9mKWYobGV0dGVycylnKGFuZCkzMTUKLTE1ODEgeShkaWdpdHMuKTc1IDE2NzIgeSBGdChiYWNrd2FyZC13b3JkKWUoXChNLWJcKSkzMTUKLTE3MjcgeSBGdShNbylvKHYpbyhlKWooYmFjKW8oaylnKHRvKWgodGhlKWYoc3RhcnQpZyhvZilnKHRoZSloKGN1cnJlbilvCi0odClnKG9yKWYocHJldmlvdXMpaSh3KW8ob3JkLikyNCBiKFcpbChvcmRzKTE2IGIoYXJlKWgoY29tcClxKG9zZWQpMzE1Ci0xNzgyIHkob2YpZShsZXR0ZXJzKWcoYW5kKWcoZGlnaXRzLik3NSAxODczIHkgRnQoY2xlYXItc2NyZWVuKWYKLShcKEMtbFwpKTMxNSAxOTI4IHkgRnUoQ2xlYXIpZih0aGUpaChzY3JlZW4pZyhhbmQpZihyZWRyYSlvKHcpZyh0aGUpZwotKGN1cnJlbilvKHQpZyhsaW5lLClpKGxlYSlvKHZpbmcpZyh0aGUpZShjdXJyZW4pbyh0KWcobGluZSlpKGF0KWUodGhlKWcKLSh0b3ApMzE1IDE5ODIgeShvZilpKHRoZSlnKHNjcmVlbi4pNzUgMjA3NCB5IEZ0KHJlZHJhdy1jdXJyZW50LWxpbmUpZQotKFwoXCkpMzE1IDIxMjggeSBGdShSZWZyZXNoKWkodGhlKWcoY3VycmVuKW8odClnKGxpbmUuKTIyCi1iKEJ5KTE1IGIoZGVmYXVsdCwpaCh0aGlzKWYoaXMpaCh1bilvKGIpcShvdW5kLik3NSAyMjM5Ci15IEZqKDEuNC4yKTMwIGIoQ29tbWFuZHMpMjEgYihGKS01IGIob3IpMTkgYihNYW5pcHVsYXRpbmcpaShUaGUpZgotKEhpc3RvcnkpNzUgMjM2MCB5IEZ0KGFjY2VwdC1saW5lKTE0IGIoXChOZXdsaW5lKWcob3IpaChSZXR1cm5cKSkzMTUKLTI0MTQgeSBGdShBY2NlcHQpaih0aGUpZyhsaW5lKWgocmVnYXJkbGVzcylmKG9mKWYod2hlcmUpaCh0aGUpZyhjdXJzb3IpCi1mKGlzLikyNyBiKElmKTE4IGIodGhpcylnKGxpbmUpaChpcylnKG5vbi1lbXB0KW8oeSlsKCwpZihpdCkzMTUKLTI0NjkgeShtYSlvKHkpZChiKXEoZSlpKGFkZGVkKWYodG8pZyh0aGUpZyhoaXN0b3J5KWcobGlzdClnKGZvcilnCi0oZnV0dXJlKWcocmVjYWxsKWgod2l0aClmIEZ0KGFkZF9oaXN0b3J5XChcKSlwIEZ1KC4payhJZilkKHRoaXMpMzE1Ci0yNTI0IHkobGluZSlnKGlzKWYoYSllKG1vKXEoZGlcMDE0ZWQpaihoaXN0b3J5KWUobGluZSwpaSh0aGUpZShoaXN0b3J5KQotZyhsaW5lKWkoaXMpZihyZXN0b3JlZCllKHRvKWgoaXRzKWcob3JpZ2luYWwpaShzdGF0ZS4pNzUKLTI2MTUgeSBGdChwcmV2aW91cy1oaXN0b3J5KWMoXChDLXBcKSkzMTUgMjY3MCB5IEZ1KE1vKW8odilvKGUpaChgYmFjKW8KLShrJyloKHRocm91Z2gpZih0aGUpaShoaXN0b3J5KWYobGlzdCwpZyhmZXRjKW8oaGluZyloKHRoZSlmKHByZXZpb3VzKWgKLShjb21tYW5kLilwIGVvcAotJSVQYWdlOiAxMyAxNQotMTMgMTQgYm9wIDc1IC01OCBhIEZ1KENoYXB0ZXIpMTUgYigxOilrKENvbW1hbmQpYyhMaW5lKWkoRWRpdGluZykxMDU1Ci1iKDEzKTc1IDE0OSB5IEZ0KG5leHQtaGlzdG9yeSkxNCBiKFwoQy1uXCkpMzE1IDIwNCB5Ci1GdShNbylvKHYpbyhlKWcoYGZvcncpbyhhcmQnKWYodGhyb3VnaClpKHRoZSloKGhpc3RvcnkpZihsaXN0LClnKGZldGMpbwotKGhpbmcpaCh0aGUpZihuZXh0KWgoY29tbWFuZC4pNzUgMzA3IHkgRnQoYmVnaW5uaW5nLW9mLWhpc3RvcnkpYwotKFwoTS08XCkpMzE1IDM2MiB5IEZ1KE1vKW8odilvKGUpaSh0byloKHRoZSlnKFwwMTRyc3QpZyhsaW5lKWkoaW4pZgotKHRoZSlmKGhpc3RvcnkpbCguKTc1IDQ2NSB5IEZ0KGVuZC1vZi1oaXN0b3J5KWUoXChNLT5cKSkzMTUKLTUyMCB5IEZ1KE1vKW8odilvKGUpaCh0byloKHRoZSlnKGVuZCloKG9mKWYodGhlKWcoaW5wdXQpaChoaXN0b3J5KWwoLClmCi0oaS5lLiwpZyh0aGUpZyhsaW5lKWkoY3VycmVuKW8odGx5KWYoYilxKGVpbmcpZyhlbilvKHRlcmVkLik3NQotNjI0IHkgRnQocmV2ZXJzZS1zZWFyY2gtaGlzdG9yeSljKFwoQy1yXCkpMzE1IDY3OCB5IEZ1KFNlYXJjKW8oaClrKGJhYykKLW8oa3cpbyhhcmQpZShzdGFydGluZyloKGF0KWcodGhlKWgoY3VycmVuKW8odClmKGxpbmUpaihhbmQpZChtbylvKHZpbmcpCi1oKGB1cCcpZih0aHJvdWdoKWcodGhlKWgoaGlzLSkzMTUgNzMzIHkodG9yeSllKGFzKWgobmVjZXNzYXJ5KWwoLikyMAotYihUaGlzKWMoaXMpZyhhbilmKGluY3JlbWVuKW8odGFsKWgoc2VhcmMpbyhoLik3NSA4MzYKLXkgRnQoZm9yd2FyZC1zZWFyY2gtaGlzdG9yeSljKFwoQy1zXCkpMzE1IDg5MSB5IEZ1KFNlYXJjKW8oaClqKGZvcncpbwotKGFyZCllKHN0YXJ0aW5nKWgoYXQpaCh0aGUpZihjdXJyZW4pbyh0KWgobGluZSloKGFuZClmKG1vKW8odmluZylnKGBkbykKLW8od24nKWYodGhyb3VnaClnKHRoZSloKHRoZSkzMTUgOTQ2IHkoaGlzdG9yeSlnKGFzKWcobmVjZXNzYXJ5KWwoLikyMAotYihUaGlzKWMoaXMpZyhhbilmKGluY3JlbWVuKW8odGFsKWgoc2VhcmMpbyhoLik3NSAxMDQ5Ci15IEZ0KG5vbi1pbmNyZW1lbnRhbC1yZXZlcnNlLXNlKW8oYXJjaC1oaSlvKHN0b3J5KWMoXChNLXBcKSkzMTUKLTExMDQgeSBGdShTZWFyYylvKGgpayhiYWMpbyhrdylvKGFyZCllKHN0YXJ0aW5nKWgoYXQpZyh0aGUpaChjdXJyZW4pbwotKHQpZihsaW5lKWooYW5kKWQobW8pbyh2aW5nKWgoYHVwJylmKHRocm91Z2gpZyh0aGUpaChoaXMtKTMxNQotMTE1OSB5KHRvcnkpaChhcyloKG5lY2Vzc2FyeSlnKHVzaW5nKWgoYSllKG5vbi1pbmNyZW1lbilvKHRhbClqKHNlYXJjKW8KLShoKWUoZm9yKWYoYSloKHN0cmluZylnKHN1cHBsaWVkKWkoYilvKHkpZSh0aGUpMzE1IDEyMTQKLXkodXNlci4pNzUgMTMxNyB5IEZ0KG5vbi1pbmNyZW1lbnRhbC1mb3J3YXJkLXNlKW8oYXJjaC1oaSlvKHN0b3J5KTEyCi1iKFwoTS1uXCkpMzE1IDEzNzIgeSBGdShTZWFyYylvKGgpaihmb3J3KW8oYXJkKWUoc3RhcnRpbmcpaChhdCloKHRoZSlmCi0oY3VycmVuKW8odCloKGxpbmUpaChhbmQpZihtbylvKHZpbmcpZyhgZG8pbyh3bicpZih0aHJvdWdoKWcodGhlKWgodGhlKQotMzE1IDE0MjYgeShoaXN0b3J5KWUoYXMpZyhuZWNlc3NhcnkpaCh1c2luZylnKGEpZihub24taW5jcmVtZW4pbyh0YWwpaQotKHNlYXJjKW8oaCllKGZvcilnKGEpZyhzdHJpbmcpZyhzdXBwbGllZClqKGIpbyh5KWQodGhlKTMxNQotMTQ4MSB5KHVzZXIuKTc1IDE1ODQgeSBGdChoaXN0b3J5LXNlYXJjaC1mb3J3YXJkKWYoXChcKSkzMTUKLTE2MzkgeSBGdShTZWFyYylvKGgpMjEgYihmb3J3KW8oYXJkKWUodGhyb3VnaClpKHRoZSlmKGhpc3RvcnkpaChmb3IpZgotKHRoZSloKHN0cmluZylnKG9mKWYoYylvKGhhcmFjdGVycylnKGIpcShldClvKHcpbyhlZW4paCh0aGUpMzE1Ci0xNjk0IHkoc3RhcnQpMTYgYihvZiloKHRoZSloKGN1cnJlbilvKHQpZyhsaW5lKWgoYW5kKWUodGhlKWgocClxKG9pbilvCi0odC4pMjggYihUaGlzKTE4IGIoaXMpZyhhKWYobm9uLWluY3JlbWVuKW8odGFsKWkoc2VhcmMpbyhoLikyNwotYihCeSkzMTUgMTc0OSB5KGRlZmF1bHQsKTE1IGIodGhpcyloKGNvbW1hbmQpZihpcyloKHVuKW8oYilxKG91bmQuKTc1Ci0xODUyIHkgRnQoaGlzdG9yeS1zZWFyY2gtYmFja3dhcmQpYyhcKFwpKTMxNSAxOTA3IHkgRnUoU2VhcmMpbyhoKTE4Ci1iKGJhYylvKGt3KW8oYXJkKWUodGhyb3VnaCloKHRoZSloKGhpc3RvcnkpZihmb3IpZyh0aGUpZyhzdHJpbmcpaChvZilmCi0oYylvKGhhcmFjdGVycylmKGIpcShldClvKHcpbyhlZW4paSh0aGUpMzE1IDE5NjIgeShzdGFydCllKG9mKWgodGhlKWgKLShjdXJyZW4pbyh0KWcobGluZSloKGFuZCllKHRoZSloKHApcShvaW4pbyh0LikyOCBiKFRoaXMpMTgKLWIoaXMpZyhhKWYobm9uLWluY3JlbWVuKW8odGFsKWkoc2VhcmMpbyhoLikyNyBiKEJ5KTMxNQotMjAxNiB5KGRlZmF1bHQsKTE1IGIodGhpcyloKGNvbW1hbmQpZihpcyloKHVuKW8oYilxKG91bmQuKTc1Ci0yMTIwIHkgRnQoeWFuay1udGgtYXJnKWUoXChNLUMteVwpKTMxNSAyMTc0IHkgRnUoSW5zZXJ0KWYodGhlKWcKLShcMDE0cnN0KWcoYXJndW1lbilvKHQpZih0bylnKHRoZSlpKHByZXZpb3VzKWYoY29tbWFuZClnKFwodXN1YWxseSloCi0odGhlKWYoc2Vjb25kKWgodylvKG9yZCllKG9uKTMxNSAyMjI5IHkodGhlKWoocHJldmlvdXMpaChsaW5lXCkpZyhhdCllCi0ocClxKG9pbilvKHQuKTIxIGIoV2l0aCkxNSBiKGFuKWcoYXJndW1lbilvKHQpZiBGayhuKXAKLUZ1KCwpaChpbnNlcnQpZyh0aGUpZyBGayhuKXAgRnUodGgpZyh3KW8ob3JkKWcoZnJvbSlmKHRoZSkzMTUKLTIyODQgeShwcmV2aW91cylnKGNvbW1hbmQpZyhcKHRoZSlmKHcpbyhvcmRzKWYoaW4paih0aGUpZShwcmV2aW91cylpCi0oY29tbWFuZCllKGIpcShlZ2luKWkod2l0aCllKHcpbyhvcmQpZygwXCkuKTE5IGIoQSkzMTUKLTIzMzkgeShuZWdhdGl2KW8oZSkxMyBiKGFyZ3VtZW4pbyh0KWYoaW5zZXJ0cyloKHRoZSlnCi1GayhuKXAgRnUodGgpZyh3KW8ob3JkKWYoZnJvbSlnKHRoZSloKGVuZCloKG9mKWUodGhlKWgocHJldmlvdXMpZwotKGNvbW1hbmQuKTc1IDI0NDIgeSBGdCh5YW5rLWxhc3QtYXJnKWcoXChNLS4paShvcilnKE0tX1wpKTMxNQotMjQ5NyB5IEZ1KEluc2VydClqKGxhc3QpZihhcmd1bWVuKW8odClnKHRvKWcodGhlKWcocHJldmlvdXMpaShjb21tYW5kKWUKLShcKHRoZSlnKGxhc3QpaCh3KW8ob3JkKWYob2YpZyh0aGUpZyhwcmV2aW91cykzMTUgMjU1MgoteShoaXN0b3J5KWUoZW4pbyh0cnlcKS4pMjAgYihXaXRoKTE1IGIoYW4pZyhhcmd1bWVuKW8odCwpZyhiKXEoZWhhKW8odikKLW8oZSlnKGV4YWN0bHkpaChsaWspbyhlKWcgRnQoeWFuay1udGgtYXJnKXAgRnUoLilqKFN1Y2Nlcy0pMzE1Ci0yNjA2IHkoc2l2KW8oZSlmKGNhbGxzKWcodG8pZiBGdCh5YW5rLWxhc3QtYXJnKWUgRnUobW8pbyh2KW8oZSlpKGJhYylvCi0oaylnKHRocm91Z2gpZyh0aGUpZyhoaXN0b3J5KWcobGlzdCwpaShpbnNlcnRpbmcpZih0aGUpMzE1Ci0yNjYxIHkobGFzdClkKGFyZ3VtZW4pbyh0KWcob2YpZihlYWMpbyhoKWkobGluZSlnKGluKWcodHVybi4pcAotZW9wCi0lJVBhZ2U6IDE0IDE2Ci0xNCAxNSBib3AgNzUgLTU4IGEgRnUoMTQpMTI5OSBiKEdOVSkxNSBiKFJlYWRsaW5lKWgoTGlicmFyeSk3NQotMTQ5IHkgRmooMS40LjMpMzAgYihDb21tYW5kcykyMSBiKEYpLTUgYihvcikxOSBiKENoYW5naW5nKWkoVCktNQotYihleHQpNzUgMjg2IHkgRnQoZGVsZXRlLWNoYXIpMTQgYihcKEMtZFwpKTMxNSAzNDEgeQotRnUoRGVsZXRlKTIwIGIodGhlKWcoYylvKGhhcmFjdGVyKWUoYXQpaChwKXEob2luKW8odC4pMzMKLWIoSWYpMjAgYihwKXEob2luKW8odClnKGlzKWcoYXQpZSh0aGUpaShiKXEoZWdpbm5pbmcpaShvZilkKHRoZSlnCi0obGluZSwpaih0aGVyZSkzMTUgMzk2IHkoYXJlKWMobm8paChjKW8oaGFyYWN0ZXJzKWUoaW4paih0aGUpZShsaW5lLClqCi0oYW5kKWUodGhlKWYobGFzdCloKGMpbyhoYXJhY3RlcillKHQpbyh5cClxKGVkKWkodylvKGFzKWYobm90KWcoYilxCi0ob3VuZClpKHRvKTMxNSA0NTAgeSBGdChkZWxldGUtY2hhcilwIEZ1KCwpMTMgYih0aGVuKWoocmV0dXJuKWYKLUZwKGVvZilwIEZ1KC4pNzUgNTUyIHkgRnQoYmFja3dhcmQtZGVsZXRlLWNoYXIpZChcKFJ1Ym91dFwpKTMxNQotNjA3IHkgRnUoRGVsZXRlKWsodGhlKWYoYylvKGhhcmFjdGVyKWYoYilxKGVoaW5kKWoodGhlKWYoY3Vyc29yLilqKEEpYwotKG4pbyh1bWVyaWMpaChhcmd1bWVuKW8odCllKG1lYW5zKWkodG8pZShraWxsKWoodGhlKTMxNQotNjYxIHkoYylvKGhhcmFjdGVycylkKGluc3RlYWQpaShvZilmKGRlbGV0aW5nKWkodGhlbS4pNzUKLTc2MyB5IEZ0KGZvcndhcmQtYmFja3dhcmQtZGVsZXRlLWNoKW8oYXIpMTIgYihcKFwpKTMxNQotODE4IHkgRnUoRGVsZXRlKTIwIGIodGhlKWYoYylvKGhhcmFjdGVyKWYodW5kZXIpaSh0aGUpZihjdXJzb3IsKWgKLSh1bmxlc3MpZyh0aGUpZihjdXJzb3IpZyhpcyloKGF0KWUodGhlKWgoZW5kKWgob2YpZih0aGUpMzE1Ci04NzIgeShsaW5lLCllKGluKWcod2hpYylvKGgpZyhjYXNlKWUodGhlKWgoYylvKGhhcmFjdGVyKWcoYilxKGVoaW5kKWgKLSh0aGUpZihjdXJzb3IpZyhpcylnKGRlbGV0ZWQuKTIzIGIoQnkpMTYgYihkZWZhdWx0LCloKHRoaXMpMzE1Ci05MjcgeShpcylmKG5vdClmKGIpcShvdW5kKWgodG8pZShhKWgoaylvKGV5KWwoLik3NSAxMDI5Ci15IEZ0KHF1b3RlZC1pbnNlcnQpZShcKEMtcSlpKG9yKWcoQy12XCkpMzE1IDEwODMgeSBGdShBZGQpaih0aGUpZihuZXh0KQotZyhjKW8oaGFyYWN0ZXIpZyh0KW8oeXApcShlZClnKHRvKWYodGhlKWkobGluZSlnKHYpbyhlcmJhdGltLikyNgotYihUaGlzKTE4IGIoaXMpZihobylvKHcpZyh0bylnKGluc2VydClnKGspbyhleSkzMTUgMTEzOAoteShzZXF1ZW5jZXMpZihsaWspbyhlKWggRm8oQy1xKXAgRnUoLClkKGZvciloKGV4YW1wbGUuKTc1Ci0xMjQwIHkgRnQodGFiLWluc2VydClmKFwoTS0pNDAxIDEyMzggeSBGbihoKXAgNDEyIDEyMTIKLTc0IDIgdiA0MTIgMTI0MCBhIEZtKFQpbShBQilwIDQxMiAxMjQ3IFYgNDg0IDEyMzggYSBGbihpKTQ5OQotMTI0MCB5IEZ0KFwpKTMxNSAxMjk0IHkgRnUoSW5zZXJ0KWgoYSlnKHRhYilnKGMpbyhoYXJhY3Rlci4pNzUKLTEzOTYgeSBGdChzZWxmLWluc2VydClmKFwoYSwpZyhiLCloKEEsKWcoMSwpZyghLClnKC4uLilvKFwpKTMxNQotMTQ1MSB5IEZ1KEluc2VydClnKHkpbyhvdXJzZWxmLik3NSAxNTUyIHkgRnQodHJhbnNwb3NlLWNoYXJzKWUoXChDLXRcKSkKLTMxNSAxNjA3IHkgRnUoRHJhZylpKHRoZSloKGMpbyhoYXJhY3RlcilmKGIpcShlZm9yZSloKHRoZSloKGN1cnNvcillCi0oZm9ydylvKGFyZClnKG8pbyh2KW8oZXIpZyh0aGUpaChjKW8oaGFyYWN0ZXIpZihhdCloKHRoZSlnKGN1cnNvciwpMzE1Ci0xNjYyIHkobW8pbyh2aW5nKWkodGhlKWYoY3Vyc29yKWgoZm9ydylvKGFyZCllKGFzKWkodylvKGVsbC4pMjgKLWIoSWYpMTggYih0aGUpZyhpbnNlcnRpb24paChwKXEob2luKW8odClmKGlzKWcoYXQpZih0aGUpaChlbmQpaChvZillCi0odGhlKTMxNSAxNzE2IHkobGluZSwpYyh0aGVuKWUodGhpcyloKHRyYW5zcClxKG9zZXMpZSh0aGUpaChsYXN0KWcodClvCi0odylvKG8pZihjKW8oaGFyYWN0ZXJzKWcob2YpaCh0aGUpZyhsaW5lLikyMCBiKE5lZ2F0aXYpbyhlKTExCi1iKGFyZ3VtZW4pbyh0cykzMTUgMTc3MSB5KGhhKW8odilvKGUpayhubylnKGVcMDEzZWN0Lik3NQotMTg3MyB5IEZ0KHRyYW5zcG9zZS13b3JkcyllKFwoTS10XCkpMzE1IDE5MjcgeSBGdShEcmFnKWkodGhlKWgodylvKG9yZCkKLWcoYilxKGVmb3JlKWcocClxKG9pbilvKHQpaChwYXN0KWYodGhlKWcodylvKG9yZClmKGFmdGVyKWgocClxKG9pbilvCi0odCwpZyhtbylvKHZpbmcpZyhwKXEob2luKW8odCloKHBhc3QpZih0aGF0KTMxNSAxOTgyCi15KHcpbyhvcmQpZChhcyloKHcpbyhlbGwuKTIxIGIoSWYpMTQgYih0aGUpZyhpbnNlcnRpb24paShwKXEob2luKW8odCllCi0oaXMpaChhdClmKHRoZSlnKGVuZCloKG9mKWUodGhlKWkobGluZSwpZyh0aGlzKWcodHJhbnNwKXEob3NlcylmKHRoZSkKLTMxNSAyMDM3IHkobGFzdCloKHQpbyh3KW8obylmKHcpbyhvcmRzKWcob24paSh0aGUpZihsaW5lLik3NQotMjEzOCB5IEZ0KHVwY2FzZS13b3JkKWYoXChNLXVcKSkzMTUgMjE5MyB5IEZ1KFVwcClxKGVyY2FzZSlqKHRoZSlmCi0oY3VycmVuKW8odClnKFwob3IpZihmb2xsbylvKHdpbmdcKSloKHcpbyhvcmQuKTIyIGIoV2l0aCkxNgotYihhKWcobmVnYXRpdilvKGUpZyhhcmd1bWVuKW8odCwpZih1cHApcShlci0pMzE1IDIyNDgKLXkoY2FzZSlnKHRoZSlnKHByZXZpb3VzKWgodylvKG9yZCwpZihidXQpZyhkbylnKG5vdClnKG1vKW8odilvKGUpZih0aGUpCi1pKGN1cnNvci4pNzUgMjM0OSB5IEZ0KGRvd25jYXNlLXdvcmQpZChcKE0tbFwpKTMxNSAyNDA0Ci15IEZ1KExvKW8odylvKGVyY2FzZSlkKHRoZSloKGN1cnJlbilvKHQpZyhcKG9yKWYoZm9sbG8pbyh3aW5nXCkpaCh3KW8KLShvcmQuKTE3IGIoV2l0aCkxMSBiKGEpZyhuZWdhdGl2KW8oZSlnKGFyZ3VtZW4pbyh0LClmKGxvKW8odylvKGVyY2FzZSkKLTMxNSAyNDU5IHkodGhlKTE1IGIocHJldmlvdXMpaCh3KW8ob3JkLCllKGJ1dClpKGRvKWYobm90KWcobW8pbyh2KW8oZSlmCi0odGhlKWgoY3Vyc29yLik3NSAyNTYwIHkgRnQoY2FwaXRhbGl6ZS13b3JkKWUoXChNLWNcKSkzMTUKLTI2MTUgeSBGdShDYXBpdGFsaXplKWYodGhlKWYoY3VycmVuKW8odClmKFwob3IpZyhmb2xsbylvKHdpbmdcKSloKHcpbwotKG9yZC4pMTggYihXaXRoKTExIGIoYSlmKG5lZ2F0aXYpbyhlKWgoYXJndW1lbilvKHQsKWYoY2FwaXRhbGl6ZSkzMTUKLTI2NzAgeSh0aGUpMTUgYihwcmV2aW91cyloKHcpbyhvcmQsKWUoYnV0KWkoZG8pZihub3QpZyhtbylvKHYpbyhlKWYKLSh0aGUpaChjdXJzb3IuKXAgZW9wCi0lJVBhZ2U6IDE1IDE3Ci0xNSAxNiBib3AgNzUgLTU4IGEgRnUoQ2hhcHRlcikxNSBiKDE6KWsoQ29tbWFuZCljKExpbmUpaShFZGl0aW5nKTEwNTUKLWIoMTUpNzUgMTQ5IHkgRnQob3ZlcndyaXRlLW1vZGUpMTMgYihcKFwpKTMxNSAyMDQgeSBGdShUKWwob2dnbGUpaihvKW8KLSh2KW8oZXJ3cml0ZSlnKG1vKXEoZGUuKTI0IGIoV2l0aCkxNyBiKGFuKWYoZXhwbGljaXQpaihwKXEob3NpdGl2KW8oZSlmCi0obilvKHVtZXJpYylmKGFyZ3VtZW4pbyh0LClmKHN3aXRjKW8oaGVzKTMxNSAyNTkgeSh0bykxMAotYihvKW8odilvKGVyd3JpdGUpZyhtbylxKGRlLikxOSBiKFdpdGgpMTEgYihhbilnKGV4cGxpY2l0KWkobm9uLXApcQotKG9zaXRpdilvKGUpZihuKW8odW1lcmljKWcoYXJndW1lbilvKHQsKWUoc3dpdGMpbyhoZXMpaSh0bykzMTUKLTMxNCB5KGluc2VydClrKG1vKXEoZGUuKWsoVGhpcyljKGNvbW1hbmQpZihhXDAxM2VjdHMpZyhvbmx5KWgKLUZ0KGVtYWNzKWUgRnUobW8pcShkZTspaCBGdCh2aSlnIEZ1KG1vKXEoZGUpaChkbylxKGVzKWcobylvKHYpbwotKGVyd3JpdGUpMzE1IDM2OSB5KGRpXDAxM2VyZW4pbyh0bHkpbCguKTIxIGIoRWFjKW8oaCkxNQotYihjYWxsKWgodG8pZiBGdChyZWFkbGluZVwoXCkpZiBGdShzdGFydHMpZihpbilrKGluc2VydCllKG1vKXEoZGUuKTMxNQotNDM2IHkoSW4pZyhvKW8odilvKGVyd3JpdGUpZihtbylxKGRlLCloKGMpbyhoYXJhY3RlcnMpZihiKXEob3VuZCloKHRvKWYKLUZ0KHNlbGYtaW5zZXJ0KWYgRnUocmVwbGFjZSlqKHRoZSllKHRleHQpaChhdCllKHApcShvaW4pbyh0KTMxNQotNDkxIHkocmF0aGVyKTIwIGIodGhhbiloKHB1c2hpbmcpaCh0aGUpZih0ZXh0KWYodG8pZyh0aGUpaChyaWdoKW8odC4pMzYKLWIoQ2hhcmFjdGVycykyMCBiKGIpcShvdW5kKWkodG8pZSBGdChiYWNrd2FyZC0pMzE1IDU0NgoteShkZWxldGUtY2hhcikxNCBiIEZ1KHJlcGxhY2UpaSh0aGUpZihjKW8oaGFyYWN0ZXIpZyhiKXEoZWZvcmUpZyhwKXEKLShvaW4pbyh0KWgod2l0aClmKGEpZyhzcGFjZS4pMzE1IDYxNCB5KEJ5KWcoZGVmYXVsdCwpaCh0aGlzKWYoY29tbWFuZClnCi0oaXMpaCh1bilvKGIpcShvdW5kLik3NSA3MjkgeSBGaigxLjQuNCkzMCBiKEtpbGxpbmcpMjAKLWIoQW5kKWgoWSktNSBiKGFua2luZyk3NSA4NTMgeSBGdChraWxsLWxpbmUpMTQgYihcKEMta1wpKTMxNQotOTA4IHkgRnUoS2lsbClqKHRoZSlmKHRleHQpZShmcm9tKWgocClxKG9pbilvKHQpaCh0byllKHRoZSloKGVuZCloKG9mKWYKLSh0aGUpZyhsaW5lLik3NSAxMDAyIHkgRnQoYmFja3dhcmQta2lsbC1saW5lKWUoXChDLXgpaChSdWJvdXRcKSkzMTUKLTEwNTcgeSBGdShLaWxsKWooYmFjKW8oa3cpbyhhcmQpZSh0bylmKHRoZSlpKGIpcShlZ2lubmluZyloKG9mKWUodGhlKWcKLShsaW5lLik3NSAxMTUxIHkgRnQodW5peC1saW5lLWRpc2NhcmQpZShcKEMtdVwpKTMxNSAxMjA1Ci15IEZ1KEtpbGwpayhiYWMpbyhrdylvKGFyZCllKGZyb20pZih0aGUpaShjdXJzb3IpZSh0byloKHRoZSlnKGIpcQotKGVnaW5uaW5nKWoob2YpYyh0aGUpaShjdXJyZW4pbyh0KWYobGluZS4pNzUgMTI5OSB5IEZ0KGtpbGwtd2hvbGUtbGluZSkKLWUoXChcKSkzMTUgMTM1NCB5IEZ1KEtpbGwpMjAgYihhbGwpZyhjKW8oaGFyYWN0ZXJzKWQob24paCh0aGUpaChjdXJyZW4pCi1vKHQpZihsaW5lLClpKG5vKWUobWF0dGVyKWcod2hlcmUpZyhwKXEob2luKW8odCloKGlzLikyOQotYihCeSkxOSBiKGRlZmF1bHQsKTMxNSAxNDA5IHkodGhpcylkKGlzKWYodW4pbyhiKXEob3VuZC4pNzUKLTE1MDMgeSBGdChraWxsLXdvcmQpZihcKE0tZFwpKTMxNSAxNTU4IHkgRnUoS2lsbClqKGZyb20pZChwKXEob2luKW8odCloCi0odG8pZih0aGUpaChlbmQpZyhvZilmKHRoZSloKGN1cnJlbilvKHQpZyh3KW8ob3JkLCllKG9yKWkoaWYpZyhiKXEoZXQpbwotKHcpbyhlZW4pZyh3KW8ob3JkcywpZSh0bylpKHRoZSlmKGVuZCkzMTUgMTYxMyB5KG9mKWgodGhlKWcobmV4dClnKHcpbwotKG9yZC4pMjAgYihXKWwob3JkKTE0IGIoYilxKG91bmRhcmllcylqKGFyZSllKHRoZSlnKHNhbWUpZyhhcylnCi1GdChmb3J3YXJkLXdvcmQpcCBGdSguKTc1IDE3MDcgeSBGdChiYWNrd2FyZC1raWxsLXdvcmQpZShcKE0tKTU5MgotMTcwNSB5IEZuKGgpcCA2MDMgMTY3OSA3MyAyIHYgNjAzIDE3MDcgYSBGbShERUwpcCA2MDMKLTE3MTQgViA2NzQgMTcwNSBhIEZuKGkpNjg5IDE3MDcgeSBGdChcKSkzMTUgMTc2MSB5IEZ1KEtpbGwpayh0aGUpZCh3KW8KLShvcmQpZyhiKXEoZWhpbmQpaShwKXEob2luKW8odC4pMjEgYihXKWwob3JkKTE0IGIoYilxKG91bmRhcmllcyloKGFyZSlmCi0odGhlKWgoc2FtZSlmKGFzKWcgRnQoYmFja3dhcmQtd29yZClwIEZ1KC4pNzUgMTg1NSB5Ci1GdCh1bml4LXdvcmQtcnVib3V0KWYoXChDLXdcKSkzMTUgMTkxMCB5IEZ1KEtpbGwpMTggYih0aGUpZSh3KW8ob3JkKWYKLShiKXEoZWhpbmQpaihwKXEob2luKW8odCwpZSh1c2luZyloKHdoaXRlKWYoc3BhY2UpZyhhcylnKGEpZih3KW8ob3JkKWcKLShiKXEob3VuZGFyeSlsKC4pMjMgYihUaGUpMTYgYihraWxsZWQpMzE1IDE5NjUgeSh0ZXh0KWYoaXMpZyhzYSlvKHYpbwotKGVkKWcob24pZyh0aGUpaChraWxsLXJpbmcuKTc1IDIwNTkgeSBGdChkZWxldGUtaG9yaXpvbnRhbC1zcGFjZSljCi0oXChcKSkzMTUgMjExNCB5IEZ1KERlbGV0ZSlrKGFsbClnKHNwYWNlcylmKGFuZCloKHRhYnMpZShhcm91bmQpaShwKXEKLShvaW4pbyh0LilrKEJ5KTE1IGIoZGVmYXVsdCwpaCh0aGlzKWYoaXMpaCh1bilvKGIpcShvdW5kLik3NQotMjIwOCB5IEZ0KGtpbGwtcmVnaW9uKWUoXChcKSkzMTUgMjI2MyB5IEZ1KEtpbGwpaih0aGUpZih0ZXh0KWUoaW4paQotKHRoZSlnKGN1cnJlbilvKHQpZihyZWdpb24uKTIwIGIoQnkpMTUgYihkZWZhdWx0LCloKHRoaXMpZihjb21tYW5kKWcKLShpcyloKHVuKW8oYilxKG91bmQuKTc1IDIzNTcgeSBGdChjb3B5LXJlZ2lvbi1hcy1raWxsKWQoXChcKSkzMTUKLTI0MTIgeSBGdShDb3Apbyh5KWoodGhlKWkodGV4dCllKGluKWkodGhlKWYocmVnaW9uKWcodG8pZyh0aGUpZyhraWxsKWgKLShidVwwMTNlciwpZihzbylnKGl0KWcoY2FuKWcoYilxKGUpaCh5KW8oYW5rKW8oZWQpZihyaWdoKW8odClnKGEpbyh3KW8KLShhKW8oeSlsKC4pMzE1IDI0NjYgeShCeSllKGRlZmF1bHQsKWgodGhpcylmKGNvbW1hbmQpZyhpcyloKHVuKW8oYilxCi0ob3VuZC4pNzUgMjU2MCB5IEZ0KGNvcHktYmFja3dhcmQtd29yZClkKFwoXCkpMzE1IDI2MTUKLXkgRnUoQ29wKW8oeSkxOSBiKHRoZSlnKHcpbyhvcmQpZyhiKXEoZWZvcmUpZyhwKXEob2luKW8odCloKHRvKWUodGhlKWkKLShraWxsKWgoYnVcMDEzZXIuKTMyIGIoVGhlKTE5IGIodylvKG9yZClnKGIpcShvdW5kYXJpZXMpaChhcmUpZih0aGUpMzE1Ci0yNjcwIHkoc2FtZSljKGFzKWcgRnQoYmFja3dhcmQtd29yZClwIEZ1KC4paihCeSlkKGRlZmF1bHQsKWcodGhpcyloCi0oY29tbWFuZClmKGlzKWgodW4pbyhiKXEob3VuZC4pcCBlb3AKLSUlUGFnZTogMTYgMTgKLTE2IDE3IGJvcCA3NSAtNTggYSBGdSgxNikxMjk5IGIoR05VKTE1IGIoUmVhZGxpbmUpaChMaWJyYXJ5KTc1Ci0xNDkgeSBGdChjb3B5LWZvcndhcmQtd29yZClkKFwoXCkpMzE1IDIwNCB5IEZ1KENvcClvKHkpaSh0aGUpaCh3KW8ob3JkKQotZShmb2xsbylvKHdpbmcpaihwKXEob2luKW8odClmKHRvKWYodGhlKWcoa2lsbClqKGJ1XDAxM2VyLilpKFRoZSljKHcpbwotKG9yZClmKGIpcShvdW5kYXJpZXMpaShhcmUpZSh0aGUpMzE1IDI1OSB5KHNhbWUpZyhhcylnCi1GdChmb3J3YXJkLXdvcmQpcCBGdSguKWooQnkpZChkZWZhdWx0LCloKHRoaXMpZihjb21tYW5kKWcoaXMpaCh1bilvKGIpcQotKG91bmQuKTc1IDM0MiB5IEZ0KHlhbmspZihcKEMteVwpKTMxNSAzOTcgeSBGdShZKWwoYW5rKWcodGhlKWgodG9wKWYKLShvZilmKHRoZSlpKGtpbGwpaChyaW5nKWUoaW4pbyh0bylnKHRoZSloKGJ1XDAxM2VyKWYoYXQpZihwKXEob2luKW8odC4pCi03NSA0ODEgeSBGdCh5YW5rLXBvcClnKFwoTS15XCkpMzE1IDUzNSB5IEZ1KFJvdGF0ZSlpKHRoZSloKGtpbGwtcmluZywpagotKGFuZClkKHkpbyhhbmspZyh0aGUpaChuZXcpZih0b3AuKTI2IGIoWSlsKG91KTE3IGIoY2FuKWgob25seSlnKGRvKWYKLSh0aGlzKWgoaWYpZih0aGUpaChwcmlvcikzMTUgNTkwIHkoY29tbWFuZClkKGlzKWggRnQoeWFuayllCi1GdShvciloIEZ0KHlhbmstcG9wKXAgRnUoLik3NSA2OTMgeSBGaigxLjQuNSkzMCBiKFNwKXIoZWNpZnlpbmcpMjAKLWIoTnVtZXJpYyloKEFyZ3VtZW4pbih0cyk3NSA4MDYgeSBGdChkaWdpdC1hcmd1bWVudCkxMwotYihcKClwIEZvKE0tMClwIEZ0KCwpaSBGbyhNLTEpcCBGdCgsKWYoLi4uKWggRm8oTS0tKXAKLUZ0KFwpKTMxNSA4NjEgeSBGdShBZGQpZih0aGlzKWcoZGlnaXQpZyh0bylmKHRoZSloKGFyZ3VtZW4pbyh0KWUKLShhbHJlYWR5KWkoYWNjdW0pbyh1bGF0aW5nLClnKG9yKWYoc3RhcnQpZihhKWgobmV3KWgoYXJndW1lbilvKHQuKTMxNQotOTE1IHkgRm8oTS0tKWggRnUoc3RhcnRzKWYoYSloKG5lZ2F0aXYpbyhlKWcoYXJndW1lbilvKHQuKTc1Ci05OTkgeSBGdCh1bml2ZXJzYWwtYXJndW1lbnQpZShcKFwpKTMxNSAxMDU0IHkgRnUoVGhpcylnKGlzKWgoYW5vdGhlcillCi0odylvKGEpbyh5KWcodG8pZyhzcClxKGVjaWZ5KWkoYW4pZihhcmd1bWVuKW8odC4pMTggYihJZikxMwotYih0aGlzKWcoY29tbWFuZClnKGlzKWcoZm9sbG8pbyh3KW8oZWQpZyhiKW8oeSlnKG9uZSkzMTUKLTExMDggeShvciloKG1vcmUpaChkaWdpdHMsKWcob3B0aW9uYWxseSloKHdpdGgpZihhKWcobGVhZGluZyloKG1pbilvCi0odXMpZihzaWduLClnKHRob3NlKWcoZGlnaXRzKWcoZGVcMDE0bmUpaCh0aGUpZihhci0pMzE1Ci0xMTYzIHkoZ3VtZW4pbyh0LilrKElmKWModGhlKWcoY29tbWFuZClmKGlzKWgoZm9sbG8pbyh3KW8oZWQpZyhiKW8oeSlnCi0oZGlnaXRzLClnKGV4ZWN1dGluZylnIEZ0KHVuaXZlcnNhbC1hcmd1bWVudCkzMTUgMTIxOAoteSBGdShhZ2FpbiloKGVuZHMpZyh0aGUpZyhuKW8odW1lcmljKWgoYXJndW1lbilvKHQsKWUoYnV0KWgoaXMpaAotKG90aGVyd2lzZSlmKGlnbm9yZWQuKTIyIGIoQXMpMTYgYihhKWcoc3ApcShlY2lhbCloKGNhc2UsKTMxNQotMTI3MyB5KGlmKWcodGhpcylnKGNvbW1hbmQpZihpcyloKGltbWVkaWF0ZWx5KWgoZm9sbG8pbyh3KW8oZWQpZihiKW8oeSkKLWYoYSlnKGMpbyhoYXJhY3RlcilnKHRoYXQpZyhpcyloKG5laXRoZXIpZyhhKWYoZGlnaXQpMzE1Ci0xMzI4IHkob3IpZChtaW4pbyh1cylpKHNpZ24sKWYodGhlKWcoYXJndW1lbilvKHQpZyhjb3VuKW8odClmKGZvciloCi0odGhlKWcobmV4dClnKGNvbW1hbmQpZyhpcylnKG0pbyh1bHRpcGxpZWQpaihiKW8oeSlkKGZvdXIuKTMxNQotMTM4MiB5KFRoZSkxOSBiKGFyZ3VtZW4pbyh0KWYoY291bilvKHQpZyhpcyloKGluaXRpYWxseSlqKG9uZSwpZChzbylmCi0oZXhlY3V0aW5nKWkodGhpcylmKGZ1bmN0aW9uKWgodGhlKWUoXDAxNHJzdCloKHRpbWUpMzE1Ci0xNDM3IHkobWFrKW8oZXMpYyh0aGUpaChhcmd1bWVuKW8odClmKGNvdW4pbyh0KWgoZm91ciwpZihhKWgoc2Vjb25kKWcKLSh0aW1lKWcobWFrKW8oZXMpZyh0aGUpZyhhcmd1bWVuKW8odClmKGNvdW4pbyh0KWcoc2l4LSkzMTUKLTE0OTIgeSh0ZWVuLClnKGFuZClnKHNvKWcob24uKTIwIGIoQnkpMTUgYihkZWZhdWx0LCloKHRoaXMpZihpcyloKG5vdClmCi0oYilxKG91bmQpaCh0bylmKGEpZyhrKW8oZXkpbCguKTc1IDE1OTUgeSBGaigxLjQuNikzMAotYihMZXR0aW5nKTIwIGIoUmVhZGxpbmUpZyhUKW4oeXApcihlKWgoRiktNSBiKG9yKTE5IGIoWSktNQotYihvdSk3NSAxNzA4IHkgRnQoY29tcGxldGUpMTQgYihcKCkzMDUgMTcwNiB5IEZuKGgpcAotMzE3IDE2ODAgNzQgMiB2IDMxNyAxNzA4IGEgRm0oVCltKEFCKXAgMzE3IDE3MTUgViAzODkKLTE3MDYgYSBGbihpKTQwNCAxNzA4IHkgRnQoXCkpMzE1IDE3NjIgeSBGdShBKW8odHRlbXB0KWModG8paChwKXEKLShlcmZvcm0pZyhjb21wbGV0aW9uKWkob24pZSh0aGUpZyh0ZXh0KWcoYilxKGVmb3JlKWgocClxKG9pbilvKHQuKTE5Ci1iKFRoZSkxMSBiKGFjdHVhbCloKGNvbXBsZXRpb24pMzE1IDE4MTcgeShwKXEoZXJmb3JtZWQpaihpcyloCi0oYXBwbGljYXRpb24tc3ApcShlY2lcMDE0KXEoYy4pMjMgYihUaGUpMTUgYihkZWZhdWx0KWgoaXMpZyhcMDE0bGVuYW1lKQotZyhjb21wbGV0aW9uLik3NSAxOTAxIHkgRnQocG9zc2libGUtY29tcGxldGlvbnMpYyhcKE0tP1wpKTMxNQotMTk1NSB5IEZ1KExpc3Qpayh0aGUpZihwKXEob3NzaWJsZSlpKGNvbXBsZXRpb25zKWYob2YpZih0aGUpZyh0ZXh0KWcoYikKLXEoZWZvcmUpaChwKXEob2luKW8odC4pNzUgMjAzOSB5IEZ0KGluc2VydC1jb21wbGV0aW9ucylkKFwoTS0qXCkpMzE1Ci0yMDkzIHkgRnUoSW5zZXJ0KWooYWxsKWcoY29tcGxldGlvbnMpZyhvZilmKHRoZSlnKHRleHQpZyhiKXEoZWZvcmUpaChwKQotcShvaW4pbyh0KWYodGhhdClnKHcpbyhvdWxkKWgoaGEpbyh2KW8oZSlmKGIpcShlZW4paChnZW5lcmF0ZWQpMzE1Ci0yMTQ4IHkoYilvKHkpZiBGdChwb3NzaWJsZS1jb21wbGV0aW9ucylwIEZ1KC4pNzUgMjIzMgoteSBGdChtZW51LWNvbXBsZXRlKWUoXChcKSkzMTUgMjI4NiB5IEZ1KFNpbWlsYXIpZyh0bylmCi1GdChjb21wbGV0ZSlwIEZ1KCwpZihidXQpaChyZXBsYWNlcyloKHRoZSlmKHcpbyhvcmQpZih0bylnKGIpcShlKWkKLShjb21wbGV0ZWQpZih3aXRoKWgoYSllKHNpbmdsZSlqKG1hdGMpbyhoKTMxNSAyMzQxIHkoZnJvbSlrKHRoZSloKGxpc3QpCi1oKG9mKWUocClxKG9zc2libGUpaihjb21wbGV0aW9ucy4pMzIgYihSZXApcShlYXRlZCkxOQotYihleGVjdXRpb24paChvZilmIEZ0KG1lbnUtY29tcGxldGUpMzE1IDIzOTYgeSBGdShzdGVwcyloKHRocm91Z2gpZwotKHRoZSlnKGxpc3QpaChvZilmKHApcShvc3NpYmxlKWkoY29tcGxldGlvbnMsKWcoaW5zZXJ0aW5nKWYoZWFjKW8oaClmCi0obWF0YylvKGgpZihpbilpKHR1cm4uKTMxNSAyNDUxIHkoQSlvKHQpZCh0aGUpZyhlbmQpaChvZilmKHRoZSloKGxpc3QpZwotKG9mKWYoY29tcGxldGlvbnMsKWkodGhlKWUoYilxKGVsbClqKGlzKWQocnVuZyloKFwoc3ViKXMoamVjdClmKHRvKWYKLSh0aGUpaShzZXR0aW5nKTMxNSAyNTA2IHkob2YpZiBGdChiZWxsLXN0eWxlKXAgRnUoXCkpZShhbmQpaSh0aGUpZwotKG9yaWdpbmFsKWgodGV4dClmKGlzKWcocmVzdG9yZWQuKTI4IGIoQW4pMTkgYihhcmd1bWVuKW8odCllKG9mKWcKLUZrKG4paSBGdShtbylvKHYpbyhlcyllIEZrKG4pMzE1IDI1NjAgeSBGdShwKXEob3NpdGlvbnMpaChmb3J3KW8oYXJkKWUKLShpbilqKHRoZSllKGxpc3QpaChvZilmKG1hdGMpbyhoZXM7KWgoYSlmKG5lZ2F0aXYpbyhlKWcoYXJndW1lbilvKHQpZwotKG1hKW8oeSlnKGIpcShlKWgodXNlZClnKHRvKTMxNSAyNjE1IHkobW8pbyh2KW8oZSlnKGJhYylvKGt3KW8oYXJkKWgKLSh0aHJvdWdoKWcodGhlKWcobGlzdC4pMzIgYihUaGlzKTIwIGIoY29tbWFuZClmKGlzKWgoaW4pbyh0ZW5kZWQpZyh0bylmCi0oYilxKGUpaChiKXEob3VuZClnKHRvKTMxNSAyNjY4IHkgRm4oaClwIDMyNyAyNjQyIFYgMzI3Ci0yNjcwIGEgRm0oVCltKEFCKXAgMzI3IDI2NzggViAzOTkgMjY2OCBhIEZuKGkpNDE0IDI2NzAKLXkgRnUoLCkxNSBiKGJ1dClnKGlzKWgodW4pbyhiKXEob3VuZClnKGIpbyh5KWYoZGVmYXVsdC4pcAotZW9wCi0lJVBhZ2U6IDE3IDE5Ci0xNyAxOCBib3AgNzUgLTU4IGEgRnUoQ2hhcHRlcikxNSBiKDE6KWsoQ29tbWFuZCljKExpbmUpaShFZGl0aW5nKTEwNTUKLWIoMTcpNzUgMTQ5IHkgRnQoZGVsZXRlLWNoYXItb3ItbGlzdCkxMyBiKFwoXCkpMzE1IDIwNAoteSBGdShEZWxldGVzKWgodGhlKWYoYylvKGhhcmFjdGVyKWcodW5kZXIpaCh0aGUpZyhjdXJzb3IpZihpZiloKG5vdClmCi0oYXQpZyh0aGUpZyhiKXEoZWdpbm5pbmcpaihvcilkKGVuZCloKG9mKWYodGhlKWcobGluZSkzMTUKLTI1OSB5KFwobGlrKW8oZSlpIEZ0KGRlbGV0ZS1jaGFyKXAgRnUoXCkuKWooSWYpZChhdClmKHRoZSloKGVuZClnKG9mKWYKLSh0aGUpZyhsaW5lLClpKGIpcShlaGEpbyh2KW8oZXMpZihpZGVuKW8odGljYWxseSlpKHRvKWQKLUZ0KHBvc3NpYmxlLSkzMTUgMzE0IHkoY29tcGxldGlvbnMpcCBGdSguKWsoVGhpcyllKGNvbW1hbmQpZihpcyloKHVuKW8KLShiKXEob3VuZClnKGIpbyh5KWYoZGVmYXVsdC4pNzUgNDI4IHkgRmooMS40LjcpMzAgYihLZXliKXIob2FyZCkyMAotYihNYWNyb3MpNzUgNTUxIHkgRnQoc3RhcnQta2JkLW1hY3JvKTEzIGIoXChDLXgpaShcKFwpKTMxNQotNjA2IHkgRnUoQmVnaW4paChzYSlvKHZpbmcpZih0aGUpaChjKW8oaGFyYWN0ZXJzKWUodClvKHlwKXEoZWQpaShpbilvCi0odG8pZih0aGUpZyhjdXJyZW4pbyh0KWcoaylvKGV5YilxKG9hcmQpZyhtYWNyby4pNzUgNjk5Ci15IEZ0KGVuZC1rYmQtbWFjcm8pZShcKEMteClpKFwpXCkpMzE1IDc1NCB5IEZ1KFN0b3ApZihzYSlvKHZpbmcpZih0aGUpaAotKGMpbyhoYXJhY3RlcnMpZih0KW8oeXApcShlZCloKGluKW8odG8pZih0aGUpaChjdXJyZW4pbyh0KWcoaylvKGV5YilxCi0ob2FyZClmKG1hY3JvKWcoYW5kKWgoc2Epbyh2KW8oZSlmKHRoZSkzMTUgODA5IHkoZGVcMDE0bml0aW9uLik3NQotOTAyIHkgRnQoY2FsbC1sYXN0LWtiZC1tYWNybylnKFwoQy14KWgoZVwpKTMxNSA5NTcgeQotRnUoUmUtZXhlY3V0ZSlrKHRoZSlnKGxhc3QpZihrKW8oZXliKXEob2FyZCloKG1hY3JvKWYoZGVcMDE0bmVkLClpKGIpbwotKHkpZShtYWtpbmcpaCh0aGUpZyhjKW8oaGFyYWN0ZXJzKWUoaW4paih0aGUpMzE1IDEwMTIKLXkobWFjcm8pMTQgYihhcHApcShlYXIpaShhcylmKGlmKWcodClvKHlwKXEoZWQpaChhdCllKHRoZSlpKGspbyhleWIpcQotKG9hcmQuKTc1IDExMjYgeSBGaigxLjQuOCkzMCBiKFNvbWUpMjAgYihNaXNjZWxsYW5lb3VzKWgoQ29tbWFuZHMpNzUKLTEyNDkgeSBGdChyZS1yZWFkLWluaXQtZmlsZSkxMyBiKFwoQy14KWgoQy1yXCkpMzE1IDEzMDQKLXkgRnUoUmVhZClkKGluKWcodGhlKWcoY29uKW8odGVuKW8odHMpZyhvZilmKHRoZSloIEZrKGlucHV0cmMpawotRnUoXDAxNGxlLClkKGFuZClnKGluY29ycClxKG9yYXRlKWYoYW4pbyh5KWYoYmluZGluZ3MpaihvcillKHYpbQotKGFyaWFibGUpMzE1IDEzNTggeShhc3NpZ25tZW4pbyh0cylrKGZvdW5kKWgodGhlcmUuKTc1Ci0xNDUyIHkgRnQoYWJvcnQpZShcKEMtZ1wpKTMxNSAxNTA3IHkgRnUoQWIpcShvcnQpZih0aGUpZyhjdXJyZW4pbyh0KWgKLShlZGl0aW5nKWcoY29tbWFuZClmKGFuZCloKHJpbmcpZih0aGUpaCh0ZXJtaW5hbCdzKWYoYilxKGVsbClpKFwoc3ViKXMKLShqZWN0KWUodG8pZyh0aGUpMzE1IDE1NjEgeShzZXR0aW5nKWkob2YpZyBGdChiZWxsLXN0eWxlKXAKLUZ1KFwpLik3NSAxNjU1IHkgRnQoZG8tdXBwZXJjYXNlLXZlcnNpb24pZChcKE0tYSwpaihNLWIsKWYoTS0pcAotRmsoeClwIEZ0KCwpaCguLi5cKSkzMTUgMTcxMCB5IEZ1KElmKWYodGhlKWcobWV0YVwwMTRlZClnKGMpbyhoYXJhY3RlcikKLWYgRmsoeClrIEZ1KGlzKWQobG8pbyh3KW8oZXJjYXNlLClnKHJ1bilnKHRoZSlnKGNvbW1hbmQpZih0aGF0KWgoaXMpZwotKGIpcShvdW5kKWgodG8pZSh0aGUpMzE1IDE3NjQgeShjb3JyZXNwKXEob25kaW5nKWoodXBwKXEoZXJjYXNlKWcoYylvCi0oaGFyYWN0ZXIuKTc1IDE4NTggeSBGdChwcmVmaXgtbWV0YSllKFwoKTM3NyAxODU2IHkgRm4oaClwCi0zODkgMTgzMCA3MCAyIHYgMzg5IDE4NTggYSBGbShFU0MpcCAzODkgMTg2NiBWIDQ1NiAxODU2Ci1hIEZuKGkpNDcxIDE4NTggeSBGdChcKSkzMTUgMTkxMyB5IEZ1KE1ldGFmeSlrKHRoZSloKG5leHQpZyhjKW8KLShoYXJhY3RlcilmKHQpbyh5cClxKGVkLikzMCBiKFRoaXMpMjAgYihpcylmKGZvcilmKGspbyhleWIpcShvYXJkcyloCi0od2l0aG91dClnKGEpZihtZXRhKWcoaylvKGV5KWwoLikzMTUgMTk2OCB5KFQpbyh5cGluZyllKGApNDg1Ci0xOTY2IHkgRm4oaClwIDQ5NiAxOTM5IFYgNDk2IDE5NjggYSBGbShFU0MpcCA0OTYgMTk3NQotViA1NjMgMTk2NiBhIEZuKGkpNTkzIDE5NjggeSBGdChmKXAgRnUoJylmKGlzKWgoZXF1aXYpbShhbGVuKW8odCloKHRvKWQKLSh0KW8oeXBpbmcpaSBGbyhNLWYpcCBGdSguKTc1IDIwNjEgeSBGdCh1bmRvKWYoXChDLV8pZihvciloKEMteClnCi0oQy11XCkpMzE1IDIxMTYgeSBGdShJbmNyZW1lbilvKHRhbCloKHVuZG8sKWYoc2VwYXJhdGVseSloKHJlbWVtKW8oYilxCi0oZXJlZClnKGZvcillKGVhYylvKGgpaChsaW5lLik3NSAyMjA5IHkgRnQocmV2ZXJ0LWxpbmUpZihcKE0tclwpKTMxNQotMjI2NCB5IEZ1KFVuZG8paihhbGwpZyhjKW8oaGFuZ2VzKWcobWFkZSlmKHRvKWcodGhpcyloKGxpbmUuKTI2Ci1iKFRoaXMpMTcgYihpcylnKGxpaylvKGUpaChleGVjdXRpbmcpZih0aGUpZyBGdCh1bmRvKWYKLUZ1KGNvbW1hbmQpMzE1IDIzMTkgeShlbm91Z2gpZyh0aW1lcylmKHRvKWcoZ2V0KWYoYmFjKW8oayloKHRvKWcodGhlKWcKLShiKXEoZWdpbm5pbmcuKTc1IDI0MTIgeSBGdCh0aWxkZS1leHBhbmQpZihcKE0tflwpKTMxNQotMjQ2NyB5IEZ1KFApbyhlcmZvcm0pZyh0aWxkZSlqKGV4cGFuc2lvbilmKG9uKWYodGhlKWcoY3VycmVuKW8odClnKHcpbwotKG9yZC4pNzUgMjU2MCB5IEZ0KHNldC1tYXJrKWYoXChDLUBcKSkzMTUgMjYxNSB5IEZ1KFNldClpKHRoZSloKG1hcmspZgotKHRvKWYodGhlKWkocClxKG9pbilvKHQuKTI0IGIoSWYpMTcgYihhKWYobilvKHVtZXJpYyloKGFyZ3VtZW4pbyh0KWYKLShpcylnKHN1cHBsaWVkLClqKHRoZSllKG1hcmspZShpcylpKHNldCkzMTUgMjY3MCB5KHRvKWUodGhhdClmKHApcQotKG9zaXRpb24uKXAgZW9wCi0lJVBhZ2U6IDE4IDIwCi0xOCAxOSBib3AgNzUgLTU4IGEgRnUoMTgpMTI5OSBiKEdOVSkxNSBiKFJlYWRsaW5lKWgoTGlicmFyeSk3NQotMTQ5IHkgRnQoZXhjaGFuZ2UtcG9pbnQtYW5kLW1hcmspYyhcKEMteClqKEMteFwpKTMxNQotMjA0IHkgRnUoU3cpbyhhcClnKHRoZSloKHApcShvaW4pbyh0KWcod2l0aClnKHRoZSlnKG1hcmsuKWsoVGhlKWMKLShjdXJyZW4pbyh0KWYoY3Vyc29yKWgocClxKG9zaXRpb24pZyhpcylnKHNldClnKHRvKWYodGhlKWcoc2Epbyh2KW8oZWQpCi0zMTUgMjU5IHkocClxKG9zaXRpb24sKWgoYW5kKWYodGhlKWgob2xkKWYoY3Vyc29yKWcocClxKG9zaXRpb24paChpcylnCi0oc2Epbyh2KW8oZWQpZihhcylnKHRoZSlnKG1hcmsuKTc1IDM0NyB5IEZ0KGNoYXJhY3Rlci1zZWFyY2gpZShcKEMtXVwpKQotMzE1IDQwMiB5IEZ1KEEpZihjKW8oaGFyYWN0ZXIpZyhpcyloKHJlYWQpZyhhbmQpZihwKXEob2luKW8odCloKGlzKWcKLShtbylvKHYpbyhlZClmKHRvKWcodGhlKWcobmV4dCloKG8pcShjY3VycmVuY2UpZyhvZilmKHRoYXQpZyhjKW8KLShoYXJhY3Rlci4pMzE1IDQ1NiB5KEEpaihuZWdhdGl2KW8oZSloKGNvdW4pbyh0KWYoc2VhcmMpbyhoZXMpZyhmb3IpZgotKHByZXZpb3VzKWkobylxKGNjdXJyZW5jZXMuKTc1IDU0NCB5IEZ0KGNoYXJhY3Rlci1zZWFyY2gtYmFja3dhcmQpYwotKFwoTS1DLV1cKSkzMTUgNTk5IHkgRnUoQSkyMiBiKGMpbyhoYXJhY3RlcilnKGlzKWgocmVhZClmKGFuZCloKHApcQotKG9pbilvKHQpZyhpcylnKG1vKW8odilvKGVkKWYodG8pZyh0aGUpZyhwcmV2aW91cyloKG8pcShjY3VycmVuY2UpaChvZikKLWUodGhhdCkzMTUgNjU0IHkoYylvKGhhcmFjdGVyLilkKEEpYyhuZWdhdGl2KW8oZSloKGNvdW4pbyh0KWYoc2VhcmMpbwotKGhlcylnKGZvcilmKHN1YnNlcXVlbilvKHQpaShvKXEoY2N1cnJlbmNlcy4pNzUgNzQxIHkKLUZ0KGluc2VydC1jb21tZW50KWQoXChNLSNcKSkzMTUgNzk2IHkgRnUoV2l0aG91dCkxOCBiKGEpZihuKW8odW1lcmljKWkKLShhcmd1bWVuKW8odCwpZSh0aGUpaCh2KW0oYWx1ZSloKG9mKWYodGhlKWYgRnQoY29tbWVudC1iZWdpbilmCi1GdSh2KW0oYXJpYWJsZSlrKGlzKWUoaW4tKTMxNSA4NTEgeShzZXJ0ZWQpZShhdClmKHRoZSloKGIpcShlZ2lubmluZylpCi0ob2YpZCh0aGUpaChjdXJyZW4pbyh0KWcobGluZS4pMjMgYihJZikxNiBiKGEpZyhuKW8odW1lcmljKWgoYXJndW1lbilvCi0odCllKGlzKWgoc3VwcGxpZWQsKTMxNSA5MDYgeSh0aGlzKWooY29tbWFuZClmKGFjdHMpZyhhcylmKGEpaCh0b2dnbGU6KQotMjYgYihpZikxOSBiKHRoZSlmKGMpbyhoYXJhY3RlcnMpZyhhdClmKHRoZSlpKGIpcShlZ2lubmluZyloKG9mKWUodGhlKWcKLShsaW5lKTMxNSA5NjAgeShkbylkKG5vdClnKG1hdGMpbyhoKWcodGhlKWcodiltKGFsdWUpaShvZillCi1GdChjb21tZW50LWJlZ2luKXAgRnUoLCllKHRoZSlpKHYpbShhbHVlKWkoaXMpZihpbnNlcnRlZCwpZihvdGhlcndpc2UpaAotKHRoZSkzMTUgMTAxNSB5KGMpbyhoYXJhY3RlcnMpaihpbilpIEZ0KGNvbW1lbnQtYmVnaW4pZAotRnUoYXJlKWkoZGVsZXRlZClpKGZyb20pZCh0aGUpaChiKXEoZWdpbm5pbmcpaShvZillKHRoZSlnKGxpbmUuKTM2Ci1iKEluKTMxNSAxMDcwIHkoZWl0aGVyKTE2IGIoY2FzZSwpZih0aGUpZyhsaW5lKWkoaXMpZihhY2NlcHRlZClmKGFzKWcKLShpZiloKGEpZihuZXdsaW5lKWkoaGFkKWUoYilxKGVlbilpKHQpbyh5cClxKGVkLik3NSAxMTU4Ci15IEZ0KGR1bXAtZnVuY3Rpb25zKWMoXChcKSkzMTUgMTIxMyB5IEZ1KFByaW4pbyh0KWcoYWxsKWgob2YpZih0aGUpZwotKGZ1bmN0aW9ucyloKGFuZClnKHRoZWlyKWcoaylvKGV5KWYoYmluZGluZ3MpaSh0bylkKHRoZSlpKFJlYWRsaW5lKWcKLShvdXRwdXQpZihzdHJlYW0uKTMxNSAxMjY3IHkoSWYpaihhKWcobilvKHVtZXJpYylnKGFyZ3VtZW4pbyh0KWYoaXMpaQotKHN1cHBsaWVkLCloKHRoZSllKG91dHB1dClmKGlzKWkoZm9ybWF0dGVkKWQoaW4paihzdWMpbyhoKWYoYSlnKHcpbyhhKW8KLSh5KWYodGhhdCkzMTUgMTMyMiB5KGl0KWcoY2FuKWgoYilxKGUpZyhtYWRlKWYocGFydClmKG9mKWgoYW4pZwotRmsoaW5wdXRyYylrIEZ1KFwwMTRsZS4paShUaGlzKTE2IGIoY29tbWFuZClmKGlzKWgodW4pbyhiKXEob3VuZClnKGIpbwotKHkpZihkZWZhdWx0Lik3NSAxNDEwIHkgRnQoZHVtcC12YXJpYWJsZXMpZShcKFwpKTMxNQotMTQ2NSB5IEZ1KFByaW4pbyh0KWUoYWxsKWcob2YpZih0aGUpaChzZXR0YWJsZSlnKHYpbShhcmlhYmxlcyloKGFuZClmCi0odGhlaXIpZyh2KW0oYWx1ZXMpaCh0byllKHRoZSloKFJlYWRsaW5lKWgob3V0cHV0KWUoc3RyZWFtLikzMTUKLTE1MTkgeShJZikxNiBiKGEpZyhuKW8odW1lcmljKWcoYXJndW1lbilvKHQpZihpcylpKHN1cHBsaWVkLCloKHRoZSllCi0ob3V0cHV0KWYoaXMpaShmb3JtYXR0ZWQpZChpbilqKHN1YylvKGgpZihhKWcodylvKGEpbyh5KWYodGhhdCkzMTUKLTE1NzQgeShpdClnKGNhbiloKGIpcShlKWcobWFkZSlmKHBhcnQpZihvZiloKGFuKWcgRmsoaW5wdXRyYylrCi1GdShcMDE0bGUuKWkoVGhpcykxNiBiKGNvbW1hbmQpZihpcyloKHVuKW8oYilxKG91bmQpZyhiKW8oeSlmKGRlZmF1bHQuKQotNzUgMTY2MiB5IEZ0KGR1bXAtbWFjcm9zKWYoXChcKSkzMTUgMTcxNyB5IEZ1KFByaW4pbyh0KWooYWxsKWgob2YpZQotKHRoZSloKFJlYWRsaW5lKWgoaylvKGV5KWYoc2VxdWVuY2VzKWgoYilxKG91bmQpZyh0byllKG1hY3JvcylnKGFuZCloCi0odGhlKWcoc3RyaW5ncylnKHRoZXkpMzE1IDE3NzEgeShvdXRwdXQuKTI2IGIoSWYpMTggYihhKWYobilvKHVtZXJpYyloCi0oYXJndW1lbilvKHQpZihpcyloKHN1cHBsaWVkLClpKHRoZSlkKG91dHB1dClnKGlzKWgoZm9ybWF0dGVkKWUoaW4pagotKHN1YylvKGgpZShhKTMxNSAxODI2IHkodylvKGEpbyh5KWQodGhhdClnKGl0KWkoY2FuKWYoYilxKGUpZyhtYWRlKWcKLShwYXJ0KWcob2YpZihhbiloIEZrKGlucHV0cmMpayBGdShcMDE0bGUuKWkoVGhpcykxNSBiKGNvbW1hbmQpZyhpcyloCi0odW4pbyhiKXEob3VuZClnKGIpbyh5KTMxNSAxODgxIHkoZGVmYXVsdC4pNzUgMTk2OSB5Ci1GdChlbWFjcy1lZGl0aW5nLW1vZGUpZChcKEMtZVwpKTMxNSAyMDI0IHkgRnUoV2hlbilqKGluKWcKLUZ0KHZpKWUgRnUoY29tbWFuZClpKG1vKXEoZGUsKWYodGhpcylnKGNhdXNlcyloKGEpZihzd2l0YylvKGgpZyh0bylnCi1GdChlbWFjcylmIEZ1KGVkaXRpbmcpaihtbylxKGRlLik3NSAyMTExIHkgRnQodmktZWRpdGluZy1tb2RlKWMKLShcKE0tQy1qXCkpMzE1IDIxNjYgeSBGdShXaGVuKWooaW4pZyBGdChlbWFjcyllIEZ1KGVkaXRpbmcpaihtbylxKGRlLCllCi0odGhpcylnKGNhdXNlcyloKGEpZihzd2l0YylvKGgpZyh0bylnIEZ0KHZpKWYgRnUoZWRpdGluZylqKG1vKXEoZGUuKTc1Ci0yMjkwIHkgRnMoMS41KTMzIGIoUmVhZGxpbmUpMjMgYih2aSloKE1vKXIoZGUpMTM3IDIzODUKLXkgRnUoV2hpbGUpMTMgYih0aGUpZihSZWFkbGluZSlpKGxpYnJhcnkpZShkbylxKGVzKWcobm90KWcoaGEpbyh2KW8oZSlmCi0oYSloKGZ1bGwpaChzZXQpZihvZilmIEZ0KHZpKWcgRnUoZWRpdGluZylqKGZ1bmN0aW9ucywpZihpdClmKGRvKXEoZXMpZwotKGNvbilvKHRhaW4pNzUgMjQ0MCB5KGVub3VnaCkxNyBiKHRvKWcoYWxsbylvKHcpZyhzaW1wbGUpaChlZGl0aW5nKWgKLShvZilkKHRoZSlpKGxpbmUuKTI3IGIoVGhlKTE3IGIoUmVhZGxpbmUpaCBGdCh2aSlmIEZ1KG1vKXEoZGUpZyhiKXEKLShlaGEpbyh2KW8oZXMpZyhhcylnKHNwKXEoZWNpXDAxNGVkKWkoaW4pNzUgMjQ5NSB5KHRoZSljCi1GcChwb3NpeClnIEZ1KDEwMDMuMilmKHN0YW5kYXJkLikxMzcgMjU2MCB5KEluKWgob3JkZXIpZyh0bylmKHN3aXRjKW8KLShoKWcoaW4pbyh0ZXJhY3RpdilvKGVseSlpKGIpcShldClvKHcpbyhlZW4pZiBGdChlbWFjcyllCi1GdShhbmQpaSBGdCh2aSlmIEZ1KGVkaXRpbmcpaShtbylxKGRlcywpZih1c2UpZih0aGUpaChjb21tYW5kKTc1Ci0yNjE1IHkgRm8oTS1DLWopaiBGdShcKGIpcShvdW5kKWkodG8pZShlbWFjcy1lZGl0aW5nLW1vKXEoZGUpaih3aGVuKWUKLShpbiloIEZ0KHZpKWYgRnUobW8pcShkZSlnKGFuZClnKHRvKWYodmktZWRpdGluZy1tbylxKGRlKWsoaW4pZQotRnQoZW1hY3MpNzUgMjY3MCB5IEZ1KG1vKXEoZGVcKS4pZyhUaGUpMTUgYihSZWFkbGluZSlpKGRlZmF1bHQpZihpcylmCi1GdChlbWFjcylnIEZ1KG1vKXEoZGUuKXAgZW9wCi0lJVBhZ2U6IDE5IDIxCi0xOSAyMCBib3AgNzUgLTU4IGEgRnUoQ2hhcHRlcikxNSBiKDE6KWsoQ29tbWFuZCljKExpbmUpaShFZGl0aW5nKTEwNTUKLWIoMTkpMTM3IDE0OSB5KFdoZW4pMTYgYih5KW8ob3UpZShlbilvKHRlciloKGEpZyhsaW5lKWkoaW4pZQotRnQodmkpZyBGdShtbylxKGRlLClnKHkpbyhvdSlnKGFyZSlmKGFscmVhZHkpaShwbGFjZWQpZyhpbilnCi0oYGluc2VydGlvbicpZihtbylxKGRlLClnKGFzKWcoaWYpZyh5KW8ob3UpNzUgMjA0IHkoaGFkKWUodClvKHlwKXEoZWQpaAotKGFuKWYoYClwIEZ0KGkpcCBGdSgnLikxOCBiKFByZXNzaW5nKTYwOCAyMDIgeSBGbihoKXAKLTYyMCAxNzYgNzAgMiB2IDYyMCAyMDQgYSBGbShFU0MpcCA2MjAgMjEyIFYgNjg3IDIwMiBhCi1GbihpKTcxNSAyMDQgeSBGdShzd2l0YylvKGhlcykxMyBiKHkpbyhvdSlnKGluKW8odG8pZyhgY29tbWFuZCcpZihtbylxCi0oZGUsKWkod2hlcmUpZih5KW8ob3UpZyhjYW4pZyhlZGl0KWgodGhlKTc1IDI1OSB5KHRleHQpaShvZiloKHRoZSlnCi0obGluZSloKHdpdGgpZyh0aGUpZihzdGFuZGFyZClmIEZ0KHZpKWggRnUobW8pbyh2KW8oZW1lbilvKHQpZihrKW8KLShleXMsKWcobW8pbyh2KW8oZSlnKHRvKWgocHJldmlvdXMpZyhoaXN0b3J5KWcobGluZXMpaSh3aXRoKTc1Ci0zMTQgeShgKXAgRnQoaylwIEZ1KCcpMTQgYihhbmQpaShzdWJzZXF1ZW4pbyh0KWYobGluZXMpaSh3aXRoKWYoYClwCi1GdChqKXAgRnUoJywpZShhbmQpaChzbylnKGZvcnRoLilwIGVvcAotJSVQYWdlOiAyMCAyMgotMjAgMjEgYm9wIDc1IC01OCBhIEZ1KDIwKTEyOTkgYihHTlUpMTUgYihSZWFkbGluZSloKExpYnJhcnkpcAotZW9wCi0lJVBhZ2U6IDIxIDIzCi0yMSAyMiBib3AgNzUgLTU4IGEgRnUoQ2hhcHRlcikxNSBiKDI6KWsoUHJvZ3JhbW1pbmcpYyh3aXRoKWcoR05VKWcKLShSZWFkbGluZSk4NDMgYigyMSk3NSAxNDkgeSBGcSgyKTQxIGIoUHJvZ3JhbW1pbmcpMjgKLWIod2l0aCllKEdOVSlpKFJlYWRsaW5lKTEzNyAyNjcgeSBGdShUaGlzKTE4IGIoYylvKGhhcHRlcilmKGRlc2NyaWIpcQotKGVzKWgodGhlKWYoaW4pbyh0ZXJmYWNlKWcoYilxKGV0KW8odylvKGVlbiloKHRoZSlmIEZwKGdudSlnCi1GdShSZWFkbGluZSloKExpYnJhcnkpZihhbmQpZyhvdGhlcilnKHByby0pNzUgMzIyIHkoZ3JhbXMuKWgoSWYpMTEKLWIoeSlvKG91KWcoYXJlKWcoYSlnKHByb2dyYW1tZXIsKWYoYW5kKWkoeSlvKG91KWYod2lzaClnKHRvKWcoaW5jbHVkZSlqCi0odGhlKWQoZmVhdHVyZXMpZyhmb3VuZClnKGluKWkgRnAoZ251KWUgRnUoUmVhZGxpbmUpNzUKLTM3NyB5KHN1YylvKGgpaChhcylmKGNvbXBsZXRpb24sKWgobGluZSloKGVkaXRpbmcsKWcoYW5kKWYoaW4pbwotKHRlcmFjdGl2KW8oZSlnKGhpc3RvcnkpZihtYW5pcHVsYXRpb24paShpbilmKHkpbyhvdXIpZihvKW8od24pZwotKHByb2dyYW1zLCk3NSA0MzIgeSh0aGlzKTE2IGIoc2VjdGlvbilmKGlzKWgoZm9yKWYoeSlvKG91Lik3NQotNTYxIHkgRnMoMi4xKTMzIGIoQmFzaWMpMjIgYihCZWhhKW4odmlvcikxMzcgNjU4IHkgRnUoTWFuKW8oeSkxNQotYihwcm9ncmFtcylmKHBybylvKHZpZGUpaShhKWYoY29tbWFuZClnKGxpbmUpaShpbilvKHRlcmZhY2UsKWUoc3VjKW8oaCkKLWgoYXMpZiBGdChtYWlsKXAgRnUoLClmIEZ0KGZ0cClwIEZ1KCwpaChhbmQpZyBGdChzaClwCi1GdSguKTIwIGIoRilsKG9yKTE1IGIoc3VjKW8oaCk3NSA3MTMgeShwcm9ncmFtcywpZSh0aGUpaChkZWZhdWx0KWgoYilxCi0oZWhhKW8odmlvdXIpZyhvZilmKFJlYWRsaW5lKWkoaXMpZShzdVwwMTZjaWVuKW8odC4pMjEKLWIoVGhpcykxNCBiKHNlY3Rpb24paChkZXNjcmliKXEoZXMpaChobylvKHcpZSh0bylnKHVzZSk3NQotNzY4IHkoUmVhZGxpbmUpayhpbiloKHRoZSllKHNpbXBsZXN0KWgodylvKGEpbyh5KWUocClxKG9zc2libGUsKWoocClxCi0oZXJoYXBzKWYodG8pZihyZXBsYWNlKWgoY2FsbHMpZyhpbilnKHkpbyhvdXIpZihjbylxKGRlKWgodG8pZQotRnQoZ2V0c1woXCkpZyBGdShvcik3NSA4MjIgeSBGdChmZ2V0c1woXCkpcCBGdSguKTEzNwotODkwIHkoVGhlKWgoZnVuY3Rpb24pZyBGdChyZWFkbGluZVwoXCkpZSBGdShwcmluKW8odHMpaChhKWcocHJvbXB0KWcKLUZrKHByb21wdCloIEZ1KGFuZClmKHRoZW4paChyZWFkcylmKGFuZCloKHJldHVybnMpZihhKWcoc2luZ2xlKTc1Ci05NDUgeShsaW5lKWkob2YpZSh0ZXh0KWcoZnJvbSlmKHRoZSlpKHVzZXIuKTIzIGIoSWYpMTcKLWIgRmsocHJvbXB0KWcgRnUoaXMpZyBGdChOVUxMKWUgRnUob3IpaCh0aGUpaChlbXB0KW8oeSlmKHN0cmluZywpZyhubylnCi0ocHJvbXB0KWcoaXMpaChkaXNwbGEpbyh5KW8oZWQuKTc1IDEwMDAgeShUaGUpaShsaW5lKWgKLUZ0KHJlYWRsaW5lKWQgRnUocmV0dXJucylpKGlzKWcoYWxsbylxKGNhdGVkKWcod2l0aClnCi1GdChtYWxsb2NcKFwpKXAgRnUoOylnKHRoZSlnKGNhbGxlcilnKHNob3VsZCloIEZ0KGZyZWVcKFwpKWUKLUZ1KHRoZSlnKGxpbmUpNzUgMTA1NCB5KHdoZW4pZShpdClmKGhhcylnKFwwMTRuaXNoZWQpaSh3aXRoKWYoaXQuKWsKLShUaGUpMTUgYihkZWNsYXJhdGlvbiloKGZvcilmIEZ0KHJlYWRsaW5lKWYgRnUoaW4paShBTlNJKWcoQylmKGlzKTE5NQotMTExOSB5IEZ0KGNoYXIpMjMgYigqcmVhZGxpbmUpZyhcKGNvbnN0KWcoY2hhcilnKCopcAotRmsocHJvbXB0KXEgRnQoXCk7KTc1IDExODcgeSBGdShTbywpMTUgYihvbmUpZyhtaWdoKW8odClnKHNhKW8oeSkxOTUKLTEyNTEgeSBGdChjaGFyKTIzIGIoKmxpbmUpZyg9KWgocmVhZGxpbmUpZihcKCJFbnRlcilnKGEpaChsaW5lOilmKCJcKTspCi03NSAxMzE5IHkgRnUoaW4pMTIgYihvcmRlcilmKHRvKWcocmVhZCloKGEpZihsaW5lKWkob2YpZSh0ZXh0KWcoZnJvbSlmCi0odGhlKWkodXNlci4pMTkgYihUaGUpMTEgYihsaW5lKWoocmV0dXJuZWQpZChoYXMpaCh0aGUpZihcMDE0bmFsKWgKLShuZXdsaW5lKWkocmVtbylvKHYpbyhlZCwpNzUgMTM3NCB5KHNvKWgob25seSloKHRoZSlmKHRleHQpZyhyZW1haW5zLikKLTEzNyAxNDQxIHkoSWYpMjEgYiBGdChyZWFkbGluZSllIEZ1KGVuY291bilvKHRlcnMpaChhbilnCi1GdChFT0YpZyBGdSh3aGlsZSlpKHJlYWRpbmcpZih0aGUpZihsaW5lLClqKGFuZClkKHRoZSloKGxpbmUpZyhpcylnCi0oZW1wdClvKHkpZihhdClnKHRoYXQpNzUgMTQ5NiB5KHApcShvaW4pbyh0LCkxNSBiKHRoZW4pZwotRnQoXChjaGFyKWYoKlwpTlVMTClnIEZ1KGlzKWgocmV0dXJuZWQuKTIxIGIoT3RoZXJ3aXNlLCkxNQotYih0aGUpZyhsaW5lKWgoaXMpZihlbmRlZCloKGp1c3QpZShhcyloKGlmKWcoYSlmKG5ld2xpbmUpaihoYWQpNzUKLTE1NTEgeShiKXEoZWVuKWYodClvKHlwKXEoZWQuKTEzNyAxNjE4IHkoSWYpZCh5KW8ob3UpZyh3KW8oYW4pbyh0KWYKLSh0aGUpaCh1c2VyKWcodG8pZihiKXEoZSlpKGFibGUpZyh0byllKGdldClnKGF0KWgodGhlKWcobGluZSloKGxhdGVyLClmCi0oXCh3aXRoKTEzMjUgMTYxNiB5IEZuKGgpcCAxMzM4IDE1OTAgNTcgMiB2IDEzMzggMTYxOAotYSBGbShDLXApcCAxMzM4IDE2MjYgViAxMzkyIDE2MTYgYSBGbihpKTE0MjAgMTYxOCB5IEZ1KGZvcilmCi0oZXhhbXBsZVwpLClpKHkpbyhvdSlmKG0pbyh1c3QpNzUgMTY3MyB5KGNhbGwpaiBGdChhZGRfaGlzdG9yeVwoXCkpZQotRnUodG8pZyhzYSlvKHYpbyhlKWgodGhlKWcobGluZSlpKGEpbyh3KW8oYSlvKHkpZChpbilpKGEpZQotRmsoaGlzdG9yeSkxOSBiIEZ1KGxpc3QpZChvZilmKHN1YylvKGgpaChsaW5lcy4pMTk1IDE3MzgKLXkgRnQoYWRkX2hpc3RvcnkpMjIgYihcKGxpbmVcKTspNzUgMTgwNSB5IEZ1KEYpbChvcikxNQotYihmdWxsKWgoZGV0YWlscylnKG9uKWYodGhlKWgoR05VKWYoSGlzdG9yeSlnKExpYnJhcnkpbCgsKWcoc2VlKWgodGhlKWYKLShhc3NvKXEoY2lhdGVkKWcobWFuKW8odWFsLikxMzcgMTg3MyB5KEl0KWgoaXMpZyhwcmVmZXJhYmxlKWgodG8pZShhKW8KLSh2KW8ob2lkKWcoc2Epbyh2aW5nKWgoZW1wdClvKHkpZihsaW5lcylpKG9uKWYodGhlKWcoaGlzdG9yeSlmKGxpc3QsKWkKLShzaW5jZSlmKHVzZXJzKWcocmFyZWx5KWcoaGEpbyh2KW8oZSlmKGEpNzUgMTkyOCB5KGJ1cm5pbmcpaChuZWVkKWcodG8pCi1lKHJldXNlKWgoYSlnKGJsYW5rKWcobGluZS4pMjIgYihIZXJlKTE1IGIoaXMpZyhhKWcoZnVuY3Rpb24pZyh3aGljKW8KLShoKWgodXNlZnVsbHkpaChyZXBsYWNlcyllKHRoZSlnKHN0YW5kYXJkKTc1IDE5ODMgeSBGdChnZXRzXChcKSlmCi1GdShsaWJyYXJ5KWkoZnVuY3Rpb24sKWcoYW5kKWYoaGFzKWcodGhlKWgoYWR2KW0oYW4pbyh0YWdlKWUob2YpaChubylnCi0oc3RhdGljKWcoYnVcMDEzZXIpZyh0bylnKG8pbyh2KW8oZXJcMDE1bylvKHc6KTE5NSAyMDQ3Ci15IEZ0KC8qKTI0IGIoQSlmKHN0YXRpYylnKHZhcmlhYmxlKWcoZm9yKWgoaG9sZGluZyllKHRoZSlpKGxpbmUuKWYoKi8pCi0xOTUgMjA5OSB5KHN0YXRpYylnKGNoYXIpZygqbGluZV9yZWFkKWcoPSloKFwoY2hhcilmKCpcKU5VTEw7KTE5NQotMjIwMyB5KC8qKWgoUmVhZClmKGEpaChzdHJpbmcsKWYoYW5kKWcocmV0dXJuKWcoYSloKHBvaW50ZXIpZih0bylnKGl0LikKLTI2NyAyMjU1IHkoUmV0dXJucylmKE5VTEwpaShvbilmKEVPRi4paCgqLykxOTUgMjMwNyB5KGNoYXIpZigqKTE5NQotMjM1OSB5KHJsX2dldHMpZyhcKFwpKTE5NSAyNDExIHkoeykyNDMgMjQ2MiB5KC8qKWcoSWYpaCh0aGUpZihidWZmZXIpZwotKGhhcyloKGFscmVhZHkpZihiZWVuKWcoYWxsb2NhdGVkLCkzMTQgMjUxNCB5KHJldHVybilnKHRoZSloKG1lbW9yeSlmCi0odG8pZyh0aGUpaChmcmVlKWYocG9vbC4pZygqLykyNDMgMjU2NiB5KGlmKWcoXChsaW5lX3JlYWRcKSkyOTAKLTI2MTggeSh7KTMzOCAyNjcwIHkoZnJlZSlnKFwobGluZV9yZWFkXCk7KXAgZW9wCi0lJVBhZ2U6IDIyIDI0Ci0yMiAyMyBib3AgNzUgLTU4IGEgRnUoMjIpMTI5OSBiKEdOVSkxNSBiKFJlYWRsaW5lKWgoTGlicmFyeSkzMzgKLTE0OSB5IEZ0KGxpbmVfcmVhZCkyMyBiKD0paChcKGNoYXIpZigqXClOVUxMOykyOTAgMjAxCi15KH0pMjQzIDMwNSB5KC8qKWcoR2V0KWgoYSlmKGxpbmUpaChmcm9tKWYodGhlKWgodXNlci4pZigqLykyNDMKLTM1NyB5KGxpbmVfcmVhZClmKD0paShyZWFkbGluZSlmKFwoIiJcKTspMjQzIDQ2MSB5KC8qKWcoSWYpaCh0aGUpZgotKGxpbmUpaChoYXMpZihhbnkpaCh0ZXh0KWYoaW4pZyhpdCwpMzE0IDUxMyB5KHNhdmUpaChpdClmKG9uKWgodGhlKWYKLShoaXN0b3J5LilnKCovKTI0MyA1NjUgeShpZilnKFwobGluZV9yZWFkKWcoJiYpZygqbGluZV9yZWFkXCkpMjkwCi02MTYgeShhZGRfaGlzdG9yeSlnKFwobGluZV9yZWFkXCk7KTI0MyA3MjAgeShyZXR1cm4pZyhcKGxpbmVfcmVhZFwpOykKLTE5NSA3NzIgeSh9KTEzNyA4NDggeSBGdShUaGlzKTEzIGIoZnVuY3Rpb24pZihnaXYpbyhlcyloKHRoZSllKHVzZXIpaAotKHRoZSlnKGRlZmF1bHQpaChiKXEoZWhhKW8odmlvdXIpZyhvZikxMTY5IDg0NiB5IEZuKGgpcAotMTE4MSA4MjAgNzQgMiB2IDExODEgODQ4IGEgRm0oVCltKEFCKXAgMTE4MSA4NTYgViAxMjUzCi04NDYgYSBGbihpKTEyODAgODQ4IHkgRnUoY29tcGxldGlvbjopMTkgYihjb21wbGV0aW9uKTEzCi1iKG9uKWYoXDAxNGxlKTc1IDkwMyB5KG5hbWVzLikyMCBiKElmKWMoeSlvKG91KWYoZG8pZyhub3QpZyh3KW8oYW4pbyh0KQotZihSZWFkbGluZSlqKHRvKWQoY29tcGxldGUpaihvbillKFwwMTRsZW5hbWVzLCloKHkpbyhvdSlmKGNhbilnKGMpbwotKGhhbmdlKWgodGhlKWYoYmluZGluZyk3NSA5NTggeShvZilnKHRoZSkyMDUgOTU2IHkgRm4oaClwCi0yMTcgOTMwIFYgMjE3IDk1OCBhIEZtKFQpbShBQilwIDIxNyA5NjUgViAyODkgOTU2IGEgRm4oaSkzMTkKLTk1OCB5IEZ1KGspbyhleSlnKHdpdGgpaCBGdChybF9iaW5kX2tleVwoXCkpcCBGdSguKTE5NQotMTAzMSB5IEZ0KGludCkyMyBiKHJsX2JpbmRfa2V5KWcoXChpbnQpZyBGayhrKW8oZXkpcAotRnQoLCloKHJsX2NvbW1hbmRfZnVuY190KWQoKilwIEZrKGZ1bmN0aW9uKXAgRnQoXCk7KTEzNwotMTEwNyB5KHJsX2JpbmRfa2V5XChcKSkxNSBiIEZ1KHRhaylvKGVzKWgodClvKHcpbyhvKWcoYXJndW1lbilvKHRzOikyMgotYiBGayhrKW8oZXkpZSBGdShpcyllKHRoZSllKGMpbyhoYXJhY3RlcilnKHRoYXQpZyh5KW8ob3UpaCh3KW8oYW4pbyh0KWYKLSh0bylnKGJpbmQsKWkoYW5kKTc1IDExNjEgeSBGayhmdW5jdGlvbiloIEZ1KGlzKWYodGhlKWcoYWRkcmVzcylnKG9mKWcKLSh0aGUpZyhmdW5jdGlvbilnKHRvKWcoY2FsbCloKHdoZW4pZiBGayhrKW8oZXkpayBGdShpcyljKHByZXNzZWQuKTI5Ci1iKEJpbmRpbmcpMTYyOCAxMTU5IHkgRm4oaClwIDE2NDEgMTEzMyBWIDE2NDEgMTE2MSBhCi1GbShUKW0oQUIpcCAxNjQxIDExNjkgViAxNzEyIDExNTkgYSBGbihpKTE3NDUgMTE2MSB5Ci1GdSh0bykxNyBiIEZ0KHJsXyk3NSAxMjE2IHkoaW5zZXJ0XChcKSlmIEZ1KG1haylvKGVzKTQyMgotMTIxNCB5IEZuKGgpcCA0MzQgMTE4OCBWIDQzNCAxMjE2IGEgRm0oVCltKEFCKXAgNDM0IDEyMjQKLVYgNTA2IDEyMTQgYSBGbihpKTUzOSAxMjE2IHkgRnUoaW5zZXJ0KWkoaXRzZWxmLikyOCBiCi1GdChybF9iaW5kX2tleVwoXCkpMTUgYiBGdShyZXR1cm5zKWoobm9uLXplcm8pZyhpZilnCi1GayhrKW8oZXkpaiBGdShpcylkKG5vdClmKGEpZyh2KW0oYWxpZCk3NSAxMjcxIHkoQVNDSSlxKEkpZihjKW8KLShoYXJhY3RlcilmKGNvKXEoZGUpaChcKGIpcShldClvKHcpbyhlZW4pZigwKWcoYW5kKWcoMjU1XCkuKTEzNwotMTM0NyB5KFRoKW8odXMsKWcodG8pZyhkaXNhYmxlKWgodGhlKWcoZGVmYXVsdCk3MDMgMTM0NQoteSBGbihoKXAgNzE2IDEzMTkgViA3MTYgMTM0NyBhIEZtKFQpbShBQilwIDcxNiAxMzU0IFYKLTc4NyAxMzQ1IGEgRm4oaSk4MTcgMTM0NyB5IEZ1KGIpcShlaGEpbyh2aW9yLClnKHRoZSlmKGZvbGxvKW8od2luZyloCi0oc3VcMDE2Y2VzOikxOTUgMTQyMCB5IEZ0KHJsX2JpbmRfa2V5KTIyIGIoXCgnXFx0JywpaChybF9pbnNlcnRcKTspMTM3Ci0xNDk2IHkgRnUoVGhpcykxNCBiKGNvKXEoZGUpZyhzaG91bGQpZyhiKXEoZSlnKGV4ZWN1dGVkKWcob25jZSlnKGF0KWUKLSh0aGUpaChzdGFydClmKG9mKWgoeSlvKG91cilnKHByb2dyYW07KWYoeSlvKG91KWgobWlnaClvKHQpZyh3cml0ZSlnKGEpCi1nKGZ1bmMtKTc1IDE1NTEgeSh0aW9uKWsoY2FsbGVkKWggRnQoaW5pdGlhbGl6ZV9yZWFkbGluZVwoXCkpMTMKLWIgRnUod2hpYylvKGgpayhwKXEoZXJmb3JtcylmKHRoaXMpaChhbmQpZyhvdGhlcilmKGRlc2lyZWQpaAotKGluaXRpYWxpemF0aW9ucywpNzUgMTYwNSB5KHN1YylvKGgpZihhcyllKGluc3RhbGxpbmcpayhjdXN0b20pYwotKGNvbXBsZXRlcnMpaShcKHNlZSlmKFNlY3Rpb24paCgyLjYpZihbQ3VzdG9tKWYoQ29tcGxldGVyc10sKWcocGFnZSloCi0oNDFcKS4pNzUgMTc1NiB5IEZzKDIuMikzMyBiKEN1c3RvbSkyMSBiKEYpLTYgYih1bmN0aW9ucykxMzcKLTE4NjEgeSBGdShSZWFkbGluZSkxNCBiKHBybylvKHZpZGVzKWYobWFuKW8oeSllKGZ1bmN0aW9ucylpKGZvcilmCi0obWFuaXB1bGF0aW5nKWkodGhlKWUodGV4dClnKG9mKWcodGhlKWcobGluZSwpaShidXQpZShpdCloKGlzbid0KWYocClxCi0ob3NzaS0pNzUgMTkxNSB5KGJsZSlpKHRvKWYoYW4pbyh0aWNpcGF0ZSloKHRoZSlmKG5lZWRzKWgob2YpZihhbGwpaAotKHByb2dyYW1zLilrKFRoaXMpMTMgYihzZWN0aW9uKWgoZGVzY3JpYilxKGVzKWgodGhlKWUodiltKGFyaW91cyloCi0oZnVuY3Rpb25zKWcoYW5kKTc1IDE5NzAgeSh2KW0oYXJpYWJsZXMpZyhkZVwwMTRuZWQpaCh3aXRoaW4pZih0aGUpZgotKFJlYWRsaW5lKWkobGlicmFyeSllKHdoaWMpbyhoKWgoYWxsbylvKHcpZyhhKWUodXNlciloKHByb2dyYW0pZih0byloCi0oYWRkKWcoY3VzdG9taXplZCk3NSAyMDI1IHkoZnVuY3Rpb25hbGl0KW8oeSlqKHRvKWYoUmVhZGxpbmUuKTEzNwotMjEwMSB5KEJlZm9yZSlqKGRlY2xhcmluZylpKGFuKW8oeSllKGZ1bmN0aW9ucyloKHRoYXQpZihjdXN0b21pemUpZwotKFJlYWRsaW5lJ3MpaChiKXEoZWhhKW8odmlvciwpaChvcilkKHVzaW5nKWkoYW4pbyh5KWYoZnVuYy0pNzUKLTIxNTYgeSh0aW9uYWxpdClvKHkpMjMgYihSZWFkbGluZSloKHBybylvKHZpZGVzKWcoaW4pZihvdGhlcilnKGNvKXEKLShkZSwpaChhbilmKGFwcGxpY2F0aW9uKWkod3JpdGVyKWQoc2hvdWxkKWkoaW5jbHVkZSloKHRoZSllKFwwMTRsZSk3NQotMjIxMSB5IEZ0KDxyZWFkbGluZS9yZWFkbGluZS5oPikxNCBiIEZ1KGluKWooYW4pbyh5KWcoXDAxNGxlKWgodGhhdCllCi0odXNlcyloKFJlYWRsaW5lJ3MpZyhmZWF0dXJlcy4pMjQgYihTaW5jZSkxOSBiKHNvbWUpZChvZilnKHRoZSloCi0oZGVcMDE0LSk3NSAyMjY1IHkobml0aW9ucylnKGluKWYgRnQocmVhZGxpbmUuaCllIEZ1KHVzZSlpKHRoZSlnCi1GdChzdGRpbylmIEZ1KGxpYnJhcnkpbCgsKWgodGhlKWcoXDAxNGxlKWcgRnQoPHN0ZGlvLmg+KWYKLUZ1KHNob3VsZCloKGIpcShlKWcoaW5jbHVkZWQpaihiKXEoZWZvcmUpNzUgMjMyMCB5IEZ0KHJlYWRsaW5lLmgpcAotRnUoLikxMzcgMjM5NiB5IEZ0KHJlYWRsaW5lLmgpMTQgYiBGdShkZVwwMTRuZXMpaShhKWYoQyloKHByZXBybylxCi0oY2Vzc29yKWYodiltKGFyaWFibGUpaSh0aGF0KWQoc2hvdWxkKWkoYilxKGUpZyh0cmVhdGVkKWYoYXMpZyhhbilnKGluKQotbyh0ZWdlciwpZyBGdChSTF8pNzUgMjQ1MSB5KFJFQURMSU5FX1ZFUlNJT04pcCBGdSgsKTkKLWIod2hpYylvKGgpaihtYSlvKHkpZihiKXEoZSlnKHVzZWQpaCh0byllKGNvbmRpdGlvbmFsbHkpayhjb21waWxlKWUKLShhcHBsaWNhdGlvbiloKGNvKXEoZGUpZihkZXApcShlbmRpbmcpNzUgMjUwNiB5KG9uKTE3Ci1iKHRoZSloKGluc3RhbGxlZCloKFJlYWRsaW5lKWcodilvKGVyc2lvbi4pMjcgYihUaGUpMTgKLWIodiltKGFsdWUpaChpcylmKGEpZihoZXhhZGVjaW1hbClpKGVuY28pcShkaW5nKWcob2YpZSh0aGUpaChtYSlzKGpvcillCi0oYW5kKTc1IDI1NjAgeShtaW5vciloKHYpbyhlcnNpb24paChuKW8odW0pbyhiKXEoZXJzKWYob2YpZyh0aGUpZwotKGxpYnJhcnkpbCgsKWgob2YpZih0aGUpZyhmb3JtKWYoMHgpcCBGayhNTW1tKXAgRnUoLikyNQotYiBGayhNTSljIEZ1KGlzKWModGhlKWgodClvKHcpbyhvLWRpZ2l0KWUobWEpcyhqb3IpNzUKLTI2MTUgeSh2KW8oZXJzaW9uKWYobilvKHVtKW8oYilxKGVyOylmIEZrKG1tKWggRnUoaXMpZyh0aGUpZih0KW8odylvCi0oby1kaWdpdClnKG1pbm9yKWgodilvKGVyc2lvbilnKG4pbyh1bSlvKGIpcShlci4pMjAgYihGKWwob3IpMTQKLWIoUmVhZGxpbmUpaCg0LjIsKWYoZm9yKWYoZXhhbXBsZSwpNzUgMjY3MCB5KHRoZSlpKHYpbShhbHVlKWkob2YpZAotRnQoUkxfUkVBRExJTkVfVkVSU0lPTilmIEZ1KHcpbyhvdWxkKWooYilxKGUpZiBGdCgweDA0MDIpcAotRnUoLilwIGVvcAotJSVQYWdlOiAyMyAyNQotMjMgMjQgYm9wIDc1IC01OCBhIEZ1KENoYXB0ZXIpMTUgYigyOilrKFByb2dyYW1taW5nKWMod2l0aClnKEdOVSlnCi0oUmVhZGxpbmUpODQzIGIoMjMpNzUgMTQ5IHkgRmooMi4yLjEpMzAgYihSZWFkbGluZSkyMAotYihUKW4oeXApcihlZGVmcykxMzcgMjUxIHkgRnUoRilsKG9yKTE1IGIocmVhZGFiaWx0KW8oeSlsKCwpZyh3KW8oZSlnCi0oZGVjbGFyZSlpKGEpZChuKW8odW0pbyhiKXEoZXIpaShvZilmKG5ldylnKG9iKXMoamVjdClnKHQpbyh5cClxKGVzLClnCi0oYWxsKWgocClxKG9pbilvKHRlcnMpZih0bylnKGZ1bmN0aW9ucy4pMTM3IDMyNCB5KFRoZSlqKHJlYXNvbilnKGZvcilmCi0oZGVjbGFyaW5nKWkodGhlc2UpZihuZXcpZyh0KW8oeXApcShlcylnKGlzKWgodG8pZShtYWspbyhlKWcoaXQpaAotKGVhc2llciloKHRvKWUod3JpdGUpaChjbylxKGRlKWcoZGVzY3JpYmluZyk3NSAzNzkgeShwKXEob2luKW8odGVycyllCi0odG8pZShDKWgoZnVuY3Rpb25zKWgod2l0aClnKGFwcHJvcHJpYXRlbHkpZihwcm90b3Qpbyh5cClxKGVkKWcKLShhcmd1bWVuKW8odHMpZyhhbmQpZyhyZXR1cm4pZyh2KW0oYWx1ZXMuKTEzNyA0NTIgeShGKWwob3IpaihpbnN0YW5jZSwpCi1pKHNhKW8oeSllKHcpbyhlKWcodylvKGFuKW8odClmKHRvKWgoZGVjbGFyZSloKGEpZih2KW0oYXJpYWJsZSlpCi1GayhmdW5jKWkgRnUoYXMpYyhhKWcocClxKG9pbilvKHRlciloKHRvKWYoYSlnKGZ1bmN0aW9uKWgod2hpYylvKGgpNzUKLTUwNyB5KHRhaylvKGVzKTEyIGIodClvKHcpbyhvKWcgRnQoaW50KWcgRnUoYXJndW1lbilvKHRzKWcoYW5kKWgKLShyZXR1cm5zKWcoYW4pZyBGdChpbnQpZiBGdShcKHRoaXMpaChpcylnKHRoZSlnKHQpbyh5cClxKGUpZyhvZilnKGFsbClnCi0ob2YpZyh0aGUpZyhSZWFkbGluZSloKGJpbmRhYmxlKTc1IDU2MSB5KGZ1bmN0aW9uc1wpLikyMAotYihJbnN0ZWFkKWMob2YpZih0aGUpZyhjbGFzc2ljKWgoQylmKGRlY2xhcmF0aW9uKTEzNwotNjM0IHkgRnQoaW50KWcoXCgqZnVuY1wpXChcKTspNzUgNzA3IHkgRnUob3IpZyh0aGUpZyhBTlNJLUMpaChzdClvKHlsZSkKLWYoZGVjbGFyYXRpb24pMTM3IDc4MCB5IEZ0KGludClnKFwoKmZ1bmNcKVwoaW50LClmKGludFwpOyk3NQotODUzIHkgRnUodylvKGUpaChtYSlvKHkpZih3cml0ZSkxMzcgOTI2IHkgRnQocmxfY29tbWFuZF9mdW5jX3QpZgotKCpmdW5jOykxMzcgOTk5IHkgRnUoVGhlKWooZnVsbClnKGxpc3QpZyhvZilmKGZ1bmN0aW9uKWgocClxKG9pbilvKHRlcikKLWcodClvKHlwKXEoZXMpZihhKW8odiltKGFpbGFibGUpaShpcyk3NSAxMDg3IHkgRnQodHlwZWRlZilkKGludCloCi0ocmxfY29tbWFuZF9mdW5jX3QpZShcKGludCwpaChpbnRcKTspNzUgMTE1NyB5KHR5cGVkZWYpZyhjaGFyKWgKLSgqcmxfY29tcGVudHJ5X2Z1bmNfdClkKFwoY29uc3QpaihjaGFyKWYoKiwpaChpbnRcKTspNzUKLTEyMjcgeSh0eXBlZGVmKWYoY2hhciloKCoqcmxfY29tcGxldGlvbl9mdW5jX3QpZChcKGNvbnN0KWkoY2hhciloKCosKWcKLShpbnQsKWYoaW50XCk7KTc1IDEyOTcgeSh0eXBlZGVmKWcoY2hhciloKCpybF9xdW90ZV9mdW5jX3QpZShcKGNoYXIpaAotKCosKWgoaW50LClnKGNoYXIpZigqXCk7KTc1IDEzNjcgeSh0eXBlZGVmKWcoY2hhciloKCpybF9kZXF1b3RlX2Z1bmNfdCkKLWQoXChjaGFyKWooKiwpZyhpbnRcKTspNzUgMTQzNyB5KHR5cGVkZWYpZihpbnQpaChybF9jb21waWdub3JlX2Z1bmNfdClkCi0oXChjaGFyKWooKipcKTspNzUgMTUwNyB5KHR5cGVkZWYpZih2b2lkKWgocmxfY29tcGRpc3BfZnVuY190KWQoXChjaGFyKQotaigqKiwpZyhpbnQsKWYoaW50XCk7KTc1IDE1NzcgeSh0eXBlZGVmKWcoaW50KWgocmxfaG9va19mdW5jX3QpZQotKFwodm9pZFwpOyk3NSAxNjQ3IHkodHlwZWRlZiloKGludCloKHJsX2dldGNfZnVuY190KWUoXChGSUxFKWkoKlwpOyk3NQotMTcxNyB5KHR5cGVkZWYpZihpbnQpaChybF9saW5lYnVmX2Z1bmNfdCllKFwoY2hhciloKCosKWgoaW50XCk7KTc1Ci0xNzg3IHkodHlwZWRlZilmKGludCloKHJsX2ludGZ1bmNfdCllKFwoaW50XCk7KTc1IDE4NTcKLXkoI2RlZmluZSloKHJsX2l2b2lkZnVuY190KWYocmxfaG9va19mdW5jX3QpNzUgMTkyNyB5KHR5cGVkZWYpaChpbnQpaAotKHJsX2ljcGZ1bmNfdCllKFwoY2hhcilpKCpcKTspNzUgMTk5NyB5KHR5cGVkZWYpZihpbnQpaChybF9pY3BwZnVuY190KWUKLShcKGNoYXIpaSgqKlwpOyk3NSAyMDY3IHkodHlwZWRlZilmKHZvaWQpaChybF92b2lkZnVuY190KWUoXCh2b2lkXCk7KTc1Ci0yMTM3IHkodHlwZWRlZiloKHZvaWQpaChybF92aW50ZnVuY190KWUoXChpbnRcKTspNzUgMjIwOAoteSh0eXBlZGVmKWgodm9pZCloKHJsX3ZjcGZ1bmNfdCllKFwoY2hhcilpKCpcKTspNzUgMjI3OAoteSh0eXBlZGVmKWYodm9pZCloKHJsX3ZjcHBmdW5jX3QpZShcKGNoYXIpaSgqKlwpOyk3NQotMjM4NiB5IEZqKDIuMi4yKTMwIGIoVyktNSBiKHJpdGluZykyMCBiKGEpaChOZXcpZihGKS01Ci1iKHVuY3Rpb24pMTM3IDI0ODggeSBGdShJbikxNyBiKG9yZGVyKWYodG8pZih3cml0ZSloKG5ldyloKGZ1bmN0aW9ucylnCi0oZm9yKWUoUmVhZGxpbmUsKWkoeSlvKG91KWYobmVlZCloKHRvKWUoa25vKW8odyloKHRoZSlnKGNhbGxpbmcpaShjb24pbwotKHYpbyhlbilvKHRpb25zKTc1IDI1NDIgeShmb3IpZyhrKW8oZXliKXEob2FyZC1pbilvKHYpbyhvaylvKGVkKWgKLShmdW5jdGlvbnMsKWcoYW5kKWcodGhlKWYobmFtZXMpaChvZilmKHRoZSlnKHYpbShhcmlhYmxlcylpKHRoYXQpZAotKGRlc2NyaWIpcShlKWsodGhlKWQoY3VycmVuKW8odCk3NSAyNTk3IHkoc3RhdGUpYyhvZiloKHRoZSlnKGxpbmUpaQotKHJlYWQpZShzbylnKGZhci4pMTM3IDI2NzAgeShUaGUpaChjYWxsaW5nKWgoc2VxdWVuY2UpZihmb3IpZihhKWYKLShjb21tYW5kKWkgRnQoZm9vKWUgRnUobG8pcShva3MpaShsaWspbyhlKXAgZW9wCi0lJVBhZ2U6IDI0IDI2Ci0yNCAyNSBib3AgNzUgLTU4IGEgRnUoMjQpMTI5OSBiKEdOVSkxNSBiKFJlYWRsaW5lKWgoTGlicmFyeSkxOTUKLTE0OSB5IEZ0KGludCkyMyBiKGZvbyloKFwoaW50KWYoY291bnQsKWcoaW50KWgoa2V5XCkpNzUKLTIyMSB5IEZ1KHdoZXJlKTE4IGIgRmsoY291bilvKHQpaCBGdShpcylmKHRoZSlnKG4pbyh1bWVyaWMpaChhcmd1bWVuKW8KLSh0KWUoXChvciloKDEpZihpZilpKGRlZmF1bHRlZFwpKWYoYW5kKWcgRmsoaylvKGV5KWsKLUZ1KGlzKWQodGhlKWYoaylvKGV5KWcodGhhdClmKGluKW8odilvKG9rKW8oZWQpNzUgMjc2Ci15KHRoaXMpZihmdW5jdGlvbi4pMTM3IDM0OCB5KEl0KWMoaXMpZyhjb21wbGV0ZWx5KWgodXApZih0bylmKHRoZSlnCi0oZnVuY3Rpb24paShhcyllKHRvKWcod2hhdClnKHNob3VsZCloKGIpcShlKWcoZG9uZSlnKHdpdGgpZyh0aGUpZyhuKW8KLSh1bWVyaWMpZyhhcmd1bWVuKW8odC4pNzUgNDAzIHkoU29tZSkyMCBiKGZ1bmN0aW9ucyloKHVzZSlmKGl0KWcoYXMpZwotKGEpZyhyZXApcShlYXQpZyhjb3VuKW8odCwpZyhzb21lKWcoYXMpZyhhKWYoXDAxNWFnLClpKGFuZClmKG90aGVycylnCi0odG8pZihjKW8oaG8pcShvc2UpaChhbHRlcm5hdGUpNzUgNDU3IHkoYilxKGVoYSlvKHZpb3IpaShcKHJlZnJlc2hpbmcpZwotKHRoZSlnKGN1cnJlbilvKHQpZihsaW5lKWooYXMpZChvcHApcShvc2VkKWgodG8pZihyZWZyZXNoaW5nKWkodGhlKWUKLShzY3JlZW4sKWooZm9yKWQoZXhhbXBsZVwpLik3NSA1MTIgeShTb21lKWMoYylvKGhvKXEob3NlKWYodG8pZyhpZ25vcmUpCi1oKGl0LikyNCBiKEluKTE4IGIoZ2VuZXJhbCwpZihpZilnKGEpZihmdW5jdGlvbiloKHVzZXMpZyh0aGUpZyhuKW8KLSh1bWVyaWMpaChhcmd1bWVuKW8odClkKGFzKWkoYSlmKHJlcClxKGVhdCk3NSA1NjcgeShjb3VuKW8odCwpZShpdClnCi0oc2hvdWxkKWgoYilxKGUpZihhYmxlKWgodG8pZShkbyloKHNvbWV0aGluZyloKHVzZWZ1bClnKHdpdGgpZihiKXEob3RoKQotZyhuZWdhdGl2KW8oZSlnKGFuZClnKHApcShvc2l0aXYpbyhlKWgoYXJndW1lbilvKHRzLik3NQotNjIyIHkoQSlvKHQpZyh0aGUpZyh2KW8oZXJ5KWcobGVhc3QsKWcoaXQpZyhzaG91bGQpaChiKXEoZSlnKGEpbyh3KW8KLShhcmUpZSh0aGF0KWgoaXQpZyhjYW4pZyhiKXEoZSloKHBhc3NlZClnKGEpZihuZWdhdGl2KW8oZSlnKGFyZ3VtZW4pbwotKHQuKTEzNyA2OTMgeShBKWYoY29tbWFuZClnKGZ1bmN0aW9uKWgoc2hvdWxkKWcocmV0dXJuKWUoMCloKGlmKWcoaXRzKWcKLShhY3Rpb24paChjb21wbGV0ZXMpZihzdWNjZXNzZnVsbHkpbCgsKWkoYW5kKWUoYSlnKG5vbi16ZXJvKTc1Ci03NDggeSh2KW0oYWx1ZSlpKGlmKWcoc29tZSlmKGVycm9yKWYobylxKGNjdXJzLik3NSA4ODgKLXkgRnMoMi4zKTMzIGIoUmVhZGxpbmUpMjMgYihWKS02IGIoYXJpYWJsZXMpMTM3IDk4OSB5Ci1GdShUaGVzZSkxNiBiKHYpbShhcmlhYmxlcylnKGFyZSlmKGEpbyh2KW0oYWlsYWJsZSlpKHRvKWUoZnVuY3Rpb24paAotKHdyaXRlcnMuKTE3NzMgMTEyMCB5KFYpbChhcmlhYmxlKS0xODYxIGIgRmkoY2hhcikyMAotYigqKWYgRmgocmwpcCAyODYgMTEyMCAxOCAzIHYgMjEgdyhsaW5lKXAgMzk1IDExMjAgVgotMjMgdyhidVwwMTNlcikxOTUgMTE3NCB5IEZ1KFRoaXMpZChpcylnKHRoZSlnKGxpbmUpaChnYXRoZXJlZClmKHNvKWYKLShmYXIuKTIwIGIoWSlsKG91KWMoYXJlKWYodylvKGVsY29tZSloKHRvKWYobW8pcShkaWZ5KWgodGhlKWcoY29uKW8KLSh0ZW4pbyh0cylmKG9mKWcodGhlKWgobGluZSwpMTk1IDEyMjkgeShidXQpaShzZWUpZyhTZWN0aW9uKWgoMi40LjUpZAotKFtBbGxvKW8od2luZylpKFVuZG9pbmddLCloKHBhZ2UpZSgzMi4pMjcgYihUaGUpMTggYihmdW5jdGlvbiloCi1GdChybF9leHRlbmRfbGluZV8pMTk1IDEyODQgeShidWZmZXIpMTQgYiBGdShpcylpKGEpbyh2KW0oYWlsYWJsZSloKHRvKQotZChpbmNyZWFzZSlqKHRoZSllKG1lbW9yeSlmKGFsbG8pcShjYXRlZClqKHRvKWQgRnQocmxfbGluZV9idWZmZXIpcAotRnUoLikxNzczIDE0MTQgeShWKWwoYXJpYWJsZSktMTg2MSBiIEZpKGludCkyMCBiIEZoKHJsKXAKLTIxNSAxNDE0IFYgMjEgdyhwKXIob2luKW4odCkxOTUgMTQ2OSB5IEZ1KFRoZSkxNSBiKG9cMDEzc2V0KWcob2YpZih0aGUpCi1pKGN1cnJlbilvKHQpZihjdXJzb3IpZyhwKXEob3NpdGlvbiloKGluKWcgRnQocmxfbGluZV9idWZmZXIpZAotRnUoXCh0aGUpaSBGbChwKW4ob2ludCl0IEZ1KFwpLikxNzczIDE2MDAgeShWKWwoYXJpYWJsZSktMTg2MQotYiBGaShpbnQpMjAgYiBGaChybClwIDIxNSAxNjAwIFYgMjEgdyhlbmQpMTk1IDE2NTUgeQotRnUoVGhlKTE0IGIobilvKHVtKW8oYilxKGVyKWcob2YpZyhjKW8oaGFyYWN0ZXJzKWYocHJlc2VuKW8odCloKGluKWgKLUZ0KHJsX2xpbmVfYnVmZmVyKXAgRnUoLilpKFdoZW4pZSBGdChybF9wb2ludCllIEZ1KGlzKWgoYXQpZih0aGUpaChlbmQpCi0xOTUgMTcwOSB5KG9mKWgodGhlKWcobGluZSwpaSBGdChybF9wb2ludClkIEZ1KGFuZCloCi1GdChybF9lbmQpZiBGdShhcmUpaChlcXVhbC4pMTc3MyAxODQwIHkoVilsKGFyaWFibGUpLTE4NjEKLWIgRmkoaW50KTIwIGIgRmgocmwpcCAyMTUgMTg0MCBWIDIxIHcobWFyaykxOTUgMTg5NSB5Ci1GdShUaGUpZiBGayhtYXJrKWggRnUoXChzYSlvKHYpbyhlZCllKHApcShvc2l0aW9uXCkpaChpbilnKHRoZSlnCi0oY3VycmVuKW8odClmKGxpbmUuKTMxIGIoSWYpMTkgYihzZXQsKWcodGhlKWYobWFyaylnKGFuZCloKHApcShvaW4pbyh0KQotZyhkZVwwMTRuZSlnKGEpMTk1IDE5NTAgeSBGbChyKW4oZSluKGdpb24pcCBGdSguKTE3NzMKLTIwODAgeShWKWwoYXJpYWJsZSktMTg2MSBiIEZpKGludCkyMCBiIEZoKHJsKXAgMjE1IDIwODAKLVYgMjEgdyhkb25lKTE5NSAyMTM1IHkgRnUoU2V0dGluZykxMSBiKHRoaXMpZyh0bylnKGEpZihub24temVybyloKHYpbQotKGFsdWUpaChjYXVzZXMpZihSZWFkbGluZSloKHRvKWYocmV0dXJuKWYodGhlKWgoY3VycmVuKW8odClnKGxpbmUpaAotKGltbWVkaWF0ZWx5KWwoLikxNzczIDIyNjUgeShWKWwoYXJpYWJsZSktMTg2MSBiIEZpKGludCkyMAotYiBGaChybClwIDIxNSAyMjY1IFYgMjEgdyhuKW4odW0pcCAzNDcgMjI2NSBWIDE5IHcoYyluKGhhcnMpcAotNDk2IDIyNjUgViAyMCB3KHRvKXAgNTY3IDIyNjUgViAyMSB3KHJlYWQpMTk1IDIzMjAgeQotRnUoU2V0dGluZylkKHRoaXMpZyh0bylmKGEpZyhwKXEob3NpdGl2KW8oZSloKHYpbShhbHVlKWgoYilxKGVmb3JlKWYKLShjYWxsaW5nKWggRnQocmVhZGxpbmVcKFwpKWQgRnUoY2F1c2VzKWgoUmVhZGxpbmUpaSh0byllKHJldHVybikxOTUKLTIzNzUgeShhZnRlciloKGFjY2VwdGluZylpKHRoYXQpZShtYW4pbyh5KWcoYylvKGhhcmFjdGVycywpaChyYXRoZXIpZgotKHRoYW4paChyZWFkaW5nKWcodXApZyh0bylmKGEpaChjKW8oaGFyYWN0ZXIpZihiKXEob3VuZCkxOTUKLTI0MzAgeSh0byllIEZ0KGFjY2VwdC1saW5lKXAgRnUoLikxNzczIDI1NjAgeShWKWwoYXJpYWJsZSktMTg2MQotYiBGaShpbnQpMjAgYiBGaChybClwIDIxNSAyNTYwIFYgMjEgdyhwKXIoZW5kaW5nKXAgNDM2Ci0yNTYwIFYgMjAgdyhpbnB1dCkxOTUgMjYxNSB5IEZ1KFNldHRpbmcpMTMgYih0aGlzKWcodG8pZihhKWcodiltKGFsdWUpaQotKG1haylvKGVzKWUoaXQpaCh0aGUpZihuZXh0KWgoaylvKGV5c3Ryb2spbyhlKWYocmVhZC4pMTkKLWIoVGhpcykxMyBiKGlzKWcoYSlmKHcpbyhhKW8oeSlnKHRvKWYoc3R1XDAxMyloKGEpaChzaW5nbGUpMTk1Ci0yNjcwIHkoYylvKGhhcmFjdGVyKWgoaW4pbyh0bylpKHRoZSlmKGlucHV0KWgoc3RyZWFtLilwCi1lb3AKLSUlUGFnZTogMjUgMjcKLTI1IDI2IGJvcCA3NSAtNTggYSBGdShDaGFwdGVyKTE1IGIoMjopayhQcm9ncmFtbWluZyljKHdpdGgpZyhHTlUpZwotKFJlYWRsaW5lKTg0MyBiKDI1KTE3NzMgMTQ5IHkoVilsKGFyaWFibGUpLTE4NjEgYiBGaShpbnQpMjAKLWIgRmgocmwpcCAyMTUgMTQ5IDE4IDMgdiAyMSB3KGRpc3BhdGMpbihoaW5nKTE5NSAyMDQKLXkgRnUoU2V0KTEyIGIodG8pZyhhKWYobm9uLXplcm8paSh2KW0oYWx1ZSlnKGlmKWcoYSlmKGZ1bmN0aW9uKWgoaXMpZgotKGIpcShlaW5nKWkoY2FsbGVkKWYoZnJvbSlmKGEpZihrKW8oZXkpaChiaW5kaW5nOylqKHplcm8pZChvdGhlcndpc2UuKQotMTk1IDI1OSB5KEFwcGxpY2F0aW9uKTIwIGIoZnVuY3Rpb25zKWUoY2FuKWcodGVzdClnKHRoaXMpZyh0bylmKGRpc2NvKW8KLSh2KW8oZXIpaCh3aGV0aGVyKWcodGhleSlnKHcpbyhlcmUpZyhjYWxsZWQpaChkaXJlY3RseSlnKG9yKTE5NQotMzE0IHkoYilvKHkpYyhSZWFkbGluZSdzKWgoZGlzcGF0YylvKGhpbmcpaChtZWMpbyhoYW5pc20uKTE3NzMKLTQyMyB5KFYpbChhcmlhYmxlKS0xODYxIGIgRmkoaW50KTIwIGIgRmgocmwpcCAyMTUgNDIzCi1WIDIxIHcoZXJhc2UpcCAzNjMgNDIzIFYgMjAgdyhlbXB0KW4oeSlwIDU0MCA0MjMgViAyMAotdyhsaW5lKTE5NSA0NzggeSBGdShTZXR0aW5nKWoodGhpcyloKHRvKWUoYSloKG5vbi16ZXJvKWcodiltKGFsdWUpaAotKGNhdXNlcylmKFJlYWRsaW5lKWkodG8pZChjb21wbGV0ZWx5KWkoZXJhc2UpZih0aGUpZyhjdXJyZW4pbyh0KTE5NQotNTMzIHkobGluZSwpZyhpbmNsdWRpbmcpaChhbilvKHkpYyhwcm9tcHQsKWgoYW4pbyh5KWcodGltZSlnKGEpZgotKG5ld2xpbmUpaihpcyllKHQpbyh5cClxKGVkKWcoYXMpZih0aGUpaChvbmx5KWcoYylvKGhhcmFjdGVyKWYob24pMTk1Ci01ODggeShhbillKG90aGVyd2lzZS1lbXB0KW8oeSlnKGxpbmUuKTMxIGIoVGhlKTE4IGIoY3Vyc29yKWcoaXMpaChtbylvCi0odilvKGVkKWUodG8paCh0aGUpZyhiKXEoZWdpbm5pbmcpaShvZillKHRoZSlnKG5ld2x5LWJsYW5rKTE5NQotNjQzIHkobGluZS4pMTc3MyA3NTIgeShWKWwoYXJpYWJsZSktMTg2MSBiIEZpKGNoYXIpMjAKLWIoKilmIEZoKHJsKXAgMjg2IDc1MiBWIDIxIHcocHJvbXB0KTE5NSA4MDcgeSBGdShUaGUpMTMKLWIocHJvbXB0KWcoUmVhZGxpbmUpaCh1c2VzLikyMCBiKFRoaXMpMTMgYihpcyloKHNldClmKGZyb20pZih0aGUpaAotKGFyZ3VtZW4pbyh0KWcodG8pZiBGdChyZWFkbGluZVwoXCkpcCBGdSgsKWcoYW5kKWgoc2hvdWxkKTE5NQotODYyIHkobm90KWcoYilxKGUpaChhc3NpZ25lZClnKHRvKWYoZGlyZWN0bHkpbCguKTIxIGIoVGhlKTE0Ci1iIEZ0KHJsX3NldF9wcm9tcHRcKFwpKWQgRnUoZnVuY3Rpb24paihcKHNlZSlnKFNlY3Rpb24pZygyLjQuNillCi0oW1JlZGlzLSkxOTUgOTE3IHkocGxhKW8oeV0sKWoocGFnZSlnKDMzXCkpZihtYSlvKHkpaChiKXEoZSlnKHVzZWQpaAotKHRvKWYobW8pcShkaWZ5KWgodGhlKWYocHJvbXB0KWcoc3RyaW5nKWcoYWZ0ZXIpZihjYWxsaW5nKWoKLUZ0KHJlYWRsaW5lXChcKSlwIEZ1KC4pMTc3MyAxMDI2IHkoVilsKGFyaWFibGUpLTE4NjEKLWIgRmkoaW50KTIwIGIgRmgocmwpcCAyMTUgMTAyNiBWIDIxIHcoYWxyZWFkeSlwIDQxOSAxMDI2Ci1WIDIxIHcocHJvbXB0ZWQpMTk1IDEwODEgeSBGdShJZillKGFuKWcoYXBwbGljYXRpb24paSh3aXNoZXMpZih0bylmCi0oZGlzcGxhKW8oeSloKHRoZSlmKHByb21wdClnKGl0c2VsZiwpaChyYXRoZXIpZih0aGFuKWcoaGEpbyh2KW8oZSlnCi0oUmVhZGxpbmUpaChkbykxOTUgMTEzNiB5KGl0KWUodGhlKWYoXDAxNHJzdClnKHRpbWUpaAotRnQocmVhZGxpbmVcKFwpKWUgRnUoaXMpaShjYWxsZWQsKWgoaXQpZShzaG91bGQpaShzZXQpZSh0aGlzKWgodiltCi0oYXJpYWJsZSlnKHRvKWYoYSlnKG5vbi16ZXJvKWgodiltKGFsdWUpMTk1IDExOTEgeShhZnRlciloKGRpc3BsYSlvCi0oeWluZylqKHRoZSllKHByb21wdC4pMzEgYihUaGUpMTkgYihwcm9tcHQpZyhtKW8odXN0KWYoYWxzbyloKGIpcShlKWgKLShwYXNzZWQpZihhcylmKHRoZSloKGFyZ3VtZW4pbyh0KWcodG8pMTk1IDEyNDUgeSBGdChyZWFkbGluZVwoXCkpYwotRnUoc28paCh0aGUpaChyZWRpc3BsYSlvKHkpZyhmdW5jdGlvbnMpaChjYW4pZSh1cClxKGRhdGUpaCh0aGUpZwotKGRpc3BsYSlvKHkpaChwcm9wKXEoZXJseSlsKC4pMjQgYihUaGUpMTcgYihjYWxsaW5nKTE5NQotMTMwMCB5KGFwcGxpY2F0aW9uKWcoaXMpZihyZXNwKXEob25zaWJsZSloKGZvcilkKG1hbmFnaW5nKWgodGhlKWgodiltCi0oYWx1ZTspZyhSZWFkbGluZSlnKG5ldilvKGVyKWcoc2V0cyllKGl0LikxNzczIDE0MTAgeShWKWwoYXJpYWJsZSktMTg2MQotYiBGaShjb25zdCkyMCBiKGNoYXIpZygqKWYgRmgocmwpcCA0MzYgMTQxMCBWIDIxIHcobGlicmFyeSlwCi02MjUgMTQxMCBWIDIxIHcodiluKGVyc2lvbikxOTUgMTQ2NSB5IEZ1KFRoZSljKHYpbyhlcnNpb24paChuKW8odW0pbyhiKQotcShlcilmKG9mKWcodGhpcyloKHJldmlzaW9uKWcob2YpZih0aGUpZyhsaWJyYXJ5KWwoLikxNzczCi0xNTc0IHkoVilsKGFyaWFibGUpLTE4NjEgYiBGaShpbnQpMjAgYiBGaChybClwIDIxNSAxNTc0Ci1WIDIxIHcocmVhZGxpbmUpcCA0MzQgMTU3NCBWIDIyIHcodiluKGVyc2lvbikxOTUgMTYyOQoteSBGdShBbilkKGluKW8odGVnZXIpaChlbmNvKXEoZGluZylnKHRoZSlmKGN1cnJlbilvKHQpZyh2KW8oZXJzaW9uKWcKLShvZilnKHRoZSlnKGxpYnJhcnkpbCguKTI3IGIoVGhlKTE3IGIoZW5jbylxKGRpbmcpaChpcylnKG9mKWYodGhlKWcKLShmb3JtKTE5NSAxNjg0IHkoMHgpcCBGayhNTW1tKXAgRnUoLClnKHdoZXJlKWkgRmsoTU0pagotRnUoaXMpZCh0aGUpZih0KW8odylvKG8tZGlnaXQpZyhtYSlzKGpvcilmKHYpbyhlcnNpb24paShuKW8odW0pbyhiKXEKLShlciwpZyhhbmQpZiBGayhtbSlnIEZ1KGlzKWgodGhlKWYodClvKHcpbyhvLSkxOTUgMTczOAoteShkaWdpdClpKG1pbm9yKWUodilvKGVyc2lvbiloKG4pbyh1bSlvKGIpcShlci4pMzEgYihGKWwob3IpMTgKLWIoZXhhbXBsZSwpaShmb3IpZShSZWFkbGluZS00LjIsKWkgRnQocmxfcmVhZGxpbmVfdmVyc2lvbikxOTUKLTE3OTMgeSBGdSh3KW8ob3VsZCljKGhhKW8odilvKGUpZSh0aGUpaSh2KW0oYWx1ZSlnKDB4MDQwMi4pMTc3MwotMTkwMyB5KFYpbChhcmlhYmxlKS0xODYxIGIgRmkoaW50KTIwIGIgRmgocmwpcCAyMTUgMTkwMwotViAyMSB3KGduKW4odSlwIDMyNyAxOTAzIFYgMjAgdyhyZWFkbGluZSlwIDU0NSAxOTAzIFYKLTIyIHcocCkxOTUgMTk1OCB5IEZ1KEFsdylvKGEpbyh5cykxNSBiKHNldClnKHRvKWYoMSwpaChkZW5vdGluZyloKHRoYXQpCi1lKHRoaXMpaShpcylnIEZwKGdudSlmIEZ1KHJlYWRsaW5lKWgocmF0aGVyKWYodGhhbilnKHNvbWUpZyhlbSlvCi0odWxhdGlvbi4pMTc3MyAyMDY3IHkoVilsKGFyaWFibGUpLTE4NjEgYiBGaShjb25zdCkyMAotYihjaGFyKWcoKilmIEZoKHJsKXAgNDM2IDIwNjcgViAyMSB3KHRlcm1pbmFsKXAgNjY4IDIwNjcKLVYgMjEgdyhuYW1lKTE5NSAyMTIyIHkgRnUoVGhlKTE0IGIodGVybWluYWwpaCh0KW8oeXApcShlLClmKHVzZWQpaChmb3IpCi1lKGluaXRpYWxpemF0aW9uLikyMyBiKElmKTE0IGIobm90KWYoc2V0KWgoYilvKHkpZyh0aGUpZyhhcHBsaWNhdGlvbiwpaQotKFJlYWRsaW5lKWYoc2V0cykxOTUgMjE3NyB5KHRoaXMpaCh0byllKHRoZSloKHYpbShhbHVlKWkob2YpZSh0aGUpZwotRnQoVEVSTSlnIEZ1KGVuKW8odmlyb25tZW4pbyh0KWcodiltKGFyaWFibGUpaSh0aGUpZShcMDE0cnN0KWcodGltZSlnCi0oaXQpaChpcylmKGNhbGxlZC4pMTc3MyAyMjg2IHkoVilsKGFyaWFibGUpLTE4NjEgYiBGaShjb25zdCkyMAotYihjaGFyKWcoKilmIEZoKHJsKXAgNDM2IDIyODYgViAyMSB3KHJlYWRsaW5lKXAgNjU1IDIyODYKLVYgMjIgdyhuYW1lKTE5NSAyMzQxIHkgRnUoVGhpcylkKHYpbShhcmlhYmxlKWgoaXMpZihzZXQpZyh0bylmKGEpZwotKHVuaXF1ZSlpKG5hbWUpZihiKW8oeSlmKGVhYylvKGgpaChhcHBsaWNhdGlvbiloKHVzaW5nKWYoUmVhZGxpbmUuKTIzCi1iKFRoZSkxNiBiKHYpbShhbHVlKTE5NSAyMzk2IHkoYWxsbylvKHdzKWUoY29uZGl0aW9uYWwpaShwYXJzaW5nKWUob2YpZwotKHRoZSlnKGlucHV0cmMpaChcMDE0bGUpZyhcKHNlZSlmKFNlY3Rpb24paCgxLjMuMilkKFtDb25kaXRpb25hbClqCi0oSW5pdClnKENvbi0pMTk1IDI0NTEgeShzdHJ1Y3RzXSwpZihwYWdlKWgoOVwpLikxNzczCi0yNTYwIHkoVilsKGFyaWFibGUpLTE4NjEgYiBGaShGSUxFKTIwIGIoKilmIEZoKHJsKXAgMjg2Ci0yNTYwIFYgMjEgdyhpbnN0cmVhbSkxOTUgMjYxNSB5IEZ1KFRoZSlpKHN0ZGlvKWYoc3RyZWFtKWcoZnJvbSlnKHdoaWMpbwotKGgpaChSZWFkbGluZSloKHJlYWRzKWUoaW5wdXQuKTM3IGIoSWYpMjEgYiBGdChOVUxMKXAKLUZ1KCwpZyhSZWFkbGluZSloKGRlZmF1bHRzKWYodG8pMTk1IDI2NzAgeSBGayhzdGRpbilwCi1GdSguKXAgZW9wCi0lJVBhZ2U6IDI2IDI4Ci0yNiAyNyBib3AgNzUgLTU4IGEgRnUoMjYpMTI5OSBiKEdOVSkxNSBiKFJlYWRsaW5lKWgoTGlicmFyeSkxNzczCi0xNDkgeShWKWwoYXJpYWJsZSktMTg2MSBiIEZpKEZJTEUpMjAgYigqKWYgRmgocmwpcCAyODYKLTE0OSAxOCAzIHYgMjEgdyhvdXRzdHJlYW0pMTk1IDIwNCB5IEZ1KFRoZSllKHN0ZGlvKWgoc3RyZWFtKWUodG8paAotKHdoaWMpbyhoKWgoUmVhZGxpbmUpZyhwKXEoZXJmb3JtcylmKG91dHB1dC4pMjYgYihJZikxOAotYiBGdChOVUxMKXAgRnUoLCllKFJlYWRsaW5lKWooZGVmYXVsdHMpZih0bykxOTUgMjU5IHkKLUZrKHN0ZG91dClwIEZ1KC4pMTc3MyAzODEgeShWKWwoYXJpYWJsZSktMTg2MSBiIEZpKHJsX2NvbW1hbmRfZnVuY190KTIyCi1iKCopZCBGaChybClwIDYyNiAzODEgViAyMSB3KGxhc3QpcCA3MzUgMzgxIFYgMjEgdyhmdW5jKTE5NQotNDM2IHkgRnUoVGhlKWYoYWRkcmVzcylmKG9mKWcodGhlKWcobGFzdCloKGNvbW1hbmQpZihmdW5jdGlvbiloCi0oUmVhZGxpbmUpaChleGVjdXRlZC4pMjcgYihNYSlvKHkpMTcgYihiKXEoZSloKHVzZWQpZyh0bylmKHRlc3QpMTk1Ci00OTAgeSh3aGV0aGVyKWUob3IpZyhub3QpZyhhKWcoZnVuY3Rpb24paChpcylmKGIpcShlaW5nKWkoZXhlY3V0ZWQpZih0KQotbyh3aWNlKWcoaW4pZyhzdWNjZXNzaW9uLClnKGZvcillKGV4YW1wbGUuKTE3NzMgNjEyIHkoVilsKGFyaWFibGUpLTE4NjEKLWIgRmkocmxfaG9va19mdW5jX3QpMjEgYigqKWUgRmgocmwpcCA1NDcgNjEyIFYgMjIgdyhzdGFydHVwKXAKLTc1MiA2MTIgViAxOSB3KGhvKXIob2spMTk1IDY2NyB5IEZ1KElmKWUobm9uLXplcm8sKWgodGhpcylnKGlzKWYodGhlKWgKLShhZGRyZXNzKWYob2YpZihhKWgoZnVuY3Rpb24paCh0bylmKGNhbGwpaChqdXN0KWYoYilxKGVmb3JlKWcKLUZ0KHJlYWRsaW5lKWYgRnUocHJpbilvKHRzKWkodGhlKTE5NSA3MjIgeShcMDE0cnN0KWQocHJvbXB0LikxNzczCi04NDQgeShWKWwoYXJpYWJsZSktMTg2MSBiIEZpKHJsX2hvb2tfZnVuY190KTIxIGIoKillCi1GaChybClwIDU0NyA4NDQgViAyMiB3KHByZSlwIDY1MSA4NDQgViAyMCB3KGlucHV0KXAgODA0Ci04NDQgViAyMSB3KGhvKXIob2spMTk1IDg5OCB5IEZ1KElmKWYobm9uLXplcm8sKWcodGhpcylnKGlzKWgodGhlKWYKLShhZGRyZXNzKWYob2YpaChhKWYoZnVuY3Rpb24paSh0byllKGNhbGwpaShhZnRlcillKHRoZSloKFwwMTRyc3QpZgotKHByb21wdClnKGhhcyloKGIpcShlZW4pMTk1IDk1MyB5KHByaW4pbyh0ZWQpZShhbmQpZihqdXN0KWcoYilxKGVmb3JlKWgKLUZ0KHJlYWRsaW5lKWUgRnUoc3RhcnRzKWcocmVhZGluZyloKGlucHV0KWkoYylvKGhhcmFjdGVycy4pMTc3MwotMTA3NSB5KFYpbChhcmlhYmxlKS0xODYxIGIgRmkocmxfaG9va19mdW5jX3QpMjEgYigqKWUKLUZoKHJsKXAgNTQ3IDEwNzUgViAyMiB3KGV2KW4oZW4pbih0KXAgNzAxIDEwNzUgViAyMiB3KGhvKXIob2spMTk1Ci0xMTMwIHkgRnUoSWYpaShub24temVybywpZyh0aGlzKWcoaXMpZyh0aGUpZihhZGRyZXNzKWcob2YpZyhhKWcKLShmdW5jdGlvbiloKHRvKWYoY2FsbClpKHApcShlcmlvKXEoZGljYWxseSloKHdoZW4pZShSZWFkbGluZSlnKGlzKTE5NQotMTE4NCB5KHcpbyhhaXRpbmcpMTUgYihmb3IpZih0ZXJtaW5hbCloKGlucHV0LikyMSBiKEJ5KTE0Ci1iKGRlZmF1bHQsKWgodGhpcylnKHdpbGwpaShiKXEoZSllKGNhbGxlZCloKGF0KWUobW9zdClnKHRlbilnKHRpbWVzKWgKLShhKWYoc2Vjb25kKTE5NSAxMjM5IHkoaWYpaSh0aGVyZSlmKGlzKWgobm8pZihrKW8oZXliKXEob2FyZClnKGlucHV0LikKLTE3NzMgMTM2MSB5KFYpbChhcmlhYmxlKS0xODYxIGIgRmkocmxfZ2V0Y19mdW5jX3QpMjEKLWIoKillIEZoKHJsKXAgNTQ3IDEzNjEgViAyMiB3KGdldGMpcCA2NzEgMTM2MSBWIDIxIHcoZnVuY3Rpb24pMTk1Ci0xNDE2IHkgRnUoSWYpYyhub24temVybywpaChSZWFkbGluZSlnKHdpbGwpaChjYWxsKWYoaW5kaXJlY3RseSlpCi0odGhyb3VnaClkKHRoaXMpZyhwKXEob2luKW8odGVyKWgodG8pZihnZXQpZihhKWgoYylvKGhhcmFjdGVyKWcoZnJvbSkKLTE5NSAxNDcxIHkodGhlKWsoaW5wdXQpaShzdHJlYW0uKTMxIGIoQnkpMTkgYihkZWZhdWx0LCloKGl0KWcoaXMpZyhzZXQpCi1mKHRvKWYgRnQocmxfZ2V0YylwIEZ1KCwpaCh0aGUpZyhkZWZhdWx0KWgoUmVhZGxpbmUpaChjKW8oaGFyYWN0ZXIpMTk1Ci0xNTI1IHkoaW5wdXQpMTYgYihmdW5jdGlvbilnKFwoc2VlKWYoU2VjdGlvbiloKDIuNC44KWUoW0NoYXJhY3RlcilnCi0oSW5wdXRdLCloKHBhZ2UpZygzNFwpLikxNzczIDE2NDcgeShWKWwoYXJpYWJsZSktMTg2MQotYiBGaShybF92b2lkZnVuY190KTIxIGIoKillIEZoKHJsKXAgNTIxIDE2NDcgViAyMSB3KHJlZGlzcGxhKW4oeSlwCi03NjUgMTY0NyBWIDIyIHcoZnVuY3Rpb24pMTk1IDE3MDIgeSBGdShJZilmKG5vbi16ZXJvLCloKFJlYWRsaW5lKWcKLSh3aWxsKWgoY2FsbClmKGluZGlyZWN0bHkpaCh0aHJvdWdoKWUodGhpcylnKHApcShvaW4pbyh0ZXIpaCh0byllKHVwKXEKLShkYXRlKWkodGhlKWYoZGlzcGxhKW8oeSkxOTUgMTc1NyB5KHdpdGgpYyh0aGUpZihjdXJyZW4pbyh0KWgoY29uKW8KLSh0ZW4pbyh0cylmKG9mKWcodGhlKWcoZWRpdGluZylpKGJ1XDAxM2VyLilrKEJ5KTE0IGIoZGVmYXVsdCwpZyhpdClnCi0oaXMpZyhzZXQpZih0bylnIEZ0KHJsX3JlZGlzcGxheSlwIEZ1KCwpMTk1IDE4MTIgeSh0aGUpaShkZWZhdWx0KWgKLShSZWFkbGluZSloKHJlZGlzcGxhKW8oeSlmKGZ1bmN0aW9uKWcoXChzZWUpZihTZWN0aW9uKWgoMi40LjYpZQotKFtSZWRpc3BsYSlvKHldLCloKHBhZ2UpZygzM1wpLikxNzczIDE5MzMgeShWKWwoYXJpYWJsZSktMTg2MQotYiBGaShybF92aW50ZnVuY190KTIxIGIoKillIEZoKHJsKXAgNTIxIDE5MzMgViAyMSB3KHByZXApcAotNjU2IDE5MzMgViAyMSB3KHRlcm0pcCA3OTggMTkzMyBWIDE5IHcoZnVuY3Rpb24pMTk1IDE5ODgKLXkgRnUoSWYpMTIgYihub24temVybywpaChSZWFkbGluZSlnKHdpbGwpaChjYWxsKWYoaW5kaXJlY3RseSloKHRocm91Z2gpCi1lKHRoaXMpZyhwKXEob2luKW8odGVyKWgodG8pZShpbml0aWFsaXplKWsodGhlKWUodGVybWluYWwuKTE5NQotMjA0MyB5KFRoZSkxOSBiKGZ1bmN0aW9uKWcodGFrKW8oZXMpZihhKWcoc2luZ2xlKWkoYXJndW1lbilvKHQsKWUoYW4paAotRnQoaW50KWYgRnUoXDAxNWFnKWcodGhhdClnKHNhKW8oeXMpZyh3aGV0aGVyKWcob3IpaChub3QpZih0bylnKHVzZSkxOTUKLTIwOTggeShlaWdoKW8odC1iaXQpZyhjKW8oaGFyYWN0ZXJzLikyNSBiKEJ5KTE3IGIoZGVmYXVsdCwpaCh0aGlzKWYoaXMpCi1oKHNldCllKHRvKWggRnQocmxfcHJlcF90ZXJtaW5hbCllIEZ1KFwoc2VlKWkoU2VjdGlvbiloKDIuNC45KTE5NQotMjE1MiB5KFtUKWwoZXJtaW5hbCllKE1hbmFnZW1lbilvKHRdLClkKHBhZ2UpaSgzNVwpLikxNzczCi0yMjc0IHkoVilsKGFyaWFibGUpLTE4NjEgYiBGaShybF92b2lkZnVuY190KTIxIGIoKillCi1GaChybClwIDUyMSAyMjc0IFYgMjEgdyhkZXByZXApcCA3MTQgMjI3NCBWIDIxIHcodGVybSlwCi04NTYgMjI3NCBWIDE5IHcoZnVuY3Rpb24pMTk1IDIzMjkgeSBGdShJZilnKG5vbi16ZXJvLClnKFJlYWRsaW5lKWcKLSh3aWxsKWgoY2FsbClnKGluZGlyZWN0bHkpZyh0aHJvdWdoKWUodGhpcyloKHApcShvaW4pbyh0ZXIpZih0bylnCi0ocmVzZXQpZyh0aGUpaCh0ZXJtaW5hbC4pMTk1IDIzODQgeShUaGlzKWYoZnVuY3Rpb24pZyhzaG91bGQpaCh1bmRvKWYKLSh0aGUpZihlXDAxM2VjdHMpaChvZilmIEZ0KHJsX3ByZXBfdGVybV9mdW5jdGlvbilwIEZ1KC4pMjQKLWIoQnkpMTcgYihkZWZhdWx0LClpKHRoaXMpMTk1IDI0MzkgeShpcylkKHNldClmKHRvKWYKLUZ0KHJsX2RlcHJlcF90ZXJtaW5hbClmIEZ1KFwoc2VlKWkoU2VjdGlvbiloKDIuNC45KWUoW1QpbChlcm1pbmFsKWkKLShNYW5hZ2VtZW4pbyh0XSwpZChwYWdlKWkoMzVcKS4pMTc3MyAyNTYwIHkoVilsKGFyaWFibGUpLTE4NjEKLWIgRmkoS2V5bWFwKTIwIGIgRmgocmwpcCAyOTMgMjU2MCBWIDIxIHcoZXhlY3V0aW5nKXAKLTU1MSAyNTYwIFYgMjIgdyhrKW4oZXltYXApMTk1IDI2MTUgeSBGdShUaGlzKWYodiltKGFyaWFibGUpZyhpcylmKHNldClnCi0odG8pZyh0aGUpZyhrKW8oZXltYXApZihcKHNlZSloKFNlY3Rpb24paCgyLjQuMillKFtLZXltYXBzXSwpZyhwYWdlKWgKLSgyOVwpKWYoaW4paSh3aGljKW8oaCkxOTUgMjY3MCB5KHRoZSljKGN1cnJlbilvKHRseSloKGV4ZWN1dGluZylnCi0ocmVhZGxpbmUpaChmdW5jdGlvbilmKHcpbyhhcylmKGZvdW5kLilwIGVvcAotJSVQYWdlOiAyNyAyOQotMjcgMjggYm9wIDc1IC01OCBhIEZ1KENoYXB0ZXIpMTUgYigyOilrKFByb2dyYW1taW5nKWMod2l0aClnKEdOVSlnCi0oUmVhZGxpbmUpODQzIGIoMjcpMTc3MyAxNDkgeShWKWwoYXJpYWJsZSktMTg2MSBiIEZpKEtleW1hcCkyMAotYiBGaChybClwIDI5MyAxNDkgMTggMyB2IDIxIHcoYmluZGluZylwIDUwMSAxNDkgViAyMgotdyhrKW4oZXltYXApMTk1IDIwNCB5IEZ1KFRoaXMpZih2KW0oYXJpYWJsZSlnKGlzKWYoc2V0KWcodG8pZyh0aGUpZyhrKW8KLShleW1hcClmKFwoc2VlKWgoU2VjdGlvbiloKDIuNC4yKWUoW0tleW1hcHNdLClnKHBhZ2UpaCgyOVwpKWYoaW4paQotKHdoaWMpbyhoKTE5NSAyNTkgeSh0aGUpYyhsYXN0KWcoaylvKGV5KWcoYmluZGluZylqKG8pcShjY3VycmVkLikxNzczCi0zODMgeShWKWwoYXJpYWJsZSktMTg2MSBiIEZpKGNoYXIpMjAgYigqKWYgRmgocmwpcCAyODYKLTM4MyBWIDIxIHcoZXhlY3V0aW5nKXAgNTQ0IDM4MyBWIDIyIHcobWFjcm8pMTk1IDQzOCB5Ci1GdShUaGlzKWQodiltKGFyaWFibGUpZyhpcylnKHNldClmKHRvKWcodGhlKWcodGV4dClnKG9mKWYoYW4pbyh5KWgKLShjdXJyZW4pbyh0bHktZXhlY3V0aW5nKWkobWFjcm8uKTE3NzMgNTYyIHkoVilsKGFyaWFibGUpLTE4NjEKLWIgRmkoaW50KTIwIGIgRmgocmwpcCAyMTUgNTYyIFYgMjEgdyhyZWFkbGluZSlwIDQzNCA1NjIKLVYgMjIgdyhzdGF0ZSkxOTUgNjE3IHkgRnUoQSlkKHYpbShhcmlhYmxlKWkod2l0aCllKGJpdCloKHYpbShhbHVlcyloCi0odGhhdClkKGVuY2Fwc3VsYXRlKWkodGhlKWcoY3VycmVuKW8odClmKFJlYWRsaW5lKWgoc3RhdGUuKTI1Ci1iKEEpMTggYihiaXQpZihpcyloKHNldCkxOTUgNjcxIHkod2l0aCloKHRoZSlnIEZ0KFJMX1NFVFNUQVRFKWYKLUZ1KG1hY3JvLCloKGFuZClnKHVuc2V0KWcod2l0aClnKHRoZSlnIEZ0KFJMX1VOU0VUU1RBVEUpZQotRnUobWFjcm8uKTMxIGIoVXNlKTE5IGIodGhlKTE5NSA3MjYgeSBGdChSTF9JU1NUQVRFKWUKLUZ1KG1hY3JvKWgodG8pZyh0ZXN0KWcod2hldGhlciloKGEpZihwYXJ0aWN1bGFyKWkoc3RhdGUpZChiaXQpaihpcylmCi0oc2V0LikzMCBiKEN1cnJlbilvKHQpMTggYihzdGF0ZSlnKGJpdHMpMTk1IDc4MSB5KGluY2x1ZGU6KTE5NQotODY0IHkgRnQoUkxfU1RBVEVfTk9ORSk0MzUgOTE5IHkgRnUoUmVhZGxpbmUpZShoYXMpZyhub3QpZSh5KW8oZXQpaChiKXEKLShlZW4paChjYWxsZWQsKWgobm9yKWUoaGFzKWcoaXQpZyhiKXEoZWd1biloKHRvKWYoaW4pbyh0aWFsaXplLikxOTUKLTEwMDEgeSBGdChSTF9TVEFURV9JTklUSUFMSVpJTkcpNDM1IDEwNTYgeSBGdShSZWFkbGluZSloKGlzKWcKLShpbml0aWFsaXppKXEobmcpaShpdHMpZChpbilvKHRlcm5hbCloKGRhdGEpZihzdHJ1Y3R1cmVzLikxOTUKLTExMzggeSBGdChSTF9TVEFURV9JTklUSUFMSVpFRCk0MzUgMTE5MiB5IEZ1KFJlYWRsaW5lKWgoaGFzKWcKLShjb21wbGV0ZWQpZyhpdHMpZihpbml0aWFsaXphdGlvbi4pMTk1IDEyNzQgeSBGdChSTF9TVEFURV9URVJNUFJFUFBFRCkKLTQzNSAxMzI5IHkgRnUoUmVhZGxpbmUpaChoYXMpZShtbylxKGRpXDAxNGVkKWkodGhlKWUodGVybWluYWwpaChtbylxCi0oZGVzKWcodG8pZShkbylpKGl0cylmKG8pbyh3bilnKGlucHV0KWgoYW5kKWcocmVkaXMtKTQzNQotMTM4NCB5KHBsYSlvKHkpbCguKTE5NSAxNDY2IHkgRnQoUkxfU1RBVEVfUkVBRENNRCk0MzUKLTE1MjEgeSBGdShSZWFkbGluZSloKGlzKWcocmVhZGluZylnKGEpZihjb21tYW5kKWcoZnJvbSlmKHRoZSlpKGspbyhleWIpCi1xKG9hcmQuKTE5NSAxNjAzIHkgRnQoUkxfU1RBVEVfTUVUQU5FWFQpNDM1IDE2NTggeSBGdShSZWFkbGluZSlnKGlzKWcKLShyZWFkaW5nKWcobW9yZSlmKGlucHV0KWgoYWZ0ZXIpZShyZWFkaW5nKWkodGhlKWYobWV0YS1wcmVcMDE0eCloKGMpbwotKGhhcmFjdGVyLikxOTUgMTc0MCB5IEZ0KFJMX1NUQVRFX0RJU1BBVENISU5HKTQzNSAxNzk0Ci15IEZ1KFJlYWRsaW5lKWcoaXMpZyhkaXNwYXRjKW8oaGluZyloKHRvKWQoYSloKGNvbW1hbmQuKTE5NQotMTg3NiB5IEZ0KFJMX1NUQVRFX01PUkVJTlBVVCk0MzUgMTkzMSB5IEZ1KFJlYWRsaW5lKWgoaXMpZyhyZWFkaW5nKWcKLShtb3JlKWYoaW5wdXQpaCh3aGlsZSloKGV4ZWN1dGluZylmKGFuKWYoZWRpdGluZylpKGNvbW1hbmQuKTE5NQotMjAxMyB5IEZ0KFJMX1NUQVRFX0lTRUFSQ0gpNDM1IDIwNjggeSBGdShSZWFkbGluZSlmKGlzKWcocClxKGVyZm9ybWluZykKLWcoYW4pZihpbmNyZW1lbilvKHRhbCloKGhpc3RvcnkpZihzZWFyYylvKGguKTE5NSAyMTUwCi15IEZ0KFJMX1NUQVRFX05TRUFSQ0gpNDM1IDIyMDUgeSBGdShSZWFkbGluZSloKGlzKWcocClxKGVyZm9ybWluZylnKGEpZgotKG5vbi1pbmNyZW1lbilvKHRhbCloKGhpc3RvcnkpZyhzZWFyYylvKGguKTE5NSAyMjg3IHkKLUZ0KFJMX1NUQVRFX1NFQVJDSCk0MzUgMjM0MiB5IEZ1KFJlYWRsaW5lKTExIGIoaXMpZyhzZWFyYylvKGhpbmcpZyhiYWMpCi1vKGt3KW8oYXJkKWUob3IpaChmb3J3KW8oYXJkKWYodGhyb3VnaCloKHRoZSlnKGhpc3RvcnkpZyhmb3IpZihhKWgKLShzdHJpbmcuKTE5NSAyNDI0IHkgRnQoUkxfU1RBVEVfTlVNRVJJQ0FSRyk0MzUgMjQ3OCB5Ci1GdShSZWFkbGluZSkxNiBiKGlzKWcocmVhZGluZylnKGEpZihuKW8odW1lcmljKWgoYXJndW1lbilvKHQuKTE5NQotMjU2MCB5IEZ0KFJMX1NUQVRFX01BQ1JPSU5QVVQpNDM1IDI2MTUgeSBGdShSZWFkbGluZSlkKGlzKWcoY3VycmVuKW8KLSh0bHkpZyhnZXR0aW5nKWYoaXRzKWcoaW5wdXQpaChmcm9tKWUoYSloKHByZXZpb3VzbHktZGVcMDE0bmVkKWooaylvCi0oZXliKXEob2FyZCk0MzUgMjY3MCB5KG1hY3JvLilwIGVvcAotJSVQYWdlOiAyOCAzMAotMjggMjkgYm9wIDc1IC01OCBhIEZ1KDI4KTEyOTkgYihHTlUpMTUgYihSZWFkbGluZSloKExpYnJhcnkpMTk1Ci0xNDkgeSBGdChSTF9TVEFURV9NQUNST0RFRik0MzUgMjA0IHkgRnUoUmVhZGxpbmUpZyhpcylnKGN1cnJlbilvKHRseSlnCi0ocmVhZGluZylnKGMpbyhoYXJhY3RlcnMpZShkZVwwMTRuaW5nKWooYSllKGspbyhleWIpcShvYXJkKWcobWFjcm8uKTE5NQotMjg2IHkgRnQoUkxfU1RBVEVfT1ZFUldSSVRFKTQzNSAzNDEgeSBGdShSZWFkbGluZSloKGlzKWcoaW4pZyhvKW8odilvCi0oZXJ3cml0ZSlmKG1vKXEoZGUuKTE5NSA0MjMgeSBGdChSTF9TVEFURV9DT01QTEVUSU5HKTQzNQotNDc4IHkgRnUoUmVhZGxpbmUpaChpcylnKHApcShlcmZvcm1pbmcpZyh3KW8ob3JkKWUoY29tcGxldGlvbi4pMTk1Ci01NjAgeSBGdChSTF9TVEFURV9TSUdIQU5ETEVSKTQzNSA2MTUgeSBGdShSZWFkbGluZSlpKGlzKWcoY3VycmVuKW8odGx5KQotZyhleGVjdXRpbmcpZyh0aGUpZihyZWFkbGluZSlpKHNpZ25hbClmKGhhbmRsZXIuKTE5NQotNjk3IHkgRnQoUkxfU1RBVEVfVU5ET0lORyk0MzUgNzUyIHkgRnUoUmVhZGxpbmUpZyhpcylnKHApcShlcmZvcm1pbmcpZwotKGFuKWYodW5kby4pMTk1IDgzNCB5IEZ0KFJMX1NUQVRFX0RPTkUpNDM1IDg4OSB5IEZ1KFJlYWRsaW5lKWcoaGFzKWYKLShyZWFkKWcoYSlmKGspbyhleSloKHNlcXVlbmNlKWgoYilxKG91bmQpZyh0byllIEZ0KGFjY2VwdC1saW5lKWYKLUZ1KGFuZClpKGlzKWgoYWIpcShvdXQpZih0byk0MzUgOTQ0IHkocmV0dXJuKWgodGhlKWcobGluZSlpKHRvKWUodGhlKWcKLShjYWxsZXIuKTE3NzMgMTA2OCB5KFYpbChhcmlhYmxlKS0xODYxIGIgRmkoaW50KTIwIGIKLUZoKHJsKXAgMjE1IDEwNjggMTggMyB2IDIxIHcoZXhwbGljaXQpcCA0MTcgMTA2OCBWIDI0Ci13KGFyZykxOTUgMTEyMyB5IEZ1KFNldClmKHRvKWcoYSlnKG5vbi16ZXJvKWgodiltKGFsdWUpaChpZillKGFuKWgKLShleHBsaWNpdCloKG4pbyh1bWVyaWMpZyhhcmd1bWVuKW8odClkKHcpbyhhcyloKHNwKXEoZWNpXDAxNGVkKWkoYilvKHkpCi1mKHRoZSlmKHVzZXIuKTE5NSAxMTc4IHkoT25seSlkKHYpbShhbGlkKWgoaW4pZihhKWYoYmluZGFibGUpaShjb21tYW5kKQotZihmdW5jdGlvbi4pMTc3MyAxMzAyIHkoVilsKGFyaWFibGUpLTE4NjEgYiBGaShpbnQpMjAKLWIgRmgocmwpcCAyMTUgMTMwMiBWIDIxIHcobiluKHVtZXJpYylwIDQzNyAxMzAyIFYgMjAKLXcoYXJnKTE5NSAxMzU3IHkgRnUoU2V0KWoodG8pZih0aGUpZyh2KW0oYWx1ZSlpKG9mKWYoYW4pbyh5KWYobilvCi0odW1lcmljKWgoYXJndW1lbilvKHQpZihleHBsaWNpdGx5KWsoc3ApcShlY2lcMDE0ZWQpZihiKW8oeSlkKHRoZSloCi0odXNlcilnKGIpcShlZm9yZSkxOTUgMTQxMiB5KGV4ZWN1dGluZykxNCBiKHRoZSlmKGN1cnJlbilvKHQpZwotKFJlYWRsaW5lKWgoZnVuY3Rpb24uKTIwIGIoT25seSkxNCBiKHYpbShhbGlkKWgoaW4pZihhKWYoYmluZGFibGUpaQotKGNvbW1hbmQpZChmdW5jdGlvbi4pMTc3MyAxNTM2IHkoVilsKGFyaWFibGUpLTE4NjEgYgotRmkoaW50KTIwIGIgRmgocmwpcCAyMTUgMTUzNiBWIDIxIHcoZWRpdGluZylwIDQwNyAxNTM2Ci1WIDIyIHcobW8pcihkZSkxOTUgMTU5MSB5IEZ1KFNldCkxMyBiKHRvKWYoYSlnKHYpbShhbHVlKWkoZGVub3RpbmcpZgotKFJlYWRsaW5lJ3MpZyhjdXJyZW4pbyh0KWcoZWRpdGluZyloKG1vKXEoZGUuKTE5IGIoQSkxMgotYih2KW0oYWx1ZSlpKG9mKWUgRmsoMSlrIEZ1KG1lYW5zKWQoUmVhZGxpbmUpMTk1IDE2NDYKLXkoaXMpaihjdXJyZW4pbyh0bHkpZihpbiloKGVtYWNzKWcobW8pcShkZTspZiBGaygwKWoKLUZ1KG1lYW5zKWQodGhhdClnKHZpKWgobW8pcShkZSlmKGlzKWgoYWN0aXYpbyhlLik3NSAxNzgxCi15IEZzKDIuNCkzMyBiKFJlYWRsaW5lKTIzIGIoQ29uKW4odiluKGVuaWVuY2UpZyhGKS02Ci1iKHVuY3Rpb25zKTc1IDE5MjcgeSBGaigyLjQuMSkzMCBiKE5hbWluZykyMCBiKGEpZyhGKS01Ci1iKHVuY3Rpb24pMTM3IDIwMjUgeSBGdShUaGUpMjAgYih1c2VyKWcoY2FuKWcoZHluYW1pY2FsbHkpaShjKW8oaGFuZ2UpZQotKHRoZSlnKGJpbmRpbmdzKWkob2YpZChrKW8oZXlzKWgod2hpbGUpaCh1c2luZylnKFJlYWRsaW5lLikzNQotYihUaGlzKTIwIGIoaXMpNzUgMjA4MCB5KGRvbmUpZihiKW8oeSlmKHJlcHJlc2VuKW8odGluZyloKHRoZSlnCi0oZnVuY3Rpb24pZyh3aXRoKWcoYSlmKGRlc2NyaXB0aXYpbyhlKWkobmFtZS4pMjkgYihUaGUpMTkKLWIodXNlcilmKGlzKWgoYWJsZSloKHRvKWQodClvKHlwKXEoZSlpKHRoZSk3NSAyMTM1IHkoZGVzY3JpcHRpdilvKGUpZQotKG5hbWUpZSh3aGVuKWgocmVmZXJyaW5nKWYodG8pZyh0aGUpZyhmdW5jdGlvbi4pMjEgYihUaClvKHVzLCkxNAotYihpbilpKGFuKWYoaW5pdClpKFwwMTRsZSwpZihvbmUpZihtaWdoKW8odClnKFwwMTRuZCkxOTUKLTIyMDIgeSBGdChNZXRhLVJ1Ym91dDopNDYgYihiYWNrd2FyZC1raWxsLXdvcmQpMTM3IDIyNzIKLXkgRnUoVGhpcykyMSBiKGJpbmRzKWcodGhlKWYoaylvKGV5c3Ryb2spbyhlKTY2MSAyMjcwCi15IEZuKGgpcCA2NzMgMjI0NCAyMDkgMiB2IDY3MyAyMjcyIGEgRm0oTWV0YS1SdWIpcShvdXQpcAotNjczIDIyNzkgViA4NzkgMjI3MCBhIEZuKGkpOTE0IDIyNzIgeSBGdSh0bylnKHRoZSlnKGZ1bmN0aW9uKWcKLUZsKGRlc2NyaXB0aXZlbHkpayBGdShuYW1lZCljIEZ0KGJhY2t3YXJkLSk3NSAyMzI2IHkoa2lsbC13b3JkKXAKLUZ1KC4pMjkgYihZKWwob3UsKTE5IGIoYXMpZih0aGUpaChwcm9ncmFtbWVyLClmKHNob3VsZClpKGJpbmQpZih0aGUpZwotKGZ1bmN0aW9ucyloKHkpbyhvdSllKHdyaXRlKWgodG8pZShkZXNjcmlwdGl2KW8oZSk3NQotMjM4MSB5KG5hbWVzKWUoYXMpZyh3KW8oZWxsLikyMSBiKFJlYWRsaW5lKTE2IGIocHJvKW8odmlkZXMpZyhhKWYKLShmdW5jdGlvbiloKGZvcillKGRvaW5nKWkodGhhdDopMTc2MiAyNTA2IHkoRilsKHVuY3Rpb24pLTE4NjEKLWIgRmkoaW50KTIwIGIgRmgocmwpcCAyMTUgMjUwNiAxOCAzIHYgMjEgdyhhZGQpcCAzMjgKLTI1MDYgViAyMCB3KGRlZnVuKWkgRmcoXCgpcCBGdChjb25zdCkxNCBiKGNoYXIpaCgqbmFtZSwpZgotKHJsX2NvbW1hbmRfZnVuY190KTI4MyAyNTYwIHkoKmZ1bmN0aW9uLClmKGludClpKGtleSlwCi1GZyhcKSkxOTUgMjYxNSB5IEZ1KEFkZClqIEZrKG5hbWUpaSBGdSh0bylkKHRoZSloKGxpc3QpaChvZillKG5hbWVkKWgKLShmdW5jdGlvbnMuKTI4IGIoTWFrKW8oZSkxNyBiIEZrKGZ1bmN0aW9uKWggRnUoYilxKGUpZyh0aGUpZyhmdW5jdGlvbiloCi0odGhhdClkKGdldHMpMTk1IDI2NzAgeShjYWxsZWQuKTIxIGIoSWYpMTYgYiBGayhrKW8oZXkpagotRnUoaXMpZChub3QpZSgtMSwpaCh0aGVuKWgoYmluZClnKGl0KWcodG8pZSBGayhmdW5jdGlvbilpCi1GdSh1c2luZylnIEZ0KHJsX2JpbmRfa2V5XChcKSlwIEZ1KC4pcCBlb3AKLSUlUGFnZTogMjkgMzEKLTI5IDMwIGJvcCA3NSAtNTggYSBGdShDaGFwdGVyKTE1IGIoMjopayhQcm9ncmFtbWluZyljKHdpdGgpZyhHTlUpZwotKFJlYWRsaW5lKTg0MyBiKDI5KTEzNyAxNDkgeShVc2luZykxNiBiKHRoaXMpZihmdW5jdGlvbiloKGFsb25lKWcoaXMpZgotKHN1XDAxNmNpZW4pbyh0KWgoZm9yKWYobW9zdClmKGFwcGxpY2F0aW9ucy4pMjEgYihJdCkxNQotYihpcyloKHRoZSlmKHJlY29tbWVuZGVkKWgodylvKGEpbyh5KTc1IDIwNCB5KHRvKWQoYWRkKWgoYSlmKGZldylnCi0oZnVuY3Rpb25zKWgodG8pZih0aGUpaChkZWZhdWx0KWcoZnVuY3Rpb25zKWcodGhhdClmKFJlYWRsaW5lKWkoaGFzKWUKLShidWlsdClpKGluLikyMCBiKElmKTE0IGIoeSlvKG91KWYobmVlZCloKHRvKWYoZG8pNzUKLTI1OSB5KHNvbWV0aGluZylrKG90aGVyKWcodGhhbilmKGFkZGluZylpKGEpZShmdW5jdGlvbilpKHRvKWUKLShSZWFkbGluZSwpaSh5KW8ob3UpZihtYSlvKHkpZihuZWVkKWkodG8pZSh1c2UpaCh0aGUpZyh1bmRlcmx5aW5nKTc1Ci0zMTQgeShmdW5jdGlvbnMpZihkZXNjcmliKXEoZWQpaChiKXEoZWxvKW8ody4pNzUgNDQyCi15IEZqKDIuNC4yKTMwIGIoU2VsZWN0aW5nKTIwIGIoYSloKEtleW1hcCkxMzcgNTQ2IHkgRnUoS2V5KTE2Ci1iKGJpbmRpbmdzKWkodGFrKW8oZSljKHBsYWNlKWoob24pZShhKWcgRmsoaylvKGV5bWFwKXAKLUZ1KC4pMjEgYihUaGUpMTUgYihrKW8oZXltYXApaChpcylmKHRoZSloKGFzc28pcShjaWF0aW9uKWcoYilxKGV0KW8odylvCi0oZWVuKWcodGhlKWYoaylvKGV5cyk3NSA2MDEgeSh0aGF0KWYodGhlKWcodXNlcilnKHQpbyh5cClxKGVzKWcoYW5kKWgKLSh0aGUpZihmdW5jdGlvbnMpaCh0aGF0KWYoZ2V0KWcocnVuLikxOSBiKFkpbChvdSljKGNhbilmKG1haylvKGUpZyh5KW8KLShvdXIpZyhvKW8od24pZihrKW8oZXltYXBzLCloKGNvcClvKHkpNzUgNjU2IHkoZXhpc3RpbmcpaShrKW8oZXltYXBzLClmCi0oYW5kKWcodGVsbCloKFJlYWRsaW5lKWgod2hpYylvKGgpZihrKW8oZXltYXApZih0bylmKHVzZS4pMTc2MgotNzk3IHkoRilsKHVuY3Rpb24pLTE4NjEgYiBGaShLZXltYXApMjAgYiBGaChybClwIDI5MwotNzk3IDE4IDMgdiAyMSB3KG1hayluKGUpcCA0NDUgNzk3IFYgMjAgdyhiYXJlKXAgNTc1IDc5NwotViAyMCB3KGspbihleW1hcClqIEZnKFwoKXAgRnQodm9pZClwIEZnKFwpKTE5NSA4NTEgeQotRnUoUmV0dXJucykxMiBiKGEpZihuZXcsKWkoZW1wdClvKHkpZihrKW8oZXltYXAuKTE4IGIoVGhlKTEzCi1iKHNwYWNlKWYoZm9yKWYodGhlKWkoaylvKGV5bWFwKWUoaXMpaShhbGxvKXEoY2F0ZWQpZyh3aXRoKWYKLUZ0KG1hbGxvY1woXCkpcCBGdSg7KTE5NSA5MDYgeSh0aGUpaihjYWxsZXIpaShzaG91bGQpZihmcmVlKWYoaXQpaChiKW8KLSh5KWYoY2FsbGluZylpIEZ0KHJsX2Rpc2NhcmRfa2V5bWFwXChcKSkxMiBiIEZ1KHdoZW4payhkb25lLikxNzYyCi0xMDQ3IHkoRilsKHVuY3Rpb24pLTE4NjEgYiBGaShLZXltYXApMjAgYiBGaChybClwIDI5MwotMTA0NyBWIDIxIHcoY29wKW4oeSlwIDQyOCAxMDQ3IFYgMjEgdyhrKW4oZXltYXApaiBGZyhcKClwCi1GdChLZXltYXApMTQgYihtYXApcCBGZyhcKSkxOTUgMTEwMiB5IEZ1KFJldHVybiloKGEpZyhuZXcpZyhrKW8oZXltYXApZwotKHdoaWMpbyhoKWgoaXMpZyhhKWYoY29wKW8oeSlnKG9mKWcgRmsobWFwKXAgRnUoLikxNzYyCi0xMjQzIHkoRilsKHVuY3Rpb24pLTE4NjEgYiBGaShLZXltYXApMjAgYiBGaChybClwIDI5MwotMTI0MyBWIDIxIHcobWFrKW4oZSlwIDQ0NSAxMjQzIFYgMjAgdyhrKW4oZXltYXApaiBGZyhcKClwCi1GdCh2b2lkKXAgRmcoXCkpMTk1IDEyOTggeSBGdShSZXR1cm4pMTYgYihhKWYobmV3KWkoaylvKGV5bWFwKWUod2l0aClpCi0odGhlKWYocHJpbilvKHRpbmcpaChjKW8oaGFyYWN0ZXJzKWUoYilxKG91bmQpaSh0byllKHJsKXAKLTE0NTcgMTI5OCAxNCAyIHYgMTcgdyhpbnNlcnQsKWgodGhlKWcobG8pbyh3KW8oZXJjYXNlKTE5NQotMTM1MyB5KE1ldGEpMTEgYihjKW8oaGFyYWN0ZXJzKWYoYilxKG91bmQpaSh0bylmKHJ1biloKHRoZWlyKWYoZXF1aXYpbQotKGFsZW4pbyh0cywpaihhbmQpZCh0aGUpaChNZXRhKWUoZGlnaXRzKWkoYilxKG91bmQpZyh0bylmKHBybylxKGR1Y2UpCi0xOTUgMTQwNyB5KG4pbyh1bWVyaWMpMTYgYihhcmd1bWVuKW8odHMuKTE3NjIgMTU0OCB5KEYpbCh1bmN0aW9uKS0xODYxCi1iIEZpKHZvaWQpMjAgYiBGaChybClwIDI0MSAxNTQ4IDE4IDMgdiAyMSB3KGRpc2NhcmQpcAotNDQxIDE1NDggViAyMSB3KGspbihleW1hcClpIEZnKFwoKXAgRnQoS2V5bWFwKTE0IGIoa2V5bWFwKXAKLUZnKFwpKTE5NSAxNjAzIHkgRnUoRilsKHJlZSloKHRoZSloKHN0b3JhZ2UpZChhc3NvKXEoY2lhdGVkKWood2l0aClmCi1GayhrKW8oZXltYXApcCBGdSguKTEzNyAxNzExIHkoUmVhZGxpbmUpMjQgYihoYXMpZihzZXYpbyhlcmFsKWcoaW4pbwotKHRlcm5hbClnKGspbyhleW1hcHMuKTQyIGIoVGhlc2UpMjMgYihmdW5jdGlvbnMpZyhhbGxvKW8odylnKHkpbyhvdSlmCi0odG8pZyhjKW8oaGFuZ2UpaCh3aGljKW8oaCk3NSAxNzY2IHkoaylvKGV5bWFwKTE1IGIoaXMpaChhY3RpdilvKGUuKQotMTc2MiAxOTA3IHkoRilsKHVuY3Rpb24pLTE4NjEgYiBGaShLZXltYXApMjAgYiBGaChybClwCi0yOTMgMTkwNyBWIDIxIHcoZ2V0KXAgMzkxIDE5MDcgViAyMSB3KGspbihleW1hcClpIEZnKFwoKXAKLUZ0KHZvaWQpcCBGZyhcKSkxOTUgMTk2MiB5IEZ1KFJldHVybnMpMTUgYih0aGUpZyhjdXJyZW4pbyh0bHkpaChhY3RpdilvCi0oZSlmKGspbyhleW1hcC4pMTc2MiAyMTAzIHkoRilsKHVuY3Rpb24pLTE4NjEgYiBGaSh2b2lkKTIwCi1iIEZoKHJsKXAgMjQxIDIxMDMgViAyMSB3KHNldClwIDMzMyAyMTAzIFYgMjEgdyhrKW4oZXltYXApaQotRmcoXCgpcCBGdChLZXltYXApMTQgYihrZXltYXApcCBGZyhcKSkxOTUgMjE1OCB5IEZ1KE1haylvKGVzKWcKLUZrKGspbyhleW1hcClqIEZ1KHRoZSllKGN1cnJlbilvKHRseSloKGFjdGl2KW8oZSlmKGspbyhleW1hcC4pMTc2MgotMjI5OCB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmkoS2V5bWFwKTIwIGIgRmgocmwpcCAyOTMKLTIyOTggViAyMSB3KGdldClwIDM5MSAyMjk4IFYgMjEgdyhrKW4oZXltYXApcCA2MDUgMjI5OAotViAyMCB3KGIpbih5KXAgNjg1IDIyOTggViAyMSB3KG5hbWUpaSBGZyhcKClwIEZ0KGNvbnN0KTE0Ci1iKGNoYXIpZygqbmFtZSlwIEZnKFwpKTE5NSAyMzUzIHkgRnUoUmV0dXJuKWkodGhlKWgoaylvKGV5bWFwKWYobWF0YylvCi0oaGluZyloIEZrKG5hbWUpcCBGdSguKTI0IGIgRmsobmFtZSkxOSBiIEZ1KGlzKWUob25lKWcod2hpYylvKGgpZyh3KW8KLShvdWxkKWcoYilxKGUpaChzdXBwbGllZCloKGluKWUoYSlmIEZ0KHNldCkxOTUgMjQwOCB5KGtleW1hcCllCi1GdShpbnB1dHJjKWoobGluZSlmKFwoc2VlKWcoU2VjdGlvbilnKDEuMyllKFtSZWFkbGluZSlpKEluaXQpZyhGaWxlXSwpZwotKHBhZ2UpZig0XCkuKTE3NjIgMjU0OSB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmkoY2hhcikyMAotYigqKWYgRmgocmwpcCAyODYgMjU0OSBWIDIxIHcoZ2V0KXAgMzg0IDI1NDkgViAyMSB3KGspbihleW1hcClwCi01OTggMjU0OSBWIDIwIHcobmFtZSlpIEZnKFwoKXAgRnQoS2V5bWFwKTE0IGIoa2V5bWFwKXAKLUZnKFwpKTE5NSAyNjA0IHkgRnUoUmV0dXJuKWkodGhlKWgobmFtZSlnKG1hdGMpbyhoaW5nKWYKLUZrKGspbyhleW1hcClwIEZ1KC4pMjQgYiBGayhuYW1lKTE5IGIgRnUoaXMpZShvbmUpZyh3aGljKW8oaClnKHcpbwotKG91bGQpZyhiKXEoZSloKHN1cHBsaWVkKWgoaW4pZShhKWYgRnQoc2V0KTE5NSAyNjU5IHkoa2V5bWFwKWUKLUZ1KGlucHV0cmMpaihsaW5lKWYoXChzZWUpZyhTZWN0aW9uKWcoMS4zKWUoW1JlYWRsaW5lKWkoSW5pdClnKEZpbGVdLClnCi0ocGFnZSlmKDRcKS4pcCBlb3AKLSUlUGFnZTogMzAgMzIKLTMwIDMxIGJvcCA3NSAtNTggYSBGdSgzMCkxMjk5IGIoR05VKTE1IGIoUmVhZGxpbmUpaChMaWJyYXJ5KTc1Ci0xNDkgeSBGaigyLjQuMykzMCBiKEJpbmRpbmcpMjAgYihLZXlzKTEzNyAyNDQgeSBGdShLZXkpMTMKLWIoc2VxdWVuY2VzKWcoYXJlKWUoYXNzbylxKGNpYXRlKWgod2l0aCloKGZ1bmN0aW9ucylmKHRocm91Z2gpZyh0aGUpZwotKGspbyhleW1hcC4pMTkgYihSZWFkbGluZSkxMyBiKGhhcylmKHNldilvKGVyYWwpZyhpbi0pNzUKLTI5OSB5KHRlcm5hbClqKGspbyhleW1hcHM6KWsgRnQoZW1hY3Nfc3RhbmRhcmRfa2V5bWFwKXAKLUZ1KCwpMTEgYiBGdChlbWFjc19tZXRhX2tleW1hcClwIEZ1KCwpaCBGdChlbWFjc19jdGx4X2tleW1hcClwCi1GdSgsKWcgRnQodmlfKTc1IDM1NCB5KG1vdmVtZW50X2tleW1hcClwIEZ1KCwpMjAgYihhbmQpaQotRnQodmlfaW5zZXJ0aW9uX2tleW1hcClwIEZ1KC4pMzUgYiBGdChlbWFjc19zdGFuZGFyZF9rZXltYXApMTgKLWIgRnUoaXMpayh0aGUpZihkZWZhdWx0LCk3NSA0MDggeShhbmQpMTUgYih0aGUpaChleGFtcGxlcylnKGluKWcodGhpcylmCi0obWFuKW8odWFsKWgoYXNzdW1lKWYodGhhdC4pMTM3IDQ3NCB5KFNpbmNlKWggRnQocmVhZGxpbmVcKFwpKWMKLUZ1KGluc3RhbGxzKWooYSlmKHNldClmKG9mKWgoZGVmYXVsdClnKGspbyhleSlnKGJpbmRpbmdzKWgodGhlKWYKLShcMDE0cnN0KWcodGltZSlnKGl0KWcoaXMpZyhjYWxsZWQsKWkodGhlcmUpZChpcyk3NSA1MjkKLXkoYWx3KW8oYSlvKHlzKWoodGhlKWcoZGFuZ2VyKWcodGhhdClnKGEpZyhjdXN0b20pZyhiaW5kaW5nKWkKLShpbnN0YWxsZWQpZyhiKXEoZWZvcmUpZih0aGUpZihcMDE0cnN0KWcoY2FsbClpKHRvKWQKLUZ0KHJlYWRsaW5lXChcKSlnIEZ1KHdpbGwpNzUgNTg0IHkoYilxKGUpZihvKW8odilvKGVycmlkZGVuLikxOQotYihBbikxMyBiKGFsdGVybmF0ZSlnKG1lYylvKGhhbmlzbSloKGlzKWYodG8pZihpbnN0YWxsKWkoY3VzdG9tKWYoaylvCi0oZXkpZyhiaW5kaW5ncyloKGluKWcoYW4pZihpbml0aWFsaXphdGlvbik3NSA2MzggeShmdW5jdGlvbikxOQotYihhc3NpZ25lZCloKHRvKWQodGhlKWkgRnQocmxfc3RhcnR1cF9ob29rKWUgRnUodiltKGFyaWFibGUpaihcKHNlZSllCi0oU2VjdGlvbiloKDIuMylmKFtSZWFkbGluZSlpKFYpbChhcmlhYmxlc10sKTc1IDY5MyB5KHBhZ2UpMTUKLWIoMjRcKS4pMTM3IDc1OSB5KFRoZXNlKWgoZnVuY3Rpb25zKWcobWFuYWdlKWUoaylvKGV5KWkoYmluZGluZ3MuKTE3NjIKLTg2OCB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmkoaW50KTIwIGIgRmgocmwpcCAyMTUgODY4Ci0xOCAzIHYgMjEgdyhiaW5kKXAgMzQ3IDg2OCBWIDIxIHcoayluKGV5KWsgRmcoXCgpcCBGdChpbnQpMTQKLWIoa2V5LCloKHJsX2NvbW1hbmRfZnVuY190KWQoKmZ1bmN0aW9uKXAgRmcoXCkpMTk1IDkyMgoteSBGdShCaW5kcykxOCBiIEZrKGspbyhleSlpIEZ1KHRvKWMgRmsoZnVuY3Rpb24paCBGdShpbiloKHRoZSllKGN1cnJlbikKLW8odGx5KWgoYWN0aXYpbyhlKWcoaylvKGV5bWFwLikyMyBiKFJldHVybnMpMTYgYihub24temVybyloKGluKWcodGhlKWcKLShjYXNlKTE5NSA5NzcgeShvZillKGFuKWcoaW4pbyh2KW0oYWxpZClpIEZrKGspbyhleSlwCi1GdSguKTE3NjIgMTA4NiB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmkoaW50KTIwIGIgRmgocmwpcAotMjE1IDEwODYgViAyMSB3KGJpbmQpcCAzNDcgMTA4NiBWIDIxIHcoayluKGV5KXAgNDUyIDEwODYKLVYgMjEgdyhpbilwIDUyMCAxMDg2IFYgMjIgdyhtYXApaCBGZyhcKClwIEZ0KGludCkxNCBiKGtleSwpaAotKHJsX2NvbW1hbmRfZnVuY190KWUoKmZ1bmN0aW9uLCkyODMgMTE0MSB5KEtleW1hcCloKG1hcClwCi1GZyhcKSkxOTUgMTE5NiB5IEZ1KEJpbmQpaSBGayhrKW8oZXkpaiBGdSh0byljIEZrKGZ1bmN0aW9uKWgKLUZ1KGluKWcgRmsobWFwKXAgRnUoLilrKFJldHVybnMpMTQgYihub24temVybylpKGluKWcodGhlKWYoY2FzZSlnKG9mKWcKLShhbilnKGluKW8odiltKGFsaWQpaiBGayhrKW8oZXkpcCBGdSguKTE3NjIgMTMwNCB5KEYpbCh1bmN0aW9uKS0xODYxCi1iIEZpKGludCkyMCBiIEZoKHJsKXAgMjE1IDEzMDQgViAyMSB3KHVuKW4oYmluZClwIDQwOQotMTMwNCBWIDIxIHcoayluKGV5KWsgRmcoXCgpcCBGdChpbnQpMTQgYihrZXkpcCBGZyhcKSkxOTUKLTEzNTkgeSBGdShCaW5kKTE5IGIgRmsoaylvKGV5KWogRnUodG8pYyh0aGUpZyhuKW8odWxsKWkoZnVuY3Rpb24pZihpbilnCi0odGhlKWYoY3VycmVuKW8odGx5KWcoYWN0aXYpbyhlKWgoaylvKGV5bWFwLikyOCBiKFJldHVybnMpMTgKLWIobm9uLXplcm8pZyhpbikxOTUgMTQxNCB5KGNhc2UpZChvZilnKGVycm9yLikxNzYyIDE1MjMKLXkoRilsKHVuY3Rpb24pLTE4NjEgYiBGaShpbnQpMjAgYiBGaChybClwIDIxNSAxNTIzIFYKLTIxIHcodW4pbihiaW5kKXAgNDA5IDE1MjMgViAyMSB3KGspbihleSlwIDUxNCAxNTIzIFYKLTIxIHcoaW4pcCA1ODIgMTUyMyBWIDIyIHcobWFwKWggRmcoXCgpcCBGdChpbnQpMTQgYihrZXksKWgoS2V5bWFwKWYKLShtYXApcCBGZyhcKSkxOTUgMTU3NyB5IEZ1KEJpbmQpaSBGayhrKW8oZXkpaiBGdSh0byljKHRoZSlnKG4pbyh1bGwpaQotKGZ1bmN0aW9uKWYoaW4pZyBGayhtYXApcCBGdSguKWsoUmV0dXJucykxNCBiKG5vbi16ZXJvKWkoaW4pZyhjYXNlKWYKLShvZilnKGVycm9yLikxNzYyIDE2ODYgeShGKWwodW5jdGlvbiktMTg2MSBiIEZpKGludCkyMAotYiBGaChybClwIDIxNSAxNjg2IFYgMjEgdyh1biluKGJpbmQpcCA0MDkgMTY4NiBWIDIxIHcoZnVuY3Rpb24pcAotNjM1IDE2ODYgViAyMSB3KGluKXAgNzAzIDE2ODYgViAyMSB3KG1hcCloIEZnKFwoKXAgRnQKLShybF9jb21tYW5kX2Z1bmNfdCkxMyBiKCpmdW5jdGlvbiwpMjgzIDE3NDEgeShLZXltYXApaChtYXApcAotRmcoXCkpMTk1IDE3OTYgeSBGdShVbilvKGJpbmQpaihhbGwpZihrKW8oZXlzKWYodGhhdClmKGV4ZWN1dGUpaQotRmsoZnVuY3Rpb24pZyBGdShpbilnIEZrKG1hcClwIEZ1KC4pMTc2MiAxOTA1IHkoRilsKHVuY3Rpb24pLTE4NjEKLWIgRmkoaW50KTIwIGIgRmgocmwpcCAyMTUgMTkwNSBWIDIxIHcodW4pbihiaW5kKXAgNDA5Ci0xOTA1IFYgMjEgdyhjb21tYW5kKXAgNjc0IDE5MDUgViAxNyB3KGluKXAgNzM4IDE5MDUgVgotMjIgdyhtYXApaCBGZyhcKClwIEZ0KGNvbnN0KTE0IGIoY2hhciloKCpjb21tYW5kLClmKEtleW1hcCkyODMKLTE5NTkgeShtYXApcCBGZyhcKSkxOTUgMjAxNCB5IEZ1KFVuKW8oYmluZClqKGFsbClmKGspbyhleXMpZih0aGF0KWYKLShhcmUpaChiKXEob3VuZCloKHRvKWYgRmsoY29tbWFuZClpIEZ1KGluKWYgRmsobWFwKXAKLUZ1KC4pMTc2MiAyMTIzIHkoRilsKHVuY3Rpb24pLTE4NjEgYiBGaShpbnQpMjAgYiBGaChybClwCi0yMTUgMjEyMyBWIDIxIHcoc2V0KXAgMzA3IDIxMjMgViAyMCB3KGspbihleSlrIEZnKFwoKXAKLUZ0KGNvbnN0KTE0IGIoY2hhciloKCprZXlzZXEsKWYocmxfY29tbWFuZF9mdW5jX3QpZigqZnVuY3Rpb24sKTI4MwotMjE3OCB5KEtleW1hcCloKG1hcClwIEZnKFwpKTE5NSAyMjMyIHkgRnUoQmluZClnKHRoZSllKGspbyhleSloCi0oc2VxdWVuY2UpaChyZXByZXNlbilvKHRlZClmKGIpbyh5KWYodGhlKWgoc3RyaW5nKWYgRmsoaylvKGV5c2VxKWkKLUZ1KHRvKWUodGhlKWcoZnVuY3Rpb24paSBGayhmdW5jdGlvbilwIEZ1KC4pMTkgYihUaGlzKTE5NQotMjI4NyB5KG1haylvKGVzKTEzIGIobmV3KWcoaylvKGV5bWFwcylnKGFzKWYobmVjZXNzYXJ5KWwoLikyMAotYihUaGUpMTMgYihpbml0aWFsKWooaylvKGV5bWFwKWMoaW4paSh3aGljKW8oaClnKHRvKWYoZG8pZyhiaW5kaW5ncylpCi0oaXMpZiBGayhtYXApcCBGdSguKTE3NjIgMjM5NiB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmkoaW50KTIwCi1iIEZoKHJsKXAgMjE1IDIzOTYgViAyMSB3KGdlbmVyaWMpcCA0MTMgMjM5NiBWIDIxIHcoYmluZClqCi1GZyhcKClwIEZ0KGludCkxNSBiKHR5cGUsKWYoY29uc3QpaChjaGFyKWYoKmtleXNlcSwpZyhjaGFyKWgoKmRhdGEsKTI4MwotMjQ1MSB5KEtleW1hcClmKG1hcClwIEZnKFwpKTE5NSAyNTA2IHkgRnUoQmluZCloKHRoZSllKGspbyhleSloCi0oc2VxdWVuY2UpaChyZXByZXNlbilvKHRlZCllKGIpbyh5KWgodGhlKWcoc3RyaW5nKWYgRmsoaylvKGV5c2VxKWkKLUZ1KHRvKWQodGhlKWkoYXJiaXRyYXJ5KWYocClxKG9pbilvKHRlciloIEZrKGRhdGEpcCBGdSguKTE5NQotMjU2MCB5IEZrKHQpbyh5cClxKGUpaiBGdShzYSlvKHlzKWMod2hhdCloKGtpbmQpaChvZilmKGRhdGEpZyhpcylnKHApcQotKG9pbilvKHRlZClpKHRvKWQoYilvKHkpaCBGayhkYXRhKXAgRnUoOylnKHRoaXMpaChjYW4pZihiKXEoZSloKGEpZgotKGZ1bmN0aW9uKWgoXCgpcCBGdChJU0ZVTkMpcCBGdShcKSwpZChhKTE5NSAyNjE1IHkobWFjcm8paShcKClwCi1GdChJU01BQ1IpcCBGdShcKSwpZihvciloKGEpaChrKW8oZXltYXApZihcKClwIEZ0KElTS01BUClwCi1GdShcKS4payhUaGlzKWUobWFrKW8oZXMpZShuZXcpaChrKW8oZXltYXBzKWYoYXMpaChuZWNlc3NhcnkpbCguKTIwCi1iKFRoZSkxOTUgMjY3MCB5KGluaXRpYWwpZChrKW8oZXltYXApZShpbiloKHdoaWMpbyhoKWcodG8pZihkbylnCi0oYmluZGluZ3MpaShpcylmIEZrKG1hcClwIEZ1KC4pcCBlb3AKLSUlUGFnZTogMzEgMzMKLTMxIDMyIGJvcCA3NSAtNTggYSBGdShDaGFwdGVyKTE1IGIoMjopayhQcm9ncmFtbWluZyljKHdpdGgpZyhHTlUpZwotKFJlYWRsaW5lKTg0MyBiKDMxKTE3NjIgMTQ5IHkoRilsKHVuY3Rpb24pLTE4NjEgYiBGaShpbnQpMjAKLWIgRmgocmwpcCAyMTUgMTQ5IDE4IDMgdiAyMSB3KHBhcnNlKXAgMzY5IDE0OSBWIDE5IHcoYW5kKXAKLTQ4MCAxNDkgViAyMSB3KGJpbmQpaiBGZyhcKClwIEZ0KGNoYXIpMTQgYigqbGluZSlwIEZnKFwpKTE5NQotMjA0IHkgRnUoUClvKGFyc2UpZyBGayhsaW5lKTE5IGIgRnUoYXMpMTQgYihpZiloKGl0KWcoaGFkKWcoYilxKGVlbiloCi0ocmVhZClmKGZyb20pZih0aGUpZyBGdChpbnB1dHJjKWcgRnUoXDAxNGxlKWkoYW5kKWYocClxKGVyZm9ybSlmKGFuKW8KLSh5KWgoaylvKGV5KWYoYmluZGluZ3MpMTk1IDI1OSB5KGFuZCloKHYpbShhcmlhYmxlKWkoYXNzaWdubWVuKW8odHMpZQotKGZvdW5kKWgoXChzZWUpZihTZWN0aW9uKWgoMS4zKWUoW1JlYWRsaW5lKWkoSW5pdClnKEZpbGVdLClnKHBhZ2UpZgotKDRcKS4pMTc2MiAzNTkgeShGKWwodW5jdGlvbiktMTg2MSBiIEZpKGludCkyMCBiIEZoKHJsKXAKLTIxNSAzNTkgViAyMSB3KHJlYWQpcCAzNDYgMzU5IFYgMjAgdyhpbml0KXAgNDUwIDM1OSBWCi0yMiB3KFwwMTRsZSlrIEZnKFwoKXAgRnQoY29uc3QpMTQgYihjaGFyKWgoKmZpbGVuYW1lKXAKLUZnKFwpKTE5NSA0MTQgeSBGdShSZWFkKWcoaylvKGV5YmluZGluZ3MpaihhbmQpZSh2KW0oYXJpYWJsZSloCi0oYXNzaWdubWVuKW8odHMpZihmcm9tKWYgRmsoXDAxNGxlbmFtZSlrIEZ1KFwoc2VlKWQoU2VjdGlvbilnKDEuMylmCi0oW1JlYWRsaW5lKTE5NSA0NjkgeShJbml0KWgoRmlsZV0sKWcocGFnZSlmKDRcKS4pNzUgNTcxCi15IEZqKDIuNC40KTMwIGIoQXNzbylyKGNpYXRpbmcpMjAgYihGKS01IGIodW5jdGlvbikyMAotYihOYW1lcyloKGFuZClmKEJpbmRpbmdzKTEzNyA2NjQgeSBGdShUaGVzZSkxMSBiKGZ1bmN0aW9ucyloKGFsbG8pbyh3KWUKLSh5KW8ob3UpaCh0bylmKFwwMTRuZCloKG91dClmKHdoYXQpZyhrKW8oZXlzKWgoaW4pbyh2KW8ob2spbyhlKWYobmFtZWQpCi1oKGZ1bmN0aW9ucyloKGFuZCllKHRoZSloKGZ1bmN0aW9ucyk3NSA3MTggeShpbilvKHYpbyhvaylvKGVkKWooYilvKHkpZwotKGEpZihwYXJ0aWN1bGFyKWgoaylvKGV5KWcoc2VxdWVuY2UuKTIxIGIoWSlsKG91KTE0IGIobWEpbyh5KWYoYWxzbylnCi0oYXNzbylxKGNpYXRlKWgoYSlnKG5ldylnKGZ1bmN0aW9uKWcobmFtZSlnKHdpdGgpZyhhbik3NQotNzczIHkoYXJiaXRyYXJ5KWgoZnVuY3Rpb24uKTE3NjIgODczIHkoRilsKHVuY3Rpb24pLTE4NjEKLWIgRmkocmxfY29tbWFuZF9mdW5jX3QpMjIgYigqKWQgRmgocmwpcCA2MjYgODczIFYgMjEKLXcobmFtZWQpcCA4MTQgODczIFYgMTkgdyhmdW5jdGlvbilrIEZnKFwoKXAgRnQoY29uc3QpMTQKLWIoY2hhciloKCpuYW1lKXAgRmcoXCkpMTk1IDkyOCB5IEZ1KFJldHVybilnKHRoZSlnKGZ1bmN0aW9uKWgod2l0aClnCi0obmFtZSlmIEZrKG5hbWUpcCBGdSguKTE3NjIgMTAyOCB5KEYpbCh1bmN0aW9uKS0xODYxCi1iIEZpKHJsX2NvbW1hbmRfZnVuY190KTIyIGIoKilkIEZoKHJsKXAgNjI2IDEwMjggViAyMQotdyhmdW5jdGlvbilwIDg1MiAxMDI4IFYgMjEgdyhvZilwIDkyMCAxMDI4IFYgMjAgdyhrKW4oZXlzZXEpMjQKLWIgRmcoXCgpcCBGdChjb25zdCkxNCBiKGNoYXIpMjgzIDEwODMgeSgqa2V5c2VxLClnKEtleW1hcClnKG1hcCwpaChpbnQpCi1mKCp0eXBlKXAgRmcoXCkpMTk1IDExMzggeSBGdShSZXR1cm4paSh0aGUpZyhmdW5jdGlvbiloKGluKW8odilvKG9rKW8KLShlZClnKGIpbyh5KWYgRmsoaylvKGV5c2VxKWggRnUoaW4pZyhrKW8oZXltYXApZiBGayhtYXApcAotRnUoLikyMyBiKElmKTE3IGIgRmsobWFwKWcgRnUoaXMpZyBGdChOVUxMKXAgRnUoLClmKHRoZSlnKGN1cnJlbilvKHQpCi0xOTUgMTE5MyB5KGspbyhleW1hcClpKGlzKWgodXNlZC4pMzEgYihJZikxOCBiIEZrKHQpbyh5cClxKGUpagotRnUoaXMpZShub3QpZyBGdChOVUxMKXAgRnUoLClmKHRoZSlnKHQpbyh5cClxKGUpaChvZilmKHRoZSloKG9iKXMoamVjdCkKLWYoaXMpaChyZXR1cm5lZClnKGluKWcodGhlKWYgRnQoaW50KTE5NSAxMjQ3IHkgRnUodiltKGFyaWFibGUpZihpdCllKHApCi1xKG9pbilvKHRzKWgodG8pZShcKG9uZSloKG9mKWcgRnQoSVNGVU5DKXAgRnUoLClmIEZ0KElTS01BUClwCi1GdSgsKWcob3IpaCBGdChJU01BQ1IpcCBGdShcKS4pMTc2MiAxMzQ3IHkoRilsKHVuY3Rpb24pLTE4NjEKLWIgRmkoY2hhcikyMCBiKCoqKWYgRmgocmwpcCAzMTIgMTM0NyBWIDIxIHcoaW4pbih2KW4ob2tpbmcpcAotNTQxIDEzNDcgViAyMyB3KGspbihleXNlcXMpayBGZyhcKClwIEZ0KHJsX2NvbW1hbmRfZnVuY190KTEzCi1iKCpmdW5jdGlvbilwIEZnKFwpKTE5NSAxNDAyIHkgRnUoUmV0dXJuKWkoYW4paChhcnJhKW8oeSllKG9mKWgKLShzdHJpbmdzKWgocmVwcmVzZW4pbyh0aW5nKWcodGhlKWcoaylvKGV5KWYoc2VxdWVuY2VzKWkodXNlZClmKHRvKWYoaW4pCi1vKHYpbyhvaylvKGUpaCBGayhmdW5jdGlvbilnIEZ1KGluKTE5NSAxNDU3IHkodGhlKWYoY3VycmVuKW8odClnKGspbwotKGV5bWFwLikxNzYyIDE1NTcgeShGKWwodW5jdGlvbiktMTg2MSBiIEZpKGNoYXIpMjAgYigqKilmCi1GaChybClwIDMxMiAxNTU3IFYgMjEgdyhpbiluKHYpbihva2luZylwIDU0MSAxNTU3IFYgMjMKLXcoayluKGV5c2VxcylwIDc1MCAxNTU3IFYgMjEgdyhpbilwIDgxOCAxNTU3IFYgMjIgdyhtYXApaQotRmcoXCgpcCBGdChybF9jb21tYW5kX2Z1bmNfdCkyODMgMTYxMiB5KCpmdW5jdGlvbiwpMTMKLWIoS2V5bWFwKWkobWFwKXAgRmcoXCkpMTk1IDE2NjcgeSBGdShSZXR1cm4pZyhhbiloKGFycmEpbyh5KWUob2YpaAotKHN0cmluZ3MpaChyZXByZXNlbilvKHRpbmcpZyh0aGUpZyhrKW8oZXkpZihzZXF1ZW5jZXMpaSh1c2VkKWYodG8pZihpbikKLW8odilvKG9rKW8oZSloIEZrKGZ1bmN0aW9uKWcgRnUoaW4pMTk1IDE3MjIgeSh0aGUpZihrKW8oZXltYXApZwotRmsobWFwKXAgRnUoLikxNzYyIDE4MjIgeShGKWwodW5jdGlvbiktMTg2MSBiIEZpKHZvaWQpMjAKLWIgRmgocmwpcCAyNDEgMTgyMiBWIDIxIHcoZnVuY3Rpb24pcCA0NjcgMTgyMiBWIDIxIHcoZHVtcClyKGVyKWcKLUZnKFwoKXAgRnQoaW50KTE1IGIocmVhZGFibGUpcCBGZyhcKSkxOTUgMTg3NiB5IEZ1KFByaW4pbyh0KWcodGhlKWYKLShyZWFkbGluZSlqKGZ1bmN0aW9uKWUobmFtZXMpZyhhbmQpZih0aGUpaChrKW8oZXkpZyhzZXF1ZW5jZXMpZyhjdXJyZW4pCi1vKHRseSlnKGIpcShvdW5kKWgodG8pZSh0aGVtKWgodG8pMTk1IDE5MzEgeSBGdChybF9vdXRzdHJlYW0pcAotRnUoLilqKElmKWMgRmsocmVhZGFibGUpaiBGdShpcylkKG5vbi16ZXJvLClnKHRoZSlnKGxpc3QpZyhpcyloCi0oZm9ybWF0dGVkKWQoaW4paihzdWMpbyhoKWYoYSlmKHcpbyhhKW8oeSlnKHRoYXQpZyhpdCloKGNhbikxOTUKLTE5ODYgeShiKXEoZSlpKG1hZGUpZihwYXJ0KWcob2YpZihhbilpIEZ0KGlucHV0cmMpZSBGdShcMDE0bGUpaShhbmQpZgotKHJlLXJlYWQuKTE3NjIgMjA4NiB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmkodm9pZCkyMAotYiBGaChybClwIDI0MSAyMDg2IFYgMjEgdyhsaXN0KXAgMzM3IDIwODYgViAyMiB3KGZ1bm1hcClwCi01NTAgMjA4NiBWIDE4IHcobmFtZXMpaCBGZyhcKClwIEZ0KHZvaWQpcCBGZyhcKSkxOTUgMjE0MQoteSBGdShQcmluKW8odCkxNSBiKHRoZSlnKG5hbWVzKWgob2YpZShhbGwpaihiaW5kYWJsZSlnKFJlYWRsaW5lKWYKLShmdW5jdGlvbnMpZyh0bylmIEZ0KHJsX291dHN0cmVhbSlwIEZ1KC4pMTc2MiAyMjQxIHkoRilsKHVuY3Rpb24pLTE4NjEKLWIgRmkoY29uc3QpMjAgYihjaGFyKWcoKiopZiBGaChybClwIDQ2MiAyMjQxIFYgMjEgdyhmdW5tYXApcAotNjc0IDIyNDEgViAxOCB3KG5hbWVzKWkgRmcoXCgpcCBGdCh2b2lkKXAgRmcoXCkpMTk1IDIyOTYKLXkgRnUoUmV0dXJuKTEzIGIoYSlmKE5VTEwpaSh0ZXJtaW5hdGVkKWcoYXJyYSlvKHkpZChvZilpKGtubylvKHduKWcKLShmdW5jdGlvbilnKG5hbWVzLikyMCBiKFRoZSkxMyBiKGFycmEpbyh5KWYoaXMpaChzb3J0ZWQuKTE5Ci1iKFRoZSkxOTUgMjM1MSB5KGFycmEpbyh5KTExIGIoaXRzZWxmKWooaXMpZihhbGxvKXEoY2F0ZWQsKWgoYnV0KWYobm90KQotZih0aGUpaChzdHJpbmdzKWYoaW5zaWRlLikyMSBiKFkpbChvdSkxMyBiKHNob3VsZCloIEZ0KGZyZWVcKFwpKWQKLUZ1KHRoZSlpKGFycmEpbyh5KWUod2hlbikxOTUgMjQwNSB5KHkpbyhvdSlrKGFyZSlnKGRvbmUsKWcoYnV0KWcobm90KWcKLSh0aGUpZyhwKXEob2luKW8odGVycy4pMTc2MiAyNTA2IHkoRilsKHVuY3Rpb24pLTE4NjEKLWIgRmkoaW50KTIwIGIgRmgocmwpcCAyMTUgMjUwNiBWIDIxIHcoYWRkKXAgMzI4IDI1MDYKLVYgMjAgdyhmdW5tYXApcCA1MzkgMjUwNiBWIDE4IHcoZW4pbih0cnkpaiBGZyhcKClwIEZ0KGNvbnN0KTE0Ci1iKGNoYXIpaCgqbmFtZSwpZihybF9jb21tYW5kX2Z1bmNfdCkyODMgMjU2MCB5KCpmdW5jdGlvbilwCi1GZyhcKSkxOTUgMjYxNSB5IEZ1KEFkZClqIEZrKG5hbWUpaSBGdSh0bylkKHRoZSlnKGxpc3QpaChvZilmKGJpbmRhYmxlKQotaihSZWFkbGluZSlmKGNvbW1hbmQpZShuYW1lcywpZyhhbmQpaChtYWspbyhlKWYgRmsoZnVuY3Rpb24paAotRnUodGhlKTE5NSAyNjcwIHkoZnVuY3Rpb24pZih0bylmKGIpcShlKWcoY2FsbGVkKWkod2hlbilmCi1GayhuYW1lKWkgRnUoaXMpZChpbilvKHYpbyhvaylvKGVkLilwIGVvcAotJSVQYWdlOiAzMiAzNAotMzIgMzMgYm9wIDc1IC01OCBhIEZ1KDMyKTEyOTkgYihHTlUpMTUgYihSZWFkbGluZSloKExpYnJhcnkpNzUKLTE0OSB5IEZqKDIuNC41KTMwIGIoQWxsbyluKHdpbmcpMjEgYihVbmRvaW5nKTEzNyAyNTEKLXkgRnUoU3VwcClxKG9ydGluZykxNCBiKHRoZSlnKHVuZG8pZihjb21tYW5kKWcoaXMpaChhKWYocGFpbmxlc3MpaAotKHRoaW5nLClnKGFuZClmKG1haylvKGVzKWcoeSlvKG91cilmKGZ1bmN0aW9ucylpKG0pbyh1YylvKGgpZihtb3JlKTc1Ci0zMDYgeSh1c2VmdWwuKTIxIGIoSXQpMTUgYihpcyloKGNlcnRhaW5seSlnKGVhc3kpZih0bylnKHRyeSlmCi0oc29tZXRoaW5nKWkoaWYpZih5KW8ob3UpZyhrbm8pbyh3KWcoeSlvKG91KWcoY2FuKWcodW5kbyloKGl0LikxMzcKLTM3OCB5KElmKTIxIGIoeSlvKG91cilmKGZ1bmN0aW9uKWgoc2ltcGx5KWgoaW5zZXJ0cylmKHRleHQpZShvbmNlLClqCi0ob3IpZShkZWxldGVzKWgodGV4dClmKG9uY2UsKWkoYW5kKWYodXNlcylmIEZ0KHJsX2luc2VydF8pNzUKLTQzMyB5KHRleHRcKFwpKTEzIGIgRnUob3IpaCBGdChybF9kZWxldGVfdGV4dFwoXCkpZCBGdSh0bylqKGRvKWYoaXQsKWgKLSh0aGVuKWgodW5kb2luZylnKGlzKWYoYWxyZWFkeSlnKGRvbmUpaChmb3IpZSh5KW8ob3UpaChhdXRvbWF0aWNhbGx5KWwKLSguKTEzNyA1MDYgeShJZilkKHkpbyhvdSlmKGRvKWcobSlvKHVsdGlwbGUpaShpbnNlcnRpb25zKWYob3IpZihtKW8KLSh1bHRpcGxlKWkoZGVsZXRpb25zLClnKG9yKWUoYW4pbyh5KWcoY29tKW8oYmluYXRpb24paChvZilmKHRoZXNlKWcob3ApCi1xKGVyYXRpb25zLCk3NSA1NjAgeSh5KW8ob3UpMTkgYihzaG91bGQpaChncm91cCllKHRoZW0paCh0b2dldGhlcilnKGluKQotbyh0bylnKG9uZSlnKG9wKXEoZXJhdGlvbi4pMzEgYihUaGlzKTIwIGIoaXMpZihkb25lKWgod2l0aClmCi1GdChybF9iZWdpbl91bmRvXyk3NSA2MTUgeShncm91cFwoXCkpMTQgYiBGdShhbmQpaSBGdAotKHJsX2VuZF91bmRvX2dyb3VwXChcKSlwIEZ1KC4pMTM3IDY4OCB5KFRoZSlnKHQpbyh5cClxKGVzKWYob2YpZyhldilvCi0oZW4pbyh0cylnKHRoYXQpZihjYW4paChiKXEoZSloKHVuZG9uZSlnKGFyZTopMTk1IDc1NwoteSBGdChlbnVtKTIzIGIodW5kb19jb2RlKWcoeyloKFVORE9fREVMRVRFLCllKFVORE9fSU5TRVJULClnCi0oVU5ET19CRUdJTiwpZyhVTkRPX0VORCloKH07KTEzNyA4MzAgeSBGdShOb3RpY2UpMTYgYih0aGF0KWUKLUZ0KFVORE9fREVMRVRFKWcgRnUobWVhbnMpaCh0bylnKGluc2VydClnKHNvbWUpZyh0ZXh0LClmKGFuZClpCi1GdChVTkRPX0lOU0VSVClkIEZ1KG1lYW5zKWkodG8pZyhkZWxldGUpNzUgODg1IHkoc29tZSllKHRleHQuKTE5Ci1iKFRoYXQpMTQgYihpcywpZyh0aGUpZyh1bmRvKWcoY28pcShkZSlnKHRlbGxzKWgod2hhdCllKHRvKWgodW5kbywpZwotKG5vdClmKGhvKW8odylnKHRvKWcodW5kbylpKGl0LilrIEZ0KFVORE9fQkVHSU4pMTMgYgotRnUoYW5kKTc1IDkzOSB5IEZ0KFVORE9fRU5EKWggRnUoYXJlKWgodGFncylmKGFkZGVkKWkoYilvKHkpZgotRnQocmxfYmVnaW5fdW5kb19ncm91cFwoXCkpZCBGdShhbmQpayBGdChybF9lbmRfdW5kb19ncm91cFwoXCkpcAotRnUoLikxNzYyIDEwNzIgeShGKWwodW5jdGlvbiktMTg2MSBiIEZpKGludCkyMCBiIEZoKHJsKXAKLTIxNSAxMDcyIDE4IDMgdiAyMSB3KGIpcihlZ2luKXAgMzcyIDEwNzIgViAyMCB3KHVuZG8pcAotNTE3IDEwNzIgViAyMCB3KGdyb3VwKWggRmcoXCgpcCBGdCh2b2lkKXAgRmcoXCkpMTk1IDExMjcKLXkgRnUoQmVnaW5zKTE2IGIoc2Epbyh2aW5nKWcodW5kbylnKGluZm9ybWF0aW9uKWYoaW4paShhKWUoZ3JvdXApZwotKGNvbnN0cnVjdC4pMjAgYihUaGUpYyh1bmRvKWcoaW5mb3JtYXRpb24pZyh1c3VhbGx5KTE5NQotMTE4MiB5KGNvbWVzKTIxIGIoZnJvbSlmKGNhbGxzKWkodG8pZSBGdChybF9pbnNlcnRfdGV4dFwoXCkpZQotRnUoYW5kKWogRnQocmxfZGVsZXRlX3RleHRcKFwpKXAgRnUoLClmKGJ1dCloKGNvdWxkKWcoYilxKGUpaCh0aGUpMTk1Ci0xMjM3IHkocmVzdWx0KTE2IGIob2YpZShjYWxscylqKHRvKWQgRnQocmxfYWRkX3VuZG9cKFwpKXAKLUZ1KC4pMTc2MiAxMzcwIHkoRilsKHVuY3Rpb24pLTE4NjEgYiBGaShpbnQpMjAgYiBGaChybClwCi0yMTUgMTM3MCBWIDIxIHcoZW5kKXAgMzI2IDEzNzAgViAyMCB3KHVuZG8pcCA0NzEgMTM3MAotViAyMCB3KGdyb3VwKWggRmcoXCgpcCBGdCh2b2lkKXAgRmcoXCkpMTk1IDE0MjQgeSBGdShDbG9zZXMpMTUKLWIodGhlKWYoY3VycmVuKW8odCloKHVuZG8pZyhncm91cClmKHN0YXJ0ZWQpZyh3aXRoKWcKLUZ0KHJsX2JlZ2luX3VuZG9fZ3JvdXApZihcKFwpKXAgRnUoLikxOSBiKFRoZXJlKWMoc2hvdWxkKTE5NQotMTQ3OSB5KGIpcShlKWgob25lKWYoY2FsbClpKHRvKWQgRnQocmxfZW5kX3VuZG9fZ3JvdXBcKFwpKWYKLUZ1KGZvciloKGVhYylvKGgpaChjYWxsKWkodG8pZCBGdChybF9iZWdpbl91bmRvX2dyb3VwXChcKSlwCi1GdSguKTE3NjIgMTYxMiB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmkodm9pZCkyMCBiIEZoKHJsKXAKLTI0MSAxNjEyIFYgMjEgdyhhZGQpcCAzNTQgMTYxMiBWIDIwIHcodW5kbylpIEZnKFwoKXAKLUZ0KGVudW0pMTQgYih1bmRvX2NvZGUpZyh3aGF0LClnKGludCloKHN0YXJ0LClnKGludClmKGVuZCwpaChjaGFyKTI4MwotMTY2NyB5KCp0ZXh0KXAgRmcoXCkpMTk1IDE3MjIgeSBGdShSZW1lbSlvKGIpcShlcilpKGhvKW8odylmKHRvKWgodW5kbykKLWcoYW4pZyhldilvKGVuKW8odClnKFwoYWNjb3JkaW5nKWcodG8pZyBGayh3aGF0KXEgRnUoXCkuKTI0Ci1iKFRoZSkxNyBiKGFcMDEzZWN0ZWQpZyh0ZXh0KWYocnVucylpKGZyb20pMTk1IDE3NzYgeQotRmsoc3RhcnQpZCBGdSh0bylnIEZrKGVuZClwIEZ1KCwpZyhhbmQpZyhlbmNvbXBhc3NlcyloCi1Gayh0ZXh0KXAgRnUoLikxNzYyIDE5MDkgeShGKWwodW5jdGlvbiktMTg2MSBiIEZpKHZvaWQpMjAKLWIgRmgocmwpcCAyNDEgMTkwOSBWIDIxIHcoZnJlZSlwIDM1NiAxOTA5IFYgMjAgdyh1bmRvKXAKLTUwMSAxOTA5IFYgMjAgdyhsaXN0KWsgRmcoXCgpcCBGdCh2b2lkKXAgRmcoXCkpMTk1IDE5NjQKLXkgRnUoRilsKHJlZSkxNSBiKHRoZSloKGV4aXN0aW5nKWcodW5kbylmKGxpc3QuKTE3NjIKLTIwOTcgeShGKWwodW5jdGlvbiktMTg2MSBiIEZpKGludCkyMCBiIEZoKHJsKXAgMjE1IDIwOTcKLVYgMjEgdyhkbylwIDI5NyAyMDk3IFYgMjAgdyh1bmRvKWkgRmcoXCgpcCBGdCh2b2lkKXAKLUZnKFwpKTE5NSAyMTUyIHkgRnUoVW5kbykxMiBiKHRoZSlmKFwwMTRyc3QpZyh0aGluZyloKG9uKWcodGhlKWYodW5kbyloCi0obGlzdC4pMTkgYihSZXR1cm5zKTExIGIgRnQoMCloIEZ1KGlmKWcodGhlcmUpZih3KW8oYXMpZyhub3RoaW5nKWgodG8pZQotKHVuZG8sKWoobm9uLXplcm8pMTk1IDIyMDYgeShpZilqKHNvbWV0aGluZylmKHcpbyhhcylmKHVuZG9uZS4pMTM3Ci0yMzA5IHkoRmluYWxseSlsKCwpaihpZilmKHkpbyhvdSlmKG5laXRoZXIpaShpbnNlcnQpZihub3IpZihkZWxldGUpaQotKHRleHQsKWUoYnV0KWcoZGlyZWN0bHkpaShtbylxKGRpZnkpZih0aGUpZyhleGlzdGluZylnKHRleHQpZyhcKGUuZy4sKQotNzUgMjM2NCB5KGMpbyhoYW5nZSlqKGl0cyloKGNhc2VcKSwpZyhjYWxsKWcgRnQocmxfbW9kaWZ5aW5nXChcKSllCi1GdShvbmNlLClpKGp1c3QpZihiKXEoZWZvcmUpaCh5KW8ob3UpZihtbylxKGRpZnkpaCh0aGUpZih0ZXh0LikzMgotYihZKWwob3UpMjAgYihtKW8odXN0KTc1IDI0MTkgeShzdXBwbHkpYyh0aGUpZyhpbmRpY2VzKWgob2YpZSh0aGUpZwotKHRleHQpZyhyYW5nZSlnKHRoYXQpZih5KW8ob3UpaChhcmUpZyhnb2luZylnKHRvKWcobW8pcShkaWZ5KWwoLikxNzYyCi0yNTUyIHkoRilsKHVuY3Rpb24pLTE4NjEgYiBGaShpbnQpMjAgYiBGaChybClwIDIxNSAyNTUyCi1WIDIxIHcobW8pcihkaWZ5aW5nKWggRmcoXCgpcCBGdChpbnQpMTUgYihzdGFydCwpZihpbnQpaChlbmQpcAotRmcoXCkpMTk1IDI2MDYgeSBGdShUKWwoZWxsKTIyIGIoUmVhZGxpbmUpZih0byllKHNhKW8odilvKGUpaCh0aGUpZwotKHRleHQpZyhiKXEoZXQpbyh3KW8oZWVuKWcgRmsoc3RhcnQpZyBGdShhbmQpZyBGayhlbmQpagotRnUoYXMpYyhhKWgoc2luZ2xlKWgodW5kbylnKHVuaXQuKTM1IGIoSXQpMjAgYihpcykxOTUKLTI2NjEgeShhc3N1bWVkKTE1IGIodGhhdClnKHkpbyhvdSlnKHdpbGwpaShzdWJzZXF1ZW4pbyh0bHkpZihtbylxKGRpZnkpCi1nKHRoYXQpZSh0ZXh0LilwIGVvcAotJSVQYWdlOiAzMyAzNQotMzMgMzQgYm9wIDc1IC01OCBhIEZ1KENoYXB0ZXIpMTUgYigyOilrKFByb2dyYW1taW5nKWMod2l0aClnKEdOVSlnCi0oUmVhZGxpbmUpODQzIGIoMzMpNzUgMTQ5IHkgRmooMi40LjYpMzAgYihSZWRpc3BsYSluKHkpMTc2MgotMzAyIHkgRnUoRilsKHVuY3Rpb24pLTE4NjEgYiBGaSh2b2lkKTIwIGIgRmgocmwpcCAyNDEKLTMwMiAxOCAzIHYgMjEgdyhyZWRpc3BsYSluKHkpayBGZyhcKClwIEZ0KHZvaWQpcCBGZyhcKSkxOTUKLTM1NiB5IEZ1KENoYW5nZSkxOSBiKHdoYXQncylmKGRpc3BsYSlvKHkpbyhlZClpKG9uKWYodGhlKWcoc2NyZWVuKWcodG8pCi1mKHJlXDAxNWVjdClpKHRoZSlmKGN1cnJlbilvKHQpZihjb24pbyh0ZW4pbyh0cyloKG9mKWYKLUZ0KHJsX2xpbmVfKTE5NSA0MTEgeShidWZmZXIpcCBGdSguKTE3NjIgNTM0IHkoRilsKHVuY3Rpb24pLTE4NjEKLWIgRmkoaW50KTIwIGIgRmgocmwpcCAyMTUgNTM0IFYgMjEgdyhmb3JjZWQpcCAzOTAgNTM0Ci1WIDIwIHcodXApcihkYXRlKXAgNTg0IDUzNCBWIDIwIHcoZGlzcGxhKW4oeSlrIEZnKFwoKXAKLUZ0KHZvaWQpcCBGZyhcKSkxOTUgNTg5IHkgRnUoRilsKG9yY2UpYyh0aGUpZyhsaW5lKWgodG8pZShiKXEoZSlpKHVwKXEKLShkYXRlZClmKGFuZClnKHJlZGlzcGxhKW8oeSlvKGVkLClpKHdoZXRoZXIpZShvcilnKG5vdClmKFJlYWRsaW5lKWkKLSh0aGlua3MpZyh0aGUpMTk1IDY0NCB5KHNjcmVlbikxNiBiKGRpc3BsYSlvKHkpZyhpcylnKGNvcnJlY3QuKTE3NjIKLTc2NyB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmkoaW50KTIwIGIgRmgocmwpcCAyMTUgNzY3Ci1WIDIxIHcob24pcCAyOTcgNzY3IFYgMjAgdyhuZXcpcCA0MTYgNzY3IFYgMjEgdyhsaW5lKWsKLUZnKFwoKXAgRnQodm9pZClwIEZnKFwpKTE5NSA4MjIgeSBGdShUKWwoZWxsKTE2IGIodGhlKWYodXApcShkYXRlKWgKLShmdW5jdGlvbnMpZyh0aGF0KWUodylvKGUpZyhoYSlvKHYpbyhlKWgobW8pbyh2KW8oZWQpZihvbilvKHRvKWcoYSloCi0obmV3KWcoXChlbXB0KW8oeVwpKWYobGluZSwpaSh1c3VhbGx5KWgoYWZ0ZXIpMTk1IDg3NwoteShvdXB1dHRpbmcpZihhKWUobmV3bGluZS4pMTc2MiAxMDAwIHkoRilsKHVuY3Rpb24pLTE4NjEKLWIgRmkoaW50KTIwIGIgRmgocmwpcCAyMTUgMTAwMCBWIDIxIHcob24pcCAyOTcgMTAwMCBWCi0yMCB3KG5ldylwIDQxNiAxMDAwIFYgMjEgdyhsaW5lKXAgNTI1IDEwMDAgViAyMiB3KHdpdGgpcAotNjU3IDEwMDAgViAyMiB3KHByb21wdCloIEZnKFwoKXAgRnQodm9pZClwIEZnKFwpKTE5NQotMTA1NSB5IEZ1KFQpbChlbGwpMTQgYih0aGUpZSh1cClxKGRhdGUpaChmdW5jdGlvbnMpZyh0aGF0KWYodylvKGUpZyhoYSkKLW8odilvKGUpZyhtbylvKHYpbyhlZClmKG9uKW8odG8paChhKWcobmV3KWcobGluZSwpaSh3aXRoKWYKLUZrKHJsKXAgMTU1NiAxMDU1IDE0IDIgdiAxNyB3KHByb21wdClnIEZ1KGFscmVhZHkpMTk1Ci0xMTA5IHkoZGlzcGxhKW8oeSlvKGVkLikyMSBiKFRoaXMpMTUgYihjb3VsZClnKGIpcShlKWcodXNlZClnKGIpbyh5KWYKLShhcHBsaWNhdGlvbnMpaSh0aGF0KWUodylvKGFuKW8odClmKHRvKWgob3V0cHV0KWcodGhlKWcocHJvbXB0KWcKLShzdHJpbmcpMTk1IDExNjQgeSh0aGVtc2VsdilvKGVzLClnKGJ1dClnKHN0aWxsKWgobmVlZClnKFJlYWRsaW5lKWcodG8pCi1lKGtubylvKHcpZyh0aGUpaChwcm9tcHQpZihzdHJpbmcpaChsZW5ndGgpZyhmb3IpZihyZWRpc3BsYSlvKHkpbCguKTIxCi1iKEl0KTE5NSAxMjE5IHkoc2hvdWxkKTE2IGIoYilxKGUpZyh1c2VkKWcoYWZ0ZXIpZShzZXR0aW5nKWkKLUZrKHJsKXAgNzk1IDEyMTkgViAxNiB3KGFscmVhZHkpcCA5NTYgMTIxOSBWIDE3IHcocHJvbXB0ZWQpcAotRnUoLikxNzYyIDEzNDIgeShGKWwodW5jdGlvbiktMTg2MSBiIEZpKGludCkyMCBiIEZoKHJsKXAKLTIxNSAxMzQyIDE4IDMgdiAyMSB3KHJlc2V0KXAgMzU3IDEzNDIgViAyMCB3KGxpbmUpcCA0NjUKLTEzNDIgViAyMyB3KHN0YXRlKWogRmcoXCgpcCBGdCh2b2lkKXAgRmcoXCkpMTk1IDEzOTcKLXkgRnUoUmVzZXQpMTcgYih0aGUpZyhkaXNwbGEpbyh5KWkoc3RhdGUpZCh0byloKGEpZyhjbGVhbiloKHN0YXRlKWYKLShhbmQpZyhyZWRpc3BsYSlvKHkpaSh0aGUpZShjdXJyZW4pbyh0KWcobGluZSlpKHN0YXJ0aW5nKWUob24pZyhhKTE5NQotMTQ1MiB5KG5ldyllKGxpbmUuKTE3NjIgMTU3NSB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmkoaW50KTIwCi1iIEZoKHJsKXAgMjE1IDE1NzUgViAyMSB3KGNybGYpaiBGZyhcKClwIEZ0KHZvaWQpcCBGZyhcKSkxOTUKLTE2MzAgeSBGdShNbylvKHYpbyhlKTE0IGIodGhlKWgoY3Vyc29yKWcodG8pZyh0aGUpZyhzdGFydClmKG9mKWgodGhlKWcKLShuZXh0KWcoc2NyZWVuKWgobGluZS4pMTc2MiAxNzUzIHkoRilsKHVuY3Rpb24pLTE4NjEKLWIgRmkoaW50KTIwIGIgRmgocmwpcCAyMTUgMTc1MyBWIDIxIHcoc2hvKW4odylwIDM1OSAxNzUzCi1WIDIwIHcoYyluKGhhcilqIEZnKFwoKXAgRnQoaW50KTE0IGIoYylwIEZnKFwpKTE5NSAxODA3Ci15IEZ1KERpc3BsYSlvKHkpaihjKW8oaGFyYWN0ZXIpZSBGayhjKTIwIGIgRnUob24pYyBGdChybF9vdXRzdHJlYW0pcAotRnUoLikyMSBiKElmKWMoUmVhZGxpbmUpZyhoYXMpZihub3QpZyhiKXEoZWVuKWkoc2V0KWUodG8pZihkaXNwbGEpbyh5KWoKLShtZXRhKTE5NSAxODYyIHkoYylvKGhhcmFjdGVycykxMiBiKGRpcmVjdGx5KWwoLClqKHRoaXMpZSh3aWxsKWkoY29uKW8KLSh2KW8oZXJ0KWQobWV0YSloKGMpbyhoYXJhY3RlcnMpZih0bylnKGEpaChtZXRhLXByZVwwMTR4ZWQpZyhrKW8oZXkpZwotKHNlcXVlbmNlLikxOTUgMTkxNyB5KFRoaXMpaihpcylmKGluKW8odGVuZGVkKWkoZm9yKWUodXNlKWcoYilvKHkpZwotKGFwcGxpY2F0aW9ucylpKHdoaWMpbyhoKWYod2lzaClnKHRvKWYoZG8pZyh0aGVpcilnKG8pbyh3bilnKHJlZGlzcGxhKW8KLSh5KWwoLikxNzYyIDIwNDAgeShGKWwodW5jdGlvbiktMTg2MSBiIEZpKGludCkyMCBiIEZoKHJsKXAKLTIxNSAyMDQwIFYgMjEgdyhtZXNzYWdlKWcgRmcoXCgpcCBGdChjb25zdCkxNCBiKGNoYXIpaCgqLClnKC4uLilwCi1GZyhcKSkxOTUgMjA5NSB5IEZ1KFRoZSljKGFyZ3VtZW4pbyh0cyllKGFyZSloKGEpZyhmb3JtYXQpZihzdHJpbmcpaAotKGFzKWcodylvKG91bGQpaChiKXEoZSlnKHN1cHBsaWVkKWkodG8pYyBGdChwcmludGYpcAotRnUoLCloKHApcShvc3NpYmx5KWkoY29uKW8odGFpbmluZykxOTUgMjE1MCB5KGNvbilvKHYpbyhlcnNpb24pMjIKLWIoc3ApcShlY2lcMDE0Y2F0aW9ucylpKHN1YylvKGgpZihhcyllKGApcCBGdChcMDQ1ZClwCi1GdSgnLClpKGFuZClmKGFuKW8oeSlnKGFkZGl0aW9uYWwpaChhcmd1bWVuKW8odHMpZShuZWNlc3NhcnkpaSh0bykxOTUKLTIyMDUgeShzYXRpc2Z5KWQodGhlKWgoY29uKW8odilvKGVyc2lvbilnKHNwKXEoZWNpXDAxNGNhdGlvbnMuKTM4Ci1iKFRoZSkyMSBiKHJlc3VsdGluZyloKHN0cmluZyllKGlzKWkoZGlzcGxhKW8oeSlvKGVkKWcoaW4pZih0aGUpZwotRmsoZWMpbyhobykxOTUgMjI1OSB5KGFyZWEpcCBGdSguKWUoVGhlKWQoZWMpbyhobylmKGFyZWEpZyhpcylnKGFsc28pZwotKHVzZWQpaCh0bylmKGRpc3BsYSlvKHkpaChuKW8odW1lcmljKWcoYXJndW1lbilvKHRzKWYoYW5kKWcoc2VhcmMpbyhoKWcKLShzdHJpbmdzLikxNzYyIDIzODIgeShGKWwodW5jdGlvbiktMTg2MSBiIEZpKGludCkyMCBiCi1GaChybClwIDIxNSAyMzgyIFYgMjEgdyhjbGVhcilwIDM1NCAyMzgyIFYgMjEgdyhtZXNzYWdlKWgKLUZnKFwoKXAgRnQodm9pZClwIEZnKFwpKTE5NSAyNDM3IHkgRnUoQ2xlYXIpMTUgYih0aGUpaChtZXNzYWdlKWUoaW4paQotKHRoZSlnKGVjKW8oaG8pZihhcmVhLikxNzYyIDI1NjAgeShGKWwodW5jdGlvbiktMTg2MQotYiBGaSh2b2lkKTIwIGIgRmgocmwpcCAyNDEgMjU2MCBWIDIxIHcoc2Epbih2KW4oZSlwIDM2NQotMjU2MCBWIDIxIHcocHJvbXB0KWggRmcoXCgpcCBGdCh2b2lkKXAgRmcoXCkpMTk1IDI2MTUKLXkgRnUoU2Epbyh2KW8oZSlnKHRoZSloKGxvKXEoY2FsKWcoUmVhZGxpbmUpaChwcm9tcHQpZShkaXNwbGEpbyh5KWkKLShzdGF0ZSllKGluKWgocHJlcGFyYXRpb24pZihmb3IpZyhkaXNwbGEpbyh5aW5nKWooYSlkKG5ldykxOTUKLTI2NzAgeShtZXNzYWdlKTE1IGIoaW4paCh0aGUpZihtZXNzYWdlKWcoYXJlYSlmKHdpdGgpaQotRnQocmxfbWVzc2FnZVwoXCkpcCBGdSguKXAgZW9wCi0lJVBhZ2U6IDM0IDM2Ci0zNCAzNSBib3AgNzUgLTU4IGEgRnUoMzQpMTI5OSBiKEdOVSkxNSBiKFJlYWRsaW5lKWgoTGlicmFyeSkxNzYyCi0xNDkgeShGKWwodW5jdGlvbiktMTg2MSBiIEZpKHZvaWQpMjAgYiBGaChybClwIDI0MSAxNDkKLTE4IDMgdiAyMSB3KHJlc3RvcmUpcCA0MzYgMTQ5IFYgMjAgdyhwcm9tcHQpZyBGZyhcKClwCi1GdCh2b2lkKXAgRmcoXCkpMTk1IDIwNCB5IEZ1KFJlc3RvcmUpZyh0aGUpaShsbylxKGNhbClnKFJlYWRsaW5lKWgKLShwcm9tcHQpZShkaXNwbGEpbyh5KWgoc3RhdGUpZihzYSlvKHYpbyhlZClnKGIpbyh5KWcodGhlKWcobW9zdClnCi0ocmVjZW4pbyh0KWcoY2FsbClpKHRvKTE5NSAyNTkgeSBGdChybF9zYXZlX3Byb21wdClwCi1GdSguKTE3NjIgMzY5IHkoRilsKHVuY3Rpb24pLTE4NjEgYiBGaShpbnQpMjAgYiBGaChybClwCi0yMTUgMzY5IFYgMjEgdyhleHBhbmQpcCA0MTYgMzY5IFYgMjAgdyhwcm9tcHQpaCBGZyhcKClwCi1GdChjaGFyKTE0IGIoKnByb21wdClwIEZnKFwpKTE5NSA0MjMgeSBGdShFeHBhbmQpMjIgYihhbilvKHkpZihzcClxCi0oZWNpYWwpaShjKW8oaGFyYWN0ZXIpZShzZXF1ZW5jZXMpaChpbilnIEZrKHByb21wdClnCi1GdShhbmQpZyhzZXQpZih1cCloKHRoZSlmKGxvKXEoY2FsKWkoUmVhZGxpbmUpMTk1IDQ3OAoteShwcm9tcHQpMTcgYihyZWRpc3BsYSlvKHkpaSh2KW0oYXJpYWJsZXMuKTMwIGIoVGhpcykxOAotYihmdW5jdGlvbiloKGlzKWYoY2FsbGVkKWkoYilvKHkpZSBGdChyZWFkbGluZVwoXCkpcAotRnUoLikyNiBiKEl0KTE4IGIobWEpbyh5KWYoYWxzbyloKGIpcShlKTE5NSA1MzMgeShjYWxsZWQpMTIKLWIodG8pZShleHBhbmQpaCh0aGUpZyhwcmltYXJ5KWcocHJvbXB0KWYoaWYpaCh0aGUpZiBGdAotKHJsX29uX25ld19saW5lX3dpdGhfcHJvbXB0XChcKSlkIEZ1KGZ1bmN0aW9uKTE5NSA1ODgKLXkob3IpMTIgYiBGdChybF9hbHJlYWR5X3Byb21wdGVkKWUgRnUodiltKGFyaWFibGUpayhpcylnKHVzZWQuKTE5Ci1iKEl0KTEzIGIocmV0dXJucylnKHRoZSlmKG4pbyh1bSlvKGIpcShlcilpKG9mKWUodmlzaWJsZSlqKGMpbwotKGhhcmFjdGVycykxOTUgNjQzIHkob24pZyh0aGUpZyhsYXN0KWgobGluZSlnKG9mKWYodGhlKWcoXChwKXEob3NzaWJseSkKLWkobSlvKHVsdGktbGluZVwpKWcocHJvbXB0LikxNzYyIDc1MiB5KEYpbCh1bmN0aW9uKS0xODYxCi1iIEZpKGludCkyMCBiIEZoKHJsKXAgMjE1IDc1MiBWIDIxIHcoc2V0KXAgMzA3IDc1MiBWCi0yMCB3KHByb21wdCloIEZnKFwoKXAgRnQoY29uc3QpMTQgYihjaGFyKWgoKnByb21wdClwCi1GZyhcKSkxOTUgODA3IHkgRnUoTWFrKW8oZSllKFJlYWRsaW5lKWkodXNlKWUgRmsocHJvbXB0KWgKLUZ1KGZvcilmKHN1YnNlcXVlbilvKHQpaChyZWRpc3BsYSlvKHkpbCguKTIxIGIoVGhpcykxNAotYihjYWxscylnIEZ0KHJsX2V4cGFuZF9wcm9tcHRcKFwpKTE5NSA4NjIgeSBGdSh0byloKGV4cGFuZClnKHRoZSloCi0ocHJvbXB0KWUoYW5kKWkoc2V0cylmIEZ0KHJsX3Byb21wdClmIEZ1KHRvKWcodGhlKWgocmVzdWx0Lik3NQotOTcwIHkgRmooMi40LjcpMzAgYihNbylyKGRpZnlpbmcpMjAgYihUKS01IGIoZXh0KTE3NjIKLTExMDggeSBGdShGKWwodW5jdGlvbiktMTg2MSBiIEZpKGludCkyMCBiIEZoKHJsKXAgMjE1Ci0xMTA4IFYgMjEgdyhpbnNlcnQpcCAzNzggMTEwOCBWIDIxIHcodGV4dClrIEZnKFwoKXAgRnQoY29uc3QpMTQKLWIoY2hhcilnKCp0ZXh0KXAgRmcoXCkpMTk1IDExNjMgeSBGdShJbnNlcnQpaSBGayh0ZXh0KWcKLUZ1KGluKW8odG8pZyh0aGUpZyhsaW5lKWgoYXQpZih0aGUpZyhjdXJyZW4pbyh0KWYoY3Vyc29yKWgocClxCi0ob3NpdGlvbi4pMjIgYihSZXR1cm5zKTE2IGIodGhlKWcobilvKHVtKW8oYilxKGVyKWcob2YpZihjKW8oaGFyLSkxOTUKLTEyMTggeShhY3RlcnMpZyhpbnNlcnRlZC4pMTc2MiAxMzI4IHkoRilsKHVuY3Rpb24pLTE4NjEKLWIgRmkoaW50KTIwIGIgRmgocmwpcCAyMTUgMTMyOCBWIDIxIHcoZGVsZXRlKXAgMzgzIDEzMjgKLVYgMjIgdyh0ZXh0KWsgRmcoXCgpcCBGdChpbnQpMTQgYihzdGFydCwpaChpbnQpZihlbmQpcAotRmcoXCkpMTk1IDEzODIgeSBGdShEZWxldGUpMTkgYih0aGUpZyh0ZXh0KWcoYilxKGV0KW8odylvKGVlbilnCi1GayhzdGFydClnIEZ1KGFuZClnIEZrKGVuZClpIEZ1KGluKWYodGhlKWYoY3VycmVuKW8odClmKGxpbmUuKTMzCi1iKFJldHVybnMpMTggYih0aGUpaChuKW8odW0pbyhiKXEoZXIpZyhvZikxOTUgMTQzNyB5KGMpbyhoYXJhY3RlcnMpMTQKLWIoZGVsZXRlZC4pMTc2MiAxNTQ3IHkoRilsKHVuY3Rpb24pLTE4NjEgYiBGaShjaGFyKTIwCi1iKCopZiBGaChybClwIDI4NiAxNTQ3IFYgMjEgdyhjb3Apbih5KXAgNDIxIDE1NDcgViAyMQotdyh0ZXh0KTI0IGIgRmcoXCgpcCBGdChpbnQpMTQgYihzdGFydCwpaChpbnQpZyhlbmQpcAotRmcoXCkpMTk1IDE2MDIgeSBGdShSZXR1cm4pZyhhKWcoY29wKW8oeSlnKG9mKWcodGhlKWcodGV4dClmKGIpcShldClvCi0odylvKGVlbilpIEZrKHN0YXJ0KWYgRnUoYW5kKWcgRmsoZW5kKWogRnUoaW4pZSh0aGUpZihjdXJyZW4pbyh0KWcKLShsaW5lLikxNzYyIDE3MTEgeShGKWwodW5jdGlvbiktMTg2MSBiIEZpKGludCkyMCBiIEZoKHJsKXAKLTIxNSAxNzExIFYgMjEgdyhraWxsKXAgMzExIDE3MTEgViAyMyB3KHRleHQpayBGZyhcKClwCi1GdChpbnQpMTQgYihzdGFydCwpaChpbnQpZyhlbmQpcCBGZyhcKSkxOTUgMTc2NiB5IEZ1KENvcClvKHkpaSh0aGUpZwotKHRleHQpZihiKXEoZXQpbyh3KW8oZWVuKWkgRmsoc3RhcnQpZiBGdShhbmQpZyBGayhlbmQpaQotRnUoaW4pZih0aGUpZihjdXJyZW4pbyh0KWcobGluZSlpKHRvKWUodGhlKWcoa2lsbClpKHJpbmcsKWUoYXBwKXEKLShlbmRpbmcpMTk1IDE4MjEgeShvcilmKHByZXApcShlbmRpbmcpayh0byljKHRoZSloKGxhc3QpZyhraWxsKWkoaWYpZQotKHRoZSlnKGxhc3QpZyhjb21tYW5kKWcodylvKGFzKWYoYSloKGtpbGwpaShjb21tYW5kLikyNQotYihUaGUpMTcgYih0ZXh0KWYoaXMpMTk1IDE4NzYgeShkZWxldGVkLikyNiBiKElmKTE3IGIKLUZrKHN0YXJ0KWcgRnUoaXMpZyhsZXNzKWcodGhhbilnIEZrKGVuZClwIEZ1KCwpZyh0aGUpZyh0ZXh0KWcoaXMpZyhhcHApCi1xKGVuZGVkLCloKG90aGVyd2lzZSlmKHByZXApcShlbmRlZC4pMjcgYihJZikxNyBiKHRoZSkxOTUKLTE5MzAgeShsYXN0KWUoY29tbWFuZClnKHcpbyhhcylnKG5vdClmKGEpaChraWxsLClpKGEpZShuZXcpZyhraWxsKWkKLShyaW5nKWYoc2xvdClmKGlzKWgodXNlZC4pMTc2MiAyMDQwIHkoRilsKHVuY3Rpb24pLTE4NjEKLWIgRmkoaW50KTIwIGIgRmgocmwpcCAyMTUgMjA0MCBWIDIxIHcocHVzaClwIDM1NSAyMDQwCi1WIDE5IHcobWFjcm8pcCA1MjkgMjA0MCBWIDE5IHcoaW5wdXQpayBGZyhcKClwIEZ0KGNoYXIpMTQKLWIoKm1hY3JvKXAgRmcoXCkpMTk1IDIwOTUgeSBGdShDYXVzZSlnIEZrKG1hY3JvKWkgRnUodG8pZChiKXEoZSlpCi0oaW5zZXJ0ZWQpZyhpbilvKHRvKWYodGhlKWcobGluZSwpaShhcyllKGlmKWcoaXQpaChoYWQpZihiKXEoZWVuKWgoaW4pbwotKHYpbyhvaylvKGVkKWcoYilvKHkpZihhKWcoaylvKGV5KWcoYilxKG91bmQpaCh0bykxOTUKLTIxNTAgeShhKWcobWFjcm8uKWsoTm90KWMoZXNwKXEoZWNpYWxseSlpKHVzZWZ1bDspZih1c2UpZwotRnQocmxfaW5zZXJ0X3RleHRcKFwpKWQgRnUoaW5zdGVhZC4pNzUgMjI1NyB5IEZqKDIuNC44KTMwCi1iKENoYXJhY3RlcikyMSBiKElucHV0KTE3NjIgMjM5NiB5IEZ1KEYpbCh1bmN0aW9uKS0xODYxCi1iIEZpKGludCkyMCBiIEZoKHJsKXAgMjE1IDIzOTYgViAyMSB3KHJlYWQpcCAzNDYgMjM5NgotViAyMCB3KGspbihleSlrIEZnKFwoKXAgRnQodm9pZClwIEZnKFwpKTE5NSAyNDUxIHkgRnUoUmV0dXJuKTE0Ci1iKHRoZSloKG5leHQpZyhjKW8oaGFyYWN0ZXIpZihhKW8odiltKGFpbGFibGUpaShmcm9tKWUoUmVhZGxpbmUncylpCi0oY3VycmVuKW8odClmKGlucHV0KWcoc3RyZWFtLilrKFRoaXMpZChoYW4tKTE5NSAyNTA2Ci15KGRsZXMpZihpbnB1dClnKGluc2VydGVkKWYoaW4pbyh0bylnKHRoZSlnKGlucHV0KWgoc3RyZWFtKWUodmlhKWgKLUZrKHJsKXAgMTExNyAyNTA2IDE0IDIgdiAxNyB3KHApcShlbmRpbmcpcCAxMjkwIDI1MDYKLVYgMTggdyhpbnB1dClpIEZ1KFwoc2VlKWUoU2VjdGlvbiloKDIuMyllKFtSZWFkLSkxOTUKLTI1NjAgeShsaW5lKTIxIGIoVilsKGFyaWFibGVzXSwpZyhwYWdlKWYoMjRcKSlmKGFuZCloCi1GdChybF9zdHVmZl9jaGFyXChcKSlwIEZ1KCwpZShtYWNyb3MsKWgoYW5kKWgoYylvKGhhcmFjdGVycylmKHJlYWQpaAotKGZyb20pMTk1IDI2MTUgeSh0aGUpZChrKW8oZXliKXEob2FyZC4pMjUgYihXaGlsZSkxOQotYih3KW8oYWl0aW5nKWUoZm9yKWYoaW5wdXQsKWoodGhpcyllKGZ1bmN0aW9uKWgod2lsbCloKGNhbGwpZihhbilvKHkpZQotKGZ1bmN0aW9uKWkoYXNzaWduZWQpMTk1IDI2NzAgeSh0bylkKHRoZSlnIEZ0KHJsX2V2ZW50X2hvb2spZQotRnUodiltKGFyaWFibGUuKXAgZW9wCi0lJVBhZ2U6IDM1IDM3Ci0zNSAzNiBib3AgNzUgLTU4IGEgRnUoQ2hhcHRlcikxNSBiKDI6KWsoUHJvZ3JhbW1pbmcpYyh3aXRoKWcoR05VKWcKLShSZWFkbGluZSk4NDMgYigzNSkxNzYyIDE0OSB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmkoaW50KTIwCi1iIEZoKHJsKXAgMjE1IDE0OSAxOCAzIHYgMjEgdyhnZXRjKWogRmcoXCgpcCBGdChGSUxFKTE0Ci1iKCpzdHJlYW0pcCBGZyhcKSkxOTUgMjA0IHkgRnUoUmV0dXJuKWModGhlKWgobmV4dClnKGMpbyhoYXJhY3RlcilmKGEpbwotKHYpbShhaWxhYmxlKWkoZnJvbSllIEZrKHN0cmVhbSlwIEZ1KCwpZyh3aGljKW8oaClpKGlzKWYoYXNzdW1lZClmKHRvKWcKLShiKXEoZSlpKHRoZSllKGspbyhleWIpcShvYXJkLikxNzYyIDM0MiB5KEYpbCh1bmN0aW9uKS0xODYxCi1iIEZpKGludCkyMCBiIEZoKHJsKXAgMjE1IDM0MiBWIDIxIHcoc3R1XDAxMylwIDM0NiAzNDIKLVYgMjAgdyhjKW4oaGFyKWogRmcoXCgpcCBGdChpbnQpMTUgYihjKXAgRmcoXCkpMTk1IDM5NwoteSBGdShJbnNlcnQpaSBGayhjKWkgRnUoaW4pbyh0bylkKHRoZSloKFJlYWRsaW5lKWgoaW5wdXQpZihzdHJlYW0uKTIzCi1iKEl0KTE2IGIod2lsbClpKGIpcShlKWYgRnQoIilwIEZ1KHJlYWQpcCBGdCgiKWcgRnUoYilxKGVmb3JlKWYKLShSZWFkbGluZSlpKGF0dGVtcHRzKTE5NSA0NTIgeSh0bykxMyBiKHJlYWQpZyhjKW8oaGFyYWN0ZXJzKWcoZnJvbSlmCi0odGhlKWkodGVybWluYWwpZyh3aXRoKWcgRnQocmxfcmVhZF9rZXlcKFwpKXAgRnUoLilqKFVwKWQodG8pZig1MTIpZihjKQotbyhoYXJhY3RlcnMpaChtYSlvKHkpMTk1IDUwNyB5KGIpcShlKWoocHVzaGVkKWcoYmFjKW8oay4pawotRnQocmxfc3R1ZmZfY2hhcikxNCBiIEZ1KHJldHVybnMpaCgxKWcoaWYpaCh0aGUpZihjKW8oaGFyYWN0ZXIpZyh3KW8KLShhcylmKHN1Y2Nlc3NmdWxseSlqKGluc2VydGVkOykxOTUgNTYyIHkoMCllKG90aGVyd2lzZS4pMTc2MgotNzAwIHkoRilsKHVuY3Rpb24pLTE4NjEgYiBGaShpbnQpMjAgYiBGaChybClwIDIxNSA3MDAKLVYgMjEgdyhleGVjdXRlKXAgNDIzIDcwMCBWIDIyIHcobmV4dClqIEZnKFwoKXAgRnQoaW50KTE1Ci1iKGMpcCBGZyhcKSkxOTUgNzU0IHkgRnUoTWFrKW8oZSlpIEZrKGMpayBGdShiKXEoZSlkKHRoZSlnKG5leHQpZwotKGNvbW1hbmQpZyh0bylmKGIpcShlKWkoZXhlY3V0ZWQpZih3aGVuKWggRnQocmxfcmVhZF9rZXlcKFwpKWQKLUZ1KGlzKWkoY2FsbGVkLikyOSBiKFRoaXMpMTk1IDgwOSB5KHNldHMpMTUgYiBGayhybClwCi0zMTcgODA5IDE0IDIgdiAxNyB3KHApcShlbmRpbmcpcCA0OTAgODA5IFYgMTggdyhpbnB1dClwCi1GdSguKTE3NjIgOTQ3IHkoRilsKHVuY3Rpb24pLTE4NjEgYiBGaShpbnQpMjAgYiBGaChybClwCi0yMTUgOTQ3IDE4IDMgdiAyMSB3KGNsZWFyKXAgMzU0IDk0NyBWIDIxIHcocClyKGVuZGluZylwCi01NzUgOTQ3IFYgMjEgdyhpbnB1dClqIEZnKFwoKXAgRnQodm9pZClwIEZnKFwpKTE5NSAxMDAyCi15IEZ1KFVuc2V0KWYgRmsocmwpcCAzNjUgMTAwMiAxNCAyIHYgMTYgdyhwKXEoZW5kaW5nKXAKLTUzNyAxMDAyIFYgMTkgdyhpbnB1dClwIEZ1KCwpaChlXDAxM2VjdGl2KW8oZWx5KWcobmVnYXRpbmcpZSh0aGUpaAotKGVcMDEzZWN0KWYob2YpZyhhbilvKHkpaChwcmV2aW91cylnKGNhbGwpaCh0bylkIEZ0KHJsXykxOTUKLTEwNTcgeShleGVjdXRlX25leHRcKFwpKXAgRnUoLikyOSBiKFRoaXMpMTkgYih3KW8ob3JrcylmKG9ubHkpaChpZiloCi0odGhlKWUocClxKGVuZGluZylqKGlucHV0KWYoaGFzKWYobm90KWYoYWxyZWFkeSloKGIpcShlZW4paChyZWFkKTE5NQotMTExMiB5KHdpdGgpYyBGdChybF9yZWFkX2tleVwoXCkpcCBGdSguKTE3NjIgMTI1MCB5KEYpbCh1bmN0aW9uKS0xODYxCi1iIEZpKGludCkyMCBiIEZoKHJsKXAgMjE1IDEyNTAgMTggMyB2IDIxIHcoc2V0KXAgMzA3Ci0xMjUwIFYgMjAgdyhrKW4oZXliKXIob2FyZClwIDU1OCAxMjUwIFYgMjEgdyhpbnB1dClwCi03MTIgMTI1MCBWIDIxIHcodGltZW91dClpIEZnKFwoKXAgRnQoaW50KTE1IGIodSlwIEZnKFwpKTE5NQotMTMwNSB5IEZ1KFdoaWxlKTIxIGIodylvKGFpdGluZylnKGZvcillKGspbyhleWIpcShvYXJkKWgoaW5wdXQpaChpbilnCi1GdChybF9yZWFkX2tleVwoXCkpcCBGdSgsKWUoUmVhZGxpbmUpaSh3aWxsKWgodylvKGFpdCllKGZvcilmCi1Gayh1KWggRnUobWktKTE5NSAxMzYwIHkoY3Jvc2Vjb25kcyloKGZvcillKGlucHV0KWooYilxKGVmb3JlKWYKLShjYWxsaW5nKWgoYW4pbyh5KWUoZnVuY3Rpb24paChhc3NpZ25lZClnKHRvKWYgRnQocmxfZXZlbnRfaG9vaylwCi1GdSguKTM0IGIoVGhlKTE5NSAxNDE0IHkoZGVmYXVsdCkxNiBiKHcpbyhhaXRpbmcpZihwKXEoZXJpbylxKGQpaShpcyllCi0ob25lLXRlbilvKHRoKWgob2YpZShhKWgoc2Vjb25kLikyMSBiKFJldHVybnMpMTQgYih0aGUpaShvbGQpZih0aW1lb3V0KQotaCh2KW0oYWx1ZS4pNzUgMTU0MCB5IEZqKDIuNC45KTMwIGIoVCktNSBiKGVybWluYWwpMjAKLWIoTWFuYWdlbWVuKW4odCkxNzYyIDE3MDggeSBGdShGKWwodW5jdGlvbiktMTg2MSBiIEZpKHZvaWQpMjAKLWIgRmgocmwpcCAyNDEgMTcwOCBWIDIxIHcocHJlcClwIDM3NiAxNzA4IFYgMjAgdyh0ZXJtaW5hbClqCi1GZyhcKClwIEZ0KGludCkxNCBiKG1ldGFfZmxhZylwIEZnKFwpKTE5NSAxNzYyIHkgRnUoTW8pcShkaWZ5KTIyCi1iKHRoZSlmKHRlcm1pbmFsKWgoc2V0dGluZ3MpZihmb3IpZyhSZWFkbGluZSdzKWgodXNlLCloKHNvKWQKLUZ0KHJlYWRsaW5lXChcKSlnIEZ1KGNhbilpKHJlYWQpZihhKWcoc2luZ2xlKTE5NSAxODE3Ci15KGMpbyhoYXJhY3RlcikxNSBiKGF0KWcoYSlnKHRpbWUpaShmcm9tKWQodGhlKWkoaylvKGV5YilxKG9hcmQuKTIyCi1iKFRoZSkxNiBiIEZrKG1ldGEpcCAxMTkyIDE4MTcgMTQgMiB2IDE1IHcoXDAxNWFnKWsgRnUoYXJndW1lbilvKHQpMTUKLWIoc2hvdWxkKWgoYilxKGUpaChub24temVybykxOTUgMTg3MiB5KGlmKWYoUmVhZGxpbmUpZyhzaG91bGQpZyhyZWFkKWYKLShlaWdoKW8odC1iaXQpaShpbnB1dC4pMTc2MiAyMDEwIHkoRilsKHVuY3Rpb24pLTE4NjEKLWIgRmkodm9pZCkyMCBiIEZoKHJsKXAgMjQxIDIwMTAgMTggMyB2IDIxIHcoZGVwcmVwKXAKLTQzNCAyMDEwIFYgMjAgdyh0ZXJtaW5hbClqIEZnKFwoKXAgRnQodm9pZClwIEZnKFwpKTE5NQotMjA2NSB5IEZ1KFVuZG8pMTYgYih0aGUpZyhlXDAxM2VjdHMpZihvZiloIEZ0KHJsX3ByZXBfdGVybWluYWxcKFwpKXAKLUZ1KCwpZChsZWEpbyh2aW5nKWsodGhlKWUodGVybWluYWwpaShpbilnKHRoZSllKHN0YXRlKWcoaW4paSh3aGljKW8oaCkKLTE5NSAyMTIwIHkoaXQpZSh3KW8oYXMpZyhiKXEoZWZvcmUpZyh0aGUpaChtb3N0KWUocmVjZW4pbyh0KWgoY2FsbClpCi0odG8pZCBGdChybF9wcmVwX3Rlcm1pbmFsXChcKSlwIEZ1KC4pMTc2MiAyMjU4IHkoRilsKHVuY3Rpb24pLTE4NjEKLWIgRmkodm9pZCkyMCBiIEZoKHJsKXAgMjQxIDIyNTggViAyMSB3KHR0KW4oeSlwIDMzNCAyMjU4Ci1WIDIyIHcoc2V0KXAgNDI3IDIyNTggViAyMCB3KGRlZmF1bHQpcCA2MjAgMjI1OCBWIDIxCi13KGJpbmRpbmdzKWsgRmcoXCgpcCBGdChLZXltYXApMTQgYihrbWFwKXAgRmcoXCkpMTk1Ci0yMzEzIHkgRnUoUmVhZClrKHRoZSloKG9wKXEoZXJhdGluZylmKHN5c3RlbSdzKWcodGVybWluYWwpaChlZGl0aW5nKWgKLShjKW8oaGFyYWN0ZXJzKWUoXChhcylmKHcpbyhvdWxkKWkoYilxKGUpZyhkaXNwbGEpbyh5KW8oZWQpaChiKW8oeSkxOTUKLTIzNjcgeSBGdChzdHR5KXAgRnUoXCkpMTQgYih0byloKHRoZWlyKWgoUmVhZGxpbmUpZyhlcXVpdiltKGFsZW4pbyh0cy4pCi0yMiBiKFRoZSkxNSBiKGJpbmRpbmdzKWkoYXJlKWUocClxKGVyZm9ybWVkKWcoaW4paCBGayhrbWFwKXAKLUZ1KC4pMTc2MiAyNTA2IHkoRilsKHVuY3Rpb24pLTE4NjEgYiBGaShpbnQpMjAgYiBGaChybClwCi0yMTUgMjUwNiBWIDIxIHcocmVzZXQpcCAzNTcgMjUwNiBWIDIwIHcodGVybWluYWwpaiBGZyhcKClwCi1GdChjb25zdCkxNSBiKGNoYXIpZigqdGVybWluYWxfbmFtZSlwIEZnKFwpKTE5NSAyNTYwCi15IEZ1KFJlaW5pdGlhbGl6ZSloKFJlYWRsaW5lJ3MpZShpZGVhKWcob2YpZih0aGUpZyh0ZXJtaW5hbCloKHNldHRpbmdzKQotZyh1c2luZylnIEZrKHRlcm1pbmFsKXAgMTQ5MSAyNTYwIDE0IDIgdiAxNyB3KG5hbWUpaAotRnUoYXMpZSh0aGUpaCh0ZXJtaS0pMTk1IDI2MTUgeShuYWwpayh0KW8oeXApcShlKWYoXChlLmcuLClmCi1GdCh2dDEwMClwIEZ1KFwpLikyMSBiKElmKWMgRmsodGVybWluYWwpcCA4NzggMjYxNSBWCi0xNyB3KG5hbWUpaSBGdShpcylkIEZ0KE5VTEwpcCBGdSgsKWcodGhlKWcodiltKGFsdWUpaChvZilmKHRoZSlnCi1GdChURVJNKWcgRnUoZW4pbyh2aXJvbm1lbilvKHQpMTk1IDI2NzAgeSh2KW0oYXJpYWJsZSloKGlzKWUodXNlZC4pcAotZW9wCi0lJVBhZ2U6IDM2IDM4Ci0zNiAzNyBib3AgNzUgLTU4IGEgRnUoMzYpMTI5OSBiKEdOVSkxNSBiKFJlYWRsaW5lKWgoTGlicmFyeSk3NQotMTQ5IHkgRmooMi40LjEwKTI5IGIoVXRpbGl0KW4oeSkyMiBiKEYpLTUgYih1bmN0aW9ucykxNzYyCi0yODcgeSBGdShGKWwodW5jdGlvbiktMTg2MSBiIEZpKHZvaWQpMjAgYiBGaChybClwIDI0MQotMjg3IDE4IDMgdiAyMSB3KHJlcGxhY2UpcCA0MzggMjg3IFYgMjIgdyhsaW5lKWsgRmcoXCgpcAotRnQoY29uc3QpMTQgYihjaGFyKWgoKnRleHQsKWYoaW50KWgoY2xlYXJfdW5kbylwIEZnKFwpKTE5NQotMzQyIHkgRnUoUmVwbGFjZSkyMCBiKHRoZSlnKGNvbilvKHRlbilvKHRzKWYob2YpZyBGdChybF9saW5lX2J1ZmZlcilmCi1GdSh3aXRoKWkgRmsodGV4dClwIEZ1KC4pMzMgYihUaGUpMjAgYihwKXEob2luKW8odClnKGFuZClnKG1hcmspZihhcmUpaAotKHByZS0pMTk1IDM5NyB5KHNlcnYpbyhlZCwpMTMgYihpZiloKHApcShvc3NpYmxlLikyMQotYihJZikxMyBiIEZrKGNsZWFyKXAgNzEyIDM5NyAxNCAyIHYgMTcgdyh1bmRvKWogRnUoaXMpZChub24temVybywpaAotKHRoZSlmKHVuZG8pZyhsaXN0KWgoYXNzbylxKGNpYXRlZClnKHdpdGgpZih0aGUpZyhjdXJyZW4pbyh0KTE5NQotNDUyIHkobGluZSlrKGlzKWYoY2xlYXJlZC4pMTc2MiA1NjEgeShGKWwodW5jdGlvbiktMTg2MQotYiBGaShpbnQpMjAgYiBGaChybClwIDIxNSA1NjEgMTggMyB2IDIxIHcoZXh0ZW5kKXAgNDA0Ci01NjEgViAyMSB3KGxpbmUpcCA1MTMgNTYxIFYgMjIgdyhidVwwMTNlcilqIEZnKFwoKXAgRnQoaW50KTE1Ci1iKGxlbilwIEZnKFwpKTE5NSA2MTYgeSBGdShFbnN1cmUpZyh0aGF0KWcgRnQocmxfbGluZV9idWZmZXIpZQotRnUoaGFzKWkoZW5vdWdoKWcoc3BhY2UpaCh0byllKGhvbGQpaSBGayhsZW4pZyBGdShjKW8oaGFyYWN0ZXJzLCllKHApcQotKG9zc2libHkpaShyZWFsLSkxOTUgNjcwIHkobG8pcShjYXRpbmcpZyhpdClmKGlmKWgobmVjZXNzYXJ5KWwoLikxNzYyCi03NzkgeShGKWwodW5jdGlvbiktMTg2MSBiIEZpKGludCkyMCBiIEZoKHJsKXAgMjE1IDc3OQotViAyMSB3KGluaXRpYWxpKXEoeilxKGUpMjYgYiBGZyhcKClwIEZ0KHZvaWQpcCBGZyhcKSkxOTUKLTgzNCB5IEZ1KEluaXRpYWxpemUpMjEgYihvcilkKHJlLWluaXRpYWxpemUpayhSZWFkbGluZSdzKWQoaW4pbyh0ZXJuYWwpCi1oKHN0YXRlLikyOCBiKEl0J3MpMTggYihub3QpZyhzdHJpY3RseSloKG5lY2Vzc2FyeSlnKHRvKWYoY2FsbCkxOTUKLTg4OSB5KHRoaXM7KWQgRnQocmVhZGxpbmVcKFwpKWYgRnUoY2FsbHMpaShpdClnKGIpcShlZm9yZSlmKHJlYWRpbmcpaAotKGFuKW8oeSlmKGlucHV0LikxNzYyIDk5OCB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmkoaW50KTIwCi1iIEZoKHJsKXAgMjE1IDk5OCBWIDIxIHcoZGluZylqIEZnKFwoKXAgRnQodm9pZClwIEZnKFwpKTE5NQotMTA1MyB5IEZ1KFJpbmcpMTUgYih0aGUpZyh0ZXJtaW5hbCloKGIpcShlbGwsKWgob2IpcShleWluZylmKHRoZSlnCi0oc2V0dGluZylmKG9mKWcgRnQoYmVsbC1zdHlsZSlwIEZ1KC4pMTc2MiAxMTYyIHkoRilsKHVuY3Rpb24pLTE4NjEKLWIgRmkoaW50KTIwIGIgRmgocmwpcCAyMTUgMTE2MiBWIDIxIHcoYWxwaGFiKXIoZXRpYylrCi1GZyhcKClwIEZ0KGludCkxNCBiKGMpcCBGZyhcKSkxOTUgMTIxNyB5IEZ1KFJldHVybiloKDEpZyhpZilnCi1GayhjKWogRnUoaXMpZShhbilmKGFscGhhYilxKGV0aWMpaShjKW8oaGFyYWN0ZXIuKTE3NjIKLTEzMjUgeShGKWwodW5jdGlvbiktMTg2MSBiIEZpKHZvaWQpMjAgYiBGaChybClwIDI0MSAxMzI1Ci1WIDIxIHcoZGlzcGxhKW4oeSlwIDQzNSAxMzI1IFYgMjIgdyhtYXRjKW4oaClwIDYxMSAxMzI1Ci1WIDIwIHcobGlzdCkyNSBiIEZnKFwoKXAgRnQoY2hhcikxNCBiKCoqbWF0Y2hlcywpZyhpbnQpZyhsZW4sKWgoaW50KWcKLShtYXgpcCBGZyhcKSkxOTUgMTM4MCB5IEZ1KEEpaShjb24pbyh2KW8oZW5pZW5jZSlpKGZ1bmN0aW9uKWYoZm9yKWYKLShkaXNwbGEpbyh5aW5nKWkoYSllKGxpc3QpaChvZillKHN0cmluZ3MpaChpbilpKGNvbHVtbmFyKWUoZm9ybWF0KWYob24pCi1oKFJlYWQtKTE5NSAxNDM1IHkobGluZSdzKWgob3V0cHV0KWYoc3RyZWFtLikyMyBiIEZ0KG1hdGNoZXMpMTYKLWIgRnUoaXMpaCh0aGUpZyhsaXN0KWgob2YpZShzdHJpbmdzLCloKGluKWcoYXJndilmKGZvcm1hdCwpZyhzdWMpbyhoKWgKLShhcylmKGEpaChsaXN0KWcob2YpMTk1IDE0OTAgeShjb21wbGV0aW9uKWMobWF0YylvKGhlcy4pMTkKLWIgRnQobGVuKTExIGIgRnUoaXMpaSh0aGUpZihuKW8odW0pbyhiKXEoZXIpaChvZillKHN0cmluZ3MpaChpbiloCi1GdChtYXRjaGVzKXAgRnUoLClmKGFuZClnIEZ0KG1heClnIEZ1KGlzKWcodGhlKWgobGVuZ3RoKWYob2YpMTk1Ci0xNTQ1IHkodGhlKWgobG9uZ2VzdClnKHN0cmluZylnKGluKWggRnQobWF0Y2hlcylwIEZ1KC4pMTkKLWIoVGhpcykxMyBiKGZ1bmN0aW9uKWgodXNlcylmKHRoZSloKHNldHRpbmcpZihvZilmIEZ0Ci0ocHJpbnQtY29tcGxldGlvbnMtKTE5NSAxNTk5IHkoaG9yaXpvbnRhbGx5KWsgRnUodG8paShzZWxlY3QpaChobylvKHcpZQotKHRoZSlpKG1hdGMpbyhoZXMpZShhcmUpaChkaXNwbGEpbyh5KW8oZWQpaChcKHNlZSlnKFNlY3Rpb24pZygxLjMuMSlkCi0oW1JlYWRsaW5lKTE5NSAxNjU0IHkoSW5pdClnKEZpbGUpZyhTeW4pbyh0YXhdLCllKHBhZ2UpaCg0XCkuKTEzNwotMTc0MiB5KFRoZSlpKGZvbGxvKW8od2luZylmKGFyZSlnKGltcGxlbWVuKW8odGVkKWkoYXMpZShtYWNyb3MsKWYKLShkZVwwMTRuZWQpaShpbilnIEZ0KGNoYXJkZWZzLmgpcCBGdSguKWsoQXBwbGljYXRpb25zKWQoc2hvdWxkKTc1Ci0xNzk2IHkocmVmcmFpbilkKGZyb20pZyh1c2luZyloKHRoZW0uKTE3NjIgMTkwNSB5KEYpbCh1bmN0aW9uKS0xODYxCi1iIEZpKGludClwIDE3NiAxOTA1IFYgNDAgdyBGaChybClwIDIzNSAxOTA1IFYgMjEgdyh1cHApcihlcmNhc2UpcAotNTA2IDE5MDUgViAyMCB3KHApMjMgYiBGZyhcKClwIEZ0KGludCkxNCBiKGMpcCBGZyhcKSkxOTUKLTE5NjAgeSBGdShSZXR1cm4paCgxKWcoaWYpZyBGayhjKWogRnUoaXMpZShhbilmKHVwcClxKGVyY2FzZSlpKGFscGhhYilxCi0oZXRpYylmKGMpbyhoYXJhY3Rlci4pMTc2MiAyMDY5IHkoRilsKHVuY3Rpb24pLTE4NjEgYgotRmkoaW50KXAgMTc2IDIwNjkgViA0MCB3IEZoKHJsKXAgMjM1IDIwNjkgViAyMSB3KGxvKW4odyluKGVyY2FzZSlwCi00ODkgMjA2OSBWIDIzIHcocCkyMiBiIEZnKFwoKXAgRnQoaW50KTE1IGIoYylwIEZnKFwpKTE5NQotMjEyNCB5IEZ1KFJldHVybilnKDEpZyhpZilnIEZrKGMpaiBGdShpcyllKGEpZihsbylvKHcpbyhlcmNhc2UpZwotKGFscGhhYilxKGV0aWMpaShjKW8oaGFyYWN0ZXIuKTE3NjIgMjIzMyB5KEYpbCh1bmN0aW9uKS0xODYxCi1iIEZpKGludClwIDE3NiAyMjMzIFYgNDAgdyBGaChybClwIDIzNSAyMjMzIFYgMjEgdyhkaWdpdClwCi0zNjkgMjIzMyBWIDIyIHcocCkyMyBiIEZnKFwoKXAgRnQoaW50KTE0IGIoYylwIEZnKFwpKTE5NQotMjI4OCB5IEZ1KFJldHVybiloKDEpZyhpZilnIEZrKGMpaiBGdShpcyllKGEpZihuKW8odW1lcmljKWgoYylvCi0oaGFyYWN0ZXIuKTE3NjIgMjM5NyB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmkoaW50KXAgMTc2Ci0yMzk3IFYgNDAgdyBGaChybClwIDIzNSAyMzk3IFYgMjEgdyh0bylwIDMwNyAyMzk3IFYgMjEKLXcodXBwKXIoZXIpMjEgYiBGZyhcKClwIEZ0KGludCkxNSBiKGMpcCBGZyhcKSkxOTUgMjQ1MQoteSBGdShJZilkIEZrKGMpaiBGdShpcylkKGEpZyhsbylvKHcpbyhlcmNhc2UpZihhbHBoYWIpcShldGljKWooYylvCi0oaGFyYWN0ZXIsKWQocmV0dXJuKWgodGhlKWcoY29ycmVzcClxKG9uZGluZyloKHVwcClxKGVyY2FzZSlnKGMpbwotKGhhcmFjdGVyLikxNzYyIDI1NjAgeShGKWwodW5jdGlvbiktMTg2MSBiIEZpKGludClwIDE3NgotMjU2MCBWIDQwIHcgRmgocmwpcCAyMzUgMjU2MCBWIDIxIHcodG8pcCAzMDcgMjU2MCBWIDIxCi13KGxvKW4odyluKGVyKTI0IGIgRmcoXCgpcCBGdChpbnQpMTUgYihjKXAgRmcoXCkpMTk1Ci0yNjE1IHkgRnUoSWYpZyBGayhjKWkgRnUoaXMpZShhbilmKHVwcClxKGVyY2FzZSlpKGFscGhhYilxKGV0aWMpZyhjKW8KLShoYXJhY3RlciwpZShyZXR1cm4pZyh0aGUpaChjb3JyZXNwKXEob25kaW5nKWcobG8pbyh3KW8oZXJjYXNlKWYoYylvCi0oaGFyYWMtKTE5NSAyNjcwIHkodGVyLilwIGVvcAotJSVQYWdlOiAzNyAzOQotMzcgMzggYm9wIDc1IC01OCBhIEZ1KENoYXB0ZXIpMTUgYigyOilrKFByb2dyYW1taW5nKWMod2l0aClnKEdOVSlnCi0oUmVhZGxpbmUpODQzIGIoMzcpMTc2MiAxNDkgeShGKWwodW5jdGlvbiktMTg2MSBiIEZpKGludClwCi0xNzYgMTQ5IDE4IDMgdiA0MCB3IEZoKHJsKXAgMjM1IDE0OSBWIDIxIHcoZGlnaXQpcCAzNjkKLTE0OSBWIDIyIHcodiltKGFsdWUpMjQgYiBGZyhcKClwIEZ0KGludCkxNSBiKGMpcCBGZyhcKSkxOTUKLTIwNCB5IEZ1KElmKWcgRmsoYylrIEZ1KGlzKWMoYSlnKG4pbyh1bSlvKGIpcShlciwpZyhyZXR1cm4pZyh0aGUpaCh2KW0KLShhbHVlKWcoaXQpZyhyZXByZXNlbilvKHRzLik3NSAzMjUgeSBGaigyLjQuMTEpMjkgYihNaXNjZWxsYW5lb3VzKTIyCi1iKEYpLTUgYih1bmN0aW9ucykxNzYyIDQ4NCB5IEZ1KEYpbCh1bmN0aW9uKS0xODYxIGIgRmkoaW50KTIwCi1iIEZoKHJsKXAgMjE1IDQ4NCBWIDIxIHcobWFjcm8pcCAzOTEgNDg0IFYgMTkgdyhiaW5kKWoKLUZnKFwoKXAgRnQoY29uc3QpMTQgYihjaGFyKWcoKmtleXNlcSwpaChjb25zdClmKGNoYXIpaCgqbWFjcm8sKTI4MwotNTM5IHkoS2V5bWFwKWYobWFwKXAgRmcoXCkpMTk1IDU5MyB5IEZ1KEJpbmQpZih0aGUpZihrKW8oZXkpZihzZXF1ZW5jZSkKLWkgRmsoaylvKGV5c2VxKWcgRnUodG8pZShpbilvKHYpbyhvaylvKGUpZyh0aGUpaChtYWNybylmCi1GayhtYWNybylwIEZ1KC4pMTggYihUaGUpMTIgYihiaW5kaW5nKWgoaXMpZihwKXEoZXJmb3JtZWQpZyhpbikxOTUKLTY0OCB5IEZrKG1hcClwIEZ1KC4pMTkgYihXaGVuKTE0IGIgRmsoaylvKGV5c2VxKWggRnUoaXMpZihpbilvKHYpbyhvaylvCi0oZWQsKWcodGhlKWcgRmsobWFjcm8paSBGdSh3aWxsKWYoYilxKGUpZihpbnNlcnRlZCloKGluKW8odG8pZih0aGUpZwotKGxpbmUuKTIxIGIoVGhpcykxNCBiKGZ1bmN0aW9uKTE5NSA3MDMgeShpcylpKGRlcHJlY2F0ZWQ7KWYodXNlKWgKLUZ0KHJsX2dlbmVyaWNfYmluZFwoXCkpZCBGdShpbnN0ZWFkLikxNzYyIDgzMyB5KEYpbCh1bmN0aW9uKS0xODYxCi1iIEZpKHZvaWQpMjAgYiBGaChybClwIDI0MSA4MzMgViAyMSB3KG1hY3JvKXAgNDE3IDgzMwotViAxOSB3KGR1bXApcihlcilnIEZnKFwoKXAgRnQoaW50KTE1IGIocmVhZGFibGUpcCBGZyhcKSkxOTUKLTg4OCB5IEZ1KFByaW4pbyh0KWYodGhlKWYoaylvKGV5KWgoc2VxdWVuY2VzKWcoYilxKG91bmQpaCh0byllKG1hY3JvcylnCi0oYW5kKWcodGhlaXIpaCh2KW0oYWx1ZXMsKWgodXNpbmcpZih0aGUpZyhjdXJyZW4pbyh0KWcoaylvKGV5bWFwLCkxOTUKLTk0MyB5KHRvKWggRnQocmxfb3V0c3RyZWFtKXAgRnUoLilrKElmKWQgRmsocmVhZGFibGUpagotRnUoaXMpZChub24temVybywpZyh0aGUpZyhsaXN0KWcoaXMpZyhmb3JtYXR0ZWQpZihpbiloKHN1YylvKGgpZyhhKWYodykKLW8oYSlvKHkpZyh0aGF0KWcoaXQpMTk1IDk5NyB5KGNhbilnKGIpcShlKWgobWFkZSlmKHBhcnQpZyhvZilnKGFuKWcKLUZ0KGlucHV0cmMpZiBGdShcMDE0bGUpaShhbmQpZyhyZS1yZWFkLikxNzYyIDExMjcgeShGKWwodW5jdGlvbiktMTg2MQotYiBGaShpbnQpMjAgYiBGaChybClwIDIxNSAxMTI3IFYgMjEgdyh2KW0oYXJpYWJsZSlwIDQzMQotMTEyNyBWIDIyIHcoYmluZClqIEZnKFwoKXAgRnQoY29uc3QpMTQgYihjaGFyKWcoKnZhcmlhYmxlLClnKGNvbnN0KWgKLShjaGFyKWYoKnZhbHVlKXAgRmcoXCkpMTk1IDExODIgeSBGdShNYWspbyhlKTIyIGIodGhlKWcoUmVhZGxpbmUpaSh2KW0KLShhcmlhYmxlKWcgRmsodiltKGFyaWFibGUpaiBGdShoYSlvKHYpbyhlKTIyIGIgRmsodiltKGFsdWUpcAotRnUoLik0MyBiKFRoaXMpMjMgYihiKXEoZWhhKW8odilvKGVzKWcoYXMpZihpZiloKHRoZSlmKHJlYWRsaW5lKTE5NQotMTIzNyB5KGNvbW1hbmQpMTIgYihgKXAgRnQoc2V0KWogRmsodiltKGFyaWFibGUpayh2KW0oYWx1ZSlzCi1GdSgnKTEyIGIoaGFkKWgoYilxKGVlbilnKGV4ZWN1dGVkKWgoaW4pZihhbilmIEZ0KGlucHV0cmMpZwotRnUoXDAxNGxlKWgoXChzZWUpZihTZWN0aW9uKWkoMS4zLjEpMTk1IDEyOTIgeShbUmVhZGxpbmUpaShJbml0KWcoRmlsZSkKLWgoU3luKW8odGF4XSwpZChwYWdlKWgoNFwpLikxNzYyIDE0MjIgeShGKWwodW5jdGlvbiktMTg2MQotYiBGaSh2b2lkKTIwIGIgRmgocmwpcCAyNDEgMTQyMiBWIDIxIHcodiltKGFyaWFibGUpcAotNDU3IDE0MjIgViAyMiB3KGR1bXApcihlcilnIEZnKFwoKXAgRnQoaW50KTE0IGIocmVhZGFibGUpcAotRmcoXCkpMTk1IDE0NzYgeSBGdShQcmluKW8odClnKHRoZSloKHJlYWRsaW5lKWgodiltKGFyaWFibGUpZihuYW1lcylnCi0oYW5kKWYodGhlaXIpaChjdXJyZW4pbyh0KWYodiltKGFsdWVzKWkodG8pZCBGdChybF9vdXRzdHJlYW0pcAotRnUoLikxOCBiKElmKWQgRmsocmVhZC0pMTk1IDE1MzEgeShhYmxlKTIwIGIgRnUoaXMpZShub24temVybywpZih0aGUpZwotKGxpc3QpaChpcylnKGZvcm1hdHRlZCllKGluKWgoc3VjKW8oaCloKGEpZSh3KW8oYSlvKHkpZyh0aGF0KWgoaXQpZwotKGNhbilnKGIpcShlKWgobWFkZSlmKHBhcnQpZihvZiloKGFuKTE5NSAxNTg2IHkgRnQoaW5wdXRyYylkCi1GdShcMDE0bGUpaShhbmQpZyhyZS1yZWFkLikxNzYyIDE3MTYgeShGKWwodW5jdGlvbiktMTg2MQotYiBGaShpbnQpMjAgYiBGaChybClwIDIxNSAxNzE2IFYgMjEgdyhzZXQpcCAzMDcgMTcxNgotViAyMCB3KHBhcmVuKXAgNDY5IDE3MTYgViAyMCB3KGJsaW5rKXAgNjEzIDE3MTYgViAyMwotdyh0aW1lb3V0KWkgRmcoXCgpcCBGdChpbnQpMTUgYih1KXAgRmcoXCkpMTk1IDE3NzEgeQotRnUoU2V0KWUodGhlKWYodGltZSloKGluKW8odGVydiltKGFsKWgoXChpbilmKG1pY3Jvc2Vjb25kc1wpKWcodGhhdClmCi0oUmVhZGxpbmUpaSh3KW8oYWl0cyllKHdoZW4paChzaG8pbyh3aW5nKWYoYSloKGJhbGFuY2luZykxOTUKLTE4MjYgeShjKW8oaGFyYWN0ZXIpaCh3aGVuKWkgRnQoYmxpbmstbWF0Y2hpbmctcGFyZW4pZAotRnUoaGFzKWkoYilxKGVlbiloKGVuYWJsZWQuKTE3NjIgMTk1NiB5KEYpbCh1bmN0aW9uKS0xODYxCi1iIEZpKGNoYXIpMjAgYigqKWYgRmgocmwpcCAyODYgMTk1NiBWIDIxIHcoZ2V0KXAgMzg0Ci0xOTU2IFYgMjEgdyh0ZXJtY2FwKWogRmcoXCgpcCBGdChjb25zdCkxNCBiKGNoYXIpZygqY2FwKXAKLUZnKFwpKTE5NSAyMDEwIHkgRnUoUmV0cmlldilvKGUpZih0aGUpaChzdHJpbmcpZih2KW0oYWx1ZSlpKG9mKWUodGhlKWgKLSh0ZXJtY2FwKWYoY2FwYWJpbGl0KW8oeSlpIEZrKGNhcClwIEZ1KC4payhSZWFkbGluZSljKGZldGMpbyhoZXMpZih0aGUpCi1mKHRlcm1jYXApMTk1IDIwNjUgeShlbilvKHRyeSlqKGZvciloKHRoZSlmKGN1cnJlbilvKHQpaCh0ZXJtaW5hbCloCi0obmFtZSllKGFuZCloKHVzZXMpZyh0aG9zZSlnKGNhcGFiaWxpdGllcylpKHRvKWQobW8pbyh2KW8oZSlnKGFyb3VuZCloCi0odGhlKTE5NSAyMTIwIHkoc2NyZWVuKTExIGIobGluZSloKGFuZClmKHApcShlcmZvcm0pZihvdGhlcilnCi0odGVybWluYWwtc3ApcShlY2lcMDE0YylrKG9wKXEoZXJhdGlvbnMsKWQobGlrKW8oZSloKGVyYXNpbmcpZShhKWgKLShsaW5lLikyMCBiKFJlYWRsaW5lKTE5NSAyMTc1IHkoZG8pcShlcyllKG5vdClmKHVzZSloKGFsbClnKG9mKWYoYSlnCi0odGVybWluYWwncyloKGNhcGFiaWxpdGllcywpaShhbmQpZSh0aGlzKWcoZnVuY3Rpb24pZyh3aWxsKWgocmV0dXJuKWYKLSh2KW0oYWx1ZXMpaChmb3IpMTk1IDIyMzAgeShvbmx5KWQodGhvc2UpZihjYXBhYmlsaXRpZXMpaShSZWFkbGluZSlnCi0odXNlcy4pNzUgMjM1MCB5IEZqKDIuNC4xMikyOSBiKEFsdGVybmF0ZSkyMSBiKEluKW4odGVyZmFjZSkxMzcKLTI0NTEgeSBGdShBbilpKGFsdGVybmF0ZSlmKGluKW8odGVyZmFjZSloKGlzKWcoYSlvKHYpbShhaWxhYmxlKWgodG8pZAotKHBsYWluKWogRnQocmVhZGxpbmVcKFwpKXAgRnUoLik0MCBiKFNvbWUpMjIgYihhcHBsaWNhdGlvbnMpaShuZWVkKWcKLSh0byk3NSAyNTA2IHkoaW4pbyh0ZXJsZWEpbyh2KW8oZSkxNSBiKGspbyhleWIpcShvYXJkKWYoSS9PKWgod2l0aClnCi0oXDAxNGxlLCloKGRldmljZSwpZihvcilmKHdpbmRvKW8odyloKHN5c3RlbSlmKEkvTywpaCh0KW8oeXBpY2FsbHkpaChiKQotbyh5KWUodXNpbmcpaChhKWcobWFpbik3NSAyNTYwIHkobG8pcShvcClmKHRvKWcgRnQoc2VsZWN0XChcKSllCi1GdShvbilpKHYpbShhcmlvdXMpZyhcMDE0bGUpaChkZXNjcmlwdG9ycy4pMjAgYihUKWwobykxNAotYihhY2NvbW8pcShkYXRlKWYodGhpcyloKG5lZWQsKWgocmVhZGxpbmUpZyhjYW4pZihhbHNvKWcoYilxKGUpNzUKLTI2MTUgeShpbilvKHYpbyhvaylvKGVkKWkoYXMpZihhKWcoYGNhbGxiYWMpbyhrJyloKGZ1bmN0aW9uKWgoZnJvbSlkCi0oYW4paShldilvKGVuKW8odClmKGxvKXEob3AuKTIyIGIoVGhlcmUpMTYgYihhcmUpZihmdW5jdGlvbnMpaChhKW8odiltCi0oYWlsYWJsZSlpKHRvKWMobWFrKW8oZSk3NSAyNjcwIHkodGhpcylpKGVhc3kpbCguKXAgZW9wCi0lJVBhZ2U6IDM4IDQwCi0zOCAzOSBib3AgNzUgLTU4IGEgRnUoMzgpMTI5OSBiKEdOVSkxNSBiKFJlYWRsaW5lKWgoTGlicmFyeSkxNzYyCi0xNDkgeShGKWwodW5jdGlvbiktMTg2MSBiIEZpKHZvaWQpMjAgYiBGaChybClwIDI0MSAxNDkKLTE4IDMgdiAyMSB3KGNhbGxiYWMpbihrKXAgNDU4IDE0OSBWIDIzIHcoaGFuZGxlcilwIDY3MAotMTQ5IFYgMjEgdyhpbnN0YWxsKTI1IGIgRmcoXCgpcCBGdChjb25zdCkxNCBiKGNoYXIpaCgqcHJvbXB0LCkyODMKLTIwNCB5KHJsX3ZjcGZ1bmNfdCllKCpsaGFuZGxlcilwIEZnKFwpKTE5NSAyNTkgeSBGdShTZXQpZih1cCloKHRoZSlnCi0odGVybWluYWwpZyhmb3IpZihyZWFkbGluZSlpKEkvTylmKGFuZClmKGRpc3BsYSlvKHkpaSh0aGUpZShpbml0aWFsKWoKLShleHBhbmRlZCllKHYpbShhbHVlKWgob2YpZSBGayhwcm9tcHQpcCBGdSguKTE5NSAzMTQKLXkoU2Epbyh2KW8oZSlqKHRoZSloKHYpbShhbHVlKWgob2YpZiBGayhsaGFuZGxlcikyMSBiCi1GdSh0bykxNSBiKHVzZSloKGFzKWYoYSloKGZ1bmN0aW9uKWgodG8pZShjYWxsKWkod2hlbilmKGEpZyhjb21wbGV0ZSlnCi0obGluZSlpKG9mKWQoaW5wdXQpMTk1IDM2OSB5KGhhcylnKGIpcShlZW4paChlbilvKHRlcmVkLikyMQotYihUaGUpMTUgYihmdW5jdGlvbiloKHRhaylvKGVzKWUodGhlKWkodGV4dCllKG9mKWgodGhlKWcobGluZSlpKGFzKWUKLShhbilnKGFyZ3VtZW4pbyh0LikxNzYyIDQ4MCB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmkodm9pZCkyMAotYiBGaChybClwIDI0MSA0ODAgViAyMSB3KGNhbGxiYWMpbihrKXAgNDU4IDQ4MCBWIDIzIHcocmVhZClwCi01OTEgNDgwIFYgMjAgdyhjKW4oaGFyKWogRmcoXCgpcCBGdCh2b2lkKXAgRmcoXCkpMTk1Ci01MzUgeSBGdShXaGVuZXYpbyhlcikxNyBiKGFuKWcoYXBwbGljYXRpb24paChkZXRlcm1pbmVzKWcodGhhdCllKGspbwotKGV5YilxKG9hcmQpaChpbnB1dCloKGlzKWYoYSlvKHYpbShhaWxhYmxlLClpKGl0KWUoc2hvdWxkKWgoY2FsbCkxOTUKLTU5MCB5IEZ0KHJsX2NhbGxiYWNrX3JlYWRfY2hhclwoXCkpcCBGdSgsKTggYih3aGljKW8oaClrKHdpbGwpZyhyZWFkKWYKLSh0aGUpZyhuZXh0KWcoYylvKGhhcmFjdGVyKWYoZnJvbSlnKHRoZSloKGN1cnJlbilvKHQpZyhpbnB1dCkxOTUKLTY0NSB5KHNvdXJjZS4pMzggYihJZikyMSBiKHRoYXQpZyhjKW8oaGFyYWN0ZXIpZihjb21wbGV0ZXMpaSh0aGUpZgotKGxpbmUsKWogRnQocmxfY2FsbGJhY2tfcmVhZF9jaGFyKTE4IGIgRnUod2lsbCkyMyBiKGluKW8odilvKG9rKW8oZSkxOTUKLTY5OSB5KHRoZSkxOCBiIEZrKGxoYW5kbGVyKWsgRnUoZnVuY3Rpb24pZChzYSlvKHYpbyhlZCllKGIpbyh5KWgKLUZ0KHJsX2NhbGxiYWNrX2hhbmRsZXJfaW5zdGEpbyhsbClkIEZ1KHRvKWkocHJvKXEoY2VzcyloKHRoZSlnKGxpbmUuKQotMTk1IDc1NCB5KEJlZm9yZSkxMyBiKGNhbGxpbmcpaSh0aGUpZiBGayhsaGFuZGxlcilrIEZ1KGZ1bmN0aW9uLCljKHRoZSkKLWcodGVybWluYWwpZyhzZXR0aW5ncylmKGFyZSlnKHJlc2V0KWcodG8pZyh0aGUpZyh2KW0oYWx1ZXMpaSh0aGV5KTE5NQotODA5IHkoaGFkKWcoYilxKGVmb3JlKWcoY2FsbGluZylpIEZ0KHJsX2NhbGxiYWNrX2hhbmRsZXJfaW5zdGEpbyhsbClwCi1GdSguKWcoSWYpZSh0aGUpZyBGayhsaGFuZGxlcikyMCBiIEZ1KGZ1bmN0aW9uKTE1IGIocmV0dXJucywpMTk1Ci04NjQgeSh0aGUpZCh0ZXJtaW5hbClpKHNldHRpbmdzKWUoYXJlKWcobW8pcShkaVwwMTRlZClpKGZvcilkCi0oUmVhZGxpbmUncylpKHVzZSlnKGFnYWluLikxOSBiIEZ0KEVPRikxMiBiIEZ1KGlzKWgoaW5kaWNhdGVkKWgoYilvKHkpZQotKGNhbGxpbmcpMTk1IDkxOSB5IEZrKGxoYW5kbGVyKTIwIGIgRnUod2l0aCljKGEpZiBGdChOVUxMKWYKLUZ1KGxpbmUuKTE3NjIgMTAzMCB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmkodm9pZCkyMCBiCi1GaChybClwIDI0MSAxMDMwIFYgMjEgdyhjYWxsYmFjKW4oaylwIDQ1OCAxMDMwIFYgMjMgdyhoYW5kbGVyKXAKLTY3MCAxMDMwIFYgMjEgdyhyZW1vKW4odiluKGUpaSBGZyhcKClwIEZ0KHZvaWQpcCBGZyhcKSkxOTUKLTEwODUgeSBGdShSZXN0b3JlKWModGhlKWcodGVybWluYWwpaSh0bylkKGl0cylpKGluaXRpYWwpaShzdGF0ZSlkKGFuZClnCi0ocmVtbylvKHYpbyhlKWcodGhlKWgobGluZSloKGhhbmRsZXIuKTMxIGIoVGhpcykxOSBiKG1hKW8oeSlmKGIpcShlKTE5NQotMTE0MCB5KGNhbGxlZClpKGZyb20pZCh3aXRoaW4paihhKWQoY2FsbGJhYylvKGspaihhcylkKHcpbyhlbGwpaShhcylmCi0oaW5kZXApcShlbmRlbilvKHRseSltKC4pMzEgYihJZikxOSBiKHRoZSlmIEZrKGxoYW5kbGVyKTIzCi1iIEZ1KGluc3RhbGxlZClkKGIpbyh5KTE5NSAxMTk1IHkgRnQocmxfY2FsbGJhY2tfaGFuZGxlcl9pbnN0YWwpbyhsKWQKLUZ1KGRvKXEoZXMpaShub3QpZyhleGl0KWgodGhlKWcocHJvZ3JhbSwpZShlaXRoZXIpaSh0aGlzKWcoZnVuY3Rpb24pZwotKG9yKTE5NSAxMjQ5IHkodGhlKWMoZnVuY3Rpb24pZyhyZWZlcnJlZClnKHRvKWYoYilvKHkpaCh0aGUpZyh2KW0oYWx1ZSkKLWgob2YpZSBGdChybF9kZXByZXBfdGVybV9mdW5jdGlvbilkIEZ1KHNob3VsZCkxNyBiKGIpcShlKWYoY2FsbGVkKTE5NQotMTMwNCB5KGIpcShlZm9yZSlmKHRoZSloKHByb2dyYW0pZShleGl0cyloKHRvKWcocmVzZXQpZyh0aGUpZyh0ZXJtaW5hbCkKLWgoc2V0dGluZ3MuKTc1IDE0MTMgeSBGaigyLjQuMTMpMjkgYihBKTIxIGIoUmVhZGxpbmUpZyhFeGFtcGxlKTEzNwotMTUwOCB5IEZ1KEhlcmUpZihpcylnKGEpZihmdW5jdGlvbilpKHdoaWMpbyhoKWYoYylvKGhhbmdlcylmKGxvKW8odylvCi0oZXJjYXNlKWgoYylvKGhhcmFjdGVycyllKHRvKWgodGhlaXIpaCh1cHApcShlcmNhc2UpaChlcXVpdiltKGFsZW4pbwotKHRzLCk3NSAxNTYzIHkoYW5kKWUodXBwKXEoZXJjYXNlKWkoYylvKGhhcmFjdGVycylkKHRvKWgobG8pbyh3KW8KLShlcmNhc2UuKTMxIGIoSWYpMjAgYih0aGlzKWYoZnVuY3Rpb24paCh3KW8oYXMpZihiKXEob3VuZCloKHRvKWYoYClwCi1GdChNLWMpcCBGdSgnLClmKHRoZW4paSh0KW8oeXBpbmcpNzUgMTYxOCB5KGApcCBGdChNLWMpcAotRnUoJykxMiBiKHcpbyhvdWxkKWgoYylvKGhhbmdlKWgodGhlKWYoY2FzZSlnKG9mKWcodGhlKWcoYylvKGhhcmFjdGVyKWcKLSh1bmRlcilnKHApcShvaW4pbyh0LikyMCBiKFQpbyh5cGluZykxNCBiKGApcCBGdChNLTEpZygwKWgoTS1jKXAKLUZ1KCcpZCh3KW8ob3VsZClpKGMpbyhoYW5nZSk3NSAxNjczIHkodGhlKWgoY2FzZSlnKG9mKWcodGhlKWgoZm9sbG8pbwotKHdpbmcpZigxMClnKGMpbyhoYXJhY3RlcnMsKWYobGVhKW8odmluZylpKHRoZSlmKGN1cnNvcilnKG9uKWcodGhlKWgKLShsYXN0KWYoYylvKGhhcmFjdGVyKWYoYylvKGhhbmdlZC4pMTk1IDE3MzYgeSBGdCgvKikyNAotYihJbnZlcnQpZih0aGUpZyhjYXNlKWcob2YpaCh0aGUpZihDT1VOVCloKGZvbGxvd2luZyllKGNoYXJhY3RlcnMuKWgKLSgqLykxOTUgMTc4OCB5KGludCkxOTUgMTg0MCB5KGludmVydF9jYXNlX2xpbmUpZihcKGNvdW50LCloKGtleVwpKTMxNAotMTg5MiB5KGludCloKGNvdW50LClmKGtleTspMTk1IDE5NDQgeSh7KTI0MyAxOTk1IHkocmVnaXN0ZXIpZihpbnQpaQotKHN0YXJ0LClmKGVuZCwpZyhpOykyNDMgMjA5OSB5KHN0YXJ0KWcoPSloKHJsX3BvaW50OykyNDMKLTIyMDMgeShpZilmKFwocmxfcG9pbnQpZyg+PSloKHJsX2VuZFwpKTI5MCAyMjU1IHkocmV0dXJuKWYoXCgwXCk7KTI0MwotMjM1OSB5KGlmKWcoXChjb3VudClnKDwpaCgwXCkpMjkwIDI0MTEgeSh7KTMzOCAyNDYyIHkoZGlyZWN0aW9uKWYoPSloCi0oLTE7KTMzOCAyNTE0IHkoY291bnQpZig9KWgoLWNvdW50OykyOTAgMjU2NiB5KH0pMjQzCi0yNjE4IHkoZWxzZSkyOTAgMjY3MCB5KGRpcmVjdGlvbilmKD0paCgxOylwIGVvcAotJSVQYWdlOiAzOSA0MQotMzkgNDAgYm9wIDc1IC01OCBhIEZ1KENoYXB0ZXIpMTUgYigyOilrKFByb2dyYW1taW5nKWMod2l0aClnKEdOVSlnCi0oUmVhZGxpbmUpODQzIGIoMzkpMjQzIDIwMSB5IEZ0KC8qKTIzIGIoRmluZCloKHRoZSlmKGVuZCloKG9mKWYodGhlKWgKLShyYW5nZSlmKHRvKWcobW9kaWZ5LilnKCovKTI0MyAyNTMgeShlbmQpZyg9KWgoc3RhcnQpZigrKWgoXChjb3VudClmKCopCi1oKGRpcmVjdGlvblwpOykyNDMgMzU3IHkoLyopZihGb3JjZSlnKGl0KWgodG8pZyhiZSlmKHdpdGhpbilnKHJhbmdlLilnCi0oKi8pMjQzIDQwOSB5KGlmKWcoXChlbmQpaCg+KWYocmxfZW5kXCkpMjkwIDQ2MSB5KGVuZCloKD0pZyhybF9lbmQ7KTI0MwotNTEzIHkoZWxzZSlmKGlmKWgoXChlbmQpZig8KWgoMFwpKTI5MCA1NjUgeShlbmQpZyg9KWcoMDspMjQzCi02NjggeShpZilmKFwoc3RhcnQpZyg9PSloKGVuZFwpKTI5MCA3MjAgeShyZXR1cm4pZihcKDBcKTspMjQzCi04MjQgeShpZilnKFwoc3RhcnQpZyg+KWgoZW5kXCkpMjkwIDg3NiB5KHspMzM4IDkyOCB5KGludClnKHRlbXApZig9KWgKLShzdGFydDspMzM4IDk4MCB5KHN0YXJ0KWYoPSloKGVuZDspMzM4IDEwMzIgeShlbmQpZyg9KWYodGVtcDspMjkwCi0xMDgzIHkofSkyNDMgMTE4NyB5KC8qKWcoVGVsbCloKHJlYWRsaW5lKWUodGhhdClpKHdlKWYoYXJlKWgobW9kaWZ5aW5nKQotZSh0aGUpaShsaW5lLCkzMTQgMTIzOSB5KHNvKWcoaXQpZih3aWxsKWgoc2F2ZSlmKHRoZSloKHVuZG8pZgotKGluZm9ybWF0aW9uLilmKCovKTI0MyAxMjkxIHkocmxfbW9kaWZ5aW5nKWcoXChzdGFydCwpaChlbmRcKTspMjQzCi0xMzk1IHkoZm9yKWcoXChpKWgoPSlmKHN0YXJ0OyloKGkpZighPSloKGVuZDspZihpKytcKSkyOTAKLTE0NDcgeSh7KTMzOCAxNDk5IHkoaWYpaChcKF9ybF91cHBlcmNhc2VfcClkKFwocmxfbGluZV9idWZmZXJbaV1cKVwpKQotMzg2IDE1NTAgeShybF9saW5lX2J1ZmZlcltpXSlnKD0paihfcmxfdG9fbG93ZXIpZQotKFwocmxfbGluZV9idWZmZXJbaV1cKTspMzM4IDE2MDIgeShlbHNlKWgoaWYpaChcKF9ybF9sb3dlcmNhc2VfcCllCi0oXChybF9saW5lX2J1ZmZlcltpXVwpXCkpMzg2IDE2NTQgeShybF9saW5lX2J1ZmZlcltpXSlmKD0pagotKF9ybF90b191cHBlcillKFwocmxfbGluZV9idWZmZXJbaV1cKTspMjkwIDE3MDYgeSh9KTI0MwotMTc1OCB5KC8qKWgoTW92ZSloKHBvaW50KWYodG8pZyhvbiloKHRvcClmKG9mKWgodGhlKWYobGFzdCloKGNoYXJhY3RlcikKLWUoY2hhbmdlZC4paCgqLykyNDMgMTgxMCB5KHJsX3BvaW50KWYoPSlpKFwoZGlyZWN0aW9uKWYoPT0pZygxXCkpaCg/KWcKLShlbmQpZigtKWgoMSlnKDopZihzdGFydDspMjQzIDE4NjIgeShyZXR1cm4pZyhcKDBcKTspMTk1Ci0xOTE0IHkofSk3NSAyMDU3IHkgRnMoMi41KTMzIGIoUmVhZGxpbmUpMjMgYihTaWduYWwpaChIYW5kbGluZykxMzcKLTIxNTkgeSBGdShTaWduYWxzKWUoYXJlKWYoYXN5bmMpbyhocm9ub3VzKWYoZXYpbyhlbilvKHRzKWgoc2VuKW8odClmCi0odG8paChhKWYocHJvKXEoY2VzcyloKGIpbyh5KWcodGhlKWcoVW5peCloKGspbyhlcm5lbCwpZyhzb21ldGltZXMpZgotKG9uKTc1IDIyMTMgeShiKXEoZWhhbGYpZyhvZillKGFub3RoZXIpaChwcm8pcShjZXNzLikzNAotYihUaGV5KTIwIGIoYXJlKWcoaW4pbyh0ZW5kZWQpaCh0byllKGluZGljYXRlKWooZXhjZXB0aW9uYWwpZihldilvKGVuKW8KLSh0cywpZihsaWspbyhlKWgoYSlmKHVzZXIpNzUgMjI2OCB5KHByZXNzaW5nKWModGhlKWYoaW4pbyh0ZXJydXB0KWcoaylvCi0oZXkpZyhvbilnKGhpcyloKHRlcm1pbmFsLClmKG9yKWcoYSlmKG5ldClvKHcpbyhvcmspZyhjb25uZWN0aW9uKWkoYilxCi0oZWluZylnKGJyb2spbyhlbi4payhUaGVyZSkxNSBiKGlzKTc1IDIzMjMgeShhKWUoY2xhc3MpZyhvZilnKHNpZ25hbHMpaAotKHRoYXQpZihjYW4pZyhiKXEoZSloKHNlbilvKHQpZih0bylmKHRoZSlpKHBybylxKGNlc3MpZihjdXJyZW4pbyh0bHkpaAotKHJlYWRpbmcpZihpbnB1dClpKGZyb20pZCh0aGUpaChrKW8oZXliKXEob2FyZC4pNzUgMjM3OAoteShTaW5jZSlpKFJlYWRsaW5lKWYoYylvKGhhbmdlcylnKHRoZSlmKHRlcm1pbmFsKWgoYXR0cmlidXRlcylmKHdoZW4paAotKGl0KWcoaXMpZyhjYWxsZWQsKWgoaXQpZShuZWVkcyloKHRvKWYocClxKGVyZm9ybSlnKHNwKXEoZWNpYWwpNzUKLTI0MzMgeShwcm8pcShjZXNzaW5nKWkod2hlbilmKHN1YylvKGgpZyhhKWcoc2lnbmFsKWcoaXMpZyhyZWNlaXYpbyhlZCloCi0oaW4pZyhvcmRlcilmKHRvKWYocmVzdG9yZSlnKHRoZSloKHRlcm1pbmFsKWcodG8pZihhKWgoc2FuZSlnKHN0YXRlLCllCi0ob3IpNzUgMjQ4NyB5KHBybylvKHZpZGUpayhhcHBsaWNhdGlvbiloKHdyaXRlcnMpZSh3aXRoKWcoZnVuY3Rpb25zKWgKLSh0bylmKGRvKWcoc28pZyhtYW4pbyh1YWxseSlsKC4pMTM3IDI1NjAgeShSZWFkbGluZSkyMgotYihjb24pbyh0YWlucyllKGFuKWcoaW4pbyh0ZXJuYWwpaChzaWduYWwpZyhoYW5kbGVyKWcodGhhdClmKGlzKWgKLShpbnN0YWxsZWQpaChmb3IpZChhKWgobilvKHVtKW8oYilxKGVyKWcob2YpZyhzaWduYWxzKTc1Ci0yNjE1IHkoXCgpcCBGdChTSUdJTlQpcCBGdSgsKWggRnQoU0lHUVVJVClwIEZ1KCwpZyBGdChTSUdURVJNKXAKLUZ1KCwpZyBGdChTSUdBTFJNKXAgRnUoLClnIEZ0KFNJR1RTVFApcCBGdSgsKWcgRnQoU0lHVFRJTilwCi1GdSgsKWgoYW5kKWYgRnQoU0lHVFRPVSlwIEZ1KFwpLikzNiBiKFdoZW4pMjEgYihvbmUpZyhvZik3NQotMjY3MCB5KHRoZXNlKTE2IGIoc2lnbmFscyloKGlzKWYocmVjZWl2KW8oZWQsKWgodGhlKWYoc2lnbmFsKWgoaGFuZGxlcikKLWYod2lsbClpKHJlc2V0KWUodGhlKWcodGVybWluYWwpZyhhdHRyaWJ1dGVzKWcodG8pZih0aG9zZSloKHRoYXQpcAotZW9wCi0lJVBhZ2U6IDQwIDQyCi00MCA0MSBib3AgNzUgLTU4IGEgRnUoNDApMTI5OSBiKEdOVSkxNSBiKFJlYWRsaW5lKWgoTGlicmFyeSk3NQotMTQ5IHkodylvKGVyZSlkKGluKWkoZVwwMTNlY3QpZShiKXEoZWZvcmUpaCBGdChyZWFkbGluZVwoXCkpZQotRnUodylvKGFzKWgoY2FsbGVkLClpKHJlc2V0KWYodGhlKWYoc2lnbmFsKWkoaGFuZGxpbmcpZyh0byllKHdoYXQpZyhpdCkKLWgodylvKGFzKWYoYilxKGVmb3JlKTc1IDIwNCB5IEZ0KHJlYWRsaW5lXChcKSkyMSBiIEZ1KHcpbyhhcyloKGNhbGxlZCwpCi1qKGFuZCllKHJlc2VuZClnKHRoZSlnKHNpZ25hbClnKHRvKWYodGhlKWgoY2FsbGluZyloKGFwcGxpY2F0aW9uLik0NAotYihJZikyMyBiKGFuZClmKHdoZW4pNzUgMjU5IHkodGhlKTE3IGIoY2FsbGluZylpKGFwcGxpY2F0aW9uJ3MpZgotKHNpZ25hbClnKGhhbmRsZXIpZyhyZXR1cm5zLClmKFJlYWRsaW5lKWgod2lsbCloKHJlaW5pdGlhbGl6ZSloKHRoZSlkCi0odGVybWluYWwpaChhbmQpNzUgMzE0IHkoY29uKW8odGluKW8odWUpZCh0byllKGFjY2VwdClpKGlucHV0LikyMAotYihXaGVuKTE1IGIoYSllIEZ0KFNJR0lOVCloIEZ1KGlzKWcocmVjZWl2KW8oZWQsKWgodGhlKWcoUmVhZGxpbmUpZwotKHNpZ25hbClnKGhhbmRsZXIpZyhwKXEoZXJmb3Jtcyk3NSAzNjkgeShzb21lKWsoYWRkaXRpb25hbClpKHcpbyhvcmssKWUKLSh3aGljKW8oaCloKHdpbGwpaChjYXVzZSlmKGFuKW8oeSlmKHBhcnRpYWxseS1lbilvKHRlcmVkKWkobGluZSlnKHRvKWQKLShiKXEoZSlpKGFiKXEob3J0ZWQpZyhcKHNlZSlmKHRoZSk3NSA0MjMgeShkZXNjcmlwdGlvbillKG9mKWQKLUZ0KHJsX2ZyZWVfbGluZV9zdGF0ZVwoXCkpZiBGdShiKXEoZWxvKW8od1wpLikxMzcgNDg4Ci15KFRoZXJlKWcoaXMpZihhbilnKGFkZGl0aW9uYWwpaShSZWFkbGluZSlnKHNpZ25hbClmKGhhbmRsZXIsKWcoZm9yKWYKLUZ0KFNJR1dJTkNIKXAgRnUoLClmKHdoaWMpbyhoKWkodGhlKWYoaylvKGVybmVsKWgoc2VuZHMpZyh0byllKGEpNzUKLTU0MyB5KHBybylxKGNlc3Mpayh3aGVuZXYpbyhlcilnKHRoZSlmKHRlcm1pbmFsJ3MpaChzaXplKWcoYylvKGhhbmdlcylmCi0oXChmb3IpZyhleGFtcGxlLCloKGlmKWcoYSlmKHVzZXIpaChyZXNpemVzKWcoYW4pZiBGdCh4dGVybSlwCi1GdShcKS4pMTkgYihUaGUpNzUgNTk4IHkoUmVhZGxpbmUpZyBGdChTSUdXSU5DSCllIEZ1KGhhbmRsZXIpaSh1cClxCi0oZGF0ZXMpZihSZWFkbGluZSdzKWgoaW4pbyh0ZXJuYWwpZihzY3JlZW4paChzaXplKWYoaW5mb3JtYXRpb24sKWgoYW5kKQotZih0aGVuKTc1IDY1MyB5KGNhbGxzKWcoYW4pbyh5KWYgRnQoU0lHV0lOQ0gpZSBGdShzaWduYWwpaihoYW5kbGVyKWcKLSh0aGUpZihjYWxsaW5nKWkoYXBwbGljYXRpb24pZihoYXMpZihpbnN0YWxsZWQuKTI3IGIoUmVhZGxpbmUpMTgKLWIoY2FsbHMpZyh0aGUpNzUgNzA4IHkoYXBwbGljYXRpb24ncyloIEZ0KFNJR1dJTkNIKWQKLUZ1KHNpZ25hbClqKGhhbmRsZXIpZih3aXRob3V0KWcocmVzZXR0aW5nKWcodGhlKWYodGVybWluYWwpaSh0byllKGl0cylnCi0ob3JpZ2luYWwpaShzdGF0ZS4pNzUgNzYyIHkoSWYpZCh0aGUpZyhhcHBsaWNhdGlvbidzKWgoc2lnbmFsKWcKLShoYW5kbGVyKWcoZG8pcShlcylnKG1vcmUpZSh0aGFuKWgodXApcShkYXRlKWgoaXRzKWYoaWRlYSloKG9mKWUodGhlKWgKLSh0ZXJtaW5hbCloKHNpemUpZyhhbmQpNzUgODE3IHkocmV0dXJuKWUoXChmb3IpZihleGFtcGxlLCloKGEpZgotRnQobG9uZ2ptcClnIEZ1KGJhYylvKGspaCh0bylmKGEpaChtYWluKWcocHJvKXEoY2Vzc2luZylnKGxvKXEob3BcKSwpZwotKGl0KWcgRmwobXVzdCkyMCBiIEZ1KGNhbGwpYyBGdChybF9jbGVhbnVwXyk3NSA4NzIgeShhZnRlcl9zaWduYWxcKFwpKWQKLUZ1KFwoZGVzY3JpYilxKGVkKWsoYilxKGVsbylvKHdcKSwpZSh0bylnKHJlc3RvcmUpZih0aGUpaCh0ZXJtaW5hbCloCi0oc3RhdGUuKTEzNyA5MzcgeShSZWFkbGluZSlnKHBybylvKHZpZGVzKWYodClvKHcpbyhvKWUodiltKGFyaWFibGVzKWkKLSh0aGF0KWYoYWxsbylvKHcpZyhhcHBsaWNhdGlvbilpKHdyaXRlcnMpZSh0bylnKGNvbilvKHRyb2wpZyh3aGV0aGVyKWgKLShvcillKG5vdCk3NSA5OTIgeShpdClrKHdpbGwpaChjYXRjKW8oaCllKGNlcnRhaW4paChzaWduYWxzKWgoYW5kKWYKLShhY3QpZihvbilnKHRoZW0paCh3aGVuKWcodGhleSlmKGFyZSloKHJlY2VpdilvKGVkLikyNQotYihJdCkxNiBiKGlzKWkoaW1wKXEob3J0YW4pbyh0KWUodGhhdCk3NSAxMDQ3IHkoYXBwbGljYXRpb25zKWsoYylvCi0oaGFuZ2UpZSh0aGUpaCh2KW0oYWx1ZXMpZyhvZilmKHRoZXNlKWgodiltKGFyaWFibGVzKWcob25seSlnKHdoZW4pZwotKGNhbGxpbmcpaCBGdChyZWFkbGluZVwoXCkpcCBGdSgsKWQobm90KWgoaW4paChhKTc1IDExMDEKLXkoc2lnbmFsKWQoaGFuZGxlciwpZyhzbylmKFJlYWRsaW5lJ3MpaChpbilvKHRlcm5hbClnKHNpZ25hbClnKHN0YXRlKWUKLShpcylpKG5vdClmKGNvcnJ1cHRlZC4pMTc3MyAxMjA4IHkoVilsKGFyaWFibGUpLTE4NjEKLWIgRmkoaW50KTIwIGIgRmgocmwpcCAyMTUgMTIwOCAxOCAzIHYgMjEgdyhjYXRjKW4oaClwCi0zNjYgMTIwOCBWIDIyIHcoc2lnbmFscykxOTUgMTI2MiB5IEZ1KElmKTE1IGIodGhpcylnKHYpbShhcmlhYmxlKWcoaXMpZwotKG5vbi16ZXJvLClnKFJlYWRsaW5lKWgod2lsbClnKGluc3RhbGwpZihzaWduYWwpaChoYW5kbGVycylmKGZvcilmCi1GdChTSUdJTlQpcCBGdSgsKWYgRnQoU0lHUVVJVClwIEZ1KCwpMTk1IDEzMTcgeSBGdChTSUdURVJNKXAKLUZ1KCwpaCBGdChTSUdBTFJNKXAgRnUoLClnIEZ0KFNJR1RTVFApcCBGdSgsKWYgRnQoU0lHVFRJTilwCi1GdSgsKWgoYW5kKWkgRnQoU0lHVFRPVSlwIEZ1KC4pMTk1IDEzODIgeShUaGUpZihkZWZhdWx0KWgodiltKGFsdWUpaAotKG9mKWQgRnQocmxfY2F0Y2hfc2lnbmFscylmIEZ1KGlzKWooMS4pMTc3MyAxNDg4IHkoVilsKGFyaWFibGUpLTE4NjEKLWIgRmkoaW50KTIwIGIgRmgocmwpcCAyMTUgMTQ4OCBWIDIxIHcoY2F0YyluKGgpcCAzNjYKLTE0ODggViAyMiB3KHNpZ3dpbmMpbihoKTE5NSAxNTQzIHkgRnUoSWYpMTUgYih0aGlzKWgodiltKGFyaWFibGUpaChpcyllCi0obm9uLXplcm8sKWcoUmVhZGxpbmUpaSh3aWxsKWcoaW5zdGFsbClmKGEpZihzaWduYWwpaChoYW5kbGVyKWgoZm9yKWQKLUZ0KFNJR1dJTkNIKXAgRnUoLikxOTUgMTYwOCB5KFRoZSloKGRlZmF1bHQpaCh2KW0oYWx1ZSloKG9mKWQKLUZ0KHJsX2NhdGNoX3NpZ3dpbmNoKWYgRnUoaXMpaigxLikxMzcgMTY5NCB5KElmKWcoYW4pZihhcHBsaWNhdGlvbilqCi0oZG8pcShlcylkKG5vdClnKHdpc2gpaSh0bylkKGhhKW8odilvKGUpaChSZWFkbGluZSlpKGNhdGMpbyhoKWYoYW4pbyh5KQotZihzaWduYWxzLCloKG9yKWYodG8pZihoYW5kbGUpaihzaWduYWxzKTc1IDE3NDkgeShvdGhlcilpKHRoYW4pZyh0aG9zZSkKLWcoUmVhZGxpbmUpaShjYXRjKW8oaGVzKWUoXCgpcCBGdChTSUdIVVApcCBGdSgsKWcoZm9yKWcoZXhhbXBsZVwpLCloCi0oUmVhZGxpbmUpaChwcm8pbyh2aWRlcyllKGNvbilvKHYpbyhlbmllbmNlKTc1IDE4MDQgeShmdW5jdGlvbnMpZCh0bylmCi0oZG8pZyh0aGUpZyhuZWNlc3NhcnkpZyh0ZXJtaW5hbCloKGFuZClnKGluKW8odGVybmFsKWcoc3RhdGUpZShjbGVhbilvCi0odXApaSh1cClxKG9uKWcocmVjZWlwdClnKG9mKWYoYSlnKHNpZ25hbC4pMTc2MiAxOTEwCi15KEYpbCh1bmN0aW9uKS0xODYxIGIgRmkodm9pZCkyMCBiIEZoKHJsKXAgMjQxIDE5MTAgVgotMjEgdyhjbGVhbiluKHVwKXAgNDUwIDE5MTAgViAyMiB3KGFmdGVyKXAgNTkwIDE5MTAgVgotMjAgdyhzaWduYWwpaiBGZyhcKClwIEZ0KHZvaWQpcCBGZyhcKSkxOTUgMTk2NSB5IEZ1KFRoaXMpMTgKLWIoZnVuY3Rpb24pZih3aWxsKWkocmVzZXQpZSh0aGUpZyhzdGF0ZSlmKG9mKWcodGhlKWgodGVybWluYWwpaCh0byllCi0od2hhdCloKGl0KWcodylvKGFzKWYoYilxKGVmb3JlKWggRnQocmVhZGxpbmVcKFwpKTE5NQotMjAxOSB5IEZ1KHcpbyhhcylkKGNhbGxlZCwpaShhbmQpZihyZW1vKW8odilvKGUpZih0aGUpZyhSZWFkbGluZSlpCi0oc2lnbmFsKWcoaGFuZGxlcnMpZyhmb3IpZShhbGwpaChzaWduYWxzLClnKGRlcClxKGVuZGluZylpKG9uKWUodGhlKTE5NQotMjA3NCB5KHYpbShhbHVlcyloKG9mKWYgRnQocmxfY2F0Y2hfc2lnbmFscyllIEZ1KGFuZClpCi1GdChybF9jYXRjaF9zaWd3aW5jaClwIEZ1KC4pMTc2MiAyMTgwIHkoRilsKHVuY3Rpb24pLTE4NjEKLWIgRmkodm9pZCkyMCBiIEZoKHJsKXAgMjQxIDIxODAgViAyMSB3KGZyZWUpcCAzNTYgMjE4MAotViAyMCB3KGxpbmUpcCA0NjQgMjE4MCBWIDIzIHcoc3RhdGUpaiBGZyhcKClwIEZ0KHZvaWQpcAotRmcoXCkpMTk1IDIyMzUgeSBGdShUaGlzKWQod2lsbCloKGZyZWUpZihhbilvKHkpZihwYXJ0aWFsKWgoc3RhdGUpZgotKGFzc28pcShjaWF0ZWQpaCh3aXRoKWcodGhlKWcoY3VycmVuKW8odClmKGlucHV0KWkobGluZSlnKFwodW5kbylmCi0oaW5mb3ItKTE5NSAyMjkwIHkobWF0aW9uLClpKGFuKW8oeSlmKHBhcnRpYWwpaChoaXN0b3J5KWYoZW4pbyh0cnkpbCgsKQotaChhbilvKHkpZihwYXJ0aWFsbHktZW4pbyh0ZXJlZClpKGspbyhleWIpcShvYXJkKWUobWFjcm8sKWgoYW5kKWYoYW4pbwotKHkpMTk1IDIzNDUgeShwYXJ0aWFsbHktZW4pbyh0ZXJlZClrKG4pbyh1bWVyaWMpZyhhcmd1bWVuKW8odFwpLik0NQotYihUaGlzKTI0IGIoc2hvdWxkKWgoYilxKGUpZyhjYWxsZWQpZyhiKXEoZWZvcmUpZyBGdChybF9jbGVhbnVwXykxOTUKLTIzOTkgeShhZnRlcl9zaWduYWxcKFwpKXAgRnUoLikzNiBiKFRoZSkyMiBiKFJlYWRsaW5lKWgoc2lnbmFsKWYKLShoYW5kbGVyKWcoZm9yKWYgRnQoU0lHSU5UKWYgRnUoY2FsbHMpaih0aGlzKWUodG8pZyhhYilxKG9ydClnKHRoZSkxOTUKLTI0NTQgeShjdXJyZW4pbyh0KTE1IGIoaW5wdXQpaChsaW5lLikxNzYyIDI1NjAgeShGKWwodW5jdGlvbiktMTg2MQotYiBGaSh2b2lkKTIwIGIgRmgocmwpcCAyNDEgMjU2MCBWIDIxIHcocmVzZXQpcCAzODMgMjU2MAotViAyMCB3KGFmdGVyKXAgNTIxIDI1NjAgViAyMSB3KHNpZ25hbClqIEZnKFwoKXAgRnQodm9pZClwCi1GZyhcKSkxOTUgMjYxNSB5IEZ1KFRoaXMpMTUgYih3aWxsKWgocmVpbml0aWFsaXplKWgodGhlKWQodGVybWluYWwpaAotKGFuZClnKHJlaW5zdGFsbCloKGFuKW8oeSlkKFJlYWRsaW5lKWooc2lnbmFsKWYoaGFuZGxlcnMsKWcoZGVwKXEoZW5kLSkKLTE5NSAyNjcwIHkoaW5nKWgob24pZih0aGUpZyh2KW0oYWx1ZXMpaShvZilkIEZ0KHJsX2NhdGNoX3NpZ25hbHMpZgotRnUoYW5kKWogRnQocmxfY2F0Y2hfc2lnd2luY2gpcCBGdSguKXAgZW9wCi0lJVBhZ2U6IDQxIDQzCi00MSA0MiBib3AgNzUgLTU4IGEgRnUoQ2hhcHRlcikxNSBiKDI6KWsoUHJvZ3JhbW1pbmcpYyh3aXRoKWcoR05VKWcKLShSZWFkbGluZSk4NDMgYig0MSkxMzcgMTQ5IHkoSWYpMjAgYihhbilnKGFwcGxpY2F0aW9uKWgoZG8pcShlcylmKG5vdClnCi0od2lzaClnKFJlYWRsaW5lKWgodG8pZShjYXRjKW8oaClnIEZ0KFNJR1dJTkNIKXAgRnUoLCloKGl0KWcobWEpbyh5KWYKLShjYWxsKWggRnQocmxfcmVzaXplXyk3NSAyMDQgeSh0ZXJtaW5hbFwoXCkpMTIgYiBGdShvciloCi1GdChybF9zZXRfc2NyZWVuX3NpemVcKFwpKWUgRnUodG8paShmb3JjZSlnKFJlYWRsaW5lKWkodG8pZSh1cClxKGRhdGUpaAotKGl0cylnKGlkZWEpZyhvZilnKHRoZSlmKHRlcm1pbmFsKTc1IDI1OSB5KHNpemUpaih3aGVuKWcoYSlmCi1GdChTSUdXSU5DSClmIEZ1KGlzKWgocmVjZWl2KW8oZWQuKTE3NjIgMzYwIHkoRilsKHVuY3Rpb24pLTE4NjEKLWIgRmkodm9pZCkyMCBiIEZoKHJsKXAgMjQxIDM2MCAxOCAzIHYgMjEgdyhyZXNpemUpcCA0MDEKLTM2MCBWIDIyIHcodGVybWluYWwpaiBGZyhcKClwIEZ0KHZvaWQpcCBGZyhcKSkxOTUgNDE1Ci15IEZ1KFVwKXEoZGF0ZSkxNiBiKFJlYWRsaW5lJ3MpZyhpbilvKHRlcm5hbClnKHNjcmVlbilmKHNpemUpaShiKW8oeSllCi0ocmVhZGluZylnKHYpbShhbHVlcylpKGZyb20pZCh0aGUpaShrKW8oZXJuZWwuKTE3NjIgNTE2Ci15KEYpbCh1bmN0aW9uKS0xODYxIGIgRmkodm9pZCkyMCBiIEZoKHJsKXAgMjQxIDUxNiBWCi0yMSB3KHNldClwIDMzMyA1MTYgViAyMSB3KHNjcmVlbilwIDUxMCA1MTYgViAyMCB3KHNpemUpawotRmcoXCgpcCBGdChpbnQpMTUgYihyb3dzLClmKGludCloKGNvbHMpcCBGZyhcKSkxOTUgNTcxCi15IEZ1KFNldClnKFJlYWRsaW5lJ3MpaChpZGVhKWcob2YpZih0aGUpZyh0ZXJtaW5hbCloKHNpemUpZyh0bylmCi1GayhybylvKHdzKWggRnUocm8pbyh3cyllKGFuZClpIEZrKGNvbHMpaCBGdShjb2x1bW5zLikxMzcKLTY1MyB5KElmKWcoYW4pZyhhcHBsaWNhdGlvbiloKGRvKXEoZXMpZihub3QpZih3KW8oYW4pbyh0KWcodG8pZwotKGluc3RhbGwpaShhKWYgRnQoU0lHV0lOQ0gpZSBGdShoYW5kbGVyLClqKGJ1dClmKGlzKWcoc3RpbGwpaChpbilvCi0odGVyZXN0ZWQpZihpbik3NSA3MDggeSh0aGUpZShzY3JlZW4paChkaW1lbnNpb25zLClnKFJlYWRsaW5lJ3MpaChpZGVhKQotZShvZilnKHRoZSloKHNjcmVlbilmKHNpemUpaChtYSlvKHkpZihiKXEoZSloKHF1ZXJpZWQuKTE3NjIKLTgwOSB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmkodm9pZCkyMCBiIEZoKHJsKXAgMjQxIDgwOQotViAyMSB3KGdldClwIDMzOSA4MDkgViAyMSB3KHNjcmVlbilwIDUxNiA4MDkgViAyMCB3KHNpemUpawotRmcoXCgpcCBGdChpbnQpMTUgYigqcm93cywpZihpbnQpaCgqY29scylwIEZnKFwpKTE5NQotODY0IHkgRnUoUmV0dXJuKWcoUmVhZGxpbmUncyloKGlkZWEpZihvZilnKHRoZSlnKHRlcm1pbmFsJ3MpZyhzaXplKWgKLShpbilnKHRoZSlmKHYpbShhcmlhYmxlcylpKHApcShvaW4pbyh0ZWQpZih0byllKGIpbyh5KWgodGhlKWcoYXJndS0pMTk1Ci05MTggeShtZW4pbyh0cy4pMTM3IDEwMDEgeShUaGUpaChmb2xsbylvKHdpbmcpZyhmdW5jdGlvbnMpZyhpbnN0YWxsKWcKLShhbmQpZyhyZW1vKW8odilvKGUpZShSZWFkbGluZSdzKWkoc2lnbmFsKWcoaGFuZGxlcnMuKTE3NjIKLTExMDIgeShGKWwodW5jdGlvbiktMTg2MSBiIEZpKGludCkyMCBiIEZoKHJsKXAgMjE1IDExMDIKLVYgMjEgdyhzZXQpcCAzMDcgMTEwMiBWIDIwIHcoc2lnbmFscylqIEZnKFwoKXAgRnQodm9pZClwCi1GZyhcKSkxOTUgMTE1NyB5IEZ1KEluc3RhbGwpYyhSZWFkbGluZSdzKWYoc2lnbmFsKWgoaGFuZGxlcilmKGZvcilmCi1GdChTSUdJTlQpcCBGdSgsKWcgRnQoU0lHUVVJVClwIEZ1KCwpZyBGdChTSUdURVJNKXAgRnUoLClnCi1GdChTSUdBTFJNKXAgRnUoLClmIEZ0KFNJR1RTVFApcCBGdSgsKTE5NSAxMjExIHkgRnQoU0lHVFRJTilwCi1GdSgsKTExIGIgRnQoU0lHVFRPVSlwIEZ1KCwpZyhhbmQpaCBGdChTSUdXSU5DSClwIEZ1KCwpZShkZXApcShlbmRpbmcpawotKG9uKWUodGhlKWYodiltKGFsdWVzKWkob2YpZSBGdChybF9jYXRjaF9zaWduYWxzKWYgRnUoYW5kKTE5NQotMTI2NiB5IEZ0KHJsX2NhdGNoX3NpZ3dpbmNoKXAgRnUoLikxNzYyIDEzNjcgeShGKWwodW5jdGlvbiktMTg2MQotYiBGaShpbnQpMjAgYiBGaChybClwIDIxNSAxMzY3IFYgMjEgdyhjbGVhcilwIDM1NCAxMzY3Ci1WIDIxIHcoc2lnbmFscylqIEZnKFwoKXAgRnQodm9pZClwIEZnKFwpKTE5NSAxNDIyIHkgRnUoUmVtbylvKHYpbyhlKTE0Ci1iKGFsbClpKG9mKWYodGhlKWcoUmVhZGxpbmUpaShzaWduYWwpZihoYW5kbGVycylnKGluc3RhbGxlZCloKGIpbyh5KWUKLUZ0KHJsX3NldF9zaWduYWxzXChcKSlwIEZ1KC4pNzUgMTU0MSB5IEZzKDIuNikzMyBiKEN1c3RvbSkyMQotYihDb21wbGV0ZXJzKTEzNyAxNjM0IHkgRnUoVClvKHlwaWNhbGx5KWwoLCllKGEpZChwcm9ncmFtKWYodGhhdCloCi0ocmVhZHMpaChjb21tYW5kcylmKGZyb20pZyh0aGUpaCh1c2VyKWYoaGFzKWgoYSlmKHcpbyhhKW8oeSlnKG9mKWcKLShkaXNhbSlvKGJpZ3VhdGluZyk3NSAxNjg5IHkoY29tbWFuZHMpaShhbmQpZihkYXRhLikyNwotYihJZikxOCBiKHkpbyhvdXIpZihwcm9ncmFtKWcoaXMpaChvbmUpZyhvZilmKHRoZXNlLClpKHRoZW4pZihpdClnKGNhbikKLWYocHJvKW8odmlkZSlpKGNvbXBsZXRpb24pZyhmb3IpNzUgMTc0NCB5KGNvbW1hbmRzLCkxNAotYihkYXRhLClnKG9yKWcoYilxKG90aC4pMjAgYihUaGUpMTUgYihmb2xsbylvKHdpbmcpZyhzZWN0aW9ucylnCi0oZGVzY3JpYilxKGUpaChobylvKHcpZSh5KW8ob3VyKWcocHJvZ3JhbSlnKGFuZCloKFJlYWRsaW5lKTc1Ci0xNzk4IHkoY28pcShvcClxKGVyYXRlKWcodG8pZyhwcm8pbyh2aWRlKWcodGhpcyloKHNlcnZpY2UuKTc1Ci0xOTAxIHkgRmooMi42LjEpMzAgYihIbyluKHcpMjEgYihDb21wbGV0aW5nKWYoVyktNSBiKG9ya3MpMTM3Ci0xOTk0IHkgRnUoSW4pMTggYihvcmRlcilmKHRvKWYoY29tcGxldGUpaShzb21lKWYodGV4dCwpZyh0aGUpZyhmdWxsKWkKLShsaXN0KWUob2YpZyhwKXEob3NzaWJsZSlpKGNvbXBsZXRpb25zKWYobSlvKHVzdClmKGIpcShlKWgoYSlvKHYpbQotKGFpbGFibGUuKTc1IDIwNDkgeShUaGF0KWUoaXMsKWkoaXQpZihpcyloKG5vdClmKHApcShvc3NpYmxlKWgodG8pZgotKGFjY3VyYXRlbHkpZyhleHBhbmQpaChhKWUocGFydGlhbClpKHcpbyhvcmQpZSh3aXRob3V0KWgoa25vKW8od2luZylnCi0oYWxsKWgob2YpZih0aGUpNzUgMjEwNCB5KHApcShvc3NpYmxlKWkodylvKG9yZHMpZSh3aGljKW8oaCloKG1haylvKGUpZgotKHNlbnNlKWgoaW4paCh0aGF0KWQoY29uKW8odGV4dC4pMjYgYihUaGUpMTggYihSZWFkbGluZSloKGxpYnJhcnkpZgotKHBybylvKHZpZGVzKWcodGhlKWcodXNlcik3NSAyMTU4IHkoaW4pbyh0ZXJmYWNlKWYodG8pZihjb21wbGV0aW9uLClpCi0oYW5kKWUodClvKHcpbyhvKWcob2YpZyh0aGUpaChtb3N0KWYoY29tbW9uKWcoY29tcGxldGlvbilpKGZ1bmN0aW9uczopCi0yMyBiKFwwMTRsZW5hbWUpMTggYihhbmQpNzUgMjIxMyB5KHVzZXJuYW1lLiloKEYpbChvcikxMAotYihjb21wbGV0aW5nKWkob3RoZXIpZSh0KW8oeXApcShlcyloKG9mKWYodGV4dCwpaCh5KW8ob3UpZyhtKW8odXN0KWYKLSh3cml0ZSloKHkpbyhvdXIpZihvKW8od24paChjb21wbGV0aW9uKWcoZnVuY3Rpb24uKTc1Ci0yMjY4IHkoVGhpcykxNiBiKHNlY3Rpb24pZyhkZXNjcmliKXEoZXMpZyhleGFjdGx5KWcod2hhdClmKHN1YylvKGgpZwotKGZ1bmN0aW9ucyloKG0pbyh1c3QpZihkbywpZihhbmQpaShwcm8pbyh2aWRlcylmKGFuKWgoZXhhbXBsZS4pMTM3Ci0yMzMyIHkoVGhlcmUpZyhhcmUpZih0aHJlZSlnKG1hKXMoam9yKWYoZnVuY3Rpb25zKWkodXNlZClmKHRvKWcocClxCi0oZXJmb3JtKWcoY29tcGxldGlvbjopMTAwIDIzOTYgeSgxLikyOSBiKFRoZSkyMiBiKHVzZXItaW4pbyh0ZXJmYWNlKWcKLShmdW5jdGlvbiloIEZ0KHJsX2NvbXBsZXRlXChcKSlwIEZ1KC4pMzcgYihUaGlzKTIyIGIoZnVuY3Rpb24paChpcylmCi0oY2FsbGVkKWgod2l0aClmKHRoZSlnKHNhbWUpMTY1IDI0NTEgeShhcmd1bWVuKW8odHMpMTcKLWIoYXMpaChvdGhlcilnKGJpbmRhYmxlKWkoUmVhZGxpbmUpZihmdW5jdGlvbnM6KTI3IGIKLUZrKGNvdW4pbyh0KTE5IGIgRnUoYW5kKWYgRmsoaW4pbyh2KW8ob2tpbmcpcCAxNTU2IDI0NTEKLTE0IDIgdiAxNyB3KGspbyhleSlwIEZ1KC4pMjggYihJdCkxOSBiKGlzb2xhdGVzKTE2NSAyNTA2Ci15KHRoZSlnKHcpbyhvcmQpZih0bylnKGIpcShlKWkoY29tcGxldGVkKWYoYW5kKWcoY2FsbHMpaAotRnQocmxfY29tcGxldGlvbl9tYXRjaGVzXChcKSljIEZ1KHRvKWkoZ2VuZXJhdGUpZyhhKWgobGlzdClnKG9mKTE2NQotMjU2MCB5KHApcShvc3NpYmxlKWUoY29tcGxldGlvbnMuKTIyIGIoSXQpMTYgYih0aGVuKWcoZWl0aGVyKWcobGlzdHMpZwotKHRoZSlnKHApcShvc3NpYmxlKWgoY29tcGxldGlvbnMsKWcoaW5zZXJ0cylmKHRoZSlmKHApcShvc3NpYmxlKTE2NQotMjYxNSB5KGNvbXBsZXRpb25zLCkyNSBiKG9yKWQoYWN0dWFsbHkpaShwKXEoZXJmb3JtcyllKHRoZSlnCi0oY29tcGxldGlvbiwpayhkZXApcShlbmRpbmcpZShvbilmKHdoaWMpbyhoKWcoYilxKGVoYSlvKHZpb3IpZyhpcykxNjUKLTI2NzAgeShkZXNpcmVkLilwIGVvcAotJSVQYWdlOiA0MiA0NAotNDIgNDMgYm9wIDc1IC01OCBhIEZ1KDQyKTEyOTkgYihHTlUpMTUgYihSZWFkbGluZSloKExpYnJhcnkpMTAwCi0xNDkgeSgyLikyOSBiKFRoZSkxNyBiKGluKW8odGVybmFsKWgoZnVuY3Rpb24pZiBGdAotKHJsX2NvbXBsZXRpb25fbWF0Y2hlc1woXCkpZCBGdSh1c2VzKWooYW4pZyhhcHBsaWNhdGlvbi1zdXBwbGllKXEoZClqCi1GayhnZW5lci0pMTY1IDIwNCB5KGF0b3IpaCBGdShmdW5jdGlvbillKHRvKWYoZ2VuZXJhdGUpZyh0aGUpaChsaXN0KWcKLShvZilmKHApcShvc3NpYmxlKWkobWF0YylvKGhlcywpZihhbmQpZih0aGVuKWgocmV0dXJucylnKHRoZSlmKGFycmEpbwotKHkpZihvZikxNjUgMjU5IHkodGhlc2UpaihtYXRjKW8oaGVzLikzMiBiKFRoZSkyMCBiKGNhbGxlcilnKHNob3VsZCloCi0ocGxhY2UpZih0aGUpZyhhZGRyZXNzKWYob2YpaChpdHMpZihnZW5lcmF0b3IpZyhmdW5jdGlvbiloKGluKWcKLUZ0KHJsXykxNjUgMzE0IHkoY29tcGxldGlvbl9lbnRyeV9mdW5jdGlvbilwIEZ1KC4pMTAwCi0zODMgeSgzLikyOSBiKFRoZSkxMiBiKGdlbmVyYXRvcillKGZ1bmN0aW9uKWkoaXMpZyhjYWxsZWQpaChyZXApcQotKGVhdGVkbHkpZyhmcm9tKWUgRnQocmxfY29tcGxldGlvbl9tYXRjaGVzXChcKSlwIEZ1KCwpZChyZXR1cm5pbmcpMTY1Ci00MzggeShhKTE2IGIoc3RyaW5nKWcoZWFjKW8oaCloKHRpbWUuKTI0IGIoVGhlKTE3IGIoYXJndW1lbilvKHRzKWUodG8paAotKHRoZSlnKGdlbmVyYXRvcilnKGZ1bmN0aW9uKWgoYXJlKWYgRmsodGV4dCloIEZ1KGFuZClnCi1GayhzdGF0ZSlwIEZ1KC4pMjIgYiBGayh0ZXh0KTE2NSA0OTMgeSBGdShpcykxNyBiKHRoZSlmKHBhcnRpYWwpZyh3KW8KLShvcmQpZih0byloKGIpcShlKWgoY29tcGxldGVkLikyMyBiIEZrKHN0YXRlKTE4IGIgRnUoaXMpZSh6ZXJvKWcodGhlKWcKLShcMDE0cnN0KWcodGltZSlnKHRoZSlnKGZ1bmN0aW9uKWgoaXMpZyhjYWxsZWQsKTE2NSA1NDcKLXkoYWxsbylvKHdpbmcpMjMgYih0aGUpZihnZW5lcmF0b3IpZih0bylnKHApcShlcmZvcm0paChhbilvKHkpZwotKG5lY2Vzc2FyeSlnKGluaXRpYWxpemF0aW9uLClrKGFuZCljKGEpZyhwKXEob3NpdGl2KW8oZSloKG5vbi0pMTY1Ci02MDIgeSh6ZXJvKTE0IGIoaW4pbyh0ZWdlciloKGZvcilmKGVhYylvKGgpaChzdWJzZXF1ZW4pbyh0KWcoY2FsbC4pMjEKLWIoVGhlKTE1IGIoZ2VuZXJhdG9yKWUoZnVuY3Rpb24paihyZXR1cm5zKWUgRnQoXChjaGFyKWgoKlwpTlVMTClmCi1GdSh0bykxNjUgNjU3IHkoaW5mb3JtKTE5IGIgRnQocmxfY29tcGxldGlvbl9tYXRjaGVzXChcKSlkCi1GdSh0aGF0KWkodGhlcmUpaChhcmUpZyhubylnKG1vcmUpZyhwKXEob3NzaWJpbGl0aWVzKWoobGVmdC4pMzIKLWIoVXN1YWxseSkxNjUgNzEyIHkodGhlKTE5IGIoZ2VuZXJhdG9yKWcoZnVuY3Rpb24paChjb21wdXRlcylnKHRoZSlmCi0obGlzdCloKG9mKWYocClxKG9zc2libGUpaShjb21wbGV0aW9ucylnKHdoZW4pZSBGayhzdGF0ZSlqCi1GdShpcylkKHplcm8sKTE2NSA3NjcgeShhbmQpMTMgYihyZXR1cm5zKWcodGhlbSlmKG9uZSloKGF0KWYoYSloKHRpbWUpZwotKG9uKWcoc3Vic2VxdWVuKW8odClnKGNhbGxzLikyMCBiKEVhYylvKGgpMTMgYihzdHJpbmcpZih0aGUpaAotKGdlbmVyYXRvcilmKGZ1bmN0aW9uKTE2NSA4MjEgeShyZXR1cm5zKWsoYXMpZihhKWgobWF0YylvKGgpZihtKW8odXN0KWgKLShiKXEoZSlnKGFsbG8pcShjYXRlZCloKHdpdGgpZyBGdChtYWxsb2NcKFwpKXAgRnUoOylkKFJlYWRsaW5lKWsoZnJlZXMpCi1lKHRoZSlnKHN0cmluZ3MpZih3aGVuKTE2NSA4NzYgeShpdClnKGhhcyloKFwwMTRuaXNoZWQpZyh3aXRoKWcodGhlbS4pCi0xNzYyIDEwMDUgeShGKWwodW5jdGlvbiktMTg2MSBiIEZpKGludCkyMCBiIEZoKHJsKXAgMjE1Ci0xMDA1IDE4IDMgdiAyMSB3KGNvbXBsZXRlKWogRmcoXCgpcCBGdChpbnQpMTQgYihpZ25vcmUsKWcoaW50KWgKLShpbnZva2luZ19rZXkpcCBGZyhcKSkxOTUgMTA1OSB5IEZ1KENvbXBsZXRlKWgodGhlKWYodylvKG9yZClnKGF0KWYob3IpCi1oKGIpcShlZm9yZSloKHApcShvaW4pbyh0LikyMSBiKFkpbChvdSkxNSBiKGhhKW8odilvKGUpZyhzdXBwbGllZClqCi0odGhlKWQoZnVuY3Rpb24paSh0aGF0KWQoZG8pcShlcylpKHRoZSkxOTUgMTExNCB5KGluaXRpYWwpMjMKLWIoc2ltcGxlKWYobWF0YylvKGhpbmcpZShzZWxlY3Rpb24paShhbGdvcml0aG0pZihcKHNlZSlmCi1GdChybF9jb21wbGV0aW9uX21hdGNoZXNcKFwpKXAgRnUoXCkuKTMzIGIoVGhlKTE5NSAxMTY5Ci15KGRlZmF1bHQpMTYgYihpcylmKHRvKWcoZG8pZyhcMDE0bGVuYW1lKWgoY29tcGxldGlvbi4pMTc3MwotMTI5OCB5KFYpbChhcmlhYmxlKS0xODYxIGIgRmkocmxfY29tcGVudHJ5X2Z1bmNfdCkyMgotYigqKWQgRmgocmwpcCA2NzggMTI5OCBWIDIxIHcoY29tcGxldGlvbilwIDk3MyAxMjk4IFYKLTIxIHcoZW4pbih0cnkpcCAxMTI2IDEyOTggViAyMiB3KGZ1bmN0aW9uKTE5NSAxMzUyIHkKLUZ1KFRoaXMpaShpcylmKGEpZyhwKXEob2luKW8odGVyKWcodG8pZih0aGUpaChnZW5lcmF0b3IpZyhmdW5jdGlvbilnCi0oZm9yKWcgRnQocmxfY29tcGxldGlvbl9tYXRjaGVzXChcKSlwIEZ1KC4pMzEgYihJZikyMAotYih0aGUpMTk1IDE0MDcgeSh2KW0oYWx1ZSkxMyBiKG9mKWYgRnQocmxfY29tcGxldGlvbl9lbnRyeV9mdW4pbyhjdGlvbikKLWQgRnUoaXMpaiBGdChOVUxMKWYgRnUodGhlbiloKHRoZSlnKGRlZmF1bHQpaChcMDE0bGVuYW1lKWcoZ2VuZXJhdG9yKQotMTk1IDE0NjIgeShmdW5jdGlvbiwpaiBGdChybF9maWxlbmFtZV9jb21wbGV0aW9uX2Ypbyh1bmN0aW9uKW8oXChcKSlwCi1GdSgsKWMoaXMpayh1c2VkLik3NSAxNTgyIHkgRmooMi42LjIpMzAgYihDb21wbGV0aW9uKTIwCi1iKEYpLTUgYih1bmN0aW9ucykxMzcgMTY4MiB5IEZ1KEhlcmUpMTYgYihpcylmKHRoZSloKGNvbXBsZXRlKWcobGlzdClnCi0ob2YpZShjYWxsYWJsZSlrKGNvbXBsZXRpb24pZShmdW5jdGlvbnMpZyhwcmVzZW4pbyh0KWYoaW4paChSZWFkbGluZS4pCi0xNzYyIDE4MTAgeShGKWwodW5jdGlvbiktMTg2MSBiIEZpKGludCkyMCBiIEZoKHJsKXAgMjE1Ci0xODEwIFYgMjEgdyhjb21wbGV0ZSlwIDQ2MCAxODEwIFYgMjEgdyhpbiluKHRlcm5hbClrCi1GZyhcKClwIEZ0KGludCkxNSBiKHdoYXRfdG9fZG8pcCBGZyhcKSkxOTUgMTg2NSB5IEZ1KENvbXBsZXRlKWsodGhlKWcKLSh3KW8ob3JkKWYoYXQpZyhvcilnKGIpcShlZm9yZSloKHApcShvaW4pbyh0LikzMSBiIEZrKHdoYXQpcAotMTEwOCAxODY1IDE0IDIgdiAxNiB3KHRvKXAgMTE2NSAxODY1IFYgMTYgdyhkbykyMSBiIEZ1KHNhKW8oeXMpZCh3aGF0KWcKLSh0bylnKGRvKWgod2l0aClnKHRoZSlnKGNvbS0pMTk1IDE5MjAgeShwbGV0aW9uLilqKEEpMTYKLWIodiltKGFsdWUpaChvZillKGApcCBGdCg/KXAgRnUoJylnKG1lYW5zKWcobGlzdClpKHRoZSllKHApcShvc3NpYmxlKWoKLShjb21wbGV0aW9ucy4payhgKXAgRnQoVEFCKXAgRnUoJykxNCBiKG1lYW5zKWkoZG8pZihzdGFuZGFyZCkxOTUKLTE5NzUgeShjb21wbGV0aW9uLikyMiBiKGApcCBGdCgqKXAgRnUoJykxNSBiKG1lYW5zKWcoaW5zZXJ0KWgoYWxsKWgob2YpCi1lKHRoZSloKHApcShvc3NpYmxlKWgoY29tcGxldGlvbnMuKTIyIGIoYClwIEZ0KCEpcCBGdSgnKTE1Ci1iKG1lYW5zKWcodG8pZyhkaXNwbGEpbyh5KWkoYWxsKTE5NSAyMDI5IHkob2YpZyh0aGUpZyhwKXEob3NzaWJsZSlpCi0oY29tcGxldGlvbnMsKWYoaWYpZyh0aGVyZSlmKGlzKWgobW9yZSlmKHRoYW4pZyhvbmUsKWcoYXMpZyh3KW8oZWxsKWgKLShhcylmKHApcShlcmZvcm1pbmcpaChwYXJ0aWFsKTE5NSAyMDg0IHkoY29tcGxldGlvbi4pMTc2MgotMjIxMyB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmkoaW50KTIwIGIgRmgocmwpcCAyMTUgMjIxMwotMTggMyB2IDIxIHcoY29tcGxldGUpaiBGZyhcKClwIEZ0KGludCkxNCBiKGlnbm9yZSwpZyhpbnQpaAotKGludm9raW5nX2tleSlwIEZnKFwpKTE5NSAyMjY4IHkgRnUoQ29tcGxldGUpMjEgYih0aGUpZyh3KW8ob3JkKWUoYXQpaAotKG9yKWcoYilxKGVmb3JlKWgocClxKG9pbilvKHQuKTM3IGIoWSlsKG91KTIxIGIoaGEpbyh2KW8oZSlmKHN1cHBsaWVkKWoKLSh0aGUpZChmdW5jdGlvbilpKHRoYXQpZShkbylxKGVzKTE5NSAyMzIyIHkodGhlKWQoaW5pdGlhbCloKHNpbXBsZSlnCi0obWF0YylvKGhpbmcpZihzZWxlY3Rpb24paChhbGdvcml0aG0pZShcKHNlZSlnIEZ0Ci0ocmxfY29tcGxldGlvbl9tYXRjaGVzXChcKSllIEZ1KGFuZCkxOTUgMjM3NyB5IEZ0Ci0ocmxfY29tcGxldGlvbl9lbnRyeV9mdW5jdGkpbyhvbilwIEZ1KFwpLikyNSBiKFRoZSkxOAotYihkZWZhdWx0KWgoaXMpZih0bylmKGRvKWgoXDAxNGxlbmFtZSloKGNvbXBsZXRpb24uKTI5Ci1iKFRoaXMpMTk1IDI0MzIgeShjYWxscykxNiBiIEZ0KHJsX2NvbXBsZXRlX2ludGVybmFsXChcKSljCi1GdSh3aXRoKWsoYW4pZihhcmd1bWVuKW8odClmKGRlcClxKGVuZGluZylrKG9uKWQgRmsoaW4pbyh2KW8ob2tpbmcpcAotMTY1NyAyNDMyIDE0IDIgdiAxNyB3KGspbyhleSlwIEZ1KC4pMTc2MiAyNTYwIHkoRilsKHVuY3Rpb24pLTE4NjEKLWIgRmkoaW50KTIwIGIgRmgocmwpcCAyMTUgMjU2MCAxOCAzIHYgMjEgdyhwKXIob3NzaWJsZSlwCi00MzMgMjU2MCBWIDIwIHcoY29tcGxldGlvbnMpaiBGZyhcKClwIEZ0KGludCkxNSBiKGNvdW50LClmKGludCloCi0oaW52b2tpbmdfa2V5KXAgRmcoXCkpMTk1IDI2MTUgeSBGdShMaXN0KTIxIGIodGhlKWYocClxKG9zc2libGUpaQotKGNvbXBsZXRpb25zLikzNiBiKFNlZSkyMSBiKGRlc2NyaXB0aW9uKWgob2YpZSBGdChybF9jb21wbGV0ZSkxMwotYihcKFwpKXAgRnUoLikzNSBiKFRoaXMpMjEgYihjYWxscylnIEZ0KHJsXykxOTUgMjY3MAoteShjb21wbGV0ZV9pbnRlcm5hbFwoXCkpMTMgYiBGdSh3aXRoKWkoYW4pZyhhcmd1bWVuKW8odClnKG9mKWYoYClwCi1GdCg/KXAgRnUoJy4pcCBlb3AKLSUlUGFnZTogNDMgNDUKLTQzIDQ0IGJvcCA3NSAtNTggYSBGdShDaGFwdGVyKTE1IGIoMjopayhQcm9ncmFtbWluZyljKHdpdGgpZyhHTlUpZwotKFJlYWRsaW5lKTg0MyBiKDQzKTE3NjIgMTQ5IHkoRilsKHVuY3Rpb24pLTE4NjEgYiBGaShpbnQpMjAKLWIgRmgocmwpcCAyMTUgMTQ5IDE4IDMgdiAyMSB3KGluc2VydClwIDM3OCAxNDkgViAyMSB3KGNvbXBsZXRpb25zKWoKLUZnKFwoKXAgRnQoaW50KTE0IGIoY291bnQsKWcoaW50KWgoaW52b2tpbmdfa2V5KXAgRmcoXCkpMTk1Ci0yMDQgeSBGdShJbnNlcnQpaSh0aGUpZyhsaXN0KWgob2YpZShwKXEob3NzaWJsZSlqKGNvbXBsZXRpb25zKWUoaW4pbwotKHRvKWcodGhlKWcobGluZSwpaShkZWxldGluZylmKHRoZSlmKHBhcnRpYWxseS1jb21wbGV0ZWQpMTk1Ci0yNTkgeSh3KW8ob3JkLilrKFNlZSljKGRlc2NyaXB0aW9uKWcob2YpZSBGdChybF9jb21wbGV0ZVwoXCkpcAotRnUoLikyMCBiKFRoaXMpZChjYWxscylnIEZ0KHJsX2NvbXBsZXRlX2ludGVybmFsXChcKSljCi1GdSh3aXRoKTE5NSAzMTQgeShhbilpKGFyZ3VtZW4pbyh0KWcob2YpZihgKXAgRnQoKilwCi1GdSgnLikxNzYyIDQzNCB5KEYpbCh1bmN0aW9uKS0xODYxIGIgRmkoaW50KTIwIGIgRmgocmwpcAotMjE1IDQzNCBWIDIxIHcoY29tcGxldGlvbilwIDUxMCA0MzQgViAyMSB3KG1vKXIoZGUpaAotRmcoXCgpcCBGdChybF9jb21tYW5kX2Z1bmNfdCkxMiBiKCpjZnVuYylwIEZnKFwpKTE5NQotNDg5IHkgRnUoUmV0dXJucykyNSBiKHRoZSlnKGFwcHByaWF0ZSloKHYpbShhbHVlKWcodG8pZihwYXNzKWcodG8pZgotRnQocmxfY29tcGxldGVfaW50ZXJuYWxcKFwpKWYgRnUoZGVwKXEoZW5kaW5nKWsob24pMTk1Ci01NDMgeSh3aGV0aGVyKTIyIGIgRmsoY2Z1bmMpaiBGdSh3KW8oYXMpZChjYWxsZWQpaCh0KW8od2ljZSlmKGluKWgKLShzdWNjZXNzaW9uKWcoYW5kKWYodGhlKWcodiltKGFsdWUpaChvZilmKHRoZSlnIEZ0KHNob3ctYWxsLWlmLSkxOTUKLTU5OCB5KGFtYmlndW91cykxNCBiIEZ1KHYpbShhcmlhYmxlLikyMSBiKEFwcGxpY2F0aW9uLXNwKXEoZWMpcShpXDAxNGMpCi1lKGNvbXBsZXRpb24pZChmdW5jdGlvbnMpZyhtYSlvKHkpZih1c2UpZyh0aGlzKWgoZnVuY3Rpb24pMTk1Ci02NTMgeSh0bylmKHByZXNlbilvKHQpZyh0aGUpZyhzYW1lKWcoaW4pbyh0ZXJmYWNlKWcoYXMpZwotRnQocmxfY29tcGxldGVcKFwpKXAgRnUoLikxNzYyIDc3MyB5KEYpbCh1bmN0aW9uKS0xODYxCi1iIEZpKGNoYXIpMjAgYigqKilmIEZoKHJsKXAgMzEyIDc3MyBWIDIxIHcoY29tcGxldGlvbilwCi02MDcgNzczIFYgMjEgdyhtYXRjKW4oaGVzKWogRmcoXCgpcCBGdChjb25zdCkxNSBiKGNoYXIpZigqdGV4dCwpMjgzCi04MjggeShybF9jb21wZW50cnlfZnVuY190KWUoKmVudHJ5X2Z1bmMpcCBGZyhcKSkxOTUgODgzCi15IEZ1KFJldHVybnMpMTggYihhbiloKGFycmEpbyh5KWYob2YpZyhzdHJpbmdzKWgod2hpYylvKGgpaChpcylnKGEpZQotKGxpc3QpaShvZillKGNvbXBsZXRpb25zKWkoZm9yKWYgRmsodGV4dClwIEZ1KC4pMzAgYihJZikxOQotYih0aGVyZSlnKGFyZSlnKG5vKTE5NSA5MzcgeShjb21wbGV0aW9ucywpZihyZXR1cm5zKWcKLUZ0KE5VTEwpcCBGdSguKTI1IGIoVGhlKTE3IGIoXDAxNHJzdClnKGVuKW8odHJ5KWcoaW4paCh0aGUpZihyZXR1cm5lZCloCi0oYXJyYSlvKHkpZShpcylpKHRoZSlmKHN1YnN0aXR1dGlvbikxOTUgOTkyIHkoZm9yKWMgRmsodGV4dClwCi1GdSguKTE4IGIoVGhlKWMocmVtYWluaW5nKWcoZW4pbyh0cmllcylmKGFyZSlnKHRoZSloKHApcShvc3NpYmxlKWcKLShjb21wbGV0aW9ucy4pMjEgYihUaGUpMTMgYihhcnJhKW8oeSlmKGlzKWkodGVybWluYXRlZCkxOTUKLTEwNDcgeSh3aXRoKWkoYSllIEZ0KE5VTEwpaCBGdShwKXEob2luKW8odGVyLikxOTUgMTExNQoteSBGayhlbilvKHRyeSlwIDMwMiAxMTE1IDE0IDIgdiAxNiB3KGZ1bmMpaCBGdShpcyllKGEpZihmdW5jdGlvbiloKG9mKWUKLSh0KW8odylvKG8pZyhhcmdzLClnKGFuZClpKHJldHVybnMpZihhKWYgRnQoY2hhcilqKCopcAotRnUoLilrKFRoZSkxMyBiKFwwMTRyc3QpZyhhcmd1bWVuKW8odClmKGlzKWkgRmsodGV4dClwCi1GdSguKTE5NSAxMTcwIHkoVGhlKWYoc2Vjb25kKWcoaXMpZihhKWgoc3RhdGUpZShhcmd1bWVuKW8odDspaChpdCloKGlzKQotZyh6ZXJvKWYob24pZyh0aGUpaChcMDE0cnN0KWYoY2FsbCwpaShhbmQpZShub24temVybyloKG9uKWYoc3Vic2VxdWVuKW8KLSh0KTE5NSAxMjI1IHkoY2FsbHMuKTIwIGIgRmsoZW4pbyh0cnkpcCA0MjAgMTIyNSBWIDE2Ci13KGZ1bmMpMTUgYiBGdShyZXR1cm5zKWUoYSllIEZ0KE5VTEwpaCBGdShwKXEob2luKW8odGVyKWgodG8pZSh0aGUpaQotKGNhbGxlcilnKHdoZW4pZyh0aGVyZSlmKGFyZSlnKG5vKWcobW9yZSlnKG1hdGMpbyhoZXMuKTE3NjIKLTEzNDUgeShGKWwodW5jdGlvbiktMTg2MSBiIEZpKGNoYXIpMjAgYigqKWYgRmgocmwpcCAyODYKLTEzNDUgMTggMyB2IDIxIHcoXDAxNGxlbmFtZSlwIDUxNSAxMzQ1IFYgMjAgdyhjb21wbGV0aW9uKXAKLTgwOSAxMzQ1IFYgMjEgdyhmdW5jdGlvbilrIEZnKFwoKXAgRnQoY29uc3QpMTUgYihjaGFyKWYoKnRleHQsKWgoaW50KQotMjgzIDE0MDAgeShzdGF0ZSlwIEZnKFwpKTE5NSAxNDU0IHkgRnUoQSllKGdlbmVyYXRvcilmKGZ1bmN0aW9uKWgoZm9yKWcKLShcMDE0bGVuYW1lKWgoY29tcGxldGlvbilmKGluKWgodGhlKWYoZ2VuZXJhbClnKGNhc2UuKTE5Ci1iIEZrKHRleHQpMTQgYiBGdShpcylmKGEpZyhwYXJ0aWFsKWcoXDAxNGxlLSkxOTUgMTUwOQoteShuYW1lLikyMCBiKFRoZSkxNSBiKEJhc2gpZihzb3VyY2UpaChpcylnKGEpZyh1c2VmdWwpZyhyZWZlcmVuY2UpaAotKGZvcillKHdyaXRpbmcpaChjdXN0b20pZihjb21wbGV0aW9uKWkoZnVuY3Rpb25zKTE5NQotMTU2NCB5KFwodGhlKWYoQmFzaClnKGNvbXBsZXRpb24paShmdW5jdGlvbnMpZShjYWxsKWkodGhpcyllKGFuZCloCi0ob3RoZXIpZihSZWFkbGluZSloKGZ1bmN0aW9uc1wpLikxNzYyIDE2ODQgeShGKWwodW5jdGlvbiktMTg2MQotYiBGaShjaGFyKTIwIGIoKilmIEZoKHJsKXAgMjg2IDE2ODQgViAyMSB3KHVzZXJuYW1lKXAKLTU0NyAxNjg0IFYgMTkgdyhjb21wbGV0aW9uKXAgODQwIDE2ODQgViAyMSB3KGZ1bmN0aW9uKWsKLUZnKFwoKXAgRnQoY29uc3QpMTQgYihjaGFyKWcoKnRleHQsKTI4MyAxNzM5IHkoaW50KWcoc3RhdGUpcAotRmcoXCkpMTk1IDE3OTQgeSBGdShBKWcoY29tcGxldGlvbilpKGdlbmVyYXRvcilkKGZvciloKHVzZXJuYW1lcy4pMTkKLWIgRmsodGV4dCljIEZ1KGNvbilvKHRhaW5zKWYoYSlnKHBhcnRpYWwpaCh1c2VybmFtZSlmKHByZWNlZGVkKWkoYilvKHkpCi0xOTUgMTg0OCB5KGEpZihyYW5kb20pZyhjKW8oaGFyYWN0ZXIpZihcKHVzdWFsbHkpaihgKXAKLUZ0KH4pcCBGdSgnXCkuKWkoQXMpYyh3aXRoKWcoYWxsKWkoY29tcGxldGlvbilmKGdlbmVyYXRvcnMsKWUKLUZrKHN0YXRlKWogRnUoaXMpZih6ZXJvKWYob24pMTk1IDE5MDMgeSh0aGUpZyhcMDE0cnN0KWcoY2FsbCloKGFuZClnCi0obm9uLXplcm8pZihmb3IpZyhzdWJzZXF1ZW4pbyh0KWgoY2FsbHMuKTc1IDIwMTcgeSBGaigyLjYuMykzMAotYihDb21wbGV0aW9uKTIwIGIoViktNSBiKGFyaWFibGVzKTE3NzMgMjE2NiB5IEZ1KFYpbChhcmlhYmxlKS0xODYxCi1iIEZpKHJsX2NvbXBlbnRyeV9mdW5jX3QpMjIgYigqKWQgRmgocmwpcCA2NzggMjE2NiBWCi0yMSB3KGNvbXBsZXRpb24pcCA5NzMgMjE2NiBWIDIxIHcoZW4pbih0cnkpcCAxMTI2IDIxNjYKLVYgMjIgdyhmdW5jdGlvbikxOTUgMjIyMSB5IEZ1KEEpZShwKXEob2luKW8odGVyKWcodG8pZih0aGUpaChnZW5lcmF0b3IpCi1mKGZ1bmN0aW9uKWgoZm9yKWYgRnQocmxfY29tcGxldGlvbl9tYXRjaGVzXChcKSlwIEZ1KC4pMjIKLWIgRnQoTlVMTCkxNiBiIEZ1KG1lYW5zKWgodG8pMTk1IDIyNzYgeSh1c2UpZiBGdAotKHJsX2ZpbGVuYW1lX2NvbXBsZXRpb25fKW8oZnVuY3RpbylvKG5cKFwpKXAgRnUoLCljKHRoZSlqKGRlZmF1bHQpaAotKFwwMTRsZW5hbWUpZyhjb21wbGV0ZXIuKTE3NzMgMjM5NiB5KFYpbChhcmlhYmxlKS0xODYxCi1iIEZpKHJsX2NvbXBsZXRpb25fZnVuY190KTIyIGIoKilkIEZoKHJsKXAgNzA0IDIzOTYgVgotMjIgdyhhdHRlbXB0ZWQpcCA5ODUgMjM5NiBWIDIwIHcoY29tcGxldGlvbilwIDEyNzkgMjM5NgotViAyMSB3KGZ1bmN0aW9uKTE5NSAyNDUxIHkgRnUoQSllKHApcShvaW4pbyh0ZXIpaCh0bylmKGFuKWcoYWx0ZXJuYXRpdikKLW8oZSloKGZ1bmN0aW9uKWcodG8pZihjcmVhdGUpZyhtYXRjKW8oaGVzLikyNiBiKFRoZSkxOAotYihmdW5jdGlvbilnKGlzKWcoY2FsbGVkKWgod2l0aCkxOTUgMjUwNiB5IEZrKHRleHQpcAotRnUoLCkxMSBiIEZrKHN0YXJ0KXAgRnUoLClnKGFuZCloIEZrKGVuZClwIEZ1KC4pMTkgYgotRmsoc3RhcnQpMTEgYiBGdShhbmQpaCBGayhlbmQpaSBGdShhcmUpZChpbmRpY2VzKWkoaW4pZwotRnQocmxfbGluZV9idWZmZXIpYyBGdShkZVwwMTRuaW5nKWsodGhlKWYoYilxKG91bmQtKTE5NQotMjU2MCB5KGFyaWVzKWgob2YpZyBGayh0ZXh0KXAgRnUoLClmKHdoaWMpbyhoKWkoaXMpZyhhKWUoYylvKGhhcmFjdGVyKWgKLShzdHJpbmcuKTE5IGIoSWYpMTMgYih0aGlzKWcoZnVuY3Rpb24paChleGlzdHMpZyhhbmQpZihyZXR1cm5zKWcKLUZ0KE5VTEwpcCBGdSgsKWYob3IpZyhpZikxOTUgMjYxNSB5KHRoaXMpZih2KW0oYXJpYWJsZSlpKGlzKWUoc2V0KWcodG8pCi1mIEZ0KE5VTEwpcCBGdSgsKWgodGhlbilnIEZ0KHJsX2NvbXBsZXRlXChcKSllIEZ1KHdpbGwpayhjYWxsKWYodGhlKWYKLSh2KW0oYWx1ZSloKG9mKWYgRnQocmxfY29tcGxldGlvbl8pMTk1IDI2NzAgeShlbnRyeV9mdW5jdGlvbiloCi1GdSh0bylpKGdlbmVyYXRlKWcobWF0YylvKGhlcywpZihvdGhlcndpc2UpaSh0aGUpZihhcnJhKW8oeSlmKG9mKWgKLShzdHJpbmdzKWcocmV0dXJuZWQpZyh3aWxsKWkoYilxKGUpcCBlb3AKLSUlUGFnZTogNDQgNDYKLTQ0IDQ1IGJvcCA3NSAtNTggYSBGdSg0NCkxMjk5IGIoR05VKTE1IGIoUmVhZGxpbmUpaChMaWJyYXJ5KTE5NQotMTQ5IHkodXNlZC4paihJZikxMiBiKHRoaXMpZihmdW5jdGlvbiloKHNldHMpZih0aGUpZwotRnQocmxfYXR0ZW1wdGVkX2NvbXBsZXRpb25fb3ZlcilkIEZ1KHYpbShhcmlhYmxlKWsodG8pZihhKWcobm9uLXplcm8pCi0xOTUgMjA0IHkodiltKGFsdWUsKTE4IGIoUmVhZGxpbmUpaCh3aWxsKWYobm90KWYocClxKGVyZm9ybSlmKGl0cylpCi0oZGVmYXVsdClmKGNvbXBsZXRpb24paChldilvKGVuKWYoaWYpaCh0aGlzKWYoZnVuY3Rpb24paChyZXR1cm5zKTE5NQotMjU5IHkobm8pZChtYXRjKW8oaGVzLikxNzczIDM4MCB5KFYpbChhcmlhYmxlKS0xODYxIGIKLUZpKHJsX3F1b3RlX2Z1bmNfdCkyMSBiKCopZiBGaChybClwIDU3NCAzODAgMTggMyB2IDIxCi13KFwwMTRsZW5hbWUpcCA4MDMgMzgwIFYgMjAgdyhxdW90aW5nKXAgMTAxMiAzODAgViAyMQotdyhmdW5jdGlvbikxOTUgNDM0IHkgRnUoQSljKHApcShvaW4pbyh0ZXIpaCh0bylmKGEpZyhmdW5jdGlvbiloKHRoYXQpZQotKHdpbGwpaihxdW90ZSllKGEpZyhcMDE0bGVuYW1lKWkoaW4pZihhbilmKGFwcGxpY2F0aW9uLXNwKXEoZWNpXDAxNClxCi0oYylqKGZhc2hpb24uKTE5NSA0ODkgeShUaGlzKWgoaXMpZyhjYWxsZWQpaShpZillKFwwMTRsZW5hbWUpZwotKGNvbXBsZXRpb24paChpcylmKGIpcShlaW5nKWgoYXR0ZW1wdGVkKWUoYW5kKWgob25lKWcob2YpZih0aGUpaChjKW8KLShoYXJhY3RlcnMpMTk1IDU0NCB5KGluKWQgRnQocmxfZmlsZW5hbWVfcXVvdGVfY2hhcmFjdGVycyljCi1GdShhcHApcShlYXJzKWsoaW4pZyhhKWcoY29tcGxldGVkKWcoXDAxNGxlbmFtZS4pMjUgYihUaGUpMTcKLWIoZnVuY3Rpb24pMTk1IDU5OSB5KGlzKWkoY2FsbGVkKWkod2l0aCllIEZrKHRleHQpcCBGdSgsKWcKLUZrKG1hdGMpbyhoKXAgNzIyIDU5OSAxNCAyIHYgMTYgdyh0KW8oeXApcShlKXAgRnUoLClnKGFuZClnCi1GayhxdW90ZSlwIDEwNTkgNTk5IFYgMTcgdyhwKXEob2luKW8odGVyKXAgRnUoLikzMSBiKFRoZSkxOQotYiBGayh0ZXh0KWggRnUoaXMpZih0aGUpZyhcMDE0bGVuYW1lKWgodG8pZShiKXEoZSkxOTUKLTY1NCB5KHF1b3RlZC4pMzkgYihUaGUpMjEgYiBGayhtYXRjKW8oaClwIDYwNyA2NTQgViAxNgotdyh0KW8oeXApcShlKWogRnUoaXMpZShlaXRoZXIpZyBGdChTSU5HTEVfTUFUQ0gpcCBGdSgsKWYoaWYpaCh0aGVyZSlmCi0oaXMpaChvbmx5KWcob25lKWcoY29tcGxldGlvbikxOTUgNzA4IHkobWF0YylvKGgsKTE1Ci1iKG9yKWcgRnQoTVVMVF9NQVRDSClwIEZ1KC4pMjAgYihTb21lKWMoZnVuY3Rpb25zKWcodXNlKWcodGhpcylnKHRvKWYKLShkZWNpZGUpaih3aGV0aGVyKWUob3IpZihub3QpZyh0bylnKGluc2VydCloKGEpMTk1IDc2MwoteShjbG9zaW5nKWMocXVvdGUpZShjKW8oaGFyYWN0ZXIuKTE4IGIoVGhlKTExIGIgRmsocXVvdGUpcAotODc3IDc2MyBWIDE2IHcocClxKG9pbilvKHRlcilrIEZ1KGlzKWMoYSlmKHApcShvaW4pbyh0ZXIpaSh0byllKGFuKW8oeSkKLWcob3ApcShlbmluZylpKHF1b3RlKWYoYylvKGhhcmFjdGVyKTE5NSA4MTggeSh0aGUpayh1c2VyKWgodClvKHlwKXEKLShlZC4payhTb21lKTE1IGIoZnVuY3Rpb25zKWgoYylvKGhvKXEob3NlKWYodG8pZyhyZXNldClnKHRoaXMpZyhjKW8KLShoYXJhY3Rlci4pMTc3MyA5MzggeShWKWwoYXJpYWJsZSktMTg2MSBiIEZpKHJsX2RlcXVvdGVfZnVuY190KTIyCi1iKCopZCBGaChybClwIDYyNiA5MzggMTggMyB2IDIxIHcoXDAxNGxlbmFtZSlwIDg1NSA5MzgKLVYgMjAgdyhkZXF1b3RpbmcpcCAxMTIyIDkzOCBWIDIxIHcoZnVuY3Rpb24pMTk1IDk5MyB5Ci1GdShBKWMocClxKG9pbilvKHRlcilnKHRvKWYoYSloKGZ1bmN0aW9uKWcodGhhdClnKHdpbGwpaChyZW1vKW8odilvKGUpZQotKGFwcGxpY2F0aW9uLXNwKXEoZWNpXDAxNClxKGMpayhxdW90aW5nKWQoYylvKGhhcmFjdGVycylmKGZyb20pMTk1Ci0xMDQ4IHkoYSlpKFwwMTRsZW5hbWUpaChiKXEoZWZvcmUpZyhjb21wbGV0aW9uKWcoaXMpZyhhdHRlbXB0ZWQsKWYoc28pZgotKHRob3NlKWgoYylvKGhhcmFjdGVycylnKGRvKWcobm90KWcoaW4pbyh0ZXJmZXJlKWgod2l0aCkxOTUKLTExMDMgeShtYXRjKW8oaGluZylpKHRoZSlnKHRleHQpZyhhZ2FpbnN0KWYobmFtZXMpaChpbiloKHRoZSlmCi0oXDAxNGxlc3lzdGVtLikzMyBiKEl0KTE5IGIoaXMpZyhjYWxsZWQpaSh3aXRoKWUgRmsodGV4dClwCi1GdSgsKWcodGhlKWcodGV4dCkxOTUgMTE1OCB5KG9mKWkodGhlKWcodylvKG9yZClnKHRvKWcoYilxKGUpaAotKGRlcXVvdGVkLCloKGFuZCllIEZrKHF1b3RlKXAgMTAwOSAxMTU4IDE0IDIgdiAxNyB3KGMpbyhoYXIpcAotRnUoLCloKHdoaWMpbyhoKWcoaXMpZyh0aGUpZihxdW90aW5nKWgoYylvKGhhcmFjdGVyKWYodGhhdCkxOTUKLTEyMTIgeShkZWxpbWl0cylkKHRoZSllKFwwMTRsZW5hbWUpaShcKHVzdWFsbHkpZihgKXAKLUZ0KCcpcCBGdSgnKWYob3IpZihgKXAgRnQoIilwIEZ1KCdcKS4pMjIgYihJZikxNyBiIEZrKHF1b3RlKXAKLTExODcgMTIxMiBWIDE2IHcoYylvKGhhcilpIEZ1KGlzKWUoemVybywpZih0aGUpZyhcMDE0bGVuYW1lKWkodylvKGFzKWQKLShub3QpMTk1IDEyNjcgeShpbiloKGFuKWYoZW0pbyhiKXEoZWRkZWQpaShzdHJpbmcuKTE3NzMKLTEzODggeShWKWwoYXJpYWJsZSktMTg2MSBiIEZpKHJsX2xpbmVidWZfZnVuY190KTIyIGIoKilkCi1GaChybClwIDYyNiAxMzg4IDE4IDMgdiAyMSB3KGMpbihoYXIpcCA3NTQgMTM4OCBWIDIxCi13KGlzKXAgODEzIDEzODggViAyMSB3KHF1b3RlZClwIDEwMDUgMTM4OCBWIDIxIHcocCkxOTUKLTE0NDMgeSBGdShBKWYocClxKG9pbilvKHRlciloKHRvKWYoYSlnKGZ1bmN0aW9uKWgodG8pZihjYWxsKWkodGhhdClkCi0oZGV0ZXJtaW5lcylqKHdoZXRoZXIpZShvcilnKG5vdClnKGEpZyhzcClxKGVjaVwwMTRjKWooYylvKGhhcmFjdGVyKTE5NQotMTQ5NyB5KGluKWQodGhlKWYobGluZSlpKGJ1XDAxM2VyKWUoaXMpaChxdW90ZWQsKWcoYWNjb3JkaW5nKWYodG8pZwotKHdoYXRldilvKGVyKWYocXVvdGluZylpKG1lYylvKGhhbmlzbSlnKHRoZSlmKHByb2dyYW0pMTk1Ci0xNTUyIHkoY2FsbGluZylkKFJlYWRsaW5lKWcodXNlcy4pMTkgYihUaGUpMTMgYihmdW5jdGlvbilnKGlzKWcoY2FsbGVkKQotaCh3aXRoKWYodClvKHcpbyhvKWUoYXJndW1lbilvKHRzOikxNyBiIEZrKHRleHQpcCBGdSgsKTEyCi1iKHRoZSloKHRleHQpZihvZilnKHRoZSkxOTUgMTYwNyB5KGxpbmUsKTE3IGIoYW5kKWUgRmsoaW5kZXgpcAotRnUoLClpKHRoZSllKGluZGV4KWkob2YpZSh0aGUpZyhjKW8oaGFyYWN0ZXIpZyhpbiloKHRoZSlnKGxpbmUuKTIyCi1iKEl0KTE1IGIoaXMpaCh1c2VkKWcodG8pZihkZWNpZGUpaSh3aGV0aGVyKWUoYSkxOTUgMTY2MgoteShjKW8oaGFyYWN0ZXIpZihmb3VuZClpKGluKWcgRnQocmxfY29tcGxldGVyX3dvcmRfYnJlYWtfKW8oY2hhcmFjdClvCi0oZXJzKWMgRnUoc2hvdWxkKWsoYilxKGUpZyh1c2VkKWcodG8pZShicmVhaykxOTUgMTcxNwoteSh3KW8ob3JkcylnKGZvciloKHRoZSlnKGNvbXBsZXRlci4pMTc3MyAxODM3IHkoVilsKGFyaWFibGUpLTE4NjEKLWIgRmkocmxfY29tcGlnbm9yZV9mdW5jX3QpMjIgYigqKWQgRmgocmwpcCA3MDQgMTgzNyBWCi0yMiB3KGlnbm9yZSlwIDg4MSAxODM3IFYgMjAgdyhzb21lKXAgMTAyOCAxODM3IFYgMTkgdyhjb21wbGV0aW9ucylwCi0xMzQ0IDE4MzcgViAyMSB3KGZ1bmN0aW9uKTE5NSAxODkyIHkgRnUoVGhpcylnKGZ1bmN0aW9uLClpKGlmKWUKLShkZVwwMTRuZWQsKWkoaXMpZShjYWxsZWQpaChiKW8oeSlmKHRoZSlnKGNvbXBsZXRlcilnKHdoZW4paChyZWFsKWYKLShcMDE0bGVuYW1lKWgoY29tcGxldGlvbikxOTUgMTk0NyB5KGlzKWUoZG9uZSwpZihhZnRlcilmKGFsbClpKHRoZSlmCi0obWF0YylvKGhpbmcpZyhuYW1lcylnKGhhKW8odilvKGUpZyhiKXEoZWVuKWgoZ2VuZXJhdGVkLikyNQotYihJdCkxNyBiKGlzKWgocGFzc2VkKWYoYSlnIEZ0KE5VTEwpZiBGdSh0ZXItKTE5NSAyMDAxCi15KG1pbmF0ZWQpZyhhcnJhKW8oeSllKG9mKWgobWF0YylvKGhlcy4pMjAgYihUaGUpYyhcMDE0cnN0KWYoZWxlbWVuKW8KLSh0KWgoXCgpcCBGdChtYXRjaGVzWzBdKXAgRnUoXCkpZChpcylqKHRoZSlnKG1heGltYWwpZyhzdWJzdHJpbmcpMTk1Ci0yMDU2IHkoY29tbW9uKWUodG8pZyhhbGwpaChtYXRjKW8oaGVzLilrKFRoaXMpYyhmdW5jdGlvbilnKGNhbilnCi0ocmUtYXJyYW5nZSlmKHRoZSlnKGxpc3QpaChvZilmKG1hdGMpbyhoZXMpZyhhcylnKHJlcXVpcmVkLCkxOTUKLTIxMTEgeShidXQpaChlYWMpbyhoKWgoZWxlbWVuKW8odClnKGRlbGV0ZWQpZyhmcm9tKWYodGhlKWcoYXJyYSlvKHkpZgotKG0pbyh1c3QpZyhiKXEoZSlpKGZyZWVkLikxNzczIDIyMzIgeShWKWwoYXJpYWJsZSktMTg2MQotYiBGaShybF9pY3BwZnVuY190KTIxIGIoKillIEZoKHJsKXAgNTIxIDIyMzIgViAyMSB3KGRpcmVjdG9yeSlwCi03NjkgMjIzMiBWIDIyIHcoY29tcGxldGlvbilwIDEwNjUgMjIzMiBWIDIxIHcoaG8pcihvaykxOTUKLTIyODYgeSBGdShUaGlzKWsoZnVuY3Rpb24sKWkoaWYpZShkZVwwMTRuZWQsKWooaXMpZChhbGxvKW8odylvKGVkKWcodG8pCi1mKG1vKXEoZGlmeSloKHRoZSlnKGRpcmVjdG9yeSlnKHApcShvcnRpb24pZyhvZilmKFwwMTRsZW5hbWVzKTE5NQotMjM0MSB5KFJlYWRsaW5lKWUoY29tcGxldGVzLikyOSBiKEl0KTE5IGIoaXMpZihjYWxsZWQpaSh3aXRoKWYodGhlKWYKLShhZGRyZXNzKWgob2YpZShhKWgoc3RyaW5nKWgoXCh0aGUpZihjdXJyZW4pbyh0KWcoZGlyZWN0b3J5KTE5NQotMjM5NiB5KG5hbWVcKSlnKGFzKWcoYW4paChhcmd1bWVuKW8odCwpZihhbmQpaChtYSlvKHkpZihtbylxKGRpZnkpaAotKHRoYXQpZihzdHJpbmcuKTMwIGIoSWYpMTkgYih0aGUpZihzdHJpbmcpaChpcylnKHJlcGxhY2VkKWgod2l0aCkxOTUKLTI0NTEgeShhKWcobmV3KWcoc3RyaW5nLCloKHRoZSlmKG9sZClnKHYpbShhbHVlKWgoc2hvdWxkKWcoYilxKGUpZwotKGZyZWVkLikzNCBiKEFuKW8oeSkyMCBiKG1vKXEoZGlcMDE0ZWQpaShkaXJlY3RvcnkpZShuYW1lKWcoc2hvdWxkKTE5NQotMjUwNiB5KGhhKW8odilvKGUpMTQgYihhKWcodHJhaWxpbmcpaShzbGFzaC4payhUaGUpMTUKLWIobW8pcShkaVwwMTRlZCloKHYpbShhbHVlKWcod2lsbClnKGIpcShlKWYoZGlzcGxhKW8oeSlvKGVkKWgoYXMpZQotKHBhcnQpZyhvZiloKHRoZSlmKGNvbXBsZXRpb24sKTE5NSAyNTYwIHkocmVwbGFjaW5nKWgodGhlKWcoZGlyZWN0b3J5KWYKLShwKXEob3J0aW9uKWcob2YpZyh0aGUpZyhwYXRobmFtZSlnKHRoZSloKHVzZXIpZih0KW8oeXApcShlZC4pMjAKLWIoSXQpMTQgYihyZXR1cm5zKWcoYW4pZyhpbilvKHRlZ2VyKTE5NSAyNjE1IHkodGhhdClpKHNob3VsZCloKGIpcShlKWcKLShub24temVybylnKGlmKWcodGhlKWcoZnVuY3Rpb24pZyhtbylxKGRpXDAxNGVzKWgoaXRzKWUoZGlyZWN0b3J5KWgKLShhcmd1bWVuKW8odC4pMjMgYihJdCkxNyBiKGNvdWxkKWcoYilxKGUpMTk1IDI2NzAgeSh1c2VkKWYodG8pZShleHBhbmQpCi1pKHN5bSlvKGIpcShvbGljKWgobGlua3MpZihvcilmKHNoZWxsKWkodiltKGFyaWFibGVzKWYoaW4pZyhwYXRobmFtZXMuKQotcCBlb3AKLSUlUGFnZTogNDUgNDcKLTQ1IDQ2IGJvcCA3NSAtNTggYSBGdShDaGFwdGVyKTE1IGIoMjopayhQcm9ncmFtbWluZyljKHdpdGgpZyhHTlUpZwotKFJlYWRsaW5lKTg0MyBiKDQ1KTE3NzMgMTQ5IHkoVilsKGFyaWFibGUpLTE4NjEgYiBGaQotKHJsX2NvbXBkaXNwX2Z1bmNfdCkyMiBiKCopZCBGaChybClwIDY1MiAxNDkgMTggMyB2IDIxCi13KGNvbXBsZXRpb24pcCA5NDcgMTQ5IFYgMjEgdyhkaXNwbGEpbih5KXAgMTE0MSAxNDkgVgotMjIgdyhtYXRjKW4oaGVzKXAgMTM2NiAxNDkgViAyMSB3KGhvKXIob2spMTk1IDIwNCB5IEZ1KElmKTExCi1iKG5vbi16ZXJvLCloKHRoZW4pZih0aGlzKWgoaXMpZih0aGUpZyhhZGRyZXNzKWcob2YpZyhhKWcoZnVuY3Rpb24pZwotKHRvKWcoY2FsbCloKHdoZW4pZihjb21wbGV0aW5nKWkoYSlkKHcpbyhvcmQpaCh3KW8ob3VsZCkxOTUKLTI1OSB5KG5vcm1hbGx5KWgoZGlzcGxhKW8oeSlnKHRoZSlmKGxpc3QpaChvZilmKHApcShvc3NpYmxlKWgobWF0YylvCi0oaGVzLikxOCBiKFRoaXMpMTIgYihmdW5jdGlvbilnKGlzKWcoY2FsbGVkKWcoaW4pZyhsaWV1KWgob2YpZQotKFJlYWRsaW5lKTE5NSAzMTQgeShkaXNwbGEpbyh5aW5nKTIxIGIodGhlKWQobGlzdC4pMzIKLWIoSXQpMTkgYih0YWspbyhlcylmKHRocmVlKWgoYXJndW1lbilvKHRzOikyNiBiKFwoKXAKLUZ0KGNoYXIpMTQgYigqKilwIEZrKG1hdGMpbyhoZXMpcCBGdSgsKTE5IGIgRnQoaW50KWYKLUZrKG4pbyh1bSlwIDE2ODggMzE0IDE0IDIgdiAxNyB3KG1hdGMpbyhoZXMpcCBGdSgsKTE5NQotMzY5IHkgRnQoaW50KTEzIGIgRmsobWF4KXAgMzY4IDM2OSBWIDE2IHcobGVuZ3RoKXAgRnUoXCkpaSh3aGVyZSlmCi1GayhtYXRjKW8oaGVzKWggRnUoaXMpZih0aGUpZyhhcnJhKW8oeSlmKG9mKWcobWF0YylvKGhpbmcpaChzdHJpbmdzLClnCi1GayhuKW8odW0pcCAxNTc4IDM2OSBWIDE2IHcobWF0YylvKGhlcylpIEZ1KGlzKWUodGhlKTE5NQotNDIzIHkobilvKHVtKW8oYilxKGVyKWgob2YpZihzdHJpbmdzKWgoaW4paCh0aGF0KWUoYXJyYSlvKHkpbCgsKWYoYW5kKWkKLUZrKG1heClwIDEwMTIgNDIzIFYgMTYgdyhsZW5ndGgpaCBGdShpcylmKHRoZSlnKGxlbmd0aClnKG9mKWcodGhlKWYKLShsb25nZXN0KWgoc3RyaW5nKWcoaW4pMTk1IDQ3OCB5KHRoYXQpZShhcnJhKW8oeSlsKC4pMTkKLWIoUmVhZGxpbmUpYyhwcm8pbyh2aWRlcylnKGEpZShjb24pbyh2KW8oZW5pZW5jZSlqKGZ1bmN0aW9uLClmCi1GdChybF9kaXNwbGF5X21hdGNoX2xpc3QpcCBGdSgsKWModGhhdCkxOTUgNTMzIHkodGFrKW8oZXMpMTcKLWIoY2FyZSlnKG9mKWcoZG9pbmcpaCh0aGUpZihkaXNwbGEpbyh5KWkodG8pZChSZWFkbGluZSdzKWoob3V0cHV0KWUKLShzdHJlYW0uKTI2IGIoVGhhdCkxNiBiKGZ1bmN0aW9uKWoobWEpbyh5KWQoYilxKGUpMTk1Ci01ODggeShjYWxsZWQpaChmcm9tKWQodGhpcylpKGhvKXEob2suKTE3NzMgNzA0IHkoVilsKGFyaWFibGUpLTE4NjEKLWIgRmkoY29uc3QpMjAgYihjaGFyKWcoKilmIEZoKHJsKXAgNDM2IDcwNCAxOCAzIHYgMjEKLXcoYmFzaWMpcCA1ODAgNzA0IFYgMjEgdyh3KW4ob3JkKXAgNzI1IDcwNCBWIDIxIHcoYnJlYWspcAotODg2IDcwNCBWIDIwIHcoYyluKGhhcmFjdGVycykxOTUgNzU5IHkgRnUoVGhlKWooYmFzaWMpaChsaXN0KWcob2YpZihjKW8KLShoYXJhY3RlcnMpZih0aGF0KWcoc2lnbmFsKWkoYSlmKGJyZWFrKWcoYilxKGV0KW8odylvKGVlbilnKHcpbyhvcmRzKWcKLShmb3IpZih0aGUpaChjb21wbGV0ZXIpMTk1IDgxNCB5KHJvdXRpbmUuKTMwIGIoVGhlKTE5Ci1iKGRlZmF1bHQpZyh2KW0oYWx1ZSloKG9mKWUodGhpcyloKHYpbShhcmlhYmxlKWgoaXMpZih0aGUpZyhjKW8KLShoYXJhY3RlcnMpZih3aGljKW8oaCloKGJyZWFrKWcodylvKG9yZHMpZihmb3IpMTk1IDg2OQoteShjb21wbGV0aW9uKWUoaW4pZyhCYXNoOilrIEZ0KCIpMTUgYihcXHRcXG5cXCJcXFxcJ2BAJD48PTt8JntcKCIpcAotRnUoLikxNzczIDk4NSB5KFYpbChhcmlhYmxlKS0xODYxIGIgRmkoY29uc3QpMjAgYihjaGFyKWcoKilmCi1GaChybClwIDQzNiA5ODUgViAyMSB3KGJhc2ljKXAgNTgwIDk4NSBWIDIxIHcocXVvdGUpcAotNzQwIDk4NSBWIDIxIHcoYyluKGhhcmFjdGVycykxOTUgMTA0MCB5IEZ1KEEpYyhsaXN0KWgob2YpZihxdW90ZSlnKGMpbwotKGhhcmFjdGVycylmKHdoaWMpbyhoKWkoY2FuKWcoY2F1c2UpZihhKWcodylvKG9yZClnKGJyZWFrLikxNzczCi0xMTU2IHkoVilsKGFyaWFibGUpLTE4NjEgYiBGaShjb25zdCkyMCBiKGNoYXIpZygqKWYgRmgocmwpcAotNDM2IDExNTYgViAyMSB3KGNvbXBsZXRlcilwIDcwNSAxMTU2IFYgMjEgdyh3KW4ob3JkKXAKLTg1MCAxMTU2IFYgMjAgdyhicmVhaylwIDEwMTAgMTE1NiBWIDIwIHcoYyluKGhhcmFjdGVycykxOTUKLTEyMTEgeSBGdShUaGUpMzMgYihsaXN0KWcob2YpZihjKW8oaGFyYWN0ZXJzKWcodGhhdClmKHNpZ25hbClqKGEpZQotKGJyZWFrKWcoYilxKGV0KW8odylvKGVlbiloKHcpbyhvcmRzKWYoZm9yKWcgRnQocmxfY29tcGxldGVfKTE5NQotMTI2NiB5KGludGVybmFsXChcKSlwIEZ1KC4pMTggYihUaGUpZShkZWZhdWx0KWcobGlzdClnKGlzKWYodGhlKWgodiltCi0oYWx1ZSlnKG9mKWYgRnQocmxfYmFzaWNfd29yZF9icmVha19jaGFyYSlvKGN0ZXJzKXAgRnUoLikxNzczCi0xMzgyIHkoVilsKGFyaWFibGUpLTE4NjEgYiBGaShjb25zdCkyMCBiKGNoYXIpZygqKWYgRmgocmwpcAotNDM2IDEzODIgViAyMSB3KGNvbXBsZXRlcilwIDcwNSAxMzgyIFYgMjEgdyhxdW90ZSlwIDg2NQotMTM4MiBWIDIwIHcoYyluKGhhcmFjdGVycykxOTUgMTQzNyB5IEZ1KEEpZShsaXN0KWgob2YpZShjKW8oaGFyYWN0ZXJzKWcKLSh3aGljKW8oaClpKGNhbilmKGIpcShlKWcodXNlZCloKHRvKWUocXVvdGUpaChhKWYoc3Vic3RyaW5nKWgob2YpZyh0aGUpCi1nKGxpbmUuKTI2IGIoQ29tcGxldGlvbikxOTUgMTQ5MiB5KG8pcShjY3VycykxMyBiKG9uKWgodGhlKWYoZW4pbyh0aXJlKQotZyhzdWJzdHJpbmcsKWgoYW5kKWYod2l0aGluKWkodGhlKWUoc3Vic3RyaW5nKWcgRnQKLShybF9jb21wbGV0ZXJfd29yZF9icmVha18pMTk1IDE1NDcgeShjaGFyYWN0ZXJzKWogRnUoYXJlKWgodHJlYXRlZClnCi0oYXMpaChhbilvKHkpZihvdGhlcilnKGMpbyhoYXJhY3RlciwpZyh1bmxlc3MpaSh0aGV5KWUoYWxzbyloKGFwcClxCi0oZWFyKWcod2l0aGluKWgodGhpcykxOTUgMTYwMSB5KGxpc3QuKTE3NzMgMTcxOCB5KFYpbChhcmlhYmxlKS0xODYxCi1iIEZpKGNvbnN0KTIwIGIoY2hhcilnKCopZiBGaChybClwIDQzNiAxNzE4IFYgMjEgdyhcMDE0bGVuYW1lKXAKLTY2NSAxNzE4IFYgMjAgdyhxdW90ZSlwIDgyNCAxNzE4IFYgMjEgdyhjKW4oaGFyYWN0ZXJzKTE5NQotMTc3MyB5IEZ1KEEpZShsaXN0KWgob2YpZShjKW8oaGFyYWN0ZXJzKWcodGhhdClnKGNhdXNlKWgoYSlnCi0oXDAxNGxlbmFtZSloKHRvKWUoYilxKGUpaShxdW90ZWQpZShiKW8oeSloKHRoZSlnKGNvbXBsZXRlciloKHdoZW4pZgotKHRoZXkpMTk1IDE4MjggeShhcHApcShlYXIpZShpbiloKGEpZihjb21wbGV0ZWQpaChcMDE0bGVuYW1lLikyMQotYihUaGUpMTYgYihkZWZhdWx0KWcoaXMpZih0aGUpaChuKW8odWxsKWcoc3RyaW5nLikxNzczCi0xOTQ0IHkoVilsKGFyaWFibGUpLTE4NjEgYiBGaShjb25zdCkyMCBiKGNoYXIpZygqKWYgRmgocmwpcAotNDM2IDE5NDQgViAyMSB3KHNwKXIoZWNpYWwpcCA2MjMgMTk0NCBWIDIyIHcocHJlXDAxNHhlcykxOTUKLTE5OTkgeSBGdShUaGUpMTQgYihsaXN0KWgob2YpZShjKW8oaGFyYWN0ZXJzKWcodGhhdClnKGFyZSloKHcpbyhvcmQpZgotKGJyZWFrKWgoYylvKGhhcmFjdGVycywpZihidXQpaChzaG91bGQpaChiKXEoZSlmKGxlZnQpZyhpbiloCi1Gayh0ZXh0KWYgRnUod2hlbikxOTUgMjA1NCB5KGl0KWYoaXMpZihwYXNzZWQpaCh0bylmKHRoZSlnKGNvbXBsZXRpb24paAotKGZ1bmN0aW9uLikyMCBiKFByb2dyYW1zKTExIGIoY2FuKWgodXNlKWgodGhpcylnKHRvKWYoaGVscCloKGRldGVybWluZSkKLWgod2hhdCkxOTUgMjEwOCB5KGtpbmQpaShvZillKGNvbXBsZXRpbmcpaSh0byllKGRvLikxOQotYihGKWwob3IpMTQgYihpbnN0YW5jZSwpaShCYXNoKWUoc2V0cyloKHRoaXMpZyh2KW0oYXJpYWJsZSloKHRvKWUKLUZ0KCIpcCBGdSgkKXAgRnQoQCIpZyBGdShzbylnKHRoYXQpZyhpdCloKGNhbikxOTUgMjE2MwoteShjb21wbGV0ZSloKHNoZWxsKWgodiltKGFyaWFibGVzKWYoYW5kKWcoaG9zdG5hbWVzLikxNzczCi0yMjgwIHkoVilsKGFyaWFibGUpLTE4NjEgYiBGaShpbnQpMjAgYiBGaChybClwIDIxNSAyMjgwCi1WIDIxIHcoY29tcGxldGlvbilwIDUxMCAyMjgwIFYgMjEgdyhxdWVyeSlwIDY3MyAyMjgwCi1WIDIxIHcoaXRlbXMpMTk1IDIzMzQgeSBGdShVcCllKHRvKWcodGhpcylnKG1hbilvKHkpZyhpdGVtcylnKHdpbGwpaShiKQotcShlKWYoZGlzcGxhKW8oeSlvKGVkKWcoaW4pZyhyZXNwKXEob25zZSlnKHRvKWUoYSloKHApcQotKG9zc2libGUtY29tcGxldGlvbnMpaihjYWxsLikxOTUgMjM4OSB5KEFmdGVyKTE0IGIodGhhdCwpZih3KW8oZSloKGFzaykKLWcodGhlKWgodXNlcilmKGlmKWgoc2hlKWYoaXMpaChzdXJlKWcoc2hlKWYodylvKGFuKW8odHMpZih0byloKHNlZSloCi0odGhlbSlmKGFsbC4pMjAgYihUaGUpMTUgYihkZWZhdWx0KWcodiltKGFsdWUpMTk1IDI0NDQKLXkoaXMpaCgxMDAuKTE3NzMgMjU2MCB5KFYpbChhcmlhYmxlKS0xODYxIGIgRmkoaW50KTIwCi1iIEZoKHJsKXAgMjE1IDI1NjAgViAyMSB3KGNvbXBsZXRpb24pcCA1MTAgMjU2MCBWIDIxCi13KGFwcClyKGVuZClwIDcxNSAyNTYwIFYgMTkgdyhjKW4oaGFyYWN0ZXIpMTk1IDI2MTUgeQotRnUoV2hlbilkKGEpZihzaW5nbGUpaShjb21wbGV0aW9uKWcoYWx0ZXJuYXRpdilvKGUpZihtYXRjKW8oaGVzKWYoYXQpZwotKHRoZSloKGVuZClnKG9mKWYodGhlKWgoY29tbWFuZClmKGxpbmUsKWoodGhpcykxOTUgMjY3MAoteShjKW8oaGFyYWN0ZXIpMTAgYihpcyloKGFwcClxKGVuZGVkKWkodG8pZCh0aGUpZyhpbnNlcnRlZClpCi0oY29tcGxldGlvbilnKHRleHQuKTE4IGIoVGhlKTExIGIoZGVmYXVsdClnKGlzKWcoYSlnKHNwYWNlKWcoYylvCi0oaGFyYWN0ZXIpcCBlb3AKLSUlUGFnZTogNDYgNDgKLTQ2IDQ3IGJvcCA3NSAtNTggYSBGdSg0NikxMjk5IGIoR05VKTE1IGIoUmVhZGxpbmUpaChMaWJyYXJ5KTE5NQotMTQ5IHkoXChgKWUoJ1wpLikxOSBiKFNldHRpbmcpMTQgYih0aGlzKWYodG8pZyh0aGUpZyhuKW8odWxsKWkoYylvCi0oaGFyYWN0ZXIpZShcKGApcCBGdChcXDApcCBGdSgnXCkpZShwcmV2KW8oZW4pbyh0cylpKGFuKW8oeXRoaW5nKWgoYilxCi0oZWluZyloKGFwcClxKGVuZGVkKWYoYXV0by0pMTk1IDIwNCB5KG1hdGljYWxseSlsKC4pMjEKLWIoVGhpcykxNSBiKGNhbilmKGIpcShlKWgoYylvKGhhbmdlZClnKGluKWcoY3VzdG9tKWYoY29tcGxldGlvbilpCi0oZnVuY3Rpb25zKWYodG8pZihwcm8pbyh2aWRlKWgodGhlKWYoXFxtb3N0KTE5NSAyNTkgeShzZW5zaWJsZSlpKHcpbwotKG9yZCljKHNlcGFyYXRvciloKGMpbyhoYXJhY3RlciIpZihhY2NvcmRpbmcpaSh0bylmKGFuKWgKLShhcHBsaWNhdGlvbi1zcClxKGVjaVwwMTRjKWooY29tbWFuZCljKGxpbmUpMTk1IDMxNCB5KHN5bilvKHRheCloKHNwKXEKLShlY2lcMDE0Y2F0aW9uLikxNzczIDQyMyB5KFYpbChhcmlhYmxlKS0xODYxIGIgRmkoaW50KTIwCi1iIEZoKHJsKXAgMjE1IDQyMyAxOCAzIHYgMjEgdyhjb21wbGV0aW9uKXAgNTEwIDQyMyBWCi0yMSB3KHN1cHByZXNzKXAgNzQ2IDQyMyBWIDE5IHcoYXBwKXIoZW5kKTE5NSA0NzggeSBGdShJZillKG5vbi16ZXJvLClnCi1GayhybClwIDQ3NiA0NzggMTQgMiB2IDE3IHcoY29tcGxldGlvbilwIDcwOSA0NzggViAxOAotdyhhcHApcShlbmQpcCA4NzEgNDc4IFYgMTcgdyhjKW8oaGFyYWN0ZXIpaSBGdShpcylmKG5vdCllKGFwcClxKGVuZGVkKWkKLSh0byllKG1hdGMpbyhoZXMpZyhhdCloKHRoZSlmKGVuZCkxOTUgNTMzIHkob2YpYyh0aGUpaChjb21tYW5kKWcobGluZSwpCi1oKGFzKWYoZGVzY3JpYilxKGVkKWgoYWIpcShvKW8odilvKGUuKWsoSXQpMTQgYihpcyloKHNldCllKHRvKWcoMCloKGIpcQotKGVmb3JlKWcoYW4pbyh5KWYoYXBwbGljYXRpb24tc3ApcShlY2kpcShcMDE0YykxOTUgNTg4Ci15KGNvbXBsZXRpb24paihmdW5jdGlvbilnKGlzKWcoY2FsbGVkLikxNzczIDY5NyB5KFYpbChhcmlhYmxlKS0xODYxCi1iIEZpKGludCkyMCBiIEZoKHJsKXAgMjE1IDY5NyAxOCAzIHYgMjEgdyhjb21wbGV0aW9uKXAKLTUxMCA2OTcgViAyMSB3KG1hcmspcCA2NjIgNjk3IFYgMTkgdyhzeW1saW5rKXAgODc1IDY5NwotViAyMSB3KGRpcnMpMTk1IDc1MiB5IEZ1KElmKWMobm9uLXplcm8sKWcoYSlnKHNsYXNoKWcod2lsbClpKGIpcShlKWUKLShhcHApcShlbmRlZClpKHRvKWQoY29tcGxldGVkKWkoXDAxNGxlbmFtZXMpZyh0aGF0KWUoYXJlKWcoc3ltKW8oYilxCi0ob2xpYylqKGxpbmtzKTE5NSA4MDcgeSh0bykxMSBiKGRpcmVjdG9yeSlpKG5hbWVzLClmKHN1YilzKGplY3QpZyh0bylmCi0odGhlKWkodiltKGFsdWUpZyhvZilmKHRoZSlnKHVzZXItc2V0dGFibGUpZyBGayhtYXJrLWRpcmVjdG9yaWVzKWoKLUZ1KHYpbShhcmlhYmxlLikxOTUgODYyIHkoVGhpcylpKHYpbShhcmlhYmxlKWgoZXhpc3RzKWYoc28pZyh0aGF0KWUKLShhcHBsaWNhdGlvbilrKGNvbXBsZXRpb24pZihmdW5jdGlvbnMpZihjYW4pZyhvKW8odilvKGVycmlkZSlnKHRoZSlmCi0odXNlcidzKTE5NSA5MTcgeShnbG9iYWwpZihwcmVmZXJlbmNlKWcoXChzZXQpZSh2aWEpaCh0aGUpZwotRmsobWFyay1zeW1saW5rKW8oZWQtZGlyZWN0b3JpZXMpayBGdShSZWFkbGluZSllKHYpbShhcmlhYmxlXCkpZihpZilmCi0oYXBwcm8tKTE5NSA5NzEgeShwcmlhdGUuKTIwIGIoVGhpcykxNSBiKHYpbShhcmlhYmxlKWcoaXMpZyhzZXQpZih0bylmCi0odGhlKWkodXNlcidzKWUocHJlZmVyZW5jZSlqKGIpcShlZm9yZSllKGFuKW8oeSlnKGFwcGxpY2F0aW9uKWkKLShjb21wbGV0aW9uKTE5NSAxMDI2IHkoZnVuY3Rpb24paihpcylnKGNhbGxlZCwpaChzbyllKHVubGVzcyloKHRoYXQpZgotKGZ1bmN0aW9uKWgobW8pcShkaVwwMTRlcylnKHRoZSlmKHYpbShhbHVlLClpKHRoZSllKHVzZXIncylnCi0ocHJlZmVyZW5jZXMpMTk1IDEwODEgeShhcmUpZChob25vcmVkLikxNzczIDExOTEgeShWKWwoYXJpYWJsZSktMTg2MQotYiBGaShpbnQpMjAgYiBGaChybClwIDIxNSAxMTkxIFYgMjEgdyhpZ25vcmUpcCAzOTEgMTE5MQotViAyMCB3KGNvbXBsZXRpb24pcCA2ODUgMTE5MSBWIDIxIHcoZHVwbGljYXRlcykxOTUgMTI0NQoteSBGdShJZikxNSBiKG5vbi16ZXJvLCloKHRoZW4pZihkdXBsaWNhdGVzKWkoaW4pZih0aGUpZihtYXRjKW8oaGVzKWcKLShhcmUpZyhyZW1vKW8odilvKGVkLilrKFRoZSlkKGRlZmF1bHQpZyhpcylmKDEuKTE3NzMKLTEzNTUgeShWKWwoYXJpYWJsZSktMTg2MSBiIEZpKGludCkyMCBiIEZoKHJsKXAgMjE1IDEzNTUKLVYgMjEgdyhcMDE0bGVuYW1lKXAgNDQ0IDEzNTUgViAyMCB3KGNvbXBsZXRpb24pcCA3MzgKLTEzNTUgViAyMSB3KGRlc2lyZWQpMTk1IDE0MTAgeSBGdShOb24temVybyljKG1lYW5zKWcodGhhdClmKHRoZSloCi0ocmVzdWx0cylnKG9mKWcodGhlKWcobWF0YylvKGhlcylmKGFyZSloKHRvKWYoYilxKGUpaSh0cmVhdGVkKWUoYXMpZwotKFwwMTRsZW5hbWVzLikyMyBiKFRoaXMpMTk1IDE0NjUgeShpcykxNCBiIEZsKGFsd2F5cylqCi1GdSh6ZXJvKWMob24pZyhlbilvKHRyeSlsKCwpZyhhbmQpaChjYW4pZihvbmx5KWgoYilxKGUpZyhjKW8oaGFuZ2VkKWYKLSh3aXRoaW4paShhKWUoY29tcGxldGlvbiloKGVuKW8odHJ5KWYoZ2VuZXJhdG9yKTE5NSAxNTE5Ci15KGZ1bmN0aW9uLikzOCBiKElmKTIxIGIoaXQpZyhpcylnKHNldClnKHRvKWYoYSlnKG5vbi16ZXJvKWgodiltKGFsdWUsKQotaShkaXJlY3RvcnkpZShuYW1lcylnKGhhKW8odilvKGUpZyhhKWYoc2xhc2gpaChhcHApcShlbmRlZCkxOTUKLTE1NzQgeShhbmQpZChSZWFkbGluZSloKGF0dGVtcHRzKWQodG8paChxdW90ZSlnKGNvbXBsZXRlZClpCi0oXDAxNGxlbmFtZXMpZihpZilnKHRoZXkpZyhjb24pbyh0YWluKWcoYW4pbyh5KWYoYylvKGhhcmFjdGVycykxOTUKLTE2MjkgeShpbilmIEZ0KHJsX2ZpbGVuYW1lX3F1b3RlX2NoYXJhY3RlcilvKHMpZCBGdShhbmQpaQotRnQocmxfZmlsZW5hbWVfcXVvdGluZ19kZXNpcmVkKWQgRnUoaXMpayhzZXQpZih0bylmKGEpMTk1Ci0xNjg0IHkobm9uLXplcm8paCh2KW0oYWx1ZS4pMTc3MyAxNzkzIHkoVilsKGFyaWFibGUpLTE4NjEKLWIgRmkoaW50KTIwIGIgRmgocmwpcCAyMTUgMTc5MyBWIDIxIHcoXDAxNGxlbmFtZSlwIDQ0NAotMTc5MyBWIDIwIHcocXVvdGluZylwIDY1MyAxNzkzIFYgMjEgdyhkZXNpcmVkKTE5NSAxODQ4Ci15IEZ1KE5vbi16ZXJvKTE0IGIobWVhbnMpZyh0aGF0KWYodGhlKWkocmVzdWx0cylmKG9mKWcodGhlKWcobWF0YylvCi0oaGVzKWYoYXJlKWgodG8pZihiKXEoZSlpKHF1b3RlZClmKHVzaW5nKWgoZG91YmxlKWcocXVvdGVzKTE5NQotMTkwMyB5KFwob3IpYyhhbiloKGFwcGxpY2F0aW9uLXNwKXEoZWNpXDAxNClxKGMpaihxdW90aW5nKWQobWVjKW8KLShoYW5pc21cKSlnKGlmKWgodGhlKWYoY29tcGxldGVkKWgoXDAxNGxlbmFtZSlnKGNvbilvKHRhaW5zKWYoYW4pbyh5KQotMTk1IDE5NTggeShjKW8oaGFyYWN0ZXJzKWkoaW4paSBGdChybF9maWxlbmFtZV9xdW90ZV9jaGFycylwCi1GdSguKWgoVGhpcylmKGlzKWYgRmwoYWx3YXlzKWsgRnUobm9uLXplcm8pZChvbilmKGVuKW8odHJ5KWwoLClmKGFuZClpCi0oY2FuKTE5NSAyMDEyIHkob25seSljKGIpcShlKWcoYylvKGhhbmdlZClnKHdpdGhpbiloKGEpZihjb21wbGV0aW9uKWcKLShlbilvKHRyeSlnKGdlbmVyYXRvcillKGZ1bmN0aW9uLikyMCBiKFRoZSkxMiBiKHF1b3RpbmcpZyhpcylnCi0oZVwwMTNlY3RlZCkxOTUgMjA2NyB5KHZpYSlqKGEpZyhjYWxsKWkodG8pZCh0aGUpaShmdW5jdGlvbilnKHApcShvaW4pbwotKHRlZClnKHRvKWUoYilvKHkpaCBGdChybF9maWxlbmFtZV9xdW90aW5nX2Z1bmN0aW9uKXAKLUZ1KC4pMTc3MyAyMTc3IHkoVilsKGFyaWFibGUpLTE4NjEgYiBGaShpbnQpMjAgYiBGaChybClwCi0yMTUgMjE3NyBWIDIxIHcoYXR0ZW1wdGVkKXAgNDk1IDIxNzcgViAyMCB3KGNvbXBsZXRpb24pcAotNzg5IDIxNzcgViAyMSB3KG8pbih2KW4oZXIpMTk1IDIyMzIgeSBGdShJZik0NyBiKGFuKWcoYXBwbGljYXRpb24tc3ApcQotKGVjaVwwMTQpcShjKWooY29tcGxldGlvbillKGZ1bmN0aW9uKWcoYXNzaWduZWQpZih0bylnCi1GdChybF9hdHRlbXB0ZWRfKTE5NSAyMjg2IHkoY29tcGxldGlvbl9mdW5jdGlvbikyNCBiCi1GdShzZXRzKWkodGhpcyloKHYpbShhcmlhYmxlKWgodG8pZShhKWcobm9uLXplcm8paCh2KW0oYWx1ZSwpagotKFJlYWRsaW5lKWUod2lsbClnKG5vdCkxOTUgMjM0MSB5KHApcShlcmZvcm0pMTUgYihpdHMpZyhkZWZhdWx0KWcKLShcMDE0bGVuYW1lKWgoY29tcGxldGlvbilnKGV2KW8oZW4pZihpZilnKHRoZSlnKGFwcGxpY2F0aW9uJ3MpaAotKGNvbXBsZXRpb24pZyhmdW5jdGlvbikxOTUgMjM5NiB5KHJldHVybnMpZihubylnKG1hdGMpbyhoZXMuKTIwCi1iKEl0KTE1IGIoc2hvdWxkKWgoYilxKGUpZyhzZXQpZihvbmx5KWgoYilvKHkpZihhbilnKGFwcGxpY2F0aW9uJ3MpaAotKGNvbXBsZXRpb24paChmdW5jdGlvbi4pMTc3MyAyNTA2IHkoVilsKGFyaWFibGUpLTE4NjEKLWIgRmkoaW50KTIwIGIgRmgocmwpcCAyMTUgMjUwNiBWIDIxIHcoY29tcGxldGlvbilwIDUxMAotMjUwNiBWIDIxIHcodCluKHlwKXIoZSkxOTUgMjU2MCB5IEZ1KFNldCllKHRvKWUoYSlpKGMpbyhoYXJhY3RlcilmCi0oZGVzY3JpYmluZylpKHRoZSllKHQpbyh5cClxKGUpaChvZilmKGNvbXBsZXRpb24paShSZWFkbGluZSlnKGlzKWYKLShjdXJyZW4pbyh0bHkpZyhhdHRlbXB0LSkxOTUgMjYxNSB5KGluZzspZyhzZWUpZih0aGUpZihkZXNjcmlwdGlvbilpCi0ob2YpZiBGdChybF9jb21wbGV0ZV9pbnRlcm5hbFwoXCkpYyBGdShcKHNlZSlrKFNlY3Rpb24paCgyLjYuMilkCi0oW0NvbXBsZXRpb24pMTk1IDI2NzAgeShGKWwodW5jdGlvbnNdLClnKHBhZ2UpZyg0MlwpKWcoZm9yKWYodGhlKWgKLShsaXN0KWgob2YpZihjKW8oaGFyYWN0ZXJzLilwIGVvcAotJSVQYWdlOiA0NyA0OQotNDcgNDggYm9wIDc1IC01OCBhIEZ1KENoYXB0ZXIpMTUgYigyOilrKFByb2dyYW1taW5nKWMod2l0aClnKEdOVSlnCi0oUmVhZGxpbmUpODQzIGIoNDcpMTc3MyAxNDkgeShWKWwoYXJpYWJsZSktMTg2MSBiIEZpKGludCkyMAotYiBGaChybClwIDIxNSAxNDkgMTggMyB2IDIxIHcoaW5oaWJpdClwIDM5OSAxNDkgViAyMwotdyhjb21wbGV0aW9uKTE5NSAyMDQgeSBGdShJZikxNCBiKHRoaXMpaCh2KW0oYXJpYWJsZSlnKGlzKWcobm9uLXplcm8sKWYKLShjb21wbGV0aW9uKWkoaXMpZShpbmhpYml0ZWQuKTIyIGIoVGhlKTE1IGIoY29tcGxldGlvbilnKGMpbyhoYXJhY3RlcillCi0od2lsbClqKGIpcShlKTE5NSAyNTkgeShpbnNlcnRlZClnKGFzKWYoYW4pbyh5KWcob3RoZXIpZyhiKXEob3VuZCloKHRvKQotZSBGdChzZWxmLWluc2VydClwIEZ1KC4pNzUgMzcxIHkgRmooMi42LjQpMzAgYihBKTIxIGIoU2hvcnQpZgotKENvbXBsZXRpb24pZyhFeGFtcGxlKTEzNyA0NjcgeSBGdShIZXJlKTExIGIoaXMpZihhKWcoc21hbGwpaAotKGFwcGxpY2F0aW9uKWgoZGVtb25zdHJhdGluZyllKHRoZSlnKHVzZSloKG9mKWUodGhlKWkoR05VKWYoUmVhZGxpbmUpaAotKGxpYnJhcnkpbCguKTE5IGIoSXQpMTEgYihpcylmKGNhbGxlZCk3NSA1MjIgeSBGdChmaWxlbWFuKXAKLUZ1KCwpMTcgYihhbmQpaCh0aGUpZyhzb3VyY2UpZyhjbylxKGRlKWcocmVzaWRlcyloKGluKWYoYClwCi1GdChleGFtcGxlcy9maWxlbWFuLmMpcCBGdSgnLikyNSBiKFRoaXMpMTggYihzYW1wbGUpZyhhcHBsaWNhdGlvbik3NQotNTc3IHkocHJvKW8odmlkZXMpYyhjb21wbGV0aW9uKWcob2YpZShjb21tYW5kKWgobmFtZXMsKWcobGluZSlpCi0oZWRpdGluZylnKGZlYXR1cmVzLClkKGFuZClpKGFjY2VzcylmKHRvKWYodGhlKWgoaGlzdG9yeSloKGxpc3QuKXAKLWVvcAotJSVQYWdlOiA0OCA1MAotNDggNDkgYm9wIDc1IC01OCBhIEZ1KDQ4KTEyOTkgYihHTlUpMTUgYihSZWFkbGluZSloKExpYnJhcnkpMTk1Ci0xNDkgeSBGdCgvKikyNCBiKGZpbGVtYW4uYyllKC0tKWkoQSlnKHRpbnkpZihhcHBsaWNhdGlvbilmKHdoaWNoKWgKLShkZW1vbnN0cmF0ZXMpZyhob3cpZyh0byloKHVzZSlmKHRoZSkyNjcgMjAxIHkoR05VKWcoUmVhZGxpbmUpZwotKGxpYnJhcnkuKTQ2IGIoVGhpcykyNCBiKGFwcGxpY2F0aW9uKWUoaW50ZXJhY3RpdmVseSlnKGFsbG93cyloKHVzZXJzKQotMjY3IDI1MyB5KHRvKWcobWFuaXB1bGF0ZSlnKGZpbGVzKWcoYW5kKWcodGhlaXIpZyhtb2Rlcy4paCgqLykxOTUKLTM1NyB5KCNpbmNsdWRlKWYoPHN0ZGlvLmg+KTE5NSA0MDkgeSgjaW5jbHVkZSlnKDxzeXMvdHlwZXMuaD4pMTk1Ci00NjEgeSgjaW5jbHVkZSlnKDxzeXMvZmlsZS5oPikxOTUgNTEzIHkoI2luY2x1ZGUpZyg8c3lzL3N0YXQuaD4pMTk1Ci01NjUgeSgjaW5jbHVkZSlnKDxzeXMvZXJybm8uaD4pMTk1IDY2OCB5KCNpbmNsdWRlKWcKLSg8cmVhZGxpbmUvcmVhZGxpbmUuaD4pMTk1IDcyMCB5KCNpbmNsdWRlKWcoPHJlYWRsaW5lL2hpc3RvcnkuaD4pMTk1Ci04MjQgeShleHRlcm4pZyhjaGFyKWcoKnhtYWxsb2MpZyhcKFwpOykxOTUgOTI4IHkoLyopaChUaGUpZihuYW1lcylnKG9mKQotaChmdW5jdGlvbnMpZSh0aGF0KWkoYWN0dWFsbHkpZihkbylnKHRoZSloKG1hbmlwdWxhdGlvbi4pZSgqLykxOTUKLTk4MCB5KGludCloKGNvbV9saXN0KWcoX19QXChcKGNoYXIpZygqXClcKTspMTk1IDEwMzIKLXkoaW50KWcoY29tX3ZpZXcpZyhfX1BcKFwoY2hhcilnKCpcKVwpOykxOTUgMTA4MyB5KGludClnKGNvbV9yZW5hbWUpZwotKF9fUFwoXChjaGFyKWcoKlwpXCk7KTE5NSAxMTM1IHkoaW50KWcoY29tX3N0YXQpZyhfX1BcKFwoY2hhcilnKCpcKVwpOykKLTE5NSAxMTg3IHkoaW50KWcoY29tX3B3ZClnKF9fUFwoXChjaGFyKWcoKlwpXCk7KTE5NSAxMjM5Ci15KGludClnKGNvbV9kZWxldGUpZyhfX1BcKFwoY2hhcilnKCpcKVwpOykxOTUgMTI5MSB5KGludClnKGNvbV9oZWxwKWcKLShfX1BcKFwoY2hhcilnKCpcKVwpOykxOTUgMTM0MyB5KGludClnKGNvbV9jZClnKF9fUFwoXChjaGFyKWcoKlwpXCk7KQotMTk1IDEzOTUgeShpbnQpZyhjb21fcXVpdClnKF9fUFwoXChjaGFyKWcoKlwpXCk7KTE5NQotMTQ5OSB5KC8qKWgoQSlmKHN0cnVjdHVyZSlnKHdoaWNoKWcoY29udGFpbnMpZyhpbmZvcm1hdGlvbilmKG9uKWkodGhlKWYKLShjb21tYW5kcylnKHRoaXMpZyhwcm9ncmFtKTI2NyAxNTUwIHkoY2FuKWcodW5kZXJzdGFuZC4pZigqLykxOTUKLTE2NTQgeSh0eXBlZGVmKWgoc3RydWN0KWcoeykyNDMgMTcwNiB5KGNoYXIpZygqbmFtZTspZygvKiloKFVzZXIpZgotKHByaW50YWJsZSlnKG5hbWUpZyhvZiloKHRoZSlmKGZ1bmN0aW9uLilnKCovKTI0MyAxNzU4Ci15KHJsX2ljcGZ1bmNfdClmKCpmdW5jOyloKC8qKWgoRnVuY3Rpb24pZSh0bylpKGNhbGwpZih0byloKGRvKWYodGhlKWgKLShqb2IuKWYoKi8pMjQzIDE4MTAgeShjaGFyKWcoKmRvYzspZygvKiloKERvY3VtZW50YXRpb24pZShmb3IpaCh0aGlzKWgKLShmdW5jdGlvbi4pNDYgYigqLykxOTUgMTg2MiB5KH0pMjQgYihDT01NQU5EOykxOTUgMTk2NgoteShDT01NQU5EKWYoY29tbWFuZHNbXSlmKD0paSh7KTI0MyAyMDE3IHkoeylmKCJjZCIsKWgoY29tX2NkLClmCi0oIkNoYW5nZSlmKHRvKWkoZGlyZWN0b3J5KWYoRElSIilnKH0sKTI0MyAyMDY5IHkoeylnKCJkZWxldGUiLClnCi0oY29tX2RlbGV0ZSwpZigiRGVsZXRlKWgoRklMRSIpaCh9LCkyNDMgMjEyMSB5KHspZigiaGVscCIsKWcoY29tX2hlbHAsKQotZygiRGlzcGxheSlnKHRoaXMpZyh0ZXh0IilnKH0sKTI0MyAyMTczIHkoeylnKCI/IiwpaChjb21faGVscCwpZQotKCJTeW5vbnltKWgoZm9yKWgoYGhlbHAnIilmKH0sKTI0MyAyMjI1IHkoeylnKCJsaXN0IiwpZyhjb21fbGlzdCwpZwotKCJMaXN0KWcoZmlsZXMpZyhpbiloKERJUiIpZih9LCkyNDMgMjI3NyB5KHspZygibHMiLCloKGNvbV9saXN0LCllCi0oIlN5bm9ueW0paChmb3IpZyhgbGlzdCciKWcofSwpMjQzIDIzMjkgeSh7KWcoInB3ZCIsKWcoY29tX3B3ZCwpZwotKCJQcmludClnKHRoZSloKGN1cnJlbnQpZih3b3JraW5nKWcoZGlyZWN0b3J5IilmKH0sKTI0MwotMjM4MSB5KHspaCgicXVpdCIsKWcoY29tX3F1aXQsKWcoIlF1aXQpZyh1c2luZylnKEZpbGVtYW4iKWcofSwpMjQzCi0yNDMzIHkoeylnKCJyZW5hbWUiLClnKGNvbV9yZW5hbWUsKWYoIlJlbmFtZSloKEZJTEUpaCh0bylmKE5FV05BTUUiKWcKLSh9LCkyNDMgMjQ4NCB5KHspZygic3RhdCIsKWcoY29tX3N0YXQsKWcoIlByaW50KWcob3V0KWcoc3RhdGlzdGljcylnCi0ob24paChGSUxFIilmKH0sKTI0MyAyNTM2IHkoeylnKCJ2aWV3IiwpZyhjb21fdmlldywpZygiVmlldylnKHRoZSloCi0oY29udGVudHMpZShvZilpKEZJTEUiKWYofSwpMjQzIDI1ODggeSh7KWcoXChjaGFyKWgoKlwpTlVMTCwpZgotKFwocmxfaWNwZnVuY190KWYoKlwpTlVMTCwpaChcKGNoYXIpZygqXClOVUxMKWcofSkxOTUKLTI2NDAgeSh9OylwIGVvcAotJSVQYWdlOiA0OSA1MQotNDkgNTAgYm9wIDc1IC01OCBhIEZ1KENoYXB0ZXIpMTUgYigyOilrKFByb2dyYW1taW5nKWMod2l0aClnKEdOVSlnCi0oUmVhZGxpbmUpODQzIGIoNDkpMTk1IDIwMSB5IEZ0KC8qKTI0IGIoRm9yd2FyZCllKGRlY2xhcmF0aW9ucy4paCgqLykKLTE5NSAyNTMgeShjaGFyKWcoKnN0cmlwd2hpdGUpZyhcKFwpOykxOTUgMzA1IHkoQ09NTUFORClnKCpmaW5kX2NvbW1hbmQpCi1mKFwoXCk7KTE5NSA0MDkgeSgvKilpKFRoZSlmKG5hbWUpZyhvZiloKHRoaXMpZihwcm9ncmFtLClnKGFzKWgodGFrZW4pZgotKGZyb20pZyhhcmd2WzBdLilnKCovKTE5NSA0NjEgeShjaGFyKWcoKnByb2duYW1lOykxOTUKLTU2NSB5KC8qKWgoV2hlbilmKG5vbi16ZXJvLClnKHRoaXMpZyhtZWFucylnKHRoZSlnKHVzZXIpaChpcylmKGRvbmUpaAotKHVzaW5nKWYodGhpcylnKHByb2dyYW0uKWcoKi8pMTk1IDYxNiB5KGludClnKGRvbmU7KTE5NQotNzIwIHkoY2hhcilnKCopMTk1IDc3MiB5KGR1cHN0cilnKFwoc1wpKTMxNCA4MjQgeShpbnQpaChzOykxOTUKLTg3NiB5KHspMjQzIDkyOCB5KGNoYXIpZigqcjspMjQzIDEwMzIgeShyKWcoPSloKHhtYWxsb2MpZihcKHN0cmxlbilnCi0oXChzXCkpZygrKWgoMVwpOykyNDMgMTA4MyB5KHN0cmNweSlmKFwociwpZyhzXCk7KTI0MwotMTEzNSB5KHJldHVybilnKFwoclwpOykxOTUgMTE4NyB5KH0pMTk1IDEyOTEgeShtYWluKWcoXChhcmdjLClnKGFyZ3ZcKSkKLTMxNCAxMzQzIHkoaW50KWgoYXJnYzspMzE0IDEzOTUgeShjaGFyKWcoKiphcmd2OykxOTUKLTE0NDcgeSh7KTI0MyAxNDk5IHkoY2hhcilmKCpsaW5lLClnKCpzOykyNDMgMTYwMiB5KHByb2duYW1lKWYoPSlpCi0oYXJndlswXTspMjQzIDE3MDYgeShpbml0aWFsaXplX3JlYWRsaW5lKWQoXChcKTspaSgvKiloKEJpbmQpZihvdXIpaAotKGNvbXBsZXRlci4pZSgqLykyNDMgMTgxMCB5KC8qKWgoTG9vcCloKHJlYWRpbmcpZihhbmQpZyhleGVjdXRpbmcpZwotKGxpbmVzKWcodW50aWwpZyh0aGUpZyh1c2VyKWgocXVpdHMuKWYoKi8pMjQzIDE4NjIgeShmb3IpZyhcKCloKDspZwotKGRvbmUpZig9PSloKDA7KWYoXCkpMjkwIDE5MTQgeSh7KTMzOCAxOTY2IHkobGluZSlnKD0paChyZWFkbGluZSlmCi0oXCgiRmlsZU1hbjopZigiXCk7KTMzOCAyMDY5IHkoaWYpaShcKCFsaW5lXCkpMzg2IDIxMjEKLXkoYnJlYWs7KTMzOCAyMjI1IHkoLyopZyhSZW1vdmUpZihsZWFkaW5nKWcoYW5kKWcodHJhaWxpbmcpZwotKHdoaXRlc3BhY2UpZihmcm9tKWkodGhlKWYobGluZS4pNDEwIDIyNzcgeShUaGVuLClnKGlmKWgodGhlcmUpZihpcylnCi0oYW55dGhpbmcpZyhsZWZ0LClnKGFkZCloKGl0KWYodG8paCh0aGUpZihoaXN0b3J5KWcobGlzdCk0MTAKLTIzMjkgeShhbmQpZyhleGVjdXRlKWcoaXQuKWgoKi8pMzM4IDIzODEgeShzKWcoPSlnKHN0cmlwd2hpdGUpZQotKFwobGluZVwpOykzMzggMjQ4NCB5KGlmKWkoXCgqc1wpKTM4NiAyNTM2IHkoeyk0MzQgMjU4OAoteShhZGRfaGlzdG9yeSllKFwoc1wpOyk0MzQgMjY0MCB5KGV4ZWN1dGVfbGluZSlnKFwoc1wpOylwCi1lb3AKLSUlUGFnZTogNTAgNTIKLTUwIDUxIGJvcCA3NSAtNTggYSBGdSg1MCkxMjk5IGIoR05VKTE1IGIoUmVhZGxpbmUpaChMaWJyYXJ5KTM4NgotMTQ5IHkgRnQofSkzMzggMjUzIHkoZnJlZSkyMyBiKFwobGluZVwpOykyOTAgMzA1IHkofSkyNDMKLTM1NyB5KGV4aXQpZyhcKDBcKTspMTk1IDQwOSB5KH0pMTk1IDUxMyB5KC8qKWgoRXhlY3V0ZSllKGEpaShjb21tYW5kKWYKLShsaW5lLilnKCovKTE5NSA1NjUgeShpbnQpMTk1IDYxNiB5KGV4ZWN1dGVfbGluZSlmKFwobGluZVwpKTMxNAotNjY4IHkoY2hhcilpKCpsaW5lOykxOTUgNzIwIHkoeykyNDMgNzcyIHkocmVnaXN0ZXIpZShpbnQpaShpOykyNDMKLTgyNCB5KENPTU1BTkQpZigqY29tbWFuZDspMjQzIDg3NiB5KGNoYXIpZygqd29yZDspMjQzCi05ODAgeSgvKilnKElzb2xhdGUpZyh0aGUpaChjb21tYW5kKWYod29yZC4pZygqLykyNDMgMTAzMgoteShpKWcoPSloKDA7KTI0MyAxMDgzIHkod2hpbGUpZihcKGxpbmVbaV0pZygmJilnKHdoaXRlc3BhY2UpZwotKFwobGluZVtpXVwpXCkpMjkwIDExMzUgeShpKys7KTI0MyAxMTg3IHkod29yZClnKD0paChsaW5lKWYoKyloKGk7KTI0MwotMTI5MSB5KHdoaWxlKWYoXChsaW5lW2ldKWcoJiYpZyghd2hpdGVzcGFjZSlnKFwobGluZVtpXVwpXCkpMjkwCi0xMzQzIHkoaSsrOykyNDMgMTQ0NyB5KGlmKWcoXChsaW5lW2ldXCkpMjkwIDE0OTkgeShsaW5lW2krK10pZyg9KWgKLSgnXFwwJzspMjQzIDE2MDIgeShjb21tYW5kKWYoPSlnKGZpbmRfY29tbWFuZClnKFwod29yZFwpOykyNDMKLTE3MDYgeShpZilnKFwoIWNvbW1hbmRcKSkyOTAgMTc1OCB5KHspMzM4IDE4MTAgeShmcHJpbnRmKWcoXChzdGRlcnIsKWcKLSgiXDA0NXM6KWcoTm8paChzdWNoKWYoY29tbWFuZClnKGZvcilnKEZpbGVNYW4uXFxuIiwpZyh3b3JkXCk7KTMzOAotMTg2MiB5KHJldHVybilnKFwoLTFcKTspMjkwIDE5MTQgeSh9KTI0MyAyMDE3IHkoLyopZyhHZXQpaChhcmd1bWVudClmCi0odG8pZyhjb21tYW5kLClnKGlmKWcoYW55LiloKCovKTI0MyAyMDY5IHkod2hpbGUpZihcKHdoaXRlc3BhY2UpZgotKFwobGluZVtpXVwpXCkpMjkwIDIxMjEgeShpKys7KTI0MyAyMjI1IHkod29yZCloKD0paChsaW5lKWYoKyloKGk7KTI0MwotMjMyOSB5KC8qKWYoQ2FsbCloKHRoZSlmKGZ1bmN0aW9uLilnKCovKTI0MyAyMzgxIHkocmV0dXJuKWcKLShcKFwoKlwoY29tbWFuZC0+ZnVuY1wpXCkpZShcKHdvcmRcKVwpOykxOTUgMjQzMyB5KH0pMTk1Ci0yNTM2IHkoLyopaihMb29rKWYodXApZyhOQU1FKWgoYXMpZih0aGUpaChuYW1lKWYob2YpaChhKWYoY29tbWFuZCwpZwotKGFuZCloKHJldHVybilmKGEpZyhwb2ludGVyKWcodG8paCh0aGF0KTI2NyAyNTg4IHkoY29tbWFuZC4pNDYKLWIoUmV0dXJuKTIzIGIoYSloKE5VTEwpZihwb2ludGVyKWcoaWYpaChOQU1FKWYoaXNuJ3QpZyhhKWgoY29tbWFuZClmCi0obmFtZS4pZygqLykxOTUgMjY0MCB5KENPTU1BTkQpZygqKXAgZW9wCi0lJVBhZ2U6IDUxIDUzCi01MSA1MiBib3AgNzUgLTU4IGEgRnUoQ2hhcHRlcikxNSBiKDI6KWsoUHJvZ3JhbW1pbmcpYyh3aXRoKWcoR05VKWcKLShSZWFkbGluZSk4NDMgYig1MSkxOTUgMTQ5IHkgRnQoZmluZF9jb21tYW5kKTIyIGIoXChuYW1lXCkpMzE0Ci0yMDEgeShjaGFyKWkoKm5hbWU7KTE5NSAyNTMgeSh7KTI0MyAzMDUgeShyZWdpc3RlcillKGludClpKGk7KTI0MwotNDA5IHkoZm9yKWYoXChpKWgoPSlmKDA7KWgoY29tbWFuZHNbaV0ubmFtZTspZShpKytcKSkyOTAKLTQ2MSB5KGlmKWkoXChzdHJjbXApZihcKG5hbWUsKWcoY29tbWFuZHNbaV0ubmFtZVwpKWYoPT0paCgwXCkpMzM4Ci01MTMgeShyZXR1cm4pZyhcKCZjb21tYW5kc1tpXVwpOykyNDMgNjE2IHkocmV0dXJuKWcoXChcKENPTU1BTkQpZgotKCpcKU5VTExcKTspMTk1IDY2OCB5KH0pMTk1IDc3MiB5KC8qKWkoU3RyaXApZih3aGl0ZXNwYWNlKWYoZnJvbSlpKHRoZSkKLWYoc3RhcnQpZyhhbmQpaChlbmQpZihvZiloKFNUUklORy4pNDYgYihSZXR1cm4pMjQgYihhKWYocG9pbnRlcikyNjcKLTgyNCB5KGludG8pZyhTVFJJTkcuKWcoKi8pMTk1IDg3NiB5KGNoYXIpZygqKTE5NSA5MjgKLXkoc3RyaXB3aGl0ZSlmKFwoc3RyaW5nXCkpMzE0IDk4MCB5KGNoYXIpaSgqc3RyaW5nOykxOTUKLTEwMzIgeSh7KTI0MyAxMDgzIHkocmVnaXN0ZXIpZShjaGFyKWkoKnMsKWYoKnQ7KTI0MyAxMTg3Ci15KGZvcilnKFwocyloKD0pZihzdHJpbmc7KWcod2hpdGVzcGFjZSlnKFwoKnNcKTspZyhzKytcKSkyOTAKLTEyMzkgeSg7KTI0MyAxMzQzIHkoaWYpZyhcKCpzKWgoPT0pZigwXCkpMjkwIDEzOTUgeShyZXR1cm4pZyhcKHNcKTspMjQzCi0xNDk5IHkodClnKD0paChzKWcoKylnKHN0cmxlbilmKFwoc1wpKWcoLSloKDE7KTI0MyAxNTUwCi15KHdoaWxlKWYoXCh0KWcoPiloKHMpZygmJilnKHdoaXRlc3BhY2UpZShcKCp0XClcKSkyOTAKLTE2MDIgeSh0LS07KTI0MyAxNjU0IHkoKisrdCloKD0paCgnXFwwJzspMjQzIDE3NTggeShyZXR1cm4pZihzOykxOTUKLTE4MTAgeSh9KTE5NSAxOTE0IHkoLyopaCgqKioqKioqKioqKioqKioqKioqKioqKilvKCoqKioqKiopbygqKioqKioqKilvCi0oKioqKioqKilvKCoqKioqKiopbygqKioqKioqKilvKCoqKiopZCgqLykxOTUgMTk2NiB5KC8qKTE1NzUKLWIoKi8pMTk1IDIwMTcgeSgvKik0MjkgYihJbnRlcmZhY2UpMjMgYih0bylnKFJlYWRsaW5lKWcoQ29tcGxldGlvbikzODEKLWIoKi8pMTk1IDIwNjkgeSgvKikxNTc1IGIoKi8pMTk1IDIxMjEgeSgvKikyNCBiCi0oKioqKioqKioqKioqKioqKioqKioqKiopbygqKioqKioqKW8oKioqKioqKiopbygqKioqKioqKW8oKioqKioqKilvCi0oKioqKioqKiopbygqKioqKWQoKi8pMTk1IDIyMjUgeShjaGFyKWkoKmNvbW1hbmRfZ2VuZXJhdG9yKWYKLShfX1BcKFwoY29uc3QpZyhjaGFyKWkoKiwpZihpbnRcKVwpOykxOTUgMjI3NyB5KGNoYXIpZwotKCoqZmlsZW1hbl9jb21wbGV0aW9uKWUoX19QXChcKGNvbnN0KWkoY2hhcilnKCosKWgoaW50LClmKGludFwpXCk7KTE5NQotMjM4MSB5KC8qKWgoVGVsbClmKHRoZSlnKEdOVSloKFJlYWRsaW5lKWYobGlicmFyeSlmKGhvdylpKHRvKWcKLShjb21wbGV0ZS4pNDYgYihXZSkyNCBiKHdhbnQpZih0byloKHRyeSlmKHRvKTI2NyAyNDMzCi15KGNvbXBsZXRlKWYob24paShjb21tYW5kKWYobmFtZXMpZyhpZiloKHRoaXMpZihpcyloKHRoZSlmKGZpcnN0KWcKLSh3b3JkKWcoaW4paCh0aGUpZyhsaW5lLClmKG9yKTI2NyAyNDg0IHkob24pZyhmaWxlbmFtZXMpZyhpZilnKG5vdC4paAotKCovKTE5NSAyNTM2IHkoaW5pdGlhbGl6ZV9yZWFkbGluZSlkKFwoXCkpMTk1IDI1ODggeSh7KTI0MwotMjY0MCB5KC8qKWkoQWxsb3cpZyhjb25kaXRpb25hbClnKHBhcnNpbmcpZyhvZilnKHRoZSloKH4vLmlucHV0cmMpZQotKGZpbGUuKWgoKi8pcCBlb3AKLSUlUGFnZTogNTIgNTQKLTUyIDUzIGJvcCA3NSAtNTggYSBGdSg1MikxMjk5IGIoR05VKTE1IGIoUmVhZGxpbmUpaChMaWJyYXJ5KTI0MwotMTQ5IHkgRnQocmxfcmVhZGxpbmVfbmFtZSkyMSBiKD0paigiRmlsZU1hbiI7KTI0MyAyNTMKLXkoLyopZihUZWxsKWgodGhlKWYoY29tcGxldGVyKWcodGhhdClnKHdlKWgod2FudClmKGEpaChjcmFjaylmKGZpcnN0LilnCi0oKi8pMjQzIDMwNSB5KHJsX2F0dGVtcHRlZF9jb21wbGV0aW9uXylvKGZ1bmN0aW8pbyhuKWUoPSlqCi0oZmlsZW1hbl9jb21wbGV0aW9uOykxOTUgMzU3IHkofSkxOTUgNDYxIHkoLyopZyhBdHRlbXB0KWUodG8paQotKGNvbXBsZXRlKWYob24pZyh0aGUpaChjb250ZW50cylmKG9mKWcoVEVYVC4pNDcgYihTVEFSVCkyMwotYihhbmQpaChFTkQpMjY3IDUxMyB5KGJvdW5kKWYodGhlKWcocmVnaW9uKWcob2YpaChybF9saW5lX2J1ZmZlcillCi0odGhhdCloKGNvbnRhaW5zKWcodGhlKWcod29yZCloKHRvKTI2NyA1NjUgeShjb21wbGV0ZS4pNDYKLWIoVEVYVCkyMyBiKGlzKWgodGhlKWYod29yZCloKHRvKWYoY29tcGxldGUuKTQ3IGIoV2UpMjMKLWIoY2FuKWgodXNlKWYodGhlKWgoZW50aXJlKTI2NyA2MTYgeShjb250ZW50cyllKG9mKWkocmxfbGluZV9idWZmZXIpZQotKGluKWgoY2FzZSloKHdlKWYod2FudCloKHRvKWYoZG8paChzb21lKWYoc2ltcGxlKTI2NwotNjY4IHkocGFyc2luZy4pNDYgYihSZXR1cm50aGUpMjMgYihhcnJheSlnKG9mKWgobWF0Y2hlcywpZShvcilpKE5VTEwpZgotKGlmKWgodGhlcmUpZihhcmVuJ3QpZyhhbnkuKWcoKi8pMTk1IDcyMCB5KGNoYXIpZygqKikxOTUKLTc3MiB5KGZpbGVtYW5fY29tcGxldGlvbillKFwodGV4dCwpaShzdGFydCwpZyhlbmRcKSkzMTQKLTgyNCB5KGNvbnN0KWcoY2hhciloKCp0ZXh0OykzMTQgODc2IHkoaW50KWcoc3RhcnQsKWYoZW5kOykxOTUKLTkyOCB5KHspMjQzIDk4MCB5KGNoYXIpZygqKm1hdGNoZXM7KTI0MyAxMDgzIHkobWF0Y2hlcylnKD0pZyhcKGNoYXIpaAotKCoqXClOVUxMOykyNDMgMTE4NyB5KC8qKWYoSWYpaCh0aGlzKWYod29yZCloKGlzKWYoYXQpaCh0aGUpZihzdGFydClnCi0ob2YpaCh0aGUpZihsaW5lLCloKHRoZW4pZihpdClnKGlzKWgoYSlnKGNvbW1hbmQpMzE0Ci0xMjM5IHkodG8pZyhjb21wbGV0ZS4pNDYgYihPdGhlcndpc2UpMjMgYihpdCloKGlzKWYodGhlKWgobmFtZSlmKG9mKWgKLShhKWYoZmlsZSloKGluKWYodGhlKWgoY3VycmVudCkzMTQgMTI5MSB5KGRpcmVjdG9yeS4pZigqLykyNDMKLTEzNDMgeShpZilnKFwoc3RhcnQpZyg9PSloKDBcKSkyOTAgMTM5NSB5KG1hdGNoZXMpZig9KWgKLShybF9jb21wbGV0aW9uX21hdGNoZXMpZChcKHRleHQsKWkoY29tbWFuZF9nZW5lcmF0b3JcKTspMjQzCi0xNDk5IHkocmV0dXJuKWcoXChtYXRjaGVzXCk7KTE5NSAxNTUwIHkofSkxOTUgMTY1NCB5KC8qKWgoR2VuZXJhdG9yKWUKLShmdW5jdGlvbiloKGZvcilnKGNvbW1hbmQpZyhjb21wbGV0aW9uLik0NyBiKFNUQVRFKTIzCi1iKGxldHMpZyh1cykyNjcgMTcwNiB5KGtub3cpZyh3aGV0aGVyKWcodG8pZyhzdGFydCloKGZyb20pZihzY3JhdGNoOylnCi0od2l0aG91dClnKGFueSlnKHN0YXRlKTI2NyAxNzU4IHkoXChpLmUuKWcoU1RBVEUpZyg9PSloKDBcKSwpZih0aGVuKWcKLSh3ZSloKHN0YXJ0KWYoYXQpaCh0aGUpZih0b3ApaChvZilmKHRoZSloKGxpc3QuKWYoKi8pMTk1Ci0xODEwIHkoY2hhcilnKCopMTk1IDE4NjIgeShjb21tYW5kX2dlbmVyYXRvcilmKFwodGV4dCwpaChzdGF0ZVwpKTMxNAotMTkxNCB5KGNvbnN0KWcoY2hhciloKCp0ZXh0OykzMTQgMTk2NiB5KGludClnKHN0YXRlOykxOTUKLTIwMTcgeSh7KTI0MyAyMDY5IHkoc3RhdGljKWYoaW50KWcobGlzdF9pbmRleCwpZyhsZW47KTI0MwotMjEyMSB5KGNoYXIpZygqbmFtZTspMjQzIDIyMjUgeSgvKilnKElmKWgodGhpcylmKGlzKWgoYSlnKG5ldylmKHdvcmQpZwotKHRvKWgoY29tcGxldGUsKWYoaW5pdGlhbGl6ZSlmKG5vdy4pNDcgYihUaGlzKTMxNCAyMjc3Ci15KGluY2x1ZGVzKTIzIGIoc2F2aW5nKWcodGhlKWgobGVuZ3RoKWYob2YpZyhURVhUKWgoZm9yKWYoZWZmaWNpZW5jeSwpZgotKGFuZCkzMTQgMjMyOSB5KGluaXRpYWxpemluZyloKHRoZSlnKGluZGV4KWcodmFyaWFibGUpZyh0byloKDAuKWYoKi8pCi0yNDMgMjM4MSB5KGlmKWcoXCghc3RhdGVcKSkyOTAgMjQzMyB5KHspMzM4IDI0ODQgeShsaXN0X2luZGV4KWcoPSlnKDA7KQotMzM4IDI1MzYgeShsZW4paCg9KWYoc3RybGVuKWcoXCh0ZXh0XCk7KTI5MCAyNTg4IHkofSlwCi1lb3AKLSUlUGFnZTogNTMgNTUKLTUzIDU0IGJvcCA3NSAtNTggYSBGdShDaGFwdGVyKTE1IGIoMjopayhQcm9ncmFtbWluZyljKHdpdGgpZyhHTlUpZwotKFJlYWRsaW5lKTg0MyBiKDUzKTI0MyAxNDkgeSBGdCgvKikyMyBiKFJldHVybilnKHRoZSloKG5leHQpZihuYW1lKWcKLSh3aGljaCloKHBhcnRpYWxseSllKG1hdGNoZXMpaChmcm9tKWcodGhlKTMxNCAyMDEgeShjb21tYW5kKWcobGlzdC4pZwotKCovKTI0MyAyNTMgeSh3aGlsZSlnKFwobmFtZSlnKD0paChjb21tYW5kc1tsaXN0X2luZGV4XS5uYW1lKW8oXCkpMjkwCi0zMDUgeSh7KTMzOCAzNTcgeShsaXN0X2luZGV4Kys7KTMzOCA0NjEgeShpZilnKFwoc3RybmNtcClmKFwobmFtZSwpZwotKHRleHQsKWcobGVuXCkpZyg9PSloKDBcKSkzODYgNTEzIHkocmV0dXJuKWYoXChkdXBzdHJcKG5hbWVcKVwpOykyOTAKLTU2NSB5KH0pMjQzIDY2OCB5KC8qKWcoSWYpaChubylmKG5hbWVzKWgobWF0Y2hlZCwpZSh0aGVuKWkocmV0dXJuKWYKLShOVUxMLilnKCovKTI0MyA3MjAgeShyZXR1cm4pZyhcKFwoY2hhcilnKCpcKU5VTExcKTspMTk1Ci03NzIgeSh9KTE5NSA4NzYgeSgvKiloKCoqKioqKioqKioqKioqKioqKioqKioqKW8oKioqKioqKilvKCoqKioqKioqKW8KLSgqKioqKioqKW8oKioqKioqKilvKCoqKioqKioqKW8oKioqKilkKCovKTE5NSA5MjggeSgvKikxNTc1Ci1iKCovKTE5NSA5ODAgeSgvKik1NDkgYihGaWxlTWFuKTIyIGIoQ29tbWFuZHMpNjQ0IGIoKi8pMTk1Ci0xMDMyIHkoLyopMTU3NSBiKCovKTE5NSAxMDgzIHkoLyopMjQgYigqKioqKioqKioqKioqKioqKioqKioqKilvCi0oKioqKioqKilvKCoqKioqKioqKW8oKioqKioqKilvKCoqKioqKiopbygqKioqKioqKilvKCoqKiopZCgqLykxOTUKLTExODcgeSgvKilqKFN0cmluZylmKHRvKWcocGFzcyloKHRvKWYoc3lzdGVtKWcoXChcKS4pNDcKLWIoVGhpcykyNCBiKGlzKWYoZm9yKWgodGhlKWYoTElTVCwpZyhWSUVXKWgoYW5kKWYoUkVOQU1FKTI2NwotMTIzOSB5KGNvbW1hbmRzLilmKCovKTE5NSAxMjkxIHkoc3RhdGljKWgoY2hhcilnKHN5c2NvbVsxMDI0XTspMTk1Ci0xMzk1IHkoLyopaChMaXN0KWYodGhlKWcoZmlsZVwoc1wpKWcobmFtZWQpZyhpbiloKGFyZy4pZigqLykxOTUKLTE0NDcgeShjb21fbGlzdClnKFwoYXJnXCkpMzE0IDE0OTkgeShjaGFyKWgoKmFyZzspMTk1Ci0xNTUwIHkoeykyNDMgMTYwMiB5KGlmKWYoXCghYXJnXCkpMjkwIDE2NTQgeShhcmcpaCg9KWcoIiI7KTI0MwotMTc1OCB5KHNwcmludGYpZihcKHN5c2NvbSwpZigibHMpaSgtRkNsZylmKFwwNDVzIiwpZyhhcmdcKTspMjQzCi0xODEwIHkocmV0dXJuKWcoXChzeXN0ZW0pZyhcKHN5c2NvbVwpXCk7KTE5NSAxODYyIHkofSkxOTUKLTE5NjYgeShjb21fdmlldylnKFwoYXJnXCkpMzE0IDIwMTcgeShjaGFyKWgoKmFyZzspMTk1Ci0yMDY5IHkoeykyNDMgMjEyMSB5KGlmKWYoXCghdmFsaWRfYXJndW1lbnQpZihcKCJ2aWV3IiwpaChhcmdcKVwpKTI5MAotMjE3MyB5KHJldHVybilnKDE7KTI0MyAyMjc3IHkoc3ByaW50ZilnKFwoc3lzY29tLClmKCJtb3JlKWkoXDA0NXMiLClmCi0oYXJnXCk7KTI0MyAyMzI5IHkocmV0dXJuKWcoXChzeXN0ZW0pZyhcKHN5c2NvbVwpXCk7KTE5NQotMjM4MSB5KH0pMTk1IDI0ODQgeShjb21fcmVuYW1lKWYoXChhcmdcKSkzMTQgMjUzNiB5KGNoYXIpaSgqYXJnOykxOTUKLTI1ODggeSh7KTI0MyAyNjQwIHkodG9vX2Rhbmdlcm91cyllKFwoInJlbmFtZSJcKTspcCBlb3AKLSUlUGFnZTogNTQgNTYKLTU0IDU1IGJvcCA3NSAtNTggYSBGdSg1NCkxMjk5IGIoR05VKTE1IGIoUmVhZGxpbmUpaChMaWJyYXJ5KTI0MwotMTQ5IHkgRnQocmV0dXJuKTIzIGIoXCgxXCk7KTE5NSAyMDEgeSh9KTE5NSAzMDUgeShjb21fc3RhdClnKFwoYXJnXCkpCi0zMTQgMzU3IHkoY2hhciloKCphcmc7KTE5NSA0MDkgeSh7KTI0MyA0NjEgeShzdHJ1Y3QpZihzdGF0KWcoZmluZm87KTI0MwotNTY1IHkoaWYpZyhcKCF2YWxpZF9hcmd1bWVudClmKFwoInN0YXQiLCloKGFyZ1wpXCkpMjkwCi02MTYgeShyZXR1cm4pZyhcKDFcKTspMjQzIDcyMCB5KGlmKWcoXChzdGF0KWcoXChhcmcsKWgoJmZpbmZvXCkpZig9PSlnCi0oLTFcKSkyOTAgNzcyIHkoeykzMzggODI0IHkocGVycm9yKWcoXChhcmdcKTspMzM4IDg3NgoteShyZXR1cm4pZyhcKDFcKTspMjkwIDkyOCB5KH0pMjQzIDEwMzIgeShwcmludGYpZyhcKCJTdGF0aXN0aWNzKWYoZm9yKWgKLShgXDA0NXMnOlxcbiIsKWcoYXJnXCk7KTI0MyAxMTM1IHkocHJpbnRmKWcoXCgiXDA0NXMpZyhoYXMpaChcMDQ1ZClmCi0obGlua1wwNDVzLClnKGFuZClnKGlzKWgoXDA0NWQpZyhieXRlXDA0NXMpZihpbilnKGxlbmd0aC5cXG4iLClnKGFyZywpCi00MzQgMTE4NyB5KGZpbmZvLnN0X25saW5rLCk0MzQgMTIzOSB5KFwoZmluZm8uc3RfbmxpbmspZSg9PSlqKDFcKSlnKD8pZgotKCIiKWgoOilnKCJzIiwpNDM0IDEyOTEgeShmaW5mby5zdF9zaXplLCk0MzQgMTM0MyB5KFwoZmluZm8uc3Rfc2l6ZSllCi0oPT0paCgxXCkpaCg/KWYoIiIpaCg6KWcoInMiXCk7KTI0MyAxMzk1IHkocHJpbnRmKWYoXCgiSW5vZGUpZyhMYXN0KWcKLShDaGFuZ2UpZyhhdDopZyhcMDQ1cyIsKWgoY3RpbWUpZihcKCZmaW5mby5zdF9jdGltZVwpXCk7KTI0MwotMTQ0NyB5KHByaW50ZilnKFwoIikxNDMgYihMYXN0KTIzIGIoYWNjZXNzKWcoYXQ6KWcoXDA0NXMiLCloKGN0aW1lKWYKLShcKCZmaW5mby5zdF9hdGltZVwpXCk7KTI0MyAxNDk5IHkocHJpbnRmKWcoXCgiKTk1IGIoTGFzdCkyMwotYihtb2RpZmllZClnKGF0OilnKFwwNDVzIiwpaChjdGltZSlmKFwoJmZpbmZvLnN0X210aW1lXClcKTspMjQzCi0xNTUwIHkocmV0dXJuKWcoXCgwXCk7KTE5NSAxNjAyIHkofSkxOTUgMTcwNiB5KGNvbV9kZWxldGUpZihcKGFyZ1wpKTMxNAotMTc1OCB5KGNoYXIpaSgqYXJnOykxOTUgMTgxMCB5KHspMjQzIDE4NjIgeSh0b29fZGFuZ2Vyb3VzKWUKLShcKCJkZWxldGUiXCk7KTI0MyAxOTE0IHkocmV0dXJuKWgoXCgxXCk7KTE5NSAxOTY2IHkofSkxOTUKLTIwNjkgeSgvKiloKFByaW50KWYob3V0KWcoaGVscCloKGZvcilmKEFSRywpZyhvciloKGZvcilmKGFsbCloKG9mKWYKLSh0aGUpaChjb21tYW5kcylmKGlmKWcoQVJHKWgoaXMpMjY3IDIxMjEgeShub3QpZihwcmVzZW50LilnKCovKTE5NQotMjE3MyB5KGNvbV9oZWxwKWcoXChhcmdcKSkzMTQgMjIyNSB5KGNoYXIpaCgqYXJnOykxOTUKLTIyNzcgeSh7KTI0MyAyMzI5IHkocmVnaXN0ZXIpZShpbnQpaShpOykyNDMgMjM4MSB5KGludClmKHByaW50ZWQpZyg9KWgKLSgwOykyNDMgMjQ4NCB5KGZvcilmKFwoaSloKD0pZigwOyloKGNvbW1hbmRzW2ldLm5hbWU7KWUoaSsrXCkpMjkwCi0yNTM2IHkoeykzMzggMjU4OCB5KGlmKWkoXCghKmFyZylmKHx8KWcoXChzdHJjbXApZyhcKGFyZywpZwotKGNvbW1hbmRzW2ldLm5hbWVcKSlmKD09KWkoMFwpXCkpMzg2IDI2NDAgeSh7KXAgZW9wCi0lJVBhZ2U6IDU1IDU3Ci01NSA1NiBib3AgNzUgLTU4IGEgRnUoQ2hhcHRlcikxNSBiKDI6KWsoUHJvZ3JhbW1pbmcpYyh3aXRoKWcoR05VKWcKLShSZWFkbGluZSk4NDMgYig1NSk0MzQgMTQ5IHkgRnQocHJpbnRmKTIzIGIoXCgiXDA0NXNcXHRcXHRcMDQ1cy5cXG4iLCllCi0oY29tbWFuZHNbaV0ubmFtZSwpaChjb21tYW5kc1tpXS5kb2NcKTspNDM0IDIwMSB5KHByaW50ZWQrKzspMzg2Ci0yNTMgeSh9KTI5MCAzMDUgeSh9KTI0MyA0MDkgeShpZiloKFwoIXByaW50ZWRcKSkyOTAgNDYxCi15KHspMzM4IDUxMyB5KHByaW50ZilnKFwoIk5vKWgoY29tbWFuZHMpZShtYXRjaCloKGBcMDQ1cycuKTQ4Ci1iKFBvc3NpYmlsdGllcykyMiBiKGFyZTpcXG4iLCloKGFyZ1wpOykzMzggNjE2IHkoZm9yKWgoXChpKWYoPSloKDA7KWcKLShjb21tYW5kc1tpXS5uYW1lOylkKGkrK1wpKTM4NiA2NjggeSh7KTQzNCA3MjAgeSgvKilpKFByaW50KWcoaW4paChzaXgpCi1mKGNvbHVtbnMuKWcoKi8pNDM0IDc3MiB5KGlmKWcoXChwcmludGVkKWcoPT0paCg2XCkpNDgxCi04MjQgeSh7KTUyOSA4NzYgeShwcmludGVkKWYoPSloKDA7KTUyOSA5MjggeShwcmludGYpZihcKCJcXG4iXCk7KTQ4MQotOTgwIHkofSk0MzQgMTA4MyB5KHByaW50ZilnKFwoIlwwNDVzXFx0IiwpZihjb21tYW5kc1tpXS5uYW1lXCk7KTQzNAotMTEzNSB5KHByaW50ZWQrKzspMzg2IDExODcgeSh9KTMzOCAxMjkxIHkoaWYpaShcKHByaW50ZWRcKSkzODYKLTEzNDMgeShwcmludGYpZihcKCJcXG4iXCk7KTI5MCAxMzk1IHkofSkyNDMgMTQ0NyB5KHJldHVybilnKFwoMFwpOykxOTUKLTE0OTkgeSh9KTE5NSAxNjAyIHkoLyopaChDaGFuZ2UpZih0bylnKHRoZSloKGRpcmVjdG9yeSllKEFSRy4paSgqLykxOTUKLTE2NTQgeShjb21fY2QpZihcKGFyZ1wpKTMxNCAxNzA2IHkoY2hhciloKCphcmc7KTE5NSAxNzU4Ci15KHspMjQzIDE4MTAgeShpZilmKFwoY2hkaXIpZyhcKGFyZ1wpKWgoPT0pZigtMVwpKTI5MAotMTg2MiB5KHspMzM4IDE5MTQgeShwZXJyb3IpZyhcKGFyZ1wpOykzMzggMTk2NiB5KHJldHVybilnKDE7KTI5MAotMjAxNyB5KH0pMjQzIDIxMjEgeShjb21fcHdkKWcoXCgiIlwpOykyNDMgMjE3MyB5KHJldHVybilnKFwoMFwpOykxOTUKLTIyMjUgeSh9KTE5NSAyMzI5IHkoLyopaChQcmludClmKG91dClnKHRoZSloKGN1cnJlbnQpZih3b3JraW5nKWYKLShkaXJlY3RvcnkuKWgoKi8pMTk1IDIzODEgeShjb21fcHdkKWcoXChpZ25vcmVcKSkzMTQKLTI0MzMgeShjaGFyKWgoKmlnbm9yZTspMTk1IDI0ODQgeSh7KTI0MyAyNTM2IHkoY2hhcilmKGRpclsxMDI0XSwpZygqczspCi0yNDMgMjY0MCB5KHMpZyg9KWgoZ2V0Y3dkKWYoXChkaXIsKWcoc2l6ZW9mXChkaXJcKSlnKC0pZygxXCk7KXAKLWVvcAotJSVQYWdlOiA1NiA1OAotNTYgNTcgYm9wIDc1IC01OCBhIEZ1KDU2KTEyOTkgYihHTlUpMTUgYihSZWFkbGluZSloKExpYnJhcnkpMjQzCi0xNDkgeSBGdChpZikyMyBiKFwocyloKD09KWYoMFwpKTI5MCAyMDEgeSh7KTMzOCAyNTMgeShwcmludGYpZwotKFwoIkVycm9yKWcoZ2V0dGluZylnKHB3ZDopZyhcMDQ1c1xcbiIsKWcoZGlyXCk7KTMzOAotMzA1IHkocmV0dXJuKWcoMTspMjkwIDM1NyB5KH0pMjQzIDQ2MSB5KHByaW50ZilnKFwoIkN1cnJlbnQpZgotKGRpcmVjdG9yeSloKGlzKWgoXDA0NXNcXG4iLClmKGRpclwpOykyNDMgNTEzIHkocmV0dXJuKWcoMDspMTk1Ci01NjUgeSh9KTE5NSA2NjggeSgvKiloKFRoZSlmKHVzZXIpZyh3aXNoZXMpZyh0byloKHF1aXQpZih1c2luZylnKHRoaXMpaAotKHByb2dyYW0uKTQ2IGIoSnVzdCkyNCBiKHNldClmKERPTkUpMjY3IDcyMCB5KG5vbi16ZXJvLilmKCovKTE5NQotNzcyIHkoY29tX3F1aXQpaChcKGFyZ1wpKTMxNCA4MjQgeShjaGFyKWgoKmFyZzspMTk1IDg3NgoteSh7KTI0MyA5MjggeShkb25lKWYoPSloKDE7KTI0MyA5ODAgeShyZXR1cm4pZihcKDBcKTspMTk1Ci0xMDMyIHkofSkxOTUgMTEzNSB5KC8qKWgoRnVuY3Rpb24pZSh3aGljaClpKHRlbGxzKWYoeW91KWcodGhhdClnKHlvdSloCi0oY2FuJ3QpZihkbyloKHRoaXMuKWYoKi8pMTk1IDExODcgeSh0b29fZGFuZ2Vyb3VzKWYoXChjYWxsZXJcKSkzMTQKLTEyMzkgeShjaGFyKWkoKmNhbGxlcjspMTk1IDEyOTEgeSh7KTI0MyAxMzQzIHkoZnByaW50ZilmKFwoc3RkZXJyLCk0NTcKLTEzOTUgeSgiXDA0NXM6KWgoVG9vKWYoZGFuZ2Vyb3VzKWcoZm9yKWcobWUpaCh0bylnKGRpc3RyaWJ1dGUuXFxuIik0NTcKLTE0NDcgeShjYWxsZXJcKTspMjQzIDE0OTkgeShmcHJpbnRmKWYoXChzdGRlcnIsKWYoIldyaXRlKWgoaXQpaAotKHlvdXJzZWxmLlxcbiJcKTspMTk1IDE1NTAgeSh9KTE5NSAxNjU0IHkoLyopZyhSZXR1cm4pZihub24temVybylmKGlmKWkKLShBUkcpZihpcyloKGEpZyh2YWxpZClmKGFyZ3VtZW50KWcoZm9yKWcoQ0FMTEVSLCkyNjcKLTE3MDYgeShlbHNlKWcocHJpbnQpZyhhbiloKGVycm9yKWYobWVzc2FnZSlnKGFuZClnKHJldHVybilnKHplcm8uKWcoKi8pCi0xOTUgMTc1OCB5KGludCkxOTUgMTgxMCB5KHZhbGlkX2FyZ3VtZW50KWYoXChjYWxsZXIsKWgoYXJnXCkpMzE0Ci0xODYyIHkoY2hhciloKCpjYWxsZXIsKWUoKmFyZzspMTk1IDE5MTQgeSh7KTI0MyAxOTY2Ci15KGlmKWgoXCghYXJnKWcofHwpaCghKmFyZ1wpKTI5MCAyMDE3IHkoeykzMzggMjA2OSB5KGZwcmludGYpZgotKFwoc3RkZXJyLClnKCJcMDQ1czopZyhBcmd1bWVudClnKHJlcXVpcmVkLlxcbiIsKWYoY2FsbGVyXCk7KTMzOAotMjEyMSB5KHJldHVybiloKFwoMFwpOykyOTAgMjE3MyB5KH0pMjQzIDIyNzcgeShyZXR1cm4pZyhcKDFcKTspMTk1Ci0yMzI5IHkofSlwIGVvcAotJSVQYWdlOiA1NyA1OQotNTcgNTggYm9wIDc1IC01OCBhIEZ1KENvbmNlcHQpMTUgYihJbmRleCkxNDY2IGIoNTcpNzUKLTE0OSB5IEZxKENvbmNlcHQpMjcgYihJbmRleCk3NSAzMjEgeSBGcyhDKTc1IDM4MiB5IEZmKGNvbW1hbmQpMTQKLWIoZWRpdGluZyllIEZlKC4pNiBiKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pCi1nKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLikyMgotYiBGZigxKTc1IDUxMSB5IEZzKEUpNzUgNTcyIHkgRmYoZWRpdGluZykxNSBiKGNvbW1hbmQpZihsaW5lcylmCi1GZSguKTYgYiguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKQotZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKTI0IGIgRmYoMSk3NSA3MDIgeSBGcyhJKTc1Ci03NjMgeSBGZihpbml0aWFsaSlxKHphdGkpcShvbikxNiBiKFwwMTRsZSwpZShyZWFkbGluZSl0Ci1GZSguKTggYiguKWUoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKQotZiguKWcoLilnKC4pZyguKWcoLikxNyBiIEZmKDQpNzUgODA4IHkoaW4pbyh0ZXJhY3Rpb24sKWUocmVhZGxpbmUpNQotYiBGZSguKWooLilmKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLikKLWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLikxOCBiIEZmKDEpNzUKLTkzOCB5IEZzKEspNzUgOTk5IHkgRmYoa2lsbClkKHJpbmcpOCBiIEZlKC4pZiguKWYoLilnKC4paCguKWYoLilnKC4pZwotKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLikKLWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLikyMAotYiBGZigzKTc1IDEwNDQgeShraWxsaW5nKWModGV4dCk5IGIgRmUoLilkKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paAotKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLikKLWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKTIxIGIgRmYoMikxMDEyIDMyMQoteSBGcyhOKTEwMTIgMzkwIHkgRmYobm90YXRpb24sKTE1IGIocmVhZGxpbmUpNyBiIEZlKC4paCguKWUoLilnKC4pZyguKWcKLSguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pCi1nKC4paCguKWYoLilnKC4pZyguKWcoLikyMCBiIEZmKDEpMTAxMiA1MzkgeSBGcyhSKTEwMTIKLTYwOCB5IEZmKHJlYWRsaW5lLCkxNSBiKGZ1bmN0aW9uKTggYiBGZSguKWcoLillKC4pZyguKWcoLilnKC4paCguKWYoLilnCi0oLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKQotZiguKWcoLikyMSBiIEZmKDIxKTEwMTIgNzU3IHkgRnMoVikxMDEyIDgyNiB5IEZmKHYpbihhcmlhYmxlcywpMTUKLWIocmVhZGxpbmUpdCBGZSguKTkgYiguKWQoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paAotKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pMTcKLWIgRmYoNCkxMDEyIDk3NiB5IEZzKFkpMTAxMiAxMDQ0IHkgRmYoeSlvKGFua2luZyllKHRleHQpdAotRmUoLik3IGIoLilmKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLikKLWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pMTcKLWIgRmYoMilwIGVvcAotJSVQYWdlOiA1OCA2MAotNTggNTkgYm9wIDc1IC01OCBhIEZ1KDU4KTEyOTkgYihHTlUpMTUgYihSZWFkbGluZSloKExpYnJhcnkpcAotZW9wCi0lJVBhZ2U6IDU5IDYxCi01OSA2MCBib3AgNzUgLTU4IGEgRnUoRilsKHVuY3Rpb24pMTYgYihhbmQpZihWKWwoYXJpYWJsZSlpKEluZGV4KTExODcKLWIoNTkpNzUgMTQ5IHkgRnEoRiktNyBiKHVuY3Rpb24pMjYgYihhbmQpaChWKS03IGIoYXJpYWJsZSkyNgotYihJbmRleClwIDc5IDMwNyAyMSAzIHYgNzUgMzY5IGEgRmQoX3JsX2RpZ2l0XylvKHApNwotYiBGZSguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLikKLWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKTIzCi1iIEZmKDM2KTc1IDQxNSB5IEZkKF9ybF9kaWdpdF8pbyh2YSlvKGx1ZSk2IGIgRmUoLil0KC4pZyguKWcoLilnKC4pZyguKQotaCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnCi0oLilnKC4paCguKWYoLilnKC4pMjAgYiBGZigzNyk3NSA0NjIgeSBGZChfcmxfbG93ZXJjKW8oYXMpbyhlX3ApNgotYiBGZSguKXQoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLikKLWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pMjAgYiBGZigzNik3NQotNTA4IHkgRmQoX3JsX3RvX2xvdylvKGVyKTYgYiBGZSguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgKLSguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pCi1nKC4paCguKWYoLikyMiBiIEZmKDM2KTc1IDU1NCB5IEZkKF9ybF90b191cHApbyhlcik2Ci1iIEZlKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKQotaCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLikyMgotYiBGZigzNik3NSA2MDAgeSBGZChfcmxfdXBwZXJjKW8oYXMpbyhlX3ApNiBiIEZlKC4pdCguKWcoLilnKC4pZyguKWcoLikKLWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZwotKC4pZyguKWgoLilmKC4pZyguKTIwIGIgRmYoMzYpNzUgNzMzIHkgRnMoQSk3NSA3OTQgeQotRmQoYWJvcnQpMTEgYihcKEMtZ1wpKTUgYiBGZSguKXQoLiloKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLikKLWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZwotKC4pZyguKWcoLiloKC4pZiguKTE3IGIgRmYoMTcpNzUgODQxIHkgRmQoYWNjZXB0LWxpbilvKGUpMTAKLWIoXChOZXdsaW5lKWYob3IpaihSZXR1cm5cKSk2IGIgRmUoLil0KC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcKLSguKWcoLilnKC4pMTkgYiBGZigxMik3NSA5NzMgeSBGcyhCKTc1IDEwMzUgeSBGZChiYWNrd2FyZC1jKW8oaGEpbyhyKTEwCi1iKFwoQy1iXCkpZSBGZSguKXQoLillKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnCi0oLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLikyMSBiIEZmKDEyKTc1Ci0xMDgxIHkgRmQoYmFja3dhcmQtZClvKGVsKW8oZXRlKW8oLWMpbyhoYXIpOSBiKFwoUnVib3V0XCkpZQotRmUoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLikyMgotYiBGZigxNCk3NSAxMTI3IHkgRmQoYmFja3dhcmQtaylvKGlsKW8obC1sKW8oaW4pbyhlKTEwCi1iKFwoQy14KWgoUnVib3V0XCkpZSBGZSguKWQoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLikyNAotYiBGZigxNSk3NSAxMTc0IHkgRmQoYmFja3dhcmQtaylvKGlsKW8obC13KW8ob3IpbyhkKTEwCi1iKFwoTS0pNTAxIDExNzIgeSBGbihoKXAgNTEyIDExNDYgNzMgMiB2IDUxMiAxMTc0IGEgRm0oREVMKXAKLTUxMiAxMTgxIFYgNTgzIDExNzIgYSBGbihpKTU5OCAxMTc0IHkgRmQoXCkpZyBGZSguKWMoLilnKC4pZyguKWcoLilnKC4pCi1oKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKTIzIGIgRmYoMTUpNzUgMTIyMCB5Ci1GZChiYWNrd2FyZC13KW8ob3IpbyhkKTEwIGIoXChNLWJcKSllIEZlKC4pdCguKWUoLilnKC4pZyguKWgoLilmKC4pZyguKQotZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKTIxCi1iIEZmKDEyKTc1IDEyNjYgeSBGZChiZWdpbm5pbmctKW8ob2YpbygtaGkpbyhzdClvKG9yeSk5Ci1iKFwoTS08XCkpaCBGZSguKWMoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnCi0oLilnKC4pMjUgYiBGZigxMyk3NSAxMzEyIHkgRmQoYmVnaW5uaW5nLSlvKG9mKW8oLWxpKW8obmUpOQotYihcKEMtYVwpKWMgRmUoLil0KC4paSguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paAotKC4pZiguKWcoLilnKC4pZyguKWcoLikxOCBiIEZmKDEyKTc1IDEzNTkgeShiKXEoZWxsLXN0KW8oeWxlKTcKLWIgRmUoLilpKC4pZCguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pCi1nKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcKLSguKWcoLilnKC4pMjAgYiBGZig1KTc1IDE0OTAgeSBGcyhDKTc1IDE1NTIgeSBGZChjYWxsLWxhc3QtKW8oa2IpbyhkLW0pCi1vKGFjKW8ocm8pOSBiKFwoQy14KWooZVwpKTUgYiBGZSguKWgoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKQotZyguKWcoLilnKC4pZyguKWgoLilmKC4pMTggYiBGZigxNyk3NSAxNTk4IHkgRmQoY2FwaXRhbGl6ZSlvKC13KW8ob3JkKTkKLWIoXChNLWNcKSlkIEZlKC4pZiguKWgoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYKLSguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLikxOSBiIEZmKDE0KTc1IDE2NDQgeSBGZChjaGFyYWN0ZXItKW8oc2UpCi1vKGFyYylvKGgpMTAgYihcKEMtXVwpKWMgRmUoLil0KC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZwotKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pMTggYiBGZigxOCk3NQotMTY5MSB5IEZkKGNoYXJhY3Rlci0pbyhzZSlvKGFyYylvKGgtKW8oYmFjKW8oa3dhKW8ocmQpOQotYihcKE0tQy1dXCkpZSBGZSguKXMoLilnKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pMjAKLWIgRmYoMTgpNzUgMTczNyB5IEZkKGNsZWFyLXNjcmUpbyhlbik5IGIoXChDLWxcKSlnIEZlKC4pdCguKWQoLilnKC4pZwotKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLikKLWcoLiloKC4pZiguKTIxIGIgRmYoMTIpNzUgMTc4MyB5KGNvbW1lbilvKHQtYilxKGVnaW4pOQotYiBGZSguKWYoLillKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLikKLWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pMjEKLWIgRmYoNSk3NSAxODI5IHkgRmQoY29tcGxldGUpMTAgYihcKCkyNjUgMTgyNyB5IEZuKGgpcAotMjc2IDE4MDEgNzQgMiB2IDI3NiAxODI5IGEgRm0oVCltKEFCKXAgMjc2IDE4MzcgViAzNDgKLTE4MjcgYSBGbihpKTM2MyAxODI5IHkgRmQoXCkpZiBGZSguKWUoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZwotKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLikKLTIyIGIgRmYoMTYpNzUgMTg3NSB5KGNvbXBsZXRpb24tcXVlcnktaSlxKHRlbXMpdCBGZSguKTkKLWIoLilkKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZgotKC4pZyguKWcoLilnKC4pZyguKWgoLikxNiBiIEZmKDUpNzUgMTkyMiB5KGNvbilvKHYpbyhlcnQtbWV0YSkxMAotYiBGZSguKWMoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLikKLWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLikyMgotYiBGZig1KTc1IDE5NjggeSBGZChjb3B5LWJhY2t3KW8oYXIpbyhkLXcpbyhvcilvKGQpMTAKLWIoXChcKSljIEZlKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnCi0oLilnKC4pZyguKWcoLiloKC4pZiguKWcoLikxOSBiIEZmKDE1KTc1IDIwMTQgeSBGZChjb3B5LWZvcndhKW8ocmQpbwotKC13bylvKHJkKTkgYihcKFwpKWUgRmUoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgKLSguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLikyMCBiIEZmKDE2KTc1Ci0yMDYwIHkgRmQoY29weS1yZWdpbylvKG4tKW8oYXMtKW8oa2kpbyhsbCk5IGIoXChcKSlkCi1GZSguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnCi0oLilnKC4pZyguKWgoLikxOCBiIEZmKDE1KTc1IDIxOTMgeSBGcyhEKTc1IDIyNTUgeSBGZChkZWxldGUtY2hhKW8ocikxMAotYihcKEMtZFwpKWQgRmUoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZwotKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLikyMiBiIEZmKDE0KTc1Ci0yMzAxIHkgRmQoZGVsZXRlLWNoYSlvKHItKW8ob3ItKW8obGkpbyhzdCk5IGIoXChcKSlkCi1GZSguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnCi0oLilnKC4pZyguKWgoLikxOCBiIEZmKDE3KTc1IDIzNDcgeSBGZChkZWxldGUtaG9yKW8oaXopbyhvbnQpbyhhbClvCi0oLXNwKW8oYWNlKTkgYihcKFwpKWkgRmUoLik2IGIoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmCi0oLilnKC4pZyguKWcoLilnKC4pMjUgYiBGZigxNSk3NSAyMzkzIHkgRmQoZGlnaXQtYXJndSlvKG1lKW8obnQpOQotYihcKClwIEZjKE0tMClwIEZkKCwpaSBGYyhNLTEpcCBGZCgsKWgoLi4uKWYgRmMoTS0tKXAKLUZkKFwpKWMgRmUoLillKC4paCguKWcoLilnKC4paCguKWYoLilnKC4pZyguKTIwIGIgRmYoMTYpNzUKLTI0MzkgeShkaXNhYmxlLWNvbXBsZSlxKHRpb24pOSBiIEZlKC4pZyguKWQoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnCi0oLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKQotZyguKTIxIGIgRmYoNSk3NSAyNDg2IHkgRmQoZG8tdXBwZXJjYSlvKHNlKW8oLXZlKW8ocnMpbyhpb24pOQotYihcKE0tYSwpaShNLWIsKWcoTS0pcCBGYih4KXAgRmQoLCloKC4uLilvKFwpKTE1OSAyNTMxCi15IEZlKC4pNiBiKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnCi0oLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKQotZyguKWgoLilmKC4pZyguKWcoLilnKC4pMjAgYiBGZigxNyk3NSAyNTc4IHkgRmQoZG93bmNhc2UtdylvKG9yKW8oZCkxMAotYihcKE0tbFwpKWUgRmUoLil0KC4pZSguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZwotKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pMjEgYiBGZigxNCk3NQotMjYyNCB5IEZkKGR1bXAtZnVuY3QpbyhpbylvKG5zKTkgYihcKFwpKWcgRmUoLilkKC4pZyguKWcoLiloKC4pZiguKWcoLikKLWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZgotKC4pZyguKTIyIGIgRmYoMTgpNzUgMjY3MCB5IEZkKGR1bXAtbWFjcm8pbyhzKTEwIGIoXChcKSlnCi1GZSguKWMoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnCi0oLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKTI0IGIgRmYoMTgpMTAxMgotMzA3IHkgRmQoZHVtcC12YXJpYWIpbyhsZSlvKHMpMTAgYihcKFwpKWUgRmUoLillKC4paCguKWYoLilnKC4pZyguKWcoLikKLWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZwotKC4pZyguKTIzIGIgRmYoMTgpMTAxMiA0NDkgeSBGcyhFKTEwMTIgNTE0IHkgRmYoZWRpdGluZy1tbylxKGRlKTEyCi1iIEZlKC4pNyBiKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnCi0oLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pMjIKLWIgRmYoNSkxMDEyIDU2MiB5IEZkKGVtYWNzLWVkaXRpKW8obmcpbygtbW8pbyhkZSk5IGIoXChDLWVcKSl0Ci1GZSguKWMoLiloKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnCi0oLilnKC4pMTggYiBGZigxOCkxMDEyIDYxMCB5KGVuYWJsZS1rKW8oZXlwYWQpOSBiIEZlKC4pZyguKWQoLiloKC4pZiguKQotZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloCi0oLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLikyMiBiIEZmKDUpMTAxMgotNjU4IHkgRmQoZW5kLWtiZC1tYWMpbyhybyk5IGIoXChDLXgpaShcKVwpKWUgRmUoLillKC4pZiguKWcoLilnKC4pZyguKWcKLSguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKTIzCi1iIEZmKDE3KTEwMTIgNzA2IHkgRmQoZW5kLW9mLWhpc3QpbyhvcilvKHkpMTAgYihcKE0tPlwpKWQKLUZlKC4pdCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYKLSguKWcoLilnKC4pZyguKWcoLiloKC4pMjAgYiBGZigxMykxMDEyIDc1NCB5IEZkKGVuZC1vZi1saW5lKTkKLWIoXChDLWVcKSllIEZlKC4pZiguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgKLSguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pMjMgYiBGZigxMikxMDEyCi04MDIgeSBGZChleGNoYW5nZS1wbylvKGluKW8odC1hKW8obmQpbygtbWEpbyhyayk5IGIoXChDLXgpaihDLXhcKSljCi1GZSguKWUoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pMjQgYiBGZigxOCkxMDEyCi04NTAgeShleHBhbmQtdGlsZGUpNiBiIEZlKC4paiguKWQoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYKLSguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pCi1oKC4pZiguKWcoLilnKC4pZyguKTE5IGIgRmYoNSkxMDEyIDk5MSB5IEZzKEYpMTAxMiAxMDU2Ci15IEZkKGZvcndhcmQtYmFjKW8oa3cpbyhhcmQpbygtZClvKGVsZSlvKHRlKW8oLWNoKW8oYXIpOQotYihcKFwpKWYgRmUoLillKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pMjIKLWIgRmYoMTQpMTAxMiAxMTA0IHkgRmQoZm9yd2FyZC1jaGEpbyhyKTEwIGIoXChDLWZcKSlmCi1GZSguKXMoLillKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnCi0oLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pMjIgYiBGZigxMikxMDEyIDExNTIgeQotRmQoZm9yd2FyZC1zZWEpbyhyYylvKGgtaClvKGlzKW8odG9yKW8oeSkxMCBiKFwoQy1zXCkpZQotRmUoLillKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pMjQKLWIgRmYoMTMpMTAxMiAxMjAwIHkgRmQoZm9yd2FyZC13b3IpbyhkKTEwIGIoXChNLWZcKSlmCi1GZSguKXMoLillKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnCi0oLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pMjIgYiBGZigxMikxMDEyIDEzMzQgeQotRnMoSCkxMDEyIDE0MDAgeSBGZihoaXN0b3J5LXByZXNlcnYpbyhlLXApcShvaSlxKG4pbyh0KTgKLWIgRmUoLiloKC4pZCguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pCi1mKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKTIxIGIgRmYoNSkxMDEyIDE0NDggeQotRmQoaGlzdG9yeS1zZWEpbyhyYylvKGgtYilvKGFjKW8oa3dhKW8ocmQpOSBiKFwoXCkpaQotRmUoLiljKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLikyNQotYiBGZigxMykxMDEyIDE0OTYgeSBGZChoaXN0b3J5LXNlYSlvKHJjKW8oaC1mKW8ob3Ipbyh3YXIpbyhkKTEwCi1iKFwoXCkpcyBGZSguKWMoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZwotKC4pZyguKWcoLikxNyBiIEZmKDEzKTEwMTIgMTU0MyB5KGhvcml6b24pbyh0YWwtc2Nyb2wpcShsLW1vKXIoZGUpNgotYiBGZSguKWooLilkKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLikKLWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pMTkgYiBGZig2KTEwMTIgMTY3OCB5Ci1GcyhJKTEwMTIgMTc0MyB5IEZmKGlucHV0LW1ldGEpOCBiIEZlKC4pZyguKWUoLilnKC4pZyguKWcoLiloKC4pZiguKWcKLSguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pCi1nKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLikyMSBiIEZmKDYpMTAxMiAxNzkxCi15IEZkKGluc2VydC1jb21tKW8oZW4pbyh0KTEwIGIoXChNLSNcKSlkIEZlKC4pdCguKWYoLilnKC4paCguKWYoLilnKC4pZwotKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pMjAKLWIgRmYoMTgpMTAxMiAxODM5IHkgRmQoaW5zZXJ0LWNvbXApbyhsZSlvKHRpbylvKG5zKTkKLWIoXChNLSpcKSl0IEZlKC4pYyguKWgoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYKLSguKWcoLilnKC4pZyguKWcoLikxOCBiIEZmKDE2KTEwMTIgMTg4NyB5KGlzZWFyYylvKGgtdGVybWluYXRvcnMpdAotRmUoLik4IGIoLilmKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLikKLWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pMTYgYiBGZig2KTEwMTIKLTIwMjEgeSBGcyhLKTEwMTIgMjA4NyB5IEZmKGspbyhleW1hcCk5IGIgRmUoLillKC4pZiguKWgoLilmKC4pZyguKWcoLilnCi0oLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKQotZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKTIyCi1iIEZmKDYpMTAxMiAyMTM1IHkgRmQoa2lsbC1saW5lKTEwIGIoXChDLWtcKSlmIEZlKC4pZCguKWcoLilnKC4pZyguKWcKLSguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pCi1nKC4pZyguKWgoLilmKC4pZyguKTI0IGIgRmYoMTUpMTAxMiAyMTgzIHkgRmQoa2lsbC1yZWdpb24pOQotYihcKFwpKWkgRmUoLik2IGIoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnCi0oLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKTI1Ci1iIEZmKDE1KTEwMTIgMjIzMSB5IEZkKGtpbGwtd2hvbGUtKW8obGkpbyhuZSk5IGIoXChcKSlnCi1GZSguKWMoLilpKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnCi0oLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pMjIgYiBGZigxNSkxMDEyIDIyNzggeQotRmQoa2lsbC13b3JkKTEwIGIoXChNLWRcKSlmIEZlKC4pZCguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZwotKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLikKLTI0IGIgRmYoMTUpMTAxMiAyNDEzIHkgRnMoTSkxMDEyIDI0NzggeSBGZihtYXJrLW1vKXEoZGlcMDE0ZWQtbGkpcShuZXMpCi04IGIgRmUoLiloKC4pZCguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloCi0oLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pMjEgYiBGZig2KTEwMTIKLTI1MjYgeShtYXJrLXN5bWxpbmspbyhlZC1kaSlxKHJlY3RvcmkpcShlcykxNCBiIEZlKC4pNgotYiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnCi0oLiloKC4pMjMgYiBGZig2KTEwMTIgMjU3NCB5KG1hdGMpbyhoLWhpZGRlbi1cMDE0bClxKGVzKTE0Ci1iIEZlKC4pNiBiKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnCi0oLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKTI0IGIgRmYoNikxMDEyCi0yNjIyIHkgRmQobWVudS1jb21wbGUpbyh0ZSk5IGIoXChcKSlnIEZlKC4pZSguKWYoLilnKC4pZyguKWcoLilnKC4paCguKQotZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnCi0oLiloKC4pMjMgYiBGZigxNikxMDEyIDI2NzAgeShtZXRhLVwwMTVhZyl0IEZlKC4pOCBiKC4pZSguKWcoLilnKC4pZyguKQotaCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnCi0oLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pMTgKLWIgRmYoNilwIGVvcAotJSVQYWdlOiA2MCA2MgotNjAgNjEgYm9wIDc1IC01OCBhIEZ1KDYwKTEyOTkgYihHTlUpMTUgYihSZWFkbGluZSloKExpYnJhcnkpNzUKLTE0OSB5IEZzKE4pNzUgMjEwIHkgRmQobmV4dC1oaXN0bylvKHJ5KTkgYihcKEMtblwpKWcKLUZlKC4pdCguKWQoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgKLSguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLikyMSBiIEZmKDEzKTc1IDI1NiB5IEZkKG5vbi1pbmNyZW0pbyhlbilvCi0odGFsKW8oLWYpbyhvcncpbyhhcmQpbygtcylvKGVhcilvKGNoKW8oLWhpKW8oc3QpbyhvcnkpOQotYihcKE0tblwpKTE1OSAzMDIgeSBGZSguKWQoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZgotKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLikKLWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLikyMCBiIEZmKDEzKTc1Ci0zNDcgeSBGZChub24taW5jcmVtKW8oZW4pbyh0YWwpbygtcilvKGV2ZSlvKHJzZSlvKC1zKW8oZWFyKW8oY2gpbygtaGkpbwotKHN0KW8ob3J5KTkgYihcKE0tcFwpKTE1OSAzOTMgeSBGZSguKWQoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZwotKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLikKLWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLikyMAotYiBGZigxMyk3NSA1MTUgeSBGcyhPKTc1IDU3NiB5IEZmKG91dHB1dC1tZXRhKTUgYiBGZSguKWkoLilmKC4paCguKWYoLikKLWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paAotKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLikxOCBiIEZmKDYpNzUKLTYyMiB5IEZkKG92ZXJ3cml0ZS0pbyhtbylvKGRlKTkgYihcKFwpKWcgRmUoLilkKC4pZyguKWcoLiloKC4pZiguKWcoLilnCi0oLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKQotZyguKTIyIGIgRmYoMTUpNzUgNzQ0IHkgRnMoUCk3NSA4MDUgeSBGZihwYWdlLWNvbXBsZXRpb25zKTE0Ci1iIEZlKC4pNiBiKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmCi0oLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLikyMwotYiBGZig3KTc1IDg1MSB5IEZkKHBvc3NpYmxlLWMpbyhvbSlvKHBsZSlvKHRpKW8ob25zKTkKLWIoXChNLT9cKSloIEZlKC4pYyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcKLSguKWcoLikyNSBiIEZmKDE2KTc1IDg5NyB5IEZkKHByZWZpeC1tZXQpbyhhKTEwIGIoXCgpMzI0Ci04OTUgeSBGbihoKXAgMzM1IDg2OCA3MCAyIHYgMzM1IDg5NyBhIEZtKEVTQylwIDMzNSA5MDQKLVYgNDAyIDg5NSBhIEZuKGkpNDE3IDg5NyB5IEZkKFwpKWcgRmUoLiljKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZwotKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pMjMKLWIgRmYoMTcpNzUgOTQyIHkgRmQocHJldmlvdXMtaClvKGlzKW8odG9yKW8oeSkxMCBiKFwoQy1wXCkpYwotRmUoLil0KC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZwotKC4pZyguKWcoLiloKC4pMTggYiBGZigxMik3NSAxMDcyIHkgRnMoUSk3NSAxMTMzIHkgRmQocXVvdGVkLWlucylvKGVyKW8KLSh0KTEwIGIoXChDLXEpaChvciloKEMtdlwpKWMgRmUoLillKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmCi0oLilnKC4pZyguKWcoLilnKC4paCguKWYoLikyMiBiIEZmKDE0KTc1IDEyNjMgeSBGcyhSKTc1Ci0xMzIzIHkgRmQocmUtcmVhZC1pbilvKGl0KW8oLWZpKW8obGUpOSBiKFwoQy14KWkoQy1yXCkpNQotYiBGZSguKWgoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKTE4Ci1iIEZmKDE3KTc1IDEzNjkgeSBGZChyZWFkbGluZSlzIEZlKC4pcyguKTcgYiguKWYoLilnKC4pZyguKWcoLilnKC4paCguKQotZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnCi0oLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLikxNiBiIEZmKDIxKTc1Ci0xNDE1IHkgRmQocmVkcmF3LWN1cilvKHJlKW8obnQtKW8obGkpbyhuZSk5IGIoXChcKSlkCi1GZSguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnCi0oLilnKC4pZyguKWgoLikxOCBiIEZmKDEyKTc1IDE0NjEgeSBGZChyZXZlcnNlLXNlKW8oYXIpbyhjaC0pbyhoaSlvCi0oc3RvKW8ocnkpOSBiKFwoQy1yXCkpZyBGZSguKWQoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloCi0oLilmKC4pZyguKTIzIGIgRmYoMTMpNzUgMTUwNiB5IEZkKHJldmVydC1saW4pbyhlKTEwCi1iKFwoTS1yXCkpZCBGZSguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnCi0oLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKTIyIGIgRmYoMTcpNzUKLTE1NTIgeSBGZChybF9hZGRfZGVmKW8odW4pNiBiIEZlKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pCi1oKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcKLSguKWcoLiloKC4pZiguKTIyIGIgRmYoMjgpNzUgMTU5OCB5IEZkKHJsX2FkZF9mdW4pbyhtYSlvKHBfZSlvKG50KW8ocnkpCi10IEZlKC4pcyguKTYgYiguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmCi0oLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pMTcgYiBGZigzMSk3NSAxNjQzIHkgRmQocmxfYWRkX3VuZClvKG8pNwotYiBGZSguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLikKLWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKTIzCi1iIEZmKDMyKTc1IDE2ODkgeSBGZChybF9hbHBoYWJlKW8odGkpbyhjKTkgYiBGZSguKXMoLilkKC4pZyguKWcoLiloKC4pZgotKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLikKLWgoLilmKC4pZyguKWcoLilnKC4pZyguKTIyIGIgRmYoMzYpNzUgMTczNSB5IEZkKHJsX2FscmVhZHkpbyhfcClvKHJvbSlvCi0ocHQpbyhlZCl0IEZlKC4pcyguKTYgYiguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZwotKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pMTcgYiBGZigyNSk3NQotMTc4MSB5IEZkKHJsX2F0dGVtcHQpbyhlZClvKF9jbylvKG1wKW8obGV0KW8oaW9uKW8oX2Ypbyh1bmMpbyh0aSlvKG9uKXQKLUZlKC4pcyguKTYgYiguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLikxNyBiIEZmKDQzKTc1Ci0xODI2IHkgRmQocmxfYXR0ZW1wdClvKGVkKW8oX2NvKW8obXApbyhsZXQpbyhpb24pbyhfbylvKHZlcik2Ci1iIEZlKC4pcyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKTIwCi1iIEZmKDQ2KTc1IDE4NzIgeSBGZChybF9iYXNpY19xKW8odW8pbyh0ZV8pbyhjaClvKGFyYSlvKGN0ZSlvKHJzKTgKLWIgRmUoLil0KC4pZSguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pCi0yMiBiIEZmKDQ1KTc1IDE5MTggeSBGZChybF9iYXNpY193KW8ob3IpbyhkX2IpbyhyZSlvKGFrXylvKGNoYSlvKHJhKW8KLShjdGUpbyhycyk1IGIgRmUoLilzKC4paCguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKTE4Ci1iIEZmKDQ1KTc1IDE5NjQgeSBGZChybF9iZWdpbl91KW8obmQpbyhvX2cpbyhybylvKHVwKXQKLUZlKC4pcyguKTYgYiguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pCi1nKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pMTcgYiBGZigzMik3NSAyMDA5IHkgRmQocmxfYmluZF9rZSlvKHkpNwotYiBGZSguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLikKLWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKTIzCi1iIEZmKDMwKTc1IDIwNTUgeSBGZChybF9iaW5kX2tlKW8oeV8pbyhpbl8pbyhtYSlvKHApNQotYiBGZSguKXMoLilpKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLikKLWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pMTggYiBGZigzMCk3NSAyMTAxIHkKLUZkKHJsX2JpbmRpbmcpbyhfaylvKGV5bSlvKGFwKTUgYiBGZSguKXMoLilpKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pCi1mKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKTE5Ci1iIEZmKDI3KTc1IDIxNDYgeSBGZChybF9jYWxsYmFjKW8oa18pbyhoYW4pbyhkbClvKGVyXylvKGlucylvKHRhKW8obGwpNwotYiBGZSguKXMoLilnKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pMjAKLWIgRmYoMzgpNzUgMjE5MiB5IEZkKHJsX2NhbGxiYWMpbyhrXylvKGhhbilvKGRsKW8oZXJfKW8ocmVtKW8ob3YpbyhlKTgKLWIgRmUoLil0KC4pZSguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLikyMQotYiBGZigzOCk3NSAyMjM4IHkgRmQocmxfY2FsbGJhYylvKGtfKW8ocmVhKW8oZF8pbyhjaGEpbyhyKTkKLWIgRmUoLilkKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pCi1mKC4pZyguKWcoLilnKC4pMjUgYiBGZigzOCk3NSAyMjg0IHkgRmQocmxfY2F0Y2hfcylvKGlnKW8obmFsKW8ocyk2Ci1iIEZlKC4pdCguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKQotZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKTE5IGIgRmYoNDApNzUKLTIzMjkgeSBGZChybF9jYXRjaF9zKW8oaWcpbyh3aW4pbyhjaCk1IGIgRmUoLilzKC4paSguKWYoLilnKC4pZyguKWcoLilnCi0oLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKQotZyguKTE5IGIgRmYoNDApNzUgMjM3NSB5IEZkKHJsX2NoYXJfaXMpbyhfcSlvKHVvdClvKGVkKW8oX3ApdAotRmUoLilzKC4pNiBiKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLikKLWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLikxNyBiIEZmKDQ0KTc1IDI0MjEgeSBGZChybF9jbGVhbnVwKW8oX2EpbwotKGZ0ZSlvKHJfKW8oc2lnKW8obmFsKTcgYiBGZSguKWYoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLikKLWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pMjMgYiBGZig0MCk3NSAyNDY3IHkKLUZkKHJsX2NsZWFyX20pbyhlcylvKHNhZylvKGUpNiBiIEZlKC4pdCguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnCi0oLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKQotMTkgYiBGZigzMyk3NSAyNTEyIHkgRmQocmxfY2xlYXJfcClvKGVuKW8oZGluKW8oZ18pbyhpbnApbyh1dCk4Ci1iIEZlKC4pZSguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKQotaCguKWYoLilnKC4pMjQgYiBGZigzNSkxMDEyIDE0OSB5IEZkKHJsX2NsZWFyX3NpKW8oZ24pbyhhbHMpNgotYiBGZSguKXMoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLikKLWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLikyMCBiIEZmKDQxKTEwMTIKLTE5NiB5IEZkKHJsX2NvbXBsZXRlKTYgYiBGZSguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnCi0oLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKQotZyguKWcoLilnKC4pMjQgYiBGZig0MikxMDEyIDI0MiB5IEZkKHJsX2NvbXBsZXRlKW8oX2kpbyhudGUpbyhybilvKGFsKXMKLUZlKC4pdCguKTYgYiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pCi1nKC4pZyguKWcoLiloKC4pZiguKWcoLikxNyBiIEZmKDQyKTEwMTIgMjg4IHkgRmQocmxfY29tcGxldGUpbyhyXylvCi0ocXVvKW8odGUpbyhfY2gpbyhhcilvKGFjdClvKGVycyk1IGIgRmUoLil0KC4paCguKWcoLilnKC4pZyguKWcoLiloKC4pZgotKC4pZyguKWcoLilnKC4pZyguKTIwIGIgRmYoNDUpMTAxMiAzMzUgeSBGZChybF9jb21wbGV0ZSlvKHJfKW8od29yKW8KLShkXylvKGJyZSlvKGFrKW8oX2NoKW8oYXJhKW8oY3QpbyhlcnMpOCBiIEZlKC4pZSguKWcoLilnKC4paCguKWYoLilnKC4pCi0yNSBiIEZmKDQ1KTEwMTIgMzgxIHkgRmQocmxfY29tcGxldGkpbyhvbilvKF9hcClvKHBlKW8obmRfKW8oY2gpbyhhcmEpbwotKGN0ZSlvKHIpNSBiIEZlKC4pcyguKWkoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLikxOQotYiBGZig0NSkxMDEyIDQyNyB5IEZkKHJsX2NvbXBsZXRpKW8ob24pbyhfZGkpbyhzcClvKGxheSlvKF9tKW8oYXRjKW8KLShoZXMpbyhfaClvKG9vayk4IGIgRmUoLillKC4pZyguKWcoLiloKC4pZiguKWcoLikyNSBiCi1GZig0NSkxMDEyIDQ3NCB5IEZkKHJsX2NvbXBsZXRpKW8ob24pbyhfZW4pbyh0cilvKHlfZilvKHVuKW8oY3RpKW8ob24pcwotRmUoLilzKC4pNiBiKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLikxNyBiIEZmKDQyLCljKDQzKTEwMTIKLTUyMCB5IEZkKHJsX2NvbXBsZXRpKW8ob24pbyhfbWEpbyhyaylvKF9zeSlvKG1sKW8oaW5rKW8oX2RpKW8ocnMpdAotRmUoLilzKC4pNyBiKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLikxOCBiIEZmKDQ2KTEwMTIKLTU2NiB5IEZkKHJsX2NvbXBsZXRpKW8ob24pbyhfbWEpbyh0YylvKGhlcyk4IGIgRmUoLilmKC4pZiguKWcoLilnKC4pZwotKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pMjUKLWIgRmYoNDMpMTAxMiA2MTMgeSBGZChybF9jb21wbGV0aSlvKG9uKW8oX21vKW8oZGUpdCBGZSguKXQoLik2Ci1iKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYKLSguKWcoLilnKC4pZyguKWcoLilnKC4pMTkgYiBGZig0MykxMDEyIDY1OSB5IEZkKHJsX2NvbXBsZXRpKW8ob24pbyhfcXUpCi1vKGVyKW8oeV9pKW8odGUpbyhtcyk5IGIgRmUoLilzKC4pZCguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZgotKC4pZyguKWcoLilnKC4pZyguKWcoLikyMyBiIEZmKDQ1KTEwMTIgNzA1IHkgRmQocmxfY29tcGxldGkpbyhvbilvKF9zdSkKLW8ocHApbyhyZXMpbyhzXylvKGFwcClvKGVuZCk1IGIgRmUoLil0KC4paCguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcKLSguKWcoLilnKC4pZyguKTIwIGIgRmYoNDYpMTAxMiA3NTIgeSBGZChybF9jb21wbGV0aSlvKG9uKW8oX3R5KW8ocGUpdAotRmUoLil0KC4pNiBiKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLikKLWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pMTkgYiBGZig0NikxMDEyIDc5OCB5Ci1GZChybF9jb3B5X2tleSlvKG1hKW8ocCk4IGIgRmUoLilzKC4pZSguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmCi0oLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKQotaCguKTIxIGIgRmYoMjkpMTAxMiA4NDQgeSBGZChybF9jb3B5X3RleClvKHQpNiBiIEZlKC4pZyguKWgoLilmKC4pZyguKWcKLSguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pCi1nKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKTIzIGIgRmYoMzQpMTAxMiA4OTEgeQotRmQocmxfY3JsZil0IEZlKC4pdCguKTYgYiguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnCi0oLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKQotZiguKWcoLilnKC4pZyguKWcoLiloKC4pMTcgYiBGZigzMykxMDEyIDkzNyB5IEZkKHJsX2RlbGV0ZV90KW8oZXgpbyh0KTgKLWIgRmUoLilzKC4pZSguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pCi1mKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLikyMSBiCi1GZigzNCkxMDEyIDk4MyB5IEZkKHJsX2RlcHJlcF90KW8oZXIpbyhtX2Ypbyh1bilvKGN0aSlvKG9uKTcKLWIgRmUoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pCi1nKC4pZyguKTI0IGIgRmYoMjYpMTAxMiAxMDMwIHkgRmQocmxfZGVwcmVwX3QpbyhlcilvKG1pbilvKGFsKXQKLUZlKC4pdCguKTYgYiguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pCi1nKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKTE5IGIgRmYoMzUpMTAxMiAxMDc2Ci15IEZkKHJsX2RpbmcpdCBGZSguKXQoLik2IGIoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZwotKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLikKLWYoLilnKC4pZyguKWcoLilnKC4paCguKTE3IGIgRmYoMzYpMTAxMiAxMTIyIHkgRmQocmxfZGlyZWN0b3Ipbyh5XylvCi0oY29tKW8ocGwpbyhldGkpbyhvbilvKF9obylvKG9rKTcgYiBGZSguKXMoLilmKC4pZyguKWcoLilnKC4paCguKWYoLilnCi0oLilnKC4pZyguKWcoLilnKC4paCguKTIwIGIgRmYoNDQpMTAxMiAxMTY5IHkgRmQocmxfZGlzY2FyZF8pbyhrZSlvCi0oeW1hKW8ocCk2IGIgRmUoLilzKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZwotKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLikxOSBiIEZmKDI5KTEwMTIKLTEyMTUgeSBGZChybF9kaXNwYXRjaClvKGluKW8oZyk4IGIgRmUoLilzKC4pZSguKWgoLilmKC4pZyguKWcoLilnKC4pZwotKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLikKLWcoLilnKC4paCguKTIxIGIgRmYoMjUpMTAxMiAxMjYxIHkgRmQocmxfZGlzcGxheV8pbyhtYSlvKHRjaClvKF9sKW8KLShpc3QpOCBiIEZlKC4pZiguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmCi0oLilnKC4pZyguKWcoLilnKC4paCguKTI1IGIgRmYoMzYpMTAxMiAxMzA4IHkgRmQocmxfZG9fdW5kbyk4Ci1iIEZlKC4pZSguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKQotZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKTI0Ci1iIEZmKDMyKTEwMTIgMTM1NCB5IEZkKHJsX2RvbmUpdCBGZSguKXQoLik2IGIoLilnKC4pZyguKWgoLilmKC4pZyguKWcKLSguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pCi1nKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKTE3IGIgRmYoMjQpMTAxMgotMTQwMCB5IEZkKHJsX2VkaXRpbmdfKW8obW8pbyhkZSk3IGIgRmUoLilzKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4pZwotKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLikKLWcoLilnKC4pMjEgYiBGZigyOCkxMDEyIDE0NDcgeSBGZChybF9lbmQpNSBiIEZlKC4pdCguKWgoLilnKC4paCguKWYoLilnCi0oLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKQotZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLikxOAotYiBGZigyNCkxMDEyIDE0OTMgeSBGZChybF9lbmRfdW5kbylvKF9nKW8ocm91KW8ocCk2IGIKLUZlKC4pcyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcKLSguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pMTkgYiBGZigzMikxMDEyIDE1MzkKLXkgRmQocmxfZXJhc2VfZW0pbyhwdClvKHlfbClvKGluKW8oZSl0IEZlKC4pdCguKTYgYiguKWcoLilnKC4pZyguKWcoLiloCi0oLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pMTgKLWIgRmYoMjUpMTAxMiAxNTg2IHkgRmQocmxfZXZlbnRfaG8pbyhvayk4IGIgRmUoLilzKC4pZSguKWgoLilmKC4pZyguKWcKLSguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pCi1nKC4pZyguKWcoLiloKC4pZiguKWcoLikyMiBiIEZmKDI2KTEwMTIgMTYzMiB5IEZkKHJsX2V4ZWN1dGVfKW8obmUpbwotKHh0KTcgYiBGZSguKXMoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZwotKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pMjEKLWIgRmYoMzUpMTAxMiAxNjc4IHkgRmQocmxfZXhlY3V0aW4pbyhnXylvKGtleSlvKG1hKW8ocCl0Ci1GZSguKXQoLik2IGIoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKQotZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKTE4IGIgRmYoMjYpMTAxMiAxNzI1IHkgRmQocmxfZXhlY3V0aW4pbyhnXykKLW8obWFjKW8ocm8pdCBGZSguKXQoLik2IGIoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZgotKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLikxOSBiIEZmKDI3KTEwMTIKLTE3NzEgeSBGZChybF9leHBhbmRfcClvKHJvKW8obXB0KTYgYiBGZSguKXMoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnCi0oLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKQotZyguKTIwIGIgRmYoMzQpMTAxMiAxODE3IHkgRmQocmxfZXhwbGljaXQpbyhfYSlvKHJnKTcKLWIgRmUoLilzKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pCi1mKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKTIxIGIgRmYoMjgpMTAxMgotMTg2NCB5IEZkKHJsX2V4dGVuZF9sKW8oaW4pbyhlX2Ipbyh1ZilvKGZlcik4IGIgRmUoLilmKC4pZiguKWcoLilnKC4pZwotKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pMjUKLWIgRmYoMzYpMTAxMiAxOTEwIHkgRmQocmxfZmlsZW5hbWUpbyhfYylvKG9tcClvKGxlKW8odGlvKW8obl8pbyhkZXMpbwotKGlyZSlvKGQpNSBiIEZlKC4pcyguKWkoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLikxOQotYiBGZig0NikxMDEyIDE5NTYgeSBGZChybF9maWxlbmFtZSlvKF9jKW8ob21wKW8obGUpbyh0aW8pbyhuXylvKGZ1bilvCi0oY3RpKW8ob24pdCBGZSguKXMoLik3IGIoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKTE4Ci1iIEZmKDQzKTEwMTIgMjAwMyB5IEZkKHJsX2ZpbGVuYW1lKW8oX2QpbyhlcXUpbyhvdClvKGluZylvKF9mKW8odW5jKW8KLSh0aW8pbyhuKTUgYiBGZSguKXMoLilpKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pMTkKLWIgRmYoNDQpMTAxMiAyMDQ5IHkgRmQocmxfZmlsZW5hbWUpbyhfcSlvKHVvdClvKGVfKW8oY2hhKW8ocmEpbyhjdGUpbwotKHJzKTcgYiBGZSguKXMoLilmKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLikyMAotYiBGZig0NSkxMDEyIDIwOTUgeSBGZChybF9maWxlbmFtZSlvKF9xKW8odW90KW8oaW4pbyhnX2QpbyhlcylvKGlyZSlvCi0oZCk4IGIgRmUoLilzKC4pZSguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKTIxCi1iIEZmKDQ2KTEwMTIgMjE0MiB5IEZkKHJsX2ZpbGVuYW1lKW8oX3Epbyh1b3QpbyhpbilvKGdfZilvKHVuKW8oY3RpKW8KLShvbik3IGIgRmUoLilzKC4pZiguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pMjAKLWIgRmYoNDQpMTAxMiAyMTg4IHkgRmQocmxfZm9yY2VkX3UpbyhwZClvKGF0ZSlvKF9kKW8oaXNwKW8obGEpbyh5KTcKLWIgRmUoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pCi1mKC4pMjMgYiBGZigzMykxMDEyIDIyMzQgeSBGZChybF9mcmVlX2xpbilvKGVfKW8oc3RhKW8odGUpdAotRmUoLil0KC4pNiBiKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLikKLWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pMTkgYiBGZig0MCkxMDEyIDIyODEKLXkgRmQocmxfZnJlZV91bmQpbyhvXylvKGxpcylvKHQpNiBiIEZlKC4pcyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcKLSguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pCi0xOSBiIEZmKDMyKTEwMTIgMjMyNyB5IEZkKHJsX2Z1bmN0aW9uKW8oX2Qpbyh1bXApbyhlcil0Ci1GZSguKXQoLik2IGIoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKQotZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLikxOSBiIEZmKDMxKTEwMTIgMjM3MwoteSBGZChybF9mdW5jdGlvbilvKF9vKW8oZl9rKW8oZXkpbyhzZXEpOCBiIEZlKC4pZiguKWYoLilnKC4pZyguKWcoLilnCi0oLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKTI1Ci1iIEZmKDMxKTEwMTIgMjQyMCB5IEZkKHJsX2Z1bm1hcF9uKW8oYW0pbyhlcyk3IGIgRmUoLilzKC4pZiguKWcoLiloKC4pZgotKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLikKLWgoLilmKC4pZyguKWcoLilnKC4pMjEgYiBGZigzMSkxMDEyIDI0NjYgeSBGZChybF9nZW5lcmljXylvKGJpKW8obmQpNwotYiBGZSguKXMoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLikKLWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pMjEgYiBGZigzMCkxMDEyCi0yNTEyIHkgRmQocmxfZ2V0X2tleW0pbyhhcCk4IGIgRmUoLilzKC4pZSguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgKLSguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pCi1oKC4pZiguKWcoLikyMiBiIEZmKDI5KXAgZW9wCi0lJVBhZ2U6IDYxIDYzCi02MSA2MiBib3AgNzUgLTU4IGEgRnUoRilsKHVuY3Rpb24pMTYgYihhbmQpZihWKWwoYXJpYWJsZSlpKEluZGV4KTExODcKLWIoNjEpNzUgMTQ5IHkgRmQocmxfZ2V0X2tleSlvKG1hKW8ocF9iKW8oeV8pbyhuYW0pbyhlKTkKLWIgRmUoLilkKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pCi1mKC4pZyguKWcoLilnKC4pMjUgYiBGZigyOSk3NSAxOTYgeSBGZChybF9nZXRfa2V5KW8obWEpbyhwX24pbyhhbSlvKGUpNQotYiBGZSguKXMoLilpKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLikKLWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pMTggYiBGZigyOSk3NSAyNDIgeSBGZChybF9nZXRfc2NyKW8oZWUpCi1vKG5fcylvKGl6KW8oZSk1IGIgRmUoLilzKC4paSguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcKLSguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKTE4Ci1iIEZmKDQxKTc1IDI4OCB5IEZkKHJsX2dldF90ZXIpbyhtYylvKGFwKTggYiBGZSguKXMoLillKC4pZyguKWcoLilnKC4paAotKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLikKLWgoLilmKC4pZyguKWcoLilnKC4pMjEgYiBGZigzNyk3NSAzMzUgeSBGZChybF9nZXRjKXQKLUZlKC4pdCguKTYgYiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pCi1nKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcKLSguKWcoLilnKC4pMTcgYiBGZigzNSk3NSAzODEgeSBGZChybF9nZXRjX2Z1KW8obmMpbyh0aW8pbyhuKTYKLWIgRmUoLil0KC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pCi1nKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pMTkgYiBGZigyNik3NQotNDI3IHkgRmQocmxfZ251X3JlYSlvKGRsKW8oaW5lKW8oX3ApNSBiIEZlKC4pcyguKWkoLilmKC4pZyguKWcoLilnKC4pZwotKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLikKLWcoLikxOSBiIEZmKDI1KTc1IDQ3NCB5IEZkKHJsX2lnbm9yZV8pbyhjbylvKG1wbClvKGV0KW8oaW9uKW8oX2R1KW8ocGwpCi1vKGljYSlvKHRlKW8ocyk1IGIgRmUoLilzKC4paCguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pMTgKLWIgRmYoNDYpNzUgNTIwIHkgRmQocmxfaWdub3JlXylvKHNvKW8obWVfKW8oY28pbyhtcGwpbyhldGkpbyhvbilvKHNfZilvCi0odW4pbyhjdGkpbyhvbik3IGIgRmUoLilnKC4pZiguKWcoLilnKC4pZyguKTI0IGIgRmYoNDQpNzUKLTU2NiB5IEZkKHJsX2luaGliaXQpbyhfYylvKG9tcClvKGxlKW8odGlvKW8obik5IGIgRmUoLilkKC4pZyguKWcoLiloKC4pCi1mKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pMjUKLWIgRmYoNDcpNzUgNjEzIHkgRmQocmxfaW5pdGlhbClvKGl6KW8oZSk5IGIgRmUoLilzKC4pZCguKWcoLilnKC4paCguKWYKLSguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pCi1oKC4pZiguKWcoLilnKC4pZyguKWcoLikyMiBiIEZmKDM2KTc1IDY1OSB5IEZkKHJsX2luc2VydF8pbyhjbylvKG1wbClvCi0oZXQpbyhpb24pbyhzKTkgYiBGZSguKWQoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKQotZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLikyNSBiIEZmKDQzKTc1IDcwNSB5IEZkKHJsX2luc2VydF8pbyh0ZSkKLW8oeHQpOCBiIEZlKC4pcyguKWUoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnCi0oLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pMjEKLWIgRmYoMzQpNzUgNzUyIHkgRmQocmxfaW5zdHJlYSlvKG0pNyBiIEZlKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4pZwotKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLikKLWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLikyMyBiIEZmKDI1KTc1IDc5OCB5IEZkKHJsX2ludm9raW4pbyhnXylvCi0oa2V5KW8oc2Upbyhxcyl0IEZlKC4pcyguKTYgYiguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcKLSguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pMTcgYiBGZigzMSk3NQotODQ0IHkgRmQocmxfaW52b2tpbilvKGdfKW8oa2V5KW8oc2Upbyhxc18pbyhpbl8pbyhtYSlvKHApOAotYiBGZSguKXQoLillKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKTIxCi1iIEZmKDMxKTc1IDg5MSB5IEZkKHJsX2tpbGxfdGUpbyh4dCk2IGIgRmUoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnCi0oLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKQotZyguKWcoLilnKC4pZyguKWgoLilmKC4pMjIgYiBGZigzNCk3NSA5MzcgeSBGZChybF9sYXN0X2Z1KW8obmMpNgotYiBGZSguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLikKLWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pMjIKLWIgRmYoMjYpNzUgOTgzIHkgRmQocmxfbGlicmFyeSlvKF92KW8oZXJzKW8oaW8pbyhuKTUKLWIgRmUoLilzKC4paSguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pCi1nKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKTE4IGIgRmYoMjUpNzUgMTAzMCB5Ci1GZChybF9saW5lX2J1KW8oZmYpbyhlcik4IGIgRmUoLilzKC4pZSguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnCi0oLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKQotZyguKTIxIGIgRmYoMjQpNzUgMTA3NiB5IEZkKHJsX2xpc3RfZnUpbyhubSlvKGFwXylvKG5hKW8obWVzKXMKLUZlKC4pcyguKTYgYiguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pCi1mKC4pZyguKWcoLilnKC4pZyguKWgoLikxNiBiIEZmKDMxKTc1IDExMjIgeSBGZChybF9tYWNyb19iKW8oaW4pbyhkKTkKLWIgRmUoLilzKC4pZCguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pCi1oKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pMjIKLWIgRmYoMzcpNzUgMTE2OSB5IEZkKHJsX21hY3JvX2Qpbyh1bSlvKHBlcik2IGIgRmUoLil0KC4pZyguKWcoLilnKC4pZwotKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLikKLWcoLilnKC4paCguKWYoLilnKC4pMjAgYiBGZigzNyk3NSAxMjE1IHkgRmQocmxfbWFrZV9iYSlvKHJlKW8oX2tlKW8oeW0pCi1vKGFwKXQgRmUoLilzKC4pNiBiKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paAotKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLikxNyBiIEZmKDI5KTc1IDEyNjEKLXkgRmQocmxfbWFrZV9rZSlvKHltKW8oYXApOCBiIEZlKC4pcyguKWUoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pCi1nKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcKLSguKWcoLikyMSBiIEZmKDI5KTc1IDEzMDggeSBGZChybF9tYXJrKXQgRmUoLil0KC4pNiBiKC4pZyguKWcoLilnKC4pZwotKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLikKLWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLikxNwotYiBGZigyNCk3NSAxMzU0IHkgRmQocmxfbWVzc2FnZSk3IGIgRmUoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZwotKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLikKLWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLikyNCBiIEZmKDMzKTc1IDE0MDAgeSBGZChybF9tb2RpZnlpKW8obmcpNgotYiBGZSguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLikKLWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pMjIKLWIgRmYoMzIpNzUgMTQ0NyB5IEZkKHJsX25hbWVkX2Ypbyh1bilvKGN0aSlvKG9uKTUgYiBGZSguKXMoLilpKC4pZiguKWcKLSguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pCi1nKC4pZyguKWcoLilnKC4pMTkgYiBGZigzMSk3NSAxNDkzIHkgRmQocmxfbnVtX2NoYSlvKHJzKW8oX3RvKW8oX3IpbwotKGVhZClzIEZlKC4pcyguKTYgYiguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcKLSguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLikxNiBiIEZmKDI0KTc1IDE1MzkgeSBGZChybF9udW1lcmljKW8oX2EpCi1vKHJnKTggYiBGZSguKXMoLillKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZwotKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKTIxCi1iIEZmKDI4KTc1IDE1ODYgeSBGZChybF9vbl9uZXdfKW8obGkpbyhuZSk4IGIgRmUoLilzKC4pZSguKWcoLilnKC4pZyguKQotaCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnCi0oLiloKC4pZiguKWcoLilnKC4pZyguKTIxIGIgRmYoMzMpNzUgMTYzMiB5IEZkKHJsX29uX25ld18pbyhsaSlvKG5lXylvCi0od2kpbyh0aF8pbyhwcm8pbyhtcClvKHQpOCBiIEZlKC4pdCguKWUoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZwotKC4pZyguKWcoLilnKC4paCguKWYoLikyMSBiIEZmKDMzKTc1IDE2NzggeSBGZChybF9vdXRzdHJlKW8oYW0pNgotYiBGZSguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLikKLWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pMjIKLWIgRmYoMjYpNzUgMTcyNSB5IEZkKHJsX3BhcnNlX2EpbyhuZClvKF9iaSlvKG5kKTUgYiBGZSguKXMoLilpKC4pZiguKWcKLSguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pCi1nKC4pZyguKWcoLilnKC4pMTkgYiBGZigzMSk3NSAxNzcxIHkgRmQocmxfcGVuZGluZylvKF9pKW8obnB1KW8odCk2Ci1iIEZlKC4pdCguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKQotZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKTE5IGIgRmYoMjQpNzUKLTE4MTcgeSBGZChybF9wb2ludClzIEZlKC4pcyguKTcgYiguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZwotKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLikKLWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLikxNiBiIEZmKDI0KTc1IDE4NjQgeSBGZChybF9wb3NzaWJsKW8oZV8pbwotKGNvbSlvKHBsKW8oZXRpKW8ob25zKTcgYiBGZSguKWYoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLikKLWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pMjMgYiBGZig0Mik3NSAxOTEwIHkKLUZkKHJsX3ByZV9pbnApbyh1dClvKF9obylvKG9rKTUgYiBGZSguKXMoLilpKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pCi1mKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKTE5Ci1iIEZmKDI2KTc1IDE5NTYgeSBGZChybF9wcmVwX3RlKW8ocm0pbyhfZnUpbyhuYylvKHRpbylvKG4pOQotYiBGZSguKWQoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLikKLWYoLilnKC4pZyguKWcoLikyNSBiIEZmKDI2KTc1IDIwMDMgeSBGZChybF9wcmVwX3RlKW8ocm0pbyhpbmEpbyhsKTYKLWIgRmUoLil0KC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pCi1nKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pMTkgYiBGZigzNSk3NQotMjA0OSB5IEZkKHJsX3Byb21wdCk4IGIgRmUoLillKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZwotKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLikKLWcoLilnKC4pZyguKWcoLiloKC4pMjQgYiBGZigyNSk3NSAyMDk1IHkgRmQocmxfcHVzaF9tYSlvKGNyKW8ob19pKW8obnApCi1vKHV0KXQgRmUoLilzKC4pNiBiKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paAotKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLikxNyBiIEZmKDM0KTc1IDIxNDIKLXkgRmQocmxfcmVhZF9pbilvKGl0KW8oX2ZpKW8obGUpNSBiIEZlKC4pcyguKWkoLilmKC4pZyguKWcoLilnKC4pZyguKWgKLSguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pCi0xOSBiIEZmKDMxKTc1IDIxODggeSBGZChybF9yZWFkX2tlKW8oeSk3IGIgRmUoLilmKC4pZyguKWcoLiloKC4pZiguKWcKLSguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pCi1nKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKTIzIGIgRmYoMzQpNzUgMjIzNCB5Ci1GZChybF9yZWFkbGluKW8oZV8pbyhuYW0pbyhlKTYgYiBGZSguKXQoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZwotKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLikKLTE5IGIgRmYoMjUpNzUgMjI4MSB5IEZkKHJsX3JlYWRsaW4pbyhlXylvKHN0YSlvKHRlKTUKLWIgRmUoLilzKC4paSguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pCi1nKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLikxOSBiIEZmKDI3KTc1IDIzMjcKLXkgRmQocmxfcmVhZGxpbilvKGVfKW8odmVyKW8oc2kpbyhvbil0IEZlKC4pcyguKTYgYiguKWgoLilmKC4pZyguKWcoLilnCi0oLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pMTcKLWIgRmYoMjUpNzUgMjM3MyB5IEZkKHJsX3JlZGlzcGwpbyhheSk2IGIgRmUoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnCi0oLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKQotZyguKWcoLilnKC4pZyguKWgoLilmKC4pMjIgYiBGZigzMyk3NSAyNDIwIHkgRmQocmxfcmVkaXNwbClvKGF5KW8oX2Z1KW8KLShuYylvKHRpbylvKG4pOSBiIEZlKC4pZCguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pCi1nKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKTI1IGIgRmYoMjYpNzUgMjQ2NiB5Ci1GZChybF9yZXBsYWNlKW8oX2wpbyhpbmUpNiBiIEZlKC4pdCguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZwotKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLikKLTIwIGIgRmYoMzYpNzUgMjUxMiB5IEZkKHJsX3Jlc2V0X2EpbyhmdClvKGVyXylvKHNpKW8oZ25hKW8obCk5Ci1iIEZlKC4pZCguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKQotZiguKWcoLilnKC4pZyguKTI1IGIgRmYoNDApMTAxMiAxNDkgeSBGZChybF9yZXNldF9saSlvKG5lKW8oX3N0KW8oYXQpbwotKGUpdCBGZSguKXQoLik2IGIoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnCi0oLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKTE4IGIgRmYoMzMpMTAxMiAxOTUKLXkgRmQocmxfcmVzZXRfdGUpbyhybSlvKGluYSlvKGwpNiBiIEZlKC4pcyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcKLSguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pCi0xOSBiIEZmKDM1KTEwMTIgMjQxIHkgRmQocmxfcmVzaXplX3QpbyhlcilvKG1pbilvKGFsKXQKLUZlKC4pdCguKTYgYiguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pCi1nKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKTE5IGIgRmYoNDEpMTAxMiAyODcgeQotRmQocmxfcmVzdG9yZV8pbyhwcilvKG9tcClvKHQpNiBiIEZlKC4pcyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLikKLWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pMTkKLWIgRmYoMzQpMTAxMiAzMzMgeSBGZChybF9zYXZlX3BybylvKG1wKW8odCk4IGIgRmUoLilzKC4pZSguKWgoLilmKC4pZwotKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLikKLWYoLilnKC4pZyguKWcoLilnKC4paCguKTIxIGIgRmYoMzMpMTAxMiAzNzkgeSBGZChybF9zZXRfa2V5KTgKLWIgRmUoLillKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pCi1nKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pMjQKLWIgRmYoMzApMTAxMiA0MjQgeSBGZChybF9zZXRfa2V5YilvKG9hKW8ocmRfKW8oaW4pbyhwdXQpbyhfdClvKGltZSlvCi0ob3V0KTUgYiBGZSguKXQoLiloKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKTIwCi1iIEZmKDM1KTEwMTIgNDcwIHkgRmQocmxfc2V0X2tleW0pbyhhcCk4IGIgRmUoLilzKC4pZSguKWgoLilmKC4pZyguKWcKLSguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pCi1nKC4pZyguKWcoLiloKC4pZiguKWcoLikyMiBiIEZmKDI5KTEwMTIgNTE2IHkgRmQocmxfc2V0X3BhcmUpbyhuXylvCi0oYmxpKW8obmspbyhfdGkpbyhtZSlvKG91dCk3IGIgRmUoLil0KC4pZiguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcKLSguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKTIyIGIgRmYoMzcpMTAxMiA1NjIgeSBGZChybF9zZXRfcHJvbSlvKHB0KTgKLWIgRmUoLilzKC4pZSguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pCi1nKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pMjIKLWIgRmYoMzQpMTAxMiA2MDggeSBGZChybF9zZXRfc2NyZSlvKGVuKW8oX3NpKW8oemUpdCBGZSguKXQoLik2Ci1iKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYKLSguKWcoLilnKC4pZyguKWcoLilnKC4pMTkgYiBGZig0MSkxMDEyIDY1NCB5IEZkKHJsX3NldF9zaWduKW8oYWwpbyhzKTgKLWIgRmUoLilzKC4pZSguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pCi1mKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLikyMSBiCi1GZig0MSkxMDEyIDcwMCB5IEZkKHJsX3Nob3dfY2hhKW8ocik2IGIgRmUoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnCi0oLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKQotZyguKWcoLiloKC4pZiguKWcoLilnKC4pMjMgYiBGZigzMykxMDEyIDc0NSB5IEZkKHJsX3NwZWNpYWxfKW8ocHIpbwotKGVmaSlvKHhlKW8ocyl0IEZlKC4pdCguKTYgYiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLikKLWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pMTggYiBGZig0NSkxMDEyCi03OTEgeSBGZChybF9zdGFydHVwXylvKGhvKW8ob2spNyBiIEZlKC4pcyguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWcKLSguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pCi1nKC4pZyguKTIxIGIgRmYoMjYpMTAxMiA4MzcgeSBGZChybF9zdHVmZl9jaClvKGFyKTggYgotRmUoLilzKC4pZSguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZwotKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pMjIKLWIgRmYoMzUpMTAxMiA4ODMgeSBGZChybF90ZXJtaW5hbClvKF9uKW8oYW1lKTYgYiBGZSguKXMoLilnKC4pZyguKWcoLiloCi0oLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKQotaCguKWYoLilnKC4pZyguKTIwIGIgRmYoMjUpMTAxMiA5MjkgeSBGZChybF90dHlfc2V0XylvKGRlKW8oZmF1KW8obHQpbwotKF9iaSlvKG5kKW8oaW5nKW8ocyk4IGIgRmUoLilzKC4pZSguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZwotKC4paCguKWYoLilnKC4pMjEgYiBGZigzNSkxMDEyIDk3NSB5IEZkKHJsX3VuYmluZF9jKW8ob20pbyhtYW4pbyhkXylvCi0oaW5fKW8obWEpbyhwKTcgYiBGZSguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKQotZyguKWcoLilnKC4paCguKWYoLikyMyBiIEZmKDMwKTEwMTIgMTAyMCB5IEZkKHJsX3VuYmluZF9mKW8odW4pbyhjdGkpbwotKG9uKW8oX2luKW8oX20pbyhhcCk5IGIgRmUoLilzKC4pZCguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZgotKC4pZyguKWcoLilnKC4pZyguKWcoLikyMyBiIEZmKDMwKTEwMTIgMTA2NiB5IEZkKHJsX3VuYmluZF9rKW8oZXkpOAotYiBGZSguKXMoLillKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLikKLWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLikyMgotYiBGZigzMCkxMDEyIDExMTIgeSBGZChybF91bmJpbmRfaylvKGV5KW8oX2luKW8oX20pbyhhcClzCi1GZSguKXQoLik2IGIoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKQotZyguKWcoLilnKC4paCguKWYoLilnKC4pMTcgYiBGZigzMCkxMDEyIDExNTggeSBGZChybF91c2VybmFtZSlvKF9jKW8KLShvbXApbyhsZSlvKHRpbylvKG5fKW8oZnVuKW8oY3RpKW8ob24pdCBGZSguKXMoLik3IGIoLilmKC4pZyguKWcoLilnKC4pCi1nKC4paCguKWYoLilnKC4pMTggYiBGZig0MykxMDEyIDEyMDQgeSBGZChybF92YXJpYWJsZSlvKF9iKW8oaW5kKTYKLWIgRmUoLilzKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pCi1oKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pMjAgYiBGZigzNykxMDEyCi0xMjUwIHkgRmQocmxfdmFyaWFibGUpbyhfZClvKHVtcClvKGVyKXQgRmUoLil0KC4pNiBiKC4pZyguKWcoLilnKC4paCguKQotZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnCi0oLikxOSBiIEZmKDM3KTEwMTIgMTM4MCB5IEZzKFMpMTAxMiAxNDQxIHkgRmQoc2VsZi1pbnNlcnQpOQotYihcKGEsKWooYiwpZyhBLClnKDEsKWcoISwpZyguLi4pbyhcKSk2IGIgRmUoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLikKLWgoLilmKC4pZyguKWcoLilnKC4pMjAgYiBGZigxNCkxMDEyIDE0ODcgeSBGZChzZXQtbWFyaykxMAotYihcKEMtQFwpKWcgRmUoLiljKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZwotKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLikyNQotYiBGZigxNykxMDEyIDE1MzMgeShzaG8pbyh3LWFsbC1pZi1hbSlvKGJpZ3UpcShvdXMpMTQKLWIgRmUoLik2IGIoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcKLSguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pMjMgYiBGZig3KTEwMTIgMTU3OQoteSBGZChzdGFydC1rYmQtbSlvKGFjKW8ocm8pOSBiKFwoQy14KWooXChcKSljIEZlKC4pZCguKWkoLilmKC4pZyguKWcoLikKLWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pMjIKLWIgRmYoMTcpMTAxMiAxNzAxIHkgRnMoVCkxMDEyIDE3NjMgeSBGZCh0YWItaW5zZXJ0KTkKLWIoXChNLSkxMjgxIDE3NjEgeSBGbihoKXAgMTI5MiAxNzM1IDc0IDIgdiAxMjkyIDE3NjMKLWEgRm0oVCltKEFCKXAgMTI5MiAxNzcwIFYgMTM2NCAxNzYxIGEgRm4oaSkxMzc5IDE3NjMKLXkgRmQoXCkpZSBGZSguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pCi1mKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKTIwIGIgRmYoMTQpMTAxMiAxODA4Ci15IEZkKHRpbGRlLWV4cGFuKW8oZCkxMCBiKFwoTS1+XCkpZiBGZSguKXMoLillKC4pZiguKWcoLilnKC4pZyguKWcoLilnCi0oLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pMjIKLWIgRmYoMTcpMTAxMiAxODU0IHkgRmQodHJhbnNwb3NlLWMpbyhoYSlvKHJzKTkgYihcKEMtdFwpKWQKLUZlKC4pZiguKWgoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgKLSguKWYoLilnKC4pZyguKWcoLikyMCBiIEZmKDE0KTEwMTIgMTkwMCB5IEZkKHRyYW5zcG9zZS13KW8ob3Ipbyhkcyk5Ci1iKFwoTS10XCkpZCBGZSguKWYoLiloKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnCi0oLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pMjAgYiBGZigxNCkxMDEyIDIwMzAgeQotRnMoVSkxMDEyIDIwOTIgeSBGZCh1bmRvKTEyIGIoXChDLV8pZihvciloKEMteClnKEMtdVwpKWMKLUZlKC4pdCguKWUoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcKLSguKWcoLiloKC4pZiguKWcoLilnKC4pMjEgYiBGZigxNykxMDEyIDIxMzcgeSBGZCh1bml2ZXJzYWwtYSlvKHJnKW8KLSh1bWUpbyhudCk5IGIoXChcKSlkIEZlKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmCi0oLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLikyMCBiIEZmKDE2KTEwMTIKLTIxODMgeSBGZCh1bml4LWxpbmUtZClvKGlzKW8oY2FyKW8oZCkxMCBiKFwoQy11XCkpNSBiCi1GZSguKXQoLiloKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnCi0oLiloKC4pZiguKTE4IGIgRmYoMTUpMTAxMiAyMjI5IHkgRmQodW5peC13b3JkLXIpbyh1YilvKG91dCk5Ci1iKFwoQy13XCkpZCBGZSguKXQoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnCi0oLilnKC4pZyguKWcoLiloKC4pZiguKWcoLikxOSBiIEZmKDE1KTEwMTIgMjI3NSB5IEZkKHVwY2FzZS13b3JkKTkKLWIoXChNLXVcKSllIEZlKC4pZiguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWgKLSguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pMjMgYiBGZigxNCkxMDEyCi0yNDA1IHkgRnMoVikxMDEyIDI0NjYgeSBGZCh2aS1lZGl0aW5nLSlvKG1vKW8oZGUpOSBiKFwoTS1DLWpcKSljCi1GZSguKXQoLiloKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnCi0oLiloKC4pZiguKTE4IGIgRmYoMTgpMTAxMiAyNTEyIHkodmlzaWJsZS1zdGF0cyljIEZlKC4pNgotYiguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnCi0oLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLikyNAotYiBGZig3KXAgZW9wCi0lJVBhZ2U6IDYyIDY0Ci02MiA2MyBib3AgNzUgLTU4IGEgRnUoNjIpMTI5OSBiKEdOVSkxNSBiKFJlYWRsaW5lKWgoTGlicmFyeSk3NQotMTQ5IHkgRnMoWSk3NSAyNDIgeSBGZCh5YW5rKTExIGIoXChDLXlcKSk1IGIgRmUoLilnKC4paCguKWcoLilnKC4pZyguKWgKLSguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pCi1oKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pMTggYiBGZigxNikxMDEyCi0xNDkgeSBGZCh5YW5rLWxhc3QtYSlvKHJnKTkgYihcKE0tLilpKG9yKWgoTS1fXCkpYyBGZSguKWYoLilmKC4pZyguKWcKLSguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKTIzCi1iIEZmKDEzKTEwMTIgMTk2IHkgRmQoeWFuay1udGgtYXIpbyhnKTEwIGIoXChNLUMteVwpKWQKLUZlKC4pcyguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYKLSguKWcoLilnKC4pZyguKWcoLiloKC4pMjAgYiBGZigxMykxMDEyIDI0MiB5IEZkKHlhbmstcG9wKTEwCi1iKFwoTS15XCkpZyBGZSguKWMoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnCi0oLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKTI1Ci1iIEZmKDE2KXAgZW9wCi0lJVBhZ2U6IC0xIDY1Ci0tMSA2NCBib3AgMTg2MiAtNTggYSBGdShpKTc1IDE0OSB5IEZxKFQpLTcgYihhYmxlKTI3Ci1iKG9mKWYoQ29uKW4odGVuKW4odHMpNzUgMzIwIHkgRnMoMSk2NyBiKENvbW1hbmQpMjIgYihMaW5lKWkoRWRpdGluZylkCi1GYSguKTEwIGIoLiloKC4pZiguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWgKLSguKWYoLilnKC4pZyguKTQyIGIgRnMoMSkyMjQgMzg5IHkgRnUoMS4xKWooSW4pbyh0cm8pcShkdWN0aW9uKTE2Ci1iKHRvKWYoTGluZSloKEVkaXRpbmcpZSBGbCguKTcgYiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKQotZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilnKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmCi0oLikyNyBiIEZ1KDEpMjI0IDQ0NCB5KDEuMik0NSBiKFJlYWRsaW5lKTE2IGIoSW4pbyh0ZXJhY3Rpb24pOAotYiBGbCguKWcoLilnKC4pZiguKWgoLilmKC4paCguKWcoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLikKLWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZgotKC4paCguKWYoLikyMyBiIEZ1KDEpMzc0IDQ5OSB5KDEuMi4xKTQ0IGIoUmVhZGxpbmUpMTYKLWIoQmFyZSlmKEVzc2VuKW8odGlhbHMpZiBGbCguKTcgYiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paAotKC4pZyguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKTI3Ci1iIEZ1KDEpMzc0IDU1MyB5KDEuMi4yKTQ0IGIoUmVhZGxpbmUpMTYgYihNbylvKHYpbyhlbWVuKW8odCllKENvbW1hbmRzKQotNyBiIEZsKC4pZyguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilnKC4pZgotKC4paCguKTIxIGIgRnUoMikzNzQgNjA4IHkoMS4yLjMpNDQgYihSZWFkbGluZSkxNiBiKEtpbGxpbmcpaShDb21tYW5kcykKLTExIGIgRmwoLiljKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloCi0oLilmKC4paCguKWYoLiloKC4pMjUgYiBGdSgyKTM3NCA2NjMgeSgxLjIuNCk0NCBiKFJlYWRsaW5lKTE2Ci1iKEFyZ3VtZW4pbyh0cyljIEZsKC4pYyguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paAotKC4pZiguKWgoLilnKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLikyNwotYiBGdSgzKTM3NCA3MTggeSgxLjIuNSk0NCBiKFNlYXJjKW8oaGluZykxNiBiKGZvcillKENvbW1hbmRzKWgoaW4paAotKHRoZSlmKEhpc3RvcnkpZSBGbCguKTggYiguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pMjcKLWIgRnUoMykyMjQgNzczIHkoMS4zKTQ1IGIoUmVhZGxpbmUpMTYgYihJbml0KWgoRmlsZSllCi1GbCguKTcgYiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilnKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKQotaCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmCi0oLiloKC4pZiguKWgoLilmKC4pMjkgYiBGdSg0KTM3NCA4MjcgeSgxLjMuMSk0NCBiKFJlYWRsaW5lKTE2Ci1iKEluaXQpZyhGaWxlKWgoU3luKW8odGF4KTcgYiBGbCguKWcoLilnKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKQotZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLikyMQotYiBGdSg0KTM3NCA4ODIgeSgxLjMuMik0NCBiKENvbmRpdGlvbmFsKTE2IGIoSW5pdClnKENvbnN0cnVjdHMpNQotYiBGbCguKWkoLilnKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLikKLWgoLilmKC4paCguKWcoLilmKC4pMTkgYiBGdSg5KTM3NCA5MzcgeSgxLjMuMyk0NCBiKFNhbXBsZSkxNgotYihJbml0KWcoRmlsZSkxMSBiIEZsKC4pZSguKWUoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZyguKWYoLiloCi0oLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKQotaCguKWYoLikyNiBiIEZ1KDkpMjI0IDk5MiB5KDEuNCk0NSBiKEJpbmRhYmxlKTE3IGIoUmVhZGxpbmUpZyhDb21tYW5kcykKLTYgYiBGbCguKWgoLilnKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWcoLilmKC4paCguKWYoLiloKC4pZiguKWgKLSguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLikyMSBiIEZ1KDEyKTM3NAotMTA0NiB5KDEuNC4xKTQ0IGIoQ29tbWFuZHMpMTQgYihGKWwob3IpaChNbylvKHZpbmcpZQotRmwoLik3IGIoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilnKC4pZiguKWgoLilmKC4paCguKWYoLikKLWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLikyOCBiIEZ1KDEyKTM3NCAxMTAxIHkoMS40LjIpNDQKLWIoQ29tbWFuZHMpMTQgYihGKWwob3IpaChNYW5pcHVsYXRpbmcpaShUaGUpZShIaXN0b3J5KTkKLWIgRmwoLillKC4paCguKWYoLiloKC4pZiguKWgoLikyNCBiIEZ1KDEyKTM3NCAxMTU2IHkoMS40LjMpNDQKLWIoQ29tbWFuZHMpMTQgYihGKWwob3IpaChDaGFuZ2luZyloKFQpbChleHQpZSBGbCguKTgKLWIoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLikzMAotYiBGdSgxNCkzNzQgMTIxMSB5KDEuNC40KTQ0IGIoS2lsbGluZykxOCBiKEFuZCllKFkpbChhbmtpbmcpOQotYiBGbCguKWUoLiloKC4pZiguKWgoLilnKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLikKLWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLikyNCBiIEZ1KDE1KTM3NAotMTI2NiB5KDEuNC41KTQ0IGIoU3ApcShlY2lmeWluZykxNyBiKE51bWVyaWMpZihBcmd1bWVuKW8odHMpYwotRmwoLiljKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZyguKWYoLiloKC4pMjcKLWIgRnUoMTYpMzc0IDEzMjAgeSgxLjQuNik0NCBiKExldHRpbmcpMTUgYihSZWFkbGluZSlpKFQpbyh5cClxKGUpZShGKWwKLShvcilnKFkpbChvdSkxMCBiIEZsKC4pZCguKWgoLilmKC4paCguKWcoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4pCi1oKC4pZiguKWgoLilmKC4pMjUgYiBGdSgxNikzNzQgMTM3NSB5KDEuNC43KTQ0IGIoS2V5YilxKG9hcmQpMTUKLWIoTWFjcm9zKTYgYiBGbCguKWgoLilnKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmCi0oLiloKC4pZiguKWgoLilnKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLikyMQotYiBGdSgxNykzNzQgMTQzMCB5KDEuNC44KTQ0IGIoU29tZSkxNSBiKE1pc2NlbGxhbmVvdXMpaShDb21tYW5kcyk3Ci1iIEZsKC4pZyguKWcoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKQotMjIgYiBGdSgxNykyMjQgMTQ4NSB5KDEuNSk0NSBiKFJlYWRsaW5lKTE2IGIodmkpZyhNbylxKGRlKWUKLUZsKC4pNyBiKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pCi1mKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilnKC4pZiguKWgoLilmKC4paCguKWYKLSguKWgoLilmKC4paCguKTI4IGIgRnUoMTgpNzUgMTYwNiB5IEZzKDIpNjcgYihQcm9ncmFtbWluZykyMwotYih3aXRoKWcoR05VKWYoUmVhZGxpbmUpMTIgYiBGYSguKWYoLilnKC4pZiguKWcoLilnKC4pZyguKWgoLilmKC4pMzUKLWIgRnMoMjEpMjI0IDE2NzUgeSBGdSgyLjEpNDUgYihCYXNpYykxNiBiKEJlaGEpbyh2aW9yKTgKLWIgRmwoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pCi1mKC4paCguKWYoLiloKC4pZiguKWgoLilnKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYKLSguKWgoLilmKC4paCguKWYoLiloKC4pZiguKTIzIGIgRnUoMjEpMjI0IDE3MjkgeSgyLjIpNDUKLWIoQ3VzdG9tKTE0IGIoRilsKHVuY3Rpb25zKTcgYiBGbCguKWkoLilmKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZgotKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLikKLWYoLiloKC4pZiguKWgoLilmKC4paCguKWcoLilmKC4paCguKWYoLiloKC4pMjIgYiBGdSgyMikzNzQKLTE3ODQgeSgyLjIuMSk0NCBiKFJlYWRsaW5lKTE2IGIoVClvKHlwKXEoZWRlZnMpOSBiIEZsKC4pZyguKWUoLiloKC4pZgotKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLikKLWYoLiloKC4pZiguKWgoLilnKC4pZiguKWgoLikyNCBiIEZ1KDIzKTM3NCAxODM5IHkoMi4yLjIpNDQKLWIoVylsKHJpdGluZykxNiBiKGEpZShOZXcpaShGKWwodW5jdGlvbik2IGIgRmwoLilpKC4pZiguKWgoLilmKC4paCguKWYKLSguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilnKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4pCi0yMSBiIEZ1KDIzKTIyNCAxODk0IHkoMi4zKTQ1IGIoUmVhZGxpbmUpMTYgYihWKWwoYXJpYWJsZXMpZwotRmwoLik4IGIoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLikKLWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZwotKC4pZiguKWgoLikyOSBiIEZ1KDI0KTIyNCAxOTQ5IHkoMi40KTQ1IGIoUmVhZGxpbmUpMTYKLWIoQ29uKW8odilvKGVuaWVuY2UpaChGKWwodW5jdGlvbnMpNyBiIEZsKC4paSguKWUoLiloKC4pZiguKWgoLilmKC4paAotKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLikKLTIzIGIgRnUoMjgpMzc0IDIwMDMgeSgyLjQuMSk0NCBiKE5hbWluZykxNSBiKGEpZyhGKWwodW5jdGlvbillCi1GbCguKTcgYiguKWgoLilnKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKQotaCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLikyNyBiIEZ1KDI4KTM3NAotMjA1OCB5KDIuNC4yKTQ0IGIoU2VsZWN0aW5nKTE3IGIoYSllKEtleW1hcCk2IGIgRmwoLiloKC4paCguKWcoLilmKC4paAotKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLikKLWgoLilmKC4paCguKWYoLiloKC4pMjEgYiBGdSgyOSkzNzQgMjExMyB5KDIuNC4zKTQ0IGIoQmluZGluZykxNwotYihLZXlzKTUgYiBGbCguKWooLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmCi0oLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZyguKWYoLiloKC4pZiguKQotaCguKWYoLikyMCBiIEZ1KDMwKTM3NCAyMTY4IHkoMi40LjQpNDQgYihBc3NvKXEoY2lhdGluZykxNgotYihGKWwodW5jdGlvbilnKE5hbWVzKWYoYW5kKWcoQmluZGluZ3MpOCBiIEZsKC4paCguKWYoLilmKC4paCguKWYoLiloCi0oLikyMyBiIEZ1KDMxKTM3NCAyMjIyIHkoMi40LjUpNDQgYihBbGxvKW8od2luZykxNiBiKFVuZG9pbmcpZgotRmwoLik4IGIoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWcoLikKLWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKTI5IGIKLUZ1KDMyKTM3NCAyMjc3IHkoMi40LjYpNDQgYihSZWRpc3BsYSlvKHkpMTAgYiBGbCguKWUoLilnKC4pZyguKWYoLiloKC4pCi1mKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgKLSguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLikyNgotYiBGdSgzMykzNzQgMjMzMiB5KDIuNC43KTQ0IGIoTW8pcShkaWZ5aW5nKTE2IGIoVClsKGV4dCk3Ci1iIEZsKC4pZyguKWcoLiloKC4pZiguKWgoLilmKC4paCguKWcoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKQotZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4pMjIKLWIgRnUoMzQpMzc0IDIzODcgeSgyLjQuOCk0NCBiKENoYXJhY3RlcikxNCBiKElucHV0KWMKLUZsKC4pZiguKWUoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgKLSguKWYoLiloKC4pZyguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLikyNQotYiBGdSgzNCkzNzQgMjQ0MiB5KDIuNC45KTQ0IGIoVClsKGVybWluYWwpMTYgYihNYW5hZ2VtZW4pbyh0KTExCi1iIEZsKC4pYyguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZyguKWYoLiloKC4pZiguKQotaCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLikyNyBiIEZ1KDM1KTM3NCAyNDk2IHkoMi40LjEwKTQzCi1iKFV0aWxpdClvKHkpMTcgYihGKWwodW5jdGlvbnMpYyBGbCguKTcgYiguKWgoLilnKC4pZiguKWgoLilmKC4paCguKWYKLSguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pCi1mKC4paCguKWYoLikyOCBiIEZ1KDM2KTM3NCAyNTUxIHkoMi40LjExKTQzIGIoTWlzY2VsbGFuZW91cykxOAotYihGKWwodW5jdGlvbnMpNiBiIEZsKC4paSguKWcoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloCi0oLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pMjEgYiBGdSgzNykzNzQKLTI2MDYgeSgyLjQuMTIpNDMgYihBbHRlcm5hdGUpMTYgYihJbilvKHRlcmZhY2UpZiBGbCguKTcKLWIoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilnKC4pZgotKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLikzMCBiIEZ1KDM3KTM3NCAyNjYxCi15KDIuNC4xMyk0MyBiKEEpMTYgYihSZWFkbGluZSlnKEV4YW1wbGUpOSBiIEZsKC4pZiguKWYoLiloKC4pZiguKWgoLilnCi0oLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKQotaCguKWYoLikyNCBiIEZ1KDM4KXAgZW9wCi0lJVBhZ2U6IC0yIDY2Ci0tMiA2NSBib3AgNzUgLTU4IGEgRnUoaWkpMTMyMSBiKEdOVSkxNSBiKFJlYWRsaW5lKWgoTGlicmFyeSkyMjQKLTQyIHkoMi41KTQ1IGIoUmVhZGxpbmUpMTYgYihTaWduYWwpaChIYW5kbGluZykxMiBiIEZsKC4pYyguKWcoLilmKC4paAotKC4pZiguKWgoLilnKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLikKLWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKTI3IGIgRnUoMzkpMjI0IDk2Ci15KDIuNik0NSBiKEN1c3RvbSkxNCBiKENvbXBsZXRlcnMpZiBGbCguKTggYiguKWYoLiloKC4pZiguKWgoLilmKC4paCguKQotZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZyguKWYoLiloKC4pZiguKWgoLilmCi0oLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4pMjggYiBGdSg0MSkzNzQKLTE1MSB5KDIuNi4xKTQ0IGIoSG8pbyh3KTE0IGIoQ29tcGxldGluZylpKFcpbChvcmtzKTEwCi1iIEZsKC4pZCguKWcoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilnKC4pZiguKWgoLilmKC4paCguKQotZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKTI1IGIgRnUoNDEpMzc0IDIwNiB5KDIuNi4yKTQ0Ci1iKENvbXBsZXRpb24pMTYgYihGKWwodW5jdGlvbnMpNiBiIEZsKC4paSguKWcoLilmKC4paCguKWYoLiloKC4pZiguKWgKLSguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZyguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pCi0yMSBiIEZ1KDQyKTM3NCAyNjEgeSgyLjYuMyk0NCBiKENvbXBsZXRpb24pMTYgYihWKWwoYXJpYWJsZXMpYwotRmwoLiljKC4pZiguKWgoLilnKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZgotKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLikyNyBiIEZ1KDQzKTM3NCAzMTUKLXkoMi42LjQpNDQgYihBKTE1IGIoU2hvcnQpZyhDb21wbGV0aW9uKWgoRXhhbXBsZSk1IGIKLUZsKC4paiguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgKLSguKWYoLikyMCBiIEZ1KDQ3KTc1IDQzNyB5IEZzKENvbmNlcHQpaShJbmRleCkxMCBiIEZhKC4paSguKWUoLilnKC4pZwotKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4paCguKWYoLikKLWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKTMzIGIgRnMoNTcpNzUgNTcyCi15KEYpLTYgYih1bmN0aW9uKTI1IGIoYW5kKWQoViktNiBiKGFyaWFibGUpMjQgYihJbmRleCk5Ci1iIEZhKC4paSguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKQotZyguKTMyIGIgRnMoNTkpcCBlb3AKLSUlVHJhaWxlcgorVGVYRGljdCBiZWdpbiAyIDEgYm9wIDE1MCAzMDI0IGEgRnQoVGhpcykzMiBiKG1hbiltKHVhbCloKGRlc2NyaWIpcyhlcykKK2YodGhlKWgoR05VKWgoUmVhZGxpbmUpZihMaWJyYXJ5KWYoXCh2KW0oZXJzaW9uKWkoNS4xLWIpcyhldGExLClpKDExKWUKKyhObyltKHYpbShlbSltKGIpcyhlcilnKDIwMDVcKSwpMTUwIDMxMzMgeShhKTQyIGIobGlicmFyeSlmKHdoaWMpbShoKWcKKyhhaWRzKWcoaW4pZyh0aGUpZyhjb25zaXN0ZW5jeSlpKG9mKWUodXNlcilnKGluKW0odGVyZmFjZSloKGFjcm9zcylnCisoZGlzY3JldGUpZyhwcm9ncmFtcylmKHdoaWMpbShoKTE1MCAzMjQzIHkocHJvKW0odmlkZSkzMAorYihhKWgoY29tbWFuZClmKGxpbmUpaChpbiltKHRlcmZhY2UuKTE1MCAzMzc3IHkoQ29wKW0oeXJpZ2gpbSh0KTYwMgorMzM3NCB5KGMpNTc3IDMzNzcgeSBGcShcMDE1KWYgRnQoMTk4OC0yMDA0KWsoRiktOCBiKHJlZSkzMgorYihTb2Z0KW0odyltKGFyZSlmKEYpLTggYihvdW5kYXRpb24sKTMyIGIoSW5jLikxNTAgMzUxMgoreShQKW0oZXJtaXNzaW9uKWcoaXMpaChncmFuKW0odGVkKWcodG8pZihtYWspbShlKWkoYW5kKWQoZGlzdHJpYnV0ZSloCisodiltKGVyYmF0aW0paChjb3BpZXMpZyhvZilmKHRoaXMpZyhtYW4pbSh1YWwpaChwcm8pbSh2aWRlZClmKHRoZSkxNTAKKzM2MjEgeShjb3ApbSh5cmlnaCltKHQpZyhub3RpY2UpZihhbmQpZih0aGlzKWcocClzKGVybWlzc2lvbilnKG5vdGljZSloCisoYXJlKWcocHJlc2VydiltKGVkKWYob24paChhbGwpZyhjb3BpZXMuKTM5MCAzNzU2IHkoUCltKGVybWlzc2lvbilrKGlzKQoraChncmFuKW0odGVkKWYodG8paChjb3ApbSh5KS04IGIoLCkzOCBiKGRpc3RyaWJ1dGUpZChhbmQvb3IpZyhtbylzCisoZGlmeSlmKHRoaXMpaChkbylzKGN1bWVuKW0odClnKHVuZGVyKTM5MCAzODY2IHkodGhlKWoodGVybXMpZyhvZilnCisodGhlKWcoR05VKWgoRiktOCBiKHJlZSkzOSBiKERvKXMoY3VtZW4pbSh0YXRpb24paChMaWNlbnNlLClnKFYpLTgKK2IoZXJzaW9uKTM5IGIoMS4xKWcob3IpZihhbiltKHkpZyhsYXRlcikzOTAgMzk3NSB5KHYpbShlcnNpb24pMjgKK2IocHVibGlzaGVkKWQoYiltKHkpaih0aGUpZihGKS04IGIocmVlKTI5IGIoU29mdCltKHcpbShhcmUpZihGKS04CitiKG91bmRhdGlvbjspMzAgYih3aXRoKWQobm8pZyhJbiltKHYpLTUgYihhcmlhbiltKHQpMjgKK2IoU2VjdGlvbnMsKTM5MCA0MDg1IHkod2l0aClpKHRoZSloKEYpLTggYihyb24pbSh0LUNvKW0odiltKGVyKTMzCitiKHRleHRzKWUoYilzKGVpbmcpZyhcXEEpZyhHTlUpZyhNYW4pbSh1YWwsIiloKGFuZCllKHdpdGgpZyh0aGUpaChCYWMpbQorKGstQ28pbSh2KW0oZXIpMzkwIDQxOTQgeShUKS04IGIoZXh0cykzMyBiKGFzKWcoaW4pZihcKGFcKSloKGIpcyhlbG8pbQorKHcuKTQ3IGIoQSkzMyBiKGNvcCltKHkpZyhvZilmKHRoZSloKGxpY2Vuc2UpZyhpcylnKGluY2x1ZGVkKWUoaW4paAorKHRoZSloKHNlY3Rpb24pZyhlbiltKHRpdGxlZCkzOTAgNDMwNCB5KFxcR05VKWUoRiktOAorYihyZWUpMzIgYihEbylzKGN1bWVuKW0odGF0aW9uKWcoTGljZW5zZS4iKTM5MCA0NDM4IHkoXChhXCkpMzkKK2IoVGhlKWYoRlNGJ3MpZyhCYWMpbShrLUNvKW0odiltKGVyKWooVCktOCBiKGV4dCkzOSBiKGlzOik1NgorYihcXFkpLTggYihvdSkzOSBiKGhhKW0odiltKGUpZyhmcmVlZG9tKWYodG8paChjb3ApbSh5KWYoYW5kKWcobW8pcworKGRpZnkpMzkwIDQ1NDggeSh0aGlzKTMyIGIoR05VKWkoTWFuKW0odWFsLClnKGxpayltKGUpZyhHTlUpZihzb2Z0KW0odykKK20oYXJlLik0OSBiKENvcGllcykzMiBiKHB1Ymxpc2hlZClmKGIpbSh5KWgodGhlKWgoRiktOAorYihyZWUpMzQgYihTb2Z0KW0odyltKGFyZSkzOTAgNDY1OCB5KEYpLTggYihvdW5kYXRpb24pMzEKK2IocmFpc2UpZyhmdW5kcylkKGZvcilqKEdOVSlnKGRldiltKGVsb3BtZW4pbSh0LiIpMTUwCis0OTAyIHkoUHVibGlzaGVkKWUoYiltKHkpaCh0aGUpaChGKS04IGIocmVlKTMxIGIoU29mdCltKHcpbShhcmUpaChGKS04CitiKG91bmRhdGlvbikxNTAgNTAxMSB5KDU5KTMxIGIoVCktOCBiKGVtcGxlKTMxIGIoUGxhY2UsKWgoU3VpdGUpZSgzMzAsKQorMTUwIDUxMjEgeShCb3N0b24sKWkoTUEpZSgwMjExMS0xMzA3KTE1MCA1MjMwIHkoVVNBKXAKK2VvcCBlbmQKKyUlUGFnZTogLTEgMworVGVYRGljdCBiZWdpbiAtMSAyIGJvcCAzNzI1IC0xMTYgYSBGdChpKTE1MCAyOTkgeSBGcChUKS0xMworYihhYmxlKTUzIGIob2YpaChDb24pbCh0ZW4pbCh0cykxNTAgNjQxIHkgRnIoMSkxMzUgYihDb21tYW5kKTQ1CitiKExpbmUpZyhFZGl0aW5nKTQwIGIgRm8oLikyMCBiKC4pZiguKWcoLiloKC4pZiguKWgoLilmKC4paCguKWYoLilnKC4paAorKC4pZiguKWgoLilmKC4paCguKWYoLilnKC4paCguKWYoLik4NCBiIEZyKDEpNDQ5IDc3OAoreSBGdCgxLjEpOTIgYihJbiltKHRybylzKGR1Y3Rpb24pMzAgYih0byloKExpbmUpZihFZGl0aW5nKTI1CitiIEZuKC4pMTYgYiguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZworKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pNTUKK2IgRnQoMSk0NDkgODg4IHkoMS4yKTkyIGIoUmVhZGxpbmUpMzEgYihJbiltKHRlcmFjdGlvbikxNgorYiBGbiguKWgoLillKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLikKK2coLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZworKC4pZyguKWcoLik0NiBiIEZ0KDEpNzQ4IDk5NyB5KDEuMi4xKTkzIGIoUmVhZGxpbmUpMzEKK2IoQmFyZSlnKEVzc2VuKW0odGlhbHMpYyBGbiguKTE1IGIoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcKKyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLik1NgorYiBGdCgxKTc0OCAxMTA3IHkoMS4yLjIpOTMgYihSZWFkbGluZSkzMSBiKE1vKW0odiltKGVtZW4pbSh0KWgKKyhDb21tYW5kcykxNCBiIEZuKC4paCguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZworKC4pZyguKWcoLilnKC4pZyguKTQ0IGIgRnQoMik3NDggMTIxNiB5KDEuMi4zKTkzIGIoUmVhZGxpbmUpMzEKK2IoS2lsbGluZylnKENvbW1hbmRzKTIyIGIgRm4oLikxMyBiKC4paSguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnCisoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pNTEgYiBGdCgyKTc0OAorMTMyNiB5KDEuMi40KTkzIGIoUmVhZGxpbmUpMzEgYihBcmd1bWVuKW0odHMpMjUgYiBGbiguKTE1CitiKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcKKyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKTU1IGIgRnQoMyk3NDgKKzE0MzUgeSgxLjIuNSk5MyBiKFNlYXJjKW0oaGluZykzMCBiKGZvciloKENvbW1hbmRzKWUoaW4paCh0aGUpZworKEhpc3RvcnkpZCBGbiguKTE1IGIoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKTU2CitiIEZ0KDMpNDQ5IDE1NDUgeSgxLjMpOTIgYihSZWFkbGluZSkzMSBiKEluaXQpZihGaWxlKWcKK0ZuKC4pMTUgYiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZworKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLikKK2coLilnKC4pZyguKWcoLilnKC4pNTggYiBGdCg0KTc0OCAxNjU1IHkoMS4zLjEpOTMgYihSZWFkbGluZSkzMQorYihJbml0KWYoRmlsZSloKFN5biltKHRheCkxMyBiIEZuKC4paiguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnCisoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKTQzCitiIEZ0KDQpNzQ4IDE3NjQgeSgxLjMuMik5MyBiKENvbmRpdGlvbmFsKTMwIGIoSW5pdCloKENvbnN0cnVjdHMpOQorYiBGbiguKTE0IGIoLiloKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcKKyguKWcoLilnKC4pZyguKWcoLilnKC4pMzkgYiBGdCg5KTc0OCAxODc0IHkoMS4zLjMpOTMKK2IoU2FtcGxlKTMwIGIoSW5pdClnKEZpbGUpMjEgYiBGbiguKWMoLillKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZworKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLikKK2coLilnKC4pZyguKWcoLik1MSBiIEZ0KDEwKTQ0OSAxOTgzIHkoMS40KTkyIGIoQmluZGFibGUpMzEKK2IoUmVhZGxpbmUpZyhDb21tYW5kcykxMiBiIEZuKC4paSguKWgoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZworKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4paCguKTQxCitiIEZ0KDEzKTc0OCAyMDkzIHkoMS40LjEpOTMgYihDb21tYW5kcykyOSBiKEYpLTggYihvcikzMQorYihNbyltKHZpbmcpZCBGbiguKTE1IGIoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcKKyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLik1NiBiIEZ0KDEzKTc0OAorMjIwMyB5KDEuNC4yKTkzIGIoQ29tbWFuZHMpMjkgYihGKS04IGIob3IpMzEgYihNYW5pcHVsYXRpbmcpZyhUaGUpZgorKEhpc3RvcnkpMTggYiBGbiguKWUoLilmKC4pZyguKWcoLilnKC4pZyguKTQ3IGIgRnQoMTMpNzQ4CisyMzEyIHkoMS40LjMpOTMgYihDb21tYW5kcykyOSBiKEYpLTggYihvcikzMSBiKENoYW5naW5nKWYoVCktOAorYihleHQpMzAgYiBGbiguKTE1IGIoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLikKK2coLiloKC4pZiguKTU4IGIgRnQoMTQpNzQ4IDI0MjIgeSgxLjQuNCk5MyBiKEtpbGxpbmcpMzEKK2IoQW5kKWUoWSktOCBiKGFua2luZykxNyBiIEZuKC4pZiguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZworKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKTQ2CitiIEZ0KDE2KTc0OCAyNTMxIHkoMS40LjUpOTMgYihTcClzKGVjaWZ5aW5nKTI5IGIoTnVtZXJpYylpKEFyZ3VtZW4pbQorKHRzKTI1IGIgRm4oLikxNSBiKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZworKC4pZyguKWcoLik1NCBiIEZ0KDE3KTc0OCAyNjQxIHkoMS40LjYpOTMgYihMZXR0aW5nKTMxCitiKFJlYWRsaW5lKWcoVCltKHlwKXMoZSlmKEYpLTggYihvcikzMSBiKFkpLTggYihvdSkxOQorYiBGbiguKWQoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLikKKzQ5IGIgRnQoMTcpNzQ4IDI3NTEgeSgxLjQuNyk5MyBiKEtleWIpcyhvYXJkKTI5IGIoTWFjcm9zKTExCitiIEZuKC4pMTcgYiguKWUoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZworKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKTQxCitiIEZ0KDE3KTc0OCAyODYwIHkoMS40LjgpOTMgYihTb21lKTMwIGIoTWlzY2VsbGFuZW91cylpKENvbW1hbmRzKTEzCitiIEZuKC4paCguKWgoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKQorNDIgYiBGdCgxOCk0NDkgMjk3MCB5KDEuNSk5MiBiKFJlYWRsaW5lKTMxIGIodmkpZihNbylzKGRlKWQKK0ZuKC4pMTUgYiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZworKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLikKK2coLilnKC4pZyguKWcoLik1NiBiIEZ0KDE5KTE1MCAzMjEyIHkgRnIoMikxMzUgYihQcm9ncmFtbWluZyk0NgorYih3aXRoKWYoR05VKWcoUmVhZGxpbmUpMjUgYiBGbyguKWMoLillKC4paCguKWYoLilnKC4paCguKWYoLiloKC4pNjkKK2IgRnIoMjEpNDQ5IDMzNDkgeSBGdCgyLjEpOTIgYihCYXNpYykzMiBiKEJlaGEpbSh2aW9yKTE1CitiIEZuKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKQorZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnCisoLilnKC4pZyguKWcoLilnKC4paCguKWYoLik0NCBiIEZ0KDIxKTQ0OSAzNDU5IHkoMi4yKTkyCitiKEN1c3RvbSkzMCBiKEYpLTggYih1bmN0aW9ucykxNSBiIEZuKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcKKyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pCitnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLik0NCBiCitGdCgyMik3NDggMzU2OCB5KDIuMi4xKTkzIGIoUmVhZGxpbmUpMzEgYihUKW0oeXApcyhlZGVmcykxOQorYiBGbiguKTEzIGIoLilpKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcKKyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKTQ4CitiIEZ0KDIyKTc0OCAzNjc4IHkoMi4yLjIpOTMgYihXKS04IGIocml0aW5nKTMxIGIoYSlnKE5ldylmKEYpLTgKK2IodW5jdGlvbikxMSBiIEZuKC4pMTcgYiguKWUoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pCitnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKTQxIGIgRnQoMjMpNDQ5CiszNzg3IHkoMi4zKTkyIGIoUmVhZGxpbmUpMzEgYihWKS04IGIoYXJpYWJsZXMpMzAgYiBGbiguKTE1CitiKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYKKyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pCitnKC4pNTggYiBGdCgyNCk0NDkgMzg5NyB5KDIuNCk5MiBiKFJlYWRsaW5lKTMxIGIoQ29uKW0odiltKGVuaWVuY2UpaChGKQorLTggYih1bmN0aW9ucykxNSBiIEZuKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLiloCisoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLik0NAorYiBGdCgyOCk3NDggNDAwNyB5KDIuNC4xKTkzIGIoTmFtaW5nKTMwIGIoYSloKEYpLTggYih1bmN0aW9uKTI1CitiIEZuKC4pMTUgYiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZworKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLik1MyBiIEZ0KDI4KTc0OAorNDExNiB5KDIuNC4yKTkzIGIoU2VsZWN0aW5nKTMxIGIoYSlnKEtleW1hcCkxMiBiIEZuKC4paiguKWcoLilnKC4pZyguKWcKKyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pCitnKC4pZyguKWcoLilnKC4pZyguKTQxIGIgRnQoMjgpNzQ4IDQyMjYgeSgyLjQuMyk5MyBiKEJpbmRpbmcpMzAKK2IoS2V5cykxMCBiIEZuKC4payguKWgoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcKKyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pCitnKC4pZyguKTM5IGIgRnQoMjkpNzQ4IDQzMzUgeSgyLjQuNCk5MyBiKEFzc28pcyhjaWF0aW5nKTMxCitiKEYpLTggYih1bmN0aW9uKTMxIGIoTmFtZXMpZyhhbmQpZihCaW5kaW5ncykxNiBiIEZuKC4pZiguKWcoLilnKC4pZyguKQorZyguKWcoLik0NSBiIEZ0KDMxKTc0OCA0NDQ1IHkoMi40LjUpOTMgYihBbGxvKW0od2luZykzMQorYihVbmRvaW5nKWUgRm4oLikxNSBiKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnCisoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLik1OAorYiBGdCgzMSk3NDggNDU1NSB5KDIuNC42KTkzIGIoUmVkaXNwbGEpbSh5KTIxIGIgRm4oLikxNQorYiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnCisoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKQorZyguKTUwIGIgRnQoMzIpNzQ4IDQ2NjQgeSgyLjQuNyk5MyBiKE1vKXMoZGlmeWluZykzMAorYihUKS04IGIoZXh0KTEzIGIgRm4oLilqKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLikKK2coLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZworKC4pZyguKTQyIGIgRnQoMzQpNzQ4IDQ3NzQgeSgyLjQuOCk5MyBiKENoYXJhY3RlcikzMAorYihJbnB1dCkyMCBiIEZuKC4pMTQgYiguKWgoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZworKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLikKKzUwIGIgRnQoMzQpNzQ4IDQ4ODMgeSgyLjQuOSk5MyBiKFQpLTggYihlcm1pbmFsKTMwIGIoTWFuYWdlbWVuKW0odCljCitGbiguKTE1IGIoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcKKyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pNTMgYiBGdCgzNSk3NDggNDk5MworeSgyLjQuMTApOTMgYihVdGlsaXQpbSh5KTMyIGIoRiktOCBiKHVuY3Rpb25zKTI2IGIgRm4oLikxNQorYiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnCisoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pNTQgYiBGdCgzNSk3NDgKKzUxMDMgeSgyLjQuMTEpOTMgYihNaXNjZWxsYW5lb3VzKTMyIGIoRiktOCBiKHVuY3Rpb25zKTEyCitiIEZuKC4payguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKQorZyguKWgoLilmKC4pZyguKWcoLilnKC4pNDEgYiBGdCgzNik3NDggNTIxMiB5KDIuNC4xMik5MworYihBbHRlcm5hdGUpMzIgYihJbiltKHRlcmZhY2UpZiBGbiguKTE1IGIoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnCisoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKQorZyguKTU5IGIgRnQoMzcpNzQ4IDUzMjIgeSgyLjQuMTMpOTMgYihBKTMwIGIoUmVhZGxpbmUpaChFeGFtcGxlKTE3CitiIEZuKC4pZiguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKQorZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pNDYgYiBGdCgzOClwIGVvcAogZW5kCislJVBhZ2U6IC0yIDQKK1RlWERpY3QgYmVnaW4gLTIgMyBib3AgMTUwIC0xMTYgYSBGdChpaSkyNjQwIGIoR05VKTMxCitiKFJlYWRsaW5lKWcoTGlicmFyeSk0NDkgODMgeSgyLjUpOTIgYihSZWFkbGluZSkzMSBiKFNpZ25hbClnKEhhbmRsaW5nKQorMjMgYiBGbiguKTE1IGIoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZworKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pNTIKK2IgRnQoMzkpNDQ5IDE5MyB5KDIuNik5MiBiKEN1c3RvbSkzMCBiKENvbXBsZXRlcnMpMjUKK2IgRm4oLikxNSBiKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnCisoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKQorZyguKWcoLik1NSBiIEZ0KDQxKTc0OCAzMDIgeSgyLjYuMSk5MyBiKEhvKW0odykzMSBiKENvbXBsZXRpbmcpZyhXKS04CitiKG9ya3MpMTkgYiBGbiguKWQoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnCisoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLik0OSBiIEZ0KDQxKTc0OAorNDEyIHkoMi42LjIpOTMgYihDb21wbGV0aW9uKTMwIGIoRiktOCBiKHVuY3Rpb25zKTEyIGIKK0ZuKC4pMTcgYiguKWUoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZworKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pNDIgYiBGdCg0Mik3NDgKKzUyMSB5KDIuNi4zKTkzIGIoQ29tcGxldGlvbikzMCBiKFYpLTggYihhcmlhYmxlcykyMyBiCitGbiguKTE3IGIoLillKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcKKyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKTUyIGIgRnQoNDMpNzQ4Cis2MzEgeSgyLjYuNCk5MyBiKEEpMzAgYihTaG9ydClnKENvbXBsZXRpb24paChFeGFtcGxlKTkKK2IgRm4oLikxNSBiKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLiloCisoLilmKC4pZyguKTM4IGIgRnQoNDcpMTUwIDg3MyB5IEZyKEFwcCl0KGVuZGl4KTQ0IGIoQSk5OQorYihDb3ApbCh5aW5nKTQ2IGIoVGhpcyllKE1hbilsKHVhbCkyOSBiIEZvKC4pMjAgYiguKWcoLilmKC4paCguKWYoLilnCisoLiloKC4pZiguKWgoLilmKC4pNzQgYiBGcig1Nyk0NDkgMTAxMCB5IEZ0KEEuMSk5MiBiKEdOVSkzMQorYihGKS04IGIocmVlKTMxIGIoRG8pcyhjdW1lbiltKHRhdGlvbiloKExpY2Vuc2UpYyBGbiguKTE1CitiKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcKKyguKWcoLilnKC4pZyguKTU2IGIgRnQoNTcpNzQ4IDExMjAgeShBLjEuMSk5MiBiKEFEREVORFVNOikzMworYihIbyltKHcpZSh0bylnKHVzZSlmKHRoaXMpZyhMaWNlbnNlKWgoZm9yKWcoeSltKG91cik5MzAKKzEyMzAgeShkbylzKGN1bWVuKW0odHMpYyBGbiguKTE1IGIoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcKKyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pCitnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pNTcgYiBGdCg2MykxNTAKKzE0NzIgeSBGcihDb25jZXB0KTQ1IGIoSW5kZXgpMjEgYiBGbyguKWUoLilnKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4pCitoKC4pZiguKWcoLiloKC4pZiguKWgoLilmKC4paCguKWYoLilnKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4pZyguKWgKKyguKWYoLiloKC4pZiguKWgoLik2NSBiIEZyKDY1KTE1MCAxNzQyIHkoRiktMTEgYih1bmN0aW9uKTQ0CitiKGFuZCloKFYpLTExIGIoYXJpYWJsZSk0NSBiKEluZGV4KTE3IGIgRm8oLilqKC4pZiguKWgoLilmKC4paCguKWYoLiloCisoLilmKC4pZyguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWcoLiloKC4pNjIgYiBGcig2NylwCitlb3AgZW5kCislJVBhZ2U6IDEgNQorVGVYRGljdCBiZWdpbiAxIDQgYm9wIDE1MCAtMTE2IGEgRnQoQ2hhcHRlcikzMCBiKDE6KTQxCitiKENvbW1hbmQpMjkgYihMaW5lKWkoRWRpdGluZykyMTUzIGIoMSkxNTAgMjk5IHkgRnAoMSk4MAorYihDb21tYW5kKTU0IGIoTGluZSlmKEVkaXRpbmcpMjc1IDUxMSB5IEZ0KFRoaXMpMjkgYihjKW0oaGFwdGVyKWkKKyhkZXNjcmliKXMoZXMpZih0aGUpZyhiYXNpYyloKGZlYXR1cmVzKWcob2YpZih0aGUpaCBGbShnbnUpZgorRnQoY29tbWFuZClnKGxpbmUpaChlZGl0aW5nKWcoaW4pbSh0ZXJmYWNlLikxNTAgNzU1IHkKK0ZyKDEuMSk2OCBiKEluKWwodHJvKXQoZHVjdGlvbik0NSBiKHRvKWcoTGluZSloKEVkaXRpbmcpMjc1Cis5OTUgeSBGdChUaGUpMjkgYihmb2xsbyltKHdpbmcpaihwYXJhZ3JhcGhzKWUoZGVzY3JpYilzKGUpZyh0aGUpZworKG5vdGF0aW9uKWkodXNlZClkKHRvKWoocmVwcmVzZW4pbSh0KWUoayltKGV5c3Ryb2spbShlcy4pMjc1CisxMTI1IHkoVGhlKWkodGV4dClqIEZsKEMtaylkIEZ0KGlzKWkocmVhZClmKGFzKWgoYENvbiltKHRyb2wtSycpZyhhbmQpZgorKGRlc2NyaWIpcyhlcylnKHRoZSlnKGMpbShoYXJhY3RlcilpKHBybylzKGR1Y2VkKWQod2hlbilnKHRoZSkzNjYzCisxMTIyIHkgRmsoaClwIDM2ODcgMTA2OSAzOCA0IHYgMzY4NyAxMTI1IGEgRmooaylwIDM2ODcKKzExNDAgViAzNzIwIDExMjIgYSBGayhpKTE1MCAxMjM1IHkgRnQoayltKGV5KWYoaXMpZyhwcmVzc2VkKWUod2hpbGUpaAorKHRoZSloKENvbiltKHRyb2wpZyhrKW0oZXkpZyhpcylnKGRlcHJlc3NlZC4pMjc1IDEzNjUKK3koVGhlKWcodGV4dClpIEZsKE0tayllIEZ0KGlzKWgocmVhZClmKGFzKWkoYE1ldGEtSycpZyhhbmQpZihkZXNjcmliKXMKKyhlcylmKHRoZSloKGMpbShoYXJhY3RlciloKHBybylzKGR1Y2VkKWUod2hlbilmKHRoZSlpKE1ldGEpMTUwCisxNDc0IHkoayltKGV5KWQoXChpZilnKHkpbShvdSlnKGhhKW0odiltKGUpZyhvbmVcKSlnKGlzKWcoZGVwcmVzc2VkLClmCisoYW5kKWYodGhlKTE4NTkgMTQ3MSB5IEZrKGgpcCAxODgzIDE0MTggViAxODgzIDE0NzQgYQorRmooaylwIDE4ODMgMTQ5MCBWIDE5MTYgMTQ3MSBhIEZrKGkpMTk3NCAxNDc0IHkgRnQoayltKGV5KWooaXMpZQorKHByZXNzZWQuKTM5IGIoVGhlKTI4IGIoTWV0YSlpKGspbShleSlmKGlzKWcobGFiKXMoZWxlZCkzNTU4CisxNDcxIHkgRmsoaClwIDM1ODIgMTQxOCAxNDMgNCB2IDM1ODIgMTQ3NCBhIEZqKEFMKS02CitiKFQpcCAzNTgyIDE0OTAgViAzNzIwIDE0NzEgYSBGayhpKTE1MCAxNTg0IHkgRnQob24pMjYKK2IobWFuKW0oeSlnKGspbShleWIpcyhvYXJkcy4pMzkgYihPbikyNiBiKGspbShleWIpcyhvYXJkcylnKHdpdGgpZyh0KW0KKyh3KW0obyloKGspbShleXMpZyhsYWIpcyhlbGVkKTI0MjUgMTU4MSB5IEZrKGgpcCAyNDUwCisxNTI4IFYgMjQ1MCAxNTg0IGEgRmooQUwpLTYgYihUKXAgMjQ1MCAxNTk5IFYgMjU4NyAxNTgxCithIEZrKGkpMjY0MyAxNTg0IHkgRnQoXCh1c3VhbGx5KTI3IGIodG8pZyhlaXRoZXIpZihzaWRlKWcob2YpaCh0aGUpMTUwCisxNjkzIHkoc3BhY2UpMzIgYihiYXJcKSwpZyh0aGUpNzc1IDE2OTAgeSBGayhoKXAgNzk5CisxNjM3IFYgNzk5IDE2OTMgYSBGaihBTCktNiBiKFQpcCA3OTkgMTcwOSBWIDkzNyAxNjkwCithIEZrKGkpOTk4IDE2OTMgeSBGdChvbikzMiBiKHRoZSlmKGxlZnQpaChzaWRlKWcoaXMpZihnZW5lcmFsbHkpaShzZXQpZQorKHRvKWkodyltKG9yayllKGFzKWgoYSlmKE1ldGEpaShrKW0oZXkpLTggYiguKTQ1IGIoVGhlKTMzOTMKKzE2OTAgeSBGayhoKXAgMzQxNyAxNjM3IFYgMzQxNyAxNjkzIGEgRmooQUwpLTYgYihUKXAKKzM0MTcgMTcwOSBWIDM1NTUgMTY5MCBhIEZrKGkpMzYxNiAxNjkzIHkgRnQoayltKGV5KTE1MAorMTgwMyB5KG9uKTMzIGIodGhlKWgocmlnaCltKHQpZyhtYSltKHkpZyhhbHNvKWcoYilzKGUpZihjb25cMDE0Z3VyZWQpZgorKHRvKWkodyltKG9yaylnKGFzKWcoYSlmKE1ldGEpaShrKW0oZXkpZihvcilnKG1hKW0oeSlnKGIpcyhlKWUKKyhjb25cMDE0Z3VyZWQpaChhcyloKHNvbWUpMTUwIDE5MTMgeShvdGhlcilkKG1vKXMoZGlcMDE0ZXIsKWUoc3VjKW0oaCloCisoYXMpaChhKWcoQ29tcClzKG9zZSlmKGspbShleSloKGZvcilmKHQpbSh5cGluZyloKGFjY2VuKW0odGVkKWgoYyltCisoaGFyYWN0ZXJzLikyNzUgMjA0MyB5KElmKTIxIGIoeSltKG91KWgoZG8pZyhub3QpZyhoYSltKHYpbShlKWgoYSlmCisoTWV0YSloKG9yKTEzODggMjA0MCB5IEZrKGgpcCAxNDEyIDE5ODcgViAxNDEyIDIwNDMgYQorRmooQUwpLTYgYihUKXAgMTQxMiAyMDU4IFYgMTU1MCAyMDQwIGEgRmsoaSkxNjAxIDIwNDMKK3kgRnQoayltKGV5KWUoLCkyNSBiKG9yKWQoYW5vdGhlcilnKGspbShleSloKHcpbShvcmtpbmcpZihhcylnKGEpZworKE1ldGEpaChrKW0oZXkpLTggYigsKTI1IGIodGhlKWQoaWRlbiltKHRpY2FsKTE1MCAyMTUyCit5KGspbShleXN0cm9rKW0oZSlpKGNhbilmKGIpcyhlKWYoZ2VuZXJhdGVkKWkoYiltKHkpZSh0KW0oeXBpbmcpMTYxOQorMjE0OSB5IEZrKGgpcCAxNjQzIDIwOTYgMTM5IDQgdiAxNjQzIDIxNTIgYSBGaihFU0MpcAorMTY0MyAyMTY4IFYgMTc3NyAyMTQ5IGEgRmsoaSkxODI5IDIxNTIgeSBGbihcMDE0cnN0KXAKK0Z0KCwpaihhbmQpZCh0aGVuKWcodCltKHlwaW5nKTI2NzggMjE0OSB5IEZrKGgpcCAyNzAzCisyMDk2IDM4IDQgdiAyNzAzIDIxNTIgYSBGaihrKXAgMjcwMyAyMTY4IFYgMjczNiAyMTQ5CithIEZrKGkpMjc2NSAyMTUyIHkgRnQoLikzOCBiKEVpdGhlcikyMyBiKHBybylzKGNlc3MpZihpcylnKGtubyltKHduKTE1MAorMjI2MiB5KGFzKTMxIGIgRmkobWV0YWZ5aW5nKTM5IGIgRnQodGhlKTg1MCAyMjU5IHkgRmsoaClwCis4NzQgMjIwNiBWIDg3NCAyMjYyIGEgRmooaylwIDg3NCAyMjc3IFYgOTA3IDIyNTkgYSBGayhpKTk2OAorMjI2MiB5IEZ0KGspbShleSktOCBiKC4pMjc1IDIzOTIgeShUaGUpMzkgYih0ZXh0KWogRmwoTS1DLWspZAorRnQoaXMpaChyZWFkKWcoYXMpaChgTWV0YS1Db24pbSh0cm9sLWsnKWooYW5kKTM5IGIoZGVzY3JpYilzKGVzKWgodGhlKWcKKyhjKW0oaGFyYWN0ZXIpaShwcm8pcyhkdWNlZClkKGIpbSh5KTE1MCAyNTAxIHkgRmkobWV0YWZ5aW5nKWcKK0ZsKEMtaylwIEZ0KC4pMjc1IDI2MzIgeShJbilkKGFkZGl0aW9uLClqKHNldiltKGVyYWwpZihrKW0oZXlzKWYoaGEpbQorKHYpbShlKWgodGhlaXIpZihvKW0od24pZyhuYW1lcy4pNjAgYihTcClzKGVjaVwwMTRjYWxseSktOAorYigsKTI3NjggMjYyOSB5IEZrKGgpcCAyNzkyIDI1NzYgMTQ2IDQgdiAyNzkyIDI2MzIgYQorRmooREVMKXAgMjc5MiAyNjQ3IFYgMjkzNCAyNjI5IGEgRmsoaSkyOTY0IDI2MzIgeSBGdCgsKTMwMjgKKzI2MjkgeSBGayhoKXAgMzA1MiAyNTc2IDEzOSA0IHYgMzA1MiAyNjMyIGEgRmooRVNDKXAKKzMwNTIgMjY0NyBWIDMxODYgMjYyOSBhIEZrKGkpMzIxNiAyNjMyIHkgRnQoLCkzMjc5IDI2MjkKK3kgRmsoaClwIDMzMDMgMjU3NiAxNDQgNCB2IDMzMDMgMjYzMiBhIEZqKExGRClwIDMzMDMKKzI2NDcgViAzNDQzIDI2MjkgYSBGayhpKTM0NzMgMjYzMiB5IEZ0KCwpMzUzNyAyNjI5IHkKK0ZrKGgpcCAzNTYxIDI1NzYgMTM5IDQgdiAzNTYxIDI2MzIgYSBGaihTUEMpcCAzNTYxIDI2NDcKK1YgMzY5NSAyNjI5IGEgRmsoaSkzNzI1IDI2MzIgeSBGdCgsKTE1MCAyNzM4IHkgRmsoaClwCisxNzQgMjY4NSAxNTEgNCB2IDE3NCAyNzQxIGEgRmooUkVUKXAgMTc0IDI3NTcgViAzMjEgMjczOAorYSBGayhpKTM1MSAyNzQxIHkgRnQoLCk0NyBiKGFuZCk2MTIgMjczOCB5IEZrKGgpcCA2MzcKKzI2ODUgMTQ4IDQgdiA2MzcgMjc0MSBhIEZqKFQpLTYgYihBQilwIDYzNyAyNzU3IFYgNzgwCisyNzM4IGEgRmsoaSk4NTMgMjc0MSB5IEZ0KGFsbCk0NSBiKHN0YW5kKWUoZm9yKWcodGhlbXNlbHYpbShlcylpKHdoZW4pZAorKHNlZW4paShpbilmKHRoaXMpZyh0ZXh0LCk0OCBiKG9yKTQzIGIoaW4pZyhhbiloKGluaXQpZihcMDE0bGUpaChcKHNlZSkKKzE1MCAyODUxIHkoU2VjdGlvbiljKDEuMylmKFtSZWFkbGluZSloKEluaXQpZShGaWxlXSwpNDMKK2IocGFnZSljKDRcKS4pNjcgYihJZikzOCBiKHkpbShvdXIpaChrKW0oZXliKXMob2FyZClmKGxhYyltKGtzKWkoYSkyODg4CisyODQ4IHkgRmsoaClwIDI5MTIgMjc5NSAxNDQgNCB2IDI5MTIgMjg1MSBhIEZqKExGRClwCisyOTEyIDI4NjYgViAzMDUyIDI4NDggYSBGayhpKTMxMjEgMjg1MSB5IEZ0KGspbShleSktOAorYigsKTQyIGIodCltKHlwaW5nKTM2MDQgMjg0OCB5IEZrKGgpcCAzNjI4IDI3OTUgOTcgNAordiAzNjI4IDI4NTEgYSBGaihDLWopcCAzNjI4IDI4NjYgViAzNzIwIDI4NDggYSBGayhpKTE1MAorMjk2MCB5IEZ0KHdpbGwpMzAgYihwcm8pcyhkdWNlKWUodGhlKWkoZGVzaXJlZClmKGMpbShoYXJhY3Rlci4pNDIKK2IoVGhlKTE3NDggMjk1NyB5IEZrKGgpcCAxNzcyIDI5MDQgMTUxIDQgdiAxNzcyIDI5NjAKK2EgRmooUkVUKXAgMTc3MiAyOTc2IFYgMTkxOSAyOTU3IGEgRmsoaSkxOTc4IDI5NjAgeSBGdChrKW0oZXkpMzAKK2IobWEpbSh5KWcoYilzKGUpZihsYWIpcyhlbGVkKTI3NzAgMjk1NyB5IEZrKGgpcCAyNzk0CisyOTA0IDIxNyA0IHYgMjc5NCAyOTYwIGEgRmooUmV0dXJuKXAgMjc5NCAyOTc2IFYgMzAwNworMjk1NyBhIEZrKGkpMzA2NiAyOTYwIHkgRnQob3IpMzE3NiAyOTU3IHkgRmsoaClwIDMyMDEKKzI5MDQgMTcyIDQgdiAzMjAxIDI5NjAgYSBGaihFbiluKHRlcilwIDMyMDEgMjk3NiBWIDMzNjgKKzI5NTcgYSBGayhpKTM0MjcgMjk2MCB5IEZ0KG9uKWgoc29tZSkxNTAgMzA3MCB5KGspbShleWIpcyhvYXJkcy4pMTUwCiszMzE0IHkgRnIoMS4yKTY4IGIoUmVhZGxpbmUpNDcgYihJbilsKHRlcmFjdGlvbikyNzUgMzU1NAoreSBGdChPZnRlbikyNCBiKGR1cmluZylnKGFuKWgoaW4pbSh0ZXJhY3RpdiltKGUpaihzZXNzaW9uKWUoeSltKG91KWYodCkKK20oeXApcyhlKWgoaW4pZihhKWcobG9uZyloKGxpbmUpZihvZiloKHRleHQsKWgob25seSlmKHRvKWYobm90aWNlKWkKKyh0aGF0KWYodGhlKTE1MCAzNjYzIHkoXDAxNHJzdCkzMiBiKHcpbShvcmQpZyhvbilnKHRoZSlnKGxpbmUpaChpcylnCisobWlzc3ApcyhlbGxlZC4pNDYgYihUaGUpMzIgYihSZWFkbGluZSloKGxpYnJhcnkpZihnaXYpbShlcyloKHkpbShvdSlnCisoYSlnKHNldClnKG9mKWYoY29tbWFuZHMpZyhmb3IpMTUwIDM3NzMgeShtYW5pcHVsYXRpbmcpZSh0aGUpZyh0ZXh0KWgKKyhhcylmKHkpbShvdSlnKHQpbSh5cClzKGUpZyhpdClnKGluLClnKGFsbG8pbSh3aW5nKWgoeSltKG91KWYodG8paAorKGp1c3QpZShcMDE0eClnKHkpbShvdXIpaCh0KW0oeXApcyhvLClnKGFuZClnKG5vdClnKGZvcmNpbmcpMTUwCiszODgzIHkoeSltKG91KWUodG8paChyZXQpbSh5cClzKGUpZyh0aGUpZihtYSk1IGIoam9yaXQpbSh5KTI5CitiKG9mKWYodGhlKWgobGluZS4pNDAgYihVc2luZykyOCBiKHRoZXNlKWgoZWRpdGluZylnKGNvbW1hbmRzLClmKHkpbQorKG91KWgobW8pbSh2KW0oZSlnKHRoZSlnKGN1cnNvcikxNTAgMzk5MiB5KHRvKTM1IGIodGhlKWYocGxhY2UpaSh0aGF0KWUKKyhuZWVkcylnKGNvcnJlY3Rpb24sKWooYW5kKWQoZGVsZXRlKWgob3IpZihpbnNlcnQpaCh0aGUpZih0ZXh0KWgob2YpZworKHRoZSlmKGNvcnJlY3Rpb25zLik1NCBiKFRoZW4sKTE1MCA0MTAyIHkod2hlbikzMCBiKHkpbShvdSlpKGFyZSlmCisoc2F0aXNcMDE0ZWQpZyh3aXRoKWcodGhlKWcobGluZSwpaCh5KW0ob3UpZyhzaW1wbHkpZShwcmVzcykyMzIwCis0MDk5IHkgRmsoaClwIDIzNDQgNDA0NiAxNTEgNCB2IDIzNDQgNDEwMiBhIEZqKFJFVClwCisyMzQ0IDQxMTcgViAyNDkxIDQwOTkgYSBGayhpKTI1MjAgNDEwMiB5IEZ0KC4pNDMgYihZKS04CitiKG91KTMyIGIoZG8pZihub3QpZyhoYSltKHYpbShlKWkodG8pZShiKXMoZSlnKGF0KWgodGhlKTE1MAorNDIxMSB5KGVuZClqKG9mKWgodGhlKWcobGluZSlnKHRvKWgocHJlc3MpMTEyNiA0MjA4IHkKK0ZrKGgpcCAxMTUwIDQxNTUgViAxMTUwIDQyMTEgYSBGaihSRVQpcCAxMTUwIDQyMjcgViAxMjk3Cis0MjA4IGEgRmsoaSkxMzI3IDQyMTEgeSBGdCg7KWgodGhlKWUoZW4pbSh0aXJlKWgobGluZSlmKGlzKWcoYWNjZXB0ZWQpaAorKHJlZ2FyZGxlc3MpZihvZilnKHRoZSlnKGxvKXMoY2F0aW9uKWkob2YpZSh0aGUpMTUwIDQzMjEKK3koY3Vyc29yKTMwIGIod2l0aGluKWcodGhlKWcobGluZS4pMTUwIDQ1MzIgeSBGaCgxLjIuMSk2MworYihSZWFkbGluZSk0MCBiKEJhcmUpaChFc3NlbiltKHRpYWxzKTI3NSA0NzcyIHkgRnQoSW4pMjIKK2Iob3JkZXIpZyh0bylpKGVuKW0odGVyKWcoYyltKGhhcmFjdGVycylnKGluKW0odG8pZyh0aGUpZyhsaW5lLCloCisoc2ltcGx5KWQodCltKHlwKXMoZSlpKHRoZW0uKTM4IGIoVGhlKTIyIGIodCltKHlwKXMoZWQpaChjKW0oaGFyYWN0ZXIpaQorKGFwcClzKGVhcnMpMTUwIDQ4ODEgeSh3aGVyZSkzMiBiKHRoZSloKGN1cnNvcillKHcpbShhcywpaihhbmQpZSh0aGVuKWcKKyh0aGUpaChjdXJzb3IpZShtbyltKHYpbShlcylqKG9uZSlmKHNwYWNlKWcodG8pZyh0aGUpZyhyaWdoKW0odC4pNDcKK2IoSWYpMzIgYih5KW0ob3UpaChtaXN0KW0oeXApcyhlKWcoYSkxNTAgNDk5MSB5KGMpbShoYXJhY3RlciwpZih5KW0ob3UpCitmKGNhbilnKHVzZSlmKHkpbShvdXIpZyhlcmFzZSloKGMpbShoYXJhY3RlciloKHRvKWYoYmFjKW0oaylnKHVwKWYoYW5kKQorZihkZWxldGUpaih0aGUpZihtaXN0KW0oeXApcyhlZCllKGMpbShoYXJhY3Rlci4pMjc1IDUxMjEKK3koU29tZXRpbWVzKWkoeSltKG91KWcobWEpbSh5KWgobWlzdCltKHlwKXMoZSllKGEpaShjKW0oaGFyYWN0ZXIsKWcKKyhhbmQpZShub3QpaShub3RpY2UpZyh0aGUpZihlcnJvcilmKHVuKW0odGlsKWgoeSltKG91KWcoaGEpbSh2KW0oZSloKHQpCittKHlwKXMoZWQpMTUwIDUyMzAgeShzZXYpbShlcmFsKWUob3RoZXIpZihjKW0oaGFyYWN0ZXJzLik0MgorYihJbikyOCBiKHRoYXQpaShjYXNlLClnKHkpbShvdSlmKGNhbilnKHQpbSh5cClzKGUpaAorRmwoQy1iKWQgRnQodG8paihtbyltKHYpbShlKWcodGhlKWYoY3Vyc29yKWcodG8pZyh0aGUpZyhsZWZ0LClpKGFuZCkxNTAKKzUzNDAgeSh0aGVuKWYoY29ycmVjdClpKHkpbShvdXIpZShtaXN0YWspbShlLik0MiBiKEFmdGVydyltKGFyZHMsKTMxCitiKHkpbShvdSlmKGNhbiloKG1vKW0odiltKGUpaCh0aGUpZShjdXJzb3IpZyh0byloKHRoZSlnKHJpZ2gpbSh0KWcKKyh3aXRoKWYgRmwoQy1mKXAgRnQoLilwIGVvcCBlbmQKKyUlUGFnZTogMiA2CitUZVhEaWN0IGJlZ2luIDIgNSBib3AgMTUwIC0xMTYgYSBGdCgyKTI2NDUgYihHTlUpMzEgYihSZWFkbGluZSlnCisoTGlicmFyeSkyNzUgMjk5IHkoV2hlbiloKHkpbShvdSloKGFkZClmKHRleHQpaChpbilmKHRoZSloKG1pZGRsZSlmKG9mKQoraChhKWcobGluZSwpaCh5KW0ob3UpZSh3aWxsKWgobm90aWNlKWgodGhhdClmKGMpbShoYXJhY3RlcnMpaCh0bylnKHRoZSkKK2UocmlnaCltKHQpMTUwIDQwOCB5KG9mKWQodGhlKWcoY3Vyc29yKWYoYXJlKWgoYHB1c2hlZCllKG8pbSh2KW0oZXInKWoKKyh0bylnKG1hayltKGUpZihybylzKG9tKWcoZm9yKWYodGhlKWgodGV4dCloKHRoYXQpZih5KW0ob3UpZyhoYSltKHYpbQorKGUpaChpbnNlcnRlZC4pNDAgYihMaWspbShld2lzZSwpMTUwIDUxOCB5KHdoZW4pZCh5KW0ob3UpZyhkZWxldGUpaQorKHRleHQpZyhiKXMoZWhpbmQpYyh0aGUpaihjdXJzb3IsKWgoYyltKGhhcmFjdGVycylnKHRvKWYodGhlKWcocmlnaCltCisodClnKG9mKWcodGhlKWcoY3Vyc29yKWUoYXJlKWkoYHB1bGxlZCkxNTAgNjI4IHkoYmFjKW0oaycpMjQKK2IodG8pZihcMDE0bGwpZyhpbilmKHRoZSloKGJsYW5rKWYoc3BhY2UpaShjcmVhdGVkKWYoYiltKHkpZyh0aGUpZworKHJlbW8pbSh2KS01IGIoYWwpMjQgYihvZilmKHRoZSlnKHRleHQuKTM5IGIoQSkyMyBiKGxpc3QpZyhvZilnKHRoZSlnCisoYmFyZSlmKGVzc2VuKW0odGlhbHMpMTUwIDczNyB5KGZvcikzMCBiKGVkaXRpbmcpaCh0aGUpZyh0ZXh0KWcob2YpZworKGFuKWYoaW5wdXQpZihsaW5lKWkoZm9sbG8pbSh3cy4pMTUwIDg5MiB5IEZsKEMtYikzMzYKK2IgRnQoTW8pbSh2KW0oZSkzMiBiKGJhYyltKGspZyhvbmUpZShjKW0oaGFyYWN0ZXIuKTE1MAorMTA0OCB5IEZsKEMtZikzMzYgYiBGdChNbyltKHYpbShlKTMyIGIoZm9ydyltKGFyZCllKG9uZSloKGMpbQorKGhhcmFjdGVyLikxNTAgMTIwMCB5IEZrKGgpcCAxNzQgMTE0NyAxNDYgNCB2IDE3NCAxMjAzCithIEZqKERFTClwIDE3NCAxMjE4IFYgMzE2IDEyMDAgYSBGayhpKTM3NiAxMjAzIHkgRnQob3IpNDg3CisxMjAwIHkgRmsoaClwIDUxMiAxMTQ3IDMxNyA0IHYgNTEyIDEyMDMgYSBGaihCYWMpbihrc3BhY2UpcAorNTEyIDEyMTggViA4MjQgMTIwMCBhIEZrKGkpNjMwIDEzMTIgeSBGdChEZWxldGUpaSh0aGUpZChjKW0oaGFyYWN0ZXIpaQorKHRvKWYodGhlKWcobGVmdClnKG9mKWYodGhlKWgoY3Vyc29yLikxNTAgMTQ2NyB5IEZsKEMtZCkzMzYKK2IgRnQoRGVsZXRlKTMzIGIodGhlKWQoYyltKGhhcmFjdGVyKWkodW5kZXJuZWF0aClkKHRoZSlpKGN1cnNvci4pMTUwCisxNjIyIHkoUHJpbiltKHRpbmcpZyhjKW0oaGFyYWN0ZXJzKTYzMCAxNzMyIHkoSW5zZXJ0KWYodGhlKWcoYyltCisoaGFyYWN0ZXIpaShpbiltKHRvKWcodGhlKWUobGluZSloKGF0KWcodGhlKWcoY3Vyc29yLikxNTAKKzE4ODcgeSBGbChDLV8pZSBGdChvcilpIEZsKEMteCllKEMtdSk2MzAgMTk5NyB5IEZ0KFVuZG8payh0aGUpaChsYXN0KWcKKyhlZGl0aW5nKWcoY29tbWFuZC4pNTAgYihZKS04IGIob3UpMzQgYihjYW4pZih1bmRvKWcoYWxsKWgodGhlKWYodyltKGEpCittKHkpaShiYWMpbShrKWYodG8pZyhhbilnKGVtcHQpbSh5KTYzMCAyMTA2IHkobGluZS4pMTUwCisyMjYyIHkoXChEZXApcyhlbmRpbmcpZyhvbilnKHkpbShvdXIpZyhjb25cMDE0Z3VyYXRpb24sKWgodGhlKTE3MjYKKzIyNTkgeSBGayhoKXAgMTc1MCAyMjA1IFYgMTc1MCAyMjYyIGEgRmooQmFjKW4oa3NwYWNlKXAKKzE3NTAgMjI3NyBWIDIwNjMgMjI1OSBhIEZrKGkpMjEyNyAyMjYyIHkgRnQoayltKGV5KWcoYilzKGUpZShzZXQpaCh0byloCisoZGVsZXRlKWcodGhlKWYoYyltKGhhcmFjdGVyKWkodG8pZih0aGUpMTUwIDIzNzEgeShsZWZ0KWYob2YpZih0aGUpZworKGN1cnNvcilmKGFuZCloKHRoZSkxMTkyIDIzNjggeSBGayhoKXAgMTIxNiAyMzE1IDE0NgorNCB2IDEyMTYgMjM3MSBhIEZqKERFTClwIDEyMTYgMjM4NiBWIDEzNTggMjM2OCBhIEZrKGkpMTQyMQorMjM3MSB5IEZ0KGspbShleSlnKHNldCloKHRvKWcoZGVsZXRlKWcodGhlKWYoYyltKGhhcmFjdGVyKWkodW5kZXJuZWF0aCkKK2ModGhlKWkoY3Vyc29yLCloKGxpayltKGUpMTUwIDI0ODEgeSBGbChDLWQpcCBGdCgsKWMocmF0aGVyKWcodGhhbilnCisodGhlKWgoYyltKGhhcmFjdGVyKWgodG8pZih0aGUpZihsZWZ0KWgob2YpZyh0aGUpZihjdXJzb3IuXCkpMTUwCisyNjk4IHkgRmgoMS4yLjIpNjMgYihSZWFkbGluZSk0MCBiKE1vKW0odiltKGVtZW4pbSh0KWgoQ29tbWFuZHMpMjc1CisyOTQwIHkgRnQoVGhlKTI1IGIoYWIpcyhvKW0odiltKGUpaSh0YWJsZSlnKGRlc2NyaWIpcyhlcylmKHRoZSlnKG1vc3QpaAorKGJhc2ljKWYoayltKGV5c3Ryb2spbShlcylpKHRoYXQpZih5KW0ob3UpZihuZWVkKWcoaW4pZyhvcmRlcilmKHRvKWkKKyhkbylmKGVkaXRpbmcpMTUwIDMwNTAgeShvZilnKHRoZSlmKGlucHV0KWcobGluZS4pMzkKK2IoRiktOCBiKG9yKTI3IGIoeSltKG91cillKGNvbiltKHYpbShlbmllbmNlLClrKG1hbiltKHkpYyhvdGhlciloCisoY29tbWFuZHMpZihoYSltKHYpbShlKWkoYilzKGVlbillKGFkZGVkKWcoaW4pZyhhZGRpdGlvbikxNTAKKzMxNjAgeSh0bykzMyBiIEZsKEMtYilwIEZ0KCwpZSBGbChDLWYpcCBGdCgsKWggRmwoQy1kKXAKK0Z0KCwpZyhhbmQpMTA0MyAzMTU3IHkgRmsoaClwIDEwNjcgMzEwNCBWIDEwNjcgMzE2MCBhCitGaihERUwpcCAxMDY3IDMxNzUgViAxMjA5IDMxNTcgYSBGayhpKTEyMzkgMzE2MCB5IEZ0KC4pNDUKK2IoSGVyZSkzMyBiKGFyZSlmKHNvbWUpZyhjb21tYW5kcylnKGZvcilnKG1vKW0odmluZyloKG1vcmUpZihyYXBpZGx5KWYKKyhhYilzKG91dCloKHRoZSkxNTAgMzI2OSB5KGxpbmUuKTE1MCAzNDI0IHkgRmwoQy1hKTMzNgorYiBGdChNbyltKHYpbShlKTMyIGIodG8pZyh0aGUpZShzdGFydCloKG9mKWcodGhlKWYobGluZS4pMTUwCiszNTc5IHkgRmwoQy1lKTMzNiBiIEZ0KE1vKW0odiltKGUpMzIgYih0bylnKHRoZSllKGVuZClnKG9mKWcodGhlKWgKKyhsaW5lLikxNTAgMzczNSB5IEZsKE0tZikzMzYgYiBGdChNbyltKHYpbShlKTMyIGIoZm9ydyltKGFyZCllKGEpaCh3KW0KKyhvcmQsKWYod2hlcmUpZyhhKWgodyltKG9yZClmKGlzKWcoY29tcClzKG9zZWQpZyhvZiloKGxldHRlcnMpaChhbmQpZAorKGRpZ2l0cy4pMTUwIDM4OTAgeSBGbChNLWIpMzM2IGIgRnQoTW8pbSh2KW0oZSkzMiBiKGJhYyltKGt3KW0oYXJkKWYoYSkKK2codyltKG9yZC4pMTUwIDQwNDUgeSBGbChDLWwpMzM2IGIgRnQoQ2xlYXIpMzEgYih0aGUpZihzY3JlZW4sKWgKKyhyZXByaW4pbSh0aW5nKWYodGhlKWgoY3VycmVuKW0odClmKGxpbmUpaChhdClnKHRoZSlmKHRvcC4pMjc1Cis0MjAwIHkoTm90aWNlKWMoaG8pbSh3KWYgRmwoQy1mKWUgRnQobW8pbSh2KW0oZXMpaihmb3J3KW0oYXJkKWUoYSloKGMpbQorKGhhcmFjdGVyLClqKHdoaWxlKWQgRmwoTS1mKWUgRnQobW8pbSh2KW0oZXMpaihmb3J3KW0oYXJkKWUoYSloKHcpbQorKG9yZC4pMzkgYihJdCkyNCBiKGlzKWgoYSlnKGxvKXMob3NlKTE1MCA0MzEwIHkoY29uKW0odiltKGVuKW0odGlvbikzMgorYih0aGF0KWYoY29uKW0odHJvbClnKGspbShleXN0cm9rKW0oZXMpaChvcClzKGVyYXRlKWUob24pZyhjKW0KKyhoYXJhY3RlcnMpaCh3aGlsZSlmKG1ldGEpaChrKW0oZXlzdHJvayltKGVzKWgob3ApcyhlcmF0ZSllKG9uKTE1MAorNDQxOSB5KHcpbShvcmRzLikxNTAgNDYzNyB5IEZoKDEuMi4zKTYzIGIoUmVhZGxpbmUpNDAKK2IoS2lsbGluZylpKENvbW1hbmRzKTI3NSA0ODc5IHkgRmkoS2lsbGluZylqIEZ0KHRleHQpMzkKK2IobWVhbnMpZSh0byloKGRlbGV0ZSlnKHRoZSlnKHRleHQpZyhmcm9tKWYodGhlKWcobGluZSwpaihidXQpZCh0byloCisoc2EpbSh2KW0oZSloKGl0KWUoYSltKHcpbShhKW0oeSlqKGZvcilkKGxhdGVyKWgodXNlLCkxNTAKKzQ5ODggeSh1c3VhbGx5KWMoYiltKHkpZyBGaSh5KW0oYW5raW5nKTQyIGIgRnQoXChyZS1pbnNlcnRpbmdcKSkzNQorYihpdClnKGJhYyltKGspZyhpbiltKHRvKWcodGhlKWYobGluZS4pNTIgYihcKGBDdXQnKTM1CitiKGFuZCllKGBwYXN0ZScpaShhcmUpZyhtb3JlKWYocmVjZW4pbSh0KTE1MCA1MDk4IHkoamFyZ29uKWQoZm9yKWYKKyhga2lsbCcpaChhbmQpZihgeSltKGFuaycuXCkpMjc1IDUyMzAgeShJZilmKHRoZSlpKGRlc2NyaXB0aW9uKWYoZm9yKWcKKyhhKWgoY29tbWFuZClmKHNhKW0oeXMpZyh0aGF0KWgoaXQpZyhga2lsbHMnKWcodGV4dCwpaCh0aGVuKWUoeSltKG91KWcKKyhjYW4paChiKXMoZSllKHN1cmUpaCh0aGF0KWgoeSltKG91KTE1MCA1MzQwIHkoY2FuKWcoZ2V0KWcodGhlKWcodGV4dClnCisoYmFjKW0oaylnKGluKWYoYSloKGRpXDAxM2VyZW4pbSh0KWcoXChvcilnKHRoZSlmKHNhbWVcKSloKHBsYWNlKWgKKyhsYXRlci4pcCBlb3AgZW5kCislJVBhZ2U6IDMgNworVGVYRGljdCBiZWdpbiAzIDYgYm9wIDE1MCAtMTE2IGEgRnQoQ2hhcHRlcikzMCBiKDE6KTQxCitiKENvbW1hbmQpMjkgYihMaW5lKWkoRWRpdGluZykyMTUzIGIoMykyNzUgMjk5IHkoV2hlbikyMworYih5KW0ob3UpZyh1c2UpZyhhKWgoa2lsbClnKGNvbW1hbmQsKWcodGhlKWcodGV4dClnKGlzKWYoc2EpbSh2KW0oZWQpaQorKGluKWUoYSlnIEZpKGtpbGwtcmluZylwIEZ0KC4pMzkgYihBbiltKHkpMjQgYihuKW0odW0pbShiKXMoZXIpZShvZiloCisoY29uc2VjdXRpdiltKGUpMTUwIDQwOCB5KGtpbGxzKTMxIGIoc2EpbSh2KW0oZSlpKGFsbClmKG9mKWYodGhlKWcKKyhraWxsZWQpaCh0ZXh0KWcodG9nZXRoZXIsKWcoc28pZyh0aGF0KWYod2hlbilmKHkpbShvdSloKHkpbShhbmspaChpdClmCisoYmFjKW0oaywpaCh5KW0ob3UpZyhnZXQpZyhpdClmKGFsbC4pNDMgYihUaGUpMTUwIDUxOAoreShraWxsKTMzIGIocmluZylmKGlzKWcobm90KWgobGluZSlnKHNwKXMoZWNpXDAxNGM7KWcodGhlKWcodGV4dClnCisodGhhdClnKHkpbShvdSlnKGtpbGxlZClmKG9uKWgoYSlmKHByZXZpb3VzbHkpZyh0KW0oeXApcyhlZCloKGxpbmUpZgorKGlzKWgoYSltKHYpLTUgYihhaWxhYmxlKTE1MCA2MjggeSh0bykzMSBiKGIpcyhlKWYoeSltKGFuayltKGVkKWgoYmFjKW0KKyhrKWcobGF0ZXIsKWgod2hlbilkKHkpbShvdSlpKGFyZSlnKHQpbSh5cGluZylmKGFub3RoZXIpaChsaW5lLikyNzUKKzc2MCB5KEhlcmUpZihpcyloKHRoZSlmKGxpc3QpaChvZilnKGNvbW1hbmRzKWYoZm9yKWcoa2lsbGluZyloKHRleHQuKQorMTUwIDkxNiB5IEZsKEMtaykzMzYgYiBGdChLaWxsKTMxIGIodGhlKWYodGV4dClpKGZyb20pZSh0aGUpZyhjdXJyZW4pbQorKHQpZyhjdXJzb3IpZyhwKXMob3NpdGlvbiloKHRvKWcodGhlKWYoZW5kKWcob2YpZyh0aGUpaChsaW5lLikxNTAKKzEwNzIgeSBGbChNLWQpMzM2IGIgRnQoS2lsbCkyNyBiKGZyb20pZih0aGUpZyhjdXJzb3IpZyh0byloKHRoZSlmKGVuZClnCisob2YpaCh0aGUpZihjdXJyZW4pbSh0KWcodyltKG9yZCwpaChvciwpaChpZillKGIpcyhldCltKHcpbShlZW4paCh3KW0KKyhvcmRzLClnKHRvKWcodGhlKTYzMCAxMTgyIHkoZW5kKWoob2YpZyh0aGUpaChuZXh0KWYodyltKG9yZC4pNDEKK2IoVyktOCBiKG9yZCkzMCBiKGIpcyhvdW5kYXJpZXMpZihhcmUpaSh0aGUpZyhzYW1lKWYoYXMpaCh0aG9zZSlnKHVzZWQpCitmKGIpbSh5KWcgRmwoTS1mKXAgRnQoLikxNTAgMTMzNyB5IEZsKE0tKTI0NiAxMzM0IHkgRmsoaClwCisyNzAgMTI4MSAxNDYgNCB2IDI3MCAxMzM3IGEgRmooREVMKXAgMjcwIDEzNTMgViA0MTEgMTMzNAorYSBGayhpKTYzMCAxMzM3IHkgRnQoS2lsbCloKGZyb20pZih0aGUpaChjdXJzb3IpZih0aGUpZyhzdGFydCloKG9mKWcKKyh0aGUpZyhjdXJyZW4pbSh0KWYodyltKG9yZCwpaChvciwpZihpZiloKGIpcyhldCltKHcpbShlZW4pZyh3KW0ob3JkcywpCitmKHRvKWkodGhlKTYzMCAxNDQ3IHkoc3RhcnQpMzkgYihvZilmKHRoZSloKHByZXZpb3VzKWYodyltKG9yZC4pNjQKK2IoVyktOCBiKG9yZCkzOSBiKGIpcyhvdW5kYXJpZXMpZShhcmUpaSh0aGUpZihzYW1lKWgoYXMpZyh0aG9zZSlmKHVzZWQpCitnKGIpbSh5KTYzMCAxNTU3IHkgRmwoTS1iKXAgRnQoLikxNTAgMTcxMiB5IEZsKEMtdykzMzYKK2IgRnQoS2lsbCkzMiBiKGZyb20pZSh0aGUpaShjdXJzb3IpZSh0bylpKHRoZSlnKHByZXZpb3VzKWUod2hpdGVzcGFjZS4pCis0NCBiKFRoaXMpMzEgYihpcylnKGRpXDAxM2VyZW4pbSh0KWgodGhhbilmIEZsKE0tKTM1NTUKKzE3MDkgeSBGayhoKXAgMzU3OCAxNjU2IFYgMzU3OCAxNzEyIGEgRmooREVMKXAgMzU3OCAxNzI4CitWIDM3MjAgMTcwOSBhIEZrKGkpNjMwIDE4MjIgeSBGdChiKXMoZWNhdXNlKWYodGhlKWgodyltKG9yZClmKGIpcworKG91bmRhcmllcylmKGRpXDAxM2VyLikyNzUgMTk3OCB5KEhlcmUpNDIgYihpcylmKGhvKW0odyloKHRvKWcKK0ZpKHkpbShhbmspNDcgYiBGdCh0aGUpNDIgYih0ZXh0KWcoYmFjKW0oayloKGluKW0odG8pZih0aGUpZyhsaW5lLik3NAorYihZKS04IGIoYW5raW5nKTQzIGIobWVhbnMpZSh0byloKGNvcCltKHkpaCh0aGUpZShtb3N0LSkxNTAKKzIwODcgeShyZWNlbiltKHRseS1raWxsZWQpMzMgYih0ZXh0KWUoZnJvbSlmKHRoZSlnKGtpbGwpaShidVwwMTNlci4pMTUwCisyMjQzIHkgRmwoQy15KTMzNiBiIEZ0KFkpLTggYihhbmspMzEgYih0aGUpZihtb3N0KWgocmVjZW4pbSh0bHkpaAorKGtpbGxlZClmKHRleHQpZyhiYWMpbShrKWcoaW4pbSh0byloKHRoZSllKGJ1XDAxM2VyKWcoYXQpaCh0aGUpZgorKGN1cnNvci4pMTUwIDIzOTkgeSBGbChNLXkpMzM2IGIgRnQoUm90YXRlKTM2IGIodGhlKWYoa2lsbC1yaW5nLClpKGFuZCkKK2QoeSltKGFuayloKHRoZSlmKG5ldylnKHRvcC4pNTQgYihZKS04IGIob3UpMzUgYihjYW4pZyhvbmx5KWYoZG8paAorKHRoaXMpZihpZiloKHRoZSlnKHByaW9yKTYzMCAyNTA5IHkoY29tbWFuZCkzMCBiKGlzKWgKK0ZsKEMteSllIEZ0KG9yKWggRmwoTS15KXAgRnQoLikxNTAgMjcyNyB5IEZoKDEuMi40KTYzCitiKFJlYWRsaW5lKTQwIGIoQXJndW1lbiltKHRzKTI3NSAyOTcwIHkgRnQoWSktOCBiKG91KTI5CitiKGNhbiloKHBhc3MpZihuKW0odW1lcmljKWcoYXJndW1lbiltKHRzKWcodG8paChSZWFkbGluZSlnKGNvbW1hbmRzLik0MAorYihTb21ldGltZXMpMzAgYih0aGUpZihhcmd1bWVuKW0odCloKGFjdHMpMTUwIDMwNzkgeShhcyk0MAorYihhKWgocmVwKXMoZWF0KWYoY291biltKHQsKWoob3RoZXIpZSh0aW1lcylmKGl0KWgoaXMpZih0aGUpZworRm4oc2lnbik0NyBiIEZ0KG9mKTQxIGIodGhlKWYoYXJndW1lbiltKHQpZyh0aGF0KWgoaXMpZihzaWduaVwwMTRjYW4pbQorKHQuKTcxIGIoSWYpNDAgYih5KW0ob3UpMTUwIDMxODkgeShwYXNzKTMzIGIoYSloKG5lZ2F0aXYpbShlKWkoYXJndW1lbikKK20odCllKHRvKWcoYSlnKGNvbW1hbmQpZih3aGljKW0oaClnKG5vcm1hbGx5KWgoYWN0cylnKGluKWYoYSloKGZvcncpbQorKGFyZClmKGRpcmVjdGlvbiwpaSh0aGF0KTE1MCAzMjk4IHkoY29tbWFuZClnKHdpbGwpaChhY3QpZyhpbilmKGEpaAorKGJhYyltKGt3KW0oYXJkKWYoZGlyZWN0aW9uLik1NyBiKEYpLTggYihvcikzNiBiKGV4YW1wbGUsKWgodG8pZihraWxsKWcKKyh0ZXh0KWcoYmFjKW0oaylnKHRvKWcodGhlKWcoc3RhcnQpZyhvZikxNTAgMzQwOCB5KHRoZSkzMQorYihsaW5lLClnKHkpbShvdSlmKG1pZ2gpbSh0KWgodCltKHlwKXMoZSlnKGApcCBGcyhNLS0pZihDLWspcAorRnQoJy4pMjc1IDM1NDEgeShUaGUpZChnZW5lcmFsKWkodyltKGEpbSh5KWgodG8pZShwYXNzKWcobiltKHVtZXJpYylnCisoYXJndW1lbiltKHRzKWgodG8pZyhhKWYoY29tbWFuZClnKGlzKWcodG8paCh0KW0oeXApcyhlKWYobWV0YSlpCisoZGlnaXRzKWUoYilzKGVmb3JlKTE1MCAzNjUwIHkodGhlKWooY29tbWFuZC4pNDIgYihJZikzMAorYih0aGUpaChcMDE0cnN0KWYoYGRpZ2l0JylpKHQpbSh5cClzKGVkKWYoaXMpZyhhKWcobWluKW0odXMpZihzaWduKWgKKyhcKGApcCBGcygtKXAgRnQoJ1wpLCloKHRoZW4pZih0aGUpZyhzaWduKWYob2YpaCh0aGUpZyhhcmd1bWVuKW0odCkxNTAKKzM3NjAgeSh3aWxsKTM5IGIoYilzKGUpZShuZWdhdGl2KW0oZS4pNjYgYihPbmNlKTM4IGIoeSltKG91KWgoaGEpbSh2KW0KKyhlKWcodCltKHlwKXMoZWQpZihvbmUpaChtZXRhKWcoZGlnaXQpZyh0bylmKGdldClpKHRoZSllKGFyZ3VtZW4pbSh0KWgKKyhzdGFydGVkLClpKHkpbShvdSkxNTAgMzg2OSB5KGNhbikyOSBiKHQpbSh5cClzKGUpZyh0aGUpZyhyZW1haW5kZXIpZgorKG9mKWgodGhlKWcoZGlnaXRzLCloKGFuZClmKHRoZW4pZih0aGUpaChjb21tYW5kLik0MAorYihGKS04IGIob3IpMzAgYihleGFtcGxlLClnKHRvKWYoZ2l2KW0oZSlpKHRoZSllIEZsKEMtZCkxNTAKKzM5NzkgeSBGdChjb21tYW5kKTM3IGIoYW4pZyhhcmd1bWVuKW0odCloKG9mKWcoMTAsKWkoeSltKG91KWUoY291bGQpZgorKHQpbSh5cClzKGUpaChgKXAgRnMoTS0xKTI5IGIoMCloKEMtZClwIEZ0KCcsKTM5IGIod2hpYyltKGgpZSh3aWxsKWgKKyhkZWxldGUpaCh0aGUpZShuZXh0KWgodGVuKTE1MCA0MDg5IHkoYyltKGhhcmFjdGVycykzMgorYihvbillKHRoZSloKGlucHV0KWUobGluZS4pMTUwIDQzMDcgeSBGaCgxLjIuNSk2MyBiKFNlYXJjKW0oaGluZyk0MAorYihmb3IpaShDb21tYW5kcylnKGluKWYodGhlKWcoSGlzdG9yeSkyNzUgNDU1MCB5IEZ0KFJlYWRsaW5lKTMyCitiKHBybyltKHZpZGVzKWgoY29tbWFuZHMpZihmb3IpZyhzZWFyYyltKGhpbmcpaCh0aHJvdWdoKWUodGhlKWkKKyhjb21tYW5kKWYoaGlzdG9yeSlnKGZvcilnKGxpbmVzKWcoY29uLSkxNTAgNDY1OSB5KHRhaW5pbmcpZihhKWcoc3ApcworKGVjaVwwMTRlZClmKHN0cmluZy4pNDAgYihUaGVyZSkzMCBiKGFyZSloKHQpbSh3KW0obyloKHNlYXJjKW0oaClmKG1vKXMKKyhkZXM6KTQwIGIgRmkoaW5jcmVtZW4pbSh0YWwpMzUgYiBGdChhbmQpMzAgYiBGaShub24taW5jcmVtZW4pbSh0YWwpcAorRnQoLikyNzUgNDc5MiB5KEluY3JlbWVuKW0odGFsKWMoc2VhcmMpbShoZXMpaChiKXMoZWdpbillKGIpcyhlZm9yZSlnCisodGhlKWgodXNlcilmKGhhcyloKFwwMTRuaXNoZWQpZSh0KW0oeXBpbmcpaSh0aGUpZyhzZWFyYyltKGgpZyhzdHJpbmcuKQorMzkgYihBcykyNiBiKGVhYyltKGgpMTUwIDQ5MDIgeShjKW0oaGFyYWN0ZXIpMzcgYihvZillKHRoZSloKHNlYXJjKW0oaCkKK2coc3RyaW5nKWYoaXMpaCh0KW0oeXApcyhlZCwpZyhSZWFkbGluZSlnKGRpc3BsYSltKHlzKWcodGhlKWYobmV4dCloCisoZW4pbSh0cnkpZyhmcm9tKWUodGhlKWkoaGlzdG9yeSkxNTAgNTAxMSB5KG1hdGMpbShoaW5nKTI1CitiKHRoZSlmKHN0cmluZylnKHQpbSh5cClzKGVkKWcoc28pZyhmYXIuKTM5IGIoQW4pMjMgYihpbmNyZW1lbiltKHRhbClqCisoc2VhcmMpbShoKWUocmVxdWlyZXMpZyhvbmx5KWcoYXMpZyhtYW4pbSh5KWcoYyltKGhhcmFjdGVycylpKGFzKTE1MAorNTEyMSB5KG5lZWRlZClpKHRvKWkoXDAxNG5kKWQodGhlKWkoZGVzaXJlZClmKGhpc3RvcnkpaChlbiltKHRyeSktOAorYiguKTQxIGIoVCktOCBiKG8pMjkgYihzZWFyYyltKGgpaChiYWMpbShrdyltKGFyZClmKGluKWYodGhlKWgoaGlzdG9yeSkKK2coZm9yKWYoYSlpKHBhcnRpY3VsYXIpMTUwIDUyMzAgeShzdHJpbmcsKWcodCltKHlwKXMoZSlmCitGbChDLXIpcCBGdCguKTQwIGIoVCltKHlwaW5nKTI5IGIgRmwoQy1zKWcgRnQoc2VhcmMpbShoZXMpaChmb3J3KW0oYXJkKQorZih0aHJvdWdoKWcodGhlKWcoaGlzdG9yeSktOCBiKC4pNDEgYihUaGUpMjkgYihjKW0oaGFyYWN0ZXJzKWkocHJlc2VuKW0KKyh0KTE1MCA1MzQwIHkoaW4pMzggYih0aGUpZyh2KS01IGIoYWx1ZSkzOCBiKG9mKWcodGhlKWcKK0ZzKGlzZWFyY2gtdGVybWluYXRvcnMpMzMgYiBGdCh2KS01IGIoYXJpYWJsZSkzOSBiKGFyZSlmKHVzZWQpZih0bylpCisodGVybWluYXRlKWcoYW4pZihpbmNyZW1lbiltKHRhbClwIGVvcCBlbmQKKyUlUGFnZTogNCA4CitUZVhEaWN0IGJlZ2luIDQgNyBib3AgMTUwIC0xMTYgYSBGdCg0KTI2NDUgYihHTlUpMzEgYihSZWFkbGluZSlnCisoTGlicmFyeSkxNTAgMjk5IHkoc2VhcmMpbShoLik2MyBiKElmKTM4IGIodGhhdClnKHYpLTUKK2IoYXJpYWJsZSkzOCBiKGhhcylnKG5vdClnKGIpcyhlZW4pZihhc3NpZ25lZCloKGEpZyh2KS01CitiKGFsdWUsKTQwIGIodGhlKTI1NzggMjk2IHkgRmsoaClwIDI2MDIgMjQzIDEzOSA0IHYgMjYwMgorMjk5IGEgRmooRVNDKXAgMjYwMiAzMTQgViAyNzM2IDI5NiBhIEZrKGkpMjgwNCAyOTkgeQorRnQoYW5kKWQgRmwoQy1KKWYgRnQoYyltKGhhcmFjdGVycylrKHdpbGwpMTUwIDQwOCB5KHRlcm1pbmF0ZSlqKGFuKWcKKyhpbmNyZW1lbiltKHRhbClnKHNlYXJjKW0oaC4pNzggYiBGbChDLWcpNDEgYiBGdCh3aWxsKWkoYWIpcyhvcnQpZihhbilnCisoaW5jcmVtZW4pbSh0YWwpaShzZWFyYyltKGgpZihhbmQpZihyZXN0b3JlKWgodGhlKTE1MAorNTE4IHkob3JpZ2luYWwpMzAgYihsaW5lLik0MSBiKFdoZW4pMjggYih0aGUpaChzZWFyYyltKGgpaChpcylmCisodGVybWluYXRlZCwpaCh0aGUpZihoaXN0b3J5KWcoZW4pbSh0cnkpZyhjb24pbSh0YWluaW5nKWgodGhlKWYoc2VhcmMpbQorKGgpaChzdHJpbmcpMTUwIDYyOCB5KGIpcyhlY29tZXMpaCh0aGUpZihjdXJyZW4pbSh0KWcobGluZS4pMjc1Cis3NjkgeShUKS04IGIobykzMSBiKFwwMTRuZCllKG90aGVyKWoobWF0YyltKGhpbmcpZyhlbiltKHRyaWVzKWcoaW4pZQorKHRoZSloKGhpc3RvcnkpZyhsaXN0LCloKHQpbSh5cClzKGUpZyBGbChDLXIpZSBGdChvciloCitGbChDLXMpZiBGdChhcyloKGFwcHJvcHJpYXRlLik0MyBiKFRoaXMpMTUwIDg3OCB5KHdpbGwpMjYKK2Ioc2VhcmMpbShoKWgoYmFjKW0oa3cpbShhcmQpZyhvcilmKGZvcncpbShhcmQpZyhpbilmKHRoZSlpKGhpc3RvcnkpZgorKGZvcilnKHRoZSlnKG5leHQpZyhlbiltKHRyeSloKG1hdGMpbShoaW5nKWcodGhlKWYoc2VhcmMpbShoKWgoc3RyaW5nKQorMTUwIDk4OCB5KHQpbSh5cClzKGVkKTM3IGIoc28paChmYXIuKTYzIGIoQW4pbSh5KTM4IGIob3RoZXIpZihrKW0oZXkpaQorKHNlcXVlbmNlKWYoYilzKG91bmQpZSh0bylpKGEpZyhSZWFkbGluZSloKGNvbW1hbmQpZSh3aWxsKWgodGVybWluYXRlKWgKKyh0aGUpMTUwIDEwOTggeShzZWFyYyltKGgpMjIgYihhbmQpZShleGVjdXRlKWoodGhhdCllKGNvbW1hbmQuKTM4CitiKEYpLTggYihvcikyMiBiKGluc3RhbmNlLCloKGEpMjEyNyAxMDk1IHkgRmsoaClwIDIxNTEKKzEwNDIgMTUxIDQgdiAyMTUxIDEwOTggYSBGaihSRVQpcCAyMTUxIDExMTMgViAyMjk4IDEwOTUKK2EgRmsoaSkyMzQ5IDEwOTggeSBGdCh3aWxsKWUodGVybWluYXRlKWgodGhlKWYoc2VhcmMpbShoKWgoYW5kKWUKKyhhY2NlcHQpMTUwIDEyMDcgeSh0aGUpMzAgYihsaW5lLClnKHRoZXJlYiltKHkpZihleGVjdXRpbmcpaSh0aGUpZQorKGNvbW1hbmQpZyhmcm9tKWcodGhlKWgoaGlzdG9yeSlmKGxpc3QuKTQxIGIoQSkyOSBiKG1vKW0odiltKGVtZW4pbSh0KWoKKyhjb21tYW5kKWQod2lsbCkxNTAgMTMxNyB5KHRlcm1pbmF0ZSlpKHRoZSlnKHNlYXJjKW0oaCwpZyhtYWspbShlKWgKKyh0aGUpZShsYXN0KWgobGluZSlnKGZvdW5kKWUodGhlKWkoY3VycmVuKW0odClmKGxpbmUsKWgoYW5kKWYoYilzKGVnaW4pCitnKGVkaXRpbmcuKTI3NSAxNDU4IHkoUmVhZGxpbmUpMzUgYihyZW1lbSltKGIpcyhlcnMpZih0aGUpaChsYXN0KWgKKyhpbmNyZW1lbiltKHRhbClnKHNlYXJjKW0oaClmKHN0cmluZy4pNTQgYihJZikzNCBiKHQpbSh3KW0obylqCitGbChDLXIpcCBGdChzKWMoYXJlKWkodCltKHlwKXMoZWQpZyh3aXRob3V0KTE1MCAxNTY3Cit5KGFuKW0oeSlpKGluKW0odGVydiltKGVuaW5nKWcoYyltKGhhcmFjdGVycyloKGRlXDAxNG5pbmcpZShhKWgobmV3KWYKKyhzZWFyYyltKGgpaChzdHJpbmcsKWgoYW4pbSh5KWYocmVtZW0pbShiKXMoZXJlZCllKHNlYXJjKW0oaClpKHN0cmluZylnCisoaXMpMTUwIDE2NzcgeSh1c2VkLikyNzUgMTgxOCB5KE5vbi1pbmNyZW1lbiltKHRhbCk0OAorYihzZWFyYyltKGhlcylnKHJlYWQpZSh0aGUpaChlbiltKHRpcmUpaChzZWFyYyltKGgpZihzdHJpbmcpZyhiKXMKKyhlZm9yZSlmKHN0YXJ0aW5nKWgodG8paChzZWFyYyltKGgpZihmb3IpMTUwIDE5MjggeShtYXRjKW0oaGluZylkCisoaGlzdG9yeSllKGxpbmVzLik3OCBiKFRoZSk0MiBiKHNlYXJjKW0oaCloKHN0cmluZylnKG1hKW0oeSlnKGIpcyhlKWYKKyh0KW0oeXApcyhlZClnKGIpbSh5KWcodGhlKWgodXNlcilmKG9yKWgoYilzKGUpZihwYXJ0KWcob2YpaCh0aGUpMTUwCisyMDM3IHkoY29uKW0odGVuKW0odHMpMzIgYihvZilmKHRoZSlmKGN1cnJlbiltKHQpZyhsaW5lLikxNTAKKzIzMTEgeSBGcigxLjMpNjggYihSZWFkbGluZSk0NyBiKEluaXQpZShGaWxlKTI3NSAyNTYyCit5IEZ0KEFsdGhvdWdoKWcodGhlKWcoUmVhZGxpbmUpaChsaWJyYXJ5KWUoY29tZXMpaSh3aXRoKWYoYSloKHNldClmKG9mKQorZyhFbWFjcy1saWspbShlKWkoayltKGV5YmluZGluZ3MpZShpbnN0YWxsZWQpMTUwIDI2NzIKK3koYiltKHkpZChkZWZhdWx0LClpKGl0KWYoaXMpZShwKXMob3NzaWJsZSlnKHRvKWkodXNlKWUoYSloKGRpXDAxM2VyZW4pCittKHQpZyhzZXQpZyhvZilnKGspbShleWJpbmRpbmdzLik3NCBiKEFuKW0oeSk0MiBiKHVzZXIpZihjYW4paAorKGN1c3RvbWl6ZSkxNTAgMjc4MSB5KHByb2dyYW1zKTMyIGIodGhhdCloKHVzZSlmKFJlYWRsaW5lKWgoYiltKHkpZworKHB1dHRpbmcpZihjb21tYW5kcylnKGluKWcoYW4pZyBGaShpbnB1dHJjKTM3IGIgRnQoXDAxNGxlLClkKGNvbiltKHYpbQorKGVuKW0odGlvbmFsbHkpaChpbilkKGhpcykxNTAgMjg5MSB5KGhvbWUpaChkaXJlY3RvcnkpLTgKK2IoLik1MCBiKFRoZSkzMyBiKG5hbWUpZyhvZilnKHRoaXMpZyhcMDE0bGUpaChpcylmKHRhayltKGVuKWgoZnJvbSlmCisodGhlKWcodiktNSBiKGFsdWUpMzQgYihvZilmKHRoZSlnKGVuKW0odmlyb25tZW4pbSh0KWgodiktNQorYihhcmlhYmxlKTE1MCAzMDAwIHkgRnMoSU5QVVRSQylwIEZ0KC4pMzkgYihJZikzMCBiKHRoYXQpaCh2KS01CitiKGFyaWFibGUpMzEgYihpcylmKHVuc2V0LClnKHRoZSloKGRlZmF1bHQpZyhpcylmKGApcAorRnMofi8uaW5wdXRyYylwIEZ0KCcuKTI3NSAzMTQyIHkoV2hlbilmKGEpaChwcm9ncmFtKWYod2hpYyltKGgpaCh1c2VzKWYKKyh0aGUpaChSZWFkbGluZSlnKGxpYnJhcnkpZihzdGFydHMpaCh1cCwpZih0aGUpaChpbml0KWcoXDAxNGxlKWYoaXMpaAorKHJlYWQsKWcoYW5kKWYodGhlKTE1MCAzMjUxIHkoayltKGV5KWkoYmluZGluZ3MpZShhcmUpaShzZXQuKTI3NQorMzM5MiB5KEluKTI2IGIoYWRkaXRpb24sKWkodGhlKWYgRnMoQy14KWkoQy1yKWQgRnQoY29tbWFuZCloKHJlLXJlYWRzKWcKKyh0aGlzKWYoaW5pdCloKFwwMTRsZSwpaCh0aCltKHVzKWYoaW5jb3JwKXMob3JhdGluZylnKGFuKW0oeSlnKGMpbQorKGhhbmdlcykxNTAgMzUwMiB5KHRoYXQpayh5KW0ob3UpZyhtaWdoKW0odClnKGhhKW0odiltKGUpZyhtYWRlKWcodG8pZworKGl0LikxNTAgMzczOSB5IEZoKDEuMy4xKTYzIGIoUmVhZGxpbmUpNDAgYihJbml0KWgoRmlsZSlnKFN5biltKHRheCkyNzUKKzM5OTAgeSBGdChUaGVyZSkzMyBiKGFyZSloKG9ubHkpZyhhKWcoZmV3KWYoYmFzaWMpaChjb25zdHJ1Y3RzKWcoYWxsbyltCisodyltKGVkKWgoaW4pZih0aGUpZyhSZWFkbGluZSlnKGluaXQpZyhcMDE0bGUuKTUxIGIoQmxhbmspMzQKK2IobGluZXMpZyhhcmUpMTUwIDQxMDAgeShpZ25vcmVkLik3MiBiKExpbmVzKTQxIGIoYilzKGVnaW5uaW5nKWYod2l0aCloCisoYSlnKGApcCBGcygjKXAgRnQoJylnKGFyZSloKGNvbW1lbiltKHRzLik3MyBiKExpbmVzKTQxCitiKGIpcyhlZ2lubmluZylmKHdpdGgpZyhhKWkoYClwIEZzKCQpcCBGdCgnKWYoaW5kaWNhdGUpMTUwCis0MjA5IHkoY29uZGl0aW9uYWwpMjkgYihjb25zdHJ1Y3RzKWYoXChzZWUpZyhTZWN0aW9uKWgoMS4zLjIpZworKFtDb25kaXRpb25hbClnKEluaXQpZShDb25zdHJ1Y3RzXSwpaShwYWdlKWYoOVwpLik0MQorYihPdGhlcikyNyBiKGxpbmVzKTE1MCA0MzE5IHkoZGVub3RlKWsodiktNSBiKGFyaWFibGUpMzEKK2Ioc2V0dGluZ3MpZyhhbmQpZihrKW0oZXkpaChiaW5kaW5ncy4pMTUwIDQ0ODggeShWKS04CitiKGFyaWFibGUpMzIgYihTZXR0aW5ncyk2MzAgNDU5OCB5KFkpLTggYihvdSk0MSBiKGNhbilnKG1vKXMoZGlmeSllCisodGhlKWkocnVuLXRpbWUpZihiKXMoZWhhKW0odmlvcilnKG9mKWgoUmVhZGxpbmUpZyhiKW0oeSlmKGFsdGVyaW5nKWgKKyh0aGUpZyh2KS01IGIoYWx1ZXMpNDEgYihvZik2MzAgNDcwNyB5KHYpLTUgYihhcmlhYmxlcykzNAorYihpbilmKFJlYWRsaW5lKWkodXNpbmcpZSh0aGUpZyBGcyhzZXQpZyBGdChjb21tYW5kKWcod2l0aGluKWcodGhlKWgKKyhpbml0KWcoXDAxNGxlLik1MCBiKFRoZSkzMyBiKHN5biltKHRheCk2MzAgNDgxNyB5KGlzKWQoc2ltcGxlOik4NzAKKzQ5NTUgeSBGcyhzZXQpNDcgYiBGbCh2YXJpYWJsZSk1NiBiKHZhbHVlKTYzMCA1MDkzIHkKK0Z0KEhlcmUsKTI5IGIoZm9yKWUoZXhhbXBsZSwpaChpcylnKGhvKW0odylmKHRvKWgoYyltKGhhbmdlKWcoZnJvbSlmCisodGhlKWcoZGVmYXVsdCloKEVtYWNzLWxpayltKGUpaChrKW0oZXkpZihiaW5kaW5nKWUodG8pNjMwCis1MjAyIHkodXNlKWsgRnModmkpZyBGdChsaW5lKWgoZWRpdGluZylnKGNvbW1hbmRzOik4NzAKKzUzNDAgeSBGcyhzZXQpNDcgYihlZGl0aW5nLW1vZGUpZCh2aSlwIGVvcCBlbmQKKyUlUGFnZTogNSA5CitUZVhEaWN0IGJlZ2luIDUgOCBib3AgMTUwIC0xMTYgYSBGdChDaGFwdGVyKTMwIGIoMTopNDEKK2IoQ29tbWFuZCkyOSBiKExpbmUpaShFZGl0aW5nKTIxNTMgYig1KTYzMCAyOTkgeShWKS04CitiKGFyaWFibGUpMzYgYihuYW1lcylmKGFuZClnKHYpLTUgYihhbHVlcywpMzYgYih3aGVyZSlmKGFwcHJvcHJpYXRlLCloCisoYXJlKWcocmVjb2duaXplZClnKHdpdGhvdXQpZihyZWdhcmQpNjMwIDQwOCB5KHRvKWMoY2FzZS4pNDIKK2IoVW5yZWNvZ25pemVkKTMxIGIodiktNSBiKGFyaWFibGUpMzEgYihuYW1lcylnKGFyZSlmKGlnbm9yZWQuKTYzMAorNTM2IHkoQm8pcyhvbGVhbiljKHYpLTUgYihhcmlhYmxlcykyNiBiKFwodGhvc2UpZyh0aGF0KWcoY2FuKWYoYilzKGUpZgorKHNldClpKHRvKWcob24pZihvcilnKG9cMDEzKTcgYihcKSkyNSBiKGFyZSloKHNldClmKHRvKWgob24pZihpZilnKHRoZSkKK2codiktNSBiKGFsdWUpMjYgYihpcyk2MzAgNjQ2IHkobiltKHVsbCllKG9yKWcoZW1wdCltKHkpLTgKK2IoLCkyNyBiIEZpKG9uKWQgRnQoXChjYXNlLWluc2Vuc2l0aXYpbShlXCksKTI5IGIob3IpMjQKK2IoMS4pMzkgYihBbiltKHkpMjUgYihvdGhlcilmKHYpLTUgYihhbHVlKTI1IGIocmVzdWx0cylmKGluKWcodGhlKWcodikKKy01IGIoYXJpYWJsZSk2MzAgNzU2IHkoYilzKGVpbmcpMzAgYihzZXQpaCh0bylnKG9cMDEzLik2MzAKKzg4MyB5KEEpZihncmVhdClpKGRlYWwpZihvZilnKHJ1bi10aW1lKWYoYilzKGVoYSltKHZpb3IpZyhpcylnKGMpbQorKGhhbmdlYWJsZSlqKHdpdGgpZCh0aGUpZyhmb2xsbyltKHdpbmcpaSh2KS01IGIoYXJpYWJsZXMuKTYzMAorMTAyOSB5IEZzKGJlbGwtc3R5bGUpMTExMCAxMTM5IHkgRnQoQ29uKW0odHJvbHMpNDQgYih3aGF0KWcoaGFwcClzKGVucykKK2Uod2hlbiloKFJlYWRsaW5lKWkodyltKGFuKW0odHMpZih0byloKHJpbmcpZSh0aGUpaCh0ZXJtaS0pMTExMAorMTI0OSB5KG5hbCkzNyBiKGIpcyhlbGwuKTYxIGIoSWYpMzcgYihzZXQpaCh0bylnKGApcAorRnMobm9uZSlwIEZ0KCcsKWcoUmVhZGxpbmUpZyhuZXYpbShlcilnKHJpbmdzKWUodGhlKWkoYilzKGVsbC4pNjEKK2IoSWYpMzYgYihzZXQpaSh0bykxMTEwIDEzNTggeShgKXAgRnModmlzaWJsZSlwIEZ0KCcsKTMyCitiKFJlYWRsaW5lKWkodXNlcylmKGEpZyh2aXNpYmxlKWcoYilzKGVsbClnKGlmKWcob25lKWcoaXMpZyhhKW0odiktNQorYihhaWxhYmxlLik1MSBiKElmKTMzIGIoc2V0KWcodG8pMTExMCAxNDY4IHkoYClwIEZzKGF1ZGlibGUpcAorRnQoJylqKFwodGhlKWkoZGVmYXVsdFwpLClpKFJlYWRsaW5lKWUoYXR0ZW1wdHMpZyh0byloKHJpbmcpZSh0aGUpZworKHRlcm1pbmFsJ3MpMTExMCAxNTc3IHkoYilzKGVsbC4pNjMwIDE3MjQgeSBGcyhiaW5kLXR0eS1zcGVjaWFsLWNoYXJzKQorMTExMCAxODMzIHkgRnQoSWYpNDUgYihzZXQpaCh0bylmKGApcCBGcyhvbilwIEZ0KCcsKTUwCitiKFJlYWRsaW5lKTQ1IGIoYXR0ZW1wdHMpaSh0bylmKGJpbmQpZCh0aGUpaihjb24pbSh0cm9sKWcoYyltCisoaGFyYWN0ZXJzKTExMTAgMTk0MyB5KHRyZWF0ZWQpMzYgYihzcClzKGVjaWFsbHkpaChiKW0oeSllKHRoZSloKGspbQorKGVybmVsJ3MpZyh0ZXJtaW5hbClnKGRyaXYpbShlcilmKHRvKWgodGhlaXIpZihSZWFkbGluZSkxMTEwCisyMDUyIHkoZXF1aXYpLTUgYihhbGVuKW0odHMuKTYzMCAyMTk4IHkgRnMoY29tbWVudC1iZWdpbikxMTEwCisyMzA4IHkgRnQoVGhlKTI5IGIoc3RyaW5nKWcodG8paChpbnNlcnQpZihhdCloKHRoZSlmKGIpcyhlZ2lubmluZylnKG9mKQorZyh0aGUpaChsaW5lKWYod2hlbilmKHRoZSlpIEZzKGluc2VydC0pMTExMCAyNDE4IHkoY29tbWVudCllCitGdChjb21tYW5kKWooaXMpZihleGVjdXRlZC4pNDIgYihUaGUpMjkgYihkZWZhdWx0KWkodiktNQorYihhbHVlKTMxIGIoaXMpZiBGcygiIyIpcCBGdCguKTYzMCAyNTY0IHkgRnMoY29tcGxldGlvbi1pZ25vcmUtY2FzZSkKKzExMTAgMjY3MyB5IEZ0KElmKWQoc2V0KWgodG8pZyhgKXAgRnMob24pcCBGdCgnLClnKFJlYWRsaW5lKWcocClzCisoZXJmb3JtcyllKFwwMTRsZW5hbWUpaChtYXRjKW0oaGluZylpKGFuZCllKGNvbXBsZXRpb24pMTExMAorMjc4MyB5KGluKWooYSloKGNhc2UtaW5zZW5zaXRpdiltKGUpaShmYXNoaW9uLik0MCBiKFRoZSkzMAorYihkZWZhdWx0KWgodiktNSBiKGFsdWUpMzAgYihpcyloKGApcCBGcyhvZmYpcCBGdCgnLik2MzAKKzI5MjkgeSBGcyhjb21wbGV0aW9uLXF1ZXJ5LWl0ZW1zKTExMTAgMzAzOSB5IEZ0KFRoZSkyNgorYihuKW0odW0pbShiKXMoZXIpZihvZiloKHApcyhvc3NpYmxlKWcoY29tcGxldGlvbnMpaCh0aGF0KWcoZGV0ZXJtaW5lcykKK2Yod2hlbilmKHRoZSlpKHVzZXIpMTExMCAzMTQ4IHkoaXMpaShhc2spbShlZCloKHdoZXRoZXIpZih0aGUpaChsaXN0KWcKKyhvZilmKHApcyhvc3NpYmlsaXRpZXMpaChzaG91bGQpZShiKXMoZSloKGRpc3BsYSltKHkpbShlZC4pNDEKK2IoSWYpMjkgYih0aGUpMTExMCAzMjU4IHkobiltKHVtKW0oYilzKGVyKWQob2YpaChwKXMob3NzaWJsZSlmCisoY29tcGxldGlvbnMpaShpcylmKGdyZWF0ZXIpaCh0aGFuKWUodGhpcyloKHYpLTUgYihhbHVlLCkyOAorYihSZWFkbGluZSkxMTEwIDMzNjcgeSh3aWxsKWYoYXNrKWcodGhlKWYodXNlcilnKHdoZXRoZXIpZyhvcilnKG5vdCloCisoaGUpZih3aXNoZXMpZyh0bylpKHZpZXcpZSh0aGVtOylpKG90aGVyd2lzZSwpMTExMCAzNDc3Cit5KHRoZXkpZChhcmUpZihzaW1wbHkpZyhsaXN0ZWQuKTQwIGIoVGhpcykyMyBiKHYpLTUgYihhcmlhYmxlKTI1CitiKG0pbSh1c3QpZyhiKXMoZSllKHNldClpKHRvKWcoYW4pZyhpbiltKHRlZ2VyKWcodiktNQorYihhbHVlKTExMTAgMzU4NyB5KGdyZWF0ZXIpMjYgYih0aGFuKWYob3IpZihlcXVhbClpKHRvKWYoMC4pNDAKK2IoQSkyNCBiKG5lZ2F0aXYpbShlKWoodiktNSBiKGFsdWUpMjYgYihtZWFucyllKFJlYWRsaW5lKWkoc2hvdWxkKTExMTAKKzM2OTYgeShuZXYpbShlcikzMSBiKGFzay4pNDEgYihUaGUpMjkgYihkZWZhdWx0KWkobGltaXQpZyhpcylnCitGcygxMDApcCBGdCguKTYzMCAzODQyIHkgRnMoY29udmVydC1tZXRhKTExMTAgMzk1MiB5CitGdChJZikyMiBiKHNldClnKHRvKWgoYClwIEZzKG9uKXAgRnQoJywpaChSZWFkbGluZSlmKHdpbGwpZihjb24pbSh2KW0KKyhlcnQpaShjKW0oaGFyYWN0ZXJzKWYod2l0aClmKHRoZSlnKGVpZ2gpbSh0aCloKGJpdClmKHNldCkxMTEwCis0MDYxIHkodG8pZyhhbilmIEZtKGFzY2kpcihpKWcgRnQoayltKGV5KWgoc2VxdWVuY2UpZyhiKW0oeSlmCisoc3RyaXBwaW5nKWYodGhlKWkoZWlnaCltKHRoKWcoYml0KWYoYW5kKWcocHJlXDAxNHhpbmcpZihhbikxMTEwCis0MTY4IHkgRmsoaClwIDExMzQgNDExNSAxMzkgNCB2IDExMzQgNDE3MSBhIEZqKEVTQylwCisxMTM0IDQxODYgViAxMjY4IDQxNjggYSBGayhpKTEzMzIgNDE3MSB5IEZ0KGMpbShoYXJhY3RlciwpMzYKK2IoY29uKW0odiltKGVydGluZylnKHRoZW0pZSh0bylnKGEpaChtZXRhLXByZVwwMTR4ZWQpZihrKW0oZXkpZworKHNlcXVlbmNlLikxMTEwIDQyODEgeShUaGUpYyhkZWZhdWx0KWcodiktNSBiKGFsdWUpMzEKK2IoaXMpZyhgKXAgRnMob24pcCBGdCgnLik2MzAgNDQyNyB5IEZzKGRpc2FibGUtY29tcGxldGlvbikxMTEwCis0NTM2IHkgRnQoSWYpMzYgYihzZXQpaCh0byloKGApcCBGcyhPbilwIEZ0KCcsKWcoUmVhZGxpbmUpZih3aWxsKWcKKyhpbmhpYml0KWYodyltKG9yZCloKGNvbXBsZXRpb24uKTYwIGIoQ29tcGxldGlvbikxMTEwCis0NjQ2IHkoYyltKGhhcmFjdGVycykyOCBiKHdpbGwpZShiKXMoZSlmKGluc2VydGVkKWgoaW4pbSh0byloKHRoZSlnCisobGluZSlmKGFzKWcoaWYpZyh0aGV5KWgoaGFkKWUoYilzKGVlbilnKG1hcHApcyhlZCkxMTEwCis0NzU1IHkodG8pMzEgYiBGcyhzZWxmLWluc2VydClwIEZ0KC4pMzggYihUaGUpMzAgYihkZWZhdWx0KWcoaXMpaChgKXAKK0ZzKG9mZilwIEZ0KCcuKTYzMCA0OTAyIHkgRnMoZWRpdGluZy1tb2RlKTExMTAgNTAxMSB5CitGdChUaGUpZCBGcyhlZGl0aW5nLW1vZGUpZSBGdCh2KS01IGIoYXJpYWJsZSkyOSBiKGNvbiltKHRyb2xzKWgod2hpYyltCisoaCllKGRlZmF1bHQpaChzZXQpaChvZillKGspbShleSlpKGJpbmQtKTExMTAgNTEyMSB5KGluZ3MpMjUKK2IoaXMpZyh1c2VkLikzOCBiKEJ5KTI2IGIoZGVmYXVsdCwpZyhSZWFkbGluZSlnKHN0YXJ0cylmKHVwKWYoaW4paAorKEVtYWNzKWcoZWRpdGluZyloKG1vKXMoZGUsKTExMTAgNTIzMCB5KHdoZXJlKWoodGhlKWcoayltKGV5c3Ryb2spbShlcykKK2koYXJlKWUobW9zdCloKHNpbWlsYXIpZih0byloKEVtYWNzLik0MCBiKFRoaXMpMjkgYih2KS01CitiKGFyaWFibGUpMzAgYihjYW4pMTExMCA1MzQwIHkoYilzKGUpZyhzZXQpaCh0bylnKGVpdGhlcilnKGApcAorRnMoZW1hY3MpcCBGdCgnKWUob3IpaChgKXAgRnModmkpcCBGdCgnLilwIGVvcCBlbmQKKyUlUGFnZTogNiAxMAorVGVYRGljdCBiZWdpbiA2IDkgYm9wIDE1MCAtMTE2IGEgRnQoNikyNjQ1IGIoR05VKTMxIGIoUmVhZGxpbmUpZworKExpYnJhcnkpNjMwIDI5OSB5IEZzKGVuYWJsZS1rZXlwYWQpMTExMCA0MDggeSBGdChXaGVuKTIzCitiKHNldCloKHRvKWcoYClwIEZzKG9uKXAgRnQoJywpaChSZWFkbGluZSlmKHdpbGwpZyh0cnkpZih0byloKGVuYWJsZSlnCisodGhlKWYoYXBwbGljYXRpb24paShrKW0oZXlwYWQpMTExMCA1MTggeSh3aGVuKWgoaXQpaChpcylmKGNhbGxlZC4pNDEKK2IoU29tZSkyNyBiKHN5c3RlbXMpZihuZWVkKWgodGhpcylmKHRvKWgoZW5hYmxlKWcodGhlKWcoYXJybyltKHcpZyhrKW0KKyhleXMuKTExMTAgNjI4IHkoVGhlKWooZGVmYXVsdClnKGlzKWgoYClwIEZzKG9mZilwIEZ0KCcuKTYzMAorODE5IHkgRnMoZXhwYW5kLXRpbGRlKTExMTAgOTI5IHkgRnQoSWYpYyhzZXQpaCh0byloKGApcAorRnMob24pcCBGdCgnLClmKHRpbGRlKWcoZXhwYW5zaW9uKWcoaXMpZihwKXMoZXJmb3JtZWQpZih3aGVuKWgKKyhSZWFkbGluZSloKGF0dGVtcHRzKTExMTAgMTAzOSB5KHcpbShvcmQpaShjb21wbGV0aW9uLik0MgorYihUaGUpMzAgYihkZWZhdWx0KWcoaXMpaChgKXAgRnMob2ZmKXAgRnQoJy4pNjMwIDEyMzAKK3kgRnMoaGlzdG9yeS1wcmVzZXJ2ZS1wb2ludCkxMTEwIDEzNDAgeSBGdChJZillKHNldClpKHRvKWYoYClwCitGcyhvbilwIEZ0KCcsKWcodGhlKWcoaGlzdG9yeSlnKGNvKXMoZGUpZyhhdHRlbXB0cylnKHRvKWgocGxhY2UpZihwKXMKKyhvaW4pbSh0KWcoYXQpaCh0aGUpZihzYW1lKTExMTAgMTQ1MCB5KGxvKXMoY2F0aW9uKTM1CitiKG9uKWUoZWFjKW0oaClpKGhpc3RvcnkpZShsaW5lKWgocmV0cmlldiltKGVkKWcod2l0aClmCitGcyhwcmV2aW91cy1oaXN0b3J5KWMgRnQob3IpMTExMCAxNTU5IHkgRnMobmV4dC1oaXN0b3J5KXAKK0Z0KC4pMzcgYihUaGUpMzAgYihkZWZhdWx0KWgoaXMpZihgKXAgRnMob2ZmKXAgRnQoJy4pNjMwCisxNzUxIHkgRnMoaG9yaXpvbnRhbC1zY3JvbGwtbW9kZSkxMTEwIDE4NjEgeSBGdChUaGlzKTM1CitiKHYpLTUgYihhcmlhYmxlKTM3IGIoY2FuKWYoYilzKGUpZihzZXQpaCh0byloKGVpdGhlcilmKGApcAorRnMob24pcCBGdCgnKWcob3IpZyhgKXAgRnMob2ZmKXAgRnQoJy4pNTcgYihTZXR0aW5nKTM2CitiKGl0KWcodG8paChgKXAgRnMob24pcCBGdCgnKTExMTAgMTk3MCB5KG1lYW5zKTI2IGIodGhhdCloKHRoZSlmKHRleHQpaAorKG9mKWcodGhlKWYobGluZXMpZyhiKXMoZWluZylnKGVkaXRlZCloKHdpbGwpZihzY3JvbGwpaChob3Jpem9uKW0KKyh0YWxseSkxMTEwIDIwODAgeShvbikzMiBiKGEpZyhzaW5nbGUpZyhzY3JlZW4pZyhsaW5lKWcod2hlbillKHRoZXkpaQorKGFyZSlnKGxvbmdlciloKHRoYW4pZSh0aGUpaCh3aWR0aClmKG9mKWgodGhlKTExMTAgMjE4OQoreShzY3JlZW4sKTI3IGIoaW5zdGVhZClnKG9mKWYod3JhcHBpbmcpZihvbiltKHRvKWkoYSlmKG5ldylnKHNjcmVlbilnCisobGluZS4pMzkgYihCeSkyNyBiKGRlZmF1bHQsKWcodGhpcykxMTEwIDIyOTkgeSh2KS01CitiKGFyaWFibGUpMzEgYihpcylnKHNldClmKHRvKWkoYClwIEZzKG9mZilwIEZ0KCcuKTYzMAorMjQ5MSB5IEZzKGlucHV0LW1ldGEpMTExMCAyNjAwIHkgRnQoSWYpZihzZXQpZyh0byloKGApcAorRnMob24pcCBGdCgnLClnKFJlYWRsaW5lKWcod2lsbClmKGVuYWJsZSloKGVpZ2gpbSh0LWJpdCloKGlucHV0KWQoXChpdCkKK2kod2lsbClmKG5vdCloKGNsZWFyKTExMTAgMjcxMCB5KHRoZSk0MCBiKGVpZ2gpbSh0aClnKGJpdClnKGluKWYodGhlKWgKKyhjKW0oaGFyYWN0ZXJzKWgoaXQpZihyZWFkc1wpLClqKHJlZ2FyZGxlc3MpYyhvZiloKHdoYXQpZyh0aGUpMTExMAorMjgxOSB5KHRlcm1pbmFsKWcoY2xhaW1zKWgoaXQpZyhjYW4pZihzdXBwKXMob3J0Lik2OAorYihUaGUpMzkgYihkZWZhdWx0KWgodiktNSBiKGFsdWUpNDAgYihpcylnKGApcCBGcyhvZmYpcAorRnQoJy4pNjkgYihUaGUpMTExMCAyOTI5IHkobmFtZSkzMCBiIEZzKG1ldGEtZmxhZyllIEZ0KGlzKWooYSlmKHN5bm9uKW0KKyh5bSlnKGZvcilnKHRoaXMpaCh2KS01IGIoYXJpYWJsZS4pNjMwIDMxMjEgeSBGcyhpc2VhcmNoLXRlcm1pbmF0b3JzKQorMTExMCAzMjMwIHkgRnQoVGhlKTUxIGIoc3RyaW5nKWgob2YpZyhjKW0oaGFyYWN0ZXJzKWgodGhhdClmKHNob3VsZCllCisodGVybWluYXRlKWooYW4pZihpbmNyZW1lbiltKHRhbCkxMTEwIDMzNDAgeShzZWFyYyltKGgpMjUKK2Iod2l0aG91dClnKHN1YnNlcXVlbiltKHRseSlnKGV4ZWN1dGluZyloKHRoZSlmKGMpbShoYXJhY3RlciloKGFzKWYoYSlnCisoY29tbWFuZCkxMTEwIDM0NTAgeShcKHNlZSk0NSBiKFNlY3Rpb24paCgxLjIuNSlnKFtTZWFyYyltKGhpbmddLClqCisocGFnZSlkKDNcKS4pODQgYihJZik0NCBiKHRoaXMpZyh2KS01IGIoYXJpYWJsZSk0NSBiKGhhcylnKG5vdCkxMTEwCiszNTU5IHkoYilzKGVlbikzMSBiKGdpdiltKGVuKWgoYSlnKHYpLTUgYihhbHVlLCkzMiBiKHRoZSlnKGMpbQorKGhhcmFjdGVycykyNDk0IDM1NTYgeSBGayhoKXAgMjUxOCAzNTAzIDEzOSA0IHYgMjUxOAorMzU1OSBhIEZqKEVTQylwIDI1MTggMzU3NSBWIDI2NTIgMzU1NiBhIEZrKGkpMjcxMyAzNTU5Cit5IEZ0KGFuZClmIEZsKEMtSilnIEZ0KHdpbGwpaCh0ZXJtaW5hdGUpZyhhbikxMTEwIDM2NjkKK3koaW5jcmVtZW4pbSh0YWwpZyhzZWFyYyltKGguKTYzMCAzODYxIHkgRnMoa2V5bWFwKTE5MgorYiBGdChTZXRzKTM5IGIoUmVhZGxpbmUncylnKGlkZWEpaChvZilmKHRoZSlnKGN1cnJlbiltKHQpZihrKW0oZXltYXApaAorKGZvcilnKGspbShleSlnKGJpbmRpbmcpZihjb20tKTExMTAgMzk3MCB5KG1hbmRzLik4MQorYihBY2NlcHRhYmxlKTQ3IGIgRnMoa2V5bWFwKTQyIGIgRnQobmFtZXMpaShhcmUpaCBGcyhlbWFjcylwCitGdCgsKWkgRnMoZW1hY3Mtc3RhbmRhcmQpcCBGdCgsKTExMTAgNDA4MCB5IEZzKGVtYWNzLW1ldGEpcAorRnQoLCk5OSBiIEZzKGVtYWNzLWN0bHgpcCBGdCgsKWYgRnModmkpcCBGdCgsKWogRnModmktbW92ZSlwCitGdCgsKWYgRnModmktY29tbWFuZClwIEZ0KCwpZihhbmQpMTExMCA0MTg5IHkgRnModmktaW5zZXJ0KXAKK0Z0KC4pNjQgYiBGcyh2aSkzOCBiIEZ0KGlzKWgoZXF1aXYpLTUgYihhbGVuKW0odCk0MSBiKHRvKWUKK0ZzKHZpLWNvbW1hbmQpcCBGdCg7KWkgRnMoZW1hY3MpYyBGdChpcylpKGVxdWl2KS01IGIoYWxlbiltKHQpMTExMAorNDI5OSB5KHRvKTMzIGIgRnMoZW1hY3Mtc3RhbmRhcmQpcCBGdCguKTQxIGIoVGhlKTMxIGIoZGVmYXVsdCloKHYpLTUKK2IoYWx1ZSkzMiBiKGlzKWcgRnMoZW1hY3MpcCBGdCguKTQ0IGIoVGhlKTMxIGIodiktNSBiKGFsdWUpMzMKK2Iob2YpZih0aGUpMTExMCA0NDA4IHkgRnMoZWRpdGluZy1tb2RlKTI3IGIgRnQodiktNSBiKGFyaWFibGUpMzEKK2IoYWxzbyloKGFcMDEzZWN0cylmKHRoZSlnKGRlZmF1bHQpZihrKW0oZXltYXAuKTYzMCA0NjAwCit5IEZzKG1hcmstZGlyZWN0b3JpZXMpMTExMCA0NzEwIHkgRnQoSWYpMzggYihzZXQpZyh0byloKGApcAorRnMob24pcCBGdCgnLClpKGNvbXBsZXRlZCllKGRpcmVjdG9yeSlmKG5hbWVzKWcoaGEpbSh2KW0oZSlpKGEpZShzbGFzaCkKK2coYXBwKXMoZW5kZWQuKTExMTAgNDgxOSB5KFRoZSkzMCBiKGRlZmF1bHQpZyhpcyloKGApcAorRnMob24pcCBGdCgnLik2MzAgNTAxMSB5IEZzKG1hcmstbW9kaWZpZWQtbGluZXMpMTExMAorNTEyMSB5IEZ0KFRoaXMpayh2KS01IGIoYXJpYWJsZSwpMzggYih3aGVuKWQoc2V0KWgodG8paChgKXAKK0ZzKG9uKXAgRnQoJywpZyhjYXVzZXMpZyhSZWFkbGluZSlmKHRvKWgoZGlzcGxhKW0oeSlmKGFuKWYoYXMtKTExMTAKKzUyMzAgeSh0ZXJpc2spZihcKGApcCBGcygqKXAgRnQoJ1wpKWgoYXQpZih0aGUpZyhzdGFydClnKG9mKWcoaGlzdG9yeSlnCisobGluZXMpZyh3aGljKW0oaClmKGhhKW0odiltKGUpaShiKXMoZWVuKWUobW8pcyhkaVwwMTRlZC4pMTExMAorNTM0MCB5KFRoaXMpZCh2KS01IGIoYXJpYWJsZSkzMSBiKGlzKWYoYClwIEZzKG9mZilwIEZ0KCcpZyhiKW0oeSlnCisoZGVmYXVsdC4pcCBlb3AgZW5kCislJVBhZ2U6IDcgMTEKK1RlWERpY3QgYmVnaW4gNyAxMCBib3AgMTUwIC0xMTYgYSBGdChDaGFwdGVyKTMwIGIoMTopNDEKK2IoQ29tbWFuZCkyOSBiKExpbmUpaShFZGl0aW5nKTIxNTMgYig3KTYzMCAyOTkgeSBGcworKG1hcmstc3ltbGlua2VkLWRpcmVjdG9yaSlvKGVzKTExMTAgNDA4IHkgRnQoSWYpNDQgYihzZXQpaCh0byloKGApcAorRnMob24pcCBGdCgnLClpKGNvbXBsZXRlZCllKG5hbWVzKWYod2hpYyltKGgpZihhcmUpaChzeW0pbShiKXMob2xpYylnCisobGlua3MpZyh0bylnKGRpLSkxMTEwIDUxOCB5KHJlY3RvcmllcylqKGhhKW0odiltKGUpZihhKWcoc2xhc2gpZihhcHApcworKGVuZGVkKWUoXChzdWIpNSBiKGplY3QpNDcgYih0bylnKHRoZSlmKHYpLTUgYihhbHVlKTQ3CitiKG9mKWYgRnMobWFyay0pMTExMCA2MjggeShkaXJlY3RvcmllcylwIEZ0KFwpLikzOCBiKFRoZSkzMAorYihkZWZhdWx0KWcoaXMpaChgKXAgRnMob2ZmKXAgRnQoJy4pNjMwIDc4OSB5IEZzKG1hdGNoLWhpZGRlbi1maWxlcykKKzExMTAgODk4IHkgRnQoVGhpcykyMSBiKHYpLTUgYihhcmlhYmxlLCkyNSBiKHdoZW4pZChzZXQpZyh0byloKGApcAorRnMob24pcCBGdCgnLCloKGNhdXNlcylmKFJlYWRsaW5lKWcodG8pZyhtYXRjKW0oaClnKFwwMTRsZXMpZih3aG9zZSkKKzExMTAgMTAwOCB5KG5hbWVzKTQ0IGIoYilzKGVnaW4pZyh3aXRoKWcoYSlnKGApcCBGcyguKXAKK0Z0KCcpZyhcKGhpZGRlbilmKFwwMTRsZXNcKSlpKHdoZW4pZShwKXMoZXJmb3JtaW5nKWcoXDAxNGxlbmFtZSkxMTEwCisxMTE4IHkoY29tcGxldGlvbiwpaih1bmxlc3MpNDEgYih0aGUpZyhsZWFkaW5nKWgoYClwCitGcyguKXAgRnQoJylnKGlzKWcoc3VwcGxpZWQpZShiKW0oeSloKHRoZSloKHVzZXIpZihpbilnKHRoZSkxMTEwCisxMjI3IHkoXDAxNGxlbmFtZSkzMSBiKHRvKWcoYilzKGUpZShjb21wbGV0ZWQuKTQyIGIoVGhpcykzMAorYih2KS01IGIoYXJpYWJsZSkzMSBiKGlzKWYoYClwIEZzKG9uKXAgRnQoJyloKGIpbSh5KWYoZGVmYXVsdC4pNjMwCisxMzg4IHkgRnMob3V0cHV0LW1ldGEpMTExMCAxNDk4IHkgRnQoSWYpMzUgYihzZXQpaCh0bylnKGApcAorRnMob24pcCBGdCgnLCloKFJlYWRsaW5lKWYod2lsbClnKGRpc3BsYSltKHkpZihjKW0oaGFyYWN0ZXJzKWkod2l0aCllCisodGhlKWgoZWlnaCltKHRoKWcoYml0KTExMTAgMTYwOCB5KHNldCloKGRpcmVjdGx5KWcocmF0aGVyKWYodGhhbilnKGFzKQoraChhKWcobWV0YS1wcmVcMDE0eGVkKWYoZXNjYXApcyhlKWgoc2VxdWVuY2UuKTU5IGIoVGhlKTExMTAKKzE3MTcgeShkZWZhdWx0KTMxIGIoaXMpZihgKXAgRnMob2ZmKXAgRnQoJy4pNjMwIDE4NzgKK3kgRnMocGFnZS1jb21wbGV0aW9ucykxMTEwIDE5ODggeSBGdChJZilqKHNldClpKHRvKWYoYClwCitGcyhvbilwIEZ0KCcsKWgoUmVhZGxpbmUpZyh1c2VzKWUoYW4paChpbiltKHRlcm5hbCloCitGcyhtb3JlKXAgRnQoLWxpayltKGUpZihwYWdlcilnKHRvKWgoZGlzcGxhKW0oeSkxMTEwCisyMDk3IHkoYSllKHNjcmVlbmZ1bClmKG9mKWcocClzKG9zc2libGUpZyhjb21wbGV0aW9ucylpKGF0KWYoYSlnKHRpbWUuKQorNDcgYihUaGlzKTMxIGIodiktNSBiKGFyaWFibGUpMzQgYihpcyllKGApcCBGcyhvbilwIEZ0KCcpMTExMAorMjIwNyB5KGIpbSh5KWUoZGVmYXVsdC4pNjMwIDIzNjggeSBGcyhwcmludC1jb21wbGV0aW9ucy1ob3Jpem8pbyhudGFsKW8KKyhseSkxMTEwIDI0NzggeSBGdChJZikyMyBiKHNldClpKHRvKWcoYClwIEZzKG9uKXAgRnQoJywpZyhSZWFkbGluZSlnCisod2lsbClmKGRpc3BsYSltKHkpZyhjb21wbGV0aW9ucyloKHdpdGgpZihtYXRjKW0oaGVzKWgoc29ydGVkKTExMTAKKzI1ODcgeShob3Jpem9uKW0odGFsbHkpNDUgYihpbillKGFscGhhYilzKGV0aWNhbClpKG9yZGVyLClpKHJhdGhlciljCisodGhhbilnKGRvKW0od24pZyh0aGUpaChzY3JlZW4uKTExMTAgMjY5NyB5KFRoZSkzMCBiKGRlZmF1bHQpZyhpcyloKGApcAorRnMob2ZmKXAgRnQoJy4pNjMwIDI4NTggeSBGcyhzaG93LWFsbC1pZi1hbWJpZ3VvdXMpMTExMAorMjk2OCB5IEZ0KFRoaXMpZShhbHRlcnMpaSh0aGUpZihkZWZhdWx0KWcoYilzKGVoYSltKHZpb3IpZyhvZilnKHRoZSloCisoY29tcGxldGlvbilnKGZ1bmN0aW9ucy4pNDAgYihJZikyOSBiKHNldCkxMTEwIDMwNzcgeSh0bylmKGApcAorRnMob24pcCBGdCgnLClnKHcpbShvcmRzKWYod2hpYyltKGgpZyhoYSltKHYpbShlKWkobW9yZSlmKHRoYW4pZihvbmUpaAorKHApcyhvc3NpYmxlKWYoY29tcGxldGlvbiloKGNhdXNlKTExMTAgMzE4NyB5KHRoZSkzOQorYihtYXRjKW0oaGVzKWgodG8pZyhiKXMoZSllKGxpc3RlZCloKGltbWVkaWF0ZWx5KWkoaW5zdGVhZCllKG9mKWcKKyhyaW5naW5nKWcodGhlKWcoYilzKGVsbC4pMTExMCAzMjk2IHkoVGhlKTMwIGIoZGVmYXVsdClnKHYpLTUKK2IoYWx1ZSkzMSBiKGlzKWcoYClwIEZzKG9mZilwIEZ0KCcuKTYzMCAzNDU4IHkgRnMKKyhzaG93LWFsbC1pZi11bm1vZGlmaWVkKTExMTAgMzU2NyB5IEZ0KFRoaXMpMzggYihhbHRlcnMpaCh0aGUpZworKGRlZmF1bHQpZyhiKXMoZWhhKW0odmlvcilnKG9mKWYodGhlKWgoY29tcGxldGlvbiloKGZ1bmN0aW9ucyllKGluKWgoYSkKKzExMTAgMzY3NyB5KGZhc2hpb24pMjUgYihzaW1pbGFyKWgodG8pZyBGaShzaG8pbSh3LWFsbC1pZi1hbSltKGJpZ3VvdXMpCitwIEZ0KC4pNDEgYihJZikyNSBiKHNldCloKHRvKWgoYClwIEZzKG9uKXAgRnQoJywpZih3KW0ob3JkcylmKHdoaWMpbShoKQorMTExMCAzNzg2IHkoaGEpbSh2KW0oZSkzMiBiKG1vcmUpZih0aGFuKWYob25lKWkocClzKG9zc2libGUpZQorKGNvbXBsZXRpb24paSh3aXRob3V0KWYoYW4pbSh5KWcocClzKG9zc2libGUpZihwYXItKTExMTAKKzM4OTYgeSh0aWFsKTQzIGIoY29tcGxldGlvbiloKFwodGhlKWYocClzKG9zc2libGUpZihjb21wbGV0aW9ucyloCisoZG9uJ3QpZihzaGFyZSlnKGEpaChjb21tb24pMTExMCA0MDA2IHkocHJlXDAxNHhcKSkzMAorYihjYXVzZSlnKHRoZSloKG1hdGMpbShoZXMpZyh0bylnKGIpcyhlKWYobGlzdGVkKWcoaW1tZWRpYXRlbHkpaQorKGluc3RlYWQpZShvZiloKHJpbmctKTExMTAgNDExNSB5KGluZylnKHRoZSlmKGIpcyhlbGwuKTQxCitiKFRoZSkzMCBiKGRlZmF1bHQpZyh2KS01IGIoYWx1ZSkzMSBiKGlzKWYoYClwIEZzKG9mZilwCitGdCgnLik2MzAgNDI3NiB5IEZzKHZpc2libGUtc3RhdHMpMTExMCA0Mzg2IHkgRnQoSWYpaChzZXQpaSh0bylmKGApcAorRnMob24pcCBGdCgnLCloKGEpZihjKW0oaGFyYWN0ZXIpaShkZW5vdGluZyllKGEpZyhcMDE0bGUncylnKHQpbSh5cClzCisoZSlnKGlzKWcoYXBwKXMoZW5kZWQpZSh0bylqKHRoZSkxMTEwIDQ0OTUgeShcMDE0bGVuYW1lKWUod2hlbillCisobGlzdGluZylpKHApcyhvc3NpYmxlKWYoY29tcGxldGlvbnMuKTQyIGIoVGhlKTMwIGIoZGVmYXVsdClnKGlzKWgoYClwCitGcyhvZmYpcCBGdCgnLikxNTAgNDY1NyB5KEtleSlmKEJpbmRpbmdzKTYzMCA0NzY2IHkoVGhlKTQxCitiKHN5biltKHRheClpKGZvcilmKGNvbiltKHRyb2xsaW5nKWgoayltKGV5KWcoYmluZGluZ3MpZShpbiloKHRoZSlnCisoaW5pdClnKFwwMTRsZSlnKGlzKWcoc2ltcGxlLik3NSBiKEZpcnN0KTQzIGIoeSltKG91KTYzMAorNDg3NiB5KG5lZWQpMjcgYih0bylpKFwwMTRuZClkKHRoZSlpKG5hbWUpZihvZiloKHRoZSlnKGNvbW1hbmQpZih0aGF0KWkKKyh5KW0ob3UpZih3KW0oYW4pbSh0KWcodG8pZyhjKW0oaGFuZ2UuKTQxIGIoVGhlKTI3IGIoZm9sbG8pbSh3aW5nKTYzMAorNDk4NSB5KHNlY3Rpb25zKTM3IGIoY29uKW0odGFpbilnKHRhYmxlcylnKG9mKWYodGhlKWcoY29tbWFuZClmKG5hbWUsKWoKKyh0aGUpZShkZWZhdWx0KWcoayltKGV5YmluZGluZywpaChpZilmKGFuKW0oeSktOCBiKCwpNjMwCis1MDk1IHkoYW5kKTMwIGIoYSloKHNob3J0KWYoZGVzY3JpcHRpb24pZyhvZiloKHdoYXQpZih0aGUpZyhjb21tYW5kKWgKKyhkbylzKGVzLik2MzAgNTIzMCB5KE9uY2UpMzYgYih5KW0ob3UpZyhrbm8pbSh3KWcodGhlKWcobmFtZSlnKG9mKWcKKyh0aGUpZyhjb21tYW5kLCloKHNpbXBseSlmKHBsYWNlKWgob24pZShhKWkobGluZSlmKGluKWcodGhlKWcoaW5pdCk2MzAKKzUzNDAgeShcMDE0bGUpZSh0aGUpZyhuYW1lKWYob2YpaCh0aGUpZyhrKW0oZXkpZyh5KW0ob3UpZyh3aXNoKWYodG8paAorKGJpbmQpZih0aGUpaChjb21tYW5kKWYodG8sKWkoYSlmKGNvbG9uLClpKGFuZClkKHRoZW4pcAorZW9wIGVuZAorJSVQYWdlOiA4IDEyCitUZVhEaWN0IGJlZ2luIDggMTEgYm9wIDE1MCAtMTE2IGEgRnQoOCkyNjQ1IGIoR05VKTMxCitiKFJlYWRsaW5lKWcoTGlicmFyeSk2MzAgMjk5IHkodGhlKWgobmFtZSlnKG9mKWcodGhlKWcoY29tbWFuZC4pNDYKK2IoVGhlKTMxIGIobmFtZSloKG9mKWcodGhlKWcoayltKGV5KWgoY2FuKWYoYilzKGUpZihleHByZXNzZWQpaChpbilmCisoZGlcMDEzZXJlbiltKHQpNjMwIDQwOCB5KHcpbShhKW0oeXMsKWcoZGVwKXMoZW5kaW5nKWUob24paSh3aGF0KWYoeSltCisob3UpaChcMDE0bmQpZChtb3N0KWooY29tZm9ydGFibGUuKTYzMCA1NDUgeShJbilrKGFkZGl0aW9uKWgodG8paAorKGNvbW1hbmQpZihuYW1lcywpaShyZWFkbGluZSllKGFsbG8pbSh3cyloKGspbShleXMpZyh0bylnKGIpcyhlKWUoYilzCisob3VuZClmKHRvKWooYSlmKHN0cmluZyk2MzAgNjU1IHkodGhhdCkzMSBiKGlzKWYoaW5zZXJ0ZWQpaCh3aGVuKWUodGhlKQoraShrKW0oZXkpZyhpcylmKHByZXNzZWQpZyhcKGEpaCBGaShtYWNybyk1IGIgRnQoXCkuKTYzMAorODE5IHkgRmkoayltKGV5bmFtZSlnIEZ0KDopNDIgYiBGaShmdW5jdGlvbi1uYW1lKTM1IGIKK0Z0KG9yKWMgRmkobWFjcm8pMTExMCA5MjkgeShrKW0oZXluYW1lKWsgRnQoaXMpMjkgYih0aGUpZihuYW1lKWgob2YpZworKGEpZyhrKW0oZXkpaChzcClzKGVsbGVkKWUob3V0KWgoaW4pZyhFbmdsaXNoLikzOSBiKEYpLTgKK2Iob3IpMzAgYihleGFtcGxlOikxMzUwIDEwNjYgeSBGcyhDb250cm9sLXU6KTQ1IGIodW5pdmVyc2FsLWFyZ3VtZW50KQorMTM1MCAxMTc2IHkoTWV0YS1SdWJvdXQ6KWYoYmFja3dhcmQta2lsbC13b3JkKTEzNTAgMTI4NQoreShDb250cm9sLW86KWgoIj4paShvdXRwdXQiKTExMTAgMTQyMiB5IEZ0KEluKTM4IGIodGhlKWgoYWIpcyhvKW0odiltCisoZSloKGV4YW1wbGUsKWggRmwoQy11KWQgRnQoaXMpaChiKXMob3VuZClkKHRvKWsodGhlKWUoZnVuY3Rpb24paAorRnModW5pdmVyc2FsLSkxMTEwIDE1MzIgeShhcmd1bWVudClwIEZ0KCwpZiBGbChNLURFTCllCitGdChpcylpKGIpcyhvdW5kKWUodG8paSh0aGUpZyhmdW5jdGlvbilnIEZzKGJhY2t3YXJkLWtpbGwtd29yZClwCitGdCgsKTExMTAgMTY0MSB5KGFuZClnIEZsKEMtbylnIEZ0KGlzKWgoYilzKG91bmQpZSh0bylqKHJ1bilkKHRoZSlqCisobWFjcm8pZihleHByZXNzZWQpZyhvbilmKHRoZSlpKHJpZ2gpbSh0KWYoaGFuZCkxMTEwCisxNzUxIHkoc2lkZSkzMCBiKFwodGhhdClpKGlzLCllKHRvKWgoaW5zZXJ0KWcodGhlKWYodGV4dClpKGApcAorRnMoPillKG91dHB1dClwIEZ0KCcpZihpbiltKHRvKWkodGhlKWcobGluZVwpLikxMTEwIDE4ODgKK3koQSkzNyBiKG4pbSh1bSltKGIpcyhlcilmKG9mKWgoc3ltKW0oYilzKG9saWMpZyhjKW0oaGFyYWN0ZXIpaShuYW1lcyllCisoYXJlKWcocmVjb2duaXplZCloKHdoaWxlKWYocHJvLSkxMTEwIDE5OTggeShjZXNzaW5nKTI0CitiKHRoaXMpZyhrKW0oZXkpZyhiaW5kaW5nKWYoc3luKW0odGF4OikzNyBiIEZpKERFTClwCitGdCgsKTI0IGIgRmkoRVNDKXAgRnQoLClmIEZpKEVTQ0FQRSlwIEZ0KCwpZyBGaShMRkQpcAorRnQoLCloIEZpKE5FVy0pMTExMCAyMTA3IHkoTElORSlwIEZ0KCwpMzAgYiBGaShSRVQpcAorRnQoLClnIEZpKFJFVFVSTilwIEZ0KCwpaCBGaShSKW0oVUJPVVQpcCBGdCgsKWcgRmkoU1ApLTgKK2IoQSltKENFKXAgRnQoLCkzMCBiIEZpKFNQQylwIEZ0KCwpZyhhbmQpZiBGaShUKS04IGIoQUIpcAorRnQoLik2MzAgMjI3MSB5IEZzKCIpcCBGaShrKW0oZXlzZXEpciBGcygiKXAgRnQoOik0MQorYiBGaShmdW5jdGlvbi1uYW1lKTM2IGIgRnQob3IpMzAgYiBGaShtYWNybykxMTEwIDIzODEKK3koayltKGV5c2VxKWsgRnQoZGlcMDEzZXJzKWQoZnJvbSlmIEZpKGspbShleW5hbWUpMzcKK2IgRnQoYWIpcyhvKW0odiltKGUpMzIgYihpbilmKHRoYXQpaChzdHJpbmdzKWYoZGVub3RpbmcpZyhhbilnKGVuLSkxMTEwCisyNDkxIHkodGlyZSlqKGspbShleSloKHNlcXVlbmNlKWYoY2FuKWcoYilzKGUpZihzcClzKGVjaVwwMTRlZCwpaChiKW0KKyh5KWYocGxhY2luZylpKHRoZSlmKGspbShleSlnKHNlcXVlbmNlKWcoaW4pMTExMCAyNjAwCit5KGRvdWJsZSkyOSBiKHF1b3Rlcy4pNDEgYihTb21lKTI5IGIgRm0oZ251KWggRnQoRW1hY3MpZihzdCltKHlsZSlpKGspbQorKGV5KWYoZXNjYXApcyhlcylnKGNhbilnKGIpcyhlKWYodXNlZCwpZyhhcykxMTEwIDI3MTAKK3koaW4payh0aGUpaChmb2xsbyltKHdpbmcpaShleGFtcGxlLClmKGJ1dCllKHRoZSloKHNwKXMoZWNpYWwpaChjKW0KKyhoYXJhY3RlcilnKG5hbWVzKWYoYXJlKWcobm90KTExMTAgMjgxOSB5KHJlY29nbml6ZWQuKTEzNTAKKzI5NTYgeSBGcygiXFxDLXUiOik0NiBiKHVuaXZlcnNhbC1hcmd1bWVudCkxMzUwIDMwNjYKK3koIlxcQy14XFxDLXIiOilmKHJlLXJlYWQtaW5pdC1maWxlKTEzNTAgMzE3NiB5KCJcXGVbMTF+IjopZygiRnVuY3Rpb24pCitoKEtleSlnKDEiKTExMTAgMzMxMyB5IEZ0KEluKTY0IGIodGhlKWcoYWIpcyhvKW0odiltKGUpaShleGFtcGxlLCk3NAorYiBGbChDLXUpNjQgYiBGdChpcylnKGFnYWluKWkoYilzKG91bmQpYyh0bylrKHRoZSllKGZ1bmN0aW9uKTExMTAKKzM0MjIgeSBGcyh1bml2ZXJzYWwtYXJndW1lbnQpMzkgYiBGdChcKGp1c3QpayhhcyloKGl0KWcodyltKGFzKWcoaW4pZworKHRoZSlmKFwwMTRyc3QpZyhleGFtcGxlXCksKTQ5IGIoYClwIEZsKEMteCkxMTEwIDM1MzIKK3koQy1yKXAgRnQoJyk0MSBiKGlzKWcoYilzKG91bmQpZSh0bylqKHRoZSlmKGZ1bmN0aW9uKWcKK0ZzKHJlLXJlYWQtaW5pdC1maWxlKXAgRnQoLCllKGFuZClpKGApMzQ2MiAzNTI5IHkgRmsoaClwCiszNDg2IDM0NzYgMTM5IDQgdiAzNDg2IDM1MzIgYSBGaihFU0MpcCAzNDg2IDM1NDcgViAzNjIwCiszNTI5IGEgRmsoaSkzMSBiKGgpcCAzNzA1IDM0NzYgMjAgNCB2IDM3MDUgMzUzMiBhIEZqKFspcAorMzcwNSAzNTQ4IFYgMzcyMCAzNTI5IGEgRmsoaSkxMTEwIDM2MzggeShoKXAgMTEzNCAzNTg1CiszNiA0IHYgMTEzNCAzNjQxIGEgRmooMSlwIDExMzQgMzY1NyBWIDExNjUgMzYzOCBhIEZrKGkpZihoKXAKKzEyNTAgMzU4NSBWIDEyNTAgMzY0MSBhIEZqKDEpcCAxMjUwIDM2NTcgViAxMjgxIDM2MzgKK2EgRmsoaSlnKGgpcCAxMzY1IDM1ODUgNDggNCB2IDEzNjUgMzY0MSBhIEZzKH4pcCAxMzY1CiszNjU3IFYgMTQwOSAzNjM4IGEgRmsoaSkxNDM4IDM2NDEgeSBGdCgnKWgoaXMpZihiKXMob3VuZClmKHRvKWkoaW5zZXJ0KQorZih0aGUpaCh0ZXh0KWcoYClwIEZzKEZ1bmN0aW9uKWQoS2V5KWkoMSlwIEZ0KCcuKTYzMAorMzgwNiB5KFRoZSlmKGZvbGxvKW0od2luZylpIEZtKGdudSlmIEZ0KEVtYWNzKWcoc3QpbSh5bGUpaChlc2NhcClzKGUpZgorKHNlcXVlbmNlcylnKGFyZSlnKGEpbSh2KS01IGIoYWlsYWJsZSkzMiBiKHdoZW4pZChzcClzKGVjaWZ5aW5nKTYzMAorMzkxNSB5KGspbShleSlpKHNlcXVlbmNlczopNjMwIDQwODAgeSBGbChcXEMtKTMzNiBiIEZ0KGNvbiltKHRyb2wpMzIKK2IocHJlXDAxNHgpNjMwIDQyNDQgeSBGbChcXE0tKTMzNiBiIEZ0KG1ldGEpMzEgYihwcmVcMDE0eCk2MzAKKzQ0MDggeSBGbChcXGUpMzg0IGIgRnQoYW4pMzAgYihlc2NhcClzKGUpaChjKW0oaGFyYWN0ZXIpNjMwCis0NTczIHkgRmwoXFxcXCkzODQgYiBGdChiYWMpbShrc2xhc2gpNjMwIDQ3MzcgeSBGbChcXClwCitGcygiKTExMTAgNDczNCB5IEZrKGgpcCAxMTM0IDQ2ODEgViAxMTM0IDQ3MzcgYSBGcygiKXAKKzExMzQgNDc1MyBWIDExNzggNDczNCBhIEZrKGkpMTIwOCA0NzM3IHkgRnQoLCkzMCBiKGEpaChkb3VibGUpZgorKHF1b3RhdGlvbiloKG1hcmspNjMwIDQ5MDIgeSBGbChcXCcpMTExMCA0ODk5IHkgRmsoaClwCisxMTM0IDQ4NDYgMjAgNCB2IDExMzQgNDkwMiBhIEZqKCcpcCAxMTM0IDQ5MTcgViAxMTUwCis0ODk5IGEgRmsoaSkxMTc5IDQ5MDIgeSBGdCgsKWcoYSlnKHNpbmdsZSlnKHF1b3RlKWcob3IpZihhcClzKG9zdHJvcGhlKQorNjMwIDUwNjYgeShJbilkKGFkZGl0aW9uKWgodG8pZyh0aGUpZyBGbShnbnUpZiBGdChFbWFjcyloKHN0KW0oeWxlKWgKKyhlc2NhcClzKGUpZihzZXF1ZW5jZXMsKWgoYSlmKHNlY29uZClmKHNldCloKG9mKWcoYmFjKW0oa3NsYXNoKTYzMAorNTE3NiB5KGVzY2FwKXMoZXMpaihpcylmKGEpbSh2KS01IGIoYWlsYWJsZTopNjMwIDUzNDAKK3kgRnMoXFxhKTM4NCBiIEZ0KGFsZXJ0KTMxIGIoXChiKXMoZWxsXCkpcCBlb3AgZW5kCislJVBhZ2U6IDkgMTMKK1RlWERpY3QgYmVnaW4gOSAxMiBib3AgMTUwIC0xMTYgYSBGdChDaGFwdGVyKTMwIGIoMTopNDEKK2IoQ29tbWFuZCkyOSBiKExpbmUpaShFZGl0aW5nKTIxNTMgYig5KTYzMCAyOTkgeSBGcyhcXGIpMzg0CitiIEZ0KGJhYyltKGtzcGFjZSk2MzAgNDU1IHkgRnMoXFxkKWcgRnQoZGVsZXRlKTYzMCA2MTIKK3kgRnMoXFxmKWcgRnQoZm9ybSkzMCBiKGZlZWQpNjMwIDc2OCB5IEZzKFxcbikzODQgYiBGdChuZXdsaW5lKTYzMAorOTI1IHkgRnMoXFxyKWcgRnQoY2FycmlhZ2UpMzIgYihyZXR1cm4pNjMwIDEwODEgeSBGcyhcXHQpMzg0CitiIEZ0KGhvcml6b24pbSh0YWwpMzIgYih0YWIpNjMwIDEyMzggeSBGcyhcXHYpMzg0IGIgRnQodiltKGVydGljYWwpMzIKK2IodGFiKTYzMCAxMzk0IHkgRnMoXFwpcCBGbChubm4pMjg4IGIgRnQodGhlKTM1IGIoZWlnaCltKHQtYml0KWgoYyltCisoaGFyYWN0ZXIpZyh3aG9zZSllKHYpLTUgYihhbHVlKTM1IGIoaXMpZyh0aGUpZihvKXMoY3RhbClpKHYpLTUKK2IoYWx1ZSkzNSBiIEZpKG5ubillIEZ0KFwob25lKWkodG8pMTExMCAxNTA0IHkodGhyZWUpYyhkaWdpdHNcKSk2MzAKKzE2NjEgeSBGcyhcXHgpcCBGbChISCkyODggYiBGdCh0aGUpNDAgYihlaWdoKW0odC1iaXQpaChjKW0oaGFyYWN0ZXIpZworKHdob3NlKWUodiktNSBiKGFsdWUpMzkgYihpcyloKHRoZSlmKGhleGFkZWNpbWFsKWkodiktNQorYihhbHVlKTQwIGIgRmkoSEgpMTExMCAxNzcwIHkgRnQoXChvbmUpMzEgYihvcilmKHQpbSh3KW0obylpKGhleCllCisoZGlnaXRzXCkpNjMwIDE5MjcgeShXaGVuKTM3IGIoZW4pbSh0ZXJpbmcpaCh0aGUpZyh0ZXh0KWcob2YpZyhhKWcKKyhtYWNybywpaShzaW5nbGUpZShvcilmKGRvdWJsZSlnKHF1b3RlcyloKG0pbSh1c3QpZihiKXMoZSlnKHVzZWQpZih0bykKKzYzMCAyMDM2IHkoaW5kaWNhdGUpMjMgYihhKWUobWFjcm8paChkZVwwMTRuaXRpb24uKTM4CitiKFVucXVvdGVkKTIxIGIodGV4dClpKGlzKWUoYXNzdW1lZClnKHRvKWgoYilzKGUpZihhKWgoZnVuY3Rpb24pZgorKG5hbWUuKTM4IGIoSW4pNjMwIDIxNDYgeSh0aGUpMjIgYihtYWNybylmKGIpcyhvKXMoZHkpLTgKK2IoLCkyMyBiKHRoZSllKGJhYyltKGtzbGFzaCloKGVzY2FwKXMoZXMpZyhkZXNjcmliKXMoZWQpZShhYilzKG8pbSh2KW0KKyhlKWooYXJlKWUoZXhwYW5kZWQuKTM3IGIoQmFjKW0oa3NsYXNoKTYzMCAyMjU1IHkod2lsbClqKHF1b3RlKWgoYW4pbQorKHkpZihvdGhlcilnKGMpbShoYXJhY3RlcilpKGluKWQodGhlKWkobWFjcm8pZih0ZXh0LClrKGluY2x1ZGluZykzOQorYihgKXAgRnMoIilwIEZ0KCcpaChhbmQpZyhgKXAgRnMoJylwIEZ0KCcuKTY5IGIoRiktOAorYihvcik2MzAgMjM2NSB5KGV4YW1wbGUsKTI4IGIodGhlKWUoZm9sbG8pbSh3aW5nKWgoYmluZGluZylkKHdpbGwpaQorKG1hayltKGUpaChgKXAgRmwoQy14KWogRnMoXFwpcCBGdCgnKWMoaW5zZXJ0KWYoYSloKHNpbmdsZSloKGApcAorRnMoXFwpcCBGdCgnKWYoaW4pbSh0bylnKHRoZSlnKGxpbmU6KTg3MCAyNDk4IHkgRnMoIlxcQy14XFxcXCI6KTQ1CitiKCJcXFxcIikxNTAgMjcxOCB5IEZoKDEuMy4yKTYzIGIoQ29uZGl0aW9uYWwpNDEgYihJbml0KWcoQ29uc3RydWN0cykKKzI3NSAyOTYxIHkgRnQoUmVhZGxpbmUpMzYgYihpbXBsZW1lbiltKHRzKWYoYSloKGZhY2lsaXQpbSh5KWkoc2ltaWxhcilkCisoaW4pZyhzcGlyaXQpZyh0byloKHRoZSlnKGNvbmRpdGlvbmFsKWgoY29tcGlsYXRpb24pZyhmZWF0dXJlcykxNTAKKzMwNzAgeShvZillKHRoZSlmKEMpZyhwcmVwcm8pcyhjZXNzb3IpZyh3aGljKW0oaClnKGFsbG8pbSh3cylpKGspbShleSlmCisoYmluZGluZ3MpZShhbmQpaCh2KS01IGIoYXJpYWJsZSkzNSBiKHNldHRpbmdzKWgodG8pZihiKXMoZSlmKHApcworKGVyZm9ybWVkKWYoYXMpMTUwIDMxODAgeSh0aGUpZShyZXN1bHQpZihvZilnKHRlc3RzLik0MgorYihUaGVyZSkzMCBiKGFyZSloKGZvdXIpZShwYXJzZXIpaChkaXJlY3RpdiltKGVzKWkodXNlZC4pMTUwCiszMzM2IHkgRnMoJGlmKTMzNiBiIEZ0KFRoZSkzMSBiIEZzKCRpZilmIEZ0KGNvbnN0cnVjdClpKGFsbG8pbSh3cyloCisoYmluZGluZ3MpZCh0bylpKGIpcyhlKWUobWFkZSlpKGJhc2VkKWYob24pZyh0aGUpZyhlZGl0aW5nKWgobW8pcyhkZSwpZworKHRoZSk2MzAgMzQ0NiB5KHRlcm1pbmFsKTM5IGIoYilzKGVpbmcpZSh1c2VkLClqKG9yKWUodGhlKWcKKyhhcHBsaWNhdGlvbiloKHVzaW5nKWYoUmVhZGxpbmUuKTY0IGIoVGhlKTM4IGIodGV4dCloKG9mKWYodGhlKWcodGVzdCkKKzYzMCAzNTU1IHkoZXh0ZW5kcykzMCBiKHRvKWgodGhlKWcoZW5kKWYob2YpZyh0aGUpaChsaW5lOylnKG5vKWYoYyltCisoaGFyYWN0ZXJzKWkoYXJlKWYocmVxdWlyZWQpZSh0bylpKGlzb2xhdGUpaShpdC4pNjMwCiszNzEyIHkgRnMobW9kZSkyODggYiBGdChUaGUpMjAgYiBGcyhtb2RlPSlnIEZ0KGZvcm0pZyhvZiloKHRoZSlnCitGcygkaWYpZiBGdChkaXJlY3RpdiltKGUpaihpcyllKHVzZWQpZih0byloKHRlc3QpaCh3aGV0aGVyKWUoUmVhZGxpbmUpCisxMTEwIDM4MjEgeShpcykyOSBiKGluKWggRnMoZW1hY3MpZSBGdChvciloIEZzKHZpKWcgRnQobW8pcyhkZS4pNDAKK2IoVGhpcykyOSBiKG1hKW0oeSloKGIpcyhlKWUodXNlZCloKGluKWcoY29uanVuY3Rpb24paCh3aXRoKWYodGhlKTExMTAKKzM5MzEgeShgKXAgRnMoc2V0KWgoa2V5bWFwKXAgRnQoJyljKGNvbW1hbmQsKWkoZm9yKWYoaW5zdGFuY2UsKWkodG8pZgorKHNldClnKGJpbmRpbmdzKWYoaW4pZyh0aGUpaCBGcyhlbWFjcy0pMTExMCA0MDQxIHkoc3RhbmRhcmQpMjMKK2IgRnQoYW5kKWggRnMoZW1hY3MtY3RseClmIEZ0KGspbShleW1hcHMpaShvbmx5KWcoaWYpZyhSZWFkbGluZSloKGlzKWYKKyhzdGFydGluZyloKG91dCkxMTEwIDQxNTAgeShpbilrIEZzKGVtYWNzKWYgRnQobW8pcyhkZS4pNjMwCis0MzA3IHkgRnModGVybSkyODggYiBGdChUaGUpMjYgYiBGcyh0ZXJtPSlnIEZ0KGZvcm0pZyhtYSltKHkpaShiKXMoZSllCisodXNlZClnKHRvKWkoaW5jbHVkZSlmKHRlcm1pbmFsLXNwKXMoZWNpXDAxNGMpZyhrKW0oZXkpaChiaW5kLSkxMTEwCis0NDE2IHkoaW5ncywpMzggYihwKXMoZXJoYXBzKWModG8paihiaW5kKWUodGhlKWgoayltKGV5KWgoc2VxdWVuY2VzKWYKKyhvdXRwdXQpZyhiKW0oeSlnKHRoZSlnKHRlcm1pbmFsJ3MpMTExMCA0NTI2IHkoZnVuY3Rpb24pMjQKK2IoayltKGV5cy4pMzkgYihUaGUpMjMgYih3KW0ob3JkKWgob24pZih0aGUpaShyaWdoKW0odClmKHNpZGUpZyhvZilnCisodGhlKWcoYClwIEZzKD0pcCBGdCgnKWcoaXMpZyh0ZXN0ZWQpaChhZ2FpbnN0KTExMTAgNDYzNgoreShiKXMob3RoKWsodGhlKWgoZnVsbClnKG5hbWUpZyhvZilnKHRoZSlnKHRlcm1pbmFsKWgoYW5kKWUodGhlKWkocClzCisob3J0aW9uKWUob2YpaCh0aGUpZyh0ZXJtaW5hbCkxMTEwIDQ3NDUgeShuYW1lKWsoYilzKGVmb3JlKWYodGhlKWcKKyhcMDE0cnN0KWcoYClwIEZzKC0pcCBGdCgnLik1MCBiKFRoaXMpMzMgYihhbGxvKW0od3MpaQorRnMoc3VuKWUgRnQodG8paChtYXRjKW0oaClnKGIpcyhvdGgpZiBGcyhzdW4pZyBGdChhbmQpMTExMAorNDg1NSB5IEZzKHN1bi1jbWQpcCBGdCgsKWMoZm9yKWgoaW5zdGFuY2UuKTYzMCA1MDExIHkKK0ZzKGFwcGxpY2F0aW9uKTExMTAgNTEyMSB5IEZ0KFRoZSkyMSBiIEZpKGFwcGxpY2F0aW9uKWoKK0Z0KGNvbnN0cnVjdCllKGlzKWcodXNlZClmKHRvKWkoaW5jbHVkZSlmKGFwcGxpY2F0aW9uLXNwKXMoZWNpXDAxNGMpaAorKHNldC0pMTExMCA1MjMwIHkodGluZ3MuKTM5IGIoRWFjKW0oaCkyNiBiKHByb2dyYW0pZSh1c2luZylnKHRoZSloCisoUmVhZGxpbmUpZyhsaWJyYXJ5KWcoc2V0cylnKHRoZSlnIEZpKGFwcGxpY2F0aW9uKTExMTAKKzUzNDAgeShuYW1lKXAgRnQoLClnKGFuZCllKHkpbShvdSlnKGNhbiloKHRlc3QpZyhmb3IpZihhKWcocGFydGljdWxhciloCisodiktNSBiKGFsdWUuKTM5IGIoVGhpcykyMiBiKGNvdWxkKWgoYilzKGUpZyh1c2VkKWYodG8pcAorZW9wIGVuZAorJSVQYWdlOiAxMCAxNAorVGVYRGljdCBiZWdpbiAxMCAxMyBib3AgMTUwIC0xMTYgYSBGdCgxMCkyNjAwIGIoR05VKTMxCitiKFJlYWRsaW5lKWcoTGlicmFyeSkxMTEwIDI5OSB5KGJpbmQpaChrKW0oZXkpaChzZXF1ZW5jZXMpZyh0byloCisoZnVuY3Rpb25zKWUodXNlZnVsKWcoZm9yKWgoYSlnKHNwKXMoZWNpXDAxNGMpZihwcm9ncmFtLik0OAorYihGKS04IGIob3IpMTExMCA0MDggeShpbnN0YW5jZSwpMzUgYih0aGUpZShmb2xsbyltKHdpbmcpaChjb21tYW5kKWYKKyhhZGRzKWYoYSlpKGspbShleSlmKHNlcXVlbmNlKWgodGhhdClmKHF1b3RlcykxMTEwIDUxOAoreSh0aGUpZShjdXJyZW4pbSh0KWYob3IpZyhwcmV2aW91cylnKHcpbShvcmQpZyhpbilnKEJhc2g6KTEzNTAKKzY1MyB5IEZzKCRpZik0NyBiKEJhc2gpMTM1MCA3NjIgeSgjKWcoUXVvdGUpZyh0aGUpZyhjdXJyZW50KWYob3IpaAorKHByZXZpb3VzKWUod29yZCkxMzUwIDg3MiB5KCJcXEMteHEiOiloKCJcXGViXFwiXFxlZlxcIiIpMTM1MAorOTgxIHkoJGVuZGlmKTE1MCAxMTQxIHkoJGVuZGlmKTE5MiBiIEZ0KFRoaXMpMjkgYihjb21tYW5kLClpKGFzKWYoc2VlbikKK2goaW4pZih0aGUpZyhwcmV2aW91cylnKGV4YW1wbGUsKWgodGVybWluYXRlcylnKGFuKWcKK0ZzKCRpZillIEZ0KGNvbW1hbmQuKTE1MCAxMzAwIHkgRnMoJGVsc2UpMjQwIGIgRnQoQ29tbWFuZHMpMjkKK2IoaW4paCh0aGlzKWgoYnJhbmMpbShoKWUob2YpaSh0aGUpZiBGcygkaWYpZyBGdChkaXJlY3RpdiltKGUpaShhcmUpZgorKGV4ZWN1dGVkKWcoaWYpZih0aGUpaCh0ZXN0KWcoZmFpbHMuKTE1MCAxNDYwIHkgRnMoJGluY2x1ZGUpOTYKK2IgRnQoVGhpcyk0MyBiKGRpcmVjdGl2KW0oZSlpKHRhayltKGVzKWcoYSllKHNpbmdsZSlpKFwwMTRsZW5hbWUpZShhcyloCisoYW4pZihhcmd1bWVuKW0odCloKGFuZClmKHJlYWRzKWcoY29tbWFuZHMpNjMwIDE1NjkgeShhbmQpMzgKK2IoYmluZGluZ3MpZihmcm9tKWgodGhhdClpKFwwMTRsZS4pNjUgYihGKS04IGIob3IpMzkKK2IoZXhhbXBsZSwpaih0aGUpZChmb2xsbyltKHdpbmcpaChkaXJlY3RpdiltKGUpZyhyZWFkcyllKGZyb20pNjMwCisxNjc5IHkoYClwIEZzKC9ldGMvaW5wdXRyYylwIEZ0KCc6KTg3MCAxODEzIHkgRnMoJGluY2x1ZGUpNDYKK2IoL2V0Yy9pbnB1dHJjKTE1MCAyMDM3IHkgRmgoMS4zLjMpNjMgYihTYW1wbGUpNDEgYihJbml0KWcoRmlsZSkyNzUKKzIyODEgeSBGdChIZXJlKTMxIGIoaXMpZihhbilnKGV4YW1wbGUpaShvZillKGFuKWcgRmkoaW5wdXRyYykzNQorYiBGdChcMDE0bGUuKTQyIGIoVGhpcykyOSBiKGlsbHVzdHJhdGVzKWooayltKGV5KWYoYmluZGluZywpZih2KS01CitiKGFyaWFibGUpMzEgYihhc3NpZ25tZW4pbSh0LCkxNTAgMjM5MSB5KGFuZClmKGNvbmRpdGlvbmFsKWgoc3luKW0KKyh0YXguKXAgZW9wIGVuZAorJSVQYWdlOiAxMSAxNQorVGVYRGljdCBiZWdpbiAxMSAxNCBib3AgMTUwIC0xMTYgYSBGdChDaGFwdGVyKTMwIGIoMTopNDEKK2IoQ29tbWFuZCkyOSBiKExpbmUpaShFZGl0aW5nKTIxMDcgYigxMSkzOTAgNDA4IHkgRnMoIyk0NworYihUaGlzKWcoZmlsZSlnKGNvbnRyb2xzKWUodGhlKWkoYmVoYXZpb3VyKWUob2YpaihsaW5lKWUoaW5wdXQpaAorKGVkaXRpbmcpZShmb3IpMzkwIDUxOCB5KCMpaShwcm9ncmFtcylmKHRoYXQpaCh1c2UpZyh0aGUpZihHTlUpaAorKFJlYWRsaW5lKWYobGlicmFyeS4pOTMgYihFeGlzdGluZykzOTAgNjI4IHkoIyk0NyBiKHByb2dyYW1zKWYoaW5jbHVkZSkKK2coRlRQLClnKEJhc2gsKWgoYW5kKWcoR0RCLikzOTAgNzM3IHkoIykzOTAgODQ3IHkoIylnKFlvdSlnKGNhbilnCisocmUtcmVhZClmKHRoZSloKGlucHV0cmMpZihmaWxlKWcod2l0aCloKEMteClnKEMtci4pMzkwCis5NTYgeSgjKWcoTGluZXMpZyhiZWdpbm5pbmcpZSh3aXRoKWkoJyMnKWcoYXJlKWcoY29tbWVudHMuKTM5MAorMTA2NiB5KCMpMzkwIDExNzYgeSgjKWcoRmlyc3QsKWcoaW5jbHVkZSllKGFueSlpKHN5c3RlbXdpZGUpZShiaW5kaW5ncykKK2goYW5kKWgodmFyaWFibGUpMzkwIDEyODUgeSgjKWcoYXNzaWdubWVudHMpZShmcm9tKWkoL2V0Yy9JbnB1dHJjKTM5MAorMTM5NSB5KCRpbmNsdWRlKWYoL2V0Yy9JbnB1dHJjKTM5MCAxNjE0IHkoIykzOTAgMTcyNAoreSgjKWgoU2V0KWcodmFyaW91cylmKGJpbmRpbmdzKWcoZm9yKWgoZW1hY3MpZihtb2RlLikzOTAKKzE5NDMgeShzZXQpaChlZGl0aW5nLW1vZGUpZChlbWFjcykzOTAgMjE2MiB5KCRpZilqKG1vZGU9ZW1hY3MpMzkwCisyMzgxIHkoTWV0YS1Db250cm9sLWg6KTkxIGIoYmFja3dhcmQta2lsbC13b3JkKTQzIGIoVGV4dClrKGFmdGVyKWYodGhlKQoraChmdW5jdGlvbilmKG5hbWUpZyhpcyloKGlnbm9yZWQpcCAzOTcxIDI0MDEgNDIgNzYgdgorMzkwIDI2MDAgYSgjKTM5MCAyNzEwIHkoIylnKEFycm93KWcoa2V5cylmKGluKWkoa2V5cGFkKWUobW9kZSkzOTAKKzI4MTkgeSgjKTM5MCAyOTI5IHkoIyJcXE0tT0QiOikzNzkgYihiYWNrd2FyZC1jaGFyKTM5MAorMzAzOSB5KCMiXFxNLU9DIjopZyhmb3J3YXJkLWNoYXIpMzkwIDMxNDggeSgjIlxcTS1PQSI6KWcKKyhwcmV2aW91cy1oaXN0b3J5KTM5MCAzMjU4IHkoIyJcXE0tT0IiOilnKG5leHQtaGlzdG9yeSkzOTAKKzMzNjcgeSgjKTM5MCAzNDc3IHkoIyk0NyBiKEFycm93KWcoa2V5cylmKGluKWkoQU5TSSllKG1vZGUpMzkwCiszNTg3IHkoIykzOTAgMzY5NiB5KCJcXE0tW0QiOikzODAgYihiYWNrd2FyZC1jaGFyKTM5MAorMzgwNiB5KCJcXE0tW0MiOilnKGZvcndhcmQtY2hhcikzOTAgMzkxNSB5KCJcXE0tW0EiOilnCisocHJldmlvdXMtaGlzdG9yeSkzOTAgNDAyNSB5KCJcXE0tW0IiOilnKG5leHQtaGlzdG9yeSkzOTAKKzQxMzQgeSgjKTM5MCA0MjQ0IHkoIyk0NyBiKEFycm93KWcoa2V5cylmKGluKWkoOClmKGJpdClnKGtleXBhZClmKG1vZGUpCiszOTAgNDM1NCB5KCMpMzkwIDQ0NjMgeSgjIlxcTS1cXEMtT0QiOikzMzEgYihiYWNrd2FyZC1jaGFyKTM5MAorNDU3MyB5KCMiXFxNLVxcQy1PQyI6KWcoZm9yd2FyZC1jaGFyKTM5MCA0NjgyIHkoIyJcXE0tXFxDLU9BIjopZworKHByZXZpb3VzLWhpc3RvcnkpMzkwIDQ3OTIgeSgjIlxcTS1cXEMtT0IiOilnKG5leHQtaGlzdG9yeSkzOTAKKzQ5MDIgeSgjKTM5MCA1MDExIHkoIyk0NyBiKEFycm93KWcoa2V5cylmKGluKWkoOClmKGJpdClnKEFOU0kpZyhtb2RlKQorMzkwIDUxMjEgeSgjKTM5MCA1MjMwIHkoIyJcXE0tXFxDLVtEIjopMzMxIGIoYmFja3dhcmQtY2hhcikzOTAKKzUzNDAgeSgjIlxcTS1cXEMtW0MiOilnKGZvcndhcmQtY2hhcilwIGVvcCBlbmQKKyUlUGFnZTogMTIgMTYKK1RlWERpY3QgYmVnaW4gMTIgMTUgYm9wIDE1MCAtMTE2IGEgRnQoMTIpMjYwMCBiKEdOVSkzMQorYihSZWFkbGluZSlnKExpYnJhcnkpMzkwIDI5OSB5IEZzKCMiXFxNLVxcQy1bQSI6KTMzMQorYihwcmV2aW91cy1oaXN0b3J5KTM5MCA0MDggeSgjIlxcTS1cXEMtW0IiOilnKG5leHQtaGlzdG9yeSkzOTAKKzYyOCB5KEMtcTopNDcgYihxdW90ZWQtaW5zZXJ0KTM5MCA4NDcgeSgkZW5kaWYpMzkwIDEwNjYKK3koIylnKEFuKWgob2xkLXN0eWxlKWQoYmluZGluZy4pOTMgYihUaGlzKTQ3IGIoaGFwcGVucylmKHRvKWgoYmUpZyh0aGUpCitnKGRlZmF1bHQuKTM5MCAxMTc2IHkoVEFCOilnKGNvbXBsZXRlKTM5MCAxMzk1IHkoIylnKE1hY3JvcylnKHRoYXQpZgorKGFyZSloKGNvbnZlbmllbnQpZShmb3IpaShzaGVsbClmKGludGVyYWN0aW9uKTM5MCAxNTA0Cit5KCRpZiloKEJhc2gpMzkwIDE2MTQgeSgjKWcoZWRpdClnKHRoZSlnKHBhdGgpMzkwIDE3MjQKK3koIlxcQy14cCI6KWYoIlBBVEg9JHtQQVRIfVxcZVxcQy1lXFxDLWEpbyhcXGVmKW8oXFxDLWYpbygiKTM5MAorMTgzMyB5KCMpaChwcmVwYXJlKWYodG8paCh0eXBlKWcoYSloKHF1b3RlZCllKHdvcmQpZygtLSkzOTAKKzE5NDMgeSgjKWgoaW5zZXJ0KWcob3BlbilmKGFuZCloKGNsb3NlKWYoZG91YmxlKWgocXVvdGVzKTM5MAorMjA1MiB5KCMpZyhhbmQpZyhtb3ZlKWcodG8pZyhqdXN0KWcoYWZ0ZXIpZih0aGUpaChvcGVuKWcocXVvdGUpMzkwCisyMTYyIHkoIlxcQy14XFwiIjopZSgiXFwiXFwiXFxDLWIiKTM5MCAyMjcxIHkoIylpKGluc2VydClnKGEpZworKGJhY2tzbGFzaCllKFwodGVzdGluZyloKGJhY2tzbGFzaClmKGVzY2FwZXMpMzkwIDIzODEKK3koIylpKGluKWgoc2VxdWVuY2VzKWQoYW5kKWkobWFjcm9zXCkpMzkwIDI0OTEgeSgiXFxDLXhcXFxcIjopZSgiXFxcXCIpCiszOTAgMjYwMCB5KCMpaShRdW90ZSlnKHRoZSlnKGN1cnJlbnQpZihvciloKHByZXZpb3VzKWUod29yZCkzOTAKKzI3MTAgeSgiXFxDLXhxIjopaCgiXFxlYlxcIlxcZWZcXCIiKTM5MCAyODE5IHkoIyloKEFkZClnKGEpaChiaW5kaW5nKWUKKyh0byloKHJlZnJlc2gpZih0aGUpaChsaW5lLClmKHdoaWNoKWcoaXMpaCh1bmJvdW5kKTM5MAorMjkyOSB5KCJcXEMteHIiOilmKHJlZHJhdy1jdXJyZW50LWxpbmUpMzkwIDMwMzkgeSgjKWgoRWRpdClnKHZhcmlhYmxlKWYKKyhvbiloKGN1cnJlbnQpZihsaW5lLikzOTAgMzE0OCB5KCJcXE0tXFxDLXYiOilmCisoIlxcQy1hXFxDLWskXFxDLXlcXE0tXFxDLWVcXEMtKW8oYVxcQy0pbyh5PSIpMzkwIDMyNTgKK3koJGVuZGlmKTM5MCAzNDc3IHkoIylpKHVzZSlnKGEpaCh2aXNpYmxlKWUoYmVsbClnKGlmKWgob25lKWcoaXMpaAorKGF2YWlsYWJsZSkzOTAgMzU4NyB5KHNldClmKGJlbGwtc3R5bGUpZSh2aXNpYmxlKTM5MAorMzgwNiB5KCMpaShkb24ndClnKHN0cmlwKWYoY2hhcmFjdGVycylmKHRvKWkoNyloKGJpdHMpZSh3aGVuKWgocmVhZGluZykKKzM5MCAzOTE1IHkoc2V0KWcoaW5wdXQtbWV0YSllKG9uKTM5MCA0MTM0IHkoIylpKGFsbG93KWcoaXNvLWxhdGluMSllCisoY2hhcmFjdGVycylnKHRvKWkoYmUpZyhpbnNlcnRlZClmKHJhdGhlcikzOTAgNDI0NCB5KCMpaCh0aGFuKWcKKyhjb252ZXJ0ZWQpZSh0bylqKHByZWZpeC1tZXRhKWMoc2VxdWVuY2VzKTM5MCA0MzU0IHkoc2V0KWoKKyhjb252ZXJ0LW1ldGEpZChvZmYpMzkwIDQ1NzMgeSgjKWooZGlzcGxheSlmKGNoYXJhY3RlcnMpZih3aXRoKWkodGhlKWcKKyhlaWdodGgpZihiaXQpaChzZXQpZyhkaXJlY3RseSkzOTAgNDY4MiB5KCMpZyhyYXRoZXIpZyh0aGFuKWYoYXMpaAorKG1ldGEtcHJlZml4ZWQpZShjaGFyYWN0ZXJzKTM5MCA0NzkyIHkoc2V0KWkob3V0cHV0LW1ldGEpZShvbikzOTAKKzUwMTEgeSgjKWkoaWYpaCh0aGVyZSllKGFyZSloKG1vcmUpZyh0aGFuKWYoMTUwKWgocG9zc2libGUpZgorKGNvbXBsZXRpb25zKWUoZm9yKTM5MCA1MTIxIHkoIylqKGEpaCh3b3JkLCllKGFzayloKHRoZSlnKHVzZXIpZyhpZilnCisoaGUpZyh3YW50cylmKHRvKWkoc2VlKWYoYWxsKWYob2YpaSh0aGVtKTM5MCA1MjMwIHkoc2V0KWYKKyhjb21wbGV0aW9uLXF1ZXJ5LWl0ZW1zKTQyIGIoMTUwKXAgZW9wIGVuZAorJSVQYWdlOiAxMyAxNworVGVYRGljdCBiZWdpbiAxMyAxNiBib3AgMTUwIC0xMTYgYSBGdChDaGFwdGVyKTMwIGIoMTopNDEKK2IoQ29tbWFuZCkyOSBiKExpbmUpaShFZGl0aW5nKTIxMDcgYigxMykzOTAgMjk5IHkgRnMoIyk0NworYihGb3IpZyhGVFApMzkwIDQwOCB5KCRpZilnKEZ0cCkzOTAgNTE4IHkoIlxcQy14ZyI6KWYoImdldClnKFxcTS0/IikzOTAKKzYyOCB5KCJcXEMteHQiOilnKCJwdXQpZyhcXE0tPyIpMzkwIDczNyB5KCJcXE0tLiI6KWcoeWFuay1sYXN0LWFyZykzOTAKKzg0NyB5KCRlbmRpZikxNTAgMTA5OCB5IEZyKDEuNCk2OCBiKEJpbmRhYmxlKTQ1IGIoUmVhZGxpbmUpaShDb21tYW5kcykKKzI3NSAxMzQwIHkgRnQoVGhpcykzMCBiKHNlY3Rpb24paihkZXNjcmliKXMoZXMpZChSZWFkbGluZSlpKGNvbW1hbmRzKWYKKyh0aGF0KWgobWEpbSh5KWcoYilzKGUpZihiKXMob3VuZCllKHRvKWooayltKGV5KWcoc2VxdWVuY2VzLik0NAorYihDb20tKTE1MCAxNDQ5IHkobWFuZCkzMCBiKG5hbWVzKWcod2l0aG91dClnKGFuKWcoYWNjb21wYW4pbSh5aW5nKWkoaykKK20oZXkpZyhzZXF1ZW5jZSllKGFyZSloKHVuKW0oYilzKG91bmQpZChiKW0oeSlpKGRlZmF1bHQuKTI3NQorMTU4MiB5KEluKTI1IGIodGhlKWgoZm9sbG8pbSh3aW5nKWkoZGVzY3JpcHRpb25zLClmIEZpKHApcyhvaW4pbSh0KWgKK0Z0KHJlZmVycyllKHRvKWgodGhlKWYoY3VycmVuKW0odClnKGN1cnNvcilnKHApcyhvc2l0aW9uLCloKGFuZClmCitGaShtYXJrKTMxIGIgRnQocmVmZXJzKTE1MCAxNjkxIHkodG8pNDAgYihhKWYoY3Vyc29yKWYocClzKG9zaXRpb24paAorKHNhKW0odiltKGVkKWgoYiltKHkpZih0aGUpZyBGcyhzZXQtbWFyaylkIEZ0KGNvbW1hbmQuKTY2CitiKFRoZSkzOCBiKHRleHQpaShiKXMoZXQpbSh3KW0oZWVuKWcodGhlKWYocClzKG9pbiltKHQpZyhhbmQpMTUwCisxODAxIHkobWFyaykzMCBiKGlzKWgocmVmZXJyZWQpZSh0bylpKGFzKWcodGhlKWYgRmkocmVnaW9uKXAKK0Z0KC4pMTUwIDIwMTggeSBGaCgxLjQuMSk2MyBiKENvbW1hbmRzKTQyIGIoRiktMTAgYihvcik0MQorYihNbyltKHZpbmcpMTUwIDIyNjAgeSBGcyhiZWdpbm5pbmctb2YtbGluZSkyNiBiKFwoQy1hXCkpNjMwCisyMzcwIHkgRnQoTW8pbSh2KW0oZSkzMiBiKHRvKWcodGhlKWUoc3RhcnQpaChvZilnKHRoZSlmKGN1cnJlbiltKHQpZworKGxpbmUuKTE1MCAyNTI1IHkgRnMoZW5kLW9mLWxpbmUpZChcKEMtZVwpKTYzMCAyNjM1IHkKK0Z0KE1vKW0odiltKGUpMzIgYih0bylnKHRoZSllKGVuZClnKG9mKWcodGhlKWgobGluZS4pMTUwCisyNzkwIHkgRnMoZm9yd2FyZC1jaGFyKWMoXChDLWZcKSk2MzAgMjg5OSB5IEZ0KE1vKW0odiltKGUpMzIKK2IoZm9ydyltKGFyZCllKGEpaChjKW0oaGFyYWN0ZXIuKTE1MCAzMDU0IHkgRnMoYmFja3dhcmQtY2hhciljKFwoQy1iXCkpCis2MzAgMzE2NCB5IEZ0KE1vKW0odiltKGUpMzIgYihiYWMpbShrKWcoYSllKGMpbShoYXJhY3Rlci4pMTUwCiszMzE5IHkgRnMoZm9yd2FyZC13b3JkKWQoXChNLWZcKSk2MzAgMzQyOSB5IEZ0KE1vKW0odiltKGUpMzIKK2IoZm9ydyltKGFyZCllKHRvKWgodGhlKWYoZW5kKWcob2YpZyh0aGUpaChuZXh0KWYodyltKG9yZC4pNDEKK2IoVyktOCBiKG9yZHMpMzAgYihhcmUpaChjb21wKXMob3NlZClmKG9mKWcobGV0dGVycylpKGFuZCk2MzAKKzM1MzggeShkaWdpdHMuKTE1MCAzNjkzIHkgRnMoYmFja3dhcmQtd29yZCkyNyBiKFwoTS1iXCkpNjMwCiszODAzIHkgRnQoTW8pbSh2KW0oZSkzNiBiKGJhYyltKGspZSh0bylnKHRoZSlnKHN0YXJ0KWcob2YpZyh0aGUpZworKGN1cnJlbiltKHQpZihvcilnKHByZXZpb3VzKWcodyltKG9yZC4pNTAgYihXKS04IGIob3JkcykzNAorYihhcmUpZyhjb21wKXMob3NlZCk2MzAgMzkxMyB5KG9mKWQobGV0dGVycylnKGFuZClmKGRpZ2l0cy4pMTUwCis0MDY4IHkgRnMoY2xlYXItc2NyZWVuKWQoXChDLWxcKSk2MzAgNDE3NyB5IEZ0KENsZWFyKWcodGhlKWcoc2NyZWVuKWYKKyhhbmQpaChyZWRyYSltKHcpZih0aGUpaChjdXJyZW4pbSh0KWYobGluZSwpaShsZWEpbSh2aW5nKWcodGhlKWYKKyhjdXJyZW4pbSh0KWcobGluZSlnKGF0KWcodGhlKWcodG9wKTYzMCA0Mjg3IHkob2Ypayh0aGUpZihzY3JlZW4uKTE1MAorNDQ0MiB5IEZzKHJlZHJhdy1jdXJyZW50LWxpbmUpMjUgYihcKFwpKTYzMCA0NTUyIHkgRnQoUmVmcmVzaCkzMAorYih0aGUpZyhjdXJyZW4pbSh0KWgobGluZS4pNDEgYihCeSkzMCBiKGRlZmF1bHQsKWgodGhpcylmKGlzKWgodW4pbShiKXMKKyhvdW5kLikxNTAgNDc2OSB5IEZoKDEuNC4yKTYzIGIoQ29tbWFuZHMpNDIgYihGKS0xMCBiKG9yKTQxCitiKE1hbmlwdWxhdGluZyloKFRoZSlmKEhpc3RvcnkpMTUwIDUwMTEgeSBGcyhhY2NlcHQtbGluZSkyNworYihcKE5ld2xpbmUpaChvcilpKFJldHVyblwpKTYzMCA1MTIxIHkgRnQoQWNjZXB0KTM2IGIodGhlKWcobGluZSlmCisocmVnYXJkbGVzcyloKG9mKWYod2hlcmUpZyh0aGUpZyhjdXJzb3IpZyhpcy4pNTUgYihJZikzNAorYih0aGlzKWgobGluZSloKGlzKWYobm9uLWVtcHQpbSh5KS04IGIoLCkzNyBiKGl0KTYzMAorNTIzMCB5KG1hKW0oeSkzMiBiKGIpcyhlKWcoYWRkZWQpZih0byloKHRoZSlnKGhpc3RvcnkpZyhsaXN0KWgoZm9yKWUKKyhmdXR1cmUpZyhyZWNhbGwpaih3aXRoKWQgRnMoYWRkX2hpc3RvcnlcKFwpKXAgRnQoLik0MgorYihJZikzMSBiKHRoaXMpNjMwIDUzNDAgeShsaW5lKWcoaXMpZihhKWgobW8pcyhkaVwwMTRlZCllKGhpc3RvcnkpaAorKGxpbmUsKWgodGhlKWcoaGlzdG9yeSlmKGxpbmUpaChpcylmKHJlc3RvcmVkKWgodG8pZyhpdHMpZyhvcmlnaW5hbClnCisoc3RhdGUuKXAgZW9wIGVuZAorJSVQYWdlOiAxNCAxOAorVGVYRGljdCBiZWdpbiAxNCAxNyBib3AgMTUwIC0xMTYgYSBGdCgxNCkyNjAwIGIoR05VKTMxCitiKFJlYWRsaW5lKWcoTGlicmFyeSkxNTAgMjk5IHkgRnMocHJldmlvdXMtaGlzdG9yeSkyNgorYihcKEMtcFwpKTYzMCA0MDggeSBGdChNbyltKHYpbShlKTMyIGIoYGJhYyltKGsnKWcodGhyb3VnaCllKHRoZSlnCisoaGlzdG9yeSloKGxpc3QsKWcoZmV0YyltKGhpbmcpZyh0aGUpZyhwcmV2aW91cylmKGNvbW1hbmQuKTE1MAorNTU2IHkgRnMobmV4dC1oaXN0b3J5KWQoXChDLW5cKSk2MzAgNjY2IHkgRnQoTW8pbSh2KW0oZSkzMgorYihgZm9ydyltKGFyZCcpZih0aHJvdWdoKWUodGhlKWkoaGlzdG9yeSlmKGxpc3QsKWkoZmV0YyltKGhpbmcpZih0aGUpZworKG5leHQpZihjb21tYW5kLikxNTAgODE0IHkgRnMoYmVnaW5uaW5nLW9mLWhpc3RvcnkpMjUKK2IoXChNLTxcKSk2MzAgOTIzIHkgRnQoTW8pbSh2KW0oZSkzMiBiKHRvKWcodGhlKWUoXDAxNHJzdClnKGxpbmUpZyhpbiloCisodGhlKWYoaGlzdG9yeSktOCBiKC4pMTUwIDEwNzEgeSBGcyhlbmQtb2YtaGlzdG9yeSkyNgorYihcKE0tPlwpKTYzMCAxMTgxIHkgRnQoTW8pbSh2KW0oZSkzMiBiKHRvKWcodGhlKWUoZW5kKWcob2YpZyh0aGUpaAorKGlucHV0KWUoaGlzdG9yeSktOCBiKCwpMzEgYihpLmUuLCloKHRoZSlmKGxpbmUpZihjdXJyZW4pbSh0bHkpaChiKXMKKyhlaW5nKWYoZW4pbSh0ZXJlZC4pMTUwIDEzMjkgeSBGcyhyZXZlcnNlLXNlYXJjaC1oaXN0b3J5KTI0CitiKFwoQy1yXCkpNjMwIDE0MzggeSBGdChTZWFyYyltKGgpMzEgYihiYWMpbShrdyltKGFyZCloKHN0YXJ0aW5nKWcoYXQpZworKHRoZSlmKGN1cnJlbiltKHQpZyhsaW5lKWcoYW5kKWcobW8pbSh2aW5nKWgoYHVwJyllKHRocm91Z2gpaCh0aGUpZworKGhpcy0pNjMwIDE1NDggeSh0b3J5KWcoYXMpZihuZWNlc3NhcnkpLTggYiguKTQyIGIoVGhpcykyOQorYihpcylpKGFuKWYoaW5jcmVtZW4pbSh0YWwpaShzZWFyYyltKGguKTE1MCAxNjk2IHkgRnMKKyhmb3J3YXJkLXNlYXJjaC1oaXN0b3J5KTI0IGIoXChDLXNcKSk2MzAgMTgwNSB5IEZ0KFNlYXJjKW0oaCkzMAorYihmb3J3KW0oYXJkKWYoc3RhcnRpbmcpaChhdClnKHRoZSlnKGN1cnJlbiltKHQpZihsaW5lKWgoYW5kKWYobW8pbQorKHZpbmcpaChgZG8pbSh3bicpZih0aHJvdWdoKWcodGhlKWgodGhlKTYzMCAxOTE1IHkoaGlzdG9yeSlnKGFzKWgKKyhuZWNlc3NhcnkpLTggYiguKTQxIGIoVGhpcykzMCBiKGlzKWcoYW4paChpbmNyZW1lbiltKHRhbClnKHNlYXJjKW0oaC4pCisxNTAgMjA2MyB5IEZzKG5vbi1pbmNyZW1lbnRhbC1yZXZlcnNlLSlvKHNlYXIpbyhjaC1oKW8oaXN0KW8ob3J5KTI0CitiKFwoTS1wXCkpNjMwIDIxNzIgeSBGdChTZWFyYyltKGgpMzEgYihiYWMpbShrdyltKGFyZCloKHN0YXJ0aW5nKWcoYXQpZworKHRoZSlmKGN1cnJlbiltKHQpZyhsaW5lKWcoYW5kKWcobW8pbSh2aW5nKWgoYHVwJyllKHRocm91Z2gpaCh0aGUpZworKGhpcy0pNjMwIDIyODIgeSh0b3J5KTM2IGIoYXMpZyhuZWNlc3NhcnkpaCh1c2luZyllKGEpaShub24taW5jcmVtZW4pbQorKHRhbClnKHNlYXJjKW0oaClmKGZvcilnKGEpZyhzdHJpbmcpZyhzdXBwbGllZClmKGIpbSh5KWgodGhlKTYzMAorMjM5MSB5KHVzZXIuKTE1MCAyNTM5IHkgRnMobm9uLWluY3JlbWVudGFsLWZvcndhcmQtKW8oc2VhcilvKGNoLWgpbworKGlzdClvKG9yeSkyNCBiKFwoTS1uXCkpNjMwIDI2NDkgeSBGdChTZWFyYyltKGgpMzAgYihmb3J3KW0oYXJkKWYKKyhzdGFydGluZyloKGF0KWcodGhlKWcoY3VycmVuKW0odClmKGxpbmUpaChhbmQpZihtbyltKHZpbmcpaChgZG8pbSh3bicpCitmKHRocm91Z2gpZyh0aGUpaCh0aGUpNjMwIDI3NTggeShoaXN0b3J5KWQoYXMpZihuZWNlc3NhcnkpaSh1c2luZyllKGEpaAorKG5vbi1pbmNyZW1lbiltKHRhbClnKHNlYXJjKW0oaCloKGZvcillKGEpaChzdHJpbmcpZyhzdXBwbGllZCllKGIpbSh5KWkKKyh0aGUpNjMwIDI4NjggeSh1c2VyLikxNTAgMzAxNiB5IEZzKGhpc3Rvcnktc2VhcmNoLWZvcndhcmQpZChcKFwpKTYzMAorMzEyNSB5IEZ0KFNlYXJjKW0oaCk0MiBiKGZvcncpbShhcmQpZih0aHJvdWdoKWYodGhlKWkoaGlzdG9yeSlmKGZvcilnCisodGhlKWgoc3RyaW5nKWYob2YpaChjKW0oaGFyYWN0ZXJzKWgoYilzKGV0KW0odyltKGVlbilmKHRoZSk2MzAKKzMyMzUgeShzdGFydCkzNiBiKG9mKWYodGhlKWcoY3VycmVuKW0odClnKGxpbmUpZyhhbmQpZyh0aGUpZyhwKXMob2luKW0KKyh0Lik1NSBiKFRoaXMpMzQgYihpcylpKGEpZihub24taW5jcmVtZW4pbSh0YWwpaChzZWFyYyltKGguKTU2CitiKEJ5KTYzMCAzMzQ1IHkoZGVmYXVsdCwpMzEgYih0aGlzKWYoY29tbWFuZClnKGlzKWgodW4pbShiKXMob3VuZC4pMTUwCiszNDkyIHkgRnMoaGlzdG9yeS1zZWFyY2gtYmFja3dhcmQpMjQgYihcKFwpKTYzMCAzNjAyCit5IEZ0KFNlYXJjKW0oaCkzNSBiKGJhYyltKGt3KW0oYXJkKWcodGhyb3VnaClmKHRoZSloKGhpc3RvcnkpZyhmb3IpZworKHRoZSlmKHN0cmluZyloKG9mKWcoYyltKGhhcmFjdGVycyloKGIpcyhldCltKHcpbShlZW4pZyh0aGUpNjMwCiszNzEyIHkoc3RhcnQpZyhvZilmKHRoZSlnKGN1cnJlbiltKHQpZyhsaW5lKWcoYW5kKWcodGhlKWcocClzKG9pbiltKHQuKQorNTUgYihUaGlzKTM0IGIoaXMpaShhKWYobm9uLWluY3JlbWVuKW0odGFsKWgoc2VhcmMpbShoLik1NgorYihCeSk2MzAgMzgyMSB5KGRlZmF1bHQsKTMxIGIodGhpcylmKGNvbW1hbmQpZyhpcyloKHVuKW0oYilzKG91bmQuKTE1MAorMzk2OSB5IEZzKHlhbmstbnRoLWFyZyljKFwoTS1DLXlcKSk2MzAgNDA3OSB5IEZ0KEluc2VydCkzNworYih0aGUpZyhcMDE0cnN0KWYoYXJndW1lbiltKHQpaSh0bylmKHRoZSloKHByZXZpb3VzKWUoY29tbWFuZCloCisoXCh1c3VhbGx5KWcodGhlKWcoc2Vjb25kKWcodyltKG9yZCk2MzAgNDE4OCB5KG9uKTMyCitiKHRoZSlnKHByZXZpb3VzKWYobGluZVwpKWkoYXQpZihwKXMob2luKW0odC4pNDYgYihXaXRoKTMyCitiKGFuKWcoYXJndW1lbiltKHQpZyBGaShuKXAgRnQoLClnKGluc2VydClnKHRoZSlnIEZpKG4pcAorRnQodGgpZih3KW0ob3JkKWcoZnJvbSk2MzAgNDI5OCB5KHRoZSlrKHByZXZpb3VzKWYoY29tbWFuZCloKFwodGhlKWcodykKK20ob3JkcylnKGluKWYodGhlKWgocHJldmlvdXMpZyhjb21tYW5kKWYoYilzKGVnaW4paCh3aXRoKWYodyltKG9yZCk2MzAKKzQ0MDcgeSgwXCkuKTY5IGIoQSk0MCBiKG5lZ2F0aXYpbShlKWgoYXJndW1lbiltKHQpZihpbnNlcnRzKWcodGhlKWYKK0ZpKG4pcCBGdCh0aClnKHcpbShvcmQpZyhmcm9tKWcodGhlKWgoZW5kKWYob2YpaCh0aGUpZihwcmV2aW91cyk2MzAKKzQ1MTcgeShjb21tYW5kLik0OCBiKE9uY2UpMzMgYih0aGUpZyhhcmd1bWVuKW0odCloIEZpKG4pZQorRnQoaXMpaChjb21wdXRlZCwpaCh0aGUpZihhcmd1bWVuKW0odClnKGlzKWcoZXh0cmFjdGVkKWkoYXMpZShpZik2MzAKKzQ2MjcgeSh0aGUpZShgKXAgRnMoISlwIEZsKG4pMTEgYiBGdCgnKTI5IGIoaGlzdG9yeSlpKGV4cGFuc2lvbilmKGhhZClnCisoYilzKGVlbilmKHNwKXMoZWNpXDAxNGVkLikxNTAgNDc3NCB5IEZzKHlhbmstbGFzdC1hcmcpZShcKE0tLilpKG9yKWgKKyhNLV9cKSk2MzAgNDg4NCB5IEZ0KEluc2VydClrKGxhc3QpaShhcmd1bWVuKW0odClnKHRvKWcodGhlKWYocHJldmlvdXMpCitmKGNvbW1hbmQpaChcKHRoZSloKGxhc3QpZih3KW0ob3JkKWcob2YpZyh0aGUpZyhwcmV2aW91cyk2MzAKKzQ5OTQgeShoaXN0b3J5KWMoZW4pbSh0cnlcKS4pNDEgYihXaXRoKTMxIGIoYW4pZyhhcmd1bWVuKW0odCwpZyhiKXMKKyhlaGEpbSh2KW0oZSlnKGV4YWN0bHkpaShsaWspbShlKWYgRnMoeWFuay1udGgtYXJnKXAKK0Z0KC4pMzggYihTdWNjZXMtKTYzMCA1MTAzIHkoc2l2KW0oZSlkKGNhbGxzKWgodG8pZiBGcyh5YW5rLWxhc3QtYXJnKWMKK0Z0KG1vKW0odiltKGUpMzYgYihiYWMpbShrKWcodGhyb3VnaClkKHRoZSlpKGhpc3RvcnkpZyhsaXN0LCloCisoaW5zZXJ0aW5nKWYodGhlKTYzMCA1MjEzIHkobGFzdClkKGFyZ3VtZW4pbSh0KWYob2YpZyhlYWMpbShoKWgobGluZSlmCisoaW4pZih0dXJuLik0MSBiKFRoZSkzMCBiKGhpc3RvcnkpaChleHBhbnNpb24pZihmYWNpbGl0aWVzKWooYXJlKWUKKyh1c2VkKWYodG8pNjMwIDUzMjIgeShleHRyYWN0KWkodGhlKWUobGFzdClpKGFyZ3VtZW4pbSh0LClmKGFzKWYoaWYpaAorKHRoZSlmKGApcCBGcyghJClwIEZ0KCcpZyhoaXN0b3J5KWgoZXhwYW5zaW9uKWYoaGFkKWcoYilzKGVlbilmKHNwKXMKKyhlY2lcMDE0ZWQuKXAgZW9wIGVuZAorJSVQYWdlOiAxNSAxOQorVGVYRGljdCBiZWdpbiAxNSAxOCBib3AgMTUwIC0xMTYgYSBGdChDaGFwdGVyKTMwIGIoMTopNDEKK2IoQ29tbWFuZCkyOSBiKExpbmUpaShFZGl0aW5nKTIxMDcgYigxNSkxNTAgMjk5IHkgRmgoMS40LjMpNjMKK2IoQ29tbWFuZHMpNDIgYihGKS0xMCBiKG9yKTQxIGIoQ2hhbmdpbmcpZyhUKS0xMCBiKGV4dCkxNTAKKzU0NyB5IEZzKGRlbGV0ZS1jaGFyKTI3IGIoXChDLWRcKSk2MzAgNjU2IHkgRnQoRGVsZXRlKTQxCitiKHRoZSllKGMpbShoYXJhY3RlcilpKGF0KWUocClzKG9pbiltKHQuKTY2IGIoSWYpMzkgYihwKXMob2luKW0odClmKGlzKQoraChhdCloKHRoZSlmKGIpcyhlZ2lubmluZylmKG9mKWgodGhlKWcobGluZSwpaih0aGVyZSk2MzAKKzc2NiB5KGFyZSkzNyBiKG5vKWcoYyltKGhhcmFjdGVycylpKGluKWQodGhlKWkobGluZSwpaChhbmQpZCh0aGUpaAorKGxhc3QpaChjKW0oaGFyYWN0ZXIpaCh0KW0oeXApcyhlZCllKHcpbShhcylnKG5vdClnKGIpcyhvdW5kKWUodG8pNjMwCis4NzUgeSBGcyhkZWxldGUtY2hhcilwIEZ0KCwpMjggYih0aGVuKWkocmV0dXJuKWYgRm0oZW9mKXAKK0Z0KC4pMTUwIDEwNDIgeSBGcyhiYWNrd2FyZC1kZWxldGUtY2hhciljKFwoUnVib3V0XCkpNjMwCisxMTUyIHkgRnQoRGVsZXRlKTMyIGIodGhlKWYoYyltKGhhcmFjdGVyKWcoYilzKGVoaW5kKWUodGhlKWgoY3Vyc29yLik0MAorYihBKTMwIGIobiltKHVtZXJpYylnKGFyZ3VtZW4pbSh0KWgobWVhbnMpZih0byloKGtpbGwpZyh0aGUpNjMwCisxMjYxIHkoYyltKGhhcmFjdGVycyloKGluc3RlYWQpZShvZiloKGRlbGV0aW5nKWcodGhlbS4pMTUwCisxNDI4IHkgRnMoZm9yd2FyZC1iYWNrd2FyZC1kZWxldGUtKW8oY2hhcikyNCBiKFwoXCkpNjMwCisxNTM4IHkgRnQoRGVsZXRlKTQwIGIodGhlKWYoYyltKGhhcmFjdGVyKWgodW5kZXIpYyh0aGUpaihjdXJzb3IsKWgKKyh1bmxlc3MpZCh0aGUpaShjdXJzb3IpZShpcyloKGF0KWgodGhlKWcoZW5kKWUob2YpaSh0aGUpNjMwCisxNjQ3IHkobGluZSwpMzMgYihpbillKHdoaWMpbShoKWcoY2FzZSlpKHRoZSlmKGMpbShoYXJhY3RlciloKGIpcworKGVoaW5kKWQodGhlKWkoY3Vyc29yKWYoaXMpZyhkZWxldGVkLik0NiBiKEJ5KTMyIGIoZGVmYXVsdCwpZyh0aGlzKTYzMAorMTc1NyB5KGlzKWUobm90KWgoYilzKG91bmQpZCh0bylqKGEpZyhrKW0oZXkpLTggYiguKTE1MAorMTkyNCB5IEZzKHF1b3RlZC1pbnNlcnQpMjcgYihcKEMtcSlpKG9yKWgoQy12XCkpNjMwIDIwMzMKK3kgRnQoQWRkKWoodGhlKWkobmV4dClmKGMpbShoYXJhY3RlcilpKHQpbSh5cClzKGVkKWUodG8paCh0aGUpZihsaW5lKWgKKyh2KW0oZXJiYXRpbS4pNTMgYihUaGlzKTMzIGIoaXMpaShobyltKHcpZih0byloKGluc2VydClmKGspbShleSk2MzAKKzIxNDMgeShzZXF1ZW5jZXMpZChsaWspbShlKWcgRmwoQy1xKXAgRnQoLClmKGZvcilnKGV4YW1wbGUuKTE1MAorMjMxMCB5IEZzKHRhYi1pbnNlcnQpZShcKE0tKTgwMiAyMzA3IHkgRmsoaClwIDgyNSAyMjU0CisxNDggNCB2IDgyNSAyMzEwIGEgRmooVCktNiBiKEFCKXAgODI1IDIzMjUgViA5NjkgMjMwNworYSBGayhpKTk5OCAyMzEwIHkgRnMoXCkpNjMwIDI0MTkgeSBGdChJbnNlcnQpMzAgYihhKWgodGFiKWYoYyltCisoaGFyYWN0ZXIuKTE1MCAyNTg2IHkgRnMoc2VsZi1pbnNlcnQpZChcKGEsKWooYiwpZyhBLClmKDEsKWgoISwpZyguLi4pbworKFwpKTYzMCAyNjk2IHkgRnQoSW5zZXJ0KWcoeSltKG91cnNlbGYuKTE1MCAyODYyIHkgRnModHJhbnNwb3NlLWNoYXJzKWMKKyhcKEMtdFwpKTYzMCAyOTcyIHkgRnQoRHJhZykzMyBiKHRoZSlmKGMpbShoYXJhY3RlciloKGIpcyhlZm9yZSlmKHRoZSlnCisoY3Vyc29yKWYoZm9ydyltKGFyZCloKG8pbSh2KW0oZXIpaCh0aGUpZihjKW0oaGFyYWN0ZXIpaShhdCllKHRoZSlnCisoY3Vyc29yLCk2MzAgMzA4MSB5KG1vKW0odmluZylrKHRoZSlnKGN1cnNvcilmKGZvcncpbShhcmQpZyhhcylnKHcpbQorKGVsbC4pNTcgYihJZikzNSBiKHRoZSloKGluc2VydGlvbilnKHApcyhvaW4pbSh0KWYoaXMpZyhhdClpKHRoZSllKGVuZCkKK2cob2YpaCh0aGUpNjMwIDMxOTEgeShsaW5lLCkyNCBiKHRoZW4pZSh0aGlzKWcodHJhbnNwKXMob3NlcylmKHRoZSloCisobGFzdCloKHQpbSh3KW0obylnKGMpbShoYXJhY3RlcnMpZyhvZilmKHRoZSloKGxpbmUuKTM4CitiKE5lZ2F0aXYpbShlKTI1IGIoYXJndW1lbiltKHRzKTYzMCAzMzAxIHkoaGEpbSh2KW0oZSkzMgorYihubyllKGVcMDEzZWN0LikxNTAgMzQ2NyB5IEZzKHRyYW5zcG9zZS13b3JkcyljKFwoTS10XCkpNjMwCiszNTc3IHkgRnQoRHJhZykzMyBiKHRoZSlnKHcpbShvcmQpZihiKXMoZWZvcmUpZyhwKXMob2luKW0odClnKHBhc3QpZworKHRoZSloKHcpbShvcmQpZihhZnRlcilnKHApcyhvaW4pbSh0LClpKG1vKW0odmluZylmKHApcyhvaW4pbSh0KWYocGFzdCkKK2codGhhdCk2MzAgMzY4NyB5KHcpbShvcmQpYyhhcyloKHcpbShlbGwuKTQxIGIoSWYpMjcKK2IodGhlKWkoaW5zZXJ0aW9uKWYocClzKG9pbiltKHQpaChpcylmKGF0KWgodGhlKWcoZW5kKWUob2YpaSh0aGUpZgorKGxpbmUsKWkodGhpcyllKHRyYW5zcClzKG9zZXMpZyh0aGUpNjMwIDM3OTYgeShsYXN0KWoodCltKHcpbShvKWgodyltCisob3JkcyllKG9uKWcodGhlKWgobGluZS4pMTUwIDM5NjMgeSBGcyh1cGNhc2Utd29yZCljKFwoTS11XCkpNjMwCis0MDczIHkgRnQoVXBwKXMoZXJjYXNlKTMyIGIodGhlKWcoY3VycmVuKW0odClnKFwob3IpZyhmb2xsbyltKHdpbmdcKSlpCisodyltKG9yZC4pNDUgYihXaXRoKTMyIGIoYSlnKG5lZ2F0aXYpbShlKWooYXJndW1lbiltKHQsKWUodXBwKXMoZXItKTYzMAorNDE4MiB5KGNhc2UpZSh0aGUpZyhwcmV2aW91cylmKHcpbShvcmQsKWcoYnV0KWcoZG8pZyhub3QpaChtbyltKHYpbShlKWgKKyh0aGUpZShjdXJzb3IuKTE1MCA0MzQ5IHkgRnMoZG93bmNhc2Utd29yZClkKFwoTS1sXCkpNjMwCis0NDU4IHkgRnQoTG8pbSh3KW0oZXJjYXNlKWModGhlKWYoY3VycmVuKW0odClmKFwob3IpaChmb2xsbyltKHdpbmdcKSlpCisodyltKG9yZC4pMzcgYihXaXRoKTIyIGIoYSlnKG5lZ2F0aXYpbShlKWkoYXJndW1lbiltKHQsKWcobG8pbSh3KW0KKyhlcmNhc2UpNjMwIDQ1NjggeSh0aGUpMzEgYihwcmV2aW91cyllKHcpbShvcmQsKWkoYnV0KWUoZG8paShub3QpZihtbyltCisodiltKGUpaSh0aGUpZihjdXJzb3IuKTE1MCA0NzM1IHkgRnMoY2FwaXRhbGl6ZS13b3JkKTI2CitiKFwoTS1jXCkpNjMwIDQ4NDQgeSBGdChDYXBpdGFsaXplKWQodGhlKWYoY3VycmVuKW0odClmKFwob3IpZyhmb2xsbyltCisod2luZ1wpKWkodyltKG9yZC4pMzggYihXaXRoKTIxIGIoYSloKG5lZ2F0aXYpbShlKWgoYXJndW1lbiltKHQsKWgKKyhjYXBpdGFsaXplKTYzMCA0OTU0IHkodGhlKTMxIGIocHJldmlvdXMpZSh3KW0ob3JkLClpKGJ1dCllKGRvKWkobm90KWYKKyhtbyltKHYpbShlKWkodGhlKWYoY3Vyc29yLikxNTAgNTEyMSB5IEZzKG92ZXJ3cml0ZS1tb2RlKTI2CitiKFwoXCkpNjMwIDUyMzAgeSBGdChUKS04IGIob2dnbGUpMzUgYihvKW0odiltKGVyd3JpdGUpZyhtbylzKGRlLik0OAorYihXaXRoKTMzIGIoYW4pZyhleHBsaWNpdCloKHApcyhvc2l0aXYpbShlKWcobiltKHVtZXJpYylmKGFyZ3VtZW4pbSh0LCkKK2goc3dpdGMpbShoZXMpNjMwIDUzNDAgeSh0bykyMiBiKG8pbSh2KW0oZXJ3cml0ZSlpKG1vKXMoZGUuKTM3CitiKFdpdGgpMjIgYihhbilnKGV4cGxpY2l0KWgobm9uLXApcyhvc2l0aXYpbShlKWYobiltKHVtZXJpYylnKGFyZ3VtZW4pbQorKHQsKWkoc3dpdGMpbShoZXMpZSh0bylwIGVvcCBlbmQKKyUlUGFnZTogMTYgMjAKK1RlWERpY3QgYmVnaW4gMTYgMTkgYm9wIDE1MCAtMTE2IGEgRnQoMTYpMjYwMCBiKEdOVSkzMQorYihSZWFkbGluZSlnKExpYnJhcnkpNjMwIDI5OSB5KGluc2VydClmKG1vKXMoZGUuKTQxIGIoVGhpcykzMAorYihjb21tYW5kKWgoYVwwMTNlY3RzKWgob25seSllIEZzKGVtYWNzKWYgRnQobW8pcyhkZTspaQorRnModmkpZiBGdChtbylzKGRlKWcoZG8pcyhlcylnKG8pbSh2KW0oZXJ3cml0ZSk2MzAgNDA4Cit5KGRpXDAxM2VyZW4pbSh0bHkpLTggYiguKTQyIGIoRWFjKW0oaCkzMSBiKGNhbGwpaCh0bylmCitGcyhyZWFkbGluZVwoXCkpYyBGdChzdGFydHMpayhpbilmKGluc2VydClnKG1vKXMoZGUuKTYzMAorNTM5IHkoSW4pZShvKW0odiltKGVyd3JpdGUpaihtbylzKGRlLCllKGMpbShoYXJhY3RlcnMpaShiKXMob3VuZCljKHRvKWoKK0ZzKHNlbGYtaW5zZXJ0KWMgRnQocmVwbGFjZSlrKHRoZSlnKHRleHQpZyhhdClnKHApcyhvaW4pbSh0KTYzMAorNjQ4IHkocmF0aGVyKTQxIGIodGhhbiloKHB1c2hpbmcpZSh0aGUpaSh0ZXh0KWcodG8pZyh0aGUpZyhyaWdoKW0odC4pNzUKK2IoQ2hhcmFjdGVycyk0MiBiKGIpcyhvdW5kKWQodG8paiBGcyhiYWNrd2FyZC0pNjMwIDc1OAoreShkZWxldGUtY2hhcikyNyBiIEZ0KHJlcGxhY2UpMzIgYih0aGUpZShjKW0oaGFyYWN0ZXIpaShiKXMoZWZvcmUpZShwKXMKKyhvaW4pbSh0KWgod2l0aClmKGEpZyhzcGFjZS4pNjMwIDg4OCB5KEJ5KWgoZGVmYXVsdCwpZih0aGlzKWgoY29tbWFuZClmCisoaXMpZyh1biltKGIpcyhvdW5kLikxNTAgMTA5OSB5IEZoKDEuNC40KTYzIGIoS2lsbGluZyk0MgorYihBbmQpZShZKS0xMCBiKGFua2luZykxNTAgMTMzOSB5IEZzKGtpbGwtbGluZSkyOCBiKFwoQy1rXCkpNjMwCisxNDQ5IHkgRnQoS2lsbClqKHRoZSlmKHRleHQpaShmcm9tKWUocClzKG9pbiltKHQpZyh0byloKHRoZSlnKGVuZCllKG9mKQoraSh0aGUpZihsaW5lLikxNTAgMTU5OSB5IEZzKGJhY2t3YXJkLWtpbGwtbGluZSkyNSBiKFwoQy14KTMwCitiKFJ1Ym91dFwpKTYzMCAxNzA5IHkgRnQoS2lsbCloKGJhYyltKGt3KW0oYXJkKWcodG8pZyh0aGUpZihiKXMKKyhlZ2lubmluZylnKG9mKWcodGhlKWgobGluZS4pMTUwIDE4NjAgeSBGcyh1bml4LWxpbmUtZGlzY2FyZCkyNgorYihcKEMtdVwpKTYzMCAxOTY5IHkgRnQoS2lsbCkzMSBiKGJhYyltKGt3KW0oYXJkKWcoZnJvbSllKHRoZSlpKGN1cnNvcikKK2YodG8paCh0aGUpZihiKXMoZWdpbm5pbmcpZyhvZiloKHRoZSlmKGN1cnJlbiltKHQpZyhsaW5lLikxNTAKKzIxMjAgeSBGcyhraWxsLXdob2xlLWxpbmUpYyhcKFwpKTYzMCAyMjMwIHkgRnQoS2lsbCkzNworYihhbGwpZyhjKW0oaGFyYWN0ZXJzKWgob24pZih0aGUpZihjdXJyZW4pbSh0KWgobGluZSwpaChubylmKG1hdHRlcilnCisod2hlcmUpZihwKXMob2luKW0odCloKGlzLik1OSBiKEJ5KTM2IGIoZGVmYXVsdCwpNjMwCisyMzM5IHkodGhpcykzMCBiKGlzKWgodW4pbShiKXMob3VuZC4pMTUwIDI0OTAgeSBGcyhraWxsLXdvcmQpZChcKE0tZFwpKQorNjMwIDI2MDAgeSBGdChLaWxsKWkoZnJvbSlmKHApcyhvaW4pbSh0KWcodG8paCh0aGUpZyhlbmQpZShvZilpKHRoZSlmCisoY3VycmVuKW0odCloKHcpbShvcmQsKWYob3IpZyhpZiloKGIpcyhldCltKHcpbShlZW4pZyh3KW0ob3JkcywpZih0byloCisodGhlKWcoZW5kKTYzMCAyNzA5IHkob2YpaCh0aGUpZihuZXh0KWgodyltKG9yZC4pNDAgYihXKS04CitiKG9yZCkzMSBiKGIpcyhvdW5kYXJpZXMpZShhcmUpaCh0aGUpaChzYW1lKWcoYXMpZiBGcyhmb3J3YXJkLXdvcmQpcAorRnQoLikxNTAgMjg2MCB5IEZzKGJhY2t3YXJkLWtpbGwtd29yZCkyNSBiKFwoTS0pMTE4MworMjg1NyB5IEZrKGgpcCAxMjA3IDI4MDQgMTQ2IDQgdiAxMjA3IDI4NjAgYSBGaihERUwpcAorMTIwNyAyODc1IFYgMTM0OCAyODU3IGEgRmsoaSkxMzc4IDI4NjAgeSBGcyhcKSk2MzAgMjk3MAoreSBGdChLaWxsKWsodGhlKWcodyltKG9yZClnKGIpcyhlaGluZCllKHApcyhvaW4pbSh0Lik0MAorYihXKS04IGIob3JkKTI5IGIoYilzKG91bmRhcmllcylmKGFyZSloKHRoZSlnKHNhbWUpZyhhcylnCitGcyhiYWNrd2FyZC13b3JkKXAgRnQoLikxNTAgMzEyMCB5IEZzKHVuaXgtd29yZC1ydWJvdXQpZChcKEMtd1wpKTYzMAorMzIzMCB5IEZ0KEtpbGwpMzIgYih0aGUpZyh3KW0ob3JkKWYoYilzKGVoaW5kKWYocClzKG9pbiltKHQsKWkodXNpbmcpZgorKHdoaXRlKWgoc3BhY2UpZyhhcylnKGEpZyh3KW0ob3JkKWYoYilzKG91bmRhcnkpLTggYiguKTQzCitiKFRoZSkzMSBiKGtpbGxlZCk2MzAgMzMzOSB5KHRleHQpZyhpcylnKHNhKW0odiltKGVkKWcob24pZyh0aGUpZgorKGtpbGwtcmluZy4pMTUwIDM0OTAgeSBGcyh1bml4LWZpbGVuYW1lLXJ1Ym91dCkyNSBiKFwoXCkpNjMwCiszNjAwIHkgRnQoS2lsbCkzNyBiKHRoZSlmKHcpbShvcmQpZyhiKXMoZWhpbmQpZihwKXMob2luKW0odCwpaih1c2luZyllCisod2hpdGUpZyhzcGFjZSloKGFuZClmKHRoZSlnKHNsYXNoKWcoYyltKGhhcmFjdGVyKWkoYXMpZih0aGUpNjMwCiszNzA5IHkodyltKG9yZCkzMCBiKGIpcyhvdW5kYXJpZXMuKTM5IGIoVGhlKTMwIGIoa2lsbGVkKWgodGV4dClnKGlzKWcKKyhzYSltKHYpbShlZClnKG9uKWcodGhlKWYoa2lsbC1yaW5nLikxNTAgMzg2MCB5IEZzCisoZGVsZXRlLWhvcml6b250YWwtc3BhY2UpMjQgYihcKFwpKTYzMCAzOTcwIHkgRnQoRGVsZXRlKTMzCitiKGFsbCllKHNwYWNlcylnKGFuZCllKHRhYnMpaShhcm91bmQpZShwKXMob2luKW0odC4pNDEKK2IoQnkpMzEgYihkZWZhdWx0LClmKHRoaXMpaChpcylmKHVuKW0oYilzKG91bmQuKTE1MCA0MTIxCit5IEZzKGtpbGwtcmVnaW9uKWQoXChcKSk2MzAgNDIzMCB5IEZ0KEtpbGwpayh0aGUpZih0ZXh0KWkoaW4pZSh0aGUpZworKGN1cnJlbiltKHQpaChyZWdpb24uKTQxIGIoQnkpMzEgYihkZWZhdWx0LClmKHRoaXMpaChjb21tYW5kKWYoaXMpZyh1bikKK20oYilzKG91bmQuKTE1MCA0MzgxIHkgRnMoY29weS1yZWdpb24tYXMta2lsbCkyNSBiKFwoXCkpNjMwCis0NDkwIHkgRnQoQ29wKW0oeSkzNCBiKHRoZSlnKHRleHQpaChpbilmKHRoZSlnKHJlZ2lvbilnKHRvKWgodGhlKWYKKyhraWxsKWgoYnVcMDEzZXIsKWYoc28pZyhpdCloKGNhbilmKGIpcyhlKWYoeSltKGFuayltKGVkKWkocmlnaCltKHQpZgorKGEpbSh3KW0oYSltKHkpLTggYiguKTYzMCA0NjAwIHkoQnkpMzEgYihkZWZhdWx0LClmKHRoaXMpaChjb21tYW5kKWYKKyhpcylnKHVuKW0oYilzKG91bmQuKTE1MCA0NzUxIHkgRnMoY29weS1iYWNrd2FyZC13b3JkKTI1CitiKFwoXCkpNjMwIDQ4NjAgeSBGdChDb3ApbSh5KTM4IGIodGhlKWgodyltKG9yZClmKGIpcyhlZm9yZSlnKHApcyhvaW4pbQorKHQpZyh0bylpKHRoZSllKGtpbGwpaChidVwwMTNlci4pNjQgYihUaGUpMzggYih3KW0ob3JkKWcoYilzKG91bmRhcmllcykKK2YoYXJlKWkodGhlKTYzMCA0OTcwIHkoc2FtZSkzMSBiKGFzKWYgRnMoYmFja3dhcmQtd29yZClwCitGdCguKTM4IGIoQnkpMzAgYihkZWZhdWx0LCloKHRoaXMpZihjb21tYW5kKWcoaXMpaCh1biltKGIpcyhvdW5kLikxNTAKKzUxMjEgeSBGcyhjb3B5LWZvcndhcmQtd29yZCkyNiBiKFwoXCkpNjMwIDUyMzAgeSBGdChDb3ApbSh5KTMxCitiKHRoZSlnKHcpbShvcmQpZyhmb2xsbyltKHdpbmcpaChwKXMob2luKW0odClmKHRvKWgodGhlKWYoa2lsbCloCisoYnVcMDEzZXIuKTQyIGIoVGhlKTMwIGIodyltKG9yZCloKGIpcyhvdW5kYXJpZXMpZShhcmUpaih0aGUpNjMwCis1MzQwIHkoc2FtZSlmKGFzKWYgRnMoZm9yd2FyZC13b3JkKXAgRnQoLikzOCBiKEJ5KTMwCitiKGRlZmF1bHQsKWgodGhpcylnKGNvbW1hbmQpZihpcylnKHVuKW0oYilzKG91bmQuKXAgZW9wCitlbmQKKyUlUGFnZTogMTcgMjEKK1RlWERpY3QgYmVnaW4gMTcgMjAgYm9wIDE1MCAtMTE2IGEgRnQoQ2hhcHRlcikzMCBiKDE6KTQxCitiKENvbW1hbmQpMjkgYihMaW5lKWkoRWRpdGluZykyMTA3IGIoMTcpMTUwIDI5OSB5IEZzKHlhbmspMjkKK2IoXChDLXlcKSk2MzAgNDA4IHkgRnQoWSktOCBiKGFuaykzMSBiKHRoZSlmKHRvcCloKG9mKWcodGhlKWYoa2lsbCloCisocmluZylmKGluKW0odG8paSh0aGUpZShidVwwMTNlcilnKGF0KWgocClzKG9pbiltKHQuKTE1MAorNTUyIHkgRnMoeWFuay1wb3ApZChcKE0teVwpKTYzMCA2NjEgeSBGdChSb3RhdGUpMzYgYih0aGUpZihraWxsLXJpbmcsKWkKKyhhbmQpZCh5KW0oYW5rKWgodGhlKWYobmV3KWcodG9wLik1NCBiKFkpLTggYihvdSkzNSBiKGNhbilnKG9ubHkpZihkbyloCisodGhpcylmKGlmKWgodGhlKWcocHJpb3IpNjMwIDc3MSB5KGNvbW1hbmQpMzAgYihpcyloCitGcyh5YW5rKWUgRnQob3IpaCBGcyh5YW5rLXBvcClwIEZ0KC4pMTUwIDk3MSB5IEZoKDEuNC41KTYzCitiKFNwKXMoZWNpZnlpbmcpNDIgYihOdW1lcmljKWYoQXJndW1lbiltKHRzKTE1MCAxMjA3Cit5IEZzKGRpZ2l0LWFyZ3VtZW50KTI2IGIoXCgpcCBGbChNLTApcCBGcygsKWogRmwoTS0xKXAKK0ZzKCwpaCguLi4pZiBGbChNLS0pcCBGcyhcKSk2MzAgMTMxNyB5IEZ0KEFkZClkKHRoaXMpaChkaWdpdClnKHRvKWgKKyh0aGUpZihhcmd1bWVuKW0odClnKGFscmVhZHkpaChhY2N1bSltKHVsYXRpbmcsKWgob3IpZShzdGFydCloKGEpZihuZXcpCitmKGFyZ3VtZW4pbSh0Lik2MzAgMTQyNyB5IEZsKE0tLSlqIEZ0KHN0YXJ0cylpKGEpZyhuZWdhdGl2KW0oZSlpCisoYXJndW1lbiltKHQuKTE1MCAxNTcwIHkgRnModW5pdmVyc2FsLWFyZ3VtZW50KTI1IGIoXChcKSk2MzAKKzE2ODAgeSBGdChUaGlzKWcoaXMpZyhhbm90aGVyKWgodyltKGEpbSh5KWcodG8paChzcClzKGVjaWZ5KWUoYW4pZworKGFyZ3VtZW4pbSh0Lik0MCBiKElmKTI1IGIodGhpcylnKGNvbW1hbmQpaChpcylmKGZvbGxvKW0odyltKGVkKWkoYiltCisoeSlmKG9uZSk2MzAgMTc4OSB5KG9yKWsobW9yZSlmKGRpZ2l0cywpaShvcHRpb25hbGx5KWcod2l0aCllKGEpaAorKGxlYWRpbmcpaChtaW4pbSh1cyllKHNpZ24sKWgodGhvc2UpZyhkaWdpdHMpZyhkZVwwMTRuZSlmKHRoZSloKGFyLSk2MzAKKzE4OTkgeShndW1lbiltKHQuKTQxIGIoSWYpMjggYih0aGUpaShjb21tYW5kKWYoaXMpZyhmb2xsbyltKHcpbShlZCloKGIpCittKHkpZihkaWdpdHMsKWkoZXhlY3V0aW5nKWYgRnModW5pdmVyc2FsLWFyZ3VtZW50KTYzMAorMjAwOCB5IEZ0KGFnYWluKWooZW5kcyllKHRoZSloKG4pbSh1bWVyaWMpZihhcmd1bWVuKW0odCwpaShidXQpZShpcyloCisob3RoZXJ3aXNlKWcoaWdub3JlZC4pNDUgYihBcykzMiBiKGEpZyhzcClzKGVjaWFsKWgoY2FzZSwpNjMwCisyMTE4IHkoaWYpZyh0aGlzKWcoY29tbWFuZClmKGlzKWgoaW1tZWRpYXRlbHkpaChmb2xsbyltKHcpbShlZCloKGIpbSh5KQorZChhKWgoYyltKGhhcmFjdGVyKWkodGhhdCllKGlzKWcobmVpdGhlcilnKGEpZyhkaWdpdCk2MzAKKzIyMjggeShvcikyOCBiKG1pbiltKHVzKWYoc2lnbiwpaSh0aGUpZihhcmd1bWVuKW0odClnKGNvdW4pbSh0KWgoZm9yKWUKKyh0aGUpaShuZXh0KWYoY29tbWFuZClmKGlzKWgobSltKHVsdGlwbGllZCloKGIpbSh5KWUoZm91ci4pNjMwCisyMzM3IHkoVGhlKTM3IGIoYXJndW1lbiltKHQpaChjb3VuKW0odClmKGlzKWgoaW5pdGlhbGx5KWgob25lLClnKHNvKWYKKyhleGVjdXRpbmcpZyh0aGlzKWYoZnVuY3Rpb24pZyh0aGUpaChcMDE0cnN0KWUodGltZSk2MzAKKzI0NDcgeShtYWspbShlcylkKHRoZSllKGFyZ3VtZW4pbSh0KWkoY291biltKHQpZihmb3VyLClmKGEpaShzZWNvbmQpZQorKHRpbWUpaShtYWspbShlcylmKHRoZSlnKGFyZ3VtZW4pbSh0KWcoY291biltKHQpaChzaXgtKTYzMAorMjU1NiB5KHRlZW4sKWUoYW5kKWYoc28paChvbi4pNDAgYihCeSkzMSBiKGRlZmF1bHQsKWcodGhpcylmKGlzKWcobm90KWgKKyhiKXMob3VuZClkKHRvKWooYSlnKGspbShleSktOCBiKC4pMTUwIDI3NTcgeSBGaCgxLjQuNik2MworYihMZXR0aW5nKTQwIGIoUmVhZGxpbmUpaChUKW0oeXApcyhlKWcoRiktMTAgYihvcik0MgorYihZKS0xMCBiKG91KTE1MCAyOTkzIHkgRnMoY29tcGxldGUpMjggYihcKCk2MTAgMjk5MAoreSBGayhoKXAgNjM0IDI5MzcgMTQ4IDQgdiA2MzQgMjk5MyBhIEZqKFQpLTYgYihBQilwIDYzNAorMzAwOCBWIDc3OCAyOTkwIGEgRmsoaSk4MDggMjk5MyB5IEZzKFwpKTYzMCAzMTAyIHkgRnQoQSltKHR0ZW1wdCkyNAorYih0bylmKHApcyhlcmZvcm0pZShjb21wbGV0aW9uKWoob24pZih0aGUpZyh0ZXh0KWcoYilzKGVmb3JlKWYocClzKG9pbikKK20odC4pMzkgYihUaGUpMjIgYihhY3R1YWwpaShjb21wbGV0aW9uKTYzMCAzMjEyIHkocClzKGVyZm9ybWVkKTI5CitiKGlzKWgoYXBwbGljYXRpb24tc3ApcyhlY2lcMDE0Yy4pNDIgYihUaGUpMzAgYihkZWZhdWx0KWgoaXMpZgorKFwwMTRsZW5hbWUpaChjb21wbGV0aW9uLikxNTAgMzM1NSB5IEZzKHBvc3NpYmxlLWNvbXBsZXRpb25zKTI1CitiKFwoTS0/XCkpNjMwIDM0NjUgeSBGdChMaXN0KTMxIGIodGhlKWYocClzKG9zc2libGUpZyhjb21wbGV0aW9ucylpKG9mKQorZSh0aGUpaCh0ZXh0KWcoYilzKGVmb3JlKWYocClzKG9pbiltKHQuKTE1MCAzNjA4IHkgRnMKKyhpbnNlcnQtY29tcGxldGlvbnMpMjUgYihcKE0tKlwpKTYzMCAzNzE4IHkgRnQoSW5zZXJ0KTMwCitiKGFsbCloKGNvbXBsZXRpb25zKWgob2YpZih0aGUpZyh0ZXh0KWcoYilzKGVmb3JlKWYocClzKG9pbiltKHQpaCh0aGF0KQorZyh3KW0ob3VsZClmKGhhKW0odiltKGUpaShiKXMoZWVuKWUoZ2VuZXJhdGVkKTYzMCAzODI3Cit5KGIpbSh5KWcgRnMocG9zc2libGUtY29tcGxldGlvbnMpcCBGdCguKTE1MCAzOTcxIHkgRnMobWVudS1jb21wbGV0ZSlkCisoXChcKSk2MzAgNDA4MCB5IEZ0KFNpbWlsYXIpZCh0bylnIEZzKGNvbXBsZXRlKXAgRnQoLClmKGJ1dCloKHJlcGxhY2VzKQorZyh0aGUpZyh3KW0ob3JkKWcodG8pZyhiKXMoZSlmKGNvbXBsZXRlZClpKHdpdGgpZShhKWkoc2luZ2xlKWYobWF0YyltCisoaCk2MzAgNDE5MCB5KGZyb20pMzcgYih0aGUpaChsaXN0KWgob2YpZihwKXMob3NzaWJsZSlmKGNvbXBsZXRpb25zLik2NAorYihSZXApcyhlYXRlZCkzOSBiKGV4ZWN1dGlvbilnKG9mKWYgRnMobWVudS1jb21wbGV0ZSk2MzAKKzQzMDAgeSBGdChzdGVwcylpKHRocm91Z2gpZyh0aGUpZyhsaXN0KWgob2YpZihwKXMob3NzaWJsZSlnCisoY29tcGxldGlvbnMsKWsoaW5zZXJ0aW5nKWMoZWFjKW0oaClpKG1hdGMpbShoKWYoaW4pZih0dXJuLik2MzAKKzQ0MDkgeShBKW0odCllKHRoZSlmKGVuZClmKG9mKWgodGhlKWcobGlzdClnKG9mKWcoY29tcGxldGlvbnMsKWkodGhlKWUKKyhiKXMoZWxsKWcoaXMpZyhydW5nKWYoXChzdWIpNSBiKGplY3QpMzYgYih0bylpKHRoZSlmKHNldHRpbmcpNjMwCis0NTE5IHkob2YpZiBGcyhiZWxsLXN0eWxlKXAgRnQoXCkpZShhbmQpaCh0aGUpaChvcmlnaW5hbClpKHRleHQpZihpcylmCisocmVzdG9yZWQuKTU3IGIoQW4pMzYgYihhcmd1bWVuKW0odCloKG9mKWYgRmkobilmIEZ0KG1vKW0odiltKGVzKWkKK0ZpKG4pNjMwIDQ2MjggeSBGdChwKXMob3NpdGlvbnMpZShmb3J3KW0oYXJkKWYoaW4pZyh0aGUpaChsaXN0KWgob2YpZQorKG1hdGMpbShoZXM7KTM5IGIoYSljKG5lZ2F0aXYpbShlKWkoYXJndW1lbiltKHQpZShtYSltKHkpZyhiKXMoZSlmCisodXNlZClnKHRvKTYzMCA0NzM4IHkobW8pbSh2KW0oZSk0MCBiKGJhYyltKGt3KW0oYXJkKWUodGhyb3VnaClnKHRoZSlnCisobGlzdC4pNjUgYihUaGlzKTM4IGIoY29tbWFuZClnKGlzKWcoaW4pbSh0ZW5kZWQpZyh0byloKGIpcyhlKWYoYilzCisob3VuZCllKHRvKTYzMCA0ODQ1IHkgRmsoaClwIDY1NCA0NzkyIFYgNjU0IDQ4NDggYSBGaihUKS02CitiKEFCKXAgNjU0IDQ4NjMgViA3OTggNDg0NSBhIEZrKGkpODI4IDQ4NDggeSBGdCgsKTMwCitiKGJ1dClnKGlzKWcodW4pbShiKXMob3VuZCllKGIpbSh5KWkoZGVmYXVsdC4pMTUwIDQ5OTEKK3kgRnMoZGVsZXRlLWNoYXItb3ItbGlzdCkyNSBiKFwoXCkpNjMwIDUxMDEgeSBGdChEZWxldGVzKWsodGhlKWUoYyltCisoaGFyYWN0ZXIpaCh1bmRlcillKHRoZSloKGN1cnNvcilmKGlmKWgobm90KWcoYXQpZyh0aGUpZyhiKXMoZWdpbm5pbmcpZworKG9yKWYoZW5kKWgob2YpZyh0aGUpZyhsaW5lKTYzMCA1MjEwIHkoXChsaWspbShlKWsgRnMoZGVsZXRlLWNoYXIpcAorRnQoXCkuKTM3IGIoSWYpMjkgYihhdCloKHRoZSlmKGVuZClmKG9mKWkodGhlKWYobGluZSwpaChiKXMoZWhhKW0odiltCisoZXMpZyhpZGVuKW0odGljYWxseSloKHRvKWUgRnMocG9zc2libGUtKTYzMCA1MzIwIHkoY29tcGxldGlvbnMpcAorRnQoLikzOCBiKFRoaXMpMjkgYihjb21tYW5kKWgoaXMpaCh1biltKGIpcyhvdW5kKWQoYiltKHkpaShkZWZhdWx0LilwCitlb3AgZW5kCislJVBhZ2U6IDE4IDIyCitUZVhEaWN0IGJlZ2luIDE4IDIxIGJvcCAxNTAgLTExNiBhIEZ0KDE4KTI2MDAgYihHTlUpMzEKK2IoUmVhZGxpbmUpZyhMaWJyYXJ5KTE1MCAyOTkgeSBGaCgxLjQuNyk2MyBiKEtleWIpcyhvYXJkKTQxCitiKE1hY3JvcykxNTAgNTQ1IHkgRnMoc3RhcnQta2JkLW1hY3JvKTI2IGIoXChDLXgpaihcKFwpKTYzMAorNjU1IHkgRnQoQmVnaW4paShzYSltKHZpbmcpaCh0aGUpZShjKW0oaGFyYWN0ZXJzKWkodCltKHlwKXMoZWQpZShpbiltCisodG8paCh0aGUpZyhjdXJyZW4pbSh0KWYoayltKGV5YilzKG9hcmQpZyhtYWNyby4pMTUwCis4MTggeSBGcyhlbmQta2JkLW1hY3JvKWQoXChDLXgpaShcKVwpKTYzMCA5MjcgeSBGdChTdG9wKWUoc2EpbSh2aW5nKWgKKyh0aGUpZyhjKW0oaGFyYWN0ZXJzKWcodCltKHlwKXMoZWQpZihpbiltKHRvKWkodGhlKWUoY3VycmVuKW0odClnKGspbQorKGV5YilzKG9hcmQpZyhtYWNybyloKGFuZClmKHNhKW0odiltKGUpaSh0aGUpNjMwIDEwMzcKK3koZGVcMDE0bml0aW9uLikxNTAgMTIwMCB5IEZzKGNhbGwtbGFzdC1rYmQtbWFjcm8pYyhcKEMteClrKGVcKSk2MzAKKzEzMTAgeSBGdChSZS1leGVjdXRlKTM3IGIodGhlKWUobGFzdCloKGspbShleWIpcyhvYXJkKWYobWFjcm8paAorKGRlXDAxNG5lZCwpZihiKW0oeSloKG1ha2luZylmKHRoZSlnKGMpbShoYXJhY3RlcnMpaShpbillKHRoZSk2MzAKKzE0MTkgeShtYWNybyljKGFwcClzKGVhcilmKGFzKWcoaWYpaCh0KW0oeXApcyhlZClmKGF0KWgodGhlKWYoayltKGV5YilzCisob2FyZC4pMTUwIDE2NTEgeSBGaCgxLjQuOCk2MyBiKFNvbWUpNDEgYihNaXNjZWxsYW5lb3VzKWkoQ29tbWFuZHMpMTUwCisxODk4IHkgRnMocmUtcmVhZC1pbml0LWZpbGUpMjYgYihcKEMteClqKEMtclwpKTYzMCAyMDA3Cit5IEZ0KFJlYWQpMjIgYihpbilnKHRoZSlnKGNvbiltKHRlbiltKHRzKWgob2YpZih0aGUpZworRmkoaW5wdXRyYykyNyBiIEZ0KFwwMTRsZSwpZChhbmQpZChpbmNvcnApcyhvcmF0ZSloKGFuKW0oeSloKGJpbmRpbmdzKWQKKyhvcilpKHYpLTUgYihhcmlhYmxlKTYzMCAyMTE3IHkoYXNzaWdubWVuKW0odHMpMzEgYihmb3VuZCllKHRoZXJlLikxNTAKKzIyODAgeSBGcyhhYm9ydClnKFwoQy1nXCkpNjMwIDIzOTAgeSBGdChBYilzKG9ydClkKHRoZSloKGN1cnJlbiltKHQpZgorKGVkaXRpbmcpaChjb21tYW5kKWYoYW5kKWcocmluZyloKHRoZSlmKHRlcm1pbmFsJ3MpaChiKXMoZWxsKWcoXChzdWIpNQorYihqZWN0KTI2IGIodG8paSh0aGUpNjMwIDI0OTkgeShzZXR0aW5nKWoob2YpZyBGcyhiZWxsLXN0eWxlKXAKK0Z0KFwpLikxNTAgMjY2MyB5IEZzKGRvLXVwcGVyY2FzZS12ZXJzaW9uKTI1IGIoXChNLWEsKWsoTS1iLClnKE0tKXAKK0ZsKHgpcCBGcygsKWcoLi4uKW8oXCkpNjMwIDI3NzIgeSBGdChJZillKHRoZSloKG1ldGFcMDE0ZWQpZyhjKW0KKyhoYXJhY3RlciloIEZpKHgpMzQgYiBGdChpcykyOCBiKGxvKW0odyltKGVyY2FzZSwpaShydW4pZCh0aGUpZworKGNvbW1hbmQpaCh0aGF0KWcoaXMpZyhiKXMob3VuZClkKHRvKWsodGhlKTYzMCAyODgyIHkoY29ycmVzcClzKG9uZGluZykKK2codXBwKXMoZXJjYXNlKWgoYyltKGhhcmFjdGVyLikxNTAgMzA0NSB5IEZzKHByZWZpeC1tZXRhKWQoXCgpNzUzCiszMDQyIHkgRmsoaClwIDc3NyAyOTg5IDEzOSA0IHYgNzc3IDMwNDUgYSBGaihFU0MpcCA3NzcKKzMwNjAgViA5MTEgMzA0MiBhIEZrKGkpOTQxIDMwNDUgeSBGcyhcKSk2MzAgMzE1NSB5IEZ0KE1ldGFmeSkzOQorYih0aGUpZShuZXh0KWgoYyltKGhhcmFjdGVyKWgodCltKHlwKXMoZWQuKTYyIGIoVGhpcykzNworYihpcylnKGZvciloKGspbShleWIpcyhvYXJkcylmKHdpdGhvdXQpZyhhKWgobWV0YSlnKGspbShleSktOAorYiguKTYzMCAzMjY0IHkoVCltKHlwaW5nKTMwIGIoYCk5NjggMzI2MSB5IEZrKGgpcCA5OTMKKzMyMDggViA5OTMgMzI2NCBhIEZqKEVTQylwIDk5MyAzMjgwIFYgMTEyNyAzMjYxIGEgRmsoaSkxMTg3CiszMjY0IHkgRnMoZilwIEZ0KCcpZyhpcylnKGVxdWl2KS01IGIoYWxlbiltKHQpMzIgYih0bylmKHQpbSh5cGluZylnCitGbChNLWYpcCBGdCguKTE1MCAzNDI4IHkgRnModW5kbyllKFwoQy1fKWcob3IpaChDLXgpZyhDLXVcKSk2MzAKKzM1MzcgeSBGdChJbmNyZW1lbiltKHRhbCloKHVuZG8sKWYoc2VwYXJhdGVseSloKHJlbWVtKW0oYilzKGVyZWQpZihmb3IpCitnKGVhYyltKGgpaShsaW5lLikxNTAgMzcwMCB5IEZzKHJldmVydC1saW5lKTI3IGIoXChNLXJcKSk2MzAKKzM4MTAgeSBGdChVbmRvKTMzIGIoYWxsKWgoYyltKGhhbmdlcylnKG1hZGUpZih0byloKHRoaXMpZihsaW5lLik0OQorYihUaGlzKTMyIGIoaXMpaChsaWspbShlKWkoZXhlY3V0aW5nKWYodGhlKWYgRnModW5kbylmCitGdChjb21tYW5kKTYzMCAzOTIwIHkoZW5vdWdoKWUodGltZXMpaCh0bylnKGdldCloKGJhYyltKGspZih0bylnKHRoZSlmCisoYilzKGVnaW5uaW5nLikxNTAgNDA4MyB5IEZzKHRpbGRlLWV4cGFuZClkKFwoTS1+XCkpNjMwCis0MTkyIHkgRnQoUCltKGVyZm9ybSlqKHRpbGRlKWgoZXhwYW5zaW9uKWcob24pZih0aGUpZyhjdXJyZW4pbSh0KWgodyltCisob3JkLikxNTAgNDM1NiB5IEZzKHNldC1tYXJrKWQoXChDLUBcKSk2MzAgNDQ2NSB5IEZ0KFNldCkzMworYih0aGUpZyhtYXJrKWYodG8paSh0aGUpZihwKXMob2luKW0odC4pNDggYihJZikzMiBiKGEpaChuKW0odW1lcmljKWcKKyhhcmd1bWVuKW0odClnKGlzKWcoc3VwcGxpZWQsKWYodGhlKWgobWFyaylnKGlzKWYoc2V0KTYzMAorNDU3NSB5KHRvKWYodGhhdClnKHApcyhvc2l0aW9uLikxNTAgNDczOCB5IEZzKGV4Y2hhbmdlLXBvaW50LWFuZC1tYXJrKQorMjQgYihcKEMteCkyOSBiKEMteFwpKTYzMCA0ODQ4IHkgRnQoU3cpbShhcClpKHRoZSlnKHApcyhvaW4pbSh0KWcod2l0aCkKK2codGhlKWcobWFyay4pNDMgYihUaGUpMzEgYihjdXJyZW4pbSh0KWcoY3Vyc29yKWYocClzKG9zaXRpb24paShpcylmCisoc2V0KWgodG8pZih0aGUpaChzYSltKHYpbShlZCk2MzAgNDk1NyB5KHApcyhvc2l0aW9uLClmKGFuZCllKHRoZSlpCisob2xkKWcoY3Vyc29yKWUocClzKG9zaXRpb24paShpcylmKHNhKW0odiltKGVkKWkoYXMpZSh0aGUpaChtYXJrLikxNTAKKzUxMjEgeSBGcyhjaGFyYWN0ZXItc2VhcmNoKTI2IGIoXChDLV1cKSk2MzAgNTIzMCB5IEZ0KEEpZihjKW0oaGFyYWN0ZXIpCitoKGlzKWYocmVhZClnKGFuZClmKHApcyhvaW4pbSh0KWgoaXMpZyhtbyltKHYpbShlZCloKHRvKWcodGhlKWYobmV4dClnCisobylzKGNjdXJyZW5jZSlnKG9mKWcodGhhdClnKGMpbShoYXJhY3Rlci4pNjMwIDUzNDAgeShBKTMwCitiKG5lZ2F0aXYpbShlKWooY291biltKHQpZShzZWFyYyltKGhlcylnKGZvcilmKHByZXZpb3VzKWcobylzCisoY2N1cnJlbmNlcy4pcCBlb3AgZW5kCislJVBhZ2U6IDE5IDIzCitUZVhEaWN0IGJlZ2luIDE5IDIyIGJvcCAxNTAgLTExNiBhIEZ0KENoYXB0ZXIpMzAgYigxOik0MQorYihDb21tYW5kKTI5IGIoTGluZSlpKEVkaXRpbmcpMjEwNyBiKDE5KTE1MCAyOTkgeSBGcworKGNoYXJhY3Rlci1zZWFyY2gtYmFja3dhcilvKGQpMjQgYihcKE0tQy1dXCkpNjMwIDQwOAoreSBGdChBKTQ1IGIoYyltKGhhcmFjdGVyKWgoaXMpZihyZWFkKWcoYW5kKWYocClzKG9pbiltKHQpaChpcylnKG1vKW0odikKK20oZWQpaCh0bylmKHRoZSlnKHByZXZpb3VzKWYobylzKGNjdXJyZW5jZSloKG9mKWcodGhhdCk2MzAKKzUxOCB5KGMpbShoYXJhY3Rlci4pZChBKTMxIGIobmVnYXRpdiltKGUpaChjb3VuKW0odClmKHNlYXJjKW0oaGVzKWgKKyhmb3IpZShzdWJzZXF1ZW4pbSh0KWYobylzKGNjdXJyZW5jZXMuKTE1MCA2NzcgeSBGcyhpbnNlcnQtY29tbWVudClkCisoXChNLSNcKSk2MzAgNzg3IHkgRnQoV2l0aG91dCkzNiBiKGEpZyhuKW0odW1lcmljKWcoYXJndW1lbiltKHQsKWgodGhlKQorZih2KS01IGIoYWx1ZSkzNiBiKG9mKWcodGhlKWcgRnMoY29tbWVudC1iZWdpbiljIEZ0KHYpLTUKK2IoYXJpYWJsZSkzNiBiKGlzKWcoaW4tKTYzMCA4OTcgeShzZXJ0ZWQpYyhhdClnKHRoZSlnKGIpcyhlZ2lubmluZylmCisob2YpaCh0aGUpZihjdXJyZW4pbSh0KWgobGluZS4pNDUgYihJZikzMSBiKGEpaChuKW0odW1lcmljKWYoYXJndW1lbiltCisodCloKGlzKWcoc3VwcGxpZWQsKTYzMCAxMDA2IHkodGhpcylrKGNvbW1hbmQpaChhY3RzKWcoYXMpZyhhKWcKKyh0b2dnbGU6KTU1IGIoaWYpMzcgYih0aGUpZihjKW0oaGFyYWN0ZXJzKWkoYXQpZyh0aGUpZShiKXMoZWdpbm5pbmcpZworKG9mKWgodGhlKWcobGluZSk2MzAgMTExNiB5KGRvKTMwIGIobm90KWgobWF0YyltKGgpaCh0aGUpZih2KS01CitiKGFsdWUpMzEgYihvZilmIEZzKGNvbW1lbnQtYmVnaW4pcCBGdCgsKWUodGhlKWkodiktNQorYihhbHVlKTMxIGIoaXMpZyhpbnNlcnRlZCwpZyhvdGhlcndpc2UpZyh0aGUpNjMwIDEyMjUKK3koYyltKGhhcmFjdGVycyk0MiBiKGluKWQgRnMoY29tbWVudC1iZWdpbillIEZ0KGFyZSlqKGRlbGV0ZWQpaChmcm9tKWYKKyh0aGUpZyhiKXMoZWdpbm5pbmcpZyhvZilnKHRoZSlnKGxpbmUuKTcxIGIoSW4pNjMwIDEzMzUKK3koZWl0aGVyKTMxIGIoY2FzZSwpaCh0aGUpZShsaW5lKWgoaXMpZihhY2NlcHRlZClpKGFzKWYoaWYpZihhKWgKKyhuZXdsaW5lKWYoaGFkKWcoYilzKGVlbilmKHQpbSh5cClzKGVkLikxNTAgMTQ5NCB5IEZzKGR1bXAtZnVuY3Rpb25zKWQKKyhcKFwpKTYzMCAxNjA0IHkgRnQoUHJpbiltKHQpZyhhbGwpaShvZillKHRoZSloKGZ1bmN0aW9ucylmKGFuZClnCisodGhlaXIpZyhrKW0oZXkpaChiaW5kaW5ncyllKHRvKWoodGhlKWUoUmVhZGxpbmUpaChvdXRwdXQpZihzdHJlYW0uKTYzMAorMTcxNCB5KElmKTMxIGIoYSloKG4pbSh1bWVyaWMpZyhhcmd1bWVuKW0odClnKGlzKWcoc3VwcGxpZWQsKWYodGhlKWgKKyhvdXRwdXQpZihpcyloKGZvcm1hdHRlZClnKGluKWYoc3VjKW0oaCloKGEpZyh3KW0oYSltKHkpZyh0aGF0KTYzMAorMTgyMyB5KGl0KWYoY2FuKWcoYilzKGUpZShtYWRlKWkocGFydClmKG9mKWcoYW4paCBGaShpbnB1dHJjKWsKK0Z0KFwwMTRsZS4pNDEgYihUaGlzKTI5IGIoY29tbWFuZCloKGlzKWgodW4pbShiKXMob3VuZCljKGIpbSh5KWsKKyhkZWZhdWx0LikxNTAgMTk4MyB5IEZzKGR1bXAtdmFyaWFibGVzKTI2IGIoXChcKSk2MzAKKzIwOTIgeSBGdChQcmluKW0odCkyMSBiKGFsbCloKG9mKWcodGhlKWYoc2V0dGFibGUpaSh2KS01CitiKGFyaWFibGVzKTIyIGIoYW5kKWYodGhlaXIpZyh2KS01IGIoYWx1ZXMpMjIgYih0bylnKHRoZSlmKFJlYWRsaW5lKWgKKyhvdXRwdXQpZihzdHJlYW0uKTYzMCAyMjAyIHkoSWYpMzEgYihhKWgobiltKHVtZXJpYylnKGFyZ3VtZW4pbSh0KWcoaXMpCitnKHN1cHBsaWVkLClmKHRoZSloKG91dHB1dClmKGlzKWgoZm9ybWF0dGVkKWcoaW4pZihzdWMpbShoKWgoYSlnKHcpbShhKQorbSh5KWcodGhhdCk2MzAgMjMxMSB5KGl0KWYoY2FuKWcoYilzKGUpZShtYWRlKWkocGFydClmKG9mKWcoYW4paAorRmkoaW5wdXRyYylrIEZ0KFwwMTRsZS4pNDEgYihUaGlzKTI5IGIoY29tbWFuZCloKGlzKWgodW4pbShiKXMob3VuZCljCisoYiltKHkpayhkZWZhdWx0LikxNTAgMjQ3MSB5IEZzKGR1bXAtbWFjcm9zKWMoXChcKSk2MzAKKzI1ODAgeSBGdChQcmluKW0odCkzNCBiKGFsbClnKG9mKWcodGhlKWcoUmVhZGxpbmUpZyhrKW0oZXkpaChzZXF1ZW5jZXMpCitmKGIpcyhvdW5kKWUodG8paShtYWNyb3MpZyhhbmQpZih0aGUpaChzdHJpbmdzKWcodGhleSk2MzAKKzI2OTAgeShvdXRwdXQuKTUzIGIoSWYpMzUgYihhKWcobiltKHVtZXJpYylmKGFyZ3VtZW4pbSh0KWkoaXMpZQorKHN1cHBsaWVkLCloKHRoZSlnKG91dHB1dClnKGlzKWYoZm9ybWF0dGVkKWkoaW4pZShzdWMpbShoKWgoYSk2MzAKKzI4MDAgeSh3KW0oYSltKHkpYyh0aGF0KWcoaXQpZihjYW4pZyhiKXMoZSlnKG1hZGUpZyhwYXJ0KWYob2YpaShhbillCitGaShpbnB1dHJjKTM1IGIgRnQoXDAxNGxlLik0MSBiKFRoaXMpMjkgYihjb21tYW5kKWgoaXMpZyh1biltKGIpcyhvdW5kKQorZChiKW0oeSk2MzAgMjkwOSB5KGRlZmF1bHQuKTE1MCAzMDY4IHkgRnMoZW1hY3MtZWRpdGluZy1tb2RlKWUoXChDLWVcKSkKKzYzMCAzMTc4IHkgRnQoV2hlbikzMCBiKGluKWcgRnModmkpZyBGdChjb21tYW5kKWcobW8pcyhkZSwpZyh0aGlzKWgKKyhjYXVzZXMpZihhKWgoc3dpdGMpbShoKWcodG8pZyBGcyhlbWFjcyllIEZ0KGVkaXRpbmcpaShtbylzKGRlLikxNTAKKzMzMzcgeSBGcyh2aS1lZGl0aW5nLW1vZGUpMjYgYihcKE0tQy1qXCkpNjMwIDM0NDcgeSBGdChXaGVuKWsoaW4pZworRnMoZW1hY3MpZiBGdChlZGl0aW5nKWkobW8pcyhkZSwpZih0aGlzKWgoY2F1c2VzKWYoYSloKHN3aXRjKW0oaClnKHRvKWcKK0ZzKHZpKWYgRnQoZWRpdGluZyloKG1vKXMoZGUuKTE1MCAzNzA0IHkgRnIoMS41KTY4IGIoUmVhZGxpbmUpNDcKK2IodmkpZShNbyl0KGRlKTI3NSAzOTQ5IHkgRnQoV2hpbGUpMjQgYih0aGUpZyhSZWFkbGluZSlnKGxpYnJhcnkpZihkbylzCisoZXMpaChub3QpZyhoYSltKHYpbShlKWcoYSloKGZ1bGwpZShzZXQpaChvZilnIEZzKHZpKWYKK0Z0KGVkaXRpbmcpaChmdW5jdGlvbnMsKWgoaXQpZihkbylzKGVzKWcoY29uKW0odGFpbikxNTAKKzQwNTggeShlbm91Z2gpMzQgYih0byloKGFsbG8pbSh3KWcoc2ltcGxlKWYoZWRpdGluZyloKG9mKWYodGhlKWcobGluZS4pCis1MiBiKFRoZSkzNCBiKFJlYWRsaW5lKWcgRnModmkpZyBGdChtbylzKGRlKWYoYilzKGVoYSltKHYpbShlcylpKGFzKWYKKyhzcClzKGVjaVwwMTRlZClmKGluKTE1MCA0MTY4IHkodGhlKWUgRm0ocG9zaXgpZSBGdCgxMDAzLjIpayhzdGFuZGFyZC4pCisyNzUgNDMwMiB5KEluKTI4IGIob3JkZXIpZyh0bylpKHN3aXRjKW0oaClnKGluKW0odGVyYWN0aXYpbShlbHkpaShiKXMKKyhldCltKHcpbShlZW4pZCBGcyhlbWFjcylmIEZ0KGFuZClnIEZzKHZpKWggRnQoZWRpdGluZylnKG1vKXMoZGVzLClnCisodXNlKWcodGhlKWcoY29tbWFuZCkxNTAgNDQxMiB5IEZsKE0tQy1qKTM2IGIgRnQoXChiKXMob3VuZCloKHRvKWgKKyhlbWFjcy1lZGl0aW5nLW1vKXMoZGUpaSh3aGVuKWQoaW4pZyBGcyh2aSloIEZ0KG1vKXMoZGUpZihhbmQpZyh0bylpCisodmktZWRpdGluZy1tbylzKGRlKWcoaW4pZSBGcyhlbWFjcykxNTAgNDUyMSB5IEZ0KG1vKXMoZGVcKS4payhUaGUpMzAKK2IoUmVhZGxpbmUpaChkZWZhdWx0KWYoaXMpZyBGcyhlbWFjcylmIEZ0KG1vKXMoZGUuKTI3NQorNDY1NiB5KFdoZW4pZyh5KW0ob3UpaShlbiltKHRlcilmKGEpaChsaW5lKWYoaW4pZyBGcyh2aSlmCitGdChtbylzKGRlLCloKHkpbShvdSloKGFyZSlmKGFscmVhZHkpaChwbGFjZWQpZihpbilnKGBpbnNlcnRpb24nKWcobW8pcworKGRlLClnKGFzKWgoaWYpZih5KW0ob3UpMTUwIDQ3NjUgeShoYWQpYyh0KW0oeXApcyhlZClnKGFuKWcoYClwCitGcyhpKXAgRnQoJy4pMzkgYihQcmVzc2luZykxMjE1IDQ3NjIgeSBGayhoKXAgMTIzOSA0NzA5CisxMzkgNCB2IDEyMzkgNDc2NSBhIEZqKEVTQylwIDEyMzkgNDc4MSBWIDEzNzMgNDc2MiBhCitGayhpKTE0MjkgNDc2NSB5IEZ0KHN3aXRjKW0oaGVzKTI3IGIoeSltKG91KWcoaW4pbSh0bylnKGBjb21tYW5kJylmKG1vKQorcyhkZSwpaCh3aGVyZSlmKHkpbShvdSloKGNhbilmKGVkaXQpaCh0aGUpMTUwIDQ4NzUgeSh0ZXh0KTM1CitiKG9mKWYodGhlKWcobGluZSlnKHdpdGgpZih0aGUpaChzdGFuZGFyZClmIEZzKHZpKWcgRnQobW8pbSh2KW0oZW1lbiltCisodClqKGspbShleXMsKWcobW8pbSh2KW0oZSlmKHRvKWYocHJldmlvdXMpZyhoaXN0b3J5KWYobGluZXMpaCh3aXRoKTE1MAorNDk4NSB5KGApcCBGcyhrKXAgRnQoJylkKGFuZCllKHN1YnNlcXVlbiltKHQpaChsaW5lcyloKHdpdGgpZihgKXAKK0ZzKGopcCBGdCgnLClnKGFuZClnKHNvKWgoZm9ydGguKXAgZW9wIGVuZAorJSVQYWdlOiAyMCAyNAorVGVYRGljdCBiZWdpbiAyMCAyMyBib3AgMTUwIC0xMTYgYSBGdCgyMCkyNjAwIGIoR05VKTMxCitiKFJlYWRsaW5lKWcoTGlicmFyeSlwIGVvcCBlbmQKKyUlUGFnZTogMjEgMjUKK1RlWERpY3QgYmVnaW4gMjEgMjQgYm9wIDE1MCAtMTE2IGEgRnQoQ2hhcHRlcikzMCBiKDI6KTQxCitiKFByb2dyYW1taW5nKTMwIGIod2l0aClnKEdOVSloKFJlYWRsaW5lKTE2ODMgYigyMSkxNTAKKzI5OSB5IEZwKDIpODAgYihQcm9ncmFtbWluZyk1NCBiKHdpdGgpZihHTlUpaChSZWFkbGluZSkyNzUKKzUyNyB5IEZ0KFRoaXMpMzMgYihjKW0oaGFwdGVyKWgoZGVzY3JpYilzKGVzKWYodGhlKWgoaW4pbSh0ZXJmYWNlKWkoYilzCisoZXQpbSh3KW0oZWVuKWUodGhlKWcgRm0oZ251KWcgRnQoUmVhZGxpbmUpaChMaWJyYXJ5KWUoYW5kKWcob3RoZXIpaAorKHByby0pMTUwIDYzNyB5KGdyYW1zLilrKElmKTIyIGIoeSltKG91KWgoYXJlKWcoYSlnKHByb2dyYW1tZXIsKWgoYW5kKWQKKyh5KW0ob3UpaSh3aXNoKWYodG8paChpbmNsdWRlKWYodGhlKWgoZmVhdHVyZXMpZyhmb3VuZCllKGluKWgKK0ZtKGdudSlnIEZ0KFJlYWRsaW5lKTE1MCA3NDYgeShzdWMpbShoKWcoYXMpaChjb21wbGV0aW9uLClqKGxpbmUpZAorKGVkaXRpbmcsKWkoYW5kKWQoaW4pbSh0ZXJhY3RpdiltKGUpaihoaXN0b3J5KWUobWFuaXB1bGF0aW9uKWcoaW4pZih5KW0KKyhvdXIpZyhvKW0od24paChwcm9ncmFtcywpMTUwIDg1NiB5KHRoaXMpMzAgYihzZWN0aW9uKWkoaXMpZShmb3IpZyh5KW0KKyhvdS4pMTUwIDExMTAgeSBGcigyLjEpNjggYihCYXNpYyk0NSBiKEJlaGEpbCh2aW9yKTI3NQorMTM1MyB5IEZ0KE1hbiltKHkpMzEgYihwcm9ncmFtcylmKHBybyltKHZpZGUpaChhKWcoY29tbWFuZClmKGxpbmUpaChpbikKK20odGVyZmFjZSwpaChzdWMpbShoKWYoYXMpZiBGcyhtYWlsKXAgRnQoLClnIEZzKGZ0cClwCitGdCgsKWcoYW5kKWcgRnMoc2gpcCBGdCguKTQxIGIoRiktOCBiKG9yKTMxIGIoc3VjKW0oaCkxNTAKKzE0NjIgeShwcm9ncmFtcywpZSh0aGUpZihkZWZhdWx0KWgoYilzKGVoYSltKHZpb3VyKWYob2YpaChSZWFkbGluZSlnCisoaXMpZyhzdVwwMTZjaWVuKW0odC4pNDAgYihUaGlzKTI4IGIoc2VjdGlvbilpKGRlc2NyaWIpcyhlcylkKGhvKW0odylpCisodG8pZyh1c2UpMTUwIDE1NzIgeShSZWFkbGluZSkzNSBiKGluKWYodGhlKWgoc2ltcGxlc3QpZih3KW0oYSltKHkpaChwKQorcyhvc3NpYmxlLCloKHApcyhlcmhhcHMpYyh0bylqKHJlcGxhY2UpaChjYWxscylmKGluKWYoeSltKG91ciloKGNvKXMKKyhkZSlmKHRvKWggRnMoZ2V0c1woXCkpZSBGdChvcikxNTAgMTY4MiB5IEZzKGZnZXRzXChcKSlwCitGdCguKTI3NSAxODE1IHkoVGhlKWYoZnVuY3Rpb24pZyBGcyhyZWFkbGluZVwoXCkpZSBGdChwcmluKW0odHMpaShhKWcKKyhwcm9tcHQpZyBGaShwcm9tcHQpaSBGdChhbmQpZSh0aGVuKWcocmVhZHMpZyhhbmQpZyhyZXR1cm5zKWYoYSlpCisoc2luZ2xlKTE1MCAxOTI0IHkobGluZSlnKG9mKWcodGV4dCloKGZyb20pZSh0aGUpaCh1c2VyLik0NworYihJZikzMiBiIEZpKHByb21wdClpIEZ0KGlzKWUgRnMoTlVMTClnIEZ0KG9yKWgodGhlKWYoZW1wdCltKHkpaQorKHN0cmluZywpZihubylnKHByb21wdCllKGlzKWkoZGlzcGxhKW0oeSltKGVkLikxNTAgMjAzNAoreShUaGUpayhsaW5lKWcgRnMocmVhZGxpbmUpZSBGdChyZXR1cm5zKWgoaXMpaChhbGxvKXMoY2F0ZWQpaSh3aXRoKWUKK0ZzKG1hbGxvY1woXCkpcCBGdCg7KWgodGhlKWYoY2FsbGVyKWkoc2hvdWxkKWQgRnMoZnJlZVwoXCkpZgorRnQodGhlKWoobGluZSkxNTAgMjE0NCB5KHdoZW4pMjkgYihpdClpKGhhcylmKFwwMTRuaXNoZWQpZih3aXRoKWgoaXQuKQorNDIgYihUaGUpMjkgYihkZWNsYXJhdGlvbilqKGZvcilmIEZzKHJlYWRsaW5lKWQgRnQoaW4paShBTlNJKWcoQylnKGlzKQorMzkwIDIyNzcgeSBGcyhjaGFyKTQ3IGIoKnJlYWRsaW5lKWUoXChjb25zdCloKGNoYXIpaCgqKXAKK0ZsKHByb21wdCkxMSBiIEZzKFwpOykxNTAgMjQxMCB5IEZ0KFNvLCkzMSBiKG9uZSlmKG1pZ2gpbSh0KWgoc2EpbSh5KQorMzkwIDI1NDQgeSBGcyhjaGFyKTQ3IGIoKmxpbmUpZig9KWgocmVhZGxpbmUpZihcKCJFbnRlcilnKGEpaChsaW5lOilnCisoIlwpOykxNTAgMjY3NyB5IEZ0KGluKTIzIGIob3JkZXIpZih0byloKHJlYWQpZyhhKWcobGluZSloKG9mKWYodGV4dCloCisoZnJvbSllKHRoZSloKHVzZXIuKTM4IGIoVGhlKTIyIGIobGluZSloKHJldHVybmVkKWYoaGFzKWcodGhlKWgKKyhcMDE0bmFsKWcobmV3bGluZSlnKHJlbW8pbSh2KW0oZWQsKTE1MCAyNzg3IHkoc28pMzEKK2Iob25seSlmKHRoZSloKHRleHQpZyhyZW1haW5zLikyNzUgMjkyMCB5KElmKTQwIGIgRnMocmVhZGxpbmUpZQorRnQoZW5jb3VuKW0odGVycylqKGFuKWYgRnMoRU9GKWYgRnQod2hpbGUpaShyZWFkaW5nKWYodGhlKWgobGluZSwpagorKGFuZCkzOSBiKHRoZSlpKGxpbmUpZyhpcylmKGVtcHQpbSh5KWgoYXQpZyh0aGF0KTE1MAorMzAyOSB5KHApcyhvaW4pbSh0LCkzMCBiKHRoZW4pZiBGcyhcKGNoYXIpZygqXClOVUxMKWUKK0Z0KGlzKWoocmV0dXJuZWQuKTM5IGIoT3RoZXJ3aXNlLCkzMCBiKHRoZSlmKGxpbmUpaChpcylmKGVuZGVkKWcoanVzdClnCisoYXMpZyhpZiloKGEpZihuZXdsaW5lKWgoaGFkKTE1MCAzMTM5IHkoYilzKGVlbilnKHQpbSh5cClzKGVkLikyNzUKKzMyNzIgeShJZikyNSBiKHkpbShvdSloKHcpbShhbiltKHQpaCh0aGUpZih1c2VyKWYodG8paShiKXMoZSllKGFibGUpaAorKHRvKWgoZ2V0KWcoYXQpZyh0aGUpZihsaW5lKWcobGF0ZXIsKWkoXCh3aXRoKTI2NTEgMzI2OQoreSBGayhoKXAgMjY3NSAzMjE2IDExNCA0IHYgMjY3NSAzMjcyIGEgRmooQy1wKXAgMjY3NQorMzI4OCBWIDI3ODQgMzI2OSBhIEZrKGkpMjg0MCAzMjcyIHkgRnQoZm9yKWUoZXhhbXBsZVwpLClpKHkpbShvdSllKG0pbQorKHVzdCkxNTAgMzM4MiB5KGNhbGwpMzIgYiBGcyhhZGRfaGlzdG9yeVwoXCkpMjYgYiBGdCh0bykzMgorYihzYSltKHYpbShlKWYodGhlKWcobGluZSlnKGEpbSh3KW0oYSltKHkpaChpbillKGEpaAorRmkoaGlzdG9yeSkzOCBiIEZ0KGxpc3QpMzEgYihvZilnKHN1YyltKGgpZihsaW5lcy4pMzkwCiszNTE1IHkgRnMoYWRkX2hpc3RvcnkpNDUgYihcKGxpbmVcKTspMTUwIDM2NDkgeSBGdChGKS04CitiKG9yKTMxIGIoZnVsbClmKGRldGFpbHMpaShvbillKHRoZSlnKEdOVSloKEhpc3RvcnkpZyhMaWJyYXJ5KS04CitiKCwpMzEgYihzZWUpZyh0aGUpZihhc3NvKXMoY2lhdGVkKWkobWFuKW0odWFsLikyNzUgMzc4MgoreShJdClmKGlzKWcocHJlZmVyYWJsZSlnKHRvKWkoYSltKHYpbShvaWQpZihzYSltKHZpbmcpaChlbXB0KW0oeSllCisobGluZXMpaChvbilmKHRoZSloKGhpc3RvcnkpZihsaXN0LCloKHNpbmNlKWcodXNlcnMpZShyYXJlbHkpaShoYSltKHYpbQorKGUpaChhKTE1MCAzODkyIHkoYnVybmluZykyOCBiKG5lZWQpaCh0bylpKHJldXNlKWUoYSloKGJsYW5rKWcobGluZS4pNDAKK2IoSGVyZSkzMSBiKGlzKWUoYSloKGZ1bmN0aW9uKWcod2hpYyltKGgpZih1c2VmdWxseSlnKHJlcGxhY2VzKWkodGhlKWYKKyhzdGFuZGFyZCkxNTAgNDAwMSB5IEZzKGdldHNcKFwpKWYgRnQobGlicmFyeSloKGZ1bmN0aW9uLClnKGFuZClnKGhhcylnCisodGhlKWcoYWR2KS01IGIoYW4pbSh0YWdlKTMzIGIob2YpZChubylnKHN0YXRpYylpKGJ1XDAxM2VyKWUodG8paChvKW0KKyh2KW0oZXJcMDE1byltKHc6KTM5MCA0MTM0IHkgRnMoLyopNDcgYihBKWgoc3RhdGljKWUodmFyaWFibGUpZihmb3IpaQorKGhvbGRpbmcpZih0aGUpaChsaW5lLilmKCovKTM5MCA0MjQ0IHkoc3RhdGljKWcoY2hhciloKCpsaW5lX3JlYWQpZSg9KWkKKyhcKGNoYXIpZygqXClOVUxMOykzOTAgNDQ2MyB5KC8qKWcoUmVhZClnKGEpZyhzdHJpbmcsKWYoYW5kKWgocmV0dXJuKWYKKyhhKWkocG9pbnRlcilkKHRvKWooaXQuKTUzMyA0NTczIHkoUmV0dXJucyllKE5VTEwpaChvbilnKEVPRi4pZigqLykzOTAKKzQ2ODIgeShjaGFyKWgoKikzOTAgNDc5MiB5KHJsX2dldHMpZihcKFwpKTM5MCA0OTAyIHkoeyk0ODUKKzUwMTEgeSgvKilpKElmKWYodGhlKWcoYnVmZmVyKWYoaGFzKWgoYWxyZWFkeSlmKGJlZW4pZyhhbGxvY2F0ZWQsKTYyOQorNTEyMSB5KHJldHVybilnKHRoZSloKG1lbW9yeSlmKHRvKWgodGhlKWcoZnJlZSlmKHBvb2wuKWgoKi8pNDg1Cis1MjMwIHkoaWYpaChcKGxpbmVfcmVhZFwpKTU4MSA1MzQwIHkoeylwIGVvcCBlbmQKKyUlUGFnZTogMjIgMjYKK1RlWERpY3QgYmVnaW4gMjIgMjUgYm9wIDE1MCAtMTE2IGEgRnQoMjIpMjYwMCBiKEdOVSkzMQorYihSZWFkbGluZSlnKExpYnJhcnkpNjc2IDI5OSB5IEZzKGZyZWUpNDcgYihcKGxpbmVfcmVhZFwpOyk2NzYKKzQwOCB5KGxpbmVfcmVhZClmKD0paChcKGNoYXIpZigqXClOVUxMOyk1ODEgNTE4IHkofSk0ODUKKzczNyB5KC8qKWkoR2V0KWYoYSlnKGxpbmUpZyhmcm9tKWYodGhlKWgodXNlci4pZygqLyk0ODUKKzg0NyB5KGxpbmVfcmVhZClmKD0paChyZWFkbGluZSlmKFwoIiJcKTspNDg1IDEwNjYgeSgvKilpKElmKWYodGhlKWcKKyhsaW5lKWYoaGFzKWgoYW55KWcodGV4dClnKGluKWcoaXQsKTYyOSAxMTc2IHkoc2F2ZSlmKGl0KWgob24paCh0aGUpZgorKGhpc3RvcnkuKWUoKi8pNDg1IDEyODUgeShpZilqKFwobGluZV9yZWFkKWQoJiYpaSgqbGluZV9yZWFkXCkpNTgxCisxMzk1IHkoYWRkX2hpc3RvcnkpZShcKGxpbmVfcmVhZFwpOyk0ODUgMTYxNCB5KHJldHVybilpKFwobGluZV9yZWFkXCk7KQorMzkwIDE3MjQgeSh9KTI3NSAxODU0IHkgRnQoVGhpcykyMiBiKGZ1bmN0aW9uKWkoZ2l2KW0oZXMpaCh0aGUpZih1c2VyKWYKKyh0aGUpaChkZWZhdWx0KWcoYilzKGVoYSltKHZpb3VyKWYob2YpMjMzOCAxODUxIHkgRmsoaClwCisyMzYyIDE3OTggMTQ4IDQgdiAyMzYyIDE4NTQgYSBGaihUKS02IGIoQUIpcCAyMzYyIDE4NzAKK1YgMjUwNiAxODUxIGEgRmsoaSkyNTYwIDE4NTQgeSBGdChjb21wbGV0aW9uOikzOCBiKGNvbXBsZXRpb24pMjUKK2Iob24pZihcMDE0bGUpMTUwIDE5NjQgeShuYW1lcy4pNDEgYihJZikzMSBiKHkpbShvdSlnKGRvKWYobm90KWgodyltCisoYW4pbSh0KWcoUmVhZGxpbmUpaCh0bylmKGNvbXBsZXRlKWgob24pZihcMDE0bGVuYW1lcywpZyh5KW0ob3UpZyhjYW4pZgorKGMpbShoYW5nZSlpKHRoZSlmKGJpbmRpbmcpMTUwIDIwNzQgeShvZilnKHRoZSk0MTAgMjA3MQoreSBGayhoKXAgNDM0IDIwMTggViA0MzQgMjA3NCBhIEZqKFQpLTYgYihBQilwIDQzNCAyMDg5CitWIDU3OCAyMDcxIGEgRmsoaSk2MzggMjA3NCB5IEZ0KGspbShleSkzMSBiKHdpdGgpZiBGcyhybF9iaW5kX2tleVwoXCkpcAorRnQoLikzOTAgMjIwNSB5IEZzKGludCk0NyBiKHJsX2JpbmRfa2V5KWUoXChpbnQpaCBGbChrZXkpcAorRnMoLCloKHJsX2NvbW1hbmRfZnVuY190KWMoKilwIEZsKGZ1bmN0aW9uKTExIGIgRnMoXCk7KTI3NQorMjMzNSB5KHJsX2JpbmRfa2V5XChcKSkyOSBiIEZ0KHRhayltKGVzKTM1IGIodCltKHcpbShvKWcoYXJndW1lbiltKHRzOikKKzQ3IGIgRmkoayltKGV5KWMgRnQoaXMpMzMgYih0aGUpaChjKW0oaGFyYWN0ZXIpaCh0aGF0KWYoeSltKG91KWcodyltCisoYW4pbSh0KWcodG8pZyhiaW5kLClnKGFuZCkxNTAgMjQ0NSB5IEZpKGZ1bmN0aW9uKWggRnQoaXMpaCh0aGUpZworKGFkZHJlc3MpZihvZiloKHRoZSlnKGZ1bmN0aW9uKWcodG8pZyhjYWxsKWgod2hlbillIEZpKGspbShleSk0NAorYiBGdChpcykzNiBiKHByZXNzZWQuKTU2IGIoQmluZGluZykzMjU3IDI0NDIgeSBGayhoKXAKKzMyODEgMjM4OSBWIDMyODEgMjQ0NSBhIEZqKFQpLTYgYihBQilwIDMyODEgMjQ2MCBWIDM0MjUKKzI0NDIgYSBGayhpKTM0OTAgMjQ0NSB5IEZ0KHRvKTM3IGIgRnMocmxfKTE1MCAyNTU1IHkoaW5zZXJ0XChcKSljCitGdChtYWspbShlcyk4NDUgMjU1MiB5IEZrKGgpcCA4NjkgMjQ5OSBWIDg2OSAyNTU1IGEgRmooVCktNgorYihBQilwIDg2OSAyNTcwIFYgMTAxMyAyNTUyIGEgRmsoaSkxMDc3IDI1NTUgeSBGdChpbnNlcnQpMzUKK2IoaXRzZWxmLik1NiBiIEZzKHJsX2JpbmRfa2V5XChcKSkzMiBiIEZ0KHJldHVybnMpaChub24temVybylqKGlmKWYKK0ZpKGspbShleSk0NCBiIEZ0KGlzKTM1IGIobm90KWcoYSloKHYpLTUgYihhbGlkKTE1MCAyNjY0Cit5KEFTQ0kpcyhJKTI5IGIoYyltKGhhcmFjdGVyKWooY28pcyhkZSllKFwoYilzKGV0KW0odyltKGVlbilpKDApZihhbmQpZQorKDI1NVwpLikyNzUgMjc5NSB5KFRoKW0odXMsKWcodG8paShkaXNhYmxlKWcodGhlKWYoZGVmYXVsdCkxNDA3CisyNzkyIHkgRmsoaClwIDE0MzEgMjczOSBWIDE0MzEgMjc5NSBhIEZqKFQpLTYgYihBQilwCisxNDMxIDI4MTAgViAxNTc1IDI3OTIgYSBGayhpKTE2MzUgMjc5NSB5IEZ0KGIpcyhlaGEpbSh2aW9yLCkzMQorYih0aGUpZihmb2xsbyltKHdpbmcpaShzdVwwMTZjZXM6KTM5MCAyOTI2IHkgRnMocmxfYmluZF9rZXkpNDUKK2IoXCgnXFx0JywpaChybF9pbnNlcnRcKTspMjc1IDMwNTcgeSBGdChUaGlzKTI1IGIoY28pcyhkZSlpKHNob3VsZCllKGIpCitzKGUpaChleGVjdXRlZCloKG9uY2UpZyhhdClnKHRoZSlnKHN0YXJ0KWcob2YpZih5KW0ob3VyKWgocHJvZ3JhbTspZyh5KQorbShvdSlnKG1pZ2gpbSh0KWcod3JpdGUpZyhhKWcoZnVuYy0pMTUwIDMxNjYgeSh0aW9uKTMzCitiKGNhbGxlZCloIEZzKGluaXRpYWxpemVfcmVhZGxpbmVcKFwpKTI3IGIgRnQod2hpYyltKGgpMzMKK2IocClzKGVyZm9ybXMpZSh0aGlzKWgoYW5kKWgob3RoZXIpZyhkZXNpcmVkKWYoaW5pdGlhbGl6YXRpb25zLCkxNTAKKzMyNzYgeShzdWMpbShoKWUoYXMpaChpbnN0YWxsaW5nKWcoY3VzdG9tKWcoY29tcGxldGVycylnKFwoc2VlKWcKKyhTZWN0aW9uKWgoMi42KWYoW0N1c3RvbSlmKENvbXBsZXRlcnNdLCloKHBhZ2UpZyg0MVwpLikxNTAKKzM1MjMgeSBGcigyLjIpNjggYihDdXN0b20pNDUgYihGKS0xMSBiKHVuY3Rpb25zKTI3NSAzNzYzCit5IEZ0KFJlYWRsaW5lKTI1IGIocHJvKW0odmlkZXMpZihtYW4pbSh5KWgoZnVuY3Rpb25zKWYoZm9yKWcKKyhtYW5pcHVsYXRpbmcpZyh0aGUpaCh0ZXh0KWcob2YpZyh0aGUpZyhsaW5lLCloKGJ1dCllKGl0KWgoaXNuJ3QpZihwKXMKKyhvc3NpLSkxNTAgMzg3MyB5KGJsZSlpKHRvKWgoYW4pbSh0aWNpcGF0ZSlpKHRoZSllKG5lZWRzKWYob2YpZyhhbGwpaAorKHByb2dyYW1zLikzOSBiKFRoaXMpMjYgYihzZWN0aW9uKWgoZGVzY3JpYilzKGVzKWYodGhlKWcodiktNQorYihhcmlvdXMpMjcgYihmdW5jdGlvbnMpZihhbmQpMTUwIDM5ODIgeSh2KS01IGIoYXJpYWJsZXMpMjcKK2IoZGVcMDE0bmVkKWUod2l0aGluKWcodGhlKWgoUmVhZGxpbmUpaChsaWJyYXJ5KWYod2hpYyltKGgpZyhhbGxvKW0odyloCisoYSlnKHVzZXIpZShwcm9ncmFtKWgodG8paChhZGQpZShjdXN0b21pemVkKTE1MCA0MDkyCit5KGZ1bmN0aW9uYWxpdCltKHkpMzIgYih0bylmKFJlYWRsaW5lLikyNzUgNDIyMyB5KEJlZm9yZSkzNworYihkZWNsYXJpbmcpZyhhbiltKHkpZyhmdW5jdGlvbnMpZih0aGF0KWgoY3VzdG9taXplKWgoUmVhZGxpbmUncylmKGIpcworKGVoYSltKHZpb3IsKWgob3IpZih1c2luZylmKGFuKW0oeSloKGZ1bmMtKTE1MCA0MzMyIHkodGlvbmFsaXQpbSh5KTQ4CitiKFJlYWRsaW5lKWUocHJvKW0odmlkZXMpZihpbilnKG90aGVyKWgoY28pcyhkZSwpayhhbik0NQorYihhcHBsaWNhdGlvbilpKHdyaXRlcillKHNob3VsZClnKGluY2x1ZGUpZyh0aGUpaChcMDE0bGUpMTUwCis0NDQyIHkgRnMoPHJlYWRsaW5lL3JlYWRsaW5lLmg+KTI4IGIgRnQoaW4pMzMgYihhbiltKHkpaChcMDE0bGUpZih0aGF0KQoraCh1c2VzKWYoUmVhZGxpbmUncyloKGZlYXR1cmVzLik1MSBiKFNpbmNlKTMzIGIoc29tZSloKG9mKWcodGhlKWYKKyhkZVwwMTQtKTE1MCA0NTUyIHkobml0aW9ucyllKGluKWcgRnMocmVhZGxpbmUuaClkIEZ0KHVzZSlqKHRoZSloCitGcyhzdGRpbylkIEZ0KGxpYnJhcnkpLTggYigsKTMyIGIodGhlKWYoXDAxNGxlKWggRnMoPHN0ZGlvLmg+KWMKK0Z0KHNob3VsZClpKGIpcyhlKWgoaW5jbHVkZWQpZihiKXMoZWZvcmUpMTUwIDQ2NjEgeSBGcyhyZWFkbGluZS5oKXAKK0Z0KC4pMjc1IDQ3OTIgeSBGcyhyZWFkbGluZS5oKWQgRnQoZGVcMDE0bmVzKWooYSloKEMpZihwcmVwcm8pcyhjZXNzb3IpCitnKHYpLTUgYihhcmlhYmxlKTMxIGIodGhhdClnKHNob3VsZClmKGIpcyhlKWcodHJlYXRlZCloKGFzKWcoYW4pZyhpbiltCisodGVnZXIsKWggRnMoUkxfKTE1MCA0OTAyIHkoUkVBRExJTkVfVkVSU0lPTilwIEZ0KCwpMjAKK2Iod2hpYyltKGgpaChtYSltKHkpaShiKXMoZSlmKHVzZWQpZih0bylpKGNvbmRpdGlvbmFsbHkpaChjb21waWxlKWYKKyhhcHBsaWNhdGlvbilnKGNvKXMoZGUpZihkZXApcyhlbmRpbmcpMTUwIDUwMTEgeShvbikzNQorYih0aGUpZyhpbnN0YWxsZWQpaChSZWFkbGluZSlmKHYpbShlcnNpb24uKTU2IGIoVGhlKTM0CitiKHYpLTUgYihhbHVlKTM1IGIoaXMpaChhKWYoaGV4YWRlY2ltYWwpaChlbmNvKXMoZGluZylmKG9mKWcodGhlKWgobWEpNQorYihqb3IpMzUgYihhbmQpMTUwIDUxMjEgeShtaW5vcilmKHYpbShlcnNpb24pZyhuKW0odW0pbShiKXMoZXJzKWYob2YpaAorKHRoZSloKGxpYnJhcnkpLTggYigsKTM1IGIob2YpZih0aGUpaChmb3JtKWUoMHgpcCBGaShNTW1tKXAKK0Z0KC4pNTMgYiBGaShNTSk0NSBiIEZ0KGlzKTM0IGIodGhlKWcodCltKHcpbShvLWRpZ2l0KWoobWEpNQorYihqb3IpMTUwIDUyMzAgeSh2KW0oZXJzaW9uKTI5IGIobiltKHVtKW0oYilzKGVyOylnIEZpKG1tKWYKK0Z0KGlzKWgodGhlKWcodCltKHcpbShvLWRpZ2l0KWoobWlub3IpYyh2KW0oZXJzaW9uKWkobiltKHVtKW0oYilzKGVyLikKKzM4IGIoRiktOCBiKG9yKTMwIGIoUmVhZGxpbmUpZyg0LjIsKWcoZm9yKWYoZXhhbXBsZSwpMTUwCis1MzQwIHkodGhlKWkodiktNSBiKGFsdWUpMzAgYihvZiloIEZzKFJMX1JFQURMSU5FX1ZFUlNJT04pMjUKK2IgRnQodyltKG91bGQpMzAgYihiKXMoZSlnIEZzKDB4MDQwMilwIEZ0KC4pcCBlb3AgZW5kCislJVBhZ2U6IDIzIDI3CitUZVhEaWN0IGJlZ2luIDIzIDI2IGJvcCAxNTAgLTExNiBhIEZ0KENoYXB0ZXIpMzAgYigyOik0MQorYihQcm9ncmFtbWluZykzMCBiKHdpdGgpZyhHTlUpaChSZWFkbGluZSkxNjgzIGIoMjMpMTUwCisyOTkgeSBGaCgyLjIuMSk2MyBiKFJlYWRsaW5lKTQwIGIoVCltKHlwKXMoZWRlZnMpMjc1Cis1NDAgeSBGdChGKS04IGIob3IpMzEgYihyZWFkYWJpbHQpbSh5KS04IGIoLCkzMiBiKHcpbShlKWYoZGVjbGFyZSlnKGEpZworKG4pbSh1bSltKGIpcyhlcillKG9mKWgobmV3KWcob2IpNSBiKGplY3QpMzIgYih0KW0oeXApcyhlcywpZShhbGwpaChwKXMKKyhvaW4pbSh0ZXJzKWcodG8pZyhmdW5jdGlvbnMuKTI3NSA2NzIgeShUaGUpayhyZWFzb24paChmb3IpZihkZWNsYXJpbmcpCitoKHRoZXNlKWgobmV3KWUodCltKHlwKXMoZXMpZyhpcyloKHRvKWgobWFrKW0oZSlmKGl0KWcoZWFzaWVyKWgodG8pZgorKHdyaXRlKWcoY28pcyhkZSlnKGRlc2NyaWJpbmcpMTUwIDc4MiB5KHApcyhvaW4pbSh0ZXJzKTMwCitiKHRvKWgoQylmKGZ1bmN0aW9ucylnKHdpdGgpZyhhcHByb3ByaWF0ZWx5KWgocHJvdG90KW0oeXApcyhlZClmCisoYXJndW1lbiltKHRzKWgoYW5kKWYocmV0dXJuKWYodiktNSBiKGFsdWVzLikyNzUgOTEzCit5KEYpZChvcikzNyBiKGluc3RhbmNlLClqKHNhKW0oeSlkKHcpbShlKWcodyltKGFuKW0odCloKHRvKWcoZGVjbGFyZSlmCisoYSloKHYpLTUgYihhcmlhYmxlKTM3IGIgRmkoZnVuYyk0MiBiIEZ0KGFzKTM3IGIoYSlnKHApcyhvaW4pbSh0ZXIpZworKHRvKWcoYSloKGZ1bmN0aW9uKWUod2hpYyltKGgpMTUwIDEwMjMgeSh0YWspbShlcykyNworYih0KW0odyltKG8pZyBGcyhpbnQpZSBGdChhcmd1bWVuKW0odHMpaChhbmQpZihyZXR1cm5zKWYoYW4paQorRnMoaW50KWYgRnQoXCh0aGlzKWgoaXMpZih0aGUpaCh0KW0oeXApcyhlKWcob2YpZyhhbGwpaChvZillKHRoZSloCisoUmVhZGxpbmUpaChiaW5kYWJsZSkxNTAgMTEzMiB5KGZ1bmN0aW9uc1wpLik0MSBiKEluc3RlYWQpMzAKK2Iob2YpZyh0aGUpaChjbGFzc2ljKWgoQyllKGRlY2xhcmF0aW9uKTI3NSAxMjY0IHkgRnMoaW50KWYKKyhcKCpmdW5jXClcKFwpOykxNTAgMTM5NiB5IEZ0KG9yKWgodGhlKWgoQU5TSS1DKWYoc3QpbSh5bGUpaQorKGRlY2xhcmF0aW9uKTI3NSAxNTI4IHkgRnMoaW50KWQoXCgqZnVuY1wpXChpbnQsKWUoaW50XCk7KTE1MAorMTY1OSB5IEZ0KHcpbShlKWsobWEpbSh5KWcod3JpdGUpMjc1IDE3OTEgeSBGcyhybF9jb21tYW5kX2Z1bmNfdCkyNQorYigqZnVuYzspMjc1IDE5MjMgeSBGdChUaGUpayhmdWxsKWgobGlzdClpKG9mKWUoZnVuY3Rpb24pZyhwKXMob2luKW0KKyh0ZXIpZyh0KW0oeXApcyhlcyloKGEpbSh2KS01IGIoYWlsYWJsZSkzMyBiKGlzKTE1MCAyMDc3Cit5IEZzKHR5cGVkZWYpMjggYihpbnQpaShybF9jb21tYW5kX2Z1bmNfdCljKFwoaW50LClpKGludFwpOykxNTAKKzIxODYgeSh0eXBlZGVmKWcoY2hhcilpKCpybF9jb21wZW50cnlfZnVuY190KTI0IGIoXChjb25zdCkyOQorYihjaGFyKWcoKiwpaChpbnRcKTspMTUwIDIyOTYgeSh0eXBlZGVmKWUoY2hhcilpCisoKipybF9jb21wbGV0aW9uX2Z1bmNfdCkyNCBiKFwoY29uc3QpMjkgYihjaGFyKWcoKiwpaChpbnQsKWYoaW50XCk7KTE1MAorMjQwNSB5KHR5cGVkZWYpZihjaGFyKWkoKnJsX3F1b3RlX2Z1bmNfdCljKFwoY2hhcilpKCosKWkoaW50LClmKGNoYXIpaAorKCpcKTspMTUwIDI1MTUgeSh0eXBlZGVmKWUoY2hhcilpKCpybF9kZXF1b3RlX2Z1bmNfdCkyNQorYihcKGNoYXIpaygqLCloKGludFwpOykxNTAgMjYyNSB5KHR5cGVkZWYpZShpbnQpaShybF9jb21waWdub3JlX2Z1bmNfdCkKKzI1IGIoXChjaGFyKWsoKipcKTspMTUwIDI3MzQgeSh0eXBlZGVmKWYodm9pZClpKHJsX2NvbXBkaXNwX2Z1bmNfdCkyNQorYihcKGNoYXIpaygqKiwpZyhpbnQsKWgoaW50XCk7KTE1MCAyODQ0IHkodHlwZWRlZillKGludClpCisocmxfaG9va19mdW5jX3QpYyhcKHZvaWRcKTspMTUwIDI5NTMgeSh0eXBlZGVmKWkoaW50KWkocmxfZ2V0Y19mdW5jX3QpYworKFwoRklMRSlqKCpcKTspMTUwIDMwNjMgeSh0eXBlZGVmKWYoaW50KWkocmxfbGluZWJ1Zl9mdW5jX3QpYyhcKGNoYXIpaQorKCosKWkoaW50XCk7KTE1MCAzMTczIHkodHlwZWRlZillKGludClpKHJsX2ludGZ1bmNfdClkKFwoaW50XCk7KTE1MAorMzI4MiB5KCNkZWZpbmUpaChybF9pdm9pZGZ1bmNfdClmKHJsX2hvb2tfZnVuY190KTE1MAorMzM5MiB5KHR5cGVkZWYpaChpbnQpaShybF9pY3BmdW5jX3QpZChcKGNoYXIpaSgqXCk7KTE1MAorMzUwMSB5KHR5cGVkZWYpZihpbnQpaShybF9pY3BwZnVuY190KWQoXChjaGFyKWkoKipcKTspMTUwCiszNjExIHkodHlwZWRlZilmKHZvaWQpaShybF92b2lkZnVuY190KWMoXCh2b2lkXCk7KTE1MAorMzcyMCB5KHR5cGVkZWYpaSh2b2lkKWkocmxfdmludGZ1bmNfdCljKFwoaW50XCk7KTE1MAorMzgzMCB5KHR5cGVkZWYpaSh2b2lkKWkocmxfdmNwZnVuY190KWQoXChjaGFyKWkoKlwpOykxNTAKKzM5NDAgeSh0eXBlZGVmKWYodm9pZClpKHJsX3ZjcHBmdW5jX3QpYyhcKGNoYXIpaigqKlwpOykxNTAKKzQxMzMgeSBGaCgyLjIuMik2MyBiKFcpLTEwIGIocml0aW5nKTQxIGIoYSlmKE5ldyloKEYpLTEwCitiKHVuY3Rpb24pMjc1IDQzNzUgeSBGdChJbikzMSBiKG9yZGVyKWgodG8pZyh3cml0ZSloKG5ldyllKGZ1bmN0aW9ucyloCisoZm9yKWcoUmVhZGxpbmUsKWkoeSltKG91KWUobmVlZClnKHRvKWgoa25vKW0odylmKHRoZSlnKGNhbGxpbmcpaShjb24pbQorKHYpbShlbiltKHRpb25zKTE1MCA0NDg0IHkoZm9yKWooayltKGV5YilzKG9hcmQtaW4pbSh2KW0ob2spbShlZCloCisoZnVuY3Rpb25zLClnKGFuZCllKHRoZSloKG5hbWVzKWcob2YpZyh0aGUpZyh2KS01IGIoYXJpYWJsZXMpMzgKK2IodGhhdClmKGRlc2NyaWIpcyhlKWYodGhlKWgoY3VycmVuKW0odCkxNTAgNDU5NCB5KHN0YXRlKTMyCitiKG9mKWUodGhlKWgobGluZSlnKHJlYWQpZihzbylnKGZhci4pMjc1IDQ3MjYgeShUaGUpZihjYWxsaW5nKWoKKyhzZXF1ZW5jZSlmKGZvcilmKGEpaChjb21tYW5kKWYgRnMoZm9vKWcgRnQobG8pcyhva3MpZyhsaWspbShlKTM5MAorNDg1NyB5IEZzKGludCk0NyBiKGZvbylnKFwoaW50KWYoY291bnQsKWgoaW50KWYoa2V5XCkpMTUwCis0OTg5IHkgRnQod2hlcmUpMzUgYiBGaShjb3VuKW0odClrIEZ0KGlzKWQodGhlKWcobiltKHVtZXJpYylnKGFyZ3VtZW4pbQorKHQpZyhcKG9yKWcoMSlnKGlmKWcoZGVmYXVsdGVkXCkpaChhbmQpZSBGaShrKW0oZXkpNDQKK2IgRnQoaXMpMzYgYih0aGUpZyhrKW0oZXkpaCh0aGF0KWYoaW4pbSh2KW0ob2spbShlZCkxNTAKKzUwOTkgeSh0aGlzKTMwIGIoZnVuY3Rpb24uKTI3NSA1MjMwIHkoSXQpMjMgYihpcylnKGNvbXBsZXRlbHkpaCh1cCllCisodG8paSh0aGUpZihmdW5jdGlvbilnKGFzKWcodG8paCh3aGF0KWYoc2hvdWxkKWYoYilzKGUpaChkb25lKWYod2l0aCloCisodGhlKWcobiltKHVtZXJpYylnKGFyZ3VtZW4pbSh0LikxNTAgNTM0MCB5KFNvbWUpNDAgYihmdW5jdGlvbnMpZyh1c2UpZgorKGl0KWkoYXMpZihhKWcocmVwKXMoZWF0KWgoY291biltKHQsKWkoc29tZSlkKGFzKWgoYSlmKFwwMTVhZywpaihhbmQpYworKG90aGVycyloKHRvKWgoYyltKGhvKXMob3NlKWcoYWx0ZXJuYXRlKXAgZW9wIGVuZAorJSVQYWdlOiAyNCAyOAorVGVYRGljdCBiZWdpbiAyNCAyNyBib3AgMTUwIC0xMTYgYSBGdCgyNCkyNjAwIGIoR05VKTMxCitiKFJlYWRsaW5lKWcoTGlicmFyeSkxNTAgMjk5IHkoYilzKGVoYSltKHZpb3IpNDMgYihcKHJlZnJlc2hpbmcpZyh0aGUpaAorKGN1cnJlbiltKHQpZihsaW5lKWgoYXMpZihvcHApcyhvc2VkKWcodG8paChyZWZyZXNoaW5nKWUodGhlKWkoc2NyZWVuLCkKK2ooZm9yKWMoZXhhbXBsZVwpLikxNTAgNDA4IHkoU29tZSkzMyBiKGMpbShobylzKG9zZSloKHRvKWcoaWdub3JlKWcKKyhpdC4pNTAgYihJbikzMiBiKGdlbmVyYWwsKWooaWYpZihhKWYoZnVuY3Rpb24pZyh1c2VzKWcodGhlKWcobiltCisodW1lcmljKWcoYXJndW1lbiltKHQpaChhcylmKGEpaChyZXApcyhlYXQpMTUwIDUxOCB5KGNvdW4pbSh0LCkyOQorYihpdClnKHNob3VsZCllKGIpcyhlKWcoYWJsZSloKHRvKWgoZG8pZihzb21ldGhpbmcpZyh1c2VmdWwpZih3aXRoKWgoYikKK3Mob3RoKWYobmVnYXRpdiltKGUpaihhbmQpZChwKXMob3NpdGl2KW0oZSlpKGFyZ3VtZW4pbSh0cy4pMTUwCis2MjggeShBKW0odClpKHRoZSlnKHYpbShlcnkpZyhsZWFzdCwpaChpdCllKHNob3VsZClnKGIpcyhlKWcoYSltKHcpbQorKGFyZSloKHRoYXQpZyhpdClnKGNhbilnKGIpcyhlKWYocGFzc2VkKWcoYSlnKG5lZ2F0aXYpbShlKWooYXJndW1lbiltCisodC4pMjc1IDc1OSB5KEEpMjcgYihjb21tYW5kKWgoZnVuY3Rpb24pZihzaG91bGQpZyhyZXR1cm4pZygwKWgoaWYpZworKGl0cylnKGFjdGlvbiloKGNvbXBsZXRlcylnKHN1Y2Nlc3NmdWxseSktOCBiKCwpMjkgYihhbmQpZShhKWgKKyhub24temVybykxNTAgODY5IHkodiktNSBiKGFsdWUpNDAgYihpZilmKHNvbWUpZyhlcnJvcilnKG8pcyhjY3Vycy4pNjcKK2IoVGhpcykzOCBiKGlzKWgodGhlKWcoY29uKW0odiltKGVuKW0odGlvbilqKG9iKXMoZXkpbShlZClkKGIpbSh5KWcKKyhhbGwpaChvZilmKHRoZSloKGJ1aWx0aW4pZShSZWFkbGluZSkxNTAgOTc4IHkoYmluZGFibGUpMzAKK2IoY29tbWFuZClnKGZ1bmN0aW9ucy4pMTUwIDEyMjYgeSBGcigyLjMpNjggYihSZWFkbGluZSk0NworYihWKS0xMSBiKGFyaWFibGVzKTI3NSAxNDY3IHkgRnQoVGhlc2UpMzAgYih2KS01IGIoYXJpYWJsZXMpMzEKK2IoYXJlKWYoYSltKHYpLTUgYihhaWxhYmxlKTMzIGIodG8pZShmdW5jdGlvbilmKHdyaXRlcnMuKTMzNzEKKzE2NDEgeShbViktOCBiKGFyaWFibGVdKS0zNTk4IGIgRmcoY2hhcikzOSBiKCopZyBGZihybClwCis1NzUgMTY0MSAzNSA1IHYgNTAgdyhsaW5lKXAgODA2IDE2NDEgViA1MCB3KGJ1XDAxM2VyKTM5MAorMTc1MSB5IEZ0KFRoaXMpMzAgYihpcylpKHRoZSlmKGxpbmUpZyhnYXRoZXJlZCloKHNvKWYoZmFyLik0MworYihZKS04IGIob3UpMzIgYihhcmUpZih3KW0oZWxjb21lKWkodG8pZihtbylzKGRpZnkpZih0aGUpZyhjb24pbSh0ZW4pbQorKHRzKWkob2YpZSh0aGUpZyhsaW5lLCkzOTAgMTg2MSB5KGJ1dClrKHNlZSloKFNlY3Rpb24pZygyLjQuNSloKFtBbGxvKW0KKyh3aW5nKWgoVW5kb2luZ10sKWYocGFnZSlmKDMyLik1NyBiKFRoZSkzNSBiKGZ1bmN0aW9uKWcKK0ZzKHJsX2V4dGVuZF9saW5lXykzOTAgMTk3MCB5KGJ1ZmZlcikyOSBiIEZ0KGlzKWgoYSltKHYpLTUKK2IoYWlsYWJsZSkzMyBiKHRvKWUoaW5jcmVhc2UpZyh0aGUpZyhtZW1vcnkpZihhbGxvKXMoY2F0ZWQpaSh0bylmCitGcyhybF9saW5lX2J1ZmZlcilwIEZ0KC4pMzM3MSAyMTQ1IHkoW1YpLTggYihhcmlhYmxlXSktMzU5OAorYiBGZyhpbnQpMzkgYiBGZihybClwIDQzMiAyMTQ1IFYgNTEgdyhwKXMob2luKW0odCkzOTAKKzIyNTQgeSBGdChUaGUpMzAgYihvXDAxM3NldCloKG9mKWcodGhlKWYoY3VycmVuKW0odCloKGN1cnNvcillKHApcworKG9zaXRpb24paShpbilmIEZzKHJsX2xpbmVfYnVmZmVyKWMgRnQoXCh0aGUpMzEgYiBGbihwKS01CitiKG9pbnQpOSBiIEZ0KFwpLikzMzcxIDI0MjkgeShbViktOCBiKGFyaWFibGVdKS0zNTk4CitiIEZnKGludCkzOSBiIEZmKHJsKXAgNDMyIDI0MjkgViA1MSB3KGVuZCkzOTAgMjUzOSB5CitGdChUaGUpMjcgYihuKW0odW0pbShiKXMoZXIpZyhvZiloKGMpbShoYXJhY3RlcnMpaChwcmVzZW4pbSh0KWYoaW4pZworRnMocmxfbGluZV9idWZmZXIpcCBGdCguKTM2IGIoV2hlbikyNyBiIEZzKHJsX3BvaW50KWYKK0Z0KGlzKWkoYXQpaCh0aGUpZihlbmQpMzkwIDI2NDggeShvZilqKHRoZSlmKGxpbmUsKWgKK0ZzKHJsX3BvaW50KWQgRnQoYW5kKWkgRnMocmxfZW5kKWYgRnQoYXJlKWgoZXF1YWwuKTMzNzEKKzI4MjMgeShbViktOCBiKGFyaWFibGVdKS0zNTk4IGIgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIKKzI4MjMgViA1MSB3KG1hcmspMzkwIDI5MzIgeSBGdChUaGUpZCBGaShtYXJrKTQyIGIgRnQoXChzYSltKHYpbShlZClkKHApCitzKG9zaXRpb25cKSllKGluKWcodGhlKWcoY3VycmVuKW0odClmKGxpbmUuKTYxIGIoSWYpMzYKK2Ioc2V0LClrKHRoZSlkKG1hcmspZihhbmQpaChwKXMob2luKW0odClmKGRlXDAxNG5lKWgoYSkzOTAKKzMwNDIgeSBGbihyKS01IGIoZSlnKGdpb24pcCBGdCguKTMzNzEgMzIxNyB5KFtWKWQoYXJpYWJsZV0pLTM1OTgKK2IgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIgMzIxNyBWIDUxIHcoZG9uZSkzOTAgMzMyNiB5CitGdChTZXR0aW5nKTIyIGIodGhpcylnKHRvKWcoYSlnKG5vbi16ZXJvKWcodiktNSBiKGFsdWUpMjMKK2IoY2F1c2VzKWYoUmVhZGxpbmUpZyh0bylnKHJldHVybilmKHRoZSloKGN1cnJlbiltKHQpZihsaW5lKWgKKyhpbW1lZGlhdGVseSktOCBiKC4pMzM3MSAzNTAxIHkoW1YpZyhhcmlhYmxlXSktMzU5OCBiCitGZyhpbnQpMzkgYiBGZihybClwIDQzMiAzNTAxIFYgNTEgdyhuKW0odW0pcCA3MDMgMzUwMQorViA1MCB3KGMpbShoYXJzKXAgMTAxMyAzNTAxIFYgNDkgdyh0bylwIDExNjQgMzUwMSBWIDUxCit3KHJlYWQpMzkwIDM2MTEgeSBGdChTZXR0aW5nKTM0IGIodGhpcyllKHRvKWkoYSlmKHApcyhvc2l0aXYpbShlKWgodiktNQorYihhbHVlKTM0IGIoYilzKGVmb3JlKWUoY2FsbGluZylpIEZzKHJlYWRsaW5lXChcKSlkIEZ0KGNhdXNlcylpCisoUmVhZGxpbmUpZyh0byloKHJldHVybikzOTAgMzcyMCB5KGFmdGVyKWkoYWNjZXB0aW5nKWgodGhhdClnKG1hbiltKHkpZQorKGMpbShoYXJhY3RlcnMsKWsocmF0aGVyKWQodGhhbilmKHJlYWRpbmcpaCh1cCllKHRvKWooYSlmKGMpbShoYXJhY3RlcikKK2goYilzKG91bmQpMzkwIDM4MzAgeSh0bykzMSBiIEZzKGFjY2VwdC1saW5lKXAgRnQoLikzMzcxCis0MDA0IHkoW1YpLTggYihhcmlhYmxlXSktMzU5OCBiIEZnKGludCkzOSBiIEZmKHJsKXAgNDMyCis0MDA0IFYgNTEgdyhwKXMoZW5kaW5nKXAgODg0IDQwMDQgViA0OCB3KGlucHV0KTM5MCA0MTE0Cit5IEZ0KFNldHRpbmcpMjYgYih0aGlzKWYodG8paChhKWYodiktNSBiKGFsdWUpMjYgYihtYWspbShlcylnKGl0KWcodGhlKQorZihuZXh0KWcoayltKGV5c3Ryb2spbShlKWkocmVhZC4pMzkgYihUaGlzKTI0IGIoaXMpaShhKWYodyltKGEpbSh5KWgKKyh0bylnKHN0dVwwMTMpZihhKWcoc2luZ2xlKTM5MCA0MjI0IHkoYyltKGhhcmFjdGVyKTMyCitiKGluKW0odG8pZih0aGUpZyhpbnB1dCllKHN0cmVhbS4pMzM3MSA0Mzk4IHkoW1YpLTggYihhcmlhYmxlXSktMzU5OAorYiBGZyhpbnQpMzkgYiBGZihybClwIDQzMiA0Mzk4IFYgNTEgdyhkaXNwYXRjKW0oaGluZykzOTAKKzQ1MDggeSBGdChTZXQpMjQgYih0byloKGEpZyhub24temVybylnKHYpLTUgYihhbHVlKTI0CitiKGlmKWgoYSlmKGZ1bmN0aW9uKWcoaXMpZyhiKXMoZWluZylnKGNhbGxlZClpKGZyb20pZChhKWkoayltKGV5KWcKKyhiaW5kaW5nOylnKHplcm8pZyhvdGhlcndpc2UuKTM5MCA0NjE3IHkoQXBwbGljYXRpb24pMzcKK2IoZnVuY3Rpb25zKWUoY2FuKWgodGVzdCloKHRoaXMpZSh0bylpKGRpc2NvKW0odiltKGVyKWcod2hldGhlcillKHRoZXkpCitoKHcpbShlcmUpZyhjYWxsZWQpaChkaXJlY3RseSlmKG9yKTM5MCA0NzI3IHkoYiltKHkpMzAKK2IoUmVhZGxpbmUncyloKGRpc3BhdGMpbShoaW5nKWcobWVjKW0oaGFuaXNtLikzMzcxIDQ5MDIKK3koW1YpLTggYihhcmlhYmxlXSktMzU5OCBiIEZnKGludCkzOSBiIEZmKHJsKXAgNDMyIDQ5MDIKK1YgNTEgdyhlcmFzZSlwIDczNyA0OTAyIFYgNDkgdyhlbXB0KW0oeSlwIDExMDAgNDkwMiBWCis1MCB3KGxpbmUpMzkwIDUwMTEgeSBGdChTZXR0aW5nKTQ3IGIodGhpcyllKHRvKWkoYSlmKG5vbi16ZXJvKWgodiktNQorYihhbHVlKTQ2IGIoY2F1c2VzKWgoUmVhZGxpbmUpZih0byloKGNvbXBsZXRlbHkpZyhlcmFzZSlnKHRoZSlmKGN1cnJlbikKK20odCkzOTAgNTEyMSB5KGxpbmUsKWYoaW5jbHVkaW5nKWMoYW4pbSh5KWcocHJvbXB0LClqKGFuKW0oeSlkKHRpbWUpaAorKGEpZyhuZXdsaW5lKWYoaXMpaCh0KW0oeXApcyhlZClmKGFzKWcodGhlKWgob25seSlmKGMpbShoYXJhY3RlcilpKG9uKQorMzkwIDUyMzAgeShhbikzNiBiKG90aGVyd2lzZS1lbXB0KW0oeSlpKGxpbmUuKTU4IGIoVGhlKTM2CitiKGN1cnNvcilnKGlzKWcobW8pbSh2KW0oZWQpaCh0bylnKHRoZSlnKGIpcyhlZ2lubmluZyllKG9mKWkodGhlKWYKKyhuZXdseS1ibGFuaykzOTAgNTM0MCB5KGxpbmUuKXAgZW9wIGVuZAorJSVQYWdlOiAyNSAyOQorVGVYRGljdCBiZWdpbiAyNSAyOCBib3AgMTUwIC0xMTYgYSBGdChDaGFwdGVyKTMwIGIoMjopNDEKK2IoUHJvZ3JhbW1pbmcpMzAgYih3aXRoKWcoR05VKWgoUmVhZGxpbmUpMTY4MyBiKDI1KTMzNzEKKzI5OSB5KFtWKS04IGIoYXJpYWJsZV0pLTM1OTggYiBGZyhjaGFyKTM5IGIoKilnIEZmKHJsKXAKKzU3NSAyOTkgMzUgNSB2IDUwIHcocHJvbXB0KTM5MCA0MDggeSBGdChUaGUpMjYgYihwcm9tcHQpZihSZWFkbGluZSlpCisodXNlcy4pMzggYihUaGlzKTI2IGIoaXMpZyhzZXQpaChmcm9tKWUodGhlKWkoYXJndW1lbiltKHQpZih0byloCitGcyhyZWFkbGluZVwoXCkpcCBGdCgsKWQoYW5kKWkoc2hvdWxkKTM5MCA1MTggeShub3QpaChiKXMoZSlmKGFzc2lnbmVkKQoraCh0byloKGRpcmVjdGx5KS04IGIoLik0MSBiKFRoZSkyNiBiIEZzKHJsX3NldF9wcm9tcHRcKFwpKWQKK0Z0KGZ1bmN0aW9uKWooXChzZWUpaShTZWN0aW9uKWcoMi40LjYpaChbUmVkaXMtKTM5MCA2MjgKK3kocGxhKW0oeV0sKWkocGFnZSloKDMyXCkpZihtYSltKHkpZyhiKXMoZSlmKHVzZWQpZih0bylqKG1vKXMoZGlmeSlkCisodGhlKWkocHJvbXB0KWUoc3RyaW5nKWgoYWZ0ZXIpaChjYWxsaW5nKWggRnMocmVhZGxpbmVcKFwpKXAKK0Z0KC4pMzM3MSA4MjUgeShbViktOCBiKGFyaWFibGVdKS0zNTk4IGIgRmcoaW50KTM5IGIKK0ZmKHJsKXAgNDMyIDgyNSBWIDUxIHcoYWxyZWFkeSlwIDg1MSA4MjUgViA0OSB3KHByb21wdGVkKTM5MAorOTM0IHkgRnQoSWYpZChhbilnKGFwcGxpY2F0aW9uKWkod2lzaGVzKWQodG8paShkaXNwbGEpbSh5KWcodGhlKWYKKyhwcm9tcHQpZyhpdHNlbGYsKWkocmF0aGVyKWYodGhhbilmKGhhKW0odiltKGUpaChSZWFkbGluZSlnKGRvKTM5MAorMTA0NCB5KGl0KWModGhlKWcoXDAxNHJzdClmKHRpbWUpaSBGcyhyZWFkbGluZVwoXCkpYworRnQoaXMpaShjYWxsZWQsKWooaXQpZShzaG91bGQpZihzZXQpaCh0aGlzKWcodiktNSBiKGFyaWFibGUpMzQKK2IodG8pZihhKWcobm9uLXplcm8pZyh2KS01IGIoYWx1ZSkzOTAgMTE1NCB5KGFmdGVyKTM4CitiKGRpc3BsYSltKHlpbmcpaCh0aGUpZihwcm9tcHQuKTYzIGIoVGhlKTM3IGIocHJvbXB0KWcobSltKHVzdCloKGFsc28paAorKGIpcyhlKWUocGFzc2VkKWcoYXMpaSh0aGUpZihhcmd1bWVuKW0odClnKHRvKTM5MCAxMjYzCit5IEZzKHJlYWRsaW5lXChcKSkzMCBiIEZ0KHNvKWoodGhlKWgocmVkaXNwbGEpbSh5KWYoZnVuY3Rpb25zKWYoY2FuKWkKKyh1cClzKGRhdGUpZSh0aGUpaChkaXNwbGEpbSh5KWcocHJvcClzKGVybHkpLTggYiguKTQ4CitiKFRoZSkzMiBiKGNhbGxpbmcpMzkwIDEzNzMgeShhcHBsaWNhdGlvbilnKGlzKWUocmVzcClzKG9uc2libGUpZyhmb3IpZworKG1hbmFnaW5nKWgodGhlKWYodiktNSBiKGFsdWU7KTMxIGIoUmVhZGxpbmUpZyhuZXYpbShlcilnKHNldHMpZyhpdC4pCiszMzcxIDE1NzAgeShbViktOCBiKGFyaWFibGVdKS0zNTk4IGIgRmcoY29uc3QpNDAgYihjaGFyKWYoKilnCitGZihybClwIDg3NSAxNTcwIFYgNTAgdyhsaWJyYXJ5KXAgMTI2MyAxNTcwIFYgNTAgdyh2KW0oZXJzaW9uKTM5MAorMTY4MCB5IEZ0KFRoZSkzMCBiKHYpbShlcnNpb24paChuKW0odW0pbShiKXMoZXIpZShvZiloKHRoaXMpaChyZXZpc2lvbikKK2Yob2YpaCh0aGUpZihsaWJyYXJ5KS04IGIoLikzMzcxIDE4NzcgeShbVilnKGFyaWFibGVdKS0zNTk4CitiIEZnKGludCkzOSBiIEZmKHJsKXAgNDMyIDE4NzcgViA1MSB3KHJlYWRsaW5lKXAgODg0CisxODc3IFYgNDggdyh2KW0oZXJzaW9uKTM5MCAxOTg3IHkgRnQoQW4pMzQgYihpbiltKHRlZ2VyKWgoZW5jbylzKGRpbmcpZgorKHRoZSlnKGN1cnJlbiltKHQpZyh2KW0oZXJzaW9uKWgob2YpZih0aGUpZyhsaWJyYXJ5KS04CitiKC4pNTIgYihUaGUpMzQgYihlbmNvKXMoZGluZylnKGlzKWcob2YpZyh0aGUpZyhmb3JtKTM5MAorMjA5NiB5KDB4KXAgRmkoTU1tbSlwIEZ0KCwpMzkgYih3aGVyZSlkIEZpKE1NKTQ3IGIgRnQoaXMpMzYKK2IodGhlKWgodCltKHcpbShvLWRpZ2l0KWkobWEpNSBiKGpvcikzNiBiKHYpbShlcnNpb24paChuKW0odW0pbShiKXMKKyhlciwpZyhhbmQpZiBGaShtbSlnIEZ0KGlzKWgodGhlKWYodCltKHcpbShvLSkzOTAgMjIwNgoreShkaWdpdClpKG1pbm9yKWYodiltKGVyc2lvbiloKG4pbSh1bSltKGIpcyhlci4pNjAgYihGKS04CitiKG9yKTM4IGIoZXhhbXBsZSwpaShmb3IpZChSZWFkbGluZS00LjIsKWsgRnMocmxfcmVhZGxpbmVfdmVyc2lvbikzOTAKKzIzMTUgeSBGdCh3KW0ob3VsZCkzMCBiKGhhKW0odiltKGUpaSh0aGUpZSh2KS01IGIoYWx1ZSkzMQorYigweDA0MDIuKTMzNzEgMjUxMyB5KFtWKS04IGIoYXJpYWJsZV0pLTM1OTggYiBGZyhpbnQpMzkKK2IgRmYocmwpcCA0MzIgMjUxMyBWIDUxIHcoZ24pbSh1KXAgNjY1IDI1MTMgViA0OSB3KHJlYWRsaW5lKXAKKzExMTUgMjUxMyBWIDQ5IHcocCkzOTAgMjYyMiB5IEZ0KEFsdyltKGEpbSh5cykzMiBiKHNldClmKHRvKWcoMSwpZworKGRlbm90aW5nKWYodGhhdCloKHRoaXMpZyhpcylmIEZtKGdudSlnIEZ0KHJlYWRsaW5lKWgocmF0aGVyKWYodGhhbilnCisoc29tZSloKGVtKW0odWxhdGlvbi4pMzM3MSAyODE5IHkoW1YpLTggYihhcmlhYmxlXSktMzU5OAorYiBGZyhjb25zdCk0MCBiKGNoYXIpZigqKWcgRmYocmwpcCA4NzUgMjgxOSBWIDUwIHcodGVybWluYWwpcAorMTM0OSAyODE5IFYgNDkgdyhuYW1lKTM5MCAyOTI5IHkgRnQoVGhlKTI4IGIodGVybWluYWwpZyh0KW0oeXApcyhlLCloCisodXNlZCllKGZvciloKGluaXRpYWxpemF0aW9uLik0MyBiKElmKTI4IGIobm90KWcoc2V0KWgoYiltKHkpZSh0aGUpaQorKGFwcGxpY2F0aW9uLCloKFJlYWRsaW5lKWYoc2V0cykzOTAgMzAzOSB5KHRoaXMpaCh0byloKHRoZSlnKHYpLTUKK2IoYWx1ZSkzMSBiKG9mKWYodGhlKWggRnMoVEVSTSllIEZ0KGVuKW0odmlyb25tZW4pbSh0KWkodiktNQorYihhcmlhYmxlKTMxIGIodGhlKWcoXDAxNHJzdCllKHRpbWUpaihpdCllKGlzKWgoY2FsbGVkLikzMzcxCiszMjM2IHkoW1YpLTggYihhcmlhYmxlXSktMzU5OCBiIEZnKGNvbnN0KTQwIGIoY2hhcilmKCopZworRmYocmwpcCA4NzUgMzIzNiBWIDUwIHcocmVhZGxpbmUpcCAxMzI2IDMyMzYgViA0OCB3KG5hbWUpMzkwCiszMzQ1IHkgRnQoVGhpcykzMCBiKHYpLTUgYihhcmlhYmxlKTMyIGIoaXMpZyhzZXQpZih0byloKGEpZyh1bmlxdWUpZQorKG5hbWUpaChiKW0oeSlnKGVhYyltKGgpaShhcHBsaWNhdGlvbilmKHVzaW5nKWYoUmVhZGxpbmUuKTQ0CitiKFRoZSkzMCBiKHYpLTUgYihhbHVlKTM5MCAzNDU1IHkoYWxsbyltKHdzKTI5IGIoY29uZGl0aW9uYWwpaChwYXJzaW5nKQorZChvZiloKHRoZSloKGlucHV0cmMpZShcMDE0bGUpaChcKHNlZSloKFNlY3Rpb24pZygxLjMuMilnKFtDb25kaXRpb25hbCkKK2coSW5pdClmKENvbi0pMzkwIDM1NjUgeShzdHJ1Y3RzXSwpaihwYWdlKWcoOVwpLikzMzcxCiszNzYyIHkoW1YpLTggYihhcmlhYmxlXSktMzU5OCBiIEZnKEZJTEUpMzkgYigqKWcgRmYocmwpcAorNTc1IDM3NjIgViA1MCB3KGluc3RyZWFtKTM5MCAzODcxIHkgRnQoVGhlKWgoc3RkaW8paShzdHJlYW0pZihmcm9tKWcKKyh3aGljKW0oaClmKFJlYWRsaW5lKWkocmVhZHMpZihpbnB1dC4pNzEgYihJZik0MSBiIEZzKE5VTEwpcAorRnQoLClpKFJlYWRsaW5lKWUoZGVmYXVsdHMpZyh0bykzOTAgMzk4MSB5IEZpKHN0ZGluKXAKK0Z0KC4pMzM3MSA0MTc4IHkoW1YpLTggYihhcmlhYmxlXSktMzU5OCBiIEZnKEZJTEUpMzkKK2IoKilnIEZmKHJsKXAgNTc1IDQxNzggViA1MCB3KG91dHN0cmVhbSkzOTAgNDI4OCB5IEZ0KFRoZSkzNAorYihzdGRpbyloKHN0cmVhbSlmKHRvKWkod2hpYyltKGgpZShSZWFkbGluZSloKHApcyhlcmZvcm1zKWUob3V0cHV0Lik1MgorYihJZikzNCBiIEZzKE5VTEwpcCBGdCgsKWgoUmVhZGxpbmUpZyhkZWZhdWx0cylmKHRvKTM5MAorNDM5OCB5IEZpKHN0ZG91dClwIEZ0KC4pMzM3MSA0NTk1IHkoW1YpLTggYihhcmlhYmxlXSktMzU5OAorYiBGZyhpbnQpMzkgYiBGZihybClwIDQzMiA0NTk1IFYgNTEgdyhwcmVmZXIpcCA3ODIgNDU5NQorViA0OSB3KGVuKW0odilwIDEwMDUgNDU5NSBWIDUwIHcod2luc2l6ZSkzOTAgNDcwNCB5IEZ0KElmKTI4CitiKG5vbi16ZXJvLCloKFJlYWRsaW5lKWcoZ2l2KW0oZXMpaCh2KS01IGIoYWx1ZXMpMjkgYihmb3VuZCllKGluKWgodGhlKQorZyBGcyhMSU5FUylmIEZ0KGFuZCloIEZzKENPTFVNTlMpZSBGdChlbiltKHZpcm9ubWVuKW0odClqKHYpLTUKK2IoYXJpLSkzOTAgNDgxNCB5KGFibGVzKTQxIGIoZ3JlYXRlciloKHByZWNlZGVuY2UpZyh0aGFuKWUodiktNQorYihhbHVlcyk0MSBiKGZldGMpbShoZWQpaChmcm9tKWUodGhlKWgoayltKGVybmVsKWgod2hlbillKGNvbXB1dGluZyloCisodGhlKTM5MCA0OTI0IHkoc2NyZWVuKTMwIGIoZGltZW5zaW9ucy4pMzM3MSA1MTIxIHkoW1YpLTgKK2IoYXJpYWJsZV0pLTM1OTggYiBGZyhybF9jb21tYW5kX2Z1bmNfdCk0MyBiKCopYyBGZihybClwCisxMjU1IDUxMjEgViA1MCB3KGxhc3QpcCAxNDgzIDUxMjEgViA1MCB3KGZ1bmMpMzkwIDUyMzAKK3kgRnQoVGhlKTM0IGIoYWRkcmVzcylnKG9mKWgodGhlKWcobGFzdCloKGNvbW1hbmQpZShmdW5jdGlvbilnCisoUmVhZGxpbmUpaShleGVjdXRlZC4pNTUgYihNYSltKHkpMzUgYihiKXMoZSlnKHVzZWQpZih0byloKHRlc3QpMzkwCis1MzQwIHkod2hldGhlcikzMCBiKG9yKWcobm90KWgoYSlmKGZ1bmN0aW9uKWgoaXMpZihiKXMoZWluZylnKGV4ZWN1dGVkKQoraCh0KW0od2ljZSloKGluKWUoc3VjY2Vzc2lvbiwpaChmb3IpZihleGFtcGxlLilwIGVvcAorZW5kCislJVBhZ2U6IDI2IDMwCitUZVhEaWN0IGJlZ2luIDI2IDI5IGJvcCAxNTAgLTExNiBhIEZ0KDI2KTI2MDAgYihHTlUpMzEKK2IoUmVhZGxpbmUpZyhMaWJyYXJ5KTMzNzEgMjk5IHkoW1YpLTggYihhcmlhYmxlXSktMzU5OAorYiBGZyhybF9ob29rX2Z1bmNfdCk0MiBiKCopZCBGZihybClwIDEwOTggMjk5IDM1IDUgdgorNTAgdyhzdGFydHVwKXAgMTUxNCAyOTkgViA0OSB3KGhvKXMob2spMzkwIDQwOCB5IEZ0KElmKTM0CitiKG5vbi16ZXJvLClpKHRoaXMpZShpcyloKHRoZSlmKGFkZHJlc3MpZihvZilpKGEpZyhmdW5jdGlvbilmKHRvKWgKKyhjYWxsKWcoanVzdClmKGIpcyhlZm9yZSlnIEZzKHJlYWRsaW5lKWUgRnQocHJpbiltKHRzKWkodGhlKTM5MAorNTE4IHkoXDAxNHJzdCljKHByb21wdC4pMzM3MSA3MDQgeShbViktOCBiKGFyaWFibGVdKS0zNTk4CitiIEZnKHJsX2hvb2tfZnVuY190KTQyIGIoKilkIEZmKHJsKXAgMTA5OCA3MDQgViA1MCB3KHByZSlwCisxMzEyIDcwNCBWIDUwIHcoaW5wdXQpcCAxNjMxIDcwNCBWIDQ5IHcoaG8pcyhvaykzOTAgODE0Cit5IEZ0KElmKWMobm9uLXplcm8sKWoodGhpcylkKGlzKWcodGhlKWgoYWRkcmVzcylmKG9mKWcoYSloKGZ1bmN0aW9uKWYKKyh0bylpKGNhbGwpZihhZnRlcilnKHRoZSlnKFwwMTRyc3QpZihwcm9tcHQpZihoYXMpaShiKXMoZWVuKTM5MAorOTI0IHkocHJpbiltKHRlZCkzMCBiKGFuZClnKGp1c3QpZihiKXMoZWZvcmUpaCBGcyhyZWFkbGluZSlmCitGdChzdGFydHMpaChyZWFkaW5nKWgoaW5wdXQpZShjKW0oaGFyYWN0ZXJzLikzMzcxIDExMTAKK3koW1YpLTggYihhcmlhYmxlXSktMzU5OCBiIEZnKHJsX2hvb2tfZnVuY190KTQyIGIoKilkCitGZihybClwIDEwOTggMTExMCBWIDUwIHcoZXYpbShlbiltKHQpcCAxNDE3IDExMTAgViA0OQordyhobylzKG9rKTM5MCAxMjE5IHkgRnQoSWYpaChub24temVybywpayh0aGlzKWQoaXMpZih0aGUpaChhZGRyZXNzKWYKKyhvZiloKGEpZyhmdW5jdGlvbilmKHRvKWgoY2FsbCloKHApcyhlcmlvKXMoZGljYWxseSlmKHdoZW4pZihSZWFkbGluZSloCisoaXMpMzkwIDEzMjkgeSh3KW0oYWl0aW5nKTMwIGIoZm9yKWYodGVybWluYWwpaChpbnB1dC4pMzkKK2IoQnkpMzAgYihkZWZhdWx0LClnKHRoaXMpZih3aWxsKWcoYilzKGUpZyhjYWxsZWQpaChhdClnKG1vc3QpZih0ZW4paAorKHRpbWVzKWYoYSloKHNlY29uZCkzOTAgMTQzOSB5KGlmKWcodGhlcmUpaChpcylmKG5vKWgoayltKGV5YilzKG9hcmQpZgorKGlucHV0LikzMzcxIDE2MjUgeShbViktOCBiKGFyaWFibGVdKS0zNTk4IGIgRmcocmxfZ2V0Y19mdW5jX3QpNDIKK2IoKilkIEZmKHJsKXAgMTA5OCAxNjI1IFYgNTAgdyhnZXRjKXAgMTM1NCAxNjI1IFYgNTAKK3coZnVuY3Rpb24pMzkwIDE3MzQgeSBGdChJZikzMCBiKG5vbi16ZXJvLCloKFJlYWRsaW5lKWcod2lsbClnKGNhbGwpaAorKGluZGlyZWN0bHkpZSh0aHJvdWdoKWcodGhpcyloKHApcyhvaW4pbSh0ZXIpZih0byloKGdldCloKGEpZShjKW0KKyhoYXJhY3RlcilpKGZyb20pMzkwIDE4NDQgeSh0aGUpMzkgYihpbnB1dCllKHN0cmVhbS4pNjUKK2IoQnkpMzkgYihkZWZhdWx0LClpKGl0KWUoaXMpZihzZXQpaCh0bylnIEZzKHJsX2dldGMpcAorRnQoLClnKHRoZSlnKGRlZmF1bHQpZihSZWFkbGluZSloKGMpbShoYXJhY3RlcikzOTAgMTk1NAoreShpbnB1dCkyOSBiKGZ1bmN0aW9uKWgoXChzZWUpaShTZWN0aW9uKWYoMi40LjgpaChbQ2hhcmFjdGVyKWYoSW5wdXRdLCkKK2YocGFnZSloKDM0XCkuKTMzNzEgMjE0MCB5KFtWKS04IGIoYXJpYWJsZV0pLTM1OTggYiBGZyhybF92b2lkZnVuY190KTQyCitiKCopZCBGZihybClwIDEwNDYgMjE0MCBWIDUwIHcocmVkaXNwbGEpbSh5KXAgMTU0NiAyMTQwCitWIDQ5IHcoZnVuY3Rpb24pMzkwIDIyNTAgeSBGdChJZilkKG5vbi16ZXJvLClpKFJlYWRsaW5lKWUod2lsbCloKGNhbGwpZworKGluZGlyZWN0bHkpZih0aHJvdWdoKWcodGhpcylnKHApcyhvaW4pbSh0ZXIpZyh0bylnKHVwKXMoZGF0ZSlnKHRoZSlnCisoZGlzcGxhKW0oeSkzOTAgMjM1OSB5KHdpdGgpMjcgYih0aGUpZyhjdXJyZW4pbSh0KWcoY29uKW0odGVuKW0odHMpaAorKG9mKWYodGhlKWgoZWRpdGluZylmKGJ1XDAxM2VyLikzOSBiKEJ5KTI3IGIoZGVmYXVsdCwpaChpdClnKGlzKWYoc2V0KWcKKyh0byloIEZzKHJsX3JlZGlzcGxheSlwIEZ0KCwpMzkwIDI0NjkgeSh0aGUpaihkZWZhdWx0KWYoUmVhZGxpbmUpaAorKHJlZGlzcGxhKW0oeSlnKGZ1bmN0aW9uKWYoXChzZWUpaChTZWN0aW9uKWcoMi40LjYpaChbUmVkaXNwbGEpbSh5XSwpZworKHBhZ2UpZigzMlwpLikzMzcxIDI2NTUgeShbViktOCBiKGFyaWFibGVdKS0zNTk4IGIgRmcocmxfdmludGZ1bmNfdCk0MgorYigqKWQgRmYocmwpcCAxMDQ2IDI2NTUgViA1MCB3KHByZXApcCAxMzI0IDI2NTUgViA0OQordyh0ZXJtKXAgMTYxMyAyNjU1IFYgNTEgdyhmdW5jdGlvbikzOTAgMjc2NSB5IEZ0KElmKTI0CitiKG5vbi16ZXJvLClpKFJlYWRsaW5lKWUod2lsbCloKGNhbGwpZyhpbmRpcmVjdGx5KWcodGhyb3VnaCllKHRoaXMpaChwKQorcyhvaW4pbSh0ZXIpZyh0byloKGluaXRpYWxpemUpaCh0aGUpZSh0ZXJtaW5hbC4pMzkwIDI4NzQKK3koVGhlKTM3IGIoZnVuY3Rpb24pZih0YWspbShlcylqKGEpZShzaW5nbGUpaChhcmd1bWVuKW0odCwpaShhbilkCitGcyhpbnQpZiBGdChcMDE1YWcpaCh0aGF0KWgoc2EpbSh5cylnKHdoZXRoZXIpZShvciloKG5vdClnKHRvKWgodXNlKTM5MAorMjk4NCB5KGVpZ2gpbSh0LWJpdCllKGMpbShoYXJhY3RlcnMuKTUzIGIoQnkpMzUgYihkZWZhdWx0LClnKHRoaXMpZihpcykKK2coc2V0KWgodG8pZyBGcyhybF9wcmVwX3Rlcm1pbmFsKTI5IGIgRnQoXChzZWUpMzUgYihTZWN0aW9uKWcoMi40LjkpMzkwCiszMDkzIHkoW1QpLTggYihlcm1pbmFsKTMxIGIoTWFuYWdlbWVuKW0odF0sKWkocGFnZSllKDM1XCkuKTMzNzEKKzMyODAgeShbViktOCBiKGFyaWFibGVdKS0zNTk4IGIgRmcocmxfdm9pZGZ1bmNfdCk0MiBiKCopZAorRmYocmwpcCAxMDQ2IDMyODAgViA1MCB3KGRlcHJlcClwIDE0NDEgMzI4MCBWIDQ5IHcodGVybSlwCisxNzMwIDMyODAgViA1MCB3KGZ1bmN0aW9uKTM5MCAzMzg5IHkgRnQoSWYpZChub24temVybywpaihSZWFkbGluZSllCisod2lsbClnKGNhbGwpaChpbmRpcmVjdGx5KWYodGhyb3VnaClmKHRoaXMpZyhwKXMob2luKW0odGVyKWgodG8pZworKHJlc2V0KWcodGhlKWcodGVybWluYWwuKTM5MCAzNDk5IHkoVGhpcylkKGZ1bmN0aW9uKWgoc2hvdWxkKWYodW5kbylnCisodGhlKWgoZVwwMTNlY3RzKWgob2YpZiBGcyhybF9wcmVwX3Rlcm1fZnVuY3Rpb24pcCBGdCguKTQ5CitiKEJ5KTM1IGIoZGVmYXVsdCwpaSh0aGlzKTM5MCAzNjA4IHkoaXMpMzAgYihzZXQpaCh0bylnCitGcyhybF9kZXByZXBfdGVybWluYWwpMjYgYiBGdChcKHNlZSkzMSBiKFNlY3Rpb24pZygyLjQuOSlpKFtUKS04CitiKGVybWluYWwpMzAgYihNYW5hZ2VtZW4pbSh0XSwpaihwYWdlKWUoMzVcKS4pMzM3MSAzNzk1Cit5KFtWKS04IGIoYXJpYWJsZV0pLTM1OTggYiBGZyhLZXltYXApNDAgYiBGZihybClwIDU4OQorMzc5NSBWIDUwIHcoZXhlY3V0aW5nKXAgMTExOCAzNzk1IFYgNDkgdyhrKW0oZXltYXApMzkwCiszOTA0IHkgRnQoVGhpcykzNSBiKHYpLTUgYihhcmlhYmxlKTM3IGIoaXMpZihzZXQpZyh0byloKHRoZSlmKGspbQorKGV5bWFwKWgoXChzZWUpZyhTZWN0aW9uKWYoMi40LjIpaShbS2V5bWFwc10sKWcocGFnZSllKDI4XCkpaShpbilkCisod2hpYyltKGgpMzkwIDQwMTQgeSh0aGUpYyhjdXJyZW4pbSh0bHkpZihleGVjdXRpbmcpaShyZWFkbGluZSllCisoZnVuY3Rpb24pZyh3KW0oYXMpaChmb3VuZC4pMzM3MSA0MjAwIHkoW1YpLTggYihhcmlhYmxlXSktMzU5OAorYiBGZyhLZXltYXApNDAgYiBGZihybClwIDU4OSA0MjAwIFYgNTAgdyhiaW5kaW5nKXAgMTAxNgorNDIwMCBWIDQ5IHcoayltKGV5bWFwKTM5MCA0MzEwIHkgRnQoVGhpcykzNSBiKHYpLTUgYihhcmlhYmxlKTM3CitiKGlzKWYoc2V0KWcodG8paCh0aGUpZihrKW0oZXltYXApaChcKHNlZSlnKFNlY3Rpb24pZigyLjQuMilpCisoW0tleW1hcHNdLClnKHBhZ2UpZSgyOFwpKWkoaW4pZCh3aGljKW0oaCkzOTAgNDQxOSB5KHRoZSljKGxhc3QpZyhrKW0KKyhleSlnKGJpbmRpbmcpZShvKXMoY2N1cnJlZC4pMzM3MSA0NjA2IHkoW1YpLTggYihhcmlhYmxlXSktMzU5OAorYiBGZyhjaGFyKTM5IGIoKilnIEZmKHJsKXAgNTc1IDQ2MDYgViA1MCB3KGV4ZWN1dGluZylwCisxMTA0IDQ2MDYgViA0OSB3KG1hY3JvKTM5MCA0NzE1IHkgRnQoVGhpcykzMCBiKHYpLTUgYihhcmlhYmxlKTMxCitiKGlzKWYoc2V0KWgodG8pZyh0aGUpZyh0ZXh0KWcob2YpZyhhbiltKHkpZihjdXJyZW4pbSh0bHktZXhlY3V0aW5nKWkKKyhtYWNyby4pMzM3MSA0OTAyIHkoW1YpLTggYihhcmlhYmxlXSktMzU5OCBiIEZnKGludCkzOQorYiBGZihybClwIDQzMiA0OTAyIFYgNTEgdyhyZWFkbGluZSlwIDg4NCA0OTAyIFYgNDggdyhzdGF0ZSkzOTAKKzUwMTEgeSBGdChBKWModiktNSBiKGFyaWFibGUpMzUgYih3aXRoKWYoYml0KWcodiktNSBiKGFsdWVzKTM1CitiKHRoYXQpZyhlbmNhcHN1bGF0ZSloKHRoZSllKGN1cnJlbiltKHQpaChSZWFkbGluZSlnKHN0YXRlLik1NAorYihBKTM0IGIoYml0KWgoaXMpZihzZXQpMzkwIDUxMjEgeSh3aXRoKWsodGhlKWcgRnMoUkxfU0VUU1RBVEUpYworRnQobWFjcm8sKTQxIGIoYW5kKWModW5zZXQpaCh3aXRoKWYodGhlKWggRnMoUkxfVU5TRVRTVEFURSlkCitGdChtYWNyby4pNjMgYihVc2UpMzkgYih0aGUpMzkwIDUyMzAgeSBGcyhSTF9JU1NUQVRFKTM0CitiIEZ0KG1hY3JvKWsodG8pZyh0ZXN0KWcod2hldGhlcilmKGEpaChwYXJ0aWN1bGFyKWYoc3RhdGUpaShiaXQpZShpcylnCisoc2V0Lik2MiBiKEN1cnJlbiltKHQpMzYgYihzdGF0ZSlqKGJpdHMpMzkwIDUzNDAgeShpbmNsdWRlOilwCitlb3AgZW5kCislJVBhZ2U6IDI3IDMxCitUZVhEaWN0IGJlZ2luIDI3IDMwIGJvcCAxNTAgLTExNiBhIEZ0KENoYXB0ZXIpMzAgYigyOik0MQorYihQcm9ncmFtbWluZykzMCBiKHdpdGgpZyhHTlUpaChSZWFkbGluZSkxNjgzIGIoMjcpMzkwCisyOTkgeSBGcyhSTF9TVEFURV9OT05FKTg3MCA0MDggeSBGdChSZWFkbGluZSkzMSBiKGhhcylmKG5vdCloKHkpbShldClnCisoYilzKGVlbilmKGNhbGxlZCwpaShub3IpZShoYXMpZyhpdCloKGIpcyhlZ3VuKWUodG8paShpbiltKHRpYWxpemUuKTM5MAorNTU1IHkgRnMoUkxfU1RBVEVfSU5JVElBTElaSU5HKTg3MCA2NjQgeSBGdChSZWFkbGluZSlnKGlzKWYKKyhpbml0aWFsaXppbmcpaihpdHMpZShpbiltKHRlcm5hbClnKGRhdGEpZyhzdHJ1Y3R1cmVzLikzOTAKKzgxMCB5IEZzKFJMX1NUQVRFX0lOSVRJQUxJWkVEKTg3MCA5MjAgeSBGdChSZWFkbGluZSlnKGhhcylmKGNvbXBsZXRlZCloCisoaXRzKWcoaW5pdGlhbGl6YXRpb24uKTM5MCAxMDY2IHkgRnMoUkxfU1RBVEVfVEVSTVBSRVBQRUQpODcwCisxMTc2IHkgRnQoUmVhZGxpbmUpZShoYXMpZyhtbylzKGRpXDAxNGVkKWUodGhlKWkodGVybWluYWwpZyhtbylzKGRlcylmCisodG8paShkbyllKGl0cylpKG8pbSh3billKGlucHV0KWcoYW5kKWcocmVkaXMtKTg3MCAxMjg1Cit5KHBsYSltKHkpLTggYiguKTM5MCAxNDMxIHkgRnMoUkxfU1RBVEVfUkVBRENNRCk4NzAgMTU0MQoreSBGdChSZWFkbGluZSkzMSBiKGlzKWYocmVhZGluZyloKGEpZyhjb21tYW5kKWYoZnJvbSlnKHRoZSlnKGspbShleWIpcworKG9hcmQuKTM5MCAxNjg3IHkgRnMoUkxfU1RBVEVfTUVUQU5FWFQpODcwIDE3OTcgeSBGdChSZWFkbGluZSloKGlzKWYKKyhyZWFkaW5nKWgobW9yZSlmKGlucHV0KWcoYWZ0ZXIpaChyZWFkaW5nKWYodGhlKWgobWV0YS1wcmVcMDE0eClmKGMpbQorKGhhcmFjdGVyLikzOTAgMTk0MyB5IEZzKFJMX1NUQVRFX0RJU1BBVENISU5HKTg3MCAyMDUyCit5IEZ0KFJlYWRsaW5lKWgoaXMpZihkaXNwYXRjKW0oaGluZyloKHRvKWcoYSlnKGNvbW1hbmQuKTM5MAorMjE5OCB5IEZzKFJMX1NUQVRFX01PUkVJTlBVVCk4NzAgMjMwOCB5IEZ0KFJlYWRsaW5lKWcoaXMpZihyZWFkaW5nKWgKKyhtb3JlKWYoaW5wdXQpZyh3aGlsZSlnKGV4ZWN1dGluZylpKGFuKWUoZWRpdGluZyloKGNvbW1hbmQuKTM5MAorMjQ1NCB5IEZzKFJMX1NUQVRFX0lTRUFSQ0gpODcwIDI1NjQgeSBGdChSZWFkbGluZSlnKGlzKWYocClzKGVyZm9ybWluZykKK2coYW4pZyhpbmNyZW1lbiltKHRhbClpKGhpc3RvcnkpZShzZWFyYyltKGguKTM5MCAyNzEwCit5IEZzKFJMX1NUQVRFX05TRUFSQ0gpODcwIDI4MTkgeSBGdChSZWFkbGluZSloKGlzKWYocClzKGVyZm9ybWluZylnKGEpZworKG5vbi1pbmNyZW1lbiltKHRhbClpKGhpc3RvcnkpZShzZWFyYyltKGguKTM5MCAyOTY2IHkKK0ZzKFJMX1NUQVRFX1NFQVJDSCk4NzAgMzA3NSB5IEZ0KFJlYWRsaW5lKTIxIGIoaXMpZihzZWFyYyltKGhpbmcpaShiYWMpCittKGt3KW0oYXJkKWUob3IpaChmb3J3KW0oYXJkKWUodGhyb3VnaCloKHRoZSloKGhpc3RvcnkpZihmb3IpZyhhKWgKKyhzdHJpbmcuKTM5MCAzMjIxIHkgRnMoUkxfU1RBVEVfTlVNRVJJQ0FSRyk4NzAgMzMzMSB5CitGdChSZWFkbGluZSkzMSBiKGlzKWYocmVhZGluZyloKGEpZyhuKW0odW1lcmljKWYoYXJndW1lbiltKHQuKTM5MAorMzQ3NyB5IEZzKFJMX1NUQVRFX01BQ1JPSU5QVVQpODcwIDM1ODcgeSBGdChSZWFkbGluZSkyNQorYihpcylmKGN1cnJlbiltKHRseSlnKGdldHRpbmcpaShpdHMpZihpbnB1dCllKGZyb20paChhKWcKKyhwcmV2aW91c2x5LWRlXDAxNG5lZClmKGspbShleWIpcyhvYXJkKTg3MCAzNjk2IHkobWFjcm8uKTM5MAorMzg0MiB5IEZzKFJMX1NUQVRFX01BQ1JPREVGKTg3MCAzOTUyIHkgRnQoUmVhZGxpbmUpMzEKK2IoaXMpZihjdXJyZW4pbSh0bHkpaChyZWFkaW5nKWYoYyltKGhhcmFjdGVycylpKGRlXDAxNG5pbmcpZShhKWcoayltCisoZXliKXMob2FyZCloKG1hY3JvLikzOTAgNDA5OCB5IEZzKFJMX1NUQVRFX09WRVJXUklURSk4NzAKKzQyMDggeSBGdChSZWFkbGluZSlnKGlzKWYoaW4pZyhvKW0odiltKGVyd3JpdGUpaShtbylzKGRlLikzOTAKKzQzNTQgeSBGcyhSTF9TVEFURV9DT01QTEVUSU5HKTg3MCA0NDYzIHkgRnQoUmVhZGxpbmUpZihpcylmKHApcworKGVyZm9ybWluZylnKHcpbShvcmQpZyhjb21wbGV0aW9uLikzOTAgNDYwOSB5IEZzKFJMX1NUQVRFX1NJR0hBTkRMRVIpCis4NzAgNDcxOSB5IEZ0KFJlYWRsaW5lKWgoaXMpZihjdXJyZW4pbSh0bHkpaChleGVjdXRpbmcpZyh0aGUpZworKHJlYWRsaW5lKWcoc2lnbmFsKWcoaGFuZGxlci4pMzkwIDQ4NjUgeSBGcyhSTF9TVEFURV9VTkRPSU5HKTg3MAorNDk3NSB5IEZ0KFJlYWRsaW5lKWcoaXMpZihwKXMoZXJmb3JtaW5nKWcoYW4pZyh1bmRvLikzOTAKKzUxMjEgeSBGcyhSTF9TVEFURV9ET05FKTg3MCA1MjMwIHkgRnQoUmVhZGxpbmUpZShoYXMpZyhyZWFkKWYoYSlpKGspbQorKGV5KWYoc2VxdWVuY2UpZyhiKXMob3VuZCllKHRvKWkgRnMoYWNjZXB0LWxpbmUpZCBGdChhbmQpaShpcyloKGFiKXMKKyhvdXQpZih0byk4NzAgNTM0MCB5KHJldHVybilpKHRoZSlpKGxpbmUpZyh0bylnKHRoZSlmKGNhbGxlci4pcAorZW9wIGVuZAorJSVQYWdlOiAyOCAzMgorVGVYRGljdCBiZWdpbiAyOCAzMSBib3AgMTUwIC0xMTYgYSBGdCgyOCkyNjAwIGIoR05VKTMxCitiKFJlYWRsaW5lKWcoTGlicmFyeSkzMzcxIDI5OSB5KFtWKS04IGIoYXJpYWJsZV0pLTM1OTgKK2IgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIgMjk5IDM1IDUgdiA1MSB3KGV4cGxpY2l0KXAKKzg1MiAyOTkgViA0OSB3KGFyZykzOTAgNDA4IHkgRnQoU2V0KWcodG8pZyhhKWgobm9uLXplcm8pZih2KS01CitiKGFsdWUpMzkgYihpZilnKGFuKWcoZXhwbGljaXQpaChuKW0odW1lcmljKWUoYXJndW1lbiltKHQpaSh3KW0oYXMpZgorKHNwKXMoZWNpXDAxNGVkKWYoYiltKHkpZyh0aGUpaCh1c2VyLikzOTAgNTE4IHkoT25seSkzMAorYih2KS01IGIoYWxpZCkzMCBiKGluKWgoYSlmKGJpbmRhYmxlKWcoY29tbWFuZClnKGZ1bmN0aW9uLikzMzcxCis3MDggeShbViktOCBiKGFyaWFibGVdKS0zNTk4IGIgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIKKzcwOCBWIDUxIHcobiltKHVtZXJpYylwIDg4NiA3MDggViA0OSB3KGFyZykzOTAgODE3IHkKK0Z0KFNldCk0NSBiKHRvKWgodGhlKWcodiktNSBiKGFsdWUpNDYgYihvZilmKGFuKW0oeSloKG4pbSh1bWVyaWMpZgorKGFyZ3VtZW4pbSh0KWgoZXhwbGljaXRseSloKHNwKXMoZWNpXDAxNGVkKWQoYiltKHkpaCh0aGUpaCh1c2VyKWUoYilzCisoZWZvcmUpMzkwIDkyNyB5KGV4ZWN1dGluZykyNyBiKHRoZSlmKGN1cnJlbiltKHQpZyhSZWFkbGluZSloCisoZnVuY3Rpb24uKTM4IGIoT25seSkyNiBiKHYpLTUgYihhbGlkKTI2IGIoaW4pZyhhKWcoYmluZGFibGUpZihjb21tYW5kKQoraChmdW5jdGlvbi4pMzM3MSAxMTE3IHkoW1YpLTggYihhcmlhYmxlXSktMzU5OCBiIEZnKGludCkzOQorYiBGZihybClwIDQzMiAxMTE3IFYgNTEgdyhlZGl0aW5nKXAgODMwIDExMTcgViA0OCB3KG1vKXMoZGUpMzkwCisxMjI2IHkgRnQoU2V0KTI1IGIodG8paChhKWcodiktNSBiKGFsdWUpMjUgYihkZW5vdGluZyloKFJlYWRsaW5lJ3MpZgorKGN1cnJlbiltKHQpZyhlZGl0aW5nKWgobW8pcyhkZS4pMzkgYihBKTI1IGIodiktNSBiKGFsdWUpMjUKK2Iob2YpaCBGaSgxKTMyIGIgRnQobWVhbnMpMjUgYihSZWFkbGluZSkzOTAgMTMzNiB5KGlzKTMwCitiKGN1cnJlbiltKHRseSloKGluKWYoZW1hY3MpaChtbylzKGRlOylmIEZpKDApMzggYiBGdChtZWFucykzMQorYih0aGF0KWYodmkpaChtbylzKGRlKWYoaXMpZyhhY3RpdiltKGUuKTE1MCAxNjAwIHkgRnIoMi40KTY4CitiKFJlYWRsaW5lKTQ3IGIoQ29uKWwodilsKGVuaWVuY2UpZihGKS0xMSBiKHVuY3Rpb25zKTE1MAorMTkzOSB5IEZoKDIuNC4xKTYzIGIoTmFtaW5nKTQxIGIoYSlnKEYpLTEwIGIodW5jdGlvbikyNzUKKzIxODYgeSBGdChUaGUpMzkgYih1c2VyKWcoY2FuKWgoZHluYW1pY2FsbHkpZyhjKW0oaGFuZ2UpaCh0aGUpZgorKGJpbmRpbmdzKWUob2YpaShrKW0oZXlzKWgod2hpbGUpZSh1c2luZyloKFJlYWRsaW5lLik2OQorYihUaGlzKTM5IGIoaXMpMTUwIDIyOTYgeShkb25lKWUoYiltKHkpZihyZXByZXNlbiltKHRpbmcpaCh0aGUpZworKGZ1bmN0aW9uKWcod2l0aClmKGEpaShkZXNjcmlwdGl2KW0oZSlmKG5hbWUuKTYxIGIoVGhlKTM2CitiKHVzZXIpZyhpcyloKGFibGUpZyh0byloKHQpbSh5cClzKGUpZih0aGUpMTUwIDI0MDUgeShkZXNjcmlwdGl2KW0oZSkzMQorYihuYW1lKWcod2hlbillKHJlZmVycmluZyloKHRvKWgodGhlKWcoZnVuY3Rpb24uKTQwIGIoVGgpbSh1cywpMzAKK2IoaW4pZyhhbilnKGluaXQpaChcMDE0bGUsKWYob25lKWgobWlnaCltKHQpZyhcMDE0bmQpMzkwCisyNTQzIHkgRnMoTWV0YS1SdWJvdXQ6KTkyIGIoYmFja3dhcmQta2lsbC13b3JkKTI3NSAyNjgwCit5IEZ0KFRoaXMpMzkgYihiaW5kcylmKHRoZSlpKGspbShleXN0cm9rKW0oZSkxMzIyIDI2NzcKK3kgRmsoaClwIDEzNDYgMjYyNCA0MTcgNCB2IDEzNDYgMjY4MCBhIEZqKE1ldGEtUnViKXIob3V0KXAKKzEzNDYgMjY5NSBWIDE3NTkgMjY3NyBhIEZrKGkpMTgyOCAyNjgwIHkgRnQodG8paCh0aGUpZihmdW5jdGlvbilnCitGbihkZXNjcmlwdGl2ZWx5KTQ5IGIgRnQobmFtZWQpMzkgYiBGcyhiYWNrd2FyZC0pMTUwCisyNzg5IHkoa2lsbC13b3JkKXAgRnQoLik1OSBiKFkpLTggYihvdSwpMzkgYihhcylmKHRoZSlmKHByb2dyYW1tZXIsKWkKKyhzaG91bGQpZChiaW5kKWcodGhlKWgoZnVuY3Rpb25zKWcoeSltKG91KWgod3JpdGUpZih0byloKGRlc2NyaXB0aXYpbQorKGUpMTUwIDI4OTkgeShuYW1lcykzMCBiKGFzKWgodyltKGVsbC4pNDIgYihSZWFkbGluZSkzMQorYihwcm8pbSh2aWRlcylmKGEpaChmdW5jdGlvbilmKGZvcilnKGRvaW5nKWcodGhhdDopMzM1MAorMzA4OSB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkgYiBGZyhpbnQpMzkgYiBGZihybClwIDQzMgorMzA4OSAzNSA1IHYgNTEgdyhhZGQpcCA2NjcgMzA4OSBWIDQ5IHcoZGVmdW4pNDQgYiBGZShcKClwCitGcyhjb25zdCkyOSBiKGNoYXIpZygqbmFtZSwpZyhybF9jb21tYW5kX2Z1bmNfdClkKCpmdW5jdGlvbiwpNTY1CiszMTk4IHkoaW50KWsoa2V5KXAgRmUoXCkpMzkwIDMzMDggeSBGdChBZGQpayBGaShuYW1lKTQxCitiIEZ0KHRvKTM2IGIodGhlKWYobGlzdCloKG9mKWcobmFtZWQpZShmdW5jdGlvbnMuKTU1CitiKE1hayltKGUpMzcgYiBGaShmdW5jdGlvbillIEZ0KGIpcyhlKWcodGhlKWcoZnVuY3Rpb24pZyh0aGF0KWgoZ2V0cykKKzM5MCAzNDE4IHkoY2FsbGVkLik0MiBiKElmKTMwIGIgRmkoayltKGV5KTM5IGIgRnQoaXMpMzAKK2Iobm90KWgoLTEsKWcodGhlbilmKGJpbmQpZihpdClpKHRvKWcgRmkoZnVuY3Rpb24pZiBGdCh1c2luZylnCitGcyhybF9iaW5kX2tleVwoXCkpcCBGdCguKTI3NSAzNjA3IHkoVXNpbmcpZyh0aGlzKWcoZnVuY3Rpb24pZyhhbG9uZSloCisoaXMpZihzdVwwMTZjaWVuKW0odClnKGZvcilnKG1vc3QpaChhcHBsaWNhdGlvbnMuKTQyCitiKEl0KTMwIGIoaXMpZyh0aGUpZyhyZWNvbW1lbmRlZClnKHcpbShhKW0oeSkxNTAgMzcxNworeSh0byllKGFkZCllKGEpaChmZXcpZyhmdW5jdGlvbnMpZyh0bylnKHRoZSlnKGRlZmF1bHQpaChmdW5jdGlvbnMpZQorKHRoYXQpaShSZWFkbGluZSlmKGhhcylnKGJ1aWx0KWcoaW4uKTM5IGIoSWYpMjYgYih5KW0ob3UpaShuZWVkKWUodG8paQorKGRvKTE1MCAzODI2IHkoc29tZXRoaW5nKTM0IGIob3RoZXIpZyh0aGFuKWYoYWRkaW5nKWgoYSlnKGZ1bmN0aW9uKWYKKyh0byloKFJlYWRsaW5lLClpKHkpbShvdSllKG1hKW0oeSlnKG5lZWQpZih0bylpKHVzZSllKHRoZSloKHVuZGVybHlpbmcpCisxNTAgMzkzNiB5KGZ1bmN0aW9ucyljKGRlc2NyaWIpcyhlZClmKGIpcyhlbG8pbSh3LikxNTAKKzQxNjYgeSBGaCgyLjQuMik2MyBiKFNlbGVjdGluZyk0MSBiKGEpZihLZXltYXApMjc1IDQ0MTIKK3kgRnQoS2V5KTMwIGIoYmluZGluZ3MpZyh0YWspbShlKWoocGxhY2UpZShvbilnKGEpZyBGaShrKW0oZXltYXApcAorRnQoLik0MyBiKFRoZSkzMSBiKGspbShleW1hcClnKGlzKWcodGhlKWcoYXNzbylzKGNpYXRpb24paShiKXMoZXQpbSh3KW0KKyhlZW4pZSh0aGUpZyhrKW0oZXlzKTE1MCA0NTIyIHkodGhhdCllKHRoZSlnKHVzZXIpZSh0KW0oeXApcyhlcylpKGFuZClmCisodGhlKWcoZnVuY3Rpb25zKWcodGhhdCloKGdldCloKHJ1bi4pMzkgYihZKS04IGIob3UpMjkKK2IoY2FuKWYobWFrKW0oZSlpKHkpbShvdXIpZShvKW0od24paChrKW0oZXltYXBzLClnKGNvcCltKHkpMTUwCis0NjMyIHkoZXhpc3RpbmcpaShrKW0oZXltYXBzLClnKGFuZClmKHRlbGwpaShSZWFkbGluZSlmKHdoaWMpbShoKWYoayltCisoZXltYXApaCh0bylnKHVzZS4pMzM1MCA0ODIxIHkoW0YpLTggYih1bmN0aW9uXSktMzU5OQorYiBGZyhLZXltYXApNDAgYiBGZihybClwIDU4OSA0ODIxIFYgNTAgdyhtYWspbShlKXAgOTAwCis0ODIxIFYgNTEgdyhiYXJlKXAgMTE3MSA0ODIxIFYgNDkgdyhrKW0oZXltYXApNDYgYiBGZShcKClwCitGcyh2b2lkKXAgRmUoXCkpMzkwIDQ5MzEgeSBGdChSZXR1cm5zKTIzIGIoYSlpKG5ldywpZyhlbXB0KW0oeSlmKGspbQorKGV5bWFwLik0MCBiKFRoZSkyMyBiKHNwYWNlKWkoZm9yKWYodGhlKWcoayltKGV5bWFwKWgoaXMpZihhbGxvKXMKKyhjYXRlZClpKHdpdGgpZSBGcyhtYWxsb2NcKFwpKXAgRnQoOykzOTAgNTA0MSB5KHRoZSkzMQorYihjYWxsZXIpZyhzaG91bGQpZihmcmVlKWcoaXQpaChiKW0oeSlmKGNhbGxpbmcpaSBGcworKHJsX2Rpc2NhcmRfa2V5bWFwXChcKSkyNSBiIEZ0KHdoZW4pMzAgYihkb25lLikzMzUwIDUyMzAKK3koW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKEtleW1hcCk0MCBiIEZmKHJsKXAgNTg5Cis1MjMwIFYgNTAgdyhjb3ApbSh5KXAgODY4IDUyMzAgViA1MSB3KGspbShleW1hcCk0NiBiCitGZShcKClwIEZzKEtleW1hcCkyOSBiKG1hcClwIEZlKFwpKTM5MCA1MzQwIHkgRnQoUmV0dXJuKWgoYSlnKG5ldylnKGspbQorKGV5bWFwKWgod2hpYyltKGgpZihpcyloKGEpZihjb3ApbSh5KWgob2YpZyBGaShtYXApcAorRnQoLilwIGVvcCBlbmQKKyUlUGFnZTogMjkgMzMKK1RlWERpY3QgYmVnaW4gMjkgMzIgYm9wIDE1MCAtMTE2IGEgRnQoQ2hhcHRlcikzMCBiKDI6KTQxCitiKFByb2dyYW1taW5nKTMwIGIod2l0aClnKEdOVSloKFJlYWRsaW5lKTE2ODMgYigyOSkzMzUwCisyOTkgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcoS2V5bWFwKTQwIGIgRmYocmwpcAorNTg5IDI5OSAzNSA1IHYgNTAgdyhtYWspbShlKXAgOTAwIDI5OSBWIDUxIHcoayltKGV5bWFwKTQ1CitiIEZlKFwoKXAgRnModm9pZClwIEZlKFwpKTM5MCA0MDggeSBGdChSZXR1cm4pMzEgYihhKWcobmV3KWcoayltKGV5bWFwKQoraCh3aXRoKWYodGhlKWgocHJpbiltKHRpbmcpZihjKW0oaGFyYWN0ZXJzKWkoYilzKG91bmQpYyh0bylqKHJsKXAKKzI5MDkgNDA4IDI4IDQgdiA0MCB3KGluc2VydCwpZyh0aGUpZyhsbyltKHcpbShlcmNhc2UpMzkwCis1MTggeShNZXRhKTI0IGIoYyltKGhhcmFjdGVycylnKGIpcyhvdW5kKWQodG8paShydW4pZSh0aGVpcilpKGVxdWl2KS01CitiKGFsZW4pbSh0cywpMjUgYihhbmQpZCh0aGUpaChNZXRhKWgoZGlnaXRzKWYoYilzKG91bmQpZSh0bylpKHBybylzCisoZHVjZSkzOTAgNjI4IHkobiltKHVtZXJpYykzMCBiKGFyZ3VtZW4pbSh0cy4pMzM1MCA4MDMKK3koW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKHZvaWQpMzkgYiBGZihybClwIDQ4NCA4MDMKKzM1IDUgdiA1MSB3KGRpc2NhcmQpcCA4OTQgODAzIFYgNDkgdyhrKW0oZXltYXApNDYgYiBGZShcKClwCitGcyhLZXltYXApMjkgYihrZXltYXApcCBGZShcKSkzOTAgOTEzIHkgRnQoRiktOCBiKHJlZSkzMQorYih0aGUpZyhzdG9yYWdlKWgoYXNzbylzKGNpYXRlZClnKHdpdGgpZSBGaShrKW0oZXltYXApcAorRnQoLikyNzUgMTA4OSB5KFJlYWRsaW5lKTQ1IGIoaGFzKWcoc2V2KW0oZXJhbClpKGluKW0odGVybmFsKWYoayltCisoZXltYXBzLik4NiBiKFRoZXNlKTQ1IGIoZnVuY3Rpb25zKWcoYWxsbyltKHcpaCh5KW0ob3UpZyh0bylnKGMpbQorKGhhbmdlKWcod2hpYyltKGgpMTUwIDExOTggeShrKW0oZXltYXApMzEgYihpcylmKGFjdGl2KW0oZS4pMzM1MAorMTM3NCB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkgYiBGZyhLZXltYXApNDAgYiBGZihybClwCis1ODkgMTM3NCBWIDUwIHcoZ2V0KXAgNzk0IDEzNzQgViA1MCB3KGspbShleW1hcCk0NiBiCitGZShcKClwIEZzKHZvaWQpcCBGZShcKSkzOTAgMTQ4NCB5IEZ0KFJldHVybnMpMjkgYih0aGUpaShjdXJyZW4pbSh0bHkpZgorKGFjdGl2KW0oZSlqKGspbShleW1hcC4pMzM1MCAxNjU5IHkoW0YpLTggYih1bmN0aW9uXSktMzU5OQorYiBGZyh2b2lkKTM5IGIgRmYocmwpcCA0ODQgMTY1OSBWIDUxIHcoc2V0KXAgNjc4IDE2NTkKK1YgNDkgdyhrKW0oZXltYXApNDYgYiBGZShcKClwIEZzKEtleW1hcCkyOSBiKGtleW1hcClwCitGZShcKSkzOTAgMTc2OSB5IEZ0KE1hayltKGVzKWogRmkoayltKGV5bWFwKWggRnQodGhlKWUoY3VycmVuKW0odGx5KWYKKyhhY3RpdiltKGUpaihrKW0oZXltYXAuKTMzNTAgMTk0NSB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkKK2IgRmcoS2V5bWFwKTQwIGIgRmYocmwpcCA1ODkgMTk0NSBWIDUwIHcoZ2V0KXAgNzk0IDE5NDUKK1YgNTAgdyhrKW0oZXltYXApcCAxMjI5IDE5NDUgViA1MSB3KGIpbSh5KXAgMTQwMSAxOTQ1CitWIDUwIHcobmFtZSk0NSBiIEZlKFwoKXAgRnMoY29uc3QpMjkgYihjaGFyKWcoKm5hbWUpcAorRmUoXCkpMzkwIDIwNTQgeSBGdChSZXR1cm4paih0aGUpaShrKW0oZXltYXApZihtYXRjKW0oaGluZylpCitGaShuYW1lKXAgRnQoLik0OSBiIEZpKG5hbWUpMzggYiBGdChpcyljKG9uZSlmKHdoaWMpbShoKWcodyltKG91bGQpZyhiKQorcyhlKWYoc3VwcGxpZWQpZyhpbiloKGEpaCBGcyhzZXQpMzkwIDIxNjQgeShrZXltYXApMjkKK2IgRnQoaW5wdXRyYylnKGxpbmUpaShcKHNlZSlnKFNlY3Rpb24pZygxLjMpaChbUmVhZGxpbmUpZihJbml0KWYKKyhGaWxlXSwpaShwYWdlKWYoNFwpLikzMzUwIDIzMzkgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5CitiIEZnKGNoYXIpMzkgYigqKWcgRmYocmwpcCA1NzUgMjMzOSBWIDUwIHcoZ2V0KXAgNzgwCisyMzM5IFYgNTAgdyhrKW0oZXltYXApcCAxMjE1IDIzMzkgViA1MSB3KG5hbWUpNDQgYiBGZShcKClwCitGcyhLZXltYXApMjkgYihrZXltYXApcCBGZShcKSkzOTAgMjQ0OSB5IEZ0KFJldHVybilqKHRoZSlpKG5hbWUpZihtYXRjKQorbShoaW5nKWggRmkoayltKGV5bWFwKXAgRnQoLik1MCBiIEZpKG5hbWUpMzggYiBGdChpcyljKG9uZSlmKHdoaWMpbShoKWcKKyh3KW0ob3VsZClnKGIpcyhlKWYoc3VwcGxpZWQpZyhpbiloKGEpaCBGcyhzZXQpMzkwIDI1NTkKK3koa2V5bWFwKTI5IGIgRnQoaW5wdXRyYylnKGxpbmUpaShcKHNlZSlnKFNlY3Rpb24pZygxLjMpaChbUmVhZGxpbmUpZgorKEluaXQpZihGaWxlXSwpaShwYWdlKWYoNFwpLikxNTAgMjc3NCB5IEZoKDIuNC4zKTYzIGIoQmluZGluZyk0MgorYihLZXlzKTI3NSAzMDE1IHkgRnQoS2V5KTIzIGIoc2VxdWVuY2VzKWkoYXJlKWYoYXNzbylzKGNpYXRlKWkod2l0aCllCisoZnVuY3Rpb25zKWYodGhyb3VnaClnKHRoZSloKGspbShleW1hcC4pMzkgYihSZWFkbGluZSkyNQorYihoYXMpZihzZXYpbShlcmFsKWgoaW4tKTE1MCAzMTI1IHkodGVybmFsKTMwIGIoayltKGV5bWFwczopNDAKK2IgRnMoZW1hY3Nfc3RhbmRhcmRfa2V5bWFwKXAgRnQoLCkyNCBiIEZzKGVtYWNzX21ldGFfa2V5bWFwKXAKK0Z0KCwpaCBGcyhlbWFjc19jdGx4X2tleW1hcClwIEZ0KCwpZyBGcyh2aV8pMTUwIDMyMzUKK3kobW92ZW1lbnRfa2V5bWFwKXAgRnQoLCk0MSBiKGFuZCloIEZzKHZpX2luc2VydGlvbl9rZXltYXApcAorRnQoLik3MSBiIEZzKGVtYWNzX3N0YW5kYXJkX2tleW1hcCkzNyBiIEZ0KGlzKTQyIGIodGhlKWcoZGVmYXVsdCwpMTUwCiszMzQ0IHkoYW5kKTMwIGIodGhlKWcoZXhhbXBsZXMpaChpbilmKHRoaXMpaChtYW4pbSh1YWwpZihhc3N1bWUpZworKHRoYXQuKTI3NSAzNDc2IHkoU2luY2UpZCBGcyhyZWFkbGluZVwoXCkpZSBGdChpbnN0YWxscylqKGEpZyhzZXQpZyhvZikKK2coZGVmYXVsdClnKGspbShleSlnKGJpbmRpbmdzKWYodGhlKWgoXDAxNHJzdCllKHRpbWUpaihpdClmKGlzKWYKKyhjYWxsZWQsKWoodGhlcmUpZShpcykxNTAgMzU4NSB5KGFsdyltKGEpbSh5cykzNCBiKHRoZSlmKGRhbmdlcilmKHRoYXQpCitpKGEpZihjdXN0b20pZyhiaW5kaW5nKWUoaW5zdGFsbGVkKWooYilzKGVmb3JlKWUodGhlKWgoXDAxNHJzdCllKGNhbGwpagorKHRvKWcgRnMocmVhZGxpbmVcKFwpKWMgRnQod2lsbCkxNTAgMzY5NSB5KGIpcyhlKTI1IGIobyltKHYpbQorKGVycmlkZGVuLikzOSBiKEFuKTI2IGIoYWx0ZXJuYXRlKWgobWVjKW0oaGFuaXNtKWYoaXMpZyh0bylnKGluc3RhbGwpaAorKGN1c3RvbSlmKGspbShleSlnKGJpbmRpbmdzKWYoaW4pZyhhbiloKGluaXRpYWxpemF0aW9uKTE1MAorMzgwNSB5KGZ1bmN0aW9uKTM3IGIoYXNzaWduZWQpZyh0byloKHRoZSlmIEZzKHJsX3N0YXJ0dXBfaG9vayljCitGdCh2KS01IGIoYXJpYWJsZSkzOCBiKFwoc2VlKWcoU2VjdGlvbilnKDIuMylnKFtSZWFkbGluZSlnKFYpLTgKK2IoYXJpYWJsZXNdLCkxNTAgMzkxNCB5KHBhZ2UpMzEgYigyNFwpLikyNzUgNDA0NiB5KFRoZXNlKWYoZnVuY3Rpb25zKWcKKyhtYW5hZ2UpaChrKW0oZXkpZyhiaW5kaW5ncy4pMzM1MCA0MjIxIHkoW0YpLTggYih1bmN0aW9uXSktMzU5OQorYiBGZyhpbnQpMzkgYiBGZihybClwIDQzMiA0MjIxIFYgNTEgdyhiaW5kKXAgNzA3IDQyMjEKK1YgNDkgdyhrKW0oZXkpNDUgYiBGZShcKClwIEZzKGludCkzMCBiKGtleSwpZihybF9jb21tYW5kX2Z1bmNfdClkCisoKmZ1bmN0aW9uKXAgRmUoXCkpMzkwIDQzMzEgeSBGdChCaW5kcykzMiBiIEZpKGspbShleSk0MgorYiBGdCh0bykzNCBiIEZpKGZ1bmN0aW9uKWUgRnQoaW4paCh0aGUpZyhjdXJyZW4pbSh0bHkpZyhhY3RpdiltKGUpaShrKW0KKyhleW1hcC4pNDkgYihSZXR1cm5zKTMyIGIobm9uLXplcm8paShpbilmKHRoZSlnKGNhc2UpMzkwCis0NDQxIHkob2YpZShhbilmKGluKW0odiktNSBiKGFsaWQpMzEgYiBGaShrKW0oZXkpcCBGdCguKTMzNTAKKzQ2MTYgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIKKzQ2MTYgViA1MSB3KGJpbmQpcCA3MDcgNDYxNiBWIDQ5IHcoayltKGV5KXAgOTI2IDQ2MTYKK1YgNTAgdyhpbilwIDEwNzIgNDYxNiBWIDUwIHcobWFwKTQ2IGIgRmUoXCgpcCBGcyhpbnQpMjkKK2Ioa2V5LCloKHJsX2NvbW1hbmRfZnVuY190KTI1IGIoKmZ1bmN0aW9uLCk1NjUgNDcyNiB5KEtleW1hcClrKG1hcClwCitGZShcKSkzOTAgNDgzNiB5IEZ0KEJpbmQpaCBGaShrKW0oZXkpMzkgYiBGdCh0bykzMSBiCitGaShmdW5jdGlvbilmIEZ0KGluKWcgRmkobWFwKXAgRnQoLik0MCBiKFJldHVybnMpMzAgYihub24temVybyloKGluKWYKKyh0aGUpaChjYXNlKWcob2YpZihhbiloKGluKW0odiktNSBiKGFsaWQpMzEgYiBGaShrKW0oZXkpcAorRnQoLikzMzUwIDUwMTEgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcoaW50KTM5IGIKK0ZmKHJsKXAgNDMyIDUwMTEgViA1MSB3KGJpbmQpcCA3MDcgNTAxMSBWIDQ5IHcoayltKGV5KXAKKzkyNiA1MDExIFYgNTAgdyhpZilwIDEwNDMgNTAxMSBWIDUxIHcodW4pbShiKXMob3VuZClrCitGZShcKClwIEZzKGludCkzMCBiKGtleSwpZihybF9jb21tYW5kX2Z1bmNfdCk1NjUgNTEyMQoreSgqZnVuY3Rpb24pcCBGZShcKSkzOTAgNTIzMCB5IEZ0KEJpbmRzKTQzIGIgRmkoayltKGV5KTUzCitiIEZ0KHRvKTQ1IGIgRmkoZnVuY3Rpb24pZSBGdChpZiloKGl0KWgoaXMpZihub3QpZyhhbHJlYWR5KWcoYilzKG91bmQpZQorKGluKWkodGhlKWcoY3VycmVuKW0odGx5KWcoYWN0aXYpbShlKWkoayltKGV5bWFwLikzOTAKKzUzNDAgeShSZXR1cm5zKTI5IGIobm9uLXplcm8paShpbilmKHRoZSloKGNhc2UpZyhvZilnKGFuKWYoaW4pbSh2KS01CitiKGFsaWQpMzEgYiBGaShrKW0oZXkpMzkgYiBGdChvcikzMCBiKGlmKWggRmkoayltKGV5KTM5CitiIEZ0KGlzKTMwIGIoYWxyZWFkeSloKGIpcyhvdW5kLilwIGVvcCBlbmQKKyUlUGFnZTogMzAgMzQKK1RlWERpY3QgYmVnaW4gMzAgMzMgYm9wIDE1MCAtMTE2IGEgRnQoMzApMjYwMCBiKEdOVSkzMQorYihSZWFkbGluZSlnKExpYnJhcnkpMzM1MCAyOTkgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5CitiIEZnKGludCkzOSBiIEZmKHJsKXAgNDMyIDI5OSAzNSA1IHYgNTEgdyhiaW5kKXAgNzA3CisyOTkgViA0OSB3KGspbShleSlwIDkyNiAyOTkgViA1MCB3KGlmKXAgMTA0MyAyOTkgViA1MQordyh1biltKGIpcyhvdW5kKXAgMTUzNSAyOTkgViA0OCB3KGluKXAgMTY3OSAyOTkgViA1MAordyhtYXApNDUgYiBGZShcKClwIEZzKGludCkzMCBiKGtleSwpNTY1IDQwOCB5KHJsX2NvbW1hbmRfZnVuY190KWMKKygqZnVuY3Rpb24sKWgoS2V5bWFwKWkobWFwKXAgRmUoXCkpMzkwIDUxOCB5IEZ0KEJpbmRzKWUKK0ZpKGspbShleSkzNiBiIEZ0KHRvKTI4IGIgRmkoZnVuY3Rpb24pZiBGdChpZilnKGl0KWgoaXMpZihub3QpaAorKGFscmVhZHkpZyhiKXMob3VuZClkKGluKWkgRmkobWFwKXAgRnQoLikzOSBiKFJldHVybnMpMjcKK2Iobm9uLXplcm8pZyhpbilnKHRoZSloKGNhc2UpMzkwIDYyOCB5KG9mKWooYW4pZihpbiltKHYpLTUKK2IoYWxpZCkzMSBiIEZpKGspbShleSkzOSBiIEZ0KG9yKTMwIGIoaWYpZyBGaShrKW0oZXkpMzkKK2IgRnQoaXMpMzEgYihhbHJlYWR5KWcoYilzKG91bmQuKTMzNTAgNzkyIHkoW0YpLTggYih1bmN0aW9uXSktMzU5OQorYiBGZyhpbnQpMzkgYiBGZihybClwIDQzMiA3OTIgViA1MSB3KHVuKW0oYmluZClwIDgzMgorNzkyIFYgNDggdyhrKW0oZXkpNDYgYiBGZShcKClwIEZzKGludCkyOSBiKGtleSlwIEZlKFwpKTM5MAorOTAyIHkgRnQoQmluZCkzNiBiIEZpKGspbShleSk0NSBiIEZ0KHRvKTM3IGIodGhlKWYobiltKHVsbClnKGZ1bmN0aW9uKWcKKyhpbilnKHRoZSloKGN1cnJlbiltKHRseSlmKGFjdGl2KW0oZSlpKGspbShleW1hcC4pNTkKK2IoUmV0dXJucykzNSBiKG5vbi16ZXJvKWkoaW4pMzkwIDEwMTEgeShjYXNlKTMxIGIob2YpZyhlcnJvci4pMzM1MAorMTE3NiB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkgYiBGZyhpbnQpMzkgYiBGZihybClwIDQzMgorMTE3NiBWIDUxIHcodW4pbShiaW5kKXAgODMyIDExNzYgViA0OCB3KGspbShleSlwIDEwNTAKKzExNzYgViA1MSB3KGluKXAgMTE5NyAxMTc2IFYgNDkgdyhtYXApNDYgYiBGZShcKClwIEZzKGludCkyOQorYihrZXksKWgoS2V5bWFwKWUobWFwKXAgRmUoXCkpMzkwIDEyODUgeSBGdChCaW5kKWkgRmkoayltKGV5KTM5CitiIEZ0KHRvKTMxIGIodGhlKWcobiltKHVsbClmKGZ1bmN0aW9uKWcoaW4pZyBGaShtYXApcAorRnQoLik0MCBiKFJldHVybnMpMzAgYihub24temVybyloKGluKWYoY2FzZSloKG9mKWcoZXJyb3IuKTMzNTAKKzE0NTAgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIKKzE0NTAgViA1MSB3KHVuKW0oYmluZClwIDgzMiAxNDUwIFYgNDggdyhmdW5jdGlvbilwIDEyOTIKKzE0NTAgViA0OSB3KGluKXAgMTQzNyAxNDUwIFYgNTAgdyhtYXApNDUgYiBGZShcKClwIEZzCisocmxfY29tbWFuZF9mdW5jX3QpMjYgYigqZnVuY3Rpb24sKTU2NSAxNTU5IHkoS2V5bWFwKWoobWFwKXAKK0ZlKFwpKTM5MCAxNjY5IHkgRnQoVW4pbShiaW5kKWcoYWxsKWkoayltKGV5cylnKHRoYXQpZyhleGVjdXRlKWgKK0ZpKGZ1bmN0aW9uKWUgRnQoaW4pZyBGaShtYXApcCBGdCguKTMzNTAgMTgzMyB5KFtGKS04CitiKHVuY3Rpb25dKS0zNTk5IGIgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIgMTgzMyBWIDUxCit3KHVuKW0oYmluZClwIDgzMiAxODMzIFYgNDggdyhjb21tYW5kKXAgMTM2MiAxODMzIFYgNTAKK3coaW4pcCAxNTA4IDE4MzMgViA1MCB3KG1hcCk0NiBiIEZlKFwoKXAgRnMoY29uc3QpMjkKK2IoY2hhcilnKCpjb21tYW5kLClmKEtleW1hcCk1NjUgMTk0MyB5KG1hcClwIEZlKFwpKTM5MAorMjA1MiB5IEZ0KFVuKW0oYmluZCloKGFsbClpKGspbShleXMpZyh0aGF0KWcoYXJlKWcoYilzKG91bmQpZSh0bylpCitGaShjb21tYW5kKWkgRnQoaW4pZCBGaShtYXApcCBGdCguKTMzNTAgMjIxNyB5KFtGKS04CitiKHVuY3Rpb25dKS0zNTk5IGIgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIgMjIxNyBWIDUxCit3KGJpbmQpcCA3MDcgMjIxNyBWIDQ5IHcoayltKGV5c2VxKTQ2IGIgRmUoXCgpcCBGcyhjb25zdCkyOQorYihjaGFyKWcoKmtleXNlcSwpZihybF9jb21tYW5kX2Z1bmNfdCk1NjUgMjMyNiB5KCpmdW5jdGlvbilwCitGZShcKSkzOTAgMjQzNiB5IEZ0KEJpbmQpNDMgYih0aGUpZyhrKW0oZXkpaChzZXF1ZW5jZSlmKHJlcHJlc2VuKW0odGVkKQorZyhiKW0oeSlnKHRoZSlnKHN0cmluZylnIEZpKGspbShleXNlcSlqIEZ0KHRvKWUodGhlKWYoZnVuY3Rpb24pZworRmkoZnVuY3Rpb24pcCBGdCgsKTM5MCAyNTQ1IHkoYilzKGVnaW5uaW5nKTI3IGIoaW4paCh0aGUpaChjdXJyZW4pbSh0KWYKKyhrKW0oZXltYXAuKTQwIGIoVGhpcykyOCBiKG1hayltKGVzKWgobmV3KWUoayltKGV5bWFwcylpKGFzKWYKKyhuZWNlc3NhcnkpLTggYiguKTQxIGIoVGhlKTI4IGIocmV0dXJuKTM5MCAyNjU1IHkodiktNQorYihhbHVlKTMxIGIoaXMpZihub24temVybyloKGlmKWcgRmkoayltKGV5c2VxKWkgRnQoaXMpZChpbiltKHYpLTUKK2IoYWxpZC4pMzM1MCAyODE5IHkoW0YpZCh1bmN0aW9uXSktMzU5OSBiIEZnKGludCkzOSBiCitGZihybClwIDQzMiAyODE5IFYgNTEgdyhiaW5kKXAgNzA3IDI4MTkgViA0OSB3KGspbShleXNlcSlwCisxMDg0IDI4MTkgViA1MSB3KGluKXAgMTIzMSAyODE5IFYgNDkgdyhtYXApNDYgYiBGZShcKClwCitGcyhjb25zdCkyOSBiKGNoYXIpZygqa2V5c2VxLCk1NjUgMjkyOSB5KHJsX2NvbW1hbmRfZnVuY190KWQKKygqZnVuY3Rpb24sKWgoS2V5bWFwKWkobWFwKXAgRmUoXCkpMzkwIDMwMzkgeSBGdChCaW5kKWModGhlKWcoayltKGV5KWgKKyhzZXF1ZW5jZSlmKHJlcHJlc2VuKW0odGVkKWcoYiltKHkpZyh0aGUpZyhzdHJpbmcpZyBGaShrKW0oZXlzZXEpagorRnQodG8pZSh0aGUpZihmdW5jdGlvbilnIEZpKGZ1bmN0aW9uKXAgRnQoLikzOSBiKFRoaXMpMzkwCiszMTQ4IHkobWFrKW0oZXMpMzAgYihuZXcpZihrKW0oZXltYXBzKWcoYXMpZyhuZWNlc3NhcnkpLTgKK2IoLik0MiBiKEluaXRpYWwpMzAgYihiaW5kaW5ncylkKGFyZSlqKHApcyhlcmZvcm1lZCllKGluKWcKK0ZpKG1hcClwIEZ0KC4pNDAgYihUaGUpMjkgYihyZXR1cm4pMzkwIDMyNTggeSh2KS01IGIoYWx1ZSkzMQorYihpcylmKG5vbi16ZXJvKWgoaWYpZyBGaShrKW0oZXlzZXEpaSBGdChpcylkKGluKW0odiktNQorYihhbGlkLikzMzUwIDM0MjIgeShbRilkKHVuY3Rpb25dKS0zNTk5IGIgRmcoaW50KTM5IGIKK0ZmKHJsKXAgNDMyIDM0MjIgViA1MSB3KHNldClwIDYyNiAzNDIyIFYgNDkgdyhrKW0oZXkpNDYKK2IgRmUoXCgpcCBGcyhjb25zdCkyOSBiKGNoYXIpZygqa2V5c2VxLClnKHJsX2NvbW1hbmRfZnVuY190KWMKKygqZnVuY3Rpb24sKTU2NSAzNTMyIHkoS2V5bWFwKWsobWFwKXAgRmUoXCkpMzkwIDM2NDEKK3kgRnQoRXF1aXYpLTUgYihhbGVuKW0odCkzMSBiKHRvKWcgRnMocmxfYmluZF9rZXlzZXFfaW5fbWFwKXAKK0Z0KC4pMzM1MCAzODA2IHkoW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKGludCkzOSBiCitGZihybClwIDQzMiAzODA2IFYgNTEgdyhiaW5kKXAgNzA3IDM4MDYgViA0OSB3KGspbShleXNlcSlwCisxMDg0IDM4MDYgViA1MSB3KGlmKXAgMTIwMiAzODA2IFYgNTAgdyh1biltKGIpcyhvdW5kKWsKK0ZlKFwoKXAgRnMoY29uc3QpMzAgYihjaGFyKWYoKmtleXNlcSwpNTY1IDM5MTUgeShybF9jb21tYW5kX2Z1bmNfdClkCisoKmZ1bmN0aW9uKXAgRmUoXCkpMzkwIDQwMjUgeSBGdChCaW5kcykzNSBiIEZpKGspbShleXNlcSlrCitGdCh0bylkIEZpKGZ1bmN0aW9uKWYgRnQoaWYpZyhpdCloKGlzKWcobm90KWcoYWxyZWFkeSlnKGIpcyhvdW5kKWQoaW4paQorKHRoZSloKGN1cnJlbiltKHRseSlmKGFjdGl2KW0oZSlqKGspbShleW1hcC4pMzkwIDQxMzQKK3koUmV0dXJucykyOSBiKG5vbi16ZXJvKWkoaW4pZih0aGUpaChjYXNlKWcob2YpZyhhbilmKGluKW0odiktNQorYihhbGlkKTMxIGIgRmkoayltKGV5c2VxKWogRnQob3IpYyhpZilnIEZpKGspbShleXNlcSlrCitGdChpcyljKGFscmVhZHkpaChiKXMob3VuZC4pMzM1MCA0Mjk5IHkoW0YpLTggYih1bmN0aW9uXSktMzU5OQorYiBGZyhpbnQpMzkgYiBGZihybClwIDQzMiA0Mjk5IFYgNTEgdyhiaW5kKXAgNzA3IDQyOTkKK1YgNDkgdyhrKW0oZXlzZXEpcCAxMDg0IDQyOTkgViA1MSB3KGlmKXAgMTIwMiA0Mjk5IFYKKzUwIHcodW4pbShiKXMob3VuZClwIDE2OTMgNDI5OSBWIDQ4IHcoaW4pcCAxODM3IDQyOTkKK1YgNTAgdyhtYXApNDYgYiBGZShcKClwIEZzKGNvbnN0KTI5IGIoY2hhcilnKCprZXlzZXEsKTU2NQorNDQwOCB5KHJsX2NvbW1hbmRfZnVuY190KWQoKmZ1bmN0aW9uLCloKEtleW1hcClpKG1hcClwCitGZShcKSkzOTAgNDUxOCB5IEZ0KEJpbmRzKWkgRmkoayltKGV5c2VxKWsgRnQodG8pZSBGaShmdW5jdGlvbilmCitGdChpZilnKGl0KWcoaXMpZyhub3QpZyhhbHJlYWR5KWgoYilzKG91bmQpZChpbiloIEZpKG1hcClwCitGdCguKTQ2IGIoUmV0dXJucykzMSBiKG5vbi16ZXJvKWgoaW4pZyh0aGUpMzkwIDQ2MjggeShjYXNlKWYob2YpZyhhbilmCisoaW4pbSh2KS01IGIoYWxpZCkzMSBiIEZpKGspbShleXNlcSlqIEZ0KG9yKWMoaWYpZyBGaShrKW0oZXlzZXEpaworRnQoaXMpYyhhbHJlYWR5KWgoYilzKG91bmQuKTMzNTAgNDc5MiB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkKK2IgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIgNDc5MiBWIDUxIHcoZ2VuZXJpYylwIDg0MCA0NzkyCitWIDQ5IHcoYmluZCk0NCBiIEZlKFwoKXAgRnMoaW50KTMwIGIodHlwZSwpZihjb25zdClnKGNoYXIpZygqa2V5c2VxLClmCisoY2hhciloKCpkYXRhLCk1NjUgNDkwMiB5KEtleW1hcClnKG1hcClwIEZlKFwpKTM5MCA1MDExCit5IEZ0KEJpbmQpZSh0aGUpZyhrKW0oZXkpaChzZXF1ZW5jZSlmKHJlcHJlc2VuKW0odGVkKWcoYiltKHkpZyh0aGUpZworKHN0cmluZylnIEZpKGspbShleXNlcSlqIEZ0KHRvKWUodGhlKWYoYXJiaXRyYXJ5KWcocClzKG9pbiltKHRlcilnCitGaShkYXRhKXAgRnQoLikzOTAgNTEyMSB5IEZpKHQpbSh5cClzKGUpMzQgYiBGdChzYSltKHlzKTI5CitiKHdoYXQpZihraW5kKWcob2YpZyhkYXRhKWgoaXMpZyhwKXMob2luKW0odGVkKWYodG8paChiKW0oeSlnCitGaShkYXRhKXAgRnQoOyloKHRoaXMpZShjYW4paChiKXMoZSlmKGEpZyhmdW5jdGlvbilnKFwoKXAKK0ZzKElTRlVOQylwIEZ0KFwpLCloKGEpMzkwIDUyMzAgeShtYWNybyloKFwoKXAgRnMoSVNNQUNSKXAKK0Z0KFwpLClmKG9yKWcoYSloKGspbShleW1hcClnKFwoKXAgRnMoSVNLTUFQKXAgRnQoXCkuKTQwCitiKFRoaXMpMjggYihtYWspbShlcylqKG5ldyllKGspbShleW1hcHMpZyhhcyloKG5lY2Vzc2FyeSktOAorYiguKTQxIGIoVGhlKTM5MCA1MzQwIHkoaW5pdGlhbCkzMiBiKGspbShleW1hcCllKGluKWgod2hpYyltKGgpZih0byloCisoZG8pZihiaW5kaW5ncylmKGlzKWkgRmkobWFwKXAgRnQoLilwIGVvcCBlbmQKKyUlUGFnZTogMzEgMzUKK1RlWERpY3QgYmVnaW4gMzEgMzQgYm9wIDE1MCAtMTE2IGEgRnQoQ2hhcHRlcikzMCBiKDI6KTQxCitiKFByb2dyYW1taW5nKTMwIGIod2l0aClnKEdOVSloKFJlYWRsaW5lKTE2ODMgYigzMSkzMzUwCisyOTkgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIKKzI5OSAzNSA1IHYgNTEgdyhwYXJzZSlwIDc0OCAyOTkgViA0OSB3KGFuZClwIDk4MSAyOTkKK1YgNTAgdyhiaW5kKTQ0IGIgRmUoXCgpcCBGcyhjaGFyKTI5IGIoKmxpbmUpcCBGZShcKSkzOTAKKzQwOCB5IEZ0KFApbShhcnNlKWggRmkobGluZSkzNSBiIEZ0KGFzKTI5IGIoaWYpaChpdClnKGhhZCllKGIpcyhlZW4paAorKHJlYWQpZyhmcm9tKWcodGhlKWggRnMoaW5wdXRyYylkIEZ0KFwwMTRsZSlqKGFuZCllKHApcyhlcmZvcm0pZyhhbiltCisoeSlpKGspbShleSlnKGJpbmRpbmdzKTM5MCA1MTggeShhbmQpZyh2KS01IGIoYXJpYWJsZSkzMQorYihhc3NpZ25tZW4pbSh0cylnKGZvdW5kKWUoXChzZWUpaShTZWN0aW9uKWgoMS4zKWYoW1JlYWRsaW5lKWcoSW5pdClmCisoRmlsZV0sKWoocGFnZSllKDRcKS4pMzM1MCA3MDkgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5CitiIEZnKGludCkzOSBiIEZmKHJsKXAgNDMyIDcwOSBWIDUxIHcocmVhZClwIDcwMyA3MDkgVgorNDkgdyhpbml0KXAgOTI1IDcwOSBWIDQ5IHcoXDAxNGxlKTQ1IGIgRmUoXCgpcCBGcyhjb25zdCkyOQorYihjaGFyKWcoKmZpbGVuYW1lKXAgRmUoXCkpMzkwIDgxOCB5IEZ0KFJlYWQpaihrKW0oZXliaW5kaW5ncylmKGFuZClnCisodiktNSBiKGFyaWFibGUpMzIgYihhc3NpZ25tZW4pbSh0cylnKGZyb20pZiBGaShcMDE0bGVuYW1lKTM3CitiIEZ0KFwoc2VlKTMyIGIoU2VjdGlvbilnKDEuMyloKFtSZWFkbGluZSkzOTAgOTI4IHkoSW5pdClkKEZpbGVdLClpCisocGFnZSlmKDRcKS4pMTUwIDExNTggeSBGaCgyLjQuNCk2MyBiKEFzc28pcyhjaWF0aW5nKTQxCitiKEYpLTEwIGIodW5jdGlvbik0MiBiKE5hbWVzKWYoYW5kKWcoQmluZGluZ3MpMjc1IDE0MDUKK3kgRnQoVGhlc2UpMjEgYihmdW5jdGlvbnMpZihhbGxvKW0odylqKHkpbShvdSlmKHRvKWcoXDAxNG5kKWQob3V0KWoKKyh3aGF0KWYoayltKGV5cyloKGluKW0odiltKG9rKW0oZSloKG5hbWVkKWUoZnVuY3Rpb25zKWYoYW5kKWgodGhlKWcKKyhmdW5jdGlvbnMpMTUwIDE1MTUgeShpbiltKHYpbShvayltKGVkKTI5IGIoYiltKHkpZShhKWgocGFydGljdWxhcilnKGspCittKGV5KWcoc2VxdWVuY2UuKTQwIGIoWSktOCBiKG91KTI4IGIobWEpbSh5KWcoYWxzbyloKGFzc28pcyhjaWF0ZSlnKGEpZgorKG5ldylmKGZ1bmN0aW9uKWcobmFtZSloKHdpdGgpZihhbikxNTAgMTYyNCB5KGFyYml0cmFyeSlqKGZ1bmN0aW9uLikKKzMzNTAgMTgxNSB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkgYiBGZyhybF9jb21tYW5kX2Z1bmNfdCk0MworYigqKWMgRmYocmwpcCAxMjU1IDE4MTUgViA1MCB3KG5hbWVkKXAgMTYzNyAxODE1IFYgNTAKK3coZnVuY3Rpb24pNDQgYiBGZShcKClwIEZzKGNvbnN0KTI5IGIoY2hhcilnKCpuYW1lKXAKK0ZlKFwpKTM5MCAxOTI0IHkgRnQoUmV0dXJuKWgodGhlKWcoZnVuY3Rpb24pZyh3aXRoKWcobmFtZSloCitGaShuYW1lKXAgRnQoLikzMzUwIDIxMTUgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcKKyhybF9jb21tYW5kX2Z1bmNfdCk0MyBiKCopYyBGZihybClwIDEyNTUgMjExNSBWIDUwIHcoZnVuY3Rpb24pcAorMTcxNyAyMTE1IFYgNDkgdyhvZilwIDE4NTggMjExNSBWIDUxIHcoayltKGV5c2VxKTQ2IGIKK0ZlKFwoKXAgRnMoY29uc3QpMjkgYihjaGFyKWcoKmtleXNlcSwpNTY1IDIyMjUgeShLZXltYXApZyhtYXAsKWcoaW50KWcKKygqdHlwZSlwIEZlKFwpKTM5MCAyMzM0IHkgRnQoUmV0dXJuKWoodGhlKWcoZnVuY3Rpb24paChpbiltKHYpbShvayltCisoZWQpaChiKW0oeSllIEZpKGspbShleXNlcSlrIEZ0KGluKWMoayltKGV5bWFwKWggRmkobWFwKXAKK0Z0KC4pNDcgYihJZikzMiBiIEZpKG1hcClqIEZ0KGlzKWQgRnMoTlVMTClwIEZ0KCwpZyh0aGUpaChjdXJyZW4pbSh0KQorMzkwIDI0NDQgeShrKW0oZXltYXApayhpcylnKHVzZWQuKTYwIGIoSWYpMzcgYiBGaSh0KW0oeXApcyhlKTQyCitiIEZ0KGlzKTM3IGIobm90KWcgRnMoTlVMTClwIEZ0KCwpaCh0aGUpZih0KW0oeXApcyhlKWcob2YpZyh0aGUpZyhvYik1CitiKGplY3QpMzggYihpcylmKHJldHVybmVkKWYoaW4paCh0aGUpZyBGcyhpbnQpMzkwIDI1NTMKK3kgRnQodiktNSBiKGFyaWFibGUpMzEgYihpdClnKHApcyhvaW4pbSh0cylmKHRvKWgoXChvbmUpZyhvZilnCitGcyhJU0ZVTkMpcCBGdCgsKWUgRnMoSVNLTUFQKXAgRnQoLClnKG9yKWggRnMoSVNNQUNSKXAKK0Z0KFwpLikzMzUwIDI3NDQgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcoY2hhcikzOQorYigqKilnIEZmKHJsKXAgNjI3IDI3NDQgViA1MSB3KGluKW0odiltKG9raW5nKXAgMTA5OAorMjc0NCBWIDUwIHcoayltKGV5c2Vxcyk0NiBiIEZlKFwoKXAgRnMocmxfY29tbWFuZF9mdW5jX3QpMjYKK2IoKmZ1bmN0aW9uKXAgRmUoXCkpMzkwIDI4NTMgeSBGdChSZXR1cm4payhhbilpKGFycmEpbSh5KWYob2YpaAorKHN0cmluZ3MpZihyZXByZXNlbiltKHRpbmcpZyh0aGUpZyhrKW0oZXkpaChzZXF1ZW5jZXMpZyh1c2VkKWUodG8paShpbikKK20odiltKG9rKW0oZSloIEZpKGZ1bmN0aW9uKWUgRnQoaW4pMzkwIDI5NjMgeSh0aGUpZyhjdXJyZW4pbSh0KWYoayltCisoZXltYXAuKTMzNTAgMzE1MyB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkgYiBGZyhjaGFyKTM5CitiKCoqKWcgRmYocmwpcCA2MjcgMzE1MyBWIDUxIHcoaW4pbSh2KW0ob2tpbmcpcCAxMDk4CiszMTUzIFYgNTAgdyhrKW0oZXlzZXFzKXAgMTUyMSAzMTUzIFYgNTEgdyhpbilwIDE2NjggMzE1MworViA1MCB3KG1hcCk0NSBiIEZlKFwoKXAgRnMocmxfY29tbWFuZF9mdW5jX3QpNTY1IDMyNjMKK3koKmZ1bmN0aW9uLCkyOCBiKEtleW1hcClnKG1hcClwIEZlKFwpKTM5MCAzMzczIHkgRnQoUmV0dXJuKWkoYW4paQorKGFycmEpbSh5KWYob2YpaChzdHJpbmdzKWYocmVwcmVzZW4pbSh0aW5nKWcodGhlKWcoayltKGV5KWgoc2VxdWVuY2VzKWcKKyh1c2VkKWUodG8paShpbiltKHYpbShvayltKGUpaCBGaShmdW5jdGlvbillIEZ0KGluKTM5MAorMzQ4MiB5KHRoZSlnKGspbShleW1hcClmIEZpKG1hcClwIEZ0KC4pMzM1MCAzNjczIHkoW0YpLTgKK2IodW5jdGlvbl0pLTM1OTkgYiBGZyh2b2lkKTM5IGIgRmYocmwpcCA0ODQgMzY3MyBWIDUxCit3KGZ1bmN0aW9uKXAgOTQ3IDM2NzMgViA0OSB3KGR1bXApcyhlcik0NSBiIEZlKFwoKXAgRnMoaW50KTI5CitiKHJlYWRhYmxlKXAgRmUoXCkpMzkwIDM3ODIgeSBGdChQcmluKW0odClnKHRoZSloKHJlYWRsaW5lKWYoZnVuY3Rpb24pZworKG5hbWVzKWcoYW5kKWcodGhlKWcoayltKGV5KWgoc2VxdWVuY2VzKWcoY3VycmVuKW0odGx5KWYoYilzKG91bmQpZSh0bykKK2oodGhlbSlmKHRvKTM5MCAzODkyIHkgRnMocmxfb3V0c3RyZWFtKXAgRnQoLikzNiBiKElmKTI3CitiIEZpKHJlYWRhYmxlKTMzIGIgRnQoaXMpMjggYihub24temVybywpaCh0aGUpZShsaXN0KWkoaXMpZShmb3JtYXR0ZWQpaAorKGluKWYoc3VjKW0oaClnKGEpaCh3KW0oYSltKHkpaCh0aGF0KWYoaXQpZyhjYW4pMzkwIDQwMDEKK3koYilzKGUpaShtYWRlKWcocGFydClnKG9mKWgoYW4pZiBGcyhpbnB1dHJjKWYgRnQoXDAxNGxlKWgoYW5kKWcKKyhyZS1yZWFkLikzMzUwIDQxOTIgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcodm9pZCkzOQorYiBGZihybClwIDQ4NCA0MTkyIFYgNTEgdyhsaXN0KXAgNjg5IDQxOTIgViA1MCB3KGZ1bm1hcClwCisxMTE3IDQxOTIgViA0OSB3KG5hbWVzKTQ1IGIgRmUoXCgpcCBGcyh2b2lkKXAgRmUoXCkpMzkwCis0MzAxIHkgRnQoUHJpbiltKHQpMzAgYih0aGUpaChuYW1lcylmKG9mKWgoYWxsKWcoYmluZGFibGUpZihSZWFkbGluZSloCisoZnVuY3Rpb25zKWYodG8paCBGcyhybF9vdXRzdHJlYW0pcCBGdCguKTMzNTAgNDQ5MiB5KFtGKS04CitiKHVuY3Rpb25dKS0zNTk5IGIgRmcoY29uc3QpNDAgYihjaGFyKWYoKiopZyBGZihybClwCis5MjcgNDQ5MiBWIDUwIHcoZnVubWFwKXAgMTM1NSA0NDkyIFYgNTAgdyhuYW1lcyk0NSBiCitGZShcKClwIEZzKHZvaWQpcCBGZShcKSkzOTAgNDYwMiB5IEZ0KFJldHVybikyNSBiKGEpaShOVUxMKWYKKyh0ZXJtaW5hdGVkKWcoYXJyYSltKHkpaChvZilmKGtubyltKHduKWYoZnVuY3Rpb24paChuYW1lcy4pMzkKK2IoVGhlKTI2IGIoYXJyYSltKHkpZyhpcylnKHNvcnRlZC4pMzkgYihUaGUpMzkwIDQ3MTEKK3koYXJyYSltKHkpMjYgYihpdHNlbGYpZyhpcylmKGFsbG8pcyhjYXRlZCwpayhidXQpMjQKK2Iobm90KWkodGhlKWYoc3RyaW5ncylnKGluc2lkZS4pMzkgYihZKS04IGIob3UpMjYgYihzaG91bGQpZQorRnMoZnJlZVwoXCkpZyBGdCh0aGUpaChhcnJhKW0oeSloKHdoZW4pMzkwIDQ4MjEgeSh5KW0ob3UpMzEKK2IoYXJlKWYoZG9uZSwpaChidXQpZihub3QpZyh0aGUpaChwKXMob2luKW0odGVycy4pMzM1MAorNTAxMSB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkgYiBGZyhpbnQpMzkgYiBGZihybClwIDQzMgorNTAxMSBWIDUxIHcoYWRkKXAgNjY3IDUwMTEgViA0OSB3KGZ1bm1hcClwIDEwOTQgNTAxMQorViA0OSB3KGVuKW0odHJ5KTQ1IGIgRmUoXCgpcCBGcyhjb25zdCkyOSBiKGNoYXIpaCgqbmFtZSwpZQorKHJsX2NvbW1hbmRfZnVuY190KTU2NSA1MTIxIHkoKmZ1bmN0aW9uKXAgRmUoXCkpMzkwIDUyMzAKK3kgRnQoQWRkKWsgRmkobmFtZSkzOCBiIEZ0KHRvKTMzIGIodGhlKWcobGlzdCloKG9mKWYoYmluZGFibGUpZgorKFJlYWRsaW5lKWgoY29tbWFuZClnKG5hbWVzLClnKGFuZClmKG1hayltKGUpaSBGaShmdW5jdGlvbilmCitGdCh0aGUpMzkwIDUzNDAgeShmdW5jdGlvbilkKHRvKWgoYilzKGUpZihjYWxsZWQpaCh3aGVuKWYKK0ZpKG5hbWUpMzUgYiBGdChpcyljKGluKW0odiltKG9rKW0oZWQuKXAgZW9wIGVuZAorJSVQYWdlOiAzMiAzNgorVGVYRGljdCBiZWdpbiAzMiAzNSBib3AgMTUwIC0xMTYgYSBGdCgzMikyNjAwIGIoR05VKTMxCitiKFJlYWRsaW5lKWcoTGlicmFyeSkxNTAgMjk5IHkgRmgoMi40LjUpNjMgYihBbGxvKW0od2luZyk0MQorYihVbmRvaW5nKTI3NSA1MzkgeSBGdChTdXBwKXMob3J0aW5nKTI0IGIodGhlKWkodW5kbylmKGNvbW1hbmQpaChpcyloCisoYSlmKHBhaW5sZXNzKWgodGhpbmcsKWcoYW5kKWUobWFrKW0oZXMpaih5KW0ob3VyKWUoZnVuY3Rpb25zKWYobSltKHVjKQorbShoKWkobW9yZSkxNTAgNjQ4IHkodXNlZnVsLik0MCBiKEl0KTMwIGIoaXMpaChjZXJ0YWlubHkpZyhlYXN5KWcodG8pZworKHRyeSlnKHNvbWV0aGluZylnKGlmKWYoeSltKG91KWgoa25vKW0odylmKHkpbShvdSloKGNhbilmKHVuZG8pZyhpdC4pCisyNzUgNzc5IHkoSWYpNDAgYih5KW0ob3VyKWgoZnVuY3Rpb24pZihzaW1wbHkpZyhpbnNlcnRzKWgodGV4dCloKG9uY2UsKQoraShvcilkKGRlbGV0ZXMpaCh0ZXh0KWcob25jZSwpaShhbmQpYyh1c2VzKWggRnMocmxfaW5zZXJ0XykxNTAKKzg4OCB5KHRleHRcKFwpKTI2IGIgRnQob3IpaSBGcyhybF9kZWxldGVfdGV4dFwoXCkpMjMKK2IgRnQodG8pMjkgYihkbylmKGl0LCloKHRoZW4pZih1bmRvaW5nKWYoaXMpZyhhbHJlYWR5KWkoZG9uZSlmKGZvcilmKHkpCittKG91KWgoYXV0b21hdGljYWxseSktOCBiKC4pMjc1IDEwMTggeShJZikyMCBiKHkpbShvdSlnKGRvKWgobSltCisodWx0aXBsZSlnKGluc2VydGlvbnMpZihvciloKG0pbSh1bHRpcGxlKWcoZGVsZXRpb25zLClqKG9yKWMoYW4pbSh5KWgKKyhjb20pbShiaW5hdGlvbiloKG9mKWUodGhlc2UpaChvcClzKGVyYXRpb25zLCkxNTAgMTEyOAoreSh5KW0ob3UpMzggYihzaG91bGQpZihncm91cCloKHRoZW0pZyh0b2dldGhlciloKGluKW0odG8pZyhvbmUpZihvcClzCisoZXJhdGlvbi4pNjQgYihUaGlzKTM3IGIoaXMpaChkb25lKWcod2l0aClnIEZzKHJsX2JlZ2luX3VuZG9fKTE1MAorMTIzOCB5KGdyb3VwXChcKSkyOCBiIEZ0KGFuZClpIEZzKHJsX2VuZF91bmRvX2dyb3VwXChcKSlwCitGdCguKTI3NSAxMzY4IHkoVGhlKWYodCltKHlwKXMoZXMpaShvZilmKGV2KW0oZW4pbSh0cylpKHRoYXQpZihjYW4pZyhiKQorcyhlKWUodW5kb25lKWgoYXJlOikzOTAgMTQ3NiB5IEZkKGVudW0pNDAgYih1bmRvX2NvZGUpaCh7KWYKKyhVTkRPX0RFTEVURSwpaShVTkRPX0lOU0VSVCwpZyhVTkRPX0JFR0lOLClnKFVORE9fRU5EKWYofTspMjc1CisxNjA2IHkgRnQoTm90aWNlKTMyIGIodGhhdClmIEZzKFVORE9fREVMRVRFKWMgRnQobWVhbnMpaih0byloKGluc2VydClmCisoc29tZSloKHRleHQsKWgoYW5kKWQgRnMoVU5ET19JTlNFUlQpZSBGdChtZWFucylrKHRvKWcoZGVsZXRlKTE1MAorMTcxNSB5KHNvbWUpZCh0ZXh0Lik0MSBiKFRoYXQpMjcgYihpcywpaSh0aGUpZSh1bmRvKWcoY28pcyhkZSloKHRlbGxzKWcKKyh3aGF0KWcodG8pZyh1bmRvLClmKG5vdCloKGhvKW0odylnKHRvKWcodW5kbyllKGl0Lik0MQorYiBGcyhVTkRPX0JFR0lOKTI1IGIgRnQoYW5kKTE1MCAxODI1IHkgRnMoVU5ET19FTkQpagorRnQoYXJlKWoodGFncylnKGFkZGVkKWYoYiltKHkpZyBGcyhybF9iZWdpbl91bmRvX2dyb3VwXChcKSkyNQorYiBGdChhbmQpMzAgYiBGcyhybF9lbmRfdW5kb19ncm91cFwoXCkpcCBGdCguKTMzNTAgMTk5NworeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIgMTk5NworMzUgNSB2IDUxIHcoYilzKGVnaW4pcCA3NTYgMTk5NyBWIDQ5IHcodW5kbylwIDEwNTQgMTk5NworViA1MCB3KGdyb3VwKTQ1IGIgRmUoXCgpcCBGcyh2b2lkKXAgRmUoXCkpMzkwIDIxMDYgeQorRnQoQmVnaW5zKTMyIGIoc2EpbSh2aW5nKWcodW5kbylkKGluZm9ybWF0aW9uKWooaW4pZShhKWkoZ3JvdXApZQorKGNvbnN0cnVjdC4pNDMgYihUaGUpMzAgYih1bmRvKWcoaW5mb3JtYXRpb24paCh1c3VhbGx5KTM5MAorMjIxNiB5KGNvbWVzKTQyIGIoZnJvbSlmKGNhbGxzKWkodG8pZiBGcyhybF9pbnNlcnRfdGV4dFwoXCkpMzcKK2IgRnQoYW5kKWsgRnMocmxfZGVsZXRlX3RleHRcKFwpKXAgRnQoLClmKGJ1dCloKGNvdWxkKWgoYilzKGUpZih0aGUpMzkwCisyMzI1IHkocmVzdWx0KTMwIGIob2YpaChjYWxscylnKHRvKWcgRnMocmxfYWRkX3VuZG9cKFwpKXAKK0Z0KC4pMzM1MCAyNDk3IHkoW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKGludCkzOSBiCitGZihybClwIDQzMiAyNDk3IFYgNTEgdyhlbmQpcCA2NjQgMjQ5NyBWIDQ5IHcodW5kbylwCis5NjIgMjQ5NyBWIDQ5IHcoZ3JvdXApNDYgYiBGZShcKClwIEZzKHZvaWQpcCBGZShcKSkzOTAKKzI2MDYgeSBGdChDbG9zZXMpMjkgYih0aGUpaChjdXJyZW4pbSh0KWUodW5kbylnKGdyb3VwKWgoc3RhcnRlZClnKHdpdGgpCitnIEZzKHJsX2JlZ2luX3VuZG9fZ3JvdXApYyhcKFwpKXAgRnQoLikzOSBiKFRoZXJlKTI5CitiKHNob3VsZCkzOTAgMjcxNiB5KGIpcyhlKWgob25lKWcoY2FsbClpKHRvKWYgRnMocmxfZW5kX3VuZG9fZ3JvdXBcKFwpKQorMjUgYiBGdChmb3IpMzAgYihlYWMpbShoKWkoY2FsbClnKHRvKWYgRnMocmxfYmVnaW5fdW5kb19ncm91cFwoXCkpcAorRnQoLikzMzUwIDI4ODggeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcodm9pZCkzOQorYiBGZihybClwIDQ4NCAyODg4IFYgNTEgdyhhZGQpcCA3MTkgMjg4OCBWIDQ5IHcodW5kbyk0NQorYiBGZShcKClwIEZzKGVudW0pMjkgYih1bmRvX2NvZGUpZih3aGF0LCloKGludCloKHN0YXJ0LCllKGludClpKGVuZCwpZgorKGNoYXIpNTY1IDI5OTcgeSgqdGV4dClwIEZlKFwpKTM5MCAzMTA3IHkgRnQoUmVtZW0pbShiKXMoZXIpMzQKK2IoaG8pbSh3KWcodG8paCh1bmRvKWQoYW4paShldiltKGVuKW0odClpKFwoYWNjb3JkaW5nKWYodG8pZworRmkod2hhdClyIEZ0KFwpLik1MiBiKFRoZSkzMyBiKGFcMDEzZWN0ZWQpaih0ZXh0KWYocnVucylkKGZyb20pMzkwCiszMjE2IHkgRmkoc3RhcnQpaCBGdCh0byllIEZpKGVuZClwIEZ0KCwpZihhbmQpZyhlbmNvbXBhc3NlcyloCitGaSh0ZXh0KXAgRnQoLikzMzUwIDMzODggeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcodm9pZCkzOQorYiBGZihybClwIDQ4NCAzMzg4IFYgNTEgdyhmcmVlKXAgNzIzIDMzODggViA0OSB3KHVuZG8pcAorMTAyMSAzMzg4IFYgNTAgdyhsaXN0KTQ1IGIgRmUoXCgpcCBGcyh2b2lkKXAgRmUoXCkpMzkwCiszNDk3IHkgRnQoRiktOCBiKHJlZSkzMSBiKHRoZSlnKGV4aXN0aW5nKWcodW5kbylmKGxpc3QuKTMzNTAKKzM2NjkgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIKKzM2NjkgViA1MSB3KGRvKXAgNjA0IDM2NjkgViA1MCB3KHVuZG8pNDUgYiBGZShcKClwIEZzKHZvaWQpcAorRmUoXCkpMzkwIDM3NzkgeSBGdChVbmRvKTIyIGIodGhlKWgoXDAxNHJzdClnKHRoaW5nKWYob24paCh0aGUpZyh1bmRvKWYKKyhsaXN0LikzOSBiKFJldHVybnMpMjIgYiBGcygwKWcgRnQoaWYpaCh0aGVyZSlnKHcpbShhcylnKG5vdGhpbmcpZyh0byloCisodW5kbywpZihub24temVybykzOTAgMzg4OCB5KGlmKTMwIGIoc29tZXRoaW5nKWgodyltKGFzKWcodW5kb25lLikyNzUKKzQwNjAgeShGaW5hbGx5KS04IGIoLCkzMiBiKGlmKWYoeSltKG91KWgobmVpdGhlcilmKGluc2VydClnKG5vcilmCisoZGVsZXRlKWoodGV4dCwpZihidXQpZihkaXJlY3RseSlnKG1vKXMoZGlmeSlnKHRoZSlnKGV4aXN0aW5nKWgodGV4dClnCisoXChlLmcuLCkxNTAgNDE2OSB5KGMpbShoYW5nZSk0MCBiKGl0cylmKGNhc2VcKSwpaihjYWxsKWUKK0ZzKHJsX21vZGlmeWluZ1woXCkpMzUgYiBGdChvbmNlLCk0MiBiKGp1c3QpYyhiKXMoZWZvcmUpZyh5KW0ob3UpaChtbylzCisoZGlmeSlmKHRoZSloKHRleHQuKTY3IGIoWSktOCBiKG91KTM5IGIobSltKHVzdCkxNTAgNDI3OQoreShzdXBwbHkpMjkgYih0aGUpaChpbmRpY2VzKWgob2YpZih0aGUpaCh0ZXh0KWcocmFuZ2UpZyh0aGF0KWcoeSltKG91KWcKKyhhcmUpZyhnb2luZylnKHRvKWcobW8pcyhkaWZ5KS04IGIoLikzMzUwIDQ0NTAgeShbRilnKHVuY3Rpb25dKS0zNTk5CitiIEZnKGludCkzOSBiIEZmKHJsKXAgNDMyIDQ0NTAgViA1MSB3KG1vKXMoZGlmeWluZyk0NgorYiBGZShcKClwIEZzKGludCkyOSBiKHN0YXJ0LClnKGludCloKGVuZClwIEZlKFwpKTM5MAorNDU2MCB5IEZ0KFQpLTggYihlbGwpNDEgYihSZWFkbGluZSlnKHRvKWcoc2EpbSh2KW0oZSlnKHRoZSlnKHRleHQpZyhiKXMKKyhldCltKHcpbShlZW4pZyBGaShzdGFydClpIEZ0KGFuZCljIEZpKGVuZClrIEZ0KGFzKWUoYSlmKHNpbmdsZSloKHVuZG8pCitlKHVuaXQuKTcwIGIoSXQpNDAgYihpcykzOTAgNDY3MCB5KGFzc3VtZWQpMzAgYih0aGF0KWgoeSltKG91KWYod2lsbCloCisoc3Vic2VxdWVuKW0odGx5KWYobW8pcyhkaWZ5KWYodGhhdClpKHRleHQuKTE1MCA0ODgxCit5IEZoKDIuNC42KTYzIGIoUmVkaXNwbGEpbSh5KTMzNTAgNTEyMSB5IEZ0KFtGKS04IGIodW5jdGlvbl0pLTM1OTkKK2IgRmcodm9pZCkzOSBiIEZmKHJsKXAgNDg0IDUxMjEgViA1MSB3KHJlZGlzcGxhKW0oeSk0NAorYiBGZShcKClwIEZzKHZvaWQpcCBGZShcKSkzOTAgNTIzMCB5IEZ0KENoYW5nZSkzOCBiKHdoYXQncylmKGRpc3BsYSltCisoeSltKGVkKWkob24pZSh0aGUpaChzY3JlZW4pZyh0byloKHJlXDAxNWVjdClmKHRoZSlnKGN1cnJlbiltKHQpZyhjb24pbQorKHRlbiltKHRzKWgob2YpZiBGcyhybF9saW5lXykzOTAgNTM0MCB5KGJ1ZmZlcilwIEZ0KC4pcAorZW9wIGVuZAorJSVQYWdlOiAzMyAzNworVGVYRGljdCBiZWdpbiAzMyAzNiBib3AgMTUwIC0xMTYgYSBGdChDaGFwdGVyKTMwIGIoMjopNDEKK2IoUHJvZ3JhbW1pbmcpMzAgYih3aXRoKWcoR05VKWgoUmVhZGxpbmUpMTY4MyBiKDMzKTMzNTAKKzI5OSB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkgYiBGZyhpbnQpMzkgYiBGZihybClwIDQzMgorMjk5IDM1IDUgdiA1MSB3KGZvcmNlZClwIDc5MCAyOTkgViA0OSB3KHVwKXMoZGF0ZSlwIDExODgKKzI5OSBWIDQ5IHcoZGlzcGxhKW0oeSk0NCBiIEZlKFwoKXAgRnModm9pZClwIEZlKFwpKTM5MAorNDA4IHkgRnQoRiktOCBiKG9yY2UpNDEgYih0aGUpZihsaW5lKWcodG8paChiKXMoZSllKHVwKXMoZGF0ZWQpZihhbmQpaAorKHJlZGlzcGxhKW0oeSltKGVkLClrKHdoZXRoZXIpYyhvcilnKG5vdCloKFJlYWRsaW5lKWgodGhpbmtzKWUodGhlKTM5MAorNTE4IHkoc2NyZWVuKTMwIGIoZGlzcGxhKW0oeSloKGlzKWYoY29ycmVjdC4pMzM1MCA3MjUKK3koW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKGludCkzOSBiIEZmKHJsKXAgNDMyIDcyNQorViA1MSB3KG9uKXAgNjA0IDcyNSBWIDUwIHcobmV3KXAgODU0IDcyNSBWIDQ5IHcobGluZSk0NAorYiBGZShcKClwIEZzKHZvaWQpcCBGZShcKSkzOTAgODM1IHkgRnQoVCktOCBiKGVsbCkzMQorYih0aGUpZih1cClzKGRhdGUpZihmdW5jdGlvbnMpZyh0aGF0KWkodyltKGUpZihoYSltKHYpbShlKWgobW8pbSh2KW0KKyhlZClnKG9uKW0odG8pZyhhKWYobmV3KWYoXChlbXB0KW0oeVwpKWkobGluZSwpZyh1c3VhbGx5KWUoYWZ0ZXIpMzkwCis5NDQgeShvdXB1dHRpbmcpaChhKWgobmV3bGluZS4pMzM1MCAxMTUxIHkoW0YpLTggYih1bmN0aW9uXSktMzU5OQorYiBGZyhpbnQpMzkgYiBGZihybClwIDQzMiAxMTUxIFYgNTEgdyhvbilwIDYwNCAxMTUxIFYKKzUwIHcobmV3KXAgODU0IDExNTEgViA0OSB3KGxpbmUpcCAxMDg0IDExNTEgViA0OSB3KHdpdGgpcAorMTM1NyAxMTUxIFYgNTAgdyhwcm9tcHQpNDUgYiBGZShcKClwIEZzKHZvaWQpcCBGZShcKSkzOTAKKzEyNjEgeSBGdChUKS04IGIoZWxsKTI1IGIodGhlKWYodXApcyhkYXRlKWYoZnVuY3Rpb25zKWgodGhhdCloKHcpbShlKWYKKyhoYSltKHYpbShlKWgobW8pbSh2KW0oZWQpZyhvbiltKHRvKWgoYSllKG5ldylnKGxpbmUsKWkod2l0aClkCitGaShybClwIDMxMDYgMTI2MSAyOCA0IHYgNDAgdyhwcm9tcHQpaSBGdChhbHJlYWR5KTM5MAorMTM3MCB5KGRpc3BsYSltKHkpbShlZC4pNDEgYihUaGlzKTI4IGIoY291bGQpZyhiKXMoZSlnKHVzZWQpZyhiKW0oeSlnCisoYXBwbGljYXRpb25zKWkodGhhdClmKHcpbShhbiltKHQpaCh0bylmKG91dHB1dClmKHRoZSloKHByb21wdClmCisoc3RyaW5nKTM5MCAxNDgwIHkodGhlbXNlbHYpbShlcywpaChidXQpZShzdGlsbCloKG5lZWQpZyhSZWFkbGluZSlnKHRvKQorZyhrbm8pbSh3KWYodGhlKWgocHJvbXB0KWUoc3RyaW5nKWgobGVuZ3RoKWgoZm9yKWYocmVkaXNwbGEpbSh5KS04CitiKC4pNDEgYihJdCkzOTAgMTU5MCB5KHNob3VsZCkyOSBiKGIpcyhlKWgodXNlZClnKGFmdGVyKWgoc2V0dGluZylnCitGaShybClwIDE1OTAgMTU5MCBWIDQwIHcoYWxyZWFkeSlwIDE5MjAgMTU5MCBWIDQxIHcocHJvbXB0ZWQpcAorRnQoLikzMzUwIDE3OTcgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcoaW50KTM5IGIKK0ZmKHJsKXAgNDMyIDE3OTcgMzUgNSB2IDUxIHcocmVzZXQpcCA3MjYgMTc5NyBWIDQ5IHcobGluZSlwCis5NTYgMTc5NyBWIDQ5IHcoc3RhdGUpNDQgYiBGZShcKClwIEZzKHZvaWQpcCBGZShcKSkzOTAKKzE5MDYgeSBGdChSZXNldCkzNiBiKHRoZSllKGRpc3BsYSltKHkpaChzdGF0ZSloKHRvKWcoYSlmKGNsZWFuKWcoc3RhdGUpCitoKGFuZCllKHJlZGlzcGxhKW0oeSloKHRoZSlnKGN1cnJlbiltKHQpZyhsaW5lKWcoc3RhcnRpbmcpZyhvbilnKGEpMzkwCisyMDE2IHkobmV3KTMwIGIobGluZS4pMzM1MCAyMjIzIHkoW0YpLTggYih1bmN0aW9uXSktMzU5OQorYiBGZyhpbnQpMzkgYiBGZihybClwIDQzMiAyMjIzIFYgNTEgdyhjcmxmKTQ1IGIgRmUoXCgpcAorRnModm9pZClwIEZlKFwpKTM5MCAyMzMyIHkgRnQoTW8pbSh2KW0oZSkzMiBiKHRoZSlmKGN1cnNvcilmKHRvKWgodGhlKWYKKyhzdGFydCloKG9mKWcodGhlKWYobmV4dCloKHNjcmVlbilmKGxpbmUuKTMzNTAgMjUzOSB5KFtGKS04CitiKHVuY3Rpb25dKS0zNTk5IGIgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIgMjUzOSBWIDUxCit3KHNobyltKHcpcCA3MjkgMjUzOSBWIDUwIHcoYyltKGhhcik0NCBiIEZlKFwoKXAgRnMoaW50KTMwCitiKGMpcCBGZShcKSkzOTAgMjY0OSB5IEZ0KERpc3BsYSltKHkpayhjKW0oaGFyYWN0ZXIpZworRmkoYylrIEZ0KG9uKTMyIGIgRnMocmxfb3V0c3RyZWFtKXAgRnQoLik0NCBiKElmKTMyIGIoUmVhZGxpbmUpaChoYXMpZworKG5vdClmKGIpcyhlZW4pZyhzZXQpaCh0bylnKGRpc3BsYSltKHkpZyhtZXRhKTM5MCAyNzU5Cit5KGMpbShoYXJhY3RlcnMpMjcgYihkaXJlY3RseSktOCBiKCwpMjkgYih0aGlzKWMod2lsbClpKGNvbiltKHYpbShlcnQpZworKG1ldGEpZyhjKW0oaGFyYWN0ZXJzKWgodG8pZShhKWgobWV0YS1wcmVcMDE0eGVkKWYoayltKGV5KWcoc2VxdWVuY2UuKQorMzkwIDI4NjggeShUaGlzKWsoaXMpZyhpbiltKHRlbmRlZClnKGZvcilnKHVzZSlnKGIpbSh5KWgoYXBwbGljYXRpb25zKWcKKyh3aGljKW0oaClmKHdpc2gpZyh0byloKGRvKWYodGhlaXIpaChvKW0od24pZihyZWRpc3BsYSltKHkpLTgKK2IoLikzMzUwIDMwNzUgeShbRilnKHVuY3Rpb25dKS0zNTk5IGIgRmcoaW50KTM5IGIgRmYocmwpcAorNDMyIDMwNzUgViA1MSB3KG1lc3NhZ2UpNDUgYiBGZShcKClwIEZzKGNvbnN0KTI5IGIoY2hhcilnKCosKWgoLi4uKW8KK0ZlKFwpKTM5MCAzMTg1IHkgRnQoVGhlKTIwIGIoYXJndW1lbiltKHRzKWgoYXJlKWcoYSlnKGZvcm1hdClnKHN0cmluZylnCisoYXMpZih3KW0ob3VsZCloKGIpcyhlKWYoc3VwcGxpZWQpZih0bylqIEZzKHByaW50ZilwCitGdCgsKWYocClzKG9zc2libHkpZShjb24pbSh0YWluaW5nKTM5MCAzMjk0IHkoY29uKW0odiltKGVyc2lvbik0NQorYihzcClzKGVjaVwwMTRjYXRpb25zKWcoc3VjKW0oaClmKGFzKWcoYClwIEZzKFwwNDVkKXAKK0Z0KCcsKWsoYW5kKWMoYW4pbSh5KWcoYWRkaXRpb25hbCloKGFyZ3VtZW4pbSh0cylnKG5lY2Vzc2FyeSlmKHRvKTM5MAorMzQwNCB5KHNhdGlzZnkpZSh0aGUpZihjb24pbSh2KW0oZXJzaW9uKWkoc3ApcyhlY2lcMDE0Y2F0aW9ucy4pNzQKK2IoVGhlKTQxIGIocmVzdWx0aW5nKWgoc3RyaW5nKWYoaXMpZyhkaXNwbGEpbSh5KW0oZWQpaChpbilmKHRoZSloCitGaShlYyltKGhvKTM5MCAzNTEzIHkoYXJlYSlwIEZ0KC4pNjMgYihUaGUpMzcgYihlYyltKGhvKWkoYXJlYSlmKGlzKWcKKyhhbHNvKWcodXNlZClmKHRvKWgoZGlzcGxhKW0oeSlnKG4pbSh1bWVyaWMpZihhcmd1bWVuKW0odHMpaChhbmQpZgorKHNlYXJjKW0oaCloKHN0cmluZ3MuKTM5MCAzNjIzIHkoWSktOCBiKG91KTM0IGIoc2hvdWxkKWUoY2FsbClqCitGcyhybF9zYXZlX3Byb21wdCkyOSBiIEZ0KHRvKTM0IGIoc2EpbSh2KW0oZSloKHRoZSlmKHByb21wdCllCisoaW5mb3JtYXRpb24paShiKXMoZWZvcmUpZihjYWxsaW5nKWkodGhpcykzOTAgMzczMyB5KGZ1bmN0aW9uLikzMzUwCiszOTQwIHkoW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKGludCkzOSBiIEZmKHJsKXAgNDMyCiszOTQwIFYgNTEgdyhjbGVhcilwIDcyMiAzOTQwIFYgNDkgdyhtZXNzYWdlKTQ1IGIgRmUoXCgpcAorRnModm9pZClwIEZlKFwpKTM5MCA0MDQ5IHkgRnQoQ2xlYXIpMjkgYih0aGUpZyhtZXNzYWdlKWgoaW4pZih0aGUpZyhlYykKK20oaG8paChhcmVhLik0MSBiKElmKTI5IGIodGhlKWcocHJvbXB0KWYodyltKGFzKWgoc2EpbSh2KW0oZWQpaCh3aXRoKWYKKyhhKWcoY2FsbClpKHRvKWUgRnMocmxfc2F2ZV8pMzkwIDQxNTkgeShwcm9tcHQpMzggYiBGdChiKXMoZWZvcmUpaCh0aGUpCitnKGxhc3QpaChjYWxsKWgodG8pZiBGcyhybF9tZXNzYWdlKXAgRnQoLClmKGNhbGwpaSBGcworKHJsX3Jlc3RvcmVfcHJvbXB0KTM0IGIgRnQoYilzKGVmb3JlKTM5IGIoY2FsbGluZykzOTAKKzQyNjggeSh0aGlzKTMwIGIoZnVuY3Rpb24uKTMzNTAgNDQ3NSB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkKK2IgRmcodm9pZCkzOSBiIEZmKHJsKXAgNDg0IDQ0NzUgViA1MSB3KHNhKW0odiltKGUpcCA3NDMKKzQ0NzUgViA1MCB3KHByb21wdCk0NSBiIEZlKFwoKXAgRnModm9pZClwIEZlKFwpKTM5MCA0NTg1Cit5IEZ0KFNhKW0odiltKGUpZih0aGUpZihsbylzKGNhbClpKFJlYWRsaW5lKWUocHJvbXB0KWYoZGlzcGxhKW0oeSlpCisoc3RhdGUpZyhpbilmKHByZXBhcmF0aW9uKWcoZm9yKWcoZGlzcGxhKW0oeWluZylnKGEpZyhuZXcpMzkwCis0Njk1IHkobWVzc2FnZSkzMSBiKGluKWcodGhlKWYobWVzc2FnZSlpKGFyZWEpZih3aXRoKWYKK0ZzKHJsX21lc3NhZ2VcKFwpKXAgRnQoLikzMzUwIDQ5MDIgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5CitiIEZnKHZvaWQpMzkgYiBGZihybClwIDQ4NCA0OTAyIFYgNTEgdyhyZXN0b3JlKXAgODgyCis0OTAyIFYgNTAgdyhwcm9tcHQpNDUgYiBGZShcKClwIEZzKHZvaWQpcCBGZShcKSkzOTAgNTAxMQoreSBGdChSZXN0b3JlKWYodGhlKWUobG8pcyhjYWwpaShSZWFkbGluZSlnKHByb21wdClkKGRpc3BsYSltKHkpaShzdGF0ZSkKK2goc2EpbSh2KW0oZWQpZyhiKW0oeSlmKHRoZSlmKG1vc3QpaChyZWNlbiltKHQpaChjYWxsKWcodG8pMzkwCis1MTIxIHkgRnMocmxfc2F2ZV9wcm9tcHQpcCBGdCguKTY5IGIoaWYpNDEgYiBGcyhybF9zYXZlX3Byb21wdClkCitGdCh3KW0oYXMpaihjYWxsZWQpaSh0bylmKHNhKW0odiltKGUpaCh0aGUpZShwcm9tcHQpZihiKXMoZWZvcmUpaChhKWgKKyhjYWxsKTM5MCA1MjMwIHkodG8pMzcgYiBGcyhybF9tZXNzYWdlKXAgRnQoLClmKHRoaXMpaChmdW5jdGlvbilmCisoc2hvdWxkKWcoYilzKGUpZyhjYWxsZWQpaShiKXMoZWZvcmUpZih0aGUpZyhjb3JyZXNwKXMob25kaW5nKWUoY2FsbClqCisodG8pZyBGcyhybF8pMzkwIDUzNDAgeShjbGVhcl9tZXNzYWdlKXAgRnQoLilwIGVvcCBlbmQKKyUlUGFnZTogMzQgMzgKK1RlWERpY3QgYmVnaW4gMzQgMzcgYm9wIDE1MCAtMTE2IGEgRnQoMzQpMjYwMCBiKEdOVSkzMQorYihSZWFkbGluZSlnKExpYnJhcnkpMzM1MCAyOTkgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5CitiIEZnKGludCkzOSBiIEZmKHJsKXAgNDMyIDI5OSAzNSA1IHYgNTEgdyhleHBhbmQpcCA4NDQKKzI5OSBWIDQ5IHcocHJvbXB0KTQ1IGIgRmUoXCgpcCBGcyhjaGFyKTI5IGIoKnByb21wdClwCitGZShcKSkzOTAgNDA4IHkgRnQoRXhwYW5kKTQxIGIoYW4pbSh5KWooc3ApcyhlY2lhbClmKGMpbShoYXJhY3RlciloCisoc2VxdWVuY2VzKWYoaW4pZyBGaShwcm9tcHQpZyBGdChhbmQpZihzZXQpaSh1cClkKHRoZSlpKGxvKXMoY2FsKWgKKyhSZWFkbGluZSkzOTAgNTE4IHkocHJvbXB0KTM1IGIocmVkaXNwbGEpbSh5KWgodiktNSBiKGFyaWFibGVzLik1NworYihUaGlzKTM1IGIoZnVuY3Rpb24paChpcylnKGNhbGxlZCloKGIpbSh5KWUgRnMocmVhZGxpbmVcKFwpKXAKK0Z0KC4pNTUgYihJdCkzNSBiKG1hKW0oeSlpKGFsc28pZyhiKXMoZSkzOTAgNjI4IHkoY2FsbGVkKTIyCitiKHRvKWcoZXhwYW5kKWYodGhlKWcocHJpbWFyeSlmKHByb21wdClnKGlmKWkodGhlKWYgRnMKKyhybF9vbl9uZXdfbGluZV93aXRoX3Byb20pbyhwdFwoKW8oXCkpMTUgYiBGdChmdW5jdGlvbikzOTAKKzczNyB5KG9yKTI1IGIgRnMocmxfYWxyZWFkeV9wcm9tcHRlZCljIEZ0KHYpLTUgYihhcmlhYmxlKTI2CitiKGlzKWYodXNlZC4pMzkgYihJdCkyNSBiKHJldHVybnMpZih0aGUpaShuKW0odW0pbShiKXMoZXIpZShvZilpCisodmlzaWJsZSlmKGMpbShoYXJhY3RlcnMpMzkwIDg0NyB5KG9uKTM0IGIodGhlKWcobGFzdClnKGxpbmUpZyhvZilnCisodGhlKWcoXChwKXMob3NzaWJseSlmKG0pbSh1bHRpLWxpbmVcKSlqKHByb21wdC4pNTAgYihBcHBsaWNhdGlvbnMpMzQKK2IobWEpbSh5KWgoaW5kaWNhdGUpZih0aGF0KTM5MCA5NTYgeSh0aGUpMjggYihwcm9tcHQpZihjb24pbSh0YWlucylpKGMpCittKGhhcmFjdGVycylnKHRoYXQpZyh0YWspbShlKWcodXApZShubyloKHBoKW0oeXNpY2FsKWcoc2NyZWVuKWcoc3BhY2UpZworKHdoZW4pZihkaXNwbGEpbSh5KW0oZWQpMzkwIDEwNjYgeShiKW0oeSk0MSBiKGJyYWMpbShrKW0oZXRpbmcpaShhKWUKKyhzZXF1ZW5jZSlnKG9mKWcoc3VjKW0oaClnKGMpbShoYXJhY3RlcnMpaCh3aXRoKWYodGhlKWcoc3ApcyhlY2lhbCloCisobWFyayltKGVycylmIEZzKFJMX1BST01QVF8pMzkwIDExNzYgeShTVEFSVF9JR05PUkUpMjcKK2IgRnQoYW5kKWsgRnMoUkxfUFJPTVBUX0VORF9JR05PUkUpMjUgYiBGdChcKGRlY2xhcmVkKTMxCitiKGluKWcoYClwIEZzKHJlYWRsaW5lLmgpcCBGdCgnLikzOSBiKFRoaXMpMzAgYihtYSltKHkpaShiKXMoZSkzOTAKKzEyODUgeSh1c2VkKWUodG8paChlbSltKGIpcyhlZClmKHRlcm1pbmFsLXNwKXMoZWNpXDAxNGMpaChlc2NhcClzKGUpZgorKHNlcXVlbmNlcyloKGluKWYocHJvbXB0cy4pMzM1MCAxNDYxIHkoW0YpLTggYih1bmN0aW9uXSktMzU5OQorYiBGZyhpbnQpMzkgYiBGZihybClwIDQzMiAxNDYxIFYgNTEgdyhzZXQpcCA2MjYgMTQ2MQorViA0OSB3KHByb21wdCk0NSBiIEZlKFwoKXAgRnMoY29uc3QpMzAgYihjaGFyKWYoKnByb21wdClwCitGZShcKSkzOTAgMTU3MSB5IEZ0KE1hayltKGUpZihSZWFkbGluZSlnKHVzZSlmIEZpKHByb21wdCloCitGdChmb3IpZShzdWJzZXF1ZW4pbSh0KWgocmVkaXNwbGEpbSh5KS04IGIoLik0MCBiKFRoaXMpMjYKK2IoY2FsbHMpaSBGcyhybF9leHBhbmRfcHJvbXB0XChcKSkzOTAgMTY4MSB5IEZ0KHRvKWooZXhwYW5kKWYodGhlKWcKKyhwcm9tcHQpZyhhbmQpZyhzZXRzKWcgRnMocmxfcHJvbXB0KWUgRnQodG8paih0aGUpZyhyZXN1bHQuKTE1MAorMTg5NyB5IEZoKDIuNC43KTYzIGIoTW8pcyhkaWZ5aW5nKTQzIGIoVCktMTAgYihleHQpMzM1MAorMjEzOCB5IEZ0KFtGKWkodW5jdGlvbl0pLTM1OTkgYiBGZyhpbnQpMzkgYiBGZihybClwIDQzMgorMjEzOCBWIDUxIHcoaW5zZXJ0KXAgNzY5IDIxMzggViA0OSB3KHRleHQpNDQgYiBGZShcKClwCitGcyhjb25zdCkzMCBiKGNoYXIpZigqdGV4dClwIEZlKFwpKTM5MCAyMjQ4IHkgRnQoSW5zZXJ0KWkKK0ZpKHRleHQpayBGdChpbiltKHRvKWQodGhlKWcobGluZSlnKGF0KWcodGhlKWcoY3VycmVuKW0odClmKGN1cnNvcilnKHApCitzKG9zaXRpb24uKTQ1IGIoUmV0dXJucykzMCBiKHRoZSlpKG4pbSh1bSltKGIpcyhlcilmKG9mKWcoYyltKGhhci0pMzkwCisyMzU3IHkoYWN0ZXJzKWcoaW5zZXJ0ZWQuKTMzNTAgMjUzNCB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkKK2IgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIgMjUzNCBWIDUxIHcoZGVsZXRlKXAgNzgzIDI1MzQKK1YgNDcgdyh0ZXh0KTQ1IGIgRmUoXCgpcCBGcyhpbnQpMzAgYihzdGFydCwpZihpbnQpZyhlbmQpcAorRmUoXCkpMzkwIDI2NDMgeSBGdChEZWxldGUpNDAgYih0aGUpZSh0ZXh0KWgoYilzKGV0KW0odyltKGVlbilmCitGaShzdGFydClpIEZ0KGFuZClkIEZpKGVuZClrIEZ0KGluKWModGhlKWgoY3VycmVuKW0odClnKGxpbmUuKTYzCitiKFJldHVybnMpMzYgYih0aGUpaShuKW0odW0pbShiKXMoZXIpZihvZikzOTAgMjc1MyB5KGMpbShoYXJhY3RlcnMpMzIKK2IoZGVsZXRlZC4pMzM1MCAyOTI5IHkoW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKGNoYXIpMzkKK2IoKilnIEZmKHJsKXAgNTc1IDI5MjkgViA1MCB3KGNvcCltKHkpcCA4NTQgMjkyOSBWIDUxCit3KHRleHQpNDQgYiBGZShcKClwIEZzKGludCkzMCBiKHN0YXJ0LClmKGludClnKGVuZClwCitGZShcKSkzOTAgMzAzOSB5IEZ0KFJldHVybiloKGEpZyhjb3ApbSh5KWgob2YpZyh0aGUpZyh0ZXh0KWcoYilzKGV0KW0KKyh3KW0oZWVuKWcgRmkoc3RhcnQpaSBGdChhbmQpZCBGaShlbmQpaiBGdChpbilkKHRoZSloKGN1cnJlbiltKHQpZgorKGxpbmUuKTMzNTAgMzIxNSB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkgYiBGZyhpbnQpMzkKK2IgRmYocmwpcCA0MzIgMzIxNSBWIDUxIHcoa2lsbClwIDYzOSAzMjE1IFYgNTAgdyh0ZXh0KTQ0CitiIEZlKFwoKXAgRnMoaW50KTMwIGIoc3RhcnQsKWYoaW50KWcoZW5kKXAgRmUoXCkpMzkwCiszMzI0IHkgRnQoQ29wKW0oeSkzNCBiKHRoZSlnKHRleHQpaShiKXMoZXQpbSh3KW0oZWVuKWUKK0ZpKHN0YXJ0KWogRnQoYW5kKWQgRmkoZW5kKWogRnQoaW4pZCh0aGUpZyhjdXJyZW4pbSh0KWcobGluZSlnKHRvKWgKKyh0aGUpZihraWxsKWgocmluZywpZyhhcHApcyhlbmRpbmcpMzkwIDM0MzQgeShvcilmKHByZXApcyhlbmRpbmcpZSh0bylqCisodGhlKWYobGFzdCloKGtpbGwpZihpZilnKHRoZSlnKGxhc3QpaChjb21tYW5kKWYodyltKGFzKWcoYSloKGtpbGwpZgorKGNvbW1hbmQuKTUxIGIoVGhlKTM0IGIodGV4dCloKGlzKTM5MCAzNTQ0IHkoZGVsZXRlZC4pNTEKK2IoSWYpMzMgYiBGaShzdGFydClqIEZ0KGlzKWUobGVzcylnKHRoYW4pZiBGaShlbmQpcCBGdCgsKWgodGhlKWcodGV4dClnCisoaXMpZyhhcHApcyhlbmRlZCwpZihvdGhlcndpc2UpaChwcmVwKXMoZW5kZWQuKTQ4IGIoSWYpMzMKK2IodGhlKTM5MCAzNjUzIHkobGFzdCllKGNvbW1hbmQpZih3KW0oYXMpaChub3QpZyhhKWYoa2lsbCwpaShhKWYobmV3KWUKKyhraWxsKWkocmluZylnKHNsb3QpZyhpcylmKHVzZWQuKTMzNTAgMzgyOSB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkKK2IgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIgMzgyOSBWIDUxIHcocHVzaClwIDcyMCAzODI5CitWIDQ5IHcobWFjcm8pcCAxMDc1IDM4MjkgViA1MSB3KGlucHV0KTQ0IGIgRmUoXCgpcCBGcyhjaGFyKTI5CitiKCptYWNybylwIEZlKFwpKTM5MCAzOTM5IHkgRnQoQ2F1c2UpZiBGaShtYWNybykzMyBiCitGdCh0byljKGIpcyhlKWYoaW5zZXJ0ZWQpZyhpbiltKHRvKWgodGhlKWcobGluZSwpZyhhcylmKGlmKWgoaXQpZihoYWQpZworKGIpcyhlZW4pZyhpbiltKHYpbShvayltKGVkKWgoYiltKHkpZihhKWgoayltKGV5KWcoYilzKG91bmQpZCh0bykzOTAKKzQwNDkgeShhKTMxIGIobWFjcm8uKTQxIGIoTm90KTMxIGIoZXNwKXMoZWNpYWxseSloKHVzZWZ1bDspZSh1c2UpZworRnMocmxfaW5zZXJ0X3RleHRcKFwpKWMgRnQoaW5zdGVhZC4pMTUwIDQyNjUgeSBGaCgyLjQuOCk2MworYihDaGFyYWN0ZXIpMzkgYihJbnB1dCkzMzUwIDQ1MDYgeSBGdChbRiktOCBiKHVuY3Rpb25dKS0zNTk5CitiIEZnKGludCkzOSBiIEZmKHJsKXAgNDMyIDQ1MDYgViA1MSB3KHJlYWQpcCA3MDMgNDUwNgorViA0OSB3KGspbShleSk0NiBiIEZlKFwoKXAgRnModm9pZClwIEZlKFwpKTM5MCA0NjE2IHkKK0Z0KFJldHVybikyOSBiKHRoZSlnKG5leHQpaChjKW0oaGFyYWN0ZXIpaChhKW0odiktNSBiKGFpbGFibGUpMzIKK2IoZnJvbSlkKFJlYWRsaW5lJ3MpaChjdXJyZW4pbSh0KWYoaW5wdXQpZyhzdHJlYW0uKTQxCitiKFRoaXMpMjggYihoYW4tKTM5MCA0NzI1IHkoZGxlcyllKGlucHV0KWcoaW5zZXJ0ZWQpZyhpbiltKHRvKWkodGhlKWUKKyhpbnB1dClnKHN0cmVhbSloKHZpYSlnIEZpKHJsKXAgMjIyNiA0NzI1IDI4IDQgdiA0MCB3KHApcyhlbmRpbmcpcAorMjU4MyA0NzI1IFYgMzggdyhpbnB1dCloIEZ0KFwoc2VlKWYoU2VjdGlvbiloKDIuMylmKFtSZWFkLSkzOTAKKzQ4MzUgeShsaW5lKTQwIGIoViktOCBiKGFyaWFibGVzXSwpNDMgYihwYWdlKWQoMjRcKSlnKGFuZClmCitGcyhybF9zdHVmZl9jaGFyXChcKSlwIEZ0KCwpZihtYWNyb3MsKWsoYW5kKWQoYyltKGhhcmFjdGVycyloKHJlYWQpZgorKGZyb20pMzkwIDQ5NDUgeSh0aGUpMzQgYihrKW0oZXliKXMob2FyZC4pNTIgYihXaGlsZSkzNQorYih3KW0oYWl0aW5nKWcoZm9yKWYoaW5wdXQsKWcodGhpcylnKGZ1bmN0aW9uKWcod2lsbClnKGNhbGwpaShhbiltKHkpZQorKGZ1bmN0aW9uKWcoYXNzaWduZWQpMzkwIDUwNTQgeSh0bylkKHRoZSlnIEZzKHJsX2V2ZW50X2hvb2spMjYKK2IgRnQodiktNSBiKGFyaWFibGUuKTMzNTAgNTIzMCB5KFtGKWQodW5jdGlvbl0pLTM1OTkKK2IgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIgNTIzMCAzNSA1IHYgNTEgdyhnZXRjKTQ0IGIKK0ZlKFwoKXAgRnMoRklMRSkzMCBiKCpzdHJlYW0pcCBGZShcKSkzOTAgNTM0MCB5IEZ0KFJldHVybikyMAorYih0aGUpaShuZXh0KWYoYyltKGhhcmFjdGVyKWkoYSltKHYpLTUgYihhaWxhYmxlKTI0IGIoZnJvbSljCitGaShzdHJlYW0pcCBGdCgsKWsod2hpYyltKGgpZChpcylnKGFzc3VtZWQpZyh0byloKGIpcyhlKWUodGhlKWkoayltCisoZXliKXMob2FyZC4pcCBlb3AgZW5kCislJVBhZ2U6IDM1IDM5CitUZVhEaWN0IGJlZ2luIDM1IDM4IGJvcCAxNTAgLTExNiBhIEZ0KENoYXB0ZXIpMzAgYigyOik0MQorYihQcm9ncmFtbWluZykzMCBiKHdpdGgpZyhHTlUpaChSZWFkbGluZSkxNjgzIGIoMzUpMzM1MAorMjk5IHkoW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKGludCkzOSBiIEZmKHJsKXAgNDMyCisyOTkgMzUgNSB2IDUxIHcoc3R1XDAxMylwIDcwNCAyOTkgViA0OSB3KGMpbShoYXIpNDUgYgorRmUoXCgpcCBGcyhpbnQpMzAgYihjKXAgRmUoXCkpMzkwIDQwOCB5IEZ0KEluc2VydClpIEZpKGMpMzkKK2IgRnQoaW4pbSh0bykzNCBiKHRoZSlmKFJlYWRsaW5lKWcoaW5wdXQpZihzdHJlYW0uKTQ5CitiKEl0KTMzIGIod2lsbClnKGIpcyhlKWYgRnMoIilwIEZ0KHJlYWQpcCBGcygiKWcgRnQoYilzKGVmb3JlKWgKKyhSZWFkbGluZSlnKGF0dGVtcHRzKTM5MCA1MTggeSh0bykyNyBiKHJlYWQpZyhjKW0oaGFyYWN0ZXJzKWgoZnJvbSlmCisodGhlKWcodGVybWluYWwpZyh3aXRoKWYgRnMocmxfcmVhZF9rZXlcKFwpKXAgRnQoLikzNgorYihVcCkyNyBiKHRvKWcoNTEyKWgoYyltKGhhcmFjdGVycylnKG1hKW0oeSkzOTAgNjI4IHkoYilzKGUpaShwdXNoZWQpZgorKGJhYyltKGsuKTQyIGIgRnMocmxfc3R1ZmZfY2hhcikyNyBiIEZ0KHJldHVybnMpaSgxKWkoaWYpZih0aGUpaChjKW0KKyhoYXJhY3RlciloKHcpbShhcylmKHN1Y2Nlc3NmdWxseSlnKGluc2VydGVkOykzOTAgNzM3Cit5KDApZyhvdGhlcndpc2UuKTMzNTAgOTg1IHkoW0YpLTggYih1bmN0aW9uXSktMzU5OSBiCitGZyhpbnQpMzkgYiBGZihybClwIDQzMiA5ODUgViA1MSB3KGV4ZWN1dGUpcCA4NjIgOTg1CitWIDQ4IHcobmV4dCk0NSBiIEZlKFwoKXAgRnMoaW50KTMwIGIoYylwIEZlKFwpKTM5MCAxMDk1Cit5IEZ0KE1hayltKGUpMzcgYiBGaShjKTQyIGIgRnQoYilzKGUpMzUgYih0aGUpaChuZXh0KWYoY29tbWFuZCloKHRvKWcKKyhiKXMoZSlmKGV4ZWN1dGVkKWkod2hlbilkIEZzKHJsX3JlYWRfa2V5XChcKSllIEZ0KGlzKWsoY2FsbGVkLik1OAorYihUaGlzKTM5MCAxMjA1IHkoc2V0cykzMSBiIEZpKHJsKXAgNjM1IDEyMDUgMjggNCB2IDQwCit3KHApcyhlbmRpbmcpcCA5OTIgMTIwNSBWIDM4IHcoaW5wdXQpcCBGdCguKTMzNTAgMTQ1MworeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIgMTQ1MworMzUgNSB2IDUxIHcoY2xlYXIpcCA3MjIgMTQ1MyBWIDQ5IHcocClzKGVuZGluZylwIDExNzIKKzE0NTMgViA0OSB3KGlucHV0KTQ0IGIgRmUoXCgpcCBGcyh2b2lkKXAgRmUoXCkpMzkwIDE1NjIKK3kgRnQoVW5zZXQpZSBGaShybClwIDcyOSAxNTYyIDI4IDQgdiA0MCB3KHApcyhlbmRpbmcpcAorMTA4NiAxNTYyIFYgMzggdyhpbnB1dClwIEZ0KCwpaShlXDAxM2VjdGl2KW0oZWx5KWgobmVnYXRpbmcpZSh0aGUpZgorKGVcMDEzZWN0KWgob2YpZihhbiltKHkpZyhwcmV2aW91cylmKGNhbGwpaSh0bylnIEZzKHJsXykzOTAKKzE2NzIgeShleGVjdXRlX25leHRcKFwpKXAgRnQoLik1OSBiKFRoaXMpMzYgYih3KW0ob3JrcylpKG9ubHkpZyhpZilmCisodGhlKWgocClzKGVuZGluZyllKGlucHV0KWgoaGFzKWcobm90KWgoYWxyZWFkeSlnKGIpcyhlZW4pZihyZWFkKTM5MAorMTc4MiB5KHdpdGgpMzAgYiBGcyhybF9yZWFkX2tleVwoXCkpcCBGdCguKTMzNTAgMjAzMAoreShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIgMjAzMAorMzUgNSB2IDUxIHcoc2V0KXAgNjI2IDIwMzAgViA0OSB3KGspbShleWIpcyhvYXJkKXAgMTEzNgorMjAzMCBWIDUxIHcoaW5wdXQpcCAxNDU2IDIwMzAgViA0OCB3KHRpbWVvdXQpNDUgYiBGZShcKClwCitGcyhpbnQpMjkgYih1KXAgRmUoXCkpMzkwIDIxMzkgeSBGdChXaGlsZSk0MSBiKHcpbShhaXRpbmcpZyhmb3IpZihrKW0KKyhleWIpcyhvYXJkKWcoaW5wdXQpZihpbiloIEZzKHJsX3JlYWRfa2V5XChcKSlwIEZ0KCwpZihSZWFkbGluZSlpKHdpbGwpCitmKHcpbShhaXQpaChmb3IpZiBGaSh1KWcgRnQobWktKTM5MCAyMjQ5IHkoY3Jvc2Vjb25kcyloKGZvcilnKGlucHV0KWYKKyhiKXMoZWZvcmUpZyhjYWxsaW5nKWooYW4pbSh5KWUoZnVuY3Rpb24pZihhc3NpZ25lZCloKHRvKWgKK0ZzKHJsX2V2ZW50X2hvb2spcCBGdCguKTY4IGIoVGhlKTM5MCAyMzU5IHkoZGVmYXVsdCkzMQorYih3KW0oYWl0aW5nKWcocClzKGVyaW8pcyhkKWUoaXMpaShvbmUtdGVuKW0odGgpZyhvZilnKGEpZyhzZWNvbmQuKTQwCitiKFJldHVybnMpMzAgYih0aGUpZyhvbGQpaCh0aW1lb3V0KWcodiktNSBiKGFsdWUuKTE1MAorMjY0NyB5IEZoKDIuNC45KTYzIGIoVCktMTAgYihlcm1pbmFsKTQxIGIoTWFuYWdlbWVuKW0odCkzMzUwCisyOTIzIHkgRnQoW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKHZvaWQpMzkgYiBGZihybClwCis0ODQgMjkyMyBWIDUxIHcocHJlcClwIDc2MyAyOTIzIFYgNDkgdyh0ZXJtaW5hbCk0NCBiCitGZShcKClwIEZzKGludCkzMCBiKG1ldGFfZmxhZylwIEZlKFwpKTM5MCAzMDMyIHkgRnQoTW8pcyhkaWZ5KTQyCitiKHRoZSloKHRlcm1pbmFsKWcoc2V0dGluZ3MpZyhmb3IpZihSZWFkbGluZSdzKWkodXNlLCloKHNvKWUKK0ZzKHJlYWRsaW5lXChcKSljIEZ0KGNhbilrKHJlYWQpZihhKWgoc2luZ2xlKTM5MCAzMTQyCit5KGMpbShoYXJhY3RlcikzMiBiKGF0KWcoYSlmKHRpbWUpaChmcm9tKWUodGhlKWgoayltKGV5YilzKG9hcmQuKTQzCitiKFRoZSkzMCBiIEZpKG1ldGEpcCAyMzc2IDMxNDIgMjggNCB2IDQxIHcoXDAxNWFnKTM5CitiIEZ0KGFyZ3VtZW4pbSh0KTMxIGIoc2hvdWxkKWYoYilzKGUpZyhub24temVybykzOTAgMzI1MQoreShpZilnKFJlYWRsaW5lKWgoc2hvdWxkKWYocmVhZClnKGVpZ2gpbSh0LWJpdClpKGlucHV0LikzMzUwCiszNTAwIHkoW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKHZvaWQpMzkgYiBGZihybClwCis0ODQgMzUwMCAzNSA1IHYgNTEgdyhkZXByZXApcCA4ODAgMzUwMCBWIDQ4IHcodGVybWluYWwpNDUKK2IgRmUoXCgpcCBGcyh2b2lkKXAgRmUoXCkpMzkwIDM2MDkgeSBGdChVbmRvKTMxIGIodGhlKWgoZVwwMTNlY3RzKWgob2YpCitmIEZzKHJsX3ByZXBfdGVybWluYWxcKFwpKXAgRnQoLCkyNyBiKGxlYSltKHZpbmcpMzMgYih0aGUpZih0ZXJtaW5hbClnCisoaW4pZih0aGUpaChzdGF0ZSloKGluKWUod2hpYyltKGgpMzkwIDM3MTkgeShpdClnKHcpbShhcylnKGIpcyhlZm9yZSlmCisodGhlKWcobW9zdCloKHJlY2VuKW0odClnKGNhbGwpaCh0bylmIEZzKHJsX3ByZXBfdGVybWluYWxcKFwpKXAKK0Z0KC4pMzM1MCAzOTY3IHkoW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKHZvaWQpMzkKK2IgRmYocmwpcCA0ODQgMzk2NyBWIDUxIHcodHQpbSh5KXAgNjgyIDM5NjcgViA1MCB3KHNldClwCis4NzUgMzk2NyBWIDQ5IHcoZGVmYXVsdClwIDEyNzMgMzk2NyBWIDQ5IHcoYmluZGluZ3MpNDQKK2IgRmUoXCgpcCBGcyhLZXltYXApMjkgYihrbWFwKXAgRmUoXCkpMzkwIDQwNzYgeSBGdChSZWFkKTM3CitiKHRoZSlnKG9wKXMoZXJhdGluZyloKHN5c3RlbSdzKWYodGVybWluYWwpZyhlZGl0aW5nKWgoYyltKGhhcmFjdGVycylnCisoXChhcylnKHcpbShvdWxkKWUoYilzKGUpaChkaXNwbGEpbSh5KW0oZWQpZyhiKW0oeSkzOTAKKzQxODYgeSBGcyhzdHR5KXAgRnQoXCkpMzAgYih0byloKHRoZWlyKWYoUmVhZGxpbmUpaChlcXVpdiktNQorYihhbGVuKW0odHMuKTQyIGIoVGhlKTMwIGIoYmluZGluZ3MpZihhcmUpaShwKXMoZXJmb3JtZWQpZShpbiloCitGaShrbWFwKXAgRnQoLikzMzUwIDQ0MzQgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcodm9pZCkzOQorYiBGZihybClwIDQ4NCA0NDM0IFYgNTEgdyh0dCltKHkpcCA2ODIgNDQzNCBWIDUwIHcodW5zZXQpcAorMTAwMyA0NDM0IFYgNDkgdyhkZWZhdWx0KXAgMTQwMSA0NDM0IFYgNDggdyhiaW5kaW5ncyk0NAorYiBGZShcKClwIEZzKEtleW1hcCkyOSBiKGttYXApcCBGZShcKSkzOTAgNDU0NCB5IEZ0KFJlc2V0KWsodGhlKWYKKyhiaW5kaW5ncyllKG1hbmlwdWxhdGVkKWkoYiltKHkpZyBGcyhybF90dHlfc2V0X2RlZmF1bHRfYmluZClvKGluZylvKHMpCisyNiBiIEZ0KHNvKTMyIGIodGhhdClnKHRoZSlnKHRlci0pMzkwIDQ2NTMgeShtaW5hbCk0MAorYihlZGl0aW5nKWcoYyltKGhhcmFjdGVycyloKGFyZSlmKGIpcyhvdW5kKWUodG8paSBGcyhybF9pbnNlcnQpcAorRnQoLik2NiBiKFRoZSkzOSBiKGJpbmRpbmdzKWYoYXJlKWkocClzKGVyZm9ybWVkKWUoaW4pMzkwCis0NzYzIHkgRmkoa21hcClwIEZ0KC4pMzM1MCA1MDExIHkoW0YpLTggYih1bmN0aW9uXSktMzU5OQorYiBGZyhpbnQpMzkgYiBGZihybClwIDQzMiA1MDExIFYgNTEgdyhyZXNldClwIDcyNiA1MDExCitWIDQ5IHcodGVybWluYWwpNDQgYiBGZShcKClwIEZzKGNvbnN0KTI5IGIoY2hhciloKCp0ZXJtaW5hbF9uYW1lKXAKK0ZlKFwpKTM5MCA1MTIxIHkgRnQoUmVpbml0aWFsaXplKWMoUmVhZGxpbmUncylmKGlkZWEpZihvZilnKHRoZSlnCisodGVybWluYWwpaChzZXR0aW5ncylmKHVzaW5nKWcgRmkodGVybWluYWwpcCAyOTc3IDUxMjEKKzI4IDQgdiA0MCB3KG5hbWUpMjkgYiBGdChhcykyNCBiKHRoZSlnKHRlcm1pLSkzOTAgNTIzMAoreShuYWwpMzIgYih0KW0oeXApcyhlKWcoXChlLmcuLClpIEZzKHZ0MTAwKXAgRnQoXCkuKTQ0CitiKElmKTMxIGIgRmkodGVybWluYWwpcCAxNzUzIDUyMzAgViA0MSB3KG5hbWUpMzcgYiBGdChpcykzMQorYiBGcyhOVUxMKXAgRnQoLCloKHRoZSlnKHYpLTUgYihhbHVlKTMyIGIob2YpZyh0aGUpZworRnMoVEVSTSllIEZ0KGVuKW0odmlyb25tZW4pbSh0KTM5MCA1MzQwIHkodiktNSBiKGFyaWFibGUpMzEKK2IoaXMpZyh1c2VkLilwIGVvcCBlbmQKKyUlUGFnZTogMzYgNDAKK1RlWERpY3QgYmVnaW4gMzYgMzkgYm9wIDE1MCAtMTE2IGEgRnQoMzYpMjYwMCBiKEdOVSkzMQorYihSZWFkbGluZSlnKExpYnJhcnkpMTUwIDI5OSB5IEZoKDIuNC4xMCk2MyBiKFV0aWxpdCltKHkpNDAKK2IoRiktMTAgYih1bmN0aW9ucykzMzUwIDU0NSB5IEZ0KFtGKWkodW5jdGlvbl0pLTM1OTkKK2IgRmcodm9pZCkzOSBiIEZmKHJsKXAgNDg0IDU0NSAzNSA1IHYgNTEgdyhyZXBsYWNlKXAKKzg5MSA1NDUgViA0OSB3KGxpbmUpNDQgYiBGZShcKClwIEZzKGNvbnN0KTI5IGIoY2hhcilnKCp0ZXh0LClnKGludClnCisoY2xlYXJfdW5kbylwIEZlKFwpKTM5MCA2NTQgeSBGdChSZXBsYWNlKTQxIGIodGhlKWUoY29uKW0odGVuKW0odHMpaQorKG9mKWYgRnMocmxfbGluZV9idWZmZXIpMzUgYiBGdCh3aXRoKWsgRmkodGV4dClwIEZ0KC4pNjkKK2IoVGhlKTM5IGIocClzKG9pbiltKHQpaChhbmQpZShtYXJrKWgoYXJlKWgocHJlLSkzOTAKKzc2NCB5KHNlcnYpbShlZCwpMjcgYihpZillKHApcyhvc3NpYmxlLikzOSBiKElmKTI1IGIKK0ZpKGNsZWFyKXAgMTQyMiA3NjQgMjggNCB2IDQxIHcodW5kbylrIEZ0KGlzKWQobm9uLXplcm8sKWgodGhlKWYodW5kbyllCisobGlzdClpKGFzc28pcyhjaWF0ZWQpaCh3aXRoKWUodGhlKWgoY3VycmVuKW0odCkzOTAgODc0Cit5KGxpbmUpMzEgYihpcylmKGNsZWFyZWQuKTMzNTAgMTA2MiB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkKK2IgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIgMTA2MiAzNSA1IHYgNTEgdyhleHRlbmQpcCA4MjIKKzEwNjIgViA0OCB3KGxpbmUpcCAxMDUxIDEwNjIgViA1MCB3KGJ1XDAxM2VyKTQ0IGIgRmUoXCgpcAorRnMoaW50KTMwIGIobGVuKXAgRmUoXCkpMzkwIDExNzEgeSBGdChFbnN1cmUpZih0aGF0KWgKK0ZzKHJsX2xpbmVfYnVmZmVyKWQgRnQoaGFzKWooZW5vdWdoKWYoc3BhY2UpaSh0bylnKGhvbGQpZgorRmkobGVuKWcgRnQoYyltKGhhcmFjdGVycywpaShwKXMob3NzaWJseSlkKHJlYWwtKTM5MAorMTI4MSB5KGxvKXMoY2F0aW5nKWooaXQpZihpZilmKG5lY2Vzc2FyeSktOCBiKC4pMzM1MAorMTQ2OSB5KFtGKWcodW5jdGlvbl0pLTM1OTkgYiBGZyhpbnQpMzkgYiBGZihybClwIDQzMgorMTQ2OSBWIDUxIHcoaW5pdGlhbGl6ZSlqIEZlKFwoKXAgRnModm9pZClwIEZlKFwpKTM5MAorMTU3OSB5IEZ0KEluaXRpYWxpemUpZChvcillKHJlLWluaXRpYWxpemUpaShSZWFkbGluZSdzKWYoaW4pbSh0ZXJuYWwpZgorKHN0YXRlLik2MiBiKEl0J3MpMzcgYihub3QpZyhzdHJpY3RseSloKG5lY2Vzc2FyeSlmKHRvKWgoY2FsbCkzOTAKKzE2ODggeSh0aGlzOykzMSBiIEZzKHJlYWRsaW5lXChcKSljIEZ0KGNhbGxzKTMyIGIoaXQpZihiKXMoZWZvcmUpZgorKHJlYWRpbmcpZyhhbiltKHkpaChpbnB1dC4pMzM1MCAxODc2IHkoW0YpLTggYih1bmN0aW9uXSktMzU5OQorYiBGZyhpbnQpMzkgYiBGZihybClwIDQzMiAxODc2IFYgNTEgdyhkaW5nKTQ0IGIgRmUoXCgpcAorRnModm9pZClwIEZlKFwpKTM5MCAxOTg2IHkgRnQoUmluZykzMCBiKHRoZSloKHRlcm1pbmFsKWcoYilzKGVsbCwpZihvYikKK3MoZXlpbmcpaCh0aGUpZihzZXR0aW5nKWkob2YpZSBGcyhiZWxsLXN0eWxlKXAgRnQoLikzMzUwCisyMTc0IHkoW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKGludCkzOSBiIEZmKHJsKXAgNDMyCisyMTc0IFYgNTEgdyhhbHBoYWIpcyhldGljKWogRmUoXCgpcCBGcyhpbnQpMzAgYihjKXAgRmUoXCkpMzkwCisyMjgzIHkgRnQoUmV0dXJuKWcoMSlnKGlmKWggRmkoYykzNiBiIEZ0KGlzKTMwIGIoYW4paChhbHBoYWIpcyhldGljKWcKKyhjKW0oaGFyYWN0ZXIuKTMzNTAgMjQ3MiB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkgYiBGZyh2b2lkKTM5CitiIEZmKHJsKXAgNDg0IDI0NzIgViA1MSB3KGRpc3BsYSltKHkpcCA4ODUgMjQ3MiBWIDQ5Cit3KG1hdGMpbShoKXAgMTI0MiAyNDcyIFYgNTAgdyhsaXN0KTQ1IGIgRmUoXCgpcCBGcyhjaGFyKTI5CitiKCoqbWF0Y2hlcywpZihpbnQpaChsZW4sKWgoaW50KWYobWF4KXAgRmUoXCkpMzkwIDI1ODEKK3kgRnQoQSkzNSBiKGNvbiltKHYpbShlbmllbmNlKWgoZnVuY3Rpb24pZShmb3IpZyhkaXNwbGEpbSh5aW5nKWgoYSlnCisobGlzdClnKG9mKWcoc3RyaW5ncylmKGluKWcoY29sdW1uYXIpZyhmb3JtYXQpaChvbilmKFJlYWQtKTM5MAorMjY5MSB5KGxpbmUncylnKG91dHB1dClmKHN0cmVhbS4pNTEgYiBGcyhtYXRjaGVzKTMxIGIKK0Z0KGlzKWoodGhlKWYobGlzdClpKG9mKWUoc3RyaW5ncywpaShpbillKGFyZ3YpaChmb3JtYXQsKWgoc3VjKW0oaCllCisoYXMpaChhKWcobGlzdClnKG9mKTM5MCAyODAwIHkoY29tcGxldGlvbikyNiBiKG1hdGMpbShoZXMuKTM5CitiIEZzKGxlbikyNCBiIEZ0KGlzKWcodGhlKWcobiltKHVtKW0oYilzKGVyKWYob2YpaShzdHJpbmdzKWYoaW4pZworRnMobWF0Y2hlcylwIEZ0KCwpZihhbmQpaCBGcyhtYXgpZiBGdChpcylpKHRoZSlmKGxlbmd0aCloKG9mKTM5MAorMjkxMCB5KHRoZSloKGxvbmdlc3QpaShzdHJpbmcpZShpbilnIEZzKG1hdGNoZXMpcCBGdCguKTM3CitiKFRoaXMpMjUgYihmdW5jdGlvbiloKHVzZXMpZyh0aGUpZyhzZXR0aW5nKWkob2YpZSBGcworKHByaW50LWNvbXBsZXRpb25zLSkzOTAgMzAxOSB5KGhvcml6b250YWxseSkzMyBiIEZ0KHRvKWsoc2VsZWN0KWgoaG8pbQorKHcpZSh0aGUpZyhtYXRjKW0oaGVzKWkoYXJlKWUoZGlzcGxhKW0oeSltKGVkKWgoXChzZWUpZyhTZWN0aW9uKWcKKygxLjMuMSloKFtSZWFkbGluZSkzOTAgMzEyOSB5KEluaXQpMzAgYihGaWxlKWkoU3luKW0odGF4XSwpZihwYWdlKWcKKyg0XCkuKTI3NSAzMzE3IHkoVGhlKWcoZm9sbG8pbSh3aW5nKWooYXJlKWUoaW1wbGVtZW4pbSh0ZWQpaChhcylmCisobWFjcm9zLCloKGRlXDAxNG5lZCllKGluKWggRnMoY2hhcmRlZnMuaClwIEZ0KC4pNDMgYihBcHBsaWNhdGlvbnMpMzMKK2Ioc2hvdWxkKTE1MCAzNDI3IHkocmVmcmFpbilkKGZyb20pZyh1c2luZylnKHRoZW0uKTMzNTAKKzM2MTUgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcoaW50KXAgMzUzIDM2MTUgViA5MAordyBGZihybClwIDQ4MyAzNjE1IFYgNTAgdyh1cHApcyhlcmNhc2UpcCAxMDMzIDM2MTUgVgorNDggdyhwKTQ2IGIgRmUoXCgpcCBGcyhpbnQpMjkgYihjKXAgRmUoXCkpMzkwIDM3MjQgeQorRnQoUmV0dXJuKWgoMSlnKGlmKWggRmkoYykzNiBiIEZ0KGlzKTMwIGIoYW4paCh1cHApcyhlcmNhc2UpZShhbHBoYWIpcworKGV0aWMpaShjKW0oaGFyYWN0ZXIuKTMzNTAgMzkxMiB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkKK2IgRmcoaW50KXAgMzUzIDM5MTIgViA5MCB3IEZmKHJsKXAgNDgzIDM5MTIgViA1MCB3KGxvKW0odyltKGVyY2FzZSlwCisxMDA0IDM5MTIgViA0OSB3KHApNDUgYiBGZShcKClwIEZzKGludCkzMCBiKGMpcCBGZShcKSkzOTAKKzQwMjIgeSBGdChSZXR1cm4pZygxKWcoaWYpaCBGaShjKTM2IGIgRnQoaXMpMzAgYihhKWgobG8pbSh3KW0oZXJjYXNlKWkKKyhhbHBoYWIpcyhldGljKWUoYyltKGhhcmFjdGVyLikzMzUwIDQyMTAgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5CitiIEZnKGludClwIDM1MyA0MjEwIFYgOTAgdyBGZihybClwIDQ4MyA0MjEwIFYgNTAgdyhkaWdpdClwCis3NjMgNDIxMCBWIDQ5IHcocCk0NiBiIEZlKFwoKXAgRnMoaW50KTI5IGIoYylwIEZlKFwpKTM5MAorNDMyMCB5IEZ0KFJldHVybiloKDEpZyhpZiloIEZpKGMpMzYgYiBGdChpcykzMCBiKGEpaChuKW0odW1lcmljKWYoYyltCisoaGFyYWN0ZXIuKTMzNTAgNDUwOCB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkgYiBGZyhpbnQpcAorMzUzIDQ1MDggViA5MCB3IEZmKHJsKXAgNDgzIDQ1MDggViA1MCB3KHRvKXAgNjM1IDQ1MDgKK1YgNTAgdyh1cHApcyhlcik0NCBiIEZlKFwoKXAgRnMoaW50KTMwIGIoYylwIEZlKFwpKTM5MAorNDYxNyB5IEZ0KElmKTIzIGIgRmkoYykzMCBiIEZ0KGlzKTI0IGIoYSlnKGxvKW0odyltKGVyY2FzZSlpKGFscGhhYilzCisoZXRpYyllKGMpbShoYXJhY3RlciwpaihyZXR1cm4pYyh0aGUpaChjb3JyZXNwKXMob25kaW5nKWUodXBwKXMoZXJjYXNlKQoraChjKW0oaGFyYWN0ZXIuKTMzNTAgNDgwNSB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkgYgorRmcoaW50KXAgMzUzIDQ4MDUgViA5MCB3IEZmKHJsKXAgNDgzIDQ4MDUgViA1MCB3KHRvKXAKKzYzNSA0ODA1IFYgNTAgdyhsbyltKHcpbShlcik0NSBiIEZlKFwoKXAgRnMoaW50KTMwIGIoYylwCitGZShcKSkzOTAgNDkxNSB5IEZ0KElmKWUgRmkoYykzNSBiIEZ0KGlzKTI5IGIoYW4pZyh1cHApcyhlcmNhc2UpZgorKGFscGhhYilzKGV0aWMpaChjKW0oaGFyYWN0ZXIsKWkocmV0dXJuKWQodGhlKWgoY29ycmVzcClzKG9uZGluZylmKGxvKW0KKyh3KW0oZXJjYXNlKWooYyltKGhhcmFjLSkzOTAgNTAyNSB5KHRlci4pMzM1MCA1MjEzIHkoW0YpLTgKK2IodW5jdGlvbl0pLTM1OTkgYiBGZyhpbnQpcCAzNTMgNTIxMyBWIDkwIHcgRmYocmwpcCA0ODMKKzUyMTMgViA1MCB3KGRpZ2l0KXAgNzYzIDUyMTMgViA0OSB3KHYpLTYgYihhbHVlKTQ1IGIKK0ZlKFwoKXAgRnMoaW50KTMwIGIoYylwIEZlKFwpKTM5MCA1MzIyIHkgRnQoSWYpZyBGaShjKTM2CitiIEZ0KGlzKTMxIGIoYSlmKG4pbSh1bSltKGIpcyhlciwpZyhyZXR1cm4pZih0aGUpaCh2KS01CitiKGFsdWUpMzEgYihpdClnKHJlcHJlc2VuKW0odHMuKXAgZW9wIGVuZAorJSVQYWdlOiAzNyA0MQorVGVYRGljdCBiZWdpbiAzNyA0MCBib3AgMTUwIC0xMTYgYSBGdChDaGFwdGVyKTMwIGIoMjopNDEKK2IoUHJvZ3JhbW1pbmcpMzAgYih3aXRoKWcoR05VKWgoUmVhZGxpbmUpMTY4MyBiKDM3KTE1MAorMjk5IHkgRmgoMi40LjExKTYzIGIoTWlzY2VsbGFuZW91cyk0MiBiKEYpLTEwIGIodW5jdGlvbnMpMzM1MAorNTYxIHkgRnQoW0YpaSh1bmN0aW9uXSktMzU5OSBiIEZnKGludCkzOSBiIEZmKHJsKXAgNDMyCis1NjEgMzUgNSB2IDUxIHcobWFjcm8pcCA3ODkgNTYxIFYgNTAgdyhiaW5kKTQ1IGIgRmUoXCgpcAorRnMoY29uc3QpMjkgYihjaGFyKWcoKmtleXNlcSwpZihjb25zdCloKGNoYXIpZygqbWFjcm8sKWcoS2V5bWFwKTU2NQorNjcxIHkobWFwKXAgRmUoXCkpMzkwIDc4MCB5IEZ0KEJpbmQpMjMgYih0aGUpZyhrKW0oZXkpaChzZXF1ZW5jZSlnCitGaShrKW0oZXlzZXEpaSBGdCh0byllKGluKW0odiltKG9rKW0oZSloKHRoZSlmKG1hY3JvKWYKK0ZpKG1hY3JvKXAgRnQoLikzOSBiKFRoZSkyMyBiKGJpbmRpbmcpZihpcylpKHApcyhlcmZvcm1lZClkKGluKTM5MAorODkwIHkgRmkobWFwKXAgRnQoLikzOSBiKFdoZW4pMjggYiBGaShrKW0oZXlzZXEpaSBGdChpcyllKGluKW0odiltKG9rKW0KKyhlZCwpaSh0aGUpZCBGaShtYWNybykzMyBiIEZ0KHdpbGwpMjggYihiKXMoZSlmKGluc2VydGVkKWcoaW4pbSh0bylpCisodGhlKWUobGluZS4pNDEgYihUaGlzKTI2IGIoZnVuY3Rpb24pMzkwIDk5OSB5KGlzKWsoZGVwcmVjYXRlZDspaSh1c2UpZQorRnMocmxfZ2VuZXJpY19iaW5kXChcKSkyNSBiIEZ0KGluc3RlYWQuKTMzNTAgMTIyMCB5KFtGKS04CitiKHVuY3Rpb25dKS0zNTk5IGIgRmcodm9pZCkzOSBiIEZmKHJsKXAgNDg0IDEyMjAgViA1MQordyhtYWNybylwIDg0MSAxMjIwIFYgNTEgdyhkdW1wKXMoZXIpNDUgYiBGZShcKClwIEZzKGludCkyOQorYihyZWFkYWJsZSlwIEZlKFwpKTM5MCAxMzI5IHkgRnQoUHJpbiltKHQpZSh0aGUpZyhrKW0oZXkpaChzZXF1ZW5jZXMpZworKGIpcyhvdW5kKWQodG8paihtYWNyb3MpZihhbmQpZyh0aGVpcilnKHYpLTUgYihhbHVlcywpMjgKK2IodXNpbmcpZih0aGUpZyhjdXJyZW4pbSh0KWcoayltKGV5bWFwLCkzOTAgMTQzOSB5KHRvKTMyCitiIEZzKHJsX291dHN0cmVhbSlwIEZ0KC4pNDAgYihJZikzMSBiIEZpKHJlYWRhYmxlKTM2CitiIEZ0KGlzKWMobm9uLXplcm8sKWcodGhlKWYobGlzdCloKGlzKWYoZm9ybWF0dGVkKWgoaW4pZihzdWMpbShoKWcoYSlnCisodyltKGEpbSh5KWkodGhhdCllKGl0KTM5MCAxNTQ4IHkoY2FuKWcoYilzKGUpZShtYWRlKWkocGFydClmKG9mKWgoYW4pZgorRnMoaW5wdXRyYyllIEZ0KFwwMTRsZSlqKGFuZCllKHJlLXJlYWQuKTMzNTAgMTc2OSB5KFtGKS04CitiKHVuY3Rpb25dKS0zNTk5IGIgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIgMTc2OSBWIDUxCit3KHYpLTYgYihhcmlhYmxlKXAgODc3IDE3NjkgViA0OCB3KGJpbmQpNDUgYiBGZShcKClwCitGcyhjb25zdCkyOSBiKGNoYXIpZygqdmFyaWFibGUsKWYoY29uc3QpaChjaGFyKWcoKnZhbHVlKXAKK0ZlKFwpKTM5MCAxODc4IHkgRnQoTWFrKW0oZSlpKHRoZSllKFJlYWRsaW5lKWcodiktNSBiKGFyaWFibGUpMzAKK2IgRmkodiktNSBiKGFyaWFibGUpMzUgYiBGdChoYSltKHYpbShlKTMwIGIgRmkodiktNSBiKGFsdWUpcAorRnQoLik0MSBiKFRoaXMpMjggYihiKXMoZWhhKW0odiltKGVzKWgoYXMpaChpZilmKHRoZSlnKHJlYWRsaW5lKWcoY29tLSkKKzM5MCAxOTg4IHkobWFuZClmKGApcCBGcyhzZXQpaSBGbCh2YXJpYWJsZSkzOCBiKHZhbHVlKTExCitiIEZ0KCcpMjggYihoYWQpZyhiKXMoZWVuKWcoZXhlY3V0ZWQpaShpbillKGFuKWggRnMoaW5wdXRyYyllCitGdChcMDE0bGUpaShcKHNlZSlnKFNlY3Rpb24paCgxLjMuMSkzOTAgMjA5OCB5KFtSZWFkbGluZSloKEluaXQpZihGaWxlKQoraShTeW4pbSh0YXhdLClmKHBhZ2UpZyg0XCkuKTMzNTAgMjMxOCB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkKK2IgRmcoY2hhcikzOSBiKCopZyBGZihybClwIDU3NSAyMzE4IFYgNTAgdyh2KS02IGIoYXJpYWJsZSlwCisxMDE5IDIzMTggViA0OSB3KHYpZyhhbHVlKTQ0IGIgRmUoXCgpcCBGcyhjb25zdCkzMCBiKGNoYXIpZigqdmFyaWFibGUpcAorRmUoXCkpMzkwIDI0MjcgeSBGdChSZXR1cm4pZihhKWkoc3RyaW5nKWYocmVwcmVzZW4pbSh0aW5nKWgodGhlKWYodiktNQorYihhbHVlKTMwIGIob2YpZih0aGUpaChSZWFkbGluZSlnKHYpLTUgYihhcmlhYmxlKTMwIGIKK0ZpKHYpLTUgYihhcmlhYmxlKXAgRnQoLik0MSBiKEYpLTggYihvcikzMCBiKGIpcyhvKXMob2xlYW4pMzkwCisyNTM3IHkodiktNSBiKGFyaWFibGVzLCkzMSBiKHRoaXMpZyhzdHJpbmcpZihpcylnKGVpdGhlciloKGApcAorRnMob24pcCBGdCgnKWYob3IpaChgKXAgRnMob2ZmKXAgRnQoJy4pMzM1MCAyNzU3IHkoW0YpLTgKK2IodW5jdGlvbl0pLTM1OTkgYiBGZyh2b2lkKTM5IGIgRmYocmwpcCA0ODQgMjc1NyBWIDUxCit3KHYpLTYgYihhcmlhYmxlKXAgOTI5IDI3NTcgViA0OSB3KGR1bXApcyhlcik0NCBiIEZlKFwoKXAKK0ZzKGludCkzMCBiKHJlYWRhYmxlKXAgRmUoXCkpMzkwIDI4NjcgeSBGdChQcmluKW0odClmKHRoZSlmKHJlYWRsaW5lKWgKKyh2KS01IGIoYXJpYWJsZSkzMCBiKG5hbWVzKWUoYW5kKWcodGhlaXIpaChjdXJyZW4pbSh0KWYodiktNQorYihhbHVlcykyOSBiKHRvKWggRnMocmxfb3V0c3RyZWFtKXAgRnQoLikzNyBiKElmKTI4IGIKK0ZpKHJlYWQtKTM5MCAyOTc3IHkoYWJsZSk0MCBiIEZ0KGlzKTM0IGIobm9uLXplcm8sKWkodGhlKWUobGlzdClnKGlzKWcKKyhmb3JtYXR0ZWQpaChpbilmKHN1YyltKGgpZyhhKWcodyltKGEpbSh5KWgodGhhdClnKGl0KWYoY2FuKWcoYilzKGUpZworKG1hZGUpZyhwYXJ0KWcob2YpZyhhbikzOTAgMzA4NiB5IEZzKGlucHV0cmMpMjggYiBGdChcMDE0bGUpaihhbmQpZgorKHJlLXJlYWQuKTMzNTAgMzMwNiB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkgYiBGZyhpbnQpMzkKK2IgRmYocmwpcCA0MzIgMzMwNiBWIDUxIHcoc2V0KXAgNjI2IDMzMDYgViA0OSB3KHBhcmVuKXAKKzk1OSAzMzA2IFYgNDkgdyhibGluaylwIDEyNjAgMzMwNiBWIDUwIHcodGltZW91dCk0NCBiCitGZShcKClwIEZzKGludCkzMCBiKHUpcCBGZShcKSkzOTAgMzQxNiB5IEZ0KFNldCkyNSBiKHRoZSloKHRpbWUpZihpbiltCisodGVydiktNSBiKGFsKTI3IGIoXChpbillKG1pY3Jvc2Vjb25kc1wpKWgodGhhdClnKFJlYWRsaW5lKWYodyltKGFpdHMpaAorKHdoZW4pZShzaG8pbSh3aW5nKWkoYSlmKGJhbGFuY2luZykzOTAgMzUyNiB5KGMpbShoYXJhY3RlcikzMgorYih3aGVuKWQgRnMoYmxpbmstbWF0Y2hpbmctcGFyZW4pYyBGdChoYXMpMzAgYihiKXMoZWVuKWcoZW5hYmxlZC4pMzM1MAorMzc0NiB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkgYiBGZyhjaGFyKTM5IGIoKilnIEZmKHJsKXAKKzU3NSAzNzQ2IFYgNTAgdyhnZXQpcCA3ODAgMzc0NiBWIDUwIHcodGVybWNhcCk0NSBiIEZlKFwoKXAKK0ZzKGNvbnN0KTI5IGIoY2hhcilnKCpjYXApcCBGZShcKSkzOTAgMzg1NiB5IEZ0KFJldHJpZXYpbShlKWcodGhlKWUKKyhzdHJpbmcpZyh2KS01IGIoYWx1ZSkyNyBiKG9mKWcodGhlKWgodGVybWNhcClmKGNhcGFiaWxpdCltKHkpaQorRmkoY2FwKXAgRnQoLik0MCBiKFJlYWRsaW5lKTI3IGIoZmV0YyltKGhlcyloKHRoZSlnKHRlcm1jYXApMzkwCiszOTY1IHkoZW4pbSh0cnkpMzQgYihmb3IpZih0aGUpaChjdXJyZW4pbSh0KWYodGVybWluYWwpaChuYW1lKWcoYW5kKWYKKyh1c2VzKWcodGhvc2UpaChjYXBhYmlsaXRpZXMpaCh0bylmKG1vKW0odiltKGUpaChhcm91bmQpZSh0aGUpMzkwCis0MDc1IHkoc2NyZWVuKTIxIGIobGluZSloKGFuZCllKHApcyhlcmZvcm0pZyhvdGhlciloKHRlcm1pbmFsLXNwKXMKKyhlY2lcMDE0YyloKG9wKXMoZXJhdGlvbnMsKWgobGlrKW0oZSlmKGVyYXNpbmcpZyhhKWYobGluZS4pMzgKK2IoUmVhZGxpbmUpMzkwIDQxODQgeShkbylzKGVzKWQobm90KWcodXNlKWcoYWxsKWcob2YpaChhKWYodGVybWluYWwncylnCisoY2FwYWJpbGl0aWVzLClrKGFuZCkzNCBiKHRoaXMpaChmdW5jdGlvbilnKHdpbGwpZyhyZXR1cm4pZih2KS01CitiKGFsdWVzKTM1IGIoZm9yKTM5MCA0Mjk0IHkob25seSkzMCBiKHRob3NlKWgoY2FwYWJpbGl0aWVzKWkoUmVhZGxpbmUpZQorKHVzZXMuKTE1MCA0NTU0IHkgRmgoMi40LjEyKTYzIGIoQWx0ZXJuYXRlKTQwIGIoSW4pbSh0ZXJmYWNlKTI3NQorNDgxNiB5IEZ0KEFuKWsoYWx0ZXJuYXRlKWkoaW4pbSh0ZXJmYWNlKWcoaXMpZihhKW0odiktNQorYihhaWxhYmxlKTQ3IGIodG8pZihwbGFpbillIEZzKHJlYWRsaW5lXChcKSlwIEZ0KC4pODEKK2IoU29tZSk0NSBiKGFwcGxpY2F0aW9ucyloKG5lZWQpZSh0bykxNTAgNDkyNiB5KGluKW0odGVybGVhKW0odiltKGUpMzIKK2IoayltKGV5YilzKG9hcmQpZChJL08pZyh3aXRoKWYoXDAxNGxlLClpKGRldmljZSwpaChvcillKHdpbmRvKW0odylmCisoc3lzdGVtKWgoSS9PLClnKHQpbSh5cGljYWxseSlpKGIpbSh5KWUodXNpbmcpZyhhKWcobWFpbikxNTAKKzUwMzUgeShsbylzKG9wKWYodG8pZyBGcyhzZWxlY3RcKFwpKWUgRnQob24paCh2KS01IGIoYXJpb3VzKTI4CitiKFwwMTRsZSlnKGRlc2NyaXB0b3JzLikzOSBiKFQpLTggYihvKTI4IGIoYWNjb21vKXMoZGF0ZSlpKHRoaXMpZQorKG5lZWQsKWcocmVhZGxpbmUpZyhjYW4pZyhhbHNvKWgoYilzKGUpMTUwIDUxNDUgeShpbiltKHYpbShvayltKGVkKWsKKyhhcyllKGEpaChgY2FsbGJhYyltKGsnKWgoZnVuY3Rpb24pZShmcm9tKWcoYW4pZyhldiltKGVuKW0odCloKGxvKXMKKyhvcC4pNDQgYihUaGVyZSkzMCBiKGFyZSlpKGZ1bmN0aW9ucylmKGEpbSh2KS01IGIoYWlsYWJsZSkzMworYih0bylmKG1hayltKGUpMTUwIDUyNTQgeSh0aGlzKWUoZWFzeSktOCBiKC4pcCBlb3AgZW5kCislJVBhZ2U6IDM4IDQyCitUZVhEaWN0IGJlZ2luIDM4IDQxIGJvcCAxNTAgLTExNiBhIEZ0KDM4KTI2MDAgYihHTlUpMzEKK2IoUmVhZGxpbmUpZyhMaWJyYXJ5KTMzNTAgMjk5IHkoW0YpLTggYih1bmN0aW9uXSktMzU5OQorYiBGZyh2b2lkKTM5IGIgRmYocmwpcCA0ODQgMjk5IDM1IDUgdiA1MSB3KGNhbGxiYWMpbShrKXAKKzkzNCAyOTkgViA0OSB3KGhhbmRsZXIpcCAxMzYzIDI5OSBWIDQ5IHcoaW5zdGFsbCk0NCBiCitGZShcKClwIEZzKGNvbnN0KTI5IGIoY2hhcilnKCpwcm9tcHQsKTU2NSA0MDggeShybF92Y3BmdW5jX3QpZQorKCpsaGFuZGxlcilwIEZlKFwpKTM5MCA1MTggeSBGdChTZXQpZSh1cClmKHRoZSloKHRlcm1pbmFsKWcoZm9yKWYKKyhyZWFkbGluZSlpKEkvTyllKGFuZClnKGRpc3BsYSltKHkpaCh0aGUpZyhpbml0aWFsKWgoZXhwYW5kZWQpZSh2KS01CitiKGFsdWUpMjYgYihvZilmIEZpKHByb21wdClwIEZ0KC4pMzkwIDYyOCB5KFNhKW0odiltKGUpMzMKK2IodGhlKWYodiktNSBiKGFsdWUpMzIgYihvZilnIEZpKGxoYW5kbGVyKTM3IGIgRnQodG8pYyh1c2UpZShhcyloKGEpZworKGZ1bmN0aW9uKWYodG8paChjYWxsKWgod2hlbillKGEpaChjb21wbGV0ZSloKGxpbmUpZihvZilnKGlucHV0KTM5MAorNzM3IHkoaGFzKWUoYilzKGVlbilnKGVuKW0odGVyZWQuKTQxIGIoVGhlKTMwIGIoZnVuY3Rpb24pZyh0YWspbShlcylpCisodGhlKWUodGV4dClpKG9mKWUodGhlKWgobGluZSlnKGFzKWYoYW4pZyhhcmd1bWVuKW0odC4pMzM1MAorOTI1IHkoW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKHZvaWQpMzkgYiBGZihybClwIDQ4NAorOTI1IFYgNTEgdyhjYWxsYmFjKW0oaylwIDkzNCA5MjUgViA0OSB3KHJlYWQpcCAxMjAzIDkyNQorViA1MCB3KGMpbShoYXIpNDQgYiBGZShcKClwIEZzKHZvaWQpcCBGZShcKSkzOTAgMTAzNQoreSBGdChXaGVuZXYpbShlcikzNCBiKGFuKWcoYXBwbGljYXRpb24paChkZXRlcm1pbmVzKWUodGhhdClpKGspbShleWIpcworKG9hcmQpZShpbnB1dClnKGlzKWgoYSltKHYpLTUgYihhaWxhYmxlLCkzNyBiKGl0KWQoc2hvdWxkKWYoY2FsbCkzOTAKKzExNDQgeSBGcyhybF9jYWxsYmFja19yZWFkX2NoYXJcKFwpKXAgRnQoLCkxNyBiKHdoaWMpbShoKTIyCitiKHdpbGwpZyhyZWFkKWYodGhlKWgobmV4dClnKGMpbShoYXJhY3RlciloKGZyb20pZih0aGUpZihjdXJyZW4pbSh0KWgKKyhpbnB1dCkzOTAgMTI1NCB5KHNvdXJjZS4pNzcgYihJZik0MSBiKHRoYXQpaShjKW0oaGFyYWN0ZXIpaChjb21wbGV0ZXMpCitnKHRoZSllKGxpbmUsKWsgRnMocmxfY2FsbGJhY2tfcmVhZF9jaGFyKTM2IGIgRnQod2lsbCk0MworYihpbiltKHYpbShvayltKGUpMzkwIDEzNjQgeSh0aGUpMzYgYiBGaShsaGFuZGxlcik0MQorYiBGdChmdW5jdGlvbikzNSBiKHNhKW0odiltKGVkKWgoYiltKHkpZyBGcyhybF9jYWxsYmFja19oYW5kbGVyX2lucylvCisodGFsbCkyOSBiIEZ0KHRvKTM2IGIocHJvKXMoY2VzcylmKHRoZSlnKGxpbmUuKTM5MCAxNDczCit5KEJlZm9yZSkyOCBiKGNhbGxpbmcpZyh0aGUpZiBGaShsaGFuZGxlcikzMiBiIEZ0KGZ1bmN0aW9uLCljKHRoZSllCisodGVybWluYWwpaShzZXR0aW5ncylmKGFyZSlnKHJlc2V0KWgodG8pZih0aGUpZyh2KS01CitiKGFsdWVzKTI3IGIodGhleSkzOTAgMTU4MyB5KGhhZClpKGIpcyhlZm9yZSlnKGNhbGxpbmcpagorRnMocmxfY2FsbGJhY2tfaGFuZGxlcl9pbnMpbyh0YWxsKW8gRnQoLilqKElmKTI5IGIodGhlKWgKK0ZpKGxoYW5kbGVyKTM2IGIgRnQoZnVuY3Rpb24pMjkgYihyZXR1cm5zLCkzOTAgMTY5MiB5KHRoZSljKHRlcm1pbmFsKWcKKyhzZXR0aW5ncyloKGFyZSlmKG1vKXMoZGlcMDE0ZWQpZShmb3IpaShSZWFkbGluZSdzKWcodXNlKWYoYWdhaW4uKTQwCitiIEZzKEVPRikyNCBiIEZ0KGlzKWgoaW5kaWNhdGVkKWcoYiltKHkpZihjYWxsaW5nKTM5MAorMTgwMiB5IEZpKGxoYW5kbGVyKTM2IGIgRnQod2l0aCkzMCBiKGEpaCBGcyhOVUxMKWUgRnQobGluZS4pMzM1MAorMTk5MCB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkgYiBGZyh2b2lkKTM5IGIgRmYocmwpcAorNDg0IDE5OTAgViA1MSB3KGNhbGxiYWMpbShrKXAgOTM0IDE5OTAgViA0OSB3KGhhbmRsZXIpcAorMTM2MyAxOTkwIFYgNDkgdyhyZW1vKW0odiltKGUpNDUgYiBGZShcKClwIEZzKHZvaWQpcAorRmUoXCkpMzkwIDIxMDAgeSBGdChSZXN0b3JlKTM4IGIodGhlKWYodGVybWluYWwpaCh0bylnKGl0cylmKGluaXRpYWwpaQorKHN0YXRlKWYoYW5kKWYocmVtbyltKHYpbShlKWgodGhlKWcobGluZSlmKGhhbmRsZXIuKTYwCitiKFRoaXMpMzcgYihtYSltKHkpaChiKXMoZSkzOTAgMjIwOSB5KGNhbGxlZClmKGZyb20pZih3aXRoaW4pZyhhKWgKKyhjYWxsYmFjKW0oayloKGFzKWYodyltKGVsbClnKGFzKWYoaW5kZXApcyhlbmRlbiltKHRseSktOAorYiguKTU4IGIoSWYpMzYgYih0aGUpaCBGaShsaGFuZGxlcik0MiBiIEZ0KGluc3RhbGxlZCkzNworYihiKW0oeSkzOTAgMjMxOSB5IEZzKHJsX2NhbGxiYWNrX2hhbmRsZXJfaW5zdClvKGFsbCkzMgorYiBGdChkbylzKGVzKTM5IGIobm90KWcoZXhpdClnKHRoZSlnKHByb2dyYW0sKWkoZWl0aGVyKWUodGhpcylnCisoZnVuY3Rpb24pZihvcikzOTAgMjQyOCB5KHRoZSkzMiBiKGZ1bmN0aW9uKWYocmVmZXJyZWQpZih0bylpKGIpbSh5KWcKKyh0aGUpZih2KS01IGIoYWx1ZSkzMiBiKG9mKWcgRnMocmxfZGVwcmVwX3Rlcm1fZnVuY3Rpb24pMjUKK2IgRnQoc2hvdWxkKTMwIGIoYilzKGUpaChjYWxsZWQpMzkwIDI1MzggeShiKXMoZWZvcmUpZih0aGUpaChwcm9ncmFtKWYKKyhleGl0cyloKHRvKWcocmVzZXQpZyh0aGUpZih0ZXJtaW5hbCloKHNldHRpbmdzLikxNTAKKzI3NjYgeSBGaCgyLjQuMTMpNjMgYihBKTQxIGIoUmVhZGxpbmUpZihFeGFtcGxlKTI3NSAzMDEyCit5IEZ0KEhlcmUpZihpcylnKGEpZyhmdW5jdGlvbilnKHdoaWMpbShoKWcoYyltKGhhbmdlcyloKGxvKW0odyltCisoZXJjYXNlKWgoYyltKGhhcmFjdGVycylnKHRvKWUodGhlaXIpZyh1cHApcyhlcmNhc2UpZihlcXVpdiktNQorYihhbGVuKW0odHMsKTE1MCAzMTIxIHkoYW5kKTM4IGIodXBwKXMoZXJjYXNlKWYoYyltKGhhcmFjdGVycylqKHRvKWYKKyhsbyltKHcpbShlcmNhc2UuKTY4IGIoSWYpMzcgYih0aGlzKWkoZnVuY3Rpb24pZih3KW0oYXMpaChiKXMob3VuZClkCisodG8paihgKXAgRnMoTS1jKXAgRnQoJywpaCh0aGVuKWUodCltKHlwaW5nKTE1MCAzMjMxCit5KGApcCBGcyhNLWMpcCBGdCgnKTI2IGIodyltKG91bGQpZyhjKW0oaGFuZ2UpaCh0aGUpZyhjYXNlKWcob2YpZyh0aGUpZgorKGMpbShoYXJhY3RlcilpKHVuZGVyKWQocClzKG9pbiltKHQuKTM5IGIoVCltKHlwaW5nKTI2CitiKGApcCBGcyhNLTEpaygwKWcoTS1jKXAgRnQoJyljKHcpbShvdWxkKWcoYyltKGhhbmdlKTE1MAorMzM0MSB5KHRoZSkzMSBiKGNhc2UpZyhvZilnKHRoZSlmKGZvbGxvKW0od2luZylpKDEwKWYoYyltKGhhcmFjdGVycywpaAorKGxlYSltKHZpbmcpZyh0aGUpZihjdXJzb3IpZihvbilnKHRoZSlnKGxhc3QpaShjKW0oaGFyYWN0ZXIpZyhjKW0KKyhoYW5nZWQuKTM5MCAzNDc3IHkgRnMoLyopNDcgYihJbnZlcnQpZih0aGUpaChjYXNlKWcob2YpZyh0aGUpZyhDT1VOVClmCisoZm9sbG93aW5nKWcoY2hhcmFjdGVycy4pZSgqLykzOTAgMzU4NyB5KGludCkzOTAgMzY5NgoreShpbnZlcnRfY2FzZV9saW5lKWYoXChjb3VudCwpaihrZXlcKSk2MjkgMzgwNiB5KGludCloKGNvdW50LClmKGtleTspCiszOTAgMzkxNSB5KHspNDg1IDQwMjUgeShyZWdpc3RlcilnKGludCloKHN0YXJ0LClmKGVuZCwpaChpOyk0ODUKKzQyNDQgeShzdGFydClnKD0pZyhybF9wb2ludDspNDg1IDQ0NjMgeShpZiloKFwocmxfcG9pbnQpZCg+PSlpCisocmxfZW5kXCkpNTgxIDQ1NzMgeShyZXR1cm4pZihcKDBcKTspNDg1IDQ3OTIgeShpZilpKFwoY291bnQpZSg8KWgoMFwpKQorNTgxIDQ5MDIgeSh7KTY3NiA1MDExIHkoZGlyZWN0aW9uKWYoPSloKC0xOyk2NzYgNTEyMQoreShjb3VudClnKD0pZygtY291bnQ7KTU4MSA1MjMwIHkofSk0ODUgNTM0MCB5KGVsc2UpcAorZW9wIGVuZAorJSVQYWdlOiAzOSA0MworVGVYRGljdCBiZWdpbiAzOSA0MiBib3AgMTUwIC0xMTYgYSBGdChDaGFwdGVyKTMwIGIoMjopNDEKK2IoUHJvZ3JhbW1pbmcpMzAgYih3aXRoKWcoR05VKWgoUmVhZGxpbmUpMTY4MyBiKDM5KTU4MQorMjk5IHkgRnMoZGlyZWN0aW9uKTQ1IGIoPSlqKDE7KTQ4NSA1MTggeSgvKilnKEZpbmQpZSh0aGUpaChlbmQpZyhvZilnCisodGhlKWcocmFuZ2UpZyh0bylnKG1vZGlmeS4pZigqLyk0ODUgNjI4IHkoZW5kKWgoPSloKHN0YXJ0KWUoKylpCisoXChjb3VudCllKCopaChkaXJlY3Rpb25cKTspNDg1IDg0NyB5KC8qKWgoRm9yY2UpZShpdCloKHRvKWcoYmUpaAorKHdpdGhpbillKHJhbmdlLilnKCovKTQ4NSA5NTYgeShpZilpKFwoZW5kKWUoPilpKHJsX2VuZFwpKTU4MQorMTA2NiB5KGVuZClmKD0pZyhybF9lbmQ7KTQ4NSAxMTc2IHkoZWxzZSlnKGlmKWcoXChlbmQpZyg8KWcoMFwpKTU4MQorMTI4NSB5KGVuZClnKD0pZygwOyk0ODUgMTUwNCB5KGlmKWgoXChzdGFydCllKD09KWgoZW5kXCkpNTgxCisxNjE0IHkocmV0dXJuKWYoXCgwXCk7KTQ4NSAxODMzIHkoaWYpaShcKHN0YXJ0KWUoPiloKGVuZFwpKTU4MQorMTk0MyB5KHspNjc2IDIwNTIgeShpbnQpZyh0ZW1wKWcoPSlnKHN0YXJ0Oyk2NzYgMjE2MgoreShzdGFydClnKD0pZyhlbmQ7KTY3NiAyMjcxIHkoZW5kKWcoPSloKHRlbXA7KTU4MSAyMzgxCit5KH0pNDg1IDI2MDAgeSgvKilnKFRlbGwpZShyZWFkbGluZSlnKHRoYXQpZyh3ZSlpKGFyZSlmKG1vZGlmeWluZyllCisodGhlKWkobGluZSwpNjI5IDI3MTAgeShzbylnKGl0KWcod2lsbClnKHNhdmUpZih0aGUpaCh1bmRvKWcKKyhpbmZvcm1hdGlvbi4pZCgqLyk0ODUgMjgxOSB5KHJsX21vZGlmeWluZyloKFwoc3RhcnQsKWgoZW5kXCk7KTQ4NQorMzAzOSB5KGZvciloKFwoaSloKD0pZihzdGFydDspZihpKWkoIT0pZihlbmQ7KWYoaSsrXCkpNTgxCiszMTQ4IHkoeyk2NzYgMzI1OCB5KGlmKWkoXChfcmxfdXBwZXJjYXNlX3ApNDMgYgorKFwocmxfbGluZV9idWZmZXJbaV1cKVwpKTc3MiAzMzY3IHkocmxfbGluZV9idWZmZXJbaV0pZyg9KWsKKyhfcmxfdG9fbG93ZXIpZShcKHJsX2xpbmVfYnVmZmVyW2ldXCk7KTY3NiAzNDc3IHkoZWxzZSlpKGlmKWcKKyhcKF9ybF9sb3dlcmNhc2VfcClkKFwocmxfbGluZV9idWZmZXJbaV1cKVwpKTc3MiAzNTg3Cit5KHJsX2xpbmVfYnVmZmVyW2ldKWYoPSlrKF9ybF90b191cHBlcillKFwocmxfbGluZV9idWZmZXJbaV1cKTspNTgxCiszNjk2IHkofSk0ODUgMzgwNiB5KC8qKWooTW92ZSllKHBvaW50KWgodG8pZyhvbilnKHRvcClnKG9mKWcodGhlKWcKKyhsYXN0KWcoY2hhcmFjdGVyKWUoY2hhbmdlZC4pZygqLyk0ODUgMzkxNSB5KHJsX3BvaW50KWgoPSloCisoXChkaXJlY3Rpb24pZSg9PSlqKDFcKSlmKD8pZyhlbmQpZygtKWgoMSlmKDopaChzdGFydDspNDg1Cis0MDI1IHkocmV0dXJuKWYoXCgwXCk7KTM5MCA0MTM0IHkofSkxNTAgNDQyNSB5IEZyKDIuNSk2OAorYihSZWFkbGluZSk0NyBiKFNpZ25hbCllKEhhbmRsaW5nKTI3NSA0NjgyIHkgRnQoU2lnbmFscyljKGFyZSloKGFzeW5jKW0KKyhocm9ub3VzKWcoZXYpbShlbiltKHRzKWgoc2VuKW0odClmKHRvKWcoYSlnKHBybylzKGNlc3MpZihiKW0oeSloKHRoZSlnCisoVW5peClmKGspbShlcm5lbCwpayhzb21ldGltZXMpZShvbikxNTAgNDc5MiB5KGIpcyhlaGFsZiljKG9mKWgKKyhhbm90aGVyKWcocHJvKXMoY2Vzcy4pNjggYihUaGV5KTM5IGIoYXJlKWgoaW4pbSh0ZW5kZWQpZyh0bylnCisoaW5kaWNhdGUpaChleGNlcHRpb25hbCloKGV2KW0oZW4pbSh0cywpaShsaWspbShlKWQoYSlmKHVzZXIpMTUwCis0OTAyIHkocHJlc3NpbmcpMjkgYih0aGUpaShpbiltKHRlcnJ1cHQpZShrKW0oZXkpaShvbilmKGhpcylmCisodGVybWluYWwsKWkob3IpZihhKWcobmV0KW0odyltKG9yayloKGNvbm5lY3Rpb24pZyhiKXMoZWluZylmKGJyb2spbQorKGVuLik0MCBiKFRoZXJlKTMwIGIoaXMpMTUwIDUwMTEgeShhKWQoY2xhc3MpZyhvZilmKHNpZ25hbHMpaCh0aGF0KWcKKyhjYW4pZyhiKXMoZSlmKHNlbiltKHQpaCh0bylnKHRoZSlmKHBybylzKGNlc3MpZyhjdXJyZW4pbSh0bHkpaAorKHJlYWRpbmcpZihpbnB1dClmKGZyb20paCh0aGUpaChrKW0oZXliKXMob2FyZC4pMTUwIDUxMjEKK3koU2luY2UpZyhSZWFkbGluZSlnKGMpbShoYW5nZXMpaCh0aGUpZSh0ZXJtaW5hbClpKGF0dHJpYnV0ZXMpZih3aGVuKWYKKyhpdCloKGlzKWYoY2FsbGVkLClqKGl0KWUobmVlZHMpZyh0bylnKHApcyhlcmZvcm0pZShzcClzKGVjaWFsKTE1MAorNTIzMCB5KHBybylzKGNlc3NpbmcpaSh3aGVuKWcoc3VjKW0oaClnKGEpaChzaWduYWwpZyhpcylnKHJlY2VpdiltKGVkKWgKKyhpbillKG9yZGVyKWcodG8paChyZXN0b3JlKWgodGhlKWUodGVybWluYWwpaCh0byloKGEpZihzYW5lKWYoc3RhdGUsKWoKKyhvcikxNTAgNTM0MCB5KHBybyltKHZpZGUpZyhhcHBsaWNhdGlvbilpKHdyaXRlcnMpZSh3aXRoKWcoZnVuY3Rpb25zKWcKKyh0byloKGRvKWcoc28pZihtYW4pbSh1YWxseSktOCBiKC4pcCBlb3AgZW5kCislJVBhZ2U6IDQwIDQ0CitUZVhEaWN0IGJlZ2luIDQwIDQzIGJvcCAxNTAgLTExNiBhIEZ0KDQwKTI2MDAgYihHTlUpMzEKK2IoUmVhZGxpbmUpZyhMaWJyYXJ5KTI3NSAyOTkgeShSZWFkbGluZSk0MCBiKGNvbiltKHRhaW5zKWkoYW4pZShpbiltCisodGVybmFsKWgoc2lnbmFsKWcoaGFuZGxlcilmKHRoYXQpaChpcylmKGluc3RhbGxlZCloKGZvcilmKGEpaChuKW0odW0pbQorKGIpcyhlcillKG9mKWgoc2lnbmFscykxNTAgNDA4IHkoXCgpcCBGcyhTSUdJTlQpcCBGdCgsKWsKK0ZzKFNJR1FVSVQpcCBGdCgsKWYgRnMoU0lHVEVSTSlwIEZ0KCwpZyBGcyhTSUdBTFJNKXAKK0Z0KCwpaCBGcyhTSUdUU1RQKXAgRnQoLClmIEZzKFNJR1RUSU4pcCBGdCgsKWcoYW5kKWUKK0ZzKFNJR1RUT1UpcCBGdChcKS4pNzUgYihXaGVuKTQxIGIob25lKWkob2YpMTUwIDUxOCB5KHRoZXNlKTMyCitiKHNpZ25hbHMpZyhpcylnKHJlY2VpdiltKGVkLClpKHRoZSllKHNpZ25hbClnKGhhbmRsZXIpZih3aWxsKWgocmVzZXQpZworKHRoZSlnKHRlcm1pbmFsKWcoYXR0cmlidXRlcyloKHRvKWYodGhvc2UpZyh0aGF0KTE1MAorNjI4IHkodyltKGVyZSljKGluKWYoZVwwMTNlY3QpaChiKXMoZWZvcmUpZiBGcyhyZWFkbGluZVwoXCkpZAorRnQodyltKGFzKWsoY2FsbGVkLCloKHJlc2V0KWYodGhlKWcoc2lnbmFsKWYoaGFuZGxpbmcpZyh0byloKHdoYXQpZihpdCkKK2godyltKGFzKWYoYilzKGVmb3JlKTE1MCA3MzcgeSBGcyhyZWFkbGluZVwoXCkpNDIgYiBGdCh3KW0oYXMpaworKGNhbGxlZCwpayhhbmQpNDQgYihyZXNlbmQpaCh0aGUpZyhzaWduYWwpaCh0bylnKHRoZSlmKGNhbGxpbmcpaQorKGFwcGxpY2F0aW9uLik4NiBiKElmKTQ0IGIoYW5kKWgod2hlbikxNTAgODQ3IHkodGhlKTM0CitiKGNhbGxpbmcpaShhcHBsaWNhdGlvbidzKWYoc2lnbmFsKWcoaGFuZGxlcillKHJldHVybnMsKWgoUmVhZGxpbmUpZworKHdpbGwpaChyZWluaXRpYWxpemUpaCh0aGUpZSh0ZXJtaW5hbCloKGFuZCkxNTAgOTU2IHkoY29uKW0odGluKW0odWUpMjkKK2IodG8pZyhhY2NlcHQpaChpbnB1dC4pMzkgYihXaGVuKTI4IGIoYSloIEZzKFNJR0lOVClkCitGdChpcylqKHJlY2VpdiltKGVkLCloKHRoZSllKFJlYWRsaW5lKWgoc2lnbmFsKWcoaGFuZGxlcilmKHApcyhlcmZvcm1zKQorMTUwIDEwNjYgeShzb21lKTM5IGIoYWRkaXRpb25hbCloKHcpbShvcmssKWgod2hpYyltKGgpZCh3aWxsKWgoY2F1c2UpZworKGFuKW0oeSloKHBhcnRpYWxseS1lbiltKHRlcmVkKWcobGluZSlmKHRvKWgoYilzKGUpZShhYilzKG9ydGVkKWcKKyhcKHNlZSlpKHRoZSkxNTAgMTE3NiB5KGRlc2NyaXB0aW9uKTMwIGIob2YpaCBGcworKHJsX2ZyZWVfbGluZV9zdGF0ZVwoXCkpMjUgYiBGdChiKXMoZWxvKW0od1wpLikyNzUgMTMyMworeShUaGVyZSllKGlzKWkoYW4pZihhZGRpdGlvbmFsKWgoUmVhZGxpbmUpZyhzaWduYWwpZyhoYW5kbGVyLClnKGZvcilmCitGcyhTSUdXSU5DSClwIEZ0KCwpZyh3aGljKW0oaClnKHRoZSlnKGspbShlcm5lbCloKHNlbmRzKWUodG8paihhKTE1MAorMTQzMyB5KHBybylzKGNlc3MpaSh3aGVuZXYpbShlciloKHRoZSlnKHRlcm1pbmFsJ3MpZyhzaXplKWgoYyltKGhhbmdlcykKK2coXChmb3IpZihleGFtcGxlLCloKGlmKWYoYSlnKHVzZXIpZihyZXNpemVzKWkoYW4pZSBGcyh4dGVybSlwCitGdChcKS4pMzkgYihUaGUpMTUwIDE1NDIgeShSZWFkbGluZSlkIEZzKFNJR1dJTkNIKWUgRnQoaGFuZGxlcilnKHVwKXMKKyhkYXRlcyloKFJlYWRsaW5lJ3MpaChpbiltKHRlcm5hbCloKHNjcmVlbillKHNpemUpaShpbmZvcm1hdGlvbiwpZyhhbmQpCitlKHRoZW4pMTUwIDE2NTIgeShjYWxscylnKGFuKW0oeSlmIEZzKFNJR1dJTkNIKWUgRnQoc2lnbmFsKWkoaGFuZGxlcilmCisodGhlKWgoY2FsbGluZyloKGFwcGxpY2F0aW9uKWcoaGFzKWYoaW5zdGFsbGVkLik1MSBiKFJlYWRsaW5lKTM1CitiKGNhbGxzKWcodGhlKTE1MCAxNzYyIHkoYXBwbGljYXRpb24ncylpIEZzKFNJR1dJTkNIKWMKK0Z0KHNpZ25hbClpKGhhbmRsZXIpZyh3aXRob3V0KWcocmVzZXR0aW5nKWgodGhlKWcodGVybWluYWwpZih0byloKGl0cylnCisob3JpZ2luYWwpZyhzdGF0ZS4pMTUwIDE4NzEgeShJZikzMSBiKHRoZSlpKGFwcGxpY2F0aW9uJ3MpZyhzaWduYWwpZworKGhhbmRsZXIpZShkbylzKGVzKWcobW9yZSloKHRoYW4pZyh1cClzKGRhdGUpZihpdHMpaShpZGVhKWYob2YpZyh0aGUpZworKHRlcm1pbmFsKWgoc2l6ZSlnKGFuZCkxNTAgMTk4MSB5KHJldHVybikyOCBiKFwoZm9yKWkoZXhhbXBsZSwpaChhKWYKK0ZzKGxvbmdqbXApZCBGdChiYWMpbShrKWsodG8pZihhKWcobWFpbilnKHBybylzKGNlc3NpbmcpZihsbylzKG9wXCksKWgKKyhpdClnIEZuKG11c3QpMzkgYiBGdChjYWxsKTMxIGIgRnMocmxfY2xlYW51cF8pMTUwIDIwOTAKK3koYWZ0ZXJfc2lnbmFsXChcKSkyNiBiIEZ0KFwoZGVzY3JpYilzKGVkKWsoYilzKGVsbyltKHdcKSwpaCh0bylnCisocmVzdG9yZSlnKHRoZSlnKHRlcm1pbmFsKWcoc3RhdGUuKTI3NSAyMjM4IHkoUmVhZGxpbmUpZShwcm8pbSh2aWRlcylmCisodCltKHcpbShvKWkodiktNSBiKGFyaWFibGVzKTI5IGIodGhhdCloKGFsbG8pbSh3KWcoYXBwbGljYXRpb24pZworKHdyaXRlcnMpZSh0byloKGNvbiltKHRyb2wpaCh3aGV0aGVyKWUob3IpaChub3QpMTUwIDIzNDgKK3koaXQpMzQgYih3aWxsKWYoY2F0YyltKGgpaShjZXJ0YWluKWYoc2lnbmFscylmKGFuZClnKGFjdCloKG9uKWYodGhlbSlnCisod2hlbilmKHRoZXkpaShhcmUpZihyZWNlaXYpbShlZC4pNTEgYihJdCkzMyBiKGlzKWcoaW1wKXMob3J0YW4pbSh0KWcKKyh0aGF0KTE1MCAyNDU3IHkoYXBwbGljYXRpb25zKTM4IGIoYyltKGhhbmdlKWcodGhlKWUodiktNQorYihhbHVlcykzNyBiKG9mKWcodGhlc2UpZyh2KS01IGIoYXJpYWJsZXMpMzcgYihvbmx5KWcod2hlbilmKGNhbGxpbmcpaQorRnMocmVhZGxpbmVcKFwpKXAgRnQoLClkKG5vdClpKGluKWcoYSkxNTAgMjU2NyB5KHNpZ25hbCkzMQorYihoYW5kbGVyLClmKHNvKWcoUmVhZGxpbmUncylpKGluKW0odGVybmFsKWYoc2lnbmFsKWcoc3RhdGUpaChpcyllKG5vdCkKK2goY29ycnVwdGVkLikzMzcxIDI3NzcgeShbViktOCBiKGFyaWFibGVdKS0zNTk4IGIgRmcoaW50KTM5CitiIEZmKHJsKXAgNDMyIDI3NzcgMzUgNSB2IDUxIHcoY2F0YyltKGgpcCA3NDcgMjc3NyBWCis0OCB3KHNpZ25hbHMpMzkwIDI4ODcgeSBGdChJZikyOCBiKHRoaXMpaCh2KS01IGIoYXJpYWJsZSkzMAorYihpcylmKG5vbi16ZXJvLCloKFJlYWRsaW5lKWYod2lsbClnKGluc3RhbGwpaChzaWduYWwpZihoYW5kbGVycylmKGZvcikKK2ggRnMoU0lHSU5UKXAgRnQoLClmIEZzKFNJR1FVSVQpcCBGdCgsKTM5MCAyOTk3IHkgRnMoU0lHVEVSTSlwCitGdCgsKWggRnMoU0lHQUxSTSlwIEZ0KCwpZiBGcyhTSUdUU1RQKXAgRnQoLCloIEZzKFNJR1RUSU4pcAorRnQoLClnKGFuZClnIEZzKFNJR1RUT1UpcCBGdCguKTM5MCAzMTQ0IHkoVGhlKWgoZGVmYXVsdClnKHYpLTUKK2IoYWx1ZSkzMSBiKG9mKWcgRnMocmxfY2F0Y2hfc2lnbmFscykyNiBiIEZ0KGlzKWsoMS4pMzM3MQorMzM1NSB5KFtWKS04IGIoYXJpYWJsZV0pLTM1OTggYiBGZyhpbnQpMzkgYiBGZihybClwIDQzMgorMzM1NSBWIDUxIHcoY2F0YyltKGgpcCA3NDcgMzM1NSBWIDQ4IHcoc2lnd2luYyltKGgpMzkwCiszNDY1IHkgRnQoSWYpMzAgYih0aGlzKWcodiktNSBiKGFyaWFibGUpMzEgYihpcylnKG5vbi16ZXJvLClnKFJlYWRsaW5lKQorZyh3aWxsKWcoaW5zdGFsbClnKGEpZyhzaWduYWwpZyhoYW5kbGVyKWUoZm9yKWggRnMoU0lHV0lOQ0gpcAorRnQoLikzOTAgMzYxMiB5KFRoZSlnKGRlZmF1bHQpZyh2KS01IGIoYWx1ZSkzMSBiKG9mKWcKK0ZzKHJsX2NhdGNoX3NpZ3dpbmNoKTI1IGIgRnQoaXMpMzEgYigxLikyNzUgMzgyMyB5KElmKWYoYW4paAorKGFwcGxpY2F0aW9uKWgoZG8pcyhlcylmKG5vdClnKHdpc2gpZih0bylpKGhhKW0odiltKGUpZyhSZWFkbGluZSlnCisoY2F0YyltKGgpZyhhbiltKHkpZihzaWduYWxzLCloKG9yKWYodG8paChoYW5kbGUpZShzaWduYWxzKTE1MAorMzkzMiB5KG90aGVyKTM5IGIodGhhbilmKHRob3NlKWgoUmVhZGxpbmUpaChjYXRjKW0oaGVzKWcoXCgpcAorRnMoU0lHSFVQKXAgRnQoLClnKGZvcillKGV4YW1wbGVcKSwpayhSZWFkbGluZSlkKHBybyltKHZpZGVzKWcoY29uKW0odikKK20oZW5pZW5jZSkxNTAgNDA0MiB5KGZ1bmN0aW9ucykzMCBiKHRvKWgoZG8pZih0aGUpaChuZWNlc3NhcnkpZworKHRlcm1pbmFsKWcoYW5kKWUoaW4pbSh0ZXJuYWwpaShzdGF0ZSloKGNsZWFuKW0odXApZih1cClzKG9uKWUocmVjZWlwdCkKK2kob2YpZyhhKWYoc2lnbmFsLikzMzUwIDQyNTMgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5CitiIEZnKHZvaWQpMzkgYiBGZihybClwIDQ4NCA0MjUzIFYgNTEgdyhjbGVhbiltKHVwKXAgOTE2Cis0MjUzIFYgNDggdyhhZnRlcilwIDEyMDAgNDI1MyBWIDQ5IHcoc2lnbmFsKTQ1IGIgRmUoXCgpcAorRnModm9pZClwIEZlKFwpKTM5MCA0MzYyIHkgRnQoVGhpcykzMyBiKGZ1bmN0aW9uKWgod2lsbClnKHJlc2V0KWcodGhlKWcKKyhzdGF0ZSlpKG9mKWUodGhlKWcodGVybWluYWwpZyh0byloKHdoYXQpZihpdClnKHcpbShhcylnKGIpcyhlZm9yZSlnCitGcyhyZWFkbGluZVwoXCkpMzkwIDQ0NzIgeSBGdCh3KW0oYXMpYyhjYWxsZWQsKWgoYW5kKWQocmVtbyltKHYpbShlKWoKKyh0aGUpZihSZWFkbGluZSlnKHNpZ25hbClnKGhhbmRsZXJzKWUoZm9yKWgoYWxsKWgoc2lnbmFscywpaChkZXApcworKGVuZGluZylkKG9uKWgodGhlKTM5MCA0NTgxIHkodiktNSBiKGFsdWVzKTMxIGIob2YpZgorRnMocmxfY2F0Y2hfc2lnbmFscyljIEZ0KGFuZClrIEZzKHJsX2NhdGNoX3NpZ3dpbmNoKXAKK0Z0KC4pMzM1MCA0NzkyIHkoW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKHZvaWQpMzkKK2IgRmYocmwpcCA0ODQgNDc5MiBWIDUxIHcoZnJlZSlwIDcyMyA0NzkyIFYgNDkgdyhsaW5lKXAKKzk1MyA0NzkyIFYgNTAgdyhzdGF0ZSk0NCBiIEZlKFwoKXAgRnModm9pZClwIEZlKFwpKTM5MAorNDkwMiB5IEZ0KFRoaXMpMzggYih3aWxsKWkoZnJlZSlmKGFuKW0oeSloKHBhcnRpYWwpZyhzdGF0ZSlnKGFzc28pcworKGNpYXRlZCloKHdpdGgpZSh0aGUpZyhjdXJyZW4pbSh0KWcoaW5wdXQpZihsaW5lKWkoXCh1bmRvKWUoaW5mb3ItKTM5MAorNTAxMSB5KG1hdGlvbiwpNDYgYihhbiltKHkpZChwYXJ0aWFsKWgoaGlzdG9yeSllKGVuKW0odHJ5KS04CitiKCwpNDcgYihhbiltKHkpNDIgYihwYXJ0aWFsbHktZW4pbSh0ZXJlZClqKGspbShleWIpcyhvYXJkKWQobWFjcm8sKTQ3CitiKGFuZCk0MiBiKGFuKW0oeSkzOTAgNTEyMSB5KHBhcnRpYWxseS1lbiltKHRlcmVkKTUwCitiKG4pbSh1bWVyaWMpZChhcmd1bWVuKW0odFwpLik5NCBiKFRoaXMpNDcgYihzaG91bGQpZyhiKXMoZSlnKGNhbGxlZClpCisoYilzKGVmb3JlKWUgRnMocmxfY2xlYW51cF8pMzkwIDUyMzAgeShhZnRlcl9zaWduYWxcKFwpKXAKK0Z0KC4pNzQgYihUaGUpNDIgYihSZWFkbGluZSloKHNpZ25hbClnKGhhbmRsZXIpZihmb3IpaAorRnMoU0lHSU5UKWUgRnQoY2FsbHMpaSh0aGlzKWcodG8pZyhhYilzKG9ydClnKHRoZSkzOTAKKzUzNDAgeShjdXJyZW4pbSh0KTMwIGIoaW5wdXQpZyhsaW5lLilwIGVvcCBlbmQKKyUlUGFnZTogNDEgNDUKK1RlWERpY3QgYmVnaW4gNDEgNDQgYm9wIDE1MCAtMTE2IGEgRnQoQ2hhcHRlcikzMCBiKDI6KTQxCitiKFByb2dyYW1taW5nKTMwIGIod2l0aClnKEdOVSloKFJlYWRsaW5lKTE2ODMgYig0MSkzMzUwCisyOTkgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcodm9pZCkzOSBiIEZmKHJsKXAgNDg0CisyOTkgMzUgNSB2IDUxIHcocmVzZXQpcCA3NzggMjk5IFYgNDkgdyhhZnRlcilwIDEwNjMgMjk5CitWIDUwIHcoc2lnbmFsKTQ0IGIgRmUoXCgpcCBGcyh2b2lkKXAgRmUoXCkpMzkwIDQwOCB5CitGdChUaGlzKTI4IGIod2lsbClnKHJlaW5pdGlhbGl6ZSlqKHRoZSllKHRlcm1pbmFsKWcoYW5kKWYocmVpbnN0YWxsKWgKKyhhbiltKHkpZyhSZWFkbGluZSlnKHNpZ25hbClnKGhhbmRsZXJzLClmKGRlcClzKGVuZC0pMzkwCis1MTggeShpbmcpaihvbilmKHRoZSlnKHYpLTUgYihhbHVlcykzMSBiKG9mKWcgRnMocmxfY2F0Y2hfc2lnbmFscykyNgorYiBGdChhbmQpaiBGcyhybF9jYXRjaF9zaWd3aW5jaClwIEZ0KC4pMjc1IDcwMyB5KElmKTM4CitiKGFuKWkoYXBwbGljYXRpb24pZyhkbylzKGVzKWYobm90KWgod2lzaClmKFJlYWRsaW5lKWgodG8pZyhjYXRjKW0oaCloCitGcyhTSUdXSU5DSClwIEZ0KCwpZShpdCloKG1hKW0oeSlnKGNhbGwpaCBGcyhybF9yZXNpemVfKTE1MAorODEyIHkodGVybWluYWxcKFwpKTI0IGIgRnQob3IpaiBGcyhybF9zZXRfc2NyZWVuX3NpemVcKFwpKTIyCitiIEZ0KHRvKTI4IGIoZm9yY2UpZyhSZWFkbGluZSlmKHRvKWgodXApcyhkYXRlKWYoaXRzKWcoaWRlYSloKG9mKWYodGhlKQorZyh0ZXJtaW5hbCkxNTAgOTIyIHkoc2l6ZSlrKHdoZW4pZihhKWcgRnMoU0lHV0lOQ0gpZQorRnQoaXMpaihyZWNlaXYpbShlZC4pMzM1MCAxMTA2IHkoW0YpLTggYih1bmN0aW9uXSktMzU5OQorYiBGZyh2b2lkKTM5IGIgRmYocmwpcCA0ODQgMTEwNiBWIDUxIHcocmVzaXplKXAgODE2IDExMDYKK1YgNDkgdyh0ZXJtaW5hbCk0NSBiIEZlKFwoKXAgRnModm9pZClwIEZlKFwpKTM5MCAxMjE2Cit5IEZ0KFVwKXMoZGF0ZSkzMCBiKFJlYWRsaW5lJ3MpaChpbiltKHRlcm5hbClnKHNjcmVlbilnKHNpemUpZyhiKW0oeSlmCisocmVhZGluZyloKHYpLTUgYihhbHVlcykzMSBiKGZyb20pZih0aGUpZyhrKW0oZXJuZWwuKTMzNTAKKzE0MDAgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcodm9pZCkzOSBiIEZmKHJsKXAKKzQ4NCAxNDAwIFYgNTEgdyhzZXQpcCA2NzggMTQwMCBWIDQ5IHcoc2NyZWVuKXAgMTA0MCAxNDAwCitWIDUwIHcoc2l6ZSk0NSBiIEZlKFwoKXAgRnMoaW50KTMwIGIocm93cywpZihpbnQpZyhjb2xzKXAKK0ZlKFwpKTM5MCAxNTEwIHkgRnQoU2V0KWYoUmVhZGxpbmUncyloKGlkZWEpZyhvZilmKHRoZSlnKHRlcm1pbmFsKWgKKyhzaXplKWcodG8pZyBGaShybyltKHdzKWogRnQocm8pbSh3cyljKGFuZClmIEZpKGNvbHMpMzMKK2IgRnQoY29sdW1ucy4pNDAgYihJZikyNyBiKGVpdGhlcilpIEZpKHJvKW0od3MpMzkwIDE2MTkKK3kgRnQob3IpMzUgYiBGaShjb2x1bW5zKWsgRnQoaXMpYyhsZXNzKWcodGhhbilnKG9yKWcoZXF1YWwpaCh0bylnKDAsKWgKKyhSZWFkbGluZSdzKWYoaWRlYSlnKG9mKWYodGhhdCloKHRlcm1pbmFsKWYoZGltZW5zaW9uKWcoaXMpMzkwCisxNzI5IHkodW5jKW0oaGFuZ2VkLikyNzUgMTkxMyB5KElmKWQoYW4paShhcHBsaWNhdGlvbilnKGRvKXMoZXMpZihub3QpaAorKHcpbShhbiltKHQpZyh0bylnKGluc3RhbGwpZyhhKWcgRnMoU0lHV0lOQ0gpZCBGdChoYW5kbGVyLClqKGJ1dCllKGlzKWkKKyhzdGlsbClnKGluKW0odGVyZXN0ZWQpZyhpbikxNTAgMjAyMyB5KHRoZSlkKHNjcmVlbilmKGRpbWVuc2lvbnMsKWcKKyhSZWFkbGluZSdzKWgoaWRlYSlnKG9mKWcodGhlKWYoc2NyZWVuKWgoc2l6ZSlnKG1hKW0oeSlnKGIpcyhlKWYKKyhxdWVyaWVkLikzMzUwIDIyMDcgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcodm9pZCkzOQorYiBGZihybClwIDQ4NCAyMjA3IFYgNTEgdyhnZXQpcCA2OTAgMjIwNyBWIDUwIHcoc2NyZWVuKXAKKzEwNTMgMjIwNyBWIDQ5IHcoc2l6ZSk0NSBiIEZlKFwoKXAgRnMoaW50KTMwIGIoKnJvd3MsKWUoaW50KWkoKmNvbHMpcAorRmUoXCkpMzkwIDIzMTcgeSBGdChSZXR1cm4pZihSZWFkbGluZSdzKWkoaWRlYSlnKG9mKWYodGhlKWcodGVybWluYWwncykKK2goc2l6ZSlnKGluKWYodGhlKWcodiktNSBiKGFyaWFibGVzKTMxIGIocClzKG9pbiltKHRlZClmKHRvKWcoYiltKHkpZworKHRoZSloKGFyZ3UtKTM5MCAyNDI3IHkobWVuKW0odHMuKTMzNTAgMjYxMSB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkKK2IgRmcodm9pZCkzOSBiIEZmKHJsKXAgNDg0IDI2MTEgViA1MSB3KHJlc2V0KXAgNzc4IDI2MTEKK1YgNDkgdyhzY3JlZW4pcCAxMTQwIDI2MTEgViA1MCB3KHNpemUpNDQgYiBGZShcKClwIEZzKHZvaWQpcAorRmUoXCkpMzkwIDI3MjEgeSBGdChDYXVzZSkzMCBiKFJlYWRsaW5lKWgodG8pZyhyZW9idGFpbilnKHRoZSlnKHNjcmVlbikKK2Yoc2l6ZSloKGFuZClmKHJlY2FsY3VsYXRlKWooaXRzKWUoZGltZW5zaW9ucy4pMjc1IDI5MDUKK3koVGhlKWUoZm9sbG8pbSh3aW5nKWooZnVuY3Rpb25zKWUoaW5zdGFsbCloKGFuZClmKHJlbW8pbSh2KW0oZSlpCisoUmVhZGxpbmUncylmKHNpZ25hbClnKGhhbmRsZXJzLikzMzUwIDMwOTAgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5CitiIEZnKGludCkzOSBiIEZmKHJsKXAgNDMyIDMwOTAgViA1MSB3KHNldClwIDYyNiAzMDkwCitWIDQ5IHcoc2lnbmFscyk0NSBiIEZlKFwoKXAgRnModm9pZClwIEZlKFwpKTM5MCAzMTk5Cit5IEZ0KEluc3RhbGwpMzYgYihSZWFkbGluZSdzKWYoc2lnbmFsKWgoaGFuZGxlcillKGZvciloCitGcyhTSUdJTlQpcCBGdCgsKWcgRnMoU0lHUVVJVClwIEZ0KCwpZyBGcyhTSUdURVJNKXAgRnQoLClmCitGcyhTSUdBTFJNKXAgRnQoLCloIEZzKFNJR1RTVFApcCBGdCgsKTM5MCAzMzA5IHkgRnMoU0lHVFRJTilwCitGdCgsKTIzIGIgRnMoU0lHVFRPVSlwIEZ0KCwpZyhhbmQpZiBGcyhTSUdXSU5DSClwIEZ0KCwpaChkZXApcyhlbmRpbmcpZgorKG9uKWgodGhlKWcodiktNSBiKGFsdWVzKTIzIGIob2YpaCBGcyhybF9jYXRjaF9zaWduYWxzKTE5CitiIEZ0KGFuZCkzOTAgMzQxOCB5IEZzKHJsX2NhdGNoX3NpZ3dpbmNoKXAgRnQoLikzMzUwCiszNjAzIHkoW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKGludCkzOSBiIEZmKHJsKXAgNDMyCiszNjAzIFYgNTEgdyhjbGVhcilwIDcyMiAzNjAzIFYgNDkgdyhzaWduYWxzKTQ1IGIgRmUoXCgpcAorRnModm9pZClwIEZlKFwpKTM5MCAzNzEyIHkgRnQoUmVtbyltKHYpbShlKTMyIGIoYWxsKWYob2YpZyh0aGUpZworKFJlYWRsaW5lKWcoc2lnbmFsKWcoaGFuZGxlcnMpZShpbnN0YWxsZWQpaShiKW0oeSlmIEZzCisocmxfc2V0X3NpZ25hbHNcKFwpKXAgRnQoLikxNTAgMzk3MCB5IEZyKDIuNik2OCBiKEN1c3RvbSk0NQorYihDb21wbGV0ZXJzKTI3NSA0MjE0IHkgRnQoVCltKHlwaWNhbGx5KS04IGIoLCkzNSBiKGEpZihwcm9ncmFtKWYodGhhdCkKK2gocmVhZHMpZihjb21tYW5kcylmKGZyb20paCh0aGUpZyh1c2VyKWcoaGFzKWcoYSlnKHcpbShhKW0oeSlpKG9mKWUKKyhkaXNhbSltKGJpZ3VhdGluZykxNTAgNDMyNCB5KGNvbW1hbmRzKWkoYW5kKWcoZGF0YS4pNTYKK2IoSWYpMzUgYih5KW0ob3VyKWgocHJvZ3JhbSlmKGlzKWcob25lKWgob2YpZyh0aGVzZSwpaCh0aGVuKWUoaXQpaChjYW4pCitnKHBybyltKHZpZGUpZihjb21wbGV0aW9uKWkoZm9yKTE1MCA0NDMzIHkoY29tbWFuZHMsKTI5CitiKGRhdGEsKWkob3IpZShiKXMob3RoLikzOSBiKFRoZSkyOSBiKGZvbGxvKW0od2luZylpKHNlY3Rpb25zKWYKKyhkZXNjcmliKXMoZSllKGhvKW0odylpKHkpbShvdXIpZihwcm9ncmFtKWcoYW5kKWYoUmVhZGxpbmUpMTUwCis0NTQzIHkoY28pcyhvcClzKGVyYXRlKWoodG8paChwcm8pbSh2aWRlKWUodGhpcylnKHNlcnZpY2UuKTE1MAorNDc2NyB5IEZoKDIuNi4xKTYzIGIoSG8pbSh3KTQwIGIoQ29tcGxldGluZylpKFcpLTEwIGIob3JrcykyNzUKKzUwMTEgeSBGdChJbikzMyBiKG9yZGVyKWgodG8paChjb21wbGV0ZSloKHNvbWUpZSh0ZXh0LClqKHRoZSlkKGZ1bGwpZworKGxpc3QpaChvZilmKHApcyhvc3NpYmxlKWcoY29tcGxldGlvbnMpaShtKW0odXN0KWUoYilzKGUpZihhKW0odiktNQorYihhaWxhYmxlLikxNTAgNTEyMSB5KFRoYXQpMzQgYihpcywpaChpdClnKGlzKWYobm90KWcocClzKG9zc2libGUpZyh0bykKK2coYWNjdXJhdGVseSlpKGV4cGFuZClkKGEpaShwYXJ0aWFsKWcodyltKG9yZCllKHdpdGhvdXQpaChrbm8pbSh3aW5nKWgKKyhhbGwpZyhvZilmKHRoZSkxNTAgNTIzMCB5KHApcyhvc3NpYmxlKWcodyltKG9yZHMpaCh3aGljKW0oaClnKG1hayltKGUpCitoKHNlbnNlKWUoaW4paCh0aGF0KWgoY29uKW0odGV4dC4pNTYgYihUaGUpMzQgYihSZWFkbGluZSlpKGxpYnJhcnkpZgorKHBybyltKHZpZGVzKWYodGhlKWkodXNlcikxNTAgNTM0MCB5KGluKW0odGVyZmFjZSlmKHRvKWYoY29tcGxldGlvbiwpaAorKGFuZCllKHQpbSh3KW0obylpKG9mKWUodGhlKWcobW9zdCloKGNvbW1vbilnKGNvbXBsZXRpb24pZyhmdW5jdGlvbnM6KQorNDYgYihcMDE0bGVuYW1lKTM0IGIoYW5kKXAgZW9wIGVuZAorJSVQYWdlOiA0MiA0NgorVGVYRGljdCBiZWdpbiA0MiA0NSBib3AgMTUwIC0xMTYgYSBGdCg0MikyNjAwIGIoR05VKTMxCitiKFJlYWRsaW5lKWcoTGlicmFyeSkxNTAgMjk5IHkodXNlcm5hbWUuKTM3IGIoRiktOCBiKG9yKTIzCitiKGNvbXBsZXRpbmcpZyhvdGhlcillKHQpbSh5cClzKGVzKWgob2YpZyh0ZXh0LClqKHkpbShvdSlkKG0pbSh1c3QpZgorKHdyaXRlKWgoeSltKG91cilmKG8pbSh3biloKGNvbXBsZXRpb24paChmdW5jdGlvbi4pMTUwCis0MDggeShUaGlzKTMwIGIoc2VjdGlvbiloKGRlc2NyaWIpcyhlcylmKGV4YWN0bHkpaSh3aGF0KWUoc3VjKW0oaClnCisoZnVuY3Rpb25zKWcobSltKHVzdClnKGRvLCloKGFuZClmKHBybyltKHZpZGVzKWcoYW4pZyhleGFtcGxlLikyNzUKKzUzNSB5KFRoZXJlKWYoYXJlKWkodGhyZWUpZyhtYSk1IGIoam9yKTMwIGIoZnVuY3Rpb25zKWcodXNlZClnKHRvKWgocClzCisoZXJmb3JtKWUoY29tcGxldGlvbjopMTk5IDY2MiB5KDEuKTYxIGIoVGhlKTQzIGIodXNlci1pbiltKHRlcmZhY2UpaAorKGZ1bmN0aW9uKWYgRnMocmxfY29tcGxldGVcKFwpKXAgRnQoLik3NiBiKFRoaXMpNDMgYihmdW5jdGlvbilnKGlzKWcKKyhjYWxsZWQpaSh3aXRoKWUodGhlKWgoc2FtZSkzMzAgNzcxIHkoYXJndW1lbiltKHRzKTM2CitiKGFzKWcob3RoZXIpZyhiaW5kYWJsZSlmKFJlYWRsaW5lKWgoZnVuY3Rpb25zOik1MSBiCitGaShjb3VuKW0odCkzOCBiIEZ0KGFuZClkIEZpKGluKW0odiltKG9raW5nKXAgMzEwNyA3NzEKKzI4IDQgdiA0MSB3KGspbShleSlwIEZ0KC4pNTcgYihJdCkzNiBiKGlzb2xhdGVzKTMzMCA4ODEKK3kodGhlKWkodyltKG9yZClmKHRvKWgoYilzKGUpZihjb21wbGV0ZWQpaShhbmQpZChjYWxscylqCitGcyhybF9jb21wbGV0aW9uX21hdGNoZXNcKFwpKTMxIGIgRnQodG8pMzkgYihnZW5lcmF0ZSlnKGEpZihsaXN0KWcob2YpCiszMzAgOTkwIHkocClzKG9zc2libGUpMzEgYihjb21wbGV0aW9ucy4pNDQgYihJdCkzMSBiKHRoZW4pZyhlaXRoZXIpZworKGxpc3RzKWgodGhlKWYocClzKG9zc2libGUpZyhjb21wbGV0aW9ucywpaChpbnNlcnRzKWYodGhlKWcocClzCisob3NzaWJsZSkzMzAgMTEwMCB5KGNvbXBsZXRpb25zLCk1MCBiKG9yKTQ1IGIoYWN0dWFsbHkpaShwKXMoZXJmb3JtcylkCisodGhlKWgoY29tcGxldGlvbiwpNTAgYihkZXApcyhlbmRpbmcpNDQgYihvbiloKHdoaWMpbShoKWcoYilzKGVoYSltCisodmlvcilnKGlzKTMzMCAxMjEwIHkoZGVzaXJlZC4pMTk5IDEzMzYgeSgyLik2MSBiKFRoZSkzMworYihpbiltKHRlcm5hbCloKGZ1bmN0aW9uKWcgRnMocmxfY29tcGxldGlvbl9tYXRjaGVzXChcKSkyNworYiBGdCh1c2VzKTMzIGIoYW4pZyhhcHBsaWNhdGlvbi1zdXBwbGllZCloIEZpKGdlbmVyLSkzMzAKKzE0NDYgeShhdG9yKTQ0IGIgRnQoZnVuY3Rpb24pMzcgYih0byloKGdlbmVyYXRlKWcodGhlKWYobGlzdCloKG9mKWYocClzCisob3NzaWJsZSlmKG1hdGMpbShoZXMsKWsoYW5kKWQodGhlbilmKHJldHVybnMpZyh0aGUpaChhcnJhKW0oeSloKG9mKTMzMAorMTU1NSB5KHRoZXNlKWgobWF0YyltKGhlcy4pNjggYihUaGUpMzkgYihjYWxsZXIpaChzaG91bGQpZShwbGFjZSlpKHRoZSkKK2YoYWRkcmVzcylmKG9mKWgoaXRzKWcoZ2VuZXJhdG9yKWkoZnVuY3Rpb24pZChpbiloIEZzKHJsXykzMzAKKzE2NjUgeShjb21wbGV0aW9uX2VudHJ5X2Z1bmN0aW8pbyhuKXAgRnQoLikxOTkgMTc5MiB5KDMuKTYxCitiKFRoZSkyMiBiKGdlbmVyYXRvcilpKGZ1bmN0aW9uKWYoaXMpZyhjYWxsZWQpaChyZXApcyhlYXRlZGx5KWYoZnJvbSlnCitGcyhybF9jb21wbGV0aW9uX21hdGNoZXNcKFwpKW8gRnQoLCljKHJldHVybmluZykzMzAgMTkwMQoreShhKTMzIGIoc3RyaW5nKWcoZWFjKW0oaCloKHRpbWUuKTQ5IGIoVGhlKTMyIGIoYXJndW1lbiltKHRzKWgodG8paAorKHRoZSlmKGdlbmVyYXRvciloKGZ1bmN0aW9uKWUoYXJlKWggRmkodGV4dClqIEZ0KGFuZCljCitGaShzdGF0ZSlwIEZ0KC4pNTAgYiBGaSh0ZXh0KTMzMCAyMDExIHkgRnQoaXMpMzIgYih0aGUpZyhwYXJ0aWFsKWgodyltCisob3JkKWYodG8paChiKXMoZSllKGNvbXBsZXRlZC4pNDcgYiBGaShzdGF0ZSkzOCBiIEZ0KGlzKTMyCitiKHplcm8paCh0aGUpZihcMDE0cnN0KWcodGltZSlnKHRoZSloKGZ1bmN0aW9uKWUoaXMpaChjYWxsZWQsKTMzMAorMjEyMCB5KGFsbG8pbSh3aW5nKTQ2IGIodGhlKWUoZ2VuZXJhdG9yKWgodG8pZihwKXMoZXJmb3JtKWYoYW4pbSh5KWgKKyhuZWNlc3NhcnkpZyhpbml0aWFsaXphdGlvbiwpNTEgYihhbmQpNDMgYihhKWgocClzKG9zaXRpdiltKGUpaChub24tKQorMzMwIDIyMzAgeSh6ZXJvKTMwIGIoaW4pbSh0ZWdlciloKGZvcilkKGVhYyltKGgpaihzdWJzZXF1ZW4pbSh0KWQKKyhjYWxsLik0MiBiKFRoZSkyOSBiKGdlbmVyYXRvciloKGZ1bmN0aW9uKWYocmV0dXJucylmCitGcyhcKGNoYXIpaCgqXClOVUxMKWUgRnQodG8pMzMwIDIzMzkgeShpbmZvcm0pMzcgYiBGcworKHJsX2NvbXBsZXRpb25fbWF0Y2hlc1woXCkpMzIgYiBGdCh0aGF0KTM5IGIodGhlcmUpZihhcmUpZyhubylnKG1vcmUpZworKHApcyhvc3NpYmlsaXRpZXMpaChsZWZ0Lik2NSBiKFVzdWFsbHkpMzMwIDI0NDkgeSh0aGUpMzkKK2IoZ2VuZXJhdG9yKWgoZnVuY3Rpb24pZShjb21wdXRlcyloKHRoZSlnKGxpc3QpZyhvZilnKHApcyhvc3NpYmxlKWYKKyhjb21wbGV0aW9ucylpKHdoZW4pZSBGaShzdGF0ZSk0NSBiIEZ0KGlzKTM5IGIoemVybywpMzMwCisyNTU5IHkoYW5kKTI1IGIocmV0dXJucylmKHRoZW0paShvbmUpZihhdClpKGEpZih0aW1lKWcob24pZihzdWJzZXF1ZW4pbQorKHQpZyhjYWxscy4pNDAgYihFYWMpbShoKTI2IGIoc3RyaW5nKWcodGhlKWcoZ2VuZXJhdG9yKWcoZnVuY3Rpb24pMzMwCisyNjY4IHkocmV0dXJucykzMSBiKGFzKWgoYSlnKG1hdGMpbShoKWgobSltKHVzdClmKGIpcyhlKWYoYWxsbylzKGNhdGVkKQoraih3aXRoKWQgRnMobWFsbG9jXChcKSlwIEZ0KDspZyhSZWFkbGluZSloKGZyZWVzKWcodGhlKWcoc3RyaW5ncylnCisod2hlbikzMzAgMjc3OCB5KGl0KWkoaGFzKWcoXDAxNG5pc2hlZCllKHdpdGgpaSh0aGVtLik1MQorYihTdWMpbShoKTMzIGIoYSloKGdlbmVyYXRvciloKGZ1bmN0aW9uKWYoaXMpZyhyZWZlcnJlZClmKHRvKWgoYXMpaChhbikKK2UgRmkoYXBwbGljYXRpb24tKTMzMCAyODg3IHkoc3ApcyhlY2lcMDE0YylkKGNvbXBsZXRpb24paShmdW5jdGlvbilwCitGdCguKTMzNTAgMzA0OCB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkgYiBGZyhpbnQpMzkgYgorRmYocmwpcCA0MzIgMzA0OCAzNSA1IHYgNTEgdyhjb21wbGV0ZSk0NCBiIEZlKFwoKXAgRnMoaW50KTMwCitiKGlnbm9yZSwpZShpbnQpaChpbnZva2luZ19rZXkpcCBGZShcKSkzOTAgMzE1OCB5IEZ0KENvbXBsZXRlKWkodGhlKWcKKyh3KW0ob3JkKWcoYXQpZyhvcilnKGIpcyhlZm9yZSlmKHApcyhvaW4pbSh0Lik0MSBiKFkpLTgKK2Iob3UpMzIgYihoYSltKHYpbShlKWcoc3VwcGxpZWQpZCh0aGUpaShmdW5jdGlvbilmKHRoYXQpaChkbylzKGVzKWcKKyh0aGUpMzkwIDMyNjcgeShpbml0aWFsKTQyIGIoc2ltcGxlKWYobWF0YyltKGhpbmcpaShzZWxlY3Rpb24pZgorKGFsZ29yaXRobSloKFwoc2VlKWYgRnMocmxfY29tcGxldGlvbl9tYXRjaGVzXChcKSlvIEZ0KFwpLik2NworYihUaGUpMzkwIDMzNzcgeShkZWZhdWx0KTMxIGIoaXMpZih0byloKGRvKWYoXDAxNGxlbmFtZSloKGNvbXBsZXRpb24uKQorMzM3MSAzNTM3IHkoW1YpLTggYihhcmlhYmxlXSktMzU5OCBiIEZnKHJsX2NvbXBlbnRyeV9mdW5jX3QpNDQKK2IoKikzOCBiIEZmKHJsKXAgMTM1OSAzNTM3IFYgNTEgdyhjb21wbGV0aW9uKXAgMTk2MCAzNTM3CitWIDQ5IHcoZW4pbSh0cnkpcCAyMjc1IDM1MzcgViA1MCB3KGZ1bmN0aW9uKTM5MCAzNjQ3Cit5IEZ0KFRoaXMpaChpcyloKGEpZyhwKXMob2luKW0odGVyKWcodG8paCh0aGUpZihnZW5lcmF0b3IpaChmdW5jdGlvbilmCisoZm9yKWYgRnMocmxfY29tcGxldGlvbl9tYXRjaGVzXChcKSlwIEZ0KC4pNjMgYihJZik0MAorYih0aGUpMzkwIDM3NTcgeSh2KS01IGIoYWx1ZSkyNCBiKG9mKWcgRnMocmxfY29tcGxldGlvbl9lbnRyeV9mdW5jdClvCisoaW9uKTE3IGIgRnQoaXMpMjQgYiBGcyhOVUxMKWYgRnQodGhlbilnKHRoZSloKGRlZmF1bHQpZyhcMDE0bGVuYW1lKWcKKyhnZW5lcmF0b3IpMzkwIDM4NjYgeShmdW5jdGlvbiwpNDkgYiBGcyhybF9maWxlbmFtZV9jb21wbGV0aW9uXylvKGZ1bilvCisoY3RpbylvKG5cKFwpKXAgRnQoLCk0MiBiKGlzKWoodXNlZC4pODQgYihBbik0NCBiIEZpKGFwcGxpY2F0aW9uLXNwKXMKKyhlY2lcMDE0YykzOTAgMzk3NiB5KGNvbXBsZXRpb24pMjIgYihmdW5jdGlvbilmIEZ0KGlzKWcoYSloKGZ1bmN0aW9uKWUKKyh3aG9zZSloKGFkZHJlc3MpZihpcyloKGFzc2lnbmVkKWgodG8pZiBGcyhybF9jb21wbGV0aW9uX2VudHJ5XykzOTAKKzQwODUgeShmdW5jdGlvbikyOCBiIEZ0KGFuZClpKHdob3NlKWcocmV0dXJuKWYodiktNSBiKGFsdWVzKTMxCitiKGFyZSlnKHVzZWQpZSh0bylqKGdlbmVyYXRlKWYocClzKG9zc2libGUpZihjb21wbGV0aW9ucy4pMTUwCis0Mjg2IHkgRmgoMi42LjIpNjMgYihDb21wbGV0aW9uKTQxIGIoRiktMTAgYih1bmN0aW9ucykyNzUKKzQ1MjIgeSBGdChIZXJlKTMwIGIoaXMpaCh0aGUpZihjb21wbGV0ZSlpKGxpc3QpZihvZilnKGNhbGxhYmxlKWgKKyhjb21wbGV0aW9uKWcoZnVuY3Rpb25zKWUocHJlc2VuKW0odClnKGluKWcoUmVhZGxpbmUuKTMzNTAKKzQ2ODIgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIKKzQ2ODIgViA1MSB3KGNvbXBsZXRlKXAgOTMzIDQ2ODIgViA0OSB3KGluKW0odGVybmFsKWsKK0ZlKFwoKXAgRnMoaW50KTMwIGIod2hhdF90b19kbylwIEZlKFwpKTM5MCA0NzkyIHkgRnQoQ29tcGxldGUpMzcKK2IodGhlKWcodyltKG9yZClmKGF0KWkob3IpZShiKXMoZWZvcmUpZyhwKXMob2luKW0odC4pNjAKK2IgRmkod2hhdClwIDIyMDggNDc5MiAyOCA0IHYgNDAgdyh0bylwIDIzMjggNDc5MiBWIDQxCit3KGRvKTQxIGIgRnQoc2EpbSh5cyljKHdoYXQpZih0bylpKGRvKWUod2l0aClnKHRoZSloKGNvbS0pMzkwCis0OTAyIHkocGxldGlvbi4pNDQgYihBKTMxIGIodiktNSBiKGFsdWUpMzIgYihvZilmKGApcAorRnMoPylwIEZ0KCcpZyhtZWFucyloKGxpc3QpZih0aGUpaChwKXMob3NzaWJsZSllKGNvbXBsZXRpb25zLik0NQorYihgKXAgRnMoVEFCKXAgRnQoJykzMSBiKG1lYW5zKWcoZG8pZyhzdGFuZGFyZCkzOTAgNTAxMQoreShjb21wbGV0aW9uLik0NCBiKGApcCBGcygqKXAgRnQoJykzMiBiKG1lYW5zKWYoaW5zZXJ0KWcoYWxsKWgob2YpZgorKHRoZSlnKHApcyhvc3NpYmxlKWcoY29tcGxldGlvbnMuKTQ0IGIoYClwIEZzKCEpcCBGdCgnKTMyCitiKG1lYW5zKWYodG8paChkaXNwbGEpbSh5KWYoYWxsKTM5MCA1MTIxIHkob2Ypayh0aGUpZihwKXMob3NzaWJsZSlnCisoY29tcGxldGlvbnMsKWooaWYpZCh0aGVyZSloKGlzKWYobW9yZSlnKHRoYW4paChvbmUsKWcoYXMpZyh3KW0oZWxsKWcKKyhhcylnKHApcyhlcmZvcm1pbmcpZShwYXJ0aWFsKTM5MCA1MjMwIHkoY29tcGxldGlvbi4pNDEKK2IoYClwIEZzKEApcCBGdCgnKTI3IGIoaXMpaChzaW1pbGFyKWYodG8paChgKXAgRnMoISlwCitGdCgnLCloKGJ1dClkKHApcyhvc3NpYmxlKWgoY29tcGxldGlvbnMpaShhcmUpZShub3QpaChsaXN0ZWQpZyhpZilmCisodGhlKWcocClzKG9zc2libGUpMzkwIDUzNDAgeShjb21wbGV0aW9ucykzMiBiKHNoYXJlKWUoYSlnKGNvbW1vbiloCisocHJlXDAxNHguKXAgZW9wIGVuZAorJSVQYWdlOiA0MyA0NworVGVYRGljdCBiZWdpbiA0MyA0NiBib3AgMTUwIC0xMTYgYSBGdChDaGFwdGVyKTMwIGIoMjopNDEKK2IoUHJvZ3JhbW1pbmcpMzAgYih3aXRoKWcoR05VKWgoUmVhZGxpbmUpMTY4MyBiKDQzKTMzNTAKKzI5OSB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkgYiBGZyhpbnQpMzkgYiBGZihybClwIDQzMgorMjk5IDM1IDUgdiA1MSB3KGNvbXBsZXRlKTQ0IGIgRmUoXCgpcCBGcyhpbnQpMzAgYihpZ25vcmUsKWUoaW50KWgKKyhpbnZva2luZ19rZXkpcCBGZShcKSkzOTAgNDA4IHkgRnQoQ29tcGxldGUpNDIgYih0aGUpZih3KW0ob3JkKWcoYXQpaAorKG9yKWYoYilzKGVmb3JlKWcocClzKG9pbiltKHQuKTczIGIoWSktOCBiKG91KTQxIGIoaGEpbSh2KW0oZSlpCisoc3VwcGxpZWQpYyh0aGUpaihmdW5jdGlvbilmKHRoYXQpZyhkbylzKGVzKTM5MCA1MTggeSh0aGUpMzMKK2IoaW5pdGlhbCloKHNpbXBsZSlmKG1hdGMpbShoaW5nKWgoc2VsZWN0aW9uKWgoYWxnb3JpdGhtKWYoXChzZWUpZworRnMocmxfY29tcGxldGlvbl9tYXRjaGVzXChcKSkyNyBiIEZ0KGFuZCkzOTAgNjI4IHkgRnMKKyhybF9jb21wbGV0aW9uX2VudHJ5X2Z1bmMpbyh0aW9uKW8gRnQoXCkuKTUyIGIoVGhlKTM1CitiKGRlZmF1bHQpaChpcylnKHRvKWgoZG8pZShcMDE0bGVuYW1lKWgoY29tcGxldGlvbi4pNTkKK2IoVGhpcykzOTAgNzM3IHkoY2FsbHMpMzIgYiBGcyhybF9jb21wbGV0ZV9pbnRlcm5hbFwoXCkpMjQKK2IgRnQod2l0aCkzMCBiKGFuKWcoYXJndW1lbiltKHQpaChkZXApcyhlbmRpbmcpZShvbiloCitGaShpbiltKHYpbShva2luZylwIDMzMTQgNzM3IDI4IDQgdiA0MSB3KGspbShleSlwIEZ0KC4pMzM1MAorOTEzIHkoW0YpLTggYih1bmN0aW9uXSktMzU5OSBiIEZnKGludCkzOSBiIEZmKHJsKXAgNDMyCis5MTMgMzUgNSB2IDUxIHcocClzKG9zc2libGUpcCA4NzggOTEzIFYgNDkgdyhjb21wbGV0aW9ucyk0NQorYiBGZShcKClwIEZzKGludCkzMCBiKGNvdW50LCllKGludClpKGludm9raW5nX2tleSlwIEZlKFwpKTM5MAorMTAyMyB5IEZ0KExpc3QpNDEgYih0aGUpZihwKXMob3NzaWJsZSlnKGNvbXBsZXRpb25zLik3MworYihTZWUpNDAgYihkZXNjcmlwdGlvbiloKG9mKWcgRnMocmxfY29tcGxldGUpMjcgYihcKFwpKXAKK0Z0KC4pNzAgYihUaGlzKTQwIGIoY2FsbHMpaSBGcyhybF8pMzkwIDExMzIgeShjb21wbGV0ZV9pbnRlcm5hbFwoXCkpMjUKK2IgRnQod2l0aCkzMCBiKGFuKWcoYXJndW1lbiltKHQpaChvZilnKGApcCBGcyg/KXAgRnQoJy4pMzM1MAorMTMwOCB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkgYiBGZyhpbnQpMzkgYiBGZihybClwIDQzMgorMTMwOCBWIDUxIHcoaW5zZXJ0KXAgNzY5IDEzMDggViA0OSB3KGNvbXBsZXRpb25zKTQ0IGIKK0ZlKFwoKXAgRnMoaW50KTMwIGIoY291bnQsKWYoaW50KWcoaW52b2tpbmdfa2V5KXAgRmUoXCkpMzkwCisxNDE4IHkgRnQoSW5zZXJ0KWsodGhlKWgobGlzdClnKG9mKWcocClzKG9zc2libGUpZihjb21wbGV0aW9ucylpKGluKW0KKyh0bylmKHRoZSlnKGxpbmUsKWgoZGVsZXRpbmcpZyh0aGUpZihwYXJ0aWFsbHktY29tcGxldGVkKTM5MAorMTUyNyB5KHcpbShvcmQuKTQ0IGIoU2VlKTMyIGIoZGVzY3JpcHRpb24pZyhvZilnIEZzKHJsX2NvbXBsZXRlXChcKSlwCitGdCguKTQxIGIoVGhpcykzMSBiKGNhbGxzKWkgRnMocmxfY29tcGxldGVfaW50ZXJuYWxcKFwpKTI1CitiIEZ0KHdpdGgpMzkwIDE2MzcgeShhbikzMCBiKGFyZ3VtZW4pbSh0KWgob2YpZyhgKXAgRnMoKilwCitGdCgnLikzMzUwIDE4MTMgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcoaW50KTM5CitiIEZmKHJsKXAgNDMyIDE4MTMgViA1MSB3KGNvbXBsZXRpb24pcCAxMDMzIDE4MTMgViA0OQordyhtbylzKGRlKTQ1IGIgRmUoXCgpcCBGcyhybF9jb21tYW5kX2Z1bmNfdCkyNiBiKCpjZnVuYylwCitGZShcKSkzOTAgMTkyMiB5IEZ0KFJldHVybnMpNTAgYih0aGUpZyhhcHBwcmlhdGUpaCh2KS01CitiKGFsdWUpNTAgYih0bylpKHBhc3MpZSh0byloIEZzKHJsX2NvbXBsZXRlX2ludGVybmFsXChcKSk0NAorYiBGdChkZXApcyhlbmRpbmcpNDkgYihvbikzOTAgMjAzMiB5KHdoZXRoZXIpNDAgYiBGaShjZnVuYyk0NgorYiBGdCh3KW0oYXMpNDEgYihjYWxsZWQpaCh0KW0od2ljZSlnKGluKWYoc3VjY2Vzc2lvbilnKGFuZClmKHRoZSloKHYpLTUKK2IoYWx1ZXMpNDEgYihvZilnKHRoZSlnIEZzKHNob3ctYWxsLWlmLSkzOTAgMjE0MiB5KGFtYmlndW91cykyNQorYiBGdChhbmQpaSBGcyhzaG93LWFsbC1pZi11bm1vZGlmaWVkKTIxIGIgRnQodiktNSBiKGFyaWFibGVzLik0MQorYihBcHBsaWNhdGlvbi1zcClzKGVjaVwwMTRjKTI5IGIoY29tcGxldGlvbikzOTAgMjI1MQoreShmdW5jdGlvbnMpaChtYSltKHkpaCh1c2UpZih0aGlzKWcoZnVuY3Rpb24pZyh0byloKHByZXNlbiltKHQpZyh0aGUpZgorKHNhbWUpaChpbiltKHRlcmZhY2UpaChhcylmIEZzKHJsX2NvbXBsZXRlXChcKSlwIEZ0KC4pMzM1MAorMjQyNyB5KFtGKS04IGIodW5jdGlvbl0pLTM1OTkgYiBGZyhjaGFyKTM5IGIoKiopZyBGZihybClwCis2MjcgMjQyNyBWIDUxIHcoY29tcGxldGlvbilwIDEyMjggMjQyNyBWIDQ5IHcobWF0YyltKGhlcyk0NAorYiBGZShcKClwIEZzKGNvbnN0KTMwIGIoY2hhcilmKCp0ZXh0LCk1NjUgMjUzNyB5KHJsX2NvbXBlbnRyeV9mdW5jX3QpYworKCplbnRyeV9mdW5jKXAgRmUoXCkpMzkwIDI2NDYgeSBGdChSZXR1cm5zKTM3IGIoYW4paChhcnJhKW0oeSlnKG9mKWcKKyhzdHJpbmdzKWcod2hpYyltKGgpZihpcyloKGEpZyhsaXN0KWgob2YpZihjb21wbGV0aW9ucyloKGZvcillCitGaSh0ZXh0KXAgRnQoLik2NCBiKElmKTM4IGIodGhlcmUpZyhhcmUpZyhubykzOTAgMjc1NgoreShjb21wbGV0aW9ucywpZihyZXR1cm5zKWMgRnMoTlVMTClwIEZ0KC4pNTIgYihUaGUpMzQKK2IoXDAxNHJzdClmKGVuKW0odHJ5KWkoaW4pZih0aGUpaChyZXR1cm5lZCllKGFycmEpbSh5KWkoaXMpZyh0aGUpZgorKHN1YnN0aXR1dGlvbikzOTAgMjg2NSB5KGZvcikyNiBiIEZpKHRleHQpcCBGdCguKTQwIGIoVGhlKTI2CitiKHJlbWFpbmluZyloKGVuKW0odHJpZXMpZyhhcmUpZyh0aGUpZihwKXMob3NzaWJsZSlnKGNvbXBsZXRpb25zLik0MAorYihUaGUpMjYgYihhcnJhKW0oeSloKGlzKWYodGVybWluYXRlZCkzOTAgMjk3NSB5KHdpdGgpayhhKWgKK0ZzKE5VTEwpZSBGdChwKXMob2luKW0odGVyLikzOTAgMzEwNyB5IEZpKGVuKW0odHJ5KXAKKzYwMyAzMTA3IDI4IDQgdiA0MCB3KGZ1bmMpNDQgYiBGdChpcyljKGEpZyhmdW5jdGlvbilmKG9mKWgodCltKHcpbShvKWcKKyhhcmdzLClqKGFuZCkzOCBiKHJldHVybnMpaChhKWcgRnMoY2hhcikzMCBiKCopcCBGdCguKTY3CitiKFRoZSkzOSBiKFwwMTRyc3QpZyhhcmd1bWVuKW0odCloKGlzKTM5MCAzMjE2IHkgRmkodGV4dClwCitGdCguKTY2IGIoVGhlKTM5IGIoc2Vjb25kKWYoaXMpaChhKWcoc3RhdGUpaChhcmd1bWVuKW0odDspaihpdCljKGlzKWcKKyh6ZXJvKWcob24pZyh0aGUpZyhcMDE0cnN0KWYoY2FsbCwpayhhbmQpYyhub24temVybyloKG9uKTM5MAorMzMyNiB5KHN1YnNlcXVlbiltKHQpMzMgYihjYWxscy4pNTIgYiBGaShlbiltKHRyeSlwIDEzMjAKKzMzMjYgViA0MSB3KGZ1bmMpMzggYiBGdChyZXR1cm5zKTMzIGIoYSloIEZzKE5VTEwpZiBGdChwKXMob2luKW0odGVyKWcKKyh0bylpKHRoZSlmKGNhbGxlciloKHdoZW4pZSh0aGVyZSloKGFyZSlnKG5vKTM5MCAzNDM1Cit5KG1vcmUpZChtYXRjKW0oaGVzLikzMzUwIDM2MTEgeShbRiktOCBiKHVuY3Rpb25dKS0zNTk5CitiIEZnKGNoYXIpMzkgYigqKWcgRmYocmwpcCA1NzUgMzYxMSAzNSA1IHYgNTAgdyhcMDE0bGVuYW1lKXAKKzEwNDIgMzYxMSBWIDQ5IHcoY29tcGxldGlvbilwIDE2NDEgMzYxMSBWIDQ5IHcoZnVuY3Rpb24pNDQKK2IgRmUoXCgpcCBGcyhjb25zdCkzMCBiKGNoYXIpZigqdGV4dCwpZyhpbnQpNTY1IDM3MjEKK3koc3RhdGUpcCBGZShcKSkzOTAgMzgzMCB5IEZ0KEEpZChnZW5lcmF0b3IpaChmdW5jdGlvbillKGZvcilnCisoXDAxNGxlbmFtZSloKGNvbXBsZXRpb24paChpbillKHRoZSloKGdlbmVyYWwpaChjYXNlLik0MAorYiBGaSh0ZXh0KTI4IGIgRnQoaXMpZShhKWcocGFydGlhbCloKFwwMTRsZS0pMzkwIDM5NDAKK3kobmFtZS4pMzggYihUaGUpMjEgYihCYXNoKWcoc291cmNlKWgoaXMpZyhhKWYodXNlZnVsKWcocmVmZXJlbmNlKWgKKyhmb3IpZih3cml0aW5nKWgoYXBwbGljYXRpb24tc3ApcyhlY2lcMDE0YyloKGNvbXBsZXRpb24pMzkwCis0MDUwIHkoZnVuY3Rpb25zKTMwIGIoXCh0aGUpaChCYXNoKWYoY29tcGxldGlvbilpKGZ1bmN0aW9ucyllKGNhbGwpaQorKHRoaXMpZShhbmQpZyhvdGhlcilnKFJlYWRsaW5lKWgoZnVuY3Rpb25zXCkuKTMzNTAgNDIyNQoreShbRiktOCBiKHVuY3Rpb25dKS0zNTk5IGIgRmcoY2hhcikzOSBiKCopZyBGZihybClwIDU3NQorNDIyNSBWIDUwIHcodXNlcm5hbWUpcCAxMTAyIDQyMjUgViA1MCB3KGNvbXBsZXRpb24pcAorMTcwMiA0MjI1IFYgNDkgdyhmdW5jdGlvbik0NCBiIEZlKFwoKXAgRnMoY29uc3QpMjkgYihjaGFyKWcoKnRleHQsKWcKKyhpbnQpNTY1IDQzMzUgeShzdGF0ZSlwIEZlKFwpKTM5MCA0NDQ1IHkgRnQoQSlnKGNvbXBsZXRpb24pZyhnZW5lcmF0b3IpCitoKGZvcillKHVzZXJuYW1lcy4pNDAgYiBGaSh0ZXh0KTMxIGIgRnQoY29uKW0odGFpbnMpZihhKWYocGFydGlhbClnCisodXNlcm5hbWUpZihwcmVjZWRlZClnKGIpbSh5KTM5MCA0NTU0IHkoYSlqKHJhbmRvbSlmKGMpbShoYXJhY3RlcilpCisoXCh1c3VhbGx5KWUoYClwIEZzKH4pcCBGdCgnXCkuKTQyIGIoQXMpMzEgYih3aXRoKWYoYWxsKWgoY29tcGxldGlvbiloCisoZ2VuZXJhdG9ycywpZyBGaShzdGF0ZSkzNyBiIEZ0KGlzKTMxIGIoemVybylnKG9uKTM5MAorNDY2NCB5KHRoZSlnKFwwMTRyc3QpZShjYWxsKWooYW5kKWUobm9uLXplcm8paChmb3IpZihzdWJzZXF1ZW4pbSh0KWYKKyhjYWxscy4pMTUwIDQ4ODAgeSBGaCgyLjYuMyk2MyBiKENvbXBsZXRpb24pNDEgYihWKS0xMAorYihhcmlhYmxlcykzMzcxIDUxMjEgeSBGdChbVilpKGFyaWFibGVdKS0zNTk4IGIgRmcocmxfY29tcGVudHJ5X2Z1bmNfdCkKKzQ0IGIoKikzOCBiIEZmKHJsKXAgMTM1OSA1MTIxIFYgNTEgdyhjb21wbGV0aW9uKXAgMTk2MAorNTEyMSBWIDQ5IHcoZW4pbSh0cnkpcCAyMjc1IDUxMjEgViA1MCB3KGZ1bmN0aW9uKTM5MAorNTIzMCB5IEZ0KEEpYyhwKXMob2luKW0odGVyKWYodG8paCh0aGUpZyhnZW5lcmF0b3IpaChmdW5jdGlvbillKGZvcilnCitGcyhybF9jb21wbGV0aW9uX21hdGNoZXNcKFwpKXAgRnQoLik0NCBiIEZzKE5VTEwpMzIgYgorRnQobWVhbnMpaCh0bykzOTAgNTM0MCB5KHVzZSlkIEZzKHJsX2ZpbGVuYW1lX2NvbXBsZXRpb25fZnUpbyhuY3QpbworKGlvblwoKW8oXCkpcCBGdCgsKTI1IGIodGhlKTMwIGIoZGVmYXVsdCloKFwwMTRsZW5hbWUpZihjb21wbGV0ZXIuKXAKK2VvcCBlbmQKKyUlUGFnZTogNDQgNDgKK1RlWERpY3QgYmVnaW4gNDQgNDcgYm9wIDE1MCAtMTE2IGEgRnQoNDQpMjYwMCBiKEdOVSkzMQorYihSZWFkbGluZSlnKExpYnJhcnkpMzM3MSAyOTkgeShbViktOCBiKGFyaWFibGVdKS0zNTk4CitiIEZnKHJsX2NvbXBsZXRpb25fZnVuY190KTQ0IGIoKikzOSBiIEZmKHJsKXAgMTQxMiAyOTkKKzM1IDUgdiA1MCB3KGF0dGVtcHRlZClwIDE5ODIgMjk5IFYgNDggdyhjb21wbGV0aW9uKXAKKzI1ODAgMjk5IFYgNDkgdyhmdW5jdGlvbikzOTAgNDA4IHkgRnQoQSljKHApcyhvaW4pbSh0ZXIpZyh0bylnKGFuKWcKKyhhbHRlcm5hdGl2KW0oZSlpKGZ1bmN0aW9uKWQodG8paShjcmVhdGUpZyhtYXRjKW0oaGVzLik1NQorYihUaGUpMzQgYihmdW5jdGlvbiloKGlzKWYoY2FsbGVkKWkod2l0aCkzOTAgNTE4IHkgRmkodGV4dClwCitGdCgsKTI2IGIgRmkoc3RhcnQpcCBGdCgsKWYoYW5kKWQgRmkoZW5kKXAgRnQoLikzOCBiCitGaShzdGFydCkyNSBiIEZ0KGFuZCllIEZpKGVuZClqIEZ0KGFyZSlkKGluZGljZXMpZyhpbilnCitGcyhybF9saW5lX2J1ZmZlciljIEZ0KGRlXDAxNG5pbmcpaih0aGUpaChiKXMob3VuZC0pMzkwCis2MjggeShhcmllcylqKG9mKWggRmkodGV4dClwIEZ0KCwpaCh3aGljKW0oaClkKGlzKWgoYSloKGMpbShoYXJhY3RlcilnCisoc3RyaW5nLikzOSBiKElmKTI2IGIodGhpcylnKGZ1bmN0aW9uKWYoZXhpc3RzKWkoYW5kKWUocmV0dXJucylnCitGcyhOVUxMKXAgRnQoLCloKG9yKWcoaWYpMzkwIDczNyB5KHRoaXMpYyh2KS01IGIoYXJpYWJsZSkyMgorYihpcylnKHNldCloKHRvKWYgRnMoTlVMTClwIEZ0KCwpaCh0aGVuKWYgRnMocmxfY29tcGxldGVcKFwpKWMKK0Z0KHdpbGwpayhjYWxsKWgodGhlKWYodiktNSBiKGFsdWUpMjMgYihvZilmIEZzKHJsX2NvbXBsZXRpb25fKTM5MAorODQ3IHkoZW50cnlfZnVuY3Rpb24paSBGdCh0bykzMCBiKGdlbmVyYXRlKWYobWF0YyltKGhlcywpaShvdGhlcndpc2UpZAorKHRoZSloKGFycmEpbSh5KWcob2YpZihzdHJpbmdzKWgocmV0dXJuZWQpZSh3aWxsKWkoYilzKGUpMzkwCis5NTYgeSh1c2VkLikzNyBiKElmKTIyIGIodGhpcylnKGZ1bmN0aW9uKWcoc2V0cyloKHRoZSlnCitGcyhybF9hdHRlbXB0ZWRfY29tcGxldGlvbilvKF9vdmUpbyhyKTE2IGIgRnQodiktNSBiKGFyaWFibGUpMjQKK2IodG8pZihhKWYobm9uLXplcm8pMzkwIDEwNjYgeSh2KS01IGIoYWx1ZSwpMzUgYihSZWFkbGluZSlnKHdpbGwpZihub3QpCitnKHApcyhlcmZvcm0pZihpdHMpaChkZWZhdWx0KWcoY29tcGxldGlvbiloKGV2KW0oZW4pZyhpZilmKHRoaXMpZworKGZ1bmN0aW9uKWYocmV0dXJucykzOTAgMTE3NiB5KG5vKWQobWF0YyltKGhlcy4pMzM3MQorMTM1MSB5KFtWKS04IGIoYXJpYWJsZV0pLTM1OTggYiBGZyhybF9xdW90ZV9mdW5jX3QpNDMKK2IoKikzOCBiIEZmKHJsKXAgMTE1MCAxMzUxIFYgNTEgdyhcMDE0bGVuYW1lKXAgMTYxOCAxMzUxCitWIDQ4IHcocXVvdGluZylwIDIwNDUgMTM1MSBWIDUxIHcoZnVuY3Rpb24pMzkwIDE0NjEgeQorRnQoQSkzMyBiKHApcyhvaW4pbSh0ZXIpZih0byloKGEpZyhmdW5jdGlvbilnKHRoYXQpZyh3aWxsKWcocXVvdGUpZyhhKWcKKyhcMDE0bGVuYW1lKWYoaW4paChhbilmKGFwcGxpY2F0aW9uLXNwKXMoZWNpXDAxNGMpaShmYXNoaW9uLikzOTAKKzE1NzAgeShUaGlzKWsoaXMpaShjYWxsZWQpZyhpZilmKFwwMTRsZW5hbWUpaChjb21wbGV0aW9uKWcoaXMpZihiKXMKKyhlaW5nKWcoYXR0ZW1wdGVkKWkoYW5kKWQob25lKWkob2YpZih0aGUpZyhjKW0oaGFyYWN0ZXJzKTM5MAorMTY4MCB5KGluKTMzIGIgRnMocmxfZmlsZW5hbWVfcXVvdGVfY2hhcmFjKW8odGVyKW8ocykyNworYiBGdChhcHApcyhlYXJzKTMzIGIoaW4pZyhhKWcoY29tcGxldGVkKWgoXDAxNGxlbmFtZS4pNTAKK2IoVGhlKTMyIGIoZnVuY3Rpb24pMzkwIDE3ODkgeShpcykzNyBiKGNhbGxlZCloKHdpdGgpZQorRmkodGV4dClwIEZ0KCwpayBGaShtYXRjKW0oaClwIDE0MzggMTc4OSAyOCA0IHYgNDEgdyh0KW0oeXApcyhlKXAKK0Z0KCwpZihhbmQpZCBGaShxdW90ZSlwIDIxMTkgMTc4OSBWIDQxIHcocClzKG9pbiltKHRlcilwCitGdCguKTYwIGIoVGhlKTM2IGIgRmkodGV4dClrIEZ0KGlzKWQodGhlKWcoXDAxNGxlbmFtZSlnKHRvKWgoYilzKGUpMzkwCisxODk5IHkocXVvdGVkLik3NiBiKFRoZSk0MiBiIEZpKG1hdGMpbShoKXAgMTIxMCAxODk5CitWIDQxIHcodCltKHlwKXMoZSk0OCBiIEZ0KGlzKTQyIGIoZWl0aGVyKWggRnMoU0lOR0xFX01BVENIKXAKK0Z0KCwpZihpZilnKHRoZXJlKWcoaXMpaChvbmx5KWYob25lKWgoY29tcGxldGlvbikzOTAKKzIwMDggeShtYXRjKW0oaCwpMzMgYihvcillIEZzKE1VTFRfTUFUQ0gpcCBGdCguKTQxIGIoU29tZSkzMQorYihmdW5jdGlvbnMpZyh1c2UpZyh0aGlzKWgodG8pZyhkZWNpZGUpZih3aGV0aGVyKWcob3IpaChub3QpZih0byloCisoaW5zZXJ0KWcoYSkzOTAgMjExOCB5KGNsb3NpbmcpMjIgYihxdW90ZSlmKGMpbShoYXJhY3Rlci4pNDAKK2IoVGhlKTIwIGIgRmkocXVvdGUpcCAxNzUxIDIxMTggViA0MSB3KHApcyhvaW4pbSh0ZXIpMjcKK2IgRnQoaXMpMjEgYihhKWcocClzKG9pbiltKHRlcilnKHRvKWcoYW4pbSh5KWgob3ApcyhlbmluZyllKHF1b3RlKWgoYyltCisoaGFyYWN0ZXIpMzkwIDIyMjggeSh0aGUpMzEgYih1c2VyKWUodCltKHlwKXMoZWQuKTQxCitiKFNvbWUpMzAgYihmdW5jdGlvbnMpZyhjKW0oaG8pcyhvc2UpaCh0bylnKHJlc2V0KWcodGhpcylnKGMpbQorKGhhcmFjdGVyLikzMzcxIDI0MDMgeShbViktOCBiKGFyaWFibGVdKS0zNTk4IGIgRmcocmxfZGVxdW90ZV9mdW5jX3QpNDMKK2IoKiljIEZmKHJsKXAgMTI1NSAyNDAzIDM1IDUgdiA1MCB3KFwwMTRsZW5hbWUpcCAxNzIyCisyNDAzIFYgNDkgdyhkZXF1b3RpbmcpcCAyMjY3IDI0MDMgViA0OSB3KGZ1bmN0aW9uKTM5MAorMjUxMyB5IEZ0KEEpMzAgYihwKXMob2luKW0odGVyKWYodG8paShhKWYoZnVuY3Rpb24pZih0aGF0KWgod2lsbClnCisocmVtbyltKHYpbShlKWgoYXBwbGljYXRpb24tc3ApcyhlY2lcMDE0YylnKHF1b3RpbmcpZihjKW0oaGFyYWN0ZXJzKWgKKyhmcm9tKTM5MCAyNjIyIHkoYSlpKFwwMTRsZW5hbWUpZyhiKXMoZWZvcmUpZihjb21wbGV0aW9uKWgoaXMpZworKGF0dGVtcHRlZCwpaChzbylmKHRob3NlKWcoYyltKGhhcmFjdGVycyloKGRvKWUobm90KWgoaW4pbSh0ZXJmZXJlKWcKKyh3aXRoKTM5MCAyNzMyIHkobWF0YyltKGhpbmcpMzkgYih0aGUpZih0ZXh0KWkoYWdhaW5zdClmKG5hbWVzKWYoaW4pZworKHRoZSlnKFwwMTRsZXN5c3RlbS4pNjQgYihJdCkzOCBiKGlzKWcoY2FsbGVkKWkod2l0aClkCitGaSh0ZXh0KXAgRnQoLCk0MiBiKHRoZSljKHRleHQpMzkwIDI4NDEgeShvZilrKHRoZSloKHcpbShvcmQpZih0bylnKGIpcworKGUpZyhkZXF1b3RlZCwpaihhbmQpZCBGaShxdW90ZSlwIDIwMTQgMjg0MSAyOCA0IHYgNDEKK3coYyltKGhhcilwIEZ0KCwpaih3aGljKW0oaClkKGlzKWgodGhlKWYocXVvdGluZyloKGMpbShoYXJhY3RlcilnKHRoYXQpCiszOTAgMjk1MSB5KGRlbGltaXRzKTMzIGIodGhlKWYoXDAxNGxlbmFtZSlnKFwodXN1YWxseSloKGApcAorRnMoJylwIEZ0KCcpZihvcilnKGApcCBGcygiKXAgRnQoJ1wpLik0NiBiKElmKTMyIGIgRmkocXVvdGUpcAorMjM2OCAyOTUxIFYgNDEgdyhjKW0oaGFyKTM5IGIgRnQoaXMpMzIgYih6ZXJvLClpKHRoZSllKFwwMTRsZW5hbWUpZyh3KW0KKyhhcyloKG5vdCkzOTAgMzA2MSB5KGluKWQoYW4pZyhlbSltKGIpcyhlZGRlZClnKHN0cmluZy4pMzM3MQorMzIzNiB5KFtWKS04IGIoYXJpYWJsZV0pLTM1OTggYiBGZyhybF9saW5lYnVmX2Z1bmNfdCk0MworYigqKWMgRmYocmwpcCAxMjU1IDMyMzYgMzUgNSB2IDUwIHcoYyltKGhhcilwIDE1MjAgMzIzNgorViA1MCB3KGlzKXAgMTY0NyAzMjM2IFYgNTAgdyhxdW90ZWQpcCAyMDQwIDMyMzYgViA1MAordyhwKTM5MCAzMzQ1IHkgRnQoQSllKHApcyhvaW4pbSh0ZXIpZyh0bylnKGEpZyhmdW5jdGlvbilnKHRvKWcoY2FsbCloCisodGhhdClnKGRldGVybWluZXMpZih3aGV0aGVyKWYob3IpaChub3QpZyhhKWcoc3ApcyhlY2lcMDE0YylmKGMpbQorKGhhcmFjdGVyKTM5MCAzNDU1IHkoaW4pZSh0aGUpaChsaW5lKWYoYnVcMDEzZXIpZyhpcylnKHF1b3RlZCwpaQorKGFjY29yZGluZylnKHRvKWYod2hhdGV2KW0oZXIpZyhxdW90aW5nKWcobWVjKW0oaGFuaXNtKWcodGhlKWYocHJvZ3JhbSkKKzM5MCAzNTY1IHkoY2FsbGluZykyNiBiKFJlYWRsaW5lKWcodXNlcy4pMzggYihUaGUpMjQKK2IoZnVuY3Rpb24paChpcylnKGNhbGxlZCloKHdpdGgpZSh0KW0odyltKG8paShhcmd1bWVuKW0odHM6KTM5CitiIEZpKHRleHQpcCBGdCgsKTI3IGIodGhlKWUodGV4dCloKG9mKWYodGhlKTM5MCAzNjc0Cit5KGxpbmUsKTMxIGIoYW5kKWcgRmkoaW5kZXgpcCBGdCgsKWYodGhlKWgoaW5kZXgpZihvZiloKHRoZSlnKGMpbQorKGhhcmFjdGVyKWkoaW4pZCh0aGUpaChsaW5lLik0MiBiKEl0KTMxIGIoaXMpZyh1c2VkKWYodG8paChkZWNpZGUpZworKHdoZXRoZXIpZyhhKTM5MCAzNzg0IHkoYyltKGhhcmFjdGVyKWgoZm91bmQpZChpbilnIEZzCisocmxfY29tcGxldGVyX3dvcmRfYnJlYWtfY2gpbyhhcmEpbyhjdGVyKW8ocykyNCBiIEZ0KHNob3VsZCkyOQorYihiKXMoZSloKHVzZWQpZih0bylpKGJyZWFrKTM5MCAzODkzIHkodyltKG9yZHMpZihmb3IpZyh0aGUpaAorKGNvbXBsZXRlci4pMzM3MSA0MDY5IHkoW1YpLTggYihhcmlhYmxlXSktMzU5OCBiIEZnCisocmxfY29tcGlnbm9yZV9mdW5jX3QpNDQgYigqKTM5IGIgRmYocmwpcCAxNDEyIDQwNjkgVgorNTAgdyhpZ25vcmUpcCAxNzcyIDQwNjkgViA1MCB3KHNvbWUpcCAyMDcyIDQwNjkgViA1MQordyhjb21wbGV0aW9ucylwIDI3MTggNDA2OSBWIDUwIHcoZnVuY3Rpb24pMzkwIDQxNzggeQorRnQoVGhpcyllKGZ1bmN0aW9uLClpKGlmKWYoZGVcMDE0bmVkLClnKGlzKWcoY2FsbGVkKWgoYiltKHkpZSh0aGUpaAorKGNvbXBsZXRlciloKHdoZW4pZShyZWFsKWgoXDAxNGxlbmFtZSlnKGNvbXBsZXRpb24pMzkwCis0Mjg4IHkoaXMpYyhkb25lLCloKGFmdGVyKWYoYWxsKWgodGhlKWcobWF0YyltKGhpbmcpZyhuYW1lcyllKGhhKW0odiltCisoZSlqKGIpcyhlZW4pZChnZW5lcmF0ZWQuKTUzIGIoSXQpMzQgYihpcylnKHBhc3NlZClmKGEpaQorRnMoTlVMTClkIEZ0KHRlci0pMzkwIDQzOTggeShtaW5hdGVkKWYoYXJyYSltKHkpZyhvZilnKG1hdGMpbShoZXMuKTQzCitiKFRoZSkzMSBiKFwwMTRyc3QpZihlbGVtZW4pbSh0KWkoXCgpcCBGcyhtYXRjaGVzWzBdKXAKK0Z0KFwpKWQoaXMpaCh0aGUpaChtYXhpbWFsKWgoc3Vic3RyaW5nKTM5MCA0NTA3IHkoY29tbW9uKWQodG8pZyhhbGwpaAorKG1hdGMpbShoZXMuKTQxIGIoVGhpcykyOCBiKGZ1bmN0aW9uKWgoY2FuKWcocmUtYXJyYW5nZSlnKHRoZSlnKGxpc3QpaAorKG9mKWYobWF0YyltKGhlcylnKGFzKWcocmVxdWlyZWQsKTM5MCA0NjE3IHkoYnV0KWgoZWFjKW0oaCloKGVsZW1lbiltCisodCloKGRlbGV0ZWQpZihmcm9tKWYodGhlKWgoYXJyYSltKHkpZyhtKW0odXN0KWYoYilzKGUpZyhmcmVlZC4pMzM3MQorNDc5MiB5KFtWKS04IGIoYXJpYWJsZV0pLTM1OTggYiBGZyhybF9pY3BwZnVuY190KTQyIGIoKilkCitGZihybClwIDEwNDYgNDc5MiBWIDUwIHcoZGlyZWN0b3J5KXAgMTU1MiA0NzkyIFYgNTAgdyhjb21wbGV0aW9uKXAKKzIxNTIgNDc5MiBWIDQ5IHcoaG8pcyhvaykzOTAgNDkwMiB5IEZ0KFRoaXMpNDQgYihmdW5jdGlvbiwpNDkKK2IoaWYpZChkZVwwMTRuZWQsKWkoaXMpZChhbGxvKW0odyltKGVkKWkodG8pZihtbylzKGRpZnkpZSh0aGUpaQorKGRpcmVjdG9yeSlnKHApcyhvcnRpb24pZShvZilpKFwwMTRsZW5hbWVzKTM5MCA1MDExIHkoUmVhZGxpbmUpMzcKK2IoY29tcGxldGVzLik2MSBiKEl0KTM2IGIoaXMpaChjYWxsZWQpZyh3aXRoKWcodGhlKWYoYWRkcmVzcylnKG9mKWgoYSlnCisoc3RyaW5nKWYoXCh0aGUpaChjdXJyZW4pbSh0KWYoZGlyZWN0b3J5KTM5MCA1MTIxIHkobmFtZVwpKWkoYXMpZihhbilnCisoYXJndW1lbiltKHQsKWkoYW5kKWUobWEpbSh5KWgobW8pcyhkaWZ5KWUodGhhdClpKHN0cmluZy4pNjAKK2IoSWYpMzcgYih0aGUpZyhzdHJpbmcpaChpcylmKHJlcGxhY2VkKWcod2l0aCkzOTAgNTIzMAoreShhKWoobmV3KWcoc3RyaW5nLClpKHRoZSllKG9sZClnKHYpLTUgYihhbHVlKTQxIGIoc2hvdWxkKWUoYilzKGUpZworKGZyZWVkLik2OSBiKEFuKW0oeSk0MCBiKG1vKXMoZGlcMDE0ZWQpZihkaXJlY3RvcnkpaChuYW1lKWcoc2hvdWxkKTM5MAorNTM0MCB5KGhhKW0odiltKGUpMzAgYihhKWcodHJhaWxpbmcpZyhzbGFzaC4pNDAgYihUaGUpMjkKK2IobW8pcyhkaVwwMTRlZClmKHYpLTUgYihhbHVlKTMwIGIod2lsbClmKGIpcyhlKWcoZGlzcGxhKW0oeSltKGVkKWcoYXMpCitoKHBhcnQpZihvZilnKHRoZSlnKGNvbXBsZXRpb24sKXAgZW9wIGVuZAorJSVQYWdlOiA0NSA0OQorVGVYRGljdCBiZWdpbiA0NSA0OCBib3AgMTUwIC0xMTYgYSBGdChDaGFwdGVyKTMwIGIoMjopNDEKK2IoUHJvZ3JhbW1pbmcpMzAgYih3aXRoKWcoR05VKWgoUmVhZGxpbmUpMTY4MyBiKDQ1KTM5MAorMjk5IHkocmVwbGFjaW5nKTI5IGIodGhlKWYoZGlyZWN0b3J5KWgocClzKG9ydGlvbilmKG9mKWcodGhlKWgKKyhwYXRobmFtZSlmKHRoZSlnKHVzZXIpZyh0KW0oeXApcyhlZC4pMzkgYihJdCkyOCBiKHJldHVybnMpZihhbilpKGluKW0KKyh0ZWdlcikzOTAgNDA4IHkodGhhdCkzNCBiKHNob3VsZCllKGIpcyhlKWcobm9uLXplcm8paShpZillKHRoZSlpCisoZnVuY3Rpb24pZShtbylzKGRpXDAxNGVzKWgoaXRzKWcoZGlyZWN0b3J5KWcoYXJndW1lbiltKHQuKTQ5CitiKEl0KTM0IGIoY291bGQpZihiKXMoZSkzOTAgNTE4IHkodXNlZClkKHRvKWgoZXhwYW5kKWUoc3ltKW0oYilzKG9saWMpaQorKGxpbmtzKWYob3IpaChzaGVsbClmKHYpLTUgYihhcmlhYmxlcykzMSBiKGluKWYocGF0aG5hbWVzLikzMzcxCis3MjQgeShbViktOCBiKGFyaWFibGVdKS0zNTk4IGIgRmcocmxfY29tcGRpc3BfZnVuY190KTQ0CitiKCopMzggYiBGZihybClwIDEzMDcgNzI0IDM1IDUgdiA1MSB3KGNvbXBsZXRpb24pcCAxOTA4Cis3MjQgViA0OSB3KGRpc3BsYSltKHkpcCAyMzA3IDcyNCBWIDQ5IHcobWF0YyltKGhlcylwCisyNzYyIDcyNCBWIDUwIHcoaG8pcyhvaykzOTAgODMzIHkgRnQoSWYpMjIgYihub24temVybywpaSh0aGVuKWUodGhpcylnCisoaXMpZyh0aGUpZyhhZGRyZXNzKWYob2YpaChhKWcoZnVuY3Rpb24pZyh0byloKGNhbGwpZyh3aGVuKWUKKyhjb21wbGV0aW5nKWkoYSlnKHcpbShvcmQpZSh3KW0ob3VsZCkzOTAgOTQzIHkobm9ybWFsbHkpaChkaXNwbGEpbSh5KWgKKyh0aGUpZihsaXN0KWgob2YpZihwKXMob3NzaWJsZSlnKG1hdGMpbShoZXMuKTM5IGIoVGhpcykyMQorYihmdW5jdGlvbiloKGlzKWcoY2FsbGVkKWkoaW4pZShsaWV1KWcob2YpZyhSZWFkbGluZSkzOTAKKzEwNTIgeShkaXNwbGEpbSh5aW5nKTM3IGIodGhlKWgobGlzdC4pNjEgYihJdCkzNyBiKHRhayltKGVzKWkodGhyZWUpZQorKGFyZ3VtZW4pbSh0czopNTQgYihcKClwIEZzKGNoYXIpMzAgYigqKilwIEZpKG1hdGMpbShoZXMpcAorRnQoLCkzOSBiIEZzKGludClkIEZpKG4pbSh1bSlwIDMzNzAgMTA1MiAyOCA0IHYgNDAgdyhtYXRjKW0oaGVzKXAKK0Z0KCwpMzkwIDExNjIgeSBGcyhpbnQpMjYgYiBGaShtYXgpcCA3MzUgMTE2MiBWIDQwIHcobGVuZ3RoKXAKK0Z0KFwpKWgod2hlcmUpZiBGaShtYXRjKW0oaGVzKTMxIGIgRnQoaXMpYyh0aGUpZihhcnJhKW0oeSloKG9mKWcobWF0YyltCisoaGluZylnKHN0cmluZ3MsKWggRmkobiltKHVtKXAgMzE1MiAxMTYyIFYgMzkgdyhtYXRjKW0oaGVzKWoKK0Z0KGlzKWModGhlKTM5MCAxMjcxIHkobiltKHVtKW0oYilzKGVyKWgob2YpaChzdHJpbmdzKWcoaW4pZyh0aGF0KWcKKyhhcnJhKW0oeSktOCBiKCwpMzEgYihhbmQpZCBGaShtYXgpcCAyMDIwIDEyNzEgViA0MCB3KGxlbmd0aClpCitGdChpcylmKHRoZSlnKGxlbmd0aCloKG9mKWYodGhlKWcobG9uZ2VzdCloKHN0cmluZylmKGluKTM5MAorMTM4MSB5KHRoYXQpZyhhcnJhKW0oeSktOCBiKC4pNDEgYihSZWFkbGluZSkyOCBiKHBybyltKHZpZGVzKWcoYSloKGNvbikKK20odiltKGVuaWVuY2UpaChmdW5jdGlvbiwpZSBGcyhybF9kaXNwbGF5X21hdGNoX2xpc3QpcAorRnQoLCkyMyBiKHRoYXQpMzkwIDE0OTEgeSh0YWspbShlcykzNiBiKGNhcmUpZyhvZilmKGRvaW5nKWcodGhlKWcKKyhkaXNwbGEpbSh5KWYodG8paShSZWFkbGluZSdzKWYob3V0cHV0KWcoc3RyZWFtLik1NCBiKFRoYXQpMzUKK2IoZnVuY3Rpb24pZihtYSltKHkpaShiKXMoZSkzOTAgMTYwMCB5KGNhbGxlZCljKGZyb20pZCh0aGlzKWkoaG8pcyhvay4pCiszMzcxIDE4MDYgeShbViktOCBiKGFyaWFibGVdKS0zNTk4IGIgRmcoY29uc3QpNDAgYihjaGFyKWYoKilnCitGZihybClwIDg3NSAxODA2IDM1IDUgdiA1MCB3KGJhc2ljKXAgMTE3MyAxODA2IFYgNTAgdyh3KW0ob3JkKXAKKzE0NzEgMTgwNiBWIDUwIHcoYnJlYWspcCAxODAxIDE4MDYgViA1MCB3KGMpbShoYXJhY3RlcnMpMzkwCisxOTE1IHkgRnQoVGhlKTQ0IGIoYmFzaWMpZyhsaXN0KWgob2YpZihjKW0oaGFyYWN0ZXJzKWkodGhhdClmKHNpZ25hbClnCisoYSlmKGJyZWFrKWcoYilzKGV0KW0odyltKGVlbiloKHcpbShvcmRzKWYoZm9yKWcodGhlKWcoY29tcGxldGVyKTM5MAorMjAyNSB5KHJvdXRpbmUuKTYxIGIoVGhlKTM3IGIoZGVmYXVsdClnKHYpLTUgYihhbHVlKTM3CitiKG9mKWgodGhpcylmKHYpLTUgYihhcmlhYmxlKTM4IGIoaXMpZih0aGUpZyhjKW0oaGFyYWN0ZXJzKWkod2hpYyltKGgpZQorKGJyZWFrKWcodyltKG9yZHMpZihmb3IpMzkwIDIxMzQgeShjb21wbGV0aW9uKWMoaW4pZShCYXNoOik0MQorYiBGcygiKTMwIGIoXFx0XFxuXFwiXFxcXCdgQCQ+PD07fCZ7XCgiKXAgRnQoLikzMzcxIDIzNDAKK3koW1YpLTggYihhcmlhYmxlXSktMzU5OCBiIEZnKGNvbnN0KTQwIGIoY2hhcilmKCopZyBGZihybClwCis4NzUgMjM0MCBWIDUwIHcoYmFzaWMpcCAxMTczIDIzNDAgViA1MCB3KHF1b3RlKXAgMTUwMgorMjM0MCBWIDUwIHcoYyltKGhhcmFjdGVycykzOTAgMjQ1MCB5IEZ0KEEpMzAgYihsaXN0KWkob2YpZShxdW90ZSloKGMpbQorKGhhcmFjdGVycyloKHdoaWMpbShoKWUoY2FuKWgoY2F1c2UpZyhhKWYodyltKG9yZClnKGJyZWFrLikzMzcxCisyNjU1IHkoW1YpLTggYihhcmlhYmxlXSktMzU5OCBiIEZnKGNvbnN0KTQwIGIoY2hhcilmKCopZworRmYocmwpcCA4NzUgMjY1NSBWIDUwIHcoY29tcGxldGVyKXAgMTQyMiAyNjU1IFYgNDkgdyh3KW0ob3JkKXAKKzE3MTkgMjY1NSBWIDUwIHcoYnJlYWspcCAyMDQ5IDI2NTUgViA1MCB3KGMpbShoYXJhY3RlcnMpMzkwCisyNzY1IHkgRnQoVGhlKTY0IGIobGlzdClpKG9mKWYoYyltKGhhcmFjdGVycyloKHRoYXQpZyhzaWduYWwpZyhhKWYKKyhicmVhaylnKGIpcyhldCltKHcpbShlZW4pZyh3KW0ob3JkcylnKGZvcilmIEZzKHJsX2NvbXBsZXRlXykzOTAKKzI4NzQgeShpbnRlcm5hbFwoXCkpcCBGdCguKTM4IGIoVGhlKTMwIGIoZGVmYXVsdClnKGxpc3QpaChpcylnKHRoZSlmKHYpCistNSBiKGFsdWUpMzEgYihvZilnIEZzKHJsX2Jhc2ljX3dvcmRfYnJlYWtfY2hhKW8ocmFjdClvKGVycylwCitGdCguKTMzNzEgMzA4MCB5KFtWKS04IGIoYXJpYWJsZV0pLTM1OTggYiBGZyhybF9jcHZmdW5jX3QpNDIKK2IoKiljIEZmKHJsKXAgOTkzIDMwODAgViA1MSB3KGNvbXBsZXRpb24pcCAxNTk0IDMwODAKK1YgNDkgdyh3KW0ob3JkKXAgMTg5MSAzMDgwIFYgNTAgdyhicmVhaylwIDIyMjEgMzA4MCBWCis1MCB3KGhvKXMob2spMzkwIDMxODkgeSBGdChJZikzMSBiKG5vbi16ZXJvLClpKHRoaXMpZShpcyloKHRoZSlmCisoYWRkcmVzcylnKG9mKWcoYSloKGZ1bmN0aW9uKWcodG8pZyhjYWxsKWgod2hlbilkKFJlYWRsaW5lKWkoaXMpZworKGRlY2lkaW5nKWYod2hlcmUpMzkwIDMyOTkgeSh0bylrKHNlcGFyYXRlKWcodyltKG9yZHMpZihmb3IpZyh3KW0ob3JkKWcKKyhjb21wbGV0aW9uLik1NCBiKEl0KTM0IGIoc2hvdWxkKWYocmV0dXJuKWcoYSlpKGMpbShoYXJhY3RlciloKHN0cmluZyllCisobGlrKW0oZSlpIEZzKHJsXykzOTAgMzQwOCB5KGNvbXBsZXRlcl93b3JkX2JyZWFrX2NoYSlvKHJhY3QpbyhlcnMpMjYKK2IgRnQodG8pMzQgYihiKXMoZSllKHVzZWQpZyh0bylpKHApcyhlcmZvcm0pZSh0aGUpaChjdXJyZW4pbSh0KWYKKyhjb21wbGV0aW9uLikzOTAgMzUxOCB5KFRoZSkyNCBiKGZ1bmN0aW9uKWgobWEpbSh5KWcoYyltKGhvKXMob3NlKWgodG8pCitmKHNldClnIEZzKHJsX2NvbXBsZXRlcl93b3JkX2JyZWFrX2NoKW8oYXJhYylvKHRlcilvKHMpMTkKK2IgRnQoaXRzZWxmLikzOSBiKElmKTI1IGIodGhlKTM5MCAzNjI4IHkoZnVuY3Rpb24pMzAKK2IocmV0dXJucylmIEZzKE5VTEwpcCBGdCgsKWggRnMocmxfY29tcGxldGVyX3dvcmRfYnJlYWspbyhfY2hhKW8ocmFjKW8KKyh0ZXJzKTI0IGIgRnQoaXMpMzAgYih1c2VkLikzMzcxIDM4MzMgeShbViktOCBiKGFyaWFibGVdKS0zNTk4CitiIEZnKGNvbnN0KTQwIGIoY2hhcilmKCopZyBGZihybClwIDg3NSAzODMzIFYgNTAgdyhjb21wbGV0ZXIpcAorMTQyMiAzODMzIFYgNDkgdyhxdW90ZSlwIDE3NTAgMzgzMyBWIDUwIHcoYyltKGhhcmFjdGVycykzOTAKKzM5NDMgeSBGdChBKTM0IGIobGlzdClnKG9mKWcoYyltKGhhcmFjdGVycyloKHdoaWMpbShoKWUoY2FuKWgoYilzKGUpZworKHVzZWQpZSh0bylqKHF1b3RlKWYoYSlnKHN1YnN0cmluZylmKG9mKWgodGhlKWYobGluZS4pNTEKK2IoQ29tcGxldGlvbikzOTAgNDA1MiB5KG8pcyhjY3VycykyNiBiKG9uKWcodGhlKWcoZW4pbSh0aXJlKWkKKyhzdWJzdHJpbmcsKWUoYW5kKWYod2l0aGluKWgodGhlKWcoc3Vic3RyaW5nKWcgRnMKKyhybF9jb21wbGV0ZXJfd29yZF9icmVhaylvKF8pMzkwIDQxNjIgeShjaGFyYWN0ZXJzKTMyCitiIEZ0KGFyZSlrKHRyZWF0ZWQpZyhhcylmKGFuKW0oeSloKG90aGVyKWYoYyltKGhhcmFjdGVyLClqKHVubGVzcylkCisodGhleSlnKGFsc28paChhcHApcyhlYXIpZSh3aXRoaW4paCh0aGlzKTM5MCA0MjcxIHkobGlzdC4pMzM3MQorNDQ3NyB5KFtWKS04IGIoYXJpYWJsZV0pLTM1OTggYiBGZyhjb25zdCk0MCBiKGNoYXIpZigqKWcKK0ZmKHJsKXAgODc1IDQ0NzcgViA1MCB3KFwwMTRsZW5hbWUpcCAxMzQyIDQ0NzcgViA0OSB3KHF1b3RlKXAKKzE2NzAgNDQ3NyBWIDUwIHcoYyltKGhhcmFjdGVycykzOTAgNDU4NyB5IEZ0KEEpMzQgYihsaXN0KWcob2YpZyhjKW0KKyhoYXJhY3RlcnMpaCh0aGF0KWYoY2F1c2UpaChhKWYoXDAxNGxlbmFtZSlnKHRvKWcoYilzKGUpZihxdW90ZWQpaChiKW0KKyh5KWYodGhlKWgoY29tcGxldGVyKWgod2hlbillKHRoZXkpMzkwIDQ2OTYgeShhcHApcyhlYXIpZChpbilnKGEpaAorKGNvbXBsZXRlZClnKFwwMTRsZW5hbWUuKTQxIGIoVGhlKTMwIGIoZGVmYXVsdClnKGlzKWgodGhlKWYobiltKHVsbCloCisoc3RyaW5nLikzMzcxIDQ5MDIgeShbViktOCBiKGFyaWFibGVdKS0zNTk4IGIgRmcoY29uc3QpNDAKK2IoY2hhcilmKCopZyBGZihybClwIDg3NSA0OTAyIFYgNTAgdyhzcClzKGVjaWFsKXAgMTI2MQorNDkwMiBWIDQ5IHcocHJlXDAxNHhlcykzOTAgNTAxMSB5IEZ0KFRoZSkyNyBiKGxpc3QpaShvZillKGMpbQorKGhhcmFjdGVycylqKHRoYXQpZShhcmUpZyh3KW0ob3JkKWYoYnJlYWspaChjKW0oaGFyYWN0ZXJzLClpKGJ1dClkCisoc2hvdWxkKWYoYilzKGUpaChsZWZ0KWkoaW4pZSBGaSh0ZXh0KWsgRnQod2hlbikzOTAgNTEyMQoreShpdCkyNSBiKGlzKWcocGFzc2VkKWYodG8paCh0aGUpZyhjb21wbGV0aW9uKWgoZnVuY3Rpb24uKTM4CitiKFByb2dyYW1zKTI1IGIoY2FuKWcodXNlKWYodGhpcyloKHRvKWcoaGVscClmKGRldGVybWluZSloKHdoYXQpMzkwCis1MjMwIHkoa2luZClqKG9mKWkoY29tcGxldGluZylnKHRvKWcoZG8uKTQxIGIoRiktOCBiKG9yKTMwCitiKGluc3RhbmNlLClnKEJhc2gpZyhzZXRzKWYodGhpcylnKHYpLTUgYihhcmlhYmxlKTMxCitiKHRvKWYgRnMoIilwIEZ0KCQpcCBGcyhAIillIEZ0KHNvKWkodGhhdClnKGl0KWcoY2FuKTM5MAorNTM0MCB5KGNvbXBsZXRlKWkoc2hlbGwpZSh2KS01IGIoYXJpYWJsZXMpMzEgYihhbmQpZihob3N0bmFtZXMuKXAKK2VvcCBlbmQKKyUlUGFnZTogNDYgNTAKK1RlWERpY3QgYmVnaW4gNDYgNDkgYm9wIDE1MCAtMTE2IGEgRnQoNDYpMjYwMCBiKEdOVSkzMQorYihSZWFkbGluZSlnKExpYnJhcnkpMzM3MSAyOTkgeShbViktOCBiKGFyaWFibGVdKS0zNTk4CitiIEZnKGludCkzOSBiIEZmKHJsKXAgNDMyIDI5OSAzNSA1IHYgNTEgdyhjb21wbGV0aW9uKXAKKzEwMzMgMjk5IFYgNDkgdyhxdWVyeSlwIDEzNjYgMjk5IFYgNTEgdyhpdGVtcykzOTAgNDA4Cit5IEZ0KFVwKWQodG8paCh0aGlzKWYobWFuKW0oeSlnKGl0ZW1zKWgod2lsbClmKGIpcyhlKWcoZGlzcGxhKW0oeSltKGVkKQoraChpbillKHJlc3ApcyhvbnNlKWgodG8paChhKWYocClzKG9zc2libGUtY29tcGxldGlvbnMpaChjYWxsLikzOTAKKzUxOCB5KEFmdGVyKTI4IGIodGhhdCwpaChyZWFkbGluZSlmKGFza3MpZyh0aGUpZyh1c2VyKWYoaWYpaChzaGUpZihpcyloCisoc3VyZSlmKHNoZSloKHcpbShhbiltKHRzKWcodG8paChzZWUpZih0aGVtKWcoYWxsLik0MAorYihUaGUpMjggYihkZWZhdWx0KTM5MCA2MjggeSh2KS01IGIoYWx1ZSkzMSBiKGlzKWYoMTAwLik0MgorYihBKTMxIGIobmVnYXRpdiltKGUpaCh2KS01IGIoYWx1ZSkzMSBiKGluZGljYXRlcylnKHRoYXQpZyhSZWFkbGluZSlnCisoc2hvdWxkKWYobmV2KW0oZXIpaChhc2spZih0aGUpaCh1c2VyLikzMzcxIDgxOSB5KFtWKS04CitiKGFyaWFibGVdKS0zNTk4IGIgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIgODE5IFYgNTEgdyhjb21wbGV0aW9uKXAKKzEwMzMgODE5IFYgNDkgdyhhcHApcyhlbmQpcCAxNDUwIDgxOSBWIDQ4IHcoYyltKGhhcmFjdGVyKTM5MAorOTI5IHkgRnQoV2hlbikzMyBiKGEpaChzaW5nbGUpZihjb21wbGV0aW9uKWkoYWx0ZXJuYXRpdiltKGUpaChtYXRjKW0KKyhoZXMpZShhdClnKHRoZSlmKGVuZClnKG9mKWcodGhlKWgoY29tbWFuZClmKGxpbmUsKWgodGhpcykzOTAKKzEwMzkgeShjKW0oaGFyYWN0ZXIpMjMgYihpcyllKGFwcClzKGVuZGVkKWYodG8paSh0aGUpZyhpbnNlcnRlZClmCisoY29tcGxldGlvbilpKHRleHQuKTM5IGIoVGhlKTIwIGIoZGVmYXVsdClpKGlzKWcoYSlmKHNwYWNlKWgoYyltCisoaGFyYWN0ZXIpMzkwIDExNDggeShcKGApMzEgYignXCkuKTg2IGIoU2V0dGluZyk0NiBiKHRoaXMpZih0byloKHRoZSlnCisobiltKHVsbClmKGMpbShoYXJhY3RlcilpKFwoYClwIEZzKFxcMClwIEZ0KCdcKSlmKHByZXYpbShlbiltKHRzKWcoYW4pbQorKHl0aGluZylnKGIpcyhlaW5nKWYoYXBwKXMoZW5kZWQpMzkwIDEyNTggeShhdXRvbWF0aWNhbGx5KS04CitiKC4pNjYgYihUaGlzKTM3IGIoY2FuKWgoYilzKGUpZihjKW0oaGFuZ2VkKWgoaW4pZyhhcHBsaWNhdGlvbi1zcClzCisoZWNpXDAxNGMpaChjb21wbGV0aW9uKWcoZnVuY3Rpb25zKWUodG8pMzkwIDEzNjcgeShwcm8pbSh2aWRlKWoodGhlKWcKKyhcXG1vc3QpZyhzZW5zaWJsZSlnKHcpbShvcmQpZihzZXBhcmF0b3IpaShjKW0oaGFyYWN0ZXIiKWgoYWNjb3JkaW5nKWUKKyh0byloKGFuKWUoYXBwbGljYXRpb24tKTM5MCAxNDc3IHkoc3ApcyhlY2lcMDE0YykzMCBiKGNvbW1hbmQpZyhsaW5lKWgKKyhzeW4pbSh0YXgpZyhzcClzKGVjaVwwMTRjYXRpb24uKTMzNzEgMTY2OSB5KFtWKS04IGIoYXJpYWJsZV0pLTM1OTgKK2IgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIgMTY2OSBWIDUxIHcoY29tcGxldGlvbilwIDEwMzMKKzE2NjkgViA0OSB3KHN1cHByZXNzKXAgMTUwOSAxNjY5IFYgNTAgdyhhcHApcyhlbmQpMzkwCisxNzc4IHkgRnQoSWYpMzMgYihub24temVybywpaSBGaShybClwIDk0OSAxNzc4IDI4IDQgdgorMzkgdyhjb21wbGV0aW9uKXAgMTQyMSAxNzc4IFYgNDIgdyhhcHApcyhlbmQpcCAxNzU1IDE3NzgKK1YgMzggdyhjKW0oaGFyYWN0ZXIpNDIgYiBGdChpcykzMyBiKG5vdClnKGFwcClzKGVuZGVkKWYodG8paShtYXRjKW0KKyhoZXMpZyhhdClnKHRoZSlnKGVuZCkzOTAgMTg4OCB5KG9mKTI4IGIodGhlKWYoY29tbWFuZCloKGxpbmUsKWgoYXMpZQorKGRlc2NyaWIpcyhlZClnKGFiKXMobyltKHYpbShlLik0MSBiKEl0KTI3IGIoaXMpaChzZXQpZyh0bylnKDApZyhiKXMKKyhlZm9yZSlnKGFuKW0oeSlmKGFwcGxpY2F0aW9uLXNwKXMoZWNpXDAxNGMpMzkwIDE5OTgKK3koY29tcGxldGlvbikzMiBiKGZ1bmN0aW9uKWUoaXMpZyhjYWxsZWQsKWkoYW5kKWUobWEpbSh5KWgob25seSlmKGIpcworKGUpZyhjKW0oaGFuZ2VkKWgod2l0aGluKWYoc3VjKW0oaClnKGEpaChmdW5jdGlvbi4pMzM3MQorMjE4OSB5KFtWKS04IGIoYXJpYWJsZV0pLTM1OTggYiBGZyhpbnQpMzkgYiBGZihybClwIDQzMgorMjE4OSAzNSA1IHYgNTEgdyhjb21wbGV0aW9uKXAgMTAzMyAyMTg5IFYgNDkgdyhxdW90ZSlwCisxMzYxIDIxODkgViA1MCB3KGMpbShoYXJhY3RlcikzOTAgMjI5OSB5IEZ0KFdoZW4pZChSZWFkbGluZSloKGlzKWYKKyhjb21wbGV0aW5nKWgocXVvdGVkKWcodGV4dCwpaChhcylmKGRlbGltaXRlZClnKGIpbSh5KWYob25lKWcob2YpZyh0aGUpCitoKGMpbShoYXJhY3RlcnMpZyhpbikzOTAgMjQwOCB5IEZpKHJsKXAgNDU3IDI0MDggMjggNAordiA0MCB3KGNvbXBsZXRlcilwIDg4NSAyNDA4IFYgNDEgdyhxdW90ZSlwIDExNDUgMjQwOAorViA0MSB3KGMpbShoYXJhY3RlcnMpcCBGdCgsKTQzIGIoaXQpYyhzZXRzKWcodGhpcylnKHYpLTUKK2IoYXJpYWJsZSk0MCBiKHRvKWcodGhlKWYocXVvdGluZylnKGMpbShoYXJhY3RlcilpKGZvdW5kLikzOTAKKzI1MTggeShUaGlzKTMwIGIoaXMpZyhzZXQpaChiKXMoZWZvcmUpZihhbiltKHkpaChhcHBsaWNhdGlvbi1zcClzCisoZWNpXDAxNGMpZyhjb21wbGV0aW9uKWgoZnVuY3Rpb24pZShpcyloKGNhbGxlZC4pMzM3MQorMjcxMCB5KFtWKS04IGIoYXJpYWJsZV0pLTM1OTggYiBGZyhpbnQpMzkgYiBGZihybClwIDQzMgorMjcxMCAzNSA1IHYgNTEgdyhjb21wbGV0aW9uKXAgMTAzMyAyNzEwIFYgNDkgdyhzdXBwcmVzcylwCisxNTA5IDI3MTAgViA1MCB3KHF1b3RlKTM5MCAyODE5IHkgRnQoSWYpMzIgYihub24temVybywpaChSZWFkbGluZSlnKGRvKQorcyhlcylmKG5vdCloKGFwcClzKGVuZClkKGEpaihtYXRjKW0oaGluZylnKHF1b3RlKWcoYyltKGhhcmFjdGVyKWgod2hlbikKK2QocClzKGVyZm9ybWluZykzOTAgMjkyOSB5KGNvbXBsZXRpb24pMjUgYihvbillKGEpaChxdW90ZWQpZyhzdHJpbmcuKTM4CitiKEl0KTI0IGIoaXMpZihzZXQpaCh0byloKDApZihiKXMoZWZvcmUpZihhbiltKHkpaChhcHBsaWNhdGlvbi1zcClzCisoZWNpXDAxNGMpaChjb21wbGV0aW9uKTM5MCAzMDM5IHkoZnVuY3Rpb24pMzAgYihpcylnKGNhbGxlZCwpaShhbmQpZQorKG1hKW0oeSloKG9ubHkpZyhiKXMoZSllKGMpbShoYW5nZWQpaSh3aXRoaW4pZihzdWMpbShoKWcoYSloKGZ1bmN0aW9uLikKKzMzNzEgMzIzMCB5KFtWKS04IGIoYXJpYWJsZV0pLTM1OTggYiBGZyhpbnQpMzkgYiBGZihybClwCis0MzIgMzIzMCBWIDUxIHcoY29tcGxldGlvbilwIDEwMzMgMzIzMCBWIDQ5IHcoZm91bmQpcAorMTM2NiAzMjMwIFYgNTAgdyhxdW90ZSkzOTAgMzM0MCB5IEZ0KFdoZW4pMzEgYihSZWFkbGluZSlpKGlzKWUKKyhjb21wbGV0aW5nKWkocXVvdGVkKWYodGV4dCwpaChpdClmKHNldHMpZyh0aGlzKWcodiktNQorYihhcmlhYmxlKTMyIGIodG8paChhKWYobm9uLXplcm8pZyh2KS01IGIoYWx1ZSkzMiBiKGlmKTM5MAorMzQ1MCB5KHRoZSkyMSBiKHcpbShvcmQpZyhiKXMoZWluZylnKGNvbXBsZXRlZCloKGNvbiltKHRhaW5zKWcob3IpZihpcykKK2coZGVsaW1pdGVkKWgoYiltKHkpZihhbiltKHkpZyhxdW90aW5nKWgoYyltKGhhcmFjdGVycywpaShpbmNsdWRpbmcpMzkwCiszNTU5IHkoYmFjKW0oa3NsYXNoZXMuKTQyIGIoVGhpcykyOSBiKGlzKWkoc2V0KWcoYilzKGVmb3JlKWYoYW4pbSh5KWcKKyhhcHBsaWNhdGlvbi1zcClzKGVjaVwwMTRjKWkoY29tcGxldGlvbilnKGZ1bmN0aW9uKWUoaXMpZyhjYWxsZWQuKTMzNzEKKzM3NTEgeShbViktOCBiKGFyaWFibGVdKS0zNTk4IGIgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIKKzM3NTEgViA1MSB3KGNvbXBsZXRpb24pcCAxMDMzIDM3NTEgViA0OSB3KG1hcmspcCAxMzQwCiszNzUxIFYgNTEgdyhzeW1saW5rKXAgMTc3OSAzNzUxIFYgNTEgdyhkaXJzKTM5MCAzODYxCit5IEZ0KElmKTMxIGIobm9uLXplcm8sKWkoYSlmKHNsYXNoKWcod2lsbClnKGIpcyhlKWYoYXBwKXMoZW5kZWQpZih0bylqCisoY29tcGxldGVkKWcoXDAxNGxlbmFtZXMpZSh0aGF0KWkoYXJlKWYoc3ltKW0oYilzKG9saWMpZyhsaW5rcykzOTAKKzM5NzAgeSh0bykyNSBiKGRpcmVjdG9yeSlnKG5hbWVzLClnKHN1Yik1IGIoamVjdCkyNCBiKHRvKWgodGhlKWYodiktNQorYihhbHVlKTI1IGIob2YpZih0aGUpaCh1c2VyLXNldHRhYmxlKWcgRmkobWFyay1kaXJlY3RvcmllcylrCitGdCh2KS01IGIoYXJpYWJsZS4pMzkwIDQwODAgeShUaGlzKTI3IGIodiktNSBiKGFyaWFibGUpMjgKK2IoZXhpc3RzKWcoc28pZih0aGF0KWgoYXBwbGljYXRpb24tc3ApcyhlY2lcMDE0YyloKGNvbXBsZXRpb24pZworKGZ1bmN0aW9ucyllKGNhbilnKG8pbSh2KW0oZXJyaWRlKWkodGhlKTM5MCA0MTg5IHkodXNlcidzKTQyCitiKGdsb2JhbCloKHByZWZlcmVuY2UpZyhcKHNldClnKHZpYSlnKHRoZSlmIEZpKG1hcmstc3ltbGluayltCisoZWQtZGlyZWN0b3JpZXMpNDggYiBGdChSZWFkbGluZSk0MyBiKHYpLTUgYihhcmlhYmxlXCkpMzkwCis0Mjk5IHkoaWYpMzggYihhcHByb3ByaWF0ZS4pNjIgYihUaGlzKTM3IGIodiktNSBiKGFyaWFibGUpMzgKK2IoaXMpZyhzZXQpZyh0bylnKHRoZSlnKHVzZXIncylmKHByZWZlcmVuY2UpZyhiKXMoZWZvcmUpZyhhbiltKHkpaAorKGFwcGxpY2F0aW9uLSkzOTAgNDQwOCB5KHNwKXMoZWNpXDAxNGMpMzEgYihjb21wbGV0aW9uKWkoZnVuY3Rpb24pZihpcykKK2YoY2FsbGVkLClqKHNvKWUodW5sZXNzKWYodGhhdCloKGZ1bmN0aW9uKWYobW8pcyhkaVwwMTRlcylnKHRoZSloKHYpLTUKK2IoYWx1ZSwpMzMgYih0aGUpMzkwIDQ1MTggeSh1c2VyJ3MpZChwcmVmZXJlbmNlcylnKGFyZSloKGhvbm9yZWQuKTMzNzEKKzQ3MTAgeShbViktOCBiKGFyaWFibGVdKS0zNTk4IGIgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIKKzQ3MTAgViA1MSB3KGlnbm9yZSlwIDc5MyA0NzEwIFYgNTAgdyhjb21wbGV0aW9uKXAgMTM5MworNDcxMCBWIDQ5IHcoZHVwbGljYXRlcykzOTAgNDgxOSB5IEZ0KElmKTMwIGIobm9uLXplcm8sKWgodGhlbilmCisoZHVwbGljYXRlcyloKGluKWYodGhlKWgobWF0YyltKGhlcylnKGFyZSlnKHJlbW8pbSh2KW0oZWQuKTQyCitiKFRoZSkyOSBiKGRlZmF1bHQpaShpcylmKDEuKTMzNzEgNTAxMSB5KFtWKS04IGIoYXJpYWJsZV0pLTM1OTgKK2IgRmcoaW50KTM5IGIgRmYocmwpcCA0MzIgNTAxMSBWIDUxIHcoXDAxNGxlbmFtZSlwIDkwMAorNTAxMSBWIDQ4IHcoY29tcGxldGlvbilwIDE0OTggNTAxMSBWIDUwIHcoZGVzaXJlZCkzOTAKKzUxMjEgeSBGdChOb24temVybykzMyBiKG1lYW5zKWYodGhhdClnKHRoZSlnKHJlc3VsdHMpZihvZiloKHRoZSlnKG1hdGMpCittKGhlcyloKGFyZSlmKHRvKWgoYilzKGUpZSh0cmVhdGVkKWkoYXMpZihcMDE0bGVuYW1lcy4pNDUKK2IoVGhpcykzOTAgNTIzMCB5KGlzKTQwIGIgRm4oYWx3YXlzKTQ5IGIgRnQoemVybyk0MSBiKHdoZW4pZQorKGNvbXBsZXRpb24paShpcylmKGF0dGVtcHRlZCwpaihhbmQpZChjYW4pZyhvbmx5KWcoYilzKGUpZihjKW0oaGFuZ2VkKWkKKyh3aXRoaW4pZShhbikzOTAgNTM0MCB5KGFwcGxpY2F0aW9uLXNwKXMoZWNpXDAxNGMpaShjb21wbGV0aW9uKWcKKyhmdW5jdGlvbi4pNjcgYihJZikzOSBiKGl0KWgoaXMpZihzZXQpaCh0byloKGEpZShub24temVybyloKHYpLTUKK2IoYWx1ZSk0MCBiKGIpbSh5KWYoc3VjKW0oaCloKGEpcCBlb3AgZW5kCislJVBhZ2U6IDQ3IDUxCitUZVhEaWN0IGJlZ2luIDQ3IDUwIGJvcCAxNTAgLTExNiBhIEZ0KENoYXB0ZXIpMzAgYigyOik0MQorYihQcm9ncmFtbWluZykzMCBiKHdpdGgpZyhHTlUpaChSZWFkbGluZSkxNjgzIGIoNDcpMzkwCisyOTkgeShmdW5jdGlvbiwpMjQgYihkaXJlY3RvcnkpZihuYW1lcylmKGhhKW0odiltKGUpaChhKWcoc2xhc2gpZihhcHApcworKGVuZGVkKWUoYW5kKWkoUmVhZGxpbmUpaChhdHRlbXB0cylnKHRvKWcocXVvdGUpZyhjb20tKTM5MAorNDA4IHkocGxldGVkKTM1IGIoXDAxNGxlbmFtZXMpZyhpZilnKHRoZXkpaChjb24pbSh0YWluKWcoYW4pbSh5KWYoYyltCisoaGFyYWN0ZXJzKWkoaW4pZSBGcyhybF9maWxlbmFtZV9xdW90ZV9jaGFyYSlvKGN0ZXIpbyhzKTM5MAorNTE4IHkgRnQoYW5kKTMwIGIgRnMocmxfZmlsZW5hbWVfcXVvdGluZ19kZXMpbyhpcmVkKTI0CitiIEZ0KGlzKTMwIGIoc2V0KWgodG8pZyhhKWcobm9uLXplcm8pZyh2KS01IGIoYWx1ZS4pMzM3MQorNzAyIHkoW1YpZChhcmlhYmxlXSktMzU5OCBiIEZnKGludCkzOSBiIEZmKHJsKXAgNDMyIDcwMgorMzUgNSB2IDUxIHcoXDAxNGxlbmFtZSlwIDkwMCA3MDIgViA0OCB3KHF1b3RpbmcpcCAxMzI3Cis3MDIgViA1MCB3KGRlc2lyZWQpMzkwIDgxMiB5IEZ0KE5vbi16ZXJvKTI5IGIobWVhbnMpZih0aGF0KWgodGhlKWYKKyhyZXN1bHRzKWcob2YpZyh0aGUpZyhtYXRjKW0oaGVzKWkoYXJlKWUodG8paChiKXMoZSllKHF1b3RlZCloKHVzaW5nKWcKKyhkb3VibGUpZihxdW90ZXMpMzkwIDkyMiB5KFwob3IpNDMgYihhbilmKGFwcGxpY2F0aW9uLXNwKXMoZWNpXDAxNGMpaQorKHF1b3RpbmcpZihtZWMpbShoYW5pc21cKSlnKGlmKWYodGhlKWgoY29tcGxldGVkKWcoXDAxNGxlbmFtZSlnKGNvbiltCisodGFpbnMpMzkwIDEwMzEgeShhbiltKHkpMjggYihjKW0oaGFyYWN0ZXJzKWgoaW4pZSBGcworKHJsX2ZpbGVuYW1lX3F1b3RlX2NoYXJzKXAgRnQoLikzNCBiKFRoaXMpMjcgYihpcylnIEZuKGFsd2F5cykzNworYiBGdChub24temVybykyOCBiKHdoZW4pZihjb21wbGUtKTM5MCAxMTQxIHkodGlvbiloKGlzKWcoYXR0ZW1wdGVkLCloCisoYW5kKWUoY2FuKWgob25seSlnKGIpcyhlKWYoYyltKGhhbmdlZCloKHdpdGhpbilmKGFuKWgoYXBwbGljYXRpb24tc3ApcworKGVjaVwwMTRjKWgoY29tcGxldGlvbikzOTAgMTI1MCB5KGZ1bmN0aW9uLikzNyBiKFRoZSkyMQorYihxdW90aW5nKWcoaXMpZyhlXDAxM2VjdGVkKWkodmlhKWUoYSloKGNhbGwpZyh0bylnKHRoZSlmKGZ1bmN0aW9uKWcocCkKK3Mob2luKW0odGVkKWcodG8pZyhiKW0oeSlnIEZzKHJsX2ZpbGVuYW1lXykzOTAgMTM2MCB5KHF1b3RpbmdfZnVuY3Rpb24pCitwIEZ0KC4pMzM3MSAxNTQ0IHkoW1YpLTggYihhcmlhYmxlXSktMzU5OCBiIEZnKGludCkzOQorYiBGZihybClwIDQzMiAxNTQ0IFYgNTEgdyhhdHRlbXB0ZWQpcCAxMDAzIDE1NDQgViA0Nwordyhjb21wbGV0aW9uKXAgMTYwMCAxNTQ0IFYgNDkgdyhvKW0odiltKGVyKTM5MCAxNjU0IHkKK0Z0KElmKTkzIGIoYW4paChhcHBsaWNhdGlvbi1zcClzKGVjaVwwMTRjKWkoY29tcGxldGlvbilmKGZ1bmN0aW9uKWYKKyhhc3NpZ25lZClnKHRvKWggRnMocmxfYXR0ZW1wdGVkXykzOTAgMTc2MyB5KGNvbXBsZXRpb25fZnVuY3Rpb24pNDgKK2IgRnQoc2V0cyk1MyBiKHRoaXMpZyh2KS01IGIoYXJpYWJsZSk1NCBiKHRvKWcoYSlmKG5vbi16ZXJvKWgodiktNQorYihhbHVlLCk2MCBiKFJlYWRsaW5lKTUzIGIod2lsbCloKG5vdCkzOTAgMTg3MyB5KHApcyhlcmZvcm0pMjgKK2IoaXRzKWkoZGVmYXVsdClnKFwwMTRsZW5hbWUpZyhjb21wbGV0aW9uKWgoZXYpbShlbilmKGlmKWcodGhlKWYKKyhhcHBsaWNhdGlvbidzKWkoY29tcGxldGlvbilnKGZ1bmN0aW9uKTM5MCAxOTgzIHkocmV0dXJucyllKG5vKWgobWF0YyltCisoaGVzLik0MiBiKEl0KTMxIGIoc2hvdWxkKWUoYilzKGUpaChzZXQpaChvbmx5KWYoYiltKHkpaChhbilmCisoYXBwbGljYXRpb24ncylpKGNvbXBsZXRpb24pZihmdW5jdGlvbi4pMzM3MSAyMTY3IHkoW1YpLTgKK2IoYXJpYWJsZV0pLTM1OTggYiBGZyhpbnQpMzkgYiBGZihybClwIDQzMiAyMTY3IFYgNTEKK3coY29tcGxldGlvbilwIDEwMzMgMjE2NyBWIDQ5IHcodCltKHlwKXMoZSkzOTAgMjI3NiB5CitGdChTZXQpYyh0byloKGEpZihjKW0oaGFyYWN0ZXIpaShkZXNjcmliaW5nKWUodGhlKWcodCltKHlwKXMoZSlnKG9mKWcKKyhjb21wbGV0aW9uKWkoUmVhZGxpbmUpZShpcylnKGN1cnJlbiltKHRseSloKGF0dGVtcHQtKTM5MAorMjM4NiB5KGluZzspZihzZWUpZih0aGUpZyhkZXNjcmlwdGlvbilmKG9mKWcgRnMKKyhybF9jb21wbGV0ZV9pbnRlcm5hbFwoXCkpMjggYiBGdChcKHNlZSkzNCBiKFNlY3Rpb24pZygyLjYuMiloCisoW0NvbXBsZXRpb24pMzkwIDI0OTYgeShGKS04IGIodW5jdGlvbnNdLCkzOSBiKHBhZ2UpZig0MlwpKWYoZm9yKWcodGhlKQorZyhsaXN0KWcob2YpZyhjKW0oaGFyYWN0ZXJzLik2MSBiKFRoaXMpMzYgYihpcylnKHNldClpKHRvKWYodGhlKWcKKyhhcHByb3ByaWF0ZSlmKHYpLTUgYihhbHVlKTM5MCAyNjA1IHkoYilzKGVmb3JlKTMxIGIoYW4pbSh5KWgKKyhhcHBsaWNhdGlvbi1zcClzKGVjaVwwMTRjKWgoY29tcGxldGlvbilnKGZ1bmN0aW9uKWYoaXMpZihjYWxsZWQsKWoKKyhhbGxvKW0od2luZylmKHN1YyltKGgpZShmdW5jdGlvbnMpMzkwIDI3MTUgeSh0bylnKHByZXNlbiltKHQpZyh0aGUpZgorKHNhbWUpaChpbiltKHRlcmZhY2UpaChhcyllIEZzKHJsX2NvbXBsZXRlXChcKSlwIEZ0KC4pMzM3MQorMjg5OSB5KFtWKS04IGIoYXJpYWJsZV0pLTM1OTggYiBGZyhpbnQpMzkgYiBGZihybClwIDQzMgorMjg5OSBWIDUxIHcoaW5oaWJpdClwIDgxNiAyODk5IFYgNDggdyhjb21wbGV0aW9uKTM5MAorMzAwOSB5IEZ0KElmKTI4IGIodGhpcylnKHYpLTUgYihhcmlhYmxlKTI5IGIoaXMpZihub24temVybywpaQorKGNvbXBsZXRpb24pZihpcylmKGluaGliaXRlZC4pNDAgYihUaGUpMjggYihjb21wbGV0aW9uKWgoYyltKGhhcmFjdGVyKWgKKyh3aWxsKWYoYilzKGUpMzkwIDMxMTggeShpbnNlcnRlZCloKGFzKWgoYW4pbSh5KWcob3RoZXIpZihiKXMob3VuZCllCisodG8payBGcyhzZWxmLWluc2VydClwIEZ0KC4pMTUwIDMzNDIgeSBGaCgyLjYuNCk2MyBiKEEpNDAKK2IoU2hvcnQpaShDb21wbGV0aW9uKWcoRXhhbXBsZSkyNzUgMzU4NyB5IEZ0KEhlcmUpMjAKK2IoaXMpaChhKWcoc21hbGwpZihhcHBsaWNhdGlvbilpKGRlbW9uc3RyYXRpbmcpZih0aGUpZih1c2UpZyhvZiloKHRoZSlnCisoR05VKWYoUmVhZGxpbmUpaChsaWJyYXJ5KS04IGIoLikzOCBiKEl0KTIwIGIoaXMpaChjYWxsZWQpMTUwCiszNjk2IHkgRnMoZmlsZW1hbilwIEZ0KCwpMzUgYihhbmQpZyh0aGUpaChzb3VyY2UpZihjbylzKGRlKWgocmVzaWRlcylmCisoaW4paChgKXAgRnMoZXhhbXBsZXMvZmlsZW1hbi5jKXAgRnQoJy4pNTEgYihUaGlzKTM1CitiKHNhbXBsZSloKGFwcGxpY2F0aW9uKTE1MCAzODA2IHkocHJvKW0odmlkZXMpMjYgYihjb21wbGV0aW9uKWkob2YpZQorKGNvbW1hbmQpZyhuYW1lcywpaChsaW5lKWYoZWRpdGluZyloKGZlYXR1cmVzLCloKGFuZClkKGFjY2VzcylqKHRvKWYKKyh0aGUpZihoaXN0b3J5KWcobGlzdC4pcCBlb3AgZW5kCislJVBhZ2U6IDQ4IDUyCitUZVhEaWN0IGJlZ2luIDQ4IDUxIGJvcCAxNTAgLTExNiBhIEZ0KDQ4KTI2MDAgYihHTlUpMzEKK2IoUmVhZGxpbmUpZyhMaWJyYXJ5KTM5MCAyOTkgeSBGZCgvKik0MCBiKGZpbGVtYW4uYyloKC0tKWYoQSlmKHRpbnkpaAorKGFwcGxpY2F0aW9uKWkod2hpY2gpZShkZW1vbnN0cmF0ZXMpaShob3cpZSh0bylnKHVzZSlnKHRoZSk1MDgKKzM4NiB5KEdOVSlnKFJlYWRsaW5lKWgobGlicmFyeS4pODAgYihUaGlzKTQwIGIoYXBwbGljYXRpb24paQorKGludGVyYWN0aXZlbHkpZyhhbGxvd3MpZih1c2Vycyk1MDggNDczIHkodG8pZShtYW5pcHVsYXRlKWooZmlsZXMpZQorKGFuZClnKHRoZWlyKWgobW9kZXMuKWYoKi8pMzkwIDY0OCB5KCNpbmNsdWRlKWgoPHN0ZGlvLmg+KTM5MAorNzM1IHkoI2luY2x1ZGUpZyg8c3lzL3R5cGVzLmg+KTM5MCA4MjIgeSgjaW5jbHVkZSlnKDxzeXMvZmlsZS5oPikzOTAKKzkwOSB5KCNpbmNsdWRlKWcoPHN5cy9zdGF0Lmg+KTM5MCA5OTYgeSgjaW5jbHVkZSlnKDxzeXMvZXJybm8uaD4pMzkwCisxMTcxIHkoI2luY2x1ZGUpZyg8cmVhZGxpbmUvcmVhZGxpbmUuaD4pMzkwIDEyNTggeSgjaW5jbHVkZSlnCisoPHJlYWRsaW5lL2hpc3RvcnkuaD4pMzkwIDE0MzIgeShleHRlcm4pZyhjaGFyKWYoKnhtYWxsb2MpaChcKFwpOykzOTAKKzE2MDYgeSgvKilmKFRoZSlnKG5hbWVzKWcob2YpZyhmdW5jdGlvbnMpaCh0aGF0KWYoYWN0dWFsbHkpaChkbylmKHRoZSlnCisobWFuaXB1bGF0aW9uLilpKCovKTM5MCAxNjk0IHkoaW50KWUoY29tX2xpc3QpaChfX1BcKFwoY2hhcilnKCpcKVwpOykKKzM5MCAxNzgxIHkoaW50KWYoY29tX3ZpZXcpaChfX1BcKFwoY2hhcilnKCpcKVwpOykzOTAKKzE4NjggeShpbnQpZihjb21fcmVuYW1lKWgoX19QXChcKGNoYXIpaCgqXClcKTspMzkwIDE5NTUKK3koaW50KWUoY29tX3N0YXQpaChfX1BcKFwoY2hhcilnKCpcKVwpOykzOTAgMjA0MiB5KGludClmKGNvbV9wd2QpaAorKF9fUFwoXChjaGFyKWcoKlwpXCk7KTM5MCAyMTMwIHkoaW50KWYoY29tX2RlbGV0ZSloKF9fUFwoXChjaGFyKWgKKygqXClcKTspMzkwIDIyMTcgeShpbnQpZShjb21faGVscCloKF9fUFwoXChjaGFyKWcoKlwpXCk7KTM5MAorMjMwNCB5KGludClmKGNvbV9jZClnKF9fUFwoXChjaGFyKWkoKlwpXCk7KTM5MCAyMzkxIHkoaW50KWUoY29tX3F1aXQpaAorKF9fUFwoXChjaGFyKWcoKlwpXCk7KTM5MCAyNTY1IHkoLyopZihBKWYoc3RydWN0dXJlKWkod2hpY2gpZyhjb250YWlucykKK2coaW5mb3JtYXRpb24paChvbilkKHRoZSloKGNvbW1hbmRzKWgodGhpcylmKHByb2dyYW0pNTA4CisyNjUzIHkoY2FuKWcodW5kZXJzdGFuZC4paCgqLykzOTAgMjgyNyB5KHR5cGVkZWYpZyhzdHJ1Y3QpZih7KTQ2OAorMjkxNCB5KGNoYXIpaCgqbmFtZTspZigvKilnKFVzZXIpZyhwcmludGFibGUpaChuYW1lKWYob2YpZyh0aGUpZworKGZ1bmN0aW9uLiloKCovKTQ2OCAzMDAxIHkocmxfaWNwZnVuY190KWgoKmZ1bmM7KWYoLyopZihGdW5jdGlvbiloKHRvKWUKKyhjYWxsKWkodG8pZShkbyloKHRoZSlnKGpvYi4pZygqLyk0NjggMzA4OCB5KGNoYXIpaCgqZG9jOylmKC8qKWcKKyhEb2N1bWVudGF0aW9uKWkoZm9yKWUodGhpcylnKGZ1bmN0aW9uLik4MCBiKCovKTM5MCAzMTc2Cit5KH0pMzkgYihDT01NQU5EOykzOTAgMzM1MCB5KENPTU1BTkQpaShjb21tYW5kc1tdKWcoPSlmKHspNDY4CiszNDM3IHkoeylnKCJjZCIsKWcoY29tX2NkLCloKCJDaGFuZ2UpZyh0bylmKGRpcmVjdG9yeSloKERJUiIpZih9LCk0NjgKKzM1MjQgeSh7KWcoImRlbGV0ZSIsKWgoY29tX2RlbGV0ZSwpaCgiRGVsZXRlKWYoRklMRSIpZih9LCk0NjgKKzM2MTEgeSh7KWcoImhlbHAiLCloKGNvbV9oZWxwLClnKCJEaXNwbGF5KWcodGhpcylmKHRleHQiKWgofSwpNDY4CiszNjk5IHkoeylmKCI/IiwpZyhjb21faGVscCwpaCgiU3lub255bSlnKGZvcilmKGBoZWxwJyIpaCh9LCk0NjgKKzM3ODYgeSh7KWYoImxpc3QiLCloKGNvbV9saXN0LClnKCJMaXN0KWYoZmlsZXMpaChpbillKERJUiIpaSh9LCk0NjgKKzM4NzMgeSh7KWYoImxzIiwpZyhjb21fbGlzdCwpaSgiU3lub255bSlmKGZvcilmKGBsaXN0JyIpZyh9LCk0NjgKKzM5NjAgeSh7KWcoInB3ZCIsKWcoY29tX3B3ZCwpaSgiUHJpbnQpZSh0aGUpZyhjdXJyZW50KWgod29ya2luZylnCisoZGlyZWN0b3J5IilnKH0sKTQ2OCA0MDQ3IHkoeylmKCJxdWl0IiwpaChjb21fcXVpdCwpZygiUXVpdClmKHVzaW5nKWgKKyhGaWxlbWFuIilnKH0sKTQ2OCA0MTM0IHkoeylmKCJyZW5hbWUiLCloKGNvbV9yZW5hbWUsKWgoIlJlbmFtZSlmKEZJTEUpCitmKHRvKWcoTkVXTkFNRSIpaCh9LCk0NjggNDIyMiB5KHspZigic3RhdCIsKWgoY29tX3N0YXQsKWcoIlByaW50KWcob3V0KQorZihzdGF0aXN0aWNzKWgob24pZihGSUxFIilnKH0sKTQ2OCA0MzA5IHkoeylnKCJ2aWV3IiwpaChjb21fdmlldywpZworKCJWaWV3KWYodGhlKWcoY29udGVudHMpaChvZilmKEZJTEUiKWcofSwpNDY4IDQzOTYgeSh7KWcoXChjaGFyKWcKKygqXClOVUxMLCloKFwocmxfaWNwZnVuY190KWgoKlwpTlVMTCwpZihcKGNoYXIpZigqXClOVUxMKWgofSkzOTAKKzQ0ODMgeSh9OykzOTAgNDY1OCB5KC8qKWYoRm9yd2FyZClnKGRlY2xhcmF0aW9ucy4paigqLykzOTAKKzQ3NDUgeShjaGFyKWQoKnN0cmlwd2hpdGUpaShcKFwpOykzOTAgNDgzMiB5KENPTU1BTkQpZigqZmluZF9jb21tYW5kKWgKKyhcKFwpOykzOTAgNTAwNiB5KC8qKWUoVGhlKWcobmFtZSlnKG9mKWYodGhpcylpKHByb2dyYW0sKWcoYXMpZSh0YWtlbilpCisoZnJvbSlmKGFyZ3ZbMF0uKWgoKi8pMzkwIDUwOTMgeShjaGFyKWYoKnByb2duYW1lOykzOTAKKzUyNjggeSgvKilnKFdoZW4pZyhub24temVybywpaCh0aGlzKWYobWVhbnMpaCh0aGUpZih1c2VyKWcoaXMpZihkb25lKWgKKyh1c2luZyloKHRoaXMpZihwcm9ncmFtLiloKCovKXAgZW9wIGVuZAorJSVQYWdlOiA0OSA1MworVGVYRGljdCBiZWdpbiA0OSA1MiBib3AgMTUwIC0xMTYgYSBGdChDaGFwdGVyKTMwIGIoMjopNDEKK2IoUHJvZ3JhbW1pbmcpMzAgYih3aXRoKWcoR05VKWgoUmVhZGxpbmUpMTY4MyBiKDQ5KTM5MAorMjk5IHkgRmQoaW50KTQwIGIoZG9uZTspMzkwIDQ3MyB5KGNoYXIpZygqKTM5MCA1NjAgeShkdXBzdHIpaChcKHNcKSk1ODYKKzY0OCB5KGludClmKHM7KTM5MCA3MzUgeSh7KTQ2OCA4MjIgeShjaGFyKWgoKnI7KTQ2OCA5OTYKK3kocilmKD0pZih4bWFsbG9jKWkoXChzdHJsZW4pZyhcKHNcKSlmKCspZigxXCk7KTQ2OCAxMDgzCit5KHN0cmNweSlpKFwociwpZihzXCk7KTQ2OCAxMTcxIHkocmV0dXJuKWgoXChyXCk7KTM5MAorMTI1OCB5KH0pMzkwIDE0MzIgeShtYWluKWYoXChhcmdjLCloKGFyZ3ZcKSk1ODYgMTUxOQoreShpbnQpZihhcmdjOyk1ODYgMTYwNiB5KGNoYXIpZygqKmFyZ3Y7KTM5MCAxNjk0IHkoeyk0NjgKKzE3ODEgeShjaGFyKWgoKmxpbmUsKWYoKnM7KTQ2OCAxOTU1IHkocHJvZ25hbWUpaCg9KWYoYXJndlswXTspNDY4CisyMTMwIHkoaW5pdGlhbGl6ZV9yZWFkbGluZSlrKFwoXCk7KWMoLyopZyhCaW5kKWcob3VyKWcoY29tcGxldGVyLiloKCovKQorNDY4IDIzMDQgeSgvKilmKExvb3ApZyhyZWFkaW5nKWgoYW5kKWYoZXhlY3V0aW5nKWgobGluZXMpZyh1bnRpbClmKHRoZSkKK2codXNlcilnKHF1aXRzLiloKCovKTQ2OCAyMzkxIHkoZm9yKWYoXCgpZyg7KWYoZG9uZSloKD09KWcoMDspZyhcKSk1NDcKKzI0NzggeSh7KTYyNSAyNTY1IHkobGluZSlnKD0pZyhyZWFkbGluZSloKFwoIkZpbGVNYW46KWgoIlwpOyk2MjUKKzI3NDAgeShpZillKFwoIWxpbmVcKSk3MDQgMjgyNyB5KGJyZWFrOyk2MjUgMzAwMSB5KC8qKWcoUmVtb3ZlKWgKKyhsZWFkaW5nKWYoYW5kKWcodHJhaWxpbmcpaCh3aGl0ZXNwYWNlKWgoZnJvbSllKHRoZSlnKGxpbmUuKTc0MworMzA4OCB5KFRoZW4sKWcoaWYpZyh0aGVyZSlnKGlzKWcoYW55dGhpbmcpaChsZWZ0LClnKGFkZCllKGl0KWgodG8pZworKHRoZSlnKGhpc3RvcnkpaChsaXN0KTc0MyAzMTc2IHkoYW5kKWYoZXhlY3V0ZSloKGl0LilmKCovKTYyNQorMzI2MyB5KHMpZyg9KWYoc3RyaXB3aGl0ZSlqKFwobGluZVwpOyk2MjUgMzQzNyB5KGlmKWUoXCgqc1wpKTcwNAorMzUyNCB5KHspNzgyIDM2MTEgeShhZGRfaGlzdG9yeSlpKFwoc1wpOyk3ODIgMzY5OSB5KGV4ZWN1dGVfbGluZSlnCisoXChzXCk7KTcwNCAzNzg2IHkofSk2MjUgMzk2MCB5KGZyZWUpZShcKGxpbmVcKTspNTQ3Cis0MDQ3IHkofSk0NjggNDEzNCB5KGV4aXQpaChcKDBcKTspMzkwIDQyMjIgeSh9KTM5MCA0Mzk2Cit5KC8qKWYoRXhlY3V0ZSlnKGEpZyhjb21tYW5kKWgobGluZS4pZigqLykzOTAgNDQ4MyB5KGludCkzOTAKKzQ1NzAgeShleGVjdXRlX2xpbmUpaShcKGxpbmVcKSk1ODYgNDY1OCB5KGNoYXIpZSgqbGluZTspMzkwCis0NzQ1IHkoeyk0NjggNDgzMiB5KHJlZ2lzdGVyKWgoaW50KWYoaTspNDY4IDQ5MTkgeShDT01NQU5EKWgoKmNvbW1hbmQ7KQorNDY4IDUwMDYgeShjaGFyKWcoKndvcmQ7KTQ2OCA1MTgxIHkoLyopZihJc29sYXRlKWgodGhlKWYoY29tbWFuZCloCisod29yZC4pZigqLyk0NjggNTI2OCB5KGkpZyg9KWYoMDspcCBlb3AgZW5kCislJVBhZ2U6IDUwIDU0CitUZVhEaWN0IGJlZ2luIDUwIDUzIGJvcCAxNTAgLTExNiBhIEZ0KDUwKTI2MDAgYihHTlUpMzEKK2IoUmVhZGxpbmUpZyhMaWJyYXJ5KTQ2OCAyOTkgeSBGZCh3aGlsZSk0MSBiKFwobGluZVtpXSlnKCYmKWYKKyh3aGl0ZXNwYWNlKWgoXChsaW5lW2ldXClcKSk1NDcgMzg2IHkoaSsrOyk0NjggNDczIHkod29yZClnKD0pZShsaW5lKWgKKygrKWcoaTspNDY4IDY0OCB5KHdoaWxlKWgoXChsaW5lW2ldKWcoJiYpZighd2hpdGVzcGFjZSloKFwobGluZVtpXVwpXCkpCis1NDcgNzM1IHkoaSsrOyk0NjggOTA5IHkoaWYpZihcKGxpbmVbaV1cKSk1NDcgOTk2IHkobGluZVtpKytdKWgoPSlmCisoJ1xcMCc7KTQ2OCAxMTcxIHkoY29tbWFuZCloKD0pZihmaW5kX2NvbW1hbmQpaShcKHdvcmRcKTspNDY4CisxMzQ1IHkoaWYpZShcKCFjb21tYW5kXCkpNTQ3IDE0MzIgeSh7KTYyNSAxNTE5IHkoZnByaW50ZiloKFwoc3RkZXJyLClnCisoIlwwNDVzOilmKE5vKWcoc3VjaClnKGNvbW1hbmQpaChmb3IpZihGaWxlTWFuLlxcbiIsKWkod29yZFwpOyk2MjUKKzE2MDYgeShyZXR1cm4pZihcKC0xXCk7KTU0NyAxNjk0IHkofSk0NjggMTg2OCB5KC8qKWYoR2V0KWcoYXJndW1lbnQpaAorKHRvKWYoY29tbWFuZCwpaChpZilmKGFueS4pZygqLyk0NjggMTk1NSB5KHdoaWxlKWgoXCh3aGl0ZXNwYWNlKWgKKyhcKGxpbmVbaV1cKVwpKTU0NyAyMDQyIHkoaSsrOyk0NjggMjIxNyB5KHdvcmQpZig9KWUobGluZSloKCspZyhpOyk0NjgKKzIzOTEgeSgvKilnKENhbGwpZyh0aGUpZyhmdW5jdGlvbi4paCgqLyk0NjggMjQ3OCB5KHJldHVybilnCisoXChcKCpcKGNvbW1hbmQtPmZ1bmNcKVwpKWooXCh3b3JkXClcKTspMzkwIDI1NjUgeSh9KTM5MAorMjc0MCB5KC8qKWMoTG9vaylnKHVwKWYoTkFNRSlpKGFzKWUodGhlKWgobmFtZSlnKG9mKWcoYSlnKGNvbW1hbmQsKWgKKyhhbmQpZShyZXR1cm4paShhKWYocG9pbnRlcilnKHRvKWcodGhhdCk1MDggMjgyNyB5KGNvbW1hbmQuKTgwCitiKFJldHVybik0MSBiKGEpZShOVUxMKWgocG9pbnRlciloKGlmKWYoTkFNRSlnKGlzbid0KWcoYSlnKGNvbW1hbmQpZworKG5hbWUuKWgoKi8pMzkwIDI5MTQgeShDT01NQU5EKWcoKikzOTAgMzAwMSB5KGZpbmRfY29tbWFuZCloKFwobmFtZVwpKQorNTg2IDMwODggeShjaGFyKWUoKm5hbWU7KTM5MCAzMTc2IHkoeyk0NjggMzI2MyB5KHJlZ2lzdGVyKWgoaW50KWYoaTspCis0NjggMzQzNyB5KGZvcilnKFwoaSlnKD0pZigwOyloKGNvbW1hbmRzW2ldLm5hbWU7KWooaSsrXCkpNTQ3CiszNTI0IHkoaWYpZChcKHN0cmNtcClnKFwobmFtZSwpaChjb21tYW5kc1tpXS5uYW1lXCkpaSg9PSlkKDBcKSk2MjUKKzM2MTEgeShyZXR1cm4paChcKCZjb21tYW5kc1tpXVwpOyk0NjggMzc4NiB5KHJldHVybilnKFwoXChDT01NQU5EKWcKKygqXClOVUxMXCk7KTM5MCAzODczIHkofSkzOTAgNDA0NyB5KC8qKWYoU3RyaXApZyh3aGl0ZXNwYWNlKWkoZnJvbSllCisodGhlKWcoc3RhcnQpZyhhbmQpZyhlbmQpZyhvZilmKFNUUklORy4pODEgYihSZXR1cm4pNDAKK2IoYSlnKHBvaW50ZXIpNTA4IDQxMzQgeShpbnRvKWcoU1RSSU5HLiloKCovKTM5MCA0MjIyCit5KGNoYXIpZigqKTM5MCA0MzA5IHkoc3RyaXB3aGl0ZSloKFwoc3RyaW5nXCkpNTg2IDQzOTYKK3koY2hhcilmKCpzdHJpbmc7KTM5MCA0NDgzIHkoeyk0NjggNDU3MCB5KHJlZ2lzdGVyKWgoY2hhcilnKCpzLClmKCp0OykKKzQ2OCA0NzQ1IHkoZm9yKWcoXChzKWcoPSlmKHN0cmluZzspaSh3aGl0ZXNwYWNlKWgoXCgqc1wpOyllKHMrK1wpKTU0NworNDgzMiB5KDspNDY4IDUwMDYgeShpZilnKFwoKnMpZyg9PSlnKDBcKSk1NDcgNTA5MyB5KHJldHVybilnKFwoc1wpOyk0NjgKKzUyNjggeSh0KWcoPSlmKHMpaCgrKWYoc3RybGVuKWkoXChzXCkpZigtKWYoMTspcCBlb3AKK2VuZAorJSVQYWdlOiA1MSA1NQorVGVYRGljdCBiZWdpbiA1MSA1NCBib3AgMTUwIC0xMTYgYSBGdChDaGFwdGVyKTMwIGIoMjopNDEKK2IoUHJvZ3JhbW1pbmcpMzAgYih3aXRoKWcoR05VKWgoUmVhZGxpbmUpMTY4MyBiKDUxKTQ2OAorMjk5IHkgRmQod2hpbGUpNDEgYihcKHQpZSg+KWgocylmKCYmKWgod2hpdGVzcGFjZSlpKFwoKnRcKVwpKTU0NworMzg2IHkodC0tOyk0NjggNDczIHkoKisrdClmKD0pZSgnXFwwJzspNDY4IDY0OCB5KHJldHVybilpKHM7KTM5MAorNzM1IHkofSkzOTAgOTA5IHkoLyopZigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopcSgqKioqKilxKCoqKiopcQorKCoqKioqKXEoKioqKilxKCoqKiopcSgqKioqKilxKCoqKiopcSgqKiopNDUgYigqLykzOTAKKzk5NiB5KC8qKTI1ODkgYigqLykzOTAgMTA4MyB5KC8qKTcwNyBiKEludGVyZmFjZSk0MSBiKHRvKWYoUmVhZGxpbmUpaAorKENvbXBsZXRpb24pNjI5IGIoKi8pMzkwIDExNzEgeSgvKikyNTg5IGIoKi8pMzkwIDEyNTgKK3koLyopNDAgYigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopcSgqKioqKilxKCoqKiopcSgqKioqKilxKCoqKiopCitxKCoqKiopcSgqKioqKilxKCoqKiopcSgqKiopNDUgYigqLykzOTAgMTQzMiB5KGNoYXIpNDAKK2IoKmNvbW1hbmRfZ2VuZXJhdG9yKWooX19QXChcKGNvbnN0KWYoY2hhcillKCosKWcoaW50XClcKTspMzkwCisxNTE5IHkoY2hhcilnKCoqZmlsZW1hbl9jb21wbGV0aW9uKWsoX19QXChcKGNvbnN0KWQoY2hhcilnKCosKWUoaW50LCloCisoaW50XClcKTspMzkwIDE2OTQgeSgvKilnKFRlbGwpZyh0aGUpZyhHTlUpZyhSZWFkbGluZSloKGxpYnJhcnkpZyhob3cpZQorKHRvKWgoY29tcGxldGUuKTgxIGIoV2UpMzkgYih3YW50KWgodG8pZyh0cnkpZyh0byk1MDgKKzE3ODEgeShjb21wbGV0ZSloKG9uKWUoY29tbWFuZClpKG5hbWVzKWcoaWYpZSh0aGlzKWgoaXMpZyh0aGUpZyhmaXJzdClnCisod29yZCloKGluKWUodGhlKWgobGluZSwpZyhvcik1MDggMTg2OCB5KG9uKWYoZmlsZW5hbWVzKWooaWYpZChub3QuKWgKKygqLykzOTAgMTk1NSB5KGluaXRpYWxpemVfcmVhZGxpbmUpayhcKFwpKTM5MCAyMDQyIHkoeyk0NjgKKzIxMzAgeSgvKiljKEFsbG93KWcoY29uZGl0aW9uYWwpaShwYXJzaW5nKWYob2YpZih0aGUpZyh+Ly5pbnB1dHJjKWgKKyhmaWxlLilnKCovKTQ2OCAyMjE3IHkocmxfcmVhZGxpbmVfbmFtZSlpKD0pZCgiRmlsZU1hbiI7KTQ2OAorMjM5MSB5KC8qKWcoVGVsbClnKHRoZSlnKGNvbXBsZXRlciloKHRoYXQpZyh3ZSllKHdhbnQpaChhKWcoY3JhY2spZworKGZpcnN0LiloKCovKTQ2OCAyNDc4IHkocmxfYXR0ZW1wdGVkX2NvbXBsZXRpb25fZnVuKXEoY3RpbylxKG4payg9KTM5CitiKGZpbGVtYW5fY29tcGxldGlvbjspMzkwIDI1NjUgeSh9KTM5MCAyNzQwIHkoLyopaChBdHRlbXB0KWcodG8pZworKGNvbXBsZXRlKWgob24pZih0aGUpZyhjb250ZW50cyloKG9mKWYoVEVYVC4pNzkgYihTVEFSVCk0MQorYihhbmQpZShFTkQpNTA4IDI4MjcgeShib3VuZCloKHRoZSlnKHJlZ2lvbiloKG9mKWUocmxfbGluZV9idWZmZXIpaworKHRoYXQpZChjb250YWlucyloKHRoZSlmKHdvcmQpZyh0byk1MDggMjkxNCB5KGNvbXBsZXRlLik4MAorYihURVhUKTQwIGIoaXMpZyh0aGUpZyh3b3JkKWcodG8pZyhjb21wbGV0ZS4pODAgYihXZSk0MAorYihjYW4pZyh1c2UpZyh0aGUpZyhlbnRpcmUpNTA4IDMwMDEgeShjb250ZW50cyloKG9mKWUocmxfbGluZV9idWZmZXIpaworKGluKWQoY2FzZSlnKHdlKWYod2FudCloKHRvKWcoZG8pZyhzb21lKWcoc2ltcGxlKTUwOAorMzA4OCB5KHBhcnNpbmcuKTgwIGIoUmV0dXJudGhlKTQxIGIoYXJyYXkpZyhvZillKG1hdGNoZXMsKWkob3IpZihOVUxMKWcKKyhpZilnKHRoZXJlKWcoYXJlbid0KWgoYW55LilmKCovKTM5MCAzMTc2IHkoY2hhcilnKCoqKTM5MAorMzI2MyB5KGZpbGVtYW5fY29tcGxldGlvbilqKFwodGV4dCwpZShzdGFydCwpZyhlbmRcKSk1ODYKKzMzNTAgeShjb25zdClmKGNoYXIpaCgqdGV4dDspNTg2IDM0MzcgeShpbnQpZihzdGFydCwpaChlbmQ7KTM5MAorMzUyNCB5KHspNDY4IDM2MTEgeShjaGFyKWcoKiptYXRjaGVzOyk0NjggMzc4NiB5KG1hdGNoZXMpZyg9KWYoXChjaGFyKWcKKygqKlwpTlVMTDspNDY4IDM5NjAgeSgvKilnKElmKWcodGhpcylnKHdvcmQpZyhpcylnKGF0KWYodGhlKWgoc3RhcnQpaAorKG9mKWUodGhlKWgobGluZSwpaCh0aGVuKWYoaXQpZyhpcylmKGEpaChjb21tYW5kKTU4NgorNDA0NyB5KHRvKWcoY29tcGxldGUuKTgwIGIoT3RoZXJ3aXNlKTQyIGIoaXQpZChpcyloKHRoZSlnKG5hbWUpZyhvZilnCisoYSlmKGZpbGUpaChpbilnKHRoZSlnKGN1cnJlbnQpNTg2IDQxMzQgeShkaXJlY3RvcnkuKWkoKi8pNDY4Cis0MjIyIHkoaWYpZShcKHN0YXJ0KWgoPT0pZSgwXCkpNTQ3IDQzMDkgeShtYXRjaGVzKWkoPSllCisocmxfY29tcGxldGlvbl9tYXRjaGVzKTQ0IGIoXCh0ZXh0LClkKGNvbW1hbmRfZ2VuZXJhdG9yXCk7KTQ2OAorNDQ4MyB5KHJldHVybilnKFwobWF0Y2hlc1wpOykzOTAgNDU3MCB5KH0pMzkwIDQ3NDUgeSgvKilmKEdlbmVyYXRvciloCisoZnVuY3Rpb24pZyhmb3IpZihjb21tYW5kKWgoY29tcGxldGlvbi4pODEgYihTVEFURSk0MAorYihsZXRzKWcodXMpNTA4IDQ4MzIgeShrbm93KWcod2hldGhlciloKHRvKWUoc3RhcnQpaShmcm9tKWYoc2NyYXRjaDspaAorKHdpdGhvdXQpZyhhbnkpZihzdGF0ZSk1MDggNDkxOSB5KFwoaS5lLilnKFNUQVRFKWcoPT0pZygwXCksKWcodGhlbilnCisod2UpZyhzdGFydClnKGF0KWcodGhlKWcodG9wKWcob2YpZih0aGUpaChsaXN0LiloKCovKTM5MAorNTAwNiB5KGNoYXIpZigqKTM5MCA1MDkzIHkoY29tbWFuZF9nZW5lcmF0b3IpaihcKHRleHQsKWUoc3RhdGVcKSk1ODYKKzUxODEgeShjb25zdClmKGNoYXIpaCgqdGV4dDspNTg2IDUyNjggeShpbnQpZihzdGF0ZTspcAorZW9wIGVuZAorJSVQYWdlOiA1MiA1NgorVGVYRGljdCBiZWdpbiA1MiA1NSBib3AgMTUwIC0xMTYgYSBGdCg1MikyNjAwIGIoR05VKTMxCitiKFJlYWRsaW5lKWcoTGlicmFyeSkzOTAgMjk5IHkgRmQoeyk0NjggMzg2IHkoc3RhdGljKTQxCitiKGludClmKGxpc3RfaW5kZXgsKWkobGVuOyk0NjggNDczIHkoY2hhcilmKCpuYW1lOyk0NjgKKzY0OCB5KC8qKWYoSWYpZyh0aGlzKWcoaXMpZyhhKWYobmV3KWgod29yZClnKHRvKWcoY29tcGxldGUsKWgKKyhpbml0aWFsaXplKWgobm93Lik3OSBiKFRoaXMpNTg2IDczNSB5KGluY2x1ZGVzKTQxIGIoc2F2aW5nKWcodGhlKWYKKyhsZW5ndGgpZyhvZilnKFRFWFQpZyhmb3IpZyhlZmZpY2llbmN5LClpKGFuZCk1ODYgODIyCit5KGluaXRpYWxpemluZylnKHRoZSllKGluZGV4KWcodmFyaWFibGUpaCh0bylmKDAuKWcoKi8pNDY4Cis5MDkgeShpZilnKFwoIXN0YXRlXCkpNTQ3IDk5NiB5KHspNjI1IDEwODMgeShsaXN0X2luZGV4KWkoPSlkKDA7KTYyNQorMTE3MSB5KGxlbiloKD0pZyhzdHJsZW4pZyhcKHRleHRcKTspNTQ3IDEyNTggeSh9KTQ2OAorMTQzMiB5KC8qKWcoUmV0dXJuKWgodGhlKWYobmV4dClnKG5hbWUpZyh3aGljaClnKHBhcnRpYWxseSlpKG1hdGNoZXMpZQorKGZyb20paCh0aGUpNTg2IDE1MTkgeShjb21tYW5kKWcobGlzdC4pZigqLyk0NjggMTYwNgoreSh3aGlsZSloKFwobmFtZSlmKD0pZyhjb21tYW5kc1tsaXN0X2luZGV4XS5uYW1lXCkpNTQ3CisxNjk0IHkoeyk2MjUgMTc4MSB5KGxpc3RfaW5kZXgrKzspNjI1IDE5NTUgeShpZilnKFwoc3RybmNtcCloKFwobmFtZSwpZworKHRleHQsKWYobGVuXCkpZyg9PSlnKDBcKSk3MDQgMjA0MiB5KHJldHVybilnKFwoZHVwc3RyXChuYW1lXClcKTspNTQ3CisyMTMwIHkofSk0NjggMjMwNCB5KC8qKWcoSWYpZyhubylmKG5hbWVzKWkobWF0Y2hlZCwpZyh0aGVuKWYocmV0dXJuKWgKKyhOVUxMLilmKCovKTQ2OCAyMzkxIHkocmV0dXJuKWgoXChcKGNoYXIpZygqXClOVUxMXCk7KTM5MAorMjQ3OCB5KH0pMzkwIDI2NTMgeSgvKilmKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilxKCoqKioqKXEoKioqKikKK3EoKioqKiopcSgqKioqKXEoKioqKilxKCoqKioqKXEoKioqKilxKCoqKik0NSBiKCovKTM5MAorMjc0MCB5KC8qKTI1ODkgYigqLykzOTAgMjgyNyB5KC8qKTkwMyBiKEZpbGVNYW4pNDEgYihDb21tYW5kcykxMDYwCitiKCovKTM5MCAyOTE0IHkoLyopMjU4OSBiKCovKTM5MCAzMDAxIHkoLyopNDAgYgorKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilxKCoqKioqKXEoKioqKilxKCoqKioqKXEoKioqKilxKCoqKiopcQorKCoqKioqKXEoKioqKilxKCoqKik0NSBiKCovKTM5MCAzMTc2IHkoLyopNDAgYihTdHJpbmcpZyh0bylnKHBhc3MpZyh0bykKK2coc3lzdGVtKWcoXChcKS4pODAgYihUaGlzKTQwIGIoaXMpZihmb3IpaCh0aGUpZyhMSVNULCloKFZJRVcpZihhbmQpZworKFJFTkFNRSk1MDggMzI2MyB5KGNvbW1hbmRzLiloKCovKTM5MCAzMzUwIHkoc3RhdGljKWcoY2hhcilmCisoc3lzY29tWzEwMjRdOykzOTAgMzUyNCB5KC8qKWcoTGlzdClnKHRoZSlnKGZpbGVcKHNcKSloKG5hbWVkKWYoaW4pZworKGFyZy4pZygqLykzOTAgMzYxMSB5KGNvbV9saXN0KWgoXChhcmdcKSk1ODYgMzY5OSB5KGNoYXIpZigqYXJnOykzOTAKKzM3ODYgeSh7KTQ2OCAzODczIHkoaWYpZyhcKCFhcmdcKSk1NDcgMzk2MCB5KGFyZylnKD0pZigiIjspNDY4Cis0MTM0IHkoc3ByaW50ZilpKFwoc3lzY29tLClnKCJscylmKC1GQ2xnKWgoXDA0NXMiLClmKGFyZ1wpOyk0NjgKKzQyMjIgeShyZXR1cm4paChcKHN5c3RlbSlnKFwoc3lzY29tXClcKTspMzkwIDQzMDkgeSh9KTM5MAorNDQ4MyB5KGNvbV92aWV3KWcoXChhcmdcKSk1ODYgNDU3MCB5KGNoYXIpZigqYXJnOykzOTAKKzQ2NTggeSh7KTQ2OCA0NzQ1IHkoaWYpZyhcKCF2YWxpZF9hcmd1bWVudClqKFwoInZpZXciLCllKGFyZ1wpXCkpNTQ3Cis0ODMyIHkocmV0dXJuKWYoMTspNDY4IDUwMDYgeShzcHJpbnRmKWgoXChzeXNjb20sKWcoIm1vcmUpZyhcMDQ1cyIsKWYKKyhhcmdcKTspNDY4IDUwOTMgeShyZXR1cm4paChcKHN5c3RlbSlnKFwoc3lzY29tXClcKTspMzkwCis1MTgxIHkofSlwIGVvcCBlbmQKKyUlUGFnZTogNTMgNTcKK1RlWERpY3QgYmVnaW4gNTMgNTYgYm9wIDE1MCAtMTE2IGEgRnQoQ2hhcHRlcikzMCBiKDI6KTQxCitiKFByb2dyYW1taW5nKTMwIGIod2l0aClnKEdOVSloKFJlYWRsaW5lKTE2ODMgYig1MykzOTAKKzI5OSB5IEZkKGNvbV9yZW5hbWUpNDEgYihcKGFyZ1wpKTU4NiAzODYgeShjaGFyKWYoKmFyZzspMzkwCis0NzMgeSh7KTQ2OCA1NjAgeSh0b29fZGFuZ2Vyb3VzKWooXCgicmVuYW1lIlwpOyk0NjggNjQ4Cit5KHJldHVybillKFwoMVwpOykzOTAgNzM1IHkofSkzOTAgOTA5IHkoY29tX3N0YXQpZyhcKGFyZ1wpKTU4NgorOTk2IHkoY2hhcilmKCphcmc7KTM5MCAxMDgzIHkoeyk0NjggMTE3MSB5KHN0cnVjdCloKHN0YXQpZihmaW5mbzspNDY4CisxMzQ1IHkoaWYpZyhcKCF2YWxpZF9hcmd1bWVudClqKFwoInN0YXQiLCllKGFyZ1wpXCkpNTQ3CisxNDMyIHkocmV0dXJuKWYoXCgxXCk7KTQ2OCAxNjA2IHkoaWYpZyhcKHN0YXQpZyhcKGFyZywpaCgmZmluZm9cKSlnKD09KQorZSgtMVwpKTU0NyAxNjk0IHkoeyk2MjUgMTc4MSB5KHBlcnJvcilpKFwoYXJnXCk7KTYyNQorMTg2OCB5KHJldHVybilnKFwoMVwpOyk1NDcgMTk1NSB5KH0pNDY4IDIxMzAgeShwcmludGYpZyhcKCJTdGF0aXN0aWNzKWgKKyhmb3IpZShgXDA0NXMnOlxcbiIsKWgoYXJnXCk7KTQ2OCAyMzA0IHkocHJpbnRmKWcoXCgiXDA0NXMpZihoYXMpZworKFwwNDVkKWcobGlua1wwNDVzLCloKGFuZClmKGlzKWYoXDA0NWQpaChieXRlXDA0NXMpZyhpbilnKGxlbmd0aC5cXG4iLCkKK2koYXJnLCk3ODIgMjM5MSB5KGZpbmZvLnN0X25saW5rLCk3ODIgMjQ3OCB5KFwoZmluZm8uc3RfbmxpbmspaCg9PSlkCisoMVwpKWYoPyloKCIiKWYoOiloKCJzIiwpNzgyIDI1NjUgeShmaW5mby5zdF9zaXplLCk3ODIKKzI2NTMgeShcKGZpbmZvLnN0X3NpemUpaig9PSljKDFcKSloKD8pZygiIilmKDopaCgicyJcKTspNDY4CisyNzQwIHkocHJpbnRmKWgoXCgiSW5vZGUpZyhMYXN0KWYoQ2hhbmdlKWgoYXQ6KWYoXDA0NXMiLClnKGN0aW1lKWcKKyhcKCZmaW5mby5zdF9jdGltZVwpXCk7KTQ2OCAyODI3IHkocHJpbnRmKWgoXCgiKTIzNiBiKExhc3QpNDAKK2IoYWNjZXNzKWgoYXQ6KWYoXDA0NXMiLClnKGN0aW1lKWcoXCgmZmluZm8uc3RfYXRpbWVcKVwpOyk0NjgKKzI5MTQgeShwcmludGYpaChcKCIpMTU3IGIoTGFzdCk0MSBiKG1vZGlmaWVkKWcoYXQ6KWYoXDA0NXMiLClnKGN0aW1lKWcKKyhcKCZmaW5mby5zdF9tdGltZVwpXCk7KTQ2OCAzMDAxIHkocmV0dXJuKWgoXCgwXCk7KTM5MAorMzA4OCB5KH0pMzkwIDMyNjMgeShjb21fZGVsZXRlKWcoXChhcmdcKSk1ODYgMzM1MCB5KGNoYXIpZigqYXJnOykzOTAKKzM0MzcgeSh7KTQ2OCAzNTI0IHkodG9vX2Rhbmdlcm91cylqKFwoImRlbGV0ZSJcKTspNDY4CiszNjExIHkocmV0dXJuKWUoXCgxXCk7KTM5MCAzNjk5IHkofSkzOTAgMzg3MyB5KC8qKWYoUHJpbnQpZyhvdXQpZyhoZWxwKQorZyhmb3IpZyhBUkcsKWcob3IpZyhmb3IpZyhhbGwpZyhvZilmKHRoZSloKGNvbW1hbmRzKWgoaWYpZihBUkcpZyhpcyk1MDgKKzM5NjAgeShub3QpZyhwcmVzZW50LiloKCovKTM5MCA0MDQ3IHkoY29tX2hlbHApZyhcKGFyZ1wpKTU4NgorNDEzNCB5KGNoYXIpZigqYXJnOykzOTAgNDIyMiB5KHspNDY4IDQzMDkgeShyZWdpc3RlciloKGludClmKGk7KTQ2OAorNDM5NiB5KGludClnKHByaW50ZWQpaCg9KWYoMDspNDY4IDQ1NzAgeShmb3IpZyhcKGkpZyg9KWYoMDspaAorKGNvbW1hbmRzW2ldLm5hbWU7KWooaSsrXCkpNTQ3IDQ2NTggeSh7KTYyNSA0NzQ1IHkoaWYpZChcKCEqYXJnKWgofHwpZQorKFwoc3RyY21wKWkoXChhcmcsKWcoY29tbWFuZHNbaV0ubmFtZVwpKWkoPT0pYygwXClcKSk3MDQKKzQ4MzIgeSh7KTc4MiA0OTE5IHkocHJpbnRmKWkoXCgiXDA0NXNcXHRcXHRcMDQ1cy5cXG4iLClpCisoY29tbWFuZHNbaV0ubmFtZSwpZyhjb21tYW5kc1tpXS5kb2NcKTspNzgyIDUwMDYgeShwcmludGVkKys7KTcwNAorNTA5MyB5KH0pNTQ3IDUxODEgeSh9KXAgZW9wIGVuZAorJSVQYWdlOiA1NCA1OAorVGVYRGljdCBiZWdpbiA1NCA1NyBib3AgMTUwIC0xMTYgYSBGdCg1NCkyNjAwIGIoR05VKTMxCitiKFJlYWRsaW5lKWcoTGlicmFyeSk0NjggMjk5IHkgRmQoaWYpNDAgYihcKCFwcmludGVkXCkpNTQ3CiszODYgeSh7KTYyNSA0NzMgeShwcmludGYpaChcKCJObylmKGNvbW1hbmRzKWgobWF0Y2gpZyhgXDA0NXMnLik3OQorYihQb3NzaWJpbHRpZXMpNDIgYihhcmU6XFxuIiwpZihhcmdcKTspNjI1IDY0OCB5KGZvcilmKFwoaSlnKD0pZigwOyloCisoY29tbWFuZHNbaV0ubmFtZTspaihpKytcKSk3MDQgNzM1IHkoeyk3ODIgODIyIHkoLyopZChQcmludClnKGluKWcoc2l4KQorZyhjb2x1bW5zLiloKCovKTc4MiA5MDkgeShpZilmKFwocHJpbnRlZCloKD09KWYoNlwpKTg2MQorOTk2IHkoeyk5MzkgMTA4MyB5KHByaW50ZWQpaCg9KWUoMDspOTM5IDExNzEgeShwcmludGYpaShcKCJcXG4iXCk7KTg2MQorMTI1OCB5KH0pNzgyIDE0MzIgeShwcmludGYpZyhcKCJcMDQ1c1xcdCIsKWcoY29tbWFuZHNbaV0ubmFtZVwpOyk3ODIKKzE1MTkgeShwcmludGVkKys7KTcwNCAxNjA2IHkofSk2MjUgMTc4MSB5KGlmKWYoXChwcmludGVkXCkpNzA0CisxODY4IHkocHJpbnRmKWcoXCgiXFxuIlwpOyk1NDcgMTk1NSB5KH0pNDY4IDIwNDIgeShyZXR1cm4paChcKDBcKTspMzkwCisyMTMwIHkofSkzOTAgMjMwNCB5KC8qKWYoQ2hhbmdlKWcodG8pZyh0aGUpZyhkaXJlY3RvcnkpaChBUkcuKWYoKi8pMzkwCisyMzkxIHkoY29tX2NkKWgoXChhcmdcKSk1ODYgMjQ3OCB5KGNoYXIpZigqYXJnOykzOTAgMjU2NQoreSh7KTQ2OCAyNjUzIHkoaWYpZyhcKGNoZGlyKWgoXChhcmdcKSlmKD09KWcoLTFcKSk1NDcKKzI3NDAgeSh7KTYyNSAyODI3IHkocGVycm9yKWgoXChhcmdcKTspNjI1IDI5MTQgeShyZXR1cm4pZygxOyk1NDcKKzMwMDEgeSh9KTQ2OCAzMTc2IHkoY29tX3B3ZClnKFwoIiJcKTspNDY4IDMyNjMgeShyZXR1cm4pZyhcKDBcKTspMzkwCiszMzUwIHkofSkzOTAgMzUyNCB5KC8qKWYoUHJpbnQpZyhvdXQpZyh0aGUpZyhjdXJyZW50KWgod29ya2luZylnCisoZGlyZWN0b3J5LilnKCovKTM5MCAzNjExIHkoY29tX3B3ZClnKFwoaWdub3JlXCkpNTg2CiszNjk5IHkoY2hhcilmKCppZ25vcmU7KTM5MCAzNzg2IHkoeyk0NjggMzg3MyB5KGNoYXIpaChkaXJbMTAyNF0sKWcoKnM7KQorNDY4IDQwNDcgeShzKWYoPSlmKGdldGN3ZClpKFwoZGlyLClmKHNpemVvZlwoZGlyXCkpaSgtKWUoMVwpOyk0NjgKKzQxMzQgeShpZilnKFwocylnKD09KWYoMFwpKTU0NyA0MjIyIHkoeyk2MjUgNDMwOSB5KHByaW50ZilpKFwoIkVycm9yKWcKKyhnZXR0aW5nKWcocHdkOilmKFwwNDVzXFxuIiwpZyhkaXJcKTspNjI1IDQzOTYgeShyZXR1cm4paCgxOyk1NDcKKzQ0ODMgeSh9KTQ2OCA0NjU4IHkocHJpbnRmKWcoXCgiQ3VycmVudClnKGRpcmVjdG9yeSloKGlzKWQoXDA0NXNcXG4iLClpCisoZGlyXCk7KTQ2OCA0NzQ1IHkocmV0dXJuKWcoMDspMzkwIDQ4MzIgeSh9KTM5MCA1MDA2Cit5KC8qKWYoVGhlKWcodXNlcilnKHdpc2hlcylnKHRvKWcocXVpdClnKHVzaW5nKWgodGhpcylmKHByb2dyYW0uKTgwCitiKEp1c3QpNDAgYihzZXQpZyhET05FKTUwOCA1MDkzIHkobm9uLXplcm8uKWgoKi8pMzkwCis1MTgxIHkoY29tX3F1aXQpZyhcKGFyZ1wpKTU4NiA1MjY4IHkoY2hhcilmKCphcmc7KXAgZW9wCitlbmQKKyUlUGFnZTogNTUgNTkKK1RlWERpY3QgYmVnaW4gNTUgNTggYm9wIDE1MCAtMTE2IGEgRnQoQ2hhcHRlcikzMCBiKDI6KTQxCitiKFByb2dyYW1taW5nKTMwIGIod2l0aClnKEdOVSloKFJlYWRsaW5lKTE2ODMgYig1NSkzOTAKKzI5OSB5IEZkKHspNDY4IDM4NiB5KGRvbmUpNDEgYig9KWUoMTspNDY4IDQ3MyB5KHJldHVybilpKFwoMFwpOykzOTAKKzU2MCB5KH0pMzkwIDczNSB5KC8qKWYoRnVuY3Rpb24paCh3aGljaClmKHRlbGxzKWcoeW91KWcodGhhdCloKHlvdSllCisoY2FuJ3QpaShkbyllKHRoaXMuKWkoKi8pMzkwIDgyMiB5KHRvb19kYW5nZXJvdXMpaChcKGNhbGxlclwpKTU4NgorOTA5IHkoY2hhcillKCpjYWxsZXI7KTM5MCA5OTYgeSh7KTQ2OCAxMDgzIHkoZnByaW50ZiloKFwoc3RkZXJyLCk4MjEKKzExNzEgeSgiXDA0NXM6KWcoVG9vKWYoZGFuZ2Vyb3VzKWgoZm9yKWYobWUpZih0byloKGRpc3RyaWJ1dGUuXFxuIiwpODIxCisxMjU4IHkoY2FsbGVyXCk7KTQ2OCAxMzQ1IHkoZnByaW50ZiloKFwoc3RkZXJyLClnKCJXcml0ZSlnKGl0KWYKKyh5b3Vyc2VsZi5cXG4iXCk7KTM5MCAxNDMyIHkofSkzOTAgMTYwNiB5KC8qKWcoUmV0dXJuKWcobm9uLXplcm8paChpZilmCisoQVJHKWcoaXMpZyhhKWYodmFsaWQpaChhcmd1bWVudCloKGZvcilmKENBTExFUiwpNTA4CisxNjk0IHkoZWxzZSlnKHByaW50KWcoYW4pZyhlcnJvcilnKG1lc3NhZ2UpaChhbmQpZihyZXR1cm4paCh6ZXJvLilmKCovKQorMzkwIDE3ODEgeShpbnQpMzkwIDE4NjggeSh2YWxpZF9hcmd1bWVudClpKFwoY2FsbGVyLClmKGFyZ1wpKTU4NgorMTk1NSB5KGNoYXIpZigqY2FsbGVyLCloKCphcmc7KTM5MCAyMDQyIHkoeyk0NjggMjEzMAoreShpZilmKFwoIWFyZylnKHx8KWcoISphcmdcKSk1NDcgMjIxNyB5KHspNjI1IDIzMDQgeShmcHJpbnRmKWgKKyhcKHN0ZGVyciwpZygiXDA0NXM6KWYoQXJndW1lbnQpaChyZXF1aXJlZC5cXG4iLClpKGNhbGxlclwpOyk2MjUKKzIzOTEgeShyZXR1cm4pZShcKDBcKTspNTQ3IDI0NzggeSh9KTQ2OCAyNjUzIHkocmV0dXJuKWcoXCgxXCk7KTM5MAorMjc0MCB5KH0pcCBlb3AgZW5kCislJVBhZ2U6IDU2IDYwCitUZVhEaWN0IGJlZ2luIDU2IDU5IGJvcCAxNTAgLTExNiBhIEZ0KDU2KTI2MDAgYihHTlUpMzEKK2IoUmVhZGxpbmUpZyhMaWJyYXJ5KXAgZW9wIGVuZAorJSVQYWdlOiA1NyA2MQorVGVYRGljdCBiZWdpbiA1NyA2MCBib3AgMTUwIC0xMTYgYSBGdChBcHApcyhlbmRpeCkyOQorYihBOiloKENvcCltKHlpbmcpaChUaGlzKWYoTWFuKW0odWFsKTIxMDUgYig1NykxNTAgMjk5Cit5IEZwKEFwcCl0KGVuZGl4KTUyIGIoQSk0MCBiKENvcClsKHlpbmcpNTEgYihUaGlzKWooTWFuKWwodWFsKTE1MAorNjkwIHkgRnIoQS4xKTY3IGIoR05VKTQ1IGIoRiktMTEgYihyZWUpNDUgYihEbyl0KGN1bWVuKWwodGF0aW9uKWgKKyhMaWNlbnNlKTEzOTYgOTA5IHkgRnQoViktOCBiKGVyc2lvbikzMSBiKDEuMiwpaChObyltKHYpbShlbSltKGIpcyhlcilnCisoMjAwMikzOTAgMTA1MiB5KENvcCltKHlyaWdoKW0odCk4NDIgMTA0OSB5KGMpODE3IDEwNTIKK3kgRnEoXDAxNSllIEZ0KDIwMDAsMjAwMSwyMDAyKTM2IGIoRiktOCBiKHJlZSkzMiBiKFNvZnQpbSh3KW0oYXJlKWYoRikKKy04IGIob3VuZGF0aW9uLCkzMiBiKEluYy4pMzkwIDExNjEgeSg1OSlmKFQpLTggYihlbXBsZSkzMQorYihQbGFjZSwpaChTdWl0ZSllKDMzMCwpaShCb3N0b24sKWcoTUEpNjEgYigwMjExMS0xMzA3LCkzNQorYihVU0EpMzkwIDEzODAgeShFdiltKGVyeSltKG9uZSljKGlzKWcocClzKGVybWl0dGVkKWYodG8paChjb3ApbSh5KWcKKyhhbmQpZihkaXN0cmlidXRlKWcodiltKGVyYmF0aW0paChjb3BpZXMpMzkwIDE0OTAgeShvZilnKHRoaXMpZgorKGxpY2Vuc2UpaChkbylzKGN1bWVuKW0odCwpZyhidXQpZShjKW0oaGFuZ2luZylqKGl0KWYoaXMpZihub3QpaChhbGxvKW0KKyh3KW0oZWQuKTE5OSAxNjMyIHkoMC4pNjEgYihQUkVBTUJMRSkzMzAgMTc3MCB5KFRoZSkzNworYihwdXJwKXMob3NlKWUob2YpaSh0aGlzKWcoTGljZW5zZSloKGlzKWYodG8paChtYWspbShlKWcoYSlnKG1hbiltCisodWFsLCloKHRleHRiKXMobylzKG9rLCloKG9yKWQob3RoZXIpZyhmdW5jdGlvbmFsKWgoYW5kKTMzMAorMTg4MCB5KHVzZWZ1bCkyOSBiKGRvKXMoY3VtZW4pbSh0KWggRmkoZnJlZSkzNiBiIEZ0KGluKTI5CitiKHRoZSlpKHNlbnNlKWYob2YpZyhmcmVlZG9tOik0MSBiKHRvKTMxIGIoYXNzdXJlKWUoZXYpbShlcnkpbShvbmUpagorKHRoZSllKGVcMDEzZWN0aXYpbShlKWooZnJlZWRvbSkzMzAgMTk5MCB5KHRvKWYoY29wKW0oeSlnKGFuZClmCisocmVkaXN0cmlidXRlKWcoaXQsKWgod2l0aClnKG9yKWYod2l0aG91dClnKG1vKXMoZGlmeWluZylnKGl0LClpCisoZWl0aGVyKWYoY29tbWVyY2lhbGx5KWgob3IpZShub24tKTMzMCAyMDk5IHkoY29tbWVyY2lhbGx5KS04CitiKC4pNTYgYihTZWNvbmRhcmlseSktOCBiKCwpMzYgYih0aGlzKWYoTGljZW5zZSlnKHByZXNlcnYpbShlcylnKGZvcilmCisodGhlKWgoYXV0aG9yKWYoYW5kKWcocHVibGlzaGVyKWYoYSlpKHcpbShhKW0oeSkzMzAgMjIwOQoreSh0bylpKGdldClnKGNyZWRpdClnKGZvcilmKHRoZWlyKWcodyltKG9yaywpaSh3aGlsZSllKG5vdClnKGIpcyhlaW5nKWcKKyhjb25zaWRlcmVkKWcocmVzcClzKG9uc2libGUpZihmb3IpaChtbylzKGRpXDAxNGNhdGlvbnMpMzMwCisyMzE4IHkobWFkZSkzMCBiKGIpbSh5KWgob3RoZXJzLikzMzAgMjQ1NyB5KFRoaXMpMjIgYihMaWNlbnNlKWkoaXMpZihhKQoraChraW5kKWUob2YpaShcXGNvcCltKHlsZWZ0Iiwpaih3aGljKW0oaCljKG1lYW5zKWcodGhhdCloKGRlcml2KS01CitiKGF0aXYpbShlKTI0IGIodyltKG9ya3MpZihvZiloKHRoZSlmKGRvKXMoY3VtZW4pbSh0KTMzMAorMjU2NiB5KG0pbSh1c3QpMzQgYih0aGVtc2VsdiltKGVzKWgoYilzKGUpZShmcmVlKWgoaW4pZyh0aGUpZyhzYW1lKWcKKyhzZW5zZS4pNTEgYihJdCkzNCBiKGNvbXBsZW1lbiltKHRzKWgodGhlKWYoR05VKWcoR2VuZXJhbCloKFB1YmxpYykzMzAKKzI2NzYgeShMaWNlbnNlLCljKHdoaWMpbShoKWYoaXMpaChhKWYoY29wKW0oeWxlZnQpaShsaWNlbnNlKWcoZGVzaWduZWQpCitlKGZvcilnKGZyZWUpaChzb2Z0KW0odyltKGFyZS4pMzMwIDI4MTQgeShXKS04IGIoZSkzMQorYihoYSltKHYpbShlKWYoZGVzaWduZWQpZyh0aGlzKWYoTGljZW5zZSloKGluKWYob3JkZXIpZyh0bylpKHVzZSllKGl0KWgKKyhmb3IpZihtYW4pbSh1YWxzKWgoZm9yKWYoZnJlZSloKHNvZnQpbSh3KW0oYXJlLCloKGIpcyhlY2F1c2UpMzMwCisyOTI0IHkoZnJlZSk0MiBiKHNvZnQpbSh3KW0oYXJlKWkobmVlZHMpZShmcmVlKWcoZG8pcyhjdW1lbiltKHRhdGlvbjopCis2NSBiKGEpNDIgYihmcmVlKWgocHJvZ3JhbSlmKHNob3VsZClmKGNvbWUpaSh3aXRoKWYobWFuKW0odWFscykzMzAKKzMwMzMgeShwcm8pbSh2aWRpbmcpMjkgYih0aGUpZyhzYW1lKWcoZnJlZWRvbXMpZih0aGF0KWkodGhlKWYoc29mdCltKHcpCittKGFyZSloKGRvKXMoZXMuKTQwIGIoQnV0KTI5IGIodGhpcylmKExpY2Vuc2UpaShpcylmKG5vdClnKGxpbWl0ZWQpZworKHRvKTMzMCAzMTQzIHkoc29mdCltKHcpbShhcmUpaihtYW4pbSh1YWxzOylmKGl0KWcoY2FuKWcoYilzKGUpZih1c2VkKWcKKyhmb3IpZyhhbiltKHkpaCh0ZXh0dWFsKWgodyltKG9yaywpZihyZWdhcmRsZXNzKWcob2YpZyhzdWIpNQorYihqZWN0KTMwIGIobWF0dGVyKWkob3IpMzMwIDMyNTIgeSh3aGV0aGVyKWYoaXQpaChpcylmKHB1Ymxpc2hlZClmKGFzKWkKKyhhKWYocHJpbiltKHRlZClnKGIpcyhvKXMob2suKTQ0IGIoVyktOCBiKGUpMzIgYihyZWNvbW1lbmQpZih0aGlzKWgKKyhMaWNlbnNlKWcocHJpbmNpcGFsbHkpZihmb3IpMzMwIDMzNjIgeSh3KW0ob3JrcylmKHdob3NlKWgocHVycClzKG9zZSlkCisoaXMpaihpbnN0cnVjdGlvbilmKG9yKWcocmVmZXJlbmNlLikxOTkgMzUwMCB5KDEuKTYxCitiKEFQUExJQ0FCSUxJVFkpMjkgYihBTkQpaihERUZJTklUSU9OUykzMzAgMzYzOSB5KFRoaXMpMzkKK2IoTGljZW5zZSlpKGFwcGxpZXMpZih0bylnKGFuKW0oeSloKG1hbiltKHVhbClmKG9yKWcob3RoZXIpZyh3KW0ob3JrLClpCisoaW4pZShhbiltKHkpZyhtZWRpdW0sKWkodGhhdCllKGNvbiltKHRhaW5zKWkoYSkzMzAgMzc0OAoreShub3RpY2UpaChwbGFjZWQpZihiKW0oeSlmKHRoZSloKGNvcCltKHlyaWdoKW0odCloKGhvbGRlcillKHNhKW0oeWluZykKK2goaXQpZyhjYW4pZyhiKXMoZSlmKGRpc3RyaWJ1dGVkKWYodW5kZXIpZyh0aGUpaSh0ZXJtcykzMzAKKzM4NTggeShvZiljKHRoaXMpZihMaWNlbnNlLik2MiBiKFN1YyltKGgpMzcgYihhKWgobm90aWNlKWgoZ3JhbiltKHRzKWYKKyhhKWcodyltKG9ybGQtd2lkZSwpaChybyltKHkpbShhbHQpbSh5LWZyZWUpaShsaWNlbnNlLClmKHVubGltaXRlZClkCisoaW4pMzMwIDM5NjcgeShkdXJhdGlvbiwpNDkgYih0bylkKHVzZSlmKHRoYXQpZyh3KW0ob3JrKWgodW5kZXIpZCh0aGUpagorKGNvbmRpdGlvbnMpZihzdGF0ZWQpaChoZXJlaW4uKTg1IGIoVGhlKTQ1IGIoXFxEbylzKGN1bWVuKW0odCIsKTMzMAorNDA3NyB5KGIpcyhlbG8pbSh3LCkyOSBiKHJlZmVycylmKHRvKWgoYW4pbSh5KWcoc3VjKW0oaClmKG1hbiltKHVhbCloCisob3IpZih3KW0ob3JrLik0MCBiKEFuKW0oeSkyOSBiKG1lbSltKGIpcyhlcillKG9mKWkodGhlKWYocHVibGljKWcoaXMpZworKGEpaChsaWNlbnNlZSwpaShhbmQpMzMwIDQxODcgeShpcykyNSBiKGFkZHJlc3NlZClmKGFzKWgoXFx5KW0ob3UiLik0MAorYihZKS04IGIob3UpMjYgYihhY2NlcHQpZyh0aGUpZihsaWNlbnNlKWgoaWYpZih5KW0ob3UpaChjb3ApbSh5KS04CitiKCwpMjcgYihtbylzKGRpZnkpZChvciloKGRpc3RyaWJ1dGUpZyh0aGUpZyh3KW0ob3JrKTMzMAorNDI5NiB5KGluKTMwIGIoYSloKHcpbShhKW0oeSlnKHJlcXVpcmluZylmKHApcyhlcm1pc3Npb24pZih1bmRlcilnKGNvcCkKK20oeXJpZ2gpbSh0KWoobGEpbSh3LikzMzAgNDQzNSB5KEEpaShcXE1vKXMoZGlcMDE0ZWQpZihWKS04CitiKGVyc2lvbiIpMzUgYihvZilmKHRoZSlnKERvKXMoY3VtZW4pbSh0KWcobWVhbnMpZyhhbiltKHkpZyh3KW0ob3JrKWYKKyhjb24pbSh0YWluaW5nKWoodGhlKWUoRG8pcyhjdW1lbiltKHQpZyhvcikzMzAgNDU0NCB5KGEpayhwKXMob3J0aW9uKWYKKyhvZiloKGl0LClpKGVpdGhlcillKGNvcGllZClnKHYpbShlcmJhdGltLClpKG9yKWQod2l0aCloKG1vKXMKKyhkaVwwMTRjYXRpb25zKWYoYW5kL29yKWgodHJhbnNsYXRlZClnKGluKW0odG8pMzMwIDQ2NTQKK3koYW5vdGhlcikzMSBiKGxhbmd1YWdlLikzMzAgNDc5MiB5KEEpMjYgYihcXFNlY29uZGFyeSlnKFNlY3Rpb24iKWgoaXMpCitmKGEpaChuYW1lZCllKGFwcClzKGVuZGl4KWYob3IpaShhKWgoZnJvbiltKHQtbWF0dGVyKWcoc2VjdGlvbilnKG9mKWYKKyh0aGUpZyhEbylzKGN1bWVuKW0odCkzMzAgNDkwMiB5KHRoYXQpYyhkZWFscylnKGV4Y2x1c2l2KW0oZWx5KWgod2l0aCllCisodGhlKWcocmVsYXRpb25zaGlwKWgob2YpZih0aGUpaChwdWJsaXNoZXJzKWQob3IpaShhdXRob3JzKWcob2YpaCh0aGUpZgorKERvKXMoY3VtZW4pbSh0KTMzMCA1MDExIHkodG8pMzggYih0aGUpZihEbylzKGN1bWVuKW0odCdzKWkobyltKHYpbQorKGVyYWxsKWcoc3ViKTUgYihqZWN0KTM3IGIoXChvciloKHRvKWcocmVsYXRlZClnKG1hdHRlcnNcKSlnKGFuZClmKGNvbikKK20odGFpbnMpaChub3RoaW5nKWYodGhhdCkzMzAgNTEyMSB5KGNvdWxkKWooZmFsbCloKGRpcmVjdGx5KWcod2l0aGluKWYKKyh0aGF0KWgobyltKHYpbShlcmFsbClpKHN1Yik1IGIoamVjdC4pNzAgYihcKFRoKW0odXMsKTQyCitiKGlmKWUodGhlKWgoRG8pcyhjdW1lbiltKHQpZyhpcylmKGluKWcocGFydCloKGEpMzMwCis1MjMwIHkodGV4dGIpcyhvKXMob2spMjQgYihvZilnKG1hdGhlbWF0aWNzLClqKGEpZChTZWNvbmRhcnkpZihTZWN0aW9uKQoraChtYSltKHkpZyhub3QpZyhleHBsYWluKWcoYW4pbSh5KWcobWF0aGVtYXRpY3MuXCkpNDAKK2IoVGhlKTMzMCA1MzQwIHkocmVsYXRpb25zaGlwKTI4IGIoY291bGQpZihiKXMoZSlnKGEpZyhtYXR0ZXIpaShvZillCisoaGlzdG9yaWNhbClpKGNvbm5lY3Rpb24pZih3aXRoKWYodGhlKWgoc3ViKTUgYihqZWN0KTI3CitiKG9yKWcod2l0aClnKHJlbGF0ZWQpcCBlb3AgZW5kCislJVBhZ2U6IDU4IDYyCitUZVhEaWN0IGJlZ2luIDU4IDYxIGJvcCAxNTAgLTExNiBhIEZ0KDU4KTI2MDAgYihHTlUpMzEKK2IoUmVhZGxpbmUpZyhMaWJyYXJ5KTMzMCAyOTkgeShtYXR0ZXJzLCkzOCBiKG9yKWQob2YpaChsZWdhbCwpaQorKGNvbW1lcmNpYWwsKWgocGhpbG9zb3BoaWNhbCwpZihldGhpY2FsKWYob3IpZShwKXMob2xpdGljYWwpaShwKXMKKyhvc2l0aW9uKWYocmVnYXJkaW5nKTMzMCA0MDggeSh0aGVtLikzMzAgNTQ5IHkoVGhlKTI1CitiKFxcSW4pbSh2KS01IGIoYXJpYW4pbSh0KTI3IGIoU2VjdGlvbnMiKWcoYXJlKWYoY2VydGFpbilnKFNlY29uZGFyeSlnCisoU2VjdGlvbnMpZyh3aG9zZSlmKHRpdGxlcylpKGFyZSlmKGRlc2lnbmF0ZWQsKWkoYXMpMzMwCis2NTkgeShiKXMoZWluZyllKHRob3NlKWgob2YpZyhJbiltKHYpLTUgYihhcmlhbiltKHQpMjcKK2IoU2VjdGlvbnMsKWkoaW4pZCh0aGUpaChub3RpY2UpaCh0aGF0KWYoc2EpbSh5cylnKHRoYXQpZyh0aGUpZyhEbylzCisoY3VtZW4pbSh0KWcoaXMpZyhyZWxlYXNlZCkzMzAgNzY5IHkodW5kZXIpZih0aGlzKWkoTGljZW5zZS4pNDAKK2IoSWYpMjcgYihhKWgoc2VjdGlvbiloKGRvKXMoZXMpZihub3QpZihcMDE0dCloKHRoZSlnKGFiKXMobyltKHYpbShlKWgKKyhkZVwwMTRuaXRpb24pZShvZiloKFNlY29uZGFyeSlmKHRoZW4paChpdClnKGlzKTMzMCA4NzgKK3kobm90KWsoYWxsbyltKHcpbShlZClpKHRvKWUoYilzKGUpZyhkZXNpZ25hdGVkKWcoYXMpZyhJbiltKHYpLTUKK2IoYXJpYW4pbSh0Lik0NiBiKFRoZSkzMSBiKERvKXMoY3VtZW4pbSh0KWkobWEpbSh5KWYoY29uKW0odGFpbilpKHplcm8pCitlKEluKW0odiktNSBiKGFyaWFuKW0odCkzMzAgOTg4IHkoU2VjdGlvbnMuKTM5IGIoSWYpMjUKK2IodGhlKWYoRG8pcyhjdW1lbiltKHQpaShkbylzKGVzKWUobm90KWgoaWRlbiltKHRpZnkpZyhhbiltKHkpZyhJbiltKHYpCistNSBiKGFyaWFuKW0odCkyNSBiKFNlY3Rpb25zKWgodGhlbillKHRoZXJlKWgoYXJlKWcobm9uZS4pMzMwCisxMTI5IHkoVGhlKTM2IGIoXFxDbyltKHYpbShlcilpKFQpLTggYihleHRzIikzOCBiKGFyZSlmKGNlcnRhaW4pZworKHNob3J0KWcocGFzc2FnZXMpZyhvZilnKHRleHQpZyh0aGF0KWgoYXJlKWYobGlzdGVkLClpKGFzKWQoRiktOAorYihyb24pbSh0LUNvKW0odiltKGVyKTMzMCAxMjM4IHkoVClnKGV4dHMpMjYgYihvcilmKEJhYyltKGstQ28pbSh2KW0KKyhlcilqKFQpLTggYihleHRzLCkyNyBiKGluKWQodGhlKWgobm90aWNlKWkodGhhdCllKHNhKW0oeXMpaCh0aGF0KWcKKyh0aGUpZihEbylzKGN1bWVuKW0odCloKGlzKWYocmVsZWFzZWQpZyh1bmRlcikzMzAgMTM0OAoreSh0aGlzKWgoTGljZW5zZS4pNDAgYihBKTI1IGIoRiktOCBiKHJvbiltKHQtQ28pbSh2KW0oZXIpMjkKK2IoVCktOCBiKGV4dCkyNiBiKG1hKW0oeSloKGIpcyhlKWUoYXQpaShtb3N0KWYoNSlnKHcpbShvcmRzLClnKGFuZClnKGEpCitnKEJhYyltKGstQ28pbSh2KW0oZXIpaihUKS04IGIoZXh0KTI2IGIobWEpbSh5KTMzMCAxNDU3Cit5KGIpcyhlKWsoYXQpaChtb3N0KWcoMjUpZyh3KW0ob3Jkcy4pMzMwIDE1OTggeShBKTM2CitiKFxcVCktOCBiKHJhbnNwYXJlbiltKHQiKTM2IGIoY29wKW0oeSlnKG9mKWcodGhlKWYoRG8pcyhjdW1lbiltKHQpaAorKG1lYW5zKWcoYSlnKG1hYyltKGhpbmUtcmVhZGFibGUpaChjb3ApbSh5KS04IGIoLCkzOAorYihyZXByZXNlbiltKHRlZCkzMzAgMTcwOCB5KGluKWQoYSloKGZvcm1hdClnKHdob3NlKWcoc3ApcworKGVjaVwwMTRjYXRpb24pZyhpcylnKGEpbSh2KS01IGIoYWlsYWJsZSkzOCBiKHRvKWYodGhlKWYoZ2VuZXJhbClnCisocHVibGljLCloKHRoYXQpZihpcylnKHN1aXRhYmxlKWcoZm9yKTMzMCAxODE3IHkocmV2aXNpbmcpYyh0aGUpZyhkbylzCisoY3VtZW4pbSh0KWYoc3RyYWlnaCltKHRmb3J3KW0oYXJkbHkpaSh3aXRoKWUoZ2VuZXJpYylpKHRleHQpZyhlZGl0b3JzKQorZihvcilmKFwoZm9yKWgoaW1hZ2VzKWgoY29tLSkzMzAgMTkyNyB5KHApcyhvc2VkKTIzIGIob2YpaChwaXhlbHNcKSlnCisoZ2VuZXJpYyloKHBhaW4pbSh0KWYocHJvZ3JhbXMpZyhvcilmKFwoZm9yKWgoZHJhKW0od2luZ3NcKSlnKHNvbWUpZworKHdpZGVseSlnKGEpbSh2KS01IGIoYWlsYWJsZSkyNiBiKGRyYSltKHdpbmcpMzMwIDIwMzcKK3koZWRpdG9yLClrKGFuZClmKHRoYXQpZyhpcylnKHN1aXRhYmxlKWgoZm9yKWYoaW5wdXQpZih0bylpKHRleHQpZworKGZvcm1hdHRlcnMpZihvcilnKGZvcilnKGF1dG9tYXRpYylpKHRyYW5zbGF0aW9uKWYodG8pMzMwCisyMTQ2IHkoYSlkKHYpLTUgYihhcmlldCltKHkpMjggYihvZilmKGZvcm1hdHMpZyhzdWl0YWJsZSloKGZvcillKGlucHV0KQorZyh0bylpKHRleHQpZyhmb3JtYXR0ZXJzLik0MCBiKEEpMjcgYihjb3ApbSh5KWcobWFkZSlnKGluKWcoYW4pZworKG90aGVyd2lzZSkzMzAgMjI1NiB5KFQpLTggYihyYW5zcGFyZW4pbSh0KTM3IGIoXDAxNGxlKWgoZm9ybWF0KWcKKyh3aG9zZSlmKG1hcmt1cCwpaShvcillKGFic2VuY2UpaChvZilnKG1hcmt1cCwpZyhoYXMpZyhiKXMoZWVuKWYKKyhhcnJhbmdlZClnKHRvKTMzMCAyMzY1IHkodGgpbSh3KW0oYXJ0KTI3IGIob3IpZyhkaXNjb3VyYWdlKWcKKyhzdWJzZXF1ZW4pbSh0KWYobW8pcyhkaVwwMTRjYXRpb24paChiKW0oeSlnKHJlYWRlcnMpZihpcylnKG5vdCloKFQpLTgKK2IocmFuc3BhcmVuKW0odC4pMzkgYihBbikyNyBiKGltYWdlKTMzMCAyNDc1IHkoZm9ybWF0KTM1CitiKGlzKWYobm90KWgoVCktOCBiKHJhbnNwYXJlbiltKHQpMzQgYihpZilnKHVzZWQpZyhmb3IpZyhhbiltKHkpZworKHN1YnN0YW4pbSh0aWFsKWgoYW1vdW4pbSh0KWcob2YpZyh0ZXh0Lik1MyBiKEEpMzUgYihjb3ApbSh5KWcodGhhdClnCisoaXMpMzMwIDI1ODUgeShub3QpYyhcXFQpLTggYihyYW5zcGFyZW4pbSh0IikzMSBiKGlzKWYoY2FsbGVkKWkKKyhcXE9wYXF1ZSIuKTMzMCAyNzI1IHkoRXhhbXBsZXMpNTMgYihvZilnKHN1aXRhYmxlKWgoZm9ybWF0cylmKGZvcilnKFQpCistOCBiKHJhbnNwYXJlbiltKHQpNTMgYihjb3BpZXMpaChpbmNsdWRlKWYocGxhaW4pZyBGbShhc2NpKXIoaSlnCitGdCh3aXRob3V0KTMzMCAyODM1IHkobWFya3VwLCk0MSBiKFQpLTggYihleGluZm8pNDAgYihpbnB1dClmKGZvcm1hdCwpagorKExhVCkxNzc1IDI4NTUgeShFKTE4MjYgMjgzNSB5KFgpZChpbnB1dClnKGZvcm1hdCwpaworRm0oc2dtbCljIEZ0KG9yKWcgRm0oeG1sKWcgRnQodXNpbmcpZyhhKWgocHVibGljbHkpMzMwCisyOTQ1IHkoYSltKHYpLTUgYihhaWxhYmxlKTM0IGIgRm0oZHRkKXAgRnQoLClkKGFuZClnCisoc3RhbmRhcmQtY29uZm9ybWluZylnKHNpbXBsZSloIEZtKGh0bWwpcCBGdCgsKWYoUCltKG9zdFNjcmlwdCloKG9yKWYKK0ZtKHBkZilnIEZ0KGRlc2lnbmVkKWcoZm9yKTMzMCAzMDU0IHkoaCltKHVtYW4pMzcgYihtbylzKGRpXDAxNGNhdGlvbi4pCis2NSBiKEV4YW1wbGVzKTM4IGIob2YpZyh0cmFuc3BhcmVuKW0odClnKGltYWdlKWkoZm9ybWF0cyllKGluY2x1ZGUpZworRm0ocG5nKXAgRnQoLClpIEZtKHgpbihjZillIEZ0KGFuZCkzMzAgMzE2NCB5IEZtKGpwZylwCitGdCguKTYzIGIoT3BhcXVlKTM4IGIoZm9ybWF0cylnKGluY2x1ZGUpZyhwcm9wcmlldGFyeSlnKGZvcm1hdHMpZyh0aGF0KQoraChjYW4pZihiKXMoZSlnKHJlYWQpZyhhbmQpZihlZGl0ZWQpaShvbmx5KTMzMCAzMjczIHkoYiltKHkpZworKHByb3ByaWV0YXJ5KWcodyltKG9yZClnKHBybylzKGNlc3NvcnMsKWogRm0oc2dtbCljIEZ0KG9yKWkKK0ZtKHhtbCllIEZ0KGZvcilpKHdoaWMpbShoKWYodGhlKWcgRm0oZHRkKWcgRnQoYW5kL29yKWcocHJvKXMoY2Vzc2luZykKKzMzMCAzMzgzIHkodG8pcyhvbHMpMzIgYihhcmUpZihub3QpZyhnZW5lcmFsbHkpaChhKW0odiktNQorYihhaWxhYmxlLCkzNCBiKGFuZCljKHRoZSloKG1hYyltKGhpbmUtZ2VuZXJhdGVkKWkgRm0oaHRtbClwCitGdCgsKWQoUCltKG9zdFNjcmlwdClpKG9yKWYgRm0ocGRmKTMzMCAzNDkzIHkgRnQocHJvKXMoZHVjZWQpZShiKW0oeSloCisoc29tZSloKHcpbShvcmQpZihwcm8pcyhjZXNzb3JzKWcoZm9yKWcob3V0cHV0KWcocHVycClzKG9zZXMpZShvbmx5KS04CitiKC4pMzMwIDM2MzQgeShUaGUpMzQgYihcXFRpdGxlKWgoUCltKGFnZSIpaShtZWFucywpZShmb3IpZihhKWgocHJpbiltCisodGVkKWYoYilzKG8pcyhvaywpaCh0aGUpZih0aXRsZSlpKHBhZ2UpZihpdHNlbGYsKWgocGx1cyllKHN1YyltKGgpZgorKGZvbGxvKW0od2luZykzMzAgMzc0MyB5KHBhZ2VzKTI4IGIoYXMpZyhhcmUpZyhuZWVkZWQpZyh0bylnKGhvbGQsKWcKKyhsZWdpYmx5KS04IGIoLCkzMCBiKHRoZSllKG1hdGVyaWFsKWgodGhpcylmKExpY2Vuc2UpZyhyZXF1aXJlcylmKHRvKWgKKyhhcHApcyhlYXIpZihpbiloKHRoZSkzMzAgMzg1MyB5KHRpdGxlKWcocGFnZS4pNDAgYihGKS04CitiKG9yKTI4IGIodyltKG9ya3MpZShpbilnKGZvcm1hdHMpaCh3aGljKW0oaClnKGRvKWYobm90KWgoaGEpbSh2KW0oZSloCisoYW4pbSh5KWUodGl0bGUpaihwYWdlKWUoYXMpZyhzdWMpbShoLClnKFxcVGl0bGUpaChQKW0oYWdlIikzMzAKKzM5NjIgeShtZWFucylqKHRoZSlmKHRleHQpaShuZWFyKWUodGhlKWgobW9zdClnKHByb21pbmVuKW0odClnKGFwcClzCisoZWFyYW5jZSlmKG9mKWgodGhlKWcodyltKG9yaydzKWcodGl0bGUsKWgocHJlY2VkaW5nKWYodGhlKTMzMAorNDA3MiB5KGIpcyhlZ2lubmluZylmKG9mKWcodGhlKWgoYilzKG8pcyhkeSllKG9mKWgodGhlKWgodGV4dC4pMzMwCis0MjEzIHkoQSlmKHNlY3Rpb24paChcXEVuKW0odGl0bGVkKWcoWFlaIilmKG1lYW5zKWYoYSloKG5hbWVkKWcKKyhzdWJ1bml0KWUob2YpaCh0aGUpaChEbylzKGN1bWVuKW0odCloKHdob3NlKWUodGl0bGUpaShlaXRoZXIpMzMwCis0MzIyIHkoaXMpZChwcmVjaXNlbHkpZyhYWVopZyhvcilmKGNvbiltKHRhaW5zKWkoWFlaKWYoaW4pZihwYXJlbiltCisodGhlc2VzKWkoZm9sbG8pbSh3aW5nKWcodGV4dClnKHRoYXQpZih0cmFuc2xhdGVzKWgoWFlaKWUoaW4pMzMwCis0NDMyIHkoYW5vdGhlcillKGxhbmd1YWdlLik0MCBiKFwoSGVyZSkyNiBiKFhZWilmKHN0YW5kcylmKGZvciloKGEpZworKHNwKXMoZWNpXDAxNGMpZyhzZWN0aW9uKWgobmFtZSlmKG1lbiltKHRpb25lZCloKGIpcyhlbG8pbSh3LClnKHN1YyltCisoaCkzMzAgNDU0MiB5KGFzKWkoXFxBYyltKGtubyltKHdsZWRnZW1lbiltKHRzIiwpMzMgYihcXERlZGljYXRpb25zIiwpZQorKFxcRW5kb3JzZW1lbiltKHRzIiwpZShvcilmKFxcSGlzdG9yeSIuXCkpNDIgYihUKS04IGIobykyOQorYihcXFByZXNlcnYpbShlKTMzMCA0NjUxIHkodGhlKTM0IGIoVGl0bGUiKWgob2YpZShzdWMpbShoKWgoYSlnCisoc2VjdGlvbilnKHdoZW4pZih5KW0ob3UpaChtbylzKGRpZnkpZSh0aGUpaShEbylzKGN1bWVuKW0odCloKG1lYW5zKWUKKyh0aGF0KWgoaXQpZyhyZW1haW5zKWcoYSkzMzAgNDc2MSB5KHNlY3Rpb24pZShcXEVuKW0odGl0bGVkKWYoWFlaIilnCisoYWNjb3JkaW5nKWcodG8pZyh0aGlzKWcoZGVcMDE0bml0aW9uLikzMzAgNDkwMiB5KFRoZSljKERvKXMoY3VtZW4pbSh0KQoraShtYSltKHkpZihpbmNsdWRlKWYoVyktOCBiKGFycmFuKW0odCltKHkpMzAgYihEaXNjbGFpbWVycylmKG5leHQpZih0bykKK2codGhlKWcobm90aWNlKWgod2hpYyltKGgpZShzdGF0ZXMpaSh0aGF0KTMzMCA1MDExIHkodGhpcykzNAorYihMaWNlbnNlKWcoYXBwbGllcylnKHRvKWgodGhlKWYoRG8pcyhjdW1lbiltKHQuKTUyIGIoVGhlc2UpMzMKK2IoVyktOCBiKGFycmFuKW0odCltKHkpMzYgYihEaXNjbGFpbWVycylmKGFyZSlnKGNvbnNpZGVyZWQpZSh0bykzMzAKKzUxMjEgeShiKXMoZSlrKGluY2x1ZGVkKWcoYiltKHkpZyhyZWZlcmVuY2UpaChpbilnKHRoaXMpZihMaWNlbnNlLClqCisoYnV0KWQob25seSloKGFzKWcocmVnYXJkcylmKGRpc2NsYWltaW5nKWkodyltKGFycmFuKW0odGllczopMzMwCis1MjMwIHkoYW4pbSh5KWUob3RoZXIpZyhpbXBsaWNhdGlvbilpKHRoYXQpZSh0aGVzZSlnKFcpLTgKK2IoYXJyYW4pbSh0KW0oeSkzOSBiKERpc2NsYWltZXJzKWYobWEpbSh5KWcoaGEpbSh2KW0oZSlnKGlzKWYodiltKG9pZClnCisoYW5kKWYoaGFzKWgobm8pMzMwIDUzNDAgeShlXDAxM2VjdCkzMiBiKG9uKWUodGhlKWgobWVhbmluZylmKG9mKWgKKyh0aGlzKWYoTGljZW5zZS4pcCBlb3AgZW5kCislJVBhZ2U6IDU5IDYzCitUZVhEaWN0IGJlZ2luIDU5IDYyIGJvcCAxNTAgLTExNiBhIEZ0KEFwcClzKGVuZGl4KTI5CitiKEE6KWgoQ29wKW0oeWluZyloKFRoaXMpZihNYW4pbSh1YWwpMjEwNSBiKDU5KTE5OSAyOTkKK3koMi4pNjEgYihWRVJCQSktOCBiKFRJTSkzMSBiKENPUFlJTkcpMzMwIDQ0NSB5KFkpLTgKK2Iob3UpMzkgYihtYSltKHkpZihjb3ApbSh5KWgoYW5kKWUoZGlzdHJpYnV0ZSloKHRoZSlnKERvKXMoY3VtZW4pbSh0KWgKKyhpbilmKGFuKW0oeSlnKG1lZGl1bSwpaChlaXRoZXIpZyhjb21tZXJjaWFsbHkpaChvcikzMzAKKzU1NSB5KG5vbmNvbW1lcmNpYWxseSktOCBiKCwpNDggYihwcm8pbSh2aWRlZCk0MiBiKHRoYXQpaCh0aGlzKWYKKyhMaWNlbnNlLCk0NyBiKHRoZSk0MiBiKGNvcCltKHlyaWdoKW0odClpKG5vdGljZXMsKWooYW5kKTQyCitiKHRoZSloKGxpY2Vuc2UpMzMwIDY2NCB5KG5vdGljZSkzNyBiKHNhKW0oeWluZylnKHRoaXMpZShMaWNlbnNlKWkKKyhhcHBsaWVzKWUodG8paSh0aGUpZihEbylzKGN1bWVuKW0odClnKGFyZSlnKHJlcHJvKXMoZHVjZWQpZShpbilpKGFsbClnCisoY29waWVzLClqKGFuZCkzMzAgNzc0IHkodGhhdCkyNyBiKHkpbShvdSlnKGFkZClmKG5vKWgob3RoZXIpZgorKGNvbmRpdGlvbnMpaCh3aGF0c28pcyhldiltKGVyKWgodG8pZih0aG9zZSlnKG9mKWcodGhpcylmKExpY2Vuc2UuKTQwCitiKFkpLTggYihvdSkyNyBiKG1hKW0oeSlnKG5vdClnKHVzZSkzMzAgODgzIHkodGVjKW0oaG5pY2FsKTM1CitiKG1lYXN1cmVzKWQodG8paShvYnN0cnVjdClmKG9yKWcoY29uKW0odHJvbCloKHRoZSlmKHJlYWRpbmcpZyhvcilnCisoZnVydGhlcillKGNvcCltKHlpbmcpaihvZilmKHRoZSlnKGNvcGllcykzMzAgOTkzIHkoeSltKG91KTI1CitiKG1hayltKGUpZyhvcilnKGRpc3RyaWJ1dGUuKTM4IGIoSG8pbSh3KW0oZXYpbShlciwpMjgKK2IoeSltKG91KWQobWEpbSh5KWcoYWNjZXB0KWgoY29tcClzKGVuc2F0aW9uKWYoaW4pZihleGMpbShoYW5nZSlqKGZvcilkCisoY29waWVzLikzMzAgMTEwMyB5KElmKTMyIGIoeSltKG91KWcoZGlzdHJpYnV0ZSlnKGEpaChsYXJnZSlnKGVub3VnaClmCisobiltKHVtKW0oYilzKGVyKWYob2YpaChjb3BpZXMpaCh5KW0ob3UpZihtKW0odXN0KWgoYWxzbylnKGZvbGxvKW0odylnCisodGhlKWYoY29uZGl0aW9ucykzMzAgMTIxMiB5KGluKWUoc2VjdGlvbilpKDMuKTMzMCAxMzU4Cit5KFkpLTggYihvdSkyMSBiKG1hKW0oeSloKGFsc28pZihsZW5kKWcoY29waWVzLClpKHVuZGVyKWQodGhlKWgoc2FtZSlnCisoY29uZGl0aW9ucylnKHN0YXRlZCloKGFiKXMobyltKHYpbShlLClpKGFuZCljKHkpbShvdSloKG1hKW0oeSlnCisocHVibGljbHkpMzMwIDE0NjggeShkaXNwbGEpbSh5KTMxIGIoY29waWVzLikxOTkgMTYxNAoreSgzLik2MSBiKENPUFlJTkcpMzAgYihJTilnKFFVQU5USVRZKTMzMCAxNzYwIHkoSWYpMjUKK2IoeSltKG91KWcocHVibGlzaClmKHByaW4pbSh0ZWQpZyhjb3BpZXMpaShcKG9yKWcoY29waWVzKWcoaW4pZihtZWRpYSlnCisodGhhdCloKGNvbW1vbmx5KWcoaGEpbSh2KW0oZSlnKHByaW4pbSh0ZWQpZihjbyltKHYpbShlcnNcKSlpKG9mKTMzMAorMTg3MCB5KHRoZSkzMiBiKERvKXMoY3VtZW4pbSh0LCloKG4pbSh1bSltKGIpcyhlcmluZyllKG1vcmUpaCh0aGFuKWYKKygxMDAsKWooYW5kKWQodGhlKWgoRG8pcyhjdW1lbiltKHQncyloKGxpY2Vuc2UpZihub3RpY2UpaChyZXF1aXJlcykzMzAKKzE5NzkgeShDbyltKHYpbShlcilpKFQpLTggYihleHRzLCkzNiBiKHkpbShvdSlmKG0pbSh1c3QpZihlbmNsb3NlKWkKKyh0aGUpZShjb3BpZXMpaChpbilmKGNvKW0odiltKGVycylpKHRoYXQpZihjYXJyeSktOCBiKCwpMzYKK2IoY2xlYXJseSlmKGFuZClmKGxlZ2libHkpLTggYigsKTM3IGIoYWxsKTMzMCAyMDg5IHkodGhlc2UpaihDbyltKHYpbQorKGVyKWcoVCktOCBiKGV4dHM6KTU5IGIoRiktOCBiKHJvbiltKHQtQ28pbSh2KW0oZXIpNDEKK2IoVCktOCBiKGV4dHMpNDAgYihvbilmKHRoZSlnKGZyb24pbSh0KWcoY28pbSh2KW0oZXIsKTQ0CitiKGFuZCkzOCBiKEJhYyltKGstQ28pbSh2KW0oZXIpayhUKS04IGIoZXh0cyk0MCBiKG9uKTMzMAorMjE5OCB5KHRoZSkyOSBiKGJhYyltKGspaChjbyltKHYpbShlci4pNDIgYihCb3RoKTMwIGIoY28pbSh2KW0oZXJzKWgobSkKK20odXN0KWUoYWxzbyloKGNsZWFybHkpZyhhbmQpZihsZWdpYmx5KWgoaWRlbiltKHRpZnkpZih5KW0ob3UpaChhcylmCisodGhlKWgocHVibGlzaGVyKTMzMCAyMzA4IHkob2Ypayh0aGVzZSloKGNvcGllcy4pNTMgYihUaGUpMzQKK2IoZnJvbiltKHQpaChjbyltKHYpbShlciloKG0pbSh1c3QpZShwcmVzZW4pbSh0KWcodGhlKWgoZnVsbClmKHRpdGxlKWkKKyh3aXRoKWQoYWxsKWoodyltKG9yZHMpZChvZilpKHRoZSlmKHRpdGxlKTMzMCAyNDE4IHkoZXF1YWxseSllCisocHJvbWluZW4pbSh0KWUoYW5kKWcodmlzaWJsZS4pNDMgYihZKS04IGIob3UpMzEgYihtYSltKHkpZyhhZGQpZworKG90aGVyKWcobWF0ZXJpYWwpaChvbilmKHRoZSlnKGNvKW0odiltKGVycyloKGluKWUoYWRkaXRpb24uKTMzMAorMjUyNyB5KENvcCltKHlpbmcpMzYgYih3aXRoKWcoYyltKGhhbmdlcyloKGxpbWl0ZWQpZyh0bylnKHRoZSlnKGNvKW0odikKK20oZXJzLClpKGFzKWQobG9uZyloKGFzKWcodGhleSlmKHByZXNlcnYpbShlKWcodGhlKWgodGl0bGUpZyhvZilnKHRoZSkKKzMzMCAyNjM3IHkoRG8pcyhjdW1lbiltKHQpaChhbmQpZShzYXRpc2Z5KWkodGhlc2UpZihjb25kaXRpb25zLClqKGNhbilkCisoYilzKGUpZyh0cmVhdGVkKWgoYXMpZih2KW0oZXJiYXRpbSloKGNvcCltKHlpbmcpZyhpbilmKG90aGVyKTMzMAorMjc0NiB5KHJlc3ApcyhlY3RzLikzMzAgMjg5MiB5KElmKTMyIGIodGhlKWgocmVxdWlyZWQpZih0ZXh0cylpKGZvcillCisoZWl0aGVyKWgoY28pbSh2KW0oZXIpaShhcmUpZSh0bylzKG8pZyh2KW0ob2x1bWlub3VzKWcodG8pZyhcMDE0dClnCisobGVnaWJseSktOCBiKCwpMzUgYih5KW0ob3UpZShzaG91bGQpZihwdXQpMzMwIDMwMDIgeSh0aGUpaChcMDE0cnN0KWYKKyhvbmVzKWgobGlzdGVkKWcoXChhcyloKG1hbiltKHkpZihhcylnKFwwMTR0KWcocmVhc29uYWJseVwpKWcob24pZyh0aGUpCitnKGFjdHVhbCloKGNvKW0odiltKGVyLCloKGFuZCllKGNvbiltKHRpbiltKHVlKWgodGhlKTMzMAorMzExMiB5KHJlc3QpZChvbiltKHRvKWcoYWRqYWNlbiltKHQpaChwYWdlcy4pMzMwIDMyNTgKK3koSWYpMjcgYih5KW0ob3UpZyhwdWJsaXNoKWUob3IpaShkaXN0cmlidXRlKWcoT3BhcXVlKWYoY29waWVzKWkob2YpZgorKHRoZSloKERvKXMoY3VtZW4pbSh0KWYobiltKHVtKW0oYilzKGVyaW5nKWYobW9yZSlpKHRoYW4pZSgxMDAsKTMzMAorMzM2NyB5KHkpbShvdSlpKG0pbSh1c3QpZyhlaXRoZXIpaChpbmNsdWRlKWUoYSlpKG1hYyltKGhpbmUtcmVhZGFibGUpZworKFQpLTggYihyYW5zcGFyZW4pbSh0KTI4IGIoY29wKW0oeSloKGFsb25nKWcod2l0aCllKGVhYyltKGgpaShPcGFxdWUpCiszMzAgMzQ3NyB5KGNvcCltKHkpLTggYigsKTM4IGIob3IpZChzdGF0ZSloKGluKWYob3IpZyh3aXRoKWcoZWFjKW0oaCloCisoT3BhcXVlKWUoY29wKW0oeSlpKGEpZyhjb21wdXRlci1uZXQpbSh3KW0ob3JrKWcobG8pcyhjYXRpb24paChmcm9tKWQKKyh3aGljKW0oaCkzMzAgMzU4NyB5KHRoZSkyNCBiKGdlbmVyYWwpaShuZXQpbSh3KW0ob3JrLXVzaW5nKWYocHVibGljKWUKKyhoYXMpaChhY2Nlc3MpaSh0bylmKGRvKW0od25sb2FkKWYodXNpbmcpZyhwdWJsaWMtc3RhbmRhcmQpZihuZXQpbSh3KW0KKyhvcmspMzMwIDM2OTYgeShwcm90bylzKGNvbHMpNDAgYihhKWYoY29tcGxldGUpaChUKS04CitiKHJhbnNwYXJlbiltKHQpMzkgYihjb3ApbSh5KWcob2YpZyh0aGUpaChEbylzKGN1bWVuKW0odCwpaShmcmVlKWQob2YpZworKGFkZGVkKWYobWF0ZXJpYWwuKTY3IGIoSWYpMzMwIDM4MDYgeSh5KW0ob3UpMzkgYih1c2UpZyh0aGUpZyhsYXR0ZXIpaAorKG9wdGlvbiwpaCh5KW0ob3UpZihtKW0odXN0KWUodGFrKW0oZSlqKHJlYXNvbmFibHkpZShwcnVkZW4pbSh0KWUKKyhzdGVwcywpayh3aGVuKWQoeSltKG91KWgoYilzKGVnaW4pMzMwIDM5MTUgeShkaXN0cmlidXRpb24pZihvZilnCisoT3BhcXVlKWcoY29waWVzKWgoaW4pZShxdWFuKW0odGl0KW0oeSktOCBiKCwpNDMgYih0bykzOAorYihlbnN1cmUpZyh0aGF0KWgodGhpcylmKFQpLTggYihyYW5zcGFyZW4pbSh0KTM4IGIoY29wKW0oeSloKHdpbGwpMzMwCis0MDI1IHkocmVtYWluKTMwIGIodGgpbSh1cylnKGFjY2Vzc2libGUpaShhdClmKHRoZSlmKHN0YXRlZCloKGxvKXMKKyhjYXRpb24paCh1biltKHRpbCllKGF0KWgobGVhc3QpaChvbmUpZSh5KW0oZWFyKWgoYWZ0ZXIpZyh0aGUpZihsYXN0KWgKKyh0aW1lKTMzMCA0MTM0IHkoeSltKG91KTM3IGIoZGlzdHJpYnV0ZSlmKGFuKWgoT3BhcXVlKWYoY29wKW0oeSlpCisoXChkaXJlY3RseSlnKG9yKWUodGhyb3VnaClnKHkpbShvdXIpaChhZ2VuKW0odHMpaChvcilmKHJldGFpbGVyc1wpKWgKKyhvZilmKHRoYXQpMzMwIDQyNDQgeShlZGl0aW9uKTMxIGIodG8pZyh0aGUpZyhwdWJsaWMuKTMzMAorNDM5MCB5KEl0KWsoaXMpZihyZXF1ZXN0ZWQsKWkoYnV0KWUobm90KWgocmVxdWlyZWQsKWcodGhhdClnKHkpbShvdSlnCisoY29uKW0odGFjdCloKHRoZSlmKGF1dGhvcnMpZihvZiloKHRoZSlnKERvKXMoY3VtZW4pbSh0KWcodyltKGVsbCkzMzAKKzQ1MDAgeShiKXMoZWZvcmUpMjggYihyZWRpc3RyaWJ1dGluZylnKGFuKW0oeSloKGxhcmdlKWgobiltKHVtKW0oYilzCisoZXIpZChvZilpKGNvcGllcywpaCh0bylmKGdpdiltKGUpaCh0aGVtKWYoYSlnKGMpbShoYW5jZSloKHRvKWYocHJvKW0KKyh2aWRlKWcoeSltKG91KTMzMCA0NjA5IHkod2l0aCloKGFuKWcodXApcyhkYXRlZClmKHYpbShlcnNpb24paShvZilnCisodGhlKWYoRG8pcyhjdW1lbiltKHQuKTE5OSA0NzU1IHkoNC4pNjEgYihNT0RJRklDQSktOAorYihUSU9OUykzMzAgNDkwMiB5KFkpZyhvdSkyNiBiKG1hKW0oeSlnKGNvcCltKHkpZyhhbmQpZihkaXN0cmlidXRlKWcoYSkKK2goTW8pcyhkaVwwMTRlZClmKFYpLTggYihlcnNpb24pMjYgYihvZilnKHRoZSlnKERvKXMoY3VtZW4pbSh0KWcodW5kZXIpCitlKHRoZSloKGNvbmRpdGlvbnMpMzMwIDUwMTEgeShvZiljKHNlY3Rpb25zKWgoMilnKGFuZCllKDMpaChhYilzKG8pbSh2KQorbShlLClrKHBybyltKHZpZGVkKTIwIGIodGhhdClpKHkpbShvdSlmKHJlbGVhc2UpaSh0aGUpZShNbylzKGRpXDAxNGVkKWYKKyhWKS04IGIoZXJzaW9uKTIyIGIodW5kZXIpZChwcmVjaXNlbHkpMzMwIDUxMjEgeSh0aGlzKTI5CitiKExpY2Vuc2UsKWgod2l0aClmKHRoZSlnKE1vKXMoZGlcMDE0ZWQpZihWKS04IGIoZXJzaW9uKTMwCitiKFwwMTRsbGluZylmKHRoZSlnKHJvbGUpaChvZilmKHRoZSlnKERvKXMoY3VtZW4pbSh0LCloKHRoKW0odXMpZgorKGxpY2Vuc2luZykzMzAgNTIzMCB5KGRpc3RyaWJ1dGlvbilrKGFuZCloKG1vKXMoZGlcMDE0Y2F0aW9uKWcob2YpaAorKHRoZSlmKE1vKXMoZGlcMDE0ZWQpZihWKS04IGIoZXJzaW9uKTM1IGIodG8pZyh3aG8pcyhldiltKGVyKWYocClzCisob3NzZXNzZXMpZihhKWkoY29wKW0oeSlnKG9mKTMzMCA1MzQwIHkoaXQuKTQxIGIoSW4pMzAKK2IoYWRkaXRpb24sKWgoeSltKG91KWYobSltKHVzdCloKGRvKWYodGhlc2UpaCh0aGluZ3MpZihpbilnKHRoZSloKE1vKXMKKyhkaVwwMTRlZCllKFYpLTggYihlcnNpb246KXAgZW9wIGVuZAorJSVQYWdlOiA2MCA2NAorVGVYRGljdCBiZWdpbiA2MCA2MyBib3AgMTUwIC0xMTYgYSBGdCg2MCkyNjAwIGIoR05VKTMxCitiKFJlYWRsaW5lKWcoTGlicmFyeSkzNTcgMjk5IHkoQS4pNjAgYihVc2UpMzMgYihpbilmKHRoZSloKFRpdGxlKWgoUCltCisoYWdlKWcoXChhbmQpZihvbilmKHRoZSloKGNvKW0odiltKGVycywpaShpZillKGFuKW0oeVwpKWcoYSlnKHRpdGxlKWgKKyhkaXN0aW5jdClmKGZyb20pZyh0aGF0KWcob2YpZyh0aGUpNTEwIDQwOCB5KERvKXMoY3VtZW4pbSh0LClqKGFuZClkCisoZnJvbSlnKHRob3NlKWkob2YpZihwcmV2aW91cylmKHYpbShlcnNpb25zKWgoXCh3aGljKW0oaClnKHNob3VsZCwpZworKGlmKWcodGhlcmUpZyh3KW0oZXJlKWcoYW4pbSh5KS04IGIoLCk1MTAgNTE4IHkoYilzKGUpMzEKK2IobGlzdGVkKWgoaW4pZih0aGUpZyhIaXN0b3J5KWgoc2VjdGlvbilnKG9mKWcodGhlKWYoRG8pcyhjdW1lbiltKHRcKS4pCis0NSBiKFkpLTggYihvdSkzMiBiKG1hKW0oeSlnKHVzZSlmKHRoZSlnKHNhbWUpaCh0aXRsZSloKGFzKTUxMAorNjI4IHkoYSllKHByZXZpb3VzKWYodiltKGVyc2lvbilnKGlmKWgodGhlKWYob3JpZ2luYWwpaShwdWJsaXNoZXIpZChvZikKK2godGhhdCloKHYpbShlcnNpb24pZyhnaXYpbShlcyloKHApcyhlcm1pc3Npb24uKTM2MCA3NTgKK3koQi4pNjEgYihMaXN0KTMxIGIob24pZih0aGUpaChUaXRsZSlnKFApbShhZ2UsKWkoYXMpZChhdXRob3JzLCloKG9uZSlnCisob3IpZihtb3JlKWgocClzKGVyc29ucyllKG9yKWgoZW4pbSh0aXRpZXMpaihyZXNwKXMob25zaWJsZSljKGZvcik1MTAKKzg2NyB5KGF1dGhvcnNoaXApYyhvZiloKHRoZSloKG1vKXMoZGlcMDE0Y2F0aW9ucylmKGluKWcodGhlKWcoTW8pcworKGRpXDAxNGVkKWYoViktOCBiKGVyc2lvbiwpMjggYih0b2dldGhlcilnKHdpdGgpZChhdClpKGxlYXN0KWgoXDAxNHYpbQorKGUpNTEwIDk3NyB5KG9mKWModGhlKWcocHJpbmNpcGFsKWcoYXV0aG9ycylmKG9mKWkodGhlKWYoRG8pcyhjdW1lbiltCisodClnKFwoYWxsKWgob2YpZyhpdHMpZihwcmluY2lwYWwpZyhhdXRob3JzLCloKGlmKWYoaXQpZyhoYXMpZyhmZXcpbQorKGVyKTUxMCAxMDg3IHkodGhhbikzMCBiKFwwMTR2KW0oZVwpLCloKHVubGVzcylmKHRoZXkpaChyZWxlYXNlKWcoeSltCisob3UpZyhmcm9tKWYodGhpcylnKHJlcXVpcmVtZW4pbSh0LikzNTkgMTIxNyB5KEMuKTYwCitiKFN0YXRlKTMyIGIob24pZSh0aGUpaChUaXRsZSloKHBhZ2UpZih0aGUpZyhuYW1lKWcob2YpZyh0aGUpZworKHB1Ymxpc2hlcillKG9mKWkodGhlKWcoTW8pcyhkaVwwMTRlZClmKFYpLTggYihlcnNpb24sKTMyCitiKGFzKWYodGhlKTUxMCAxMzI2IHkocHVibGlzaGVyLikzNTUgMTQ1NiB5KEQuKTYxIGIoUHJlc2VydiltKGUpMzEKK2IoYWxsKWcodGhlKWcoY29wKW0oeXJpZ2gpbSh0KWgobm90aWNlcylmKG9mKWcodGhlKWYoRG8pcyhjdW1lbiltKHQuKQorMzYzIDE1ODcgeShFLik2MCBiKEFkZCkzMCBiKGFuKWkoYXBwcm9wcmlhdGUpZihjb3ApbSh5cmlnaCltKHQpaQorKG5vdGljZSlmKGZvcilnKHkpbShvdXIpZihtbylzKGRpXDAxNGNhdGlvbnMpZyhhZGphY2VuKW0odClpKHRvKWYodGhlKWcKKyhvdGhlcik1MTAgMTY5NiB5KGNvcCltKHlyaWdoKW0odClnKG5vdGljZXMuKTM2NSAxODI2Cit5KEYuKTYxIGIoSW5jbHVkZSwpMjggYihpbW1lZGlhdGVseSloKGFmdGVyKWYodGhlKWgoY29wKW0oeXJpZ2gpbSh0KWcKKyhub3RpY2VzLCloKGEpZShsaWNlbnNlKWgobm90aWNlKWcoZ2l2aW5nKWcodGhlKWYocHVibGljKTUxMAorMTkzNiB5KHApcyhlcm1pc3Npb24pMjMgYih0bylqKHVzZSllKHRoZSlnKE1vKXMoZGlcMDE0ZWQpZyhWKS04CitiKGVyc2lvbikyNSBiKHVuZGVyKWUodGhlKWkodGVybXMpZihvZiloKHRoaXMpZihMaWNlbnNlLClqKGluKWQodGhlKWcKKyhmb3JtKTUxMCAyMDQ1IHkoc2hvKW0od24pMzAgYihpbilnKHRoZSlnKEFkZGVuZHVtKWYoYilzKGVsbyltKHcuKTM1MworMjE3NiB5KEcuKTYxIGIoUHJlc2VydiltKGUpMjMgYihpbilnKHRoYXQpZyhsaWNlbnNlKWgobm90aWNlKWcodGhlKWYKKyhmdWxsKWcobGlzdHMpZyhvZilnKEluKW0odiktNSBiKGFyaWFuKW0odCkyMyBiKFNlY3Rpb25zKWgoYW5kKWUKKyhyZXF1aXJlZClnKENvKW0odiltKGVyKTUxMCAyMjg1IHkoVCktOCBiKGV4dHMpMzEgYihnaXYpbShlbilnKGluKWYKKyh0aGUpaChEbylzKGN1bWVuKW0odCdzKWcobGljZW5zZSloKG5vdGljZS4pMzU3IDI0MTUKK3koSC4pNjAgYihJbmNsdWRlKTMwIGIoYW4pZyh1bmFsdGVyZWQpZyhjb3ApbSh5KWgob2YpZyh0aGlzKWYoTGljZW5zZS4pCiszOTIgMjU0NSB5KEkuKTYwIGIoUHJlc2VydiltKGUpMzMgYih0aGUpZihzZWN0aW9uKWgoRW4pbSh0aXRsZWQpZworKFxcSGlzdG9yeSIsKWgoUHJlc2VydiltKGUpZihpdHMpZihUaXRsZSwpaShhbmQpZChhZGQpaCh0byloKGl0KWYoYW4pZworKGl0ZW0pNTEwIDI2NTUgeShzdGF0aW5nKWQoYXQpZyhsZWFzdClnKHRoZSlnKHRpdGxlLCloKHkpbShlYXIsKWcobmV3KWQKKyhhdXRob3JzLClpKGFuZCllKHB1Ymxpc2hlcilmKG9mKWoodGhlKWYoTW8pcyhkaVwwMTRlZClmKFYpLTgKK2IoZXJzaW9uKTUxMCAyNzY1IHkoYXMpMzIgYihnaXYpbShlbilnKG9uKWYodGhlKWgoVGl0bGUpZyhQKW0oYWdlLik0NQorYihJZikzMSBiKHRoZXJlKWgoaXMpZihubylnKHNlY3Rpb24paShFbiltKHRpdGxlZClmKFxcSGlzdG9yeSIpaChpbillCisodGhlKWcoRG8pcyhjdS0pNTEwIDI4NzQgeShtZW4pbSh0LCkzNyBiKGNyZWF0ZSlmKG9uZSlmKHN0YXRpbmcpaCh0aGUpZgorKHRpdGxlLClpKHkpbShlYXIsKWcoYXV0aG9ycywpZihhbmQpZShwdWJsaXNoZXIpZihvZilpKHRoZSlnKERvKXMKKyhjdW1lbiltKHQpNTEwIDI5ODQgeShhcyloKGdpdiltKGVuKWgob24pZihpdHMpaChUaXRsZSlnKFApbShhZ2UsKWkKKyh0aGVuKWQoYWRkKWcoYW4pZyhpdGVtKWcoZGVzY3JpYmluZylnKHRoZSlnKE1vKXMoZGlcMDE0ZWQpZyhWKS04CitiKGVyc2lvbikzNyBiKGFzKTUxMCAzMDkzIHkoc3RhdGVkKTMxIGIoaW4pZih0aGUpaChwcmV2aW91cylmKHNlbiltCisodGVuY2UuKTM3OCAzMjI0IHkoSi4pNjAgYihQcmVzZXJ2KW0oZSkzMyBiKHRoZSlnKG5ldCltKHcpbShvcmspZyhsbylzCisoY2F0aW9uLClpKGlmKWQoYW4pbSh5KS04IGIoLCkzNCBiKGdpdiltKGVuKWYoaW4pZyh0aGUpZihEbylzKGN1bWVuKW0KKyh0KWgoZm9yKWcocHVibGljKWUoYWNjZXNzKWoodG8pNTEwIDMzMzMgeShhKWUoVCktOCBiKHJhbnNwYXJlbiltKHQpMzAKK2IoY29wKW0oeSlpKG9mKWcodGhlKWYoRG8pcyhjdW1lbiltKHQsKWgoYW5kKWYobGlrKW0oZXdpc2UpaCh0aGUpZyhuZXQpCittKHcpbShvcmspZyhsbylzKGNhdGlvbnMpZyhnaXYpbShlbilnKGluKTUxMCAzNDQzIHkodGhlKWcoRG8pcyhjdW1lbiltCisodClnKGZvcilnKHByZXZpb3VzKWYodiltKGVyc2lvbnMpaChpdClnKHcpbShhcylnKGJhc2VkKWYob24uKTQ1CitiKFRoZXNlKTMxIGIobWEpbSh5KWgoYilzKGUpZihwbGFjZWQpaChpbilnKHRoZSk1MTAgMzU1MgoreShcXEhpc3RvcnkiKTI3IGIoc2VjdGlvbi4pNDAgYihZKS04IGIob3UpMjUgYihtYSltKHkpaChvbWl0KWcoYSlmKG5ldCkKK20odyltKG9yayloKGxvKXMoY2F0aW9uKWcoZm9yKWYoYSloKHcpbShvcmspZih0aGF0KWcodyltKGFzKWgKKyhwdWJsaXNoZWQpNTEwIDM2NjIgeShhdCkzNiBiKGxlYXN0KWgoZm91cillKHkpbShlYXJzKWkoYilzKGVmb3JlKWUKKyh0aGUpaChEbylzKGN1bWVuKW0odCloKGl0c2VsZiwpaChvcilkKGlmKWgodGhlKWcob3JpZ2luYWwpaChwdWJsaXNoZXIpCitkKG9mKWkodGhlKTUxMCAzNzcxIHkodiltKGVyc2lvbikzMSBiKGl0KWcocmVmZXJzKWYodG8paChnaXYpbShlcyloKHApcworKGVybWlzc2lvbi4pMzU0IDM5MDIgeShLLik2MCBiKEYpLTggYihvcikyNCBiKGFuKW0oeSloKHNlY3Rpb24pZihFbiltCisodGl0bGVkKWgoXFxBYyltKGtubyltKHdsZWRnZW1lbiltKHRzIilpKG9yKWQoXFxEZWRpY2F0aW9ucyIsKWsKKyhQcmVzZXJ2KW0oZSljKHRoZSlnKFRpdGxlKTUxMCA0MDExIHkob2Ypaih0aGUpZihzZWN0aW9uLClqKGFuZClkCisocHJlc2VydiltKGUpaChpbilmKHRoZSloKHNlY3Rpb24pZyhhbGwpaCh0aGUpZShzdWJzdGFuY2UpaChhbmQpZih0b25lKQoraChvZilmKGVhYyltKGgpaShvZilmKHRoZSk1MTAgNDEyMSB5KGNvbiltKHRyaWJ1dG9yKWsoYWMpbShrbm8pbQorKHdsZWRnZW1lbiltKHRzKWkoYW5kL29yKWQoZGVkaWNhdGlvbnMpaChnaXYpbShlbiloKHRoZXJlaW4uKTM2OAorNDI1MSB5KEwuKTYwIGIoUHJlc2VydiltKGUpMzYgYihhbGwpZyh0aGUpZyhJbiltKHYpLTUKK2IoYXJpYW4pbSh0KTM2IGIoU2VjdGlvbnMpZyhvZilmKHRoZSloKERvKXMoY3VtZW4pbSh0LCloKHVuYWx0ZXJlZClmCisoaW4pZih0aGVpcilnKHRleHQpaShhbmQpNTEwIDQzNjEgeShpbilmKHRoZWlyKWcodGl0bGVzLik1OAorYihTZWN0aW9uKTM3IGIobiltKHVtKW0oYilzKGVycylkKG9yKWkodGhlKWcoZXF1aXYpLTUKK2IoYWxlbiltKHQpMzggYihhcmUpZShub3QpZyhjb25zaWRlcmVkKWcocGFydClnKG9mKWcodGhlKTUxMAorNDQ3MCB5KHNlY3Rpb24pYyh0aXRsZXMuKTM0MSA0NjAwIHkoTS4pNjEgYihEZWxldGUpMzMKK2IoYW4pbSh5KWUoc2VjdGlvbiloKEVuKW0odGl0bGVkKWYoXFxFbmRvcnNlbWVuKW0odHMiLik0MgorYihTdWMpbShoKTMwIGIoYSlpKHNlY3Rpb24pZihtYSltKHkpaChub3QpZihiKXMoZSlmKGluY2x1ZGVkKTUxMAorNDcxMCB5KGluKWcodGhlKWgoTW8pcyhkaVwwMTRlZCllKFYpLTggYihlcnNpb24uKTM1NworNDg0MCB5KE4uKTYwIGIoRG8pMjkgYihub3QpZyhyZXRpdGxlKWgoYW4pbSh5KWUoZXhpc3RpbmcpaShzZWN0aW9uKWYKKyh0bylnKGIpcyhlKWYoRW4pbSh0aXRsZWQpaChcXEVuZG9yc2VtZW4pbSh0cyIpZyhvcilmKHRvKWgoY29uXDAxNWljdClnCisoaW4pNTEwIDQ5NTAgeSh0aXRsZSlqKHdpdGgpZShhbiltKHkpaChJbiltKHYpLTUgYihhcmlhbiltKHQpMzEKK2IoU2VjdGlvbi4pMzU0IDUwODAgeShPLik2MCBiKFByZXNlcnYpbShlKTMxIGIoYW4pbSh5KWcoVyktOAorYihhcnJhbiltKHQpbSh5KTMyIGIoRGlzY2xhaW1lcnMuKTMzMCA1MjMwIHkoSWYpaCh0aGUpZyhNbylzKGRpXDAxNGVkKWcKKyhWKS04IGIoZXJzaW9uKTM0IGIoaW5jbHVkZXMpZihuZXcpZyhmcm9uKW0odC1tYXR0ZXIpaShzZWN0aW9ucylmKG9yKWYKKyhhcHApcyhlbmRpY2VzKWcodGhhdCloKHF1YWxpZnkpMzMwIDUzNDAgeShhcykyOCBiKFNlY29uZGFyeSlnCisoU2VjdGlvbnMpZyhhbmQpZihjb24pbSh0YWluKWoobm8pZChtYXRlcmlhbClqKGNvcGllZCllKGZyb20pZih0aGUpaAorKERvKXMoY3VtZW4pbSh0LClpKHkpbShvdSllKG1hKW0oeSlnKGF0KXAgZW9wIGVuZAorJSVQYWdlOiA2MSA2NQorVGVYRGljdCBiZWdpbiA2MSA2NCBib3AgMTUwIC0xMTYgYSBGdChBcHApcyhlbmRpeCkyOQorYihBOiloKENvcCltKHlpbmcpaChUaGlzKWYoTWFuKW0odWFsKTIxMDUgYig2MSkzMzAgMjk5Cit5KHkpbShvdXIpMzIgYihvcHRpb24paChkZXNpZ25hdGUpaChzb21lKWUob3IpaChhbGwpZyhvZilmKHRoZXNlKWgKKyhzZWN0aW9ucyloKGFzKWUoaW4pbSh2KS01IGIoYXJpYW4pbSh0Lik0OCBiKFQpLTggYihvKTMzCitiKGRvKWYodGhpcywpaChhZGQpZih0aGVpcikzMzAgNDA4IHkodGl0bGVzKTM3IGIodG8pZih0aGUpZihsaXN0KWgob2YpZworKEluKW0odiktNSBiKGFyaWFuKW0odCkzNiBiKFNlY3Rpb25zKWcoaW4pZih0aGUpaChNbylzKGRpXDAxNGVkKWYoViktOAorYihlcnNpb24ncykzNiBiKGxpY2Vuc2UpZyhub3RpY2UuKTU3IGIoVGhlc2UpMzMwIDUxOAoreSh0aXRsZXMpMzIgYihtKW0odXN0KWUoYilzKGUpZyhkaXN0aW5jdCloKGZyb20pZShhbiltKHkpaShvdGhlcilnCisoc2VjdGlvbilnKHRpdGxlcy4pMzMwIDY1MCB5KFkpLTggYihvdSk0MyBiKG1hKW0oeSlnKGFkZClmKGEpZyhzZWN0aW9uKQoraShFbiltKHRpdGxlZClmKFxcRW5kb3JzZW1lbiltKHRzIiwpaihwcm8pbSh2aWRlZCljKGl0KWgoY29uKW0odGFpbnMpZworKG5vdGhpbmcpZyhidXQpMzMwIDc1OSB5KGVuZG9yc2VtZW4pbSh0cykzMCBiKG9mKWcoeSltKG91cilmKE1vKXMKKyhkaVwwMTRlZClnKFYpLTggYihlcnNpb24pMzEgYihiKW0oeSllKHYpLTUgYihhcmlvdXMpMzAKK2IocGFydGllc3xmb3IpZyhleGFtcGxlLClnKHN0YXRlbWVuKW0odHMpaShvZikzMzAgODY5Cit5KHApcyhlZXIpMjcgYihyZXZpZXcpZyhvcilnKHRoYXQpaCh0aGUpZih0ZXh0KWkoaGFzKWQoYilzKGVlbiloKGFwcHJvKQorbSh2KW0oZWQpZyhiKW0oeSlnKGFuKWgob3JnYW5pemF0aW9uKWgoYXMpZSh0aGUpaChhdXRob3JpdGF0aXYpbShlKTMzMAorOTc4IHkoZGVcMDE0bml0aW9uKWkob2YpaChhKWYoc3RhbmRhcmQuKTMzMCAxMTEwIHkoWSktOAorYihvdSkyOSBiKG1hKW0oeSlnKGFkZCllKGEpaShwYXNzYWdlKWcob2YpZyh1cCllKHRvKWkoXDAxNHYpbShlKWcodyltCisob3JkcyllKGFzKWkoYSlnKEYpLTggYihyb24pbSh0LUNvKW0odiltKGVyKTMwIGIoVCktOAorYihleHQsKTMwIGIoYW5kKWUoYSlnKHBhc3NhZ2UpaShvZillKHVwKTMzMCAxMjE5IHkodG8pZygyNSlnKHcpbShvcmRzKWUKKyhhcylpKGEpZihCYWMpbShrLUNvKW0odiltKGVyKWooVCktOCBiKGV4dCwpMjkgYih0bylmKHRoZSlmKGVuZClmKG9mKWkKKyh0aGUpZihsaXN0KWgob2YpZihDbyltKHYpbShlciloKFQpLTggYihleHRzKTI3IGIoaW4pZyh0aGUpaChNbylzCisoZGlcMDE0ZWQpMzMwIDEzMjkgeShWKS04IGIoZXJzaW9uLik1OCBiKE9ubHkpMzUgYihvbmUpaChwYXNzYWdlKWgob2YpZgorKEYpLTggYihyb24pbSh0LUNvKW0odiltKGVyKTM4IGIoVCktOCBiKGV4dCkzNiBiKGFuZClnKG9uZSlnKG9mKWcoQmFjKW0KKyhrLUNvKW0odiltKGVyKWooVCktOCBiKGV4dCkzNiBiKG1hKW0oeSloKGIpcyhlKTMzMCAxNDM5Cit5KGFkZGVkKTI3IGIoYiltKHkpZyhcKG9yKWgodGhyb3VnaClmKGFycmFuZ2VtZW4pbSh0cyloKG1hZGUpZyhiKW0oeVwpKQorZyhhbiltKHkpZyhvbmUpZihlbiltKHRpdCltKHkpLTggYiguKTQyIGIoSWYpMjcgYih0aGUpaChEbylzKGN1bWVuKW0odCkKK2coYWxyZWFkeSkzMzAgMTU0OCB5KGluY2x1ZGVzKTM0IGIoYSlnKGNvKW0odiltKGVyKWgodGV4dClnKGZvcilmKHRoZSlnCisoc2FtZSloKGNvKW0odiltKGVyLCloKHByZXZpb3VzbHkpZShhZGRlZClmKGIpbSh5KWgoeSltKG91KWcob3IpZyhiKW0KKyh5KWcoYXJyYW5nZW1lbiltKHQpMzMwIDE2NTggeShtYWRlKWgoYiltKHkpZyh0aGUpaChzYW1lKWYoZW4pbSh0aXQpbQorKHkpaSh5KW0ob3UpZihhcmUpZihhY3RpbmcpaShvbillKGIpcyhlaGFsZilmKG9mLClqKHkpbShvdSlmKG1hKW0oeSlnCisobm90KWYoYWRkKWcoYW5vdGhlcjspaihidXQpMzMwIDE3NjcgeSh5KW0ob3UpYyhtYSltKHkpaChyZXBsYWNlKWcodGhlKQorZihvbGQpZyhvbmUsKWkob24pZShleHBsaWNpdCloKHApcyhlcm1pc3Npb24pZShmcm9tKWcodGhlKWkocHJldmlvdXMpZQorKHB1Ymxpc2hlcilmKHRoYXQpMzMwIDE4NzcgeShhZGRlZCllKHRoZSlnKG9sZCloKG9uZS4pMzMwCisyMDA4IHkoVGhlKTI1IGIoYXV0aG9yXChzXCkpaChhbmQpZihwdWJsaXNoZXJcKHNcKSlmKG9mKWkodGhlKWYoRG8pcworKGN1bWVuKW0odCloKGRvKWcobm90KWYoYiltKHkpaCh0aGlzKWYoTGljZW5zZSloKGdpdiltKGUpaChwKXMKKyhlcm1pc3Npb24pMzMwIDIxMTggeSh0bylrKHVzZSlmKHRoZWlyKWcobmFtZXMpaChmb3IpZihwdWJsaWNpdCltKHkpZworKGZvciloKG9yKWYodG8paChhc3NlcnQpZyhvcilmKGltcGx5KWcoZW5kb3JzZW1lbiltKHQpZyhvZiloKGFuKW0oeSlnCisoTW8pcyhkaVwwMTRlZCkzMzAgMjIyOCB5KFYpLTggYihlcnNpb24uKTE5OSAyMzU5IHkoNS4pNjEKK2IoQ09NQklOSU5HKTMxIGIoRE9DVU1FTlRTKTMzMCAyNDkxIHkoWSktOCBiKG91KTM5IGIobWEpbSh5KWcoY29tKW0KKyhiaW5lKWgodGhlKWYoRG8pcyhjdW1lbiltKHQpZyh3aXRoKWcob3RoZXIpZihkbylzKGN1bWVuKW0odHMpaAorKHJlbGVhc2VkKWcodW5kZXIpZih0aGlzKWcoTGljZW5zZSwpMzMwIDI2MDAgeSh1bmRlcilmKHRoZSloKHRlcm1zKWcKKyhkZVwwMTRuZWQpZihpbiloKHNlY3Rpb24paCg0KWcoYWIpcyhvKW0odiltKGUpZyhmb3IpZihtbylzKGRpXDAxNGVkKWYKKyh2KW0oZXJzaW9ucywpayhwcm8pbSh2aWRlZClkKHRoYXQpaCh5KW0ob3UpMzMwIDI3MTAKK3koaW5jbHVkZSkyNSBiKGluKWcodGhlKWcoY29tKW0oYmluYXRpb24paShhbGwpZihvZilnKHRoZSlmKEluKW0odiktNQorYihhcmlhbiltKHQpMjYgYihTZWN0aW9ucylnKG9mKWcoYWxsKWcob2YpZih0aGUpaChvcmlnaW5hbClnKGRvKXMKKyhjdW1lbiltKHRzLCkzMzAgMjgxOSB5KHVubW8pcyhkaVwwMTRlZCwpZyhhbmQpZyhsaXN0KWgodGhlbSlnKGFsbClnCisoYXMpZyhJbiltKHYpLTUgYihhcmlhbiltKHQpMjggYihTZWN0aW9ucylmKG9mKWcoeSltKG91cilnKGNvbSltKGJpbmVkKQorZyh3KW0ob3JrKWYoaW4paChpdHMpZyhsaWNlbnNlKTMzMCAyOTI5IHkobm90aWNlLCkzMgorYihhbmQpZSh0aGF0KWgoeSltKG91KWYocHJlc2VydiltKGUpaChhbGwpZyh0aGVpcilnKFcpLTgKK2IoYXJyYW4pbSh0KW0oeSkzMiBiKERpc2NsYWltZXJzLikzMzAgMzA2MSB5KFRoZSllKGNvbSltKGJpbmVkKWcodyltCisob3JrKWgobmVlZCllKG9ubHkpaShjb24pbSh0YWluKWcob25lKWcoY29wKW0oeSlnKG9mKWYodGhpcylnKExpY2Vuc2UsKQoraShhbmQpZChtKW0odWx0aXBsZSlpKGlkZW4pbSh0aWNhbCkzMzAgMzE3MCB5KEluKW0odiktNQorYihhcmlhbiltKHQpMzMgYihTZWN0aW9ucylnKG1hKW0oeSlnKGIpcyhlKWYocmVwbGFjZWQpaCh3aXRoKWYoYSloCisoc2luZ2xlKWcoY29wKW0oeSktOCBiKC4pNDggYihJZikzMiBiKHRoZXJlKWgoYXJlKWcobSltKHVsdGlwbGUpZyhJbiltCisodiktNSBiKGFyaWFuKW0odCkzMzAgMzI4MCB5KFNlY3Rpb25zKTI3IGIod2l0aClnKHRoZSlnKHNhbWUpZyhuYW1lKWcKKyhidXQpZihkaVwwMTNlcmVuKW0odCloKGNvbiltKHRlbiltKHRzLClpKG1hayltKGUpZih0aGUpZih0aXRsZSloKG9mKWYKKyhlYWMpbShoKWgoc3VjKW0oaClmKHNlY3Rpb24pMzMwIDMzODkgeSh1bmlxdWUpMzMgYihiKW0oeSloKGFkZGluZylmCisoYXQpaSh0aGUpZihlbmQpZyhvZilnKGl0LCloKGluKWYocGFyZW4pbSh0aGVzZXMsKWkodGhlKWUobmFtZSlnKG9mKWcKKyh0aGUpZyhvcmlnaW5hbCloKGF1dGhvcilmKG9yKTMzMCAzNDk5IHkocHVibGlzaGVyKTIzCitiKG9mKWkodGhhdCloKHNlY3Rpb24pZyhpZilmKGtubyltKHduLCloKG9yKWYoZWxzZSloKGEpZih1bmlxdWUpZihuKW0KKyh1bSltKGIpcyhlci4pMzggYihNYWspbShlKTI2IGIodGhlKWcoc2FtZSlmKGFkanVzdG1lbiltKHQpMzMwCiszNjA4IHkodG8pZyh0aGUpZyhzZWN0aW9uKWcodGl0bGVzKWgoaW4pZSh0aGUpaChsaXN0KWcob2YpZihJbiltKHYpLTUKK2IoYXJpYW4pbSh0KTI2IGIoU2VjdGlvbnMpZihpbilmKHRoZSlnKGxpY2Vuc2UpaShub3RpY2UpZyhvZillKHRoZSloCisoY29tKW0oYmluZWQpMzMwIDM3MTggeSh3KW0ob3JrLikzMzAgMzg1MCB5KEluKTQxIGIodGhlKWcoY29tKW0KKyhiaW5hdGlvbiwpNDYgYih5KW0ob3UpNDEgYihtKW0odXN0KWcoY29tKW0oYmluZSloKGFuKW0oeSlnKHNlY3Rpb25zKWcKKyhFbiltKHRpdGxlZClnKFxcSGlzdG9yeSIpaChpbillKHRoZSlnKHYpLTUgYihhcmktKTMzMAorMzk1OSB5KG91cykzMiBiKG9yaWdpbmFsKWgoZG8pcyhjdW1lbiltKHRzLClnKGZvcm1pbmcpZihvbmUpZyhzZWN0aW9uKWgKKyhFbiltKHRpdGxlZClnKFxcSGlzdG9yeSI7KWkobGlrKW0oZXdpc2UpZihjb20pbShiaW5lKWYoYW4pbSh5KTMzMAorNDA2OSB5KHNlY3Rpb25zKWcoRW4pbSh0aXRsZWQpZihcXEFjKW0oa25vKW0od2xlZGdlbWVuKW0odHMiLClrKGFuZCkzMQorYihhbiltKHkpaChzZWN0aW9ucyloKEVuKW0odGl0bGVkKWcoXFxEZWRpY2F0aW9ucyIuKTQ3CitiKFkpLTggYihvdSkzMzAgNDE3OCB5KG0pbSh1c3QpMzAgYihkZWxldGUpaShhbGwpZihzZWN0aW9ucyloKEVuKW0KKyh0aXRsZWQpZihcXEVuZG9yc2VtZW4pbSh0cy4iKTE5OSA0MzEwIHkoNi4pNjEgYihDT0xMRUNUSU9OUykyOAorYihPRilpKERPQ1VNRU5UUykzMzAgNDQ0MSB5KFkpLTggYihvdSkzMiBiKG1hKW0oeSloKG1hayltKGUpZyhhKWYKKyhjb2xsZWN0aW9uKWkoY29uc2lzdGluZylmKG9mKWYodGhlKWcoRG8pcyhjdW1lbiltKHQpZyhhbmQpZyhvdGhlcilnCisoZG8pcyhjdW1lbiltKHRzKWYocmVsZWFzZWQpMzMwIDQ1NTEgeSh1bmRlcik0MSBiKHRoaXMpaChMaWNlbnNlLClrCisoYW5kKWMocmVwbGFjZSloKHRoZSlnKGluZGl2aWR1YWwpZihjb3BpZXMpaChvZilmKHRoaXMpZyhMaWNlbnNlKWgoaW4pZgorKHRoZSloKHYpLTUgYihhcmlvdXMpMzMwIDQ2NjEgeShkbylzKGN1bWVuKW0odHMpNDIgYih3aXRoKWcoYSloKHNpbmdsZSkKK2coY29wKW0oeSloKHRoYXQpZihpcylmKGluY2x1ZGVkKWcoaW4pZyh0aGUpaChjb2xsZWN0aW9uLCk0OAorYihwcm8pbSh2aWRlZCk0MiBiKHRoYXQpaSh5KW0ob3UpMzMwIDQ3NzAgeShmb2xsbyltKHcpMzgKK2IodGhlKWcocnVsZXMpZShvZiloKHRoaXMpZyhMaWNlbnNlKWgoZm9yKWYodiltKGVyYmF0aW0paChjb3ApbSh5aW5nKWcKKyhvZilmKGVhYyltKGgpaChvZilmKHRoZSloKGRvKXMoY3VtZW4pbSh0cyllKGluKWgoYWxsKTMzMAorNDg4MCB5KG90aGVyKTMxIGIocmVzcClzKGVjdHMuKTMzMCA1MDExIHkoWSktOCBiKG91KTMyCitiKG1hKW0oeSlnKGV4dHJhY3QpaChhKWYoc2luZ2xlKWcoZG8pcyhjdW1lbiltKHQpZihmcm9tKWcoc3VjKW0oaClnKGEpaAorKGNvbGxlY3Rpb24sKWkoYW5kKWQoZGlzdHJpYnV0ZSlnKGl0KWgoaW5kaXZpZHUtKTMzMAorNTEyMSB5KGFsbHkpayh1bmRlcilkKHRoaXMpaShMaWNlbnNlLClpKHBybyltKHZpZGVkKWUoeSltKG91KWcoaW5zZXJ0KWcKKyhhKWcoY29wKW0oeSloKG9mKWYodGhpcylnKExpY2Vuc2UpZyhpbiltKHRvKWgodGhlKWcoZXh0cmFjdGVkKTMzMAorNTIzMCB5KGRvKXMoY3VtZW4pbSh0LClkKGFuZClmKGZvbGxvKW0odylpKHRoaXMpZShMaWNlbnNlKWgoaW4pZyhhbGwpZworKG90aGVyKWcocmVzcClzKGVjdHMpZihyZWdhcmRpbmcpaCh2KW0oZXJiYXRpbSlnKGNvcCltKHlpbmcpaChvZikzMzAKKzUzNDAgeSh0aGF0KWQoZG8pcyhjdW1lbiltKHQuKXAgZW9wIGVuZAorJSVQYWdlOiA2MiA2NgorVGVYRGljdCBiZWdpbiA2MiA2NSBib3AgMTUwIC0xMTYgYSBGdCg2MikyNjAwIGIoR05VKTMxCitiKFJlYWRsaW5lKWcoTGlicmFyeSkxOTkgMjk5IHkoNy4pNjEgYihBKW0oR0dSRUdBKS04CitiKFRJT04pMzIgYihXSVRIKWUoSU5ERVBFTkRFTlQpaChXKW0oT1JLUykzMzAgNDI4IHkoQSlkKGNvbXBpbGF0aW9uKWkKKyhvZillKHRoZSlnKERvKXMoY3VtZW4pbSh0KWgob3IpZihpdHMpZyhkZXJpdiktNSBiKGF0aXYpbShlcykzMAorYih3aXRoKWQob3RoZXIpaShzZXBhcmF0ZSlnKGFuZCllKGluZGVwKXMoZW5kZW4pbSh0KTMzMAorNTM4IHkoZG8pcyhjdW1lbiltKHRzKTMzIGIob3IpZyh3KW0ob3JrcywpaChpbilmKG9yKWgob24pZihhKWcodiltCisob2x1bWUpaChvZilnKGEpZihzdG9yYWdlKWkob3IpZShkaXN0cmlidXRpb24pZyhtZWRpdW0sKWcoaXMpaChjYWxsZWQpCiszMzAgNjQ4IHkoYW4pYyhcXGFnZ3JlZ2F0ZSIpayhpZiljKHRoZSlnKGNvcCltKHlyaWdoKW0odClpKHJlc3VsdGluZyllCisoZnJvbSlmKHRoZSlpKGNvbXBpbGF0aW9uKWcoaXMpZihub3QpaCh1c2VkKWUodG8paShsaW1pdClnKHRoZSkzMzAKKzc1NyB5KGxlZ2FsKWQocmlnaCltKHRzKWYob2YpZyh0aGUpZyhjb21waWxhdGlvbidzKWgodXNlcnMpZShiKXMoZXkpbQorKG9uZClnKHdoYXQpZyh0aGUpaChpbmRpdmlkdWFsKWYodyltKG9ya3MpZyhwKXMoZXJtaXQuKTM5CitiKFdoZW4pMzMwIDg2NyB5KHRoZSkyOCBiKERvKXMoY3VtZW4pbSh0KWcoaXMpZyhpbmNsdWRlZClmKGFuKWcKKyhhZ2dyZWdhdGUsKTMyIGIodGhpcykyNyBiKExpY2Vuc2UpaChkbylzKGVzKWcobm90KWcoYXBwbHkpZih0byloKHRoZSlnCisob3RoZXIpZyh3KW0ob3JrcykzMzAgOTc2IHkoaW4paSh0aGUpaChhZ2dyZWdhdGUpaSh3aGljKW0oaClkKGFyZSloCisobm90KWYodGhlbXNlbHYpbShlcylpKGRlcml2KS01IGIoYXRpdiltKGUpMzIgYih3KW0ob3JrcyllKG9mKWgodGhlKWYKKyhEbylzKGN1bWVuKW0odC4pMzMwIDExMDYgeShJZikyMiBiKHRoZSloKENvKW0odiltKGVyKWgoVCktOAorYihleHQpMjMgYihyZXF1aXJlbWVuKW0odClnKG9mKWcoc2VjdGlvbiloKDMpZihpcylnKGFwcGxpY2FibGUpaCh0bylmCisodGhlc2UpaChjb3BpZXMpZihvZilnKHRoZSlnKERvKXMoY3VtZW4pbSh0LCkzMzAgMTIxNQoreSh0aGVuKWYoaWYpZyh0aGUpaChEbylzKGN1bWVuKW0odClnKGlzKWcobGVzcylmKHRoYW4pZyhvbmUpaChoYWxmKWYKKyhvZiloKHRoZSlnKGVuKW0odGlyZSlnKGFnZ3JlZ2F0ZSwpayh0aGUpYyhEbylzKGN1bWVuKW0odCdzKWcoQ28pbSh2KW0KKyhlcikzMzAgMTMyNSB5KFQpLTggYihleHRzKTI3IGIobWEpbSh5KWcoYilzKGUpZihwbGFjZWQpaChvbilnKGNvKW0odiltCisoZXJzKWgodGhhdClmKGJyYWMpbShrKW0oZXQpaCh0aGUpZihEbylzKGN1bWVuKW0odClnKHdpdGhpbilmKHRoZSloCisoYWdncmVnYXRlLClqKG9yKWQodGhlKTMzMCAxNDM1IHkoZWxlY3Ryb25pYykzNyBiKGVxdWl2KS01CitiKGFsZW4pbSh0KTM2IGIob2YpZyhjbyltKHYpbShlcnMpZyhpZilmKHRoZSlnKERvKXMoY3VtZW4pbSh0KWgoaXMpZgorKGluKWcoZWxlY3Ryb25pYylpKGZvcm0uKTU0IGIoT3RoZXJ3aXNlKTM1IGIodGhleSkzMzAKKzE1NDQgeShtKW0odXN0KTMwIGIoYXBwKXMoZWFyKWcob24pZyhwcmluKW0odGVkKWcoY28pbSh2KW0oZXJzKWkodGhhdClmCisoYnJhYyltKGspbShldCloKHRoZSlmKHdob2xlKWYoYWdncmVnYXRlLikxOTkgMTY3NCB5KDguKTYxCitiKFRSQU5TTEEpLTggYihUSU9OKTMzMCAxODAzIHkoVClnKHJhbnNsYXRpb24pNDEgYihpcylmKGNvbnNpZGVyZWQpZihhKQoraShraW5kKWUob2YpaChtbylzKGRpXDAxNGNhdGlvbiwpaihzbylkKHkpbShvdSlnKG1hKW0oeSloKGRpc3RyaWJ1dGUpZQorKHRyYW5zbGF0aW9ucykzMzAgMTkxMyB5KG9mKTQ1IGIodGhlKWYoRG8pcyhjdW1lbiltKHQpaCh1bmRlcillKHRoZSloCisodGVybXMpaChvZilmKHNlY3Rpb24paSg0Lik4MyBiKFJlcGxhY2luZyk0NSBiKEluKW0odiktNQorYihhcmlhbiltKHQpNDUgYihTZWN0aW9ucylnKHdpdGgpMzMwIDIwMjIgeSh0cmFuc2xhdGlvbnMpaChyZXF1aXJlcylmCisoc3ApcyhlY2lhbCloKHApcyhlcm1pc3Npb24pZihmcm9tKWcodGhlaXIpZyhjb3ApbSh5cmlnaCltKHQpaQorKGhvbGRlcnMsKWkoYnV0KWMoeSltKG91KWcobWEpbSh5KTMzMCAyMTMyIHkoaW5jbHVkZSkyNAorYih0cmFuc2xhdGlvbnMpaShvZillKHNvbWUpaChvcilnKGFsbClnKEluKW0odiktNSBiKGFyaWFuKW0odCkyNQorYihTZWN0aW9ucylnKGluKWYoYWRkaXRpb24paCh0bylnKHRoZSlnKG9yaWdpbmFsKWgodiltKGVyc2lvbnMpMzMwCisyMjQyIHkob2YpMzIgYih0aGVzZSlmKEluKW0odiktNSBiKGFyaWFuKW0odCkzMyBiKFNlY3Rpb25zLik0NAorYihZKS04IGIob3UpMzIgYihtYSltKHkpZyhpbmNsdWRlKWYoYSloKHRyYW5zbGF0aW9uKWcob2YpZyh0aGlzKWYKKyhMaWNlbnNlLClpKGFuZClkKGFsbClqKHRoZSkzMzAgMjM1MSB5KGxpY2Vuc2UpNDIgYihub3RpY2VzKWcoaW4pZih0aGUpCitoKERvKXMoY3VtZW4pbSh0LClqKGFuZCk0MCBiKGFuKW0oeSlpKFcpLTggYihhcnJhbiltKHQpbSh5KTQyCitiKERpc2NsYWltZXJzLClrKHBybyltKHZpZGVkKTQxIGIodGhhdCloKHkpbShvdSkzMzAgMjQ2MQoreShhbHNvKWYoaW5jbHVkZSlmKHRoZSlnKG9yaWdpbmFsKWgoRW5nbGlzaClmKHYpbShlcnNpb24pZyhvZilnKHRoaXMpZworKExpY2Vuc2UpaChhbmQpZSh0aGUpaChvcmlnaW5hbCloKHYpbShlcnNpb25zKWcob2YpMzMwCisyNTcwIHkodGhvc2UpMzUgYihub3RpY2VzKWcoYW5kKWUoZGlzY2xhaW1lcnMuKTUzIGIoSW4pMzMKK2IoY2FzZSlpKG9mKWcoYSlmKGRpc2FncmVlbWVuKW0odCloKGIpcyhldCltKHcpbShlZW4pZyh0aGUpZgorKHRyYW5zbGF0aW9uKWkoYW5kKTMzMCAyNjgwIHkodGhlKWYob3JpZ2luYWwpaSh2KW0oZXJzaW9uKWUob2YpaCh0aGlzKWYKKyhMaWNlbnNlKWgob3IpZihhKWcobm90aWNlKWkob3IpZShkaXNjbGFpbWVyLClpKHRoZSlmKG9yaWdpbmFsKWcodiltCisoZXJzaW9uKWcod2lsbCkzMzAgMjc5MCB5KHByZXYpLTUgYihhaWwuKTMzMCAyOTE5IHkoSWYpMjgKK2IoYSloKHNlY3Rpb24paChpbillKHRoZSloKERvKXMoY3VtZW4pbSh0KWgoaXMpZShFbiltKHRpdGxlZClpKFxcQWMpbQorKGtubyltKHdsZWRnZW1lbiltKHRzIiwpaShcXERlZGljYXRpb25zIiwpZyhvcilkKFxcSGlzLSkzMzAKKzMwMjkgeSh0b3J5IiwpZih0aGUpZihyZXF1aXJlbWVuKW0odClmKFwoc2VjdGlvbilpKDRcKSlmKHRvKWcoUHJlc2VydiltCisoZSlnKGl0cylmKFRpdGxlKWkoXChzZWN0aW9uKWYoMVwpKWcod2lsbClnKHQpbSh5cGljYWxseSloKHJlcXVpcmUpMzMwCiszMTM4IHkoYyltKGhhbmdpbmcpaih0aGUpZyhhY3R1YWwpaCh0aXRsZS4pMTk5IDMyNjggeSg5Lik2MQorYihURVJNSU5BKS04IGIoVElPTikzMzAgMzM5NyB5KFkpZyhvdSkzMCBiKG1hKW0oeSloKG5vdClmKGNvcCltKHkpLTgKK2IoLCkzMSBiKG1vKXMoZGlmeSktOCBiKCwpMzAgYihzdWJsaWNlbnNlLClnKG9yKWcoZGlzdHJpYnV0ZSlmKHRoZSloCisoRG8pcyhjdW1lbiltKHQpZyhleGNlcHQpaChhcylmKGV4cHJlc3NseSkzMzAgMzUwNyB5KHBybyltKHZpZGVkKTQxCitiKGZvciloKHVuZGVyKWUodGhpcylpKExpY2Vuc2UuKTc1IGIoQW4pbSh5KTQyIGIob3RoZXIpZyhhdHRlbXB0KWgodG8pZworKGNvcCltKHkpLTggYigsKTQ2IGIobW8pcyhkaWZ5KS04IGIoLCk0NCBiKHN1YmxpY2Vuc2UpZShvcikzMzAKKzM2MTYgeShkaXN0cmlidXRlKTM2IGIodGhlKWgoRG8pcyhjdW1lbiltKHQpZyhpcylnKHYpbShvaWQsKWkoYW5kKWQKKyh3aWxsKWgoYXV0b21hdGljYWxseSlpKHRlcm1pbmF0ZSlmKHkpbShvdXIpZShyaWdoKW0odHMpaCh1bmRlcikzMzAKKzM3MjYgeSh0aGlzKTI4IGIoTGljZW5zZS4pNDAgYihIbyltKHcpbShldiltKGVyLCkzMSBiKHBhcnRpZXMpZCh3aG8pZgorKGhhKW0odiltKGUpaShyZWNlaXYpbShlZClnKGNvcGllcywpaChvcilkKHJpZ2gpbSh0cywpaShmcm9tKWYoeSltKG91KWcKKyh1bmRlcillKHRoaXMpMzMwIDM4MzYgeShMaWNlbnNlKTM3IGIod2lsbClnKG5vdClnKGhhKW0odiltKGUpaCh0aGVpcilmCisobGljZW5zZXMpZyh0ZXJtaW5hdGVkKWgoc28pZihsb25nKWcoYXMpZyhzdWMpbShoKWYocGFydGllcyloKHJlbWFpbilnCisoaW4pZihmdWxsKTMzMCAzOTQ1IHkoY29tcGxpYW5jZS4pMTU0IDQwNzUgeSgxMC4pNjEgYihGVVRVUkUpMzAKK2IoUkVWSVNJT05TKWYoT0YpaShUSElTKWUoTElDRU5TRSkzMzAgNDIwNCB5KFRoZSk0MSBiKEYpLTgKK2IocmVlKTQzIGIoU29mdCltKHcpbShhcmUpZihGKS04IGIob3VuZGF0aW9uKTQzIGIobWEpbSh5KWYocHVibGlzaCllCisobmV3LClrKHJldmlzZWQpZCh2KW0oZXJzaW9ucyloKG9mKWcodGhlKWcoR05VKWcoRiktOAorYihyZWUpMzMwIDQzMTQgeShEbylzKGN1bWVuKW0odGF0aW9uKTM0IGIoTGljZW5zZSllKGZyb20pZyh0aW1lKWgodG8pZworKHRpbWUuKTQ2IGIoU3VjKW0oaCkzMSBiKG5ldyloKHYpbShlcnNpb25zKWcod2lsbCloKGIpcyhlKWUoc2ltaWxhciloCisoaW4pZyhzcGlyaXQpMzMwIDQ0MjMgeSh0bylqKHRoZSlnKHByZXNlbiltKHQpZih2KW0oZXJzaW9uLClpKGJ1dCllKG1hKQorbSh5KWgoZGlcMDEzZXIpZihpbilnKGRldGFpbCloKHRvKWcoYWRkcmVzcylmKG5ldylnKHByb2JsZW1zKWYob3IpaQorKGNvbmNlcm5zLikzMzAgNDUzMyB5KFNlZSljIEZzKGh0dHA6Ly93d3cuZ251Lm9yZy9jb3B5KW8obGVmdClvKC8pcAorRnQoLikzMzAgNDY2MyB5KEVhYyltKGgpZih2KW0oZXJzaW9uKWcob2YpZyh0aGUpZihMaWNlbnNlKWgoaXMpZyhnaXYpbQorKGVuKWcoYSlnKGRpc3Rpbmd1aXNoaW5nKWYodiltKGVyc2lvbiloKG4pbSh1bSltKGIpcyhlci4pMzkKK2IoSWYpMjkgYih0aGUpZyhEbylzKGN1bWVuKW0odCkzMzAgNDc3MiB5KHNwKXMoZWNpXDAxNGVzKTQ1CitiKHRoYXQpaChhKWcocGFydGljdWxhcilmKG4pbSh1bSltKGIpcyhlcmVkKWYodiltKGVyc2lvbilpKG9mKWYodGhpcylnCisoTGljZW5zZSloKFxcb3IpZyhhbiltKHkpZyhsYXRlcilnKHYpbShlcnNpb24iKTMzMCA0ODgyCit5KGFwcGxpZXMpMzMgYih0bylnKGl0LCloKHkpbShvdSllKGhhKW0odiltKGUpaSh0aGUpZihvcHRpb24pZyhvZilmCisoZm9sbG8pbSh3aW5nKWkodGhlKWYodGVybXMpZihhbmQpZyhjb25kaXRpb25zKWgoZWl0aGVyKWcob2YpZih0aGF0KTMzMAorNDk5MSB5KHNwKXMoZWNpXDAxNGVkKTM3IGIodiltKGVyc2lvbilpKG9yKWUob2YpaChhbiltKHkpaChsYXRlcilnKHYpbQorKGVyc2lvbilmKHRoYXQpZyhoYXMpZyhiKXMoZWVuKWYocHVibGlzaGVkKWYoXChub3QpaihhcylmKGEpZyhkcmFmdFwpKWcKKyhiKW0oeSkzMzAgNTEwMSB5KHRoZSkzMyBiKEYpLTggYihyZWUpMzQgYihTb2Z0KW0odyltKGFyZSlmKEYpLTgKK2Iob3VuZGF0aW9uLik0OSBiKElmKTMyIGIodGhlKWgoRG8pcyhjdW1lbiltKHQpZyhkbylzKGVzKWcobm90KWcoc3ApcworKGVjaWZ5KWYoYSloKHYpbShlcnNpb24pZyhuKW0odW0pbShiKXMoZXIpZihvZikzMzAgNTIxMAoreSh0aGlzKWkoTGljZW5zZSwpaih5KW0ob3UpZChtYSltKHkpaShjKW0oaG8pcyhvc2UpZihhbiltKHkpZyh2KW0KKyhlcnNpb24pZyhldiltKGVyKWcocHVibGlzaGVkKWUoXChub3QpaShhcylnKGEpZihkcmFmdFwpKWgoYiltKHkpZih0aGUpCitoKEYpLTggYihyZWUpMzMwIDUzMjAgeShTb2Z0KW0odyltKGFyZSkzMSBiKEYpLTggYihvdW5kYXRpb24uKXAKK2VvcCBlbmQKKyUlUGFnZTogNjMgNjcKK1RlWERpY3QgYmVnaW4gNjMgNjYgYm9wIDE1MCAtMTE2IGEgRnQoQXBwKXMoZW5kaXgpMjkKK2IoQTopaChDb3ApbSh5aW5nKWgoVGhpcylmKE1hbiltKHVhbCkyMTA1IGIoNjMpMTUwIDI5OQoreSBGaChBLjEuMSk2MiBiKEFEREVORFVNOik0MSBiKEhvKW0odylnKHRvKWcodXNlKWcodGhpcylnKExpY2Vuc2UpZworKGZvciloKHkpbShvdXIpZihkbylzKGN1bWVuKW0odHMpMjc1IDU0MyB5IEZ0KFQpLTggYihvKTI3CitiKHVzZSlnKHRoaXMpZyhMaWNlbnNlKWgoaW4pZihhKWgoZG8pcyhjdW1lbiltKHQpZih5KW0ob3UpaChoYSltKHYpbShlKQorZyh3cml0dGVuLClnKGluY2x1ZGUpZihhKWgoY29wKW0oeSlnKG9mKWYodGhlKWgoTGljZW5zZSlnKGluKWYodGhlKTE1MAorNjUzIHkoZG8pcyhjdW1lbiltKHQpaihhbmQpZyhwdXQpZyh0aGUpZyhmb2xsbyltKHdpbmcpaShjb3ApbSh5cmlnaCltCisodClnKGFuZCllKGxpY2Vuc2UpaChub3RpY2VzKWcoanVzdClmKGFmdGVyKWgodGhlKWcodGl0bGUpaChwYWdlOik0NjgKKzc2NSB5IEZkKENvcHlyaWdodCk0MiBiKFwoQ1wpKTc5IGIgRmMoeWVhcik4OCBiKHlvdXIpNDAKK2IobmFtZSlwIEZkKC4pNDY4IDg1MiB5KFBlcm1pc3Npb24paShpcyllKGdyYW50ZWQpZyh0bylnKGNvcHksKWgKKyhkaXN0cmlidXRlKWcoYW5kL29yKWcobW9kaWZ5KWYodGhpcylnKGRvY3VtZW50KTQ2OCA5MzkKK3kodW5kZXIpaCh0aGUpZih0ZXJtcylnKG9mKWcodGhlKWcoR05VKWcoRnJlZSlnKERvY3VtZW50YXRpb24paQorKExpY2Vuc2UsKWYoVmVyc2lvbilnKDEuMik0NjggMTAyNiB5KG9yKWYoYW55KWcobGF0ZXIpZyh2ZXJzaW9uKWgKKyhwdWJsaXNoZWQpaChieSlkKHRoZSloKEZyZWUpZyhTb2Z0d2FyZSloKEZvdW5kYXRpb247KTQ2OAorMTExMyB5KHdpdGgpZyhubyllKEludmFyaWFudClqKFNlY3Rpb25zLClmKG5vKWYoRnJvbnQtQ292ZXIpaChUZXh0cywpZworKGFuZClmKG5vKWYoQmFjay1Db3ZlcilqKFRleHRzLik0NjggMTIwMCB5KEEpZShjb3B5KWcob2YpZyh0aGUpZworKGxpY2Vuc2UpZyhpcylnKGluY2x1ZGVkKWgoaW4pZih0aGUpZyhzZWN0aW9uKWgoZW50aXRsZWQpZyhgYEdOVSk0NjgKKzEyODggeShGcmVlKWcoRG9jdW1lbnRhdGlvbiloKExpY2Vuc2UnJy4pMjc1IDE0MTAgeSBGdChJZilkKHkpbShvdSloCisoaGEpbSh2KW0oZSloKEluKW0odiktNSBiKGFyaWFuKW0odCk0MSBiKFNlY3Rpb25zLClpKEYpLTgKK2Iocm9uKW0odC1DbyltKHYpbShlcik0MiBiKFQpLTggYihleHRzKTQxIGIoYW5kKWUoQmFjKW0oay1DbyltKHYpbShlcilrCisoVCktOCBiKGV4dHMsKTQzIGIocmVwbGFjZSllKHRoZSkxNTAgMTUyMCB5KFxcd2l0aC4uLlQpLTgKK2IoZXh0cy4iKTQzIGIobGluZSkzMCBiKHdpdGgpaCh0aGlzOik1NDcgMTYzMiB5IEZkKHdpdGgpNDAKK2IodGhlKWcoSW52YXJpYW50KWgoU2VjdGlvbnMpZyhiZWluZylnIEZjKGxpc3QpZih0aGVpcilnKHRpdGxlcylwCitGZCgsKWgod2l0aCk1NDcgMTcxOSB5KHRoZSlmKEZyb250LUNvdmVyKWkoVGV4dHMpZShiZWluZylnCitGYyhsaXN0KXAgRmQoLCloKGFuZClmKHdpdGgpZyh0aGUpZyhCYWNrLUNvdmVyKWgoVGV4dHMpNTQ3CisxODA2IHkoYmVpbmcpZiBGYyhsaXN0KXAgRmQoLikyNzUgMTkyOSB5IEZ0KElmKTM0IGIoeSltKG91KWkoaGEpbSh2KW0KKyhlKWcoSW4pbSh2KS01IGIoYXJpYW4pbSh0KTM2IGIoU2VjdGlvbnMpZyh3aXRob3V0KWYoQ28pbSh2KW0oZXIpaChUKS04CitiKGV4dHMsKTM4IGIob3IpZChzb21lKWcob3RoZXIpaChjb20pbShiaW5hdGlvbilnKG9mKWcodGhlKTE1MAorMjAzOCB5KHRocmVlLCkzMSBiKG1lcmdlKWcodGhvc2UpZyh0KW0odyltKG8pZyhhbHRlcm5hdGl2KW0oZXMpaSh0byllCisoc3VpdClmKHRoZSloKHNpdHVhdGlvbi4pMjc1IDIxNzMgeShJZikyMyBiKHkpbShvdXIpaChkbylzKGN1bWVuKW0odClmCisoY29uKW0odGFpbnMpaShub24pbSh0cml2aWFsKWcoZXhhbXBsZXMpZyhvZilmKHByb2dyYW0pZihjbylzKGRlLClqKHcpbQorKGUpZShyZWNvbW1lbmQpZyhyZWxlYXNpbmcpMTUwIDIyODMgeSh0aGVzZSk0NCBiKGV4YW1wbGVzKWYoaW4pZworKHBhcmFsbGVsKWgodW5kZXIpZSh5KW0ob3VyKWgoYyltKGhvaWNlKWkob2YpZShmcmVlKWcoc29mdCltKHcpbShhcmUpaAorKGxpY2Vuc2UsKWsoc3VjKW0oaCk0MyBiKGFzKWcodGhlKWcoR05VKTE1MCAyMzkyIHkoR2VuZXJhbCkzMQorYihQdWJsaWMpZihMaWNlbnNlLClpKHRvKWYocClzKGVybWl0KWUodGhlaXIpaSh1c2UpZihpbilnKGZyZWUpZyhzb2Z0KW0KKyh3KW0oYXJlLilwIGVvcCBlbmQKKyUlUGFnZTogNjQgNjgKK1RlWERpY3QgYmVnaW4gNjQgNjcgYm9wIDE1MCAtMTE2IGEgRnQoNjQpMjYwMCBiKEdOVSkzMQorYihSZWFkbGluZSlnKExpYnJhcnkpcCBlb3AgZW5kCislJVBhZ2U6IDY1IDY5CitUZVhEaWN0IGJlZ2luIDY1IDY4IGJvcCAxNTAgLTExNiBhIEZ0KENvbmNlcHQpMzEgYihJbmRleCkyOTI3CitiKDY1KTE1MCAyOTkgeSBGcChDb25jZXB0KTUyIGIoSW5kZXgpMTUwIDYzOCB5IEZyKEEpMTUwCis3NTkgeSBGYihhcHBsaWNhdGlvbi1zcClyKGVjaVwwMTRjKTI3IGIoY29tcGxldGlvbilmKGZ1bmN0aW9ucyk5CitiIEZhKC4pMTQgYiguKWUoLilnKC4paCguKWYoLilnKC4pMzUgYiBGYig0MSkxNTAgMTAyMgoreSBGcihDKTE1MCAxMTQzIHkgRmIoY29tbWFuZCkyNiBiKGVkaXRpbmcpMjAgYiBGYSguKTEyCitiKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLik0NiBiIEZiKDEpMTUwCisxNDA2IHkgRnIoRSkxNTAgMTUyNyB5IEZiKGVkaXRpbmcpMjYgYihjb21tYW5kKWcobGluZXMpZQorRmEoLikxMiBiKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloCisoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pNDkgYiBGYigxKTE1MCAxNzg5IHkgRnIoRikxNTAKKzE5MTAgeSBGYihGREwsKTI2IGIoR05VKWYoRiktNiBiKHJlZSkyNSBiKERvKXIoY3VtZW4pbih0YXRpb24paAorKExpY2Vuc2UpMTEgYiBGYSguKWooLillKC4pZyguKWgoLilmKC4pZyguKTM3IGIgRmIoNTcpMTUwCisyMTczIHkgRnIoSSkxNTAgMjI5NCB5IEZiKGluaXRpYWxpemF0aW9uKTI4IGIoXDAxNGxlLCllKHJlYWRsaW5lKTgKK2IgRmEoLikxMyBiKC4pZyguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4paCguKTM0IGIgRmIoNCkxNTAgMjM4NCB5KGluKW4odGVyYWN0aW9uLCkyNworYihyZWFkbGluZSkxMCBiIEZhKC4paiguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKTM2CitiIEZiKDEpMjAyNSA2MzggeSBGcihLKTIwMjUgNzU5IHkgRmIoa2lsbCkyNiBiKHJpbmcpMTUKK2IgRmEoLillKC4pZiguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pCitmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcKKyguKWgoLilmKC4pZyguKTQyIGIgRmIoMykyMDI1IDg0OSB5KGtpbGxpbmcpMjYgYih0ZXh0KTE4CitiIEZhKC4pMTIgYiguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZworKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLikKK2coLik0NCBiIEZiKDIpMjAyNSAxMTExIHkgRnIoTikyMDI1IDEyMzMgeSBGYihub3RhdGlvbiwpMjYKK2IocmVhZGxpbmUpMTMgYiBGYSguKWgoLillKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgKKyguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKTQwCitiIEZiKDEpMjAyNSAxNDk1IHkgRnIoUikyMDI1IDE2MTYgeSBGYihyZWFkbGluZSwpMjYgYihmdW5jdGlvbikxNQorYiBGYSguKWUoLilnKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikKK2goLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pNDEgYiBGYigyMSkyMDI1CisxODc5IHkgRnIoVikyMDI1IDIwMDAgeSBGYih2KWwoYXJpYWJsZXMsKTI3IGIocmVhZGxpbmUpOAorYiBGYSguKWsoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLikKK2coLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKTM0IGIKK0ZiKDUpMjAyNSAyMjYzIHkgRnIoWSkyMDI1IDIzODQgeSBGYih5KW4oYW5raW5nKTI1IGIodGV4dCk4CitiIEZhKC4paiguKWkoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKQoraCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikzNAorYiBGYigyKXAgZW9wIGVuZAorJSVQYWdlOiA2NiA3MAorVGVYRGljdCBiZWdpbiA2NiA2OSBib3AgMTUwIC0xMTYgYSBGdCg2NikyNjAwIGIoR05VKTMxCitiKFJlYWRsaW5lKWcoTGlicmFyeSlwIGVvcCBlbmQKKyUlUGFnZTogNjcgNzEKK1RlWERpY3QgYmVnaW4gNjcgNzAgYm9wIDE1MCAtMTE2IGEgRnQoRiktOCBiKHVuY3Rpb24pMzEKK2IoYW5kKWYoViktOCBiKGFyaWFibGUpMzIgYihJbmRleCkyMzcwIGIoNjcpMTUwIDI5OSB5CitGcChGKS0xMyBiKHVuY3Rpb24pNTIgYihhbmQpaChWKS0xMyBiKGFyaWFibGUpNTMgYihJbmRleClwCisxNTkgNjEwIDQxIDYgdiAxNTAgNzI5IGEgRmQoX3JsX2RpZ2l0X3ApMjMgYiBGYSguKTEyCitiKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgKKyguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLik0NgorYiBGYigzNikxNTAgODE4IHkgRmQoX3JsX2RpZ2l0X3ZhbHVlKTE1IGIgRmEoLilnKC4pZSguKWYoLilnKC4paCguKWYoLikKK2coLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWcoLiloKC4pNDAgYiBGYigzNikxNTAgOTA2IHkgRmQoX3JsX2xvd2VyY2FzZV9wKTE1CitiIEZhKC4pZyguKWUoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKQoraCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLik0MCBiIEZiKDM2KTE1MAorOTk1IHkgRmQoX3JsX3RvX2xvd2VyKTIyIGIgRmEoLikxMiBiKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikKK2YoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZworKC4paCguKWYoLilnKC4pNDUgYiBGYigzNikxNTAgMTA4NCB5IEZkKF9ybF90b191cHBlcikyMgorYiBGYSguKTEyIGIoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4pNDUKK2IgRmIoMzYpMTUwIDExNzIgeSBGZChfcmxfdXBwZXJjYXNlX3ApMTUgYiBGYSguKWcoLillKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikKK2YoLilnKC4pZyguKWgoLik0MCBiIEZiKDM2KTE1MCAxNDMxIHkgRnIoQSkxNTAgMTU1MCB5CitGZChhYm9ydCkyNyBiKFwoQy1nXCkpOSBiIEZhKC4payguKWcoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKQoraCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4pMzUgYiBGYigxOCkxNTAgMTYzOSB5IEZkKGFjY2VwdC1saW5lKTI4CitiKFwoTmV3bGluZSlnKG9yKWUoUmV0dXJuXCkpMTIgYiBGYSguKWgoLilnKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWgoLikzNyBiIEZiKDEzKTE1MCAxODk4IHkgRnIoQikxNTAgMjAxNyB5IEZkKGJhY2t3YXJkLWNoYXIpMjkKK2IoXChDLWJcKSkxNiBiIEZhKC4pZCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKTQxIGIgRmIoMTMpMTUwCisyMTA2IHkgRmQoYmFja3dhcmQtZGVsZXRlLWNoYXIpMzAgYihcKFJ1Ym91dFwpKTIxIGIgRmEoLikxMworYiguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pNDUgYgorRmIoMTUpMTUwIDIxOTQgeSBGZChiYWNrd2FyZC1raWxsLWxpbmUpMzAgYihcKEMteCljKFJ1Ym91dFwpKWYKK0ZhKC4pMTIgYiguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKTQ5IGIKK0ZiKDE2KTE1MCAyMjgzIHkgRmQoYmFja3dhcmQta2lsbC13b3JkKTMwIGIoXChNLSk5OTkKKzIyODAgeSBGayhoKXAgMTAyNCAyMjI3IDE0NiA0IHYgMTAyNCAyMjgzIGEgRmooREVMKXAKKzEwMjQgMjI5OCBWIDExNjUgMjI4MCBhIEZrKGkpMTE5NSAyMjgzIHkgRmQoXCkpMjEgYiBGYSguKTEzCitiKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pNDYKK2IgRmIoMTYpMTUwIDIzNzIgeSBGZChiYWNrd2FyZC13b3JkKTI5IGIoXChNLWJcKSkxNiBiCitGYSguKWQoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4pZyguKWgoLik0MSBiIEZiKDEzKTE1MCAyNDYwIHkgRmQKKyhiZWdpbm5pbmctb2YtaGlzdG9yeSkzMCBiKFwoTS08XCkpMjUgYiBGYSguKTEyIGIoLiloKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pNDkgYiBGYigxNCkxNTAKKzI1NDkgeSBGZChiZWdpbm5pbmctb2YtbGluZSkyOSBiKFwoQy1hXCkpMTAgYiBGYSguKWsoLillKC4pZyguKWgoLilmKC4pCitnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKTM1CitiIEZiKDEzKTE1MCAyNjM3IHkoYilyKGVsbC1zdCluKHlsZSkxNCBiIEZhKC4pZiguKWYoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLikKK2coLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKTQwIGIKK0ZiKDUpMTUwIDI3MjYgeShiaW5kLXR0KW4oeS1zcClyKGVjaWFsLWMpbihoYXJzKTIxIGIKK0ZhKC4pMTIgYiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLik0OCBiIEZiKDUpMTUwIDI5ODMKK3kgRnIoQykxNTAgMzEwMiB5IEZkKGNhbGwtbGFzdC1rYmQtbWFjcm8pMzAgYihcKEMteCljKGVcKSkxMQorYiBGYSguKWkoLilmKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKTM2CitiIEZiKDE4KTE1MCAzMTkxIHkgRmQoY2FwaXRhbGl6ZS13b3JkKTI5IGIoXChNLWNcKSkxMworYiBGYSguKWcoLilnKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLikKK2coLiloKC4pZiguKWcoLiloKC4pMzggYiBGYigxNSkxNTAgMzI3OSB5IEZkKGNoYXJhY3Rlci1zZWFyY2gpMjkKK2IoXChDLV1cKSkxMSBiIEZhKC4paiguKWUoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKTM3IGIgRmIoMTgpMTUwIDMzNjggeQorRmQoY2hhcmFjdGVyLXNlYXJjaC1iYWNrd2FyZCkzMSBiKFwoTS1DLV1cKSkxNCBiIEZhKC4pZyguKWUoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKTM5IGIgRmIoMTkpMTUwIDM0NTcgeSBGZChjbGVhci1zY3JlZW4pMjgKK2IoXChDLWxcKSkxNyBiIEZhKC4pZCguKWUoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLik0MyBiIEZiKDEzKTE1MAorMzU0NSB5KGNvbW1lbiluKHQtYilyKGVnaW4pMTggYiBGYSguKTEyIGIoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnCisoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKQorZiguKWcoLiloKC4pZiguKWcoLik0NCBiIEZiKDUpMTUwIDM2MzQgeSBGZChjb21wbGV0ZSkyNworYihcKCk1MjggMzYzMSB5IEZrKGgpcCA1NTMgMzU3OCAxNDggNCB2IDU1MyAzNjM0IGEgRmooVCktNgorYihBQilwIDU1MyAzNjQ5IFYgNjk3IDM2MzEgYSBGayhpKTcyNiAzNjM0IHkgRmQoXCkpMjAKK2IgRmEoLikxMiBiKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pNDUgYiBGYigxNykxNTAKKzM3MjMgeShjb21wbGV0aW9uLXF1ZXJ5LWl0ZW1zKTggYiBGYSguKWsoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pCitoKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLikzNAorYiBGYig1KTE1MCAzODExIHkoY29uKW4odiluKGVydC1tZXRhKTE4IGIgRmEoLikxMiBiKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4pCitoKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLik0NSBiIEZiKDUpMTUwIDM5MDAKK3kgRmQoY29weS1iYWNrd2FyZC13b3JkKTMwIGIoXChcKSkxMyBiIEZhKC4pZiguKWgoLilmKC4pZyguKWgoLilmKC4pZworKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikzOAorYiBGYigxNikxNTAgMzk4OCB5IEZkKGNvcHktZm9yd2FyZC13b3JkKTI5IGIoXChcKSkxNAorYiBGYSguKWYoLilnKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikKK2goLilmKC4pZyguKWgoLilmKC4pZyguKTQwIGIgRmIoMTYpMTUwIDQwNzcgeSBGZChjb3B5LXJlZ2lvbi1hcy1raWxsKTMwCitiKFwoXCkpMTEgYiBGYSguKWkoLilmKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnCisoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikzNyBiIEZiKDE2KTE1MCA0MzM2IHkgRnIoRCkxNTAKKzQ0NTUgeSBGZChkZWxldGUtY2hhcikyOCBiKFwoQy1kXCkpMjAgYiBGYSguKTEyIGIoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikKK2goLilmKC4pNDQgYiBGYigxNSkxNTAgNDU0NCB5IEZkKGRlbGV0ZS1jaGFyLW9yLWxpc3QpMzAKK2IoXChcKSkxMSBiIEZhKC4paSguKWYoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcKKyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKTM3IGIgRmIoMTcpMTUwIDQ2MzIgeSBGZAorKGRlbGV0ZS1ob3Jpem9udGFsLXNwYWNlKTMxIGIoXChcKSkyNCBiIEZhKC4pMTIgYiguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLik0OSBiIEZiKDE2KTE1MAorNDcyMSB5IEZkKGRpZ2l0LWFyZ3VtZW50KTI5IGIoXCgpcCBGYyhNLTApcCBGZCgsKWUgRmMoTS0xKXAKK0ZkKCwpZiguLi4pZyBGYyhNLS0pcCBGZChcKSkxNCBiIEZhKC4pZyguKWUoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikKKzQwIGIgRmIoMTcpMTUwIDQ4MTAgeShkaXNhYmxlLWNvbXBsZXRpb24pMTYgYiBGYSguKWUoLillKC4paCguKWYoLilnKC4pCitoKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcKKyguKWgoLilmKC4pZyguKWgoLik0MiBiIEZiKDUpMTUwIDQ4OTggeSBGZChkby11cHBlcmNhc2UtdmVyc2lvbikzMAorYihcKE0tYSwpZChNLWIsKWYoTS0pcCBGYyh4KXAgRmQoLCloKC4uLilxKFwpKTMxOCA0OTg1Cit5IEZhKC4pMTIgYiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikKK2goLilmKC4pZyguKWgoLilmKC4pZyguKTQwIGIgRmIoMTgpMTUwIDUwNzQgeSBGZChkb3duY2FzZS13b3JkKTI5CitiKFwoTS1sXCkpMTYgYiBGYSguKWQoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgKKyguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLik0MSBiIEZiKDE1KTE1MAorNTE2MyB5IEZkKGR1bXAtZnVuY3Rpb25zKTI5IGIoXChcKSkxOSBiIEZhKC4pMTIgYiguKWcoLiloKC4pZiguKWcoLiloCisoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKQoraCguKWYoLik0NCBiIEZiKDE5KTE1MCA1MjUxIHkgRmQoZHVtcC1tYWNyb3MpMjggYihcKFwpKWMKK0ZhKC4pMTIgYiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pNDgKK2IgRmIoMTkpMTUwIDUzNDAgeSBGZChkdW1wLXZhcmlhYmxlcykyOSBiKFwoXCkpMTkgYiBGYSguKTEyCitiKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgKKyguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLik0NCBiIEZiKDE5KTIwMjUgNjEwIHkKK0ZyKEUpMjAyNSA3MjcgeSBGYihlZGl0aW5nLW1vKXIoZGUpMTkgYiBGYSguKTEyIGIoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikKK2coLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKTQ1IGIgRmIoNSkyMDI1IDgxNQoreSBGZChlbWFjcy1lZGl0aW5nLW1vZGUpMjkgYihcKEMtZVwpKTggYiBGYSguKTE0IGIoLilmKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pMzQKK2IgRmIoMTkpMjAyNSA5MDIgeShlbmFibGUtayluKGV5cGFkKTE4IGIgRmEoLikxMCBiKC4paiguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pCitmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKTQ0IGIgRmIoNikyMDI1IDk5MCB5CitGZChlbmQta2JkLW1hY3JvKTI4IGIoXChDLXgpZihcKVwpKTIwIGIgRmEoLikxMiBiKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKTQ1CitiIEZiKDE4KTIwMjUgMTA3NyB5IEZkKGVuZC1vZi1oaXN0b3J5KTI5IGIoXChNLT5cKSkxNAorYiBGYSguKWYoLilnKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLikKK2coLiloKC4pZiguKWcoLiloKC4pZiguKTQwIGIgRmIoMTQpMjAyNSAxMTY1IHkgRmQoZW5kLW9mLWxpbmUpMjgKK2IoXChDLWVcKSkyMCBiIEZhKC4pMTIgYiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4pCitoKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pNDQKK2IgRmIoMTMpMjAyNSAxMjUzIHkgRmQoZXhjaGFuZ2UtcG9pbnQtYW5kLW1hcmspMzEgYihcKEMteCkyNgorYihDLXhcKSkyMSBiIEZhKC4pMTMgYiguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLik0NgorYiBGYigxOCkyMDI1IDEzNDAgeShleHBhbmQtdGlsZGUpMTEgYiBGYSguKWcoLilpKC4pZiguKWcoLiloKC4pZiguKWcoLikKK2coLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikzNyBiIEZiKDYpMjAyNSAxNTkyCit5IEZyKEYpMjAyNSAxNzA5IHkgRmQoZm9yd2FyZC1iYWNrd2FyZC1kZWxldGUtY2hhcikzMgorYihcKFwpKTE2IGIgRmEoLilkKC4pZiguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pNDIKK2IgRmIoMTUpMjAyNSAxNzk2IHkgRmQoZm9yd2FyZC1jaGFyKTI4IGIoXChDLWZcKSkxNyBiCitGYSguKWQoLillKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pNDMgYiBGYigxMykyMDI1IDE4ODQgeQorRmQoZm9yd2FyZC1zZWFyY2gtaGlzdG9yeSkzMCBiKFwoQy1zXCkpMjIgYiBGYSguKTEzIGIoLilmKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKTQ3IGIgRmIoMTQpMjAyNSAxOTcyCit5IEZkKGZvcndhcmQtd29yZCkyOCBiKFwoTS1mXCkpMTcgYiBGYSguKWQoLillKC4pZyguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pNDMKK2IgRmIoMTMpMjAyNSAyMjE1IHkgRnIoSCkyMDI1IDIzMzIgeSBGYihoaXN0b3J5LXByZXNlcnYpbihlLXApcihvaW4pbgorKHQpMTYgYiBGYSguKTExIGIoLilpKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnCisoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pNDIgYiBGYig2KTIwMjUKKzI0MTkgeSBGZChoaXN0b3J5LXNlYXJjaC1iYWNrd2FyZCkzMSBiKFwoXCkpMjQgYiBGYSguKTEyCitiKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLik0OQorYiBGYigxNCkyMDI1IDI1MDcgeSBGZChoaXN0b3J5LXNlYXJjaC1mb3J3YXJkKTMwIGIoXChcKSk3CitiIEZhKC4pMTMgYiguKWYoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZgorKC4pZyguKTMzIGIgRmIoMTQpMjAyNSAyNTk1IHkoaG9yaXpvbiluKHRhbC1zY3JvbGwtbW8pcihkZSkxMQorYiBGYSguKWooLilmKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLikKK2coLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pMzcgYiBGYig2KTIwMjUgMjgzMCB5CitGcihJKTIwMjUgMjk0NiB5IEZiKGlucHV0LW1ldGEpMTUgYiBGYSguKWQoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKQoraCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pNDIgYiBGYig2KTIwMjUgMzAzNAoreSBGZChpbnNlcnQtY29tbWVudCkyOSBiKFwoTS0jXCkpMTQgYiBGYSguKWYoLilnKC4pZiguKWcoLiloKC4pZiguKWcoLikKK2goLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKTQwCitiIEZiKDE5KTIwMjUgMzEyMiB5IEZkKGluc2VydC1jb21wbGV0aW9ucykyOSBiKFwoTS0qXCkpOAorYiBGYSguKTE0IGIoLilmKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcKKyguKWgoLilmKC4pMzQgYiBGYigxNykyMDI1IDMyMDkgeShpc2VhcmMpbihoLXRlcm1pbmF0b3JzKTYKK2IgRmEoLikxNCBiKC4pZSguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloCisoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKTMzIGIgRmIoNikyMDI1CiszNDQ0IHkgRnIoSykyMDI1IDM1NjEgeSBGYihrKW4oZXltYXApMTcgYiBGYSguKTEyIGIoLilnKC4pZyguKWgoLilmKC4pZworKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikKK2YoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pNDQKK2IgRmIoNikyMDI1IDM2NDkgeSBGZChraWxsLWxpbmUpMjcgYihcKEMta1wpKWMgRmEoLikxMgorYiguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLik0NyBiIEZiKDE2KTIwMjUKKzM3MzYgeSBGZChraWxsLXJlZ2lvbikyOCBiKFwoXCkpMjMgYiBGYSguKTEzIGIoLilmKC4pZyguKWgoLilmKC4pZyguKWgKKyguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pCitnKC4paCguKWYoLilnKC4pNDkgYiBGYigxNikyMDI1IDM4MjQgeSBGZChraWxsLXdob2xlLWxpbmUpMjkKK2IoXChcKSkxNyBiIEZhKC4pYyguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLik0MyBiIEZiKDE2KTIwMjUKKzM5MTEgeSBGZChraWxsLXdvcmQpMjcgYihcKE0tZFwpKWMgRmEoLikxMiBiKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pCitoKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYKKyguKWcoLiloKC4pNDcgYiBGYigxNikyMDI1IDQxNTUgeSBGcihNKTIwMjUgNDI3MiB5IEZiKG1hcmstbW8pcgorKGRpXDAxNGVkLWxpbmVzKTE1IGIgRmEoLilkKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pNDIKK2IgRmIoNikyMDI1IDQzNTkgeShtYXJrLXN5bWxpbmspbihlZC1kaXJlY3RvcmllcykyMCBiCitGYSguKTEyIGIoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcKKyguKWgoLilmKC4pZyguKTQ3IGIgRmIoNykyMDI1IDQ0NDcgeShtYXRjKW4oaC1oaWRkZW4tXDAxNGxlcykyMAorYiBGYSguKTEzIGIoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcKKyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pNDggYiBGYig3KTIwMjUKKzQ1MzQgeSBGZChtZW51LWNvbXBsZXRlKTI4IGIoXChcKSkyMSBiIEZhKC4pMTIgYiguKWcoLiloKC4pZiguKWcoLiloKC4pCitmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgKKyguKWYoLilnKC4pNDYgYiBGYigxNykyMDI1IDQ2MjIgeShtZXRhLVwwMTVhZyk5IGIgRmEoLilqKC4paCguKWYoLilnKC4pCitoKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcKKyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pMzUKK2IgRmIoNikyMDI1IDQ4NzQgeSBGcihOKTIwMjUgNDk5MCB5IEZkKG5leHQtaGlzdG9yeSkyOAorYihcKEMtblwpKTE3IGIgRmEoLilkKC4pZSguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloCisoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKTQzIGIgRmIoMTQpMjAyNQorNTA3OCB5IEZkKG5vbi1pbmNyZW1lbnRhbC1mb3J3YXJkLXNlYXJjaClxKC1oaXN0KXEob3J5KTMyCitiKFwoTS1uXCkpMjE5MyA1MTY1IHkgRmEoLikxMiBiKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikKK2YoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pNDAgYiBGYigxNCkyMDI1Cis1MjUzIHkgRmQobm9uLWluY3JlbWVudGFsLXJldmVyc2Utc2VhcmNoKXEoLWhpc3QpcShvcnkpMzIKK2IoXChNLXBcKSkyMTkzIDUzNDAgeSBGYSguKTEyIGIoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKQorZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLik0MCBiIEZiKDE0KXAKK2VvcCBlbmQKKyUlUGFnZTogNjggNzIKK1RlWERpY3QgYmVnaW4gNjggNzEgYm9wIDE1MCAtMTE2IGEgRnQoNjgpMjYwMCBiKEdOVSkzMQorYihSZWFkbGluZSlnKExpYnJhcnkpMTUwIDI5OSB5IEZyKE8pMTUwIDQxNyB5IEZiKG91dHB1dC1tZXRhKTEwCitiIEZhKC4paSguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKQoraCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLikzNgorYiBGYig3KTE1MCA1MDYgeSBGZChvdmVyd3JpdGUtbW9kZSkyOSBiKFwoXCkpMTkgYiBGYSguKTEyCitiKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgKKyguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLik0NCBiIEZiKDE1KTE1MCA3NTQgeSBGcihQKTE1MAorODcyIHkgRmIocGFnZS1jb21wbGV0aW9ucykyMyBiIEZhKC4pMTIgYiguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikKK2YoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLik0OCBiIEZiKDcpMTUwIDk2MSB5IEZkKHBvc3NpYmxlLWNvbXBsZXRpb25zKTMwCitiKFwoTS0/XCkpMjUgYiBGYSguKTEyIGIoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKQorZyguKWcoLiloKC4pNDkgYiBGYigxNykxNTAgMTA0OSB5IEZkKHByZWZpeC1tZXRhKTI4IGIoXCgpNjQ2CisxMDQ2IHkgRmsoaClwIDY3MSA5OTMgMTM5IDQgdiA2NzEgMTA0OSBhIEZqKEVTQylwIDY3MQorMTA2NCBWIDgwNCAxMDQ2IGEgRmsoaSk4MzQgMTA0OSB5IEZkKFwpKTIwIGIgRmEoLikxMworYiguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4paCguKTQ1IGIgRmIoMTgpMTUwIDExMzcgeSBGZChwcmV2aW91cy1oaXN0b3J5KTI5CitiKFwoQy1wXCkpMTEgYiBGYSguKWooLillKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikzNyBiIEZiKDE0KTE1MCAxMzk2IHkKK0ZyKFEpMTUwIDE1MTQgeSBGZChxdW90ZWQtaW5zZXJ0KTI5IGIoXChDLXEpZChvcilnKEMtdlwpKTIwCitiIEZhKC4pMTMgYiguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZworKC4pNDUgYiBGYigxNSkxNTAgMTc3MiB5IEZyKFIpMTUwIDE4OTEgeSBGZChyZS1yZWFkLWluaXQtZmlsZSkyOQorYihcKEMteCllKEMtclwpKTExIGIgRmEoLilpKC4pZiguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgKKyguKWYoLilnKC4paCguKTM2IGIgRmIoMTgpMTUwIDE5NzkgeSBGZChyZWFkbGluZSk3IGIKK0ZhKC4pMTQgYiguKWUoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikKK2coLiloKC4pMzIgYiBGYigyMSkxNTAgMjA2OCB5IEZkKHJlZHJhdy1jdXJyZW50LWxpbmUpZShcKFwpKTExCitiIEZhKC4paSguKWYoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKQorZyguKWgoLilmKC4pZyguKTM3IGIgRmIoMTMpMTUwIDIxNTYgeSBGZChyZXZlcnNlLXNlYXJjaC1oaXN0b3J5KTMxCitiKFwoQy1yXCkpMjIgYiBGYSguKTEyIGIoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKQoraCguKTQ2IGIgRmIoMTQpMTUwIDIyNDUgeSBGZChyZXZlcnQtbGluZSkyOCBiKFwoTS1yXCkpMjAKK2IgRmEoLikxMiBiKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLik0NCBiIEZiKDE4KTE1MAorMjMzMyB5IEZkKHJsX2FkZF9kZWZ1bikyMiBiIEZhKC4pMTIgYiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloCisoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKQorZyguKWgoLilmKC4pZyguKTQ1IGIgRmIoMjgpMTUwIDI0MjEgeSBGZChybF9hZGRfZnVubWFwX2VudHJ5KTkKK2IgRmEoLikxNyBiKC4pMTIgYiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pMzQgYiBGYigzMSkxNTAgMjUxMAoreSBGZChybF9hZGRfdW5kbykyMyBiIEZhKC4pMTIgYiguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgKKyguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pCitnKC4paCguKWYoLik0NiBiIEZiKDMyKTE1MCAyNTk4IHkgRmQocmxfYWxwaGFiZXRpYykxOAorYiBGYSguKWQoLilkKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikKK2YoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLik0MworYiBGYigzNikxNTAgMjY4NyB5IEZkKHJsX2FscmVhZHlfcHJvbXB0ZWQpOSBiIEZhKC4pMTcKK2IoLikxMiBiKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pCitmKC4pZyguKWgoLilmKC4pZyguKWgoLikzNCBiIEZiKDI1KTE1MCAyNzc1IHkgRmQKKyhybF9hdHRlbXB0ZWRfY29tcGxldGlvbl9mdW5jdClxKGlvbik5IGIgRmEoLikxOCBiKC4pMTIKK2IoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pMzQgYiBGYig0NCkxNTAgMjg2NCB5CitGZChybF9hdHRlbXB0ZWRfY29tcGxldGlvbl9vdmVyKTE1IGIgRmEoLilqKC4pMTIgYiguKWcoLiloKC4pZiguKWcoLiloCisoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikzOSBiIEZiKDQ3KTE1MCAyOTUyIHkgRmQKKyhybF9iYXNpY19xdW90ZV9jaGFyYWN0ZXJzKTE4IGIgRmEoLilnKC4pMTMgYiguKWYoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLik0NCBiIEZiKDQ1KTE1MCAzMDQxCit5IEZkKHJsX2Jhc2ljX3dvcmRfYnJlYWtfY2hhcmFjdGVyKXEocykxMSBiIEZhKC4pMTggYiguKTEzCitiKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4pMzcgYiBGYig0NSkxNTAKKzMxMjkgeSBGZChybF9iZWdpbl91bmRvX2dyb3VwKTkgYiBGYSguKTE3IGIoLikxMiBiKC4pZyguKWgoLilmKC4pZyguKWcKKyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikzNAorYiBGYigzMikxNTAgMzIxNyB5IEZkKHJsX2JpbmRfa2V5KTIzIGIgRmEoLikxMiBiKC4paCguKWYoLilnKC4paCguKWYoLikKK2coLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKTQ2IGIgRmIoMjkpMTUwIDMzMDYgeQorRmQocmxfYmluZF9rZXlfaWZfdW5ib3VuZCkyOCBiIEZhKC4pMTIgYiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikKK2goLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pNDggYiBGYigyOSkxNTAKKzMzOTQgeSBGZChybF9iaW5kX2tleV9pZl91bmJvdW5kX2luX21hcCkxNCBiIEZhKC4paiguKWMoLilmKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4paCguKWYoLikzOCBiIEZiKDMwKTE1MCAzNDgzIHkgRmQocmxfYmluZF9rZXlfaW5fbWFwKQorMTAgYiBGYSguKTE3IGIoLikxMiBiKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pMzYgYiBGYigyOSkxNTAKKzM1NzEgeSBGZChybF9iaW5kX2tleXNlcSkxNiBiIEZhKC4pZyguKWMoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pCitoKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLik0MiBiIEZiKDMwKTE1MCAzNjYwIHkgRmQocmxfYmluZF9rZXlzZXFfaWZfdW5ib3VuZCkxOAorYiBGYSguKWcoLikxMyBiKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcKKyguKTQ0IGIgRmIoMzApMTUwIDM3NDggeSBGZChybF9iaW5kX2tleXNlcV9pZl91bmJvdW5kX2luXylxKG1hcCk5CitiIEZhKC4pMTggYiguKTEyIGIoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pMzQgYgorRmIoMzApMTUwIDM4MzYgeSBGZChybF9iaW5kX2tleXNlcV9pbl9tYXApMjkgYiBGYSguKTEyCitiKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgKKyguKWYoLilnKC4pNTAgYiBGYigzMCkxNTAgMzkyNSB5IEZkKHJsX2JpbmRpbmdfa2V5bWFwKTEyCitiIEZhKC4payguKWMoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKQorZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pMzcgYiBGYigyNikxNTAgNDAxMworeSBGZChybF9jYWxsYmFja19oYW5kbGVyX2luc3RhbGwpMTYgYiBGYSguKWkoLikxMiBiKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLik0MSBiIEZiKDM3KTE1MCA0MTAyIHkKK0ZkKHJsX2NhbGxiYWNrX2hhbmRsZXJfcmVtb3ZlKTE3IGIgRmEoLiloKC4pMTIgYiguKWgoLilmKC4pZyguKWgoLilmKC4pCitnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKTQyIGIgRmIoMzgpMTUwIDQxOTAgeQorRmQocmxfY2FsbGJhY2tfcmVhZF9jaGFyKTI5IGIgRmEoLikxMiBiKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pNTAgYiBGYigzOCkxNTAKKzQyNzkgeSBGZChybF9jYXRjaF9zaWduYWxzKTEzIGIgRmEoLilqKC4pZCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgKKyguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pCiszOSBiIEZiKDQwKTE1MCA0MzY3IHkgRmQocmxfY2F0Y2hfc2lnd2luY2gpMTIgYiBGYSguKWsoLiljKC4paCguKWYoLilnCisoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKQorZiguKWcoLiloKC4pMzcgYiBGYig0MCkxNTAgNDQ1NiB5IEZkKHJsX2NoYXJfaXNfcXVvdGVkX3ApOQorYiBGYSguKTE3IGIoLikxMiBiKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikzNCBiIEZiKDQ0KTE1MCA0NTQ0Cit5IEZkKHJsX2NsZWFudXBfYWZ0ZXJfc2lnbmFsKTI2IGIgRmEoLikxMyBiKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKTQ3IGIgRmIoNDApMTUwCis0NjMyIHkgRmQocmxfY2xlYXJfbWVzc2FnZSkxMyBiIEZhKC4paiguKWQoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloCisoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKQorMzkgYiBGYigzMykxNTAgNDcyMSB5IEZkKHJsX2NsZWFyX3BlbmRpbmdfaW5wdXQpMjggYgorRmEoLikxMiBiKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLik0OCBiIEZiKDM1KTE1MCA0ODA5IHkgRmQocmxfY2xlYXJfc2lnbmFscykxMworYiBGYSguKWooLilkKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLikKK2coLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikzOSBiIEZiKDQxKTE1MAorNDg5OCB5IEZkKHJsX2NvbXBsZXRlKTEzIGIgRmEoLilpKC4pZCguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKQoraCguKTM5IGIgRmIoNDIsKTI2IGIoNDMpMTUwIDQ5ODYgeSBGZChybF9jb21wbGV0ZV9pbnRlcm5hbCk3CitiIEZhKC4pMTcgYiguKWMoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZworKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pMzMgYiBGYig0MikxNTAgNTA3NSB5IEZkCisocmxfY29tcGxldGVyX3F1b3RlX2NoYXJhY3RlcnMpMTQgYiBGYSguKWooLiljKC4pZiguKWcoLiloKC4pZiguKWcoLiloCisoLilmKC4pZyguKWgoLilmKC4pMzggYiBGYig0NSkxNTAgNTE2MyB5IEZkCisocmxfY29tcGxldGVyX3dvcmRfYnJlYWtfY2hhcmEpcShjdGVyKXEocykyOSBiIEZhKC4pMTIKK2IoLiloKC4pZiguKWcoLiloKC4pZiguKTQ5IGIgRmIoNDUpMTUwIDUyNTIgeSBGZAorKHJsX2NvbXBsZXRpb25fYXBwZW5kX2NoYXJhY3RlKXEocikxMSBiIEZhKC4pMTggYiguKTEzCitiKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4pMzcgYiBGYig0NikxNTAKKzUzNDAgeSBGZChybF9jb21wbGV0aW9uX2Rpc3BsYXlfbWF0Y2hlcylxKF9ob28pcShrKTI5CitiIEZhKC4pMTIgYiguKWgoLilmKC4pZyguKWgoLilmKC4pNDkgYiBGYig0NSkyMDI1IDI5OQoreSBGZChybF9jb21wbGV0aW9uX2VudHJ5X2Z1bmN0aW9uKTcgYiBGYSguKTE4IGIoLikxMgorYiguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pMzIgYiBGYig0MiwpMjcgYig0MykyMDI1CiszODcgeSBGZChybF9jb21wbGV0aW9uX2ZvdW5kX3F1b3RlKTE4IGIgRmEoLilnKC4pMTIgYiguKWgoLilmKC4pZyguKWgKKyguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLik0NCBiIEZiKDQ2KTIwMjUKKzQ3NiB5IEZkKHJsX2NvbXBsZXRpb25fbWFya19zeW1saW5rX2RpcilxKHMpMTAgYiBGYSguKTE4CitiKC4pMTIgYiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pMzUgYiBGYig0NikyMDI1Cis1NjQgeSBGZChybF9jb21wbGV0aW9uX21hdGNoZXMpMjkgYiBGYSguKTEyIGIoLilnKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLik1MAorYiBGYig0MykyMDI1IDY1MyB5IEZkKHJsX2NvbXBsZXRpb25fbW9kZSkxMCBiIEZhKC4pMTcKK2IoLikxMiBiKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pCitmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pMzYgYiBGYig0MykyMDI1IDc0MSB5IEZkCisocmxfY29tcGxldGlvbl9xdWVyeV9pdGVtcykxOCBiIEZhKC4pZyguKTEyIGIoLiloKC4pZiguKWcoLiloKC4pZiguKWcKKyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pNDQgYiBGYig0NikyMDI1IDgzMAoreSBGZChybF9jb21wbGV0aW9uX3F1b3RlX2NoYXJhY3RlcikxMyBiIEZhKC4pMTggYiguKTEzCitiKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKTM4IGIgRmIoNDYpMjAyNQorOTE4IHkgRmQocmxfY29tcGxldGlvbl9zdXBwcmVzc19hcHBlbmQpMTMgYiBGYSguKTE4IGIoLikxMworYiguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikzOCBiIEZiKDQ2KTIwMjUKKzEwMDYgeSBGZChybF9jb21wbGV0aW9uX3N1cHByZXNzX3F1b3RlKTE1IGIgRmEoLilpKC4pYyguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLik0MCBiIEZiKDQ2KTIwMjUgMTA5NSB5CitGZChybF9jb21wbGV0aW9uX3R5cGUpMTAgYiBGYSguKTE3IGIoLikxMiBiKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pMzYKK2IgRmIoNDcpMjAyNSAxMTgzIHkgRmQocmxfY29tcGxldGlvbl93b3JkX2JyZWFrX2hvb2spMTMKK2IgRmEoLikxOCBiKC4pMTMgYiguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikzOAorYiBGYig0NSkyMDI1IDEyNzIgeSBGZChybF9jb3B5X2tleW1hcCkxNiBiIEZhKC4pZiguKWUoLilmKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKQorZiguKWcoLilnKC4paCguKWYoLik0MiBiIEZiKDI4KTIwMjUgMTM2MCB5IEZkKHJsX2NvcHlfdGV4dCkyMgorYiBGYSguKTEyIGIoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgKKyguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pNDUKK2IgRmIoMzQpMjAyNSAxNDQ5IHkgRmQocmxfY3JsZik4IGIgRmEoLikxNCBiKC4pZSguKWcoLiloKC4pZiguKWcoLiloKC4pCitmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgKKyguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pMzQgYiBGYigzMykyMDI1CisxNTM3IHkgRmQocmxfZGVsZXRlX3RleHQpMTYgYiBGYSguKWYoLillKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKQorZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloCisoLilmKC4pNDIgYiBGYigzNCkyMDI1IDE2MjUgeSBGZChybF9kZXByZXBfdGVybV9mdW5jdGlvbikyNgorYiBGYSguKTEzIGIoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcKKyguKWgoLilmKC4pNDcgYiBGYigyNikyMDI1IDE3MTQgeSBGZChybF9kZXByZXBfdGVybWluYWwpMTAKK2IgRmEoLikxNyBiKC4pMTIgYiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKTM2IGIgRmIoMzUpMjAyNQorMTgwMiB5IEZkKHJsX2RpbmcpOCBiIEZhKC4pMTQgYiguKWUoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pCitmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKTM0IGIgRmIoMzYpMjAyNSAxODkxCit5IEZkKHJsX2RpcmVjdG9yeV9jb21wbGV0aW9uX2hvb2spMTUgYiBGYSguKWkoLiljKC4pZiguKWcoLiloKC4pZiguKWcKKyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKTQwIGIgRmIoNDQpMjAyNSAxOTc5IHkgRmQocmxfZGlzY2FyZF9rZXltYXApCisxMiBiIEZhKC4payguKWMoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4pMzggYiBGYigyOSkyMDI1CisyMDY4IHkgRmQocmxfZGlzcGF0Y2hpbmcpMTYgYiBGYSguKWYoLillKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKQorZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloCisoLilmKC4pNDIgYiBGYigyNCkyMDI1IDIxNTYgeSBGZChybF9kaXNwbGF5X21hdGNoX2xpc3QpMjkKK2IgRmEoLikxMiBiKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4pZyguKWgoLilmKC4pNTAgYiBGYigzNikyMDI1IDIyNDUgeSBGZChybF9kb191bmRvKTI0CitiIEZhKC4pMTIgYiguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZworKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKTQ4CitiIEZiKDMyKTIwMjUgMjMzMyB5IEZkKHJsX2RvbmUpOCBiIEZhKC4pMTQgYiguKWUoLilnKC4paCguKWYoLilnKC4paCguKQorZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloCisoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKTM0IGIgRmIoMjQpMjAyNQorMjQyMSB5IEZkKHJsX2VkaXRpbmdfbW9kZSkxNSBiIEZhKC4pZyguKWUoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloCisoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKQoraCguKTQwIGIgRmIoMjgpMjAyNSAyNTEwIHkgRmQocmxfZW5kKTEwIGIgRmEoLilqKC4pZiguKWgoLilmKC4pZyguKWgoLikKK2YoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZworKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKTM1CitiIEZiKDI0KTIwMjUgMjU5OCB5IEZkKHJsX2VuZF91bmRvX2dyb3VwKTEyIGIgRmEoLilrKC4pYyguKWcoLiloKC4pZiguKQorZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4pZyguKTM4IGIgRmIoMzIpMjAyNSAyNjg3IHkgRmQocmxfZXJhc2VfZW1wdHlfbGluZSk5CitiIEZhKC4pMTYgYiguKWQoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKTM1IGIgRmIoMjQpMjAyNSAyNzc1IHkKK0ZkKHJsX2V2ZW50X2hvb2spMTggYiBGYSguKWQoLilkKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pCitnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgKKyguKTQzIGIgRmIoMjYpMjAyNSAyODY0IHkgRmQocmxfZXhlY3V0ZV9uZXh0KTE1IGIgRmEoLilnKC4pZSguKWYoLilnKC4pCitnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLiloKC4pNDAgYiBGYigzNSkyMDI1IDI5NTIgeSBGZChybF9leGVjdXRpbmdfa2V5bWFwKTkKK2IgRmEoLikxNiBiKC4pZCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pMzUgYiBGYigyNikyMDI1IDMwNDEgeQorRmQocmxfZXhlY3V0aW5nX21hY3JvKTEwIGIgRmEoLikxNyBiKC4pMTIgYiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKTM2CitiIEZiKDI2KTIwMjUgMzEyOSB5IEZkKHJsX2V4cGFuZF9wcm9tcHQpMTMgYiBGYSguKWooLiljKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLikKK2coLiloKC4pZiguKTM5IGIgRmIoMzQpMjAyNSAzMjE3IHkgRmQocmxfZXhwbGljaXRfYXJnKTE1CitiIEZhKC4pZyguKWUoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKQorZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLik0MCBiIEZiKDI4KTIwMjUKKzMzMDYgeSBGZChybF9leHRlbmRfbGluZV9idWZmZXIpMjkgYiBGYSguKTEyIGIoLilnKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLik1MAorYiBGYigzNikyMDI1IDMzOTQgeSBGZChybF9maWxlbmFtZV9jb21wbGV0aW9uX2Rlc2lyZWQpMTIKK2IgRmEoLikxOCBiKC4pMTIgYiguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKTM3CitiIEZiKDQ2KTIwMjUgMzQ4MyB5IEZkKHJsX2ZpbGVuYW1lX2NvbXBsZXRpb25fZnVuY3RpbylxKG4pMTAKK2IgRmEoLikxOCBiKC4pMTIgYiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pMzUKK2IgRmIoNDMpMjAyNSAzNTcxIHkgRmQocmxfZmlsZW5hbWVfZGVxdW90aW5nX2Z1bmN0aW9uKTEyCitiIEZhKC4pMTggYiguKTEyIGIoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikzNworYiBGYig0NCkyMDI1IDM2NjAgeSBGZChybF9maWxlbmFtZV9xdW90ZV9jaGFyYWN0ZXJzKTE1CitiIEZhKC4paSguKWMoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKTQwCitiIEZiKDQ1KTIwMjUgMzc0OCB5IEZkKHJsX2ZpbGVuYW1lX3F1b3RpbmdfZGVzaXJlZCkxNgorYiBGYSguKWkoLikxMiBiKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pNDEKK2IgRmIoNDcpMjAyNSAzODM2IHkgRmQocmxfZmlsZW5hbWVfcXVvdGluZ19mdW5jdGlvbikxNQorYiBGYSguKWkoLiljKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLik0MAorYiBGYig0NCkyMDI1IDM5MjUgeSBGZChybF9mb3JjZWRfdXBkYXRlX2Rpc3BsYXkpMjUgYgorRmEoLikxMiBiKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnCisoLilnKC4pNDYgYiBGYigzMykyMDI1IDQwMTMgeSBGZChybF9mcmVlX2xpbmVfc3RhdGUpMTAKK2IgRmEoLikxNyBiKC4pMTIgYiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKTM2IGIgRmIoNDApMjAyNQorNDEwMiB5IEZkKHJsX2ZyZWVfdW5kb19saXN0KTEyIGIgRmEoLilrKC4pYyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcKKyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLikzOAorYiBGYigzMikyMDI1IDQxOTAgeSBGZChybF9mdW5jdGlvbl9kdW1wZXIpMTAgYiBGYSguKTE3CitiKC4pMTIgYiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKQorZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKTM2IGIgRmIoMzEpMjAyNSA0Mjc5IHkgRmQKKyhybF9mdW5jdGlvbl9vZl9rZXlzZXEpMjkgYiBGYSguKTEyIGIoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLik1MCBiIEZiKDMxKTIwMjUKKzQzNjcgeSBGZChybF9mdW5tYXBfbmFtZXMpMTUgYiBGYSguKWcoLillKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikKK2goLik0MCBiIEZiKDMxKTIwMjUgNDQ1NiB5IEZkKHJsX2dlbmVyaWNfYmluZCkxNSBiIEZhKC4pZyguKWUoLilmKC4pZworKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikKK2YoLilnKC4paCguKWYoLilnKC4paCguKTQwIGIgRmIoMzApMjAyNSA0NTQ0IHkgRmQocmxfZ2V0X2tleW1hcCkxOAorYiBGYSguKWQoLilkKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLikKK2goLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLik0MworYiBGYigyOSkyMDI1IDQ2MzIgeSBGZChybF9nZXRfa2V5bWFwX2J5X25hbWUpMjkgYiBGYSguKTEyCitiKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcKKyguKWgoLilmKC4pNTAgYiBGYigyOSkyMDI1IDQ3MjEgeSBGZChybF9nZXRfa2V5bWFwX25hbWUpMTAKK2IgRmEoLikxNyBiKC4pMTIgYiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKTM2IGIgRmIoMjkpMjAyNQorNDgwOSB5IEZkKHJsX2dldF9zY3JlZW5fc2l6ZSkxMCBiIEZhKC4pMTcgYiguKTEyIGIoLilnKC4pZyguKWgoLilmKC4pZworKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLikKKzM2IGIgRmIoNDEpMjAyNSA0ODk4IHkgRmQocmxfZ2V0X3Rlcm1jYXApMTYgYiBGYSguKWYoLillKC4pZiguKWcoLiloKC4pCitmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgKKyguKWYoLilnKC4pZyguKWgoLilmKC4pNDIgYiBGYigzNykyMDI1IDQ5ODYgeSBGZChybF9nZXRjKTgKK2IgRmEoLikxNCBiKC4pZSguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloCisoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKQorZyguKWgoLilmKC4pMzQgYiBGYigzNCkyMDI1IDUwNzUgeSBGZChybF9nZXRjX2Z1bmN0aW9uKTEzCitiIEZhKC4paiguKWMoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKQorZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKTM5IGIgRmIoMjYpMjAyNQorNTE2MyB5IEZkKHJsX2dudV9yZWFkbGluZV9wKTEyIGIgRmEoLilrKC4pYyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcKKyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLikzOAorYiBGYigyNSkyMDI1IDUyNTIgeSBGZChybF9pZ25vcmVfY29tcGxldGlvbl9kdXBsaWNhdGUpcShzKTEwCitiIEZhKC4pMTggYiguKTEyIGIoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKTM1CitiIEZiKDQ2KTIwMjUgNTM0MCB5IEZkKHJsX2lnbm9yZV9zb21lX2NvbXBsZXRpb25zX2Z1bilxKGN0aW9uKTI5CitiIEZhKC4pMTIgYiguKWcoLiloKC4pZiguKWcoLik0OCBiIEZiKDQ0KXAgZW9wIGVuZAorJSVQYWdlOiA2OSA3MworVGVYRGljdCBiZWdpbiA2OSA3MiBib3AgMTUwIC0xMTYgYSBGdChGKS04IGIodW5jdGlvbikzMQorYihhbmQpZihWKS04IGIoYXJpYWJsZSkzMiBiKEluZGV4KTIzNzAgYig2OSkxNTAgMjk5IHkKK0ZkKHJsX2luaGliaXRfY29tcGxldGlvbikyOSBiIEZhKC4pMTIgYiguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKTUwIGIgRmIoNDcpMTUwCiszODcgeSBGZChybF9pbml0aWFsaXplKTE4IGIgRmEoLilkKC4pZCguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloCisoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKQoraCguKWYoLik0MyBiIEZiKDM2KTE1MCA0NzYgeSBGZChybF9pbnNlcnRfY29tcGxldGlvbnMpMjkKK2IgRmEoLikxMiBiKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4pNTAgYiBGYig0MykxNTAgNTY0IHkgRmQocmxfaW5zZXJ0X3RleHQpMTYKK2IgRmEoLilnKC4pYyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4pCitoKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLik0MiBiCitGYigzNCkxNTAgNjUyIHkgRmQocmxfaW5zdHJlYW0pMjMgYiBGYSguKTEyIGIoLiloKC4pZiguKWcoLiloKC4pZiguKWcKKyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pCitmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pNDYgYiBGYigyNSkxNTAgNzQwIHkgRmQKKyhybF9pbnZva2luZ19rZXlzZXFzKTkgYiBGYSguKTE3IGIoLikxMiBiKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikzNAorYiBGYigzMSkxNTAgODI5IHkgRmQocmxfaW52b2tpbmdfa2V5c2Vxc19pbl9tYXApMTcgYgorRmEoLiloKC4pMTIgYiguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLik0MgorYiBGYigzMSkxNTAgOTE3IHkgRmQocmxfa2lsbF90ZXh0KTIyIGIgRmEoLikxMiBiKC4pZyguKWgoLilmKC4pZyguKWgoLikKK2YoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4pNDUgYiBGYigzNCkxNTAgMTAwNSB5IEZkKHJsX2xhc3RfZnVuYykyMgorYiBGYSguKTEyIGIoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4pNDUKK2IgRmIoMjUpMTUwIDEwOTQgeSBGZChybF9saWJyYXJ5X3ZlcnNpb24pMTAgYiBGYSguKTE3CitiKC4pMTIgYiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKQorZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKTM2IGIgRmIoMjUpMTUwIDExODIgeSBGZChybF9saW5lX2J1ZmZlcikxNgorYiBGYSguKWcoLiljKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLikKK2goLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKTQyIGIKK0ZiKDI0KTE1MCAxMjcwIHkgRmQocmxfbGlzdF9mdW5tYXBfbmFtZXMpNyBiIEZhKC4pMTcKK2IoLiljKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKTMzIGIgRmIoMzEpMTUwIDEzNTkgeSBGZChybF9tYWNyb19iaW5kKTE4CitiIEZhKC4pZCguKWQoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKQorZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKTQzCitiIEZiKDM3KTE1MCAxNDQ3IHkgRmQocmxfbWFjcm9fZHVtcGVyKTE1IGIgRmEoLilnKC4pZSguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pCitmKC4pZyguKWcoLiloKC4pNDAgYiBGYigzNykxNTAgMTUzNSB5IEZkKHJsX21ha2VfYmFyZV9rZXltYXApOQorYiBGYSguKTE3IGIoLikxMiBiKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikzNCBiIEZiKDI4KTE1MCAxNjI0Cit5IEZkKHJsX21ha2Vfa2V5bWFwKTE2IGIgRmEoLilnKC4pYyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikKKzQyIGIgRmIoMjkpMTUwIDE3MTIgeSBGZChybF9tYXJrKTggYiBGYSguKTE0IGIoLillKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4pCitoKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikzNCBiCitGYigyNCkxNTAgMTgwMCB5IEZkKHJsX21lc3NhZ2UpMjQgYiBGYSguKTEzIGIoLilmKC4pZyguKWgoLilmKC4pZyguKWcKKyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pCitnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKTQ3IGIgRmIoMzMpMTUwIDE4ODkgeQorRmQocmxfbW9kaWZ5aW5nKTIyIGIgRmEoLikxMiBiKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZworKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLikKK2YoLilnKC4pNDUgYiBGYigzMikxNTAgMTk3NyB5IEZkKHJsX25hbWVkX2Z1bmN0aW9uKTEyCitiIEZhKC4payguKWMoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKQorZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pMzcgYiBGYigzMSkxNTAgMjA2NQoreSBGZChybF9udW1fY2hhcnNfdG9fcmVhZCk3IGIgRmEoLikxNyBiKC4pYyguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLikzMworYiBGYigyNCkxNTAgMjE1NCB5IEZkKHJsX251bWVyaWNfYXJnKTE2IGIgRmEoLilnKC4pYyguKWcoLiloKC4pZiguKWcoLikKK2goLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKTQyIGIgRmIoMjgpMTUwIDIyNDIgeSBGZChybF9vbl9uZXdfbGluZSkxNgorYiBGYSguKWcoLiljKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLikKK2goLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKTQyIGIKK0ZiKDMzKTE1MCAyMzMwIHkgRmQocmxfb25fbmV3X2xpbmVfd2l0aF9wcm9tcHQpMTcgYiBGYSguKWgoLikxMgorYiguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLik0MgorYiBGYigzMykxNTAgMjQxOSB5IEZkKHJsX291dHN0cmVhbSkyMiBiIEZhKC4pMTIgYiguKWcoLiloKC4pZiguKWcoLiloCisoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKQoraCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKTQ1IGIgRmIoMjUpMTUwIDI1MDcgeSBGZChybF9wYXJzZV9hbmRfYmluZCkKKzEyIGIgRmEoLilrKC4pYyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikzNyBiIEZiKDMxKTE1MAorMjU5NSB5IEZkKHJsX3BlbmRpbmdfaW5wdXQpMTMgYiBGYSguKWooLilkKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikKKzM5IGIgRmIoMjQpMTUwIDI2ODQgeSBGZChybF9wb2ludCk3IGIgRmEoLikxNCBiKC4pZSguKWcoLiloKC4pZiguKWcoLiloCisoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKQoraCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLikzMiBiIEZiKDI0KTE1MAorMjc3MiB5IEZkKHJsX3Bvc3NpYmxlX2NvbXBsZXRpb25zKTI2IGIgRmEoLikxMyBiKC4pZiguKWcoLiloKC4pZiguKWcoLikKK2goLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKTQ3IGIKK0ZiKDQzKTE1MCAyODYwIHkgRmQocmxfcHJlX2lucHV0X2hvb2spMTIgYiBGYSguKWsoLiljKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLikKK2coLiloKC4pMzcgYiBGYigyNikxNTAgMjk0OCB5IEZkKHJsX3ByZWZlcl9lbnZfd2luc2l6ZSkyOQorYiBGYSguKTEyIGIoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLik1MCBiIEZiKDI1KTE1MCAzMDM3IHkgRmQocmxfcHJlcF90ZXJtX2Z1bmN0aW9uKTI5CitiIEZhKC4pMTIgYiguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKTUwIGIgRmIoMjYpMTUwIDMxMjUgeSBGZChybF9wcmVwX3Rlcm1pbmFsKTEzCitiIEZhKC4paiguKWQoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKQorZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKTM5IGIgRmIoMzUpMTUwCiszMjEzIHkgRmQocmxfcHJvbXB0KTI1IGIgRmEoLikxMyBiKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloCisoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKQorZyguKWgoLilmKC4pZyguKWgoLilmKC4pNDkgYiBGYigyNSkxNTAgMzMwMiB5IEZkKHJsX3B1c2hfbWFjcm9faW5wdXQpOQorYiBGYSguKTE3IGIoLikxMiBiKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikzNCBiIEZiKDM0KTE1MCAzMzkwCit5IEZkKHJsX3JlYWRfaW5pdF9maWxlKTEyIGIgRmEoLilrKC4pYyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikzNworYiBGYigzMSkxNTAgMzQ3OCB5IEZkKHJsX3JlYWRfa2V5KTIzIGIgRmEoLikxMiBiKC4paCguKWYoLilnKC4paCguKWYoLikKK2coLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKTQ2IGIgRmIoMzQpMTUwIDM1NjcgeQorRmQocmxfcmVhZGxpbmVfbmFtZSkxMyBiIEZhKC4paiguKWQoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcKKyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKTM5CitiIEZiKDI1KTE1MCAzNjU1IHkgRmQocmxfcmVhZGxpbmVfc3RhdGUpMTIgYiBGYSguKWsoLiljKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLikKK2coLiloKC4pMzcgYiBGYigyNikxNTAgMzc0MyB5IEZkKHJsX3JlYWRsaW5lX3ZlcnNpb24pOQorYiBGYSguKTE3IGIoLikxMiBiKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikzNCBiIEZiKDI1KTE1MCAzODMyCit5IEZkKHJsX3JlZGlzcGxheSkyMiBiIEZhKC4pMTIgYiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKQorZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloCisoLilmKC4pZyguKTQ1IGIgRmIoMzIpMTUwIDM5MjAgeSBGZChybF9yZWRpc3BsYXlfZnVuY3Rpb24pMjkKK2IgRmEoLikxMiBiKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4pNTAgYiBGYigyNikxNTAgNDAwOCB5IEZkKHJsX3JlcGxhY2VfbGluZSkxNQorYiBGYSguKWcoLillKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikKK2goLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pNDAgYiBGYigzNikxNTAKKzQwOTcgeSBGZChybF9yZXNldF9hZnRlcl9zaWduYWwpMjkgYiBGYSguKTEyIGIoLiloKC4pZiguKWcoLiloKC4pZiguKWcKKyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLik1MAorYiBGYig0MSkxNTAgNDE4NSB5IEZkKHJsX3Jlc2V0X2xpbmVfc3RhdGUpOSBiIEZhKC4pMTcKK2IoLikxMiBiKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pCitmKC4pZyguKWgoLilmKC4pZyguKWgoLikzNCBiIEZiKDMzKTE1MCA0MjczIHkgRmQocmxfcmVzZXRfc2NyZWVuX3NpemUpNworYiBGYSguKTE3IGIoLiljKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcKKyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKTMzIGIgRmIoNDEpMTUwIDQzNjIgeSBGZChybF9yZXNldF90ZXJtaW5hbCkKKzEyIGIgRmEoLilrKC4pYyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikzNyBiIEZiKDM1KTE1MAorNDQ1MCB5IEZkKHJsX3Jlc2l6ZV90ZXJtaW5hbCkxMCBiIEZhKC4pMTcgYiguKTEyIGIoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikKKzM2IGIgRmIoNDEpMTUwIDQ1MzggeSBGZChybF9yZXN0b3JlX3Byb21wdCkxMiBiIEZhKC4payguKWMoLiloKC4pZiguKWcKKyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pCitmKC4pZyguKWgoLikzNyBiIEZiKDMzKTE1MCA0NjI3IHkgRmQocmxfc2F2ZV9wcm9tcHQpMTYKK2IgRmEoLilnKC4pYyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4pCitoKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLik0MiBiCitGYigzMykxNTAgNDcxNSB5IEZkKHJsX3NldF9rZXkpMjQgYiBGYSguKTEzIGIoLilmKC4pZyguKWgoLilmKC4pZyguKWcKKyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pCitnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKTQ3IGIgRmIoMzApMTUwIDQ4MDMgeQorRmQocmxfc2V0X2tleWJvYXJkX2lucHV0X3RpbWVvdXQpMTQgYiBGYSguKWooLiljKC4pZiguKWcoLiloKC4pZiguKWcoLikKK2goLilmKC4pZyguKWgoLilmKC4pMzggYiBGYigzNSkxNTAgNDg5MiB5IEZkKHJsX3NldF9rZXltYXApMTgKK2IgRmEoLilkKC4pZCguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pCitmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pNDMKK2IgRmIoMjkpMTUwIDQ5ODAgeSBGZChybF9zZXRfcGFyZW5fYmxpbmtfdGltZW91dCkxNyBiCitGYSguKWgoLikxMiBiKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKTQyCitiIEZiKDM3KTIwMjUgMjk5IHkgRmQocmxfc2V0X3Byb21wdCkxOCBiIEZhKC4pZCguKWQoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLikKK2coLiloKC4pZiguKWcoLiloKC4pNDMgYiBGYigzNCkyMDI1IDM4NiB5IEZkKHJsX3NldF9zY3JlZW5fc2l6ZSkxMAorYiBGYSguKTE3IGIoLikxMiBiKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pMzYgYiBGYig0MSkyMDI1Cis0NzMgeSBGZChybF9zZXRfc2lnbmFscykxNiBiIEZhKC4pZiguKWUoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZworKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLikKK2YoLik0MiBiIEZiKDQxKTIwMjUgNTYxIHkgRmQocmxfc2hvd19jaGFyKTIyIGIgRmEoLikxMgorYiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnCisoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLik0NQorYiBGYigzMykyMDI1IDY0OCB5IEZkKHJsX3NwZWNpYWxfcHJlZml4ZXMpOSBiIEZhKC4pMTYKK2IoLilkKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLikzNSBiIEZiKDQ1KTIwMjUgNzM1IHkgRmQocmxfc3RhcnR1cF9ob29rKTE1CitiIEZhKC4pZyguKWUoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKQorZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLik0MCBiIEZiKDI2KTIwMjUKKzgyMiB5IEZkKHJsX3N0dWZmX2NoYXIpMTggYiBGYSguKWQoLilkKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgKKyguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pCitnKC4paCguKTQzIGIgRmIoMzUpMjAyNSA5MTAgeSBGZChybF90ZXJtaW5hbF9uYW1lKTEzCitiIEZhKC4paiguKWMoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKQorZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKTM5IGIgRmIoMjUpMjAyNQorOTk3IHkgRmQocmxfdHR5X3NldF9kZWZhdWx0X2JpbmRpbmdzKTE2IGIgRmEoLilpKC4pMTIKK2IoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLik0MQorYiBGYigzNSkyMDI1IDEwODQgeSBGZChybF90dHlfdW5zZXRfZGVmYXVsdF9iaW5kaW5ncykxMworYiBGYSguKTE4IGIoLikxMyBiKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKTM4CitiIEZiKDM1KTIwMjUgMTE3MSB5IEZkKHJsX3VuYmluZF9jb21tYW5kX2luX21hcCkyNSBiCitGYSguKTEyIGIoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcKKyguKWcoLik0NiBiIEZiKDMwKTIwMjUgMTI1OSB5IEZkKHJsX3VuYmluZF9mdW5jdGlvbl9pbl9tYXApMTgKK2IgRmEoLilnKC4pMTIgYiguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmCisoLik0NCBiIEZiKDMwKTIwMjUgMTM0NiB5IEZkKHJsX3VuYmluZF9rZXkpMTggYiBGYSguKWQoLilkKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKQoraCguKWYoLilnKC4paCguKWYoLilnKC4paCguKTQzIGIgRmIoMzApMjAyNSAxNDMzIHkgRmQKKyhybF91bmJpbmRfa2V5X2luX21hcCk3IGIgRmEoLikxNyBiKC4pMTIgYiguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgKKyguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLikzMworYiBGYigzMCkyMDI1IDE1MjAgeSBGZChybF91c2VybmFtZV9jb21wbGV0aW9uX2Z1bmN0aW8pcShuKTEwCitiIEZhKC4pMTggYiguKTEyIGIoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKTM1CitiIEZiKDQzKTIwMjUgMTYwOCB5IEZkKHJsX3ZhcmlhYmxlX2JpbmQpMTMgYiBGYSguKWooLiljKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLikKK2coLiloKC4pZiguKTM5IGIgRmIoMzcpMjAyNSAxNjk1IHkgRmQocmxfdmFyaWFibGVfZHVtcGVyKTEwCitiIEZhKC4pMTcgYiguKTEyIGIoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLikzNiBiIEZiKDM3KTIwMjUKKzE3ODIgeSBGZChybF92YXJpYWJsZV92YWx1ZSkxMiBiIEZhKC4payguKWMoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnCisoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4pMzgKK2IgRmIoMzcpMjAyNSAyMDI1IHkgRnIoUykyMDI1IDIxNDEgeSBGZChzZWxmLWluc2VydCkyOAorYihcKGEsKWUoYiwpZyhBLClnKDEsKWcoISwpZyguLi4pcShcKSkxMyBiIEZhKC4pZiguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4paCguKTM4IGIgRmIoMTUpMjAyNSAyMjI4IHkgRmQoc2V0LW1hcmspMjcKK2IoXChDLUBcKSlkIEZhKC4pMTMgYiguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZworKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pNDkKK2IgRmIoMTgpMjAyNSAyMzE1IHkoc2hvKW4ody1hbGwtaWYtYW0pbihiaWd1b3VzKTIyIGIKK0ZhKC4pMTMgYiguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLik0NyBiIEZiKDcpMjAyNSAyNDAzCit5KHNobyluKHctYWxsLWlmLXVubW8pcihkaVwwMTRlZCkxMiBiIEZhKC4paCguKWYoLiloKC4pZiguKWcoLiloKC4pZiguKQorZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikzOQorYiBGYig3KTIwMjUgMjQ5MCB5IEZkKHN0YXJ0LWtiZC1tYWNybykyOSBiKFwoQy14KWQoXChcKSkxNworYiBGYSguKWMoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikKK2YoLilnKC4paCguKTQyIGIgRmIoMTgpMjAyNSAyNzMxIHkgRnIoVCkyMDI1IDI4NDggeSBGZCh0YWItaW5zZXJ0KTI4CitiKFwoTS0pMjU2MCAyODQ1IHkgRmsoaClwIDI1ODUgMjc5MSAxNDggNCB2IDI1ODUgMjg0OAorYSBGaihUKS02IGIoQUIpcCAyNTg1IDI4NjMgViAyNzI4IDI4NDUgYSBGayhpKTI3NTggMjg0OAoreSBGZChcKSkxMyBiIEZhKC4pZyguKWYoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcKKyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pMzkgYiBGYigxNSkyMDI1IDI5MzUKK3kgRmQodGlsZGUtZXhwYW5kKTI4IGIoXChNLX5cKSkxNyBiIEZhKC4pZCguKWUoLilnKC4paCguKWYoLilnKC4paCguKWYKKyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLik0MworYiBGYigxOCkyMDI1IDMwMjIgeSBGZCh0cmFuc3Bvc2UtY2hhcnMpMjkgYihcKEMtdFwpKTEzCitiIEZhKC4pZyguKWYoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKQorZyguKWgoLilmKC4pZyguKWcoLikzOSBiIEZiKDE1KTIwMjUgMzEwOSB5IEZkKHRyYW5zcG9zZS13b3JkcykyOQorYihcKE0tdFwpKTEzIGIgRmEoLilnKC4pZiguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmCisoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKTM5IGIgRmIoMTUpMjAyNSAzMzYxCit5IEZyKFUpMjAyNSAzNDc3IHkgRmQodW5kbykyNiBiKFwoQy1fKWgob3IpZihDLXgpZyhDLXVcKSkxNQorYiBGYSguKWUoLilnKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikKK2goLilmKC4pZyguKWgoLilmKC4pZyguKTQxIGIgRmIoMTgpMjAyNSAzNTY1IHkgRmQodW5pdmVyc2FsLWFyZ3VtZW50KTI5CitiKFwoXCkpMTMgYiBGYSguKWcoLilmKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnCisoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4pMzkgYiBGYigxNykyMDI1IDM2NTIgeQorRmQodW5peC1maWxlbmFtZS1ydWJvdXQpMzAgYihcKFwpKTEwIGIgRmEoLilqKC4pZiguKWcoLiloKC4pZiguKWcoLiloCisoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLikzNgorYiBGYigxNikyMDI1IDM3MzkgeSBGZCh1bml4LWxpbmUtZGlzY2FyZCkyOSBiKFwoQy11XCkpMTAKK2IgRmEoLilrKC4pZSguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pCitoKC4pZiguKWcoLikzNiBiIEZiKDE2KTIwMjUgMzgyNiB5IEZkKHVuaXgtd29yZC1ydWJvdXQpMjkKK2IoXChDLXdcKSkxMSBiIEZhKC4paiguKWUoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4paAorKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKTM3IGIgRmIoMTYpMjAyNSAzOTE0IHkKK0ZkKHVwY2FzZS13b3JkKTI4IGIoXChNLXVcKSkyMCBiIEZhKC4pMTIgYiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcKKyguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pCis0NCBiIEZiKDE1KTIwMjUgNDE2NSB5IEZyKFYpMjAyNSA0MjgyIHkgRmQodmktZWRpdGluZy1tb2RlKTI5CitiKFwoTS1DLWpcKSkxMCBiIEZhKC4payguKWUoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZworKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pMzYgYiBGYigxOSkyMDI1IDQzNjkgeSh2aXNpYmxlLXN0YXRzKTIyCitiIEZhKC4pMTIgYiguKWgoLilmKC4pZyguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZiguKWcoLiloKC4pZgorKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikKKzQ3IGIgRmIoNykyMDI1IDQ2MDIgeSBGcihZKTIwMjUgNDcxOCB5IEZkKHlhbmspMjYgYihcKEMteVwpKTExCitiIEZhKC4paSguKWcoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKQoraCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLikzNgorYiBGYigxNykyMDI1IDQ4MDUgeSBGZCh5YW5rLWxhc3QtYXJnKTI4IGIoXChNLS4pZihvcilmKE0tX1wpKTIwCitiIEZhKC4pMTIgYiguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcoLiloKC4pZgorKC4pNDUgYiBGYigxNCkyMDI1IDQ4OTMgeSBGZCh5YW5rLW50aC1hcmcpMjggYihcKE0tQy15XCkpMTQKK2IgRmEoLilnKC4pZiguKWYoLilnKC4paCguKWYoLilnKC4paCguKWYoLilnKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pCitnKC4paCguKWYoLilnKC4paCguKWYoLik0MCBiIEZiKDE0KTIwMjUgNDk4MCB5IEZkKHlhbmstcG9wKTI3CitiKFwoTS15XCkpZCBGYSguKTEzIGIoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWcKKyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKWgoLilmKC4pZyguKTQ5CitiIEZiKDE3KXAgZW9wIGVuZAorJSVQYWdlOiA3MCA3NAorVGVYRGljdCBiZWdpbiA3MCA3MyBib3AgMTUwIC0xMTYgYSBGdCg3MCkyNjAwIGIoR05VKTMxCitiKFJlYWRsaW5lKWcoTGlicmFyeSlwIGVvcCBlbmQKKyUlVHJhaWxlcgorCiB1c2VyZGljdCAvZW5kLWhvb2sga25vd257ZW5kLWhvb2t9aWYKICUlRU9GCmRpZmYgLS1naXQgYS9yZWFkbGluZS9kb2MvcmVhZGxpbmVfMy5wcyBiL3JlYWRsaW5lL2RvYy9yZWFkbGluZV8zLnBzCmluZGV4IDdkMjBlMTcuLmIyMTA2YWNiIDEwMDY0NAotLS0gYS9yZWFkbGluZS9kb2MvcmVhZGxpbmVfMy5wcworKysgYi9yZWFkbGluZS9kb2MvcmVhZGxpbmVfMy5wcwpAQCAtMSwxNyArMSwyMiBAQAogJSFQUy1BZG9iZS0zLjAKLSUlQ3JlYXRvcjogZ3JvZmYgdmVyc2lvbiAxLjE3LjIKLSUlQ3JlYXRpb25EYXRlOiBUaHUgSnVuIDI3IDEzOjU0OjQ0IDIwMDIKKyUlQ3JlYXRvcjogZ3JvZmYgdmVyc2lvbiAxLjE5LjEKKyUlQ3JlYXRpb25EYXRlOiBUdWUgRGVjICA2IDE1OjQ2OjQxIDIwMDUKICUlRG9jdW1lbnROZWVkZWRSZXNvdXJjZXM6IGZvbnQgVGltZXMtUm9tYW4KICUlKyBmb250IFRpbWVzLUJvbGQKICUlKyBmb250IFRpbWVzLUl0YWxpYwogJSUrIGZvbnQgQ291cmllcgotJSVEb2N1bWVudFN1cHBsaWVkUmVzb3VyY2VzOiBwcm9jc2V0IGdyb3BzIDEuMTcgMgorJSVEb2N1bWVudFN1cHBsaWVkUmVzb3VyY2VzOiBwcm9jc2V0IGdyb3BzIDEuMTkgMQogJSVQYWdlczogMTQKICUlUGFnZU9yZGVyOiBBc2NlbmQKKyUlRG9jdW1lbnRNZWRpYTogRGVmYXVsdCA1OTUgODQyIDAgKCkgKCkKICUlT3JpZW50YXRpb246IFBvcnRyYWl0CiAlJUVuZENvbW1lbnRzCislJUJlZ2luRGVmYXVsdHMKKyUlUGFnZU1lZGlhOiBEZWZhdWx0CislJUVuZERlZmF1bHRzCiAlJUJlZ2luUHJvbG9nCi0lJUJlZ2luUmVzb3VyY2U6IHByb2NzZXQgZ3JvcHMgMS4xNyAyCislJUJlZ2luUmVzb3VyY2U6IHByb2NzZXQgZ3JvcHMgMS4xOSAxCislIVBTLUFkb2JlLTMuMCBSZXNvdXJjZS1Qcm9jU2V0CiAvc2V0cGFja2luZyB3aGVyZXsKIHBvcAogY3VycmVudHBhY2tpbmcKQEAgLTEwOSwxMSArMTE0LDI2IEBACiAvU1Qvc3Ryb2tlIGxvYWQgZGVmCiAvTVQvbW92ZXRvIGxvYWQgZGVmCiAvQ0wvY2xvc2VwYXRoIGxvYWQgZGVmCi0vRkx7Ci1jdXJyZW50Z3JheSBleGNoIHNldGdyYXkgZmlsbCBzZXRncmF5CisvRnJ7CitzZXRyZ2Jjb2xvciBmaWxsCiB9YmluZCBkZWYKLS9CTC9maWxsIGxvYWQgZGVmCisvc2V0Y215a2NvbG9yIHdoZXJleworcG9wCisvRmt7CitzZXRjbXlrY29sb3IgZmlsbAorfWJpbmQgZGVmCit9aWYKKy9GZ3sKK3NldGdyYXkgZmlsbAorfWJpbmQgZGVmCisvRkwvZmlsbCBsb2FkIGRlZgogL0xXL3NldGxpbmV3aWR0aCBsb2FkIGRlZgorL0NyL3NldHJnYmNvbG9yIGxvYWQgZGVmCisvc2V0Y215a2NvbG9yIHdoZXJleworcG9wCisvQ2svc2V0Y215a2NvbG9yIGxvYWQgZGVmCit9aWYKKy9DZy9zZXRncmF5IGxvYWQgZGVmCiAvUkV7CiBmaW5kZm9udAogZHVwIG1heGxlbmd0aCAxIGluZGV4L0ZvbnROYW1lIGtub3duIG5vdHsxIGFkZH1pZiBkaWN0IGJlZ2luCkBAIC0xNTUsNiArMTc1LDcgQEAKIC9DTlQgY291bnRkaWN0c3RhY2sgZGVmCiB1c2VyZGljdCBiZWdpbgogL3Nob3dwYWdle31kZWYKKy9zZXRwYWdlZGV2aWNle31kZWYKIH1iaW5kIGRlZgogL1BFTkR7CiBjbGVhcgpAQCAtMTY3LDE2ICsxODgsMjEgQEAKIHNldHBhY2tpbmcKIH1pZgogJSVFbmRSZXNvdXJjZQorJSVFbmRQcm9sb2cKKyUlQmVnaW5TZXR1cAorJSVCZWdpbkZlYXR1cmU6ICpQYWdlU2l6ZSBEZWZhdWx0Cis8PCAvUGFnZVNpemUgWyA1OTUgODQyIF0gL0ltYWdpbmdCQm94IG51bGwgPj4gc2V0cGFnZWRldmljZQorJSVFbmRGZWF0dXJlCiAlJUluY2x1ZGVSZXNvdXJjZTogZm9udCBUaW1lcy1Sb21hbgogJSVJbmNsdWRlUmVzb3VyY2U6IGZvbnQgVGltZXMtQm9sZAogJSVJbmNsdWRlUmVzb3VyY2U6IGZvbnQgVGltZXMtSXRhbGljCiAlJUluY2x1ZGVSZXNvdXJjZTogZm9udCBDb3VyaWVyCiBncm9wcyBiZWdpbi9ERUZTIDEgZGljdCBkZWYgREVGUyBiZWdpbi91ey4wMDEgbXVsfWJpbmQgZGVmIGVuZC9SRVMgNzIKLWRlZi9QTCA3OTIgZGVmL0xTIGZhbHNlIGRlZi9FTkMwWy9hc2NpaWNpcmN1bS9hc2NpaXRpbGRlL1NjYXJvbi9aY2Fyb24KLS9zY2Fyb24vemNhcm9uL1lkaWVyZXNpcy90cmFkZW1hcmsvcXVvdGVzaW5nbGUvLm5vdGRlZi8ubm90ZGVmLy5ub3RkZWYKK2RlZi9QTCA4NDEuODkgZGVmL0xTIGZhbHNlIGRlZi9FTkMwWy9hc2NpaWNpcmN1bS9hc2NpaXRpbGRlL1NjYXJvbgorL1pjYXJvbi9zY2Fyb24vemNhcm9uL1lkaWVyZXNpcy90cmFkZW1hcmsvcXVvdGVzaW5nbGUvRXVyby8ubm90ZGVmCiAvLm5vdGRlZi8ubm90ZGVmLy5ub3RkZWYvLm5vdGRlZi8ubm90ZGVmLy5ub3RkZWYvLm5vdGRlZi8ubm90ZGVmLy5ub3RkZWYKIC8ubm90ZGVmLy5ub3RkZWYvLm5vdGRlZi8ubm90ZGVmLy5ub3RkZWYvLm5vdGRlZi8ubm90ZGVmLy5ub3RkZWYvLm5vdGRlZgotLy5ub3RkZWYvLm5vdGRlZi9zcGFjZS9leGNsYW0vcXVvdGVkYmwvbnVtYmVyc2lnbi9kb2xsYXIvcGVyY2VudAorLy5ub3RkZWYvLm5vdGRlZi8ubm90ZGVmL3NwYWNlL2V4Y2xhbS9xdW90ZWRibC9udW1iZXJzaWduL2RvbGxhci9wZXJjZW50CiAvYW1wZXJzYW5kL3F1b3RlcmlnaHQvcGFyZW5sZWZ0L3BhcmVucmlnaHQvYXN0ZXJpc2svcGx1cy9jb21tYS9oeXBoZW4KIC9wZXJpb2Qvc2xhc2gvemVyby9vbmUvdHdvL3RocmVlL2ZvdXIvZml2ZS9zaXgvc2V2ZW4vZWlnaHQvbmluZS9jb2xvbgogL3NlbWljb2xvbi9sZXNzL2VxdWFsL2dyZWF0ZXIvcXVlc3Rpb24vYXQvQS9CL0MvRC9FL0YvRy9IL0kvSi9LL0wvTS9OL08KQEAgLTIwMSw3ICsyMjcsNyBAQAogL3VncmF2ZS91YWN1dGUvdWNpcmN1bWZsZXgvdWRpZXJlc2lzL3lhY3V0ZS90aG9ybi95ZGllcmVzaXNdZGVmCiAvQ291cmllckAwIEVOQzAvQ291cmllciBSRS9UaW1lcy1JdGFsaWNAMCBFTkMwL1RpbWVzLUl0YWxpYyBSRQogL1RpbWVzLUJvbGRAMCBFTkMwL1RpbWVzLUJvbGQgUkUvVGltZXMtUm9tYW5AMCBFTkMwL1RpbWVzLVJvbWFuIFJFCi0lJUVuZFByb2xvZworJSVFbmRTZXR1cAogJSVQYWdlOiAxIDEKICUlQmVnaW5QYWdlU2V0dXAKIEJQCkBAIC0yMTUsNyArMjQxLDcgQEAKIC0uMTUoY2gpMTA4IDE2NS42IFMoYXIgKikuMTUgRSBGMiAtLjE4KHJlKTEwOCAxNzcuNiBTKGFkbGluZSkuMTggRSBGMAogKFwoKTIuNSBFIEYzKGNvbnN0IGMpQShoYXIgKnByKS0uMTUgRShvbXB0KS0uNDUgRSBGMChcKTspQSBGMShDT1BZUklHSFQpCiA3MiAxOTQuNCBRIEYwKFJlYWRsaW5lIGlzIENvcCkxMDggMjA2LjQgUQotKHlyaWdodCBcMjUxIDE5ODlcMjU1MjAwMiBieSB0aGUgRnJlZSBTb2Z0dyktLjEgRShhcmUgRiktLjEgRQorKHlyaWdodCBcMjUxIDE5ODlcMjU1MjAwNCBieSB0aGUgRnJlZSBTb2Z0dyktLjEgRShhcmUgRiktLjEgRQogKG91bmRhdGlvbiwgSW5jLiktLjE1IEUgRjEoREVTQ1JJUFRJT04pNzIgMjIzLjIgUSBGMiAtLjE4KHJlKTEwOCAyMzUuMiBTCiAoYWRsaW5lKS4xOCBFIEYwIC4wODgKICh3aWxsIHJlYWQgYSBsaW5lIGZyb20gdGhlIHRlcm1pbmFsIGFuZCByZXR1cm4gaXQsIHVzaW5nKTIuNTg4IEYgRjIocHIpCkBAIC0yNDksMjUgKzI3NSwyNSBAQAogKEFuIGVtYWNzLXN0eWxlIG5vdGF0aW9uIGlzIHVzZWQgdG8gZGVub3RlIGspMTA4IDM5OC40IFIgLS4xNShleSktLjEgRwogKHN0cm9rKS4xNSBFIDIuNjgxKGVzLiBDb250cm9sKS0uMSBGIC0uMShrZSkyLjY4MSBHIC4xOAogKHlzIGFyZSBkZW5vdGVkIGJ5IENcMjU1KS0uMDUgRiBGMyAtLjEoa2UpQyh5KS0uMiBFIEYwIDIuNjgoLGUpQyAuMTgKLSguZy4sIENcMjU1biBtZWFucyktMi42OCBGIDIuNjI1KENvbnRyb2xcMjU1Ti4gU2ltaWxhcmx5KTEwOCA0MTAuNCBSKCwpCi0tLjY1IEUgRjMobWV0YSkyLjYyNSBFIEYwIC0uMShrZSkyLjYyNSBHIC4xMjUoeXMgYXJlIGRlbm90ZWQgYnkgTVwyNTUpCi0tLjA1IEYgRjMgLS4xKGtlKUMoeSktLjIgRSBGMCAyLjYyNSgscylDIDIuNjI1KG9NKS0yLjYyNSBHIC4xMjUKLShcMjU1eCBtZWFucyBNZXRhXDI1NVguKS0yLjYyNSBGIC4xMjYoXChPbiBrKTUuMTI2IEYgLS4xNShleSktLjEgRyAuMTI2Ci0oYm9hcmRzIHdpdGhvdXQgYSkuMTUgRiBGMyhtZXRhKTEwOCA0MjIuNCBRIEYwIC0uMShrZSkzLjMwOSBHIDIuMTA5IC0uNjUKLSh5LCBNKS0uMDUgSDxhZD4uNjUgRSBGMyh4KUEgRjAgLjgwOShtZWFucyBFU0MpMy4zMDkgRiBGMyh4KTMuMzA5IEUgRjAKLTMuMzA5KCxpKUMgLjgwOSguZS4sIHByZXNzIHRoZSBFc2NhcGUgayktMy4zMDkgRiAxLjEwOCAtLjE1KGV5IHQpLS4xIEgKLS44MDgoaGVuIHRoZSkuMTUgRiBGMyh4KTMuMzA4IEUgRjAgLS4xKGtlKTMuMzA4IEcgNC42MDggLS42NSh5LiBUKS0uMDUgSAotLjgwOChoaXMgbWFrKS42NSBGIC44MDgoZXMgRVNDIHRoZSktLjEgRiBGMyAuODA4KG1ldGEgcHIpMy4zMDggRihlXDIxNHgpCi0tLjM3IEUgRjAoLilBIC40OChUaGUgY29tYmluYXRpb24gTVwyNTVDXDI1NSkxMDggNDM0LjQgUiBGMyh4KUEgRjAgLjQ4CisoLmcuLCBDXDI1NW4gbWVhbnMpLTIuNjggRiAyLjU4MihDb250cm9sXDI1NU4uIFNpbWlsYXJseSkxMDggNDEwLjQgUigsKQorLS42NSBFIEYzKG1ldGEpMi45NjIgRSBGMCAtLjEoa2UpMi44NDIgRyAuMDgyKHlzIGFyZSBkZW5vdGVkIGJ5IE1cMjU1KQorLS4wNSBGIEYzIC0uMShrZSlDKHkpLS4yIEUgRjAgMi41ODMoLHMpQyAyLjU4MyhvTSktMi41ODMgRyAuMDgzCisoXDI1NXggbWVhbnMgTWV0YVwyNTVYLiktMi41ODMgRiAuMDgzKFwoT24gayk1LjA4MyBGIC0uMTUoZXkpLS4xIEcgLjA4MworKGJvYXJkcyB3aXRob3V0IGEpLjE1IEYgRjMobWV0YSkxMDggNDIyLjQgUSBGMCAtLjEoa2UpMy40OTEgRyAyLjAzMSAtLjY1CisoeSwgTSktLjA1IEg8YWQ+LjY1IEUgRjMoeClBIEYwIC43MzEobWVhbnMgRVNDKTMuMjMxIEYgRjMoeCkzLjIzMSBFIEYwCiszLjIzMSgsaSlDIC43MzEoLmUuLCBwcmVzcyB0aGUgRXNjYXBlIGspLTMuMjMxIEYgMS4wMyAtLjE1KGV5IHQpLS4xIEgKKy43MyhoZW4gdGhlKS4xNSBGIEYzKHgpNCBFIEYwIC0uMShrZSkzLjc2IEcgNC41MyAtLjY1KHkuIFQpLS4wNSBIIC43MworKGhpcyBtYWspLjY1IEYgLjczKGVzIEVTQyB0aGUpLS4xIEYgRjMgLjczKG1ldGEgcHIpMy4yMyBGKGVcMjE0eCktLjM3IEUKK0YwKC4pQSAuNDgoVGhlIGNvbWJpbmF0aW9uIE1cMjU1Q1wyNTUpMTA4IDQzNC40IFIgRjMoeClBIEYwIC40OAogKG1lYW5zIEVTQ1wyNTVDb250cm9sXDI1NSkyLjk4IEYgRjMoeClBIEYwIDIuOTgoLG8pQyAyLjk4KHJwKS0yLjk4IEcgLjQ4CiAocmVzcyB0aGUgRXNjYXBlIGspLTIuOTggRiAuNzggLS4xNShleSB0KS0uMSBIIC40OAogKGhlbiBob2xkIHRoZSBDb250cm9sIGspLjE1IEYgLjc4IC0uMTUoZXkgdyktLjEgSChoaWxlKS4xNSBFCi0ocHJlc3NpbmcgdGhlKTEwOCA0NDYuNCBRIEYzKHgpMi41IEUgRjAgLS4xKGtlKTIuNSBHIC0uNjUoeS4pLS4wNSBHKFwpKQotLjY1IEUgLjYyKFJlYWRsaW5lIGNvbW1hbmRzIG1heSBiZSBnaSkxMDggNDYzLjIgUiAtLjE1KHZlKS0uMjUgRyAzLjExOQotKG5uKS4xNSBHKHVtZXJpYyktMy4xMTkgRSBGMyhhcikzLjExOSBFKGd1bWVudHMpLS4zNyBFIEYwIDMuMTE5KCx3KS4yNyBHCi0uNjE5KGhpY2ggbm9ybWFsbHkgYWN0IGFzIGEgcmVwZWF0IGNvdW50LiktMy4xMTkgRihTb21ldGltZXMsKTUuNjE5IEUKLShobykxMDggNDc1LjIgUSh3ZSktLjI1IEUgLS4xNSh2ZSktLjI1IEcgMS40MTggLS40KHIsIGkpLjE1IEggMy4xMTgodGkpCi0uNCBHIDMuMTE5KHN0KS0zLjExOCBHIC42MTkoaGUgc2lnbiBvZiB0aGUgYXIpLTMuMTE5IEYgLjYxOQorKHByZXNzaW5nIHRoZSkxMDggNDQ2LjQgUSBGMyh4KTMuMjcgRSBGMCAtLjEoa2UpMy4wMyBHIC0uNjUoeS4pLS4wNSBHCisoXCkpLjY1IEUgLjYyKFJlYWRsaW5lIGNvbW1hbmRzIG1heSBiZSBnaSkxMDggNDYzLjIgUiAtLjE1KHZlKS0uMjUgRworMy4xMTkobm4pLjE1IEcodW1lcmljKS0zLjExOSBFIEYzKGFyKTMuMTE5IEUoZ3VtZW50cyktLjM3IEUgRjAgMy4xMTkoLHcpCisuMjcgRyAuNjE5KGhpY2ggbm9ybWFsbHkgYWN0IGFzIGEgcmVwZWF0IGNvdW50LiktMy4xMTkgRihTb21ldGltZXMsKQorNS42MTkgRShobykxMDggNDc1LjIgUSh3ZSktLjI1IEUgLS4xNSh2ZSktLjI1IEcgMS40MTggLS40KHIsIGkpLjE1IEgKKzMuMTE4KHRpKS40IEcgMy4xMTkoc3QpLTMuMTE4IEcgLjYxOShoZSBzaWduIG9mIHRoZSBhciktMy4xMTkgRiAuNjE5CiAoZ3VtZW50IHRoYXQgaXMgc2lnbmlcMjE0Y2FudC4pLS4xOCBGIC0uMTUoUGEpNS42MTkgRyAuNjE5KHNzaW5nIGEgbmUpCiAuMTUgRiAtLjA1KGdhKS0uMTUgRyh0aSkuMDUgRSAuOTE5IC0uMTUodmUgYSktLjI1IEggLS4xOChyZykuMTUgRyAuNjE5CiAodW1lbnQgdG8gYSBjb21tYW5kIHRoYXQpLjE4IEYgMS4wMTkoYWN0cyBpbiB0aGUgZm9ydykxMDggNDg3LjIgUiAxLjAxOApAQCAtMzA4LDE1ICszMzQsMTUgQEAKICh3biBjb21tYW5kcyBhbmQgYmluZGluZ3MuKS0uMjUgRSAtLjE1KEZvKTEwOCA2NjkuNiBTIDIuNShyZSkuMTUgRwogKHhhbXBsZSwgcGxhY2luZyktMi42NSBFKE1cMjU1Q29udHJvbFwyNTV1OiB1bmkpMTQ0IDY4Ni40IFEgLS4xNSh2ZSktLjI1CiBHKHJzYWxcMjU1YXIpLjE1IEUoZ3VtZW50KS0uMTggRShvcikxMDggNjk4LjQgUShDXDI1NU1ldGFcMjU1dTogdW5pKTE0NAotNzEwLjQgUSAtLjE1KHZlKS0uMjUgRyhyc2FsXDI1NWFyKS4xNSBFKGd1bWVudCktLjE4IEUoR05VIFJlYWRsaW5lIDQuMykKLTcyIDc2OCBRKDIwMDIgSmFudWFyeSAyMikxMjYuMjQgRSgxKTE5NS45NSBFIEVQCis3MTAuNCBRIC0uMTUodmUpLS4yNSBHKHJzYWxcMjU1YXIpLjE1IEUoZ3VtZW50KS0uMTggRQorKEdOVSBSZWFkbGluZSA1LjEtYmV0YTEpNzIgNzY4IFEoMjAwNSBTZXAgMTMpMTA5LjMgRSgxKTIwNCBFIDAgQ2cgRVAKICUlUGFnZTogMiAyCiAlJUJlZ2luUGFnZVNldHVwCiBCUAogJSVFbmRQYWdlU2V0dXAKIC9GMCAxMC9UaW1lcy1Sb21hbkAwIFNGIDM0Mi4yKFJFQURMSU5FXCgzXCkgUkVBRExJTkVcKDNcKSk3MiA0OCBSCi0oaW50byB0aGUpMTA4IDg0IFEvRjEgMTAvVGltZXMtSXRhbGljQDAgU0YoaW5wdXRyKTIuNSBFKGMpLS4zNyBFIEYwIC0uMQotKHdvKTIuNSBHKHVsZCBtYWspLjEgRSAyLjUoZU0pLS4xIEcoXDI1NUNcMjU1dSBlKS0yLjUgRSAtLjE1KHhlKS0uMTUgRworKGludG8gdGhlKTEwOCA4NCBRL0YxIDEwL1RpbWVzLUl0YWxpY0AwIFNGKGlucHV0cikyLjUxIEUoYyktLjM3IEUgRjAgLS4xCisod28pMi44MSBHKHVsZCBtYWspLjEgRSAyLjUoZU0pLS4xIEcoXDI1NUNcMjU1dSBlKS0yLjUgRSAtLjE1KHhlKS0uMTUgRwogKGN1dGUgdGhlIHJlYWRsaW5lIGNvbW1hbmQpLjE1IEUgRjEodW5pdmVyKTIuNSBFKHNhbFwyNTVhciktLjEgRShndW1lbnQpCiAtLjM3IEUgRjAoLikuNjggRSAyLjc5NShUaGUgZm9sbG8pMTA4IDEwMC44IFIgMi43OTUKICh3aW5nIHN5bWJvbGljIGNoYXJhY3RlciBuYW1lcyBhcmUgcmVjb2duaXplZCB3aGlsZSBwcm9jZXNzaW5nIGspLS4yNSBGCkBAIC0zMzEsMzAgKzM1NywzMCBAQAogKG91bmQgdG8gYSBzdHJpbmcgdGhhdCBpcyBpbnNlcnRlZCB3aGVuIHRoZSBrKS0yLjcwOSBGIC41MDkgLS4xNShleSBpKQogLS4xIEgocykuMTUgRShwcmVzc2VkIFwoYSkxMDggMTQxLjYgUSBGMShtYWNyKTIuNSBFKG8pLS40NSBFIEYwKFwpLilBL0YyCiAxMC9UaW1lcy1Cb2xkQDAgU0YgLS4yNShLZSk4NyAxNjMuMiBTIDIuNSh5QikuMjUgRyhpbmRpbmdzKS0yLjUgRSBGMAotLjM4MihUaGUgc3ludGF4IGZvciBjb250cm9sbGluZyBrKTEwOCAxNzUuMiBSIC42ODIgLS4xNShleSBiKS0uMSBIIC4zODIKLShpbmRpbmdzIGluIHRoZSkuMTUgRiBGMShpbnB1dHIpMi44ODIgRShjKS0uMzcgRSBGMCAuMzgyCi0oXDIxNGxlIGlzIHNpbXBsZS4pMi44ODIgRiAuMzgyKEFsbCB0aGF0IGlzIHJlcXVpcmVkIGlzIHRoZSBuYW1lIG9mIHRoZSkKLTUuMzgyIEYgLjM4Mihjb21tYW5kIG9yIHRoZSB0ZSkxMDggMTg3LjIgUiAuMzgzKHh0IG9mIGEgbWFjcm8gYW5kIGEgaykKKy4zNjYoVGhlIHN5bnRheCBmb3IgY29udHJvbGxpbmcgaykxMDggMTc1LjIgUiAuNjY2IC0uMTUoZXkgYiktLjEgSCAuMzY2CisoaW5kaW5ncyBpbiB0aGUpLjE1IEYgRjEoaW5wdXRyKTIuODc2IEUoYyktLjM3IEUgRjAgLjM2NgorKFwyMTRsZSBpcyBzaW1wbGUuKTMuMTc2IEYgLjM2NihBbGwgdGhhdCBpcyByZXF1aXJlZCBpcyB0aGUgbmFtZSBvZiB0aGUpCis1LjM2NiBGIC4zODIoY29tbWFuZCBvciB0aGUgdGUpMTA4IDE4Ny4yIFIgLjM4Myh4dCBvZiBhIG1hY3JvIGFuZCBhIGspCiAtLjE1IEYgLjY4MyAtLjE1KGV5IHMpLS4xIEggLjM4MwogKGVxdWVuY2UgdG8gd2hpY2ggaXQgc2hvdWxkIGJlIGJvdW5kLiBUaGUgbmFtZSBtYXkgYmUgc3BlY2ktKS4xNSBGIC44NTMKIChcMjE0ZWQgaW4gb25lIG9mIHR3KTEwOCAxOTkuMiBSIDMuMzUzKG93KS0uMSBHIC44NTMKIChheXM6IGFzIGEgc3ltYm9saWMgayktMy40NTMgRiAxLjE1MyAtLjE1KGV5IG4pLS4xIEggLjg1MwogKGFtZSwgcG9zc2libHkgd2l0aCkuMTUgRiBGMShNZXRhXDI1NSkzLjM1MyBFIEYwKG9yKTMuMzUzIEUgRjEoQ29udHIpCiAzLjM1MyBFKG9sXDI1NSktLjQ1IEUgRjAocHJlXDIxNHgpMy4zNTMgRSAuODUzKGVzLCBvciBhcyBhIGspLS4xNSBGIC0uMTUKLShleSktLjEgRyhzZXF1ZW5jZS4pMTA4IDIxMS4yIFEgMS43NjYoV2hlbiB1c2luZyB0aGUgZm9ybSkxMDggMjI4IFIgRjIKLS0uMShrZSk0LjI2NiBHKHluYW1lKS4xIEUgRjAoOilBIEYxKGZ1bmN0aW9uLW5hbWUpLjgzMyBFIEYwKG9yKTQuMjY2IEUKLUYxKG1hY3IpNC4yNjcgRShvKS0uNDUgRSBGMCgsKUEgRjEgLS4xKGtlKTQuMjY3IEcoeW5hbWUpLS4yIEUgRjAgMS43NjcKLShpcyB0aGUgbmFtZSBvZiBhIGspNC4yNjcgRiAyLjA2NyAtLjE1KGV5IHMpLS4xIEggMS43NjcocGVsbGVkIG91dCBpbikKKyhleSktLjEgRyhzZXF1ZW5jZS4pMTA4IDIxMS4yIFEgMS43NTUoV2hlbiB1c2luZyB0aGUgZm9ybSkxMDggMjI4IFIgRjIKKy0uMShrZSk0LjI1NSBHKHluYW1lKS4xIEUgRjAoOilBIEYxKGZ1bmN0aW9uLW5hbWUpLjgzMyBFIEYwKG9yKTQuMjU1IEUKK0YxKG1hY3IpNC4yNTUgRShvKS0uNDUgRSBGMCgsKUEgRjEgLS4xKGtlKTQuMjU1IEcoeW5hbWUpLS4yIEUgRjAgMS43NTYKKyhpcyB0aGUgbmFtZSBvZiBhIGspNC40MzUgRiAyLjA1NiAtLjE1KGV5IHMpLS4xIEggMS43NTYocGVsbGVkIG91dCBpbikKIC4xNSBGIDIuNShFbmdsaXNoLiBGKTEwOCAyNDAgUihvciBlKS0uMTUgRSh4YW1wbGU6KS0uMTUgRQogKENvbnRyb2xcMjU1dTogdW5pKTE0NCAyNjQgUSAtLjE1KHZlKS0uMjUgRyhyc2FsXDI1NWFyKS4xNSBFKGd1bWVudCktLjE4CiBFKE1ldGFcMjU1UnVib3V0OiBiYWNrdykxNDQgMjc2IFEoYXJkXDI1NWtpbGxcMjU1dyktLjEgRShvcmQpLS4xIEUKLShDb250cm9sXDI1NW86ICI+IG91dHB1dCIpMTQ0IDI4OCBRIC4yMjkoSW4gdGhlIGFibykxMDggMzA0LjggUiAuNTI5Ci0tLjE1KHZlIGV4KS0uMTUgSChhbXBsZSwpLjE1IEUgRjEoQ1wyNTV1KTIuNzI5IEUgRjAgLjIyOQotKGlzIGJvdW5kIHRvIHRoZSBmdW5jdGlvbikyLjcyOSBGIEYyKHVuaSkyLjcyOSBFIC0uMSh2ZSktLjEgRwotKHJzYWxcMjU1YXIpLjEgRShndW1lbnQpLS4xIEUgRjAoLClBIEYxKE0tREVMKTIuNzI5IEUgRjAgLjIyOAotKGlzIGJvdW5kIHRvIHRoZSBmdW5jdGlvbikyLjcyOSBGIEYyKGJhY2t3YXJkXDI1NWtpbGxcMjU1dykxMDggMzE2LjggUQotKG9yZCktLjEgRSBGMCAzLjgzNygsYSlDKG5kKS0zLjgzNyBFIEYxKENcMjU1bykzLjgzNyBFIEYwIDEuMzM3Ci0oaXMgYm91bmQgdG8gcnVuIHRoZSBtYWNybyBlKTMuODM3IEYgMS4zMzcKKyhDb250cm9sXDI1NW86ICI+IG91dHB1dCIpMTQ0IDI4OCBRIC4xNDgoSW4gdGhlIGFibykxMDggMzA0LjggUiAuNDQ4CistLjE1KHZlIGV4KS0uMTUgSChhbXBsZSwpLjE1IEUgRjEoQ1wyNTV1KTIuNDg4IEUgRjAgLjE0OAorKGlzIGJvdW5kIHRvIHRoZSBmdW5jdGlvbikyLjg5OCBGIEYyKHVuaSkyLjY0NyBFIC0uMSh2ZSktLjEgRworKHJzYWxcMjU1YXIpLjEgRShndW1lbnQpLS4xIEUgRjAoLClBIEYxKE0tREVMKTMuMzI3IEUgRjAgLjE0NworKGlzIGJvdW5kIHRvIHRoZSBmdW5jdGlvbikzLjE3NyBGIEYyKGJhY2t3YXJkXDI1NWtpbGxcMjU1dykxMDggMzE2LjggUQorKG9yZCktLjEgRSBGMCAzLjgzNSgsYSlDKG5kKS0zLjgzNSBFIEYxKENcMjU1bykzLjY3NSBFIEYwIDEuMzM2CisoaXMgYm91bmQgdG8gcnVuIHRoZSBtYWNybyBlKTQuMDE2IEYgMS4zMzYKICh4cHJlc3NlZCBvbiB0aGUgcmlnaHQgaGFuZCBzaWRlIFwodGhhdCBpcywgdG8pLS4xNSBGKGluc2VydCB0aGUgdGUpMTA4CiAzMjguOCBRKHh0KS0uMTUgRS9GMyAxMC9Db3VyaWVyQDAgU0YgNig+bykyLjUgRyh1dHB1dCktNiBFIEYwCiAoaW50byB0aGUgbGluZVwpLikyLjUgRSAuMDU2KEluIHRoZSBzZWNvbmQgZm9ybSwpMTA4IDM0NS42IFIgRjIoImspMi41NTYKQEAgLTM3MCwxNyArMzk2LDE3IEBACiAoYXJlIG5vdCByZWNvZ25pemVkLikxMDggMzgxLjYgUSgiXFxDXDI1NXUiOiB1bmkpMTQ0IDQwNS42IFEgLS4xNSh2ZSkKIC0uMjUgRyhyc2FsXDI1NWFyKS4xNSBFKGd1bWVudCktLjE4IEUKICgiXFxDXDI1NXhcXENcMjU1ciI6IHJlXDI1NXJlYWRcMjU1aW5pdFwyNTVcMjE0bGUpMTQ0IDQxNy42IFEKLSgiXFxlWzExfiI6ICJGdW5jdGlvbiBLKTE0NCA0MjkuNiBRIC4zIC0uMTUoZXkgMSktLjI1IEgoIikuMTUgRSAuMjM3Ci0oSW4gdGhpcyBlKTEwOCA0NDYuNCBSKHhhbXBsZSwpLS4xNSBFIEYxKEMtdSkyLjczNyBFIEYwIC4yMzcoaXMgYWcpMi43MzcKLUYgLjIzOChhaW4gYm91bmQgdG8gdGhlIGZ1bmN0aW9uKS0uMDUgRiBGMih1bmkpMi43MzggRSAtLjEodmUpLS4xIEcKLShyc2FsXDI1NWFyKS4xIEUoZ3VtZW50KS0uMSBFIEYwKC4pQSBGMSAuMjM4KEMteCBDLXIpNS4yMzggRiBGMCAuMjM4Ci0oaXMgYm91bmQgdG8gdGhlIGZ1bmN0aW9uKTIuNzM4IEYgRjIgLS4xOChyZSkxMDggNDU4LjQgUzxhZDcyPi4xOCBFCi0oZWFkXDI1NWluaXRcMjU1XDIxNGxlKS0uMTggRSBGMCAyLjUoLGEpQyhuZCktMi41IEUgRjEoRVNDIFsgMSAxIH4pMi41IEUKLUYwKGlzIGJvdW5kIHRvIGluc2VydCB0aGUgdGUpMi41IEUoeHQpLS4xNSBFIEYzKEZ1bmN0aW9uIEtleSAxKTIuNSBFIEYwCi0oLilBKFRoZSBmdWxsIHNldCBvZiBHTlUgRW1hY3Mgc3R5bGUgZXNjYXBlIHNlcXVlbmNlcyBhKTEwOCA0NzUuMiBRIC0uMjUKLSh2YSktLjIgRyhpbGFibGUgd2hlbiBzcGVjaWZ5aW5nIGspLjI1IEUgLjMgLS4xNShleSBzKS0uMSBIKGVxdWVuY2VzIGlzKQotLjE1IEUgRjI8NWM0M2FkPjE0NCA0ODcuMiBRIEYwKGNvbnRyb2wgcHJlXDIxNHgpMjAuMyBFIEYyPDVjNGRhZD4xNDQKLTQ5OS4yIFEgRjAobWV0YSBwcmVcMjE0eCkxOC4wOCBFIEYyKFxcZSkxNDQgNTExLjIgUSBGMAorKCJcXGVbMTF+IjogIkZ1bmN0aW9uIEspMTQ0IDQyOS42IFEgLjMgLS4xNShleSAxKS0uMjUgSCgiKS4xNSBFIC4xOTgKKyhJbiB0aGlzIGUpMTA4IDQ0Ni40IFIoeGFtcGxlLCktLjE1IEUgRjEoQy11KTIuNTM4IEUgRjAgLjE5OShpcyBhZykyLjk0OQorRiAuMTk5KGFpbiBib3VuZCB0byB0aGUgZnVuY3Rpb24pLS4wNSBGIEYyKHVuaSkyLjY5OSBFIC0uMSh2ZSktLjEgRworKHJzYWxcMjU1YXIpLjEgRShndW1lbnQpLS4xIEUgRjAoLilBIEYxIC4xOTkoQy14IEMtcik1LjAzOSBGIEYwIC4xOTkKKyhpcyBib3VuZCB0byB0aGUgZnVuY3Rpb24pMy40MjkgRiBGMiAtLjE4KHJlKTEwOCA0NTguNCBTPGFkNzI+LjE4IEUKKyhlYWRcMjU1aW5pdFwyNTVcMjE0bGUpLS4xOCBFIEYwIDIuNSgsYSlDKG5kKS0yLjUgRSBGMShFU0MgWyAxIDEgfikzLjAxCitFIEYwKGlzIGJvdW5kIHRvIGluc2VydCB0aGUgdGUpMy45NCBFKHh0KS0uMTUgRSBGMyhGdW5jdGlvbiBLZXkgMSkyLjUgRQorRjAoLilBKFRoZSBmdWxsIHNldCBvZiBHTlUgRW1hY3Mgc3R5bGUgZXNjYXBlIHNlcXVlbmNlcyBhKTEwOCA0NzUuMiBRCistLjI1KHZhKS0uMiBHKGlsYWJsZSB3aGVuIHNwZWNpZnlpbmcgaykuMjUgRSAuMyAtLjE1KGV5IHMpLS4xIEgKKyhlcXVlbmNlcyBpcykuMTUgRSBGMjw1YzQzYWQ+MTQ0IDQ4Ny4yIFEgRjAoY29udHJvbCBwcmVcMjE0eCkyMC4zIEUgRjIKKzw1YzRkYWQ+MTQ0IDQ5OS4yIFEgRjAobWV0YSBwcmVcMjE0eCkxOC4wOCBFIEYyKFxcZSkxNDQgNTExLjIgUSBGMAogKGFuIGVzY2FwZSBjaGFyYWN0ZXIpMjguNzggRSBGMihcXFxcKTE0NCA1MjMuMiBRIEYwKGJhY2tzbGFzaCkzMC40NCBFIEYyCiAoXFwiKTE0NCA1MzUuMiBRIEYwKGxpdGVyYWwgIiwgYSBkb3VibGUgcXVvdGUpMjcuNjcgRSBGMihcXCcpMTQ0IDU0Ny4yIFEKIEYwKGxpdGVyYWwgJywgYSBzaW5nbGUgcXVvdGUpMjkuODkgRShJbiBhZGRpdGlvbiB0byB0aGUgR05VIEVtYWNzIHN0eWxlXApAQCAtNDAyLDggKzQyOCw4IEBACiA1LjA4OSBGIDIuNTkoLHQpLS42NSBHIC4wOShoZSBiYWNrc2xhc2ggZXNjYXBlcyBkZXNjcmliZWQgYWJvKS0yLjU5IEYKIC0uMTUodmUpLS4xNSBHKGFyZSBlKTEwOCA3MjQuOCBRIDIuNSh4cGFuZGVkLiBCYWNrc2xhc2gpLS4xNSBGCiAod2lsbCBxdW90ZSBhbikyLjUgRSAyLjUoeW8pLS4xNSBHKHRoZXIgY2hhcmFjdGVyIGluIHRoZSBtYWNybyB0ZSktMi41IEUKLSh4dCwgaW5jbHVkaW5nICIgYW5kICcuKS0uMTUgRShHTlUgUmVhZGxpbmUgNC4zKTcyIDc2OCBRCi0oMjAwMiBKYW51YXJ5IDIyKTEyNi4yNCBFKDIpMTk1Ljk1IEUgRVAKKyh4dCwgaW5jbHVkaW5nICIgYW5kICcuKS0uMTUgRShHTlUgUmVhZGxpbmUgNS4xLWJldGExKTcyIDc2OCBRCisoMjAwNSBTZXAgMTMpMTA5LjMgRSgyKTIwNCBFIDAgQ2cgRVAKICUlUGFnZTogMyAzCiAlJUJlZ2luUGFnZVNldHVwCiBCUApAQCAtNDE2LDg3OSArNDQyLDkxNSBAQAogKFRoZSBlZGl0aW5nIG1vZGUgbWF5IGJlIHN3aXRjaGVkIGR1cmluZyBpbnRlcmFjdGkpMTA4IDk2IFIgMS4zOTUgLS4xNQogKHZlIHUpLS4yNSBIIDEuMDk1KHNlIGJ5IHVzaW5nIHRoZSkuMTUgRiBGMTxhZDZmPjMuNTk1IEUgRjAgMS4wOTUKIChvcHRpb24gdG8gdGhlKTMuNTk1IEYgRjEoc2V0KTMuNTk1IEUgRjAgLS4yKGJ1KTMuNTk1IEcgMS4wOTUKLShpbHRpbiBjb20tKS4yIEYgMy4wOTcobWFuZC4gT3RoZXIpMTA4IDEwOCBSIC41OTcKLShwcm9ncmFtcyB1c2luZyB0aGlzIGxpYnJhcnkgcHJvKTMuMDk3IEYgLjU5Nyh2aWRlIHNpbWlsYXIgbWVjaGFuaXNtcy4pCi0tLjE1IEYoVGhlKTUuNTk3IEUvRjIgMTAvVGltZXMtSXRhbGljQDAgU0YoaW5wdXRyKTMuMDk3IEUoYyktLjM3IEUgRjAKLS41OTYoXDIxNGxlIG1heSBiZSBlZGl0ZWQgYW5kKTMuMDk2IEYocmUtcmVhZCBpZiBhIHByb2dyYW0gZG9lcyBub3QgcHJvKQorKGlsdGluIGNvbS0pLjIgRiAzLjA3NihtYW5kLiBPdGhlcikxMDggMTA4IFIgLjU3NgorKHByb2dyYW1zIHVzaW5nIHRoaXMgbGlicmFyeSBwcm8pMy4wNzYgRiAuNTc1KHZpZGUgc2ltaWxhciBtZWNoYW5pc21zLikKKy0uMTUgRihUaGUpNS41NzUgRS9GMiAxMC9UaW1lcy1JdGFsaWNAMCBTRihpbnB1dHIpMy4wODUgRShjKS0uMzcgRSBGMAorLjU3NShcMjE0bGUgbWF5IGJlIGVkaXRlZCBhbmQpMy4zODUgRihyZS1yZWFkIGlmIGEgcHJvZ3JhbSBkb2VzIG5vdCBwcm8pCiAxMDggMTIwIFEodmlkZSBhbiktLjE1IEUgMi41KHlvKS0uMTUgRyh0aGVyIG1lYW5zIHRvIGluY29ycG9yYXRlIG5lKS0yLjUKIEUgMi41KHdiKS0uMjUgRyhpbmRpbmdzLiktMi41IEUgRjEgLS45MihWYSk4NyAxMzYuOCBTKHJpYWJsZXMpLjkyIEUgRjAKLS4wNDMoUmVhZGxpbmUgaGFzIHYpMTA4IDE0OC44IFIgLjA0NAorLjA0MyhSZWFkbGluZSBoYXMgdikxMDggMTQ4LjggUiAuMDQzCiAoYXJpYWJsZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBmdXJ0aGVyIGN1c3RvbWl6ZSBpdHMgYmVoYSktLjI1IEYodmlvciktLjIKLUUgNS4wNDQoLkEpLS41NSBHIC0uMjUodmEpLTIuNSBHIC4wNDQocmlhYmxlIG1heSBiZSBzZXQgaW4gdGhlKS4yNSBGIEYyCi0oaW5wdS0pMi41NDQgRSh0cikxMDggMTYwLjggUShjKS0uMzcgRSBGMAotKFwyMTRsZSB3aXRoIGEgc3RhdGVtZW50IG9mIHRoZSBmb3JtKTIuNSBFIEYxKHNldCkxNDQgMTc3LjYgUSBGMgotKHZhcmlhYmxlXDI1NW5hbWUgdmFsdWUpMi41IEUgRjAgLjgwNyhFeGNlcHQgd2hlcmUgbm90ZWQsIHJlYWRsaW5lIHYpMTA4Ci0xOTQuNCBSIC44MDcoYXJpYWJsZXMgY2FuIHRhayktLjI1IEYgMy4zMDcoZXQpLS4xIEcgLjgwNyhoZSB2KS0zLjMwNyBGCi0oYWx1ZXMpLS4yNSBFIEYxKE9uKTMuMzA3IEUgRjAob3IpMy4zMDcgRSBGMShPZmYpMy4zMDcgRSBGMCAuODA3Ci0oXCh3aXRob3V0IHJlKTMuMzA3IEYgLS4wNShnYSktLjE1IEcgLjgwNyhyZCB0byBjYXNlXCkuKS4wNSBGIC44MDcKLShUaGUgdik1LjgwNyBGKGFyaS0pLS4yNSBFKGFibGVzIGFuZCB0aGVpciBkZWYpMTA4IDIwNi40IFEoYXVsdCB2KS0uMSBFCi0oYWx1ZXMgYXJlOiktLjI1IEUgRjEoYmVsbFwyNTVzdHlsZSBcKGF1ZGlibGVcKSkxMDggMjIzLjIgUSBGMCAuMDEKLShDb250cm9scyB3aGF0IGhhcHBlbnMgd2hlbiByZWFkbGluZSB3KTE0NCAyMzUuMiBSIC4wMTEKK0UgNS4wNDMoLkEpLS41NSBHIC0uMjUodmEpLTIuNSBHIC4wNDMocmlhYmxlIG1heSBiZSBzZXQgaW4gdGhlKS4yNSBGIEYyCisoaW5wdS0pMi41NTQgRSh0cikxMDggMTYwLjggUShjKS0uMzcgRSBGMAorKFwyMTRsZSB3aXRoIGEgc3RhdGVtZW50IG9mIHRoZSBmb3JtKTIuODEgRSBGMShzZXQpMTQ0IDE3Ny42IFEgRjIKKyh2YXJpYWJsZVwyNTVuYW1lIHZhbHVlKTIuNSBFIEYwIC43OShFeGNlcHQgd2hlcmUgbm90ZWQsIHJlYWRsaW5lIHYpMTA4CisxOTQuNCBSIC43OShhcmlhYmxlcyBjYW4gdGFrKS0uMjUgRiAzLjI5KGV0KS0uMSBHIC43OShoZSB2KS0zLjI5IEYKKyhhbHVlcyktLjI1IEUgRjEoT24pMy4yOSBFIEYwKG9yKTMuMjkgRSBGMShPZmYpMy4yOSBFIEYwIC43OQorKFwod2l0aG91dCByZSkzLjI5IEYgLS4wNShnYSktLjE1IEcgLjc5KHJkIHRvIGNhc2VcKS4pLjA1IEYoVW5yZWNvZy0pCis1Ljc5IEUgLjQ0OChuaXplZCB2KTEwOCAyMDYuNCBSIC40NDgoYXJpYWJsZSBuYW1lcyBhcmUgaWdub3JlZC4pLS4yNSBGCisuNDQ4KFdoZW4gYSB2KTUuNDQ4IEYgLjQ0OChhcmlhYmxlIHYpLS4yNSBGIC40NDgKKyhhbHVlIGlzIHJlYWQsIGVtcHR5IG9yIG51bGwgdiktLjI1IEYgLjQ0OShhbHVlcywgIm9uIiBcKGNhc2UtaW5zZW5zaS0pCistLjI1IEYodGkpMTA4IDIxOC40IFEgLS4xNSh2ZSktLjI1IEcgLjQ2OChcKSwgYW5kICIxIiBhcmUgZXF1aSkuMTUgRgorLS4yNSh2YSktLjI1IEcgLjQ2OChsZW50IHRvKS4yNSBGIEYxKE9uKTIuOTY4IEUgRjAgNS40NjgoLkEpQyAuNDY4CisobGwgb3RoZXIgdiktNS40NjggRiAuNDY4KGFsdWVzIGFyZSBlcXVpKS0uMjUgRiAtLjI1KHZhKS0uMjUgRyAuNDY4CisobGVudCB0bykuMjUgRiBGMShPZmYpMi45NjggRSBGMCA1LjQ2OCguVClDIC40NjcoaGUgdiktNS40NjggRiAuNDY3CisoYXJpYWJsZXMgYW5kIHRoZWlyIGRlZiktLjI1IEYoYXVsdCktLjEgRSAtLjI1KHZhKTEwOCAyMzAuNCBTKGx1ZXMgYXJlOikKKy4yNSBFIEYxKGJlbGxcMjU1c3R5bGUgXChhdWRpYmxlXCkpMTA4IDI0Ny4yIFEgRjAgLjAxCisoQ29udHJvbHMgd2hhdCBoYXBwZW5zIHdoZW4gcmVhZGxpbmUgdykxNDQgMjU5LjIgUiAuMDExCiAoYW50cyB0byByaW5nIHRoZSB0ZXJtaW5hbCBiZWxsLiktLjEgRiAuMDExKElmIHNldCB0byk1LjAxMSBGIEYxKG5vbmUpCiAyLjUxMSBFIEYwIDIuNTExKCxyKUMgLjAxMShlYWRsaW5lIG5lKS0yLjUxMSBGIC0uMTUodmUpLS4yNSBHKHIpLjE1IEUKLS45NChyaW5ncyB0aGUgYmVsbC4pMTQ0IDI0Ny4yIFIgLjk0KElmIHNldCB0byk1Ljk0IEYgRjEodmlzaWJsZSkzLjQ0IEUKKy45NChyaW5ncyB0aGUgYmVsbC4pMTQ0IDI3MS4yIFIgLjk0KElmIHNldCB0byk1Ljk0IEYgRjEodmlzaWJsZSkzLjQ0IEUKIEYwIDMuNDQoLHIpQyAuOTQoZWFkbGluZSB1c2VzIGEgdmlzaWJsZSBiZWxsIGlmIG9uZSBpcyBhKS0zLjQ0IEYgLS4yNQogKHZhKS0uMiBHIDMuNDQoaWxhYmxlLiBJZikuMjUgRiAuOTQoc2V0IHRvKTMuNDQgRiBGMShhdWRpYmxlKTMuNDQgRSBGMAotKCwpQShyZWFkbGluZSBhdHRlbXB0cyB0byByaW5nIHRoZSB0ZXJtaW5hbCcpMTQ0IDI1OS4yIFEgMi41KHNiKS0uNTUgRwotKGVsbC4pLTIuNSBFIEYxKGNvbW1lbnRcMjU1YmVnaW4gXChgKTEwOCAyNzEuMiBRKGAjJyktLjYzIEUoJ1wpKS0uNjMgRQotRjAgLjA2MihUaGUgc3RyaW5nIHRoYXQgaXMgaW5zZXJ0ZWQgaW4pMTQ0IDI4My4yIFIgRjEodmkpMi41NjIgRSBGMCAuMDYyCi0obW9kZSB3aGVuIHRoZSkyLjU2MiBGIEYxKGluc2VydFwyNTVjb21tZW50KTIuNTYyIEUgRjAgLjA2MgorKCwpQShyZWFkbGluZSBhdHRlbXB0cyB0byByaW5nIHRoZSB0ZXJtaW5hbCcpMTQ0IDI4My4yIFEgMi41KHNiKS0uNTUgRworKGVsbC4pLTIuNSBFIEYxKGJpbmRcMjU1dHR5XDI1NXNwZWNpYWxcMjU1Y2hhcnMgXChPblwpKTEwOCAyOTUuMiBRIEYwCisuMDU1KElmIHNldCB0bykxNDQgMzA3LjIgUiBGMShPbikyLjU1NSBFIEYwIDIuNTU1KCxyKUMgLjA1NihlYWRsaW5lIGF0dFwKK2VtcHRzIHRvIGJpbmQgdGhlIGNvbnRyb2wgY2hhcmFjdGVycyB0cmVhdGVkIHNwZWNpYWxseSBieSB0aGUgayktMi41NTUgRgorKGVybmVsJyktLjEgRSAyLjU1NihzdCktLjU1IEcoZXJtaS0pLTIuNTU2IEUobmFsIGRyaSkxNDQgMzE5LjIgUSAtLjE1CisodmUpLS4yNSBHIDIuNShydCkuMTUgRyAyLjUob3QpLTIuNSBHKGhlaXIgcmVhZGxpbmUgZXF1aSktMi41IEUgLS4yNSh2YSkKKy0uMjUgRyhsZW50cy4pLjI1IEUgRjEoY29tbWVudFwyNTViZWdpbiBcKGApMTA4IDMzMS4yIFEoYCMnKS0uNjMgRSgnXCkpCistLjYzIEUgRjAgLjA2MihUaGUgc3RyaW5nIHRoYXQgaXMgaW5zZXJ0ZWQgaW4pMTQ0IDM0My4yIFIgRjEodmkpMi41NjIgRQorRjAgLjA2Mihtb2RlIHdoZW4gdGhlKTIuNTYyIEYgRjEoaW5zZXJ0XDI1NWNvbW1lbnQpMi41NjIgRSBGMCAuMDYyCiAoY29tbWFuZCBpcyBlKTIuNTYyIEYgLS4xNSh4ZSktLjE1IEcgMi41NjIoY3V0ZWQuIFRoaXMpLjE1IEYoY29tLSkyLjU2MgotRShtYW5kIGlzIGJvdW5kIHRvKTE0NCAyOTUuMiBRIEYxKE1cMjU1IykyLjUgRSBGMChpbiBlbWFjcyBtb2RlIGFuZCB0bykKK0UobWFuZCBpcyBib3VuZCB0bykxNDQgMzU1LjIgUSBGMShNXDI1NSMpMi41IEUgRjAoaW4gZW1hY3MgbW9kZSBhbmQgdG8pCiAyLjUgRSBGMSgjKTIuNSBFIEYwKGluIHZpIGNvbW1hbmQgbW9kZS4pMi41IEUgRjEoY29tcGxldGlvblwyNTVpZ25vcikxMDgKLTMwNy4yIFEoZVwyNTVjYXNlIFwoT2ZmXCkpLS4xOCBFIEYwKElmIHNldCB0bykxNDQgMzE5LjIgUSBGMShPbikyLjUgRSBGMAorMzY3LjIgUShlXDI1NWNhc2UgXChPZmZcKSktLjE4IEUgRjAoSWYgc2V0IHRvKTE0NCAzNzkuMiBRIEYxKE9uKTIuNSBFIEYwCiAyLjUoLHIpQyhlYWRsaW5lIHBlcmZvcm1zIFwyMTRsZW5hbWUgbWF0Y2hpbmcgYW5kIGNvbXBsZXRpb24gaW4gYSBjYXNlXAogXDI1NWluc2Vuc2l0aSktMi41IEUgLjMgLS4xNSh2ZSBmKS0uMjUgSChhc2hpb24uKS4wNSBFIEYxCi0oY29tcGxldGlvblwyNTVxdWVyeVwyNTVpdGVtcyBcKDEwMFwpKTEwOCAzMzEuMiBRIEYwIC41MwotKFRoaXMgZGV0ZXJtaW5lcyB3aGVuIHRoZSB1c2VyIGlzIHF1ZXJpZWQgYWJvdXQgdmllKTE0NCAzNDMuMiBSIC41MjkKLSh3aW5nIHRoZSBudW1iZXIgb2YgcG9zc2libGUgY29tcGxldGlvbnMgZ2VuLSktLjI1IEYgLjU2KGVyYXRlZCBieSB0aGUpCi0xNDQgMzU1LjIgUiBGMShwb3NzaWJsZVwyNTVjb21wbGV0aW9ucykzLjA2IEUgRjAgMy4wNihjb21tYW5kLiBJdCkzLjA2IEYKLS41NjEobWF5IGJlIHNldCB0byBhbikzLjA2MSBGIDMuMDYxKHlpKS0uMTUgRyhudGUpLTMuMDYxIEUgLjU2MShnZXIgdikKLS0uMTUgRiAuNTYxKGFsdWUgZ3JlYXRlciB0aGFuIG9yKS0uMjUgRiAuNzgzKGVxdWFsIHRvIHplcm8uKTE0NCAzNjcuMiBSCi0uNzgzKElmIHRoZSBudW1iZXIgb2YgcG9zc2libGUgY29tcGxldGlvbnMgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIFwKLXRoZSB2KTUuNzgzIEYgLjc4MihhbHVlIG9mIHRoaXMpLS4yNSBGIC0uMjUodmEpMTQ0IDM3OS4yIFMgLjIzNworKGNvbXBsZXRpb25cMjU1cXVlcnlcMjU1aXRlbXMgXCgxMDBcKSkxMDggMzkxLjIgUSBGMCAuNTI5CisoVGhpcyBkZXRlcm1pbmVzIHdoZW4gdGhlIHVzZXIgaXMgcXVlcmllZCBhYm91dCB2aWUpMTQ0IDQwMy4yIFIgLjUzCisod2luZyB0aGUgbnVtYmVyIG9mIHBvc3NpYmxlIGNvbXBsZXRpb25zIGdlbi0pLS4yNSBGIC41NjEoZXJhdGVkIGJ5IHRoZSkKKzE0NCA0MTUuMiBSIEYxKHBvc3NpYmxlXDI1NWNvbXBsZXRpb25zKTMuMDYxIEUgRjAgMy4wNjEoY29tbWFuZC4gSXQpCiszLjA2MSBGIC41NjEobWF5IGJlIHNldCB0byBhbikzLjA2MSBGIDMuMDYoeWkpLS4xNSBHKG50ZSktMy4wNiBFIC41NgorKGdlciB2KS0uMTUgRiAuNTYoYWx1ZSBncmVhdGVyIHRoYW4gb3IpLS4yNSBGIC43ODIoZXF1YWwgdG8gemVyby4pMTQ0Cis0MjcuMiBSIC43ODMoSWYgdGhlIG51bWJlciBvZiBwb3NzaWJsZSBjb21wbGV0aW9ucyBpcyBncmVhdGVyIHRoYW4gb3IgZVwKK3F1YWwgdG8gdGhlIHYpNS43ODIgRiAuNzgzKGFsdWUgb2YgdGhpcyktLjI1IEYgLS4yNSh2YSkxNDQgNDM5LjIgUyAuMjM3CiAocmlhYmxlLCB0aGUgdXNlciBpcyBhc2spLjI1IEYgLjIzNyhlZCB3aGV0aGVyIG9yIG5vdCBoZSB3aXNoZXMgdG8gdmllKQogLS4xIEYgMi43Mzcod3QpLS4yNSBHIC4yMzcoaGVtOyBvdGhlcndpc2UgdGhlKS0yLjczNyBGIDIuNzM3KHlhKS0uMTUgRwotLjIzNyhyZSBzaW1wbHkgbGlzdGVkKS0yLjczNyBGKG9uIHRoZSB0ZXJtaW5hbC4pMTQ0IDM5MS4yIFEgRjEoY29uKTEwOAotNDAzLjIgUSAtLjEodmUpLS40IEcocnRcMjU1bWV0YSBcKE9uXCkpLjEgRSBGMCAuNjEzKElmIHNldCB0bykxNDQgNDE1LjIKLVIgRjEoT24pMy4xMTMgRSBGMCAzLjExMygscilDIC42MTMoZWFkbGluZSB3aWxsIGNvbiktMy4xMTMgRiAtLjE1KHZlKS0uNAotRyAuNjEzKHJ0IGNoYXJhY3RlcnMgd2l0aCB0aGUgZWlnaHRoIGJpdCBzZXQgdG8gYW4gQVNDSUkgaykuMTUgRiAuOTEyCi0tLjE1KGV5IHMpLS4xIEggLjYxMihlcXVlbmNlIGJ5KS4xNSBGIDEuMzE1KHN0cmlwcGluZyB0aGUgZWlnaHRoIGJpdCBhblwKLWQgcHJlXDIxNHhpbmcgaXQgd2l0aCBhbiBlc2NhcGUgY2hhcmFjdGVyIFwoaW4gZWYpMTQ0IDQyNy4yIFIgMS4zMTYKLShmZWN0LCB1c2luZyBlc2NhcGUgYXMgdGhlKS0uMjUgRiBGMihtZXRhIHByKTE0NCA0MzkuMiBRKGVcMjE0eCktLjM3IEUKLUYwKFwpLilBIEYxKGRpc2FibGVcMjU1Y29tcGxldGlvbiBcKE9mZlwpKTEwOCA0NTEuMiBRIEYwIC4wMzgoSWYgc2V0IHRvKQotMTQ0IDQ2My4yIFIgRjEoT24pMi41MzggRSBGMCAyLjUzOCgscilDIC4wMzgoZWFkbGluZSB3aWxsIGluaGliaXQgdykKKy4yMzcocmUgc2ltcGx5IGxpc3RlZCktMi43MzcgRihvbiB0aGUgdGVybWluYWwuKTE0NCA0NTEuMiBRIDIuNShBbik1IEcKKy0yLjI1IC0uMTUoZWcgYSktMi41IEgodGkpLjE1IEUgLjMgLS4xNSh2ZSB2KS0uMjUgSAorKGFsdWUgY2F1c2VzIHJlYWRsaW5lIHRvIG5lKS0uMSBFIC0uMTUodmUpLS4yNSBHIDIuNShyYSkuMTUgRyhzay4pLTIuNSBFCitGMShjb24pMTA4IDQ2My4yIFEgLS4xKHZlKS0uNCBHKHJ0XDI1NW1ldGEgXChPblwpKS4xIEUgRjAgLjYxMgorKElmIHNldCB0bykxNDQgNDc1LjIgUiBGMShPbikzLjExMiBFIEYwIDMuMTEyKCxyKUMgLjYxMworKGVhZGxpbmUgd2lsbCBjb24pLTMuMTEyIEYgLS4xNSh2ZSktLjQgRyAuNjEzCisocnQgY2hhcmFjdGVycyB3aXRoIHRoZSBlaWdodGggYml0IHNldCB0byBhbiBBU0NJSSBrKS4xNSBGIC45MTMgLS4xNQorKGV5IHMpLS4xIEggLjYxMyhlcXVlbmNlIGJ5KS4xNSBGIDEuMzE2KHN0cmlwcGluZyB0aGUgZWlnaHRoIGJpdCBhbmQgcHJcCitlXDIxNHhpbmcgaXQgd2l0aCBhbiBlc2NhcGUgY2hhcmFjdGVyIFwoaW4gZWYpMTQ0IDQ4Ny4yIFIgMS4zMTUKKyhmZWN0LCB1c2luZyBlc2NhcGUgYXMgdGhlKS0uMjUgRiBGMihtZXRhIHByKTE0NCA0OTkuMiBRKGVcMjE0eCktLjM3IEUKK0YwKFwpLilBIEYxKGRpc2FibGVcMjU1Y29tcGxldGlvbiBcKE9mZlwpKTEwOCA1MTEuMiBRIEYwIC4wMzgoSWYgc2V0IHRvKQorMTQ0IDUyMy4yIFIgRjEoT24pMi41MzggRSBGMCAyLjUzOCgscilDIC4wMzgoZWFkbGluZSB3aWxsIGluaGliaXQgdykKIC0yLjUzOCBGIC4wMzgob3JkIGNvbXBsZXRpb24uKS0uMSBGIC4wMzgKIChDb21wbGV0aW9uIGNoYXJhY3RlcnMgd2lsbCBiZSBpbnNlcnRlZCBpbnRvIHRoZSk1LjAzOCBGKGxpbmUgYXMgaWYgdGhlKQotMTQ0IDQ3NS4yIFEgMi41KHloKS0uMTUgRyhhZCBiZWVuIG1hcHBlZCB0byktMi41IEUgRjEoc2VsZi1pbnNlcnQpMi41IEUKLUYwKC4pQSBGMShlZGl0aW5nXDI1NW1vZGUgXChlbWFjc1wpKTEwOCA0ODcuMiBRIEYwIC4yMTUKLShDb250cm9scyB3aGV0aGVyIHJlYWRsaW5lIGJlKTE0NCA0OTkuMiBSIC4yMTUoZ2lucyB3aXRoIGEgc2V0IG9mIGspLS4xNQotRiAuNTE1IC0uMTUoZXkgYiktLjEgSCAuMjE2KGluZGluZ3Mgc2ltaWxhciB0byBlbWFjcyBvciB2aS4pLjE1IEYgRjEKLShlZGl0aW5nXDI1NW1vZGUpNS4yMTYgRSBGMChjYW4gYmUgc2V0IHRvIGVpdGhlcikxNDQgNTExLjIgUSBGMShlbWFjcykKLTIuNSBFIEYwKG9yKTIuNSBFIEYxKHZpKTIuNSBFIEYwKC4pQSBGMShlbmFibGVcMjU1aykxMDggNTIzLjIgUQotKGV5cGFkIFwoT2ZmXCkpLS4xIEUgRjAgLjg5MyhXaGVuIHNldCB0bykxNDQgNTM1LjIgUiBGMShPbikzLjM5MyBFIEYwCisxNDQgNTM1LjIgUSAyLjUoeWgpLS4xNSBHKGFkIGJlZW4gbWFwcGVkIHRvKS0yLjUgRSBGMShzZWxmLWluc2VydCkyLjUgRQorRjAoLilBIEYxKGVkaXRpbmdcMjU1bW9kZSBcKGVtYWNzXCkpMTA4IDU0Ny4yIFEgRjAgLjIxNgorKENvbnRyb2xzIHdoZXRoZXIgcmVhZGxpbmUgYmUpMTQ0IDU1OS4yIFIgLjIxNShnaW5zIHdpdGggYSBzZXQgb2YgayktLjE1CitGIC41MTUgLS4xNShleSBiKS0uMSBIIC4yMTUoaW5kaW5ncyBzaW1pbGFyIHRvIGVtYWNzIG9yIHZpLikuMTUgRiBGMQorKGVkaXRpbmdcMjU1bW9kZSk1LjIxNSBFIEYwKGNhbiBiZSBzZXQgdG8gZWl0aGVyKTE0NCA1NzEuMiBRIEYxKGVtYWNzKQorMi41IEUgRjAob3IpMi41IEUgRjEodmkpMi41IEUgRjAoLilBIEYxKGVuYWJsZVwyNTVrKTEwOCA1ODMuMiBRCisoZXlwYWQgXChPZmZcKSktLjEgRSBGMCAuODkyKFdoZW4gc2V0IHRvKTE0NCA1OTUuMiBSIEYxKE9uKTMuMzkzIEUgRjAKIDMuMzkzKCxyKUMgLjg5MyhlYWRsaW5lIHdpbGwgdHJ5IHRvIGVuYWJsZSB0aGUgYXBwbGljYXRpb24gayktMy4zOTMgRgotLS4xNShleSktLjEgRyAuODkzKHBhZCB3aGVuIGl0IGlzIGNhbGxlZC4pLjE1IEYgLjg5MihTb21lIHN5cy0pNS44OTMgRgotKHRlbXMgbmVlZCB0aGlzIHRvIGVuYWJsZSB0aGUgYXJybykxNDQgNTQ3LjIgUSAyLjUod2spLS4yNSBHIC0uMTUoZXkpCi0tMi42IEcocy4pLjE1IEUgRjEoZXhwYW5kXDI1NXRpbGRlIFwoT2ZmXCkpMTA4IDU1OS4yIFEgRjAoSWYgc2V0IHRvKTE0NAotNTcxLjIgUSBGMShvbikyLjUgRSBGMCAyLjUoLHQpQyhpbGRlIGUpLTIuNSBFCistLjE1KGV5KS0uMSBHIC44OTMocGFkIHdoZW4gaXQgaXMgY2FsbGVkLikuMTUgRiAuODkzKFNvbWUgc3lzLSk1Ljg5MyBGCisodGVtcyBuZWVkIHRoaXMgdG8gZW5hYmxlIHRoZSBhcnJvKTE0NCA2MDcuMiBRIDIuNSh3ayktLjI1IEcgLS4xNShleSkKKy0yLjYgRyhzLikuMTUgRSBGMShleHBhbmRcMjU1dGlsZGUgXChPZmZcKSkxMDggNjE5LjIgUSBGMChJZiBzZXQgdG8pMTQ0Cis2MzEuMiBRIEYxKG9uKTIuNSBFIEYwIDIuNSgsdClDKGlsZGUgZSktMi41IEUKICh4cGFuc2lvbiBpcyBwZXJmb3JtZWQgd2hlbiByZWFkbGluZSBhdHRlbXB0cyB3KS0uMTUgRShvcmQgY29tcGxldGlvbi4pCi0tLjEgRSBGMShoaXN0b3J5LXByKTEwOCA1ODMuMiBRKGVzZXIpLS4xOCBFIC0uMSh2ZSktLjEgRygtcG9pbnQpLjEgRSBGMAotMS40OTIoSWYgc2V0IHRvKTE0NCA1OTUuMiBSIEYxKG9uKTMuOTkyIEUgRjAgMy45OTIoLHQpQyAxLjQ5MyhoZSBoaXN0b3JcCi15IGNvZGUgYXR0ZW1wdHMgdG8gcGxhY2UgcG9pbnQgYXQgdGhlIHNhbWUgbG9jYXRpb24gb24gZWFjaCBoaXN0b3J5IGxpblwKLWUpLTMuOTkyIEYocmV0cmkpMTQ0IDYwNy4yIFEgLS4xNSh2ZSktLjI1IEcgMi41KGR3KS4xNSBHKGl0aCktMi41IEUgRjEKLShwcikyLjUgRSAtLjE1KGV2KS0uMTggRyhpb3VzLWhpc3RvcnkpLjE1IEUgRjAob3IpMi41IEUgRjEobmV4dC1oaXN0b3J5KQotMi41IEUgRjAoLilBIEYxKGhvcml6b250YWxcMjU1c2NyKTEwOCA2MTkuMiBRKG9sbFwyNTVtb2RlIFwoT2ZmXCkpLS4xOCBFCi1GMCAuNDQ5KFdoZW4gc2V0IHRvKTE0NCA2MzEuMiBSIEYxKE9uKTIuOTQ5IEUgRjAgMi45NDkoLG0pQyhhayktMi45NDkgRQotLjQ0OChlcyByZWFkbGluZSB1c2UgYSBzaW5nbGUgbGluZSBmb3IgZGlzcGxheSktLjEgRiAyLjk0OCgscyktLjY1IEcKLS40NDgoY3JvbGxpbmcgdGhlIGlucHV0IGhvcml6b250YWxseSBvbiBhKS0yLjk0OCBGIDEuMTk0KHNpbmdsZSBzY3JlZW4gXAotbGluZSB3aGVuIGl0IGJlY29tZXMgbG9uZ2VyIHRoYW4gdGhlIHNjcmVlbiB3aWR0aCByYXRoZXIgdGhhbiB3cmFwcGluZyBcCi10byBhIG5lKTE0NCA2NDMuMiBSKHcpLS4yNSBFKGxpbmUuKTE0NCA2NTUuMiBRIEYxKGlucHV0XDI1NW1ldGEgXChPZmZcKSkKLTEwOCA2NjcuMiBRIEYwIC4zNjcoSWYgc2V0IHRvKTE0NCA2NzkuMiBSIEYxKE9uKTIuODY3IEUgRjAgMi44NjcoLHIpQwotLjM2NyhlYWRsaW5lIHdpbGwgZW5hYmxlIGVpZ2h0LWJpdCBpbnB1dCBcKHRoYXQgaXMsIGl0IHdpbGwgbm90IGNsZWFyIHRcCi1oZSBlaWdodGggYml0IGluIHRoZSBjaGFyKS0yLjg2NyBGKC0pLS4yIEUgLjk1NihhY3RlcnMgaXQgcmVhZHNcKSwgcmUpCi0xNDQgNjkxLjIgUiAtLjA1KGdhKS0uMTUgRyAuOTU2Ci0ocmRsZXNzIG9mIHdoYXQgdGhlIHRlcm1pbmFsIGNsYWltcyBpdCBjYW4gc3VwcG9ydC4pLjA1IEYgLjk1NyhUaGUgbmFtZSkKLTUuOTU2IEYgRjEobWV0YVwyNTVcMjE1YWcpMy40NTcgRSBGMCAuOTU3KGlzIGEpMy40NTcgRihzeW5vbikxNDQgNzAzLjIgUQotKHltIGZvciB0aGlzIHYpLS4xNSBFKGFyaWFibGUuKS0uMjUgRShHTlUgUmVhZGxpbmUgNC4zKTcyIDc2OCBRCi0oMjAwMiBKYW51YXJ5IDIyKTEyNi4yNCBFKDMpMTk1Ljk1IEUgRVAKKy0uMSBFIEYxKGhpc3RvcnlcMjU1cHIpMTA4IDY0My4yIFEoZXNlciktLjE4IEUgLS4xKHZlKS0uMSBHCisoXDI1NXBvaW50IFwoT2ZmXCkpLjEgRSBGMCAxLjQ5MyhJZiBzZXQgdG8pMTQ0IDY1NS4yIFIgRjEob24pMy45OTMgRSBGMAorMy45OTMoLHQpQyAxLjQ5MyhoZSBoaXN0b3J5IGNvZGUgYXR0ZW1wdHMgdG8gcGxhY2UgcG9pbnQgYXQgdGhlIHNhbWUgbG9cCitjYXRpb24gb24gZWFjaCBoaXN0b3J5IGxpbmUpLTMuOTkzIEYocmV0cmllKTE0NCA2NjcuMiBRIC0uMTUodmUpLS4yNSBHCisyLjUoZHcpLjE1IEcoaXRoKS0yLjUgRSBGMShwcikyLjUgRSAtLjE1KGV2KS0uMTggRyhpb3VzLWhpc3RvcnkpLjE1IEUgRjAKKyhvcikyLjUgRSBGMShuZXh0LWhpc3RvcnkpMi41IEUgRjAoLilBIEYxKGhvcml6b250YWxcMjU1c2NyKTEwOCA2NzkuMiBRCisob2xsXDI1NW1vZGUgXChPZmZcKSktLjE4IEUgRjAgLjQ0OChXaGVuIHNldCB0bykxNDQgNjkxLjIgUiBGMShPbikyLjk0OAorRSBGMCAyLjk0OCgsbSlDKGFrKS0yLjk0OCBFIC40NDgKKyhlcyByZWFkbGluZSB1c2UgYSBzaW5nbGUgbGluZSBmb3IgZGlzcGxheSktLjEgRiAyLjk0OCgscyktLjY1IEcgLjQ0OQorKGNyb2xsaW5nIHRoZSBpbnB1dCBob3Jpem9udGFsbHkgb24gYSktMi45NDggRiAxLjE5NChzaW5nbGUgc2NyZWVuIGxpbmVcCisgd2hlbiBpdCBiZWNvbWVzIGxvbmdlciB0aGFuIHRoZSBzY3JlZW4gd2lkdGggcmF0aGVyIHRoYW4gd3JhcHBpbmcgdG8gYVwKKyBuZSkxNDQgNzAzLjIgUih3KS0uMjUgRShsaW5lLikxNDQgNzE1LjIgUShHTlUgUmVhZGxpbmUgNS4xLWJldGExKTcyIDc2OAorUSgyMDA1IFNlcCAxMykxMDkuMyBFKDMpMjA0IEUgMCBDZyBFUAogJSVQYWdlOiA0IDQKICUlQmVnaW5QYWdlU2V0dXAKIEJQCiAlJUVuZFBhZ2VTZXR1cAogL0YwIDEwL1RpbWVzLVJvbWFuQDAgU0YgMzQyLjIoUkVBRExJTkVcKDNcKSBSRUFETElORVwoM1wpKTcyIDQ4IFIvRjEgMTAKLS9UaW1lcy1Cb2xkQDAgU0YoaXNlYXIpMTA4IDg0IFEoY2hcMjU1dGVybWluYXRvcnMgXChgKS0uMTggRQotKGBDXDI1NVsgQ1wyNTVKJyktLjYzIEUoJ1wpKS0uNjMgRSBGMCAuNDM5KFRoZSBzdHJpbmcgb2YgY2hhcmFjdGVycyB0aGFcCi10IHNob3VsZCB0ZXJtaW5hdGUgYW4gaW5jcmVtZW50YWwgc2VhcmNoIHdpdGhvdXQgc3Vic2VxdWVudGx5IGUpMTQ0IDk2IFIKLS0uMTUoeGUpLS4xNSBHKGN1dC0pLjE1IEUgLjkzNChpbmcgdGhlIGNoYXJhY3RlciBhcyBhIGNvbW1hbmQuKTE0NCAxMDggUgotLjkzNShJZiB0aGlzIHYpNS45MzUgRiAuOTM1KGFyaWFibGUgaGFzIG5vdCBiZWVuIGdpKS0uMjUgRiAtLjE1KHZlKS0uMjUKLUcgMy40MzUobmF2KS4xNSBHIC45MzUoYWx1ZSwgdGhlIGNoYXJhY3RlcnMpLTMuNjg1IEYvRjIgMTAKLS9UaW1lcy1JdGFsaWNAMCBTRihFU0MpMy40MzUgRSBGMChhbmQpMTQ0IDEyMCBRIEYyKENcMjU1SikyLjUgRSBGMAotKHdpbGwgdGVybWluYXRlIGFuIGluY3JlbWVudGFsIHNlYXJjaC4pMi41IEUgRjEgLS4xKGtlKTEwOCAxMzIgUwotKHltYXAgXChlbWFjc1wpKS4xIEUgRjAgMi4zMjMoU2V0IHRoZSBjdXJyZW50IHJlYWRsaW5lIGspMTQ0IDE0NCBSIC0uMTUKLShleSktLjEgRyA0LjgyMyhtYXAuIFRoZSkuMTUgRiAyLjMyMyhzZXQgb2YgbGUpNC44MjMgRiAtLjA1KGdhKS0uMTUgRwotNC44MjMobGspLjA1IEcgLS4xNShleSktNC45MjMgRyAyLjMyMyhtYXAgbmFtZXMgaXMpLjE1IEYgRjIgMi4zMjMKLShlbWFjcywgZW1hY3Mtc3RhbmRhcik0LjgyMyBGKGQsKS0uMzcgRSAuODA4Ci0oZW1hY3MtbWV0YSwgZW1hY3MtY3RseCwgdmksIHZpLW1vKTE0NCAxNTYgUih2ZSktLjEgRSAzLjMwOCgsdiktLjEgRworL1RpbWVzLUJvbGRAMCBTRihpbnB1dFwyNTVtZXRhIFwoT2ZmXCkpMTA4IDg0IFEgRjAgLjM2NyhJZiBzZXQgdG8pMTQ0IDk2CitSIEYxKE9uKTIuODY3IEUgRjAgMi44NjcoLHIpQyAuMzY3KGVhZGxpbmUgd2lsbCBlbmFibGUgZWlnaHQtYml0IGlucHV0IFwKK1wodGhhdCBpcywgaXQgd2lsbCBub3QgY2xlYXIgdGhlIGVpZ2h0aCBiaXQgaW4gdGhlIGNoYXIpLTIuODY3IEYoLSktLjIgRQorLjk1NyhhY3RlcnMgaXQgcmVhZHNcKSwgcmUpMTQ0IDEwOCBSIC0uMDUoZ2EpLS4xNSBHIC45NTYKKyhyZGxlc3Mgb2Ygd2hhdCB0aGUgdGVybWluYWwgY2xhaW1zIGl0IGNhbiBzdXBwb3J0LikuMDUgRiAuOTU2KFRoZSBuYW1lKQorNS45NTYgRiBGMShtZXRhXDI1NVwyMTVhZykzLjQ1NiBFIEYwIC45NTYoaXMgYSkzLjQ1NiBGKHN5bm9uKTE0NCAxMjAgUQorKHltIGZvciB0aGlzIHYpLS4xNSBFKGFyaWFibGUuKS0uMjUgRSBGMShpc2VhcikxMDggMTMyIFEKKyhjaFwyNTV0ZXJtaW5hdG9ycyBcKGApLS4xOCBFKGBDXDI1NVsgQ1wyNTVKJyktLjYzIEUoJ1wpKS0uNjMgRSBGMCAuNDM5CisoVGhlIHN0cmluZyBvZiBjaGFyYWN0ZXJzIHRoYXQgc2hvdWxkIHRlcm1pbmF0ZSBhbiBpbmNyZW1lbnRhbCBzZWFyY2ggd1wKK2l0aG91dCBzdWJzZXF1ZW50bHkgZSkxNDQgMTQ0IFIgLS4xNSh4ZSktLjE1IEcoY3V0LSkuMTUgRSAuOTM1CisoaW5nIHRoZSBjaGFyYWN0ZXIgYXMgYSBjb21tYW5kLikxNDQgMTU2IFIgLjkzNShJZiB0aGlzIHYpNS45MzUgRiAuOTM1CisoYXJpYWJsZSBoYXMgbm90IGJlZW4gZ2kpLS4yNSBGIC0uMTUodmUpLS4yNSBHIDMuNDM0KG5hdikuMTUgRyAuOTM0CisoYWx1ZSwgdGhlIGNoYXJhY3RlcnMpLTMuNjg0IEYvRjIgMTAvVGltZXMtSXRhbGljQDAgU0YoRVNDKTMuNDM0IEUgRjAKKyhhbmQpMTQ0IDE2OCBRIEYyKENcMjU1SikyLjUgRSBGMCh3aWxsIHRlcm1pbmF0ZSBhbiBpbmNyZW1lbnRhbCBzZWFyY2guKQorMi41IEUgRjEgLS4xKGtlKTEwOCAxODAgUyh5bWFwIFwoZW1hY3NcKSkuMSBFIEYwIDIuMzIzCisoU2V0IHRoZSBjdXJyZW50IHJlYWRsaW5lIGspMTQ0IDE5MiBSIC0uMTUoZXkpLS4xIEcgNC44MjMobWFwLiBUaGUpLjE1IEYKKzIuMzIzKHNldCBvZiBsZSk0LjgyMyBGIC0uMDUoZ2EpLS4xNSBHIDQuODIzKGxrKS4wNSBHIC0uMTUoZXkpLTQuOTIzIEcKKzIuMzIzKG1hcCBuYW1lcyBpcykuMTUgRiBGMiAyLjMyNChlbWFjcywgZW1hY3Mtc3RhbmRhcik0LjgyMyBGKGQsKS0uMzcgRQorLjgwOShlbWFjcy1tZXRhLCBlbWFjcy1jdGx4LCB2aSwgdmktbW8pMTQ0IDIwNCBSKHZlKS0uMSBFIDMuMzA4KCx2KS0uMSBHCiAoaS1jb21tYW5kKS0zLjMwOCBFIEYwIDMuMzA4KCxhKUMobmQpLTMuMzA4IEUgRjIodmktaW5zZXJ0KTMuMzA4IEUgRjAoLikKLS42OCBFIEYyKHZpKTUuODA4IEUgRjAgLjgwOChpcyBlcXVpKTMuMzA4IEYgLS4yNSh2YSktLjI1IEcgLjgwOShsZW50IHRvKQotLjI1IEYgRjIodmktY29tbWFuZCkzLjMwOSBFIEYwKDspQSBGMihlbWFjcykxNDQgMTY4IFEgRjAgLjY5NyhpcyBlcXVpKQotMy4xOTcgRiAtLjI1KHZhKS0uMjUgRyAuNjk3KGxlbnQgdG8pLjI1IEYgRjIoZW1hY3Mtc3RhbmRhcikzLjE5NyBFKGQpCisuNjggRSBGMih2aSk1LjgwOCBFIEYwIC44MDgoaXMgZXF1aSkzLjMwOCBGIC0uMjUodmEpLS4yNSBHIC44MDgobGVudCB0bykKKy4yNSBGIEYyKHZpLWNvbW1hbmQpMy4zMDggRSBGMCg7KUEgRjIoZW1hY3MpMTQ0IDIxNiBRIEYwIC42OTcoaXMgZXF1aSkKKzMuMTk2IEYgLS4yNSh2YSktLjI1IEcgLjY5NyhsZW50IHRvKS4yNSBGIEYyKGVtYWNzLXN0YW5kYXIpMy4xOTcgRShkKQogLS4zNyBFIEYwIDUuNjk3KC5UKUMgLjY5NyhoZSBkZWYpLTUuNjk3IEYgLjY5NyhhdWx0IHYpLS4xIEYgLjY5NwogKGFsdWUgaXMpLS4yNSBGIEYyKGVtYWNzKTMuMTk3IEUgRjAgNS42OTcoLlQpLjI3IEcgLjY5NyhoZSB2KS01LjY5NyBGCi0uNjk3KGFsdWUgb2YpLS4yNSBGIEYxKGVkaXRpbmdcMjU1bW9kZSkzLjE5NiBFIEYwKGFsc28gYWYpMTQ0IDE4MCBRCisuNjk3KGFsdWUgb2YpLS4yNSBGIEYxKGVkaXRpbmdcMjU1bW9kZSkzLjE5NyBFIEYwKGFsc28gYWYpMTQ0IDIyOCBRCiAoZmVjdHMgdGhlIGRlZiktLjI1IEUoYXVsdCBrKS0uMSBFIC0uMTUoZXkpLS4xIEcobWFwLikuMTUgRSBGMQotKG1hcmtcMjU1ZGlyKTEwOCAxOTIgUShlY3RvcmllcyBcKE9uXCkpLS4xOCBFIEYwKElmIHNldCB0bykxNDQgMjA0IFEgRjEKKyhtYXJrXDI1NWRpcikxMDggMjQwIFEoZWN0b3JpZXMgXChPblwpKS0uMTggRSBGMChJZiBzZXQgdG8pMTQ0IDI1MiBRIEYxCiAoT24pMi41IEUgRjAgMi41KCxjKUMob21wbGV0ZWQgZGlyZWN0b3J5IG5hbWVzIGhhKS0yLjUgRSAuMyAtLjE1KHZlIGEgcykKIC0uMiBIKGxhc2ggYXBwZW5kZWQuKS4xNSBFIEYxKG1hcmtcMjU1bW9kaVwyMTRlZFwyNTVsaW5lcyBcKE9mZlwpKTEwOAotMjE2IFEgRjAoSWYgc2V0IHRvKTE0NCAyMjggUSBGMShPbikyLjUgRSBGMCAyLjUoLGgpQworMjY0IFEgRjAoSWYgc2V0IHRvKTE0NCAyNzYgUSBGMShPbikyLjUgRSBGMCAyLjUoLGgpQwogKGlzdG9yeSBsaW5lcyB0aGF0IGhhKS0yLjUgRSAuMyAtLjE1KHZlIGIpLS4yIEgKIChlZW4gbW9kaVwyMTRlZCBhcmUgZGlzcGxheWVkIHdpdGggYSBwcmVjZWRpbmcgYXN0ZXJpc2sgXCgpLjE1IEUgRjEoKilBCi1GMChcKS4pQSBGMShtYXJrXDI1NXN5bWxpbmspMTA4IDI0MCBRKGVkXDI1NWRpciktLjEgRShlY3RvcmllcyBcKE9mZlwpKQotLS4xOCBFIEYwIC4xNzUoSWYgc2V0IHRvKTE0NCAyNTIgUiBGMShPbikyLjY3NSBFIEYwIDIuNjc1KCxjKUMgLjE3NQorRjAoXCkuKUEgRjEobWFya1wyNTVzeW1saW5rKTEwOCAyODggUShlZFwyNTVkaXIpLS4xIEUoZWN0b3JpZXMgXChPZmZcKSkKKy0uMTggRSBGMCAuMTc1KElmIHNldCB0bykxNDQgMzAwIFIgRjEoT24pMi42NzUgRSBGMCAyLjY3NSgsYylDIC4xNzUKIChvbXBsZXRlZCBuYW1lcyB3aGljaCBhcmUgc3ltYm9saWMgbGlua3MgdG8gZGlyZWN0b3JpZXMgaGEpLTIuNjc1IEYgLjQ3NQotLS4xNSh2ZSBhIHMpLS4yIEggLjE3NShsYXNoIGFwcGVuZGVkIFwoc3ViLSkuMTUgRihqZWN0IHRvIHRoZSB2KTE0NCAyNjQKKy0uMTUodmUgYSBzKS0uMiBIIC4xNzUobGFzaCBhcHBlbmRlZCBcKHN1Yi0pLjE1IEYoamVjdCB0byB0aGUgdikxNDQgMzEyCiBRKGFsdWUgb2YpLS4yNSBFIEYxKG1hcmtcMjU1ZGlyKTIuNSBFKGVjdG9yaWVzKS0uMTggRSBGMChcKS4pQSBGMQotKG1hdGNoXDI1NWhpZGRlblwyNTVcMjE0bGVzIFwoT25cKSkxMDggMjc2IFEgRjAgLjE5MyhUaGlzIHYpMTQ0IDI4OCBSCi0uMTkzKGFyaWFibGUsIHdoZW4gc2V0IHRvKS0uMjUgRiBGMShPbikyLjY5MyBFIEYwIDIuNjkzKCxjKUMgLjE5MgotKGF1c2VzIHJlYWRsaW5lIHRvIG1hdGNoIFwyMTRsZXMgd2hvc2UgbmFtZXMgYmUpLTIuNjkzIEYgLjE5MgotKGdpbiB3aXRoIGEgYC4pLS4xNSBGIDIuNjkyKCdcKCktLjcgRyhoaWRkZW4pLTIuNjkyIEUgMS4wMjMKKyhtYXRjaFwyNTVoaWRkZW5cMjU1XDIxNGxlcyBcKE9uXCkpMTA4IDMyNCBRIEYwIC4xOTIoVGhpcyB2KTE0NCAzMzYgUgorLjE5MihhcmlhYmxlLCB3aGVuIHNldCB0byktLjI1IEYgRjEoT24pMi42OTIgRSBGMCAyLjY5MigsYylDIC4xOTIKKyhhdXNlcyByZWFkbGluZSB0byBtYXRjaCBcMjE0bGVzIHdob3NlIG5hbWVzIGJlKS0yLjY5MiBGIC4xOTMKKyhnaW4gd2l0aCBhIGAuKS0uMTUgRiAyLjY5MygnXCgpLS43IEcoaGlkZGVuKS0yLjY5MyBFIDEuMDI0CiAoXDIxNGxlc1wpIHdoZW4gcGVyZm9ybWluZyBcMjE0bGVuYW1lIGNvbXBsZXRpb24sIHVubGVzcyB0aGUgbGVhZGluZyBgLikKLTE0NCAzMDAgUiAzLjUyMygnaSktLjcgRyAzLjUyMyhzcyktMy41MjMgRyAxLjAyNAotKHVwcGxpZWQgYnkgdGhlIHVzZXIgaW4gdGhlKS0zLjUyMyBGKFwyMTRsZW5hbWUgdG8gYmUgY29tcGxldGVkLikxNDQgMzEyCi1RIEYxKG91dHB1dFwyNTVtZXRhIFwoT2ZmXCkpMTA4IDMyNCBRIEYwIC41MDcoSWYgc2V0IHRvKTE0NCAzMzYgUiBGMShPbikKLTMuMDA3IEUgRjAgMy4wMDcoLHIpQyAuNTA3KGVhZGxpbmUgd2lsbCBkaXNwbGF5IGNoYXJhY3RlcnMgd2l0aCB0aGUgZWlnXAotaHRoIGJpdCBzZXQgZGlyZWN0bHkgcmF0aGVyIHRoYW4gYXMgYSBtZXRhLSktMy4wMDcgRihwcmVcMjE0eCkxNDQgMzQ4IFEKLShlZCBlc2NhcGUgc2VxdWVuY2UuKS0uMTUgRSBGMShwYWdlXDI1NWNvbXBsZXRpb25zIFwoT25cKSkxMDggMzYwIFEgRjAKLS44MDgoSWYgc2V0IHRvKTE0NCAzNzIgUiBGMShPbikzLjMwOCBFIEYwIDMuMzA4KCxyKUMgLjgwOAorMTQ0IDM0OCBSIDMuNTIzKCdpKS0uNyBHIDMuNTIzKHNzKS0zLjUyMyBHIDEuMDIzCisodXBwbGllZCBieSB0aGUgdXNlciBpbiB0aGUpLTMuNTIzIEYoXDIxNGxlbmFtZSB0byBiZSBjb21wbGV0ZWQuKTE0NCAzNjAKK1EgRjEob3V0cHV0XDI1NW1ldGEgXChPZmZcKSkxMDggMzcyIFEgRjAgLjUwNihJZiBzZXQgdG8pMTQ0IDM4NCBSIEYxKE9uKQorMy4wMDYgRSBGMCAzLjAwNigscilDIC41MDcoZWFkbGluZSB3aWxsIGRpc3BsYXkgY2hhcmFjdGVycyB3aXRoIHRoZSBlaWdcCitodGggYml0IHNldCBkaXJlY3RseSByYXRoZXIgdGhhbiBhcyBhIG1ldGEtKS0zLjAwNiBGKHByZVwyMTR4KTE0NCAzOTYgUQorKGVkIGVzY2FwZSBzZXF1ZW5jZS4pLS4xNSBFIEYxKHBhZ2VcMjU1Y29tcGxldGlvbnMgXChPblwpKTEwOCA0MDggUSBGMAorLjgwOShJZiBzZXQgdG8pMTQ0IDQyMCBSIEYxKE9uKTMuMzA4IEUgRjAgMy4zMDgoLHIpQyAuODA4CiAoZWFkbGluZSB1c2VzIGFuIGludGVybmFsKS0zLjMwOCBGIEYyKG1vcikzLjMwOCBFKGUpLS4zNyBFIEYwKC1saWspQQogMy4zMDgoZXApLS4xIEcgLjgwOChhZ2VyIHRvIGRpc3BsYXkgYSBzY3JlZW5mdWwgb2YgcG9zc2libGUgY29tcGxlLSkKLS0zLjMwOCBGKHRpb25zIGF0IGEgdGltZS4pMTQ0IDM4NCBRIEYxCi0ocHJpbnRcMjU1Y29tcGxldGlvbnNcMjU1aG9yaXpvbnRhbGx5IFwoT2ZmXCkpMTA4IDM5NiBRIEYwIDEuMzE5Ci0oSWYgc2V0IHRvKTE0NCA0MDggUiBGMShPbikzLjgxOSBFIEYwIDMuODE5KCxyKUMgMS4zMTgoZWFkbGluZSB3aWxsIGRpc1wKLXBsYXkgY29tcGxldGlvbnMgd2l0aCBtYXRjaGVzIHNvcnRlZCBob3Jpem9udGFsbHkgaW4gYWxwaGFiZXRpY2FsKS0zLjgxOQotRihvcmRlcikxNDQgNDIwIFEgMi41KCxyKS0uNCBHKGF0aGVyIHRoYW4gZG8pLTIuNSBFKHduIHRoZSBzY3JlZW4uKS0uMjUKLUUgRjEoc2hvKTEwOCA0MzIgUSh3XDI1NWFsbFwyNTVpZlwyNTVhbWJpZ3VvdXMgXChPZmZcKSktLjEgRSBGMCAuNDc3Ci0oVGhpcyBhbHRlcnMgdGhlIGRlZikxNDQgNDQ0IFIgLjQ3NyhhdWx0IGJlaGEpLS4xIEYgLjQ3NwotKHZpb3Igb2YgdGhlIGNvbXBsZXRpb24gZnVuY3Rpb25zLiktLjIgRiAuNDc4KElmIHNldCB0byk1LjQ3OCBGIEYxKG9uKQotMi45NzggRSBGMCAyLjk3OCgsdylDIC40Nzgob3JkcyB3aGljaCBoYSktMy4wNzggRiAuNzc4IC0uMTUodmUgbSktLjIgSAorLTMuMzA4IEYodGlvbnMgYXQgYSB0aW1lLikxNDQgNDMyIFEgRjEKKyhwcmludFwyNTVjb21wbGV0aW9uc1wyNTVob3Jpem9udGFsbHkgXChPZmZcKSkxMDggNDQ0IFEgRjAgMS4zMTgKKyhJZiBzZXQgdG8pMTQ0IDQ1NiBSIEYxKE9uKTMuODE4IEUgRjAgMy44MTgoLHIpQyAxLjMxOShlYWRsaW5lIHdpbGwgZGlzXAorcGxheSBjb21wbGV0aW9ucyB3aXRoIG1hdGNoZXMgc29ydGVkIGhvcml6b250YWxseSBpbiBhbHBoYWJldGljYWwpLTMuODE4CitGKG9yZGVyKTE0NCA0NjggUSAyLjUoLHIpLS40IEcoYXRoZXIgdGhhbiBkbyktMi41IEUod24gdGhlIHNjcmVlbi4pLS4yNQorRSBGMShzaG8pMTA4IDQ4MCBRKHdcMjU1YWxsXDI1NWlmXDI1NWFtYmlndW91cyBcKE9mZlwpKS0uMSBFIEYwIC40NzgKKyhUaGlzIGFsdGVycyB0aGUgZGVmKTE0NCA0OTIgUiAuNDc4KGF1bHQgYmVoYSktLjEgRiAuNDc4CisodmlvciBvZiB0aGUgY29tcGxldGlvbiBmdW5jdGlvbnMuKS0uMiBGIC40NzcoSWYgc2V0IHRvKTUuNDc3IEYgRjEob24pCisyLjk3NyBFIEYwIDIuOTc3KCx3KUMgLjQ3NyhvcmRzIHdoaWNoIGhhKS0zLjA3NyBGIC43NzcgLS4xNSh2ZSBtKS0uMiBICiAob3JlKS4xNSBFIDEuMjY0KHRoYW4gb25lIHBvc3NpYmxlIGNvbXBsZXRpb24gY2F1c2UgdGhlIG1hdGNoZXMgdG8gYmUgbFwKLWlzdGVkIGltbWVkaWF0ZWx5IGluc3RlYWQgb2YgcmluZ2luZyB0aGUpMTQ0IDQ1NiBSKGJlbGwuKTE0NCA0NjggUSBGMQotKHZpc2libGVcMjU1c3RhdHMgXChPZmZcKSkxMDggNDgwIFEgRjAgLjg0NihJZiBzZXQgdG8pMTQ0IDQ5MiBSIEYxKE9uKQoraXN0ZWQgaW1tZWRpYXRlbHkgaW5zdGVhZCBvZiByaW5naW5nIHRoZSkxNDQgNTA0IFIoYmVsbC4pMTQ0IDUxNiBRIEYxCisoc2hvKTEwOCA1MjggUSh3XDI1NWFsbFwyNTVpZlwyNTV1bm1vZGlcMjE0ZWQgXChPZmZcKSktLjEgRSBGMCA1LjM0NgorKFRoaXMgYWx0ZXJzIHRoZSBkZWYpMTQ0IDU0MCBSIDUuMzQ2KGF1bHQgYmVoYSktLjEgRiA1LjM0NQorKHZpb3Igb2YgdGhlIGNvbXBsZXRpb24gZnVuY3Rpb25zIGluIGEgZiktLjIgRiA1LjM0NShhc2hpb24gc2ltaWxhciB0bykKKy0uMSBGIEYxKHNobykxNDQgNTUyIFEod1wyNTVhbGxcMjU1aWZcMjU1YW1iaWd1b3VzKS0uMSBFIEYwIDYuOTIyKC5JKUMKKzQuNDIyKGZzKS02LjkyMiBHIDEuOTIyKGV0IHRvKS00LjQyMiBGIEYxKG9uKTQuNDIyIEUgRjAgNC40MjIoLHcpQyAxLjkyMgorKG9yZHMgd2hpY2ggaGEpLTQuNTIyIEYgMi4yMjMgLS4xNSh2ZSBtKS0uMiBIIDEuOTIzCisob3JlIHRoYW4gb25lIHBvc3NpYmxlIGNvbXBsZXRpb24pLjE1IEYgMS4wNCh3aXRob3V0IGFuKTE0NCA1NjQgUiAzLjU0CisoeXApLS4xNSBHIDEuMDM5Cisob3NzaWJsZSBwYXJ0aWFsIGNvbXBsZXRpb24gXCh0aGUgcG9zc2libGUgY29tcGxldGlvbnMgZG9uJyktMy41NCBGCiszLjUzOSh0cyktLjE4IEcgMS4wMzkoaGFyZSBhIGNvbW1vbiBwcmVcMjE0eFwpKS0zLjUzOSBGKGNhdXNlIHRoZSBtYXRjaFwKK2VzIHRvIGJlIGxpc3RlZCBpbW1lZGlhdGVseSBpbnN0ZWFkIG9mIHJpbmdpbmcgdGhlIGJlbGwuKTE0NCA1NzYgUSBGMQorKHZpc2libGVcMjU1c3RhdHMgXChPZmZcKSkxMDggNTg4IFEgRjAgLjg0NihJZiBzZXQgdG8pMTQ0IDYwMCBSIEYxKE9uKQogMy4zNDYgRSBGMCAzLjM0NigsYWMpQyAuODQ2KGhhcmFjdGVyIGRlbm90aW5nIGEgXDIxNGxlJyktMy4zNDYgRiAzLjM0NgogKHN0KS0uNTUgRyAuODQ2KHlwZSBhcyByZXBvcnRlZCBieSktMy4zNDYgRiBGMihzdGF0KTMuMzQ2IEUgRjAgLjg0NgogKFwoMlwpIGlzIGFwcGVuZGVkIHRvIHRoZSBcMjE0bGVuYW1lKUIKLSh3aGVuIGxpc3RpbmcgcG9zc2libGUgY29tcGxldGlvbnMuKTE0NCA1MDQgUSBGMShDb25kaXRpb25hbCBDb25zdHJ1Y3RzKQotODcgNTIwLjggUSBGMCAuMDUoUmVhZGxpbmUgaW1wbGVtZW50cyBhIGYpMTA4IDUzMi44IFIgLjA1KGFjaWxpdHkgc2ltaWxcCisod2hlbiBsaXN0aW5nIHBvc3NpYmxlIGNvbXBsZXRpb25zLikxNDQgNjEyIFEgRjEoQ29uZGl0aW9uYWwgQ29uc3RydWN0cykKKzg3IDYyOC44IFEgRjAgLjA1KFJlYWRsaW5lIGltcGxlbWVudHMgYSBmKTEwOCA2NDAuOCBSIC4wNShhY2lsaXR5IHNpbWlsXAogYXIgaW4gc3Bpcml0IHRvIHRoZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBmZWF0dXJlcyBvZiB0aGUgQyBwcmVwcm9jZXNcCi1zb3IpLS4xIEYgLjA5Nih3aGljaCBhbGxvKTEwOCA1NDQuOCBSIC4wOTYod3MgayktLjI1IEYgLjM5NiAtLjE1KGV5IGIpCitzb3IpLS4xIEYgLjA5Nih3aGljaCBhbGxvKTEwOCA2NTIuOCBSIC4wOTYod3MgayktLjI1IEYgLjM5NiAtLjE1KGV5IGIpCiAtLjEgSCAuMDk2KGluZGluZ3MgYW5kIHYpLjE1IEYgLjA5NgogKGFyaWFibGUgc2V0dGluZ3MgdG8gYmUgcGVyZm9ybWVkIGFzIHRoZSByZXN1bHQgb2YgdGVzdHMuKS0uMjUgRiAuMDk3Ci0oVGhlcmUgYXJlIGZvdXIgcGFyc2VyKTUuMDk2IEYoZGlyZWN0aSkxMDggNTU2LjggUSAtLjE1KHZlKS0uMjUgRyAyLjUKLShzdSkuMTUgRyhzZWQuKS0yLjUgRSBGMSgkaWYpMTA4IDU3My42IFEgRjAoVGhlKTI0Ljg5IEUgRjEoJGlmKTIuOTYzIEUKKyhUaGVyZSBhcmUgZm91ciBwYXJzZXIpNS4wOTYgRihkaXJlY3RpKTEwOCA2NjQuOCBRIC0uMTUodmUpLS4yNSBHIDIuNQorKHN1KS4xNSBHKHNlZC4pLTIuNSBFIEYxKCRpZikxMDggNjgxLjYgUSBGMChUaGUpMjQuODkgRSBGMSgkaWYpMi45NjMgRQogRjAgLjQ2Myhjb25zdHJ1Y3QgYWxsbykyLjk2MyBGIC40NjIod3MgYmluZGluZ3MgdG8gYmUgbWFkZSBiYXNlZCBvbiB0aGVcCiAgZWRpdGluZyBtb2RlLCB0aGUgdGVybWluYWwgYmVpbmcgdXNlZCwpLS4yNSBGIC40NzcKLShvciB0aGUgYXBwbGljYXRpb24gdXNpbmcgcmVhZGxpbmUuKTE0NCA1ODUuNiBSIC40NzcoVGhlIHRlKTUuNDc3IEYgLjQ3NworKG9yIHRoZSBhcHBsaWNhdGlvbiB1c2luZyByZWFkbGluZS4pMTQ0IDY5My42IFIgLjQ3NyhUaGUgdGUpNS40NzcgRiAuNDc3CiAoeHQgb2YgdGhlIHRlc3QgZSktLjE1IEYgLjQ3NwogKHh0ZW5kcyB0byB0aGUgZW5kIG9mIHRoZSBsaW5lOyBubyBjaGFyYWN0ZXJzKS0uMTUgRgotKGFyZSByZXF1aXJlZCB0byBpc29sYXRlIGl0LikxNDQgNTk3LjYgUSBGMShtb2RlKTE0NCA2MTQuNCBRIEYwKFRoZSkKLTEyLjY3IEUgRjEobW9kZT0pMy43MTIgRSBGMCAxLjIxMihmb3JtIG9mIHRoZSkzLjcxMiBGIEYxKCRpZikzLjcxMSBFIEYwCi0oZGlyZWN0aSkzLjcxMSBFIDEuNTExIC0uMTUodmUgaSktLjI1IEggMy43MTEoc3UpLjE1IEcgMS4yMTEKLShzZWQgdG8gdGVzdCB3aGV0aGVyIHJlYWRsaW5lIGlzIGluIGVtYWNzIG9yIHZpKS0zLjcxMSBGIDMuMDY1Ci0obW9kZS4gVGhpcykxODAgNjI2LjQgUiAuNTY1KG1heSBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlKTMuMDY1IEYKLUYxIC41NjUoc2V0IGspMy4wNjUgRihleW1hcCktLjEgRSBGMCAuNTY1KGNvbW1hbmQsIGZvciBpbnN0YW5jZSwgdG8pCi0zLjA2NSBGIC4wMyhzZXQgYmluZGluZ3MgaW4gdGhlKTE4MCA2MzguNCBSIEYyKGVtYWNzLXN0YW5kYXIpMi41MjkgRShkKQotLS4zNyBFIEYwKGFuZCkyLjUyOSBFIEYyKGVtYWNzLWN0bHgpMi41MjkgRSBGMCAtLjEoa2UpMi41MjkgRyAuMDI5Ci0oeW1hcHMgb25seSBpZiByZWFkbGluZSBpcyBzdGFydGluZyBvdXQpLS4wNSBGKGluIGVtYWNzIG1vZGUuKTE4MCA2NTAuNAotUSBGMSh0ZXJtKTE0NCA2NjcuMiBRIEYwKFRoZSkxNS40NiBFIEYxKHRlcm09KTMuMTk2IEUgRjAgLjY5NgotKGZvcm0gbWF5IGJlIHVzZWQgdG8gaW5jbHVkZSB0ZXJtaW5hbC1zcGVjaVwyMTRjIGspMy4xOTYgRiAuOTk2IC0uMTUKLShleSBiKS0uMSBIIC42OTcoaW5kaW5ncywgcGVyaGFwcyB0byBiaW5kKS4xNSBGIC42NTQodGhlIGspMTgwIDY3OS4yIFIKLS45NTQgLS4xNShleSBzKS0uMSBIIC42NTQoZXF1ZW5jZXMgb3V0cHV0IGJ5IHRoZSB0ZXJtaW5hbCcpLjE1IEYgMy4xNTQKLShzZiktLjU1IEcgLjY1NCh1bmN0aW9uIGspLTMuMTU0IEYgLS4xNShleSktLjEgRyAzLjE1NChzLiBUaGUpLjE1IEYgLS4xCi0od28pMy4xNTQgRyAuNjU0KHJkIG9uIHRoZSByaWdodCBzaWRlIG9mKS4xIEYodGhlKTE4MCA2OTEuMiBRIEYxKD0pMy4wMDMKLUUgRjAgLjUwMyhpcyB0ZXN0ZWQgYWcpMy4wMDMgRiAuNTA0KGFpbnN0IHRoZSBmdWxsIG5hbWUgb2YgdGhlIHRlcm1pbmFsXAotIGFuZCB0aGUgcG9ydGlvbiBvZiB0aGUgdGVybWluYWwgbmFtZSktLjA1IEYoYmVmb3JlIHRoZSBcMjE0cnN0KTE4MAotNzAzLjIgUSBGMTxhZD4yLjUgRSBGMCA1KC5UKUMoaGlzIGFsbG8pLTUgRSh3cyktLjI1IEUgRjIoc3VuKTIuNSBFIEYwCi0odG8gbWF0Y2ggYm90aCkyLjUgRSBGMihzdW4pMi41IEUgRjAoYW5kKTIuNSBFIEYyKHN1blwyNTVjbWQpMi41IEUgRjAKLTIuNSgsZikuNzcgRyhvciBpbnN0YW5jZS4pLTIuNSBFKEdOVSBSZWFkbGluZSA0LjMpNzIgNzY4IFEKLSgyMDAyIEphbnVhcnkgMjIpMTI2LjI0IEUoNCkxOTUuOTUgRSBFUAorKGFyZSByZXF1aXJlZCB0byBpc29sYXRlIGl0LikxNDQgNzA1LjYgUShHTlUgUmVhZGxpbmUgNS4xLWJldGExKTcyIDc2OCBRCisoMjAwNSBTZXAgMTMpMTA5LjMgRSg0KTIwNCBFIDAgQ2cgRVAKICUlUGFnZTogNSA1CiAlJUJlZ2luUGFnZVNldHVwCiBCUAogJSVFbmRQYWdlU2V0dXAKIC9GMCAxMC9UaW1lcy1Sb21hbkAwIFNGIDM0Mi4yKFJFQURMSU5FXCgzXCkgUkVBRExJTkVcKDNcKSk3MiA0OCBSL0YxIDEwCi0vVGltZXMtQm9sZEAwIFNGKGFwcGxpY2F0aW9uKTE0NCA4NCBRIEYwKFRoZSkxODAgOTYgUSBGMShhcHBsaWNhdGlvbikKLTMuMDAzIEUgRjAgLjUwMworL1RpbWVzLUJvbGRAMCBTRihtb2RlKTE0NCA4NCBRIEYwKFRoZSkxMi42NyBFIEYxKG1vZGU9KTMuNzEyIEUgRjAgMS4yMTIKKyhmb3JtIG9mIHRoZSkzLjcxMiBGIEYxKCRpZikzLjcxMSBFIEYwKGRpcmVjdGkpMy43MTEgRSAxLjUxMSAtLjE1KHZlIGkpCistLjI1IEggMy43MTEoc3UpLjE1IEcgMS4yMTEKKyhzZWQgdG8gdGVzdCB3aGV0aGVyIHJlYWRsaW5lIGlzIGluIGVtYWNzIG9yIHZpKS0zLjcxMSBGIDMuMDY1CisobW9kZS4gVGhpcykxODAgOTYgUiAuNTY1KG1heSBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlKTMuMDY1IEYgRjEKKy41NjUoc2V0IGspMy4wNjUgRihleW1hcCktLjEgRSBGMCAuNTY1KGNvbW1hbmQsIGZvciBpbnN0YW5jZSwgdG8pMy4wNjUgRgorLjAzKHNldCBiaW5kaW5ncyBpbiB0aGUpMTgwIDEwOCBSL0YyIDEwL1RpbWVzLUl0YWxpY0AwIFNGKGVtYWNzLXN0YW5kYXIpCisyLjUyOSBFKGQpLS4zNyBFIEYwKGFuZCkyLjUyOSBFIEYyKGVtYWNzLWN0bHgpMi41MjkgRSBGMCAtLjEoa2UpMi41MjkgRworLjAyOSh5bWFwcyBvbmx5IGlmIHJlYWRsaW5lIGlzIHN0YXJ0aW5nIG91dCktLjA1IEYoaW4gZW1hY3MgbW9kZS4pMTgwCisxMjAgUSBGMSh0ZXJtKTE0NCAxMzYuOCBRIEYwKFRoZSkxNS40NiBFIEYxKHRlcm09KTMuMTk2IEUgRjAgLjY5NgorKGZvcm0gbWF5IGJlIHVzZWQgdG8gaW5jbHVkZSB0ZXJtaW5hbC1zcGVjaVwyMTRjIGspMy4xOTYgRiAuOTk2IC0uMTUKKyhleSBiKS0uMSBIIC42OTcoaW5kaW5ncywgcGVyaGFwcyB0byBiaW5kKS4xNSBGIC42NTQodGhlIGspMTgwIDE0OC44IFIKKy45NTQgLS4xNShleSBzKS0uMSBIIC42NTQoZXF1ZW5jZXMgb3V0cHV0IGJ5IHRoZSB0ZXJtaW5hbCcpLjE1IEYgMy4xNTQKKyhzZiktLjU1IEcgLjY1NCh1bmN0aW9uIGspLTMuMTU0IEYgLS4xNShleSktLjEgRyAzLjE1NChzLiBUaGUpLjE1IEYgLS4xCisod28pMy4xNTQgRyAuNjU0KHJkIG9uIHRoZSByaWdodCBzaWRlIG9mKS4xIEYodGhlKTE4MCAxNjAuOCBRIEYxKD0pMy4wMDMKK0UgRjAgLjUwMyhpcyB0ZXN0ZWQgYWcpMy4wMDMgRiAuNTA0KGFpbnN0IHRoZSBmdWxsIG5hbWUgb2YgdGhlIHRlcm1pbmFsXAorIGFuZCB0aGUgcG9ydGlvbiBvZiB0aGUgdGVybWluYWwgbmFtZSktLjA1IEYoYmVmb3JlIHRoZSBcMjE0cnN0KTE4MAorMTcyLjggUSBGMTxhZD4yLjUgRSBGMCA1KC5UKUMoaGlzIGFsbG8pLTUgRSh3cyktLjI1IEUgRjIoc3VuKTIuODQgRSBGMAorKHRvIG1hdGNoIGJvdGgpMi43NCBFIEYyKHN1bikyLjg0IEUgRjAoYW5kKTIuNzQgRSBGMihzdW5cMjU1Y21kKTIuNSBFIEYwCisyLjUoLGYpLjc3IEcob3IgaW5zdGFuY2UuKS0yLjUgRSBGMShhcHBsaWNhdGlvbikxNDQgMTg5LjYgUSBGMChUaGUpMTgwCisyMDEuNiBRIEYxKGFwcGxpY2F0aW9uKTMuMDAzIEUgRjAgLjUwMwogKGNvbnN0cnVjdCBpcyB1c2VkIHRvIGluY2x1ZGUgYXBwbGljYXRpb24tc3BlY2lcMjE0YyBzZXR0aW5ncy4pMy4wMDMgRgogLjUwMyhFYWNoIHByb2dyYW0pNS41MDMgRiAuMTE0KHVzaW5nIHRoZSByZWFkbGluZSBsaWJyYXJ5IHNldHMgdGhlKTE4MAotMTA4IFIvRjIgMTAvVGltZXMtSXRhbGljQDAgU0YgLjExNChhcHBsaWNhdGlvbiBuYW1lKTIuNjE0IEYgRjAgMi42MTQoLGEpCi1DIC4xMTQobmQgYW4gaW5pdGlhbGl6YXRpb24gXDIxNGxlIGNhbiB0ZXN0IGZvciBhKS0yLjYxNCBGIC41MDEKLShwYXJ0aWN1bGFyIHYpMTgwIDEyMCBSIDMuMDAxKGFsdWUuIFRoaXMpLS4yNSBGIC41MDEKLShjb3VsZCBiZSB1c2VkIHRvIGJpbmQgaykzLjAwMSBGIC44MDEgLS4xNShleSBzKS0uMSBIIC41Ci0oZXF1ZW5jZXMgdG8gZnVuY3Rpb25zIHVzZWZ1bCBmb3IgYSBzcGUtKS4xNSBGIC4zOTYoY2lcMjE0YyBwcm9ncmFtLikxODAKLTEzMiBSIC0uMTUoRm8pNS4zOTYgRyAyLjg5NihyaSkuMTUgRyAuMzk2KG5zdGFuY2UsIHRoZSBmb2xsbyktMi44OTYgRgotLjM5Nih3aW5nIGNvbW1hbmQgYWRkcyBhIGspLS4yNSBGIC42OTYgLS4xNShleSBzKS0uMSBIIC4zOTcKLShlcXVlbmNlIHRoYXQgcXVvdGVzIHRoZSkuMTUgRihjdXJyZW50IG9yIHByZSkxODAgMTQ0IFEodmlvdXMgdyktLjI1IEUKLShvcmQgaW4gQmFzaDopLS4xIEUgRjEoJGlmKTE4MCAxNjggUSBGMChCYXNoKTIuNSBFIDIuNSgjUSkxODAgMTgwIFMKLSh1b3RlIHRoZSBjdXJyZW50IG9yIHByZSktMi41IEUodmlvdXMgdyktLjI1IEUob3JkKS0uMSBFCi0oIlxcQy14cSI6ICJcXGViXFwiXFxlZlxcIiIpMTgwIDE5MiBRIEYxKCRlbmRpZikxODAgMjA0IFEoJGVuZGlmKTEwOAotMjIwLjggUSBGMChUaGlzIGNvbW1hbmQsIGFzIHNlZW4gaW4gdGhlIHByZSk5LjMzIEUodmlvdXMgZSktLjI1IEUKKzIxMy42IFIgRjIgLjExNChhcHBsaWNhdGlvbiBuYW1lKTIuNjE0IEYgRjAgMi42MTQoLGEpQyAuMTE0CisobmQgYW4gaW5pdGlhbGl6YXRpb24gXDIxNGxlIGNhbiB0ZXN0IGZvciBhKS0yLjYxNCBGIC41MDEocGFydGljdWxhciB2KQorMTgwIDIyNS42IFIgMy4wMDEoYWx1ZS4gVGhpcyktLjI1IEYgLjUwMShjb3VsZCBiZSB1c2VkIHRvIGJpbmQgaykzLjAwMSBGCisuODAxIC0uMTUoZXkgcyktLjEgSCAuNShlcXVlbmNlcyB0byBmdW5jdGlvbnMgdXNlZnVsIGZvciBhIHNwZS0pLjE1IEYKKy4zOTYoY2lcMjE0YyBwcm9ncmFtLikxODAgMjM3LjYgUiAtLjE1KEZvKTUuMzk2IEcgMi44OTYocmkpLjE1IEcgLjM5NgorKG5zdGFuY2UsIHRoZSBmb2xsbyktMi44OTYgRiAuMzk2KHdpbmcgY29tbWFuZCBhZGRzIGEgayktLjI1IEYgLjY5NiAtLjE1CisoZXkgcyktLjEgSCAuMzk3KGVxdWVuY2UgdGhhdCBxdW90ZXMgdGhlKS4xNSBGKGN1cnJlbnQgb3IgcHJlKTE4MCAyNDkuNgorUSh2aW91cyB3KS0uMjUgRShvcmQgaW4gQmFzaDopLS4xIEUgRjEoJGlmKTE4MCAyNzMuNiBRIEYwKEJhc2gpMi41IEUgMi41CisoI1EpMTgwIDI4NS42IFModW90ZSB0aGUgY3VycmVudCBvciBwcmUpLTIuNSBFKHZpb3VzIHcpLS4yNSBFKG9yZCktLjEgRQorKCJcXEMteHEiOiAiXFxlYlxcIlxcZWZcXCIiKTE4MCAyOTcuNiBRIEYxKCRlbmRpZikxODAgMzA5LjYgUSgkZW5kaWYpMTA4CiszMjYuNCBRIEYwKFRoaXMgY29tbWFuZCwgYXMgc2VlbiBpbiB0aGUgcHJlKTkuMzMgRSh2aW91cyBlKS0uMjUgRQogKHhhbXBsZSwgdGVybWluYXRlcyBhbiktLjE1IEUgRjEoJGlmKTIuNSBFIEYwKGNvbW1hbmQuKTIuNSBFIEYxKCRlbHNlKQotMTA4IDIzNy42IFEgRjAoQ29tbWFuZHMgaW4gdGhpcyBicmFuY2ggb2YgdGhlKTE1LjQ1IEUgRjEoJGlmKTIuNSBFIEYwCisxMDggMzQzLjIgUSBGMChDb21tYW5kcyBpbiB0aGlzIGJyYW5jaCBvZiB0aGUpMTUuNDUgRSBGMSgkaWYpMi41IEUgRjAKIChkaXJlY3RpKTIuNSBFIC4zIC0uMTUodmUgYSktLjI1IEgocmUgZSkuMTUgRSAtLjE1KHhlKS0uMTUgRwotKGN1dGVkIGlmIHRoZSB0ZXN0IGYpLjE1IEUoYWlscy4pLS4xIEUgRjEoJGluY2x1ZGUpMTA4IDI1NC40IFEgRjAgLjM1NwotKFRoaXMgZGlyZWN0aSkxNDQgMjY2LjQgUiAuNjU3IC0uMTUodmUgdCktLjI1IEgoYWspLjE1IEUgLjM1NworKGN1dGVkIGlmIHRoZSB0ZXN0IGYpLjE1IEUoYWlscy4pLS4xIEUgRjEoJGluY2x1ZGUpMTA4IDM2MCBRIEYwIC4zNTcKKyhUaGlzIGRpcmVjdGkpMTQ0IDM3MiBSIC42NTcgLS4xNSh2ZSB0KS0uMjUgSChhaykuMTUgRSAuMzU3CiAoZXMgYSBzaW5nbGUgXDIxNGxlbmFtZSBhcyBhbiBhciktLjEgRiAuMzU2CiAoZ3VtZW50IGFuZCByZWFkcyBjb21tYW5kcyBhbmQgYmluZGluZ3MgZnJvbSB0aGF0KS0uMTggRiAyLjUoXDIxNGxlLiBGKQotMTQ0IDI3OC40IFIob3IgZSktLjE1IEUoeGFtcGxlLCB0aGUgZm9sbG8pLS4xNSBFKHdpbmcgZGlyZWN0aSktLjI1IEUgLjMKKzE0NCAzODQgUihvciBlKS0uMTUgRSh4YW1wbGUsIHRoZSBmb2xsbyktLjE1IEUod2luZyBkaXJlY3RpKS0uMjUgRSAuMwogLS4xNSh2ZSB3KS0uMjUgSChvdWxkIHJlYWQpLjA1IEUgRjIoL2V0Yy9pbnB1dHIpMi41IEUoYyktLjM3IEUgRjAoOilBIEYxCi0oJGluY2x1ZGUpMTQ0IDMwMi40IFEgRjIoL2V0Yy9pbnB1dHIpNS44MzMgRShjKS0uMzcgRS9GMyAxMC45NQotL1RpbWVzLUJvbGRAMCBTRihTRUFSQ0hJTkcpNzIgMzE5LjIgUSBGMCAxLjAwMyhSZWFkbGluZSBwcm8pMTA4IDMzMS4yIFIKKygkaW5jbHVkZSkxNDQgNDA4IFEgRjIoL2V0Yy9pbnB1dHIpNS44MzMgRShjKS0uMzcgRS9GMyAxMC45NQorL1RpbWVzLUJvbGRAMCBTRihTRUFSQ0hJTkcpNzIgNDI0LjggUSBGMCAxLjAwMyhSZWFkbGluZSBwcm8pMTA4IDQzNi44IFIKIDEuMDAzKHZpZGVzIGNvbW1hbmRzIGZvciBzZWFyY2hpbmcgdGhyb3VnaCB0aGUgY29tbWFuZCBoaXN0b3J5IGZvciBsaW5lXAotcyBjb250YWluaW5nIGEgc3BlY2lcMjE0ZWQpLS4xNSBGIDIuNShzdHJpbmcuIFRoZXJlKTEwOCAzNDMuMiBSKGFyZSB0dykKLTIuNSBFIDIuNShvcyktLjEgRyhlYXJjaCBtb2RlczopLTIuNSBFIEYyKGluY3IpMi41IEUoZW1lbnRhbCktLjM3IEUgRjAKLShhbmQpMi41IEUgRjIobm9uLWluY3IpMi41IEUoZW1lbnRhbCktLjM3IEUgRjAoLikuNTEgRSAuNjk4Ci0oSW5jcmVtZW50YWwgc2VhcmNoZXMgYmUpMTA4IDM2MCBSIC42OTgKK3MgY29udGFpbmluZyBhIHNwZWNpXDIxNGVkKS0uMTUgRiAyLjUoc3RyaW5nLiBUaGVyZSkxMDggNDQ4LjggUihhcmUgdHcpCisyLjUgRSAyLjUob3MpLS4xIEcoZWFyY2ggbW9kZXM6KS0yLjUgRSBGMihpbmNyKTIuNTEgRShlbWVudGFsKS0uMzcgRSBGMAorKGFuZCkzLjAxIEUgRjIobm9uLWluY3IpMi41IEUoZW1lbnRhbCktLjM3IEUgRjAoLikuNTEgRSAuNjk4CisoSW5jcmVtZW50YWwgc2VhcmNoZXMgYmUpMTA4IDQ2NS42IFIgLjY5OAogKGdpbiBiZWZvcmUgdGhlIHVzZXIgaGFzIFwyMTRuaXNoZWQgdHlwaW5nIHRoZSBzZWFyY2ggc3RyaW5nLiktLjE1IEYKIC42OTcoQXMgZWFjaCBjaGFyYWN0ZXIgb2YgdGhlKTUuNjk3IEYgLjExMgotKHNlYXJjaCBzdHJpbmcgaXMgdHlwZWQsIHJlYWRsaW5lIGRpc3BsYXlzIHRoZSBuZSkxMDggMzcyIFIgLjExMgorKHNlYXJjaCBzdHJpbmcgaXMgdHlwZWQsIHJlYWRsaW5lIGRpc3BsYXlzIHRoZSBuZSkxMDggNDc3LjYgUiAuMTEyCiAoeHQgZW50cnkgZnJvbSB0aGUgaGlzdG9yeSBtYXRjaGluZyB0aGUgc3RyaW5nIHR5cGVkIHNvIGYpLS4xNSBGKGFyKS0uMQogRSA1LjExMyguQSktLjU1IEcobiktNS4xMTMgRSAuNTQ1Ci0oaW5jcmVtZW50YWwgc2VhcmNoIHJlcXVpcmVzIG9ubHkgYXMgbWFuKTEwOCAzODQgUiAzLjA0NSh5YyktLjE1IEcgLjU0NAotKGhhcmFjdGVycyBhcyBuZWVkZWQgdG8gXDIxNG5kIHRoZSBkZXNpcmVkIGhpc3RvcnkgZW50cnkpLTMuMDQ1IEYgNS41NDQKLSguVCktLjY1IEcgMy4wNDQob3MpLTYuMzQ0IEcoZWFyY2gpLTMuMDQ0IEUoYmFja3cpMTA4IDM5NiBRIC4xOAorKGluY3JlbWVudGFsIHNlYXJjaCByZXF1aXJlcyBvbmx5IGFzIG1hbikxMDggNDg5LjYgUiAzLjA0NSh5YyktLjE1IEcKKy41NDQoaGFyYWN0ZXJzIGFzIG5lZWRlZCB0byBcMjE0bmQgdGhlIGRlc2lyZWQgaGlzdG9yeSBlbnRyeSktMy4wNDUgRgorNS41NDQoLlQpLS42NSBHIDMuMDQ0KG9zKS02LjM0NCBHKGVhcmNoKS0zLjA0NCBFKGJhY2t3KTEwOCA1MDEuNiBRIC4xOAogKGFyZCBpbiB0aGUgaGlzdG9yeSBmb3IgYSBwYXJ0aWN1bGFyIHN0cmluZywgdHlwZSktLjEgRiBGMShDXDI1NXIpMi42ODEKIEUgRjAgNS4xODEoLlQpQyh5cGluZyktNS45ODEgRSBGMShDXDI1NXMpMi42ODEgRSBGMCAuMTgxKHNlYXJjaGVzIGZvcncpCiAyLjY4MSBGIC4xODEoYXJkIHRocm91Z2ggdGhlIGhpc3RvcnkpLS4xIEYoLiktLjY1IEUgLjM1NAotKFRoZSBjaGFyYWN0ZXJzIHByZXNlbnQgaW4gdGhlIHYpMTA4IDQwOCBSIC4zNTQoYWx1ZSBvZiB0aGUpLS4yNSBGIEYxCisoVGhlIGNoYXJhY3RlcnMgcHJlc2VudCBpbiB0aGUgdikxMDggNTEzLjYgUiAuMzU0KGFsdWUgb2YgdGhlKS0uMjUgRiBGMQogKGlzZWFyKTIuODU0IEUoY2gtdGVybWluYXRvcnMpLS4xOCBFIEYwIC0uMjUodmEpMi44NTQgRyAuMzU0Ci0ocmlhYmxlIGFyZSB1c2VkIHRvIHRlcm1pbmF0ZSBhbiBpbmNyZW1lbi0pLjI1IEYgLjYodGFsIHNlYXJjaC4pMTA4IDQyMAotUiAuNihJZiB0aGF0IHYpNS42IEYgLjYoYXJpYWJsZSBoYXMgbm90IGJlZW4gYXNzaWduZWQgYSB2KS0uMjUgRiAuNgotKGFsdWUgdGhlKS0uMjUgRiBGMihFc2NhcGUpMy4xIEUgRjAoYW5kKTMuMSBFIEYxKENcMjU1SikzLjEgRSBGMCAuNgotKGNoYXJhY3RlcnMgd2lsbCB0ZXJtaW5hdGUgYW4pMy4xIEYgLjEyMyhpbmNyZW1lbnRhbCBzZWFyY2guKTEwOCA0MzIgUgorKHJpYWJsZSBhcmUgdXNlZCB0byB0ZXJtaW5hdGUgYW4gaW5jcmVtZW4tKS4yNSBGIC42KHRhbCBzZWFyY2guKTEwOAorNTI1LjYgUiAuNihJZiB0aGF0IHYpNS42IEYgLjYoYXJpYWJsZSBoYXMgbm90IGJlZW4gYXNzaWduZWQgYSB2KS0uMjUgRgorLjYoYWx1ZSB0aGUpLS4yNSBGIEYyKEVzY2FwZSkzLjEgRSBGMChhbmQpMy4xIEUgRjEoQ1wyNTVKKTMuMSBFIEYwIC42CisoY2hhcmFjdGVycyB3aWxsIHRlcm1pbmF0ZSBhbikzLjEgRiAuMTIzKGluY3JlbWVudGFsIHNlYXJjaC4pMTA4IDUzNy42IFIKIEYxKENcMjU1Ryk1LjEyMyBFIEYwIC4xMjMKICh3aWxsIGFib3J0IGFuIGluY3JlbWVudGFsIHNlYXJjaCBhbmQgcmVzdG9yZSB0aGUgb3JpZ2luYWwgbGluZS4pMi42MjMgRgogLjEyMihXaGVuIHRoZSBzZWFyY2ggaXMpNS4xMjIgRih0ZXJtaW5hdGVkLCB0aGUgaGlzdG9yeSBlbnRyeSBjb250YWluaW5cCi1nIHRoZSBzZWFyY2ggc3RyaW5nIGJlY29tZXMgdGhlIGN1cnJlbnQgbGluZS4pMTA4IDQ0NCBRIDIuNDA2IC0uOAotKFRvIFwyMTQpMTA4IDQ2MC44IFQgLjgwNgorZyB0aGUgc2VhcmNoIHN0cmluZyBiZWNvbWVzIHRoZSBjdXJyZW50IGxpbmUuKTEwOCA1NDkuNiBRIDIuNDA2IC0uOAorKFRvIFwyMTQpMTA4IDU2Ni40IFQgLjgwNgogKG5kIG90aGVyIG1hdGNoaW5nIGVudHJpZXMgaW4gdGhlIGhpc3RvcnkgbGlzdCwgdHlwZSkuOCBGIEYxKENcMjU1cykKIDMuMzA2IEUgRjAob3IpMy4zMDYgRSBGMShDXDI1NXIpMy4zMDYgRSBGMCAuODA2KGFzIGFwcHJvcHJpYXRlLikzLjMwNiBGCi0uODA3KFRoaXMgd2lsbCBzZWFyY2ggYmFjay0pNS44MDYgRiAtLjEod2EpMTA4IDQ3Mi44IFMgMS4zMDkocmQgb3IgZm9ydykKKy44MDcoVGhpcyB3aWxsIHNlYXJjaCBiYWNrLSk1LjgwNiBGIC0uMSh3YSkxMDggNTc4LjQgUyAxLjMwOShyZCBvciBmb3J3KQogLjEgRiAxLjMwOShhcmQgaW4gdGhlIGhpc3RvcnkgZm9yIHRoZSBuZSktLjEgRiAxLjMwOQogKHh0IGxpbmUgbWF0Y2hpbmcgdGhlIHNlYXJjaCBzdHJpbmcgdHlwZWQgc28gZiktLjE1IEYoYXIpLS4xIEUgNi4zMDkoLkEpCiAtLjU1IEcgMS42MDkgLS4xNShueSBvKS02LjMwOSBIIDEuMzA4KHRoZXIgaykuMTUgRiAtLjE1KGV5KS0uMSBHIC4zMTcKIChzZXF1ZW5jZSBib3VuZCB0byBhIHJlYWRsaW5lIGNvbW1hbmQgd2lsbCB0ZXJtaW5hdGUgdGhlIHNlYXJjaCBhbmQgZSkKLTEwOCA0ODQuOCBSIC0uMTUoeGUpLS4xNSBHIC4zMTgoY3V0ZSB0aGF0IGNvbW1hbmQuKS4xNSBGIC0uMTUoRm8pNS4zMTggRwotMi44MTgocmkpLjE1IEcobnN0YW5jZSwpLTIuODE4IEUgMy40ODEoYW4pMTA4IDQ5Ni44IFMgLS4yNShldyktMy40ODEgRworMTA4IDU5MC40IFIgLS4xNSh4ZSktLjE1IEcgLjMxOChjdXRlIHRoYXQgY29tbWFuZC4pLjE1IEYgLS4xNShGbyk1LjMxOCBHCisyLjgxOChyaSkuMTUgRyhuc3RhbmNlLCktMi44MTggRSAzLjQ4MShhbikxMDggNjAyLjQgUyAtLjI1KGV3KS0zLjQ4MSBHCiAuOTgxKGxpbmUgd2lsbCB0ZXJtaW5hdGUgdGhlIHNlYXJjaCBhbmQgYWNjZXB0IHRoZSBsaW5lLCB0aGVyZWJ5IGUpLjI1IEYKIC0uMTUoeGUpLS4xNSBHIC45OChjdXRpbmcgdGhlIGNvbW1hbmQgZnJvbSB0aGUgaGlzdG9yeSkuMTUgRiAzLjA2MQotKGxpc3QuIEEpMTA4IDUwOC44IFIobW8pMy4wNjEgRSAtLjE1KHZlKS0uMTUgRyAuNTYyCisobGlzdC4gQSkxMDggNjE0LjQgUihtbykzLjA2MSBFIC0uMTUodmUpLS4xNSBHIC41NjIKIChtZW50IGNvbW1hbmQgd2lsbCB0ZXJtaW5hdGUgdGhlIHNlYXJjaCwgbWFrKS4xNSBGIDMuMDYyKGV0KS0uMSBHIC41NjIKIChoZSBsYXN0IGxpbmUgZm91bmQgdGhlIGN1cnJlbnQgbGluZSwgYW5kIGJlKS0zLjA2MiBGKGdpbiktLjE1IEUKLShlZGl0aW5nLikxMDggNTIwLjggUSAuNTY3KE5vbi1pbmNyZW1lbnRhbCBzZWFyY2hlcyByZWFkIHRoZSBlbnRpcmUgc2VhXAorKGVkaXRpbmcuKTEwOCA2MjYuNCBRIC41NjcoTm9uLWluY3JlbWVudGFsIHNlYXJjaGVzIHJlYWQgdGhlIGVudGlyZSBzZWFcCiByY2ggc3RyaW5nIGJlZm9yZSBzdGFydGluZyB0byBzZWFyY2ggZm9yIG1hdGNoaW5nIGhpc3RvcnkgbGluZXMuKTEwOAotNTM3LjYgUihUaGUgc2VhcmNoIHN0cmluZyBtYXkgYmUgdHlwZWQgYnkgdGhlIHVzZXIgb3IgYmUgcGFydCBvZiB0aGUgY29cCi1udGVudHMgb2YgdGhlIGN1cnJlbnQgbGluZS4pMTA4IDU0OS42IFEgRjMoRURJVElORyBDT01NQU5EUyk3MiA1NjYuNCBRCi1GMCAxLjM5MShUaGUgZm9sbG8pMTA4IDU3OC40IFIgMS4zOTEKKzY0My4yIFIoVGhlIHNlYXJjaCBzdHJpbmcgbWF5IGJlIHR5cGVkIGJ5IHRoZSB1c2VyIG9yIGJlIHBhcnQgb2YgdGhlIGNvXAorbnRlbnRzIG9mIHRoZSBjdXJyZW50IGxpbmUuKTEwOCA2NTUuMiBRIEYzKEVESVRJTkcgQ09NTUFORFMpNzIgNjcyIFEgRjAKKzEuMzkxKFRoZSBmb2xsbykxMDggNjg0IFIgMS4zOTEKICh3aW5nIGlzIGEgbGlzdCBvZiB0aGUgbmFtZXMgb2YgdGhlIGNvbW1hbmRzIGFuZCB0aGUgZGVmKS0uMjUgRiAxLjM5MQogKGF1bHQgayktLjEgRiAxLjY5MSAtLjE1KGV5IHMpLS4xIEggMS4zOTEoZXF1ZW5jZXMgdG8gd2hpY2ggdGhlKS4xNSBGCi0zLjg5Mih5YSktLjE1IEcocmUpLTMuODkyIEUgMi41KGJvdW5kLiBDb21tYW5kKTEwOCA1OTAuNCBSCiszLjg5Mih5YSktLjE1IEcocmUpLTMuODkyIEUgMi41KGJvdW5kLiBDb21tYW5kKTEwOCA2OTYgUgogKG5hbWVzIHdpdGhvdXQgYW4gYWNjb21wYW4pMi41IEUoeWluZyBrKS0uMTUgRSAuMyAtLjE1KGV5IHMpLS4xIEgKIChlcXVlbmNlIGFyZSB1bmJvdW5kIGJ5IGRlZikuMTUgRShhdWx0LiktLjEgRSAuMDU1KEluIHRoZSBmb2xsbykxMDgKLTYwNy4yIFIgLjA1NSh3aW5nIGRlc2NyaXB0aW9ucywpLS4yNSBGIEYyKHBvaW50KTIuNTU1IEUgRjAgLjA1NQorNzEyLjggUiAuMDU1KHdpbmcgZGVzY3JpcHRpb25zLCktLjI1IEYgRjIocG9pbnQpMi41NTUgRSBGMCAuMDU1CiAocmVmZXJzIHRvIHRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbiwgYW5kKTIuNTU1IEYgRjIobWFyaykyLjU1NSBFIEYwCi0uMDU0KHJlZmVycyB0byBhIGN1cnNvciBwb3NpdGlvbikyLjU1NCBGKHNhKTEwOCA2MTkuMiBRIC0uMTUodmUpLS4yIEcKKy4wNTQocmVmZXJzIHRvIGEgY3Vyc29yIHBvc2l0aW9uKTIuNTU0IEYoc2EpMTA4IDcyNC44IFEgLS4xNSh2ZSktLjIgRwogMi41KGRiKS4xNSBHIDIuNSh5dCktMi41IEcoaGUpLTIuNSBFIEYxKHNldFwyNTVtYXJrKTIuNSBFIEYwIDIuNQogKGNvbW1hbmQuIFRoZSkyLjUgRih0ZSkyLjUgRQogKHh0IGJldHdlZW4gdGhlIHBvaW50IGFuZCBtYXJrIGlzIHJlZmVycmVkIHRvIGFzIHRoZSktLjE1IEUgRjIgLS4zNyhyZSkKLTIuNSBHKGdpb24pLS4wMyBFIEYwKC4pQSBGMShDb21tYW5kcyBmKTg3IDYzNiBRKG9yIE1vKS0uMjUgRSh2aW5nKS0uMSBFCi0oYmVnaW5uaW5nXDI1NW9mXDI1NWxpbmUgXChDXDI1NWFcKSkxMDggNjQ4IFEgRjAoTW8pMTQ0IDY2MCBRIC4zIC0uMTUKLSh2ZSB0KS0uMTUgSCAyLjUob3QpLjE1IEcoaGUgc3RhcnQgb2YgdGhlIGN1cnJlbnQgbGluZS4pLTIuNSBFIEYxCi0oZW5kXDI1NW9mXDI1NWxpbmUgXChDXDI1NWVcKSkxMDggNjcyIFEgRjAoTW8pMTQ0IDY4NCBRIC4zIC0uMTUodmUgdCkKLS0uMTUgSCAyLjUob3QpLjE1IEcoaGUgZW5kIG9mIHRoZSBsaW5lLiktMi41IEUgRjEgLS4yNShmbykxMDggNjk2IFMKLShyd2FyZFwyNTVjaGFyIFwoQ1wyNTVmXCkpLjI1IEUgRjAoTW8pMTQ0IDcwOCBRIC4zIC0uMTUodmUgZiktLjE1IEgob3J3KQotLjE1IEUoYXJkIGEgY2hhcmFjdGVyKS0uMSBFKC4pLS41NSBFKEdOVSBSZWFkbGluZSA0LjMpNzIgNzY4IFEKLSgyMDAyIEphbnVhcnkgMjIpMTI2LjI0IEUoNSkxOTUuOTUgRSBFUAorMi41IEcoZ2lvbiktLjAzIEUgRjAoLilBKEdOVSBSZWFkbGluZSA1LjEtYmV0YTEpNzIgNzY4IFEoMjAwNSBTZXAgMTMpCisxMDkuMyBFKDUpMjA0IEUgMCBDZyBFUAogJSVQYWdlOiA2IDYKICUlQmVnaW5QYWdlU2V0dXAKIEJQCiAlJUVuZFBhZ2VTZXR1cAogL0YwIDEwL1RpbWVzLVJvbWFuQDAgU0YgMzQyLjIoUkVBRExJTkVcKDNcKSBSRUFETElORVwoM1wpKTcyIDQ4IFIvRjEgMTAKLS9UaW1lcy1Cb2xkQDAgU0YoYmFja3dhcmRcMjU1Y2hhciBcKENcMjU1YlwpKTEwOCA4NCBRIEYwKE1vKTE0NCA5NiBRIC4zCi0tLjE1KHZlIGIpLS4xNSBIKGFjayBhIGNoYXJhY3RlcikuMTUgRSguKS0uNTUgRSBGMSAtLjI1KGZvKTEwOCAxMDggUwotKHJ3YXJkXDI1NXcpLjI1IEUob3JkIFwoTVwyNTVmXCkpLS4xIEUgRjAoTW8pMTQ0IDEyMCBRIC44MjIgLS4xNSh2ZSBmKQotLS4xNSBIKG9ydykuMTUgRSAuNTIyKGFyZCB0byB0aGUgZW5kIG9mIHRoZSBuZSktLjEgRiAuNTIzKHh0IHcpLS4xNSBGCi0zLjAyMyhvcmQuIFcpLS4xIEYgLjUyMworL1RpbWVzLUJvbGRAMCBTRihDb21tYW5kcyBmKTg3IDg0IFEob3IgTW8pLS4yNSBFKHZpbmcpLS4xIEUKKyhiZWdpbm5pbmdcMjU1b2ZcMjU1bGluZSBcKENcMjU1YVwpKTEwOCA5NiBRIEYwKE1vKTE0NCAxMDggUSAuMyAtLjE1CisodmUgdCktLjE1IEggMi41KG90KS4xNSBHKGhlIHN0YXJ0IG9mIHRoZSBjdXJyZW50IGxpbmUuKS0yLjUgRSBGMQorKGVuZFwyNTVvZlwyNTVsaW5lIFwoQ1wyNTVlXCkpMTA4IDEyMCBRIEYwKE1vKTE0NCAxMzIgUSAuMyAtLjE1KHZlIHQpCistLjE1IEggMi41KG90KS4xNSBHKGhlIGVuZCBvZiB0aGUgbGluZS4pLTIuNSBFIEYxIC0uMjUoZm8pMTA4IDE0NCBTCisocndhcmRcMjU1Y2hhciBcKENcMjU1ZlwpKS4yNSBFIEYwKE1vKTE0NCAxNTYgUSAuMyAtLjE1KHZlIGYpLS4xNSBIKG9ydykKKy4xNSBFKGFyZCBhIGNoYXJhY3RlciktLjEgRSguKS0uNTUgRSBGMShiYWNrd2FyZFwyNTVjaGFyIFwoQ1wyNTViXCkpMTA4CisxNjggUSBGMChNbykxNDQgMTgwIFEgLjMgLS4xNSh2ZSBiKS0uMTUgSChhY2sgYSBjaGFyYWN0ZXIpLjE1IEUoLiktLjU1IEUKK0YxIC0uMjUoZm8pMTA4IDE5MiBTKHJ3YXJkXDI1NXcpLjI1IEUob3JkIFwoTVwyNTVmXCkpLS4xIEUgRjAoTW8pMTQ0IDIwNAorUSAuODIyIC0uMTUodmUgZiktLjE1IEgob3J3KS4xNSBFIC41MjIoYXJkIHRvIHRoZSBlbmQgb2YgdGhlIG5lKS0uMSBGCisuNTIzKHh0IHcpLS4xNSBGIDMuMDIzKG9yZC4gVyktLjEgRiAuNTIzCiAob3JkcyBhcmUgY29tcG9zZWQgb2YgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgXChsZXQtKS0uOCBGCi0odGVycyBhbmQgZGlnaXRzXCkuKTE0NCAxMzIgUSBGMShiYWNrd2FyZFwyNTV3KTEwOCAxNDQgUShvcmQgXChNXDI1NWJcKSkKLS0uMSBFIEYwKE1vKTE0NCAxNTYgUSAxLjcxIC0uMTUodmUgYiktLjE1IEggMS40MQorKHRlcnMgYW5kIGRpZ2l0c1wpLikxNDQgMjE2IFEgRjEoYmFja3dhcmRcMjU1dykxMDggMjI4IFEob3JkIFwoTVwyNTViXCkpCistLjEgRSBGMChNbykxNDQgMjQwIFEgMS43MSAtLjE1KHZlIGIpLS4xNSBIIDEuNDEKIChhY2sgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjdXJyZW50IG9yIHByZSkuMTUgRiAxLjQxKHZpb3VzIHcpLS4yNSBGIDMuOTEKIChvcmQuIFcpLS4xIEYgMS40MShvcmRzIGFyZSBjb21wb3NlZCBvZiBhbHBoYW51bWVyaWMpLS44IEYKLShjaGFyYWN0ZXJzIFwobGV0dGVycyBhbmQgZGlnaXRzXCkuKTE0NCAxNjggUSBGMShjbGVhclwyNTVzY3IpMTA4IDE4MCBRCi0oZWVuIFwoQ1wyNTVsXCkpLS4xOCBFIEYwIC45OTMoQ2xlYXIgdGhlIHNjcmVlbiBsZWEpMTQ0IDE5MiBSIC45OTMKKyhjaGFyYWN0ZXJzIFwobGV0dGVycyBhbmQgZGlnaXRzXCkuKTE0NCAyNTIgUSBGMShjbGVhclwyNTVzY3IpMTA4IDI2NCBRCisoZWVuIFwoQ1wyNTVsXCkpLS4xOCBFIEYwIC45OTMoQ2xlYXIgdGhlIHNjcmVlbiBsZWEpMTQ0IDI3NiBSIC45OTMKICh2aW5nIHRoZSBjdXJyZW50IGxpbmUgYXQgdGhlIHRvcCBvZiB0aGUgc2NyZWVuLiktLjIgRiAtLjQoV2kpNS45OTMgRwogLjk5Myh0aCBhbiBhcikuNCBGIC45OTMoZ3VtZW50LCByZWZyZXNoIHRoZSktLjE4IEYKLShjdXJyZW50IGxpbmUgd2l0aG91dCBjbGVhcmluZyB0aGUgc2NyZWVuLikxNDQgMjA0IFEgRjEgLS4xOChyZSkxMDggMjE2CisoY3VycmVudCBsaW5lIHdpdGhvdXQgY2xlYXJpbmcgdGhlIHNjcmVlbi4pMTQ0IDI4OCBRIEYxIC0uMTgocmUpMTA4IDMwMAogUyhkcmF3XDI1NWN1cnIpLjE4IEUoZW50XDI1NWxpbmUpLS4xOCBFIEYwKFJlZnJlc2ggdGhlIGN1cnJlbnQgbGluZS4pMTQ0Ci0yMjggUSBGMShDb21tYW5kcyBmKTg3IDI0NC44IFEob3IgTWFuaXB1bGF0aW5nIHRoZSBIaXN0b3J5KS0uMjUgRQotKGFjY2VwdFwyNTVsaW5lIFwoTmV3bGluZSwgUmV0dXIpMTA4IDI1Ni44IFEoblwpKS0uMTUgRSBGMCAuMzY1Ci0oQWNjZXB0IHRoZSBsaW5lIHJlKTE0NCAyNjguOCBSIC0uMDUoZ2EpLS4xNSBHIC4zNjQKKzMxMiBRIEYxKENvbW1hbmRzIGYpODcgMzI4LjggUShvciBNYW5pcHVsYXRpbmcgdGhlIEhpc3RvcnkpLS4yNSBFCisoYWNjZXB0XDI1NWxpbmUgXChOZXdsaW5lLCBSZXR1cikxMDggMzQwLjggUShuXCkpLS4xNSBFIEYwIC4zNjUKKyhBY2NlcHQgdGhlIGxpbmUgcmUpMTQ0IDM1Mi44IFIgLS4wNShnYSktLjE1IEcgLjM2NAogKHJkbGVzcyBvZiB3aGVyZSB0aGUgY3Vyc29yIGlzLikuMDUgRiAuMzY0KElmIHRoaXMgbGluZSBpcyBub24tZW1wdHkpCiA1LjM2NCBGIDIuODY0KCxpKS0uNjUgRyAyLjg2NCh0bSktMi44NjQgRyAuMzY0KGF5IGJlIGFkZGVkIHRvIHRoZSktMi44NjQKLUYgLjc0KGhpc3RvcnkgbGlzdCBmb3IgZnV0dXJlIHJlY2FsbCB3aXRoKTE0NCAyODAuOCBSIEYxCitGIC43NChoaXN0b3J5IGxpc3QgZm9yIGZ1dHVyZSByZWNhbGwgd2l0aCkxNDQgMzY0LjggUiBGMQogKGFkZF9oaXN0b3J5XChcKSkzLjI0IEUgRjAgNS43NDEoLkkpQyAzLjI0MShmdCktNS43NDEgRyAuNzQxCiAoaGUgbGluZSBpcyBhIG1vZGlcMjE0ZWQgaGlzdG9yeSBsaW5lLCB0aGUgaGlzdG9yeSktMy4yNDEgRgotKGxpbmUgaXMgcmVzdG9yZWQgdG8gaXRzIG9yaWdpbmFsIHN0YXRlLikxNDQgMjkyLjggUSBGMShwcikxMDggMzA0LjggUQorKGxpbmUgaXMgcmVzdG9yZWQgdG8gaXRzIG9yaWdpbmFsIHN0YXRlLikxNDQgMzc2LjggUSBGMShwcikxMDggMzg4LjggUQogLS4xNShldiktLjE4IEcoaW91c1wyNTVoaXN0b3J5IFwoQ1wyNTVwXCkpLjE1IEUgRjAoRmV0Y2ggdGhlIHByZSkxNDQKLTMxNi44IFEodmlvdXMgY29tbWFuZCBmcm9tIHRoZSBoaXN0b3J5IGxpc3QsIG1vKS0uMjUgRQotKHZpbmcgYmFjayBpbiB0aGUgbGlzdC4pLS4xNSBFIEYxKG5leHRcMjU1aGlzdG9yeSBcKENcMjU1blwpKTEwOCAzMjguOCBRCi1GMChGZXRjaCB0aGUgbmUpMTQ0IDM0MC44IFEoeHQgY29tbWFuZCBmcm9tIHRoZSBoaXN0b3J5IGxpc3QsIG1vKS0uMTUgRQorNDAwLjggUSh2aW91cyBjb21tYW5kIGZyb20gdGhlIGhpc3RvcnkgbGlzdCwgbW8pLS4yNSBFCisodmluZyBiYWNrIGluIHRoZSBsaXN0LiktLjE1IEUgRjEobmV4dFwyNTVoaXN0b3J5IFwoQ1wyNTVuXCkpMTA4IDQxMi44IFEKK0YwKEZldGNoIHRoZSBuZSkxNDQgNDI0LjggUSh4dCBjb21tYW5kIGZyb20gdGhlIGhpc3RvcnkgbGlzdCwgbW8pLS4xNSBFCiAodmluZyBmb3J3KS0uMTUgRShhcmQgaW4gdGhlIGxpc3QuKS0uMSBFIEYxCi0oYmVnaW5uaW5nXDI1NW9mXDI1NWhpc3RvcnkgXChNXDI1NTxcKSkxMDggMzUyLjggUSBGMChNbykxNDQgMzY0LjggUSAuMworKGJlZ2lubmluZ1wyNTVvZlwyNTVoaXN0b3J5IFwoTVwyNTU8XCkpMTA4IDQzNi44IFEgRjAoTW8pMTQ0IDQ0OC44IFEgLjMKIC0uMTUodmUgdCktLjE1IEggMi41KG90KS4xNSBHKGhlIFwyMTRyc3QgbGluZSBpbiB0aGUgaGlzdG9yeSktMi41IEUoLikKLS0uNjUgRSBGMShlbmRcMjU1b2ZcMjU1aGlzdG9yeSBcKE1cMjU1PlwpKTEwOCAzNzYuOCBRIEYwKE1vKTE0NCAzODguOCBRCistLjY1IEUgRjEoZW5kXDI1NW9mXDI1NWhpc3RvcnkgXChNXDI1NT5cKSkxMDggNDYwLjggUSBGMChNbykxNDQgNDcyLjggUQogLjMgLS4xNSh2ZSB0KS0uMTUgSCAyLjUob3QpLjE1IEcoaGUgZW5kIG9mIHRoZSBpbnB1dCBoaXN0b3J5KS0yLjUgRSAyLjUKICgsaSktLjY1IEcoLmUuLCB0aGUgbGluZSBjdXJyZW50bHkgYmVpbmcgZW50ZXJlZC4pLTIuNSBFIEYxIC0yLjI5IC0uMTgKLShyZSB2KTEwOCA0MDAuOCBUKGVyc2VcMjU1c2VhcikuMDggRShjaFwyNTVoaXN0b3J5IFwoQ1wyNTVyXCkpLS4xOCBFIEYwCi0xLjQ3MShTZWFyY2ggYmFja3cpMTQ0IDQxMi44IFIgMS40NzEKKyhyZSB2KTEwOCA0ODQuOCBUKGVyc2VcMjU1c2VhcikuMDggRShjaFwyNTVoaXN0b3J5IFwoQ1wyNTVyXCkpLS4xOCBFIEYwCisxLjQ3MShTZWFyY2ggYmFja3cpMTQ0IDQ5Ni44IFIgMS40NzEKIChhcmQgc3RhcnRpbmcgYXQgdGhlIGN1cnJlbnQgbGluZSBhbmQgbW8pLS4xIEYgMS40NwogKHZpbmcgYHVwJyB0aHJvdWdoIHRoZSBoaXN0b3J5IGFzIG5lY2Vzc2FyeSktLjE1IEYoLiktLjY1IEUKLShUaGlzIGlzIGFuIGluY3JlbWVudGFsIHNlYXJjaC4pMTQ0IDQyNC44IFEgRjEgLS4yNShmbykxMDggNDM2LjggUworKFRoaXMgaXMgYW4gaW5jcmVtZW50YWwgc2VhcmNoLikxNDQgNTA4LjggUSBGMSAtLjI1KGZvKTEwOCA1MjAuOCBTCiAocndhcmRcMjU1c2VhcikuMjUgRShjaFwyNTVoaXN0b3J5IFwoQ1wyNTVzXCkpLS4xOCBFIEYwIDEuMTMxCi0oU2VhcmNoIGZvcncpMTQ0IDQ0OC44IFIgMS4xMzEoYXJkIHN0YXJ0aW5nIGF0IHRoZSBjdXJyZW50IGxpbmUgYW5kIG1vKQorKFNlYXJjaCBmb3J3KTE0NCA1MzIuOCBSIDEuMTMxKGFyZCBzdGFydGluZyBhdCB0aGUgY3VycmVudCBsaW5lIGFuZCBtbykKIC0uMSBGIDEuMTMyKHZpbmcgYGRvKS0uMTUgRiAxLjEzMih3bicgdGhyb3VnaCB0aGUgaGlzdG9yeSBhcyBuZWNlc3NhcnkpCi0tLjI1IEYoLiktLjY1IEUoVGhpcyBpcyBhbiBpbmNyZW1lbnRhbCBzZWFyY2guKTE0NCA0NjAuOCBRIEYxCi0obm9uXDI1NWluY3IpMTA4IDQ3Mi44IFEoZW1lbnRhbFwyNTVyKS0uMTggRSAtMi4zIC0uMTUoZXYgZSktLjE4IEgKKy0uMjUgRiguKS0uNjUgRShUaGlzIGlzIGFuIGluY3JlbWVudGFsIHNlYXJjaC4pMTQ0IDU0NC44IFEgRjEKKyhub25cMjU1aW5jcikxMDggNTU2LjggUShlbWVudGFsXDI1NXIpLS4xOCBFIC0yLjMgLS4xNShldiBlKS0uMTggSAogKHJzZVwyNTVzZWFyKS4xNSBFKGNoXDI1NWhpc3RvcnkgXChNXDI1NXBcKSktLjE4IEUgRjAgLjE2NShTZWFyY2ggYmFja3cpCi0xNDQgNDg0LjggUiAuMTY0KGFyZCB0aHJvdWdoIHRoZSBoaXN0b3J5IHN0YXJ0aW5nIGF0IHRoZSBjdXJyZW50IGxpbmUgdVwKLXNpbmcgYSBub24taW5jcmVtZW50YWwgc2VhcmNoIGZvciktLjEgRiAyLjUoYXMpMTQ0IDQ5Ni44IFMKLSh0cmluZyBzdXBwbGllZCBieSB0aGUgdXNlciktMi41IEUoLiktLjU1IEUgRjEobm9uXDI1NWluY3IpMTA4IDUwOC44IFEKKzE0NCA1NjguOCBSIC4xNjQoYXJkIHRocm91Z2ggdGhlIGhpc3Rvcnkgc3RhcnRpbmcgYXQgdGhlIGN1cnJlbnQgbGluZSB1XAorc2luZyBhIG5vbi1pbmNyZW1lbnRhbCBzZWFyY2ggZm9yKS0uMSBGIDIuNShhcykxNDQgNTgwLjggUworKHRyaW5nIHN1cHBsaWVkIGJ5IHRoZSB1c2VyKS0yLjUgRSguKS0uNTUgRSBGMShub25cMjU1aW5jcikxMDggNTkyLjggUQogKGVtZW50YWxcMjU1ZiktLjE4IEUob3J3YXJkXDI1NXNlYXIpLS4yNSBFKGNoXDI1NWhpc3RvcnkgXChNXDI1NW5cKSktLjE4Ci1FIEYwIDEuMzUzKFNlYXJjaCBmb3J3KTE0NCA1MjAuOCBSIDEuMzU0KGFyZCB0aHJvdWdoIHRoZSBoaXN0b3J5IHVzaW5nIFwKK0UgRjAgMS4zNTMoU2VhcmNoIGZvcncpMTQ0IDYwNC44IFIgMS4zNTQoYXJkIHRocm91Z2ggdGhlIGhpc3RvcnkgdXNpbmcgXAogYSBub24taW5jcmVtZW50YWwgc2VhcmNoIGZvciBhIHN0cmluZyBzdXBwbGllZCBieSB0aGUpLS4xIEYodXNlcikxNDQKLTUzMi44IFEoLiktLjU1IEUgRjEoaGlzdG9yeVwyNTVzZWFyKTEwOCA1NDQuOCBRKGNoXDI1NWYpLS4xOCBFKG9yd2FyZCkKLS0uMjUgRSBGMCAuMjQ5KFNlYXJjaCBmb3J3KTE0NCA1NTYuOCBSIC4yNDkoYXJkIHRocm91Z2ggdGhlIGhpc3RvcnkgZm9yXAorNjE2LjggUSguKS0uNTUgRSBGMShoaXN0b3J5XDI1NXNlYXIpMTA4IDYyOC44IFEoY2hcMjU1ZiktLjE4IEUob3J3YXJkKQorLS4yNSBFIEYwIC4yNDkoU2VhcmNoIGZvcncpMTQ0IDY0MC44IFIgLjI0OShhcmQgdGhyb3VnaCB0aGUgaGlzdG9yeSBmb3JcCiAgdGhlIHN0cmluZyBvZiBjaGFyYWN0ZXJzIGJldHdlZW4gdGhlIHN0YXJ0IG9mIHRoZSBjdXJyZW50IGxpbmUpLS4xIEYKLShhbmQgdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uIFwodGhlKTE0NCA1NjguOCBRL0YyIDEwL1RpbWVzLUl0YWxpY0AwCisoYW5kIHRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbiBcKHRoZSkxNDQgNjUyLjggUS9GMiAxMC9UaW1lcy1JdGFsaWNAMAogU0YocG9pbnQpMi41IEUgRjAgMi41KFwpLiBUaGlzKUIoaXMgYSBub24taW5jcmVtZW50YWwgc2VhcmNoLikyLjUgRSBGMQotKGhpc3RvcnlcMjU1c2VhcikxMDggNTgwLjggUShjaFwyNTViYWNrd2FyZCktLjE4IEUgRjAgLjk1KFNlYXJjaCBiYWNrdykKLTE0NCA1OTIuOCBSIC45NTEoYXJkIHRocm91Z2ggdGhlIGhpc3RvcnkgZm9yIHRoZSBzdHJpbmcgb2YgY2hhcmFjdGVycyBiXAotZXR3ZWVuIHRoZSBzdGFydCBvZiB0aGUgY3VycmVudCktLjEgRihsaW5lIGFuZCB0aGUgcG9pbnQuKTE0NCA2MDQuOCBRCi0oVGhpcyBpcyBhIG5vbi1pbmNyZW1lbnRhbCBzZWFyY2guKTUgRSBGMSh5YW5rXDI1NW50aFwyNTVhcikxMDggNjE2LjggUQorKGhpc3RvcnlcMjU1c2VhcikxMDggNjY0LjggUShjaFwyNTViYWNrd2FyZCktLjE4IEUgRjAgLjk1KFNlYXJjaCBiYWNrdykKKzE0NCA2NzYuOCBSIC45NTEoYXJkIHRocm91Z2ggdGhlIGhpc3RvcnkgZm9yIHRoZSBzdHJpbmcgb2YgY2hhcmFjdGVycyBiXAorZXR3ZWVuIHRoZSBzdGFydCBvZiB0aGUgY3VycmVudCktLjEgRihsaW5lIGFuZCB0aGUgcG9pbnQuKTE0NCA2ODguOCBRCisoVGhpcyBpcyBhIG5vbi1pbmNyZW1lbnRhbCBzZWFyY2guKTUgRSBGMSh5YW5rXDI1NW50aFwyNTVhcikxMDggNzAwLjggUQogMi41KGdcKCktLjEgRzw0ZGFkNDNhZDc5Mjk+LTIuNSBFIEYwIC42MjIoSW5zZXJ0IHRoZSBcMjE0cnN0IGFyKTE0NAotNjI4LjggUiAuNjIyKGd1bWVudCB0byB0aGUgcHJlKS0uMTggRiAuNjIyCis3MTIuOCBSIC42MjIoZ3VtZW50IHRvIHRoZSBwcmUpLS4xOCBGIC42MjIKICh2aW91cyBjb21tYW5kIFwodXN1YWxseSB0aGUgc2Vjb25kIHcpLS4yNSBGIC42MjIob3JkIG9uIHRoZSBwcmUpLS4xIEYKLS42MjIodmlvdXMgbGluZVwpKS0uMjUgRiAuNzk0KGF0IHBvaW50LikxNDQgNjQwLjggUiAtLjQoV2kpNS43OTQgRyAuNzk0CisuNjIyKHZpb3VzIGxpbmVcKSktLjI1IEYgLjc5NChhdCBwb2ludC4pMTQ0IDcyNC44IFIgLS40KFdpKTUuNzk0IEcgLjc5NAogKHRoIGFuIGFyKS40IEYoZ3VtZW50KS0uMTggRSBGMihuKTMuMjk0IEUgRjAgMy4yOTQoLGkpLjI0IEcgLjc5NAogKG5zZXJ0IHRoZSktMy4yOTQgRiBGMihuKTMuMjk0IEUgRjAgLjc5NCh0aCB3KUIgLjc5NChvcmQgZnJvbSB0aGUgcHJlKQotLS4xIEYgLjc5NCh2aW91cyBjb21tYW5kIFwodGhlIHcpLS4yNSBGIC43OTUob3JkcyBpbiB0aGUpLS4xIEYocHJlKTE0NAotNjUyLjggUSAuMjkyKHZpb3VzIGNvbW1hbmQgYmUpLS4yNSBGIC4yOTIoZ2luIHdpdGggdyktLjE1IEYgLjI5MQotKG9yZCAwXCkuKS0uMSBGIDIuNzkxKEFuKTUuMjkxIEcgLTIuMjUgLS4xNShlZyBhKS0yLjc5MSBIKHRpKS4xNSBFIC41OTEKLS0uMTUodmUgYSktLjI1IEggLS4xOChyZykuMTUgRyAuMjkxKHVtZW50IGluc2VydHMgdGhlKS4xOCBGIEYyKG4pMi43OTEgRQotRjAgLjI5MSh0aCB3KUIgLjI5MShvcmQgZnJvbSB0aGUgZW5kIG9mKS0uMSBGKHRoZSBwcmUpMTQ0IDY2NC44IFEKLSh2aW91cyBjb21tYW5kLiktLjI1IEUgRjEoeWFua1wyNTVsYXN0XDI1NWFyKTEwOCA2NzYuOCBRIDIuNShnXCgpLS4xIEcKLS0xLjY2NyhNXDI1NS4gLCktMi41IEYgLTEuNjY3KE1cMjU1XyBcKSkyLjUgRiBGMCAxLjMwNwotKEluc2VydCB0aGUgbGFzdCBhcikxNDQgNjg4LjggUiAxLjMwNyhndW1lbnQgdG8gdGhlIHByZSktLjE4IEYgMS4zMDcKLSh2aW91cyBjb21tYW5kIFwodGhlIGxhc3QgdyktLjI1IEYgMS4zMDgob3JkIG9mIHRoZSBwcmUpLS4xIEYgMS4zMDgKLSh2aW91cyBoaXN0b3J5IGVudHJ5XCkuKS0uMjUgRiAtLjQoV2kpMTQ0IDcwMC44IFMgLjczNih0aCBhbiBhcikuNCBGCi0uNzM2KGd1bWVudCwgYmVoYSktLjE4IEYgMS4wMzYgLS4xNSh2ZSBleCktLjIgSCAuNzM2KGFjdGx5IGxpaykuMTUgRihlKQotLS4xIEUgRjEoeWFua1wyNTVudGhcMjU1YXIpMy4yMzUgRShnKS0uMSBFIEYwIDUuNzM1KC5TKUModWNjZXNzaSktNS43MzUKLUUgMS4wMzUgLS4xNSh2ZSBjKS0uMjUgSCAuNzM1KGFsbHMgdG8pLjE1IEYgRjEoeWFua1wyNTVsYXN0XDI1NWFyKTMuMjM1Ci1FKGcpLS4xIEUgRjAobW8pMy4yMzUgRSAtLjE1KHZlKS0uMTUgRwotKGJhY2sgdGhyb3VnaCB0aGUgaGlzdG9yeSBsaXN0LCBpbnNlcnRpbmcgdGhlIGxhc3QgYXIpMTQ0IDcxMi44IFEKLShndW1lbnQgb2YgZWFjaCBsaW5lIGluIHR1cm4uKS0uMTggRShHTlUgUmVhZGxpbmUgNC4zKTcyIDc2OCBRCi0oMjAwMiBKYW51YXJ5IDIyKTEyNi4yNCBFKDYpMTk1Ljk1IEUgRVAKKy0uMSBGIC43OTQodmlvdXMgY29tbWFuZCBcKHRoZSB3KS0uMjUgRiAuNzk1KG9yZHMgaW4gdGhlKS0uMSBGCisoR05VIFJlYWRsaW5lIDUuMS1iZXRhMSk3MiA3NjggUSgyMDA1IFNlcCAxMykxMDkuMyBFKDYpMjA0IEUgMCBDZyBFUAogJSVQYWdlOiA3IDcKICUlQmVnaW5QYWdlU2V0dXAKIEJQCiAlJUVuZFBhZ2VTZXR1cAotL0YwIDEwL1RpbWVzLVJvbWFuQDAgU0YgMzQyLjIoUkVBRExJTkVcKDNcKSBSRUFETElORVwoM1wpKTcyIDQ4IFIvRjEgMTAKLS9UaW1lcy1Cb2xkQDAgU0YoQ29tbWFuZHMgZik4NyA4NCBRKG9yIENoYW5naW5nIFQpLS4yNSBFKGV4dCktLjkyIEUKLShkZWxldGVcMjU1Y2hhciBcKENcMjU1ZFwpKTEwOCA5NiBRIEYwIC4zNTcKLShEZWxldGUgdGhlIGNoYXJhY3RlciBhdCBwb2ludC4pMTQ0IDEwOCBSIC4zNTgoSWYgcG9pbnQgaXMgYXQgdGhlIGJlKQotNS4zNTggRiAuMzU4KGdpbm5pbmcgb2YgdGhlIGxpbmUsIHRoZXJlIGFyZSBubyBjaGFyYWN0ZXJzIGluIHRoZSktLjE1IEYKLShsaW5lLCBhbmQgdGhlIGxhc3QgY2hhcmFjdGVyIHR5cGVkIHcpMTQ0IDEyMCBRKGFzIG5vdCBib3VuZCB0byktLjEgRSBGMQotKGRlbGV0ZVwyNTVjaGFyKTIuNSBFIEYwIDIuNSgsdClDKGhlbiByZXR1cm4pLTIuNSBFL0YyIDkvVGltZXMtQm9sZEAwIFNGCi0oRU9GKTIuNSBFL0YzIDkvVGltZXMtUm9tYW5AMCBTRiguKUEgRjEKLShiYWNrd2FyZFwyNTVkZWxldGVcMjU1Y2hhciBcKFJ1Ym91dFwpKTEwOCAxMzIgUSBGMCAuNTUzCi0oRGVsZXRlIHRoZSBjaGFyYWN0ZXIgYmVoaW5kIHRoZSBjdXJzb3IpMTQ0IDE0NCBSIDUuNTUzKC5XKS0uNTUgRyAuNTUzCisvRjAgMTAvVGltZXMtUm9tYW5AMCBTRiAzNDIuMihSRUFETElORVwoM1wpIFJFQURMSU5FXCgzXCkpNzIgNDggUihwcmUpCisxNDQgODQgUSAuMjkyKHZpb3VzIGNvbW1hbmQgYmUpLS4yNSBGIC4yOTIoZ2luIHdpdGggdyktLjE1IEYgLjI5MQorKG9yZCAwXCkuKS0uMSBGIDIuNzkxKEFuKTUuMjkxIEcgLTIuMjUgLS4xNShlZyBhKS0yLjc5MSBIKHRpKS4xNSBFIC41OTEKKy0uMTUodmUgYSktLjI1IEggLS4xOChyZykuMTUgRyAuMjkxKHVtZW50IGluc2VydHMgdGhlKS4xOCBGL0YxIDEwCisvVGltZXMtSXRhbGljQDAgU0YobikyLjc5MSBFIEYwIC4yOTEodGggdylCIC4yOTEob3JkIGZyb20gdGhlIGVuZCBvZiktLjEKK0YgLjI4MSh0aGUgcHJlKTE0NCA5NiBSIC4yODEodmlvdXMgY29tbWFuZC4pLS4yNSBGIC4yODEoT25jZSB0aGUgYXIpCis1LjI4MSBGKGd1bWVudCktLjE4IEUgRjEobikyLjc4MSBFIEYwIC4yODEoaXMgY29tcHV0ZWQsIHRoZSBhcikyLjc4MSBGCisuMjgxKGd1bWVudCBpcyBlKS0uMTggRiAuMjgyKHh0cmFjdGVkIGFzIGlmIHRoZSAiISktLjE1IEYgRjEobilBIEYwKCIpQQorKGhpc3RvcnkgZSkxNDQgMTA4IFEoeHBhbnNpb24gaGFkIGJlZW4gc3BlY2lcMjE0ZWQuKS0uMTUgRS9GMiAxMAorL1RpbWVzLUJvbGRAMCBTRih5YW5rXDI1NWxhc3RcMjU1YXIpMTA4IDEyMCBRIDIuNShnXCgpLS4xIEcgLTEuNjY3CisoTVwyNTUuICwpLTIuNSBGIC0xLjY2NyhNXDI1NV8gXCkpMi41IEYgRjAgMS4zMDgoSW5zZXJ0IHRoZSBsYXN0IGFyKTE0NAorMTMyIFIgMS4zMDgoZ3VtZW50IHRvIHRoZSBwcmUpLS4xOCBGIDEuMzA3KHZpb3VzIGNvbW1hbmQgXCh0aGUgbGFzdCB3KQorLS4yNSBGIDEuMzA3KG9yZCBvZiB0aGUgcHJlKS0uMSBGIDEuMzA3KHZpb3VzIGhpc3RvcnkgZW50cnlcKS4pLS4yNSBGCistLjQoV2kpMTQ0IDE0NCBTIC43MzUodGggYW4gYXIpLjQgRiAuNzM1KGd1bWVudCwgYmVoYSktLjE4IEYgMS4wMzUgLS4xNQorKHZlIGV4KS0uMiBIIC43MzUoYWN0bHkgbGlrKS4xNSBGKGUpLS4xIEUgRjIoeWFua1wyNTVudGhcMjU1YXIpMy4yMzUgRQorKGcpLS4xIEUgRjAgNS43MzYoLlMpQyh1Y2Nlc3NpKS01LjczNiBFIDEuMDM2IC0uMTUodmUgYyktLjI1IEggLjczNgorKGFsbHMgdG8pLjE1IEYgRjIoeWFua1wyNTVsYXN0XDI1NWFyKTMuMjM2IEUoZyktLjEgRSBGMChtbykzLjIzNiBFIC0uMTUKKyh2ZSktLjE1IEcgLjcyOChiYWNrIHRocm91Z2ggdGhlIGhpc3RvcnkgbGlzdCwgaW5zZXJ0aW5nIHRoZSBsYXN0IGFyKTE0NAorMTU2IFIgLjcyOChndW1lbnQgb2YgZWFjaCBsaW5lIGluIHR1cm4uKS0uMTggRiAuNzI4KFRoZSBoaXN0b3J5IGUpNS43MjgKK0YoeHBhbi0pLS4xNSBFIC4xNChzaW9uIGYpMTQ0IDE2OCBSIC4xNChhY2lsaXRpZXMgYXJlIHVzZWQgdG8gZSktLjEgRgorLjE0KHh0cmFjdCB0aGUgbGFzdCBhciktLjE1IEYgLjE0KGd1bWVudCwgYXMgaWYgdGhlICIhJCIgaGlzdG9yeSBlKS0uMTgKK0YgLjE0KHhwYW5zaW9uIGhhZCBiZWVuIHNwZWNpLSktLjE1IEYoXDIxNGVkLikxNDQgMTgwIFEgRjIoQ29tbWFuZHMgZik4NworMTk2LjggUShvciBDaGFuZ2luZyBUKS0uMjUgRShleHQpLS45MiBFKGRlbGV0ZVwyNTVjaGFyIFwoQ1wyNTVkXCkpMTA4CisyMDguOCBRIEYwIC4zNTgoRGVsZXRlIHRoZSBjaGFyYWN0ZXIgYXQgcG9pbnQuKTE0NCAyMjAuOCBSIC4zNTgKKyhJZiBwb2ludCBpcyBhdCB0aGUgYmUpNS4zNTggRiAuMzU4CisoZ2lubmluZyBvZiB0aGUgbGluZSwgdGhlcmUgYXJlIG5vIGNoYXJhY3RlcnMgaW4gdGhlKS0uMTUgRgorKGxpbmUsIGFuZCB0aGUgbGFzdCBjaGFyYWN0ZXIgdHlwZWQgdykxNDQgMjMyLjggUShhcyBub3QgYm91bmQgdG8pLS4xIEUKK0YyKGRlbGV0ZVwyNTVjaGFyKTIuNSBFIEYwIDIuNSgsdClDKGhlbiByZXR1cm4pLTIuNSBFL0YzIDkvVGltZXMtQm9sZEAwCitTRihFT0YpMi41IEUvRjQgOS9UaW1lcy1Sb21hbkAwIFNGKC4pQSBGMgorKGJhY2t3YXJkXDI1NWRlbGV0ZVwyNTVjaGFyIFwoUnVib3V0XCkpMTA4IDI0NC44IFEgRjAgLjU1MgorKERlbGV0ZSB0aGUgY2hhcmFjdGVyIGJlaGluZCB0aGUgY3Vyc29yKTE0NCAyNTYuOCBSIDUuNTUzKC5XKS0uNTUgRyAuNTUzCiAoaGVuIGdpKS01LjU1MyBGIC0uMTUodmUpLS4yNSBHIDMuMDUzKG5hbikuMTUgRyAuNTUzKHVtZXJpYyBhciktMy4wNTMgRgotLjU1MihndW1lbnQsIHNhKS0uMTggRiAuODUyIC0uMTUodmUgdCktLjIgSCAuNTUyKGhlIGRlbGV0ZWQgdGUpLjE1IEYKLS41NTIoeHQgb24pLS4xNSBGKHRoZSBraWxsIHJpbmcuKTE0NCAxNTYgUSBGMSAtLjI1KGZvKTEwOCAxNjggUwotKHJ3YXJkXDI1NWJhY2t3YXJkXDI1NWRlbGV0ZVwyNTVjaGFyKS4yNSBFIEYwIC40NzMKLShEZWxldGUgdGhlIGNoYXJhY3RlciB1bmRlciB0aGUgY3Vyc29yKTE0NCAxODAgUiAyLjk3MygsdSktLjQgRyAuNDc0Ci0obmxlc3MgdGhlIGN1cnNvciBpcyBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lLCBpbiB3aGljaCBjYXNlIHRoZSktMi45NzMgRgotKGNoYXJhY3RlciBiZWhpbmQgdGhlIGN1cnNvciBpcyBkZWxldGVkLikxNDQgMTkyIFEgRjEKLShxdW90ZWRcMjU1aW5zZXJ0IFwoQ1wyNTVxLCBDXDI1NXZcKSkxMDggMjA0IFEgRjAgMS4yMjkoQWRkIHRoZSBuZSkxNDQKLTIxNiBSIDEuMjI4KHh0IGNoYXJhY3RlciB0aGF0IHlvdSB0eXBlIHRvIHRoZSBsaW5lIHYpLS4xNSBGIDMuNzI4Ci0oZXJiYXRpbS4gVGhpcyktLjE1IEYgMS4yMjgoaXMgaG8pMy43MjggRiAzLjcyOCh3dCktLjI1IEcgMy43Mjgob2kpCi0tMy43MjggRyAxLjIyOChuc2VydCBjaGFyYWN0ZXJzIGxpayktMy43MjggRihlKS0uMSBFIEYxKENcMjU1cSkxNDQgMjI4IFEKLUYwIDIuNSgsZilDKG9yIGUpLTIuNSBFKHhhbXBsZS4pLS4xNSBFIEYxKHRhYlwyNTVpbnNlcnQgXChNLVQpMTA4IDI0MCBRCi0oQUJcKSktLjkgRSBGMChJbnNlcnQgYSB0YWIgY2hhcmFjdGVyKTE0NCAyNTIgUSguKS0uNTUgRSBGMQotKHNlbGZcMjU1aW5zZXJ0IFwoYSwgYiwgQSwgMSwgISwgLi4uXCkpMTA4IDI2NCBRIEYwCi0oSW5zZXJ0IHRoZSBjaGFyYWN0ZXIgdHlwZWQuKTE0NCAyNzYgUSBGMSh0cmFuc3Bvc2VcMjU1Y2hhcnMgXChDXDI1NXRcKSkKLTEwOCAyODggUSBGMCAuMzIxKERyYWcgdGhlIGNoYXJhY3RlciBiZWZvcmUgcG9pbnQgZm9ydykxNDQgMzAwIFIgLjMyMQotKGFyZCBvKS0uMSBGIC0uMTUodmUpLS4xNSBHIDIuODIxKHJ0KS4xNSBHIC4zMjEKLShoZSBjaGFyYWN0ZXIgYXQgcG9pbnQsIG1vKS0yLjgyMSBGIC4zMjIodmluZyBwb2ludCBmb3J3KS0uMTUgRiAuMzIyCi0oYXJkIGFzIHdlbGwuKS0uMSBGIDEuMTgyCi0oSWYgcG9pbnQgaXMgYXQgdGhlIGVuZCBvZiB0aGUgbGluZSwgdGhlbiB0aGlzIHRyYW5zcG9zZXMgdGhlIHR3KTE0NCAzMTIKLVIgMy42ODIob2MpLS4xIEcgMS4xODIoaGFyYWN0ZXJzIGJlZm9yZSBwb2ludC4pLTMuNjgyIEYoTmUpNi4xODIgRSAtLjA1Ci0oZ2EpLS4xNSBHKHRpKS4wNSBFIC0uMTUodmUpLS4yNSBHKGFyKTE0NCAzMjQgUShndW1lbnRzIGhhKS0uMTggRSAuMwotLS4xNSh2ZSBuKS0uMiBIIDIuNShvZSkuMTUgRyAtLjI1KGZmKS0yLjUgRyhlY3QuKS4yNSBFIEYxCi0odHJhbnNwb3NlXDI1NXcpMTA4IDMzNiBRKG9yZHMgXChNXDI1NXRcKSktLjEgRSBGMCAuMDIzKERyYWcgdGhlIHcpMTQ0Ci0zNDggUiAuMDIzKG9yZCBiZWZvcmUgcG9pbnQgcGFzdCB0aGUgdyktLjEgRiAuMDIzKG9yZCBhZnRlciBwb2ludCwgbW8pCi0tLjEgRiAuMDIzKHZpbmcgcG9pbnQgbyktLjE1IEYgLS4xNSh2ZSktLjE1IEcgMi41MjQocnQpLjE1IEcgLjAyNChoYXQgdykKLS0yLjUyNCBGIC4wMjQob3JkIGFzIHdlbGwuKS0uMSBGIC4wMjQoSWYgcG9pbnQpNS4wMjQgRgotKGlzIGF0IHRoZSBlbmQgb2YgdGhlIGxpbmUsIHRoaXMgdHJhbnNwb3NlcyB0aGUgbGFzdCB0dykxNDQgMzYwIFEgMi41Ci0ob3cpLS4xIEcob3JkcyBvbiB0aGUgbGluZS4pLTIuNiBFIEYxKHVwY2FzZVwyNTV3KTEwOCAzNzIgUQotKG9yZCBcKE1cMjU1dVwpKS0uMSBFIEYwIDEuNjk5KFVwcGVyY2FzZSB0aGUgY3VycmVudCBcKG9yIGZvbGxvKTE0NCAzODQKLVIgMS42OTgod2luZ1wpIHcpLS4yNSBGIDQuMTk4KG9yZC4gVyktLjEgRiAxLjY5OChpdGggYSBuZSktLjQgRiAtLjA1KGdhKQotLS4xNSBHKHRpKS4wNSBFIDEuOTk4IC0uMTUodmUgYSktLjI1IEggLS4xOChyZykuMTUgRyAxLjY5OAotKHVtZW50LCB1cHBlcmNhc2UgdGhlIHByZSkuMTggRih2aW91cyktLjI1IEUgLS4xKHdvKTE0NCAzOTYgUyhyZCwgYikuMSBFCi0odXQgZG8gbm90IG1vKS0uMiBFIC4zIC0uMTUodmUgcCktLjE1IEgob2ludC4pLjE1IEUgRjEoZG8pMTA4IDQwOCBRCi0od25jYXNlXDI1NXcpLS4xIEUob3JkIFwoTVwyNTVsXCkpLS4xIEUgRjAoTG8pMTQ0IDQyMCBRIDEuNjQ3Ci0od2VyY2FzZSB0aGUgY3VycmVudCBcKG9yIGZvbGxvKS0uMjUgRiAxLjY0Nyh3aW5nXCkgdyktLjI1IEYgNC4xNDcKLShvcmQuIFcpLS4xIEYgMS42NDgoaXRoIGEgbmUpLS40IEYgLS4wNShnYSktLjE1IEcodGkpLjA1IEUgMS45NDggLS4xNQotKHZlIGEpLS4yNSBIIC0uMTgocmcpLjE1IEcgMS42NDgodW1lbnQsIGxvKS4xOCBGIDEuNjQ4KHdlcmNhc2UgdGhlIHByZSkKLS0uMjUgRih2aW91cyktLjI1IEUgLS4xKHdvKTE0NCA0MzIgUyhyZCwgYikuMSBFKHV0IGRvIG5vdCBtbyktLjIgRSAuMwotLS4xNSh2ZSBwKS0uMTUgSChvaW50LikuMTUgRSBGMShjYXBpdGFsaXplXDI1NXcpMTA4IDQ0NCBRCi0ob3JkIFwoTVwyNTVjXCkpLS4xIEUgRjAgMS45NzUoQ2FwaXRhbGl6ZSB0aGUgY3VycmVudCBcKG9yIGZvbGxvKTE0NCA0NTYKLVIgMS45NzQod2luZ1wpIHcpLS4yNSBGIDQuNDc0KG9yZC4gVyktLjEgRiAxLjk3NChpdGggYSBuZSktLjQgRiAtLjA1KGdhKQotLS4xNSBHKHRpKS4wNSBFIDIuMjc0IC0uMTUodmUgYSktLjI1IEggLS4xOChyZykuMTUgRyAxLjk3NAotKHVtZW50LCBjYXBpdGFsaXplIHRoZSBwcmUpLjE4IEYodmlvdXMpLS4yNSBFIC0uMSh3bykxNDQgNDY4IFMocmQsIGIpLjEKLUUodXQgZG8gbm90IG1vKS0uMiBFIC4zIC0uMTUodmUgcCktLjE1IEgob2ludC4pLjE1IEUgRjEgLS4xKG92ZSkxMDggNDgwCi1TKHJ3cml0ZVwyNTVtb2RlKS4xIEUgRjAgLS44KFRvKTE0NCA0OTIgUyAuNDM3KGdnbGUgbykuOCBGIC0uMTUodmUpLS4xNQotRyAuNDM3KHJ3cml0ZSBtb2RlLikuMTUgRiAtLjQoV2kpNS40MzcgRyAuNDM3KHRoIGFuIGUpLjQgRiAuNDM3Ci0oeHBsaWNpdCBwb3NpdGkpLS4xNSBGIC43MzggLS4xNSh2ZSBuKS0uMjUgSCAuNDM4KHVtZXJpYyBhcikuMTUgRiAuNDM4Ci0oZ3VtZW50LCBzd2l0Y2hlcyB0byBvKS0uMTggRiAtLjE1KHZlKS0uMTUgRyAuNDM4KHJ3cml0ZSBtb2RlLikuMTUgRiAtLjQKLShXaSkxNDQgNTA0IFMgLjc4MSh0aCBhbiBlKS40IEYgLjc4MSh4cGxpY2l0IG5vbi1wb3NpdGkpLS4xNSBGIDEuMDgxCisuNTUzKGd1bWVudCwgc2EpLS4xOCBGIC44NTMgLS4xNSh2ZSB0KS0uMiBIIC41NTMoaGUgZGVsZXRlZCB0ZSkuMTUgRgorLjU1Myh4dCBvbiktLjE1IEYodGhlIGtpbGwgcmluZy4pMTQ0IDI2OC44IFEgRjIgLS4yNShmbykxMDggMjgwLjggUworKHJ3YXJkXDI1NWJhY2t3YXJkXDI1NWRlbGV0ZVwyNTVjaGFyKS4yNSBFIEYwIC40NzQKKyhEZWxldGUgdGhlIGNoYXJhY3RlciB1bmRlciB0aGUgY3Vyc29yKTE0NCAyOTIuOCBSIDIuOTc0KCx1KS0uNCBHIC40NzQKKyhubGVzcyB0aGUgY3Vyc29yIGlzIGF0IHRoZSBlbmQgb2YgdGhlIGxpbmUsIGluIHdoaWNoIGNhc2UgdGhlKS0yLjk3NCBGCisoY2hhcmFjdGVyIGJlaGluZCB0aGUgY3Vyc29yIGlzIGRlbGV0ZWQuKTE0NCAzMDQuOCBRIEYyCisocXVvdGVkXDI1NWluc2VydCBcKENcMjU1cSwgQ1wyNTV2XCkpMTA4IDMxNi44IFEgRjAgMS4yMjgoQWRkIHRoZSBuZSkxNDQKKzMyOC44IFIgMS4yMjgoeHQgY2hhcmFjdGVyIHRoYXQgeW91IHR5cGUgdG8gdGhlIGxpbmUgdiktLjE1IEYgMy43MjgKKyhlcmJhdGltLiBUaGlzKS0uMTUgRiAxLjIyOChpcyBobykzLjcyOCBGIDMuNzI5KHd0KS0uMjUgRyAzLjcyOShvaSkKKy0zLjcyOSBHIDEuMjI5KG5zZXJ0IGNoYXJhY3RlcnMgbGlrKS0zLjcyOSBGKGUpLS4xIEUgRjIoQ1wyNTVxKTE0NCAzNDAuOAorUSBGMCAyLjUoLGYpQyhvciBlKS0yLjUgRSh4YW1wbGUuKS0uMTUgRSBGMih0YWJcMjU1aW5zZXJ0IFwoTS1UKTEwOAorMzUyLjggUShBQlwpKS0uOSBFIEYwKEluc2VydCBhIHRhYiBjaGFyYWN0ZXIpMTQ0IDM2NC44IFEoLiktLjU1IEUgRjIKKyhzZWxmXDI1NWluc2VydCBcKGEsIGIsIEEsIDEsICEsIC4uLlwpKTEwOCAzNzYuOCBRIEYwCisoSW5zZXJ0IHRoZSBjaGFyYWN0ZXIgdHlwZWQuKTE0NCAzODguOCBRIEYyCisodHJhbnNwb3NlXDI1NWNoYXJzIFwoQ1wyNTV0XCkpMTA4IDQwMC44IFEgRjAgLjMyMgorKERyYWcgdGhlIGNoYXJhY3RlciBiZWZvcmUgcG9pbnQgZm9ydykxNDQgNDEyLjggUiAuMzIxKGFyZCBvKS0uMSBGIC0uMTUKKyh2ZSktLjE1IEcgMi44MjEocnQpLjE1IEcgLjMyMShoZSBjaGFyYWN0ZXIgYXQgcG9pbnQsIG1vKS0yLjgyMSBGIC4zMjEKKyh2aW5nIHBvaW50IGZvcncpLS4xNSBGIC4zMjEoYXJkIGFzIHdlbGwuKS0uMSBGIDEuMTgyCisoSWYgcG9pbnQgaXMgYXQgdGhlIGVuZCBvZiB0aGUgbGluZSwgdGhlbiB0aGlzIHRyYW5zcG9zZXMgdGhlIHR3KTE0NAorNDI0LjggUiAzLjY4MyhvYyktLjEgRyAxLjE4MyhoYXJhY3RlcnMgYmVmb3JlIHBvaW50LiktMy42ODMgRihOZSk2LjE4MyBFCistLjA1KGdhKS0uMTUgRyh0aSkuMDUgRSAtLjE1KHZlKS0uMjUgRyhhcikxNDQgNDM2LjggUShndW1lbnRzIGhhKS0uMTggRQorLjMgLS4xNSh2ZSBuKS0uMiBIIDIuNShvZSkuMTUgRyAtLjI1KGZmKS0yLjUgRyhlY3QuKS4yNSBFIEYyCisodHJhbnNwb3NlXDI1NXcpMTA4IDQ0OC44IFEob3JkcyBcKE1cMjU1dFwpKS0uMSBFIEYwIC4wMjQoRHJhZyB0aGUgdykxNDQKKzQ2MC44IFIgLjAyNChvcmQgYmVmb3JlIHBvaW50IHBhc3QgdGhlIHcpLS4xIEYgLjAyMyhvcmQgYWZ0ZXIgcG9pbnQsIG1vKQorLS4xIEYgLjAyMyh2aW5nIHBvaW50IG8pLS4xNSBGIC0uMTUodmUpLS4xNSBHIDIuNTIzKHJ0KS4xNSBHIC4wMjMoaGF0IHcpCistMi41MjMgRiAuMDIzKG9yZCBhcyB3ZWxsLiktLjEgRiAuMDIzKElmIHBvaW50KTUuMDIzIEYKKyhpcyBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lLCB0aGlzIHRyYW5zcG9zZXMgdGhlIGxhc3QgdHcpMTQ0IDQ3Mi44IFEgMi41Cisob3cpLS4xIEcob3JkcyBvbiB0aGUgbGluZS4pLTIuNiBFIEYyKHVwY2FzZVwyNTV3KTEwOCA0ODQuOCBRCisob3JkIFwoTVwyNTV1XCkpLS4xIEUgRjAgMS42OTgoVXBwZXJjYXNlIHRoZSBjdXJyZW50IFwob3IgZm9sbG8pMTQ0Cis0OTYuOCBSIDEuNjk4KHdpbmdcKSB3KS0uMjUgRiA0LjE5OChvcmQuIFcpLS4xIEYgMS42OTgoaXRoIGEgbmUpLS40IEYKKy0uMDUoZ2EpLS4xNSBHKHRpKS4wNSBFIDEuOTk5IC0uMTUodmUgYSktLjI1IEggLS4xOChyZykuMTUgRyAxLjY5OQorKHVtZW50LCB1cHBlcmNhc2UgdGhlIHByZSkuMTggRih2aW91cyktLjI1IEUgLS4xKHdvKTE0NCA1MDguOCBTKHJkLCBiKS4xCitFKHV0IGRvIG5vdCBtbyktLjIgRSAuMyAtLjE1KHZlIHApLS4xNSBIKG9pbnQuKS4xNSBFIEYyKGRvKTEwOCA1MjAuOCBRCisod25jYXNlXDI1NXcpLS4xIEUob3JkIFwoTVwyNTVsXCkpLS4xIEUgRjAoTG8pMTQ0IDUzMi44IFEgMS42NDgKKyh3ZXJjYXNlIHRoZSBjdXJyZW50IFwob3IgZm9sbG8pLS4yNSBGIDEuNjQ4KHdpbmdcKSB3KS0uMjUgRiA0LjE0OAorKG9yZC4gVyktLjEgRiAxLjY0NyhpdGggYSBuZSktLjQgRiAtLjA1KGdhKS0uMTUgRyh0aSkuMDUgRSAxLjk0NyAtLjE1CisodmUgYSktLjI1IEggLS4xOChyZykuMTUgRyAxLjY0Nyh1bWVudCwgbG8pLjE4IEYgMS42NDcod2VyY2FzZSB0aGUgcHJlKQorLS4yNSBGKHZpb3VzKS0uMjUgRSAtLjEod28pMTQ0IDU0NC44IFMocmQsIGIpLjEgRSh1dCBkbyBub3QgbW8pLS4yIEUgLjMKKy0uMTUodmUgcCktLjE1IEgob2ludC4pLjE1IEUgRjIoY2FwaXRhbGl6ZVwyNTV3KTEwOCA1NTYuOCBRCisob3JkIFwoTVwyNTVjXCkpLS4xIEUgRjAgMS45NzQoQ2FwaXRhbGl6ZSB0aGUgY3VycmVudCBcKG9yIGZvbGxvKTE0NAorNTY4LjggUiAxLjk3NCh3aW5nXCkgdyktLjI1IEYgNC40NzQob3JkLiBXKS0uMSBGIDEuOTc0KGl0aCBhIG5lKS0uNCBGCistLjA1KGdhKS0uMTUgRyh0aSkuMDUgRSAyLjI3NCAtLjE1KHZlIGEpLS4yNSBIIC0uMTgocmcpLjE1IEcgMS45NzUKKyh1bWVudCwgY2FwaXRhbGl6ZSB0aGUgcHJlKS4xOCBGKHZpb3VzKS0uMjUgRSAtLjEod28pMTQ0IDU4MC44IFMocmQsIGIpCisuMSBFKHV0IGRvIG5vdCBtbyktLjIgRSAuMyAtLjE1KHZlIHApLS4xNSBIKG9pbnQuKS4xNSBFIEYyIC0uMShvdmUpMTA4Cis1OTIuOCBTKHJ3cml0ZVwyNTVtb2RlKS4xIEUgRjAgLS44KFRvKTE0NCA2MDQuOCBTIC40MzgoZ2dsZSBvKS44IEYgLS4xNQorKHZlKS0uMTUgRyAuNDM4KHJ3cml0ZSBtb2RlLikuMTUgRiAtLjQoV2kpNS40MzggRyAuNDM4KHRoIGFuIGUpLjQgRiAuNDM4CisoeHBsaWNpdCBwb3NpdGkpLS4xNSBGIC43MzcgLS4xNSh2ZSBuKS0uMjUgSCAuNDM3KHVtZXJpYyBhcikuMTUgRiAuNDM3CisoZ3VtZW50LCBzd2l0Y2hlcyB0byBvKS0uMTggRiAtLjE1KHZlKS0uMTUgRyAuNDM3KHJ3cml0ZSBtb2RlLikuMTUgRiAtLjQKKyhXaSkxNDQgNjE2LjggUyAuNzgodGggYW4gZSkuNCBGIC43ODEoeHBsaWNpdCBub24tcG9zaXRpKS0uMTUgRiAxLjA4MQogLS4xNSh2ZSBuKS0uMjUgSCAuNzgxKHVtZXJpYyBhcikuMTUgRiAuNzgxCi0oZ3VtZW50LCBzd2l0Y2hlcyB0byBpbnNlcnQgbW9kZS4pLS4xOCBGIC43OChUaGlzIGNvbW1hbmQgYWYpNS43ODEgRgotKGZlY3RzKS0uMjUgRShvbmx5KTE0NCA1MTYgUSBGMShlbWFjcyk0LjM5NCBFIEYwKG1vZGU7KTQuMzk0IEUgRjEodmkpCi00LjM5NCBFIEYwIDEuODk0KG1vZGUgZG9lcyBvKTQuMzk0IEYgLS4xNSh2ZSktLjE1IEcgMS44OTQocndyaXRlIGRpZikuMTUKLUYoZmVyZW50bHkpLS4yNSBFIDYuODk0KC5FKS0uNjUgRyAxLjg5NChhY2ggY2FsbCB0byktNi44OTQgRi9GNCAxMAotL1RpbWVzLUl0YWxpY0AwIFNGIC0uMzcocmUpNC4zOTUgRyhhZGxpbmVcKFwpKS4zNyBFIEYwIDEuODk1Ci0oc3RhcnRzIGluIGluc2VydCk0LjM5NSBGIDMuOTY5KG1vZGUuIEluKTE0NCA1MjggUiAtLjE1KG92ZSkzLjk2OSBHCi0xLjQ2OShyd3JpdGUgbW9kZSwgY2hhcmFjdGVycyBib3VuZCB0bykuMTUgRiBGMShzZWxmXDI1NWluc2VydCkzLjk2OSBFCi1GMCAxLjQ2OChyZXBsYWNlIHRoZSB0ZSkzLjk2OSBGIDEuNDY4KHh0IGF0IHBvaW50IHJhdGhlciB0aGFuKS0uMTUgRgotLjk1NyhwdXNoaW5nIHRoZSB0ZSkxNDQgNTQwIFIgLjk1Nyh4dCB0byB0aGUgcmlnaHQuKS0uMTUgRiAuOTU4Ci0oQ2hhcmFjdGVycyBib3VuZCB0byk1Ljk1NyBGIEYxKGJhY2t3YXJkXDI1NWRlbGV0ZVwyNTVjaGFyKTMuNDU4IEUgRjAKLS45NTgocmVwbGFjZSB0aGUgY2hhcmFjdGVyKTMuNDU4IEYoYmVmb3JlIHBvaW50IHdpdGggYSBzcGFjZS4pMTQ0IDU1MiBRCi0oQnkgZGVmKTUgRShhdWx0LCB0aGlzIGNvbW1hbmQgaXMgdW5ib3VuZC4pLS4xIEUgRjEoS2lsbGluZyBhbmQgWSk4NwotNTY4LjggUShhbmtpbmcpLS44NSBFKGtpbGxcMjU1bGluZSBcKENcMjU1a1wpKTEwOCA1ODAuOCBRIEYwCi0oS2lsbCB0aGUgdGUpMTQ0IDU5Mi44IFEoeHQgZnJvbSBwb2ludCB0byB0aGUgZW5kIG9mIHRoZSBsaW5lLiktLjE1IEUgRjEKLShiYWNrd2FyZFwyNTVraWxsXDI1NWxpbmUgXChDXDI1NXggUnVib3V0XCkpMTA4IDYwNC44IFEgRjAoS2lsbCBiYWNrdykKLTE0NCA2MTYuOCBRKGFyZCB0byB0aGUgYmUpLS4xIEUoZ2lubmluZyBvZiB0aGUgbGluZS4pLS4xNSBFIEYxCi0odW5peFwyNTVsaW5lXDI1NWRpc2NhcmQgXChDXDI1NXVcKSkxMDggNjI4LjggUSBGMChLaWxsIGJhY2t3KTE0NCA2NDAuOAotUShhcmQgZnJvbSBwb2ludCB0byB0aGUgYmUpLS4xIEUoZ2lubmluZyBvZiB0aGUgbGluZS4pLS4xNSBFCi0oVGhlIGtpbGxlZCB0ZSk1IEUoeHQgaXMgc2EpLS4xNSBFIC0uMTUodmUpLS4yIEcgMi41KGRvKS4xNSBHIDIuNShudCkKLS0yLjUgRyhoZSBraWxsLXJpbmcuKS0yLjUgRSBGMShraWxsXDI1NXdob2xlXDI1NWxpbmUpMTA4IDY1Mi44IFEgRjAKLShLaWxsIGFsbCBjaGFyYWN0ZXJzIG9uIHRoZSBjdXJyZW50IGxpbmUsIG5vIG1hdHRlciB3aGVyZSBwb2ludCBpcy4pMTQ0Ci02NjQuOCBRIEYxKGtpbGxcMjU1dykxMDggNjc2LjggUShvcmQgXChNXDI1NWRcKSktLjEgRSBGMCAxLjMwOAotKEtpbGwgZnJvbSBwb2ludCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IHcpMTQ0IDY4OC44IFIgMS4zMDgKLShvcmQsIG9yIGlmIGJldHdlZW4gdyktLjEgRiAxLjMwOChvcmRzLCB0byB0aGUgZW5kIG9mIHRoZSBuZSktLjEgRiAxLjMwNwotKHh0IHcpLS4xNSBGKG9yZC4pLS4xIEUgLS44KFdvKTE0NCA3MDAuOCBTCi0ocmQgYm91bmRhcmllcyBhcmUgdGhlIHNhbWUgYXMgdGhvc2UgdXNlZCBieSkuOCBFIEYxIC0uMjUoZm8pMi41IEcKLShyd2FyZFwyNTV3KS4yNSBFKG9yZCktLjEgRSBGMCguKUEoR05VIFJlYWRsaW5lIDQuMyk3MiA3NjggUQotKDIwMDIgSmFudWFyeSAyMikxMjYuMjQgRSg3KTE5NS45NSBFIEVQCisoZ3VtZW50LCBzd2l0Y2hlcyB0byBpbnNlcnQgbW9kZS4pLS4xOCBGIC43ODEoVGhpcyBjb21tYW5kIGFmKTUuNzgxIEYKKyhmZWN0cyktLjI1IEUob25seSkxNDQgNjI4LjggUSBGMihlbWFjcyk0LjM5NSBFIEYwKG1vZGU7KTQuMzk1IEUgRjIodmkpCis0LjM5NSBFIEYwIDEuODk0KG1vZGUgZG9lcyBvKTQuMzk1IEYgLS4xNSh2ZSktLjE1IEcgMS44OTQocndyaXRlIGRpZikuMTUKK0YoZmVyZW50bHkpLS4yNSBFIDYuODk0KC5FKS0uNjUgRyAxLjg5NChhY2ggY2FsbCB0byktNi44OTQgRiBGMSAtLjM3KHJlKQorNC4zOTQgRyhhZGxpbmVcKFwpKS4zNyBFIEYwIDEuODk0KHN0YXJ0cyBpbiBpbnNlcnQpNC4zOTQgRiAzLjk2OAorKG1vZGUuIEluKTE0NCA2NDAuOCBSIC0uMTUob3ZlKTMuOTY4IEcgMS40NjgKKyhyd3JpdGUgbW9kZSwgY2hhcmFjdGVycyBib3VuZCB0bykuMTUgRiBGMihzZWxmXDI1NWluc2VydCkzLjk2OSBFIEYwCisxLjQ2OShyZXBsYWNlIHRoZSB0ZSkzLjk2OSBGIDEuNDY5KHh0IGF0IHBvaW50IHJhdGhlciB0aGFuKS0uMTUgRiAuOTU4CisocHVzaGluZyB0aGUgdGUpMTQ0IDY1Mi44IFIgLjk1OCh4dCB0byB0aGUgcmlnaHQuKS0uMTUgRiAuOTU3CisoQ2hhcmFjdGVycyBib3VuZCB0byk1Ljk1OCBGIEYyKGJhY2t3YXJkXDI1NWRlbGV0ZVwyNTVjaGFyKTMuNDU3IEUgRjAKKy45NTcocmVwbGFjZSB0aGUgY2hhcmFjdGVyKTMuNDU3IEYoYmVmb3JlIHBvaW50IHdpdGggYSBzcGFjZS4pMTQ0IDY2NC44CitRKEJ5IGRlZik1IEUoYXVsdCwgdGhpcyBjb21tYW5kIGlzIHVuYm91bmQuKS0uMSBFIEYyKEtpbGxpbmcgYW5kIFkpODcKKzY4MS42IFEoYW5raW5nKS0uODUgRShraWxsXDI1NWxpbmUgXChDXDI1NWtcKSkxMDggNjkzLjYgUSBGMAorKEtpbGwgdGhlIHRlKTE0NCA3MDUuNiBRKHh0IGZyb20gcG9pbnQgdG8gdGhlIGVuZCBvZiB0aGUgbGluZS4pLS4xNSBFCisoR05VIFJlYWRsaW5lIDUuMS1iZXRhMSk3MiA3NjggUSgyMDA1IFNlcCAxMykxMDkuMyBFKDcpMjA0IEUgMCBDZyBFUAogJSVQYWdlOiA4IDgKICUlQmVnaW5QYWdlU2V0dXAKIEJQCiAlJUVuZFBhZ2VTZXR1cAogL0YwIDEwL1RpbWVzLVJvbWFuQDAgU0YgMzQyLjIoUkVBRExJTkVcKDNcKSBSRUFETElORVwoM1wpKTcyIDQ4IFIvRjEgMTAKLS9UaW1lcy1Cb2xkQDAgU0YoYmFja3dhcmRcMjU1a2lsbFwyNTV3KTEwOCA4NCBRKG9yZCBcKE1cMjU1UnVib3V0XCkpLS4xCi1FIEYwKEtpbGwgdGhlIHcpMTQ0IDk2IFEob3JkIGJlaGluZCBwb2ludC4pLS4xIEUgLS44KFdvKTUgRwotKHJkIGJvdW5kYXJpZXMgYXJlIHRoZSBzYW1lIGFzIHRob3NlIHVzZWQgYnkpLjggRSBGMShiYWNrd2FyZFwyNTV3KTIuNSBFCi0ob3JkKS0uMSBFIEYwKC4pQSBGMSh1bml4XDI1NXcpMTA4IDEwOCBRKG9yZFwyNTVydWJvdXQgXChDXDI1NXdcKSktLjEgRQotRjAgLjM2NChLaWxsIHRoZSB3KTE0NCAxMjAgUiAuMzY0Ci0ob3JkIGJlaGluZCBwb2ludCwgdXNpbmcgd2hpdGUgc3BhY2UgYXMgYSB3KS0uMSBGIC4zNjUob3JkIGJvdW5kYXJ5KS0uMQotRiA1LjM2NSguVCktLjY1IEcgLjM2NShoZSBraWxsZWQgdGUpLTUuMzY1IEYgLjM2NSh4dCBpcyBzYSktLjE1IEYgLS4xNQotKHZlKS0uMiBHIDIuODY1KGRvKS4xNSBHIDIuODY1KG50KS0yLjg2NSBHKGhlKS0yLjg2NSBFKGtpbGwtcmluZy4pMTQ0Ci0xMzIgUSBGMShkZWxldGVcMjU1aG9yaXpvbnRhbFwyNTVzcGFjZSBcKE1cMjU1XFxcKSkxMDggMTQ0IFEgRjAKLShEZWxldGUgYWxsIHNwYWNlcyBhbmQgdGFicyBhcm91bmQgcG9pbnQuKTE0NCAxNTYgUSBGMShraWxsXDI1NXIpMTA4IDE2OAotUShlZ2lvbiktLjE4IEUgRjAgMS4xMyhLaWxsIHRoZSB0ZSkxNDQgMTgwIFIgMS4xMworL1RpbWVzLUJvbGRAMCBTRihiYWNrd2FyZFwyNTVraWxsXDI1NWxpbmUgXChDXDI1NXggUnVib3V0XCkpMTA4IDg0IFEgRjAKKyhLaWxsIGJhY2t3KTE0NCA5NiBRKGFyZCB0byB0aGUgYmUpLS4xIEUoZ2lubmluZyBvZiB0aGUgbGluZS4pLS4xNSBFIEYxCisodW5peFwyNTVsaW5lXDI1NWRpc2NhcmQgXChDXDI1NXVcKSkxMDggMTA4IFEgRjAoS2lsbCBiYWNrdykxNDQgMTIwIFEKKyhhcmQgZnJvbSBwb2ludCB0byB0aGUgYmUpLS4xIEUoZ2lubmluZyBvZiB0aGUgbGluZS4pLS4xNSBFCisoVGhlIGtpbGxlZCB0ZSk1IEUoeHQgaXMgc2EpLS4xNSBFIC0uMTUodmUpLS4yIEcgMi41KGRvKS4xNSBHIDIuNShudCkKKy0yLjUgRyhoZSBraWxsLXJpbmcuKS0yLjUgRSBGMShraWxsXDI1NXdob2xlXDI1NWxpbmUpMTA4IDEzMiBRIEYwCisoS2lsbCBhbGwgY2hhcmFjdGVycyBvbiB0aGUgY3VycmVudCBsaW5lLCBubyBtYXR0ZXIgd2hlcmUgcG9pbnQgaXMuKTE0NAorMTQ0IFEgRjEoa2lsbFwyNTV3KTEwOCAxNTYgUShvcmQgXChNXDI1NWRcKSktLjEgRSBGMCAxLjMwOAorKEtpbGwgZnJvbSBwb2ludCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IHcpMTQ0IDE2OCBSIDEuMzA4Cisob3JkLCBvciBpZiBiZXR3ZWVuIHcpLS4xIEYgMS4zMDgob3JkcywgdG8gdGhlIGVuZCBvZiB0aGUgbmUpLS4xIEYgMS4zMDgKKyh4dCB3KS0uMTUgRihvcmQuKS0uMSBFIC0uOChXbykxNDQgMTgwIFMKKyhyZCBib3VuZGFyaWVzIGFyZSB0aGUgc2FtZSBhcyB0aG9zZSB1c2VkIGJ5KS44IEUgRjEgLS4yNShmbykyLjUgRworKHJ3YXJkXDI1NXcpLjI1IEUob3JkKS0uMSBFIEYwKC4pQSBGMShiYWNrd2FyZFwyNTVraWxsXDI1NXcpMTA4IDE5MiBRCisob3JkIFwoTVwyNTVSdWJvdXRcKSktLjEgRSBGMChLaWxsIHRoZSB3KTE0NCAyMDQgUShvcmQgYmVoaW5kIHBvaW50LiktLjEKK0UgLS44KFdvKTUgRyhyZCBib3VuZGFyaWVzIGFyZSB0aGUgc2FtZSBhcyB0aG9zZSB1c2VkIGJ5KS44IEUgRjEKKyhiYWNrd2FyZFwyNTV3KTIuNSBFKG9yZCktLjEgRSBGMCguKUEgRjEodW5peFwyNTV3KTEwOCAyMTYgUQorKG9yZFwyNTVydWJvdXQgXChDXDI1NXdcKSktLjEgRSBGMCAuMzY1KEtpbGwgdGhlIHcpMTQ0IDIyOCBSIC4zNjUKKyhvcmQgYmVoaW5kIHBvaW50LCB1c2luZyB3aGl0ZSBzcGFjZSBhcyBhIHcpLS4xIEYgLjM2NChvcmQgYm91bmRhcnkpLS4xCitGIDUuMzY0KC5UKS0uNjUgRyAuMzY0KGhlIGtpbGxlZCB0ZSktNS4zNjQgRiAuMzY0KHh0IGlzIHNhKS0uMTUgRiAtLjE1CisodmUpLS4yIEcgMi44NjQoZG8pLjE1IEcgMi44NjQobnQpLTIuODY0IEcoaGUpLTIuODY0IEUoa2lsbC1yaW5nLikxNDQKKzI0MCBRIEYxKHVuaXhcMjU1XDIxNGxlbmFtZVwyNTVydWJvdXQpMTA4IDI1MiBRIEYwIC4xNjYoS2lsbCB0aGUgdykxNDQKKzI2NCBSIC4xNjYKKyhvcmQgYmVoaW5kIHBvaW50LCB1c2luZyB3aGl0ZSBzcGFjZSBhbmQgdGhlIHNsYXNoIGNoYXJhY3RlciBhcyB0aGUgdykKKy0uMSBGIC4xNjcob3JkIGJvdW5kYXJpZXMuKS0uMSBGKFRoZSk1LjE2NyBFKGtpbGxlZCB0ZSkxNDQgMjc2IFEKKyh4dCBpcyBzYSktLjE1IEUgLS4xNSh2ZSktLjIgRyAyLjUoZG8pLjE1IEcgMi41KG50KS0yLjUgRyhoZSBraWxsLXJpbmcuKQorLTIuNSBFIEYxKGRlbGV0ZVwyNTVob3Jpem9udGFsXDI1NXNwYWNlIFwoTVwyNTVcXFwpKTEwOCAyODggUSBGMAorKERlbGV0ZSBhbGwgc3BhY2VzIGFuZCB0YWJzIGFyb3VuZCBwb2ludC4pMTQ0IDMwMCBRIEYxKGtpbGxcMjU1cikxMDggMzEyCitRKGVnaW9uKS0uMTggRSBGMCAxLjEzKEtpbGwgdGhlIHRlKTE0NCAzMjQgUiAxLjEzCiAoeHQgYmV0d2VlbiB0aGUgcG9pbnQgYW5kKS0uMTUgRi9GMiAxMC9UaW1lcy1JdGFsaWNAMCBTRihtYXJrKTMuNjMgRSBGMAogKFwoc2EpMy42MyBFIC0uMTUodmUpLS4yIEcgMy42MyhkYykuMTUgRyAxLjEzKHVyc29yIHBvc2l0aW9uXCkuKS0zLjYzIEYKIDEuMTMoVGhpcyB0ZSk2LjEzIEYgMS4xMyh4dCBpcyByZWZlcnJlZCB0byBhcyB0aGUpLS4xNSBGIEYyIC0uMzcocmUpMTQ0Ci0xOTIgUyhnaW9uKS0uMDMgRSBGMCguKUEgRjEoY29weVwyNTVyKTEwOCAyMDQgUShlZ2lvblwyNTVhc1wyNTVraWxsKS0uMTgKLUUgRjAoQ29wKTE0NCAyMTYgUSAyLjUoeXQpLS4xIEcoaGUgdGUpLTIuNSBFKHh0IGluIHRoZSByZSktLjE1IEUKKzMzNiBTKGdpb24pLS4wMyBFIEYwKC4pQSBGMShjb3B5XDI1NXIpMTA4IDM0OCBRKGVnaW9uXDI1NWFzXDI1NWtpbGwpLS4xOAorRSBGMChDb3ApMTQ0IDM2MCBRIDIuNSh5dCktLjEgRyhoZSB0ZSktMi41IEUoeHQgaW4gdGhlIHJlKS0uMTUgRQogKGdpb24gdG8gdGhlIGtpbGwgYiktLjE1IEUodWYpLS4yIEUoZmVyKS0uMjUgRSguKS0uNTUgRSBGMQotKGNvcHlcMjU1YmFja3dhcmRcMjU1dykxMDggMjI4IFEob3JkKS0uMSBFIEYwKENvcCkxNDQgMjQwIFEgNC44KHl0KS0uMSBHCisoY29weVwyNTViYWNrd2FyZFwyNTV3KTEwOCAzNzIgUShvcmQpLS4xIEUgRjAoQ29wKTE0NCAzODQgUSA0LjgoeXQpLS4xIEcKIDIuMyhoZSB3KS00LjggRiAyLjMob3JkIGJlZm9yZSBwb2ludCB0byB0aGUga2lsbCBiKS0uMSBGKHVmKS0uMiBFKGZlcikKIC0uMjUgRSA3LjMwMSguVCktLjU1IEcgMi4zMDEoaGUgdyktNy4zMDEgRiAyLjMwMQotKG9yZCBib3VuZGFyaWVzIGFyZSB0aGUgc2FtZSBhcyktLjEgRiBGMShiYWNrLSk0LjgwMSBFKHdhcmRcMjU1dykxNDQgMjUyCi1RKG9yZCktLjEgRSBGMCguKUEgRjEoY29weVwyNTVmKTEwOCAyNjQgUShvcndhcmRcMjU1dyktLjI1IEUob3JkKS0uMSBFCi1GMChDb3ApMTQ0IDI3NiBRIDQuNTA4KHl0KS0uMSBHIDIuMDA4KGhlIHcpLTQuNTA4IEYgMi4wMDgob3JkIGZvbGxvKS0uMQorKG9yZCBib3VuZGFyaWVzIGFyZSB0aGUgc2FtZSBhcyktLjEgRiBGMShiYWNrLSk0LjgwMSBFKHdhcmRcMjU1dykxNDQgMzk2CitRKG9yZCktLjEgRSBGMCguKUEgRjEoY29weVwyNTVmKTEwOCA0MDggUShvcndhcmRcMjU1dyktLjI1IEUob3JkKS0uMSBFCitGMChDb3ApMTQ0IDQyMCBRIDQuNTA4KHl0KS0uMSBHIDIuMDA4KGhlIHcpLTQuNTA4IEYgMi4wMDgob3JkIGZvbGxvKS0uMQogRiAyLjAwOCh3aW5nIHBvaW50IHRvIHRoZSBraWxsIGIpLS4yNSBGKHVmKS0uMiBFKGZlciktLjI1IEUgNy4wMDcoLlQpCiAtLjU1IEcgMi4wMDcoaGUgdyktNy4wMDcgRiAyLjAwNyhvcmQgYm91bmRhcmllcyBhcmUgdGhlIHNhbWUgYXMpLS4xIEYgRjEKLS0uMjUoZm8pNC41MDcgRyAtLjM3KHItKS4yNSBHKHdhcmRcMjU1dykxNDQgMjg4IFEob3JkKS0uMSBFIEYwKC4pQSBGMQotKHlhbmsgXChDXDI1NXlcKSkxMDggMzAwIFEgRjAgLTEoWWEpMTQ0IDMxMiBTCistLjI1KGZvKTQuNTA3IEcgLS4zNyhyLSkuMjUgRyh3YXJkXDI1NXcpMTQ0IDQzMiBRKG9yZCktLjEgRSBGMCguKUEgRjEKKyh5YW5rIFwoQ1wyNTV5XCkpMTA4IDQ0NCBRIEYwIC0xKFlhKTE0NCA0NTYgUwogKG5rIHRoZSB0b3Agb2YgdGhlIGtpbGwgcmluZyBpbnRvIHRoZSBiKTEgRSh1ZiktLjIgRShmZXIgYXQgcG9pbnQuKS0uMjUKLUUgRjEoeWFua1wyNTVwb3AgXChNXDI1NXlcKSkxMDggMzI0IFEgRjAKLShSb3RhdGUgdGhlIGtpbGwgcmluZywgYW5kIHlhbmsgdGhlIG5lKTE0NCAzMzYgUSAyLjUod3QpLS4yNSBHIDIuNQorRSBGMSh5YW5rXDI1NXBvcCBcKE1cMjU1eVwpKTEwOCA0NjggUSBGMAorKFJvdGF0ZSB0aGUga2lsbCByaW5nLCBhbmQgeWFuayB0aGUgbmUpMTQ0IDQ4MCBRIDIuNSh3dCktLjI1IEcgMi41CiAob3AuIE9ubHkpLTIuNSBGIC0uMSh3bykyLjUgRyhya3MgZm9sbG8pLjEgRSh3aW5nKS0uMjUgRSBGMSh5YW5rKTIuNSBFCi1GMChvcikyLjUgRSBGMSh5YW5rXDI1NXBvcCkyLjUgRSBGMCguKUEgRjEoTnVtZXJpYyBBcik4NyAzNTIuOCBRCi0oZ3VtZW50cyktLjEgRShkaWdpdFwyNTVhcikxMDggMzY0LjggUQorRjAob3IpMi41IEUgRjEoeWFua1wyNTVwb3ApMi41IEUgRjAoLilBIEYxKE51bWVyaWMgQXIpODcgNDk2LjggUQorKGd1bWVudHMpLS4xIEUoZGlnaXRcMjU1YXIpMTA4IDUwOC44IFEKIChndW1lbnQgXChNXDI1NTAsIE1cMjU1MSwgLi4uLCBNXDI1NVwyNTVcKSktLjEgRSBGMCAuNjQxCi0oQWRkIHRoaXMgZGlnaXQgdG8gdGhlIGFyKTE0NCAzNzYuOCBSIC42NDEKKyhBZGQgdGhpcyBkaWdpdCB0byB0aGUgYXIpMTQ0IDUyMC44IFIgLjY0MQogKGd1bWVudCBhbHJlYWR5IGFjY3VtdWxhdGluZywgb3Igc3RhcnQgYSBuZSktLjE4IEYgMy4xNDEod2EpLS4yNSBHIC0uMTgKIChyZyktMy4xNDEgRyAzLjE0Mih1bWVudC4gTVwyNTVcMjU1KS4xOCBGIC42NDIoc3RhcnRzIGEgbmUpMy4xNDIgRihnLSkKLS0uMTUgRShhdGkpMTQ0IDM4OC44IFEgLjMgLS4xNSh2ZSBhKS0uMjUgSCAtLjE4KHJnKS4xNSBHKHVtZW50LikuMTggRSBGMQotKHVuaSkxMDggNDAwLjggUSAtLjEodmUpLS4xIEcocnNhbFwyNTVhcikuMSBFKGd1bWVudCktLjEgRSBGMCAuNzc5Ci0oVGhpcyBpcyBhbm90aGVyIHcpMTQ0IDQxMi44IFIgLjc3OShheSB0byBzcGVjaWZ5IGFuIGFyKS0uMSBGIDMuMjc5CistLjE1IEUoYXRpKTE0NCA1MzIuOCBRIC4zIC0uMTUodmUgYSktLjI1IEggLS4xOChyZykuMTUgRyh1bWVudC4pLjE4IEUgRjEKKyh1bmkpMTA4IDU0NC44IFEgLS4xKHZlKS0uMSBHKHJzYWxcMjU1YXIpLjEgRShndW1lbnQpLS4xIEUgRjAgLjc3OQorKFRoaXMgaXMgYW5vdGhlciB3KTE0NCA1NTYuOCBSIC43NzkoYXkgdG8gc3BlY2lmeSBhbiBhciktLjEgRiAzLjI3OQogKGd1bWVudC4gSWYpLS4xOCBGIC43NzkodGhpcyBjb21tYW5kIGlzIGZvbGxvKTMuMjc5IEYgLjc3OAogKHdlZCBieSBvbmUgb3IgbW9yZSBkaWdpdHMsKS0uMjUgRiAxLjM3NgogKG9wdGlvbmFsbHkgd2l0aCBhIGxlYWRpbmcgbWludXMgc2lnbiwgdGhvc2UgZGlnaXRzIGRlXDIxNG5lIHRoZSBhcikxNDQKLTQyNC44IFIgMy44NzYoZ3VtZW50LiBJZiktLjE4IEYgMS4zNzYodGhlIGNvbW1hbmQgaXMgZm9sLSkzLjg3NiBGKGxvKTE0NAotNDM2LjggUSAxLjE3KHdlZCBieSBkaWdpdHMsIGUpLS4yNSBGIC0uMTUoeGUpLS4xNSBHKGN1dGluZykuMTUgRSBGMSh1bmkpCis1NjguOCBSIDMuODc2KGd1bWVudC4gSWYpLS4xOCBGIDEuMzc2KHRoZSBjb21tYW5kIGlzIGZvbC0pMy44NzYgRihsbykxNDQKKzU4MC44IFEgMS4xNyh3ZWQgYnkgZGlnaXRzLCBlKS0uMjUgRiAtLjE1KHhlKS0uMTUgRyhjdXRpbmcpLjE1IEUgRjEodW5pKQogMy42NyBFIC0uMSh2ZSktLjEgRyhyc2FsXDI1NWFyKS4xIEUoZ3VtZW50KS0uMSBFIEYwKGFnKTMuNjcgRSAxLjE3CiAoYWluIGVuZHMgdGhlIG51bWVyaWMgYXIpLS4wNSBGIDEuMTcoZ3VtZW50LCBiKS0uMTggRiAxLjE3KHV0IGlzIG90aGVyKQotLS4yIEYoLSktLjIgRSAuODk4KHdpc2UgaWdub3JlZC4pMTQ0IDQ0OC44IFIgLjg5OAorLS4yIEYoLSktLjIgRSAuODk4KHdpc2UgaWdub3JlZC4pMTQ0IDU5Mi44IFIgLjg5OAogKEFzIGEgc3BlY2lhbCBjYXNlLCBpZiB0aGlzIGNvbW1hbmQgaXMgaW1tZWRpYXRlbHkgZm9sbG8pNS44OTggRiAuODk4CiAod2VkIGJ5IGEgY2hhcmFjdGVyIHRoYXQgaXMpLS4yNSBGIC4yNDMKLShuZWl0aGVyIGEgZGlnaXQgb3IgbWludXMgc2lnbiwgdGhlIGFyKTE0NCA0NjAuOCBSIC4yNDMKKyhuZWl0aGVyIGEgZGlnaXQgb3IgbWludXMgc2lnbiwgdGhlIGFyKTE0NCA2MDQuOCBSIC4yNDMKIChndW1lbnQgY291bnQgZm9yIHRoZSBuZSktLjE4IEYgLjI0Myh4dCBjb21tYW5kIGlzIG11bHRpcGxpZWQgYnkgZm91cikKLS0uMTUgRiA1LjI0MiguVCktLjU1IEcoaGUpLTUuMjQyIEUoYXIpMTQ0IDQ3Mi44IFEgLjM3OAorLS4xNSBGIDUuMjQyKC5UKS0uNTUgRyhoZSktNS4yNDIgRShhcikxNDQgNjE2LjggUSAuMzc4CiAoZ3VtZW50IGNvdW50IGlzIGluaXRpYWxseSBvbmUsIHNvIGUpLS4xOCBGIC0uMTUoeGUpLS4xNSBHIC4zNzgKIChjdXRpbmcgdGhpcyBmdW5jdGlvbiB0aGUgXDIxNHJzdCB0aW1lIG1haykuMTUgRiAuMzc4KGVzIHRoZSBhciktLjEgRgotLjM3OChndW1lbnQgY291bnQpLS4xOCBGKGZvdXIpMTQ0IDQ4NC44IFEgMi41KCxhcyktLjQgRyhlY29uZCB0aW1lIG1haykKKy4zNzgoZ3VtZW50IGNvdW50KS0uMTggRihmb3VyKTE0NCA2MjguOCBRIDIuNSgsYXMpLS40IEcoZWNvbmQgdGltZSBtYWspCiAtMi41IEUoZXMgdGhlIGFyKS0uMSBFKGd1bWVudCBjb3VudCBzaXh0ZWVuLCBhbmQgc28gb24uKS0uMTggRSBGMQotKENvbXBsZXRpbmcpODcgNTAxLjYgUShjb21wbGV0ZSBcKFQpMTA4IDUxMy42IFEoQUJcKSktLjkgRSBGMCAxLjkwOQotKEF0dGVtcHQgdG8gcGVyZm9ybSBjb21wbGV0aW9uIG9uIHRoZSB0ZSkxNDQgNTI1LjYgUiAxLjkwOAorKENvbXBsZXRpbmcpODcgNjQ1LjYgUShjb21wbGV0ZSBcKFQpMTA4IDY1Ny42IFEoQUJcKSktLjkgRSBGMCAxLjkwOQorKEF0dGVtcHQgdG8gcGVyZm9ybSBjb21wbGV0aW9uIG9uIHRoZSB0ZSkxNDQgNjY5LjYgUiAxLjkwOAogKHh0IGJlZm9yZSBwb2ludC4pLS4xNSBGIDEuOTA4KFRoZSBhY3R1YWwgY29tcGxldGlvbiBwZXJmb3JtZWQgaXMpNi45MDgKLUYoYXBwbGljYXRpb24tc3BlY2lcMjE0Yy4pMTQ0IDUzNy42IFEgRjEoQmFzaCk1LjUxNyBFIEYwIDMuMDE3KCxmKUMgLjUxOAorRihhcHBsaWNhdGlvbi1zcGVjaVwyMTRjLikxNDQgNjgxLjYgUSBGMShCYXNoKTUuNTE3IEUgRjAgMy4wMTcoLGYpQyAuNTE4CiAob3IgaW5zdGFuY2UsIGF0dGVtcHRzIGNvbXBsZXRpb24gdHJlYXRpbmcgdGhlIHRlKS0zLjAxNyBGIC41MTgKLSh4dCBhcyBhIHYpLS4xNSBGIC41MTgoYXJpYWJsZSBcKGlmIHRoZSktLjI1IEYodGUpMTQ0IDU0OS42IFEgLjY1NworKHh0IGFzIGEgdiktLjE1IEYgLjUxOChhcmlhYmxlIFwoaWYgdGhlKS0uMjUgRih0ZSkxNDQgNjkzLjYgUSAuNjU3CiAoeHQgYmUpLS4xNSBGIC42NTcoZ2lucyB3aXRoKS0uMTUgRiBGMSgkKTMuMTU2IEUgRjAgLjY1NgogKFwpLCB1c2VybmFtZSBcKGlmIHRoZSB0ZSlCIC42NTYoeHQgYmUpLS4xNSBGIC42NTYoZ2lucyB3aXRoKS0uMTUgRiBGMQogKH4pMy4xNTYgRSBGMCAuNjU2KFwpLCBob3N0bmFtZSBcKGlmIHRoZSB0ZSlCIC42NTYoeHQgYmUpLS4xNSBGIC42NTYKIChnaW5zIHdpdGgpLS4xNSBGIEYxKEApMy4xNTYgRSBGMCAuNjU2KFwpLCBvcilCIC45MjkKLShjb21tYW5kIFwoaW5jbHVkaW5nIGFsaWFzZXMgYW5kIGZ1bmN0aW9uc1wpIGluIHR1cm4uKTE0NCA1NjEuNiBSIC45MworKGNvbW1hbmQgXChpbmNsdWRpbmcgYWxpYXNlcyBhbmQgZnVuY3Rpb25zXCkgaW4gdHVybi4pMTQ0IDcwNS42IFIgLjkzCiAoSWYgbm9uZSBvZiB0aGVzZSBwcm9kdWNlcyBhIG1hdGNoLCBcMjE0bGVuYW1lKTUuOTI5IEYgMS4yNzQKLShjb21wbGV0aW9uIGlzIGF0dGVtcHRlZC4pMTQ0IDU3My42IFIgRjEoR2RiKTYuMjczIEUgRjAgMy43NzMoLG8pQyAzLjc3MworKGNvbXBsZXRpb24gaXMgYXR0ZW1wdGVkLikxNDQgNzE3LjYgUiBGMShHZGIpNi4yNzMgRSBGMCAzLjc3MygsbylDIDMuNzczCiAobnQpLTMuNzczIEcgMS4yNzMoaGUgb3RoZXIgaGFuZCwgYWxsbyktMy43NzMgRiAxLjI3MwotKHdzIGNvbXBsZXRpb24gb2YgcHJvZ3JhbSBmdW5jdGlvbnMgYW5kKS0uMjUgRiAtLjI1KHZhKTE0NCA1ODUuNiBTKHJpYWJcCisod3MgY29tcGxldGlvbiBvZiBwcm9ncmFtIGZ1bmN0aW9ucyBhbmQpLS4yNSBGIC0uMjUodmEpMTQ0IDcyOS42IFMocmlhYlwKIGxlcywgYW5kIG9ubHkgYXR0ZW1wdHMgXDIxNGxlbmFtZSBjb21wbGV0aW9uIHVuZGVyIGNlcnRhaW4gY2lyY3Vtc3RhbmNlXAotcy4pLjI1IEUgRjEocG9zc2libGVcMjU1Y29tcGxldGlvbnMgXChNXDI1NT9cKSkxMDggNTk3LjYgUSBGMAotKExpc3QgdGhlIHBvc3NpYmxlIGNvbXBsZXRpb25zIG9mIHRoZSB0ZSkxNDQgNjA5LjYgUSh4dCBiZWZvcmUgcG9pbnQuKQotLS4xNSBFIEYxKGluc2VydFwyNTVjb21wbGV0aW9ucyBcKE1cMjU1KlwpKTEwOCA2MjEuNiBRIEYwIC43ODMKLShJbnNlcnQgYWxsIGNvbXBsZXRpb25zIG9mIHRoZSB0ZSkxNDQgNjMzLjYgUiAuNzgzCi0oeHQgYmVmb3JlIHBvaW50IHRoYXQgdyktLjE1IEYgLjc4MyhvdWxkIGhhKS0uMSBGIDEuMDgzIC0uMTUodmUgYiktLjIgSAotLjc4MyhlZW4gZ2VuZXJhdGVkIGJ5KS4xNSBGIEYxKHBvc3NpYmxlXDI1NWNvbS0pMy4yODMgRShwbGV0aW9ucykxNDQKLTY0NS42IFEgRjAoLilBIEYxKG1lbnVcMjU1Y29tcGxldGUpMTA4IDY1Ny42IFEgRjAgLjkyOShTaW1pbGFyIHRvKTE0NAotNjY5LjYgUiBGMShjb21wbGV0ZSkzLjQyOSBFIEYwIDMuNDI5KCxiKUMgLjkyOSh1dCByZXBsYWNlcyB0aGUgdyktMy42MjkKLUYgLjkyOShvcmQgdG8gYmUgY29tcGxldGVkIHdpdGggYSBzaW5nbGUgbWF0Y2ggZnJvbSB0aGUgbGlzdCBvZiktLjEgRgotMS4xOTMocG9zc2libGUgY29tcGxldGlvbnMuKTE0NCA2ODEuNiBSIDEuMTkzKFJlcGVhdGVkIGUpNi4xOTMgRiAtLjE1Ci0oeGUpLS4xNSBHIDEuMTkzKGN1dGlvbiBvZikuMTUgRiBGMShtZW51XDI1NWNvbXBsZXRlKTMuNjk0IEUgRjAgMS4xOTQKLShzdGVwcyB0aHJvdWdoIHRoZSBsaXN0IG9mIHBvc3NpYmxlKTMuNjk0IEYgLjgyOQotKGNvbXBsZXRpb25zLCBpbnNlcnRpbmcgZWFjaCBtYXRjaCBpbiB0dXJuLikxNDQgNjkzLjYgUiAuODI4Ci0oQXQgdGhlIGVuZCBvZiB0aGUgbGlzdCBvZiBjb21wbGV0aW9ucywgdGhlIGJlbGwgaXMgcnVuZyk1LjgyOCBGIC45NjUKLShcKHN1YmplY3QgdG8gdGhlIHNldHRpbmcgb2YpMTQ0IDcwNS42IFIgRjEgLjk2NQotKDBhbmQgdGhlIG9yaWdpbmFsIHRleHQgaXMgcikzLjQ2NSBGKGVzdG9yKS0uMTggRSAzLjQ2NShlZC4gQW4pLS4xOCBGCi0oYXIpMy40NjUgRSAuOTY2KGd1bWVudCBvZiktLjEgRiBGMihuKTMuNDY2IEUgRjEobW8pMy40NjYgRSAtLjEodmUpLS4xIEcKLShzKS4xIEUgRjIobikzLjQ2NiBFIEYxKHBvc2ktKTMuNDY2IEUgMS4yNDkodGlvbnMgZikxNDQgNzE3LjYgUiAxLjI0OQotKG9yd2FyZCBpbiB0aGUgbGlzdCBvZiBtYXRjaGVzOyBhIG5lZ2F0aSktLjI1IEYgMS40NDkgLS4xKHZlIGEpLS4xIEggLS4xCi0ocmcpLjEgRyAxLjI0OCh1bWVudCBtYXkgYmUgdXNlZCB0byBtbykuMSBGIDEuNDQ4IC0uMSh2ZSBiKS0uMSBICi0oYWNrd2FyZCkuMSBFKHRocikxNDQgNzI5LjYgUShvdWdoIHRoZSBsaXN0LiktLjE4IEUKLShUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgdG8gYmUgYm91bmQgdG8gVCk1IEUoQUIsIGIpLS45IEUKLSh1dCBpcyB1bmJvdW5kIGJ5IGRlZmF1bHQuKS0uMiBFIEYwKEdOVSBSZWFkbGluZSA0LjMpNzIgNzY4IFEKLSgyMDAyIEphbnVhcnkgMjIpMTI2LjI0IEUoOCkxOTUuOTUgRSBFUAorcy4pLjI1IEUoR05VIFJlYWRsaW5lIDUuMS1iZXRhMSk3MiA3NjggUSgyMDA1IFNlcCAxMykxMDkuMyBFKDgpMjA0IEUgMAorQ2cgRVAKICUlUGFnZTogOSA5CiAlJUJlZ2luUGFnZVNldHVwCiBCUAogJSVFbmRQYWdlU2V0dXAKIC9GMCAxMC9UaW1lcy1Sb21hbkAwIFNGIDM0Mi4yKFJFQURMSU5FXCgzXCkgUkVBRExJTkVcKDNcKSk3MiA0OCBSL0YxIDEwCi0vVGltZXMtQm9sZEAwIFNGKGRlbGV0ZVwyNTVjaGFyXDI1NW9yXDI1NWxpc3QpMTA4IDg0IFEgRjAgLjM3MwotKERlbGV0ZXMgdGhlIGNoYXJhY3RlciB1bmRlciB0aGUgY3Vyc29yIGlmIG5vdCBhdCB0aGUgYmUpMTQ0IDk2IFIgLjM3NAorL1RpbWVzLUJvbGRAMCBTRihwb3NzaWJsZVwyNTVjb21wbGV0aW9ucyBcKE1cMjU1P1wpKTEwOCA4NCBRIEYwCisoTGlzdCB0aGUgcG9zc2libGUgY29tcGxldGlvbnMgb2YgdGhlIHRlKTE0NCA5NiBRKHh0IGJlZm9yZSBwb2ludC4pLS4xNQorRSBGMShpbnNlcnRcMjU1Y29tcGxldGlvbnMgXChNXDI1NSpcKSkxMDggMTA4IFEgRjAgLjc4MworKEluc2VydCBhbGwgY29tcGxldGlvbnMgb2YgdGhlIHRlKTE0NCAxMjAgUiAuNzgzKHh0IGJlZm9yZSBwb2ludCB0aGF0IHcpCistLjE1IEYgLjc4MyhvdWxkIGhhKS0uMSBGIDEuMDgzIC0uMTUodmUgYiktLjIgSCAuNzgzKGVlbiBnZW5lcmF0ZWQgYnkpCisuMTUgRiBGMShwb3NzaWJsZVwyNTVjb20tKTMuMjgzIEUocGxldGlvbnMpMTQ0IDEzMiBRIEYwKC4pQSBGMQorKG1lbnVcMjU1Y29tcGxldGUpMTA4IDE0NCBRIEYwIC45MjkoU2ltaWxhciB0bykxNDQgMTU2IFIgRjEoY29tcGxldGUpCiszLjQyOSBFIEYwIDMuNDI5KCxiKUMgLjkyOSh1dCByZXBsYWNlcyB0aGUgdyktMy42MjkgRiAuOTI5Cisob3JkIHRvIGJlIGNvbXBsZXRlZCB3aXRoIGEgc2luZ2xlIG1hdGNoIGZyb20gdGhlIGxpc3Qgb2YpLS4xIEYgMS4xOTMKKyhwb3NzaWJsZSBjb21wbGV0aW9ucy4pMTQ0IDE2OCBSIDEuMTkzKFJlcGVhdGVkIGUpNi4xOTMgRiAtLjE1KHhlKS0uMTUgRworMS4xOTMoY3V0aW9uIG9mKS4xNSBGIEYxKG1lbnVcMjU1Y29tcGxldGUpMy42OTQgRSBGMCAxLjE5NAorKHN0ZXBzIHRocm91Z2ggdGhlIGxpc3Qgb2YgcG9zc2libGUpMy42OTQgRiAuODI5CisoY29tcGxldGlvbnMsIGluc2VydGluZyBlYWNoIG1hdGNoIGluIHR1cm4uKTE0NCAxODAgUiAuODI4CisoQXQgdGhlIGVuZCBvZiB0aGUgbGlzdCBvZiBjb21wbGV0aW9ucywgdGhlIGJlbGwgaXMgcnVuZyk1LjgyOCBGIC43MjcKKyhcKHN1YmplY3QgdG8gdGhlIHNldHRpbmcgb2YpMTQ0IDE5MiBSIEYxKGJlbGxcMjU1c3R5bGUpMy4yMjcgRSBGMCAzLjIyNworKFwpYSlDIC43MjcobmQgdGhlIG9yaWdpbmFsIHRlKS0zLjIyNyBGIC43MjcoeHQgaXMgcmVzdG9yZWQuKS0uMTUgRiAuNzI3CisoQW4gYXIpNS43MjcgRiAuNzI3KGd1bWVudCBvZiktLjE4IEYvRjIgMTAvVGltZXMtSXRhbGljQDAgU0YobikzLjIyNyBFCitGMChtbykzLjIyNyBFIC0uMTUodmUpLS4xNSBHKHMpLjE1IEUgRjIobikzLjIyOCBFIEYwIDEuNzMKKyhwb3NpdGlvbnMgZm9ydykxNDQgMjA0IFIgMS43MyhhcmQgaW4gdGhlIGxpc3Qgb2YgbWF0Y2hlczsgYSBuZSktLjEgRgorLS4wNShnYSktLjE1IEcodGkpLjA1IEUgMi4wMyAtLjE1KHZlIGEpLS4yNSBIIC0uMTgocmcpLjE1IEcgMS43MworKHVtZW50IG1heSBiZSB1c2VkIHRvIG1vKS4xOCBGIDIuMDMgLS4xNSh2ZSBiKS0uMTUgSChhY2t3KS4xNSBFKGFyZCktLjEKK0UodGhyb3VnaCB0aGUgbGlzdC4pMTQ0IDIxNiBRKFRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCB0byBiZSBib3VuZCB0byk1CitFIEYxIC0uOShUQSkyLjUgRyhCKS45IEUgRjAgMi41KCxiKUModXQgaXMgdW5ib3VuZCBieSBkZWYpLTIuNyBFKGF1bHQuKQorLS4xIEUgRjEoZGVsZXRlXDI1NWNoYXJcMjU1b3JcMjU1bGlzdCkxMDggMjI4IFEgRjAgLjM3MworKERlbGV0ZXMgdGhlIGNoYXJhY3RlciB1bmRlciB0aGUgY3Vyc29yIGlmIG5vdCBhdCB0aGUgYmUpMTQ0IDI0MCBSIC4zNzQKIChnaW5uaW5nIG9yIGVuZCBvZiB0aGUgbGluZSBcKGxpayktLjE1IEYoZSktLjEgRSBGMShkZWxldGUtY2hhcikyLjg3NCBFCi1GMChcKS4pQShJZiBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lLCBiZWhhKTE0NCAxMDggUSAtLjE1KHZlKS0uMiBHIDIuNShzaSkKK0YwKFwpLilBKElmIGF0IHRoZSBlbmQgb2YgdGhlIGxpbmUsIGJlaGEpMTQ0IDI1MiBRIC0uMTUodmUpLS4yIEcgMi41KHNpKQogLjE1IEcoZGVudGljYWxseSB0byktMi41IEUgRjEocG9zc2libGUtY29tcGxldGlvbnMpMi41IEUgRjAoLilBIEYxIC0uMjUKLShLZSk4NyAxMjQuOCBTKHlib2FyZCBNYWNyKS4yNSBFKG9zKS0uMTggRShzdGFydFwyNTVrYmRcMjU1bWFjcikxMDgKLTEzNi44IFEgMi41KG9cKCktLjE4IEcoQ1wyNTV4IFwoKS0yLjUgRShcKSkuODMzIEUgRjAoQmUpMTQ0IDE0OC44IFEKKyhLZSk4NyAyNjguOCBTKHlib2FyZCBNYWNyKS4yNSBFKG9zKS0uMTggRShzdGFydFwyNTVrYmRcMjU1bWFjcikxMDgKKzI4MC44IFEgMi41KG9cKCktLjE4IEcoQ1wyNTV4IFwoKS0yLjUgRShcKSkuODMzIEUgRjAoQmUpMTQ0IDI5Mi44IFEKIChnaW4gc2EpLS4xNSBFKHZpbmcgdGhlIGNoYXJhY3RlcnMgdHlwZWQgaW50byB0aGUgY3VycmVudCBrKS0uMiBFIC0uMTUKLShleSktLjEgRyhib2FyZCBtYWNyby4pLjE1IEUgRjEoZW5kXDI1NWtiZFwyNTVtYWNyKTEwOCAxNjAuOCBRIDIuNShvXCgpCi0tLjE4IEcoQ1wyNTV4IFwpKS0yLjUgRShcKSkuODMzIEUgRjAoU3RvcCBzYSkxNDQgMTcyLjggUQorKGV5KS0uMSBHKGJvYXJkIG1hY3JvLikuMTUgRSBGMShlbmRcMjU1a2JkXDI1NW1hY3IpMTA4IDMwNC44IFEgMi41KG9cKCkKKy0uMTggRyhDXDI1NXggXCkpLTIuNSBFKFwpKS44MzMgRSBGMChTdG9wIHNhKTE0NCAzMTYuOCBRCiAodmluZyB0aGUgY2hhcmFjdGVycyB0eXBlZCBpbnRvIHRoZSBjdXJyZW50IGspLS4yIEUgLS4xNShleSktLjEgRwogKGJvYXJkIG1hY3JvIGFuZCBzdG9yZSB0aGUgZGVcMjE0bml0aW9uLikuMTUgRSBGMQotKGNhbGxcMjU1bGFzdFwyNTVrYmRcMjU1bWFjcikxMDggMTg0LjggUSAyLjUob1woKS0uMTggRyhDXDI1NXggZVwpKS0yLjUKLUUgRjAoUmUtZSkxNDQgMTk2LjggUSAtLjE1KHhlKS0uMTUgRyAxKGN1dGUgdGhlIGxhc3QgaykuMTUgRiAtLjE1KGV5KS0uMQorKGNhbGxcMjU1bGFzdFwyNTVrYmRcMjU1bWFjcikxMDggMzI4LjggUSAyLjUob1woKS0uMTggRyhDXDI1NXggZVwpKS0yLjUKK0UgRjAoUmUtZSkxNDQgMzQwLjggUSAtLjE1KHhlKS0uMTUgRyAxKGN1dGUgdGhlIGxhc3QgaykuMTUgRiAtLjE1KGV5KS0uMQogRyAuOTk5KGJvYXJkIG1hY3JvIGRlXDIxNG5lZCwgYnkgbWFraW5nIHRoZSBjaGFyYWN0ZXJzIGluIHRoZSBtYWNybyBhcHBcCi1lYXIgYXMgaWYpLjE1IEYodHlwZWQgYXQgdGhlIGspMTQ0IDIwOC44IFEgLS4xNShleSktLjEgRyhib2FyZC4pLjE1IEUgRjEKLShNaXNjZWxsYW5lb3VzKTg3IDIyNS42IFEgLS4xOChyZSkxMDggMjM3LjYgUzxhZDcyPi4xOCBFCitlYXIgYXMgaWYpLjE1IEYodHlwZWQgYXQgdGhlIGspMTQ0IDM1Mi44IFEgLS4xNShleSktLjEgRyhib2FyZC4pLjE1IEUgRjEKKyhNaXNjZWxsYW5lb3VzKTg3IDM2OS42IFEgLS4xOChyZSkxMDggMzgxLjYgUzxhZDcyPi4xOCBFCiAoZWFkXDI1NWluaXRcMjU1XDIxNGxlIFwoQ1wyNTV4IENcMjU1clwpKS0uMTggRSBGMCAxLjc3NgotKFJlYWQgaW4gdGhlIGNvbnRlbnRzIG9mIHRoZSkxNDQgMjQ5LjYgUi9GMiAxMC9UaW1lcy1JdGFsaWNAMCBTRihpbnB1dHIpCi00LjI3NiBFKGMpLS4zNyBFIEYwIDEuNzc3KFwyMTRsZSwgYW5kIGluY29ycG9yYXRlIGFuKTQuMjc2IEYgNC4yNzcoeWIpCi0tLjE1IEcgMS43NzcoaW5kaW5ncyBvciB2KS00LjI3NyBGIDEuNzc3KGFyaWFibGUgYXNzaWdubWVudHMpLS4yNSBGCi0oZm91bmQgdGhlcmUuKTE0NCAyNjEuNiBRIEYxKGFib3J0IFwoQ1wyNTVnXCkpMTA4IDI3My42IFEgRjAgMy4yNDkKLShBYm9ydCB0aGUgY3VycmVudCBlZGl0aW5nIGNvbW1hbmQgYW5kIHJpbmcgdGhlIHRlcm1pbmFsJykxNDQgMjg1LjYgUgorKFJlYWQgaW4gdGhlIGNvbnRlbnRzIG9mIHRoZSkxNDQgMzkzLjYgUiBGMihpbnB1dHIpNC4yNzYgRShjKS0uMzcgRSBGMAorMS43NzcoXDIxNGxlLCBhbmQgaW5jb3Jwb3JhdGUgYW4pNC4yNzYgRiA0LjI3Nyh5YiktLjE1IEcgMS43NzcKKyhpbmRpbmdzIG9yIHYpLTQuMjc3IEYgMS43NzcoYXJpYWJsZSBhc3NpZ25tZW50cyktLjI1IEYoZm91bmQgdGhlcmUuKTE0NAorNDA1LjYgUSBGMShhYm9ydCBcKENcMjU1Z1wpKTEwOCA0MTcuNiBRIEYwIDMuMjQ5CisoQWJvcnQgdGhlIGN1cnJlbnQgZWRpdGluZyBjb21tYW5kIGFuZCByaW5nIHRoZSB0ZXJtaW5hbCcpMTQ0IDQyOS42IFIKIDUuNzQ4KHNiKS0uNTUgRyAzLjI0OChlbGwgXChzdWJqZWN0IHRvIHRoZSBzZXR0aW5nIG9mKS01Ljc0OCBGIEYxCi0oYmVsbFwyNTVzdHlsZSkxNDQgMjk3LjYgUSBGMChcKS4pQSBGMShkb1wyNTV1cHBlcikxMDggMzA5LjYgUQorKGJlbGxcMjU1c3R5bGUpMTQ0IDQ0MS42IFEgRjAoXCkuKUEgRjEoZG9cMjU1dXBwZXIpMTA4IDQ1My42IFEKIChjYXNlXDI1NXYpLS4xOCBFKGVyc2lvbiBcKE1cMjU1YSwgTVwyNTViLCBNXDI1NSktLjEgRSBGMih4KUEgRjEgMi41KCwuKQotQyguLlwpKS0yLjUgRSBGMCAxLjc1NShJZiB0aGUgbWV0YVwyMTRlZCBjaGFyYWN0ZXIpMTQ0IDMyMS42IFIgRjIoeCkKK0MoLi5cKSktMi41IEUgRjAgMS43NTUoSWYgdGhlIG1ldGFcMjE0ZWQgY2hhcmFjdGVyKTE0NCA0NjUuNiBSIEYyKHgpCiA0LjI1NSBFIEYwIDEuNzU1KGlzIGxvKTQuMjU1IEYgMS43NTYKICh3ZXJjYXNlLCBydW4gdGhlIGNvbW1hbmQgdGhhdCBpcyBib3VuZCB0byB0aGUgY29ycmVzcG9uZGluZyktLjI1IEYKLSh1cHBlcmNhc2UgY2hhcmFjdGVyKTE0NCAzMzMuNiBRKC4pLS41NSBFIEYxKHByKTEwOCAzNDUuNiBRCi0oZVwyMTR4XDI1NW1ldGEgXChFU0NcKSktLjE4IEUgRjAoTWV0YWZ5IHRoZSBuZSkxNDQgMzU3LjYgUQorKHVwcGVyY2FzZSBjaGFyYWN0ZXIpMTQ0IDQ3Ny42IFEoLiktLjU1IEUgRjEocHIpMTA4IDQ4OS42IFEKKyhlXDIxNHhcMjU1bWV0YSBcKEVTQ1wpKS0uMTggRSBGMChNZXRhZnkgdGhlIG5lKTE0NCA1MDEuNiBRCiAoeHQgY2hhcmFjdGVyIHR5cGVkLiktLjE1IEUvRjMgOS9UaW1lcy1Cb2xkQDAgU0YoRVNDKTUgRSBGMShmKTIuMjUgRSBGMAogKGlzIGVxdWkpMi41IEUgLS4yNSh2YSktLjI1IEcobGVudCB0bykuMjUgRSBGMShNZXRhXDI1NWYpMi41IEUgRjAoLilBIEYxCi0odW5kbyBcKENcMjU1XywgQ1wyNTV4IENcMjU1dVwpKTEwOCAzNjkuNiBRIEYwCi0oSW5jcmVtZW50YWwgdW5kbywgc2VwYXJhdGVseSByZW1lbWJlcmVkIGZvciBlYWNoIGxpbmUuKTE0NCAzODEuNiBRIEYxCi0tMi4yOSAtLjE4KHJlIHYpMTA4IDM5My42IFQoZXJ0XDI1NWxpbmUgXChNXDI1NXJcKSkuMDggRSBGMCAxLjA5NQotKFVuZG8gYWxsIGNoYW5nZXMgbWFkZSB0byB0aGlzIGxpbmUuKTE0NCA0MDUuNiBSIDEuMDk1KFRoaXMgaXMgbGlrKTYuMDk1CisodW5kbyBcKENcMjU1XywgQ1wyNTV4IENcMjU1dVwpKTEwOCA1MTMuNiBRIEYwCisoSW5jcmVtZW50YWwgdW5kbywgc2VwYXJhdGVseSByZW1lbWJlcmVkIGZvciBlYWNoIGxpbmUuKTE0NCA1MjUuNiBRIEYxCistMi4yOSAtLjE4KHJlIHYpMTA4IDUzNy42IFQoZXJ0XDI1NWxpbmUgXChNXDI1NXJcKSkuMDggRSBGMCAxLjA5NQorKFVuZG8gYWxsIGNoYW5nZXMgbWFkZSB0byB0aGlzIGxpbmUuKTE0NCA1NDkuNiBSIDEuMDk1KFRoaXMgaXMgbGlrKTYuMDk1CiBGIDMuNTk1KGVlKS0uMSBHIC0uMTUoeGUpLTMuNzQ1IEcgMS4wOTUoY3V0aW5nIHRoZSkuMTUgRiBGMSh1bmRvKTMuNTk1IEUKIEYwIDEuMDk1KGNvbW1hbmQgZW5vdWdoIHRpbWVzIHRvKTMuNTk1IEYKLShyZXR1cm4gdGhlIGxpbmUgdG8gaXRzIGluaXRpYWwgc3RhdGUuKTE0NCA0MTcuNiBRIEYxCi0odGlsZGVcMjU1ZXhwYW5kIFwoTVwyNTUmXCkpMTA4IDQyOS42IFEgRjAoUGVyZm9ybSB0aWxkZSBlKTE0NCA0NDEuNiBRCisocmV0dXJuIHRoZSBsaW5lIHRvIGl0cyBpbml0aWFsIHN0YXRlLikxNDQgNTYxLjYgUSBGMQorKHRpbGRlXDI1NWV4cGFuZCBcKE1cMjU1JlwpKTEwOCA1NzMuNiBRIEYwKFBlcmZvcm0gdGlsZGUgZSkxNDQgNTg1LjYgUQogKHhwYW5zaW9uIG9uIHRoZSBjdXJyZW50IHcpLS4xNSBFKG9yZC4pLS4xIEUgRjEKLShzZXRcMjU1bWFyayBcKENcMjU1QCwgTVwyNTU8c3BhY2U+XCkpMTA4IDQ1My42IFEgRjAKLShTZXQgdGhlIG1hcmsgdG8gdGhlIHBvaW50LikxNDQgNDY1LjYgUShJZiBhIG51bWVyaWMgYXIpNSBFCisoc2V0XDI1NW1hcmsgXChDXDI1NUAsIE1cMjU1PHNwYWNlPlwpKTEwOCA1OTcuNiBRIEYwCisoU2V0IHRoZSBtYXJrIHRvIHRoZSBwb2ludC4pMTQ0IDYwOS42IFEoSWYgYSBudW1lcmljIGFyKTUgRQogKGd1bWVudCBpcyBzdXBwbGllZCwgdGhlIG1hcmsgaXMgc2V0IHRvIHRoYXQgcG9zaXRpb24uKS0uMTggRSBGMQotKGV4Y2hhbmdlXDI1NXBvaW50XDI1NWFuZFwyNTVtYXJrIFwoQ1wyNTV4IENcMjU1eFwpKTEwOCA0NzcuNiBRIEYwKFN3KQotMTQ0IDQ4OS42IFEgLjI4MihhcCB0aGUgcG9pbnQgd2l0aCB0aGUgbWFyay4pLS4xIEYgLjI4MworKGV4Y2hhbmdlXDI1NXBvaW50XDI1NWFuZFwyNTVtYXJrIFwoQ1wyNTV4IENcMjU1eFwpKTEwOCA2MjEuNiBRIEYwKFN3KQorMTQ0IDYzMy42IFEgLjI4MihhcCB0aGUgcG9pbnQgd2l0aCB0aGUgbWFyay4pLS4xIEYgLjI4MwogKFRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbiBpcyBzZXQgdG8gdGhlIHNhKTUuMjgzIEYgLS4xNSh2ZSktLjIgRwogMi43ODMoZHApLjE1IEcgLjI4Myhvc2l0aW9uLCBhbmQgdGhlIG9sZCktMi43ODMgRihjdXJzb3IgcG9zaXRpb24gaXMgc2EpCi0xNDQgNTAxLjYgUSAtLjE1KHZlKS0uMiBHIDIuNShkYSkuMTUgRyAyLjUoc3QpLTIuNSBHKGhlIG1hcmsuKS0yLjUgRSBGMQotKGNoYXJhY3RlclwyNTVzZWFyKTEwOCA1MTMuNiBRKGNoIFwoQ1wyNTVdXCkpLS4xOCBFIEYwIDMuMDM2KEFjKTE0NAotNTI1LjYgUyAuNTM2KGhhcmFjdGVyIGlzIHJlYWQgYW5kIHBvaW50IGlzIG1vKS0zLjAzNiBGIC0uMTUodmUpLS4xNSBHCisxNDQgNjQ1LjYgUSAtLjE1KHZlKS0uMiBHIDIuNShkYSkuMTUgRyAyLjUoc3QpLTIuNSBHKGhlIG1hcmsuKS0yLjUgRSBGMQorKGNoYXJhY3RlclwyNTVzZWFyKTEwOCA2NTcuNiBRKGNoIFwoQ1wyNTVdXCkpLS4xOCBFIEYwIDMuMDM2KEFjKTE0NAorNjY5LjYgUyAuNTM2KGhhcmFjdGVyIGlzIHJlYWQgYW5kIHBvaW50IGlzIG1vKS0zLjAzNiBGIC0uMTUodmUpLS4xNSBHCiAzLjAzNShkdCkuMTUgRyAzLjAzNShvdCktMy4wMzUgRyAuNTM1KGhlIG5lKS0zLjAzNSBGIC41MzUKICh4dCBvY2N1cnJlbmNlIG9mIHRoYXQgY2hhcmFjdGVyKS0uMTUgRiA1LjUzNSguQSktLjU1IEcobmUpLTIuNSBFIC0uMDUKIChnYSktLjE1IEcodGkpLjA1IEUgLjgzNSAtLjE1KHZlIGMpLS4yNSBIKG91bnQpLjE1IEUoc2VhcmNoZXMgZm9yIHByZSkKLTE0NCA1MzcuNiBRKHZpb3VzIG9jY3VycmVuY2VzLiktLjI1IEUgRjEoY2hhcmFjdGVyXDI1NXNlYXIpMTA4IDU0OS42IFEKLShjaFwyNTViYWNrd2FyZCBcKE1cMjU1Q1wyNTVdXCkpLS4xOCBFIEYwIDMuNTQzKEFjKTE0NCA1NjEuNiBTIDEuMDQzCisxNDQgNjgxLjYgUSh2aW91cyBvY2N1cnJlbmNlcy4pLS4yNSBFIEYxKGNoYXJhY3RlclwyNTVzZWFyKTEwOCA2OTMuNiBRCisoY2hcMjU1YmFja3dhcmQgXChNXDI1NUNcMjU1XVwpKS0uMTggRSBGMCAzLjU0MyhBYykxNDQgNzA1LjYgUyAxLjA0MwogKGhhcmFjdGVyIGlzIHJlYWQgYW5kIHBvaW50IGlzIG1vKS0zLjU0MyBGIC0uMTUodmUpLS4xNSBHIDMuNTQ0KGR0KS4xNSBHCiAzLjU0NChvdCktMy41NDQgRyAxLjA0NChoZSBwcmUpLTMuNTQ0IEYgMS4wNDQKICh2aW91cyBvY2N1cnJlbmNlIG9mIHRoYXQgY2hhcmFjdGVyKS0uMjUgRiA2LjA0NCguQSktLjU1IEcobmUpLTIuNSBFCiAtLjA1KGdhKS0uMTUgRyh0aSkuMDUgRSAtLjE1KHZlKS0uMjUgRwotKGNvdW50IHNlYXJjaGVzIGZvciBzdWJzZXF1ZW50IG9jY3VycmVuY2VzLikxNDQgNTczLjYgUSBGMQotKGluc2VydFwyNTVjb21tZW50IFwoTVwyNTUjXCkpMTA4IDU4NS42IFEgRjAgLS40KFdpKTE0NCA1OTcuNiBTIC40ODEKLSh0aG91dCBhIG51bWVyaWMgYXIpLjQgRiAuNDgxKGd1bWVudCwgdGhlIHYpLS4xOCBGIC40ODEKLShhbHVlIG9mIHRoZSByZWFkbGluZSktLjI1IEYgRjEoY29tbWVudFwyNTViZWdpbikyLjk4MSBFIEYwIC0uMjUodmEpCi0yLjk4MSBHIC40OChyaWFibGUgaXMgaW5zZXJ0ZWQgYXQgdGhlKS4yNSBGKGJlKTE0NCA2MDkuNiBRIC4wOTcKLShnaW5uaW5nIG9mIHRoZSBjdXJyZW50IGxpbmUuKS0uMTUgRiAuMDk4KElmIGEgbnVtZXJpYyBhcik1LjA5NyBGIC4wOTgKLShndW1lbnQgaXMgc3VwcGxpZWQsIHRoaXMgY29tbWFuZCBhY3RzIGFzIGEgdG9nZ2xlOiktLjE4IEYoaWYpNS4wOTggRQotLjMyMih0aGUgY2hhcmFjdGVycyBhdCB0aGUgYmUpMTQ0IDYyMS42IFIgLjMyMQotKGdpbm5pbmcgb2YgdGhlIGxpbmUgZG8gbm90IG1hdGNoIHRoZSB2KS0uMTUgRiAuMzIxKGFsdWUgb2YpLS4yNSBGIEYxCi0oY29tbWVudFwyNTViZWdpbikyLjgyMSBFIEYwIDIuODIxKCx0KUMgLjMyMShoZSB2KS0yLjgyMSBGIC4zMjEoYWx1ZSBpcykKLS0uMjUgRiAxLjAxMyhpbnNlcnRlZCwgb3RoZXJ3aXNlIHRoZSBjaGFyYWN0ZXJzIGluKTE0NCA2MzMuNiBSIEYxCi0oY29tbWVudC1iZWdpbikzLjUxNCBFIEYwIDEuMDE0KGFyZSBkZWxldGVkIGZyb20gdGhlIGJlKTMuNTE0IEYgMS4wMTQKLShnaW5uaW5nIG9mIHRoZSBsaW5lLiktLjE1IEYgMS40NjkKLShJbiBlaXRoZXIgY2FzZSwgdGhlIGxpbmUgaXMgYWNjZXB0ZWQgYXMgaWYgYSBuZSkxNDQgNjQ1LjYgUiAxLjQ2OAotKHdsaW5lIGhhZCBiZWVuIHR5cGVkLiktLjI1IEYgMS40NjgoVGhlIGRlZik2LjQ2OCBGIDEuNDY4KGF1bHQgdiktLjEgRgotMS40NjgoYWx1ZSBvZiktLjI1IEYgRjEoY29tLSkzLjk2OCBFKG1lbnRcMjU1YmVnaW4pMTQ0IDY1Ny42IFEgRjAobWFrKQotMi45ODIgRSAuNDgzKGVzIHRoZSBjdXJyZW50IGxpbmUgYSBzaGVsbCBjb21tZW50LiktLjEgRiAuNDgzCi0oSWYgYSBudW1lcmljIGFyKTUuNDgzIEYgLjQ4MyhndW1lbnQgY2F1c2VzIHRoZSBjb21tZW50KS0uMTggRgotKGNoYXJhY3RlciB0byBiZSByZW1vKTE0NCA2NjkuNiBRIC0uMTUodmUpLS4xNSBHKGQsIHRoZSBsaW5lIHdpbGwgYmUgZSkKLS4xNSBFIC0uMTUoeGUpLS4xNSBHKGN1dGVkIGJ5IHRoZSBzaGVsbC4pLjE1IEUgRjEoZHVtcFwyNTVmdW5jdGlvbnMpMTA4Ci02ODEuNiBRIEYwIC42MjcoUHJpbnQgYWxsIG9mIHRoZSBmdW5jdGlvbnMgYW5kIHRoZWlyIGspMTQ0IDY5My42IFIgLjkyNwotLS4xNShleSBiKS0uMSBIIC42MjYoaW5kaW5ncyB0byB0aGUgcmVhZGxpbmUgb3V0cHV0IHN0cmVhbS4pLjE1IEYgLjYyNgotKElmIGEgbnVtZXJpYyBhcik1LjYyNiBGKGd1LSktLjE4IEUKLShtZW50IGlzIHN1cHBsaWVkLCB0aGUgb3V0cHV0IGlzIGZvcm1hdHRlZCBpbiBzdWNoIGEgdykxNDQgNzA1LjYgUQotKGF5IHRoYXQgaXQgY2FuIGJlIG1hZGUgcGFydCBvZiBhbiktLjEgRSBGMihpbnB1dHIpMi41IEUoYyktLjM3IEUgRjAKLShcMjE0bGUuKTIuNSBFKEdOVSBSZWFkbGluZSA0LjMpNzIgNzY4IFEoMjAwMiBKYW51YXJ5IDIyKTEyNi4yNCBFKDkpCi0xOTUuOTUgRSBFUAorKGNvdW50IHNlYXJjaGVzIGZvciBzdWJzZXF1ZW50IG9jY3VycmVuY2VzLikxNDQgNzE3LjYgUQorKEdOVSBSZWFkbGluZSA1LjEtYmV0YTEpNzIgNzY4IFEoMjAwNSBTZXAgMTMpMTA5LjMgRSg5KTIwNCBFIDAgQ2cgRVAKICUlUGFnZTogMTAgMTAKICUlQmVnaW5QYWdlU2V0dXAKIEJQCiAlJUVuZFBhZ2VTZXR1cAogL0YwIDEwL1RpbWVzLVJvbWFuQDAgU0YgMzQyLjIoUkVBRExJTkVcKDNcKSBSRUFETElORVwoM1wpKTcyIDQ4IFIvRjEgMTAKLS9UaW1lcy1Cb2xkQDAgU0YoZHVtcFwyNTV2KTEwOCA4NCBRKGFyaWFibGVzKS0uMSBFIEYwIC4yODMKLShQcmludCBhbGwgb2YgdGhlIHNldHRhYmxlIHYpMTQ0IDk2IFIgLjI4MyhhcmlhYmxlcyBhbmQgdGhlaXIgdiktLjI1IEYKLS4yODMoYWx1ZXMgdG8gdGhlIHJlYWRsaW5lIG91dHB1dCBzdHJlYW0uKS0uMjUgRiAuMjgzKElmIGEgbnVtZXJpYyBhcikKLTUuMjgzIEYoZ3UtKS0uMTggRQotKG1lbnQgaXMgc3VwcGxpZWQsIHRoZSBvdXRwdXQgaXMgZm9ybWF0dGVkIGluIHN1Y2ggYSB3KTE0NCAxMDggUQorL1RpbWVzLUJvbGRAMCBTRihpbnNlcnRcMjU1Y29tbWVudCBcKE1cMjU1I1wpKTEwOCA4NCBRIEYwIC0uNChXaSkxNDQgOTYKK1MgLjQ4MSh0aG91dCBhIG51bWVyaWMgYXIpLjQgRiAuNDgxKGd1bWVudCwgdGhlIHYpLS4xOCBGIC40ODEKKyhhbHVlIG9mIHRoZSByZWFkbGluZSktLjI1IEYgRjEoY29tbWVudFwyNTViZWdpbikyLjk4MSBFIEYwIC0uMjUodmEpCisyLjk4MSBHIC40OChyaWFibGUgaXMgaW5zZXJ0ZWQgYXQgdGhlKS4yNSBGKGJlKTE0NCAxMDggUSAuMDk3CisoZ2lubmluZyBvZiB0aGUgY3VycmVudCBsaW5lLiktLjE1IEYgLjA5OChJZiBhIG51bWVyaWMgYXIpNS4wOTcgRiAuMDk4CisoZ3VtZW50IGlzIHN1cHBsaWVkLCB0aGlzIGNvbW1hbmQgYWN0cyBhcyBhIHRvZ2dsZTopLS4xOCBGKGlmKTUuMDk4IEUKKy4zMjIodGhlIGNoYXJhY3RlcnMgYXQgdGhlIGJlKTE0NCAxMjAgUiAuMzIxCisoZ2lubmluZyBvZiB0aGUgbGluZSBkbyBub3QgbWF0Y2ggdGhlIHYpLS4xNSBGIC4zMjEoYWx1ZSBvZiktLjI1IEYgRjEKKyhjb21tZW50XDI1NWJlZ2luKTIuODIxIEUgRjAgMi44MjEoLHQpQyAuMzIxKGhlIHYpLTIuODIxIEYgLjMyMShhbHVlIGlzKQorLS4yNSBGIDEuMDEzKGluc2VydGVkLCBvdGhlcndpc2UgdGhlIGNoYXJhY3RlcnMgaW4pMTQ0IDEzMiBSIEYxCisoY29tbWVudC1iZWdpbikzLjUxNCBFIEYwIDEuMDE0KGFyZSBkZWxldGVkIGZyb20gdGhlIGJlKTMuNTE0IEYgMS4wMTQKKyhnaW5uaW5nIG9mIHRoZSBsaW5lLiktLjE1IEYgMS40NjkKKyhJbiBlaXRoZXIgY2FzZSwgdGhlIGxpbmUgaXMgYWNjZXB0ZWQgYXMgaWYgYSBuZSkxNDQgMTQ0IFIgMS40NjgKKyh3bGluZSBoYWQgYmVlbiB0eXBlZC4pLS4yNSBGIDEuNDY4KFRoZSBkZWYpNi40NjggRiAxLjQ2OChhdWx0IHYpLS4xIEYKKzEuNDY4KGFsdWUgb2YpLS4yNSBGIEYxKGNvbS0pMy45NjggRShtZW50XDI1NWJlZ2luKTE0NCAxNTYgUSBGMChtYWspCisyLjk4MiBFIC40ODMoZXMgdGhlIGN1cnJlbnQgbGluZSBhIHNoZWxsIGNvbW1lbnQuKS0uMSBGIC40ODMKKyhJZiBhIG51bWVyaWMgYXIpNS40ODMgRiAuNDgzKGd1bWVudCBjYXVzZXMgdGhlIGNvbW1lbnQpLS4xOCBGCisoY2hhcmFjdGVyIHRvIGJlIHJlbW8pMTQ0IDE2OCBRIC0uMTUodmUpLS4xNSBHKGQsIHRoZSBsaW5lIHdpbGwgYmUgZSkuMTUKK0UgLS4xNSh4ZSktLjE1IEcoY3V0ZWQgYnkgdGhlIHNoZWxsLikuMTUgRSBGMShkdW1wXDI1NWZ1bmN0aW9ucykxMDggMTgwCitRIEYwIC42MjcoUHJpbnQgYWxsIG9mIHRoZSBmdW5jdGlvbnMgYW5kIHRoZWlyIGspMTQ0IDE5MiBSIC45MjcgLS4xNQorKGV5IGIpLS4xIEggLjYyNihpbmRpbmdzIHRvIHRoZSByZWFkbGluZSBvdXRwdXQgc3RyZWFtLikuMTUgRiAuNjI2CisoSWYgYSBudW1lcmljIGFyKTUuNjI2IEYoZ3UtKS0uMTggRQorKG1lbnQgaXMgc3VwcGxpZWQsIHRoZSBvdXRwdXQgaXMgZm9ybWF0dGVkIGluIHN1Y2ggYSB3KTE0NCAyMDQgUQogKGF5IHRoYXQgaXQgY2FuIGJlIG1hZGUgcGFydCBvZiBhbiktLjEgRS9GMiAxMC9UaW1lcy1JdGFsaWNAMCBTRihpbnB1dHIpCi0yLjUgRShjKS0uMzcgRSBGMChcMjE0bGUuKTIuNSBFIEYxKGR1bXBcMjU1bWFjcikxMDggMTIwIFEob3MpLS4xOCBFIEYwCi0uNzU2KFByaW50IGFsbCBvZiB0aGUgcmVhZGxpbmUgaykxNDQgMTMyIFIgMS4wNTYgLS4xNShleSBzKS0uMSBIIC43NTYKLShlcXVlbmNlcyBib3VuZCB0byBtYWNyb3MgYW5kIHRoZSBzdHJpbmdzIHRoZSkuMTUgRiAzLjI1Nih5byktLjE1IEcKLTMuMjU2KHVwdXQuIElmKS0zLjI1NiBGIDMuMjU1KGFuKTMuMjU1IEcodW1lcmljKS0zLjI1NSBFKGFyKTE0NCAxNDQgUQorMi41IEUoYyktLjM3IEUgRjAoXDIxNGxlLikyLjUgRSBGMShkdW1wXDI1NXYpMTA4IDIxNiBRKGFyaWFibGVzKS0uMSBFIEYwCisuMjgzKFByaW50IGFsbCBvZiB0aGUgc2V0dGFibGUgdikxNDQgMjI4IFIgLjI4MyhhcmlhYmxlcyBhbmQgdGhlaXIgdikKKy0uMjUgRiAuMjgzKGFsdWVzIHRvIHRoZSByZWFkbGluZSBvdXRwdXQgc3RyZWFtLiktLjI1IEYgLjI4MworKElmIGEgbnVtZXJpYyBhcik1LjI4MyBGKGd1LSktLjE4IEUKKyhtZW50IGlzIHN1cHBsaWVkLCB0aGUgb3V0cHV0IGlzIGZvcm1hdHRlZCBpbiBzdWNoIGEgdykxNDQgMjQwIFEKKyhheSB0aGF0IGl0IGNhbiBiZSBtYWRlIHBhcnQgb2YgYW4pLS4xIEUgRjIoaW5wdXRyKTIuNSBFKGMpLS4zNyBFIEYwCisoXDIxNGxlLikyLjUgRSBGMShkdW1wXDI1NW1hY3IpMTA4IDI1MiBRKG9zKS0uMTggRSBGMCAuNTkzCisoUHJpbnQgYWxsIG9mIHRoZSByZWFkbGluZSBrKTE0NCAyNjQgUiAuODkzIC0uMTUoZXkgcyktLjEgSCAuNTkyCisoZXF1ZW5jZXMgYm91bmQgdG8gbWFjcm9zIGFuZCB0aGUgc3RyaW5ncyB0aGUpLjE1IEYgMy4wOTIoeW8pLS4xNSBHCiszLjA5Mih1dHB1dC4gSWYpLTMuMDkyIEYgMy4wOTIoYW4pMy4wOTIgRyh1bWVyaWMpLTMuMDkyIEUoYXIpMTQ0IDI3NiBRCiAuNTI4KGd1bWVudCBpcyBzdXBwbGllZCwgdGhlIG91dHB1dCBpcyBmb3JtYXR0ZWQgaW4gc3VjaCBhIHcpLS4xOCBGIC41MjgKIChheSB0aGF0IGl0IGNhbiBiZSBtYWRlIHBhcnQgb2YgYW4pLS4xIEYgRjIoaW5wdXRyKTMuMDI4IEUoYyktLjM3IEUgRjAKLShcMjE0bGUuKTE0NCAxNTYgUSBGMShlbWFjc1wyNTVlZGl0aW5nXDI1NW1vZGUgXChDXDI1NWVcKSkxMDggMTY4IFEgRjAKLShXaGVuIGluKTE0NCAxODAgUSBGMSh2aSkyLjUgRSBGMChjb21tYW5kIG1vZGUsIHRoaXMgY2F1c2VzIGEgc3dpdGNoIHRvKQorKFwyMTRsZS4pMTQ0IDI4OCBRIEYxKGVtYWNzXDI1NWVkaXRpbmdcMjU1bW9kZSBcKENcMjU1ZVwpKTEwOCAzMDAgUSBGMAorKFdoZW4gaW4pMTQ0IDMxMiBRIEYxKHZpKTIuNSBFIEYwKGNvbW1hbmQgbW9kZSwgdGhpcyBjYXVzZXMgYSBzd2l0Y2ggdG8pCiAyLjUgRSBGMShlbWFjcykyLjUgRSBGMChlZGl0aW5nIG1vZGUuKTIuNSBFIEYxCi0odmlcMjU1ZWRpdGluZ1wyNTVtb2RlIFwoTVwyNTVDXDI1NWpcKSkxMDggMTkyIFEgRjAoV2hlbiBpbikxNDQgMjA0IFEgRjEKKyh2aVwyNTVlZGl0aW5nXDI1NW1vZGUgXChNXDI1NUNcMjU1alwpKTEwOCAzMjQgUSBGMChXaGVuIGluKTE0NCAzMzYgUSBGMQogKGVtYWNzKTIuNSBFIEYwKGVkaXRpbmcgbW9kZSwgdGhpcyBjYXVzZXMgYSBzd2l0Y2ggdG8pMi41IEUgRjEodmkpMi41IEUKLUYwKGVkaXRpbmcgbW9kZS4pMi41IEUvRjMgMTAuOTUvVGltZXMtQm9sZEAwIFNGKERFRik3MiAyMjAuOCBRIC0uNTQ4KEFVKQorRjAoZWRpdGluZyBtb2RlLikyLjUgRS9GMyAxMC45NS9UaW1lcy1Cb2xkQDAgU0YoREVGKTcyIDM1Mi44IFEgLS41NDgoQVUpCiAtLjk4NiBHIDIuMDE0IC0xLjAwNyhMVCBLKS41NDggSChFWSBCSU5ESU5HUykxLjAwNyBFIEYwIC4wNjUoVGhlIGZvbGxvKQotMTA4IDIzMi44IFIgLjA2NSh3aW5nIGlzIGEgbGlzdCBvZiB0aGUgZGVmKS0uMjUgRiAuMDY1CisxMDggMzY0LjggUiAuMDY1KHdpbmcgaXMgYSBsaXN0IG9mIHRoZSBkZWYpLS4yNSBGIC4wNjUKIChhdWx0IGVtYWNzIGFuZCB2aSBiaW5kaW5ncy4pLS4xIEYgLjA2NAotKENoYXJhY3RlcnMgd2l0aCB0aGUgZWlnaHRoIGJpdCBzZXQgYXJlIHdyaXR0ZW4gYXMpNS4wNjQgRiAuNjE1Ci0oTVwyNTU8Y2hhcmFjdGVyPiwgYW5kIGFyZSByZWZlcnJlZCB0byBhcykxMDggMjQ0LjggUiBGMihtZXRhXDIxNGVkKQotMy4xMTUgRSBGMCAzLjExNShjaGFyYWN0ZXJzLiBUaGUpMy4xMTUgRiAuNjE2Ci0ocHJpbnRhYmxlIEFTQ0lJIGNoYXJhY3RlcnMgbm90IG1lbnRpb25lZCkzLjExNiBGIDEuMTE2Ci0oaW4gdGhlIGxpc3Qgb2YgZW1hY3Mgc3RhbmRhcmQgYmluZGluZ3MgYXJlIGJvdW5kIHRvIHRoZSkxMDggMjU2LjggUiBGMQorKENoYXJhY3RlcnMgd2l0aCB0aGUgZWlnaHRoIGJpdCBzZXQgYXJlIHdyaXR0ZW4gYXMpNS4wNjQgRiAuNTI3CisoTVwyNTU8Y2hhcmFjdGVyPiwgYW5kIGFyZSByZWZlcnJlZCB0byBhcykxMDggMzc2LjggUiBGMihtZXRhXDIxNGVkKQorMy40MDcgRSBGMCAzLjAyNyhjaGFyYWN0ZXJzLiBUaGUpMy43OTcgRiAuNTI3CisocHJpbnRhYmxlIEFTQ0lJIGNoYXJhY3RlcnMgbm90IG1lbnRpb25lZCkzLjAyNyBGIDEuMTE2CisoaW4gdGhlIGxpc3Qgb2YgZW1hY3Mgc3RhbmRhcmQgYmluZGluZ3MgYXJlIGJvdW5kIHRvIHRoZSkxMDggMzg4LjggUiBGMQogKHNlbGZcMjU1aW5zZXJ0KTMuNjE1IEUgRjAgMS4xMTUoZnVuY3Rpb24sIHdoaWNoIGp1c3QgaW5zZXJ0cyB0aGUgZ2kpCiAzLjYxNSBGIC0uMTUodmUpLS4yNSBHKG4pLjE1IEUgLjk0NShjaGFyYWN0ZXIgaW50byB0aGUgaW5wdXQgbGluZS4pMTA4Ci0yNjguOCBSIC45NDUoSW4gdmkgaW5zZXJ0aW9uIG1vZGUsIGFsbCBjaGFyYWN0ZXJzIG5vdCBzcGVjaVwyMTRjYWxseSBtZVwKLW50aW9uZWQgYXJlIGJvdW5kIHRvKTUuOTQ1IEYgRjEoc2VsZlwyNTVpbnNlcnQpMTA4IDI4MC44IFEgRjAgNS4zNTkoLkMpQworNDAwLjggUiAuOTQ1KEluIHZpIGluc2VydGlvbiBtb2RlLCBhbGwgY2hhcmFjdGVycyBub3Qgc3BlY2lcMjE0Y2FsbHkgbWVcCitudGlvbmVkIGFyZSBib3VuZCB0byk1Ljk0NSBGIEYxKHNlbGZcMjU1aW5zZXJ0KTEwOCA0MTIuOCBRIEYwIDUuMzU5KC5DKUMKIC4zNTkoaGFyYWN0ZXJzIGFzc2lnbmVkIHRvIHNpZ25hbCBnZW5lcmF0aW9uIGJ5KS01LjM1OSBGIEYyKHN0dHkpMi44NTkgRQogRjAgLjM1OShcKDFcKSBvciB0aGUgdGVybWluYWwgZHJpKS4zMiBGIC0uMTUodmUpLS4yNSBHIDEuMTU5IC0uNChyLCBzKQotLjE1IEggLjM1OCh1Y2ggYXMgQy1aIG9yIEMtQywpLjQgRiAuMTg3KHJldGFpbiB0aGF0IGZ1bmN0aW9uLikxMDggMjkyLjgKKy4xNSBIIC4zNTgodWNoIGFzIEMtWiBvciBDLUMsKS40IEYgLjE4NyhyZXRhaW4gdGhhdCBmdW5jdGlvbi4pMTA4IDQyNC44CiBSIC4xODcoVXBwZXIgYW5kIGxvKTUuMTg3IEYgLjE4OCh3ZXIgY2FzZSBtZXRhXDIxNGVkIGNoYXJhY3RlcnMgYXJlIGJvdVwKLW5kIHRvIHRoZSBzYW1lIGZ1bmN0aW9uIGluIHRoZSBlbWFjcyktLjI1IEYgLjMwNShtb2RlIG1ldGEgaykxMDggMzA0LjggUgorbmQgdG8gdGhlIHNhbWUgZnVuY3Rpb24gaW4gdGhlIGVtYWNzKS0uMjUgRiAuMzA1KG1vZGUgbWV0YSBrKTEwOCA0MzYuOCBSCiAtLjE1KGV5KS0uMSBHIDIuODA1KG1hcC4gVGhlKS4xNSBGIC4zMDUocmVtYWluaW5nIGNoYXJhY3RlcnMgYXJlIHVuYm91blwKIGQsIHdoaWNoIGNhdXNlcyByZWFkbGluZSB0byByaW5nIHRoZSBiZWxsIFwoc3ViamVjdCkyLjgwNSBGCi0odG8gdGhlIHNldHRpbmcgb2YgdGhlKTEwOCAzMTYuOCBRIEYxKGJlbGxcMjU1c3R5bGUpMi41IEUgRjAgLS4yNSh2YSkyLjUKLUcocmlhYmxlXCkuKS4yNSBFIEYxKEVtYWNzIE1vZGUpODcgMzMzLjYgUSBGMChFbWFjcyBTdGFuZGFyZCBiaW5kaW5ncykKLTE1MS4yIDM0NS42IFEgMi41KCJDLUAiIHNldC1tYXJrKTE1MS4yIDM2OS42IFIgMi41KCJDLUEiIGJlKTE1MS4yIDM4MS42Ci1SKGdpbm5pbmctb2YtbGluZSktLjE1IEUgMi41KCJDLUIiIGJhY2t3KTE1MS4yIDM5My42IFIoYXJkLWNoYXIpLS4xIEUKLTIuNSgiQy1EIiBkZWxldGUtY2hhcikxNTEuMiA0MDUuNiBSIDIuNSgiQy1FIiBlbmQtb2YtbGluZSkxNTEuMiA0MTcuNiBSCi0yLjUoIkMtRiIgZm9ydykxNTEuMiA0MjkuNiBSKGFyZC1jaGFyKS0uMSBFIDIuNSgiQy1HIiBhYm9ydCkxNTEuMiA0NDEuNgotUiAyLjUoIkMtSCIgYmFja3cpMTUxLjIgNDUzLjYgUihhcmQtZGVsZXRlLWNoYXIpLS4xIEUgMi41Ci0oIkMtSSIgY29tcGxldGUpMTUxLjIgNDY1LjYgUiAyLjUoIkMtSiIgYWNjZXB0LWxpbmUpMTUxLjIgNDc3LjYgUiAyLjUKLSgiQy1LIiBraWxsLWxpbmUpMTUxLjIgNDg5LjYgUiAyLjUoIkMtTCIgY2xlYXIpMTUxLjIgNTAxLjYgUigtc2NyZWVuKS0uMgotRSAyLjUoIkMtTSIgYWNjZXB0LWxpbmUpMTUxLjIgNTEzLjYgUiAyLjUoIkMtTiIgbmUpMTUxLjIgNTI1LjYgUgotKHh0LWhpc3RvcnkpLS4xNSBFIDIuNSgiQy1QIiBwcmUpMTUxLjIgNTM3LjYgUih2aW91cy1oaXN0b3J5KS0uMjUgRSAyLjUKLSgiQy1RIiBxdW90ZWQtaW5zZXJ0KTE1MS4yIDU0OS42IFIgMi41KCJDLVIiIHJlKTE1MS4yIDU2MS42IFIgLS4xNSh2ZSkKLS0uMjUgRyhyc2Utc2VhcmNoLWhpc3RvcnkpLjE1IEUgMi41KCJDLVMiIGZvcncpMTUxLjIgNTczLjYgUgotKGFyZC1zZWFyY2gtaGlzdG9yeSktLjEgRSAyLjUoIkMtVCIgdHJhbnNwb3NlLWNoYXJzKTE1MS4yIDU4NS42IFIgMi41Ci0oIkMtVSIgdW5peC1saW5lLWRpc2NhcmQpMTUxLjIgNTk3LjYgUiAyLjUoIkMtViIgcXVvdGVkLWluc2VydCkxNTEuMgotNjA5LjYgUiAyLjUoIkMtVyIgdW5peC13KTE1MS4yIDYyMS42IFIob3JkLXJ1Ym91dCktLjEgRSAyLjUoIkMtWSIgeWFuaykKLTE1MS4yIDYzMy42IFIgMi41KCJDLV0iIGNoYXJhY3RlcikxNTEuMiA2NDUuNiBSKC1zZWFyY2gpLS4yIEUgMi41Ci0oIkMtXyIgdW5kbykxNTEuMiA2NTcuNiBSIDMuMzMzKCIiKTE1MS4yIDY2OS42IFModG8gIi8iKS0uODMzIEUKLShzZWxmLWluc2VydCk1IEUgMi41KCIwIiB0bykxNTEuMiA2ODEuNiBSIDIuNSgiOSIgc2VsZi1pbnNlcnQpMi41IEYgMi41Ci0oIjoiIHRvKTE1MS4yIDY5My42IFIgMi41KCJ+IiBzZWxmLWluc2VydCkyLjUgRiAyLjUoIkMtPyIgYmFja3cpMTUxLjIKLTcwNS42IFIoYXJkLWRlbGV0ZS1jaGFyKS0uMSBFKEVtYWNzIE1ldGEgYmluZGluZ3MpMTUxLjIgNzIyLjQgUQotKEdOVSBSZWFkbGluZSA0LjMpNzIgNzY4IFEoMjAwMiBKYW51YXJ5IDIyKTEyNi4yNCBFKDEwKTE5MC45NSBFIEVQCisodG8gdGhlIHNldHRpbmcgb2YgdGhlKTEwOCA0NDguOCBRIEYxKGJlbGxcMjU1c3R5bGUpMi41IEUgRjAgLS4yNSh2YSkyLjUKK0cocmlhYmxlXCkuKS4yNSBFIEYxKEVtYWNzIE1vZGUpODcgNDY1LjYgUSBGMChFbWFjcyBTdGFuZGFyZCBiaW5kaW5ncykKKzE1MS4yIDQ3Ny42IFEgMi41KCJDLUAiIHNldC1tYXJrKTE1MS4yIDUwMS42IFIgMi41KCJDLUEiIGJlKTE1MS4yIDUxMy42CitSKGdpbm5pbmctb2YtbGluZSktLjE1IEUgMi41KCJDLUIiIGJhY2t3KTE1MS4yIDUyNS42IFIoYXJkLWNoYXIpLS4xIEUKKzIuNSgiQy1EIiBkZWxldGUtY2hhcikxNTEuMiA1MzcuNiBSIDIuNSgiQy1FIiBlbmQtb2YtbGluZSkxNTEuMiA1NDkuNiBSCisyLjUoIkMtRiIgZm9ydykxNTEuMiA1NjEuNiBSKGFyZC1jaGFyKS0uMSBFIDIuNSgiQy1HIiBhYm9ydCkxNTEuMiA1NzMuNgorUiAyLjUoIkMtSCIgYmFja3cpMTUxLjIgNTg1LjYgUihhcmQtZGVsZXRlLWNoYXIpLS4xIEUgMi41CisoIkMtSSIgY29tcGxldGUpMTUxLjIgNTk3LjYgUiAyLjUoIkMtSiIgYWNjZXB0LWxpbmUpMTUxLjIgNjA5LjYgUiAyLjUKKygiQy1LIiBraWxsLWxpbmUpMTUxLjIgNjIxLjYgUiAyLjUoIkMtTCIgY2xlYXIpMTUxLjIgNjMzLjYgUigtc2NyZWVuKS0uMgorRSAyLjUoIkMtTSIgYWNjZXB0LWxpbmUpMTUxLjIgNjQ1LjYgUiAyLjUoIkMtTiIgbmUpMTUxLjIgNjU3LjYgUgorKHh0LWhpc3RvcnkpLS4xNSBFIDIuNSgiQy1QIiBwcmUpMTUxLjIgNjY5LjYgUih2aW91cy1oaXN0b3J5KS0uMjUgRSAyLjUKKygiQy1RIiBxdW90ZWQtaW5zZXJ0KTE1MS4yIDY4MS42IFIgMi41KCJDLVIiIHJlKTE1MS4yIDY5My42IFIgLS4xNSh2ZSkKKy0uMjUgRyhyc2Utc2VhcmNoLWhpc3RvcnkpLjE1IEUgMi41KCJDLVMiIGZvcncpMTUxLjIgNzA1LjYgUgorKGFyZC1zZWFyY2gtaGlzdG9yeSktLjEgRSAyLjUoIkMtVCIgdHJhbnNwb3NlLWNoYXJzKTE1MS4yIDcxNy42IFIgMi41CisoIkMtVSIgdW5peC1saW5lLWRpc2NhcmQpMTUxLjIgNzI5LjYgUihHTlUgUmVhZGxpbmUgNS4xLWJldGExKTcyIDc2OCBRCisoMjAwNSBTZXAgMTMpMTA5LjMgRSgxMCkxOTkgRSAwIENnIEVQCiAlJVBhZ2U6IDExIDExCiAlJUJlZ2luUGFnZVNldHVwCiBCUAogJSVFbmRQYWdlU2V0dXAKIC9GMCAxMC9UaW1lcy1Sb21hbkAwIFNGIDM0Mi4yKFJFQURMSU5FXCgzXCkgUkVBRExJTkVcKDNcKSk3MiA0OCBSIDIuNQotKCJNLUMtRyIgYWJvcnQpMTUxLjIgODQgUiAyLjUoIk0tQy1IIiBiYWNrdykxNTEuMiA5NiBSKGFyZC1raWxsLXcpLS4xIEUKLShvcmQpLS4xIEUgMi41KCJNLUMtSSIgdGFiLWluc2VydCkxNTEuMiAxMDggUiAyLjUKLSgiTS1DLUoiIHZpLWVkaXRpbmctbW9kZSkxNTEuMiAxMjAgUiAyLjUoIk0tQy1NIiB2aS1lZGl0aW5nLW1vZGUpMTUxLjIKLTEzMiBSIDIuNSgiTS1DLVIiIHJlKTE1MS4yIDE0NCBSIC0uMTUodmUpLS4yNSBHKHJ0LWxpbmUpLjE1IEUgMi41Ci0oIk0tQy1ZIiB5YW5rLW50aC1hcikxNTEuMiAxNTYgUihnKS0uMTggRSAyLjUoIk0tQy1bIiBjb21wbGV0ZSkxNTEuMiAxNjgKLVIgMi41KCJNLUMtXSIgY2hhcmFjdGVyKTE1MS4yIDE4MCBSKC1zZWFyY2gtYmFja3cpLS4yIEUoYXJkKS0uMSBFIDIuNQotKCJNLXNwYWNlIiBzZXQtbWFyaykxNTEuMiAxOTIgUiAyLjUoIk0tIyIgaW5zZXJ0LWNvbW1lbnQpMTUxLjIgMjA0IFIgMi41Ci0oIk0tJiIgdGlsZGUtZSkxNTEuMiAyMTYgUih4cGFuZCktLjE1IEUgMi41KCJNLSoiIGluc2VydC1jb21wbGV0aW9ucykKLTE1MS4yIDIyOCBSIDIuNSgiTS0tIiBkaWdpdC1hcikxNTEuMiAyNDAgUihndW1lbnQpLS4xOCBFIDIuNQotKCJNLS4iIHlhbmstbGFzdC1hcikxNTEuMiAyNTIgUihnKS0uMTggRSAyLjUoIk0tMCIgZGlnaXQtYXIpMTUxLjIgMjY0IFIKLShndW1lbnQpLS4xOCBFIDIuNSgiTS0xIiBkaWdpdC1hcikxNTEuMiAyNzYgUihndW1lbnQpLS4xOCBFIDIuNQotKCJNLTIiIGRpZ2l0LWFyKTE1MS4yIDI4OCBSKGd1bWVudCktLjE4IEUgMi41KCJNLTMiIGRpZ2l0LWFyKTE1MS4yIDMwMCBSCi0oZ3VtZW50KS0uMTggRSAyLjUoIk0tNCIgZGlnaXQtYXIpMTUxLjIgMzEyIFIoZ3VtZW50KS0uMTggRSAyLjUKLSgiTS01IiBkaWdpdC1hcikxNTEuMiAzMjQgUihndW1lbnQpLS4xOCBFIDIuNSgiTS02IiBkaWdpdC1hcikxNTEuMiAzMzYgUgotKGd1bWVudCktLjE4IEUgMi41KCJNLTciIGRpZ2l0LWFyKTE1MS4yIDM0OCBSKGd1bWVudCktLjE4IEUgMi41Ci0oIk0tOCIgZGlnaXQtYXIpMTUxLjIgMzYwIFIoZ3VtZW50KS0uMTggRSAyLjUoIk0tOSIgZGlnaXQtYXIpMTUxLjIgMzcyIFIKLShndW1lbnQpLS4xOCBFIDIuNSgiTS08IiBiZSkxNTEuMiAzODQgUihnaW5uaW5nLW9mLWhpc3RvcnkpLS4xNSBFIDIuNQotKCJNLT0iIHBvc3NpYmxlLWNvbXBsZXRpb25zKTE1MS4yIDM5NiBSIDIuNSgiTS0+IiBlbmQtb2YtaGlzdG9yeSkxNTEuMgotNDA4IFIgMi41KCJNLT8iIHBvc3NpYmxlLWNvbXBsZXRpb25zKTE1MS4yIDQyMCBSIDIuNSgiTS1CIiBiYWNrdykxNTEuMgotNDMyIFIoYXJkLXcpLS4xIEUob3JkKS0uMSBFIDIuNSgiTS1DIiBjYXBpdGFsaXplLXcpMTUxLjIgNDQ0IFIob3JkKS0uMSBFCi0yLjUoIk0tRCIga2lsbC13KTE1MS4yIDQ1NiBSKG9yZCktLjEgRSAyLjUoIk0tRiIgZm9ydykxNTEuMiA0NjggUihhcmQtdykKLS0uMSBFKG9yZCktLjEgRSAyLjUoIk0tTCIgZG8pMTUxLjIgNDgwIFIod25jYXNlLXcpLS4yNSBFKG9yZCktLjEgRSAyLjUKLSgiTS1OIiBub24taW5jcmVtZW50YWwtZm9ydykxNTEuMiA0OTIgUihhcmQtc2VhcmNoLWhpc3RvcnkpLS4xIEUgMi41Ci0oIk0tUCIgbm9uLWluY3JlbWVudGFsLXJlKTE1MS4yIDUwNCBSIC0uMTUodmUpLS4yNSBHKHJzZS1zZWFyY2gtaGlzdG9yeSkKLS4xNSBFIDIuNSgiTS1SIiByZSkxNTEuMiA1MTYgUiAtLjE1KHZlKS0uMjUgRyhydC1saW5lKS4xNSBFIDIuNQotKCJNLVQiIHRyYW5zcG9zZS13KTE1MS4yIDUyOCBSKG9yZHMpLS4xIEUgMi41KCJNLVUiIHVwY2FzZS13KTE1MS4yIDU0MCBSCi0ob3JkKS0uMSBFIDIuNSgiTS1ZIiB5YW5rLXBvcCkxNTEuMiA1NTIgUiAyLjUKLSgiTS1cXCIgZGVsZXRlLWhvcml6b250YWwtc3BhY2UpMTUxLjIgNTY0IFIgMi41KCJNLX4iIHRpbGRlLWUpMTUxLjIgNTc2Ci1SKHhwYW5kKS0uMTUgRSAyLjUoIk0tQy0/IiBiYWNrdykxNTEuMiA1ODggUihhcmQta2lsbC13KS0uMSBFKG9yZCktLjEgRQotMi41KCJNLV8iIHlhbmstbGFzdC1hcikxNTEuMiA2MDAgUihnKS0uMTggRShFbWFjcyBDb250cm9sLVggYmluZGluZ3MpCi0xNTEuMiA2MTYuOCBRIDIuNSgiQy1YQy1HIiBhYm9ydCkxNTEuMiA2NDAuOCBSIDIuNQotKCJDLVhDLVIiIHJlLXJlYWQtaW5pdC1cMjE0bGUpMTUxLjIgNjUyLjggUiAyLjUoIkMtWEMtVSIgdW5kbykxNTEuMgotNjY0LjggUiAyLjUoIkMtWEMtWCIgZSkxNTEuMiA2NzYuOCBSKHhjaGFuZ2UtcG9pbnQtYW5kLW1hcmspLS4xNSBFIDIuNQotKCJDLVhcKCIgc3RhcnQta2JkLW1hY3JvKTE1MS4yIDY4OC44IFIgMi41KCJDLVhcKSIgZW5kLWtiZC1tYWNybykxNTEuMgotNzAwLjggUiAyLjUoIkMtWEUiIGNhbGwtbGFzdC1rYmQtbWFjcm8pMTUxLjIgNzEyLjggUiAyLjUoIkMtWEMtPyIgYmFja3cpCi0xNTEuMiA3MjQuOCBSKGFyZC1raWxsLWxpbmUpLS4xIEUoR05VIFJlYWRsaW5lIDQuMyk3MiA3NjggUQotKDIwMDIgSmFudWFyeSAyMikxMjYuMjQgRSgxMSkxOTAuOTUgRSBFUAorKCJDLVYiIHF1b3RlZC1pbnNlcnQpMTUxLjIgODQgUiAyLjUoIkMtVyIgdW5peC13KTE1MS4yIDk2IFIob3JkLXJ1Ym91dCkKKy0uMSBFIDIuNSgiQy1ZIiB5YW5rKTE1MS4yIDEwOCBSIDIuNSgiQy1dIiBjaGFyYWN0ZXIpMTUxLjIgMTIwIFIKKygtc2VhcmNoKS0uMiBFIDIuNSgiQy1fIiB1bmRvKTE1MS4yIDEzMiBSIDMuMzMzKCIiKTE1MS4yIDE0NCBTKHRvICIvIikKKy0uODMzIEUoc2VsZi1pbnNlcnQpNSBFIDIuNSgiMCIgdG8pMTUxLjIgMTU2IFIgMi41KCI5IiBzZWxmLWluc2VydCkyLjUgRgorMi41KCI6IiB0bykxNTEuMiAxNjggUiAyLjUoIn4iIHNlbGYtaW5zZXJ0KTIuNSBGIDIuNSgiQy0/IiBiYWNrdykxNTEuMgorMTgwIFIoYXJkLWRlbGV0ZS1jaGFyKS0uMSBFKEVtYWNzIE1ldGEgYmluZGluZ3MpMTUxLjIgMTk2LjggUSAyLjUKKygiTS1DLUciIGFib3J0KTE1MS4yIDIyMC44IFIgMi41KCJNLUMtSCIgYmFja3cpMTUxLjIgMjMyLjggUihhcmQta2lsbC13KQorLS4xIEUob3JkKS0uMSBFIDIuNSgiTS1DLUkiIHRhYi1pbnNlcnQpMTUxLjIgMjQ0LjggUiAyLjUKKygiTS1DLUoiIHZpLWVkaXRpbmctbW9kZSkxNTEuMiAyNTYuOCBSIDIuNSgiTS1DLU0iIHZpLWVkaXRpbmctbW9kZSkxNTEuMgorMjY4LjggUiAyLjUoIk0tQy1SIiByZSkxNTEuMiAyODAuOCBSIC0uMTUodmUpLS4yNSBHKHJ0LWxpbmUpLjE1IEUgMi41CisoIk0tQy1ZIiB5YW5rLW50aC1hcikxNTEuMiAyOTIuOCBSKGcpLS4xOCBFIDIuNSgiTS1DLVsiIGNvbXBsZXRlKTE1MS4yCiszMDQuOCBSIDIuNSgiTS1DLV0iIGNoYXJhY3RlcikxNTEuMiAzMTYuOCBSKC1zZWFyY2gtYmFja3cpLS4yIEUoYXJkKS0uMQorRSAyLjUoIk0tc3BhY2UiIHNldC1tYXJrKTE1MS4yIDMyOC44IFIgMi41KCJNLSMiIGluc2VydC1jb21tZW50KTE1MS4yCiszNDAuOCBSIDIuNSgiTS0mIiB0aWxkZS1lKTE1MS4yIDM1Mi44IFIoeHBhbmQpLS4xNSBFIDIuNQorKCJNLSoiIGluc2VydC1jb21wbGV0aW9ucykxNTEuMiAzNjQuOCBSIDIuNSgiTS0tIiBkaWdpdC1hcikxNTEuMiAzNzYuOCBSCisoZ3VtZW50KS0uMTggRSAyLjUoIk0tLiIgeWFuay1sYXN0LWFyKTE1MS4yIDM4OC44IFIoZyktLjE4IEUgMi41CisoIk0tMCIgZGlnaXQtYXIpMTUxLjIgNDAwLjggUihndW1lbnQpLS4xOCBFIDIuNSgiTS0xIiBkaWdpdC1hcikxNTEuMgorNDEyLjggUihndW1lbnQpLS4xOCBFIDIuNSgiTS0yIiBkaWdpdC1hcikxNTEuMiA0MjQuOCBSKGd1bWVudCktLjE4IEUgMi41CisoIk0tMyIgZGlnaXQtYXIpMTUxLjIgNDM2LjggUihndW1lbnQpLS4xOCBFIDIuNSgiTS00IiBkaWdpdC1hcikxNTEuMgorNDQ4LjggUihndW1lbnQpLS4xOCBFIDIuNSgiTS01IiBkaWdpdC1hcikxNTEuMiA0NjAuOCBSKGd1bWVudCktLjE4IEUgMi41CisoIk0tNiIgZGlnaXQtYXIpMTUxLjIgNDcyLjggUihndW1lbnQpLS4xOCBFIDIuNSgiTS03IiBkaWdpdC1hcikxNTEuMgorNDg0LjggUihndW1lbnQpLS4xOCBFIDIuNSgiTS04IiBkaWdpdC1hcikxNTEuMiA0OTYuOCBSKGd1bWVudCktLjE4IEUgMi41CisoIk0tOSIgZGlnaXQtYXIpMTUxLjIgNTA4LjggUihndW1lbnQpLS4xOCBFIDIuNSgiTS08IiBiZSkxNTEuMiA1MjAuOCBSCisoZ2lubmluZy1vZi1oaXN0b3J5KS0uMTUgRSAyLjUoIk0tPSIgcG9zc2libGUtY29tcGxldGlvbnMpMTUxLjIgNTMyLjggUgorMi41KCJNLT4iIGVuZC1vZi1oaXN0b3J5KTE1MS4yIDU0NC44IFIgMi41KCJNLT8iIHBvc3NpYmxlLWNvbXBsZXRpb25zKQorMTUxLjIgNTU2LjggUiAyLjUoIk0tQiIgYmFja3cpMTUxLjIgNTY4LjggUihhcmQtdyktLjEgRShvcmQpLS4xIEUgMi41CisoIk0tQyIgY2FwaXRhbGl6ZS13KTE1MS4yIDU4MC44IFIob3JkKS0uMSBFIDIuNSgiTS1EIiBraWxsLXcpMTUxLjIgNTkyLjgKK1Iob3JkKS0uMSBFIDIuNSgiTS1GIiBmb3J3KTE1MS4yIDYwNC44IFIoYXJkLXcpLS4xIEUob3JkKS0uMSBFIDIuNQorKCJNLUwiIGRvKTE1MS4yIDYxNi44IFIod25jYXNlLXcpLS4yNSBFKG9yZCktLjEgRSAyLjUKKygiTS1OIiBub24taW5jcmVtZW50YWwtZm9ydykxNTEuMiA2MjguOCBSKGFyZC1zZWFyY2gtaGlzdG9yeSktLjEgRSAyLjUKKygiTS1QIiBub24taW5jcmVtZW50YWwtcmUpMTUxLjIgNjQwLjggUiAtLjE1KHZlKS0uMjUgRworKHJzZS1zZWFyY2gtaGlzdG9yeSkuMTUgRSAyLjUoIk0tUiIgcmUpMTUxLjIgNjUyLjggUiAtLjE1KHZlKS0uMjUgRworKHJ0LWxpbmUpLjE1IEUgMi41KCJNLVQiIHRyYW5zcG9zZS13KTE1MS4yIDY2NC44IFIob3JkcyktLjEgRSAyLjUKKygiTS1VIiB1cGNhc2UtdykxNTEuMiA2NzYuOCBSKG9yZCktLjEgRSAyLjUoIk0tWSIgeWFuay1wb3ApMTUxLjIgNjg4LjggUgorMi41KCJNLVxcIiBkZWxldGUtaG9yaXpvbnRhbC1zcGFjZSkxNTEuMiA3MDAuOCBSIDIuNSgiTS1+IiB0aWxkZS1lKTE1MS4yCis3MTIuOCBSKHhwYW5kKS0uMTUgRSAyLjUoIk0tQy0/IiBiYWNrdykxNTEuMiA3MjQuOCBSKGFyZC1raWxsLXcpLS4xIEUKKyhvcmQpLS4xIEUoR05VIFJlYWRsaW5lIDUuMS1iZXRhMSk3MiA3NjggUSgyMDA1IFNlcCAxMykxMDkuMyBFKDExKTE5OSBFCiswIENnIEVQCiAlJVBhZ2U6IDEyIDEyCiAlJUJlZ2luUGFnZVNldHVwCiBCUAogJSVFbmRQYWdlU2V0dXAKLS9GMCAxMC9UaW1lcy1Sb21hbkAwIFNGIDM0Mi4yKFJFQURMSU5FXCgzXCkgUkVBRExJTkVcKDNcKSk3MiA0OCBSL0YxIDEwCi0vVGltZXMtQm9sZEAwIFNGKFZJIE1vZGUgYmluZGluZ3MpODcgODQgUSBGMChWSSBJbnNlcnQgTW9kZSBmdW5jdGlvbnMpCi0xNTEuMiA5NiBRIDIuNSgiQy1EIiB2aS1lb2YtbWF5YmUpMTUxLjIgMTIwIFIgMi41KCJDLUgiIGJhY2t3KTE1MS4yIDEzMgotUihhcmQtZGVsZXRlLWNoYXIpLS4xIEUgMi41KCJDLUkiIGNvbXBsZXRlKTE1MS4yIDE0NCBSIDIuNQotKCJDLUoiIGFjY2VwdC1saW5lKTE1MS4yIDE1NiBSIDIuNSgiQy1NIiBhY2NlcHQtbGluZSkxNTEuMiAxNjggUiAyLjUKLSgiQy1SIiByZSkxNTEuMiAxODAgUiAtLjE1KHZlKS0uMjUgRyhyc2Utc2VhcmNoLWhpc3RvcnkpLjE1IEUgMi41Ci0oIkMtUyIgZm9ydykxNTEuMiAxOTIgUihhcmQtc2VhcmNoLWhpc3RvcnkpLS4xIEUgMi41Ci0oIkMtVCIgdHJhbnNwb3NlLWNoYXJzKTE1MS4yIDIwNCBSIDIuNSgiQy1VIiB1bml4LWxpbmUtZGlzY2FyZCkxNTEuMiAyMTYKLVIgMi41KCJDLVYiIHF1b3RlZC1pbnNlcnQpMTUxLjIgMjI4IFIgMi41KCJDLVciIHVuaXgtdykxNTEuMiAyNDAgUgotKG9yZC1ydWJvdXQpLS4xIEUgMi41KCJDLVkiIHlhbmspMTUxLjIgMjUyIFIgMi41KCJDLVsiIHZpLW1vKTE1MS4yIDI2NCBSCi0tLjE1KHZlKS0uMTUgRyhtZW50LW1vZGUpLjE1IEUgMi41KCJDLV8iIHVuZG8pMTUxLjIgMjc2IFIgMy4zMzMoIiIpMTUxLjIKLTI4OCBTKHRvICJ+IiktLjgzMyBFKHNlbGYtaW5zZXJ0KTUgRSAyLjUoIkMtPyIgYmFja3cpMTUxLjIgMzAwIFIKLShhcmQtZGVsZXRlLWNoYXIpLS4xIEUoVkkgQ29tbWFuZCBNb2RlIGZ1bmN0aW9ucykxNTEuMiAzMTYuOCBRIDIuNQotKCJDLUQiIHZpLWVvZi1tYXliZSkxNTEuMiAzNDAuOCBSIDIuNSgiQy1FIiBlbWFjcy1lZGl0aW5nLW1vZGUpMTUxLjIKLTM1Mi44IFIgMi41KCJDLUciIGFib3J0KTE1MS4yIDM2NC44IFIgMi41KCJDLUgiIGJhY2t3KTE1MS4yIDM3Ni44IFIKLShhcmQtY2hhciktLjEgRSAyLjUoIkMtSiIgYWNjZXB0LWxpbmUpMTUxLjIgMzg4LjggUiAyLjUoIkMtSyIga2lsbC1saW5lKQotMTUxLjIgNDAwLjggUiAyLjUoIkMtTCIgY2xlYXIpMTUxLjIgNDEyLjggUigtc2NyZWVuKS0uMiBFIDIuNQotKCJDLU0iIGFjY2VwdC1saW5lKTE1MS4yIDQyNC44IFIgMi41KCJDLU4iIG5lKTE1MS4yIDQzNi44IFIoeHQtaGlzdG9yeSkKLS0uMTUgRSAyLjUoIkMtUCIgcHJlKTE1MS4yIDQ0OC44IFIodmlvdXMtaGlzdG9yeSktLjI1IEUgMi41Ci0oIkMtUSIgcXVvdGVkLWluc2VydCkxNTEuMiA0NjAuOCBSIDIuNSgiQy1SIiByZSkxNTEuMiA0NzIuOCBSIC0uMTUodmUpCi0tLjI1IEcocnNlLXNlYXJjaC1oaXN0b3J5KS4xNSBFIDIuNSgiQy1TIiBmb3J3KTE1MS4yIDQ4NC44IFIKLShhcmQtc2VhcmNoLWhpc3RvcnkpLS4xIEUgMi41KCJDLVQiIHRyYW5zcG9zZS1jaGFycykxNTEuMiA0OTYuOCBSIDIuNQotKCJDLVUiIHVuaXgtbGluZS1kaXNjYXJkKTE1MS4yIDUwOC44IFIgMi41KCJDLVYiIHF1b3RlZC1pbnNlcnQpMTUxLjIKLTUyMC44IFIgMi41KCJDLVciIHVuaXgtdykxNTEuMiA1MzIuOCBSKG9yZC1ydWJvdXQpLS4xIEUgMi41KCJDLVkiIHlhbmspCi0xNTEuMiA1NDQuOCBSIDIuNSgiQy1fIiB2aS11bmRvKTE1MS4yIDU1Ni44IFIgLTQuMTY2IDMuMzMzKCIiIGYpMTUxLjIKLTU2OC44IFQob3J3KS0zLjMzMyBFKGFyZC1jaGFyKS0uMSBFIDIuNSgiIyIgaW5zZXJ0LWNvbW1lbnQpMTUxLjIgNTgwLjggUgotMi41KCIkIiBlbmQtb2YtbGluZSkxNTEuMiA1OTIuOCBSIDIuNSgiJSIgdmktbWF0Y2gpMTUxLjIgNjA0LjggUiAyLjUKLSgiJiIgdmktdGlsZGUtZSkxNTEuMiA2MTYuOCBSKHhwYW5kKS0uMTUgRSAyLjUoIioiIHZpLWNvbXBsZXRlKTE1MS4yCi02MjguOCBSIDIuNSgiKyIgbmUpMTUxLjIgNjQwLjggUih4dC1oaXN0b3J5KS0uMTUgRSAyLjUoIiwiIHZpLWNoYXIpMTUxLjIKLTY1Mi44IFIoLXNlYXJjaCktLjIgRSAyLjUoIi0iIHByZSkxNTEuMiA2NjQuOCBSKHZpb3VzLWhpc3RvcnkpLS4yNSBFIDIuNQotKCIuIiB2aS1yZWRvKTE1MS4yIDY3Ni44IFIgMi41KCIvIiB2aS1zZWFyY2gpMTUxLjIgNjg4LjggUiAyLjUoIjAiIGJlKQotMTUxLjIgNzAwLjggUihnaW5uaW5nLW9mLWxpbmUpLS4xNSBFKCIxIiB0byAiOSIpMTUxLjIgNzEyLjggUSh2aS1hcik1IEUKLShnLWRpZ2l0KS0uMTggRSAyLjUoIjsiIHZpLWNoYXIpMTUxLjIgNzI0LjggUigtc2VhcmNoKS0uMiBFCi0oR05VIFJlYWRsaW5lIDQuMyk3MiA3NjggUSgyMDAyIEphbnVhcnkgMjIpMTI2LjI0IEUoMTIpMTkwLjk1IEUgRVAKKy9GMCAxMC9UaW1lcy1Sb21hbkAwIFNGIDM0Mi4yKFJFQURMSU5FXCgzXCkgUkVBRExJTkVcKDNcKSk3MiA0OCBSIDIuNQorKCJNLV8iIHlhbmstbGFzdC1hcikxNTEuMiA4NCBSKGcpLS4xOCBFKEVtYWNzIENvbnRyb2wtWCBiaW5kaW5ncykxNTEuMgorMTAwLjggUSAyLjUoIkMtWEMtRyIgYWJvcnQpMTUxLjIgMTI0LjggUiAyLjUKKygiQy1YQy1SIiByZS1yZWFkLWluaXQtXDIxNGxlKTE1MS4yIDEzNi44IFIgMi41KCJDLVhDLVUiIHVuZG8pMTUxLjIKKzE0OC44IFIgMi41KCJDLVhDLVgiIGUpMTUxLjIgMTYwLjggUih4Y2hhbmdlLXBvaW50LWFuZC1tYXJrKS0uMTUgRSAyLjUKKygiQy1YXCgiIHN0YXJ0LWtiZC1tYWNybykxNTEuMiAxNzIuOCBSIDIuNSgiQy1YXCkiIGVuZC1rYmQtbWFjcm8pMTUxLjIKKzE4NC44IFIgMi41KCJDLVhFIiBjYWxsLWxhc3Qta2JkLW1hY3JvKTE1MS4yIDE5Ni44IFIgMi41KCJDLVhDLT8iIGJhY2t3KQorMTUxLjIgMjA4LjggUihhcmQta2lsbC1saW5lKS0uMSBFL0YxIDEwL1RpbWVzLUJvbGRAMCBTRgorKFZJIE1vZGUgYmluZGluZ3MpODcgMjM3LjYgUSBGMChWSSBJbnNlcnQgTW9kZSBmdW5jdGlvbnMpMTUxLjIgMjQ5LjYgUQorMi41KCJDLUQiIHZpLWVvZi1tYXliZSkxNTEuMiAyNzMuNiBSIDIuNSgiQy1IIiBiYWNrdykxNTEuMiAyODUuNiBSCisoYXJkLWRlbGV0ZS1jaGFyKS0uMSBFIDIuNSgiQy1JIiBjb21wbGV0ZSkxNTEuMiAyOTcuNiBSIDIuNQorKCJDLUoiIGFjY2VwdC1saW5lKTE1MS4yIDMwOS42IFIgMi41KCJDLU0iIGFjY2VwdC1saW5lKTE1MS4yIDMyMS42IFIgMi41CisoIkMtUiIgcmUpMTUxLjIgMzMzLjYgUiAtLjE1KHZlKS0uMjUgRyhyc2Utc2VhcmNoLWhpc3RvcnkpLjE1IEUgMi41CisoIkMtUyIgZm9ydykxNTEuMiAzNDUuNiBSKGFyZC1zZWFyY2gtaGlzdG9yeSktLjEgRSAyLjUKKygiQy1UIiB0cmFuc3Bvc2UtY2hhcnMpMTUxLjIgMzU3LjYgUiAyLjUoIkMtVSIgdW5peC1saW5lLWRpc2NhcmQpMTUxLjIKKzM2OS42IFIgMi41KCJDLVYiIHF1b3RlZC1pbnNlcnQpMTUxLjIgMzgxLjYgUiAyLjUoIkMtVyIgdW5peC13KTE1MS4yCiszOTMuNiBSKG9yZC1ydWJvdXQpLS4xIEUgMi41KCJDLVkiIHlhbmspMTUxLjIgNDA1LjYgUiAyLjUoIkMtWyIgdmktbW8pCisxNTEuMiA0MTcuNiBSIC0uMTUodmUpLS4xNSBHKG1lbnQtbW9kZSkuMTUgRSAyLjUoIkMtXyIgdW5kbykxNTEuMiA0MjkuNgorUiAzLjMzMygiIikxNTEuMiA0NDEuNiBTKHRvICJ+IiktLjgzMyBFKHNlbGYtaW5zZXJ0KTUgRSAyLjUoIkMtPyIgYmFja3cpCisxNTEuMiA0NTMuNiBSKGFyZC1kZWxldGUtY2hhciktLjEgRShWSSBDb21tYW5kIE1vZGUgZnVuY3Rpb25zKTE1MS4yCis0NzAuNCBRIDIuNSgiQy1EIiB2aS1lb2YtbWF5YmUpMTUxLjIgNDk0LjQgUiAyLjUKKygiQy1FIiBlbWFjcy1lZGl0aW5nLW1vZGUpMTUxLjIgNTA2LjQgUiAyLjUoIkMtRyIgYWJvcnQpMTUxLjIgNTE4LjQgUgorMi41KCJDLUgiIGJhY2t3KTE1MS4yIDUzMC40IFIoYXJkLWNoYXIpLS4xIEUgMi41KCJDLUoiIGFjY2VwdC1saW5lKTE1MS4yCis1NDIuNCBSIDIuNSgiQy1LIiBraWxsLWxpbmUpMTUxLjIgNTU0LjQgUiAyLjUoIkMtTCIgY2xlYXIpMTUxLjIgNTY2LjQgUgorKC1zY3JlZW4pLS4yIEUgMi41KCJDLU0iIGFjY2VwdC1saW5lKTE1MS4yIDU3OC40IFIgMi41KCJDLU4iIG5lKTE1MS4yCis1OTAuNCBSKHh0LWhpc3RvcnkpLS4xNSBFIDIuNSgiQy1QIiBwcmUpMTUxLjIgNjAyLjQgUih2aW91cy1oaXN0b3J5KS0uMjUKK0UgMi41KCJDLVEiIHF1b3RlZC1pbnNlcnQpMTUxLjIgNjE0LjQgUiAyLjUoIkMtUiIgcmUpMTUxLjIgNjI2LjQgUiAtLjE1CisodmUpLS4yNSBHKHJzZS1zZWFyY2gtaGlzdG9yeSkuMTUgRSAyLjUoIkMtUyIgZm9ydykxNTEuMiA2MzguNCBSCisoYXJkLXNlYXJjaC1oaXN0b3J5KS0uMSBFIDIuNSgiQy1UIiB0cmFuc3Bvc2UtY2hhcnMpMTUxLjIgNjUwLjQgUiAyLjUKKygiQy1VIiB1bml4LWxpbmUtZGlzY2FyZCkxNTEuMiA2NjIuNCBSIDIuNSgiQy1WIiBxdW90ZWQtaW5zZXJ0KTE1MS4yCis2NzQuNCBSIDIuNSgiQy1XIiB1bml4LXcpMTUxLjIgNjg2LjQgUihvcmQtcnVib3V0KS0uMSBFIDIuNSgiQy1ZIiB5YW5rKQorMTUxLjIgNjk4LjQgUiAyLjUoIkMtXyIgdmktdW5kbykxNTEuMiA3MTAuNCBSIC00LjE2NiAzLjMzMygiIiBmKTE1MS4yCis3MjIuNCBUKG9ydyktMy4zMzMgRShhcmQtY2hhciktLjEgRShHTlUgUmVhZGxpbmUgNS4xLWJldGExKTcyIDc2OCBRCisoMjAwNSBTZXAgMTMpMTA5LjMgRSgxMikxOTkgRSAwIENnIEVQCiAlJVBhZ2U6IDEzIDEzCiAlJUJlZ2luUGFnZVNldHVwCiBCUAogJSVFbmRQYWdlU2V0dXAKIC9GMCAxMC9UaW1lcy1Sb21hbkAwIFNGIDM0Mi4yKFJFQURMSU5FXCgzXCkgUkVBRExJTkVcKDNcKSk3MiA0OCBSIDIuNQotKCI9IiB2aS1jb21wbGV0ZSkxNTEuMiA4NCBSIDIuNSgiPyIgdmktc2VhcmNoKTE1MS4yIDk2IFIgMi41Ci0oIkEiIHZpLWFwcGVuZC1lb2wpMTUxLjIgMTA4IFIgMi41KCJCIiB2aS1wcmUpMTUxLjIgMTIwIFIodi13KS0uMjUgRQotKG9yZCktLjEgRSAyLjUoIkMiIHZpLWNoYW5nZS10bykxNTEuMiAxMzIgUiAyLjUoIkQiIHZpLWRlbGV0ZS10bykxNTEuMgotMTQ0IFIgMi41KCJFIiB2aS1lbmQtdykxNTEuMiAxNTYgUihvcmQpLS4xIEUgMi41KCJGIiB2aS1jaGFyKTE1MS4yIDE2OCBSCi0oLXNlYXJjaCktLjIgRSAyLjUoIkciIHZpLWZldGNoLWhpc3RvcnkpMTUxLjIgMTgwIFIgMi41Ci0oIkkiIHZpLWluc2VydC1iZSkxNTEuMiAxOTIgUihnKS0uMTUgRSAyLjUoIk4iIHZpLXNlYXJjaC1hZykxNTEuMiAyMDQgUgotKGFpbiktLjA1IEUgMi41KCJQIiB2aS1wdXQpMTUxLjIgMjE2IFIgMi41KCJSIiB2aS1yZXBsYWNlKTE1MS4yIDIyOCBSCi0yLjUoIlMiIHZpLXN1YnN0KTE1MS4yIDI0MCBSIDIuNSgiVCIgdmktY2hhcikxNTEuMiAyNTIgUigtc2VhcmNoKS0uMiBFCi0yLjUoIlUiIHJlKTE1MS4yIDI2NCBSIC0uMTUodmUpLS4yNSBHKHJ0LWxpbmUpLjE1IEUgMi41KCJXIiB2aS1uZSkxNTEuMgotMjc2IFIoeHQtdyktLjE1IEUob3JkKS0uMSBFIDIuNSgiWCIgYmFja3cpMTUxLjIgMjg4IFIoYXJkLWRlbGV0ZS1jaGFyKQotLS4xIEUgMi41KCJZIiB2aS15YW5rLXRvKTE1MS4yIDMwMCBSIDIuNSgiXFwiIHZpLWNvbXBsZXRlKTE1MS4yIDMxMiBSCi0yLjUoIl4iIHZpLVwyMTRyc3QtcHJpbnQpMTUxLjIgMzI0IFIgMi41KCJfIiB2aS15YW5rLWFyKTE1MS4yIDMzNiBSKGcpCi0tLjE4IEUgMi41KCJgIiB2aS1nb3RvLW1hcmspMTUxLjIgMzQ4IFIgMi41KCJhIiB2aS1hcHBlbmQtbW9kZSkxNTEuMiAzNjAKLVIgMi41KCJiIiB2aS1wcmUpMTUxLjIgMzcyIFIodi13KS0uMjUgRShvcmQpLS4xIEUgMi41KCJjIiB2aS1jaGFuZ2UtdG8pCi0xNTEuMiAzODQgUiAyLjUoImQiIHZpLWRlbGV0ZS10bykxNTEuMiAzOTYgUiAyLjUoImUiIHZpLWVuZC13KTE1MS4yIDQwOAotUihvcmQpLS4xIEUgMi41KCJmIiB2aS1jaGFyKTE1MS4yIDQyMCBSKC1zZWFyY2gpLS4yIEUgMi41KCJoIiBiYWNrdykKLTE1MS4yIDQzMiBSKGFyZC1jaGFyKS0uMSBFIDIuNSgiaSIgdmktaW5zZXJ0aW9uLW1vZGUpMTUxLjIgNDQ0IFIgMi41Ci0oImoiIG5lKTE1MS4yIDQ1NiBSKHh0LWhpc3RvcnkpLS4xNSBFIDIuNSgiayIgcHJlKTE1MS4yIDQ2OCBSKHYtaGlzdG9yeSkKLS0uMjUgRSAyLjUoImwiIGZvcncpMTUxLjIgNDgwIFIoYXJkLWNoYXIpLS4xIEUgMi41KCJtIiB2aS1zZXQtbWFyaykxNTEuMgotNDkyIFIgMi41KCJuIiB2aS1zZWFyY2gtYWcpMTUxLjIgNTA0IFIoYWluKS0uMDUgRSAyLjUoInAiIHZpLXB1dCkxNTEuMgotNTE2IFIgMi41KCJyIiB2aS1jaGFuZ2UtY2hhcikxNTEuMiA1MjggUiAyLjUoInMiIHZpLXN1YnN0KTE1MS4yIDU0MCBSCi0yLjUoInQiIHZpLWNoYXIpMTUxLjIgNTUyIFIoLXNlYXJjaCktLjIgRSAyLjUoInUiIHZpLXVuZG8pMTUxLjIgNTY0IFIKLTIuNSgidyIgdmktbmUpMTUxLjIgNTc2IFIoeHQtdyktLjE1IEUob3JkKS0uMSBFIDIuNSgieCIgdmktZGVsZXRlKTE1MS4yCi01ODggUiAyLjUoInkiIHZpLXlhbmstdG8pMTUxLjIgNjAwIFIgMi41KCJ8IiB2aS1jb2x1bW4pMTUxLjIgNjEyIFIgMi41Ci0oIn4iIHZpLWNoYW5nZS1jYXNlKTE1MS4yIDYyNCBSL0YxIDEwLjk1L1RpbWVzLUJvbGRAMCBTRihTRUUgQUxTTyk3MgotNjQwLjggUS9GMiAxMC9UaW1lcy1JdGFsaWNAMCBTRihUaGUgR251IFJlYWRsaW5lIExpYnIpMTA4IDY1Mi44IFEoYXJ5KQotLS4xNSBFIEYwIDIuNSgsQilDKHJpYW4gRiktMi41IEUob3ggYW5kIENoZXQgUmFtZSktLjE1IEUoeSktLjE1IEUgRjIKLShUaGUgR251IEhpc3RvcnkgTGlicikxMDggNjY0LjggUShhcnkpLS4xNSBFIEYwIDIuNSgsQilDKHJpYW4gRiktMi41IEUKLShveCBhbmQgQ2hldCBSYW1lKS0uMTUgRSh5KS0uMTUgRSBGMihiYXNoKTEwOCA2NzYuOCBRIEYwKFwoMVwpKUEgRjEKLShGSUxFUyk3MiA2OTMuNiBRIEYyKH4vLmlucHV0cikxMDkuNjY2IDcwNS42IFEoYyktLjM3IEUgRjAoSW5kaSkxNDQKLTcxNy42IFEodmlkdWFsKS0uMjUgRS9GMyAxMC9UaW1lcy1Cb2xkQDAgU0YgLS4xOChyZSkyLjUgRyhhZGxpbmUpLjE4IEUKLUYwKGluaXRpYWxpemF0aW9uIFwyMTRsZSkyLjUgRShHTlUgUmVhZGxpbmUgNC4zKTcyIDc2OCBRCi0oMjAwMiBKYW51YXJ5IDIyKTEyNi4yNCBFKDEzKTE5MC45NSBFIEVQCisoIiMiIGluc2VydC1jb21tZW50KTE1MS4yIDg0IFIgMi41KCIkIiBlbmQtb2YtbGluZSkxNTEuMiA5NiBSIDIuNQorKCIlIiB2aS1tYXRjaCkxNTEuMiAxMDggUiAyLjUoIiYiIHZpLXRpbGRlLWUpMTUxLjIgMTIwIFIoeHBhbmQpLS4xNSBFCisyLjUoIioiIHZpLWNvbXBsZXRlKTE1MS4yIDEzMiBSIDIuNSgiKyIgbmUpMTUxLjIgMTQ0IFIoeHQtaGlzdG9yeSktLjE1IEUKKzIuNSgiLCIgdmktY2hhcikxNTEuMiAxNTYgUigtc2VhcmNoKS0uMiBFIDIuNSgiLSIgcHJlKTE1MS4yIDE2OCBSCisodmlvdXMtaGlzdG9yeSktLjI1IEUgMi41KCIuIiB2aS1yZWRvKTE1MS4yIDE4MCBSIDIuNSgiLyIgdmktc2VhcmNoKQorMTUxLjIgMTkyIFIgMi41KCIwIiBiZSkxNTEuMiAyMDQgUihnaW5uaW5nLW9mLWxpbmUpLS4xNSBFKCIxIiB0byAiOSIpCisxNTEuMiAyMTYgUSh2aS1hcik1IEUoZy1kaWdpdCktLjE4IEUgMi41KCI7IiB2aS1jaGFyKTE1MS4yIDIyOCBSCisoLXNlYXJjaCktLjIgRSAyLjUoIj0iIHZpLWNvbXBsZXRlKTE1MS4yIDI0MCBSIDIuNSgiPyIgdmktc2VhcmNoKTE1MS4yCisyNTIgUiAyLjUoIkEiIHZpLWFwcGVuZC1lb2wpMTUxLjIgMjY0IFIgMi41KCJCIiB2aS1wcmUpMTUxLjIgMjc2IFIodi13KQorLS4yNSBFKG9yZCktLjEgRSAyLjUoIkMiIHZpLWNoYW5nZS10bykxNTEuMiAyODggUiAyLjUoIkQiIHZpLWRlbGV0ZS10bykKKzE1MS4yIDMwMCBSIDIuNSgiRSIgdmktZW5kLXcpMTUxLjIgMzEyIFIob3JkKS0uMSBFIDIuNSgiRiIgdmktY2hhcikxNTEuMgorMzI0IFIoLXNlYXJjaCktLjIgRSAyLjUoIkciIHZpLWZldGNoLWhpc3RvcnkpMTUxLjIgMzM2IFIgMi41CisoIkkiIHZpLWluc2VydC1iZSkxNTEuMiAzNDggUihnKS0uMTUgRSAyLjUoIk4iIHZpLXNlYXJjaC1hZykxNTEuMiAzNjAgUgorKGFpbiktLjA1IEUgMi41KCJQIiB2aS1wdXQpMTUxLjIgMzcyIFIgMi41KCJSIiB2aS1yZXBsYWNlKTE1MS4yIDM4NCBSCisyLjUoIlMiIHZpLXN1YnN0KTE1MS4yIDM5NiBSIDIuNSgiVCIgdmktY2hhcikxNTEuMiA0MDggUigtc2VhcmNoKS0uMiBFCisyLjUoIlUiIHJlKTE1MS4yIDQyMCBSIC0uMTUodmUpLS4yNSBHKHJ0LWxpbmUpLjE1IEUgMi41KCJXIiB2aS1uZSkxNTEuMgorNDMyIFIoeHQtdyktLjE1IEUob3JkKS0uMSBFIDIuNSgiWCIgYmFja3cpMTUxLjIgNDQ0IFIoYXJkLWRlbGV0ZS1jaGFyKQorLS4xIEUgMi41KCJZIiB2aS15YW5rLXRvKTE1MS4yIDQ1NiBSIDIuNSgiXFwiIHZpLWNvbXBsZXRlKTE1MS4yIDQ2OCBSCisyLjUoIl4iIHZpLVwyMTRyc3QtcHJpbnQpMTUxLjIgNDgwIFIgMi41KCJfIiB2aS15YW5rLWFyKTE1MS4yIDQ5MiBSKGcpCistLjE4IEUgMi41KCJgIiB2aS1nb3RvLW1hcmspMTUxLjIgNTA0IFIgMi41KCJhIiB2aS1hcHBlbmQtbW9kZSkxNTEuMiA1MTYKK1IgMi41KCJiIiB2aS1wcmUpMTUxLjIgNTI4IFIodi13KS0uMjUgRShvcmQpLS4xIEUgMi41KCJjIiB2aS1jaGFuZ2UtdG8pCisxNTEuMiA1NDAgUiAyLjUoImQiIHZpLWRlbGV0ZS10bykxNTEuMiA1NTIgUiAyLjUoImUiIHZpLWVuZC13KTE1MS4yIDU2NAorUihvcmQpLS4xIEUgMi41KCJmIiB2aS1jaGFyKTE1MS4yIDU3NiBSKC1zZWFyY2gpLS4yIEUgMi41KCJoIiBiYWNrdykKKzE1MS4yIDU4OCBSKGFyZC1jaGFyKS0uMSBFIDIuNSgiaSIgdmktaW5zZXJ0aW9uLW1vZGUpMTUxLjIgNjAwIFIgMi41CisoImoiIG5lKTE1MS4yIDYxMiBSKHh0LWhpc3RvcnkpLS4xNSBFIDIuNSgiayIgcHJlKTE1MS4yIDYyNCBSKHYtaGlzdG9yeSkKKy0uMjUgRSAyLjUoImwiIGZvcncpMTUxLjIgNjM2IFIoYXJkLWNoYXIpLS4xIEUgMi41KCJtIiB2aS1zZXQtbWFyaykxNTEuMgorNjQ4IFIgMi41KCJuIiB2aS1zZWFyY2gtYWcpMTUxLjIgNjYwIFIoYWluKS0uMDUgRSAyLjUoInAiIHZpLXB1dCkxNTEuMgorNjcyIFIgMi41KCJyIiB2aS1jaGFuZ2UtY2hhcikxNTEuMiA2ODQgUiAyLjUoInMiIHZpLXN1YnN0KTE1MS4yIDY5NiBSCisyLjUoInQiIHZpLWNoYXIpMTUxLjIgNzA4IFIoLXNlYXJjaCktLjIgRSAyLjUoInUiIHZpLXVuZG8pMTUxLjIgNzIwIFIKKyhHTlUgUmVhZGxpbmUgNS4xLWJldGExKTcyIDc2OCBRKDIwMDUgU2VwIDEzKTEwOS4zIEUoMTMpMTk5IEUgMCBDZyBFUAogJSVQYWdlOiAxNCAxNAogJSVCZWdpblBhZ2VTZXR1cAogQlAKICUlRW5kUGFnZVNldHVwCi0vRjAgMTAvVGltZXMtUm9tYW5AMCBTRiAzNDIuMihSRUFETElORVwoM1wpIFJFQURMSU5FXCgzXCkpNzIgNDggUi9GMQotMTAuOTUvVGltZXMtQm9sZEAwIFNGIC0uNTQ4KEFVKTcyIDg0IFMoVEhPUlMpLjU0OCBFIEYwKEJyaWFuIEYpMTA4IDk2IFEKLShveCwgRnJlZSBTb2Z0dyktLjE1IEUoYXJlIEYpLS4xIEUob3VuZGF0aW9uKS0uMTUgRShiZm94QGdudS5vcikxMDggMTA4Ci1RKGcpLS4xOCBFKENoZXQgUmFtZSkxMDggMTI0LjggUSAxLjMgLS42NSh5LCBDKS0uMTUgSChhc2UgVykuNjUgRQotKGVzdGVybiBSZXNlcnYpLS44IEUgMi41KGVVKS0uMTUgRyhuaSktMi41IEUgLS4xNSh2ZSktLjI1IEcocnNpdHkpLjE1IEUKLShjaGV0QGlucy5DV1IpMTA4IDEzNi44IFEoVS5FZHUpLS40IEUgRjEgLS4xMShCVSk3MiAxNTMuNiBTIDIuNzM4KEdSKS4xMQotRyhFUE9SKS0yLjczOCBFKFRTKS0uNDM4IEUgRjAgLjY5KElmIHlvdSBcMjE0bmQgYSBiKTEwOCAxNjUuNiBSIC42OQotKHVnIGluKS0uMiBGL0YyIDEwL1RpbWVzLUJvbGRAMCBTRiAtLjE4KHJlKTMuMTkgRyhhZGxpbmUsKS4xOCBFIEYwIC42OQorL0YwIDEwL1RpbWVzLVJvbWFuQDAgU0YgMzQyLjIoUkVBRExJTkVcKDNcKSBSRUFETElORVwoM1wpKTcyIDQ4IFIgMi41CisoInciIHZpLW5lKTE1MS4yIDg0IFIoeHQtdyktLjE1IEUob3JkKS0uMSBFIDIuNSgieCIgdmktZGVsZXRlKTE1MS4yIDk2IFIKKzIuNSgieSIgdmkteWFuay10bykxNTEuMiAxMDggUiAyLjUoInwiIHZpLWNvbHVtbikxNTEuMiAxMjAgUiAyLjUKKygifiIgdmktY2hhbmdlLWNhc2UpMTUxLjIgMTMyIFIvRjEgMTAuOTUvVGltZXMtQm9sZEAwIFNGKFNFRSBBTFNPKTcyCisxNDguOCBRL0YyIDEwL1RpbWVzLUl0YWxpY0AwIFNGKFRoZSBHbnUgUmVhZGxpbmUgTGlicikxMDggMTYwLjggUShhcnkpCistLjE1IEUgRjAgMi41KCxCKUMocmlhbiBGKS0yLjUgRShveCBhbmQgQ2hldCBSYW1lKS0uMTUgRSh5KS0uMTUgRSBGMgorKFRoZSBHbnUgSGlzdG9yeSBMaWJyKTEwOCAxNzIuOCBRKGFyeSktLjE1IEUgRjAgMi41KCxCKUMocmlhbiBGKS0yLjUgRQorKG94IGFuZCBDaGV0IFJhbWUpLS4xNSBFKHkpLS4xNSBFIEYyKGJhc2gpMTA4IDE4NC44IFEgRjAoXCgxXCkpQSBGMQorKEZJTEVTKTcyIDIwMS42IFEgRjIofi8uaW5wdXRyKTEwOS42NjYgMjEzLjYgUShjKS0uMzcgRSBGMChJbmRpKTE0NAorMjI1LjYgUSh2aWR1YWwpLS4yNSBFL0YzIDEwL1RpbWVzLUJvbGRAMCBTRiAtLjE4KHJlKTIuNSBHKGFkbGluZSkuMTggRQorRjAoaW5pdGlhbGl6YXRpb24gXDIxNGxlKTIuNSBFIEYxIC0uNTQ4KEFVKTcyIDI0Mi40IFMoVEhPUlMpLjU0OCBFIEYwCisoQnJpYW4gRikxMDggMjU0LjQgUShveCwgRnJlZSBTb2Z0dyktLjE1IEUoYXJlIEYpLS4xIEUob3VuZGF0aW9uKS0uMTUgRQorKGJmb3hAZ251Lm9yKTEwOCAyNjYuNCBRKGcpLS4xOCBFKENoZXQgUmFtZSkxMDggMjgzLjIgUSAxLjMgLS42NSh5LCBDKQorLS4xNSBIKGFzZSBXKS42NSBFKGVzdGVybiBSZXNlcnYpLS44IEUgMi41KGVVKS0uMTUgRyhuaSktMi41IEUgLS4xNSh2ZSkKKy0uMjUgRyhyc2l0eSkuMTUgRShjaGV0QGlucy5DV1IpMTA4IDI5NS4yIFEoVS5FZHUpLS40IEUgRjEgLS4xMShCVSk3MgorMzEyIFMgMi43MzgoR1IpLjExIEcoRVBPUiktMi43MzggRShUUyktLjQzOCBFIEYwIC42OShJZiB5b3UgXDIxNG5kIGEgYikKKzEwOCAzMjQgUiAuNjkodWcgaW4pLS4yIEYgRjMgLS4xOChyZSkzLjE5IEcoYWRsaW5lLCkuMTggRSBGMCAuNjkKICh5b3Ugc2hvdWxkIHJlcG9ydCBpdC4pMy4xOSBGIC42OTEoQnV0IFwyMTRyc3QsIHlvdSBzaG91bGQgbWFrKTUuNjkgRgogMy4xOTEoZXMpLS4xIEcgLjY5MSh1cmUgdGhhdCBpdCByZWFsbHkgaXMgYSBiKS0zLjE5MSBGKHVnLCktLjIgRQotKGFuZCB0aGF0IGl0IGFwcGVhcnMgaW4gdGhlIGxhdGVzdCB2KTEwOCAxNzcuNiBRKGVyc2lvbiBvZiB0aGUpLS4xNSBFIEYyCisoYW5kIHRoYXQgaXQgYXBwZWFycyBpbiB0aGUgbGF0ZXN0IHYpMTA4IDMzNiBRKGVyc2lvbiBvZiB0aGUpLS4xNSBFIEYzCiAtLjE4KHJlKTIuNSBHKGFkbGluZSkuMTggRSBGMChsaWJyYXJ5IHRoYXQgeW91IGhhKTIuNSBFIC0uMTUodmUpLS4yIEcoLikKLS4xNSBFIC43MDUoT25jZSB5b3UgaGEpMTA4IDE5NC40IFIgMS4wMDUgLS4xNSh2ZSBkKS0uMiBIIC43MDUKKy4xNSBFIC43MDUoT25jZSB5b3UgaGEpMTA4IDM1Mi44IFIgMS4wMDUgLS4xNSh2ZSBkKS0uMiBIIC43MDUKIChldGVybWluZWQgdGhhdCBhIGIpLjE1IEYgLjcwNCh1ZyBhY3R1YWxseSBlKS0uMiBGIC43MDQoeGlzdHMsIG1haWwgYSBiKQotLS4xNSBGIC43MDQodWcgcmVwb3J0IHRvKS0uMiBGL0YzIDEwL1RpbWVzLUl0YWxpY0AwIFNGIC0uMihidSkzLjIwNCBHCi0oZ1wyNTVyKS4yIEUoZWFkbGluZSktLjM3IEUgRjAoQClBIEYzKGdudS5vcilBKGcpLS4zNyBFIEYwIDUuNzA0KC5JKUMKLTMuMjA0KGZ5KS01LjcwNCBHKG91KS0zLjIwNCBFKGhhKTEwOCAyMDYuNCBRIDEuODA5IC0uMTUodmUgYSBcMjE0KS0uMiBICi0xLjUwOSh4LCB5b3UgYXJlIHdlbGNvbWUgdG8gbWFpbCB0aGF0IGFzIHdlbGwhKS4xNSBGIDEuNTEKKy0uMTUgRiAuNzA0KHVnIHJlcG9ydCB0byktLjIgRiBGMiAtLjIoYnUpMy4yMDQgRyhnXDI1NXIpLjIgRShlYWRsaW5lKQorLS4zNyBFIEYwKEApQSBGMihnbnUub3IpQShnKS0uMzcgRSBGMCA1LjcwNCguSSlDIDMuMjA0KGZ5KS01LjcwNCBHKG91KQorLTMuMjA0IEUoaGEpMTA4IDM2NC44IFEgMS44MDkgLS4xNSh2ZSBhIFwyMTQpLS4yIEggMS41MDkKKyh4LCB5b3UgYXJlIHdlbGNvbWUgdG8gbWFpbCB0aGF0IGFzIHdlbGwhKS4xNSBGIDEuNTEKIChTdWdnZXN0aW9ucyBhbmQgYHBoaWxvc29waGljYWwnIGIpNi41MSBGIDEuNTEodWcgcmVwb3J0cyBtYXkgYmUpLS4yIEYKLShtYWlsZWQgdG8pMTA4IDIxOC40IFEgRjMgLS4yKGJ1KTIuNSBHKGctcikuMiBFKGVhZGxpbmUpLS4zNyBFIEYwKEApQSBGMwotKGdudS5vcilBKGcpLS4zNyBFIEYwKG9yIHBvc3RlZCB0byB0aGUgVXNlbmV0IG5lKTIuNSBFKHdzZ3JvdXApLS4yNSBFIEYyCi0oZ251LmJhc2guYikyLjUgRSh1ZyktLjIgRSBGMCguKUEoQ29tbWVudHMgYW5kIGIpMTA4IDIzNS4yIFEKLSh1ZyByZXBvcnRzIGNvbmNlcm5pbmcgdGhpcyBtYW51YWwgcGFnZSBzaG91bGQgYmUgZGlyZWN0ZWQgdG8pLS4yIEUgRjMKKyhtYWlsZWQgdG8pMTA4IDM3Ni44IFEgRjIgLS4yKGJ1KTIuNSBHKGctcikuMiBFKGVhZGxpbmUpLS4zNyBFIEYwKEApQSBGMgorKGdudS5vcilBKGcpLS4zNyBFIEYwKG9yIHBvc3RlZCB0byB0aGUgVXNlbmV0IG5lKTIuNSBFKHdzZ3JvdXApLS4yNSBFIEYzCisoZ251LmJhc2guYikyLjUgRSh1ZyktLjIgRSBGMCguKUEoQ29tbWVudHMgYW5kIGIpMTA4IDM5My42IFEKKyh1ZyByZXBvcnRzIGNvbmNlcm5pbmcgdGhpcyBtYW51YWwgcGFnZSBzaG91bGQgYmUgZGlyZWN0ZWQgdG8pLS4yIEUgRjIKIC0uMTUoY2gpMi41IEcoZXRAaW5zLkNXUikuMTUgRSAtLjI1KFUuKS0uNCBHKEVkdSkuMjUgRSBGMCguKS4yNSBFIEYxCi0tLjExKEJVKTcyIDI1MiBTKEdTKS4xMSBFIEYwKEl0JykxMDggMjY0IFEgMi41KHN0KS0uNTUgRwotKG9vIGJpZyBhbmQgdG9vIHNsbyktMi41IEUgLS42NSh3LiktLjI1IEcoR05VIFJlYWRsaW5lIDQuMyk3MiA3NjggUQotKDIwMDIgSmFudWFyeSAyMikxMjYuMjQgRSgxNCkxOTAuOTUgRSBFUAorLS4xMShCVSk3MiA0MTAuNCBTKEdTKS4xMSBFIEYwKEl0JykxMDggNDIyLjQgUSAyLjUoc3QpLS41NSBHCisob28gYmlnIGFuZCB0b28gc2xvKS0yLjUgRSAtLjY1KHcuKS0uMjUgRyhHTlUgUmVhZGxpbmUgNS4xLWJldGExKTcyIDc2OAorUSgyMDA1IFNlcCAxMykxMDkuMyBFKDE0KTE5OSBFIDAgQ2cgRVAKICUlVHJhaWxlcgogZW5kCiAlJUVPRgpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvZG9jL3JsbWFuLnRleGkgYi9yZWFkbGluZS9kb2MvcmxtYW4udGV4aQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODM0YjU4Ci0tLSAvZGV2L251bGwKKysrIGIvcmVhZGxpbmUvZG9jL3JsbWFuLnRleGkKQEAgLTAsMCArMSwxMDEgQEAKK1xpbnB1dCB0ZXhpbmZvICAgIEBjIC0qLXRleGluZm8tKi0KK0Bjb21tZW50ICUqKnN0YXJ0IG9mIGhlYWRlciAoVGhpcyBpcyBmb3IgcnVubmluZyBUZXhpbmZvIG9uIGEgcmVnaW9uLikKK0BzZXRmaWxlbmFtZSByZWFkbGluZS5pbmZvCitAc2V0dGl0bGUgR05VIFJlYWRsaW5lIExpYnJhcnkKK0Bjb21tZW50ICUqKmVuZCBvZiBoZWFkZXIgKFRoaXMgaXMgZm9yIHJ1bm5pbmcgVGV4aW5mbyBvbiBhIHJlZ2lvbi4pCitAc3luaW5kZXggdnIgZm4KK0BzZXRjaGFwdGVybmV3cGFnZSBvZGQKKworQGluY2x1ZGUgdmVyc2lvbi50ZXhpCisKK0Bjb3B5aW5nCitUaGlzIG1hbnVhbCBkZXNjcmliZXMgdGhlIEdOVSBSZWFkbGluZSBMaWJyYXJ5CisodmVyc2lvbiBAdmFsdWV7VkVSU0lPTn0sIEB2YWx1ZXtVUERBVEVEfSksIGEgbGlicmFyeSB3aGljaCBhaWRzIGluIHRoZQorY29uc2lzdGVuY3kgb2YgdXNlciBpbnRlcmZhY2UgYWNyb3NzIGRpc2NyZXRlIHByb2dyYW1zIHdoaWNoIHByb3ZpZGUKK2EgY29tbWFuZCBsaW5lIGludGVyZmFjZS4KKworQ29weXJpZ2h0IEBjb3B5cmlnaHR7fSAxOTg4LTIwMDQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKK1Blcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBtYWtlIGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcyBvZgordGhpcyBtYW51YWwgcHJvdmlkZWQgdGhlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UKK2FyZSBwcmVzZXJ2ZWQgb24gYWxsIGNvcGllcy4KKworQHF1b3RhdGlvbgorUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGlzIGRvY3VtZW50Cit1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZSwgVmVyc2lvbiAxLjEgb3IKK2FueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB3aXRoIG5vCitJbnZhcmlhbnQgU2VjdGlvbnMsIHdpdGggdGhlIEZyb250LUNvdmVyIHRleHRzIGJlaW5nIGBgQSBHTlUgTWFudWFsLCcnCithbmQgd2l0aCB0aGUgQmFjay1Db3ZlciBUZXh0cyBhcyBpbiAoYSkgYmVsb3cuICBBIGNvcHkgb2YgdGhlIGxpY2Vuc2UgaXMKK2luY2x1ZGVkIGluIHRoZSBzZWN0aW9uIGVudGl0bGVkIGBgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLicnCisKKyhhKSBUaGUgRlNGJ3MgQmFjay1Db3ZlciBUZXh0IGlzOiBgYFlvdSBoYXZlIGZyZWVkb20gdG8gY29weSBhbmQgbW9kaWZ5Cit0aGlzIEdOVSBNYW51YWwsIGxpa2UgR05VIHNvZnR3YXJlLiAgQ29waWVzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQorU29mdHdhcmUgRm91bmRhdGlvbiByYWlzZSBmdW5kcyBmb3IgR05VIGRldmVsb3BtZW50LicnCitAZW5kIHF1b3RhdGlvbgorQGVuZCBjb3B5aW5nCisKK0BkaXJjYXRlZ29yeSBMaWJyYXJpZXMKK0BkaXJlbnRyeQorKiBSZWFkbGluZTogKHJlYWRsaW5lKS4gICAgICAgVGhlIEdOVSByZWFkbGluZSBsaWJyYXJ5IEFQSS4KK0BlbmQgZGlyZW50cnkKKworQHRpdGxlcGFnZSAgCitAdGl0bGUgR05VIFJlYWRsaW5lIExpYnJhcnkKK0BzdWJ0aXRsZSBFZGl0aW9uIEB2YWx1ZXtFRElUSU9OfSwgZm9yIEBjb2Rle1JlYWRsaW5lIExpYnJhcnl9IFZlcnNpb24gQHZhbHVle1ZFUlNJT059LgorQHN1YnRpdGxlIEB2YWx1ZXtVUERBVEVELU1PTlRIfQorQGF1dGhvciBDaGV0IFJhbWV5LCBDYXNlIFdlc3Rlcm4gUmVzZXJ2ZSBVbml2ZXJzaXR5CitAYXV0aG9yIEJyaWFuIEZveCwgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCisKK0BwYWdlCitAdnNraXAgMHB0IHBsdXMgMWZpbGxsCitAaW5zZXJ0Y29weWluZworCitAc3AgMQorUHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gQCoKKzU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBAKgorQm9zdG9uLCBNQSAwMjExMS0xMzA3IEAqCitVU0EgQCoKKworQGVuZCB0aXRsZXBhZ2UKKworQGNvbnRlbnRzCisKK0BpZm5vdHRleAorQG5vZGUgVG9wCitAdG9wIEdOVSBSZWFkbGluZSBMaWJyYXJ5CisKK1RoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIHRoZSBHTlUgUmVhZGxpbmUgTGlicmFyeSwgYSB1dGlsaXR5IHdoaWNoIGFpZHMKK2luIHRoZSBjb25zaXN0ZW5jeSBvZiB1c2VyIGludGVyZmFjZSBhY3Jvc3MgZGlzY3JldGUgcHJvZ3JhbXMgd2hpY2gKK3Byb3ZpZGUgYSBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLgorCitAbWVudQorKiBDb21tYW5kIExpbmUgRWRpdGluZzo6CSAgIEdOVSBSZWFkbGluZSBVc2VyJ3MgTWFudWFsLgorKiBQcm9ncmFtbWluZyB3aXRoIEdOVSBSZWFkbGluZTo6ICBHTlUgUmVhZGxpbmUgUHJvZ3JhbW1lcidzIE1hbnVhbC4KKyogQ29weWluZyBUaGlzIE1hbnVhbDo6CQkgICBDb3B5aW5nIHRoaXMgbWFudWFsLgorKiBDb25jZXB0IEluZGV4OjoJCSAgIEluZGV4IG9mIGNvbmNlcHRzIGRlc2NyaWJlZCBpbiB0aGlzIG1hbnVhbC4KKyogRnVuY3Rpb24gYW5kIFZhcmlhYmxlIEluZGV4OjoJICAgSW5kZXggb2YgZXh0ZXJuYWxseSB2aXNpYmxlIGZ1bmN0aW9ucworCQkJCSAgIGFuZCB2YXJpYWJsZXMuCitAZW5kIG1lbnUKK0BlbmQgaWZub3R0ZXgKKworQGluY2x1ZGUgcmx1c2VyLnRleGkKK0BpbmNsdWRlIHJsdGVjaC50ZXhpCisKK0Bub2RlIENvcHlpbmcgVGhpcyBNYW51YWwKK0BhcHBlbmRpeCBDb3B5aW5nIFRoaXMgTWFudWFsCisKK0BtZW51CisqIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZTo6CUxpY2Vuc2UgZm9yIGNvcHlpbmcgdGhpcyBtYW51YWwuCitAZW5kIG1lbnUKKworQGluY2x1ZGUgZmRsLnRleGkKKworQG5vZGUgQ29uY2VwdCBJbmRleAorQHVubnVtYmVyZWQgQ29uY2VwdCBJbmRleAorQHByaW50aW5kZXggY3AKKworQG5vZGUgRnVuY3Rpb24gYW5kIFZhcmlhYmxlIEluZGV4CitAdW5udW1iZXJlZCBGdW5jdGlvbiBhbmQgVmFyaWFibGUgSW5kZXgKK0BwcmludGluZGV4IGZuCisKK0BieWUKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2RvYy9ybHRlY2gudGV4aSBiL3JlYWRsaW5lL2RvYy9ybHRlY2gudGV4aQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZjJlMmVlCi0tLSAvZGV2L251bGwKKysrIGIvcmVhZGxpbmUvZG9jL3JsdGVjaC50ZXhpCkBAIC0wLDAgKzEsMjI4NSBAQAorQGNvbW1lbnQgJSoqc3RhcnQgb2YgaGVhZGVyIChUaGlzIGlzIGZvciBydW5uaW5nIFRleGluZm8gb24gYSByZWdpb24uKQorQHNldGZpbGVuYW1lIHJsdGVjaC5pbmZvCitAY29tbWVudCAlKiplbmQgb2YgaGVhZGVyIChUaGlzIGlzIGZvciBydW5uaW5nIFRleGluZm8gb24gYSByZWdpb24uKQorQHNldGNoYXB0ZXJuZXdwYWdlIG9kZAorCitAaWZpbmZvCitUaGlzIGRvY3VtZW50IGRlc2NyaWJlcyB0aGUgR05VIFJlYWRsaW5lIExpYnJhcnksIGEgdXRpbGl0eSBmb3IgYWlkaW5nCitpbiB0aGUgY29uc2lzdGVuY3kgb2YgdXNlciBpbnRlcmZhY2UgYWNyb3NzIGRpc2NyZXRlIHByb2dyYW1zIHRoYXQgbmVlZAordG8gcHJvdmlkZSBhIGNvbW1hbmQgbGluZSBpbnRlcmZhY2UuCisKK0NvcHlyaWdodCAoQykgMTk4OC0yMDA1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCitQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gbWFrZSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMgb2YKK3RoaXMgbWFudWFsIHByb3ZpZGVkIHRoZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlCitwYXJlIHByZXNlcnZlZCBvbiBhbGwgY29waWVzLgorCitAaWdub3JlCitQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gcHJvY2VzcyB0aGlzIGZpbGUgdGhyb3VnaCBUZVggYW5kIHByaW50IHRoZQorcmVzdWx0cywgcHJvdmlkZWQgdGhlIHByaW50ZWQgZG9jdW1lbnQgY2FycmllcyBjb3B5aW5nIHBlcm1pc3Npb24KK25vdGljZSBpZGVudGljYWwgdG8gdGhpcyBvbmUgZXhjZXB0IGZvciB0aGUgcmVtb3ZhbCBvZiB0aGlzIHBhcmFncmFwaAorKHRoaXMgcGFyYWdyYXBoIG5vdCBiZWluZyByZWxldmFudCB0byB0aGUgcHJpbnRlZCBtYW51YWwpLgorQGVuZCBpZ25vcmUKKworUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YgdGhpcworbWFudWFsIHVuZGVyIHRoZSBjb25kaXRpb25zIGZvciB2ZXJiYXRpbSBjb3B5aW5nLCBwcm92aWRlZCB0aGF0IHRoZSBlbnRpcmUKK3Jlc3VsdGluZyBkZXJpdmVkIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIGEgcGVybWlzc2lvbgorbm90aWNlIGlkZW50aWNhbCB0byB0aGlzIG9uZS4KKworUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdHJhbnNsYXRpb25zIG9mIHRoaXMgbWFudWFsCitpbnRvIGFub3RoZXIgbGFuZ3VhZ2UsIHVuZGVyIHRoZSBhYm92ZSBjb25kaXRpb25zIGZvciBtb2RpZmllZCB2ZXJzaW9ucywKK2V4Y2VwdCB0aGF0IHRoaXMgcGVybWlzc2lvbiBub3RpY2UgbWF5IGJlIHN0YXRlZCBpbiBhIHRyYW5zbGF0aW9uIGFwcHJvdmVkCitieSB0aGUgRm91bmRhdGlvbi4KK0BlbmQgaWZpbmZvCisKK0Bub2RlIFByb2dyYW1taW5nIHdpdGggR05VIFJlYWRsaW5lCitAY2hhcHRlciBQcm9ncmFtbWluZyB3aXRoIEdOVSBSZWFkbGluZQorCitUaGlzIGNoYXB0ZXIgZGVzY3JpYmVzIHRoZSBpbnRlcmZhY2UgYmV0d2VlbiB0aGUgQHNje2dudX0gUmVhZGxpbmUgTGlicmFyeSBhbmQKK290aGVyIHByb2dyYW1zLiAgSWYgeW91IGFyZSBhIHByb2dyYW1tZXIsIGFuZCB5b3Ugd2lzaCB0byBpbmNsdWRlIHRoZQorZmVhdHVyZXMgZm91bmQgaW4gQHNje2dudX0gUmVhZGxpbmUKK3N1Y2ggYXMgY29tcGxldGlvbiwgbGluZSBlZGl0aW5nLCBhbmQgaW50ZXJhY3RpdmUgaGlzdG9yeSBtYW5pcHVsYXRpb24KK2luIHlvdXIgb3duIHByb2dyYW1zLCB0aGlzIHNlY3Rpb24gaXMgZm9yIHlvdS4KKworQG1lbnUKKyogQmFzaWMgQmVoYXZpb3I6OglVc2luZyB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiBSZWFkbGluZS4KKyogQ3VzdG9tIEZ1bmN0aW9uczo6CUFkZGluZyB5b3VyIG93biBmdW5jdGlvbnMgdG8gUmVhZGxpbmUuCisqIFJlYWRsaW5lIFZhcmlhYmxlczo6CQkJVmFyaWFibGVzIGFjY2Vzc2libGUgdG8gY3VzdG9tCisJCQkJCWZ1bmN0aW9ucy4KKyogUmVhZGxpbmUgQ29udmVuaWVuY2UgRnVuY3Rpb25zOjoJRnVuY3Rpb25zIHdoaWNoIFJlYWRsaW5lIHN1cHBsaWVzIHRvCisJCQkJCWFpZCBpbiB3cml0aW5nIHlvdXIgb3duIGN1c3RvbQorCQkJCQlmdW5jdGlvbnMuCisqIFJlYWRsaW5lIFNpZ25hbCBIYW5kbGluZzo6CUhvdyBSZWFkbGluZSBiZWhhdmVzIHdoZW4gaXQgcmVjZWl2ZXMgc2lnbmFscy4KKyogQ3VzdG9tIENvbXBsZXRlcnM6OglTdXBwbGFudGluZyBvciBzdXBwbGVtZW50aW5nIFJlYWRsaW5lJ3MKKwkJCWNvbXBsZXRpb24gZnVuY3Rpb25zLgorQGVuZCBtZW51CisKK0Bub2RlIEJhc2ljIEJlaGF2aW9yCitAc2VjdGlvbiBCYXNpYyBCZWhhdmlvcgorCitNYW55IHByb2dyYW1zIHByb3ZpZGUgYSBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLCBzdWNoIGFzIEBjb2Rle21haWx9LAorQGNvZGV7ZnRwfSwgYW5kIEBjb2Rle3NofS4gIEZvciBzdWNoIHByb2dyYW1zLCB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgb2YKK1JlYWRsaW5lIGlzIHN1ZmZpY2llbnQuICBUaGlzIHNlY3Rpb24gZGVzY3JpYmVzIGhvdyB0byB1c2UgUmVhZGxpbmUgaW4KK3RoZSBzaW1wbGVzdCB3YXkgcG9zc2libGUsIHBlcmhhcHMgdG8gcmVwbGFjZSBjYWxscyBpbiB5b3VyIGNvZGUgdG8KK0Bjb2Rle2dldHMoKX0gb3IgQGNvZGV7ZmdldHMoKX0uCisKK0BmaW5kZXggcmVhZGxpbmUKK0BjaW5kZXggcmVhZGxpbmUsIGZ1bmN0aW9uCisKK1RoZSBmdW5jdGlvbiBAY29kZXtyZWFkbGluZSgpfSBwcmludHMgYSBwcm9tcHQgQHZhcntwcm9tcHR9CithbmQgdGhlbiByZWFkcyBhbmQgcmV0dXJucyBhIHNpbmdsZSBsaW5lIG9mIHRleHQgZnJvbSB0aGUgdXNlci4KK0lmIEB2YXJ7cHJvbXB0fSBpcyBAY29kZXtOVUxMfSBvciB0aGUgZW1wdHkgc3RyaW5nLCBubyBwcm9tcHQgaXMgZGlzcGxheWVkLgorVGhlIGxpbmUgQGNvZGV7cmVhZGxpbmV9IHJldHVybnMgaXMgYWxsb2NhdGVkIHdpdGggQGNvZGV7bWFsbG9jKCl9OwordGhlIGNhbGxlciBzaG91bGQgQGNvZGV7ZnJlZSgpfSB0aGUgbGluZSB3aGVuIGl0IGhhcyBmaW5pc2hlZCB3aXRoIGl0LgorVGhlIGRlY2xhcmF0aW9uIGZvciBAY29kZXtyZWFkbGluZX0gaW4gQU5TSSBDIGlzCisKK0BleGFtcGxlCitAY29kZXtjaGFyICpyZWFkbGluZSAoY29uc3QgY2hhciAqQHZhcntwcm9tcHR9KTt9CitAZW5kIGV4YW1wbGUKKworQG5vaW5kZW50CitTbywgb25lIG1pZ2h0IHNheQorQGV4YW1wbGUKK0Bjb2Rle2NoYXIgKmxpbmUgPSByZWFkbGluZSAoIkVudGVyIGEgbGluZTogIik7fQorQGVuZCBleGFtcGxlCitAbm9pbmRlbnQKK2luIG9yZGVyIHRvIHJlYWQgYSBsaW5lIG9mIHRleHQgZnJvbSB0aGUgdXNlci4KK1RoZSBsaW5lIHJldHVybmVkIGhhcyB0aGUgZmluYWwgbmV3bGluZSByZW1vdmVkLCBzbyBvbmx5IHRoZQordGV4dCByZW1haW5zLgorCitJZiBAY29kZXtyZWFkbGluZX0gZW5jb3VudGVycyBhbiBAY29kZXtFT0Z9IHdoaWxlIHJlYWRpbmcgdGhlIGxpbmUsIGFuZCB0aGUKK2xpbmUgaXMgZW1wdHkgYXQgdGhhdCBwb2ludCwgdGhlbiBAY29kZXsoY2hhciAqKU5VTEx9IGlzIHJldHVybmVkLgorT3RoZXJ3aXNlLCB0aGUgbGluZSBpcyBlbmRlZCBqdXN0IGFzIGlmIGEgbmV3bGluZSBoYWQgYmVlbiB0eXBlZC4KKworSWYgeW91IHdhbnQgdGhlIHVzZXIgdG8gYmUgYWJsZSB0byBnZXQgYXQgdGhlIGxpbmUgbGF0ZXIsICh3aXRoCitAa2V5e0MtcH0gZm9yIGV4YW1wbGUpLCB5b3UgbXVzdCBjYWxsIEBjb2Rle2FkZF9oaXN0b3J5KCl9IHRvIHNhdmUgdGhlCitsaW5lIGF3YXkgaW4gYSBAZGZue2hpc3Rvcnl9IGxpc3Qgb2Ygc3VjaCBsaW5lcy4KKworQGV4YW1wbGUKK0Bjb2Rle2FkZF9oaXN0b3J5IChsaW5lKX07CitAZW5kIGV4YW1wbGUKKworQG5vaW5kZW50CitGb3IgZnVsbCBkZXRhaWxzIG9uIHRoZSBHTlUgSGlzdG9yeSBMaWJyYXJ5LCBzZWUgdGhlIGFzc29jaWF0ZWQgbWFudWFsLgorCitJdCBpcyBwcmVmZXJhYmxlIHRvIGF2b2lkIHNhdmluZyBlbXB0eSBsaW5lcyBvbiB0aGUgaGlzdG9yeSBsaXN0LCBzaW5jZQordXNlcnMgcmFyZWx5IGhhdmUgYSBidXJuaW5nIG5lZWQgdG8gcmV1c2UgYSBibGFuayBsaW5lLiAgSGVyZSBpcworYSBmdW5jdGlvbiB3aGljaCB1c2VmdWxseSByZXBsYWNlcyB0aGUgc3RhbmRhcmQgQGNvZGV7Z2V0cygpfSBsaWJyYXJ5CitmdW5jdGlvbiwgYW5kIGhhcyB0aGUgYWR2YW50YWdlIG9mIG5vIHN0YXRpYyBidWZmZXIgdG8gb3ZlcmZsb3c6CisKK0BleGFtcGxlCisvKiBBIHN0YXRpYyB2YXJpYWJsZSBmb3IgaG9sZGluZyB0aGUgbGluZS4gKi8KK3N0YXRpYyBjaGFyICpsaW5lX3JlYWQgPSAoY2hhciAqKU5VTEw7CisKKy8qIFJlYWQgYSBzdHJpbmcsIGFuZCByZXR1cm4gYSBwb2ludGVyIHRvIGl0LgorICAgUmV0dXJucyBOVUxMIG9uIEVPRi4gKi8KK2NoYXIgKgorcmxfZ2V0cyAoKQorQHsKKyAgLyogSWYgdGhlIGJ1ZmZlciBoYXMgYWxyZWFkeSBiZWVuIGFsbG9jYXRlZCwKKyAgICAgcmV0dXJuIHRoZSBtZW1vcnkgdG8gdGhlIGZyZWUgcG9vbC4gKi8KKyAgaWYgKGxpbmVfcmVhZCkKKyAgICBAeworICAgICAgZnJlZSAobGluZV9yZWFkKTsKKyAgICAgIGxpbmVfcmVhZCA9IChjaGFyICopTlVMTDsKKyAgICBAfQorCisgIC8qIEdldCBhIGxpbmUgZnJvbSB0aGUgdXNlci4gKi8KKyAgbGluZV9yZWFkID0gcmVhZGxpbmUgKCIiKTsKKworICAvKiBJZiB0aGUgbGluZSBoYXMgYW55IHRleHQgaW4gaXQsCisgICAgIHNhdmUgaXQgb24gdGhlIGhpc3RvcnkuICovCisgIGlmIChsaW5lX3JlYWQgJiYgKmxpbmVfcmVhZCkKKyAgICBhZGRfaGlzdG9yeSAobGluZV9yZWFkKTsKKworICByZXR1cm4gKGxpbmVfcmVhZCk7CitAfQorQGVuZCBleGFtcGxlCisKK1RoaXMgZnVuY3Rpb24gZ2l2ZXMgdGhlIHVzZXIgdGhlIGRlZmF1bHQgYmVoYXZpb3VyIG9mIEBrZXl7VEFCfQorY29tcGxldGlvbjogY29tcGxldGlvbiBvbiBmaWxlIG5hbWVzLiAgSWYgeW91IGRvIG5vdCB3YW50IFJlYWRsaW5lIHRvCitjb21wbGV0ZSBvbiBmaWxlbmFtZXMsIHlvdSBjYW4gY2hhbmdlIHRoZSBiaW5kaW5nIG9mIHRoZSBAa2V5e1RBQn0ga2V5Cit3aXRoIEBjb2Rle3JsX2JpbmRfa2V5KCl9LgorCitAZXhhbXBsZQorQGNvZGV7aW50IHJsX2JpbmRfa2V5IChpbnQgQHZhcntrZXl9LCBybF9jb21tYW5kX2Z1bmNfdCAqQHZhcntmdW5jdGlvbn0pO30KK0BlbmQgZXhhbXBsZQorCitAY29kZXtybF9iaW5kX2tleSgpfSB0YWtlcyB0d28gYXJndW1lbnRzOiBAdmFye2tleX0gaXMgdGhlIGNoYXJhY3RlciB0aGF0Cit5b3Ugd2FudCB0byBiaW5kLCBhbmQgQHZhcntmdW5jdGlvbn0gaXMgdGhlIGFkZHJlc3Mgb2YgdGhlIGZ1bmN0aW9uIHRvCitjYWxsIHdoZW4gQHZhcntrZXl9IGlzIHByZXNzZWQuICBCaW5kaW5nIEBrZXl7VEFCfSB0byBAY29kZXtybF9pbnNlcnQoKX0KK21ha2VzIEBrZXl7VEFCfSBpbnNlcnQgaXRzZWxmLgorQGNvZGV7cmxfYmluZF9rZXkoKX0gcmV0dXJucyBub24temVybyBpZiBAdmFye2tleX0gaXMgbm90IGEgdmFsaWQKK0FTQ0lJIGNoYXJhY3RlciBjb2RlIChiZXR3ZWVuIDAgYW5kIDI1NSkuCisKK1RodXMsIHRvIGRpc2FibGUgdGhlIGRlZmF1bHQgQGtleXtUQUJ9IGJlaGF2aW9yLCB0aGUgZm9sbG93aW5nIHN1ZmZpY2VzOgorQGV4YW1wbGUKK0Bjb2Rle3JsX2JpbmRfa2V5ICgnXHQnLCBybF9pbnNlcnQpO30KK0BlbmQgZXhhbXBsZQorCitUaGlzIGNvZGUgc2hvdWxkIGJlIGV4ZWN1dGVkIG9uY2UgYXQgdGhlIHN0YXJ0IG9mIHlvdXIgcHJvZ3JhbTsgeW91CittaWdodCB3cml0ZSBhIGZ1bmN0aW9uIGNhbGxlZCBAY29kZXtpbml0aWFsaXplX3JlYWRsaW5lKCl9IHdoaWNoCitwZXJmb3JtcyB0aGlzIGFuZCBvdGhlciBkZXNpcmVkIGluaXRpYWxpemF0aW9ucywgc3VjaCBhcyBpbnN0YWxsaW5nCitjdXN0b20gY29tcGxldGVycyAoQHB4cmVme0N1c3RvbSBDb21wbGV0ZXJzfSkuCisKK0Bub2RlIEN1c3RvbSBGdW5jdGlvbnMKK0BzZWN0aW9uIEN1c3RvbSBGdW5jdGlvbnMKKworUmVhZGxpbmUgcHJvdmlkZXMgbWFueSBmdW5jdGlvbnMgZm9yIG1hbmlwdWxhdGluZyB0aGUgdGV4dCBvZgordGhlIGxpbmUsIGJ1dCBpdCBpc24ndCBwb3NzaWJsZSB0byBhbnRpY2lwYXRlIHRoZSBuZWVkcyBvZiBhbGwKK3Byb2dyYW1zLiAgVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyB0aGUgdmFyaW91cyBmdW5jdGlvbnMgYW5kIHZhcmlhYmxlcworZGVmaW5lZCB3aXRoaW4gdGhlIFJlYWRsaW5lIGxpYnJhcnkgd2hpY2ggYWxsb3cgYSB1c2VyIHByb2dyYW0gdG8gYWRkCitjdXN0b21pemVkIGZ1bmN0aW9uYWxpdHkgdG8gUmVhZGxpbmUuCisKK0JlZm9yZSBkZWNsYXJpbmcgYW55IGZ1bmN0aW9ucyB0aGF0IGN1c3RvbWl6ZSBSZWFkbGluZSdzIGJlaGF2aW9yLCBvcgordXNpbmcgYW55IGZ1bmN0aW9uYWxpdHkgUmVhZGxpbmUgcHJvdmlkZXMgaW4gb3RoZXIgY29kZSwgYW4KK2FwcGxpY2F0aW9uIHdyaXRlciBzaG91bGQgaW5jbHVkZSB0aGUgZmlsZSBAY29kZXs8cmVhZGxpbmUvcmVhZGxpbmUuaD59CitpbiBhbnkgZmlsZSB0aGF0IHVzZXMgUmVhZGxpbmUncyBmZWF0dXJlcy4gIFNpbmNlIHNvbWUgb2YgdGhlIGRlZmluaXRpb25zCitpbiBAY29kZXtyZWFkbGluZS5ofSB1c2UgdGhlIEBjb2Rle3N0ZGlvfSBsaWJyYXJ5LCB0aGUgZmlsZQorQGNvZGV7PHN0ZGlvLmg+fSBzaG91bGQgYmUgaW5jbHVkZWQgYmVmb3JlIEBjb2Rle3JlYWRsaW5lLmh9LgorCitAY29kZXtyZWFkbGluZS5ofSBkZWZpbmVzIGEgQyBwcmVwcm9jZXNzb3IgdmFyaWFibGUgdGhhdCBzaG91bGQKK2JlIHRyZWF0ZWQgYXMgYW4gaW50ZWdlciwgQGNvZGV7UkxfUkVBRExJTkVfVkVSU0lPTn0sIHdoaWNoIG1heQorYmUgdXNlZCB0byBjb25kaXRpb25hbGx5IGNvbXBpbGUgYXBwbGljYXRpb24gY29kZSBkZXBlbmRpbmcgb24KK3RoZSBpbnN0YWxsZWQgUmVhZGxpbmUgdmVyc2lvbi4gIFRoZSB2YWx1ZSBpcyBhIGhleGFkZWNpbWFsCitlbmNvZGluZyBvZiB0aGUgbWFqb3IgYW5kIG1pbm9yIHZlcnNpb24gbnVtYmVycyBvZiB0aGUgbGlicmFyeSwKK29mIHRoZSBmb3JtIDB4QHZhcntNTW1tfS4gIEB2YXJ7TU19IGlzIHRoZSB0d28tZGlnaXQgbWFqb3IKK3ZlcnNpb24gbnVtYmVyOyBAdmFye21tfSBpcyB0aGUgdHdvLWRpZ2l0IG1pbm9yIHZlcnNpb24gbnVtYmVyLiAKK0ZvciBSZWFkbGluZSA0LjIsIGZvciBleGFtcGxlLCB0aGUgdmFsdWUgb2YKK0Bjb2Rle1JMX1JFQURMSU5FX1ZFUlNJT059IHdvdWxkIGJlIEBjb2RlezB4MDQwMn0uIAorCitAbWVudQorKiBSZWFkbGluZSBUeXBlZGVmczo6CUMgZGVjbGFyYXRpb25zIHRvIG1ha2UgY29kZSByZWFkYWJsZS4KKyogRnVuY3Rpb24gV3JpdGluZzo6CVZhcmlhYmxlcyBhbmQgY2FsbGluZyBjb252ZW50aW9ucy4KK0BlbmQgbWVudQorCitAbm9kZSBSZWFkbGluZSBUeXBlZGVmcworQHN1YnNlY3Rpb24gUmVhZGxpbmUgVHlwZWRlZnMKKworRm9yIHJlYWRhYmlsdHksIHdlIGRlY2xhcmUgYSBudW1iZXIgb2YgbmV3IG9iamVjdCB0eXBlcywgYWxsIHBvaW50ZXJzCit0byBmdW5jdGlvbnMuCisKK1RoZSByZWFzb24gZm9yIGRlY2xhcmluZyB0aGVzZSBuZXcgdHlwZXMgaXMgdG8gbWFrZSBpdCBlYXNpZXIgdG8gd3JpdGUKK2NvZGUgZGVzY3JpYmluZyBwb2ludGVycyB0byBDIGZ1bmN0aW9ucyB3aXRoIGFwcHJvcHJpYXRlbHkgcHJvdG90eXBlZAorYXJndW1lbnRzIGFuZCByZXR1cm4gdmFsdWVzLgorCitGb3IgaW5zdGFuY2UsIHNheSB3ZSB3YW50IHRvIGRlY2xhcmUgYSB2YXJpYWJsZSBAdmFye2Z1bmN9IGFzIGEgcG9pbnRlcgordG8gYSBmdW5jdGlvbiB3aGljaCB0YWtlcyB0d28gQGNvZGV7aW50fSBhcmd1bWVudHMgYW5kIHJldHVybnMgYW4KK0Bjb2Rle2ludH0gKHRoaXMgaXMgdGhlIHR5cGUgb2YgYWxsIG9mIHRoZSBSZWFkbGluZSBiaW5kYWJsZSBmdW5jdGlvbnMpLgorSW5zdGVhZCBvZiB0aGUgY2xhc3NpYyBDIGRlY2xhcmF0aW9uCisKK0Bjb2Rle2ludCAoKmZ1bmMpKCk7fQorCitAbm9pbmRlbnQKK29yIHRoZSBBTlNJLUMgc3R5bGUgZGVjbGFyYXRpb24KKworQGNvZGV7aW50ICgqZnVuYykoaW50LCBpbnQpO30KKworQG5vaW5kZW50Cit3ZSBtYXkgd3JpdGUKKworQGNvZGV7cmxfY29tbWFuZF9mdW5jX3QgKmZ1bmM7fQorCitUaGUgZnVsbCBsaXN0IG9mIGZ1bmN0aW9uIHBvaW50ZXIgdHlwZXMgYXZhaWxhYmxlIGlzCisKK0B0YWJsZSBAY29kZQorQGl0ZW0gdHlwZWRlZiBpbnQgcmxfY29tbWFuZF9mdW5jX3QgKGludCwgaW50KTsKKworQGl0ZW0gdHlwZWRlZiBjaGFyICpybF9jb21wZW50cnlfZnVuY190IChjb25zdCBjaGFyICosIGludCk7CisKK0BpdGVtIHR5cGVkZWYgY2hhciAqKnJsX2NvbXBsZXRpb25fZnVuY190IChjb25zdCBjaGFyICosIGludCwgaW50KTsKKworQGl0ZW0gdHlwZWRlZiBjaGFyICpybF9xdW90ZV9mdW5jX3QgKGNoYXIgKiwgaW50LCBjaGFyICopOworCitAaXRlbSB0eXBlZGVmIGNoYXIgKnJsX2RlcXVvdGVfZnVuY190IChjaGFyICosIGludCk7CisKK0BpdGVtIHR5cGVkZWYgaW50IHJsX2NvbXBpZ25vcmVfZnVuY190IChjaGFyICoqKTsKKworQGl0ZW0gdHlwZWRlZiB2b2lkIHJsX2NvbXBkaXNwX2Z1bmNfdCAoY2hhciAqKiwgaW50LCBpbnQpOworCitAaXRlbSB0eXBlZGVmIGludCBybF9ob29rX2Z1bmNfdCAodm9pZCk7CisKK0BpdGVtIHR5cGVkZWYgaW50IHJsX2dldGNfZnVuY190IChGSUxFICopOworCitAaXRlbSB0eXBlZGVmIGludCBybF9saW5lYnVmX2Z1bmNfdCAoY2hhciAqLCBpbnQpOworCitAaXRlbSB0eXBlZGVmIGludCBybF9pbnRmdW5jX3QgKGludCk7CitAaXRlbSAjZGVmaW5lIHJsX2l2b2lkZnVuY190IHJsX2hvb2tfZnVuY190CitAaXRlbSB0eXBlZGVmIGludCBybF9pY3BmdW5jX3QgKGNoYXIgKik7CitAaXRlbSB0eXBlZGVmIGludCBybF9pY3BwZnVuY190IChjaGFyICoqKTsKKworQGl0ZW0gdHlwZWRlZiB2b2lkIHJsX3ZvaWRmdW5jX3QgKHZvaWQpOworQGl0ZW0gdHlwZWRlZiB2b2lkIHJsX3ZpbnRmdW5jX3QgKGludCk7CitAaXRlbSB0eXBlZGVmIHZvaWQgcmxfdmNwZnVuY190IChjaGFyICopOworQGl0ZW0gdHlwZWRlZiB2b2lkIHJsX3ZjcHBmdW5jX3QgKGNoYXIgKiopOworCitAZW5kIHRhYmxlCisKK0Bub2RlIEZ1bmN0aW9uIFdyaXRpbmcKK0BzdWJzZWN0aW9uIFdyaXRpbmcgYSBOZXcgRnVuY3Rpb24KKworSW4gb3JkZXIgdG8gd3JpdGUgbmV3IGZ1bmN0aW9ucyBmb3IgUmVhZGxpbmUsIHlvdSBuZWVkIHRvIGtub3cgdGhlCitjYWxsaW5nIGNvbnZlbnRpb25zIGZvciBrZXlib2FyZC1pbnZva2VkIGZ1bmN0aW9ucywgYW5kIHRoZSBuYW1lcyBvZiB0aGUKK3ZhcmlhYmxlcyB0aGF0IGRlc2NyaWJlIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBsaW5lIHJlYWQgc28gZmFyLgorCitUaGUgY2FsbGluZyBzZXF1ZW5jZSBmb3IgYSBjb21tYW5kIEBjb2Rle2Zvb30gbG9va3MgbGlrZQorCitAZXhhbXBsZQorQGNvZGV7aW50IGZvbyAoaW50IGNvdW50LCBpbnQga2V5KX0KK0BlbmQgZXhhbXBsZQorCitAbm9pbmRlbnQKK3doZXJlIEB2YXJ7Y291bnR9IGlzIHRoZSBudW1lcmljIGFyZ3VtZW50IChvciAxIGlmIGRlZmF1bHRlZCkgYW5kCitAdmFye2tleX0gaXMgdGhlIGtleSB0aGF0IGludm9rZWQgdGhpcyBmdW5jdGlvbi4KKworSXQgaXMgY29tcGxldGVseSB1cCB0byB0aGUgZnVuY3Rpb24gYXMgdG8gd2hhdCBzaG91bGQgYmUgZG9uZSB3aXRoIHRoZQorbnVtZXJpYyBhcmd1bWVudC4gIFNvbWUgZnVuY3Rpb25zIHVzZSBpdCBhcyBhIHJlcGVhdCBjb3VudCwgc29tZQorYXMgYSBmbGFnLCBhbmQgb3RoZXJzIHRvIGNob29zZSBhbHRlcm5hdGUgYmVoYXZpb3IgKHJlZnJlc2hpbmcgdGhlIGN1cnJlbnQKK2xpbmUgYXMgb3Bwb3NlZCB0byByZWZyZXNoaW5nIHRoZSBzY3JlZW4sIGZvciBleGFtcGxlKS4gIFNvbWUgY2hvb3NlIHRvCitpZ25vcmUgaXQuICBJbiBnZW5lcmFsLCBpZiBhCitmdW5jdGlvbiB1c2VzIHRoZSBudW1lcmljIGFyZ3VtZW50IGFzIGEgcmVwZWF0IGNvdW50LCBpdCBzaG91bGQgYmUgYWJsZQordG8gZG8gc29tZXRoaW5nIHVzZWZ1bCB3aXRoIGJvdGggbmVnYXRpdmUgYW5kIHBvc2l0aXZlIGFyZ3VtZW50cy4KK0F0IHRoZSB2ZXJ5IGxlYXN0LCBpdCBzaG91bGQgYmUgYXdhcmUgdGhhdCBpdCBjYW4gYmUgcGFzc2VkIGEKK25lZ2F0aXZlIGFyZ3VtZW50LgorCitBIGNvbW1hbmQgZnVuY3Rpb24gc2hvdWxkIHJldHVybiAwIGlmIGl0cyBhY3Rpb24gY29tcGxldGVzIHN1Y2Nlc3NmdWxseSwKK2FuZCBhIG5vbi16ZXJvIHZhbHVlIGlmIHNvbWUgZXJyb3Igb2NjdXJzLgorVGhpcyBpcyB0aGUgY29udmVudGlvbiBvYmV5ZWQgYnkgYWxsIG9mIHRoZSBidWlsdGluIFJlYWRsaW5lIGJpbmRhYmxlCitjb21tYW5kIGZ1bmN0aW9ucy4KKworQG5vZGUgUmVhZGxpbmUgVmFyaWFibGVzCitAc2VjdGlvbiBSZWFkbGluZSBWYXJpYWJsZXMKKworVGhlc2UgdmFyaWFibGVzIGFyZSBhdmFpbGFibGUgdG8gZnVuY3Rpb24gd3JpdGVycy4KKworQGRlZnR5cGV2YXIge2NoYXIgKn0gcmxfbGluZV9idWZmZXIKK1RoaXMgaXMgdGhlIGxpbmUgZ2F0aGVyZWQgc28gZmFyLiAgWW91IGFyZSB3ZWxjb21lIHRvIG1vZGlmeSB0aGUKK2NvbnRlbnRzIG9mIHRoZSBsaW5lLCBidXQgc2VlIEByZWZ7QWxsb3dpbmcgVW5kb2luZ30uICBUaGUKK2Z1bmN0aW9uIEBjb2Rle3JsX2V4dGVuZF9saW5lX2J1ZmZlcn0gaXMgYXZhaWxhYmxlIHRvIGluY3JlYXNlCit0aGUgbWVtb3J5IGFsbG9jYXRlZCB0byBAY29kZXtybF9saW5lX2J1ZmZlcn0uCitAZW5kIGRlZnR5cGV2YXIKKworQGRlZnR5cGV2YXIgaW50IHJsX3BvaW50CitUaGUgb2Zmc2V0IG9mIHRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbiBpbiBAY29kZXtybF9saW5lX2J1ZmZlcn0KKyh0aGUgQGVtcGh7cG9pbnR9KS4KK0BlbmQgZGVmdHlwZXZhcgorCitAZGVmdHlwZXZhciBpbnQgcmxfZW5kCitUaGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgcHJlc2VudCBpbiBAY29kZXtybF9saW5lX2J1ZmZlcn0uICBXaGVuCitAY29kZXtybF9wb2ludH0gaXMgYXQgdGhlIGVuZCBvZiB0aGUgbGluZSwgQGNvZGV7cmxfcG9pbnR9IGFuZAorQGNvZGV7cmxfZW5kfSBhcmUgZXF1YWwuCitAZW5kIGRlZnR5cGV2YXIKKworQGRlZnR5cGV2YXIgaW50IHJsX21hcmsKK1RoZSBAdmFye21hcmt9IChzYXZlZCBwb3NpdGlvbikgaW4gdGhlIGN1cnJlbnQgbGluZS4gIElmIHNldCwgdGhlIG1hcmsKK2FuZCBwb2ludCBkZWZpbmUgYSBAZW1waHtyZWdpb259LgorQGVuZCBkZWZ0eXBldmFyCisKK0BkZWZ0eXBldmFyIGludCBybF9kb25lCitTZXR0aW5nIHRoaXMgdG8gYSBub24temVybyB2YWx1ZSBjYXVzZXMgUmVhZGxpbmUgdG8gcmV0dXJuIHRoZSBjdXJyZW50CitsaW5lIGltbWVkaWF0ZWx5LgorQGVuZCBkZWZ0eXBldmFyCisKK0BkZWZ0eXBldmFyIGludCBybF9udW1fY2hhcnNfdG9fcmVhZAorU2V0dGluZyB0aGlzIHRvIGEgcG9zaXRpdmUgdmFsdWUgYmVmb3JlIGNhbGxpbmcgQGNvZGV7cmVhZGxpbmUoKX0gY2F1c2VzCitSZWFkbGluZSB0byByZXR1cm4gYWZ0ZXIgYWNjZXB0aW5nIHRoYXQgbWFueSBjaGFyYWN0ZXJzLCByYXRoZXIKK3RoYW4gcmVhZGluZyB1cCB0byBhIGNoYXJhY3RlciBib3VuZCB0byBAY29kZXthY2NlcHQtbGluZX0uCitAZW5kIGRlZnR5cGV2YXIKKworQGRlZnR5cGV2YXIgaW50IHJsX3BlbmRpbmdfaW5wdXQKK1NldHRpbmcgdGhpcyB0byBhIHZhbHVlIG1ha2VzIGl0IHRoZSBuZXh0IGtleXN0cm9rZSByZWFkLiAgVGhpcyBpcyBhCit3YXkgdG8gc3R1ZmYgYSBzaW5nbGUgY2hhcmFjdGVyIGludG8gdGhlIGlucHV0IHN0cmVhbS4KK0BlbmQgZGVmdHlwZXZhcgorCitAZGVmdHlwZXZhciBpbnQgcmxfZGlzcGF0Y2hpbmcKK1NldCB0byBhIG5vbi16ZXJvIHZhbHVlIGlmIGEgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkIGZyb20gYSBrZXkgYmluZGluZzsKK3plcm8gb3RoZXJ3aXNlLiAgQXBwbGljYXRpb24gZnVuY3Rpb25zIGNhbiB0ZXN0IHRoaXMgdG8gZGlzY292ZXIgd2hldGhlcgordGhleSB3ZXJlIGNhbGxlZCBkaXJlY3RseSBvciBieSBSZWFkbGluZSdzIGRpc3BhdGNoaW5nIG1lY2hhbmlzbS4KK0BlbmQgZGVmdHlwZXZhcgorCitAZGVmdHlwZXZhciBpbnQgcmxfZXJhc2VfZW1wdHlfbGluZQorU2V0dGluZyB0aGlzIHRvIGEgbm9uLXplcm8gdmFsdWUgY2F1c2VzIFJlYWRsaW5lIHRvIGNvbXBsZXRlbHkgZXJhc2UKK3RoZSBjdXJyZW50IGxpbmUsIGluY2x1ZGluZyBhbnkgcHJvbXB0LCBhbnkgdGltZSBhIG5ld2xpbmUgaXMgdHlwZWQgYXMKK3RoZSBvbmx5IGNoYXJhY3RlciBvbiBhbiBvdGhlcndpc2UtZW1wdHkgbGluZS4gIFRoZSBjdXJzb3IgaXMgbW92ZWQgdG8KK3RoZSBiZWdpbm5pbmcgb2YgdGhlIG5ld2x5LWJsYW5rIGxpbmUuCitAZW5kIGRlZnR5cGV2YXIKKworQGRlZnR5cGV2YXIge2NoYXIgKn0gcmxfcHJvbXB0CitUaGUgcHJvbXB0IFJlYWRsaW5lIHVzZXMuICBUaGlzIGlzIHNldCBmcm9tIHRoZSBhcmd1bWVudCB0bworQGNvZGV7cmVhZGxpbmUoKX0sIGFuZCBzaG91bGQgbm90IGJlIGFzc2lnbmVkIHRvIGRpcmVjdGx5LgorVGhlIEBjb2Rle3JsX3NldF9wcm9tcHQoKX0gZnVuY3Rpb24gKEBweHJlZntSZWRpc3BsYXl9KSBtYXkKK2JlIHVzZWQgdG8gbW9kaWZ5IHRoZSBwcm9tcHQgc3RyaW5nIGFmdGVyIGNhbGxpbmcgQGNvZGV7cmVhZGxpbmUoKX0uCitAZW5kIGRlZnR5cGV2YXIKKworQGRlZnR5cGV2YXIgaW50IHJsX2FscmVhZHlfcHJvbXB0ZWQKK0lmIGFuIGFwcGxpY2F0aW9uIHdpc2hlcyB0byBkaXNwbGF5IHRoZSBwcm9tcHQgaXRzZWxmLCByYXRoZXIgdGhhbiBoYXZlCitSZWFkbGluZSBkbyBpdCB0aGUgZmlyc3QgdGltZSBAY29kZXtyZWFkbGluZSgpfSBpcyBjYWxsZWQsIGl0IHNob3VsZCBzZXQKK3RoaXMgdmFyaWFibGUgdG8gYSBub24temVybyB2YWx1ZSBhZnRlciBkaXNwbGF5aW5nIHRoZSBwcm9tcHQuCitUaGUgcHJvbXB0IG11c3QgYWxzbyBiZSBwYXNzZWQgYXMgdGhlIGFyZ3VtZW50IHRvIEBjb2Rle3JlYWRsaW5lKCl9IHNvCit0aGUgcmVkaXNwbGF5IGZ1bmN0aW9ucyBjYW4gdXBkYXRlIHRoZSBkaXNwbGF5IHByb3Blcmx5LgorVGhlIGNhbGxpbmcgYXBwbGljYXRpb24gaXMgcmVzcG9uc2libGUgZm9yIG1hbmFnaW5nIHRoZSB2YWx1ZTsgUmVhZGxpbmUKK25ldmVyIHNldHMgaXQuCitAZW5kIGRlZnR5cGV2YXIKKworQGRlZnR5cGV2YXIge2NvbnN0IGNoYXIgKn0gcmxfbGlicmFyeV92ZXJzaW9uCitUaGUgdmVyc2lvbiBudW1iZXIgb2YgdGhpcyByZXZpc2lvbiBvZiB0aGUgbGlicmFyeS4KK0BlbmQgZGVmdHlwZXZhcgorCitAZGVmdHlwZXZhciBpbnQgcmxfcmVhZGxpbmVfdmVyc2lvbgorQW4gaW50ZWdlciBlbmNvZGluZyB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LiAgVGhlIGVuY29kaW5nIGlzCitvZiB0aGUgZm9ybSAweEB2YXJ7TU1tbX0sIHdoZXJlIEB2YXJ7TU19IGlzIHRoZSB0d28tZGlnaXQgbWFqb3IgdmVyc2lvbgorbnVtYmVyLCBhbmQgQHZhcnttbX0gaXMgdGhlIHR3by1kaWdpdCBtaW5vciB2ZXJzaW9uIG51bWJlci4KK0ZvciBleGFtcGxlLCBmb3IgUmVhZGxpbmUtNC4yLCBAY29kZXtybF9yZWFkbGluZV92ZXJzaW9ufSB3b3VsZCBoYXZlIHRoZQordmFsdWUgMHgwNDAyLgorQGVuZCBkZWZ0eXBldmFyCisKK0BkZWZ0eXBldmFyIHtpbnR9IHJsX2dudV9yZWFkbGluZV9wCitBbHdheXMgc2V0IHRvIDEsIGRlbm90aW5nIHRoYXQgdGhpcyBpcyBAc2N7Z251fSByZWFkbGluZSByYXRoZXIgdGhhbiBzb21lCitlbXVsYXRpb24uCitAZW5kIGRlZnR5cGV2YXIKKworQGRlZnR5cGV2YXIge2NvbnN0IGNoYXIgKn0gcmxfdGVybWluYWxfbmFtZQorVGhlIHRlcm1pbmFsIHR5cGUsIHVzZWQgZm9yIGluaXRpYWxpemF0aW9uLiAgSWYgbm90IHNldCBieSB0aGUgYXBwbGljYXRpb24sCitSZWFkbGluZSBzZXRzIHRoaXMgdG8gdGhlIHZhbHVlIG9mIHRoZSBAZW52e1RFUk19IGVudmlyb25tZW50IHZhcmlhYmxlCit0aGUgZmlyc3QgdGltZSBpdCBpcyBjYWxsZWQuCitAZW5kIGRlZnR5cGV2YXIKKworQGRlZnR5cGV2YXIge2NvbnN0IGNoYXIgKn0gcmxfcmVhZGxpbmVfbmFtZQorVGhpcyB2YXJpYWJsZSBpcyBzZXQgdG8gYSB1bmlxdWUgbmFtZSBieSBlYWNoIGFwcGxpY2F0aW9uIHVzaW5nIFJlYWRsaW5lLgorVGhlIHZhbHVlIGFsbG93cyBjb25kaXRpb25hbCBwYXJzaW5nIG9mIHRoZSBpbnB1dHJjIGZpbGUKKyhAcHhyZWZ7Q29uZGl0aW9uYWwgSW5pdCBDb25zdHJ1Y3RzfSkuCitAZW5kIGRlZnR5cGV2YXIKKworQGRlZnR5cGV2YXIge0ZJTEUgKn0gcmxfaW5zdHJlYW0KK1RoZSBzdGRpbyBzdHJlYW0gZnJvbSB3aGljaCBSZWFkbGluZSByZWFkcyBpbnB1dC4KK0lmIEBjb2Rle05VTEx9LCBSZWFkbGluZSBkZWZhdWx0cyB0byBAdmFye3N0ZGlufS4KK0BlbmQgZGVmdHlwZXZhcgorCitAZGVmdHlwZXZhciB7RklMRSAqfSBybF9vdXRzdHJlYW0KK1RoZSBzdGRpbyBzdHJlYW0gdG8gd2hpY2ggUmVhZGxpbmUgcGVyZm9ybXMgb3V0cHV0LgorSWYgQGNvZGV7TlVMTH0sIFJlYWRsaW5lIGRlZmF1bHRzIHRvIEB2YXJ7c3Rkb3V0fS4KK0BlbmQgZGVmdHlwZXZhcgorCitAZGVmdHlwZXZhciBpbnQgcmxfcHJlZmVyX2Vudl93aW5zaXplCitJZiBub24temVybywgUmVhZGxpbmUgZ2l2ZXMgdmFsdWVzIGZvdW5kIGluIHRoZSBAZW52e0xJTkVTfSBhbmQKK0BlbnZ7Q09MVU1OU30gZW52aXJvbm1lbnQgdmFyaWFibGVzIGdyZWF0ZXIgcHJlY2VkZW5jZSB0aGFuIHZhbHVlcyBmZXRjaGVkCitmcm9tIHRoZSBrZXJuZWwgd2hlbiBjb21wdXRpbmcgdGhlIHNjcmVlbiBkaW1lbnNpb25zLgorQGVuZCBkZWZ0eXBldmFyCisKK0BkZWZ0eXBldmFyIHtybF9jb21tYW5kX2Z1bmNfdCAqfSBybF9sYXN0X2Z1bmMKK1RoZSBhZGRyZXNzIG9mIHRoZSBsYXN0IGNvbW1hbmQgZnVuY3Rpb24gUmVhZGxpbmUgZXhlY3V0ZWQuICBNYXkgYmUgdXNlZCB0bwordGVzdCB3aGV0aGVyIG9yIG5vdCBhIGZ1bmN0aW9uIGlzIGJlaW5nIGV4ZWN1dGVkIHR3aWNlIGluIHN1Y2Nlc3Npb24sIGZvcgorZXhhbXBsZS4KK0BlbmQgZGVmdHlwZXZhcgorCitAZGVmdHlwZXZhciB7cmxfaG9va19mdW5jX3QgKn0gcmxfc3RhcnR1cF9ob29rCitJZiBub24temVybywgdGhpcyBpcyB0aGUgYWRkcmVzcyBvZiBhIGZ1bmN0aW9uIHRvIGNhbGwganVzdAorYmVmb3JlIEBjb2Rle3JlYWRsaW5lfSBwcmludHMgdGhlIGZpcnN0IHByb21wdC4KK0BlbmQgZGVmdHlwZXZhcgorCitAZGVmdHlwZXZhciB7cmxfaG9va19mdW5jX3QgKn0gcmxfcHJlX2lucHV0X2hvb2sKK0lmIG5vbi16ZXJvLCB0aGlzIGlzIHRoZSBhZGRyZXNzIG9mIGEgZnVuY3Rpb24gdG8gY2FsbCBhZnRlcgordGhlIGZpcnN0IHByb21wdCBoYXMgYmVlbiBwcmludGVkIGFuZCBqdXN0IGJlZm9yZSBAY29kZXtyZWFkbGluZX0KK3N0YXJ0cyByZWFkaW5nIGlucHV0IGNoYXJhY3RlcnMuCitAZW5kIGRlZnR5cGV2YXIKKworQGRlZnR5cGV2YXIge3JsX2hvb2tfZnVuY190ICp9IHJsX2V2ZW50X2hvb2sKK0lmIG5vbi16ZXJvLCB0aGlzIGlzIHRoZSBhZGRyZXNzIG9mIGEgZnVuY3Rpb24gdG8gY2FsbCBwZXJpb2RpY2FsbHkKK3doZW4gUmVhZGxpbmUgaXMgd2FpdGluZyBmb3IgdGVybWluYWwgaW5wdXQuCitCeSBkZWZhdWx0LCB0aGlzIHdpbGwgYmUgY2FsbGVkIGF0IG1vc3QgdGVuIHRpbWVzIGEgc2Vjb25kIGlmIHRoZXJlCitpcyBubyBrZXlib2FyZCBpbnB1dC4KK0BlbmQgZGVmdHlwZXZhcgorCitAZGVmdHlwZXZhciB7cmxfZ2V0Y19mdW5jX3QgKn0gcmxfZ2V0Y19mdW5jdGlvbgorSWYgbm9uLXplcm8sIFJlYWRsaW5lIHdpbGwgY2FsbCBpbmRpcmVjdGx5IHRocm91Z2ggdGhpcyBwb2ludGVyCit0byBnZXQgYSBjaGFyYWN0ZXIgZnJvbSB0aGUgaW5wdXQgc3RyZWFtLiAgQnkgZGVmYXVsdCwgaXQgaXMgc2V0IHRvCitAY29kZXtybF9nZXRjfSwgdGhlIGRlZmF1bHQgUmVhZGxpbmUgY2hhcmFjdGVyIGlucHV0IGZ1bmN0aW9uCisoQHB4cmVme0NoYXJhY3RlciBJbnB1dH0pLgorQGVuZCBkZWZ0eXBldmFyCisKK0BkZWZ0eXBldmFyIHtybF92b2lkZnVuY190ICp9IHJsX3JlZGlzcGxheV9mdW5jdGlvbgorSWYgbm9uLXplcm8sIFJlYWRsaW5lIHdpbGwgY2FsbCBpbmRpcmVjdGx5IHRocm91Z2ggdGhpcyBwb2ludGVyCit0byB1cGRhdGUgdGhlIGRpc3BsYXkgd2l0aCB0aGUgY3VycmVudCBjb250ZW50cyBvZiB0aGUgZWRpdGluZyBidWZmZXIuCitCeSBkZWZhdWx0LCBpdCBpcyBzZXQgdG8gQGNvZGV7cmxfcmVkaXNwbGF5fSwgdGhlIGRlZmF1bHQgUmVhZGxpbmUKK3JlZGlzcGxheSBmdW5jdGlvbiAoQHB4cmVme1JlZGlzcGxheX0pLgorQGVuZCBkZWZ0eXBldmFyCisKK0BkZWZ0eXBldmFyIHtybF92aW50ZnVuY190ICp9IHJsX3ByZXBfdGVybV9mdW5jdGlvbgorSWYgbm9uLXplcm8sIFJlYWRsaW5lIHdpbGwgY2FsbCBpbmRpcmVjdGx5IHRocm91Z2ggdGhpcyBwb2ludGVyCit0byBpbml0aWFsaXplIHRoZSB0ZXJtaW5hbC4gIFRoZSBmdW5jdGlvbiB0YWtlcyBhIHNpbmdsZSBhcmd1bWVudCwgYW4KK0Bjb2Rle2ludH0gZmxhZyB0aGF0IHNheXMgd2hldGhlciBvciBub3QgdG8gdXNlIGVpZ2h0LWJpdCBjaGFyYWN0ZXJzLgorQnkgZGVmYXVsdCwgdGhpcyBpcyBzZXQgdG8gQGNvZGV7cmxfcHJlcF90ZXJtaW5hbH0KKyhAcHhyZWZ7VGVybWluYWwgTWFuYWdlbWVudH0pLgorQGVuZCBkZWZ0eXBldmFyCisKK0BkZWZ0eXBldmFyIHtybF92b2lkZnVuY190ICp9IHJsX2RlcHJlcF90ZXJtX2Z1bmN0aW9uCitJZiBub24temVybywgUmVhZGxpbmUgd2lsbCBjYWxsIGluZGlyZWN0bHkgdGhyb3VnaCB0aGlzIHBvaW50ZXIKK3RvIHJlc2V0IHRoZSB0ZXJtaW5hbC4gIFRoaXMgZnVuY3Rpb24gc2hvdWxkIHVuZG8gdGhlIGVmZmVjdHMgb2YKK0Bjb2Rle3JsX3ByZXBfdGVybV9mdW5jdGlvbn0uCitCeSBkZWZhdWx0LCB0aGlzIGlzIHNldCB0byBAY29kZXtybF9kZXByZXBfdGVybWluYWx9CisoQHB4cmVme1Rlcm1pbmFsIE1hbmFnZW1lbnR9KS4KK0BlbmQgZGVmdHlwZXZhcgorCitAZGVmdHlwZXZhciB7S2V5bWFwfSBybF9leGVjdXRpbmdfa2V5bWFwCitUaGlzIHZhcmlhYmxlIGlzIHNldCB0byB0aGUga2V5bWFwIChAcHhyZWZ7S2V5bWFwc30pIGluIHdoaWNoIHRoZQorY3VycmVudGx5IGV4ZWN1dGluZyByZWFkbGluZSBmdW5jdGlvbiB3YXMgZm91bmQuCitAZW5kIGRlZnR5cGV2YXIgCisKK0BkZWZ0eXBldmFyIHtLZXltYXB9IHJsX2JpbmRpbmdfa2V5bWFwCitUaGlzIHZhcmlhYmxlIGlzIHNldCB0byB0aGUga2V5bWFwIChAcHhyZWZ7S2V5bWFwc30pIGluIHdoaWNoIHRoZQorbGFzdCBrZXkgYmluZGluZyBvY2N1cnJlZC4KK0BlbmQgZGVmdHlwZXZhciAKKworQGRlZnR5cGV2YXIge2NoYXIgKn0gcmxfZXhlY3V0aW5nX21hY3JvCitUaGlzIHZhcmlhYmxlIGlzIHNldCB0byB0aGUgdGV4dCBvZiBhbnkgY3VycmVudGx5LWV4ZWN1dGluZyBtYWNyby4KK0BlbmQgZGVmdHlwZXZhcgorCitAZGVmdHlwZXZhciB7aW50fSBybF9yZWFkbGluZV9zdGF0ZQorQSB2YXJpYWJsZSB3aXRoIGJpdCB2YWx1ZXMgdGhhdCBlbmNhcHN1bGF0ZSB0aGUgY3VycmVudCBSZWFkbGluZSBzdGF0ZS4KK0EgYml0IGlzIHNldCB3aXRoIHRoZSBAY29kZXtSTF9TRVRTVEFURX0gbWFjcm8sIGFuZCB1bnNldCB3aXRoIHRoZQorQGNvZGV7UkxfVU5TRVRTVEFURX0gbWFjcm8uICBVc2UgdGhlIEBjb2Rle1JMX0lTU1RBVEV9IG1hY3JvIHRvIHRlc3QKK3doZXRoZXIgYSBwYXJ0aWN1bGFyIHN0YXRlIGJpdCBpcyBzZXQuICBDdXJyZW50IHN0YXRlIGJpdHMgaW5jbHVkZToKKworQHRhYmxlIEBjb2RlCitAaXRlbSBSTF9TVEFURV9OT05FCitSZWFkbGluZSBoYXMgbm90IHlldCBiZWVuIGNhbGxlZCwgbm9yIGhhcyBpdCBiZWd1biB0byBpbnRpYWxpemUuCitAaXRlbSBSTF9TVEFURV9JTklUSUFMSVpJTkcKK1JlYWRsaW5lIGlzIGluaXRpYWxpemluZyBpdHMgaW50ZXJuYWwgZGF0YSBzdHJ1Y3R1cmVzLgorQGl0ZW0gUkxfU1RBVEVfSU5JVElBTElaRUQKK1JlYWRsaW5lIGhhcyBjb21wbGV0ZWQgaXRzIGluaXRpYWxpemF0aW9uLgorQGl0ZW0gUkxfU1RBVEVfVEVSTVBSRVBQRUQKK1JlYWRsaW5lIGhhcyBtb2RpZmllZCB0aGUgdGVybWluYWwgbW9kZXMgdG8gZG8gaXRzIG93biBpbnB1dCBhbmQgcmVkaXNwbGF5LgorQGl0ZW0gUkxfU1RBVEVfUkVBRENNRAorUmVhZGxpbmUgaXMgcmVhZGluZyBhIGNvbW1hbmQgZnJvbSB0aGUga2V5Ym9hcmQuCitAaXRlbSBSTF9TVEFURV9NRVRBTkVYVAorUmVhZGxpbmUgaXMgcmVhZGluZyBtb3JlIGlucHV0IGFmdGVyIHJlYWRpbmcgdGhlIG1ldGEtcHJlZml4IGNoYXJhY3Rlci4KK0BpdGVtIFJMX1NUQVRFX0RJU1BBVENISU5HCitSZWFkbGluZSBpcyBkaXNwYXRjaGluZyB0byBhIGNvbW1hbmQuCitAaXRlbSBSTF9TVEFURV9NT1JFSU5QVVQKK1JlYWRsaW5lIGlzIHJlYWRpbmcgbW9yZSBpbnB1dCB3aGlsZSBleGVjdXRpbmcgYW4gZWRpdGluZyBjb21tYW5kLgorQGl0ZW0gUkxfU1RBVEVfSVNFQVJDSAorUmVhZGxpbmUgaXMgcGVyZm9ybWluZyBhbiBpbmNyZW1lbnRhbCBoaXN0b3J5IHNlYXJjaC4KK0BpdGVtIFJMX1NUQVRFX05TRUFSQ0gKK1JlYWRsaW5lIGlzIHBlcmZvcm1pbmcgYSBub24taW5jcmVtZW50YWwgaGlzdG9yeSBzZWFyY2guCitAaXRlbSBSTF9TVEFURV9TRUFSQ0gKK1JlYWRsaW5lIGlzIHNlYXJjaGluZyBiYWNrd2FyZCBvciBmb3J3YXJkIHRocm91Z2ggdGhlIGhpc3RvcnkgZm9yIGEgc3RyaW5nLgorQGl0ZW0gUkxfU1RBVEVfTlVNRVJJQ0FSRworUmVhZGxpbmUgaXMgcmVhZGluZyBhIG51bWVyaWMgYXJndW1lbnQuCitAaXRlbSBSTF9TVEFURV9NQUNST0lOUFVUCitSZWFkbGluZSBpcyBjdXJyZW50bHkgZ2V0dGluZyBpdHMgaW5wdXQgZnJvbSBhIHByZXZpb3VzbHktZGVmaW5lZCBrZXlib2FyZAorbWFjcm8uCitAaXRlbSBSTF9TVEFURV9NQUNST0RFRgorUmVhZGxpbmUgaXMgY3VycmVudGx5IHJlYWRpbmcgY2hhcmFjdGVycyBkZWZpbmluZyBhIGtleWJvYXJkIG1hY3JvLgorQGl0ZW0gUkxfU1RBVEVfT1ZFUldSSVRFCitSZWFkbGluZSBpcyBpbiBvdmVyd3JpdGUgbW9kZS4KK0BpdGVtIFJMX1NUQVRFX0NPTVBMRVRJTkcKK1JlYWRsaW5lIGlzIHBlcmZvcm1pbmcgd29yZCBjb21wbGV0aW9uLgorQGl0ZW0gUkxfU1RBVEVfU0lHSEFORExFUgorUmVhZGxpbmUgaXMgY3VycmVudGx5IGV4ZWN1dGluZyB0aGUgcmVhZGxpbmUgc2lnbmFsIGhhbmRsZXIuCitAaXRlbSBSTF9TVEFURV9VTkRPSU5HCitSZWFkbGluZSBpcyBwZXJmb3JtaW5nIGFuIHVuZG8uCitAaXRlbSBSTF9TVEFURV9ET05FCitSZWFkbGluZSBoYXMgcmVhZCBhIGtleSBzZXF1ZW5jZSBib3VuZCB0byBAY29kZXthY2NlcHQtbGluZX0KK2FuZCBpcyBhYm91dCB0byByZXR1cm4gdGhlIGxpbmUgdG8gdGhlIGNhbGxlci4KK0BlbmQgdGFibGUKKworQGVuZCBkZWZ0eXBldmFyCisKK0BkZWZ0eXBldmFyIHtpbnR9IHJsX2V4cGxpY2l0X2FyZworU2V0IHRvIGEgbm9uLXplcm8gdmFsdWUgaWYgYW4gZXhwbGljaXQgbnVtZXJpYyBhcmd1bWVudCB3YXMgc3BlY2lmaWVkIGJ5Cit0aGUgdXNlci4gIE9ubHkgdmFsaWQgaW4gYSBiaW5kYWJsZSBjb21tYW5kIGZ1bmN0aW9uLgorQGVuZCBkZWZ0eXBldmFyCisKK0BkZWZ0eXBldmFyIHtpbnR9IHJsX251bWVyaWNfYXJnCitTZXQgdG8gdGhlIHZhbHVlIG9mIGFueSBudW1lcmljIGFyZ3VtZW50IGV4cGxpY2l0bHkgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyCitiZWZvcmUgZXhlY3V0aW5nIHRoZSBjdXJyZW50IFJlYWRsaW5lIGZ1bmN0aW9uLiAgT25seSB2YWxpZCBpbiBhIGJpbmRhYmxlCitjb21tYW5kIGZ1bmN0aW9uLgorQGVuZCBkZWZ0eXBldmFyCisKK0BkZWZ0eXBldmFyIHtpbnR9IHJsX2VkaXRpbmdfbW9kZQorU2V0IHRvIGEgdmFsdWUgZGVub3RpbmcgUmVhZGxpbmUncyBjdXJyZW50IGVkaXRpbmcgbW9kZS4gIEEgdmFsdWUgb2YKK0B2YXJ7MX0gbWVhbnMgUmVhZGxpbmUgaXMgY3VycmVudGx5IGluIGVtYWNzIG1vZGU7IEB2YXJ7MH0KK21lYW5zIHRoYXQgdmkgbW9kZSBpcyBhY3RpdmUuCitAZW5kIGRlZnR5cGV2YXIKKworCitAbm9kZSBSZWFkbGluZSBDb252ZW5pZW5jZSBGdW5jdGlvbnMKK0BzZWN0aW9uIFJlYWRsaW5lIENvbnZlbmllbmNlIEZ1bmN0aW9ucworCitAbWVudQorKiBGdW5jdGlvbiBOYW1pbmc6OglIb3cgdG8gZ2l2ZSBhIGZ1bmN0aW9uIHlvdSB3cml0ZSBhIG5hbWUuCisqIEtleW1hcHM6OgkJTWFraW5nIGtleW1hcHMuCisqIEJpbmRpbmcgS2V5czo6CUNoYW5naW5nIEtleW1hcHMuCisqIEFzc29jaWF0aW5nIEZ1bmN0aW9uIE5hbWVzIGFuZCBCaW5kaW5nczo6CVRyYW5zbGF0ZSBmdW5jdGlvbiBuYW1lcyB0bworCQkJCQkJa2V5IHNlcXVlbmNlcy4KKyogQWxsb3dpbmcgVW5kb2luZzo6CUhvdyB0byBtYWtlIHlvdXIgZnVuY3Rpb25zIHVuZG9hYmxlLgorKiBSZWRpc3BsYXk6OgkJRnVuY3Rpb25zIHRvIGNvbnRyb2wgbGluZSBkaXNwbGF5LgorKiBNb2RpZnlpbmcgVGV4dDo6CUZ1bmN0aW9ucyB0byBtb2RpZnkgQGNvZGV7cmxfbGluZV9idWZmZXJ9LgorKiBDaGFyYWN0ZXIgSW5wdXQ6OglGdW5jdGlvbnMgdG8gcmVhZCBrZXlib2FyZCBpbnB1dC4KKyogVGVybWluYWwgTWFuYWdlbWVudDo6CUZ1bmN0aW9ucyB0byBtYW5hZ2UgdGVybWluYWwgc2V0dGluZ3MuCisqIFV0aWxpdHkgRnVuY3Rpb25zOjoJR2VuZXJhbGx5IHVzZWZ1bCBmdW5jdGlvbnMgYW5kIGhvb2tzLgorKiBNaXNjZWxsYW5lb3VzIEZ1bmN0aW9uczo6CUZ1bmN0aW9ucyB0aGF0IGRvbid0IGZhbGwgaW50byBhbnkgY2F0ZWdvcnkuCisqIEFsdGVybmF0ZSBJbnRlcmZhY2U6OglVc2luZyBSZWFkbGluZSBpbiBhIGBjYWxsYmFjaycgZmFzaGlvbi4KKyogQSBSZWFkbGluZSBFeGFtcGxlOjoJCUFuIGV4YW1wbGUgUmVhZGxpbmUgZnVuY3Rpb24uCitAZW5kIG1lbnUKKworQG5vZGUgRnVuY3Rpb24gTmFtaW5nCitAc3Vic2VjdGlvbiBOYW1pbmcgYSBGdW5jdGlvbgorCitUaGUgdXNlciBjYW4gZHluYW1pY2FsbHkgY2hhbmdlIHRoZSBiaW5kaW5ncyBvZiBrZXlzIHdoaWxlIHVzaW5nCitSZWFkbGluZS4gIFRoaXMgaXMgZG9uZSBieSByZXByZXNlbnRpbmcgdGhlIGZ1bmN0aW9uIHdpdGggYSBkZXNjcmlwdGl2ZQorbmFtZS4gIFRoZSB1c2VyIGlzIGFibGUgdG8gdHlwZSB0aGUgZGVzY3JpcHRpdmUgbmFtZSB3aGVuIHJlZmVycmluZyB0bwordGhlIGZ1bmN0aW9uLiAgVGh1cywgaW4gYW4gaW5pdCBmaWxlLCBvbmUgbWlnaHQgZmluZAorCitAZXhhbXBsZQorTWV0YS1SdWJvdXQ6CWJhY2t3YXJkLWtpbGwtd29yZAorQGVuZCBleGFtcGxlCisKK1RoaXMgYmluZHMgdGhlIGtleXN0cm9rZSBAa2V5e01ldGEtUnVib3V0fSB0byB0aGUgZnVuY3Rpb24KK0BlbXBoe2Rlc2NyaXB0aXZlbHl9IG5hbWVkIEBjb2Rle2JhY2t3YXJkLWtpbGwtd29yZH0uICBZb3UsIGFzIHRoZQorcHJvZ3JhbW1lciwgc2hvdWxkIGJpbmQgdGhlIGZ1bmN0aW9ucyB5b3Ugd3JpdGUgdG8gZGVzY3JpcHRpdmUgbmFtZXMgYXMKK3dlbGwuICBSZWFkbGluZSBwcm92aWRlcyBhIGZ1bmN0aW9uIGZvciBkb2luZyB0aGF0OgorCitAZGVmdHlwZWZ1biBpbnQgcmxfYWRkX2RlZnVuIChjb25zdCBjaGFyICpuYW1lLCBybF9jb21tYW5kX2Z1bmNfdCAqZnVuY3Rpb24sIGludCBrZXkpCitBZGQgQHZhcntuYW1lfSB0byB0aGUgbGlzdCBvZiBuYW1lZCBmdW5jdGlvbnMuICBNYWtlIEB2YXJ7ZnVuY3Rpb259IGJlCit0aGUgZnVuY3Rpb24gdGhhdCBnZXRzIGNhbGxlZC4gIElmIEB2YXJ7a2V5fSBpcyBub3QgLTEsIHRoZW4gYmluZCBpdCB0bworQHZhcntmdW5jdGlvbn0gdXNpbmcgQGNvZGV7cmxfYmluZF9rZXkoKX0uCitAZW5kIGRlZnR5cGVmdW4KKworVXNpbmcgdGhpcyBmdW5jdGlvbiBhbG9uZSBpcyBzdWZmaWNpZW50IGZvciBtb3N0IGFwcGxpY2F0aW9ucy4KK0l0IGlzIHRoZSByZWNvbW1lbmRlZCB3YXkgdG8gYWRkIGEgZmV3IGZ1bmN0aW9ucyB0byB0aGUgZGVmYXVsdAorZnVuY3Rpb25zIHRoYXQgUmVhZGxpbmUgaGFzIGJ1aWx0IGluLgorSWYgeW91IG5lZWQgdG8gZG8gc29tZXRoaW5nIG90aGVyIHRoYW4gYWRkaW5nIGEgZnVuY3Rpb24gdG8gUmVhZGxpbmUsCit5b3UgbWF5IG5lZWQgdG8gdXNlIHRoZSB1bmRlcmx5aW5nIGZ1bmN0aW9ucyBkZXNjcmliZWQgYmVsb3cuCisKK0Bub2RlIEtleW1hcHMKK0BzdWJzZWN0aW9uIFNlbGVjdGluZyBhIEtleW1hcAorCitLZXkgYmluZGluZ3MgdGFrZSBwbGFjZSBvbiBhIEBkZm57a2V5bWFwfS4gIFRoZSBrZXltYXAgaXMgdGhlCithc3NvY2lhdGlvbiBiZXR3ZWVuIHRoZSBrZXlzIHRoYXQgdGhlIHVzZXIgdHlwZXMgYW5kIHRoZSBmdW5jdGlvbnMgdGhhdAorZ2V0IHJ1bi4gIFlvdSBjYW4gbWFrZSB5b3VyIG93biBrZXltYXBzLCBjb3B5IGV4aXN0aW5nIGtleW1hcHMsIGFuZCB0ZWxsCitSZWFkbGluZSB3aGljaCBrZXltYXAgdG8gdXNlLgorCitAZGVmdHlwZWZ1biBLZXltYXAgcmxfbWFrZV9iYXJlX2tleW1hcCAodm9pZCkKK1JldHVybnMgYSBuZXcsIGVtcHR5IGtleW1hcC4gIFRoZSBzcGFjZSBmb3IgdGhlIGtleW1hcCBpcyBhbGxvY2F0ZWQgd2l0aAorQGNvZGV7bWFsbG9jKCl9OyB0aGUgY2FsbGVyIHNob3VsZCBmcmVlIGl0IGJ5IGNhbGxpbmcKK0Bjb2Rle3JsX2Rpc2NhcmRfa2V5bWFwKCl9IHdoZW4gZG9uZS4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biBLZXltYXAgcmxfY29weV9rZXltYXAgKEtleW1hcCBtYXApCitSZXR1cm4gYSBuZXcga2V5bWFwIHdoaWNoIGlzIGEgY29weSBvZiBAdmFye21hcH0uCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4gS2V5bWFwIHJsX21ha2Vfa2V5bWFwICh2b2lkKQorUmV0dXJuIGEgbmV3IGtleW1hcCB3aXRoIHRoZSBwcmludGluZyBjaGFyYWN0ZXJzIGJvdW5kIHRvIHJsX2luc2VydCwKK3RoZSBsb3dlcmNhc2UgTWV0YSBjaGFyYWN0ZXJzIGJvdW5kIHRvIHJ1biB0aGVpciBlcXVpdmFsZW50cywgYW5kCit0aGUgTWV0YSBkaWdpdHMgYm91bmQgdG8gcHJvZHVjZSBudW1lcmljIGFyZ3VtZW50cy4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biB2b2lkIHJsX2Rpc2NhcmRfa2V5bWFwIChLZXltYXAga2V5bWFwKQorRnJlZSB0aGUgc3RvcmFnZSBhc3NvY2lhdGVkIHdpdGggQHZhcntrZXltYXB9LgorQGVuZCBkZWZ0eXBlZnVuCisKK1JlYWRsaW5lIGhhcyBzZXZlcmFsIGludGVybmFsIGtleW1hcHMuICBUaGVzZSBmdW5jdGlvbnMgYWxsb3cgeW91IHRvCitjaGFuZ2Ugd2hpY2gga2V5bWFwIGlzIGFjdGl2ZS4KKworQGRlZnR5cGVmdW4gS2V5bWFwIHJsX2dldF9rZXltYXAgKHZvaWQpCitSZXR1cm5zIHRoZSBjdXJyZW50bHkgYWN0aXZlIGtleW1hcC4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biB2b2lkIHJsX3NldF9rZXltYXAgKEtleW1hcCBrZXltYXApCitNYWtlcyBAdmFye2tleW1hcH0gdGhlIGN1cnJlbnRseSBhY3RpdmUga2V5bWFwLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIEtleW1hcCBybF9nZXRfa2V5bWFwX2J5X25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpCitSZXR1cm4gdGhlIGtleW1hcCBtYXRjaGluZyBAdmFye25hbWV9LiAgQHZhcntuYW1lfSBpcyBvbmUgd2hpY2ggd291bGQKK2JlIHN1cHBsaWVkIGluIGEgQGNvZGV7c2V0IGtleW1hcH0gaW5wdXRyYyBsaW5lIChAcHhyZWZ7UmVhZGxpbmUgSW5pdCBGaWxlfSkuCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4ge2NoYXIgKn0gcmxfZ2V0X2tleW1hcF9uYW1lIChLZXltYXAga2V5bWFwKQorUmV0dXJuIHRoZSBuYW1lIG1hdGNoaW5nIEB2YXJ7a2V5bWFwfS4gIEB2YXJ7bmFtZX0gaXMgb25lIHdoaWNoIHdvdWxkCitiZSBzdXBwbGllZCBpbiBhIEBjb2Rle3NldCBrZXltYXB9IGlucHV0cmMgbGluZSAoQHB4cmVme1JlYWRsaW5lIEluaXQgRmlsZX0pLgorQGVuZCBkZWZ0eXBlZnVuCisKK0Bub2RlIEJpbmRpbmcgS2V5cworQHN1YnNlY3Rpb24gQmluZGluZyBLZXlzCisKK0tleSBzZXF1ZW5jZXMgYXJlIGFzc29jaWF0ZSB3aXRoIGZ1bmN0aW9ucyB0aHJvdWdoIHRoZSBrZXltYXAuCitSZWFkbGluZSBoYXMgc2V2ZXJhbCBpbnRlcm5hbCBrZXltYXBzOiBAY29kZXtlbWFjc19zdGFuZGFyZF9rZXltYXB9LAorQGNvZGV7ZW1hY3NfbWV0YV9rZXltYXB9LCBAY29kZXtlbWFjc19jdGx4X2tleW1hcH0sCitAY29kZXt2aV9tb3ZlbWVudF9rZXltYXB9LCBhbmQgQGNvZGV7dmlfaW5zZXJ0aW9uX2tleW1hcH0uCitAY29kZXtlbWFjc19zdGFuZGFyZF9rZXltYXB9IGlzIHRoZSBkZWZhdWx0LCBhbmQgdGhlIGV4YW1wbGVzIGluCit0aGlzIG1hbnVhbCBhc3N1bWUgdGhhdC4KKworU2luY2UgQGNvZGV7cmVhZGxpbmUoKX0gaW5zdGFsbHMgYSBzZXQgb2YgZGVmYXVsdCBrZXkgYmluZGluZ3MgdGhlIGZpcnN0Cit0aW1lIGl0IGlzIGNhbGxlZCwgdGhlcmUgaXMgYWx3YXlzIHRoZSBkYW5nZXIgdGhhdCBhIGN1c3RvbSBiaW5kaW5nCitpbnN0YWxsZWQgYmVmb3JlIHRoZSBmaXJzdCBjYWxsIHRvIEBjb2Rle3JlYWRsaW5lKCl9IHdpbGwgYmUgb3ZlcnJpZGRlbi4KK0FuIGFsdGVybmF0ZSBtZWNoYW5pc20gaXMgdG8gaW5zdGFsbCBjdXN0b20ga2V5IGJpbmRpbmdzIGluIGFuCitpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBhc3NpZ25lZCB0byB0aGUgQGNvZGV7cmxfc3RhcnR1cF9ob29rfSB2YXJpYWJsZQorKEBweHJlZntSZWFkbGluZSBWYXJpYWJsZXN9KS4KKworVGhlc2UgZnVuY3Rpb25zIG1hbmFnZSBrZXkgYmluZGluZ3MuCisKK0BkZWZ0eXBlZnVuIGludCBybF9iaW5kX2tleSAoaW50IGtleSwgcmxfY29tbWFuZF9mdW5jX3QgKmZ1bmN0aW9uKQorQmluZHMgQHZhcntrZXl9IHRvIEB2YXJ7ZnVuY3Rpb259IGluIHRoZSBjdXJyZW50bHkgYWN0aXZlIGtleW1hcC4KK1JldHVybnMgbm9uLXplcm8gaW4gdGhlIGNhc2Ugb2YgYW4gaW52YWxpZCBAdmFye2tleX0uCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4gaW50IHJsX2JpbmRfa2V5X2luX21hcCAoaW50IGtleSwgcmxfY29tbWFuZF9mdW5jX3QgKmZ1bmN0aW9uLCBLZXltYXAgbWFwKQorQmluZCBAdmFye2tleX0gdG8gQHZhcntmdW5jdGlvbn0gaW4gQHZhcnttYXB9LgorUmV0dXJucyBub24temVybyBpbiB0aGUgY2FzZSBvZiBhbiBpbnZhbGlkIEB2YXJ7a2V5fS4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biBpbnQgcmxfYmluZF9rZXlfaWZfdW5ib3VuZCAoaW50IGtleSwgcmxfY29tbWFuZF9mdW5jX3QgKmZ1bmN0aW9uKQorQmluZHMgQHZhcntrZXl9IHRvIEB2YXJ7ZnVuY3Rpb259IGlmIGl0IGlzIG5vdCBhbHJlYWR5IGJvdW5kIGluIHRoZQorY3VycmVudGx5IGFjdGl2ZSBrZXltYXAuCitSZXR1cm5zIG5vbi16ZXJvIGluIHRoZSBjYXNlIG9mIGFuIGludmFsaWQgQHZhcntrZXl9IG9yIGlmIEB2YXJ7a2V5fSBpcworYWxyZWFkeSBib3VuZC4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biBpbnQgcmxfYmluZF9rZXlfaWZfdW5ib3VuZF9pbl9tYXAgKGludCBrZXksIHJsX2NvbW1hbmRfZnVuY190ICpmdW5jdGlvbiwgS2V5bWFwIG1hcCkKK0JpbmRzIEB2YXJ7a2V5fSB0byBAdmFye2Z1bmN0aW9ufSBpZiBpdCBpcyBub3QgYWxyZWFkeSBib3VuZCBpbiBAdmFye21hcH0uCitSZXR1cm5zIG5vbi16ZXJvIGluIHRoZSBjYXNlIG9mIGFuIGludmFsaWQgQHZhcntrZXl9IG9yIGlmIEB2YXJ7a2V5fSBpcworYWxyZWFkeSBib3VuZC4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biBpbnQgcmxfdW5iaW5kX2tleSAoaW50IGtleSkKK0JpbmQgQHZhcntrZXl9IHRvIHRoZSBudWxsIGZ1bmN0aW9uIGluIHRoZSBjdXJyZW50bHkgYWN0aXZlIGtleW1hcC4KK1JldHVybnMgbm9uLXplcm8gaW4gY2FzZSBvZiBlcnJvci4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biBpbnQgcmxfdW5iaW5kX2tleV9pbl9tYXAgKGludCBrZXksIEtleW1hcCBtYXApCitCaW5kIEB2YXJ7a2V5fSB0byB0aGUgbnVsbCBmdW5jdGlvbiBpbiBAdmFye21hcH0uCitSZXR1cm5zIG5vbi16ZXJvIGluIGNhc2Ugb2YgZXJyb3IuCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4gaW50IHJsX3VuYmluZF9mdW5jdGlvbl9pbl9tYXAgKHJsX2NvbW1hbmRfZnVuY190ICpmdW5jdGlvbiwgS2V5bWFwIG1hcCkKK1VuYmluZCBhbGwga2V5cyB0aGF0IGV4ZWN1dGUgQHZhcntmdW5jdGlvbn0gaW4gQHZhcnttYXB9LgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBybF91bmJpbmRfY29tbWFuZF9pbl9tYXAgKGNvbnN0IGNoYXIgKmNvbW1hbmQsIEtleW1hcCBtYXApCitVbmJpbmQgYWxsIGtleXMgdGhhdCBhcmUgYm91bmQgdG8gQHZhcntjb21tYW5kfSBpbiBAdmFye21hcH0uCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4gaW50IHJsX2JpbmRfa2V5c2VxIChjb25zdCBjaGFyICprZXlzZXEsIHJsX2NvbW1hbmRfZnVuY190ICpmdW5jdGlvbikKK0JpbmQgdGhlIGtleSBzZXF1ZW5jZSByZXByZXNlbnRlZCBieSB0aGUgc3RyaW5nIEB2YXJ7a2V5c2VxfSB0byB0aGUgZnVuY3Rpb24KK0B2YXJ7ZnVuY3Rpb259LCBiZWdpbm5pbmcgaW4gdGhlIGN1cnJlbnQga2V5bWFwLgorVGhpcyBtYWtlcyBuZXcga2V5bWFwcyBhcyBuZWNlc3NhcnkuCitUaGUgcmV0dXJuIHZhbHVlIGlzIG5vbi16ZXJvIGlmIEB2YXJ7a2V5c2VxfSBpcyBpbnZhbGlkLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBybF9iaW5kX2tleXNlcV9pbl9tYXAgKGNvbnN0IGNoYXIgKmtleXNlcSwgcmxfY29tbWFuZF9mdW5jX3QgKmZ1bmN0aW9uLCBLZXltYXAgbWFwKQorQmluZCB0aGUga2V5IHNlcXVlbmNlIHJlcHJlc2VudGVkIGJ5IHRoZSBzdHJpbmcgQHZhcntrZXlzZXF9IHRvIHRoZSBmdW5jdGlvbgorQHZhcntmdW5jdGlvbn0uICBUaGlzIG1ha2VzIG5ldyBrZXltYXBzIGFzIG5lY2Vzc2FyeS4KK0luaXRpYWwgYmluZGluZ3MgYXJlIHBlcmZvcm1lZCBpbiBAdmFye21hcH0uCitUaGUgcmV0dXJuIHZhbHVlIGlzIG5vbi16ZXJvIGlmIEB2YXJ7a2V5c2VxfSBpcyBpbnZhbGlkLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBybF9zZXRfa2V5IChjb25zdCBjaGFyICprZXlzZXEsIHJsX2NvbW1hbmRfZnVuY190ICpmdW5jdGlvbiwgS2V5bWFwIG1hcCkKK0VxdWl2YWxlbnQgdG8gQGNvZGV7cmxfYmluZF9rZXlzZXFfaW5fbWFwfS4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biBpbnQgcmxfYmluZF9rZXlzZXFfaWZfdW5ib3VuZCAoY29uc3QgY2hhciAqa2V5c2VxLCBybF9jb21tYW5kX2Z1bmNfdCAqZnVuY3Rpb24pCitCaW5kcyBAdmFye2tleXNlcX0gdG8gQHZhcntmdW5jdGlvbn0gaWYgaXQgaXMgbm90IGFscmVhZHkgYm91bmQgaW4gdGhlCitjdXJyZW50bHkgYWN0aXZlIGtleW1hcC4KK1JldHVybnMgbm9uLXplcm8gaW4gdGhlIGNhc2Ugb2YgYW4gaW52YWxpZCBAdmFye2tleXNlcX0gb3IgaWYgQHZhcntrZXlzZXF9IGlzCithbHJlYWR5IGJvdW5kLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBybF9iaW5kX2tleXNlcV9pZl91bmJvdW5kX2luX21hcCAoY29uc3QgY2hhciAqa2V5c2VxLCBybF9jb21tYW5kX2Z1bmNfdCAqZnVuY3Rpb24sIEtleW1hcCBtYXApCitCaW5kcyBAdmFye2tleXNlcX0gdG8gQHZhcntmdW5jdGlvbn0gaWYgaXQgaXMgbm90IGFscmVhZHkgYm91bmQgaW4gQHZhcnttYXB9LgorUmV0dXJucyBub24temVybyBpbiB0aGUgY2FzZSBvZiBhbiBpbnZhbGlkIEB2YXJ7a2V5c2VxfSBvciBpZiBAdmFye2tleXNlcX0gaXMKK2FscmVhZHkgYm91bmQuCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4gaW50IHJsX2dlbmVyaWNfYmluZCAoaW50IHR5cGUsIGNvbnN0IGNoYXIgKmtleXNlcSwgY2hhciAqZGF0YSwgS2V5bWFwIG1hcCkKK0JpbmQgdGhlIGtleSBzZXF1ZW5jZSByZXByZXNlbnRlZCBieSB0aGUgc3RyaW5nIEB2YXJ7a2V5c2VxfSB0byB0aGUgYXJiaXRyYXJ5Citwb2ludGVyIEB2YXJ7ZGF0YX0uICBAdmFye3R5cGV9IHNheXMgd2hhdCBraW5kIG9mIGRhdGEgaXMgcG9pbnRlZCB0byBieQorQHZhcntkYXRhfTsgdGhpcyBjYW4gYmUgYSBmdW5jdGlvbiAoQGNvZGV7SVNGVU5DfSksIGEgbWFjcm8KKyhAY29kZXtJU01BQ1J9KSwgb3IgYSBrZXltYXAgKEBjb2Rle0lTS01BUH0pLiAgVGhpcyBtYWtlcyBuZXcga2V5bWFwcyBhcworbmVjZXNzYXJ5LiAgVGhlIGluaXRpYWwga2V5bWFwIGluIHdoaWNoIHRvIGRvIGJpbmRpbmdzIGlzIEB2YXJ7bWFwfS4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biBpbnQgcmxfcGFyc2VfYW5kX2JpbmQgKGNoYXIgKmxpbmUpCitQYXJzZSBAdmFye2xpbmV9IGFzIGlmIGl0IGhhZCBiZWVuIHJlYWQgZnJvbSB0aGUgQGNvZGV7aW5wdXRyY30gZmlsZSBhbmQKK3BlcmZvcm0gYW55IGtleSBiaW5kaW5ncyBhbmQgdmFyaWFibGUgYXNzaWdubWVudHMgZm91bmQKKyhAcHhyZWZ7UmVhZGxpbmUgSW5pdCBGaWxlfSkuCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4gaW50IHJsX3JlYWRfaW5pdF9maWxlIChjb25zdCBjaGFyICpmaWxlbmFtZSkKK1JlYWQga2V5YmluZGluZ3MgYW5kIHZhcmlhYmxlIGFzc2lnbm1lbnRzIGZyb20gQHZhcntmaWxlbmFtZX0KKyhAcHhyZWZ7UmVhZGxpbmUgSW5pdCBGaWxlfSkuCitAZW5kIGRlZnR5cGVmdW4KKworQG5vZGUgQXNzb2NpYXRpbmcgRnVuY3Rpb24gTmFtZXMgYW5kIEJpbmRpbmdzCitAc3Vic2VjdGlvbiBBc3NvY2lhdGluZyBGdW5jdGlvbiBOYW1lcyBhbmQgQmluZGluZ3MKKworVGhlc2UgZnVuY3Rpb25zIGFsbG93IHlvdSB0byBmaW5kIG91dCB3aGF0IGtleXMgaW52b2tlIG5hbWVkIGZ1bmN0aW9ucworYW5kIHRoZSBmdW5jdGlvbnMgaW52b2tlZCBieSBhIHBhcnRpY3VsYXIga2V5IHNlcXVlbmNlLiAgWW91IG1heSBhbHNvCithc3NvY2lhdGUgYSBuZXcgZnVuY3Rpb24gbmFtZSB3aXRoIGFuIGFyYml0cmFyeSBmdW5jdGlvbi4KKworQGRlZnR5cGVmdW4ge3JsX2NvbW1hbmRfZnVuY190ICp9IHJsX25hbWVkX2Z1bmN0aW9uIChjb25zdCBjaGFyICpuYW1lKQorUmV0dXJuIHRoZSBmdW5jdGlvbiB3aXRoIG5hbWUgQHZhcntuYW1lfS4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biB7cmxfY29tbWFuZF9mdW5jX3QgKn0gcmxfZnVuY3Rpb25fb2Zfa2V5c2VxIChjb25zdCBjaGFyICprZXlzZXEsIEtleW1hcCBtYXAsIGludCAqdHlwZSkKK1JldHVybiB0aGUgZnVuY3Rpb24gaW52b2tlZCBieSBAdmFye2tleXNlcX0gaW4ga2V5bWFwIEB2YXJ7bWFwfS4KK0lmIEB2YXJ7bWFwfSBpcyBAY29kZXtOVUxMfSwgdGhlIGN1cnJlbnQga2V5bWFwIGlzIHVzZWQuICBJZiBAdmFye3R5cGV9IGlzCitub3QgQGNvZGV7TlVMTH0sIHRoZSB0eXBlIG9mIHRoZSBvYmplY3QgaXMgcmV0dXJuZWQgaW4gdGhlIEBjb2Rle2ludH0gdmFyaWFibGUKK2l0IHBvaW50cyB0byAob25lIG9mIEBjb2Rle0lTRlVOQ30sIEBjb2Rle0lTS01BUH0sIG9yIEBjb2Rle0lTTUFDUn0pLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIHtjaGFyICoqfSBybF9pbnZva2luZ19rZXlzZXFzIChybF9jb21tYW5kX2Z1bmNfdCAqZnVuY3Rpb24pCitSZXR1cm4gYW4gYXJyYXkgb2Ygc3RyaW5ncyByZXByZXNlbnRpbmcgdGhlIGtleSBzZXF1ZW5jZXMgdXNlZCB0bworaW52b2tlIEB2YXJ7ZnVuY3Rpb259IGluIHRoZSBjdXJyZW50IGtleW1hcC4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biB7Y2hhciAqKn0gcmxfaW52b2tpbmdfa2V5c2Vxc19pbl9tYXAgKHJsX2NvbW1hbmRfZnVuY190ICpmdW5jdGlvbiwgS2V5bWFwIG1hcCkKK1JldHVybiBhbiBhcnJheSBvZiBzdHJpbmdzIHJlcHJlc2VudGluZyB0aGUga2V5IHNlcXVlbmNlcyB1c2VkIHRvCitpbnZva2UgQHZhcntmdW5jdGlvbn0gaW4gdGhlIGtleW1hcCBAdmFye21hcH0uCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4gdm9pZCBybF9mdW5jdGlvbl9kdW1wZXIgKGludCByZWFkYWJsZSkKK1ByaW50IHRoZSByZWFkbGluZSBmdW5jdGlvbiBuYW1lcyBhbmQgdGhlIGtleSBzZXF1ZW5jZXMgY3VycmVudGx5Citib3VuZCB0byB0aGVtIHRvIEBjb2Rle3JsX291dHN0cmVhbX0uICBJZiBAdmFye3JlYWRhYmxlfSBpcyBub24temVybywKK3RoZSBsaXN0IGlzIGZvcm1hdHRlZCBpbiBzdWNoIGEgd2F5IHRoYXQgaXQgY2FuIGJlIG1hZGUgcGFydCBvZiBhbgorQGNvZGV7aW5wdXRyY30gZmlsZSBhbmQgcmUtcmVhZC4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biB2b2lkIHJsX2xpc3RfZnVubWFwX25hbWVzICh2b2lkKQorUHJpbnQgdGhlIG5hbWVzIG9mIGFsbCBiaW5kYWJsZSBSZWFkbGluZSBmdW5jdGlvbnMgdG8gQGNvZGV7cmxfb3V0c3RyZWFtfS4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biB7Y29uc3QgY2hhciAqKn0gcmxfZnVubWFwX25hbWVzICh2b2lkKQorUmV0dXJuIGEgTlVMTCB0ZXJtaW5hdGVkIGFycmF5IG9mIGtub3duIGZ1bmN0aW9uIG5hbWVzLiAgVGhlIGFycmF5IGlzCitzb3J0ZWQuICBUaGUgYXJyYXkgaXRzZWxmIGlzIGFsbG9jYXRlZCwgYnV0IG5vdCB0aGUgc3RyaW5ncyBpbnNpZGUuICBZb3UKK3Nob3VsZCBAY29kZXtmcmVlKCl9IHRoZSBhcnJheSB3aGVuIHlvdSBhcmUgZG9uZSwgYnV0IG5vdCB0aGUgcG9pbnRlcnMuCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4gaW50IHJsX2FkZF9mdW5tYXBfZW50cnkgKGNvbnN0IGNoYXIgKm5hbWUsIHJsX2NvbW1hbmRfZnVuY190ICpmdW5jdGlvbikKK0FkZCBAdmFye25hbWV9IHRvIHRoZSBsaXN0IG9mIGJpbmRhYmxlIFJlYWRsaW5lIGNvbW1hbmQgbmFtZXMsIGFuZCBtYWtlCitAdmFye2Z1bmN0aW9ufSB0aGUgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gQHZhcntuYW1lfSBpcyBpbnZva2VkLgorQGVuZCBkZWZ0eXBlZnVuCisKK0Bub2RlIEFsbG93aW5nIFVuZG9pbmcKK0BzdWJzZWN0aW9uIEFsbG93aW5nIFVuZG9pbmcKKworU3VwcG9ydGluZyB0aGUgdW5kbyBjb21tYW5kIGlzIGEgcGFpbmxlc3MgdGhpbmcsIGFuZCBtYWtlcyB5b3VyCitmdW5jdGlvbnMgbXVjaCBtb3JlIHVzZWZ1bC4gIEl0IGlzIGNlcnRhaW5seSBlYXN5IHRvIHRyeQorc29tZXRoaW5nIGlmIHlvdSBrbm93IHlvdSBjYW4gdW5kbyBpdC4KKworSWYgeW91ciBmdW5jdGlvbiBzaW1wbHkgaW5zZXJ0cyB0ZXh0IG9uY2UsIG9yIGRlbGV0ZXMgdGV4dCBvbmNlLCBhbmQKK3VzZXMgQGNvZGV7cmxfaW5zZXJ0X3RleHQoKX0gb3IgQGNvZGV7cmxfZGVsZXRlX3RleHQoKX0gdG8gZG8gaXQsIHRoZW4KK3VuZG9pbmcgaXMgYWxyZWFkeSBkb25lIGZvciB5b3UgYXV0b21hdGljYWxseS4KKworSWYgeW91IGRvIG11bHRpcGxlIGluc2VydGlvbnMgb3IgbXVsdGlwbGUgZGVsZXRpb25zLCBvciBhbnkgY29tYmluYXRpb24KK29mIHRoZXNlIG9wZXJhdGlvbnMsIHlvdSBzaG91bGQgZ3JvdXAgdGhlbSB0b2dldGhlciBpbnRvIG9uZSBvcGVyYXRpb24uCitUaGlzIGlzIGRvbmUgd2l0aCBAY29kZXtybF9iZWdpbl91bmRvX2dyb3VwKCl9IGFuZAorQGNvZGV7cmxfZW5kX3VuZG9fZ3JvdXAoKX0uCisKK1RoZSB0eXBlcyBvZiBldmVudHMgdGhhdCBjYW4gYmUgdW5kb25lIGFyZToKKworQHNtYWxsZXhhbXBsZQorZW51bSB1bmRvX2NvZGUgQHsgVU5ET19ERUxFVEUsIFVORE9fSU5TRVJULCBVTkRPX0JFR0lOLCBVTkRPX0VORCBAfTsgCitAZW5kIHNtYWxsZXhhbXBsZQorCitOb3RpY2UgdGhhdCBAY29kZXtVTkRPX0RFTEVURX0gbWVhbnMgdG8gaW5zZXJ0IHNvbWUgdGV4dCwgYW5kCitAY29kZXtVTkRPX0lOU0VSVH0gbWVhbnMgdG8gZGVsZXRlIHNvbWUgdGV4dC4gIFRoYXQgaXMsIHRoZSB1bmRvIGNvZGUKK3RlbGxzIHdoYXQgdG8gdW5kbywgbm90IGhvdyB0byB1bmRvIGl0LiAgQGNvZGV7VU5ET19CRUdJTn0gYW5kCitAY29kZXtVTkRPX0VORH0gYXJlIHRhZ3MgYWRkZWQgYnkgQGNvZGV7cmxfYmVnaW5fdW5kb19ncm91cCgpfSBhbmQKK0Bjb2Rle3JsX2VuZF91bmRvX2dyb3VwKCl9LgorCitAZGVmdHlwZWZ1biBpbnQgcmxfYmVnaW5fdW5kb19ncm91cCAodm9pZCkKK0JlZ2lucyBzYXZpbmcgdW5kbyBpbmZvcm1hdGlvbiBpbiBhIGdyb3VwIGNvbnN0cnVjdC4gIFRoZSB1bmRvCitpbmZvcm1hdGlvbiB1c3VhbGx5IGNvbWVzIGZyb20gY2FsbHMgdG8gQGNvZGV7cmxfaW5zZXJ0X3RleHQoKX0gYW5kCitAY29kZXtybF9kZWxldGVfdGV4dCgpfSwgYnV0IGNvdWxkIGJlIHRoZSByZXN1bHQgb2YgY2FsbHMgdG8KK0Bjb2Rle3JsX2FkZF91bmRvKCl9LgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBybF9lbmRfdW5kb19ncm91cCAodm9pZCkKK0Nsb3NlcyB0aGUgY3VycmVudCB1bmRvIGdyb3VwIHN0YXJ0ZWQgd2l0aCBAY29kZXtybF9iZWdpbl91bmRvX2dyb3VwCisoKX0uICBUaGVyZSBzaG91bGQgYmUgb25lIGNhbGwgdG8gQGNvZGV7cmxfZW5kX3VuZG9fZ3JvdXAoKX0KK2ZvciBlYWNoIGNhbGwgdG8gQGNvZGV7cmxfYmVnaW5fdW5kb19ncm91cCgpfS4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biB2b2lkIHJsX2FkZF91bmRvIChlbnVtIHVuZG9fY29kZSB3aGF0LCBpbnQgc3RhcnQsIGludCBlbmQsIGNoYXIgKnRleHQpCitSZW1lbWJlciBob3cgdG8gdW5kbyBhbiBldmVudCAoYWNjb3JkaW5nIHRvIEB2YXJ7d2hhdH0pLiAgVGhlIGFmZmVjdGVkCit0ZXh0IHJ1bnMgZnJvbSBAdmFye3N0YXJ0fSB0byBAdmFye2VuZH0sIGFuZCBlbmNvbXBhc3NlcyBAdmFye3RleHR9LgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIHZvaWQgcmxfZnJlZV91bmRvX2xpc3QgKHZvaWQpCitGcmVlIHRoZSBleGlzdGluZyB1bmRvIGxpc3QuCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4gaW50IHJsX2RvX3VuZG8gKHZvaWQpCitVbmRvIHRoZSBmaXJzdCB0aGluZyBvbiB0aGUgdW5kbyBsaXN0LiAgUmV0dXJucyBAY29kZXswfSBpZiB0aGVyZSB3YXMKK25vdGhpbmcgdG8gdW5kbywgbm9uLXplcm8gaWYgc29tZXRoaW5nIHdhcyB1bmRvbmUuCitAZW5kIGRlZnR5cGVmdW4KKworRmluYWxseSwgaWYgeW91IG5laXRoZXIgaW5zZXJ0IG5vciBkZWxldGUgdGV4dCwgYnV0IGRpcmVjdGx5IG1vZGlmeSB0aGUKK2V4aXN0aW5nIHRleHQgKGUuZy4sIGNoYW5nZSBpdHMgY2FzZSksIGNhbGwgQGNvZGV7cmxfbW9kaWZ5aW5nKCl9CitvbmNlLCBqdXN0IGJlZm9yZSB5b3UgbW9kaWZ5IHRoZSB0ZXh0LiAgWW91IG11c3Qgc3VwcGx5IHRoZSBpbmRpY2VzIG9mCit0aGUgdGV4dCByYW5nZSB0aGF0IHlvdSBhcmUgZ29pbmcgdG8gbW9kaWZ5LgorCitAZGVmdHlwZWZ1biBpbnQgcmxfbW9kaWZ5aW5nIChpbnQgc3RhcnQsIGludCBlbmQpCitUZWxsIFJlYWRsaW5lIHRvIHNhdmUgdGhlIHRleHQgYmV0d2VlbiBAdmFye3N0YXJ0fSBhbmQgQHZhcntlbmR9IGFzIGEKK3NpbmdsZSB1bmRvIHVuaXQuICBJdCBpcyBhc3N1bWVkIHRoYXQgeW91IHdpbGwgc3Vic2VxdWVudGx5IG1vZGlmeQordGhhdCB0ZXh0LgorQGVuZCBkZWZ0eXBlZnVuCisKK0Bub2RlIFJlZGlzcGxheQorQHN1YnNlY3Rpb24gUmVkaXNwbGF5CisKK0BkZWZ0eXBlZnVuIHZvaWQgcmxfcmVkaXNwbGF5ICh2b2lkKQorQ2hhbmdlIHdoYXQncyBkaXNwbGF5ZWQgb24gdGhlIHNjcmVlbiB0byByZWZsZWN0IHRoZSBjdXJyZW50IGNvbnRlbnRzCitvZiBAY29kZXtybF9saW5lX2J1ZmZlcn0uCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4gaW50IHJsX2ZvcmNlZF91cGRhdGVfZGlzcGxheSAodm9pZCkKK0ZvcmNlIHRoZSBsaW5lIHRvIGJlIHVwZGF0ZWQgYW5kIHJlZGlzcGxheWVkLCB3aGV0aGVyIG9yIG5vdAorUmVhZGxpbmUgdGhpbmtzIHRoZSBzY3JlZW4gZGlzcGxheSBpcyBjb3JyZWN0LgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBybF9vbl9uZXdfbGluZSAodm9pZCkKK1RlbGwgdGhlIHVwZGF0ZSBmdW5jdGlvbnMgdGhhdCB3ZSBoYXZlIG1vdmVkIG9udG8gYSBuZXcgKGVtcHR5KSBsaW5lLAordXN1YWxseSBhZnRlciBvdXB1dHRpbmcgYSBuZXdsaW5lLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBybF9vbl9uZXdfbGluZV93aXRoX3Byb21wdCAodm9pZCkKK1RlbGwgdGhlIHVwZGF0ZSBmdW5jdGlvbnMgdGhhdCB3ZSBoYXZlIG1vdmVkIG9udG8gYSBuZXcgbGluZSwgd2l0aAorQHZhcntybF9wcm9tcHR9IGFscmVhZHkgZGlzcGxheWVkLgorVGhpcyBjb3VsZCBiZSB1c2VkIGJ5IGFwcGxpY2F0aW9ucyB0aGF0IHdhbnQgdG8gb3V0cHV0IHRoZSBwcm9tcHQgc3RyaW5nCit0aGVtc2VsdmVzLCBidXQgc3RpbGwgbmVlZCBSZWFkbGluZSB0byBrbm93IHRoZSBwcm9tcHQgc3RyaW5nIGxlbmd0aCBmb3IKK3JlZGlzcGxheS4KK0l0IHNob3VsZCBiZSB1c2VkIGFmdGVyIHNldHRpbmcgQHZhcntybF9hbHJlYWR5X3Byb21wdGVkfS4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biBpbnQgcmxfcmVzZXRfbGluZV9zdGF0ZSAodm9pZCkKK1Jlc2V0IHRoZSBkaXNwbGF5IHN0YXRlIHRvIGEgY2xlYW4gc3RhdGUgYW5kIHJlZGlzcGxheSB0aGUgY3VycmVudCBsaW5lCitzdGFydGluZyBvbiBhIG5ldyBsaW5lLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBybF9jcmxmICh2b2lkKQorTW92ZSB0aGUgY3Vyc29yIHRvIHRoZSBzdGFydCBvZiB0aGUgbmV4dCBzY3JlZW4gbGluZS4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biBpbnQgcmxfc2hvd19jaGFyIChpbnQgYykKK0Rpc3BsYXkgY2hhcmFjdGVyIEB2YXJ7Y30gb24gQGNvZGV7cmxfb3V0c3RyZWFtfS4KK0lmIFJlYWRsaW5lIGhhcyBub3QgYmVlbiBzZXQgdG8gZGlzcGxheSBtZXRhIGNoYXJhY3RlcnMgZGlyZWN0bHksIHRoaXMKK3dpbGwgY29udmVydCBtZXRhIGNoYXJhY3RlcnMgdG8gYSBtZXRhLXByZWZpeGVkIGtleSBzZXF1ZW5jZS4KK1RoaXMgaXMgaW50ZW5kZWQgZm9yIHVzZSBieSBhcHBsaWNhdGlvbnMgd2hpY2ggd2lzaCB0byBkbyB0aGVpciBvd24KK3JlZGlzcGxheS4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biBpbnQgcmxfbWVzc2FnZSAoY29uc3QgY2hhciAqLCBAZG90c3t9KQorVGhlIGFyZ3VtZW50cyBhcmUgYSBmb3JtYXQgc3RyaW5nIGFzIHdvdWxkIGJlIHN1cHBsaWVkIHRvIEBjb2Rle3ByaW50Zn0sCitwb3NzaWJseSBjb250YWluaW5nIGNvbnZlcnNpb24gc3BlY2lmaWNhdGlvbnMgc3VjaCBhcyBAc2FtcHslZH0sIGFuZAorYW55IGFkZGl0aW9uYWwgYXJndW1lbnRzIG5lY2Vzc2FyeSB0byBzYXRpc2Z5IHRoZSBjb252ZXJzaW9uIHNwZWNpZmljYXRpb25zLgorVGhlIHJlc3VsdGluZyBzdHJpbmcgaXMgZGlzcGxheWVkIGluIHRoZSBAZGZue2VjaG8gYXJlYX0uICBUaGUgZWNobyBhcmVhCitpcyBhbHNvIHVzZWQgdG8gZGlzcGxheSBudW1lcmljIGFyZ3VtZW50cyBhbmQgc2VhcmNoIHN0cmluZ3MuCitZb3Ugc2hvdWxkIGNhbGwgQGNvZGV7cmxfc2F2ZV9wcm9tcHR9IHRvIHNhdmUgdGhlIHByb21wdCBpbmZvcm1hdGlvbgorYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biBpbnQgcmxfY2xlYXJfbWVzc2FnZSAodm9pZCkKK0NsZWFyIHRoZSBtZXNzYWdlIGluIHRoZSBlY2hvIGFyZWEuICBJZiB0aGUgcHJvbXB0IHdhcyBzYXZlZCB3aXRoIGEgY2FsbCB0bworQGNvZGV7cmxfc2F2ZV9wcm9tcHR9IGJlZm9yZSB0aGUgbGFzdCBjYWxsIHRvIEBjb2Rle3JsX21lc3NhZ2V9LAorY2FsbCBAY29kZXtybF9yZXN0b3JlX3Byb21wdH0gYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbi4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biB2b2lkIHJsX3NhdmVfcHJvbXB0ICh2b2lkKQorU2F2ZSB0aGUgbG9jYWwgUmVhZGxpbmUgcHJvbXB0IGRpc3BsYXkgc3RhdGUgaW4gcHJlcGFyYXRpb24gZm9yCitkaXNwbGF5aW5nIGEgbmV3IG1lc3NhZ2UgaW4gdGhlIG1lc3NhZ2UgYXJlYSB3aXRoIEBjb2Rle3JsX21lc3NhZ2UoKX0uCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4gdm9pZCBybF9yZXN0b3JlX3Byb21wdCAodm9pZCkKK1Jlc3RvcmUgdGhlIGxvY2FsIFJlYWRsaW5lIHByb21wdCBkaXNwbGF5IHN0YXRlIHNhdmVkIGJ5IHRoZSBtb3N0CityZWNlbnQgY2FsbCB0byBAY29kZXtybF9zYXZlX3Byb21wdH0uCitpZiBAY29kZXtybF9zYXZlX3Byb21wdH0gd2FzIGNhbGxlZCB0byBzYXZlIHRoZSBwcm9tcHQgYmVmb3JlIGEgY2FsbAordG8gQGNvZGV7cmxfbWVzc2FnZX0sIHRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgdGhlCitjb3JyZXNwb25kaW5nIGNhbGwgdG8gQGNvZGV7cmxfY2xlYXJfbWVzc2FnZX0uCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4gaW50IHJsX2V4cGFuZF9wcm9tcHQgKGNoYXIgKnByb21wdCkKK0V4cGFuZCBhbnkgc3BlY2lhbCBjaGFyYWN0ZXIgc2VxdWVuY2VzIGluIEB2YXJ7cHJvbXB0fSBhbmQgc2V0IHVwIHRoZQorbG9jYWwgUmVhZGxpbmUgcHJvbXB0IHJlZGlzcGxheSB2YXJpYWJsZXMuCitUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBAY29kZXtyZWFkbGluZSgpfS4gIEl0IG1heSBhbHNvIGJlIGNhbGxlZCB0bworZXhwYW5kIHRoZSBwcmltYXJ5IHByb21wdCBpZiB0aGUgQGNvZGV7cmxfb25fbmV3X2xpbmVfd2l0aF9wcm9tcHQoKX0KK2Z1bmN0aW9uIG9yIEBjb2Rle3JsX2FscmVhZHlfcHJvbXB0ZWR9IHZhcmlhYmxlIGlzIHVzZWQuCitJdCByZXR1cm5zIHRoZSBudW1iZXIgb2YgdmlzaWJsZSBjaGFyYWN0ZXJzIG9uIHRoZSBsYXN0IGxpbmUgb2YgdGhlCisocG9zc2libHkgbXVsdGktbGluZSkgcHJvbXB0LgorQXBwbGljYXRpb25zIG1heSBpbmRpY2F0ZSB0aGF0IHRoZSBwcm9tcHQgY29udGFpbnMgY2hhcmFjdGVycyB0aGF0IHRha2UKK3VwIG5vIHBoeXNpY2FsIHNjcmVlbiBzcGFjZSB3aGVuIGRpc3BsYXllZCBieSBicmFja2V0aW5nIGEgc2VxdWVuY2Ugb2YKK3N1Y2ggY2hhcmFjdGVycyB3aXRoIHRoZSBzcGVjaWFsIG1hcmtlcnMgQGNvZGV7UkxfUFJPTVBUX1NUQVJUX0lHTk9SRX0KK2FuZCBAY29kZXtSTF9QUk9NUFRfRU5EX0lHTk9SRX0gKGRlY2xhcmVkIGluIEBmaWxle3JlYWRsaW5lLmh9LiAgVGhpcyBtYXkKK2JlIHVzZWQgdG8gZW1iZWQgdGVybWluYWwtc3BlY2lmaWMgZXNjYXBlIHNlcXVlbmNlcyBpbiBwcm9tcHRzLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBybF9zZXRfcHJvbXB0IChjb25zdCBjaGFyICpwcm9tcHQpCitNYWtlIFJlYWRsaW5lIHVzZSBAdmFye3Byb21wdH0gZm9yIHN1YnNlcXVlbnQgcmVkaXNwbGF5LiAgVGhpcyBjYWxscworQGNvZGV7cmxfZXhwYW5kX3Byb21wdCgpfSB0byBleHBhbmQgdGhlIHByb21wdCBhbmQgc2V0cyBAY29kZXtybF9wcm9tcHR9Cit0byB0aGUgcmVzdWx0LgorQGVuZCBkZWZ0eXBlZnVuCisKK0Bub2RlIE1vZGlmeWluZyBUZXh0CitAc3Vic2VjdGlvbiBNb2RpZnlpbmcgVGV4dAorCitAZGVmdHlwZWZ1biBpbnQgcmxfaW5zZXJ0X3RleHQgKGNvbnN0IGNoYXIgKnRleHQpCitJbnNlcnQgQHZhcnt0ZXh0fSBpbnRvIHRoZSBsaW5lIGF0IHRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbi4KK1JldHVybnMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIGluc2VydGVkLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBybF9kZWxldGVfdGV4dCAoaW50IHN0YXJ0LCBpbnQgZW5kKQorRGVsZXRlIHRoZSB0ZXh0IGJldHdlZW4gQHZhcntzdGFydH0gYW5kIEB2YXJ7ZW5kfSBpbiB0aGUgY3VycmVudCBsaW5lLgorUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgZGVsZXRlZC4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biB7Y2hhciAqfSBybF9jb3B5X3RleHQgKGludCBzdGFydCwgaW50IGVuZCkKK1JldHVybiBhIGNvcHkgb2YgdGhlIHRleHQgYmV0d2VlbiBAdmFye3N0YXJ0fSBhbmQgQHZhcntlbmR9IGluCit0aGUgY3VycmVudCBsaW5lLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBybF9raWxsX3RleHQgKGludCBzdGFydCwgaW50IGVuZCkKK0NvcHkgdGhlIHRleHQgYmV0d2VlbiBAdmFye3N0YXJ0fSBhbmQgQHZhcntlbmR9IGluIHRoZSBjdXJyZW50IGxpbmUKK3RvIHRoZSBraWxsIHJpbmcsIGFwcGVuZGluZyBvciBwcmVwZW5kaW5nIHRvIHRoZSBsYXN0IGtpbGwgaWYgdGhlCitsYXN0IGNvbW1hbmQgd2FzIGEga2lsbCBjb21tYW5kLiAgVGhlIHRleHQgaXMgZGVsZXRlZC4KK0lmIEB2YXJ7c3RhcnR9IGlzIGxlc3MgdGhhbiBAdmFye2VuZH0sCit0aGUgdGV4dCBpcyBhcHBlbmRlZCwgb3RoZXJ3aXNlIHByZXBlbmRlZC4gIElmIHRoZSBsYXN0IGNvbW1hbmQgd2FzCitub3QgYSBraWxsLCBhIG5ldyBraWxsIHJpbmcgc2xvdCBpcyB1c2VkLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBybF9wdXNoX21hY3JvX2lucHV0IChjaGFyICptYWNybykKK0NhdXNlIEB2YXJ7bWFjcm99IHRvIGJlIGluc2VydGVkIGludG8gdGhlIGxpbmUsIGFzIGlmIGl0IGhhZCBiZWVuIGludm9rZWQKK2J5IGEga2V5IGJvdW5kIHRvIGEgbWFjcm8uICBOb3QgZXNwZWNpYWxseSB1c2VmdWw7IHVzZQorQGNvZGV7cmxfaW5zZXJ0X3RleHQoKX0gaW5zdGVhZC4KK0BlbmQgZGVmdHlwZWZ1bgorCitAbm9kZSBDaGFyYWN0ZXIgSW5wdXQKK0BzdWJzZWN0aW9uIENoYXJhY3RlciBJbnB1dAorCitAZGVmdHlwZWZ1biBpbnQgcmxfcmVhZF9rZXkgKHZvaWQpCitSZXR1cm4gdGhlIG5leHQgY2hhcmFjdGVyIGF2YWlsYWJsZSBmcm9tIFJlYWRsaW5lJ3MgY3VycmVudCBpbnB1dCBzdHJlYW0uCitUaGlzIGhhbmRsZXMgaW5wdXQgaW5zZXJ0ZWQgaW50bwordGhlIGlucHV0IHN0cmVhbSB2aWEgQHZhcntybF9wZW5kaW5nX2lucHV0fSAoQHB4cmVme1JlYWRsaW5lIFZhcmlhYmxlc30pCithbmQgQGNvZGV7cmxfc3R1ZmZfY2hhcigpfSwgbWFjcm9zLCBhbmQgY2hhcmFjdGVycyByZWFkIGZyb20gdGhlIGtleWJvYXJkLgorV2hpbGUgd2FpdGluZyBmb3IgaW5wdXQsIHRoaXMgZnVuY3Rpb24gd2lsbCBjYWxsIGFueSBmdW5jdGlvbiBhc3NpZ25lZCB0bwordGhlIEBjb2Rle3JsX2V2ZW50X2hvb2t9IHZhcmlhYmxlLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBybF9nZXRjIChGSUxFICpzdHJlYW0pCitSZXR1cm4gdGhlIG5leHQgY2hhcmFjdGVyIGF2YWlsYWJsZSBmcm9tIEB2YXJ7c3RyZWFtfSwgd2hpY2ggaXMgYXNzdW1lZCB0bworYmUgdGhlIGtleWJvYXJkLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBybF9zdHVmZl9jaGFyIChpbnQgYykKK0luc2VydCBAdmFye2N9IGludG8gdGhlIFJlYWRsaW5lIGlucHV0IHN0cmVhbS4gIEl0IHdpbGwgYmUgInJlYWQiCitiZWZvcmUgUmVhZGxpbmUgYXR0ZW1wdHMgdG8gcmVhZCBjaGFyYWN0ZXJzIGZyb20gdGhlIHRlcm1pbmFsIHdpdGgKK0Bjb2Rle3JsX3JlYWRfa2V5KCl9LiAgVXAgdG8gNTEyIGNoYXJhY3RlcnMgbWF5IGJlIHB1c2hlZCBiYWNrLgorQGNvZGV7cmxfc3R1ZmZfY2hhcn0gcmV0dXJucyAxIGlmIHRoZSBjaGFyYWN0ZXIgd2FzIHN1Y2Nlc3NmdWxseSBpbnNlcnRlZDsKKzAgb3RoZXJ3aXNlLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBybF9leGVjdXRlX25leHQgKGludCBjKQorTWFrZSBAdmFye2N9IGJlIHRoZSBuZXh0IGNvbW1hbmQgdG8gYmUgZXhlY3V0ZWQgd2hlbiBAY29kZXtybF9yZWFkX2tleSgpfQoraXMgY2FsbGVkLiAgVGhpcyBzZXRzIEB2YXJ7cmxfcGVuZGluZ19pbnB1dH0uCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4gaW50IHJsX2NsZWFyX3BlbmRpbmdfaW5wdXQgKHZvaWQpCitVbnNldCBAdmFye3JsX3BlbmRpbmdfaW5wdXR9LCBlZmZlY3RpdmVseSBuZWdhdGluZyB0aGUgZWZmZWN0IG9mIGFueQorcHJldmlvdXMgY2FsbCB0byBAY29kZXtybF9leGVjdXRlX25leHQoKX0uICBUaGlzIHdvcmtzIG9ubHkgaWYgdGhlCitwZW5kaW5nIGlucHV0IGhhcyBub3QgYWxyZWFkeSBiZWVuIHJlYWQgd2l0aCBAY29kZXtybF9yZWFkX2tleSgpfS4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biBpbnQgcmxfc2V0X2tleWJvYXJkX2lucHV0X3RpbWVvdXQgKGludCB1KQorV2hpbGUgd2FpdGluZyBmb3Iga2V5Ym9hcmQgaW5wdXQgaW4gQGNvZGV7cmxfcmVhZF9rZXkoKX0sIFJlYWRsaW5lIHdpbGwKK3dhaXQgZm9yIEB2YXJ7dX0gbWljcm9zZWNvbmRzIGZvciBpbnB1dCBiZWZvcmUgY2FsbGluZyBhbnkgZnVuY3Rpb24KK2Fzc2lnbmVkIHRvIEBjb2Rle3JsX2V2ZW50X2hvb2t9LiAgVGhlIGRlZmF1bHQgd2FpdGluZyBwZXJpb2QgaXMKK29uZS10ZW50aCBvZiBhIHNlY29uZC4gIFJldHVybnMgdGhlIG9sZCB0aW1lb3V0IHZhbHVlLgorQGVuZCBkZWZ0eXBlZnVuCisKK0Bub2RlIFRlcm1pbmFsIE1hbmFnZW1lbnQKK0BzdWJzZWN0aW9uIFRlcm1pbmFsIE1hbmFnZW1lbnQKKworQGRlZnR5cGVmdW4gdm9pZCBybF9wcmVwX3Rlcm1pbmFsIChpbnQgbWV0YV9mbGFnKQorTW9kaWZ5IHRoZSB0ZXJtaW5hbCBzZXR0aW5ncyBmb3IgUmVhZGxpbmUncyB1c2UsIHNvIEBjb2Rle3JlYWRsaW5lKCl9CitjYW4gcmVhZCBhIHNpbmdsZSBjaGFyYWN0ZXIgYXQgYSB0aW1lIGZyb20gdGhlIGtleWJvYXJkLgorVGhlIEB2YXJ7bWV0YV9mbGFnfSBhcmd1bWVudCBzaG91bGQgYmUgbm9uLXplcm8gaWYgUmVhZGxpbmUgc2hvdWxkCityZWFkIGVpZ2h0LWJpdCBpbnB1dC4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biB2b2lkIHJsX2RlcHJlcF90ZXJtaW5hbCAodm9pZCkKK1VuZG8gdGhlIGVmZmVjdHMgb2YgQGNvZGV7cmxfcHJlcF90ZXJtaW5hbCgpfSwgbGVhdmluZyB0aGUgdGVybWluYWwgaW4KK3RoZSBzdGF0ZSBpbiB3aGljaCBpdCB3YXMgYmVmb3JlIHRoZSBtb3N0IHJlY2VudCBjYWxsIHRvCitAY29kZXtybF9wcmVwX3Rlcm1pbmFsKCl9LgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIHZvaWQgcmxfdHR5X3NldF9kZWZhdWx0X2JpbmRpbmdzIChLZXltYXAga21hcCkKK1JlYWQgdGhlIG9wZXJhdGluZyBzeXN0ZW0ncyB0ZXJtaW5hbCBlZGl0aW5nIGNoYXJhY3RlcnMgKGFzIHdvdWxkIGJlCitkaXNwbGF5ZWQgYnkgQGNvZGV7c3R0eX0pIHRvIHRoZWlyIFJlYWRsaW5lIGVxdWl2YWxlbnRzLgorVGhlIGJpbmRpbmdzIGFyZSBwZXJmb3JtZWQgaW4gQHZhcntrbWFwfS4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biB2b2lkIHJsX3R0eV91bnNldF9kZWZhdWx0X2JpbmRpbmdzIChLZXltYXAga21hcCkKK1Jlc2V0IHRoZSBiaW5kaW5ncyBtYW5pcHVsYXRlZCBieSBAY29kZXtybF90dHlfc2V0X2RlZmF1bHRfYmluZGluZ3N9IHNvCit0aGF0IHRoZSB0ZXJtaW5hbCBlZGl0aW5nIGNoYXJhY3RlcnMgYXJlIGJvdW5kIHRvIEBjb2Rle3JsX2luc2VydH0uCitUaGUgYmluZGluZ3MgYXJlIHBlcmZvcm1lZCBpbiBAdmFye2ttYXB9LgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBybF9yZXNldF90ZXJtaW5hbCAoY29uc3QgY2hhciAqdGVybWluYWxfbmFtZSkKK1JlaW5pdGlhbGl6ZSBSZWFkbGluZSdzIGlkZWEgb2YgdGhlIHRlcm1pbmFsIHNldHRpbmdzIHVzaW5nCitAdmFye3Rlcm1pbmFsX25hbWV9IGFzIHRoZSB0ZXJtaW5hbCB0eXBlIChlLmcuLCBAY29kZXt2dDEwMH0pLgorSWYgQHZhcnt0ZXJtaW5hbF9uYW1lfSBpcyBAY29kZXtOVUxMfSwgdGhlIHZhbHVlIG9mIHRoZSBAY29kZXtURVJNfQorZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgdXNlZC4KK0BlbmQgZGVmdHlwZWZ1bgorCitAbm9kZSBVdGlsaXR5IEZ1bmN0aW9ucworQHN1YnNlY3Rpb24gVXRpbGl0eSBGdW5jdGlvbnMKKworQGRlZnR5cGVmdW4gdm9pZCBybF9yZXBsYWNlX2xpbmUgKGNvbnN0IGNoYXIgKnRleHQsIGludCBjbGVhcl91bmRvKQorUmVwbGFjZSB0aGUgY29udGVudHMgb2YgQGNvZGV7cmxfbGluZV9idWZmZXJ9IHdpdGggQHZhcnt0ZXh0fS4KK1RoZSBwb2ludCBhbmQgbWFyayBhcmUgcHJlc2VydmVkLCBpZiBwb3NzaWJsZS4KK0lmIEB2YXJ7Y2xlYXJfdW5kb30gaXMgbm9uLXplcm8sIHRoZSB1bmRvIGxpc3QgYXNzb2NpYXRlZCB3aXRoIHRoZQorY3VycmVudCBsaW5lIGlzIGNsZWFyZWQuCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4gaW50IHJsX2V4dGVuZF9saW5lX2J1ZmZlciAoaW50IGxlbikKK0Vuc3VyZSB0aGF0IEBjb2Rle3JsX2xpbmVfYnVmZmVyfSBoYXMgZW5vdWdoIHNwYWNlIHRvIGhvbGQgQHZhcntsZW59CitjaGFyYWN0ZXJzLCBwb3NzaWJseSByZWFsbG9jYXRpbmcgaXQgaWYgbmVjZXNzYXJ5LgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBybF9pbml0aWFsaXplICh2b2lkKQorSW5pdGlhbGl6ZSBvciByZS1pbml0aWFsaXplIFJlYWRsaW5lJ3MgaW50ZXJuYWwgc3RhdGUuCitJdCdzIG5vdCBzdHJpY3RseSBuZWNlc3NhcnkgdG8gY2FsbCB0aGlzOyBAY29kZXtyZWFkbGluZSgpfSBjYWxscyBpdCBiZWZvcmUKK3JlYWRpbmcgYW55IGlucHV0LgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBybF9kaW5nICh2b2lkKQorUmluZyB0aGUgdGVybWluYWwgYmVsbCwgb2JleWluZyB0aGUgc2V0dGluZyBvZiBAY29kZXtiZWxsLXN0eWxlfS4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biBpbnQgcmxfYWxwaGFiZXRpYyAoaW50IGMpCitSZXR1cm4gMSBpZiBAdmFye2N9IGlzIGFuIGFscGhhYmV0aWMgY2hhcmFjdGVyLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIHZvaWQgcmxfZGlzcGxheV9tYXRjaF9saXN0IChjaGFyICoqbWF0Y2hlcywgaW50IGxlbiwgaW50IG1heCkKK0EgY29udmVuaWVuY2UgZnVuY3Rpb24gZm9yIGRpc3BsYXlpbmcgYSBsaXN0IG9mIHN0cmluZ3MgaW4KK2NvbHVtbmFyIGZvcm1hdCBvbiBSZWFkbGluZSdzIG91dHB1dCBzdHJlYW0uICBAY29kZXttYXRjaGVzfSBpcyB0aGUgbGlzdAorb2Ygc3RyaW5ncywgaW4gYXJndiBmb3JtYXQsIHN1Y2ggYXMgYSBsaXN0IG9mIGNvbXBsZXRpb24gbWF0Y2hlcy4KK0Bjb2Rle2xlbn0gaXMgdGhlIG51bWJlciBvZiBzdHJpbmdzIGluIEBjb2Rle21hdGNoZXN9LCBhbmQgQGNvZGV7bWF4fQoraXMgdGhlIGxlbmd0aCBvZiB0aGUgbG9uZ2VzdCBzdHJpbmcgaW4gQGNvZGV7bWF0Y2hlc30uICBUaGlzIGZ1bmN0aW9uIHVzZXMKK3RoZSBzZXR0aW5nIG9mIEBjb2Rle3ByaW50LWNvbXBsZXRpb25zLWhvcml6b250YWxseX0gdG8gc2VsZWN0IGhvdyB0aGUKK21hdGNoZXMgYXJlIGRpc3BsYXllZCAoQHB4cmVme1JlYWRsaW5lIEluaXQgRmlsZSBTeW50YXh9KS4KK0BlbmQgZGVmdHlwZWZ1bgorCitUaGUgZm9sbG93aW5nIGFyZSBpbXBsZW1lbnRlZCBhcyBtYWNyb3MsIGRlZmluZWQgaW4gQGNvZGV7Y2hhcmRlZnMuaH0uCitBcHBsaWNhdGlvbnMgc2hvdWxkIHJlZnJhaW4gZnJvbSB1c2luZyB0aGVtLgorCitAZGVmdHlwZWZ1biBpbnQgX3JsX3VwcGVyY2FzZV9wIChpbnQgYykKK1JldHVybiAxIGlmIEB2YXJ7Y30gaXMgYW4gdXBwZXJjYXNlIGFscGhhYmV0aWMgY2hhcmFjdGVyLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBfcmxfbG93ZXJjYXNlX3AgKGludCBjKQorUmV0dXJuIDEgaWYgQHZhcntjfSBpcyBhIGxvd2VyY2FzZSBhbHBoYWJldGljIGNoYXJhY3Rlci4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biBpbnQgX3JsX2RpZ2l0X3AgKGludCBjKQorUmV0dXJuIDEgaWYgQHZhcntjfSBpcyBhIG51bWVyaWMgY2hhcmFjdGVyLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBfcmxfdG9fdXBwZXIgKGludCBjKQorSWYgQHZhcntjfSBpcyBhIGxvd2VyY2FzZSBhbHBoYWJldGljIGNoYXJhY3RlciwgcmV0dXJuIHRoZSBjb3JyZXNwb25kaW5nCit1cHBlcmNhc2UgY2hhcmFjdGVyLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBfcmxfdG9fbG93ZXIgKGludCBjKQorSWYgQHZhcntjfSBpcyBhbiB1cHBlcmNhc2UgYWxwaGFiZXRpYyBjaGFyYWN0ZXIsIHJldHVybiB0aGUgY29ycmVzcG9uZGluZworbG93ZXJjYXNlIGNoYXJhY3Rlci4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biBpbnQgX3JsX2RpZ2l0X3ZhbHVlIChpbnQgYykKK0lmIEB2YXJ7Y30gaXMgYSBudW1iZXIsIHJldHVybiB0aGUgdmFsdWUgaXQgcmVwcmVzZW50cy4KK0BlbmQgZGVmdHlwZWZ1bgorCitAbm9kZSBNaXNjZWxsYW5lb3VzIEZ1bmN0aW9ucworQHN1YnNlY3Rpb24gTWlzY2VsbGFuZW91cyBGdW5jdGlvbnMKKworQGRlZnR5cGVmdW4gaW50IHJsX21hY3JvX2JpbmQgKGNvbnN0IGNoYXIgKmtleXNlcSwgY29uc3QgY2hhciAqbWFjcm8sIEtleW1hcCBtYXApCitCaW5kIHRoZSBrZXkgc2VxdWVuY2UgQHZhcntrZXlzZXF9IHRvIGludm9rZSB0aGUgbWFjcm8gQHZhcnttYWNyb30uCitUaGUgYmluZGluZyBpcyBwZXJmb3JtZWQgaW4gQHZhcnttYXB9LiAgV2hlbiBAdmFye2tleXNlcX0gaXMgaW52b2tlZCwgdGhlCitAdmFye21hY3JvfSB3aWxsIGJlIGluc2VydGVkIGludG8gdGhlIGxpbmUuICBUaGlzIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQ7Cit1c2UgQGNvZGV7cmxfZ2VuZXJpY19iaW5kKCl9IGluc3RlYWQuCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4gdm9pZCBybF9tYWNyb19kdW1wZXIgKGludCByZWFkYWJsZSkKK1ByaW50IHRoZSBrZXkgc2VxdWVuY2VzIGJvdW5kIHRvIG1hY3JvcyBhbmQgdGhlaXIgdmFsdWVzLCB1c2luZwordGhlIGN1cnJlbnQga2V5bWFwLCB0byBAY29kZXtybF9vdXRzdHJlYW19LgorSWYgQHZhcntyZWFkYWJsZX0gaXMgbm9uLXplcm8sIHRoZSBsaXN0IGlzIGZvcm1hdHRlZCBpbiBzdWNoIGEgd2F5Cit0aGF0IGl0IGNhbiBiZSBtYWRlIHBhcnQgb2YgYW4gQGNvZGV7aW5wdXRyY30gZmlsZSBhbmQgcmUtcmVhZC4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biBpbnQgcmxfdmFyaWFibGVfYmluZCAoY29uc3QgY2hhciAqdmFyaWFibGUsIGNvbnN0IGNoYXIgKnZhbHVlKQorTWFrZSB0aGUgUmVhZGxpbmUgdmFyaWFibGUgQHZhcnt2YXJpYWJsZX0gaGF2ZSBAdmFye3ZhbHVlfS4KK1RoaXMgYmVoYXZlcyBhcyBpZiB0aGUgcmVhZGxpbmUgY29tbWFuZAorQHNhbXB7c2V0IEB2YXJ7dmFyaWFibGV9IEB2YXJ7dmFsdWV9fSBoYWQgYmVlbiBleGVjdXRlZCBpbiBhbiBAY29kZXtpbnB1dHJjfQorZmlsZSAoQHB4cmVme1JlYWRsaW5lIEluaXQgRmlsZSBTeW50YXh9KS4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biB7Y2hhciAqfSBybF92YXJpYWJsZV92YWx1ZSAoY29uc3QgY2hhciAqdmFyaWFibGUpCitSZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSB2YWx1ZSBvZiB0aGUgUmVhZGxpbmUgdmFyaWFibGUgQHZhcnt2YXJpYWJsZX0uCitGb3IgYm9vbGVhbiB2YXJpYWJsZXMsIHRoaXMgc3RyaW5nIGlzIGVpdGhlciBAc2FtcHtvbn0gb3IgQHNhbXB7b2ZmfS4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biB2b2lkIHJsX3ZhcmlhYmxlX2R1bXBlciAoaW50IHJlYWRhYmxlKQorUHJpbnQgdGhlIHJlYWRsaW5lIHZhcmlhYmxlIG5hbWVzIGFuZCB0aGVpciBjdXJyZW50IHZhbHVlcwordG8gQGNvZGV7cmxfb3V0c3RyZWFtfS4KK0lmIEB2YXJ7cmVhZGFibGV9IGlzIG5vbi16ZXJvLCB0aGUgbGlzdCBpcyBmb3JtYXR0ZWQgaW4gc3VjaCBhIHdheQordGhhdCBpdCBjYW4gYmUgbWFkZSBwYXJ0IG9mIGFuIEBjb2Rle2lucHV0cmN9IGZpbGUgYW5kIHJlLXJlYWQuCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4gaW50IHJsX3NldF9wYXJlbl9ibGlua190aW1lb3V0IChpbnQgdSkKK1NldCB0aGUgdGltZSBpbnRlcnZhbCAoaW4gbWljcm9zZWNvbmRzKSB0aGF0IFJlYWRsaW5lIHdhaXRzIHdoZW4gc2hvd2luZworYSBiYWxhbmNpbmcgY2hhcmFjdGVyIHdoZW4gQGNvZGV7YmxpbmstbWF0Y2hpbmctcGFyZW59IGhhcyBiZWVuIGVuYWJsZWQuCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4ge2NoYXIgKn0gcmxfZ2V0X3Rlcm1jYXAgKGNvbnN0IGNoYXIgKmNhcCkKK1JldHJpZXZlIHRoZSBzdHJpbmcgdmFsdWUgb2YgdGhlIHRlcm1jYXAgY2FwYWJpbGl0eSBAdmFye2NhcH0uCitSZWFkbGluZSBmZXRjaGVzIHRoZSB0ZXJtY2FwIGVudHJ5IGZvciB0aGUgY3VycmVudCB0ZXJtaW5hbCBuYW1lIGFuZAordXNlcyB0aG9zZSBjYXBhYmlsaXRpZXMgdG8gbW92ZSBhcm91bmQgdGhlIHNjcmVlbiBsaW5lIGFuZCBwZXJmb3JtIG90aGVyCit0ZXJtaW5hbC1zcGVjaWZpYyBvcGVyYXRpb25zLCBsaWtlIGVyYXNpbmcgYSBsaW5lLiAgUmVhZGxpbmUgZG9lcyBub3QKK3VzZSBhbGwgb2YgYSB0ZXJtaW5hbCdzIGNhcGFiaWxpdGllcywgYW5kIHRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4KK3ZhbHVlcyBmb3Igb25seSB0aG9zZSBjYXBhYmlsaXRpZXMgUmVhZGxpbmUgdXNlcy4KK0BlbmQgZGVmdHlwZWZ1bgorCitAbm9kZSBBbHRlcm5hdGUgSW50ZXJmYWNlCitAc3Vic2VjdGlvbiBBbHRlcm5hdGUgSW50ZXJmYWNlCisKK0FuIGFsdGVybmF0ZSBpbnRlcmZhY2UgaXMgYXZhaWxhYmxlIHRvIHBsYWluIEBjb2Rle3JlYWRsaW5lKCl9LiAgU29tZQorYXBwbGljYXRpb25zIG5lZWQgdG8gaW50ZXJsZWF2ZSBrZXlib2FyZCBJL08gd2l0aCBmaWxlLCBkZXZpY2UsIG9yCit3aW5kb3cgc3lzdGVtIEkvTywgdHlwaWNhbGx5IGJ5IHVzaW5nIGEgbWFpbiBsb29wIHRvIEBjb2Rle3NlbGVjdCgpfQorb24gdmFyaW91cyBmaWxlIGRlc2NyaXB0b3JzLiAgVG8gYWNjb21vZGF0ZSB0aGlzIG5lZWQsIHJlYWRsaW5lIGNhbgorYWxzbyBiZSBpbnZva2VkIGFzIGEgYGNhbGxiYWNrJyBmdW5jdGlvbiBmcm9tIGFuIGV2ZW50IGxvb3AuICBUaGVyZQorYXJlIGZ1bmN0aW9ucyBhdmFpbGFibGUgdG8gbWFrZSB0aGlzIGVhc3kuCisKK0BkZWZ0eXBlZnVuIHZvaWQgcmxfY2FsbGJhY2tfaGFuZGxlcl9pbnN0YWxsIChjb25zdCBjaGFyICpwcm9tcHQsIHJsX3ZjcGZ1bmNfdCAqbGhhbmRsZXIpCitTZXQgdXAgdGhlIHRlcm1pbmFsIGZvciByZWFkbGluZSBJL08gYW5kIGRpc3BsYXkgdGhlIGluaXRpYWwKK2V4cGFuZGVkIHZhbHVlIG9mIEB2YXJ7cHJvbXB0fS4gIFNhdmUgdGhlIHZhbHVlIG9mIEB2YXJ7bGhhbmRsZXJ9IHRvCit1c2UgYXMgYSBmdW5jdGlvbiB0byBjYWxsIHdoZW4gYSBjb21wbGV0ZSBsaW5lIG9mIGlucHV0IGhhcyBiZWVuIGVudGVyZWQuCitUaGUgZnVuY3Rpb24gdGFrZXMgdGhlIHRleHQgb2YgdGhlIGxpbmUgYXMgYW4gYXJndW1lbnQuCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4gdm9pZCBybF9jYWxsYmFja19yZWFkX2NoYXIgKHZvaWQpCitXaGVuZXZlciBhbiBhcHBsaWNhdGlvbiBkZXRlcm1pbmVzIHRoYXQga2V5Ym9hcmQgaW5wdXQgaXMgYXZhaWxhYmxlLCBpdAorc2hvdWxkIGNhbGwgQGNvZGV7cmxfY2FsbGJhY2tfcmVhZF9jaGFyKCl9LCB3aGljaCB3aWxsIHJlYWQgdGhlIG5leHQKK2NoYXJhY3RlciBmcm9tIHRoZSBjdXJyZW50IGlucHV0IHNvdXJjZS4KK0lmIHRoYXQgY2hhcmFjdGVyIGNvbXBsZXRlcyB0aGUgbGluZSwgQGNvZGV7cmxfY2FsbGJhY2tfcmVhZF9jaGFyfSB3aWxsCitpbnZva2UgdGhlIEB2YXJ7bGhhbmRsZXJ9IGZ1bmN0aW9uIHNhdmVkIGJ5IEBjb2Rle3JsX2NhbGxiYWNrX2hhbmRsZXJfaW5zdGFsbH0KK3RvIHByb2Nlc3MgdGhlIGxpbmUuCitCZWZvcmUgY2FsbGluZyB0aGUgQHZhcntsaGFuZGxlcn0gZnVuY3Rpb24sIHRoZSB0ZXJtaW5hbCBzZXR0aW5ncyBhcmUKK3Jlc2V0IHRvIHRoZSB2YWx1ZXMgdGhleSBoYWQgYmVmb3JlIGNhbGxpbmcKK0Bjb2Rle3JsX2NhbGxiYWNrX2hhbmRsZXJfaW5zdGFsbH0uCitJZiB0aGUgQHZhcntsaGFuZGxlcn0gZnVuY3Rpb24gcmV0dXJucywKK3RoZSB0ZXJtaW5hbCBzZXR0aW5ncyBhcmUgbW9kaWZpZWQgZm9yIFJlYWRsaW5lJ3MgdXNlIGFnYWluLgorQGNvZGV7RU9GfSBpcyAgaW5kaWNhdGVkIGJ5IGNhbGxpbmcgQHZhcntsaGFuZGxlcn0gd2l0aCBhCitAY29kZXtOVUxMfSBsaW5lLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIHZvaWQgcmxfY2FsbGJhY2tfaGFuZGxlcl9yZW1vdmUgKHZvaWQpCitSZXN0b3JlIHRoZSB0ZXJtaW5hbCB0byBpdHMgaW5pdGlhbCBzdGF0ZSBhbmQgcmVtb3ZlIHRoZSBsaW5lIGhhbmRsZXIuCitUaGlzIG1heSBiZSBjYWxsZWQgZnJvbSB3aXRoaW4gYSBjYWxsYmFjayBhcyB3ZWxsIGFzIGluZGVwZW5kZW50bHkuCitJZiB0aGUgQHZhcntsaGFuZGxlcn0gaW5zdGFsbGVkIGJ5IEBjb2Rle3JsX2NhbGxiYWNrX2hhbmRsZXJfaW5zdGFsbH0KK2RvZXMgbm90IGV4aXQgdGhlIHByb2dyYW0sIGVpdGhlciB0aGlzIGZ1bmN0aW9uIG9yIHRoZSBmdW5jdGlvbiByZWZlcnJlZAordG8gYnkgdGhlIHZhbHVlIG9mIEBjb2Rle3JsX2RlcHJlcF90ZXJtX2Z1bmN0aW9ufSBzaG91bGQgYmUgY2FsbGVkIGJlZm9yZQordGhlIHByb2dyYW0gZXhpdHMgdG8gcmVzZXQgdGhlIHRlcm1pbmFsIHNldHRpbmdzLgorQGVuZCBkZWZ0eXBlZnVuCisKK0Bub2RlIEEgUmVhZGxpbmUgRXhhbXBsZQorQHN1YnNlY3Rpb24gQSBSZWFkbGluZSBFeGFtcGxlCisKK0hlcmUgaXMgYSBmdW5jdGlvbiB3aGljaCBjaGFuZ2VzIGxvd2VyY2FzZSBjaGFyYWN0ZXJzIHRvIHRoZWlyIHVwcGVyY2FzZQorZXF1aXZhbGVudHMsIGFuZCB1cHBlcmNhc2UgY2hhcmFjdGVycyB0byBsb3dlcmNhc2UuICBJZgordGhpcyBmdW5jdGlvbiB3YXMgYm91bmQgdG8gQHNhbXB7TS1jfSwgdGhlbiB0eXBpbmcgQHNhbXB7TS1jfSB3b3VsZAorY2hhbmdlIHRoZSBjYXNlIG9mIHRoZSBjaGFyYWN0ZXIgdW5kZXIgcG9pbnQuICBUeXBpbmcgQHNhbXB7TS0xIDAgTS1jfQord291bGQgY2hhbmdlIHRoZSBjYXNlIG9mIHRoZSBmb2xsb3dpbmcgMTAgY2hhcmFjdGVycywgbGVhdmluZyB0aGUgY3Vyc29yIG9uCit0aGUgbGFzdCBjaGFyYWN0ZXIgY2hhbmdlZC4KKworQGV4YW1wbGUKKy8qIEludmVydCB0aGUgY2FzZSBvZiB0aGUgQ09VTlQgZm9sbG93aW5nIGNoYXJhY3RlcnMuICovCitpbnQKK2ludmVydF9jYXNlX2xpbmUgKGNvdW50LCBrZXkpCisgICAgIGludCBjb3VudCwga2V5OworQHsKKyAgcmVnaXN0ZXIgaW50IHN0YXJ0LCBlbmQsIGk7CisKKyAgc3RhcnQgPSBybF9wb2ludDsKKworICBpZiAocmxfcG9pbnQgPj0gcmxfZW5kKQorICAgIHJldHVybiAoMCk7CisKKyAgaWYgKGNvdW50IDwgMCkKKyAgICBAeworICAgICAgZGlyZWN0aW9uID0gLTE7CisgICAgICBjb3VudCA9IC1jb3VudDsKKyAgICBAfQorICBlbHNlCisgICAgZGlyZWN0aW9uID0gMTsKKyAgICAgIAorICAvKiBGaW5kIHRoZSBlbmQgb2YgdGhlIHJhbmdlIHRvIG1vZGlmeS4gKi8KKyAgZW5kID0gc3RhcnQgKyAoY291bnQgKiBkaXJlY3Rpb24pOworCisgIC8qIEZvcmNlIGl0IHRvIGJlIHdpdGhpbiByYW5nZS4gKi8KKyAgaWYgKGVuZCA+IHJsX2VuZCkKKyAgICBlbmQgPSBybF9lbmQ7CisgIGVsc2UgaWYgKGVuZCA8IDApCisgICAgZW5kID0gMDsKKworICBpZiAoc3RhcnQgPT0gZW5kKQorICAgIHJldHVybiAoMCk7CisKKyAgaWYgKHN0YXJ0ID4gZW5kKQorICAgIEB7CisgICAgICBpbnQgdGVtcCA9IHN0YXJ0OworICAgICAgc3RhcnQgPSBlbmQ7CisgICAgICBlbmQgPSB0ZW1wOworICAgIEB9CisKKyAgLyogVGVsbCByZWFkbGluZSB0aGF0IHdlIGFyZSBtb2RpZnlpbmcgdGhlIGxpbmUsCisgICAgIHNvIGl0IHdpbGwgc2F2ZSB0aGUgdW5kbyBpbmZvcm1hdGlvbi4gKi8KKyAgcmxfbW9kaWZ5aW5nIChzdGFydCwgZW5kKTsKKworICBmb3IgKGkgPSBzdGFydDsgaSAhPSBlbmQ7IGkrKykKKyAgICBAeworICAgICAgaWYgKF9ybF91cHBlcmNhc2VfcCAocmxfbGluZV9idWZmZXJbaV0pKQorICAgICAgICBybF9saW5lX2J1ZmZlcltpXSA9IF9ybF90b19sb3dlciAocmxfbGluZV9idWZmZXJbaV0pOworICAgICAgZWxzZSBpZiAoX3JsX2xvd2VyY2FzZV9wIChybF9saW5lX2J1ZmZlcltpXSkpCisgICAgICAgIHJsX2xpbmVfYnVmZmVyW2ldID0gX3JsX3RvX3VwcGVyIChybF9saW5lX2J1ZmZlcltpXSk7CisgICAgQH0KKyAgLyogTW92ZSBwb2ludCB0byBvbiB0b3Agb2YgdGhlIGxhc3QgY2hhcmFjdGVyIGNoYW5nZWQuICovCisgIHJsX3BvaW50ID0gKGRpcmVjdGlvbiA9PSAxKSA/IGVuZCAtIDEgOiBzdGFydDsKKyAgcmV0dXJuICgwKTsKK0B9CitAZW5kIGV4YW1wbGUKKworQG5vZGUgUmVhZGxpbmUgU2lnbmFsIEhhbmRsaW5nCitAc2VjdGlvbiBSZWFkbGluZSBTaWduYWwgSGFuZGxpbmcKKworU2lnbmFscyBhcmUgYXN5bmNocm9ub3VzIGV2ZW50cyBzZW50IHRvIGEgcHJvY2VzcyBieSB0aGUgVW5peCBrZXJuZWwsCitzb21ldGltZXMgb24gYmVoYWxmIG9mIGFub3RoZXIgcHJvY2Vzcy4gIFRoZXkgYXJlIGludGVuZGVkIHRvIGluZGljYXRlCitleGNlcHRpb25hbCBldmVudHMsIGxpa2UgYSB1c2VyIHByZXNzaW5nIHRoZSBpbnRlcnJ1cHQga2V5IG9uIGhpcyB0ZXJtaW5hbCwKK29yIGEgbmV0d29yayBjb25uZWN0aW9uIGJlaW5nIGJyb2tlbi4gIFRoZXJlIGlzIGEgY2xhc3Mgb2Ygc2lnbmFscyB0aGF0IGNhbgorYmUgc2VudCB0byB0aGUgcHJvY2VzcyBjdXJyZW50bHkgcmVhZGluZyBpbnB1dCBmcm9tIHRoZSBrZXlib2FyZC4gIFNpbmNlCitSZWFkbGluZSBjaGFuZ2VzIHRoZSB0ZXJtaW5hbCBhdHRyaWJ1dGVzIHdoZW4gaXQgaXMgY2FsbGVkLCBpdCBuZWVkcyB0bworcGVyZm9ybSBzcGVjaWFsIHByb2Nlc3Npbmcgd2hlbiBzdWNoIGEgc2lnbmFsIGlzIHJlY2VpdmVkIGluIG9yZGVyIHRvCityZXN0b3JlIHRoZSB0ZXJtaW5hbCB0byBhIHNhbmUgc3RhdGUsIG9yIHByb3ZpZGUgYXBwbGljYXRpb24gd3JpdGVycyB3aXRoCitmdW5jdGlvbnMgdG8gZG8gc28gbWFudWFsbHkuIAorCitSZWFkbGluZSBjb250YWlucyBhbiBpbnRlcm5hbCBzaWduYWwgaGFuZGxlciB0aGF0IGlzIGluc3RhbGxlZCBmb3IgYQorbnVtYmVyIG9mIHNpZ25hbHMgKEBjb2Rle1NJR0lOVH0sIEBjb2Rle1NJR1FVSVR9LCBAY29kZXtTSUdURVJNfSwKK0Bjb2Rle1NJR0FMUk19LCBAY29kZXtTSUdUU1RQfSwgQGNvZGV7U0lHVFRJTn0sIGFuZCBAY29kZXtTSUdUVE9VfSkuCitXaGVuIG9uZSBvZiB0aGVzZSBzaWduYWxzIGlzIHJlY2VpdmVkLCB0aGUgc2lnbmFsIGhhbmRsZXIKK3dpbGwgcmVzZXQgdGhlIHRlcm1pbmFsIGF0dHJpYnV0ZXMgdG8gdGhvc2UgdGhhdCB3ZXJlIGluIGVmZmVjdCBiZWZvcmUKK0Bjb2Rle3JlYWRsaW5lKCl9IHdhcyBjYWxsZWQsIHJlc2V0IHRoZSBzaWduYWwgaGFuZGxpbmcgdG8gd2hhdCBpdCB3YXMKK2JlZm9yZSBAY29kZXtyZWFkbGluZSgpfSB3YXMgY2FsbGVkLCBhbmQgcmVzZW5kIHRoZSBzaWduYWwgdG8gdGhlIGNhbGxpbmcKK2FwcGxpY2F0aW9uLgorSWYgYW5kIHdoZW4gdGhlIGNhbGxpbmcgYXBwbGljYXRpb24ncyBzaWduYWwgaGFuZGxlciByZXR1cm5zLCBSZWFkbGluZQord2lsbCByZWluaXRpYWxpemUgdGhlIHRlcm1pbmFsIGFuZCBjb250aW51ZSB0byBhY2NlcHQgaW5wdXQuCitXaGVuIGEgQGNvZGV7U0lHSU5UfSBpcyByZWNlaXZlZCwgdGhlIFJlYWRsaW5lIHNpZ25hbCBoYW5kbGVyIHBlcmZvcm1zCitzb21lIGFkZGl0aW9uYWwgd29yaywgd2hpY2ggd2lsbCBjYXVzZSBhbnkgcGFydGlhbGx5LWVudGVyZWQgbGluZSB0byBiZQorYWJvcnRlZCAoc2VlIHRoZSBkZXNjcmlwdGlvbiBvZiBAY29kZXtybF9mcmVlX2xpbmVfc3RhdGUoKX0gYmVsb3cpLgorCitUaGVyZSBpcyBhbiBhZGRpdGlvbmFsIFJlYWRsaW5lIHNpZ25hbCBoYW5kbGVyLCBmb3IgQGNvZGV7U0lHV0lOQ0h9LCB3aGljaAordGhlIGtlcm5lbCBzZW5kcyB0byBhIHByb2Nlc3Mgd2hlbmV2ZXIgdGhlIHRlcm1pbmFsJ3Mgc2l6ZSBjaGFuZ2VzIChmb3IKK2V4YW1wbGUsIGlmIGEgdXNlciByZXNpemVzIGFuIEBjb2Rle3h0ZXJtfSkuICBUaGUgUmVhZGxpbmUgQGNvZGV7U0lHV0lOQ0h9CitoYW5kbGVyIHVwZGF0ZXMgUmVhZGxpbmUncyBpbnRlcm5hbCBzY3JlZW4gc2l6ZSBpbmZvcm1hdGlvbiwgYW5kIHRoZW4gY2FsbHMKK2FueSBAY29kZXtTSUdXSU5DSH0gc2lnbmFsIGhhbmRsZXIgdGhlIGNhbGxpbmcgYXBwbGljYXRpb24gaGFzIGluc3RhbGxlZC4gCitSZWFkbGluZSBjYWxscyB0aGUgYXBwbGljYXRpb24ncyBAY29kZXtTSUdXSU5DSH0gc2lnbmFsIGhhbmRsZXIgd2l0aG91dAorcmVzZXR0aW5nIHRoZSB0ZXJtaW5hbCB0byBpdHMgb3JpZ2luYWwgc3RhdGUuICBJZiB0aGUgYXBwbGljYXRpb24ncyBzaWduYWwKK2hhbmRsZXIgZG9lcyBtb3JlIHRoYW4gdXBkYXRlIGl0cyBpZGVhIG9mIHRoZSB0ZXJtaW5hbCBzaXplIGFuZCByZXR1cm4gKGZvcgorZXhhbXBsZSwgYSBAY29kZXtsb25nam1wfSBiYWNrIHRvIGEgbWFpbiBwcm9jZXNzaW5nIGxvb3ApLCBpdCBAZW1waHttdXN0fQorY2FsbCBAY29kZXtybF9jbGVhbnVwX2FmdGVyX3NpZ25hbCgpfSAoZGVzY3JpYmVkIGJlbG93KSwgdG8gcmVzdG9yZSB0aGUKK3Rlcm1pbmFsIHN0YXRlLiAKKworUmVhZGxpbmUgcHJvdmlkZXMgdHdvIHZhcmlhYmxlcyB0aGF0IGFsbG93IGFwcGxpY2F0aW9uIHdyaXRlcnMgdG8KK2NvbnRyb2wgd2hldGhlciBvciBub3QgaXQgd2lsbCBjYXRjaCBjZXJ0YWluIHNpZ25hbHMgYW5kIGFjdCBvbiB0aGVtCit3aGVuIHRoZXkgYXJlIHJlY2VpdmVkLiAgSXQgaXMgaW1wb3J0YW50IHRoYXQgYXBwbGljYXRpb25zIGNoYW5nZSB0aGUKK3ZhbHVlcyBvZiB0aGVzZSB2YXJpYWJsZXMgb25seSB3aGVuIGNhbGxpbmcgQGNvZGV7cmVhZGxpbmUoKX0sIG5vdCBpbgorYSBzaWduYWwgaGFuZGxlciwgc28gUmVhZGxpbmUncyBpbnRlcm5hbCBzaWduYWwgc3RhdGUgaXMgbm90IGNvcnJ1cHRlZC4KKworQGRlZnR5cGV2YXIgaW50IHJsX2NhdGNoX3NpZ25hbHMKK0lmIHRoaXMgdmFyaWFibGUgaXMgbm9uLXplcm8sIFJlYWRsaW5lIHdpbGwgaW5zdGFsbCBzaWduYWwgaGFuZGxlcnMgZm9yCitAY29kZXtTSUdJTlR9LCBAY29kZXtTSUdRVUlUfSwgQGNvZGV7U0lHVEVSTX0sIEBjb2Rle1NJR0FMUk19LAorQGNvZGV7U0lHVFNUUH0sIEBjb2Rle1NJR1RUSU59LCBhbmQgQGNvZGV7U0lHVFRPVX0uCisKK1RoZSBkZWZhdWx0IHZhbHVlIG9mIEBjb2Rle3JsX2NhdGNoX3NpZ25hbHN9IGlzIDEuCitAZW5kIGRlZnR5cGV2YXIKKworQGRlZnR5cGV2YXIgaW50IHJsX2NhdGNoX3NpZ3dpbmNoCitJZiB0aGlzIHZhcmlhYmxlIGlzIG5vbi16ZXJvLCBSZWFkbGluZSB3aWxsIGluc3RhbGwgYSBzaWduYWwgaGFuZGxlciBmb3IKK0Bjb2Rle1NJR1dJTkNIfS4KKworVGhlIGRlZmF1bHQgdmFsdWUgb2YgQGNvZGV7cmxfY2F0Y2hfc2lnd2luY2h9IGlzIDEuCitAZW5kIGRlZnR5cGV2YXIKKworSWYgYW4gYXBwbGljYXRpb24gZG9lcyBub3Qgd2lzaCB0byBoYXZlIFJlYWRsaW5lIGNhdGNoIGFueSBzaWduYWxzLCBvcgordG8gaGFuZGxlIHNpZ25hbHMgb3RoZXIgdGhhbiB0aG9zZSBSZWFkbGluZSBjYXRjaGVzIChAY29kZXtTSUdIVVB9LAorZm9yIGV4YW1wbGUpLCAKK1JlYWRsaW5lIHByb3ZpZGVzIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyB0byBkbyB0aGUgbmVjZXNzYXJ5IHRlcm1pbmFsCithbmQgaW50ZXJuYWwgc3RhdGUgY2xlYW51cCB1cG9uIHJlY2VpcHQgb2YgYSBzaWduYWwuCisKK0BkZWZ0eXBlZnVuIHZvaWQgcmxfY2xlYW51cF9hZnRlcl9zaWduYWwgKHZvaWQpCitUaGlzIGZ1bmN0aW9uIHdpbGwgcmVzZXQgdGhlIHN0YXRlIG9mIHRoZSB0ZXJtaW5hbCB0byB3aGF0IGl0IHdhcyBiZWZvcmUKK0Bjb2Rle3JlYWRsaW5lKCl9IHdhcyBjYWxsZWQsIGFuZCByZW1vdmUgdGhlIFJlYWRsaW5lIHNpZ25hbCBoYW5kbGVycyBmb3IKK2FsbCBzaWduYWxzLCBkZXBlbmRpbmcgb24gdGhlIHZhbHVlcyBvZiBAY29kZXtybF9jYXRjaF9zaWduYWxzfSBhbmQKK0Bjb2Rle3JsX2NhdGNoX3NpZ3dpbmNofS4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biB2b2lkIHJsX2ZyZWVfbGluZV9zdGF0ZSAodm9pZCkKK1RoaXMgd2lsbCBmcmVlIGFueSBwYXJ0aWFsIHN0YXRlIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBpbnB1dCBsaW5lCisodW5kbyBpbmZvcm1hdGlvbiwgYW55IHBhcnRpYWwgaGlzdG9yeSBlbnRyeSwgYW55IHBhcnRpYWxseS1lbnRlcmVkCitrZXlib2FyZCBtYWNybywgYW5kIGFueSBwYXJ0aWFsbHktZW50ZXJlZCBudW1lcmljIGFyZ3VtZW50KS4gIFRoaXMKK3Nob3VsZCBiZSBjYWxsZWQgYmVmb3JlIEBjb2Rle3JsX2NsZWFudXBfYWZ0ZXJfc2lnbmFsKCl9LiAgVGhlCitSZWFkbGluZSBzaWduYWwgaGFuZGxlciBmb3IgQGNvZGV7U0lHSU5UfSBjYWxscyB0aGlzIHRvIGFib3J0IHRoZQorY3VycmVudCBpbnB1dCBsaW5lLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIHZvaWQgcmxfcmVzZXRfYWZ0ZXJfc2lnbmFsICh2b2lkKQorVGhpcyB3aWxsIHJlaW5pdGlhbGl6ZSB0aGUgdGVybWluYWwgYW5kIHJlaW5zdGFsbCBhbnkgUmVhZGxpbmUgc2lnbmFsCitoYW5kbGVycywgZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZXMgb2YgQGNvZGV7cmxfY2F0Y2hfc2lnbmFsc30gYW5kCitAY29kZXtybF9jYXRjaF9zaWd3aW5jaH0uCitAZW5kIGRlZnR5cGVmdW4KKworSWYgYW4gYXBwbGljYXRpb24gZG9lcyBub3Qgd2lzaCBSZWFkbGluZSB0byBjYXRjaCBAY29kZXtTSUdXSU5DSH0sIGl0IG1heQorY2FsbCBAY29kZXtybF9yZXNpemVfdGVybWluYWwoKX0gb3IgQGNvZGV7cmxfc2V0X3NjcmVlbl9zaXplKCl9IHRvIGZvcmNlCitSZWFkbGluZSB0byB1cGRhdGUgaXRzIGlkZWEgb2YgdGhlIHRlcm1pbmFsIHNpemUgd2hlbiBhIEBjb2Rle1NJR1dJTkNIfQoraXMgcmVjZWl2ZWQuCisKK0BkZWZ0eXBlZnVuIHZvaWQgcmxfcmVzaXplX3Rlcm1pbmFsICh2b2lkKQorVXBkYXRlIFJlYWRsaW5lJ3MgaW50ZXJuYWwgc2NyZWVuIHNpemUgYnkgcmVhZGluZyB2YWx1ZXMgZnJvbSB0aGUga2VybmVsLgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIHZvaWQgcmxfc2V0X3NjcmVlbl9zaXplIChpbnQgcm93cywgaW50IGNvbHMpCitTZXQgUmVhZGxpbmUncyBpZGVhIG9mIHRoZSB0ZXJtaW5hbCBzaXplIHRvIEB2YXJ7cm93c30gcm93cyBhbmQKK0B2YXJ7Y29sc30gY29sdW1ucy4gIElmIGVpdGhlciBAdmFye3Jvd3N9IG9yIEB2YXJ7Y29sdW1uc30gaXMgbGVzcyB0aGFuCitvciBlcXVhbCB0byAwLCBSZWFkbGluZSdzIGlkZWEgb2YgdGhhdCB0ZXJtaW5hbCBkaW1lbnNpb24gaXMgdW5jaGFuZ2VkLgorQGVuZCBkZWZ0eXBlZnVuCisKK0lmIGFuIGFwcGxpY2F0aW9uIGRvZXMgbm90IHdhbnQgdG8gaW5zdGFsbCBhIEBjb2Rle1NJR1dJTkNIfSBoYW5kbGVyLCBidXQKK2lzIHN0aWxsIGludGVyZXN0ZWQgaW4gdGhlIHNjcmVlbiBkaW1lbnNpb25zLCBSZWFkbGluZSdzIGlkZWEgb2YgdGhlIHNjcmVlbgorc2l6ZSBtYXkgYmUgcXVlcmllZC4KKworQGRlZnR5cGVmdW4gdm9pZCBybF9nZXRfc2NyZWVuX3NpemUgKGludCAqcm93cywgaW50ICpjb2xzKQorUmV0dXJuIFJlYWRsaW5lJ3MgaWRlYSBvZiB0aGUgdGVybWluYWwncyBzaXplIGluIHRoZQordmFyaWFibGVzIHBvaW50ZWQgdG8gYnkgdGhlIGFyZ3VtZW50cy4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biB2b2lkIHJsX3Jlc2V0X3NjcmVlbl9zaXplICh2b2lkKQorQ2F1c2UgUmVhZGxpbmUgdG8gcmVvYnRhaW4gdGhlIHNjcmVlbiBzaXplIGFuZCByZWNhbGN1bGF0ZSBpdHMgZGltZW5zaW9ucy4KK0BlbmQgZGVmdHlwZWZ1bgorCitUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBpbnN0YWxsIGFuZCByZW1vdmUgUmVhZGxpbmUncyBzaWduYWwgaGFuZGxlcnMuCisKK0BkZWZ0eXBlZnVuIGludCBybF9zZXRfc2lnbmFscyAodm9pZCkKK0luc3RhbGwgUmVhZGxpbmUncyBzaWduYWwgaGFuZGxlciBmb3IgQGNvZGV7U0lHSU5UfSwgQGNvZGV7U0lHUVVJVH0sCitAY29kZXtTSUdURVJNfSwgQGNvZGV7U0lHQUxSTX0sIEBjb2Rle1NJR1RTVFB9LCBAY29kZXtTSUdUVElOfSwKK0Bjb2Rle1NJR1RUT1V9LCBhbmQgQGNvZGV7U0lHV0lOQ0h9LCBkZXBlbmRpbmcgb24gdGhlIHZhbHVlcyBvZgorQGNvZGV7cmxfY2F0Y2hfc2lnbmFsc30gYW5kIEBjb2Rle3JsX2NhdGNoX3NpZ3dpbmNofS4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biBpbnQgcmxfY2xlYXJfc2lnbmFscyAodm9pZCkKK1JlbW92ZSBhbGwgb2YgdGhlIFJlYWRsaW5lIHNpZ25hbCBoYW5kbGVycyBpbnN0YWxsZWQgYnkKK0Bjb2Rle3JsX3NldF9zaWduYWxzKCl9LgorQGVuZCBkZWZ0eXBlZnVuCisKK0Bub2RlIEN1c3RvbSBDb21wbGV0ZXJzCitAc2VjdGlvbiBDdXN0b20gQ29tcGxldGVycworQGNpbmRleCBhcHBsaWNhdGlvbi1zcGVjaWZpYyBjb21wbGV0aW9uIGZ1bmN0aW9ucworCitUeXBpY2FsbHksIGEgcHJvZ3JhbSB0aGF0IHJlYWRzIGNvbW1hbmRzIGZyb20gdGhlIHVzZXIgaGFzIGEgd2F5IG9mCitkaXNhbWJpZ3VhdGluZyBjb21tYW5kcyBhbmQgZGF0YS4gIElmIHlvdXIgcHJvZ3JhbSBpcyBvbmUgb2YgdGhlc2UsIHRoZW4KK2l0IGNhbiBwcm92aWRlIGNvbXBsZXRpb24gZm9yIGNvbW1hbmRzLCBkYXRhLCBvciBib3RoLgorVGhlIGZvbGxvd2luZyBzZWN0aW9ucyBkZXNjcmliZSBob3cgeW91ciBwcm9ncmFtIGFuZCBSZWFkbGluZQorY29vcGVyYXRlIHRvIHByb3ZpZGUgdGhpcyBzZXJ2aWNlLgorCitAbWVudQorKiBIb3cgQ29tcGxldGluZyBXb3Jrczo6CVRoZSBsb2dpYyB1c2VkIHRvIGRvIGNvbXBsZXRpb24uCisqIENvbXBsZXRpb24gRnVuY3Rpb25zOjoJRnVuY3Rpb25zIHByb3ZpZGVkIGJ5IFJlYWRsaW5lLgorKiBDb21wbGV0aW9uIFZhcmlhYmxlczo6CVZhcmlhYmxlcyB3aGljaCBjb250cm9sIGNvbXBsZXRpb24uCisqIEEgU2hvcnQgQ29tcGxldGlvbiBFeGFtcGxlOjoJQW4gZXhhbXBsZSBvZiB3cml0aW5nIGNvbXBsZXRlciBzdWJyb3V0aW5lcy4KK0BlbmQgbWVudQorCitAbm9kZSBIb3cgQ29tcGxldGluZyBXb3JrcworQHN1YnNlY3Rpb24gSG93IENvbXBsZXRpbmcgV29ya3MKKworSW4gb3JkZXIgdG8gY29tcGxldGUgc29tZSB0ZXh0LCB0aGUgZnVsbCBsaXN0IG9mIHBvc3NpYmxlIGNvbXBsZXRpb25zCittdXN0IGJlIGF2YWlsYWJsZS4gIFRoYXQgaXMsIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBhY2N1cmF0ZWx5CitleHBhbmQgYSBwYXJ0aWFsIHdvcmQgd2l0aG91dCBrbm93aW5nIGFsbCBvZiB0aGUgcG9zc2libGUgd29yZHMKK3doaWNoIG1ha2Ugc2Vuc2UgaW4gdGhhdCBjb250ZXh0LiAgVGhlIFJlYWRsaW5lIGxpYnJhcnkgcHJvdmlkZXMKK3RoZSB1c2VyIGludGVyZmFjZSB0byBjb21wbGV0aW9uLCBhbmQgdHdvIG9mIHRoZSBtb3N0IGNvbW1vbgorY29tcGxldGlvbiBmdW5jdGlvbnM6ICBmaWxlbmFtZSBhbmQgdXNlcm5hbWUuICBGb3IgY29tcGxldGluZyBvdGhlciB0eXBlcworb2YgdGV4dCwgeW91IG11c3Qgd3JpdGUgeW91ciBvd24gY29tcGxldGlvbiBmdW5jdGlvbi4gIFRoaXMgc2VjdGlvbgorZGVzY3JpYmVzIGV4YWN0bHkgd2hhdCBzdWNoIGZ1bmN0aW9ucyBtdXN0IGRvLCBhbmQgcHJvdmlkZXMgYW4gZXhhbXBsZS4KKworVGhlcmUgYXJlIHRocmVlIG1ham9yIGZ1bmN0aW9ucyB1c2VkIHRvIHBlcmZvcm0gY29tcGxldGlvbjoKKworQGVudW1lcmF0ZQorQGl0ZW0KK1RoZSB1c2VyLWludGVyZmFjZSBmdW5jdGlvbiBAY29kZXtybF9jb21wbGV0ZSgpfS4gIFRoaXMgZnVuY3Rpb24gaXMKK2NhbGxlZCB3aXRoIHRoZSBzYW1lIGFyZ3VtZW50cyBhcyBvdGhlciBiaW5kYWJsZSBSZWFkbGluZSBmdW5jdGlvbnM6CitAdmFye2NvdW50fSBhbmQgQHZhcntpbnZva2luZ19rZXl9LgorSXQgaXNvbGF0ZXMgdGhlIHdvcmQgdG8gYmUgY29tcGxldGVkIGFuZCBjYWxscworQGNvZGV7cmxfY29tcGxldGlvbl9tYXRjaGVzKCl9IHRvIGdlbmVyYXRlIGEgbGlzdCBvZiBwb3NzaWJsZSBjb21wbGV0aW9ucy4KK0l0IHRoZW4gZWl0aGVyIGxpc3RzIHRoZSBwb3NzaWJsZSBjb21wbGV0aW9ucywgaW5zZXJ0cyB0aGUgcG9zc2libGUKK2NvbXBsZXRpb25zLCBvciBhY3R1YWxseSBwZXJmb3JtcyB0aGUKK2NvbXBsZXRpb24sIGRlcGVuZGluZyBvbiB3aGljaCBiZWhhdmlvciBpcyBkZXNpcmVkLgorCitAaXRlbQorVGhlIGludGVybmFsIGZ1bmN0aW9uIEBjb2Rle3JsX2NvbXBsZXRpb25fbWF0Y2hlcygpfSB1c2VzIGFuCithcHBsaWNhdGlvbi1zdXBwbGllZCBAZGZue2dlbmVyYXRvcn0gZnVuY3Rpb24gdG8gZ2VuZXJhdGUgdGhlIGxpc3Qgb2YKK3Bvc3NpYmxlIG1hdGNoZXMsIGFuZCB0aGVuIHJldHVybnMgdGhlIGFycmF5IG9mIHRoZXNlIG1hdGNoZXMuCitUaGUgY2FsbGVyIHNob3VsZCBwbGFjZSB0aGUgYWRkcmVzcyBvZiBpdHMgZ2VuZXJhdG9yIGZ1bmN0aW9uIGluCitAY29kZXtybF9jb21wbGV0aW9uX2VudHJ5X2Z1bmN0aW9ufS4KKworQGl0ZW0KK1RoZSBnZW5lcmF0b3IgZnVuY3Rpb24gaXMgY2FsbGVkIHJlcGVhdGVkbHkgZnJvbQorQGNvZGV7cmxfY29tcGxldGlvbl9tYXRjaGVzKCl9LCByZXR1cm5pbmcgYSBzdHJpbmcgZWFjaCB0aW1lLiAgVGhlCithcmd1bWVudHMgdG8gdGhlIGdlbmVyYXRvciBmdW5jdGlvbiBhcmUgQHZhcnt0ZXh0fSBhbmQgQHZhcntzdGF0ZX0uCitAdmFye3RleHR9IGlzIHRoZSBwYXJ0aWFsIHdvcmQgdG8gYmUgY29tcGxldGVkLiAgQHZhcntzdGF0ZX0gaXMgemVybyB0aGUKK2ZpcnN0IHRpbWUgdGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCwgYWxsb3dpbmcgdGhlIGdlbmVyYXRvciB0byBwZXJmb3JtCithbnkgbmVjZXNzYXJ5IGluaXRpYWxpemF0aW9uLCBhbmQgYSBwb3NpdGl2ZSBub24temVybyBpbnRlZ2VyIGZvcgorZWFjaCBzdWJzZXF1ZW50IGNhbGwuICBUaGUgZ2VuZXJhdG9yIGZ1bmN0aW9uIHJldHVybnMKK0Bjb2RleyhjaGFyICopTlVMTH0gdG8gaW5mb3JtIEBjb2Rle3JsX2NvbXBsZXRpb25fbWF0Y2hlcygpfSB0aGF0IHRoZXJlIGFyZQorbm8gbW9yZSBwb3NzaWJpbGl0aWVzIGxlZnQuICBVc3VhbGx5IHRoZSBnZW5lcmF0b3IgZnVuY3Rpb24gY29tcHV0ZXMgdGhlCitsaXN0IG9mIHBvc3NpYmxlIGNvbXBsZXRpb25zIHdoZW4gQHZhcntzdGF0ZX0gaXMgemVybywgYW5kIHJldHVybnMgdGhlbQorb25lIGF0IGEgdGltZSBvbiBzdWJzZXF1ZW50IGNhbGxzLiAgRWFjaCBzdHJpbmcgdGhlIGdlbmVyYXRvciBmdW5jdGlvbgorcmV0dXJucyBhcyBhIG1hdGNoIG11c3QgYmUgYWxsb2NhdGVkIHdpdGggQGNvZGV7bWFsbG9jKCl9OyBSZWFkbGluZQorZnJlZXMgdGhlIHN0cmluZ3Mgd2hlbiBpdCBoYXMgZmluaXNoZWQgd2l0aCB0aGVtLgorU3VjaCBhIGdlbmVyYXRvciBmdW5jdGlvbiBpcyByZWZlcnJlZCB0byBhcyBhbgorQGRmbnthcHBsaWNhdGlvbi1zcGVjaWZpYyBjb21wbGV0aW9uIGZ1bmN0aW9ufS4KKworQGVuZCBlbnVtZXJhdGUKKworQGRlZnR5cGVmdW4gaW50IHJsX2NvbXBsZXRlIChpbnQgaWdub3JlLCBpbnQgaW52b2tpbmdfa2V5KQorQ29tcGxldGUgdGhlIHdvcmQgYXQgb3IgYmVmb3JlIHBvaW50LiAgWW91IGhhdmUgc3VwcGxpZWQgdGhlIGZ1bmN0aW9uCit0aGF0IGRvZXMgdGhlIGluaXRpYWwgc2ltcGxlIG1hdGNoaW5nIHNlbGVjdGlvbiBhbGdvcml0aG0gKHNlZQorQGNvZGV7cmxfY29tcGxldGlvbl9tYXRjaGVzKCl9KS4gIFRoZSBkZWZhdWx0IGlzIHRvIGRvIGZpbGVuYW1lIGNvbXBsZXRpb24uCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGV2YXIge3JsX2NvbXBlbnRyeV9mdW5jX3QgKn0gcmxfY29tcGxldGlvbl9lbnRyeV9mdW5jdGlvbgorVGhpcyBpcyBhIHBvaW50ZXIgdG8gdGhlIGdlbmVyYXRvciBmdW5jdGlvbiBmb3IKK0Bjb2Rle3JsX2NvbXBsZXRpb25fbWF0Y2hlcygpfS4KK0lmIHRoZSB2YWx1ZSBvZiBAY29kZXtybF9jb21wbGV0aW9uX2VudHJ5X2Z1bmN0aW9ufSBpcworQGNvZGV7TlVMTH0gdGhlbiB0aGUgZGVmYXVsdCBmaWxlbmFtZSBnZW5lcmF0b3IKK2Z1bmN0aW9uLCBAY29kZXtybF9maWxlbmFtZV9jb21wbGV0aW9uX2Z1bmN0aW9uKCl9LCBpcyB1c2VkLgorQW4gQGRmbnthcHBsaWNhdGlvbi1zcGVjaWZpYyBjb21wbGV0aW9uIGZ1bmN0aW9ufSBpcyBhIGZ1bmN0aW9uIHdob3NlCithZGRyZXNzIGlzIGFzc2lnbmVkIHRvIEBjb2Rle3JsX2NvbXBsZXRpb25fZW50cnlfZnVuY3Rpb259IGFuZCB3aG9zZQorcmV0dXJuIHZhbHVlcyBhcmUgdXNlZCB0byAgZ2VuZXJhdGUgcG9zc2libGUgY29tcGxldGlvbnMuCitAZW5kIGRlZnR5cGV2YXIKKworQG5vZGUgQ29tcGxldGlvbiBGdW5jdGlvbnMKK0BzdWJzZWN0aW9uIENvbXBsZXRpb24gRnVuY3Rpb25zCisKK0hlcmUgaXMgdGhlIGNvbXBsZXRlIGxpc3Qgb2YgY2FsbGFibGUgY29tcGxldGlvbiBmdW5jdGlvbnMgcHJlc2VudCBpbgorUmVhZGxpbmUuCisKK0BkZWZ0eXBlZnVuIGludCBybF9jb21wbGV0ZV9pbnRlcm5hbCAoaW50IHdoYXRfdG9fZG8pCitDb21wbGV0ZSB0aGUgd29yZCBhdCBvciBiZWZvcmUgcG9pbnQuICBAdmFye3doYXRfdG9fZG99IHNheXMgd2hhdCB0byBkbword2l0aCB0aGUgY29tcGxldGlvbi4gIEEgdmFsdWUgb2YgQHNhbXB7P30gbWVhbnMgbGlzdCB0aGUgcG9zc2libGUKK2NvbXBsZXRpb25zLiAgQHNhbXB7VEFCfSBtZWFucyBkbyBzdGFuZGFyZCBjb21wbGV0aW9uLiAgQHNhbXB7Kn0gbWVhbnMKK2luc2VydCBhbGwgb2YgdGhlIHBvc3NpYmxlIGNvbXBsZXRpb25zLiAgQHNhbXB7IX0gbWVhbnMgdG8gZGlzcGxheQorYWxsIG9mIHRoZSBwb3NzaWJsZSBjb21wbGV0aW9ucywgaWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSwgYXMgd2VsbCBhcworcGVyZm9ybWluZyBwYXJ0aWFsIGNvbXBsZXRpb24uICBAc2FtcHtAQH0gaXMgc2ltaWxhciB0byBAc2FtcHshfSwgYnV0Citwb3NzaWJsZSBjb21wbGV0aW9ucyBhcmUgbm90IGxpc3RlZCBpZiB0aGUgcG9zc2libGUgY29tcGxldGlvbnMgc2hhcmUKK2EgY29tbW9uIHByZWZpeC4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biBpbnQgcmxfY29tcGxldGUgKGludCBpZ25vcmUsIGludCBpbnZva2luZ19rZXkpCitDb21wbGV0ZSB0aGUgd29yZCBhdCBvciBiZWZvcmUgcG9pbnQuICBZb3UgaGF2ZSBzdXBwbGllZCB0aGUgZnVuY3Rpb24KK3RoYXQgZG9lcyB0aGUgaW5pdGlhbCBzaW1wbGUgbWF0Y2hpbmcgc2VsZWN0aW9uIGFsZ29yaXRobSAoc2VlCitAY29kZXtybF9jb21wbGV0aW9uX21hdGNoZXMoKX0gYW5kIEBjb2Rle3JsX2NvbXBsZXRpb25fZW50cnlfZnVuY3Rpb259KS4KK1RoZSBkZWZhdWx0IGlzIHRvIGRvIGZpbGVuYW1lCitjb21wbGV0aW9uLiAgVGhpcyBjYWxscyBAY29kZXtybF9jb21wbGV0ZV9pbnRlcm5hbCgpfSB3aXRoIGFuCithcmd1bWVudCBkZXBlbmRpbmcgb24gQHZhcntpbnZva2luZ19rZXl9LgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBybF9wb3NzaWJsZV9jb21wbGV0aW9ucyAoaW50IGNvdW50LCBpbnQgaW52b2tpbmdfa2V5KQorTGlzdCB0aGUgcG9zc2libGUgY29tcGxldGlvbnMuICBTZWUgZGVzY3JpcHRpb24gb2YgQGNvZGV7cmxfY29tcGxldGUKKygpfS4gIFRoaXMgY2FsbHMgQGNvZGV7cmxfY29tcGxldGVfaW50ZXJuYWwoKX0gd2l0aCBhbiBhcmd1bWVudCBvZgorQHNhbXB7P30uCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4gaW50IHJsX2luc2VydF9jb21wbGV0aW9ucyAoaW50IGNvdW50LCBpbnQgaW52b2tpbmdfa2V5KQorSW5zZXJ0IHRoZSBsaXN0IG9mIHBvc3NpYmxlIGNvbXBsZXRpb25zIGludG8gdGhlIGxpbmUsIGRlbGV0aW5nIHRoZQorcGFydGlhbGx5LWNvbXBsZXRlZCB3b3JkLiAgU2VlIGRlc2NyaXB0aW9uIG9mIEBjb2Rle3JsX2NvbXBsZXRlKCl9LgorVGhpcyBjYWxscyBAY29kZXtybF9jb21wbGV0ZV9pbnRlcm5hbCgpfSB3aXRoIGFuIGFyZ3VtZW50IG9mIEBzYW1weyp9LgorQGVuZCBkZWZ0eXBlZnVuCisKK0BkZWZ0eXBlZnVuIGludCBybF9jb21wbGV0aW9uX21vZGUgKHJsX2NvbW1hbmRfZnVuY190ICpjZnVuYykKK1JldHVybnMgdGhlIGFwcHByaWF0ZSB2YWx1ZSB0byBwYXNzIHRvIEBjb2Rle3JsX2NvbXBsZXRlX2ludGVybmFsKCl9CitkZXBlbmRpbmcgb24gd2hldGhlciBAdmFye2NmdW5jfSB3YXMgY2FsbGVkIHR3aWNlIGluIHN1Y2Nlc3Npb24gYW5kCit0aGUgdmFsdWVzIG9mIHRoZSBAY29kZXtzaG93LWFsbC1pZi1hbWJpZ3VvdXN9IGFuZAorQGNvZGV7c2hvdy1hbGwtaWYtdW5tb2RpZmllZH0gdmFyaWFibGVzLgorQXBwbGljYXRpb24tc3BlY2lmaWMgY29tcGxldGlvbiBmdW5jdGlvbnMgbWF5IHVzZSB0aGlzIGZ1bmN0aW9uIHRvIHByZXNlbnQKK3RoZSBzYW1lIGludGVyZmFjZSBhcyBAY29kZXtybF9jb21wbGV0ZSgpfS4KK0BlbmQgZGVmdHlwZWZ1bgorCitAZGVmdHlwZWZ1biB7Y2hhciAqKn0gcmxfY29tcGxldGlvbl9tYXRjaGVzIChjb25zdCBjaGFyICp0ZXh0LCBybF9jb21wZW50cnlfZnVuY190ICplbnRyeV9mdW5jKQorUmV0dXJucyBhbiBhcnJheSBvZiBzdHJpbmdzIHdoaWNoIGlzIGEgbGlzdCBvZiBjb21wbGV0aW9ucyBmb3IKK0B2YXJ7dGV4dH0uICBJZiB0aGVyZSBhcmUgbm8gY29tcGxldGlvbnMsIHJldHVybnMgQGNvZGV7TlVMTH0uCitUaGUgZmlyc3QgZW50cnkgaW4gdGhlIHJldHVybmVkIGFycmF5IGlzIHRoZSBzdWJzdGl0dXRpb24gZm9yIEB2YXJ7dGV4dH0uCitUaGUgcmVtYWluaW5nIGVudHJpZXMgYXJlIHRoZSBwb3NzaWJsZSBjb21wbGV0aW9ucy4gIFRoZSBhcnJheSBpcwordGVybWluYXRlZCB3aXRoIGEgQGNvZGV7TlVMTH0gcG9pbnRlci4KKworQHZhcntlbnRyeV9mdW5jfSBpcyBhIGZ1bmN0aW9uIG9mIHR3byBhcmdzLCBhbmQgcmV0dXJucyBhCitAY29kZXtjaGFyICp9LiAgVGhlIGZpcnN0IGFyZ3VtZW50IGlzIEB2YXJ7dGV4dH0uICBUaGUgc2Vjb25kIGlzIGEKK3N0YXRlIGFyZ3VtZW50OyBpdCBpcyB6ZXJvIG9uIHRoZSBmaXJzdCBjYWxsLCBhbmQgbm9uLXplcm8gb24gc3Vic2VxdWVudAorY2FsbHMuICBAdmFye2VudHJ5X2Z1bmN9IHJldHVybnMgYSBAY29kZXtOVUxMfSAgcG9pbnRlciB0byB0aGUgY2FsbGVyCit3aGVuIHRoZXJlIGFyZSBubyBtb3JlIG1hdGNoZXMuCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4ge2NoYXIgKn0gcmxfZmlsZW5hbWVfY29tcGxldGlvbl9mdW5jdGlvbiAoY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXRlKQorQSBnZW5lcmF0b3IgZnVuY3Rpb24gZm9yIGZpbGVuYW1lIGNvbXBsZXRpb24gaW4gdGhlIGdlbmVyYWwgY2FzZS4KK0B2YXJ7dGV4dH0gaXMgYSBwYXJ0aWFsIGZpbGVuYW1lLgorVGhlIEJhc2ggc291cmNlIGlzIGEgdXNlZnVsIHJlZmVyZW5jZSBmb3Igd3JpdGluZyBhcHBsaWNhdGlvbi1zcGVjaWZpYworY29tcGxldGlvbiBmdW5jdGlvbnMgKHRoZSBCYXNoIGNvbXBsZXRpb24gZnVuY3Rpb25zIGNhbGwgdGhpcyBhbmQgb3RoZXIKK1JlYWRsaW5lIGZ1bmN0aW9ucykuCitAZW5kIGRlZnR5cGVmdW4KKworQGRlZnR5cGVmdW4ge2NoYXIgKn0gcmxfdXNlcm5hbWVfY29tcGxldGlvbl9mdW5jdGlvbiAoY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXRlKQorQSBjb21wbGV0aW9uIGdlbmVyYXRvciBmb3IgdXNlcm5hbWVzLiAgQHZhcnt0ZXh0fSBjb250YWlucyBhIHBhcnRpYWwKK3VzZXJuYW1lIHByZWNlZGVkIGJ5IGEgcmFuZG9tIGNoYXJhY3RlciAodXN1YWxseSBAc2FtcHt+fSkuICBBcyB3aXRoIGFsbAorY29tcGxldGlvbiBnZW5lcmF0b3JzLCBAdmFye3N0YXRlfSBpcyB6ZXJvIG9uIHRoZSBmaXJzdCBjYWxsIGFuZCBub24temVybworZm9yIHN1YnNlcXVlbnQgY2FsbHMuCitAZW5kIGRlZnR5cGVmdW4KKworQG5vZGUgQ29tcGxldGlvbiBWYXJpYWJsZXMKK0BzdWJzZWN0aW9uIENvbXBsZXRpb24gVmFyaWFibGVzCisKK0BkZWZ0eXBldmFyIHtybF9jb21wZW50cnlfZnVuY190ICp9IHJsX2NvbXBsZXRpb25fZW50cnlfZnVuY3Rpb24KK0EgcG9pbnRlciB0byB0aGUgZ2VuZXJhdG9yIGZ1bmN0aW9uIGZvciBAY29kZXtybF9jb21wbGV0aW9uX21hdGNoZXMoKX0uCitAY29kZXtOVUxMfSBtZWFucyB0byB1c2UgQGNvZGV7cmxfZmlsZW5hbWVfY29tcGxldGlvbl9mdW5jdGlvbigpfSwKK3RoZSBkZWZhdWx0IGZpbGVuYW1lIGNvbXBsZXRlci4KK0BlbmQgZGVmdHlwZXZhcgorCitAZGVmdHlwZXZhciB7cmxfY29tcGxldGlvbl9mdW5jX3QgKn0gcmxfYXR0ZW1wdGVkX2NvbXBsZXRpb25fZnVuY3Rpb24KK0EgcG9pbnRlciB0byBhbiBhbHRlcm5hdGl2ZSBmdW5jdGlvbiB0byBjcmVhdGUgbWF0Y2hlcy4KK1RoZSBmdW5jdGlvbiBpcyBjYWxsZWQgd2l0aCBAdmFye3RleHR9LCBAdmFye3N0YXJ0fSwgYW5kIEB2YXJ7ZW5kfS4KK0B2YXJ7c3RhcnR9IGFuZCBAdmFye2VuZH0gYXJlIGluZGljZXMgaW4gQGNvZGV7cmxfbGluZV9idWZmZXJ9IGRlZmluaW5nCit0aGUgYm91bmRhcmllcyBvZiBAdmFye3RleHR9LCB3aGljaCBpcyBhIGNoYXJhY3RlciBzdHJpbmcuCitJZiB0aGlzIGZ1bmN0aW9uIGV4aXN0cyBhbmQgcmV0dXJucyBAY29kZXtOVUxMfSwgb3IgaWYgdGhpcyB2YXJpYWJsZSBpcworc2V0IHRvIEBjb2Rle05VTEx9LCB0aGVuIEBjb2Rle3JsX2NvbXBsZXRlKCl9IHdpbGwgY2FsbCB0aGUgdmFsdWUgb2YKK0Bjb2Rle3JsX2NvbXBsZXRpb25fZW50cnlfZnVuY3Rpb259IHRvIGdlbmVyYXRlIG1hdGNoZXMsIG90aGVyd2lzZSB0aGUKK2FycmF5IG9mIHN0cmluZ3MgcmV0dXJuZWQgd2lsbCBiZSB1c2VkLgorSWYgdGhpcyBmdW5jdGlvbiBzZXRzIHRoZSBAY29kZXtybF9hdHRlbXB0ZWRfY29tcGxldGlvbl9vdmVyfQordmFyaWFibGUgdG8gYSBub24temVybyB2YWx1ZSwgUmVhZGxpbmUgd2lsbCBub3QgcGVyZm9ybSBpdHMgZGVmYXVsdAorY29tcGxldGlvbiBldmVuIGlmIHRoaXMgZnVuY3Rpb24gcmV0dXJucyBubyBtYXRjaGVzLgorQGVuZCBkZWZ0eXBldmFyCisKK0BkZWZ0eXBldmFyIHtybF9xdW90ZV9mdW5jX3QgKn0gcmxfZmlsZW5hbWVfcXVvdGluZ19mdW5jdGlvbgorQSBwb2ludGVyIHRvIGEgZnVuY3Rpb24gdGhhdCB3aWxsIHF1b3RlIGEgZmlsZW5hbWUgaW4gYW4KK2FwcGxpY2F0aW9uLXNwZWNpZmljIGZhc2hpb24uICBUaGlzIGlzIGNhbGxlZCBpZiBmaWxlbmFtZSBjb21wbGV0aW9uIGlzIGJlaW5nCithdHRlbXB0ZWQgYW5kIG9uZSBvZiB0aGUgY2hhcmFjdGVycyBpbiBAY29kZXtybF9maWxlbmFtZV9xdW90ZV9jaGFyYWN0ZXJzfQorYXBwZWFycyBpbiBhIGNvbXBsZXRlZCBmaWxlbmFtZS4gIFRoZSBmdW5jdGlvbiBpcyBjYWxsZWQgd2l0aAorQHZhcnt0ZXh0fSwgQHZhcnttYXRjaF90eXBlfSwgYW5kIEB2YXJ7cXVvdGVfcG9pbnRlcn0uICBUaGUgQHZhcnt0ZXh0fQoraXMgdGhlIGZpbGVuYW1lIHRvIGJlIHF1b3RlZC4gIFRoZSBAdmFye21hdGNoX3R5cGV9IGlzIGVpdGhlcgorQGNvZGV7U0lOR0xFX01BVENIfSwgaWYgdGhlcmUgaXMgb25seSBvbmUgY29tcGxldGlvbiBtYXRjaCwgb3IKK0Bjb2Rle01VTFRfTUFUQ0h9LiAgU29tZSBmdW5jdGlvbnMgdXNlIHRoaXMgdG8gZGVjaWRlIHdoZXRoZXIgb3Igbm90IHRvCitpbnNlcnQgYSBjbG9zaW5nIHF1b3RlIGNoYXJhY3Rlci4gIFRoZSBAdmFye3F1b3RlX3BvaW50ZXJ9IGlzIGEgcG9pbnRlcgordG8gYW55IG9wZW5pbmcgcXVvdGUgY2hhcmFjdGVyIHRoZSB1c2VyIHR5cGVkLiAgU29tZSBmdW5jdGlvbnMgY2hvb3NlCit0byByZXNldCB0aGlzIGNoYXJhY3Rlci4KK0BlbmQgZGVmdHlwZXZhcgorCitAZGVmdHlwZXZhciB7cmxfZGVxdW90ZV9mdW5jX3QgKn0gcmxfZmlsZW5hbWVfZGVxdW90aW5nX2Z1bmN0aW9uCitBIHBvaW50ZXIgdG8gYSBmdW5jdGlvbiB0aGF0IHdpbGwgcmVtb3ZlIGFwcGxpY2F0aW9uLXNwZWNpZmljIHF1b3RpbmcKK2NoYXJhY3RlcnMgZnJvbSBhIGZpbGVuYW1lIGJlZm9yZSBjb21wbGV0aW9uIGlzIGF0dGVtcHRlZCwgc28gdGhvc2UKK2NoYXJhY3RlcnMgZG8gbm90IGludGVyZmVyZSB3aXRoIG1hdGNoaW5nIHRoZSB0ZXh0IGFnYWluc3QgbmFtZXMgaW4KK3RoZSBmaWxlc3lzdGVtLiAgSXQgaXMgY2FsbGVkIHdpdGggQHZhcnt0ZXh0fSwgdGhlIHRleHQgb2YgdGhlIHdvcmQKK3RvIGJlIGRlcXVvdGVkLCBhbmQgQHZhcntxdW90ZV9jaGFyfSwgd2hpY2ggaXMgdGhlIHF1b3RpbmcgY2hhcmFjdGVyIAordGhhdCBkZWxpbWl0cyB0aGUgZmlsZW5hbWUgKHVzdWFsbHkgQHNhbXB7J30gb3IgQHNhbXB7In0pLiAgSWYKK0B2YXJ7cXVvdGVfY2hhcn0gaXMgemVybywgdGhlIGZpbGVuYW1lIHdhcyBub3QgaW4gYW4gZW1iZWRkZWQgc3RyaW5nLgorQGVuZCBkZWZ0eXBldmFyCisKK0BkZWZ0eXBldmFyIHtybF9saW5lYnVmX2Z1bmNfdCAqfSBybF9jaGFyX2lzX3F1b3RlZF9wCitBIHBvaW50ZXIgdG8gYSBmdW5jdGlvbiB0byBjYWxsIHRoYXQgZGV0ZXJtaW5lcyB3aGV0aGVyIG9yIG5vdCBhIHNwZWNpZmljCitjaGFyYWN0ZXIgaW4gdGhlIGxpbmUgYnVmZmVyIGlzIHF1b3RlZCwgYWNjb3JkaW5nIHRvIHdoYXRldmVyIHF1b3RpbmcKK21lY2hhbmlzbSB0aGUgcHJvZ3JhbSBjYWxsaW5nIFJlYWRsaW5lIHVzZXMuICBUaGUgZnVuY3Rpb24gaXMgY2FsbGVkIHdpdGgKK3R3byBhcmd1bWVudHM6IEB2YXJ7dGV4dH0sIHRoZSB0ZXh0IG9mIHRoZSBsaW5lLCBhbmQgQHZhcntpbmRleH0sIHRoZQoraW5kZXggb2YgdGhlIGNoYXJhY3RlciBpbiB0aGUgbGluZS4gIEl0IGlzIHVzZWQgdG8gZGVjaWRlIHdoZXRoZXIgYQorY2hhcmFjdGVyIGZvdW5kIGluIEBjb2Rle3JsX2NvbXBsZXRlcl93b3JkX2JyZWFrX2NoYXJhY3RlcnN9IHNob3VsZCBiZQordXNlZCB0byBicmVhayB3b3JkcyBmb3IgdGhlIGNvbXBsZXRlci4KK0BlbmQgZGVmdHlwZXZhcgorCitAZGVmdHlwZXZhciB7cmxfY29tcGlnbm9yZV9mdW5jX3QgKn0gcmxfaWdub3JlX3NvbWVfY29tcGxldGlvbnNfZnVuY3Rpb24KK1RoaXMgZnVuY3Rpb24sIGlmIGRlZmluZWQsIGlzIGNhbGxlZCBieSB0aGUgY29tcGxldGVyIHdoZW4gcmVhbCBmaWxlbmFtZQorY29tcGxldGlvbiBpcyBkb25lLCBhZnRlciBhbGwgdGhlIG1hdGNoaW5nIG5hbWVzIGhhdmUgYmVlbiBnZW5lcmF0ZWQuCitJdCBpcyBwYXNzZWQgYSBAY29kZXtOVUxMfSB0ZXJtaW5hdGVkIGFycmF5IG9mIG1hdGNoZXMuCitUaGUgZmlyc3QgZWxlbWVudCAoQGNvZGV7bWF0Y2hlc1swXX0pIGlzIHRoZQorbWF4aW1hbCBzdWJzdHJpbmcgY29tbW9uIHRvIGFsbCBtYXRjaGVzLiBUaGlzIGZ1bmN0aW9uIGNhbgorcmUtYXJyYW5nZSB0aGUgbGlzdCBvZiBtYXRjaGVzIGFzIHJlcXVpcmVkLCBidXQgZWFjaCBlbGVtZW50IGRlbGV0ZWQKK2Zyb20gdGhlIGFycmF5IG11c3QgYmUgZnJlZWQuCitAZW5kIGRlZnR5cGV2YXIKKworQGRlZnR5cGV2YXIge3JsX2ljcHBmdW5jX3QgKn0gcmxfZGlyZWN0b3J5X2NvbXBsZXRpb25faG9vaworVGhpcyBmdW5jdGlvbiwgaWYgZGVmaW5lZCwgaXMgYWxsb3dlZCB0byBtb2RpZnkgdGhlIGRpcmVjdG9yeSBwb3J0aW9uCitvZiBmaWxlbmFtZXMgUmVhZGxpbmUgY29tcGxldGVzLiAgSXQgaXMgY2FsbGVkIHdpdGggdGhlIGFkZHJlc3Mgb2YgYQorc3RyaW5nICh0aGUgY3VycmVudCBkaXJlY3RvcnkgbmFtZSkgYXMgYW4gYXJndW1lbnQsIGFuZCBtYXkgbW9kaWZ5IHRoYXQgc3RyaW5nLgorSWYgdGhlIHN0cmluZyBpcyByZXBsYWNlZCB3aXRoIGEgbmV3IHN0cmluZywgdGhlIG9sZCB2YWx1ZSBzaG91bGQgYmUgZnJlZWQuCitBbnkgbW9kaWZpZWQgZGlyZWN0b3J5IG5hbWUgc2hvdWxkIGhhdmUgYSB0cmFpbGluZyBzbGFzaC4KK1RoZSBtb2RpZmllZCB2YWx1ZSB3aWxsIGJlIGRpc3BsYXllZCBhcyBwYXJ0IG9mIHRoZSBjb21wbGV0aW9uLCByZXBsYWNpbmcKK3RoZSBkaXJlY3RvcnkgcG9ydGlvbiBvZiB0aGUgcGF0aG5hbWUgdGhlIHVzZXIgdHlwZWQuCitJdCByZXR1cm5zIGFuIGludGVnZXIgdGhhdCBzaG91bGQgYmUgbm9uLXplcm8gaWYgdGhlIGZ1bmN0aW9uIG1vZGlmaWVzCitpdHMgZGlyZWN0b3J5IGFyZ3VtZW50LgorSXQgY291bGQgYmUgdXNlZCB0byBleHBhbmQgc3ltYm9saWMgbGlua3Mgb3Igc2hlbGwgdmFyaWFibGVzIGluIHBhdGhuYW1lcy4KK0BlbmQgZGVmdHlwZXZhcgorCitAZGVmdHlwZXZhciB7cmxfY29tcGRpc3BfZnVuY190ICp9IHJsX2NvbXBsZXRpb25fZGlzcGxheV9tYXRjaGVzX2hvb2sKK0lmIG5vbi16ZXJvLCB0aGVuIHRoaXMgaXMgdGhlIGFkZHJlc3Mgb2YgYSBmdW5jdGlvbiB0byBjYWxsIHdoZW4KK2NvbXBsZXRpbmcgYSB3b3JkIHdvdWxkIG5vcm1hbGx5IGRpc3BsYXkgdGhlIGxpc3Qgb2YgcG9zc2libGUgbWF0Y2hlcy4KK1RoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGluIGxpZXUgb2YgUmVhZGxpbmUgZGlzcGxheWluZyB0aGUgbGlzdC4KK0l0IHRha2VzIHRocmVlIGFyZ3VtZW50czoKKyhAY29kZXtjaGFyICoqfUB2YXJ7bWF0Y2hlc30sIEBjb2Rle2ludH0gQHZhcntudW1fbWF0Y2hlc30sIEBjb2Rle2ludH0gQHZhcnttYXhfbGVuZ3RofSkKK3doZXJlIEB2YXJ7bWF0Y2hlc30gaXMgdGhlIGFycmF5IG9mIG1hdGNoaW5nIHN0cmluZ3MsCitAdmFye251bV9tYXRjaGVzfSBpcyB0aGUgbnVtYmVyIG9mIHN0cmluZ3MgaW4gdGhhdCBhcnJheSwgYW5kCitAdmFye21heF9sZW5ndGh9IGlzIHRoZSBsZW5ndGggb2YgdGhlIGxvbmdlc3Qgc3RyaW5nIGluIHRoYXQgYXJyYXkuCitSZWFkbGluZSBwcm92aWRlcyBhIGNvbnZlbmllbmNlIGZ1bmN0aW9uLCBAY29kZXtybF9kaXNwbGF5X21hdGNoX2xpc3R9LAordGhhdCB0YWtlcyBjYXJlIG9mIGRvaW5nIHRoZSBkaXNwbGF5IHRvIFJlYWRsaW5lJ3Mgb3V0cHV0IHN0cmVhbS4gIFRoYXQKK2Z1bmN0aW9uIG1heSBiZSBjYWxsZWQgZnJvbSB0aGlzIGhvb2suCitAZW5kIGRlZnR5cGV2YXIKKworQGRlZnR5cGV2YXIge2NvbnN0IGNoYXIgKn0gcmxfYmFzaWNfd29yZF9icmVha19jaGFyYWN0ZXJzCitUaGUgYmFzaWMgbGlzdCBvZiBjaGFyYWN0ZXJzIHRoYXQgc2lnbmFsIGEgYnJlYWsgYmV0d2VlbiB3b3JkcyBmb3IgdGhlCitjb21wbGV0ZXIgcm91dGluZS4gIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoaXMgdmFyaWFibGUgaXMgdGhlIGNoYXJhY3RlcnMKK3doaWNoIGJyZWFrIHdvcmRzIGZvciBjb21wbGV0aW9uIGluIEJhc2g6CitAY29kZXsiIFx0XG5cIlxcJ2BAQCQ+PD07fCZAeygifS4KK0BlbmQgZGVmdHlwZXZhcgorCitAZGVmdHlwZXZhciB7Y29uc3QgY2hhciAqfSBybF9iYXNpY19xdW90ZV9jaGFyYWN0ZXJzCitBIGxpc3Qgb2YgcXVvdGUgY2hhcmFjdGVycyB3aGljaCBjYW4gY2F1c2UgYSB3b3JkIGJyZWFrLgorQGVuZCBkZWZ0eXBldmFyCisKK0BkZWZ0eXBldmFyIHtjb25zdCBjaGFyICp9IHJsX2NvbXBsZXRlcl93b3JkX2JyZWFrX2NoYXJhY3RlcnMKK1RoZSBsaXN0IG9mIGNoYXJhY3RlcnMgdGhhdCBzaWduYWwgYSBicmVhayBiZXR3ZWVuIHdvcmRzIGZvcgorQGNvZGV7cmxfY29tcGxldGVfaW50ZXJuYWwoKX0uICBUaGUgZGVmYXVsdCBsaXN0IGlzIHRoZSB2YWx1ZSBvZgorQGNvZGV7cmxfYmFzaWNfd29yZF9icmVha19jaGFyYWN0ZXJzfS4KK0BlbmQgZGVmdHlwZXZhcgorCitAZGVmdHlwZXZhciB7cmxfY3B2ZnVuY190ICp9IHJsX2NvbXBsZXRpb25fd29yZF9icmVha19ob29rCitJZiBub24temVybywgdGhpcyBpcyB0aGUgYWRkcmVzcyBvZiBhIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiBSZWFkbGluZSBpcworZGVjaWRpbmcgd2hlcmUgdG8gc2VwYXJhdGUgd29yZHMgZm9yIHdvcmQgY29tcGxldGlvbi4gIEl0IHNob3VsZCByZXR1cm4KK2EgY2hhcmFjdGVyIHN0cmluZyBsaWtlIEBjb2Rle3JsX2NvbXBsZXRlcl93b3JkX2JyZWFrX2NoYXJhY3RlcnN9IHRvIGJlCit1c2VkIHRvIHBlcmZvcm0gdGhlIGN1cnJlbnQgY29tcGxldGlvbi4gIFRoZSBmdW5jdGlvbiBtYXkgY2hvb3NlIHRvIHNldAorQGNvZGV7cmxfY29tcGxldGVyX3dvcmRfYnJlYWtfY2hhcmFjdGVyc30gaXRzZWxmLiAgSWYgdGhlIGZ1bmN0aW9uCityZXR1cm5zIEBjb2Rle05VTEx9LCBAY29kZXtybF9jb21wbGV0ZXJfd29yZF9icmVha19jaGFyYWN0ZXJzfSBpcyB1c2VkLgorQGVuZCBkZWZ0eXBldmFyCisKK0BkZWZ0eXBldmFyIHtjb25zdCBjaGFyICp9IHJsX2NvbXBsZXRlcl9xdW90ZV9jaGFyYWN0ZXJzCitBIGxpc3Qgb2YgY2hhcmFjdGVycyB3aGljaCBjYW4gYmUgdXNlZCB0byBxdW90ZSBhIHN1YnN0cmluZyBvZiB0aGUgbGluZS4KK0NvbXBsZXRpb24gb2NjdXJzIG9uIHRoZSBlbnRpcmUgc3Vic3RyaW5nLCBhbmQgd2l0aGluIHRoZSBzdWJzdHJpbmcKK0Bjb2Rle3JsX2NvbXBsZXRlcl93b3JkX2JyZWFrX2NoYXJhY3RlcnN9IGFyZSB0cmVhdGVkIGFzIGFueSBvdGhlciBjaGFyYWN0ZXIsCit1bmxlc3MgdGhleSBhbHNvIGFwcGVhciB3aXRoaW4gdGhpcyBsaXN0LgorQGVuZCBkZWZ0eXBldmFyCisKK0BkZWZ0eXBldmFyIHtjb25zdCBjaGFyICp9IHJsX2ZpbGVuYW1lX3F1b3RlX2NoYXJhY3RlcnMKK0EgbGlzdCBvZiBjaGFyYWN0ZXJzIHRoYXQgY2F1c2UgYSBmaWxlbmFtZSB0byBiZSBxdW90ZWQgYnkgdGhlIGNvbXBsZXRlcgord2hlbiB0aGV5IGFwcGVhciBpbiBhIGNvbXBsZXRlZCBmaWxlbmFtZS4gIFRoZSBkZWZhdWx0IGlzIHRoZSBudWxsIHN0cmluZy4KK0BlbmQgZGVmdHlwZXZhcgorCitAZGVmdHlwZXZhciB7Y29uc3QgY2hhciAqfSBybF9zcGVjaWFsX3ByZWZpeGVzCitUaGUgbGlzdCBvZiBjaGFyYWN0ZXJzIHRoYXQgYXJlIHdvcmQgYnJlYWsgY2hhcmFjdGVycywgYnV0IHNob3VsZCBiZQorbGVmdCBpbiBAdmFye3RleHR9IHdoZW4gaXQgaXMgcGFzc2VkIHRvIHRoZSBjb21wbGV0aW9uIGZ1bmN0aW9uLgorUHJvZ3JhbXMgY2FuIHVzZSB0aGlzIHRvIGhlbHAgZGV0ZXJtaW5lIHdoYXQga2luZCBvZiBjb21wbGV0aW5nIHRvIGRvLgorRm9yIGluc3RhbmNlLCBCYXNoIHNldHMgdGhpcyB2YXJpYWJsZSB0byAiJEBAIiBzbyB0aGF0IGl0IGNhbiBjb21wbGV0ZQorc2hlbGwgdmFyaWFibGVzIGFuZCBob3N0bmFtZXMuCitAZW5kIGRlZnR5cGV2YXIKKworQGRlZnR5cGV2YXIgaW50IHJsX2NvbXBsZXRpb25fcXVlcnlfaXRlbXMKK1VwIHRvIHRoaXMgbWFueSBpdGVtcyB3aWxsIGJlIGRpc3BsYXllZCBpbiByZXNwb25zZSB0byBhCitwb3NzaWJsZS1jb21wbGV0aW9ucyBjYWxsLiAgQWZ0ZXIgdGhhdCwgcmVhZGxpbmUgYXNrcyB0aGUgdXNlciBpZiBzaGUgaXMgc3VyZQorc2hlIHdhbnRzIHRvIHNlZSB0aGVtIGFsbC4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDEwMC4gIEEgbmVnYXRpdmUgdmFsdWUgCitpbmRpY2F0ZXMgdGhhdCBSZWFkbGluZSBzaG91bGQgbmV2ZXIgYXNrIHRoZSB1c2VyLgorQGVuZCBkZWZ0eXBldmFyCisKK0BkZWZ0eXBldmFyIHtpbnR9IHJsX2NvbXBsZXRpb25fYXBwZW5kX2NoYXJhY3RlcgorV2hlbiBhIHNpbmdsZSBjb21wbGV0aW9uIGFsdGVybmF0aXZlIG1hdGNoZXMgYXQgdGhlIGVuZCBvZiB0aGUgY29tbWFuZAorbGluZSwgdGhpcyBjaGFyYWN0ZXIgaXMgYXBwZW5kZWQgdG8gdGhlIGluc2VydGVkIGNvbXBsZXRpb24gdGV4dC4gIFRoZQorZGVmYXVsdCBpcyBhIHNwYWNlIGNoYXJhY3RlciAoQHNhbXB7IH0pLiAgU2V0dGluZyB0aGlzIHRvIHRoZSBudWxsCitjaGFyYWN0ZXIgKEBzYW1we1wwfSkgcHJldmVudHMgYW55dGhpbmcgYmVpbmcgYXBwZW5kZWQgYXV0b21hdGljYWxseS4KK1RoaXMgY2FuIGJlIGNoYW5nZWQgaW4gYXBwbGljYXRpb24tc3BlY2lmaWMgY29tcGxldGlvbiBmdW5jdGlvbnMgdG8KK3Byb3ZpZGUgdGhlIGBgbW9zdCBzZW5zaWJsZSB3b3JkIHNlcGFyYXRvciBjaGFyYWN0ZXInJyBhY2NvcmRpbmcgdG8KK2FuIGFwcGxpY2F0aW9uLXNwZWNpZmljIGNvbW1hbmQgbGluZSBzeW50YXggc3BlY2lmaWNhdGlvbi4KK0BlbmQgZGVmdHlwZXZhcgorCitAZGVmdHlwZXZhciBpbnQgcmxfY29tcGxldGlvbl9zdXBwcmVzc19hcHBlbmQKK0lmIG5vbi16ZXJvLCBAdmFye3JsX2NvbXBsZXRpb25fYXBwZW5kX2NoYXJhY3Rlcn0gaXMgbm90IGFwcGVuZGVkIHRvCittYXRjaGVzIGF0IHRoZSBlbmQgb2YgdGhlIGNvbW1hbmQgbGluZSwgYXMgZGVzY3JpYmVkIGFib3ZlLgorSXQgaXMgc2V0IHRvIDAgYmVmb3JlIGFueSBhcHBsaWNhdGlvbi1zcGVjaWZpYyBjb21wbGV0aW9uIGZ1bmN0aW9uCitpcyBjYWxsZWQsIGFuZCBtYXkgb25seSBiZSBjaGFuZ2VkIHdpdGhpbiBzdWNoIGEgZnVuY3Rpb24uCitAZW5kIGRlZnR5cGV2YXIKKworQGRlZnR5cGV2YXIgaW50IHJsX2NvbXBsZXRpb25fcXVvdGVfY2hhcmFjdGVyCitXaGVuIFJlYWRsaW5lIGlzIGNvbXBsZXRpbmcgcXVvdGVkIHRleHQsIGFzIGRlbGltaXRlZCBieSBvbmUgb2YgdGhlCitjaGFyYWN0ZXJzIGluIEB2YXJ7cmxfY29tcGxldGVyX3F1b3RlX2NoYXJhY3RlcnN9LCBpdCBzZXRzIHRoaXMgdmFyaWFibGUKK3RvIHRoZSBxdW90aW5nIGNoYXJhY3RlciBmb3VuZC4KK1RoaXMgaXMgc2V0IGJlZm9yZSBhbnkgYXBwbGljYXRpb24tc3BlY2lmaWMgY29tcGxldGlvbiBmdW5jdGlvbiBpcyBjYWxsZWQuCitAZW5kIGRlZnR5cGV2YXIKKworQGRlZnR5cGV2YXIgaW50IHJsX2NvbXBsZXRpb25fc3VwcHJlc3NfcXVvdGUKK0lmIG5vbi16ZXJvLCBSZWFkbGluZSBkb2VzIG5vdCBhcHBlbmQgYSBtYXRjaGluZyBxdW90ZSBjaGFyYWN0ZXIgd2hlbgorcGVyZm9ybWluZyBjb21wbGV0aW9uIG9uIGEgcXVvdGVkIHN0cmluZy4KK0l0IGlzIHNldCB0byAwIGJlZm9yZSBhbnkgYXBwbGljYXRpb24tc3BlY2lmaWMgY29tcGxldGlvbiBmdW5jdGlvbgoraXMgY2FsbGVkLCBhbmQgbWF5IG9ubHkgYmUgY2hhbmdlZCB3aXRoaW4gc3VjaCBhIGZ1bmN0aW9uLgorQGVuZCBkZWZ0eXBldmFyCisKK0BkZWZ0eXBldmFyIGludCBybF9jb21wbGV0aW9uX2ZvdW5kX3F1b3RlCitXaGVuIFJlYWRsaW5lIGlzIGNvbXBsZXRpbmcgcXVvdGVkIHRleHQsIGl0IHNldHMgdGhpcyB2YXJpYWJsZQordG8gYSBub24temVybyB2YWx1ZSBpZiB0aGUgd29yZCBiZWluZyBjb21wbGV0ZWQgY29udGFpbnMgb3IgaXMgZGVsaW1pdGVkCitieSBhbnkgcXVvdGluZyBjaGFyYWN0ZXJzLCBpbmNsdWRpbmcgYmFja3NsYXNoZXMuCitUaGlzIGlzIHNldCBiZWZvcmUgYW55IGFwcGxpY2F0aW9uLXNwZWNpZmljIGNvbXBsZXRpb24gZnVuY3Rpb24gaXMgY2FsbGVkLgorQGVuZCBkZWZ0eXBldmFyCisKK0BkZWZ0eXBldmFyIGludCBybF9jb21wbGV0aW9uX21hcmtfc3ltbGlua19kaXJzCitJZiBub24temVybywgYSBzbGFzaCB3aWxsIGJlIGFwcGVuZGVkIHRvIGNvbXBsZXRlZCBmaWxlbmFtZXMgdGhhdCBhcmUKK3N5bWJvbGljIGxpbmtzIHRvIGRpcmVjdG9yeSBuYW1lcywgc3ViamVjdCB0byB0aGUgdmFsdWUgb2YgdGhlCit1c2VyLXNldHRhYmxlIEB2YXJ7bWFyay1kaXJlY3Rvcmllc30gdmFyaWFibGUuCitUaGlzIHZhcmlhYmxlIGV4aXN0cyBzbyB0aGF0IGFwcGxpY2F0aW9uLXNwZWNpZmljIGNvbXBsZXRpb24gZnVuY3Rpb25zCitjYW4gb3ZlcnJpZGUgdGhlIHVzZXIncyBnbG9iYWwgcHJlZmVyZW5jZSAoc2V0IHZpYSB0aGUKK0B2YXJ7bWFyay1zeW1saW5rZWQtZGlyZWN0b3JpZXN9IFJlYWRsaW5lIHZhcmlhYmxlKSBpZiBhcHByb3ByaWF0ZS4KK1RoaXMgdmFyaWFibGUgaXMgc2V0IHRvIHRoZSB1c2VyJ3MgcHJlZmVyZW5jZSBiZWZvcmUgYW55CithcHBsaWNhdGlvbi1zcGVjaWZpYyBjb21wbGV0aW9uIGZ1bmN0aW9uIGlzIGNhbGxlZCwgc28gdW5sZXNzIHRoYXQKK2Z1bmN0aW9uIG1vZGlmaWVzIHRoZSB2YWx1ZSwgdGhlIHVzZXIncyBwcmVmZXJlbmNlcyBhcmUgaG9ub3JlZC4KK0BlbmQgZGVmdHlwZXZhcgorCitAZGVmdHlwZXZhciBpbnQgcmxfaWdub3JlX2NvbXBsZXRpb25fZHVwbGljYXRlcworSWYgbm9uLXplcm8sIHRoZW4gZHVwbGljYXRlcyBpbiB0aGUgbWF0Y2hlcyBhcmUgcmVtb3ZlZC4KK1RoZSBkZWZhdWx0IGlzIDEuCitAZW5kIGRlZnR5cGV2YXIKKworQGRlZnR5cGV2YXIgaW50IHJsX2ZpbGVuYW1lX2NvbXBsZXRpb25fZGVzaXJlZAorTm9uLXplcm8gbWVhbnMgdGhhdCB0aGUgcmVzdWx0cyBvZiB0aGUgbWF0Y2hlcyBhcmUgdG8gYmUgdHJlYXRlZCBhcworZmlsZW5hbWVzLiAgVGhpcyBpcyBAZW1waHthbHdheXN9IHplcm8gd2hlbiBjb21wbGV0aW9uIGlzIGF0dGVtcHRlZCwKK2FuZCBjYW4gb25seSBiZSBjaGFuZ2VkCit3aXRoaW4gYW4gYXBwbGljYXRpb24tc3BlY2lmaWMgY29tcGxldGlvbiBmdW5jdGlvbi4gIElmIGl0IGlzIHNldCB0byBhCitub24temVybyB2YWx1ZSBieSBzdWNoIGEgZnVuY3Rpb24sIGRpcmVjdG9yeSBuYW1lcyBoYXZlIGEgc2xhc2ggYXBwZW5kZWQKK2FuZCBSZWFkbGluZSBhdHRlbXB0cyB0byBxdW90ZSBjb21wbGV0ZWQgZmlsZW5hbWVzIGlmIHRoZXkgY29udGFpbiBhbnkKK2NoYXJhY3RlcnMgaW4gQGNvZGV7cmxfZmlsZW5hbWVfcXVvdGVfY2hhcmFjdGVyc30gYW5kCitAY29kZXtybF9maWxlbmFtZV9xdW90aW5nX2Rlc2lyZWR9IGlzIHNldCB0byBhIG5vbi16ZXJvIHZhbHVlLgorQGVuZCBkZWZ0eXBldmFyCisKK0BkZWZ0eXBldmFyIGludCBybF9maWxlbmFtZV9xdW90aW5nX2Rlc2lyZWQKK05vbi16ZXJvIG1lYW5zIHRoYXQgdGhlIHJlc3VsdHMgb2YgdGhlIG1hdGNoZXMgYXJlIHRvIGJlIHF1b3RlZCB1c2luZworZG91YmxlIHF1b3RlcyAob3IgYW4gYXBwbGljYXRpb24tc3BlY2lmaWMgcXVvdGluZyBtZWNoYW5pc20pIGlmIHRoZQorY29tcGxldGVkIGZpbGVuYW1lIGNvbnRhaW5zIGFueSBjaGFyYWN0ZXJzIGluCitAY29kZXtybF9maWxlbmFtZV9xdW90ZV9jaGFyc30uICBUaGlzIGlzIEBlbXBoe2Fsd2F5c30gbm9uLXplcm8KK3doZW4gY29tcGxldGlvbiBpcyBhdHRlbXB0ZWQsIGFuZCBjYW4gb25seSBiZSBjaGFuZ2VkIHdpdGhpbiBhbgorYXBwbGljYXRpb24tc3BlY2lmaWMgY29tcGxldGlvbiBmdW5jdGlvbi4KK1RoZSBxdW90aW5nIGlzIGVmZmVjdGVkIHZpYSBhIGNhbGwgdG8gdGhlIGZ1bmN0aW9uIHBvaW50ZWQgdG8KK2J5IEBjb2Rle3JsX2ZpbGVuYW1lX3F1b3RpbmdfZnVuY3Rpb259LgorQGVuZCBkZWZ0eXBldmFyCisKK0BkZWZ0eXBldmFyIGludCBybF9hdHRlbXB0ZWRfY29tcGxldGlvbl9vdmVyCitJZiBhbiBhcHBsaWNhdGlvbi1zcGVjaWZpYyBjb21wbGV0aW9uIGZ1bmN0aW9uIGFzc2lnbmVkIHRvCitAY29kZXtybF9hdHRlbXB0ZWRfY29tcGxldGlvbl9mdW5jdGlvbn0gc2V0cyB0aGlzIHZhcmlhYmxlIHRvIGEgbm9uLXplcm8KK3ZhbHVlLCBSZWFkbGluZSB3aWxsIG5vdCBwZXJmb3JtIGl0cyBkZWZhdWx0IGZpbGVuYW1lIGNvbXBsZXRpb24gZXZlbgoraWYgdGhlIGFwcGxpY2F0aW9uJ3MgY29tcGxldGlvbiBmdW5jdGlvbiByZXR1cm5zIG5vIG1hdGNoZXMuCitJdCBzaG91bGQgYmUgc2V0IG9ubHkgYnkgYW4gYXBwbGljYXRpb24ncyBjb21wbGV0aW9uIGZ1bmN0aW9uLgorQGVuZCBkZWZ0eXBldmFyCisKK0BkZWZ0eXBldmFyIGludCBybF9jb21wbGV0aW9uX3R5cGUKK1NldCB0byBhIGNoYXJhY3RlciBkZXNjcmliaW5nIHRoZSB0eXBlIG9mIGNvbXBsZXRpb24gUmVhZGxpbmUgaXMgY3VycmVudGx5CithdHRlbXB0aW5nOyBzZWUgdGhlIGRlc2NyaXB0aW9uIG9mIEBjb2Rle3JsX2NvbXBsZXRlX2ludGVybmFsKCl9CisoQHB4cmVme0NvbXBsZXRpb24gRnVuY3Rpb25zfSkgZm9yIHRoZSBsaXN0IG9mIGNoYXJhY3RlcnMuCitUaGlzIGlzIHNldCB0byB0aGUgYXBwcm9wcmlhdGUgdmFsdWUgYmVmb3JlIGFueSBhcHBsaWNhdGlvbi1zcGVjaWZpYworY29tcGxldGlvbiBmdW5jdGlvbiBpcyBjYWxsZWQsIGFsbG93aW5nIHN1Y2ggZnVuY3Rpb25zIHRvIHByZXNlbnQKK3RoZSBzYW1lIGludGVyZmFjZSBhcyBAY29kZXtybF9jb21wbGV0ZSgpfS4KK0BlbmQgZGVmdHlwZXZhcgorCitAZGVmdHlwZXZhciBpbnQgcmxfaW5oaWJpdF9jb21wbGV0aW9uCitJZiB0aGlzIHZhcmlhYmxlIGlzIG5vbi16ZXJvLCBjb21wbGV0aW9uIGlzIGluaGliaXRlZC4gIFRoZSBjb21wbGV0aW9uCitjaGFyYWN0ZXIgd2lsbCBiZSBpbnNlcnRlZCBhcyBhbnkgb3RoZXIgYm91bmQgdG8gQGNvZGV7c2VsZi1pbnNlcnR9LgorQGVuZCBkZWZ0eXBldmFyCisKK0Bub2RlIEEgU2hvcnQgQ29tcGxldGlvbiBFeGFtcGxlCitAc3Vic2VjdGlvbiBBIFNob3J0IENvbXBsZXRpb24gRXhhbXBsZQorCitIZXJlIGlzIGEgc21hbGwgYXBwbGljYXRpb24gZGVtb25zdHJhdGluZyB0aGUgdXNlIG9mIHRoZSBHTlUgUmVhZGxpbmUKK2xpYnJhcnkuICBJdCBpcyBjYWxsZWQgQGNvZGV7ZmlsZW1hbn0sIGFuZCB0aGUgc291cmNlIGNvZGUgcmVzaWRlcyBpbgorQGZpbGV7ZXhhbXBsZXMvZmlsZW1hbi5jfS4gIFRoaXMgc2FtcGxlIGFwcGxpY2F0aW9uIHByb3ZpZGVzCitjb21wbGV0aW9uIG9mIGNvbW1hbmQgbmFtZXMsIGxpbmUgZWRpdGluZyBmZWF0dXJlcywgYW5kIGFjY2VzcyB0byB0aGUKK2hpc3RvcnkgbGlzdC4KKworQHBhZ2UKK0BzbWFsbGV4YW1wbGUKKy8qIGZpbGVtYW4uYyAtLSBBIHRpbnkgYXBwbGljYXRpb24gd2hpY2ggZGVtb25zdHJhdGVzIGhvdyB0byB1c2UgdGhlCisgICBHTlUgUmVhZGxpbmUgbGlicmFyeS4gIFRoaXMgYXBwbGljYXRpb24gaW50ZXJhY3RpdmVseSBhbGxvd3MgdXNlcnMKKyAgIHRvIG1hbmlwdWxhdGUgZmlsZXMgYW5kIHRoZWlyIG1vZGVzLiAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvZmlsZS5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3lzL2Vycm5vLmg+CisKKyNpbmNsdWRlIDxyZWFkbGluZS9yZWFkbGluZS5oPgorI2luY2x1ZGUgPHJlYWRsaW5lL2hpc3RvcnkuaD4KKworZXh0ZXJuIGNoYXIgKnhtYWxsb2MgKCk7CisKKy8qIFRoZSBuYW1lcyBvZiBmdW5jdGlvbnMgdGhhdCBhY3R1YWxseSBkbyB0aGUgbWFuaXB1bGF0aW9uLiAqLworaW50IGNvbV9saXN0IF9fUCgoY2hhciAqKSk7CitpbnQgY29tX3ZpZXcgX19QKChjaGFyICopKTsKK2ludCBjb21fcmVuYW1lIF9fUCgoY2hhciAqKSk7CitpbnQgY29tX3N0YXQgX19QKChjaGFyICopKTsKK2ludCBjb21fcHdkIF9fUCgoY2hhciAqKSk7CitpbnQgY29tX2RlbGV0ZSBfX1AoKGNoYXIgKikpOworaW50IGNvbV9oZWxwIF9fUCgoY2hhciAqKSk7CitpbnQgY29tX2NkIF9fUCgoY2hhciAqKSk7CitpbnQgY29tX3F1aXQgX19QKChjaGFyICopKTsKKworLyogQSBzdHJ1Y3R1cmUgd2hpY2ggY29udGFpbnMgaW5mb3JtYXRpb24gb24gdGhlIGNvbW1hbmRzIHRoaXMgcHJvZ3JhbQorICAgY2FuIHVuZGVyc3RhbmQuICovCisKK3R5cGVkZWYgc3RydWN0IEB7CisgIGNoYXIgKm5hbWU7CQkJLyogVXNlciBwcmludGFibGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24uICovCisgIHJsX2ljcGZ1bmNfdCAqZnVuYzsJCS8qIEZ1bmN0aW9uIHRvIGNhbGwgdG8gZG8gdGhlIGpvYi4gKi8KKyAgY2hhciAqZG9jOwkJCS8qIERvY3VtZW50YXRpb24gZm9yIHRoaXMgZnVuY3Rpb24uICAqLworQH0gQ09NTUFORDsKKworQ09NTUFORCBjb21tYW5kc1tdID0gQHsKKyAgQHsgImNkIiwgY29tX2NkLCAiQ2hhbmdlIHRvIGRpcmVjdG9yeSBESVIiIEB9LAorICBAeyAiZGVsZXRlIiwgY29tX2RlbGV0ZSwgIkRlbGV0ZSBGSUxFIiBAfSwKKyAgQHsgImhlbHAiLCBjb21faGVscCwgIkRpc3BsYXkgdGhpcyB0ZXh0IiBAfSwKKyAgQHsgIj8iLCBjb21faGVscCwgIlN5bm9ueW0gZm9yIGBoZWxwJyIgQH0sCisgIEB7ICJsaXN0IiwgY29tX2xpc3QsICJMaXN0IGZpbGVzIGluIERJUiIgQH0sCisgIEB7ICJscyIsIGNvbV9saXN0LCAiU3lub255bSBmb3IgYGxpc3QnIiBAfSwKKyAgQHsgInB3ZCIsIGNvbV9wd2QsICJQcmludCB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSIgQH0sCisgIEB7ICJxdWl0IiwgY29tX3F1aXQsICJRdWl0IHVzaW5nIEZpbGVtYW4iIEB9LAorICBAeyAicmVuYW1lIiwgY29tX3JlbmFtZSwgIlJlbmFtZSBGSUxFIHRvIE5FV05BTUUiIEB9LAorICBAeyAic3RhdCIsIGNvbV9zdGF0LCAiUHJpbnQgb3V0IHN0YXRpc3RpY3Mgb24gRklMRSIgQH0sCisgIEB7ICJ2aWV3IiwgY29tX3ZpZXcsICJWaWV3IHRoZSBjb250ZW50cyBvZiBGSUxFIiBAfSwKKyAgQHsgKGNoYXIgKilOVUxMLCAocmxfaWNwZnVuY190ICopTlVMTCwgKGNoYXIgKilOVUxMIEB9CitAfTsKKworLyogRm9yd2FyZCBkZWNsYXJhdGlvbnMuICovCitjaGFyICpzdHJpcHdoaXRlICgpOworQ09NTUFORCAqZmluZF9jb21tYW5kICgpOworCisvKiBUaGUgbmFtZSBvZiB0aGlzIHByb2dyYW0sIGFzIHRha2VuIGZyb20gYXJndlswXS4gKi8KK2NoYXIgKnByb2duYW1lOworCisvKiBXaGVuIG5vbi16ZXJvLCB0aGlzIG1lYW5zIHRoZSB1c2VyIGlzIGRvbmUgdXNpbmcgdGhpcyBwcm9ncmFtLiAqLworaW50IGRvbmU7CisKK2NoYXIgKgorZHVwc3RyIChzKQorICAgICBpbnQgczsKK0B7CisgIGNoYXIgKnI7CisKKyAgciA9IHhtYWxsb2MgKHN0cmxlbiAocykgKyAxKTsKKyAgc3RyY3B5IChyLCBzKTsKKyAgcmV0dXJuIChyKTsKK0B9CisKK21haW4gKGFyZ2MsIGFyZ3YpCisgICAgIGludCBhcmdjOworICAgICBjaGFyICoqYXJndjsKK0B7CisgIGNoYXIgKmxpbmUsICpzOworCisgIHByb2duYW1lID0gYXJndlswXTsKKworICBpbml0aWFsaXplX3JlYWRsaW5lICgpOwkvKiBCaW5kIG91ciBjb21wbGV0ZXIuICovCisKKyAgLyogTG9vcCByZWFkaW5nIGFuZCBleGVjdXRpbmcgbGluZXMgdW50aWwgdGhlIHVzZXIgcXVpdHMuICovCisgIGZvciAoIDsgZG9uZSA9PSAwOyApCisgICAgQHsKKyAgICAgIGxpbmUgPSByZWFkbGluZSAoIkZpbGVNYW46ICIpOworCisgICAgICBpZiAoIWxpbmUpCisgICAgICAgIGJyZWFrOworCisgICAgICAvKiBSZW1vdmUgbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZSBmcm9tIHRoZSBsaW5lLgorICAgICAgICAgVGhlbiwgaWYgdGhlcmUgaXMgYW55dGhpbmcgbGVmdCwgYWRkIGl0IHRvIHRoZSBoaXN0b3J5IGxpc3QKKyAgICAgICAgIGFuZCBleGVjdXRlIGl0LiAqLworICAgICAgcyA9IHN0cmlwd2hpdGUgKGxpbmUpOworCisgICAgICBpZiAoKnMpCisgICAgICAgIEB7CisgICAgICAgICAgYWRkX2hpc3RvcnkgKHMpOworICAgICAgICAgIGV4ZWN1dGVfbGluZSAocyk7CisgICAgICAgIEB9CisKKyAgICAgIGZyZWUgKGxpbmUpOworICAgIEB9CisgIGV4aXQgKDApOworQH0KKworLyogRXhlY3V0ZSBhIGNvbW1hbmQgbGluZS4gKi8KK2ludAorZXhlY3V0ZV9saW5lIChsaW5lKQorICAgICBjaGFyICpsaW5lOworQHsKKyAgcmVnaXN0ZXIgaW50IGk7CisgIENPTU1BTkQgKmNvbW1hbmQ7CisgIGNoYXIgKndvcmQ7CisKKyAgLyogSXNvbGF0ZSB0aGUgY29tbWFuZCB3b3JkLiAqLworICBpID0gMDsKKyAgd2hpbGUgKGxpbmVbaV0gJiYgd2hpdGVzcGFjZSAobGluZVtpXSkpCisgICAgaSsrOworICB3b3JkID0gbGluZSArIGk7CisKKyAgd2hpbGUgKGxpbmVbaV0gJiYgIXdoaXRlc3BhY2UgKGxpbmVbaV0pKQorICAgIGkrKzsKKworICBpZiAobGluZVtpXSkKKyAgICBsaW5lW2krK10gPSAnXDAnOworCisgIGNvbW1hbmQgPSBmaW5kX2NvbW1hbmQgKHdvcmQpOworCisgIGlmICghY29tbWFuZCkKKyAgICBAeworICAgICAgZnByaW50ZiAoc3RkZXJyLCAiJXM6IE5vIHN1Y2ggY29tbWFuZCBmb3IgRmlsZU1hbi5cbiIsIHdvcmQpOworICAgICAgcmV0dXJuICgtMSk7CisgICAgQH0KKworICAvKiBHZXQgYXJndW1lbnQgdG8gY29tbWFuZCwgaWYgYW55LiAqLworICB3aGlsZSAod2hpdGVzcGFjZSAobGluZVtpXSkpCisgICAgaSsrOworCisgIHdvcmQgPSBsaW5lICsgaTsKKworICAvKiBDYWxsIHRoZSBmdW5jdGlvbi4gKi8KKyAgcmV0dXJuICgoKihjb21tYW5kLT5mdW5jKSkgKHdvcmQpKTsKK0B9CisKKy8qIExvb2sgdXAgTkFNRSBhcyB0aGUgbmFtZSBvZiBhIGNvbW1hbmQsIGFuZCByZXR1cm4gYSBwb2ludGVyIHRvIHRoYXQKKyAgIGNvbW1hbmQuICBSZXR1cm4gYSBOVUxMIHBvaW50ZXIgaWYgTkFNRSBpc24ndCBhIGNvbW1hbmQgbmFtZS4gKi8KK0NPTU1BTkQgKgorZmluZF9jb21tYW5kIChuYW1lKQorICAgICBjaGFyICpuYW1lOworQHsKKyAgcmVnaXN0ZXIgaW50IGk7CisKKyAgZm9yIChpID0gMDsgY29tbWFuZHNbaV0ubmFtZTsgaSsrKQorICAgIGlmIChzdHJjbXAgKG5hbWUsIGNvbW1hbmRzW2ldLm5hbWUpID09IDApCisgICAgICByZXR1cm4gKCZjb21tYW5kc1tpXSk7CisKKyAgcmV0dXJuICgoQ09NTUFORCAqKU5VTEwpOworQH0KKworLyogU3RyaXAgd2hpdGVzcGFjZSBmcm9tIHRoZSBzdGFydCBhbmQgZW5kIG9mIFNUUklORy4gIFJldHVybiBhIHBvaW50ZXIKKyAgIGludG8gU1RSSU5HLiAqLworY2hhciAqCitzdHJpcHdoaXRlIChzdHJpbmcpCisgICAgIGNoYXIgKnN0cmluZzsKK0B7CisgIHJlZ2lzdGVyIGNoYXIgKnMsICp0OworCisgIGZvciAocyA9IHN0cmluZzsgd2hpdGVzcGFjZSAoKnMpOyBzKyspCisgICAgOworICAgIAorICBpZiAoKnMgPT0gMCkKKyAgICByZXR1cm4gKHMpOworCisgIHQgPSBzICsgc3RybGVuIChzKSAtIDE7CisgIHdoaWxlICh0ID4gcyAmJiB3aGl0ZXNwYWNlICgqdCkpCisgICAgdC0tOworICAqKyt0ID0gJ1wwJzsKKworICByZXR1cm4gczsKK0B9CisKKy8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgSW50ZXJmYWNlIHRvIFJlYWRsaW5lIENvbXBsZXRpb24gICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KKworY2hhciAqY29tbWFuZF9nZW5lcmF0b3IgX19QKChjb25zdCBjaGFyICosIGludCkpOworY2hhciAqKmZpbGVtYW5fY29tcGxldGlvbiBfX1AoKGNvbnN0IGNoYXIgKiwgaW50LCBpbnQpKTsKKworLyogVGVsbCB0aGUgR05VIFJlYWRsaW5lIGxpYnJhcnkgaG93IHRvIGNvbXBsZXRlLiAgV2Ugd2FudCB0byB0cnkgdG8KKyAgIGNvbXBsZXRlIG9uIGNvbW1hbmQgbmFtZXMgaWYgdGhpcyBpcyB0aGUgZmlyc3Qgd29yZCBpbiB0aGUgbGluZSwgb3IKKyAgIG9uIGZpbGVuYW1lcyBpZiBub3QuICovCitpbml0aWFsaXplX3JlYWRsaW5lICgpCitAeworICAvKiBBbGxvdyBjb25kaXRpb25hbCBwYXJzaW5nIG9mIHRoZSB+Ly5pbnB1dHJjIGZpbGUuICovCisgIHJsX3JlYWRsaW5lX25hbWUgPSAiRmlsZU1hbiI7CisKKyAgLyogVGVsbCB0aGUgY29tcGxldGVyIHRoYXQgd2Ugd2FudCBhIGNyYWNrIGZpcnN0LiAqLworICBybF9hdHRlbXB0ZWRfY29tcGxldGlvbl9mdW5jdGlvbiA9IGZpbGVtYW5fY29tcGxldGlvbjsKK0B9CisKKy8qIEF0dGVtcHQgdG8gY29tcGxldGUgb24gdGhlIGNvbnRlbnRzIG9mIFRFWFQuICBTVEFSVCBhbmQgRU5ECisgICBib3VuZCB0aGUgcmVnaW9uIG9mIHJsX2xpbmVfYnVmZmVyIHRoYXQgY29udGFpbnMgdGhlIHdvcmQgdG8KKyAgIGNvbXBsZXRlLiAgVEVYVCBpcyB0aGUgd29yZCB0byBjb21wbGV0ZS4gIFdlIGNhbiB1c2UgdGhlIGVudGlyZQorICAgY29udGVudHMgb2YgcmxfbGluZV9idWZmZXIgaW4gY2FzZSB3ZSB3YW50IHRvIGRvIHNvbWUgc2ltcGxlCisgICBwYXJzaW5nLiAgUmV0dXJudGhlIGFycmF5IG9mIG1hdGNoZXMsIG9yIE5VTEwgaWYgdGhlcmUgYXJlbid0IGFueS4gKi8KK2NoYXIgKioKK2ZpbGVtYW5fY29tcGxldGlvbiAodGV4dCwgc3RhcnQsIGVuZCkKKyAgICAgY29uc3QgY2hhciAqdGV4dDsKKyAgICAgaW50IHN0YXJ0LCBlbmQ7CitAeworICBjaGFyICoqbWF0Y2hlczsKKworICBtYXRjaGVzID0gKGNoYXIgKiopTlVMTDsKKworICAvKiBJZiB0aGlzIHdvcmQgaXMgYXQgdGhlIHN0YXJ0IG9mIHRoZSBsaW5lLCB0aGVuIGl0IGlzIGEgY29tbWFuZAorICAgICB0byBjb21wbGV0ZS4gIE90aGVyd2lzZSBpdCBpcyB0aGUgbmFtZSBvZiBhIGZpbGUgaW4gdGhlIGN1cnJlbnQKKyAgICAgZGlyZWN0b3J5LiAqLworICBpZiAoc3RhcnQgPT0gMCkKKyAgICBtYXRjaGVzID0gcmxfY29tcGxldGlvbl9tYXRjaGVzICh0ZXh0LCBjb21tYW5kX2dlbmVyYXRvcik7CisKKyAgcmV0dXJuIChtYXRjaGVzKTsKK0B9CisKKy8qIEdlbmVyYXRvciBmdW5jdGlvbiBmb3IgY29tbWFuZCBjb21wbGV0aW9uLiAgU1RBVEUgbGV0cyB1cworICAga25vdyB3aGV0aGVyIHRvIHN0YXJ0IGZyb20gc2NyYXRjaDsgd2l0aG91dCBhbnkgc3RhdGUKKyAgIChpLmUuIFNUQVRFID09IDApLCB0aGVuIHdlIHN0YXJ0IGF0IHRoZSB0b3Agb2YgdGhlIGxpc3QuICovCitjaGFyICoKK2NvbW1hbmRfZ2VuZXJhdG9yICh0ZXh0LCBzdGF0ZSkKKyAgICAgY29uc3QgY2hhciAqdGV4dDsKKyAgICAgaW50IHN0YXRlOworQHsKKyAgc3RhdGljIGludCBsaXN0X2luZGV4LCBsZW47CisgIGNoYXIgKm5hbWU7CisKKyAgLyogSWYgdGhpcyBpcyBhIG5ldyB3b3JkIHRvIGNvbXBsZXRlLCBpbml0aWFsaXplIG5vdy4gIFRoaXMKKyAgICAgaW5jbHVkZXMgc2F2aW5nIHRoZSBsZW5ndGggb2YgVEVYVCBmb3IgZWZmaWNpZW5jeSwgYW5kCisgICAgIGluaXRpYWxpemluZyB0aGUgaW5kZXggdmFyaWFibGUgdG8gMC4gKi8KKyAgaWYgKCFzdGF0ZSkKKyAgICBAeworICAgICAgbGlzdF9pbmRleCA9IDA7CisgICAgICBsZW4gPSBzdHJsZW4gKHRleHQpOworICAgIEB9CisKKyAgLyogUmV0dXJuIHRoZSBuZXh0IG5hbWUgd2hpY2ggcGFydGlhbGx5IG1hdGNoZXMgZnJvbSB0aGUKKyAgICAgY29tbWFuZCBsaXN0LiAqLworICB3aGlsZSAobmFtZSA9IGNvbW1hbmRzW2xpc3RfaW5kZXhdLm5hbWUpCisgICAgQHsKKyAgICAgIGxpc3RfaW5kZXgrKzsKKworICAgICAgaWYgKHN0cm5jbXAgKG5hbWUsIHRleHQsIGxlbikgPT0gMCkKKyAgICAgICAgcmV0dXJuIChkdXBzdHIobmFtZSkpOworICAgIEB9CisKKyAgLyogSWYgbm8gbmFtZXMgbWF0Y2hlZCwgdGhlbiByZXR1cm4gTlVMTC4gKi8KKyAgcmV0dXJuICgoY2hhciAqKU5VTEwpOworQH0KKworLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgIEZpbGVNYW4gQ29tbWFuZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLworCisvKiBTdHJpbmcgdG8gcGFzcyB0byBzeXN0ZW0gKCkuICBUaGlzIGlzIGZvciB0aGUgTElTVCwgVklFVyBhbmQgUkVOQU1FCisgICBjb21tYW5kcy4gKi8KK3N0YXRpYyBjaGFyIHN5c2NvbVsxMDI0XTsKKworLyogTGlzdCB0aGUgZmlsZShzKSBuYW1lZCBpbiBhcmcuICovCitjb21fbGlzdCAoYXJnKQorICAgICBjaGFyICphcmc7CitAeworICBpZiAoIWFyZykKKyAgICBhcmcgPSAiIjsKKworICBzcHJpbnRmIChzeXNjb20sICJscyAtRkNsZyAlcyIsIGFyZyk7CisgIHJldHVybiAoc3lzdGVtIChzeXNjb20pKTsKK0B9CisKK2NvbV92aWV3IChhcmcpCisgICAgIGNoYXIgKmFyZzsKK0B7CisgIGlmICghdmFsaWRfYXJndW1lbnQgKCJ2aWV3IiwgYXJnKSkKKyAgICByZXR1cm4gMTsKKworICBzcHJpbnRmIChzeXNjb20sICJtb3JlICVzIiwgYXJnKTsKKyAgcmV0dXJuIChzeXN0ZW0gKHN5c2NvbSkpOworQH0KKworY29tX3JlbmFtZSAoYXJnKQorICAgICBjaGFyICphcmc7CitAeworICB0b29fZGFuZ2Vyb3VzICgicmVuYW1lIik7CisgIHJldHVybiAoMSk7CitAfQorCitjb21fc3RhdCAoYXJnKQorICAgICBjaGFyICphcmc7CitAeworICBzdHJ1Y3Qgc3RhdCBmaW5mbzsKKworICBpZiAoIXZhbGlkX2FyZ3VtZW50ICgic3RhdCIsIGFyZykpCisgICAgcmV0dXJuICgxKTsKKworICBpZiAoc3RhdCAoYXJnLCAmZmluZm8pID09IC0xKQorICAgIEB7CisgICAgICBwZXJyb3IgKGFyZyk7CisgICAgICByZXR1cm4gKDEpOworICAgIEB9CisKKyAgcHJpbnRmICgiU3RhdGlzdGljcyBmb3IgYCVzJzpcbiIsIGFyZyk7CisKKyAgcHJpbnRmICgiJXMgaGFzICVkIGxpbmslcywgYW5kIGlzICVkIGJ5dGUlcyBpbiBsZW5ndGguXG4iLCBhcmcsCisgICAgICAgICAgZmluZm8uc3RfbmxpbmssCisgICAgICAgICAgKGZpbmZvLnN0X25saW5rID09IDEpID8gIiIgOiAicyIsCisgICAgICAgICAgZmluZm8uc3Rfc2l6ZSwKKyAgICAgICAgICAoZmluZm8uc3Rfc2l6ZSA9PSAxKSA/ICIiIDogInMiKTsKKyAgcHJpbnRmICgiSW5vZGUgTGFzdCBDaGFuZ2UgYXQ6ICVzIiwgY3RpbWUgKCZmaW5mby5zdF9jdGltZSkpOworICBwcmludGYgKCIgICAgICBMYXN0IGFjY2VzcyBhdDogJXMiLCBjdGltZSAoJmZpbmZvLnN0X2F0aW1lKSk7CisgIHByaW50ZiAoIiAgICBMYXN0IG1vZGlmaWVkIGF0OiAlcyIsIGN0aW1lICgmZmluZm8uc3RfbXRpbWUpKTsKKyAgcmV0dXJuICgwKTsKK0B9CisKK2NvbV9kZWxldGUgKGFyZykKKyAgICAgY2hhciAqYXJnOworQHsKKyAgdG9vX2Rhbmdlcm91cyAoImRlbGV0ZSIpOworICByZXR1cm4gKDEpOworQH0KKworLyogUHJpbnQgb3V0IGhlbHAgZm9yIEFSRywgb3IgZm9yIGFsbCBvZiB0aGUgY29tbWFuZHMgaWYgQVJHIGlzCisgICBub3QgcHJlc2VudC4gKi8KK2NvbV9oZWxwIChhcmcpCisgICAgIGNoYXIgKmFyZzsKK0B7CisgIHJlZ2lzdGVyIGludCBpOworICBpbnQgcHJpbnRlZCA9IDA7CisKKyAgZm9yIChpID0gMDsgY29tbWFuZHNbaV0ubmFtZTsgaSsrKQorICAgIEB7CisgICAgICBpZiAoISphcmcgfHwgKHN0cmNtcCAoYXJnLCBjb21tYW5kc1tpXS5uYW1lKSA9PSAwKSkKKyAgICAgICAgQHsKKyAgICAgICAgICBwcmludGYgKCIlc1x0XHQlcy5cbiIsIGNvbW1hbmRzW2ldLm5hbWUsIGNvbW1hbmRzW2ldLmRvYyk7CisgICAgICAgICAgcHJpbnRlZCsrOworICAgICAgICBAfQorICAgIEB9CisKKyAgaWYgKCFwcmludGVkKQorICAgIEB7CisgICAgICBwcmludGYgKCJObyBjb21tYW5kcyBtYXRjaCBgJXMnLiAgUG9zc2liaWx0aWVzIGFyZTpcbiIsIGFyZyk7CisKKyAgICAgIGZvciAoaSA9IDA7IGNvbW1hbmRzW2ldLm5hbWU7IGkrKykKKyAgICAgICAgQHsKKyAgICAgICAgICAvKiBQcmludCBpbiBzaXggY29sdW1ucy4gKi8KKyAgICAgICAgICBpZiAocHJpbnRlZCA9PSA2KQorICAgICAgICAgICAgQHsKKyAgICAgICAgICAgICAgcHJpbnRlZCA9IDA7CisgICAgICAgICAgICAgIHByaW50ZiAoIlxuIik7CisgICAgICAgICAgICBAfQorCisgICAgICAgICAgcHJpbnRmICgiJXNcdCIsIGNvbW1hbmRzW2ldLm5hbWUpOworICAgICAgICAgIHByaW50ZWQrKzsKKyAgICAgICAgQH0KKworICAgICAgaWYgKHByaW50ZWQpCisgICAgICAgIHByaW50ZiAoIlxuIik7CisgICAgQH0KKyAgcmV0dXJuICgwKTsKK0B9CisKKy8qIENoYW5nZSB0byB0aGUgZGlyZWN0b3J5IEFSRy4gKi8KK2NvbV9jZCAoYXJnKQorICAgICBjaGFyICphcmc7CitAeworICBpZiAoY2hkaXIgKGFyZykgPT0gLTEpCisgICAgQHsKKyAgICAgIHBlcnJvciAoYXJnKTsKKyAgICAgIHJldHVybiAxOworICAgIEB9CisKKyAgY29tX3B3ZCAoIiIpOworICByZXR1cm4gKDApOworQH0KKworLyogUHJpbnQgb3V0IHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LiAqLworY29tX3B3ZCAoaWdub3JlKQorICAgICBjaGFyICppZ25vcmU7CitAeworICBjaGFyIGRpclsxMDI0XSwgKnM7CisKKyAgcyA9IGdldGN3ZCAoZGlyLCBzaXplb2YoZGlyKSAtIDEpOworICBpZiAocyA9PSAwKQorICAgIEB7CisgICAgICBwcmludGYgKCJFcnJvciBnZXR0aW5nIHB3ZDogJXNcbiIsIGRpcik7CisgICAgICByZXR1cm4gMTsKKyAgICBAfQorCisgIHByaW50ZiAoIkN1cnJlbnQgZGlyZWN0b3J5IGlzICVzXG4iLCBkaXIpOworICByZXR1cm4gMDsKK0B9CisKKy8qIFRoZSB1c2VyIHdpc2hlcyB0byBxdWl0IHVzaW5nIHRoaXMgcHJvZ3JhbS4gIEp1c3Qgc2V0IERPTkUKKyAgIG5vbi16ZXJvLiAqLworY29tX3F1aXQgKGFyZykKKyAgICAgY2hhciAqYXJnOworQHsKKyAgZG9uZSA9IDE7CisgIHJldHVybiAoMCk7CitAfQorCisvKiBGdW5jdGlvbiB3aGljaCB0ZWxscyB5b3UgdGhhdCB5b3UgY2FuJ3QgZG8gdGhpcy4gKi8KK3Rvb19kYW5nZXJvdXMgKGNhbGxlcikKKyAgICAgY2hhciAqY2FsbGVyOworQHsKKyAgZnByaW50ZiAoc3RkZXJyLAorICAgICAgICAgICAiJXM6IFRvbyBkYW5nZXJvdXMgZm9yIG1lIHRvIGRpc3RyaWJ1dGUuXG4iLAorICAgICAgICAgICBjYWxsZXIpOworICBmcHJpbnRmIChzdGRlcnIsICJXcml0ZSBpdCB5b3Vyc2VsZi5cbiIpOworQH0KKworLyogUmV0dXJuIG5vbi16ZXJvIGlmIEFSRyBpcyBhIHZhbGlkIGFyZ3VtZW50IGZvciBDQUxMRVIsCisgICBlbHNlIHByaW50IGFuIGVycm9yIG1lc3NhZ2UgYW5kIHJldHVybiB6ZXJvLiAqLworaW50Cit2YWxpZF9hcmd1bWVudCAoY2FsbGVyLCBhcmcpCisgICAgIGNoYXIgKmNhbGxlciwgKmFyZzsKK0B7CisgIGlmICghYXJnIHx8ICEqYXJnKQorICAgIEB7CisgICAgICBmcHJpbnRmIChzdGRlcnIsICIlczogQXJndW1lbnQgcmVxdWlyZWQuXG4iLCBjYWxsZXIpOworICAgICAgcmV0dXJuICgwKTsKKyAgICBAfQorCisgIHJldHVybiAoMSk7CitAfQorQGVuZCBzbWFsbGV4YW1wbGUKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2RvYy9ybHVzZXIudGV4aSBiL3JlYWRsaW5lL2RvYy9ybHVzZXIudGV4aQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzhiNDFmCi0tLSAvZGV2L251bGwKKysrIGIvcmVhZGxpbmUvZG9jL3JsdXNlci50ZXhpCkBAIC0wLDAgKzEsMTg0NiBAQAorQGNvbW1lbnQgJSoqc3RhcnQgb2YgaGVhZGVyIChUaGlzIGlzIGZvciBydW5uaW5nIFRleGluZm8gb24gYSByZWdpb24uKQorQHNldGZpbGVuYW1lIHJsdXNlci5pbmZvCitAY29tbWVudCAlKiplbmQgb2YgaGVhZGVyIChUaGlzIGlzIGZvciBydW5uaW5nIFRleGluZm8gb24gYSByZWdpb24uKQorQHNldGNoYXB0ZXJuZXdwYWdlIG9kZAorCitAaWdub3JlCitUaGlzIGZpbGUgZG9jdW1lbnRzIHRoZSBlbmQgdXNlciBpbnRlcmZhY2UgdG8gdGhlIEdOVSBjb21tYW5kIGxpbmUKK2VkaXRpbmcgZmVhdHVyZXMuICBJdCBpcyB0byBiZSBhbiBhcHBlbmRpeCB0byBtYW51YWxzIGZvciBwcm9ncmFtcyB3aGljaAordXNlIHRoZXNlIGZlYXR1cmVzLiAgVGhlcmUgaXMgYSBkb2N1bWVudCBlbnRpdGxlZCAicmVhZGxpbmUudGV4aW5mbyIKK3doaWNoIGNvbnRhaW5zIGJvdGggZW5kLXVzZXIgYW5kIHByb2dyYW1tZXIgZG9jdW1lbnRhdGlvbiBmb3IgdGhlCitHTlUgUmVhZGxpbmUgTGlicmFyeS4KKworQ29weXJpZ2h0IChDKSAxOTg4LTIwMDUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKK0F1dGhvcmVkIGJ5IEJyaWFuIEZveCBhbmQgQ2hldCBSYW1leS4KKworUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIHByb2Nlc3MgdGhpcyBmaWxlIHRocm91Z2ggVGV4IGFuZCBwcmludCB0aGUKK3Jlc3VsdHMsIHByb3ZpZGVkIHRoZSBwcmludGVkIGRvY3VtZW50IGNhcnJpZXMgY29weWluZyBwZXJtaXNzaW9uIG5vdGljZQoraWRlbnRpY2FsIHRvIHRoaXMgb25lIGV4Y2VwdCBmb3IgdGhlIHJlbW92YWwgb2YgdGhpcyBwYXJhZ3JhcGggKHRoaXMKK3BhcmFncmFwaCBub3QgYmVpbmcgcmVsZXZhbnQgdG8gdGhlIHByaW50ZWQgbWFudWFsKS4KKworUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIG1ha2UgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzIG9mIHRoaXMgbWFudWFsCitwcm92aWRlZCB0aGUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcmUgcHJlc2VydmVkIG9uCithbGwgY29waWVzLgorCitQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSBtb2RpZmllZCB2ZXJzaW9ucyBvZiB0aGlzCittYW51YWwgdW5kZXIgdGhlIGNvbmRpdGlvbnMgZm9yIHZlcmJhdGltIGNvcHlpbmcsIHByb3ZpZGVkIGFsc28gdGhhdCB0aGUKK0dOVSBDb3B5cmlnaHQgc3RhdGVtZW50IGlzIGF2YWlsYWJsZSB0byB0aGUgZGlzdHJpYnV0ZWUsIGFuZCBwcm92aWRlZCB0aGF0Cit0aGUgZW50aXJlIHJlc3VsdGluZyBkZXJpdmVkIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIGEKK3Blcm1pc3Npb24gbm90aWNlIGlkZW50aWNhbCB0byB0aGlzIG9uZS4KKworUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdHJhbnNsYXRpb25zIG9mIHRoaXMgbWFudWFsCitpbnRvIGFub3RoZXIgbGFuZ3VhZ2UsIHVuZGVyIHRoZSBhYm92ZSBjb25kaXRpb25zIGZvciBtb2RpZmllZCB2ZXJzaW9ucy4KK0BlbmQgaWdub3JlCisKK0Bjb21tZW50IElmIHlvdSBhcmUgaW5jbHVkaW5nIHRoaXMgbWFudWFsIGFzIGFuIGFwcGVuZGl4LCB0aGVuIHNldCB0aGUKK0Bjb21tZW50IHZhcmlhYmxlIHJlYWRsaW5lLWFwcGVuZGl4LgorCitAaWZjbGVhciBCYXNoRmVhdHVyZXMKK0BkZWZjb2RlaW5kZXggYnQKK0BlbmQgaWZjbGVhcgorCitAbm9kZSBDb21tYW5kIExpbmUgRWRpdGluZworQGNoYXB0ZXIgQ29tbWFuZCBMaW5lIEVkaXRpbmcKKworVGhpcyBjaGFwdGVyIGRlc2NyaWJlcyB0aGUgYmFzaWMgZmVhdHVyZXMgb2YgdGhlIEBzY3tnbnV9Citjb21tYW5kIGxpbmUgZWRpdGluZyBpbnRlcmZhY2UuCitAaWZzZXQgQmFzaEZlYXR1cmVzCitDb21tYW5kIGxpbmUgZWRpdGluZyBpcyBwcm92aWRlZCBieSB0aGUgUmVhZGxpbmUgbGlicmFyeSwgd2hpY2ggaXMKK3VzZWQgYnkgc2V2ZXJhbCBkaWZmZXJlbnQgcHJvZ3JhbXMsIGluY2x1ZGluZyBCYXNoLgorQGVuZCBpZnNldAorCitAbWVudQorKiBJbnRyb2R1Y3Rpb24gYW5kIE5vdGF0aW9uOjoJTm90YXRpb24gdXNlZCBpbiB0aGlzIHRleHQuCisqIFJlYWRsaW5lIEludGVyYWN0aW9uOjoJVGhlIG1pbmltdW0gc2V0IG9mIGNvbW1hbmRzIGZvciBlZGl0aW5nIGEgbGluZS4KKyogUmVhZGxpbmUgSW5pdCBGaWxlOjoJCUN1c3RvbWl6aW5nIFJlYWRsaW5lIGZyb20gYSB1c2VyJ3Mgdmlldy4KKyogQmluZGFibGUgUmVhZGxpbmUgQ29tbWFuZHM6OglBIGRlc2NyaXB0aW9uIG9mIG1vc3Qgb2YgdGhlIFJlYWRsaW5lIGNvbW1hbmRzCisJCQkJYXZhaWxhYmxlIGZvciBiaW5kaW5nCisqIFJlYWRsaW5lIHZpIE1vZGU6OgkJQSBzaG9ydCBkZXNjcmlwdGlvbiBvZiBob3cgdG8gbWFrZSBSZWFkbGluZQorCQkJCWJlaGF2ZSBsaWtlIHRoZSB2aSBlZGl0b3IuCitAaWZzZXQgQmFzaEZlYXR1cmVzCisqIFByb2dyYW1tYWJsZSBDb21wbGV0aW9uOjoJSG93IHRvIHNwZWNpZnkgdGhlIHBvc3NpYmxlIGNvbXBsZXRpb25zIGZvcgorCQkJCWEgc3BlY2lmaWMgY29tbWFuZC4KKyogUHJvZ3JhbW1hYmxlIENvbXBsZXRpb24gQnVpbHRpbnM6OglCdWlsdGluIGNvbW1hbmRzIHRvIHNwZWNpZnkgaG93IHRvCisJCQkJY29tcGxldGUgYXJndW1lbnRzIGZvciBhIHBhcnRpY3VsYXIgY29tbWFuZC4KK0BlbmQgaWZzZXQKK0BlbmQgbWVudQorCitAbm9kZSBJbnRyb2R1Y3Rpb24gYW5kIE5vdGF0aW9uCitAc2VjdGlvbiBJbnRyb2R1Y3Rpb24gdG8gTGluZSBFZGl0aW5nCisKK1RoZSBmb2xsb3dpbmcgcGFyYWdyYXBocyBkZXNjcmliZSB0aGUgbm90YXRpb24gdXNlZCB0byByZXByZXNlbnQKK2tleXN0cm9rZXMuCisKK1RoZSB0ZXh0IEBrYmR7Qy1rfSBpcyByZWFkIGFzIGBDb250cm9sLUsnIGFuZCBkZXNjcmliZXMgdGhlIGNoYXJhY3RlcgorcHJvZHVjZWQgd2hlbiB0aGUgQGtleXtrfSBrZXkgaXMgcHJlc3NlZCB3aGlsZSB0aGUgQ29udHJvbCBrZXkKK2lzIGRlcHJlc3NlZC4KKworVGhlIHRleHQgQGtiZHtNLWt9IGlzIHJlYWQgYXMgYE1ldGEtSycgYW5kIGRlc2NyaWJlcyB0aGUgY2hhcmFjdGVyCitwcm9kdWNlZCB3aGVuIHRoZSBNZXRhIGtleSAoaWYgeW91IGhhdmUgb25lKSBpcyBkZXByZXNzZWQsIGFuZCB0aGUgQGtleXtrfQora2V5IGlzIHByZXNzZWQuCitUaGUgTWV0YSBrZXkgaXMgbGFiZWxlZCBAa2V5e0FMVH0gb24gbWFueSBrZXlib2FyZHMuCitPbiBrZXlib2FyZHMgd2l0aCB0d28ga2V5cyBsYWJlbGVkIEBrZXl7QUxUfSAodXN1YWxseSB0byBlaXRoZXIgc2lkZSBvZgordGhlIHNwYWNlIGJhciksIHRoZSBAa2V5e0FMVH0gb24gdGhlIGxlZnQgc2lkZSBpcyBnZW5lcmFsbHkgc2V0IHRvCit3b3JrIGFzIGEgTWV0YSBrZXkuCitUaGUgQGtleXtBTFR9IGtleSBvbiB0aGUgcmlnaHQgbWF5IGFsc28gYmUgY29uZmlndXJlZCB0byB3b3JrIGFzIGEKK01ldGEga2V5IG9yIG1heSBiZSBjb25maWd1cmVkIGFzIHNvbWUgb3RoZXIgbW9kaWZpZXIsIHN1Y2ggYXMgYQorQ29tcG9zZSBrZXkgZm9yIHR5cGluZyBhY2NlbnRlZCBjaGFyYWN0ZXJzLgorCitJZiB5b3UgZG8gbm90IGhhdmUgYSBNZXRhIG9yIEBrZXl7QUxUfSBrZXksIG9yIGFub3RoZXIga2V5IHdvcmtpbmcgYXMKK2EgTWV0YSBrZXksIHRoZSBpZGVudGljYWwga2V5c3Ryb2tlIGNhbiBiZSBnZW5lcmF0ZWQgYnkgdHlwaW5nIEBrZXl7RVNDfQorQGVtcGh7Zmlyc3R9LCBhbmQgdGhlbiB0eXBpbmcgQGtleXtrfS4KK0VpdGhlciBwcm9jZXNzIGlzIGtub3duIGFzIEBkZm57bWV0YWZ5aW5nfSB0aGUgQGtleXtrfSBrZXkuCisKK1RoZSB0ZXh0IEBrYmR7TS1DLWt9IGlzIHJlYWQgYXMgYE1ldGEtQ29udHJvbC1rJyBhbmQgZGVzY3JpYmVzIHRoZQorY2hhcmFjdGVyIHByb2R1Y2VkIGJ5IEBkZm57bWV0YWZ5aW5nfSBAa2Jke0Mta30uCisKK0luIGFkZGl0aW9uLCBzZXZlcmFsIGtleXMgaGF2ZSB0aGVpciBvd24gbmFtZXMuICBTcGVjaWZpY2FsbHksCitAa2V5e0RFTH0sIEBrZXl7RVNDfSwgQGtleXtMRkR9LCBAa2V5e1NQQ30sIEBrZXl7UkVUfSwgYW5kIEBrZXl7VEFCfSBhbGwKK3N0YW5kIGZvciB0aGVtc2VsdmVzIHdoZW4gc2VlbiBpbiB0aGlzIHRleHQsIG9yIGluIGFuIGluaXQgZmlsZQorKEBweHJlZntSZWFkbGluZSBJbml0IEZpbGV9KS4KK0lmIHlvdXIga2V5Ym9hcmQgbGFja3MgYSBAa2V5e0xGRH0ga2V5LCB0eXBpbmcgQGtleXtDLWp9IHdpbGwKK3Byb2R1Y2UgdGhlIGRlc2lyZWQgY2hhcmFjdGVyLgorVGhlIEBrZXl7UkVUfSBrZXkgbWF5IGJlIGxhYmVsZWQgQGtleXtSZXR1cm59IG9yIEBrZXl7RW50ZXJ9IG9uCitzb21lIGtleWJvYXJkcy4KKworQG5vZGUgUmVhZGxpbmUgSW50ZXJhY3Rpb24KK0BzZWN0aW9uIFJlYWRsaW5lIEludGVyYWN0aW9uCitAY2luZGV4IGludGVyYWN0aW9uLCByZWFkbGluZQorCitPZnRlbiBkdXJpbmcgYW4gaW50ZXJhY3RpdmUgc2Vzc2lvbiB5b3UgdHlwZSBpbiBhIGxvbmcgbGluZSBvZiB0ZXh0LAorb25seSB0byBub3RpY2UgdGhhdCB0aGUgZmlyc3Qgd29yZCBvbiB0aGUgbGluZSBpcyBtaXNzcGVsbGVkLiAgVGhlCitSZWFkbGluZSBsaWJyYXJ5IGdpdmVzIHlvdSBhIHNldCBvZiBjb21tYW5kcyBmb3IgbWFuaXB1bGF0aW5nIHRoZSB0ZXh0CithcyB5b3UgdHlwZSBpdCBpbiwgYWxsb3dpbmcgeW91IHRvIGp1c3QgZml4IHlvdXIgdHlwbywgYW5kIG5vdCBmb3JjaW5nCit5b3UgdG8gcmV0eXBlIHRoZSBtYWpvcml0eSBvZiB0aGUgbGluZS4gIFVzaW5nIHRoZXNlIGVkaXRpbmcgY29tbWFuZHMsCit5b3UgbW92ZSB0aGUgY3Vyc29yIHRvIHRoZSBwbGFjZSB0aGF0IG5lZWRzIGNvcnJlY3Rpb24sIGFuZCBkZWxldGUgb3IKK2luc2VydCB0aGUgdGV4dCBvZiB0aGUgY29ycmVjdGlvbnMuICBUaGVuLCB3aGVuIHlvdSBhcmUgc2F0aXNmaWVkIHdpdGgKK3RoZSBsaW5lLCB5b3Ugc2ltcGx5IHByZXNzIEBrZXl7UkVUfS4gIFlvdSBkbyBub3QgaGF2ZSB0byBiZSBhdCB0aGUKK2VuZCBvZiB0aGUgbGluZSB0byBwcmVzcyBAa2V5e1JFVH07IHRoZSBlbnRpcmUgbGluZSBpcyBhY2NlcHRlZAorcmVnYXJkbGVzcyBvZiB0aGUgbG9jYXRpb24gb2YgdGhlIGN1cnNvciB3aXRoaW4gdGhlIGxpbmUuCisKK0BtZW51CisqIFJlYWRsaW5lIEJhcmUgRXNzZW50aWFsczo6CVRoZSBsZWFzdCB5b3UgbmVlZCB0byBrbm93IGFib3V0IFJlYWRsaW5lLgorKiBSZWFkbGluZSBNb3ZlbWVudCBDb21tYW5kczo6CU1vdmluZyBhYm91dCB0aGUgaW5wdXQgbGluZS4KKyogUmVhZGxpbmUgS2lsbGluZyBDb21tYW5kczo6CUhvdyB0byBkZWxldGUgdGV4dCwgYW5kIGhvdyB0byBnZXQgaXQgYmFjayEKKyogUmVhZGxpbmUgQXJndW1lbnRzOjoJCUdpdmluZyBudW1lcmljIGFyZ3VtZW50cyB0byBjb21tYW5kcy4KKyogU2VhcmNoaW5nOjoJCQlTZWFyY2hpbmcgdGhyb3VnaCBwcmV2aW91cyBsaW5lcy4KK0BlbmQgbWVudQorCitAbm9kZSBSZWFkbGluZSBCYXJlIEVzc2VudGlhbHMKK0BzdWJzZWN0aW9uIFJlYWRsaW5lIEJhcmUgRXNzZW50aWFscworQGNpbmRleCBub3RhdGlvbiwgcmVhZGxpbmUKK0BjaW5kZXggY29tbWFuZCBlZGl0aW5nCitAY2luZGV4IGVkaXRpbmcgY29tbWFuZCBsaW5lcworCitJbiBvcmRlciB0byBlbnRlciBjaGFyYWN0ZXJzIGludG8gdGhlIGxpbmUsIHNpbXBseSB0eXBlIHRoZW0uICBUaGUgdHlwZWQKK2NoYXJhY3RlciBhcHBlYXJzIHdoZXJlIHRoZSBjdXJzb3Igd2FzLCBhbmQgdGhlbiB0aGUgY3Vyc29yIG1vdmVzIG9uZQorc3BhY2UgdG8gdGhlIHJpZ2h0LiAgSWYgeW91IG1pc3R5cGUgYSBjaGFyYWN0ZXIsIHlvdSBjYW4gdXNlIHlvdXIKK2VyYXNlIGNoYXJhY3RlciB0byBiYWNrIHVwIGFuZCBkZWxldGUgdGhlIG1pc3R5cGVkIGNoYXJhY3Rlci4KKworU29tZXRpbWVzIHlvdSBtYXkgbWlzdHlwZSBhIGNoYXJhY3RlciwgYW5kCitub3Qgbm90aWNlIHRoZSBlcnJvciB1bnRpbCB5b3UgaGF2ZSB0eXBlZCBzZXZlcmFsIG90aGVyIGNoYXJhY3RlcnMuICBJbgordGhhdCBjYXNlLCB5b3UgY2FuIHR5cGUgQGtiZHtDLWJ9IHRvIG1vdmUgdGhlIGN1cnNvciB0byB0aGUgbGVmdCwgYW5kIHRoZW4KK2NvcnJlY3QgeW91ciBtaXN0YWtlLiAgQWZ0ZXJ3YXJkcywgeW91IGNhbiBtb3ZlIHRoZSBjdXJzb3IgdG8gdGhlIHJpZ2h0Cit3aXRoIEBrYmR7Qy1mfS4KKworV2hlbiB5b3UgYWRkIHRleHQgaW4gdGhlIG1pZGRsZSBvZiBhIGxpbmUsIHlvdSB3aWxsIG5vdGljZSB0aGF0IGNoYXJhY3RlcnMKK3RvIHRoZSByaWdodCBvZiB0aGUgY3Vyc29yIGFyZSBgcHVzaGVkIG92ZXInIHRvIG1ha2Ugcm9vbSBmb3IgdGhlIHRleHQKK3RoYXQgeW91IGhhdmUgaW5zZXJ0ZWQuICBMaWtld2lzZSwgd2hlbiB5b3UgZGVsZXRlIHRleHQgYmVoaW5kIHRoZSBjdXJzb3IsCitjaGFyYWN0ZXJzIHRvIHRoZSByaWdodCBvZiB0aGUgY3Vyc29yIGFyZSBgcHVsbGVkIGJhY2snIHRvIGZpbGwgaW4gdGhlCitibGFuayBzcGFjZSBjcmVhdGVkIGJ5IHRoZSByZW1vdmFsIG9mIHRoZSB0ZXh0LiAgQSBsaXN0IG9mIHRoZSBiYXJlCitlc3NlbnRpYWxzIGZvciBlZGl0aW5nIHRoZSB0ZXh0IG9mIGFuIGlucHV0IGxpbmUgZm9sbG93cy4KKworQHRhYmxlIEBhc2lzCitAaXRlbSBAa2Jke0MtYn0KK01vdmUgYmFjayBvbmUgY2hhcmFjdGVyLgorQGl0ZW0gQGtiZHtDLWZ9CitNb3ZlIGZvcndhcmQgb25lIGNoYXJhY3Rlci4KK0BpdGVtIEBrZXl7REVMfSBvciBAa2V5e0JhY2tzcGFjZX0KK0RlbGV0ZSB0aGUgY2hhcmFjdGVyIHRvIHRoZSBsZWZ0IG9mIHRoZSBjdXJzb3IuCitAaXRlbSBAa2Jke0MtZH0KK0RlbGV0ZSB0aGUgY2hhcmFjdGVyIHVuZGVybmVhdGggdGhlIGN1cnNvci4KK0BpdGVtIEB3e1ByaW50aW5nIGNoYXJhY3RlcnN9CitJbnNlcnQgdGhlIGNoYXJhY3RlciBpbnRvIHRoZSBsaW5lIGF0IHRoZSBjdXJzb3IuCitAaXRlbSBAa2Jke0MtX30gb3IgQGtiZHtDLXggQy11fQorVW5kbyB0aGUgbGFzdCBlZGl0aW5nIGNvbW1hbmQuICBZb3UgY2FuIHVuZG8gYWxsIHRoZSB3YXkgYmFjayB0byBhbgorZW1wdHkgbGluZS4KK0BlbmQgdGFibGUKKworQG5vaW5kZW50CisoRGVwZW5kaW5nIG9uIHlvdXIgY29uZmlndXJhdGlvbiwgdGhlIEBrZXl7QmFja3NwYWNlfSBrZXkgYmUgc2V0IHRvCitkZWxldGUgdGhlIGNoYXJhY3RlciB0byB0aGUgbGVmdCBvZiB0aGUgY3Vyc29yIGFuZCB0aGUgQGtleXtERUx9IGtleSBzZXQKK3RvIGRlbGV0ZSB0aGUgY2hhcmFjdGVyIHVuZGVybmVhdGggdGhlIGN1cnNvciwgbGlrZSBAa2Jke0MtZH0sIHJhdGhlcgordGhhbiB0aGUgY2hhcmFjdGVyIHRvIHRoZSBsZWZ0IG9mIHRoZSBjdXJzb3IuKQorCitAbm9kZSBSZWFkbGluZSBNb3ZlbWVudCBDb21tYW5kcworQHN1YnNlY3Rpb24gUmVhZGxpbmUgTW92ZW1lbnQgQ29tbWFuZHMKKworCitUaGUgYWJvdmUgdGFibGUgZGVzY3JpYmVzIHRoZSBtb3N0IGJhc2ljIGtleXN0cm9rZXMgdGhhdCB5b3UgbmVlZAoraW4gb3JkZXIgdG8gZG8gZWRpdGluZyBvZiB0aGUgaW5wdXQgbGluZS4gIEZvciB5b3VyIGNvbnZlbmllbmNlLCBtYW55CitvdGhlciBjb21tYW5kcyBoYXZlIGJlZW4gYWRkZWQgaW4gYWRkaXRpb24gdG8gQGtiZHtDLWJ9LCBAa2Jke0MtZn0sCitAa2Jke0MtZH0sIGFuZCBAa2V5e0RFTH0uICBIZXJlIGFyZSBzb21lIGNvbW1hbmRzIGZvciBtb3ZpbmcgbW9yZSByYXBpZGx5CithYm91dCB0aGUgbGluZS4KKworQHRhYmxlIEBrYmQKK0BpdGVtIEMtYQorTW92ZSB0byB0aGUgc3RhcnQgb2YgdGhlIGxpbmUuCitAaXRlbSBDLWUKK01vdmUgdG8gdGhlIGVuZCBvZiB0aGUgbGluZS4KK0BpdGVtIE0tZgorTW92ZSBmb3J3YXJkIGEgd29yZCwgd2hlcmUgYSB3b3JkIGlzIGNvbXBvc2VkIG9mIGxldHRlcnMgYW5kIGRpZ2l0cy4KK0BpdGVtIE0tYgorTW92ZSBiYWNrd2FyZCBhIHdvcmQuCitAaXRlbSBDLWwKK0NsZWFyIHRoZSBzY3JlZW4sIHJlcHJpbnRpbmcgdGhlIGN1cnJlbnQgbGluZSBhdCB0aGUgdG9wLgorQGVuZCB0YWJsZQorCitOb3RpY2UgaG93IEBrYmR7Qy1mfSBtb3ZlcyBmb3J3YXJkIGEgY2hhcmFjdGVyLCB3aGlsZSBAa2Jke00tZn0gbW92ZXMKK2ZvcndhcmQgYSB3b3JkLiAgSXQgaXMgYSBsb29zZSBjb252ZW50aW9uIHRoYXQgY29udHJvbCBrZXlzdHJva2VzCitvcGVyYXRlIG9uIGNoYXJhY3RlcnMgd2hpbGUgbWV0YSBrZXlzdHJva2VzIG9wZXJhdGUgb24gd29yZHMuCisKK0Bub2RlIFJlYWRsaW5lIEtpbGxpbmcgQ29tbWFuZHMKK0BzdWJzZWN0aW9uIFJlYWRsaW5lIEtpbGxpbmcgQ29tbWFuZHMKKworQGNpbmRleCBraWxsaW5nIHRleHQKK0BjaW5kZXggeWFua2luZyB0ZXh0CisKK0BkZm57S2lsbGluZ30gdGV4dCBtZWFucyB0byBkZWxldGUgdGhlIHRleHQgZnJvbSB0aGUgbGluZSwgYnV0IHRvIHNhdmUKK2l0IGF3YXkgZm9yIGxhdGVyIHVzZSwgdXN1YWxseSBieSBAZGZue3lhbmtpbmd9IChyZS1pbnNlcnRpbmcpCitpdCBiYWNrIGludG8gdGhlIGxpbmUuCisoYEN1dCcgYW5kIGBwYXN0ZScgYXJlIG1vcmUgcmVjZW50IGphcmdvbiBmb3IgYGtpbGwnIGFuZCBgeWFuaycuKQorCitJZiB0aGUgZGVzY3JpcHRpb24gZm9yIGEgY29tbWFuZCBzYXlzIHRoYXQgaXQgYGtpbGxzJyB0ZXh0LCB0aGVuIHlvdSBjYW4KK2JlIHN1cmUgdGhhdCB5b3UgY2FuIGdldCB0aGUgdGV4dCBiYWNrIGluIGEgZGlmZmVyZW50IChvciB0aGUgc2FtZSkKK3BsYWNlIGxhdGVyLgorCitXaGVuIHlvdSB1c2UgYSBraWxsIGNvbW1hbmQsIHRoZSB0ZXh0IGlzIHNhdmVkIGluIGEgQGRmbntraWxsLXJpbmd9LgorQW55IG51bWJlciBvZiBjb25zZWN1dGl2ZSBraWxscyBzYXZlIGFsbCBvZiB0aGUga2lsbGVkIHRleHQgdG9nZXRoZXIsIHNvCit0aGF0IHdoZW4geW91IHlhbmsgaXQgYmFjaywgeW91IGdldCBpdCBhbGwuICBUaGUga2lsbAorcmluZyBpcyBub3QgbGluZSBzcGVjaWZpYzsgdGhlIHRleHQgdGhhdCB5b3Uga2lsbGVkIG9uIGEgcHJldmlvdXNseQordHlwZWQgbGluZSBpcyBhdmFpbGFibGUgdG8gYmUgeWFua2VkIGJhY2sgbGF0ZXIsIHdoZW4geW91IGFyZSB0eXBpbmcKK2Fub3RoZXIgbGluZS4KK0BjaW5kZXgga2lsbCByaW5nCisKK0hlcmUgaXMgdGhlIGxpc3Qgb2YgY29tbWFuZHMgZm9yIGtpbGxpbmcgdGV4dC4KKworQHRhYmxlIEBrYmQKK0BpdGVtIEMtaworS2lsbCB0aGUgdGV4dCBmcm9tIHRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbiB0byB0aGUgZW5kIG9mIHRoZSBsaW5lLgorCitAaXRlbSBNLWQKK0tpbGwgZnJvbSB0aGUgY3Vyc29yIHRvIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgd29yZCwgb3IsIGlmIGJldHdlZW4KK3dvcmRzLCB0byB0aGUgZW5kIG9mIHRoZSBuZXh0IHdvcmQuCitXb3JkIGJvdW5kYXJpZXMgYXJlIHRoZSBzYW1lIGFzIHRob3NlIHVzZWQgYnkgQGtiZHtNLWZ9LgorCitAaXRlbSBNLUBrZXl7REVMfQorS2lsbCBmcm9tIHRoZSBjdXJzb3IgdGhlIHN0YXJ0IG9mIHRoZSBjdXJyZW50IHdvcmQsIG9yLCBpZiBiZXR3ZWVuCit3b3JkcywgdG8gdGhlIHN0YXJ0IG9mIHRoZSBwcmV2aW91cyB3b3JkLgorV29yZCBib3VuZGFyaWVzIGFyZSB0aGUgc2FtZSBhcyB0aG9zZSB1c2VkIGJ5IEBrYmR7TS1ifS4KKworQGl0ZW0gQy13CitLaWxsIGZyb20gdGhlIGN1cnNvciB0byB0aGUgcHJldmlvdXMgd2hpdGVzcGFjZS4gIFRoaXMgaXMgZGlmZmVyZW50IHRoYW4KK0BrYmR7TS1Aa2V5e0RFTH19IGJlY2F1c2UgdGhlIHdvcmQgYm91bmRhcmllcyBkaWZmZXIuCisKK0BlbmQgdGFibGUKKworSGVyZSBpcyBob3cgdG8gQGRmbnt5YW5rfSB0aGUgdGV4dCBiYWNrIGludG8gdGhlIGxpbmUuICBZYW5raW5nCittZWFucyB0byBjb3B5IHRoZSBtb3N0LXJlY2VudGx5LWtpbGxlZCB0ZXh0IGZyb20gdGhlIGtpbGwgYnVmZmVyLgorCitAdGFibGUgQGtiZAorQGl0ZW0gQy15CitZYW5rIHRoZSBtb3N0IHJlY2VudGx5IGtpbGxlZCB0ZXh0IGJhY2sgaW50byB0aGUgYnVmZmVyIGF0IHRoZSBjdXJzb3IuCisKK0BpdGVtIE0teQorUm90YXRlIHRoZSBraWxsLXJpbmcsIGFuZCB5YW5rIHRoZSBuZXcgdG9wLiAgWW91IGNhbiBvbmx5IGRvIHRoaXMgaWYKK3RoZSBwcmlvciBjb21tYW5kIGlzIEBrYmR7Qy15fSBvciBAa2Jke00teX0uCitAZW5kIHRhYmxlCisKK0Bub2RlIFJlYWRsaW5lIEFyZ3VtZW50cworQHN1YnNlY3Rpb24gUmVhZGxpbmUgQXJndW1lbnRzCisKK1lvdSBjYW4gcGFzcyBudW1lcmljIGFyZ3VtZW50cyB0byBSZWFkbGluZSBjb21tYW5kcy4gIFNvbWV0aW1lcyB0aGUKK2FyZ3VtZW50IGFjdHMgYXMgYSByZXBlYXQgY291bnQsIG90aGVyIHRpbWVzIGl0IGlzIHRoZSBAaXtzaWdufSBvZiB0aGUKK2FyZ3VtZW50IHRoYXQgaXMgc2lnbmlmaWNhbnQuICBJZiB5b3UgcGFzcyBhIG5lZ2F0aXZlIGFyZ3VtZW50IHRvIGEKK2NvbW1hbmQgd2hpY2ggbm9ybWFsbHkgYWN0cyBpbiBhIGZvcndhcmQgZGlyZWN0aW9uLCB0aGF0IGNvbW1hbmQgd2lsbAorYWN0IGluIGEgYmFja3dhcmQgZGlyZWN0aW9uLiAgRm9yIGV4YW1wbGUsIHRvIGtpbGwgdGV4dCBiYWNrIHRvIHRoZQorc3RhcnQgb2YgdGhlIGxpbmUsIHlvdSBtaWdodCB0eXBlIEBzYW1we00tLSBDLWt9LgorCitUaGUgZ2VuZXJhbCB3YXkgdG8gcGFzcyBudW1lcmljIGFyZ3VtZW50cyB0byBhIGNvbW1hbmQgaXMgdG8gdHlwZSBtZXRhCitkaWdpdHMgYmVmb3JlIHRoZSBjb21tYW5kLiAgSWYgdGhlIGZpcnN0IGBkaWdpdCcgdHlwZWQgaXMgYSBtaW51cworc2lnbiAoQHNhbXB7LX0pLCB0aGVuIHRoZSBzaWduIG9mIHRoZSBhcmd1bWVudCB3aWxsIGJlIG5lZ2F0aXZlLiAgT25jZQoreW91IGhhdmUgdHlwZWQgb25lIG1ldGEgZGlnaXQgdG8gZ2V0IHRoZSBhcmd1bWVudCBzdGFydGVkLCB5b3UgY2FuIHR5cGUKK3RoZSByZW1haW5kZXIgb2YgdGhlIGRpZ2l0cywgYW5kIHRoZW4gdGhlIGNvbW1hbmQuICBGb3IgZXhhbXBsZSwgdG8gZ2l2ZQordGhlIEBrYmR7Qy1kfSBjb21tYW5kIGFuIGFyZ3VtZW50IG9mIDEwLCB5b3UgY291bGQgdHlwZSBAc2FtcHtNLTEgMCBDLWR9LAord2hpY2ggd2lsbCBkZWxldGUgdGhlIG5leHQgdGVuIGNoYXJhY3RlcnMgb24gdGhlIGlucHV0IGxpbmUuCisKK0Bub2RlIFNlYXJjaGluZworQHN1YnNlY3Rpb24gU2VhcmNoaW5nIGZvciBDb21tYW5kcyBpbiB0aGUgSGlzdG9yeQorCitSZWFkbGluZSBwcm92aWRlcyBjb21tYW5kcyBmb3Igc2VhcmNoaW5nIHRocm91Z2ggdGhlIGNvbW1hbmQgaGlzdG9yeQorQGlmc2V0IEJhc2hGZWF0dXJlcworKEBweHJlZntCYXNoIEhpc3RvcnkgRmFjaWxpdGllc30pCitAZW5kIGlmc2V0Citmb3IgbGluZXMgY29udGFpbmluZyBhIHNwZWNpZmllZCBzdHJpbmcuCitUaGVyZSBhcmUgdHdvIHNlYXJjaCBtb2RlczogIEBkZm57aW5jcmVtZW50YWx9IGFuZCBAZGZue25vbi1pbmNyZW1lbnRhbH0uCisKK0luY3JlbWVudGFsIHNlYXJjaGVzIGJlZ2luIGJlZm9yZSB0aGUgdXNlciBoYXMgZmluaXNoZWQgdHlwaW5nIHRoZQorc2VhcmNoIHN0cmluZy4KK0FzIGVhY2ggY2hhcmFjdGVyIG9mIHRoZSBzZWFyY2ggc3RyaW5nIGlzIHR5cGVkLCBSZWFkbGluZSBkaXNwbGF5cwordGhlIG5leHQgZW50cnkgZnJvbSB0aGUgaGlzdG9yeSBtYXRjaGluZyB0aGUgc3RyaW5nIHR5cGVkIHNvIGZhci4KK0FuIGluY3JlbWVudGFsIHNlYXJjaCByZXF1aXJlcyBvbmx5IGFzIG1hbnkgY2hhcmFjdGVycyBhcyBuZWVkZWQgdG8KK2ZpbmQgdGhlIGRlc2lyZWQgaGlzdG9yeSBlbnRyeS4KK1RvIHNlYXJjaCBiYWNrd2FyZCBpbiB0aGUgaGlzdG9yeSBmb3IgYSBwYXJ0aWN1bGFyIHN0cmluZywgdHlwZQorQGtiZHtDLXJ9LiAgVHlwaW5nIEBrYmR7Qy1zfSBzZWFyY2hlcyBmb3J3YXJkIHRocm91Z2ggdGhlIGhpc3RvcnkuCitUaGUgY2hhcmFjdGVycyBwcmVzZW50IGluIHRoZSB2YWx1ZSBvZiB0aGUgQGNvZGV7aXNlYXJjaC10ZXJtaW5hdG9yc30gdmFyaWFibGUKK2FyZSB1c2VkIHRvIHRlcm1pbmF0ZSBhbiBpbmNyZW1lbnRhbCBzZWFyY2guCitJZiB0aGF0IHZhcmlhYmxlIGhhcyBub3QgYmVlbiBhc3NpZ25lZCBhIHZhbHVlLCB0aGUgQGtleXtFU0N9IGFuZAorQGtiZHtDLUp9IGNoYXJhY3RlcnMgd2lsbCB0ZXJtaW5hdGUgYW4gaW5jcmVtZW50YWwgc2VhcmNoLgorQGtiZHtDLWd9IHdpbGwgYWJvcnQgYW4gaW5jcmVtZW50YWwgc2VhcmNoIGFuZCByZXN0b3JlIHRoZSBvcmlnaW5hbCBsaW5lLgorV2hlbiB0aGUgc2VhcmNoIGlzIHRlcm1pbmF0ZWQsIHRoZSBoaXN0b3J5IGVudHJ5IGNvbnRhaW5pbmcgdGhlCitzZWFyY2ggc3RyaW5nIGJlY29tZXMgdGhlIGN1cnJlbnQgbGluZS4KKworVG8gZmluZCBvdGhlciBtYXRjaGluZyBlbnRyaWVzIGluIHRoZSBoaXN0b3J5IGxpc3QsIHR5cGUgQGtiZHtDLXJ9IG9yCitAa2Jke0Mtc30gYXMgYXBwcm9wcmlhdGUuCitUaGlzIHdpbGwgc2VhcmNoIGJhY2t3YXJkIG9yIGZvcndhcmQgaW4gdGhlIGhpc3RvcnkgZm9yIHRoZSBuZXh0CitlbnRyeSBtYXRjaGluZyB0aGUgc2VhcmNoIHN0cmluZyB0eXBlZCBzbyBmYXIuCitBbnkgb3RoZXIga2V5IHNlcXVlbmNlIGJvdW5kIHRvIGEgUmVhZGxpbmUgY29tbWFuZCB3aWxsIHRlcm1pbmF0ZQordGhlIHNlYXJjaCBhbmQgZXhlY3V0ZSB0aGF0IGNvbW1hbmQuCitGb3IgaW5zdGFuY2UsIGEgQGtleXtSRVR9IHdpbGwgdGVybWluYXRlIHRoZSBzZWFyY2ggYW5kIGFjY2VwdAordGhlIGxpbmUsIHRoZXJlYnkgZXhlY3V0aW5nIHRoZSBjb21tYW5kIGZyb20gdGhlIGhpc3RvcnkgbGlzdC4KK0EgbW92ZW1lbnQgY29tbWFuZCB3aWxsIHRlcm1pbmF0ZSB0aGUgc2VhcmNoLCBtYWtlIHRoZSBsYXN0IGxpbmUgZm91bmQKK3RoZSBjdXJyZW50IGxpbmUsIGFuZCBiZWdpbiBlZGl0aW5nLgorCitSZWFkbGluZSByZW1lbWJlcnMgdGhlIGxhc3QgaW5jcmVtZW50YWwgc2VhcmNoIHN0cmluZy4gIElmIHR3bworQGtiZHtDLXJ9cyBhcmUgdHlwZWQgd2l0aG91dCBhbnkgaW50ZXJ2ZW5pbmcgY2hhcmFjdGVycyBkZWZpbmluZyBhIG5ldworc2VhcmNoIHN0cmluZywgYW55IHJlbWVtYmVyZWQgc2VhcmNoIHN0cmluZyBpcyB1c2VkLgorCitOb24taW5jcmVtZW50YWwgc2VhcmNoZXMgcmVhZCB0aGUgZW50aXJlIHNlYXJjaCBzdHJpbmcgYmVmb3JlIHN0YXJ0aW5nCit0byBzZWFyY2ggZm9yIG1hdGNoaW5nIGhpc3RvcnkgbGluZXMuICBUaGUgc2VhcmNoIHN0cmluZyBtYXkgYmUKK3R5cGVkIGJ5IHRoZSB1c2VyIG9yIGJlIHBhcnQgb2YgdGhlIGNvbnRlbnRzIG9mIHRoZSBjdXJyZW50IGxpbmUuCisKK0Bub2RlIFJlYWRsaW5lIEluaXQgRmlsZQorQHNlY3Rpb24gUmVhZGxpbmUgSW5pdCBGaWxlCitAY2luZGV4IGluaXRpYWxpemF0aW9uIGZpbGUsIHJlYWRsaW5lCisKK0FsdGhvdWdoIHRoZSBSZWFkbGluZSBsaWJyYXJ5IGNvbWVzIHdpdGggYSBzZXQgb2YgRW1hY3MtbGlrZQora2V5YmluZGluZ3MgaW5zdGFsbGVkIGJ5IGRlZmF1bHQsIGl0IGlzIHBvc3NpYmxlIHRvIHVzZSBhIGRpZmZlcmVudCBzZXQKK29mIGtleWJpbmRpbmdzLgorQW55IHVzZXIgY2FuIGN1c3RvbWl6ZSBwcm9ncmFtcyB0aGF0IHVzZSBSZWFkbGluZSBieSBwdXR0aW5nCitjb21tYW5kcyBpbiBhbiBAZGZue2lucHV0cmN9IGZpbGUsIGNvbnZlbnRpb25hbGx5IGluIGhpcyBob21lIGRpcmVjdG9yeS4KK1RoZSBuYW1lIG9mIHRoaXMKK0BpZnNldCBCYXNoRmVhdHVyZXMKK2ZpbGUgaXMgdGFrZW4gZnJvbSB0aGUgdmFsdWUgb2YgdGhlIHNoZWxsIHZhcmlhYmxlIEBlbnZ7SU5QVVRSQ30uICBJZgorQGVuZCBpZnNldAorQGlmY2xlYXIgQmFzaEZlYXR1cmVzCitmaWxlIGlzIHRha2VuIGZyb20gdGhlIHZhbHVlIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBAZW52e0lOUFVUUkN9LiAgSWYKK0BlbmQgaWZjbGVhcgordGhhdCB2YXJpYWJsZSBpcyB1bnNldCwgdGhlIGRlZmF1bHQgaXMgQGZpbGV7fi8uaW5wdXRyY30uCisKK1doZW4gYSBwcm9ncmFtIHdoaWNoIHVzZXMgdGhlIFJlYWRsaW5lIGxpYnJhcnkgc3RhcnRzIHVwLCB0aGUKK2luaXQgZmlsZSBpcyByZWFkLCBhbmQgdGhlIGtleSBiaW5kaW5ncyBhcmUgc2V0LgorCitJbiBhZGRpdGlvbiwgdGhlIEBjb2Rle0MteCBDLXJ9IGNvbW1hbmQgcmUtcmVhZHMgdGhpcyBpbml0IGZpbGUsIHRodXMKK2luY29ycG9yYXRpbmcgYW55IGNoYW5nZXMgdGhhdCB5b3UgbWlnaHQgaGF2ZSBtYWRlIHRvIGl0LgorCitAbWVudQorKiBSZWFkbGluZSBJbml0IEZpbGUgU3ludGF4OjoJU3ludGF4IGZvciB0aGUgY29tbWFuZHMgaW4gdGhlIGlucHV0cmMgZmlsZS4KKworKiBDb25kaXRpb25hbCBJbml0IENvbnN0cnVjdHM6OglDb25kaXRpb25hbCBrZXkgYmluZGluZ3MgaW4gdGhlIGlucHV0cmMgZmlsZS4KKworKiBTYW1wbGUgSW5pdCBGaWxlOjoJCUFuIGV4YW1wbGUgaW5wdXRyYyBmaWxlLgorQGVuZCBtZW51CisKK0Bub2RlIFJlYWRsaW5lIEluaXQgRmlsZSBTeW50YXgKK0BzdWJzZWN0aW9uIFJlYWRsaW5lIEluaXQgRmlsZSBTeW50YXgKKworVGhlcmUgYXJlIG9ubHkgYSBmZXcgYmFzaWMgY29uc3RydWN0cyBhbGxvd2VkIGluIHRoZQorUmVhZGxpbmUgaW5pdCBmaWxlLiAgQmxhbmsgbGluZXMgYXJlIGlnbm9yZWQuCitMaW5lcyBiZWdpbm5pbmcgd2l0aCBhIEBzYW1weyN9IGFyZSBjb21tZW50cy4KK0xpbmVzIGJlZ2lubmluZyB3aXRoIGEgQHNhbXB7JH0gaW5kaWNhdGUgY29uZGl0aW9uYWwKK2NvbnN0cnVjdHMgKEBweHJlZntDb25kaXRpb25hbCBJbml0IENvbnN0cnVjdHN9KS4gIE90aGVyIGxpbmVzCitkZW5vdGUgdmFyaWFibGUgc2V0dGluZ3MgYW5kIGtleSBiaW5kaW5ncy4KKworQHRhYmxlIEBhc2lzCitAaXRlbSBWYXJpYWJsZSBTZXR0aW5ncworWW91IGNhbiBtb2RpZnkgdGhlIHJ1bi10aW1lIGJlaGF2aW9yIG9mIFJlYWRsaW5lIGJ5CithbHRlcmluZyB0aGUgdmFsdWVzIG9mIHZhcmlhYmxlcyBpbiBSZWFkbGluZQordXNpbmcgdGhlIEBjb2Rle3NldH0gY29tbWFuZCB3aXRoaW4gdGhlIGluaXQgZmlsZS4KK1RoZSBzeW50YXggaXMgc2ltcGxlOgorCitAZXhhbXBsZQorc2V0IEB2YXJ7dmFyaWFibGV9IEB2YXJ7dmFsdWV9CitAZW5kIGV4YW1wbGUKKworQG5vaW5kZW50CitIZXJlLCBmb3IgZXhhbXBsZSwgaXMgaG93IHRvCitjaGFuZ2UgZnJvbSB0aGUgZGVmYXVsdCBFbWFjcy1saWtlIGtleSBiaW5kaW5nIHRvIHVzZQorQGNvZGV7dml9IGxpbmUgZWRpdGluZyBjb21tYW5kczoKKworQGV4YW1wbGUKK3NldCBlZGl0aW5nLW1vZGUgdmkKK0BlbmQgZXhhbXBsZQorCitWYXJpYWJsZSBuYW1lcyBhbmQgdmFsdWVzLCB3aGVyZSBhcHByb3ByaWF0ZSwgYXJlIHJlY29nbml6ZWQgd2l0aG91dCByZWdhcmQKK3RvIGNhc2UuICBVbnJlY29nbml6ZWQgdmFyaWFibGUgbmFtZXMgYXJlIGlnbm9yZWQuCisKK0Jvb2xlYW4gdmFyaWFibGVzICh0aG9zZSB0aGF0IGNhbiBiZSBzZXQgdG8gb24gb3Igb2ZmKSBhcmUgc2V0IHRvIG9uIGlmCit0aGUgdmFsdWUgaXMgbnVsbCBvciBlbXB0eSwgQHZhcntvbn0gKGNhc2UtaW5zZW5zaXRpdmUpLCBvciAxLiAgQW55IG90aGVyCit2YWx1ZSByZXN1bHRzIGluIHRoZSB2YXJpYWJsZSBiZWluZyBzZXQgdG8gb2ZmLgorCitAaWZzZXQgQmFzaEZlYXR1cmVzCitUaGUgQHd7QGNvZGV7YmluZCAtVn19IGNvbW1hbmQgbGlzdHMgdGhlIGN1cnJlbnQgUmVhZGxpbmUgdmFyaWFibGUgbmFtZXMKK2FuZCB2YWx1ZXMuICBAeHJlZntCYXNoIEJ1aWx0aW5zfS4KK0BlbmQgaWZzZXQKKworQSBncmVhdCBkZWFsIG9mIHJ1bi10aW1lIGJlaGF2aW9yIGlzIGNoYW5nZWFibGUgd2l0aCB0aGUgZm9sbG93aW5nCit2YXJpYWJsZXMuCisKK0BjaW5kZXggdmFyaWFibGVzLCByZWFkbGluZQorQHRhYmxlIEBjb2RlCisKK0BpdGVtIGJlbGwtc3R5bGUKK0B2aW5kZXggYmVsbC1zdHlsZQorQ29udHJvbHMgd2hhdCBoYXBwZW5zIHdoZW4gUmVhZGxpbmUgd2FudHMgdG8gcmluZyB0aGUgdGVybWluYWwgYmVsbC4KK0lmIHNldCB0byBAc2FtcHtub25lfSwgUmVhZGxpbmUgbmV2ZXIgcmluZ3MgdGhlIGJlbGwuICBJZiBzZXQgdG8KK0BzYW1we3Zpc2libGV9LCBSZWFkbGluZSB1c2VzIGEgdmlzaWJsZSBiZWxsIGlmIG9uZSBpcyBhdmFpbGFibGUuCitJZiBzZXQgdG8gQHNhbXB7YXVkaWJsZX0gKHRoZSBkZWZhdWx0KSwgUmVhZGxpbmUgYXR0ZW1wdHMgdG8gcmluZwordGhlIHRlcm1pbmFsJ3MgYmVsbC4KKworQGl0ZW0gYmluZC10dHktc3BlY2lhbC1jaGFycworQHZpbmRleCBiaW5kLXR0eS1zcGVjaWFsLWNoYXJzCitJZiBzZXQgdG8gQHNhbXB7b259LCBSZWFkbGluZSBhdHRlbXB0cyB0byBiaW5kIHRoZSBjb250cm9sIGNoYXJhY3RlcnMgIAordHJlYXRlZCBzcGVjaWFsbHkgYnkgdGhlIGtlcm5lbCdzIHRlcm1pbmFsIGRyaXZlciB0byB0aGVpciBSZWFkbGluZQorZXF1aXZhbGVudHMuCisKK0BpdGVtIGNvbW1lbnQtYmVnaW4KK0B2aW5kZXggY29tbWVudC1iZWdpbgorVGhlIHN0cmluZyB0byBpbnNlcnQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZSB3aGVuIHRoZQorQGNvZGV7aW5zZXJ0LWNvbW1lbnR9IGNvbW1hbmQgaXMgZXhlY3V0ZWQuICBUaGUgZGVmYXVsdCB2YWx1ZQoraXMgQGNvZGV7IiMifS4KKworQGl0ZW0gY29tcGxldGlvbi1pZ25vcmUtY2FzZQorSWYgc2V0IHRvIEBzYW1we29ufSwgUmVhZGxpbmUgcGVyZm9ybXMgZmlsZW5hbWUgbWF0Y2hpbmcgYW5kIGNvbXBsZXRpb24KK2luIGEgY2FzZS1pbnNlbnNpdGl2ZSBmYXNoaW9uLgorVGhlIGRlZmF1bHQgdmFsdWUgaXMgQHNhbXB7b2ZmfS4KKworQGl0ZW0gY29tcGxldGlvbi1xdWVyeS1pdGVtcworQHZpbmRleCBjb21wbGV0aW9uLXF1ZXJ5LWl0ZW1zCitUaGUgbnVtYmVyIG9mIHBvc3NpYmxlIGNvbXBsZXRpb25zIHRoYXQgZGV0ZXJtaW5lcyB3aGVuIHRoZSB1c2VyIGlzCithc2tlZCB3aGV0aGVyIHRoZSBsaXN0IG9mIHBvc3NpYmlsaXRpZXMgc2hvdWxkIGJlIGRpc3BsYXllZC4KK0lmIHRoZSBudW1iZXIgb2YgcG9zc2libGUgY29tcGxldGlvbnMgaXMgZ3JlYXRlciB0aGFuIHRoaXMgdmFsdWUsCitSZWFkbGluZSB3aWxsIGFzayB0aGUgdXNlciB3aGV0aGVyIG9yIG5vdCBoZSB3aXNoZXMgdG8gdmlldwordGhlbTsgb3RoZXJ3aXNlLCB0aGV5IGFyZSBzaW1wbHkgbGlzdGVkLgorVGhpcyB2YXJpYWJsZSBtdXN0IGJlIHNldCB0byBhbiBpbnRlZ2VyIHZhbHVlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAwLgorQSBuZWdhdGl2ZSB2YWx1ZSBtZWFucyBSZWFkbGluZSBzaG91bGQgbmV2ZXIgYXNrLgorVGhlIGRlZmF1bHQgbGltaXQgaXMgQGNvZGV7MTAwfS4KKworQGl0ZW0gY29udmVydC1tZXRhCitAdmluZGV4IGNvbnZlcnQtbWV0YQorSWYgc2V0IHRvIEBzYW1we29ufSwgUmVhZGxpbmUgd2lsbCBjb252ZXJ0IGNoYXJhY3RlcnMgd2l0aCB0aGUKK2VpZ2h0aCBiaXQgc2V0IHRvIGFuIEBzY3thc2NpaX0ga2V5IHNlcXVlbmNlIGJ5IHN0cmlwcGluZyB0aGUgZWlnaHRoCitiaXQgYW5kIHByZWZpeGluZyBhbiBAa2V5e0VTQ30gY2hhcmFjdGVyLCBjb252ZXJ0aW5nIHRoZW0gdG8gYQorbWV0YS1wcmVmaXhlZCBrZXkgc2VxdWVuY2UuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBAc2FtcHtvbn0uCisKK0BpdGVtIGRpc2FibGUtY29tcGxldGlvbgorQHZpbmRleCBkaXNhYmxlLWNvbXBsZXRpb24KK0lmIHNldCB0byBAc2FtcHtPbn0sIFJlYWRsaW5lIHdpbGwgaW5oaWJpdCB3b3JkIGNvbXBsZXRpb24uCitDb21wbGV0aW9uICBjaGFyYWN0ZXJzIHdpbGwgYmUgaW5zZXJ0ZWQgaW50byB0aGUgbGluZSBhcyBpZiB0aGV5IGhhZAorYmVlbiBtYXBwZWQgdG8gQGNvZGV7c2VsZi1pbnNlcnR9LiAgVGhlIGRlZmF1bHQgaXMgQHNhbXB7b2ZmfS4KKworQGl0ZW0gZWRpdGluZy1tb2RlCitAdmluZGV4IGVkaXRpbmctbW9kZQorVGhlIEBjb2Rle2VkaXRpbmctbW9kZX0gdmFyaWFibGUgY29udHJvbHMgd2hpY2ggZGVmYXVsdCBzZXQgb2YKK2tleSBiaW5kaW5ncyBpcyB1c2VkLiAgQnkgZGVmYXVsdCwgUmVhZGxpbmUgc3RhcnRzIHVwIGluIEVtYWNzIGVkaXRpbmcKK21vZGUsIHdoZXJlIHRoZSBrZXlzdHJva2VzIGFyZSBtb3N0IHNpbWlsYXIgdG8gRW1hY3MuICBUaGlzIHZhcmlhYmxlIGNhbiBiZQorc2V0IHRvIGVpdGhlciBAc2FtcHtlbWFjc30gb3IgQHNhbXB7dml9LgorCitAaXRlbSBlbmFibGUta2V5cGFkCitAdmluZGV4IGVuYWJsZS1rZXlwYWQKK1doZW4gc2V0IHRvIEBzYW1we29ufSwgUmVhZGxpbmUgd2lsbCB0cnkgdG8gZW5hYmxlIHRoZSBhcHBsaWNhdGlvbgora2V5cGFkIHdoZW4gaXQgaXMgY2FsbGVkLiAgU29tZSBzeXN0ZW1zIG5lZWQgdGhpcyB0byBlbmFibGUgdGhlCithcnJvdyBrZXlzLiAgVGhlIGRlZmF1bHQgaXMgQHNhbXB7b2ZmfS4KKworQGl0ZW0gZXhwYW5kLXRpbGRlCitAdmluZGV4IGV4cGFuZC10aWxkZQorSWYgc2V0IHRvIEBzYW1we29ufSwgdGlsZGUgZXhwYW5zaW9uIGlzIHBlcmZvcm1lZCB3aGVuIFJlYWRsaW5lCithdHRlbXB0cyB3b3JkIGNvbXBsZXRpb24uICBUaGUgZGVmYXVsdCBpcyBAc2FtcHtvZmZ9LgorCitAaXRlbSBoaXN0b3J5LXByZXNlcnZlLXBvaW50CitAdmluZGV4IGhpc3RvcnktcHJlc2VydmUtcG9pbnQKK0lmIHNldCB0byBAc2FtcHtvbn0sIHRoZSBoaXN0b3J5IGNvZGUgYXR0ZW1wdHMgdG8gcGxhY2UgcG9pbnQgYXQgdGhlCitzYW1lIGxvY2F0aW9uIG9uIGVhY2ggaGlzdG9yeSBsaW5lIHJldHJpZXZlZCB3aXRoIEBjb2Rle3ByZXZpb3VzLWhpc3Rvcnl9CitvciBAY29kZXtuZXh0LWhpc3Rvcnl9LiAgVGhlIGRlZmF1bHQgaXMgQHNhbXB7b2ZmfS4KKworQGl0ZW0gaG9yaXpvbnRhbC1zY3JvbGwtbW9kZQorQHZpbmRleCBob3Jpem9udGFsLXNjcm9sbC1tb2RlCitUaGlzIHZhcmlhYmxlIGNhbiBiZSBzZXQgdG8gZWl0aGVyIEBzYW1we29ufSBvciBAc2FtcHtvZmZ9LiAgU2V0dGluZyBpdAordG8gQHNhbXB7b259IG1lYW5zIHRoYXQgdGhlIHRleHQgb2YgdGhlIGxpbmVzIGJlaW5nIGVkaXRlZCB3aWxsIHNjcm9sbAoraG9yaXpvbnRhbGx5IG9uIGEgc2luZ2xlIHNjcmVlbiBsaW5lIHdoZW4gdGhleSBhcmUgbG9uZ2VyIHRoYW4gdGhlIHdpZHRoCitvZiB0aGUgc2NyZWVuLCBpbnN0ZWFkIG9mIHdyYXBwaW5nIG9udG8gYSBuZXcgc2NyZWVuIGxpbmUuICBCeSBkZWZhdWx0LAordGhpcyB2YXJpYWJsZSBpcyBzZXQgdG8gQHNhbXB7b2ZmfS4KKworQGl0ZW0gaW5wdXQtbWV0YQorQHZpbmRleCBpbnB1dC1tZXRhCitAdmluZGV4IG1ldGEtZmxhZworSWYgc2V0IHRvIEBzYW1we29ufSwgUmVhZGxpbmUgd2lsbCBlbmFibGUgZWlnaHQtYml0IGlucHV0IChpdAord2lsbCBub3QgY2xlYXIgdGhlIGVpZ2h0aCBiaXQgaW4gdGhlIGNoYXJhY3RlcnMgaXQgcmVhZHMpLAorcmVnYXJkbGVzcyBvZiB3aGF0IHRoZSB0ZXJtaW5hbCBjbGFpbXMgaXQgY2FuIHN1cHBvcnQuICBUaGUKK2RlZmF1bHQgdmFsdWUgaXMgQHNhbXB7b2ZmfS4gIFRoZSBuYW1lIEBjb2Rle21ldGEtZmxhZ30gaXMgYQorc3lub255bSBmb3IgdGhpcyB2YXJpYWJsZS4KKworQGl0ZW0gaXNlYXJjaC10ZXJtaW5hdG9ycworQHZpbmRleCBpc2VhcmNoLXRlcm1pbmF0b3JzCitUaGUgc3RyaW5nIG9mIGNoYXJhY3RlcnMgdGhhdCBzaG91bGQgdGVybWluYXRlIGFuIGluY3JlbWVudGFsIHNlYXJjaCB3aXRob3V0CitzdWJzZXF1ZW50bHkgZXhlY3V0aW5nIHRoZSBjaGFyYWN0ZXIgYXMgYSBjb21tYW5kIChAcHhyZWZ7U2VhcmNoaW5nfSkuCitJZiB0aGlzIHZhcmlhYmxlIGhhcyBub3QgYmVlbiBnaXZlbiBhIHZhbHVlLCB0aGUgY2hhcmFjdGVycyBAa2V5e0VTQ30gYW5kCitAa2Jke0MtSn0gd2lsbCB0ZXJtaW5hdGUgYW4gaW5jcmVtZW50YWwgc2VhcmNoLgorCitAaXRlbSBrZXltYXAKK0B2aW5kZXgga2V5bWFwCitTZXRzIFJlYWRsaW5lJ3MgaWRlYSBvZiB0aGUgY3VycmVudCBrZXltYXAgZm9yIGtleSBiaW5kaW5nIGNvbW1hbmRzLgorQWNjZXB0YWJsZSBAY29kZXtrZXltYXB9IG5hbWVzIGFyZQorQGNvZGV7ZW1hY3N9LAorQGNvZGV7ZW1hY3Mtc3RhbmRhcmR9LAorQGNvZGV7ZW1hY3MtbWV0YX0sCitAY29kZXtlbWFjcy1jdGx4fSwKK0Bjb2Rle3ZpfSwKK0Bjb2Rle3ZpLW1vdmV9LAorQGNvZGV7dmktY29tbWFuZH0sIGFuZAorQGNvZGV7dmktaW5zZXJ0fS4KK0Bjb2Rle3ZpfSBpcyBlcXVpdmFsZW50IHRvIEBjb2Rle3ZpLWNvbW1hbmR9OyBAY29kZXtlbWFjc30gaXMKK2VxdWl2YWxlbnQgdG8gQGNvZGV7ZW1hY3Mtc3RhbmRhcmR9LiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgQGNvZGV7ZW1hY3N9LgorVGhlIHZhbHVlIG9mIHRoZSBAY29kZXtlZGl0aW5nLW1vZGV9IHZhcmlhYmxlIGFsc28gYWZmZWN0cyB0aGUKK2RlZmF1bHQga2V5bWFwLgorCitAaXRlbSBtYXJrLWRpcmVjdG9yaWVzCitJZiBzZXQgdG8gQHNhbXB7b259LCBjb21wbGV0ZWQgZGlyZWN0b3J5IG5hbWVzIGhhdmUgYSBzbGFzaAorYXBwZW5kZWQuICBUaGUgZGVmYXVsdCBpcyBAc2FtcHtvbn0uCisKK0BpdGVtIG1hcmstbW9kaWZpZWQtbGluZXMKK0B2aW5kZXggbWFyay1tb2RpZmllZC1saW5lcworVGhpcyB2YXJpYWJsZSwgd2hlbiBzZXQgdG8gQHNhbXB7b259LCBjYXVzZXMgUmVhZGxpbmUgdG8gZGlzcGxheSBhbgorYXN0ZXJpc2sgKEBzYW1weyp9KSBhdCB0aGUgc3RhcnQgb2YgaGlzdG9yeSBsaW5lcyB3aGljaCBoYXZlIGJlZW4gbW9kaWZpZWQuCitUaGlzIHZhcmlhYmxlIGlzIEBzYW1we29mZn0gYnkgZGVmYXVsdC4KKworQGl0ZW0gbWFyay1zeW1saW5rZWQtZGlyZWN0b3JpZXMKK0B2aW5kZXggbWFyay1zeW1saW5rZWQtZGlyZWN0b3JpZXMKK0lmIHNldCB0byBAc2FtcHtvbn0sIGNvbXBsZXRlZCBuYW1lcyB3aGljaCBhcmUgc3ltYm9saWMgbGlua3MKK3RvIGRpcmVjdG9yaWVzIGhhdmUgYSBzbGFzaCBhcHBlbmRlZCAoc3ViamVjdCB0byB0aGUgdmFsdWUgb2YKK0Bjb2Rle21hcmstZGlyZWN0b3JpZXN9KS4KK1RoZSBkZWZhdWx0IGlzIEBzYW1we29mZn0uCisKK0BpdGVtIG1hdGNoLWhpZGRlbi1maWxlcworQHZpbmRleCBtYXRjaC1oaWRkZW4tZmlsZXMKK1RoaXMgdmFyaWFibGUsIHdoZW4gc2V0IHRvIEBzYW1we29ufSwgY2F1c2VzIFJlYWRsaW5lIHRvIG1hdGNoIGZpbGVzIHdob3NlCituYW1lcyBiZWdpbiB3aXRoIGEgQHNhbXB7Ln0gKGhpZGRlbiBmaWxlcykgd2hlbiBwZXJmb3JtaW5nIGZpbGVuYW1lCitjb21wbGV0aW9uLCB1bmxlc3MgdGhlIGxlYWRpbmcgQHNhbXB7Ln0gaXMKK3N1cHBsaWVkIGJ5IHRoZSB1c2VyIGluIHRoZSBmaWxlbmFtZSB0byBiZSBjb21wbGV0ZWQuCitUaGlzIHZhcmlhYmxlIGlzIEBzYW1we29ufSBieSBkZWZhdWx0LgorCitAaXRlbSBvdXRwdXQtbWV0YQorQHZpbmRleCBvdXRwdXQtbWV0YQorSWYgc2V0IHRvIEBzYW1we29ufSwgUmVhZGxpbmUgd2lsbCBkaXNwbGF5IGNoYXJhY3RlcnMgd2l0aCB0aGUKK2VpZ2h0aCBiaXQgc2V0IGRpcmVjdGx5IHJhdGhlciB0aGFuIGFzIGEgbWV0YS1wcmVmaXhlZCBlc2NhcGUKK3NlcXVlbmNlLiAgVGhlIGRlZmF1bHQgaXMgQHNhbXB7b2ZmfS4KKworQGl0ZW0gcGFnZS1jb21wbGV0aW9ucworQHZpbmRleCBwYWdlLWNvbXBsZXRpb25zCitJZiBzZXQgdG8gQHNhbXB7b259LCBSZWFkbGluZSB1c2VzIGFuIGludGVybmFsIEBjb2Rle21vcmV9LWxpa2UgcGFnZXIKK3RvIGRpc3BsYXkgYSBzY3JlZW5mdWwgb2YgcG9zc2libGUgY29tcGxldGlvbnMgYXQgYSB0aW1lLgorVGhpcyB2YXJpYWJsZSBpcyBAc2FtcHtvbn0gYnkgZGVmYXVsdC4KKworQGl0ZW0gcHJpbnQtY29tcGxldGlvbnMtaG9yaXpvbnRhbGx5CitJZiBzZXQgdG8gQHNhbXB7b259LCBSZWFkbGluZSB3aWxsIGRpc3BsYXkgY29tcGxldGlvbnMgd2l0aCBtYXRjaGVzCitzb3J0ZWQgaG9yaXpvbnRhbGx5IGluIGFscGhhYmV0aWNhbCBvcmRlciwgcmF0aGVyIHRoYW4gZG93biB0aGUgc2NyZWVuLgorVGhlIGRlZmF1bHQgaXMgQHNhbXB7b2ZmfS4KKworQGl0ZW0gc2hvdy1hbGwtaWYtYW1iaWd1b3VzCitAdmluZGV4IHNob3ctYWxsLWlmLWFtYmlndW91cworVGhpcyBhbHRlcnMgdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgdGhlIGNvbXBsZXRpb24gZnVuY3Rpb25zLiAgSWYKK3NldCB0byBAc2FtcHtvbn0sIAord29yZHMgd2hpY2ggaGF2ZSBtb3JlIHRoYW4gb25lIHBvc3NpYmxlIGNvbXBsZXRpb24gY2F1c2UgdGhlCittYXRjaGVzIHRvIGJlIGxpc3RlZCBpbW1lZGlhdGVseSBpbnN0ZWFkIG9mIHJpbmdpbmcgdGhlIGJlbGwuCitUaGUgZGVmYXVsdCB2YWx1ZSBpcyBAc2FtcHtvZmZ9LgorCitAaXRlbSBzaG93LWFsbC1pZi11bm1vZGlmaWVkCitAdmluZGV4IHNob3ctYWxsLWlmLXVubW9kaWZpZWQKK1RoaXMgYWx0ZXJzIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBjb21wbGV0aW9uIGZ1bmN0aW9ucyBpbgorYSBmYXNoaW9uIHNpbWlsYXIgdG8gQHZhcntzaG93LWFsbC1pZi1hbWJpZ3VvdXN9LgorSWYgc2V0IHRvIEBzYW1we29ufSwgCit3b3JkcyB3aGljaCBoYXZlIG1vcmUgdGhhbiBvbmUgcG9zc2libGUgY29tcGxldGlvbiB3aXRob3V0IGFueQorcG9zc2libGUgcGFydGlhbCBjb21wbGV0aW9uICh0aGUgcG9zc2libGUgY29tcGxldGlvbnMgZG9uJ3Qgc2hhcmUKK2EgY29tbW9uIHByZWZpeCkgY2F1c2UgdGhlIG1hdGNoZXMgdG8gYmUgbGlzdGVkIGltbWVkaWF0ZWx5IGluc3RlYWQKK29mIHJpbmdpbmcgdGhlIGJlbGwuCitUaGUgZGVmYXVsdCB2YWx1ZSBpcyBAc2FtcHtvZmZ9LgorCitAaXRlbSB2aXNpYmxlLXN0YXRzCitAdmluZGV4IHZpc2libGUtc3RhdHMKK0lmIHNldCB0byBAc2FtcHtvbn0sIGEgY2hhcmFjdGVyIGRlbm90aW5nIGEgZmlsZSdzIHR5cGUKK2lzIGFwcGVuZGVkIHRvIHRoZSBmaWxlbmFtZSB3aGVuIGxpc3RpbmcgcG9zc2libGUKK2NvbXBsZXRpb25zLiAgVGhlIGRlZmF1bHQgaXMgQHNhbXB7b2ZmfS4KKworQGVuZCB0YWJsZQorCitAaXRlbSBLZXkgQmluZGluZ3MKK1RoZSBzeW50YXggZm9yIGNvbnRyb2xsaW5nIGtleSBiaW5kaW5ncyBpbiB0aGUgaW5pdCBmaWxlIGlzCitzaW1wbGUuICBGaXJzdCB5b3UgbmVlZCB0byBmaW5kIHRoZSBuYW1lIG9mIHRoZSBjb21tYW5kIHRoYXQgeW91Cit3YW50IHRvIGNoYW5nZS4gIFRoZSBmb2xsb3dpbmcgc2VjdGlvbnMgY29udGFpbiB0YWJsZXMgb2YgdGhlIGNvbW1hbmQKK25hbWUsIHRoZSBkZWZhdWx0IGtleWJpbmRpbmcsIGlmIGFueSwgYW5kIGEgc2hvcnQgZGVzY3JpcHRpb24gb2Ygd2hhdAordGhlIGNvbW1hbmQgZG9lcy4KKworT25jZSB5b3Uga25vdyB0aGUgbmFtZSBvZiB0aGUgY29tbWFuZCwgc2ltcGx5IHBsYWNlIG9uIGEgbGluZQoraW4gdGhlIGluaXQgZmlsZSB0aGUgbmFtZSBvZiB0aGUga2V5Cit5b3Ugd2lzaCB0byBiaW5kIHRoZSBjb21tYW5kIHRvLCBhIGNvbG9uLCBhbmQgdGhlbiB0aGUgbmFtZSBvZiB0aGUKK2NvbW1hbmQuICBUaGUgbmFtZSBvZiB0aGUga2V5CitjYW4gYmUgZXhwcmVzc2VkIGluIGRpZmZlcmVudCB3YXlzLCBkZXBlbmRpbmcgb24gd2hhdCB5b3UgZmluZCBtb3N0Citjb21mb3J0YWJsZS4KKworSW4gYWRkaXRpb24gdG8gY29tbWFuZCBuYW1lcywgcmVhZGxpbmUgYWxsb3dzIGtleXMgdG8gYmUgYm91bmQKK3RvIGEgc3RyaW5nIHRoYXQgaXMgaW5zZXJ0ZWQgd2hlbiB0aGUga2V5IGlzIHByZXNzZWQgKGEgQHZhcnttYWNyb30pLgorCitAaWZzZXQgQmFzaEZlYXR1cmVzCitUaGUgQHd7QGNvZGV7YmluZCAtcH19IGNvbW1hbmQgZGlzcGxheXMgUmVhZGxpbmUgZnVuY3Rpb24gbmFtZXMgYW5kCitiaW5kaW5ncyBpbiBhIGZvcm1hdCB0aGF0IGNhbiBwdXQgZGlyZWN0bHkgaW50byBhbiBpbml0aWFsaXphdGlvbiBmaWxlLgorQHhyZWZ7QmFzaCBCdWlsdGluc30uCitAZW5kIGlmc2V0CisKK0B0YWJsZSBAYXNpcworQGl0ZW0gQHd7QHZhcntrZXluYW1lfTogQHZhcntmdW5jdGlvbi1uYW1lfSBvciBAdmFye21hY3JvfX0KK0B2YXJ7a2V5bmFtZX0gaXMgdGhlIG5hbWUgb2YgYSBrZXkgc3BlbGxlZCBvdXQgaW4gRW5nbGlzaC4gIEZvciBleGFtcGxlOgorQGV4YW1wbGUKK0NvbnRyb2wtdTogdW5pdmVyc2FsLWFyZ3VtZW50CitNZXRhLVJ1Ym91dDogYmFja3dhcmQta2lsbC13b3JkCitDb250cm9sLW86ICI+IG91dHB1dCIKK0BlbmQgZXhhbXBsZQorCitJbiB0aGUgYWJvdmUgZXhhbXBsZSwgQGtiZHtDLXV9IGlzIGJvdW5kIHRvIHRoZSBmdW5jdGlvbgorQGNvZGV7dW5pdmVyc2FsLWFyZ3VtZW50fSwKK0BrYmR7TS1ERUx9IGlzIGJvdW5kIHRvIHRoZSBmdW5jdGlvbiBAY29kZXtiYWNrd2FyZC1raWxsLXdvcmR9LCBhbmQKK0BrYmR7Qy1vfSBpcyBib3VuZCB0byBydW4gdGhlIG1hY3JvCitleHByZXNzZWQgb24gdGhlIHJpZ2h0IGhhbmQgc2lkZSAodGhhdCBpcywgdG8gaW5zZXJ0IHRoZSB0ZXh0CitAc2FtcHs+IG91dHB1dH0gaW50byB0aGUgbGluZSkuCisKK0EgbnVtYmVyIG9mIHN5bWJvbGljIGNoYXJhY3RlciBuYW1lcyBhcmUgcmVjb2duaXplZCB3aGlsZQorcHJvY2Vzc2luZyB0aGlzIGtleSBiaW5kaW5nIHN5bnRheDoKK0B2YXJ7REVMfSwKK0B2YXJ7RVNDfSwKK0B2YXJ7RVNDQVBFfSwKK0B2YXJ7TEZEfSwKK0B2YXJ7TkVXTElORX0sCitAdmFye1JFVH0sCitAdmFye1JFVFVSTn0sCitAdmFye1JVQk9VVH0sCitAdmFye1NQQUNFfSwKK0B2YXJ7U1BDfSwKK2FuZAorQHZhcntUQUJ9LgorCitAaXRlbSBAd3siQHZhcntrZXlzZXF9IjogQHZhcntmdW5jdGlvbi1uYW1lfSBvciBAdmFye21hY3JvfX0KK0B2YXJ7a2V5c2VxfSBkaWZmZXJzIGZyb20gQHZhcntrZXluYW1lfSBhYm92ZSBpbiB0aGF0IHN0cmluZ3MKK2Rlbm90aW5nIGFuIGVudGlyZSBrZXkgc2VxdWVuY2UgY2FuIGJlIHNwZWNpZmllZCwgYnkgcGxhY2luZwordGhlIGtleSBzZXF1ZW5jZSBpbiBkb3VibGUgcXVvdGVzLiAgU29tZSBAc2N7Z251fSBFbWFjcyBzdHlsZSBrZXkKK2VzY2FwZXMgY2FuIGJlIHVzZWQsIGFzIGluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSwgYnV0IHRoZQorc3BlY2lhbCBjaGFyYWN0ZXIgbmFtZXMgYXJlIG5vdCByZWNvZ25pemVkLgorCitAZXhhbXBsZQorIlxDLXUiOiB1bml2ZXJzYWwtYXJndW1lbnQKKyJcQy14XEMtciI6IHJlLXJlYWQtaW5pdC1maWxlCisiXGVbMTF+IjogIkZ1bmN0aW9uIEtleSAxIgorQGVuZCBleGFtcGxlCisKK0luIHRoZSBhYm92ZSBleGFtcGxlLCBAa2Jke0MtdX0gaXMgYWdhaW4gYm91bmQgdG8gdGhlIGZ1bmN0aW9uCitAY29kZXt1bml2ZXJzYWwtYXJndW1lbnR9IChqdXN0IGFzIGl0IHdhcyBpbiB0aGUgZmlyc3QgZXhhbXBsZSksCitAc2FtcHtAa2Jke0MteH0gQGtiZHtDLXJ9fSBpcyBib3VuZCB0byB0aGUgZnVuY3Rpb24gQGNvZGV7cmUtcmVhZC1pbml0LWZpbGV9LAorYW5kIEBzYW1we0BrZXl7RVNDfSBAa2V5e1t9IEBrZXl7MX0gQGtleXsxfSBAa2V5e359fSBpcyBib3VuZCB0byBpbnNlcnQKK3RoZSB0ZXh0IEBzYW1we0Z1bmN0aW9uIEtleSAxfS4KKworQGVuZCB0YWJsZQorCitUaGUgZm9sbG93aW5nIEBzY3tnbnV9IEVtYWNzIHN0eWxlIGVzY2FwZSBzZXF1ZW5jZXMgYXJlIGF2YWlsYWJsZSB3aGVuCitzcGVjaWZ5aW5nIGtleSBzZXF1ZW5jZXM6CisKK0B0YWJsZSBAY29kZQorQGl0ZW0gQGtiZHtcQy19Citjb250cm9sIHByZWZpeAorQGl0ZW0gQGtiZHtcTS19CittZXRhIHByZWZpeAorQGl0ZW0gQGtiZHtcZX0KK2FuIGVzY2FwZSBjaGFyYWN0ZXIKK0BpdGVtIEBrYmR7XFx9CitiYWNrc2xhc2gKK0BpdGVtIEBrYmR7XCJ9CitAa2V5eyJ9LCBhIGRvdWJsZSBxdW90YXRpb24gbWFyaworQGl0ZW0gQGtiZHtcJ30KK0BrZXl7J30sIGEgc2luZ2xlIHF1b3RlIG9yIGFwb3N0cm9waGUKK0BlbmQgdGFibGUKKworSW4gYWRkaXRpb24gdG8gdGhlIEBzY3tnbnV9IEVtYWNzIHN0eWxlIGVzY2FwZSBzZXF1ZW5jZXMsIGEgc2Vjb25kCitzZXQgb2YgYmFja3NsYXNoIGVzY2FwZXMgaXMgYXZhaWxhYmxlOgorCitAdGFibGUgQGNvZGUKK0BpdGVtIFxhCithbGVydCAoYmVsbCkKK0BpdGVtIFxiCitiYWNrc3BhY2UKK0BpdGVtIFxkCitkZWxldGUKK0BpdGVtIFxmCitmb3JtIGZlZWQKK0BpdGVtIFxuCituZXdsaW5lCitAaXRlbSBccgorY2FycmlhZ2UgcmV0dXJuCitAaXRlbSBcdAoraG9yaXpvbnRhbCB0YWIKK0BpdGVtIFx2Cit2ZXJ0aWNhbCB0YWIKK0BpdGVtIFxAdmFye25ubn0KK3RoZSBlaWdodC1iaXQgY2hhcmFjdGVyIHdob3NlIHZhbHVlIGlzIHRoZSBvY3RhbCB2YWx1ZSBAdmFye25ubn0KKyhvbmUgdG8gdGhyZWUgZGlnaXRzKQorQGl0ZW0gXHhAdmFye0hIfQordGhlIGVpZ2h0LWJpdCBjaGFyYWN0ZXIgd2hvc2UgdmFsdWUgaXMgdGhlIGhleGFkZWNpbWFsIHZhbHVlIEB2YXJ7SEh9Cisob25lIG9yIHR3byBoZXggZGlnaXRzKQorQGVuZCB0YWJsZQorCitXaGVuIGVudGVyaW5nIHRoZSB0ZXh0IG9mIGEgbWFjcm8sIHNpbmdsZSBvciBkb3VibGUgcXVvdGVzIG11c3QKK2JlIHVzZWQgdG8gaW5kaWNhdGUgYSBtYWNybyBkZWZpbml0aW9uLgorVW5xdW90ZWQgdGV4dCBpcyBhc3N1bWVkIHRvIGJlIGEgZnVuY3Rpb24gbmFtZS4KK0luIHRoZSBtYWNybyBib2R5LCB0aGUgYmFja3NsYXNoIGVzY2FwZXMgZGVzY3JpYmVkIGFib3ZlIGFyZSBleHBhbmRlZC4KK0JhY2tzbGFzaCB3aWxsIHF1b3RlIGFueSBvdGhlciBjaGFyYWN0ZXIgaW4gdGhlIG1hY3JvIHRleHQsCitpbmNsdWRpbmcgQHNhbXB7In0gYW5kIEBzYW1weyd9LgorRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgYmluZGluZyB3aWxsIG1ha2UgQHNhbXB7QGtiZHtDLXh9IFx9CitpbnNlcnQgYSBzaW5nbGUgQHNhbXB7XH0gaW50byB0aGUgbGluZToKK0BleGFtcGxlCisiXEMteFxcIjogIlxcIgorQGVuZCBleGFtcGxlCisKK0BlbmQgdGFibGUKKworQG5vZGUgQ29uZGl0aW9uYWwgSW5pdCBDb25zdHJ1Y3RzCitAc3Vic2VjdGlvbiBDb25kaXRpb25hbCBJbml0IENvbnN0cnVjdHMKKworUmVhZGxpbmUgaW1wbGVtZW50cyBhIGZhY2lsaXR5IHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBjb25kaXRpb25hbAorY29tcGlsYXRpb24gZmVhdHVyZXMgb2YgdGhlIEMgcHJlcHJvY2Vzc29yIHdoaWNoIGFsbG93cyBrZXkKK2JpbmRpbmdzIGFuZCB2YXJpYWJsZSBzZXR0aW5ncyB0byBiZSBwZXJmb3JtZWQgYXMgdGhlIHJlc3VsdAorb2YgdGVzdHMuICBUaGVyZSBhcmUgZm91ciBwYXJzZXIgZGlyZWN0aXZlcyB1c2VkLgorCitAdGFibGUgQGNvZGUKK0BpdGVtICRpZgorVGhlIEBjb2RleyRpZn0gY29uc3RydWN0IGFsbG93cyBiaW5kaW5ncyB0byBiZSBtYWRlIGJhc2VkIG9uIHRoZQorZWRpdGluZyBtb2RlLCB0aGUgdGVybWluYWwgYmVpbmcgdXNlZCwgb3IgdGhlIGFwcGxpY2F0aW9uIHVzaW5nCitSZWFkbGluZS4gIFRoZSB0ZXh0IG9mIHRoZSB0ZXN0IGV4dGVuZHMgdG8gdGhlIGVuZCBvZiB0aGUgbGluZTsKK25vIGNoYXJhY3RlcnMgYXJlIHJlcXVpcmVkIHRvIGlzb2xhdGUgaXQuCisKK0B0YWJsZSBAY29kZQorQGl0ZW0gbW9kZQorVGhlIEBjb2Rle21vZGU9fSBmb3JtIG9mIHRoZSBAY29kZXskaWZ9IGRpcmVjdGl2ZSBpcyB1c2VkIHRvIHRlc3QKK3doZXRoZXIgUmVhZGxpbmUgaXMgaW4gQGNvZGV7ZW1hY3N9IG9yIEBjb2Rle3ZpfSBtb2RlLgorVGhpcyBtYXkgYmUgdXNlZCBpbiBjb25qdW5jdGlvbgord2l0aCB0aGUgQHNhbXB7c2V0IGtleW1hcH0gY29tbWFuZCwgZm9yIGluc3RhbmNlLCB0byBzZXQgYmluZGluZ3MgaW4KK3RoZSBAY29kZXtlbWFjcy1zdGFuZGFyZH0gYW5kIEBjb2Rle2VtYWNzLWN0bHh9IGtleW1hcHMgb25seSBpZgorUmVhZGxpbmUgaXMgc3RhcnRpbmcgb3V0IGluIEBjb2Rle2VtYWNzfSBtb2RlLgorCitAaXRlbSB0ZXJtCitUaGUgQGNvZGV7dGVybT19IGZvcm0gbWF5IGJlIHVzZWQgdG8gaW5jbHVkZSB0ZXJtaW5hbC1zcGVjaWZpYwora2V5IGJpbmRpbmdzLCBwZXJoYXBzIHRvIGJpbmQgdGhlIGtleSBzZXF1ZW5jZXMgb3V0cHV0IGJ5IHRoZQordGVybWluYWwncyBmdW5jdGlvbiBrZXlzLiAgVGhlIHdvcmQgb24gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlCitAc2FtcHs9fSBpcyB0ZXN0ZWQgYWdhaW5zdCBib3RoIHRoZSBmdWxsIG5hbWUgb2YgdGhlIHRlcm1pbmFsIGFuZAordGhlIHBvcnRpb24gb2YgdGhlIHRlcm1pbmFsIG5hbWUgYmVmb3JlIHRoZSBmaXJzdCBAc2FtcHstfS4gIFRoaXMKK2FsbG93cyBAY29kZXtzdW59IHRvIG1hdGNoIGJvdGggQGNvZGV7c3VufSBhbmQgQGNvZGV7c3VuLWNtZH0sCitmb3IgaW5zdGFuY2UuCisKK0BpdGVtIGFwcGxpY2F0aW9uCitUaGUgQHZhcnthcHBsaWNhdGlvbn0gY29uc3RydWN0IGlzIHVzZWQgdG8gaW5jbHVkZQorYXBwbGljYXRpb24tc3BlY2lmaWMgc2V0dGluZ3MuICBFYWNoIHByb2dyYW0gdXNpbmcgdGhlIFJlYWRsaW5lCitsaWJyYXJ5IHNldHMgdGhlIEB2YXJ7YXBwbGljYXRpb24gbmFtZX0sIGFuZCB5b3UgY2FuIHRlc3QgZm9yCithIHBhcnRpY3VsYXIgdmFsdWUuIAorVGhpcyBjb3VsZCBiZSB1c2VkIHRvIGJpbmQga2V5IHNlcXVlbmNlcyB0byBmdW5jdGlvbnMgdXNlZnVsIGZvcgorYSBzcGVjaWZpYyBwcm9ncmFtLiAgRm9yIGluc3RhbmNlLCB0aGUgZm9sbG93aW5nIGNvbW1hbmQgYWRkcyBhCitrZXkgc2VxdWVuY2UgdGhhdCBxdW90ZXMgdGhlIGN1cnJlbnQgb3IgcHJldmlvdXMgd29yZCBpbiBCYXNoOgorQGV4YW1wbGUKKyRpZiBCYXNoCisjIFF1b3RlIHRoZSBjdXJyZW50IG9yIHByZXZpb3VzIHdvcmQKKyJcQy14cSI6ICJcZWJcIlxlZlwiIgorJGVuZGlmCitAZW5kIGV4YW1wbGUKK0BlbmQgdGFibGUKKworQGl0ZW0gJGVuZGlmCitUaGlzIGNvbW1hbmQsIGFzIHNlZW4gaW4gdGhlIHByZXZpb3VzIGV4YW1wbGUsIHRlcm1pbmF0ZXMgYW4KK0Bjb2RleyRpZn0gY29tbWFuZC4KKworQGl0ZW0gJGVsc2UKK0NvbW1hbmRzIGluIHRoaXMgYnJhbmNoIG9mIHRoZSBAY29kZXskaWZ9IGRpcmVjdGl2ZSBhcmUgZXhlY3V0ZWQgaWYKK3RoZSB0ZXN0IGZhaWxzLgorCitAaXRlbSAkaW5jbHVkZQorVGhpcyBkaXJlY3RpdmUgdGFrZXMgYSBzaW5nbGUgZmlsZW5hbWUgYXMgYW4gYXJndW1lbnQgYW5kIHJlYWRzIGNvbW1hbmRzCithbmQgYmluZGluZ3MgZnJvbSB0aGF0IGZpbGUuCitGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBkaXJlY3RpdmUgcmVhZHMgZnJvbSBAZmlsZXsvZXRjL2lucHV0cmN9OgorQGV4YW1wbGUKKyRpbmNsdWRlIC9ldGMvaW5wdXRyYworQGVuZCBleGFtcGxlCitAZW5kIHRhYmxlCisKK0Bub2RlIFNhbXBsZSBJbml0IEZpbGUKK0BzdWJzZWN0aW9uIFNhbXBsZSBJbml0IEZpbGUKKworSGVyZSBpcyBhbiBleGFtcGxlIG9mIGFuIEB2YXJ7aW5wdXRyY30gZmlsZS4gIFRoaXMgaWxsdXN0cmF0ZXMga2V5CitiaW5kaW5nLCB2YXJpYWJsZSBhc3NpZ25tZW50LCBhbmQgY29uZGl0aW9uYWwgc3ludGF4LgorCitAZXhhbXBsZQorQHBhZ2UKKyMgVGhpcyBmaWxlIGNvbnRyb2xzIHRoZSBiZWhhdmlvdXIgb2YgbGluZSBpbnB1dCBlZGl0aW5nIGZvcgorIyBwcm9ncmFtcyB0aGF0IHVzZSB0aGUgR05VIFJlYWRsaW5lIGxpYnJhcnkuICBFeGlzdGluZworIyBwcm9ncmFtcyBpbmNsdWRlIEZUUCwgQmFzaCwgYW5kIEdEQi4KKyMKKyMgWW91IGNhbiByZS1yZWFkIHRoZSBpbnB1dHJjIGZpbGUgd2l0aCBDLXggQy1yLgorIyBMaW5lcyBiZWdpbm5pbmcgd2l0aCAnIycgYXJlIGNvbW1lbnRzLgorIworIyBGaXJzdCwgaW5jbHVkZSBhbnkgc3lzdGVtd2lkZSBiaW5kaW5ncyBhbmQgdmFyaWFibGUKKyMgYXNzaWdubWVudHMgZnJvbSAvZXRjL0lucHV0cmMKKyRpbmNsdWRlIC9ldGMvSW5wdXRyYworCisjCisjIFNldCB2YXJpb3VzIGJpbmRpbmdzIGZvciBlbWFjcyBtb2RlLgorCitzZXQgZWRpdGluZy1tb2RlIGVtYWNzIAorCiskaWYgbW9kZT1lbWFjcworCitNZXRhLUNvbnRyb2wtaDoJYmFja3dhcmQta2lsbC13b3JkCVRleHQgYWZ0ZXIgdGhlIGZ1bmN0aW9uIG5hbWUgaXMgaWdub3JlZAorCisjCisjIEFycm93IGtleXMgaW4ga2V5cGFkIG1vZGUKKyMKKyMiXE0tT0QiOiAgICAgICAgYmFja3dhcmQtY2hhcgorIyJcTS1PQyI6ICAgICAgICBmb3J3YXJkLWNoYXIKKyMiXE0tT0EiOiAgICAgICAgcHJldmlvdXMtaGlzdG9yeQorIyJcTS1PQiI6ICAgICAgICBuZXh0LWhpc3RvcnkKKyMKKyMgQXJyb3cga2V5cyBpbiBBTlNJIG1vZGUKKyMKKyJcTS1bRCI6ICAgICAgICBiYWNrd2FyZC1jaGFyCisiXE0tW0MiOiAgICAgICAgZm9yd2FyZC1jaGFyCisiXE0tW0EiOiAgICAgICAgcHJldmlvdXMtaGlzdG9yeQorIlxNLVtCIjogICAgICAgIG5leHQtaGlzdG9yeQorIworIyBBcnJvdyBrZXlzIGluIDggYml0IGtleXBhZCBtb2RlCisjCisjIlxNLVxDLU9EIjogICAgICAgYmFja3dhcmQtY2hhcgorIyJcTS1cQy1PQyI6ICAgICAgIGZvcndhcmQtY2hhcgorIyJcTS1cQy1PQSI6ICAgICAgIHByZXZpb3VzLWhpc3RvcnkKKyMiXE0tXEMtT0IiOiAgICAgICBuZXh0LWhpc3RvcnkKKyMKKyMgQXJyb3cga2V5cyBpbiA4IGJpdCBBTlNJIG1vZGUKKyMKKyMiXE0tXEMtW0QiOiAgICAgICBiYWNrd2FyZC1jaGFyCisjIlxNLVxDLVtDIjogICAgICAgZm9yd2FyZC1jaGFyCisjIlxNLVxDLVtBIjogICAgICAgcHJldmlvdXMtaGlzdG9yeQorIyJcTS1cQy1bQiI6ICAgICAgIG5leHQtaGlzdG9yeQorCitDLXE6IHF1b3RlZC1pbnNlcnQKKworJGVuZGlmCisKKyMgQW4gb2xkLXN0eWxlIGJpbmRpbmcuICBUaGlzIGhhcHBlbnMgdG8gYmUgdGhlIGRlZmF1bHQuCitUQUI6IGNvbXBsZXRlCisKKyMgTWFjcm9zIHRoYXQgYXJlIGNvbnZlbmllbnQgZm9yIHNoZWxsIGludGVyYWN0aW9uCiskaWYgQmFzaAorIyBlZGl0IHRoZSBwYXRoCisiXEMteHAiOiAiUEFUSD0kQHtQQVRIQH1cZVxDLWVcQy1hXGVmXEMtZiIKKyMgcHJlcGFyZSB0byB0eXBlIGEgcXVvdGVkIHdvcmQgLS0KKyMgaW5zZXJ0IG9wZW4gYW5kIGNsb3NlIGRvdWJsZSBxdW90ZXMKKyMgYW5kIG1vdmUgdG8ganVzdCBhZnRlciB0aGUgb3BlbiBxdW90ZQorIlxDLXhcIiI6ICJcIlwiXEMtYiIKKyMgaW5zZXJ0IGEgYmFja3NsYXNoICh0ZXN0aW5nIGJhY2tzbGFzaCBlc2NhcGVzCisjIGluIHNlcXVlbmNlcyBhbmQgbWFjcm9zKQorIlxDLXhcXCI6ICJcXCIKKyMgUXVvdGUgdGhlIGN1cnJlbnQgb3IgcHJldmlvdXMgd29yZAorIlxDLXhxIjogIlxlYlwiXGVmXCIiCisjIEFkZCBhIGJpbmRpbmcgdG8gcmVmcmVzaCB0aGUgbGluZSwgd2hpY2ggaXMgdW5ib3VuZAorIlxDLXhyIjogcmVkcmF3LWN1cnJlbnQtbGluZQorIyBFZGl0IHZhcmlhYmxlIG9uIGN1cnJlbnQgbGluZS4KKyJcTS1cQy12IjogIlxDLWFcQy1rJFxDLXlcTS1cQy1lXEMtYVxDLXk9IgorJGVuZGlmCisKKyMgdXNlIGEgdmlzaWJsZSBiZWxsIGlmIG9uZSBpcyBhdmFpbGFibGUKK3NldCBiZWxsLXN0eWxlIHZpc2libGUKKworIyBkb24ndCBzdHJpcCBjaGFyYWN0ZXJzIHRvIDcgYml0cyB3aGVuIHJlYWRpbmcKK3NldCBpbnB1dC1tZXRhIG9uCisKKyMgYWxsb3cgaXNvLWxhdGluMSBjaGFyYWN0ZXJzIHRvIGJlIGluc2VydGVkIHJhdGhlcgorIyB0aGFuIGNvbnZlcnRlZCB0byBwcmVmaXgtbWV0YSBzZXF1ZW5jZXMKK3NldCBjb252ZXJ0LW1ldGEgb2ZmCisKKyMgZGlzcGxheSBjaGFyYWN0ZXJzIHdpdGggdGhlIGVpZ2h0aCBiaXQgc2V0IGRpcmVjdGx5CisjIHJhdGhlciB0aGFuIGFzIG1ldGEtcHJlZml4ZWQgY2hhcmFjdGVycworc2V0IG91dHB1dC1tZXRhIG9uCisKKyMgaWYgdGhlcmUgYXJlIG1vcmUgdGhhbiAxNTAgcG9zc2libGUgY29tcGxldGlvbnMgZm9yCisjIGEgd29yZCwgYXNrIHRoZSB1c2VyIGlmIGhlIHdhbnRzIHRvIHNlZSBhbGwgb2YgdGhlbQorc2V0IGNvbXBsZXRpb24tcXVlcnktaXRlbXMgMTUwCisKKyMgRm9yIEZUUAorJGlmIEZ0cAorIlxDLXhnIjogImdldCBcTS0/IgorIlxDLXh0IjogInB1dCBcTS0/IgorIlxNLS4iOiB5YW5rLWxhc3QtYXJnCiskZW5kaWYKK0BlbmQgZXhhbXBsZQorCitAbm9kZSBCaW5kYWJsZSBSZWFkbGluZSBDb21tYW5kcworQHNlY3Rpb24gQmluZGFibGUgUmVhZGxpbmUgQ29tbWFuZHMKKworQG1lbnUKKyogQ29tbWFuZHMgRm9yIE1vdmluZzo6CQlNb3ZpbmcgYWJvdXQgdGhlIGxpbmUuCisqIENvbW1hbmRzIEZvciBIaXN0b3J5OjoJR2V0dGluZyBhdCBwcmV2aW91cyBsaW5lcy4KKyogQ29tbWFuZHMgRm9yIFRleHQ6OgkJQ29tbWFuZHMgZm9yIGNoYW5naW5nIHRleHQuCisqIENvbW1hbmRzIEZvciBLaWxsaW5nOjoJQ29tbWFuZHMgZm9yIGtpbGxpbmcgYW5kIHlhbmtpbmcuCisqIE51bWVyaWMgQXJndW1lbnRzOjoJCVNwZWNpZnlpbmcgbnVtZXJpYyBhcmd1bWVudHMsIHJlcGVhdCBjb3VudHMuCisqIENvbW1hbmRzIEZvciBDb21wbGV0aW9uOjoJR2V0dGluZyBSZWFkbGluZSB0byBkbyB0aGUgdHlwaW5nIGZvciB5b3UuCisqIEtleWJvYXJkIE1hY3Jvczo6CQlTYXZpbmcgYW5kIHJlLWV4ZWN1dGluZyB0eXBlZCBjaGFyYWN0ZXJzCisqIE1pc2NlbGxhbmVvdXMgQ29tbWFuZHM6OglPdGhlciBtaXNjZWxsYW5lb3VzIGNvbW1hbmRzLgorQGVuZCBtZW51CisKK1RoaXMgc2VjdGlvbiBkZXNjcmliZXMgUmVhZGxpbmUgY29tbWFuZHMgdGhhdCBtYXkgYmUgYm91bmQgdG8ga2V5CitzZXF1ZW5jZXMuCitAaWZzZXQgQmFzaEZlYXR1cmVzCitZb3UgY2FuIGxpc3QgeW91ciBrZXkgYmluZGluZ3MgYnkgZXhlY3V0aW5nCitAd3tAY29kZXtiaW5kIC1QfX0gb3IsIGZvciBhIG1vcmUgdGVyc2UgZm9ybWF0LCBzdWl0YWJsZSBmb3IgYW4KK0B2YXJ7aW5wdXRyY30gZmlsZSwgQHd7QGNvZGV7YmluZCAtcH19LiAgKEB4cmVme0Jhc2ggQnVpbHRpbnN9LikKK0BlbmQgaWZzZXQKK0NvbW1hbmQgbmFtZXMgd2l0aG91dCBhbiBhY2NvbXBhbnlpbmcga2V5IHNlcXVlbmNlIGFyZSB1bmJvdW5kIGJ5IGRlZmF1bHQuCisKK0luIHRoZSBmb2xsb3dpbmcgZGVzY3JpcHRpb25zLCBAZGZue3BvaW50fSByZWZlcnMgdG8gdGhlIGN1cnJlbnQgY3Vyc29yCitwb3NpdGlvbiwgYW5kIEBkZm57bWFya30gcmVmZXJzIHRvIGEgY3Vyc29yIHBvc2l0aW9uIHNhdmVkIGJ5IHRoZQorQGNvZGV7c2V0LW1hcmt9IGNvbW1hbmQuCitUaGUgdGV4dCBiZXR3ZWVuIHRoZSBwb2ludCBhbmQgbWFyayBpcyByZWZlcnJlZCB0byBhcyB0aGUgQGRmbntyZWdpb259LgorCitAbm9kZSBDb21tYW5kcyBGb3IgTW92aW5nCitAc3Vic2VjdGlvbiBDb21tYW5kcyBGb3IgTW92aW5nCitAZnRhYmxlIEBjb2RlCitAaXRlbSBiZWdpbm5pbmctb2YtbGluZSAoQy1hKQorTW92ZSB0byB0aGUgc3RhcnQgb2YgdGhlIGN1cnJlbnQgbGluZS4KKworQGl0ZW0gZW5kLW9mLWxpbmUgKEMtZSkKK01vdmUgdG8gdGhlIGVuZCBvZiB0aGUgbGluZS4KKworQGl0ZW0gZm9yd2FyZC1jaGFyIChDLWYpCitNb3ZlIGZvcndhcmQgYSBjaGFyYWN0ZXIuCisKK0BpdGVtIGJhY2t3YXJkLWNoYXIgKEMtYikKK01vdmUgYmFjayBhIGNoYXJhY3Rlci4KKworQGl0ZW0gZm9yd2FyZC13b3JkIChNLWYpCitNb3ZlIGZvcndhcmQgdG8gdGhlIGVuZCBvZiB0aGUgbmV4dCB3b3JkLiAgV29yZHMgYXJlIGNvbXBvc2VkIG9mCitsZXR0ZXJzIGFuZCBkaWdpdHMuCisKK0BpdGVtIGJhY2t3YXJkLXdvcmQgKE0tYikKK01vdmUgYmFjayB0byB0aGUgc3RhcnQgb2YgdGhlIGN1cnJlbnQgb3IgcHJldmlvdXMgd29yZC4gIFdvcmRzIGFyZQorY29tcG9zZWQgb2YgbGV0dGVycyBhbmQgZGlnaXRzLgorCitAaXRlbSBjbGVhci1zY3JlZW4gKEMtbCkKK0NsZWFyIHRoZSBzY3JlZW4gYW5kIHJlZHJhdyB0aGUgY3VycmVudCBsaW5lLAorbGVhdmluZyB0aGUgY3VycmVudCBsaW5lIGF0IHRoZSB0b3Agb2YgdGhlIHNjcmVlbi4KKworQGl0ZW0gcmVkcmF3LWN1cnJlbnQtbGluZSAoKQorUmVmcmVzaCB0aGUgY3VycmVudCBsaW5lLiAgQnkgZGVmYXVsdCwgdGhpcyBpcyB1bmJvdW5kLgorCitAZW5kIGZ0YWJsZQorCitAbm9kZSBDb21tYW5kcyBGb3IgSGlzdG9yeQorQHN1YnNlY3Rpb24gQ29tbWFuZHMgRm9yIE1hbmlwdWxhdGluZyBUaGUgSGlzdG9yeQorCitAZnRhYmxlIEBjb2RlCitAaXRlbSBhY2NlcHQtbGluZSAoTmV3bGluZSBvciBSZXR1cm4pCitAaWZzZXQgQmFzaEZlYXR1cmVzCitBY2NlcHQgdGhlIGxpbmUgcmVnYXJkbGVzcyBvZiB3aGVyZSB0aGUgY3Vyc29yIGlzLgorSWYgdGhpcyBsaW5lIGlzCitub24tZW1wdHksIGFkZCBpdCB0byB0aGUgaGlzdG9yeSBsaXN0IGFjY29yZGluZyB0byB0aGUgc2V0dGluZyBvZgordGhlIEBlbnZ7SElTVENPTlRST0x9IGFuZCBAZW52e0hJU1RJR05PUkV9IHZhcmlhYmxlcy4KK0lmIHRoaXMgbGluZSBpcyBhIG1vZGlmaWVkIGhpc3RvcnkgbGluZSwgdGhlbiByZXN0b3JlIHRoZSBoaXN0b3J5IGxpbmUKK3RvIGl0cyBvcmlnaW5hbCBzdGF0ZS4KK0BlbmQgaWZzZXQKK0BpZmNsZWFyIEJhc2hGZWF0dXJlcworQWNjZXB0IHRoZSBsaW5lIHJlZ2FyZGxlc3Mgb2Ygd2hlcmUgdGhlIGN1cnNvciBpcy4KK0lmIHRoaXMgbGluZSBpcworbm9uLWVtcHR5LCBpdCBtYXkgYmUgYWRkZWQgdG8gdGhlIGhpc3RvcnkgbGlzdCBmb3IgZnV0dXJlIHJlY2FsbCB3aXRoCitAY29kZXthZGRfaGlzdG9yeSgpfS4KK0lmIHRoaXMgbGluZSBpcyBhIG1vZGlmaWVkIGhpc3RvcnkgbGluZSwgdGhlIGhpc3RvcnkgbGluZSBpcyByZXN0b3JlZAordG8gaXRzIG9yaWdpbmFsIHN0YXRlLgorQGVuZCBpZmNsZWFyCisKK0BpdGVtIHByZXZpb3VzLWhpc3RvcnkgKEMtcCkKK01vdmUgYGJhY2snIHRocm91Z2ggdGhlIGhpc3RvcnkgbGlzdCwgZmV0Y2hpbmcgdGhlIHByZXZpb3VzIGNvbW1hbmQuCisKK0BpdGVtIG5leHQtaGlzdG9yeSAoQy1uKQorTW92ZSBgZm9yd2FyZCcgdGhyb3VnaCB0aGUgaGlzdG9yeSBsaXN0LCBmZXRjaGluZyB0aGUgbmV4dCBjb21tYW5kLgorCitAaXRlbSBiZWdpbm5pbmctb2YtaGlzdG9yeSAoTS08KQorTW92ZSB0byB0aGUgZmlyc3QgbGluZSBpbiB0aGUgaGlzdG9yeS4KKworQGl0ZW0gZW5kLW9mLWhpc3RvcnkgKE0tPikKK01vdmUgdG8gdGhlIGVuZCBvZiB0aGUgaW5wdXQgaGlzdG9yeSwgaS5lLiwgdGhlIGxpbmUgY3VycmVudGx5CitiZWluZyBlbnRlcmVkLgorCitAaXRlbSByZXZlcnNlLXNlYXJjaC1oaXN0b3J5IChDLXIpCitTZWFyY2ggYmFja3dhcmQgc3RhcnRpbmcgYXQgdGhlIGN1cnJlbnQgbGluZSBhbmQgbW92aW5nIGB1cCcgdGhyb3VnaAordGhlIGhpc3RvcnkgYXMgbmVjZXNzYXJ5LiAgVGhpcyBpcyBhbiBpbmNyZW1lbnRhbCBzZWFyY2guCisKK0BpdGVtIGZvcndhcmQtc2VhcmNoLWhpc3RvcnkgKEMtcykKK1NlYXJjaCBmb3J3YXJkIHN0YXJ0aW5nIGF0IHRoZSBjdXJyZW50IGxpbmUgYW5kIG1vdmluZyBgZG93bicgdGhyb3VnaAordGhlIHRoZSBoaXN0b3J5IGFzIG5lY2Vzc2FyeS4gIFRoaXMgaXMgYW4gaW5jcmVtZW50YWwgc2VhcmNoLgorCitAaXRlbSBub24taW5jcmVtZW50YWwtcmV2ZXJzZS1zZWFyY2gtaGlzdG9yeSAoTS1wKQorU2VhcmNoIGJhY2t3YXJkIHN0YXJ0aW5nIGF0IHRoZSBjdXJyZW50IGxpbmUgYW5kIG1vdmluZyBgdXAnCit0aHJvdWdoIHRoZSBoaXN0b3J5IGFzIG5lY2Vzc2FyeSB1c2luZyBhIG5vbi1pbmNyZW1lbnRhbCBzZWFyY2gKK2ZvciBhIHN0cmluZyBzdXBwbGllZCBieSB0aGUgdXNlci4KKworQGl0ZW0gbm9uLWluY3JlbWVudGFsLWZvcndhcmQtc2VhcmNoLWhpc3RvcnkgKE0tbikKK1NlYXJjaCBmb3J3YXJkIHN0YXJ0aW5nIGF0IHRoZSBjdXJyZW50IGxpbmUgYW5kIG1vdmluZyBgZG93bicKK3Rocm91Z2ggdGhlIHRoZSBoaXN0b3J5IGFzIG5lY2Vzc2FyeSB1c2luZyBhIG5vbi1pbmNyZW1lbnRhbCBzZWFyY2gKK2ZvciBhIHN0cmluZyBzdXBwbGllZCBieSB0aGUgdXNlci4KKworQGl0ZW0gaGlzdG9yeS1zZWFyY2gtZm9yd2FyZCAoKQorU2VhcmNoIGZvcndhcmQgdGhyb3VnaCB0aGUgaGlzdG9yeSBmb3IgdGhlIHN0cmluZyBvZiBjaGFyYWN0ZXJzCitiZXR3ZWVuIHRoZSBzdGFydCBvZiB0aGUgY3VycmVudCBsaW5lIGFuZCB0aGUgcG9pbnQuCitUaGlzIGlzIGEgbm9uLWluY3JlbWVudGFsIHNlYXJjaC4KK0J5IGRlZmF1bHQsIHRoaXMgY29tbWFuZCBpcyB1bmJvdW5kLgorCitAaXRlbSBoaXN0b3J5LXNlYXJjaC1iYWNrd2FyZCAoKQorU2VhcmNoIGJhY2t3YXJkIHRocm91Z2ggdGhlIGhpc3RvcnkgZm9yIHRoZSBzdHJpbmcgb2YgY2hhcmFjdGVycworYmV0d2VlbiB0aGUgc3RhcnQgb2YgdGhlIGN1cnJlbnQgbGluZSBhbmQgdGhlIHBvaW50LiAgVGhpcworaXMgYSBub24taW5jcmVtZW50YWwgc2VhcmNoLiAgQnkgZGVmYXVsdCwgdGhpcyBjb21tYW5kIGlzIHVuYm91bmQuCisKK0BpdGVtIHlhbmstbnRoLWFyZyAoTS1DLXkpCitJbnNlcnQgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIHRoZSBwcmV2aW91cyBjb21tYW5kICh1c3VhbGx5Cit0aGUgc2Vjb25kIHdvcmQgb24gdGhlIHByZXZpb3VzIGxpbmUpIGF0IHBvaW50LgorV2l0aCBhbiBhcmd1bWVudCBAdmFye259LAoraW5zZXJ0IHRoZSBAdmFye259dGggd29yZCBmcm9tIHRoZSBwcmV2aW91cyBjb21tYW5kICh0aGUgd29yZHMKK2luIHRoZSBwcmV2aW91cyBjb21tYW5kIGJlZ2luIHdpdGggd29yZCAwKS4gIEEgbmVnYXRpdmUgYXJndW1lbnQKK2luc2VydHMgdGhlIEB2YXJ7bn10aCB3b3JkIGZyb20gdGhlIGVuZCBvZiB0aGUgcHJldmlvdXMgY29tbWFuZC4KK09uY2UgdGhlIGFyZ3VtZW50IEB2YXJ7bn0gaXMgY29tcHV0ZWQsIHRoZSBhcmd1bWVudCBpcyBleHRyYWN0ZWQKK2FzIGlmIHRoZSBAc2FtcHshQHZhcntufX0gaGlzdG9yeSBleHBhbnNpb24gaGFkIGJlZW4gc3BlY2lmaWVkLgorCitAaXRlbSB5YW5rLWxhc3QtYXJnIChNLS4gb3IgTS1fKQorSW5zZXJ0IGxhc3QgYXJndW1lbnQgdG8gdGhlIHByZXZpb3VzIGNvbW1hbmQgKHRoZSBsYXN0IHdvcmQgb2YgdGhlCitwcmV2aW91cyBoaXN0b3J5IGVudHJ5KS4gIFdpdGggYW4KK2FyZ3VtZW50LCBiZWhhdmUgZXhhY3RseSBsaWtlIEBjb2Rle3lhbmstbnRoLWFyZ30uCitTdWNjZXNzaXZlIGNhbGxzIHRvIEBjb2Rle3lhbmstbGFzdC1hcmd9IG1vdmUgYmFjayB0aHJvdWdoIHRoZSBoaXN0b3J5CitsaXN0LCBpbnNlcnRpbmcgdGhlIGxhc3QgYXJndW1lbnQgb2YgZWFjaCBsaW5lIGluIHR1cm4uCitUaGUgaGlzdG9yeSBleHBhbnNpb24gZmFjaWxpdGllcyBhcmUgdXNlZCB0byBleHRyYWN0IHRoZSBsYXN0IGFyZ3VtZW50LAorYXMgaWYgdGhlIEBzYW1weyEkfSBoaXN0b3J5IGV4cGFuc2lvbiBoYWQgYmVlbiBzcGVjaWZpZWQuCisKK0BlbmQgZnRhYmxlCisKK0Bub2RlIENvbW1hbmRzIEZvciBUZXh0CitAc3Vic2VjdGlvbiBDb21tYW5kcyBGb3IgQ2hhbmdpbmcgVGV4dAorCitAZnRhYmxlIEBjb2RlCitAaXRlbSBkZWxldGUtY2hhciAoQy1kKQorRGVsZXRlIHRoZSBjaGFyYWN0ZXIgYXQgcG9pbnQuICBJZiBwb2ludCBpcyBhdCB0aGUKK2JlZ2lubmluZyBvZiB0aGUgbGluZSwgdGhlcmUgYXJlIG5vIGNoYXJhY3RlcnMgaW4gdGhlIGxpbmUsIGFuZAordGhlIGxhc3QgY2hhcmFjdGVyIHR5cGVkIHdhcyBub3QgYm91bmQgdG8gQGNvZGV7ZGVsZXRlLWNoYXJ9LCB0aGVuCityZXR1cm4gQHNje2VvZn0uCisKK0BpdGVtIGJhY2t3YXJkLWRlbGV0ZS1jaGFyIChSdWJvdXQpCitEZWxldGUgdGhlIGNoYXJhY3RlciBiZWhpbmQgdGhlIGN1cnNvci4gIEEgbnVtZXJpYyBhcmd1bWVudCBtZWFucwordG8ga2lsbCB0aGUgY2hhcmFjdGVycyBpbnN0ZWFkIG9mIGRlbGV0aW5nIHRoZW0uCisKK0BpdGVtIGZvcndhcmQtYmFja3dhcmQtZGVsZXRlLWNoYXIgKCkKK0RlbGV0ZSB0aGUgY2hhcmFjdGVyIHVuZGVyIHRoZSBjdXJzb3IsIHVubGVzcyB0aGUgY3Vyc29yIGlzIGF0IHRoZQorZW5kIG9mIHRoZSBsaW5lLCBpbiB3aGljaCBjYXNlIHRoZSBjaGFyYWN0ZXIgYmVoaW5kIHRoZSBjdXJzb3IgaXMKK2RlbGV0ZWQuICBCeSBkZWZhdWx0LCB0aGlzIGlzIG5vdCBib3VuZCB0byBhIGtleS4KKworQGl0ZW0gcXVvdGVkLWluc2VydCAoQy1xIG9yIEMtdikKK0FkZCB0aGUgbmV4dCBjaGFyYWN0ZXIgdHlwZWQgdG8gdGhlIGxpbmUgdmVyYmF0aW0uICBUaGlzIGlzCitob3cgdG8gaW5zZXJ0IGtleSBzZXF1ZW5jZXMgbGlrZSBAa2Jke0MtcX0sIGZvciBleGFtcGxlLgorCitAaWZjbGVhciBCYXNoRmVhdHVyZXMKK0BpdGVtIHRhYi1pbnNlcnQgKE0tQGtleXtUQUJ9KQorSW5zZXJ0IGEgdGFiIGNoYXJhY3Rlci4KK0BlbmQgaWZjbGVhcgorCitAaXRlbSBzZWxmLWluc2VydCAoYSwgYiwgQSwgMSwgISwgQGRvdHN7fSkKK0luc2VydCB5b3Vyc2VsZi4KKworQGl0ZW0gdHJhbnNwb3NlLWNoYXJzIChDLXQpCitEcmFnIHRoZSBjaGFyYWN0ZXIgYmVmb3JlIHRoZSBjdXJzb3IgZm9yd2FyZCBvdmVyCit0aGUgY2hhcmFjdGVyIGF0IHRoZSBjdXJzb3IsIG1vdmluZyB0aGUKK2N1cnNvciBmb3J3YXJkIGFzIHdlbGwuICBJZiB0aGUgaW5zZXJ0aW9uIHBvaW50CitpcyBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lLCB0aGVuIHRoaXMKK3RyYW5zcG9zZXMgdGhlIGxhc3QgdHdvIGNoYXJhY3RlcnMgb2YgdGhlIGxpbmUuCitOZWdhdGl2ZSBhcmd1bWVudHMgaGF2ZSBubyBlZmZlY3QuCisKK0BpdGVtIHRyYW5zcG9zZS13b3JkcyAoTS10KQorRHJhZyB0aGUgd29yZCBiZWZvcmUgcG9pbnQgcGFzdCB0aGUgd29yZCBhZnRlciBwb2ludCwKK21vdmluZyBwb2ludCBwYXN0IHRoYXQgd29yZCBhcyB3ZWxsLgorSWYgdGhlIGluc2VydGlvbiBwb2ludCBpcyBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lLCB0aGlzIHRyYW5zcG9zZXMKK3RoZSBsYXN0IHR3byB3b3JkcyBvbiB0aGUgbGluZS4KKworQGl0ZW0gdXBjYXNlLXdvcmQgKE0tdSkKK1VwcGVyY2FzZSB0aGUgY3VycmVudCAob3IgZm9sbG93aW5nKSB3b3JkLiAgV2l0aCBhIG5lZ2F0aXZlIGFyZ3VtZW50LAordXBwZXJjYXNlIHRoZSBwcmV2aW91cyB3b3JkLCBidXQgZG8gbm90IG1vdmUgdGhlIGN1cnNvci4KKworQGl0ZW0gZG93bmNhc2Utd29yZCAoTS1sKQorTG93ZXJjYXNlIHRoZSBjdXJyZW50IChvciBmb2xsb3dpbmcpIHdvcmQuICBXaXRoIGEgbmVnYXRpdmUgYXJndW1lbnQsCitsb3dlcmNhc2UgdGhlIHByZXZpb3VzIHdvcmQsIGJ1dCBkbyBub3QgbW92ZSB0aGUgY3Vyc29yLgorCitAaXRlbSBjYXBpdGFsaXplLXdvcmQgKE0tYykKK0NhcGl0YWxpemUgdGhlIGN1cnJlbnQgKG9yIGZvbGxvd2luZykgd29yZC4gIFdpdGggYSBuZWdhdGl2ZSBhcmd1bWVudCwKK2NhcGl0YWxpemUgdGhlIHByZXZpb3VzIHdvcmQsIGJ1dCBkbyBub3QgbW92ZSB0aGUgY3Vyc29yLgorCitAaXRlbSBvdmVyd3JpdGUtbW9kZSAoKQorVG9nZ2xlIG92ZXJ3cml0ZSBtb2RlLiAgV2l0aCBhbiBleHBsaWNpdCBwb3NpdGl2ZSBudW1lcmljIGFyZ3VtZW50LAorc3dpdGNoZXMgdG8gb3ZlcndyaXRlIG1vZGUuICBXaXRoIGFuIGV4cGxpY2l0IG5vbi1wb3NpdGl2ZSBudW1lcmljCithcmd1bWVudCwgc3dpdGNoZXMgdG8gaW5zZXJ0IG1vZGUuICBUaGlzIGNvbW1hbmQgYWZmZWN0cyBvbmx5CitAY29kZXtlbWFjc30gbW9kZTsgQGNvZGV7dml9IG1vZGUgZG9lcyBvdmVyd3JpdGUgZGlmZmVyZW50bHkuCitFYWNoIGNhbGwgdG8gQGNvZGV7cmVhZGxpbmUoKX0gc3RhcnRzIGluIGluc2VydCBtb2RlLgorCitJbiBvdmVyd3JpdGUgbW9kZSwgY2hhcmFjdGVycyBib3VuZCB0byBAY29kZXtzZWxmLWluc2VydH0gcmVwbGFjZQordGhlIHRleHQgYXQgcG9pbnQgcmF0aGVyIHRoYW4gcHVzaGluZyB0aGUgdGV4dCB0byB0aGUgcmlnaHQuCitDaGFyYWN0ZXJzIGJvdW5kIHRvIEBjb2Rle2JhY2t3YXJkLWRlbGV0ZS1jaGFyfSByZXBsYWNlIHRoZSBjaGFyYWN0ZXIKK2JlZm9yZSBwb2ludCB3aXRoIGEgc3BhY2UuCisKK0J5IGRlZmF1bHQsIHRoaXMgY29tbWFuZCBpcyB1bmJvdW5kLgorCitAZW5kIGZ0YWJsZQorCitAbm9kZSBDb21tYW5kcyBGb3IgS2lsbGluZworQHN1YnNlY3Rpb24gS2lsbGluZyBBbmQgWWFua2luZworCitAZnRhYmxlIEBjb2RlCisKK0BpdGVtIGtpbGwtbGluZSAoQy1rKQorS2lsbCB0aGUgdGV4dCBmcm9tIHBvaW50IHRvIHRoZSBlbmQgb2YgdGhlIGxpbmUuCisKK0BpdGVtIGJhY2t3YXJkLWtpbGwtbGluZSAoQy14IFJ1Ym91dCkKK0tpbGwgYmFja3dhcmQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZS4KKworQGl0ZW0gdW5peC1saW5lLWRpc2NhcmQgKEMtdSkKK0tpbGwgYmFja3dhcmQgZnJvbSB0aGUgY3Vyc29yIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGN1cnJlbnQgbGluZS4KKworQGl0ZW0ga2lsbC13aG9sZS1saW5lICgpCitLaWxsIGFsbCBjaGFyYWN0ZXJzIG9uIHRoZSBjdXJyZW50IGxpbmUsIG5vIG1hdHRlciB3aGVyZSBwb2ludCBpcy4KK0J5IGRlZmF1bHQsIHRoaXMgaXMgdW5ib3VuZC4KKworQGl0ZW0ga2lsbC13b3JkIChNLWQpCitLaWxsIGZyb20gcG9pbnQgdG8gdGhlIGVuZCBvZiB0aGUgY3VycmVudCB3b3JkLCBvciBpZiBiZXR3ZWVuCit3b3JkcywgdG8gdGhlIGVuZCBvZiB0aGUgbmV4dCB3b3JkLgorV29yZCBib3VuZGFyaWVzIGFyZSB0aGUgc2FtZSBhcyBAY29kZXtmb3J3YXJkLXdvcmR9LgorCitAaXRlbSBiYWNrd2FyZC1raWxsLXdvcmQgKE0tQGtleXtERUx9KQorS2lsbCB0aGUgd29yZCBiZWhpbmQgcG9pbnQuCitXb3JkIGJvdW5kYXJpZXMgYXJlIHRoZSBzYW1lIGFzIEBjb2Rle2JhY2t3YXJkLXdvcmR9LgorCitAaXRlbSB1bml4LXdvcmQtcnVib3V0IChDLXcpCitLaWxsIHRoZSB3b3JkIGJlaGluZCBwb2ludCwgdXNpbmcgd2hpdGUgc3BhY2UgYXMgYSB3b3JkIGJvdW5kYXJ5LgorVGhlIGtpbGxlZCB0ZXh0IGlzIHNhdmVkIG9uIHRoZSBraWxsLXJpbmcuCisKK0BpdGVtIHVuaXgtZmlsZW5hbWUtcnVib3V0ICgpCitLaWxsIHRoZSB3b3JkIGJlaGluZCBwb2ludCwgdXNpbmcgd2hpdGUgc3BhY2UgYW5kIHRoZSBzbGFzaCBjaGFyYWN0ZXIKK2FzIHRoZSB3b3JkIGJvdW5kYXJpZXMuCitUaGUga2lsbGVkIHRleHQgaXMgc2F2ZWQgb24gdGhlIGtpbGwtcmluZy4KKworQGl0ZW0gZGVsZXRlLWhvcml6b250YWwtc3BhY2UgKCkKK0RlbGV0ZSBhbGwgc3BhY2VzIGFuZCB0YWJzIGFyb3VuZCBwb2ludC4gIEJ5IGRlZmF1bHQsIHRoaXMgaXMgdW5ib3VuZC4KKworQGl0ZW0ga2lsbC1yZWdpb24gKCkKK0tpbGwgdGhlIHRleHQgaW4gdGhlIGN1cnJlbnQgcmVnaW9uLgorQnkgZGVmYXVsdCwgdGhpcyBjb21tYW5kIGlzIHVuYm91bmQuCisKK0BpdGVtIGNvcHktcmVnaW9uLWFzLWtpbGwgKCkKK0NvcHkgdGhlIHRleHQgaW4gdGhlIHJlZ2lvbiB0byB0aGUga2lsbCBidWZmZXIsIHNvIGl0IGNhbiBiZSB5YW5rZWQKK3JpZ2h0IGF3YXkuICBCeSBkZWZhdWx0LCB0aGlzIGNvbW1hbmQgaXMgdW5ib3VuZC4KKworQGl0ZW0gY29weS1iYWNrd2FyZC13b3JkICgpCitDb3B5IHRoZSB3b3JkIGJlZm9yZSBwb2ludCB0byB0aGUga2lsbCBidWZmZXIuCitUaGUgd29yZCBib3VuZGFyaWVzIGFyZSB0aGUgc2FtZSBhcyBAY29kZXtiYWNrd2FyZC13b3JkfS4KK0J5IGRlZmF1bHQsIHRoaXMgY29tbWFuZCBpcyB1bmJvdW5kLgorCitAaXRlbSBjb3B5LWZvcndhcmQtd29yZCAoKQorQ29weSB0aGUgd29yZCBmb2xsb3dpbmcgcG9pbnQgdG8gdGhlIGtpbGwgYnVmZmVyLgorVGhlIHdvcmQgYm91bmRhcmllcyBhcmUgdGhlIHNhbWUgYXMgQGNvZGV7Zm9yd2FyZC13b3JkfS4KK0J5IGRlZmF1bHQsIHRoaXMgY29tbWFuZCBpcyB1bmJvdW5kLgorCitAaXRlbSB5YW5rIChDLXkpCitZYW5rIHRoZSB0b3Agb2YgdGhlIGtpbGwgcmluZyBpbnRvIHRoZSBidWZmZXIgYXQgcG9pbnQuCisKK0BpdGVtIHlhbmstcG9wIChNLXkpCitSb3RhdGUgdGhlIGtpbGwtcmluZywgYW5kIHlhbmsgdGhlIG5ldyB0b3AuICBZb3UgY2FuIG9ubHkgZG8gdGhpcyBpZgordGhlIHByaW9yIGNvbW1hbmQgaXMgQGNvZGV7eWFua30gb3IgQGNvZGV7eWFuay1wb3B9LgorQGVuZCBmdGFibGUKKworQG5vZGUgTnVtZXJpYyBBcmd1bWVudHMKK0BzdWJzZWN0aW9uIFNwZWNpZnlpbmcgTnVtZXJpYyBBcmd1bWVudHMKK0BmdGFibGUgQGNvZGUKKworQGl0ZW0gZGlnaXQtYXJndW1lbnQgKEBrYmR7TS0wfSwgQGtiZHtNLTF9LCBAZG90c3t9IEBrYmR7TS0tfSkKK0FkZCB0aGlzIGRpZ2l0IHRvIHRoZSBhcmd1bWVudCBhbHJlYWR5IGFjY3VtdWxhdGluZywgb3Igc3RhcnQgYSBuZXcKK2FyZ3VtZW50LiAgQGtiZHtNLS19IHN0YXJ0cyBhIG5lZ2F0aXZlIGFyZ3VtZW50LgorCitAaXRlbSB1bml2ZXJzYWwtYXJndW1lbnQgKCkKK1RoaXMgaXMgYW5vdGhlciB3YXkgdG8gc3BlY2lmeSBhbiBhcmd1bWVudC4KK0lmIHRoaXMgY29tbWFuZCBpcyBmb2xsb3dlZCBieSBvbmUgb3IgbW9yZSBkaWdpdHMsIG9wdGlvbmFsbHkgd2l0aCBhCitsZWFkaW5nIG1pbnVzIHNpZ24sIHRob3NlIGRpZ2l0cyBkZWZpbmUgdGhlIGFyZ3VtZW50LgorSWYgdGhlIGNvbW1hbmQgaXMgZm9sbG93ZWQgYnkgZGlnaXRzLCBleGVjdXRpbmcgQGNvZGV7dW5pdmVyc2FsLWFyZ3VtZW50fQorYWdhaW4gZW5kcyB0aGUgbnVtZXJpYyBhcmd1bWVudCwgYnV0IGlzIG90aGVyd2lzZSBpZ25vcmVkLgorQXMgYSBzcGVjaWFsIGNhc2UsIGlmIHRoaXMgY29tbWFuZCBpcyBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBhCitjaGFyYWN0ZXIgdGhhdCBpcyBuZWl0aGVyIGEgZGlnaXQgb3IgbWludXMgc2lnbiwgdGhlIGFyZ3VtZW50IGNvdW50Citmb3IgdGhlIG5leHQgY29tbWFuZCBpcyBtdWx0aXBsaWVkIGJ5IGZvdXIuCitUaGUgYXJndW1lbnQgY291bnQgaXMgaW5pdGlhbGx5IG9uZSwgc28gZXhlY3V0aW5nIHRoaXMgZnVuY3Rpb24gdGhlCitmaXJzdCB0aW1lIG1ha2VzIHRoZSBhcmd1bWVudCBjb3VudCBmb3VyLCBhIHNlY29uZCB0aW1lIG1ha2VzIHRoZQorYXJndW1lbnQgY291bnQgc2l4dGVlbiwgYW5kIHNvIG9uLgorQnkgZGVmYXVsdCwgdGhpcyBpcyBub3QgYm91bmQgdG8gYSBrZXkuCitAZW5kIGZ0YWJsZQorCitAbm9kZSBDb21tYW5kcyBGb3IgQ29tcGxldGlvbgorQHN1YnNlY3Rpb24gTGV0dGluZyBSZWFkbGluZSBUeXBlIEZvciBZb3UKKworQGZ0YWJsZSBAY29kZQorQGl0ZW0gY29tcGxldGUgKEBrZXl7VEFCfSkKK0F0dGVtcHQgdG8gcGVyZm9ybSBjb21wbGV0aW9uIG9uIHRoZSB0ZXh0IGJlZm9yZSBwb2ludC4KK1RoZSBhY3R1YWwgY29tcGxldGlvbiBwZXJmb3JtZWQgaXMgYXBwbGljYXRpb24tc3BlY2lmaWMuCitAaWZzZXQgQmFzaEZlYXR1cmVzCitCYXNoIGF0dGVtcHRzIGNvbXBsZXRpb24gdHJlYXRpbmcgdGhlIHRleHQgYXMgYSB2YXJpYWJsZSAoaWYgdGhlCit0ZXh0IGJlZ2lucyB3aXRoIEBzYW1weyR9KSwgdXNlcm5hbWUgKGlmIHRoZSB0ZXh0IGJlZ2lucyB3aXRoCitAc2FtcHt+fSksIGhvc3RuYW1lIChpZiB0aGUgdGV4dCBiZWdpbnMgd2l0aCBAc2FtcHtAQH0pLCBvcgorY29tbWFuZCAoaW5jbHVkaW5nIGFsaWFzZXMgYW5kIGZ1bmN0aW9ucykgaW4gdHVybi4gIElmIG5vbmUgCitvZiB0aGVzZSBwcm9kdWNlcyBhIG1hdGNoLCBmaWxlbmFtZSBjb21wbGV0aW9uIGlzIGF0dGVtcHRlZC4KK0BlbmQgaWZzZXQKK0BpZmNsZWFyIEJhc2hGZWF0dXJlcworVGhlIGRlZmF1bHQgaXMgZmlsZW5hbWUgY29tcGxldGlvbi4KK0BlbmQgaWZjbGVhcgorCitAaXRlbSBwb3NzaWJsZS1jb21wbGV0aW9ucyAoTS0/KQorTGlzdCB0aGUgcG9zc2libGUgY29tcGxldGlvbnMgb2YgdGhlIHRleHQgYmVmb3JlIHBvaW50LgorCitAaXRlbSBpbnNlcnQtY29tcGxldGlvbnMgKE0tKikKK0luc2VydCBhbGwgY29tcGxldGlvbnMgb2YgdGhlIHRleHQgYmVmb3JlIHBvaW50IHRoYXQgd291bGQgaGF2ZQorYmVlbiBnZW5lcmF0ZWQgYnkgQGNvZGV7cG9zc2libGUtY29tcGxldGlvbnN9LgorCitAaXRlbSBtZW51LWNvbXBsZXRlICgpCitTaW1pbGFyIHRvIEBjb2Rle2NvbXBsZXRlfSwgYnV0IHJlcGxhY2VzIHRoZSB3b3JkIHRvIGJlIGNvbXBsZXRlZAord2l0aCBhIHNpbmdsZSBtYXRjaCBmcm9tIHRoZSBsaXN0IG9mIHBvc3NpYmxlIGNvbXBsZXRpb25zLgorUmVwZWF0ZWQgZXhlY3V0aW9uIG9mIEBjb2Rle21lbnUtY29tcGxldGV9IHN0ZXBzIHRocm91Z2ggdGhlIGxpc3QKK29mIHBvc3NpYmxlIGNvbXBsZXRpb25zLCBpbnNlcnRpbmcgZWFjaCBtYXRjaCBpbiB0dXJuLgorQXQgdGhlIGVuZCBvZiB0aGUgbGlzdCBvZiBjb21wbGV0aW9ucywgdGhlIGJlbGwgaXMgcnVuZworKHN1YmplY3QgdG8gdGhlIHNldHRpbmcgb2YgQGNvZGV7YmVsbC1zdHlsZX0pCithbmQgdGhlIG9yaWdpbmFsIHRleHQgaXMgcmVzdG9yZWQuCitBbiBhcmd1bWVudCBvZiBAdmFye259IG1vdmVzIEB2YXJ7bn0gcG9zaXRpb25zIGZvcndhcmQgaW4gdGhlIGxpc3QKK29mIG1hdGNoZXM7IGEgbmVnYXRpdmUgYXJndW1lbnQgbWF5IGJlIHVzZWQgdG8gbW92ZSBiYWNrd2FyZAordGhyb3VnaCB0aGUgbGlzdC4KK1RoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCB0byBiZSBib3VuZCB0byBAa2V5e1RBQn0sIGJ1dCBpcyB1bmJvdW5kCitieSBkZWZhdWx0LgorCitAaXRlbSBkZWxldGUtY2hhci1vci1saXN0ICgpCitEZWxldGVzIHRoZSBjaGFyYWN0ZXIgdW5kZXIgdGhlIGN1cnNvciBpZiBub3QgYXQgdGhlIGJlZ2lubmluZyBvcgorZW5kIG9mIHRoZSBsaW5lIChsaWtlIEBjb2Rle2RlbGV0ZS1jaGFyfSkuCitJZiBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lLCBiZWhhdmVzIGlkZW50aWNhbGx5IHRvCitAY29kZXtwb3NzaWJsZS1jb21wbGV0aW9uc30uCitUaGlzIGNvbW1hbmQgaXMgdW5ib3VuZCBieSBkZWZhdWx0LgorCitAaWZzZXQgQmFzaEZlYXR1cmVzCitAaXRlbSBjb21wbGV0ZS1maWxlbmFtZSAoTS0vKQorQXR0ZW1wdCBmaWxlbmFtZSBjb21wbGV0aW9uIG9uIHRoZSB0ZXh0IGJlZm9yZSBwb2ludC4KKworQGl0ZW0gcG9zc2libGUtZmlsZW5hbWUtY29tcGxldGlvbnMgKEMteCAvKQorTGlzdCB0aGUgcG9zc2libGUgY29tcGxldGlvbnMgb2YgdGhlIHRleHQgYmVmb3JlIHBvaW50LAordHJlYXRpbmcgaXQgYXMgYSBmaWxlbmFtZS4KKworQGl0ZW0gY29tcGxldGUtdXNlcm5hbWUgKE0tfikKK0F0dGVtcHQgY29tcGxldGlvbiBvbiB0aGUgdGV4dCBiZWZvcmUgcG9pbnQsIHRyZWF0aW5nCitpdCBhcyBhIHVzZXJuYW1lLgorCitAaXRlbSBwb3NzaWJsZS11c2VybmFtZS1jb21wbGV0aW9ucyAoQy14IH4pCitMaXN0IHRoZSBwb3NzaWJsZSBjb21wbGV0aW9ucyBvZiB0aGUgdGV4dCBiZWZvcmUgcG9pbnQsCit0cmVhdGluZyBpdCBhcyBhIHVzZXJuYW1lLgorCitAaXRlbSBjb21wbGV0ZS12YXJpYWJsZSAoTS0kKQorQXR0ZW1wdCBjb21wbGV0aW9uIG9uIHRoZSB0ZXh0IGJlZm9yZSBwb2ludCwgdHJlYXRpbmcKK2l0IGFzIGEgc2hlbGwgdmFyaWFibGUuCisKK0BpdGVtIHBvc3NpYmxlLXZhcmlhYmxlLWNvbXBsZXRpb25zIChDLXggJCkKK0xpc3QgdGhlIHBvc3NpYmxlIGNvbXBsZXRpb25zIG9mIHRoZSB0ZXh0IGJlZm9yZSBwb2ludCwKK3RyZWF0aW5nIGl0IGFzIGEgc2hlbGwgdmFyaWFibGUuCisKK0BpdGVtIGNvbXBsZXRlLWhvc3RuYW1lIChNLUBAKQorQXR0ZW1wdCBjb21wbGV0aW9uIG9uIHRoZSB0ZXh0IGJlZm9yZSBwb2ludCwgdHJlYXRpbmcKK2l0IGFzIGEgaG9zdG5hbWUuCisKK0BpdGVtIHBvc3NpYmxlLWhvc3RuYW1lLWNvbXBsZXRpb25zIChDLXggQEApCitMaXN0IHRoZSBwb3NzaWJsZSBjb21wbGV0aW9ucyBvZiB0aGUgdGV4dCBiZWZvcmUgcG9pbnQsCit0cmVhdGluZyBpdCBhcyBhIGhvc3RuYW1lLgorCitAaXRlbSBjb21wbGV0ZS1jb21tYW5kIChNLSEpCitBdHRlbXB0IGNvbXBsZXRpb24gb24gdGhlIHRleHQgYmVmb3JlIHBvaW50LCB0cmVhdGluZworaXQgYXMgYSBjb21tYW5kIG5hbWUuICBDb21tYW5kIGNvbXBsZXRpb24gYXR0ZW1wdHMgdG8KK21hdGNoIHRoZSB0ZXh0IGFnYWluc3QgYWxpYXNlcywgcmVzZXJ2ZWQgd29yZHMsIHNoZWxsCitmdW5jdGlvbnMsIHNoZWxsIGJ1aWx0aW5zLCBhbmQgZmluYWxseSBleGVjdXRhYmxlIGZpbGVuYW1lcywKK2luIHRoYXQgb3JkZXIuCisKK0BpdGVtIHBvc3NpYmxlLWNvbW1hbmQtY29tcGxldGlvbnMgKEMteCAhKQorTGlzdCB0aGUgcG9zc2libGUgY29tcGxldGlvbnMgb2YgdGhlIHRleHQgYmVmb3JlIHBvaW50LAordHJlYXRpbmcgaXQgYXMgYSBjb21tYW5kIG5hbWUuCisKK0BpdGVtIGR5bmFtaWMtY29tcGxldGUtaGlzdG9yeSAoTS1Aa2V5e1RBQn0pCitBdHRlbXB0IGNvbXBsZXRpb24gb24gdGhlIHRleHQgYmVmb3JlIHBvaW50LCBjb21wYXJpbmcKK3RoZSB0ZXh0IGFnYWluc3QgbGluZXMgZnJvbSB0aGUgaGlzdG9yeSBsaXN0IGZvciBwb3NzaWJsZQorY29tcGxldGlvbiBtYXRjaGVzLgorCitAaXRlbSBjb21wbGV0ZS1pbnRvLWJyYWNlcyAoTS1AeykKK1BlcmZvcm0gZmlsZW5hbWUgY29tcGxldGlvbiBhbmQgaW5zZXJ0IHRoZSBsaXN0IG9mIHBvc3NpYmxlIGNvbXBsZXRpb25zCitlbmNsb3NlZCB3aXRoaW4gYnJhY2VzIHNvIHRoZSBsaXN0IGlzIGF2YWlsYWJsZSB0byB0aGUgc2hlbGwKKyhAcHhyZWZ7QnJhY2UgRXhwYW5zaW9ufSkuCisKK0BlbmQgaWZzZXQKK0BlbmQgZnRhYmxlCisKK0Bub2RlIEtleWJvYXJkIE1hY3JvcworQHN1YnNlY3Rpb24gS2V5Ym9hcmQgTWFjcm9zCitAZnRhYmxlIEBjb2RlCisKK0BpdGVtIHN0YXJ0LWtiZC1tYWNybyAoQy14ICgpCitCZWdpbiBzYXZpbmcgdGhlIGNoYXJhY3RlcnMgdHlwZWQgaW50byB0aGUgY3VycmVudCBrZXlib2FyZCBtYWNyby4KKworQGl0ZW0gZW5kLWtiZC1tYWNybyAoQy14ICkpCitTdG9wIHNhdmluZyB0aGUgY2hhcmFjdGVycyB0eXBlZCBpbnRvIHRoZSBjdXJyZW50IGtleWJvYXJkIG1hY3JvCithbmQgc2F2ZSB0aGUgZGVmaW5pdGlvbi4KKworQGl0ZW0gY2FsbC1sYXN0LWtiZC1tYWNybyAoQy14IGUpCitSZS1leGVjdXRlIHRoZSBsYXN0IGtleWJvYXJkIG1hY3JvIGRlZmluZWQsIGJ5IG1ha2luZyB0aGUgY2hhcmFjdGVycworaW4gdGhlIG1hY3JvIGFwcGVhciBhcyBpZiB0eXBlZCBhdCB0aGUga2V5Ym9hcmQuCisKK0BlbmQgZnRhYmxlCisKK0Bub2RlIE1pc2NlbGxhbmVvdXMgQ29tbWFuZHMKK0BzdWJzZWN0aW9uIFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kcworQGZ0YWJsZSBAY29kZQorCitAaXRlbSByZS1yZWFkLWluaXQtZmlsZSAoQy14IEMtcikKK1JlYWQgaW4gdGhlIGNvbnRlbnRzIG9mIHRoZSBAdmFye2lucHV0cmN9IGZpbGUsIGFuZCBpbmNvcnBvcmF0ZQorYW55IGJpbmRpbmdzIG9yIHZhcmlhYmxlIGFzc2lnbm1lbnRzIGZvdW5kIHRoZXJlLgorCitAaXRlbSBhYm9ydCAoQy1nKQorQWJvcnQgdGhlIGN1cnJlbnQgZWRpdGluZyBjb21tYW5kIGFuZAorcmluZyB0aGUgdGVybWluYWwncyBiZWxsIChzdWJqZWN0IHRvIHRoZSBzZXR0aW5nIG9mCitAY29kZXtiZWxsLXN0eWxlfSkuCisKK0BpdGVtIGRvLXVwcGVyY2FzZS12ZXJzaW9uIChNLWEsIE0tYiwgTS1AdmFye3h9LCBAZG90c3t9KQorSWYgdGhlIG1ldGFmaWVkIGNoYXJhY3RlciBAdmFye3h9IGlzIGxvd2VyY2FzZSwgcnVuIHRoZSBjb21tYW5kCit0aGF0IGlzIGJvdW5kIHRvIHRoZSBjb3JyZXNwb25kaW5nIHVwcGVyY2FzZSBjaGFyYWN0ZXIuCisKK0BpdGVtIHByZWZpeC1tZXRhIChAa2V5e0VTQ30pCitNZXRhZnkgdGhlIG5leHQgY2hhcmFjdGVyIHR5cGVkLiAgVGhpcyBpcyBmb3Iga2V5Ym9hcmRzCit3aXRob3V0IGEgbWV0YSBrZXkuICBUeXBpbmcgQHNhbXB7QGtleXtFU0N9IGZ9IGlzIGVxdWl2YWxlbnQgdG8gdHlwaW5nCitAa2Jke00tZn0uCisKK0BpdGVtIHVuZG8gKEMtXyBvciBDLXggQy11KQorSW5jcmVtZW50YWwgdW5kbywgc2VwYXJhdGVseSByZW1lbWJlcmVkIGZvciBlYWNoIGxpbmUuCisKK0BpdGVtIHJldmVydC1saW5lIChNLXIpCitVbmRvIGFsbCBjaGFuZ2VzIG1hZGUgdG8gdGhpcyBsaW5lLiAgVGhpcyBpcyBsaWtlIGV4ZWN1dGluZyB0aGUgQGNvZGV7dW5kb30KK2NvbW1hbmQgZW5vdWdoIHRpbWVzIHRvIGdldCBiYWNrIHRvIHRoZSBiZWdpbm5pbmcuCisKK0BpZnNldCBCYXNoRmVhdHVyZXMKK0BpdGVtIHRpbGRlLWV4cGFuZCAoTS0mKQorQGVuZCBpZnNldAorQGlmY2xlYXIgQmFzaEZlYXR1cmVzCitAaXRlbSB0aWxkZS1leHBhbmQgKE0tfikKK0BlbmQgaWZjbGVhcgorUGVyZm9ybSB0aWxkZSBleHBhbnNpb24gb24gdGhlIGN1cnJlbnQgd29yZC4KKworQGl0ZW0gc2V0LW1hcmsgKEMtQEApCitTZXQgdGhlIG1hcmsgdG8gdGhlIHBvaW50LiAgSWYgYQorbnVtZXJpYyBhcmd1bWVudCBpcyBzdXBwbGllZCwgdGhlIG1hcmsgaXMgc2V0IHRvIHRoYXQgcG9zaXRpb24uCisKK0BpdGVtIGV4Y2hhbmdlLXBvaW50LWFuZC1tYXJrIChDLXggQy14KQorU3dhcCB0aGUgcG9pbnQgd2l0aCB0aGUgbWFyay4gIFRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbiBpcyBzZXQgdG8KK3RoZSBzYXZlZCBwb3NpdGlvbiwgYW5kIHRoZSBvbGQgY3Vyc29yIHBvc2l0aW9uIGlzIHNhdmVkIGFzIHRoZSBtYXJrLgorCitAaXRlbSBjaGFyYWN0ZXItc2VhcmNoIChDLV0pCitBIGNoYXJhY3RlciBpcyByZWFkIGFuZCBwb2ludCBpcyBtb3ZlZCB0byB0aGUgbmV4dCBvY2N1cnJlbmNlIG9mIHRoYXQKK2NoYXJhY3Rlci4gIEEgbmVnYXRpdmUgY291bnQgc2VhcmNoZXMgZm9yIHByZXZpb3VzIG9jY3VycmVuY2VzLgorCitAaXRlbSBjaGFyYWN0ZXItc2VhcmNoLWJhY2t3YXJkIChNLUMtXSkKK0EgY2hhcmFjdGVyIGlzIHJlYWQgYW5kIHBvaW50IGlzIG1vdmVkIHRvIHRoZSBwcmV2aW91cyBvY2N1cnJlbmNlCitvZiB0aGF0IGNoYXJhY3Rlci4gIEEgbmVnYXRpdmUgY291bnQgc2VhcmNoZXMgZm9yIHN1YnNlcXVlbnQKK29jY3VycmVuY2VzLgorCitAaXRlbSBpbnNlcnQtY29tbWVudCAoTS0jKQorV2l0aG91dCBhIG51bWVyaWMgYXJndW1lbnQsIHRoZSB2YWx1ZSBvZiB0aGUgQGNvZGV7Y29tbWVudC1iZWdpbn0KK3ZhcmlhYmxlIGlzIGluc2VydGVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGN1cnJlbnQgbGluZS4KK0lmIGEgbnVtZXJpYyBhcmd1bWVudCBpcyBzdXBwbGllZCwgdGhpcyBjb21tYW5kIGFjdHMgYXMgYSB0b2dnbGU6ICBpZgordGhlIGNoYXJhY3RlcnMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZSBkbyBub3QgbWF0Y2ggdGhlIHZhbHVlCitvZiBAY29kZXtjb21tZW50LWJlZ2lufSwgdGhlIHZhbHVlIGlzIGluc2VydGVkLCBvdGhlcndpc2UKK3RoZSBjaGFyYWN0ZXJzIGluIEBjb2Rle2NvbW1lbnQtYmVnaW59IGFyZSBkZWxldGVkIGZyb20gdGhlIGJlZ2lubmluZyBvZgordGhlIGxpbmUuCitJbiBlaXRoZXIgY2FzZSwgdGhlIGxpbmUgaXMgYWNjZXB0ZWQgYXMgaWYgYSBuZXdsaW5lIGhhZCBiZWVuIHR5cGVkLgorQGlmc2V0IEJhc2hGZWF0dXJlcworVGhlIGRlZmF1bHQgdmFsdWUgb2YgQGNvZGV7Y29tbWVudC1iZWdpbn0gY2F1c2VzIHRoaXMgY29tbWFuZAordG8gbWFrZSB0aGUgY3VycmVudCBsaW5lIGEgc2hlbGwgY29tbWVudC4KK0lmIGEgbnVtZXJpYyBhcmd1bWVudCBjYXVzZXMgdGhlIGNvbW1lbnQgY2hhcmFjdGVyIHRvIGJlIHJlbW92ZWQsIHRoZSBsaW5lCit3aWxsIGJlIGV4ZWN1dGVkIGJ5IHRoZSBzaGVsbC4KK0BlbmQgaWZzZXQKKworQGl0ZW0gZHVtcC1mdW5jdGlvbnMgKCkKK1ByaW50IGFsbCBvZiB0aGUgZnVuY3Rpb25zIGFuZCB0aGVpciBrZXkgYmluZGluZ3MgdG8gdGhlCitSZWFkbGluZSBvdXRwdXQgc3RyZWFtLiAgSWYgYSBudW1lcmljIGFyZ3VtZW50IGlzIHN1cHBsaWVkLAordGhlIG91dHB1dCBpcyBmb3JtYXR0ZWQgaW4gc3VjaCBhIHdheSB0aGF0IGl0IGNhbiBiZSBtYWRlIHBhcnQKK29mIGFuIEB2YXJ7aW5wdXRyY30gZmlsZS4gIFRoaXMgY29tbWFuZCBpcyB1bmJvdW5kIGJ5IGRlZmF1bHQuCisKK0BpdGVtIGR1bXAtdmFyaWFibGVzICgpCitQcmludCBhbGwgb2YgdGhlIHNldHRhYmxlIHZhcmlhYmxlcyBhbmQgdGhlaXIgdmFsdWVzIHRvIHRoZQorUmVhZGxpbmUgb3V0cHV0IHN0cmVhbS4gIElmIGEgbnVtZXJpYyBhcmd1bWVudCBpcyBzdXBwbGllZCwKK3RoZSBvdXRwdXQgaXMgZm9ybWF0dGVkIGluIHN1Y2ggYSB3YXkgdGhhdCBpdCBjYW4gYmUgbWFkZSBwYXJ0CitvZiBhbiBAdmFye2lucHV0cmN9IGZpbGUuICBUaGlzIGNvbW1hbmQgaXMgdW5ib3VuZCBieSBkZWZhdWx0LgorCitAaXRlbSBkdW1wLW1hY3JvcyAoKQorUHJpbnQgYWxsIG9mIHRoZSBSZWFkbGluZSBrZXkgc2VxdWVuY2VzIGJvdW5kIHRvIG1hY3JvcyBhbmQgdGhlCitzdHJpbmdzIHRoZXkgb3V0cHV0LiAgSWYgYSBudW1lcmljIGFyZ3VtZW50IGlzIHN1cHBsaWVkLAordGhlIG91dHB1dCBpcyBmb3JtYXR0ZWQgaW4gc3VjaCBhIHdheSB0aGF0IGl0IGNhbiBiZSBtYWRlIHBhcnQKK29mIGFuIEB2YXJ7aW5wdXRyY30gZmlsZS4gIFRoaXMgY29tbWFuZCBpcyB1bmJvdW5kIGJ5IGRlZmF1bHQuCisKK0BpZnNldCBCYXNoRmVhdHVyZXMKK0BpdGVtIGdsb2ItY29tcGxldGUtd29yZCAoTS1nKQorVGhlIHdvcmQgYmVmb3JlIHBvaW50IGlzIHRyZWF0ZWQgYXMgYSBwYXR0ZXJuIGZvciBwYXRobmFtZSBleHBhbnNpb24sCit3aXRoIGFuIGFzdGVyaXNrIGltcGxpY2l0bHkgYXBwZW5kZWQuICBUaGlzIHBhdHRlcm4gaXMgdXNlZCB0bworZ2VuZXJhdGUgYSBsaXN0IG9mIG1hdGNoaW5nIGZpbGUgbmFtZXMgZm9yIHBvc3NpYmxlIGNvbXBsZXRpb25zLgorCitAaXRlbSBnbG9iLWV4cGFuZC13b3JkIChDLXggKikKK1RoZSB3b3JkIGJlZm9yZSBwb2ludCBpcyB0cmVhdGVkIGFzIGEgcGF0dGVybiBmb3IgcGF0aG5hbWUgZXhwYW5zaW9uLAorYW5kIHRoZSBsaXN0IG9mIG1hdGNoaW5nIGZpbGUgbmFtZXMgaXMgaW5zZXJ0ZWQsIHJlcGxhY2luZyB0aGUgd29yZC4KK0lmIGEgbnVtZXJpYyBhcmd1bWVudCBpcyBzdXBwbGllZCwgYSBAc2FtcHsqfSBpcyBhcHBlbmRlZCBiZWZvcmUKK3BhdGhuYW1lIGV4cGFuc2lvbi4KKworQGl0ZW0gZ2xvYi1saXN0LWV4cGFuc2lvbnMgKEMteCBnKQorVGhlIGxpc3Qgb2YgZXhwYW5zaW9ucyB0aGF0IHdvdWxkIGhhdmUgYmVlbiBnZW5lcmF0ZWQgYnkKK0Bjb2Rle2dsb2ItZXhwYW5kLXdvcmR9IGlzIGRpc3BsYXllZCwgYW5kIHRoZSBsaW5lIGlzIHJlZHJhd24uCitJZiBhIG51bWVyaWMgYXJndW1lbnQgaXMgc3VwcGxpZWQsIGEgQHNhbXB7Kn0gaXMgYXBwZW5kZWQgYmVmb3JlCitwYXRobmFtZSBleHBhbnNpb24uCisKK0BpdGVtIGRpc3BsYXktc2hlbGwtdmVyc2lvbiAoQy14IEMtdikKK0Rpc3BsYXkgdmVyc2lvbiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudCBpbnN0YW5jZSBvZiBCYXNoLgorCitAaXRlbSBzaGVsbC1leHBhbmQtbGluZSAoTS1DLWUpCitFeHBhbmQgdGhlIGxpbmUgYXMgdGhlIHNoZWxsIGRvZXMuCitUaGlzIHBlcmZvcm1zIGFsaWFzIGFuZCBoaXN0b3J5IGV4cGFuc2lvbiBhcyB3ZWxsIGFzIGFsbCBvZiB0aGUgc2hlbGwKK3dvcmQgZXhwYW5zaW9ucyAoQHB4cmVme1NoZWxsIEV4cGFuc2lvbnN9KS4KKworQGl0ZW0gaGlzdG9yeS1leHBhbmQtbGluZSAoTS1eKQorUGVyZm9ybSBoaXN0b3J5IGV4cGFuc2lvbiBvbiB0aGUgY3VycmVudCBsaW5lLgorCitAaXRlbSBtYWdpYy1zcGFjZSAoKQorUGVyZm9ybSBoaXN0b3J5IGV4cGFuc2lvbiBvbiB0aGUgY3VycmVudCBsaW5lIGFuZCBpbnNlcnQgYSBzcGFjZQorKEBweHJlZntIaXN0b3J5IEludGVyYWN0aW9ufSkuCisKK0BpdGVtIGFsaWFzLWV4cGFuZC1saW5lICgpCitQZXJmb3JtIGFsaWFzIGV4cGFuc2lvbiBvbiB0aGUgY3VycmVudCBsaW5lIChAcHhyZWZ7QWxpYXNlc30pLgorCitAaXRlbSBoaXN0b3J5LWFuZC1hbGlhcy1leHBhbmQtbGluZSAoKQorUGVyZm9ybSBoaXN0b3J5IGFuZCBhbGlhcyBleHBhbnNpb24gb24gdGhlIGN1cnJlbnQgbGluZS4KKworQGl0ZW0gaW5zZXJ0LWxhc3QtYXJndW1lbnQgKE0tLiBvciBNLV8pCitBIHN5bm9ueW0gZm9yIEBjb2Rle3lhbmstbGFzdC1hcmd9LgorCitAaXRlbSBvcGVyYXRlLWFuZC1nZXQtbmV4dCAoQy1vKQorQWNjZXB0IHRoZSBjdXJyZW50IGxpbmUgZm9yIGV4ZWN1dGlvbiBhbmQgZmV0Y2ggdGhlIG5leHQgbGluZQorcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgbGluZSBmcm9tIHRoZSBoaXN0b3J5IGZvciBlZGl0aW5nLiAgQW55Cithcmd1bWVudCBpcyBpZ25vcmVkLgorCitAaXRlbSBlZGl0LWFuZC1leGVjdXRlLWNvbW1hbmQgKEMteEMtZSkKK0ludm9rZSBhbiBlZGl0b3Igb24gdGhlIGN1cnJlbnQgY29tbWFuZCBsaW5lLCBhbmQgZXhlY3V0ZSB0aGUgcmVzdWx0IGFzIHNoZWxsCitjb21tYW5kcy4KK0Jhc2ggYXR0ZW1wdHMgdG8gaW52b2tlCitAY29kZXskVklTVUFMfSwgQGNvZGV7JEVESVRPUn0sIGFuZCBAY29kZXtlbWFjc30KK2FzIHRoZSBlZGl0b3IsIGluIHRoYXQgb3JkZXIuCisKK0BlbmQgaWZzZXQKKworQGlmY2xlYXIgQmFzaEZlYXR1cmVzCitAaXRlbSBlbWFjcy1lZGl0aW5nLW1vZGUgKEMtZSkKK1doZW4gaW4gQGNvZGV7dml9IGNvbW1hbmQgbW9kZSwgdGhpcyBjYXVzZXMgYSBzd2l0Y2ggdG8gQGNvZGV7ZW1hY3N9CitlZGl0aW5nIG1vZGUuCisKK0BpdGVtIHZpLWVkaXRpbmctbW9kZSAoTS1DLWopCitXaGVuIGluIEBjb2Rle2VtYWNzfSBlZGl0aW5nIG1vZGUsIHRoaXMgY2F1c2VzIGEgc3dpdGNoIHRvIEBjb2Rle3ZpfQorZWRpdGluZyBtb2RlLgorCitAZW5kIGlmY2xlYXIKKworQGVuZCBmdGFibGUKKworQG5vZGUgUmVhZGxpbmUgdmkgTW9kZQorQHNlY3Rpb24gUmVhZGxpbmUgdmkgTW9kZQorCitXaGlsZSB0aGUgUmVhZGxpbmUgbGlicmFyeSBkb2VzIG5vdCBoYXZlIGEgZnVsbCBzZXQgb2YgQGNvZGV7dml9CitlZGl0aW5nIGZ1bmN0aW9ucywgaXQgZG9lcyBjb250YWluIGVub3VnaCB0byBhbGxvdyBzaW1wbGUgZWRpdGluZworb2YgdGhlIGxpbmUuICBUaGUgUmVhZGxpbmUgQGNvZGV7dml9IG1vZGUgYmVoYXZlcyBhcyBzcGVjaWZpZWQgaW4KK3RoZSBAc2N7cG9zaXh9IDEwMDMuMiBzdGFuZGFyZC4KKworQGlmc2V0IEJhc2hGZWF0dXJlcworSW4gb3JkZXIgdG8gc3dpdGNoIGludGVyYWN0aXZlbHkgYmV0d2VlbiBAY29kZXtlbWFjc30gYW5kIEBjb2Rle3ZpfQorZWRpdGluZyBtb2RlcywgdXNlIHRoZSBAc2FtcHtzZXQgLW8gZW1hY3N9IGFuZCBAc2FtcHtzZXQgLW8gdml9Citjb21tYW5kcyAoQHB4cmVme1RoZSBTZXQgQnVpbHRpbn0pLgorQGVuZCBpZnNldAorQGlmY2xlYXIgQmFzaEZlYXR1cmVzCitJbiBvcmRlciB0byBzd2l0Y2ggaW50ZXJhY3RpdmVseSBiZXR3ZWVuIEBjb2Rle2VtYWNzfSBhbmQgQGNvZGV7dml9CitlZGl0aW5nIG1vZGVzLCB1c2UgdGhlIGNvbW1hbmQgQGtiZHtNLUMtan0gKGJvdW5kIHRvIGVtYWNzLWVkaXRpbmctbW9kZQord2hlbiBpbiBAY29kZXt2aX0gbW9kZSBhbmQgdG8gdmktZWRpdGluZy1tb2RlIGluIEBjb2Rle2VtYWNzfSBtb2RlKS4KK0BlbmQgaWZjbGVhcgorVGhlIFJlYWRsaW5lIGRlZmF1bHQgaXMgQGNvZGV7ZW1hY3N9IG1vZGUuCisKK1doZW4geW91IGVudGVyIGEgbGluZSBpbiBAY29kZXt2aX0gbW9kZSwgeW91IGFyZSBhbHJlYWR5IHBsYWNlZCBpbgorYGluc2VydGlvbicgbW9kZSwgYXMgaWYgeW91IGhhZCB0eXBlZCBhbiBAc2FtcHtpfS4gIFByZXNzaW5nIEBrZXl7RVNDfQorc3dpdGNoZXMgeW91IGludG8gYGNvbW1hbmQnIG1vZGUsIHdoZXJlIHlvdSBjYW4gZWRpdCB0aGUgdGV4dCBvZiB0aGUKK2xpbmUgd2l0aCB0aGUgc3RhbmRhcmQgQGNvZGV7dml9IG1vdmVtZW50IGtleXMsIG1vdmUgdG8gcHJldmlvdXMKK2hpc3RvcnkgbGluZXMgd2l0aCBAc2FtcHtrfSBhbmQgc3Vic2VxdWVudCBsaW5lcyB3aXRoIEBzYW1we2p9LCBhbmQKK3NvIGZvcnRoLgorCitAaWZzZXQgQmFzaEZlYXR1cmVzCitAbm9kZSBQcm9ncmFtbWFibGUgQ29tcGxldGlvbgorQHNlY3Rpb24gUHJvZ3JhbW1hYmxlIENvbXBsZXRpb24KK0BjaW5kZXggcHJvZ3JhbW1hYmxlIGNvbXBsZXRpb24KKworV2hlbiB3b3JkIGNvbXBsZXRpb24gaXMgYXR0ZW1wdGVkIGZvciBhbiBhcmd1bWVudCB0byBhIGNvbW1hbmQgZm9yCit3aGljaCBhIGNvbXBsZXRpb24gc3BlY2lmaWNhdGlvbiAoYSBAdmFye2NvbXBzcGVjfSkgaGFzIGJlZW4gZGVmaW5lZAordXNpbmcgdGhlIEBjb2Rle2NvbXBsZXRlfSBidWlsdGluIChAcHhyZWZ7UHJvZ3JhbW1hYmxlIENvbXBsZXRpb24gQnVpbHRpbnN9KSwKK3RoZSBwcm9ncmFtbWFibGUgY29tcGxldGlvbiBmYWNpbGl0aWVzIGFyZSBpbnZva2VkLiAKKworRmlyc3QsIHRoZSBjb21tYW5kIG5hbWUgaXMgaWRlbnRpZmllZC4KK0lmIGEgY29tcHNwZWMgaGFzIGJlZW4gZGVmaW5lZCBmb3IgdGhhdCBjb21tYW5kLCB0aGUKK2NvbXBzcGVjIGlzIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGxpc3Qgb2YgcG9zc2libGUgY29tcGxldGlvbnMgZm9yIHRoZSB3b3JkLgorSWYgdGhlIGNvbW1hbmQgd29yZCBpcyBhIGZ1bGwgcGF0aG5hbWUsIGEgY29tcHNwZWMgZm9yIHRoZSBmdWxsCitwYXRobmFtZSBpcyBzZWFyY2hlZCBmb3IgZmlyc3QuCitJZiBubyBjb21wc3BlYyBpcyBmb3VuZCBmb3IgdGhlIGZ1bGwgcGF0aG5hbWUsIGFuIGF0dGVtcHQgaXMgbWFkZSB0bworZmluZCBhIGNvbXBzcGVjIGZvciB0aGUgcG9ydGlvbiBmb2xsb3dpbmcgdGhlIGZpbmFsIHNsYXNoLgorCitPbmNlIGEgY29tcHNwZWMgaGFzIGJlZW4gZm91bmQsIGl0IGlzIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGxpc3Qgb2YKK21hdGNoaW5nIHdvcmRzLgorSWYgYSBjb21wc3BlYyBpcyBub3QgZm91bmQsIHRoZSBkZWZhdWx0IEJhc2ggY29tcGxldGlvbgorZGVzY3JpYmVkIGFib3ZlIChAcHhyZWZ7Q29tbWFuZHMgRm9yIENvbXBsZXRpb259KSBpcyBwZXJmb3JtZWQuCisKK0ZpcnN0LCB0aGUgYWN0aW9ucyBzcGVjaWZpZWQgYnkgdGhlIGNvbXBzcGVjIGFyZSB1c2VkLgorT25seSBtYXRjaGVzIHdoaWNoIGFyZSBwcmVmaXhlZCBieSB0aGUgd29yZCBiZWluZyBjb21wbGV0ZWQgYXJlCityZXR1cm5lZC4KK1doZW4gdGhlIEBvcHRpb257LWZ9IG9yIEBvcHRpb257LWR9IG9wdGlvbiBpcyB1c2VkIGZvciBmaWxlbmFtZSBvcgorZGlyZWN0b3J5IG5hbWUgY29tcGxldGlvbiwgdGhlIHNoZWxsIHZhcmlhYmxlIEBlbnZ7RklHTk9SRX0gaXMKK3VzZWQgdG8gZmlsdGVyIHRoZSBtYXRjaGVzLgorQHhyZWZ7QmFzaCBWYXJpYWJsZXN9LCBmb3IgYSBkZXNjcmlwdGlvbiBvZiBAZW52e0ZJR05PUkV9LgorCitBbnkgY29tcGxldGlvbnMgc3BlY2lmaWVkIGJ5IGEgZmlsZW5hbWUgZXhwYW5zaW9uIHBhdHRlcm4gdG8gdGhlCitAb3B0aW9uey1HfSBvcHRpb24gYXJlIGdlbmVyYXRlZCBuZXh0LgorVGhlIHdvcmRzIGdlbmVyYXRlZCBieSB0aGUgcGF0dGVybiBuZWVkIG5vdCBtYXRjaCB0aGUgd29yZCBiZWluZyBjb21wbGV0ZWQuCitUaGUgQGVudntHTE9CSUdOT1JFfSBzaGVsbCB2YXJpYWJsZSBpcyBub3QgdXNlZCB0byBmaWx0ZXIgdGhlIG1hdGNoZXMsCitidXQgdGhlIEBlbnZ7RklHTk9SRX0gc2hlbGwgdmFyaWFibGUgaXMgdXNlZC4KKworTmV4dCwgdGhlIHN0cmluZyBzcGVjaWZpZWQgYXMgdGhlIGFyZ3VtZW50IHRvIHRoZSBAb3B0aW9uey1XfSBvcHRpb24KK2lzIGNvbnNpZGVyZWQuCitUaGUgc3RyaW5nIGlzIGZpcnN0IHNwbGl0IHVzaW5nIHRoZSBjaGFyYWN0ZXJzIGluIHRoZSBAZW52e0lGU30KK3NwZWNpYWwgdmFyaWFibGUgYXMgZGVsaW1pdGVycy4KK1NoZWxsIHF1b3RpbmcgaXMgaG9ub3JlZC4KK0VhY2ggd29yZCBpcyB0aGVuIGV4cGFuZGVkIHVzaW5nCiticmFjZSBleHBhbnNpb24sIHRpbGRlIGV4cGFuc2lvbiwgcGFyYW1ldGVyIGFuZCB2YXJpYWJsZSBleHBhbnNpb24sCitjb21tYW5kIHN1YnN0aXR1dGlvbiwgYW5kIGFyaXRobWV0aWMgZXhwYW5zaW9uLAorYXMgZGVzY3JpYmVkIGFib3ZlIChAcHhyZWZ7U2hlbGwgRXhwYW5zaW9uc30pLgorVGhlIHJlc3VsdHMgYXJlIHNwbGl0IHVzaW5nIHRoZSBydWxlcyBkZXNjcmliZWQgYWJvdmUKKyhAcHhyZWZ7V29yZCBTcGxpdHRpbmd9KS4KK1RoZSByZXN1bHRzIG9mIHRoZSBleHBhbnNpb24gYXJlIHByZWZpeC1tYXRjaGVkIGFnYWluc3QgdGhlIHdvcmQgYmVpbmcKK2NvbXBsZXRlZCwgYW5kIHRoZSBtYXRjaGluZyB3b3JkcyBiZWNvbWUgdGhlIHBvc3NpYmxlIGNvbXBsZXRpb25zLgorCitBZnRlciB0aGVzZSBtYXRjaGVzIGhhdmUgYmVlbiBnZW5lcmF0ZWQsIGFueSBzaGVsbCBmdW5jdGlvbiBvciBjb21tYW5kCitzcGVjaWZpZWQgd2l0aCB0aGUgQG9wdGlvbnstRn0gYW5kIEBvcHRpb257LUN9IG9wdGlvbnMgaXMgaW52b2tlZC4KK1doZW4gdGhlIGNvbW1hbmQgb3IgZnVuY3Rpb24gaXMgaW52b2tlZCwgdGhlIEBlbnZ7Q09NUF9MSU5FfSBhbmQKK0BlbnZ7Q09NUF9QT0lOVH0gdmFyaWFibGVzIGFyZSBhc3NpZ25lZCB2YWx1ZXMgYXMgZGVzY3JpYmVkIGFib3ZlCisoQHB4cmVme0Jhc2ggVmFyaWFibGVzfSkuCitJZiBhIHNoZWxsIGZ1bmN0aW9uIGlzIGJlaW5nIGludm9rZWQsIHRoZSBAZW52e0NPTVBfV09SRFN9IGFuZAorQGVudntDT01QX0NXT1JEfSB2YXJpYWJsZXMgYXJlIGFsc28gc2V0LgorV2hlbiB0aGUgZnVuY3Rpb24gb3IgY29tbWFuZCBpcyBpbnZva2VkLCB0aGUgZmlyc3QgYXJndW1lbnQgaXMgdGhlCituYW1lIG9mIHRoZSBjb21tYW5kIHdob3NlIGFyZ3VtZW50cyBhcmUgYmVpbmcgY29tcGxldGVkLCB0aGUKK3NlY29uZCBhcmd1bWVudCBpcyB0aGUgd29yZCBiZWluZyBjb21wbGV0ZWQsIGFuZCB0aGUgdGhpcmQgYXJndW1lbnQKK2lzIHRoZSB3b3JkIHByZWNlZGluZyB0aGUgd29yZCBiZWluZyBjb21wbGV0ZWQgb24gdGhlIGN1cnJlbnQgY29tbWFuZCBsaW5lLgorTm8gZmlsdGVyaW5nIG9mIHRoZSBnZW5lcmF0ZWQgY29tcGxldGlvbnMgYWdhaW5zdCB0aGUgd29yZCBiZWluZyBjb21wbGV0ZWQKK2lzIHBlcmZvcm1lZDsgdGhlIGZ1bmN0aW9uIG9yIGNvbW1hbmQgaGFzIGNvbXBsZXRlIGZyZWVkb20gaW4gZ2VuZXJhdGluZwordGhlIG1hdGNoZXMuCisKK0FueSBmdW5jdGlvbiBzcGVjaWZpZWQgd2l0aCBAb3B0aW9uey1GfSBpcyBpbnZva2VkIGZpcnN0LgorVGhlIGZ1bmN0aW9uIG1heSB1c2UgYW55IG9mIHRoZSBzaGVsbCBmYWNpbGl0aWVzLCBpbmNsdWRpbmcgdGhlCitAY29kZXtjb21wZ2VufSBidWlsdGluIGRlc2NyaWJlZCBiZWxvdworKEBweHJlZntQcm9ncmFtbWFibGUgQ29tcGxldGlvbiBCdWlsdGluc30pLCB0byBnZW5lcmF0ZSB0aGUgbWF0Y2hlcy4KK0l0IG11c3QgcHV0IHRoZSBwb3NzaWJsZSBjb21wbGV0aW9ucyBpbiB0aGUgQGVudntDT01QUkVQTFl9IGFycmF5Cit2YXJpYWJsZS4KKworTmV4dCwgYW55IGNvbW1hbmQgc3BlY2lmaWVkIHdpdGggdGhlIEBvcHRpb257LUN9IG9wdGlvbiBpcyBpbnZva2VkCitpbiBhbiBlbnZpcm9ubWVudCBlcXVpdmFsZW50IHRvIGNvbW1hbmQgc3Vic3RpdHV0aW9uLgorSXQgc2hvdWxkIHByaW50IGEgbGlzdCBvZiBjb21wbGV0aW9ucywgb25lIHBlciBsaW5lLCB0bwordGhlIHN0YW5kYXJkIG91dHB1dC4KK0JhY2tzbGFzaCBtYXkgYmUgdXNlZCB0byBlc2NhcGUgYSBuZXdsaW5lLCBpZiBuZWNlc3NhcnkuCisKK0FmdGVyIGFsbCBvZiB0aGUgcG9zc2libGUgY29tcGxldGlvbnMgYXJlIGdlbmVyYXRlZCwgYW55IGZpbHRlcgorc3BlY2lmaWVkIHdpdGggdGhlIEBvcHRpb257LVh9IG9wdGlvbiBpcyBhcHBsaWVkIHRvIHRoZSBsaXN0LgorVGhlIGZpbHRlciBpcyBhIHBhdHRlcm4gYXMgdXNlZCBmb3IgcGF0aG5hbWUgZXhwYW5zaW9uOyBhIEBzYW1weyZ9CitpbiB0aGUgcGF0dGVybiBpcyByZXBsYWNlZCB3aXRoIHRoZSB0ZXh0IG9mIHRoZSB3b3JkIGJlaW5nIGNvbXBsZXRlZC4KK0EgbGl0ZXJhbCBAc2FtcHsmfSBtYXkgYmUgZXNjYXBlZCB3aXRoIGEgYmFja3NsYXNoOyB0aGUgYmFja3NsYXNoCitpcyByZW1vdmVkIGJlZm9yZSBhdHRlbXB0aW5nIGEgbWF0Y2guCitBbnkgY29tcGxldGlvbiB0aGF0IG1hdGNoZXMgdGhlIHBhdHRlcm4gd2lsbCBiZSByZW1vdmVkIGZyb20gdGhlIGxpc3QuCitBIGxlYWRpbmcgQHNhbXB7IX0gbmVnYXRlcyB0aGUgcGF0dGVybjsgaW4gdGhpcyBjYXNlIGFueSBjb21wbGV0aW9uCitub3QgbWF0Y2hpbmcgdGhlIHBhdHRlcm4gd2lsbCBiZSByZW1vdmVkLgorCitGaW5hbGx5LCBhbnkgcHJlZml4IGFuZCBzdWZmaXggc3BlY2lmaWVkIHdpdGggdGhlIEBvcHRpb257LVB9IGFuZCBAb3B0aW9uey1TfQorb3B0aW9ucyBhcmUgYWRkZWQgdG8gZWFjaCBtZW1iZXIgb2YgdGhlIGNvbXBsZXRpb24gbGlzdCwgYW5kIHRoZSByZXN1bHQgaXMKK3JldHVybmVkIHRvIHRoZSBSZWFkbGluZSBjb21wbGV0aW9uIGNvZGUgYXMgdGhlIGxpc3Qgb2YgcG9zc2libGUKK2NvbXBsZXRpb25zLgorCitJZiB0aGUgcHJldmlvdXNseS1hcHBsaWVkIGFjdGlvbnMgZG8gbm90IGdlbmVyYXRlIGFueSBtYXRjaGVzLCBhbmQgdGhlCitAb3B0aW9uey1vIGRpcm5hbWVzfSBvcHRpb24gd2FzIHN1cHBsaWVkIHRvIEBjb2Rle2NvbXBsZXRlfSB3aGVuIHRoZQorY29tcHNwZWMgd2FzIGRlZmluZWQsIGRpcmVjdG9yeSBuYW1lIGNvbXBsZXRpb24gaXMgYXR0ZW1wdGVkLiAKKworSWYgdGhlIEBvcHRpb257LW8gcGx1c2RpcnN9IG9wdGlvbiB3YXMgc3VwcGxpZWQgdG8gQGNvZGV7Y29tcGxldGV9IHdoZW4KK3RoZSBjb21wc3BlYyB3YXMgZGVmaW5lZCwgZGlyZWN0b3J5IG5hbWUgY29tcGxldGlvbiBpcyBhdHRlbXB0ZWQgYW5kIGFueQorbWF0Y2hlcyBhcmUgYWRkZWQgdG8gdGhlIHJlc3VsdHMgb2YgdGhlIG90aGVyIGFjdGlvbnMuCisKK0J5IGRlZmF1bHQsIGlmIGEgY29tcHNwZWMgaXMgZm91bmQsIHdoYXRldmVyIGl0IGdlbmVyYXRlcyBpcyByZXR1cm5lZCB0bwordGhlIGNvbXBsZXRpb24gY29kZSBhcyB0aGUgZnVsbCBzZXQgb2YgcG9zc2libGUgY29tcGxldGlvbnMuCitUaGUgZGVmYXVsdCBCYXNoIGNvbXBsZXRpb25zIGFyZSBub3QgYXR0ZW1wdGVkLCBhbmQgdGhlIFJlYWRsaW5lIGRlZmF1bHQKK29mIGZpbGVuYW1lIGNvbXBsZXRpb24gaXMgZGlzYWJsZWQuCitJZiB0aGUgQG9wdGlvbnstbyBiYXNoZGVmYXVsdH0gb3B0aW9uIHdhcyBzdXBwbGllZCB0byBAY29kZXtjb21wbGV0ZX0gd2hlbgordGhlIGNvbXBzcGVjIHdhcyBkZWZpbmVkLCB0aGUgZGVmYXVsdCBCYXNoIGNvbXBsZXRpb25zIGFyZSBhdHRlbXB0ZWQKK2lmIHRoZSBjb21wc3BlYyBnZW5lcmF0ZXMgbm8gbWF0Y2hlcy4KK0lmIHRoZSBAb3B0aW9uey1vIGRlZmF1bHR9IG9wdGlvbiB3YXMgc3VwcGxpZWQgdG8gQGNvZGV7Y29tcGxldGV9IHdoZW4gdGhlCitjb21wc3BlYyB3YXMgZGVmaW5lZCwgUmVhZGxpbmUncyBkZWZhdWx0IGNvbXBsZXRpb24gd2lsbCBiZSBwZXJmb3JtZWQKK2lmIHRoZSBjb21wc3BlYyAoYW5kLCBpZiBhdHRlbXB0ZWQsIHRoZSBkZWZhdWx0IEJhc2ggY29tcGxldGlvbnMpCitnZW5lcmF0ZSBubyBtYXRjaGVzLgorCitXaGVuIGEgY29tcHNwZWMgaW5kaWNhdGVzIHRoYXQgZGlyZWN0b3J5IG5hbWUgY29tcGxldGlvbiBpcyBkZXNpcmVkLAordGhlIHByb2dyYW1tYWJsZSBjb21wbGV0aW9uIGZ1bmN0aW9ucyBmb3JjZSBSZWFkbGluZSB0byBhcHBlbmQgYSBzbGFzaAordG8gY29tcGxldGVkIG5hbWVzIHdoaWNoIGFyZSBzeW1ib2xpYyBsaW5rcyB0byBkaXJlY3Rvcmllcywgc3ViamVjdCB0bwordGhlIHZhbHVlIG9mIHRoZSBAdmFye21hcmstZGlyZWN0b3JpZXN9IFJlYWRsaW5lIHZhcmlhYmxlLCByZWdhcmRsZXNzCitvZiB0aGUgc2V0dGluZyBvZiB0aGUgQHZhcnttYXJrLXN5bWxpbmtlZC1kaXJlY3Rvcmllc30gUmVhZGxpbmUgdmFyaWFibGUuCisKK0Bub2RlIFByb2dyYW1tYWJsZSBDb21wbGV0aW9uIEJ1aWx0aW5zCitAc2VjdGlvbiBQcm9ncmFtbWFibGUgQ29tcGxldGlvbiBCdWlsdGlucworQGNpbmRleCBjb21wbGV0aW9uIGJ1aWx0aW5zCisKK1R3byBidWlsdGluIGNvbW1hbmRzIGFyZSBhdmFpbGFibGUgdG8gbWFuaXB1bGF0ZSB0aGUgcHJvZ3JhbW1hYmxlIGNvbXBsZXRpb24KK2ZhY2lsaXRpZXMuCisKK0B0YWJsZSBAY29kZQorQGl0ZW0gY29tcGdlbgorQGJ0aW5kZXggY29tcGdlbgorQGV4YW1wbGUKK0Bjb2Rle2NvbXBnZW4gW0B2YXJ7b3B0aW9ufV0gW0B2YXJ7d29yZH1dfQorQGVuZCBleGFtcGxlCisKK0dlbmVyYXRlIHBvc3NpYmxlIGNvbXBsZXRpb24gbWF0Y2hlcyBmb3IgQHZhcnt3b3JkfSBhY2NvcmRpbmcgdG8KK3RoZSBAdmFye29wdGlvbn1zLCB3aGljaCBtYXkgYmUgYW55IG9wdGlvbiBhY2NlcHRlZCBieSB0aGUKK0Bjb2Rle2NvbXBsZXRlfQorYnVpbHRpbiB3aXRoIHRoZSBleGNlcHRpb24gb2YgQG9wdGlvbnstcH0gYW5kIEBvcHRpb257LXJ9LCBhbmQgd3JpdGUKK3RoZSBtYXRjaGVzIHRvIHRoZSBzdGFuZGFyZCBvdXRwdXQuCitXaGVuIHVzaW5nIHRoZSBAb3B0aW9uey1GfSBvciBAb3B0aW9uey1DfSBvcHRpb25zLCB0aGUgdmFyaW91cyBzaGVsbCB2YXJpYWJsZXMKK3NldCBieSB0aGUgcHJvZ3JhbW1hYmxlIGNvbXBsZXRpb24gZmFjaWxpdGllcywgd2hpbGUgYXZhaWxhYmxlLCB3aWxsIG5vdAoraGF2ZSB1c2VmdWwgdmFsdWVzLgorCitUaGUgbWF0Y2hlcyB3aWxsIGJlIGdlbmVyYXRlZCBpbiB0aGUgc2FtZSB3YXkgYXMgaWYgdGhlIHByb2dyYW1tYWJsZQorY29tcGxldGlvbiBjb2RlIGhhZCBnZW5lcmF0ZWQgdGhlbSBkaXJlY3RseSBmcm9tIGEgY29tcGxldGlvbiBzcGVjaWZpY2F0aW9uCit3aXRoIHRoZSBzYW1lIGZsYWdzLgorSWYgQHZhcnt3b3JkfSBpcyBzcGVjaWZpZWQsIG9ubHkgdGhvc2UgY29tcGxldGlvbnMgbWF0Y2hpbmcgQHZhcnt3b3JkfQord2lsbCBiZSBkaXNwbGF5ZWQuCisKK1RoZSByZXR1cm4gdmFsdWUgaXMgdHJ1ZSB1bmxlc3MgYW4gaW52YWxpZCBvcHRpb24gaXMgc3VwcGxpZWQsIG9yIG5vCittYXRjaGVzIHdlcmUgZ2VuZXJhdGVkLgorCitAaXRlbSBjb21wbGV0ZQorQGJ0aW5kZXggY29tcGxldGUKK0BleGFtcGxlCitAY29kZXtjb21wbGV0ZSBbLWFiY2RlZmdqa3N1dl0gWy1vIEB2YXJ7Y29tcC1vcHRpb259XSBbLUEgQHZhcnthY3Rpb259XSBbLUcgQHZhcntnbG9icGF0fV0gWy1XIEB2YXJ7d29yZGxpc3R9XQorWy1QIEB2YXJ7cHJlZml4fV0gWy1TIEB2YXJ7c3VmZml4fV0gWy1YIEB2YXJ7ZmlsdGVycGF0fV0gWy1GIEB2YXJ7ZnVuY3Rpb259XQorWy1DIEB2YXJ7Y29tbWFuZH1dIEB2YXJ7bmFtZX0gW0B2YXJ7bmFtZX0gQGRvdHN7fV19CitAY29kZXtjb21wbGV0ZSAtcHIgW0B2YXJ7bmFtZX0gQGRvdHN7fV19CitAZW5kIGV4YW1wbGUKKworU3BlY2lmeSBob3cgYXJndW1lbnRzIHRvIGVhY2ggQHZhcntuYW1lfSBzaG91bGQgYmUgY29tcGxldGVkLgorSWYgdGhlIEBvcHRpb257LXB9IG9wdGlvbiBpcyBzdXBwbGllZCwgb3IgaWYgbm8gb3B0aW9ucyBhcmUgc3VwcGxpZWQsIGV4aXN0aW5nCitjb21wbGV0aW9uIHNwZWNpZmljYXRpb25zIGFyZSBwcmludGVkIGluIGEgd2F5IHRoYXQgYWxsb3dzIHRoZW0gdG8gYmUKK3JldXNlZCBhcyBpbnB1dC4KK1RoZSBAb3B0aW9uey1yfSBvcHRpb24gcmVtb3ZlcyBhIGNvbXBsZXRpb24gc3BlY2lmaWNhdGlvbiBmb3IKK2VhY2ggQHZhcntuYW1lfSwgb3IsIGlmIG5vIEB2YXJ7bmFtZX1zIGFyZSBzdXBwbGllZCwgYWxsCitjb21wbGV0aW9uIHNwZWNpZmljYXRpb25zLgorCitUaGUgcHJvY2VzcyBvZiBhcHBseWluZyB0aGVzZSBjb21wbGV0aW9uIHNwZWNpZmljYXRpb25zIHdoZW4gd29yZCBjb21wbGV0aW9uCitpcyBhdHRlbXB0ZWQgaXMgZGVzY3JpYmVkIGFib3ZlIChAcHhyZWZ7UHJvZ3JhbW1hYmxlIENvbXBsZXRpb259KS4KKworT3RoZXIgb3B0aW9ucywgaWYgc3BlY2lmaWVkLCBoYXZlIHRoZSBmb2xsb3dpbmcgbWVhbmluZ3MuCitUaGUgYXJndW1lbnRzIHRvIHRoZSBAb3B0aW9uey1HfSwgQG9wdGlvbnstV30sIGFuZCBAb3B0aW9uey1YfSBvcHRpb25zCisoYW5kLCBpZiBuZWNlc3NhcnksIHRoZSBAb3B0aW9uey1QfSBhbmQgQG9wdGlvbnstU30gb3B0aW9ucykKK3Nob3VsZCBiZSBxdW90ZWQgdG8gcHJvdGVjdCB0aGVtIGZyb20gZXhwYW5zaW9uIGJlZm9yZSB0aGUKK0Bjb2Rle2NvbXBsZXRlfSBidWlsdGluIGlzIGludm9rZWQuCisKKworQHRhYmxlIEBjb2RlCitAaXRlbSAtbyBAdmFye2NvbXAtb3B0aW9ufQorVGhlIEB2YXJ7Y29tcC1vcHRpb259IGNvbnRyb2xzIHNldmVyYWwgYXNwZWN0cyBvZiB0aGUgY29tcHNwZWMncyBiZWhhdmlvcgorYmV5b25kIHRoZSBzaW1wbGUgZ2VuZXJhdGlvbiBvZiBjb21wbGV0aW9ucy4KK0B2YXJ7Y29tcC1vcHRpb259IG1heSBiZSBvbmUgb2Y6IAorCitAdGFibGUgQGNvZGUKKworQGl0ZW0gYmFzaGRlZmF1bHQKK1BlcmZvcm0gdGhlIHJlc3Qgb2YgdGhlIGRlZmF1bHQgQmFzaCBjb21wbGV0aW9ucyBpZiB0aGUgY29tcHNwZWMKK2dlbmVyYXRlcyBubyBtYXRjaGVzLgorCitAaXRlbSBkZWZhdWx0CitVc2UgUmVhZGxpbmUncyBkZWZhdWx0IGZpbGVuYW1lIGNvbXBsZXRpb24gaWYgdGhlIGNvbXBzcGVjIGdlbmVyYXRlcworbm8gbWF0Y2hlcy4KKworQGl0ZW0gZGlybmFtZXMKK1BlcmZvcm0gZGlyZWN0b3J5IG5hbWUgY29tcGxldGlvbiBpZiB0aGUgY29tcHNwZWMgZ2VuZXJhdGVzIG5vIG1hdGNoZXMuCisKK0BpdGVtIGZpbGVuYW1lcworVGVsbCBSZWFkbGluZSB0aGF0IHRoZSBjb21wc3BlYyBnZW5lcmF0ZXMgZmlsZW5hbWVzLCBzbyBpdCBjYW4gcGVyZm9ybSBhbnkKK2ZpbGVuYW1lLXNwZWNpZmljIHByb2Nlc3NpbmcgKGxpa2UgYWRkaW5nIGEgc2xhc2ggdG8gZGlyZWN0b3J5IG5hbWVzIG9yCitzdXBwcmVzc2luZyB0cmFpbGluZyBzcGFjZXMpLiAgVGhpcyBvcHRpb24gaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoCitzaGVsbCBmdW5jdGlvbnMgc3BlY2lmaWVkIHdpdGggQG9wdGlvbnstRn0uCisKK0BpdGVtIG5vc3BhY2UKK1RlbGwgUmVhZGxpbmUgbm90IHRvIGFwcGVuZCBhIHNwYWNlICh0aGUgZGVmYXVsdCkgdG8gd29yZHMgY29tcGxldGVkIGF0Cit0aGUgZW5kIG9mIHRoZSBsaW5lLgorCitAaXRlbSBwbHVzZGlycworQWZ0ZXIgYW55IG1hdGNoZXMgZGVmaW5lZCBieSB0aGUgY29tcHNwZWMgYXJlIGdlbmVyYXRlZCwgCitkaXJlY3RvcnkgbmFtZSBjb21wbGV0aW9uIGlzIGF0dGVtcHRlZCBhbmQgYW55CittYXRjaGVzIGFyZSBhZGRlZCB0byB0aGUgcmVzdWx0cyBvZiB0aGUgb3RoZXIgYWN0aW9ucy4KKworQGVuZCB0YWJsZQorCitAaXRlbSAtQSBAdmFye2FjdGlvbn0KK1RoZSBAdmFye2FjdGlvbn0gbWF5IGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nIHRvIGdlbmVyYXRlIGEgbGlzdCBvZiBwb3NzaWJsZQorY29tcGxldGlvbnM6CisKK0B0YWJsZSBAY29kZQorQGl0ZW0gYWxpYXMKK0FsaWFzIG5hbWVzLiAgTWF5IGFsc28gYmUgc3BlY2lmaWVkIGFzIEBvcHRpb257LWF9LgorCitAaXRlbSBhcnJheXZhcgorQXJyYXkgdmFyaWFibGUgbmFtZXMuCisKK0BpdGVtIGJpbmRpbmcKK1JlYWRsaW5lIGtleSBiaW5kaW5nIG5hbWVzIChAcHhyZWZ7QmluZGFibGUgUmVhZGxpbmUgQ29tbWFuZHN9KS4KKworQGl0ZW0gYnVpbHRpbgorTmFtZXMgb2Ygc2hlbGwgYnVpbHRpbiBjb21tYW5kcy4gIE1heSBhbHNvIGJlIHNwZWNpZmllZCBhcyBAb3B0aW9uey1ifS4KKworQGl0ZW0gY29tbWFuZAorQ29tbWFuZCBuYW1lcy4gIE1heSBhbHNvIGJlIHNwZWNpZmllZCBhcyBAb3B0aW9uey1jfS4KKworQGl0ZW0gZGlyZWN0b3J5CitEaXJlY3RvcnkgbmFtZXMuICBNYXkgYWxzbyBiZSBzcGVjaWZpZWQgYXMgQG9wdGlvbnstZH0uCisKK0BpdGVtIGRpc2FibGVkCitOYW1lcyBvZiBkaXNhYmxlZCBzaGVsbCBidWlsdGlucy4KKworQGl0ZW0gZW5hYmxlZAorTmFtZXMgb2YgZW5hYmxlZCBzaGVsbCBidWlsdGlucy4KKworQGl0ZW0gZXhwb3J0CitOYW1lcyBvZiBleHBvcnRlZCBzaGVsbCB2YXJpYWJsZXMuICBNYXkgYWxzbyBiZSBzcGVjaWZpZWQgYXMgQG9wdGlvbnstZX0uCisKK0BpdGVtIGZpbGUKK0ZpbGUgbmFtZXMuICBNYXkgYWxzbyBiZSBzcGVjaWZpZWQgYXMgQG9wdGlvbnstZn0uCisKK0BpdGVtIGZ1bmN0aW9uCitOYW1lcyBvZiBzaGVsbCBmdW5jdGlvbnMuCisKK0BpdGVtIGdyb3VwCitHcm91cCBuYW1lcy4gIE1heSBhbHNvIGJlIHNwZWNpZmllZCBhcyBAb3B0aW9uey1nfS4KKworQGl0ZW0gaGVscHRvcGljCitIZWxwIHRvcGljcyBhcyBhY2NlcHRlZCBieSB0aGUgQGNvZGV7aGVscH0gYnVpbHRpbiAoQHB4cmVme0Jhc2ggQnVpbHRpbnN9KS4KKworQGl0ZW0gaG9zdG5hbWUKK0hvc3RuYW1lcywgYXMgdGFrZW4gZnJvbSB0aGUgZmlsZSBzcGVjaWZpZWQgYnkgdGhlCitAZW52e0hPU1RGSUxFfSBzaGVsbCB2YXJpYWJsZSAoQHB4cmVme0Jhc2ggVmFyaWFibGVzfSkuCisKK0BpdGVtIGpvYgorSm9iIG5hbWVzLCBpZiBqb2IgY29udHJvbCBpcyBhY3RpdmUuICBNYXkgYWxzbyBiZSBzcGVjaWZpZWQgYXMgQG9wdGlvbnstan0uCisKK0BpdGVtIGtleXdvcmQKK1NoZWxsIHJlc2VydmVkIHdvcmRzLiAgTWF5IGFsc28gYmUgc3BlY2lmaWVkIGFzIEBvcHRpb257LWt9LgorCitAaXRlbSBydW5uaW5nCitOYW1lcyBvZiBydW5uaW5nIGpvYnMsIGlmIGpvYiBjb250cm9sIGlzIGFjdGl2ZS4KKworQGl0ZW0gc2VydmljZQorU2VydmljZSBuYW1lcy4gIE1heSBhbHNvIGJlIHNwZWNpZmllZCBhcyBAb3B0aW9uey1zfS4KKworQGl0ZW0gc2V0b3B0CitWYWxpZCBhcmd1bWVudHMgZm9yIHRoZSBAb3B0aW9uey1vfSBvcHRpb24gdG8gdGhlIEBjb2Rle3NldH0gYnVpbHRpbgorKEBweHJlZntUaGUgU2V0IEJ1aWx0aW59KS4KKworQGl0ZW0gc2hvcHQKK1NoZWxsIG9wdGlvbiBuYW1lcyBhcyBhY2NlcHRlZCBieSB0aGUgQGNvZGV7c2hvcHR9IGJ1aWx0aW4KKyhAcHhyZWZ7QmFzaCBCdWlsdGluc30pLgorCitAaXRlbSBzaWduYWwKK1NpZ25hbCBuYW1lcy4KKworQGl0ZW0gc3RvcHBlZAorTmFtZXMgb2Ygc3RvcHBlZCBqb2JzLCBpZiBqb2IgY29udHJvbCBpcyBhY3RpdmUuCisKK0BpdGVtIHVzZXIKK1VzZXIgbmFtZXMuICBNYXkgYWxzbyBiZSBzcGVjaWZpZWQgYXMgQG9wdGlvbnstdX0uCisKK0BpdGVtIHZhcmlhYmxlCitOYW1lcyBvZiBhbGwgc2hlbGwgdmFyaWFibGVzLiAgTWF5IGFsc28gYmUgc3BlY2lmaWVkIGFzIEBvcHRpb257LXZ9LgorQGVuZCB0YWJsZQorCitAaXRlbSAtRyBAdmFye2dsb2JwYXR9CitUaGUgZmlsZW5hbWUgZXhwYW5zaW9uIHBhdHRlcm4gQHZhcntnbG9icGF0fSBpcyBleHBhbmRlZCB0byBnZW5lcmF0ZQordGhlIHBvc3NpYmxlIGNvbXBsZXRpb25zLgorCitAaXRlbSAtVyBAdmFye3dvcmRsaXN0fQorVGhlIEB2YXJ7d29yZGxpc3R9IGlzIHNwbGl0IHVzaW5nIHRoZSBjaGFyYWN0ZXJzIGluIHRoZQorQGVudntJRlN9IHNwZWNpYWwgdmFyaWFibGUgYXMgZGVsaW1pdGVycywgYW5kIGVhY2ggcmVzdWx0YW50IHdvcmQKK2lzIGV4cGFuZGVkLgorVGhlIHBvc3NpYmxlIGNvbXBsZXRpb25zIGFyZSB0aGUgbWVtYmVycyBvZiB0aGUgcmVzdWx0YW50IGxpc3Qgd2hpY2gKK21hdGNoIHRoZSB3b3JkIGJlaW5nIGNvbXBsZXRlZC4KKworQGl0ZW0gLUMgQHZhcntjb21tYW5kfQorQHZhcntjb21tYW5kfSBpcyBleGVjdXRlZCBpbiBhIHN1YnNoZWxsIGVudmlyb25tZW50LCBhbmQgaXRzIG91dHB1dCBpcwordXNlZCBhcyB0aGUgcG9zc2libGUgY29tcGxldGlvbnMuCisKK0BpdGVtIC1GIEB2YXJ7ZnVuY3Rpb259CitUaGUgc2hlbGwgZnVuY3Rpb24gQHZhcntmdW5jdGlvbn0gaXMgZXhlY3V0ZWQgaW4gdGhlIGN1cnJlbnQgc2hlbGwKK2Vudmlyb25tZW50LgorV2hlbiBpdCBmaW5pc2hlcywgdGhlIHBvc3NpYmxlIGNvbXBsZXRpb25zIGFyZSByZXRyaWV2ZWQgZnJvbSB0aGUgdmFsdWUKK29mIHRoZSBAZW52e0NPTVBSRVBMWX0gYXJyYXkgdmFyaWFibGUuCisKK0BpdGVtIC1YIEB2YXJ7ZmlsdGVycGF0fQorQHZhcntmaWx0ZXJwYXR9IGlzIGEgcGF0dGVybiBhcyB1c2VkIGZvciBmaWxlbmFtZSBleHBhbnNpb24uCitJdCBpcyBhcHBsaWVkIHRvIHRoZSBsaXN0IG9mIHBvc3NpYmxlIGNvbXBsZXRpb25zIGdlbmVyYXRlZCBieSB0aGUKK3ByZWNlZGluZyBvcHRpb25zIGFuZCBhcmd1bWVudHMsIGFuZCBlYWNoIGNvbXBsZXRpb24gbWF0Y2hpbmcKK0B2YXJ7ZmlsdGVycGF0fSBpcyByZW1vdmVkIGZyb20gdGhlIGxpc3QuCitBIGxlYWRpbmcgQHNhbXB7IX0gaW4gQHZhcntmaWx0ZXJwYXR9IG5lZ2F0ZXMgdGhlIHBhdHRlcm47IGluIHRoaXMKK2Nhc2UsIGFueSBjb21wbGV0aW9uIG5vdCBtYXRjaGluZyBAdmFye2ZpbHRlcnBhdH0gaXMgcmVtb3ZlZC4KKworQGl0ZW0gLVAgQHZhcntwcmVmaXh9CitAdmFye3ByZWZpeH0gaXMgYWRkZWQgYXQgdGhlIGJlZ2lubmluZyBvZiBlYWNoIHBvc3NpYmxlIGNvbXBsZXRpb24KK2FmdGVyIGFsbCBvdGhlciBvcHRpb25zIGhhdmUgYmVlbiBhcHBsaWVkLgorCitAaXRlbSAtUyBAdmFye3N1ZmZpeH0KK0B2YXJ7c3VmZml4fSBpcyBhcHBlbmRlZCB0byBlYWNoIHBvc3NpYmxlIGNvbXBsZXRpb24KK2FmdGVyIGFsbCBvdGhlciBvcHRpb25zIGhhdmUgYmVlbiBhcHBsaWVkLgorQGVuZCB0YWJsZQorCitUaGUgcmV0dXJuIHZhbHVlIGlzIHRydWUgdW5sZXNzIGFuIGludmFsaWQgb3B0aW9uIGlzIHN1cHBsaWVkLCBhbiBvcHRpb24KK290aGVyIHRoYW4gQG9wdGlvbnstcH0gb3IgQG9wdGlvbnstcn0gaXMgc3VwcGxpZWQgd2l0aG91dCBhIEB2YXJ7bmFtZX0KK2FyZ3VtZW50LCBhbiBhdHRlbXB0IGlzIG1hZGUgdG8gcmVtb3ZlIGEgY29tcGxldGlvbiBzcGVjaWZpY2F0aW9uIGZvcgorYSBAdmFye25hbWV9IGZvciB3aGljaCBubyBzcGVjaWZpY2F0aW9uIGV4aXN0cywgb3IKK2FuIGVycm9yIG9jY3VycyBhZGRpbmcgYSBjb21wbGV0aW9uIHNwZWNpZmljYXRpb24uCisKK0BlbmQgdGFibGUKK0BlbmQgaWZzZXQKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2RvYy9ybHVzZXJtYW4uZHZpIGIvcmVhZGxpbmUvZG9jL3JsdXNlcm1hbi5kdmkKaW5kZXggYTIzMzlhYS4uNzcyNzg2NSAxMDA2NDQKLS0tIGEvcmVhZGxpbmUvZG9jL3JsdXNlcm1hbi5kdmkKKysrIGIvcmVhZGxpbmUvZG9jL3JsdXNlcm1hbi5kdmkKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvZG9jL3JsdXNlcm1hbi5odG1sIGIvcmVhZGxpbmUvZG9jL3JsdXNlcm1hbi5odG1sCmluZGV4IGFjOGJmYmQuLjNkODU5NWIgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL2RvYy9ybHVzZXJtYW4uaHRtbAorKysgYi9yZWFkbGluZS9kb2Mvcmx1c2VybWFuLmh0bWwKQEAgLTEsNiArMSw2IEBACiA8SFRNTD4KIDwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPgotPCEtLSBDcmVhdGVkIG9uIEp1bmUsIDI3ICAyMDAyIGJ5IHRleGkyaHRtbCAxLjY0IC0tPgorPCEtLSBDcmVhdGVkIG9uIERlY2VtYmVyLCA2ICAyMDA1IGJ5IHRleGkyaHRtbCAxLjY0IC0tPgogPCEtLSAKIFdyaXR0ZW4gYnk6IExpb25lbCBDb25zIDxMaW9uZWwuQ29uc0BjZXJuLmNoPiAob3JpZ2luYWwgYXV0aG9yKQogICAgICAgICAgICAgS2FybCBCZXJyeSAgPGthcmxAZnJlZWZyaWVuZHMub3JnPgpAQCAtMzQsMTEgKzM0LDEyIEBACiAKIFRoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIHRoZSBlbmQgdXNlciBpbnRlcmZhY2Ugb2YgdGhlIEdOVSBSZWFkbGluZSBMaWJyYXJ5LAogYSB1dGlsaXR5IHdoaWNoIGFpZHMgaW4gdGhlIGNvbnNpc3RlbmN5IG9mIHVzZXIgaW50ZXJmYWNlIGFjcm9zcyBkaXNjcmV0ZQotcHJvZ3JhbXMgdGhhdCBuZWVkIHRvIHByb3ZpZGUgYSBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLgorcHJvZ3JhbXMgd2hpY2ggcHJvdmlkZSBhIGNvbW1hbmQgbGluZSBpbnRlcmZhY2UuCiA8L1A+PFA+CiAKIDxCTE9DS1FVT1RFPjxUQUJMRSBCT1JERVI9MCBDRUxMU1BBQ0lORz0wPiAKIDxUUj48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj48QSBIUkVGPSJybHVzZXJtYW4uaHRtbCNTRUMxIj4xLiBDb21tYW5kIExpbmUgRWRpdGluZzwvQT48L1REPjxURD4mbmJzcDsmbmJzcDs8L1REPjxURCBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPkdOVSBSZWFkbGluZSBVc2VyJ3MgTWFudWFsLjwvVEQ+PC9UUj4KKzxUUj48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj48QSBIUkVGPSJybHVzZXJtYW4uaHRtbCNTRUMyMyI+QS4gQ29weWluZyBUaGlzIE1hbnVhbDwvQT48L1REPjxURD4mbmJzcDsmbmJzcDs8L1REPjxURCBBTElHTj0ibGVmdCIgVkFMSUdOPSJUT1AiPjwvVEQ+PC9UUj4KIDwvVEFCTEU+PC9CTE9DS1FVT1RFPgogPFA+CiAKQEAgLTQ5LDcgKzUwLDcgQEAKIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJybHVzZXJtYW4uaHRtbCNTRUMyIj4gJmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPlsgJmx0OyZsdDsgXTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmx1c2VybWFuLmh0bWwjU0VDX1RvcCI+IFVwIDwvQT5dPC9URD4KLTxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPlsgJmd0OyZndDsgXTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmx1c2VybWFuLmh0bWwjU0VDMjMiPiAmZ3Q7Jmd0OyA8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJybHVzZXJtYW4uaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+CiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmx1c2VybWFuLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPltJbmRleF08L1REPgpAQCAtODMsNyArODQsNyBAQAogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJsdXNlcm1hbi5odG1sI1NFQzMiPiAmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WyAmbHQ7Jmx0OyBdPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJybHVzZXJtYW4uaHRtbCNTRUMxIj4gVXAgPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WyAmZ3Q7Jmd0OyBdPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJybHVzZXJtYW4uaHRtbCNTRUMyMyI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJsdXNlcm1hbi5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJybHVzZXJtYW4uaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+W0luZGV4XTwvVEQ+CkBAIC01NTgsNyArNTU5LDEyIEBACiA8L3ByZT48L3RkPjwvdHI+PC90YWJsZT48L1A+PFA+CiAKIFZhcmlhYmxlIG5hbWVzIGFuZCB2YWx1ZXMsIHdoZXJlIGFwcHJvcHJpYXRlLCBhcmUgcmVjb2duaXplZCB3aXRob3V0IHJlZ2FyZAotdG8gY2FzZS4gCit0byBjYXNlLiAgVW5yZWNvZ25pemVkIHZhcmlhYmxlIG5hbWVzIGFyZSBpZ25vcmVkLgorPC9QPjxQPgorCitCb29sZWFuIHZhcmlhYmxlcyAodGhvc2UgdGhhdCBjYW4gYmUgc2V0IHRvIG9uIG9yIG9mZikgYXJlIHNldCB0byBvbiBpZgordGhlIHZhbHVlIGlzIG51bGwgb3IgZW1wdHksIDxWQVI+b248L1ZBUj4gKGNhc2UtaW5zZW5zaXRpdmUpLCBvciAxLiAgQW55IG90aGVyCit2YWx1ZSByZXN1bHRzIGluIHRoZSB2YXJpYWJsZSBiZWluZyBzZXQgdG8gb2ZmLgogPC9QPjxQPgogCiBBIGdyZWF0IGRlYWwgb2YgcnVuLXRpbWUgYmVoYXZpb3IgaXMgY2hhbmdlYWJsZSB3aXRoIHRoZSBmb2xsb3dpbmcKQEAgLTU3Nyw4ICs1ODMsMTUgQEAKIHRoZSB0ZXJtaW5hbCdzIGJlbGwuCiA8UD4KIAotPERUPjxDT0RFPmNvbW1lbnQtYmVnaW48L0NPREU+Cis8RFQ+PENPREU+YmluZC10dHktc3BlY2lhbC1jaGFyczwvQ09ERT4KIDxERD48QSBOQU1FPSJJRFg2Ij48L0E+CitJZiBzZXQgdG8gPFNBTVA+YG9uJzwvU0FNUD4sIFJlYWRsaW5lIGF0dGVtcHRzIHRvIGJpbmQgdGhlIGNvbnRyb2wgY2hhcmFjdGVycyAgCit0cmVhdGVkIHNwZWNpYWxseSBieSB0aGUga2VybmVsJ3MgdGVybWluYWwgZHJpdmVyIHRvIHRoZWlyIFJlYWRsaW5lCitlcXVpdmFsZW50cy4KKzxQPgorCis8RFQ+PENPREU+Y29tbWVudC1iZWdpbjwvQ09ERT4KKzxERD48QSBOQU1FPSJJRFg3Ij48L0E+CiBUaGUgc3RyaW5nIHRvIGluc2VydCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lIHdoZW4gdGhlCiA8Q09ERT5pbnNlcnQtY29tbWVudDwvQ09ERT4gY29tbWFuZCBpcyBleGVjdXRlZC4gIFRoZSBkZWZhdWx0IHZhbHVlCiBpcyA8Q09ERT4iIyI8L0NPREU+LgpAQCAtNTkxLDE4ICs2MDQsMTkgQEAKIDxQPgogCiA8RFQ+PENPREU+Y29tcGxldGlvbi1xdWVyeS1pdGVtczwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg3Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYOCI+PC9BPgogVGhlIG51bWJlciBvZiBwb3NzaWJsZSBjb21wbGV0aW9ucyB0aGF0IGRldGVybWluZXMgd2hlbiB0aGUgdXNlciBpcwotYXNrZWQgd2hldGhlciBoZSB3YW50cyB0byBzZWUgdGhlIGxpc3Qgb2YgcG9zc2liaWxpdGllcy4gIElmIHRoZQotbnVtYmVyIG9mIHBvc3NpYmxlIGNvbXBsZXRpb25zIGlzIGdyZWF0ZXIgdGhhbiB0aGlzIHZhbHVlLAorYXNrZWQgd2hldGhlciB0aGUgbGlzdCBvZiBwb3NzaWJpbGl0aWVzIHNob3VsZCBiZSBkaXNwbGF5ZWQuCitJZiB0aGUgbnVtYmVyIG9mIHBvc3NpYmxlIGNvbXBsZXRpb25zIGlzIGdyZWF0ZXIgdGhhbiB0aGlzIHZhbHVlLAogUmVhZGxpbmUgd2lsbCBhc2sgdGhlIHVzZXIgd2hldGhlciBvciBub3QgaGUgd2lzaGVzIHRvIHZpZXcKIHRoZW07IG90aGVyd2lzZSwgdGhleSBhcmUgc2ltcGx5IGxpc3RlZC4KIFRoaXMgdmFyaWFibGUgbXVzdCBiZSBzZXQgdG8gYW4gaW50ZWdlciB2YWx1ZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMC4KK0EgbmVnYXRpdmUgdmFsdWUgbWVhbnMgUmVhZGxpbmUgc2hvdWxkIG5ldmVyIGFzay4KIFRoZSBkZWZhdWx0IGxpbWl0IGlzIDxDT0RFPjEwMDwvQ09ERT4uCiA8UD4KIAogPERUPjxDT0RFPmNvbnZlcnQtbWV0YTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg4Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYOSI+PC9BPgogSWYgc2V0IHRvIDxTQU1QPmBvbic8L1NBTVA+LCBSZWFkbGluZSB3aWxsIGNvbnZlcnQgY2hhcmFjdGVycyB3aXRoIHRoZQogZWlnaHRoIGJpdCBzZXQgdG8gYW4gQVNDSUkga2V5IHNlcXVlbmNlIGJ5IHN0cmlwcGluZyB0aGUgZWlnaHRoCiBiaXQgYW5kIHByZWZpeGluZyBhbiA8S0JEPkVTQzwvS0JEPiBjaGFyYWN0ZXIsIGNvbnZlcnRpbmcgdGhlbSB0byBhCkBAIC02MTAsMTQgKzYyNCwxNCBAQAogPFA+CiAKIDxEVD48Q09ERT5kaXNhYmxlLWNvbXBsZXRpb248L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYOSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDEwIj48L0E+CiBJZiBzZXQgdG8gPFNBTVA+YE9uJzwvU0FNUD4sIFJlYWRsaW5lIHdpbGwgaW5oaWJpdCB3b3JkIGNvbXBsZXRpb24uCiBDb21wbGV0aW9uICBjaGFyYWN0ZXJzIHdpbGwgYmUgaW5zZXJ0ZWQgaW50byB0aGUgbGluZSBhcyBpZiB0aGV5IGhhZAogYmVlbiBtYXBwZWQgdG8gPENPREU+c2VsZi1pbnNlcnQ8L0NPREU+LiAgVGhlIGRlZmF1bHQgaXMgPFNBTVA+YG9mZic8L1NBTVA+LgogPFA+CiAKIDxEVD48Q09ERT5lZGl0aW5nLW1vZGU8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTAiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxMSI+PC9BPgogVGhlIDxDT0RFPmVkaXRpbmctbW9kZTwvQ09ERT4gdmFyaWFibGUgY29udHJvbHMgd2hpY2ggZGVmYXVsdCBzZXQgb2YKIGtleSBiaW5kaW5ncyBpcyB1c2VkLiAgQnkgZGVmYXVsdCwgUmVhZGxpbmUgc3RhcnRzIHVwIGluIEVtYWNzIGVkaXRpbmcKIG1vZGUsIHdoZXJlIHRoZSBrZXlzdHJva2VzIGFyZSBtb3N0IHNpbWlsYXIgdG8gRW1hY3MuICBUaGlzIHZhcmlhYmxlIGNhbiBiZQpAQCAtNjI1LDI2ICs2MzksMjcgQEAKIDxQPgogCiA8RFQ+PENPREU+ZW5hYmxlLWtleXBhZDwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxMSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDEyIj48L0E+CiBXaGVuIHNldCB0byA8U0FNUD5gb24nPC9TQU1QPiwgUmVhZGxpbmUgd2lsbCB0cnkgdG8gZW5hYmxlIHRoZSBhcHBsaWNhdGlvbgoga2V5cGFkIHdoZW4gaXQgaXMgY2FsbGVkLiAgU29tZSBzeXN0ZW1zIG5lZWQgdGhpcyB0byBlbmFibGUgdGhlCiBhcnJvdyBrZXlzLiAgVGhlIGRlZmF1bHQgaXMgPFNBTVA+YG9mZic8L1NBTVA+LgogPFA+CiAKIDxEVD48Q09ERT5leHBhbmQtdGlsZGU8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTIiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxMyI+PC9BPgogSWYgc2V0IHRvIDxTQU1QPmBvbic8L1NBTVA+LCB0aWxkZSBleHBhbnNpb24gaXMgcGVyZm9ybWVkIHdoZW4gUmVhZGxpbmUKIGF0dGVtcHRzIHdvcmQgY29tcGxldGlvbi4gIFRoZSBkZWZhdWx0IGlzIDxTQU1QPmBvZmYnPC9TQU1QPi4KIDxQPgogCi08QSBOQU1FPSJJRFgxMyI+PC9BPgorPERUPjxDT0RFPmhpc3RvcnktcHJlc2VydmUtcG9pbnQ8L0NPREU+Cis8REQ+PEEgTkFNRT0iSURYMTQiPjwvQT4KIElmIHNldCB0byA8U0FNUD5gb24nPC9TQU1QPiwgdGhlIGhpc3RvcnkgY29kZSBhdHRlbXB0cyB0byBwbGFjZSBwb2ludCBhdCB0aGUKLXNhbWUgbG9jYXRpb24gb24gZWFjaCBoaXN0b3J5IGxpbmUgcmV0cml2ZWQgd2l0aCA8Q09ERT5wcmV2aW91cy1oaXN0b3J5PC9DT0RFPgotb3IgPENPREU+bmV4dC1oaXN0b3J5PC9DT0RFPi4KLTwvUD48UD4KK3NhbWUgbG9jYXRpb24gb24gZWFjaCBoaXN0b3J5IGxpbmUgcmV0cmlldmVkIHdpdGggPENPREU+cHJldmlvdXMtaGlzdG9yeTwvQ09ERT4KK29yIDxDT0RFPm5leHQtaGlzdG9yeTwvQ09ERT4uICBUaGUgZGVmYXVsdCBpcyA8U0FNUD5gb2ZmJzwvU0FNUD4uCis8UD4KIAogPERUPjxDT0RFPmhvcml6b250YWwtc2Nyb2xsLW1vZGU8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTQiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxNSI+PC9BPgogVGhpcyB2YXJpYWJsZSBjYW4gYmUgc2V0IHRvIGVpdGhlciA8U0FNUD5gb24nPC9TQU1QPiBvciA8U0FNUD5gb2ZmJzwvU0FNUD4uICBTZXR0aW5nIGl0CiB0byA8U0FNUD5gb24nPC9TQU1QPiBtZWFucyB0aGF0IHRoZSB0ZXh0IG9mIHRoZSBsaW5lcyBiZWluZyBlZGl0ZWQgd2lsbCBzY3JvbGwKIGhvcml6b250YWxseSBvbiBhIHNpbmdsZSBzY3JlZW4gbGluZSB3aGVuIHRoZXkgYXJlIGxvbmdlciB0aGFuIHRoZSB3aWR0aApAQCAtNjUzLDggKzY2OCw4IEBACiA8UD4KIAogPERUPjxDT0RFPmlucHV0LW1ldGE8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTUiPjwvQT4KLTxBIE5BTUU9IklEWDE2Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTYiPjwvQT4KKzxBIE5BTUU9IklEWDE3Ij48L0E+CiBJZiBzZXQgdG8gPFNBTVA+YG9uJzwvU0FNUD4sIFJlYWRsaW5lIHdpbGwgZW5hYmxlIGVpZ2h0LWJpdCBpbnB1dCAoaXQKIHdpbGwgbm90IGNsZWFyIHRoZSBlaWdodGggYml0IGluIHRoZSBjaGFyYWN0ZXJzIGl0IHJlYWRzKSwKIHJlZ2FyZGxlc3Mgb2Ygd2hhdCB0aGUgdGVybWluYWwgY2xhaW1zIGl0IGNhbiBzdXBwb3J0LiAgVGhlCkBAIC02NjMsNyArNjc4LDcgQEAKIDxQPgogCiA8RFQ+PENPREU+aXNlYXJjaC10ZXJtaW5hdG9yczwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxNyI+PC9BPgorPEREPjxBIE5BTUU9IklEWDE4Ij48L0E+CiBUaGUgc3RyaW5nIG9mIGNoYXJhY3RlcnMgdGhhdCBzaG91bGQgdGVybWluYXRlIGFuIGluY3JlbWVudGFsIHNlYXJjaCB3aXRob3V0CiBzdWJzZXF1ZW50bHkgZXhlY3V0aW5nIHRoZSBjaGFyYWN0ZXIgYXMgYSBjb21tYW5kIChzZWUgc2VjdGlvbiA8QSBIUkVGPSJybHVzZXJtYW4uaHRtbCNTRUM4Ij4xLjIuNSBTZWFyY2hpbmcgZm9yIENvbW1hbmRzIGluIHRoZSBIaXN0b3J5PC9BPikuCiBJZiB0aGlzIHZhcmlhYmxlIGhhcyBub3QgYmVlbiBnaXZlbiBhIHZhbHVlLCB0aGUgY2hhcmFjdGVycyA8S0JEPkVTQzwvS0JEPiBhbmQKQEAgLTY3MSw3ICs2ODYsNyBAQAogPFA+CiAKIDxEVD48Q09ERT5rZXltYXA8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTgiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxOSI+PC9BPgogU2V0cyBSZWFkbGluZSdzIGlkZWEgb2YgdGhlIGN1cnJlbnQga2V5bWFwIGZvciBrZXkgYmluZGluZyBjb21tYW5kcy4KIEFjY2VwdGFibGUgPENPREU+a2V5bWFwPC9DT0RFPiBuYW1lcyBhcmUKIDxDT0RFPmVtYWNzPC9DT0RFPiwKQEAgLTY5NCwxNCArNzA5LDE0IEBACiA8UD4KIAogPERUPjxDT0RFPm1hcmstbW9kaWZpZWQtbGluZXM8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTkiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgyMCI+PC9BPgogVGhpcyB2YXJpYWJsZSwgd2hlbiBzZXQgdG8gPFNBTVA+YG9uJzwvU0FNUD4sIGNhdXNlcyBSZWFkbGluZSB0byBkaXNwbGF5IGFuCiBhc3RlcmlzayAoPFNBTVA+YConPC9TQU1QPikgYXQgdGhlIHN0YXJ0IG9mIGhpc3RvcnkgbGluZXMgd2hpY2ggaGF2ZSBiZWVuIG1vZGlmaWVkLgogVGhpcyB2YXJpYWJsZSBpcyA8U0FNUD5gb2ZmJzwvU0FNUD4gYnkgZGVmYXVsdC4KIDxQPgogCiA8RFQ+PENPREU+bWFyay1zeW1saW5rZWQtZGlyZWN0b3JpZXM8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMjAiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgyMSI+PC9BPgogSWYgc2V0IHRvIDxTQU1QPmBvbic8L1NBTVA+LCBjb21wbGV0ZWQgbmFtZXMgd2hpY2ggYXJlIHN5bWJvbGljIGxpbmtzCiB0byBkaXJlY3RvcmllcyBoYXZlIGEgc2xhc2ggYXBwZW5kZWQgKHN1YmplY3QgdG8gdGhlIHZhbHVlIG9mCiA8Q09ERT5tYXJrLWRpcmVjdG9yaWVzPC9DT0RFPikuCkBAIC03MDksNyArNzI0LDcgQEAKIDxQPgogCiA8RFQ+PENPREU+bWF0Y2gtaGlkZGVuLWZpbGVzPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDIxIj48L0E+Cis8REQ+PEEgTkFNRT0iSURYMjIiPjwvQT4KIFRoaXMgdmFyaWFibGUsIHdoZW4gc2V0IHRvIDxTQU1QPmBvbic8L1NBTVA+LCBjYXVzZXMgUmVhZGxpbmUgdG8gbWF0Y2ggZmlsZXMgd2hvc2UKIG5hbWVzIGJlZ2luIHdpdGggYSA8U0FNUD5gLic8L1NBTVA+IChoaWRkZW4gZmlsZXMpIHdoZW4gcGVyZm9ybWluZyBmaWxlbmFtZQogY29tcGxldGlvbiwgdW5sZXNzIHRoZSBsZWFkaW5nIDxTQU1QPmAuJzwvU0FNUD4gaXMKQEAgLTcxOCwxNCArNzMzLDE0IEBACiA8UD4KIAogPERUPjxDT0RFPm91dHB1dC1tZXRhPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDIyIj48L0E+Cis8REQ+PEEgTkFNRT0iSURYMjMiPjwvQT4KIElmIHNldCB0byA8U0FNUD5gb24nPC9TQU1QPiwgUmVhZGxpbmUgd2lsbCBkaXNwbGF5IGNoYXJhY3RlcnMgd2l0aCB0aGUKIGVpZ2h0aCBiaXQgc2V0IGRpcmVjdGx5IHJhdGhlciB0aGFuIGFzIGEgbWV0YS1wcmVmaXhlZCBlc2NhcGUKIHNlcXVlbmNlLiAgVGhlIGRlZmF1bHQgaXMgPFNBTVA+YG9mZic8L1NBTVA+LgogPFA+CiAKIDxEVD48Q09ERT5wYWdlLWNvbXBsZXRpb25zPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDIzIj48L0E+Cis8REQ+PEEgTkFNRT0iSURYMjQiPjwvQT4KIElmIHNldCB0byA8U0FNUD5gb24nPC9TQU1QPiwgUmVhZGxpbmUgdXNlcyBhbiBpbnRlcm5hbCA8Q09ERT5tb3JlPC9DT0RFPi1saWtlIHBhZ2VyCiB0byBkaXNwbGF5IGEgc2NyZWVuZnVsIG9mIHBvc3NpYmxlIGNvbXBsZXRpb25zIGF0IGEgdGltZS4KIFRoaXMgdmFyaWFibGUgaXMgPFNBTVA+YG9uJzwvU0FNUD4gYnkgZGVmYXVsdC4KQEAgLTczOCw3ICs3NTMsNyBAQAogPFA+CiAKIDxEVD48Q09ERT5zaG93LWFsbC1pZi1hbWJpZ3VvdXM8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMjQiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgyNSI+PC9BPgogVGhpcyBhbHRlcnMgdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgdGhlIGNvbXBsZXRpb24gZnVuY3Rpb25zLiAgSWYKIHNldCB0byA8U0FNUD5gb24nPC9TQU1QPiwgCiB3b3JkcyB3aGljaCBoYXZlIG1vcmUgdGhhbiBvbmUgcG9zc2libGUgY29tcGxldGlvbiBjYXVzZSB0aGUKQEAgLTc0Niw4ICs3NjEsMjAgQEAKIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDxTQU1QPmBvZmYnPC9TQU1QPi4KIDxQPgogCis8RFQ+PENPREU+c2hvdy1hbGwtaWYtdW5tb2RpZmllZDwvQ09ERT4KKzxERD48QSBOQU1FPSJJRFgyNiI+PC9BPgorVGhpcyBhbHRlcnMgdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgdGhlIGNvbXBsZXRpb24gZnVuY3Rpb25zIGluCithIGZhc2hpb24gc2ltaWxhciB0byA8VkFSPnNob3ctYWxsLWlmLWFtYmlndW91czwvVkFSPi4KK0lmIHNldCB0byA8U0FNUD5gb24nPC9TQU1QPiwgCit3b3JkcyB3aGljaCBoYXZlIG1vcmUgdGhhbiBvbmUgcG9zc2libGUgY29tcGxldGlvbiB3aXRob3V0IGFueQorcG9zc2libGUgcGFydGlhbCBjb21wbGV0aW9uICh0aGUgcG9zc2libGUgY29tcGxldGlvbnMgZG9uJ3Qgc2hhcmUKK2EgY29tbW9uIHByZWZpeCkgY2F1c2UgdGhlIG1hdGNoZXMgdG8gYmUgbGlzdGVkIGltbWVkaWF0ZWx5IGluc3RlYWQKK29mIHJpbmdpbmcgdGhlIGJlbGwuCitUaGUgZGVmYXVsdCB2YWx1ZSBpcyA8U0FNUD5gb2ZmJzwvU0FNUD4uCis8UD4KKwogPERUPjxDT0RFPnZpc2libGUtc3RhdHM8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMjUiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgyNyI+PC9BPgogSWYgc2V0IHRvIDxTQU1QPmBvbic8L1NBTVA+LCBhIGNoYXJhY3RlciBkZW5vdGluZyBhIGZpbGUncyB0eXBlCiBpcyBhcHBlbmRlZCB0byB0aGUgZmlsZW5hbWUgd2hlbiBsaXN0aW5nIHBvc3NpYmxlCiBjb21wbGV0aW9ucy4gIFRoZSBkZWZhdWx0IGlzIDxTQU1QPmBvZmYnPC9TQU1QPi4KQEAgLTExNjEsNTQgKzExODgsNTQgQEAKIDxIMz4gMS40LjEgQ29tbWFuZHMgRm9yIE1vdmluZyA8L0gzPgogPCEtLWRvY2lkOjpTRUMxNDo6LS0+CiA8REwgQ09NUEFDVD4KLTxBIE5BTUU9IklEWDI2Ij48L0E+Cis8QSBOQU1FPSJJRFgyOCI+PC9BPgogPERUPjxDT0RFPmJlZ2lubmluZy1vZi1saW5lIChDLWEpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDI3Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYMjkiPjwvQT4KIE1vdmUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjdXJyZW50IGxpbmUuCiA8UD4KIAotPEEgTkFNRT0iSURYMjgiPjwvQT4KKzxBIE5BTUU9IklEWDMwIj48L0E+CiA8RFQ+PENPREU+ZW5kLW9mLWxpbmUgKEMtZSk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMjkiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgzMSI+PC9BPgogTW92ZSB0byB0aGUgZW5kIG9mIHRoZSBsaW5lLgogPFA+CiAKLTxBIE5BTUU9IklEWDMwIj48L0E+Cis8QSBOQU1FPSJJRFgzMiI+PC9BPgogPERUPjxDT0RFPmZvcndhcmQtY2hhciAoQy1mKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgzMSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDMzIj48L0E+CiBNb3ZlIGZvcndhcmQgYSBjaGFyYWN0ZXIuCiA8UD4KIAotPEEgTkFNRT0iSURYMzIiPjwvQT4KKzxBIE5BTUU9IklEWDM0Ij48L0E+CiA8RFQ+PENPREU+YmFja3dhcmQtY2hhciAoQy1iKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgzMyI+PC9BPgorPEREPjxBIE5BTUU9IklEWDM1Ij48L0E+CiBNb3ZlIGJhY2sgYSBjaGFyYWN0ZXIuCiA8UD4KIAotPEEgTkFNRT0iSURYMzQiPjwvQT4KKzxBIE5BTUU9IklEWDM2Ij48L0E+CiA8RFQ+PENPREU+Zm9yd2FyZC13b3JkIChNLWYpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDM1Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYMzciPjwvQT4KIE1vdmUgZm9yd2FyZCB0byB0aGUgZW5kIG9mIHRoZSBuZXh0IHdvcmQuICBXb3JkcyBhcmUgY29tcG9zZWQgb2YKIGxldHRlcnMgYW5kIGRpZ2l0cy4KIDxQPgogCi08QSBOQU1FPSJJRFgzNiI+PC9BPgorPEEgTkFNRT0iSURYMzgiPjwvQT4KIDxEVD48Q09ERT5iYWNrd2FyZC13b3JkIChNLWIpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDM3Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYMzkiPjwvQT4KIE1vdmUgYmFjayB0byB0aGUgc3RhcnQgb2YgdGhlIGN1cnJlbnQgb3IgcHJldmlvdXMgd29yZC4gIFdvcmRzIGFyZQogY29tcG9zZWQgb2YgbGV0dGVycyBhbmQgZGlnaXRzLgogPFA+CiAKLTxBIE5BTUU9IklEWDM4Ij48L0E+Cis8QSBOQU1FPSJJRFg0MCI+PC9BPgogPERUPjxDT0RFPmNsZWFyLXNjcmVlbiAoQy1sKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgzOSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDQxIj48L0E+CiBDbGVhciB0aGUgc2NyZWVuIGFuZCByZWRyYXcgdGhlIGN1cnJlbnQgbGluZSwKIGxlYXZpbmcgdGhlIGN1cnJlbnQgbGluZSBhdCB0aGUgdG9wIG9mIHRoZSBzY3JlZW4uCiA8UD4KIAotPEEgTkFNRT0iSURYNDAiPjwvQT4KKzxBIE5BTUU9IklEWDQyIj48L0E+CiA8RFQ+PENPREU+cmVkcmF3LWN1cnJlbnQtbGluZSAoKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg0MSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDQzIj48L0E+CiBSZWZyZXNoIHRoZSBjdXJyZW50IGxpbmUuICBCeSBkZWZhdWx0LCB0aGlzIGlzIHVuYm91bmQuCiA8UD4KIApAQCAtMTIzNCw5ICsxMjYxLDkgQEAKIDxQPgogCiA8REwgQ09NUEFDVD4KLTxBIE5BTUU9IklEWDQyIj48L0E+Cis8QSBOQU1FPSJJRFg0NCI+PC9BPgogPERUPjxDT0RFPmFjY2VwdC1saW5lIChOZXdsaW5lIG9yIFJldHVybik8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYNDMiPjwvQT4KKzxERD48QSBOQU1FPSJJRFg0NSI+PC9BPgogQWNjZXB0IHRoZSBsaW5lIHJlZ2FyZGxlc3Mgb2Ygd2hlcmUgdGhlIGN1cnNvciBpcy4KIElmIHRoaXMgbGluZSBpcwogbm9uLWVtcHR5LCBpdCBtYXkgYmUgYWRkZWQgdG8gdGhlIGhpc3RvcnkgbGlzdCBmb3IgZnV0dXJlIHJlY2FsbCB3aXRoCkBAIC0xMjQ1LDk3ICsxMjcyLDEwMSBAQAogdG8gaXRzIG9yaWdpbmFsIHN0YXRlLgogPFA+CiAKLTxBIE5BTUU9IklEWDQ0Ij48L0E+Cis8QSBOQU1FPSJJRFg0NiI+PC9BPgogPERUPjxDT0RFPnByZXZpb3VzLWhpc3RvcnkgKEMtcCk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYNDUiPjwvQT4KKzxERD48QSBOQU1FPSJJRFg0NyI+PC9BPgogTW92ZSBgYmFjaycgdGhyb3VnaCB0aGUgaGlzdG9yeSBsaXN0LCBmZXRjaGluZyB0aGUgcHJldmlvdXMgY29tbWFuZC4KIDxQPgogCi08QSBOQU1FPSJJRFg0NiI+PC9BPgorPEEgTkFNRT0iSURYNDgiPjwvQT4KIDxEVD48Q09ERT5uZXh0LWhpc3RvcnkgKEMtbik8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYNDciPjwvQT4KKzxERD48QSBOQU1FPSJJRFg0OSI+PC9BPgogTW92ZSBgZm9yd2FyZCcgdGhyb3VnaCB0aGUgaGlzdG9yeSBsaXN0LCBmZXRjaGluZyB0aGUgbmV4dCBjb21tYW5kLgogPFA+CiAKLTxBIE5BTUU9IklEWDQ4Ij48L0E+Cis8QSBOQU1FPSJJRFg1MCI+PC9BPgogPERUPjxDT0RFPmJlZ2lubmluZy1vZi1oaXN0b3J5IChNLSYjNjA7KTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg0OSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDUxIj48L0E+CiBNb3ZlIHRvIHRoZSBmaXJzdCBsaW5lIGluIHRoZSBoaXN0b3J5LgogPFA+CiAKLTxBIE5BTUU9IklEWDUwIj48L0E+Cis8QSBOQU1FPSJJRFg1MiI+PC9BPgogPERUPjxDT0RFPmVuZC1vZi1oaXN0b3J5IChNLSYjNjI7KTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg1MSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDUzIj48L0E+CiBNb3ZlIHRvIHRoZSBlbmQgb2YgdGhlIGlucHV0IGhpc3RvcnksIGkuZS4sIHRoZSBsaW5lIGN1cnJlbnRseQogYmVpbmcgZW50ZXJlZC4KIDxQPgogCi08QSBOQU1FPSJJRFg1MiI+PC9BPgorPEEgTkFNRT0iSURYNTQiPjwvQT4KIDxEVD48Q09ERT5yZXZlcnNlLXNlYXJjaC1oaXN0b3J5IChDLXIpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDUzIj48L0E+Cis8REQ+PEEgTkFNRT0iSURYNTUiPjwvQT4KIFNlYXJjaCBiYWNrd2FyZCBzdGFydGluZyBhdCB0aGUgY3VycmVudCBsaW5lIGFuZCBtb3ZpbmcgYHVwJyB0aHJvdWdoCiB0aGUgaGlzdG9yeSBhcyBuZWNlc3NhcnkuICBUaGlzIGlzIGFuIGluY3JlbWVudGFsIHNlYXJjaC4KIDxQPgogCi08QSBOQU1FPSJJRFg1NCI+PC9BPgorPEEgTkFNRT0iSURYNTYiPjwvQT4KIDxEVD48Q09ERT5mb3J3YXJkLXNlYXJjaC1oaXN0b3J5IChDLXMpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDU1Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYNTciPjwvQT4KIFNlYXJjaCBmb3J3YXJkIHN0YXJ0aW5nIGF0IHRoZSBjdXJyZW50IGxpbmUgYW5kIG1vdmluZyBgZG93bicgdGhyb3VnaAogdGhlIHRoZSBoaXN0b3J5IGFzIG5lY2Vzc2FyeS4gIFRoaXMgaXMgYW4gaW5jcmVtZW50YWwgc2VhcmNoLgogPFA+CiAKLTxBIE5BTUU9IklEWDU2Ij48L0E+Cis8QSBOQU1FPSJJRFg1OCI+PC9BPgogPERUPjxDT0RFPm5vbi1pbmNyZW1lbnRhbC1yZXZlcnNlLXNlYXJjaC1oaXN0b3J5IChNLXApPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDU3Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYNTkiPjwvQT4KIFNlYXJjaCBiYWNrd2FyZCBzdGFydGluZyBhdCB0aGUgY3VycmVudCBsaW5lIGFuZCBtb3ZpbmcgYHVwJwogdGhyb3VnaCB0aGUgaGlzdG9yeSBhcyBuZWNlc3NhcnkgdXNpbmcgYSBub24taW5jcmVtZW50YWwgc2VhcmNoCiBmb3IgYSBzdHJpbmcgc3VwcGxpZWQgYnkgdGhlIHVzZXIuCiA8UD4KIAotPEEgTkFNRT0iSURYNTgiPjwvQT4KKzxBIE5BTUU9IklEWDYwIj48L0E+CiA8RFQ+PENPREU+bm9uLWluY3JlbWVudGFsLWZvcndhcmQtc2VhcmNoLWhpc3RvcnkgKE0tbik8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYNTkiPjwvQT4KKzxERD48QSBOQU1FPSJJRFg2MSI+PC9BPgogU2VhcmNoIGZvcndhcmQgc3RhcnRpbmcgYXQgdGhlIGN1cnJlbnQgbGluZSBhbmQgbW92aW5nIGBkb3duJwogdGhyb3VnaCB0aGUgdGhlIGhpc3RvcnkgYXMgbmVjZXNzYXJ5IHVzaW5nIGEgbm9uLWluY3JlbWVudGFsIHNlYXJjaAogZm9yIGEgc3RyaW5nIHN1cHBsaWVkIGJ5IHRoZSB1c2VyLgogPFA+CiAKLTxBIE5BTUU9IklEWDYwIj48L0E+Cis8QSBOQU1FPSJJRFg2MiI+PC9BPgogPERUPjxDT0RFPmhpc3Rvcnktc2VhcmNoLWZvcndhcmQgKCk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYNjEiPjwvQT4KKzxERD48QSBOQU1FPSJJRFg2MyI+PC9BPgogU2VhcmNoIGZvcndhcmQgdGhyb3VnaCB0aGUgaGlzdG9yeSBmb3IgdGhlIHN0cmluZyBvZiBjaGFyYWN0ZXJzCiBiZXR3ZWVuIHRoZSBzdGFydCBvZiB0aGUgY3VycmVudCBsaW5lIGFuZCB0aGUgcG9pbnQuCiBUaGlzIGlzIGEgbm9uLWluY3JlbWVudGFsIHNlYXJjaC4KIEJ5IGRlZmF1bHQsIHRoaXMgY29tbWFuZCBpcyB1bmJvdW5kLgogPFA+CiAKLTxBIE5BTUU9IklEWDYyIj48L0E+Cis8QSBOQU1FPSJJRFg2NCI+PC9BPgogPERUPjxDT0RFPmhpc3Rvcnktc2VhcmNoLWJhY2t3YXJkICgpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDYzIj48L0E+Cis8REQ+PEEgTkFNRT0iSURYNjUiPjwvQT4KIFNlYXJjaCBiYWNrd2FyZCB0aHJvdWdoIHRoZSBoaXN0b3J5IGZvciB0aGUgc3RyaW5nIG9mIGNoYXJhY3RlcnMKIGJldHdlZW4gdGhlIHN0YXJ0IG9mIHRoZSBjdXJyZW50IGxpbmUgYW5kIHRoZSBwb2ludC4gIFRoaXMKIGlzIGEgbm9uLWluY3JlbWVudGFsIHNlYXJjaC4gIEJ5IGRlZmF1bHQsIHRoaXMgY29tbWFuZCBpcyB1bmJvdW5kLgogPFA+CiAKLTxBIE5BTUU9IklEWDY0Ij48L0E+Cis8QSBOQU1FPSJJRFg2NiI+PC9BPgogPERUPjxDT0RFPnlhbmstbnRoLWFyZyAoTS1DLXkpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDY1Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYNjciPjwvQT4KIEluc2VydCB0aGUgZmlyc3QgYXJndW1lbnQgdG8gdGhlIHByZXZpb3VzIGNvbW1hbmQgKHVzdWFsbHkKIHRoZSBzZWNvbmQgd29yZCBvbiB0aGUgcHJldmlvdXMgbGluZSkgYXQgcG9pbnQuCiBXaXRoIGFuIGFyZ3VtZW50IDxWQVI+bjwvVkFSPiwKIGluc2VydCB0aGUgPFZBUj5uPC9WQVI+dGggd29yZCBmcm9tIHRoZSBwcmV2aW91cyBjb21tYW5kICh0aGUgd29yZHMKIGluIHRoZSBwcmV2aW91cyBjb21tYW5kIGJlZ2luIHdpdGggd29yZCAwKS4gIEEgbmVnYXRpdmUgYXJndW1lbnQKIGluc2VydHMgdGhlIDxWQVI+bjwvVkFSPnRoIHdvcmQgZnJvbSB0aGUgZW5kIG9mIHRoZSBwcmV2aW91cyBjb21tYW5kLgorT25jZSB0aGUgYXJndW1lbnQgPFZBUj5uPC9WQVI+IGlzIGNvbXB1dGVkLCB0aGUgYXJndW1lbnQgaXMgZXh0cmFjdGVkCithcyBpZiB0aGUgPFNBTVA+YCE8VkFSPm48L1ZBUj4nPC9TQU1QPiBoaXN0b3J5IGV4cGFuc2lvbiBoYWQgYmVlbiBzcGVjaWZpZWQuCiA8UD4KIAotPEEgTkFNRT0iSURYNjYiPjwvQT4KKzxBIE5BTUU9IklEWDY4Ij48L0E+CiA8RFQ+PENPREU+eWFuay1sYXN0LWFyZyAoTS0uIG9yIE0tXyk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYNjciPjwvQT4KKzxERD48QSBOQU1FPSJJRFg2OSI+PC9BPgogSW5zZXJ0IGxhc3QgYXJndW1lbnQgdG8gdGhlIHByZXZpb3VzIGNvbW1hbmQgKHRoZSBsYXN0IHdvcmQgb2YgdGhlCiBwcmV2aW91cyBoaXN0b3J5IGVudHJ5KS4gIFdpdGggYW4KIGFyZ3VtZW50LCBiZWhhdmUgZXhhY3RseSBsaWtlIDxDT0RFPnlhbmstbnRoLWFyZzwvQ09ERT4uCiBTdWNjZXNzaXZlIGNhbGxzIHRvIDxDT0RFPnlhbmstbGFzdC1hcmc8L0NPREU+IG1vdmUgYmFjayB0aHJvdWdoIHRoZSBoaXN0b3J5CiBsaXN0LCBpbnNlcnRpbmcgdGhlIGxhc3QgYXJndW1lbnQgb2YgZWFjaCBsaW5lIGluIHR1cm4uCitUaGUgaGlzdG9yeSBleHBhbnNpb24gZmFjaWxpdGllcyBhcmUgdXNlZCB0byBleHRyYWN0IHRoZSBsYXN0IGFyZ3VtZW50LAorYXMgaWYgdGhlIDxTQU1QPmAhJCc8L1NBTVA+IGhpc3RvcnkgZXhwYW5zaW9uIGhhZCBiZWVuIHNwZWNpZmllZC4KIDxQPgogCiA8L0RMPgpAQCAtMTM2MCw1MiArMTM5MSw1MiBAQAogPFA+CiAKIDxETCBDT01QQUNUPgotPEEgTkFNRT0iSURYNjgiPjwvQT4KKzxBIE5BTUU9IklEWDcwIj48L0E+CiA8RFQ+PENPREU+ZGVsZXRlLWNoYXIgKEMtZCk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYNjkiPjwvQT4KKzxERD48QSBOQU1FPSJJRFg3MSI+PC9BPgogRGVsZXRlIHRoZSBjaGFyYWN0ZXIgYXQgcG9pbnQuICBJZiBwb2ludCBpcyBhdCB0aGUKIGJlZ2lubmluZyBvZiB0aGUgbGluZSwgdGhlcmUgYXJlIG5vIGNoYXJhY3RlcnMgaW4gdGhlIGxpbmUsIGFuZAogdGhlIGxhc3QgY2hhcmFjdGVyIHR5cGVkIHdhcyBub3QgYm91bmQgdG8gPENPREU+ZGVsZXRlLWNoYXI8L0NPREU+LCB0aGVuCiByZXR1cm4gRU9GLgogPFA+CiAKLTxBIE5BTUU9IklEWDcwIj48L0E+Cis8QSBOQU1FPSJJRFg3MiI+PC9BPgogPERUPjxDT0RFPmJhY2t3YXJkLWRlbGV0ZS1jaGFyIChSdWJvdXQpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDcxIj48L0E+Cis8REQ+PEEgTkFNRT0iSURYNzMiPjwvQT4KIERlbGV0ZSB0aGUgY2hhcmFjdGVyIGJlaGluZCB0aGUgY3Vyc29yLiAgQSBudW1lcmljIGFyZ3VtZW50IG1lYW5zCiB0byBraWxsIHRoZSBjaGFyYWN0ZXJzIGluc3RlYWQgb2YgZGVsZXRpbmcgdGhlbS4KIDxQPgogCi08QSBOQU1FPSJJRFg3MiI+PC9BPgorPEEgTkFNRT0iSURYNzQiPjwvQT4KIDxEVD48Q09ERT5mb3J3YXJkLWJhY2t3YXJkLWRlbGV0ZS1jaGFyICgpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDczIj48L0E+Cis8REQ+PEEgTkFNRT0iSURYNzUiPjwvQT4KIERlbGV0ZSB0aGUgY2hhcmFjdGVyIHVuZGVyIHRoZSBjdXJzb3IsIHVubGVzcyB0aGUgY3Vyc29yIGlzIGF0IHRoZQogZW5kIG9mIHRoZSBsaW5lLCBpbiB3aGljaCBjYXNlIHRoZSBjaGFyYWN0ZXIgYmVoaW5kIHRoZSBjdXJzb3IgaXMKIGRlbGV0ZWQuICBCeSBkZWZhdWx0LCB0aGlzIGlzIG5vdCBib3VuZCB0byBhIGtleS4KIDxQPgogCi08QSBOQU1FPSJJRFg3NCI+PC9BPgorPEEgTkFNRT0iSURYNzYiPjwvQT4KIDxEVD48Q09ERT5xdW90ZWQtaW5zZXJ0IChDLXEgb3IgQy12KTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg3NSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDc3Ij48L0E+CiBBZGQgdGhlIG5leHQgY2hhcmFjdGVyIHR5cGVkIHRvIHRoZSBsaW5lIHZlcmJhdGltLiAgVGhpcyBpcwogaG93IHRvIGluc2VydCBrZXkgc2VxdWVuY2VzIGxpa2UgPEtCRD5DLXE8L0tCRD4sIGZvciBleGFtcGxlLgogPFA+CiAKLTxBIE5BTUU9IklEWDc2Ij48L0E+Cis8QSBOQU1FPSJJRFg3OCI+PC9BPgogPERUPjxDT0RFPnRhYi1pbnNlcnQgKE0tPEtCRD5UQUI8L0tCRD4pPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDc3Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYNzkiPjwvQT4KIEluc2VydCBhIHRhYiBjaGFyYWN0ZXIuCiA8UD4KIAotPEEgTkFNRT0iSURYNzgiPjwvQT4KKzxBIE5BTUU9IklEWDgwIj48L0E+CiA8RFQ+PENPREU+c2VsZi1pbnNlcnQgKGEsIGIsIEEsIDEsICEsIDxzbWFsbD4uLi48L3NtYWxsPik8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYNzkiPjwvQT4KKzxERD48QSBOQU1FPSJJRFg4MSI+PC9BPgogSW5zZXJ0IHlvdXJzZWxmLgogPFA+CiAKLTxBIE5BTUU9IklEWDgwIj48L0E+Cis8QSBOQU1FPSJJRFg4MiI+PC9BPgogPERUPjxDT0RFPnRyYW5zcG9zZS1jaGFycyAoQy10KTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg4MSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDgzIj48L0E+CiBEcmFnIHRoZSBjaGFyYWN0ZXIgYmVmb3JlIHRoZSBjdXJzb3IgZm9yd2FyZCBvdmVyCiB0aGUgY2hhcmFjdGVyIGF0IHRoZSBjdXJzb3IsIG1vdmluZyB0aGUKIGN1cnNvciBmb3J3YXJkIGFzIHdlbGwuICBJZiB0aGUgaW5zZXJ0aW9uIHBvaW50CkBAIC0xNDE0LDM5ICsxNDQ1LDM5IEBACiBOZWdhdGl2ZSBhcmd1bWVudHMgaGF2ZSBubyBlZmZlY3QuCiA8UD4KIAotPEEgTkFNRT0iSURYODIiPjwvQT4KKzxBIE5BTUU9IklEWDg0Ij48L0E+CiA8RFQ+PENPREU+dHJhbnNwb3NlLXdvcmRzIChNLXQpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDgzIj48L0E+Cis8REQ+PEEgTkFNRT0iSURYODUiPjwvQT4KIERyYWcgdGhlIHdvcmQgYmVmb3JlIHBvaW50IHBhc3QgdGhlIHdvcmQgYWZ0ZXIgcG9pbnQsCiBtb3ZpbmcgcG9pbnQgcGFzdCB0aGF0IHdvcmQgYXMgd2VsbC4KIElmIHRoZSBpbnNlcnRpb24gcG9pbnQgaXMgYXQgdGhlIGVuZCBvZiB0aGUgbGluZSwgdGhpcyB0cmFuc3Bvc2VzCiB0aGUgbGFzdCB0d28gd29yZHMgb24gdGhlIGxpbmUuCiA8UD4KIAotPEEgTkFNRT0iSURYODQiPjwvQT4KKzxBIE5BTUU9IklEWDg2Ij48L0E+CiA8RFQ+PENPREU+dXBjYXNlLXdvcmQgKE0tdSk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYODUiPjwvQT4KKzxERD48QSBOQU1FPSJJRFg4NyI+PC9BPgogVXBwZXJjYXNlIHRoZSBjdXJyZW50IChvciBmb2xsb3dpbmcpIHdvcmQuICBXaXRoIGEgbmVnYXRpdmUgYXJndW1lbnQsCiB1cHBlcmNhc2UgdGhlIHByZXZpb3VzIHdvcmQsIGJ1dCBkbyBub3QgbW92ZSB0aGUgY3Vyc29yLgogPFA+CiAKLTxBIE5BTUU9IklEWDg2Ij48L0E+Cis8QSBOQU1FPSJJRFg4OCI+PC9BPgogPERUPjxDT0RFPmRvd25jYXNlLXdvcmQgKE0tbCk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYODciPjwvQT4KKzxERD48QSBOQU1FPSJJRFg4OSI+PC9BPgogTG93ZXJjYXNlIHRoZSBjdXJyZW50IChvciBmb2xsb3dpbmcpIHdvcmQuICBXaXRoIGEgbmVnYXRpdmUgYXJndW1lbnQsCiBsb3dlcmNhc2UgdGhlIHByZXZpb3VzIHdvcmQsIGJ1dCBkbyBub3QgbW92ZSB0aGUgY3Vyc29yLgogPFA+CiAKLTxBIE5BTUU9IklEWDg4Ij48L0E+Cis8QSBOQU1FPSJJRFg5MCI+PC9BPgogPERUPjxDT0RFPmNhcGl0YWxpemUtd29yZCAoTS1jKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg4OSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDkxIj48L0E+CiBDYXBpdGFsaXplIHRoZSBjdXJyZW50IChvciBmb2xsb3dpbmcpIHdvcmQuICBXaXRoIGEgbmVnYXRpdmUgYXJndW1lbnQsCiBjYXBpdGFsaXplIHRoZSBwcmV2aW91cyB3b3JkLCBidXQgZG8gbm90IG1vdmUgdGhlIGN1cnNvci4KIDxQPgogCi08QSBOQU1FPSJJRFg5MCI+PC9BPgorPEEgTkFNRT0iSURYOTIiPjwvQT4KIDxEVD48Q09ERT5vdmVyd3JpdGUtbW9kZSAoKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg5MSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDkzIj48L0E+CiBUb2dnbGUgb3ZlcndyaXRlIG1vZGUuICBXaXRoIGFuIGV4cGxpY2l0IHBvc2l0aXZlIG51bWVyaWMgYXJndW1lbnQsCiBzd2l0Y2hlcyB0byBvdmVyd3JpdGUgbW9kZS4gIFdpdGggYW4gZXhwbGljaXQgbm9uLXBvc2l0aXZlIG51bWVyaWMKIGFyZ3VtZW50LCBzd2l0Y2hlcyB0byBpbnNlcnQgbW9kZS4gIFRoaXMgY29tbWFuZCBhZmZlY3RzIG9ubHkKQEAgLTE0ODYsOTggKzE1MTcsMTA2IEBACiAKIDxETCBDT01QQUNUPgogCi08QSBOQU1FPSJJRFg5MiI+PC9BPgorPEEgTkFNRT0iSURYOTQiPjwvQT4KIDxEVD48Q09ERT5raWxsLWxpbmUgKEMtayk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYOTMiPjwvQT4KKzxERD48QSBOQU1FPSJJRFg5NSI+PC9BPgogS2lsbCB0aGUgdGV4dCBmcm9tIHBvaW50IHRvIHRoZSBlbmQgb2YgdGhlIGxpbmUuCiA8UD4KIAotPEEgTkFNRT0iSURYOTQiPjwvQT4KKzxBIE5BTUU9IklEWDk2Ij48L0E+CiA8RFQ+PENPREU+YmFja3dhcmQta2lsbC1saW5lIChDLXggUnVib3V0KTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFg5NSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDk3Ij48L0E+CiBLaWxsIGJhY2t3YXJkIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUuCiA8UD4KIAotPEEgTkFNRT0iSURYOTYiPjwvQT4KKzxBIE5BTUU9IklEWDk4Ij48L0E+CiA8RFQ+PENPREU+dW5peC1saW5lLWRpc2NhcmQgKEMtdSk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYOTciPjwvQT4KKzxERD48QSBOQU1FPSJJRFg5OSI+PC9BPgogS2lsbCBiYWNrd2FyZCBmcm9tIHRoZSBjdXJzb3IgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgY3VycmVudCBsaW5lLgogPFA+CiAKLTxBIE5BTUU9IklEWDk4Ij48L0E+Cis8QSBOQU1FPSJJRFgxMDAiPjwvQT4KIDxEVD48Q09ERT5raWxsLXdob2xlLWxpbmUgKCk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYOTkiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxMDEiPjwvQT4KIEtpbGwgYWxsIGNoYXJhY3RlcnMgb24gdGhlIGN1cnJlbnQgbGluZSwgbm8gbWF0dGVyIHdoZXJlIHBvaW50IGlzLgogQnkgZGVmYXVsdCwgdGhpcyBpcyB1bmJvdW5kLgogPFA+CiAKLTxBIE5BTUU9IklEWDEwMCI+PC9BPgorPEEgTkFNRT0iSURYMTAyIj48L0E+CiA8RFQ+PENPREU+a2lsbC13b3JkIChNLWQpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDEwMSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDEwMyI+PC9BPgogS2lsbCBmcm9tIHBvaW50IHRvIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgd29yZCwgb3IgaWYgYmV0d2Vlbgogd29yZHMsIHRvIHRoZSBlbmQgb2YgdGhlIG5leHQgd29yZC4KIFdvcmQgYm91bmRhcmllcyBhcmUgdGhlIHNhbWUgYXMgPENPREU+Zm9yd2FyZC13b3JkPC9DT0RFPi4KIDxQPgogCi08QSBOQU1FPSJJRFgxMDIiPjwvQT4KKzxBIE5BTUU9IklEWDEwNCI+PC9BPgogPERUPjxDT0RFPmJhY2t3YXJkLWtpbGwtd29yZCAoTS08S0JEPkRFTDwvS0JEPik8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTAzIj48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTA1Ij48L0E+CiBLaWxsIHRoZSB3b3JkIGJlaGluZCBwb2ludC4KIFdvcmQgYm91bmRhcmllcyBhcmUgdGhlIHNhbWUgYXMgPENPREU+YmFja3dhcmQtd29yZDwvQ09ERT4uCiA8UD4KIAotPEEgTkFNRT0iSURYMTA0Ij48L0E+Cis8QSBOQU1FPSJJRFgxMDYiPjwvQT4KIDxEVD48Q09ERT51bml4LXdvcmQtcnVib3V0IChDLXcpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDEwNSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDEwNyI+PC9BPgogS2lsbCB0aGUgd29yZCBiZWhpbmQgcG9pbnQsIHVzaW5nIHdoaXRlIHNwYWNlIGFzIGEgd29yZCBib3VuZGFyeS4KIFRoZSBraWxsZWQgdGV4dCBpcyBzYXZlZCBvbiB0aGUga2lsbC1yaW5nLgogPFA+CiAKLTxBIE5BTUU9IklEWDEwNiI+PC9BPgorPEEgTkFNRT0iSURYMTA4Ij48L0E+Cis8RFQ+PENPREU+dW5peC1maWxlbmFtZS1ydWJvdXQgKCk8L0NPREU+Cis8REQ+PEEgTkFNRT0iSURYMTA5Ij48L0E+CitLaWxsIHRoZSB3b3JkIGJlaGluZCBwb2ludCwgdXNpbmcgd2hpdGUgc3BhY2UgYW5kIHRoZSBzbGFzaCBjaGFyYWN0ZXIKK2FzIHRoZSB3b3JkIGJvdW5kYXJpZXMuCitUaGUga2lsbGVkIHRleHQgaXMgc2F2ZWQgb24gdGhlIGtpbGwtcmluZy4KKzxQPgorCis8QSBOQU1FPSJJRFgxMTAiPjwvQT4KIDxEVD48Q09ERT5kZWxldGUtaG9yaXpvbnRhbC1zcGFjZSAoKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxMDciPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxMTEiPjwvQT4KIERlbGV0ZSBhbGwgc3BhY2VzIGFuZCB0YWJzIGFyb3VuZCBwb2ludC4gIEJ5IGRlZmF1bHQsIHRoaXMgaXMgdW5ib3VuZC4KIDxQPgogCi08QSBOQU1FPSJJRFgxMDgiPjwvQT4KKzxBIE5BTUU9IklEWDExMiI+PC9BPgogPERUPjxDT0RFPmtpbGwtcmVnaW9uICgpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDEwOSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDExMyI+PC9BPgogS2lsbCB0aGUgdGV4dCBpbiB0aGUgY3VycmVudCByZWdpb24uCiBCeSBkZWZhdWx0LCB0aGlzIGNvbW1hbmQgaXMgdW5ib3VuZC4KIDxQPgogCi08QSBOQU1FPSJJRFgxMTAiPjwvQT4KKzxBIE5BTUU9IklEWDExNCI+PC9BPgogPERUPjxDT0RFPmNvcHktcmVnaW9uLWFzLWtpbGwgKCk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTExIj48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTE1Ij48L0E+CiBDb3B5IHRoZSB0ZXh0IGluIHRoZSByZWdpb24gdG8gdGhlIGtpbGwgYnVmZmVyLCBzbyBpdCBjYW4gYmUgeWFua2VkCiByaWdodCBhd2F5LiAgQnkgZGVmYXVsdCwgdGhpcyBjb21tYW5kIGlzIHVuYm91bmQuCiA8UD4KIAotPEEgTkFNRT0iSURYMTEyIj48L0E+Cis8QSBOQU1FPSJJRFgxMTYiPjwvQT4KIDxEVD48Q09ERT5jb3B5LWJhY2t3YXJkLXdvcmQgKCk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTEzIj48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTE3Ij48L0E+CiBDb3B5IHRoZSB3b3JkIGJlZm9yZSBwb2ludCB0byB0aGUga2lsbCBidWZmZXIuCiBUaGUgd29yZCBib3VuZGFyaWVzIGFyZSB0aGUgc2FtZSBhcyA8Q09ERT5iYWNrd2FyZC13b3JkPC9DT0RFPi4KIEJ5IGRlZmF1bHQsIHRoaXMgY29tbWFuZCBpcyB1bmJvdW5kLgogPFA+CiAKLTxBIE5BTUU9IklEWDExNCI+PC9BPgorPEEgTkFNRT0iSURYMTE4Ij48L0E+CiA8RFQ+PENPREU+Y29weS1mb3J3YXJkLXdvcmQgKCk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTE1Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTE5Ij48L0E+CiBDb3B5IHRoZSB3b3JkIGZvbGxvd2luZyBwb2ludCB0byB0aGUga2lsbCBidWZmZXIuCiBUaGUgd29yZCBib3VuZGFyaWVzIGFyZSB0aGUgc2FtZSBhcyA8Q09ERT5mb3J3YXJkLXdvcmQ8L0NPREU+LgogQnkgZGVmYXVsdCwgdGhpcyBjb21tYW5kIGlzIHVuYm91bmQuCiA8UD4KIAotPEEgTkFNRT0iSURYMTE2Ij48L0E+Cis8QSBOQU1FPSJJRFgxMjAiPjwvQT4KIDxEVD48Q09ERT55YW5rIChDLXkpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDExNyI+PC9BPgorPEREPjxBIE5BTUU9IklEWDEyMSI+PC9BPgogWWFuayB0aGUgdG9wIG9mIHRoZSBraWxsIHJpbmcgaW50byB0aGUgYnVmZmVyIGF0IHBvaW50LgogPFA+CiAKLTxBIE5BTUU9IklEWDExOCI+PC9BPgorPEEgTkFNRT0iSURYMTIyIj48L0E+CiA8RFQ+PENPREU+eWFuay1wb3AgKE0teSk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTE5Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTIzIj48L0E+CiBSb3RhdGUgdGhlIGtpbGwtcmluZywgYW5kIHlhbmsgdGhlIG5ldyB0b3AuICBZb3UgY2FuIG9ubHkgZG8gdGhpcyBpZgogdGhlIHByaW9yIGNvbW1hbmQgaXMgPENPREU+eWFuazwvQ09ERT4gb3IgPENPREU+eWFuay1wb3A8L0NPREU+LgogPC9ETD4KQEAgLTE2MDEsMTYgKzE2NDAsMTYgQEAKIDwhLS1kb2NpZDo6U0VDMTg6Oi0tPgogPERMIENPTVBBQ1Q+CiAKLTxBIE5BTUU9IklEWDEyMCI+PC9BPgorPEEgTkFNRT0iSURYMTI0Ij48L0E+CiA8RFQ+PENPREU+ZGlnaXQtYXJndW1lbnQgKDxLQkQ+TS0wPC9LQkQ+LCA8S0JEPk0tMTwvS0JEPiwgPHNtYWxsPi4uLjwvc21hbGw+IDxLQkQ+TS0tPC9LQkQ+KTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxMjEiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxMjUiPjwvQT4KIEFkZCB0aGlzIGRpZ2l0IHRvIHRoZSBhcmd1bWVudCBhbHJlYWR5IGFjY3VtdWxhdGluZywgb3Igc3RhcnQgYSBuZXcKIGFyZ3VtZW50LiAgPEtCRD5NLS08L0tCRD4gc3RhcnRzIGEgbmVnYXRpdmUgYXJndW1lbnQuCiA8UD4KIAotPEEgTkFNRT0iSURYMTIyIj48L0E+Cis8QSBOQU1FPSJJRFgxMjYiPjwvQT4KIDxEVD48Q09ERT51bml2ZXJzYWwtYXJndW1lbnQgKCk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTIzIj48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTI3Ij48L0E+CiBUaGlzIGlzIGFub3RoZXIgd2F5IHRvIHNwZWNpZnkgYW4gYXJndW1lbnQuCiBJZiB0aGlzIGNvbW1hbmQgaXMgZm9sbG93ZWQgYnkgb25lIG9yIG1vcmUgZGlnaXRzLCBvcHRpb25hbGx5IHdpdGggYQogbGVhZGluZyBtaW51cyBzaWduLCB0aG9zZSBkaWdpdHMgZGVmaW5lIHRoZSBhcmd1bWVudC4KQEAgLTE2NDUsMzAgKzE2ODQsMzAgQEAKIDxQPgogCiA8REwgQ09NUEFDVD4KLTxBIE5BTUU9IklEWDEyNCI+PC9BPgorPEEgTkFNRT0iSURYMTI4Ij48L0E+CiA8RFQ+PENPREU+Y29tcGxldGUgKDxLQkQ+VEFCPC9LQkQ+KTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxMjUiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxMjkiPjwvQT4KIEF0dGVtcHQgdG8gcGVyZm9ybSBjb21wbGV0aW9uIG9uIHRoZSB0ZXh0IGJlZm9yZSBwb2ludC4KIFRoZSBhY3R1YWwgY29tcGxldGlvbiBwZXJmb3JtZWQgaXMgYXBwbGljYXRpb24tc3BlY2lmaWMuCiBUaGUgZGVmYXVsdCBpcyBmaWxlbmFtZSBjb21wbGV0aW9uLgogPFA+CiAKLTxBIE5BTUU9IklEWDEyNiI+PC9BPgorPEEgTkFNRT0iSURYMTMwIj48L0E+CiA8RFQ+PENPREU+cG9zc2libGUtY29tcGxldGlvbnMgKE0tPyk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTI3Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTMxIj48L0E+CiBMaXN0IHRoZSBwb3NzaWJsZSBjb21wbGV0aW9ucyBvZiB0aGUgdGV4dCBiZWZvcmUgcG9pbnQuCiA8UD4KIAotPEEgTkFNRT0iSURYMTI4Ij48L0E+Cis8QSBOQU1FPSJJRFgxMzIiPjwvQT4KIDxEVD48Q09ERT5pbnNlcnQtY29tcGxldGlvbnMgKE0tKik8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTI5Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTMzIj48L0E+CiBJbnNlcnQgYWxsIGNvbXBsZXRpb25zIG9mIHRoZSB0ZXh0IGJlZm9yZSBwb2ludCB0aGF0IHdvdWxkIGhhdmUKIGJlZW4gZ2VuZXJhdGVkIGJ5IDxDT0RFPnBvc3NpYmxlLWNvbXBsZXRpb25zPC9DT0RFPi4KIDxQPgogCi08QSBOQU1FPSJJRFgxMzAiPjwvQT4KKzxBIE5BTUU9IklEWDEzNCI+PC9BPgogPERUPjxDT0RFPm1lbnUtY29tcGxldGUgKCk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTMxIj48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTM1Ij48L0E+CiBTaW1pbGFyIHRvIDxDT0RFPmNvbXBsZXRlPC9DT0RFPiwgYnV0IHJlcGxhY2VzIHRoZSB3b3JkIHRvIGJlIGNvbXBsZXRlZAogd2l0aCBhIHNpbmdsZSBtYXRjaCBmcm9tIHRoZSBsaXN0IG9mIHBvc3NpYmxlIGNvbXBsZXRpb25zLgogUmVwZWF0ZWQgZXhlY3V0aW9uIG9mIDxDT0RFPm1lbnUtY29tcGxldGU8L0NPREU+IHN0ZXBzIHRocm91Z2ggdGhlIGxpc3QKQEAgLTE2ODMsOSArMTcyMiw5IEBACiBieSBkZWZhdWx0LgogPFA+CiAKLTxBIE5BTUU9IklEWDEzMiI+PC9BPgorPEEgTkFNRT0iSURYMTM2Ij48L0E+CiA8RFQ+PENPREU+ZGVsZXRlLWNoYXItb3ItbGlzdCAoKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxMzMiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxMzciPjwvQT4KIERlbGV0ZXMgdGhlIGNoYXJhY3RlciB1bmRlciB0aGUgY3Vyc29yIGlmIG5vdCBhdCB0aGUgYmVnaW5uaW5nIG9yCiBlbmQgb2YgdGhlIGxpbmUgKGxpa2UgPENPREU+ZGVsZXRlLWNoYXI8L0NPREU+KS4KIElmIGF0IHRoZSBlbmQgb2YgdGhlIGxpbmUsIGJlaGF2ZXMgaWRlbnRpY2FsbHkgdG8KQEAgLTE3MTQsMjIgKzE3NTMsMjIgQEAKIDwhLS1kb2NpZDo6U0VDMjA6Oi0tPgogPERMIENPTVBBQ1Q+CiAKLTxBIE5BTUU9IklEWDEzNCI+PC9BPgorPEEgTkFNRT0iSURYMTM4Ij48L0E+CiA8RFQ+PENPREU+c3RhcnQta2JkLW1hY3JvIChDLXggKCk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTM1Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTM5Ij48L0E+CiBCZWdpbiBzYXZpbmcgdGhlIGNoYXJhY3RlcnMgdHlwZWQgaW50byB0aGUgY3VycmVudCBrZXlib2FyZCBtYWNyby4KIDxQPgogCi08QSBOQU1FPSJJRFgxMzYiPjwvQT4KKzxBIE5BTUU9IklEWDE0MCI+PC9BPgogPERUPjxDT0RFPmVuZC1rYmQtbWFjcm8gKEMteCApKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxMzciPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxNDEiPjwvQT4KIFN0b3Agc2F2aW5nIHRoZSBjaGFyYWN0ZXJzIHR5cGVkIGludG8gdGhlIGN1cnJlbnQga2V5Ym9hcmQgbWFjcm8KIGFuZCBzYXZlIHRoZSBkZWZpbml0aW9uLgogPFA+CiAKLTxBIE5BTUU9IklEWDEzOCI+PC9BPgorPEEgTkFNRT0iSURYMTQyIj48L0E+CiA8RFQ+PENPREU+Y2FsbC1sYXN0LWtiZC1tYWNybyAoQy14IGUpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDEzOSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDE0MyI+PC9BPgogUmUtZXhlY3V0ZSB0aGUgbGFzdCBrZXlib2FyZCBtYWNybyBkZWZpbmVkLCBieSBtYWtpbmcgdGhlIGNoYXJhY3RlcnMKIGluIHRoZSBtYWNybyBhcHBlYXIgYXMgaWYgdHlwZWQgYXQgdGhlIGtleWJvYXJkLgogPFA+CkBAIC0xNzU1LDg3ICsxNzk0LDg3IEBACiA8IS0tZG9jaWQ6OlNFQzIxOjotLT4KIDxETCBDT01QQUNUPgogCi08QSBOQU1FPSJJRFgxNDAiPjwvQT4KKzxBIE5BTUU9IklEWDE0NCI+PC9BPgogPERUPjxDT0RFPnJlLXJlYWQtaW5pdC1maWxlIChDLXggQy1yKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxNDEiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxNDUiPjwvQT4KIFJlYWQgaW4gdGhlIGNvbnRlbnRzIG9mIHRoZSA8VkFSPmlucHV0cmM8L1ZBUj4gZmlsZSwgYW5kIGluY29ycG9yYXRlCiBhbnkgYmluZGluZ3Mgb3IgdmFyaWFibGUgYXNzaWdubWVudHMgZm91bmQgdGhlcmUuCiA8UD4KIAotPEEgTkFNRT0iSURYMTQyIj48L0E+Cis8QSBOQU1FPSJJRFgxNDYiPjwvQT4KIDxEVD48Q09ERT5hYm9ydCAoQy1nKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxNDMiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxNDciPjwvQT4KIEFib3J0IHRoZSBjdXJyZW50IGVkaXRpbmcgY29tbWFuZCBhbmQKIHJpbmcgdGhlIHRlcm1pbmFsJ3MgYmVsbCAoc3ViamVjdCB0byB0aGUgc2V0dGluZyBvZgogPENPREU+YmVsbC1zdHlsZTwvQ09ERT4pLgogPFA+CiAKLTxBIE5BTUU9IklEWDE0NCI+PC9BPgorPEEgTkFNRT0iSURYMTQ4Ij48L0E+CiA8RFQ+PENPREU+ZG8tdXBwZXJjYXNlLXZlcnNpb24gKE0tYSwgTS1iLCBNLTxWQVI+eDwvVkFSPiwgPHNtYWxsPi4uLjwvc21hbGw+KTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxNDUiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxNDkiPjwvQT4KIElmIHRoZSBtZXRhZmllZCBjaGFyYWN0ZXIgPFZBUj54PC9WQVI+IGlzIGxvd2VyY2FzZSwgcnVuIHRoZSBjb21tYW5kCiB0aGF0IGlzIGJvdW5kIHRvIHRoZSBjb3JyZXNwb25kaW5nIHVwcGVyY2FzZSBjaGFyYWN0ZXIuCiA8UD4KIAotPEEgTkFNRT0iSURYMTQ2Ij48L0E+Cis8QSBOQU1FPSJJRFgxNTAiPjwvQT4KIDxEVD48Q09ERT5wcmVmaXgtbWV0YSAoPEtCRD5FU0M8L0tCRD4pPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDE0NyI+PC9BPgorPEREPjxBIE5BTUU9IklEWDE1MSI+PC9BPgogTWV0YWZ5IHRoZSBuZXh0IGNoYXJhY3RlciB0eXBlZC4gIFRoaXMgaXMgZm9yIGtleWJvYXJkcwogd2l0aG91dCBhIG1ldGEga2V5LiAgVHlwaW5nIDxTQU1QPmA8S0JEPkVTQzwvS0JEPiBmJzwvU0FNUD4gaXMgZXF1aXZhbGVudCB0byB0eXBpbmcKIDxLQkQ+TS1mPC9LQkQ+LgogPFA+CiAKLTxBIE5BTUU9IklEWDE0OCI+PC9BPgorPEEgTkFNRT0iSURYMTUyIj48L0E+CiA8RFQ+PENPREU+dW5kbyAoQy1fIG9yIEMteCBDLXUpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDE0OSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDE1MyI+PC9BPgogSW5jcmVtZW50YWwgdW5kbywgc2VwYXJhdGVseSByZW1lbWJlcmVkIGZvciBlYWNoIGxpbmUuCiA8UD4KIAotPEEgTkFNRT0iSURYMTUwIj48L0E+Cis8QSBOQU1FPSJJRFgxNTQiPjwvQT4KIDxEVD48Q09ERT5yZXZlcnQtbGluZSAoTS1yKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxNTEiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxNTUiPjwvQT4KIFVuZG8gYWxsIGNoYW5nZXMgbWFkZSB0byB0aGlzIGxpbmUuICBUaGlzIGlzIGxpa2UgZXhlY3V0aW5nIHRoZSA8Q09ERT51bmRvPC9DT0RFPgogY29tbWFuZCBlbm91Z2ggdGltZXMgdG8gZ2V0IGJhY2sgdG8gdGhlIGJlZ2lubmluZy4KIDxQPgogCi08QSBOQU1FPSJJRFgxNTIiPjwvQT4KKzxBIE5BTUU9IklEWDE1NiI+PC9BPgogPERUPjxDT0RFPnRpbGRlLWV4cGFuZCAoTS1+KTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxNTMiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxNTciPjwvQT4KIFBlcmZvcm0gdGlsZGUgZXhwYW5zaW9uIG9uIHRoZSBjdXJyZW50IHdvcmQuCiA8UD4KIAotPEEgTkFNRT0iSURYMTU0Ij48L0E+Cis8QSBOQU1FPSJJRFgxNTgiPjwvQT4KIDxEVD48Q09ERT5zZXQtbWFyayAoQy1AKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxNTUiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxNTkiPjwvQT4KIFNldCB0aGUgbWFyayB0byB0aGUgcG9pbnQuICBJZiBhCiBudW1lcmljIGFyZ3VtZW50IGlzIHN1cHBsaWVkLCB0aGUgbWFyayBpcyBzZXQgdG8gdGhhdCBwb3NpdGlvbi4KIDxQPgogCi08QSBOQU1FPSJJRFgxNTYiPjwvQT4KKzxBIE5BTUU9IklEWDE2MCI+PC9BPgogPERUPjxDT0RFPmV4Y2hhbmdlLXBvaW50LWFuZC1tYXJrIChDLXggQy14KTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxNTciPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxNjEiPjwvQT4KIFN3YXAgdGhlIHBvaW50IHdpdGggdGhlIG1hcmsuICBUaGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24gaXMgc2V0IHRvCiB0aGUgc2F2ZWQgcG9zaXRpb24sIGFuZCB0aGUgb2xkIGN1cnNvciBwb3NpdGlvbiBpcyBzYXZlZCBhcyB0aGUgbWFyay4KIDxQPgogCi08QSBOQU1FPSJJRFgxNTgiPjwvQT4KKzxBIE5BTUU9IklEWDE2MiI+PC9BPgogPERUPjxDT0RFPmNoYXJhY3Rlci1zZWFyY2ggKEMtXSk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTU5Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTYzIj48L0E+CiBBIGNoYXJhY3RlciBpcyByZWFkIGFuZCBwb2ludCBpcyBtb3ZlZCB0byB0aGUgbmV4dCBvY2N1cnJlbmNlIG9mIHRoYXQKIGNoYXJhY3Rlci4gIEEgbmVnYXRpdmUgY291bnQgc2VhcmNoZXMgZm9yIHByZXZpb3VzIG9jY3VycmVuY2VzLgogPFA+CiAKLTxBIE5BTUU9IklEWDE2MCI+PC9BPgorPEEgTkFNRT0iSURYMTY0Ij48L0E+CiA8RFQ+PENPREU+Y2hhcmFjdGVyLXNlYXJjaC1iYWNrd2FyZCAoTS1DLV0pPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDE2MSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDE2NSI+PC9BPgogQSBjaGFyYWN0ZXIgaXMgcmVhZCBhbmQgcG9pbnQgaXMgbW92ZWQgdG8gdGhlIHByZXZpb3VzIG9jY3VycmVuY2UKIG9mIHRoYXQgY2hhcmFjdGVyLiAgQSBuZWdhdGl2ZSBjb3VudCBzZWFyY2hlcyBmb3Igc3Vic2VxdWVudAogb2NjdXJyZW5jZXMuCiA8UD4KIAotPEEgTkFNRT0iSURYMTYyIj48L0E+Cis8QSBOQU1FPSJJRFgxNjYiPjwvQT4KIDxEVD48Q09ERT5pbnNlcnQtY29tbWVudCAoTS0jKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxNjMiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxNjciPjwvQT4KIFdpdGhvdXQgYSBudW1lcmljIGFyZ3VtZW50LCB0aGUgdmFsdWUgb2YgdGhlIDxDT0RFPmNvbW1lbnQtYmVnaW48L0NPREU+CiB2YXJpYWJsZSBpcyBpbnNlcnRlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjdXJyZW50IGxpbmUuCiBJZiBhIG51bWVyaWMgYXJndW1lbnQgaXMgc3VwcGxpZWQsIHRoaXMgY29tbWFuZCBhY3RzIGFzIGEgdG9nZ2xlOiAgaWYKQEAgLTE4NDYsNDMgKzE4ODUsNDMgQEAKIEluIGVpdGhlciBjYXNlLCB0aGUgbGluZSBpcyBhY2NlcHRlZCBhcyBpZiBhIG5ld2xpbmUgaGFkIGJlZW4gdHlwZWQuCiA8UD4KIAotPEEgTkFNRT0iSURYMTY0Ij48L0E+Cis8QSBOQU1FPSJJRFgxNjgiPjwvQT4KIDxEVD48Q09ERT5kdW1wLWZ1bmN0aW9ucyAoKTwvQ09ERT4KLTxERD48QSBOQU1FPSJJRFgxNjUiPjwvQT4KKzxERD48QSBOQU1FPSJJRFgxNjkiPjwvQT4KIFByaW50IGFsbCBvZiB0aGUgZnVuY3Rpb25zIGFuZCB0aGVpciBrZXkgYmluZGluZ3MgdG8gdGhlCiBSZWFkbGluZSBvdXRwdXQgc3RyZWFtLiAgSWYgYSBudW1lcmljIGFyZ3VtZW50IGlzIHN1cHBsaWVkLAogdGhlIG91dHB1dCBpcyBmb3JtYXR0ZWQgaW4gc3VjaCBhIHdheSB0aGF0IGl0IGNhbiBiZSBtYWRlIHBhcnQKIG9mIGFuIDxWQVI+aW5wdXRyYzwvVkFSPiBmaWxlLiAgVGhpcyBjb21tYW5kIGlzIHVuYm91bmQgYnkgZGVmYXVsdC4KIDxQPgogCi08QSBOQU1FPSJJRFgxNjYiPjwvQT4KKzxBIE5BTUU9IklEWDE3MCI+PC9BPgogPERUPjxDT0RFPmR1bXAtdmFyaWFibGVzICgpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDE2NyI+PC9BPgorPEREPjxBIE5BTUU9IklEWDE3MSI+PC9BPgogUHJpbnQgYWxsIG9mIHRoZSBzZXR0YWJsZSB2YXJpYWJsZXMgYW5kIHRoZWlyIHZhbHVlcyB0byB0aGUKIFJlYWRsaW5lIG91dHB1dCBzdHJlYW0uICBJZiBhIG51bWVyaWMgYXJndW1lbnQgaXMgc3VwcGxpZWQsCiB0aGUgb3V0cHV0IGlzIGZvcm1hdHRlZCBpbiBzdWNoIGEgd2F5IHRoYXQgaXQgY2FuIGJlIG1hZGUgcGFydAogb2YgYW4gPFZBUj5pbnB1dHJjPC9WQVI+IGZpbGUuICBUaGlzIGNvbW1hbmQgaXMgdW5ib3VuZCBieSBkZWZhdWx0LgogPFA+CiAKLTxBIE5BTUU9IklEWDE2OCI+PC9BPgorPEEgTkFNRT0iSURYMTcyIj48L0E+CiA8RFQ+PENPREU+ZHVtcC1tYWNyb3MgKCk8L0NPREU+Ci08REQ+PEEgTkFNRT0iSURYMTY5Ij48L0E+Cis8REQ+PEEgTkFNRT0iSURYMTczIj48L0E+CiBQcmludCBhbGwgb2YgdGhlIFJlYWRsaW5lIGtleSBzZXF1ZW5jZXMgYm91bmQgdG8gbWFjcm9zIGFuZCB0aGUKIHN0cmluZ3MgdGhleSBvdXRwdXQuICBJZiBhIG51bWVyaWMgYXJndW1lbnQgaXMgc3VwcGxpZWQsCiB0aGUgb3V0cHV0IGlzIGZvcm1hdHRlZCBpbiBzdWNoIGEgd2F5IHRoYXQgaXQgY2FuIGJlIG1hZGUgcGFydAogb2YgYW4gPFZBUj5pbnB1dHJjPC9WQVI+IGZpbGUuICBUaGlzIGNvbW1hbmQgaXMgdW5ib3VuZCBieSBkZWZhdWx0LgogPFA+CiAKLTxBIE5BTUU9IklEWDE3MCI+PC9BPgorPEEgTkFNRT0iSURYMTc0Ij48L0E+CiA8RFQ+PENPREU+ZW1hY3MtZWRpdGluZy1tb2RlIChDLWUpPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDE3MSI+PC9BPgorPEREPjxBIE5BTUU9IklEWDE3NSI+PC9BPgogV2hlbiBpbiA8Q09ERT52aTwvQ09ERT4gY29tbWFuZCBtb2RlLCB0aGlzIGNhdXNlcyBhIHN3aXRjaCB0byA8Q09ERT5lbWFjczwvQ09ERT4KIGVkaXRpbmcgbW9kZS4KIDxQPgogCi08QSBOQU1FPSJJRFgxNzIiPjwvQT4KKzxBIE5BTUU9IklEWDE3NiI+PC9BPgogPERUPjxDT0RFPnZpLWVkaXRpbmctbW9kZSAoTS1DLWopPC9DT0RFPgotPEREPjxBIE5BTUU9IklEWDE3MyI+PC9BPgorPEREPjxBIE5BTUU9IklEWDE3NyI+PC9BPgogV2hlbiBpbiA8Q09ERT5lbWFjczwvQ09ERT4gZWRpdGluZyBtb2RlLCB0aGlzIGNhdXNlcyBhIHN3aXRjaCB0byA8Q09ERT52aTwvQ09ERT4KIGVkaXRpbmcgbW9kZS4KIDxQPgpAQCAtMTg5NSwxMCArMTkzNCwxMCBAQAogPEEgTkFNRT0iU0VDMjIiPjwvQT4KIDxUQUJMRSBDRUxMUEFERElORz0xIENFTExTUEFDSU5HPTEgQk9SREVSPTA+CiA8VFI+PFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJsdXNlcm1hbi5odG1sI1NFQzIxIj4gJmx0OyA8L0E+XTwvVEQ+Ci08VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bICZndDsgXTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmx1c2VybWFuLmh0bWwjU0VDMjMiPiAmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WyAmbHQ7Jmx0OyBdPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJybHVzZXJtYW4uaHRtbCNTRUMxIj4gVXAgPC9BPl08L1REPgotPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WyAmZ3Q7Jmd0OyBdPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJybHVzZXJtYW4uaHRtbCNTRUMyMyI+ICZndDsmZ3Q7IDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJsdXNlcm1hbi5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KIDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJybHVzZXJtYW4uaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgogPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+W0luZGV4XTwvVEQ+CkBAIC0xOTI4LDYgKzE5NjcsNTY3IEBACiBzbyBmb3J0aC4KIDwvUD48UD4KIAorPEEgTkFNRT0iQ29weWluZyBUaGlzIE1hbnVhbCI+PC9BPgorPEhSIFNJWkU9IjYiPgorPEEgTkFNRT0iU0VDMjMiPjwvQT4KKzxUQUJMRSBDRUxMUEFERElORz0xIENFTExTUEFDSU5HPTEgQk9SREVSPTA+Cis8VFI+PFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJsdXNlcm1hbi5odG1sI1NFQzIyIj4gJmx0OyA8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmx1c2VybWFuLmh0bWwjU0VDMjQiPiAmZ3Q7IDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJsdXNlcm1hbi5odG1sI1NFQzEiPiAmbHQ7Jmx0OyA8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmx1c2VybWFuLmh0bWwjU0VDX1RvcCI+IFVwIDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPlsgJmd0OyZndDsgXTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJybHVzZXJtYW4uaHRtbCNTRUNfVG9wIj5Ub3A8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmx1c2VybWFuLmh0bWwjU0VDX0NvbnRlbnRzIj5Db250ZW50czwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPltJbmRleF08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJsdXNlcm1hbi5odG1sI1NFQ19BYm91dCI+ID8gPC9BPl08L1REPgorPC9UUj48L1RBQkxFPgorPEgxPiBBLiBDb3B5aW5nIFRoaXMgTWFudWFsIDwvSDE+Cis8IS0tZG9jaWQ6OlNFQzIzOjotLT4KKzxQPgorCis8QkxPQ0tRVU9URT48VEFCTEUgQk9SREVSPTAgQ0VMTFNQQUNJTkc9MD4gCis8VFI+PFREIEFMSUdOPSJsZWZ0IiBWQUxJR049IlRPUCI+PEEgSFJFRj0icmx1c2VybWFuLmh0bWwjU0VDMjQiPkEuMSBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2U8L0E+PC9URD48VEQ+Jm5ic3A7Jm5ic3A7PC9URD48VEQgQUxJR049ImxlZnQiIFZBTElHTj0iVE9QIj5MaWNlbnNlIGZvciBjb3B5aW5nIHRoaXMgbWFudWFsLjwvVEQ+PC9UUj4KKzwvVEFCTEU+PC9CTE9DS1FVT1RFPgorPFA+CisKKzxBIE5BTUU9IkdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZSI+PC9BPgorPEhSIFNJWkU9IjYiPgorPEEgTkFNRT0iU0VDMjQiPjwvQT4KKzxUQUJMRSBDRUxMUEFERElORz0xIENFTExTUEFDSU5HPTEgQk9SREVSPTA+Cis8VFI+PFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJsdXNlcm1hbi5odG1sI1NFQzIzIj4gJmx0OyA8L0E+XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmx1c2VybWFuLmh0bWwjU0VDMjUiPiAmZ3Q7IDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJsdXNlcm1hbi5odG1sI1NFQzIzIj4gJmx0OyZsdDsgPC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJsdXNlcm1hbi5odG1sI1NFQzIzIj4gVXAgPC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WyAmZ3Q7Jmd0OyBdPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJsdXNlcm1hbi5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJybHVzZXJtYW4uaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+W0luZGV4XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmx1c2VybWFuLmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+Cis8L1RSPjwvVEFCTEU+Cis8SDI+IEEuMSBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UgPC9IMj4KKzwhLS1kb2NpZDo6U0VDMjQ6Oi0tPgorPFA+CisKKzxBIE5BTUU9IklEWDE3OCI+PC9BPgorPGNlbnRlcj4KKyBWZXJzaW9uIDEuMiwgTm92ZW1iZXIgMjAwMgorPC9jZW50ZXI+Cis8L1A+PFA+CisKKzxUQUJMRT48dHI+PHRkPiZuYnNwOzwvdGQ+PHRkIGNsYXNzPWRpc3BsYXk+PHByZSBzdHlsZT0iZm9udC1mYW1pbHk6IHNlcmlmIj5Db3B5cmlnaHQgKEMpIDIwMDAsMjAwMSwyMDAyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcsIFVTQQorCitFdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMKK29mIHRoaXMgbGljZW5zZSBkb2N1bWVudCwgYnV0IGNoYW5naW5nIGl0IGlzIG5vdCBhbGxvd2VkLgorPC9wcmU+PC90ZD48L3RyPjwvdGFibGU+PC9QPjxQPgorCis8T0w+Cis8TEk+CitQUkVBTUJMRQorPFA+CisKK1RoZSBwdXJwb3NlIG9mIHRoaXMgTGljZW5zZSBpcyB0byBtYWtlIGEgbWFudWFsLCB0ZXh0Ym9vaywgb3Igb3RoZXIKK2Z1bmN0aW9uYWwgYW5kIHVzZWZ1bCBkb2N1bWVudCA8RU0+ZnJlZTwvRU0+IGluIHRoZSBzZW5zZSBvZiBmcmVlZG9tOiB0bworYXNzdXJlIGV2ZXJ5b25lIHRoZSBlZmZlY3RpdmUgZnJlZWRvbSB0byBjb3B5IGFuZCByZWRpc3RyaWJ1dGUgaXQsCit3aXRoIG9yIHdpdGhvdXQgbW9kaWZ5aW5nIGl0LCBlaXRoZXIgY29tbWVyY2lhbGx5IG9yIG5vbmNvbW1lcmNpYWxseS4KK1NlY29uZGFyaWx5LCB0aGlzIExpY2Vuc2UgcHJlc2VydmVzIGZvciB0aGUgYXV0aG9yIGFuZCBwdWJsaXNoZXIgYSB3YXkKK3RvIGdldCBjcmVkaXQgZm9yIHRoZWlyIHdvcmssIHdoaWxlIG5vdCBiZWluZyBjb25zaWRlcmVkIHJlc3BvbnNpYmxlCitmb3IgbW9kaWZpY2F0aW9ucyBtYWRlIGJ5IG90aGVycy4KKzwvUD48UD4KKworVGhpcyBMaWNlbnNlIGlzIGEga2luZCBvZiAiY29weWxlZnQiLCB3aGljaCBtZWFucyB0aGF0IGRlcml2YXRpdmUKK3dvcmtzIG9mIHRoZSBkb2N1bWVudCBtdXN0IHRoZW1zZWx2ZXMgYmUgZnJlZSBpbiB0aGUgc2FtZSBzZW5zZS4gIEl0Citjb21wbGVtZW50cyB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHdoaWNoIGlzIGEgY29weWxlZnQKK2xpY2Vuc2UgZGVzaWduZWQgZm9yIGZyZWUgc29mdHdhcmUuCis8L1A+PFA+CisKK1dlIGhhdmUgZGVzaWduZWQgdGhpcyBMaWNlbnNlIGluIG9yZGVyIHRvIHVzZSBpdCBmb3IgbWFudWFscyBmb3IgZnJlZQorc29mdHdhcmUsIGJlY2F1c2UgZnJlZSBzb2Z0d2FyZSBuZWVkcyBmcmVlIGRvY3VtZW50YXRpb246IGEgZnJlZQorcHJvZ3JhbSBzaG91bGQgY29tZSB3aXRoIG1hbnVhbHMgcHJvdmlkaW5nIHRoZSBzYW1lIGZyZWVkb21zIHRoYXQgdGhlCitzb2Z0d2FyZSBkb2VzLiAgQnV0IHRoaXMgTGljZW5zZSBpcyBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBtYW51YWxzOworaXQgY2FuIGJlIHVzZWQgZm9yIGFueSB0ZXh0dWFsIHdvcmssIHJlZ2FyZGxlc3Mgb2Ygc3ViamVjdCBtYXR0ZXIgb3IKK3doZXRoZXIgaXQgaXMgcHVibGlzaGVkIGFzIGEgcHJpbnRlZCBib29rLiAgV2UgcmVjb21tZW5kIHRoaXMgTGljZW5zZQorcHJpbmNpcGFsbHkgZm9yIHdvcmtzIHdob3NlIHB1cnBvc2UgaXMgaW5zdHJ1Y3Rpb24gb3IgcmVmZXJlbmNlLgorPC9QPjxQPgorCis8TEk+CitBUFBMSUNBQklMSVRZIEFORCBERUZJTklUSU9OUworPFA+CisKK1RoaXMgTGljZW5zZSBhcHBsaWVzIHRvIGFueSBtYW51YWwgb3Igb3RoZXIgd29yaywgaW4gYW55IG1lZGl1bSwgdGhhdAorY29udGFpbnMgYSBub3RpY2UgcGxhY2VkIGJ5IHRoZSBjb3B5cmlnaHQgaG9sZGVyIHNheWluZyBpdCBjYW4gYmUKK2Rpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UuICBTdWNoIGEgbm90aWNlIGdyYW50cyBhCit3b3JsZC13aWRlLCByb3lhbHR5LWZyZWUgbGljZW5zZSwgdW5saW1pdGVkIGluIGR1cmF0aW9uLCB0byB1c2UgdGhhdAord29yayB1bmRlciB0aGUgY29uZGl0aW9ucyBzdGF0ZWQgaGVyZWluLiAgVGhlICJEb2N1bWVudCIsIGJlbG93LAorcmVmZXJzIHRvIGFueSBzdWNoIG1hbnVhbCBvciB3b3JrLiAgQW55IG1lbWJlciBvZiB0aGUgcHVibGljIGlzIGEKK2xpY2Vuc2VlLCBhbmQgaXMgYWRkcmVzc2VkIGFzICJ5b3UiLiAgWW91IGFjY2VwdCB0aGUgbGljZW5zZSBpZiB5b3UKK2NvcHksIG1vZGlmeSBvciBkaXN0cmlidXRlIHRoZSB3b3JrIGluIGEgd2F5IHJlcXVpcmluZyBwZXJtaXNzaW9uCit1bmRlciBjb3B5cmlnaHQgbGF3LgorPC9QPjxQPgorCitBICJNb2RpZmllZCBWZXJzaW9uIiBvZiB0aGUgRG9jdW1lbnQgbWVhbnMgYW55IHdvcmsgY29udGFpbmluZyB0aGUKK0RvY3VtZW50IG9yIGEgcG9ydGlvbiBvZiBpdCwgZWl0aGVyIGNvcGllZCB2ZXJiYXRpbSwgb3Igd2l0aAorbW9kaWZpY2F0aW9ucyBhbmQvb3IgdHJhbnNsYXRlZCBpbnRvIGFub3RoZXIgbGFuZ3VhZ2UuCis8L1A+PFA+CisKK0EgIlNlY29uZGFyeSBTZWN0aW9uIiBpcyBhIG5hbWVkIGFwcGVuZGl4IG9yIGEgZnJvbnQtbWF0dGVyIHNlY3Rpb24KK29mIHRoZSBEb2N1bWVudCB0aGF0IGRlYWxzIGV4Y2x1c2l2ZWx5IHdpdGggdGhlIHJlbGF0aW9uc2hpcCBvZiB0aGUKK3B1Ymxpc2hlcnMgb3IgYXV0aG9ycyBvZiB0aGUgRG9jdW1lbnQgdG8gdGhlIERvY3VtZW50J3Mgb3ZlcmFsbAorc3ViamVjdCAob3IgdG8gcmVsYXRlZCBtYXR0ZXJzKSBhbmQgY29udGFpbnMgbm90aGluZyB0aGF0IGNvdWxkIGZhbGwKK2RpcmVjdGx5IHdpdGhpbiB0aGF0IG92ZXJhbGwgc3ViamVjdC4gIChUaHVzLCBpZiB0aGUgRG9jdW1lbnQgaXMgaW4KK3BhcnQgYSB0ZXh0Ym9vayBvZiBtYXRoZW1hdGljcywgYSBTZWNvbmRhcnkgU2VjdGlvbiBtYXkgbm90IGV4cGxhaW4KK2FueSBtYXRoZW1hdGljcy4pICBUaGUgcmVsYXRpb25zaGlwIGNvdWxkIGJlIGEgbWF0dGVyIG9mIGhpc3RvcmljYWwKK2Nvbm5lY3Rpb24gd2l0aCB0aGUgc3ViamVjdCBvciB3aXRoIHJlbGF0ZWQgbWF0dGVycywgb3Igb2YgbGVnYWwsCitjb21tZXJjaWFsLCBwaGlsb3NvcGhpY2FsLCBldGhpY2FsIG9yIHBvbGl0aWNhbCBwb3NpdGlvbiByZWdhcmRpbmcKK3RoZW0uCis8L1A+PFA+CisKK1RoZSAiSW52YXJpYW50IFNlY3Rpb25zIiBhcmUgY2VydGFpbiBTZWNvbmRhcnkgU2VjdGlvbnMgd2hvc2UgdGl0bGVzCithcmUgZGVzaWduYXRlZCwgYXMgYmVpbmcgdGhvc2Ugb2YgSW52YXJpYW50IFNlY3Rpb25zLCBpbiB0aGUgbm90aWNlCit0aGF0IHNheXMgdGhhdCB0aGUgRG9jdW1lbnQgaXMgcmVsZWFzZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgSWYgYQorc2VjdGlvbiBkb2VzIG5vdCBmaXQgdGhlIGFib3ZlIGRlZmluaXRpb24gb2YgU2Vjb25kYXJ5IHRoZW4gaXQgaXMgbm90CithbGxvd2VkIHRvIGJlIGRlc2lnbmF0ZWQgYXMgSW52YXJpYW50LiAgVGhlIERvY3VtZW50IG1heSBjb250YWluIHplcm8KK0ludmFyaWFudCBTZWN0aW9ucy4gIElmIHRoZSBEb2N1bWVudCBkb2VzIG5vdCBpZGVudGlmeSBhbnkgSW52YXJpYW50CitTZWN0aW9ucyB0aGVuIHRoZXJlIGFyZSBub25lLgorPC9QPjxQPgorCitUaGUgIkNvdmVyIFRleHRzIiBhcmUgY2VydGFpbiBzaG9ydCBwYXNzYWdlcyBvZiB0ZXh0IHRoYXQgYXJlIGxpc3RlZCwKK2FzIEZyb250LUNvdmVyIFRleHRzIG9yIEJhY2stQ292ZXIgVGV4dHMsIGluIHRoZSBub3RpY2UgdGhhdCBzYXlzIHRoYXQKK3RoZSBEb2N1bWVudCBpcyByZWxlYXNlZCB1bmRlciB0aGlzIExpY2Vuc2UuICBBIEZyb250LUNvdmVyIFRleHQgbWF5CitiZSBhdCBtb3N0IDUgd29yZHMsIGFuZCBhIEJhY2stQ292ZXIgVGV4dCBtYXkgYmUgYXQgbW9zdCAyNSB3b3Jkcy4KKzwvUD48UD4KKworQSAiVHJhbnNwYXJlbnQiIGNvcHkgb2YgdGhlIERvY3VtZW50IG1lYW5zIGEgbWFjaGluZS1yZWFkYWJsZSBjb3B5LAorcmVwcmVzZW50ZWQgaW4gYSBmb3JtYXQgd2hvc2Ugc3BlY2lmaWNhdGlvbiBpcyBhdmFpbGFibGUgdG8gdGhlCitnZW5lcmFsIHB1YmxpYywgdGhhdCBpcyBzdWl0YWJsZSBmb3IgcmV2aXNpbmcgdGhlIGRvY3VtZW50CitzdHJhaWdodGZvcndhcmRseSB3aXRoIGdlbmVyaWMgdGV4dCBlZGl0b3JzIG9yIChmb3IgaW1hZ2VzIGNvbXBvc2VkIG9mCitwaXhlbHMpIGdlbmVyaWMgcGFpbnQgcHJvZ3JhbXMgb3IgKGZvciBkcmF3aW5ncykgc29tZSB3aWRlbHkgYXZhaWxhYmxlCitkcmF3aW5nIGVkaXRvciwgYW5kIHRoYXQgaXMgc3VpdGFibGUgZm9yIGlucHV0IHRvIHRleHQgZm9ybWF0dGVycyBvcgorZm9yIGF1dG9tYXRpYyB0cmFuc2xhdGlvbiB0byBhIHZhcmlldHkgb2YgZm9ybWF0cyBzdWl0YWJsZSBmb3IgaW5wdXQKK3RvIHRleHQgZm9ybWF0dGVycy4gIEEgY29weSBtYWRlIGluIGFuIG90aGVyd2lzZSBUcmFuc3BhcmVudCBmaWxlCitmb3JtYXQgd2hvc2UgbWFya3VwLCBvciBhYnNlbmNlIG9mIG1hcmt1cCwgaGFzIGJlZW4gYXJyYW5nZWQgdG8gdGh3YXJ0CitvciBkaXNjb3VyYWdlIHN1YnNlcXVlbnQgbW9kaWZpY2F0aW9uIGJ5IHJlYWRlcnMgaXMgbm90IFRyYW5zcGFyZW50LgorQW4gaW1hZ2UgZm9ybWF0IGlzIG5vdCBUcmFuc3BhcmVudCBpZiB1c2VkIGZvciBhbnkgc3Vic3RhbnRpYWwgYW1vdW50CitvZiB0ZXh0LiAgQSBjb3B5IHRoYXQgaXMgbm90ICJUcmFuc3BhcmVudCIgaXMgY2FsbGVkICJPcGFxdWUiLgorPC9QPjxQPgorCitFeGFtcGxlcyBvZiBzdWl0YWJsZSBmb3JtYXRzIGZvciBUcmFuc3BhcmVudCBjb3BpZXMgaW5jbHVkZSBwbGFpbgorQVNDSUkgd2l0aG91dCBtYXJrdXAsIFRleGluZm8gaW5wdXQgZm9ybWF0LCBMYVRlWCBpbnB1dAorZm9ybWF0LCA8Rk9OVCBTSVpFPSItMSI+U0dNTDwvRk9OVD4gb3IgPEZPTlQgU0laRT0iLTEiPlhNTDwvRk9OVD4gdXNpbmcgYSBwdWJsaWNseSBhdmFpbGFibGUKKzxGT05UIFNJWkU9Ii0xIj5EVEQ8L0ZPTlQ+LCBhbmQgc3RhbmRhcmQtY29uZm9ybWluZyBzaW1wbGUgPEZPTlQgU0laRT0iLTEiPkhUTUw8L0ZPTlQ+LAorUG9zdFNjcmlwdCBvciA8Rk9OVCBTSVpFPSItMSI+UERGPC9GT05UPiBkZXNpZ25lZCBmb3IgaHVtYW4gbW9kaWZpY2F0aW9uLiAgRXhhbXBsZXMKK29mIHRyYW5zcGFyZW50IGltYWdlIGZvcm1hdHMgaW5jbHVkZSA8Rk9OVCBTSVpFPSItMSI+UE5HPC9GT05UPiwgPEZPTlQgU0laRT0iLTEiPlhDRjwvRk9OVD4gYW5kCis8Rk9OVCBTSVpFPSItMSI+SlBHPC9GT05UPi4gIE9wYXF1ZSBmb3JtYXRzIGluY2x1ZGUgcHJvcHJpZXRhcnkgZm9ybWF0cyB0aGF0IGNhbiBiZQorcmVhZCBhbmQgZWRpdGVkIG9ubHkgYnkgcHJvcHJpZXRhcnkgd29yZCBwcm9jZXNzb3JzLCA8Rk9OVCBTSVpFPSItMSI+U0dNTDwvRk9OVD4gb3IKKzxGT05UIFNJWkU9Ii0xIj5YTUw8L0ZPTlQ+IGZvciB3aGljaCB0aGUgPEZPTlQgU0laRT0iLTEiPkRURDwvRk9OVD4gYW5kL29yIHByb2Nlc3NpbmcgdG9vbHMgYXJlCitub3QgZ2VuZXJhbGx5IGF2YWlsYWJsZSwgYW5kIHRoZSBtYWNoaW5lLWdlbmVyYXRlZCA8Rk9OVCBTSVpFPSItMSI+SFRNTDwvRk9OVD4sCitQb3N0U2NyaXB0IG9yIDxGT05UIFNJWkU9Ii0xIj5QREY8L0ZPTlQ+IHByb2R1Y2VkIGJ5IHNvbWUgd29yZCBwcm9jZXNzb3JzIGZvcgorb3V0cHV0IHB1cnBvc2VzIG9ubHkuCis8L1A+PFA+CisKK1RoZSAiVGl0bGUgUGFnZSIgbWVhbnMsIGZvciBhIHByaW50ZWQgYm9vaywgdGhlIHRpdGxlIHBhZ2UgaXRzZWxmLAorcGx1cyBzdWNoIGZvbGxvd2luZyBwYWdlcyBhcyBhcmUgbmVlZGVkIHRvIGhvbGQsIGxlZ2libHksIHRoZSBtYXRlcmlhbAordGhpcyBMaWNlbnNlIHJlcXVpcmVzIHRvIGFwcGVhciBpbiB0aGUgdGl0bGUgcGFnZS4gIEZvciB3b3JrcyBpbgorZm9ybWF0cyB3aGljaCBkbyBub3QgaGF2ZSBhbnkgdGl0bGUgcGFnZSBhcyBzdWNoLCAiVGl0bGUgUGFnZSIgbWVhbnMKK3RoZSB0ZXh0IG5lYXIgdGhlIG1vc3QgcHJvbWluZW50IGFwcGVhcmFuY2Ugb2YgdGhlIHdvcmsncyB0aXRsZSwKK3ByZWNlZGluZyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBib2R5IG9mIHRoZSB0ZXh0LgorPC9QPjxQPgorCitBIHNlY3Rpb24gIkVudGl0bGVkIFhZWiIgbWVhbnMgYSBuYW1lZCBzdWJ1bml0IG9mIHRoZSBEb2N1bWVudCB3aG9zZQordGl0bGUgZWl0aGVyIGlzIHByZWNpc2VseSBYWVogb3IgY29udGFpbnMgWFlaIGluIHBhcmVudGhlc2VzIGZvbGxvd2luZwordGV4dCB0aGF0IHRyYW5zbGF0ZXMgWFlaIGluIGFub3RoZXIgbGFuZ3VhZ2UuICAoSGVyZSBYWVogc3RhbmRzIGZvciBhCitzcGVjaWZpYyBzZWN0aW9uIG5hbWUgbWVudGlvbmVkIGJlbG93LCBzdWNoIGFzICJBY2tub3dsZWRnZW1lbnRzIiwKKyJEZWRpY2F0aW9ucyIsICJFbmRvcnNlbWVudHMiLCBvciAiSGlzdG9yeSIuKSAgVG8gIlByZXNlcnZlIHRoZSBUaXRsZSIKK29mIHN1Y2ggYSBzZWN0aW9uIHdoZW4geW91IG1vZGlmeSB0aGUgRG9jdW1lbnQgbWVhbnMgdGhhdCBpdCByZW1haW5zIGEKK3NlY3Rpb24gIkVudGl0bGVkIFhZWiIgYWNjb3JkaW5nIHRvIHRoaXMgZGVmaW5pdGlvbi4KKzwvUD48UD4KKworVGhlIERvY3VtZW50IG1heSBpbmNsdWRlIFdhcnJhbnR5IERpc2NsYWltZXJzIG5leHQgdG8gdGhlIG5vdGljZSB3aGljaAorc3RhdGVzIHRoYXQgdGhpcyBMaWNlbnNlIGFwcGxpZXMgdG8gdGhlIERvY3VtZW50LiAgVGhlc2UgV2FycmFudHkKK0Rpc2NsYWltZXJzIGFyZSBjb25zaWRlcmVkIHRvIGJlIGluY2x1ZGVkIGJ5IHJlZmVyZW5jZSBpbiB0aGlzCitMaWNlbnNlLCBidXQgb25seSBhcyByZWdhcmRzIGRpc2NsYWltaW5nIHdhcnJhbnRpZXM6IGFueSBvdGhlcgoraW1wbGljYXRpb24gdGhhdCB0aGVzZSBXYXJyYW50eSBEaXNjbGFpbWVycyBtYXkgaGF2ZSBpcyB2b2lkIGFuZCBoYXMKK25vIGVmZmVjdCBvbiB0aGUgbWVhbmluZyBvZiB0aGlzIExpY2Vuc2UuCis8L1A+PFA+CisKKzxMST4KK1ZFUkJBVElNIENPUFlJTkcKKzxQPgorCitZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdGhlIERvY3VtZW50IGluIGFueSBtZWRpdW0sIGVpdGhlcgorY29tbWVyY2lhbGx5IG9yIG5vbmNvbW1lcmNpYWxseSwgcHJvdmlkZWQgdGhhdCB0aGlzIExpY2Vuc2UsIHRoZQorY29weXJpZ2h0IG5vdGljZXMsIGFuZCB0aGUgbGljZW5zZSBub3RpY2Ugc2F5aW5nIHRoaXMgTGljZW5zZSBhcHBsaWVzCit0byB0aGUgRG9jdW1lbnQgYXJlIHJlcHJvZHVjZWQgaW4gYWxsIGNvcGllcywgYW5kIHRoYXQgeW91IGFkZCBubyBvdGhlcgorY29uZGl0aW9ucyB3aGF0c29ldmVyIHRvIHRob3NlIG9mIHRoaXMgTGljZW5zZS4gIFlvdSBtYXkgbm90IHVzZQordGVjaG5pY2FsIG1lYXN1cmVzIHRvIG9ic3RydWN0IG9yIGNvbnRyb2wgdGhlIHJlYWRpbmcgb3IgZnVydGhlcgorY29weWluZyBvZiB0aGUgY29waWVzIHlvdSBtYWtlIG9yIGRpc3RyaWJ1dGUuICBIb3dldmVyLCB5b3UgbWF5IGFjY2VwdAorY29tcGVuc2F0aW9uIGluIGV4Y2hhbmdlIGZvciBjb3BpZXMuICBJZiB5b3UgZGlzdHJpYnV0ZSBhIGxhcmdlIGVub3VnaAorbnVtYmVyIG9mIGNvcGllcyB5b3UgbXVzdCBhbHNvIGZvbGxvdyB0aGUgY29uZGl0aW9ucyBpbiBzZWN0aW9uIDMuCis8L1A+PFA+CisKK1lvdSBtYXkgYWxzbyBsZW5kIGNvcGllcywgdW5kZXIgdGhlIHNhbWUgY29uZGl0aW9ucyBzdGF0ZWQgYWJvdmUsIGFuZAoreW91IG1heSBwdWJsaWNseSBkaXNwbGF5IGNvcGllcy4KKzwvUD48UD4KKworPExJPgorQ09QWUlORyBJTiBRVUFOVElUWQorPFA+CisKK0lmIHlvdSBwdWJsaXNoIHByaW50ZWQgY29waWVzIChvciBjb3BpZXMgaW4gbWVkaWEgdGhhdCBjb21tb25seSBoYXZlCitwcmludGVkIGNvdmVycykgb2YgdGhlIERvY3VtZW50LCBudW1iZXJpbmcgbW9yZSB0aGFuIDEwMCwgYW5kIHRoZQorRG9jdW1lbnQncyBsaWNlbnNlIG5vdGljZSByZXF1aXJlcyBDb3ZlciBUZXh0cywgeW91IG11c3QgZW5jbG9zZSB0aGUKK2NvcGllcyBpbiBjb3ZlcnMgdGhhdCBjYXJyeSwgY2xlYXJseSBhbmQgbGVnaWJseSwgYWxsIHRoZXNlIENvdmVyCitUZXh0czogRnJvbnQtQ292ZXIgVGV4dHMgb24gdGhlIGZyb250IGNvdmVyLCBhbmQgQmFjay1Db3ZlciBUZXh0cyBvbgordGhlIGJhY2sgY292ZXIuICBCb3RoIGNvdmVycyBtdXN0IGFsc28gY2xlYXJseSBhbmQgbGVnaWJseSBpZGVudGlmeQoreW91IGFzIHRoZSBwdWJsaXNoZXIgb2YgdGhlc2UgY29waWVzLiAgVGhlIGZyb250IGNvdmVyIG11c3QgcHJlc2VudAordGhlIGZ1bGwgdGl0bGUgd2l0aCBhbGwgd29yZHMgb2YgdGhlIHRpdGxlIGVxdWFsbHkgcHJvbWluZW50IGFuZAordmlzaWJsZS4gIFlvdSBtYXkgYWRkIG90aGVyIG1hdGVyaWFsIG9uIHRoZSBjb3ZlcnMgaW4gYWRkaXRpb24uCitDb3B5aW5nIHdpdGggY2hhbmdlcyBsaW1pdGVkIHRvIHRoZSBjb3ZlcnMsIGFzIGxvbmcgYXMgdGhleSBwcmVzZXJ2ZQordGhlIHRpdGxlIG9mIHRoZSBEb2N1bWVudCBhbmQgc2F0aXNmeSB0aGVzZSBjb25kaXRpb25zLCBjYW4gYmUgdHJlYXRlZAorYXMgdmVyYmF0aW0gY29weWluZyBpbiBvdGhlciByZXNwZWN0cy4KKzwvUD48UD4KKworSWYgdGhlIHJlcXVpcmVkIHRleHRzIGZvciBlaXRoZXIgY292ZXIgYXJlIHRvbyB2b2x1bWlub3VzIHRvIGZpdAorbGVnaWJseSwgeW91IHNob3VsZCBwdXQgdGhlIGZpcnN0IG9uZXMgbGlzdGVkIChhcyBtYW55IGFzIGZpdAorcmVhc29uYWJseSkgb24gdGhlIGFjdHVhbCBjb3ZlciwgYW5kIGNvbnRpbnVlIHRoZSByZXN0IG9udG8gYWRqYWNlbnQKK3BhZ2VzLgorPC9QPjxQPgorCitJZiB5b3UgcHVibGlzaCBvciBkaXN0cmlidXRlIE9wYXF1ZSBjb3BpZXMgb2YgdGhlIERvY3VtZW50IG51bWJlcmluZworbW9yZSB0aGFuIDEwMCwgeW91IG11c3QgZWl0aGVyIGluY2x1ZGUgYSBtYWNoaW5lLXJlYWRhYmxlIFRyYW5zcGFyZW50Citjb3B5IGFsb25nIHdpdGggZWFjaCBPcGFxdWUgY29weSwgb3Igc3RhdGUgaW4gb3Igd2l0aCBlYWNoIE9wYXF1ZSBjb3B5CithIGNvbXB1dGVyLW5ldHdvcmsgbG9jYXRpb24gZnJvbSB3aGljaCB0aGUgZ2VuZXJhbCBuZXR3b3JrLXVzaW5nCitwdWJsaWMgaGFzIGFjY2VzcyB0byBkb3dubG9hZCB1c2luZyBwdWJsaWMtc3RhbmRhcmQgbmV0d29yayBwcm90b2NvbHMKK2EgY29tcGxldGUgVHJhbnNwYXJlbnQgY29weSBvZiB0aGUgRG9jdW1lbnQsIGZyZWUgb2YgYWRkZWQgbWF0ZXJpYWwuCitJZiB5b3UgdXNlIHRoZSBsYXR0ZXIgb3B0aW9uLCB5b3UgbXVzdCB0YWtlIHJlYXNvbmFibHkgcHJ1ZGVudCBzdGVwcywKK3doZW4geW91IGJlZ2luIGRpc3RyaWJ1dGlvbiBvZiBPcGFxdWUgY29waWVzIGluIHF1YW50aXR5LCB0byBlbnN1cmUKK3RoYXQgdGhpcyBUcmFuc3BhcmVudCBjb3B5IHdpbGwgcmVtYWluIHRodXMgYWNjZXNzaWJsZSBhdCB0aGUgc3RhdGVkCitsb2NhdGlvbiB1bnRpbCBhdCBsZWFzdCBvbmUgeWVhciBhZnRlciB0aGUgbGFzdCB0aW1lIHlvdSBkaXN0cmlidXRlIGFuCitPcGFxdWUgY29weSAoZGlyZWN0bHkgb3IgdGhyb3VnaCB5b3VyIGFnZW50cyBvciByZXRhaWxlcnMpIG9mIHRoYXQKK2VkaXRpb24gdG8gdGhlIHB1YmxpYy4KKzwvUD48UD4KKworSXQgaXMgcmVxdWVzdGVkLCBidXQgbm90IHJlcXVpcmVkLCB0aGF0IHlvdSBjb250YWN0IHRoZSBhdXRob3JzIG9mIHRoZQorRG9jdW1lbnQgd2VsbCBiZWZvcmUgcmVkaXN0cmlidXRpbmcgYW55IGxhcmdlIG51bWJlciBvZiBjb3BpZXMsIHRvIGdpdmUKK3RoZW0gYSBjaGFuY2UgdG8gcHJvdmlkZSB5b3Ugd2l0aCBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdGhlIERvY3VtZW50LgorPC9QPjxQPgorCis8TEk+CitNT0RJRklDQVRJT05TCis8UD4KKworWW91IG1heSBjb3B5IGFuZCBkaXN0cmlidXRlIGEgTW9kaWZpZWQgVmVyc2lvbiBvZiB0aGUgRG9jdW1lbnQgdW5kZXIKK3RoZSBjb25kaXRpb25zIG9mIHNlY3Rpb25zIDIgYW5kIDMgYWJvdmUsIHByb3ZpZGVkIHRoYXQgeW91IHJlbGVhc2UKK3RoZSBNb2RpZmllZCBWZXJzaW9uIHVuZGVyIHByZWNpc2VseSB0aGlzIExpY2Vuc2UsIHdpdGggdGhlIE1vZGlmaWVkCitWZXJzaW9uIGZpbGxpbmcgdGhlIHJvbGUgb2YgdGhlIERvY3VtZW50LCB0aHVzIGxpY2Vuc2luZyBkaXN0cmlidXRpb24KK2FuZCBtb2RpZmljYXRpb24gb2YgdGhlIE1vZGlmaWVkIFZlcnNpb24gdG8gd2hvZXZlciBwb3NzZXNzZXMgYSBjb3B5CitvZiBpdC4gIEluIGFkZGl0aW9uLCB5b3UgbXVzdCBkbyB0aGVzZSB0aGluZ3MgaW4gdGhlIE1vZGlmaWVkIFZlcnNpb246Cis8L1A+PFA+CisKKzxPTD4KKzxMST4KK1VzZSBpbiB0aGUgVGl0bGUgUGFnZSAoYW5kIG9uIHRoZSBjb3ZlcnMsIGlmIGFueSkgYSB0aXRsZSBkaXN0aW5jdAorZnJvbSB0aGF0IG9mIHRoZSBEb2N1bWVudCwgYW5kIGZyb20gdGhvc2Ugb2YgcHJldmlvdXMgdmVyc2lvbnMKKyh3aGljaCBzaG91bGQsIGlmIHRoZXJlIHdlcmUgYW55LCBiZSBsaXN0ZWQgaW4gdGhlIEhpc3Rvcnkgc2VjdGlvbgorb2YgdGhlIERvY3VtZW50KS4gIFlvdSBtYXkgdXNlIHRoZSBzYW1lIHRpdGxlIGFzIGEgcHJldmlvdXMgdmVyc2lvbgoraWYgdGhlIG9yaWdpbmFsIHB1Ymxpc2hlciBvZiB0aGF0IHZlcnNpb24gZ2l2ZXMgcGVybWlzc2lvbi4KKzxQPgorCis8TEk+CitMaXN0IG9uIHRoZSBUaXRsZSBQYWdlLCBhcyBhdXRob3JzLCBvbmUgb3IgbW9yZSBwZXJzb25zIG9yIGVudGl0aWVzCityZXNwb25zaWJsZSBmb3IgYXV0aG9yc2hpcCBvZiB0aGUgbW9kaWZpY2F0aW9ucyBpbiB0aGUgTW9kaWZpZWQKK1ZlcnNpb24sIHRvZ2V0aGVyIHdpdGggYXQgbGVhc3QgZml2ZSBvZiB0aGUgcHJpbmNpcGFsIGF1dGhvcnMgb2YgdGhlCitEb2N1bWVudCAoYWxsIG9mIGl0cyBwcmluY2lwYWwgYXV0aG9ycywgaWYgaXQgaGFzIGZld2VyIHRoYW4gZml2ZSksCit1bmxlc3MgdGhleSByZWxlYXNlIHlvdSBmcm9tIHRoaXMgcmVxdWlyZW1lbnQuCis8UD4KKworPExJPgorU3RhdGUgb24gdGhlIFRpdGxlIHBhZ2UgdGhlIG5hbWUgb2YgdGhlIHB1Ymxpc2hlciBvZiB0aGUKK01vZGlmaWVkIFZlcnNpb24sIGFzIHRoZSBwdWJsaXNoZXIuCis8UD4KKworPExJPgorUHJlc2VydmUgYWxsIHRoZSBjb3B5cmlnaHQgbm90aWNlcyBvZiB0aGUgRG9jdW1lbnQuCis8UD4KKworPExJPgorQWRkIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UgZm9yIHlvdXIgbW9kaWZpY2F0aW9ucworYWRqYWNlbnQgdG8gdGhlIG90aGVyIGNvcHlyaWdodCBub3RpY2VzLgorPFA+CisKKzxMST4KK0luY2x1ZGUsIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBjb3B5cmlnaHQgbm90aWNlcywgYSBsaWNlbnNlIG5vdGljZQorZ2l2aW5nIHRoZSBwdWJsaWMgcGVybWlzc2lvbiB0byB1c2UgdGhlIE1vZGlmaWVkIFZlcnNpb24gdW5kZXIgdGhlCit0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsIGluIHRoZSBmb3JtIHNob3duIGluIHRoZSBBZGRlbmR1bSBiZWxvdy4KKzxQPgorCis8TEk+CitQcmVzZXJ2ZSBpbiB0aGF0IGxpY2Vuc2Ugbm90aWNlIHRoZSBmdWxsIGxpc3RzIG9mIEludmFyaWFudCBTZWN0aW9ucworYW5kIHJlcXVpcmVkIENvdmVyIFRleHRzIGdpdmVuIGluIHRoZSBEb2N1bWVudCdzIGxpY2Vuc2Ugbm90aWNlLgorPFA+CisKKzxMST4KK0luY2x1ZGUgYW4gdW5hbHRlcmVkIGNvcHkgb2YgdGhpcyBMaWNlbnNlLgorPFA+CisKKzxMST4KK1ByZXNlcnZlIHRoZSBzZWN0aW9uIEVudGl0bGVkICJIaXN0b3J5IiwgUHJlc2VydmUgaXRzIFRpdGxlLCBhbmQgYWRkCit0byBpdCBhbiBpdGVtIHN0YXRpbmcgYXQgbGVhc3QgdGhlIHRpdGxlLCB5ZWFyLCBuZXcgYXV0aG9ycywgYW5kCitwdWJsaXNoZXIgb2YgdGhlIE1vZGlmaWVkIFZlcnNpb24gYXMgZ2l2ZW4gb24gdGhlIFRpdGxlIFBhZ2UuICBJZgordGhlcmUgaXMgbm8gc2VjdGlvbiBFbnRpdGxlZCAiSGlzdG9yeSIgaW4gdGhlIERvY3VtZW50LCBjcmVhdGUgb25lCitzdGF0aW5nIHRoZSB0aXRsZSwgeWVhciwgYXV0aG9ycywgYW5kIHB1Ymxpc2hlciBvZiB0aGUgRG9jdW1lbnQgYXMKK2dpdmVuIG9uIGl0cyBUaXRsZSBQYWdlLCB0aGVuIGFkZCBhbiBpdGVtIGRlc2NyaWJpbmcgdGhlIE1vZGlmaWVkCitWZXJzaW9uIGFzIHN0YXRlZCBpbiB0aGUgcHJldmlvdXMgc2VudGVuY2UuCis8UD4KKworPExJPgorUHJlc2VydmUgdGhlIG5ldHdvcmsgbG9jYXRpb24sIGlmIGFueSwgZ2l2ZW4gaW4gdGhlIERvY3VtZW50IGZvcgorcHVibGljIGFjY2VzcyB0byBhIFRyYW5zcGFyZW50IGNvcHkgb2YgdGhlIERvY3VtZW50LCBhbmQgbGlrZXdpc2UKK3RoZSBuZXR3b3JrIGxvY2F0aW9ucyBnaXZlbiBpbiB0aGUgRG9jdW1lbnQgZm9yIHByZXZpb3VzIHZlcnNpb25zCitpdCB3YXMgYmFzZWQgb24uICBUaGVzZSBtYXkgYmUgcGxhY2VkIGluIHRoZSAiSGlzdG9yeSIgc2VjdGlvbi4KK1lvdSBtYXkgb21pdCBhIG5ldHdvcmsgbG9jYXRpb24gZm9yIGEgd29yayB0aGF0IHdhcyBwdWJsaXNoZWQgYXQKK2xlYXN0IGZvdXIgeWVhcnMgYmVmb3JlIHRoZSBEb2N1bWVudCBpdHNlbGYsIG9yIGlmIHRoZSBvcmlnaW5hbAorcHVibGlzaGVyIG9mIHRoZSB2ZXJzaW9uIGl0IHJlZmVycyB0byBnaXZlcyBwZXJtaXNzaW9uLgorPFA+CisKKzxMST4KK0ZvciBhbnkgc2VjdGlvbiBFbnRpdGxlZCAiQWNrbm93bGVkZ2VtZW50cyIgb3IgIkRlZGljYXRpb25zIiwgUHJlc2VydmUKK3RoZSBUaXRsZSBvZiB0aGUgc2VjdGlvbiwgYW5kIHByZXNlcnZlIGluIHRoZSBzZWN0aW9uIGFsbCB0aGUKK3N1YnN0YW5jZSBhbmQgdG9uZSBvZiBlYWNoIG9mIHRoZSBjb250cmlidXRvciBhY2tub3dsZWRnZW1lbnRzIGFuZC9vcgorZGVkaWNhdGlvbnMgZ2l2ZW4gdGhlcmVpbi4KKzxQPgorCis8TEk+CitQcmVzZXJ2ZSBhbGwgdGhlIEludmFyaWFudCBTZWN0aW9ucyBvZiB0aGUgRG9jdW1lbnQsCit1bmFsdGVyZWQgaW4gdGhlaXIgdGV4dCBhbmQgaW4gdGhlaXIgdGl0bGVzLiAgU2VjdGlvbiBudW1iZXJzCitvciB0aGUgZXF1aXZhbGVudCBhcmUgbm90IGNvbnNpZGVyZWQgcGFydCBvZiB0aGUgc2VjdGlvbiB0aXRsZXMuCis8UD4KKworPExJPgorRGVsZXRlIGFueSBzZWN0aW9uIEVudGl0bGVkICJFbmRvcnNlbWVudHMiLiAgU3VjaCBhIHNlY3Rpb24KK21heSBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIE1vZGlmaWVkIFZlcnNpb24uCis8UD4KKworPExJPgorRG8gbm90IHJldGl0bGUgYW55IGV4aXN0aW5nIHNlY3Rpb24gdG8gYmUgRW50aXRsZWQgIkVuZG9yc2VtZW50cyIgb3IKK3RvIGNvbmZsaWN0IGluIHRpdGxlIHdpdGggYW55IEludmFyaWFudCBTZWN0aW9uLgorPFA+CisKKzxMST4KK1ByZXNlcnZlIGFueSBXYXJyYW50eSBEaXNjbGFpbWVycy4KKzwvT0w+Cis8UD4KKworSWYgdGhlIE1vZGlmaWVkIFZlcnNpb24gaW5jbHVkZXMgbmV3IGZyb250LW1hdHRlciBzZWN0aW9ucyBvcgorYXBwZW5kaWNlcyB0aGF0IHF1YWxpZnkgYXMgU2Vjb25kYXJ5IFNlY3Rpb25zIGFuZCBjb250YWluIG5vIG1hdGVyaWFsCitjb3BpZWQgZnJvbSB0aGUgRG9jdW1lbnQsIHlvdSBtYXkgYXQgeW91ciBvcHRpb24gZGVzaWduYXRlIHNvbWUgb3IgYWxsCitvZiB0aGVzZSBzZWN0aW9ucyBhcyBpbnZhcmlhbnQuICBUbyBkbyB0aGlzLCBhZGQgdGhlaXIgdGl0bGVzIHRvIHRoZQorbGlzdCBvZiBJbnZhcmlhbnQgU2VjdGlvbnMgaW4gdGhlIE1vZGlmaWVkIFZlcnNpb24ncyBsaWNlbnNlIG5vdGljZS4KK1RoZXNlIHRpdGxlcyBtdXN0IGJlIGRpc3RpbmN0IGZyb20gYW55IG90aGVyIHNlY3Rpb24gdGl0bGVzLgorPC9QPjxQPgorCitZb3UgbWF5IGFkZCBhIHNlY3Rpb24gRW50aXRsZWQgIkVuZG9yc2VtZW50cyIsIHByb3ZpZGVkIGl0IGNvbnRhaW5zCitub3RoaW5nIGJ1dCBlbmRvcnNlbWVudHMgb2YgeW91ciBNb2RpZmllZCBWZXJzaW9uIGJ5IHZhcmlvdXMKK3BhcnRpZXMtLWZvciBleGFtcGxlLCBzdGF0ZW1lbnRzIG9mIHBlZXIgcmV2aWV3IG9yIHRoYXQgdGhlIHRleHQgaGFzCitiZWVuIGFwcHJvdmVkIGJ5IGFuIG9yZ2FuaXphdGlvbiBhcyB0aGUgYXV0aG9yaXRhdGl2ZSBkZWZpbml0aW9uIG9mIGEKK3N0YW5kYXJkLgorPC9QPjxQPgorCitZb3UgbWF5IGFkZCBhIHBhc3NhZ2Ugb2YgdXAgdG8gZml2ZSB3b3JkcyBhcyBhIEZyb250LUNvdmVyIFRleHQsIGFuZCBhCitwYXNzYWdlIG9mIHVwIHRvIDI1IHdvcmRzIGFzIGEgQmFjay1Db3ZlciBUZXh0LCB0byB0aGUgZW5kIG9mIHRoZSBsaXN0CitvZiBDb3ZlciBUZXh0cyBpbiB0aGUgTW9kaWZpZWQgVmVyc2lvbi4gIE9ubHkgb25lIHBhc3NhZ2Ugb2YKK0Zyb250LUNvdmVyIFRleHQgYW5kIG9uZSBvZiBCYWNrLUNvdmVyIFRleHQgbWF5IGJlIGFkZGVkIGJ5IChvcgordGhyb3VnaCBhcnJhbmdlbWVudHMgbWFkZSBieSkgYW55IG9uZSBlbnRpdHkuICBJZiB0aGUgRG9jdW1lbnQgYWxyZWFkeQoraW5jbHVkZXMgYSBjb3ZlciB0ZXh0IGZvciB0aGUgc2FtZSBjb3ZlciwgcHJldmlvdXNseSBhZGRlZCBieSB5b3Ugb3IKK2J5IGFycmFuZ2VtZW50IG1hZGUgYnkgdGhlIHNhbWUgZW50aXR5IHlvdSBhcmUgYWN0aW5nIG9uIGJlaGFsZiBvZiwKK3lvdSBtYXkgbm90IGFkZCBhbm90aGVyOyBidXQgeW91IG1heSByZXBsYWNlIHRoZSBvbGQgb25lLCBvbiBleHBsaWNpdAorcGVybWlzc2lvbiBmcm9tIHRoZSBwcmV2aW91cyBwdWJsaXNoZXIgdGhhdCBhZGRlZCB0aGUgb2xkIG9uZS4KKzwvUD48UD4KKworVGhlIGF1dGhvcihzKSBhbmQgcHVibGlzaGVyKHMpIG9mIHRoZSBEb2N1bWVudCBkbyBub3QgYnkgdGhpcyBMaWNlbnNlCitnaXZlIHBlcm1pc3Npb24gdG8gdXNlIHRoZWlyIG5hbWVzIGZvciBwdWJsaWNpdHkgZm9yIG9yIHRvIGFzc2VydCBvcgoraW1wbHkgZW5kb3JzZW1lbnQgb2YgYW55IE1vZGlmaWVkIFZlcnNpb24uCis8L1A+PFA+CisKKzxMST4KK0NPTUJJTklORyBET0NVTUVOVFMKKzxQPgorCitZb3UgbWF5IGNvbWJpbmUgdGhlIERvY3VtZW50IHdpdGggb3RoZXIgZG9jdW1lbnRzIHJlbGVhc2VkIHVuZGVyIHRoaXMKK0xpY2Vuc2UsIHVuZGVyIHRoZSB0ZXJtcyBkZWZpbmVkIGluIHNlY3Rpb24gNCBhYm92ZSBmb3IgbW9kaWZpZWQKK3ZlcnNpb25zLCBwcm92aWRlZCB0aGF0IHlvdSBpbmNsdWRlIGluIHRoZSBjb21iaW5hdGlvbiBhbGwgb2YgdGhlCitJbnZhcmlhbnQgU2VjdGlvbnMgb2YgYWxsIG9mIHRoZSBvcmlnaW5hbCBkb2N1bWVudHMsIHVubW9kaWZpZWQsIGFuZAorbGlzdCB0aGVtIGFsbCBhcyBJbnZhcmlhbnQgU2VjdGlvbnMgb2YgeW91ciBjb21iaW5lZCB3b3JrIGluIGl0cworbGljZW5zZSBub3RpY2UsIGFuZCB0aGF0IHlvdSBwcmVzZXJ2ZSBhbGwgdGhlaXIgV2FycmFudHkgRGlzY2xhaW1lcnMuCis8L1A+PFA+CisKK1RoZSBjb21iaW5lZCB3b3JrIG5lZWQgb25seSBjb250YWluIG9uZSBjb3B5IG9mIHRoaXMgTGljZW5zZSwgYW5kCittdWx0aXBsZSBpZGVudGljYWwgSW52YXJpYW50IFNlY3Rpb25zIG1heSBiZSByZXBsYWNlZCB3aXRoIGEgc2luZ2xlCitjb3B5LiAgSWYgdGhlcmUgYXJlIG11bHRpcGxlIEludmFyaWFudCBTZWN0aW9ucyB3aXRoIHRoZSBzYW1lIG5hbWUgYnV0CitkaWZmZXJlbnQgY29udGVudHMsIG1ha2UgdGhlIHRpdGxlIG9mIGVhY2ggc3VjaCBzZWN0aW9uIHVuaXF1ZSBieQorYWRkaW5nIGF0IHRoZSBlbmQgb2YgaXQsIGluIHBhcmVudGhlc2VzLCB0aGUgbmFtZSBvZiB0aGUgb3JpZ2luYWwKK2F1dGhvciBvciBwdWJsaXNoZXIgb2YgdGhhdCBzZWN0aW9uIGlmIGtub3duLCBvciBlbHNlIGEgdW5pcXVlIG51bWJlci4KK01ha2UgdGhlIHNhbWUgYWRqdXN0bWVudCB0byB0aGUgc2VjdGlvbiB0aXRsZXMgaW4gdGhlIGxpc3Qgb2YKK0ludmFyaWFudCBTZWN0aW9ucyBpbiB0aGUgbGljZW5zZSBub3RpY2Ugb2YgdGhlIGNvbWJpbmVkIHdvcmsuCis8L1A+PFA+CisKK0luIHRoZSBjb21iaW5hdGlvbiwgeW91IG11c3QgY29tYmluZSBhbnkgc2VjdGlvbnMgRW50aXRsZWQgIkhpc3RvcnkiCitpbiB0aGUgdmFyaW91cyBvcmlnaW5hbCBkb2N1bWVudHMsIGZvcm1pbmcgb25lIHNlY3Rpb24gRW50aXRsZWQKKyJIaXN0b3J5IjsgbGlrZXdpc2UgY29tYmluZSBhbnkgc2VjdGlvbnMgRW50aXRsZWQgIkFja25vd2xlZGdlbWVudHMiLAorYW5kIGFueSBzZWN0aW9ucyBFbnRpdGxlZCAiRGVkaWNhdGlvbnMiLiAgWW91IG11c3QgZGVsZXRlIGFsbAorc2VjdGlvbnMgRW50aXRsZWQgIkVuZG9yc2VtZW50cy4iCis8L1A+PFA+CisKKzxMST4KK0NPTExFQ1RJT05TIE9GIERPQ1VNRU5UUworPFA+CisKK1lvdSBtYXkgbWFrZSBhIGNvbGxlY3Rpb24gY29uc2lzdGluZyBvZiB0aGUgRG9jdW1lbnQgYW5kIG90aGVyIGRvY3VtZW50cworcmVsZWFzZWQgdW5kZXIgdGhpcyBMaWNlbnNlLCBhbmQgcmVwbGFjZSB0aGUgaW5kaXZpZHVhbCBjb3BpZXMgb2YgdGhpcworTGljZW5zZSBpbiB0aGUgdmFyaW91cyBkb2N1bWVudHMgd2l0aCBhIHNpbmdsZSBjb3B5IHRoYXQgaXMgaW5jbHVkZWQgaW4KK3RoZSBjb2xsZWN0aW9uLCBwcm92aWRlZCB0aGF0IHlvdSBmb2xsb3cgdGhlIHJ1bGVzIG9mIHRoaXMgTGljZW5zZSBmb3IKK3ZlcmJhdGltIGNvcHlpbmcgb2YgZWFjaCBvZiB0aGUgZG9jdW1lbnRzIGluIGFsbCBvdGhlciByZXNwZWN0cy4KKzwvUD48UD4KKworWW91IG1heSBleHRyYWN0IGEgc2luZ2xlIGRvY3VtZW50IGZyb20gc3VjaCBhIGNvbGxlY3Rpb24sIGFuZCBkaXN0cmlidXRlCitpdCBpbmRpdmlkdWFsbHkgdW5kZXIgdGhpcyBMaWNlbnNlLCBwcm92aWRlZCB5b3UgaW5zZXJ0IGEgY29weSBvZiB0aGlzCitMaWNlbnNlIGludG8gdGhlIGV4dHJhY3RlZCBkb2N1bWVudCwgYW5kIGZvbGxvdyB0aGlzIExpY2Vuc2UgaW4gYWxsCitvdGhlciByZXNwZWN0cyByZWdhcmRpbmcgdmVyYmF0aW0gY29weWluZyBvZiB0aGF0IGRvY3VtZW50LgorPC9QPjxQPgorCis8TEk+CitBR0dSRUdBVElPTiBXSVRIIElOREVQRU5ERU5UIFdPUktTCis8UD4KKworQSBjb21waWxhdGlvbiBvZiB0aGUgRG9jdW1lbnQgb3IgaXRzIGRlcml2YXRpdmVzIHdpdGggb3RoZXIgc2VwYXJhdGUKK2FuZCBpbmRlcGVuZGVudCBkb2N1bWVudHMgb3Igd29ya3MsIGluIG9yIG9uIGEgdm9sdW1lIG9mIGEgc3RvcmFnZSBvcgorZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2FsbGVkIGFuICJhZ2dyZWdhdGUiIGlmIHRoZSBjb3B5cmlnaHQKK3Jlc3VsdGluZyBmcm9tIHRoZSBjb21waWxhdGlvbiBpcyBub3QgdXNlZCB0byBsaW1pdCB0aGUgbGVnYWwgcmlnaHRzCitvZiB0aGUgY29tcGlsYXRpb24ncyB1c2VycyBiZXlvbmQgd2hhdCB0aGUgaW5kaXZpZHVhbCB3b3JrcyBwZXJtaXQuCitXaGVuIHRoZSBEb2N1bWVudCBpcyBpbmNsdWRlZCBhbiBhZ2dyZWdhdGUsIHRoaXMgTGljZW5zZSBkb2VzIG5vdAorYXBwbHkgdG8gdGhlIG90aGVyIHdvcmtzIGluIHRoZSBhZ2dyZWdhdGUgd2hpY2ggYXJlIG5vdCB0aGVtc2VsdmVzCitkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBEb2N1bWVudC4KKzwvUD48UD4KKworSWYgdGhlIENvdmVyIFRleHQgcmVxdWlyZW1lbnQgb2Ygc2VjdGlvbiAzIGlzIGFwcGxpY2FibGUgdG8gdGhlc2UKK2NvcGllcyBvZiB0aGUgRG9jdW1lbnQsIHRoZW4gaWYgdGhlIERvY3VtZW50IGlzIGxlc3MgdGhhbiBvbmUgaGFsZiBvZgordGhlIGVudGlyZSBhZ2dyZWdhdGUsIHRoZSBEb2N1bWVudCdzIENvdmVyIFRleHRzIG1heSBiZSBwbGFjZWQgb24KK2NvdmVycyB0aGF0IGJyYWNrZXQgdGhlIERvY3VtZW50IHdpdGhpbiB0aGUgYWdncmVnYXRlLCBvciB0aGUKK2VsZWN0cm9uaWMgZXF1aXZhbGVudCBvZiBjb3ZlcnMgaWYgdGhlIERvY3VtZW50IGlzIGluIGVsZWN0cm9uaWMgZm9ybS4KK090aGVyd2lzZSB0aGV5IG11c3QgYXBwZWFyIG9uIHByaW50ZWQgY292ZXJzIHRoYXQgYnJhY2tldCB0aGUgd2hvbGUKK2FnZ3JlZ2F0ZS4KKzwvUD48UD4KKworPExJPgorVFJBTlNMQVRJT04KKzxQPgorCitUcmFuc2xhdGlvbiBpcyBjb25zaWRlcmVkIGEga2luZCBvZiBtb2RpZmljYXRpb24sIHNvIHlvdSBtYXkKK2Rpc3RyaWJ1dGUgdHJhbnNsYXRpb25zIG9mIHRoZSBEb2N1bWVudCB1bmRlciB0aGUgdGVybXMgb2Ygc2VjdGlvbiA0LgorUmVwbGFjaW5nIEludmFyaWFudCBTZWN0aW9ucyB3aXRoIHRyYW5zbGF0aW9ucyByZXF1aXJlcyBzcGVjaWFsCitwZXJtaXNzaW9uIGZyb20gdGhlaXIgY29weXJpZ2h0IGhvbGRlcnMsIGJ1dCB5b3UgbWF5IGluY2x1ZGUKK3RyYW5zbGF0aW9ucyBvZiBzb21lIG9yIGFsbCBJbnZhcmlhbnQgU2VjdGlvbnMgaW4gYWRkaXRpb24gdG8gdGhlCitvcmlnaW5hbCB2ZXJzaW9ucyBvZiB0aGVzZSBJbnZhcmlhbnQgU2VjdGlvbnMuICBZb3UgbWF5IGluY2x1ZGUgYQordHJhbnNsYXRpb24gb2YgdGhpcyBMaWNlbnNlLCBhbmQgYWxsIHRoZSBsaWNlbnNlIG5vdGljZXMgaW4gdGhlCitEb2N1bWVudCwgYW5kIGFueSBXYXJyYW50eSBEaXNjbGFpbWVycywgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBpbmNsdWRlCit0aGUgb3JpZ2luYWwgRW5nbGlzaCB2ZXJzaW9uIG9mIHRoaXMgTGljZW5zZSBhbmQgdGhlIG9yaWdpbmFsIHZlcnNpb25zCitvZiB0aG9zZSBub3RpY2VzIGFuZCBkaXNjbGFpbWVycy4gIEluIGNhc2Ugb2YgYSBkaXNhZ3JlZW1lbnQgYmV0d2VlbgordGhlIHRyYW5zbGF0aW9uIGFuZCB0aGUgb3JpZ2luYWwgdmVyc2lvbiBvZiB0aGlzIExpY2Vuc2Ugb3IgYSBub3RpY2UKK29yIGRpc2NsYWltZXIsIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIHdpbGwgcHJldmFpbC4KKzwvUD48UD4KKworSWYgYSBzZWN0aW9uIGluIHRoZSBEb2N1bWVudCBpcyBFbnRpdGxlZCAiQWNrbm93bGVkZ2VtZW50cyIsCisiRGVkaWNhdGlvbnMiLCBvciAiSGlzdG9yeSIsIHRoZSByZXF1aXJlbWVudCAoc2VjdGlvbiA0KSB0byBQcmVzZXJ2ZQoraXRzIFRpdGxlIChzZWN0aW9uIDEpIHdpbGwgdHlwaWNhbGx5IHJlcXVpcmUgY2hhbmdpbmcgdGhlIGFjdHVhbAordGl0bGUuCis8L1A+PFA+CisKKzxMST4KK1RFUk1JTkFUSU9OCis8UD4KKworWW91IG1heSBub3QgY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlLCBvciBkaXN0cmlidXRlIHRoZSBEb2N1bWVudCBleGNlcHQKK2FzIGV4cHJlc3NseSBwcm92aWRlZCBmb3IgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IG90aGVyIGF0dGVtcHQgdG8KK2NvcHksIG1vZGlmeSwgc3VibGljZW5zZSBvciBkaXN0cmlidXRlIHRoZSBEb2N1bWVudCBpcyB2b2lkLCBhbmQgd2lsbAorYXV0b21hdGljYWxseSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIgdGhpcyBMaWNlbnNlLiAgSG93ZXZlciwKK3BhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzLCBvciByaWdodHMsIGZyb20geW91IHVuZGVyIHRoaXMKK0xpY2Vuc2Ugd2lsbCBub3QgaGF2ZSB0aGVpciBsaWNlbnNlcyB0ZXJtaW5hdGVkIHNvIGxvbmcgYXMgc3VjaAorcGFydGllcyByZW1haW4gaW4gZnVsbCBjb21wbGlhbmNlLgorPC9QPjxQPgorCis8TEk+CitGVVRVUkUgUkVWSVNJT05TIE9GIFRISVMgTElDRU5TRQorPFA+CisKK1RoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gbWF5IHB1Ymxpc2ggbmV3LCByZXZpc2VkIHZlcnNpb25zCitvZiB0aGUgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlIGZyb20gdGltZSB0byB0aW1lLiAgU3VjaCBuZXcKK3ZlcnNpb25zIHdpbGwgYmUgc2ltaWxhciBpbiBzcGlyaXQgdG8gdGhlIHByZXNlbnQgdmVyc2lvbiwgYnV0IG1heQorZGlmZmVyIGluIGRldGFpbCB0byBhZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4gIFNlZQorPEEgSFJFRj0iaHR0cDovL3d3dy5nbnUub3JnL2NvcHlsZWZ0LyI+aHR0cDovL3d3dy5nbnUub3JnL2NvcHlsZWZ0LzwvQT4uCis8L1A+PFA+CisKK0VhY2ggdmVyc2lvbiBvZiB0aGUgTGljZW5zZSBpcyBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLgorSWYgdGhlIERvY3VtZW50IHNwZWNpZmllcyB0aGF0IGEgcGFydGljdWxhciBudW1iZXJlZCB2ZXJzaW9uIG9mIHRoaXMKK0xpY2Vuc2UgIm9yIGFueSBsYXRlciB2ZXJzaW9uIiBhcHBsaWVzIHRvIGl0LCB5b3UgaGF2ZSB0aGUgb3B0aW9uIG9mCitmb2xsb3dpbmcgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGVpdGhlciBvZiB0aGF0IHNwZWNpZmllZCB2ZXJzaW9uIG9yCitvZiBhbnkgbGF0ZXIgdmVyc2lvbiB0aGF0IGhhcyBiZWVuIHB1Ymxpc2hlZCAobm90IGFzIGEgZHJhZnQpIGJ5IHRoZQorRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgSWYgdGhlIERvY3VtZW50IGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJzaW9uCitudW1iZXIgb2YgdGhpcyBMaWNlbnNlLCB5b3UgbWF5IGNob29zZSBhbnkgdmVyc2lvbiBldmVyIHB1Ymxpc2hlZCAobm90CithcyBhIGRyYWZ0KSBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorPC9PTD4KKzxQPgorCis8SFIgU0laRT0iNiI+Cis8QSBOQU1FPSJTRUMyNSI+PC9BPgorPFRBQkxFIENFTExQQURESU5HPTEgQ0VMTFNQQUNJTkc9MSBCT1JERVI9MD4KKzxUUj48VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmx1c2VybWFuLmh0bWwjU0VDMjQiPiAmbHQ7IDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPlsgJmd0OyBdPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJsdXNlcm1hbi5odG1sI1NFQzIzIj4gJmx0OyZsdDsgPC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJsdXNlcm1hbi5odG1sI1NFQzI0Ij4gVXAgPC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WyAmZ3Q7Jmd0OyBdPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+ICZuYnNwOyA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj4gJm5ic3A7IDxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPiAmbmJzcDsgPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+WzxBIEhSRUY9InJsdXNlcm1hbi5odG1sI1NFQ19Ub3AiPlRvcDwvQT5dPC9URD4KKzxURCBWQUxJR049Ik1JRERMRSIgQUxJR049IkxFRlQiPls8QSBIUkVGPSJybHVzZXJtYW4uaHRtbCNTRUNfQ29udGVudHMiPkNvbnRlbnRzPC9BPl08L1REPgorPFREIFZBTElHTj0iTUlERExFIiBBTElHTj0iTEVGVCI+W0luZGV4XTwvVEQ+Cis8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmx1c2VybWFuLmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+Cis8L1RSPjwvVEFCTEU+Cis8SDM+IEEuMS4xIEFEREVORFVNOiBIb3cgdG8gdXNlIHRoaXMgTGljZW5zZSBmb3IgeW91ciBkb2N1bWVudHMgPC9IMz4KKzwhLS1kb2NpZDo6U0VDMjU6Oi0tPgorPFA+CisKK1RvIHVzZSB0aGlzIExpY2Vuc2UgaW4gYSBkb2N1bWVudCB5b3UgaGF2ZSB3cml0dGVuLCBpbmNsdWRlIGEgY29weSBvZgordGhlIExpY2Vuc2UgaW4gdGhlIGRvY3VtZW50IGFuZCBwdXQgdGhlIGZvbGxvd2luZyBjb3B5cmlnaHQgYW5kCitsaWNlbnNlIG5vdGljZXMganVzdCBhZnRlciB0aGUgdGl0bGUgcGFnZToKKzwvUD48UD4KKworPFRBQkxFPjx0cj48dGQ+Jm5ic3A7PC90ZD48dGQgY2xhc3M9c21hbGxleGFtcGxlPjxGT05UIFNJWkU9LTE+PHByZT4gIENvcHlyaWdodCAoQykgIDxWQVI+eWVhcjwvVkFSPiAgPFZBUj55b3VyIG5hbWU8L1ZBUj4uCisgIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBjb3B5LCBkaXN0cmlidXRlIGFuZC9vciBtb2RpZnkgdGhpcyBkb2N1bWVudAorICB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZSwgVmVyc2lvbiAxLjIKKyAgb3IgYW55IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247CisgIHdpdGggbm8gSW52YXJpYW50IFNlY3Rpb25zLCBubyBGcm9udC1Db3ZlciBUZXh0cywgYW5kIG5vIEJhY2stQ292ZXIgVGV4dHMuCisgIEEgY29weSBvZiB0aGUgbGljZW5zZSBpcyBpbmNsdWRlZCBpbiB0aGUgc2VjdGlvbiBlbnRpdGxlZCBgYEdOVQorICBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZScnLgorPC9GT05UPjwvcHJlPjwvdGQ+PC90cj48L3RhYmxlPjwvUD48UD4KKworSWYgeW91IGhhdmUgSW52YXJpYW50IFNlY3Rpb25zLCBGcm9udC1Db3ZlciBUZXh0cyBhbmQgQmFjay1Db3ZlciBUZXh0cywKK3JlcGxhY2UgdGhlICJ3aXRoLi4uVGV4dHMuIiBsaW5lIHdpdGggdGhpczoKKzwvUD48UD4KKworPFRBQkxFPjx0cj48dGQ+Jm5ic3A7PC90ZD48dGQgY2xhc3M9c21hbGxleGFtcGxlPjxGT05UIFNJWkU9LTE+PHByZT4gICAgd2l0aCB0aGUgSW52YXJpYW50IFNlY3Rpb25zIGJlaW5nIDxWQVI+bGlzdCB0aGVpciB0aXRsZXM8L1ZBUj4sIHdpdGgKKyAgICB0aGUgRnJvbnQtQ292ZXIgVGV4dHMgYmVpbmcgPFZBUj5saXN0PC9WQVI+LCBhbmQgd2l0aCB0aGUgQmFjay1Db3ZlciBUZXh0cworICAgIGJlaW5nIDxWQVI+bGlzdDwvVkFSPi4KKzwvRk9OVD48L3ByZT48L3RkPjwvdHI+PC90YWJsZT48L1A+PFA+CisKK0lmIHlvdSBoYXZlIEludmFyaWFudCBTZWN0aW9ucyB3aXRob3V0IENvdmVyIFRleHRzLCBvciBzb21lIG90aGVyCitjb21iaW5hdGlvbiBvZiB0aGUgdGhyZWUsIG1lcmdlIHRob3NlIHR3byBhbHRlcm5hdGl2ZXMgdG8gc3VpdCB0aGUKK3NpdHVhdGlvbi4KKzwvUD48UD4KKworSWYgeW91ciBkb2N1bWVudCBjb250YWlucyBub250cml2aWFsIGV4YW1wbGVzIG9mIHByb2dyYW0gY29kZSwgd2UKK3JlY29tbWVuZCByZWxlYXNpbmcgdGhlc2UgZXhhbXBsZXMgaW4gcGFyYWxsZWwgdW5kZXIgeW91ciBjaG9pY2Ugb2YKK2ZyZWUgc29mdHdhcmUgbGljZW5zZSwgc3VjaCBhcyB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCit0byBwZXJtaXQgdGhlaXIgdXNlIGluIGZyZWUgc29mdHdhcmUuCis8L1A+PFA+CisKIDxIUiBTSVpFPSI2Ij4KIDxBIE5BTUU9IlNFQ19Db250ZW50cyI+PC9BPgogPFRBQkxFIENFTExQQURESU5HPTEgQ0VMTFNQQUNJTkc9MSBCT1JERVI9MD4KQEAgLTE5OTAsNiArMjU5MCwxNiBAQAogPEEgTkFNRT0iVE9DMjIiIEhSRUY9InJsdXNlcm1hbi5odG1sI1NFQzIyIj4xLjUgUmVhZGxpbmUgdmkgTW9kZTwvQT4KIDxCUj4KIDwvVUw+Cis8QSBOQU1FPSJUT0MyMyIgSFJFRj0icmx1c2VybWFuLmh0bWwjU0VDMjMiPkEuIENvcHlpbmcgVGhpcyBNYW51YWw8L0E+Cis8QlI+Cis8VUw+Cis8QSBOQU1FPSJUT0MyNCIgSFJFRj0icmx1c2VybWFuLmh0bWwjU0VDMjQiPkEuMSBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2U8L0E+Cis8QlI+Cis8VUw+Cis8QSBOQU1FPSJUT0MyNSIgSFJFRj0icmx1c2VybWFuLmh0bWwjU0VDMjUiPkEuMS4xIEFEREVORFVNOiBIb3cgdG8gdXNlIHRoaXMgTGljZW5zZSBmb3IgeW91ciBkb2N1bWVudHM8L0E+Cis8QlI+Cis8L1VMPgorPC9VTD4KIDwvVUw+CiA8SFIgU0laRT0xPgogPEEgTkFNRT0iU0VDX09WRVJWSUVXIj48L0E+CkBAIC0yMDAzLDYgKzI2MTMsOCBAQAogPEJMT0NLUVVPVEU+CiA8QSBOQU1FPSJUT0MxIiBIUkVGPSJybHVzZXJtYW4uaHRtbCNTRUMxIj4xLiBDb21tYW5kIExpbmUgRWRpdGluZzwvQT4KIDxCUj4KKzxBIE5BTUU9IlRPQzIzIiBIUkVGPSJybHVzZXJtYW4uaHRtbCNTRUMyMyI+QS4gQ29weWluZyBUaGlzIE1hbnVhbDwvQT4KKzxCUj4KIAogPC9CTE9DS1FVT1RFPgogPEhSIFNJWkU9MT4KQEAgLTIwMTQsNyArMjYyNiw3IEBACiA8VEQgVkFMSUdOPSJNSURETEUiIEFMSUdOPSJMRUZUIj5bPEEgSFJFRj0icmx1c2VybWFuLmh0bWwjU0VDX0Fib3V0Ij4gPyA8L0E+XTwvVEQ+CiA8L1RSPjwvVEFCTEU+CiA8SDE+QWJvdXQgdGhpcyBkb2N1bWVudDwvSDE+Ci1UaGlzIGRvY3VtZW50IHdhcyBnZW5lcmF0ZWQgYnkgPEk+Q2hldCBSYW1leTwvST4gb24gPEk+SnVuZSwgMjcgIDIwMDI8L0k+CitUaGlzIGRvY3VtZW50IHdhcyBnZW5lcmF0ZWQgYnkgPEk+Q2hldCBSYW1leTwvST4gb24gPEk+RGVjZW1iZXIsIDYgIDIwMDU8L0k+CiB1c2luZyA8QSBIUkVGPSJodHRwOi8vd3d3Lm1hdGhlbWF0aWsudW5pLWtsLmRlL35vYmFjaG1hbi9UZXhpMmh0bWwKICI+PEk+dGV4aTJodG1sPC9JPjwvQT4KIDxQPjwvUD4gIApAQCAtMjE3Niw3ICsyNzg4LDcgQEAKIDxCUj4gIAogPEZPTlQgU0laRT0iLTEiPgogVGhpcyBkb2N1bWVudCB3YXMgZ2VuZXJhdGVkCi1ieSA8ST5DaGV0IFJhbWV5PC9JPiBvbiA8ST5KdW5lLCAyNyAgMjAwMjwvST4KK2J5IDxJPkNoZXQgUmFtZXk8L0k+IG9uIDxJPkRlY2VtYmVyLCA2ICAyMDA1PC9JPgogdXNpbmcgPEEgSFJFRj0iaHR0cDovL3d3dy5tYXRoZW1hdGlrLnVuaS1rbC5kZS9+b2JhY2htYW4vVGV4aTJodG1sCiAiPjxJPnRleGkyaHRtbDwvST48L0E+CiAKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2RvYy9ybHVzZXJtYW4uaW5mbyBiL3JlYWRsaW5lL2RvYy9ybHVzZXJtYW4uaW5mbwppbmRleCAzZmNjYmQ0Li5hNTgyMzRlIDEwMDY0NAotLS0gYS9yZWFkbGluZS9kb2Mvcmx1c2VybWFuLmluZm8KKysrIGIvcmVhZGxpbmUvZG9jL3JsdXNlcm1hbi5pbmZvCkBAIC0xLDUyICsxLDU2IEBACi1UaGlzIGlzIHJsdXNlcm1hbi5pbmZvLCBwcm9kdWNlZCBieSBtYWtlaW5mbyB2ZXJzaW9uIDQuMSBmcm9tCi0vdXNyL2hvbWVzL2NoZXQvc3JjL2Jhc2gvcmVhZGxpbmUtc3JjL2RvYy9ybHVzZXJtYW4udGV4aW5mby4KK1RoaXMgaXMgcmx1c2VybWFuLmluZm8sIHByb2R1Y2VkIGJ5IG1ha2VpbmZvIHZlcnNpb24gNC43IGZyb20KKy9Vc2Vycy9jaGV0L3NyYy9iYXNoL3JlYWRsaW5lLXNyYy9kb2Mvcmx1c2VybWFuLnRleGkuCisKKyAgIFRoaXMgbWFudWFsIGRlc2NyaWJlcyB0aGUgZW5kIHVzZXIgaW50ZXJmYWNlIG9mIHRoZSBHTlUgUmVhZGxpbmUKK0xpYnJhcnkgKHZlcnNpb24gNS4xLWJldGExLCAxMSBOb3ZlbWJlciAyMDA1KSwgYSBsaWJyYXJ5IHdoaWNoIGFpZHMgaW4KK3RoZSBjb25zaXN0ZW5jeSBvZiB1c2VyIGludGVyZmFjZSBhY3Jvc3MgZGlzY3JldGUgcHJvZ3JhbXMgd2hpY2ggcHJvdmlkZQorYSBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLgorCisgICBDb3B5cmlnaHQgKEMpIDE5ODgtMjAwNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAgUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIG1ha2UgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzIG9mIHRoaXMKK21hbnVhbCBwcm92aWRlZCB0aGUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcmUKK3ByZXNlcnZlZCBvbiBhbGwgY29waWVzLgorCisgICAgIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBjb3B5LCBkaXN0cmlidXRlIGFuZC9vciBtb2RpZnkgdGhpcworICAgICBkb2N1bWVudCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZSwKKyAgICAgVmVyc2lvbiAxLjEgb3IgYW55IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCisgICAgIEZvdW5kYXRpb247IHdpdGggbm8gSW52YXJpYW50IFNlY3Rpb25zLCB3aXRoIHRoZSBGcm9udC1Db3ZlciB0ZXh0cworICAgICBiZWluZyAiQSBHTlUgTWFudWFsLCIgYW5kIHdpdGggdGhlIEJhY2stQ292ZXIgVGV4dHMgYXMgaW4gKGEpCisgICAgIGJlbG93LiAgQSBjb3B5IG9mIHRoZSBsaWNlbnNlIGlzIGluY2x1ZGVkIGluIHRoZSBzZWN0aW9uIGVudGl0bGVkCisgICAgICJHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UuIgorCisgICAgIChhKSBUaGUgRlNGJ3MgQmFjay1Db3ZlciBUZXh0IGlzOiAiWW91IGhhdmUgZnJlZWRvbSB0byBjb3B5IGFuZAorICAgICBtb2RpZnkgdGhpcyBHTlUgTWFudWFsLCBsaWtlIEdOVSBzb2Z0d2FyZS4gIENvcGllcyBwdWJsaXNoZWQgYnkKKyAgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiByYWlzZSBmdW5kcyBmb3IgR05VIGRldmVsb3BtZW50LiIKIAogSU5GTy1ESVItU0VDVElPTiBMaWJyYXJpZXMKIFNUQVJULUlORk8tRElSLUVOVFJZCiAqIFJMdXNlcm1hbjogKHJsdXNlcm1hbikuICAgICAgIFRoZSBHTlUgcmVhZGxpbmUgbGlicmFyeSBVc2VyJ3MgTWFudWFsLgogRU5ELUlORk8tRElSLUVOVFJZCiAKLSAgIFRoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIHRoZSBlbmQgdXNlciBpbnRlcmZhY2Ugb2YgdGhlIEdOVSBSZWFkbGluZQotTGlicmFyeSwgYSB1dGlsaXR5IHdoaWNoIGFpZHMgaW4gdGhlIGNvbnNpc3RlbmN5IG9mIHVzZXIgaW50ZXJmYWNlCi1hY3Jvc3MgZGlzY3JldGUgcHJvZ3JhbXMgdGhhdCBuZWVkIHRvIHByb3ZpZGUgYSBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLgotCi0gICBDb3B5cmlnaHQgKEMpIDE5ODgtMjAwMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLQotICAgUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIG1ha2UgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzIG9mIHRoaXMKLW1hbnVhbCBwcm92aWRlZCB0aGUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBwYXJlCi1wcmVzZXJ2ZWQgb24gYWxsIGNvcGllcy4KLQotICAgUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgbW9kaWZpZWQgdmVyc2lvbnMgb2YKLXRoaXMgbWFudWFsIHVuZGVyIHRoZSBjb25kaXRpb25zIGZvciB2ZXJiYXRpbSBjb3B5aW5nLCBwcm92aWRlZCB0aGF0Ci10aGUgZW50aXJlIHJlc3VsdGluZyBkZXJpdmVkIHdvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIGEKLXBlcm1pc3Npb24gbm90aWNlIGlkZW50aWNhbCB0byB0aGlzIG9uZS4KLQotICAgUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdHJhbnNsYXRpb25zIG9mIHRoaXMKLW1hbnVhbCBpbnRvIGFub3RoZXIgbGFuZ3VhZ2UsIHVuZGVyIHRoZSBhYm92ZSBjb25kaXRpb25zIGZvciBtb2RpZmllZAotdmVyc2lvbnMsIGV4Y2VwdCB0aGF0IHRoaXMgcGVybWlzc2lvbiBub3RpY2UgbWF5IGJlIHN0YXRlZCBpbiBhCi10cmFuc2xhdGlvbiBhcHByb3ZlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgotCiAfCiBGaWxlOiBybHVzZXJtYW4uaW5mbywgIE5vZGU6IFRvcCwgIE5leHQ6IENvbW1hbmQgTGluZSBFZGl0aW5nLCAgVXA6IChkaXIpCiAKIEdOVSBSZWFkbGluZSBMaWJyYXJ5CiAqKioqKioqKioqKioqKioqKioqKgogCi0gICBUaGlzIGRvY3VtZW50IGRlc2NyaWJlcyB0aGUgZW5kIHVzZXIgaW50ZXJmYWNlIG9mIHRoZSBHTlUgUmVhZGxpbmUKK1RoaXMgZG9jdW1lbnQgZGVzY3JpYmVzIHRoZSBlbmQgdXNlciBpbnRlcmZhY2Ugb2YgdGhlIEdOVSBSZWFkbGluZQogTGlicmFyeSwgYSB1dGlsaXR5IHdoaWNoIGFpZHMgaW4gdGhlIGNvbnNpc3RlbmN5IG9mIHVzZXIgaW50ZXJmYWNlCi1hY3Jvc3MgZGlzY3JldGUgcHJvZ3JhbXMgdGhhdCBuZWVkIHRvIHByb3ZpZGUgYSBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLgorYWNyb3NzIGRpc2NyZXRlIHByb2dyYW1zIHdoaWNoIHByb3ZpZGUgYSBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLgogCiAqIE1lbnU6CiAKICogQ29tbWFuZCBMaW5lIEVkaXRpbmc6OgkgICBHTlUgUmVhZGxpbmUgVXNlcidzIE1hbnVhbC4KKyogQ29weWluZyBUaGlzIE1hbnVhbDo6CQlDb3B5aW5nIFRoaXMgTWFudWFsLgogCiAfCi1GaWxlOiBybHVzZXJtYW4uaW5mbywgIE5vZGU6IENvbW1hbmQgTGluZSBFZGl0aW5nLCAgUHJldjogVG9wLCAgVXA6IFRvcAorRmlsZTogcmx1c2VybWFuLmluZm8sICBOb2RlOiBDb21tYW5kIExpbmUgRWRpdGluZywgIE5leHQ6IENvcHlpbmcgVGhpcyBNYW51YWwsICBQcmV2OiBUb3AsICBVcDogVG9wCiAKLUNvbW1hbmQgTGluZSBFZGl0aW5nCi0qKioqKioqKioqKioqKioqKioqKgorMSBDb21tYW5kIExpbmUgRWRpdGluZworKioqKioqKioqKioqKioqKioqKioqKgogCi0gICBUaGlzIGNoYXB0ZXIgZGVzY3JpYmVzIHRoZSBiYXNpYyBmZWF0dXJlcyBvZiB0aGUgR05VIGNvbW1hbmQgbGluZQorVGhpcyBjaGFwdGVyIGRlc2NyaWJlcyB0aGUgYmFzaWMgZmVhdHVyZXMgb2YgdGhlIEdOVSBjb21tYW5kIGxpbmUKIGVkaXRpbmcgaW50ZXJmYWNlLgogCiAqIE1lbnU6CkBAIC02MiwxMCArNjYsMTAgQEAKIB8KIEZpbGU6IHJsdXNlcm1hbi5pbmZvLCAgTm9kZTogSW50cm9kdWN0aW9uIGFuZCBOb3RhdGlvbiwgIE5leHQ6IFJlYWRsaW5lIEludGVyYWN0aW9uLCAgVXA6IENvbW1hbmQgTGluZSBFZGl0aW5nCiAKLUludHJvZHVjdGlvbiB0byBMaW5lIEVkaXRpbmcKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKzEuMSBJbnRyb2R1Y3Rpb24gdG8gTGluZSBFZGl0aW5nCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCi0gICBUaGUgZm9sbG93aW5nIHBhcmFncmFwaHMgZGVzY3JpYmUgdGhlIG5vdGF0aW9uIHVzZWQgdG8gcmVwcmVzZW50CitUaGUgZm9sbG93aW5nIHBhcmFncmFwaHMgZGVzY3JpYmUgdGhlIG5vdGF0aW9uIHVzZWQgdG8gcmVwcmVzZW50CiBrZXlzdHJva2VzLgogCiAgICBUaGUgdGV4dCBgQy1rJyBpcyByZWFkIGFzIGBDb250cm9sLUsnIGFuZCBkZXNjcmliZXMgdGhlIGNoYXJhY3RlcgpAQCAtOTgsMTAgKzEwMiwxMCBAQAogHwogRmlsZTogcmx1c2VybWFuLmluZm8sICBOb2RlOiBSZWFkbGluZSBJbnRlcmFjdGlvbiwgIE5leHQ6IFJlYWRsaW5lIEluaXQgRmlsZSwgIFByZXY6IEludHJvZHVjdGlvbiBhbmQgTm90YXRpb24sICBVcDogQ29tbWFuZCBMaW5lIEVkaXRpbmcKIAotUmVhZGxpbmUgSW50ZXJhY3Rpb24KLT09PT09PT09PT09PT09PT09PT09CisxLjIgUmVhZGxpbmUgSW50ZXJhY3Rpb24KKz09PT09PT09PT09PT09PT09PT09PT09PQogCi0gICBPZnRlbiBkdXJpbmcgYW4gaW50ZXJhY3RpdmUgc2Vzc2lvbiB5b3UgdHlwZSBpbiBhIGxvbmcgbGluZSBvZiB0ZXh0LAorT2Z0ZW4gZHVyaW5nIGFuIGludGVyYWN0aXZlIHNlc3Npb24geW91IHR5cGUgaW4gYSBsb25nIGxpbmUgb2YgdGV4dCwKIG9ubHkgdG8gbm90aWNlIHRoYXQgdGhlIGZpcnN0IHdvcmQgb24gdGhlIGxpbmUgaXMgbWlzc3BlbGxlZC4gIFRoZQogUmVhZGxpbmUgbGlicmFyeSBnaXZlcyB5b3UgYSBzZXQgb2YgY29tbWFuZHMgZm9yIG1hbmlwdWxhdGluZyB0aGUgdGV4dAogYXMgeW91IHR5cGUgaXQgaW4sIGFsbG93aW5nIHlvdSB0byBqdXN0IGZpeCB5b3VyIHR5cG8sIGFuZCBub3QgZm9yY2luZwpAQCAtMTIzLDEzICsxMjcsMTMgQEAKIB8KIEZpbGU6IHJsdXNlcm1hbi5pbmZvLCAgTm9kZTogUmVhZGxpbmUgQmFyZSBFc3NlbnRpYWxzLCAgTmV4dDogUmVhZGxpbmUgTW92ZW1lbnQgQ29tbWFuZHMsICBVcDogUmVhZGxpbmUgSW50ZXJhY3Rpb24KIAotUmVhZGxpbmUgQmFyZSBFc3NlbnRpYWxzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzEuMi4xIFJlYWRsaW5lIEJhcmUgRXNzZW50aWFscworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSAgIEluIG9yZGVyIHRvIGVudGVyIGNoYXJhY3RlcnMgaW50byB0aGUgbGluZSwgc2ltcGx5IHR5cGUgdGhlbS4gIFRoZQotdHlwZWQgY2hhcmFjdGVyIGFwcGVhcnMgd2hlcmUgdGhlIGN1cnNvciB3YXMsIGFuZCB0aGVuIHRoZSBjdXJzb3IgbW92ZXMKLW9uZSBzcGFjZSB0byB0aGUgcmlnaHQuICBJZiB5b3UgbWlzdHlwZSBhIGNoYXJhY3RlciwgeW91IGNhbiB1c2UgeW91cgotZXJhc2UgY2hhcmFjdGVyIHRvIGJhY2sgdXAgYW5kIGRlbGV0ZSB0aGUgbWlzdHlwZWQgY2hhcmFjdGVyLgorSW4gb3JkZXIgdG8gZW50ZXIgY2hhcmFjdGVycyBpbnRvIHRoZSBsaW5lLCBzaW1wbHkgdHlwZSB0aGVtLiAgVGhlIHR5cGVkCitjaGFyYWN0ZXIgYXBwZWFycyB3aGVyZSB0aGUgY3Vyc29yIHdhcywgYW5kIHRoZW4gdGhlIGN1cnNvciBtb3ZlcyBvbmUKK3NwYWNlIHRvIHRoZSByaWdodC4gIElmIHlvdSBtaXN0eXBlIGEgY2hhcmFjdGVyLCB5b3UgY2FuIHVzZSB5b3VyIGVyYXNlCitjaGFyYWN0ZXIgdG8gYmFjayB1cCBhbmQgZGVsZXRlIHRoZSBtaXN0eXBlZCBjaGFyYWN0ZXIuCiAKICAgIFNvbWV0aW1lcyB5b3UgbWF5IG1pc3R5cGUgYSBjaGFyYWN0ZXIsIGFuZCBub3Qgbm90aWNlIHRoZSBlcnJvcgogdW50aWwgeW91IGhhdmUgdHlwZWQgc2V2ZXJhbCBvdGhlciBjaGFyYWN0ZXJzLiAgSW4gdGhhdCBjYXNlLCB5b3UgY2FuCkBAIC0xNzEsMTAgKzE3NSwxMCBAQAogHwogRmlsZTogcmx1c2VybWFuLmluZm8sICBOb2RlOiBSZWFkbGluZSBNb3ZlbWVudCBDb21tYW5kcywgIE5leHQ6IFJlYWRsaW5lIEtpbGxpbmcgQ29tbWFuZHMsICBQcmV2OiBSZWFkbGluZSBCYXJlIEVzc2VudGlhbHMsICBVcDogUmVhZGxpbmUgSW50ZXJhY3Rpb24KIAotUmVhZGxpbmUgTW92ZW1lbnQgQ29tbWFuZHMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxLjIuMiBSZWFkbGluZSBNb3ZlbWVudCBDb21tYW5kcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotICAgVGhlIGFib3ZlIHRhYmxlIGRlc2NyaWJlcyB0aGUgbW9zdCBiYXNpYyBrZXlzdHJva2VzIHRoYXQgeW91IG5lZWQgaW4KK1RoZSBhYm92ZSB0YWJsZSBkZXNjcmliZXMgdGhlIG1vc3QgYmFzaWMga2V5c3Ryb2tlcyB0aGF0IHlvdSBuZWVkIGluCiBvcmRlciB0byBkbyBlZGl0aW5nIG9mIHRoZSBpbnB1dCBsaW5lLiAgRm9yIHlvdXIgY29udmVuaWVuY2UsIG1hbnkKIG90aGVyIGNvbW1hbmRzIGhhdmUgYmVlbiBhZGRlZCBpbiBhZGRpdGlvbiB0byBgQy1iJywgYEMtZicsIGBDLWQnLCBhbmQKIDxERUw+LiAgSGVyZSBhcmUgc29tZSBjb21tYW5kcyBmb3IgbW92aW5nIG1vcmUgcmFwaWRseSBhYm91dCB0aGUgbGluZS4KQEAgLTIwMiwxMSArMjA2LDExIEBACiAfCiBGaWxlOiBybHVzZXJtYW4uaW5mbywgIE5vZGU6IFJlYWRsaW5lIEtpbGxpbmcgQ29tbWFuZHMsICBOZXh0OiBSZWFkbGluZSBBcmd1bWVudHMsICBQcmV2OiBSZWFkbGluZSBNb3ZlbWVudCBDb21tYW5kcywgIFVwOiBSZWFkbGluZSBJbnRlcmFjdGlvbgogCi1SZWFkbGluZSBLaWxsaW5nIENvbW1hbmRzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxLjIuMyBSZWFkbGluZSBLaWxsaW5nIENvbW1hbmRzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSAgICJLaWxsaW5nIiB0ZXh0IG1lYW5zIHRvIGRlbGV0ZSB0aGUgdGV4dCBmcm9tIHRoZSBsaW5lLCBidXQgdG8gc2F2ZQotaXQgYXdheSBmb3IgbGF0ZXIgdXNlLCB1c3VhbGx5IGJ5ICJ5YW5raW5nIiAocmUtaW5zZXJ0aW5nKSBpdCBiYWNrIGludG8KKyJLaWxsaW5nIiB0ZXh0IG1lYW5zIHRvIGRlbGV0ZSB0aGUgdGV4dCBmcm9tIHRoZSBsaW5lLCBidXQgdG8gc2F2ZSBpdAorYXdheSBmb3IgbGF0ZXIgdXNlLCB1c3VhbGx5IGJ5ICJ5YW5raW5nIiAocmUtaW5zZXJ0aW5nKSBpdCBiYWNrIGludG8KIHRoZSBsaW5lLiAgKGBDdXQnIGFuZCBgcGFzdGUnIGFyZSBtb3JlIHJlY2VudCBqYXJnb24gZm9yIGBraWxsJyBhbmQKIGB5YW5rJy4pCiAKQEAgLTIxOCw3ICsyMjIsNyBAQAogQW55IG51bWJlciBvZiBjb25zZWN1dGl2ZSBraWxscyBzYXZlIGFsbCBvZiB0aGUga2lsbGVkIHRleHQgdG9nZXRoZXIsIHNvCiB0aGF0IHdoZW4geW91IHlhbmsgaXQgYmFjaywgeW91IGdldCBpdCBhbGwuICBUaGUga2lsbCByaW5nIGlzIG5vdCBsaW5lCiBzcGVjaWZpYzsgdGhlIHRleHQgdGhhdCB5b3Uga2lsbGVkIG9uIGEgcHJldmlvdXNseSB0eXBlZCBsaW5lIGlzCi1hdmFpbGFibGUgdG8gYmUgeWFua2VkIGJhY2sgbGF0ZXIsIHdoZW4geW91IGFyZSB0eXBpbmcgYW5vdGhlciBsaW5lLgorYXZhaWxhYmxlIHRvIGJlIHlhbmtlZCBiYWNrIGxhdGVyLCB3aGVuIHlvdSBhcmUgdHlwaW5nIGFub3RoZXIgbGluZS4gIAogCiAgICBIZXJlIGlzIHRoZSBsaXN0IG9mIGNvbW1hbmRzIGZvciBraWxsaW5nIHRleHQuCiAKQEAgLTI0MCw2ICsyNDQsNyBAQAogICAgICBLaWxsIGZyb20gdGhlIGN1cnNvciB0byB0aGUgcHJldmlvdXMgd2hpdGVzcGFjZS4gIFRoaXMgaXMKICAgICAgZGlmZmVyZW50IHRoYW4gYE0tPERFTD4nIGJlY2F1c2UgdGhlIHdvcmQgYm91bmRhcmllcyBkaWZmZXIuCiAKKwogICAgSGVyZSBpcyBob3cgdG8gInlhbmsiIHRoZSB0ZXh0IGJhY2sgaW50byB0aGUgbGluZS4gIFlhbmtpbmcgbWVhbnMgdG8KIGNvcHkgdGhlIG1vc3QtcmVjZW50bHkta2lsbGVkIHRleHQgZnJvbSB0aGUga2lsbCBidWZmZXIuCiAKQEAgLTI1NCwxMCArMjU5LDEwIEBACiAfCiBGaWxlOiBybHVzZXJtYW4uaW5mbywgIE5vZGU6IFJlYWRsaW5lIEFyZ3VtZW50cywgIE5leHQ6IFNlYXJjaGluZywgIFByZXY6IFJlYWRsaW5lIEtpbGxpbmcgQ29tbWFuZHMsICBVcDogUmVhZGxpbmUgSW50ZXJhY3Rpb24KIAotUmVhZGxpbmUgQXJndW1lbnRzCi0tLS0tLS0tLS0tLS0tLS0tLS0KKzEuMi40IFJlYWRsaW5lIEFyZ3VtZW50cworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSAgIFlvdSBjYW4gcGFzcyBudW1lcmljIGFyZ3VtZW50cyB0byBSZWFkbGluZSBjb21tYW5kcy4gIFNvbWV0aW1lcyB0aGUKK1lvdSBjYW4gcGFzcyBudW1lcmljIGFyZ3VtZW50cyB0byBSZWFkbGluZSBjb21tYW5kcy4gIFNvbWV0aW1lcyB0aGUKIGFyZ3VtZW50IGFjdHMgYXMgYSByZXBlYXQgY291bnQsIG90aGVyIHRpbWVzIGl0IGlzIHRoZSBzaWduIG9mIHRoZQogYXJndW1lbnQgdGhhdCBpcyBzaWduaWZpY2FudC4gIElmIHlvdSBwYXNzIGEgbmVnYXRpdmUgYXJndW1lbnQgdG8gYQogY29tbWFuZCB3aGljaCBub3JtYWxseSBhY3RzIGluIGEgZm9yd2FyZCBkaXJlY3Rpb24sIHRoYXQgY29tbWFuZCB3aWxsCkBAIC0yNzUsMTAgKzI4MCwxMCBAQAogHwogRmlsZTogcmx1c2VybWFuLmluZm8sICBOb2RlOiBTZWFyY2hpbmcsICBQcmV2OiBSZWFkbGluZSBBcmd1bWVudHMsICBVcDogUmVhZGxpbmUgSW50ZXJhY3Rpb24KIAotU2VhcmNoaW5nIGZvciBDb21tYW5kcyBpbiB0aGUgSGlzdG9yeQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMS4yLjUgU2VhcmNoaW5nIGZvciBDb21tYW5kcyBpbiB0aGUgSGlzdG9yeQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0gICBSZWFkbGluZSBwcm92aWRlcyBjb21tYW5kcyBmb3Igc2VhcmNoaW5nIHRocm91Z2ggdGhlIGNvbW1hbmQgaGlzdG9yeQorUmVhZGxpbmUgcHJvdmlkZXMgY29tbWFuZHMgZm9yIHNlYXJjaGluZyB0aHJvdWdoIHRoZSBjb21tYW5kIGhpc3RvcnkKIGZvciBsaW5lcyBjb250YWluaW5nIGEgc3BlY2lmaWVkIHN0cmluZy4gIFRoZXJlIGFyZSB0d28gc2VhcmNoIG1vZGVzOgogImluY3JlbWVudGFsIiBhbmQgIm5vbi1pbmNyZW1lbnRhbCIuCiAKQEAgLTMxNiwxMCArMzIxLDEwIEBACiAfCiBGaWxlOiBybHVzZXJtYW4uaW5mbywgIE5vZGU6IFJlYWRsaW5lIEluaXQgRmlsZSwgIE5leHQ6IEJpbmRhYmxlIFJlYWRsaW5lIENvbW1hbmRzLCAgUHJldjogUmVhZGxpbmUgSW50ZXJhY3Rpb24sICBVcDogQ29tbWFuZCBMaW5lIEVkaXRpbmcKIAotUmVhZGxpbmUgSW5pdCBGaWxlCi09PT09PT09PT09PT09PT09PT0KKzEuMyBSZWFkbGluZSBJbml0IEZpbGUKKz09PT09PT09PT09PT09PT09PT09PT0KIAotICAgQWx0aG91Z2ggdGhlIFJlYWRsaW5lIGxpYnJhcnkgY29tZXMgd2l0aCBhIHNldCBvZiBFbWFjcy1saWtlCitBbHRob3VnaCB0aGUgUmVhZGxpbmUgbGlicmFyeSBjb21lcyB3aXRoIGEgc2V0IG9mIEVtYWNzLWxpa2UKIGtleWJpbmRpbmdzIGluc3RhbGxlZCBieSBkZWZhdWx0LCBpdCBpcyBwb3NzaWJsZSB0byB1c2UgYSBkaWZmZXJlbnQgc2V0CiBvZiBrZXliaW5kaW5ncy4gIEFueSB1c2VyIGNhbiBjdXN0b21pemUgcHJvZ3JhbXMgdGhhdCB1c2UgUmVhZGxpbmUgYnkKIHB1dHRpbmcgY29tbWFuZHMgaW4gYW4gImlucHV0cmMiIGZpbGUsIGNvbnZlbnRpb25hbGx5IGluIGhpcyBob21lCkBAIC0zNDQsMTAgKzM0OSwxMCBAQAogHwogRmlsZTogcmx1c2VybWFuLmluZm8sICBOb2RlOiBSZWFkbGluZSBJbml0IEZpbGUgU3ludGF4LCAgTmV4dDogQ29uZGl0aW9uYWwgSW5pdCBDb25zdHJ1Y3RzLCAgVXA6IFJlYWRsaW5lIEluaXQgRmlsZQogCi1SZWFkbGluZSBJbml0IEZpbGUgU3ludGF4Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxLjMuMSBSZWFkbGluZSBJbml0IEZpbGUgU3ludGF4CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSAgIFRoZXJlIGFyZSBvbmx5IGEgZmV3IGJhc2ljIGNvbnN0cnVjdHMgYWxsb3dlZCBpbiB0aGUgUmVhZGxpbmUgaW5pdAorVGhlcmUgYXJlIG9ubHkgYSBmZXcgYmFzaWMgY29uc3RydWN0cyBhbGxvd2VkIGluIHRoZSBSZWFkbGluZSBpbml0CiBmaWxlLiAgQmxhbmsgbGluZXMgYXJlIGlnbm9yZWQuICBMaW5lcyBiZWdpbm5pbmcgd2l0aCBhIGAjJyBhcmUKIGNvbW1lbnRzLiAgTGluZXMgYmVnaW5uaW5nIHdpdGggYSBgJCcgaW5kaWNhdGUgY29uZGl0aW9uYWwgY29uc3RydWN0cwogKCpub3RlIENvbmRpdGlvbmFsIEluaXQgQ29uc3RydWN0czo6KS4gIE90aGVyIGxpbmVzIGRlbm90ZSB2YXJpYWJsZQpAQCAtMzY2LDcgKzM3MSwxMSBAQAogICAgICAgICAgIHNldCBlZGl0aW5nLW1vZGUgdmkKIAogICAgICBWYXJpYWJsZSBuYW1lcyBhbmQgdmFsdWVzLCB3aGVyZSBhcHByb3ByaWF0ZSwgYXJlIHJlY29nbml6ZWQKLSAgICAgd2l0aG91dCByZWdhcmQgdG8gY2FzZS4KKyAgICAgd2l0aG91dCByZWdhcmQgdG8gY2FzZS4gIFVucmVjb2duaXplZCB2YXJpYWJsZSBuYW1lcyBhcmUgaWdub3JlZC4KKworICAgICBCb29sZWFuIHZhcmlhYmxlcyAodGhvc2UgdGhhdCBjYW4gYmUgc2V0IHRvIG9uIG9yIG9mZikgYXJlIHNldCB0bworICAgICBvbiBpZiB0aGUgdmFsdWUgaXMgbnVsbCBvciBlbXB0eSwgT04gKGNhc2UtaW5zZW5zaXRpdmUpLCBvciAxLgorICAgICBBbnkgb3RoZXIgdmFsdWUgcmVzdWx0cyBpbiB0aGUgdmFyaWFibGUgYmVpbmcgc2V0IHRvIG9mZi4KIAogICAgICBBIGdyZWF0IGRlYWwgb2YgcnVuLXRpbWUgYmVoYXZpb3IgaXMgY2hhbmdlYWJsZSB3aXRoIHRoZSBmb2xsb3dpbmcKICAgICAgdmFyaWFibGVzLgpAQCAtMzc4LDYgKzM4NywxMSBAQAogICAgICAgICAgIG9uZSBpcyBhdmFpbGFibGUuICBJZiBzZXQgdG8gYGF1ZGlibGUnICh0aGUgZGVmYXVsdCksCiAgICAgICAgICAgUmVhZGxpbmUgYXR0ZW1wdHMgdG8gcmluZyB0aGUgdGVybWluYWwncyBiZWxsLgogCisgICAgYGJpbmQtdHR5LXNwZWNpYWwtY2hhcnMnCisgICAgICAgICAgSWYgc2V0IHRvIGBvbicsIFJlYWRsaW5lIGF0dGVtcHRzIHRvIGJpbmQgdGhlIGNvbnRyb2wKKyAgICAgICAgICBjaGFyYWN0ZXJzIHRyZWF0ZWQgc3BlY2lhbGx5IGJ5IHRoZSBrZXJuZWwncyB0ZXJtaW5hbCBkcml2ZXIKKyAgICAgICAgICB0byB0aGVpciBSZWFkbGluZSBlcXVpdmFsZW50cy4KKwogICAgIGBjb21tZW50LWJlZ2luJwogICAgICAgICAgIFRoZSBzdHJpbmcgdG8gaW5zZXJ0IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUgd2hlbiB0aGUKICAgICAgICAgICBgaW5zZXJ0LWNvbW1lbnQnIGNvbW1hbmQgaXMgZXhlY3V0ZWQuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcwpAQCAtMzkwLDEyICs0MDQsMTMgQEAKIAogICAgIGBjb21wbGV0aW9uLXF1ZXJ5LWl0ZW1zJwogICAgICAgICAgIFRoZSBudW1iZXIgb2YgcG9zc2libGUgY29tcGxldGlvbnMgdGhhdCBkZXRlcm1pbmVzIHdoZW4gdGhlCi0gICAgICAgICAgdXNlciBpcyBhc2tlZCB3aGV0aGVyIGhlIHdhbnRzIHRvIHNlZSB0aGUgbGlzdCBvZgotICAgICAgICAgIHBvc3NpYmlsaXRpZXMuICBJZiB0aGUgbnVtYmVyIG9mIHBvc3NpYmxlIGNvbXBsZXRpb25zIGlzCi0gICAgICAgICAgZ3JlYXRlciB0aGFuIHRoaXMgdmFsdWUsIFJlYWRsaW5lIHdpbGwgYXNrIHRoZSB1c2VyIHdoZXRoZXIKLSAgICAgICAgICBvciBub3QgaGUgd2lzaGVzIHRvIHZpZXcgdGhlbTsgb3RoZXJ3aXNlLCB0aGV5IGFyZSBzaW1wbHkKLSAgICAgICAgICBsaXN0ZWQuICBUaGlzIHZhcmlhYmxlIG11c3QgYmUgc2V0IHRvIGFuIGludGVnZXIgdmFsdWUKLSAgICAgICAgICBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMC4gIFRoZSBkZWZhdWx0IGxpbWl0IGlzIGAxMDAnLgorICAgICAgICAgIHVzZXIgaXMgYXNrZWQgd2hldGhlciB0aGUgbGlzdCBvZiBwb3NzaWJpbGl0aWVzIHNob3VsZCBiZQorICAgICAgICAgIGRpc3BsYXllZC4gIElmIHRoZSBudW1iZXIgb2YgcG9zc2libGUgY29tcGxldGlvbnMgaXMgZ3JlYXRlcgorICAgICAgICAgIHRoYW4gdGhpcyB2YWx1ZSwgUmVhZGxpbmUgd2lsbCBhc2sgdGhlIHVzZXIgd2hldGhlciBvciBub3QgaGUKKyAgICAgICAgICB3aXNoZXMgdG8gdmlldyB0aGVtOyBvdGhlcndpc2UsIHRoZXkgYXJlIHNpbXBseSBsaXN0ZWQuICBUaGlzCisgICAgICAgICAgdmFyaWFibGUgbXVzdCBiZSBzZXQgdG8gYW4gaW50ZWdlciB2YWx1ZSBncmVhdGVyIHRoYW4gb3IKKyAgICAgICAgICBlcXVhbCB0byAwLiAgQSBuZWdhdGl2ZSB2YWx1ZSBtZWFucyBSZWFkbGluZSBzaG91bGQgbmV2ZXIgYXNrLgorICAgICAgICAgIFRoZSBkZWZhdWx0IGxpbWl0IGlzIGAxMDAnLgogCiAgICAgYGNvbnZlcnQtbWV0YScKICAgICAgICAgICBJZiBzZXQgdG8gYG9uJywgUmVhZGxpbmUgd2lsbCBjb252ZXJ0IGNoYXJhY3RlcnMgd2l0aCB0aGUKQEAgLTQyMyw5ICs0MzgsMTAgQEAKICAgICAgICAgICBJZiBzZXQgdG8gYG9uJywgdGlsZGUgZXhwYW5zaW9uIGlzIHBlcmZvcm1lZCB3aGVuIFJlYWRsaW5lCiAgICAgICAgICAgYXR0ZW1wdHMgd29yZCBjb21wbGV0aW9uLiAgVGhlIGRlZmF1bHQgaXMgYG9mZicuCiAKKyAgICBgaGlzdG9yeS1wcmVzZXJ2ZS1wb2ludCcKICAgICAgICAgICBJZiBzZXQgdG8gYG9uJywgdGhlIGhpc3RvcnkgY29kZSBhdHRlbXB0cyB0byBwbGFjZSBwb2ludCBhdAotICAgICAgICAgIHRoZSBzYW1lIGxvY2F0aW9uIG9uIGVhY2ggaGlzdG9yeSBsaW5lIHJldHJpdmVkIHdpdGgKLSAgICAgICAgICBgcHJldmlvdXMtaGlzdG9yeScgb3IgYG5leHQtaGlzdG9yeScuCisgICAgICAgICAgdGhlIHNhbWUgbG9jYXRpb24gb24gZWFjaCBoaXN0b3J5IGxpbmUgcmV0cmlldmVkIHdpdGgKKyAgICAgICAgICBgcHJldmlvdXMtaGlzdG9yeScgb3IgYG5leHQtaGlzdG9yeScuICBUaGUgZGVmYXVsdCBpcyBgb2ZmJy4KIAogICAgIGBob3Jpem9udGFsLXNjcm9sbC1tb2RlJwogICAgICAgICAgIFRoaXMgdmFyaWFibGUgY2FuIGJlIHNldCB0byBlaXRoZXIgYG9uJyBvciBgb2ZmJy4gIFNldHRpbmcgaXQKQEAgLTQ5OSwxMSArNTE1LDIxIEBACiAgICAgICAgICAgY29tcGxldGlvbiBjYXVzZSB0aGUgbWF0Y2hlcyB0byBiZSBsaXN0ZWQgaW1tZWRpYXRlbHkgaW5zdGVhZAogICAgICAgICAgIG9mIHJpbmdpbmcgdGhlIGJlbGwuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBgb2ZmJy4KIAorICAgIGBzaG93LWFsbC1pZi11bm1vZGlmaWVkJworICAgICAgICAgIFRoaXMgYWx0ZXJzIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBjb21wbGV0aW9uIGZ1bmN0aW9ucworICAgICAgICAgIGluIGEgZmFzaGlvbiBzaW1pbGFyIHRvIFNIT1ctQUxMLUlGLUFNQklHVU9VUy4gIElmIHNldCB0bworICAgICAgICAgIGBvbicsIHdvcmRzIHdoaWNoIGhhdmUgbW9yZSB0aGFuIG9uZSBwb3NzaWJsZSBjb21wbGV0aW9uCisgICAgICAgICAgd2l0aG91dCBhbnkgcG9zc2libGUgcGFydGlhbCBjb21wbGV0aW9uICh0aGUgcG9zc2libGUKKyAgICAgICAgICBjb21wbGV0aW9ucyBkb24ndCBzaGFyZSBhIGNvbW1vbiBwcmVmaXgpIGNhdXNlIHRoZSBtYXRjaGVzIHRvCisgICAgICAgICAgYmUgbGlzdGVkIGltbWVkaWF0ZWx5IGluc3RlYWQgb2YgcmluZ2luZyB0aGUgYmVsbC4gIFRoZQorICAgICAgICAgIGRlZmF1bHQgdmFsdWUgaXMgYG9mZicuCisKICAgICBgdmlzaWJsZS1zdGF0cycKICAgICAgICAgICBJZiBzZXQgdG8gYG9uJywgYSBjaGFyYWN0ZXIgZGVub3RpbmcgYSBmaWxlJ3MgdHlwZSBpcwogICAgICAgICAgIGFwcGVuZGVkIHRvIHRoZSBmaWxlbmFtZSB3aGVuIGxpc3RpbmcgcG9zc2libGUgY29tcGxldGlvbnMuCiAgICAgICAgICAgVGhlIGRlZmF1bHQgaXMgYG9mZicuCiAKKwogS2V5IEJpbmRpbmdzCiAgICAgIFRoZSBzeW50YXggZm9yIGNvbnRyb2xsaW5nIGtleSBiaW5kaW5ncyBpbiB0aGUgaW5pdCBmaWxlIGlzCiAgICAgIHNpbXBsZS4gIEZpcnN0IHlvdSBuZWVkIHRvIGZpbmQgdGhlIG5hbWUgb2YgdGhlIGNvbW1hbmQgdGhhdCB5b3UKQEAgLTU1NCw2ICs1ODAsNyBAQAogICAgICAgICAgIGA8RVNDPiA8Wz4gPDE+IDwxPiA8fj4nIGlzIGJvdW5kIHRvIGluc2VydCB0aGUgdGV4dCBgRnVuY3Rpb24KICAgICAgICAgICBLZXkgMScuCiAKKwogICAgICBUaGUgZm9sbG93aW5nIEdOVSBFbWFjcyBzdHlsZSBlc2NhcGUgc2VxdWVuY2VzIGFyZSBhdmFpbGFibGUgd2hlbgogICAgICBzcGVjaWZ5aW5nIGtleSBzZXF1ZW5jZXM6CiAKQEAgLTYxOSwxMyArNjQ2LDE0IEBACiAgICAgIHRoZSBsaW5lOgogICAgICAgICAgICJcQy14XFwiOiAiXFwiCiAKKwogHwogRmlsZTogcmx1c2VybWFuLmluZm8sICBOb2RlOiBDb25kaXRpb25hbCBJbml0IENvbnN0cnVjdHMsICBOZXh0OiBTYW1wbGUgSW5pdCBGaWxlLCAgUHJldjogUmVhZGxpbmUgSW5pdCBGaWxlIFN5bnRheCwgIFVwOiBSZWFkbGluZSBJbml0IEZpbGUKIAotQ29uZGl0aW9uYWwgSW5pdCBDb25zdHJ1Y3RzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzEuMy4yIENvbmRpdGlvbmFsIEluaXQgQ29uc3RydWN0cworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSAgIFJlYWRsaW5lIGltcGxlbWVudHMgYSBmYWNpbGl0eSBzaW1pbGFyIGluIHNwaXJpdCB0byB0aGUgY29uZGl0aW9uYWwKK1JlYWRsaW5lIGltcGxlbWVudHMgYSBmYWNpbGl0eSBzaW1pbGFyIGluIHNwaXJpdCB0byB0aGUgY29uZGl0aW9uYWwKIGNvbXBpbGF0aW9uIGZlYXR1cmVzIG9mIHRoZSBDIHByZXByb2Nlc3NvciB3aGljaCBhbGxvd3Mga2V5IGJpbmRpbmdzCiBhbmQgdmFyaWFibGUgc2V0dGluZ3MgdG8gYmUgcGVyZm9ybWVkIGFzIHRoZSByZXN1bHQgb2YgdGVzdHMuICBUaGVyZQogYXJlIGZvdXIgcGFyc2VyIGRpcmVjdGl2ZXMgdXNlZC4KQEAgLTY4MiwxMSArNzEwLDExIEBACiAfCiBGaWxlOiBybHVzZXJtYW4uaW5mbywgIE5vZGU6IFNhbXBsZSBJbml0IEZpbGUsICBQcmV2OiBDb25kaXRpb25hbCBJbml0IENvbnN0cnVjdHMsICBVcDogUmVhZGxpbmUgSW5pdCBGaWxlCiAKLVNhbXBsZSBJbml0IEZpbGUKLS0tLS0tLS0tLS0tLS0tLS0KKzEuMy4zIFNhbXBsZSBJbml0IEZpbGUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotICAgSGVyZSBpcyBhbiBleGFtcGxlIG9mIGFuIElOUFVUUkMgZmlsZS4gIFRoaXMgaWxsdXN0cmF0ZXMga2V5Ci1iaW5kaW5nLCB2YXJpYWJsZSBhc3NpZ25tZW50LCBhbmQgY29uZGl0aW9uYWwgc3ludGF4LgorSGVyZSBpcyBhbiBleGFtcGxlIG9mIGFuIElOUFVUUkMgZmlsZS4gIFRoaXMgaWxsdXN0cmF0ZXMga2V5IGJpbmRpbmcsCit2YXJpYWJsZSBhc3NpZ25tZW50LCBhbmQgY29uZGl0aW9uYWwgc3ludGF4LgogCiAKICAgICAgIyBUaGlzIGZpbGUgY29udHJvbHMgdGhlIGJlaGF2aW91ciBvZiBsaW5lIGlucHV0IGVkaXRpbmcgZm9yCkBAIC02OTksMTYgKzcyNywxNiBAQAogICAgICAjIEZpcnN0LCBpbmNsdWRlIGFueSBzeXN0ZW13aWRlIGJpbmRpbmdzIGFuZCB2YXJpYWJsZQogICAgICAjIGFzc2lnbm1lbnRzIGZyb20gL2V0Yy9JbnB1dHJjCiAgICAgICRpbmNsdWRlIC9ldGMvSW5wdXRyYwotICAgICAKKwogICAgICAjCiAgICAgICMgU2V0IHZhcmlvdXMgYmluZGluZ3MgZm9yIGVtYWNzIG1vZGUuCi0gICAgIAorCiAgICAgIHNldCBlZGl0aW5nLW1vZGUgZW1hY3MKLSAgICAgCisKICAgICAgJGlmIG1vZGU9ZW1hY3MKLSAgICAgCisKICAgICAgTWV0YS1Db250cm9sLWg6CWJhY2t3YXJkLWtpbGwtd29yZAlUZXh0IGFmdGVyIHRoZSBmdW5jdGlvbiBuYW1lIGlzIGlnbm9yZWQKLSAgICAgCisKICAgICAgIwogICAgICAjIEFycm93IGtleXMgaW4ga2V5cGFkIG1vZGUKICAgICAgIwpAQCAtNzM3LDE0ICs3NjUsMTQgQEAKICAgICAgIyJcTS1cQy1bQyI6ICAgICAgIGZvcndhcmQtY2hhcgogICAgICAjIlxNLVxDLVtBIjogICAgICAgcHJldmlvdXMtaGlzdG9yeQogICAgICAjIlxNLVxDLVtCIjogICAgICAgbmV4dC1oaXN0b3J5Ci0gICAgIAorCiAgICAgIEMtcTogcXVvdGVkLWluc2VydAotICAgICAKKwogICAgICAkZW5kaWYKLSAgICAgCisKICAgICAgIyBBbiBvbGQtc3R5bGUgYmluZGluZy4gIFRoaXMgaGFwcGVucyB0byBiZSB0aGUgZGVmYXVsdC4KICAgICAgVEFCOiBjb21wbGV0ZQotICAgICAKKwogICAgICAjIE1hY3JvcyB0aGF0IGFyZSBjb252ZW5pZW50IGZvciBzaGVsbCBpbnRlcmFjdGlvbgogICAgICAkaWYgQmFzaAogICAgICAjIGVkaXQgdGhlIHBhdGgKQEAgLTc2MywyNSArNzkxLDI1IEBACiAgICAgICMgRWRpdCB2YXJpYWJsZSBvbiBjdXJyZW50IGxpbmUuCiAgICAgICJcTS1cQy12IjogIlxDLWFcQy1rJFxDLXlcTS1cQy1lXEMtYVxDLXk9IgogICAgICAkZW5kaWYKLSAgICAgCisKICAgICAgIyB1c2UgYSB2aXNpYmxlIGJlbGwgaWYgb25lIGlzIGF2YWlsYWJsZQogICAgICBzZXQgYmVsbC1zdHlsZSB2aXNpYmxlCi0gICAgIAorCiAgICAgICMgZG9uJ3Qgc3RyaXAgY2hhcmFjdGVycyB0byA3IGJpdHMgd2hlbiByZWFkaW5nCiAgICAgIHNldCBpbnB1dC1tZXRhIG9uCi0gICAgIAorCiAgICAgICMgYWxsb3cgaXNvLWxhdGluMSBjaGFyYWN0ZXJzIHRvIGJlIGluc2VydGVkIHJhdGhlcgogICAgICAjIHRoYW4gY29udmVydGVkIHRvIHByZWZpeC1tZXRhIHNlcXVlbmNlcwogICAgICBzZXQgY29udmVydC1tZXRhIG9mZgotICAgICAKKwogICAgICAjIGRpc3BsYXkgY2hhcmFjdGVycyB3aXRoIHRoZSBlaWdodGggYml0IHNldCBkaXJlY3RseQogICAgICAjIHJhdGhlciB0aGFuIGFzIG1ldGEtcHJlZml4ZWQgY2hhcmFjdGVycwogICAgICBzZXQgb3V0cHV0LW1ldGEgb24KLSAgICAgCisKICAgICAgIyBpZiB0aGVyZSBhcmUgbW9yZSB0aGFuIDE1MCBwb3NzaWJsZSBjb21wbGV0aW9ucyBmb3IKICAgICAgIyBhIHdvcmQsIGFzayB0aGUgdXNlciBpZiBoZSB3YW50cyB0byBzZWUgYWxsIG9mIHRoZW0KICAgICAgc2V0IGNvbXBsZXRpb24tcXVlcnktaXRlbXMgMTUwCi0gICAgIAorCiAgICAgICMgRm9yIEZUUAogICAgICAkaWYgRnRwCiAgICAgICJcQy14ZyI6ICJnZXQgXE0tPyIKQEAgLTc5Miw4ICs4MjAsOCBAQAogHwogRmlsZTogcmx1c2VybWFuLmluZm8sICBOb2RlOiBCaW5kYWJsZSBSZWFkbGluZSBDb21tYW5kcywgIE5leHQ6IFJlYWRsaW5lIHZpIE1vZGUsICBQcmV2OiBSZWFkbGluZSBJbml0IEZpbGUsICBVcDogQ29tbWFuZCBMaW5lIEVkaXRpbmcKIAotQmluZGFibGUgUmVhZGxpbmUgQ29tbWFuZHMKLT09PT09PT09PT09PT09PT09PT09PT09PT09CisxLjQgQmluZGFibGUgUmVhZGxpbmUgQ29tbWFuZHMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiAqIE1lbnU6CiAKQEAgLTgxOCw4ICs4NDYsOCBAQAogHwogRmlsZTogcmx1c2VybWFuLmluZm8sICBOb2RlOiBDb21tYW5kcyBGb3IgTW92aW5nLCAgTmV4dDogQ29tbWFuZHMgRm9yIEhpc3RvcnksICBVcDogQmluZGFibGUgUmVhZGxpbmUgQ29tbWFuZHMKIAotQ29tbWFuZHMgRm9yIE1vdmluZwotLS0tLS0tLS0tLS0tLS0tLS0tLQorMS40LjEgQ29tbWFuZHMgRm9yIE1vdmluZworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBgYmVnaW5uaW5nLW9mLWxpbmUgKEMtYSknCiAgICAgIE1vdmUgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjdXJyZW50IGxpbmUuCkBAIC04NDgsMTEgKzg3NiwxMiBAQAogYHJlZHJhdy1jdXJyZW50LWxpbmUgKCknCiAgICAgIFJlZnJlc2ggdGhlIGN1cnJlbnQgbGluZS4gIEJ5IGRlZmF1bHQsIHRoaXMgaXMgdW5ib3VuZC4KIAorCiAfCiBGaWxlOiBybHVzZXJtYW4uaW5mbywgIE5vZGU6IENvbW1hbmRzIEZvciBIaXN0b3J5LCAgTmV4dDogQ29tbWFuZHMgRm9yIFRleHQsICBQcmV2OiBDb21tYW5kcyBGb3IgTW92aW5nLCAgVXA6IEJpbmRhYmxlIFJlYWRsaW5lIENvbW1hbmRzCiAKLUNvbW1hbmRzIEZvciBNYW5pcHVsYXRpbmcgVGhlIEhpc3RvcnkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzEuNC4yIENvbW1hbmRzIEZvciBNYW5pcHVsYXRpbmcgVGhlIEhpc3RvcnkKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogYGFjY2VwdC1saW5lIChOZXdsaW5lIG9yIFJldHVybiknCiAgICAgIEFjY2VwdCB0aGUgbGluZSByZWdhcmRsZXNzIG9mIHdoZXJlIHRoZSBjdXJzb3IgaXMuICBJZiB0aGlzIGxpbmUgaXMKQEAgLTkwOCwyMCArOTM3LDI0IEBACiAgICAgIHNlY29uZCB3b3JkIG9uIHRoZSBwcmV2aW91cyBsaW5lKSBhdCBwb2ludC4gIFdpdGggYW4gYXJndW1lbnQgTiwKICAgICAgaW5zZXJ0IHRoZSBOdGggd29yZCBmcm9tIHRoZSBwcmV2aW91cyBjb21tYW5kICh0aGUgd29yZHMgaW4gdGhlCiAgICAgIHByZXZpb3VzIGNvbW1hbmQgYmVnaW4gd2l0aCB3b3JkIDApLiAgQSBuZWdhdGl2ZSBhcmd1bWVudCBpbnNlcnRzCi0gICAgIHRoZSBOdGggd29yZCBmcm9tIHRoZSBlbmQgb2YgdGhlIHByZXZpb3VzIGNvbW1hbmQuCisgICAgIHRoZSBOdGggd29yZCBmcm9tIHRoZSBlbmQgb2YgdGhlIHByZXZpb3VzIGNvbW1hbmQuICBPbmNlIHRoZQorICAgICBhcmd1bWVudCBOIGlzIGNvbXB1dGVkLCB0aGUgYXJndW1lbnQgaXMgZXh0cmFjdGVkIGFzIGlmIHRoZSBgIU4nCisgICAgIGhpc3RvcnkgZXhwYW5zaW9uIGhhZCBiZWVuIHNwZWNpZmllZC4KIAogYHlhbmstbGFzdC1hcmcgKE0tLiBvciBNLV8pJwogICAgICBJbnNlcnQgbGFzdCBhcmd1bWVudCB0byB0aGUgcHJldmlvdXMgY29tbWFuZCAodGhlIGxhc3Qgd29yZCBvZiB0aGUKICAgICAgcHJldmlvdXMgaGlzdG9yeSBlbnRyeSkuICBXaXRoIGFuIGFyZ3VtZW50LCBiZWhhdmUgZXhhY3RseSBsaWtlCiAgICAgIGB5YW5rLW50aC1hcmcnLiAgU3VjY2Vzc2l2ZSBjYWxscyB0byBgeWFuay1sYXN0LWFyZycgbW92ZSBiYWNrCiAgICAgIHRocm91Z2ggdGhlIGhpc3RvcnkgbGlzdCwgaW5zZXJ0aW5nIHRoZSBsYXN0IGFyZ3VtZW50IG9mIGVhY2ggbGluZQotICAgICBpbiB0dXJuLgorICAgICBpbiB0dXJuLiAgVGhlIGhpc3RvcnkgZXhwYW5zaW9uIGZhY2lsaXRpZXMgYXJlIHVzZWQgdG8gZXh0cmFjdCB0aGUKKyAgICAgbGFzdCBhcmd1bWVudCwgYXMgaWYgdGhlIGAhJCcgaGlzdG9yeSBleHBhbnNpb24gaGFkIGJlZW4gc3BlY2lmaWVkLgorCiAKIB8KIEZpbGU6IHJsdXNlcm1hbi5pbmZvLCAgTm9kZTogQ29tbWFuZHMgRm9yIFRleHQsICBOZXh0OiBDb21tYW5kcyBGb3IgS2lsbGluZywgIFByZXY6IENvbW1hbmRzIEZvciBIaXN0b3J5LCAgVXA6IEJpbmRhYmxlIFJlYWRsaW5lIENvbW1hbmRzCiAKLUNvbW1hbmRzIEZvciBDaGFuZ2luZyBUZXh0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorMS40LjMgQ29tbWFuZHMgRm9yIENoYW5naW5nIFRleHQKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIGBkZWxldGUtY2hhciAoQy1kKScKICAgICAgRGVsZXRlIHRoZSBjaGFyYWN0ZXIgYXQgcG9pbnQuICBJZiBwb2ludCBpcyBhdCB0aGUgYmVnaW5uaW5nIG9mCkBAIC05ODQsMTEgKzEwMTcsMTIgQEAKIAogICAgICBCeSBkZWZhdWx0LCB0aGlzIGNvbW1hbmQgaXMgdW5ib3VuZC4KIAorCiAfCiBGaWxlOiBybHVzZXJtYW4uaW5mbywgIE5vZGU6IENvbW1hbmRzIEZvciBLaWxsaW5nLCAgTmV4dDogTnVtZXJpYyBBcmd1bWVudHMsICBQcmV2OiBDb21tYW5kcyBGb3IgVGV4dCwgIFVwOiBCaW5kYWJsZSBSZWFkbGluZSBDb21tYW5kcwogCi1LaWxsaW5nIEFuZCBZYW5raW5nCi0tLS0tLS0tLS0tLS0tLS0tLS0tCisxLjQuNCBLaWxsaW5nIEFuZCBZYW5raW5nCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIGBraWxsLWxpbmUgKEMtayknCiAgICAgIEtpbGwgdGhlIHRleHQgZnJvbSBwb2ludCB0byB0aGUgZW5kIG9mIHRoZSBsaW5lLgpAQCAtMTAxNiw2ICsxMDUwLDExIEBACiAgICAgIEtpbGwgdGhlIHdvcmQgYmVoaW5kIHBvaW50LCB1c2luZyB3aGl0ZSBzcGFjZSBhcyBhIHdvcmQgYm91bmRhcnkuCiAgICAgIFRoZSBraWxsZWQgdGV4dCBpcyBzYXZlZCBvbiB0aGUga2lsbC1yaW5nLgogCitgdW5peC1maWxlbmFtZS1ydWJvdXQgKCknCisgICAgIEtpbGwgdGhlIHdvcmQgYmVoaW5kIHBvaW50LCB1c2luZyB3aGl0ZSBzcGFjZSBhbmQgdGhlIHNsYXNoCisgICAgIGNoYXJhY3RlciBhcyB0aGUgd29yZCBib3VuZGFyaWVzLiAgVGhlIGtpbGxlZCB0ZXh0IGlzIHNhdmVkIG9uIHRoZQorICAgICBraWxsLXJpbmcuCisKIGBkZWxldGUtaG9yaXpvbnRhbC1zcGFjZSAoKScKICAgICAgRGVsZXRlIGFsbCBzcGFjZXMgYW5kIHRhYnMgYXJvdW5kIHBvaW50LiAgQnkgZGVmYXVsdCwgdGhpcyBpcwogICAgICB1bmJvdW5kLgpAQCAtMTA0OCw4ICsxMDg3LDggQEAKIB8KIEZpbGU6IHJsdXNlcm1hbi5pbmZvLCAgTm9kZTogTnVtZXJpYyBBcmd1bWVudHMsICBOZXh0OiBDb21tYW5kcyBGb3IgQ29tcGxldGlvbiwgIFByZXY6IENvbW1hbmRzIEZvciBLaWxsaW5nLCAgVXA6IEJpbmRhYmxlIFJlYWRsaW5lIENvbW1hbmRzCiAKLVNwZWNpZnlpbmcgTnVtZXJpYyBBcmd1bWVudHMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzEuNC41IFNwZWNpZnlpbmcgTnVtZXJpYyBBcmd1bWVudHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogYGRpZ2l0LWFyZ3VtZW50IChNLTAsIE0tMSwgLi4uIE0tLSknCiAgICAgIEFkZCB0aGlzIGRpZ2l0IHRvIHRoZSBhcmd1bWVudCBhbHJlYWR5IGFjY3VtdWxhdGluZywgb3Igc3RhcnQgYSBuZXcKQEAgLTEwNzEsOCArMTExMCw4IEBACiAfCiBGaWxlOiBybHVzZXJtYW4uaW5mbywgIE5vZGU6IENvbW1hbmRzIEZvciBDb21wbGV0aW9uLCAgTmV4dDogS2V5Ym9hcmQgTWFjcm9zLCAgUHJldjogTnVtZXJpYyBBcmd1bWVudHMsICBVcDogQmluZGFibGUgUmVhZGxpbmUgQ29tbWFuZHMKIAotTGV0dGluZyBSZWFkbGluZSBUeXBlIEZvciBZb3UKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisxLjQuNiBMZXR0aW5nIFJlYWRsaW5lIFR5cGUgRm9yIFlvdQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogYGNvbXBsZXRlICg8VEFCPiknCiAgICAgIEF0dGVtcHQgdG8gcGVyZm9ybSBjb21wbGV0aW9uIG9uIHRoZSB0ZXh0IGJlZm9yZSBwb2ludC4gIFRoZQpAQCAtMTEwNCwxMSArMTE0MywxMiBAQAogICAgICBiZWhhdmVzIGlkZW50aWNhbGx5IHRvIGBwb3NzaWJsZS1jb21wbGV0aW9ucycuICBUaGlzIGNvbW1hbmQgaXMKICAgICAgdW5ib3VuZCBieSBkZWZhdWx0LgogCisKIB8KIEZpbGU6IHJsdXNlcm1hbi5pbmZvLCAgTm9kZTogS2V5Ym9hcmQgTWFjcm9zLCAgTmV4dDogTWlzY2VsbGFuZW91cyBDb21tYW5kcywgIFByZXY6IENvbW1hbmRzIEZvciBDb21wbGV0aW9uLCAgVXA6IEJpbmRhYmxlIFJlYWRsaW5lIENvbW1hbmRzCiAKLUtleWJvYXJkIE1hY3JvcwotLS0tLS0tLS0tLS0tLS0tCisxLjQuNyBLZXlib2FyZCBNYWNyb3MKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBgc3RhcnQta2JkLW1hY3JvIChDLXggKCknCiAgICAgIEJlZ2luIHNhdmluZyB0aGUgY2hhcmFjdGVycyB0eXBlZCBpbnRvIHRoZSBjdXJyZW50IGtleWJvYXJkIG1hY3JvLgpAQCAtMTEyMSwxMSArMTE2MSwxMiBAQAogICAgICBSZS1leGVjdXRlIHRoZSBsYXN0IGtleWJvYXJkIG1hY3JvIGRlZmluZWQsIGJ5IG1ha2luZyB0aGUKICAgICAgY2hhcmFjdGVycyBpbiB0aGUgbWFjcm8gYXBwZWFyIGFzIGlmIHR5cGVkIGF0IHRoZSBrZXlib2FyZC4KIAorCiAfCiBGaWxlOiBybHVzZXJtYW4uaW5mbywgIE5vZGU6IE1pc2NlbGxhbmVvdXMgQ29tbWFuZHMsICBQcmV2OiBLZXlib2FyZCBNYWNyb3MsICBVcDogQmluZGFibGUgUmVhZGxpbmUgQ29tbWFuZHMKIAotU29tZSBNaXNjZWxsYW5lb3VzIENvbW1hbmRzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzEuNC44IFNvbWUgTWlzY2VsbGFuZW91cyBDb21tYW5kcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIGByZS1yZWFkLWluaXQtZmlsZSAoQy14IEMtciknCiAgICAgIFJlYWQgaW4gdGhlIGNvbnRlbnRzIG9mIHRoZSBJTlBVVFJDIGZpbGUsIGFuZCBpbmNvcnBvcmF0ZSBhbnkKQEAgLTEyMDgsMTMgKzEyNDksMTQgQEAKICAgICAgV2hlbiBpbiBgZW1hY3MnIGVkaXRpbmcgbW9kZSwgdGhpcyBjYXVzZXMgYSBzd2l0Y2ggdG8gYHZpJyBlZGl0aW5nCiAgICAgIG1vZGUuCiAKKwogHwogRmlsZTogcmx1c2VybWFuLmluZm8sICBOb2RlOiBSZWFkbGluZSB2aSBNb2RlLCAgUHJldjogQmluZGFibGUgUmVhZGxpbmUgQ29tbWFuZHMsICBVcDogQ29tbWFuZCBMaW5lIEVkaXRpbmcKIAotUmVhZGxpbmUgdmkgTW9kZQotPT09PT09PT09PT09PT09PQorMS41IFJlYWRsaW5lIHZpIE1vZGUKKz09PT09PT09PT09PT09PT09PT09CiAKLSAgIFdoaWxlIHRoZSBSZWFkbGluZSBsaWJyYXJ5IGRvZXMgbm90IGhhdmUgYSBmdWxsIHNldCBvZiBgdmknIGVkaXRpbmcKK1doaWxlIHRoZSBSZWFkbGluZSBsaWJyYXJ5IGRvZXMgbm90IGhhdmUgYSBmdWxsIHNldCBvZiBgdmknIGVkaXRpbmcKIGZ1bmN0aW9ucywgaXQgZG9lcyBjb250YWluIGVub3VnaCB0byBhbGxvdyBzaW1wbGUgZWRpdGluZyBvZiB0aGUgbGluZS4KIFRoZSBSZWFkbGluZSBgdmknIG1vZGUgYmVoYXZlcyBhcyBzcGVjaWZpZWQgaW4gdGhlIFBPU0lYIDEwMDMuMgogc3RhbmRhcmQuCkBAIC0xMjMwLDMxICsxMjcyLDQ3NSBAQAogdGhlIHN0YW5kYXJkIGB2aScgbW92ZW1lbnQga2V5cywgbW92ZSB0byBwcmV2aW91cyBoaXN0b3J5IGxpbmVzIHdpdGgKIGBrJyBhbmQgc3Vic2VxdWVudCBsaW5lcyB3aXRoIGBqJywgYW5kIHNvIGZvcnRoLgogCisfCitGaWxlOiBybHVzZXJtYW4uaW5mbywgIE5vZGU6IENvcHlpbmcgVGhpcyBNYW51YWwsICBQcmV2OiBDb21tYW5kIExpbmUgRWRpdGluZywgIFVwOiBUb3AKKworQXBwZW5kaXggQSBDb3B5aW5nIFRoaXMgTWFudWFsCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworKiBNZW51OgorCisqIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZTo6CUxpY2Vuc2UgZm9yIGNvcHlpbmcgdGhpcyBtYW51YWwuCisKKx8KK0ZpbGU6IHJsdXNlcm1hbi5pbmZvLCAgTm9kZTogR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLCAgVXA6IENvcHlpbmcgVGhpcyBNYW51YWwKKworQS4xIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAxLjIsIE5vdmVtYmVyIDIwMDIKKworICAgICBDb3B5cmlnaHQgKEMpIDIwMDAsMjAwMSwyMDAyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgICA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNywgVVNBCisKKyAgICAgRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCisgICAgIG9mIHRoaXMgbGljZW5zZSBkb2N1bWVudCwgYnV0IGNoYW5naW5nIGl0IGlzIG5vdCBhbGxvd2VkLgorCisgIDAuIFBSRUFNQkxFCisKKyAgICAgVGhlIHB1cnBvc2Ugb2YgdGhpcyBMaWNlbnNlIGlzIHRvIG1ha2UgYSBtYW51YWwsIHRleHRib29rLCBvciBvdGhlcgorICAgICBmdW5jdGlvbmFsIGFuZCB1c2VmdWwgZG9jdW1lbnQgImZyZWUiIGluIHRoZSBzZW5zZSBvZiBmcmVlZG9tOiB0bworICAgICBhc3N1cmUgZXZlcnlvbmUgdGhlIGVmZmVjdGl2ZSBmcmVlZG9tIHRvIGNvcHkgYW5kIHJlZGlzdHJpYnV0ZSBpdCwKKyAgICAgd2l0aCBvciB3aXRob3V0IG1vZGlmeWluZyBpdCwgZWl0aGVyIGNvbW1lcmNpYWxseSBvcgorICAgICBub25jb21tZXJjaWFsbHkuICBTZWNvbmRhcmlseSwgdGhpcyBMaWNlbnNlIHByZXNlcnZlcyBmb3IgdGhlCisgICAgIGF1dGhvciBhbmQgcHVibGlzaGVyIGEgd2F5IHRvIGdldCBjcmVkaXQgZm9yIHRoZWlyIHdvcmssIHdoaWxlIG5vdAorICAgICBiZWluZyBjb25zaWRlcmVkIHJlc3BvbnNpYmxlIGZvciBtb2RpZmljYXRpb25zIG1hZGUgYnkgb3RoZXJzLgorCisgICAgIFRoaXMgTGljZW5zZSBpcyBhIGtpbmQgb2YgImNvcHlsZWZ0Iiwgd2hpY2ggbWVhbnMgdGhhdCBkZXJpdmF0aXZlCisgICAgIHdvcmtzIG9mIHRoZSBkb2N1bWVudCBtdXN0IHRoZW1zZWx2ZXMgYmUgZnJlZSBpbiB0aGUgc2FtZSBzZW5zZS4KKyAgICAgSXQgY29tcGxlbWVudHMgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB3aGljaCBpcyBhIGNvcHlsZWZ0CisgICAgIGxpY2Vuc2UgZGVzaWduZWQgZm9yIGZyZWUgc29mdHdhcmUuCisKKyAgICAgV2UgaGF2ZSBkZXNpZ25lZCB0aGlzIExpY2Vuc2UgaW4gb3JkZXIgdG8gdXNlIGl0IGZvciBtYW51YWxzIGZvcgorICAgICBmcmVlIHNvZnR3YXJlLCBiZWNhdXNlIGZyZWUgc29mdHdhcmUgbmVlZHMgZnJlZSBkb2N1bWVudGF0aW9uOiBhCisgICAgIGZyZWUgcHJvZ3JhbSBzaG91bGQgY29tZSB3aXRoIG1hbnVhbHMgcHJvdmlkaW5nIHRoZSBzYW1lIGZyZWVkb21zCisgICAgIHRoYXQgdGhlIHNvZnR3YXJlIGRvZXMuICBCdXQgdGhpcyBMaWNlbnNlIGlzIG5vdCBsaW1pdGVkIHRvCisgICAgIHNvZnR3YXJlIG1hbnVhbHM7IGl0IGNhbiBiZSB1c2VkIGZvciBhbnkgdGV4dHVhbCB3b3JrLCByZWdhcmRsZXNzCisgICAgIG9mIHN1YmplY3QgbWF0dGVyIG9yIHdoZXRoZXIgaXQgaXMgcHVibGlzaGVkIGFzIGEgcHJpbnRlZCBib29rLgorICAgICBXZSByZWNvbW1lbmQgdGhpcyBMaWNlbnNlIHByaW5jaXBhbGx5IGZvciB3b3JrcyB3aG9zZSBwdXJwb3NlIGlzCisgICAgIGluc3RydWN0aW9uIG9yIHJlZmVyZW5jZS4KKworICAxLiBBUFBMSUNBQklMSVRZIEFORCBERUZJTklUSU9OUworCisgICAgIFRoaXMgTGljZW5zZSBhcHBsaWVzIHRvIGFueSBtYW51YWwgb3Igb3RoZXIgd29yaywgaW4gYW55IG1lZGl1bSwKKyAgICAgdGhhdCBjb250YWlucyBhIG5vdGljZSBwbGFjZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXIgc2F5aW5nIGl0CisgICAgIGNhbiBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLiAgU3VjaCBhIG5vdGljZQorICAgICBncmFudHMgYSB3b3JsZC13aWRlLCByb3lhbHR5LWZyZWUgbGljZW5zZSwgdW5saW1pdGVkIGluIGR1cmF0aW9uLAorICAgICB0byB1c2UgdGhhdCB3b3JrIHVuZGVyIHRoZSBjb25kaXRpb25zIHN0YXRlZCBoZXJlaW4uICBUaGUKKyAgICAgIkRvY3VtZW50IiwgYmVsb3csIHJlZmVycyB0byBhbnkgc3VjaCBtYW51YWwgb3Igd29yay4gIEFueSBtZW1iZXIKKyAgICAgb2YgdGhlIHB1YmxpYyBpcyBhIGxpY2Vuc2VlLCBhbmQgaXMgYWRkcmVzc2VkIGFzICJ5b3UiLiAgWW91CisgICAgIGFjY2VwdCB0aGUgbGljZW5zZSBpZiB5b3UgY29weSwgbW9kaWZ5IG9yIGRpc3RyaWJ1dGUgdGhlIHdvcmsgaW4gYQorICAgICB3YXkgcmVxdWlyaW5nIHBlcm1pc3Npb24gdW5kZXIgY29weXJpZ2h0IGxhdy4KKworICAgICBBICJNb2RpZmllZCBWZXJzaW9uIiBvZiB0aGUgRG9jdW1lbnQgbWVhbnMgYW55IHdvcmsgY29udGFpbmluZyB0aGUKKyAgICAgRG9jdW1lbnQgb3IgYSBwb3J0aW9uIG9mIGl0LCBlaXRoZXIgY29waWVkIHZlcmJhdGltLCBvciB3aXRoCisgICAgIG1vZGlmaWNhdGlvbnMgYW5kL29yIHRyYW5zbGF0ZWQgaW50byBhbm90aGVyIGxhbmd1YWdlLgorCisgICAgIEEgIlNlY29uZGFyeSBTZWN0aW9uIiBpcyBhIG5hbWVkIGFwcGVuZGl4IG9yIGEgZnJvbnQtbWF0dGVyIHNlY3Rpb24KKyAgICAgb2YgdGhlIERvY3VtZW50IHRoYXQgZGVhbHMgZXhjbHVzaXZlbHkgd2l0aCB0aGUgcmVsYXRpb25zaGlwIG9mIHRoZQorICAgICBwdWJsaXNoZXJzIG9yIGF1dGhvcnMgb2YgdGhlIERvY3VtZW50IHRvIHRoZSBEb2N1bWVudCdzIG92ZXJhbGwKKyAgICAgc3ViamVjdCAob3IgdG8gcmVsYXRlZCBtYXR0ZXJzKSBhbmQgY29udGFpbnMgbm90aGluZyB0aGF0IGNvdWxkCisgICAgIGZhbGwgZGlyZWN0bHkgd2l0aGluIHRoYXQgb3ZlcmFsbCBzdWJqZWN0LiAgKFRodXMsIGlmIHRoZSBEb2N1bWVudAorICAgICBpcyBpbiBwYXJ0IGEgdGV4dGJvb2sgb2YgbWF0aGVtYXRpY3MsIGEgU2Vjb25kYXJ5IFNlY3Rpb24gbWF5IG5vdAorICAgICBleHBsYWluIGFueSBtYXRoZW1hdGljcy4pICBUaGUgcmVsYXRpb25zaGlwIGNvdWxkIGJlIGEgbWF0dGVyIG9mCisgICAgIGhpc3RvcmljYWwgY29ubmVjdGlvbiB3aXRoIHRoZSBzdWJqZWN0IG9yIHdpdGggcmVsYXRlZCBtYXR0ZXJzLCBvcgorICAgICBvZiBsZWdhbCwgY29tbWVyY2lhbCwgcGhpbG9zb3BoaWNhbCwgZXRoaWNhbCBvciBwb2xpdGljYWwgcG9zaXRpb24KKyAgICAgcmVnYXJkaW5nIHRoZW0uCisKKyAgICAgVGhlICJJbnZhcmlhbnQgU2VjdGlvbnMiIGFyZSBjZXJ0YWluIFNlY29uZGFyeSBTZWN0aW9ucyB3aG9zZQorICAgICB0aXRsZXMgYXJlIGRlc2lnbmF0ZWQsIGFzIGJlaW5nIHRob3NlIG9mIEludmFyaWFudCBTZWN0aW9ucywgaW4KKyAgICAgdGhlIG5vdGljZSB0aGF0IHNheXMgdGhhdCB0aGUgRG9jdW1lbnQgaXMgcmVsZWFzZWQgdW5kZXIgdGhpcworICAgICBMaWNlbnNlLiAgSWYgYSBzZWN0aW9uIGRvZXMgbm90IGZpdCB0aGUgYWJvdmUgZGVmaW5pdGlvbiBvZgorICAgICBTZWNvbmRhcnkgdGhlbiBpdCBpcyBub3QgYWxsb3dlZCB0byBiZSBkZXNpZ25hdGVkIGFzIEludmFyaWFudC4KKyAgICAgVGhlIERvY3VtZW50IG1heSBjb250YWluIHplcm8gSW52YXJpYW50IFNlY3Rpb25zLiAgSWYgdGhlIERvY3VtZW50CisgICAgIGRvZXMgbm90IGlkZW50aWZ5IGFueSBJbnZhcmlhbnQgU2VjdGlvbnMgdGhlbiB0aGVyZSBhcmUgbm9uZS4KKworICAgICBUaGUgIkNvdmVyIFRleHRzIiBhcmUgY2VydGFpbiBzaG9ydCBwYXNzYWdlcyBvZiB0ZXh0IHRoYXQgYXJlCisgICAgIGxpc3RlZCwgYXMgRnJvbnQtQ292ZXIgVGV4dHMgb3IgQmFjay1Db3ZlciBUZXh0cywgaW4gdGhlIG5vdGljZQorICAgICB0aGF0IHNheXMgdGhhdCB0aGUgRG9jdW1lbnQgaXMgcmVsZWFzZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQQorICAgICBGcm9udC1Db3ZlciBUZXh0IG1heSBiZSBhdCBtb3N0IDUgd29yZHMsIGFuZCBhIEJhY2stQ292ZXIgVGV4dCBtYXkKKyAgICAgYmUgYXQgbW9zdCAyNSB3b3Jkcy4KKworICAgICBBICJUcmFuc3BhcmVudCIgY29weSBvZiB0aGUgRG9jdW1lbnQgbWVhbnMgYSBtYWNoaW5lLXJlYWRhYmxlIGNvcHksCisgICAgIHJlcHJlc2VudGVkIGluIGEgZm9ybWF0IHdob3NlIHNwZWNpZmljYXRpb24gaXMgYXZhaWxhYmxlIHRvIHRoZQorICAgICBnZW5lcmFsIHB1YmxpYywgdGhhdCBpcyBzdWl0YWJsZSBmb3IgcmV2aXNpbmcgdGhlIGRvY3VtZW50CisgICAgIHN0cmFpZ2h0Zm9yd2FyZGx5IHdpdGggZ2VuZXJpYyB0ZXh0IGVkaXRvcnMgb3IgKGZvciBpbWFnZXMKKyAgICAgY29tcG9zZWQgb2YgcGl4ZWxzKSBnZW5lcmljIHBhaW50IHByb2dyYW1zIG9yIChmb3IgZHJhd2luZ3MpIHNvbWUKKyAgICAgd2lkZWx5IGF2YWlsYWJsZSBkcmF3aW5nIGVkaXRvciwgYW5kIHRoYXQgaXMgc3VpdGFibGUgZm9yIGlucHV0IHRvCisgICAgIHRleHQgZm9ybWF0dGVycyBvciBmb3IgYXV0b21hdGljIHRyYW5zbGF0aW9uIHRvIGEgdmFyaWV0eSBvZgorICAgICBmb3JtYXRzIHN1aXRhYmxlIGZvciBpbnB1dCB0byB0ZXh0IGZvcm1hdHRlcnMuICBBIGNvcHkgbWFkZSBpbiBhbgorICAgICBvdGhlcndpc2UgVHJhbnNwYXJlbnQgZmlsZSBmb3JtYXQgd2hvc2UgbWFya3VwLCBvciBhYnNlbmNlIG9mCisgICAgIG1hcmt1cCwgaGFzIGJlZW4gYXJyYW5nZWQgdG8gdGh3YXJ0IG9yIGRpc2NvdXJhZ2Ugc3Vic2VxdWVudAorICAgICBtb2RpZmljYXRpb24gYnkgcmVhZGVycyBpcyBub3QgVHJhbnNwYXJlbnQuICBBbiBpbWFnZSBmb3JtYXQgaXMKKyAgICAgbm90IFRyYW5zcGFyZW50IGlmIHVzZWQgZm9yIGFueSBzdWJzdGFudGlhbCBhbW91bnQgb2YgdGV4dC4gIEEKKyAgICAgY29weSB0aGF0IGlzIG5vdCAiVHJhbnNwYXJlbnQiIGlzIGNhbGxlZCAiT3BhcXVlIi4KKworICAgICBFeGFtcGxlcyBvZiBzdWl0YWJsZSBmb3JtYXRzIGZvciBUcmFuc3BhcmVudCBjb3BpZXMgaW5jbHVkZSBwbGFpbgorICAgICBBU0NJSSB3aXRob3V0IG1hcmt1cCwgVGV4aW5mbyBpbnB1dCBmb3JtYXQsIExhVGVYIGlucHV0IGZvcm1hdCwKKyAgICAgU0dNTCBvciBYTUwgdXNpbmcgYSBwdWJsaWNseSBhdmFpbGFibGUgRFRELCBhbmQKKyAgICAgc3RhbmRhcmQtY29uZm9ybWluZyBzaW1wbGUgSFRNTCwgUG9zdFNjcmlwdCBvciBQREYgZGVzaWduZWQgZm9yCisgICAgIGh1bWFuIG1vZGlmaWNhdGlvbi4gIEV4YW1wbGVzIG9mIHRyYW5zcGFyZW50IGltYWdlIGZvcm1hdHMgaW5jbHVkZQorICAgICBQTkcsIFhDRiBhbmQgSlBHLiAgT3BhcXVlIGZvcm1hdHMgaW5jbHVkZSBwcm9wcmlldGFyeSBmb3JtYXRzIHRoYXQKKyAgICAgY2FuIGJlIHJlYWQgYW5kIGVkaXRlZCBvbmx5IGJ5IHByb3ByaWV0YXJ5IHdvcmQgcHJvY2Vzc29ycywgU0dNTCBvcgorICAgICBYTUwgZm9yIHdoaWNoIHRoZSBEVEQgYW5kL29yIHByb2Nlc3NpbmcgdG9vbHMgYXJlIG5vdCBnZW5lcmFsbHkKKyAgICAgYXZhaWxhYmxlLCBhbmQgdGhlIG1hY2hpbmUtZ2VuZXJhdGVkIEhUTUwsIFBvc3RTY3JpcHQgb3IgUERGCisgICAgIHByb2R1Y2VkIGJ5IHNvbWUgd29yZCBwcm9jZXNzb3JzIGZvciBvdXRwdXQgcHVycG9zZXMgb25seS4KKworICAgICBUaGUgIlRpdGxlIFBhZ2UiIG1lYW5zLCBmb3IgYSBwcmludGVkIGJvb2ssIHRoZSB0aXRsZSBwYWdlIGl0c2VsZiwKKyAgICAgcGx1cyBzdWNoIGZvbGxvd2luZyBwYWdlcyBhcyBhcmUgbmVlZGVkIHRvIGhvbGQsIGxlZ2libHksIHRoZQorICAgICBtYXRlcmlhbCB0aGlzIExpY2Vuc2UgcmVxdWlyZXMgdG8gYXBwZWFyIGluIHRoZSB0aXRsZSBwYWdlLiAgRm9yCisgICAgIHdvcmtzIGluIGZvcm1hdHMgd2hpY2ggZG8gbm90IGhhdmUgYW55IHRpdGxlIHBhZ2UgYXMgc3VjaCwgIlRpdGxlCisgICAgIFBhZ2UiIG1lYW5zIHRoZSB0ZXh0IG5lYXIgdGhlIG1vc3QgcHJvbWluZW50IGFwcGVhcmFuY2Ugb2YgdGhlCisgICAgIHdvcmsncyB0aXRsZSwgcHJlY2VkaW5nIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGJvZHkgb2YgdGhlIHRleHQuCisKKyAgICAgQSBzZWN0aW9uICJFbnRpdGxlZCBYWVoiIG1lYW5zIGEgbmFtZWQgc3VidW5pdCBvZiB0aGUgRG9jdW1lbnQKKyAgICAgd2hvc2UgdGl0bGUgZWl0aGVyIGlzIHByZWNpc2VseSBYWVogb3IgY29udGFpbnMgWFlaIGluIHBhcmVudGhlc2VzCisgICAgIGZvbGxvd2luZyB0ZXh0IHRoYXQgdHJhbnNsYXRlcyBYWVogaW4gYW5vdGhlciBsYW5ndWFnZS4gIChIZXJlIFhZWgorICAgICBzdGFuZHMgZm9yIGEgc3BlY2lmaWMgc2VjdGlvbiBuYW1lIG1lbnRpb25lZCBiZWxvdywgc3VjaCBhcworICAgICAiQWNrbm93bGVkZ2VtZW50cyIsICJEZWRpY2F0aW9ucyIsICJFbmRvcnNlbWVudHMiLCBvciAiSGlzdG9yeSIuKQorICAgICBUbyAiUHJlc2VydmUgdGhlIFRpdGxlIiBvZiBzdWNoIGEgc2VjdGlvbiB3aGVuIHlvdSBtb2RpZnkgdGhlCisgICAgIERvY3VtZW50IG1lYW5zIHRoYXQgaXQgcmVtYWlucyBhIHNlY3Rpb24gIkVudGl0bGVkIFhZWiIgYWNjb3JkaW5nCisgICAgIHRvIHRoaXMgZGVmaW5pdGlvbi4KKworICAgICBUaGUgRG9jdW1lbnQgbWF5IGluY2x1ZGUgV2FycmFudHkgRGlzY2xhaW1lcnMgbmV4dCB0byB0aGUgbm90aWNlCisgICAgIHdoaWNoIHN0YXRlcyB0aGF0IHRoaXMgTGljZW5zZSBhcHBsaWVzIHRvIHRoZSBEb2N1bWVudC4gIFRoZXNlCisgICAgIFdhcnJhbnR5IERpc2NsYWltZXJzIGFyZSBjb25zaWRlcmVkIHRvIGJlIGluY2x1ZGVkIGJ5IHJlZmVyZW5jZSBpbgorICAgICB0aGlzIExpY2Vuc2UsIGJ1dCBvbmx5IGFzIHJlZ2FyZHMgZGlzY2xhaW1pbmcgd2FycmFudGllczogYW55IG90aGVyCisgICAgIGltcGxpY2F0aW9uIHRoYXQgdGhlc2UgV2FycmFudHkgRGlzY2xhaW1lcnMgbWF5IGhhdmUgaXMgdm9pZCBhbmQKKyAgICAgaGFzIG5vIGVmZmVjdCBvbiB0aGUgbWVhbmluZyBvZiB0aGlzIExpY2Vuc2UuCisKKyAgMi4gVkVSQkFUSU0gQ09QWUlORworCisgICAgIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSB0aGUgRG9jdW1lbnQgaW4gYW55IG1lZGl1bSwgZWl0aGVyCisgICAgIGNvbW1lcmNpYWxseSBvciBub25jb21tZXJjaWFsbHksIHByb3ZpZGVkIHRoYXQgdGhpcyBMaWNlbnNlLCB0aGUKKyAgICAgY29weXJpZ2h0IG5vdGljZXMsIGFuZCB0aGUgbGljZW5zZSBub3RpY2Ugc2F5aW5nIHRoaXMgTGljZW5zZQorICAgICBhcHBsaWVzIHRvIHRoZSBEb2N1bWVudCBhcmUgcmVwcm9kdWNlZCBpbiBhbGwgY29waWVzLCBhbmQgdGhhdCB5b3UKKyAgICAgYWRkIG5vIG90aGVyIGNvbmRpdGlvbnMgd2hhdHNvZXZlciB0byB0aG9zZSBvZiB0aGlzIExpY2Vuc2UuICBZb3UKKyAgICAgbWF5IG5vdCB1c2UgdGVjaG5pY2FsIG1lYXN1cmVzIHRvIG9ic3RydWN0IG9yIGNvbnRyb2wgdGhlIHJlYWRpbmcKKyAgICAgb3IgZnVydGhlciBjb3B5aW5nIG9mIHRoZSBjb3BpZXMgeW91IG1ha2Ugb3IgZGlzdHJpYnV0ZS4gIEhvd2V2ZXIsCisgICAgIHlvdSBtYXkgYWNjZXB0IGNvbXBlbnNhdGlvbiBpbiBleGNoYW5nZSBmb3IgY29waWVzLiAgSWYgeW91CisgICAgIGRpc3RyaWJ1dGUgYSBsYXJnZSBlbm91Z2ggbnVtYmVyIG9mIGNvcGllcyB5b3UgbXVzdCBhbHNvIGZvbGxvdworICAgICB0aGUgY29uZGl0aW9ucyBpbiBzZWN0aW9uIDMuCisKKyAgICAgWW91IG1heSBhbHNvIGxlbmQgY29waWVzLCB1bmRlciB0aGUgc2FtZSBjb25kaXRpb25zIHN0YXRlZCBhYm92ZSwKKyAgICAgYW5kIHlvdSBtYXkgcHVibGljbHkgZGlzcGxheSBjb3BpZXMuCisKKyAgMy4gQ09QWUlORyBJTiBRVUFOVElUWQorCisgICAgIElmIHlvdSBwdWJsaXNoIHByaW50ZWQgY29waWVzIChvciBjb3BpZXMgaW4gbWVkaWEgdGhhdCBjb21tb25seQorICAgICBoYXZlIHByaW50ZWQgY292ZXJzKSBvZiB0aGUgRG9jdW1lbnQsIG51bWJlcmluZyBtb3JlIHRoYW4gMTAwLCBhbmQKKyAgICAgdGhlIERvY3VtZW50J3MgbGljZW5zZSBub3RpY2UgcmVxdWlyZXMgQ292ZXIgVGV4dHMsIHlvdSBtdXN0CisgICAgIGVuY2xvc2UgdGhlIGNvcGllcyBpbiBjb3ZlcnMgdGhhdCBjYXJyeSwgY2xlYXJseSBhbmQgbGVnaWJseSwgYWxsCisgICAgIHRoZXNlIENvdmVyIFRleHRzOiBGcm9udC1Db3ZlciBUZXh0cyBvbiB0aGUgZnJvbnQgY292ZXIsIGFuZAorICAgICBCYWNrLUNvdmVyIFRleHRzIG9uIHRoZSBiYWNrIGNvdmVyLiAgQm90aCBjb3ZlcnMgbXVzdCBhbHNvIGNsZWFybHkKKyAgICAgYW5kIGxlZ2libHkgaWRlbnRpZnkgeW91IGFzIHRoZSBwdWJsaXNoZXIgb2YgdGhlc2UgY29waWVzLiAgVGhlCisgICAgIGZyb250IGNvdmVyIG11c3QgcHJlc2VudCB0aGUgZnVsbCB0aXRsZSB3aXRoIGFsbCB3b3JkcyBvZiB0aGUKKyAgICAgdGl0bGUgZXF1YWxseSBwcm9taW5lbnQgYW5kIHZpc2libGUuICBZb3UgbWF5IGFkZCBvdGhlciBtYXRlcmlhbAorICAgICBvbiB0aGUgY292ZXJzIGluIGFkZGl0aW9uLiAgQ29weWluZyB3aXRoIGNoYW5nZXMgbGltaXRlZCB0byB0aGUKKyAgICAgY292ZXJzLCBhcyBsb25nIGFzIHRoZXkgcHJlc2VydmUgdGhlIHRpdGxlIG9mIHRoZSBEb2N1bWVudCBhbmQKKyAgICAgc2F0aXNmeSB0aGVzZSBjb25kaXRpb25zLCBjYW4gYmUgdHJlYXRlZCBhcyB2ZXJiYXRpbSBjb3B5aW5nIGluCisgICAgIG90aGVyIHJlc3BlY3RzLgorCisgICAgIElmIHRoZSByZXF1aXJlZCB0ZXh0cyBmb3IgZWl0aGVyIGNvdmVyIGFyZSB0b28gdm9sdW1pbm91cyB0byBmaXQKKyAgICAgbGVnaWJseSwgeW91IHNob3VsZCBwdXQgdGhlIGZpcnN0IG9uZXMgbGlzdGVkIChhcyBtYW55IGFzIGZpdAorICAgICByZWFzb25hYmx5KSBvbiB0aGUgYWN0dWFsIGNvdmVyLCBhbmQgY29udGludWUgdGhlIHJlc3Qgb250bworICAgICBhZGphY2VudCBwYWdlcy4KKworICAgICBJZiB5b3UgcHVibGlzaCBvciBkaXN0cmlidXRlIE9wYXF1ZSBjb3BpZXMgb2YgdGhlIERvY3VtZW50CisgICAgIG51bWJlcmluZyBtb3JlIHRoYW4gMTAwLCB5b3UgbXVzdCBlaXRoZXIgaW5jbHVkZSBhCisgICAgIG1hY2hpbmUtcmVhZGFibGUgVHJhbnNwYXJlbnQgY29weSBhbG9uZyB3aXRoIGVhY2ggT3BhcXVlIGNvcHksIG9yCisgICAgIHN0YXRlIGluIG9yIHdpdGggZWFjaCBPcGFxdWUgY29weSBhIGNvbXB1dGVyLW5ldHdvcmsgbG9jYXRpb24gZnJvbQorICAgICB3aGljaCB0aGUgZ2VuZXJhbCBuZXR3b3JrLXVzaW5nIHB1YmxpYyBoYXMgYWNjZXNzIHRvIGRvd25sb2FkCisgICAgIHVzaW5nIHB1YmxpYy1zdGFuZGFyZCBuZXR3b3JrIHByb3RvY29scyBhIGNvbXBsZXRlIFRyYW5zcGFyZW50CisgICAgIGNvcHkgb2YgdGhlIERvY3VtZW50LCBmcmVlIG9mIGFkZGVkIG1hdGVyaWFsLiAgSWYgeW91IHVzZSB0aGUKKyAgICAgbGF0dGVyIG9wdGlvbiwgeW91IG11c3QgdGFrZSByZWFzb25hYmx5IHBydWRlbnQgc3RlcHMsIHdoZW4geW91CisgICAgIGJlZ2luIGRpc3RyaWJ1dGlvbiBvZiBPcGFxdWUgY29waWVzIGluIHF1YW50aXR5LCB0byBlbnN1cmUgdGhhdAorICAgICB0aGlzIFRyYW5zcGFyZW50IGNvcHkgd2lsbCByZW1haW4gdGh1cyBhY2Nlc3NpYmxlIGF0IHRoZSBzdGF0ZWQKKyAgICAgbG9jYXRpb24gdW50aWwgYXQgbGVhc3Qgb25lIHllYXIgYWZ0ZXIgdGhlIGxhc3QgdGltZSB5b3UKKyAgICAgZGlzdHJpYnV0ZSBhbiBPcGFxdWUgY29weSAoZGlyZWN0bHkgb3IgdGhyb3VnaCB5b3VyIGFnZW50cyBvcgorICAgICByZXRhaWxlcnMpIG9mIHRoYXQgZWRpdGlvbiB0byB0aGUgcHVibGljLgorCisgICAgIEl0IGlzIHJlcXVlc3RlZCwgYnV0IG5vdCByZXF1aXJlZCwgdGhhdCB5b3UgY29udGFjdCB0aGUgYXV0aG9ycyBvZgorICAgICB0aGUgRG9jdW1lbnQgd2VsbCBiZWZvcmUgcmVkaXN0cmlidXRpbmcgYW55IGxhcmdlIG51bWJlciBvZgorICAgICBjb3BpZXMsIHRvIGdpdmUgdGhlbSBhIGNoYW5jZSB0byBwcm92aWRlIHlvdSB3aXRoIGFuIHVwZGF0ZWQKKyAgICAgdmVyc2lvbiBvZiB0aGUgRG9jdW1lbnQuCisKKyAgNC4gTU9ESUZJQ0FUSU9OUworCisgICAgIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSBhIE1vZGlmaWVkIFZlcnNpb24gb2YgdGhlIERvY3VtZW50CisgICAgIHVuZGVyIHRoZSBjb25kaXRpb25zIG9mIHNlY3Rpb25zIDIgYW5kIDMgYWJvdmUsIHByb3ZpZGVkIHRoYXQgeW91CisgICAgIHJlbGVhc2UgdGhlIE1vZGlmaWVkIFZlcnNpb24gdW5kZXIgcHJlY2lzZWx5IHRoaXMgTGljZW5zZSwgd2l0aAorICAgICB0aGUgTW9kaWZpZWQgVmVyc2lvbiBmaWxsaW5nIHRoZSByb2xlIG9mIHRoZSBEb2N1bWVudCwgdGh1cworICAgICBsaWNlbnNpbmcgZGlzdHJpYnV0aW9uIGFuZCBtb2RpZmljYXRpb24gb2YgdGhlIE1vZGlmaWVkIFZlcnNpb24gdG8KKyAgICAgd2hvZXZlciBwb3NzZXNzZXMgYSBjb3B5IG9mIGl0LiAgSW4gYWRkaXRpb24sIHlvdSBtdXN0IGRvIHRoZXNlCisgICAgIHRoaW5ncyBpbiB0aGUgTW9kaWZpZWQgVmVyc2lvbjoKKworICAgICAgIEEuIFVzZSBpbiB0aGUgVGl0bGUgUGFnZSAoYW5kIG9uIHRoZSBjb3ZlcnMsIGlmIGFueSkgYSB0aXRsZQorICAgICAgICAgIGRpc3RpbmN0IGZyb20gdGhhdCBvZiB0aGUgRG9jdW1lbnQsIGFuZCBmcm9tIHRob3NlIG9mCisgICAgICAgICAgcHJldmlvdXMgdmVyc2lvbnMgKHdoaWNoIHNob3VsZCwgaWYgdGhlcmUgd2VyZSBhbnksIGJlIGxpc3RlZAorICAgICAgICAgIGluIHRoZSBIaXN0b3J5IHNlY3Rpb24gb2YgdGhlIERvY3VtZW50KS4gIFlvdSBtYXkgdXNlIHRoZQorICAgICAgICAgIHNhbWUgdGl0bGUgYXMgYSBwcmV2aW91cyB2ZXJzaW9uIGlmIHRoZSBvcmlnaW5hbCBwdWJsaXNoZXIgb2YKKyAgICAgICAgICB0aGF0IHZlcnNpb24gZ2l2ZXMgcGVybWlzc2lvbi4KKworICAgICAgIEIuIExpc3Qgb24gdGhlIFRpdGxlIFBhZ2UsIGFzIGF1dGhvcnMsIG9uZSBvciBtb3JlIHBlcnNvbnMgb3IKKyAgICAgICAgICBlbnRpdGllcyByZXNwb25zaWJsZSBmb3IgYXV0aG9yc2hpcCBvZiB0aGUgbW9kaWZpY2F0aW9ucyBpbgorICAgICAgICAgIHRoZSBNb2RpZmllZCBWZXJzaW9uLCB0b2dldGhlciB3aXRoIGF0IGxlYXN0IGZpdmUgb2YgdGhlCisgICAgICAgICAgcHJpbmNpcGFsIGF1dGhvcnMgb2YgdGhlIERvY3VtZW50IChhbGwgb2YgaXRzIHByaW5jaXBhbAorICAgICAgICAgIGF1dGhvcnMsIGlmIGl0IGhhcyBmZXdlciB0aGFuIGZpdmUpLCB1bmxlc3MgdGhleSByZWxlYXNlIHlvdQorICAgICAgICAgIGZyb20gdGhpcyByZXF1aXJlbWVudC4KKworICAgICAgIEMuIFN0YXRlIG9uIHRoZSBUaXRsZSBwYWdlIHRoZSBuYW1lIG9mIHRoZSBwdWJsaXNoZXIgb2YgdGhlCisgICAgICAgICAgTW9kaWZpZWQgVmVyc2lvbiwgYXMgdGhlIHB1Ymxpc2hlci4KKworICAgICAgIEQuIFByZXNlcnZlIGFsbCB0aGUgY29weXJpZ2h0IG5vdGljZXMgb2YgdGhlIERvY3VtZW50LgorCisgICAgICAgRS4gQWRkIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UgZm9yIHlvdXIgbW9kaWZpY2F0aW9ucworICAgICAgICAgIGFkamFjZW50IHRvIHRoZSBvdGhlciBjb3B5cmlnaHQgbm90aWNlcy4KKworICAgICAgIEYuIEluY2x1ZGUsIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBjb3B5cmlnaHQgbm90aWNlcywgYSBsaWNlbnNlCisgICAgICAgICAgbm90aWNlIGdpdmluZyB0aGUgcHVibGljIHBlcm1pc3Npb24gdG8gdXNlIHRoZSBNb2RpZmllZAorICAgICAgICAgIFZlcnNpb24gdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwgaW4gdGhlIGZvcm0gc2hvd24gaW4KKyAgICAgICAgICB0aGUgQWRkZW5kdW0gYmVsb3cuCisKKyAgICAgICBHLiBQcmVzZXJ2ZSBpbiB0aGF0IGxpY2Vuc2Ugbm90aWNlIHRoZSBmdWxsIGxpc3RzIG9mIEludmFyaWFudAorICAgICAgICAgIFNlY3Rpb25zIGFuZCByZXF1aXJlZCBDb3ZlciBUZXh0cyBnaXZlbiBpbiB0aGUgRG9jdW1lbnQncworICAgICAgICAgIGxpY2Vuc2Ugbm90aWNlLgorCisgICAgICAgSC4gSW5jbHVkZSBhbiB1bmFsdGVyZWQgY29weSBvZiB0aGlzIExpY2Vuc2UuCisKKyAgICAgICBJLiBQcmVzZXJ2ZSB0aGUgc2VjdGlvbiBFbnRpdGxlZCAiSGlzdG9yeSIsIFByZXNlcnZlIGl0cyBUaXRsZSwKKyAgICAgICAgICBhbmQgYWRkIHRvIGl0IGFuIGl0ZW0gc3RhdGluZyBhdCBsZWFzdCB0aGUgdGl0bGUsIHllYXIsIG5ldworICAgICAgICAgIGF1dGhvcnMsIGFuZCBwdWJsaXNoZXIgb2YgdGhlIE1vZGlmaWVkIFZlcnNpb24gYXMgZ2l2ZW4gb24KKyAgICAgICAgICB0aGUgVGl0bGUgUGFnZS4gIElmIHRoZXJlIGlzIG5vIHNlY3Rpb24gRW50aXRsZWQgIkhpc3RvcnkiIGluCisgICAgICAgICAgdGhlIERvY3VtZW50LCBjcmVhdGUgb25lIHN0YXRpbmcgdGhlIHRpdGxlLCB5ZWFyLCBhdXRob3JzLAorICAgICAgICAgIGFuZCBwdWJsaXNoZXIgb2YgdGhlIERvY3VtZW50IGFzIGdpdmVuIG9uIGl0cyBUaXRsZSBQYWdlLAorICAgICAgICAgIHRoZW4gYWRkIGFuIGl0ZW0gZGVzY3JpYmluZyB0aGUgTW9kaWZpZWQgVmVyc2lvbiBhcyBzdGF0ZWQgaW4KKyAgICAgICAgICB0aGUgcHJldmlvdXMgc2VudGVuY2UuCisKKyAgICAgICBKLiBQcmVzZXJ2ZSB0aGUgbmV0d29yayBsb2NhdGlvbiwgaWYgYW55LCBnaXZlbiBpbiB0aGUgRG9jdW1lbnQKKyAgICAgICAgICBmb3IgcHVibGljIGFjY2VzcyB0byBhIFRyYW5zcGFyZW50IGNvcHkgb2YgdGhlIERvY3VtZW50LCBhbmQKKyAgICAgICAgICBsaWtld2lzZSB0aGUgbmV0d29yayBsb2NhdGlvbnMgZ2l2ZW4gaW4gdGhlIERvY3VtZW50IGZvcgorICAgICAgICAgIHByZXZpb3VzIHZlcnNpb25zIGl0IHdhcyBiYXNlZCBvbi4gIFRoZXNlIG1heSBiZSBwbGFjZWQgaW4KKyAgICAgICAgICB0aGUgIkhpc3RvcnkiIHNlY3Rpb24uICBZb3UgbWF5IG9taXQgYSBuZXR3b3JrIGxvY2F0aW9uIGZvciBhCisgICAgICAgICAgd29yayB0aGF0IHdhcyBwdWJsaXNoZWQgYXQgbGVhc3QgZm91ciB5ZWFycyBiZWZvcmUgdGhlCisgICAgICAgICAgRG9jdW1lbnQgaXRzZWxmLCBvciBpZiB0aGUgb3JpZ2luYWwgcHVibGlzaGVyIG9mIHRoZSB2ZXJzaW9uCisgICAgICAgICAgaXQgcmVmZXJzIHRvIGdpdmVzIHBlcm1pc3Npb24uCisKKyAgICAgICBLLiBGb3IgYW55IHNlY3Rpb24gRW50aXRsZWQgIkFja25vd2xlZGdlbWVudHMiIG9yICJEZWRpY2F0aW9ucyIsCisgICAgICAgICAgUHJlc2VydmUgdGhlIFRpdGxlIG9mIHRoZSBzZWN0aW9uLCBhbmQgcHJlc2VydmUgaW4gdGhlCisgICAgICAgICAgc2VjdGlvbiBhbGwgdGhlIHN1YnN0YW5jZSBhbmQgdG9uZSBvZiBlYWNoIG9mIHRoZSBjb250cmlidXRvcgorICAgICAgICAgIGFja25vd2xlZGdlbWVudHMgYW5kL29yIGRlZGljYXRpb25zIGdpdmVuIHRoZXJlaW4uCisKKyAgICAgICBMLiBQcmVzZXJ2ZSBhbGwgdGhlIEludmFyaWFudCBTZWN0aW9ucyBvZiB0aGUgRG9jdW1lbnQsCisgICAgICAgICAgdW5hbHRlcmVkIGluIHRoZWlyIHRleHQgYW5kIGluIHRoZWlyIHRpdGxlcy4gIFNlY3Rpb24gbnVtYmVycworICAgICAgICAgIG9yIHRoZSBlcXVpdmFsZW50IGFyZSBub3QgY29uc2lkZXJlZCBwYXJ0IG9mIHRoZSBzZWN0aW9uCisgICAgICAgICAgdGl0bGVzLgorCisgICAgICAgTS4gRGVsZXRlIGFueSBzZWN0aW9uIEVudGl0bGVkICJFbmRvcnNlbWVudHMiLiAgU3VjaCBhIHNlY3Rpb24KKyAgICAgICAgICBtYXkgbm90IGJlIGluY2x1ZGVkIGluIHRoZSBNb2RpZmllZCBWZXJzaW9uLgorCisgICAgICAgTi4gRG8gbm90IHJldGl0bGUgYW55IGV4aXN0aW5nIHNlY3Rpb24gdG8gYmUgRW50aXRsZWQKKyAgICAgICAgICAiRW5kb3JzZW1lbnRzIiBvciB0byBjb25mbGljdCBpbiB0aXRsZSB3aXRoIGFueSBJbnZhcmlhbnQKKyAgICAgICAgICBTZWN0aW9uLgorCisgICAgICAgTy4gUHJlc2VydmUgYW55IFdhcnJhbnR5IERpc2NsYWltZXJzLgorCisgICAgIElmIHRoZSBNb2RpZmllZCBWZXJzaW9uIGluY2x1ZGVzIG5ldyBmcm9udC1tYXR0ZXIgc2VjdGlvbnMgb3IKKyAgICAgYXBwZW5kaWNlcyB0aGF0IHF1YWxpZnkgYXMgU2Vjb25kYXJ5IFNlY3Rpb25zIGFuZCBjb250YWluIG5vCisgICAgIG1hdGVyaWFsIGNvcGllZCBmcm9tIHRoZSBEb2N1bWVudCwgeW91IG1heSBhdCB5b3VyIG9wdGlvbgorICAgICBkZXNpZ25hdGUgc29tZSBvciBhbGwgb2YgdGhlc2Ugc2VjdGlvbnMgYXMgaW52YXJpYW50LiAgVG8gZG8gdGhpcywKKyAgICAgYWRkIHRoZWlyIHRpdGxlcyB0byB0aGUgbGlzdCBvZiBJbnZhcmlhbnQgU2VjdGlvbnMgaW4gdGhlIE1vZGlmaWVkCisgICAgIFZlcnNpb24ncyBsaWNlbnNlIG5vdGljZS4gIFRoZXNlIHRpdGxlcyBtdXN0IGJlIGRpc3RpbmN0IGZyb20gYW55CisgICAgIG90aGVyIHNlY3Rpb24gdGl0bGVzLgorCisgICAgIFlvdSBtYXkgYWRkIGEgc2VjdGlvbiBFbnRpdGxlZCAiRW5kb3JzZW1lbnRzIiwgcHJvdmlkZWQgaXQgY29udGFpbnMKKyAgICAgbm90aGluZyBidXQgZW5kb3JzZW1lbnRzIG9mIHlvdXIgTW9kaWZpZWQgVmVyc2lvbiBieSB2YXJpb3VzCisgICAgIHBhcnRpZXMtLWZvciBleGFtcGxlLCBzdGF0ZW1lbnRzIG9mIHBlZXIgcmV2aWV3IG9yIHRoYXQgdGhlIHRleHQKKyAgICAgaGFzIGJlZW4gYXBwcm92ZWQgYnkgYW4gb3JnYW5pemF0aW9uIGFzIHRoZSBhdXRob3JpdGF0aXZlCisgICAgIGRlZmluaXRpb24gb2YgYSBzdGFuZGFyZC4KKworICAgICBZb3UgbWF5IGFkZCBhIHBhc3NhZ2Ugb2YgdXAgdG8gZml2ZSB3b3JkcyBhcyBhIEZyb250LUNvdmVyIFRleHQsCisgICAgIGFuZCBhIHBhc3NhZ2Ugb2YgdXAgdG8gMjUgd29yZHMgYXMgYSBCYWNrLUNvdmVyIFRleHQsIHRvIHRoZSBlbmQKKyAgICAgb2YgdGhlIGxpc3Qgb2YgQ292ZXIgVGV4dHMgaW4gdGhlIE1vZGlmaWVkIFZlcnNpb24uICBPbmx5IG9uZQorICAgICBwYXNzYWdlIG9mIEZyb250LUNvdmVyIFRleHQgYW5kIG9uZSBvZiBCYWNrLUNvdmVyIFRleHQgbWF5IGJlCisgICAgIGFkZGVkIGJ5IChvciB0aHJvdWdoIGFycmFuZ2VtZW50cyBtYWRlIGJ5KSBhbnkgb25lIGVudGl0eS4gIElmIHRoZQorICAgICBEb2N1bWVudCBhbHJlYWR5IGluY2x1ZGVzIGEgY292ZXIgdGV4dCBmb3IgdGhlIHNhbWUgY292ZXIsCisgICAgIHByZXZpb3VzbHkgYWRkZWQgYnkgeW91IG9yIGJ5IGFycmFuZ2VtZW50IG1hZGUgYnkgdGhlIHNhbWUgZW50aXR5CisgICAgIHlvdSBhcmUgYWN0aW5nIG9uIGJlaGFsZiBvZiwgeW91IG1heSBub3QgYWRkIGFub3RoZXI7IGJ1dCB5b3UgbWF5CisgICAgIHJlcGxhY2UgdGhlIG9sZCBvbmUsIG9uIGV4cGxpY2l0IHBlcm1pc3Npb24gZnJvbSB0aGUgcHJldmlvdXMKKyAgICAgcHVibGlzaGVyIHRoYXQgYWRkZWQgdGhlIG9sZCBvbmUuCisKKyAgICAgVGhlIGF1dGhvcihzKSBhbmQgcHVibGlzaGVyKHMpIG9mIHRoZSBEb2N1bWVudCBkbyBub3QgYnkgdGhpcworICAgICBMaWNlbnNlIGdpdmUgcGVybWlzc2lvbiB0byB1c2UgdGhlaXIgbmFtZXMgZm9yIHB1YmxpY2l0eSBmb3Igb3IgdG8KKyAgICAgYXNzZXJ0IG9yIGltcGx5IGVuZG9yc2VtZW50IG9mIGFueSBNb2RpZmllZCBWZXJzaW9uLgorCisgIDUuIENPTUJJTklORyBET0NVTUVOVFMKKworICAgICBZb3UgbWF5IGNvbWJpbmUgdGhlIERvY3VtZW50IHdpdGggb3RoZXIgZG9jdW1lbnRzIHJlbGVhc2VkIHVuZGVyCisgICAgIHRoaXMgTGljZW5zZSwgdW5kZXIgdGhlIHRlcm1zIGRlZmluZWQgaW4gc2VjdGlvbiA0IGFib3ZlIGZvcgorICAgICBtb2RpZmllZCB2ZXJzaW9ucywgcHJvdmlkZWQgdGhhdCB5b3UgaW5jbHVkZSBpbiB0aGUgY29tYmluYXRpb24KKyAgICAgYWxsIG9mIHRoZSBJbnZhcmlhbnQgU2VjdGlvbnMgb2YgYWxsIG9mIHRoZSBvcmlnaW5hbCBkb2N1bWVudHMsCisgICAgIHVubW9kaWZpZWQsIGFuZCBsaXN0IHRoZW0gYWxsIGFzIEludmFyaWFudCBTZWN0aW9ucyBvZiB5b3VyCisgICAgIGNvbWJpbmVkIHdvcmsgaW4gaXRzIGxpY2Vuc2Ugbm90aWNlLCBhbmQgdGhhdCB5b3UgcHJlc2VydmUgYWxsCisgICAgIHRoZWlyIFdhcnJhbnR5IERpc2NsYWltZXJzLgorCisgICAgIFRoZSBjb21iaW5lZCB3b3JrIG5lZWQgb25seSBjb250YWluIG9uZSBjb3B5IG9mIHRoaXMgTGljZW5zZSwgYW5kCisgICAgIG11bHRpcGxlIGlkZW50aWNhbCBJbnZhcmlhbnQgU2VjdGlvbnMgbWF5IGJlIHJlcGxhY2VkIHdpdGggYSBzaW5nbGUKKyAgICAgY29weS4gIElmIHRoZXJlIGFyZSBtdWx0aXBsZSBJbnZhcmlhbnQgU2VjdGlvbnMgd2l0aCB0aGUgc2FtZSBuYW1lCisgICAgIGJ1dCBkaWZmZXJlbnQgY29udGVudHMsIG1ha2UgdGhlIHRpdGxlIG9mIGVhY2ggc3VjaCBzZWN0aW9uIHVuaXF1ZQorICAgICBieSBhZGRpbmcgYXQgdGhlIGVuZCBvZiBpdCwgaW4gcGFyZW50aGVzZXMsIHRoZSBuYW1lIG9mIHRoZQorICAgICBvcmlnaW5hbCBhdXRob3Igb3IgcHVibGlzaGVyIG9mIHRoYXQgc2VjdGlvbiBpZiBrbm93biwgb3IgZWxzZSBhCisgICAgIHVuaXF1ZSBudW1iZXIuICBNYWtlIHRoZSBzYW1lIGFkanVzdG1lbnQgdG8gdGhlIHNlY3Rpb24gdGl0bGVzIGluCisgICAgIHRoZSBsaXN0IG9mIEludmFyaWFudCBTZWN0aW9ucyBpbiB0aGUgbGljZW5zZSBub3RpY2Ugb2YgdGhlCisgICAgIGNvbWJpbmVkIHdvcmsuCisKKyAgICAgSW4gdGhlIGNvbWJpbmF0aW9uLCB5b3UgbXVzdCBjb21iaW5lIGFueSBzZWN0aW9ucyBFbnRpdGxlZAorICAgICAiSGlzdG9yeSIgaW4gdGhlIHZhcmlvdXMgb3JpZ2luYWwgZG9jdW1lbnRzLCBmb3JtaW5nIG9uZSBzZWN0aW9uCisgICAgIEVudGl0bGVkICJIaXN0b3J5IjsgbGlrZXdpc2UgY29tYmluZSBhbnkgc2VjdGlvbnMgRW50aXRsZWQKKyAgICAgIkFja25vd2xlZGdlbWVudHMiLCBhbmQgYW55IHNlY3Rpb25zIEVudGl0bGVkICJEZWRpY2F0aW9ucyIuICBZb3UKKyAgICAgbXVzdCBkZWxldGUgYWxsIHNlY3Rpb25zIEVudGl0bGVkICJFbmRvcnNlbWVudHMuIgorCisgIDYuIENPTExFQ1RJT05TIE9GIERPQ1VNRU5UUworCisgICAgIFlvdSBtYXkgbWFrZSBhIGNvbGxlY3Rpb24gY29uc2lzdGluZyBvZiB0aGUgRG9jdW1lbnQgYW5kIG90aGVyCisgICAgIGRvY3VtZW50cyByZWxlYXNlZCB1bmRlciB0aGlzIExpY2Vuc2UsIGFuZCByZXBsYWNlIHRoZSBpbmRpdmlkdWFsCisgICAgIGNvcGllcyBvZiB0aGlzIExpY2Vuc2UgaW4gdGhlIHZhcmlvdXMgZG9jdW1lbnRzIHdpdGggYSBzaW5nbGUgY29weQorICAgICB0aGF0IGlzIGluY2x1ZGVkIGluIHRoZSBjb2xsZWN0aW9uLCBwcm92aWRlZCB0aGF0IHlvdSBmb2xsb3cgdGhlCisgICAgIHJ1bGVzIG9mIHRoaXMgTGljZW5zZSBmb3IgdmVyYmF0aW0gY29weWluZyBvZiBlYWNoIG9mIHRoZQorICAgICBkb2N1bWVudHMgaW4gYWxsIG90aGVyIHJlc3BlY3RzLgorCisgICAgIFlvdSBtYXkgZXh0cmFjdCBhIHNpbmdsZSBkb2N1bWVudCBmcm9tIHN1Y2ggYSBjb2xsZWN0aW9uLCBhbmQKKyAgICAgZGlzdHJpYnV0ZSBpdCBpbmRpdmlkdWFsbHkgdW5kZXIgdGhpcyBMaWNlbnNlLCBwcm92aWRlZCB5b3UgaW5zZXJ0CisgICAgIGEgY29weSBvZiB0aGlzIExpY2Vuc2UgaW50byB0aGUgZXh0cmFjdGVkIGRvY3VtZW50LCBhbmQgZm9sbG93CisgICAgIHRoaXMgTGljZW5zZSBpbiBhbGwgb3RoZXIgcmVzcGVjdHMgcmVnYXJkaW5nIHZlcmJhdGltIGNvcHlpbmcgb2YKKyAgICAgdGhhdCBkb2N1bWVudC4KKworICA3LiBBR0dSRUdBVElPTiBXSVRIIElOREVQRU5ERU5UIFdPUktTCisKKyAgICAgQSBjb21waWxhdGlvbiBvZiB0aGUgRG9jdW1lbnQgb3IgaXRzIGRlcml2YXRpdmVzIHdpdGggb3RoZXIKKyAgICAgc2VwYXJhdGUgYW5kIGluZGVwZW5kZW50IGRvY3VtZW50cyBvciB3b3JrcywgaW4gb3Igb24gYSB2b2x1bWUgb2YKKyAgICAgYSBzdG9yYWdlIG9yIGRpc3RyaWJ1dGlvbiBtZWRpdW0sIGlzIGNhbGxlZCBhbiAiYWdncmVnYXRlIiBpZiB0aGUKKyAgICAgY29weXJpZ2h0IHJlc3VsdGluZyBmcm9tIHRoZSBjb21waWxhdGlvbiBpcyBub3QgdXNlZCB0byBsaW1pdCB0aGUKKyAgICAgbGVnYWwgcmlnaHRzIG9mIHRoZSBjb21waWxhdGlvbidzIHVzZXJzIGJleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsCisgICAgIHdvcmtzIHBlcm1pdC4gIFdoZW4gdGhlIERvY3VtZW50IGlzIGluY2x1ZGVkIGFuIGFnZ3JlZ2F0ZSwgdGhpcworICAgICBMaWNlbnNlIGRvZXMgbm90IGFwcGx5IHRvIHRoZSBvdGhlciB3b3JrcyBpbiB0aGUgYWdncmVnYXRlIHdoaWNoCisgICAgIGFyZSBub3QgdGhlbXNlbHZlcyBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBEb2N1bWVudC4KKworICAgICBJZiB0aGUgQ292ZXIgVGV4dCByZXF1aXJlbWVudCBvZiBzZWN0aW9uIDMgaXMgYXBwbGljYWJsZSB0byB0aGVzZQorICAgICBjb3BpZXMgb2YgdGhlIERvY3VtZW50LCB0aGVuIGlmIHRoZSBEb2N1bWVudCBpcyBsZXNzIHRoYW4gb25lIGhhbGYKKyAgICAgb2YgdGhlIGVudGlyZSBhZ2dyZWdhdGUsIHRoZSBEb2N1bWVudCdzIENvdmVyIFRleHRzIG1heSBiZSBwbGFjZWQKKyAgICAgb24gY292ZXJzIHRoYXQgYnJhY2tldCB0aGUgRG9jdW1lbnQgd2l0aGluIHRoZSBhZ2dyZWdhdGUsIG9yIHRoZQorICAgICBlbGVjdHJvbmljIGVxdWl2YWxlbnQgb2YgY292ZXJzIGlmIHRoZSBEb2N1bWVudCBpcyBpbiBlbGVjdHJvbmljCisgICAgIGZvcm0uICBPdGhlcndpc2UgdGhleSBtdXN0IGFwcGVhciBvbiBwcmludGVkIGNvdmVycyB0aGF0IGJyYWNrZXQKKyAgICAgdGhlIHdob2xlIGFnZ3JlZ2F0ZS4KKworICA4LiBUUkFOU0xBVElPTgorCisgICAgIFRyYW5zbGF0aW9uIGlzIGNvbnNpZGVyZWQgYSBraW5kIG9mIG1vZGlmaWNhdGlvbiwgc28geW91IG1heQorICAgICBkaXN0cmlidXRlIHRyYW5zbGF0aW9ucyBvZiB0aGUgRG9jdW1lbnQgdW5kZXIgdGhlIHRlcm1zIG9mIHNlY3Rpb24KKyAgICAgNC4gIFJlcGxhY2luZyBJbnZhcmlhbnQgU2VjdGlvbnMgd2l0aCB0cmFuc2xhdGlvbnMgcmVxdWlyZXMgc3BlY2lhbAorICAgICBwZXJtaXNzaW9uIGZyb20gdGhlaXIgY29weXJpZ2h0IGhvbGRlcnMsIGJ1dCB5b3UgbWF5IGluY2x1ZGUKKyAgICAgdHJhbnNsYXRpb25zIG9mIHNvbWUgb3IgYWxsIEludmFyaWFudCBTZWN0aW9ucyBpbiBhZGRpdGlvbiB0byB0aGUKKyAgICAgb3JpZ2luYWwgdmVyc2lvbnMgb2YgdGhlc2UgSW52YXJpYW50IFNlY3Rpb25zLiAgWW91IG1heSBpbmNsdWRlIGEKKyAgICAgdHJhbnNsYXRpb24gb2YgdGhpcyBMaWNlbnNlLCBhbmQgYWxsIHRoZSBsaWNlbnNlIG5vdGljZXMgaW4gdGhlCisgICAgIERvY3VtZW50LCBhbmQgYW55IFdhcnJhbnR5IERpc2NsYWltZXJzLCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvCisgICAgIGluY2x1ZGUgdGhlIG9yaWdpbmFsIEVuZ2xpc2ggdmVyc2lvbiBvZiB0aGlzIExpY2Vuc2UgYW5kIHRoZQorICAgICBvcmlnaW5hbCB2ZXJzaW9ucyBvZiB0aG9zZSBub3RpY2VzIGFuZCBkaXNjbGFpbWVycy4gIEluIGNhc2Ugb2YgYQorICAgICBkaXNhZ3JlZW1lbnQgYmV0d2VlbiB0aGUgdHJhbnNsYXRpb24gYW5kIHRoZSBvcmlnaW5hbCB2ZXJzaW9uIG9mCisgICAgIHRoaXMgTGljZW5zZSBvciBhIG5vdGljZSBvciBkaXNjbGFpbWVyLCB0aGUgb3JpZ2luYWwgdmVyc2lvbiB3aWxsCisgICAgIHByZXZhaWwuCisKKyAgICAgSWYgYSBzZWN0aW9uIGluIHRoZSBEb2N1bWVudCBpcyBFbnRpdGxlZCAiQWNrbm93bGVkZ2VtZW50cyIsCisgICAgICJEZWRpY2F0aW9ucyIsIG9yICJIaXN0b3J5IiwgdGhlIHJlcXVpcmVtZW50IChzZWN0aW9uIDQpIHRvCisgICAgIFByZXNlcnZlIGl0cyBUaXRsZSAoc2VjdGlvbiAxKSB3aWxsIHR5cGljYWxseSByZXF1aXJlIGNoYW5naW5nIHRoZQorICAgICBhY3R1YWwgdGl0bGUuCisKKyAgOS4gVEVSTUlOQVRJT04KKworICAgICBZb3UgbWF5IG5vdCBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2UsIG9yIGRpc3RyaWJ1dGUgdGhlIERvY3VtZW50CisgICAgIGV4Y2VwdCBhcyBleHByZXNzbHkgcHJvdmlkZWQgZm9yIHVuZGVyIHRoaXMgTGljZW5zZS4gIEFueSBvdGhlcgorICAgICBhdHRlbXB0IHRvIGNvcHksIG1vZGlmeSwgc3VibGljZW5zZSBvciBkaXN0cmlidXRlIHRoZSBEb2N1bWVudCBpcworICAgICB2b2lkLCBhbmQgd2lsbCBhdXRvbWF0aWNhbGx5IHRlcm1pbmF0ZSB5b3VyIHJpZ2h0cyB1bmRlciB0aGlzCisgICAgIExpY2Vuc2UuICBIb3dldmVyLCBwYXJ0aWVzIHdobyBoYXZlIHJlY2VpdmVkIGNvcGllcywgb3IgcmlnaHRzLAorICAgICBmcm9tIHlvdSB1bmRlciB0aGlzIExpY2Vuc2Ugd2lsbCBub3QgaGF2ZSB0aGVpciBsaWNlbnNlcworICAgICB0ZXJtaW5hdGVkIHNvIGxvbmcgYXMgc3VjaCBwYXJ0aWVzIHJlbWFpbiBpbiBmdWxsIGNvbXBsaWFuY2UuCisKKyAxMC4gRlVUVVJFIFJFVklTSU9OUyBPRiBUSElTIExJQ0VOU0UKKworICAgICBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIG5ldywgcmV2aXNlZCB2ZXJzaW9ucyBvZgorICAgICB0aGUgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlIGZyb20gdGltZSB0byB0aW1lLiAgU3VjaCBuZXcKKyAgICAgdmVyc2lvbnMgd2lsbCBiZSBzaW1pbGFyIGluIHNwaXJpdCB0byB0aGUgcHJlc2VudCB2ZXJzaW9uLCBidXQgbWF5CisgICAgIGRpZmZlciBpbiBkZXRhaWwgdG8gYWRkcmVzcyBuZXcgcHJvYmxlbXMgb3IgY29uY2VybnMuICBTZWUKKyAgICAgYGh0dHA6Ly93d3cuZ251Lm9yZy9jb3B5bGVmdC8nLgorCisgICAgIEVhY2ggdmVyc2lvbiBvZiB0aGUgTGljZW5zZSBpcyBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24KKyAgICAgbnVtYmVyLiAgSWYgdGhlIERvY3VtZW50IHNwZWNpZmllcyB0aGF0IGEgcGFydGljdWxhciBudW1iZXJlZAorICAgICB2ZXJzaW9uIG9mIHRoaXMgTGljZW5zZSAib3IgYW55IGxhdGVyIHZlcnNpb24iIGFwcGxpZXMgdG8gaXQsIHlvdQorICAgICBoYXZlIHRoZSBvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBlaXRoZXIgb2YKKyAgICAgdGhhdCBzcGVjaWZpZWQgdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiB0aGF0IGhhcyBiZWVuCisgICAgIHB1Ymxpc2hlZCAobm90IGFzIGEgZHJhZnQpIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uICBJZgorICAgICB0aGUgRG9jdW1lbnQgZG9lcyBub3Qgc3BlY2lmeSBhIHZlcnNpb24gbnVtYmVyIG9mIHRoaXMgTGljZW5zZSwKKyAgICAgeW91IG1heSBjaG9vc2UgYW55IHZlcnNpb24gZXZlciBwdWJsaXNoZWQgKG5vdCBhcyBhIGRyYWZ0KSBieSB0aGUKKyAgICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorCitBLjEuMSBBRERFTkRVTTogSG93IHRvIHVzZSB0aGlzIExpY2Vuc2UgZm9yIHlvdXIgZG9jdW1lbnRzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RvIHVzZSB0aGlzIExpY2Vuc2UgaW4gYSBkb2N1bWVudCB5b3UgaGF2ZSB3cml0dGVuLCBpbmNsdWRlIGEgY29weSBvZgordGhlIExpY2Vuc2UgaW4gdGhlIGRvY3VtZW50IGFuZCBwdXQgdGhlIGZvbGxvd2luZyBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UKK25vdGljZXMganVzdCBhZnRlciB0aGUgdGl0bGUgcGFnZToKKworICAgICAgIENvcHlyaWdodCAoQykgIFlFQVIgIFlPVVIgTkFNRS4KKyAgICAgICBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoaXMgZG9jdW1lbnQKKyAgICAgICB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZSwgVmVyc2lvbiAxLjIKKyAgICAgICBvciBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsKKyAgICAgICB3aXRoIG5vIEludmFyaWFudCBTZWN0aW9ucywgbm8gRnJvbnQtQ292ZXIgVGV4dHMsIGFuZCBubyBCYWNrLUNvdmVyIFRleHRzLgorICAgICAgIEEgY29weSBvZiB0aGUgbGljZW5zZSBpcyBpbmNsdWRlZCBpbiB0aGUgc2VjdGlvbiBlbnRpdGxlZCBgYEdOVQorICAgICAgIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlJycuCisKKyAgIElmIHlvdSBoYXZlIEludmFyaWFudCBTZWN0aW9ucywgRnJvbnQtQ292ZXIgVGV4dHMgYW5kIEJhY2stQ292ZXIKK1RleHRzLCByZXBsYWNlIHRoZSAid2l0aC4uLlRleHRzLiIgbGluZSB3aXRoIHRoaXM6CisKKyAgICAgICAgIHdpdGggdGhlIEludmFyaWFudCBTZWN0aW9ucyBiZWluZyBMSVNUIFRIRUlSIFRJVExFUywgd2l0aAorICAgICAgICAgdGhlIEZyb250LUNvdmVyIFRleHRzIGJlaW5nIExJU1QsIGFuZCB3aXRoIHRoZSBCYWNrLUNvdmVyIFRleHRzCisgICAgICAgICBiZWluZyBMSVNULgorCisgICBJZiB5b3UgaGF2ZSBJbnZhcmlhbnQgU2VjdGlvbnMgd2l0aG91dCBDb3ZlciBUZXh0cywgb3Igc29tZSBvdGhlcgorY29tYmluYXRpb24gb2YgdGhlIHRocmVlLCBtZXJnZSB0aG9zZSB0d28gYWx0ZXJuYXRpdmVzIHRvIHN1aXQgdGhlCitzaXR1YXRpb24uCisKKyAgIElmIHlvdXIgZG9jdW1lbnQgY29udGFpbnMgbm9udHJpdmlhbCBleGFtcGxlcyBvZiBwcm9ncmFtIGNvZGUsIHdlCityZWNvbW1lbmQgcmVsZWFzaW5nIHRoZXNlIGV4YW1wbGVzIGluIHBhcmFsbGVsIHVuZGVyIHlvdXIgY2hvaWNlIG9mCitmcmVlIHNvZnR3YXJlIGxpY2Vuc2UsIHN1Y2ggYXMgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB0bworcGVybWl0IHRoZWlyIHVzZSBpbiBmcmVlIHNvZnR3YXJlLgorCiAKIB8KIFRhZyBUYWJsZToKLU5vZGU6IFRvcH8xMjA4Ci1Ob2RlOiBDb21tYW5kIExpbmUgRWRpdGluZ38xNjA0Ci1Ob2RlOiBJbnRyb2R1Y3Rpb24gYW5kIE5vdGF0aW9ufzIyMTgKLU5vZGU6IFJlYWRsaW5lIEludGVyYWN0aW9ufzM4MzcKLU5vZGU6IFJlYWRsaW5lIEJhcmUgRXNzZW50aWFsc381MDI1Ci1Ob2RlOiBSZWFkbGluZSBNb3ZlbWVudCBDb21tYW5kc382ODA3Ci1Ob2RlOiBSZWFkbGluZSBLaWxsaW5nIENvbW1hbmRzfzc3NjUKLU5vZGU6IFJlYWRsaW5lIEFyZ3VtZW50c385Njc1Ci1Ob2RlOiBTZWFyY2hpbmd/MTA3MTIKLU5vZGU6IFJlYWRsaW5lIEluaXQgRmlsZX8xMjg1NgotTm9kZTogUmVhZGxpbmUgSW5pdCBGaWxlIFN5bnRheH8xMzkxOAotTm9kZTogQ29uZGl0aW9uYWwgSW5pdCBDb25zdHJ1Y3RzfzI0ODAyCi1Ob2RlOiBTYW1wbGUgSW5pdCBGaWxlfzI3MzI4Ci1Ob2RlOiBCaW5kYWJsZSBSZWFkbGluZSBDb21tYW5kc38zMDUxMwotTm9kZTogQ29tbWFuZHMgRm9yIE1vdmluZ38zMTU2NAotTm9kZTogQ29tbWFuZHMgRm9yIEhpc3Rvcnl/MzI0MTQKLU5vZGU6IENvbW1hbmRzIEZvciBUZXh0fzM1MjczCi1Ob2RlOiBDb21tYW5kcyBGb3IgS2lsbGluZ38zNzk4OAotTm9kZTogTnVtZXJpYyBBcmd1bWVudHN/Mzk5NDAKLU5vZGU6IENvbW1hbmRzIEZvciBDb21wbGV0aW9ufzQxMDY5Ci1Ob2RlOiBLZXlib2FyZCBNYWNyb3N/NDI2MDIKLU5vZGU6IE1pc2NlbGxhbmVvdXMgQ29tbWFuZHN/NDMxNjIKLU5vZGU6IFJlYWRsaW5lIHZpIE1vZGV/NDY1MTIKK05vZGU6IFRvcH8xMzgyCitOb2RlOiBDb21tYW5kIExpbmUgRWRpdGluZ38xODE0CitOb2RlOiBJbnRyb2R1Y3Rpb24gYW5kIE5vdGF0aW9ufzI0NTcKK05vZGU6IFJlYWRsaW5lIEludGVyYWN0aW9ufzQwODEKK05vZGU6IFJlYWRsaW5lIEJhcmUgRXNzZW50aWFsc381Mjc0CitOb2RlOiBSZWFkbGluZSBNb3ZlbWVudCBDb21tYW5kc383MDY1CitOb2RlOiBSZWFkbGluZSBLaWxsaW5nIENvbW1hbmRzfzgwMzIKK05vZGU6IFJlYWRsaW5lIEFyZ3VtZW50c385OTU0CitOb2RlOiBTZWFyY2hpbmd/MTEwMDAKK05vZGU6IFJlYWRsaW5lIEluaXQgRmlsZX8xMzE1MworTm9kZTogUmVhZGxpbmUgSW5pdCBGaWxlIFN5bnRheH8xNDIyMAorTm9kZTogQ29uZGl0aW9uYWwgSW5pdCBDb25zdHJ1Y3RzfzI2MTU2CitOb2RlOiBTYW1wbGUgSW5pdCBGaWxlfzI4NjkxCitOb2RlOiBCaW5kYWJsZSBSZWFkbGluZSBDb21tYW5kc38zMTgxMAorTm9kZTogQ29tbWFuZHMgRm9yIE1vdmluZ38zMjg2OQorTm9kZTogQ29tbWFuZHMgRm9yIEhpc3Rvcnl/MzM3MzIKK05vZGU6IENvbW1hbmRzIEZvciBUZXh0fzM2ODU4CitOb2RlOiBDb21tYW5kcyBGb3IgS2lsbGluZ38zOTU4NgorTm9kZTogTnVtZXJpYyBBcmd1bWVudHN/NDE3MzAKK05vZGU6IENvbW1hbmRzIEZvciBDb21wbGV0aW9ufzQyODcxCitOb2RlOiBLZXlib2FyZCBNYWNyb3N/NDQ0MTcKK05vZGU6IE1pc2NlbGxhbmVvdXMgQ29tbWFuZHN/NDQ5OTAKK05vZGU6IFJlYWRsaW5lIHZpIE1vZGV/NDgzNTMKK05vZGU6IENvcHlpbmcgVGhpcyBNYW51YWx/NDkyNzQKK05vZGU6IEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZX80OTUwNgogHwogRW5kIFRhZyBUYWJsZQpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvZG9jL3JsdXNlcm1hbi5wZGYgYi9yZWFkbGluZS9kb2Mvcmx1c2VybWFuLnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YTIxODRiCi0tLSAvZGV2L251bGwKKysrIGIvcmVhZGxpbmUvZG9jL3JsdXNlcm1hbi5wZGYKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvZG9jL3JsdXNlcm1hbi5wcyBiL3JlYWRsaW5lL2RvYy9ybHVzZXJtYW4ucHMKaW5kZXggYjQ2NDE3YS4uOTMyMDY1ZSAxMDA2NDQKLS0tIGEvcmVhZGxpbmUvZG9jL3JsdXNlcm1hbi5wcworKysgYi9yZWFkbGluZS9kb2Mvcmx1c2VybWFuLnBzCkBAIC0xLDE0ICsxLDE2IEBACiAlIVBTLUFkb2JlLTIuMAotJSVDcmVhdG9yOiBkdmlwcyhrKSA1Ljg2IENvcHlyaWdodCAxOTk5IFJhZGljYWwgRXllIFNvZnR3YXJlCislJUNyZWF0b3I6IGR2aXBzKGspIDUuOTJiIENvcHlyaWdodCAyMDAyIFJhZGljYWwgRXllIFNvZnR3YXJlCiAlJVRpdGxlOiBybHVzZXJtYW4uZHZpCi0lJVBhZ2VzOiAyNAorJSVQYWdlczogMzIKICUlUGFnZU9yZGVyOiBBc2NlbmQKICUlQm91bmRpbmdCb3g6IDAgMCA2MTIgNzkyCislJURvY3VtZW50Rm9udHM6IENNQlgxMiBDTVIxMCBDTVRUMTAgQ01TWTEwIENNQlhUSTEwIENNVEkxMCBDTUNTQzEwCislJSsgQ01TTFRUMTAgQ01TWTkgQ01SOCBDTVNMMTAgQ01UVDkKICUlRW5kQ29tbWVudHMKICVEVklQU1dlYlBhZ2U6ICh3d3cucmFkaWNhbGV5ZS5jb20pCi0lRFZJUFNDb21tYW5kTGluZTogZHZpcHMgLUQgMzAwIC10IGxldHRlciAtbyBybHVzZXJtYW4ucHMgcmx1c2VybWFuLmR2aQotJURWSVBTUGFyYW1ldGVyczogZHBpPTMwMCwgY29tcHJlc3NlZAotJURWSVBTU291cmNlOiAgVGVYIG91dHB1dCAyMDAyLjA2LjI3OjEzNTQKKyVEVklQU0NvbW1hbmRMaW5lOiBkdmlwcyAtRCA2MDAgLXQgbGV0dGVyIC1vIHJsdXNlcm1hbi5wcyBybHVzZXJtYW4uZHZpCislRFZJUFNQYXJhbWV0ZXJzOiBkcGk9NjAwLCBjb21wcmVzc2VkCislRFZJUFNTb3VyY2U6ICBUZVggb3V0cHV0IDIwMDUuMTIuMDY6MTU0NgogJSVCZWdpblByb2NTZXQ6IHRleGMucHJvCiAlIQogL1RlWERpY3QgMzAwIGRpY3QgZGVmIFRlWERpY3QgYmVnaW4vTntkZWZ9ZGVmL0J7YmluZCBkZWZ9Ti9Te2V4Y2h9Ti9Ye1MKQEAgLTY3LDE5MzUgKzY5LDQ4ODAgQEAKIHJtb3ZldG99Qi95ezMgMiByb2xsIHAgYX1CL2Jvc3svU1Mgc2F2ZSBOfUIvZW9ze1NTIHJlc3RvcmV9QiBlbmQKIAogJSVFbmRQcm9jU2V0Ci1UZVhEaWN0IGJlZ2luIDQwMjU4NDMxIDUyMDk5MTQ2IDEwMDAgMzAwIDMwMCAocmx1c2VybWFuLmR2aSkKLUBzdGFydAotJURWSVBTQml0bWFwRm9udDogRmEgY21ieHRpMTAgMTQuNCAxCi0vRmEgMSA0NyBkZjwxMjBFMTIzRkVBN0Y4MEEyMTJGRkEyMTMwMDEyN0UxMjNDMDkwOTc5ODgxNT40NgotRCBFCi0lRW5kRFZJUFNCaXRtYXBGb250Ci0lRFZJUFNCaXRtYXBGb250OiBGYiBjbWJ4MTIgMTMuMTQgNDYKLS9GYiA0NiAxMjIgZGY8MTIzQzEyN0UxMkZGQTQxMjdFMTIzQzA4MDg3Qzg3MTE+NDYgRDwxMzFDMTMzQzEzRkMxMkZGQTIxMgotMDBCM0FBMzg3RkZGRkNBMjE2MjM3Q0EyMUY+NDkgRDw0OEI0RkMwMDA3MTNDMDM4MUUwN0YwMzgzODAzRjgzODYwMDFGQzM4Ci03QzAwRkUxMkZFMTRGRjE0N0ZBMjEyN0MwMDM4MTNGRkM3RkMxNEZFQTJFQjAxRkMxNEY4RUIwM0YwRUIwN0UwMTQ4MEVCMEYKLTAwMTMxRTVCMTM3MEVCRTAwM0VBMDFDMDM4MDM4MDA3MzgwNzAwMDYxMjA2MzgwRkZGRkU1QTVBNDgxM0ZDQjVGQ0EyMTgyMwotN0RBMjFGPkk8NDhCNEZDMDAwNzEzRTAzODFFMDNGMDM4MzgwMUY4MDAzQzEzRkMzODdFMDBGRUEzMTIzRUVBMUMwMTAwMDAKLTEzRkNBMkVCMDNGOEVCMDdGMEVCMEZDMDM4MDFGRjAwQTIzODAwMDdFMEVCMDFGMDE0RjhFQjAwRkMxNEZFMTRGRkEyMTIxMAotMTI3QzEyRkVBMjE0RkVBMjM4N0MwMUZDMDA3MDEzRjgzODNFMDdGMDM4MEZGRkMwMDAwMTEzMDAxODIzN0RBMjFGPkk8MTQKLTM4MTQ3OEEyMTRGODEzMDExMzAzMTMwNzEzMDYxMzBDMTMxQzEzMzgxMzMwMTM2MDEzRTBFQTAxQzAxMzgwRUEwMzAwNUExMgotMEU1QTEyMTg1QTEyNzA1QUI2MTJDMEEyMzkwMDAxRjgwMEE3OTAzODdGRkZDMEEyMUEyMzdFQTIxRj5JPDAwMTgxMzBDMDAKLTFGMTM3Q0VCRkZGODE0RjAxNEUwMTRDMDE0ODBFQkZDMDAwMDE4QzdGQ0E1MTNGRjAwMUIxM0UwMzgxRjAzRjAzODFDMDBGOAotMDAwODEzRkNDNzEyN0VBMzE0N0ZBMjEyNzgxMkZDQTMxNDdFNUEwMDYwMTNGQzEyNzAzODM4MDFGODM4MUUwN0UwMzgwN0ZGCi1DMDM4MDFGRTAwMTgyMzdEQTIxRj5JPEVCMUZDMEVCN0ZGMDM4MDFGMDM4MzgwM0UwMEMzODA3ODAzRTAwMEYxMzdFRUExRgotMDA1QUEyMDA3RTEzM0MxNDAwQTMzOEZFM0ZDMEVCN0ZGMEVCODBGODAwRkYxM0ZDRUIwMDdDMTQ3RTVBMTQ3RkE0MTI3RUE0Ci0wMDNFMTM3RTEyM0Y2QzEzN0MzODBGODBGODM4MDdDMUYwMzgwM0ZGQzAzODAwN0YwMDE4MjM3REEyMUY+STwxMjMwMTIzQwotMDAzRkI1MTJDMEEyMTU4MDQ4MTQwMDVDNUMzODYwMDAxOEEyMDBFMDVCNDg1QjVDQzY0ODVBQTI0OUM3RkMxMzA2MTMwRUEyCi01QkEyMTMzQ0EyNUJBMjEzRjhBNDEyMDFBNjZDNUExMzYwMUEyNTdEQTQxRj5JPEVCRkY4MDAwMDMxM0UwMzgwRjAxRjgzOAotMUMwMDdDNDgxMzNDMTQxRTEyNzhBMjEyN0MxMjdFMzg3RjgwM0MxM0UwMzgzRkY4NzgzODFGRkRGMEVCRkZDMDdFMDAwMzEzCi1FMDE0RjgwMDBGMTNGQ0VBMUUxRjM4M0MwN0ZFRUE3ODAzRUIwMEZGNDgxMzNGMTQxRjE0MEZBMzE0MEUxMjc4MTQxQzZDMTMKLTM4MzgxRjgwRjAzODA3RkZFMDAwMDExMzAwMTgyMzdEQTIxRj5JPDE0MUNBMjE0M0VBMzE0N0ZBMjRBN0VBMzkwMzgwMTlGCi1DMEEyOTAzODAzMUZFMDE0MEYwMTA3N0ZFQjA2MDdBMjAxMEM3RjE0MDMwMTFDN0ZFQjE4MDFBMjQ5NkM3RUEyMDE3RkI1RkMKLUEyOTAzOUUwMDA3RjgwNDkxMzNGQTI0ODQ4ODAxNTFGMDAwMzgxOTBDNzEyMEZBMjQ4NkU3RUQ4RkZGMDkwQjUxMjgwQTIyOQotMjU3RUE0MkU+NjUgRDxCNjEyRTAxNUZDMzkwM0YwMDA3RkVEM0Y4MEVEMUZDMEVEMEZFMEEyMTZGMEEyMTUwNzE1MEZBMjE2Ci1FMDE1MUYxNkMwRUQ3RjgwOTEzODAxRkUwMDkwQjUxMkY4MTVGRjkwMzlGMDAwM0ZDMEVEMEZFMEVEMDdGMDE2RjgxNTAzMTYKLUZDQTYxNkY4MTUwN0VEMEZGMEVEMUZFMEVEN0ZDMEI3MTIwMDE1RjgyNjI1N0VBNDJDPkk8OTEzOEZGODAwODAxMEZFQkYwCi0xODkwMzkzRkMwM0M3ODkwMzlGRTAwMDZGOEQ4MDFGODEzMDM0ODQ4MTMwMTQ4NDgxMzAwNDg0ODE0NzgxMjFGNDg0ODE0MzgKLUEyMDA3RjE1MTg5MEM4RkNBMjQ4MTUwMEE5N0UxNjE4N0YxMjNGQTI2QzZDMTQzMDEyMEY2QzZDMTQ2MDZDNkMxNEMwNkM2QwotRUIwMTgwRDgwMEZFRUIwNzAwOTAzODNGQzAxRTkwMzgwRkZGRjgwMTAwMTNDMDI1MjU3REE0MkM+STxCN0ZDQTIzOTAzRjgKLTAwN0ZFRDBGODAxNTA3MTUwM0EyMTUwMUEzRUQwMEMwMTQwNkEyMTYwMEEyMTQwRTE0MUVFQkZGRkVBMkVCRjgxRTE0MEUxNAotMDZBMjE2NjBBMjkxQzdGQzE2QzBBNDE1MDExNTAzQTJFRDBGODAxNTNGQjdGQ0EyMjMyNTdFQTQyOD42OQotRDxCNjEyRkVBMjM4MDNGODAwMTUxRjgxODFBMjgxQTNFRDAxODAxNDAzQTI5MkM3RkNBMjVDNUM5MEI1RkNBMkVCRjgwRjgwCi04MEE0OTFDOEZDQUFCNTEyRjBBMjIxMjU3RUE0Mjc+STxCNTAwRTBCNTEyRTBBMjNCMDNGODAwMDNGODAwQUY5MEI2RkNBMgotOTAzOEY4MDAwM0IwQjUwMEUwQjUxMkUwQTIyQjI1N0VBNDMwPjcyIEQ8QjUxMkUwQTIzODAzRjgwMEIzQUZCNTEyRTBBMjEzCi0yNTdFQTQxNz5JPEI1MzlFMDA3RkY4MEEyRDgwM0Y4QzdFQTc4MDAxNjYwNUU0QjVBMDMwN0M3RkMxNTBFMTUxODVENUQ1RAotRUMwMzgwNEFDOEZDMTQwRTE0MUY0QTdFMTQ3RkVDREZDMDkwMzhGQjhGRTA5MDM4RkYwRkYwRUJGQzA3NDk2QzdFODE2RTdFCi0xNDAwMTU3RjgyMTUzRjZGN0U2RjdFODIxNTA3NkY3RTgyQjUzOUUwM0ZGRkMwQTIyQTI1N0VBNDMwPjc1Ci1EPEI1MTJGMEEyRDgwM0Y4QzdGQ0IzQTMxNTAzQTMxNTA2QTMxNTBFQTIxNTFFMTUzRTE1N0NFQzAzRkNCNkZDQTIyMDI1N0UKLUE0MjU+STxEOEZGRjhFREZGRjg2RDVDMDAwM0VFRkUwMDAxN0VFQzAzN0VBMzZEMTQwNkEyNkQ2QzEzMENBMjZENkMxMzE4Ci1BMjZENkMxMzMwQTM2RDZDMTM2MEEyNkQ2QzEzQzBBMjkwMzkwMEZDMDE4MEEyOTEzODdFMDMwMEEzRUMzRjA2QTJFQzFGOEMKLUEyRUMwRkQ4QTJFQzA3RjBBMzZFNUFFQTA3ODAzQ0ZGRkMwMUMwMUZGRkY4QTIzNTI1N0VBNDNBPkk8RDhGRkY4OTAzODA3Ci1GRkUwN0ZEODAzRkU5MDM4MDAzQzAwNkQxNDE4N0Y2RDdFNkQ3RTgwNkQ3RTZEN0UxMzAzNkQ3RTZEN0U4MEVDN0Y4MEVDM0YKLUMwMTQxRkVDMEZFMDE1RjBFQzA3RjhFQzAzRkMxNDAxRUMwMEZFMTU3RjE2OThFRDNGRDhFRDFGRjgxNTBGMTUwNzE1MDNBMgotMTUwMTE1MDAxNjc4NDg2QzE0MzhEOEZGRkMxNDE4QTIyQjI1N0VBNDMwPkk8QjY3RTE1RjgzOTAzRjgwMUZFRUMwMDdGNkYKLTdFNkY3RUEyODJBNTVFQTI0QjVBNEJDN0ZDRUMwMUZFOTBCNTEyRjgxNUMwOTAzOEY4MDNGMDZFN0U2RTdFMTU3RUEyMTU3RgotQTQ4MkEzMTc2MEVEM0ZDMDE3QzBFRDFGRTFCNTM5RTAwRkZGODA5MjM4MDFGRTAwMkIyNTdFQTQyRT44MgotRDwwMUZGMTM4MDAwMDcxM0UzMzgwRjgwRjczODFFMDAxRjQ4MTMwRjQ4MTMwNzE0MDMxMkY4MTQwMUEyN0U5MUM3RkNCNEZDCi1FQTdGRTAxM0ZFMzgzRkZGRTAxNEY4NkMxM0ZFMDAwNzdGNkMxNDgwQzY3RTAxMDMxM0MwRUIwMDNGRUMwRkUwMTQwN0EyMDAKLUMwMTMwM0EzMTVDMDdFNkMxMzA3NkMxNDgwNkNFQjBGMDAzOEZGQzAzRTM4RTNGRkY4Mzg4MDNGRTAxQjI1N0RBNDIyPkk8Ci0wMDdGQjYxMkY4QTIzOTdFMDBGRTAxMDA3OEVDMDA3ODAwNzAxNTM4MDA2MDE1MThBMjAwRTAxNTFDMTYwQzVBQTRDNzE0MDAKLUIzQTM5MEI1MTJGRUEyMjYyNDdFQTMyQj5JPEI1MzlDMDAxRkZFMEEyRDgwN0Y4QzdFQTFDMDA2QzZDMTQxODE2Mzg2QzZDCi0xNDMwNkM2QzVDMTZFMDZENkM1QjZENkM0ODVBMTUwM0Q5MUZFMDkwQzdGQzkwMzgwRkYwMDYxNTBFOTAzODA3RjgwQzZENkMKLTVBMTUzODZENkM1QTkwMzgwMEZGNjAxNUUwNkU1QTZFNUFBRTkwMzgwRkZGRkNBMjJCMjU3RkE0MkU+ODkKLUQ8RUEwN0ZGMDAxRjEzRTAzODNFMDNGMDM4M0YwMEY4ODAxNDdFMTIxRUM3RkNBM0VCMUZGRTM4MDNGRTdFRUEwRkMwRUExRgotMDAxMjNFMTI3RTVBQTMxNEJFRUE3RTAxMzgzRjA3M0UzOTFGRkUxRkUwMzgwN0YwMEYxQjE4N0U5NzFFPjk3Ci1EPEVBRkZDMEEyMTIwRkFDRUJDMUZDRUJDRkZGOTAzOEZDMEZDMDkwMzhGMDA3RTA5MDM4QzAwM0YwQTJFQzAxRjhBMjE1RkMKLUE4MTVGOEEyRUMwM0YwMTNFMDkwMzhGMDA3RTA5MDM4MUMxRjgwMzkwRTBGRkYwMDM4MEMwM0Y4MUUyNjdGQTUyMj5JPEVCCi03RkUwMzgwM0ZGRjgzODA3QzA3QzM4MUY4MEZDMTMwMDVBMDA3RTEzNzgxNDAwMTJGRUE4MTI3RTEyN0Y2QzEzMENFQTFGODAKLUVCQzAxODM4MDdFMDcwMzgwM0ZGRTAzODAwN0YwMDE2MTg3RTk3MUI+STxFQ0ZGQzBBMjE0MEZBQzEzN0YzODAzRkZDRjM4Ci0wRkUwRkYzODFGODAzRjM4M0YwMDBGQTIxMjdFQTIxMkZFQTgxMjdFQTI3RTE0MUYzODFGODAzRjM4MEZDMEVGMzkwM0ZGQ0YKLUZDMzgwMEZFMEYxRTI2N0VBNTIyPkk8MTM3RjM4MDNGRkMwMzgwN0MxRjAzODBGODBGOEVBMUYwMDQ4MTM3QzEyN0UxNDdFCi0xMkZFQTJCNTEyRkVBMjQ4QzdGQ0EzMTI3RUEyMTQwNjdFNkMxMzBDMzgwRjgwMTgzODA3RTA3MDM4MDNGRkUwMzgwMDdGODAKLTE3MTg3RTk3MUM+STxFQjFGQzBFQjdGRjBFQTAxRjgzODAzRTFGODEyMDcxM0MxMzgwRkMwRjAxNDAwQTdCNUZDQTJFQTBGCi1DMEIzQTJFQUZGRkVBMjE1MjY3RUE1MTM+STwzOTAxRkYwN0MwMDAwN0VCREZFMDM4MEY4M0YxRUExRjAxMzkzRTAwRjgwMAotMDA3RTdGQTYwMDNFNUI2QzQ4NUEzODBGODNFMEVCRkZDMDAwMTE5MEM3RkMwMDMwQzhGQ0EyMTIzODEyM0MzODNGRkZFMDZDCi0xM0ZDODA2QzdGNDgxNDgwMzgzQzAwM0Y0OEVCMEZDMDAwRjgxMzA3QTQwMDdDRUIwRjgwNkNFQjFGMDAzODFGODA3RTM4MDcKLUZGRjhDNjEzQzAxQjI0N0U5NzFGPkk8RUFGRkMwQTIxMjBGQUMxNEZFOTAzOEMzRkY4MDkwMzhDRTBGQzAxM0Q4OTAzOEQwCi0wN0UwMTNFMEEyMTNDMEFGMzlGRkZDN0ZGRUEyMUYyNjdFQTUyMj5JPDEyMEZFQTFGODBFQTNGQzBBNEVBMUY4MEVBMEYwMAotQzdGQ0E3RUE3RkMwQTIxMjBGQjNBMkVBRkZGOEEyMEQyNzdFQTYxMT5JPEVBRkZDMEEyMTIwRkFDRUMxRkYwQTJFQzA3ODAKLUVDMEUwMDVDMTQzMDVDRUJDMUMwRUJDMzgwMTNDNzEzREZFQkZGQzBFQkU3RTBFQkMzRjAxMzgxODBFQjgwRkMxNDdFODBBMgotRUMxRjgwRUMwRkMwMzlGRkY4M0ZGOEEyMUQyNjdGQTUyMD4xMDcgRDxFQUZGQzBBMjEyMEZCM0IwRUFGRkZDQTIwRTI2N0UKLUE1MTE+STwyNkZGODBGRTEzN0Y5MDNBODNGRjgxRkZDMDNCMEY4RTBGQzcwN0UwMDE5ODEzQ0M5MDNBOTAwN0U4MDNGMDAxCi1BMDEzRjBBMjAxQzAxM0UwQUYzQkZGRkM3RkZFM0ZGRkEyMzAxODdFOTczMz5JPDM4RkY4MEZFOTAzODgzRkY4MDM5MEY4RQotMEZDMDEzOTg5MDM4OTAwN0UwMTNBMEEyMTNDMEFGMzlGRkZDN0ZGRUEyMUYxODdFOTcyMj5JPEVCN0Y4MDM4MDNGRkYwMzgKLTA3QzBGODM4MUY4MDdFNDg0ODdFQTIwMDdFRUIxRjgwQTIwMEZFMTRDMEE4MDA3RTE0ODBBMjZDRUIzRjAwQTIzODFGODA3RQotNkM2QzVBMzgwM0ZGRjAzODAwN0Y4MDFBMTg3RTk3MUY+STwzOEZGQzFGQ0VCQ0ZGRjM5MEZGQzFGQzA5MDM4RjAwN0UwMDEKLUMwMTNGMDE0MDMxNUY4MTQwMTE1RkNBOEVDMDNGOEEyMTVGMEVCRTAwNzkwMzhGMDBGRTA5MDM4REMxRjgwOTAzOENGRkYwMAotRUJDM0Y4MDFDMEM3RkNBOUVBRkZGQ0EyMUUyMzdGOTcyMj5JPDM4RkY4M0UwRUI4RkY4MzgwRjhDN0NFQjkwRkMxM0IwMTMKLUEwMTQ3OEVCRTAwMDVCQUVFQUZGRkVBMjE2MTg3Rjk3MTk+MTE0IEQ8MzgwN0Y4QzBFQTFGRkZFQTNDMDdFQTcwMDFFQUYwCi0wMEEzMDBGQzEzMDBCNDdFRUE3RkZDN0YzODNGRkY4MDAwMEYxM0MwMTIwMzM4MDAxRkUwMTMwM0VBQzAwMUEyMTJFMDE0QzAKLUVBRjAwMzM4RkMwNzgwMzhFRkZGMDBFQUMzRkMxMzE4N0U5NzE4Pkk8MTNDMEE0MTIwMUEzMTIwMzEyMDcxMjBGMTIxRkI1Ci0xMkMwQTIzODBGQzAwMEFDMTQ2MEE2MzgwN0UwQzAxM0UxMzgwMUZGODAzODAwN0UwMDEzMjM3RkEyMTg+STwzOUZGQzA3RgotRTBBMjAwMEYxMzA3QjAxNDBGQTIwMDA3MTMxN0VCRTA2NzM5MDNGRkM3RkUzODAwN0YwNzFGMTg3RTk3MjI+STwzOUZGRjgKLTBGRjhBMjM5MEZDMDAxQzAxNTgwMzkwN0UwMDMwMEEyNkQ1QTAwMDMxMzA2RUJGODBFMDAwMTEzMEMxM0ZDMDAwMDVCMTNGRQotRUI3RTMwQTI2RDVBQTIxNEUwNkQ1QUEyNkQ1QUEyNkRDN0ZDQTIxRDE4N0Y5NzIwPkk8MzlGRkY4M0ZGMEEyMzkwRkMwMEYKLTAwMzgwN0UwMEU2QzZDNUE2RDVBNkM2QzVBMDAwMDEzNjBFQjdFQzA2RDVBQTIxMzFGNkQ3RTQ5N0U4MEVCMzNGODEzNjFFQgotRTBGQzM4MDFDMDdFMzgwMzgwN0YzOTA3MDAzRjgwNDgxMzFGMzlGRkMwN0ZGOEEyMUQxODdGOTcyMD4xMjAKLUQ8MzlGRkY4MEZGOEEyMzkwRkMwMDFDMDE1ODAzOTA3RTAwMzAwQTI2RDVBMDAwMzEzMDZFQkY4MEUwMDAxMTMwQzEzRkMwMAotMDA1QjEzRkVFQjdFMzBBMjZENUFBMjE0RTA2RDVBQTI2RDVBQTI2REM3RkNBMjEzMDZBMjVCMTIzMEVBNzgxQ0VBRkMxODVCCi0xMzcwRUE2OEUwRUE3RkMwMDAxRkM4RkMxRDIzN0Y5NzIwPkkgRQotJUVuZERWSVBTQml0bWFwRm9udAotJURWSVBTQml0bWFwRm9udDogRmMgY21zbDEwIDEwLjk1IDQwCi0vRmMgNDAgMTIyIGRmPEVBRkZGMEEyMEMwMjdFOEEwRj40NSBEPDE0MDgxNDBDMTQxQzE0M0NBMjE0N0MxNDdFMTQ5RUEyRUIKLTAxMUVBMjEzMDI4MDEzMDRBMjEzMDhBMjAxMTAxMzgwMTQwNzEzMjBBMkVCN0ZGRjkwMzg0MDA3QzBFQjgwMDNBMkVBMDEwMAotQTIxMjAyRUMwMUUwMTIwNjAwMUYxMzAzMzlGRjgwMUZGRTFGMjA3RjlGMjI+NjUgRDwwMDA3QjVGQzM5MDBGODAzQzA5MDM4Ci03ODAxRTBFQzAwRjA0OTEzRjhBNTE1RjAzODAxRTAwMUVDMDNFMDE1QzBFQzBGODA5MDM4RkZGRTAwOTAzOEUwMEY4MDM5MDMKLUMwMDNDMEVDMDFFMDE1RjBBMjE0MDBBMjQ4NUExNDAxQTIxNUUwMTQwM0VDMDdDMDM5MEYwMDBGODBFQzNFMDBCNTEyRjAxRAotMUY3RTlFMjA+STxFQ0ZFMDI5MDM4MDcwMTg2OTAzODFDMDA0RTAxNzAxMzNFNDkxMzFFNDg0ODEzMUM0ODQ4MTMwQzEyMDcKLTQ4QzdGQzVBMTIxRTAwM0UxNDA4MDAzQzE0MDAxMjdDQTQ1QUE0MTI3ODE1MTAxNTIwQTI3RTE1NDAwMDFDMTQ4MDZDRUIwMQotMDA2QzEzMDIzODAzODAwQzM4MDBFMDMwRUIzRkMwMUYyMTdDOUYyMT5JPDAwMDdCNTdFMzkwMEY4MDFFMDkwMzg3ODAwNzAKLTgxNDk3RjE1MUUxNTBFMTUwRkEzNDg0ODE0ODBBNjQ4NDgxNDAwNURBMzE1MUUxNTNFNDg0ODEzM0M1REEyNUQ0QTVBNEE1QQotMjYwRjAwMEZDN0ZDMTQzQ0I1MTJGMDIxMUY3RTlFMjM+STwwMDA3QjUxMkZDMzkwMEY4MDA3QzAxNzgxMzFDMTUwQzVCMTUKLTA0QTQxNDA0MzkwMUUwMDgwMEEzMTQzOEVCRkZGOEVCRTAzODM4MDNDMDEwQTRFQzAwMDgxNTEwNDg1QUEyMTUyMEEyMTU2MAotMTVDMDM4MEYwMDAxMTQwN0I2MTI4MDFFMUY3RTlFMUY+STwwMDA3QjUxMkY4MzkwMEY4MDA3ODAxNzgxMzM4MTUxODVCMTUKLTA4QTUzOTAxRTAwODAwQTMxNDE4MTQzOEVCRkZGODM4MDNDMDMwMTQxMEE0OTFDN0ZDNDg1QUE2NDhDOEZDN0ZFQUZGRkMxRAotMUY3RTlFMUU+STwzQTA3RkY4M0ZGQzAzQTAwRjgwMDdDMDAwMTc4MTMzQ0EyNDk1QkE2NDg0ODVCQTQ5MEI1RkNFQkUwMDAKLTQ4NDg0ODVBQTY0ODQ4NDg1QUE2NDg0ODQ4NUEwMTgwN0YzOUZGRjA3RkY4MjIxRjdFOUUyMj43MgotRDwzODA3RkY4MDM4MDBGODAwMTM3OEEyNUJBNjQ4NUFBNjQ4NUFBNjQ4NUFBNjQ4QzdGQzdGRUFGRkYwMTExRjdFOUUxMD4KLUk8M0EwN0ZGODAzRkUwM0EwMEY4MDAxRjAwMDE3ODEzMEM1RDQ5MTMyMDVENUQ0QUM3RkMxNDAyMTQwODQ4NDg1QTVDMTQ2MAotMTRGMDEzRTFFQkU0RjgzODAzQzg3OEVCRDA3Q0VCRTAzQ0VCQzAzRTE0MUUxNDFGNDg0ODdFODExNDA3ODExNDAzODEzODBGCi0wMDAxNkQ0ODdFMzlGRkYwMEZGRTIzMUY3RTlFMjM+NzUgRDwzODA3RkZFMEQ4MDBGQ0M3RkMxMzc4QTI1QkE2NDg1QUE2NDgKLTVBQTQxNTgwRUMwMTAwRUEwNzgwQTI1QzE0MDIxNDA2MTQwRTM4MEYwMDFFMTQ3Q0I1MTJGQzE5MUY3RTlFMUM+STxEODA3Ci1GOEVCN0ZDMEQ4MDA3Q0VCMUYwMDE1MEMwMTVFMTMwNDAxOUU1QjEzOEZBMkVCODc4MEEyRUI4M0MwRDgwMTAzNUJFQjAxRTAKLUEyRUIwMEYwQTIxNDc4MDAwMjVDMTQzQ0EyMTQxRUEyMTQwRjQ4NUNFQzA3QzBBMjE0MDNBMjE0MDEwMDBDNUMwMDFFMTMwMAotQjQ3RTIyMUY3RTlFMjI+NzggRDxFQjAxRkNFQjBFMDc5MDM4MzgwMUMwOTAzODcwMDBFMDQ4NDgxM0YwNDg0ODEzNzg0ODVBCi0xNTNDNDhDN0ZDNUEwMDFFMTQzRTEyM0UxMjNDMTI3Q0E0NDgxNDdDQTMxNTc4MTVGODEyNzhFQzAxRjAwMDdDMTRFMDE0MDMKLTAwM0MxNEMwMDAxQ0VCMDc4MDAwMUVFQjBGMDA2QzEzMUUzODA3ODAzODM4MDFDMEUwMzgwMDdGODAxRjIxN0M5RjIzPkk8Ci0wMDA3QjVGQzM5MDBGODAzQzA5MDM4NzgwMEYwMTU3ODVCMTU3Q0E0MTU3ODQ4NDgxM0Y4MTVGMEVDMDFFMEVDMDNDMEVDMEYKLTAwRUJGRkZDRDgwM0MwQzdGQ0E2NDg1QUE2NDhDOEZDN0ZFQUZGRjgxRTFGN0U5RTFGPkk8MzgwN0ZGRkUzOTAwRjgwNzgwCi05MDM4NzgwMUUwRUMwMEYwNUIxNUY4QTQxNUYwMzgwMUUwMDExNUUwRUMwM0MwRUMwNzgwRUMxRTAwRUJGRkYwMzgwM0MwMzgKLTgwMTQxRTE0MEVBMjE0MEY0ODQ4NUFBNTE1MDFEODBGMDAxMzAyOTAzODgwMEY4MjM5RkZGODA3OENDN0VBMDFGMDIwMjA3RQotOUUyMj44MiBEPEVCMUY4MkVCNzA2NkVCQzAxRTM4MDE4MDBFRUEwMzAwNDgxMzBDMDAwNjEzMDQxMjBFQTMwMDBGMTMwMEEyCi03RkVBMDdGMDEzRkY2QzEzQzA2QzEzRTAzODAwM0ZGMEVCMDNGODEzMDAxNDc4MTQzQ0EyMDA0MDEzMzhBMzE0MzAwMDYwMTMKLTcwMTQ2MDAwRjAxM0MwMzhFODAxODAzOEM2MDMwMEVBODFGQzE3MjE3RTlGMTk+STwwMDNGQjUxMkYwMzgzQzA3ODAwMDMwCi0xNDMwMTI2MDM5NDAwRjAwMTBBMjEyQzAxMjgwQTNEODAwMUUxMzAwQTY1QkE2NUJBNjVCN0YzODNGRkZFMDFDMUY3QTlFMjEKLT5JPDM5RkZGMDBGRjgzOTFGMDAwM0UwNkNFQjAxODAxNDAwMDAxRUVCMDEwMEE2NDgxMzAyQTY0ODVCQTYwMDcwNUJBMjVDCi1BMjAwNzg1QjEyMzgwMDE4MTNDMDZDNDhDN0ZDRUEwNzA2RUEwMUY4MUQyMDc5OUUyMj5JPDNCRkZGMDdGRjgxRkYwM0IxRgotMDAwRkMwMDdDMDAwMUU5MDM5MDc4MDAzODAwMDFGRUQwMTAwNkMxNTAyMTQwRjVFRUMxN0MwMDIxMzVCMTQyMzAxODA1QzAwCi0wNzEzNDM1RTE0QzM5MTM4ODNFMDQwMTQ4MUQ5ODEwMTVCMTNDMUQ4MDNDMjEzRTE5M0M3RkMxM0M0MTVGMkVCQzgwMDE1RjQKLUVBMDFGMDE1Rjg1QjVENUIxNTYwNUIwMDAwMTQ0MDJDMjA3QTlFMkY+ODcgRDxFQTA3RjhFQTBDMENFQTFFMDYxMzA3MTIxQwotMTIwMEEzMTNGRkVBMDdDN0VBMUUwN0VBM0MwRTEyNzgwMEYwMTMxMEEzMTMxRUVCMkUyMDM4Nzg0RjQwMzgxRjg3ODAxNDE0Ci03RDkzMTc+OTcgRDwxMjA3MTIzRjEyMEY3RUEyMTIwRUE2NUExMzdDRUExRDgzMzgxRTAxODAwMDFDMTNDMEVCMDBFMDVBMTQKLUYwQTUzODcwMDFFMEEyMTRDMDEzMDMxNDgwRUIwNzAwRUFFODBFRUFDQzM4RUE4M0UwMTQyMDdCOUYxOT5JPDEzRkVFQTAzCi04MzM4MEUwNzgwMTIxQzAwMzgxMzAwOTBDN0ZDMTI3ODVBQTQ1QUEzN0U1QkVBNzAwMjZDNUFFQTFDMThFQTA3RTAxMTE0N0QKLTkzMTQ+STwxM0Y4RUEwNzBFRUEwRTA3MzgxQzAzODAxMjM4MTI3ODEyNzAxMkYwQjVGQzAwRjBDN0ZDQTI1QUE0NkM1QUVBCi03MDAyRUEzMDA0RUExQzE4RUEwN0UwMTExNDdEOTMxND4xMDEgRDxFQjA3QzBFQjFDNjBFQjMwRjAxMzYwRUJFMEUwRUJDMAotMDAxMjAxQTU0ODVBRUEzRkZDRUEwMzgwQTQ0OEM3RkNBNjEyMEVBNjVBMTIxRUVBRkZDMDE0MjA3RjlGMEU+STwxNDBFRUIKLTNFMTFFQkUxQTMzODAxQzFDMjM4MDM4MUUwRUEwNzgwMTMwMTEyMEZBMzM4MDcwM0MwMTQ4MEVCODcwMEVBMDRGQzQ4QzdGQwotQTIxMjE4MTIxQ0VBMEZGRjE0QzAxNEUwMzgxODAwRjA0ODEzMzA1QTVBQTMwMDYwMTM2MDZDMTNDMDM4MUMwNzAwRUEwN0ZDCi0xODFGODA5NDE3Pkk8RUEwMUMwRUEwM0UwQTIxM0MwRUEwMTgwQzdGQ0E2RUEwMzgwMTIxRjEyMDcxMjAzQTJFQTA3MDBBNgotMTIwRUE2NUExMjFFRUFGRjgwMEIxRjdGOUUwQz4xMDUgRDwxM0UwMTIwNzEyMDExMjAwQTI0ODVBQTY0ODVBRUI4MUZDRUIKLTgwRjAxNEMwRUI4MTgwMTQwMEVBMDcwNDVCMTMxODEzMzgxMzdDMTMxQzEyMEU3RkEyMTMwRjdGMTQ4MEVBMUMwMzM4MUUwNwotQzAzOEZGOEZGMDE2MjA3RTlGMTg+MTA3IEQ8MTNFMDEyMDcxMjAxMTIwMEEyRUEwMUMwQTZFQTAzODBBNkVBMDcwMEE2MTIKLTBFQTY1QTEyMUVFQUZGODAwQjIwN0Y5RjBDPkk8MzkwMzg3QzA3QzM5MUY5ODYxODYzOTA3QTA3MjA3MzkwM0MwMzQwM0VCCi04MDM4MDAwN0VCNzgwN0VCMDA3MEE1MDAwRUVCRTAwRUE2NDg0ODQ4NUEwMDFFRUJFMDFFM0FGRkNGRkNGRkMwMjIxNDdFOTMKLTI2Pkk8MzgwMzhGODAzODFGOTBFMEVBMDdBMDM4MDNDMDYwMTM4MDAwMDcxM0UwMTMwMEE1MzgwRTAxQzBBNjM4MUMwMzgwCi0wMDFFMTNDMDM4RkY4RkYwMTQxNDdFOTMxOT5JPDEzRkNFQTAzODczODBFMDE4MDM4MUMwMEMwNDgxM0UwQTI0ODEzRjAxMgotRjBBNDM4RTAwMUUwQTIxNEMwMTMwMzAwRjAxMzgwMzg3MDA3MDBFQTM4MEU2QzVBRUEwN0UwMTQxNDdEOTMxNz5JPEVCRTMKLUUwMzgwN0VDMzgzODAxRjAxQzZDNDg3RTE0MEY0ODQ4N0UxNTgwQTUzOTAzODAwRjAwQTIxNDBFMTQxRTE0MUM1QzM4MDc0MAotNzBFQjYxQzAwMTFGQzdGQzkwQzhGQ0EzMTIwRUE0MTIxRUVBRkZDMDE5MUQ4MDkzMTk+STxFQkZDMjAzODAzODI2MEVBMDcKLTAyMzgxRTAxRTAxMjNDMDAzODEzQzAxMjc4MTJGMEE0MzhFMDAzODBBMjEyRjBBMjEzMDcxMjcwMzgzODBGMDBFQTFDMzdFQQotMDdDN0VBMDAwN0EzMTMwRUE0MTMxRUVCRkZDMDEzMUQ3RDkzMTg+STxFQTAzOEUzODFGQjM4MEVBMDdDNzEyMDNFQjgzMDAKLUVBMDc4MDkwQzdGQ0E1MTIwRUE2NUExMjFFRUFGRkMwMTExNDdFOTMxMj5JPEVBMDFGOUVBMDYwN0VBMDgwMzEyMTgxMzAxCi1FQTM4MDJFQTNDMDAxMjFGMTNGMEVBMDdGQ0VBMDFGRUVBMDAxRkVBNDAwNzEzMDNBMjEyNjAxMzA2RUFGMDA0RUFDODE4RUEKLTg3RTAxMDE0N0Y5MzEyPkk8MTM4MEVBMDEwMEEzNUE1QTVBMTIxRUVBRkZGOEVBMEUwMEE0NUFBNjVBMTMxMEE0MTMyMEEyCi1FQTE4NDBFQTBGODAwRDFDN0M5QjEyPkk8MzgxQzAzODBFQUZDMUZFQTNDMDdFQTFDMDNBMjM4MzgwNzAwQTZFQTcwMEVBNAotMTMxRUEyNUJFQTMwNUUzODFGOUY4MDExMTQ3QjkzMTk+STwzOEZGODNGODM4MUUwMEUwMDAxQzEzQzAxNDgwMTIxRTM4MEUKLTAxMDA1QjEzMDI1QjEyMDc1QkEyNUJFQTAzOTAxM0EwMTNFMDVCNUIxMjAxOTBDN0ZDMTUxNDdDOTMxOD5JPDM4MUZGMEZGCi0zODAzQzA3ODAwMDExMzcwMTQ0MDM4MDBFMEMwRUJFMTgwRUI3MzAwMTM3NjEzM0NBMjEzMUMxMzJFMTM0RTEzODdFQTAxMDcKLTM4MDIwMzgwMTIwNDM4MEMwMUMwMzgzQzAzRTAzOEZFMDdGQzE4MTQ3RjkzMTg+MTIwIEQ8MzkwRkY4M0Y4MDM5MDFFMDBFCi0wMEVCQzAwQzE0MDgxM0UwMDAwMDVCMTQzMDE0MjA1QzEzNzA1Q0EyMDE3MUM3RkMxMzM5MTMzQTEzM0UxMzNDMTMzODEzMTgKLTEzMTBBMjVCQTI1QkVBNzBDMEVBRjA4MDAwRjFDOEZDMTJFNjEyNzgxOTFEODA5MzE4PkkKLUUKLSVFbmREVklQU0JpdG1hcEZvbnQKLSVEVklQU0JpdG1hcEZvbnQ6IEZkIGNtdGkxMCAxMC45NSA4Ci0vRmQgOCAxMTcgZGY8RUMzRkUwRUNFMDEwOTAzODAxODAzODAxMDMxMzc4QTI5MDM4MDcwMDMwMTUwMEEzMTMwRUEzOTBCNQotMTJFMEVCMEUwMDkwMzgxQzAxQzBBNEVDMDM4MDEzMzhBM0VDMDcwMEEyMTM3ODAxNzAxMzEwRUMwRTIwQTMxMzYwOTAzOEUwCi0wNjQwRUMwMzgwOTFDN0ZDNUJBMjEyMDFFQTMxODAxMjc5NDhDOEZDMTI2MjEyM0MxRDI5ODI5RjFBPjEyCi1EPDEyNzAxMkY4QTIxMkYwMTJFMDA1MDU3Qjg0MEU+NDYgRDxFQjNDNjBFQkUyNzAzODAxQzFFMEVBMDM4MEVBMDcwMDVBMzgKLTBFMDFDMDEyMUVBMzM4M0MwMzgwQTRFQjA3MDBBMkVBMUMwRjEzMTdFQTBDMkVFQTAzQ0VFQTAwMEVBMjVCQTIxMjMwRUE3OAotMzg0ODVBRUE2MEUwRUEzRjgwMTQxRDdFOTMxNT4xMDMgRDwxM0MwRUEwMUUwQTIxM0MwQzdGQ0E3MTIwRTEyMTMxMjIzRUEKLTQzODBFQTQ3MDBBMjEyODcxMjBFQTM1QUEzRUEzODQwMTM4MEEyMTI3MEVBMzEwMDEyMzIxMjFDMEIxRjdDOUUwRT4xMDUKLUQ8MzgxQzBGODAzODI2MzBDMDM4NDc0MDYwMTM4MEVCMDA3MEEyMDA4RTEzRTAxMjBFQTMzODFDMDFDMEEzRUIwMzg0MDAzOAotMTM4OEEyRUIwNzA4RUIwMzEwMDA3MDEzMzAzODMwMDFDMDE2MTQ3QzkzMUE+MTEwIEQ8RUExQzFFRUEyNjYxMzgyNzgzODAKLUVBNDc4NzEzMDdFQjAzMDAwMDhFQzdGQzEyMEVBMzVBQTQ1QUE0NUExMjMwMTExNDdDOTMxMz4xMTQKLUQ8MTNGQ0VBMDMwMkVBMDYwMUVBMEMwMzEzMDcxMzA2MTMwMEVBMEY4MDEzRjBFQTA3RjhFQTAzRkNFQTAwM0UxMzBFMTI3MAotRUFGMDBDQTJFQUUwMDhFQTQwMTBFQTIwNjBFQTFGODAxMDE0N0Q5MzEzPkk8RUEwMTgwMTNDMEVBMDM4MEE0RUEwNzAwQTIKLUVBRkZGMEVBMDcwMDEyMEVBNDVBQTQ1QUEzMTMyMEVBNzA0MEEyMTM4MEEyRUEzMTAwMTIxRTBDMUM3QzlCMEY+SQotRQotJUVuZERWSVBTQml0bWFwRm9udAotJURWSVBTQml0bWFwRm9udDogRmUgY21yOCA4IDI2Ci0vRmUgMjYgMTE4IGRmPDEyNjAxMkYwQTIxMjcwMTIxMEEyMTIyMEEyMTI0MEEyMDQwQTdEOTYwQT4zOQotRDxFQUZGODBBMjA5MDI4MDg3MEM+NDUgRDwxMjA2MTIwRTEyRkUxMjBFQjFFQUZGRTAwQjE1N0Q5NDEyPjQ5Ci1EPDEzMTAxMzM4QTMxMzVDQTMxMzhFQTNFQTAxMDdBMjM4MDIwMzgwQTMzODA3RkZDMEVBMDQwMUEyMzgwODAwRTBBMjAwMTgKLTEzRjAxMjM4MzhGRTAzRkUxNzE3N0Y5NjFBPjY1IEQ8RUFGRkZFMzgxQzAzODBFQjAwRTAxNDYwMTQ3MEE0MTRFMEVCMDFDMAotMzgxRkZGODAxNEMwMzgxQzAwRTAxNDcwMTQzMDE0MzhBNDE0NzAxNEUwRUIwMUMwQjUxMjAwMTUxNzdGOTYxOT5JPEVCRkMKLTEwMzgwMzgzMzAzODBFMDBCMDQ4MTM3MDQ4MTMzMDEyMzAwMDcwMTMxMDEyNjAxMkUwMTQwMEE1MTQxMDEyNjAxMjcwMDAzMAotMTMyMDEyMzg2QzEzNDA2QzEzODAzODAzODMwMEVBMDBGQzE0MTc3RTk2MTk+STxCNUZDMzgxQzAxQzBFQjAwRTAxNDMwMTQKLTM4MTQxODE0MUMxNDBDMTQwRUE3MTQwQzE0MUNBMjE0MzgxNDMwMTQ2MEVCMDFDMEI1MTIwMDE3MTc3Rjk2MUI+STxCNTEyCi1FMEVBMUMwMDE0NjAxNDIwMTQxMEEzRUIwNDAwQTMxMzBDRUExRkZDRUExQzBDMTMwNDE0MDhBMjEzMDAxNDE4MTQxMEEyMTQKLTMwMTRGMEI1RkMxNTE3N0Y5NjE4Pkk8QjUxMkUwRUExQzAwMTQ2MDE0MjAxNDEwQTNFQjA0MDBBMzEzMENFQTFGRkNFQTFDCi0wQzEzMDRBMzkwQzdGQ0E2RUFGRkMwMTQxNzdGOTYxNz5JPEVBRkZDMDAwMUNDN0ZDQUQxNDIwQTMxNDYwQTIxNDQwMTRDMAotMTMwM0I1RkMxMzE3N0Y5NjE2Pjc2IEQ8RUFGRkZFMzgxQzAzODBFQjAwQzAxNDYwMTQ3MEE0MTQ2MDE0QzBFQjAzODAzODFGCi1GRTAwMDAxQ0M3RkNBQUI0N0UxNDE3N0Y5NjE4PjgwIEQ8RUFGRkZDMzgxQzAzODBFQjAwQzAxNEUwMTQ3MEE0MTRFMDE0QzAKLUVCMDM4MDM4MUZGRTAwMzgxQzA3ODBFQjAxQzBFQjAwRTBBNTE0RTFBMjE0NzIzOEZGODAzQzE4MTc3Rjk2MUE+ODIKLUQ8RUEwRkM0RUEzMDJDRUE2MDFDRUE0MDBDRUFDMDA0QTNFQUUwMDAxMjcwMTI3RkVBM0ZFMEVBMEZGOEVBMDFGQ0VBMDAxQwotMTMwRTEzMDYxMjgwQTNFQUMwMDRFQUUwMDhFQUQ4MTBFQTg3RTAwRjE3N0U5NjE0Pkk8Mzg3RkZGRjgzODYwMzgxODAwNDAKLTEzMDhBMjAwODAxMzA0QTMwMDAwMTMwMEFGMzgwM0ZGODAxNjE3N0Y5NjE5Pkk8MTJGQ0EyMTJDMEIzQUIxMkZDQTIwNjIxCi03RDk4MEE+OTEgRDxFQTNGQzBFQTcwNjAxMzMwRUEyMDM4MTIwMEVBMDNGOEVBMUUzODEyMzAxMjcwRUFFMDM5QTIxMzc5RUEKLTcwRkZFQTFGMUUxMDBFN0Y4RDEyPjk3IEQ8RUEwN0YwRUExODM4MTIzMEVBNzAxMEVBNjAwMDEyRTBBNDEyNjBFQTcwMDgxMgotMzBFQTE4MzBFQTA3QzAwRDBFN0Y4RDEwPjk5IEQ8RUEwRkMwRUExODYwRUEzMDMwRUE3MDM4RUFFMDE4RUFGRkY4RUFFMDAwCi1BMzEyNjBFQTcwMDhFQTMwMTBFQTE4MzBFQTA3QzAwRDBFN0Y4RDEwPjEwMSBEPDEyMDNFQTA3ODBBMkVBMDMwMEM3RkNBNQotRUExRjgwMTIwM0FGMTI0M0VBRTMwMDEyRTcxMjdDMDkxRDgyOTYwQj4xMDYgRDwxMkY4MTIzOEE4MTMzRTEzMzgxMzMwMTMKLTQwMTM4MDEyMzlFQTNGQzBFQTM5RTAxMjM4MTNGMDEzNzgxMzNDQTJFQUZFN0YxMDE3N0Y5NjEzPkk8RUFGOEY4RUEzQjFDCi1FQTNDMEUxMjM4QUEzOEZFM0Y4MDExMEU3RjhEMTQ+MTEwIEQ8RUFGOUYwRUEzRTFDRUEzODA2MTMwNzdGMTQ4MEE0MTQwMAotNUIxMzBFRUEzRTFDRUEzOUYwMDAzOEM3RkNBNTEyRkUxMTE0N0Y4RDE0PjExMiBEPEVBRjlFMEVBM0E3MDEyM0NFQTM4MjAKLTEzMDBBOUI0RkMwQzBFN0Y4RDBFPjExNCBEPEVBMUY0MEVBNjBDMEVBQzA0MEEyRUFFMDAwQjRGQ0VBN0Y4MEVBMUZDMEVBCi0wMUUwRUE4MDYwQTIxMkMwRUFFMEMwRUE5RjAwMEIwRTdGOEQwRT5JPDEyMDhBMzEyMThBMjEyMzhFQUZGQzBFQTM4MDBBNwotMTM0MEE0RUExQzgwRUEwRjAwMEExNDdGOTMwRT5JPEVBRjgzRUVBMzgwRUFBMTMxRUVBMUMyRTM4MDdDRjgwMTEwRTdGOEQKLTE0PkkgRQotJUVuZERWSVBTQml0bWFwRm9udAotJURWSVBTQml0bWFwRm9udDogRmYgY21zeTkgOSAyCi0vRmYgMiAxMDYgZGY8MTM4MDEyMDFFQTAzMDBBMzEyMDZBMjVBQTM1QUEzNUFBMjVBQTM1QUEyMTI2MEEzN0VBMjdFQTM3RQotQTM3RUEyN0VBM0VBMDE4MDEyMDAwOTI2N0Q5QjBGPjEwNCBEPDEyQzBBMjEyNjBBMzdFQTI3RUEzN0VBMzdFQTI3RUEzRUEKLTAxODBBMkVBMDMwMEEzMTIwNkEyNUFBMzVBQTM1QUEyNUFBMzVBQTIwOTI2N0U5QjBGPkkKLUUKLSVFbmREVklQU0JpdG1hcEZvbnQKLSVEVklQU0JpdG1hcEZvbnQ6IEZnIGNtc2x0dDEwIDEwLjk1IDI5Ci0vRmcgMjkgMTIyIGRmPDEyMDYxMjBGRUExRjgwMTIwRkEyMTIwM0VBMDcwMEEyNUExMjBFMTIzQzEyN0MxMkYwMTI2MDA5MEUKLTc2OUIxOD4zOSBEPDM4N0ZGRkMwQjUxMkUwQTI2QzEzQzAxMzA0N0M4RjE4PjQ1IEQ8MTMzRTEzRkYwMDAzMTM4MDM4MDdDMwotQzBFQTBGMDEwMDBFMTNFMEVBMUMwMDEyM0MwMDM4MTNGMDE0NzA1QUEzNDgxM0UwQTRFQjAxQzBBMjEzMDMwMEYwMTM4MEVBCi03MDA3RUIwRjAwRUE3ODFFNkM1QUVBMUZGODVCRUEwN0MwMTQxQzdDOUIxOD40OCBEPDEzMTgxMzM4QTIxMzc4MTNGODEyMDMKLTEyMEYxMzcwMTIwNDEyMDBBNDEzRTBBNkVBMDFDMEE2RUE3RkZFMTJGRjEyN0YwRjFDN0I5QjE4Pkk8RUIzRTE4RUJGRkI4Ci00ODEzRjhFQTA3QzFFQjgwNzhFQTBFMDAxMjFFMDAxQzEzNzA0ODEzMzAxNDAwNUFBMzVBQTYxNEMwRUE3MDAxQTIxMzAzMzgKLTM4MDc4MDM4M0MwRjAwRUExRkZFNkM1QUVBMDNGMDE1MUM3QzlCMTg+NjcgRDwzODA3RkZDMDE0RTAxNEYwMzgwMUMwRjgxNAotNzgxNDNDMTQxQ0VBMDM4MDE0MUVBMjE0MEVBMzM4MDcwMDFDQTQxNDNDMTQzODEyMEUxNDcwMTRGMEVCMDFFMEVCMDNDMDEzCi0wNzM4N0ZGRjgwMzhGRkZFMDBFQTdGRjgxNzFDN0Y5QjE4Pkk8MDAwN0I1RkM1QTdFMzgwMUMwMDdBMzE0MDYzODAzODAwMAotQTJFQjgxODAxNEMwQTIxM0ZGNDgxMzgwQTIxMzAzQTIxNDAwOTBDN0ZDMTIwRTE0MEMxNDFDQTQzODdGRkZGOEI1RkM3RTE4Ci0xQzdGOUIxOD5JPEVCMUZGOEVCM0ZGQ0VCMUZGOEVCMDFDMEE0RUIwMzgwQTZFQjA3MDBBNjEzMEVBMjEyNDAxMkUwNkM1QQotRUFFMDNDRUFGRkY4NkM1QUVBMUZDMDE2MUM3QzlCMTg+NzQgRDxFQTA3RkM0ODdFNkM1QUVBMDFDMEE0NDg1QUE2NDhDN0ZDCi1BNjEyMEUxNDMwMTQ3MEE0QjUxMkUwQTMxNDFDN0U5QjE4Pjc2IEQ8MzkwN0UwMUY4MDAwMEZFQjNGQzAwMDA3MTQ4MDM5MDMKLUIwMkUwMDE0NkVBMjE0Q0UzODA3MzBEQzEzMzExNDlDQTIxMzMzMTQxQzAwMEU1QjEzMzcxMzM2MTMzRTEzM0MxMzE4NDhDNgotNUFBNjM4RkUwM0Y4MDBGRjdGMDBGRTVCMUExQzdGOUIxOD5JPDEyNjAxMkYwQTM3RTEyNzhBMzEyN0MxMjNDQTMxMjNFMTIKLTFFQTMxMjFGN0VBMzEzODAxMjA3QTMxM0MwMTIwM0E0MTNFMDEyMDFBMzEzRjAxMjAwMTM2MDBDMjQ3ODlGMTg+OTIKLUQ8Mzg3RkZGQzBCNTEyRTBBMjZDMTNDMDEzMDQ3RTdGMTg+OTUgRDxFQTAzRkM0OEI0RkM0ODEzODAxMzAzMzgwNjAxQzAxMgotMDBBMjEzN0ZFQTA3RkYxMjFGRUEzRjgxMzg3ODAzODAxMkYwMTJFMEEyMTMwN0VBNzAxRjM4N0ZGRkYwRUEzRkZCRUEwRkUxCi0xNDE0N0Q5MzE4Pjk3IEQ8MTI3RUEzMTIwRUE0NUExMzdDRUExREZGMDAxRjEzODAxMzgzMzgxRTAxQzAxMjNDRUIwMEUwMTIKLTM4QTQzODc4MDFDMEEyRUIwMzgwQTJFQjBGMDBFQTdDMUZFQUZGRkNFQUVGRjhFQTYzRTAxMzFDN0M5QjE4Pkk8RUIwN0UwCi1BMzEzMDBBNEVCMDFDMEVBMDFGMUVBMDdGREVBMEZGRkVBMUUwRkVBM0MwNzM4NzgwMzgwMTI3MDEyRTBBNEVCMDcwMEEyNUIKLTVCNkM1QUVBNzg3RjM4M0ZGRkMwMzgxRkVGRTAzODBGODdDMDEzMUM3QzlCMTg+MTAwIEQ8MTNGOEVBMDdGRTQ4N0UzODFGCi0wNzgwRUEzQzAzMzg3ODAxQzAxMjcwMTJFMEEyQjVGQ0EyMTQ4MDAwRTBDN0ZDQTIxMzAzMzg3MDA3ODAzODc4MEYwMEVBM0YKLUZFNkM1QUVBMDdGMDEyMTQ3QjkzMTg+STxFQjAxRjhFQjA3RkMxMzFGRUIxRTNDRUIzODE4MTQwMEEyNUIzODFGRkZGMDVBCi03RTM4MDA3MDAwQTI1QkE2NDg1QUE2RUE3RkZFMTJGRjEyN0YxNjFDN0U5QjE4Pkk8RUIxRTFGOTAzODdGRkY4MDkwQjVGQwotMzkwMUUxRTMwMDM4MDNDMEUwMTM4MEVBMDcwMEEzNDk1QUEyMzgwMzg3ODBFQTA3RkY0OUM3RkNFQTBFNzg5MEM4RkNBMjZDCi1CNDdFNDgxM0UwNDg3RjM4M0MwMDc4NDgxMzM4MTI3MDVBQTIxNDc4MDA3MDVCMzg3QzAzRTAzODNGRkZDMDAwMEY5MEM3RkMKLUVBMDNGQzE5MUY4MDkzMTg+STwxNEMwRUIwMUUwMTMwMzEzMDFFQjAwQzAxNDAwQTRFQkZGQzBBMzEzMDFBMkVCMDM4MEE2Ci1FQjA3MDBBNjEzMEVBNjVCQTJFQTYwMzhFQUYwNzhCNDVBNUJFQTNGODAxMzI3N0Y5QzE4PjEwNgotRDxFQTA3RTAxMjBGMTIwNzEyMDBBNDQ4NUFFQkM3RkVBM0VCQzFFMEVCQzNDMDM4MDM4NzgwRUI4RjAwMTM5RTEzQkMxM0ZFCi0xM0VFRUEwN0NGMTM4N0VCMDc4MDEzMDMxNEMwMTMwMTM4N0ZDN0Y4MzhGRkU3RkMzODdGQzdGODE3MUM3RjlCMTg+STxFQQotMEZGQ0EzRUEwMDFDQTQ1QkE2NUJBNjVCQTZCNTEyODAxNEMwMTQ4MDEyMUM3RDlCMTg+STwxM0ZDRUEwM0ZGMDAwRjEzODAKLUVBMUYwNzM4M0MwM0MwRUE3ODAxMDA3MDEzRTBFQUUwMDBBNEVCMDFDMEEyRUIwMzgwRUFGMDA3RUIwRjAwRUE3QzNFRUEzRgotRkM2QzVBRUEwN0UwMTMxNDdDOTMxOD4xMTEgRDxFQkY4QzBFQTAzRkRFQTBGRkZFQTFGMEZFQTNDMDczODc4MDM4MDEyNzAKLTEyRTBBNEVCMDcwMEEyNUJBMjZDNUFFQTc4N0ZFQTNGRkVFQTFGRUVFQTA3OEVFQTAwMEVBMzVCQTQzODAxRkY4MEEzMTIxRQotN0M5MzE4PjExMyBEPDM4MUZFMUY4RUJFN0ZDRUJFRkZFMzgwMEZFMUVFQkZDMEMzODAxRjgwMDVCNUI1QkEzNDg1QUE2RUEKLUZGRkM3RjVCMTcxNDdFOTMxOD5JPEVCRkU2MDM4MDdGRkUwNUFFQTFGMDExMjFDMDAzODEzQzBFQTNDMDAwMDFGMTMwMEVBCi0wRkY4RUEwN0ZFMzgwMEZGODAxMzA3MzgzMDAxQzAxMjcwQTIzODc4MDM4MEVBN0MwN0I1MTIwMEVBRUZGRUVBNjNGODEzMTQKLTdEOTMxOD5JPDM4N0UwN0UwRUFGRTBGRUE3RTA3RUEwRTAwQTIzODFDMDFDMEE2MzgzODAzODBBNDEzMDcxMzFGMzgzRkZGCi1FMDZDMTNGMDM4MDdFM0UwMTQxNDdEOTMxOD4xMTcgRDwzOEZGODdGODEzOEYxMzg3MzgzODAwRTBFQjAxQzBBMzE0ODAxMwotRTNFQTM5RjMxMjMzRUI3NzAwQTIxMjM3MTM3NkVBMzY2NjEzNkVFQTNDN0NBMkVBMzgzODE1MTQ3QzkzMTg+MTE5Ci1EPDM4MUZFM0ZDMTNFNzEzRTMzODAzQzNDMDAwMDExMzgwRUJFNzAwRUEwMEVFMTNGQzEzN0MxMzM4MTM3ODEzRkNFQTAxREMKLUVBMDM4RTEyMDcxMzA3MTIwRTM4RkYxRkUwRUI5RkYwRUIxRkUwMTYxNDdFOTMxOD5JPDM4MEZGMUZFMzgxRkY5RkYzODBGCi1GMUZFMzgwMzgwNzAxM0MwMDAwMTEzRTBBMjEzQzExNEMwQTIzODAwRTM4MEEyRUJFNzAwQTIxM0U2MTM2RTEzNkMxMzdDMTMKLTc4QTIxMzcwQTI1QkEyNDg1QTEyRjNFQUY3ODBCNEM3RkM1QTEyNzgxODFFN0Y5MzE4PkkKLUUKLSVFbmREVklQU0JpdG1hcEZvbnQKLSVEVklQU0JpdG1hcEZvbnQ6IEZoIGNtY3NjMTAgMTAuOTUgMTIKLS9GaCAxMiAxMjEgZGY8MTMxOEEyMTMzQ0EzMTM0RUEyMTNDRjEzODdBMjM4MDEwMzgwQTIwMDAzMTNDMEVBMDIwMUEyMzgwNwotRkZFMEVBMDQwMEEyNDgxMzcwQTIwMDE4MTMzODAwMzgxMzc4MzhGRTAxRkYxODE3N0Y5NjFDPjk3Ci1EPEVCN0UwODM4MDM4MTk4MzgwNzAwNzgwMDBDMTMzODAwMUMxMzE4NUEwMDc4MTMwODEyNzAwMEYwMTMwMEE3MDA3MDEzMDgKLTEyNzgxMjM4NkMxMzEwMTIwQzAwMDcxMzYwMzgwMzgxODAzODAwN0UwMDE1MTc3RTk2MUI+OTkKLUQ8QjUxMkMwRUExQzAxMTMwMDE0NDAxNDYwMTQyMEEyMTMwODE0MDBBMjEzMThFQTFGRjhFQTFDMTgxMzA4MTQxMEEyMTMwMAotMTQzMDE0MjBBMjE0NjBFQjAxRTBCNUZDMTQxNzdFOTYxOT4xMDEgRDxCNTEyQzBFQTFDMDExMzAwMTQ0MDE0NjAxNDIwQTIKLTEzMDgxNDAwQTIxMzE4RUExRkY4RUExQzE4MTMwOEEzOTBDN0ZDQTZFQUZGQzAxMzE3N0U5NjE4Pkk8RUI3RTA4MzgwMzgxCi05ODM4MDcwMDc4MDAwQzEzMzgwMDFDMTMxODVBMDA3ODEzMDgxMjcwMDBGMDEzMDBBNUVCMDNGRUVCMDAzODEyNzAxMjc4MTIKLTM4N0UxMjBDMTIwNzM4MDM4MEQ4MzgwMDdGMDgxNzE3N0U5NjFEPkk8RUFGRjgwRUExQzAwQjNBM0VBRkY4MDA5MTc3RTk2Ci0wRT4xMDUgRDwzOEZDMDFGQzM4MUUwMDcwMTQyMDEyMTdFQTEzODBBMkVBMTFDMEVBMTBFMEEyMTM3MDEzMzhBMjEzMUMxMwotMEUxMzA3QTJFQjAzQTBFQjAxRTBBMjEzMDAxNDYwMTIzODAwRkUxMzIwMTYxNzdFOTYxQz4xMTAKLUQ8MTNGRTM4MDM4MzgwMzgwRTAwRTA0ODEzNzAwMDNDMTM3ODAwMzgxMzM4MDA3ODEzM0MwMDcwMTMxQzAwRjAxMzFFQTcwMAotNzAxMzFDMDA3ODEzM0MwMDM4MTMzODAwM0MxMzc4MDAxQzEzNzA2QzEzRTAzODAzODM4MDM4MDBGRTAwMTcxNzdFOTYxRD4KLUk8RUFGRkZDRUExQzA3RUIwM0MwMTMwMTE0RTBBNDE0QzAxMzAzRUIwNzAwRUExRkZDMDAxQ0M3RkNBQUI0N0UxMzE3N0U5NgotMTk+STxFQTBGQzRFQTMwMkNFQTYwMUNFQTQwMENFQUMwMDRBM0VBRTAwMDEyNzAxMjdGRUEzRkUwRUEwRkY4RUEwMUZDRUEKLTAwMUMxMzBFMTMwNjEyODBBM0VBQzAwNEVBRTAwOEVBRDgxMEVBODdFMDBGMTc3RTk2MTU+MTE1Ci1EPDM4RkY4MUZDMzgxQzAwNzAxNDIwQjAwMDBDMTM0MDEyMEU2QzEzODAzODAxODMwMEVBMDA3QzE2MTc3RTk2MUM+MTE3Ci1EPDM4RkY4MEZFMzgxRjAwNzAwMDBFMTM2MDZDMTM0MEVCODA4MDM4MDNDMTAwRUEwMUMzRUEwMEUyMTNGNDEzNzgxMzM4N0YKLTEzM0UxMzRFMTNDN0VCODc4MDM4MDEwM0MwRUEwMjAxMzgwNjAwRTAwMDA0MTNGMDAwMEMxMzcwMDAzQzEzNzgwMEZFMTNGRgotMTgxNzdGOTYxQz4xMjAgRCBFCi0lRW5kRFZJUFNCaXRtYXBGb250Ci0lRFZJUFNCaXRtYXBGb250OiBGaSBjbWJ4MTIgMTcuMjggMTgKLS9GaSAxOCAxMTcgZGY8RUIwMUMwMTMwMzEzMEYxMzdGRUExRkZGQjVGQzEzQkZFQUUwM0YxMjAwQjNCMTAwN0ZCNTEyRjBBMwotMUMyRTdBQUQyOD40OSBEPDkxM0EwM0ZGODAwMTgwMDIzRkVCRjAwMzQ5QjVFQUZDMDcwMTA3OTAzODAwM0YwRkQ5MUZGOEVCCi0wNzlGRDkzRkMwRUIwMUZGRDlGRjgwN0Y0ODQ4QzgxMjdGNDg0ODE1M0YwMDA3MTYxRjQ5MTUwRjQ4NUEwMDFGMTYwN0EyNDgKLTVBMTcwMzEyN0ZBMjQ5OTJDN0ZDQTIxMkZGQTkxMjdGQTI3RkVGMDM4MDEyM0ZBMjZDN0UxNzA3MDAwRjE3MDA2QzdFNkQxNQotMEUwMDAzMTYxRTZDNkMxNTFDNkM2QzZDMTQ3OEQ5M0ZDMDVDRDkxRkY4RUIwM0UwRDkwN0ZGRUIzRjgwMDEwMUQ5RkZGRUM3Ci1GQ0Q5MDAzRjEzRjgwMjAzMTM4MDMxMzE3Q0IwM0E+NjcgRDxCODEyRjBBM0M2OTAzODgwMDAzRkVFMDdGODE2MDMxNjAwQTIKLTE3NzhBMjE3MzhBMzE3MUMxNTA3QTMxNzAwQTI1RDVENUQ5MUI1RkNBM0VDODAzRjgxODE4MUEyMTcwN0EzOTJDNzEyMEVBNAotMTcxRUEyMTczQ0EyMTc3QzE3RkMxNjAxMTYwNzE2M0ZCODEyRjhBMzMwMzE3RUIwMzU+NjkKLUQ8QjY3RUEzMDAwMTkwQzlGQ0IzQTlFRTAzODBBNDE2MDcxNzAwQTI1RUEzNUU1RTVFNUU0QjVBMTUwRkI3RkNBMzI5MzE3RAotQjAzMD43NiBEPDAwN0ZCOEZDQTM5MDM5QzAwRkY4MDFEODdFMDBFQzAwM0YwMDdDODIwMDc4ODJBMjAwNzA4MjAwRjAxNzgwCi1BMzQ4MTYwM0E1Qzc5MkM3RkNCM0FBMDE3RkI2RkNBMzMxMzA3REFGMzg+ODQgRDxFQkZGRjAwMDAzMTNGRjM5MEY4MDNGODAKLTkwMzhDMDBGRTA0ODZDNkM3RUEyNkU3RUQ4MEZDMDdGRUEwNzgwQzdGQ0E0MTRGRjEzMUZFQkZGRTMzODAzRkMwM0VBMEZGMAotRUExRkMwMTIzRkVBN0Y4MEEyRUFGRjAwQTMxNDA3QTIzODdGODAwRDM5M0ZDMDFERkUzQTFGRTA3OEZGRjAzOTA3RkZFMDdGCi1DNkVCODAzRjI0MjA3RTlGMjc+OTcgRDxFQTAxRjgxMkZGQTMxMjBGMTIwN0FERUMzRkUwRUNGRkZDOTAzOEZCRTA3RjkwMzkKLUZGMDAxRjgwNDlFQjBGQzA0OTE0RTA0OUVCMDdGMDE2RjhBMkVEMDNGQ0EzMTZGRUE4MTZGQ0EzRUQwN0Y4QTIxNkYwNkRFQgotMEZFMDZEMTRDMDAxRTdFQjNGODA5MDM5QzNDMEZFMDA5MDM4ODBGRkY4OTAzODAwM0ZDMDI3MzI3RUIxMkQ+STxFRDBGQzAKLUVDMDdGRkEzRUMwMDdGMTUzRkFERUIwN0Y4RUIzRkZGOTAzOEZFMDdCRjM5MDNGODAxRkYzOTA3RTAwMDdGMTIwRjQ4NDgxMwotM0YxMjNGQTI0ODVBQTMxMkZGQTgxMjdGQTM2QzdFQTIxMjFGNkM2QzEzN0YwMDA3MTRGRjI2MDNGMDAzMTNFMDNBMDFGQzBGCi0zRkZFMzgwMDdGRkVFQjBGRjAyNzMyN0RCMTJEPjEwMCBEPEVCMEZGQzkwMzg3RkZGODAzOTAxRkMwRkMwMzkwM0YwMDNFMAotMzkwN0UwMDFGMDAwMEYxNEY4MzkxRkMwMDBGQzAwM0YxNEZFQTI0ODQ4MTM3RTE1N0ZBMjEyRkZBMjkwQjZGQ0EyMDE4MEM3Ci1GQ0E0MTI3RkEzNkM2QzEzMDcxMjFGMTUwRTZDN0U2QzZDMTMxQzZDNkMxMzc4MzkwMEZFMDNFMDkwMzgzRkZGQzA5MDM4MDcKLUZFMDAyMDIwN0U5RjI1Pkk8RUIwMUZFOTAzODBGRkY4MDkwMzgxRkMzQzA5MDM4N0YwN0UwOTAzOEZFMEZGMDEyMDExM0ZDCi0xMjAzRUMwN0UwRUMwMTgwOTFDN0ZDQThCNTEyRkNBM0Q4MDNGQ0M3RkNCM0E4Mzg3RkZGRjBBMzFDMzI3RUIxMTk+STw5MAotMzkxRkYwMDdDMDkwMzlGRkZFM0ZFMDNBMDFGODNGNzlGMDM5MDdFMDBGQzMwMDBGMTRFMTkwMzlDMDA3RTBFMDAwMUZFQ0YwCi0wMEEyMDAzRjgwQTUwMDFGNUNBMjAwMEY1Q0VCRTAwRjAwMDc1QzI2MDNGODNGQzdGQzM4MDZGRkZFMzgwRTFGRjA5MEM5RkMKLTEyMUVBMjEyMUY3RjkwQjU3RTZDMTRGMDE1RkM2QzgwNkM4MDE2ODAwMDBGMTVDMDAwM0ZDNzEyN0YwMDdFRUMxRkUwMDA3QwotMTQwRjAwRkMxNDA3QTQwMDdFRUMwRkMwMDAzRTE1ODAwMDNGMTQxRkQ4MEZDMEVCN0UwMDM5MDdGODAzRkMwMDAxQjUxMkYwCi1EODAwMUY5MEM3RkMyNDJGN0U5RjI4Pkk8RUEwM0MwNDg3RTQ4N0U0ODdFQTQ2QzVBNkM1QTZDNUFDOEZDQTlFQTAxRjgxMgotN0ZBMzEyMDdCM0E3QjUxMjgwQTMxMTMzN0RCMjE3PjEwNSBEPEVBMDFGODEyRkZBMzEyMEYxMjA3QjNCM0E2QjUxMkMwQTMKLTEyMzI3REIxMTc+MTA4IEQ8MjcwM0YwMDdGOEVCMUZFMDAwRkZEOTNGRkVFQkZGRjg5MTNBNzgzRjAxRTBGQzAyQzA5MDM4Ci04MzAwRkUyODBGRjE4MDFGQzYxMzdGMjYwN0YzMDAxM0NDMDFGNjAyRjgxNDgwMDFGQzVDQTM0OTVDQjNCNTAwQzNCNTM4MEYKLUZGRkNBMzNFMjA3RDlGNDM+STwzOTAzRjAwN0Y4MDBGRkVCM0ZGRUVDNzgzRjAyQzAxMzgwM0EwRkYxODAxRkMwMzgwN0YzCi0wMDAxRjYxNEUwMTNGQ0EzNUJCM0I1MDBDM0I1RkNBMzI4MjA3RDlGMkQ+STxFQjA3RkM5MDM4N0ZGRkMwMzkwMUZDMDdGMAotMzkwM0YwMDFGODQ4NDg2QzdFNDg0ODEzN0UwMDFGMTQ3RjAwM0YxNTgwNDkxMzNGMDA3RjE1QzBBMzAwRkYxNUUwQTgwMDdGCi0xNUMwQTM2QzZDRUI3RjgwQTIwMDFGMTUwMDZDNkMxM0ZFMDAwNzVDMzkwM0Y4MDNGODM5MDFGRTBGRjAzOTAwN0ZGRkMwRDkKLTA3RkNDN0ZDMjMyMDdFOUYyOD5JPDM4MDFGRjg2MDAwNzEzRkVFQTFGMDAwMDNDMTMzRTQ4MTMxRTE0MEUxMkY4QTM2QzkwCi1DN0ZDQjQ3RTEzRkMzODdGRkZDMDZDMTNGMDgwNkM3RjAwMDc3RjAwMDE3RkVBMDAzRjAxMDAxMzgwMTQzRjAwNjAxMzFGMDAKLUUwMTMwRkEyN0UxNTAwN0U2QzEzMUU2QzEzMUMzOEZGODA3ODM4RjNGRkYwMzhDMDdGODAxOTIwN0Q5RjIwPjExNQotRDwxMzFDQTUxMzNDQTMxMzdDQTIxM0ZDMTIwMTEyMDMxMjA3MzgxRkZGRkVCNUZDQTJEODAzRkNDN0ZDQjBFQzAzODBBNzEyCi0wMUVDMDcwMEVBMDBGRUVCN0YwRUVCM0ZGQ0VCMDdGMDE5MkU3RkFEMUY+SSBFCi0lRW5kRFZJUFNCaXRtYXBGb250Ci0lRFZJUFNCaXRtYXBGb250OiBGaiBjbXN5MTAgMTAuOTUgMQotL0ZqIDEgMTQgZGY8MTRGRTkwMzgwN0ZGQzA5MDM4MUYwMUYwOTAzODc4MDAzQzAxRTAxMzBFRDgwMTgwMTMwMzQ4QzdFQTAxCi04MDAwMDZFQzAwQzA0ODE1NjBBMjQ4MTUzMDQ4MTUxOEEyNDgxNTBDQTQ0ODE1MDZBOTAwNjAxNTBDQTQ2QzE1MThBMjZDMTUKLTMwNkMxNTYwQTI2QzE1QzA2Q0VDMDE4MDZDNkNFQjAzMDBEODAwRTAxMzBFMDE3ODEzM0M5MDM4MUYwMUYwOTAzODA3RkZDMAotRDkwMEZFQzdGQzI3MkI3REEwMkU+MTMgRCBFCi0lRW5kRFZJUFNCaXRtYXBGb250Ci0lRFZJUFNCaXRtYXBGb250OiBGayBjbWJ4MTIgMTQuNCAzOQotL0ZrIDM5IDEyMiBkZjwxMjNDMTI3RkVBRkY4MEEyMTNDMEEzMTI3RjEyM0UxMjAwQTJFQTAxODBBM0VBMDMwMEEyMTIwNjEyCi0wRTVBNUExMjEwMEExNTdCODgxMz40NCBEPDEyMUMxMjdGQTJFQUZGODBBM0VBN0YwMEEyMTIxQzA5MDk3Qjg4MTM+NDYKLUQ8MTMwRTEzMUUxMzdFRUEwN0ZFMTJGRkEyMTJGODEyMDBCM0FCQjUxMkZFQTMxNzI3N0JBNjIyPjQ5Ci1EPEVCRkY4MDAwMDcxM0YwNDgxM0ZDMzgxRTAzRkUzOTM4MDBGRjgwMDA3QzEzM0YwMEZFMTRDMDZDMTMxRjE1RTAxNDBGQTIKLTEyN0UwMDNDMTMxRkM3RkMxNUMwQTJFQzNGODAxNTAwMTQ3RTVDNUM0OTVBNDk1QUVCMDc4MDQ5QzdGQzEzMUU0OTEzRTAxMwotNzA1QjM5MDFDMDAxQzBFQTAzODBFQTA2MDAwMDBGQjVGQzVBNUE1QUI2MTI4MEEzMUIyNzdEQTYyMj5JPEVCN0Y4MDM4MDMKLUZGRjA0ODEzRkMzODBGODFGRTM4MUYwMDdGRUEzRjgwRUMzRjgwQTMxMjFGMTMwMEM3RUE3RjAwQTIxNDdFNUM0OTVBRUIwNwotRjBFQkZGQzBBMkVCMDFGOEVCMDA3RTgwMTU4MEVDMUZDMEEyMTVFMEEyMTIzQzEyN0VCNEZDQTIxNUMwMTQzRjQ4MTQ4MDAwCi03Q0VCN0YwMDM4M0YwMUZFNkNCNDVBMDAwNzEzRjBDNjEzODAxQjI3N0RBNjIyPkk8MTQwRkEyNUM1QzVDNUM1QkEyRUIwMwotQkZFQjA3M0YxMzBFMTMxQzEzM0MxMzM4MTM3MDEzRTBFQTAxQzBFQTAzODAxMjA3MTMwMDEyMEU1QTVBNUExMkYwQjYxMkY4Ci1BM0M3RUE3RjAwQTg5MDM4MUZGRkY4QTMxRDI3N0VBNjIyPkk8MDAxODEzMDMzODFGODAxRkVCRkZGRTVDNUM1QzE0QzA5MQotQzdGQzAwMUNDOEZDQTdFQjdGQzAzODFERkZGODM4MUY4MEZDMzgxRTAwM0YxMjA4QzdFQTFGODAxNUMwQTIxNUUwQTIxMjE4Ci0xMjdDMTJGRUEzMTVDMDVBMDA3OEVCM0Y4MEEyNkNFQjdGMDAzODFGMDFGRTZDQjQ1QTAwMDMxM0YwQzYxMzgwMUIyNzdEQTYKLTIyPkk8QjYxMkY4MTVGRjE2QzAzQTAzRjgwMDFGRTBFRDBGRjBFRDA3RjgxNTAzMTZGQ0EyMTUwMUEzMTUwMzE2RjhBMkVECi0wN0YwMTUwRkVEMUZDMEVERkY4MDkwQjVFQUZFMDBFREZGQzA5MDM5RjgwMDBGRjBFRDAzRjhFRDAxRkMxNkZFMTUwMEEyMTYKLUZGQTYxNkZFMTUwMUVEMDNGQzE1MDdFRDFGRjhCNzEyRTAxNkMwRURGRTAwMjgyOTdEQTgzMD42NgotRDw5MTM4N0ZFMDAzOTAzOTA3RkZGQzA3MDExRkVCRkYwRjkwMzk3RkYwMEY5RjkwMzlGRjAwMDFGRkQ4MDFGQzdGNDg0ODE0Ci03RjQ4NDgxNDNGNDg0ODE0MUY0ODVBMTYwRjQ4NUExNjA3MTI3RkEyOTBDOUZDNUFBOTdFN0YxNjA3MTIzRkEyNkM3RTE2MEUKLTZDN0U2QzZDMTQxQzZDNkMxNDNDNkM2QzE0Nzg2Q0I0RUIwMUYwOTAzOTdGRjAwN0MwMDExRkI1MTI4MDAxMDdFQkZFMDA5MAotMzgwMDdGRjAyODI5N0NBODMxPkk8QjcxMkUwQTMzOTAzRkMwMDFGRUQwN0YwMTUwMUEyMTUwMDE2NzBBMzkxMzgwMUMwNzgKLTE2MzhBMzAyMDMxMzAwQTIxNDBGOTBCNUZDQTNFQkZDMEYxNDAzQTIwMjAxMTMwRUEzMTYxQzkxQzdGQ0EzMTYzQzE2MzgxNgotNzgxNkY4MTUwMTE1MDMxNTFGQjcxMkYwQTMyNzI5N0VBODJDPjY5IEQ8QjcxMkMwQTMzOTAzRkMwMDNGRUQwRkUwMTUwMzE1Ci0wMUEyMTUwMEEzMTZGMDkxMzgwMUMwNzBBMzE2MDAxNDAzQTIxNDBGOTBCNUZDQTNFQkZDMEYxNDAzQTIxNDAxQTQ5MUM4RkMKLUE5QjUxMkZDQTMyNDI5N0VBODJBPkk8QjUxMkYwQTMzODAzRkMwMEIzQjFCNTEyRjBBMzE0Mjk3RUE4MTk+NzMKLUQ8QjUxMkZDQTNEODAzRkNDOEZDQjNBM0VEMDFDMEE0MTUwMzE2ODBBMjE1MDdBMjE1MEZBMjE1MUYxNTdGOTEzODAxRkYwMAotQjdGQ0EzMjIyOTdFQTgyOD43NiBEPEQ4RkZGRTkyMzgzRkZGODBBMjZENUQwMDAzRUZFMDAwQTJEOUJGODAxNEVGQTJEOTlGCi1DMEVCMDFDRkEyRDk4RkUwRUIwMzhGQTNEOTg3RjBFQjA3MEZBMkQ5ODNGODEzMEVBMkQ5ODFGQzEzMUNBM0Q5ODBGRTEzMzgKLUEyMDI3RjEzNzBBMjkxMzgzRjgwRTBBMzkxMzgxRkMxQzBBMjkxMzgwRkUzODBBMjkxMzgwN0Y3MDBBM0VDMDNGRUEyNkU1QQotQTI2RTVBRDhGRkZFMDIwM0I1MTI4MEEyMTU3MDM5Mjk3REE4NDA+STxCNjEyRTAxNUZFNkY3RTNBMDNGQzAwM0ZFMEVEMEYKLUYwNkY3RTZGN0UxNTAxODJBNjVFNEI1QTE1MDdFRDBGRTBFRDNGQzA5MEI1MDBGRUM3RkNBMjkwMzlGQzAwRkY4MEVEM0ZDMAotNkY3RTZGN0U2RjdFQTkxNzBFQTIxNTAzOTIzODAxRkMxQ0I1MzhGMDAwRkVFRTdGRjhFRTBGRTAyRjI5N0VBODMyPjgyCi1EPDkwMzhGRjgwNjAwMDAzRUJGMEUwMDAwRjEzRjgzODFGODBGRDM4M0YwMDFGMDAzRTEzMDc0ODEzMDNBMjAwRkMxMzAxQTIKLTE0MDA3RUEyNkMxNDAwMTNDMEVBN0ZGQ0VCRkZFMDZDMTNGODZDMTNGRTgwMDAwNzE0ODA2QzE0QzBDNkZDMDEwRjEzRTBFQgotMDA3RkVDMUZGMDE0MEYxNDA3MDBFMDEzMDNBNDZDMTRFMEEyNkMxMzA3NkMxNEMwQjRFQjBGODBFQkUwM0YzOUUzRkZGRTAwCi0wMEUxNUIzOEMwMUZGMDFDMjk3Q0E4MjU+STxCNTAwRjBFQkZGRkVBM0Q4MDNGQ0M3RUEwMzgwQjNBQTAwMDFFRDA3MDA3RgotMDAwMDE1MEUxMzdGNkQxNDNDRDkxRkMwNUI5MDM5MEZGMDAzRjA2REI1NUEwMTAwMTQ4MERBMUZGQ0M3RkMyRjI5N0VBODM0Ci0+ODUgRDxCNTNDRTA3RkZGRTAxRkZGQzBBMzI4MDNGQzAwMDNGQ0M3RUE3MDAwQTI2RDZEN0UwMDAxNjBBMjZENkUxMzAxNkMKLTYwNEIxMzgwMDI4MDE1MDMwMTdGNUY0QjEzQzBEOTNGQzAwMTNGNDlDN0ZDQTI5MTNBRTAwRTFGRTAwRjAxMUYxNjBFMTdGMAotOTEyNkYwMUMwRjEzMUUwMTBGMTYxQzAzM0MxM0Y4OTAyNzA3RjgzODA3NUJBMjAzNzgxM0ZDOTAyNzAzRkM3MDAzNUJBMjkxCi0zQUZFRTAwMUZFRjAwMTAxNUUwMkZGMTRGRjRCN0U2RDVFQTI2RTQ4NkQ1QUEzNkVDNzZDQzhGQ0EyMDIzRTgwMDIxRTE0MUUKLUEyNDIyOTdGQTg0NT44NyBEPDM4MDNGRjgwMDAwRjEzRjAzODFGMDFGQzM4M0Y4MEZFMTQ3RjgwMTU4MEVBMUYwMEM3RkNBNAotRUIzRkZGMzgwMUZDM0ZFQTBGRTBFQTFGODBFQTNGMDAxMjdFNUFBNDE0NUYwMDdFMTNERjM5M0Y4MzlGRkMzODFGRkUwRjM4Ci0wM0ZDMDMxRTFCN0U5QTIxPjk3IEQ8RUFGRkUwQTMxMjBGQUNFQkUxRkU5MDM4RUZGRjgwOTAzOEZFMDdFMDkwMzhGODAzRjAKLTkwMzhGMDAxRjg5MDM4RTAwMEZDQTIxNTdFQTIxNTdGQTgxNTdFQTMxNUZDQTI5MDM4RjAwMUY4OTAzOEY4MDNGMDkwMzg5QwotMEZFMDkwMzgwRkZGODAzOTBFMDFGQzAwMjAyQTdFQTkyNT5JPEVCM0ZGMDM4MDFGRkZDMzgwM0YwM0UzODBGQzA3RkVBMUYKLTgwRUEzRjAwQTI0ODEzM0UwMDdFOTBDN0ZDQTIxMkZFQTcxMjdFQTIxMjdGNkNFQjAzODAxMzgwMDAxRkVCMDcwMDM4MEZFMAotMEUzODAzRjgzQzM4MDFGRkY4MzgwMDNGQzAxOTFCN0U5QTFFPkk8RUM3RkYwQTMxNDA3QUNFQjNGODczODAxRkZGNzM4MDcKLUYwM0YzODBGQzAwRjM4MUY4MDA3RUEzRjAwQTIxMjdFQTMxMkZFQTgxMjdFQTI3RUEyMzgxRjgwMEYzODBGQzAxRjM5MDdFMAotN0ZGRjM4MDFGRkU3MzgwMDdGODcyMDJBN0VBOTI1Pkk8RUIzRkMwMzgwMUZGRjAzODAzRTA3QzM4MEY4MDNFMDAxRjdGMTMKLTAwNDhFQjBGODAxMjdFMTVDMEEyMDBGRTEzMDdBMkI2RkNBMjQ4QzhGQ0EzMTI3RUEyMTI3RjZDRUIwMUMwN0UzOTBGODAwMwotODAzOTA3QzAwNzAwMzgwM0YwMUUzODAwRkZGQ0VCM0ZFMDFBMUI3RTlBMUY+STxFQjA3RjhFQjNGRkNFQjdFM0UzODAxRkMKLTdGRUEwM0Y4MTNGMDEyMDcxNDNFMTQwMEE3QjUxMkMwQTMzODA3RjAwMEIzQTMzODdGRkY4MEEzMTgyQTdFQTkxNT5JPDkwCi0zOEZGODBGMDAwMDNFQkUzRjgzOTBGQzFGRTFDMzkxRjAwN0M3QzQ4MTM3RTAwM0VFQjNFMTAwMDdFRUIzRjAwQTYwMDNFMTMKLTNFMDAzRjEzN0U2QzEzN0MzODBGQzFGODM4MEJGRkUwMDAxODEzODA5MEM4RkMxMjM4QTIxMjNDMzgzRkZGRjgxNEZGNkMxNAotQzA2QzE0RTA2QzE0RjAxMjFGMzgzQzAwMDcwMDdDRUIwMUY4NDgxMzAwQTQwMDdDRUIwMUYwQTIwMDNGRUIwN0UwMzkwRkMwCi0xRjgwNkNCNTEyMDAzODAwN0ZGMDFFMjg3RTlBMjI+STxFQUZGRTBBMzEyMEZBQzE0N0U5MDM4RTFGRjgwOTAzOEUzMEZDMAotMDFFNDEzRTBFQkU4MDcwMUY4MTNGMDEzRjBBMjEzRTBCMDM5RkZGRTNGRkZBMzIwMkE3REE5MjU+STwxMjA3RUEwRjgwRUEKLTFGQzBFQTNGRTBBM0VBMUZDMEVBMEY4MEVBMDcwMEM3RkNBN0VBRkZFMEEzMTIwRkIzQTNFQUZGRkVBMzBGMkI3RUFBMTI+Ci1JPEVBRkZFMEEzMTIwRkIzQjJFQUZGRkVBMzBGMkE3RUE5MTI+MTA4IEQ8MjZGRkMwN0ZFQjFGQzA5MDNBQzFGRkMwN0ZGMAotOTAzQUMzMDdFMEMxRjhEODBGQzQ5MDM4RjEwMUZDOTAzOUM4MDNGMjAwMDFEODAxRkU3RjAxRDA1QkEyMDFFMDVCQjAzQ0ZGCi1GRTNGRkY4RkZGRTBBMzMzMUI3RDlBMzg+STwzOEZGQzA3RTkwMzhDMUZGODA5MDM4QzMwRkMwRDgwRkM0MTNFMEVCQzgwNwotMDFEODEzRjAxM0QwQTIxM0UwQjAzOUZGRkUzRkZGQTMyMDFCN0Q5QTI1Pkk8RUIzRkUwMzgwMUZGRkMzODAzRjA3RTM5MEYKLUMwMUY4MDM5MUY4MDBGQzAzOTNGMDAwN0UwQTIwMDdFRUIwM0YwQTMwMEZFMTRGOEE4MDA3RTE0RjBBMjZDRUIwN0UwQTIzOQotMUY4MDBGQzAzOTBGQzAxRjgwMzkwN0YwN0YwMDM4MDFGRkZDMzgwMDNGRTAxRDFCN0U5QTIyPkk8MzhGRkMxRjBFQkM3RkMKLUVCQzYzRTM4MEZDQzdGMTNEODEzRDBBMkVCRjAzRUVCRTAwMEIwQjVGQ0EzMTgxQjdGOUExQj4xMTQKLUQ8MzgwM0ZFMzAzODBGRkZGMEVBM0UwM0VBNzgwMDEyNzAwMEYwMTM3MEEyN0UwMEZFMTMwMEVBRkZFMDZDQjRGQzE0QzA2QwotMTNFMDZDMTNGMDAwMDcxM0Y4QzZGQ0VCMDdGQzEzMDAwMEUwMTM3QzE0M0M3RTE0Mzg3RTZDMTM3MDM4RkYwMUUwMzhFN0ZGCi1DMDAwQzExMzAwMTYxQjdFOUExQj5JPDEzRTBBNDEyMDFBMzEyMDNBMjEyMDcxMjBGMzgxRkZGRTBCNUZDQTIzODBGRTAwMAotQUQxNDcwQTczODA3RjBFMDAwMDMxM0MwMzgwMUZGODAzODAwN0YwMDE0MjY3RkE1MUE+STwzOUZGRTA3RkYwQTMwMDBGMTMKLTA3QjIxNDBGQTIwMDA3MTMxNzM5MDNGMDY3RkYzODAxRkZDNzM4MDA3Rjg3MjAxQjdEOUEyNT5JPDM5RkZGQzAzRkZBMzM5Ci0wRkYwMDBGMDAwMDcxNEUwN0YwMDAzRUIwMUMwQTJFQkZDMDMwMDAxMTQ4MEVCRkUwNzAwMDAxNDAwMTNGRkVCN0YwRUEyMTQKLTlFRUIzRjlDMTRGQzZENUFBMjZENUFBMzZENUFBMjZENUFBMjIwMUI3RjlBMjM+STwzQkZGRkM3RkZDMUZGQ0EzM0IwRkUwCi0wRkUwMDFDMDI2MDdGMDA3RUIwMzgwQTIwMUY4RUJGMDA3MDAwMzE2MDBFQzBGRjgwMUZDNUMwMDAxMTUwRUVDMUZGQzI2MDAKLUZFMUM1QjE1RkU5MDM5RkYzODdFM0MwMTdGMTQzOEVDNzg3RjZENDg2QzVBMTZGMEVDRTAxRjAxMUY1Q0EyNkQ0ODZDNUFBMgotRUM4MDA3MDEwNzVDQTIyRTFCN0Y5QTMxPkk8MzlGRkZDMUZGRUEzMzkwN0YwMDM4MDM4MDNGODA3OTAzOEZDMEYwMDM4MDEKLUZFMUUwMDAwNUJFQjdGMzgxNEY4NkQ1QTZENUExMzBGODA2RDdFMTMwRjQ5N0VFQjNDRkVFQjM4RkZFQjc4N0Y5MDM4RjAzRgotODAzOTAxRTAxRkMwRDgwM0MwMTNFMEVCODAwRjM5RkZGMDNGRkZBMzIwMUI3RjlBMjM+STwzOUZGRkMwM0ZGQTMzOTBGRjAKLTAwRjAwMDA3MTRFMDdGMDAwM0VCMDFDMEEyRUJGQzAzMDAwMTE0ODBFQkZFMDcwMDAwMTQwMDEzRkZFQjdGMEVBMjE0OUVFQgotM0Y5QzE0RkM2RDVBQTI2RDVBQTM2RDVBQTI2RDVBQTI1Q0EyMTMwNzAwMzg5MEM3RkNFQTdDMEZFQUZFMEUxMzFFMTMxQzVCCi1FQTc0RjBFQTNGRTBFQTBGODAyMDI3N0Y5QTIzPkkgRQotJUVuZERWSVBTQml0bWFwRm9udAotJURWSVBTQml0bWFwRm9udDogRmwgY210dDEwIDEwLjk1IDc3Ci0vRmwgNzcgMTI3IGRmPDEyNzAxMkY4QjAxMjcwMTIwMEE1MTI3MDEyRjhBMzEyNzAwNTFDNzc5QjE4PjMzCi1EPEVBNDAxMEVBRTAzOEVBRjA3OEVBRTAzOEFBRUE2MDMwMEQwRTdCOUMxOD5JPEVBMDMwNkVBMDc4RkE2Mzg3RkZGQzBCNQotMTJFMEEyNkMxM0MwMzgwRjFFMDBBNjM4N0ZGRkMwQjUxMkUwQTI2QzEzQzAzODFFM0MwMEE2RUEwQzE4MTMxQzdFOUIxOD4KLUk8MTNDMDEyMDFBM0VBMDNGMEVBMEZGQ0VBM0ZGRUVBN0RDRkVBNzFDNzM4RTFDMzgwMTNDN0EzMzhGMUMwMDAxMjc5MTIzRgotNkM3RUVBMEZGOEVBMDFGQzEzREUxM0NGMTNDNzM4NjFDMzgwMTJGMUEyMTJFMUVCQzcwMDEyNzFFQTc5REVFQTNGRkVFQTFGCi1GOEVBMDdFMEVBMDFDMEEzMTIwMDExMjQ3RDlGMTg+STwxMjM4MTI3Q0EyMTI3RTEyM0UxMjBFQTMxMjFDQTIxMjM4MTJGOAotMTJGMDEyQzAwNzBFNzg5QjE4PjM5IEQ8MTM3MDEzRjBFQTAxRTBFQTAzQzBFQTA3ODBFQTBGMDAxMjFFMTIxQzVBQTI1QUE0Ci01QUE4MTI3MEE0N0VBMjdFMTIxRTdFRUEwNzgwRUEwM0MwRUEwMUYwMTIwMDEzNzAwQzI0Nzk5RjE4Pkk8MTI2MDEyRjAxMgotNzg3RTdFN0VFQTA3ODAxMjAzRUEwMUMwQTJFQTAwRTBBNDEzNzBBODEzRTBBNEVBMDFDMEEyRUEwMzgwMTIwN0VBMEYwMDEyCi0xRTVBNUE1QTEyNjAwQzI0N0M5RjE4Pkk8RUEwMUMwQTRFQTQxQzEzOEYxQzc4MEVBRkRERjM4N0ZGRjAwRUExRkZDRUEwNwotRjBBMkVBMUZGQ0VBN0ZGRjM4RkRERjgwRUFGMUM3Mzg0MUMxMDBFQTAxQzBBNDExMTQ3RDk3MTg+STwxMjFDMTIzRTEyN0UKLTEyN0YxMjNGMTIxRjEyMDcxMjBFMTIxRTEyN0MxMkY4MTI2MDA4MEM3ODg1MTg+NDQgRDwzODdGRkZDMEI1MTJFMEEyNkMxMwotQzAxMzA0N0U4RjE4Pkk8MTIzMDEyNzgxMkZDQTIxMjc4MTIzMDA2MDY3Nzg1MTg+STwxMzAzRUIwNzgwQTIxMzBGMTQwMDVCCi0xMzFFQTIxMzNFMTMzQzEzN0MxMzc4QTIxM0Y4NUIxMjAxNUIxMjAzNUJBMjEyMDc1QjEyMEY5MEM3RkNBMjVBMTIxRTEyM0UKLTEyM0NBMjEyN0MxMjc4MTJGODVBQTIxMjYwMTEyNDdEOUYxOD5JPEVBMDFGMEVBMDdGQzQ4N0VFQTFGMUZFQTFDMDczODM4Ci0wMzgwMDA3ODEzQzBFQTcwMDFBMjM4RTAwMEUwQTlFQUYwMDEwMDcwMTNDMEEyRUE3ODAzMDAzODEzODAzODFDMDcwMEVBMUYKLTFGRUEwRkZFNkM1QUVBMDFGMDEzMUM3RTlCMTg+STxFQTAxODAxMjAzQTIxMjA3MTIwRjEyM0YxMkZGMTJGQjEyNDMxMjAzCi1CMEVBN0ZGQ0VBRkZGRUVBN0ZGQzBGMUM3QjlCMTg+STwzODNGRkY4MEEzMDAzOEM3RkNBOEVBM0JGOEVBM0ZGRTdGMzgzQwotMDc4MDM4MzAwM0MwRUEwMDAxRUIwMEUwQTIxMjYwMTJGMEEyMzhFMDAxQzBFQTcwMDMzODdDMEY4MDM4M0ZGRjAwRUExRkZDCi1FQTAzRjAxMzFDN0U5QjE4PjUzIEQ8MTJFMEI1MTJFMEEyMTRDMDM4RTAwMzgwRUIwNzAwQzY1QTEzMUUxMzFDNUJBMjVCMTMKLUYwNUJBMjQ4NUFBMzQ4NUFBNDQ4QzdGQ0E3MTMxRDdFOUMxOD41NSBEPEVBMDNGOEVBMEZGRTQ4N0UzODNFMEY4MEVBMzgwMwotMzg3MDAxQzBBNDM4MzgwMzgwRUEzQzA3MzgxRkZGMDBFQTA3RkM0ODdFRUExRjFGMzgzQzA3ODAzODcwMDFDMDAwRjAxM0UwCi1FQUUwMDBBNDM4NzAwMUMwRUE3ODAzMzgzRTBGODAzODFGRkYwMDZDNUFFQTAzRjgxMzFDN0U5QjE4Pkk8MTIzMDEyNzgxMgotRkNBMjEyNzgxMjMwMTIwMEE4MTIzMDEyNzgxMkZDQTIxMjc4MTIzMDA2MTQ3NzkzMTg+NTgKLUQ8MTRDMEVCMDNFMDEzMDdFQjFGQzBFQjNGODBFQkZFMDA0ODVBRUEwN0YwNDg1QUVBM0Y4MDQ4QzdGQzEyRkNBMjEyN0Y2QwotN0VFQTBGRTA2QzdFRUEwMUZDNkM3RUVCM0Y4MEVCMUZDMEVCMDdFMDEzMDNFQjAwQzAxMzE4N0U5OTE4PjYwCi1EPDM4N0ZGRkMwQjUxMkUwQTI2QzEzQzBDOEZDQTQzODdGRkZDMEI1MTJFMEEyNkMxM0MwMTMwQzdFOTMxOD5JPDEyNjAxMgotRjg3RTEyN0Y2QzdFRUEwRkUwNkM3RUVBMDFGQzZDN0VFQjNGODBFQjFGQzBFQjA3RTBBMkVCMUZDMEVCM0Y4MEVCRkUwMDQ4Ci01QUVBMDdGMDQ4NUFFQTNGODA0OEM3RkMxMkZDNUExMjYwMTMxODdFOTkxOD5JPEVBMEZGMEVBM0ZGQzQ4QjRGQ0VBNzAwRgotMzhGMDAzODBBMkVBNjAwNzM4MDAwRjAwMTMzRTVCRUEwMUYwNUI0ODVBQTU1QkM4RkNBNUVBMDM4MDQ4N0VBMzZDNUExMTFDCi03RDlCMTg+STwxMzdDRUEwMUZFRUEwN0ZGMzgwRjg3ODAzODFFMDNDMEVBM0MxREVBMzg3RjM4NzBGRkUwRUE3MUUzMTNDMQotMTJFMUVBRTM4MEE2MzhFMUMxQzAxMjcxMTNFMzM4NzBGRjgwMzgzODdGMDBFQTNDMUMzODFFMDBFMEVBMEY4MzM4MDdGRkMwCi0wMDAxMTM4MDM4MDA3RTAwMTMxQzdFOUIxOD5JPDEzNzAxM0Y4QTIxM0Q4QTJFQTAxRENBMzEzOENFQTAzOEVBNEVBMDcwNwotQTUzODBGRkY4MEEzRUEwRTAzMzgxQzAxQzBBMzM4N0YwN0YwMDBGRjEzRjgwMDdGMTNGMDE1MUM3RjlCMTg+STxFQTdGRkMKLUI1RkM2QzEzODAzODFDMDNDMDEzMDFFQjAwRTBBNDEzMDExNEMwMTMwNzM4MUZGRjgwMTQwMDE0QzBFQTFDMDNFQjAwRTAxNAotRjAxNDcwQTQxNEYwMTRFMDEzMDMzODdGRkZDMEI1MTI4MDM4N0ZGRTAwMTQxQzdGOUIxOD5JPEVCRjhFMEVBMDNGRUVBMDcKLUZGRUEwRjA3RUExRTAzRUEzQzAxRUEzODAwNUFBMjE0MDA1QUE4MTI3MDE0RTBBMjdFMTIzQzM4MUUwMUMwRUEwRjA3MzgwNwotRkY4MDM4MDNGRTAwRUEwMEY4MTMxQzdFOUIxOD5JPEVBN0ZGOEVBRkZGRTZDN0UzODFDMEY4MEVCMDNDMEEyRUIwMUUwMTMKLTAwQTIxNEYwMTQ3MEE4MTRGMDE0RTBBMjEzMDExNEMwMTMwM0VCMEY4MDM4N0ZGRjAwNDg1QUVBN0ZGODE0MUM3RjlCMTg+Ci1JPEI1MTJGMEEzMzgxQzAwNzBBNDE0MDBBMjEzMEVBM0VBMUZGRUEzRUExQzBFQTM5MEM3RkNBMjE0MzhBNUI1MTJGOEEzMTUKLTFDN0Y5QjE4Pkk8QjUxMkYwQTMzODFDMDA3MEE0MTQwMEEyMTMwRUEzRUExRkZFQTNFQTFDMEVBMzkwQzdGQ0E3RUFGRkMwCi1BMzE0MUM3RTlCMTg+STwzODAxRjFDMEVBMDNGREVBMEZGRkVBMUYwRkVBMUMwMzEyMzgxMzAxMTI3MEEyOTBDN0ZDNUFBNQotRUIwRkYwMTMxRjEzMEYzODcwMDFDMEEyMTMwMzEyMzhBMkVBMUMwN0VBMUYwRkVBMEZGRkVBMDNGREVBMDFGMTE0MUM3RTlCCi0xOD5JPDM4N0YwN0YwMzhGRjhGRjgzODdGMDdGMDM4MUMwMUMwQTlFQTFGRkZBM0VBMUMwMUFBMzg3RjA3RjAzOEZGOEZGOAotMzg3RjA3RjAxNTFDN0Y5QjE4Pkk8RUE3RkZGQjUxMjgwNkMxMzAwRUEwMUMwQjNBNEVBN0ZGRkI1MTI4MDZDMTMwMDExMUMKLTdEOUIxOD5JPDM4N0YwN0YwMzhGRjg3RjgzODdGMDdGMDM4MUMwM0MwRUIwNzgwMTQwMDEzMEUxMzFFNUIxMzM4NUIxM0YwCi0xMjFEQTJFQTFGQjhBMjEzMUMxMjFFRUExQzBFQTI3RkEyRUIwMzgwQTJFQjAxQzAzODdGMDNGMDM4RkY4N0Y4Mzg3RjAzRjAKLTE1MUM3RjlCMTg+NzUgRDxFQUZGQzBBMzAwMUNDN0ZDQjExNEUwQTVCNUZDQTMxMzFDN0U5QjE4Pkk8MzhGQzAxRjhFQUZFCi0wM0EyMzgzQjA2RTBBNDEzOEVBMkVBMzk4Q0EyMTNEQ0EzRUEzOEQ4QTIxM0Y4MTM3MEEyMTMwMEE2MzhGRTAzRjhBMzE1MUMKLTdGOUIxOD5JPDM4N0UwN0YwMzhGRjBGRjgzODdGMDdGMDM4MUQ4MUMwQTMxM0MxMTIxQ0EyMTNFMUEzMTM2MTEzNzFBMjEzCi0zMTEzMzlBMzEzMTlBMjEzMUQxMzBEQTNFQTdGMDdFQUZGODdFQTdGMDMxNTFDN0Y5QjE4Pkk8RUEwRkZFMzgzRkZGODA0OAotMTNDMEVBNzgwM0VBNzAwMTAwRjAxM0UwRUFFMDAwQjBFQUYwMDEwMDcwMTNDMEVBN0MwN0VBN0ZGRjZDMTM4MDM4MEZGRTAwCi0xMzFDN0U5QjE4Pkk8RUFGRkZFRUJGRjgwMTRDMEVBMUMwM0VCMDFFMDEzMDAxNDcwQTUxNEUwMTMwMUVCMDNDMEVBMUZGRgotMTQ4MEVCRkUwMDAwMUNDN0ZDQThCNDdFQTMxNDFDN0Y5QjE4Pkk8RUEwRkZFMzgzRkZGODA0ODEzQzBFQTc4MDNFQTcwMDEKLTAwRjAxM0UwRUFFMDAwQUUxMzcwQTJFQUYwNzkzODcwMzlDMEVBNzgzRkVBN0ZGRjZDMTM4MDM4MEZGRTAwRUEwMDBGRUIwNwotODBBMkVCMDNDMDEzMDFBMjEzMjI3RTlCMTg+STxFQTdGRjhFQUZGRkU2QzdFMzgxQzBGODAxMzAzMTRDMDEzMDFBMzEzMDMKLTE0ODAxMzBGMzgxRkZGMDA1QkEyRUExQzBGN0ZFQjAzODBBNTE0OUNBMzM4N0YwMUY4RUFGRjgxMzg3RjAwRjAxNjFDN0Y5QgotMTg+STwzODAzRjFDMEVBMUZGRjVBRUE3QzBGRUE3MDAzRUFFMDAxQTM5MEM3RkMxMjcwMTI3ODEyM0ZFQTFGRjBFQTA3RkUKLUM2N0VFQjBGODBFQjAzQzAxMzAxRUIwMEUwQTIxMjYwMTJFMDEzMDEwMEYwMTNDMDM4RjgwNzgwQjVGQ0VCRkUwMEVBRTdGOAotMTMxQzdFOUIxOD5JPDM4N0ZGRkY4QjVGQ0EyMzhFMDcwMzhBNDAwMDAxMzAwQjJFQTA3RkZBMzE1MUM3RjlCMTg+STwzOEZGCi04M0ZFQTMzODFDMDA3MEIzNkMxM0UwRUEwRjAxMzgwNzgzQzAzODAzRkY4MDZDMTMwMEVBMDA3QzE3MUM4MDlCMTg+STwzOAotRkUwM0Y4RUFGRjA3RUFGRTAzMzgxQzAxQzBFQTFFMDMwMDBFMTM4MEVBMEYwNzAwMDcxMzAwQTJFQTAzOEVBMkVBMDFEQ0EzCi1FQTAwRjhBMjEzNzBBOUVBMDFGQzQ4N0U2QzVBMTUxQzdGOUIxOD44OSBEPEVBRkZGOEEzRUFFMDAwQjNBQ0VBRkZGOEEzMEQKLTI0Nzc5RjE4PjkxIEQ8MTI2MDEyRjBBMjdFMTI3ODEyN0MxMjNDQTIxMjNFMTIxRTEyMUY3RUEyN0YxMjA3N0YxMjAzQTI3RgotMTIwMTdGMTIwMDdGMTM3OEEyMTM3QzEzM0MxMzNFMTMxRUEyMTMxRjdGMTQ4MDEzMDdBMkVCMDMwMDExMjQ3RDlGMTg+STwKLUVBRkZGOEEzRUEwMDM4QjNBQ0VBRkZGOEEzMEQyNDdGOUYxOD5JPDM4N0ZGRkMwQjUxMkUwQTI2QzEzQzAxMzA0N0U3RjE4PgotOTUgRDxFQTBGRjBFQTFGRkM0ODdFRUEzQzBGRUExODA3MzgwMDAzODBBMjEzRkYxMjA3MTIxRkVBN0YwMzEyNzgxMkUwQTMKLUVBRjAwN0VBNzgwRjM4M0ZGRkY4RUExRkZERUEwN0YwMTUxNDdFOTMxOD45NyBEPDEyN0UxMkZFMTI3RTEyMEVBNTEzM0VFQgotRkY4MDAwMEYxM0MwRUJDMUUwMTM4MEVCMDA3MDEyMEUxNDM4QTYwMDBGMTM3MEEyRUI4MEUwMTNDMUVCRkZDMDAwMEUxMzgwCi0zODA2M0UwMDE1MUM4MDlCMTg+STxFQTAxRkVFQTA3RkYwMDFGMTM4MEVBM0UwNzM4MzgwMzAwNDhDN0ZDQTI1QUE2MTI3MAotRUIwMUMwMTIzOEVBM0UwMzM4MUZGRjgwMDAwNzEzMDBFQTAxRkMxMjE0N0Q5MzE4Pkk8RUIxRjgwMTMzRjEzMUYxMzAzQTUKLUVBMDNFM0VBMEZGQkVBMUZGRkVBM0MxRkVBMzgwRkVBNzAwNzEzMDMxMkUwQTZFQTcwMDdBMkVBMzgwRkVBM0MxRjM4MUZGRgotRjAzODBGRkJGODM4MDNFM0YwMTUxQzdFOUIxOD5JPEVBMDFGMEVBMDdGQ0VBMUZGRUVBM0UwRjM4MzgwNzgwRUE3MDAzQTIKLTM4RTAwMUMwQTJCNUZDQTMwMEUwQzdGQzEyNzBFQjAxQzAxMjM4RUEzRTA3MzgxRkZGODAwMDA3MTMwMEVBMDFGODEyMTQ3RAotOTMxOD5JPEVCMUY4MEVCN0ZDMEVCRkZFMDEzRTEzODAxQzBDMDE0MDBBMzM4N0ZGRkMwQjVGQ0EyMzgwMUMwMDBBRUVBN0YKLUZGQTMxMzFDN0Y5QjE4Pkk8MzgwMUUxRjAzODA3RkZGODVBMzgxRTFFMzAzODFDMEUwMDQ4N0VBNUVBMUMwRUVBMUUxRUVBCi0xRkZDNUJFQTM5RTAwMDM4QzdGQzdFRUExRkZFRUJGRkMwNDgxM0UwMzg3ODAxRjAzODcwMDA3MDQ4MTMzOEE0MDA3ODEzRjAKLUVBN0UwMzM4MUZGRkMwNkMxMzgwMzgwMUZDMDAxNTFGN0Y5MzE4Pkk8MTI3RTEyRkUxMjdFMTIwRUE1MTMzRUVCRkY4MDAwCi0wRjEzQzAxM0MxRUI4MEUwMTMwMDEyMEVBQjM4N0ZDN0ZDMzhGRkU3RkUzODdGQzdGQzE3MUM4MDlCMTg+STxFQTAzODBFQQotMDdDMEEzRUEwMzgwQzdGQ0E0RUE3RkMwMTJGRjEyN0YxMjAxQUVCNUZDQTMxMDFEN0M5QzE4Pkk8MTMzODEzN0NBMzEzMzgKLTEzMDBBNEVBMEZGQ0EzRUEwMDFDQjNBNEVBNjAzOEVBRjA3OEVBRkZGMEVBN0ZFMEVBM0Y4MDBFMjc3RTlDMTg+STwxMjdFCi0xMkZFMTI3RTEyMEVBNUVCM0ZGMEEzRUIwNzgwRUIwRjAwMTMxRTVCNUI1QkVBMEZGODdGMTM5QzEzMEVFQTBFMEY3RkVCMDMKLTgwMTRDMDM4N0ZDN0Y4MTJGRjEyN0YxNTFDN0Y5QjE4Pkk8RUFGRkMwQTMxMjAxQjNBNEI1MTI4MEEzMTExQzdEOUIxOD5JPAotMzhGOUMxQzAzOEZGRjdGMDEzRkYzODNFM0UzOEVBM0MzQ0EyRUEzODM4QUIzOEZFM0UzRUVCN0U3RUVCM0UzRTE3MTQ4MDkzCi0xOD5JPEVBN0UzRTM4RkVGRjgwMDA3RjEzQzBFQTBGQzFFQjgwRTAxMzAwMTIwRUFCMzg3RkM3RkMzOEZGRTdGRTM4N0ZDNwotRkMxNzE0ODA5MzE4Pkk8RUEwMUYwRUEwRkZFNDg3RTM4M0UwRjgwRUEzODAzMzg3MDAxQzBBMjM4RTAwMEUwQTVFQUYwMDEKLTAwNzAxM0MwRUE3ODAzMzgzQzA3ODBFQTNFMEYzODFGRkYwMDZDNUFFQTAxRjAxMzE0N0U5MzE4Pkk8RUE3RTNFMzhGRUZGCi04MDAwN0YxM0MwMzgwRkMxRTAxMzgwRUIwMDcwMTIwRTE0MzhBNjAwMEYxMzcwQTJFQjgwRTAxM0MxRUJGRkMwMDAwRTEzODAKLUVCM0UwMDkwQzdGQ0E3RUE3RkMwNDg3RTZDNUExNTFFODA5MzE4Pkk8MzgwMUYzODBFQTA3RkJFQTFGRkZFQTNFMUZFQTM4Ci0wRkVBNzAwN0EyRUFFMDAzQTZFQTcwMDdBMkVBMzgwRkVBM0MxRkVBMUZGRkVBMEZGQkVBMDNFM0VBMDAwM0E3RUIxRkYwRUIKLTNGRjhFQjFGRjAxNTFFN0U5MzE4Pkk8MzhGRjBGQzBFQjNGRTBFQjdGRjBFQTA3RjBFQkUwNjBFQkMwMDA1QkEyOTBDN0ZDCi1BOUVBRkZGQzdGNUIxNDE0N0U5MzE4Pkk8RUEwN0Y3RUEzRkZGNUFFQTc4MEZFQUUwMDdBMzAwN0NDN0ZDRUE3RkUwRUExRgotRkNFQTAzRkVFQTAwMUYzODYwMDc4MEVBRTAwM0EyMTJGMDM4RjgwRjAwQjVGQzEzRkNFQUU3RjAxMTE0N0Q5MzE4Pkk8NDgKLTdFMTIwM0E0Mzg3RkZGQzBCNUZDQTIzODAzODAwMEE5MTQ0MDE0RTBBMzM4MDFDMUMwMTNGRjZDMTM4MEVCM0UwMDEzMTk3RgotOTgxOD5JPDM4N0UwN0UwRUFGRTBGRUE3RTA3RUEwRTAwQUMxMzAxRUEwRjAzMzgwN0ZGRkM2QzEzRkUzODAxRkNGQzE3MTQKLTgwOTMxOD5JPDM4N0Y4RkYwMDBGRjEzRjgwMDdGMTNGMDM4MUMwMUMwMzgwRTAzODBBMzM4MDcwNzAwQTMxMzhGRUEwMzhFCi1BM0VBMDFEQ0EzRUEwMEY4QTIxMzcwMTUxNDdGOTMxOD5JPDM4RkYwN0Y4MTM4RjEzMDczODM4MDBFMEE0MzgxQzAxQzAxMwotNzExM0Y5QTIxM0Q5RUExREREMDAwRDEzODBBMzEzOERFQTBGOEZBMjM4MDcwNzAwMTUxNDdGOTMxOD5JPDM4N0Y4RkYwMTMKLTlGMTM4RjM4MEYwNzAwRUEwNzhFRUEwMzlFRUEwMURDMTNGODEyMDAxMzcwMTNGMDdGRUEwMURDRUEwMzlFMTM4RUVBMDcwNwotMDAwRTEzODAzODdGOEZGMDAwRkYxM0Y4MDA3RjEzRjAxNTE0N0Y5MzE4Pkk8Mzg3RjhGRjAwMEZGMTNGODAwN0YxM0YwMzgKLTBFMDFDMEVCMDM4MEEyMTIwN0VCMDcwMEEyRUEwMzg3QTIxMzhFRUEwMUNFQTIxM0NDMTIwMDEzREMxMzc4QTMxMzcwQTMxMwotRjA1QjEyNzlFQTdCQzBFQTdGODA2Q0M3RkMxMjFFMTUxRTdGOTMxOD5JPDM4M0ZGRkYwNUFBMjM4NzAwMUUwRUIwM0MwRUIKLTA3ODAzODAwMEYwMDEzMUU1QjEzRjg0ODVBRUEwM0MwNDg1QTM4MEYwMDcwMTIxRTVBNUFCNTEyRjBBMzE0MTQ3RjkzMTg+Ci1JPEVCMDdFMDEzMUYxMzdGRUI3ODAwMTNFMEFCMTIwMUVBN0ZDMDQ4NUFBMjZDN0VFQTAxRTAxMjAwQUIxMzc4RUI3RkUwMTMKLTFGMTMwNzEzMjQ3RTlGMTg+STwxMjdDQjRGQzEzQzAxMjAzQzY3RUFCN0ZFQjdGQzBFQjNGRTBBMkVCN0ZDMEVCRjAwMDVCCi1BQkVBMDNDMDEyRkY5MEM3RkMxMjdDMTMyNDdFOUYxOD4xMjUgRDxFQTA2MENFQTFGMUVFQTNGQkVFQUZCRjhFQUYxRjBFQQotNjBDMDBGMDY3QzlCMTg+SSBFCi0lRW5kRFZJUFNCaXRtYXBGb250Ci0lRFZJUFNCaXRtYXBGb250OiBGbSBjbXIxMCAxMC45NSA3MQotL0ZtIDcxIDEyMyBkZjw5MDM4MUY4M0UwOTAzOEYwNkUzMDM5MDFDMDc4NzgzODAzODBGODkwMzgwMEYwMzA0OEVCNzAwMEE3Ci1CNjEyODAzOTA3MDA3MDAwQjIzODNGRTNGRjFEMjA4MDlGMUI+MTEgRDwxMzNGRUJFMEMwRUEwMUMwMzgwMzgxRTBFQTA3MDEKLUEyOTBDN0ZDQTZCNTEyRTBFQTA3MDBCMjM4M0ZDM0ZDMTYyMDgwOUYxOT5JPDEyNzAxMkY4MTJGQ0EyMTI3NDEyMDRBMzEyCi0wOEEyMTIxMEEyMTIyMDEyNDAwNjBFN0M5RjBEPjM5IEQ8MTM0MDEzODBFQTAxMDA1QTEyMDYxMjA0MTIwQzVBQTIxMjM4MTIKLTMwQTIxMjcwMTI2MEE0MTJFMEFDMTI2MEE0MTI3MDEyMzBBMjEyMzgxMjE4QTI3RTEyMDQxMjA2N0U3RUVBMDA4MDEzNDAwQQotMkU3QkExMTI+STw3RTEyNDA3RTEyMzA3RTEyMDgxMjBDN0VBMjEyMDc3RUEyMTM4MDEyMDFBNDEzQzBBQzEzODBBNDEyMDMKLTEzMDBBMjVBMTIwNkEyNUExMjA4MTIxODVBMTIyMDVBNUEwQTJFN0VBMTEyPkk8MTI3MDEyRjAxMkY4QTIxMjc4MTIwOEEzCi0xMjEwQTMxMjIwQTIxMjQwMDUwRTdDODQwRD40NCBEPEVBRkZGMEEyMEMwMjgwOEEwRj5JPDEyNzAxMkY4QTMxMjcwMDUwNQotN0M4NDBEPkk8RUEwM0YwRUEwRTFDNDg3RUVBMTgwNkVBMzgwNzM4NzAwMzgwQTQwMEYwMTNDMEFEMDA3MDEzODBBM0VBNzgKLTA3MDAzODEzMDBFQTE4MDZFQTFDMEU2QzVBRUEwM0YwMTIxRjdFOUQxNz40OCBEPDEzODAxMjAzMTIwRjEyRjMxMjAzQjNBNgotRUEwN0MwRUE3RkZFMEYxRTdDOUQxNz5JPEVBMDNGMEVBMEMxQ0VBMTAwRTQ4N0UwMDQwMTM4MDEyODAwMEYwMTNDMEVBRjgKLTAzQTNFQTIwMDcxMjAwMTQ4MEEyRUIwRjAwMTMwRTVCNUI1QjEzNjA1QjQ4NUE0OEM3RkMwMDA2MTM0MDVBNUEwMDEwMTM4MAotRUEzRkZGNUFCNUZDMTIxRTdFOUQxNz5JPEVBMDNGMEVBMEMxQ0VBMTAwRUVBMjAwRjAwNzgxMzgwMTMwN0EyRUEzODBGMTIKLTAwMTQwMEEyMTMxRTEzMUMxMzcwRUEwN0YwRUEwMDNDMTMwRTEzMEZFQjA3ODBBMjE0QzAxMjIwMTJGOEEzMDBGMDEzODAxMgotNDBFQjBGMDBFQTIwMEVFQTE4M0NFQTA3RjAxMjFGN0U5RDE3Pkk8MTMwNkEyMTMwRUEyMTMxRTEzMkVBMjEzNEUxMzhFQTIKLUVBMDEwRTEyMDJBMjEyMDQxMjA4QTIxMjEwMTIyMEEyMTI0MDEyQzBCNTEyRjAzODAwMEUwMEE3RUJGRkUwMTQxRTdGOUQxNwotPkk8RUExODAzRUExRkZFNUI1QjEzRTAwMDEwQzdGQ0E2RUExMUYwRUExNjFDRUExODBFRUExMDA3MTQ4MEVBMDAwM0EyMTQKLUMwQTMxMjcwMTJGMEEyMDBFMDEzODAxMjQwRUIwNzAwRUEyMDA2NkM1QUVBMDgzOEVBMDdFMDEyMUY3RTlEMTc+STwxMzdDCi1FQTAxODJFQTA3MDEzODBFMDM4MEVBMEMwNzEyMTgzODM4MDMwMDkwQzdGQzEyNzgxMjcwQTJFQUYxRjBFQUYyMUNFQUY0MDYKLUVBRjgwN0VCMDM4MEEyMDBGMDEzQzBBNTEyNzBBMjE0ODAxMjM4RUIwNzAwMTIxOEVBMEMwRTZDNUFFQTAxRjAxMjFGN0U5RAotMTc+STwxMjQwMzg3RkZGRTAxNEMwQTIzODQwMDA4MDM4ODAwMTAwQTIxMzAyNDg1QUEyNUI1QkEyNUJBMjEzNjBBMjEzRTAKLTVCMTIwMUE0MTIwM0E3NkM1QTEzMUY3RTlEMTc+STxFQTAzRjBFQTBDMENFQTEwMDZFQTMwMDMzODIwMDE4MDEyNjBBMzEyCi03MDM4NzgwMzAwMTIzRUVBM0YwNkVBMUZDOEVBMEZGMEVBMDNGODQ4N0VFQTBDN0VFQTEwM0YzODMwMEY4MEVBNjAwN0VCMDEKLUMwMTJDMDEzMDBBMzE0ODBFQTYwMDEwMDIwMTMwMEVBMTAwMkVBMEMwQ0VBMDNGMDEyMUY3RTlEMTc+STxFQTAzRjBFQTBFCi0xODQ4N0U0ODdFMTMwNzEyNzBFQjAzODAxMkYwQTIxNEMwQTVFQTcwMDdBMjEyMzhFQTE4MEJFQTBFMTNFQTAzRTMzODAwMDMKLTgwQTNFQjA3MDAxMjMwRUE3ODA2MTMwRUVBNzAwQ0VBMjAxOEVBMTA3MEVBMEZDMDEyMUY3RTlEMTc+STwxMjcwMTJGOEEzCi0xMjcwMTIwMEFBMTI3MDEyRjhBMzEyNzAwNTE0N0M5MzBEPkk8MTI3MDEyRjhBMzEyNzAxMjAwQUExMjcwMTJGMDEyRjhBMgotMTI3ODEyMDhBMzEyMTBBMzEyMjBBMjEyNDAwNTFEN0M5MzBEPkk8NUI0OTdFQTM0OTdFQTNFQjA5RTBBM0VCMTBGMEEzRUIKLTIwNzhBMzQ5N0VBMkVCQzAzRUVCODAxRUEyNDhCNUZDRUIwMDBGQTIwMDAyRUIwNzgwQTM0OEVCMDNDMEEyMTIwQzAwMUUxNAotRTAzOUZGODAxRkZFMUYyMDdGOUYyMj42NSBEPEI1MTJFMDM4MEYwMDc4MTQxRUEyODAxNTgwQTUxNTAwNUMxNDFFMTQ3Q0VCCi1GRkYwRUIwMDdDMTQxRkVDMEY4MEVDMDdDMDE0MDMxNUUwQTUxNUMwMTQwNzE1ODBFQzBGMDAxNDNFQjUxMkYwMUIxRjdFOUUKLTIwPkk8OTAzODBGRTAxMDkwMzgzODFDMzA5MDM4RTAwMjcwMzgwM0MwMDEzOTA3ODAwMEYwNDhDNzEyNzAxMjFFMTUzMDVBCi0xNTEwMTI3QzEyNzgwMEY4MTQwMEE5MTI3ODAwN0MxNDEwMTIzQ0EyNkMxNDIwQTI3RTZDNkMxMzQwNkM2QzEzODAzOTAwRTAKLTAzMDBFQjM4MENFQjBGRjAxQzIxN0U5RjIxPkk8QjUxMkY4MzgwNzgwMUVFQzA3ODBFQzAzQzBFQzAxRTBFQzAwRjAxNTcwCi0xNTc4QTIxNTNDQTMxNTNFQTgxNTNDQTIxNTdDMTU3OEEyMTVGMEVDMDFFMEVDMDNDMEVDMDc4MEVDMUUwMEI1MTJGODFGMUYKLTdGOUUyMz5JPEI2MTI4MDM4MEYwMDBGMTQwMzE0MDExNDAwMTVDMDE1NDBBMzE0NDAxNTAwQTIxNEMwMTMwMTEzRkYxMzAxCi0xMzAwMTQ0MEEzRUMwMDIwQTMxNTQwQTMxNUMwMTQwMUVDMDM4MDE0MEZCNkZDMUIxRjdFOUUxRj5JPEI2MTI4MDM4MDc4MAotMDcxNDAxQTIxNDAwMTVDMDE1NDBBNEVDMjAwMEEzMTQ2MDE0RTAxM0ZGMTM4MDE0NjAxNDIwQTM5MUM3RkNBODdGRUFGRkZFCi0xQTFGN0Y5RTFFPkk8OTAzODBGRTAyMDkwMzg3ODE4NjA5MDM4RTAwNEUwMzgwMzgwMDIzODA3MDAwMTQ4MTMwMDAwMUUxNAotNjBBMjVBMTUyMDEyN0MxMjc4MDBGODE0MDBBN0VDN0ZGQ0VDMDNFMDAwNzgxMzAxMTI3QzEyM0NBMjdFQTI3RTdFMzgwMzgwCi0wMjM5MDBFMDA0NjA5MDM4NzgxODIwOTAzODBGRTAwMDFFMjE3RDlGMjQ+STwzOUZGRjA3RkY4MzkwRjAwMDc4MEFEOTBCNQotRkNFQjAwMDdBRjM5RkZGMDdGRjgxRDFGN0U5RTIyPkk8RUFGRkYwRUEwRjAwQjNBQkVBRkZGMDBDMUY3RTlFMTA+STwzOUZGCi1GMDA3RkMzOTBGMDAwM0UwRUMwMTgwMTUwMDE0MDI1QzVDNUM1QzVDNUM0OUM3RkM1QjQ5N0UxMzBGRUIxM0MwRUIyMUUwMTMKLTQxRUI4MEYwRUIwMDc4QTI4MDgwQTI4MEVDMDc4MEEyRUMwM0MwMTVFMDE1RjAzOUZGRjAxRkZFMUYxRjdFOUUyMz43NQotRDxFQUZGRjhFQTBGODA5MEM3RkNCMjE0MDJBNDE0MDYxNDA0QTIxNDBDMTQxQzE0N0NCNTEyRkMxNzFGN0U5RTFDPkk8QjQKLTZDRUIwN0ZFMDAwNzE1QzBBMkQ4MDVDMDEzMEJBMkQ4MDRFMDEzMTNBMzAxNzAxMzIzQTI2RDEzNDNBMzZEMTM4M0EyOTAzOAotMEUwMTAzQTNFQjA3MDJBM0VCMDM4NEEyRUIwMUM4QTNFQjAwRjBBMjE0NjAxMjFGRDhGRkUwRUI3RkZFMjcxRjdGOUUyQT4KLUk8QjRFQjBGRjgzOTBGODAwM0UwRUMwMDgwRUEwQkMwRUEwOUUwQTJFQTA4RjAxMzc4QTI3RjdGQTI3RkVCMDc4MEEyRUIwMwotQzBFQjAxRTBBMkVCMDBGMDE0NzhBMjE0M0MxNDFFQTIxNDBGMTQwN0EyMTQwMzE0MDExMjNFMzhGRjgwMDAxRDFGN0U5RTIyCi0+STxFQjFGRTBFQjcwMzgzODAxQzAwRTQ4NDg3RTM5MDcwMDAzODA0ODE0QzAwMDFFRUIwMUUwNDhFQjAwRjBBMjAwN0MxNAotRjhBMjAwNzgxNDc4MDBGODE0N0NBOTAwNzgxNDc4MDA3QzE0RjhBMjAwM0MxNEYwMDAzRTEzMDEwMDFFMTRFMDZDRUIwM0MwCi02QzE0ODAzOTAzODAwNzAwMzgwMUUwMUUzODAwNzAzOEVCMUZFMDFFMjE3RTlGMjM+STxCNTEyRTAzODBGMDA3QzE0MUU4MAotRUMwNzgwQTIxNUMwQTQxNTgwQTJFQzBGMDAxNDFFMTQ3Q0VCRkZFMDkwQzhGQ0FFRUFGRkYwMUExRjdFOUUxRj5JPEI1MTIKLUUwMzgwRjgwNzgwMDA3MTMxRTgwRUMwNzgwQTIxNUMwQTQxNTgwQTJFQzBGMDAxNDFFMTQ3OEVCRkZFMEVCODA2MDE0MzgxNAotM0MxNDFDMTQxRUEzMTQxRkEzMTUwMTE1ODExNDBGMzkwRkMwMDc4MjM5RkZGQzAzQzRDODEyRjgyMDIwN0Y5RTIyPjgyCi1EPDM4MDNGMDQwMzgwQzBDQzBFQTE4MDNFQTMwMDFFQTYwMDBBMjEyRTAxNDQwQTM2QzEzMDA3RTEyN0NFQTdGODBFQTNGRjgKLTZDQjRGQzAwMDcxMzgwQzYxM0MwRUIxRkUwMTMwMzEzMDFFQjAwRjAxNDcwN0VBNDZDMTM2MDE0RTA2QzEzQzAzOEY4MDE4MAotMzhDNjAzMDBFQTgxRkMxNDIxN0U5RjE5Pkk8MDA3RkI1MTJFMDM4NzgwRjAxMDA2MEVCMDA2MDAwNDAxNDIwQTIwMEMwMTQKLTMwMDA4MDE0MTBBNDAwMDAxNDAwQjM0OTdFMzgwM0ZGRkMxQzFGN0U5RTIxPkk8MzlGRkYwMEZGODM5MEYwMDAzRTBFQzAwCi04MEIzQTQ2Q0VCMDEwMDEzODAxMjAzMTQwMjZDNkM1QTZDNkM1QUVCMzgzMEVCMEZDMDFEMjA3RTlFMjI+STwzOUZGRjAwMwotRkUzOTFGODAwMEY4NkNDNzEyNjAxNTIwNkM2QzEzNDBBMzZDNkMxMzgwQTJFQkUwMDEwMDAxMTQwMEEyMzgwMEYwMDJBMjEzCi1GOEVCNzgwNEEyNkQ1QUEzNkQ1QUEyMTMxRjZENUFBMkVCMDdDMEEzNkQ1QUEzNkRDN0ZDMUYyMDdGOUUyMj5JPDNCRkZGMAotN0ZGODFGRjAzQjFGMDAwRkMwMDdDMDZDOTAzOTA3ODAwMTgwMTcwMDE1QzAwMTgwNUMwMDA3MTUwMkVDMDlFMDEzQzAwMDAzCi01REVDMTlGMDE0MTBEODAxRTA1Q0EyRUMyMDc4RDgwMEYwNUNBMkVDNDAzQzAxNzg1Q0EyRUM4MDFFMDE3QzE0NjAwMTNDMTQKLTQwOTAzODNEMDAwRjEzM0Y2RDVDQTIwMTFFMTMwNzAxMEU5MUM3RkNBMjAxMEM3RjAxMDQxMzAyMkMyMDdGOUUyRj5JPDM5Ci1GRkYwMDFGRjM5MUY4MDAwNzgwMDBGMTQ2MDEyMDc2RDEzNDAwMDAzMTQ4MDdGMzkwMUYwMDEwMDEyMDBFQkY4MDJFQjdDMDYKLUVCM0MwNEVCM0UwODEzMUVFQjFGMTBFQjBGQjBFQjA3QTAxNEUwNkQ1QUFDRUIzRkZDMjAxRjdGOUUyMj44OQotRDwxMkZGQTIxMkMwQjNCM0E1MTJGRkEyMDgyRDdDQTEwRD45MSBEPDEyRkZBMjEyMDNCM0IzQTUxMkZGQTIwODJEODBBMTBECi0+OTMgRDwxMjA4MTIxMDEyMjBBMjEyNDBBMjEyODBBMzEyQjgxMkZDQTIxMjdDMTIzODA2MEU3RDlGMEQ+OTYKLUQ8RUExRkUwRUEzMDMwRUE3ODE4MTMxQ0VBMzAwRTEyMDBBMzEzRkVFQTBGOEVFQTFFMEUxMjM4MTI3ODAwRjAxMzEwQTMxMwotMUUxMjc4MzgzODY3MjAzODBGODNDMDE0MTQ3RTkzMTc+STwxMjFDMTJGQzEyMUNBQTEzN0NFQTFEODczODFFMDE4MEVCMDAKLUMwMDAxQzEzRTAxNDcwQTIxNDc4QTYxNDcwMTRGMDE0RTAwMDFFMTNDMDM4MUEwMTgwMzgxOTg3MDBFQTEwN0MxNTIwN0U5RgotMTk+STxFQTAxRkNFQTA3MDZFQTFDMEYxMjM4MTMwNjAwNzhDN0ZDMTI3MDEyRjBBNjEyNzAxMjc4MDAzODEzODBBMjM4MUMKLTAxMDBFQTA3MDZFQTAxRjgxMTE0N0Y5MzE0Pkk8RUIwMUMwMTMwRjEzMDFBQUVBMDFGMUVBMDcwREVBMEMwM0VBMTgwMTEyCi0zODEyNzgxMjcwMTJGMEE2MTI3MEEyMTIzOEVBMTgwMzEyMENFQTA3MEQzODAxRjFGODE1MjA3RjlGMTk+STxFQTAzRjBFQQotMEUxQzQ4N0U0ODdFQTIzODcwMDM4MEEyMTJGMEI1RkMwMEYwQzdGQ0E0MTI3MEEyNkMxMzgwQTIzODFDMDEwMEVBMDcwNkVBCi0wMUY4MTExNDdGOTMxND5JPDEzN0NFQTAxQzZFQTAzMEYxMjA3RUEwRTA2MTMwMEE3RUFGRkYwRUEwRTAwQjJFQTdGRTAxMAotMjA4MDlGMEU+STwxNEUwMzgwM0UzMzBFQTBFM0NFQTFDMUMzODM4MEUwMEVBNzgwRkE1RUEzODBFNkM1QUVBMUUzOEVBMzMKLUUwMDAyMEM3RkNBMjEyMzBBMkVBM0ZGRTM4MUZGRjgwMTRDMDM4MzAwMUUwMzg2MDAwNzA0ODEzMzBBNDAwNjAxMzYwNkMxMwotQzAzODFDMDM4MDM4MDNGQzAwMTQxRjdGOTQxNz5JPDEyMUMxMkZDMTIxQ0FBMTM3QzEzODZFQTFEMDMwMDFFMTM4MEEyMTIKLTFDQUUzOEZGOEZGMDE0MjA3RTlGMTk+STwxMjM4MTI3Q0EzMTIzOEM3RkNBNjEyMUMxMkZDMTIxQ0IxRUFGRjgwMDkxRjdGCi05RTBDPkk8MTNFMEVBMDFGMEEzRUEwMEUwMTMwMEE2MTM3MEVBMDdGMDEyMDAxMzcwQjNBMzEyNjBFQUYwNjAxM0MwRUE2MQotODBFQTNGMDAwQzI4ODI5RTBFPkk8MTIxQzEyRkMxMjFDQUFFQjFGRTBFQjA3ODBFQjA2MDAxMzA0NUI1QjVCMTM2MDEzRTAKLUVBMURGMEVBMUU3MEVBMUMzODEzM0MxMzFDN0YxMzBGN0YxNDgwMTRDMDM4RkY5RkYwMTQyMDdFOUYxOD5JPDEyMUMxMkZDCi0xMjFDQjNBQkVBRkY4MDA5MjA3RjlGMEM+STwzOTFDM0UwM0UwMzlGQ0MzMEMzMDM5MUQwMTkwMTgwMDFFRUJFMDFDQTIwMAotMUMxM0MwQUUzQUZGOEZGOEZGODAyMTE0N0U5MzI2Pkk8RUExQzdDRUFGQzg2RUExRDAzMDAxRTEzODBBMjEyMUNBRTM4RkYKLThGRjAxNDE0N0U5MzE5Pkk8RUEwMUY4RUEwNzBFMzgxQzAzODAzODM4MDFDMEEyMzg3MDAwRTBBMjAwRjAxM0YwQTYwMDcwCi0xM0UwQTIzODM4MDFDMEEyMzgxQzAzODAzODA3MEUwMEVBMDFGODE0MTQ3RjkzMTc+STxFQTFDN0NFQUZEODczODFFMDE4MAotMTRDMDM4MUMwMEUwMTRGMDE0NzAxNDc4QTYxNDcwMTRGMDE0RTAzODFFMDFDMEVCMDM4MDM4MUQ4NzAwRUExQzdDOTBDN0ZDCi1BOEI0N0UxNTFEN0U5MzE5Pkk8MzgwMUYwNDAzODA3MENDMEVBMEUwMkVBMUMwM0VBMzgwMTEyNzgxMjcwMTJGMEE2MTI3MAotMTI3ODEyMzhFQTFDMDNFQTBDMDVFQTA3MDlFQTAxRjFFQTAwMDFBOEVCMEZGODE1MUQ3RjkzMTg+STxFQTFDRjBFQUZEMTgKLUVBMUUzQ0EyMTMxOEVBMUMwMEFFRUFGRkMwMEUxNDdFOTMxMj5JPEVBMEZDOEVBMzAzOEVBNjAxOEVBQzAwOEEzRUFFMDAwCi0xMjdDRUEzRkUwRUExRkYwRUEwN0Y4RUEwMDNDRUE4MDBFMTMwNjEyQzBBMjEzMDRFQUUwMENFQUQ4MThFQTg3RTAwRjE0N0YKLTkzMTI+STwxMjAyQTMxMjA2QTIxMjBFQTIxMjNFRUFGRkY4RUEwRTAwQUIxMzA0QTVFQTA3MDgxMjAzRUEwMUYwMEUxQzdGCi05QjEyPkk8MzgxQzAzODBFQUZDMUZFQTFDMDNBRTEzMDcxMjBDRUEwNjFCMzgwM0UzRjAxNDE0N0U5MzE5Pkk8MzhGRjgzRjgKLTM4M0UwMEUwMDAxQzEzQzA2QzEzODBBMzM4MDcwMTAwQTIxMzgzRUEwMzgyQTJFQTAxQzRBMjEzRTRFQTAwRThBMjEzNzBBMwotMTMyMDE1MTQ3RjkzMTg+STwzOUZGOUZFMUZDMzkzQzA3ODA3MDM5MUMwMzAwNjBFQzgwMjAwMDBFMTQ0MEEyMTRDMEQ4MDcKLTA0MTM4MDE0RTBBMjM5MDM4ODYxMDAxNDcxQTIzODAxRDAzMjE0M0ExNDNFMzgwMEUwMUNBMkVCNjAxOEVCNDAwODFFMTQ3RgotOTMyMT5JPDM4RkY4N0Y4MzgxRTAzQzAzODBFMDE4MEVCMDMwMEVBMDcwMkVBMDM4NEVBMDFDODEzRDhFQTAwRjAxMzcwMTMKLTc4MTNGODEzOUNFQTAxMEUxMjAyRUEwNjA3MzgwNDAzODAwMDBDMTNDMDAwM0MxM0UwMzhGRTA3RkMxNjE0N0Y5MzE4Pkk8Ci0zOEZGODNGODM4M0UwMEUwMDAxQzEzQzA2QzEzODBBMzM4MDcwMTAwQTIxMzgzRUEwMzgyQTJFQTAxQzRBMjEzRTRFQTAwRTgKLUEyMTM3MEEzMTMyMEEyNUJBM0VBRjA4MEEyMDBGMUM3RkMxMjYyMTIzQzE1MUQ3RjkzMTg+STxFQTdGRkZFQTcwMEUxMjYwCi1FQTQwMUMxMzM4MTM3ODEzNzBFQTAwRTAxMjAxMTNDMEVBMDM4MDEyMDcxMzAxMTIwRTEyMUVFQTFDMDNFQTM4MDJFQTcwMDYKLTEzMEVFQUZGRkUxMDE0N0Y5MzE0PkkgRQotJUVuZERWSVBTQml0bWFwRm9udAotJURWSVBTQml0bWFwRm9udDogRm4gY21ieDEyIDIwLjczNiAxOQotL0ZuIDE5IDEyMiBkZjxEQjFGRkMxNEMwMDIwM0I1RUFDMDAxMDIxRkVDRjAwMzAyN0ZFQ0ZDMDc5MDNCMDFGRkZDMDBGRTBGCi0wMTA3MDFDMEVCMUY5RjQ5NDhDN0VBMDdGRkQ5M0ZGODgwNDk0ODE0MDA0OTQ4MTU3RjQ4NUI0QTE1M0Y0ODkwQzkxMjFGNDgKLTVBMDAwRjE3MEY1QjAwMUYxNzA3QTI0ODVBMTgwM0EyMTI3RkEyNDk5M0M4RkNBMjEyRkZBQTA0MUZCNjEyODAxMjdGQTI3RgotREMwMDAxRUJDMDAwMTIzRkEzNkM3RUEyNkM3RUEyNkM3RTdFNkM3RjgwNkM3RjZENkM1Q0VCM0ZGQ0Q5MEZGRjVDNkQwMUMwCi1FQjFGQkYwMTAxMDFGQ0VCRkYxRjZENkNCNUVBRkUwRjAyMUZFQ0Y4MDMwMjAzRUNFMDAwOTEyNjAwMUZGRUM5RkM0MTNEN0IKLUJCNEM+NzEgRDxCNjEyRjhBNDM5MDA3RkYwMDBCM0IzQUZCNjEyRjhBNDFEM0I3REJBMjQ+NzMKLUQ8QjYxMkZFQTQyNjAwN0ZGMEM5RkNCM0FERUYwM0MwQTUxNzA3MTg4MEEzMTcwRkEzMTcxRkEyMTczRjE3N0YxN0ZGNUUwNAotMDcxMzAwMTYzRkI5RkNBNDMyM0I3REJBM0E+NzYgRDxCNTAwRjAwMjA3QjUxMkUwODA4MDgwRDgwMDdGOTIzOTAwMDdFMDAwCi02RTZGNUE4MTAxN0I3RjgxMTM3OTAxNzg3RjZFN0U2RTdFODExNDFGNkU3RTZFN0Y2RTdGODI4MDZFN0Y2RjdFNkY3RTgyNkYKLTdFODE2RjEzODA2RjEzQzAxN0UwNkYxM0YwODFFRTdGRjhFRTNGRkMxN0ZFRUUxRkZGODI3MDEzODM3MDEzQzMxOEUzNzAxMwotRjM4MkVGN0ZGQkVGM0ZGRkEyODM4MzgzODNBMjgzODMxODdGMTgzRkEyMDFGQzE2MUZCNTAwRkMxNTBGMTgwNzE4MDNBMjQzCi0zQjdDQkE0Qz43OCBEPEI3MTJGOEVFRkZDMDE3RjgxN0ZFM0IwMDdGRjAwMDFGRkYwNDAzMTNDMDA0MDA3RjcxN0U3MTdFQTIKLTg0MTcxRkEyODRBNjYwQTIxNzNGNjA0RDVBNjA0QzQ4NUE0QzVCREMxRkZFQzhGQzkxQjYxMkY4MTdDMEEyOTEzOUYwMDA3RgotRjBFRTFGRjg3MDdFNzA3RTcwN0U4NDgyQTI4NEE1ODRBNUYxMDFFMEEyNzAxM0YwQTJGMTAzQzBFRjdGRjhCNjAwRjg5MDM5Ci0zRkZDMDc4MDk0MzgxRkZFMEYwNTA3QjUxMjAwMDUwMTEzRkNDQkVBMUZGMDQzM0M3Q0JBNDg+ODIKLUQ8QjYwMEY4MDEwN0I1MTJFMEE0MjYwMDdGRjBDODM4MDdFMDAwNzI1QUIzQjNBMzAxM0Y0QzVBQTI4MDAxMUY0Q0M3RkNBMgotNkQ2QzE1MUUwMTA3MTYzRTZFNUQ2RDZDNUQ2RDZEMTMwMTkwMjYwMDdGRTBFQjBGRTBEQTNGRkNFQjdGQzAwMjBGQjY1QTAyCi0wMzRBQzhGQ0RBMDA3RjEzRjAwMzA3MTM4MDQzM0M3REJBNEE+ODUgRDxFQjNGRkU0OEI1MTJFMDAwMDcxNEY4MzkwRkUwMDcKLUZDOTAzOEYwMDFGRTQ4NkM2QzdFNkY3RTgyMTUzRjZDNDg4MDZDNUE2QzVBQzhGQ0E0OTFCNUZDMTMxRjkwMzg3RkY4M0YzOAotMDNGRjgwMzgwN0ZDMDBFQTBGRjA0ODVBMTIzRjQ4NUFBMjQ4NUFBNDE1N0Y2QzdFMTVERjNBM0ZFMDAzOUZGMDNCMUZGODBGCi0wRkZGRTAzODA3RkZGRTAwMDE0OTdFMzkwMDNGRTAwMDJCMjY3REE1MkY+OTcgRDwxM0ZFMTJGRkE0MTIwNzEyMDNCMDRBQjQKLUZDMDIxRjEzRjAwMjdGMTNGQzkxMzhGQzAzRkU5MDM5RkZGMDAwRkYwMkMwRUIzRjgwOTFDN0VBMUZDMDQ5MTVFMEVFMEZGMAotMTdGOEEyRUUwN0ZDQTMxN0ZFQTkxN0ZDQTMxNjBGMTdGODE3RjAxNjFGNkQxNUUwNkVFQjNGQzA2RUVCN0Y4MEQ5RjlFMEVCCi1GRjAwOTAzOUYwRkMwN0ZFOTEzODdGRkZGOEQ5RTAxRjEzRTA5MDI2QzAwM0ZFQzdGQzJGM0M3REJCMzY+STw5MDM4MDFGRgotRjAwMTBGMTNGRTAxM0ZFQkZGODA5MDM5RkY4MDFGQzAzOTAxRkUwMDNGNDg0OEVCN0ZFMDQ4NUE0ODVBMTIxRjQ4NDhFQjNGCi1DMEVEMUY4MDAwN0ZFQzBGMDA0OTkwQzdGQ0EyMTJGRkFBMTI3RjdGQTIxMjNGNkQxNEYwMTIxRjZDNkNFQjAxRTAxMjA3NkMKLTZDRUIwM0MwNkNCNEVCMEY4MDZDOTAzOEMwM0YwMDkwMzgzRkZGRkUwMTBGMTNGODAxMDExM0MwMjQyNjdEQTUyQj5JPEVFCi0zRjgwRUQzRkZGQTQxNTAxODFCMEVDRkY4MDAxMEYxM0YwMDEzRjEzRkM5MDM4RkZDMDNGMzkwMUZFMDAwRjQ4NDgxMzAzNDgKLTQ4N0Y0ODQ4N0YxMjFGNDg1QUEyMTI3RjVCQTMxMkZGQTkxMjdGQTM2QzdFQTIxMjFGNkM2QzVCNkM2QzVCMDAwMzVDRDgwMQotRkUwMTFGMTNDMDI3MDBGRjgwN0UxM0ZFOTAzODdGRkZGODAxMEYxM0UwMDEwMTEzMDAyRjNDN0RCQjM2Pkk8NDlCNDdFMDEKLTBGMTNGMDAxN0YxM0ZDOTAzOEZGODFGRTNBMDNGRTAwN0Y4MEQ4MDdGODEzM0Y0ODQ4RUIxRkMwRUQwRkUwNDg1QTAwM0YxNQotRjAxNTA3NDg1QTE2RjhBMjEyRkZBMjkwQjZGQ0EzMDFDMEM4RkNBNDEyN0ZBMzZDN0UxNjc4MTIxRjdGMDAwRjE1RjA2QzZDCi0xMzAxNkM2Q0VCMDNFMDZDNkNFQjBGQzAzQTAwRkZDMDdGODA5MDM5M0ZGRkZFMDAwMTBGMTNGODAxMDAxM0MwMjUyNjdEQTUKLTJDPkk8RUMxRkYwRUNGRkZDMDEwMzEzRkY5MDM5MEZGODNGODA5MDM4MUZFMDdGOTAzOTNGQzBGRkMwNDk1QTEzRkZBMjQ4Ci05MDM4MDA3RjgwRUQzRjAwMTUxRTkyQzdGQ0FBQjY3RUE0MDAwMTkwQzhGQ0IzQUMwMDdGMTNGRUE0MjIzQzdEQkIxRT5JPAotRUEwMUUwRUEwN0Y4NDg3RUEyNDg3RUE0NkM1QUEyNkM1QUVBMDFFMEM4RkNBQjEzRkUxMjdGQTQxMjA3MTIwM0IzQUFCNTEyCi1GMEE0MTQzRDdEQkMxQT4xMDUgRDwxM0ZFMTJGRkE0MTIwNzEyMDNCM0IzQUVCNTEyRjhBNDE1M0M3REJCMUE+MTA4Ci1EPEQ4MDFGQ0VCRkY4MDAwRkYwMTAzMTNGMDAyMEY3RjkxMzgxRTAzRkM5MTM4MzgwMUZFMDAwNzAxNjA3RjAwMDM0OTdFMDEKLUZEMTU4MDVDMDFGRkM3RkNBMzVCQjNBNEI1RDhGODNGMTNGRUE0MkYyNjdDQTUzNj4xMTAKLUQ8MzkwMUZDMDNGMDAwRkZFQjBGRkM0QUI0RkM5MTM4M0MzRjgwRUM3MDdGMDAwNzkwMzhFMEZGQzAwMDAzNUJFQkZEODBBMgotMDFGRkVCN0Y4MDkxMzgwMDNGMDAxNTFFOTJDN0ZDNUJCM0EzQjUxMkZDQTQyMjI2N0RBNTI4PjExNAotRDw5MDM4M0ZGMDM4MzkwM0ZGRkU3ODQ4RUJGRkY4MzgxRkMwMEYzODNGMDAwMzAwM0UxMzAwNUExNTc4MTJGQ0EyN0U2QzE0Ci0wMDEzQzAxM0ZDMzg3RkZGRjA2QzEzRkVFQ0ZGODA2QzE0QzA2QzE0RTAwMDAzMTRGMEM2MTRGODAxMUYxM0ZDRUIwMDdGRUMKLTA3RkUwMDcwMTMwMTAwRjAxMzAwMTU3RTdFQTI3RTE1N0M2QzE0RkM2QzE0Rjg5MDM4ODAwMUYwOTAzOEYwMEZFMDAwRjlCNQotMTJDMEQ4RjA3RjEzMDAzOEMwMUZGODFGMjY3REE1MjY+STwxMzBGQTU1QkE0NUJBMjVCQTI1QjVBNUE1QTAwMUZFQkZGRjAKLUI2RkNBMzAwMDE5MEM3RkNCMzE1M0NBODZDMTQ3ODE0ODAwMTdGMTNGMDkwMzgzRkMxRTA5MDM4MUZGRkMwNkQxMzgwOTAzOAotMDFGRTAwMUUzNzdFQjYyNj5JPEI1MDBGMEVCRkZGQ0E0RDgwM0ZFQzdFQTFGODA2RDE1MDA2QzE1MUU4MDZDNURBMjZFMTMKLTdDMDE3RjE0Nzg2RTEzRjgwMTNGNUNFQ0YwMDEwMTFGNUNFQ0Y4MDMwMTBGNUNBMkVDRkMwNzAxMDc1Q0VDRkUwRjAxMDM5MQotQzdGQzZFNUE2RDEzMUUxNUJFNkQxM0JDMTVGQzZFNUFBMzZFNUFBMjZFNUFBMjZFNUFBMjZFNUFBMjE0MEY5MkM4RkM1QzE0Ci0xRTAwMDgxMzNFMDA3RjEzM0MxNDdDMzhGRjgwNzgxNEY4RUI4MUYwRUI4M0UwNkM0ODVBMzg3QzFGODBEODNGRkZDOUZDRUEKLTFGRkNFQTA3RjAyRTM3N0VBNTMzPjEyMSBEIEUKLSVFbmREVklQU0JpdG1hcEZvbnQKKyUlQmVnaW5Qcm9jU2V0OiBmN2I2ZDMyMC5lbmMKKyUgVGhvbWFzIEVzc2VyLCBEZWMgMjAwMi4gcHVibGljIGRvbWFpbgorJQorJSBFbmNvZGluZyBmb3I6CislICAgICBjbWIxMCBjbWJ4MTAgY21ieDEyIGNtYng1IGNtYng2IGNtYng3IGNtYng4IGNtYng5IGNtYnhzbDEwCislICAgICBjbWR1bmgxMCBjbXIxMCBjbXIxMiBjbXIxN2NtcjYgY21yNyBjbXI4IGNtcjkgY21zbDEwIGNtc2wxMiBjbXNsOAorJSAgICAgY21zbDkgY21zczEwY21zczEyIGNtc3MxNyBjbXNzOCBjbXNzOSBjbXNzYngxMCBjbXNzZGMxMCBjbXNzaTEwCislICAgICBjbXNzaTEyIGNtc3NpMTcgY21zc2k4Y21zc2k5IGNtc3NxOCBjbXNzcWk4IGNtdnR0MTAKKyUKKy9UZVhmN2I2ZDMyMEVuY29kaW5nIFsKKy9HYW1tYSAvRGVsdGEgL1RoZXRhIC9MYW1iZGEgL1hpIC9QaSAvU2lnbWEgL1Vwc2lsb24gL1BoaSAvUHNpIC9PbWVnYQorL2ZmIC9maSAvZmwgL2ZmaSAvZmZsIC9kb3RsZXNzaSAvZG90bGVzc2ogL2dyYXZlIC9hY3V0ZSAvY2Fyb24gL2JyZXZlCisvbWFjcm9uIC9yaW5nIC9jZWRpbGxhIC9nZXJtYW5kYmxzIC9hZSAvb2UgL29zbGFzaCAvQUUgL09FIC9Pc2xhc2gKKy9zdXBwcmVzcyAvZXhjbGFtIC9xdW90ZWRibHJpZ2h0IC9udW1iZXJzaWduIC9kb2xsYXIgL3BlcmNlbnQgL2FtcGVyc2FuZAorL3F1b3RlcmlnaHQgL3BhcmVubGVmdCAvcGFyZW5yaWdodCAvYXN0ZXJpc2sgL3BsdXMgL2NvbW1hIC9oeXBoZW4KKy9wZXJpb2QgL3NsYXNoIC96ZXJvIC9vbmUgL3R3byAvdGhyZWUgL2ZvdXIgL2ZpdmUgL3NpeCAvc2V2ZW4gL2VpZ2h0CisvbmluZSAvY29sb24gL3NlbWljb2xvbiAvZXhjbGFtZG93biAvZXF1YWwgL3F1ZXN0aW9uZG93biAvcXVlc3Rpb24gL2F0CisvQSAvQiAvQyAvRCAvRSAvRiAvRyAvSCAvSSAvSiAvSyAvTCAvTSAvTiAvTyAvUCAvUSAvUiAvUyAvVCAvVSAvViAvVyAvWAorL1kgL1ogL2JyYWNrZXRsZWZ0IC9xdW90ZWRibGxlZnQgL2JyYWNrZXRyaWdodCAvY2lyY3VtZmxleCAvZG90YWNjZW50CisvcXVvdGVsZWZ0IC9hIC9iIC9jIC9kIC9lIC9mIC9nIC9oIC9pIC9qIC9rIC9sIC9tIC9uIC9vIC9wIC9xIC9yIC9zIC90IC91CisvdiAvdyAveCAveSAveiAvZW5kYXNoIC9lbWRhc2ggL2h1bmdhcnVtbGF1dCAvdGlsZGUgL2RpZXJlc2lzIC9zdXBwcmVzcworLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgL3NwYWNlCisvR2FtbWEgL0RlbHRhIC9UaGV0YSAvTGFtYmRhIC9YaSAvUGkgL1NpZ21hIC9VcHNpbG9uIC9QaGkgL1BzaSAvLm5vdGRlZgorLy5ub3RkZWYgL09tZWdhIC9mZiAvZmkgL2ZsIC9mZmkgL2ZmbCAvZG90bGVzc2kgL2RvdGxlc3NqIC9ncmF2ZSAvYWN1dGUKKy9jYXJvbiAvYnJldmUgL21hY3JvbiAvcmluZyAvY2VkaWxsYSAvZ2VybWFuZGJscyAvYWUgL29lIC9vc2xhc2ggL0FFCisvT0UgL09zbGFzaCAvc3VwcHJlc3MgL2RpZXJlc2lzIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorXSBkZWYKKworJSVFbmRQcm9jU2V0CislJUJlZ2luUHJvY1NldDogMDlmYmJmYWMuZW5jCislIFRob21hcyBFc3NlciwgRGVjIDIwMDIuIHB1YmxpYyBkb21haW4KKyUKKyUgRW5jb2RpbmcgZm9yOgorJSAgICAgY21zbHR0MTAgY210dDEwIGNtdHQxMiBjbXR0OCBjbXR0OQorL1RlWDA5ZmJiZmFjRW5jb2RpbmcgWworL0dhbW1hIC9EZWx0YSAvVGhldGEgL0xhbWJkYSAvWGkgL1BpIC9TaWdtYSAvVXBzaWxvbiAvUGhpIC9Qc2kKKy9PbWVnYSAvYXJyb3d1cCAvYXJyb3dkb3duIC9xdW90ZXNpbmdsZSAvZXhjbGFtZG93biAvcXVlc3Rpb25kb3duCisvZG90bGVzc2kgL2RvdGxlc3NqIC9ncmF2ZSAvYWN1dGUgL2Nhcm9uIC9icmV2ZSAvbWFjcm9uIC9yaW5nIC9jZWRpbGxhCisvZ2VybWFuZGJscyAvYWUgL29lIC9vc2xhc2ggL0FFIC9PRSAvT3NsYXNoIC92aXNpYmxlc3BhY2UgL2V4Y2xhbQorL3F1b3RlZGJsIC9udW1iZXJzaWduIC9kb2xsYXIgL3BlcmNlbnQgL2FtcGVyc2FuZCAvcXVvdGVyaWdodCAvcGFyZW5sZWZ0CisvcGFyZW5yaWdodCAvYXN0ZXJpc2sgL3BsdXMgL2NvbW1hIC9oeXBoZW4gL3BlcmlvZCAvc2xhc2ggL3plcm8gL29uZQorL3R3byAvdGhyZWUgL2ZvdXIgL2ZpdmUgL3NpeCAvc2V2ZW4gL2VpZ2h0IC9uaW5lIC9jb2xvbiAvc2VtaWNvbG9uIC9sZXNzCisvZXF1YWwgL2dyZWF0ZXIgL3F1ZXN0aW9uIC9hdCAvQSAvQiAvQyAvRCAvRSAvRiAvRyAvSCAvSSAvSiAvSyAvTCAvTSAvTgorL08gL1AgL1EgL1IgL1MgL1QgL1UgL1YgL1cgL1ggL1kgL1ogL2JyYWNrZXRsZWZ0IC9iYWNrc2xhc2ggL2JyYWNrZXRyaWdodAorL2FzY2lpY2lyY3VtIC91bmRlcnNjb3JlIC9xdW90ZWxlZnQgL2EgL2IgL2MgL2QgL2UgL2YgL2cgL2ggL2kgL2ogL2sgL2wKKy9tIC9uIC9vIC9wIC9xIC9yIC9zIC90IC91IC92IC93IC94IC95IC96IC9icmFjZWxlZnQgL2JhciAvYnJhY2VyaWdodAorL2FzY2lpdGlsZGUgL2RpZXJlc2lzIC92aXNpYmxlc3BhY2UgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC9zcGFjZSAvR2FtbWEgL0RlbHRhIC9UaGV0YSAvTGFtYmRhIC9YaSAvUGkKKy9TaWdtYSAvVXBzaWxvbiAvUGhpIC9Qc2kgLy5ub3RkZWYgLy5ub3RkZWYgL09tZWdhIC9hcnJvd3VwIC9hcnJvd2Rvd24KKy9xdW90ZXNpbmdsZSAvZXhjbGFtZG93biAvcXVlc3Rpb25kb3duIC9kb3RsZXNzaSAvZG90bGVzc2ogL2dyYXZlIC9hY3V0ZQorL2Nhcm9uIC9icmV2ZSAvbWFjcm9uIC9yaW5nIC9jZWRpbGxhIC9nZXJtYW5kYmxzIC9hZSAvb2UgL29zbGFzaCAvQUUKKy9PRSAvT3NsYXNoIC92aXNpYmxlc3BhY2UgL2RpZXJlc2lzIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorXSBkZWYKKworJSVFbmRQcm9jU2V0CislJUJlZ2luUHJvY1NldDogYmJhZDE1M2YuZW5jCislIFRob21hcyBFc3NlciwgRGVjIDIwMDIuIHB1YmxpYyBkb21haW4KKyUKKyUgRW5jb2RpbmcgZm9yOgorJSAgICAgY21zeTEwIGNtc3k1IGNtc3k2IGNtc3k3IGNtc3k4IGNtc3k5CislCisvVGVYYmJhZDE1M2ZFbmNvZGluZyBbCisvbWludXMgL3BlcmlvZGNlbnRlcmVkIC9tdWx0aXBseSAvYXN0ZXJpc2ttYXRoIC9kaXZpZGUgL2RpYW1vbmRtYXRoCisvcGx1c21pbnVzIC9taW51c3BsdXMgL2NpcmNsZXBsdXMgL2NpcmNsZW1pbnVzIC9jaXJjbGVtdWx0aXBseQorL2NpcmNsZWRpdmlkZSAvY2lyY2xlZG90IC9jaXJjbGVjb3B5cnQgL29wZW5idWxsZXQgL2J1bGxldAorL2VxdWl2YXN5bXB0b3RpYyAvZXF1aXZhbGVuY2UgL3JlZmxleHN1YnNldCAvcmVmbGV4c3VwZXJzZXQgL2xlc3NlcXVhbAorL2dyZWF0ZXJlcXVhbCAvcHJlY2VkZXNlcXVhbCAvZm9sbG93c2VxdWFsIC9zaW1pbGFyIC9hcHByb3hlcXVhbAorL3Byb3BlcnN1YnNldCAvcHJvcGVyc3VwZXJzZXQgL2xlc3NtdWNoIC9ncmVhdGVybXVjaCAvcHJlY2VkZXMgL2ZvbGxvd3MKKy9hcnJvd2xlZnQgL2Fycm93cmlnaHQgL2Fycm93dXAgL2Fycm93ZG93biAvYXJyb3dib3RoIC9hcnJvd25vcnRoZWFzdAorL2Fycm93c291dGhlYXN0IC9zaW1pbGFyZXF1YWwgL2Fycm93ZGJsbGVmdCAvYXJyb3dkYmxyaWdodCAvYXJyb3dkYmx1cAorL2Fycm93ZGJsZG93biAvYXJyb3dkYmxib3RoIC9hcnJvd25vcnRod2VzdCAvYXJyb3dzb3V0aHdlc3QgL3Byb3BvcnRpb25hbAorL3ByaW1lIC9pbmZpbml0eSAvZWxlbWVudCAvb3duZXIgL3RyaWFuZ2xlIC90cmlhbmdsZWludiAvbmVnYXRpb25zbGFzaAorL21hcHN0byAvdW5pdmVyc2FsIC9leGlzdGVudGlhbCAvbG9naWNhbG5vdCAvZW1wdHlzZXQgL1JmcmFjdHVyIC9JZnJhY3R1cgorL2xhdHRpY2V0b3AgL3BlcnBlbmRpY3VsYXIgL2FsZXBoIC9BIC9CIC9DIC9EIC9FIC9GIC9HIC9IIC9JIC9KIC9LCisvTCAvTSAvTiAvTyAvUCAvUSAvUiAvUyAvVCAvVSAvViAvVyAvWCAvWSAvWiAvdW5pb24gL2ludGVyc2VjdGlvbgorL3VuaW9ubXVsdGkgL2xvZ2ljYWxhbmQgL2xvZ2ljYWxvciAvdHVybnN0aWxlbGVmdCAvdHVybnN0aWxlcmlnaHQKKy9mbG9vcmxlZnQgL2Zsb29ycmlnaHQgL2NlaWxpbmdsZWZ0IC9jZWlsaW5ncmlnaHQgL2JyYWNlbGVmdCAvYnJhY2VyaWdodAorL2FuZ2JyYWNrZXRsZWZ0IC9hbmdicmFja2V0cmlnaHQgL2JhciAvYmFyZGJsIC9hcnJvd2JvdGh2IC9hcnJvd2RibGJvdGh2CisvYmFja3NsYXNoIC93cmVhdGhwcm9kdWN0IC9yYWRpY2FsIC9jb3Byb2R1Y3QgL25hYmxhIC9pbnRlZ3JhbAorL3VuaW9uc3EgL2ludGVyc2VjdGlvbnNxIC9zdWJzZXRzcWVxdWFsIC9zdXBlcnNldHNxZXF1YWwgL3NlY3Rpb24KKy9kYWdnZXIgL2RhZ2dlcmRibCAvcGFyYWdyYXBoIC9jbHViIC9kaWFtb25kIC9oZWFydCAvc3BhZGUgL2Fycm93bGVmdAorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy9taW51cyAvcGVyaW9kY2VudGVyZWQgL211bHRpcGx5IC9hc3Rlcmlza21hdGggL2RpdmlkZSAvZGlhbW9uZG1hdGgKKy9wbHVzbWludXMgL21pbnVzcGx1cyAvY2lyY2xlcGx1cyAvY2lyY2xlbWludXMgLy5ub3RkZWYgLy5ub3RkZWYKKy9jaXJjbGVtdWx0aXBseSAvY2lyY2xlZGl2aWRlIC9jaXJjbGVkb3QgL2NpcmNsZWNvcHlydCAvb3BlbmJ1bGxldAorL2J1bGxldCAvZXF1aXZhc3ltcHRvdGljIC9lcXVpdmFsZW5jZSAvcmVmbGV4c3Vic2V0IC9yZWZsZXhzdXBlcnNldAorL2xlc3NlcXVhbCAvZ3JlYXRlcmVxdWFsIC9wcmVjZWRlc2VxdWFsIC9mb2xsb3dzZXF1YWwgL3NpbWlsYXIKKy9hcHByb3hlcXVhbCAvcHJvcGVyc3Vic2V0IC9wcm9wZXJzdXBlcnNldCAvbGVzc211Y2ggL2dyZWF0ZXJtdWNoCisvcHJlY2VkZXMgL2ZvbGxvd3MgL2Fycm93bGVmdCAvc3BhZGUgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCitdIGRlZgorCislJUVuZFByb2NTZXQKKyUlQmVnaW5Qcm9jU2V0OiA3NGFmYzc0Yy5lbmMKKyUgVGhvbWFzIEVzc2VyLCBEZWMgMjAwMi4gcHVibGljIGRvbWFpbgorJQorJSBFbmNvZGluZyBmb3I6CislICAgICBjbWJ4dGkxMCBjbWZmMTAgY21maTEwIGNtZmliOCBjbXRpMTAgY210aTEyIGNtdGk3IGNtdGk4Y210aTkgY211MTAKKyUKKy9UZVg3NGFmYzc0Y0VuY29kaW5nIFsKKy9HYW1tYSAvRGVsdGEgL1RoZXRhIC9MYW1iZGEgL1hpIC9QaSAvU2lnbWEgL1Vwc2lsb24gL1BoaSAvUHNpIC9PbWVnYQorL2ZmIC9maSAvZmwgL2ZmaSAvZmZsIC9kb3RsZXNzaSAvZG90bGVzc2ogL2dyYXZlIC9hY3V0ZSAvY2Fyb24gL2JyZXZlCisvbWFjcm9uIC9yaW5nIC9jZWRpbGxhIC9nZXJtYW5kYmxzIC9hZSAvb2UgL29zbGFzaCAvQUUgL09FIC9Pc2xhc2gKKy9zdXBwcmVzcyAvZXhjbGFtIC9xdW90ZWRibHJpZ2h0IC9udW1iZXJzaWduIC9zdGVybGluZyAvcGVyY2VudAorL2FtcGVyc2FuZCAvcXVvdGVyaWdodCAvcGFyZW5sZWZ0IC9wYXJlbnJpZ2h0IC9hc3RlcmlzayAvcGx1cyAvY29tbWEKKy9oeXBoZW4gL3BlcmlvZCAvc2xhc2ggL3plcm8gL29uZSAvdHdvIC90aHJlZSAvZm91ciAvZml2ZSAvc2l4IC9zZXZlbgorL2VpZ2h0IC9uaW5lIC9jb2xvbiAvc2VtaWNvbG9uIC9leGNsYW1kb3duIC9lcXVhbCAvcXVlc3Rpb25kb3duIC9xdWVzdGlvbgorL2F0IC9BIC9CIC9DIC9EIC9FIC9GIC9HIC9IIC9JIC9KIC9LIC9MIC9NIC9OIC9PIC9QIC9RIC9SIC9TIC9UIC9VIC9WIC9XCisvWCAvWSAvWiAvYnJhY2tldGxlZnQgL3F1b3RlZGJsbGVmdCAvYnJhY2tldHJpZ2h0IC9jaXJjdW1mbGV4IC9kb3RhY2NlbnQKKy9xdW90ZWxlZnQgL2EgL2IgL2MgL2QgL2UgL2YgL2cgL2ggL2kgL2ogL2sgL2wgL20gL24gL28gL3AgL3EgL3IgL3MgL3QgL3UKKy92IC93IC94IC95IC96IC9lbmRhc2ggL2VtZGFzaCAvaHVuZ2FydW1sYXV0IC90aWxkZSAvZGllcmVzaXMgL3N1cHByZXNzCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvc3BhY2UKKy9HYW1tYSAvRGVsdGEgL1RoZXRhIC9MYW1iZGEgL1hpIC9QaSAvU2lnbWEgL1Vwc2lsb24gL1BoaSAvUHNpIC8ubm90ZGVmCisvLm5vdGRlZiAvT21lZ2EgL2ZmIC9maSAvZmwgL2ZmaSAvZmZsIC9kb3RsZXNzaSAvZG90bGVzc2ogL2dyYXZlIC9hY3V0ZQorL2Nhcm9uIC9icmV2ZSAvbWFjcm9uIC9yaW5nIC9jZWRpbGxhIC9nZXJtYW5kYmxzIC9hZSAvb2UgL29zbGFzaCAvQUUKKy9PRSAvT3NsYXNoIC9zdXBwcmVzcyAvZGllcmVzaXMgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCitdIGRlZgorCislJUVuZFByb2NTZXQKKyUlQmVnaW5Qcm9jU2V0OiAwZWYwYWZjYS5lbmMKKyUgVGhvbWFzIEVzc2VyLCBEZWMgMjAwMi4gcHVibGljIGRvbWFpbgorJQorJSBFbmNvZGluZyBmb3I6CislICAgICBjbXI1CislCisvVGVYMGVmMGFmY2FFbmNvZGluZyBbCisvR2FtbWEgL0RlbHRhIC9UaGV0YSAvTGFtYmRhIC9YaSAvUGkgL1NpZ21hIC9VcHNpbG9uIC9QaGkgL1BzaSAvT21lZ2EKKy9hcnJvd3VwIC9hcnJvd2Rvd24gL3F1b3Rlc2luZ2xlIC9leGNsYW1kb3duIC9xdWVzdGlvbmRvd24gL2RvdGxlc3NpCisvZG90bGVzc2ogL2dyYXZlIC9hY3V0ZSAvY2Fyb24gL2JyZXZlIC9tYWNyb24gL3JpbmcgL2NlZGlsbGEgL2dlcm1hbmRibHMKKy9hZSAvb2UgL29zbGFzaCAvQUUgL09FIC9Pc2xhc2ggL3N1cHByZXNzIC9leGNsYW0gL3F1b3RlZGJscmlnaHQKKy9udW1iZXJzaWduIC9kb2xsYXIgL3BlcmNlbnQgL2FtcGVyc2FuZCAvcXVvdGVyaWdodCAvcGFyZW5sZWZ0CisvcGFyZW5yaWdodCAvYXN0ZXJpc2sgL3BsdXMgL2NvbW1hIC9oeXBoZW4gL3BlcmlvZCAvc2xhc2ggL3plcm8gL29uZQorL3R3byAvdGhyZWUgL2ZvdXIgL2ZpdmUgL3NpeCAvc2V2ZW4gL2VpZ2h0IC9uaW5lIC9jb2xvbiAvc2VtaWNvbG9uCisvbGVzcyAvZXF1YWwgL2dyZWF0ZXIgL3F1ZXN0aW9uIC9hdCAvQSAvQiAvQyAvRCAvRSAvRiAvRyAvSCAvSSAvSiAvSworL0wgL00gL04gL08gL1AgL1EgL1IgL1MgL1QgL1UgL1YgL1cgL1ggL1kgL1ogL2JyYWNrZXRsZWZ0IC9xdW90ZWRibGxlZnQKKy9icmFja2V0cmlnaHQgL2NpcmN1bWZsZXggL2RvdGFjY2VudCAvcXVvdGVsZWZ0IC9hIC9iIC9jIC9kIC9lIC9mIC9nIC9oCisvaSAvaiAvayAvbCAvbSAvbiAvbyAvcCAvcSAvciAvcyAvdCAvdSAvdiAvdyAveCAveSAveiAvZW5kYXNoIC9lbWRhc2gKKy9odW5nYXJ1bWxhdXQgL3RpbGRlIC9kaWVyZXNpcyAvc3VwcHJlc3MgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC9zcGFjZSAvR2FtbWEgL0RlbHRhIC9UaGV0YSAvTGFtYmRhCisvWGkgL1BpIC9TaWdtYSAvVXBzaWxvbiAvUGhpIC9Qc2kgLy5ub3RkZWYgLy5ub3RkZWYgL09tZWdhIC9hcnJvd3VwCisvYXJyb3dkb3duIC9xdW90ZXNpbmdsZSAvZXhjbGFtZG93biAvcXVlc3Rpb25kb3duIC9kb3RsZXNzaSAvZG90bGVzc2oKKy9ncmF2ZSAvYWN1dGUgL2Nhcm9uIC9icmV2ZSAvbWFjcm9uIC9yaW5nIC9jZWRpbGxhIC9nZXJtYW5kYmxzIC9hZSAvb2UKKy9vc2xhc2ggL0FFIC9PRSAvT3NsYXNoIC9zdXBwcmVzcyAvZGllcmVzaXMgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCisvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZiAvLm5vdGRlZgorLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYgLy5ub3RkZWYKKy8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmIC8ubm90ZGVmCitdIGRlZgorCislJUVuZFByb2NTZXQKKyUlQmVnaW5Qcm9jU2V0OiB0ZXhwcy5wcm8KKyUhCitUZVhEaWN0IGJlZ2luL3Jme2ZpbmRmb250IGR1cCBsZW5ndGggMSBhZGQgZGljdCBiZWdpbnsxIGluZGV4L0ZJRCBuZSAyCitpbmRleC9VbmlxdWVJRCBuZSBhbmR7ZGVmfXtwb3AgcG9wfWlmZWxzZX1mb3JhbGxbMSBpbmRleCAwIDYgLTEgcm9sbAorZXhlYyAwIGV4Y2ggNSAtMSByb2xsIFZSZXNvbHV0aW9uIFJlc29sdXRpb24gZGl2IG11bCBuZWcgMCAwXUZvbnRUeXBlIDAKK25ley9NZXRyaWNzIGV4Y2ggZGVmIGRpY3QgYmVnaW4gRW5jb2Rpbmd7ZXhjaCBkdXAgdHlwZS9pbnRlZ2VydHlwZSBuZXsKK3BvcCBwb3AgMSBzdWIgZHVwIDAgbGV7cG9wfXtbfWlmZWxzZX17Rm9udE1hdHJpeCAwIGdldCBkaXYgTWV0cmljcyAwIGdldAorZGl2IGRlZn1pZmVsc2V9Zm9yYWxsIE1ldHJpY3MvTWV0cmljcyBjdXJyZW50ZGljdCBlbmQgZGVmfXt7MSBpbmRleCB0eXBlCisvbmFtZXR5cGUgZXF7ZXhpdH1pZiBleGNoIHBvcH1sb29wfWlmZWxzZVsyIGluZGV4IGN1cnJlbnRkaWN0IGVuZAorZGVmaW5lZm9udCAzIC0xIHJvbGwgbWFrZWZvbnQvc2V0Zm9udCBjdnhdY3Z4IGRlZn1kZWYvT2JsaXF1ZVNsYW50e2R1cAorc2luIFMgY29zIGRpdiBuZWd9Qi9TbGFudEZvbnR7NCBpbmRleCBtdWwgYWRkfWRlZi9FeHRlbmRGb250ezMgLTEgcm9sbAorbXVsIGV4Y2h9ZGVmL1JlRW5jb2RlRm9udHtDaGFyU3RyaW5ncyByY2hlY2t7L0VuY29kaW5nIGZhbHNlIGRlZiBkdXBbCitleGNoe2R1cCBDaGFyU3RyaW5ncyBleGNoIGtub3duIG5vdHtwb3AvLm5vdGRlZi9FbmNvZGluZyB0cnVlIGRlZn1pZn0KK2ZvcmFsbCBFbmNvZGluZ3tdZXhjaCBwb3B9e2NsZWFydG9tYXJrfWlmZWxzZX1pZi9FbmNvZGluZyBleGNoIGRlZn1kZWYKIGVuZAorCislJUVuZFByb2NTZXQKKyUlQmVnaW5Gb250OiBDTVNMVFQxMAorJSFQUy1BZG9iZUZvbnQtMS4xOiBDTVNMVFQxMCAxLjAKKyUlQ3JlYXRpb25EYXRlOiAxOTkxIEF1ZyAyMCAxNjo0MTo0MworJSBDb3B5cmlnaHQgKEMpIDE5OTcgQW1lcmljYW4gTWF0aGVtYXRpY2FsIFNvY2lldHkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisxMSBkaWN0IGJlZ2luCisvRm9udEluZm8gNyBkaWN0IGR1cCBiZWdpbgorL3ZlcnNpb24gKDEuMCkgcmVhZG9ubHkgZGVmCisvTm90aWNlIChDb3B5cmlnaHQgKEMpIDE5OTcgQW1lcmljYW4gTWF0aGVtYXRpY2FsIFNvY2lldHkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQpIHJlYWRvbmx5IGRlZgorL0Z1bGxOYW1lIChDTVNMVFQxMCkgcmVhZG9ubHkgZGVmCisvRmFtaWx5TmFtZSAoQ29tcHV0ZXIgTW9kZXJuKSByZWFkb25seSBkZWYKKy9XZWlnaHQgKE1lZGl1bSkgcmVhZG9ubHkgZGVmCisvSXRhbGljQW5nbGUgLTkuNDYgZGVmCisvaXNGaXhlZFBpdGNoIHRydWUgZGVmCitlbmQgcmVhZG9ubHkgZGVmCisvRm9udE5hbWUgL0NNU0xUVDEwIGRlZgorL1BhaW50VHlwZSAwIGRlZgorL0ZvbnRUeXBlIDEgZGVmCisvRm9udE1hdHJpeCBbMC4wMDEgMCAwIDAuMDAxIDAgMF0gcmVhZG9ubHkgZGVmCisvRW5jb2RpbmcgMjU2IGFycmF5CiswIDEgMjU1IHsxIGluZGV4IGV4Y2ggLy5ub3RkZWYgcHV0fSBmb3IKK2R1cCAwIC8ubm90ZGVmIHB1dAorcmVhZG9ubHkgZGVmCisvRm9udEJCb3h7LTIwIC0yMzMgNjE3IDY5Nn1yZWFkb25seSBkZWYKKy9VbmlxdWVJRCA1MDAwODAwIGRlZgorY3VycmVudGRpY3QgZW5kCitjdXJyZW50ZmlsZSBlZXhlYworRDlENjZGNjMzQjg0NkE5N0I2ODZBOTdFNDVBM0QwQUEwNTI4QTQwNURGMTVGMDNEQjFDM0RBOEI4NTA0MzFGOAorMEU1RjczREFDOTczNDUwRDFFRDA1MzAzMTMwNTdFOTcxRkM3RTdDQTg4RTYxREE2REI5QTVDRDYxRjBGNzZDQgorNERFOTEwNUQwNjI3QjhEREY1MUE2NTUwOTgyMjk5MjBDRjQyOUNEQUZDM0Y3Nzg4Qzk1RTdBQjMwRTg0Rjg0MAorOENFRDUyRTk4REI0Q0ZGMTYxRDJFNjJCMEQyOENCOEIwQUM4MkU3QThEMkMwMDc5NTNCQUZCMzA1NkQ2NjA3OQorODA2NDk1NkUyNTdEMzFDMTM1MDlGQjgxQTI1MEQ5RTg3NUM3N0E0RTkxQ0M0OUU5RkIzQzA3MThCMkY2OTFENAorQjRBNjRGMzUxRjRERDY4MTMzREVENzYyOUIwRDk2RTUxMjQ1ODRBMTZGRDJBQzdBM0VCMjQ0QTkzNEZGMDU5RgorRUQ3Mjk3QjA1MDVGM0MyOTk0QUQ2NkEzQ0E1RDI3MjhCMDM0REU5NEI2NEE4QUZBRjM0MTYwMUJENERCNTg1OAorQzk5NTBBOEJCOUM1OThCODk2MDYwOUY0ODExNkFCQThDMDA3MTkwQUYwRUQzMzVFQjVCRjYxQkE2ODcxRkE1RgorRUFCNUEyNkFFQjVDN0MzNTJFQjgwNzk5Q0VCOTgzRjE5RUVGQTgwMTA5M0Y2MjA4NkFBREQwQjgwQkI2NTgwRgorMkNGNjFCMTM5MEZBNTZERkExQTBCNjFDNThERUY5NkJBNzY3QThBMzdFQTQ0NzMwNzgzQzYwMDcwNjYwNkM2MAorNEVFNzRFQTk5QjdDMEY4RTI1MjVDODg0N0YzRDMxOTA3QzNDNDgzRUZBOThGNkM0MTZCNkIyQzM0M0RFNjM3MAorNTJGQUU0MjMwMDhEMDg2QTc2QTFGRkIzMjdDQzdGRDg0QjFDNjZCMjAzQTRGNDE1ODJGNDU5OUE4MkY4MzYyRAorMzgxMDg0NTJFQUNDQzkzN0ZGQzRGM0FCQkZFMzYyOERGNTEzNjdEQTZCQTNGNjgyNkZDNjUyMkQ2QUM1RThFQQorMDBCQUQzMDBGRkI2REVEQUI5MzIzNzcwNDIwMkJBQ0QwMzBBQTgyNEIxRTk3QzBBRkUxN0ZDRThDNzVGNEZBMAorQjhBNzQzMjlBNkNGMTc4OEM3RUIzNERBNzMwNzQxMUU5QUQ3RUQ4RDY1ODI4ODQ0NTZFMDZFMDMzQjRGRkU3RAorQ0Q0REQ4QjA2QUQwMTM0MENDQ0ZCQzM4MkMxOENBNDUxRTRDODg2QjAxRDA4MkZGOENDNTc5M0Y0NzI3QzNERgorQjUyQjRGMUEyNDJGMzFEMUVCNzlEMUUzOUExRDRGRDEzRDZDNUUyQTQyQUQ0QjREMUNDNEVFN0JBMEU1RjgwRgorODAyRTVBQjU3RUExNUY0REU0NEQ4MkFDNDA4QUE4NkQ0QkY1OEVGOTY3RkJDNjQ5N0JCQzdGMDE3QzA1OThBRQorMzJDRjg2NURGRkYwRkM3RkY5RTZEQ0U5QjVGMkY0Qzc0OTFBQzY3NEY0NkU4RTc2NjA0NTJDRTBBNzdDMUVFOAorMDBERTM4MkFCRUQ4NTM1MDAzM0Y4RUNCOTczOThFNEUwQTc1RDQ4NzdBMTA3RjZBOTA5RDBDNzZEMTRGOUE5NgorOEE2Q0ZERTNGRDlENzlCNkZEODI2OTNBOUYzNTRCRDJFQ0YzMEM2RDk5RjdBQzUyMkY4RDZDOTNFQTIxNEY3QgorM0QwRUQ3N0YwNDJBQ0RFOTQxNDI2NEMwNjk4RTg2Mzk4NTYyRTJDNjQwREVCQkEwNzM0QUI0QzNBQ0UzOTA3RAorQ0M3OUU2QjJDNkMzQzNGOUIwMTUyNkU4Q0Q5ODIzN0Q0QTlCNDAzRkY4Q0UzMTMyMjIyRkE2MEMxOTZBMTlCQworQTIzOTNBRTY5MzVDMEY4QjY3RkMxRDFBMTJBNDVFRDVGMjhCNUQ2QTI2NkEzRUNBQTVCQzM0MjlGMkIyRkZERAorNzBGNTBBOTRDQUNBNkFBNkIyMjE1QjQxRUE2ODNERjEzNjc5RTlDOTUwMjc2Mjk0QjE1MzcwMjU2RjE3RTNFOAorNUZCOEI1NzVFN0Q0QTNGQzlCRDhBNUZBRTZGQ0E1M0RGNjc4RjM3NzAxRTgzRjE4RjFFMTE2RTkwMUEzOURDQgorQzA1Q0Y3MkJGQUY3RkQ4Q0M2QTYzQTIzQzFDRkMwNjRFRjMyRjNGNjdFRTQ3QjQyMDlBNUY4M0E1QjI2ODFDNworODM0OUIwQzY4NkU5RDk4NDQyNDJDMjhERUM1RTMzREY0ODA0MThGNzg0RUY2NzY2ODFENTJFRDIzNDU2MUI2MgorNEI3ODk2REVDODQ3QTc4Mzc4OUJGQTQxNTkyNzk0Mzg0MDRENTk2QzlFNjc4OUI1QzYzQzc0OUFGMEMzRkJCMworQUFERkMwMjJCODY4MkZEMjFGMTM0NjBGRTQ4MEM2QjhDQzFGQjRFQUM4RTdBQUZEQ0ZEQUQzOTUwOEVGOUI2MQorQkJDQzczRjkwRkI0MEU5NEVBQzA0ODkyODMxNzUzRjE1RTA2Rjc3Mzk5RjhBREI1MDhGNDExQTg5QTAzOTlCNAorMjQwQzI4RTRERERBOThCOUU3NzFGRTZBQTBFMkM4REUwNEREQThBRTU0QkQxQTkwREFGQzFCMEI2Njk2NEYzRQorMzE0NzVEQkJDM0QzQkEyQ0EyQzNENTVEOTE5MTdGNkU0OTZFRkJDRDVDQkM0NkEyN0RCN0UzRkQyMjlERTVBRQorQTE5NEU0Qjc2N0Y5MzNDNDM0RDIwNEJCMDgwQTVDMjQ4MDVBMjNFNDc3QkNGRjZEMTlEQjIyRkFGRkVCOTdDQQorNTQ0NTEyOTc3M0Q0MEE0MzUzN0YxNUVFOTBDQzM5OUVGNThDMzEyNTNCQkMwMTc3RDA1QTFEQkYyM0VCMjZEMAorMTU5RkE0RDIwRTVFNUIwNEExMjVGRkY4NUNEMTE1NEIyMEJDNUJGQkExOEY4NzY3MEEyQkYxQTMyQTY5NkE3MAorNEU4MkVCRUM4MDRENzk4MjAyREFGNTM3QjQ2OEI1ODgwRkNBQzc1QkRDRkJGNjVGRTZFQkI5M0ExMzA5RDM0MworMDlDQ0YxQjgxMTU1NzYxODA5RTRBQkE1M0NDOUJGOEQzRkVDNTYwMkE2RjM1NjFDRjJBRjZEMEEzNUI4ODc2QQorOEJFNENDQkNCMkRFNEU0RDA3RjUwRjlDNUY4MzFDNDk5QURDMzU4MjdGN0Y3QkU3RTFFMENFMUJGMkUzNTc4RQorRkEyOTJDMENGQ0ExMDMyOTE1NkZDNzlCRTNEODAyMjU3OTRERTcwNjJCOENFMjMyMzU1MDA3RjUzRjkxODRCQQorOTNGMkM4RjBFQzhGRDg4RjAxMzk3RTFFQzJBREJBQTg4OUMwMDNBRTQ4NDdCRDA4RkJEOTY3M0M0QjREMjBENworNTNEMEZEMTFGRTRERTMwQUYwMUFGMDE0MTU3M0RFQjBCMDU0REUyNDQwMzVFNjE2MTk2MkQ5QkE4MzZENDJCOQorOEI4MDA2QTQwRTM1N0UyODg1OUQ4NjcwNTJDRTdEQUE4NkYzMjY0MUMxNzY0QTUxRjYzMUNCQTNGQzIwNjY2NworODE4NjNCMjhDNUJFRTc4QzU3NEYxOTQ2MjUzRDE5MkM1MENFRDk3NDZCMDFDRjRCRUREQjVBQjc0OTJFMzZCMAorRkREQjkwMjA2QzU0MTA1NTFFQTJGNDRFNDI3QjZBMjU0RkIyRTk2NTkzMkRGQThBNDQ2NUI1MDkyNzZDREFGMworQ0ZFNkZDOTk2M0Y4MDE4MTNBMDNENDM0Qjc0MjczQkM0RkJBNkZGQjg1NDVBMTBCNDUzRjhBQzgwODZEQTlDQgorNDlBNzAxQzUwMEZEM0QxNTc3QTIxNTAyNkVFQjFBRDI2MTYyMjNDQzY1RTM0Q0E4NEQxQkFCODk2RUU2MEMwOAorNzcwOEJCMEU1RkZBQzlFRTFBMjRGNzJGMDNDMTNCOEEyNzUyNjRDRTI2NzcyODA4NDM4ODM2NUZGNzlCODk1QworQjY1QTMzMDExQkJFQjIzNTYwMTY3ODZGNjJFQkNFNzY1ODkxQ0NFQkM1QTU3NDUzQUExQUU3NzExNDdEMjNDNQorN0UyODlCNjdDOTRBNEM3REJCMzUyMEE3RTVCQTkzOEREREUzNjBGRjY5NDg0Q0M0RjMxRDU3MjcxQkUyRDE5RgorN0U2ODlERDgzNzNFQzJDRjdFMzg3NDcxMUYzRTNFREVFQjA5NDM1QUEwOTA5NDE4QUQ3NjA3NDk0NEMwNkJDNgorMTBDMDg3MzM5RjU3QTFDODI4RTFEQ0FDOEI2RjdEMUY5NEEyNTEzM0Q3MkU2OEJBMEMxNTU4NkM5OTc1ODFCNQorOTU3RjU5RDA0NDVEMzlFMEY4MjI2RDRDNjIxRTlCMTIyNTZFQjU4M0E3RUU0QTVFQkQxNUIzRTZCQzlGNjY4NworMjg3MzVFQzQ5NjIzMzJERUFEMkQyQTI4NzE0RkI4RjYwNkIzNThFM0U5QUJDODY4RTE2OUUzRkNFQTQwOUE0OAorNjk5OEE1RjQ0NENFMTNGNjVGM0Y5RDRCMkE5MENGNDgzMzQ2MzQ4RTRFNkI0ODY4QzQ0MkM4MzcyNjYzNEVBNAorRDQ5MTdBQzhFRDAyMTAxMjcwN0RGQzcyOTI2QjU4OTE3MjY0OTI1NDgyQ0E1M0EyQkI5NkUyRkM1OEE2MDgzRQorNEQ3MTkzRTM5QjBCMjBFQTdCQzMwNkZGQkQ3MEQ0MzQ3OTUxNzZFNzdEQzc2Qzk2NDM1NjA0NzJBQzI3MThFMgorOUE3MEQ2OTczRDA5MDMyNjNEMURFQzFFODI3NTJDQUM3QUMyRUM1NDQyRDkxNTFCRjQ1OUMyN0Q5NkEyODA5NgorNDJBREZEM0Q5RkFBN0E0MkEyRUJFOUNBM0Q3REM5MEFEMEE2QkExQjlGNTIyNEZCRTAwNTEzNTIxNzZEQTQ0MworMDM5QjUyNDQzQTAwMzFCQ0Q2NjQ4NUY0OUI1NUQ3REJGNEY0RUI3RTRBODdEQ0Y3QTFGM0YzNDVFRjg1REE2RAorMzBDQTZFMzg5RkMzOTkzMDg1MEI2M0U4RUYzNTIzQUUxRkYxODhERTVFMjY3NjZDMTYwQTJGMTYzMUUxODQ2RAorNkRBRUY2OTVENTg1OTA5RTFGOUE4NUM1NTFCODY0MDQ2QjUzNEZERTBBMzVFNTRBQ0IzRURDRjM0QTg3Q0NDNworQzYwNzNEMjc2MUNGNzRCMDdEMTU0QTRDNTYwRjU1OTVBODcyNTBFMzU0OUUzNzA2QTQwMkYzQ0M4NzlBQjA1MQorNzk2QTE2OEUxMTk3MTg3RUNGMDlBQzQyMzk4QUU0MDg1RjRDNzBFRkRGOThDMzg3QzIzMkUzQzMyM0M2QzQ5NgorNUVBMUE3OTlEMkVDM0U5RTZDODA2MEFDRkZFQjcxNEZCQkY4MjEwRDI4NUQ4NzFBNDBERThDMzlERjM3RkUxRgorMjQxNDkxQjFCNDgzQTBCN0Q5NURFQTZFMjExOTU0RENGNDlEQTM1M0Y0QTcxQ0Q5RTBEMTQ0RTg0Q0U0QTQyNgorODU1OEY0QjJCQzA2QTdENDRDOTYxQjZBREFCQTk3NTlEMUZGMDZEQ0ZERTEyNUQwOTQ3QkM2OTgyQzM3NTg5MQorNzI3NjI1NTBBNDQ2MzlCNUU1RTE5RUJENTQxODQ4MzQyQzA2MDcxNDQ0M0Q1RTk2NTM3RTFBMjE0RTk4NDNGMAorNTMyMUIyNDc5REZFRThERDE4MzZCNDhDRERENUExMTdFMjAwMzIzMzRGMTgyNjdCNzMyM0JDRURFNTg5NkJGQworRjBEOTFGQTRCMUFEMEM0RTM4RDk5MDZBQkQ3MDA5RkI2OUE3N0NEMjgwQkY5QkY0Mzc3MjM3MTk3NUNBNjE0NQorQTk2RjU2MkQzMzVBNUI0RDEzNjZGNzI4MjQzQzUyMUIwMUQ5MDA4RTY1NTg5MEFBQ0FCQTBDNDVEQ0IxRjQ1RQorQkI2Q0FCQTUxQjFEMzFFQTUxNjM3RDBFRTI3OUI0OTI1N0VFMzBCNTg3RTE3REZGOTU5RTAwMEFBQTA0OEQzMQorRjk5OEI4NTcyMDUyOTVDQkU3MTc3Q0RGNDRDQzlCREEzM0NCQzkxOEIwQUU3MjE4N0JCQjBCQzIzNjk2RjdBQgorMUJCNUE3RDM3MDVGRTA1NzlGMjA3MDcwMDhDRDJBODhEMTEwMzQzQUE4QjgyN0E1RUU2MTE4RjVEODQ2RjI1MAorNkZEQkMzNzI3MEZCMzQ0RTM3QjMzRjVGNkRGMTY5MjBDRTM1MThCRDQ1OUE4MzQ5Q0I4N0Y4RDlBNjFGMzZCOAorQjFEMjY3MTdENEJENEI4RTc2RTI4MzQ4OTcxOEQzOEM2NkQwQjQ0NzNENTc3RjM3M0Y5QTkzODcwNUUwQzYyMAorQ0Q1NkY5QjEwNUM0RTY1QjU2RTU1Q0RENjg5M0IzNDQxRjhCMjE1QzE3RTM1RTNFRTRFNzM0QUYxN0M0ODg5NQorQ0UwMkE5QjU1Qzc3MzhCODgzNkVGRUJFMTJBQzlFNjQ4OENFNkM4MjhGMjQyMkVGQkZEQjRFQkU4MEZENkU2MQorMEQwQjg1RjFERkY5QjhGMzE5QjBCNjk2RTkwRjYwMzEyNTA2OTM0RjIxMjQ1NEUxMEM2NzNERjAxM0M2RjkxMworRTYwQkQ2MzAxQTlBQUI3REFGRTVENjE5MzczMTI2MDAyNEFGQTQyNUQ0NkI0QkVCRDU1MTMzQTNCQjI3QjI3RQorODgzN0MzOUZGRjk5OUMwMUU5QTNFQjg5MDVEMkZGRDQ4MjM0OEJDOTdDMDdFN0IyMjU2Q0EzMzMwMzMyMkE1QgorNTg3QjFGRjE5ODQyMjcxNkE0NTc3Q0U2ODFCMTIwQzREMDc0RUEyQjNDMjc1NjQ2Qjg1MzM2MEZDMTM0RDY3NAorMENGMTAwNzA3N0IzNUUzQTFEMTAwQTNDNjIwQkEwMDVCQjlGODA0NDREQzkyN0U2QUFDNzM4REU1QjNGODdFRQorMTkwQjJGRjMxQ0UxQjFBMEFEMzRDMTlCMjhERTIxMTM2NDYyQTM1OTEwMDJFREI1Q0JEQzA2RTA5MzI2NzMzQQorODQ5ODYyNjg0ODU0OUYzNkIwNzdERkIyQTJGQ0NCQjc3NUJBRkMyQzQ2QkEyMDgxMTA0OUI3QUY0RjM0QzAwOQorNzE0NjhDMzY0MUQ4RUQ4NjE2QzIxRDFEQzkwRTIxQTcyQUZFMTRCNUY1NzE4QTQyRjExRjQ2RjJDM0NGM0ZGQQorOTkyREFBQTNBM0JDOTAwNzNCM0UyNzY1Qzc1RjA1QTVFQkRFODVGMzc4MjYxMzFEQ0UyOTY3MDg5RThGN0U2OQorRjE2QjQxQkNGQjg5MTRCRjJGMEI4MDZDQjM1QjEzMzU2NDIyNEMwQzlDMUQ2RTMwMzJEMjc2RDU0NjQ4NzNEOQorMEQxN0NDNTEyRTVDRkFCNjU3MEQ2MUU4RDAyM0QyQ0ZFMDIwMjEyREI3QjBGQkYzRDMyNEZBNUIzQUZFNzk1MQorRTgzODJCN0E4RkRFQkJBQ0FFNEIwMkNERDNEMTc5MUM3OUE3OEI5RDQ5RjIwRkQ2RjIyQjdFNTVDRTM2ODM2RQorMzFBNUI2MTlCMzA1Q0REQzcyMkY2QUM4NENCQzBENDk4MzU2NDcyMDRCREFCQ0ZGNTlEOUYzQjVFQTIyRDUzMworRjMxNkRENUVGQzU5QTdGNjQ1QUVFMEJDREMwNzE5MzExMTUxMDU2MzE1OUVGNjg0QTczOUNFNjdFRUI3NzYzOAorNTRGMEMzRDRFMUE1NDgwMUY0ODg3QkFENThFRURBNjg1MzlCMkE0M0I1QjVENzkzNjlGNzQwMzU5NjZGMDdFMQorM0ZGRDQzRkZGMDVGN0VCQTQ4REIwRjk4OEYzNEE0NEEwQjE1QjAyODUwODg2OEVGRUE4OUYyMkM2MURCQTc0QworRTA0RjlEQkZEMjhERUMxRUJDNTM2NTg3RUY3QThEREQ3QjBBREFGNDU5QzBGMjJDMjREQzJEOEM3OTdDMTRCNQorOTM3MDUwNDUwMDQyMjI2NUMwQUVGQTJBOEMzNjdBRDg5QUJDMDU3RTRCNjA0M0Q5OTFFQTU5NTY0QzFBQkQwNgorNkM2RTkxNDc4MDZDNzlERUE0M0VCOEI3RDA1NjBERUI5QzgxNzY2QjlENzk2MDhBOTFEN0FCNjA2QTdDRDZDNgorMjc2QkY0RjdFMjk0QkQwRDBEM0Y5NEIzMjE0MzRCMUE5Q0Q0MjA2RTMxNDZCM0NFMTExM0Q2MkU3NzkxQkQ3OQorOUFFMzIyQTk5NzU1N0VEQzI3MDQ1RkE0NTIxQUIzNzkyNTNDMjdBNEEyMzQ2NjJGQjRGNzNBRTM5OEM0QzlFMAorMkQ0QjNFN0VGNUYxRTVCRUVBNTBGRTYyQjhBQzBENDJDMTMxRkQ1MDdENkQxNzM1RkQ3OUY4MjIzNTE2RTg0RQorNzU1OTMwQTJFMzBCODBFNjNBNkIyNENENDI0NDU4NEJGN0U5MzA4M0VFNDZFRkQ5Q0QxOUE3MUE0Qjg0NTNBQgorMjMzNzEwREMwQUU2OEZBQjJCMUQ5RTNBMTdERTk3QUUwOTkzNUUwMDU2NTg5QkI3QjNBRkYzNjcyQjQwNkNEOAorRTkxNEY3ODY2MDBDNUI3QUM0RThDNTdCQjY1QjU4MEEwMkJFODQ5MUUwRDhFNTgxN0E5OUM0Njk1RTFEM0EyNworMTJFNUY3QTk0NUJGREI2N0UyQ0EyODVDM0FCRTVDMTVDODcwNTMwRjU4OEUwQjg2ODZBNEM1NTE5NDFCQjJDNAorOUU5QThEQTlBNEQ0ODM0RTA5QTc4RjgyNEY2MEE4NEM0QTg0QjZDNTc0OEJBOEQ3NTJEMENBQjhDQUJEQTg5RAorOEUyMUU0RkM2OUM1OTk0RTNFMTAwOTY3REJGRkE0RDJFMTJCQjBFNzNFRDUzRUExQUQ5MjU4NTVEQTFBNzdCQQorMTIzMTQyMjcyMkRBNzUxNzRBREQwRjBCRDU0OUI2QkQwODExNEQzMkJCNkU3MjhEQzVEQkUwNUNDMEZCOTYwQgorRjFEMzUyNTNCQTMxNjU0QzZFNkREMzA2Mjg1OTUzQUE2ODFFOUUxNDE0RDVGMjNDQkYwOEUyOUE1QjM4RjY5RAorOTlDNkU0NERBMEM0MkZCMjYwRjFFNkQ0RTk0NzIxNUEwRkY0MUY3NTYxNzcxODBEMzc1NDczN0MwQkY1OTA4MworQzQ3QzMwMkQ4NzI2OEFBRUQ3NTIzNzBFRkRCQzI3NkQwQUQ1OUM1QTc1Q0ExM0IyOTI0MzdEQTVBOTBCMTcxMworNzIzNzI4MTY2NjM3QTNDNDgwNUI0QTJCQThDQTFGMjBCNEZEMzMxMDQzRkI2OTMzMUU0ODVCRjQ4MDI1QkUwOAorNjM2OURCRDhGQUY1MjZCMDhFNjMzMjIzRDAxMUUxRTgxQkU2NjJEOThCRDY0OTE3RjA5QkExRjQyNzdCQTE2NAorNDYxMTcwNUY1QUREMzE2MzQxMzY2RDNCRjhDQUI4NUEyMUM4OEY1NDc5MkQwNUVBQjkxRDk4NUE1NTdCNEM5OQorMEJEM0I0QzAyMEYyMEM4NjBBNkVEMEU4Q0FEODcwMDQ1RDY5QkM0MzRGMzQ1RUU0MjgzMEZGQ0Y3NDY4Q0FGMworOTNCRDU2NjY1OThENUNBN0FERUMyMDgwMDZCN0NGMzhBRkExQTBCRTI0MTkwRTI4Mzg0MUI5QTVGRDA2OTZDMgorQ0I2RkIwNEJFNjEwOEFCOUU0Q0QzRjc3MkQ3OEQ3NDY4RUI3NjE0NDRBNUI3RkM4OTk1RDUzODgwQkYyNjE2QworNTIyRUVBMzNFMEYyN0E1QUExRUEyNTM0N0ZEMTJBMUE5NUYxMUNGMkYzNjI1RDU2Q0Y4QTlGQTIzQTRFQzYwOQorMDM1Q0QwMkNBMDkzNEJGNkNFODBERjU5RTFCNjA4NDlCOUI0QTU4QzExRTgzRDAzQkVBNDJBMUE0QUMxMDg5MworNEI5MkQwQjk5MzYyMTgwRTI5QUZGMkFDRjlFMEM5OUExNTY3MjUwNzE3NTgzOTlGMzE4RDcyMEUzN0ZCNzNERQorOUM1OTU4Q0M5NDcxQzQyNEI1RjhFMEM3NkZFMjgxOTNEMkM2NTE0RDBFQUNGRURBQjdCNzZCNzEzQkMzQUUzRAorNTdEQTlENjIzOTZGN0E3Njc1Q0RCRDE2NENFMzMyMEVDODFBMUFDRTc3RUY2M0NDOEZERDQ2NjU2NEI4MTcxRgorMjE1N0VDNjMxNDM3MTgyQUZDMDgzQTFCMjlDMjIzRkE5NDRBNTQ5MzBBNDE4MjRGNzZFMzVFNUZFRjE3QTgzNgorNDQ0MEU5QkI3OTNEQ0RBODk3QjkzODY5NjQ1OEEzQkQ5QzNERUQyNEMyQzYzOEMzNjAzOTM5QUY0NERCMTQ0RQorNUJDQTUxQTdENzI5REZCRTI2RTA4ODRCMjJDMEM0RTMxMzFBQjgyQ0RBMTcwNDc0MTY4RDg5MTI0QTY1QjBCQQorOTE1MjNDRDFENjc0NzVDOUQ0M0NCNzUyNTQ1MUEyN0I2MjcyMzg2N0YxMjMwMDNBOTlCOThGMkMzQzJBNDgyRgorNjhGQjRDNDI1NDdBQTZDNEI5QjFDOEE0MjU5QThBMjczMDVBMkYwQjE0N0JCRTM5MjY0RjUxMDE0MjY2ODEyOAorRkU2NjEwRDhENzQ4QTIwQjlGNzVENDhDMzY5MkZCRkExRUJGRTczQTMyNzlCRDRDMzhEQkRCQTBDRDQyOTQzOQorRjNDMEZFMjMxRDBGMzgxRDM2OUExRTM1NjkxNzE4NEE0REU5Q0JCNjRGNDAwQzI4QjQxREZEMzVGOUY3NEZDMQorNTdGNDY0MDA1NzRFQ0UwNjRDQTlBQUVBOEQ3MEE2MUY1QkU5NUI1RkRGRUNGODdFMDRENEM0NUFDN0Q0NDFBNQorODhFNkNGMEM0NDdERkM4MzIxNzlDMDEyQjQ2QjE5QTdCMjU0MkVFNDA3MjdERUQyN0UwODQxNzYzOUQ2RkRGNworOTAxQ0ExQUY3Mzg1NzA0RTdFREY0OUQ4QTlBQzk5MENFNjhBODg5OEIwMkQ2MThGODcwMEQwNDQyNkE1NjkyRgorMjQ2NDBCNDMxMUM5MTdEOUQwQjg2RTQ1RDlENDNCOTlEQzgxODM2QUU0NTRDMTQyNDJEMTA3QkNFOEU0Qjk4OQorRDhDQUE4QzQwMUE1NkNGQTYxMTkyMzA3MkI3MkVGNTYyODRBRTQ2N0JCOEUyQjA0QUY4MUQxQzk2ODMyMTYxMQorQjREMUEwN0I4RTJDRDRBREEyOUE4REJFNjk1QkNCNkYwMjJDOEM1M0U5RjAyMTBBMEQwOEY5QTUzMUZCQUYwQQorOTAyRTMxREE2QjJBM0VDMjkwRjFBMEVCNEE1RkE0RkQ1MDQ1MzBBRjc2OEMxNUUzRUI4NTc4NDk4MjRFRTk2NQorOTRFMkYxOTc0QTYwNjE1REVERUJDNEY0RDhENzBDQTZBNDM4NUE0NUVDRUJBQzc4Qzk0NUFCRkE0MkI5MEVBMQorMTdDNTlFNjE1MjcyQTkxNDg4MTYxQzJCN0IyM0E4QjFGMkM3MTE5QTQ5RUI3MjI2QkVFQjNBNEM3Q0RCNjdERgorMTFGOTQ1Q0YyMkZGRUQ0RERDRERFMUU5QUQ4OEM2M0E2QTI3MTg4M0Y5MTA0Q0Q3RjU5NkFBNzdDQ0FDQThCOQorRDVENzcyQTNDMEFCREUzRjdCQkZGRDY3ODc0NERCNzU0MEZCRjBCREM5RDAwQTBDN0U5MTcwQTEyN0QyMUM3MgorNEI4MUQ3OEY5NDk3NzM1OTg5MjFBNUQzRjc1NkNGNTgyM0VDRTU3NjEzRERCRUU1OEYzNDI4QkQyOUJGQUMzRgorMUVBNTc2NjM0NzJBRUFBRDQ4MjYwRUFDNTkxMkZDNzI3M0YxMDJEMTIxN0JGNDNENkU1MkNGQTkzQTk5MUI3NAorOEM2NDg5RDdBQkQ3OTIyN0M4MkY4NUUwNkQ3MzY2MDJBRkYzRjQ5N0M2NDY0NERGNzlGNDYwNTY5RjJDM0JBMgorMjUwRDQ4RDBDMEVGNUI0QTM2NjhCRUREODA0Q0QxMzRBMEUyNkZDQTRCRjA3MUZFQTlFQjQ2RDVBQTUyRDY2QgorNEY5NTRFM0FCMkJBMUVBNzFFQjlCRTI1NEFEMEM1QzM5QTQwOEFGNEQyODdBQTI0QzUzM0JFOUJGQzA4NTNBQworQzMxQzQzRDhDNDE5RjVDRDI5NEVEMzhFNTY2NDVBMzFGRTRBQjJDNjBENDQ4NjQ5M0VEODE5OTQ2MTQ4M0Y4MgorRUJERjQ0RjE3OTJCQjg3Q0U4NTExMDVCRjQ0MjEzQjM1RUE4MTJDRTk2N0ZCQUY3MzA0NzAzMzE1RjJEMTI2RgorMTI0NjBCMEVCMDQ1QkM4RTE5NkM3ODE2QjEwNTI1OUJGREU4QzhFQzQ5QTc1MUIwREJENzM2N0MwNjYxRUE3RAorMUE3OTA1M0MzNzFERTA4QzIzM0UxNzc0OTk4RjhDODZGNzhFNEZGN0U5MjM5NTI0QTc4NDUwOTI1NEQ2NTAwMgorRjlCRTBEMkE0MDQ4OEUwQkUyREU2RjMzNkJCNzMzNzc1MEY1N0Y5NEIyMDc2NDExMTU5NEIyRUFDMTczOTFFRAorM0MyMEM4RjMyNzdFMUU0MzFENTU4OTNFQTBDQUI2NTlBREJDNTAyRDg1Qjc1REUyOTkwNDQ5ODU1NzVDMDlENgorQzJEMjc1MjIxQzczOEI5NjdGMUM5MkU3M0ZFNEU0MzM1Mzg0NUQ3NEIxMDNENkI1N0I0NDJEREFCM0E0NkI3QQorRUY2RTc3NkQ4MkI1Qjk4NzNFRjVCM0FBNzdBMThGQTcwNjk0Mjk0NDFCQjc5MTEyMzk3NDI4MUI3MjBFNkVCMgorNjQ3MjU0OUVCOTIxODgzMTcwRkNGRTI4OUMwMEExNTlFQUU1NkI5QTg1MTU0ODJDQkQ1MTYxQjcwQjY0MzcxOAorOTJEN0JCM0ZDOEU5RTQ1RjM2MzVCMjQyQkQwOEZCRDk1OEMyOTcyMDVFRDdGQzgxMkI3QjcwRjY1RTk3OUJBNQorNzNFN0E3QTM0OEZCNjU2ODQzOTg4REE0NTE4RjEzODE0QTE0QzMzNkE0RjJBNjEwQjVEOUFENjVDRTExMzVGMworM0FDQjI1OTRCNDIwNEEwQTg1Mjg0MUY2RDNFQzUyQjQyNjJBRjhGRDdCMUU3QTg2MDEwNUM4NUNCOTVEOTRENQorQzNCQTgzNzRCMURBOTNGNDkzQTI1OTIwMDU4NDA5QzgzQjc1MjlGRkE2QjNGRkU3OUQ3RUE2RjU3RTJFMTJGMgorQTIxMEVGMjdCRjUyRjFBMzY2QzFCMTkzODIxQkQ3NzVGQzkyMzM1QjQyODU0QzdDMTFCMjUzQTY1M0E3NEE3QgorRDIxM0E2M0I2OUJEMEIxRkZCNERGQkFFQkQ2NkMxMDk2QzZGMkM5QjA2NUI1RjIwRTlCMDI0NzhEMUNCODU5NQorMEY2OERBREExMjVGQTNFQjhCNzYwMkU5NEEzMTc1MERGQ0NERUQ4NzU5RTREODcxMTBEN0Y3QjA1RUM5NjA0RQorMzY0QTlCRTFEOTRFMTVCODA3Qzc0RTJBREMwMzA0N0VFMjk2MTc5RkQ0RjJDOEJBOTMxMjI1OTg0MzVEMkQ1RgorRDNDODI0RTMyNzYyOUYxNjYzMUJFQTJGRUFCRUE1RjQ5RTVBOUM0QUUyRjQ0RDUzOTBDRTA2MjhBNjkxNTY2MAorQzE3N0I4RjQzMUQzMTQxMERDNzcwOUQ1NzI3NUM3RkM0NUY1RUIxNEY3MTEzMkZCM0JDNzdDMkE3QjJFRTQ0NgorQ0VFMTQzMTkzNDE5Qjk3QTVCMjVEMTc1NkZBMDE3RTE3ODQ4MTU5Q0I1RkY1NUU1RDI0MEI0RTAxQzgzMTYxRAorRjNEQzhENUQ3MjAwMEJERkU1RjUzRjAzN0NBRjU3OTk0QUNDNjBGRjY2NDE3RDZCNUI2QzkyODczMjNFMjAxRQorQTEzREIyMURDQUUwQUZCRDIxNDlFODYyMEIyMkVDMjExNDRCRkFFRDAyRTFCMTY5ODA4OTcyMTg1MzhERTU5QworRTlCODAwOUE0RTA3MDg4MDI5MDVBRkRCMzVDQzYwNTA5N0VCOENDNkM0OEM3MzI0MzM2NEYxODQ4NjFCMTFENQorMDcwRUJBNzE2MjBDMjU1QUUyRkJGMjcwOTQxMjIyQzMwMkU4RjBEQTE2NjQyM0I4OEMzODU0QzM1MkI5RTc5MgorRUNEMTJCNDBGMEIwQTVBMzM0Njk1QjZEQzQzNjBCMDQ3NkU3OTkzNzMwNTI0QUI5MkRDOUY4QTc0REJFQTY5OQorRjlGMkMzMUQ0REEzRjQ0MjY1OTVFNzI5RjlCN0M4OEU3QjQ2Q0MzMTcyMTY4RjAwRUYzRjYwNDU4RDU0NzVBMAorRjFCNDJDREREMTcxRTdFOEM5OEM2MjBDQjU1NDhGN0NFQjRFNUJCNzU4QzE5N0EwOUNDQjM4OTNEMzExNzM1MAorRjQyMzI4RUFFQjNGMDAzNDQxOUE4MzhENUFEQ0E4NDgzQkRGNzJGMDJFODgyMUNGQURDNTBFOUEwOUE2MTZFNworNENFNUU2Q0Y2OThDM0Y5MTlGRDAxMTBGNUJGQ0E1NUU5ODc1M0M2NzE2OEFBOTFFRkNEQzJBNEFCNENDNkMxOAorMURBNzI2Njc2MjFDRDU3OEMxRTQ0OUYwRTY2MEIzNUY0MzI0NEYwOURFMjZDNEVENjIzNjBBQzY5QzhGOERBRgorREE3NjU1NEU2RTBGMDEyQ0E0NTFGMEI5NDY0NjJGQzU2NEIxQUVBQjUwOEVCRDJCMUExRTQzRDFFNzEzNkRCNworODE3M0Y2QzJEMjgzN0YwRkJDQTg4NjRBQjcxOUMwOTg5ODEwOEE0MjczQURENzQ3MjFGNDdBRkIyODUwRTEyQgorQ0Y4OTczMDFBQUExNDMyREVDMDA4MEIyRDU1NUJFM0M0Q0U2RTY1MkM0ODA2MDY2Q0IyQzE5MjYyRjIxOTI5MQorRUJCNjIwNkIyNUExMjEyMEIxRkIwNzdFNDYzOEQ2NzVCM0M1MERFODY3RTJDNjlEOUI2QkNBOTM5NENBOEI1RgorQUEyRDAwMkQ5RkI4RUNFRkExNDREQkQ1MTkwNTAyNEFCNTRENkVDM0Y4MkEwRDYyNUFGQkJFRUVGNkM4NTRGMgorNzM0NEExMEJFMUM4Q0E3ODVEOEMzQjJERTYwNkQwMEQxOUNGREJFN0JGNzgxQUExNzdFNjUxRUIwNzcwNUUxQworMkRENEE1NERCQjBBQkJGMUI1N0ExQkE1NjRGRTVBOUIxMkUzOUUzNDZBMzg3RTA1QzRDMzk4NkQ5Q0EyM0MyQgorQjJFNkEzQjRDRkQzQUQxNzdGQzUzNjZCNTVGMTFDRTkyNDY5MUExQjRERjczODMwQTQ0RTY3RDc1MERBQ0JFRgorMTg5MzUyN0RBQkZCODk3MEMzRDhBREEyNDkxODE1ODE0MkQzRUM1NzMwRjkyMDJBN0I5RjYxQzRGRkY0QjA5QworQzA5REUyNzhCNzFDQTZBMDYxMzk2QzM2NzFEM0Y0OEU4NUQxRTk1OEU3QUU5NEMwNzA2QjkwQjY5MDZDNzU4NworQ0U1REM0QTlFRjQ4ODJDMzE0Q0M5ODdCQ0FENEE3ODlBMDlFNEQ1MUYzNzBERTRENDQ4NDY1MjgzNjM2Mzk2NgorQzgwQ0VERUE0MUZBODE2QUQ4NkMyRDc5MkI1QjhEMDQ0ODlERTk5RjA2QjNDNUNDMDExMEM5RjI0QkE1RTk1QQorRTJENzhEN0ZDQUZCMDEzQkQxNjBCQURGNENGMkQ4OUYzN0VFQUQ4MDcwMkU0NDBDQTIxOTk3Q0EyMTNCOTZBQQorNTMxQTM4NUMyNTQ1MThGRDIzRjcxMEVFMDU3M0U4NjQ5OURGQ0FGNkYwMzhENzRDOUU2MTc0NDZEQThFRjg3RgorMDg2MUMzQkIyRkRGNzBFRTk1QkFBMEJENjcyOEU5QjREOTM4MUMyQjMzRTE3RDE3QkE1NEFBNDVEQkRCODQxMworQ0UxNTg5QzNFNjNBRDcyMTdGOUM2QjQ0RkRCQ0FEMTIxRDMyMTlBOTc4RUEyREJBOTBBMjdDRjgxNEIzMTNEQworNThDNTc4REY0MzgxRjUyMzU0OTkwMDlGRUIzQ0E3RDBCNEVCOEYwODM5NjAyMzQxRDY3NkNEODI3NDQ5RDI0QQorRDlFODIyM0M0MEI1RDM0QjA4NDZCRDk2MTUwOTBFQUUzQ0I3N0QwQjg3MjVBM0JENUIwQTQ2NTU4QkRBNTg2OAorM0EwMDE5NDM0NTExNDY0NEJEMTQ0RUExMUY0OTQ3OEZGNzdFMjU5NTM0NzkxQzIwMEIwRjk4QjJEREZGMjEwNgorQkIxMEVEREVCREVBNjkxMEM0Qjg5N0IyQkMxNzkxREEKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKK2NsZWFydG9tYXJrCislJUVuZEZvbnQgCislJUJlZ2luRm9udDogQ01UVDkKKyUhUFMtQWRvYmVGb250LTEuMTogQ01UVDkgMS4wCislJUNyZWF0aW9uRGF0ZTogMTk5MSBBdWcgMjAgMTY6NDY6MjQKKyUgQ29weXJpZ2h0IChDKSAxOTk3IEFtZXJpY2FuIE1hdGhlbWF0aWNhbCBTb2NpZXR5LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorMTEgZGljdCBiZWdpbgorL0ZvbnRJbmZvIDcgZGljdCBkdXAgYmVnaW4KKy92ZXJzaW9uICgxLjApIHJlYWRvbmx5IGRlZgorL05vdGljZSAoQ29weXJpZ2h0IChDKSAxOTk3IEFtZXJpY2FuIE1hdGhlbWF0aWNhbCBTb2NpZXR5LiBBbGwgUmlnaHRzIFJlc2VydmVkKSByZWFkb25seSBkZWYKKy9GdWxsTmFtZSAoQ01UVDkpIHJlYWRvbmx5IGRlZgorL0ZhbWlseU5hbWUgKENvbXB1dGVyIE1vZGVybikgcmVhZG9ubHkgZGVmCisvV2VpZ2h0IChNZWRpdW0pIHJlYWRvbmx5IGRlZgorL0l0YWxpY0FuZ2xlIDAgZGVmCisvaXNGaXhlZFBpdGNoIHRydWUgZGVmCitlbmQgcmVhZG9ubHkgZGVmCisvRm9udE5hbWUgL0NNVFQ5IGRlZgorL1BhaW50VHlwZSAwIGRlZgorL0ZvbnRUeXBlIDEgZGVmCisvRm9udE1hdHJpeCBbMC4wMDEgMCAwIDAuMDAxIDAgMF0gcmVhZG9ubHkgZGVmCisvRW5jb2RpbmcgMjU2IGFycmF5CiswIDEgMjU1IHsxIGluZGV4IGV4Y2ggLy5ub3RkZWYgcHV0fSBmb3IKK2R1cCAwIC8ubm90ZGVmIHB1dAorcmVhZG9ubHkgZGVmCisvRm9udEJCb3h7LTYgLTIzMyA1NDIgNjk4fXJlYWRvbmx5IGRlZgorL1VuaXF1ZUlEIDUwMDA4MzEgZGVmCitjdXJyZW50ZGljdCBlbmQKK2N1cnJlbnRmaWxlIGVleGVjCitEOUQ2NkY2MzNCODQ2QTk3QjY4NkE5N0U0NUEzRDBBQTA1MkEwMTQyNjdCNzkwNEVCM0MwRDNCRDBCODNEODkxCiswMTZDQTZDQTRCNzEyQURFQjI1OEZBQUI5QTEzMEVFNjA1RTYxRjc3RkMxQjczOEFCQzdDNTFDRDQ2RUY4MTcxCis5MDk4RDVGRUU2NzY2MEU2OUE3QUI5MUI1OEYyOUE0RDc5RTU3MDIyRjc4M0VCMEZCQkI2RDRGNEVDMzUwMTRGCitEMkRFQ0JBOTk0NTlBNEM1OURGMEM2RUJBMTUwMjg0NDU0RTcwN0RDMjEwMEMxNUI3NkI0QzE5Qjg0MzYzNzU4Cis0NjlBNkM1NTg3ODVCMjI2MzMyMTUyMTA5ODcxQTk4ODM0ODdERDc3MTA5NDkyMDRERENGODM3RTZBODcwOEI4CisyQkRCRjE2RkJDNzUxMkZBQTMwOEEwOTNGRTVGMDBGOTYzMDY4QjgyMzI0MjlFRDhCN0NGNkEzRDg3OUEyRDFFCisyOTMxQ0U1RjVEMThDNjU4NjAyMDU5RjA3QkU2NkU2RUZDOTIzOUQ3QUIyRkI4QTRDQkQ0MTY3NUI4RUNGMjc5Cis2NTBDMjlFNTNCMTRBQzBFMzkyQTY2NDg0OEMxODQ0QjFDRUNCQjJENUNGQjcyRDA5MTZCNjc1QzlBOUExRTM1CitGMTI2OTZBNkY2Mjg0NzNDNjA0QTk1Mzc2NDY4RTA2RTI5NUFENkY3NkNFQjkzOUQ5NDExMzUzMjA1MEI5RDVBCitEMkY0MUE5RUZCOTQyNEQ5ODY2MTIzMTNCODlFRkU5QzhBNzEzMTMzNDBCMjQ4RjY4NTNCMUVEQkYwMkI3RjlFCitGNDQ3MjIwRkUxMzFEN0Q1NENGQjhBQTEyODFEQkFFQTczRTY2NUJBQ0IxRjE2NDU1MkNDMENFREI2M0JENEIxCis0QTlBRThBQzZGQTAyMjQyREJFOERBNDZCNjRCNkJGQzExNzYyRjA3ODRGMjE2RkM4QjkxMjBENjg4RDE3MDVBCis0MzhCMTRGNUU1REVBRjJBOTg0MDhCM0I2NDYyMERFMzczMkE0REFFNkQwOEQ1RDk3RTM0Qzc1REFFMTlFQUJECitCQTA3OTYxNjVDMTE1MUJDQkZCMURGOEQyOUE2M0E4MzAwREJEQjlFMzMyM0NCODJEMDMzNzU5OEI4M0Y0RjJCCitBOTdDRjUxOTZENEQxQ0VDMUVEQjg5NjZFNTQ4QzBEOUMxOTRDOTMyMzE5NjEwRkI0M0VBMUI4NjMyMkZFNjQxCitBQjQ4NzcwRkYxM0JENDc1QTcyNjdFMTQyMzg4NTYzRDFBNDAwNDE5QzU4NUIyMkE5ODg2MDc0Njg3QkVERjc0CitEOTA1QkU4RUU0NDBCQTJBQkYyOEVBQjY3MzM5OUI3RjEyOUI5NzI5REQ1NTY0QzY4MTk1NDYyMTkwM0I4NEJCCitDQUY4OUFDNUFEQjI5MzI0NzJERjI5QURBMkJEQkRCNEQwNUY2NUYyOEY1RjRDNTI5NjEzRDYxODU4RTAwNzRBCiswODJBODUyNzEwQTYyQTE0N0M5NjZGMkI4NUI1MUIwQkU4NUYxMUQyMDU3QzY2RkRENjFGNkM1NzU1MzY3OTgwCis5RjRERTY4MDYwMUQ0REE0MUI0NkY4RDIxNDg0NTAwMDA0MTNDMjdBQTM5QjU4NkI3NEI5NzdCMjVGMEZEM0MwCis0QkExRUJGQUZEQkVDNTMxRUExM0RGQkQ2NzAwRTUzODE4Q0UwNEQyMzg4NkI4QUU3NURDQzM2QkNEMzE4OUIxCiswRDU1RkFFMjdEMEQxMjZFODJBRUYzMUQ3QjVERjI3RTU4QzMwQkIwODY3RDZEN0FDMURBOUVGQjhBMkRGMDk1CitCNUI5MzRBNjhFRTEyMkRBMEE4M0IzNkM5NTI0MzE1ODZCOTU3OTkwMjA2MTk0RTg5MzM5MDQ4QUE2RUU0QzUzCis3MDM3NjM1MDVFRDU3QzQ5NEREOTA3RDBFRUEwNEY2QjFENEM4RjNCQTc3OEY0RTdBQTgzMkFBQjRENzVGMDI0Cis2MUU5MUM2RDI1RkQ2ODIzQ0IyNEZDODYzRDM4MzZDNzdBN0QzNDlBRkE4NTI1Mzg4RTI1MjM4Njc4OEIyOEI1CitFNDYzRjU0NDhDOUEyODcxNDBDNEY1RkJFNjEyQzhGMkMyNzQ5MTk2RDEyMDk3MjMzNzk0RjcwMkJFNDk4OTdBCis2REI1MjE0N0NFMzVDRkVENENDOUYzOEJGM0M0QUE5MTdEOTkwRjAwNzM1NzE5NEY1MUZGNkI3N0U5N0M1MjA4CitBRTZDQjNBQzZBRjBCNURGRDI1Mjg0N0M1RjE3OTNGNTg5NjY1NUVDOEQ2MTdERkE3RkZEOUNEODYxNjMxMTU2CitEMTc4RjhDM0IyMDQ1QUUxQjRENzAyNzA4ODIyRjIyMzhBMjk5MzRBODcwMjczODU4RkRERDJCOUNDNzRFQjlBCis0RjYxMDY0Njk0M0YzNEFDRjc3MDc1NjhGNjZGN0NEOUYzMjkzMDYwNDMxQzJBN0FEOTI5MDRGREQ0NEU4MDc5Cis4MEQ1NDc1NURGQTFGRkEyQTQyQzk1NEFDNkRFMUNCQjdCRDk1QjExOTk5RkE0NkY1N0M0NjdDQzVFNEFCQzNECis5NjU5MjVGMDU3MkRDNDM2OEU4RDVGNTc3N0ExMTI1NUJGRkY5MUU4MzNGNDIzMzk3NzVEMUJBQjIxMzdCMzI4Cis1OTY2NkU4ODkxMkQ2MDk3NzczMDlBMDMyQjM3MjVBQzExQkY1Q0Y1RUM3NjA0MzhCRTUzMDNBNDhERjQ3NUZFCitCQjU3NzcxQ0I4Mjc1MUY4QUU3OUIzRDcyQ0I5QjY1QjE5MkQyMUUxRTMzODhBQzBDOTUwMEUxMzJGNDAxN0QyCitCNkE4QkZGNDgzNDJDOTQzNTlEQ0EzMkQ5Q0UxMkQ2QzMwMDExRURBOUUyOEE1N0E4NTQ0ODJGREVBMEI2RDE1Cis0NTc0QkFEOTRDNDM1MzhEODdFOEREMUZBMDNBRjVGRDk2NUM0NzNFRjEzNzFBM0YxMjU1OTJBMDA5NEJFN0VFCitDQUEzRTk0RjQ4RTg2RTY2RDIwM0YzQUVENTlDRTU4QUExRUZFMDA2QTEzNkQ1NTU0NUI1MDYxNzJDQTE0QzcwCis2NDUyREQ4MURCQzFCMzcyMTkyMkREQ0YyREY2OTE0RTM1NEZCQkUwMEQzQ0JGRThBMEFCMzA5RkNDM0I4QjZBCis2RjlGODU4OTg0RDkwRTczMUM4MEY5QjA1MEY0OEU2NzBDQTE5RDA1RjVENzc0NDFFMTVGMzA0NjY2MTU0QjUzCitDQkFFNTgxQ0U2MDkxQ0FDNjQ4NTUyMkU3OTVCNzZDOUZDNTA5NzA1RjNFQjRFRjM2QjdDREY3NTdBNTA5NjE3CitEMTE2RDdCOTdDMUEzQjczMzRBRUY4MDdDMjNGOUYxQjE1MEM4OTVFMTJGNzMyNjVFNTU3OEMyNENDQkZEMkY2CiszQkVGMTMxMUUwRTAxNUQzNTRGM0QxOEJENEJBMTc1N0Q5NUM5QzU4M0NENjAwNTczODVBOEJFNEQxNEE3MzBDCitCQTREQzE4RDQ0OTREN0U3NjVBNENFMjRFMTcxMjVGQ0JFQ0E5ODFGNEMyQ0I0QTM2MEI2NDQxQTZEQjczMzYzCis0NEY2MkI0NzBFQkQzODdGMTkxOEE4MTRBN0IyNjg2MjNGN0FERTkyMjlBRDMxNEJGQTBFQzc4NDA3MTE5MEE0Cis5OUZCMzI5ODU4ODFFMzJGQUQxNjJFOEVGRkVCNkIzM0U2NDZGOTdGQTk0QjJBQTUzRjg2OUFBNTYzRTUxOUE0CisyRUU2NDNDQjE0QjY0QUQ2RkM3NTEyNTIwM0UxNzgyNkU4MUYzNTJGNUFBQTYxNjUwNUQxMEY3RjEyM0VGM0UzCis4QkM3QzQxRkRFNzVGMTEwNjI5Qjg3RUNDNDJBM0NGMkExMzMwOEE3MzdEOTk0REJERjk5OUU3NDk2RjlCNzhECiswMUJDNzg4OUI3QkNDNDZBOTU4ODdDNEM1QzM0QTJCRjQ4NDA2OEIyQjVBNDBGQjQwOEZBOEEyRjZCRTZDM0U0Cis2NzIxMTY1MzVCMzc4MjVGRERFMDRDQjhCODczRDlDMDIyOTU1RjRBRDg2RDMzRTgzNjI2NEJEMkI5MThFMDUzCiswNzdCNjI1MDhCMUUxOTk4OUIwRjM0MzY0MDc0Q0E3MTg1NjUxRjhCNEEwOUVGQjA4RTFFQUU3NkQxQTc3MDRBCitDRDJGMTlBRjc5MzM5RjEwMjkwQzJDREQwRDIyRTQzNEQxMEI5NDkxMUU4OUFFNUE2RDFFQzQ0NkE2RTEwMTU4CitCOTRBREY1RDIyNTYzNDVEM0UxMkZDNDEyRUIxNDZBM0ZBOEQxMDU3QzJGREY4OTM2QUNGNkNBQjYxNkRCQ0Q4Cis3RjY4NTk3MTEwODkwODA4RDhBN0I4QjBEQjRFRjU4RDk0Q0U2NjYyMUU2QUU5NEY3NjdGQkIzNzlBOEMxRkM3CitCQjNGNUNFREExMERBNDJBNzQyNjYyOTk0NkQ4MjM1OEI0N0UxMTJGOERDOTAzOTBDMDAyMjA1ODI1MDMyMkZFCiswMTM4MTk1OUJDRDdDOUY4MkQ3MkUxMTdERDQwMTE5NEI3MTk1NkU2RkI2MkQ2RUY2QTZFM0U5OTczNDAxNEU5Cis3MTg3MTQ1MDVGMUMzMjNBNUFFRUNDM0Q4QTRCRDBEQzgwODdCMDVCMjM1OTM1OUJERTFBNDA0RkIyMjJCQzJCCis3QTI2MTFFMzM0RjQwNDM0OTIwRDI5RURFNjBBOENDQjg1NUIxMTkwOTVFRTEzRDRGNDY2QUMwNTFGQzlBQUZBCiswRUVGQjA1ODk0RTgxMzAyNjk4Q0I5OTVCMDVEQjE0NTdGQzQ0MjlDN0IwMDdGMUY2OEMzMTZGODI1QkJFQzdFCitEMjZEOEYyNjMxNDVGRjI3N0YzM0IwRjBBMjMzRTk3OURDNTVFMzcxNkVCNzRDRTRBOEFGMTdDOTVGODk4QUQ3CitGQTAwQjMwNzhERjAxOTcxQjg2QkE4MUIxMkMzNERCMzZERDcxNzcxNTYzNkZCRjRCMEMzQTk4NjI3NjM3ODMyCitGMjY1NjkzOTQzNEEzNjg4NENCNUI4N0JGNjBCQjFEMzNCQkNGRjkyMUE0NTNCOTUxRTU1NDU5MTk2OENGOEI2Cis3Q0Y3NUMyMDc0RTk5RTNFNzRBNjE3QjM0OTYyN0Y4NzE0OUEzOUFFQTI2NjdDNkJDQTA4RkQ4MTY3RkUyMERDCis1NThENTQyMUYwRkY0MURENTM3RkRDNTdGOTI3MzcwREM5QUNGRTkzMUYyNUM4ODE5NDU2NTI0MjAxM0Y1MEE0Cis5MzZBMDRCMDc0NzZCMUM5NTY0MUNERjA4MDNBQTg1NkMwM0U3NUVGMjZBRUFCNTI5N0RDRThFMUYyMDhGQzVECitCNjdGNzFCMTM4NTU1N0I0NkU4NzFFNUI4MEMzMjVGN0I2Qzc5NDQ2OUU4NDA2QkZERjdEMDYyRThCOTk3QkM2CitCOTJDQUQ3REREMDQyMzdERkQ1NDg2RTM2NURBOTQ4MjI5MUZCQTk2NDc2QzI3ODhBRDdGMjJDMDQxRTU0MUQ5Cis5NzA1MzBGRDIwQUE2REZERDVERTI5MDZEMDg2Mzc3MDk5REJBNEQyNDhCMTZCQjIxMEY0MTVCOUJGQzE5NTczCis4QjRDNEYwNTk1Q0Q2RkJDNEU1NkEwMDQ4QkNEQzdFODlFRkVFQ0I5MzM2ODQ3RkFCOUNEQkQ0QzYzREZFODBFCis0RUZEMEQxMzc0MjAyMjA2NDU1ODBEMDRBQzhCNkFGNTVCRTA3M0U1NTdCRkQ1NTM5QzcyN0M1RkZCNjA4QzI0CisyRkRCQjI2NjgxNDFCODY0MDc0QjUyQTk0QUJDREZGQTFCRTA1RjBCQTY5MEJBNDJGRDA4MzAyQjIyOTNEM0I2Cis0MzIzQjAzREY5RDE0MEI1QzgxRkM0MzMwQkQ0NTczODU2MkJCMkUxRTBENUM5RjI1ODhFRTZCRDdFRjFDQkNCCis2RTI4NDdFMEVGQTIxRTgxQjJBMjVBNjgzQjA1NDdERTM3QUE5OEJCN0Q3NzI1MjQ5NjczOEJEN0RGNDZDNzMyCis4MDVCRDYxNjQzQjMxQkNFQjAzMzhCQUM5MEFDMEU5RjMzRUMzMURENjA2QkI2RERFOEEwMjYyRThCRDk5NzVDCiszRjY5REUyNkREMDE4MEJERUIwQUVGQkQwMkE3MDY1NDMyQjdFQUE0QjhGNDQ1NzBBNDJENDc5MzJGMkU0RTY5Cis0N0ZGQjc3M0U4REIzODg0NTAwMkEzNTI0MzA1NUE3QUNEREQ0NDQ5NTA3ODZCMkY4RDNEODQ2QjJGMjFFMDI5Cis4OEZFQ0NGMEQyOUMyMzQzQzhEMkJCRjA5MjI4MTQ0RkU3NTg4NUM0NUMxQ0MyREJDMzlDMTc2OTA1NDFGMjY4Cis3NDlEMEZEMkNDNUY2REJFRjI1RjVDNjUwREJEQURCNEQ5NEZBQTdGNkRFREQ0Q0NGQzY1RkYxMTU5MTVDNTY1Cis4RTJENjkwMEY2N0EzM0UyMUFCNkIxMjA1MzU1QzE3MzA3MDMzNDMzQjYwOEIwQzU5QjAyQTJEMTU5RDdENjQwCitFODRGRTE4ODg5MjlDMTA4QkY1QThFQUY1QjA5N0U5QjY4QTBENzI0OUU2QUYwMkU2RUVFMTk1MDREQkI4QUEzCitEREFENzI2N0Y0QzY1ODg3NUU0ODRFQTAzRTI0QTlFMjJBRjhBMjAyREYwQTJCN0YxREY5MEUzQTRCQjNFOUNCCitEOTJGNUI4MjlGRTg4QThGMUZBODA5QTdCRUE4NUQ0OTE1RTBCMTQ4RjBCNzUyOEVCMTAzQ0Y2MEM4RDVCRjUzCis4MTY2NjY2NjM3RTg2OUNDODlDMjI2M0NDOTA3RERGQTc1NEJCQjBFODhFODVDRkQ1REMyMkM5NEFFNEUwN0YxCis3NUZFNTFBQUIwMjE3M0M4MTMxNDlBNkUzRUM3QTk0NUQwRUU0NEFEMTM1MDBDQzlFOTVGOTk0RUU4NEVBNEMzCis2NkUzMkM5MDI4OEM3RkYxN0RCMDdBNDM5MEY2MjA2MDUzOUI0RkFFQzZGQTJFQjFFRUYzN0NBMzE0N0M3MEU2CisyMzMzNEMzMUYxMTYyMUIyRkNCOTg5RjQ5Q0E0RUY5OUZCM0JFRTQ2MjY5QzRBQzBCMERGMzhCRjJCQkU0MDZDCitCOEZCODY2QThFRjc3NTQ5RDBBRjAzRTUwNjAxNEY2QzU2MzgyMzQxMTAwNDRBOENERDlBRDk1RjMyRDRGMTg4Cis2Q0VCNTYzQjI1NzkzMTYwOTdBMjMyMkNENUMxQjUzQzkzNTNBOTg4M0FCNkI1NjA1NzE0QkQzMkNGRDA2QzU4CitBRjgwNTY3MTA4MjAzN0EwRjFBOUI2MEZBRjhCMDE5NTYzRUQ3RjRFRUI0M0Q0QzlGMEREMkYwNTc5REFFN0M3CitFMEFFRUE0QTZFODJGMDE2RDI3NjBDOEM1Mjk2OTMzM0EwODk3NDU3MzY0ODE1MDE0QThEQ0M1MTMwQUUyMzlECitEMjIyREJGMDg2MDVCNUZGNkYzQUEyRTVBQkFFRThEODNDMDZGMkY1NTRBQkE2Q0YxRThCMUMzMkFCM0JGQTlECitDNEJBN0U5NERCQjI4RDU4MEU5QUVCMTJBN0M0NEIyRDkyNjc3QTg1N0M3MjZFRTlBMTA0QkFFQzhCRjMxQ0QxCis5RTE2RTM1Mjg0ODM3QUE3MjlCM0YzM0QyRjI3OTZDNjQxQzNFRUE0NUI5QTdCNTU5MDc2NTBGNzNDMUIwNTY5Cis5MDM1OTZGMUUzODkwOUQ0NjkzRDczQTUxQTdBRjY3NEZGN0UwNTRDNEVDNEIyRkFFODcxNEFDRTNCMUQ0NUM1Cis3RjM4Q0E0NDRDNzUzRDhFRUExNTk5MTI1RTM2RkVDOUM5OEExRUYzQzdGNzlGQ0MyNDkyMjhEMTc2QkI1QTE0CisxNjlBNzlFRDNDRkU3NkIzN0MzNjM3MzZFMDg1RTk2M0Y3MDk0RTgzQjE5QzhEMzExRTZDQ0U4QjQyODU0RTEzCisxMTE3MUFBREMzOEIxQ0VCRDZGNjBDQzI0QzE0RURGQUM1RTg1RjkyM0I2RkU2NkVFQkE4OUQzMjg1MDRGNTEyCitEQTIxNjg2REU3MzhDRDNCREFCRkRDNzQ5RDZGMTI5MzM4MkM1NTk1NjZCNUYxNzg4MzE0NEQ3NzkyRDlFNTM3CitGMjIzMDY3RTk1ODYyRUYwM0ZCOTQyMkMwRUI5MEFEMUE5MkZEN0VCNjMzQjVCREI1ODBDRjZCRUI5QThEMDhBCisxMjcyMTYwOTM0RUUyQjlFNTFFOUExQTZENEZEOUFFOTQ2RDIxRTlGRTc5OTFDOTY2RjkxQjc0OTk0QTg3NDZCCitBRkUzNDY0MkNDQjFCMzIxODdCOEJFQUY2RTNBQ0ZFMzI0QTM2N0U3RDNEQTk2NzhGQkIyRjBENjA4QjdENDk4CiszMkIwMDNENEI2NEE1NDRCRDdFNTQ5ODA0MjY2RUQ4OUQzMTAyMUE1NjM2QjdGNDc5OTI0NDQ2RTUwMTRDMDUyCitEREM2NDhDRUM2NENCMEUzNTM0OEE0NDVDQjZFMEE2RDI4RTU4QjkzOTcyQjAxRjE4RDIxM0I5QjczQURFQUYxCisxOENEMzFCM0UyNDY3RDRDQTY1REJEQTFBM0JBOTJBMjA4OTk5MERFNTIyNEUzNTQ2NDYwNkZBQUVEQ0FDMzAzCitFN0U1RkNENzhDQTE1RThCMEVBMTNBNDQ1QzI0ODExQTlGRDM3QUE4NTRCODFFNkE1MzZBOUY0RkZBRTBDMUM2Cis3RjcxMjNBNkJBMEFENEE2REI4ODBFREJDMEMwODI3NDMzODI2RkREM0RENjk2N0YxOTc0ODRGNjA1QTk3QjVBCitBRkQyMzZDQTA5OTYwMjBBNTgwREU3REZCNzFBOEIxQTA0NkJCOTI4N0U4MkZFRUQyQjQwQTY5RjYwQkQ3QzAxCisxMkFDQzk3NkVEMThDQzMxNUIxQURFNDI3MTI3MUM5NjY3OUExOERFMzI0NEY4Q0VGNDNGRDhEMEJCMDYwMjhFCis1RjAwN0ZFQzMxRjIxODhDQjk4RTI5RDI0M0ZCQjE4MkM1REIzNUY3NjA5NzYyQzc0RThCQjY2QjdDQ0ZEODQ2Cis2NjM2OTg5RDJEQzI5QURENkM1NTlFNTRFRTlCMUYxNUI5NDQwNzBFNUU2NTAwQ0ZBMUQxQzNBRkRCMzI5QTBDCitDOTVGNTY1QzQzOUIxQkUwNjQzNkI5MTA1RURCQkY4MkFGRTk5MUZENDU2Mjg4QUNDQTM1Q0UxRUQ5MzBGMkY0CisyNjk3NkEyQjhFQUMzQkI2OTIyMkQyNUQxM0EwNzdGNjVBMTQwNkRFOTU1QTg0MkM5NzY4MjZCMjkzOThFMDc4CitBOUE4OTZEQzlGRDlBMUZEREJEQjUxRjVGMDBBNzdEMDFCODI3QTlDRDFDQ0I4MUQzNTgyMThDOEJCQjE0MjU5CitDRjdBMkQxNTIwMzQyQkEzNENDOTY3QTdEQTJBQUM3QzY0RDY5NDRBMjQ2Mjk4MUQxMkFBMEMzRTZGNzRDQzYyCis0NDNDMDNCNzk5NzM1RUQ3NDcwODhCRDJFNUU1MUQzMUEzNjkxQzcwOTAwMEI3QzEzMTU0NjQxOEM0MTU5QUI4CitCQUI0QzEzQjI0MzkxRkU2QTU3M0VBMDdDMzQ0RkU2NEUwM0QxMkQzNUY5OTEzMDlGQjU2RERDMTJCMzQwNUExCisxODdBODcyOUVEOEU1MkQ0REQ3Nzk2QzkwRjAyNEEyMDcyMjY5OEI2QzNCQjA1RkFGMkM5QTMzMzdGMjA2RTJCCitFNEZGQ0E1N0I4Q0NBMkNGODY3QUUwRjlERjcwMjI2Q0FBQjI3Qzk4NEFFMzQyRkQ2NkQ2NDRDMDQyM0Y2NDQ2Cis5REE2M0Y3MjZBMDM5OEI0NjU0NjhBMjRBMjVGRjc0MjYwNEE2REE0N0ZFQzBDNjY1QjVDMUI1REE4MzAyOTVBCis0NDJDRkM4QUQ1Nzg0Q0Q3NzIwOTI3MjIwM0MyMUEzM0JFMDUwNUU1QzBBNzMxMDlGNDRGNDAxMTQ1ODE5NkZFCis2NDVCNUVDREVFODEwMUVDRDA4NDEzMDM2QUE0Q0NBNDk1RkRFNjBGRjNFQ0ZFNDU4QUNEMEQyRTY3NkE5RTE0CitGMUZFNDg1MzcwRUFCRUVEQjBFOTYzODc0MjkxMDY0MTA3RTkzNTZGRjlBREU2N0QwRUFFOTY4OTBCOTk5MEUzCitFQ0QzNkNCN0EwMDJGNEFFNTZDNzcyNDIxMzk2RTI2N0E4Mzg0NzU5NjEwNUM3QTQ0Q0ZENjNGNjg1MDk4QTk4CitFQkI1ODJENUE3MDlGRTA0QjAwQTdCMzkxODY1RjY5MTQzMjE3QzBCQTQ1MDY5N0NBMkFDRUNCOThEMzI1RjIxCitDNTRCRjRDRTVDNDZBNTUyQkRDODk5QUNBRkQ0MTM5M0Y0RkYwMkIxRkE1MjQ2MzU2Njk1N0VERDcwODdFN0MzCis4QTVGMjYzNDIwMEIyNzg3QTIwMTcwRjdDQkMzRDlEQkEyQ0M3RkI5REUwN0Y1QTE4NUZBQUYyMUM4MkU4Mjg2CitCRjM3NkQzNDhEQzBBMjNGRjk1MzY5MENBMjU3OTU3ODE4MTdCMzEyOUNFM0VDMDFFNjY5NkJDOTNFQjM3RDM4CiswQ0Y5MkM5QjE3NjJGODQ5RUZFOTY1NzgzMThGNDZDMEFFOTZFOUJCMkVDOUFFQzI0MDk1QTFGREYzNEFERjRCCitDMDRGMTNFRUQyN0EwQUY4RjRDQUVBN0NFNjFBRjJGRDE2NUNBQTIxMTAwMTVENEVBNDZDRTRGMkVBNzk1Qzc3CitCQTdGM0ZFN0IxQ0EyNTNCRUZFRjc1RUM3MUU1MjlENEIxMTk2N0QyOTQ4RDBBRUQwNThBQjhFM0E1QzU5QkVECis2MjdFMTAyQThGNEI1OTM5NjgzM0NBN0IxQ0ExNTRERDhFRTRENjU3QjU2MUY2NjhCRTU3ODNFRUFEN0MzMUFFCis3M0E0MkE4NEY0ODNFNUI5OTlERTFCN0E2MjdDM0ZDNTdBNDhBQjZBNjE5QkMxODk1RUE5MUJDNDhGMUE2NDlFCitBMDFGQThFMEE3NjMxODFEMDVDRjQ4N0VBMDQ0NjM1RjAzRENCQkY2QUNCRDE3RTVDODM2QjI3NjgyNUU2QUZFCis0Rjg0RkQ4QTM3MjU1QkI0RUQxOTM2NjJEOTAwQTA2Q0Q5QjAwODM0RjI1MUYzOEM1OTIwQTUyODZCMDgzMTBGCis1OUY5OEQ0RTk2Nzc2MDEzNERCQTMwNjYzQjY2MUVDQ0QyQ0M5NEI3M0NFRkFEMEJGRDg4RTI3MEQwQzAwMTA5CitBRjRGNzNCMEE2MjkxMDdCQzk1MURCNDY2OTVCMzJGRDRGMkE4ODY1N0YwMjQ2ODJFMUI0ODkzMzc4NEE4MDVCCitBMUUyNjA2RERCN0MwMzdDREU4MUM0RTlDQzc4RUM2MTc0Rjk0QThBNzA5MzUyQTc3MjQ1RkZFRjc3RDI1MTI3CiswMjhFQ0NCRURBRDQzODkwQkI5M0JDMEU1MEExOTc0Q0YzNDFBNkMyQjVCOERBM0EyOTA0REI2NjA2MDI2NUJECitCNzY4OTdGODA3NDM1M0I5QjRGRkFBNjJBMDYzMzUyQjA1Qzg5OTQ4NDczQjc5MzdCMDA5RDM4MzU2RjZDRkZCCisyRjI0OENENjFFOTJDMzI5MTJBRDEzMzAzMzQ5N0M3QjMxQjI4MjkzOUI4NERDODk2NTQ2RkI3OEE1QjlFMjY1CisxMjdFMEU1NThFMEU5QkFGRTU5REUwNUJGQjdBODIyOEY2ODA0NDNCNEQ2QkIxMjE4M0NFNzBGRDYxNzc0RDI0CitDMTFENzg3RkQ4MkIwQ0JEQkMxNTJGMUJDNTEwOTZBMEMwMzlCOUFGRkFFMTEyOUMwRkZGOEZDNkJDRTIxNzJFCis4RjNCQTMyQzFEMUVFQjE3NzE4MjREQzAzMjQyNDc0Q0I1RjEzNTRDRDJGRjk4MEMwMDlCRjQxMjA0Q0I1QUQ4CitGM0MyRDdBODhFMjE5Q0M5MkJBRThERDQ2NEE0NDVDOEE3RUMyMkIzMDlFMzZCMTRFNTVBNDg3RUY5QTM5QzMwCis1NDNFRDk2QzIxRTg2QjE2QTZCODJCOEUwRDNBNkM5NUExRTZERUEyQjgxRTc1NjMxMUVEODk1REU1RjY2MzUyCitGNzcxRTZCM0RCRkVBRkVFQjExQ0JGRTcwRDZBQkRCRTdBMzg4MkVEM0EzRTRENzFBOTYwMTBFRTQ5NzVDRUQxCitGNUQ1OUM3NDlCNzFBRDc2Rjc1QjdEMUM2NTJCNEVGMkZFMzQ4RkMwQ0IzMDEyQUM2M0ZDMEE5RUZBNkE0QkI4CiszNTRBNkNERTBDMzI4OUY2QUVBQjZGNzA0REI3REU5RkE3NEMyQzY0MEFENDQzNUUyM0Y3NUM3MTlEMzkwMUM1CitEODgyMjY1ODQ3QzZCREMwODVCOTZDOUNFNzExNUI2MDFERTYxOTI2RjJDNTdFQUMzRDY2MTkyMjE0RTg1QUI3Cis1RjU4MkY0NzVENDBFMUFFREU1MDA4MERGNjhBNkMwOEY4NTZEQkEzMDNGQ0RBREZFMkMxQzFDRTFGQzQ3QTZGCis2MDJFQjBDQjk1MEQ5MkFCMjUwN0I5RjFFMEMzNEE4OEFDNTQ0NENGNEQyQTY3RUNDRUE4MEQxMUQ2RkRGMDg3CitCN0VDNkUzODk4MUFBNDdFRkU2RDRBRUE1RUU4NUYwOTcyRTFBNzNFMzM2NzAwNzVDMzkxRDBENTMzMjRDM0FGCis5NDY0RDQ0QTI5Mzc5QjJERjczNDUyN0EwQkFDN0U5QTk5Q0RDREUxQkYxNzAwOEY1NTBBQTc3QzRDNkU2MkMxCitEMTFCODhBRUJEQjI1MTVBQ0UwOTQyMjcxMDNDMTJGOTZCQUY3Q0ZFMjQ3MjJGQzlGMzFFMjJBODU2OTM0QTVECis3MDRDODY4Q0RCNjQxOTI2OTA1NDlBRUIyMjU5OTAzNEZFRDJBQTI0QTVFRkQyMTE1NDdDMDMzRjQ2REU3MkE0Cis0OEZCRjNGRjEwRERGNkU3NDc5NDkyQzZGMkY2QUU4QkEwOTk3MDYyNTVGOUM4Q0FGNjQzRkFEMzhDQTUwQjU4CitFMTkzOUVCQzBDNTY0NkYwN0VFODg2QzVDOTQ0QjQ1NUY2OEMyRTE4MEYxRDcxMDA5NkYxREVFM0YzNzQ0MjQ4Cis5RURBRTIyQjhDQTE3RkRGQjI5MEU2NTFBMjcwMTU2OEU4OUI4Q0RCMzFFQThBQUJBRUMwOTAyQzRDQkU2NDk1CitFMDhEOURGNjBCNzA4QjAzQTA2RDYxNkNBRjIyRDNENTc0NDcwOTY2MTRBQTg2QjRDNjU4QURFMzYyOThEODgyCitGMDQ5NzMzRTJGQkM5MEQyMzFENzU3N0QyNkQ3MTkxQUJEMjJFMTYzODcyNjE4MkJENjVBNTkyQzUzQzg3OTY2Cis0NEJCMTJDQ0NFNUM3MjUxNDJBNzlFNTIzOEQ5QzY2QkNCNTc2QzE3RjI0NTU4NDVCMDcwNzAyMEI2Rjc2MDVDCitCREVBQzEwNjVDREZFQjRGMzhBMzA5MUJGRkM3QTlGRkU4RjA0NUQ3RkE5MjlFQzRDNTAyMzVCOEM1NERDMkNFCitCQ0QzQzAyRkFBQjA1OTA4MDRGQjI3REI5RUMxQkRCMzZCNjUwQzczRjQ3RkM5MzEzOTFCOTAyMkVGQUZGQjBDCisyNDAxMUJDMTAxRDREMUMyNEY2NUM5M0ZCQkJDQzQwRUVDRkYxODk1ODkxN0FEN0Q5MjA2RTkxMDFFRTVCQzQyCis1NzkzNUJGQURBODg0RjdCRDY4MzU2QzY0MEUwOEVDOEQ5MTlCNjAwRUE4QURCMzlCNTI0MzdGMzQzMjMwOERCCiszNjYwMDc2Rjc3MTg1MjBEQzQzRTRGNDY4RDE0RkM4MERFNDc2MDRCQkQ2MERCRDJFNjFBMDhFRjBCQUE1RDA0CitEQzMxNTNBRUUxNjZBRThBRDBDREJGMDdBREZBMTZDRTU0MkYwMTRFNzI1NTY5MjhFMEEwQzU0NDA3RjFGOUY5Cis5MDNCMEE0QzlERjQ5Q0MyRDNDMEI2M0UwNjdDMjA4NDEyQUE5NUU5MTcxNEE0MEFGN0ExNjRGMTVBNjFBRkJECis1NkQzODlBNDU1QjhGRENCQjg0NUMxRDIyNTZCRjc4QjlBNUVDNkM3MkE4NjE4NjE2NkYyRjExQTFENjBCRUZGCitDM0Q2MkEzOUNGODQxRTFDMzg2RkZEMjBCMkEwN0IxQzY3N0ZGMjFENzU3RTZBODQwMzlGQkE0RDhBRDFGNDAzCitDNUFBRkVGMzVFNzNGMjJGODg2RDZFNjQ3N0QxRERCNzc5QkY0RTFDOTc0OEU3RUM1NEU5MzNBMzhFOTczNDk5Cis0OEIwMUU5NUE5NUM0NzAyNEY1NDFCRkU1NUM0NzRGNDkyOEU3OTA3QjA0QzBGMDI5MzdEN0U0M0ZGODk5NjczCitCNjEzOUEyNTFCQTk3NkQ4QzNEREZDRThGNzY1NjkyQUQxMEVBNDlGMEIwQURGNzREMzIyODkxMzhCQUEwQUFECisyNkNGRjUxMkVBOUFBNEZDNUJGMzNBMzBCNDVDMEFEMkM5NjVERTdCMkVBQTQ2M0JCNjk1OUQwQkIyMkNDNzJDCitGOTE1MUMwMzQ3MDE2MTY0Rjc0NjJDNEFBODMwNkRGNkNGRDU5NUE4OTgxQjhBOEY0RkE3QzdENDdBQkJBMDgzCitDQjZDOTM4OUJGQ0E0MTA3MjdDN0U1QUQwMzUwMUQxRUI0RTU5N0YxRTdEMzIyRkQ0NDA5Q0ZFMTY4NEE4OEYxCitERTlBNjY1ODg5RDhGRjdBQ0JFMzhEQjlBMEU1MERERjBEQTg5NkI4QUI0RTBENkU5QjM0RTI3QUZGODJGRjkwCis5NTlDRjQ3NEE4MjBGNUFBQzBBNkZFQkI4NDU4QTI1N0Q3RkY1RjY4MUJFRjE2OUNEMTlCREM1Nzg0MTc4QThBCisxMjU4NEVGRTc3MDM1ODQyRDIxQjNDMkU4OTQ5QzU2QTVDMUE5ODE5QzY4NkQ1NTI4OENDMjA0RThFRkJENjE1CiszMjRFMkExMTc1NUIyN0JGMzIxNzdBQUE3MEY0RDAxQUEyNTFERjgwNEU0MEM2RTBCMUU5RUNFODQ2RDAzQjg1CiswNDQ2NjM2NUJBNTI5Njc4NDYwMTMyM0UzN0JBOTM2NzQ1RTQxMjREQzRFQTExREU5QkNDOTE3NzBBQkVFNDY1Cis3NDA1N0I5MzhBRjJFMjc0Qzk1RTg5RjAyQzA1RkMzMUIxRTJFMzBBNzFGQ0Q0RjgwQzJBMEMwQTdFNTM0REQ4CitEQTU5QzA2RTY4QjQzQTJBQkFGMjQwMThGQ0I2QzFCMzFGNTBEOEU5MUY5NDBCNzU3MjNGNENGQkIzNjZBQzUwCitEQ0E4MkU1NjUzQUNDNEU1QTdFREQ2ODZGODkwOTE4Mjc0QTEwNkYzNjBFQjg3QkNDMjdDMkQ4MzU0MTZFMkI0CitDQ0U1RTE2MEYwODZFRjE3RDk0MTQzMDI0RTExQjkwOTY1OERGRDU0MURENUFCN0Q2NTY0Njk1REM3M0U2MTJCCis4MUE2NzNGM0ZFRjA5RTIzMDg2MUQ5RDY5QTZGNTdGMTYwOEZGMzAxOEYzNkRBMzU1MEVCMjZEM0M2ODJGNkQyCitBNzlERDVENjFBRTNDQzkzQjQ0NEVDREFENUI3RUE2NTEyM0ZBNDQwRjMzQjU3MUFCRTg2RkIxQjc4NjJBNzhDCitBNEYyNDY4RDE4RUUzNjI2NjVCNzI3MDcwOTE4ODAyQzhFQTM3NjhEQ0JFMDg0QUNFRThFQzQ2QzYyMTlDNjAwCis1ODdCOTUxRTY1NDU5M0EwMkE1NUJFMkJBNTRBNzQ5ODRCNzU1NzBBODE2RTNCRThBRjlGQkVBMDYzNjk2NkZGCisyMUE0M0Y5N0JEOUQ5OTJFNTA1RUYyODlCMzZCMEI3MzVCOTlDOTM0NkJCMkQ5QjBFMEE4REI1MzQyMzJFOTA5Cis1QUNGQTc5NDdDQjUxMzc3QUNBREJFMzhGRDY3MTI4QkQwNTY2NEYwNkExRDVFNjk1QzlBOEQ1NUU2M0Y4NjU1CisyM0ZGNTYyMTM2ODA0MDM4OEY0NzI2OTUxOUY5OEVBNjNGMDk3NjZCMzU2MDg1NzQ3QjMwREJFNzA5MjM5ODNBCis4N0FFM0U4NUJFQzhFMjg2MzUyRTMzRDJEMEM2MjhFNDIwNDBFMzg3M0RFM0FDREEzNjIzRThFNjAyMjQ5NEJCCis3NDZEQ0U2OEVBRTJDQTA4OERGNzY4MDlFNTZBRDIyNzYyRDU2NUQyRTZENzNFOTQyMTBERDFBNkI3NjQzMTRECitFREY4MzE2MTU2NzQ2MjgzQzdDNjVBMUYxOEFDQzRFQ0REM0Y4QjI4OEQ0RDY2OEYxMDNDODFDQUY4RTVBQ0NDCiswMUFFNDQ1OTM1ODJEQzRGRTYyMzAwNkQyRDI4OUNDMkFDRDU5RDc5NEE4QTQxODRDMDMxRDJDRDc5NzQzQjUyCitEMjUwODJGQzU0MkJDQUY3QTE0QUZCRTZGOEIwODE3MUMwNzRCMDZBRjlDRTlEODU0QjMwMENCQjQ0MzE3QjVCCisyRjg5MEQ2NDJFMTZBQkUxNDRFRThGQzk2QTAwNTc5QzNEMjA1RTNFNjcyNTBEOUQ5N0U5Mjg0Mzk2NDQzMDMwCitDQUYzMTA3NzhDNjdFRkFFRjNENDc0MzZFNjk3ODY1QzE4RDZEMUIwQjVBMEQwRjQ2RDZEQkY2NzZBN0RGMEUwCitDNkZEMzVDMzc2QTg1NURGNTJCNTFFODIwMjFDNjgxRjQ3QkRENkEzNDk3M0Q0QkREQjcxOEZDNDNGMTZFMUVBCiswODk3QjQ5RDk3QjZGOTAwNzVCRjI4RUEwODQ0QTRFN0ZBMTAxNzBDRUJDQ0EyMDIzN0RGQkUxRTA3MTUzMEJFCitGNkZEODNGRjA0NkM0NjU1NzVDQjc5M0NENUY2MzJBMjgzNkU2Njc5OUNGQjc4NjcwMEQxMjYwQzY1Rjc0NDdGCis0MkI3Q0QxNDEyNDVCNzIzOTcwOTQyQzBGQjNEOUQzNTFCQzhFMDY0MzhBMDgxMTE0MEM2Q0MwQTNGMDkzRkQwCis4NTgxOUJEMEM2NDhEOEVFQjREM0FFRjMxOTM2QTg1QzdDQzVDOTc1RDk1NEMwMkE3NzAzRUZGMEEzRjYzQTBCCisxMTgzMzJDRDkxRTcwNjU5NEE5QTQ0RTUwNTA0QUVGNUU3MUY3NzMzNzI4QTNDRkUzOTlCMEUzQjE0MzE1MzMwCitGOTI5REMwQjIzQ0ZGRTM5RUM5MEU0NUQ0Rjc1QTVBREM2OTE4MTQxNDBBRkY4Q0E0MjBDNUE1QjZFRjU4RTU1CiszMjI5NDNDOTc2MzE5QjE2RjgzNUQ4MDE4Qjc3MzI0QkNGQzAwRjUzMTdGMTRDM0M2OTVGNEU2NTM4MjQzMDZGCitDQzE1OUI5OTkzQkU4ODc0MjhFRDBEQjdGNjQ3MTIyNjI5M0QxMzIyNzUzOEFBRDlGNzYxMzYxQ0U5MjE4QTJFCiswOTYxNDI1Qjk3Q0UxODIxN0MwREEyOThBOTZBREE2NDYwREVDNzc5NjFDODUzNzAwQzlGQUI2QTI5MzI1NzhGCis2OTIzNERDMzkzMEU0MDFDQjdDQ0M5QUEwMjU2ODM1RUMyODg1NkI5MkM3MjhEMENEOEZEOEYzNTdFQjY5RkQyCisyOENFRjg0MTVDN0UzMzM3NUMxODNCNjIzM0IzNjM3MjNGNjMwMDAyNDNFRERCRUFGRDAwRTY0QkJEQkJFNTE1Cis0MjJGMzY4QjIyOTE3MERBMzdENjBEM0UzREMyQUFGODc5MEM5MjJGOTVCNkREMjcwNEZEQkM3NzgxMDk5QUJDCitDNDZDNTkwRUExRDgwRjcxOEMwMzBBNjhGOTRCNTQ0OTE2QjNCNDEwNzgwNzdFNUREQkRBQjVEOUFCQUYxRThBCis2MDJBRTVBREVDQkFFNjQzOEI1OERCRUIzRjFDN0E1ODIwRjYxNjJEQjc5RTY1MEJGRjFBQUEwQkE1RURCOEZECitERDYyMEE2QjQzRkEzNEIyM0FBODZFRDMwNDE2RDVBRTg4NDlFRjJGRDg1RDJGRDY1RDQwRkE0MUI0MDFBNzg2CiswOUNFMjkwN0QxQjRFNjg1OUUzNjNCREE3NTlBNjYxNERFMTI0QkQwNDE2QTIzRjM5MzlFQjA5NThFN0Y5NkNDCiszMTZBRTc5REY3QkU0MTgyNzc4MTVGMzlEREU0MUI2MkJEQkQzQkQ0MTFDQURFMDQwNzMzNTQ3OTBBMTdERjQ0CitFODNBOUQ4RDI1RDY3MzlFMTE0ODFBODlFMDU1MUMzODNERkUyOEFDNzM3MEI4MzgyRENDMERDQ0M5NkIxMUE2CitBNEI0MThDQTBFRDc4MkMyMUU4QTMyOUM4QzI5QkY3NDZGMjU5QkQ1NTFCN0MyMjIzNkRBNkZENzgzNjdCNTFECisyRTIxNDcxQjg5QzU3RTkxMEQyNjk3QUY4OEVFRTU0QkMyOTEzMkE5RjNENkZCRTM0QUJENzJCNjVGOEU0NTJDCitBRDNCREU5OTFGQjYwNjA3MjE0RUI4ODg0RTA0QUZFQjc4MTI3MkJFOEU4NDQzMTA2MDA0RjdGQzQ2QzQ1MTc2Cis4NkZDMTAzRjZDMEY4MERENzE0NUYwMUYzQ0FGNkU2NEFDMTJGMDg5Q0FFQTc0NEU2NDBDRjg4MTY2MTREREQ1Cis2NDdEOTRCOTdDNjk5NkUzQTAyMDZGRjAzMDExNzY5OTczQTE1N0NBMTBGQTMyMzE3NDdGNDk3RDgyMkI2Mjk1CitGNUQ3NjE0NEFCN0NGQ0E0RTIwNkQwQzJGRUUwM0JCODI2M0MwNDQ4ODY3OTBBQjkxQzU3QTM4NjMxN0REMjVFCis3Qjk5MkUxQTRDNTZCQjBCRTE3NTlDNTI2MUQ5MUZEREU3MEVGRDg0Q0UzODY0OTg4REI2NDFGNjM1OTQ2MEVFCitFMzIxNzVFQUVCMDhCMEVBRTA0RTQ1NDdGQjUwOTdFQjBFRDM2QjkzODk1M0JENUY1REIyMTVGNzUzOUU4MDBFCisyNUZBNUI0REM0QThBNjE4QzRBQTg5NkVENDY1MjNGNkQ2ODc2RUJDNzgzQzlEQzAwQTgxN0JDODU3Qjc2MkU0CitCNUJEQ0E1NzY0Q0E2REVBMTRFMzFDMjIyNjlBMzI0MUU4MDMzNTkxQUY3REM4MkJBQzcyMkIzNTgwRDRCNkE2Cis1MjUwQTdDNURGQkIyRDY3N0EwQzE1Mjc4QzkzRTQ4MDIxMDUwNEZEMTdGQkM0QTRGNDkyNDNGN0M5NENEQ0JCCitERThFRUUwM0I2OTlDREIzM0ZCNDU5MzhCRkJDNkZFNkQwNEQ4Q0FBODhGREYwMjc0QUY5QUU2OURGNEJERjVBCis1RDQ1OENBMzYzRTA2NEQ2RUNCREMzNDZDQjlCMjJEODhCODUxNTVGRDYzNkI0M0NCNTg0NDAwM0RDMTY4RTdBCitBRDFDRjk1OEQ3NEMyNTYwOTFCQjM0OTJGRDA1NjNGQTEyM0JEOUVBNjFFNTQ4M0RFREE3QUI3NkIwMTk4MDI3CiszODlEMjcxMjY0QzU3MTQ4Rjg2RDA3QjgyODRGRTAwQ0U5QTYxQzdDQUVBMTVCNzI1NQorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorY2xlYXJ0b21hcmsKKyUlRW5kRm9udCAKKyUlQmVnaW5Gb250OiBDTUJYMTIKKyUhUFMtQWRvYmVGb250LTEuMTogQ01CWDEyIDEuMAorJSVDcmVhdGlvbkRhdGU6IDE5OTEgQXVnIDIwIDE2OjM0OjU0CislIENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKzExIGRpY3QgYmVnaW4KKy9Gb250SW5mbyA3IGRpY3QgZHVwIGJlZ2luCisvdmVyc2lvbiAoMS4wKSByZWFkb25seSBkZWYKKy9Ob3RpY2UgKENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZCkgcmVhZG9ubHkgZGVmCisvRnVsbE5hbWUgKENNQlgxMikgcmVhZG9ubHkgZGVmCisvRmFtaWx5TmFtZSAoQ29tcHV0ZXIgTW9kZXJuKSByZWFkb25seSBkZWYKKy9XZWlnaHQgKEJvbGQpIHJlYWRvbmx5IGRlZgorL0l0YWxpY0FuZ2xlIDAgZGVmCisvaXNGaXhlZFBpdGNoIGZhbHNlIGRlZgorZW5kIHJlYWRvbmx5IGRlZgorL0ZvbnROYW1lIC9DTUJYMTIgZGVmCisvUGFpbnRUeXBlIDAgZGVmCisvRm9udFR5cGUgMSBkZWYKKy9Gb250TWF0cml4IFswLjAwMSAwIDAgMC4wMDEgMCAwXSByZWFkb25seSBkZWYKKy9FbmNvZGluZyAyNTYgYXJyYXkKKzAgMSAyNTUgezEgaW5kZXggZXhjaCAvLm5vdGRlZiBwdXR9IGZvcgorZHVwIDAgLy5ub3RkZWYgcHV0CityZWFkb25seSBkZWYKKy9Gb250QkJveHstNTMgLTI1MSAxMTM5IDc1MH1yZWFkb25seSBkZWYKKy9VbmlxdWVJRCA1MDAwNzY5IGRlZgorY3VycmVudGRpY3QgZW5kCitjdXJyZW50ZmlsZSBlZXhlYworRDlENjZGNjMzQjg0NkE5N0I2ODZBOTdFNDVBM0QwQUEwNTJBMDE0MjY3Qjc5MDRFQjNDMEQzQkQwQjgzRDg5MQorMDE2Q0E2Q0E0QjcxMkFERUIyNThGQUFCOUExMzBFRTYwNUU2MUY3N0ZDMUI3MzhBQkM3QzUxQ0Q0NkVGODE3MQorOTA5OEQ1RkVFNjc2NjBFNjlBN0FCOTFCNThGMjlBNEQ3OUU1NzAyMkY3ODNFQjBGQkJCNkQ0RjRFQzM1MDE0RgorRDJERUNCQTk5NDU5QTRDNTlERjBDNkVCQTE1MDI4NDQ1NEU3MDdEQzIxMDBDMTVCNzZCNEMxOUI4NDM2Mzc1OAorNDY5QTZDNTU4Nzg1QjIyNjMzMjE1MjEwOTg3MUE5ODgzNDg3REQ3NzEwOTQ5MjA0RERDRjgzN0U2QTg3MDhCOAorMkJEQkYxNkZCQzc1MTJGQUEzMDhBMDkzRkU1RjAzNjRDRDU2NjBGNzRCRUU5Njc5MERFMzVBRkE5MENDRjcxMgorQjE4MDVEQTg4QUUzNzVBMDREOTk1OThFQURGQzYyNUJEQzFGOUMzMTVCNkNGMjhDOUJENDI3RjMyQzc0NUM5OQorQUVCRTcwREFBRUQ0OUVBNDVBRjk0RjA4MTkzNEFBNDc4OTRBMzcwRDY5OEFCQUJEQTQyMTU1MDBCMTkwQUYyNgorN0ZDRkI3RERBMkJDNjg2MDVBNEVGNjFFQ0NBM0Q2MUM2ODRCNDdGRkI1ODg3QTNCRURFMEI0RDMwRThFQkFCRgorMjA5ODBDMjMzMTI2MThFQjBFQUYyODlCMjkyNEZGNEEzMzRCODVEOThGRDY4NTQ1RkRBREI0N0Y5OTFFNzM5MAorQjEwRUU4NkE0NkE1QUY4ODY2QzAxMDIyNTAyNEQ1RTU4NjJENDlERUI1RDhFQ0NCOTVEOTQyODNDNTBBMzYzRAorNjhBNDkwNzE0NDU2MTBGMDNDRTM2MDA5NDUxMThBNkJDMEIzQUE0NTkzMTA0RTcyNzI2MUM2OEM0QTQ3RjgwOQorRDc3RTRDRjI3QjM2ODFGNkI2RjNBQzQ5OEU0NTM2MUJGOUUwMUZBRjU1MjdGNUUzQ0M3OTBEMzA4NDY3NEIzRQorMjYyOTZGM0UwMzMyMUI1QzU1NUQyNDU4NTc4QTg5RTcyRDMxNjZBM0M1RDc0MEIzQUJCMTI3Q0Y0MjBDMzE2RAorRjk1Nzg3M0RBMDRDRjBEQjI1QTczNTc0QTRERTJFNEYyRDVENEU4RTBCNDMwNjU0Q0Y3RjM0MUExQkRCM0UyNgorNzdDMTk0NzY0RUFENThDNTg1RjQ5RUYxMDg0M0ZFMDIwRjlGREZEOTAwOEQ2NjBERTUwQjlCRDdBMkE4NzI5OQorQkMzMTlFNjZENzgxMTAxQkI5NTZFMzA2NDNBMTlCOTNDODk2N0UxQUU0NzE5RjMwMEJGRTU4NjZGMEQ2REE1RQorQzU1RTE3MUEyNEQzQjcwN0VGQTMyNUQ0N0Y0NzM3NjRFOTlCQzhCMTEwOEQ4MTVDRjJBQ0FERkE2QzQ2NjNFOAorMzA4NTVENjczQ0U5OEFCNzhGNUY4MjlGN0ZBMjI2QUI1N0YwN0IzRTdENEU3Q0UzMEVEM0I3RUIwRDMwMzVDNQorMTQ4REE4RDlGQTM0NDgzNDE0RkRBOEUzREM5RTZDNDc5RTNFRUU5QTExQTA1NDdGQzkwODVGQTQ2MzFBRDE5QworRTkzNkUwNTk4RTMxOTcyMDdGQTdCQjZFNTVDRkQ1RUY3MkFFQzEyRDlBOTY3NTI0MUM3QTcxMzE2QjJFMTQ4RAorRTJBMTczMkIzNjI3MTA5RUE0NDZDQjMyMEVCQkUyRTc4MjgxQ0RGMDg5MEUyRTcyQjY3MTEzMzU4NTdGMUUyMworMzM3Qzc1RTcyOTcwMUU5M0Q1QkVDMDYzMENEQzdGNEU5NTcyMzNFQzA5RjkxN0U1Q0E3MDNDN0U5Mzg0MTU5OAorMEU3Mzg0M0ZDNjYxOURFMDE3Qzg0NzNBNkQxQjJCRTUxNDJERUJBMjg1Qjk4RkExQ0M1RTY0RDJBREI5ODFFNgorNDcyOTcxODQ4NDUxQTI0NURERjZBQTNCODIyNUU5QUM4RTQ2MzBCMEZGMzJENjc5RUMyN0FDQUQ4NUM2Mzk0RQorQTZGNzEwMjNCNjYwRUU4ODNEOEI2NzY4MzdFOUVCQTRFNDJCQThGMzY1NDMzQTkwMEYxREMzQTlGMEU4OEEyNgorMzMxOEIzMjUwMEY3NkIxMDM4RkE2MTIyQzJBRjYyNjFCMDI1QkRENTE5RDM0OTk2NkEwNjdGQjE5MEUyNjc2MworQTVDNkIxQUVBMkE0N0VBQjhFQjI3MkJBRTJFRTMzQTYyMkU4NUE3QkRCMTQ5QTZDN0MzQkRERkI4NDAyODBFQgorMzA5OUZEM0JDNDA4MUUyNDI2RDY4QzEyRDZEMzYwRjFFRjhGRUMxOEUyMjdBNEQ0M0NDMjdFMDVBQkNCQTZERQorQTk4MEEyMjI4NjI1RkQzM0M3NzJDNkRCN0Y4MDNEQzY5QTk2Nzg5MUU4RDI4QkE2NjdEOEIwNENBOEE3ODhENworQzdDNUQ4NEIzN0REOThDQ0NEOTQ2NjU1QTEyQjhCNUY5QzNCNTkwQTAwMUYxRUZBRTEzRjczOUY0NUM4QzZCNAorMjU3QzZBQTREMTMzNDEyQjJGOUUyNTIyNkUyRTlDQTRBM0M0RDMxODg0RTE0M0E2MjA3Q0NDNzY0NEM3QzMwRQorQzg3MEFFOTRDOERBQTYzMkE4QjNGQjkwRTRBNjdBQkZERTQ5MDRFODQxN0NEMTZFRTVEOEJEQzU0ODNFODBBRAorNERFNEFCNkYwRkUxMjM0MjdEQjMyQThCRTVFMEJEQUZDNjI4MUQ1NkNEODM5OTczNTQ4MjlFRkEzMzg5OTFBQgorMEY0RUQ4OUM2OTQxQkE0OTFCNjhENjA4MzAxQUU5RTYwOEMzNEE5QTAzNURDM0U4NkNEQjRBNjRFRTZGNDYyOQorMzE1QTkxMTg0RkNCREZENzI3QUY3RjlBOUVEQjYwNEExQTEzREFGQzdDNDZBNzMwRThDRkZGQzNGRkZCMUU4OQorOUEwNkY2Mzc5MTFCRTFCQTMwRTRGQkY1QTBDNUY1MDQwMDQ2NzJFNTYwOUJCREE2RDYzMDg2MDZFQjg3NTJGRQorQUFEMjdDODA5QjRGMERDOUU1QjgzNDQzMzExNUVBQ0M5MkExN0UyMTRDNTM0MUE1QzdENDIzNzU4MTZGNTA4MworOUUyOTI2MTU3NzUwMDczN0I2OTBGMEQ3M0VBREZEQ0VENTBFNjQ4MjQxNDQ4MUYyNDIxNkMyRTdEQjA2NzdBMworOTkxRUMwRjI2NUI5MTlCODY1MUMxNkNCQjgzQjYwMTZEQ0Y4MDcxQzZFM0E4RDYyN0JDNDQxNjEwOUNDRTVGOAorRUE5NTRDOTFDMjkxOEQ4MDRDQTc1OEM1RjcwNTUxQ0RCNTg4NkZDQzQ3ODVERUU4MDQxMkE2Q0NERjdDRTY0QQorMzMyOEEzRDNGMzgzOTNEQjk4QzREMDJGMzZFMEUxNjJDMTYxMTYwQkY3MjFBQjE5NDdGQTNCOEM3QUUxNzBFOQorNjFBRTlGOEI0Njc2NkUyRkNFMzNEQ0UzOTYyMkM0NTI1QjRGNDhCNThDMkJGRUE4RTk2QzU2Mzc3ODU3MTNFNgorNUQ1NTA4ODFCQTVEREZEQkJFMEVBNzg2QzhERTkzNzVCNjk0QUJDRkRFRUUwNjBGRDkzNjIwRkEyRkE3QzgwQworQ0FBQzQ5N0MwNDMzNzM2RDgwMjIxQ0E3Qzk2QjcyRTI0OTRGMUIzQ0FFQjFGRDI3RjgzNjgyRjA0REFBMEEzRQorREYxMDI1MTNFMzMwMzMzN0UwMjgwNDBBQjdCNDExNzAzN0I3MkFBRDlBMUU0OTFCNzA1RjY3MzYxQTU1N0I1NworRkUxNTgzOUEzQjE2NjRDQ0ZDQzg1ODlFMkYxNDRFN0ZFMjhFM0RCMDU1QTdBRjZCM0MzMjkwMTBDMkFFOEZFNQorRDZDMzJDM0RCMEEyRkVEMDA0QUYxM0M2Qzc4ODREOTIxREVGMEM1NUM1RThFRkQ3NjUyOTlDOTVGNzg2OTExOQorREVCRDYxN0FDOTA4REExNUMyNjY1QjAyNUJDNEQ1RkUwODFCMkY4NDJDMzk2NUYyMjA3QTA1RTIxQkRBRkJCMgorOEI4QjcwMThFQTQ4QUQ0ODIzNjk1Qzk0NEFBNzYxODlGOEQzQUYzNDU5RTFFRUJGQTk0NDJBQTlCODQ1RkEyNQorM0JEQjJENjg0MkVDNzBBRTg3RUZGMUEwQTI0MUQxOUJDMzM0OUE5RjA0QzVBMjVDOTY2RDIzNTBERENGNUMwQworMUY3MDc3MjM5NTZEMDFCM0VGN0IwOUM3QTM3MDgxQUVERDBERjg1RDFFNDM5MkE3M0VFQzQ5M0M4NUI4RjFGQworQzU5QjFCMkExQjkxQ0I2NDJEOTY4QjA5RDQxNzhEMzYzMDBFODVCNUUyQ0VEMEMxODM5MkRDMkQ0OThBQ0YyQgorNDVBMUFEQTA3Q0ZBM0MwRjNFREZBN0IzOUIxRjg0NDIxNDRDNEVFQTcxNEE2N0NBQzU5QTc2Qjc4QzI1RjZCQQorNDk3MTI1OTRBOEM4MkQzMTk5MDgzQzkyMzdBNjlCNTU2NzgwMTNBODg2RkE0QTZFNTI5NjA3MTM2MUU0Qjc4MAorNDY3Q0ExRUIxODM4ODE4NTUyRTFFMDMyNTZBRDE0RTBBRTg0Q0YyMDM0REMxMzlBQkIyRDI5QkUyMEVGRkIyMQorNDMzOEQ0Q0UwMTBGMUJCNDU3NjdGNzIwODg1NTRCRDMzQkVFMkFGOTRBQ0I2Q0U4OTRBQUFENTc1RjJCRDM5MAorOUY2RDNEREY5QkE4QTRFQTE3MjQ0Nzc0RjI2NDhDOUY2MDQ2NDEzNkI2MzgyNDg1NjI2ODU0RUJBRkM0QTJGMgorOTk2Mzk5QkYyRjk3QzczODFCQzUwMDU3MDQwNTM3RjE5OTY3ODkwRTY5NjkxQjZCQUZDMDQ2MDhERjhEQUUxNQorRUE4NTNFQzg2NUUzQTg4RTE2Mjc2REJCMTE5ODNCQkZGNUZCQzAxM0FBRTUzRkRGRkMwRjg4NEE4MkFFMDcwMQorRkJDNkIxMTdFRjNBNDVCNjk1OUU5M0QwRjgxMUE4NTI0M0RDM0ZCMTMyMTlDRDE0MTA2QjEyNjA4Q0Q3MzM2QgorQ0QyNkVFNkYzQTEzQUQ2RUFGRjQ2NEFCQkZFNTQ1MTVGRjJDNDREMjdFRUFEN0ZEQUU5Q0M1QkJCQzcxRjdGMgorNkIwRjIxRTFEMjhCNzU2MkJFOEE4MUUwQjk0MjQ2N0FCM0FEOTE4MjA5QTAyQzg1MDQ4MTQ5NjMzNzk0RjNFQworOUE0MTcwRjM5OTQwNDI2NzFCNjNCQkEzRDdFMTU2MkVFNDk0QkNGMTBBNDZCNTMwNUQ5QUYwRURBQ0RENkQ5RgorQjMxRkIwODBDMjY0Mjc4QUM4MkM5NjgzRUE2MjZBMTkxQUFDQ0VCQjg4RTJDRTMxRkJENUQwQTdBMzJDOTBDOQorMDNDMTdEODQyNDUwOTc2QUYxRkQ4NkIyOUNBRTBFRDYxMDRFMDE3NzIzQjE4Qjg0OTM0NEE5MkUzNDhDOEFGQgorNTNEREJCMDhFMzFBQjVGODIyODNERDhFRTI0OEU2OTFDMUZFMENEOUUyRTU3RkM2NkQ0Mjg1NjM5M0I4MzIwNworQUY1OEM3MjY1NDQ1OTQwQjhDRjhDM0E5RjYzNTZGQTA2MjU1Q0ZGMjMwMjk4MDY4RDBDMEI1MTE3M0MxMEI5NQorOTAxMzREN0NENEY1NEJCREI0RjlGQTY2RkU0ODU1REFBMENCNTg5NjJEQzlFRUYyODkzMTc2NkY4NjZBMUYxNQorMEE4MEZFODZERDhCMzgzNDNBMDNCRDY3NDg5QjdBMUQwOEEyOEI1RTc3NjQwNURDMzVBMTFENEVDMDg4MjJGNQorREQwMEZBODNERkM5RUZDNjIyMTdFNURDQkI3NzVBRDBFREMyNkZGRTFFRTI3NUU0OTZCOTJBNkUwRkFFQjkyQworNkVDRkU5RTRGNzc4RUQwOEQwRjJCRTE1NzFEOTg4NDI0REUxQjUwQThCQjUzNDc0OEZGMUVDQjQ2NEM5QTA4NQorMjA2RUVFN0EwREU3Q0M0RDUzMzVBNDBBQzUxMTA2Q0QzRkM2RDc1QTVFNDAwQ0E5QTBCQjYxMEY2NzdEMTgxNgorMUJDNzE3RjYzRTNGQjQ5NzgwMDY4NEUyMTJGOERDNTA0N0IwMEUwRjhFREFGQkQ1RDNGMUVDRUIxRjk1MUIyMworQzE4RTBDQzkzREUyQjM2OUIyMTk1MEM0REY0OTgxREM2OTcyNTg3MjA4MUU5QzFCNDU1Njc3OTQyODYwM0RGRQorMTMzOUJCOEY1NTY5RTY0OUNDQUZEOUYzNTQzNDQ3ODI0OThCODc1NUQ4ODFCMDdFOUMwRkU1MEFDRjk1NjE0MQorNkU0QTM2MzAxREEwNTdDNzA3OEQ1MkZGQjhEMjEzRDNFOTA4NkY5MUJFMzg3Q0ZCMzNDNzc0NDk1MEY2MkM5NworMTU4OTcyODY5MTg2M0UyOTdDRjA4OTRFNkM2OUIzQzI5ODE2NjRGNjlGMDk1OTMzNzYyQkZCQUE2RDVEREQxQworREQxRDA5MEYwQzQzODFCMjhGMDdFNjE0MDNBQjYxNjg1OEE4NkU5QkI3NjVEMDlCMzBCMjgyNzdFRkZGNDA5QworRkM4MDA5Q0IzOTNCM0FFMkQyODkwQTgwOENGRUFBODA0RkZFOEM0MkMwRTA1QzY3OTU5RTVBMjNENEIyRDNENgorN0NGMzVGQTk2NTBCMzdBMjVFQzI4NTNFOTI1OUFFMjkxREZDRkVFNDgyMkI5REM5RjY4RUM4NkExMzEyMjgzQQorOUE3ODlGRDE4MEMzRUQ2NzNENzA2MzUyNzg1QUFGN0U4REY3OUVCMzIzQzc2OUREODZFNzhGRUYxRDA3NEZDNworRjUwMURDMEQyNjgwNDBBNzRDNTQ3NTJBNUZCMDY0OEJCRDBBN0QzQTU5NEMyREI4OTAxNDVDNkI3NEVENUZDMgorRDQxNDY2QUY0RjEwRDc0RTE2MUJDNUVBMUMyNzREMjIyQUFEODZGMUMwRUE5RDUxRjZDQjdENUZFMUE2RkNBMQorQkEwRERFRTQ1ODg4MTRBMDlFNTc5NEU2QkIxOTk0RjdFNUNEMzVFMzY0OTYwMUNFNjQ2NkM4MTU3Qzg3Mzc3RgorM0QwOTZDQ0JBQzlEQjNCNjZCQTYxNkJDRTVCOEQ0NDA2MkFDNjUyMzZGMjk0QzE5OTAxN0NCRkI4QkQ2NTA1QgorQUE3QTIyRDE0NkREMDAyRDM2NzcyQzRGNTE2MkQxMDkyMjdDQTRCOTJFOUVFMzE0RTQzQjUyMTc0QzU5M0Y3OQorQzUzMkUxQjRDNUU3MkNEMDg3MkRDOTg5MUZEQzUzMkNENTc3NEVGQjIzRjgyRkExMEI2NDQ5RkMwNUVFRTA2NgorMkQwODNDMzBDNUYyODhCNDUyRkJGRDVCRUEyM0I3QTE5RUUwNzA4M0NCQ0E4N0EyNTAzQjZBQzBGRkY2NTQ5NworNjkyOUY2NUU5RTg4QjYzODhBODQ0MDhDRENFQjI4NzRCREM3MkQwNkIwMzNCODg2RjQ0ODk0OEFGM0Y5RTU4MQorQzRFREIzREJGN0M0RjIyRkNBQTBDNTRCM0M5Q0JGRjc3MjM1RDVFOEY2Q0I1NUI0OENDQzVCN0VFMUY1NjM1OAorMjVCOUU3MkRERUY3NTk4RkYwODAzNjYzNDk4OUNCOEE0MTYyMDVBOEE5NTMyRTJGMzA3MUE4OTIxQjJDQ0Q0QworMzcwQjI5REIxRDk0MDZCRUVFNEM5M0MyMDIyRTMwNzVENEQ1QTk0MjkyMjEyRUFBOUUyNjBFQ0VEMjhBNDM4RAorMkNEODcxMTgzNzI4N0QxMzBENzZBNTEzMkM4RTZFMDlEQzFBQUZBNjVDRTMxQzM3NkE3REY5MDYyQUEzRTNFNQorRjdBQzU2MTcyOUY5RDNGQzM1OERBM0NFMUQyOTY2NjJBQ0NDRDNBQjI3NzlGMTNDOEZFQjVFMkYwNTY2QzFEQQorOTI2OUZBRjJDRkY0NEFENjVGMThCRDZBQ0U5NjA4ODk4MTM5QUQyMjlGNzNCNEMxQTMxMDg5MEJFMDc3NUM1MgorQTUxNDg2QThENzIxRTBCQTVFNkMyMTI2RUFERkNERTlBQzlDRjI1RUMwQ0JBRDcyMDhDOTIxOTMzRUY0NzY1RQorRUM0MTcyQzlFMkRDRDY3MTFENzcwMDg1QTc1MjI4M0M3ODUxMjQzMTdEQkQ2NkRDQTczODRGRTk3NjRBN0NEQworQTQxMDlGQzUyNzhDMTNFMjY0NjAzNDQ3OEQ2QTE3ODFGREFGMjFEOUNEMzEwNEEyMjYxQzQxMkU5MDcyQjYxNworNjUyOTRCRjFFM0UxOTk0QkUzNjcwQTBBNTFFNEM4QUIwNUIxOEUzMzc4MDhBMzg2RTFGQTg1QzNGQTRFOTEwOAorM0FERkZFNkFFNzJFMjhDQkMwQThERjNCRkVENjc3NzM5MDU5MUQxMjYxRjc3NDQ0NDg4NTczMEE1QjNFNkM2NworNUNDQzhDRjk4NDEyOUM0NDA4QkIwRUI3MTRFQjRERkRDRjVGOEVFRjlGNDg3MjUxOEY1NEVCNTg5ODdDRUEzMworRjRDMjI0MUNDQUZERjI1NjZERDg3NEQ2MDUwQzA5NEE3OTY5QkQ4MzFFREU0RTQwQjEzODgyNDE5NkI0NjBBQgorMTVFNjAxNEJBMjMxMUQxMDNBQ0YyNkRCOUNCNzlDQUI5Njg5NDNGNDg3M0Q5MjM3MEQzNjdGRkEwODJDOTNCNAorQjQ0NjFEMTk5QUJBODEyOUFGRkZEQ0Q2OUU5OEY1QzI3RTFGODQ5RUYyMkZGMEZGNjI1RDU2MUVCQzkwRjE4MgorODI3MURDQzY1NDYyN0MxMDM1QjVEQTBFMEJENTY4MzBBQzE4NTUyMDUzM0VFNzAxNjM4RDc0RkEzOTI0MDNENgorMjRBOTM1MEM3QTY5NTE4NkY4OTZENTE0QUE1MTEwNjNCMkI2NjhEOEU3QzFEQUQ4RUZBRDg4Qjc4QjkwOTg2QgorOTNGNTlFM0YzMzc1Q0MyRjVBODRDMTdENDM4NTc0NTU0MDQxOTNDRkU1OERDRDdDQjcyNUM3MUIyNDg0NEI0NgorOEM2Mzk3MEMyMjM2Njc1NkI2QjBDRjhBRjBGNUY3ODA4MENDNkIxRTk2MjA3RTIzMjkxODcxOUIyMzMyOUVDMAorMDE3MUM3OEMwRTVERUFFMjI0QzlGQ0FERkI2QTVBQUVGOTNEQjM4NEY0NEMzNUI1Q0FFNkZCNDE3MzZCMERENworNzdEQ0RCNUMwNkNFOTFFODYyMzI3MDU2Q0EyN0JCMkQ1MTJBQzkwNDI5NTE4OEVERjlEQkZFQkU0MTc1RjU1QgorMzdBM0NERkIyRTg0QTlFQkY3NDc2MUEzNDUzNjNBN0YxMEYzRTk5REUzOEQxRjNCOUJCRTMyQjI4NTg4QjQwQQorOUQ4QTUyNjdCNDg1RTM4QzQ4OUVDQzAwQjRDODFCOTJEQzcyQjVDNzA1MTQ0ODc2NkZGOUQxRkFDNDlBN0JCRgorMjhFNjcyMDIxQkE1Q0FBNzVDRkVEQzlBMjQzOUQ0N0QwOTM2REQ0RTdEODcwRUQ0QjRGNEZCN0E4NUVCMjFGQQorQUUyQTkzMDY1MjMzQUI1MjU2QkMxQjk3RENEQURGRUVFNDlCNDMxN0VEQTEzRkExNEY2RjVCMDUxNjUzNTk4MQorMDQ2QUE2MjZBNTYwQ0U4QUNCRjY3RUYzMDIxMTU5NDRFRUE2QzE3RTZGQzE5RUFBRjFFNDYyMzFGOUI4NjA3RgorQjZCMUNGRjEzRTBGMkI4Q0I3MjU4MTUxQ0RFQUNCODVGRTgyREU5NkY3MjM0N0U2MzQ5QUZBOUY0REFFQjBBNAorQUY4RDVEMTRFMkYzNEM0QTlDNTFBQjE5ODlERTRDNEIxNjREMzU2QzMwMzAyQzc3MDUzQURDMUNEQjVBNTVBMgorQTIwOTU3Q0M0NDBGREVDRjdEMzJDMjA4RTNGMjg0MEQzN0Q2NUU4MTdEMUY2NzdDODEyQ0QxNkI2NzkzM0NDNQorRjNEQTY3OURDN0IxNTBDRDE3QkY0MUY4OTY4N0VDNkI0RkIyMDFGRkI4QjgxOUM1Qjk5MEJEN0NFNjU1QTRGOAorREY3NzI5NTA4MkUzMDg3QUE4NkRBQzRDMTZCMTQ1RTg1RUQ4MUQ0NUE1MDRFMzkzODlERDFFRjYyRTdDNTQzMgorQjY2RDlCQTFGOEUyRkY3RDg1RjgzRERGNDNGRDlBQUU3RTYwQUZGMjE1QTIyRjc5QkYxMjhDQTUwMTlFRjdBRQorN0RBODUwMTc1NEMwRDFGREYwNUZEODdFMzJFNEZDM0YxQTRBNjgxQTdDQTA0MjM3QjA3MkJGNTlGQkJCNzVDOAorNjlGNjgzNzIxMEI1MjhCREQ4RjlFOTc4ODk0NjQ1ODM0NzE2MUY1NUQyNkI1MkFBRDQzMTYwNjYzMjg4NDgyOQorQjNCOUI2MDE5MUMxNUU4OUZBMUYyMEU5Q0YxMEExMTU4RUIxMzBFOTM3RTc5RUVBRjk0M0I3NDdBQTNBMzU1NAorMDFGM0M4RjJBNzE5NUMzMkE4NUJGODkyNzUzQzBBRjMzNkFCRkRCMDAxQzE3OEQwMDYzMTA4NEQzNTI1NzM1NQorNDQ0MTM4NDlBNUQ5NjNFREQ3NEY3QkZFOUE5RUFFOUI3QkRFMDdGM0NCQUE1Qjk5OThGNzkyQzZGNEJBMDA1NQorMzQwNkU0ODM5OTc0RUZGNzBDMzc3NEU2M0UzMTc2MzY1OTRDQ0E2QzE0QTM3NzJDRjhCNDAzMjI4MUI3NkY3NworMzNFMTAzNEUyN0JGNDc0RjA5NjhGMjk5QzE3REQyQzJCOEEwRUEzQUNENTIwMTU5OEI0MTUxOEIxNENCNzA5MgorRDc5RjA4QkU2ODcwREJGNjczRjYwRjgxNkM2OUY0NDBGMTEyMDM1QzZCRDIyMTI2Q0IwMTNBQTY3NDkyRDlGMgorMTI2OTcwQTdBOEEwRjA1OEJGNzU4OEFCNEQ4QkQxODBCOENGMDYzNjIzQUFGREQ3ODc5RTk4RUFCRTcwMTlGNworRkQwRjgwRDQwMDJDNzI1OEY1M0UzRUE5Qjg4ODdEOUQ1Nzk0QTdCMzQyMzIwMDE0M0ZDRjJEQjYyREZGQjBENAorQjU4QzJDOTFBMTEyOTI0QUY4MjA1NDFGN0M0RDg1ODU3OTI2MjQ1RTQ3RUU0RDFBMDhGOUNCRUZBNDQyQThCOQorNDYwMjhCNTZDMzk4NDA2QkZBQTMwQkQ2NzQyMUM5NkUwOTZFODcwNDE2QTZDMkI3RTBBMkY0QTYxMjk0Q0ZCMQorNTY4RUY1QzM2QzZGOTFFRUZFQ0Q2NzY3MTIxM0JCQzc4Nzg0NTVEQjk5NkVBNDE3Nzc5MEU1Q0U4NjBBNkExRgorMzhCODJGRTJCRkE4NjQzNkVENDZFNjBCREQ5MDBCNDY3NDM1OENCQUZGNjQzOTAxQUVBMDQzRjMzMDc5MEY5RAorRTUyNTdEOTVFQ0Q1ODgxNDVDQTlDRTc1MkVFQ0NCRkFFODc0QUVFRkZEOUVBMTJBMzM0RkI2M0Q2REM2QjBDRAorRTBCODZBNDg4OTczNkYyNEJCRUVGN0ZEMzgxQUU3QzRBMzMzN0JCMDhDNjUwQjJBOEI3Qzg5Q0YxM0Q5QjYyMAorQzUxNDkwNzUzMjVDRUJFRUYxNTJBNDQwOUY1M0EzQUEzRUM5QURCRkVGNkExNkM3Q0M0NjcxQ0RFQzUxMDA2RgorRTVDNTQzMTg5RUY1NTU3NzhEMzU4MUQ3MzU4ODAxNjI2MjdDRUQ0MkIxM0U0RjJGRUUzM0M0MTlBQTUxODg4NAorRTJERkI2RDZGMUM5NzU5QjI2MEU3MzQ2ODE0REMwQTdBMDAxRjMzQTYzNzJGOTQ1RDA2MDIyMkRBNUQ3QTU3QgorNDQwQ0YwQzIxNUYxMjVCOUQzMjdGQkYzNzQyQzdGNzRBODUwRkU2QkFFNzNDQTg5QjE3QTU5OENCQjczOEFDNAorNTY0QUM5NDI2OThBNDVBOUY4MTAwODE2NERENTZBNjQ5Nzc1MUM1NUYxQkYzRDFGOTA4NTFERDhFMkY4QzQzQgorNTQyRUVGNTdDQjU3N0ZDOTczM0MyNTRENDRFOUExQ0FBMzEwMjUwMzAzMUY2MzhFNjhBNTlCQUU2QUMxQzdCQworM0EzNEM3RDg0QUQ3NkQ1NUM3QjA5NkY2QUQ1OUU5NEJDQzE2NzRGQTA0Q0JDMEU1NDlDOTY4QTgxNDYzMkM0NgorQzYzMkMzOTNGQUU3NzZBMDI0QzMyNjJEQ0YwODM0N0M0RUQ0MEQyNTlFRDdCMERBNUU4OUI2ODhCM0YzNUUwMgorNjAxNUE5MzAzOTY0RUEyRDVGNEFBNjBFRDFBMzlCQUJDQkVBNzI1RTM1MDQ3NDFCNUUzNkQ5RTYzRTI0OEYwNQorQTkwOERDQTE4QUU1RDZBREVEODAyNkNEQzM1NkQ3MEVBRDlCQzc2OTBCNjMyNzUyMDc5QzBDNDUwOThERjVEQgorMEUzRDc3MUU2MUQyMUIyMEIwMzYwNTMwREUzQTMyMjc5RDE2RERCNkIxNkVBMTYzMTk3OUNFQzAwNjVFMUIyOAorM0M0RDU5RkVDRDIzNUI2MTY3MzcyMjlFRUY0RjM1ODE0QTUxRDY2RTIxMTlGNkVBQUMxMUJDOTBBMjZGQzNGMgorODA0MzU3MzMwRUYxNzYzQ0Q0QjQ1NkIxNzlEMTMzNTMzRENCMzdBQzcwMUNGN0U4RTBCQzA4OEExNTRGRjA5NgorQ0I2N0IzRkFGN0UyNTgwQkQ0QUE2MDBDRTg4NUY3QkJCMDIzMjcwOTNDMUZDNTk2QUI2MDk4MTE0MTAzMTc5MgorRUJGNzZENzA5QzU3M0Y3MjAyQkM4RjhDNUYxOTg3NjY3MTA2MkM3QTNGMTNGRUIzRTFCQzlCNEQyMEIwRDFBMgorRDFDQ0NEMEQ4QUFDNjQ5MEJCM0Q0MTJGM0REMDc0MEJGRUZFOEM5RUI4RDgzMDM5NTdENjg2ODhEQ0EzMzE2NgorNkNCMkUxRTE1Q0YzODA5NDkzM0ZGOTQ3RTM1N0Q5NzU5RjI0MDAwNkI2QjY0QThCOEJBNDZBNkU0M0Q0RDI2RQorN0E1NDUzMUUzQTNBOTAwRkM0Mjc4ODcwNDMzNjdBMTREODhENUQ4NUNDMDEwMTkzREFCMDdDMkQ0OTE0REQ4QgorOEJDOTRGMDY2QTg2ODAzMzc0NTNEQ0ZDMTkyMDc2Mjc1MTVDRDVCM0ZGRDJBNUM2RUIxMDlCNTAzQjM1M0NEOQorMDNCRTUxMTBEMzBDMjM1NkQ5Rjc1MUE0RDc3NzQyNUFCQkJFRTk5N0EwQzM3ODA5OTg5NDEwQjU5ODhBRTc2OAorOEYxRjZFNzY3MDlDMURBRjM2QzkxQ0I0NEQzREZDODEyRDI4OUQyRjQ3MERFRTM2NUQyRjNEM0E4Mzc1Q0Q3QgorMjhEREYzMUNFMDAwQjdGODg1REI3Mjg2RTA2OTc1RUExRUNGNzIwMDY3NjVFQUJBOUY3NUVFMzREMTM4RTk0MQorODBFQzM2M0ZERThCMTIyNjIxQTFDMTgxMjQyMDJGMjc0MzQ1QzJEMkRCMkU3MDc1NTQxODYwREQyNTMxQTY2RgorNzEzODZCMzM4N0MyNzg4RTVGMEJDOUNDNDcyQ0FGNkE4RjdCQkUwQTBCMDA0RDg1QTdBNUJGQTA2N0VCRTE2NworQzVCNjcyQTRERTBERjBBMzk0NjcwOTQ3NzRFNDcyODU0RTE5RUZCM0Q3NDNFQ0VCMzQyMTgwRTVBOTdBOTI1NAorNDRGQTY3N0Q0NDQwQ0RDODgxMDFBNDExM0NCQkU3OTMxNDMzRDdGQzg1QUMyRkI1OUFFRTMxNzVGMjJEOTI3MAorMTgxM0Q4MkUxNjA4NjI5QzVENjJFNTM0NEQ2NzJCODYwNEU3MjA2QUJGQzM5RjAwQTY2MTAwRTRENTYwRDdENworRUQ4RkNGMDM2OEU0OEYzRjg1NTFCOENGMUQ4MDExQzA3OUUyMEY5M0EzNzg0MEQ5Njk1ODNBMTJGNDYzMkU2MworODI3M0MzNTFDNDgwM0YwRTFFOTlBRUIzNkQ2OUU3REI3MDQzNjU3OTFGNDIwODEzOUZGRjQyQ0MwQzM1NTgxMgorOUFFRDEyRjYyRjZGNjEwODdENzU1MENERjk1QTVERUJEMjcxRjQxNUNCNzJBMTMwMTBBNzkyRjgxRDBBNzhEQgorRTdFMDMzMjVBNDgzMjg0ODExMkNGMEY0REU1MzlBMDZGQkREQjZDQTQ2Qjc4RTU5REFBODlEMDYxRjM5NDYzQworNDRCODBBOUI4MjgzQ0ZFQTlDMjU4RDJGMkNBREVCMzZCRDU4QzVEQTJFRTI2RDRFMDhGMzlDNDhFMDIwNEU2NAorNTM2RTgwNzhCQzczRDNFRjI2RDlEMjQ5RjIwNjI4Nzg0RTNDOENDNDBBNTRCMkMyNTU1NTQ3M0NGNzI3RDM4NworOUQzRjJENEJEMENEQjAyRjQxRjU5N0RDNTFCNzREMDc4MjcxRjcxODA2RTQ4RUJDREUzNTAwNDBGOEI3NjE3NAorM0Q0RTZDODIwMkFERDM0RTVCNzMxOTczM0VGMTlCRUJBNEJENTcwMTFBNjBDOTU0RkExQUNBM0IxNENEMjhGRQorN0JFOUI0MDYyMjc3RjY4MUVBM0YxMEFDOUY5ODM1QjVGQUNCRTdCOTE4RjJDOTMwNDlCM0YyM0NFOUQ5OUU1MQorQjEyOTUzNjNGMjQ2MTI4QzI5MjNGOEE3ODU5RkNDQkIyMTFCNzQyNkIzQjE5NjU4RkFEOTVFMzQ2N0I4OTE2NQorNjMwQTg1QkQxNTQyQjVBRUU3NkM3RDZFRjQ2RkNDMkM5MzM0MDdFRDFGRDg2NEM5MTE2RjJGMUYzQ0EzOUJDOAorMzJDMERCNjZBN0UzMUI5QzE3QkEzNEVBRjBDNjRGRTA0M0Q3RkM4QjUxMkM4QTc5QUEzMzc0QTc4REM2RDU1OAorNjAyQUM4MDNGQTI4MzMxMThGNUVGMzc4QTU0RjcwQTE0QjZEQ0M2NUNGQzA3NjA4NzBFODI5MTc2QkZDQzlENworRjlGNkIzMjE5QkY2ODM1QjQyRUZFOTMxNDFDNzJDRUJEMjMwNjU3QjFDREY0MUY3NERBQjE1MzY5NEZBMkZCQworMDM5RkU3MDFFRTExOTU0MEY2RTdDN0Y3QjVBMzAzQTZDRjQ4Njk2NDk1QjkwMkE4RUJBRURCMzc4QkYyOTFERQorMUQ5QkJFOEY5RjgyQzIwRUZBNThFQjk0OENGNUQ4RURFMEYxQzE4NDg0NTM0Q0NGNTFCQ0Y2NUNGQzgzM0MyNworMERBMjQ3MjNBREE2NDc2OUY3QTk3NTZCNTc0MDlCM0E4RDA0MTdDRjczNzlBRkM5MjRENjgzQjA1QkU5NjMxOQorNDU5NTIxNENDMTIwMzc0NEM4MjhGMzdCNEEwM0YwMzQ1QTNBMjhDODc3MzNEMUE4RDgwRjhFMDlDMkU0M0E3RQorQUVBMTc5NjIzQTI5QjREQzA3MEI3MDBEM0VBQzJCMDA1NTVEQzJFRDQ2QzgzNEQ4MDY5MEE2NEUxNEE4REVGOQorMTdGMDY5NDRBNDdCOEM4MDBGMjVDQkQzRkM0QUU3MDBDRkMzMDQ1OTc1NUQ1N0VEQkVCM0FCOTJBNjJGNTc0NAorQjVEMTlDMkI2RTVFQTc4MjQ0MDA4OEM2MDk5Nzk1OTVGMTMyOTlBRDIzN0EwMENGQ0Q4QjA1QTE1NjkzOTVFQworOEQxNTJBRDg0OEVBRDc3RUJFNEREOUY0M0U2QTYzMjAyOTk4MjM4NzJEMjA5NUI5MEQ2NUZDQzM2QzNBMjhDNgorODFDNTRGQTkxQkRDMTg1QTZBNERERjYzRjc2RDY4Qzc5MDUyRDRCNzNBNURCMThDNUQ4NjdFNjlBNDQ2RjRBRgorNzc2OEYyMjdCM0I4NUQzMzZFQTA2Qzc4NTM1RDQ0QUM4Qzg2MkJFMzhFMTM1NDc3RkYwRTEzREZBMThEOTU3QQorNUM1NzZBRTFEMzI5MEM2Qzc5QjdEOTVDMjAxRDFGREUyNTREOUVCMjQ5NEIzRUFDMTc1RUFBNDNBRkZGQTY4MgorMEMwQTBGQzI1RTM2MjUyNTE1NEQ5QTBFODY5RTI1OTFDODg1RTJGRjQ4MEFGODg1QjExNTk1NkE1MTk3REQ5QworRDIwNkVFMDBDNDc0MkQ0QUM3OEI4MEE2QjdCMzUwMzA1MDA5M0M3RTRFMDA2ODVDQkREMDQyRTlERjNBNDE2QgorMjUwNTg0RDg4NDlCN0RFMjZBMzc4QkREODE5OUJBOTEyOTVDNzA4MUY1NjNENjVEOEE3NjhBOTM2RjNGQzMxMAorQTk4OTE1ODI3Q0Q4RjQwQUEwREVFMzBBNjNCMkNCOUZBMUZEQjU4QjFDN0RBM0YwRjFBRkZBQTYyMjZBMTNBNAorNTZBMUZDQzQyNzg0NEEzQkExRUFDQ0ExOTY0RTkyOTNEM0VDMkFBQkQwNEU1OTYzRjVFM0IxMTQ0QjA3OTZDMQorQTEyRkIyOEZBNDJGNkQ2OEM0ODExNTgyQTc5QTM0MUY4NDM0M0RCRTE3QjYyOTlGNTM4Qzg5OTE5QzYxODI2MAorQ0YwRDYzMkFEMkYxNDIzNUJFRTU1NUJGNUY3MEJERjE2OEFGQjdERTI0MzM0MjRDNDEyNEI5RkMzMTRCNUYzNworODY3OTA3NzQ0MUMwRkM0RjhCMkQ4RTRGMTMyNDNBQTE5NTJFOEI1QTNBMDM1MzI4RUU3QzhDMDk4MDBCNTMxRQorMEY3MDAyNkM3RTY4MTg5RDdDOTRCRTBCREFBOTE3RUNDQTc5OUUxNDA1Q0Y2MThGQzZDQjI2MDUzREFDRjM2RAorREZDM0FDQThFQjZEMjBGMkJDNUU2NzlENjE1MDVEMjMwNDdBN0M5M0VEQjc5MDM0QzI4MjlFRDI2N0U4MkE4MgorNDlCRDg5NjcyRjMxMEE2OUI5NDlBQTM1RkQ4Q0JGM0NEQjM4N0M0ODY0NkY4MUY1MUI5MDlCM0I4NkE4Q0Y1MQorMUZBMTYzN0Y1NzQ3MjI1NzYxOThEOEFFQ0QyQ0Q5MTg1NDgxRkZFRkM3MjJEOTI5QjU3M0UxRkQ1NEI3QjhFOAorQ0JDODZGRjg5QzQ1NTQ4Q0IwNjAxNEU2OENERUNBQURCODM2OUIzOUEyQUNFRjc5RDk2NEZBRjREODIxRTRGNgorRUY2ODEwRDcyNzE4NzA4RTFFNjRDRTY5MzZFNThBNERDOTI4RDNFOUU0QUE1RkNGMDRCQjJFMjczNTNEQTNDOQorN0U4NEQ0M0U1OTMwN0UwNzgwMTM3MDAxNTUzNTZCNUYxMzRGMUQ1RkVCMjkwQzZFQkYyMUREQjdFNDZDQjU0QQorNUU2RDRGQjYyQzAwOTUwQjAyNzQxRDUzNDRFMEMyNjUyMTFCQjZGNkM1NUU4M0MyNzM0OEY4RDZEMjc2MURDMQorMjA5OEEwQjY4REJDMUM1Q0UxNjNBMjFFRDE4QkRGQzg0MTQ0RTM2NEZDRUFFNkE5MjQzNjA5REJEMUI0MzYzRQorODc3RjJFMjZBRjQyRjM0RTEzQjZDMkUxRTQ4NUM4QkI5QzdGMTM5MTEyMkE2ODJCOUU5RDVGMDA4NjhFQTBGMgorODA4MEQ3RUVBRjE0RTg5REZDQzI1OTQyRThCQjkxN0E1REVFMjI0NkRERTE4RjQ4NTY2N0IyNDMwMDU2QUY0MAorNTI0RTcwOERDREIxNERBNkVBMTI2OUFGNEJBMjI1QUI3QkQ0OUM4NkVFM0I5QUVCQTJDOEIxNTMwQThENzJGQgorN0ZGNzYwMjI1N0YxODVEQzE4RjhDNDE3NjVDRUE3QkQ5QzA1NEREMENBRTFDN0U3MjVEMkQ4RDlGMDE5NTUxNgorNTU1NTk2MDEwQzY5ODMzQTQ1NTA2OTg0NzQ1RTYzMjFGMkM3MjE4QzA3ODI4RjJENTJEOUE1NEQwNDJCMDY3MworOUVDNzczMTRCNDg3NzIyNUVFRjUyNzA1Njk4MjM5NUVCRUI3QkU4NkRCMDE2QUJGOTlDOTQxOTE0QkI4Rjg5RQorQkFCMEZCRDZEMzkwRDJBQUNCNzVFNEExQzBFODFCRjg5MTg1NzlFOTFCRENERjIxREFFQkE0QTNCN0YxQTE0NAorQzYwM0RCNkI0OThCNTYzOUJBODZGREI1M0UzODFEM0JENjJCRTVGQTExMjdEQUM2MTg1MkE5ODBEMjZBNjc5NAorRDE1MzREQUEzMjQwNzk4NTgxOTI5Q0VENjQ1QUMyRDVCMEI2NDg1MEIxQjRDQ0RFQjdGOEU1MTE2OTkwRDg2MgorNDMwQTRDNUEyODJBQTY4MkZBMDlFRTYxMkU2OTEyNDA1RUU5QjdBMUFEMkYzMjlBMDA2OENGRDg0RTMxMTRDMAorODk1REMyQTExMkY0ODJERTEyN0Y0ODI1RkQwQzBCMUEzOEE1NDg1OTY0MzFFMjMwOTlERDQ1NEE3QkQ5RUVFRgorMjREREYxRTI5OUEzQzBBRjg2OUFENzdEQjAzODJBMzJBRjU4NTQyOTAzRTlFNzczQ0I3QTI4NDdDMDU5ODg1NQorQzM3MkJDQjRCQUZCN0FFQzcyNzZBRUIxMDE2MDI0MTVENTBDMDIxQTMxNDRDQUM3OEVGMzM5Q0FDNDcxM0EzNAorMjBDNDM1MDYyQUE5QUQ5MDg4QjNGNzJDRjg4RDU0MUI4QTI5MTRBMjE0NEQ0RTNCQUFGOEZCQzI5RUQzMkM1MgorRUEwQTRCOENFOTQ5NjEwRkUzNUQ3OEQxQTExOTVENjRFRTAxQUY3NzQxOEM5RDQ5RkQ3RjNEQzJENkI2QUMwMworMDcxMkM1NEUyRUNERjY0MzE5MzQzQzVBNTQ0QUVBNTI2RUM2NkY5NTYxMTdGRjdDN0RCNEIxNzFGNkVDQ0E5RgorMDJEQzYwRUZFQTI3M0UzRUE4MTRCODEwQkI0NEJFMUEyQTlGQ0M2MTI2REQ5MzEyRjU1MDk1RDA5ODkxQUNFMAorNDI4MzlCNkU3NDNGNzI5QkZDRjA1NUVGRUY2QjQ5Mzk1QjM5QTlEOTM3QUQzREQ2RERDMTMzQUE4ODQyMUVDMQorMzgxMThENTMzOUVFMDkwMDgxNDlCRThEMkNCRDdENTIyNTk1RDUzRjBBN0ZDRkZCMDBENjFGRkExODVGNjUzRgorMDc2NUY5QzYxQzczMkUxQjZFQTVGRDA3MEREQzA0OEMxRjk4NjRBMzE4ODZDMEU2OEJBNjYxNkEzNEQzRkYyNworNDk5MjJCNzVGNzE5RUREM0EyQzA4M0M5NzNDNUE1NzU2MDE2MzkzQUZCNjhEMEU4NzU5NjI4MTcwQjA2NDFFNworN0I4NTFEQ0JBNjA5MERFQjIxRjZCODA1RUI2NjIzNEU2QkE1QTNEMUZFQ0UyNzIxNjQ4NzQ3NTY4RTAxRDAxRgorNjBGMDE0N0YyMEVFOUVGQUEzQTVDNkVGQThCNzIyMDM4MzY0NjdFRTE4MzgyRUREODcyM0FEQUM4NEM3QUI1RQorRUQ4Nzc0RTNBM0E5NENENUQ2ODA2QTkzQ0VGNDhDRjFCNTBFQzlCMzg3QjQwQzJBMjlGMDU0M0RDOUY3MDQyNQorMUMxODkxMzU2N0RENzJFNzgxMUI5MDdGRTBBQjkxNDlBRTM1NDBFRDJDNTFCNkVFQzYyQTA4QkI2NkIyOUM5MAorN0QwOTc5N0ZEM0VFNzNFOUU2MDQ3REI0QTAyQTcwQjk3NEYwQzFGNjVFOTRENjgxN0Y5OTYzQThFNjY5QjAzNgorMEVENzY1NUIxNURBNDREQzgwMkFGMEY2NjdFRUUyQzlBMEJDQkQzMzUzRjZCQjVEQkZCM0I2RUVERDcxMjI3NAorMkRGQ0U2QkQwMjUzQTlGNDJDQ0ExQTNERTdDNDlEMzlGMUZCMzEzRkJDODIzRDIxQ0MyQjU5OEJGNEQ1RkE0RQorOUJGQTFFNERFODBEMTIxODJDMzhGNDI0QzI3MUY4QkJDREY4MjI1M0U0NDhBNTk3MTlBMTNFODBFM0RGQjFEQworQjBBM0U0NTQwMDQzRkRFRDlFQzkzQTY2Mjg3MTQ5Qjc1MTg4MzA0NEY2NzM0OTJFNjI1RjRCMDlGNzkyMzZFOQorQ0Q2OUFCRTg4N0ZGRTEzRkMwNzZERTU3Qzg0MDIzQzc3NjczRDY5RTIwMTZBODM0M0RDQjJDNjBDRjQ1N0E4NQorMDg2QzhCNjYwMkY3RjE4ODVFMUMyMTg5MUJBOTA0NkUwMzk2NzA3QjdFNkMyOENENDM4M0FDRTkwRDE4OTA3NworMzEyQzEwRTNFNUU3MkJEMTk3MTE0ODQyOTU2NUQzRTg3RkE0Q0U1RDNBQ0FGNEY4RDk0MkNGN0Q2MjY1RTExRQorMEFFNDlBMkRDQzlBMjU1MzZGMjcyRUU5RTQ5Nzc5QjE1OEE0MjEyRjA2MDM5NUVCQjAxMUZGMDBBODYwNzBENgorNUIyNUI5QTcwMjhDMTJCNzQyM0Y1MEY3QzZCNDIzMTZEQTkwQTc2OUI5QUYwQTk1NEFCOTYyQ0Q4ODg5Q0MxMQorNDFDQTM5MTQyMzEzRjRCOTUzQjc5MjYxRDdGMEJGREFEOUYwN0MxN0U4QjgyQTVFMENFRTZDQkMzNTdENkUyOAorNkNERThDNjVFRjY2MkU5NUI5RTNCODZCOTdEQTdGQkZFQzQ5NzY2ODA4RkJCMEE4REM3OEI4MURDQjgzMzJEMAorRTQ3MzAzNzY3Q0MwMTIyRjRDN0ZCM0M4NzQ5QTk5NUU3MkFCMUQzMTU3MkQ0RDNGNjg4RjY4NUMzMjE3MTI5NQorQTcxQjM5OEI1MjRFNTBDNTlDNjRGM0U4QUM5RUUxNUQ3MTIyQTM2ODlEQ0QyOTNEN0JFN0U3RDQyRTUwODE1MAorMzFBMzU5NzkzRDcyRUMyN0VEM0YzNjdGOTc3NzU4N0NBQjNCRUZFMTREQzI4ODhFMUY0M0I4Mjg2MThEQkQwMgorODhCMTBDN0VCNzFEQTg4MThDRTU0MDcxMDFEMDBDNEU0NTdFNTNBMkZFQzk4NzA3RjQwN0VBNTE5QkYxRDQ1RAorOUM0MTg0OTM5RkRBMzY0NDVGQTIwNEQ1NzJGQTc5NUQ5RkY0RkI3Nzk3RDUwRkQ2NzkzMTAwN0E3M0ZBRTRDNworMjM0QTI4Q0FFN0VCRUExNEI1NDVFRjM1QzA4RkU5NEQ1RDc1NDYzQjhGQzAyRUNFRUVDQjlENjVCNDE4RjJCRQorQjdDNkFFNUMxMjk0MzI2NUVEMDI1OEY5QjA2RTcxMjBBNTk1NzVGMERGQ0FBMTY3QUMzOEEzMDZGN0M2Nzg3NQorNUE4QUM2M0UxMjVERDA3QkI0MzkwOUEzQzZEQjlEMjhEQjBCODlCMkM3NkEwMDc2NzBBMjI0MDNGRDhENDdCNQorQUY4RkZCRjMzMTM3NEY4MDNBMTY0QTBBNTJFRjVGNDM4MEYzMEJCNEQ4MUM4OTJDNDZBNUU3NUY2QjEwREM0NAorRkZEODI1QTU0NUM5NTdFQjM5RjQ2NjJBNUMzMTNEMkE0NjA5RTY4MEI0NkJFNEMxRjZFRTRDMERENDRDOURFNQorOUIwMzQzNjI5Nzc5NEE4MTQ3M0Q5QTVFNDY2NTQyMEM2QTM5MkU5OEU2MjI1ODE1NUY2M0Y1RjRDNDM2MzhFNQorNjBGRkEyMDgyOURGNjA1NkIxMEQ2NDdGMUVCMkNCOTU2QTMyMDhENkJGOTM5QTY0NjcwMDk1OEYyRTJERURFRQorREE1MjU5RDkwMzYwQkQ1ODZGQTczRjBEQzIzRERGNzY0MDU3OEJCQjRGOEVEMzdEMTlDNUFEMjgyREY0OTNFNworNUUxQ0VFN0YxNzIyMjFDQjU4OEVCM0VGQjRDMkYxRjY4ODlDNjVFQTQ3MjQyMjUwQjI4RTY3Qzg2RkQwNTRBQQorOTQ2MzM1MDQ2RDFENjg2ODQ5RkNDM0E2RTFFMzE0MkJBOTIwMzAzQjFCMDg4NDY0OENDQzAzQkE3QzI4OEYzRgorMDAwMzA0RjFCRDQ4NkREREExRDZCMDNFNkZDNUY4RDk4QTA3MDJFRDMxRTA0M0M0MENCNkY4RkFENzUxQ0E1OQorRUU0OUQzMkEyNkE3MEQ5NkFDMUQxOEYxRkY1N0YyMkYwREYxMUM3QTc1OTZBQzAxODE0QkU5Rjg1NjlCQkVDNAorODAwNzI2NjQ1NDhCQkI2NkVCMEFFQ0Q0NzE0MDgyODRFOThBMjk3RDE1NTA1RThBMDlBNEExODY4N0IwMjkyRQorNjgzMDk1RDU4NjgzMjlCNEQxQkM2RDQ0RDhFQ0NFM0UwQ0JFMUJFOEVFQjgwQkM4Q0M3MkRFNEI4QUUzRjRFOQorQzk0NkJENjQ1ODU3Q0ZBOTE4NTQ1MzA5MzE4QTkwNjREQkYzRTcwNjkwOUUxQkEzQjA1MDgyQ0E5QkU3MTE4NgorOTlGOUU1NzIzRkEzNDc4NzlBOERGMUI5MEFBODE5MjBGNDc4NENCMkI4MTJCMDY2NkM1MTQzRkEyNERCMzEyOAorQjZEQzNBQkE1ODI5NDFBRDJEMDg3MDYzRjQ3MEUxMjBEQTk0MTBGOEMyMTlDRjBGQ0U2MDk5NjE3NUY4NUZFMQorQjg5QkQxNzlGNThENzU0NDBENzM1NDQxMEIwM0JENTY2QUUyRTVFQzUyMEI5RTM0NTJBNkE3MUZBRkZBNUMyOAorOEFBRERCMDc3NTYxQ0E3NDI5QUVCMUY2ODY0QzA2RTU3MDc5NjJENEExOTkzRDQ0NUE1ODdGQzVCQzQ5NzczOQorMjM3NjM1QzMxM0I5QTY1RDFBNkI1M0IxMjk0MzlENDJDMzEzNzNBQUE4RjdENjg3QTRGOTg4RDdDODJENEM4MQorOTMyQTA5Qjc2QzI5QTI3NzE2QkNENDM4RDREMDhCQTJCNDY3RkUwRTJDM0I1MEU4MkRDMDRBNEIwRTM1MUIyNgorMkMzRDQyMUJBMkM3NDAzQTVENTg3QzYyREFBNjU4OTlEQ0RBOThCREYyQkUwNTU0QUVBNjE3Q0ZBQTEyOThCQworMTQyMENERTlFQTM4QzFFQTg3RENBMjVFMjVGNkJCMUU2Mjc5MjU4QTk2QkNGREVENkJCMkY5OEJFNDczNTRDQgorRkFBNTRCNjlFMkU3NEU4QjdEMDlGN0U0M0UzMTAxQ0M3MTMzQjUxMTU5Qjk3MUQ1NjZGRjI3QjZGNEVGREIzOAorODZDM0NBMUQ1RjJDRDAzRDBERDcwMjRGNkNFNEZBNUM4RjMyOThGNEMzRTU4RjA4NkREMkY3QjBEQTlDRTM0QworQjA0NzdGQzdBRDVDMUE0RUQ1Qjk0RUE2RTE0NUMwRkQxOTU3MzY1MjdDOUEyNzI3NjU1RTEzNENGNUVDMDhFNQorQzBBQ0M2QkJFMkQwOUZEOTVFRkMxMjNBNzdEMTQyODc2NUNDQjdGOEE4NTI5MjA1Q0M0RTFFRThBQjRCRjNCRAorNjY0NDhDQUYzNDExMEQ3QTg0RUFENTBCQzhENjBDQjNDMzdBODZEQzAwNDVGNUYzQjg3RjA4RUQyRDRBRTY1OQorOTRBNzVGQTdGMDIxOTk3QUQ2ODNGRkYyODRDREM4QTVEMkYwQUZFOTgyN0Y2RTI4QkUwMDhFQjFGNzczQjdDMAorQjE2MTk5Njc2MTE0MkEzNzY3MzY3NEYxQTZCMEFGMkM1QUU2Qjk4MUZGQTQ0N0YxQzQwMTZDRENGRUVFNTMzRgorQTk1Mjk2Q0I1QjZENTNGNzZGM0YzOUYwMUVENDU1MkZCOThCMjQxNzdFMzg1QjI2QjE4MEU2NTg2QTYzRTgxNQorRTQ1RTJGRDRDNDlFOUY4RTAyMzhDQTA3MDEwNzFDMkI2NTU4MEUwNDc3NjgzMjU3RjUxNjdGNUFBOTEwNTFENQorOTBENzBERDM3MjM5CiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCitjbGVhcnRvbWFyaworJSVFbmRGb250IAorJSVCZWdpbkZvbnQ6IENNU0wxMAorJSFQUy1BZG9iZUZvbnQtMS4xOiBDTVNMMTAgMS4wCislJUNyZWF0aW9uRGF0ZTogMTk5MSBBdWcgMjAgMTY6NDA6MjAKKyUgQ29weXJpZ2h0IChDKSAxOTk3IEFtZXJpY2FuIE1hdGhlbWF0aWNhbCBTb2NpZXR5LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorMTEgZGljdCBiZWdpbgorL0ZvbnRJbmZvIDcgZGljdCBkdXAgYmVnaW4KKy92ZXJzaW9uICgxLjApIHJlYWRvbmx5IGRlZgorL05vdGljZSAoQ29weXJpZ2h0IChDKSAxOTk3IEFtZXJpY2FuIE1hdGhlbWF0aWNhbCBTb2NpZXR5LiBBbGwgUmlnaHRzIFJlc2VydmVkKSByZWFkb25seSBkZWYKKy9GdWxsTmFtZSAoQ01TTDEwKSByZWFkb25seSBkZWYKKy9GYW1pbHlOYW1lIChDb21wdXRlciBNb2Rlcm4pIHJlYWRvbmx5IGRlZgorL1dlaWdodCAoTWVkaXVtKSByZWFkb25seSBkZWYKKy9JdGFsaWNBbmdsZSAtOS40NiBkZWYKKy9pc0ZpeGVkUGl0Y2ggZmFsc2UgZGVmCitlbmQgcmVhZG9ubHkgZGVmCisvRm9udE5hbWUgL0NNU0wxMCBkZWYKKy9QYWludFR5cGUgMCBkZWYKKy9Gb250VHlwZSAxIGRlZgorL0ZvbnRNYXRyaXggWzAuMDAxIDAgMCAwLjAwMSAwIDBdIHJlYWRvbmx5IGRlZgorL0VuY29kaW5nIDI1NiBhcnJheQorMCAxIDI1NSB7MSBpbmRleCBleGNoIC8ubm90ZGVmIHB1dH0gZm9yCitkdXAgMCAvLm5vdGRlZiBwdXQKK3JlYWRvbmx5IGRlZgorL0ZvbnRCQm94ey02MiAtMjUwIDExMjMgNzUwfXJlYWRvbmx5IGRlZgorL1VuaXF1ZUlEIDUwMDA3OTggZGVmCitjdXJyZW50ZGljdCBlbmQKK2N1cnJlbnRmaWxlIGVleGVjCitEOUQ2NkY2MzNCODQ2QTk3QjY4NkE5N0U0NUEzRDBBQTA1Mjk3MzFDOTlBNzg0Q0NCRTg1QjQ5OTNCMkVFQkRFCiszQjEyRDQ3MkI3Q0Y1NDY1MUVGMjExODUxMTZBNjlBQjEwOTZFRDRCQUQyRjY0NjYzNUUwMTlCNjQxN0NDNzdCCis1MzJGODVEODExQzcwRDE0MjlBMTlBNTMwN0VGNjNFQjVDNUUwMkM4OUZDNkMyMEY2RDlEODlFN0Q5MUZFNDcwCitCNzJCRUZEQTIzRjVERjc2QkUwNUFGNENFOTMxMzdBMjE5RUQ4QTA0QTlEN0Q2RkRGMzdFNkI3RkNERTBEOTBCCis5ODY0MjNFNTk2MEE1RDlGQkI0Qzk1NjU1NkU4REY5MENCRkFFQzQ3NkZBMzZGRDlBNUM4MTc1QzlBRjUxM0ZFCitEOTE5QzJEREQyNkJEQzBEOTkzOThCOUY0RDAzRDU5OTNERkMwOTMwMjk3ODY2RTFDRDBBMzE5QjZCMUZEOTU4Cis5NDI5QjlENDA5MjREQzA1OTMyNUQ5RDRDQzAzNDRGM0Y5OTdBOTlFNkNDMDY3NjczNUVCQ0Q2ODVBQUM5MTQyCiswOERBRkVDNzhCQjQxQUZDMkYxQzIxOTkxMEJERjQxRDYyNzkyODRFRjYwMEI2OTc3NkNBMTVCQzhBMzQzNDdDCiszMDc4M0M1MkFGQTYwRkJFM0UzNTNFMkFFMzU0Q0Y4N0I1NTg3NzZBMjJDNzc2QzdBMEI1QUI1Q0UxRjk0MUVGCitDMkQ5Q0FDMzcyOTRCRjQwN0E2NzFGMTBFNDc0M0JGODQyMTQzRjRGN0RGRUU2NDNCQTNCQkQ4QkI5RTNGMjRBCitCQ0NGN0YwQURGOEJBNTAwNjIwQzgxMDMzRUFFOEM0RUYyQzFERUYxM0FDNTc1RjFCM0JCQjY2RjA5M0QzQjc4Cis1NDEyQjgyQjY3RkZBMDg3QUY1NzE4MkIyMjMwRjlGMjEzNzE4MENBNThBN0Q5QjJDODIyRkYwNEJFNkNEMDFECis0M0IyQ0E3MDU4QzdCOTUzRjZEOUI1RDZFOTFFQ0JBQTVDREUxMTU5QjBFNTlDODNEQkFEOTZENkM4QzhCQUIxCiszNzRFRjY1MkQxMEMwRjNFRTcxMDQ0NzJDOThERDM1NzJBQUYyRDQ1QTcwQkY3MDYxNDQ3RTIxRUUzQzNCRjIzCitERjM5QzJEMUIzNUI0MkNENTI5N0JFQkU2QkM5NEY3QzlEQzZFNjFFQzY3RTRGNjc3MjU2RkVEOTA2NEJEM0U0CitCNTFBNzFCMUQyN0NBNEU1QUE5RTFEODA4MEU2REFCNTMxMDcxMUVFRjg3QzQwODU5RkE5MzVCMTk1MjRBRTgzCis2M0IxNjNGQTgzOTdCREZGNDQzMjI3RkVERjdEQjI3REMzNUQ4OUZCMUM1RTQzNURBMDYxOUE1Qzg4QUZDNzNCCis4OUEyREY1RTc2N0M1QjUzNkJDNzE2N0E4NDBBMEMzMkJENTdBMTRERTY5QTdEMEQ4MTlBQzM2RkYzMkY5MDhBCis1MDcwRjMyOTgzQkIwMDc0MzdFMzUwMDc5OURGNUUwQUQzNzEwQTRDMDAwMEYwMDk4RDVCRTk5RjJFQjlDMUMyCitDNDQ0RkQ5NTUyRDBEQ0EwOThBOTRCM0JGMTc2RjUxMUNFRTEzREI3RUZGQUVEN0M0N0I1QURDRjhENDcwMEY1Cis3QTVGRDFCNDk1NjA5NjlCRjVDNDRGMzc0OTM3MDY2M0EwNDc3NkY3NDlEREQ3QjUwNjc0RDkzMjU0NDI2QzRCCitFRkUyNjRCRUU3ODEwRUM5Mzc4NEI3QzAxQTdGMjlFRkQ5MjU0N0UxM0EyQzc4NTFBMkU3MDlGQkQ1Qjg3ODUwCis0QTQ0RjA4RjU2QTU0MkRCRTA3MkQyRkJDNThEOUU2NDY4RTFBQjg1OERDMzUyNDBFMzBEMzFDN0FDMTNENkM1Cis3RDJCQjYzNEJFRTk2RkEwRTEwRjg0MkIxMUE3ODlGNzJBMzMzREQ2RERDQjFCQzIzMjI3RUJDNDA2RTUwQjQwCiszMEFGMEM0OEU2MzU5QUIwQzQ2ODk4Q0RBRjExMThFNDZCRkY4QjAwRjU0RUFDQkMyQUMyNjJBQjg5OEM0MkI5CisyRTA4MEMxMERFOTIzQzE4QUY4NkQ3NUZDRkZBQUM2Mzc2OEQ0Rjk4NTE4NTcxMDg2NUZBMzIyNUVGNTMxMDY4Cis0ODdGQjMwNTMxQjFDMkE0QjRBQjgzRjhDMTQ5NEU2RDcyQjFGNkEwMTJFMTBBMkE0RUQ2NjU4RTVCMDgxRENBCisxQTNGQTY4MzkwM0Y0MzU0RTNGNjgwODIxMkE3QjI3NjVBRTFGN0JGQkE5MTJCMTUzQTBDNzA1MUE1MEJDMDgwCitDOURGQzg5MUE2MjNGMUY4RUM2MjIzQ0IzQjFGMkY3Q0EwQzBFMTkyMkEzQkQwMzE4MDFCMzFGOTcwNDkzRjNBCis5OTU0QzQ2N0EwNEQxRDgyNkM5QzE3MTU1RDZENDQxRjEyM0ZBMjMyQjA5MDhGMTVFRkQ5QkRCNEI4RDUzRTBECiswQUJEODlDNTYyMTNCQjM5Mzc1M0FBNjFFQTI2MjcyNTY2RDE2NEE4QkNDRDYzMzFBQTlGMjAzOTNGRUJGOTk4CitFOEVFM0E1NEZCNTIyQzVFRDk3MUE0NTQyODExNjY3OUI3NUU0MzhDRDUyMkNFMDJGMzcyMTQxQjQ1NjM5NEYxCitEM0Q5QjhCMjI2QUQ3OTExRDlCNzFGNDE5RTZCNEVBMjY4MEY0MUVGMzgzNTcxNTUyOEMyMzM4NjUyMjIyQ0Y1CiswN0VCMTgzMUMyNzI3MjU5MkUwRDdGRTE2Rjg3NzEwRjJDNTBBQjdDNEYxMDYyNkY3MjAzRDY4RkYyM0NDNEQ3CitCODFCMzkyMjkxNDk0MkFDNTIwQjMxODM2MDNFRjAxOThDMEExMDk1NzMwMkU5N0E5MDdGOENBN0Q0OTlCODVECisxRjg0OTU2NkRBMzREODY5MEFERTNBNERBRjdBOTdFMUJGMkMyQ0M3ODRGOTdGNDMxM0RENjlGOUYwNjI1NUU0CitCMTVFNUZGODZFNDhGQzQ2NDRBNTlCRDdEMzk2QjY0RUM1REI3OTZEOTA5QTc1NzExNzQyQzY3MDYyMjlERDI1CitENzc1QjIwOEIxNEQ3RTJDMTI5QUI5ODBDRjkzNTlBRTEwNTUwNEY3N0JGQjRBQ0UzNjQ5OTk1QzhDNTIzNEY5CiswRDMxMkFEMTk1NDU4RjlGNzUxQzYyOTAxQUI4MUVBREIxNzYyRDMxQzc2OUQ1NUU5RkNEQzY0QTdFRTNDNTlBCitBMTM0MDE4NTlGNUVGMzM2RURGNDM4RTg1QjhFN0UwRUU1MTI3QjU5QURFRDExRTQwNzU2NTdBNUU3MTExMDY3Cis1MDI0M0M5N0Y1N0JCOTNDRTk4OEM1NDdGNDM3MEJGQ0I4NTJENDU3MUEzRjI0RDBEREQzODdGOEMzNjZGMDMxCisxQzgxODhCNzUwMkJCRjBERTkyQzVFMUEyNDI1RUNGNzBFNEY4Q0ZGODBFNjA2ODA5MDM4NzFENTY1Q0I5QjczCisxMkFBRjIzN0VFQ0YzRjZBNERCMTlGQUU4ODREMDI0MzZCMkE0Q0ZBQTc1QjdDMDc4N0FDMkM0RkZFMkEwQ0VBCis1MjJFQTQ1NUJCMDQ4Q0FEOEM4OUE0MjM2MUM4MTQ3NUVFQjNDMkFEMUM0MTA0QzNDQUI5RTk0QzFDOTMyQTQwCis2QjZBNTgyRkI3Q0IwQzc3NzY2MzBEMzI2NjY2NUEyNzVBOUFBMjU5MzlCNkVDRDVFREIyOEEzMDFFQTVDNDc1CitDOUJGMUU2QTE4NDFEODg3MzU4MTY2QkQzNTNDNTA2QkMyNkQ4MTNEREY5MDI3MTY5OEU4NEJGRkQyRDcxRkU2CiszOUY2QkNERkQ5MEQ1MTI3RjM4NUJGRDlDMDU4OENCNjRBMkQ2RUMyMTNGQzQ2REQ0ODFCOTkwRjAyMkY0MkRCCis3Q0NCQTIyQzQ4NDg5RkFGMTJFODk1MjRFOTk5MEM1QkI3MUQ2QThEQkVDREI0NTNENEQ4NUQzQkQ3QkJGNzJGCiszM0Q0MEE0NTFERUQ2QUE4QUMxNEE2QUVBMkUwQzJCMzAwRjk2REY5RTk0RUQyQ0U4NjUyMjRDNUU4REZERTM4CitCQ0Y0MjYzMjNGMDBFNDdCNjI3MjYwMjFDRTc5OTEwODlCQTIzMjdDODM1NkMzMjI2N0VCQTUyQUQ1ODZDRjgyCitFOUE3QjQ2ODU3Q0NGNTZDQTQ2MUI5MDIxODMwMTJGREY2ODRDNjQ5RjY1NkNGQzIyODRCNUI3QzMxNUZBRUNDCitBQjRFOUY0M0VCQkI5NDVEQjZFMEVGRDdFRDUzNkQ2NzI4MzBGN0I1ODg1OTI1MDRCQTVEOUFDMURDRkFBM0U2Cis5NEREQjI4QzVCRERDRjNCODhDNkFGMzZEQTczMkMyRjgxMjhBQzZDNjM2M0QyQUMyRDYyOTEyRjU3MzZERjg1CisyMEYyRjQwM0Q3MTJCRDI1OTMyRUZERDExNThBRDM5MzY3NkY0MUNBMTdGNjI0NjE5RkM4RDQ1RjZBM0E3NzU0Cis1RUQxNTZBRDNCQjEzN0IwMzZFNUFCQzU2MzgyNjBFNkVFQTQ2MzcyNzcxQUZFMTIzRjMzMUI0QzlCMkNFREIyCitDM0YyMTk2MjQ1RUEyQzVDQzc2ODAwRjMzNjI1OUZDOEJFRjY4NkFFQjRGM0IxRUM0OEJEMkJGOTAzOTg1OTg4Cis1NTU0QUUzRDdEODEwRTJDMTJBNjY2N0JCQjkzRjVDRkRCMjIzRDE1OTRFMzdENjgwQ0YwRUM2QTQ5RjJGMTNCCis1OTBCOTM3NkEwNTk3RUFFMDg0RUMwNzQyQjE3QzUyRDAyMTRFNjM0NzY0Q0JDMjI4OUIwNzJBN0Q3QkY3RTQyCitFMjFGM0YzM0RCQjlCM0YwREJFRTFEOUI0ODMwRjM4OTNBODBBNjM3NEVDRDRBMjY1RDEzQzI5NTBCRkQ3M0Y5CitFRDM4NjdGRDM1QTUxNTZEQTI4NEJERDZEMDU0MEZFMjQyRTcyRUI3MDg0ODAyNDBGODc2QzY2NzM5RUI4NTAwCisxMjg1QUM0Q0NCMjE0ODUwQjQ1RkJFNjE2MTYwRUY1NjhGM0Y3RTJBOTA1RDNEN0I5N0IwNDQyOURDNEU2RTNBCiswQ0RCMDNBMDIzOERBNTI3RjBFNTNGNzJBQ0ExNTE0OUFBNEJDNDI0NUIxM0JEMjQ1OEI0NkMyODZDOEZCMUFGCitGMkI4NTM2QjkwQTYwOEU4NTdCNTIyMjMwRDMyQ0ZCRDA2Nzc2NTBERjFGNDhFNDE5NjM0QTI4OEQ1MTIwRDg3CitBRjg2NDg1OTM5NzNBNDYwREYyMkI5REFCMjA5NjY3NTRFQkE5N0E4QUNBOThDMUY5NUM2QzJCNzRFMzkwNTM2CiszRkQyMEIwQUFERTk4MzA2ODg4RjE3QjQxODIyQjVGQjZDN0MwQTlFNkQ3QjJGNkI0QUM0Mzg3QTY0NUY2NjIwCiswQTI0MTQ0MjkyQ0Y2REMyMkM4MENDN0NCNjUzRDgwNEEzMzAyNURDRDk4RDI4NTZBQ0ZCRjZCNTAwNDIwNUQ2CisxQUIwQUE0QzNBQTE3MDE4OTc1MDFDNTMyOTE3ODdERjc3NzAwRjE1M0UzRjNGRTlBRjhDRjdDMjdEMzcxQjc0CitEQ0U3Nzk3NEQyNjZDRDgxQ0NBRUZGNTczMDgzQkNEN0ZCRENGOTAzMEQwOEQ5QTkwM0Q0RjMwMjQ3MUQwOEVCCis3QTRDOUEzNTY4MjFENDM2RjlENjEyRkQ1NzRFQ0Q2RkU1Q0FCNzBBMUU3MzI1MzhCRTc5RjUzQUE3RkJENTY4CitGNkNDODkxNDlEQjhCQjlCNzQyN0U4ODk0REEyNzI1MTMyNTEzMzZENzREN0ZDQjVEOEI3Rjg5NTY2N0RFNjI4Cis3ODg4RTVFMUVFNDUwMTlCODY5NjY5MTNDNUM4MUVENjUzMTY0OUU0QUMzMjc3QUY4NzMyRDUxQjFBMEYyNkQzCiszMERFOEU4Rjg1NzVGMUQxMzM0OEYwOEQ3NkVCNjEyNzVDNUJDNjM2QTgxQTQ2MkE2NUUyM0Q1NkM1NDg3MTU3Cis2ODY5MzU4N0IzNTA1RjRGQ0UyQUZFREEyRTEwQkQ3NDYxQzI3NkJCQTQzREVDOTI3MUFCNEY4MTQ5MTU0MTRGCitGNzUzN0UzMkE1QTUzQjYzNjc1NEYxREEzRjNFMTRERTVEMThEN0Q1NzMzMkMyRjgzRTcwRDlEMzk0NTBGQURGCitBNkQ3MDVDNEEzOTRFMERGMzFCRDI2QzExMzA3MDA1NzlCNjFFMkZDMzBBMTBBQkIxMTA5OEVFNzA1MDZDNjhBCisxQTFCMDNBRUU2MUM4NDEwNjNBOUFDRjRBNjRCNDRCMTE2ODUyN0I3REExMkEwMERFQ0MyNkU5MTIyMzg0NzgyCis2QThEMzQwMDJBMjQ0RjVCRkU5RDI2QTlFQ0VDRkRCNDc1RkZGNTM3MzUxQkIwQ0Y1NDAwODE0QjNCMDA4M0U0Cis2QzgzQjYwRUJFMEMxMDYxMjVBNUQ5NUNBNTI4NTc4NDdFN0UzRUJGOTgzRkMwMEYyMDI2RTUxQkREODFEMDE1CiswOURGNzhDNjlEMkQ4NDIwMDlFMDVDQkQ0Q0JDNDBFMUI1MjkyOUU3M0YwMTkyMkU4NDE2QzNBOERDRTY1NjczCiswNkQ4QkM4QTZGMDhDNEFGNzkxRDAxNTQ2NjZENzk0NUNDMDkwNDI0NzM5OUMyMTY3NTJFRjU3MTEzREE2QUZCCis4NjQ2M0QzRTU4MjBFRjdGNzNCNjQ1OUUxNjBCRDc5QjUwOUJDRkQwMkU2MzQ2RjQyQTY5QjQzQUNDRjU2MzM0Cis3MUIwNTMxNDA1MzlGREM0RjFEQTE5Q0FGMDY5MUQ2RjgxQzIxQkFGQzBCMTczRkUxODVGQTM1MkU3REI5MDA4CitBQUI1RjBFMDBCRjZEQjY5Q0ZBRjU0OEY1MURDRUQyQjczNzk0OUMyMENFRENCNUEyREVCNzJBOUJDRTk4QjI0CiszNjEwRDFDQjQzQTEzNjgwNDRGN0RCMjEyMTVCQjg5OUFCM0JEMTM4RDBERUEyNzhGMjdGRjgwOEYzN0NFMTVCCitFMzk3NkM1QTU0QzY5RDU0RUE3RDVCQjVFOTc4NUQ4MDY0QzQ0REM0QkREQTRGNEI4QjFBQjQ0NTBDNjQ2OEIxCitCMkJFRjgwQkUzMzI5QkRDMEFEN0QxMkY1M0M0QUYxMkUyNDhDQUQzN0M3MDk5ODJERDFDMjU2QUM4QjU0OEVGCis5QjJDRUNBMzUwODkzNzZFOTI3MzE0NThDNUJDMERFMDk5RjE3OTUwRDZGMDQ1MjIwOTNEMkI3QkI1QUNGQkQzCis5OTNBMEQ0MjU0QTlDNzA4MjBBNUQ4OTQwMzVBODg1MEU0NDlERTdFRDc5MTIyNzNGMTlCQUU2MjQ0RUMxRUY0CitBQzY2QkFGMjk1MEFDRDY3MTQyNTJEQjFBMERCQjY0RkVCMEU2NUYzMkRDNTJGNTQxMjE5RDczRUJCM0I2NkI4CitBMkNGQ0MxMjRCNDcxMENBOUYwRDczNDA1N0U2NTgwNDBBNDJEMTcyNEU1RjZFM0RGQ0Q4M0RFN0JBRDUxRkNDCitCNzBEODAyNUMzNDMyNDJENzE3NkY1RDczM0RGNkQ0MzlBMzNEQTM4MzRDQUQ5NURDN0M5OTJGQTY3OTdGNTcyCitGRUUxREE4MUE5REIxOEY0N0M3ODBGMDZBRDZDRUM3MzYzMDVBQTQxRjhCQTQxQTBGMTE1M0U4MjgzQkQxRTE3CitGQ0Q5QzJBQTIwM0YzODM1QzkzMjhGRUYyMDQ1OUU1OEM1OTU3NDVGODcyREU3ODRFODU0N0FDNDg1NTMxRDgxCitFQjI2MzZEN0Q2MzBGMjhEODNCOUYwQTc3Q0M5Q0E1REQyRkZEQUNBNEIxNzhEOTYxRDA4RDJBMThGRjA1RDBDCiswRjdDRUFFMkNBNkRCNkUxMUQwQ0Q5NjZFNDk2QjJEMjM0RjI1M0FFOTdEQUJEOUY1NTIyMEVCRjg4NkI2REEwCitENjAxMDhCQ0MyQUZFMDY2QkNCRjUxRTY5NTE0RURGNTUyOEFERjg2Q0M5NTM0QTZCREUyOTFENkJFRkEyMEE3CitGMjkzRkJGRkExQzBGNEEzN0Y5MkMwNjRENUYzQjA2MjM1NzVEMTAwMkM2RjcwQ0FEMDYwOEE2N0UyODQwODI3Cis0RTlFNDVBRTU0NEVDRDk5QjlEQzkwOUJFQzNBNDVDODI3OUEzQTk3MUJCMTc4NzBGRjkzQkQzQzFFRDM1RDNECitFMTFGOTlEQ0VEQjZGRkY3N0ZFQzZERTM3MzRCMzYwN0Q0RDQ5REI3REJGRUE3RTNCRDRFOTkwNkI3Rjk5RkJDCis1NTMwOUIzOTQwNDZBRDYzRjJFNTlENTY4MTEzQzEwOUQ5Q0YwNERDRDJCMUIwQzE1RjcxNzYzRjZDNTMxQjJDCis4M0I3RTk2RTBEQjA0OTUyQTkyNDFFNzFCNzVEQkE4OEMxOTEwOUM0QUJENjBGRjdERTlCMjNFOTkxRjE0QTYzCis4ODI3NTkzREJCN0UyNDg5OTJFMzAyRDZDNEFCNTFCNjY1RkE3RjY2NTIwRDY3RjE1RTlBMjIxMzI0QUY4OUFFCis4QzY3QjQxOEQwNkE2QjRCNjEyOEIxNDlGODA2OURGN0NCRTNEQTk2M0IxMTA0NDI3MjRBOUUxNkJBNjkxRDcyCitGMzYxMzg2NUNCNTY2RDdCM0IyMkYxOTI5MkM3RjM5RjcwQkEyOUQ5RUJBMTQ3QjBBNzJENEY3RkI2RDA3OTQ0CiszMzcyMUY5NEIwNEZGOTUwN0U4MkRCN0MyRTU2ODJBMjQ0MTYxMEM3MEQ5RDg2NzJGM0YzMUFDRDlCQjU4M0E5CitEMTU4NUI1RDJENTIyOUExQzk5RjhDQ0QxNkI2Q0E2QzFBRDVGQ0IwMjU0RDY0RUJDQzcyODY3Q0U2QzlFRURGCitCREM1NTM4QUIzRTAyQzgzNUMyQTEzNUQ4NzEyMzA3QTMzODg4MEVBMjcwNjYxQ0ZCOEUwM0VDMzk0NEQ4MjQ3CisyQ0Y5Q0Q5NjFDM0MwQjZDRjhGREQ4QzNBQURGNzY5RkQxOUUzNTcxNDJDNzkzRDBGQkM2RDVDQkQ2OUQ5RUNBCitBRThBM0YyNjY5MzI0NjZFRUUwREQzRDMyRTk5MTNCRjg2OTlGMjAxNEQxNDQyREM1QkY2MUEzNDQ5QTZEMzY2CisxQjdGNEFGMDhCNURGNzA3MjA0OEM0QTJEQjdFNTI3MjU5QUQwNDZDMkFDMDhBMjAyRDM3NDE4MDFDNjc2OEU5CiszNDY1Q0FGN0NGRDczQzUwQzAxOUM3RTYwQzE0NTEwRkRDNTE4MzJEREE2RkZFMzg1QTU5NkY2OUNDRDE1M0Q1CiszQUIwOEQwOUJENUMzQUI2QkI1OTA4RTQ2MDkyMTkyMTI4MUY4Q0Y2NzAwRTY2QkZBRTQ1RjU0N0RBN0UxMDlBCisyNTI2MTY0QUQzNjZDQ0U3OTZBMThFNzNEREMwOUYwRTBFM0I0ODBEMjdFMjA0OTY2MUU0MzU1NjQwMjA5MzVDCitFQkRGMjA3OTg4NkZFRUE4Qjg0MjI2OTM2QTU5RjQ0MTlGNEQxMDA0NTUwOUMxN0E4NjAyQUZENTg4MDgwNTg2CitBRERDQzBCNDAxRDE2MDAyNDdDQzJDOUE0ODI0ODI4ODMxOTJBNEVBQ0Q4OUQzRTM3RDQ3NUI3MDY3Mjc1MTc1CiszOTlDQjMzMERBMUIxNDg2ODZDQkY1N0Q4QThFQjEwQUU3REVCQkY0MzdFREYyNEUyRUQxOTY4RjBDMDNCOTFFCis0NUVBODk3QUNEODI1NTBDMjMxNkQ0OTAxNzY1NTA2MUQwRDkyQTIxRkU4QjIzQjIzQTg5NUNFMTZEQzk1MjhDCis3NjI0RjNEMzQ5OTgyQ0NFMjBFRDhERjY2NDQ2NzQyQjFEQTA5NDVEODdCREU5OTA1ODY1QkUzQ0U4QTdCNDFGCiswMzA2NkNGRTlGRTEwQzJBODQ3NTFDQkFEQkVEMkJEMDc0NDUwRTEzMDU0OEQ1OEEwN0ZENDExOTE2MEEwODFFCis5ODdGNENGNzFCNjhERkUzOUE2REI1NTYyRTYzNjhFRDdEMkE2NzE2NUVCNjA1RTRGN0I1MDA3M0I4MjJDN0JCCis1NTY4Rjg0MzQ4ODBEMTgzNTA5MEQwRjA3MzdCMDcyNkU2NjE2MjNBMjk3MUY2QUZCMkJBODZDODIwNTFGNzk0CisxMDM1RDM1RDM0RkUwMDcxQUEyQkZDMTNBREVGOTgxQjYzQkY2RjY0NzQyMkEyRERERkVCOTkwMEZGQThEQjkxCiswNkEwODAxMEE5NDI4RDFDNTJDQjI2MzZCRUYwMzYwNUJBM0YxNDg4NTFDQTYyNjJCNDk2M0JBQkJEMDE1RkVFCisyQTZGODg4QkM5RDE5OTE3QzVERTVGNzMwNzI1RDAzRTk1Qjk1MUIyREIyNDBBNzQ4ODMxMjNENDBDRDI3ODhFCiszRjIyRDlGNTE3NjY0RDRFMjBBRUNBMDNBRDA1RjY0ODExNzZFMzdCNUU2ODM4M0QwNzBBOUVFNUNENTU3OEY2Cis3MTNGNTcyMEVFMUJEQkMyMDI0MkJBRTA5N0M1NTYwNUE5QkUzMzNGQzJBNjdERUYwOTZBNkVGMDM3MjNENzAyCis1NjJBODAzMTgyOEI0QTIyQjA2QzRCMzE2MjZCQUEyRTkwREI1MDlFMUZFQkQ1MjJGMkYyODhGQTQwNzU4NzNFCisyQzI3NjlERjQ5NDJERjE1MDAzMjAxMDc2N0RBMDk4NEEyRUExMEZGQzA1RDVBRkZDNjU0QzE2QjRFREM4MTJECitFQjhEQTk3QjU5QjI4NTgzRDdDN0M1OTgxQTcwNEIyNTg4NkVBMzJEMjA5NDAwNkFENTJDRTM3MkQyMTFBNTFECitEMzRFODZDMEFDQ0I1Mzk2NkIzRTRCQTk3OTNEQUJGNkUwQUVGMDY3NTdCQjMwQzE0MTk4MkU1NTAxN0RCMUYyCitBOUEwQkYyNzUxQjFDMDNFMjc2NjkwMTQ2QjVBNkQ1QTY2NEQ3NEQ1OTdFRTg4NTQ1REM1MTMyQzYxRUQ0RURCCis1MUI0NzQzQzZDOTc3N0NCRjQyOEM0RkVFQkRBOEQ4NjBEMzMxMjFERUNBMjU3OTJCQTAzMTI1QjNBOEJDQjgyCis4RDMzRDg3QjVGMEFGMEREQjk3OUE3OTI0MEJFOEI5OTI4NUU4Q0EwMEQ4MDU3MDQ1N0JBNjE1NEI3MTFENUY0Cis2MTNGMEY0OEM2Nzc4MjY0QzkzOEIwOEJEQzA0MTY1MTBEMEExNzY4NDU5Mzk5NjY5MEI4NkE0RjVGRjI0MzhBCisxMzc3MjMxRkYzQjFFMjdFMjc5QkY3Q0VFMTJEQTgyQjZFN0M0NUI4NkNDNUVCMzExMjExQkY3QUU2QjUxQTUxCitGODRFOTkwQjI0MDVDOUVFOEY5RjM0OTAwMDhCOUU2OTc3QjE4MjBBMTNGQTgyOTUwN0Q5QzZCOUIxQ0I1RUY3CitCREMxODFGREVFN0MxQThFNDhCNDhCRTk4NUEwMzZCMTUzQTZBNDg2MDg0QjgyQUQzRTcyRjkxOUJCQzE0OUFCCitGRDQzNDZEREU5QzU3NzMxNUE3QThDNDk4QkVBM0M1QzQ3NDRCOUUzNUJDQzc0NDlGOTg1Njg3OTREOUU0RjhDCitGMUE2RkM5NjdGNkVGREJERTJEM0JBMDEyRjEyNzcxODQzNjM3REJDMzZDRDk2RENGRDIxMUE3MDJFMzE2MTUyCitFOUI3QTc5MkY5NEM1MERCMkNFRjY1MDU4OENGMUJEM0E2MTIyMjdCMDlCRTFGQ0M5OUVFQTREQjkyNjYwMDFECitERTgwMEMzREZDRjkyRjFCQzJDRUNBRkVCRDZFMEZGRjhDRkI3MUQ2NDRDQkQ3NUVERTI0NzBCMjVEQkY0MzgyCisxODNERkNGOUFFMkI2RTlERTA0OUUxN0ZEN0NCNUQ1RTc1RjY5RDJBNUUxQjQ1NkFFRDg2M0Y4NjJBRUZBQ0YwCitCOUExOEJBMjUxMjU5MzREOTlFMUQ2ODgzMjM3NjY0MDI3MUQ5QkYzQkRFNzgxOTFDMjg2QTFFQTVFQjUyNjg0CiszRUI2RUMzRDFEQ0YwMzE1ODQxMTNCMEVDOEJGRDc3QTg1OTY5QzExMDMyNzQ1QTgxMzhGMEMwRTQ2RUNFMUI4CitBMTREOEZBQUE5MTk5NTVBN0Q0NzZFOTU2REQxMTU1NkVCQkYwQTA5M0I1NDkzRTYzMUJGQjM4REFDMjExNjE1CitFREU1NkFERUJEM0VERjc1QkQxQkQ4N0E5MEYyNzNENEQwRTIyMUExNDU4NTUyQTA0MTRBODJGQTUzMjM5Nzk4Cis4NUJBRTkzQTczREZBMEM3OEIxMEY3MjZFM0Q4REY5NEJCRkEzRkJDOTg4MTc4NTFERDcwMUM3NzhFRUUxNTU3CisyNjQ5OUEzMEM4NDJCQzFBMTk0QTc2NEY5OTVBQTcwNDNGN0Y5MTA2NUEyMzgwQzg0NjM5M0M3Q0E2QjkyNzRCCitCMTVDNDVGN0ZDNzRENDQ5NzY5RjIwQTdDNTcwNDlBQTQ5MjUxNThERkRCOTE2ODcyMTIwMzMzQzk5OEM0OTZGCis3MzczMUI3QjA1NUY2NDJFRkUyN0RBQkU0QzNBOTQxMTkyOUY3OEM0QUQ4NjlGQTAwRTZDQjY0OUFEOTE1MjA2CisxMzhDNkVERDkyRjExNkUzNEVFQzU1MUU3RUQxMjc5QzQ1NEY0MUU4MTU0ODRBRUE0NEU1Q0NFMDE3MjY5QUIyCis2NDMwQzZDM0VCMDU4OUEyNDdDMTYzMzE1REVFM0JEMTE1MjVGQkU3RjE3NDkwMzA2Q0QxRDlFNjhGNTc0QUE2CiszN0ExNDU5RTRDNDRGMUI3OTYzQTc3MjYzNTdGNDJDQkIzMEU1QzJDNDU1OEVEQjlBNUJDMDY2Q0VFMjZGMThDCis2M0MwQjM3MTEzQTQ0ODFFRjM0NkM0NkVCNTE2MENERkE2RjhDQUJBMTQ0MjJGREJBRDJDMjFFOTFGNjk3Q0JECitBMkUzOENDOEU0QjY0QTAwRTRBNEEwNDZFQjFDMTAzMTBFRkM5MjQ5REI4MzAzRkY1OTlDQkE5MTBERTAwMEM3Cis1QkY3MjI5Q0Y0RjQ3NTE5ODk3MTQyMURGNEM3RDBCRjU2NTUzNzQ5N0UzRTcwMUU3REFGQjc2NkU3MjJGRURFCiszRUZCQ0ExRDI0Nzc2RjE0RTk4OENGNDk0Q0JGOTlCNThDQUUwN0JFMzZENjc4MzA1QUE3NDJBNDYyMkVGMjY4Cis1RjQ0MzQ3RjczMTI3MzBGRkUyMTk5M0MxNUUxNTE4OERCQTNCMTM3Qjk5N0I3RjBEQkIzMjNDRTlCMjQ0RUQ1CiszNDA5QzUwREUzRjc5OEFFNjRCNzAzQzgxNjBCQjAwOUI0MEEwNUE2MTczMjQwRkRFNkM5QjAxNDc2RDIwRTgzCiszRjkxMDhEQUExQUIzQkFDMEVBRTA0NTQ5REIyRjhBN0FDN0ZBNzhGQTgxQTQ0OEY2NTQ5NTk2QkY2NjY3OTQ3Cis0ODMyNkEwNzI4MUQyRUU0MEJBQTEyNTJDNzlGRUFCRDUxMEQ3MkQ1M0Y0NUNGMjVCRjdCRTU4NTg5MjZBNDY1CitDNzFDQ0E2OTI3RUZCNDIyQjhDMjNDMEJENkZFRkVCNjZGQTEzNzVCMEI4Qzc3MkNFRTFDN0M3MkQ2RERENUY1Cis3NzAyRTg4RUQ4QkEzNTRBODg5QTE3MUMxMzA0MTA2QkIwODAxMjQyOEI1QTc5MkY5Qzk0QjhDNDNCNkYyMDkwCiszN0NEQjg3OTNDOTVGMjMxMDIyMkJGQ0M3RTFBNjZBRjE2NEQ1MjRGNDlENTRBMjA2QTJFMzFBRkQ0ODFGNzUxCitDQjQ5ODFCNjkxNkQwQzYyNDY1NzkwOTc2MTM0OEZBNDlERkVDQjNFNDBDMjJCMzc2OEQxOTQ5MTI2RUVENjFGCis2MzM2ODAzQ0U4MzI5ODYxMjAyRTJFNDRCREEyMDAwMjg2QzJCRDhFOTE1Q0YxNTVFMjdEMjJDNTM0NTNGRkY4Cis0NkIxNUUxQTZGQjBCMzYwQkYzQ0VGMzIwMjkzQTBDQUUxRjM3QTlDMTEyM0VDNzhCOTQ5OTlEOERBRjBDQzRDCitBNjlGMTI5QjEyMDZBMENENUNFNUM0QzNGNzAxQjMzNUMyQ0U2MzcyQThBMkU2RTA3QTVEOTVDMTBFOEQxRTFBCitGRkM4NUFCOUQ0RDNFNUE5NTZFODExNkQzNzMyMDAxRjQ0NEJCRjI5QzU5QUQ0QkFDQTgyRDBCRjZDMTQzRkNCCitFOTg5OEE2NTk2RkI3MTc0NzcyM0RBNUUxRjNCREQwNDEyMzhGQkY5MUREQUJDODFDQTRGQzlDQkZGNURFNUY0CiswNTg3MTBFNTI0NkI4NDY5RUMxQjk3OTY1RDJFODA5REFBRUVFQTlEQTJEQUZDODM2NzI5ODlFMkE3OThGREMzCitBNzMxREMyNUQzM0JBNjM4QzkwQ0ZDMzYyNTBBQjg1NUUyNUY4NzM5ODFDMUMxMzRERTlFNDBGNDVDRkJFMEFFCisxNjU2NjM4RDQ1NTM3RDk0QUJBNjVBOTlBNjZBRUNFQzc4NTQ1MTREQjdEMkVGNzUyQjAyNjVBMEVBMUU1MDNGCisxMjVCMThCRTBFMUYyNTM3RjRCOThEQ0JBQTE5RjgyMDA4OEFBMTg3NTJDODA2Qjc0RkY5RTY1RTNGMkY2NkM2CitBQkE3QjQ0RUM3NzI5MDAwQTk1MUM1RDQ3MEIwRkRERTJENzc0RjgyRDM0RTc2NjA2OUMzRDI0MkFBRkNFNkVECisxRTY4RDk1RkEzRTE4NzcwQTk5MDQwMjg5REY3NUY0NjA0Q0IwMzZBNjdBRTdEMTU4RDBBMDdGQkJBN0I2NEY2Cis2QjFGNzUwMTkxQUM5RjIyOTFBMjQzOUREMzk4NDM0RDg0RjkxQzREMEVEM0I0NTdFNTNDN0I1RDhFNzMwNzE2Cis2REI1MDczNjdGQzk0N0M3REZGNzAwNTA0RTdCNTAwMUZCNjgzRUQ4NkI3NUQ3MzI2RTE2RjQwRUNGOEVEN0UwCis3NkVENDQzQkVDNTMzN0RDMkE3NzY3NzZBMEMyNjY2NzAzNzhFOTEzNEVCNTk1QUU0NDlEMEQ0OEY5QkNBRDgxCis3MTQ3RjZCMzIwM0RGRDBBMzgyMjczNzZGMDY5NkQwQURFQzlCQzdGMDZCNjZERkQ4MTE2RkQ1MTk4MjAxOUJCCitGNDYzRjZCRTY1NjNEMTczMDg1QTFDMkE3Nzc2MjE4MDFGRkMzMjIwRjQ1OUM3N0JEMTMwMkMxRjZCRDgzNEIzCis3NDJGREI5QkNGQjEzNDI5MzFEREU0Q0Y5NENEMkU5RjdBNDQzQTY3MjY4MjMyODUzODAzQkY2MjkxM0I1QkQwCiswQUQ3RjRBRUYxQkJCRjg5OTYxQkE0MjgyRDIyN0IxOTY5MDUwODAyREJDOUE3ODhDMDBFMTU4MEM0RkE5QTcxCitBQ0VBMjcwMEU1QTcxRDMyNzM0NUZENjVGMzI5MTc3QkYyQkMxQ0I3MTExQzZCNDZBQ0M0RjU3OTVCMEM5QUExCiszNEIzOTkxNUZCMTZFRjQ5QkNDMEYzRDJEQTREMzNGN0VERDFFNTcwN0IwRkY1REFBQzY3N0QyREUyNzlBN0JGCitEMDM0RUY3OEQxNDY3ODlBMkQ0QkQ5MjlGNTlDRDlGMjA4MjM2RDZGRDQ4OTVCQ0VCOTIwQTIzMTZCNTIwQjI4Cis4N0VBQzJGNjg4OUY5QjUzMTAzQkM1Qjk1OTQ0NDg4NENBMjhEMzc3MzgyOTg2MDBDQUNCNThDNUFCRTk3RjBECitENDlDMkM2ODRBNDZCMDRENjI4QTI4RDUxOUJGMDkxN0UxQTY5MTkyMUEyMjc0MDNENEQwQzIxOUYzM0NENDk1CitFMTVDNTcyMEJCNTg0RDc3MDM0MzUyMEQwMEMxNUJFNjk2NjQyQUU0M0IwMzU3MzdFMjlDNDM1NkJFQzEyMjY5Cis1QjNFNkQxNEYzNzAxMURBMDRCNzI0Mjk5MTU5QkI2MkFFNzA4NjQ0MDk5Q0Q2RUIyOThDQTY2RDFDMERFMjVFCitCQjJEODM2MTVGM0VFOTk1NDJGMEM2QzgyQzkxMDZGOUU4Mjg0ODI4MzUzRDVEQkI0QjUyNTc4MUYyODhFOUVFCitDMjA4RjkzNTU5NTg3OTRENDFFQjEzNTBGRkIzMDgwOTRBNjhDMDlGMkUyRjhDQkM3NzM4NUI3MzM3QTREQjcxCitBMzcxNDkwMjRGQ0RGRDZEQTg4NzI0M0Y3MUY0ODEwMUI3MDY2NUY4NTBCQTdGNzMzRUY5MDQwN0JCQThDRjhDCis1MkVDQThEOTM0MDZCQzEyODAwQ0Y1N0YxREMxMkIzNTVBMTA0ODNBRTRFQ0U0MUY5RUVBNTg0MDY3MjQyM0UyCisxRDc1RjIzMDYwMTIwNjNBRjNDRTc1Njc3QkNBRjhGMDQ4NzU2QzNEMzE3MEUyNTZDMkY4NjNCRDFFMEI3OEU4Cis2QUJCOUYxMzVCRDRGMEVBMjIxNkI2MzFBMzkyQjJBMDA2NENGOTE2NkZDOUE3M0VCNzE0MjQ0MDgyMTAyOUVDCitBMzFCRDAyNEM0MjYyQkEzN0JGQTNGQzU1Mjc3NzI2MDQ1NDdFMDlFQUQwQjIzQjdDQTk3RkY2MTNCMzQwMzQ3CitENzIzM0NFRTY0NzIyMUMzNjNGMEY1MzREOTM0Q0QxNzlERTJCRUEyQTUwOERGRDEzMTNCQTUxMTM2Qzc5NDRCCis3MjUzQzFBRkYzNzk2MTFDNThENDFFRjUxRUY1NTI5NzEyOTI5NEQ5RkMyNUY1OTNFMjA5MkU4M0Y0MzQ2QTJDCisyQTVFN0ZEMUFDNTgyM0UyRkRBMDIyMkQ0RkIzMUIxNkNBMjM1MDA1NTMwMDEyRUY3REY2M0E3RTFBQzZBRDI0CiswNjI5RUJBMTZEQjk5NDMzOTlDODgyMDFDMTBEQTQzQzE1OEQ1Q0VGNDA4MjFGM0M3NDc0ODQ2REM0NEEyODAzCiszMjFGMjU4RjVENTUzRDAzRjVCMTcxQTcyMkNCQ0U3QUZEOEZFMkY0RTI5QjBGQ0YzNUVCRjBENUFDQzFBN0MxCitFMjU5MzQ0OThEMDQ0NDMwRjU0NTExMUE3RTM3MUY3RTNBNTIxNjYxQTQ3QjlENTI1RDgxMzUwMzA1NjUzRDMzCitDMzVFNDIzMUJDMTgyREI3QzVFOUUzRkJGQTkzRDZGMjlDNkE3MTRGMkU4RDdGRjI3NTE4MjQ1RjA1QjEzRkU3CisxMkQ3N0Q5Njc3RTU1MUY4MEE2NUYwRDA1OEJBQzdFMDAzNkJFQjNEQ0I2NDI1RDE5RDlBRTYzNDdDMEYwMDhECisxNzdGNTVGRTFEODlENEZFNkFERDRDRTAwMDg0Qjk0NEU4RjI0OUI0MjFEM0QyNzc4MTk4QTVBRTk5NkRDRkU0CitGNkJEQUQ0RDE1ODFCQzI1QkNDNjIxQzA3REEyQzgwMjdEQkQwMjExRTk3NUY4MEEwRkM3M0Q0MkMxRkEzMzVGCis5NjU3M0U5QzY5RjAyMzIwMEIwRkQ2Q0U2MTc5N0E4OERDQUUwNDJCNEM4MkNCM0NGNzQzMDlBMzkyREVCOENGCiswMDU0MDA5RTc3N0RGNDVCNjQ5QUJEOUU1NDlFNjFENjY0MzlBNjZGREUwNkNBQTcxMkVBRTIwRUEyMjMzRTA1CitENEJGQzgwNjAwRjhFMUM0RUE4OTk4NzRDRDAxOUQ0RTUxNENGODk0NUUwMjJCM0YwMjg4RjdDODlCRDlCMzJCCitGNjgzQUE3QkUyRURGRjE2Qzg1MUE4MkNBMTVEQzJFOUE5RkNDMzI5N0ZGRjkxMTc1MjJCRDk3NDEyMDFCQTkzCitGNDcxNTM1RUVENzA1OTkzMTBCMDU1NjlBNDI0MTc1NUEyNUQwODBGOTlGMTcwNDMyMTcwOEM2QTRBRUI2MEQwCis3MEFBQ0FFRjE2NzVDNjcwODYwMjFDQ0MzQUQxMjk3OTI4MEY4OTk5Q0NBMjFERDAwNjQ2MkM4M0I4OEU5OEM5CitDNzg1MTcxRjA4NjM2QTU4MDA0QTI2MDlGNEI2RTU4NzE5MjE1REY3RUVBQkUyRTlFMkEzM0Q3RTM4RTQwMzZBCitBNDhGQjBFRTIyMUMxMDY2OEI0ODJFOTQyMkJGMzc1M0FEQjA5RkVBRTgyOUUzNUZDODAwNDk1OEM1NzZBRTg2CitGQUYxOEIxQkMyQjE1RTE1OTU1NjYxRTI2MkQ2RDcxOTA3NDREQjkxMDUxNTFGMkRGNTY5REYyRkEyMTUzMzc3CiswRDVCMURDOTQ3QzA4RUIxMTk1MUQ1Q0JGQjk0MUYxODkyRjJBRDcyQUI1NDMzMzQ2OEMwQjU5NjdBMUJFMjJECisyQ0Y2Njg0NjVFRDI4MkZEN0IzODI2RDBCRkNCRTU2OUQ1NDNFQTBCQzE0Njg2NUFCNTBGQkU0QTQ4MDBFOEUzCiszRTg2QTQ0M0YzRDc4NkJERThGQjJGQjAzMTNEODYyM0U3ODk1RTFGRTFFRjc4ODM1NDQ0MjY5QUMzQjU1QUMzCiszNTJENzk0NkU2MDMyQTMyQTg2REUzRjdFMzE1QUEwOURCN0Q2NzdFQUIyQjMyN0M5QTYzRjhGRTg5NjAzNzA3CitFRkU4NzA0QURCNjZDQTZGQUY0MTJFQjk5QUZFNDdDNzNDQ0ZFMTdBNkM2Q0Q5OTRFNTQyRUEwNDRGRDQ4QThDCis4NEQ0RUEwQkMxQ0U1QzJGOTk3MjMyODY5RjBGMkEzRDIwNkRDQjZEQUZBNDlBQ0NFRERFQ0JDMzgwQzczNTkyCitGRDQ0QUZCRUU5MzkyREM5MjFDQzMxRThGOTE4MUFFMTVEQ0ZEQUQxMzQzNDZFMjU0OTJCQUIyNUFENDUwRUY0CitCQTBGQzU0MEU5QTI2NzQ0MTQ3QkREOUQxODdCNkMxQ0U2NzY4MDg2ODk0QzA1MDE3QjVBNzA2MjlDM0YyNEU0CitDQURCN0Q3NjJFOUI0MTY4RjUzNDBEMTBEQTlFQTI5Mzg4OUJFMDU5MEZCOTFFRkJGRTczRDUxMzQ4RTUwNUI5CiszN0E1MTc3NTZBMTlEMUM3MjA1NjY0MDczMDZCRDFBOTcxNDRDNkZCOEE5RjUwMzg2RDA5MzIxMzk5QzBBOEI3CitCQTg5M0E1NEMyRjUxNDk4NEVEN0Q5NUYzRjU1NTg2MkE2MEE2QTAyODgxRUVDRjAwN0E1OUZEOEJDN0EwNUY2Cis1NTA2NEM1RkUzRUY1QkEzNzE0MTMxMjVFQjkyMDI1RjE0NEFGOTM5OTY1RkY3NUE1OUQ5RDJFMTU0MjYxQTVBCisyRkE5QkE0OTcxNjg4OUI0MjAyMTQ5OTg4QjFCRjg0RjY0QUZFMjc4RTA3OUMwNkY2RTE3N0FEMDcwMTFBMjU4CitGRUYwNUE4NjAyOTlGRENBOEFGN0Q2MjY0QzQ4ODE2MDFDMUUzMEIyOUE4MkNGQzdDNkQ0QUFCNzg4MzIxMEVDCisyRTlDNUUxQTFGNDM0MENGMTQxOUUwMTVCMDlCNUY3RTI2MDI0QjQwMzgzRjcxMEM1MzRENzIxQzc0QzJENUYyCitGQ0JFN0I0ODkyOEMzMUQyMDg2RDc2OTY0NjIyMkZDMkMzODJDNzI0MDRCQjNDNTQ2MUQ1NTAwNEIyNzE4MEU4CitFODJCRDdDM0NDNzhDNkYyMjA3OTgwNThGMTU3NzYyODg0OTM1NzBEMTc3RTI1MDAwNTQ0OUE2RTAzMTA5NTdFCitGNDVCN0Q4NTkwMjZBMDcxRkZGRkVBMjM4OTE1NjM5QTk4QjVDNzlGQjY5M0MzN0Y0M0U0ODM4RkE4RTRBOEM5Cis3RjVFREUxREM2MzAxNERDODFGNzYyMEM4QTIxMTlFOEU1ODI4QjhEMTc1RkY5MUI4N0ZFMUY2OERDODE3RTkxCitGRjAxOTg5MTYwNjY1MzE1MDM0NjY5QjQ1QTU5QkZDMkY2RTE3RDE1MTQ3NjA1OEZDOEI0RjBFMkUyMDE4QUJBCiswNTMwODVFNEI5NUU4Njc0RTk3MzhBRTM2Mjk1RkM5MjNEOEYwNThFQ0E3NDY3NzM2NjA5QjczODgwNkRBODA3Cis4NDdEMkY5MkQwMkUwNTk3QkJCMjRCMEYyOEQ2QkE5RDI4MUIwNjM1MDc5NjYyQUNERTAyOTNCQkI4Njk4QjU4CitBODBGMjNFQUE4QkZDNDQyNjJGMjYwRDkzMjIyMzEzMUI0N0YzRDk0MjE4Q0ZCMjFEQUMxOTA4QjZBMzFBQzdFCitGQUFCQkM5MEEzQzNDMzM5NEQ4NkFERjY3RDIyN0Q4Q0VFMTg3NkIyRTM0MzkyMzAxN0IxNzAzNjM1RDNBRTlFCis5REI2REMwNkU1Mjc0NTc5NTI1NTA2NUE1MzIxRDIyQ0RDNUVDMkIyQjlGODI0QzIzRTQwOUI4RUNDNkI0NDkwCiszRDBFQTJDQzIzQkNCM0NBOEE2MDk1ODU0MTY5NUY5N0YyRDk0MDIyM0JBNDJDM0I0OTg0NEI2MjgyMjVBRENBCis2OTMwRDU3ODNCNkZBNkVDNUU0NzJCQTI0M0MwRkZBNzFBQTczODgyNUVFMzM0OTc1QTM2NDU0ODg1M0Y4MjRGCis5RDUxNDlFQjM0NkU4RjJEMDc0RjQ3MTVCMjk3NjRGMTE0QUMwREQyQjc3N0MxNzBBRjgyN0IxNTdEMDJDMkNGCisxOTlENjFGQjQ1NjZENzRDRjRGQzdCMzFDRjVEM0MyMzUzMTE3RTdCMzkyMzNFNEI4NEI5OEM0NTM1RkZBRDc5Cis4RkU4NTkzQjQ5MEI0ODRFQzczMEI5Q0E1NTJBNDUzODgxMDNFOEFBRkU3RTYyQTg2QzhCMjRBNjQyQzhCQUQzCitDOTkxOUZBOTYxOUNCNzE4QUFDQ0NCMEYwNzk0NUQzMzZCQThDQzc0NzhERTk1OURENzM4NDQxREVDMzc0RTlGCis3OUQyQjMyODIxMTg3M0Q0ODBFNUNEMEFDRDk0QUU4RjU3RkYwRTBFM0IyMzVGRUI4NjVGNjgwQTBDODE3QTE2Cis3RDc5NUI4RUQ1Q0QzQjVFQkNCQ0Y3NDhEQjZCQzUyQkVGRjcxOTcxNEU5QjkzQzVBMDgwMEUzODA1NDJEQjc2Cis0QjEyQTI1ODBENzZDRjM5OTZCNjFGQ0UyQzVDMzREMDY0ODdGRjE1OTU2MjhFOTc3RDNFQkMzOTVDNkJFRTI0Cis1RUZGNzM4ODQ2OEVFNTIxNTRGMTAzMEFFNzg2REZBRTY5MTU2NEVGREQ4MUJGMzkwQjlERENGMUY4NEJDMTZGCitEQjJFMkJDNEVDRjE5MzM1MkIzQzZCNEJFMDYwMjVCQzQzRDBBOTc4NTZENjY2NjFCODBDNDYwRkE0OEJDQjhBCitGN0U3QkU2MzNFMUNDNTJFREU3RUYwMTI1OEEzNjkzRDg3NDY1NzRCMEFFQzgyQTI2MTg4NTZCMEI1Q0ExMzFFCitCNkQ2MjRBQ0UxMjlFOTM1RDhDMzY3NDcxNUQ1NDJBRjRGMDA4NEIwRDdDOTkzRTJCMDY5MUJCMUZFRkJCNzM1CiswQzA4MDI2NThCRjI4OUMzMkVGRDI4QkE1ODI5NDFCNjU1MkFCRDhFMDNBNDY1MUFBQTc5NzQ3NTg5OEJGODQ4CiswMUJFN0ZFREYzQ0NCRDI2QzIzNUJDMDJDNkY5MDdEQkQ5NjRBRERGQ0QxQTVCMEZDRDQ1RkJDRDZBQTZEOTQwCis2Qjk1NUNENURDRTRDRkVENkRFOUFFRDcwMTlBNDRFRUVFMUQ2NDc3MUY5MzRBNTZDMThCRDU3MTRFMUU2Q0U4CitBMzlDQTI1MjA0MkQ4MTc0QjFDQzFBOTM4MTBCRTU5REQ5RjIwM0E3RDkwNzVGQjc0RkRCNUNBRDdCMTJDMUQ2CisxNDc1RTNDNzhEMjlEOTZEODQwMzBGNTE3NTA3NEM0MzY0MTVBMUU2QUQ5RkEyNkU0QzNGOUM5RjMxOEFFQTgyCitFOThCNkI1MDdGRTFGQ0VCNTdFNTdGQTcxMkRDMjU5QzQzQTExMjE2ODU5NDhCRkU1MjM5OERFQjRFNDcyQ0ZGCitDMDlEQzZDMjBCMEQ2NDE1QkJEOTNCM0Y1RkE4MkMwM0I3RjNFNzI2OEY5QzFDRDhGOEE3MjE0RkQ3OEFDNTkyCis4MzkxQTZGQjk2N0FCRDQyQTYzQURBNzhCNzAwRkNGQzQ4MTdDNEFDRTU0RDhFRTRGRUIyMDQ5MEI1NjY3NDY5CiszQjEwNTQ3MEEwOEU5NTZBNzEzODlDQUZCRjJFOTZBQjlENDQ1QUFDNThGNTU5Nzk5MEIwRkI2NUE4MzA2MzU1CiszNzkyMUEzODc2MjVGN0JGMDQ2RTlENEQxMUExOEY2RkY4RTY2NEZDMTMyNkU5QUQxRTRFNzY5NkQxN0E0QUUzCitGMjc2N0VFRjQ5Njg5ODNGQjhERkQ3RjczMUQyMDY1NTkzNDg4RDIxRDJDRTYxREQwRjEwNkUwQ0EzNkM3NjE2CiszNzY0NjRENTg0N0IzQ0FGNzdCMjU3QzZBM0Q2ODA1QzE1NEVCODFCNjE0RTlERTJEMzE0RTg2NjRGM0YyOTI4Cis3REJCQkU0M0E5NUIwNzFDRjU3N0ZDMUQ0NzAwNTE0QzBGQTA0MkVEMDhBQTRGRUVCQ0VDQzU5QjczMEE2ODZBCis3NTA3MkRCRTg4NEVFQ0IzQjYwNTZBNTZBN0VGRjAxNjI5MEU1MkNENEU2OTI2RDBFNjMxRDQ1NEFBMjFDREIxCis5QjM1NUFERDVBRjA4RDAxRjU4QTBFQkY2MUQxMzdDQTlERUVERDI3MERCNjJGRTk1MkI0NTdENjVBRTJBOUY3Cis3MEJEMkFGQ0FGNUYwMkYyNEIzQjFBQjlBMjU3MTM3Q0U2QUQ2Qzg0MTVCRkZERDdFRjMxOEVEQThGMTZDMDRCCis5MkYzQkZGQ0U0MjkwNTFEMDM1NzI2RERCQjlCRTc1NjBCRDQ0Mjk0RDZCNUFCM0QyRDQ3MDU2M0Y5MjIxNzI4CisyNTMyN0NFMTlEN0U3NzA1MzZBRkE5ODA2RTBBRTcwN0JBRTAyQjJGMUQ4NkQxMDJFRkU4MzM4OUNFMDI3RkY0Cis0MzJDNDExN0Q2QzhEMjUzQzE3QjQ5ODcxMDE1Q0JBNTVCRDYwNDYxMTlEN0E5NTY2OTNCMkYzMkE0REJEMkM1Cis3NTAxRUYxQzhBMjc3QTRGRDQyMzQ3RjA3Q0RGRDM3RUM1NEZBNkFGQjI2NzQyNjcxRDY2RUI0QTc0NkRCRTI4Cis3OTFCNkU2M0MyNTExMUZFQTU5RTFBMEYyMzlBMkUwNDExNDhFMjc3M0E0OTFFMDFEQjQ3RDY3NjExRjQwQzRCCiszQzg2Mjk3NUMwQTM3OURBMUQxNUVGODdBODQwMDA4RTAyMzA1NDU1RTZFMTM4NDcKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKK2NsZWFydG9tYXJrCislJUVuZEZvbnQgCislJUJlZ2luRm9udDogQ01SOAorJSFQUy1BZG9iZUZvbnQtMS4xOiBDTVI4IDEuMAorJSVDcmVhdGlvbkRhdGU6IDE5OTEgQXVnIDIwIDE2OjM5OjQwCislIENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKzExIGRpY3QgYmVnaW4KKy9Gb250SW5mbyA3IGRpY3QgZHVwIGJlZ2luCisvdmVyc2lvbiAoMS4wKSByZWFkb25seSBkZWYKKy9Ob3RpY2UgKENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZCkgcmVhZG9ubHkgZGVmCisvRnVsbE5hbWUgKENNUjgpIHJlYWRvbmx5IGRlZgorL0ZhbWlseU5hbWUgKENvbXB1dGVyIE1vZGVybikgcmVhZG9ubHkgZGVmCisvV2VpZ2h0IChNZWRpdW0pIHJlYWRvbmx5IGRlZgorL0l0YWxpY0FuZ2xlIDAgZGVmCisvaXNGaXhlZFBpdGNoIGZhbHNlIGRlZgorZW5kIHJlYWRvbmx5IGRlZgorL0ZvbnROYW1lIC9DTVI4IGRlZgorL1BhaW50VHlwZSAwIGRlZgorL0ZvbnRUeXBlIDEgZGVmCisvRm9udE1hdHJpeCBbMC4wMDEgMCAwIDAuMDAxIDAgMF0gcmVhZG9ubHkgZGVmCisvRW5jb2RpbmcgMjU2IGFycmF5CiswIDEgMjU1IHsxIGluZGV4IGV4Y2ggLy5ub3RkZWYgcHV0fSBmb3IKK2R1cCAwIC8ubm90ZGVmIHB1dAorcmVhZG9ubHkgZGVmCisvRm9udEJCb3h7LTM2IC0yNTAgMTA3MCA3NTB9cmVhZG9ubHkgZGVmCisvVW5pcXVlSUQgNTAwMDc5MSBkZWYKK2N1cnJlbnRkaWN0IGVuZAorY3VycmVudGZpbGUgZWV4ZWMKK0Q5RDY2RjYzM0I4NDZBOTdCNjg2QTk3RTQ1QTNEMEFBMDUyQTAxNDI2N0I3OTA0RUIzQzBEM0JEMEI4M0Q4OTEKKzAxNkNBNkNBNEI3MTJBREVCMjU4RkFBQjlBMTMwRUU2MDVFNjFGNzdGQzFCNzM4QUJDN0M1MUNENDZFRjgxNzEKKzkwOThENUZFRTY3NjYwRTY5QTdBQjkxQjU4RjI5QTRENzlFNTcwMjJGNzgzRUIwRkJCQjZENEY0RUMzNTAxNEYKK0QyREVDQkE5OTQ1OUE0QzU5REYwQzZFQkExNTAyODQ0NTRFNzA3REMyMTAwQzE1Qjc2QjRDMTlCODQzNjM3NTgKKzQ2OUE2QzU1ODc4NUIyMjYzMzIxNTIxMDk4NzFBOTg4MzQ4N0RENzcxMDk0OTIwNEREQ0Y4MzdFNkE4NzA4QjgKKzJCREJGMTZGQkM3NTEyRkFBMzA4QTA5M0ZFNUNGNEU5RDI0MDVCMTY5Q0Q1MzY1RDZFQ0VENUQ3NjhENjZENkMKKzY4NjE4QjhDNDgyQjM0MUY4Q0EzOEU5QkI5QkFGQ0ZBQUQ5QzJGM0ZEMDMzQjYyNjkwOTg2RUQ0M0Q5QzkzNjEKKzM2NDVCODIzOTJENUNBRTExQTdDQjQ5RDdFMkU4MkRDRDQ4NUNCQTE3NzJDRTQyMkJCMUQ3MjgzQUQ2NzVCNjUKKzQ4QTdFQTAwNjlBODgzRUMxREFBM0UxRjlFQ0U3NTg2RDZDRjBBMTI4Q0Q1NTdDN0U1RDdBQTNFQTk3RUJBRDMKKzk2MTlEMUJGQ0Y0QTZENjQ3Njg3NDFFREVBMEE1QjBFRkJCRjM0N0NEQ0JFMkUwM0Q3NTY5NjdBMTZCNjEzREIKKzBGQzQ1RkEyQTMzMTJFMEM0NkE1RkQwNDY2QUIwOTdDNThGRkVFQzQwNjAxQjgzOTVFNTI3NzVEMEFGQ0Q3REIKKzhBQjMxNzMzMzExMDUzMUU1QzQ0QTRDQjRCNUFDRDU3MUExQTYwOTYwQjE1RTQ1MDk0OEE1RUVBMTRERDMzMEYKK0VBMjA5MjY1REI4RTFBMUZDODBEQ0QzODYwMzIzRkQyNkMxMTNCMDQxQTg4Qzg4QTIxNjU1ODc4NjgwQTQ0NjYKK0ZBMTA0MDNEMjRCQjk3MTUyQTQ5Qjg0MkMxODBFNEQyNThDOUQ0OEYyMUQwNTc3ODJEOTA2MjMxMTY4MzBCQTMKKzk5MDJCM0M1RjJGMkREMDE0MzNCMEQ3MDk5QzA3REJERTI2OEQwRkZFRDUxNjlCQ0QwM0Q0OEIyRjA1OEFENjIKK0Q4Njc4QzYyNkRDN0EzRjM1MjE1MkM5OUJBOTYzRUY5NUY4QUQxMURCOEIwRDM1MTIxMEExN0U0QzJDNTVBRDgKKzlFQjY0MTcyOTM1RDNDMjBBMzk4RjNFRUVFQzMxNTUxOTY2QTc0MzhFRjNGRUU0MjJDNkQ0RTA1MzM3NjIwRDUKK0FDQzdCNTJCRUQ5ODRCRkFBRDM2RUY5RDIwNzQ4QjA1RDA3QkU0NDE0QTYzOTc1MTI1RDI3MkZBRDgzRjc2RTYKKzEwRkZGODM2MzAxNEJFNTI2RDU4MDg3M0M1QTQyQjcwRkE5MTFFQzdCODY5MDVGMTNBRkU1NUVCMDI3M0Y1ODIKKzgzMTU4NzkzQjhDQzI5NkI4REUxRENDRjEyNTBGRDU3Q0IwRTAzNUM3RURBM0IwMDkyRUQ5NDBEMzdBMDU0OTMKKzJFQzU0RTA5Qjk4NEZDQTRBQjdEMkVBMTgyQkNGMTI2M0FBMjQ0QjA3RUMwRUE5MTJBMkJDQzZDQTYxMDVCMjkKKzA0NDAwNUREQkVBRjg4RTBGMDU1NDFCQkQyMzM5NzdBNDQ3QjQ2OUYwMTNEODUzNUE5RDcwMjNDQzBGQjdCNDkKK0E5NUNEMkI2RjE4OTM1QzM3RjQ5RTlBNzNFOTdBODYwMkM1QzI2RUUxM0Q3QTA0QTE4ODMzNkZDQUI0Q0RFRTAKKzIzREU5RDgwM0ZENkU4RDg0NkIzRjcyOUJEMzYxMzdFODM0RTAxNjI0MkNEMkY3QkYwNDg5NTlERDQ1QUQ0MTMKKzE5Qjk4NUQwNUU1RDQyMkYzRDA5NjgzNzVFQTZBOTBGQkVCRjhCNDJCMTVGMTUyODA0NjlENjk2MjlDMDhBNDIKKzFDMjk4Q0MwMjdDQzI4OEI5Qzk4NDIzOUFCQjk2QjZBODkxQzEzNjBEMDhGOUVDQzIyMjAyODYxRTRDRTlCMzkKKzhCRjZCMDVGMEI5N0Y4RkRFRDg2QkRBMzJEOUVFNjIwNEJFRTMyMTUyOUQ1OEYyOEY3QTlCM0QwNEE0NDY5RTIKKzc3NUE4QjQzREY1MzUwQ0EyNUU5NUYxNzk0Q0VBOTRCOTlBQTAyRjM0OThDNjA4RTYyNzc1OTVERkVDNkNDN0MKKzk2NUI2OTg1NkNCMkFGQ0FBNTJGNjZGNUEwMTlDOTk5QTFDNzk5MDZFQURFRDhBQjBBMTg1Rjg0RjVGQzU0NEYKK0IyODlFNTgzQThBQjQ3MjZGOTUzOEY0RERFQTkwM0NDMUU2MjNEQzVFQzI1Q0QwMjM1M0E0QzlBNjNDQ0I3QjMKKzQ4M0E0ODFBRDcyMjA3MTRFRUQ4RUExNzlGRDc0NzI0QzdEMUY3MDMyNTI3RTI1QTQzRkI1OTM2N0IxMEYzRjkKKzRCQzIzRTJBRDlGNTc0NEVCOTU0QzhBMDA4NkMwRUQ1MTQ1MEE4RUU3RENBMkJDMjcwODFDNEY0OUZFRkNGQzAKK0RFNzVERkEzRTYyMDc0N0U4NUVEMEY2NkVDNTkwRkU2Q0U0MEQwODQ5N0I1MkI4OUZERDBFRjZCMUQ0QzBBOEUKK0ZCMTJFN0E5MDlDQTU2QzlBNDREQUU4MzdDRkI0NTE1NDEyREE5OTZDOUUzQTQzMEQ0OEIyMDY3MUYwNDQ0OEMKKzUxQTE0Q0I1RTlCMjU2NUQzM0EwQzA5OTJEOTQ1NkYzMjcyNzc2QkFCOTcyRTRBRDM3Q0Q5NTM4Rjc4QkU5NTEKKzlBNTg5OEMwRTNGNjhFQkU1ODk5NjcyNTRFQzRFMTBCNjAxMEUzODZFQ0Y0NEM3NDJEMzdDNjQ1MDJEQ0IyNTAKK0U5Q0NEMkFGMzQxQTE4ODM2NDg5MzYwQjk1MERBQjk4MENCMDYyMTE1NUU2NDdCNkRFOTUzQTZEQjFBRjUxQjEKKzMxMzc1MTE0RkI4RTZBQzkwOURGMTdBNzM2MkRBMkFEQUIwREY5QUJGMDQwNDI2OTU3QjYyNjRCQTBERjJCNDgKKzFBRUFEOEI5MDY4QTNFNUE0RDg1MTY2MzkyQ0QxMkVEMDE3Mzg5MzFFNTY4M0U4M0VFOTk5QzA4QzU0QUQxOUQKK0ZBRTc5NEEwMEVERkZCNEY0MzBERkY3NTdDQzIxNjNERTc3RDc5QzNGMEVDREY1RDQyQTFCMDc5NzI5RTI3NkIKK0RDMjY5MUQ2QjI5RUIzQzM3ODI0RDRBNUM3QTQ1MkMxMEM5OEUzOEZCRDI0MzdCQjI5Q0I4OTY0RUNCNDc1RjEKKzNERjlEMUVDMkY0NzIzQ0ZDOTE0REYwNjc0NzBBQjgxQzIyRjY5RkYwQTYxNUY2OTNDMEJGNzA4NEZGNjdERTQKKzc0MUU3NjVCNDdFMjIyRUZFRjZERENCQ0M1QkI1RUEzRkU1MDc5NTlBQTlDQTRGRjBDRUI2MTU5MzgwOTU3MzgKK0FFODEwN0ZCMTFGRDFDMzVBODU3MjFDQUYyRkY0OTFFOTBGNEYxNUI0QThGOENCRDcyRUFDMjg5MDlGQkQyMzEKK0IwQTQ1RDk0NDY5RDJDMDNDQzM1MUU1QzQxMjdDRDIzMzRGOTRBMUVFOTFGQUYxOURGQUQ1MEQ0OUREQ0ExNjUKKzFDQzkzNkVBQzQzMTcyMEZFRUVDMzE4NEMxNTc4RUM0RTlDNjA4NEVGNkM2QTMwQTMyN0E0NTVERTE0RTcyRjIKKzBBREY0QTFEQzQyMzI1NzdCQTI1Qjc1REFGQTQ2MEZDMUUwMThERjM2MUFBM0E4ODc0RUI2QjQ0NUY5NzM0NTkKKzgzRTNDMUQ0NDFCQ0Y4QTEwMEMyMkREMkI5NERGMkUzRUI1N0MyQzc5MkEyQzc4OTEzNzkxMURDNjc5MjZENjIKKzI4NDhDMjlFQzQxQTc3MTI0M0Y0NkQ0OEZDMTcxMzNFMDA0RjlEQTkyMDIzNjRFNzQ3NzNBMjI5OTlFMDM0MzcKKzFEMzQyNzdCOTcyNEU3ODAyMERGRTM5NDI5OEU5OTAxMzJDNjY0NzU0NkIyRjk1Q0MyQjMzNkM0MEEzMzVFQUUKKzg1RTVDRTM2NjcwQUE5RTI4QzM3RTQzQUU0RDVDREJFMTEzNTIxMDVBMUEyM0IyQjc4MUE4OEVBRTA5NEI4M0YKK0Q5RkEyNkMzRjUwMEI1QkE3RTA4NzU4Nzc3RjExQTExMDY3OTA0NEIwOUNFNTdCNjREMUVBOUJENEJDQjRFNzEKK0UxNUUyN0QxNUE4M0ZDMTJBQ0U0NDk3MUIxOTlDOUVDRjA2RjIwREJGMDYyQjY2NTREQzZFMTVEQUFFRDI2MkIKK0Q2NDVBN0IwQjlGNkE0MTU5MjAxQTE2NTBEREQ0Rjc0RUM3OEY1RUM4NzZBMUY1OEYzNTFCRDNBQUQ3QzQ2QjkKKzA3NkY3M0VDODk3MkNFMURBMTQ0Qzc4RTYyOUZBMTNCMzRBRjU3OTEzQjIxMDFBNEEyMzZEREYyRkNGRjE4MzQKKzFDMjREODM2MEI5RDhBMjRDRTNBRDg4OTk2N0NERTU5RDI2NTExRUU1N0IyQzA2RjA1QUEwNDc4OEUxMjMxRTIKKzg1NEUwQTJFRTFBNUNDMzRCNDQ1NDdEOUVCRjg3RkJDNkQxQjlFMEU1QzAzMjNEMUJDODJFRTczNThGMjQ3RkYKKzZFQzNDNEY3ODE3RjQwNUY5MUI1QUEzRkFENjYzQkEyRjdFMjhGQzdCNTA0Mjc0NDlCOTQyRDBBMzgyMEQyQzEKK0ExMEVCRUJBQjkwOUVDNTA3MkUzNzEwNjE1Njg1OUI5OEIwRUFGQUVGQjhFMTNBNEVCNkExRTAwNEI1MjVDNjkKK0RERTcyQjA0NjYxQzQyNUE3RTAzRkU0NDAwMDg2OTVENDU5MzRDQjYxOTJCNkEzMEE1Q0E4QTNGQzYxRDFFQTEKK0NDMkUxRjE3RUE0MkY2QTU2MkUwNjNDMkU2NkI5MDE4OUQxMjNFNjU3MEE0ODVENTAxOUJFQUJEOUMzOUY2MzkKKzY2MDFEQTQ4MTQzQzg4NDg4QjA0ODRFODIzQTM4MjE3MkIzMTMzMzg0MzM2RjUzNjk5MjhCNTE2MUI3QUU5MjcKKzcxMENCNTc1RkQyMzNGQzA5MDhEQzIwM0QzQjlBOEFEQUEwRjQ1NDA1NEJEMjlCMDM3RjNGQkUwQUIwRjVBNTAKK0EzQjgwNjYwRTA2RTYyQ0I3MzA2RkU4NjEyOTA5RThERjdBMUNCN0IzOUI3NzUyNENDNzQ3MkIzOTY0QzdDMjEKKzdGNTlFNjlCRUIwRUZCNjRBRDFGNzlDMzhEMjQ2Q0I2M0Y2MUJCMzFEQUEyQkNDRUFGQkMxRjQxOEYyQjZERjAKKzI5MkI1RjhBNDc2M0JEOEJCQUQ4NDFEMEEwOEQzMTQ1MDY0NTEwRDQyN0M1OTc4NDcwMDY3RUQyMzlEODFGNkIKKzBBMTA0NzdBQzIzM0M5MzRDRUE1OEZBMDUxRTdGMUQ5MTVDQ0ExMzVBMDY1OEJBNzczNjU3NERFRTA4ODcyMTYKK0NBOTkzNDNEMTM0NzE1REJEMkE1QzQ2QjNCRDk5NUE0QjEwNkRGRTVBMjQzNDdERkUzOEExNENCQkFFOERCRjQKK0Y4QjdGNzgyQkE4RkMxODFDM0Y4RkIxREVDMkM3MDZEN0RDQ0NEOTdFRTI1NEZBRTFBOUZDNkIyNDY2QzA0QUYKKzYyNkUyQTU5QzhCNEU5NkZGRjBEREE5ODcyMjA5MDg0Mjk2Mjc2RTU0QzVFOEJCOTNFMDQzQkQ5QzlBMzZBRUQKKzJDM0U4MkJDQkVDRUVCMEMyREU3MzU2RjcxMjM1RDlDRjk0RUZERDQwOThCMERBODBBREVDNDdBREE5OUE5NDYKK0I3OURDRTcyNzRDNkRDOTI3NTc1NTBCN0ZCRjYwODg4NkQzMTk2MjA2QTNBQ0FBQzY0MzM5NUMwMDA1NDFFNUQKKzE5QzlFQkM2MkJFN0FGM0YzRjgxQkJDQjA0NzZCRTgxQjIwODNFODgwMkRGNjQzRTBFNEE4Qzg3M0QxN0JEQTMKKzc2MTQxQTZGOEM5OTA4NjlBM0RDRDdBQjdGNDZDNzAxREM5MkFCREY0QUQ5RjM4RjAxRDIwMDU0MTVDMUJBREEKKzk4MzJDMDg4OEU1OTI2QzUzNDRCODVGNDgzMEMxN0ZDOTI4QTU4NUNDNzQ1REMyNUE3Q0VGM0I0RDQxQzY2ODAKKzIxOUVBRjY1Q0FEQTU1MjRGNUZCMUYwOTM0M0NDMjhBRUQ4RkI3QTE2NEMyNUY5Q0M1RThGQzYxODBEMDhEODgKKzUwOUE5M0JGMEFDMjhBQkYyQjlDMjdENTcwN0M0RjAxODhFODQzRTNFOERDNzNBNThENzRCNEQ4ODUyNUY2OTkKKzVCOThDNzFBNjk4MkQ2REJCNjVCMTA1QjJENkU2NUU4MTcxRDkxNUQ4QTFCQkQ4OUJCMTYwQzk2RjQ3OEQ2MUMKK0VDMEZCRUVCOUFGMjk3MDVDQ0QxMzA2MTA5Nzk1MzgyNURBNzM1NDExMkRENzJGMUFBRjMwRUJGNTA4QTVBMDIKKzZDNzY4MEFDNzU4Mzk3NEJGNkE4MkY0QUI5RjM1MjYwRUFDRUMxQzkwMzZDMTJDODhCMjhCM0MyNDY3RTRGREQKK0EyMkZGNUZFNTkzNTVERDRCRkQ4NDlCNUFDNkM5RjUyREM1MUEzQjhBNENEMUFBNzQ5MUU3ODVCMERGODFDMUUKKzMzQjYxMEIyRjFCMzU5NUMwRDgyQjg2Nzg5RDU0OEE5MkMyMEY1MTc3QjE3QzM1QTk2MUY4NThEN0RGMENFMDcKK0NGOUE5NTdFMkZFODI2RjJDNkFDRTY5QTIwODJFRUZEODZEOTMyQzlDMzU3NDE2MEFGNzc4NENGQTA1QzFFQjEKK0E4ODFEN0FGRUI3MTY2OEYxREVEQTNGODA1NTY0MEU3Q0IyRTdERDIzMTM5RkREMzczNzNGQzZERkVBODVDMjIKK0I1OTMzMEQ3MkQ2MzMxQjhBMUQyOEE5QjNEMjE3MkExNzdBRTVDRjBEMjJEMjhBMTkxMUY5RjNGQTcwMEQzNTUKK0Y4NDIzMDYxMEUyQjc5QTczNTg4OUM1Q0M1OTEzNDdBQzE3RjlFNjVDMDNDMEExQ0RBMkNFRjc1Q0YwMUQ2QzcKK0M2RDVGNzI3MjU4RjQ5OUIwOUIwQTA0MkE5N0Y3QUNEREQ3QjE4OEE1QjkxN0UzRDdFN0E0MTFBMEFDODRGNTkKK0I5NkE3REM1ODFCODEwMTkxNjhDMzFGN0U1RjZFQjgyMTFGMUY0NEI3ODUzOTFENDFFODk1NjUzODVEMTVEOUYKKzY2RkI2OTg2QTY2QjI0NjBCNEM4MjI5RTI0NEEzMjJFRDgxRkVCQ0E4RTI4MjdFNEE1RTU0MjM2RTMzQTc4OEQKKzBBMDY2MjVGOTJBQTYzNDdBNzNBNDc3QTZBMzcyOTJCREJGMkRGNDJENUZEQjEwMjdEQ0JDOEU0ODExNDdBQjMKKzc3NzlFNUVGMDA4QTY3ODA4NDkwRTc5MDRERkM3NDBFMzhCQzE4NUNGMEM4RjBDOTAwMjYwNkQzMTc2NEFFNUQKK0ZDNUY2RTlDMzMwRDQzRUNBOTUzODBCOTg4MDg0MDc0RThDMjY4RkRGQTM1N0Y3MDQ1Qjc2MDNERkZDNUIwQkQKKzAxQjI1N0IwQTc1NEExNEE1NjVGQTBEOEM4OUNGN0M0QzlGQjY5NDQ1QUNGN0FCRURCRUVDMjRDODdFODk4ODkKKzYxREFGMzE0NDI5MUQ0QThFN0FCQjNDQTk1RjlFODlBRTg0NjQ5NDE5QTIwQUNGRTg3MkU4QkY4MUM1MjM2MjYKKzZDQzE0RURGRTU1NjVGQTI1RTY1MjkwRUMyNzJFMkRDRTY2MEE5MTZENjBDMDdDNEM5Q0ZCRjUzOUM3QjU0OTcKK0M1NUY4RkEyMkNDNTMzNzRGNkUwNzM3NEE3M0IwRjZGNjhGQzAzNzY3MDNCNkU3M0IzMTkzMTI0NDhERDFDQjEKKzk2MkUxNkE4NEEzODczQTMyMkU3QjNDNzM3QjQyRTE4RDUzQjAyQkU5RURCMDdEMjE2NjNEMEVENjQ0MzUzOEEKKzI3NkVDMTY3RDZERTdCOTQ2MjVDNjI1NEZCNTU1NURBODFCNUQ2Q0M5MjE5MUQxNUMwMDJGODEzQTczRTE5QTQKK0E3QzYzMTA2RUI1QzVFQTdCRDlFMUZGM0Q0QzNCRkI2MjY1QzQ4QUI0OENDNEEzRkJBNTVCMEQyRDg3OTVENTUKKzQ4NEYzRTM4N0JCNTY2MDJCOEMyRUM0RDA0QThFMTIzQUQwMjQyMkQxRkEwNDgwOUE3RjI4ODQ5NTdFOURBRDcKK0VERTY3RjkxRDYzRkQwRDczRDg5RDlCQjkxMjZCNURGM0MxQzA5Q0ZDODFBN0M2MENGNjQ2M0FCQTYxOTdEMkUKK0NDMUU4MzM5RTJGNUEyNjU2OTgzOEU2NkU3MDI0REU4QkY1MEJGRkEzRjFFNkE5MjNEMzYzREFGRTQ3NTFCNDgKK0Q1RUQyQ0Q2OEM1QzhGMjQ4Q0EwQzBBOUI5Q0U1MDZCRTE3QjQwNDRGRTczMDAzMzk1Mjc0NDk4OTI4RTA4MUMKKzQ1MDM4NUIyRjJEOUZCRjkxODcxMTA5RjEzN0U1MkNDQTgwMzVDOUIzMEQzNDE5OTAxRjM0MkFBQjI2Rjg3NEUKKzQ0OUYyMTRERDQwNkMyMTBEQ0MzNUVBODlFNkEwMzk3RTVBQjQ3MjU1ODZFQTEyQjhDMTBGNDFEMjkyRjkxNDAKKzExNUE1N0RGRjE5NDk2QUQwNEMwRDlBNjQwRjdBQTI1RTlFMjJBMDVCMjNDN0E2RkJDQzExNUUzREFDN0EzNEUKK0JDRTlFQzE5QUU1NEJDQTNBN0ZFQTdBQTBDMjNCMjQ4NzBGQkNEOUJCMTVBQjE3RjcwMDJDQzMzRUNENkYwRUMKKzRENDM2MDdDOTgxMjZFN0ZGN0E1OUVBMTg3RjNERUYzQjZCMUExNzQ5MjZCMkQwQ0VEODE1OUIzNzQxQzBGNjcKK0ExNkFBQ0QwMDk4NDdDQUZBRDQ0QjMzOEQyQTRGMzE0OEQ2Q0E0MzdBOEY3NzA5QUI0RDI5RUZDNEEzN0MyNTYKKzVBM0E1MjI4MkVEMUI1MTE0QzE0MDQ1RDJBMzgwNkM4QTdEQjY4NTRFRjdFMTU4REI0Q0Q2QzRGODRBNDYwNDcKKzA5OEY2MTU4NzYzQzAwNDlBMTdDRkFEQjEyQUExOThCNzRFN0FCNjI4MDU1NTZCRDlEQjg0MjRBMTAzNzEzNkIKKzVBRTMwODUzNDQ2RTY3RUUwMTc3MERDODE1M0E5MDZGQzcxREUwRDhDODVCODZEREQ2MkU2OTUxQjc3RTE3MDkKKzkwMDMzOEEzQ0I0MDUxNUUwNjM2MTg1MzkyOTc5QjJCRTUyRkVBQzc2MzkzMEE5OTAxOUM2NzVGQkZCOTQwNDEKK0RDMDlEMTE5NTQwQ0U2ODlFRjdDM0FCQTVENjI1NzNGNkU0NTU5QjQ0RjNGOEFFMUMzRDA0NTQwNTI1QTEwRjYKKzUwMTU4OENGMDg5N0Q3NjdDODRFMDA4OTZFRTdDRUY5RkU4MzJFNzcyQUZFQUMwOEIxNzAwRjhGNTQwNTZFMTkKK0YwNUQ0NERBOTQwNjNFNDk3RkEzNUM3MjBBNkVFQkIyMTU2QkMxRDkxRTY4MTAxQzM2NkFBNUJDNjhDREMyQkYKKzkwQ0IxNUVCMTJBRTBGMjM0QjM3MEVGQzBCNEEyM0M0RTUwM0VBRjU1MjlBMDMyODM4Qzg3RjUxRkE4MDYyMTQKKzQxQkY4RURCRjIyQzg5Rjg5MDVENEM4RjcyNjBCMjI2OTE4MEM2RTMxMjdFRDMxQUJEODc4RDc0RUE3QkRFODcKK0Y1OTdENDQwQUU5MjNBNThBQjAyRDI3RTM0OUNBN0NDMDQzQjk0NkQ4OUQ4MUM4QUU0MjY0ODYzOTg5QUIyQUUKKzUwNjE4ODA4OTdGNDZFNkNGOTUxOTU0OEFDOEEwMTQzMUM3NDZDNDgyRjRCNEM2MTY2Nzg4RDM3MkNFOUM5OTcKK0UyMzNERjk1OTc4NTdBRjA0RTQ5M0VBRkNFNzgwRkQyMjlEMDRGNEZBMDJDRTUxQUNGNEJENENFMTkxN0YxOUQKKzEyQzRCMjVCMUEzNTc1RjBCNDEzMTdFRUEyNERFMUJFRkRCMUJDM0FGRDVGNjFFNTEyMjM4NzI2RThFM0EzMUEKKzhCMkYzQkU3OTk0OEM4QjFCNkNBODE1QUVGRTM0QjkwREI5M0I3MjgyQzc3NUQxRkU4ODYzMkE0MUI0RkNCRDIKK0EwNUE5QTA0OTY4MjkzRTc5QThGRTE4ODkyQjgwNjE3OTc5MDExOUJBM0ZFMzc4QjJBQzg4MjI5NUEyNUM3RkIKKzU5QzBGNDU4Q0IwRkE0QjEwMzE1M0EyQUE1MzRDMjRFRDk2OTc2ODQzRUE4QjMwRTMwRTZEQjI3OTQyNkMyNEYKK0RCN0Q4QURDM0ZBRURERTZGMjA0ODI0QzVFRDhBMzFFMTBGQTBCOERBRDQ2RTFCREM0RTgwNDM2MTQ4RDExMzQKKzA5RDA4QzU2NjY3REU1OEExRTc4REE4MTAzQTRFOUQ2RUQ3REVBQ0Y3NTYxQkYwQzg1MDM5NDY4MjI2Mjk2QUMKKzg2MTE1NkNCMEYwRkYyRkVDNzZEMkEzMkU3RTQ5QzQ4RjA2QTk1RDYxQTJGRTQwRjEzNTYzNEJDQjk5RkU1MzgKKzFGODQ5MkE1Q0VBQzlDRDRBQzc2NTMzQzIzNzI1OUUwNzdBRjRGMUYyNkIzRDFCMEVDNDczQ0Q1NkQzQkFBOEIKK0NEREFFMjZFN0NFRkJFRDgxOEMxREQ4M0FCMDE0MkVCQjkyOEU2RkJDMDY5N0ZEODFCN0E3M0I1Q0EwNUExNkYKKzExRUMyNDI4QThBNzc2NzRENjM3MDdGMEM5MUQ3OEVDNjRGOEQ1RjY0ODE5OTkwNEFGQ0IyN0RGQjQ5RkM4QjQKK0NCRkM0ODY5QkMwQTJGQ0ZDN0FCMjU5RERGNTlBOTQxQ0Y0QTFENEFENEY0NTFDRDdGQkRCMTY4RkY3MjAzOEIKK0YxNTc4RDg5QzhGOTM4RkY3MkQ0MDg3NTNBRDExMzExNDQ2MEJFQjkwMkI3QTBFQzRGMzdBNkZFMzExN0U0Q0IKKzYyNUE2NjREN0ZDNDgwRTk4NjY4MUM3RTMwNTUwMzZBREI4NTQ2RUFDNDRCNUYxMkNCNDAwMTAzOUE5REU1NkYKK0E2MUQ1MjNERTFCMEY4MzYwOUU0NkUzOENGRTQxNDYwNDk0MjAxNTRBOUM3Qzc1NjIyMDMyNDA0OTcwQjY3NEQKKzRGNzlCQzk5QTVGM0Y3MjBBNDU3MDkzMzhFOEM2QTUyOTI1NzI4MUNDODgwQzhDNzdDREQwRjdFNkI0OTVENjcKK0FCMTM5RTNEQTlDQ0MzQzk5MzA2QzNDRTlCMEU1M0Q3N0IxQTAwOUEyNjFCOEEyMkI3ODlCQjY3OTM0RUU3RjMKK0ExQ0E4QzIxNzAwODJGMTg5MDNGMzM1MDg1RkU1MjE5RUIzQ0QwRUQ0REMwMUM5QTQ1NDI2QzI2MDQ2MjE5RjUKKzNDQTYwQ0FEQjU4RjZBREUxRkVBQjg0ODE4NDA2N0M2QUJGQzM2NTU1M0UyMDk2MEVERjcwREMzMTlGRjk1NzQKKzY1NDE1NUY4QUVGRDk4NjRBODM5RUY1RTAzMjcyOTFDODc4NEFBMkRBREQzNzY2NUZEOEEyRDcwMDY2NDExQ0EKK0M4ODIwNUU3OUZGMEUyQzJGRUVEMDY2MUZGRDM3MzZBODFBMjZBRUYzNTU5OUE3NDYzQjlGMDM2RDZCMjJBRjUKK0E2QjBDOTI1NEY3MkJFQ0UwMTA4MDBCQjMyMTAwQTc0NTk1NEQ5NkY5QTI3M0Q1QkFDNjY1OEI1NDMzQkFBODAKKzIyQjE4Mzk3NTE0RjRDM0RBOEQwQUZFOUVDRjQzNzc4OENGMTEwNzFCRURCRkE5RDVGQ0U0MkZCMDg5NkZGQzkKKzYyOTk3MURGOUM3OEU5QzQwQjA2NUM5MDk5NzEyMDI3OTdFOTAzODdEMTI4MzVERjNEMzA1MzcwMDk0RTlCMzcKKzREMjk0NjIzRkQwOUNGREVFNUNBNkY3NTgyN0E2OTMwM0QzMDAyNkFCNTE4QkU4MTJGMDIxQzdCMjVBQUZFNzAKKzY0ODUyMDEyNTJCRTZBRDRGMTlGMzNBMTg4NDQ5MDQ4OTAwMDNFNTdBNzYzRkNBMjFCMDc0NEJERUUxNDczRTAKK0NERDE2RDRBMEEyMEREQzlCOUNDRDNFNzE0NkM5NTY5NkZCQUQxRDE0MjZDNkVGRjg3MzMyMTkxMDZCNTZCNTgKKzQyREZGNDIzMzk4Rjg3ODkzMEY4NURBMzI0NUY2RTI0OEU5ODY3NDE0NDIwOUYxREVGQzlCQjNEODBGNDQyNUUKK0Y2Q0YwNkU4OTUyMjg3MURBQzI4NjUKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKK2NsZWFydG9tYXJrCislJUVuZEZvbnQgCislJUJlZ2luRm9udDogQ01TWTkKKyUhUFMtQWRvYmVGb250LTEuMTogQ01TWTkgMS4wCislJUNyZWF0aW9uRGF0ZTogMTk5MSBBdWcgMTUgMDc6MjI6MjcKKyUgQ29weXJpZ2h0IChDKSAxOTk3IEFtZXJpY2FuIE1hdGhlbWF0aWNhbCBTb2NpZXR5LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorMTEgZGljdCBiZWdpbgorL0ZvbnRJbmZvIDcgZGljdCBkdXAgYmVnaW4KKy92ZXJzaW9uICgxLjApIHJlYWRvbmx5IGRlZgorL05vdGljZSAoQ29weXJpZ2h0IChDKSAxOTk3IEFtZXJpY2FuIE1hdGhlbWF0aWNhbCBTb2NpZXR5LiBBbGwgUmlnaHRzIFJlc2VydmVkKSByZWFkb25seSBkZWYKKy9GdWxsTmFtZSAoQ01TWTkpIHJlYWRvbmx5IGRlZgorL0ZhbWlseU5hbWUgKENvbXB1dGVyIE1vZGVybikgcmVhZG9ubHkgZGVmCisvV2VpZ2h0IChNZWRpdW0pIHJlYWRvbmx5IGRlZgorL0l0YWxpY0FuZ2xlIC0xNC4wMzUgZGVmCisvaXNGaXhlZFBpdGNoIGZhbHNlIGRlZgorZW5kIHJlYWRvbmx5IGRlZgorL0ZvbnROYW1lIC9DTVNZOSBkZWYKKy9QYWludFR5cGUgMCBkZWYKKy9Gb250VHlwZSAxIGRlZgorL0ZvbnRNYXRyaXggWzAuMDAxIDAgMCAwLjAwMSAwIDBdIHJlYWRvbmx5IGRlZgorL0VuY29kaW5nIDI1NiBhcnJheQorMCAxIDI1NSB7MSBpbmRleCBleGNoIC8ubm90ZGVmIHB1dH0gZm9yCitkdXAgMCAvLm5vdGRlZiBwdXQKK3JlYWRvbmx5IGRlZgorL0ZvbnRCQm94ey0zMCAtOTU4IDExNDYgNzc3fXJlYWRvbmx5IGRlZgorL1VuaXF1ZUlEIDUwMDA4MTkgZGVmCitjdXJyZW50ZGljdCBlbmQKK2N1cnJlbnRmaWxlIGVleGVjCitEOUQ2NkY2MzNCODQ2QTk3QjY4NkE5N0U0NUEzRDBBQTA1MkYwOUY5QzhBREU5RDkwN0MwNThCODdFOUI2OTY0Cis3RDUzMzU5RTUxMjE2Nzc0QTRFQUExRTJCNThFQzMxNzZCRDExODRBNjMzQjk1MTM3MkI0MTk4RDRFOEM1RUY0CitBMjEzQUNCNThBQTBBNjU4OTA4MDM1QkYyRUQ4NTMxNzc5ODM4QTk2MERGRTJCMjdFQTQ5QzM3MTU2OTg5Qzg1CitFMjFCM0FCRjcyRTM5QTg5MjMyQ0Q5RjQyMzdGQzgwQzlFNjRFODQyNUFBM0JFRjdERUQ2MEIxMjJBNTI5MjJBCisyMjFBMzdEOUE4MDdERDAxMTYxNzc5RERFN0QzMUZGMkI4N0Y5N0M3M0Q2M0VFQ0REQTRDNDk1MDE3NzM0NjhBCisyN0QxNjYzRTBCNjJGNDYxRjZFNDBBNUQ2Njc2RDAwMzdEMzNGMjRFMkZBQzJCMDAwOUFEM0M4MzUwQ0RGOENDCis2NUJDQTg3OTc5QzM2RDE0Q0I1NTJFOUE5ODVFNDhCRTRFODhFQ0ExNkRGNDE4NzQ5QUYwNEZERDJCMEUxMzgwCitEMjgxQkIyNDc2QkI0NUZGMzA5NDZCMjQ3REZEN0Y1NzMwNUZBODdFNTBDQTMzODEyMUM3MUNERkRGOTI3QTlDCis3N0ZGMTRDQjRBMUQ2RDgwMzU2RkIxMTcxRUQzOEMzNzcwMjM1MDQ5N0I0NEU0MkNFMzFEQjJGNDkzODA3REFBCisxNUI4ODdDNjcxMTk5QTU0QzRDMTI5NEJDNTIwRjU1MzhDMTU1NTZCQzQzQzlGNjIzNDJCMTIxQzZEQ0Q2QzVGCis0OTFEQTQ3RkYzNjAyMDFFRTIxQzA4QTc4MUVEMDU4OUE2REY5MUI5OUZFMTE4QjlCMjlFNEYwNjg2NzJFNTJGCisxQTA2QzUxNEQ5MUM0QzkzN0Q0RTY0MjUwMzM5MkIxQ0QxQkY1QUYwQkNBMjhFQkQ4NDBBRDc2Q0MzOUFEN0FBCitDRjJDMDU3MTEzNzRGNzg0OTcwOEUxMTA2Rjg4NzM3QzlBQTYwNjEyRDM4NENBOEMxNzNGRjEwMzFFQkY2RUE0CisxNzYxMzZERTFCOUYyOUU0MEU4MjY4MEEyQ0ZGREMyNERBMDU4NTMzMDdGMUQxRjY1MzdEMDYxRUJDQkNDNUFFCitFNjMxNjM4MEVDRDhFNjNBQ0JFQTlGRDFGQzI4OTQ5MzY2ODUwQUFBQkNCQzk1NTJDQUIyQ0EzQkI5MzRDOEEyCisxNEM5REZBREUyNEQ5MjE0ODU4QjFENDJCMjE3MURCMThBNDc1QUY3ODg2OEMyNTQ5RjE5NTU1QUFCMDdGNTg2Cis1OEIyODU0MUM3NEUxNEYyOEI2OERBNDJBOUQ0NkMwMzFDQkQ3NEZDMDlCRkVBQTNBQzFEREM2OEI3QjcxQjgxCis2MDAzQzlDNkFDOEVERERDMDQ2RDI0N0EyQjhBRkE2M0EzQjFCQTFGMTJBRTBCNEREMDczMjdGMDEzOEJGNDcwCis0NjMwRTRCNURBNTVDMTk0RjQ1NEVFMkU4NzJFMEFCRTZCODc5REYyRTg3Q0Y4MUY3NUQ3OUY0NThGN0QzRjgxCitGREI3NkMxNUVFQzQxMjVEMTg2ODVFMUQ4NTkxQzU0QzBCMEQwNjlFMkVENzM0MzQ2MTdCOUQzMEU2NDQ1N0U2CisxNTQyRTQ2MzBFODQ4OTQ4RkYyNzQ3RDVDMzFCOUMzMTRBRTEwODkzMTAwM0RCOUY3NjY0NERCNDNEMjQ1NDk5CisyRDI4RTg0NTJFNTBCMTk0NUUxM0E1REUyQThCOTM1MjNEMzY3MUQxQzdFRDA3RUFCNkZGQjU1OUU1QTFGODI4CitCMjJEMkZBRjM0OUI0MEMzQjMxRkU4MDY1OTVGNjdDNUU3NTI2MDUxNEY0NTZGQTAwMTM2NjhEOTQ4NjE5NTE0CiswRUZGQzM1QzFBQTEzMUFGODU3OEEyNTRBRTYyQ0E3NUE2NjMxNDg5Qzc4Q0NFNjMzQTNCMzAyQkZBQ0IKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKK2NsZWFydG9tYXJrCislJUVuZEZvbnQgCislJUJlZ2luRm9udDogQ01DU0MxMAorJSFQUy1BZG9iZUZvbnQtMS4xOiBDTUNTQzEwIDEuMAorJSVDcmVhdGlvbkRhdGU6IDE5OTEgQXVnIDE4IDE3OjQ2OjQ5CislIENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKzExIGRpY3QgYmVnaW4KKy9Gb250SW5mbyA3IGRpY3QgZHVwIGJlZ2luCisvdmVyc2lvbiAoMS4wKSByZWFkb25seSBkZWYKKy9Ob3RpY2UgKENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZCkgcmVhZG9ubHkgZGVmCisvRnVsbE5hbWUgKENNQ1NDMTApIHJlYWRvbmx5IGRlZgorL0ZhbWlseU5hbWUgKENvbXB1dGVyIE1vZGVybikgcmVhZG9ubHkgZGVmCisvV2VpZ2h0IChNZWRpdW0pIHJlYWRvbmx5IGRlZgorL0l0YWxpY0FuZ2xlIDAgZGVmCisvaXNGaXhlZFBpdGNoIGZhbHNlIGRlZgorZW5kIHJlYWRvbmx5IGRlZgorL0ZvbnROYW1lIC9DTUNTQzEwIGRlZgorL1BhaW50VHlwZSAwIGRlZgorL0ZvbnRUeXBlIDEgZGVmCisvRm9udE1hdHJpeCBbMC4wMDEgMCAwIDAuMDAxIDAgMF0gcmVhZG9ubHkgZGVmCisvRW5jb2RpbmcgMjU2IGFycmF5CiswIDEgMjU1IHsxIGluZGV4IGV4Y2ggLy5ub3RkZWYgcHV0fSBmb3IKK2R1cCAwIC8ubm90ZGVmIHB1dAorcmVhZG9ubHkgZGVmCisvRm9udEJCb3h7MTQgLTI1MCAxMDc3IDc1MH1yZWFkb25seSBkZWYKKy9VbmlxdWVJRCA1MDAwNzcyIGRlZgorY3VycmVudGRpY3QgZW5kCitjdXJyZW50ZmlsZSBlZXhlYworRDlENjZGNjMzQjg0NkE5N0I2ODZBOTdFNDVBM0QwQUEwNTI5NzMxQzk5QTc4NENDQkU4NUI0OTkzQjJFRUJERQorM0IxMkQ0NzJCN0NGNTQ2NTFFRjIxMTg1MTE2QTY5QUIxMDk2RUQ0QkFEMkY2NDY2MzVFMDE5QjY0MTdDQzc3QgorNTMyRjg1RDgxMUM3MEQxNDI5QTE5QTUzMDdFRjYzRUI1QzVFMDJDODlGQzZDMjBGNkQ5RDg5RTdEOTFGRTQ3MAorQjcyQkVGREEyM0Y1REY3NkJFMDVBRjRDRTkzMTM3QTIxOUVEOEEwNEE5RDdENkZERjM3RTZCN0ZDREUwRDkwQgorOTg2NDIzRTU5NjBBNUQ5RkJCNEM5NTY1NTZFOERGOTBDQkZBRUM0NzZGQTM2RkQ5QTVDODE3NUM5QUY1MTNGRQorRDkxOUMyREREMjZCREMwRDk5Mzk4QjlGNEQwM0Q1OTkzREZDMDkzMDI5Nzg2NkUxQ0QwQTMwRUI3NjAyOTMzNworOTAwRUNGQjEzOTBDQTVDMEMzQTA0NTI4MDQ0RjI2NkJBMTdCRTQ4N0M3OUI5NEZBQzZENjQ4NDY4NEM1QkZFQQorODdCQ0NDNzdENDBBRDExNTUyMDM1RTk1RTMwMDcxMjY0MThFRDQ5QjY4NDY4QjM4QTE0RTg4RTY4QTI2N0I5OAorMDc2RjFDOTc2OUE1QUZCQzI4NUU1QjE1OEVBQzlGOTI2RjFENkMwQjhGMUQ1N0Q5QzMxRDI1QUUyNzEyMzUxOAorOUQyQ0Q5MkU1Njg5RTAyMTMwODlCRDI2OERBNUU0NzUyNUNCOEVBQkFBNEI3OEExNUFFQTM0NzA1ODg5QUIzQQorRkZCODk1M0I1QjM0ODJFNTJCRkEwOTQwNjMwQURGOEMwQUMyMTc3RDkwNzMyNDI5OUVFOTgwRTg1MEYyMDNDRAorQjYyNzk2MkY0M0Q1QTY3OEM0NDI0M0NERTk3ODUzQkRDNkFCNDVGRDVDMDlBRDI3NERBRjg5OTI5RjU4M0NDOQorQ0NDMjRCREZDNjhCOTIxMTEwNTVBQkE1RjI2RDJEQzY3QzcwOTA2RjcxQzI5NTc3MDFENjVBRTc0NkE2MEMzMAorNDBFNkNCMjRCOTdGQ0RBRDA0ODdBRTM4QTIwMUZCRjBFNDFCQUJEMjE4MTk4MUE3MTk0MEYxRTcwN0Y5MUU1RAorQzhDQTUwQ0IxNkQ4NzAyRDE4OEU1NkQwMTREOTJGNzZDRTBCNTJBQkRCOTExMEUzMjQzOEQyQkJGM0U2QTQwQgorN0IwMDVGMTBCQjQzNzgxMkNBQzZFRDI5OTZGNzYwNkRDOTYyQzRGREUyMDdGRjMyMjc4MkMzNDNERjQ0Q0VDNQorRkYwNkE1NUM2MzBDMjBFOUFFMUIwRDFDNTY3Mzc1M0M0M0JBMDc2N0Q2NUQxQjQ1MUNDNjM4MEQ4QkIzQzREQworODFFOEZEOEFBNzlCRTk5MzIxODY4NkYyOUQzQ0Q5MjU1NjZERDU4N0Y1NDFBMERBMUIxQ0MzQkNFQTJFNkM3RAorNUUxMDE2RjY5MTdBODcxRjFCQkFEOTZBRjlFODY3NzM1MDE3MTE5QTM4MUZDRjMzRUIyRDNFMUU3MDkzRkQ5MAorQ0RCMENFRDQ4MThDRkQ5RTIwMUEwMzQzMENFQzcxMzYyMEJFMEQzMjU0MTU4OTMxRkI2NTdDNjg3N0MxQjNEMgorMjQwMzBGMzc3ODIwREE1OEY0Qjk1Q0ZFNjQ1MTA5RjNGMUI4MERCNUZBQ0ZEN0QwNUFFMjkwOUVFRkNGOTVBRAorOUNCMjg2QzhCNkMwNzVDQTIyNjdDMTAxQjczNjEzOTg2MzE4NkMxOTNFMzEwODVFN0M5RkQ4OEVGOEJCRUNFMworOTMzNTQyQzg1MzA5MDEzMzI1QjRCQkZFOUE1QjYwNjc4MEM4NTgwQUJEQTJGNUQwMDY0RUJGQzIzOTM5QjMwNworMDg1NjhDM0I3RjVGMDUzQkYzNjdERUJBMzQ5RkFCQjlGNzYwQzQ0RDEwMEJERUVGQkIwMUYyN0JGQzYxRkNEOQorM0JBMEM0QUUwRkY0RjAzQ0RCNjdBNTlCRjBGQTNFRjU2NUI3MUI2QjQ2NTY3RjQ3Mzg2QTM3QjczREMzRUEzQworODNENjAwNjU5Q0JFNUNGREM5Qjg0Q0UxMUQ2NTlEODMzNTJGNUI2RTlGRjU5OUUwRTI1MjQ0NzA5Q0Y5NDk5OQorRjQ0OTBGNzlDNzY2RkE1NTEzNkNEODVEOEJGNzkzMjAyRkREODEwQTYxODQ0QkNCN0FEQzU3MzZDMzM4QjcyRQorRjZCNkVBQ0Y0MDJFMjI1MDExNjJDN0I5ODVDQUJCRTVDRDY1M0JENEJDODgyRjNDREEzMDZCOEQ4MkY4QzI1NgorRDY2Rjg2QkI4RDgwMDU1NkFENTM2ODNFMzU4MTJFRDYxNDcwRjExRTg0NDRGMEE5N0NBMDk2RkEzN0VFNjNBMworQkJBQkEzN0QyNDA1NDlEOTVENkZBQTVFREU5ODY3RUUyQ0ZFRDdFRjkyOUI4MzNFQURFRkI5RTRFOURCMTlEOQorMkEwMTNEMzg4NEYxQTE3QUVCOTVEMTg5Q0VEMEY0QzgwRkZBRTE4RjcxNzMzNjk3MjAyRERDNEFDRTkxRTZCNAorNjAwMzMyRkI0OUY5NTM0NDRBQTcwMDVFNjVEQTc4N0VFMzk1M0VBMkIwQjkyODcyNjU1M0M3RUMxMzA5QzVGRAorN0IwQjdBQUM1QkQ0RTI1MzU4NjY1NDAwNDNGNUY2ODE1RDcxNzFBQzQ0N0VGNjNEOEI3OTQ3MUI0MUY1MEM5NAorN0Y0MDU0MTkyMDRBODBDMzM0NjNBQjAwMjA1RjUxNTQ1QzdDNkM3MjM1MDVERjY4MjM4RDI1OTFDMjVCNzYyNworN0ZDMEY0QTIxNUIyRjhGMjI1QTExNzYzQTk3QkMyQUMyNUUwNjBBQ0M0RDNENkQzREU5MDY1QThBMjE5N0Y3OAorRUMwQ0RDOUFCNjAzNkY4RTZFODNEMEQwOTlFNzgwMjlDNUE3NTVDMDBBNUYyNEI1RjZFQzQzNTU1ODcwNzQzMAorQzZDOTY2NTI2RjdBQkIxQ0Q2MzVCQUY0QkZEOTkwNDI4MjIzOUEyMjRFREFEODMzMDM0NEExNzk2RkIxODU4MAorOTY1RjM0Rjg4NUYyOENBRkJENTUxOTQxMUZDODMzQTMxOUY4MjY1QjhFOUE5N0FFMDY0QjEzNjRCOUE1QTNBMworQzU5RTE5NjIwQTUzRjgyQjEwOEQ5QzQ4RkQyNDBBNTI1MkQyQUNEQkY0NDk4OTczRTMxQzlGRjNBRDREOTQzRAorMDFBNkY5REVEQzAwNjBFOUFBOEVDMzhERkJFRUI1QTYzREE0QTZGQzk5ODFGM0VENzE4MThDNEYzQkJDREQ2QgorNDY1MjgyNDY5MUMzNjlEMTA1MjgwMUFFNzYxRUM4Q0FCOUVGNDZDNkY4MjBGODg4NzRCMUFCQjhGQjkwN0MxNAorMDNDODk5MEZEODEwNkMzREMxNDg4MkMzRjY1MUJCODlCOUU0NzlCN0FDQkI5NThFMzlDRTQyNzlGODE3M0YyQworNTAzNjlEM0VDNzlCNTY3OUU4RDNCQzQyQjQwQzg5NkIyQTczMTgwRTk0MzAyRkZFMEFBNUE2RDYwNjZDRUMzQworMTE2MTE1MTg5Q0IwRkU1QjA3MDBFODk4RDYyNENDNzcyRTkzMkI0RUNFQzg3QUI3REY5QjcxNDcxRUQ3Q0JBQworQjhCQTg0ODI1RTlCMkY2OTA0MEQzMUNDREQ2NzdCRUE1MUM2QjcxOEUyRDFCODZGNzE4RTNFNEYwNUYxRkExQgorNUIxNDI2NDEyRUMzNTM5RjU0OTlEM0YzMUM3OENBMUY4QzcyRjJFNzY3NDI4NkE5RjlCMjA4NzFBMEM3NkNFOAorRTg5Q0E0MTExRUY2NjI4RkVBNkZCRTdEMjA4NTMxMTFFQkM0MDE2NzE4MUI4QjVEOTczOTE1MDJDOTYwQUQxNQorNTk2RDZCMEQ4MUYzQjNFOTJBMjM4NkQzNzhCQzVCMjM2QkMzNTk0MTk2M0U1ODdBMDhFQzEyNkY3RUVFQTg2MAorODlDQjY0NEZBQzhFNzdFQUNFRDA0OUQ3RUUyNzY3NjBBQUFENjg0RTY4RDAxMjZDN0QyMkYxODBBMTMyRjk0MgorNUY2OEEwM0U3RUYwN0M3MEI1MERDODAyRkFBMDVCQ0Y5RTJFRjNGRjhCM0QzRjdDNTk2M0M0REZCRUI5RDExRAorODk5QUIyNTk3OTA0MkRFOTQwRjAyNTYxMjQ5MjY5QTAzOEI3NkVCQzI5RUNDRkEwRDQ0QzA1NTMxOUY0NzkyQworMkI3QjRDQzQ3QUVDNEM4M0EzNDlGMEYzQjI4MUJGNjJCNjJEQTBGQjBEOEYyNEE4Q0UxRjczMDI0ODE1QTgwMgorRTA4QjlCRkQxNEFCRDYxMUM3QTlGNzY0QzVGOTFBQUI1QkFGMkEyRTQ2RkMyNjk0OTVCMjM2NjEyOUUzREI0NworRDA5RTcwNzU0OTkwMEMwRDE1NzhGRTYwMUU4RUI4MDNDQTZCQjgwQ0M1QTQ4OEY5QjdGMUQ5MjNEQjVEMDZFMworQkYxRTAzREJBREE3MDE2MzlBMjFCOUNEQjY3QkE4QkY2MkQzMDhEQjRDNDYwREFGMThENDYyMkFDMDM5MTJCMgorNEQ5MDRENDE2RkI5Mjc2MDBCNDJGMjcxREUxNUY3Mjg2RTUyRTUzREFENEYyQ0VGQzU0NTg0NUUxQjdBRkYzRAorOEIyNUZEQkI2RTcyMTU3NjlFNDIyNUREMjg0RjZEMzdDNzg1RkRCMEM3REYxODJCNTRDNDQzMTAwRUM1OERGRQorMTgxNjRGRTY1M0I5RTU5NzcxNDhBNkJGNzdCRDA4OUVFQjgyODYwMjRBNzE5REI3MjFGNUQ5RUZDNDZFMURCNQorRERFQTNDRDg4MzE2OTY4NkYwNTM0QjM1RUM5MUJCMkJBNjk3MUY5RkY0NEU4NjkxQTlEOEM4RThDMDI2MkE2QgorRjIwQjE0OTcxNzRDOEE4RkY2QjNBRjEzMjNDNTlDQkE0RTM0ODlCRDg1MjdGRUE2NTJCNDA0QUI1NTJEQkFBQgorRjVGQkM0NEQ3QkNERTQ5NTg5NUE1MDUxNkM2RTlBMTBCQjg2OTFEQkFCMjk1MDZENzAzMTY3MTM0RDU2N0Y4MworOTUxNDE4RjYxMUNFNzMyMzY1OUVFNjBFQUNDODAwMEY2QkIwRjc0NDBDNjVCRTk4MEQ4Mjc1MkNDMzgyMzE2OQorRDJDOTM0NTE0Q0FCNzFGQ0Q4QzhGQ0UxMzlCQTAzREI2QkM3Qjk1NTdFN0IwQkRDMTQ2ODFGRjMzNzBFRDJFQgorQTFCOUMzMTVDMDM1MjhBQTM4MUVDRDM4OUVCNTM4MzMwNzQ2NjhGREE1REEyMjgyRTdFNDQzM0ZGN0I5NDQ1NworQzNBQTI4NzRCRkY3M0ZCMjFBNTU0NDFEM0REMTE0ODlCNUUwQTRFODk0NkQzRjI3M0VERjVBODQ1NTg3QTQyMgorMTkxNTY5NkEwRDFCN0M4Q0JDRTNEMzAzMUE2OURCMzEwMUFFN0Y1NDc2MjhCRkYzOEQ4RTM4M0RBMTZCNTJGMAorM0Q0MjY3NkFCNDU5NzY5RjJCRDUwQzhGM0NFN0E2REMwNDMwQUMzODU2MzYwODc3ODNFOThFNkE0NTgyMjkxQQorRjM0RTNGNjEyMEU1RTIyODJDNzY1RTk3RjhBOTlFQjkyMkJFOThGRUZFQjg2NTg3QzYzRTlCMTAzOTlGMDBBRgorQ0RBQkFGQUQ4QTFFRTM2NzE0OUM0NjE4NTgyQkM4NURFNUQ1N0ZFNkI3RTgyNTRFOEI5QUJGQjlGNEFCODYzNQorNzRBNDQ5RjJBRUMzNUE4NEFERjRFQ0E0OTQwQUEyQUYxMzZEQTYwRUI4Nzk3RUE3MjY3NjM5NzQzNzY4OTNDRQorOEY3OTlFMUY3NUZDMDEyRDRBNDFCRDVBOUE3NjZDRjIzQkU5OENBM0QzMURERUM1OUYyNkU5RTY1MzFBM0JENgorM0Y0REVDOTU0MTY4RDBDRTk0ODMyOUMwREZDMUYyMTJGNzgxQzMxRjg0NDg0RUJFNEFCRUE1NTkyM0M5RkJERQorMzRCRTZEQzAyQjFBOUUwRUE2QUM5RjBEMDcxMEIwRTg4QUI3RTZEODc1MzQ1MjJEOThFQjM5QjQxREY5RDk2MAorQ0VBNEE2NUQ2MzExQzBBQUE2RTE4OTM5OTIyMkVENUIyRjE3MjhDNzIxOEU0NUU0OTkyMzQ0NUZDRDg1ODYzMworQzgwMTk5MjkxNzBDNTBCREY4NDExODIyQUIyNzU5QTNDQjM4OTA4RTFDRDU1OThERDg5RjY4REYwQjkwNTIwNAorMDMwRjE1QzE2QUQ5MzhEQjMzODkwMjYyMzRBRjRCMDY5QjlFREVENTIyMTVBQTJCMjFBQzcyRDUwNUYxRUI1OAorODhFQTZENjFFODE1RUJEODNEMUJBN0E2REVENkY0NUE4RjZBRTAwMzlBRDQxQzg4QzQwNDkyOTlDMUJFQkRGQgorQTQ2NEMyRjU1RUMwNjE5MjZEQjkzREZDRkUxOUEzM0Y5RURBMzk3MUZGMTY4MUZDMDAxQUQzNzQwN0ZBQUNDNAorNTZDQkEyQzQ1MDMxQUJGQjFFOTZFNUFFMUY3RTQ2NDVGQjZBRDEzNzAyNDUzRkI3OUFBRThFRjZCNUQ2Q0E5RAorMUIzQTM3RDRFODBFOUFDRTU3QkY2MjQ5RTNEMURGMzY5NDVEOTQ5M0ZCRjgzQUY3QkI5RjAzOEFFOTZEMzY0RAorNzNDMjEyMDU4N0NDNkFFMjYwMzI5RjA3ODZCRUUzRjI4MkFDRjQxRkQ3REU1QkY4RTdEQ0ZDM0RCMTlFMDlCMworODVDREZGQzVEOTYwOEIyN0Y2QUJBQjJBMENEMjVGQUUxODNEMDZFN0U1NUMwMDJCM0E5MjAwNjMyREQ5RDk2NAorRTgxMDlFQUM5NDZDNEMyNzIwMDZDREJENkNEOEMyRURCMEJDQ0VCN0M1QzI1QzlCNkM3RDg4MTc5NDUzMzUwOAorMjAyOUE5MzZEQTkzNUExNzgwMkYyRUI0MzhCNTQyNUNFRkI1MUNFQzk0QTdBQjdBMTU1OEYwQjEzMkY1N0RCNQorQUJFMzRCNUVEMjM0REIzOTRENTc2NDgxNjczMDcxNEFFM0FGRUQyOEZGMDY5Nzg5Q0Q3NUI3MENCN0VEMUM3QgorMUQ5RjU0N0JGNjIyM0M4OUY5N0M2MkQxREIwMzIyMUE3OTg0NjIwREFGNjhFQkVCOTM0RTJDMUVGNEU5OTAzOAorMEJDOURCQjYwQjg5M0Y4MDc4NDgwRjVCQUI4MUE5ODFGODQ5RkJCOEI2RTlFNjQ1ODlENEJDNzc3QTQ5M0IwOAorNTcwNTc3RjU0MUJDQTg0Q0IwQUFGQUQ0REVGRUNFMjI5QzdFNTA3RUUzMzJFRjdDMjMzNUU2REMwRUI3MUY3OQorMzhFRjE3RURFNjgzMDk4MzQ1MjdFRjlFRjkyQzYxOTIyRTU2MjExODREODUwQTk3NDM3MzMyRkI2Q0Q0MDEyMworQzU2MTUzQ0FENjdBNjM2NTQyMjFCREQ1RjNEMDRFQjI1RDM3MEEzQ0VGNTk3RDVFQzY2NDgzMURFMkRGOTlGOAorQ0Y0MkI3RTY2NTg1MEMzMDYxMEU5MzQ3QUY3QThCMkQyRjY3NTRFMkM4ODA3Q0EwNDkyNTM5NDlFNjNDMEM5QworNjhGQ0UzMjA0NjQ5M0IyRTlFMTYyMkFDNjVGMzBBRDE3Q0JGMzk4NEYyREFFMkI2RDExNUQwOEEyM0IwQjJFOAorQzA1NjhFMjM1NDNFOTNDNzQ4MEM5RDczQTcwNjJCMTJGNzBGMEE1NTZGRDE5N0I5MkFDQTBGRDYwRDE1NzIzNgorRkFENTFEMzZBOEI4RDFFODFDNzY4QTg4QjJFOTY3NkU0NTNGODkyMzFERTgwNTg3N0VGOUE3MUIxQUU4MDY5OQorMUNEMEM0NjNFQzE1OTZCMzJCOTg1REJGQTk3MjVBQjMxRDIzQzQwMDEyQjQ4QkNBNUQ5OTI5NjFDMUZFRDVFQgorQkVGQkNBNzk1MkFFNDY4OTJBMURCQjhDMjVEQUQyMkNBRTQxNTlDQzlCOUNGRDI2QkM5MUVBOUU0QThFNTBCMworNkIwNEIzQzc1Mzk4RTRCMzAzOEJBOERGODhDNTE0MDRFNTJFQTVFOUJENkU4N0YzNUYzNzI5NkJGQkUwQkVFMQorMDcyODlCQUMyOUI3MjUxMEY2REUwMjE5QjYzNjAwOEY5RDUwNjI0OUZFRDNENThCMzNDQjQ3Rjk3NTQwODlEOAorNDc3QjU1RTYxQjBGQkZDNzE2NEI0MEIyRkVBNEU0NUY5OTY2RkQ3QkRENzU4QjI0QkRFOTZEN0U4RkM1RUVEOAorOUZCOTFEMDNBNTEwRUM4RDIwNjNDOTE0RTIyNzQ5N0E0MjUyQzAwNTU0RDc0NUQzNUM3RTJFNTlENEEwM0I5RAorNjZFNzJENjI1OTdDMUZGQjhGOUE1ODg5QzE3NjZFNjcwMTc4OEU4MzgzQTBGOTI4N0NDRDc1RTcyRUZGMjBCQworNzAyQjYwNjMxNEJBRjk1Njc2RkI2OTYzMDJEMjVGMUIxQkY5NDE3MDQ2QTM3RDUzODU4RDJCOEE1QTNGRkVFOAorRkJDMjQ1RDZGOTNERkEwMTQ2MEY5ODE0N0UyRDE1OUQwOUM2MkU3NkI2N0U1MTM4Mzk3NkM3Q0U4NjFENDA0MQorMDc1Mzk0NzkxMDE2QjFFRkI2NDI5QjRGQjkzMDc5MjkzOTgyMEFDMUM1NTNGMkIzRTY2OTFFMDlGMDYzMjY4OQorRjU5QTFBODgzOEFEM0Y4Rjc1OEMwQjc5RDVERTRCRUU4NjQ2MzMyNjRCQUYxMEVFRTBFNkQ1MDFBNUVFOUVFQworMzc1MENENkM5MUZCOUY3RTY3OUEwQjAyODg1RTg0Mzc3NjQ3OTdCQ0MwNjEzOTA1QjlDREVBODc5MThEOUUzMQorRUM2M0Y0RjE0NjRERURFNDcwQzUyNzE3NEIwNzk5NzkwODVCQzAzNDMwQ0NBQzdBOTJGN0RGODNEQTJERUNFMgorRDc3MDk0OUIzRjNGQzEwMTJDMUVFNzUzMUU4NjM3NTMzNTA3QUZCMjA4NjlGMTMyM0VCOTg0MDZEODYzMUU1RAorRUREREVGNTdEQUU2MEVEQjI2QkY2NkRBQjE4NTYxNkQ0MjQ1RDBGQTkyQTMxNEYzOTk1RThDNzI2MTQ0MzE2NQorQTgxRTI1MDM1N0Q4NEEwNjQyMzk1RDA5QTAxN0UzMjRBMzgxMDQ4RDhBOUFDN0Q0MkY3RDFEQzQ3MTI1MkUyNgorRENGQzI1RUFBQkU4QzEyRTU5MDQ1QzBCQzJGNzkwQzhDNzFBN0JCNkMwRkFGOTE0OTQwQkI3ODMxMEMzOEE1MgorNzRBNkEzRDNCMTkzODIxNzFCOEU3QUY4QTlDQUUxMDUxMkU5NDJEOTI4QTUyRjEwRDQxMzRGQjY2QzYwQTkxNQorRkI2NjNBNkJFMzFBQjI3RjZGN0FGMkYxMjFGQjZCRjFBQjc5Qzc2RUVBM0JCRENBMzkyRjRFRTY0REY5M0VDNAorQUY1RDI1MjhFNjZFQ0E3N0UxMzRFQzNENDM2OEUwQUQ4MDU1RDc4MkQ1QkNFMkU0M0Y1ODMwRjM0QUQxRDY0QgorOTc5N0RGMTQxNjA0NjMyNjI5MERDRURGM0VBMDcxNzUzODFBOEMxRDI2OEI1QTZFN0M3Qzg2NEFGNTlFRTlBNworMUUxMDQyRUU1RjIzRDMwM0RCMUIwQTk0MEQ3QzQwOTUwQjRGN0M2MEE3OEFFNjM3CiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCitjbGVhcnRvbWFyaworJSVFbmRGb250IAorJSVCZWdpbkZvbnQ6IENNVEkxMAorJSFQUy1BZG9iZUZvbnQtMS4xOiBDTVRJMTAgMS4wMEIKKyUlQ3JlYXRpb25EYXRlOiAxOTkyIEZlYiAxOSAxOTo1NjoxNgorJSBDb3B5cmlnaHQgKEMpIDE5OTcgQW1lcmljYW4gTWF0aGVtYXRpY2FsIFNvY2lldHkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisxMSBkaWN0IGJlZ2luCisvRm9udEluZm8gNyBkaWN0IGR1cCBiZWdpbgorL3ZlcnNpb24gKDEuMDBCKSByZWFkb25seSBkZWYKKy9Ob3RpY2UgKENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZCkgcmVhZG9ubHkgZGVmCisvRnVsbE5hbWUgKENNVEkxMCkgcmVhZG9ubHkgZGVmCisvRmFtaWx5TmFtZSAoQ29tcHV0ZXIgTW9kZXJuKSByZWFkb25seSBkZWYKKy9XZWlnaHQgKE1lZGl1bSkgcmVhZG9ubHkgZGVmCisvSXRhbGljQW5nbGUgLTE0LjA0IGRlZgorL2lzRml4ZWRQaXRjaCBmYWxzZSBkZWYKK2VuZCByZWFkb25seSBkZWYKKy9Gb250TmFtZSAvQ01USTEwIGRlZgorL1BhaW50VHlwZSAwIGRlZgorL0ZvbnRUeXBlIDEgZGVmCisvRm9udE1hdHJpeCBbMC4wMDEgMCAwIDAuMDAxIDAgMF0gcmVhZG9ubHkgZGVmCisvRW5jb2RpbmcgMjU2IGFycmF5CiswIDEgMjU1IHsxIGluZGV4IGV4Y2ggLy5ub3RkZWYgcHV0fSBmb3IKK2R1cCAwIC8ubm90ZGVmIHB1dAorcmVhZG9ubHkgZGVmCisvRm9udEJCb3h7LTE2MyAtMjUwIDExNDYgOTY5fXJlYWRvbmx5IGRlZgorL1VuaXF1ZUlEIDUwMDA4MjggZGVmCitjdXJyZW50ZGljdCBlbmQKK2N1cnJlbnRmaWxlIGVleGVjCitEOUQ2NkY2MzNCODQ2QTk3QjY4NkE5N0U0NUEzRDBBQTA1Mjk3MzFDOTlBNzg0Q0NCRTg1QjQ5OTNCMkVFQkRFCiszQjEyRDQ3MkI3Q0Y1NDY1MUVGMjExODUxMTZBNjlBQjEwOTZFRDRCQUQyRjY0NjYzNUUwMTlCNjQxN0NDNzdCCis1MzJGODVEODExQzcwRDE0MjlBMTlBNTMwN0VGNjNFQjVDNUUwMkM4OUZDNkMyMEY2RDlEODlFN0Q5MUZFNDcwCitCNzJCRUZEQTIzRjVERjc2QkUwNUFGNENFOTMxMzdBMjE5RUQ4QTA0QTlEN0Q2RkRGMzdFNkI3RkNERTBEOTBCCis5ODY0MjNFNTk2MEE1RDlGQkI0Qzk1NjU1NkU4REY5MENCRkFFQzQ3NkZBMzZGRDlBNUM4MTc1QzlBRjUxM0ZFCitEOTE5QzJEREQyNkJEQzBEOTkzOThCOUY0RDAzRDU5OTNERkMwOTMwMjk3ODY2RTFDRDBBMzE5QjZCMUZEOTU4Cis5RTM5NDhGRkIwQjRFNzBGMjEyRUM5NzZENjUwOTlEODRFMEQzN0E3QTc3MUMzMTAxRDZBRDI2QTA1MTMzNzhGCisyMUVDMzY0MzA3OUVFQ0UwQzlBQjU0QjQ3NzJFNURDQTgyRDBENEFDQzdGNDJGQjQ5M0FBMDRBM0JGNEExQkQ2CiswNkVDRTE4NjMxNURCRTlDRkRDQjFBMDMwM0U4RDNFODMwMjdDRDNBRkE4RjBCRDQ2NkE4RThDQTBFNzE2NENGCis1NUIzMzJGQUQ0MzQ4Mjc0OERENEExQ0IzRjQwQ0IxRjVFNjcxOTJCODIxNkEwRDhGRTMwRjlGMDVCRjAxNkY1CitCNUNDMTMwQTRCMDc5NkVFMDY1NDk1NDIyRkJBNTVCRUU5QkZEOTlEMDQ0NjREOTg3QUM0RDIzN0MyMDhGQTg2CiswQjExMkU1NUNFN0IzNzgyQTM0QkMyMkUzREUzMTc1NUQ5QUZGMTlFNDkwQzhFNDNCODVFMTdFQ0U4N0ZBOEI5CisxNDg1ODMxNjI0RDI0RjM3QzM5QkY5OTcyRDc0RTZFQzQ3ODQ3MjdBQzAwQjlDNEEzQUQzREExQzIyQkQ2OTYxCis3RTBBREFGNTU0MjJGMjJBQ0E1RTREQ0Q0REY5RkNEMTg3QTU2NkI3RkI2NjFEMDUzMDQ1NEQwREQ2QzZDNTBBCis3QTM4NzVDNkNCRjhFQzc3NjlGMzJBMUYzRjdGQzFDMDcyQkFERUM5Nzc5NEQ0RTkwRTAwMzUyODJBMTcwNDAyCiszNTZFNUE5Q0Q5QUJEODBBQzQzNDJBNTI4M0U0NThBNzI2OTI1MkY0NTQxQ0JCNjQ1MkIzOUVENTREMzM2RDBCCisxOTkyOEU5Q0QxQUIyNkFEODNFQjIwOUUyRUM3NTAxMUEyNjQzODEzMDUzQjVEQkIwMjQ2MDk3QzQ4MjFCNUYyCitDOTI1NTRFOTE0MEJFMzVCMkRCRkNEOTg4MDlBOEVDOUZDOTEwRkRFOUUwRDg2NDU3QzcwQUNCMDU2RUJGOTBGCisyNDREQzBBNUJCRDQ1NUUxNUQ2RTMxODAzMTFENTJDRjUwQjBCRjdEMEE3RjY0RjNBMTgyMUUwQUVEQkMyRTdCCitBRUI1NDlGRTFENTEwODhDMTUzNzk5QzZFMDg5QjVENUQ2NUUxQzRFMkQyQjQzMENERjFGRkEyM0NDQjI1RDk1Cis1QzQzQzg5NDI0MzVEMEFBQTNEOTA1NUZGODA4RjJDM0M4ODdBM0M0NjlCQkQ5OEYwMjZEMEE1OUUyNkJBOUY5CitDMjE0NENGRTQ5QTlBRDg5MkQ0RDMxNzY0RjBBRTNBMTA2NDRBRTM5NjZCMEE3OTA2ODRCMTREMTFGQTQ5Nzg1CitFQzU1NjVEMkIyRTU4NENCRkQ4NTEyNUYzRkFDMTMzMzM4REUzNTM2MTk0M0RDRTlBRjA1RkNGMjg0MENFNTEyCis5OThENDJDQkVDNTJCNTdCNzlERDYzRjAwOTg1ODgxRTg0NjMzOTZBREE0NzE4OUE5NERERjk1MUE3ODg2NkYwCitCOEEzRDkxOTdFMzkzMzUyNzdFRjIyOTQzMDhEQTcwMDY1RDkxMDk0M0EzNEY3RDVGMjA5MEZCNEFBNDJFRDcwCitDQkE0NjlBOUY2NEI5NUE2RkJBNEJDODlEQkM5Mzc2NUUzQUU0NzIzMTYyREYzRjlENkJERTc3REQ1ODcwQURFCitDODkwMEQ2MzQ2OTU3Qjg0QzNDRTg4QThGOUExMkQ0NkI4RkNBNTBERjQ0MzNCMEI4QUVENkE2M0IzREExMDJCCis2REY5NEU2MjQwOEUyNDE1NEJBQUM2NkIyQjI0OUM2OTVCQzBGQTM3QTI4Njk5RDlDMEYzRUU5NEFBMzJFM0M1Cis4RjhEN0Y4MDNCNUQyNTAxNEQ0M0EzNTNENzE5QjE0QjI0N0E4Nzg5OEE5NjBERjY4QzBDMEJBRjcwQzgzOTE3Cis2RTlGN0IzQUNDNjREQkFFRjNGRENEM0E4MEMwQUI5MDdFRTM0MkU1NDNENjA3NTU2Q0JFNUE5MDg5Qjg2RDFECitFNzY4RjI3RDc0QTYxM0YzQUJGODgzMjIyQTg1OTZCNTQyRUJGNTRFOURDRTMyN0I1NjgyQUVFNUY2QkNDMzhBCisyQTA1MkVDNDAxOEFFMzE4OURDMTk2M0JBMzlBQ0RFRDhGMEM2MEM4M0Y4ODczRkJCRjAzMDIwMTA5NTZDNTIwCitBN0YzRjhFQ0QwRjE3N0VERjVGNEQ1NTIyQzU5ODRBMzY3OEZGMzJFRUVCNTcwQjY5QzE0MkFCODk0Njc2NDFGCis5MTcxNTVENjQ2REFGMzM1MkUyN0JGMkFBMDc0NkUwNjJFNDg1MzIyNTZBRjM2NEVGQzBGMEFBRTM3NkU2MjRFCis5QUQzNTg0QTUxOEVDM0ZBRjExQ0NFMkE3ODRDQUNGQTIwRTVDQzJDNTYzRjA1MDEwOEU1QTMxRjI0QzNDQUFECiszOTUzMEM5ODYyMDc0MTlFMDZEMDYyQzA0QTc5Njg2NkEzODk5MzdBRTEyRUQ2ODgxNTFERkFGRjc2Q0ZEOUFBCiszREFEQjcxOEQ1RjgzMEVBNTM3NUY4NERGMUI1RTE5RkVBOEVGNTJEMTMzMUUyQkY4REQ1QkQ0NjgyM0JFQ0M2CitFRkQxNDhCOTBGRTFFQTFDOTI2QkE1M0UyOTAwNjY2OUNENjVGMkI4RkNGODc3N0M4QTA4QzQxMjlBRUY1NTZGCis4MjNCNDE3QzFFQzYwRDREMjFEREY2M0FGNjRGRjE3QUUzMEIyNUU3MDU2RDQwQTlEMEI0RUMzQ0JFRTVBQTI5Cis5RjUzMjVBQjY1RjJEMDQzMDYzMUFFQTg5Q0ZGQjIyMjZBNjI5Q0NBRjc1MzEwMTBERkE2OTFBODcwQjExRUY5Cis5QzJBMTRGN0I5NzRGRTZBRUE2MjE2Njk4NEU2QkM5QkZFQkUzMDQzODc2MTk3REIzNkEwNjgxRTc3OTE2OTc3CitBMDJFNjIxRjM1RUQ3MzI4MzRENERGOENBRkZCMEE2NkNDRDFBMDBGNzQ0QzNENzk0MkE1NkIyQ0VEREM0QTM5Cis2QzQwMUYzMTgyNUE4RjZBNkI3MDFGOEE5MzZDNjIzOUE0NkYwNUVEREMyNkVGMTEzRDg1QTI3MzVBQkNDOENFCiszQTYxMEM5Q0FCNjQxMDVEMjc0NzUzMzYwRDM5Mjc5RTc3M0E1Mjc1NzIxODE2RTZFOTAwMjkwODFGNDAxNzMyCiszRTM0NTRCQUIxQkRGNTc2NEUyNDc3NTAwNzIwMUU5RTFGMUI0NjM3QUNEQUUwQzFDRjFGOUQ0RTlFMTM4RkVBCiszNDc1QUFDRkJEOTU3N0E3NjQyREU5NDZFNjc0MTA0Q0RBNjczMjE0QzVDNDcxRjA0MjhBMjg4QzNFRjcwRjc3CisxNTg4RDcxODA3NjgxNkYwMjg1QUZGOEI5OUI3RTY3QzE1RjlBMkQxNzEzQUFBMzA4NTE3QTVCRTMyQjkxM0U1Cis1Qjc5NjU0QUZGM0IxNDc3QkI2MkUwQTJBQkMxOUE4Qjg2MzBGMURFRTFDRUZCMUIwREZGOEI3QUI3QTJGODNCCis1MDM0QUJCMEEyQURENkVFMDVBNjVBNEFFM0IxMDUzMjI5NDYzNjcyMkRBNzA1MDUwMkVENDUxODNDRDlCNkU4Cis0Njk2MkUzOTZGMzY1MTkwOUMwODM0QTg2M0E0MkNENjdGOEIyQjcyODExNkMwNDIxNUE2NkM4QUEyRTlCNTQ0CitDQzI5Qjg4Rjg3RTNGMEIxRDkwRUI1OUIxRDFERjg1Mjc2MzlCMDRFMjY5NjhDQjQzMkQwMDQ2N0JFQkI2NDI1CitCRTMyNTk5OTlGODM2RDIwRkM5QTFBQzYzMTI4RjZGQkY1NURCOEE1NTQ4RUI5RTAwNUVBMjcwNEIzODkwRERBCitFMUUxM0I1MjY0MzZDNDhDQjg2RERBQUUyREFFMkE0NEY2QzREQTg5NDIzQTc4RTJCRTY2QjFEQjQ2NDRGODlECis1NTk1REI2REU2OTc0NzcwNDlCOEJCOUI3MEFERDBBOEI5OEVGMjQxRjI5RDEzOTMxRDc2NkZENzgyODQ3N0NDCis0MzU1MkJBNDczMDY0NUVBOURGMUM4MTQ1NEI4QTI0OURFNzZBMkU4MTQ5MTUxRTA2QTkxM0EzQ0Q2QUQwMDNECiswNzU5NkYxNjM5ODJBMEI2MTMzMkIxNjBGNjMyNkI4QjZBQjM1MTY1OTExNzU2NzAzQTdGQTUxREUzRjUwMUY1Cis0NTJBMzMyRDBCRUE5MDVFMkNBMjg2QThEODkxODBFQTE5RjdGOUEzRUZCQjAzOUUyRjZCMDk0RTI4QjJGMjUwCisyOTQ5OEY2MjQ3QzM5QjAzQTU4NDkzMUI0NzYzODU1MzZFQjVCNkVDNEFEODMwQTAzMzQyQjA0OTAzRTUwN0VFCis4RThGRDUwNzc4NzVDNEY3OTY5ODJFRjI2RUFDQzk5NzIzREYyNkI1QkI2NzlBNkUwOUMwMkE4RUM0QjE5QjQwCitEOEMyNTgwQjQ0OTgxMzhGRjE3RDgzRTI3QjA5QTdDRDMxNDQ0RTBBQ0Q2OTBGRDA3OURDQTZCOTZEMzAyQUMyCisxQkQxMjQyNUI1QzdCMUU0RjM0MkQ2QjhCRjlGOEJDRDdGRDc5OEQ3MTFBMTcxRTU4NUY5ODM2MkUzQzFFMDk5CiszQkJBM0QyN0FFNjExQThGREE5QkFENUEzQTU2MjZCMzk0Njc2RTZFRTlCQzUxMkU0OTA1MUEyMEMxQzY4MzY2CitCNjhFNjVDQTFDQTE5QUE5NEI5MjU1MTYzQzAyMzlBMUZEQThFMTNCNjU1Mjk2N0U2NjMxNDQ3Q0QyNEZDQThCCitDRDEzQ0VBMjBDRTg5MzQzOUIyREE3NUNBM0Y2RjA0NUM3MTdGNEU3N0FCRjMwRUZEQTdBNkQ1QUFCMTlCNTc0CitGNEQ5RjYwNjdBOURGMjAzQUQ3RjQxM0JFRTJENkExODFDMzAwNzJBMDk4NEQ3NDAzRkRFMzFEMkM2N0FFRkU1Cis3MEY0QzlBNzIxMTE4MDhCNUZCQUYzRkE1OTQyREZCNzhBNDg3M0M3REMyRjMxMjRCMTQ4MEQ1NDgzMEE4N0MzCis0MUI3RTJDOTMwNzVENDYzRDRGNTM4NzM1NUJDRUYwRkM3NzBERjU0NEI2NEQ1N0E2NDYyRkE5M0IzOTJGNzY0Cis2ODRBRjMwMDJENjU1M0U1NTBCRUUxRDNEMTlGREY3RTUyRkREMUM4NDRGMjhFMjU5Qjk0QTcwMzMzQTZGNjkxCitCM0ZBQjA2Q0JCRkE2OTIzOTcwMEJGQURGMERDQTdCMDQ1RUM1MzEzMjlCN0YyNDI4QUU5NEM1MjVGRjZEMkYwCitDMzFCRDhCQ0IzNDNFNTE1RTI2RTM3MEJDODU3QjZDMTYxMUI1MTg4NEU0Njg3NzdENDBDMTA2MzFEQUNBMDY1CitEMzVCMEMwNTg4NjNFMzJFNDA2RjQ2NzAyOUI5OTM1OTExNkUxRTI3RUQyNjBEREZDOTIwMzU4QkUwRDU1NDM0Cis4OTBCRjdFQzFBRjg4QkNDRUU2NzdCNkEyRTE4N0U5RDk1RjJBQ0NEOEZFNjBBQ0RDMDlFM0ZEOUE4NjE3MUQyCis3NkIzQTAzMDEyNjc2Q0FFMjM1ODYwQkYxQkQ2RDAzNkY4RjEyQzEzMDA1RjAyQjQzODZEMzQ1REMzNjlBNDZECiswMjM3MDA5NDEzOTY4RTQ2QzlDNzMxNkUzREVGQjFERDVCRDI2RDZGM0JFQTQ3N0MwMEQ3OEJDMkJBRUQxMTlFCiszNzJBNjdCNUVBRkNERDMxRERDNzZFMDkyNUVCMDQ5NDMyQjMwNkYwRUI4MzUwMjE1QjUzMjM2MDIyNzE3MEEwCis0MkMzNTJFQ0E5MDIzQjY3MzcxNDcyRDc0MzM0RjY1OEM3QjcyRjNEQ0RCN0MyQzdCNDE1MTYzNERGN0I5RUQ4Cis1NEU4OTA0ODdGQ0RBOEQ2MjA1QUE2Nzc4NjU0RjFGRjg3MzczQzREQjZENTZCNTFCRjNCOTJBMjhDMTk2OEExCis2MUMzMjY2QzY2RDVEMkRGQTM0MUFFRUJDMTJCMUY1RkRBOTJFNThCNzIxREUwNzE0RjUzRUNBMDVCMTVEN0QyCis2MUMzRURCQTdDMUEyRTBBQUFEOTAwMzVBNTc4OUI5Qjg5M0JFNTJCNzM0NTUxNzA3QTkyMzM3RkJEQjhGQkJCCitDQjREMkNGQzAxRTczM0M1QUJCNzU2MzJEOTJBMjA0NzE2QkMxQUNDMzFDQThGOTA1NTk3RjM1NjY4QUU2RDVDCis1NEFCMTFERUM4MjNGM0Y2QjFGOEZGNzQ0RjQ1NEYyRDUwODMxNTc5MzlBM0ZGMTYxNEQwOTE4NjJENkY5REM2CiszOEIwMDdDM0I5NjhFQkY2NzRFMjI0RTFFMjAwNDZFMTVBRjFEQUE5NjQ3MUE2MTExNEI5QzVCQjRFODc2ODA4Cis2MzBCNEY3OUFDMkI4NUIxRDBERjU4N0RBQ0JEOUE1NUZDRjJCMDVDRjQ3Njk1NDdFNUI3OTNCQTg2RTdCMTUwCisyNTNEMTU0N0VCRDEwRkQ0NTI5QjZGRTdBREU0ODdCOTczNjQ0NUIzMkJGRTUzOUJERkZBREYzQ0RBQkJGNDQ2CisKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKK2NsZWFydG9tYXJrCislJUVuZEZvbnQgCislJUJlZ2luRm9udDogQ01CWFRJMTAKKyUhUFMtQWRvYmVGb250LTEuMTogQ01CWFRJMTAgMS4wCislJUNyZWF0aW9uRGF0ZTogMTk5MSBBdWcgMTggMTc6NDY6MzAKKyUgQ29weXJpZ2h0IChDKSAxOTk3IEFtZXJpY2FuIE1hdGhlbWF0aWNhbCBTb2NpZXR5LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorMTEgZGljdCBiZWdpbgorL0ZvbnRJbmZvIDcgZGljdCBkdXAgYmVnaW4KKy92ZXJzaW9uICgxLjApIHJlYWRvbmx5IGRlZgorL05vdGljZSAoQ29weXJpZ2h0IChDKSAxOTk3IEFtZXJpY2FuIE1hdGhlbWF0aWNhbCBTb2NpZXR5LiBBbGwgUmlnaHRzIFJlc2VydmVkKSByZWFkb25seSBkZWYKKy9GdWxsTmFtZSAoQ01CWFRJMTApIHJlYWRvbmx5IGRlZgorL0ZhbWlseU5hbWUgKENvbXB1dGVyIE1vZGVybikgcmVhZG9ubHkgZGVmCisvV2VpZ2h0IChCb2xkKSByZWFkb25seSBkZWYKKy9JdGFsaWNBbmdsZSAtMTQuMDQgZGVmCisvaXNGaXhlZFBpdGNoIGZhbHNlIGRlZgorZW5kIHJlYWRvbmx5IGRlZgorL0ZvbnROYW1lIC9DTUJYVEkxMCBkZWYKKy9QYWludFR5cGUgMCBkZWYKKy9Gb250VHlwZSAxIGRlZgorL0ZvbnRNYXRyaXggWzAuMDAxIDAgMCAwLjAwMSAwIDBdIHJlYWRvbmx5IGRlZgorL0VuY29kaW5nIDI1NiBhcnJheQorMCAxIDI1NSB7MSBpbmRleCBleGNoIC8ubm90ZGVmIHB1dH0gZm9yCitkdXAgMCAvLm5vdGRlZiBwdXQKK3JlYWRvbmx5IGRlZgorL0ZvbnRCQm94ey0yOSAtMjUwIDEyNzQgNzU0fXJlYWRvbmx5IGRlZgorL1VuaXF1ZUlEIDUwMDA3NzEgZGVmCitjdXJyZW50ZGljdCBlbmQKK2N1cnJlbnRmaWxlIGVleGVjCitEOUQ2NkY2MzNCODQ2QTk3QjY4NkE5N0U0NUEzRDBBQTA1Mjk3MzFDOTlBNzg0Q0NCRTg1QjQ5OTNCMkVFQkRFCiszQjEyRDQ3MkI3Q0Y1NDY1MUVGMjExODUxMTZBNjlBQjEwOTZFRDRCQUQyRjY0NjYzNUUwMTlCNjQxN0NDNzdCCis1MzJGODVEODExQzcwRDE0MjlBMTlBNTMwN0VGNjNFQjVDNUUwMkM4OUZDNkMyMEY2RDlEODlFN0Q5MUZFNDcwCitCNzJCRUZEQTIzRjVERjc2QkUwNUFGNENFOTMxMzdBMjE5RUQ4QTA0QTlEN0Q2RkRGMzdFNkI3RkNERTBEOTBCCis5ODY0MjNFNTk2MEE1RDlGQkI0Qzk1NjU1NkU4REY5MENCRkFFQzQ3NkZBMzZGRDlBNUM4MTc1QzlBRjUxM0ZFCitEOTE5QzJEREQyNkJEQzBEOTkzOThCOUY0RDAwNEI4MzZEMzRFODhDMjBFRUI1MjdDRTExMjQyMDkzODhBMkRGCitFMjdBOERGMjk4QTI2OTNBOUQ1Mjk5MTZBQTBCMjE3NkU2RUQyMzdGNjlEODRBOEZFRUIzNjg2MUQxODQ3MjA3CitCRTJCRDYxQzZBNDEyRkZGRURGRjEzQUZFQzMyQUM3NzM1QkNDRTU5NjVGNTk2NjQxOEE2MkVDQjk5MTEyQUIzCiszQkM5MzhFQzU5MEZGNjkyMjY1OTEyNUVCNjdFMjYwQkYwMjg4NUU0OUJBNjAxOUU2OTZEMzNGMEI1MzYwNkEyCitGNTE1RTBDNDVGMzIzMzExNjEzQTk0QjgzODQ5MUJBQjlGRTIzMEM1Q0M3OUQyMjkyNUUzRDg4Mjc5OUYyNzA3CitDMzI5NzVBNDk0RjBGOTUxM0U0RDgzMzJFN0U1NDQ3MEQ5NzIxRkJEMzQ1Q0RCQjQ4Mjg2RjJGMTlDQzZENjZFCitCQjYzMURENjQ3NkE1MDkxNjdBNDlDQTUyNUE3MkNBNTBFODJDMUQwOEMyQjM3MkRCNTRDNTk0OUM3NTNCNjMyCisyMDA5Qjc2MUVCOTA0OTJBQ0QzQ0JFNkEzNUNFMUI2NkYzQkM0RDhEQzM2ODI3Q0U0MjYxQTcwMzMyODQ1MUQxCis4Nzk0Mzg0Nzk5MTdDMTY0Nzc3Mjk5OTE3MURDQ0YxNDkxQTFDOTA4NkUwQzYzOTM1MDY3NjhGODc1N0JEODFECisxNDFDNDZFQjlCRjUwN0VFQzI5OTYyQTAwNzJCNkM1RDhDODU4OEYzRDY4ODg2Q0QyNjA2REQzQkQyRkVDQ0VGCis2MzI0NTQ5NEU5M0VFQTEyQUFGQjA2MTEwRTU0QURDNDQ0QzdFNzYxOTYyN0E0OEE0NjQzOTRFNURFMDZFQjQ2Cis0Qzc2QTJGRjAxMDMxOEJCRTQ4QjM3NzZDODI2QTI2NUM2NjUxNTcxN0Y3RjJFOTQzQzYwRUJBQjIzRDk2QjVCCitGRDUxNEExQzRFNzlCQjNEM0QyREVCOTM2RjkwQ0QzRkFCRjdCMDlGRjdGNTY0QUI1Q0Y0QUY2QTQwRTg2OUZECiszOTU4ODVBODhGNEExMzhCM0NBNjk0M0EyRDQzMEJCRTQzRDkxRjdGMTc2MjFDQUY1MkZCNzE2MURBM0IyMDAzCis4MjI0NEZCNkVFNzkyRENBMTcyMkMwMzM5MkMyOTZDMDI5QTJEQ0M1QkFBQjNFQTAzRjhERUIwMzlEQzgzQUUxCis3NjNBQUI4NDc3NkEyQ0NGRkFFOUVBRjBCRkRBRTQxN0U4QkU2ODJEMjM3RkZFREFGMjI0QUMwOUM5NjY1MDE5CisxNjVDRTMyRjUzNDlFODU3MTc3RDk0QUQ2Mzk2NTcwOTMyRTE2NTdBREU0RDNGRjU3QTM0MTk5NDZDQ0QyMTBFCis1N0U1QTFEOTFDRjcwODM5NTk0MjUyN0QxMjc2MDYzNTA5MjRENzFCQzIxQzZGOTY5Mjg4QjFDOENBMzQwNEVECitFNjIxOTk4NUY3MzAxQTIwNjIxMzY4Rjc0NzQ3RUFEMzg5OTBBNEM5RjJCNjI5MTNCOEZEQjkzNjU3NDA5RkY1CisxNzhEQUE3Qzk3QzM1RUFGQTQ3Nzc4Q0UwM0U4NjMzMDM1ODJEOEE5OTAwRUY0RjhEQTg3OURFRDU0QkFDRDdBCis0QTUwQzE4QUEyRUQ5MDZGQzREQzA3M0IxRTZDQTFFMzg1NUFENUI3Njk4RUY0QTk2Qjc3REJFMTlBMTIzODJBCitDRkE4NzE3REUyMzBDQjYxODJGMjI1MDg4NUI4RTkwQUM0MkE2NjQ4NEE3QjUyNzA2MUIyMjNBNkQxQ0M3MkQ0Cis4OTAzNTlFN0UwNDY5MEJGRkE5OUZBQjVDQzk5OTlGMDg3M0E5REJFNDlFMzNGNzlFNDgzRkFENzIzMTNERjlBCis3QjdEOTI2NDYxOTg4QzIzQ0NFOUY3MUFCN0JCNjNCREIyQjEwQjNGNzgxNzYzODBBRkZDMTU0ODI1QzlCRENFCis4MjMwM0ZCRkMzQjU5RTA3MDQzODk4NEMyOEQxMkU4NjU1QkJCRjA0OTEyNUJGNTZERDJCMERFOEMwNDUwRTU1Cis4MjgzMkRBNTlFQkVCMDAxQUFEODZGMjMxNzQ2MEREN0VEMjY0NjExQjkwNDM2MTQyMjFFQ0YKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKK2NsZWFydG9tYXJrCislJUVuZEZvbnQgCislJUJlZ2luRm9udDogQ01TWTEwCislIVBTLUFkb2JlRm9udC0xLjE6IENNU1kxMCAxLjAKKyUlQ3JlYXRpb25EYXRlOiAxOTkxIEF1ZyAxNSAwNzoyMDo1NworJSBDb3B5cmlnaHQgKEMpIDE5OTcgQW1lcmljYW4gTWF0aGVtYXRpY2FsIFNvY2lldHkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisxMSBkaWN0IGJlZ2luCisvRm9udEluZm8gNyBkaWN0IGR1cCBiZWdpbgorL3ZlcnNpb24gKDEuMCkgcmVhZG9ubHkgZGVmCisvTm90aWNlIChDb3B5cmlnaHQgKEMpIDE5OTcgQW1lcmljYW4gTWF0aGVtYXRpY2FsIFNvY2lldHkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQpIHJlYWRvbmx5IGRlZgorL0Z1bGxOYW1lIChDTVNZMTApIHJlYWRvbmx5IGRlZgorL0ZhbWlseU5hbWUgKENvbXB1dGVyIE1vZGVybikgcmVhZG9ubHkgZGVmCisvV2VpZ2h0IChNZWRpdW0pIHJlYWRvbmx5IGRlZgorL0l0YWxpY0FuZ2xlIC0xNC4wMzUgZGVmCisvaXNGaXhlZFBpdGNoIGZhbHNlIGRlZgorZW5kIHJlYWRvbmx5IGRlZgorL0ZvbnROYW1lIC9DTVNZMTAgZGVmCisvUGFpbnRUeXBlIDAgZGVmCisvRm9udFR5cGUgMSBkZWYKKy9Gb250TWF0cml4IFswLjAwMSAwIDAgMC4wMDEgMCAwXSByZWFkb25seSBkZWYKKy9FbmNvZGluZyAyNTYgYXJyYXkKKzAgMSAyNTUgezEgaW5kZXggZXhjaCAvLm5vdGRlZiBwdXR9IGZvcgorZHVwIDAgLy5ub3RkZWYgcHV0CityZWFkb25seSBkZWYKKy9Gb250QkJveHstMjkgLTk2MCAxMTE2IDc3NX1yZWFkb25seSBkZWYKKy9VbmlxdWVJRCA1MDAwODIwIGRlZgorY3VycmVudGRpY3QgZW5kCitjdXJyZW50ZmlsZSBlZXhlYworRDlENjZGNjMzQjg0NkE5N0I2ODZBOTdFNDVBM0QwQUEwNTJGMDlGOUM4QURFOUQ5MDdDMDU4Qjg3RTlCNjk2NAorN0Q1MzM1OUU1MTIxNjc3NEE0RUFBMUUyQjU4RUMzMTc2QkQxMTg0QTYzM0I5NTEzNzJCNDE5OEQ0RThDNUVGNAorQTIxM0FDQjU4QUEwQTY1ODkwODAzNUJGMkVEODUzMTc3OTgzOEE5NjBERkUyQjI3RUE0OUMzNzE1Njk4OUM4NQorRTIxQjNBQkY3MkUzOUE4OTIzMkNEOUY0MjM3RkM4MEM5RTY0RTg0MjVBQTNCRUY3REVENjBCMTIyQTUyOTIyQQorMjIxQTM3RDlBODA3REQwMTE2MTc3OURERTdEMzFGRjJCODdGOTdDNzNENjNFRUNEREE0QzQ5NTAxNzczNDY4QQorMjdEMTY2M0UwQjYyRjQ2MUY2RTQwQTVENjY3NkQxRDEyQjUxRTY0MUMxRDRFOEUyNzcxODY0RkMxMDRGOENCRgorNUI3OEVDMUQ4ODIyODcyNUYxQzQ1M0E2NzhGNThBN0UxQjdCRDdDQTcwMDcxN0QyODhFQjhEQTFGNTdDNEYwOQorMEFCRjFENDJDNURERDBDMzg0QzdFMjJGOEY4MDQ3QkUxRDRDMUNDOEUzMzM2OEZCMUFDODJCNEU5NjE0NjczMAorREUzMzAyQjJFNkI4MTlDQjZBRTQ1NUIxQUYzMTg3RkZFODA3MUFBNTdFRjhBNjYxNkI5Q0I3OTQxRDQ0RUM3QQorNzFBN0JCM0RGNzU1MTc4RDdEMkU0QkI2OTg1OUVGQTRCQkMzMEJENkJCMTUzMTEzM0ZENEQ5NDM4RkY5OUYwOQorNEVDQzA2OEEzMjRENzVCNUY2OTZCODY4OEVFQjJGMTdFNUVEMzRDQ0Q2RDA0N0E0RTM4MDZEMDAwQzE5OUQ3QworNTE1REI3MEE4RDRGNjE0NkZFMDY4REMxRTVERThCQzU3MDM3MTFEQTA5MDMxMkJBM0ZDMDBBMDhDNDUzQzYwOQorQzYyN0E4QkZFRjc1QjRERUZBRjM0QjQ0QjM1NkE1MTZCNzY1QUZDREQzRjU0NzVCMUY5Mjg3MzFEMDlEMjE3MAorQjk3RTQwRjEyQ0NFREY0RjZCQjM3NTZDNDczNEY2RTk4RDc0QjdFOTQyQTk1NEIxQkFBQjgzRDRBRDcyN0ZGNgorREY2REM1MEIyMjIzQkNCNTU2OEE3M0ExMTJFNDg2MEFENDkwNTU0RTY0RTc4MDA3M0ZGMzM5OUNCNDY4OEQzMworOUU4ODI5NjY3Q0Q2RUFFRjI1RTBDN0QyRDQ0RjJCQkZBNDBFOTk5MzI1Rjk1NjE1MTQ4NDQyMjFCNTBCQzhGQworNEM3QUQ2OENBNzIyMEQ2OTEyNUMyQUYwNjg0OUEzRTA2OEQxODczMzI3NkYwQzBBNkEyOTM2RDNDMkM4N0NERQorNTlDRDFBRjE0OEM0NEY4NTc4NEE1REFENTY5RjVGRjUzQzA2MTA1NkMwNjdDRTI5QUVGMUUzQkQxRkQ4QjBCOAorNzFBMEE2MzhDREFDNkFFRURCRDUzMzdENDY4M0MwODRCQjYwQjE4NTlFNjAwRjU5Q0I0RTE5QzVGQzVDNjMyNworRUM1NDRBNjgxMzQ0OTZBOUJEMEI4N0Q4M0FGNkZEQTNDQjYyRkJGMEI1NEZBQ0UxRjBFNkEyRDg0QjQ2N0FGRgorMEY2MkRCCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCitjbGVhcnRvbWFyaworJSVFbmRGb250IAorJSVCZWdpbkZvbnQ6IENNVFQxMAorJSFQUy1BZG9iZUZvbnQtMS4xOiBDTVRUMTAgMS4wMEIKKyUlQ3JlYXRpb25EYXRlOiAxOTkyIEFwciAyNiAxMDo0Mjo0MgorJSBDb3B5cmlnaHQgKEMpIDE5OTcgQW1lcmljYW4gTWF0aGVtYXRpY2FsIFNvY2lldHkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisxMSBkaWN0IGJlZ2luCisvRm9udEluZm8gNyBkaWN0IGR1cCBiZWdpbgorL3ZlcnNpb24gKDEuMDBCKSByZWFkb25seSBkZWYKKy9Ob3RpY2UgKENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZCkgcmVhZG9ubHkgZGVmCisvRnVsbE5hbWUgKENNVFQxMCkgcmVhZG9ubHkgZGVmCisvRmFtaWx5TmFtZSAoQ29tcHV0ZXIgTW9kZXJuKSByZWFkb25seSBkZWYKKy9XZWlnaHQgKE1lZGl1bSkgcmVhZG9ubHkgZGVmCisvSXRhbGljQW5nbGUgMCBkZWYKKy9pc0ZpeGVkUGl0Y2ggdHJ1ZSBkZWYKK2VuZCByZWFkb25seSBkZWYKKy9Gb250TmFtZSAvQ01UVDEwIGRlZgorL1BhaW50VHlwZSAwIGRlZgorL0ZvbnRUeXBlIDEgZGVmCisvRm9udE1hdHJpeCBbMC4wMDEgMCAwIDAuMDAxIDAgMF0gcmVhZG9ubHkgZGVmCisvRW5jb2RpbmcgMjU2IGFycmF5CiswIDEgMjU1IHsxIGluZGV4IGV4Y2ggLy5ub3RkZWYgcHV0fSBmb3IKK2R1cCAwIC8ubm90ZGVmIHB1dAorcmVhZG9ubHkgZGVmCisvRm9udEJCb3h7LTQgLTIzNSA3MzEgODAwfXJlYWRvbmx5IGRlZgorL1VuaXF1ZUlEIDUwMDA4MzIgZGVmCitjdXJyZW50ZGljdCBlbmQKK2N1cnJlbnRmaWxlIGVleGVjCitEOUQ2NkY2MzNCODQ2QTk3QjY4NkE5N0U0NUEzRDBBQTA1MkEwMTQyNjdCNzkwNEVCM0MwRDNCRDBCODNEODkxCiswMTZDQTZDQTRCNzEyQURFQjI1OEZBQUI5QTEzMEVFNjA1RTYxRjc3RkMxQjczOEFCQzdDNTFDRDQ2RUY4MTcxCis5MDk4RDVGRUU2NzY2MEU2OUE3QUI5MUI1OEYyOUE0RDc5RTU3MDIyRjc4M0VCMEZCQkI2RDRGNEVDMzUwMTRGCitEMkRFQ0JBOTk0NTlBNEM1OURGMEM2RUJBMTUwMjg0NDU0RTcwN0RDMjEwMEMxNUI3NkI0QzE5Qjg0MzYzNzU4Cis0NjlBNkM1NTg3ODVCMjI2MzMyMTUyMTA5ODcxQTk4ODM0ODdERDc3MTA5NDkyMDRERENGODM3RTZBODcwOEI4CisyQkRCRjE2RkJDNzUxMkZBQTMwOEEwOTNGRTVGMDBGOTYzMDY4QjgyMzI0MjlFRDhCN0NGNkEzRDg3OUEyRDE5CiszOERENUM0NDY3RjlERDhDNUQxQTIwMDBCM0E2QkYyRjI1NjI5QkFFQzE5OUFFOEJENEJBNkVEOUJCRjdEQUJGCitEMEUxNTNCQUIxQzE3OTAwRDRGQ0UyMDk2MjJBQ0QxOUU3Qzc0QzI4MDdEMDM5NzM1N0VEMDdBQjQ2MEQ1MjA0CitFQjNBNDVCN0FDNEQxMDZCNzMwM0FEODM0ODg1MzAzMkE3NDVGNDE3OTQzRjlCNEZFRDY1MkI4MzVBQTQ5NzI3CitBOEI0MTE3QUZGMUQ0QkNFODMxRUI1MTBCNjg1MTc5NkQwQkU2OTgyQjc2NjIwQ0IzQ0UwQzIyQ0FDREQ0NTkzCitGMjQ0QzE0RUVDMEU1QTdDNEFDNDIzOTJGODFDMDFCQzQyNTdGRTEyQUYzM0Y0QkZFQTkxMDhGRjExQ0Y5NzE0Cis0REQ2RUM3MEEyQzRDMUU0RjMyOEExRUIyNUU0MzUyNUZCMUUxNkMwN0UyOENDMzU5REY2MUY0MjZCN0Q0MUVBCis2QTBDODRERDYzMjc1Mzk1QTUwM0FBRTkwOEUxQzgyRDM4OUZEMTJBMjFFODY5OTk3OTlFN0YyNEE5OTQ0NzJFCitBMTBFQUU3NzA5NjcwOUJFMEQxMUFBRDI0QTMwRDk2RTE1QTUxRDcyMEFGQjNCMTBEMkUwQUM4REMxQTEyMDRCCitFODcyNUUwMEQ3RTNBOTZGOTk3OEJDMTkzNzcwMzREOTNEMDgwQzQzOTFFNTc5QzM0RkY5RkMyMzc5Q0IxMTlGCisxRTVCQkVBOTFBRTIwRjM0M0M2NDIwQkUxRTJCRDA2MzZCMDRGQ0NDMEJFRTBEQzJENTZENjZGMDZEQjIyNDM4Cis0NTI4MjJDQkVBRjAzRUU5RUFBODM5OEYyNzZFQzBEOTJBN0ZCOTc4QzE3ODA1REIyRjRBN0RGQkE1NkZENkFGCis4NjcwRUIzNjRGMDFERThGQ0FGQkFGNjU3RDY4QzNBMDMxMTI5MTU3MzZDRUFCQUE4QkE1QzBBQzI1Mjg4MzY5Cis1RDQ5QkQ4OTFGQUJFRkU4Njk5QTBBRTNFRDg1QjQ4QUNCMjIyMjlFMTU2MjMzOTlDOTNERTdEOTM1NzM0QURBCitEQTdBMTQ2MkMxMTFENDRBRDUzRUEzNUI1N0U1RDBCNUZDMEI0ODE4MjBFNDMyMjJEQjhFRkNENUQzMEUxNUY5CitCQTMwNEZBODc5MzkyRUUwQkNDMEUxQTYxRTc0QjNBMUZDM0EzRDE3MDIxOEQ3MjQ0NTgwQzdBQTBEQzY1RDE5Cis3NDFGQTVGRTZGOENCRjYwMjUwQUNDMjc0NTRCQkYwODk3Q0E0QjkwOUM4M0E1NjY3Mjk1ODc1MkVENEI1RTc5CitFMTg2NjA3NjRGMTU1RTg2RjA5RUZBOUY3Njg1RjJGNTAyN0VDODVBNzc1Mjg3QjMwRTIwNjlERTRFNEQ1NzEyCitFN0QwMzM0ODFBNTNBMjcwMkJBNzU0MkM3MTA2MjE3MzAzOTAzMENGMjhEOEI5QzYzQjU1OTZBOUI0MkIzM0U3CitEOTIyOTQ0QTM4NzEzMzgzRDM2NDhBNEFGMTYwQTNCMEM4RjMzNzlCQTQzNzJCRTJFN0VBNDlBQUJBNzVBRUVFCitDNURERTFEOEJGNjg0ODNDM0QyMTI3MTI4MEFCQjkxRDU0Q0M4MTk2ODAzMjJFQUI3MkUxMjUwQTc2MEJDOERBCis3MjY0MDVFRkU0MjA2MzVCNUI3RjBCNDg3NTJDMDYwODNFOTJCREUwNjQwMUM0MkEyQzUyOEM4QTYwMzgxMjI3CitDRUJFRjBDOTQ0MERDMDM0REFEOUMxOUZCMjdBMzUwMjMzMTEyQjBBMzM5MzY2QjczNzNDRTA1ODQ1NkUwRTFGCisxMzk5MzZGNkNDOUI1MDQ0MUMyRjU5OTQ5Nzc0MjZBRDdEQzhDNzE3RTczN0Y4QzIwMUVBNTVBRDk0OTA4MzM2CitGRkU5NTY4QzBFNkVGMzIwMkQ4Q0Q3QjdBNkNDMjAzRUM2MDFGOUE3RTJBNDM5NUFCQTM0MDY1MDNERUNBQzU2CitCMDMyMTlDRUJEMEU0NjVFQTBGNjM1RjI2RDk4NEY1OTQyRTRGQjE4NkFCODc0RjNFNzRDQzJGMkUzNzhCRDgzCis1N0NEMUI2M0M5REU5OTYzNTg3Qjc0NTdENTYwMjREOTU2NDVBREUwRDk1REVBNzQ4QTZFQ0M2ODA5QzJBN0U4Cis2QTU2OEY4M0JGQjE4NEIzMTM0OUE3NzFERDcyRUQzRkZFOEQxNkUzMTM4RUM0OUVDNkQ3NTI0RTYxMTMzMUM2CitEQjJFMTYwNTlDOUExMjUxMkM3MjA4RTNCMzBGMDQyNzNFMjBCQUY0MUVGOEM5NkJBNEIxN0YzMTU3MkJERDE1CiszRkI3RDE1Q0UzMTY4NEQ3MjEwODMyMDhENzY5OEEzMUQwNzE2MDkyN0M5QTdDRjhCN0VCRTgxQTgzQzBCRDQ2Cis5Q0EwNjI0NUZEQTM3RjBGMkRGNzk0OEEyMEQxMjE2NjBBNzNFMDc5RjRBQkREOEY5MDM2N0JEQkJBMzIzOTU3CiswNjI0MzhGRjNCMjhBMzg4MDM4MENEQzc2QTA1NTA5NkQzMEZBQkE0QUVDQUYyMzhBQkMyNTEzRjA4OUE2QzRECis2N0VBMDA1MEEzNEY1REJFNUZFMzJEOUU3NUU2N0Y0Qzg3QUQ4MTE1REJGQzAwMTI0REI0RDNGNENCNjJDQTAyCis1OUJGRTQ2RTkwREU5RUQzMDZENkNEQzUxMDA1QzIzM0JEMzlGNDFCMjY0RTI4OTJBRDIzRThGOTNDOEM2MUEwCitCNUM1Q0MxMDIxNDExREFCNTE1MDM5RENBQzA2RTFGQUVGQTI1OUU2QUIwNzEzNUNCQjM0NUU5MEUyQkQ2NEFFCiszN0I5QTQ2OTM0QkVCMzgzRDNBQjE3ODdBMjY1NkZDQ0VBNjQ2N0VDQzI1ODI4MDdFN0RFRDE4MUM1MzgyOUE3CisxODE4QzNGQjE3NTY3RDgxRDFBODMzRTA1NTk3OThEMDYxNjM3ODFENzg5NUMzMUIxRDgxQ0M0MzlBRDUxQ0EwCis1RTMzRTk2MjUzMDY0QjY4NEYzMjYxRUY4NkFBODQ1MkIzMkU5QzU5MDcxNTNCQkQ2OTJCRjhCRDRBQzQ1RTNECis3MTYxNDg4QzcxNkNFRkFBNjk1ODc3QjAzNzgxRjY0ODQwRDQ5QzlDMUJDRTlENUU3NTlCRjE4MTI3MTJGMkVFCiswNTRBMzRGMjE1M0FENkM5NTNFNzk1QjZGNDBBRkFCMTE1QzVGQ0REMTg2NEE4NUMxQUVGNURBRjQwMzM3MDY4CiswODczMEJBN0FDNTgwMjEzODgxRjhBRjFGNzZGQzgzMEVDNzZCRTRDRTZFMDkwQTFGOTE2MTg1OTVBQjZEMUZCCitBODg1RDA0QTRFNzNDOUM3QTkyM0Q4MTMyNzU4MTBERDJCMkEzQUI0RkFFNEJEQTI0RkMxNzBBNEJDRjQ2RTA1Cis1NzI1MjlBMTlCMDlFNUFERUFBREQwNzFFQUMyMEM1REE4ODRDN0Q0MTRGNUFDNTIwNkU4N0U1Mzk4OUI3Mzc4CitCQURDRUVDNkZDREQ0QjRFQTAzRUE5OTRGREY2QTgwQTJFMjMyQjFBMDA3Qjc1NTQ0NzFGQzFEQTI0OTAxODk2Cis5Q0E4NDI4M0EwMkZBMUQ5MTc2MDI2QkMxNTI5MTQ3RjE5RDA3NTIxQTQ5OTdCNzAyNThGRkMwMzgyMUVFRDBDCitENDRCQzlDMkU2N0MzQ0Q5OTcxOTU0QzU4QkYxNzc1RDYxMTE1Qjc1RTI2QUZDQzNCN0NFNkU1RUNCOENDREZCCis2NDBERTQ0MDMzNDczN0Q2M0Y1MzkzODVGODNCQkY2MDNCNjMxQUIyRjc1MERCQUU3MDdGNUQwMDg1OTFBMDVFCis5RDUzMkMxNjVGQTM1QjU4MEQ2OTAxMzg0NjMwNDdGNzdGMTBGRDRGREM4RjcyNDM2NzU0NUMwRjVCNkFGOTc4CitCNkFGQTQ5NjI0RUMyQUVCQ0IyRDE5RTk2NTJDQzkyMEVFRTQwQUNCNDc5RTk5QzdCNjE1REQ3MzAwMjI1Mjc2CitENDVBMjRBQTJBNjA3RTVDOTBDMTgzNUFBNTYyNTk3RkJCRDQyNDY1REIxQUY0ODY3RThBMUE3NTBGMUU0NjJFCitEMjYxNUIzQTlFMkFFMTk0REIyNUIyMTUyNzMwNzk5N0YxMkI0NUY0NDI4MTdEMjIxNzczQ0Y1M0FCMDA2M0EwCis0QjE4OEM5MEZDM0MwM0VFMDk1MDE0NDg1Rjk4OEQ4NjYzQzBFQzdFMUM3Qjk5RkExQ0M3OTFERDQ0QzdDRUNBCis2MDA4MDZGRTc2NzA3RUI3RDkzNTVBMUNGMjFDNDMyNUUyQzgzNjUxQTZGRDgzOTlDNzlDRUU5ODE2QTRCQjJGCitGQzQ1NEE0QTgwMEU5NkQ0RTk2NDYyN0VDQjM5QTEwOEQ0MThEQUE1QjU3RTZDMEEzRjE5MUJFODNBNEI0QkM3Cis0OEE0QjgzRjRFQTY2QjBFMkY2QUYwRjk5RkJCQzlCRDVBNTNCMDY5NjdCMzYyMjJBQzQyRjJGMjU2NjRFMzlECis1QkJCNzk0QzM3RUVGMTFFNDM5NDkyNTBBRjhGMjA3Q0FGNDdEQzBFMDJFOTNGOUI0MUM5QzExQkJENzE0NkMwCitDODk5NEQ2OTI3RDA1NEJCRTY1QTg1QUI1NjUwMjdDQzk1ODE2MTlEMjZCRjc1QzM5N0FBNTZCRTJBOERFODlDCis3QTBFNEI4RTA1RDZBNzQwOTJDNTYyNUU1OUJBMjNGNjVGMTQwNEExN0E5REM0ODQzQTA4QjU4MjM0QUQ3NTkyCis3QkQ2OEQzNDUzODVFMkIwMDVGMkI5ODNGRkNFRENFNzg0MTdDOTA0RTE4MUYzQjZDRjhFNUNGMjM2RjIzNjExCitEOUNCRTU0NUFBNjQzQzdEMUIyOEVCRkJEMkUxMTcxMDU3QTNDOEZEQjlEN0RBQkYyMDU1OEM3QURFOEE2QjNBCitGRjk4NzhCMjZFREExNkIwRjlEQTQyMTI4MUY4NDlBNDRDNzZEMTE3RjRBQjU2NkZFMjQxQjBBNkNDQUZFMkJCCis5QTY0MzYzMjJEMUNDNTRDRkI2MDJDMDQ2NkI3MDU2NUY5QTdGOTM3MEJEQjFDNzBGMEMzM0U1MjlDQzI4MEYyCiszQzhFMjNFQjJDMEQyNTgyOTQ5NkIwMDVFNzExRjVCQThFNDY4MEVCM0NERjExNUU0RDBGODlDNEI1REU4ODQyCisxMkNDODA2NDkwNzdENUI4NDRCNjFCRjU1N0QzMTZBNTk1MTNGNThGRUNFNjU3RjJBN0VGM0IwRDMyMEU0QzMzCitCNDg3NzMzNEVGQzM4QTI5MzUyQjAyNDBFRTczNkVERjgwNUM0MzRBQ0FBNTlGMzIyMDRERTY0Qjg1Q0YzRDY1CisyNEYwQUVBQ0UyRjcwMzI1MkFDOUEzRkNCMkY2Mjg5MjhDRkFBNzg4MjIxQzQxQjZBQzYzOTY1NUUzOTE4OEQ3CitBODExOENFNjY5N0EyMEYzRkJEQTM1NjQzNTVEQTNERTEwRUREREQyMkJGRjQ2OTA2MzBFOTlBNzdDNjYzQUYxCis1RDM4QTA4MjdFODFEODA1NTA3QTEyNjBBQkE4Mzc0NTAxQTJDQjRGMDdFMjM1NEIyREI3RTc3OTIxQjZEQzU3Cis5MjY0MTVFODVBMzUzNzlFNkEwMDE2OTkzOTI2MjMxQUIxREUzNTE3OEUxNjgzOTU3NEE5N0U1MERFN0MxMTc5CiswOTQ2QTYxRTY1QkU5NjJFN0FCMkE1ODRGODk3MkEyRTNDRjMxOUVFNEM1OUI4MkRGRjZDQkZEQ0VFODAwNEM2CisxQjdCQ0Q0MTcxMDNBODJCMzQ2NjUwNDVEQUQ0OUEyMjhFOUEzRjYzRjExOTRCOTUyQjY3Rjg5QzMyRTY4ODE0Cis3MDVDQTY5Rjg4RURFRjQ0OTE2RDQwQzIyQzE2RjU4QkVBN0EwMDgyRDRBNTc5Qjc1NjIzMTk3NTBCQjE0QkVGCiswQ0ZCMjU2RTlFQTMzM0YzQUVCRURBODY2NUU2NzgwOTU3NkQ3RjE4OTIyNjBFNDNDNzY0OTYzQjcwRkVFQkE0CisxRUJBQTI5QjYyQkMzN0FGQzM1QUE2QkY1N0U1MDRFRDAwNjUwQjRFQzYxQTgyQjZBMjZFRTk3RDcxRkRBMjVFCisxMzU4RTNCREU5NjlGMUI0RDA0MDA5RDU1RDFCMTlEQjNDOEJEMTY3MTI4MDM5NEExOUQ5MDg5MzM0N0M5MkQwCitFNEQ1RUFCQkMwRTVFQ0IxNjhEMzI0OTFDMENCQTEzNzlFMTJGMUU2RTE2MDI5MDExNUM2MDcwNkFFOEMzMzU1CitBODhEREI2NEVDNUNDMkZBNzUzOUUzN0NDRjY5NDFGNjZDMzI3NTI3M0QzOERFOEMzNzAwMzREODlCQjkyRDFBCitCOTY1Q0VFOEQ5MkU0QkM0QTI3MzNFNjFCOEM3NjZFRTRFOEM1RjU2NzBEREEwQ0ZCRDhEMkM3NkIxRjlGMTc0CisyM0I5N0M0NzVDOEI5Q0E3RUY4OUEyQkU1MjFGOEJDM0I4QzhCM0FGNzgyQUY2QjFFQjg2RUVFN0E2NEM0MzE0CitGMUUyODAxRDExN0JGODY0QzcyRjA0QkZCQkE4RDQ3NTM1NzcyQ0ZCRTJFRTBGMTRENjk5QUEzM0ZBN0QzRUEyCis4QUQwNzE4NjM3RTBDMzAyN0RBMEI0RUE3RjNDQjg1MjgxMUU2MjA4MzZBMThDNzAyODNEQzU5RDkwRjI4Q0QxCitDNkE4NjY4QTMzMzA0QkEwQjAxQzdBRUFBQzA3REY3N0VGN0QyMUE2MENFRDAzNDdBMEM3NjM1NzJDQzYyREI4Cis2RjQ3MUVDQzY3Qjc4RDA2NTc2MkQ5OUI1NDBGMkI0NUJERTk2RDE4REQxRjIxQjUyRUY1NEMzRkExRjU5QzA4CitFOTE5RTc4RUZGNUVBNjM0Mzk0QTkwMTMxRTY2MTY1QjJGNTY1N0Q0NjUwQjdCNzE2Q0VDODVGNzBFRjMzMjYwCis3Mjc4OUIzMjFGNTg3RDI3N0Q0NThCNkVFRDkwMTBCOEMyOUI4RkQ4MkJFQjE5OTBBMEM3RUFGNUE3NjNGREYwCitGM0FGOTg2QkRCQ0I4NjgzNDQxMkNBMDkyOUQ5OEFCM0ZGMjFENDAxRTlBNkU4MTY1ODdGNEY5OEJCQkY3OEE1Cis5NURGRTA4RDE0QTdCNEI5MjJBNDlBRjYyQjZGMTg1MkYwMUE1OTM5NzVBMDY4NzhEMzRBMzkyNUYxNjUwQ0ZGCitBODIzMkU1MUY1NzU2NTM3MUUwRDI4MzAzRjYyNDBEOTVEM0Q5NDhDMEEyRTI3REM2MEVDOTE1OTUwMjcwOUUwCitDRUFGRTUyMEYyNzQwOUZFMTM1REU2ODBFQjczMEYzRjU1OEYzNjA3OUVCNDE4OUU0NzUwQjQ2MTU0QUM5QjcwCisxM0NBMjE4MkU0NEEyMEY0Q0ZEOEZCN0Y4RTJGQjM2ODIzMzA0MDk5N0MwRTU2NTlERTFFMDYxOUVGMDVDQkRDCisxRDIzNjMyNDNCRDU3M0JBMEE4MEJDQURBMkRFRUZBRTA4QTgzQ0ZBREVCRUUxOThDMzRGNzZBQkU4M0ZBNUMyCitGMDVDMUI4NkExRTExNzEwNzE5NzVDNTZDQjRDN0MwRUEzNUQ4NDQ5RjZEMjk0OEYzOERFNTJFNjdFMTM2MzExCis1MUQxMzdBMUE1OEMxMDk4MzM2RTU3QjFGQzBBMTcwNjdDRDY2ODkyMDZFMTJFM0FGQzE1RTM1NzdDMTBDQzZBCis4MkQxNzdDQjAxNjYwOTg4MUFCNjY1QjBCNUY2QTFBM0E5NDg4RjNDMDFFODM0RDkxQjM4REQ2QkYxQjJCMDQ0Cis4MzdFQ0EzRDA3QjhCNTEyQjQzOTRFMjhCMjRCNzQ3N0Q3MTBDOEIwQ0VCQjQ2RjcwM0VFNzdENUU1NkJFRkRECisxRjE5QkI1OTRDNjk4MDJCMzlEQjY3MTY5RUMwODIzNDBBMjBFQzYzMzgyRUE2MkE5MzMxMEU1OEMyMDFFRDY4CitEODA1MzU1QkEwMEZCODY5NTE2MEVDN0NEMTZGMzIwOEU2OUMzMkJENkEwQTk2NUQwRUJGMkM4RjRENTRCMDk2CitBODJDNTU3MTA2NEVFRDBGNDYxRjVBNkE4OEYxQTgxQTMwQ0M5RjlDOEZDNkNCNDY0RUIzNDgyNjFBNTQ4M0VFCisxQ0YyMTI1NEQ4OTRGQkVEN0M4Mzg2N0NBMzg2OEREOTdBMjczNDExRkY4QkMxREU5NTVGQTEyQkNENzJDMTZCCitCNUM3RjM2OTY3RkM3NzBGQzM1QzhCOEU4QzkxQzIwNDVCMUVBQkNEQjBBREZFMTQ4RTE3MzUwMzE5NUJBMUIyCis0MzUzMjM3NzVFQzZFMzcwOTlDNkVEOTM1REQ3RTM3MzdBRDZGMTEyRDk4OTAwMTlGOUI5NDlDNkIyMDE4NUJBCis3NUU4OTJBNTQ4MUNDNUY4RjYzRTBFRDhBREE0RTUwMUI0NTFGNkU0OTFGQjczMjY1MzlDMzY5QTNBMDc5MEYwCisyRjMyRUQwRTg4MkFGMkQwNUY3ODZFMkY2NTUzMURDRTIwNkRGREZFMUE0NzdDNzFBOTdDREE3NjNFMzNGODY0Cis3OENGNjdDMzNCMEZDNDMxQkQ2MDEyMjVFRDkyQjJCOTg2ODMyQTk0MzYyQTlBQjRENDlGM0ZBNDZBODJEQzNBCis1OEVGRUUwOURFODRFQzdCNzI0NjE2MEI4NjdBODUwN0E2QkI5ODUyNjFBMjBGNEVERDJENzY0NDI5MDg0Mjk0CitDMTg1QjVFREY5RjYwQzRDMTVCQjcxOEMyNzMyQUQ3NTE1NDkwMDZBNUIzNTlDMDNDMTVDQzYwNTU5MTcwMEEyCis2MDNCMTAxRjZBNkQxRjlCRTc2N0Q3QkIwQzE0NTRCRjc4Mjc0Q0Q3Nzc1MjVDMjk2NkE0QzM5NkEzNTk4ODM4CitEMEM0MTc5NTNDQzhCNDZBNTYwREQ3MjFCMjkzOEU4RkUyM0VEMDU2RERDRDVEQzM3MTk4M0JCRERGQzc2REE3CitGRDU5OEY2MkIwNDMzOTM2MzA1QkM4NjFFQTY5QTRFMzJCNDE3QUIyRTkwNDlBQkNDNDZDNDM0NUY5NjY5NzQxCis4QTAzNTdEMzBEMzVEM0VCRDMzQ0QxMUQwMjFGNUJFRERFQzhFNjJBQkM3RjM1NkUxQzZGRDdFMUFFNDAyQUI1CitDMEQ2MjRGMEU1Q0JBNjc3NzlGMjQ2MEUyODA4RjNBQ0I3ODE2NEQ4QzFGMjMwNThDN0YzRTM2NEFDQThCQjMwCis0OUY1OEZFNkRBNDZBRDQyNDFENjJFREMzNDA5OUQyOURCRTlDQkMxMzkwN0Q1MTM3NEY3NTdDOTA3QUM5RDNFCisxMTNCN0RCRkY5NDA0MDYwMEUwM0QyNDcyOEQ0OUZCQzVFNUJGRUI3RjE3OUMyN0VBMEQ2Q0U3MTk3NzAxNzAzCis0NEI3QTJCM0FCQUUwRUVENzY1QjlDNTdFMjg2MTIzMTZCOUI2RDU2Q0VCQUVDQzA1RDQ3OEFCNDFDNjg1NjQxCitEMTJBRThBNUFGNDI3RkE0RTRDNzVFMDIyMUIwRTIyNzFGM0E0OUJFMTRDM0I5N0UzNkU4MEQ4QTc3RDQ1QkVDCitDMDlEODdERUI0MUNDNUMxMTEyNDEwOTAxQURBNTFCMkYwODUyQzVGRjlDQkFEQjQ3OTQ2QjNERUQyQjZDM0JECisyNjRCQUYyNzMxOUVENDc4RUI2QTMxNDZDMEU1MEUxODZGRDgwRTc4NTg2NzU0ODFGOURGNEE0QkM1MDE1QUUzCis0RTA1QTFCRUNBRDIyODUxNjYwRTIwNTA3RTdENjAwQUIxQ0UzQzFBQTQ4QkZDNUYwNTBFQ0YyQUU1NTA4NTZFCis0Qjk5QzFENjY1QTZBN0ZBMjhBOUMzMjkwNzNBNDc4RUUxNjI0OTkwMzJGQjUxRTRCM0Q1ODMwRURBRjEwNjIzCitERDhENDc4RkE2OEIwNjQyMEMyOUY0ODRCQjhERTg5NzYzQUExMkI2ODU0NjJCNTZENjk0NTQwMUJEMEFEN0VECiswNTkwREY0RUFDQjY3Nzk4MkYyNjE0NDhEMUQzNUM3MkExQkQ4RDJGRDg1MzkzQ0Y1N0UzM0FBQ0FCMzBBODA5CitCMDkyREYzMENBN0Y3RTdCODBFNDIzMDA5REU0MTExODJFNjNBNzNENkQxNEJEMEU0N0NGNTcxRTU0NDBGRjFBCitEOEFFQTE5OTgzMUE5MThFNDg1RUY1ODlBNDIyQkI3QTRGNkEyQ0Y1RUFGQzAyODI3N0YyODAxNjY5M0REOTU1CitEMEIyQjE3MUMxODAzQzdGRjJCRUJGQjk2REY3MkE0MjU2RjQwQ0E4OEEyN0I3QzE3NDgyNkRGMjZCRTBFOUY0Cis1Mjc0MkZCOEVENzJEMTBFQkMzMzc4QzNENEY3NURENzg3Njg0QUFDNzQwNTU5MzBFNTNBQTUyREI5MjEyQzI3Cis1MTQxMzREQUJCRDJDNDg4QjA0NzQ2MEFDMkU5RTM0Njg2NzFBNzE2RDc5MEVEQ0JDQTQxNThCNDhENTkwRDY5Cis2ODUyRTA1N0Q0Q0E1MTE2QkM1MzI0MjBCQzMyOTUwQkEyOTAwQzhFNjQxRDYzOTUxMTYzQzM0Q0M4OUM2NDRDCis1NEFEOTFDREM1OTY2MEI0QUFGMDcwMEFDNDc4MjIyMzg3RjNEQzVFMjQ5QzYyRTQ0MzNEM0M2REM5OTdFRUY5Cis0NTc4NEZGNzUzODRENzNDQTA0NEY3QTZCMUVDQzVGMTIwMkMyQzdEQkU1REQ0QUNENUU4RDdDRjVBMDU3RDU4CiswQkFEMjE4NTU4Rjc2RUNDOTkyNTFCMTFEMkZCOTI0ODdGRDZEN0EzQUE4RjE2RkJGNDg5QTA0NjQ4N0M4MDAxCis2NEE4RkQ5QzJEMDM3M0JCNzUxMTg4MzM1MzMyNTE2QzJGOTk5QkJFRDc1REM2QUQ5MENFMzk3MTcwNjE4MEY5Cis1NUQ4RDQ1N0JGNjhDQUU1RjBCQ0Y3MUVEQjIwQjAyQTVBMkVDOTJDQUQzQjk3MUU5RjU4NTRCQzVBQ0QwQjVGCitERTg4MkVCMzcyODE0REE0RTkxRUZDMzFGRDBEQTY2MkFBQUExQTY5RUVENjY0QUJCNUU0MThBMTlBNDU5NjI1CitFMTJFODVFNTJGQ0Q4QUNFMzE0OTQ3MTYyNzY3RTg5RDlGMTUwQkFCMjZDRjgwMTIzOTM4RDhDREQ5MDFDQzQyCitCQzcyMDM1QTNBNUVDMjYxMTExQTU3NjEwNjc5OEJDRTcwOEZDQzhFRTIxNEYyOTQ2ODEzRDk1NTUzNUI2NUM3CitGRjg3NTkxMUIyMjQyRTcwNDJBQjM0Q0M4QTcyMjYzN0Q4RjMyNEM2RkREQjI1RDlEQjJGRDJDNjY2MjQ0RjM5Cis3NDU0MUM1QzcxNkRDQjYxQ0FEODQyM0M4QjM0MDJENkM2RTAwMzIwMEE0ODgzQzIxM0U4NTgwNzM0RjQxNDUxCisxOEVDQjFBRjhGRjY1MDVGRTI4RDVEQjZCQzc0MkJGRjEzQzIyOTgxMzE5NjI3N0RENjQ5OUI5RDAzMTNFQTNDCisyRjQ0REQ5Q0RBMTlFMjA4OThENkI3NEE5M0ZBQkM1MUJGREQ0OUI1RjQ5OThBMjczQzMxNDY4QkI4OUJFNzU3CitCREFFMERBNkJEMDIyQUFBMkYwNTg0QzkxNkY3QzgzN0YwRTA4ODNGNkI5NDgyMzE4MEY5RkY1NUVERTcwNkQxCisyMUNEQ0M4MDZEMDBCQTYxRDRBNEFFMzMwMjlCNEY2NDBFOUQ4MjI2QjhCQzA2NzBDNUU2REYyRUIwNjJERTcxCisyQzU3RkZERDM1Q0Y4NTAyQjA3QTUyQjUyRDZEMTQ4ODZBMDEwQjU1NjcxODVCNzkwMjA3RDUyMTRFQ0FGQzBBCiswQTU1ODAzRTA4QzlCQTRCOEQwMDJDNzMxMEQyMkYyNTZCODIzMkRFNDdCMzBBMTMxNzIwQUM0ODcwRTRCODVCCis2RjU2Rjc0RkM4NTFFNTcwOUU5MTRFNkU0Njc5Mzc0OENCNzU4REVCRjNBREI4M0RFMDZFREQ3RUUzNkM3QTIxCiswMUE1MzU1MjIxODk4NDg0MDE1Q0VGOUY5RUY2RjY2ODAzREEwNzNDMzhDQjQ0MDZCQjczOEY1N0QxQUE0RThCCis2MDAyRTIxM0UyNkExRjMyMDZFOEIxMEI3QUYyRkI1Q0RGQTg0MDg5MUNEMTJDODE2RTdFQjQxRDFBN0VGNjJDCitEOTJENTFDMDg1RURBOTU4NzQzMzNBMUVENzNGNjMzODZENUE5QUY4MTdGN0U5NERDM0JDNDg5QTM2NzMwODAwCis4REFEQUNBQ0I1Q0IyNzQ5RDhFNUY4Mzg5RjkzQzFCNTk2MjQyQzJCOTMxN0UyNjUzMzQxNDM2N0FFODczOUZCCiszQzcwOTcwNTgzNzFCRkE5Mjk1OTRFOTcyQ0QxODgzN0M4OTJEQ0REQjQzODRERDIxMzM2MjJCRDBFNDhCMUY0CiszNDI2QTdFQzYxQ0Y1NTBBNkNFMUJGNzQ3QjdGRDUzRERGQzk1Q0JDNUY1MDExMkI5N0NGRUMxNDA2ODE2NzYzCitCMjMyMUQzQjNBOTE2OEZBQTREODg4QkQ0Q0VFRjUzOUI0REUxODEwRjc3QzAyMDFGRDUxNTEyNzBEOEZBMzY1Cis2RDU4NzM0Q0RFRkI0MUE2RjBGMjZCQ0I3OEY4M0ExODlBOTFCNzk4MkY1QzE2OTczRTQwN0E1MEJGRUU0MjRCCitBRjRGMTk1NkVCMDZGRDE1QkRFRDZDNkExMEY3Q0RFRTQyNkZERkE0QjAzRDE1QkZCMUNCQjU5MTlFRjhEQ0YzCitGRDNEN0NBNDVDMkREMTczMDYwRkNDNEFENUVBRjg2QjE5NjZBNDQ5QjJCRDI1NTc1OUIxNkQwQkJEQzNFQjMyCis5QjBBOUM3Q0EwNUQ2RDUyMzJCQjA0NDFEMTgyRTUyODk1RkI3QkZBRUE5MkZBMURCNTg1Qzc4QThFQUYxREQwCisxM0FFNDNDRkJCMTgyRUEwQUJGQUQ0NEZGNEVGQTVEM0JGRkI1Mzk0NUE3RDM2QUI0ODA2NDUwNDZGOEEwMzJCCisxMkREMzhEQUU2NEM2QTZCNjI4QkVGRTdFM0E2MEZFNTUxRTdBQjA3QTY1RjNDNTdENEJGQ0U5QThCNUJGOEFBCitGNzU0RkVBN0VCODY4NjcwMjk4MzZEOUVCODlFNzVFMTU0RTM0ODE0RTg2MDM2RTI3OURFNTdCRDJEQjAyNEY5CitFQUU4RTBEQjdBMzZENkUwMTQ4NEFFNkE0MjU2MDE4OUEyNDI2OUNGQzJFRkZFM0ZBRDBGMjAwNDExRDc1NTkxCis1MkY3RkVFQ0FGNDQ1QkI4OEMzOTg5QjBFMDk1QzZDNTBBNzRGNjYyMjFBMTZEOTkwQzVFQUJFOUMyRTk3OUM5Cis3QTcxRUY1OUMwNDlEQUE4MDhBMDk5NTVCQjhFNUQzRjVBMjY2RjU1MkE5Qzk3RkJCOTY5Rjg3MzQ4QTg3Q0UwCis3OUJGOTEzMTIxOThFQzM5MjQ2Q0ZCM0YzMEVFNzU3QUZFMDI1QjU0QzU4ODBBNkRDQjg1RjY3QTM2REU5MkIwCis4NzkxRjU5NTVCRUVCQTlFQUE4NDIwMDVEMkExMDc4MDE2RDdBQkU0RTM1MDU1M0EyNzc3RTA1MEU3NjlBN0VCCisyRTkxRkRCN0JBMUQ4OTMwNkQwRDBDQjIwODlEQzdDQjJFNkU4NTg3RTcxQTk2QjhEQTRERDYyODFFMjBDMUIxCis1RjA5RkEyMjhGNkI5OTUxODgxNUMwQ0Q2Nzc5NTk5MTAwNkRGNEVDNTlDNjJGMDgzRjExNTEzNDM0QzBCNDY5CiswRjg5OUVFNERFNzQ4MUUxOEVERDBGRDQ4MDhGMEUyOTE3OUVEQ0U2QTg1QTg3MDgxRjA2MEFCNzM4QTBCODM0CitDREMxRjg4OTEyNzM5NUVCQzU4MkQ4RUI2ODM5MUQ3NzlENEYyNUFEMEUzODk0NUQ1M0E4MzY3MzNGOUI0QjZDCis4ODc0NTA2RjM0REEzRjFCRTI5OTlGRENGMEQ4MzBBMDFDQTA1MTE2MDVFQkJBOUY1MDAyQjJGMDA2NUVDQzg5Cis5MjMxMDg2Njg4QjE4N0UwNzQyQzI3NDVDRjI5MTMxM0ZFNkM5NUIyQThGMDlGMzg2ODZCOUNEOEYxNUEzQkQ5Cis2ODMxMzlEQ0EwQ0I3OTlBOEJCRDRERUMwNzFEMTcxMTlCODBDMUIxNUQ5QUE1NjQxODdGNDZEQjlEQzVDODg1CiswNUQ0Q0Y3NTkzRkVFRDA4QUUzNTg1MkY2RjIzM0I4QTM4ODhFMTAyOUY1RjYwRTM5ODkxQTdDQTkyMTk2NDI5Cis2NDVDQzg1NDVDMjRBMEVGNEI3MUY4NjI2NkYxQzAzRDU3OEQ2NjY2MkM1NjBCNTRGMjE5MDUyNDMzQzk5RTIwCitDNzQ3NkQ1QkIxOTg1NjhCNjI4MjkwOEE2Qjk3MjU4OUZEOURGMTNCMjkxRkFBNkJGODBBQTA3RUJBRTBEQURCCisyQTVDMjkwMTYzRUU3M0M0RjE1OURCNDQ2NTc5NzQ0NzUxNzE4M0QzMDE2NTYwMTY3Nzg5QjNGQjhEREYzNjgwCiswQUQwRDQ2QjU5QjA1QkQwRjhFMjkxQTk3MEY4NTZDOTc5N0FGRTE5RkUyMDdGMTI0RDY1QTk4N0U2QkFBMEMzCis5ODI0RDQ5OUMzQTlFMEVCRkNFRDAzQjdFOEFDMEVFQjdFQzRCMjY0ODdBODY0RTg1MTRGOTFBNEI5OTNCRjBBCitEMkRCQUUzNDg5MjY1MTVFOTJDQUFCNjk1MEI4Njc3MDExMDFEQTY0QjU5REExMjQ2NDQxMzk5QUQwOEU4OTI2CitENDk0NDAxMDk0MDM2MTJDNDE0MjdDQjRDMzQ1MENBODBFQjA3RDg2NzRBRDg0Rjc4OTlBQjMyQTE4QzMzNTFBCisxNjQ1QURCQ0U0MUMyQjdCRjVDRkI5Mzc2RjM4Rjg2NUZCOTgwQjk0QzA0MkFGMEQxRDg0NzZGQzU2N0U3MTE0CitDQjMwMDc4NEEyNTdGMzlEODVDQzhFQTYxNEVBMEM0OEFEMzc4QkY0REYxQTI3NjdFNjg0MjIzNDM4OUFCNzI0Cis2MEFCNzNCQzUxRjg0NTQyQjU5QTVEQjUzQjY2NEQxODFBQzVBMUE1Q0ZGMkYzOTcxQ0Q5MTBGNUU1QTVDRDM4CitEMDlDRUM1MjYxNjIzMkU4RTIwQzQyNTVFQkNBQUVGMUY5MTkyRjEwRUJGQjM0QUI1NEM4RDVCOEQzNkI1NzlBCis1NDIxQ0JBRTc4N0EwNjU1RkZBQ0YwNUFEOEU4RThGNjg5QjM2MDY0RjA1OEJCQjI2RDBFNjQ1NEM3MDNCMzlDCitGNzk1RkVDQkE3OEM4ODg0MkI0NDg0MjA0OUU5MDg4M0E4ODAzOTYzM0Q4NzZBQkZFNTQyMDJGMzVCRDlGOUQzCis3MEEzRTBDMzFBQTA4Q0Y4QTg5NjZEMUZDQURDQjkxRUJDNUZEQzI0RUNDOUNBQjEwNDgyOEE5MzFGMzM4QzRFCitBRTg3QUUyNTJEMEYzNDAzRTE0NjAwQjRGQTVDRDRDRUUzN0RGOEM3QTkwMTQ0NEY3MEUzRUVCQjJDNDEzN0M2Cis5RTNFQzRGQjAwRDEzMTNDNkVDMUMyQkM1MzgwRjM0MzRDRjVGMjYzNUQ0MjREQTIxRTYzMTZFQTc1RkJBNUNGCis3RUMyQ0U5NjMxMjAxQkVERjdENzk4MkQ0NzZBQ0NBQkJDNUE0NTJCMEMxQzc2QTAwQjFCNkFEMjMwMDFDMUEzCitDNDk0RTZCODJCOThFRUQyNjFGMTkyNTVDQUI1MkEwOTQ0OEZERTRFNTIzRTg5RjJCMjc3Mzg2M0VGREJGNTI2CitGNjQxNUZENkRGOTFCQ0ZDM0Q5M0U5NUVCQzZBNTNEM0FCOEVFRDc1NjM5MzlERkQ4NEJGMzY0Nzk4RTY1NkFFCitGRjRENDE0MzBEOUZDRTY1QkQyRjg1MTI1RTVFNDJDMTE5M0QwMjM1MTA4RTYzMTJDN0I5N0MxRkVCN0ZDRDZBCiszRDc5RjcwQkUwNzA5M0ZERTlEQzA5OUIyODJGM0I3RjJBNDFDNjdGRTcyRTg2RUM3ODE4REQ2NkJDRTkzRTQ2CitERDlBRUI5M0EyNUZCNDdBQzk2REVFQUZEODBCQkM3MTE0REExMDlGQ0FFMjA1QjFEMDhBM0FEODY0MUE0MDBGCitGMkI0NzFENjc3NDAyQzJCMzg5MEVBMDFGOTcxQzUxMUZCNERGNkY1QUY5QzY4RkE4N0U0NDk3NzA3MkEyOUNECis0MjU3QUIzRjdFQzVCNjgwNEMyMEQ0QjEyN0YwMjgzMkZERDU2NjZBQzRGREQyQzAwMDU2NDlDQzZFNEY5MTRBCis5MTk2QkU1QUM3RDg1RDQ3Njc3OTZDQjAxNTQyRUZERkJGRDFFNTFDOUM0MTUzNzFFNEE1RjNENjhCRTI1MzZGCitGOEVEQkFFMjUyMUZDRkMzNEE0Mjc0NDk3NjM4RDRCOUIzOUMxNENENkUzMUM5NUYzMkEyQ0RDOUY3ODkxN0Y3CiswQzAwNEFCQTM4QTMyRUZGNERBNjQ2MjNBNDU0Qzk3NTVBNDMwNDczNTVEMEYxODdBNzc5Mjc1QjAwRkU1NzY0CiszMEUxMjA4RDFFMTJDRjZEOTA4RDg0NzU4RjIzNkJBNjE4NTMzM0I1NkFGQ0IyQzFCNDY3N0E3QjY2NDJENEZFCitFMjI5RjM0RUNBQzJDOURFMDIxQjA1MUM1RTdENkRFQ0Y0NTZEMTYxRUY5RTM4ODhDMzhFN0Y0NzdDREVGQzAxCis5NzkyMEQ2OTZCMjcyMjM0MEE1OTUxOTUzQjJCRERGMTAzQzZEMEM2OTBDRDA0NDQ1RjI0MUNENTMxQzgxODM4CitFQ0ExQTAyQzRFRDkxMDMyMTA2RDE0MkFBNEI4OTlBQ0JCMjExNzdEOTA1QjQyRDA0QTI4MEMwQjYxQTBGOENECitCNTEwREZDNDZFOTIyRThGRUZGRjMxRUU1OEFDMUJFN0FGMUM3MEQyQkYxMTcyN0ZGOEM2NkQ2Mjg2OTUwNjdFCitFNkVBQkJBOTdBQTVBNzVGOTU1RkQ5RTlBMUIyMUU3MUE4MDc4NDE4NzY2RkM0QUY4NDMxQjRFN0M2NzRBNkY4Cis0RTgyNDQ3QjgxRjE1RDY3MDMwNzRCRThBMTNCRjEzMzk5NzIyQ0E5MUUxMzZBNTUyRTk3NjQzMzNGNDFGRDhFCisyREFCQTA0ODE3RjhERTM2MUMyRTdCQzIzRTlBOTYzREVDRTk5OUE2Q0JCRUM3REUwODY1MkE4ODg4QUExMTM3CitFRTBBMEU0MDMyQTRCNDAwQzlBMjQ4OEE1NUQ4RTI1MTY2QThFOTgwNUNDODBFN0Q2QzJEMUU3QzA3MUMyRTlCCitGMkU2NTI1MzZBNDU5MTU3NkQ5OUJGMUREMTE4MjQ0QkEwOUE4MjU1Q0VCQkQxOEZFRTVDMDE3NUQ0MTc3NTI0Cis5MzA5NjI2REUwNUZGMDE0NEJFOUYyRUIwNUZCNTFDRTkyNEVEQzRBNUM2Mzc2Qzc1OEE3MTM4QkVGQUY5QkFECitDODlCQzk4MzRBOERGMzc5MDI1NjExOTg2NEFFMDY1MkU5MkZEQUFFNUExMzI1NTc5MTBDMzA3QzhDMEMzRkRFCitFRTNFMEMxN0QzMkNCMjhCNkEyMUI4REM2RUQ2NTI1RjhEMjVFRTAyNzA3MDQ4MjhEQjkwMDZGNTE0RUZCNzVECiswNjcxREQzQjEzOERDRkIwMTE1NkI0M0Q1Qjc3NUI3OEFBOTVDRjEwOTYyOEY1RkM1MDE5Mjc3NDEwMzFFNjBBCitENDY0NjYyMDNDRkE4NEQ5QThFRjA2NUM0MzEwMUU4RkUxQkE2MEU4MkUwMUE5Q0E2N0Q3MzI5QjkzQTExMjYwCis0Q0U4NDExOUZBMENEMEU0MUVBM0I2NDVDQTNGMDYwNTlFNzg5NTUyNjg3NkY3QzIxMTAyNjRDODRCNzY4MUVECiswNzg0RjgyRTZBMTYwQjdEM0E2QzUyMEU0MzA0NTJCMThERTQ3MjI0QTg2MUQxQ0Q4NzI0MzM4NDREN0JFQzE2Cis1MTRBQTY3MzE5RjE3NzcxRDc5NkM4OEMyQTkyODUxNEQ0OTA3QTFFNThGQkM1NjFFRTQ0NDI5MkFCMEE0NzU5CitGODA5QkU2N0E0RUE3RjE1MkJBODQxRkYzQzgzOEI5NzI1RjhGODlDNUVGMjg4MDJDNTg2QTU0MjEzMUY5QjkzCitERjY2OEFGNzRBMzQyODdGRDE5MTRCQ0NDOEIzRDJDNjk4QTgxMDlEMjFCRkFGMjQ1Mjc0QkEzM0FBNzFEOUM4Cis1MzE2OTVCQjQ2RUE5MTkxN0M0MEZGMzdGNDZBMkE2OUQwQUQ2MTlDRjdFQUU5MzZGQTFFRjMzQ0I4NUZGRjM1CitBOUU3OENFQTJDNzRBQzYxNDhFNjEyRTg4MEE1OERENEZFNTczRDZBMTBBMEVFRUNBN0U1REZDMjE5RTg5RTBECis5MDg0Mzc1N0YwNTc1OTc4NUQwNEY2RjNFN0RBMjY5ODg4MTcwQTkwNDg4MDk3QjVBM0REMUI2MUNGM0I2MThECiswNUM2OEIyOTQwREUxNTA2NUFGOTMzQTgzQkI5MTQ1NjI5QkIzNzU5QjQ5RjdDODZENzBFNTI4MkI1MkQzQ0MwCiszMzFGRTRDODIwOERBNzAwNUMyRTQ0RTY4M0UyNEZEMDE4ODY1NURBODdEMDFDODMxM0ZCMzVBQzFFRTE0NDQ4CitCMTY4MUJENUVEODFGN0NBNjQwMjQ4NTUyQjdBM0VGQjY1QUNBNkRDMTMyRDA5QkU2QjYwOEU0MzlBOUREMEFCCitBREY3NTJCQUEyMjZBNzU5ODZEMjI2NzE0REE1RjFBRDQ3QjhCRUFDMTJFN0UzMkEwOTkyQ0RDNTRDQzA1NEI1Cis0Mjg3RDg1MzFFMjVDMzkwQ0Q4MjkzNzc2RDgyMTQ5RTYwNTk3REFFOEIyRTZEMzMyRDA0QUQzOUE4Nzg2RTM4Cis2MDQ1RDE0MTdCM0U4OEJFNDQ2N0EwQkJCMTQ2QzA0NjMyRTVDMEI3NjkzQjBCRkE1NTEyMTAxNDYyNjA1NDAyCitFMDg5RUVBRUJBNDE2NjZCQTc0RkMwMjZDMjAwQTZEQ0RDNzc4MUREOUEzRDE4NEM3MUNBQkRDRjUzQ0REREJCCis4NEE0OTI2Rjk4MkZBOTZFM0ExNEZDM0VDREFEOEQ5QzE4NTFDQURFMkJCNjhGODhFNzM2QjRGNjIzMTM2NkUyCitEMzEzNjRGRjYwOTUwRUUzMzNCMzZBMEYwMkEzNUEzNTVCNDI3MUM0QTZCMDY3Qzk3OUU0NDBCRkYzRkM2OUZCCitDRTA5OTgxMzhGQkU2MEFDQjA3QTI0MjYxREMzMzRDOTAwQkI0MjIzMjhEM0VFQjk5QjhEMDFGQkVFRDgzMkQwCisyRDQ0OTQ4NDMzREU1QTIyRjA3MDE0NDdFMDNFN0U2MjgwMjczQjg3QkM0NzdDOEM5MEFBQkEyODgzQzIxNTVFCitGMTMwQTEwQUJCNTdDOTRFNDNBRUU1RDlENjVEQTdEODE2QzMyODlBMkZDNDcwMjE1RjRGOUM0MjY5OUU1MkU0CitEM0ZBRDUzRkU4NjE0MzVDMjU1Qjg4N0Q3QUE1MDE3NkJEMkU5MzQxOEJEMEQ1M0JCMEY4NkQyNjcyMDcyODJDCis0MUUyQUQ3NUJGODcyQTJGQTRDMzlBOURGMTYwMjQ0RTU5MkZEMzQ0QkRCM0JBNDcxREQ3QThFRjY1ODYwNUQ1Cis1MTIyM0QwMDcwMjZEQjcxRjk3RDlBQzFBQjc5NTUwMTVDOUE0QzQzMTdFOUY5RTIxOUI3N0UyQzQ2Rjk3NzQxCis3OEFERTUwM0VGRUFENDI0MzQ3M0QzMjlCODRDNjBCQjk2RUQwN0QxNzFDNDlEMjgwMTc2MkM0MEVBN0JEN0MzCitCMjE2QTE0MDE3MjdDQjZFN0U3MjMzQjIzQ0ZDREUyQzNENjI0NjJGRjE1QUI2OTU2OEEwQkFBMTVFMTBGQzJDCitDMzNFQzVFMjJBNEZGRTI1OEU3M0I1OUQyOEJFN0FDOTBBOURFNjNEMzI5MzUzQjE2NTA4N0Q4QjU4MTk0ODE1Cis5QkQwQTNBMzM1RTdEQUMwQzQ5Qjg4MEM3RDg1QTI0MkQ1RDU2MkYyQUIxMDg3RTFBNDZERDk0Rjg5NUIwNzRCCitGNjMyQ0M0OUMzNzY1QjQxN0Q2Q0EwREM3QTM1NUM2NzJFQTRGOTFERkI3NTFCNDY4RkVENDgwOTBCRUIwMjMyCiswOTU5Q0UzRTZFNDBDMTk3REYzM0MwM0RFODE5OTlGMDQzNUQ0NkU2MjI1RUFEMjIyNjQzOEEwRTE5NDU4QkU1Cis1Nzk2OTlGQkVBOUJFNDFGM0Q5OTdEQzRDRkYxQzc1OTEyODk2MTdCQzJGMkFBN0IzQTg5NUYwMjVFMjEzN0VGCitCOUZBNjU2NUMwNEU1MTYyMjhDNTlERTcwMzQwQzI3NTY3MDQwNEU1MTk0MDlCQzhCQUEzM0IyODAyOTkyREEzCitBNzIxRkUwQjU3MTcxODE2MjFBMDE2MTgxMURFQUI4MDI4OTdBMDZCODA3QjIwMzUyOTdBN0E0MTlEM0QwOTk4CitCMzBENjhGNkI0RDU4NkZGMzcwQTBFREVEMTgzQTQ1RUNGNEM1MTdCNzg2QTY3RTE1RkZFNEI2QTgzQ0EwQzhCCis2RjlBNzQwMjgxRjY2ODAwOUQxOTE4QkI0MjdEMUIzNEM3MzU1RUMyRDQ4MzM3NzhDRjI4NEEyMUE3NTNFRUVECis2NjRBNEY4NDE3M0NFQTExODcwMDgxRjE2Mjg4NTA0NTdFQjhBRDU0ODIzQzAxREYyRDE1QTFDRjRCMzNFMEE3Cis0QjNGMzMxMDAxMUU2NjI1Q0JCQkI4RTc3NUE2NTBGMEUwNjMxRjg4OTc5ODhCQzJFRkVFQ0I4ODc2QjQ4REFCCisxNTZDRkQxNEJCRDdCREYxNDQ4OUEwMjU3MDNEQUNFRTMzQTI1QzlEOUU1NTJGQzEwRUIxMjFCRDk5MEEwOTNBCitEOUJEQjAzMzRBODM5NkU2QjU4RTlDOTI4NUY4OEZCOUU0RTk5MEUzNDdGNTMyQUYwODI3RDlGMDk3MEZDQzkzCis2RDE3QTQzQkY1MThDREU1N0REREM5RkExODM4MTMwNEFDMDlDN0UyNTVGNzZEMjY0NDdBMTIxN0M3MDI1OERFCis2RDMwNzhFMzEyODIxNkZGQzVFQzAxQTgyQkU4RDM5NTgzMDAwNjVBMjI3Rjc3RDIzNkI2MDY3MjIyRThDRkQ2CisyMDhFRTdFRDU4NDQ2RDk0OTg5Mjc5Njg5MjQxMDM4RjY3QTg5MTYxNDA3OEQzMTJFNUY5MDc4MzkwNjU3OEEyCitDODE4QUNFODk5MDQ3MTc0MUFENThBN0NGMTI2QzU1MkFCNDQwMjdCNkFBREMyNTAxQUZBMjg2QjVENjVDN0E1CitCNjQ2M0U3M0JDOUU4ODhBMEIyMzEzNTFGOUE5MEU1OTkxQzRGMEUyOTIwMTA3QjNEOTY2RUNERTAxNzYzRkZECitERjlEMDYzNTMyNzI0MjczMkI2QUUwODlBM0Q3RkRFMTc0MkE3RDc0QkQwNzQ5Njg0NjAyNDQ3QjQ5MEJFMEVGCitFMDFCQkEwNzQ5N0I4MTdDRjBGNzNENEQyRjE0QTFCMjk1MDUzMTFENTJFRDkwRjA4MTJFRUU0NDBEODE1QjE0CitDRTQ0RjNCQ0Q1RUE1QjgyMjA3M0E3NzVDMTM3QTU5REVFRDM4M0Y4MEMxNkNGODU5RDgxODczMzUyMjBGQjczCisyMTdBMDQ1QzM5QjBDM0M2NjYxQTRENTM2ODgwRERFMDYzNjZGNDAzRjI3REQ2MzJCRjY1OTQzNUUyNDExQTA4CitDMzAwMTZDNDcxQjQyMDY1MzE3NzZGOThEQ0NERjMxM0U2MkYwOEU5M0VFQzhGQURBNEM2QjVFQjIyRDVEODMyCitGQkIwREU4QkNFODUxRkUzRDZENzA1MDQyNDJCMkU3MjBGNzRBRTQ5RjBERTNDRkY3ODdFOUNDRDNEMTUwMkZFCisxNjIyRTg2Q0JGOTA4OEYzQjY1RTg0NDE0NUM4NzlCMkNFNzRBRTI0RkRFODQzQjY1N0Y5Qjg4NzZEQUYyM0RGCis4MUYxMzNGNUFCNDY1MjMzMTEyNkYwQUJGMUMyQ0EyMTEyN0NDMTA2MkMwNkQxQzQzMEExMjc0MERFOTJBMDBDCitCOTVBNTA2OTYxNjRGNUFFMzgwQzY0M0JCQzdFNDk4Mjg4MUYxN0JDQzhGOUE4RTNCNUUzOEU2RjRFMzI0MTlCCisxOUNEMEQ2OUY5ODZGNUQ4MEI3NjIwRTQyNTA5RkYwQTNFNEVGMEQ3ODI2RTU0M0QwRDhEODBGM0QzQzBBNjk5Cis0QjVDREQwMjI3MkQyMjRBMEIwMkNCQURCNzE1MjRFQkJBNjhGQjU3RkUwMjRBNTRCOUREN0E3NEJCNkJBODkyCitFQzUyNDFBNUMyMEQ1QkRBNTkxQUZFODYzQkZENjRCNjNGMDJDNzdCNzRFQzJBRDVEMzk1ODlBQUUyMjQ1RjBDCis5MEFCMDlGQjExQTgzMkYwNzkxRkI5RkQ4Rjg5MkFEQUFGQjUxOUJEOEVFMzc1NkU2QTVFMUZFNjc3MzVDNjk0CiswOEU3OTk2Mjc1RjUyRjRBRkRCMjRGRDczRThGNUMxQjM0Mjk2RDRGNDFDRjExMUZGMDhFODhFM0FGNjkxMTIyCitGMTk2RDRERUM1NDVGNjhDNzZBNjhFNERFNTdDMkNDNzA2RDBFQjYzMTM2N0YyODhBNDA3NzA0NDk3OUQ5RTVGCis5RUVFNzEwQzIxMzBGQTQ5MUQxMTRBNzQyRDNDMEVBNjhENTBBQTQ0Qjg4QzY2RUZDMUYyODFBQjMyMEYyQzhDCis4MDBCMUE0QTQ3MDhCOTZDQ0ZCQzFCNDcyNjc4NzA5NkQzMDE4QUE4N0IyREM0MjJFNTYzQkM0NzUxRDMwRTJFCis2MzU1NDc3MTc5NEQwRjRGMDU1QzIwRjIwRUQzQ0M5RTIwQURGNzI2QTZDNUU4NEQ3NzQzQjVGMEZBOTlBMEVFCis0OTU4QjhENTM5NDhFMTk1QUREQjhCOEU0RjQwRTM4N0IzNkMxNDgwNjAyNUE1RDk2REI0RjZCOUVDQUYxNzdBCisxQTA0OTJCMzYwNzU5RUY2NzFERDQ2MTZFMjU3NDY5MTk1MTEwNTdGNDBGRTE0RjY5RTRGNEJENjdCRjExRUFFCitFODkwMjZBQzFERUQ4MDVGRjI3ODQ2RDY0MkVBRkM1MUUzN0M4RTk0QzZCNDE0MTE3MDk4OEUzMTREODk4OEYyCiswMEQ1NkE5RDFBODlEM0VBRTAwNkM2MDQwNjBCNDNGMzI4QTA4RENBNzM5OTE3NzZBMzE0QzIwNDQxRkFBNEZFCiswNzdDQTdGNkVEMkZFNDIxRTkwRTgzRUNFQkJFQjQyMTg3REI1RDNFQjUwMDNBMjdENjlERTMzQzU2QUZDQjlCCisyNUJBRkY1RjRGMDNFOENFNUFCMUE2MTlCNTk3M0ZGOUZBNEYwQUMwREQ4NjdGN0MwNjgyNjA5RkZEN0YxMEYzCitCN0U2QURGN0E2MjM2OEREQzhFNENBNENFRTNEREQxNUYwMjI4MTY3MkU0MUZENkMyRkJCMDBFMDhFQjIwMUQzCisyMzNFN0FGMzcxOEJCNTE5OTZDNUVBQTZCODQ4RTEwNzZBODI1RDhDNUIwQ0NBNEEyODUyQTZDOTM1MjEzN0I3CitENDBGMThGQUZEOTA4NTE1NTc5ODQ5NkRFNzVGMzNFOTcyQjA0MEI2MTk3NjkyRTNFNkQ0M0NCRkJFOUZFNzFCCis3MDBCMDYyMDgzQTIwOTlFNzREOTBGM0UwNUQ2MEFDMDkxRDBFQTFCNEMxN0YzODNFQ0VGOThENkE1MEIxRDkxCitBODI3NDFGRDZEOUFGRUUwNTNCMzhCN0NFNTlERDVGMjc4MkI1QjM2MENGRjc4QTA5REM2QzIwOTNGRjU4MTI3CitDRDc0MzU1RjdGQjA4Mzc0NjYxOEZGNkI2MUVEMUUxMkUwNzU4MkZFRTdDNzgxOTVDNjI1QkM3RTkwMjYyQzUyCis4RkMxMDE0NEI0QjZGOTkzMDNBRERENjZDQ0M5M0FCQjAzODdFMUU2MUM5MENFRkZDRTE2REQ4Q0U0RjZCNkI0Cis0RjdBREJCMDExMTQ1NkI3QzJEQUE5OUM1RkY4QjA0RkZBNzdEQkMwRDgwNjM3OTYyOTZEOEI4NzAwNTQ0NDM3CiswODk3QkE3MTc1MEU5NDcyMDkzMzAwNDVFQzlERkFBOTE5RTY0QkNCOEYxQjU2OTg1RDE1REJBNDkxRThFMkVBCisxNEZDOEIzMUNENTUyREM5NkZBNDQwQUU5OEQwNDk1NEQzRTdFNUJEQTA2ODFGQTI3RjMyRjlCRkQ1RDRDMzY1CisxMjhCQkM4QUY0N0ZBRTIwMzlGOTBEMEYzMEQzRENDMTQxQjk5RERBODE1MUUwREIyNDNFNjIxMEExODM1Q0YxCis3MTU0Qzk2REJDMkM3MjNBNzU3NjU4MDc0N0FBMTg0NTJFQzg3RUNDMkY1NUY0MTkzNUM4RkVCODBBNjkwMzUxCis1RDNGM0U2Nzk3MEZBOTNEQkJENjI2QTUxOUVGRkY0NzU2QjMzNjQxRjU2RjdEMTZCNzcxMkZEMDlDNzI2NTcyCiswOTMyMTY2QTdCQUFEQTNCNDdFNzI1RDc0NTY0QTE1NUUwQkMxQ0Y4RTVCQzA1RjJENDk3MEFERjYwQkZGMTYxCiswMUY2RTMxRUY1NzdGOEZCNzU2MEIyQ0RGNzc1ODM0QTJERUI2QjMzN0QwOTZFQzJCREYxMTNBQ0YyN0UyQTc5Cis2RTY3MEMyRjE3MzkyMDZERjA1MkQ0MzYxOUQyMDQ2MUU1MkRGRUVGRDdBN0E3RjMxNjkwQjcxRUYwNjJFRjMxCitDOUZGMzIwNUZEQkQxQTJBM0RFQTU1MEJEM0I2MzczQzU5RjRDRTVDQjg0NUY5QzYyOTdGRTU2NDFFQjkwMjMxCitENEY2QTJGOTE5MTY0Nzc5Q0Q1MjdGMUMxNDJBRDdFNDdBNjNBQkMyNkRBQ0FDNUMyNzhFRjRBQjZCNDEyMUNGCis3OTM0NDNFMUUxNzE4NzBFOTVBMkFCRTA5OENFMEExNDdDRDM3MzY2MEJCMjBCRjRBREFERUZGNDY0MkZBMUM3CiszOTg3OTZFQTlGRjY0MjI3MEQ2MTc2QUJGNURGRjVCQjAwMkMyQzAxQTlDNDJEQzNGQkExNDUzQjY2MzJBRDY3CitBN0VBQzkwNzRDRDExRDJDRDQ2Njc1REEwRjkxMENCMTNCRjQyQTE1NURGQTMwRkU1ODJENEZCMTlDNkQ0NUIxCisyRjNDOTI5NDdBOEEyQjI2QjgxQ0M5NzQyMUExRjU5NDZDNDIxNzE2NzVGMEExOTQ2NDc1OEUwRDY0QTlEMzI0CiszRTNDNDVDRTlFNTU2RkM5NDI1NzJENDUwODQ4NUU5NTQzMjM5RjI2QzA4NEQwRDY1OUQ1QjMwMTkyOEYwMTRECitEODU3NEE2OUQ5MDQ2QTJBNEZCQTZDOTkzMzQxQzExOEUwQUE3MzY2Q0JDN0M0NUVGNzE3RDYyMzNCOUQzRjE5CitDNDZFRDcwNUQwNjk2MkU4MDM4M0UxMDI4OTY1ODc5OTlFMkE5RjA0RjAyMDM0OEEwRUU1RUU2MTA1NDgxMEMwCisyNkM1M0RGRDYwOEU4ODVCNkYyRjJFMkFCOUU4RkQ2N0U2MDU3RDQyNDQwMTAyRDVDRTJBQTA2OTgyQjE2QTNBCis2QTkyODRGNTlFMTNFRkQzRUE4QTVCMTY3OTg2NEUwNTVBODc4M0ZFNzRFNEIyQTI4QzVCOTY4NDAxODM2QzgzCiswQjk0QUQ4OTA4NEIwQTMxQjU3N0UxQ0NGMTU3ODUxODg1RTQxRkU3RkYwRDVEMjE4RUFFQ0VFMkQyMTMwQTMyCisyRkVERURFQzhCOUY5MjIzQ0EzM0E0N0I4Q0UwNDJERDdCRDM1QjVCMjRCQjlGMTE1RjVENTIwNEJDQzA4NTdGCitDRTMyOTY1NUQ3MkNBRThDOEUxNUY1Mzc0MDcyNzQ0MUY4QjI4NTUxMjZCQkU3MEYxNDRFOTg5QzMyNzE3M0FCCis2OTk2QUVEQUM2NzhGNUJERDE2QTkyQzI4MzdDNEVGQ0RDRjQzODA0QkQyQTE0NURENTQxNzBCMDk0MUJDRTgxCitBMTc3NzFFNTIwMzg4QUM0RDBFMjJENjA4NEJBQTgzRjFGNEVCMUQ4QjJFMENCODQ5NTRFRERDOEU5QjNBNjE2CitFRDNBOTFDRUREQjk3Mjg0OEU4M0UzQUMzRUNFM0JBODY1QkVDN0M5NkE0NTg2OTU1NjgyRTQ2ODBCNEMyMzY0Cis4MDU0RUQ1ODY0N0MxOEEzQ0RCOEFGNUM3MzZDMUU1MDM2Q0I3QTA5Q0FFQkJDNkZBNDdCNjk4RERGMEFDODFCCisyNDA3QjQ3RkU2N0VCNzRCN0REQUVDMUFBOEYwMzI3QkIwMDVENEUzNzUxNTBEOEZDNjk0NDRGREI2RDdCNjhDCiszOUNBQkU0QzdBMEZDM0NEMTYxODQzRUVGQjFBMzAwM0YxMDlDN0YxODc3ODFFMTlDQjA2MDA1NEZFRkEyMUQ0CitDOTc3OEE5Mzc4MTJFOEYwNkRENzBDNTY0MjRENTdCNDQ0MUE4RDExODc2OTU4N0IxRTQ5RjA5MENEMTc5MDgxCiszQzMzQUEzMzA5RjNDQkM2OTEwODEwNEM3RjY4QkE4OUM4QzFENTAzNTA3REUzQTJGRDJDODE0OTFEQjFENTExCis5ODc2RUIxQUQ3RTY2RkNDQzY3NURBNEJGMjVGMTUwQkQzRDBGNjIyQUQ3M0M2QzgwNUYzREE2QjI2NUNCQUUxCis4M0FFREZGNDI0NjFENjNFQTMzODUwMkFFNjI2MTk4ODA2OEUxQzUyRTVFRkM1QkUxRDBFMDE3QzJBQjdGRjJGCitCMjdFNDJBNEE3RDhDRTg2Q0I2RjM2RjdDMjE4Q0I4ODAyMzBFQTczN0NDOTcxRThENzA4MjVDNzUyMEU1RTMzCitDMjExMEUzRTI2RjUxRDMwQjhGMDU4MjI4RTVEMkM0NTk2NkQ5MTA3NzI1MTQxOTA4RTc0QkJCMjEzMzM5RTdECis3NDM3RUVDRUFFQkFDMzlCQUQ2QTU1OTVFRjY2RTZCNEJDRTJDNTY1NTk2QjBGQzUwNjlDRkMxQ0Y4QjM5NjAwCitFRjNCMkJBOTIyMjk5MUJFRTlDNTVENDQzNEFENzYxNjg0REEyQjYxRUEzOTlBMkI1M0EyRDJFODlDRUZCNkI5CitEMzYwNjg1NDg3MzQ0NEY1M0NFMUEyMjMwRTM4MzZCMURENjUyNDY0NTUxQUI4RUNCOTRDREQyOTdDMkFDOTA2CiszNUI5ODA2ODBFMTJBODkxRDZGMzlEQkI3RENBREY4NTMzOTRDRjQ2RkVDQ0YwQzgwRDhGRDBBODIwMDkyNTZCCisyMjkyNjEzOUE1Q0Y2QTA2RkZFNkY0RUY2RDE4NDM0MzZEQTRGM0YyRUNCNTA0RDNDOTE5NjFEQ0I4Rjc4QURGCis2QThEMDVENDAyMjVFMTI1RjdBQ0UwNTMwQjI4QkQ4NkJFRTI0OTlBQTRCNjJGQjUzMzI5QUVGNkQ2NkIxNDI4Cis2NzMxQzNFNkE1QUY1OTI2RjlENDA3RTk5OTlGQ0JGOTU4MDYyN0YyNUFBRTA2REQzNEJEQThDQkExNzk2MzRDCis4NTU4QjlFMjNFM0NERTMwMDUzRjg3NjNCQzY0Q0Y1OTVCMjVFOENEQ0VCRTE1OTE1RTc5MUU3Mzg3QTJGOTc5CisyMEEwRUFDQzE4QTM4MDU1QUFGOTE3RTZDNzY4OTgxQkZEOTQzODBEN0MzM0VCMDQwODYyMzZFRDc0RkIzQjUwCis1NkI5ODkyNDEyQkNBNjdEQ0REMjdDQzUwOENDOTRBRDUxRjdGRUUyRDYxMzNCQjMxMDI5M0JBOUUzNkRFQzI3CitFMDE0MjgzRUJCOUE0NkRBODg3Q0FFQzhCOThFNjRGOUE0NDQxRDI1NERGQjIwM0Q3ODk3RkVBNTRFOEI2QTk1CisyRjJEMDBCNzVFNEFCNDU4ODFEQzEzNjFDMzdBQzEwMzFBQjg5RjI4MDkyOURGQjlGQTkyQkNEODdFMDY1RjUwCis3RDBGRkYxMzA5QUQ0OUQyNTlENTlBRkE4MjVGODkyRUU3RkIzMDNERTUxQUVENDkzNDM2QjVCMEJBREM4OTQxCitENUFGNDE0RTQ3QjNEOTQ5QzU0MTFBNDdFNTg3MjczMUU3OTdCMzg1QUE4MDdEMkQ2NjUxQTc4RTQ1QTk5OERDCisyMUREOEIxRjk0MzcwRUQ0NkNGMTY1OTE1RTg4NDUzN0REMUI2NDQ4OUJERTQ1NjAyODU5MkVGMEM2MDQxRTU5CitEQzYzNEI1NjRCOTZCM0E1ODYxNDk3REJFQTFGNkYwNkVCQzEyNUU3NEM5NEJCODUwMjIzNDNBMkJCQjdCNzI1CitDMkFFMjdCQTc5MUZBNjlFRUZGMUIwREQzQkM1QjgwQjdDRjU2QjUyNzI5QkFFNkU1NDgxMEFDOUQwMEMyOUI5CitDOTQ1NUYwMzlDQjVFREFBQkE4ODdGODU5OEVCMzkwRDVEMjhBRDM4N0Y0MjkzMjFBOEQ1RkFGNjFCRDhEQ0E4CitBMjVBQ0M3MTMwQzgwRDlFRkVGNjMzRDQ3QkE4MDAyMkFBOUNGNDc3RUMwNzNEMkZDM0NCQzRENjg1Q0JEMjM4CisyOEU5RTg5QkU2NDhERUEyMEIxNDY3RkNGQzQ4MzgxNDFCQzZBQkZDMDQ2QzVBODBDMjUwNjYzNjM3Q0IzNTZBCitCNTgwODAxNzhGQ0Y3Qjc4RTU1MjQxNUQwNzFEMTE2MjUwODFBRjQ3MDhFNzhEODQzNzM3QjczNTdFNjM4REE5Cis1MDFCQ0VGMTEzRUU5NjFDODQzMzlFOTEyMDJFNUUyQUM1N0JFOEM2MzYxNDFGMDNBOUNFOEU5N0M3QzhGMzc0Cis2QUZBMzM1RENFMEI2QjY4QzdEOTRDMUI2RDBDNzNERkY4MzI1ODBCMkQxQjExOTM0Mjc1NzhEREMxODk1REM3CisxQTlEOEI5Q0UzMTU3RkZEMTE4Q0YxMTFCQTMzRjFGQkQ0NDVEQkVCQzFEN0NEQTU3MTM4NThDRjRDREEyMjRGCiszODIwMUJFNTJGMjk0N0QwOEYwMjgzNzhFNzg3QTI4MzdBQUZCMUVCNzM4RUJFRjRFQkYyQjM0QkNBMUYwNTI2Cis4Mjk1Q0JDNTE3RTMwQ0U0OUI4NkYxOTZDMjZEOTgyRkZFNjUwQkMyQjI3NjU4M0Q3MTZEMURDQUYyNDI2N0U3CitBNTUxMDA2Njg3Njg0MTc0RDcxRDkyMEQ3QzFFMkZBMTJBN0M4RjZCNUNENEU3Nzk0MkQ2QTk2QTExMjA3MEE4CitCQ0I1NkJDQkVGOTNBMUNFMjU1OTg0QjkzRTkyQUE4ODU0NjkwQThBRTdENDE2NDUwODY5NTM0Nzg3RkRDQzVDCisyM0FBRTM4M0UwNUFBMzE1ODFFM0YyRjMxNTMxQTQxRjUxNkRGRkNDQTMzQkQxNDdGMTAwQ0U4QzExRDNEM0M0CitDQUI4RTEwREY3NDI1RjJGQjA3QjEwNUY2MEJCQ0I4Rjc0MjkyMDExODBCNEFEQkJGOTJCOTkyMDM4Mzk0RTVGCiszNDZBN0Q0QjNDMTJDRDlBMkE1MDg4NEQxQTQ2NUJDQzgxRURBOEQwODExMDhERkYxRDhCRTY3QkM5QzM5ODEyCisxMkI2NUE3MTJEM0FDRDc1Mjc5NzZDRkUxMjc2QkVGRjQxMEQwODA0M0ZBNTJBM0VCMkM2RTM2M0Q1RTg2RDI0CiszRDQ2NEE2ODhGOTQ4MkE3OTM3RDlGNkY0NjhCMkFDQUQxMTczNzhGQzk5RDk4MjM4QUU1OURCQzYyOEMyRURECiswNEI5RDBBMTE5OUE4OTc5QkRDNjhEMEI4MjBDMjJFNjU5MzdDRTg5MTcwNDgzRkRGOUM0QjNCRDhCMTdEQTkwCiszNzc1NjFFNkQxRjQwQURDNjU0OUE1RkQzMzZEQjIzQUI0ODUyRTRCNjk2REQxREY3N0Q5QzBGNzBGNjEzMzVBCis4MTFFQzBCMEQ4RDlDM0MzN0NEOThBOTA2RjVBMkI0NDg5QzI5REY4RjQ3RkQ0RDNFODk2MTQ1ODEzNUY2QUE2Cis3N0VEQjRGMTc2RjIzQ0MxNkQxOEZFQzBCMzkxMUY2Qzc1QUMwOTA5RDQyOTc0ODg3NjQxRjM3NkU1QjNFQkUzCitCMjBCMThGRjIyMjI1RjBDMjFGNzk1RDIwMkI1Rjk0MjU0N0Y0Mjc2MTc2MTg5OTNBQUEyQjMyQTgxN0Y2NTcyCis2OUIxRkU3NkZBQ0QyOTIzMzdGN0YxNDMyMjM2QzE2OEEwRjBENTFDQzY1MDdDQTlEN0M4Rjc3Qzc4NEM1MERFCitCRDJEQjc4M0M4MkQ2OEVCQTk5NDNEMzg5RTQ0MkQyMzFEREI0NEYzN0MxODVCNzk1N0I2MjNFMjE5NkNERTM4Cis3QkJFMTA3Mjg2OEU1RDkxRDZFRjFGMDZCQ0FDMjQ2OTY4NkI3MTU1RkE4NjcxMEFGOTUxMzY0MUUwRjhFMjYwCis0NjRDODVCNDRFNTFBN0MzRkI5M0Y5OTQ2NUQ0NjY4Rjk5NjY0M0VCMjM4RTNFNTUwNjEwMjQ2RTAwMjE2NjY2CitBNDlBM0ZERDBDQUExMkRBRDAzQTNGNjIyMkU5N0NGNDFGQUQ0QUMzNjg3Q0U5MzExQzc0MkUxRTdCNDk4OEU2CitGNkNEMTMwQ0M4MTg3ODczQ0QxMDYzMTdDMjIxN0U1OTA3MTBGRUU3MDdEQTVGMkRDQTVEOTEzMzQ0RTJFNDk5Cis3NEQwRDBDNTE5REZCOEI3MzRFRTZDQkRBODNCMDlBQUQ1MzhDQ0VDRkI2NjVGRjMxODdFRjBGNjQ5RUZGODBDCis0NDk4QTU4NTcxNkJDQjlFRUI3OUNFNDVGQzc0QTI1RDU5RjlGMjU0QzBGMTkwMUE2NTVGRjQzRjcyQkVFOTFCCisxMjNFMkNDODYzODhGQUU0RTJCMDBDNTNCNjEzN0M2NDk2NTBEMDk3NzYzODE2QjYwQUJEOEVEMURFODEwRUY0CitGMUEwODAzNDFGODg4NzRCMDlDMUIwNjkzNjUzNTY2NjgxQkIzNTU1M0NEMEJGMDdFQzUzMjIyMjg1NTVENDU5CitBQzlDMEU3N0QzMjBDMEFGQjU3RkFDMTUyNTM0N0FFNTAyRDY4NjI4OTdCN0NCQjlDMzVCNzc5OUQxOEVGRjMyCis2REUyNzFBMkM4RDhCN0MwOTI5RTY5NDc3QTc3RjM3ODU4QUJDMTRCQ0U2OTAyMzBBRjYxN0JGOEFCNjIxNjg5CitEMkM5Njc2QjM1NUM2NzJFQTRGRjM2OTYxN0REMEQzNjg0NURCMjEyQUI3RTM1RkE1MjFGOEYyMzA5MjI4RjhBCitBOEM0N0EwMTI1OUQ4RTRCN0FDNzMwRDg1MzM1NzY4OUYwNjU0OTY5QzRGRjZFOENCNTMzMTcxMDczNTY3MkFCCitDRkUxN0E4N0RDNTg5NTNDNzc4NzM2QUUwQ0M1REIwRDdDRkU0MUFGMDZFRjZERTBDRjExQjAyNUQ4NTk5OUMxCitBRjUyQTQwNUYzMDgxMTAzRDVBMjE5RUQzMzI0NDRCQUI3N0Q0MThCNjA4MEE3QTRBOTMyMDAwMDA5QTYwNzQ1CitBRjQyMzlCOUUxOTQ4NUZGNjFBMUZGNjI0NjIxNzE4QTc5OEMzNzBBRTM4NUY2RjMwQ0I1MjJBQkQ5ODEyNzhECitBNzcxRTk1MjM5OUFCRkE3NERCMUU3NTA1RUQ3NDhERjRBNzk0MzMzQzEzNUFFRUEzNjhBRTRGQjgwMjgwNTY1CiswOUJDRUJDNzM3RkEzMEQ2NjAxMTc0MTVFQkY2RDg4M0NDRTBCOUI1MjU2MjQyNEQyQjg3NEIxQjcwNzg3MjIyCitCRDEzRUQzNDVBNkNCMTg2RjFCMzY4NjU2MUQ0RTc1Nzc1OERFOUUzQTBCMzI4NzYzNUJEREM2OUEzQTMzRjI3Cis1QkQxQzE2NjMwOTk2MTMwN0M0QzNGREE0RDhCREU2RTA4RDAzQjk0MUZEQzQwMTA1RkZGNTMyMjY3NDI2MTNGCitBNDNBRjg4MkZEMkQxNDIxODdENjk4QjgxNTcxMzc0QTNFQTUwMUY2RTY3NTAyNjFEMkFGM0M3Mzc1MzJGQTg3Cis3OTg4RkZBRkE2QTk1NzA2QkI3OUU2RDAxQTgxMTRFNDhEQzkzQkUyMDdDQTEwMzdEODM4ODFGMjk1OTFERTFDCitBRjkwOTgzNDc3ODBEQzc3RjM5MzQ2OUM3MDEyQzQyRDMxQTFEOUNFNEFFMkZBRDRFMzk0OEUyQTUwQUFBRTMwCisyOTJCQUZBNkY5ODBERkE2ODdGRkJGOEY3MkI0QTBEQTE2NjcxQUQyQ0ZENjVEQzM1MUQzRkUzQUY1MUQ2NjZECiszRTBENTZCNURFMkEwQUY0QzQzMjI0M0UzN0JDQTc1NDI4RjZEREYwNzhFRDUwMUY5MTkwRDFCMTMwODVFRTAwCitDNjUwNjczNjgwMTIzMTRERDFDRkM3QkM5NDZGNjI2RjhDMTMzOUE3OTIyRkUxRkU3QTY5RUNCNkRENjk1RkRECisxRDk4ODY1MkVFODcwN0QyOTA5QzVEOEUwQ0U5QjQ5OThDREQ3NTUwNDQ0NTBGMzE0RDc2MENFMzEyOENCNTEyCitGODUyRTI2REYwNTZGN0I1RTNBMkE1NEREQUFGNjM1MTE5M0RENEJBMjkyM0VGNDBENjM4ODMyNEFBNzkxM0E4Cis0OUI0RUFCMkU2RTU1MkRFNzgyOUMwQ0M2RkQ2MEMwRjkxMDk0MTFCOUVEQ0M4RUNFNDBFOTY0MjJGMEE4NzFBCis4QjJFQkM2MEYzRDc3RjlGMjU4MDJDQ0VCQTc0MThFOEMxQjlEOUI5RDY0NTAzRjk2Q0FDNTI5MDgyQUFFNzcyCisyQjBBMEE3RQorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorY2xlYXJ0b21hcmsKKyUlRW5kRm9udCAKKyUlQmVnaW5Gb250OiBDTVIxMAorJSFQUy1BZG9iZUZvbnQtMS4xOiBDTVIxMCAxLjAwQgorJSVDcmVhdGlvbkRhdGU6IDE5OTIgRmViIDE5IDE5OjU0OjUyCislIENvcHlyaWdodCAoQykgMTk5NyBBbWVyaWNhbiBNYXRoZW1hdGljYWwgU29jaWV0eS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKzExIGRpY3QgYmVnaW4KKy9Gb250SW5mbyA3IGRpY3QgZHVwIGJlZ2luCisvdmVyc2lvbiAoMS4wMEIpIHJlYWRvbmx5IGRlZgorL05vdGljZSAoQ29weXJpZ2h0IChDKSAxOTk3IEFtZXJpY2FuIE1hdGhlbWF0aWNhbCBTb2NpZXR5LiBBbGwgUmlnaHRzIFJlc2VydmVkKSByZWFkb25seSBkZWYKKy9GdWxsTmFtZSAoQ01SMTApIHJlYWRvbmx5IGRlZgorL0ZhbWlseU5hbWUgKENvbXB1dGVyIE1vZGVybikgcmVhZG9ubHkgZGVmCisvV2VpZ2h0IChNZWRpdW0pIHJlYWRvbmx5IGRlZgorL0l0YWxpY0FuZ2xlIDAgZGVmCisvaXNGaXhlZFBpdGNoIGZhbHNlIGRlZgorZW5kIHJlYWRvbmx5IGRlZgorL0ZvbnROYW1lIC9DTVIxMCBkZWYKKy9QYWludFR5cGUgMCBkZWYKKy9Gb250VHlwZSAxIGRlZgorL0ZvbnRNYXRyaXggWzAuMDAxIDAgMCAwLjAwMSAwIDBdIHJlYWRvbmx5IGRlZgorL0VuY29kaW5nIDI1NiBhcnJheQorMCAxIDI1NSB7MSBpbmRleCBleGNoIC8ubm90ZGVmIHB1dH0gZm9yCitkdXAgMCAvLm5vdGRlZiBwdXQKK3JlYWRvbmx5IGRlZgorL0ZvbnRCQm94ey0yNTEgLTI1MCAxMDA5IDk2OX1yZWFkb25seSBkZWYKKy9VbmlxdWVJRCA1MDAwNzkzIGRlZgorY3VycmVudGRpY3QgZW5kCitjdXJyZW50ZmlsZSBlZXhlYworRDlENjZGNjMzQjg0NkE5N0I2ODZBOTdFNDVBM0QwQUEwNTJBMDE0MjY3Qjc5MDRFQjNDMEQzQkQwQjgzRDg5MQorMDE2Q0E2Q0E0QjcxMkFERUIyNThGQUFCOUExMzBFRTYwNUU2MUY3N0ZDMUI3MzhBQkM3QzUxQ0Q0NkVGODE3MQorOTA5OEQ1RkVFNjc2NjBFNjlBN0FCOTFCNThGMjlBNEQ3OUU1NzAyMkY3ODNFQjBGQkJCNkQ0RjRFQzM1MDE0RgorRDJERUNCQTk5NDU5QTRDNTlERjBDNkVCQTE1MDI4NDQ1NEU3MDdEQzIxMDBDMTVCNzZCNEMxOUI4NDM2Mzc1OAorNDY5QTZDNTU4Nzg1QjIyNjMzMjE1MjEwOTg3MUE5ODgzNDg3REQ3NzEwOTQ5MjA0RERDRjgzN0U2QTg3MDhCOAorMkJEQkYxNkZCQzc1MTJGQUEzMDhBMDkzRkU1Q0Y3MTU4RjExNjNCQzFGMzM1MkUyMkExNDUyRTczRkVDQThBNAorODcxMDBGQjFGRkM0QzhBRjQwOUIyMDY3NTM3MjIwRTYwNURBMDg1MkNBNDk4MzlFMTM4NkFGOUQ3QTFBNDU1RgorRDFGMDE3Q0U0NTg4NEQ3NkVGMkNCOUJDNTgyMUZEMjUzNjVEREVBNkU0NUYzMzJCNUY2OEE0NEFEOEE1MzBGMAorOTJBMzZGQUM4RDI3RjkwODdBRkVFQTIwOTZGODM5QTJCQzRCOTM3RjI0RTA4MEVGN0MwRjkzNzRBMThENTY1QworMjk1QTA1MjEwREI5NkEyMzE3NUFDNTlBOUJEMDE0N0EzMTBFRjQ5QzU1MUE0MTdFMEEyMjcwM0Y5NEZGN0I3NQorNDA5QTVENDE3REE2NzMwQTY5RTMxMEZBNkE0MjI5RkM3RTRGNjIwQjBGQzRDNjNDNTBFOTlFMTc5RUI1MUU0QworNEJDNDUyMTc3MjJGMUU4RTQwRjFFMTQyOEU3OTJFQUZFMDVDNUE1MEQzOEM1MjExNERGQ0QyNEQ1NDAyN0NCRgorMjUxMkREMTE2RjA0NjNERTQwNTJBN0FENTNCNjQxQTI3RTgxRTQ4MTk0Nzg4NENFMzU2NjFCNDkxNTNGQTE5RQorMEEyQTg2MEM3QjYxNTU4NjcxMzAzREU2QUUwNkE4MEU0RTQ1MEUxNzA2NzY3NkU2QkJCNDJBOUEyNEFDQkMzRQorQjBDQTdCN0EzQkZFQTg0RkVEMzlDQ0ZCNkQ1NDVCQjJCQ0M0OUU1RTE2OTc2NDA3QUI5RDk0NTU2Q0Q0RjAwOAorMjRFRjU3OUI2ODAwQjZEQzNBQUY4NDBCM0ZDNjgyMjg3MjM2OEUzQjQyNzRERDA2Q0EzNkFGOEY2MzQ2QzExQgorNDNDNzcyQ0MyNDJGM0IyMTJDNEJENzAxOEQ3MUExQTc0QzlBOTRFRDAwOTNBNUZCNjU1N0Y0RTA3NTEwNDdBRgorRDcyMDk4RUNBMzAxQjhBRTY4MTEwRjk4Mzc5NkU1ODFGMTA2MTQ0OTUxREY1Qjc1MDQzMkEyMzBGREEzQjU3NQorNUEzOEI1RTc5NzJBQUJDMTIzMDZBMDFBOTlGQ0Y4MTg5RDcxQjhEQkY0OTU1MEJBRUE5Q0YxQjk3Q0JGQzdDQworOTY0OThFQ0M5MzhCMUExNzEwQjY3MDY1N0RFOTIzQTY1OURCODc1NzE0N0IxNDBBNDgwNjczMjhFN0UzRjlDMworN0QxODg4QjI4NDkwNDMwMTQ1MENFMEJDMTVFRUVBMDBFNDhDQ0Q2Mzg4RjNGQzNCRUZEOEQ5QzQwMDAxNUI2NQorMEYyRjUzNkQwMzU2MjZCMUZGMEE2OUQ3MzJDN0ExODM2RDYzNUMzMEMwNkJFRDQzMjc3MzcwMjlFNUJBNTgzMAorQjlFODhBNDAyNEMzMzI2QUQyRjM0RjQ3QjU0NzM5QjQ4ODI1QUQ2Njk5RjdEMTE3RUE0QzRBRUM0NDQwQkY2RAorQUEwMDk5REVGRDMyNjIzNTk2NUM2MzY0NzkyMTgyOEJGMjY5RUNDODdBMkIxQzhDQUQ2Qzc4QjZFNTYxQjAwNworOTdCRTJCQzdDQTMyQjQ1MzQwNzVGNjQ5MUJFOTU5RDFGNjM1NDYzRTcxNjc5RTUyN0Y0RjQ1NkY3NzRCMkFGOAorRkVGM0Q4QzYzQjJGOEI5OUZFMEY3M0JBNDRCM0NGMTVBNjEzNDcxRUEzQzdBMUNENzgzRDNFQjQxRjRBQ0VFNQorMjA3NTlCNkE0QzQ0NjZFMkQ4MEVGN0M3ODY2QkFEMDZFNURGMDQzNEQyQzYwN0ZDODJDOUVCRDREODkwMkVFNAorMEE3NjE3QzNBRUFDQ0I3Q0NFMDAzMTlEMDY3N0FBNkRCN0UwMjUwQjUxOTA4RjkwQTMyQzQxNzVCNkJGQjI3OQorMDI0RUFFMUIwNEQ3MjFBNkM1NEZENjI0ODRGODk0OUIyQ0U5Qjg3RDlDRUUwNERGRjgyQkYxNDkzMUIzQ0EwMworQUE1RjcwMUI2RjgwQkJDREYyQzQyN0M0MEE1MTU5N0YwQjFCRkEyNUVERDdDRTBFQUYyRUM2NzZCRjAwNTlCNworMTVERDU0NjJCQTMwREU3OEEwOERENTMzREMwRThEODVGOURBRkM1RkQ4NDJGNDE3MjY1NDI3RTBGMUI3MTgzNAorRDJCRjZFRkFDM0NDQzQwRDNFRjNCMkUyMDgwRjE0ODQ0MUJBNDVFNUQwQzBGN0Q4NDE2NzMwQUY0QkU0RkM5MworMUU5NjU1OTRFMDM2NEYwRDRGMUVDNDgwMDRDRUJEREFGQjFGMEVFMEE4MjIyMzU4RUFDMEY2MkU2QkZBM0M5RgorNDY4NzVFQjRDOTk5MjE5QjkxRTYxNDdBNDlBNjY4NTA1NjY3MDMwQ0RGMzQ5NTY4MkI3OUMwRjYxNEFBRUU2OAorRDk3NkVGQ0RDQjA0MTI3QzBENzMyNUEyMjExRTQ5Q0QzMTY5MzVBMEI0NzJEMUY5RkZDNjhGN0ZCRUJDNzU4MgorMDM2Q0IzOTMwMTYxOTNBOTc4M0REMDhENjQ3RTg5QzVCQTRFRkM4NzAxQkNDQjZBNUMwMjdDNEZBODY0NEMwNgorMjUxQjlFMzNGRkVCQjFCODRBQzRENEIxNDgyMDVDOENBN0FGNUVGOTdGMjc4OEVGQjBCNzE0NzNBRDBGNUVCNAorRkM0M0Y0NjYwMkM1M0U1M0Y1QTZEMUU0NDU0MzlGNjU5NjdDNTFFQUI2MzYxNzhGQTM3N0RCMkRERTVGRUY0MQorOUU5MUYzQkVCQ0ZCRDNCNEVCQjUxMEEwREY3RjREMTlDNjU1MkJDOThGMTBFMjU2MTJCMTM5NjAyMEQ3ODM2RgorQTNEM0M4NjU2NjFEQjI3NkU0MjhGMDlGMDQ4QTkxNkI0RjA3RDhGRDAxQUMxOTQyQTNDQTM0MkIwRTUzMUJGMgorM0U5QTdBRjI2NUFDRTE1ODVFMzMxQThGOEI1QUUwNkZGMDg1QzFGMzQ5MjE1NTgxRkM3RDY4RDE2Mzk1RDkzNAorNzlCM0JEODY2QTRCRjMzOTEzREVCNTRCNEQwMEVENUVGRjMzMTNGQkQxQzVFNkFDNDMwNTY3ODcyQkQ5MzVGMgorQUYxQTNGODkyMjY2Q0VBQzE1REVGNDNCQ0I4M0RCMDc1QTY5RUFEN0QyRUE1MzMwM0Y2NUUwNEM1NjczNDExRAorRURGQjMyMTU2MTIwMDk5QUMyMTBFNjIzQkFEREYyOTkxRjk2ODEzQUZCQzExMjZERjUzQTBBNzc2QUY3RDYxQQorNkI0MjIyNUE1QUFDMUIwQUZEREI1OUM1OTIyMTQzQTE1NkVFRDc2RTNFMUVEMDFFQ0M2RUQ5RjYxQjU3MTFEQworQzU3MDlFRjVBM0NFRDQ1NjI4QUMxNzI4REZFOThGMDczODk3NzdFMDRBN0U0MDdFM0IwMDcwMTdDOTZGNkVFNworRDBGQ0MwNDI2QzRENzM0QTBCMTA4RkQyQkVCNDhGRkI2RDEwN0M1QUI4RUJDMzU4NEYxM0E0MEU1NTA4QUQ5RAorNUEwODEyODZCRkNFMUQ1REFGNUYzRDg2NTE1MjQ0QjREMEQ3N0FGOTgyMEE5M0I3QzkwNDIwRkY0QjhENjM0QworMkM1Njk3RTNFMDQ4MDJFMkNEN0I5QUI4MzY4RjFBOURDMjE0Q0Y4OTNBRkM3QkEzQThEQzI0QjBFNTQ5RTEwNgorRjA0NTMwNzA4REQwMzM2N0Q4NTAxNjU1QjE1MDE2NDVGMTdFNTQ3QzFDOTQ4REVBN0E0ODE0RjIyRTJBMUQ1NQorNUFGMTZDNTVENkJCNEVFOTkyOUM5Q0VFODJDNEQ2QTE2RDcwRDE3QUZCQkM2NTUxQkIyQzlEOEI2OUY1REFFMgorNURGNkMyMTg3QUNFQjExOUVFNjA4N0JBRjVFNzkzNDBEMTE1QzUzRTcxMENDN0U0Qzc3MUY0M0FERTkxRDJFMQorMUFFRjdCQjJFNkM5QUJFRDAxMEE4MzU1MTRFRUI2QzlBMkM5MzM5NkZBMTJFOENEMEIyRjkwNDU1ODdFNTFEMgorN0UwNTkyMjRBODg5QjNFNzYyMEU1N0FCNkNBQ0ZENzY5ODk4QjM5NTU2NjE4MjRERDRBRkNCOUE3QjIxOERGOQorRjg0QjM2OUY1MkUyNDY3MjNDN0QwQjI2QzE0NURBMEFGODFDODNEQUEwOTExNDNGQkJCRDJBNDE0MTE0RTM0QworN0M5OTREODQwMTExOUQ1QTQ2ODU2MzY3RUUzRkJCQkIzMjE1NUEwMEU1MzE0NjQxMjg4QTZFMUZDRTQ3RjM4NQorNzFDMkY3QTc2MDJGNzc3QzExODg0REVGRUZBNTYwMzMzNDU4REQyMjdFNjNGM0ZFNjhBNzYyQ0FCMEE3MzA4QQorRkM1OUM5QjI5MzIzM0RGQTI1N0U1RDEwQkQ1RjEyQjc2NTJDNDVDNEM1MEYxNEYxN0U1OUE3NThCRDczNTVFRQorQTg5QjFFQzk1NEI4NjY0MkI4N0Y4MTRGOTM2NTc3NDI5QzQ2N0JDOEU5N0E0ODFFRDE1RTI2MzNBRDczODMwQgorRERFM0RFNTBFMUVDNDM5MjA0QzdGRTM1MEM2OTQ5NDgyMzcyNTkyMDcxOUQ2MTM5MDcxNjNBRDYzRkU4M0M2RAorMUNCNkRBODFBNkM4MTZDNzQ3NTQyQ0EwOTQ5MzMwNkI0NEE3RENFOTM0Qjg3N0REMzU2RjM4RDA3RDNFMDM1NQorQ0IxNDlCRTZFRDY0NkU4NERCOURCNjE4NTlGNkZDNDVCQ0UxM0VFNDI0NThEMTk5MUFDMzRBQUU2RUE3MjMyMAorM0VDNjM0NkMzOENBODcxMDc2MThFRDNDNDZDMzMxNjIzRDhGQUFDQzZDRjkyOTJCOEYxQjQwNzgwNkEwRDQ4MAorOEY1MUE1QkM5N0Y2QjI2NjIzQkI5NkU4NjJGMEJEN0ExMkI0QTI3MjkwRENCRDQzOUJFRjg1MEM1NUREOUQyQgorNjExNjM4MzI4RjVDRDI1REU1Qzg5Q0FDMTE2MTE2RDY3MkQ2MkVEMDA4Mjc4OUFGNzY4M0RDQjA3NjIzNzUyQworQTkzNjQwQTM3ODEyMTlFMTBEQTI3Qjg3ODc4NzlBODBGOUU5MUFBM0UxQUVGOTREMjE5ODcyOTgxQkMwNTA4QgorRTc2ODE1MkU4QzM5Qzk5RUJDNDM0NUJDNkVBNTE4RjBGOTAyQjhGNjJCRTQ5MDk5RUU5MzUwMUZFNjI0M0Q0NQorOTUxQUI2MkE0OEZCMDdBNUNDQzM3MkIyMjMxRDA1QkQ3RDA3RDk5ODk1NEEzRUUzNDk4NjE0MzY5OEE1RkM5NAorRjkyMTY4ODExODYwQzUyOTk3NDgzMUFBQTY0NjZDQzczRTY5MDI1QUE1MjI0NTRDQjc4OEE4RENFRkU3NTA3MQorRjY4ODZDNTk1NTkzRUQzN0VDRUE1QzNGMzk1Q0I1NUQzMkMwNDE1OTgyOEY1OEQwMDM0MjdDMzgyNzc4OTg3QgorMzVEOEE0RDI2MTNDMkZEMTc1MUNFNDYxRjE4MUY2MEIzMTU0RUZERjJEREZDMzU2QjM4OTdERDhENjIwNzVFMgorRjJCQzE1MEMwMkI1NEZGNzQwMTlDNzY1NDI5NkEzMkRGNUMxNEVCNjg1MTNCNzNEMkExQjAxNEY4Nzc4NjM1QgorNkEwRDk5ODJDMDBEMDY4RjlERTVDODNEMjYxRTBDMzZERkFBNTdFQzY5MUFFMDUyQzM3QzA1ODAzRkJGMTc0OAorMDczNTEzOTZCOUI4REZGQkFFMEFBNUIzOEU5OTU0QjQ1NThCRjg5MjgzNTBCRjRGRUQ2OTExODg5Nzc2OEM1NAorMkI3RTY2NTFDMUE4NDczRTlEQzJGRUNGNTg0OTkwRjk2N0NDOEIzOTZFNzBDQjIzMjNFNzhFQTI4RkFGMTY0QworNUIzRTI5NzAzNEZBREE5RTBFMEVFMjc5Q0FFNzUxRkNDQzMwMEM4NDgwRkIyMjhBNDgwQzYxMjIyOUZDNTRDRAorRjdFRjEwOUQ4NDMzQjIxRUYyOTA5NjYxRjI0QUU3Qjg2M0I1QUQxM0NCRTYyQTE1NjZGOTM2QjJBRjg4ODdFQQorRkNFRDJBQkE5QTU2MUM0OTY2M0ExRTI1QkE0MjczMTUyOTlDNjhEMDg1ODZDRDI3NDU4RTBCRUE5REYxQUIwMgorQTQxNjM2NDdEMjAzOTk1MDNCQzFCNjIxMjFGQkY1RDZBN0RENjZCQzAxMkFEQUM2MTBDNkRBOUJFQzAzRkFCQQorRTczMzhBNjczMEFCQTA3RDZCQkYyMDg4NTFCNThBMUU5MEE3OEQwN0U4NDFGMzJGNjk0REQ2MUY3QUMzRjc1NgorNDM1N0UxOUIwQzlBQjFGNTcxOUNGMzkwMkMxQTlDREE1NjYyNkQxMTZEOEQ3OUMzNzMyODI5MkVBODI2NDIwQworNDZGNkMyQUIyMjg3MTE4MTAxQzk1NUZFQ0VGODY3NTMyQzc2RDk5Qzc1MTBCRjE1MDc0Qjg1RDQ3RkQ3OUVCRAorREZGQkJGQjQwMjQ5RkRCM0Q5NjdEODI0RTk0RURGOTM4MjVGOTMwNUE1ODYzODEwQTVBQkFDMTM2Q0Y2ODI4QworNEUwNTU3OUYzNDFFQTI3QUVDNEY1MkI5MTI0QkJGOEQ4M0U5RDJEQ0ExQTNEQjRCRUE1RjE4Mzc1NThDMDU4NQorOTU2MUMwODEyMDYxMDFFNkEyMjZBMDk5NTJDMzM2NDgxMDhFRTEwNTcyQkVBMzA5RUQwQTM2MjYwMjg3MTFEMAorRTg3QUZDM0JEM0VDQ0E1MkQzNUVDNTAyREVBOUFGODcyNDY3N0E0MTk5MTg4ODFDOENDRTdBNEQxRkMxNjU4NAorQTU2NDQ3MEIwREI1NDkwRjY1MDZCQUYyQzg4M0FDRjc3NDM2QTRENDhFMjcxMDZCQkU5RTc1QjcxNDAwNzYyRgorMzdCODE0QTk0QTZBOTkyM0M2MkNCMTk2Q0ZDOUJDQzEwOTA4NDJBMTFBRUM3OENDQkRBQzdGODNERjUyRjU5RgorMDI5NzdBOTZGMDQ1QTkyQUMyRTNBMDhERTMwNzMwMUE4OUQ4MDQ2RjBFNDZENDgzRjU5MDczQjkyRjQ0MjU3MQorQTE0QTUzNkVBNzY3NTI5NDU2MkI1NTBDRDA1NkM5RDY1OUQ0QUQwQjQ1MUE2MTA4QzgwMDc1OENGOUFEQzM2MgorNTgwNDhEM0FDN0M4MjkxNUE0RENCQTAwMjU3Njk1MDE4ODI4MTY5MDk5QzU4RTIxMkM4RkQ2ODc1MDIwMUVCRQorRjI2NzQ4MzJDNDUwQzE4RjA2MjBDMDE5NjVDQjIwOEFEQ0JGNDZBQjM1QzJBREYzODNGOUQ1MURFRDM1MTM3NQorQTFDRURBQ0Y4QUI2MUE0MTI1MkRFNjcwNEIyMjJFMkRFMTQ0NTI5Mjc2MzFFRDI4QTdGOUREMjgwNkNBQUYyOAorMkU1NUNCRjYzQkE3MDdEQUJFNDhFM0ExODAwMzkwMTRFRjE0QjZERTgyMzBBQjJCODUwMDBCNDAxQUIwNEM4MAorMEQ0RDlBNjJDNUI2MzJBM0JDRDEzQTYxQjU5MDM3NDYwMUE2QTkyNTI5QkNBOTQ2QzAzMUMzQ0IxRTQ4RDU4MAorNUZGNTUxNzBCODhGNTdFMTc1QjQyRUJEMDIwODc4MjhENTg2MzIxQjVBQTcyODVGNENEMDkxRDgyM0RFOUVDMQorNkQ2MTE5Q0I2RTgwQTgwMDRGN0M5MUE3MEJFMTYwMDFGMDgxN0Y2MDE3RTFDM0I0MDYzQTNDRDExQTE1M0VGNworNEM2MEIxRTJDQkRGMkM4MDZGQkU1MThEMEZFMTM3MUIzQzhGMjhBRTRBQzhDOEYzRjIyODBENDUxQjM2REE5OQorMzUxRkFEQjhBREEwMjVFMDJFREVDNDg4NThFM0UwQTlBNkI3Qjg5RkM0M0EyNUUwNTBENjJDMkU1QUQzMThBMgorQ0IwMDY4RTk1RTJBOEYzNjAxNjFCNjM0MjAwOTEzREI1REY3MTUzQjJCRTBBOUREQUI5MEE1QThEOEMwMTAyMAorREUyMEMxNjc2QkNBQThFODc1OTIwNEQ2MzU4OEI1RTBFOUEyMDRDMUJDREEzQkFDRDhCQjMwMjc0M0Y4Qzc5QQorQjE5RTQyQUJGMDRDREMyNDY4NDdFNkJFRUIzMTRBNkM4QjRFNzVERUZGRjEyMUY4RDNFM0Q3RkY3NzlENTgzMQorM0QyMENFQjY1NUFCOTNFMDFGOEEyQzlGMEUwQjQxNzdDNzg0OUI4NDIzOUY4QUQxMjJEMzBBN0Y2NDVEQzYyMQorRjRFNjI5RDgwRTA0QTAzNUUyMzVDNjE4OThBMzdCMTJGMDFEQzZEREE2NEI0MkY1Q0I2NzhFNTE3N0Q2NUJEOQorN0M2Q0UwNjRBOUQ2NjhEMThFQjQ3NTE3MUVDMkI5QjdFNTIxREZDMjkyMUU2RUYxRjlGMTZFN0VBOTdFNEZENgorNEU1NTAzOENBRjA3MTQ5Q0FDMDM1NzkwQTRCNUVCNDk1RTI1NDA5MUIxMUI3ODQyRTlBNDFCNkNCMTkwQTlGQgorQ0U0NzQ4NDFCRDQyRTQ5NDI5MjY0RTdDQTEzMUFGQzc2NzFDNEJBMDgxMzlEMkRDMzQ4N0MwOUFBOERENzg5RAorODNDNTc1RkU3MUIxMkMyMkQ4Qzg4ODZGNzlGQjQyM0FBMUVDRERERkUzN0FBM0M4NTExRTVBNTZBNjkzMkQ1MworNUQ1QTQ2MTE5QkExRTBENDMwNzE2RDgyRDgwNEE2Qzg0RTBBNTdFQzFFQzcwMDM2OURGNTdDNTNCMTcyMkM5NgorNzg3QkUwNkU2N0EyMDc0MzIyQTNCMDAyNTcyREY2NDJDNjY2M0MyRkI3MTk3MzE1NjcwQkVGRDQzMDZERjI1QgorQzMxOEZERDg0M0Q4MUUwMjUxMDc2OENENzI5RDg3RThEOEM3REY0MjkxRTkyOUQ0NkMxMUNFMTQ0N0Y2MzFDQgorRDY5MzNBQzhDQTVEQjc0OTIxRkZENTc5NEZCMUVENTQ2NTBGNUEyNTdBRDZFNUVENTg5ODZBQjE2MUY5Njk0RAorQkFGRjdGMjVFM0Q2QjFGNEIyRTk5MURFNjM0RjFFQjFBRTYwOTg3NEM4MEY5QTYwRDQ4QUUwQzM1MDBBOUE5MworMTNDNTBGRjE1NkM1RUVEMUZEODlBQjQ1NzY0ODNENzg2NjQ1MTdEM0U5M0RBMTNCN0U5QjIyMjc2MjczMzhFRQorQTI1NzM2QjJCM0Q4MjhERDM0OUMxQ0MxQTUzOUJGNjRFM0M2ODdCQjlDRTE5MDc4QzczMEUxQjVBNzI4RkREMQorMUU5NjVCQUY3M0M2NjAwNUYyMkRFQ0Q3NjBENzg4MUUxOTVERjhGNkNERDQ3NDQ0RkE5QzBCRkFEN0RBMEI2OQorMDFBNzVEQ0QwNjE3NDExRUQ4RTU1RjA1OUE0QjlDMTQ0NUVEQjJCRDIzNjYzNzMyQTQ2OTBENTQ3MEE3NkRCNgorNDMzMTNDOTFGODY4MjY2OTJCQjA2NjE0ODM4MkUxQkJBNEIyMzA0Q0RDQjdDRTg5RTlBQzE0NzQyMDdBRDc0QQorNjc0OEFDNURGNTUxMUU5NzYwNkNEMkZGQTczQ0EzNEZFRUFDNjc3RDIzNjdBRTc2NzRFM0NFNDVDM0Y4NUIxMgorMDE1MEMzMjg1ODk3M0IwRDI5MTBFODA5QjFDNjA0RjdDRjYwQzlFMkNBN0Q4QjUxRDZEMTcyMEVFN0Q4RTI4NAorOUU0QjlCNDVENzFDQzE5NjMzMDYzREEzNERCODM1NDRFMEFFN0Y5NkYxMjJGOUE0M0JFRjg4QjVDMzg1NjE0RgorN0M3RjY4MjM2QTY5QjJENTBCQUIzQ0YzRDQzMzA5NTBDQURCREU3RUJDNUNBRThBMTg0NkZGRDcwQzk3QUIxQQorNERENjM0QjgzMEY0QkRERTQ2NTQxRDRERkRBRTQ5MTZGODlEQzdBMzc3NTQwODk4RDM1QTJFQTgwOEREODU5MQorQ0M4OEMyOTM5RkM4NzlEMzBGQUYwQTgxRjNBMUQwQ0Y3Qjc3RkEyRTA5Q0IzOTNCM0FENEMwQjAxODM0MTMzQworMEZCMTBGMEQ1QzczNEEwNkRFMTZFNjFDMDVENjFERTM1Q0QxOTEwMjM1OEE0OTk1QUQ1OUFDM0YxQzFGNDVENworOTczNUMyREM5QjZGRUE2QjdGNzk3RTk2QjFDNDlCRjE2QTE4MzIzRUFEMDQyREMwNDBDNjcyRkQzNkU5OEMwQworMUNEMTZDMTVCQ0UzRTc5QjE1NURCMUU0NDg2RjI5NjUyRkI4NzMxRENBMzVGNEEzRTcyNEFFNUU4REZDNERDNAorRjVCQ0VDOUU5RTIyQkVEMjNERUY5MzExNUMzMTg1QTk2QThERkVCQjk4MjAzREU3NTkxRTUxMTFCQzhGMTYwRAorMzE3NzBFMDRCNzFGMjA0NjdGODFGNDdCNzU0N0E5N0EwNUIxOUQyODY4REY1RTlGNjkzNjRDMzYyOUREQzc3QgorRTZBRTQwOUI0QTNGQ0EyOURGMThDOEYyNjQwMDk5NUQ2NjRCRjFBMzlGNjEwMzFCN0YzQkE5MkYwMTdGNDBBMAorRjU0MkFEMUNEOUI5REYyNzgyQUE5MUQ3N0NBRTc5OTJBNDVCQzcwRDU4ODgyQjY0MzE4QjAyNkQ2ODZCQkYzNworMTYxMTQ4M0M1NDQ3QjgyNjhCNDdEOEZFQ0MzQjYxMThBQzQ4MDE1NkI4QTA4M0E4QzNCNDU1MzRENjUyNTUyNAorQ0IyRjJBNkFCRjUyNTJCMkM1MDA3QTUxQjdFNjFCODMzQ0M0Rjc2RjNDOUE2MTMwNDM0N0MzMEU0MjA2RUE4RgorRDk1QkRCODMxMjVEMDRBNDk4OEE3OTY4MERBQzI4QTdCQUJDRTVCRTdENDQ5REI1NEVGQjk0ODJGNUE1QzU2MgorRjJEMjNGOEE3NTkxMTBFNjEwQUQxOEQ4QjU1REUyRjg2RTJBQkNBOTg1NzM4RjI1ODkyRDZFNDBBQTY0NUMxOQorMTZBMzA4QjgwNjFCQTU3MEQ5RTJDRDVFRTdBNjU2NDdCRDZFMzg0MzI0RDFGQjk0RUI3MjNFNEQ4NDMwMEZBMQorRjA0MkM5MkQ5RkQxRkRCMzZFNUQ1QUU2OEJFNUQxMzVBQkRFRDdBQzAxODdCMjgwNDE4NjM4QjA2MDhEMjQzRgorMzNFNDRCMzMzOUI5QTI1NDIwQkQ0RjkzMzk0MzY2MjU5Q0Y0NjI5RTUyNjEwQkQzNTBEMTY0NjM5OURERTdEQworOUUyNkY4ODEzRjFFN0U1MTdEMjk4REQ2QzM1MDE0OTk3REE3QzcyNjU2OEQwMjE0NDI4RDNFMjk3QzEzMkUyRQorNTI1Q0VGQUU4NUVDRjE2NTUzMDEyNEMxOEFCNjFGNUI2RDNFNUVBMTkwOUI0QTQwMTkxODBEQkMxMjI2Q0U3MworNUM1NzE2NTg5RUFFMzM0OTExMkI0NTE3RTcyODMzNzcxQjMxODk2RUQ2Mjg0MDQzMDdFNjQyMzI3QjA3RTE2QgorQjQ2QTNFNThFRDFDNjI2MDE3NkU4ODdEQ0M1ODQyNkE5QUJBQTlGNkJGRkU4QjE1RTREMUY3MDZFOTI0NTIxRQorQzgzQkUxNDhERjRFQzdBQTE1NUY0OEY1RkVEMUUwMDg4QzlCODU5RDM2QTNEMTRBODEyN0RBMkM2RkRCMUNDRgorQkU1RTUyNTFFRUJCMTUyNDIxMEM1MDZEMzY5QjhBRUU2MzE5RkFDREZCRDUwRURGNDJERDNBMTE0NkE5ODI1OAorMzdFRDJEQzFGMzRGNTY0REVCNzEzOTI2MEVEQjAyNDJENUQxRjk2OEFGNEZBRDQyRkNDNTFCMEY3RTdDRTI3NgorQUM0NzUxMUJGNkRFOUUxREZEMTREODkxMTNBRjJGRUQ5M0UwREVBNjZDOEZBMTFFMEFGOEQ3NTU0RTkzNTU1MAorRjkwQUI3QzM5RkM3MkFFMkI5NzlFOTMzNjZBNEZBMTdFRTdGNkFERTFCRUFGNzFEMUJCRTJBMjI5ODAyMjQ3QQorNDEwOUJBREFBQURDMUY2QzIzN0JCOTM0QTg4NkJFNjdCQjkxNTI1NTE3MjRENDI2NkRCQzBBRTRFMTZBRjkwMAorMDVENEM4QzNGMTY1RTBBRDlCNTdCN0RDMUNBQzIzNUNGRkI0Nzg1NTQzMkFCRjcwRjdCMDEyM0NDQTg1OUMyQQorNTVERjA2QTg4NDQ2QzcxQURBNTU5NTQwRjAzNzVEMjI5NTU1OUJDQTg1RUVBNEE5OTZDMkU1OERBOUVERUEyMgorRkQzRTg5MzYzNzkyN0NEMEQ5NzVFNTA1NkFEQzUxOUY1OTFCM0I3NjZCNkE3NEYzMjVBOTNEQTRBMDNCRDAxQgorRkI2MTRBMDMzMkM2MzRBRjNBRTEwMTIyNkMyRUVCRERFMTg1RkIxQjIxMUExMzRGMDQ5QzRFQTlDNzgwNjZBNgorNTk4QUVFOTVFRTJFQUMyRkFGRkI3QUJBNjU3MTA1ODU0RTg0MjJGMDM3QzRDNkVEREQ5NTRCMTNGMzc4OTA2QgorRTM0RUQzRDhGQTZGQzA3MTU3NTYyMTdCRkVDN0I3QTVGNTk4NzIwOTQwREY5RTBDRUMxMEI3ODkwQUUwMUVCMworQjlDNjg3QUNFNjc0MDQzQ0JGNzc5QUJDNTgyOURBN0FENkQ2RTQyQUQ1RTVERTc3RjNFQkU2OUMyMzlDOENERgorMTdFRkEwQTcyRDY1NkJGODg2MzIzQ0I5M0RENTVGQTFGRkU3QjE1NzgyQkY3Q0NEOEMzOTNFQTM2NzBEM0RDQworRUNFNkI3QkY0NzMwOEZFMjZGMjNDOUVFMzVDQTJEMDY2MDBFNjYyQjM4QTIxQjQ5RkU2RERGNTU3MzQxODNERAorMUVCMUVFQUJBQkQ3MDUxMTdDNjYwRTM3RjdDNEI2RDZGQjM0QUQxOUMyODU1Q0VGMDMyQTgzQUNCQjRCNDA1MQorMTkyNDc2OThDQzk4Q0I2MDJFNTFENkM2OThGMjVGOEM1OUY1N0YyRjg0NURFMzI3REZCODlBQkJCRDk2MjA1NworODQxMDM0NjdFMDIzNkJGQzQ2RTIwQjcxRjNBMEI2RTdFNUM3RURFNTA5NkNDRUM4OTYxNEZFQkJGRkI2RjNCMworRjJEOEUzRjlGRUI5NkFCQ0I2OThCMEU2M0FGMkQxODc1MERDNkI5QjczQ0E5QUYwNEQ1OTFEQ0Y4NzNCNjVDMQorNDI3M0JFMzA4RTZEM0I2OTFFQzY4RUJCRkUyMEJGNDIzRDM4QzFFNjNDNTkxQTg0MDExNDYxMUE2QzRDNjA0NAorRkQ5QjQyQThCOTQxQzk2MTk5NzFBODQxNjREQ0I2Mjk3QTIwOTM5Mjk3NEU4NTA0NUY1NUNFNkFCMkZFNTkwNQorN0NBMjU4NDU2RDQwQ0M1M0I1M0VGNUIxNDVCQkY5MjAyREQ2MUUzNTAyNjQ3NkY4MTYyOTc5NzZDRkRCOTE3RgorQTJFRDk2NDc4RUE3RjI1MUMwNjU1OUE1NTQyOEQ4RTVDQjRBREJDRDEwQjE4QTlCNUMxOUY2QTVCMzJFODIxNgorNTkwOTZDNjU1NTMxRjRFQzFDRjg4ODk3QjNFNzNFRUM3MjExODRGNThENjkyMkY5QzI5MDFCNjg3QTVGM0VBRAorMkE5MkQwNTA2RDAwREFFMTczMzIwMTRBQkNDM0YzOUMzQTM1OTAzNDQ3NjJBRkY3QzgzQzA5NkNDM0M0NzFCRQorMzBBMEUwM0MzNjhDNTJBQ0YzNjQwNjA0NUI1MkMxNUE5RjkyNEY5ODFFMUVGMThFODQ0QUFCMUREOEYxNEZDQgorMzNGM0M4MjBCQTNEMEMyOTQwM0E0ODBDMzM4MjlFNTE1QjA0NkFCNTcxRTFCMUI2OUZEMkQyQzE2MTdBOTkwMworQjIyOTk2M0UyQjJFREZFRjBBQzkwMDE4RTc1MDcxMUFCNkYzMEZGRTcyODgyNUYyRjA4Mjc0QkFBMTQ0RDVGQgorODVCQkJEODE0NTU5REJBMEY3NDYxMjVERTEwNjM2M0E0ODcxQkRCRTM2Rjc1Qjg5QjZFNTFGNzMyNkVGNDM1NQorREI3RUMwODBGNkE4RkU1NEJBMkEyQkQxQjJBNzMzQjQ2QjcwNDM2MkQyRkEzNjI3NjJEMzdFMDdBMDdDMkQwNgorOUREOEMzNDUxMDhFQTkyOTNFQTBCN0Q1QUMwNzNGNzM5RDA4MUIzODc4QkUyRkQ2RUZDNjYyMTExNjAyQ0Q4RQorOUY5MzZEQTQ5OUUwOUFGMTY5QzFBNkY4MTg1REZERTRGODEyRDRDMkM1Q0NDMzA4RUVDODdFMEI3ODJBMjlBMgorOTQ2OTBFMTczRDcxNThBQTYyMkU4NEZEOTYxRENFRkFGM0ExRTYwNUFFOEJBOEU0OTlENjA1NzEwREYxMjE4RAorMTVBMEQ0RkRCMUJGQzFERTBFN0FBQ0NCRUQ4RjY5NjE4MTU4RjVBNTVGNzRERDVCRDBENDZERDJGQzk2OUFBMAorMTFGNDIxMTFGRTdDMUM0NUUxMDA3NUNGMDRFQzFCNDBBNzU0ODcxMzBCRkZENjYzRjEyMjY2NTgxRkUzQjdCNgorOTdDRDIwM0NDQTY2MDEzNTdBNUNFREFEODRBNTZDOTE4NTYxRjdDRkQyMTQ5NkEwMDNEMUMwQ0ZBMzQ4Q0E2OAorNUU2MEY4RUVDQkIxQzBCMjhCRTA3NzdBRTU0Rjc5MTI0RTJCNDVCQ0MwQjQ1N0NBNTBEMUJENTQyNjU4QzgyRAorQkI5QkMzNjQyNDFGMTJERTgwRDkxOTcwMTY1NTBGMkUxNkU0RDNDQzdDMTM2RkIwMjBDMzc3NjNDOEY0NTU1OAorRTZFM0U2QzVGNTBCNjgwMzVFOUQ3QThEQkQxRkE2QzEzMkRFNkVFRDFFQUMyOTBEQTg0MDIyRDVDQUY2RjYzQworNUI4NDYxNTYyODFGMTI3NEJBMjZBMThBNDM2NEM5NzY2NDI1MTgxRUFCQ0ExRDFDMzBDNDQyNjJDM0UzMThGQworQ0Y5ODJCMjA5QzNDOEEyMjg3Rjc4RTZDMTMxMjZEMTVGNkUwMUQ3MTNDQkEwNTY3OTg3RkUxRTQwQzdBRkE4MAorMjZCMDk5NkNDOEQzODMyRTVGMTUxMzZFRDRGMzhBOTRCMDg1MzNGNzdDNjM5QjFBNkMzNkIwNDQzODJFOTMxOAorQkUzRUYyN0NCQzRGM0ZGMDk1QUNGMjJFRTIzN0IxQjEyMDc0MjczNTlGRkMyOThDRTg3NzJCNEYzQzkxREE3NQorQ0Y3OEZCMEYzMkI5MjcwMzc5QUM1MjU0NkI0RkQ1NUQ1RjU1MzQwNTdGQUQxMDRDOEQ5MDg2RDczMkIxMDJDMgorQzc2MEU2N0NDMTE4MTc0REM0MzExNDBFNzJDQkJDRTgwNkRBREQ2MkYzMkQ5REM1QjI4NjU2OTEyQUY2QzQyMQorOTkxNEU3QTU1RDJGOTA1MEVFM0VGMTBGMURCMTlFNkY5Q0JENjg2RUVCN0FBMjBCRjVEODA1RUQ0Q0MyMDY2QworQUIxOTIwMTNCMUVDMTQ1NTYzMUE2MkIxQkQzNzlCOTIzNDQ1RkFDREIyNDJGMjM4QjU1REM4OUMxMUZDRTdBMworRjc3OUMzNEQ5NDI2MkM2NzcxNzAyQzMyQjAzMEU1QzI3QURCMkExMzcyMDdBMjc0NEYwM0YxRDQzMUU1QkI0OAorQzE4MERCMDY1Rjk0MDkyRUI5NzkxRjk1MUFDODAyRTQ3MTk3MjNBNTEwMzlCMkMxMTg3NDE1QkVCOENCNjgyNQorRTc1NkNGQzMzNjUyNzAzOUMxMERFNTIxRjA5N0I4QTExNkE3NjBCQjI4NDk4NjgyMDQ5REI2QTY3N0Y4RjE5OAorQUZBMUFBQUZFNjI5N0IwM0EyOTBEQzAyMkQxNDM2MzkxMjkxODU2OUY2MzNGMjM2QTMzOTVBMTNFQTZGMEM2NgorN0E1MjMxRkI3OTMwNURGODU0Q0ZDMDFEODcwRkFBRkU2NzQ2RDZDQThGM0VFQUU0M0MxMDYxOTY3NzlDMTg1QQorOEVBNzUzMzVBQ0QzRTU3QjIwOUIxMjIyQkVCRUU1NzgzQzYwNTk0QUZBRDU5MDA5REYxN0E5MEE2OUYxQzczQworQjZEMjhBRjdGNTc4QjI2RDQ1MjhDNTAzQzNFMDc1MkJGQjMyQTQ2Q0NGNzY2QzhBRTk0QzUzMTYxRUQ2RTgwQworN0UxMURCREJGQzJFODUxQjlBNkMwRkRCQkY1M0JEODZEODFBQzUzQ0FDODJFNEJCMkIwQzNCMEFCNjVGNTA0NQorOUQwRkJDMTM5M0ZBQjM4RjREREExMzBDNzY0MUNCNzhENEQ3REY1QzQ3NTJDQjgzODVFRkNBNDFENDI3OURCNgorNUYxMDdEOTcwQTZGMEJGOUUxMTk5ODM3QjEzNDg0ODg5NDMxNDYzODA4MEQyRDk4MThFOTUzQUJGNDg1QUE0QQorOUIxNjhGRkQ1NjdENEEzQkI0RDQyMjIzMkY3Nzg0RTY2NTRCQjc4MTA1RDM3MzhFMDFENERBNUIzQThFNUJFQQorNjVCNkI5NjUxRTNEQTU2N0I4OTg5MzFBMEIwOUIyNjRDQkIwMzhBNUZENUIyNTg2OTNFOTYxMDJBQTFDQ0UxMAorMjExMUZCRDVCQjZBNkJEREZFRTEwNjE4RDhEMEQ2OUMzN0M3NjRCOUI4QUI3NUI0MTQ2OUQzOUM2NjI5N0U3RQorOTQzN0RERTUyQTE1NDc0MDE1RDE5MjQzMjA5REVGRERFMDMyOTQ3OTFFRDVFOTMxNDVBRUUwQUFBNkE4RDg4NQorRjJEQUJGQzY5N0MyMkQxRDk1QkI4OENERUVDOUJGNDVFOUI3MkRGMTJBNjU1NjI3MkE5QUJBQjUxQUZDRjYxQworMUI2RDkxQzYzMDFDREU1MUU4RkExNkY3QzE5MDQ1NTY5ODAwMUFCMjIzREVBRDdEMkQwRkI4NUI5ODUxQkZENworNjU5RjNGQ0VCNTg4NjYwNDgzNTEzNDVGNThBMTAwQjAwNzY5RThDNjM3MjhGQTE3RTg4NEMyMzE2NkQ5QTQ0OQorRTI4NzU4RTFDNzFENjdGNEZFOEQxNkQ0RTZFNzQ1OTExRDA3M0FERjhFNTNFNDIyNUMxMDAwRjIzMjk0Qjg5RQorMUMxMEM2QjVCODNEMjIxRTUxM0RGREExQjYyOTc5Qzc3RjA0MjY2QjAxMTlBNjM5MzVFMEYxRjg0QkFGMDJDRQorNjdEMzM5MDA0M0I0M0E1NkU2MDhENENDNTJDOEI1OUQ5ODEzMTFBNjg0MEQxRjcwMjA1OThFRjEyNTk5MjkxNQorNzU3NDdDRDU0NTRCNTI5RUEwQkJCMDNBNTIzRDhGMEQ3ODFENEUxNzZGMzk2NEZCNUQ3NUY3QTM3Q0JDQzdDRQorNkJCODAzMEQ2QjBDMzJDRUMzRjEyMjM0NEVDNDQxQzNFQTBGNkVFRkYwRDU2MzI2REJFNkQwMUEzNDY4OUFFMQorNENEQkExNDQ0OTU3MUMyQUY5OUEzN0M1N0U5MDY2NTJFNzE1QzQ1REU3QTY2RDBBOEZDMjI5QkZFOTA3QURDRgorOUNFNDE2MjYwRTU0NEU0RDc0RTYxOUJDMkFENzBGRDU3RjdFNjhENDkzQ0UzQTdFM0JFNDQwQzM5M0U4RkY4MworOEQzQzFFMjU0MzhBQTA3OENDQzlDOTZDMjdDNjNGRTlCRTcyQkQ3OTc1Q0JERDFFQUZGRTc4NUI4QThCRTc0MgorMTNEQzUyRTEwRjc5NzBFODRGRThGQjhGQzQxRDhFMzk4MzVFODYzNENDOTY2NDhERDA4MUYwRENBOTU2RERGQworRDJDNjkyRjQ1NkNGNjI5RDFENDRCNThDRUVBMjI5M0MzNkEzNEZCRTE1QTVCNzcxNUYwMjQ0MkUwNzFDNUM0QworRUIxMjVCQjJBRDI0QjhBN0IyNTBBOTBCNjdGNUMwNjdCMDY5M0VDNjE4NzhFMUYwNkFBNjBDRUEzQjRGNDczRgorMzU5MzAyRjFGNjlDRTM1OEQ4MjAwMDlDOEYwNzkxRDJDQjNENTA1MjE2ODUyOENDNEYxQjJGNzZDNEVEOTIyMworNjdCN0Y1NkY5MEQ4RDNCMERGNkY5QzBGMUU0RDhCRTI2Q0MwMzEzRTY0ODczRkQzRkM0OTkxNjU1ODMyMUYwRgorQjg5MkMyRTAyMDk4MjcyMTFDRjM0NENGNUNCOEQzOUI4OUVCNzBDMkFDQTlDQ0QwODAwQTIxOTdEQUZDMkJBRQorRjI5OEUwRjU0ODI3MzRFMTAwOEM2MzkyMzRCMUQ1OTY4MjlBM0NGMzI4QzY0RkRCOTYwRDI3NzZERDMyNTJCMworOTczMDE2RTlDQkU3NDcyMjQxOTAxQTEyMEFDM0M3QjEzRDVENjk1RjhDNTM3M0QzOEU3REZEQ0UyQ0JBQkNDMgorRDQxQ0FDOEE1MjA4QkFEMjgwMkVGNjJFRDY4NjM3QjczOUYxNUI2RTQzQTFDNkYxQzQ1QzNENTMzNEE0OEQ5RAorQkIwODg3RUY3MDI1NTVDRjkxNURDQkZCNzIzMTI2REM4RjZDNkM1OTQwMDFEMzFERTNFMDFGREJFMzI0RDFEMQorODI4Q0IwMTc2MDc1ODQyRTMyQzEwREFERDNDREUyNzQ3RjBFMzg0NERGQkNDMTUxMEUxN0MxMUYzRUE4RkI5NQorQjkyNjgzQTk4OUM1NkY2OUQ4RDUwNTZGRUI1QTBCNDRFQzM0OTU1NUFGOUQ5OTgxNzBBMUY0QUM3MUMyQzA4OAorMDkwNTBFNTZGQzBERUVENTVGQUNGNTdCMzZEQzRDQzNENkMzMUJBOUJCMzEyRTRFMDFDMkQ0OUE1NkNFMDMzQgorNEEyQUIxM0E0NjdDMEMzMzQzNDVEMjM2QjQ3N0E1RUQxQTJDRUU1RTc3QzA5NEYzRDZBNzk0NEUwQjM5NjdFQQorNTI0NUYwODQxRDVGM0RDMzA2QkQxOUJGRjVFOEMwNUMyRERFMjc0QkY1Q0VFRDE4MEI2MDA1QkQxRTdGN0QxOQorOTUzMDM1ODgzQTRFQjAyQUVCQTVENjY4QTdDQjY0NDE5MEU5MDUzOURDNUU5ODhBRDI4OEU5OTg3NzczREMzMworQzI1OUUxRDFBOTExQ0M1MjRCMjg0ODg0MjBDODQ2ODE0M0Y0NzI1N0Q4MTI1REFDNkFFMDkyNkNDNzgxQjgwRgorNDBDQjAyRDIyNTFEQzQ0OTg0QUVCMDlBMzEyMjFFMEE5NUUwMjgyMDRENjNBN0QzQURCNjNEMjQ3OEFCODZGRAorQ0U4OTkxMEUwRDgyQ0U5MkVBNERCQjBCNDVCNjEyMEE5NEE4N0RGQjU5MjhEMEFFRjA0NzFGOUY3NDdBMkZFRQorRDM4MDBBRkQ4REFCRUM4MTRGQzE4NTc5RTZFOTFEMEM4RDU1QkRBMDdFNzE3RjIzNzQ5MzFFQ0I1NjNEMjc1RQorMTcwNjcyNTM4RUU5NzVGMTQ0Rjk5NEZGMTk5NUYzMDNCODk3MTY3Q0E3OTQxQThBNEU0NjRCRjQxMTU2NDJCMworQkM1QjgzOTNBMjIxRDM4MUU4OUUwNTQ5OUJFN0IxMDdDQTRCMDY3RTBBM0QxNzQ5QkEzRUNEMkJEQjRFNzQ4MworQUQxNzUyMTE3OTQ3NDAwOTU5QzUzMDc0RTJBMDlBNEE2MTRBRDEwMzhERkNCMTA1QTYyMEU3QjU0NzM1NzBERgorRTZBM0Y5MkMwNDI1RDRGNDg0RTJCNEZBOEE4MjI4QzhBQTFFNDIzNjk4MjdEREZDQjZDMjk3ODk5NDE1M0RFMworNUQ4REMxRjNCMkIzNjMzQTAyNzY4NDMzQzJENDE0QzIwMzRFODFBNDRBQkM4RjI1QzQxREY3NDFCRjI3RjAzRAorQ0U5QzZGRUI3NUNDMDQxRUM0NEU4MDI1MTRBODFEOUVCMDBDMjc4NzhERkNEN0IwNkNBNUU0QUM1NEU4QkZDRgorREY4OEVFODFFNjQ2MUJCODY4NkY2Njc0NjhGQjc2QjI3MDJBQ0M4MUJFOTBCMkZDQkIyMEMxMzc0MDY1Mjk1NAorQTg5RDA4RDk2QkI0NDFDNDFEM0VDRDc3QTg4MkRDNDQ4MDFFMzM5MzY1M0RFOEY5NTc2MDhCQUI2NkE0OERDMQorM0NDQTg0QTdEQTIxMkVENUMyRDVCRTcwMUU1M0FENzk5RjVEOTE4MUIzNDVDQzA2OEZDNTY5MzFDQjZGNUI1OQorNTU4MzdCODYzNjQ4NkRBQ0I1MzQwRUU1QzFDMUZGMjgxQzgyODJCNEIzOTVDNkQ2Rjk2MjA3OEFFNkQxQUFFOAorQTQyNTc1QTFBRDJGRTcxRjczRjNEQjNFRjk0MDREMUQyNzlGMjA0NzMwNjg3N0E3M0ZBRDM1QjUxMUM1QjI4RgorNzM4MjREMzI4OTBFMkZGRDUwQUEyMzhGNzQ4OEU3NEQzMzg5MTg4NkEyNzcxOTgxOEVGNDJDMkVBNkNBMUEyQQorMzk0QUJCNDdGNkFGQjhGOUZENzE5RjczQzZFQkZFNjZENjlEM0ZCMDIwNUVENUM3ODU1RjA5ODZBNkVDQ0Q0MQorOEU2QjkwQjlENDYxM0JEMEQxMDg2RDhBMzMxMjI0MEEzM0VCOEY4NkJGRjg4Q0I4OEVFOTNCRkI2OUZBMDE1NQorRkQ4NjE2QjgyM0U0OUEzOThFRTNFOEFEMTgzNDlGMDlBMTlDNzkxNTZBMUU1QUEyQzExRTk3OUZCM0M0NDNENQorQUI0Q0U0RTcxNTU2N0Q4QTA4QTg5RTQyQUE5RDY3NjZGMkRGMTVDOTk0NUY0NDcwMTk3RUM5Qzc3QTVDQ0M5MAorNTE3NDdFMzYxQzhGMEE3RTIwRTlDQzZGNTVFQTYzN0QxN0Y5QjdGMDlDNTU3QjQyQTQwNjJFQ0Y5NzMzRDAwQgorMzAxNDkxRjA0MTUzNTIwREVERDcyQkVCMTYwQUQwMUU0MkFGNDQ5MDZFNTYwODY5Q0YzMkMzNEY1RjJBMDBDOQorQjExQUVFRDYxQjk2QTRGNjU4MDE2OTI1OUE4QzUxMkY3QkZGMzBCNTMyNjYzM0NGQUVENUU1N0IwNDg2N0JGQgorMjdDRDVBQzAwOUQxMEY5NUVGODYxNjhBNzFGMEFEREM4OTNFNTY4NDNCMjQ0QzEzRTgxNjM4M0U4REFFM0IzMworRUVFN0UyQjU3RDRGNEVGODAyRkVDQTEwQjc4NjhCNUFFNjVCRjg2Q0M2OUI5MTg0OTMwNzUzRjkzNjM0QTM5MQorQkUzNjZERUFENDMxQ0VERkU0MTQ5MEI4NDhGOTc1OUVEOUNBMTBBNjU5MjJEN0RCQ0EzMTU2RkVBRkE3OTlCRAorRTVEN0IyNzEwRjg2NTZDREE0QTYwNDlGRkEyRkQ2MjVDNkRGREUzMTlDNDBEMjZBMjI3NkM5QUIwMzE5QjcwOAorMDZCNDIyQTZCRTYwNjRDRjI4QzUzMjE3RUFCQjAzRDJFMzdCNjE4N0FDMUI2RTg4QkRFOUFBMDlFNEI4M0JDMAorRDgzNTkyMEVDQkVFMUFBRDBBMUJFMUMxREE3QjhDRTRDNURDRjE1MzYzN0RGNDlGNkNGMEI4OTU2NjEzNzIwNAorRTNFRkZGQ0NGOUY0Rjc1NkM5QTI4RTU0QTY0NDYyNEU2MUQxMEM2NjY5NzJBQ0RDMUMxQ0M3RTM3MkM5RkZCNQorN0EwOTRGQjJFMzI5NzZBREFCQjk5MjdCODQ0QkQ1MkY2QUZGNDk4QzgzMkY2QTVBMDYyNjVGQkVEQURBRkFBQQorODU1OUQ4REJBMURBNzY0MjI0MjZFODU3Q0U4RTc3QjNDQUE2NzAzMzQ1RDgzNENFNzlCNDJCQThCMDg0OUFGQQorNUU0OUY4OTNDQzkwRTlDMzc2NDk4QTIyN0Y1NUNCQzYwNkY5RjFFM0E5MkYzM0NCNjIzQ0M4MDlGNjhCRDRFMAorNEY4QzlGRkYxRUJDODg1MTM3OTcxMjVCQzYxRjE1RDUwMUI5RjVEODg1QjIxMzc1QjgyMkIwQjkxNDNFMTY1QworM0NGNUJGMTYyQjI2MEJCQkE4NDk0NTAzQ0VDRjhDMUVDQUU3MTBEMjQ0Mzk4MEM0RkY0RDI1QUI2ODhEQTg5RgorOTE4RkQwRjg3MzlENkVBM0NBOUMzM0RDRjI2RDdBQzNFRDg0QzlDMzQ5QUZEQjgwNzQxMDExMzVDNEVFNkI0QworNjQ4REVEMzdFM0UwMDFDQkRBQzVDMjM1MDc0RjBCRjc4NjdBMTY5QjlFQTdDREM4RUYyRjhCMDBFNDYzRENEQQorREUzMjlFODE1N0FEN0FCRUNCODQ5NUZDMDIzQkRDNjYyNTFFMDNFMEUxNzg4OEMwMjI5NkFBREQ5RTdENUQxNworOTZCQTE4RjgwRkEwNzJBNDIxN0Q4NTMzRkZBRjUwRjAzQjhFNkUwRDc4QzhERTVGODZDOUE0QTQwNTVFRTFBMAorOEEyOTM0MjA1NDY0Q0Y0QTJFNUFGQ0I1MTNDNTQ5N0EyRjRCMjhFQzc3OUU2NDYyNUVCQjNCRjZGNTk2REEzRgorNUJGRjJGNTg4NjZCQ0MyRDQ5QzQ2MEFFMUE2NDAwRDMzODEzNkNBRTg1NjczNUNCQTNGRUI1ODJCMDVDMEEwQQorMjI0NDA4OUMxNzc1NTFBMjkyNjA2QkQwQTQwRDg5NEI0OTNCMTg0RkM1REUyRjk0Q0M3REQ3RjdFRDEwMjIyMAorOTFGQjM1RkVDQ0Y3NDNFNUY0Q0VDNUI0QThDNjcyNTgwOEQ2MzI2MjI2RDg5RUE2OUVBOEY4REY4MERBQjQ2RgorODlFNjI4RTU0RjNBRUQ2MEFCNDk3QTQzRTM5RUEzMUE1M0JFQTA4QjczNEYxNDc2ODEyNTIyQkQ2NDhBQjQ1MAorQjUxOTk2NURDODMxM0M4QkY2REY1NjYyMzY3ODM4QUI5RDY4MUMxRUYwNzQ4MERFMTQ2NjRCNzlBODZEMTlDQgorNDY1OTIxNThBN0QxODZENUE1NDVDNzhEMUFFQThEQzk5MjVBOTJDMDNCRUJCNzY5NjNFQURDRUVEMUY5RUIyRgorQjY0NzE1ODBBQkRBOTVBREE3OEIzQTc3RTA2NzQxQkE3Q0EwNzlCQTM2MEYyN0M2M0E0OThGNTQ0MzREMzlFMgorNjJEQ0Y1QTU1Nzc5MzY0NDBFNjY1NUZCRjBFMjQwQTNGRkYxNjU1MUI2MTQ2NEM5NjI5N0JGOERCNDA4NUMxNQorRjEzM0FCODVERTE2MDVCMzJGOUU2MTIzM0NENERFREM3Mjc0Q0QyMjYzNEM3REY2MzVEOEUyQkNCNTZGOUQxRgorMzlDQjJEQzA2QjAyRDkzNUNBRTU5RTdGOTM2ODk2NDcxRkIyMDYxODYwMzg5MTRCRDE1QjExM0M2NzY2RDAwMAorRDFCRjlDMkYxMTEzMjdFNjJENUIyMTM0NzcxMDQ3Rjk2ODNDOUZBOTkxNTcxRTJDQ0ZEMDA3MDI2NjQ5MDExQworQUMzMEQ0MEMzN0IwNzg4OTkzN0ZBMUZDMTFDOUUxMTI3RTJCMzBDNUYwREQ5NDQ3NUEwMkFCRTg2NjhDMTA3NgorMkIxQzY0MzY1QTM0RUQ1OUE0M0E5ODQ3ODBBMkM5QzJENTQ2NDUyNkNEMUQ4MzU5RDcxMUZBQkNCQkMwNTlFOAorQ0YwRjc5MTQxQ0I4MTQxMzcxRkU5OEI3RTA0RTNDMTk1NzA3MThGMDQ4REQ3NTg4NjEzM0I1MzkzQzk0MTM5MQorNjgxRjA4NjZGNTE0NzQ0MkYxMjYxODgxREVGRENBMThGMEJFQ0JBOTVGRTMxMUZENzhERDg0RkRCNTAxM0VDNworMjI5MkI1RDNGNTFCNkMzOEEzNkFCQUVGOTFCMkQyQjg4QUFBNDM2RkRFRUY1QzMwMEQxRTIwQzZBNDYzOTAxQQorRjU1QzE0RTAzREM1MURGRDM0MEE1RDQ2MkE4RkJENkFDNTIxNDM5M0FCNkJEMzMyQ0I1RDI4NDhDN0ZCOURGOQorQjUwNTMxRjg2ODJGODQ4QTQ2QzZCMTZBRkEyNjJFM0Q2MkM5NjUxOTYwMjM0Q0IzODI0MDUwNkI5QzRCRjM3NAorREQwRjQwMzkzNjZDNkYwMkJDMThBMDY3RUJGRkUyNkRFRkE1QzBFMDkyOUQxMTgxQUJEOTQ5MDcxRjQyQzU4QgorN0Y5N0ZGNkJCNzIwMEJCNjZDMzdBRUE0NkFDMUI1MUQxRjNBOTAxNTAyQkQ0QkZCMEI5RkJGNkI3QzFFNDhGMworOTI4OUIwNjMyNTA4OTJBQjkzODBDOTc0MzkyMDMxOEZFNTYzNEY1ODg0RjQ0NkJDQ0E2REEzNjg3QkQ0NDFCQQorRkJEQTQ5NjU5REQyM0FCMDkxMzcxQzczQzJBODQwOEVBQjExRUIxQUU2NzlFQ0FEOUE5OEVCOTU0QTg2OUU2QQorNjk0N0NEQzY2NjYxRURERkZBRkQ4MTBDNjdFMkZEMkI1NUE2MEYyRTZCRjEyOEUxNjJFRUFCODBGMjUwQzdFMgorRDQ2QzlGOUVFREM3OUI1NEE4MzFBMTZENDYzNzBGRjhFQUJCNEQ0MEQ3QkFGQzUzNkQyMzZCNThEMTVBQTg2MAorNDYxOTBENThDRDEzRjQyNUYzNTNDRUY1ODJFMjc4NDI1NjJEQjc2NDYzRTA0OUM1MzcxRjY4Qzg2Mzk2QTBFRgorMkZDNUEwNzhFREI5ODM2MkE0OUM5OTg2QzRFMkQyODhBQ0Q5RUZGQTVFMTZGRkU4OENGMTI1OEUzREVEN0YxRAorRTBFMUI1MTBDMzE2MDg1QUM0MTdFMTU2MTVFNjI3ODBBMkQxNDlBREIyRkRCOTdBNjE0OUQzNDQ1MUI0MDVCRQorRTUyQzc3MkUzNDNENjk3MDE1Mjc0QzY4Q0REQUIyQ0RBRjlEODk4NThGNzQ5MDFCRUU2QzBBQkVFQ0U5MEM5NgorQzY1OUNGQTNFMTE2NDI0NTZGODA1M0RCQ0IyNkJERDg5NjNDRkI5OTUwMzhGNTkwNDY4REZGRDU1QzA4RDBFNgorQTExN0FGOUVDNzEyMUQxNDczNjczOTcyOUMwQTIzQzA4M0JEMjAyQTA5MDQwNTQ0RjNCOUU1MkIyQUI5MDc0OQorM0M5NjBEODg3M0E5RDVFRDlGOTMwOUI1QTJFQkU3NTZCQTBFMDNFQzgyRkY5RUFFNzg3QzdGNkQ1QjkwNzdFMAorNUY2RjAxQ0YxMjU2MkM5RENFQUVCMDg3RjdCMUExRTA4MjFDNzBBODk2RUI1QUU5OTFCOTlCQzRBOUY1QjFBMworQUIyNjA3NTU3OTU2QUQ4MkE1RkIyMENBQ0Y3Q0JBOUE3NjIxNTk2Q0RGM0QyRjYxQTNBOTg5NDY5RTlEQjc4MAorNDhFQjREMUZEQUNDNEM4MjYzNEExMzM1NDExRjYzNUEzMjQxNTU1RDdBRTBCM0MyNUZCQTczNzE4NjU1Q0E2NgorMDFDREZCOTYzNDA4QjYzNDYzNTJDOEM3NERENjQ5MzMwRDlEQkU5Q0FEREI4RTRGNjhERkQ2Mjg1NTg2ODk5NAorMkYzQkU2NDc3OTYyQzRDQ0JFRUU4RkM0MTA4NTcwMTE1QTQzODVBQjdDRjNEREYyNzlDQkI0MjM1MjE3QUQyQgorMDU1QjZBMUUwNzBFRTI2OTg5OTk3RDUxOTdFNUQzNTQ5MjZBNkVGMDkzRkU4NjVDRkE1OUVGODM3ODE2NUU5RAorQ0Q1MDFEMkQzQTM4NkVENzZENjM2QzM0NDY0MjlENEU2RkRCNTc3NkM4MDUxMEM2QUE0MjI1RDVGRTk3QUU2MgorN0Y5RTk2OEM2NEQyNDg4RkIwNTFCNjk4RDBDQzQ4MUE2MkU4MEVBQzgyMDhFREFEN0NENUZFQkExRkQ2MUNFOQorQzAxMDAzMkM5Njc5MENBQzY0NENBNTFFQTRFRjE1MTJDNzhCOUQwMzUwNDA3N0JCQ0FGNkJGQkNFNzI1NUUzOAorRDc3NzIyNzNCOTA0NkZBQzkyNzc5REQ3OTI4NDMxQ0VCN0IyMkI4RDE3NzYzRDAxRDI0MTYwN0YwNTAwNjBFOAorNTJFRDA1Q0U0RjVEM0VDNTdCMzQ5ODI4QjZGQThEN0UzRDc2NUZEODAzNjA2M0VCMEYyQURBNTREMDY0RDAzRAorMDg1MEUyMUE3RUY1QkYxQTZGQzUzOEI0NEY2QjlEN0RDREU2RUY4NDQwNjk4N0VDNzM5ODAzODczQkRGOTUzOQorMUQwRTEwNzM1RkQ2RjM5NzIyM0M2MkQ5MzE4RTMyM0I2NjYwNjNFRkJERUYzODdCNTg4NkU3QTcyRTVGRDRBRgorMkNGMjYyNkRFNkJDQkY2MEE2NjI0M0Q4MkQ2NkJGMjJENDIxM0RCQTE0MjFGMkE2OUZEMTZCQzU2MEQ0OThGMgorMTMyNjI3M0I4MUIzRUQwRjhDMzk1MkJFQUZENzYxQzZGODIyRkNGRTVFMzdCNTYzMDYzOUFDRkE2RUQ2QTgyRgorMDY2MkE5MTdGOTE2MzQ3OEQyREM4MUY1NUJCQ0I3MUUzMjczRkUzMTMxRjNFMUU4RjUwMjkxRDM1REJFRUNFMworMUEyQTJDNjc1RjBDMTRDMTE0ODM1OTBCRDRDOTQxMDIxRkEyQjlFNDg3NzFBOTJDNDZDMjJBNENEQTYyM0M1NAorRDg5QTFDQjA5NUE1REU4Q0MzMjhERUU3MTEwRjdEMTIzQzNFQjlDRkVFNzU3RkVCNUZDMTVCNzE4Njg4NUVFMgorQTkzOUY2RjAyODI5Q0M2NzIyODFEMUNGMDk3RkNCNzMwQTU1MEZFQTRBOTE1Mjg2QjA4OUU1NTMwMzk5MEEyQgorMjQxMzI1NDNFODQ2M0YxQzBCMTNDRkE4Rjk0NTIzMjYyQkVFNzU2QUU3N0JDRjFFMDg3QUJBQzNFODI1MTI3MQorNzFDQzFGNjE3NTg2RTZFRUU3RUVDRTQzNUY0RjMwNjEwNkVCRDJBQTQwMTdDODg4RjQ5OEI0OUJCOTZFOERBMworN0JERjZBNDA2MDUzQUZGRjM1MzMxMUI4NDBCOEUyRDkxRkJFQzNBNzI3NjFDQjBCRkNBQ0IwMTFDNDM3RTRBRQorNEFDOTdCOTI4NjIyNUIxMTUxQ0Q2NjdGNTI2MEFCODdDNUEyMERBQTYwNDEwRTlDMjMyOTE0RkFBOTRDQUFDMworMjIyOTUzNUQxNUExNUM5RDVCRjY3NzlDQjIxQzM2RTA0NTg3NUM2MUIxQjkyNDYwMDczMzg4NzdDMjYxMTlBQQorOTE1NTlBODk4REFBQTI4MDRGRjZGRjI0QUZCNEE2MEUyRkI1NkI3ODk2OEIyRkQzRTQxQkQ3RTZBRkMyQzg5QQorNEU0QkIzNjMxQTAyQUQ5NTJFQTE4MTlENUFBNkIzMTVCODdGNzZEMDYzOUY5RDY0NTEwOTZERjRGMTNGRTM0NworMjQ3MDBCQjU2QUE5MDVFOTA1RDA2OTBFQTNCRUYxRTM1MDQwM0E0OEQyRDU3OTdDMzAzN0NFM0VFRUI3Q0JBQworREVCMTgyNDBFQUY1RkNEOTUxRjc5NjBCREIwNkRBNDdFMjBFNjAxMjQ3MDkwOTI2NENGMkEyQTVEODhFRjZGRAorNDBCNzJGMDNGQjQ5MEQyRDE5NDlCODdDRDQ3RjE1OENBREQ4MzVBREM3MTU4NEJCNjM0Njk0NzUyMDREMEYzOQorNzFBRjExNTlCRjRFQzMzM0U2NzY4RDU4MDMwRjM5OEFBMjUyRkM5OEQyNUZCN0FBMTJEMTU1QTA3ODhFNzA5MgorOUMxRTdBNkNDN0REQ0ZGMDk0QzNGNTBGRjJCQ0JBMzZGQkJGMzE1RDVEMjlCQzZFOUU0ODhENTI5OThFRjYxOAorMkRGRTYzQTE4NjY0NTdFMEM4NDNDRjdGQzE2NDQ0QjczMjAyNzJBRTAzOUVCODRCOUNCNTBBN0RDMDU0QTRBQworRUVBQ0RFQjA2OUYyNkZEOTMxN0I4RjJGOTEyQ0QxRjM5RTQzNUY5NUExMDU0NzU2N0YxNTE0N0JDMTk0ODBDNQorMjlFQTBGRTFDOTk2NkRFMkEwQ0NFRTYxMjA4MDgwMUNDMEFDNUIyRUNFM0QxMDFDOUU2NEI2MkFEMUUyMjUxNAorOUQwNTZENUE5MEFERDgxQzU1MDAxRjFBMjE5RkQxM0NGRjk5NjNDMjM0NTk1RkU2OUFGNzkzNUQ1MEYwMzNENAorNEY1RTI4MUUwOEVDNjlEMjJCRDk3QTVGMkUyODUzMDVFREQyQzdDNDQxMzMxNzZDMURBODdCRjg2OUJFQzZEQQorOEQ0RTQxNTcyNjNFMjYzMjVFMjk3N0YzMDUyM0U4M0NGQ0JGOTE1RTZGNkFCMDFBM0IwQjREQkUyNkUwQ0E5RQorMDMzNDk5QkE5MjkwMkEzNjZFNjEwRUJGQjlEMTEyMEY4OTRBNTE1MjhDMjdGMDA2MzdCMzU5OEFDMjUwQ0NERAorMjZEQTI4MjFEQURBRjM2QzZGOThDNzgyREUzQzVDN0JGOTAxN0MwOERCQ0JFMjlGRUQ4NzdDOUI4MzhERDEzNworMzMzQjFCMUU2REIzNDEzNTY0NTgzMzYwMTI4MjlENzE5QkY5RDU5RjhCMzc3RkQwQTEzODk0QUI3NDhGNzc1NworODkyQjUyRUM2NjcyMTIyMzNENzgxRjQ3RDE3N0I4NUQzMkRDRjBDRTNBRDAwNTBFN0NCNkFEOUMxMDY4NkU5OAorMDZDRDVCNTE1NTRFRTBBMUYyRTYzMTBDRjhFNjhCMUVDRDlERUZFNDg5MTQ3MDU0MjBBNDY0MDM0QzMyRUY5OAorNTM1NzNCRTVGMUZBNEFFQ0I0QjhDQTU2MUUyODM4OTM5RDZBNkNCMUZDREFDMUQyRDFDOUVBNTY2NTZCOTkwOQorMEFFNzBDNjJDQ0ZEMDc4M0Q3NDZFOERDOTk3QkJGOEU0ODAxOUZCQjlFQjI3RERGNDMyRjlENDk0MzhCMENDNQorQjg4RjhDRkY3MkY3MUFGOUEwNUY3QTRDMDU2NUExNzQxRTU4NURDNEFDNEVDOEU3QUY3RUIyOTg1N0JBODYwRAorQTBEOUNBRjBDMzNBMDREREU1NEM0ODNGN0I1QTc3MEZDNjlBODM1NjlFNTBDNzRDMjQxQjJFQjM2REQ5Rjc3MAorMkQ3RkY0NEIxNUJCREZDN0UyRTIwN0QwQkQ4N0VEQUQ1MUIwRkVDOEIwMDAxRjYxMTRFRDBENTM1MzEzODMxQQorMEI1RjlDNjlEMzRBMzBFRkI4MDZGRTEyQ0ZENjQwMzM5RThFNkVENTFCQkVBNkQzMTVDNEMwQzJBMkY4MDRCNAorNThBQTNFNzc4QTcyOTEyMEYyMTdGNzg3N0EyRDlFRDdDQzlBQ0NEQkEwMTEzNERCQ0EyQjdFMTRCNjBENzc2MworRDcxNTg0MTdDQjUwOURCQUEzRUE5NTA0Q0NFQUEwM0Y3NUIzNTlCRUE0RjI5NURBNkMyODkwRTYzNUQ5NjE0RAorQjM5MjhCMkU3MkFFQTQ0MDI2NTZBOTE2NEFGQjIzQjU5QTdDMDI3RDUxMjdDQjhFMkFCQURENjI5OEE0RDY2NQorMzQ3RTNFMDcwNjQ1QjJENzk1MDY5N0JGQ0U1NzAzQTNCNDE3MTBGRjFFMDM3NERCNkIxNTUzMjBFODgxMkZCMAorOTAzOUI1NEVEQzI1QjlCRDlCN0UyNUMxQUYxREJFRTExQzY2MDRFRkYwNkY2MTUyODFDOTZDMjY2ODM4NjdBMQorRjkyNTMyNUJEQTAyMDBFQjg4QUZCMjFEQTY2NzJFNDJEQTVDQUVGQjA2NTBGMEQ2RDVCNkJGODJDQjFBQ0QxNAorRTE5QTNCQjk5NTA4N0FCQzYxNzBBRkRBNkVFMUREQUE3N0VDQjA3QTgzMENCMjA2NjUwMTQwMUJCM0I4MjY2NgorRkE1QzgxMkRGMDk0QjA2MkRCQUFGOTY0NTNBMUUwODcxREFDNEYxRTQ3Qjg3NERGNEI4NDlEMTIzQjJCMDU0NAorMjc0REJBMjM4MkMxMjM4QzVBOEE1NDUxRjUwQUEwRkM0OTVFN0U1RDVDODAwQTI4QUFGNjhGNjA5REEyQjk4NworRkE4QTNDRjY5NjJDOTcxMDk4RkJCNDVDNTA1RTZBRkM1MkEyRUJFNUMyMEI4MkM4MUQxNDM3NTVCRDk1ODA0RAorMTdBQ0M5NDRERjBFRDQ3NTAwM0MxQzA2N0MxRjZBRjQxRDI2N0YxNkY4MUFBMjZFQkIxNjY5NkQ2OTdDQzI4MgorNTcxMjNEOEJFNTYzN0JGRDZEMTVFQUU0NTQ1NjFGODRBMUU1MkRFMDM1MTExNjlCQjIwNjVBQ0JBMUEwMjBCRQorQzhERDY2QzhBNjM3Mzk3NThDOUNGQzQ0NUZERjE2RkM1NDdCNjhEQzg0N0RBRDZEQzg3REZFMEExODZFMDNFMworOEFEMTg0QTEwNjYzOUEzRUVDQ0QwM0MxMDM1Qjg1M0VERjM2QkUzQjk2RTg4NTNEMTczMjM4QUE5QjQ3RDUxNworODdCQUMzMTJBMjgyQjZBOTQ5Q0M4MUFEQjFGODQxOTEzNzFGMDIzM0MzMDNENTQwNjg1QzNFOUY5NEJCOTI5NworQjc3NzdCRTQ4M0I2Q0Q1MEM0RkFCRTBCRTkyRDQxNzlGQzMyRTI5MzlDNUMwNEQwNTUwQjQ2RTNCMjU1MUVGMgorNDAxQjAwMjEzMTQzRjFERTE4MDM5QjE4N0YyMDBBOEJCNTY0QjgzRjAwNjk0MzQ4MUUxNDFFNjM4MzdFRjBFOAorQzE5MTJDQTM0N0EwMUEyRTE1MUUzQTZGMTE0MzI4QTJBRTU0MjIyNUEwMTIwRTI2QTkyNUYxNzZBNjQ1NUQ0RQorQ0NFRTFENEQxRDczRjlERTkzRkJEREM1OTI3QTI3MTk2M0U1RUQ3RjVENjY0MEFGRENCOTk2RTZDQUY3NDU3MAorMDQ2RkNDQTJFQjAzODc4QjEwNDA3NkE0NEM4QzQ3OTI3NTY1NkRBQkE2NEU5QTVCMTY5MDQyMjQ3RERGRTA5OQorMTQxODhBNTI4REE5NjRGNDRFOUZDRkU1QTFCNzY5RDlGQjYwNjRCQ0EzQzI5MTZEQkUxMERFNThBRkMxN0JBQQorQjIxQUQyM0E3QzE2RjM3NjY5RUMzOURBQ0M1QUU1Q0I4RUU4MjVEQjQ3MzE1MEJEQTI3QkQ3MkUzRkIyNUFBRAorRUUxQ0RDQTYyREZDOUJGQTAwRTg1NzRDNUNGQzYzODRFNDM0OEFBNjJDOEQ1MDA5REYxMEFGNzA3MDY3MUFCNworRUQ0MjVDM0I5MzAxQTg0ODA0RENBM0Q4NDM3QURBNUEzNTRDQTU3N0EwRkYzOUU2QzU4ODM4M0M1ODM5NTc5MAorODFBQjg1QTVEOTBEM0YwOTA1NDgyNkE0MzEwOUMzMkM5NTYwNEVEMEVENEVFN0NGNjg5NTBGOUMyRjk1OTIzMQorQTA1QjIxQTg5RjQxQzFBNDk2MTU4RkIyQjMzMDc2NjE4RTM2M0ZDNUE3M0NCNDQ1NjQ5MjI2OTlFRkQxNTY3OAorNkRGQTg1MDNCQjhGOEUyNjJBRTZCRjBFRDdFQUM4NUYwRUI2M0YzMTFBNkU5RjVDMDlGNzM5OUVGMDgwNDY3NAorNDcxNzIzQ0QxRDNEODQxODNCNDAxRjIwMzdFMzZENEJDOUQ1QkFEMUEzMjcwRjA3RUQ1NUE0MzkyNEZEMkYwMgorREZEQTIzNkRGRUM2MDNBRDdCQkM4ODA0MEUwQkZFRkZCQTkyREMzRjcyNDc1NkNEQzQxRDA1QjZDQkIwNEU0QgorNjkzMzgzOTc1QTc2MzZGQzMyNjlDNTE1MUIwMDg1RjRCQzg5ODg2RTVBRkEzRTFDRUNDRjk2N0FDMDc2NUQ0QworQUQ0RjRGQThGM0QyMTU4RjcwRUE0NEYwQTc4MjA3REMyQzUyODdGMzc3MTgyQjdDMDgxNzI0M0E3Njc4MUIxQgorRUZCQkUyMDExQUNENzJDRDFBRDUwQTU1MUQ5NTY1NEY5QTY3RTJGOURDODVCRDA1QjEwNDMyNURFMzhDNzE5OAorRTg1RDZEQTA2OEI0Qzc3MkI2Q0NFQUNGNjhCRDhCMUQwODcyMUNFQ0ZFMTBEODgxQUZFNjQzRUU1NDM4QjNDMworNTIwM0VCOEQzRTAwNEU0RTE4RUI2QzFFOEE3QkU5NDQwMTE4MEREMTM0M0M0NkIxRkU1ODcyQzAzOTY1M0UxMworODgyRTY2MDk5QUJFM0FCNTAwOUE2MjJDOTJEQ0E2OTcyQjhDMDVCMTMzMDUwRDk2MTJBOTQ4N0Q1QkM2MDc3QgorOTUyNDhGMTFCNTQwNDM5MTJBNTQyMjQxQURCNzFFMjcxQTgzRUQzNkZGMENDNDRCNkRFOERCMDk1NDY3Mjg5RQorNDlBNEE5N0VBMzYzRkIwNDg2Qzc1NjdBODA1NkYwNTY5MDRDNUJDQjJBREZFMENENDY5QTkzN0FFQzkwQjExOQorNTdFQjkxMUMwQjg4MTcxNzY2NzAwQzQ0QkE4QUM3QzlEMUM5NTQwMTBBNUM1OTRFQjBEQ0FGNkY1MjhBNkMxQQorRTVBRUREODhGODkwRTk0RTNERDFFRTJEMDg4QUUyN0MyNDJENjkyRTYyN0JBMDBCRTY3MjNDNTRFQzc0ODg2NQorQUQ4RkRCOEQ0REVGRUY0RUM2N0E4OUZERjg3QTZCN0Y4QjQ5RUFBQjk2NjRFMTA1OTYwRTIwOUM2NjNEMzEwNQorOTY1QkRCNTVDNTQ4RkUxQkEwRkI2MTA5MDBFN0RDQUREMDg0NDgxMjk1OTQ4QzI2MzA0NjMyNkRBMEM4QzUxMworODBGRTFFOTU2QUY1NEMzRDhDQzVDNTNDRTcxQkQ4QTY0NkY5ODEzRkI4NTgyQ0ZGNDFFMzgzN0JCQjgwODRENgorMzBBMDBBMzYxMjRDMEU4MjdFMDhEMjY3NEQ4MUZEODQzMDBDRTY5NzFCMEQ3MTFERjkwQkE3MkFBODQyQjMwRgorQTk5QzIzMEFBNTg0OTJGQTM0NDMzMjM0NThCOUI3MTg5NTE0REI4NDM5NTgyOTI2MzM2RUE0MkUyRUE2QzMxOAorQ0YxOThBN0NFMTM1MERCMEYzNDVERkI3NDI1RUM0OUFCRENFREIwNzg2RDI5RTZBNzkxRDU3M0Y0QkQ5N0JBQgorNTYzQzhCQTQwQjRGMUI5N0QzMDU2NkUwMEQ0NTA0ODEzQUU3MDRFMEY4RDAyNzI5MTMzNDFDMzEyQzQ4MjVGQworNDk5OUZGOUFFNDE1QzI0NTNBMDNGMDYyNDI5MUMwRDA5MDgxQzI3OTJGQkExRDYxRkQzNkNGNDk2ODFFM0ZBNAorNjRCQjU5OTU5QUVGQzMwMzdBNDEyMjlCNDJGRDdFNTMxOTMzMTQzRjAyNkQ1M0I1QTI5QTc4MEQ4OTlBRDRBOAorNTg2OTVGMDVEQUNENjZGRUZFMDc5NUY4OUE4QjVENTBFNkJFMjIzNzAwRDdBOTkwNTlGMzA0MzZDN0REN0ZCNAorQjUxREFDNkE5NkMyREU0NEUzQTUyMDA1RUZFQUREQzJBMzI0MUFFNUU2NTREMjAyRTVGN0RCNjk5NTUwQzE1QQorNjNCNzJGOTcxRjhEMjc0MzNBMTUwNTU5NTU4RDkwMDg3NUFBQTczOTgyNkI0NkI2RERERTc5QUNGQTA2QjAzQQorQjBENzI0RDhDRUZEQUYwOTdGM0RCNDQ3MDgzMjhFRTNBMDEzRTdCNjlFRUI3NUU2Nzg3ODVCNEIxOEMxOUE2NAorMTc4MEY5MzBBNTdDOUQzNTREMEQzNTc2NDJCQ0MzRDFFOTc2OTkxOTY3NUY5NTZENjQ2NDlBQjBFNzAyRjRDMQorNDg0QjQwOTMzNjI1RDE5MDk4ODYwRDJCRUU0NDFGODExNzVCQzg5QjVFNkZBQ0VCRTA2ODI4MzIyMjU5MUEzMgorQzI3NkE3Rjc5OURGRTUzOUQ5MzY4Rjg5N0IyQ0FBNzExMzgyNDRBMTIzM0FENzQ3RjgwQUY3QURBQzJDNUQyRAorMDMyNTdBOUQzQzYxRDFCNTBDNkI3OEI4NTlCNkIwNkMzOUUwREI4NEVDMDhCMTQ2MDBFNzNDQTlCRUEyMzA0MAorNzY2QUQwQTlFN0U1MzgwNjlFRjU1NUZBMTE5NTBFMEY5QjQ0MUNGRDhBOTcyREZDQzY3NDA1MkQzRTJEMjFBNgorQTU1NDAxMEZBNjU1MjBEMjJGMTVFMzBDRkI4NzI5MkFCMjU0REI5RjI1MzZGQkU4QzE1REYyM0M5RTdBRTYzOAorQzcxODY4RTUwREM0NDdGOTUyRUU1MDlEMTdGRkQ0QjNGOTExQzREQzQyOTM3ODg5REQ3OEVDMTM2OTc0OTRBNgorRDJEODA5RTExM0QxMDk0NDYyQzcxMzcyNDM3QzUzREJDQkY4NTI5MjEyRkEzRjRBQUVGREQ1QkQ4OTNDM0YyRQorMkNBOTc3OEQ1OEI0RjEzMDkzQTU4MURDMTJEOTRBMUE3RDRBOUMwRkE1NDRBNDBBNUQ3ODNGRjhDRkE1NTA1RgorNDU2QUY3RjY3NTRBRDQ1RTY3MUE2MUVGQ0YzMjk2NjJGRTExNzg3Mzc0MUM2QzFFODM4MDE3QjVERTFCRTMyMworNjgyMDU0ODYyMzQ1MkVDRDMwMUZBOEQ4OEJBMEJGNzQ3ODU5NkNDMDgyQzMxNDM1NEJCQUU5QzhCQkQzOTcxRgorNkE4ODI5N0U0NkRERDREMjBCNERDN0NGRDlCQjU1NUU5MDBBNzZCRDFCODg0N0U3MkI4RDFEQTJEM0ZDQTI4MgorMUEzRTkwNUY5MDQxQjA1NkIwRUQwQjFDQjc3QzRFMDA0Nzk0QUE4OTZEM0FCNjU0REVDQTc4MzJDQzE5RDNBRAorNUU3RkY4RjA3RTNBRTY2MDdENkFFMEE1QTNCMzQ4QTZDNDA3RDg2MzM4RTIzNTY0QzEzOTgxMzg3NThCMjkzQworMDYyMUMyQ0NFODREMDkzMkVCMjIwOEE5MURCNTg3NUFDNUQ2MjA2MUQ5MDU2OTIyMkRGOUZDMTMwOTNFOURBMQorMUI3NEJFNTE5NUQ5MDFGQjAwMkNGMDY1NDQyQjhCODM0OEY4QjE1NkNEQkI0Mzc0Mzk2MTQ2NTZEOEE2ODMzQQorQ0YzNzM1QjM5MzVCNTA1MkQyQTM3MDgyMEUxRDUyOEFGNTE1MUYyNDczOUI2M0I3MjMwMjYzNDBDMUYxQUZFQgorMkMwM0ZDNDhGQUI1NTMwN0MwQTIzQkNGNDk0MkE5MDRBRUQyN0M3NkI3N0FGRjMwNDBBMjE3OEQyNzNFMjYzMAorQTNFMkJCNDEwMDE2MzhDNDg1MURGN0MwQjFBRjIxMzc0RUU4OURCODA3NjYwMjk3NTUwMTQ3NDc3NTg5OTcxQQorRDlBNDczQkEzRkNEM0QxNjc0Nzk4QTAxRjlBMTM1MjFERkRFN0I0MDM0RDYyNkY3MkREOUJDOTgwRDZDMTIwQQorMDk5MjkxNDgxMzJFODMyMUQ5QkM5RjAzQzY4NjMwRUQwOTU4NzA1M0EwRkJDNjc2QkRBMTg2NjJBMTdFREI1MworODFENDg4NDg3RkM0MDkzNjdDNTYwNUNFNzQ2NjA0OTU5RkRCRkY1QjE1ODJDQzNGM0IxOTYxNzlDNTg1MjVDMworMThDMEQ3RTExQURCNUM2NDhGRTk3NDEzRDkzRTA0QjIzNUIzQkE4NjdFOEFENjc3MzA3MDUwMjY2QzYzMUVDOQorRjIwQzAxNzk3OUE4MjE1NTJFNjZFM0E3Qzc3M0JDMDhCMTYzRjVBRjBENzM3RDQ3NUJCRjk2NDcyMkUyMzk2NworRTcxQzc4RkI1MjVFOEM0RUJEMkI2MjVCNDZGMjUzREUwMkJGMDUxQkE1MjMxRDI2QjhCNjExRTVEMjg3N0MwMQorMDkyQTI3NzM0MEM3RDBFOTVCRjlBRTdEOTFEODhCMEU4MTI0ODIyMDI4MDIwQjQzREE1REU3QjMzQUYyN0FFMworNTRFRkZFQzI0RERGNkI0RUU4QzdDMUQ1RjhEQ0MxQ0QwMzlFMDQ3OERDM0EwMUIwNjExRjE3Q0RDQTgyRDAwNgorOUE1RDJDRUMwN0Y0QTExMTc1RDM1RjU2QzM1MkQwODQ5RTg5NEE5RkMyRjk5MTc4NDc5MDc1NzgwMTNDNUE1OAorODRGOUE2MTlDODkwRjU3NzM3RDBBMEQ0REM4NkI3NTE3OTMzM0JENjExQjJDQzRENkNEQzZDQUU1QjgyODc2MgorMUM5QkFBOTVDOTA3RTQzMzg1MjAwODA5QjY4OTQyQTUxRDVGRTBGQ0NGNEI5OTVEMDM2NzExNEQyOTI2NEI4MworRkU3OTZFM0U4NDIwMEMwRDI4NzA0RDc2MTc2RTY0NTFEOEM2NzBFQ0M0OTBDNzlCNEU2NEU1NEM3QzU5QjMzQworQjE3NkI2RUY5NDkzQ0Y1MkZGMEJEMzBFN0ZFOUNGMzAyRDkyQUU4Mjk2MzA5RDdDMzQ2QUJDMjg4ODU5QzQyNgorOThDQjdDN0M1OEE3NDlDREJFMUZFMDUxNjJGOEY1NDFBODA5QjlFMjVFRjg4MzQzQzIxODYzRUNFNDY5MzE1OQorNzU4OEU4NzdEM0U4OTRDRTA5RDlDNzc4ODI2Q0NFQjEzQkMwREFDNjg0NUE2OUJGQzg1QTc5N0VEMzEwRTM4QQorNzJBQjc5M0YyQTNEMjY1OUY5RTU5RTBEQ0YyMjk0MUM1MjMzOTVCRTVCRTE5MTBFRDIxRUNENDE4NDI0NzRCMgorMjdDRDhGNzVCOTZCN0I3MDQzQTdDOTIxMURERjkzNjQ1RENCMzQwNzM3MzgzNDk5MUQ4OTY1RDFDREJCNzEzQQorQUM0OUY4NDhGNzM5ODM2MDI3NTFEMjY4OTlBOUJFMTkwNUZGMzAxRjlBNkVENkIyMDdDRTIwQjcwOTAxMTdCNgorQ0EzRkM0NkE2OEZBMDE2NTA2MzFDNTFCRDhBRjNCOTcxMzkwNDJGMENEQ0VEMzgwNkVCRjEwRDM0NEI0NzBGRAorOUIzNTc3OTQyOERBMzJGMUE5RjYwQ0ZCRTI1QkE2OTFCQUQ0OTAwMzdERkIyQzVCOTU2RTA2MkE2RUI4QzU1MworOTcwMEVBRTkwQjVCREE5MjUzQkU3MkJCNTMzOTQxRUU4NzUzNkExQjZBMzY3MDIxNTZDNUU5MEFFRDAwODgxMworOUU3OUNCNkUxNjEyMTM1NjJGOUVBM0FDRjEyREZBMjFCRjkzMzZEQUZCMUU5MEZFMDgxMjM5RkQ3NzYwRjZENworQTg0Rjk1NjgwNEE1QTVDQUQ1RDUwMUI5N0VFNzU4QjlFQzE2NUYwNUUwQzM2QkYwMzU1MjYyMDYyNEM5MDUwQworODNBRTgyOURBMTlCQ0I3RkU3ODU2N0FCM0JCRTRDNzcwRDAxODI1QjQ2NUQ4MzQyNTgwRjVFQTgwOTMyNTczNAorQzUzM0UwRjJBOTlDNjk2Q0QwQ0Q4NEYyQ0ExNTE1NDhGM0FBQkE1MDkxOTlCMjEwNkVCRUQwOEEyRTc5RUJDMQorNjRGMEEzRDc3QkRDNTNDMTA0MDU2MUQ5RjU1OUY0NzM0OTZERTYyQjhENDA2Mzg3MkQ1MDRDMzgzNzg1NkZENAorRjQ1MUFGN0YxRUU2MDBGRDY2QzAxQzlDQTYzNzkzRUJDOEZBRDU5NUFGMTcyNENFN0JEMDA2QTcyQjBDRjE5MgorOUEwMjNDQ0E2MkNDNTE5NjY3RjJFMjc4NDQyRjQxODVFNTc1ODBCNzYxQzgzMjVGQ0NGQjZFMDk0RjM0RjRERQorMTY0NEIyNEI1Nzg3NzFFMzcxNDFBMTU5OEU2M0U5RUJEMEFGNENBRDQ0M0FFMkRDRUQxRTU2NDAzOEZCNkRDMworNTdGNzFCQzZFQzBDMDkyRjBGOTE5Njk1NzJFODAzMzVBMkQzOTQ3Mjc3MDVBQTk1MTcxNkNGM0VCRDI2ODIzQQorMDAzQTI5OTM1QjkzRDE3MEZFRTFEREJCQ0MwODFBNUU4MDkwQjBDQzc1RDJBRjYwRkQ0RTZFQjYzQTE1MzQxNgorQjI1MTQyQjU5NEI3NjU4RUM0QTFEMEI2MUJBODAyMkJFOUU5RTI1OEU2RUI4QjgzQ0JGRjZCQjUwMjI3NDc0OQorMjgxNUFBREIzNDJDRkY5MDFEMEEyQUU4NEJBMUQyM0FGNzQ5QzREQTA3QkZENkQ4Q0QwM0MyNzVGMDk1MjUxQQorODFBQjAyQjJDNEFGRkFBQzNGMkMwM0EyOTYwQjgwRjMzNDYzNzRERDJEMkQyQjIxRDEzQTc4NDdEOEJCMUFGRAorOENDNUFBNUMxNjM0RkI4QzcwNUQ0Mjg0MkU2QkQ3NDM0Q0U2NTkwNzQ4NzAxQTNBQjlFMTcxNzVDOEVBMzRFNgorN0NFQTUxODFEQjI2QkIzNjM3MEJCN0IxRDQ0MjVEQjU3MDEwQkZCQzkyQTUwQUJBNkIxNTE1ODREQjI1RTQ5RQorM0M2QjEyNTQwMDYyQ0UyODQ4OENFRTQwNzMyMUVBRTEwQzQ1RjAxREE0NzZEMjhGMThGNzBDRDAzMEZGMzYwNQorOERDQjEwQ0Q4MUUwRDIwRjEzRUFDMzIwRjhCNjc3QTk2QTVBMjE5NjVEMTEyMkUyOTc5NUM5ODNGMjYyNEQ0MgorNTJDNkQxRUMxQTNENDVBNTVGRUFEMEE4ODQwRkFFQzIKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKK2NsZWFydG9tYXJrCislJUVuZEZvbnQgCitUZVhEaWN0IGJlZ2luIDQwMjU4NDMxIDUyMDk5MTQ2IDEwMDAgNjAwIDYwMCAocmx1c2VybWFuLmR2aSkKK0BzdGFydCAvRmEgMTM0WzM5IDNbMzkgMzkgMzkgMzkgMlszOSAzOSAzOSAzOSAyWzM5IDM5CisyWzM5IDNbMzkgOTdbeyBUZVgwOWZiYmZhY0VuY29kaW5nIFJlRW5jb2RlRm9udCB9MTMgNzQuNzE5OAorL0NNU0xUVDEwIHJmIC9GYiAxMzRbMzkgMzkgMzkgMzkgMzkgMzkgMzkgMzkgMVszOSAzOQorMzkgMzkgMzkgMzkgMVszOSAzOSAzOSAzOSAzOSAzOSAzOSAzOSAzOSAzOSA5WzM5IDM5IDM5CiszOSAyWzM5IDFbMzkgMVszOSAyWzM5IDFbMzkgMzkgMVszOSAzOSAzOSAzOSA1WzM5IDhbMzkKKzM5IDFbMzkgMzkgMzkgMzkgMlszOSAzOSAzOSAzOVt7IFRlWDA5ZmJiZmFjRW5jb2RpbmcgUmVFbmNvZGVGb250IH00OAorNzQuNzE5OCAvQ01UVDkgcmYgL0ZjIDEzNFs2NSA2NSA4OSA2NSA2OCA0OCA0OCA1MCAxWzY4Cis2MSA2OCAxMDIgMzQgNjUgMVszNCA2OCA2MSAzNyA1NiA2OCA1NSA2OCA2MCA3WzkzIDNbOTQKKzg1IDY4IDkyIDNbOTYgMTE2IDc0IDk2IDFbNDYgOTYgMVs3NyA4MSA5NCA4OSA4NyA5MyA2WzM0CisxWzYxIDYxIDYxIDYxIDYxIDYxIDYxIDYxIDJbMzQgNDZbeyBUZVhmN2I2ZDMyMEVuY29kaW5nIFJlRW5jb2RlRm9udCB9Cis1MCAxMDkuMDkxIC9DTUJYMTIgcmYgL0ZkIDEzNFs0OCA0OCA2NiAxWzUxIDM1IDM2IDM2Cis0OCA1MSA0NSA1MSA3NiAyNSA0OCAxWzI1IDUxIDQ1IDI4IDQwIDFbNDAgNTEgNDUgOVs5MworMVs2OCA2NiA1MSA2NyAxWzYyIDcxIDY4IDFbNTcgNzEgMVszMyA2OCAxWzU5IDYyIDY5IDY2Cis2NCA2OCAxOVszMCA0NVt7IFRlWGY3YjZkMzIwRW5jb2RpbmcgUmVFbmNvZGVGb250IH00MQorOTAuOTA5MSAvQ01TTDEwIHJmIC9GZSAxMzhbMzkgMjcgMjggMjggMVszOSAxWzM5IDJbMzcKKzIyIDRbMzEgMVszMSAxWzM1IDVbMjAgNls1MSAzOSA1MiAxWzQ4IDNbNDQgNVs0NiA0OCA1NAorNTEgNTAgNTMgMTVbMzUgM1syNCA1WzIwIDM5W3sgVGVYZjdiNmQzMjBFbmNvZGluZyBSZUVuY29kZUZvbnQgfTI2Cis2Ni40MTc2IC9DTVI4IHJmIC9GZiAxNTBbMzAgMzAgMTA0W3sgVGVYYmJhZDE1M2ZFbmNvZGluZyBSZUVuY29kZUZvbnQgfQorMiA3NC43MTk4IC9DTVNZOSByZiAvRmcgMTM0WzQ4IDQ4IDQ4IDQ4IDQ4IDFbNDggNDggNDgKKzFbNDggNDggMVs0OCA0OCA0OCA0OCAxWzQ4IDQ4IDQ4IDQ4IDFbNDggNDggMVs0OCAyWzQ4CisxNFs0OCA0OCAxWzQ4IDFbNDggMls0OCA0OCA0OCAxN1s0OCA0OCAyWzQ4IDVbNDggMzlbeworIFRlWDA5ZmJiZmFjRW5jb2RpbmcgUmVFbmNvZGVGb250IH0zMyA5MC45MDkxIC9DTVNMVFQxMAorcmYgL0ZoIDEzNVs1NiAyWzU2IDU0IDQyIDJbNTEgNTggNTYgNjggNDcgMVszOSAyNyA1NgorNTggNDkgNTEgNTcgNTQgMVs1NiA5N1t7IFRlWDBlZjBhZmNhRW5jb2RpbmcgUmVFbmNvZGVGb250IH0xOAorOTAuOTA5MSAvQ01DU0MxMCByZiAvRmkgMTM5WzMwIDM3IDM4IDNbNTEgNFsyOCAxWzQyIDU2WzI4CiszM1s1MSAxMlt7IFRlWDc0YWZjNzRjRW5jb2RpbmcgUmVFbmNvZGVGb250IH04IDkwLjkwOTEKKy9DTVRJMTAgcmYgL0ZqIDIwOVs0MyA0Nlt7IFRlWDc0YWZjNzRjRW5jb2RpbmcgUmVFbmNvZGVGb250IH0xCisxMTkuNTUyIC9DTUJYVEkxMCByZiAvRmsgMTM0Wzg1IDg1IDJbOTAgNjMgNjQgMls5MCA4MQorOTAgMTM0IDQ1IDJbNDUgOTAgODEgNDkgNzQgOTAgMVs5MCA3OCAxMlsxMTIgNlsxNTMgOTcKKzZbMTA2IDFbMTE3IDFbMTIyIDE1WzgxIDQ5W3sgVGVYZjdiNmQzMjBFbmNvZGluZyBSZUVuY29kZUZvbnQgfTI1CisxNDMuNDYyIC9DTUJYMTIgcmYgL0ZsIDI0Mls5MSAxM1t7IFRlWGJiYWQxNTNmRW5jb2RpbmcgUmVFbmNvZGVGb250IH0xCis5MC45MDkxIC9DTVNZMTAgcmYgL0ZtIDEzNFs3MSA3MSA5NyA3MSA3NSA1MiA1MyA1NSAxWzc1Cis2NyA3NSAxMTIgMzcgMlszNyA3NSA2NyA0MSA2MSA3NSA2MCA3NSA2NSA5WzEzOSAxWzEwMworOTQgNzUgMTAwIDNbMTA1IDEyOCA4MSAyWzUwIDFbMTA2IDg1IDg4IDEwMyA5NyA5NiAxMDIKKzExWzY3IDY3IDY3IDY3IDY3IDJbMzcgMVszNyA0NFt7IFRlWGY3YjZkMzIwRW5jb2RpbmcgUmVFbmNvZGVGb250IH00NQorMTE5LjU1MiAvQ01CWDEyIHJmIC9GbiAxMjlbNDggNDggMVs0OCA0OCA0OCA0OCA0OCA0OAorNDggNDggNDggNDggNDggNDggNDggNDggNDggNDggNDggNDggNDggNDggNDggNDggNDggNDgKKzQ4IDQ4IDQ4IDFbNDggMVs0OCA0OCA0OCAxWzQ4IDNbNDggNDggNDggNDggNDggNDggNDgKKzQ4IDQ4IDQ4IDQ4IDFbNDggNDggNDggNDggNDggNDggNDggNDggNDggNDggNDggNDggNDgKKzQ4IDFbNDggMVs0OCA0OCAxWzQ4IDNbNDggNDggNDggNDggNDggNDggMVs0OCA0OCA0OCA0OAorMls0OCA0OCA0OCA0OCAzM1t7IFRlWDA5ZmJiZmFjRW5jb2RpbmcgUmVFbmNvZGVGb250IH03NworOTAuOTA5MSAvQ01UVDEwIHJmIC9GbyAxMzFbOTEgMVs0MCA0OCA0OCA2NiA0OCA1MSAzNQorMzYgMzYgNDggNTEgNDUgNTEgNzYgMjUgNDggMjggMjUgNTEgNDUgMjggNDAgNTEgNDAgNTEKKzQ1IDI1IDJbMjUgNDUgMjUgNTYgNjggNjggOTMgNjggNjggNjYgNTEgNjcgNzEgNjIgNzEKKzY4IDgzIDU3IDcxIDQ3IDMzIDY4IDcxIDU5IDYyIDY5IDY2IDY0IDY4IDVbMjUgMjUgNDUKKzQ1IDQ1IDQ1IDQ1IDQ1IDQ1IDQ1IDQ1IDQ1IDQ1IDI1IDMwIDI1IDJbMzUgMzUgMjUgNFs0NQorMjBbNTEgNTEgNTMgMTFbeyBUZVhmN2I2ZDMyMEVuY29kaW5nIFJlRW5jb2RlRm9udCB9ODAKKzkwLjkwOTEgL0NNUjEwIHJmIC9GcCAxMzRbMTAyIDRbNzUgNzYgNzkgM1sxMDggMVs1NCAyWzU0CisyWzU5IDg4IDEwOCA4NiAxMDggOTQgMTFbMTQ5IDJbMTQ0IDNbMTUxIDFbMTE2IDJbNzIgMVsxNTIKKzcxW3sgVGVYZjdiNmQzMjBFbmNvZGluZyBSZUVuY29kZUZvbnQgfTE5IDE3Mi4xNTQgL0NNQlgxMgorcmYgZW5kCiAlJUVuZFByb2xvZwogJSVCZWdpblNldHVwCi0lJUZlYXR1cmU6ICpSZXNvbHV0aW9uIDMwMGRwaQorJSVGZWF0dXJlOiAqUmVzb2x1dGlvbiA2MDBkcGkKIFRlWERpY3QgYmVnaW4KICUlQmVnaW5QYXBlclNpemU6IExldHRlcgogbGV0dGVyCiAlJUVuZFBhcGVyU2l6ZQotCisgZW5kCiAlJUVuZFNldHVwCiAlJVBhZ2U6IDEgMQotMSAwIGJvcCA3NSA2NTkgYSBGbihHTlUpMzMgYihSZWFkbGluZSloKExpYnJhcnkpZShVc2VyKWgoSW4pbSh0ZXJmYWNlKXAKLTc1IDcwOSAxODAwIDE3IHYgOTM2IDc1NyBhIEZtKEVkaXRpb24pMTcgYig0LjMsKWMoZm9yKWkKLUZsKFJlYWRsaW5lKWYoTGlicmFyeSlnIEZtKFYpbChlcnNpb24paSg0LjMuKTE2NDMgODExCi15KE1hcmMpbyhoKWUoMjAwMik3NSAyNDY3IHkgRmsoQnJpYW4pMjMgYihGKS02IGIobyluKHgsKTIzCi1iKEYpLTYgYihyZWUpMjMgYihTb2Z0KW4odyluKGFyZSlmKEYpLTYgYihvdW5kYXRpb24pNzUKLTI1MzQgeShDaGV0KTIyIGIoUmFtZXkpLTYgYigsKTIzIGIoQ2FzZSllKFcpLTYgYihlc3Rlcm4pMjMKLWIoUmVzZXJ2KW4oZSlmKFVuaXYpbihlcnNpdCluKHkpcCA3NSAyNTcwIDE4MDAgOSB2IGVvcAorVGVYRGljdCBiZWdpbiAxIDAgYm9wIDE1MCAxMzE4IGEgRnAoR05VKTY1IGIoUmVhZGxpbmUpZyhMaWJyYXJ5KWcoVXNlcikKK2coSW4pLTUgYih0ZXJmYWNlKXAgMTUwIDE0MTggMzYwMCAzNCB2IDEzNzMgMTUxNSBhIEZvKEVkaXRpb24pMzAKK2IoNS4xLWIpcyhldGExLClqKGZvcilkIEZuKFJlYWRsaW5lKWUoTGlicmFyeSloIEZvKFYpLTgKK2IoZXJzaW9uKTMxIGIoNS4xLWIpcyhldGExLikzMTM5IDE2MjMgeShObyltKHYpbShlbSltKGIpcyhlcilnKDIwMDUpMTUwCis0OTM1IHkgRm0oQ2hldCk0NSBiKFJhbWV5KS0xMSBiKCwpNDYgYihDYXNlKWcoVyktMTEgYihlc3Rlcm4pNDYKK2IoUmVzZXJ2KWwoZSlnKFVuaXYpbChlcnNpdClsKHkpMTUwIDUwNjggeShCcmlhbilmKEYpLTExCitiKG8pbCh4LCk0NSBiKEYpLTExIGIocmVlKTQ1IGIoU29mdClsKHcpbChhcmUpaChGKS0xMQorYihvdW5kYXRpb24pcCAxNTAgNTE0MSAzNjAwIDE3IHYgZW9wIGVuZAogJSVQYWdlOiAyIDIKLTIgMSBib3AgNzUgMjE3IGEgRm0oVGhpcykyMiBiKGRvKXEoY3VtZW4pbyh0KWYoZGVzY3JpYilxKGVzKWkodGhlKWYKLShlbmQpZih1c2VyKWgoaW4pbyh0ZXJmYWNlKWYob2YpZyh0aGUpZyhHTlUpZyhSZWFkbGluZSlpKExpYnJhcnkpbCgsKWcKLShhKWUodXRpbGl0KW8oeSk3NSAyNzEgeSh3aGljKW8oaCkxNCBiKGFpZHMpZihpbilnKHRoZSlnKGNvbnNpc3RlbmN5KWgKLShvZillKHVzZXIpaChpbilvKHRlcmZhY2UpZyhhY3Jvc3MpZihkaXNjcmV0ZSloKHByb2dyYW1zKWYodGhhdClnKG5lZWQpCi1oKHRvKWYocHJvKW8odmlkZSk3NSAzMjYgeShhKWooY29tbWFuZClnKGxpbmUpaShpbilvKHRlcmZhY2UuKTc1Ci0zOTQgeShQdWJsaXNoZWQpZyhiKW8oeSlmKHRoZSlmKEYpbChyZWUpZyhTb2Z0KW8odylvKGFyZSlmKEYpbAotKG91bmRhdGlvbik3NSA0NDggeSg1OSloKFQpbChlbXBsZSloKFBsYWNlLClmKFN1aXRlKWkoMzMwLCk3NQotNTAzIHkoQm9zdG9uLClkKE1BKWgoMDIxMTEpZihVU0EpNzUgNTcwIHkoUClvKGVybWlzc2lvbilqKGlzKWYoZ3JhbilvCi0odGVkKWcodG8pZihtYWspbyhlKWgoYW5kKWcoZGlzdHJpYnV0ZSlpKHYpbyhlcmJhdGltKWQoY29waWVzKWkob2YpZgotKHRoaXMpaChtYW4pbyh1YWwpZihwcm8pbyh2aWRlZCloKHRoZSk3NSA2MjUgeShjb3Apbyh5cmlnaClvKHQpZQotKG5vdGljZSloKGFuZClmKHRoaXMpaChwKXEoZXJtaXNzaW9uKWcobm90aWNlKWcoYXJlKWYocHJlc2VydilvKGVkKWgKLShvbilmKGFsbCloKGNvcGllcy4pNzUgNjkyIHkoUClvKGVybWlzc2lvbiljKGlzKWgoZ3JhbilvKHRlZCllKHRvKWcKLShjb3Apbyh5KWgoYW5kKWcoZGlzdHJpYnV0ZSloKG1vKXEoZGlcMDE0ZWQpZyh2KW8oZXJzaW9ucylmKG9mKWYodGhpcyloCi0obWFuKW8odWFsKWcodW5kZXIpaCh0aGUpZihjb24tKTc1IDc0NyB5KGRpdGlvbnMpayhmb3IpZSh2KW8oZXJiYXRpbSloCi0oY29wKW8oeWluZywpZyhwcm8pbyh2aWRlZCloKHRoYXQpZSh0aGUpaChlbilvKHRpcmUpaChyZXN1bHRpbmcpZwotKGRlcml2KW8oZWQpZyh3KW8ob3JrKWUoaXMpaChkaXN0cmlidXRlZCk3NSA4MDIgeSh1bmRlciloKHRoZSlmKHRlcm1zKWcKLShvZilnKGEpZihwKXEoZXJtaXNzaW9uKWoobm90aWNlKWYoaWRlbilvKHRpY2FsKWgodG8pZSh0aGlzKWcob25lLik3NQotODY5IHkoUClvKGVybWlzc2lvbilpKGlzKWcoZ3JhbilvKHRlZClmKHRvKWcoY29wKW8oeSloKGFuZClmCi0oZGlzdHJpYnV0ZSlpKHRyYW5zbGF0aW9ucylmKG9mKWYodGhpcyloKG1hbilvKHVhbClnKGluKW8odG8pZihhbm90aGVyKQotZyhsYW4tKTc1IDkyNCB5KGd1YWdlLCllKHVuZGVyKWgodGhlKWYoYWIpcShvKW8odilvKGUpZyhjb25kaXRpb25zKWkKLShmb3IpZChtbylxKGRpXDAxNGVkKWoodilvKGVyc2lvbnMsKWUoZXhjZXB0KWgodGhhdClmKHRoaXMpaChwKXEKLShlcm1pc3Npb24pZyhub3RpY2UpNzUgOTc5IHkobWEpbyh5KWYoYilxKGUpaShzdGF0ZWQpZihpbiloKGEpZgotKHRyYW5zbGF0aW9uKWcoYXBwcm8pbyh2KW8oZWQpZyhiKW8oeSlnKHRoZSlnKEYpbChyZWUpaChTb2Z0KW8odylvKGFyZSkKLWQoRilsKG91bmRhdGlvbi4pNzUgMjY2MSB5KENvcClvKHlyaWdoKW8odCkzMDEgMjY2MCB5KGMpMjg5Ci0yNjYxIHkgRmooXDAxNSloIEZtKDE5ODgtMjAwMilmKEYpbChyZWUpaShTb2Z0KW8odylvKGFyZSlmKEYpbAotKG91bmRhdGlvbiwpaChJbmMuKXAgZW9wCi0lJVBhZ2U6IDEgMwotMSAyIGJvcCA3NSAtNTggYSBGbShDaGFwdGVyKTE1IGIoMTopayhDb21tYW5kKWMoTGluZSlpKEVkaXRpbmcpMTA3NwotYigxKTc1IDE0OSB5IEZpKDEpNDEgYihDb21tYW5kKTI4IGIoTGluZSllKEVkaXRpbmcpMTM3Ci0yNzEgeSBGbShUaGlzKTE2IGIoYylvKGhhcHRlcilmKGRlc2NyaWIpcShlcylpKHRoZSllKGJhc2ljKWgoZmVhdHVyZXMpZgotKG9mKWcodGhlKWcgRmgoZ251KWcgRm0oY29tbWFuZClnKGxpbmUpaShlZGl0aW5nKWYoaW4pbyh0ZXJmYWNlLik3NQotNDAzIHkgRmsoMS4xKTMzIGIoSW4pbih0cm8pcihkdWN0aW9uKTI0IGIodG8pZShMaW5lKWkoRWRpdGluZykxMzcKLTUwMSB5IEZtKFRoZSkxNiBiKGZvbGxvKW8od2luZylnKHBhcmFncmFwaHMpZShkZXNjcmliKXEoZSlqKHRoZSllCi0obm90YXRpb24pZyh1c2VkKWgodG8pZShyZXByZXNlbilvKHQpaShrKW8oZXlzdHJvaylvKGVzLikxMzcKLTU2OSB5KFRoZSloKHRleHQpZiBGZyhDLWspaCBGbShpcylnKHJlYWQpZyhhcylmKGBDb24pbyh0cm9sLUsnKWcoYW5kKWgKLShkZXNjcmliKXEoZXMpaCh0aGUpZihjKW8oaGFyYWN0ZXIpZihwcm8pcShkdWNlZCloKHdoZW4paCh0aGUpMTgzMQotNTY3IHkgRmYoaClwIDE4NDQgNTQxIDE5IDIgdiAxODQ0IDU2OSBhIEZlKGspcCAxODQ0IDU3NwotViAxODYwIDU2NyBhIEZmKGkpNzUgNjI0IHkgRm0oaylvKGV5KWQoaXMpaChwcmVzc2VkKWcod2hpbGUpZyh0aGUpZgotKENvbilvKHRyb2wpZyhrKW8oZXkpZyhpcyloKGRlcHJlc3NlZC4pMTM3IDY5MyB5KFRoZSlnKHRleHQpZwotRmcoTS1rKWYgRm0oaXMpaShyZWFkKWYoYXMpZihgTWV0YS1LJylnKGFuZCloKGRlc2NyaWIpcShlcylpKHRoZSllKGMpbwotKGhhcmFjdGVyKWYocHJvKXEoZHVjZWQpaSh3aGVuKWcodGhlKWYoTWV0YSk3NSA3NDcgeShrKW8oZXkpZShcKGlmKWcoeSkKLW8ob3UpZyhoYSlvKHYpbyhlKWcob25lXCkpZyhpcyloKGRlcHJlc3NlZCwpZyhhbmQpZih0aGUpOTMwCi03NDUgeSBGZihoKXAgOTQyIDcxOSBWIDk0MiA3NDcgYSBGZShrKXAgOTQyIDc1NSBWIDk1OAotNzQ1IGEgRmYoaSk5ODcgNzQ3IHkgRm0oaylvKGV5KWcoaXMpaChwcmVzc2VkLikyMCBiKFRoZSkxNQotYihNZXRhKWUoaylvKGV5KWgoaXMpaChsYWIpcShlbGVkKTE3NzkgNzQ1IHkgRmYoaClwIDE3OTEKLTcxOSA3MiAyIHYgMTc5MSA3NDcgYSBGZShBTCltKFQpcCAxNzkxIDc1NSBWIDE4NjAgNzQ1Ci1hIEZmKGkpNzUgODAyIHkgRm0ob24pZShtYW4pbyh5KWcoaylvKGV5YilxKG9hcmRzLikxOQotYihPbikxMyBiKGspbyhleWIpcShvYXJkcylnKHdpdGgpaCh0KW8odylvKG8pZShrKW8oZXlzKWcobGFiKXEoZWxlZCkKLTEyMTMgODAwIHkgRmYoaClwIDEyMjUgNzc0IFYgMTIyNSA4MDIgYSBGZShBTCltKFQpcCAxMjI1Ci04MTAgViAxMjk0IDgwMCBhIEZmKGkpMTMyMiA4MDIgeSBGbShcKHVzdWFsbHkpaSh0byllKGVpdGhlcilpKHNpZGUpZwotKG9mKWYodGhlKTc1IDg1NyB5KHNwYWNlKWooYmFyXCksKWYodGhlKTM4OCA4NTUgeSBGZihoKXAKLTQwMCA4MjkgViA0MDAgODU3IGEgRmUoQUwpbShUKXAgNDAwIDg2NSBWIDQ2OSA4NTUgYSBGZihpKTQ5OQotODU3IHkgRm0ob24paCh0aGUpZyhsZWZ0KWcoc2lkZSlnKGlzKWcoZ2VuZXJhbGx5KWgoc2V0KWYodG8pZih3KW8ob3JrKWcKLShhcylnKGEpZyhNZXRhKWcoaylvKGV5KWwoLikyMiBiKFRoZSkxNjk3IDg1NSB5IEZmKGgpcAotMTcwOSA4MjkgViAxNzA5IDg1NyBhIEZlKEFMKW0oVClwIDE3MDkgODY1IFYgMTc3OCA4NTUKLWEgRmYoaSkxODA4IDg1NyB5IEZtKGspbyhleSk3NSA5MTIgeShvbikxNyBiKHRoZSlmKHJpZ2gpbyh0KWgobWEpbyh5KWYKLShhbHNvKWgoYilxKGUpZyhjb25cMDE0Z3VyZWQpZyh0bylmKHcpbyhvcmspZyhhcylnKGEpaChNZXRhKWYoaylvKGV5KWcKLShvcilnKG1hKW8oeSlnKGIpcShlKWkoY29uXDAxNGd1cmVkKWYoYXMpZihzb21lKTc1IDk2NwoteShvdGhlcilmKG1vKXEoZGlcMDE0ZXIsKWgoc3VjKW8oaClmKGFzKWcoYSlnKENvbXApcShvc2UpZyhrKW8oZXkpZwotKGZvcilmKHQpbyh5cGluZylpKGFjY2VuKW8odGVkKWYoYylvKGhhcmFjdGVycy4pMTM3IDEwMzUKLXkoSWYpYyh5KW8ob3UpZyhkbylnKG5vdClmKGhhKW8odilvKGUpaChhKWYoTWV0YSloKG9yKTY5NAotMTAzMyB5IEZmKGgpcCA3MDYgMTAwNyBWIDcwNiAxMDM1IGEgRmUoQUwpbShUKXAgNzA2IDEwNDMKLVYgNzc1IDEwMzMgYSBGZihpKTgwMSAxMDM1IHkgRm0oaylvKGV5KWwoLClnKG9yKWcoYW5vdGhlcilmKGspbyhleSloKHcpCi1vKG9ya2luZylmKGFzKWgoYSlmKE1ldGEpaChrKW8oZXkpbCgsKWcodGhlKWcoaWRlbilvKHRpY2FsKTc1Ci0xMDkwIHkoaylvKGV5c3Ryb2spbyhlKWYoY2FuKWkoYilxKGUpZyhnZW5lcmF0ZWQpZihiKW8oeSlnKHQpbyh5cGluZykKLTgwOSAxMDg4IHkgRmYoaClwIDgyMiAxMDYyIDcwIDIgdiA4MjIgMTA5MCBhIEZlKEVTQylwCi04MjIgMTA5OCBWIDg4OCAxMDg4IGEgRmYoaSk5MTUgMTA5MCB5IEZkKFwwMTRyc3QpcCBGbSgsKWcoYW5kKWcodGhlbiloCi0odClvKHlwaW5nKTEzMzkgMTA4OCB5IEZmKGgpcCAxMzUxIDEwNjIgMTkgMiB2IDEzNTEgMTA5MAotYSBGZShrKXAgMTM1MSAxMDk4IFYgMTM2OCAxMDg4IGEgRmYoaSkxMzgzIDEwOTAgeSBGbSguKTE4Ci1iKEVpdGhlcikxMiBiKHBybylxKGNlc3MpZihpcyloKGtubylvKHduKTc1IDExNDUgeShhcylqCi1GYyhtZXRhZnlpbmcpayBGbSh0aGUpNDI1IDExNDMgeSBGZihoKXAgNDM3IDExMTcgViA0MzcKLTExNDUgYSBGZShrKXAgNDM3IDExNTMgViA0NTQgMTE0MyBhIEZmKGkpNDg0IDExNDUgeSBGbShrKW8oZXkpbCguKTEzNwotMTIxNCB5KFRoZSlpKHRleHQpZSBGZyhNLUMtayloIEZtKGlzKWgocmVhZClmKGFzKWYoYE1ldGEtQ29uKW8odHJvbC1rJykKLWcoYW5kKWgoZGVzY3JpYilxKGVzKWkodGhlKWUoYylvKGhhcmFjdGVyKWcocHJvKXEoZHVjZWQpaChiKW8oeSk3NQotMTI2OCB5IEZjKG1ldGFmeWluZyllIEZnKEMtaylwIEZtKC4pMTM3IDEzMzcgeShJbilnKGFkZGl0aW9uLCloKHNldilvCi0oZXJhbClmKGspbyhleXMpZihoYSlvKHYpbyhlKWcodGhlaXIpaChvKW8od24pZihuYW1lcy4pMzAKLWIoU3ApcShlY2lcMDE0Y2FsbHkpbCgsKTEzODQgMTMzNSB5IEZmKGgpcCAxMzk2IDEzMDkKLTczIDIgdiAxMzk2IDEzMzcgYSBGZShERUwpcCAxMzk2IDEzNDUgViAxNDY3IDEzMzUgYSBGZihpKTE0ODIKLTEzMzcgeSBGbSgsKTE1MTQgMTMzNSB5IEZmKGgpcCAxNTI2IDEzMDkgNzAgMiB2IDE1MjYKLTEzMzcgYSBGZShFU0MpcCAxNTI2IDEzNDUgViAxNTkzIDEzMzUgYSBGZihpKTE2MDggMTMzNwoteSBGbSgsKTE2NDAgMTMzNSB5IEZmKGgpcCAxNjUyIDEzMDkgNzIgMiB2IDE2NTIgMTMzNwotYSBGZShMRkQpcCAxNjUyIDEzNDUgViAxNzIyIDEzMzUgYSBGZihpKTE3MzcgMTMzNyB5IEZtKCwpMTc2OAotMTMzNSB5IEZmKGgpcCAxNzgwIDEzMDkgNzAgMiB2IDE3ODAgMTMzNyBhIEZlKFNQQylwIDE3ODAKLTEzNDUgViAxODQ3IDEzMzUgYSBGZihpKTE4NjIgMTMzNyB5IEZtKCwpNzUgMTM5MCB5IEZmKGgpcAotODcgMTM2NCA3NiAyIHYgODcgMTM5MiBhIEZlKFJFVClwIDg3IDEzOTkgViAxNjAgMTM5MAotYSBGZihpKTE3NSAxMzkyIHkgRm0oLCkyMyBiKGFuZCkzMDYgMTM5MCB5IEZmKGgpcCAzMTgKLTEzNjQgNzQgMiB2IDMxOCAxMzkyIGEgRmUoVCltKEFCKXAgMzE4IDEzOTkgViAzOTAgMTM5MAotYSBGZihpKTQyNyAxMzkyIHkgRm0oYWxsKWYoc3RhbmQpZyhmb3IpZih0aGVtc2VsdilvKGVzKWgod2hlbiloKHNlZW4pZgotKGluKWcodGhpcylnKHRleHQsKWgob3IpZShpbilpKGFuKWUoaW5pdClpKFwwMTRsZSlnKFwoc2VlKTc1Ci0xNDQ3IHkoU2VjdGlvbilkKDEuMylmKFtSZWFkbGluZSloKEluaXQpZyhGaWxlXSwpaChwYWdlKWUoNFwpLikzMgotYihJZikxOSBiKHkpbyhvdXIpZyhrKW8oZXliKXEob2FyZCloKGxhYylvKGtzKWYoYSkxNDQ0Ci0xNDQ1IHkgRmYoaClwIDE0NTYgMTQxOSA3MiAyIHYgMTQ1NiAxNDQ3IGEgRmUoTEZEKXAgMTQ1NgotMTQ1NCBWIDE1MjYgMTQ0NSBhIEZmKGkpMTU2MCAxNDQ3IHkgRm0oaylvKGV5KWwoLCloKHQpbyh5cGluZykxODAyCi0xNDQ1IHkgRmYoaClwIDE4MTQgMTQxOSA0OSAyIHYgMTgxNCAxNDQ3IGEgRmUoQy1qKXAgMTgxNAotMTQ1NCBWIDE4NjAgMTQ0NSBhIEZmKGkpNzUgMTUwMSB5IEZtKHdpbGwpYyhwcm8pcShkdWNlKWcodGhlKWYoZGVzaXJlZCkKLWgoYylvKGhhcmFjdGVyLilqKFRoZSk4NzQgMTQ5OSB5IEZmKGgpcCA4ODYgMTQ3MyA3NiAyCi12IDg4NiAxNTAxIGEgRmUoUkVUKXAgODg2IDE1MDkgViA5NTkgMTQ5OSBhIEZmKGkpOTg5Ci0xNTAxIHkgRm0oaylvKGV5KWMobWEpbyh5KWYoYilxKGUpaChsYWIpcShlbGVkKTEzODUgMTQ5OQoteSBGZihoKXAgMTM5NyAxNDczIDEwOSAyIHYgMTM5NyAxNTAxIGEgRmUoUmV0dXJuKXAgMTM5NwotMTUwOSBWIDE1MDMgMTQ5OSBhIEZmKGkpMTUzMyAxNTAxIHkgRm0ob3IpMTU4OCAxNDk5IHkKLUZmKGgpcCAxNjAwIDE0NzMgODYgMiB2IDE2MDAgMTUwMSBhIEZlKEVuKW8odGVyKXAgMTYwMAotMTUwOSBWIDE2ODQgMTQ5OSBhIEZmKGkpMTcxNCAxNTAxIHkgRm0ob24pZihzb21lKTc1IDE1NTYKLXkoaylvKGV5YilxKG9hcmRzLik3NSAxNjg4IHkgRmsoMS4yKTMzIGIoUmVhZGxpbmUpMjMKLWIoSW4pbih0ZXJhY3Rpb24pMTM3IDE3ODYgeSBGbShPZnRlbikxMyBiKGR1cmluZyloKGFuKWUoaW4pbyh0ZXJhY3RpdilvCi0oZSloKHNlc3Npb24pZyh5KW8ob3UpZyh0KW8oeXApcShlKWYoaW4paShhKWUobG9uZyloKGxpbmUpaChvZillKHRleHQsKQotaChvbmx5KWcodG8pZihub3RpY2UpaCh0aGF0KWYodGhlKTc1IDE4NDEgeShcMDE0cnN0KWsodylvKG9yZClmKG9uKWgKLSh0aGUpaChsaW5lKWgoaXMpZShtaXNzcClxKGVsbGVkLikyNiBiKFRoZSkxNiBiKFJlYWRsaW5lKWkobGlicmFyeSlmCi0oZ2l2KW8oZXMpZih5KW8ob3UpZyhhKWcoc2V0KWcob2YpZyhjb21tYW5kcylnKGZvcik3NQotMTg5NiB5KG1hbmlwdWxhdGluZylnKHRoZSlmKHRleHQpZyhhcylmKHkpbyhvdSloKHQpbyh5cClxKGUpZyhpdClnKGluLCkKLWcoYWxsbylvKHdpbmcpaCh5KW8ob3UpZih0bylmKGp1c3QpaChcMDE0eClnKHkpbyhvdXIpZih0KW8oeXApcShvLClnCi0oYW5kKWgobm90KWcoZm9yY2luZyk3NSAxOTUwIHkoeSlvKG91KWYodG8pZihyZXQpbyh5cClxKGUpaCh0aGUpZyhtYSlzCi0oam9yaXQpbyh5KWYob2YpaCh0aGUpZyhsaW5lLikyMSBiKFVzaW5nKTE1IGIodGhlc2UpZihlZGl0aW5nKWgKLShjb21tYW5kcywpZih5KW8ob3UpZyhtbylvKHYpbyhlKWYodGhlKWgoY3Vyc29yKTc1IDIwMDUKLXkodG8paSh0aGUpaShwbGFjZSlnKHRoYXQpZShuZWVkcylpKGNvcnJlY3Rpb24sKWcoYW5kKWYoZGVsZXRlKWgob3IpZgotKGluc2VydClnKHRoZSloKHRleHQpZShvZiloKHRoZSlnKGNvcnJlY3Rpb25zLikyNiBiKFRoZW4sKTc1Ci0yMDYwIHkod2hlbikxNiBiKHkpbyhvdSlmKGFyZSloKHNhdGlzXDAxNGVkKWcod2l0aClnKHRoZSlmKGxpbmUsKWkoeSlvCi0ob3UpZShzaW1wbHkpaShwcmVzcykxMTYwIDIwNTggeSBGZihoKXAgMTE3MiAyMDMyIDc2Ci0yIHYgMTE3MiAyMDYwIGEgRmUoUkVUKXAgMTE3MiAyMDY4IFYgMTI0NSAyMDU4IGEgRmYoaSkxMjYwCi0yMDYwIHkgRm0oLilrKFkpbChvdSkxNiBiKGRvKWYobm90KWgoaGEpbyh2KW8oZSlmKHRvKWcoYilxKGUpaChhdClmCi0odGhlKTc1IDIxMTUgeShlbmQpayhvZillKHRoZSloKGxpbmUpaSh0bylkKHByZXNzKTU2MwotMjExMyB5IEZmKGgpcCA1NzUgMjA4NyBWIDU3NSAyMTE1IGEgRmUoUkVUKXAgNTc1IDIxMjIKLVYgNjQ4IDIxMTMgYSBGZihpKTY2MyAyMTE1IHkgRm0oOylpKHRoZSlmKGVuKW8odGlyZSloKGxpbmUpZyhpcylnCi0oYWNjZXB0ZWQpZihyZWdhcmRsZXNzKWcob2YpZyh0aGUpZyhsbylxKGNhdGlvbilnKG9mKWcodGhlKTc1Ci0yMTcwIHkoY3Vyc29yKWQod2l0aGluKWgodGhlKWcobGluZS4pNzUgMjI4NCB5IEZiKDEuMi4xKTMwCi1iKFJlYWRsaW5lKTIwIGIoQmFyZSlnKEVzc2VuKW4odGlhbHMpMTM3IDIzODIgeSBGbShJbikxMgotYihvcmRlcilnKHRvKWYoZW4pbyh0ZXIpZyhjKW8oaGFyYWN0ZXJzKWcoaW4pbyh0bylnKHRoZSloKGxpbmUsKWgKLShzaW1wbHkpZyh0KW8oeXApcShlKWYodGhlbS4pMTggYihUaGUpMTIgYih0KW8oeXApcShlZClnKGMpbyhoYXJhY3RlcilmCi0oYXBwKXEoZWFycyk3NSAyNDM3IHkod2hlcmUpMTYgYih0aGUpaChjdXJzb3IpZih3KW8oYXMsKWYoYW5kKWgodGhlbiloCi0odGhlKWYoY3Vyc29yKWcobW8pbyh2KW8oZXMpZyhvbmUpZyhzcGFjZSlnKHRvKWcodGhlKWcocmlnaClvKHQuKTIzCi1iKElmKTE3IGIoeSlvKG91KWYobWlzdClvKHlwKXEoZSlnKGEpNzUgMjQ5MiB5KGMpbyhoYXJhY3RlciwpZSh5KW8ob3UpaAotKGNhbilnKHVzZSloKHkpbyhvdXIpZihlcmFzZSlnKGMpbyhoYXJhY3RlcilmKHRvKWgoYmFjKW8oaylnKHVwKWcoYW5kKWgKLShkZWxldGUpZyh0aGUpZihtaXN0KW8oeXApcShlZCloKGMpbyhoYXJhY3Rlci4pMTM3IDI1NjAKLXkoU29tZXRpbWVzKWcoeSlvKG91KWYobWEpbyh5KWcobWlzdClvKHlwKXEoZSloKGEpZihjKW8oaGFyYWN0ZXIsKWYKLShhbmQpaShub3QpZihub3RpY2UpaCh0aGUpZihlcnJvcilnKHVuKW8odGlsKWkoeSlvKG91KWUoaGEpbyh2KW8oZSlnKHQpCi1vKHlwKXEoZWQpNzUgMjYxNSB5KHNldilvKGVyYWwpZyhvdGhlcilmKGMpbyhoYXJhY3RlcnMuKTE5Ci1iKEluKWModGhhdCllKGNhc2UsKWkoeSlvKG91KWYoY2FuKWcodClvKHlwKXEoZSloIEZnKEMtYilmCi1GbSh0bylnKG1vKW8odilvKGUpZih0aGUpaShjdXJzb3IpZih0bylnKHRoZSlnKGxlZnQsKWgoYW5kKTc1Ci0yNjcwIHkodGhlbiloKGNvcnJlY3QpZSh5KW8ob3VyKWgobWlzdGFrKW8oZS4pMjAgYihBZnRlcncpbyhhcmRzLCkxMwotYih5KW8ob3UpaShjYW4pZyhtbylvKHYpbyhlKWcodGhlKWcoY3Vyc29yKWcodG8pZyh0aGUpZyhyaWdoKW8odClnCi0od2l0aClnIEZnKEMtZilwIEZtKC4pcCBlb3AKLSUlUGFnZTogMiA0Ci0yIDMgYm9wIDc1IC01OCBhIEZtKDIpMTMyMiBiKEdOVSkxNSBiKFJlYWRsaW5lKWgoTGlicmFyeSkxMzcKLTE0OSB5KFdoZW4paCh5KW8ob3UpZihhZGQpZyh0ZXh0KWcoaW4paCh0aGUpZyhtaWRkbGUpaChvZillKGEpZihsaW5lLClqCi0oeSlvKG91KWUod2lsbClpKG5vdGljZSlmKHRoYXQpZihjKW8oaGFyYWN0ZXJzKWYodG8paCh0aGUpZyhyaWdoKW8odCk3NQotMjA0IHkob2YpZSh0aGUpZyhjdXJzb3IpZyhhcmUpZyhgcHVzaGVkKWgobylvKHYpbyhlcicpZih0bylmKG1haylvKGUpaAotKHJvKXEob20pZyhmb3IpZih0aGUpaSh0ZXh0KWYodGhhdClmKHkpbyhvdSloKGhhKW8odilvKGUpZyhpbnNlcnRlZC4pMjEKLWIoTGlrKW8oZXdpc2UsKTc1IDI1OSB5KHdoZW4pZSh5KW8ob3UpZyhkZWxldGUpaCh0ZXh0KWUoYilxKGVoaW5kKWoKLSh0aGUpZShjdXJzb3IsKWcoYylvKGhhcmFjdGVycylmKHRvKWcodGhlKWgocmlnaClvKHQpZihvZilnKHRoZSloCi0oY3Vyc29yKWcoYXJlKWYoYHB1bGxlZCk3NSAzMTQgeShiYWMpbyhrJykxMSBiKHRvKWcoXDAxNGxsKWgoaW4paCh0aGUpZQotKGJsYW5rKWgoc3BhY2UpZyhjcmVhdGVkKWYoYilvKHkpaCh0aGUpZihyZW1vKW8odiltKGFsKWcob2YpZyh0aGUpaAotKHRleHQuKTE4IGIoQSkxMSBiKGxpc3QpaChvZilmKHRoZSloKGJhcmUpZihlc3NlbilvKHRpYWxzKTc1Ci0zNjkgeShmb3IpayhlZGl0aW5nKWgodGhlKWYodGV4dClnKG9mKWcoYW4pZyhpbnB1dCloKGxpbmUpaChmb2xsbylvCi0od3MuKTc1IDQ0OSB5IEZnKEMtYikxNjggYiBGbShNbylvKHYpbyhlKTE0IGIoYmFjKW8oayloKG9uZSloKGMpbwotKGhhcmFjdGVyLik3NSA1MzAgeSBGZyhDLWYpMTY4IGIgRm0oTW8pbyh2KW8oZSkxNCBiKGZvcncpbyhhcmQpZyhvbmUpaAotKGMpbyhoYXJhY3Rlci4pNzUgNjA4IHkgRmYoaClwIDg3IDU4MiA3MyAyIHYgODcgNjEwIGEKLUZlKERFTClwIDg3IDYxOCBWIDE1OCA2MDggYSBGZihpKTE4OCA2MTAgeSBGbShvcikyNDQKLTYwOCB5IEZmKGgpcCAyNTYgNTgyIDE1OSAyIHYgMjU2IDYxMCBhIEZlKEJhYylvKGtzcGFjZSlwCi0yNTYgNjE4IFYgNDEyIDYwOCBhIEZmKGkpMzE1IDY2NSB5IEZtKERlbGV0ZSloKHRoZSlmKGMpbyhoYXJhY3RlcilnKHRvKQotZih0aGUpaChsZWZ0KWgob2YpZih0aGUpZyhjdXJzb3IuKTc1IDc0NSB5IEZnKEMtZCkxNjgKLWIgRm0oRGVsZXRlKTE2IGIodGhlKWYoYylvKGhhcmFjdGVyKWcodW5kZXJuZWF0aCloKHRoZSlmKGN1cnNvci4pNzUKLTgyNSB5KFByaW4pbyh0aW5nKWgoYylvKGhhcmFjdGVycykzMTUgODgwIHkoSW5zZXJ0KWYodGhlKWgoYylvCi0oaGFyYWN0ZXIpZShpbilvKHRvKWgodGhlKWgobGluZSloKGF0KWQodGhlKWgoY3Vyc29yLik3NQotOTYxIHkgRmcoQy1fKWcgRm0ob3IpZiBGZyhDLXgpaChDLXUpMzE1IDEwMTUgeSBGbShVbmRvKWkodGhlKWcobGFzdClmCi0oZWRpdGluZylpKGNvbW1hbmQuKTI1IGIoWSlsKG91KTE3IGIoY2FuKWcodW5kbylnKGFsbClnKHRoZSlnKHcpbyhhKW8KLSh5KWYoYmFjKW8oayloKHRvKWYoYW4pZyhlbXB0KW8oeSkzMTUgMTA3MCB5KGxpbmUuKTc1Ci0xMTUxIHkoXChEZXApcShlbmRpbmcpaShvbilmKHkpbyhvdXIpZyhjb25cMDE0Z3VyYXRpb24sKWcodGhlKTg2MwotMTE0OSB5IEZmKGgpcCA4NzUgMTEyMyBWIDg3NSAxMTUxIGEgRmUoQmFjKW8oa3NwYWNlKXAKLTg3NSAxMTU5IFYgMTAzMiAxMTQ5IGEgRmYoaSkxMDYzIDExNTEgeSBGbShrKW8oZXkpZyhiKXEoZSloKHNldClmKHRvKWYKLShkZWxldGUpaSh0aGUpZihjKW8oaGFyYWN0ZXIpZyh0bylmKHRoZSk3NSAxMjA2IHkobGVmdCloKG9mKWYodGhlKWgKLShjdXJzb3IpZihhbmQpZyh0aGUpNTk2IDEyMDQgeSBGZihoKXAgNjA4IDExNzggNzMgMiB2Ci02MDggMTIwNiBhIEZlKERFTClwIDYwOCAxMjEzIFYgNjc5IDEyMDQgYSBGZihpKTcxMCAxMjA2Ci15IEZtKGspbyhleSloKHNldClmKHRvKWcoZGVsZXRlKWgodGhlKWcoYylvKGhhcmFjdGVyKWYodW5kZXJuZWF0aCloCi0odGhlKWcoY3Vyc29yLClmKGxpaylvKGUpNzUgMTI2MCB5IEZnKEMtZClwIEZtKCwpZShyYXRoZXIpaCh0aGFuKWcodGhlKQotZyhjKW8oaGFyYWN0ZXIpZyh0bylmKHRoZSlpKGxlZnQpZihvZilnKHRoZSlnKGN1cnNvci5cKSk3NQotMTM3NCB5IEZiKDEuMi4yKTMwIGIoUmVhZGxpbmUpMjAgYihNbyluKHYpbihlbWVuKW4odClpKENvbW1hbmRzKTEzNwotMTQ3MSB5IEZtKFRoZSkxNCBiKGFiKXEobylvKHYpbyhlKWUodGFibGUpaShkZXNjcmliKXEoZXMpZyh0aGUpZyhtb3N0KWUKLShiYXNpYylpKGspbyhleXN0cm9rKW8oZXMpZCh0aGF0KWkoeSlvKG91KWcobmVlZCloKGluKWYob3JkZXIpZyh0bylnCi0oZG8pZyhlZGl0aW5nKTc1IDE1MjYgeShvZilmKHRoZSloKGlucHV0KWgobGluZS4pMjEgYihGKWwob3IpMTIKLWIoeSlvKG91cilnKGNvbilvKHYpbyhlbmllbmNlLClpKG1hbilvKHkpZihvdGhlcilmKGNvbW1hbmRzKWgoaGEpbyh2KW8KLShlKWYoYilxKGVlbilpKGFkZGVkKWYoaW4paChhZGRpdGlvbik3NSAxNTgwIHkodG8paCBGZyhDLWIpcAotRm0oLCloIEZnKEMtZilwIEZtKCwpZiBGZyhDLWQpcCBGbSgsKWcoYW5kKTUyMiAxNTc4IHkKLUZmKGgpcCA1MzQgMTU1MiBWIDUzNCAxNTgwIGEgRmUoREVMKXAgNTM0IDE1ODggViA2MDUKLTE1NzggYSBGZihpKTYxOSAxNTgwIHkgRm0oLikyMyBiKEhlcmUpMTYgYihhcmUpZyhzb21lKWYoY29tbWFuZHMpaChmb3IpCi1mKG1vKW8odmluZyloKG1vcmUpZyhyYXBpZGx5KWgoYWIpcShvdXQpZih0aGUpNzUgMTYzNQoteShsaW5lLik3NSAxNzE2IHkgRmcoQy1hKTE2OCBiIEZtKE1vKW8odilvKGUpMTQgYih0byloKHRoZSlnKHN0YXJ0KWYKLShvZiloKHRoZSlnKGxpbmUuKTc1IDE3OTYgeSBGZyhDLWUpMTY4IGIgRm0oTW8pbyh2KW8oZSkxNAotYih0byloKHRoZSlnKGVuZCloKG9mKWYodGhlKWcobGluZS4pNzUgMTg3NiB5IEZnKE0tZikxNjgKLWIgRm0oTW8pbyh2KW8oZSkxNCBiKGZvcncpbyhhcmQpZyhhKWgodylvKG9yZCwpZih3aGVyZSlpKGEpZSh3KW8ob3JkKWgKLShpcyloKGNvbXApcShvc2VkKWYob2YpZyhsZXR0ZXJzKWcoYW5kKWgoZGlnaXRzLik3NSAxOTU3Ci15IEZnKE0tYikxNjggYiBGbShNbylvKHYpbyhlKTE0IGIoYmFjKW8oa3cpbyhhcmQpaChhKWcodylvKG9yZC4pNzUKLTIwMzcgeSBGZyhDLWwpMTY4IGIgRm0oQ2xlYXIpMTUgYih0aGUpaChzY3JlZW4sKWYocmVwcmluKW8odGluZyloKHRoZSlmCi0oY3VycmVuKW8odClnKGxpbmUpaShhdCllKHRoZSlnKHRvcC4pMTM3IDIxMTggeShOb3RpY2UpZShobylvKHcpZgotRmcoQy1mKWcgRm0obW8pbyh2KW8oZXMpZihmb3J3KW8oYXJkKWcoYSloKGMpbyhoYXJhY3RlciwpZyh3aGlsZSlpCi1GZyhNLWYpZSBGbShtbylvKHYpbyhlcylmKGZvcncpbyhhcmQpZyhhKWgodylvKG9yZC4pMTgKLWIoSXQpMTMgYihpcylnKGEpZihsbylxKG9zZSk3NSAyMTczIHkoY29uKW8odilvKGVuKW8odGlvbilqKHRoYXQpZihjb24pCi1vKHRyb2wpaChrKW8oZXlzdHJvaylvKGVzKWYob3ApcShlcmF0ZSloKG9uKWYoYylvKGhhcmFjdGVycyloKHdoaWxlKWgKLShtZXRhKWUoaylvKGV5c3Ryb2spbyhlcylnKG9wKXEoZXJhdGUpaChvbik3NSAyMjI3IHkodylvKG9yZHMuKTc1Ci0yMzQxIHkgRmIoMS4yLjMpMzAgYihSZWFkbGluZSkyMCBiKEtpbGxpbmcpaChDb21tYW5kcykxMzcKLTI0MzggeSBGYyhLaWxsaW5nKTI2IGIgRm0odGV4dCkxOCBiKG1lYW5zKWcodG8pZyhkZWxldGUpaSh0aGUpZih0ZXh0KWYKLShmcm9tKWcodGhlKWgobGluZSwpaShidXQpZCh0bylnKHNhKW8odilvKGUpZyhpdCloKGEpbyh3KW8oYSlvKHkpZShmb3IpCi1oKGxhdGVyKWgodXNlLCk3NSAyNDkzIHkodXN1YWxseSlmKGIpbyh5KWYgRmMoeSlvKGFua2luZykyMgotYiBGbShcKHJlLWluc2VydGluZ1wpKTE3IGIoaXQpZyhiYWMpbyhrKWcoaW4pbyh0bylnKHRoZSloKGxpbmUuKTI3Ci1iKFwoYEN1dCcpMTUgYihhbmQpaihgcGFzdGUnKWUoYXJlKWcobW9yZSloKHJlY2VuKW8odCk3NQotMjU0NyB5KGphcmdvbilkKGZvciloKGBraWxsJyloKGFuZClnKGB5KW8oYW5rJy5cKSkxMzcKLTI2MTUgeShJZilnKHRoZSlmKGRlc2NyaXB0aW9uKWgoZm9yKWYoYSlnKGNvbW1hbmQpZyhzYSlvKHlzKWYodGhhdCloCi0oaXQpZyhga2lsbHMnKWgodGV4dCwpZSh0aGVuKWkoeSlvKG91KWYoY2FuKWcoYilxKGUpaChzdXJlKWYodGhhdClmKHkpbwotKG91KTc1IDI2NzAgeShjYW4paChnZXQpZyh0aGUpZyh0ZXh0KWcoYmFjKW8oaylnKGluKWgoYSlmKGRpXDAxM2VyZW4pbwotKHQpZyhcKG9yKWcodGhlKWcoc2FtZVwpKWcocGxhY2UpaChsYXRlci4pcCBlb3AKLSUlUGFnZTogMyA1Ci0zIDQgYm9wIDc1IC01OCBhIEZtKENoYXB0ZXIpMTUgYigxOilrKENvbW1hbmQpYyhMaW5lKWkoRWRpdGluZykxMDc3Ci1iKDMpMTM3IDE0OSB5KFdoZW4pMTIgYih5KW8ob3UpZyh1c2UpZyhhKWYoa2lsbClpKGNvbW1hbmQsKWYodGhlKWcKLSh0ZXh0KWYoaXMpaChzYSlvKHYpbyhlZClmKGluKWkoYSllIEZjKGtpbGwtcmluZylwIEZtKC4pMjEKLWIoQW4pbyh5KTEyIGIobilvKHVtKW8oYilxKGVyKWcob2YpZihjb25zZWN1dGl2KW8oZSk3NQotMjA0IHkoa2lsbHMpMTcgYihzYSlvKHYpbyhlKWUoYWxsKWgob2YpZih0aGUpaChraWxsZWQpaSh0ZXh0KWQKLSh0b2dldGhlciwpZihzbyloKHRoYXQpZyh3aGVuKWgoeSlvKG91KWYoeSlvKGFuaylnKGl0KWgoYmFjKW8oaywpZih5KW8KLShvdSlnKGdldClnKGl0KWgoYWxsLikyMiBiKFRoZSk3NSAyNTkgeShraWxsKWMocmluZylmKGlzKWYobm90KWcobGluZSlpCi0oc3ApcShlY2lcMDE0YzspZyh0aGUpZSh0ZXh0KWcodGhhdClmKHkpbyhvdSloKGtpbGxlZClqKG9uKWQoYSlnCi0ocHJldmlvdXNseSloKHQpbyh5cClxKGVkKWcobGluZSloKGlzKWUoYSlvKHYpbShhaWxhYmxlKTc1Ci0zMTQgeSh0bylmKGIpcShlKWcoeSlvKGFuaylvKGVkKWcoYmFjKW8oayloKGxhdGVyLCllKHdoZW4paSh5KW8ob3UpZgotKGFyZSlnKHQpbyh5cGluZylnKGFub3RoZXIpZyhsaW5lLikxMzcgMzgwIHkoSGVyZSloKGlzKWYodGhlKWgobGlzdClnCi0ob2YpZShjb21tYW5kcyloKGZvcilnKGtpbGxpbmcpaih0ZXh0Lik3NSA0NTggeSBGZyhDLWspMTY4Ci1iIEZtKEtpbGwpMTcgYih0aGUpZih0ZXh0KWUoZnJvbSloKHRoZSlnKGN1cnJlbilvKHQpZyhjdXJzb3IpZyhwKXEKLShvc2l0aW9uKWgodG8pZih0aGUpZyhlbmQpaChvZilmKHRoZSlnKGxpbmUuKTc1IDUzNSB5Ci1GZyhNLWQpMTY4IGIgRm0oS2lsbCkxNSBiKGZyb20pZSh0aGUpZyhjdXJzb3IpZyh0bylmKHRoZSlpKGVuZClnKG9mKWUKLSh0aGUpaShjdXJyZW4pbyh0KWYodylvKG9yZCwpZihvciwpaChpZilnKGIpcShldClvKHcpbyhlZW4paCh3KW8ob3JkcywpCi1lKHRvKWgodGhlKTMxNSA1OTAgeShlbmQpaihvZilmKHRoZSlnKG5leHQpZyh3KW8ob3JkLilrKFcpbChvcmQpYyhiKXEKLShvdW5kYXJpZXMpaShhcmUpZSh0aGUpZyhzYW1lKWcoYXMpZyh0aG9zZSlmKHVzZWQpaShiKW8oeSlmCi1GZyhNLWYpcCBGbSguKTc1IDY2OCB5IEZnKE0tKTEyMyA2NjYgeSBGZihoKXAgMTM1IDY0MAotNzMgMiB2IDEzNSA2NjggYSBGZShERUwpcCAxMzUgNjc1IFYgMjA2IDY2NiBhIEZmKGkpMzE1Ci02NjggeSBGbShLaWxsKWkoZnJvbSllKHRoZSlnKGN1cnNvcilnKHRoZSloKHN0YXJ0KWUob2YpaCh0aGUpZyhjdXJyZW4pbwotKHQpZyh3KW8ob3JkLClmKG9yLCloKGlmKWcoYilxKGV0KW8odylvKGVlbiloKHcpbyhvcmRzLCllKHRvKWgodGhlKTMxNQotNzIzIHkoc3RhcnQpaihvZiloKHRoZSlnKHByZXZpb3VzKWgodylvKG9yZC4pMzEgYihXKWwob3JkKTE5Ci1iKGIpcShvdW5kYXJpZXMpaChhcmUpZih0aGUpaChzYW1lKWUoYXMpaCh0aG9zZSlnKHVzZWQpaChiKW8oeSkzMTUKLTc3NyB5IEZnKE0tYilwIEZtKC4pNzUgODU1IHkgRmcoQy13KTE2OCBiIEZtKEtpbGwpMTgKLWIoZnJvbSlkKHRoZSlnKGN1cnNvciloKHRvKWYodGhlKWcocHJldmlvdXMpaSh3aGl0ZXNwYWNlLikyMgotYihUaGlzKTE2IGIoaXMpZyhkaVwwMTNlcmVuKW8odClnKHRoYW4pZiBGZyhNLSkxNzc3IDg1MwoteSBGZihoKXAgMTc4OSA4MjcgViAxNzg5IDg1NSBhIEZlKERFTClwIDE3ODkgODYzIFYgMTg2MAotODUzIGEgRmYoaSkzMTUgOTEwIHkgRm0oYilxKGVjYXVzZSloKHRoZSlmKHcpbyhvcmQpZyhiKXEob3VuZGFyaWVzKWgKLShkaVwwMTNlci4pMTM3IDk4NyB5KEhlcmUpMjEgYihpcyloKGhvKW8odyllKHRvKWcgRmMoeSlvKGFuaylqCi1GbSh0aGUpZSh0ZXh0KWYoYmFjKW8oayloKGluKW8odG8pZyh0aGUpZihsaW5lLikzOSBiKFkpbChhbmtpbmcpMjEKLWIobWVhbnMpZyh0bylmKGNvcClvKHkpaCh0aGUpZyhtb3N0LSk3NSAxMDQyIHkocmVjZW4pbyh0bHkta2lsbGVkKWQKLSh0ZXh0KWQoZnJvbSlmKHRoZSlpKGtpbGwpaChidVwwMTNlci4pNzUgMTEyMCB5IEZnKEMteSkxNjgKLWIgRm0oWSlsKGFuaykxNSBiKHRoZSloKG1vc3QpZShyZWNlbilvKHRseSlpKGtpbGxlZCloKHRleHQpZShiYWMpbyhrKWcKLShpbilvKHRvKWcodGhlKWgoYnVcMDEzZXIpZihhdClmKHRoZSlpKGN1cnNvci4pNzUgMTE5OAoteSBGZyhNLXkpMTY4IGIgRm0oUm90YXRlKTE2IGIodGhlKWgoa2lsbC1yaW5nLClqKGFuZClkKHkpbyhhbmspZyh0aGUpaAotKG5ldylmKHRvcC4pMjYgYihZKWwob3UpMTcgYihjYW4paChvbmx5KWcoZG8pZih0aGlzKWgoaWYpZih0aGUpaChwcmlvcikKLTMxNSAxMjUyIHkoY29tbWFuZClkKGlzKWggRmcoQy15KWYgRm0ob3IpZiBGZyhNLXkpcCBGbSguKTc1Ci0xMzYxIHkgRmIoMS4yLjQpMzAgYihSZWFkbGluZSkyMCBiKEFyZ3VtZW4pbih0cykxMzcgMTQ1NwoteSBGbShZKWwob3UpMTUgYihjYW4pZyhwYXNzKWYobilvKHVtZXJpYylpKGFyZ3VtZW4pbyh0cyllKHRvKWcKLShSZWFkbGluZSloKGNvbW1hbmRzLikyMCBiKFNvbWV0aW1lcykxNSBiKHRoZSlnKGFyZ3VtZW4pbyh0KWUoYWN0cyk3NQotMTUxMSB5KGFzKTIwIGIoYSlmKHJlcClxKGVhdClpKGNvdW4pbyh0LClmKG90aGVyKWcodGltZXMpZyhpdCloKGlzKWYKLSh0aGUpZyBGZChzaWduKWogRm0ob2YpYyh0aGUpaChhcmd1bWVuKW8odClnKHRoYXQpZihpcylpKHNpZ25pXDAxNGNhbilvCi0odC4pMzUgYihJZikyMCBiKHkpbyhvdSk3NSAxNTY2IHkocGFzcylkKGEpZihuZWdhdGl2KW8oZSloKGFyZ3VtZW4pbyh0KQotZih0bylnKGEpZyhjb21tYW5kKWgod2hpYylvKGgpaChub3JtYWxseSlmKGFjdHMpZihpbilpKGEpZShmb3J3KW8oYXJkKWcKLShkaXJlY3Rpb24sKWkodGhhdCk3NSAxNjIxIHkoY29tbWFuZClnKHdpbGwpaChhY3QpZShpbilpKGEpZShiYWMpbyhrdylvCi0oYXJkKWcoZGlyZWN0aW9uLikyOCBiKEYpbChvcikxNyBiKGV4YW1wbGUsKWkodG8pZShraWxsKWoodGV4dClkKGJhYylvCi0oaylnKHRvKWcodGhlKWgoc3RhcnQpZShvZik3NSAxNjc2IHkodGhlKWYobGluZSwpaSh5KW8ob3UpZShtaWdoKW8odClnCi0odClvKHlwKXEoZSlnKGApcCBGbChNLS0pZihDLWspcCBGbSgnLikxMzcgMTc0MiB5KFRoZSloKGdlbmVyYWwpZih3KW8KLShhKW8oeSlmKHRvKWgocGFzcylnKG4pbyh1bWVyaWMpaChhcmd1bWVuKW8odHMpZSh0bylnKGEpaChjb21tYW5kKWcoaXMpCi1oKHRvKWUodClvKHlwKXEoZSloKG1ldGEpZyhkaWdpdHMpaChiKXEoZWZvcmUpNzUgMTc5NwoteSh0aGUpaChjb21tYW5kLilrKElmKWModGhlKWYoXDAxNHJzdClnKGBkaWdpdCcpaCh0KW8oeXApcShlZClmKGlzKWgoYSkKLWcobWluKW8odXMpZyhzaWduKWcoXChgKXAgRmwoLSlwIEZtKCdcKSwpZCh0aGVuKWoodGhlKWYoc2lnbiloKG9mKWYKLSh0aGUpaChhcmd1bWVuKW8odCk3NSAxODUyIHkod2lsbCkyMSBiKGIpcShlKWYobmVnYXRpdilvKGUuKTMxCi1iKE9uY2UpMjAgYih5KW8ob3UpZihoYSlvKHYpbyhlKWcodClvKHlwKXEoZWQpZyhvbmUpZyhtZXRhKWcoZGlnaXQpaAotKHRvKWUoZ2V0KWgodGhlKWcoYXJndW1lbilvKHQpZihzdGFydGVkLCloKHkpbyhvdSk3NQotMTkwNiB5KGNhbiljKHQpbyh5cClxKGUpZih0aGUpaChyZW1haW5kZXIpZyhvZilmKHRoZSlnKGRpZ2l0cywpaChhbmQpZwotKHRoZW4pZyh0aGUpZihjb21tYW5kLikyMCBiKEYpbChvcikxMyBiKGV4YW1wbGUsKWkodG8pZihnaXYpbyhlKWgodGhlKWYKLUZnKEMtZCk3NSAxOTYxIHkgRm0oY29tbWFuZCkxOSBiKGFuKWYoYXJndW1lbilvKHQpZyhvZilnKDEwLCloKHkpbyhvdSlmCi0oY291bGQpaSh0KW8oeXApcShlKWYoYClwIEZsKE0tMSkxNCBiKDApaChDLWQpcCBGbSgnLClrKHdoaWMpbyhoKWcKLSh3aWxsKWgoZGVsZXRlKWcodGhlKWYobmV4dClnKHRlbik3NSAyMDE2IHkoYylvKGhhcmFjdGVycykxNAotYihvbilpKHRoZSlmKGlucHV0KWgobGluZS4pNzUgMjEyNSB5IEZiKDEuMi41KTMwIGIoU2VhcmMpbihoaW5nKTIxCi1iKGZvcilmKENvbW1hbmRzKWgoaW4pZih0aGUpaChIaXN0b3J5KTEzNyAyMjIwIHkgRm0oUmVhZGxpbmUpZChwcm8pbwotKHZpZGVzKWUoY29tbWFuZHMpZyhmb3IpZyhzZWFyYylvKGhpbmcpZyh0aHJvdWdoKWcodGhlKWcoY29tbWFuZClnCi0oaGlzdG9yeSlnKGZvcilnKGxpbmVzKWkoY29uLSk3NSAyMjc1IHkodGFpbmluZyllKGEpZihzcClxKGVjaVwwMTRlZClpCi0oc3RyaW5nLilqKFRoZXJlKWMoYXJlKWUodClvKHcpbyhvKWcoc2VhcmMpbyhoKWgobW8pcShkZXM6KTIwCi1iIEZjKGluY3JlbWVuKW8odGFsKWUgRm0oYW5kKWUgRmMobm9uLWluY3JlbWVuKW8odGFsKXAKLUZtKC4pMTM3IDIzNDEgeShJbmNyZW1lbilvKHRhbCllKHNlYXJjKW8oaGVzKWYoYilxKGVnaW4paChiKXEoZWZvcmUpZgotKHRoZSlnKHVzZXIpZyhoYXMpZyhcMDE0bmlzaGVkKWgodClvKHlwaW5nKWYodGhlKWcoc2VhcmMpbyhoKWcoc3RyaW5nLikKLTE5IGIoQXMpMTMgYihlYWMpbyhoKTc1IDIzOTYgeShjKW8oaGFyYWN0ZXIpayhvZilnKHRoZSloKHNlYXJjKW8oaClnCi0oc3RyaW5nKWYoaXMpaCh0KW8oeXApcShlZCwpaChSZWFkbGluZSlnKGRpc3BsYSlvKHlzKWYodGhlKWcobmV4dClnKGVuKQotbyh0cnkpZihmcm9tKWcodGhlKWgoaGlzdG9yeSk3NSAyNDUxIHkobWF0YylvKGhpbmcpMTIKLWIodGhlKWcoc3RyaW5nKWcodClvKHlwKXEoZWQpZyhzbylnKGZhci4pMTggYihBbikxMyBiKGluY3JlbWVuKW8odGFsKWcKLShzZWFyYylvKGgpZihyZXF1aXJlcylnKG9ubHkpaChhcylmKG1hbilvKHkpZihjKW8oaGFyYWN0ZXJzKWcoYXMpNzUKLTI1MDYgeShuZWVkZWQpMTYgYih0bylkKFwwMTRuZClqKHRoZSllKGRlc2lyZWQpaShoaXN0b3J5KWUoZW4pbyh0cnkpbAotKC4pMTkgYihUKWwobyljKHNlYXJjKW8oaClmKGJhYylvKGt3KW8oYXJkKWYoaW4paih0aGUpZShoaXN0b3J5KWcoZm9yKWcKLShhKWcocGFydGljdWxhcik3NSAyNTYwIHkoc3RyaW5nLClnKHQpbyh5cClxKGUpaCBGZyhDLXIpcAotRm0oLilrKFQpbyh5cGluZylkIEZnKEMtcyllIEZtKHNlYXJjKW8oaGVzKWgoZm9ydylvKGFyZCllKHRocm91Z2gpaAotKHRoZSloKGhpc3RvcnkpbCguKTIwIGIoVGhlKTE1IGIoYylvKGhhcmFjdGVycylmKHByZXNlbilvKHQpNzUKLTI2MTUgeShpbikyMCBiKHRoZSlmKHYpbShhbHVlKWgob2YpZih0aGUpZyBGbChpc2VhcmNoLXRlcm1pbmF0b3JzKWQKLUZtKHYpbShhcmlhYmxlKWsoYXJlKWYodXNlZCloKHRvKWUodGVybWluYXRlKWgoYW4pZyhpbmNyZW1lbilvKHRhbCk3NQotMjY3MCB5KHNlYXJjKW8oaC4pMzEgYihJZikxOSBiKHRoYXQpZih2KW0oYXJpYWJsZSlpKGhhcylmKG5vdClmKGIpcQotKGVlbilpKGFzc2lnbmVkKWcoYSllKHYpbShhbHVlLClqKHRoZSkxMjg5IDI2NjggeSBGZihoKXAKLTEzMDEgMjY0MiA3MCAyIHYgMTMwMSAyNjcwIGEgRmUoRVNDKXAgMTMwMSAyNjc4IFYgMTM2OAotMjY2OCBhIEZmKGkpMTQwMiAyNjcwIHkgRm0oYW5kKWUgRmcoQy1KKWYgRm0oYylvKGhhcmFjdGVycylnKHdpbGwpcAotZW9wCi0lJVBhZ2U6IDQgNgotNCA1IGJvcCA3NSAtNTggYSBGbSg0KTEzMjIgYihHTlUpMTUgYihSZWFkbGluZSloKExpYnJhcnkpNzUKLTE0OSB5KHRlcm1pbmF0ZSkyMSBiKGFuKWcoaW5jcmVtZW4pbyh0YWwpaShzZWFyYylvKGguKTM3Ci1iIEZnKEMtZykyMSBiIEZtKHdpbGwpaShhYilxKG9ydCllKGFuKWcoaW5jcmVtZW4pbyh0YWwpaChzZWFyYylvKGgpZgotKGFuZClnKHJlc3RvcmUpZyh0aGUpNzUgMjA0IHkob3JpZ2luYWwpMTYgYihsaW5lLikyMQotYihXaGVuKTE1IGIodGhlKWYoc2VhcmMpbyhoKWcoaXMpaCh0ZXJtaW5hdGVkLClnKHRoZSlmKGhpc3RvcnkpaChlbilvCi0odHJ5KWYoY29uKW8odGFpbmluZyloKHRoZSlnKHNlYXJjKW8oaClmKHN0cmluZyk3NSAyNTkKLXkoYilxKGVjb21lcylpKHRoZSlmKGN1cnJlbilvKHQpZyhsaW5lLikxMzcgMzI1IHkoVClsKG8pZyhcMDE0bmQpaQotKG90aGVyKWUobWF0YylvKGhpbmcpZyhlbilvKHRyaWVzKWgoaW4paCh0aGUpZShoaXN0b3J5KWgobGlzdCwpZyh0KW8KLSh5cClxKGUpZiBGZyhDLXIpZyBGbShvcilnIEZnKEMtcylnIEZtKGFzKWgoYXBwcm9wcmlhdGUuKWsoVGhpcyk3NQotMzgwIHkod2lsbCkxNSBiKHNlYXJjKW8oaCllKGJhYylvKGt3KW8oYXJkKWYob3IpZyhmb3J3KW8oYXJkKWcoaW4paQotKHRoZSlmKGhpc3RvcnkpZyhmb3IpZyh0aGUpZyhuZXh0KWcoZW4pbyh0cnkpZyhtYXRjKW8oaGluZylnKHRoZSlnCi0oc2VhcmMpbyhoKWcoc3RyaW5nKTc1IDQzNCB5KHQpbyh5cClxKGVkKTE5IGIoc28pZyhmYXIuKTMwCi1iKEFuKW8oeSkxOSBiKG90aGVyKWYoaylvKGV5KWgoc2VxdWVuY2UpaChiKXEob3VuZClnKHRvKWUoYSloKFJlYWRsaW5lKQotaChjb21tYW5kKWUod2lsbClqKHRlcm1pbmF0ZSllKHRoZSk3NSA0ODkgeShzZWFyYylvKGgpMTAKLWIoYW5kKWgoZXhlY3V0ZSlnKHRoYXQpZihjb21tYW5kLikxOCBiKEYpbChvcikxMCBiKGluc3RhbmNlLClpKGEpMTA2MwotNDg3IHkgRmYoaClwIDEwNzYgNDYxIDc2IDIgdiAxMDc2IDQ4OSBhIEZlKFJFVClwIDEwNzYKLTQ5NyBWIDExNDkgNDg3IGEgRmYoaSkxMTc0IDQ4OSB5IEZtKHdpbGwpZyh0ZXJtaW5hdGUpZih0aGUpZyhzZWFyYylvKGgpCi1mKGFuZCloKGFjY2VwdCk3NSA1NDQgeSh0aGUpayhsaW5lLCloKHRoZXJlYilvKHkpZihleGVjdXRpbmcpZyh0aGUpZwotKGNvbW1hbmQpZyhmcm9tKWYodGhlKWcoaGlzdG9yeSloKGxpc3QuKTIwIGIoQSkxNSBiKG1vKW8odilvKGVtZW4pbyh0KWYKLShjb21tYW5kKWcod2lsbCk3NSA1OTkgeSh0ZXJtaW5hdGUpaCh0aGUpZyhzZWFyYylvKGgsKWcobWFrKW8oZSlnKHRoZSlnCi0obGFzdClnKGxpbmUpaShmb3VuZClmKHRoZSlmKGN1cnJlbilvKHQpZyhsaW5lLCloKGFuZClnKGIpcShlZ2luKWcKLShlZGl0aW5nLikxMzcgNjY1IHkoUmVhZGxpbmUpaihyZW1lbSlvKGIpcShlcnMpZSh0aGUpaChsYXN0KWYoaW5jcmVtZW4pCi1vKHRhbClpKHNlYXJjKW8oaCllKHN0cmluZy4pMjcgYihJZikxNyBiKHQpbyh3KW8obylmCi1GZyhDLXIpcCBGbShzKWgoYXJlKWcodClvKHlwKXEoZWQpaCh3aXRob3V0KTc1IDcxOSB5KGFuKW8oeSlnKGluKW8KLSh0ZXJ2KW8oZW5pbmcpaChjKW8oaGFyYWN0ZXJzKWYoZGVcMDE0bmluZyloKGEpZihuZXcpaChzZWFyYylvKGgpZgotKHN0cmluZywpZyhhbilvKHkpZyhyZW1lbSlvKGIpcShlcmVkKWgoc2VhcmMpbyhoKWYoc3RyaW5nKWcoaXMpNzUKLTc3NCB5KHVzZWQuKTEzNyA4NDAgeShOb24taW5jcmVtZW4pbyh0YWwpMjUgYihzZWFyYylvKGhlcyllKHJlYWQpaCh0aGUpCi1mKGVuKW8odGlyZSloKHNlYXJjKW8oaClmKHN0cmluZylnKGIpcShlZm9yZSloKHN0YXJ0aW5nKWYodG8pZihzZWFyYylvCi0oaClpKGZvcik3NSA4OTUgeShtYXRjKW8oaGluZylkKGhpc3RvcnkpaChsaW5lcy4pMzkgYihUaGUpMjIKLWIoc2VhcmMpbyhoKWYoc3RyaW5nKWcobWEpbyh5KWcoYilxKGUpaCh0KW8oeXApcShlZClmKGIpbyh5KWgodGhlKWYKLSh1c2VyKWgob3IpZShiKXEoZSlpKHBhcnQpZihvZilnKHRoZSk3NSA5NTAgeShjb24pbyh0ZW4pbyh0cykxNQotYihvZilmKHRoZSlpKGN1cnJlbilvKHQpZihsaW5lLik3NSAxMDc0IHkgRmsoMS4zKTMzIGIoUmVhZGxpbmUpMjMKLWIoSW5pdCloKEZpbGUpMTM3IDExNjkgeSBGbShBbHRob3VnaClmKHRoZSlnKFJlYWRsaW5lKWgobGlicmFyeSlmCi0oY29tZXMpZyh3aXRoKWcoYSlmKHNldClnKG9mKWcoRW1hY3MtbGlrKW8oZSlpKGspbyhleWJpbmRpbmdzKWcKLShpbnN0YWxsZWQpNzUgMTIyNCB5KGIpbyh5KWQoZGVmYXVsdCwpaChpdClmKGlzKWgocClxKG9zc2libGUpZyh0byllCi0odXNlKWkoYSllKGRpXDAxM2VyZW4pbyh0KWgoc2V0KWcob2YpZihrKW8oZXliaW5kaW5ncy4pMzkKLWIoQW4pbyh5KTIwIGIodXNlciloKGNhbilnKGN1c3RvbWl6ZSk3NSAxMjc4IHkocHJvZ3JhbXMpMTUKLWIodGhhdCloKHVzZSlnKFJlYWRsaW5lKWkoYilvKHkpZShwdXR0aW5nKWcoY29tbWFuZHMpZyhpbilpKGFuKWUKLUZjKGlucHV0cmMpayBGbShcMDE0bGUsKWQoY29uKW8odilvKGVuKW8odGlvbmFsbHkpZyhpbilnKGhpcyk3NQotMTMzMyB5KGhvbWUpZyhkaXJlY3RvcnkpbCguKTI0IGIoVGhlKTE3IGIobmFtZSlnKG9mKWYodGhpcyloKFwwMTRsZSlnCi0oaXMpZyh0YWspbyhlbilnKGZyb20pZSh0aGUpaSh2KW0oYWx1ZSloKG9mKWUodGhlKWgoZW4pbyh2aXJvbm1lbilvKHQpZwotKHYpbShhcmlhYmxlKTc1IDEzODggeSBGbChJTlBVVFJDKXAgRm0oLilpKElmKWModGhhdClnKHYpbShhcmlhYmxlKWgKLShpcylnKHVuc2V0LClmKHRoZSlnKGRlZmF1bHQpaChpcylnKGApcCBGbCh+Ly5pbnB1dHJjKXAKLUZtKCcuKTEzNyAxNDU0IHkoV2hlbilmKGEpZyhwcm9ncmFtKWYod2hpYylvKGgpaCh1c2VzKWcodGhlKWcoUmVhZGxpbmUpCi1oKGxpYnJhcnkpZyhzdGFydHMpZCh1cCwpaSh0aGUpZyhpbml0KWgoXDAxNGxlKWcoaXMpZihyZWFkLClnKGFuZClnCi0odGhlKTc1IDE1MDkgeShrKW8oZXkpZyhiaW5kaW5ncylpKGFyZSllKHNldC4pMTM3IDE1NzQKLXkoSW4pZihhZGRpdGlvbiwpaCh0aGUpZSBGbChDLXgpaShDLXIpZSBGbShjb21tYW5kKWcocmUtcmVhZHMpaCh0aGlzKWcKLShpbml0KWcoXDAxNGxlLCloKHRoKW8odXMpZShpbmNvcnApcShvcmF0aW5nKWgoYW4pbyh5KWYoYylvKGhhbmdlcyk3NQotMTYyOSB5KHRoYXQpaCh5KW8ob3UpaChtaWdoKW8odClnKGhhKW8odilvKGUpZyhtYWRlKWcodG8pZyhpdC4pNzUKLTE3MzcgeSBGYigxLjMuMSkzMCBiKFJlYWRsaW5lKTIwIGIoSW5pdClnKEZpbGUpaChTeW4pbih0YXgpMTM3Ci0xODMyIHkgRm0oVGhlcmUpYyhhcmUpZyhvbmx5KWcoYSlnKGZldylmKGJhc2ljKWkoY29uc3RydWN0cyllKGFsbG8pbyh3KQotbyhlZClpKGluKWYodGhlKWcoUmVhZGxpbmUpaChpbml0KWcoXDAxNGxlLikyNiBiKEJsYW5rKTE4Ci1iKGxpbmVzKWcoYXJlKTc1IDE4ODYgeShpZ25vcmVkLikzNiBiKExpbmVzKTIyIGIoYilxKGVnaW5uaW5nKWgod2l0aClkCi0oYSloKGApcCBGbCgjKXAgRm0oJyllKGFyZSloKGNvbW1lbilvKHRzLikzNSBiKExpbmVzKTIyCi1iKGIpcShlZ2lubmluZyloKHdpdGgpZShhKWYoYClwIEZsKCQpcCBGbSgnKWYoaW5kaWNhdGUpNzUKLTE5NDEgeShjb25kaXRpb25hbCljKGNvbnN0cnVjdHMpZihcKHNlZSlnKFNlY3Rpb24pZygxLjMuMilmCi0oW0NvbmRpdGlvbmFsKWgoSW5pdCloKENvbnN0cnVjdHNdLCllKHBhZ2UpaCg5XCkuKWsoT3RoZXIpYyhsaW5lcyk3NQotMTk5NiB5KGRlbm90ZSloKHYpbShhcmlhYmxlKWkoc2V0dGluZ3MpZShhbmQpaChrKW8oZXkpZihiaW5kaW5ncy4pNzUKLTIwNzMgeShWKWwoYXJpYWJsZSloKFNldHRpbmdzKTMxNSAyMTI4IHkoWSlsKG91KWsoY2FuKWgobW8pcShkaWZ5KWcKLSh0aGUpZihydW4tdGltZSloKGIpcShlaGEpbyh2aW9yKWcob2YpZShSZWFkbGluZSlqKGIpbyh5KWUoYWx0ZXJpbmcpaAotKHRoZSlmKHYpbShhbHVlcyloKG9mKTMxNSAyMTgyIHkodiltKGFyaWFibGVzKWQoaW4pZyhSZWFkbGluZSlnKHVzaW5nKWYKLSh0aGUpZyBGbChzZXQpZyBGbShjb21tYW5kKWYod2l0aGluKWkodGhlKWYoaW5pdCloKFwwMTRsZS4pMjYKLWIoVGhlKTE3IGIoc3luKW8odGF4KTMxNSAyMjM3IHkoaXMpZihzaW1wbGU6KTQzNSAyMzAwCi15IEZsKHNldCkyMyBiIEZjKHYpbShhcmlhYmxlKTI4IGIodiltKGFsdWUpMzE1IDIzNjYgeQotRm0oSGVyZSwpMTQgYihmb3IpZihleGFtcGxlLCloKGlzKWcoaG8pbyh3KWYodG8pZyhjKW8oaGFuZ2UpaChmcm9tKWYKLSh0aGUpaChkZWZhdWx0KWcoRW1hY3MtbGlrKW8oZSloKGspbyhleSllKGJpbmRpbmcpaih0bykzMTUKLTI0MjEgeSh1c2UpZyBGbCh2aSllIEZtKGxpbmUpaihlZGl0aW5nKWcoY29tbWFuZHM6KTQzNQotMjQ4NCB5IEZsKHNldCkyMyBiKGVkaXRpbmctbW9kZSlnKHZpKTMxNSAyNTQ5IHkgRm0oVilsKGFyaWFibGUpYyhuYW1lcykKLWUoYW5kKWgodiltKGFsdWVzLCloKHdoZXJlKWUoYXBwcm9wcmlhdGUsKWgoYXJlKWYocmVjb2duaXplZClpKHdpdGhvdXQpCi1lKHJlZ2FyZCkzMTUgMjYwNCB5KHRvKWUoY2FzZS4pMzE1IDI2NzAgeShBKWcoZ3JlYXQpZyhkZWFsKWcob2YpZwotKHJ1bi10aW1lKWgoYilxKGVoYSlvKHZpb3IpZyhpcylnKGMpbyhoYW5nZWFibGUpZyh3aXRoKWYodGhlKWgoZm9sbG8pbwotKHdpbmcpZih2KW0oYXJpYWJsZXMuKXAgZW9wCi0lJVBhZ2U6IDUgNwotNSA2IGJvcCA3NSAtNTggYSBGbShDaGFwdGVyKTE1IGIoMTopayhDb21tYW5kKWMoTGluZSlpKEVkaXRpbmcpMTA3NwotYig1KTMxNSAxNDkgeSBGbChiZWxsLXN0eWxlKTU1NSAyMDQgeSBGbShDb24pbyh0cm9scykyMQotYih3aGF0KWgoaGFwcClxKGVucyloKHdoZW4pZihSZWFkbGluZSloKHcpbyhhbilvKHRzKWUodG8pZyhyaW5nKWkodGhlKWYKLSh0ZXJtaS0pNTU1IDI1OSB5KG5hbClkKGIpcShlbGwuKTMyIGIoSWYpMTkgYihzZXQpZih0bylnKGApcAotRmwobm9uZSlwIEZtKCcsKWcoUmVhZGxpbmUpaShuZXYpbyhlcilmKHJpbmdzKWcodGhlKWYoYilxKGVsbC4pMzIKLWIoSWYpMTkgYihzZXQpZyh0byk1NTUgMzE0IHkoYClwIEZsKHZpc2libGUpcCBGbSgnLCljKFJlYWRsaW5lKWkodXNlcylnCi0oYSlmKHZpc2libGUpaihiKXEoZWxsKWcoaWYpZShvbmUpZihpcyloKGEpbyh2KW0oYWlsYWJsZS4pMjYKLWIoSWYpMTYgYihzZXQpaCh0byk1NTUgMzY5IHkoYClwIEZsKGF1ZGlibGUpcCBGbSgnKWcoXCh0aGUpaAotKGRlZmF1bHRcKSwpaShSZWFkbGluZSlnKGF0dGVtcHRzKWUodG8pZyhyaW5nKWgodGhlKWcodGVybWluYWwncyk1NTUKLTQyMyB5KGIpcShlbGwuKTMxNSA1MDQgeSBGbChjb21tZW50LWJlZ2luKTU1NSA1NTkgeSBGbShUaGUpYyhzdHJpbmcpZgotKHRvKWcoaW5zZXJ0KWkoYXQpZCh0aGUpaShiKXEoZWdpbm5pbmcpaShvZilkKHRoZSloKGxpbmUpaCh3aGVuKWYodGhlKWcKLUZsKGluc2VydC0pNTU1IDYxNCB5KGNvbW1lbnQpZiBGbShjb21tYW5kKWgoaXMpaChleGVjdXRlZC4pMjEKLWIoVGhlKTE1IGIoZGVmYXVsdCloKHYpbShhbHVlKWcoaXMpZyBGbCgiIyIpcCBGbSguKTMxNQotNjk0IHkgRmwoY29tcGxldGlvbi1pZ25vcmUtY2FzZSk1NTUgNzQ5IHkgRm0oSWYpZShzZXQpZih0bylnKGApcAotRmwob24pcCBGbSgnLClnKFJlYWRsaW5lKWkocClxKGVyZm9ybXMpZShcMDE0bGVuYW1lKWkobWF0YylvKGhpbmcpZgotKGFuZClnKGNvbXBsZXRpb24pNTU1IDgwNCB5KGluKWkoYSlmKGNhc2UtaW5zZW5zaXRpdilvKGUpaShmYXNoaW9uLilrCi0oVGhlKTE1IGIoZGVmYXVsdCloKHYpbShhbHVlKWcoaXMpZyhgKXAgRmwob2ZmKXAgRm0oJy4pMzE1Ci04ODQgeSBGbChjb21wbGV0aW9uLXF1ZXJ5LWl0ZW1zKTU1NSA5MzkgeSBGbShUaGUpZChuKW8odW0pbyhiKXEoZXIpaAotKG9mKWUocClxKG9zc2libGUpaihjb21wbGV0aW9ucylnKHRoYXQpZChkZXRlcm1pbmVzKWkod2hlbilnKHRoZSlmCi0odXNlcik1NTUgOTk0IHkoaXMpMjEgYihhc2spbyhlZClnKHdoZXRoZXIpZyhoZSloKHcpbyhhbilvKHRzKWQodG8paQotKHNlZSlnKHRoZSlnKGxpc3QpaChvZillKHApcShvc3NpYmlsaXRpZSlxKHMuKTQwIGIoSWYpMjEKLWIodGhlKTU1NSAxMDQ5IHkobilvKHVtKW8oYilxKGVyKTE0IGIob2YpZihwKXEob3NzaWJsZSlpKGNvbXBsZXRpb25zKWYKLShpcylnKGdyZWF0ZXIpZih0aGFuKWcodGhpcyloKHYpbShhbHVlLCloKFJlYWRsaW5lKTU1NQotMTEwNCB5KHdpbGwpZyhhc2spZSh0aGUpZyh1c2VyKWgod2hldGhlcilmKG9yKWcobm90KWcoaGUpZyh3aXNoZXMpaCh0bykKLWYodmlldyloKHRoZW07KWYob3RoZXJ3aXNlLCk1NTUgMTE1OCB5KHRoZXkpZihhcmUpZyhzaW1wbHkpaShsaXN0ZWQuKTIwCi1iKFRoaXMpMTMgYih2KW0oYXJpYWJsZSlnKG0pbyh1c3QpZihiKXEoZSloKHNldClmKHRvKWYoYW4paChpbilvKHRlZ2VyKQotaCh2KW0oYWx1ZSk1NTUgMTIxMyB5KGdyZWF0ZXIpaCh0aGFuKWgob3IpZyhlcXVhbCloKHRvKWYoMC4payhUaGUpZAotKGRlZmF1bHQpZihsaW1pdClpKGlzKWYgRmwoMTAwKXAgRm0oLikzMTUgMTI5NCB5IEZsKGNvbnZlcnQtbWV0YSk1NTUKLTEzNDggeSBGbShJZikxMSBiKHNldClnKHRvKWcoYClwIEZsKG9uKXAgRm0oJywpZihSZWFkbGluZSlpKHdpbGwpaChjb24pCi1vKHYpbyhlcnQpZChjKW8oaGFyYWN0ZXJzKWgod2l0aClnKHRoZSlnKGVpZ2gpbyh0aCloKGJpdClmKHNldCk1NTUKLTE0MDMgeSh0bylmKGFuKWggRmgoYXNjaSlxKGkpZSBGbShrKW8oZXkpaShzZXF1ZW5jZSlnKGIpbyh5KWcKLShzdHJpcHBpbmcpaCh0aGUpZShlaWdoKW8odGgpaChiaXQpaChhbmQpZShwcmVcMDE0eGluZylpKGFuKTU1NQotMTQ1NiB5IEZmKGgpcCA1NjcgMTQzMCA3MCAyIHYgNTY3IDE0NTggYSBGZShFU0MpcCA1NjcKLTE0NjYgViA2MzQgMTQ1NiBhIEZmKGkpNjY2IDE0NTggeSBGbShjKW8oaGFyYWN0ZXIsKWsoY29uKW8odilvKGVydGluZyloCi0odGhlbSlnKHRvKWYoYSloKG1ldGEtcHJlXDAxNHhlZClnKGspbyhleSlnKHNlcXVlbmNlLik1NTUKLTE1MTMgeShUaGUpZShkZWZhdWx0KWgodiltKGFsdWUpaChpcyllKGApcCBGbChvbilwIEZtKCcuKTMxNQotMTU5MyB5IEZsKGRpc2FibGUtY29tcGxldGlvbik1NTUgMTY0OCB5IEZtKElmKWsoc2V0KWYodG8pZihgKXAKLUZsKE9uKXAgRm0oJywpaChSZWFkbGluZSlpKHdpbGwpZyhpbmhpYml0KWcodylvKG9yZCllKGNvbXBsZXRpb24uKTMwCi1iKENvbXBsZXRpb24pNTU1IDE3MDMgeShjKW8oaGFyYWN0ZXJzKTEyIGIod2lsbClqKGIpcShlKWYoaW5zZXJ0ZWQpZwotKGluKW8odG8pZih0aGUpZyhsaW5lKWgoYXMpZihpZiloKHRoZXkpZihoYWQpZyhiKXEoZWVuKWgobWFwcClxKGVkKTU1NQotMTc1OCB5KHRvKWggRmwoc2VsZi1pbnNlcnQpcCBGbSguKWooVGhlKWQoZGVmYXVsdCloKGlzKWcoYClwCi1GbChvZmYpcCBGbSgnLikzMTUgMTgzOCB5IEZsKGVkaXRpbmctbW9kZSk1NTUgMTg5MyB5Ci1GbShUaGUpZiBGbChlZGl0aW5nLW1vZGUpZCBGbSh2KW0oYXJpYWJsZSlrKGNvbilvKHRyb2xzKWUod2hpYylvKGgpaAotKGRlZmF1bHQpZyhzZXQpZihvZilnKGspbyhleSlnKGJpbmQtKTU1NSAxOTQ4IHkoaW5ncylmKGlzKWcodXNlZC4pMjAKLWIoQnkpMTIgYihkZWZhdWx0LClpKFJlYWRsaW5lKWYoc3RhcnRzKWYodXApaChpbilnKEVtYWNzKWYoZWRpdGluZylpCi0obW8pcShkZSwpNTU1IDIwMDMgeSh3aGVyZSloKHRoZSlmKGspbyhleXN0cm9rKW8oZXMpZyhhcmUpZyhtb3N0KWcKLShzaW1pbGFyKWkodG8pZChFbWFjcy4pMjAgYihUaGlzKTE1IGIodiltKGFyaWFibGUpaChjYW4pNTU1Ci0yMDU4IHkoYilxKGUpZyhzZXQpZih0bylmKGVpdGhlcilpKGApcCBGbChlbWFjcylwIEZtKCcpZShvciloKGApcAotRmwodmkpcCBGbSgnLikzMTUgMjEzOCB5IEZsKGVuYWJsZS1rZXlwYWQpNTU1IDIxOTMgeQotRm0oV2hlbilkKHNldClmKHRvKWgoYClwIEZsKG9uKXAgRm0oJywpZShSZWFkbGluZSlqKHdpbGwpaCh0cnkpZCh0bylnCi0oZW5hYmxlKWkodGhlKWYoYXBwbGljYXRpb24paChrKW8oZXlwYWQpNTU1IDIyNDggeSh3aGVuKWgoaXQpZihpcyloCi0oY2FsbGVkLikyMSBiKFNvbWUpMTMgYihzeXN0ZW1zKWcobmVlZCloKHRoaXMpZyh0bylmKGVuYWJsZSloKHRoZSlnCi0oYXJybylvKHcpZShrKW8oZXlzLik1NTUgMjMwMyB5KFRoZSlqKGRlZmF1bHQpaChpcylnKGApcAotRmwob2ZmKXAgRm0oJy4pMzE1IDIzODMgeSBGbChleHBhbmQtdGlsZGUpNTU1IDI0MzggeQotRm0oSWYpZShzZXQpZyh0bylmKGApcCBGbChvbilwIEZtKCcsKWYodGlsZGUpayhleHBhbnNpb24pZShpcyloKHApcQotKGVyZm9ybWVkKWYod2hlbilnKFJlYWRsaW5lKWgoYXR0ZW1wdHMpNTU1IDI0OTMgeSh3KW8ob3JkKWcKLShjb21wbGV0aW9uLikyMSBiKFRoZSkxNSBiKGRlZmF1bHQpaChpcylmKGApcCBGbChvZmYpcAotRm0oJy4pNTU1IDI1NjAgeShJZilnKHNldClnKHRvKWYoYClwIEZsKG9uKXAgRm0oJywpZyh0aGUpZyhoaXN0b3J5KWgKLShjbylxKGRlKWgoYXR0ZW1wdHMpZSh0bylnKHBsYWNlKWkocClxKG9pbilvKHQpZihhdClmKHRoZSloKHNhbWUpNTU1Ci0yNjE1IHkobG8pcShjYXRpb24pMjAgYihvbilmKGVhYylvKGgpZyhoaXN0b3J5KWgobGluZSlnKHJldHJpdilvKGVkKWcKLSh3aXRoKWYgRmwocHJldmlvdXMtaGlzdG9yeSllIEZtKG9yKTU1NSAyNjcwIHkgRmwobmV4dC1oaXN0b3J5KXAKLUZtKC4pcCBlb3AKLSUlUGFnZTogNiA4Ci02IDcgYm9wIDc1IC01OCBhIEZtKDYpMTMyMiBiKEdOVSkxNSBiKFJlYWRsaW5lKWgoTGlicmFyeSkzMTUKLTE0OSB5IEZsKGhvcml6b250YWwtc2Nyb2xsLW1vZGUpNTU1IDIwNCB5IEZtKFRoaXMpaih2KW0oYXJpYWJsZSlnKGNhbilmCi0oYilxKGUpZyhzZXQpZyh0bylmKGVpdGhlcilpKGApcCBGbChvbilwIEZtKCcpZShvcilnKGApcAotRmwob2ZmKXAgRm0oJy4pMjcgYihTZXR0aW5nKTE5IGIoaXQpZih0bylmKGApcCBGbChvbilwCi1GbSgnKTU1NSAyNTkgeShtZWFucyljKHRoYXQpZih0aGUpaSh0ZXh0KWUob2YpaCh0aGUpZyhsaW5lcylpKGIpcShlaW5nKQotZihlZGl0ZWQpZyh3aWxsKWgoc2Nyb2xsKWYoaG9yaXpvbilvKHRhbGx5KTU1NSAzMTQgeShvbilpKGEpZihzaW5nbGUpaQotKHNjcmVlbilnKGxpbmUpZyh3aGVuKWcodGhleSlmKGFyZSlmKGxvbmdlciloKHRoYW4pZyh0aGUpZyh3aWR0aClnKG9mKWcKLSh0aGUpNTU1IDM2OSB5KHNjcmVlbiwpZShpbnN0ZWFkKWYob2YpZyh3cmFwcGluZylnKG9uKW8odG8pZihhKWgobmV3KWcKLShzY3JlZW4paChsaW5lLikyMSBiKEJ5KTEzIGIoZGVmYXVsdCwpaCh0aGlzKTU1NSA0MjMKLXkodiltKGFyaWFibGUpaihpcyllKHNldClnKHRvKWcoYClwIEZsKG9mZilwIEZtKCcuKTMxNQotNTA2IHkgRmwoaW5wdXQtbWV0YSk1NTUgNTYwIHkgRm0oSWYpaChzZXQpZih0bylnKGApcAotRmwob24pcCBGbSgnLClmKFJlYWRsaW5lKWood2lsbCloKGVuYWJsZSllKGVpZ2gpbyh0LWJpdCloKGlucHV0KWYoXChpdCkKLWcod2lsbCloKG5vdCllKGNsZWFyKTU1NSA2MTUgeSh0aGUpMjAgYihlaWdoKW8odGgpZyhiaXQpZyhpbiloKHRoZSlmKGMpCi1vKGhhcmFjdGVycylmKGl0KWgocmVhZHNcKSwpZyhyZWdhcmRsZXNzKWcob2YpZyh3aGF0KWYodGhlKTU1NQotNjcwIHkodGVybWluYWwpaShjbGFpbXMpZyhpdClmKGNhbilnKHN1cHApcShvcnQuKTM0IGIoVGhlKTIwCi1iKGRlZmF1bHQpaCh2KW0oYWx1ZSlnKGlzKWcoYClwIEZsKG9mZilwIEZtKCcuKTMzIGIoVGhlKTU1NQotNzI1IHkobmFtZSkxNSBiIEZsKG1ldGEtZmxhZylmIEZtKGlzKWkoYSlmKHN5bm9uKW8oeW0pZyhmb3IpZih0aGlzKWkodikKLW0oYXJpYWJsZS4pMzE1IDgwNyB5IEZsKGlzZWFyY2gtdGVybWluYXRvcnMpNTU1IDg2MiB5Ci1GbShUaGUpMjYgYihzdHJpbmcpZyhvZilmKGMpbyhoYXJhY3RlcnMpZyh0aGF0KWcoc2hvdWxkKWkodGVybWluYXRlKWYKLShhbilnKGluY3JlbWVuKW8odGFsKTU1NSA5MTcgeShzZWFyYylvKGgpMTIgYih3aXRob3V0KWgoc3Vic2VxdWVuKW8KLSh0bHkpZyhleGVjdXRpbmcpaCh0aGUpZShjKW8oaGFyYWN0ZXIpZyhhcylnKGEpZyhjb21tYW5kKTU1NQotOTcxIHkoXChzZWUpMjIgYihTZWN0aW9uKWgoMS4yLjUpZShbU2VhcmMpbyhoaW5nXSwpaihwYWdlKWUoM1wpLik0MAotYihJZikyMyBiKHRoaXMpZyh2KW0oYXJpYWJsZSlnKGhhcylmKG5vdCk1NTUgMTAyNiB5KGIpcShlZW4pMTcKLWIoZ2l2KW8oZW4pZihhKWcodiltKGFsdWUsKWcodGhlKWcoYylvKGhhcmFjdGVycykxMjQ3Ci0xMDI0IHkgRmYoaClwIDEyNTkgOTk4IDcwIDIgdiAxMjU5IDEwMjYgYSBGZShFU0MpcCAxMjU5Ci0xMDM0IFYgMTMyNiAxMDI0IGEgRmYoaSkxMzU3IDEwMjYgeSBGbShhbmQpZyBGZyhDLUopZgotRm0od2lsbClpKHRlcm1pbmF0ZSlmKGFuKTU1NSAxMDgxIHkoaW5jcmVtZW4pbyh0YWwpZyhzZWFyYylvKGguKTMxNQotMTE2MyB5IEZsKGtleW1hcCk5NiBiIEZtKFNldHMpMTkgYihSZWFkbGluZSdzKWkoaWRlYSlmKG9mKWYodGhlKWcKLShjdXJyZW4pbyh0KWgoaylvKGV5bWFwKWYoZm9yKWYoaylvKGV5KWkoYmluZGluZyloKGNvbS0pNTU1Ci0xMjE4IHkobWFuZHMuKTQxIGIoQWNjZXB0YWJsZSkyMyBiIEZsKGtleW1hcClmIEZtKG5hbWVzKWcoYXJlKWYKLUZsKGVtYWNzKXAgRm0oLClpIEZsKGVtYWNzLXN0YW5kYXJkKXAgRm0oLCk1NTUgMTI3MyB5Ci1GbChlbWFjcy1tZXRhKXAgRm0oLCk0OSBiIEZsKGVtYWNzLWN0bHgpcCBGbSgsKWcgRmwodmkpcAotRm0oLCloIEZsKHZpLW1vdmUpcCBGbSgsKWYgRmwodmktY29tbWFuZClwIEZtKCwpZyhhbmQpNTU1Ci0xMzI4IHkgRmwodmktaW5zZXJ0KXAgRm0oLikzMSBiIEZsKHZpKTIwIGIgRm0oaXMpZyhlcXVpdiltKGFsZW4pbyh0KWgKLSh0byllIEZsKHZpLWNvbW1hbmQpcCBGbSg7KWcgRmwoZW1hY3MpZyBGbShpcyloKGVxdWl2KW0oYWxlbilvKHQpNTU1Ci0xMzgyIHkodG8pMTUgYiBGbChlbWFjcy1zdGFuZGFyZClwIEZtKC4pMjAgYihUaGUpZChkZWZhdWx0KWYodiltKGFsdWUpaAotKGlzKWcgRmwoZW1hY3MpcCBGbSguKWsoVGhlKTE2IGIodiltKGFsdWUpaChvZilmKHRoZSk1NTUKLTE0MzcgeSBGbChlZGl0aW5nLW1vZGUpZSBGbSh2KW0oYXJpYWJsZSlpKGFsc28pZihhXDAxM2VjdHMpZyh0aGUpZwotKGRlZmF1bHQpaChrKW8oZXltYXAuKTMxNSAxNTE5IHkgRmwobWFyay1kaXJlY3Rvcmllcyk1NTUKLTE1NzQgeSBGbShJZilqKHNldClnKHRvKWcoYClwIEZsKG9uKXAgRm0oJywpZihjb21wbGV0ZWQpaShkaXJlY3RvcnkpZwotKG5hbWVzKWYoaGEpbyh2KW8oZSlmKGEpaChzbGFzaCloKGFwcClxKGVuZGVkLik1NTUgMTYyOQoteShUaGUpMTUgYihkZWZhdWx0KWgoaXMpZyhgKXAgRmwob24pcCBGbSgnLikzMTUgMTcxMQoteSBGbChtYXJrLW1vZGlmaWVkLWxpbmVzKTU1NSAxNzY2IHkgRm0oVGhpcylqKHYpbShhcmlhYmxlLClnKHdoZW4pZwotKHNldCllKHRvKWgoYClwIEZsKG9uKXAgRm0oJywpZihjYXVzZXMpaChSZWFkbGluZSloKHRvKWUoZGlzcGxhKW8oeSlpCi0oYW4pZihhcy0pNTU1IDE4MjEgeSh0ZXJpc2spZihcKGApcCBGbCgqKXAgRm0oJ1wpKWUoYXQpaSh0aGUpZihzdGFydClnCi0ob2YpaChoaXN0b3J5KWYobGluZXMpaih3aGljKW8oaCllKGhhKW8odilvKGUpZyhiKXEoZWVuKWgobW8pcQotKGRpXDAxNGVkLik1NTUgMTg3NSB5KFRoaXMpZSh2KW0oYXJpYWJsZSlnKGlzKWcoYClwIEZsKG9mZilwCi1GbSgnKWUoYilvKHkpaChkZWZhdWx0LikzMTUgMTk1OCB5IEZsKG1hcmstc3ltbGlua2VkLWRpcmVjdG9yaWVzKTU1NQotMjAxMiB5IEZtKElmKTIzIGIoc2V0KWYodG8pZihgKXAgRmwob24pcCBGbSgnLClpKGNvbXBsZXRlZClnKG5hbWVzKWcKLSh3aGljKW8oaClnKGFyZSlmKHN5bSlvKGIpcShvbGljKWkobGlua3MpZih0bylmKGRpLSk1NTUKLTIwNjcgeShyZWN0b3JpZXMpaChoYSlvKHYpbyhlKWcoYSlnKHNsYXNoKWcoYXBwKXEoZW5kZWQpaShcKHN1YilzKGplY3QpCi1lKHRvKWYodGhlKWkodiltKGFsdWUpZyhvZilmIEZsKG1hcmstKTU1NSAyMTIyIHkoZGlyZWN0b3JpZXMpcAotRm0oXCkuKTE4IGIoVGhlKWQoZGVmYXVsdCloKGlzKWcoYClwIEZsKG9mZilwIEZtKCcuKTMxNQotMjIwNCB5IEZsKG1hdGNoLWhpZGRlbi1maWxlcyk1NTUgMjI1OSB5IEZtKFRoaXMpYyh2KW0oYXJpYWJsZSwpaCh3aGVuKWUKLShzZXQpZyh0bylnKGApcCBGbChvbilwIEZtKCcsKWYoY2F1c2VzKWgoUmVhZGxpbmUpaSh0bylkKG1hdGMpbyhoKWgKLShcMDE0bGVzKWgod2hvc2UpNTU1IDIzMTQgeShuYW1lcykyMiBiKGIpcShlZ2luKWgod2l0aClnKGEpZShgKXAKLUZsKC4pcCBGbSgnKWgoXChoaWRkZW4paChcMDE0bGVzXCkpZyh3aGVuKWYocClxKGVyZm9ybWluZyloKFwwMTRsZW5hbWUpCi01NTUgMjM2OSB5KGNvbXBsZXRpb24sKWcodW5sZXNzKWYodGhlKWYobGVhZGluZyloKGApcAotRmwoLilwIEZtKCcpZShpcyloKHN1cHBsaWVkKWkoYilvKHkpZSh0aGUpZih1c2VyKWgoaW4paCh0aGUpNTU1Ci0yNDIzIHkoXDAxNGxlbmFtZSkxNiBiKHRvKWYoYilxKGUpaChjb21wbGV0ZWQuKTIxIGIoVGhpcykxNQotYih2KW0oYXJpYWJsZSlpKGlzKWYoYClwIEZsKG9uKXAgRm0oJyllKGIpbyh5KWgoZGVmYXVsdC4pMzE1Ci0yNTA2IHkgRmwob3V0cHV0LW1ldGEpNTU1IDI1NjAgeSBGbShJZilqKHNldClmKHRvKWcoYClwCi1GbChvbilwIEZtKCcsKWcoUmVhZGxpbmUpaSh3aWxsKWgoZGlzcGxhKW8oeSlmKGMpbyhoYXJhY3RlcnMpZCh3aXRoKWoKLSh0aGUpZShlaWdoKW8odGgpaChiaXQpNTU1IDI2MTUgeShzZXQpZyhkaXJlY3RseSlpKHJhdGhlcilkKHRoYW4paChhcylnCi0oYSlnKG1ldGEtcHJlXDAxNHhlZCloKGVzY2FwKXEoZSlnKHNlcXVlbmNlLikzMCBiKFRoZSk1NTUKLTI2NzAgeShkZWZhdWx0KTE2IGIoaXMpZihgKXAgRmwob2ZmKXAgRm0oJy4pcCBlb3AKLSUlUGFnZTogNyA5Ci03IDggYm9wIDc1IC01OCBhIEZtKENoYXB0ZXIpMTUgYigxOilrKENvbW1hbmQpYyhMaW5lKWkoRWRpdGluZykxMDc3Ci1iKDcpMzE1IDE0OSB5IEZsKHBhZ2UtY29tcGxldGlvbnMpNTU1IDIwNCB5IEZtKElmKTE3Ci1iKHNldClnKHRvKWYoYClwIEZsKG9uKXAgRm0oJywpZyhSZWFkbGluZSlpKHVzZXMpZyhhbillKGluKW8odGVybmFsKWkKLUZsKG1vcmUpcCBGbSgtbGlrKW8oZSlnKHBhZ2VyKWYodG8pZihkaXNwbGEpbyh5KTU1NSAyNTkKLXkoYSlnKHNjcmVlbmZ1bCloKG9mKWYocClxKG9zc2libGUpaShjb21wbGV0aW9ucylmKGF0KWYoYSlnKHRpbWUuKTIzCi1iKFRoaXMpMTcgYih2KW0oYXJpYWJsZSlnKGlzKWcoYClwIEZsKG9uKXAgRm0oJyk1NTUgMzE0Ci15KGIpbyh5KWUoZGVmYXVsdC4pMzE1IDM5NSB5IEZsKHByaW50LWNvbXBsZXRpb25zLWhvcml6b250KW8oYWxseSk1NTUKLTQ1MCB5IEZtKElmKWQoc2V0KWcodG8pZihgKXAgRmwob24pcCBGbSgnLCloKFJlYWRsaW5lKWgod2lsbClnKGRpc3BsYSlvCi0oeSloKGNvbXBsZXRpb25zKWYod2l0aClmKG1hdGMpbyhoZXMpZihzb3J0ZWQpNTU1IDUwNQoteShob3Jpem9uKW8odGFsbHkpMjMgYihpbilmKGFscGhhYilxKGV0aWNhbClpKG9yZGVyLClmKHJhdGhlcillKHRoYW4pZwotKGRvKW8od24paCh0aGUpZyhzY3JlZW4uKTU1NSA1NjAgeShUaGUpMTUgYihkZWZhdWx0KWgoaXMpZyhgKXAKLUZsKG9mZilwIEZtKCcuKTMxNSA2NDEgeSBGbChzaG93LWFsbC1pZi1hbWJpZ3VvdXMpNTU1Ci02OTYgeSBGbShUaGlzKWcoYWx0ZXJzKWUodGhlKWkoZGVmYXVsdClmKGIpcShlaGEpbyh2aW9yKWgob2YpZSh0aGUpaAotKGNvbXBsZXRpb24paChmdW5jdGlvbnMuKTIxIGIoSWYpMTUgYihzZXQpNTU1IDc1MSB5KHRvKWUoYClwCi1GbChvbilwIEZtKCcsKWcodylvKG9yZHMpZyh3aGljKW8oaCloKGhhKW8odilvKGUpZyhtb3JlKWYodGhhbilnKG9uZSloCi0ocClxKG9zc2libGUpaShjb21wbGV0aW9uKWYoY2F1c2UpNTU1IDgwNiB5KHRoZSkyMCBiKG1hdGMpbyhoZXMpZih0bylmCi0oYilxKGUpaihsaXN0ZWQpZihpbW1lZGlhdGVseSloKGluc3RlYWQpZihvZilmKHJpbmdpbmcpaSh0aGUpZShiKXEKLShlbGwuKTU1NSA4NjEgeShUaGUpYyhkZWZhdWx0KWgodiltKGFsdWUpaChpcyllKGApcCBGbChvZmYpcAotRm0oJy4pMzE1IDk0MiB5IEZsKHZpc2libGUtc3RhdHMpNTU1IDk5NyB5IEZtKElmKWgoc2V0KWcodG8pZihgKXAKLUZsKG9uKXAgRm0oJywpZyhhKWgoYylvKGhhcmFjdGVyKWYoZGVub3RpbmcpaChhKWcoXDAxNGxlJ3MpaCh0KW8oeXApcQotKGUpZihpcylnKGFwcClxKGVuZGVkKWkodG8pZCh0aGUpNTU1IDEwNTIgeShcMDE0bGVuYW1lKWgod2hlbilnCi0obGlzdGluZyloKHApcShvc3NpYmxlKWcoY29tcGxldGlvbnMuKWooVGhlKWMoZGVmYXVsdClnKGlzKWYoYClwCi1GbChvZmYpcCBGbSgnLik3NSAxMTMzIHkoS2V5KWgoQmluZGluZ3MpMzE1IDExODggeShUaGUpMjEKLWIoc3luKW8odGF4KWYoZm9yKWgoY29uKW8odHJvbGxpbmcpaChrKW8oZXkpZihiaW5kaW5ncyloKGluKWcodGhlKWYKLShpbml0KWgoXDAxNGxlKWcoaXMpZyhzaW1wbGUuKTM5IGIoRmlyc3QpMjAgYih5KW8ob3UpMzE1Ci0xMjQzIHkobmVlZCkxNSBiKHRvKWUoXDAxNG5kKWgodGhlKWcobmFtZSlnKG9mKWcodGhlKWYoY29tbWFuZCloKHRoYXQpZgotKHkpbyhvdSloKHcpbyhhbilvKHQpZih0bylnKGMpbyhoYW5nZS4pMTkgYihUaGUpMTQgYihmb2xsbylvKHdpbmcpMzE1Ci0xMjk4IHkoc2VjdGlvbnMpayhjb24pbyh0YWluKWgodGFibGVzKWYob2YpZih0aGUpaChjb21tYW5kKWcobmFtZSwpZwotKHRoZSlnKGRlZmF1bHQpaChrKW8oZXliaW5kaW5nLCloKGlmKWUoYW4pbyh5KWwoLCkzMTUKLTEzNTMgeShhbmQpZChhKWcoc2hvcnQpZyhkZXNjcmlwdGlvbilpKG9mKWQod2hhdCloKHRoZSlnKGNvbW1hbmQpZyhkbylxCi0oZXMuKTMxNSAxNDIxIHkoT25jZSlrKHkpbyhvdSlmKGtubylvKHcpZih0aGUpaChuYW1lKWcob2YpZyh0aGUpZwotKGNvbW1hbmQsKWcoc2ltcGx5KWgocGxhY2UpZyhvbilmKGEpZihsaW5lKWooaW4pZih0aGUpZihpbml0KTMxNQotMTQ3NiB5KFwwMTRsZSlnKHRoZSlmKG5hbWUpZyhvZilmKHRoZSloKGspbyhleSlnKHkpbyhvdSlmKHdpc2gpaSh0byllCi0oYmluZClpKHRoZSlmKGNvbW1hbmQpZyh0bywpZihhKWcoY29sb24sKWkoYW5kKWYodGhlbikzMTUKLTE1MzAgeSh0aGUpZihuYW1lKWcob2YpZyh0aGUpZyhjb21tYW5kLikyMiBiKFRoZSkxNiBiKG5hbWUpZyhvZilnKHRoZSlnCi0oaylvKGV5KWYoY2FuKWkoYilxKGUpZihleHByZXNzZWQpaChpbilnKGRpXDAxM2VyZW4pbyh0KTMxNQotMTU4NSB5KHcpbyhhKW8oeXMsKWQoZGVwKXEoZW5kaW5nKWoob24pZSh3aGF0KWcoeSlvKG91KWcoXDAxNG5kKWgobW9zdCkKLWUoY29tZm9ydGFibGUuKTMxNSAxNjUzIHkoSW4pMTkgYihhZGRpdGlvbilnKHRvKWUoY29tbWFuZCloKG5hbWVzLClnCi0ocmVhZGxpbmUpaShhbGxvKW8od3MpZShrKW8oZXlzKWcodG8pZihiKXEoZSlpKGIpcShvdW5kKWcodG8pZShhKWgKLShzdHJpbmcpMzE1IDE3MDggeSh0aGF0KWMoaXMpaShpbnNlcnRlZClnKHdoZW4pZyh0aGUpZihrKW8oZXkpZyhpcyloCi0ocHJlc3NlZClnKFwoYSllIEZjKG1hY3JvKXIgRm0oXCkuKTMxNSAxNzkwIHkgRmMoaylvKGV5bmFtZSlzCi1GbSg6KTE5IGIgRmMoZnVuY3Rpb24tbmFtZSlnIEZtKG9yKWMgRmMobWFjcm8pNTU1IDE4NDUKLXkoaylvKGV5bmFtZSlpIEZtKGlzKWUodGhlKWYobmFtZSloKG9mKWYoYSlnKGspbyhleSlnKHNwKXEoZWxsZWQpaihvdXQpCi1kKGluKWgoRW5nbGlzaC4pMjEgYihGKWwob3IpMTMgYihleGFtcGxlOik2NzUgMTkxMCB5Ci1GbChDb250cm9sLXU6KTIyIGIodW5pdmVyc2FsLWFyZ3VtZW50KTY3NSAxOTYyIHkoTWV0YS1SdWJvdXQ6KWcKLShiYWNrd2FyZC1raWxsLXdvcmQpNjc1IDIwMTQgeShDb250cm9sLW86KWcoIj4paShvdXRwdXQiKTU1NQotMjA4MiB5IEZtKEluKWModGhlKWYoYWIpcShvKW8odilvKGUpZyhleGFtcGxlLClpIEZnKEMtdSllCi1GbShpcyloKGIpcShvdW5kKWcodG8pZih0aGUpZyhmdW5jdGlvbiloIEZsKHVuaXZlcnNhbC0pNTU1Ci0yMTM3IHkoYXJndW1lbnQpcCBGbSgsKWUgRmcoTS1ERUwpaCBGbShpcylnKGIpcShvdW5kKWgodG8pZSh0aGUpaAotKGZ1bmN0aW9uKWggRmwoYmFja3dhcmQta2lsbC13b3JkKXAgRm0oLCk1NTUgMjE5MSB5KGFuZClnCi1GZyhDLW8pZiBGbShpcyloKGIpcShvdW5kKWcodG8pZihydW4paCh0aGUpZihtYWNybylnKGV4cHJlc3NlZCloKG9uKWcKLSh0aGUpZihyaWdoKW8odCloKGhhbmQpNTU1IDIyNDYgeShzaWRlKWMoXCh0aGF0KWUoaXMsKWkodG8pZShpbnNlcnQpaQotKHRoZSlmKHRleHQpZyhgKXAgRmwoPilmKG91dHB1dClwIEZtKCcpZyhpbilvKHRvKWkodGhlKWYobGluZVwpLik1NTUKLTIzMTQgeShBKWsobilvKHVtKW8oYilxKGVyKWYob2YpZyhzeW0pbyhiKXEob2xpYylpKGMpbyhoYXJhY3RlcillCi0obmFtZXMpZyhhcmUpZyhyZWNvZ25pemVkKWkod2hpbGUpZyhwcm8tKTU1NSAyMzY5IHkoY2Vzc2luZykxMwotYih0aGlzKWYoaylvKGV5KWcoYmluZGluZyloKHN5bilvKHRheDopMTggYiBGYyhERUwpcAotRm0oLCkxMSBiIEZjKEVTQylwIEZtKCwpaCBGYyhFU0NBUEUpcCBGbSgsKWYgRmMoTEZEKXAKLUZtKCwpZyBGYyhORVctKTU1NSAyNDI0IHkoTElORSlwIEZtKCwpMTYgYiBGYyhSRVQpcCBGbSgsKWUKLUZjKFJFVFVSTilwIEZtKCwpZiBGYyhSKW8oVUJPVVQpcCBGbSgsKWkgRmMoU1ApbChBKW8oQ0UpcAotRm0oLClnIEZjKFNQQylwIEZtKCwpZihhbmQpaSBGYyhUKWwoQUIpcCBGbSguKTMxNSAyNTA2Ci15IEZsKCIpcCBGYyhrKW8oZXlzZXEpcSBGbCgiKXAgRm0oOilrIEZjKGZ1bmN0aW9uLW5hbWUpZQotRm0ob3IpZCBGYyhtYWNybyk1NTUgMjU2MCB5KGspbyhleXNlcSlpIEZtKGRpXDAxM2VycyllKGZyb20pZwotRmMoaylvKGV5bmFtZSlqIEZtKGFiKXEobylvKHYpbyhlKWQoaW4paSh0aGF0KWQoc3RyaW5ncylpKGRlbm90aW5nKWcKLShhbilmKGVuLSk1NTUgMjYxNSB5KHRpcmUpaShrKW8oZXkpZyhzZXF1ZW5jZSloKGNhbilmKGIpcShlKWcoc3ApcQotKGVjaVwwMTRlZCwpaShiKW8oeSllKHBsYWNpbmcpaCh0aGUpZihrKW8oZXkpZyhzZXF1ZW5jZSloKGluKTU1NQotMjY3MCB5KGRvdWJsZSllKHF1b3Rlcy4paihTb21lKWMgRmgoZ251KWcgRm0oRW1hY3MpZihzdClvKHlsZSloKGspbyhleSkKLWcoZXNjYXApcShlcylnKGNhbilnKGIpcShlKWcodXNlZCwpZyhhcylwIGVvcAotJSVQYWdlOiA4IDEwCi04IDkgYm9wIDc1IC01OCBhIEZtKDgpMTMyMiBiKEdOVSkxNSBiKFJlYWRsaW5lKWgoTGlicmFyeSk1NTUKLTE0OSB5KGluKWkodGhlKWYoZm9sbG8pbyh3aW5nKWcoZXhhbXBsZSwpaChidXQpZih0aGUpZyhzcClxKGVjaWFsKWkoYylvCi0oaGFyYWN0ZXIpZChuYW1lcyloKGFyZSlmKG5vdCk1NTUgMjA0IHkocmVjb2duaXplZC4pNjc1Ci0yNzAgeSBGbCgiXFxDLXUiOikyMyBiKHVuaXZlcnNhbC1hcmd1bWVudCk2NzUgMzIyIHkoIlxcQy14XFxDLXIiOilmCi0ocmUtcmVhZC1pbml0LWZpbGUpNjc1IDM3MyB5KCJcXGVbMTF+IjopaCgiRnVuY3Rpb24pZihLZXkpaSgxIik1NTUKLTQ0MiB5IEZtKEluKTMzIGIodGhlKWYoYWIpcShvKW8odilvKGUpZyhleGFtcGxlLCkzNyBiCi1GZyhDLXUpMzIgYiBGbShpcyloKGFnYWluKWYoYilxKG91bmQpaCh0bylmKHRoZSlnKGZ1bmN0aW9uKTU1NQotNDk3IHkgRmwodW5pdmVyc2FsLWFyZ3VtZW50KTE5IGIgRm0oXChqdXN0KWooYXMpZihpdCloKHcpbyhhcylmKGluKWkKLSh0aGUpZihcMDE0cnN0KWYoZXhhbXBsZVwpLClqKGApcCBGZyhDLXgpNTU1IDU1MSB5KEMtcilwCi1GbSgnKWMoaXMpaChiKXEob3VuZClnKHRvKWYodGhlKWgoZnVuY3Rpb24pZyBGbChyZS1yZWFkLWluaXQtZmlsZSlwCi1GbSgsKWYoYW5kKWcoYCkxNzMxIDU0OSB5IEZmKGgpcCAxNzQzIDUyMyA3MCAyIHYgMTc0MwotNTUxIGEgRmUoRVNDKXAgMTc0MyA1NTkgViAxODEwIDU0OSBhIEZmKGkpMTUgYihoKXAgMTg1MgotNTIzIDEwIDIgdiAxODUyIDU1MSBhIEZlKFspcCAxODUyIDU2MCBWIDE4NjAgNTQ5IGEgRmYoaSk1NTUKLTYwNCB5KGgpcCA1NjcgNTc4IDE4IDIgdiA1NjcgNjA2IGEgRmUoMSlwIDU2NyA2MTQgViA1ODMKLTYwNCBhIEZmKGkpZyhoKXAgNjI1IDU3OCBWIDYyNSA2MDYgYSBGZSgxKXAgNjI1IDYxNCBWCi02NDAgNjA0IGEgRmYoaSlnKGgpcCA2ODMgNTc4IDI0IDIgdiA2ODMgNjA2IGEgRmwofilwCi02ODMgNjE0IFYgNzA0IDYwNCBhIEZmKGkpNzE5IDYwNiB5IEZtKCcpZyhpcyloKGIpcShvdW5kKWcodG8pZShpbnNlcnQpaQotKHRoZSlmKHRleHQpZyhgKXAgRmwoRnVuY3Rpb24pZihLZXkpZygxKXAgRm0oJy4pMzE1IDY4OAoteShUaGUpaChmb2xsbylvKHdpbmcpaCBGaChnbnUpZSBGbShFbWFjcyloKHN0KW8oeWxlKWcoZXNjYXApcShlKWgKLShzZXF1ZW5jZXMpZyhhcmUpZShhKW8odiltKGFpbGFibGUpaih3aGVuKWUoc3ApcShlY2lmeWluZykzMTUKLTc0MyB5KGspbyhleSlnKHNlcXVlbmNlczopMzE1IDgyNSB5IEZnKFxcQy0pMTY4IGIgRm0oY29uKW8odHJvbCkxNQotYihwcmVcMDE0eCkzMTUgOTA3IHkgRmcoXFxNLSkxNjggYiBGbShtZXRhKTE1IGIocHJlXDAxNHgpMzE1Ci05ODkgeSBGZyhcXGUpMTkyIGIgRm0oYW4pMTUgYihlc2NhcClxKGUpaChjKW8oaGFyYWN0ZXIpMzE1Ci0xMDcxIHkgRmcoXFxcXCkxOTIgYiBGbShiYWMpbyhrc2xhc2gpMzE1IDExNTIgeSBGZyhcXClwCi1GbCgiKTU1NSAxMTUwIHkgRmYoaClwIDU2NyAxMTI0IFYgNTY3IDExNTIgYSBGbCgiKXAgNTY3Ci0xMTYwIFYgNTg5IDExNTAgYSBGZihpKTYwNCAxMTUyIHkgRm0oLCkxNSBiKGEpZihkb3VibGUpaihxdW90YXRpb24pZQotKG1hcmspMzE1IDEyMzQgeSBGZyhcXCcpNTU1IDEyMzIgeSBGZihoKXAgNTY3IDEyMDYgMTAKLTIgdiA1NjcgMTIzNCBhIEZlKCcpcCA1NjcgMTI0MiBWIDU3NSAxMjMyIGEgRmYoaSk1OTAKLTEyMzQgeSBGbSgsKWcoYSlmKHNpbmdsZSlqKHF1b3RlKWUob3IpZyhhcClxKG9zdHJvcGhlKTMxNQotMTMxNiB5KEluKWYoYWRkaXRpb24paCh0bylmKHRoZSlmIEZoKGdudSloIEZtKEVtYWNzKWcoc3Qpbyh5bGUpZihlc2NhcCkKLXEoZSlpKHNlcXVlbmNlcywpZyhhKWUoc2Vjb25kKWkoc2V0KWUob2YpaChiYWMpbyhrc2xhc2gpMzE1Ci0xMzcxIHkoZXNjYXApcShlcylpKGlzKWcoYSlvKHYpbShhaWxhYmxlOikzMTUgMTQ1MyB5Ci1GbChcXGEpMTkyIGIgRm0oYWxlcnQpMTUgYihcKGIpcShlbGxcKSkzMTUgMTUzNSB5IEZsKFxcYikxOTIKLWIgRm0oYmFjKW8oa3NwYWNlKTMxNSAxNjE3IHkgRmwoXFxkKWcgRm0oZGVsZXRlKTMxNSAxNjk5Ci15IEZsKFxcZilnIEZtKGZvcm0pMTQgYihmZWVkKTMxNSAxNzgxIHkgRmwoXFxuKTE5MiBiCi1GbShuZXdsaW5lKTMxNSAxODYyIHkgRmwoXFxyKWcgRm0oY2FycmlhZ2UpMTUgYihyZXR1cm4pMzE1Ci0xOTQ0IHkgRmwoXFx0KTE5MiBiIEZtKGhvcml6b24pbyh0YWwpMTYgYih0YWIpMzE1IDIwMjYKLXkgRmwoXFx2KTE5MiBiIEZtKHYpbyhlcnRpY2FsKTE2IGIodGFiKTMxNSAyMTA4IHkgRmwoXFwpcAotRmMobm5uKTE0MSBiIEZtKHRoZSkxNyBiKGVpZ2gpbyh0LWJpdCloKGMpbyhoYXJhY3RlcilmKHdob3NlKWcodiltCi0oYWx1ZSlpKGlzKWUodGhlKWgobylxKGN0YWwpZih2KW0oYWx1ZSlpIEZjKG5ubilmIEZtKFwob25lKWYodG8pNTU1Ci0yMTYzIHkodGhyZWUpZShkaWdpdHNcKSkzMTUgMjI0NSB5IEZsKFxceClwIEZjKEhIKTEyNAotYiBGbSh0aGUpMjAgYihlaWdoKW8odC1iaXQpZyhjKW8oaGFyYWN0ZXIpZih3aG9zZSloKHYpbShhbHVlKWgoaXMpZgotKHRoZSlnKGhleGFkZWNpbWFsKWgodiltKGFsdWUpZyBGYyhISCk1NTUgMjMwMCB5IEZtKFwob25lKTE1Ci1iKG9yKWcodClvKHcpbyhvKWYoaGV4KWgoZGlnaXRzXCkpMzE1IDIzODIgeShXaGVuKWsoZW4pbyh0ZXJpbmcpZyh0aGUpZwotKHRleHQpZihvZilnKGEpaChtYWNybywpZihzaW5nbGUpaShvcillKGRvdWJsZSlpKHF1b3RlcylmKG0pbyh1c3QpZihiKXEKLShlKWgodXNlZCloKHRvKTMxNSAyNDM2IHkoaW5kaWNhdGUpMTIgYihhKWYobWFjcm8pZihkZVwwMTRuaXRpb24uKTIwCi1iKFVucXVvdGVkKTExIGIodGV4dClmKGlzKWkoYXNzdW1lZCllKHRvKWgoYilxKGUpZyhhKWYoZnVuY3Rpb24paQotKG5hbWUuKTE4IGIoSW4pMzE1IDI0OTEgeSh0aGUpMTEgYihtYWNybylmKGIpcShvKXEoZHkpbCgsKWkodGhlKWYoYmFjKW8KLShrc2xhc2gpZyhlc2NhcClxKGVzKWcoZGVzY3JpYilxKGVkKWkoYWIpcShvKW8odilvKGUpZChhcmUpZyhleHBhbmRlZC4pCi0yMCBiKEJhYylvKGtzbGFzaCkzMTUgMjU0NiB5KHdpbGwpaShxdW90ZSlkKGFuKW8oeSloKG90aGVyKWcoYylvCi0oaGFyYWN0ZXIpZihpbilpKHRoZSlmKG1hY3JvKWYodGV4dCwpaChpbmNsdWRpbmcpaihgKXAKLUZsKCIpcCBGbSgnKWMoYW5kKWgoYClwIEZsKCcpcCBGbSgnLikzNCBiKEYpbChvcikzMTUKLTI2MDEgeShleGFtcGxlLCkxNCBiKHRoZSlmKGZvbGxvKW8od2luZylnKGJpbmRpbmcpaSh3aWxsKWcobWFrKW8oZSlkKGApCi1wIEZnKEMteClpIEZsKFxcKXAgRm0oJylmKGluc2VydClnKGEpZyhzaW5nbGUpaChgKXAgRmwoXFwpcAotRm0oJyllKGluKW8odG8paCh0aGUpZyhsaW5lOik0MzUgMjY2NiB5IEZsKCJcXEMteFxcXFwiOikyMwotYigiXFxcXCIpcCBlb3AKLSUlUGFnZTogOSAxMQotOSAxMCBib3AgNzUgLTU4IGEgRm0oQ2hhcHRlcikxNSBiKDE6KWsoQ29tbWFuZCljKExpbmUpaShFZGl0aW5nKTEwNzcKLWIoOSk3NSAxNDkgeSBGYigxLjMuMikzMCBiKENvbmRpdGlvbmFsKTIwIGIoSW5pdClnKENvbnN0cnVjdHMpMTM3Ci0yNDYgeSBGbShSZWFkbGluZSlmKGltcGxlbWVuKW8odHMpZyhhKWYoZmFjaWxpdClvKHkpZyhzaW1pbGFyKWgoaW4pZwotKHNwaXJpdClmKHRvKWYodGhlKWgoY29uZGl0aW9uYWwpaChjb21waWxhdGlvbilnKGZlYXR1cmVzKTc1Ci0zMDEgeShvZillKHRoZSlnKEMpZyhwcmVwcm8pcShjZXNzb3IpZyh3aGljKW8oaClpKGFsbG8pbyh3cyllKGspbyhleSlnCi0oYmluZGluZ3MpaShhbmQpZih2KW0oYXJpYWJsZSlnKHNldHRpbmdzKWYodG8pZyhiKXEoZSloKHApcShlcmZvcm1lZClmCi0oYXMpNzUgMzU1IHkodGhlKWUocmVzdWx0KWgob2YpZih0ZXN0cy4payhUaGVyZSljKGFyZSlnKGZvdXIpZyhwYXJzZXIpZwotKGRpcmVjdGl2KW8oZXMpaCh1c2VkLik3NSA0MzUgeSBGbCgkaWYpMTY4IGIgRm0oVGhlKTE2Ci1iIEZsKCRpZilmIEZtKGNvbnN0cnVjdClnKGFsbG8pbyh3cyloKGJpbmRpbmdzKWkodG8pZChiKXEoZSloKG1hZGUpZwotKGJhc2VkKWcob24pZih0aGUpaChlZGl0aW5nKWgobW8pcShkZSwpZih0aGUpMzE1IDQ5MAoteSh0ZXJtaW5hbClrKGIpcShlaW5nKWcodXNlZCwpZyhvcilmKHRoZSlnKGFwcGxpY2F0aW9uKWkodXNpbmcpZQotKFJlYWRsaW5lLikzMyBiKFRoZSkxOSBiKHRleHQpZyhvZilmKHRoZSlpKHRlc3QpMzE1IDU0NQoteShleHRlbmRzKWModG8pZSh0aGUpaChlbmQpaChvZilmKHRoZSlnKGxpbmU7KWkobm8pZShjKW8oaGFyYWN0ZXJzKWYKLShhcmUpaChyZXF1aXJlZClpKHRvKWQoaXNvbGF0ZSlpKGl0LikzMTUgNjI0IHkgRmwobW9kZSkxNDQKLWIgRm0oVGhlKTExIGIgRmwobW9kZT0pZSBGbShmb3JtKWgob2YpZyh0aGUpaCBGbCgkaWYpZgotRm0oZGlyZWN0aXYpbyhlKWgoaXMpZyh1c2VkKWcodG8pZih0ZXN0KWcod2hldGhlciloKFJlYWRsaW5lKTU1NQotNjc5IHkoaXMpayhpbiloIEZsKGVtYWNzKWUgRm0ob3IpZyBGbCh2aSlnIEZtKG1vKXEoZGUuKTIwCi1iKFRoaXMpYyhtYSlvKHkpZShiKXEoZSloKHVzZWQpZyhpbiloKGNvbmp1bmN0aW9uKWcod2l0aClmKHRoZSk1NTUKLTczNCB5KGApcCBGbChzZXQpZihrZXltYXApcCBGbSgnKWYoY29tbWFuZCwpZyhmb3IpaChpbnN0YW5jZSwpZyh0bylmCi0oc2V0KWgoYmluZGluZ3MpaChpbilnKHRoZSlmIEZsKGVtYWNzLSk1NTUgNzg5IHkoc3RhbmRhcmQpZAotRm0oYW5kKWkgRmwoZW1hY3MtY3RseCllIEZtKGspbyhleW1hcHMpaChvbmx5KWkoaWYpZihSZWFkbGluZSlnKGlzKWcKLShzdGFydGluZylmKG91dCk1NTUgODQ0IHkoaW4payBGbChlbWFjcylmIEZtKG1vKXEoZGUuKTMxNQotOTIzIHkgRmwodGVybSkxNDQgYiBGbShUaGUpMTQgYiBGbCh0ZXJtPSllIEZtKGZvcm0paChtYSlvKHkpZyhiKXEoZSloCi0odXNlZClnKHRvKWYoaW5jbHVkZSlqKHRlcm1pbmFsLXNwKXEoZWNpXDAxNGMpZyhrKW8oZXkpZChiaW5kLSk1NTUKLTk3OCB5KGluZ3MsKTE5IGIocClxKGVyaGFwcylnKHRvKWUoYmluZClpKHRoZSlnKGspbyhleSllKHNlcXVlbmNlcylqCi0ob3V0cHV0KWUoYilvKHkpZyh0aGUpZyh0ZXJtaW5hbCdzKTU1NSAxMDMzIHkoZnVuY3Rpb24pMTMKLWIoaylvKGV5cy4pMTggYihUaGUpMTMgYih3KW8ob3JkKWUob24paCh0aGUpZyhyaWdoKW8odClnKHNpZGUpZyhvZilnCi0odGhlKWcoYClwIEZsKD0pcCBGbSgnKWYoaXMpaCh0ZXN0ZWQpZyhhZ2FpbnN0KTU1NSAxMDg4Ci15KGIpcShvdGgpaih0aGUpZyhmdWxsKWkobmFtZSllKG9mKWYodGhlKWgodGVybWluYWwpaChhbmQpZih0aGUpZyhwKXEKLShvcnRpb24paChvZillKHRoZSloKHRlcm1pbmFsKTU1NSAxMTQyIHkobmFtZSlpKGIpcShlZm9yZSlnKHRoZSlnCi0oXDAxNHJzdClmKGApcCBGbCgtKXAgRm0oJy4pMjQgYihUaGlzKTE3IGIoYWxsbylvKHdzKWcKLUZsKHN1bilmIEZtKHRvKWcobWF0YylvKGgpaChiKXEob3RoKWYgRmwoc3VuKWggRm0oYW5kKTU1NQotMTE5NyB5IEZsKHN1bi1jbWQpcCBGbSgsKWQoZm9yKWcoaW5zdGFuY2UuKTMxNSAxMjc3IHkKLUZsKGFwcGxpY2F0aW9uKTU1NSAxMzMyIHkgRm0oVGhlKWQgRmMoYXBwbGljYXRpb24paSBGbShjb25zdHJ1Y3QpZShpcylnCi0odXNlZCloKHRvKWUoaW5jbHVkZSlqKGFwcGxpY2F0aW9uLXNwKXEoZWNpKXEoXDAxNGMpaChzZXQtKTU1NQotMTM4NiB5KHRpbmdzLikxOSBiKEVhYylvKGgpMTIgYihwcm9ncmFtKWYodXNpbmcpaih0aGUpZShSZWFkbGluZSlpCi0obGlicmFyeSlmKHNldHMpZih0aGUpZyBGYyhhcHBsaWNhdGlvbik1NTUgMTQ0MSB5KG5hbWUpcAotRm0oLClnKGFuZClnKHkpbyhvdSlmKGNhbiloKHRlc3QpZihmb3IpZyhhKWcocGFydGljdWxhciloKHYpbShhbHVlLikyMAotYihUaGlzKTEyIGIoY291bGQpaChiKXEoZSlmKHVzZWQpaCh0byk1NTUgMTQ5NiB5KGJpbmQpMTgKLWIoaylvKGV5KWUoc2VxdWVuY2VzKWkodG8pZChmdW5jdGlvbnMpaih1c2VmdWwpZihmb3IpZihhKWcoc3ApcQotKGVjaVwwMTRjKWkocHJvZ3JhbS4pMjMgYihGKWwob3IpNTU1IDE1NTEgeShpbnN0YW5jZSwpMTcKLWIodGhlKWcoZm9sbG8pbyh3aW5nKWcoY29tbWFuZClnKGFkZHMpZihhKWcoaylvKGV5KWgoc2VxdWVuY2UpZyh0aGF0KWYKLShxdW90ZXMpNTU1IDE2MDYgeSh0aGUpZihjdXJyZW4pbyh0KWcob3IpZyhwcmV2aW91cyloKHcpbyhvcmQpZShpbilqCi0oQmFzaDopNjc1IDE2NzAgeSBGbCgkaWYpMjMgYihCYXNoKTY3NSAxNzIyIHkoIyloKFF1b3RlKWYodGhlKWcKLShjdXJyZW50KWcob3IpaChwcmV2aW91cylmKHdvcmQpNjc1IDE3NzQgeSgiXFxDLXhxIjopZwotKCJcXGViXFwiXFxlZlxcIiIpNjc1IDE4MjYgeSgkZW5kaWYpNzUgMTkwNSB5KCRlbmRpZik5NgotYiBGbShUaGlzKTE2IGIoY29tbWFuZCwpZShhcyloKHNlZW4paChpbilnKHRoZSlmKHByZXZpb3VzKWgoZXhhbXBsZSwpZwotKHRlcm1pbmF0ZXMpZihhbilnIEZsKCRpZilmIEZtKGNvbW1hbmQuKTc1IDE5ODUgeSBGbCgkZWxzZSkxMjAKLWIgRm0oQ29tbWFuZHMpMTUgYihpbiloKHRoaXMpZihicmFuYylvKGgpaChvZillKHRoZSlpCi1GbCgkaWYpZSBGbShkaXJlY3RpdilvKGUpaihhcmUpZShleGVjdXRlZCloKGlmKWcodGhlKWYodGVzdClnKGZhaWxzLik3NQotMjA2NSB5IEZsKCRpbmNsdWRlKTQ4IGIgRm0oVGhpcykyMiBiKGRpcmVjdGl2KW8oZSloKHRhaylvKGVzKWUoYSloCi0oc2luZ2xlKWgoXDAxNGxlbmFtZSlnKGFzKWUoYW4paChhcmd1bWVuKW8odClmKGFuZCloKHJlYWRzKWYoY29tbWFuZHMpCi0zMTUgMjEyMCB5KGFuZCllKGJpbmRpbmdzKWooZnJvbSljKHRoYXQpaChcMDE0bGUuKTMzCi1iKEYpbChvcikxOSBiKGV4YW1wbGUsKWkodGhlKWUoZm9sbG8pbyh3aW5nKWgoZGlyZWN0aXYpbyhlKWgocmVhZHMpZQotKGZyb20pMzE1IDIxNzQgeShgKXAgRmwoL2V0Yy9pbnB1dHJjKXAgRm0oJzopNDM1IDIyMzkKLXkgRmwoJGluY2x1ZGUpaygvZXRjL2lucHV0cmMpNzUgMjM1MSB5IEZiKDEuMy4zKTMwIGIoU2FtcGxlKTIwCi1iKEluaXQpaChGaWxlKTEzNyAyNDQ3IHkgRm0oSGVyZSkxNiBiKGlzKWcoYW4pZihleGFtcGxlKWgob2YpZihhbilnCi1GYyhpbnB1dHJjKWsgRm0oXDAxNGxlLilpKFRoaXMpMTYgYihpbGx1c3RyYXRlcylnKGspbyhleSlmKGJpbmRpbmcsKWkKLSh2KW0oYXJpYWJsZSlmKGFzc2lnbm1lbilvKHQsKTc1IDI1MDIgeShhbmQpZihjb25kaXRpb25hbClpKHN5bilvKHRheC4pCi1wIGVvcAotJSVQYWdlOiAxMCAxMgotMTAgMTEgYm9wIDc1IC01OCBhIEZtKDEwKTEyOTkgYihHTlUpMTUgYihSZWFkbGluZSloKExpYnJhcnkpMTk1Ci0yMDEgeSBGbCgjKTI0IGIoVGhpcylmKGZpbGUpZyhjb250cm9scylnKHRoZSloKGJlaGF2aW91cillKG9mKWkobGluZSlmCi0oaW5wdXQpZyhlZGl0aW5nKWcoZm9yKTE5NSAyNTMgeSgjKWgocHJvZ3JhbXMpZSh0aGF0KWkodXNlKWYodGhlKWgoR05VKQotZihSZWFkbGluZSlnKGxpYnJhcnkuKTQ3IGIoRXhpc3RpbmcpMTk1IDMwNSB5KCMpMjQgYihwcm9ncmFtcyllCi0oaW5jbHVkZSloKEZUUCwpaChCYXNoLClmKGFuZClnKEdEQi4pMTk1IDM1NyB5KCMpMTk1Ci00MDkgeSgjKWgoWW91KWYoY2FuKWgocmUtcmVhZClmKHRoZSlnKGlucHV0cmMpZyhmaWxlKWcod2l0aCloKEMteClmCi0oQy1yLikxOTUgNDYxIHkoIyloKExpbmVzKWYoYmVnaW5uaW5nKWcod2l0aClnKCcjJylnKGFyZSloKGNvbW1lbnRzLikKLTE5NSA1MTMgeSgjKTE5NSA1NjUgeSgjKWcoRmlyc3QsKWYoaW5jbHVkZSlnKGFueSlnKHN5c3RlbXdpZGUpZwotKGJpbmRpbmdzKWYoYW5kKWkodmFyaWFibGUpMTk1IDYxNiB5KCMpZyhhc3NpZ25tZW50cyllKGZyb20paAotKC9ldGMvSW5wdXRyYykxOTUgNjY4IHkoJGluY2x1ZGUpZygvZXRjL0lucHV0cmMpMTk1IDc3MgoteSgjKTE5NSA4MjQgeSgjKWgoU2V0KWYodmFyaW91cylnKGJpbmRpbmdzKWcoZm9yKWcoZW1hY3MpZyhtb2RlLikxOTUKLTkyOCB5KHNldClnKGVkaXRpbmctbW9kZSlnKGVtYWNzKTE5NSAxMDMyIHkoJGlmKWcobW9kZT1lbWFjcykxOTUKLTExMzUgeShNZXRhLUNvbnRyb2wtaDopNDYgYihiYWNrd2FyZC1raWxsLXdvcmQpMjEgYihUZXh0KWkoYWZ0ZXIpaCh0aGUpCi1mKGZ1bmN0aW9uKWcobmFtZSlnKGlzKWgoaWdub3JlZClwIDE5ODYgMTE0NSAyMSAzOCB2Ci0xOTUgMTIzOSBhKCMpMTk1IDEyOTEgeSgjKWcoQXJyb3cpZihrZXlzKWcoaW4paChrZXlwYWQpZihtb2RlKTE5NQotMTM0MyB5KCMpMTk1IDEzOTUgeSgjIlxcTS1PRCI6KTE5MCBiKGJhY2t3YXJkLWNoYXIpMTk1Ci0xNDQ3IHkoIyJcXE0tT0MiOilnKGZvcndhcmQtY2hhcikxOTUgMTQ5OSB5KCMiXFxNLU9BIjopZwotKHByZXZpb3VzLWhpc3RvcnkpMTk1IDE1NTAgeSgjIlxcTS1PQiI6KWcobmV4dC1oaXN0b3J5KTE5NQotMTYwMiB5KCMpMTk1IDE2NTQgeSgjKTI0IGIoQXJyb3cpZihrZXlzKWcoaW4paChBTlNJKWYobW9kZSkxOTUKLTE3MDYgeSgjKTE5NSAxNzU4IHkoIlxcTS1bRCI6KTE5MCBiKGJhY2t3YXJkLWNoYXIpMTk1Ci0xODEwIHkoIlxcTS1bQyI6KWcoZm9yd2FyZC1jaGFyKTE5NSAxODYyIHkoIlxcTS1bQSI6KWcKLShwcmV2aW91cy1oaXN0b3J5KTE5NSAxOTE0IHkoIlxcTS1bQiI6KWcobmV4dC1oaXN0b3J5KTE5NQotMTk2NiB5KCMpMTk1IDIwMTcgeSgjKTI0IGIoQXJyb3cpZihrZXlzKWcoaW4paCg4KWcoYml0KWYoa2V5cGFkKWcobW9kZSkKLTE5NSAyMDY5IHkoIykxOTUgMjEyMSB5KCMiXFxNLVxcQy1PRCI6KTE2NSBiKGJhY2t3YXJkLWNoYXIpMTk1Ci0yMTczIHkoIyJcXE0tXFxDLU9DIjopZyhmb3J3YXJkLWNoYXIpMTk1IDIyMjUgeSgjIlxcTS1cXEMtT0EiOilnCi0ocHJldmlvdXMtaGlzdG9yeSkxOTUgMjI3NyB5KCMiXFxNLVxcQy1PQiI6KWcobmV4dC1oaXN0b3J5KTE5NQotMjMyOSB5KCMpMTk1IDIzODEgeSgjKTI0IGIoQXJyb3cpZihrZXlzKWcoaW4paCg4KWcoYml0KWYoQU5TSSlnKG1vZGUpCi0xOTUgMjQzMyB5KCMpMTk1IDI0ODQgeSgjIlxcTS1cXEMtW0QiOikxNjUgYihiYWNrd2FyZC1jaGFyKTE5NQotMjUzNiB5KCMiXFxNLVxcQy1bQyI6KWcoZm9yd2FyZC1jaGFyKTE5NSAyNTg4IHkoIyJcXE0tXFxDLVtBIjopZwotKHByZXZpb3VzLWhpc3RvcnkpMTk1IDI2NDAgeSgjIlxcTS1cXEMtW0IiOilnKG5leHQtaGlzdG9yeSlwCi1lb3AKLSUlUGFnZTogMTEgMTMKLTExIDEyIGJvcCA3NSAtNTggYSBGbShDaGFwdGVyKTE1IGIoMTopayhDb21tYW5kKWMoTGluZSlpKEVkaXRpbmcpMTA1NQotYigxMSkxOTUgMjAxIHkgRmwoQy1xOikyMyBiKHF1b3RlZC1pbnNlcnQpMTk1IDMwNSB5KCRlbmRpZikxOTUKLTQwOSB5KCMpaChBbilmKG9sZC1zdHlsZSlnKGJpbmRpbmcuKTQ3IGIoVGhpcykyMyBiKGhhcHBlbnMpZyh0bylnKGJlKWgKLSh0aGUpZihkZWZhdWx0LikxOTUgNDYxIHkoVEFCOilnKGNvbXBsZXRlKTE5NSA1NjUgeSgjKWgoTWFjcm9zKWYodGhhdClnCi0oYXJlKWgoY29udmVuaWVudCllKGZvciloKHNoZWxsKWgoaW50ZXJhY3Rpb24pMTk1IDYxNgoteSgkaWYpZihCYXNoKTE5NSA2NjggeSgjKWgoZWRpdClmKHRoZSlnKHBhdGgpMTk1IDcyMAoteSgiXFxDLXhwIjopZygiUEFUSD0ke1BBVEh9XFxlXFxDLWVcXEMtYVxcKW8oZWZcXEMtZiIpMTk1Ci03NzIgeSgjKWgocHJlcGFyZSlmKHRvKWcodHlwZSloKGEpZihxdW90ZWQpZyh3b3JkKWgoLS0pMTk1Ci04MjQgeSgjKWcoaW5zZXJ0KWYob3BlbilnKGFuZCloKGNsb3NlKWYoZG91YmxlKWcocXVvdGVzKTE5NQotODc2IHkoIyloKGFuZClmKG1vdmUpZyh0byloKGp1c3QpZihhZnRlciloKHRoZSlmKG9wZW4pZyhxdW90ZSkxOTUKLTkyOCB5KCJcXEMteFxcIiI6KWcoIlxcIlxcIlxcQy1iIikxOTUgOTgwIHkoIyloKGluc2VydClmKGEpZyhiYWNrc2xhc2gpCi1nKFwodGVzdGluZylnKGJhY2tzbGFzaClnKGVzY2FwZXMpMTk1IDEwMzIgeSgjKWgoaW4pZihzZXF1ZW5jZXMpZyhhbmQpZwotKG1hY3Jvc1wpKTE5NSAxMDgzIHkoIlxcQy14XFxcXCI6KWcoIlxcXFwiKTE5NSAxMTM1IHkoIyloKFF1b3RlKWYodGhlKWcKLShjdXJyZW50KWcob3IpaChwcmV2aW91cylmKHdvcmQpMTk1IDExODcgeSgiXFxDLXhxIjopZwotKCJcXGViXFwiXFxlZlxcIiIpMTk1IDEyMzkgeSgjKWgoQWRkKWYoYSloKGJpbmRpbmcpZih0bylnKHJlZnJlc2gpZwotKHRoZSloKGxpbmUsKWYod2hpY2gpZyhpcyloKHVuYm91bmQpMTk1IDEyOTEgeSgiXFxDLXhyIjopZgotKHJlZHJhdy1jdXJyZW50LWxpbmUpMTk1IDEzNDMgeSgjKWgoRWRpdClmKHZhcmlhYmxlKWcob24pZyhjdXJyZW50KWcKLShsaW5lLikxOTUgMTM5NSB5KCJcXE0tXFxDLXYiOilmKCJcXEMtYVxcQy1rJFxcQy15XFxNLVxcQy1lXFxDLWFcXEMteT0pCi1vKCIpMTk1IDE0NDcgeSgkZW5kaWYpMTk1IDE1NTAgeSgjKWkodXNlKWYoYSloKHZpc2libGUpZihiZWxsKWcoaWYpaAotKG9uZSlmKGlzKWgoYXZhaWxhYmxlKTE5NSAxNjAyIHkoc2V0KWYoYmVsbC1zdHlsZSlnKHZpc2libGUpMTk1Ci0xNzA2IHkoIyloKGRvbid0KWYoc3RyaXApZyhjaGFyYWN0ZXJzKWcodG8pZyg3KWgoYml0cylmKHdoZW4paChyZWFkaW5nKQotMTk1IDE3NTggeShzZXQpZihpbnB1dC1tZXRhKWcob24pMTk1IDE4NjIgeSgjKWgoYWxsb3cpZihpc28tbGF0aW4xKWYKLShjaGFyYWN0ZXJzKWgodG8pZyhiZSloKGluc2VydGVkKWYocmF0aGVyKTE5NSAxOTE0IHkoIyloKHRoYW4pZgotKGNvbnZlcnRlZClnKHRvKWcocHJlZml4LW1ldGEpZyhzZXF1ZW5jZXMpMTk1IDE5NjYgeShzZXQpZwotKGNvbnZlcnQtbWV0YSlnKG9mZikxOTUgMjA2OSB5KCMpaChkaXNwbGF5KWYoY2hhcmFjdGVycylmKHdpdGgpaCh0aGUpaAotKGVpZ2h0aClmKGJpdClnKHNldCloKGRpcmVjdGx5KTE5NSAyMTIxIHkoIylnKHJhdGhlcilmKHRoYW4pZyhhcyloCi0obWV0YS1wcmVmaXhlZCllKGNoYXJhY3RlcnMpMTk1IDIxNzMgeShzZXQpaChvdXRwdXQtbWV0YSlnKG9uKTE5NQotMjI3NyB5KCMpaChpZilmKHRoZXJlKWcoYXJlKWgobW9yZSlmKHRoYW4paCgxNTApZihwb3NzaWJsZSlnCi0oY29tcGxldGlvbnMpZihmb3IpMTk1IDIzMjkgeSgjKWkoYSlmKHdvcmQsKWgoYXNrKWYodGhlKWgodXNlcilmKGlmKWcKLShoZSloKHdhbnRzKWYodG8paChzZWUpZihhbGwpaChvZilmKHRoZW0pMTk1IDIzODEgeShzZXQpZwotKGNvbXBsZXRpb24tcXVlcnktaXRlbXMpZSgxNTApMTk1IDI0ODQgeSgjKWooRm9yKWYoRlRQKTE5NQotMjUzNiB5KCRpZilnKEZ0cCkxOTUgMjU4OCB5KCJcXEMteGciOilnKCJnZXQpZyhcXE0tPyIpMTk1Ci0yNjQwIHkoIlxcQy14dCI6KWcoInB1dClnKFxcTS0/IilwIGVvcAotJSVQYWdlOiAxMiAxNAotMTIgMTMgYm9wIDc1IC01OCBhIEZtKDEyKTEyOTkgYihHTlUpMTUgYihSZWFkbGluZSloKExpYnJhcnkpMTk1Ci0xNDkgeSBGbCgiXFxNLS4iOikyMyBiKHlhbmstbGFzdC1hcmcpMTk1IDIwMSB5KCRlbmRpZik3NQotMzI5IHkgRmsoMS40KTMzIGIoQmluZGFibGUpMjQgYihSZWFkbGluZSlmKENvbW1hbmRzKTEzNwotNDI1IHkgRm0oVGhpcykxNyBiKHNlY3Rpb24pZihkZXNjcmliKXEoZXMpaChSZWFkbGluZSlnKGNvbW1hbmRzKWYodGhhdCkKLWUobWEpbyh5KWgoYilxKGUpaShiKXEob3VuZClmKHRvKWYoaylvKGV5KWgoc2VxdWVuY2VzLikyMgotYihDb20tKTc1IDQ4MCB5KG1hbmQpMTUgYihuYW1lcylnKHdpdGhvdXQpaChhbilmKGFjY29tcGFuKW8oeWluZylnKGspbwotKGV5KWcoc2VxdWVuY2UpaShhcmUpZSh1bilvKGIpcShvdW5kKWgoYilvKHkpZihkZWZhdWx0LikxMzcKLTU0NyB5KEluKWYodGhlKWYoZm9sbG8pbyh3aW5nKWgoZGVzY3JpcHRpb25zLCloIEZjKHApcShvaW4pbyh0KWYKLUZtKHJlZmVycylmKHRvKWcodGhlKWcoY3VycmVuKW8odClnKGN1cnNvcilmKHApcShvc2l0aW9uLClqKGFuZCllCi1GYyhtYXJrKWkgRm0ocmVmZXJzKTc1IDYwMSB5KHRvKWsoYSlnKGN1cnNvcilnKHApcShvc2l0aW9uKWgoc2Epbyh2KW8KLShlZClmKGIpbyh5KWgodGhlKWYgRmwoc2V0LW1hcmspZyBGbShjb21tYW5kLikzMiBiKFRoZSkyMAotYih0ZXh0KWYoYilxKGV0KW8odylvKGVlbilnKHRoZSloKHApcShvaW4pbyh0KWcoYW5kKTc1Ci02NTYgeShtYXJrKTE1IGIoaXMpZyhyZWZlcnJlZCloKHRvKWUoYXMpaCh0aGUpZyBGYyhyZWdpb24pcAotRm0oLik3NSA3NjcgeSBGYigxLjQuMSkzMCBiKENvbW1hbmRzKTIxIGIoRiktNSBiKG9yKTE5Ci1iKE1vKW4odmluZyk3NSA4ODggeSBGbChiZWdpbm5pbmctb2YtbGluZSkxMyBiKFwoQy1hXCkpMzE1Ci05NDIgeSBGbShNbylvKHYpbyhlKWgodG8paCh0aGUpZyhzdGFydClmKG9mKWgodGhlKWcoY3VycmVuKW8odClnKGxpbmUuKQotNzUgMTAzNCB5IEZsKGVuZC1vZi1saW5lKWYoXChDLWVcKSkzMTUgMTA4OCB5IEZtKE1vKW8odilvKGUpZyh0byloKHRoZSkKLWcoZW5kKWgob2YpZih0aGUpZyhsaW5lLik3NSAxMTc5IHkgRmwoZm9yd2FyZC1jaGFyKWYoXChDLWZcKSkzMTUKLTEyMzQgeSBGbShNbylvKHYpbyhlKWcoZm9ydylvKGFyZClnKGEpaChjKW8oaGFyYWN0ZXIuKTc1Ci0xMzI1IHkgRmwoYmFja3dhcmQtY2hhcillKFwoQy1iXCkpMzE1IDEzODAgeSBGbShNbylvKHYpbyhlKWgoYmFjKW8oayloCi0oYSlnKGMpbyhoYXJhY3Rlci4pNzUgMTQ3MSB5IEZsKGZvcndhcmQtd29yZClmKFwoTS1mXCkpMzE1Ci0xNTI2IHkgRm0oTW8pbyh2KW8oZSlnKGZvcncpbyhhcmQpZyh0bylnKHRoZSlpKGVuZClnKG9mKWUodGhlKWgobmV4dCloCi0odylvKG9yZC4paihXKWwob3JkcyljKGFyZSlmKGNvbXApcShvc2VkKWkob2YpZihsZXR0ZXJzKWcoYW5kKTMxNQotMTU4MSB5KGRpZ2l0cy4pNzUgMTY3MiB5IEZsKGJhY2t3YXJkLXdvcmQpZShcKE0tYlwpKTMxNQotMTcyNyB5IEZtKE1vKW8odilvKGUpaihiYWMpbyhrKWcodG8paCh0aGUpZihzdGFydClnKG9mKWcodGhlKWgoY3VycmVuKW8KLSh0KWcob3IpZihwcmV2aW91cylpKHcpbyhvcmQuKTI0IGIoVylsKG9yZHMpMTYgYihhcmUpaChjb21wKXEob3NlZCkzMTUKLTE3ODIgeShvZillKGxldHRlcnMpZyhhbmQpZyhkaWdpdHMuKTc1IDE4NzMgeSBGbChjbGVhci1zY3JlZW4pZgotKFwoQy1sXCkpMzE1IDE5MjggeSBGbShDbGVhcilmKHRoZSloKHNjcmVlbilnKGFuZClmKHJlZHJhKW8odylnKHRoZSlnCi0oY3VycmVuKW8odClnKGxpbmUsKWkobGVhKW8odmluZylnKHRoZSllKGN1cnJlbilvKHQpZyhsaW5lKWkoYXQpZSh0aGUpZwotKHRvcCkzMTUgMTk4MiB5KG9mKWkodGhlKWcoc2NyZWVuLik3NSAyMDc0IHkgRmwocmVkcmF3LWN1cnJlbnQtbGluZSllCi0oXChcKSkzMTUgMjEyOCB5IEZtKFJlZnJlc2gpaSh0aGUpZyhjdXJyZW4pbyh0KWcobGluZS4pMjIKLWIoQnkpMTUgYihkZWZhdWx0LCloKHRoaXMpZihpcyloKHVuKW8oYilxKG91bmQuKTc1IDIyMzkKLXkgRmIoMS40LjIpMzAgYihDb21tYW5kcykyMSBiKEYpLTUgYihvcikxOSBiKE1hbmlwdWxhdGluZylpKFRoZSlmCi0oSGlzdG9yeSk3NSAyMzYwIHkgRmwoYWNjZXB0LWxpbmUpMTQgYihcKE5ld2xpbmUpZyhvciloKFJldHVyblwpKTMxNQotMjQxNCB5IEZtKEFjY2VwdClqKHRoZSlnKGxpbmUpaChyZWdhcmRsZXNzKWYob2YpZih3aGVyZSloKHRoZSlnKGN1cnNvcikKLWYoaXMuKTI3IGIoSWYpMTggYih0aGlzKWcobGluZSloKGlzKWcobm9uLWVtcHQpbyh5KWwoLClmKGl0KTMxNQotMjQ2OSB5KG1hKW8oeSlkKGIpcShlKWkoYWRkZWQpZih0bylnKHRoZSlnKGhpc3RvcnkpZyhsaXN0KWcoZm9yKWcKLShmdXR1cmUpZyhyZWNhbGwpaCh3aXRoKWYgRmwoYWRkX2hpc3RvcnlcKFwpKXAgRm0oLilrKElmKWQodGhpcykzMTUKLTI1MjQgeShsaW5lKWcoaXMpZihhKWUobW8pcShkaVwwMTRlZClqKGhpc3RvcnkpZShsaW5lLClpKHRoZSllKGhpc3RvcnkpCi1nKGxpbmUpaShpcylmKHJlc3RvcmVkKWUodG8paChpdHMpZyhvcmlnaW5hbClpKHN0YXRlLik3NQotMjYxNSB5IEZsKHByZXZpb3VzLWhpc3RvcnkpYyhcKEMtcFwpKTMxNSAyNjcwIHkgRm0oTW8pbyh2KW8oZSloKGBiYWMpbwotKGsnKWgodGhyb3VnaClmKHRoZSlpKGhpc3RvcnkpZihsaXN0LClnKGZldGMpbyhoaW5nKWgodGhlKWYocHJldmlvdXMpaAotKGNvbW1hbmQuKXAgZW9wCi0lJVBhZ2U6IDEzIDE1Ci0xMyAxNCBib3AgNzUgLTU4IGEgRm0oQ2hhcHRlcikxNSBiKDE6KWsoQ29tbWFuZCljKExpbmUpaShFZGl0aW5nKTEwNTUKLWIoMTMpNzUgMTQ5IHkgRmwobmV4dC1oaXN0b3J5KTE0IGIoXChDLW5cKSkzMTUgMjA0IHkKLUZtKE1vKW8odilvKGUpZyhgZm9ydylvKGFyZCcpZih0aHJvdWdoKWkodGhlKWgoaGlzdG9yeSlmKGxpc3QsKWcoZmV0YylvCi0oaGluZyloKHRoZSlmKG5leHQpaChjb21tYW5kLik3NSAzMDcgeSBGbChiZWdpbm5pbmctb2YtaGlzdG9yeSljCi0oXChNLTxcKSkzMTUgMzYyIHkgRm0oTW8pbyh2KW8oZSlpKHRvKWgodGhlKWcoXDAxNHJzdClnKGxpbmUpaShpbilmCi0odGhlKWYoaGlzdG9yeSlsKC4pNzUgNDY1IHkgRmwoZW5kLW9mLWhpc3RvcnkpZShcKE0tPlwpKTMxNQotNTIwIHkgRm0oTW8pbyh2KW8oZSloKHRvKWgodGhlKWcoZW5kKWgob2YpZih0aGUpZyhpbnB1dCloKGhpc3RvcnkpbCgsKWYKLShpLmUuLClnKHRoZSlnKGxpbmUpaShjdXJyZW4pbyh0bHkpZihiKXEoZWluZylnKGVuKW8odGVyZWQuKTc1Ci02MjQgeSBGbChyZXZlcnNlLXNlYXJjaC1oaXN0b3J5KWMoXChDLXJcKSkzMTUgNjc4IHkgRm0oU2VhcmMpbyhoKWsoYmFjKQotbyhrdylvKGFyZCllKHN0YXJ0aW5nKWgoYXQpZyh0aGUpaChjdXJyZW4pbyh0KWYobGluZSlqKGFuZClkKG1vKW8odmluZykKLWgoYHVwJylmKHRocm91Z2gpZyh0aGUpaChoaXMtKTMxNSA3MzMgeSh0b3J5KWUoYXMpaChuZWNlc3NhcnkpbCguKTIwCi1iKFRoaXMpYyhpcylnKGFuKWYoaW5jcmVtZW4pbyh0YWwpaChzZWFyYylvKGguKTc1IDgzNgoteSBGbChmb3J3YXJkLXNlYXJjaC1oaXN0b3J5KWMoXChDLXNcKSkzMTUgODkxIHkgRm0oU2VhcmMpbyhoKWooZm9ydylvCi0oYXJkKWUoc3RhcnRpbmcpaChhdCloKHRoZSlmKGN1cnJlbilvKHQpaChsaW5lKWgoYW5kKWYobW8pbyh2aW5nKWcoYGRvKQotbyh3bicpZih0aHJvdWdoKWcodGhlKWgodGhlKTMxNSA5NDYgeShoaXN0b3J5KWcoYXMpZyhuZWNlc3NhcnkpbCguKTIwCi1iKFRoaXMpYyhpcylnKGFuKWYoaW5jcmVtZW4pbyh0YWwpaChzZWFyYylvKGguKTc1IDEwNDkKLXkgRmwobm9uLWluY3JlbWVudGFsLXJldmVyc2Utc2UpbyhhcmNoLWhpKW8oc3RvcnkpYyhcKE0tcFwpKTMxNQotMTEwNCB5IEZtKFNlYXJjKW8oaClrKGJhYylvKGt3KW8oYXJkKWUoc3RhcnRpbmcpaChhdClnKHRoZSloKGN1cnJlbilvCi0odClmKGxpbmUpaihhbmQpZChtbylvKHZpbmcpaChgdXAnKWYodGhyb3VnaClnKHRoZSloKGhpcy0pMzE1Ci0xMTU5IHkodG9yeSloKGFzKWgobmVjZXNzYXJ5KWcodXNpbmcpaChhKWUobm9uLWluY3JlbWVuKW8odGFsKWooc2VhcmMpbwotKGgpZShmb3IpZihhKWgoc3RyaW5nKWcoc3VwcGxpZWQpaShiKW8oeSllKHRoZSkzMTUgMTIxNAoteSh1c2VyLik3NSAxMzE3IHkgRmwobm9uLWluY3JlbWVudGFsLWZvcndhcmQtc2UpbyhhcmNoLWhpKW8oc3RvcnkpMTIKLWIoXChNLW5cKSkzMTUgMTM3MiB5IEZtKFNlYXJjKW8oaClqKGZvcncpbyhhcmQpZShzdGFydGluZyloKGF0KWgodGhlKWYKLShjdXJyZW4pbyh0KWgobGluZSloKGFuZClmKG1vKW8odmluZylnKGBkbylvKHduJylmKHRocm91Z2gpZyh0aGUpaCh0aGUpCi0zMTUgMTQyNiB5KGhpc3RvcnkpZShhcylnKG5lY2Vzc2FyeSloKHVzaW5nKWcoYSlmKG5vbi1pbmNyZW1lbilvKHRhbClpCi0oc2VhcmMpbyhoKWUoZm9yKWcoYSlnKHN0cmluZylnKHN1cHBsaWVkKWooYilvKHkpZCh0aGUpMzE1Ci0xNDgxIHkodXNlci4pNzUgMTU4NCB5IEZsKGhpc3Rvcnktc2VhcmNoLWZvcndhcmQpZihcKFwpKTMxNQotMTYzOSB5IEZtKFNlYXJjKW8oaCkyMSBiKGZvcncpbyhhcmQpZSh0aHJvdWdoKWkodGhlKWYoaGlzdG9yeSloKGZvcilmCi0odGhlKWgoc3RyaW5nKWcob2YpZihjKW8oaGFyYWN0ZXJzKWcoYilxKGV0KW8odylvKGVlbiloKHRoZSkzMTUKLTE2OTQgeShzdGFydCkxNiBiKG9mKWgodGhlKWgoY3VycmVuKW8odClnKGxpbmUpaChhbmQpZSh0aGUpaChwKXEob2luKW8KLSh0LikyOCBiKFRoaXMpMTggYihpcylnKGEpZihub24taW5jcmVtZW4pbyh0YWwpaShzZWFyYylvKGguKTI3Ci1iKEJ5KTMxNSAxNzQ5IHkoZGVmYXVsdCwpMTUgYih0aGlzKWgoY29tbWFuZClmKGlzKWgodW4pbyhiKXEob3VuZC4pNzUKLTE4NTIgeSBGbChoaXN0b3J5LXNlYXJjaC1iYWNrd2FyZCljKFwoXCkpMzE1IDE5MDcgeSBGbShTZWFyYylvKGgpMTgKLWIoYmFjKW8oa3cpbyhhcmQpZSh0aHJvdWdoKWgodGhlKWgoaGlzdG9yeSlmKGZvcilnKHRoZSlnKHN0cmluZyloKG9mKWYKLShjKW8oaGFyYWN0ZXJzKWYoYilxKGV0KW8odylvKGVlbilpKHRoZSkzMTUgMTk2MiB5KHN0YXJ0KWUob2YpaCh0aGUpaAotKGN1cnJlbilvKHQpZyhsaW5lKWgoYW5kKWUodGhlKWgocClxKG9pbilvKHQuKTI4IGIoVGhpcykxOAotYihpcylnKGEpZihub24taW5jcmVtZW4pbyh0YWwpaShzZWFyYylvKGguKTI3IGIoQnkpMzE1Ci0yMDE2IHkoZGVmYXVsdCwpMTUgYih0aGlzKWgoY29tbWFuZClmKGlzKWgodW4pbyhiKXEob3VuZC4pNzUKLTIxMjAgeSBGbCh5YW5rLW50aC1hcmcpZShcKE0tQy15XCkpMzE1IDIxNzQgeSBGbShJbnNlcnQpZih0aGUpZwotKFwwMTRyc3QpZyhhcmd1bWVuKW8odClmKHRvKWcodGhlKWkocHJldmlvdXMpZihjb21tYW5kKWcoXCh1c3VhbGx5KWgKLSh0aGUpZihzZWNvbmQpaCh3KW8ob3JkKWUob24pMzE1IDIyMjkgeSh0aGUpaihwcmV2aW91cyloKGxpbmVcKSlnKGF0KWUKLShwKXEob2luKW8odC4pMjEgYihXaXRoKTE1IGIoYW4pZyhhcmd1bWVuKW8odClmIEZjKG4pcAotRm0oLCloKGluc2VydClnKHRoZSlnIEZjKG4pcCBGbSh0aClnKHcpbyhvcmQpZyhmcm9tKWYodGhlKTMxNQotMjI4NCB5KHByZXZpb3VzKWcoY29tbWFuZClnKFwodGhlKWYodylvKG9yZHMpZihpbilqKHRoZSllKHByZXZpb3VzKWkKLShjb21tYW5kKWUoYilxKGVnaW4paSh3aXRoKWUodylvKG9yZClnKDBcKS4pMTkgYihBKTMxNQotMjMzOSB5KG5lZ2F0aXYpbyhlKTEzIGIoYXJndW1lbilvKHQpZihpbnNlcnRzKWgodGhlKWcKLUZjKG4pcCBGbSh0aClnKHcpbyhvcmQpZihmcm9tKWcodGhlKWgoZW5kKWgob2YpZSh0aGUpaChwcmV2aW91cylnCi0oY29tbWFuZC4pNzUgMjQ0MiB5IEZsKHlhbmstbGFzdC1hcmcpZyhcKE0tLilpKG9yKWcoTS1fXCkpMzE1Ci0yNDk3IHkgRm0oSW5zZXJ0KWoobGFzdClmKGFyZ3VtZW4pbyh0KWcodG8pZyh0aGUpZyhwcmV2aW91cylpKGNvbW1hbmQpZQotKFwodGhlKWcobGFzdCloKHcpbyhvcmQpZihvZilnKHRoZSlnKHByZXZpb3VzKTMxNSAyNTUyCi15KGhpc3RvcnkpZShlbilvKHRyeVwpLikyMCBiKFdpdGgpMTUgYihhbilnKGFyZ3VtZW4pbyh0LClnKGIpcShlaGEpbyh2KQotbyhlKWcoZXhhY3RseSloKGxpaylvKGUpZyBGbCh5YW5rLW50aC1hcmcpcCBGbSguKWooU3VjY2VzLSkzMTUKLTI2MDYgeShzaXYpbyhlKWYoY2FsbHMpZyh0bylmIEZsKHlhbmstbGFzdC1hcmcpZSBGbShtbylvKHYpbyhlKWkoYmFjKW8KLShrKWcodGhyb3VnaClnKHRoZSlnKGhpc3RvcnkpZyhsaXN0LClpKGluc2VydGluZylmKHRoZSkzMTUKLTI2NjEgeShsYXN0KWQoYXJndW1lbilvKHQpZyhvZilmKGVhYylvKGgpaShsaW5lKWcoaW4pZyh0dXJuLilwCi1lb3AKLSUlUGFnZTogMTQgMTYKLTE0IDE1IGJvcCA3NSAtNTggYSBGbSgxNCkxMjk5IGIoR05VKTE1IGIoUmVhZGxpbmUpaChMaWJyYXJ5KTc1Ci0xNDkgeSBGYigxLjQuMykzMCBiKENvbW1hbmRzKTIxIGIoRiktNSBiKG9yKTE5IGIoQ2hhbmdpbmcpaShUKS01Ci1iKGV4dCk3NSAyODYgeSBGbChkZWxldGUtY2hhcikxNCBiKFwoQy1kXCkpMzE1IDM0MSB5Ci1GbShEZWxldGUpMjAgYih0aGUpZyhjKW8oaGFyYWN0ZXIpZShhdCloKHApcShvaW4pbyh0LikzMwotYihJZikyMCBiKHApcShvaW4pbyh0KWcoaXMpZyhhdCllKHRoZSlpKGIpcShlZ2lubmluZylpKG9mKWQodGhlKWcKLShsaW5lLClqKHRoZXJlKTMxNSAzOTYgeShhcmUpYyhubyloKGMpbyhoYXJhY3RlcnMpZShpbilqKHRoZSllKGxpbmUsKWoKLShhbmQpZSh0aGUpZihsYXN0KWgoYylvKGhhcmFjdGVyKWUodClvKHlwKXEoZWQpaSh3KW8oYXMpZihub3QpZyhiKXEKLShvdW5kKWkodG8pMzE1IDQ1MCB5IEZsKGRlbGV0ZS1jaGFyKXAgRm0oLCkxMyBiKHRoZW4paihyZXR1cm4pZgotRmgoZW9mKXAgRm0oLik3NSA1NTIgeSBGbChiYWNrd2FyZC1kZWxldGUtY2hhcilkKFwoUnVib3V0XCkpMzE1Ci02MDcgeSBGbShEZWxldGUpayh0aGUpZihjKW8oaGFyYWN0ZXIpZihiKXEoZWhpbmQpaih0aGUpZihjdXJzb3IuKWooQSljCi0obilvKHVtZXJpYyloKGFyZ3VtZW4pbyh0KWUobWVhbnMpaSh0byllKGtpbGwpaih0aGUpMzE1Ci02NjEgeShjKW8oaGFyYWN0ZXJzKWQoaW5zdGVhZClpKG9mKWYoZGVsZXRpbmcpaSh0aGVtLik3NQotNzYzIHkgRmwoZm9yd2FyZC1iYWNrd2FyZC1kZWxldGUtY2gpbyhhcikxMiBiKFwoXCkpMzE1Ci04MTggeSBGbShEZWxldGUpMjAgYih0aGUpZihjKW8oaGFyYWN0ZXIpZih1bmRlcilpKHRoZSlmKGN1cnNvciwpaAotKHVubGVzcylnKHRoZSlmKGN1cnNvcilnKGlzKWgoYXQpZSh0aGUpaChlbmQpaChvZilmKHRoZSkzMTUKLTg3MiB5KGxpbmUsKWUoaW4pZyh3aGljKW8oaClnKGNhc2UpZSh0aGUpaChjKW8oaGFyYWN0ZXIpZyhiKXEoZWhpbmQpaAotKHRoZSlmKGN1cnNvcilnKGlzKWcoZGVsZXRlZC4pMjMgYihCeSkxNiBiKGRlZmF1bHQsKWgodGhpcykzMTUKLTkyNyB5KGlzKWYobm90KWYoYilxKG91bmQpaCh0byllKGEpaChrKW8oZXkpbCguKTc1IDEwMjkKLXkgRmwocXVvdGVkLWluc2VydCllKFwoQy1xKWkob3IpZyhDLXZcKSkzMTUgMTA4MyB5IEZtKEFkZClqKHRoZSlmKG5leHQpCi1nKGMpbyhoYXJhY3RlcilnKHQpbyh5cClxKGVkKWcodG8pZih0aGUpaShsaW5lKWcodilvKGVyYmF0aW0uKTI2Ci1iKFRoaXMpMTggYihpcylmKGhvKW8odylnKHRvKWcoaW5zZXJ0KWcoaylvKGV5KTMxNSAxMTM4Ci15KHNlcXVlbmNlcylmKGxpaylvKGUpaCBGZyhDLXEpcCBGbSgsKWQoZm9yKWgoZXhhbXBsZS4pNzUKLTEyNDAgeSBGbCh0YWItaW5zZXJ0KWYoXChNLSk0MDEgMTIzOCB5IEZmKGgpcCA0MTIgMTIxMgotNzQgMiB2IDQxMiAxMjQwIGEgRmUoVCltKEFCKXAgNDEyIDEyNDcgViA0ODQgMTIzOCBhIEZmKGkpNDk5Ci0xMjQwIHkgRmwoXCkpMzE1IDEyOTQgeSBGbShJbnNlcnQpaChhKWcodGFiKWcoYylvKGhhcmFjdGVyLik3NQotMTM5NiB5IEZsKHNlbGYtaW5zZXJ0KWYoXChhLClnKGIsKWgoQSwpZygxLClnKCEsKWcoLi4uKW8oXCkpMzE1Ci0xNDUxIHkgRm0oSW5zZXJ0KWcoeSlvKG91cnNlbGYuKTc1IDE1NTIgeSBGbCh0cmFuc3Bvc2UtY2hhcnMpZShcKEMtdFwpKQotMzE1IDE2MDcgeSBGbShEcmFnKWkodGhlKWgoYylvKGhhcmFjdGVyKWYoYilxKGVmb3JlKWgodGhlKWgoY3Vyc29yKWUKLShmb3J3KW8oYXJkKWcobylvKHYpbyhlcilnKHRoZSloKGMpbyhoYXJhY3RlcilmKGF0KWgodGhlKWcoY3Vyc29yLCkzMTUKLTE2NjIgeShtbylvKHZpbmcpaSh0aGUpZihjdXJzb3IpaChmb3J3KW8oYXJkKWUoYXMpaSh3KW8oZWxsLikyOAotYihJZikxOCBiKHRoZSlnKGluc2VydGlvbiloKHApcShvaW4pbyh0KWYoaXMpZyhhdClmKHRoZSloKGVuZCloKG9mKWUKLSh0aGUpMzE1IDE3MTYgeShsaW5lLCljKHRoZW4pZSh0aGlzKWgodHJhbnNwKXEob3NlcyllKHRoZSloKGxhc3QpZyh0KW8KLSh3KW8obylmKGMpbyhoYXJhY3RlcnMpZyhvZiloKHRoZSlnKGxpbmUuKTIwIGIoTmVnYXRpdilvKGUpMTEKLWIoYXJndW1lbilvKHRzKTMxNSAxNzcxIHkoaGEpbyh2KW8oZSlrKG5vKWcoZVwwMTNlY3QuKTc1Ci0xODczIHkgRmwodHJhbnNwb3NlLXdvcmRzKWUoXChNLXRcKSkzMTUgMTkyNyB5IEZtKERyYWcpaSh0aGUpaCh3KW8ob3JkKQotZyhiKXEoZWZvcmUpZyhwKXEob2luKW8odCloKHBhc3QpZih0aGUpZyh3KW8ob3JkKWYoYWZ0ZXIpaChwKXEob2luKW8KLSh0LClnKG1vKW8odmluZylnKHApcShvaW4pbyh0KWgocGFzdClmKHRoYXQpMzE1IDE5ODIKLXkodylvKG9yZClkKGFzKWgodylvKGVsbC4pMjEgYihJZikxNCBiKHRoZSlnKGluc2VydGlvbilpKHApcShvaW4pbyh0KWUKLShpcyloKGF0KWYodGhlKWcoZW5kKWgob2YpZSh0aGUpaShsaW5lLClnKHRoaXMpZyh0cmFuc3ApcShvc2VzKWYodGhlKQotMzE1IDIwMzcgeShsYXN0KWgodClvKHcpbyhvKWYodylvKG9yZHMpZyhvbilpKHRoZSlmKGxpbmUuKTc1Ci0yMTM4IHkgRmwodXBjYXNlLXdvcmQpZihcKE0tdVwpKTMxNSAyMTkzIHkgRm0oVXBwKXEoZXJjYXNlKWoodGhlKWYKLShjdXJyZW4pbyh0KWcoXChvcilmKGZvbGxvKW8od2luZ1wpKWgodylvKG9yZC4pMjIgYihXaXRoKTE2Ci1iKGEpZyhuZWdhdGl2KW8oZSlnKGFyZ3VtZW4pbyh0LClmKHVwcClxKGVyLSkzMTUgMjI0OAoteShjYXNlKWcodGhlKWcocHJldmlvdXMpaCh3KW8ob3JkLClmKGJ1dClnKGRvKWcobm90KWcobW8pbyh2KW8oZSlmKHRoZSkKLWkoY3Vyc29yLik3NSAyMzQ5IHkgRmwoZG93bmNhc2Utd29yZClkKFwoTS1sXCkpMzE1IDI0MDQKLXkgRm0oTG8pbyh3KW8oZXJjYXNlKWQodGhlKWgoY3VycmVuKW8odClnKFwob3IpZihmb2xsbylvKHdpbmdcKSloKHcpbwotKG9yZC4pMTcgYihXaXRoKTExIGIoYSlnKG5lZ2F0aXYpbyhlKWcoYXJndW1lbilvKHQsKWYobG8pbyh3KW8oZXJjYXNlKQotMzE1IDI0NTkgeSh0aGUpMTUgYihwcmV2aW91cyloKHcpbyhvcmQsKWUoYnV0KWkoZG8pZihub3QpZyhtbylvKHYpbyhlKWYKLSh0aGUpaChjdXJzb3IuKTc1IDI1NjAgeSBGbChjYXBpdGFsaXplLXdvcmQpZShcKE0tY1wpKTMxNQotMjYxNSB5IEZtKENhcGl0YWxpemUpZih0aGUpZihjdXJyZW4pbyh0KWYoXChvcilnKGZvbGxvKW8od2luZ1wpKWgodylvCi0ob3JkLikxOCBiKFdpdGgpMTEgYihhKWYobmVnYXRpdilvKGUpaChhcmd1bWVuKW8odCwpZihjYXBpdGFsaXplKTMxNQotMjY3MCB5KHRoZSkxNSBiKHByZXZpb3VzKWgodylvKG9yZCwpZShidXQpaShkbylmKG5vdClnKG1vKW8odilvKGUpZgotKHRoZSloKGN1cnNvci4pcCBlb3AKLSUlUGFnZTogMTUgMTcKLTE1IDE2IGJvcCA3NSAtNTggYSBGbShDaGFwdGVyKTE1IGIoMTopayhDb21tYW5kKWMoTGluZSlpKEVkaXRpbmcpMTA1NQotYigxNSk3NSAxNDkgeSBGbChvdmVyd3JpdGUtbW9kZSkxMyBiKFwoXCkpMzE1IDIwNCB5IEZtKFQpbChvZ2dsZSlqKG8pbwotKHYpbyhlcndyaXRlKWcobW8pcShkZS4pMjQgYihXaXRoKTE3IGIoYW4pZihleHBsaWNpdClqKHApcShvc2l0aXYpbyhlKWYKLShuKW8odW1lcmljKWYoYXJndW1lbilvKHQsKWYoc3dpdGMpbyhoZXMpMzE1IDI1OSB5KHRvKTEwCi1iKG8pbyh2KW8oZXJ3cml0ZSlnKG1vKXEoZGUuKTE5IGIoV2l0aCkxMSBiKGFuKWcoZXhwbGljaXQpaShub24tcClxCi0ob3NpdGl2KW8oZSlmKG4pbyh1bWVyaWMpZyhhcmd1bWVuKW8odCwpZShzd2l0YylvKGhlcylpKHRvKTMxNQotMzE0IHkoaW5zZXJ0KWsobW8pcShkZS4payhUaGlzKWMoY29tbWFuZClmKGFcMDEzZWN0cylnKG9ubHkpaAotRmwoZW1hY3MpZSBGbShtbylxKGRlOyloIEZsKHZpKWcgRm0obW8pcShkZSloKGRvKXEoZXMpZyhvKW8odilvCi0oZXJ3cml0ZSkzMTUgMzY5IHkoZGlcMDEzZXJlbilvKHRseSlsKC4pMjEgYihFYWMpbyhoKTE1Ci1iKGNhbGwpaCh0bylmIEZsKHJlYWRsaW5lXChcKSlmIEZtKHN0YXJ0cylmKGluKWsoaW5zZXJ0KWUobW8pcShkZS4pMzE1Ci00MzYgeShJbilnKG8pbyh2KW8oZXJ3cml0ZSlmKG1vKXEoZGUsKWgoYylvKGhhcmFjdGVycylmKGIpcShvdW5kKWgodG8pZgotRmwoc2VsZi1pbnNlcnQpZiBGbShyZXBsYWNlKWoodGhlKWUodGV4dCloKGF0KWUocClxKG9pbilvKHQpMzE1Ci00OTEgeShyYXRoZXIpMjAgYih0aGFuKWgocHVzaGluZyloKHRoZSlmKHRleHQpZih0bylnKHRoZSloKHJpZ2gpbyh0LikzNgotYihDaGFyYWN0ZXJzKTIwIGIoYilxKG91bmQpaSh0byllIEZsKGJhY2t3YXJkLSkzMTUgNTQ2Ci15KGRlbGV0ZS1jaGFyKTE0IGIgRm0ocmVwbGFjZSlpKHRoZSlmKGMpbyhoYXJhY3RlcilnKGIpcShlZm9yZSlnKHApcQotKG9pbilvKHQpaCh3aXRoKWYoYSlnKHNwYWNlLikzMTUgNjE0IHkoQnkpZyhkZWZhdWx0LCloKHRoaXMpZihjb21tYW5kKWcKLShpcyloKHVuKW8oYilxKG91bmQuKTc1IDcyOSB5IEZiKDEuNC40KTMwIGIoS2lsbGluZykyMAotYihBbmQpaChZKS01IGIoYW5raW5nKTc1IDg1MyB5IEZsKGtpbGwtbGluZSkxNCBiKFwoQy1rXCkpMzE1Ci05MDggeSBGbShLaWxsKWoodGhlKWYodGV4dCllKGZyb20paChwKXEob2luKW8odCloKHRvKWUodGhlKWgoZW5kKWgob2YpZgotKHRoZSlnKGxpbmUuKTc1IDEwMDIgeSBGbChiYWNrd2FyZC1raWxsLWxpbmUpZShcKEMteCloKFJ1Ym91dFwpKTMxNQotMTA1NyB5IEZtKEtpbGwpaihiYWMpbyhrdylvKGFyZCllKHRvKWYodGhlKWkoYilxKGVnaW5uaW5nKWgob2YpZSh0aGUpZwotKGxpbmUuKTc1IDExNTEgeSBGbCh1bml4LWxpbmUtZGlzY2FyZCllKFwoQy11XCkpMzE1IDEyMDUKLXkgRm0oS2lsbClrKGJhYylvKGt3KW8oYXJkKWUoZnJvbSlmKHRoZSlpKGN1cnNvcillKHRvKWgodGhlKWcoYilxCi0oZWdpbm5pbmcpaihvZiljKHRoZSlpKGN1cnJlbilvKHQpZihsaW5lLik3NSAxMjk5IHkgRmwoa2lsbC13aG9sZS1saW5lKQotZShcKFwpKTMxNSAxMzU0IHkgRm0oS2lsbCkyMCBiKGFsbClnKGMpbyhoYXJhY3RlcnMpZChvbiloKHRoZSloKGN1cnJlbikKLW8odClmKGxpbmUsKWkobm8pZShtYXR0ZXIpZyh3aGVyZSlnKHApcShvaW4pbyh0KWgoaXMuKTI5Ci1iKEJ5KTE5IGIoZGVmYXVsdCwpMzE1IDE0MDkgeSh0aGlzKWQoaXMpZih1bilvKGIpcShvdW5kLik3NQotMTUwMyB5IEZsKGtpbGwtd29yZClmKFwoTS1kXCkpMzE1IDE1NTggeSBGbShLaWxsKWooZnJvbSlkKHApcShvaW4pbyh0KWgKLSh0bylmKHRoZSloKGVuZClnKG9mKWYodGhlKWgoY3VycmVuKW8odClnKHcpbyhvcmQsKWUob3IpaShpZilnKGIpcShldClvCi0odylvKGVlbilnKHcpbyhvcmRzLCllKHRvKWkodGhlKWYoZW5kKTMxNSAxNjEzIHkob2YpaCh0aGUpZyhuZXh0KWcodylvCi0ob3JkLikyMCBiKFcpbChvcmQpMTQgYihiKXEob3VuZGFyaWVzKWooYXJlKWUodGhlKWcoc2FtZSlnKGFzKWcKLUZsKGZvcndhcmQtd29yZClwIEZtKC4pNzUgMTcwNyB5IEZsKGJhY2t3YXJkLWtpbGwtd29yZCllKFwoTS0pNTkyCi0xNzA1IHkgRmYoaClwIDYwMyAxNjc5IDczIDIgdiA2MDMgMTcwNyBhIEZlKERFTClwIDYwMwotMTcxNCBWIDY3NCAxNzA1IGEgRmYoaSk2ODkgMTcwNyB5IEZsKFwpKTMxNSAxNzYxIHkgRm0oS2lsbClrKHRoZSlkKHcpbwotKG9yZClnKGIpcShlaGluZClpKHApcShvaW4pbyh0LikyMSBiKFcpbChvcmQpMTQgYihiKXEob3VuZGFyaWVzKWgoYXJlKWYKLSh0aGUpaChzYW1lKWYoYXMpZyBGbChiYWNrd2FyZC13b3JkKXAgRm0oLik3NSAxODU1IHkKLUZsKHVuaXgtd29yZC1ydWJvdXQpZihcKEMtd1wpKTMxNSAxOTEwIHkgRm0oS2lsbCkxOCBiKHRoZSllKHcpbyhvcmQpZgotKGIpcShlaGluZClqKHApcShvaW4pbyh0LCllKHVzaW5nKWgod2hpdGUpZihzcGFjZSlnKGFzKWcoYSlmKHcpbyhvcmQpZwotKGIpcShvdW5kYXJ5KWwoLikyMyBiKFRoZSkxNiBiKGtpbGxlZCkzMTUgMTk2NSB5KHRleHQpZihpcylnKHNhKW8odilvCi0oZWQpZyhvbilnKHRoZSloKGtpbGwtcmluZy4pNzUgMjA1OSB5IEZsKGRlbGV0ZS1ob3Jpem9udGFsLXNwYWNlKWMKLShcKFwpKTMxNSAyMTE0IHkgRm0oRGVsZXRlKWsoYWxsKWcoc3BhY2VzKWYoYW5kKWgodGFicyllKGFyb3VuZClpKHApcQotKG9pbilvKHQuKWsoQnkpMTUgYihkZWZhdWx0LCloKHRoaXMpZihpcyloKHVuKW8oYilxKG91bmQuKTc1Ci0yMjA4IHkgRmwoa2lsbC1yZWdpb24pZShcKFwpKTMxNSAyMjYzIHkgRm0oS2lsbClqKHRoZSlmKHRleHQpZShpbilpCi0odGhlKWcoY3VycmVuKW8odClmKHJlZ2lvbi4pMjAgYihCeSkxNSBiKGRlZmF1bHQsKWgodGhpcylmKGNvbW1hbmQpZwotKGlzKWgodW4pbyhiKXEob3VuZC4pNzUgMjM1NyB5IEZsKGNvcHktcmVnaW9uLWFzLWtpbGwpZChcKFwpKTMxNQotMjQxMiB5IEZtKENvcClvKHkpaih0aGUpaSh0ZXh0KWUoaW4paSh0aGUpZihyZWdpb24pZyh0bylnKHRoZSlnKGtpbGwpaAotKGJ1XDAxM2VyLClmKHNvKWcoaXQpZyhjYW4pZyhiKXEoZSloKHkpbyhhbmspbyhlZClmKHJpZ2gpbyh0KWcoYSlvKHcpbwotKGEpbyh5KWwoLikzMTUgMjQ2NiB5KEJ5KWUoZGVmYXVsdCwpaCh0aGlzKWYoY29tbWFuZClnKGlzKWgodW4pbyhiKXEKLShvdW5kLik3NSAyNTYwIHkgRmwoY29weS1iYWNrd2FyZC13b3JkKWQoXChcKSkzMTUgMjYxNQoteSBGbShDb3Apbyh5KTE5IGIodGhlKWcodylvKG9yZClnKGIpcShlZm9yZSlnKHApcShvaW4pbyh0KWgodG8pZSh0aGUpaQotKGtpbGwpaChidVwwMTNlci4pMzIgYihUaGUpMTkgYih3KW8ob3JkKWcoYilxKG91bmRhcmllcyloKGFyZSlmKHRoZSkzMTUKLTI2NzAgeShzYW1lKWMoYXMpZyBGbChiYWNrd2FyZC13b3JkKXAgRm0oLilqKEJ5KWQoZGVmYXVsdCwpZyh0aGlzKWgKLShjb21tYW5kKWYoaXMpaCh1bilvKGIpcShvdW5kLilwIGVvcAotJSVQYWdlOiAxNiAxOAotMTYgMTcgYm9wIDc1IC01OCBhIEZtKDE2KTEyOTkgYihHTlUpMTUgYihSZWFkbGluZSloKExpYnJhcnkpNzUKLTE0OSB5IEZsKGNvcHktZm9yd2FyZC13b3JkKWQoXChcKSkzMTUgMjA0IHkgRm0oQ29wKW8oeSlpKHRoZSloKHcpbyhvcmQpCi1lKGZvbGxvKW8od2luZylqKHApcShvaW4pbyh0KWYodG8pZih0aGUpZyhraWxsKWooYnVcMDEzZXIuKWkoVGhlKWModylvCi0ob3JkKWYoYilxKG91bmRhcmllcylpKGFyZSllKHRoZSkzMTUgMjU5IHkoc2FtZSlnKGFzKWcKLUZsKGZvcndhcmQtd29yZClwIEZtKC4paihCeSlkKGRlZmF1bHQsKWgodGhpcylmKGNvbW1hbmQpZyhpcyloKHVuKW8oYilxCi0ob3VuZC4pNzUgMzQyIHkgRmwoeWFuaylmKFwoQy15XCkpMzE1IDM5NyB5IEZtKFkpbChhbmspZyh0aGUpaCh0b3ApZgotKG9mKWYodGhlKWkoa2lsbCloKHJpbmcpZShpbilvKHRvKWcodGhlKWgoYnVcMDEzZXIpZihhdClmKHApcShvaW4pbyh0LikKLTc1IDQ4MSB5IEZsKHlhbmstcG9wKWcoXChNLXlcKSkzMTUgNTM1IHkgRm0oUm90YXRlKWkodGhlKWgoa2lsbC1yaW5nLClqCi0oYW5kKWQoeSlvKGFuaylnKHRoZSloKG5ldylmKHRvcC4pMjYgYihZKWwob3UpMTcgYihjYW4paChvbmx5KWcoZG8pZgotKHRoaXMpaChpZilmKHRoZSloKHByaW9yKTMxNSA1OTAgeShjb21tYW5kKWQoaXMpaCBGbCh5YW5rKWUKLUZtKG9yKWggRmwoeWFuay1wb3ApcCBGbSguKTc1IDY5MyB5IEZiKDEuNC41KTMwIGIoU3ApcihlY2lmeWluZykyMAotYihOdW1lcmljKWgoQXJndW1lbiluKHRzKTc1IDgwNiB5IEZsKGRpZ2l0LWFyZ3VtZW50KTEzCi1iKFwoKXAgRmcoTS0wKXAgRmwoLClpIEZnKE0tMSlwIEZsKCwpZiguLi4paCBGZyhNLS0pcAotRmwoXCkpMzE1IDg2MSB5IEZtKEFkZClmKHRoaXMpZyhkaWdpdClnKHRvKWYodGhlKWgoYXJndW1lbilvKHQpZQotKGFscmVhZHkpaShhY2N1bSlvKHVsYXRpbmcsKWcob3IpZihzdGFydClmKGEpaChuZXcpaChhcmd1bWVuKW8odC4pMzE1Ci05MTUgeSBGZyhNLS0paCBGbShzdGFydHMpZihhKWgobmVnYXRpdilvKGUpZyhhcmd1bWVuKW8odC4pNzUKLTk5OSB5IEZsKHVuaXZlcnNhbC1hcmd1bWVudCllKFwoXCkpMzE1IDEwNTQgeSBGbShUaGlzKWcoaXMpaChhbm90aGVyKWUKLSh3KW8oYSlvKHkpZyh0bylnKHNwKXEoZWNpZnkpaShhbilmKGFyZ3VtZW4pbyh0LikxOCBiKElmKTEzCi1iKHRoaXMpZyhjb21tYW5kKWcoaXMpZyhmb2xsbylvKHcpbyhlZClnKGIpbyh5KWcob25lKTMxNQotMTEwOCB5KG9yKWgobW9yZSloKGRpZ2l0cywpZyhvcHRpb25hbGx5KWgod2l0aClmKGEpZyhsZWFkaW5nKWgobWluKW8KLSh1cylmKHNpZ24sKWcodGhvc2UpZyhkaWdpdHMpZyhkZVwwMTRuZSloKHRoZSlmKGFyLSkzMTUKLTExNjMgeShndW1lbilvKHQuKWsoSWYpYyh0aGUpZyhjb21tYW5kKWYoaXMpaChmb2xsbylvKHcpbyhlZClnKGIpbyh5KWcKLShkaWdpdHMsKWcoZXhlY3V0aW5nKWcgRmwodW5pdmVyc2FsLWFyZ3VtZW50KTMxNSAxMjE4Ci15IEZtKGFnYWluKWgoZW5kcylnKHRoZSlnKG4pbyh1bWVyaWMpaChhcmd1bWVuKW8odCwpZShidXQpaChpcyloCi0ob3RoZXJ3aXNlKWYoaWdub3JlZC4pMjIgYihBcykxNiBiKGEpZyhzcClxKGVjaWFsKWgoY2FzZSwpMzE1Ci0xMjczIHkoaWYpZyh0aGlzKWcoY29tbWFuZClmKGlzKWgoaW1tZWRpYXRlbHkpaChmb2xsbylvKHcpbyhlZClmKGIpbyh5KQotZihhKWcoYylvKGhhcmFjdGVyKWcodGhhdClnKGlzKWgobmVpdGhlcilnKGEpZihkaWdpdCkzMTUKLTEzMjggeShvcilkKG1pbilvKHVzKWkoc2lnbiwpZih0aGUpZyhhcmd1bWVuKW8odClnKGNvdW4pbyh0KWYoZm9yKWgKLSh0aGUpZyhuZXh0KWcoY29tbWFuZClnKGlzKWcobSlvKHVsdGlwbGllZClqKGIpbyh5KWQoZm91ci4pMzE1Ci0xMzgyIHkoVGhlKTE5IGIoYXJndW1lbilvKHQpZihjb3VuKW8odClnKGlzKWgoaW5pdGlhbGx5KWoob25lLClkKHNvKWYKLShleGVjdXRpbmcpaSh0aGlzKWYoZnVuY3Rpb24paCh0aGUpZShcMDE0cnN0KWgodGltZSkzMTUKLTE0MzcgeShtYWspbyhlcyljKHRoZSloKGFyZ3VtZW4pbyh0KWYoY291bilvKHQpaChmb3VyLClmKGEpaChzZWNvbmQpZwotKHRpbWUpZyhtYWspbyhlcylnKHRoZSlnKGFyZ3VtZW4pbyh0KWYoY291bilvKHQpZyhzaXgtKTMxNQotMTQ5MiB5KHRlZW4sKWcoYW5kKWcoc28pZyhvbi4pMjAgYihCeSkxNSBiKGRlZmF1bHQsKWgodGhpcylmKGlzKWgobm90KWYKLShiKXEob3VuZCloKHRvKWYoYSlnKGspbyhleSlsKC4pNzUgMTU5NSB5IEZiKDEuNC42KTMwCi1iKExldHRpbmcpMjAgYihSZWFkbGluZSlnKFQpbih5cClyKGUpaChGKS01IGIob3IpMTkgYihZKS01Ci1iKG91KTc1IDE3MDggeSBGbChjb21wbGV0ZSkxNCBiKFwoKTMwNSAxNzA2IHkgRmYoaClwCi0zMTcgMTY4MCA3NCAyIHYgMzE3IDE3MDggYSBGZShUKW0oQUIpcCAzMTcgMTcxNSBWIDM4OQotMTcwNiBhIEZmKGkpNDA0IDE3MDggeSBGbChcKSkzMTUgMTc2MiB5IEZtKEEpbyh0dGVtcHQpYyh0byloKHApcQotKGVyZm9ybSlnKGNvbXBsZXRpb24paShvbillKHRoZSlnKHRleHQpZyhiKXEoZWZvcmUpaChwKXEob2luKW8odC4pMTkKLWIoVGhlKTExIGIoYWN0dWFsKWgoY29tcGxldGlvbikzMTUgMTgxNyB5KHApcShlcmZvcm1lZClqKGlzKWgKLShhcHBsaWNhdGlvbi1zcClxKGVjaVwwMTQpcShjLikyMyBiKFRoZSkxNSBiKGRlZmF1bHQpaChpcylnKFwwMTRsZW5hbWUpCi1nKGNvbXBsZXRpb24uKTc1IDE5MDEgeSBGbChwb3NzaWJsZS1jb21wbGV0aW9ucyljKFwoTS0/XCkpMzE1Ci0xOTU1IHkgRm0oTGlzdClrKHRoZSlmKHApcShvc3NpYmxlKWkoY29tcGxldGlvbnMpZihvZilmKHRoZSlnKHRleHQpZyhiKQotcShlZm9yZSloKHApcShvaW4pbyh0Lik3NSAyMDM5IHkgRmwoaW5zZXJ0LWNvbXBsZXRpb25zKWQoXChNLSpcKSkzMTUKLTIwOTMgeSBGbShJbnNlcnQpaihhbGwpZyhjb21wbGV0aW9ucylnKG9mKWYodGhlKWcodGV4dClnKGIpcShlZm9yZSloKHApCi1xKG9pbilvKHQpZih0aGF0KWcodylvKG91bGQpaChoYSlvKHYpbyhlKWYoYilxKGVlbiloKGdlbmVyYXRlZCkzMTUKLTIxNDggeShiKW8oeSlmIEZsKHBvc3NpYmxlLWNvbXBsZXRpb25zKXAgRm0oLik3NSAyMjMyCi15IEZsKG1lbnUtY29tcGxldGUpZShcKFwpKTMxNSAyMjg2IHkgRm0oU2ltaWxhcilnKHRvKWYKLUZsKGNvbXBsZXRlKXAgRm0oLClmKGJ1dCloKHJlcGxhY2VzKWgodGhlKWYodylvKG9yZClmKHRvKWcoYilxKGUpaQotKGNvbXBsZXRlZClmKHdpdGgpaChhKWUoc2luZ2xlKWoobWF0YylvKGgpMzE1IDIzNDEgeShmcm9tKWsodGhlKWgobGlzdCkKLWgob2YpZShwKXEob3NzaWJsZSlqKGNvbXBsZXRpb25zLikzMiBiKFJlcClxKGVhdGVkKTE5Ci1iKGV4ZWN1dGlvbiloKG9mKWYgRmwobWVudS1jb21wbGV0ZSkzMTUgMjM5NiB5IEZtKHN0ZXBzKWgodGhyb3VnaClnCi0odGhlKWcobGlzdCloKG9mKWYocClxKG9zc2libGUpaShjb21wbGV0aW9ucywpZyhpbnNlcnRpbmcpZihlYWMpbyhoKWYKLShtYXRjKW8oaClmKGluKWkodHVybi4pMzE1IDI0NTEgeShBKW8odClkKHRoZSlnKGVuZCloKG9mKWYodGhlKWgobGlzdClnCi0ob2YpZihjb21wbGV0aW9ucywpaSh0aGUpZShiKXEoZWxsKWooaXMpZChydW5nKWgoXChzdWIpcyhqZWN0KWYodG8pZgotKHRoZSlpKHNldHRpbmcpMzE1IDI1MDYgeShvZilmIEZsKGJlbGwtc3R5bGUpcCBGbShcKSllKGFuZClpKHRoZSlnCi0ob3JpZ2luYWwpaCh0ZXh0KWYoaXMpZyhyZXN0b3JlZC4pMjggYihBbikxOSBiKGFyZ3VtZW4pbyh0KWUob2YpZwotRmMobilpIEZtKG1vKW8odilvKGVzKWUgRmMobikzMTUgMjU2MCB5IEZtKHApcShvc2l0aW9ucyloKGZvcncpbyhhcmQpZQotKGluKWoodGhlKWUobGlzdCloKG9mKWYobWF0YylvKGhlczspaChhKWYobmVnYXRpdilvKGUpZyhhcmd1bWVuKW8odClnCi0obWEpbyh5KWcoYilxKGUpaCh1c2VkKWcodG8pMzE1IDI2MTUgeShtbylvKHYpbyhlKWcoYmFjKW8oa3cpbyhhcmQpaAotKHRocm91Z2gpZyh0aGUpZyhsaXN0LikzMiBiKFRoaXMpMjAgYihjb21tYW5kKWYoaXMpaChpbilvKHRlbmRlZClnKHRvKWYKLShiKXEoZSloKGIpcShvdW5kKWcodG8pMzE1IDI2NjggeSBGZihoKXAgMzI3IDI2NDIgViAzMjcKLTI2NzAgYSBGZShUKW0oQUIpcCAzMjcgMjY3OCBWIDM5OSAyNjY4IGEgRmYoaSk0MTQgMjY3MAoteSBGbSgsKTE1IGIoYnV0KWcoaXMpaCh1bilvKGIpcShvdW5kKWcoYilvKHkpZihkZWZhdWx0LilwCi1lb3AKLSUlUGFnZTogMTcgMTkKLTE3IDE4IGJvcCA3NSAtNTggYSBGbShDaGFwdGVyKTE1IGIoMTopayhDb21tYW5kKWMoTGluZSlpKEVkaXRpbmcpMTA1NQotYigxNyk3NSAxNDkgeSBGbChkZWxldGUtY2hhci1vci1saXN0KTEzIGIoXChcKSkzMTUgMjA0Ci15IEZtKERlbGV0ZXMpaCh0aGUpZihjKW8oaGFyYWN0ZXIpZyh1bmRlciloKHRoZSlnKGN1cnNvcilmKGlmKWgobm90KWYKLShhdClnKHRoZSlnKGIpcShlZ2lubmluZylqKG9yKWQoZW5kKWgob2YpZih0aGUpZyhsaW5lKTMxNQotMjU5IHkoXChsaWspbyhlKWkgRmwoZGVsZXRlLWNoYXIpcCBGbShcKS4paihJZilkKGF0KWYodGhlKWgoZW5kKWcob2YpZgotKHRoZSlnKGxpbmUsKWkoYilxKGVoYSlvKHYpbyhlcylmKGlkZW4pbyh0aWNhbGx5KWkodG8pZAotRmwocG9zc2libGUtKTMxNSAzMTQgeShjb21wbGV0aW9ucylwIEZtKC4payhUaGlzKWUoY29tbWFuZClmKGlzKWgodW4pbwotKGIpcShvdW5kKWcoYilvKHkpZihkZWZhdWx0Lik3NSA0MjggeSBGYigxLjQuNykzMCBiKEtleWIpcihvYXJkKTIwCi1iKE1hY3Jvcyk3NSA1NTEgeSBGbChzdGFydC1rYmQtbWFjcm8pMTMgYihcKEMteClpKFwoXCkpMzE1Ci02MDYgeSBGbShCZWdpbiloKHNhKW8odmluZylmKHRoZSloKGMpbyhoYXJhY3RlcnMpZSh0KW8oeXApcShlZClpKGluKW8KLSh0bylmKHRoZSlnKGN1cnJlbilvKHQpZyhrKW8oZXliKXEob2FyZClnKG1hY3JvLik3NSA2OTkKLXkgRmwoZW5kLWtiZC1tYWNybyllKFwoQy14KWkoXClcKSkzMTUgNzU0IHkgRm0oU3RvcClmKHNhKW8odmluZylmKHRoZSloCi0oYylvKGhhcmFjdGVycylmKHQpbyh5cClxKGVkKWgoaW4pbyh0bylmKHRoZSloKGN1cnJlbilvKHQpZyhrKW8oZXliKXEKLShvYXJkKWYobWFjcm8pZyhhbmQpaChzYSlvKHYpbyhlKWYodGhlKTMxNSA4MDkgeShkZVwwMTRuaXRpb24uKTc1Ci05MDIgeSBGbChjYWxsLWxhc3Qta2JkLW1hY3JvKWcoXChDLXgpaChlXCkpMzE1IDk1NyB5Ci1GbShSZS1leGVjdXRlKWsodGhlKWcobGFzdClmKGspbyhleWIpcShvYXJkKWgobWFjcm8pZihkZVwwMTRuZWQsKWkoYilvCi0oeSllKG1ha2luZyloKHRoZSlnKGMpbyhoYXJhY3RlcnMpZShpbilqKHRoZSkzMTUgMTAxMgoteShtYWNybykxNCBiKGFwcClxKGVhcilpKGFzKWYoaWYpZyh0KW8oeXApcShlZCloKGF0KWUodGhlKWkoaylvKGV5YilxCi0ob2FyZC4pNzUgMTEyNiB5IEZiKDEuNC44KTMwIGIoU29tZSkyMCBiKE1pc2NlbGxhbmVvdXMpaChDb21tYW5kcyk3NQotMTI0OSB5IEZsKHJlLXJlYWQtaW5pdC1maWxlKTEzIGIoXChDLXgpaChDLXJcKSkzMTUgMTMwNAoteSBGbShSZWFkKWQoaW4pZyh0aGUpZyhjb24pbyh0ZW4pbyh0cylnKG9mKWYodGhlKWggRmMoaW5wdXRyYylrCi1GbShcMDE0bGUsKWQoYW5kKWcoaW5jb3JwKXEob3JhdGUpZihhbilvKHkpZihiaW5kaW5ncylqKG9yKWUodiltCi0oYXJpYWJsZSkzMTUgMTM1OCB5KGFzc2lnbm1lbilvKHRzKWsoZm91bmQpaCh0aGVyZS4pNzUKLTE0NTIgeSBGbChhYm9ydCllKFwoQy1nXCkpMzE1IDE1MDcgeSBGbShBYilxKG9ydClmKHRoZSlnKGN1cnJlbilvKHQpaAotKGVkaXRpbmcpZyhjb21tYW5kKWYoYW5kKWgocmluZylmKHRoZSloKHRlcm1pbmFsJ3MpZihiKXEoZWxsKWkoXChzdWIpcwotKGplY3QpZSh0bylnKHRoZSkzMTUgMTU2MSB5KHNldHRpbmcpaShvZilnIEZsKGJlbGwtc3R5bGUpcAotRm0oXCkuKTc1IDE2NTUgeSBGbChkby11cHBlcmNhc2UtdmVyc2lvbilkKFwoTS1hLClqKE0tYiwpZihNLSlwCi1GYyh4KXAgRmwoLCloKC4uLlwpKTMxNSAxNzEwIHkgRm0oSWYpZih0aGUpZyhtZXRhXDAxNGVkKWcoYylvKGhhcmFjdGVyKQotZiBGYyh4KWsgRm0oaXMpZChsbylvKHcpbyhlcmNhc2UsKWcocnVuKWcodGhlKWcoY29tbWFuZClmKHRoYXQpaChpcylnCi0oYilxKG91bmQpaCh0byllKHRoZSkzMTUgMTc2NCB5KGNvcnJlc3ApcShvbmRpbmcpaih1cHApcShlcmNhc2UpZyhjKW8KLShoYXJhY3Rlci4pNzUgMTg1OCB5IEZsKHByZWZpeC1tZXRhKWUoXCgpMzc3IDE4NTYgeSBGZihoKXAKLTM4OSAxODMwIDcwIDIgdiAzODkgMTg1OCBhIEZlKEVTQylwIDM4OSAxODY2IFYgNDU2IDE4NTYKLWEgRmYoaSk0NzEgMTg1OCB5IEZsKFwpKTMxNSAxOTEzIHkgRm0oTWV0YWZ5KWsodGhlKWgobmV4dClnKGMpbwotKGhhcmFjdGVyKWYodClvKHlwKXEoZWQuKTMwIGIoVGhpcykyMCBiKGlzKWYoZm9yKWYoaylvKGV5YilxKG9hcmRzKWgKLSh3aXRob3V0KWcoYSlmKG1ldGEpZyhrKW8oZXkpbCguKTMxNSAxOTY4IHkoVClvKHlwaW5nKWUoYCk0ODUKLTE5NjYgeSBGZihoKXAgNDk2IDE5MzkgViA0OTYgMTk2OCBhIEZlKEVTQylwIDQ5NiAxOTc1Ci1WIDU2MyAxOTY2IGEgRmYoaSk1OTMgMTk2OCB5IEZsKGYpcCBGbSgnKWYoaXMpaChlcXVpdiltKGFsZW4pbyh0KWgodG8pZAotKHQpbyh5cGluZylpIEZnKE0tZilwIEZtKC4pNzUgMjA2MSB5IEZsKHVuZG8pZihcKEMtXylmKG9yKWgoQy14KWcKLShDLXVcKSkzMTUgMjExNiB5IEZtKEluY3JlbWVuKW8odGFsKWgodW5kbywpZihzZXBhcmF0ZWx5KWgocmVtZW0pbyhiKXEKLShlcmVkKWcoZm9yKWUoZWFjKW8oaCloKGxpbmUuKTc1IDIyMDkgeSBGbChyZXZlcnQtbGluZSlmKFwoTS1yXCkpMzE1Ci0yMjY0IHkgRm0oVW5kbylqKGFsbClnKGMpbyhoYW5nZXMpZyhtYWRlKWYodG8pZyh0aGlzKWgobGluZS4pMjYKLWIoVGhpcykxNyBiKGlzKWcobGlrKW8oZSloKGV4ZWN1dGluZylmKHRoZSlnIEZsKHVuZG8pZgotRm0oY29tbWFuZCkzMTUgMjMxOSB5KGVub3VnaClnKHRpbWVzKWYodG8pZyhnZXQpZihiYWMpbyhrKWgodG8pZyh0aGUpZwotKGIpcShlZ2lubmluZy4pNzUgMjQxMiB5IEZsKHRpbGRlLWV4cGFuZClmKFwoTS1+XCkpMzE1Ci0yNDY3IHkgRm0oUClvKGVyZm9ybSlnKHRpbGRlKWooZXhwYW5zaW9uKWYob24pZih0aGUpZyhjdXJyZW4pbyh0KWcodylvCi0ob3JkLik3NSAyNTYwIHkgRmwoc2V0LW1hcmspZihcKEMtQFwpKTMxNSAyNjE1IHkgRm0oU2V0KWkodGhlKWgobWFyaylmCi0odG8pZih0aGUpaShwKXEob2luKW8odC4pMjQgYihJZikxNyBiKGEpZihuKW8odW1lcmljKWgoYXJndW1lbilvKHQpZgotKGlzKWcoc3VwcGxpZWQsKWoodGhlKWUobWFyayllKGlzKWkoc2V0KTMxNSAyNjcwIHkodG8pZSh0aGF0KWYocClxCi0ob3NpdGlvbi4pcCBlb3AKLSUlUGFnZTogMTggMjAKLTE4IDE5IGJvcCA3NSAtNTggYSBGbSgxOCkxMjk5IGIoR05VKTE1IGIoUmVhZGxpbmUpaChMaWJyYXJ5KTc1Ci0xNDkgeSBGbChleGNoYW5nZS1wb2ludC1hbmQtbWFyayljKFwoQy14KWooQy14XCkpMzE1Ci0yMDQgeSBGbShTdylvKGFwKWcodGhlKWgocClxKG9pbilvKHQpZyh3aXRoKWcodGhlKWcobWFyay4payhUaGUpYwotKGN1cnJlbilvKHQpZihjdXJzb3IpaChwKXEob3NpdGlvbilnKGlzKWcoc2V0KWcodG8pZih0aGUpZyhzYSlvKHYpbyhlZCkKLTMxNSAyNTkgeShwKXEob3NpdGlvbiwpaChhbmQpZih0aGUpaChvbGQpZihjdXJzb3IpZyhwKXEob3NpdGlvbiloKGlzKWcKLShzYSlvKHYpbyhlZClmKGFzKWcodGhlKWcobWFyay4pNzUgMzQ3IHkgRmwoY2hhcmFjdGVyLXNlYXJjaCllKFwoQy1dXCkpCi0zMTUgNDAyIHkgRm0oQSlmKGMpbyhoYXJhY3RlcilnKGlzKWgocmVhZClnKGFuZClmKHApcShvaW4pbyh0KWgoaXMpZwotKG1vKW8odilvKGVkKWYodG8pZyh0aGUpZyhuZXh0KWgobylxKGNjdXJyZW5jZSlnKG9mKWYodGhhdClnKGMpbwotKGhhcmFjdGVyLikzMTUgNDU2IHkoQSlqKG5lZ2F0aXYpbyhlKWgoY291bilvKHQpZihzZWFyYylvKGhlcylnKGZvcilmCi0ocHJldmlvdXMpaShvKXEoY2N1cnJlbmNlcy4pNzUgNTQ0IHkgRmwoY2hhcmFjdGVyLXNlYXJjaC1iYWNrd2FyZCljCi0oXChNLUMtXVwpKTMxNSA1OTkgeSBGbShBKTIyIGIoYylvKGhhcmFjdGVyKWcoaXMpaChyZWFkKWYoYW5kKWgocClxCi0ob2luKW8odClnKGlzKWcobW8pbyh2KW8oZWQpZih0bylnKHRoZSlnKHByZXZpb3VzKWgobylxKGNjdXJyZW5jZSloKG9mKQotZSh0aGF0KTMxNSA2NTQgeShjKW8oaGFyYWN0ZXIuKWQoQSljKG5lZ2F0aXYpbyhlKWgoY291bilvKHQpZihzZWFyYylvCi0oaGVzKWcoZm9yKWYoc3Vic2VxdWVuKW8odClpKG8pcShjY3VycmVuY2VzLik3NSA3NDEgeQotRmwoaW5zZXJ0LWNvbW1lbnQpZChcKE0tI1wpKTMxNSA3OTYgeSBGbShXaXRob3V0KTE4IGIoYSlmKG4pbyh1bWVyaWMpaQotKGFyZ3VtZW4pbyh0LCllKHRoZSloKHYpbShhbHVlKWgob2YpZih0aGUpZiBGbChjb21tZW50LWJlZ2luKWYKLUZtKHYpbShhcmlhYmxlKWsoaXMpZShpbi0pMzE1IDg1MSB5KHNlcnRlZCllKGF0KWYodGhlKWgoYilxKGVnaW5uaW5nKWkKLShvZilkKHRoZSloKGN1cnJlbilvKHQpZyhsaW5lLikyMyBiKElmKTE2IGIoYSlnKG4pbyh1bWVyaWMpaChhcmd1bWVuKW8KLSh0KWUoaXMpaChzdXBwbGllZCwpMzE1IDkwNiB5KHRoaXMpaihjb21tYW5kKWYoYWN0cylnKGFzKWYoYSloKHRvZ2dsZTopCi0yNiBiKGlmKTE5IGIodGhlKWYoYylvKGhhcmFjdGVycylnKGF0KWYodGhlKWkoYilxKGVnaW5uaW5nKWgob2YpZSh0aGUpZwotKGxpbmUpMzE1IDk2MCB5KGRvKWQobm90KWcobWF0YylvKGgpZyh0aGUpZyh2KW0oYWx1ZSlpKG9mKWUKLUZsKGNvbW1lbnQtYmVnaW4pcCBGbSgsKWUodGhlKWkodiltKGFsdWUpaShpcylmKGluc2VydGVkLClmKG90aGVyd2lzZSloCi0odGhlKTMxNSAxMDE1IHkoYylvKGhhcmFjdGVycylqKGluKWkgRmwoY29tbWVudC1iZWdpbilkCi1GbShhcmUpaShkZWxldGVkKWkoZnJvbSlkKHRoZSloKGIpcShlZ2lubmluZylpKG9mKWUodGhlKWcobGluZS4pMzYKLWIoSW4pMzE1IDEwNzAgeShlaXRoZXIpMTYgYihjYXNlLClmKHRoZSlnKGxpbmUpaShpcylmKGFjY2VwdGVkKWYoYXMpZwotKGlmKWgoYSlmKG5ld2xpbmUpaShoYWQpZShiKXEoZWVuKWkodClvKHlwKXEoZWQuKTc1IDExNTgKLXkgRmwoZHVtcC1mdW5jdGlvbnMpYyhcKFwpKTMxNSAxMjEzIHkgRm0oUHJpbilvKHQpZyhhbGwpaChvZilmKHRoZSlnCi0oZnVuY3Rpb25zKWgoYW5kKWcodGhlaXIpZyhrKW8oZXkpZihiaW5kaW5ncylpKHRvKWQodGhlKWkoUmVhZGxpbmUpZwotKG91dHB1dClmKHN0cmVhbS4pMzE1IDEyNjcgeShJZilqKGEpZyhuKW8odW1lcmljKWcoYXJndW1lbilvKHQpZihpcylpCi0oc3VwcGxpZWQsKWgodGhlKWUob3V0cHV0KWYoaXMpaShmb3JtYXR0ZWQpZChpbilqKHN1YylvKGgpZihhKWcodylvKGEpbwotKHkpZih0aGF0KTMxNSAxMzIyIHkoaXQpZyhjYW4paChiKXEoZSlnKG1hZGUpZihwYXJ0KWYob2YpaChhbilnCi1GYyhpbnB1dHJjKWsgRm0oXDAxNGxlLilpKFRoaXMpMTYgYihjb21tYW5kKWYoaXMpaCh1bilvKGIpcShvdW5kKWcoYilvCi0oeSlmKGRlZmF1bHQuKTc1IDE0MTAgeSBGbChkdW1wLXZhcmlhYmxlcyllKFwoXCkpMzE1Ci0xNDY1IHkgRm0oUHJpbilvKHQpZShhbGwpZyhvZilmKHRoZSloKHNldHRhYmxlKWcodiltKGFyaWFibGVzKWgoYW5kKWYKLSh0aGVpcilnKHYpbShhbHVlcyloKHRvKWUodGhlKWgoUmVhZGxpbmUpaChvdXRwdXQpZShzdHJlYW0uKTMxNQotMTUxOSB5KElmKTE2IGIoYSlnKG4pbyh1bWVyaWMpZyhhcmd1bWVuKW8odClmKGlzKWkoc3VwcGxpZWQsKWgodGhlKWUKLShvdXRwdXQpZihpcylpKGZvcm1hdHRlZClkKGluKWooc3VjKW8oaClmKGEpZyh3KW8oYSlvKHkpZih0aGF0KTMxNQotMTU3NCB5KGl0KWcoY2FuKWgoYilxKGUpZyhtYWRlKWYocGFydClmKG9mKWgoYW4pZyBGYyhpbnB1dHJjKWsKLUZtKFwwMTRsZS4paShUaGlzKTE2IGIoY29tbWFuZClmKGlzKWgodW4pbyhiKXEob3VuZClnKGIpbyh5KWYoZGVmYXVsdC4pCi03NSAxNjYyIHkgRmwoZHVtcC1tYWNyb3MpZihcKFwpKTMxNSAxNzE3IHkgRm0oUHJpbilvKHQpaihhbGwpaChvZillCi0odGhlKWgoUmVhZGxpbmUpaChrKW8oZXkpZihzZXF1ZW5jZXMpaChiKXEob3VuZClnKHRvKWUobWFjcm9zKWcoYW5kKWgKLSh0aGUpZyhzdHJpbmdzKWcodGhleSkzMTUgMTc3MSB5KG91dHB1dC4pMjYgYihJZikxOCBiKGEpZihuKW8odW1lcmljKWgKLShhcmd1bWVuKW8odClmKGlzKWgoc3VwcGxpZWQsKWkodGhlKWQob3V0cHV0KWcoaXMpaChmb3JtYXR0ZWQpZShpbilqCi0oc3VjKW8oaCllKGEpMzE1IDE4MjYgeSh3KW8oYSlvKHkpZCh0aGF0KWcoaXQpaShjYW4pZihiKXEoZSlnKG1hZGUpZwotKHBhcnQpZyhvZilmKGFuKWggRmMoaW5wdXRyYylrIEZtKFwwMTRsZS4paShUaGlzKTE1IGIoY29tbWFuZClnKGlzKWgKLSh1bilvKGIpcShvdW5kKWcoYilvKHkpMzE1IDE4ODEgeShkZWZhdWx0Lik3NSAxOTY5IHkKLUZsKGVtYWNzLWVkaXRpbmctbW9kZSlkKFwoQy1lXCkpMzE1IDIwMjQgeSBGbShXaGVuKWooaW4pZwotRmwodmkpZSBGbShjb21tYW5kKWkobW8pcShkZSwpZih0aGlzKWcoY2F1c2VzKWgoYSlmKHN3aXRjKW8oaClnKHRvKWcKLUZsKGVtYWNzKWYgRm0oZWRpdGluZylqKG1vKXEoZGUuKTc1IDIxMTEgeSBGbCh2aS1lZGl0aW5nLW1vZGUpYwotKFwoTS1DLWpcKSkzMTUgMjE2NiB5IEZtKFdoZW4paihpbilnIEZsKGVtYWNzKWUgRm0oZWRpdGluZylqKG1vKXEoZGUsKWUKLSh0aGlzKWcoY2F1c2VzKWgoYSlmKHN3aXRjKW8oaClnKHRvKWcgRmwodmkpZiBGbShlZGl0aW5nKWoobW8pcShkZS4pNzUKLTIyOTAgeSBGaygxLjUpMzMgYihSZWFkbGluZSkyMyBiKHZpKWgoTW8pcihkZSkxMzcgMjM4NQoteSBGbShXaGlsZSkxMyBiKHRoZSlmKFJlYWRsaW5lKWkobGlicmFyeSllKGRvKXEoZXMpZyhub3QpZyhoYSlvKHYpbyhlKWYKLShhKWgoZnVsbCloKHNldClmKG9mKWYgRmwodmkpZyBGbShlZGl0aW5nKWooZnVuY3Rpb25zLClmKGl0KWYoZG8pcShlcylnCi0oY29uKW8odGFpbik3NSAyNDQwIHkoZW5vdWdoKTE3IGIodG8pZyhhbGxvKW8odylnKHNpbXBsZSloKGVkaXRpbmcpaAotKG9mKWQodGhlKWkobGluZS4pMjcgYihUaGUpMTcgYihSZWFkbGluZSloIEZsKHZpKWYgRm0obW8pcShkZSlnKGIpcQotKGVoYSlvKHYpbyhlcylnKGFzKWcoc3ApcShlY2lcMDE0ZWQpaShpbik3NSAyNDk1IHkodGhlKWMKLUZoKHBvc2l4KWcgRm0oMTAwMy4yKWYoc3RhbmRhcmQuKTEzNyAyNTYwIHkoSW4paChvcmRlcilnKHRvKWYoc3dpdGMpbwotKGgpZyhpbilvKHRlcmFjdGl2KW8oZWx5KWkoYilxKGV0KW8odylvKGVlbilmIEZsKGVtYWNzKWUKLUZtKGFuZClpIEZsKHZpKWYgRm0oZWRpdGluZylpKG1vKXEoZGVzLClmKHVzZSlmKHRoZSloKGNvbW1hbmQpNzUKLTI2MTUgeSBGZyhNLUMtailqIEZtKFwoYilxKG91bmQpaSh0byllKGVtYWNzLWVkaXRpbmctbW8pcShkZSlqKHdoZW4pZQotKGluKWggRmwodmkpZiBGbShtbylxKGRlKWcoYW5kKWcodG8pZih2aS1lZGl0aW5nLW1vKXEoZGUpayhpbillCi1GbChlbWFjcyk3NSAyNjcwIHkgRm0obW8pcShkZVwpLilnKFRoZSkxNSBiKFJlYWRsaW5lKWkoZGVmYXVsdClmKGlzKWYKLUZsKGVtYWNzKWcgRm0obW8pcShkZS4pcCBlb3AKLSUlUGFnZTogMTkgMjEKLTE5IDIwIGJvcCA3NSAtNTggYSBGbShDaGFwdGVyKTE1IGIoMTopayhDb21tYW5kKWMoTGluZSlpKEVkaXRpbmcpMTA1NQotYigxOSkxMzcgMTQ5IHkoV2hlbikxNiBiKHkpbyhvdSllKGVuKW8odGVyKWgoYSlnKGxpbmUpaShpbillCi1GbCh2aSlnIEZtKG1vKXEoZGUsKWcoeSlvKG91KWcoYXJlKWYoYWxyZWFkeSlpKHBsYWNlZClnKGluKWcKLShgaW5zZXJ0aW9uJylmKG1vKXEoZGUsKWcoYXMpZyhpZilnKHkpbyhvdSk3NSAyMDQgeShoYWQpZSh0KW8oeXApcShlZCloCi0oYW4pZihgKXAgRmwoaSlwIEZtKCcuKTE4IGIoUHJlc3NpbmcpNjA4IDIwMiB5IEZmKGgpcAotNjIwIDE3NiA3MCAyIHYgNjIwIDIwNCBhIEZlKEVTQylwIDYyMCAyMTIgViA2ODcgMjAyIGEKLUZmKGkpNzE1IDIwNCB5IEZtKHN3aXRjKW8oaGVzKTEzIGIoeSlvKG91KWcoaW4pbyh0bylnKGBjb21tYW5kJylmKG1vKXEKLShkZSwpaSh3aGVyZSlmKHkpbyhvdSlnKGNhbilnKGVkaXQpaCh0aGUpNzUgMjU5IHkodGV4dClpKG9mKWgodGhlKWcKLShsaW5lKWgod2l0aClnKHRoZSlmKHN0YW5kYXJkKWYgRmwodmkpaCBGbShtbylvKHYpbyhlbWVuKW8odClmKGspbwotKGV5cywpZyhtbylvKHYpbyhlKWcodG8paChwcmV2aW91cylnKGhpc3RvcnkpZyhsaW5lcylpKHdpdGgpNzUKLTMxNCB5KGApcCBGbChrKXAgRm0oJykxNCBiKGFuZClpKHN1YnNlcXVlbilvKHQpZihsaW5lcylpKHdpdGgpZihgKXAKLUZsKGopcCBGbSgnLCllKGFuZCloKHNvKWcoZm9ydGguKXAgZW9wCi0lJVBhZ2U6IDIwIDIyCi0yMCAyMSBib3AgNzUgLTU4IGEgRm0oMjApMTI5OSBiKEdOVSkxNSBiKFJlYWRsaW5lKWgoTGlicmFyeSlwCi1lb3AKLSUlUGFnZTogLTEgMjMKLS0xIDIyIGJvcCAxODYyIC01OCBhIEZtKGkpNzUgMTQ5IHkgRmkoVCktNyBiKGFibGUpMjcKLWIob2YpZihDb24pbih0ZW4pbih0cyk3NSAzMjAgeSBGaygxKTY3IGIoQ29tbWFuZCkyMiBiKExpbmUpaShFZGl0aW5nKWQKLUZhKC4pMTAgYiguKWgoLilmKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4paAotKC4pZiguKWcoLilnKC4pNDIgYiBGaygxKTIyNCAzODkgeSBGbSgxLjEpaihJbilvKHRybylxKGR1Y3Rpb24pMTYKLWIodG8pZihMaW5lKWgoRWRpdGluZyllIEZkKC4pNyBiKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pCi1mKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWcoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYKLSguKTI3IGIgRm0oMSkyMjQgNDQ0IHkoMS4yKTQ1IGIoUmVhZGxpbmUpMTYgYihJbilvKHRlcmFjdGlvbik4Ci1iIEZkKC4pZyguKWcoLilmKC4paCguKWYoLiloKC4pZyguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKQotaCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmCi0oLiloKC4pZiguKTIzIGIgRm0oMSkzNzQgNDk5IHkoMS4yLjEpNDQgYihSZWFkbGluZSkxNgotYihCYXJlKWYoRXNzZW4pbyh0aWFscylmIEZkKC4pNyBiKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloCi0oLilnKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pMjcKLWIgRm0oMSkzNzQgNTUzIHkoMS4yLjIpNDQgYihSZWFkbGluZSkxNiBiKE1vKW8odilvKGVtZW4pbyh0KWUoQ29tbWFuZHMpCi03IGIgRmQoLilnKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWcoLilmCi0oLiloKC4pMjEgYiBGbSgyKTM3NCA2MDggeSgxLjIuMyk0NCBiKFJlYWRsaW5lKTE2IGIoS2lsbGluZylpKENvbW1hbmRzKQotMTEgYiBGZCguKWMoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgKLSguKWYoLiloKC4pZiguKWgoLikyNSBiIEZtKDIpMzc0IDY2MyB5KDEuMi40KTQ0IGIoUmVhZGxpbmUpMTYKLWIoQXJndW1lbilvKHRzKWMgRmQoLiljKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloCi0oLilmKC4paCguKWcoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKTI3Ci1iIEZtKDMpMzc0IDcxOCB5KDEuMi41KTQ0IGIoU2VhcmMpbyhoaW5nKTE2IGIoZm9yKWUoQ29tbWFuZHMpaChpbiloCi0odGhlKWYoSGlzdG9yeSllIEZkKC4pOCBiKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLikyNwotYiBGbSgzKTIyNCA3NzMgeSgxLjMpNDUgYihSZWFkbGluZSkxNiBiKEluaXQpaChGaWxlKWUKLUZkKC4pNyBiKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWcoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4pCi1oKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYKLSguKWgoLilmKC4paCguKWYoLikyOSBiIEZtKDQpMzc0IDgyNyB5KDEuMy4xKTQ0IGIoUmVhZGxpbmUpMTYKLWIoSW5pdClnKEZpbGUpaChTeW4pbyh0YXgpNyBiIEZkKC4pZyguKWcoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pCi1mKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKTIxCi1iIEZtKDQpMzc0IDg4MiB5KDEuMy4yKTQ0IGIoQ29uZGl0aW9uYWwpMTYgYihJbml0KWcoQ29uc3RydWN0cyk1Ci1iIEZkKC4paSguKWcoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKQotaCguKWYoLiloKC4pZyguKWYoLikxOSBiIEZtKDkpMzc0IDkzNyB5KDEuMy4zKTQ0IGIoU2FtcGxlKTE2Ci1iKEluaXQpZyhGaWxlKTExIGIgRmQoLillKC4pZSguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilnKC4pZiguKWgKLSguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4pCi1oKC4pZiguKTI2IGIgRm0oOSkyMjQgOTkyIHkoMS40KTQ1IGIoQmluZGFibGUpMTcgYihSZWFkbGluZSlnKENvbW1hbmRzKQotNiBiIEZkKC4paCguKWcoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZyguKWYoLiloKC4pZiguKWgoLilmKC4paAotKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKTIxIGIgRm0oMTIpMzc0Ci0xMDQ2IHkoMS40LjEpNDQgYihDb21tYW5kcykxNCBiKEYpbChvciloKE1vKW8odmluZyllCi1GZCguKTcgYiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWcoLilmKC4paCguKWYoLiloKC4pZiguKQotaCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKTI4IGIgRm0oMTIpMzc0IDExMDEgeSgxLjQuMik0NAotYihDb21tYW5kcykxNCBiKEYpbChvciloKE1hbmlwdWxhdGluZylpKFRoZSllKEhpc3RvcnkpOQotYiBGZCguKWUoLiloKC4pZiguKWgoLilmKC4paCguKTI0IGIgRm0oMTIpMzc0IDExNTYgeSgxLjQuMyk0NAotYihDb21tYW5kcykxNCBiKEYpbChvciloKENoYW5naW5nKWgoVClsKGV4dCllIEZkKC4pOAotYiguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKTMwCi1iIEZtKDE0KTM3NCAxMjExIHkoMS40LjQpNDQgYihLaWxsaW5nKTE4IGIoQW5kKWUoWSlsKGFua2luZyk5Ci1iIEZkKC4pZSguKWgoLilmKC4paCguKWcoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKQotaCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKTI0IGIgRm0oMTUpMzc0Ci0xMjY2IHkoMS40LjUpNDQgYihTcClxKGVjaWZ5aW5nKTE3IGIoTnVtZXJpYylmKEFyZ3VtZW4pbyh0cyljCi1GZCguKWMoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilnKC4pZiguKWgoLikyNwotYiBGbSgxNikzNzQgMTMyMCB5KDEuNC42KTQ0IGIoTGV0dGluZykxNSBiKFJlYWRsaW5lKWkoVClvKHlwKXEoZSllKEYpbAotKG9yKWcoWSlsKG91KTEwIGIgRmQoLilkKC4paCguKWYoLiloKC4pZyguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLikKLWgoLilmKC4paCguKWYoLikyNSBiIEZtKDE2KTM3NCAxMzc1IHkoMS40LjcpNDQgYihLZXliKXEob2FyZCkxNQotYihNYWNyb3MpNiBiIEZkKC4paCguKWcoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYKLSguKWgoLilmKC4paCguKWcoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKTIxCi1iIEZtKDE3KTM3NCAxNDMwIHkoMS40LjgpNDQgYihTb21lKTE1IGIoTWlzY2VsbGFuZW91cylpKENvbW1hbmRzKTcKLWIgRmQoLilnKC4pZyguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4pCi0yMiBiIEZtKDE3KTIyNCAxNDg1IHkoMS41KTQ1IGIoUmVhZGxpbmUpMTYgYih2aSlnKE1vKXEoZGUpZQotRmQoLik3IGIoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLikKLWYoLiloKC4pZiguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWgoLilmKC4paCguKWcoLilmKC4paCguKWYoLiloKC4pZgotKC4paCguKWYoLiloKC4pMjggYiBGbSgxOClwIGVvcAotJSVQYWdlOiAtMiAyNAotLTIgMjMgYm9wIDc1IC01OCBhIEZtKGlpKTEzMjEgYihHTlUpMTUgYihSZWFkbGluZSloKExpYnJhcnkpcAotZW9wCi0lJVRyYWlsZXIKK1RlWERpY3QgYmVnaW4gMiAxIGJvcCAxNTAgMzAyNCBhIEZvKFRoaXMpMzcgYihtYW4pbSh1YWwpaShkZXNjcmliKXMoZXMpCitmKHRoZSlnKGVuZClnKHVzZXIpZihpbiltKHRlcmZhY2UpaihvZilmKHRoZSlmKEdOVSloKFJlYWRsaW5lKWcKKyhMaWJyYXJ5KWUoXCh2KW0oZXJzaW9uKWooNS4xLSkxNTAgMzEzMyB5KGIpcyhldGExLCkzNAorYigxMSlnKE5vKW0odiltKGVtKW0oYilzKGVyKWcoMjAwNVwpLClpKGEpZShsaWJyYXJ5KWUod2hpYyltKGgpaChhaWRzKWcKKyhpbilmKHRoZSlpKGNvbnNpc3RlbmN5KWYob2YpaCh1c2VyKWUoaW4pbSh0ZXJmYWNlKWkoYWNyb3NzKTE1MAorMzI0MyB5KGRpc2NyZXRlKWQocHJvZ3JhbXMpZih3aGljKW0oaClnKHBybyltKHZpZGUpaChhKWYoY29tbWFuZCloCisobGluZSlmKGluKW0odGVyZmFjZS4pMTUwIDMzNzcgeShDb3ApbSh5cmlnaCltKHQpNjAyCiszMzc0IHkoYyk1NzcgMzM3NyB5IEZsKFwwMTUpZyBGbygxOTg4LTIwMDUpayhGKS04IGIocmVlKTMyCitiKFNvZnQpbSh3KW0oYXJlKWYoRiktOCBiKG91bmRhdGlvbiwpMzIgYihJbmMuKTE1MCAzNTEyCit5KFApbShlcm1pc3Npb24pZyhpcyloKGdyYW4pbSh0ZWQpZyh0bylmKG1hayltKGUpaShhbmQpZChkaXN0cmlidXRlKWgKKyh2KW0oZXJiYXRpbSloKGNvcGllcylnKG9mKWYodGhpcylnKG1hbiltKHVhbCloKHBybyltKHZpZGVkKWYodGhlKTE1MAorMzYyMSB5KGNvcCltKHlyaWdoKW0odClnKG5vdGljZSlmKGFuZClmKHRoaXMpZyhwKXMoZXJtaXNzaW9uKWcobm90aWNlKWgKKyhhcmUpZyhwcmVzZXJ2KW0oZWQpZihvbiloKGFsbClnKGNvcGllcy4pMzkwIDM3NTYgeShQKW0oZXJtaXNzaW9uKWsoaXMpCitoKGdyYW4pbSh0ZWQpZih0byloKGNvcCltKHkpLTggYigsKTM4IGIoZGlzdHJpYnV0ZSlkKGFuZC9vcilnKG1vKXMKKyhkaWZ5KWYodGhpcyloKGRvKXMoY3VtZW4pbSh0KWcodW5kZXIpMzkwIDM4NjYgeSh0aGUpaih0ZXJtcylnKG9mKWcKKyh0aGUpZyhHTlUpaChGKS04IGIocmVlKTM5IGIoRG8pcyhjdW1lbiltKHRhdGlvbiloKExpY2Vuc2UsKWcoViktOAorYihlcnNpb24pMzkgYigxLjEpZyhvcilmKGFuKW0oeSlnKGxhdGVyKTM5MCAzOTc1IHkodiltKGVyc2lvbikyOAorYihwdWJsaXNoZWQpZChiKW0oeSlqKHRoZSlmKEYpLTggYihyZWUpMjkgYihTb2Z0KW0odyltKGFyZSlmKEYpLTgKK2Iob3VuZGF0aW9uOykzMCBiKHdpdGgpZChubylnKEluKW0odiktNSBiKGFyaWFuKW0odCkyOAorYihTZWN0aW9ucywpMzkwIDQwODUgeSh3aXRoKWkodGhlKWgoRiktOCBiKHJvbiltKHQtQ28pbSh2KW0oZXIpMzMKK2IodGV4dHMpZShiKXMoZWluZylnKFxcQSlnKEdOVSlnKE1hbiltKHVhbCwiKWgoYW5kKWUod2l0aClnKHRoZSloKEJhYyltCisoay1DbyltKHYpbShlcikzOTAgNDE5NCB5KFQpLTggYihleHRzKTMzIGIoYXMpZyhpbilmKFwoYVwpKWgoYilzKGVsbyltCisody4pNDcgYihBKTMzIGIoY29wKW0oeSlnKG9mKWYodGhlKWgobGljZW5zZSlnKGlzKWcoaW5jbHVkZWQpZShpbiloCisodGhlKWgoc2VjdGlvbilnKGVuKW0odGl0bGVkKTM5MCA0MzA0IHkoXFxHTlUpZShGKS04CitiKHJlZSkzMiBiKERvKXMoY3VtZW4pbSh0YXRpb24pZyhMaWNlbnNlLiIpMzkwIDQ0MzggeShcKGFcKSkzOQorYihUaGUpZihGU0YncylnKEJhYyltKGstQ28pbSh2KW0oZXIpaihUKS04IGIoZXh0KTM5IGIoaXM6KTU2CitiKFxcWSktOCBiKG91KTM5IGIoaGEpbSh2KW0oZSlnKGZyZWVkb20pZih0byloKGNvcCltKHkpZihhbmQpZyhtbylzCisoZGlmeSkzOTAgNDU0OCB5KHRoaXMpMzIgYihHTlUpaShNYW4pbSh1YWwsKWcobGlrKW0oZSlnKEdOVSlmKHNvZnQpbSh3KQorbShhcmUuKTQ5IGIoQ29waWVzKTMyIGIocHVibGlzaGVkKWYoYiltKHkpaCh0aGUpaChGKS04CitiKHJlZSkzNCBiKFNvZnQpbSh3KW0oYXJlKTM5MCA0NjU4IHkoRiktOCBiKG91bmRhdGlvbikzMQorYihyYWlzZSlnKGZ1bmRzKWQoZm9yKWooR05VKWcoZGV2KW0oZWxvcG1lbiltKHQuIikxNTAKKzQ5MDIgeShQdWJsaXNoZWQpZShiKW0oeSloKHRoZSloKEYpLTggYihyZWUpMzEgYihTb2Z0KW0odyltKGFyZSloKEYpLTgKK2Iob3VuZGF0aW9uKTE1MCA1MDExIHkoNTkpMzEgYihUKS04IGIoZW1wbGUpMzEgYihQbGFjZSwpaChTdWl0ZSllKDMzMCwpCisxNTAgNTEyMSB5KEJvc3RvbiwpaShNQSllKDAyMTExLTEzMDcpMTUwIDUyMzAgeShVU0EpcAorZW9wIGVuZAorJSVQYWdlOiAtMSAzCitUZVhEaWN0IGJlZ2luIC0xIDIgYm9wIDM3MjUgLTExNiBhIEZvKGkpMTUwIDI5OSB5IEZrKFQpLTEzCitiKGFibGUpNTMgYihvZiloKENvbilsKHRlbilsKHRzKTE1MCA2NDEgeSBGbSgxKTEzNSBiKENvbW1hbmQpNDUKK2IoTGluZSlnKEVkaXRpbmcpNDAgYiBGaiguKTIwIGIoLilmKC4pZyguKWgoLilmKC4paCguKWYoLiloKC4pZiguKWcoLiloCisoLilmKC4paCguKWYoLiloKC4pZiguKWcoLiloKC4pZiguKTg0IGIgRm0oMSk0NDkgNzc4Cit5IEZvKDEuMSk5MiBiKEluKW0odHJvKXMoZHVjdGlvbikzMCBiKHRvKWgoTGluZSlmKEVkaXRpbmcpMjUKK2IgRmkoLikxNiBiKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnCisoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLik1NQorYiBGbygxKTQ0OSA4ODggeSgxLjIpOTIgYihSZWFkbGluZSkzMSBiKEluKW0odGVyYWN0aW9uKTE2CitiIEZpKC4paCguKWUoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKQorZyguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnCisoLilnKC4pZyguKTQ2IGIgRm8oMSk3NDggOTk3IHkoMS4yLjEpOTMgYihSZWFkbGluZSkzMQorYihCYXJlKWcoRXNzZW4pbSh0aWFscyljIEZpKC4pMTUgYiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZworKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKTU2CitiIEZvKDEpNzQ4IDExMDcgeSgxLjIuMik5MyBiKFJlYWRsaW5lKTMxIGIoTW8pbSh2KW0oZW1lbiltKHQpaAorKENvbW1hbmRzKTE0IGIgRmkoLiloKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnCisoLilnKC4pZyguKWcoLilnKC4pNDQgYiBGbygyKTc0OCAxMjE2IHkoMS4yLjMpOTMgYihSZWFkbGluZSkzMQorYihLaWxsaW5nKWcoQ29tbWFuZHMpMjIgYiBGaSguKTEzIGIoLilpKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcKKyguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLik1MSBiIEZvKDIpNzQ4CisxMzI2IHkoMS4yLjQpOTMgYihSZWFkbGluZSkzMSBiKEFyZ3VtZW4pbSh0cykyNSBiIEZpKC4pMTUKK2IoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZworKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pNTUgYiBGbygzKTc0OAorMTQzNSB5KDEuMi41KTkzIGIoU2VhcmMpbShoaW5nKTMwIGIoZm9yKWgoQ29tbWFuZHMpZShpbiloKHRoZSlnCisoSGlzdG9yeSlkIEZpKC4pMTUgYiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pNTYKK2IgRm8oMyk0NDkgMTU0NSB5KDEuMyk5MiBiKFJlYWRsaW5lKTMxIGIoSW5pdClmKEZpbGUpZworRmkoLikxNSBiKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnCisoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWgoLilmKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKQorZyguKWcoLilnKC4pZyguKWcoLik1OCBiIEZvKDQpNzQ4IDE2NTUgeSgxLjMuMSk5MyBiKFJlYWRsaW5lKTMxCitiKEluaXQpZihGaWxlKWgoU3luKW0odGF4KTEzIGIgRmkoLilqKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcKKyguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pNDMKK2IgRm8oNCk3NDggMTc2NCB5KDEuMy4yKTkzIGIoQ29uZGl0aW9uYWwpMzAgYihJbml0KWgoQ29uc3RydWN0cyk5CitiIEZpKC4pMTQgYiguKWgoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZworKC4pZyguKWcoLilnKC4pZyguKWcoLikzOSBiIEZvKDkpNzQ4IDE4NzQgeSgxLjMuMyk5MworYihTYW1wbGUpMzAgYihJbml0KWcoRmlsZSkyMSBiIEZpKC4pYyguKWUoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnCisoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKQorZyguKWcoLilnKC4pZyguKTUxIGIgRm8oMTApNDQ5IDE5ODMgeSgxLjQpOTIgYihCaW5kYWJsZSkzMQorYihSZWFkbGluZSlnKENvbW1hbmRzKTEyIGIgRmkoLilpKC4paCguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnCisoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pNDEKK2IgRm8oMTMpNzQ4IDIwOTMgeSgxLjQuMSk5MyBiKENvbW1hbmRzKTI5IGIoRiktOCBiKG9yKTMxCitiKE1vKW0odmluZylkIEZpKC4pMTUgYiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZworKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKTU2IGIgRm8oMTMpNzQ4CisyMjAzIHkoMS40LjIpOTMgYihDb21tYW5kcykyOSBiKEYpLTggYihvcikzMSBiKE1hbmlwdWxhdGluZylnKFRoZSlmCisoSGlzdG9yeSkxOCBiIEZpKC4pZSguKWYoLilnKC4pZyguKWcoLilnKC4pNDcgYiBGbygxMyk3NDgKKzIzMTIgeSgxLjQuMyk5MyBiKENvbW1hbmRzKTI5IGIoRiktOCBiKG9yKTMxIGIoQ2hhbmdpbmcpZihUKS04CitiKGV4dCkzMCBiIEZpKC4pMTUgYiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKQorZyguKWgoLilmKC4pNTggYiBGbygxNCk3NDggMjQyMiB5KDEuNC40KTkzIGIoS2lsbGluZykzMQorYihBbmQpZShZKS04IGIoYW5raW5nKTE3IGIgRmkoLilmKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnCisoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pNDYKK2IgRm8oMTYpNzQ4IDI1MzEgeSgxLjQuNSk5MyBiKFNwKXMoZWNpZnlpbmcpMjkgYihOdW1lcmljKWkoQXJndW1lbiltCisodHMpMjUgYiBGaSguKTE1IGIoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnCisoLilnKC4pZyguKTU0IGIgRm8oMTcpNzQ4IDI2NDEgeSgxLjQuNik5MyBiKExldHRpbmcpMzEKK2IoUmVhZGxpbmUpZyhUKW0oeXApcyhlKWYoRiktOCBiKG9yKTMxIGIoWSktOCBiKG91KTE5CitiIEZpKC4pZCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKQorNDkgYiBGbygxNyk3NDggMjc1MSB5KDEuNC43KTkzIGIoS2V5YilzKG9hcmQpMjkgYihNYWNyb3MpMTEKK2IgRmkoLikxNyBiKC4pZSguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnCisoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pNDEKK2IgRm8oMTcpNzQ4IDI4NjAgeSgxLjQuOCk5MyBiKFNvbWUpMzAgYihNaXNjZWxsYW5lb3VzKWkoQ29tbWFuZHMpMTMKK2IgRmkoLiloKC4paCguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLiloKC4pZiguKWcoLilnKC4pZyguKWcoLilnKC4pCis0MiBiIEZvKDE4KTQ0OSAyOTcwIHkoMS41KTkyIGIoUmVhZGxpbmUpMzEgYih2aSlmKE1vKXMoZGUpZAorRmkoLikxNSBiKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnCisoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKQorZyguKWcoLilnKC4pZyguKTU2IGIgRm8oMTkpMTUwIDMyMTIgeSBGbShBcHApdChlbmRpeCk0NAorYihBKTk5IGIoQ29wKWwoeWluZyk0NiBiKFRoaXMpZShNYW4pbCh1YWwpMjkgYiBGaiguKTIwCitiKC4pZyguKWYoLiloKC4pZiguKWcoLiloKC4pZiguKWgoLilmKC4pNzQgYiBGbSgyMSk0NDkKKzMzNDkgeSBGbyhBLjEpOTIgYihHTlUpMzEgYihGKS04IGIocmVlKTMxIGIoRG8pcyhjdW1lbiltKHRhdGlvbiloCisoTGljZW5zZSljIEZpKC4pMTUgYiguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKQorZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLik1NiBiIEZvKDIxKTc0OCAzNDU5IHkoQS4xLjEpOTIKK2IoQURERU5EVU06KTMzIGIoSG8pbSh3KWUodG8pZyh1c2UpZih0aGlzKWcoTGljZW5zZSloKGZvcilnKHkpbShvdXIpOTMwCiszNTY4IHkoZG8pcyhjdW1lbiltKHRzKWMgRmkoLikxNSBiKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnCisoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4paCguKWYoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKQorZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKWcoLilnKC4pZyguKTU3IGIgRm8oMjcpcAorZW9wIGVuZAorJSVQYWdlOiAtMiA0CitUZVhEaWN0IGJlZ2luIC0yIDMgYm9wIDE1MCAtMTE2IGEgRm8oaWkpMjY0MCBiKEdOVSkzMQorYihSZWFkbGluZSlnKExpYnJhcnkpcCBlb3AgZW5kCislJVBhZ2U6IDEgNQorVGVYRGljdCBiZWdpbiAxIDQgYm9wIDE1MCAtMTE2IGEgRm8oQ2hhcHRlcikzMCBiKDE6KTQxCitiKENvbW1hbmQpMjkgYihMaW5lKWkoRWRpdGluZykyMTUzIGIoMSkxNTAgMjk5IHkgRmsoMSk4MAorYihDb21tYW5kKTU0IGIoTGluZSlmKEVkaXRpbmcpMjc1IDUxMSB5IEZvKFRoaXMpMjkgYihjKW0oaGFwdGVyKWkKKyhkZXNjcmliKXMoZXMpZih0aGUpZyhiYXNpYyloKGZlYXR1cmVzKWcob2YpZih0aGUpaCBGaChnbnUpZgorRm8oY29tbWFuZClnKGxpbmUpaChlZGl0aW5nKWcoaW4pbSh0ZXJmYWNlLikxNTAgNzU1IHkKK0ZtKDEuMSk2OCBiKEluKWwodHJvKXQoZHVjdGlvbik0NSBiKHRvKWcoTGluZSloKEVkaXRpbmcpMjc1Cis5OTUgeSBGbyhUaGUpMjkgYihmb2xsbyltKHdpbmcpaihwYXJhZ3JhcGhzKWUoZGVzY3JpYilzKGUpZyh0aGUpZworKG5vdGF0aW9uKWkodXNlZClkKHRvKWoocmVwcmVzZW4pbSh0KWUoayltKGV5c3Ryb2spbShlcy4pMjc1CisxMTI1IHkoVGhlKWkodGV4dClqIEZnKEMtaylkIEZvKGlzKWkocmVhZClmKGFzKWgoYENvbiltKHRyb2wtSycpZyhhbmQpZgorKGRlc2NyaWIpcyhlcylnKHRoZSlnKGMpbShoYXJhY3RlcilpKHBybylzKGR1Y2VkKWQod2hlbilnKHRoZSkzNjYzCisxMTIyIHkgRmYoaClwIDM2ODcgMTA2OSAzOCA0IHYgMzY4NyAxMTI1IGEgRmUoaylwIDM2ODcKKzExNDAgViAzNzIwIDExMjIgYSBGZihpKTE1MCAxMjM1IHkgRm8oayltKGV5KWYoaXMpZyhwcmVzc2VkKWUod2hpbGUpaAorKHRoZSloKENvbiltKHRyb2wpZyhrKW0oZXkpZyhpcylnKGRlcHJlc3NlZC4pMjc1IDEzNjUKK3koVGhlKWcodGV4dClpIEZnKE0tayllIEZvKGlzKWgocmVhZClmKGFzKWkoYE1ldGEtSycpZyhhbmQpZihkZXNjcmliKXMKKyhlcylmKHRoZSloKGMpbShoYXJhY3RlciloKHBybylzKGR1Y2VkKWUod2hlbilmKHRoZSlpKE1ldGEpMTUwCisxNDc0IHkoayltKGV5KWQoXChpZilnKHkpbShvdSlnKGhhKW0odiltKGUpZyhvbmVcKSlnKGlzKWcoZGVwcmVzc2VkLClmCisoYW5kKWYodGhlKTE4NTkgMTQ3MSB5IEZmKGgpcCAxODgzIDE0MTggViAxODgzIDE0NzQgYQorRmUoaylwIDE4ODMgMTQ5MCBWIDE5MTYgMTQ3MSBhIEZmKGkpMTk3NCAxNDc0IHkgRm8oayltKGV5KWooaXMpZQorKHByZXNzZWQuKTM5IGIoVGhlKTI4IGIoTWV0YSlpKGspbShleSlmKGlzKWcobGFiKXMoZWxlZCkzNTU4CisxNDcxIHkgRmYoaClwIDM1ODIgMTQxOCAxNDMgNCB2IDM1ODIgMTQ3NCBhIEZlKEFMKS02CitiKFQpcCAzNTgyIDE0OTAgViAzNzIwIDE0NzEgYSBGZihpKTE1MCAxNTg0IHkgRm8ob24pMjYKK2IobWFuKW0oeSlnKGspbShleWIpcyhvYXJkcy4pMzkgYihPbikyNiBiKGspbShleWIpcyhvYXJkcylnKHdpdGgpZyh0KW0KKyh3KW0obyloKGspbShleXMpZyhsYWIpcyhlbGVkKTI0MjUgMTU4MSB5IEZmKGgpcCAyNDUwCisxNTI4IFYgMjQ1MCAxNTg0IGEgRmUoQUwpLTYgYihUKXAgMjQ1MCAxNTk5IFYgMjU4NyAxNTgxCithIEZmKGkpMjY0MyAxNTg0IHkgRm8oXCh1c3VhbGx5KTI3IGIodG8pZyhlaXRoZXIpZihzaWRlKWcob2YpaCh0aGUpMTUwCisxNjkzIHkoc3BhY2UpMzIgYihiYXJcKSwpZyh0aGUpNzc1IDE2OTAgeSBGZihoKXAgNzk5CisxNjM3IFYgNzk5IDE2OTMgYSBGZShBTCktNiBiKFQpcCA3OTkgMTcwOSBWIDkzNyAxNjkwCithIEZmKGkpOTk4IDE2OTMgeSBGbyhvbikzMiBiKHRoZSlmKGxlZnQpaChzaWRlKWcoaXMpZihnZW5lcmFsbHkpaShzZXQpZQorKHRvKWkodyltKG9yayllKGFzKWgoYSlmKE1ldGEpaShrKW0oZXkpLTggYiguKTQ1IGIoVGhlKTMzOTMKKzE2OTAgeSBGZihoKXAgMzQxNyAxNjM3IFYgMzQxNyAxNjkzIGEgRmUoQUwpLTYgYihUKXAKKzM0MTcgMTcwOSBWIDM1NTUgMTY5MCBhIEZmKGkpMzYxNiAxNjkzIHkgRm8oayltKGV5KTE1MAorMTgwMyB5KG9uKTMzIGIodGhlKWgocmlnaCltKHQpZyhtYSltKHkpZyhhbHNvKWcoYilzKGUpZihjb25cMDE0Z3VyZWQpZgorKHRvKWkodyltKG9yaylnKGFzKWcoYSlmKE1ldGEpaShrKW0oZXkpZihvcilnKG1hKW0oeSlnKGIpcyhlKWUKKyhjb25cMDE0Z3VyZWQpaChhcyloKHNvbWUpMTUwIDE5MTMgeShvdGhlcilkKG1vKXMoZGlcMDE0ZXIsKWUoc3VjKW0oaCloCisoYXMpaChhKWcoQ29tcClzKG9zZSlmKGspbShleSloKGZvcilmKHQpbSh5cGluZyloKGFjY2VuKW0odGVkKWgoYyltCisoaGFyYWN0ZXJzLikyNzUgMjA0MyB5KElmKTIxIGIoeSltKG91KWgoZG8pZyhub3QpZyhoYSltKHYpbShlKWgoYSlmCisoTWV0YSloKG9yKTEzODggMjA0MCB5IEZmKGgpcCAxNDEyIDE5ODcgViAxNDEyIDIwNDMgYQorRmUoQUwpLTYgYihUKXAgMTQxMiAyMDU4IFYgMTU1MCAyMDQwIGEgRmYoaSkxNjAxIDIwNDMKK3kgRm8oayltKGV5KWUoLCkyNSBiKG9yKWQoYW5vdGhlcilnKGspbShleSloKHcpbShvcmtpbmcpZihhcylnKGEpZworKE1ldGEpaChrKW0oZXkpLTggYigsKTI1IGIodGhlKWQoaWRlbiltKHRpY2FsKTE1MCAyMTUyCit5KGspbShleXN0cm9rKW0oZSlpKGNhbilmKGIpcyhlKWYoZ2VuZXJhdGVkKWkoYiltKHkpZSh0KW0oeXBpbmcpMTYxOQorMjE0OSB5IEZmKGgpcCAxNjQzIDIwOTYgMTM5IDQgdiAxNjQzIDIxNTIgYSBGZShFU0MpcAorMTY0MyAyMTY4IFYgMTc3NyAyMTQ5IGEgRmYoaSkxODI5IDIxNTIgeSBGaShcMDE0cnN0KXAKK0ZvKCwpaihhbmQpZCh0aGVuKWcodCltKHlwaW5nKTI2NzggMjE0OSB5IEZmKGgpcCAyNzAzCisyMDk2IDM4IDQgdiAyNzAzIDIxNTIgYSBGZShrKXAgMjcwMyAyMTY4IFYgMjczNiAyMTQ5CithIEZmKGkpMjc2NSAyMTUyIHkgRm8oLikzOCBiKEVpdGhlcikyMyBiKHBybylzKGNlc3MpZihpcylnKGtubyltKHduKTE1MAorMjI2MiB5KGFzKTMxIGIgRmQobWV0YWZ5aW5nKTM5IGIgRm8odGhlKTg1MCAyMjU5IHkgRmYoaClwCis4NzQgMjIwNiBWIDg3NCAyMjYyIGEgRmUoaylwIDg3NCAyMjc3IFYgOTA3IDIyNTkgYSBGZihpKTk2OAorMjI2MiB5IEZvKGspbShleSktOCBiKC4pMjc1IDIzOTIgeShUaGUpMzkgYih0ZXh0KWogRmcoTS1DLWspZAorRm8oaXMpaChyZWFkKWcoYXMpaChgTWV0YS1Db24pbSh0cm9sLWsnKWooYW5kKTM5IGIoZGVzY3JpYilzKGVzKWgodGhlKWcKKyhjKW0oaGFyYWN0ZXIpaShwcm8pcyhkdWNlZClkKGIpbSh5KTE1MCAyNTAxIHkgRmQobWV0YWZ5aW5nKWcKK0ZnKEMtaylwIEZvKC4pMjc1IDI2MzIgeShJbilkKGFkZGl0aW9uLClqKHNldiltKGVyYWwpZihrKW0oZXlzKWYoaGEpbQorKHYpbShlKWgodGhlaXIpZihvKW0od24pZyhuYW1lcy4pNjAgYihTcClzKGVjaVwwMTRjYWxseSktOAorYigsKTI3NjggMjYyOSB5IEZmKGgpcCAyNzkyIDI1NzYgMTQ2IDQgdiAyNzkyIDI2MzIgYQorRmUoREVMKXAgMjc5MiAyNjQ3IFYgMjkzNCAyNjI5IGEgRmYoaSkyOTY0IDI2MzIgeSBGbygsKTMwMjgKKzI2MjkgeSBGZihoKXAgMzA1MiAyNTc2IDEzOSA0IHYgMzA1MiAyNjMyIGEgRmUoRVNDKXAKKzMwNTIgMjY0NyBWIDMxODYgMjYyOSBhIEZmKGkpMzIxNiAyNjMyIHkgRm8oLCkzMjc5IDI2MjkKK3kgRmYoaClwIDMzMDMgMjU3NiAxNDQgNCB2IDMzMDMgMjYzMiBhIEZlKExGRClwIDMzMDMKKzI2NDcgViAzNDQzIDI2MjkgYSBGZihpKTM0NzMgMjYzMiB5IEZvKCwpMzUzNyAyNjI5IHkKK0ZmKGgpcCAzNTYxIDI1NzYgMTM5IDQgdiAzNTYxIDI2MzIgYSBGZShTUEMpcCAzNTYxIDI2NDcKK1YgMzY5NSAyNjI5IGEgRmYoaSkzNzI1IDI2MzIgeSBGbygsKTE1MCAyNzM4IHkgRmYoaClwCisxNzQgMjY4NSAxNTEgNCB2IDE3NCAyNzQxIGEgRmUoUkVUKXAgMTc0IDI3NTcgViAzMjEgMjczOAorYSBGZihpKTM1MSAyNzQxIHkgRm8oLCk0NyBiKGFuZCk2MTIgMjczOCB5IEZmKGgpcCA2MzcKKzI2ODUgMTQ4IDQgdiA2MzcgMjc0MSBhIEZlKFQpLTYgYihBQilwIDYzNyAyNzU3IFYgNzgwCisyNzM4IGEgRmYoaSk4NTMgMjc0MSB5IEZvKGFsbCk0NSBiKHN0YW5kKWUoZm9yKWcodGhlbXNlbHYpbShlcylpKHdoZW4pZAorKHNlZW4paShpbilmKHRoaXMpZyh0ZXh0LCk0OCBiKG9yKTQzIGIoaW4pZyhhbiloKGluaXQpZihcMDE0bGUpaChcKHNlZSkKKzE1MCAyODUxIHkoU2VjdGlvbiljKDEuMylmKFtSZWFkbGluZSloKEluaXQpZShGaWxlXSwpNDMKK2IocGFnZSljKDRcKS4pNjcgYihJZikzOCBiKHkpbShvdXIpaChrKW0oZXliKXMob2FyZClmKGxhYyltKGtzKWkoYSkyODg4CisyODQ4IHkgRmYoaClwIDI5MTIgMjc5NSAxNDQgNCB2IDI5MTIgMjg1MSBhIEZlKExGRClwCisyOTEyIDI4NjYgViAzMDUyIDI4NDggYSBGZihpKTMxMjEgMjg1MSB5IEZvKGspbShleSktOAorYigsKTQyIGIodCltKHlwaW5nKTM2MDQgMjg0OCB5IEZmKGgpcCAzNjI4IDI3OTUgOTcgNAordiAzNjI4IDI4NTEgYSBGZShDLWopcCAzNjI4IDI4NjYgViAzNzIwIDI4NDggYSBGZihpKTE1MAorMjk2MCB5IEZvKHdpbGwpMzAgYihwcm8pcyhkdWNlKWUodGhlKWkoZGVzaXJlZClmKGMpbShoYXJhY3Rlci4pNDIKK2IoVGhlKTE3NDggMjk1NyB5IEZmKGgpcCAxNzcyIDI5MDQgMTUxIDQgdiAxNzcyIDI5NjAKK2EgRmUoUkVUKXAgMTc3MiAyOTc2IFYgMTkxOSAyOTU3IGEgRmYoaSkxOTc4IDI5NjAgeSBGbyhrKW0oZXkpMzAKK2IobWEpbSh5KWcoYilzKGUpZihsYWIpcyhlbGVkKTI3NzAgMjk1NyB5IEZmKGgpcCAyNzk0CisyOTA0IDIxNyA0IHYgMjc5NCAyOTYwIGEgRmUoUmV0dXJuKXAgMjc5NCAyOTc2IFYgMzAwNworMjk1NyBhIEZmKGkpMzA2NiAyOTYwIHkgRm8ob3IpMzE3NiAyOTU3IHkgRmYoaClwIDMyMDEKKzI5MDQgMTcyIDQgdiAzMjAxIDI5NjAgYSBGZShFbiluKHRlcilwIDMyMDEgMjk3NiBWIDMzNjgKKzI5NTcgYSBGZihpKTM0MjcgMjk2MCB5IEZvKG9uKWgoc29tZSkxNTAgMzA3MCB5KGspbShleWIpcyhvYXJkcy4pMTUwCiszMzE0IHkgRm0oMS4yKTY4IGIoUmVhZGxpbmUpNDcgYihJbilsKHRlcmFjdGlvbikyNzUgMzU1NAoreSBGbyhPZnRlbikyNCBiKGR1cmluZylnKGFuKWgoaW4pbSh0ZXJhY3RpdiltKGUpaihzZXNzaW9uKWUoeSltKG91KWYodCkKK20oeXApcyhlKWgoaW4pZihhKWcobG9uZyloKGxpbmUpZihvZiloKHRleHQsKWgob25seSlmKHRvKWYobm90aWNlKWkKKyh0aGF0KWYodGhlKTE1MCAzNjYzIHkoXDAxNHJzdCkzMiBiKHcpbShvcmQpZyhvbilnKHRoZSlnKGxpbmUpaChpcylnCisobWlzc3ApcyhlbGxlZC4pNDYgYihUaGUpMzIgYihSZWFkbGluZSloKGxpYnJhcnkpZihnaXYpbShlcyloKHkpbShvdSlnCisoYSlnKHNldClnKG9mKWYoY29tbWFuZHMpZyhmb3IpMTUwIDM3NzMgeShtYW5pcHVsYXRpbmcpZSh0aGUpZyh0ZXh0KWgKKyhhcylmKHkpbShvdSlnKHQpbSh5cClzKGUpZyhpdClnKGluLClnKGFsbG8pbSh3aW5nKWgoeSltKG91KWYodG8paAorKGp1c3QpZShcMDE0eClnKHkpbShvdXIpaCh0KW0oeXApcyhvLClnKGFuZClnKG5vdClnKGZvcmNpbmcpMTUwCiszODgzIHkoeSltKG91KWUodG8paChyZXQpbSh5cClzKGUpZyh0aGUpZihtYSk1IGIoam9yaXQpbSh5KTI5CitiKG9mKWYodGhlKWgobGluZS4pNDAgYihVc2luZykyOCBiKHRoZXNlKWgoZWRpdGluZylnKGNvbW1hbmRzLClmKHkpbQorKG91KWgobW8pbSh2KW0oZSlnKHRoZSlnKGN1cnNvcikxNTAgMzk5MiB5KHRvKTM1IGIodGhlKWYocGxhY2UpaSh0aGF0KWUKKyhuZWVkcylnKGNvcnJlY3Rpb24sKWooYW5kKWQoZGVsZXRlKWgob3IpZihpbnNlcnQpaCh0aGUpZih0ZXh0KWgob2YpZworKHRoZSlmKGNvcnJlY3Rpb25zLik1NCBiKFRoZW4sKTE1MCA0MTAyIHkod2hlbikzMCBiKHkpbShvdSlpKGFyZSlmCisoc2F0aXNcMDE0ZWQpZyh3aXRoKWcodGhlKWcobGluZSwpaCh5KW0ob3UpZyhzaW1wbHkpZShwcmVzcykyMzIwCis0MDk5IHkgRmYoaClwIDIzNDQgNDA0NiAxNTEgNCB2IDIzNDQgNDEwMiBhIEZlKFJFVClwCisyMzQ0IDQxMTcgViAyNDkxIDQwOTkgYSBGZihpKTI1MjAgNDEwMiB5IEZvKC4pNDMgYihZKS04CitiKG91KTMyIGIoZG8pZihub3QpZyhoYSltKHYpbShlKWkodG8pZShiKXMoZSlnKGF0KWgodGhlKTE1MAorNDIxMSB5KGVuZClqKG9mKWgodGhlKWcobGluZSlnKHRvKWgocHJlc3MpMTEyNiA0MjA4IHkKK0ZmKGgpcCAxMTUwIDQxNTUgViAxMTUwIDQyMTEgYSBGZShSRVQpcCAxMTUwIDQyMjcgViAxMjk3Cis0MjA4IGEgRmYoaSkxMzI3IDQyMTEgeSBGbyg7KWgodGhlKWUoZW4pbSh0aXJlKWgobGluZSlmKGlzKWcoYWNjZXB0ZWQpaAorKHJlZ2FyZGxlc3MpZihvZilnKHRoZSlnKGxvKXMoY2F0aW9uKWkob2YpZSh0aGUpMTUwIDQzMjEKK3koY3Vyc29yKTMwIGIod2l0aGluKWcodGhlKWcobGluZS4pMTUwIDQ1MzIgeSBGYygxLjIuMSk2MworYihSZWFkbGluZSk0MCBiKEJhcmUpaChFc3NlbiltKHRpYWxzKTI3NSA0NzcyIHkgRm8oSW4pMjIKK2Iob3JkZXIpZyh0bylpKGVuKW0odGVyKWcoYyltKGhhcmFjdGVycylnKGluKW0odG8pZyh0aGUpZyhsaW5lLCloCisoc2ltcGx5KWQodCltKHlwKXMoZSlpKHRoZW0uKTM4IGIoVGhlKTIyIGIodCltKHlwKXMoZWQpaChjKW0oaGFyYWN0ZXIpaQorKGFwcClzKGVhcnMpMTUwIDQ4ODEgeSh3aGVyZSkzMiBiKHRoZSloKGN1cnNvcillKHcpbShhcywpaihhbmQpZSh0aGVuKWcKKyh0aGUpaChjdXJzb3IpZShtbyltKHYpbShlcylqKG9uZSlmKHNwYWNlKWcodG8pZyh0aGUpZyhyaWdoKW0odC4pNDcKK2IoSWYpMzIgYih5KW0ob3UpaChtaXN0KW0oeXApcyhlKWcoYSkxNTAgNDk5MSB5KGMpbShoYXJhY3RlciwpZih5KW0ob3UpCitmKGNhbilnKHVzZSlmKHkpbShvdXIpZyhlcmFzZSloKGMpbShoYXJhY3RlciloKHRvKWYoYmFjKW0oaylnKHVwKWYoYW5kKQorZihkZWxldGUpaih0aGUpZihtaXN0KW0oeXApcyhlZCllKGMpbShoYXJhY3Rlci4pMjc1IDUxMjEKK3koU29tZXRpbWVzKWkoeSltKG91KWcobWEpbSh5KWgobWlzdCltKHlwKXMoZSllKGEpaShjKW0oaGFyYWN0ZXIsKWcKKyhhbmQpZShub3QpaShub3RpY2UpZyh0aGUpZihlcnJvcilmKHVuKW0odGlsKWgoeSltKG91KWcoaGEpbSh2KW0oZSloKHQpCittKHlwKXMoZWQpMTUwIDUyMzAgeShzZXYpbShlcmFsKWUob3RoZXIpZihjKW0oaGFyYWN0ZXJzLik0MgorYihJbikyOCBiKHRoYXQpaShjYXNlLClnKHkpbShvdSlmKGNhbilnKHQpbSh5cClzKGUpaAorRmcoQy1iKWQgRm8odG8paihtbyltKHYpbShlKWcodGhlKWYoY3Vyc29yKWcodG8pZyh0aGUpZyhsZWZ0LClpKGFuZCkxNTAKKzUzNDAgeSh0aGVuKWYoY29ycmVjdClpKHkpbShvdXIpZShtaXN0YWspbShlLik0MiBiKEFmdGVydyltKGFyZHMsKTMxCitiKHkpbShvdSlmKGNhbiloKG1vKW0odiltKGUpaCh0aGUpZShjdXJzb3IpZyh0byloKHRoZSlnKHJpZ2gpbSh0KWcKKyh3aXRoKWYgRmcoQy1mKXAgRm8oLilwIGVvcCBlbmQKKyUlUGFnZTogMiA2CitUZVhEaWN0IGJlZ2luIDIgNSBib3AgMTUwIC0xMTYgYSBGbygyKTI2NDUgYihHTlUpMzEgYihSZWFkbGluZSlnCisoTGlicmFyeSkyNzUgMjk5IHkoV2hlbiloKHkpbShvdSloKGFkZClmKHRleHQpaChpbilmKHRoZSloKG1pZGRsZSlmKG9mKQoraChhKWcobGluZSwpaCh5KW0ob3UpZSh3aWxsKWgobm90aWNlKWgodGhhdClmKGMpbShoYXJhY3RlcnMpaCh0bylnKHRoZSkKK2UocmlnaCltKHQpMTUwIDQwOCB5KG9mKWQodGhlKWcoY3Vyc29yKWYoYXJlKWgoYHB1c2hlZCllKG8pbSh2KW0oZXInKWoKKyh0bylnKG1hayltKGUpZihybylzKG9tKWcoZm9yKWYodGhlKWgodGV4dCloKHRoYXQpZih5KW0ob3UpZyhoYSltKHYpbQorKGUpaChpbnNlcnRlZC4pNDAgYihMaWspbShld2lzZSwpMTUwIDUxOCB5KHdoZW4pZCh5KW0ob3UpZyhkZWxldGUpaQorKHRleHQpZyhiKXMoZWhpbmQpYyh0aGUpaihjdXJzb3IsKWgoYyltKGhhcmFjdGVycylnKHRvKWYodGhlKWcocmlnaCltCisodClnKG9mKWcodGhlKWcoY3Vyc29yKWUoYXJlKWkoYHB1bGxlZCkxNTAgNjI4IHkoYmFjKW0oaycpMjQKK2IodG8pZihcMDE0bGwpZyhpbilmKHRoZSloKGJsYW5rKWYoc3BhY2UpaShjcmVhdGVkKWYoYiltKHkpZyh0aGUpZworKHJlbW8pbSh2KS01IGIoYWwpMjQgYihvZilmKHRoZSlnKHRleHQuKTM5IGIoQSkyMyBiKGxpc3QpZyhvZilnKHRoZSlnCisoYmFyZSlmKGVzc2VuKW0odGlhbHMpMTUwIDczNyB5KGZvcikzMCBiKGVkaXRpbmcpaCh0aGUpZyh0ZXh0KWcob2YpZworKGFuKWYoaW5wdXQpZihsaW5lKWkoZm9sbG8pbSh3cy4pMTUwIDg5MiB5IEZnKEMtYikzMzYKK2IgRm8oTW8pbSh2KW0oZSkzMiBiKGJhYyltKGspZyhvbmUpZShjKW0oaGFyYWN0ZXIuKTE1MAorMTA0OCB5IEZnKEMtZikzMzYgYiBGbyhNbyltKHYpbShlKTMyIGIoZm9ydyltKGFyZCllKG9uZSloKGMpbQorKGhhcmFjdGVyLikxNTAgMTIwMCB5IEZmKGgpcCAxNzQgMTE0NyAxNDYgNCB2IDE3NCAxMjAzCithIEZlKERFTClwIDE3NCAxMjE4IFYgMzE2IDEyMDAgYSBGZihpKTM3NiAxMjAzIHkgRm8ob3IpNDg3CisxMjAwIHkgRmYoaClwIDUxMiAxMTQ3IDMxNyA0IHYgNTEyIDEyMDMgYSBGZShCYWMpbihrc3BhY2UpcAorNTEyIDEyMTggViA4MjQgMTIwMCBhIEZmKGkpNjMwIDEzMTIgeSBGbyhEZWxldGUpaSh0aGUpZChjKW0oaGFyYWN0ZXIpaQorKHRvKWYodGhlKWcobGVmdClnKG9mKWYodGhlKWgoY3Vyc29yLikxNTAgMTQ2NyB5IEZnKEMtZCkzMzYKK2IgRm8oRGVsZXRlKTMzIGIodGhlKWQoYyltKGhhcmFjdGVyKWkodW5kZXJuZWF0aClkKHRoZSlpKGN1cnNvci4pMTUwCisxNjIyIHkoUHJpbiltKHRpbmcpZyhjKW0oaGFyYWN0ZXJzKTYzMCAxNzMyIHkoSW5zZXJ0KWYodGhlKWcoYyltCisoaGFyYWN0ZXIpaShpbiltKHRvKWcodGhlKWUobGluZSloKGF0KWcodGhlKWcoY3Vyc29yLikxNTAKKzE4ODcgeSBGZyhDLV8pZSBGbyhvcilpIEZnKEMteCllKEMtdSk2MzAgMTk5NyB5IEZvKFVuZG8payh0aGUpaChsYXN0KWcKKyhlZGl0aW5nKWcoY29tbWFuZC4pNTAgYihZKS04IGIob3UpMzQgYihjYW4pZih1bmRvKWcoYWxsKWgodGhlKWYodyltKGEpCittKHkpaShiYWMpbShrKWYodG8pZyhhbilnKGVtcHQpbSh5KTYzMCAyMTA2IHkobGluZS4pMTUwCisyMjYyIHkoXChEZXApcyhlbmRpbmcpZyhvbilnKHkpbShvdXIpZyhjb25cMDE0Z3VyYXRpb24sKWgodGhlKTE3MjYKKzIyNTkgeSBGZihoKXAgMTc1MCAyMjA1IFYgMTc1MCAyMjYyIGEgRmUoQmFjKW4oa3NwYWNlKXAKKzE3NTAgMjI3NyBWIDIwNjMgMjI1OSBhIEZmKGkpMjEyNyAyMjYyIHkgRm8oayltKGV5KWcoYilzKGUpZShzZXQpaCh0byloCisoZGVsZXRlKWcodGhlKWYoYyltKGhhcmFjdGVyKWkodG8pZih0aGUpMTUwIDIzNzEgeShsZWZ0KWYob2YpZih0aGUpZworKGN1cnNvcilmKGFuZCloKHRoZSkxMTkyIDIzNjggeSBGZihoKXAgMTIxNiAyMzE1IDE0NgorNCB2IDEyMTYgMjM3MSBhIEZlKERFTClwIDEyMTYgMjM4NiBWIDEzNTggMjM2OCBhIEZmKGkpMTQyMQorMjM3MSB5IEZvKGspbShleSlnKHNldCloKHRvKWcoZGVsZXRlKWcodGhlKWYoYyltKGhhcmFjdGVyKWkodW5kZXJuZWF0aCkKK2ModGhlKWkoY3Vyc29yLCloKGxpayltKGUpMTUwIDI0ODEgeSBGZyhDLWQpcCBGbygsKWMocmF0aGVyKWcodGhhbilnCisodGhlKWgoYyltKGhhcmFjdGVyKWgodG8pZih0aGUpZihsZWZ0KWgob2YpZyh0aGUpZihjdXJzb3IuXCkpMTUwCisyNjk4IHkgRmMoMS4yLjIpNjMgYihSZWFkbGluZSk0MCBiKE1vKW0odiltKGVtZW4pbSh0KWgoQ29tbWFuZHMpMjc1CisyOTQwIHkgRm8oVGhlKTI1IGIoYWIpcyhvKW0odiltKGUpaSh0YWJsZSlnKGRlc2NyaWIpcyhlcylmKHRoZSlnKG1vc3QpaAorKGJhc2ljKWYoayltKGV5c3Ryb2spbShlcylpKHRoYXQpZih5KW0ob3UpZihuZWVkKWcoaW4pZyhvcmRlcilmKHRvKWkKKyhkbylmKGVkaXRpbmcpMTUwIDMwNTAgeShvZilnKHRoZSlmKGlucHV0KWcobGluZS4pMzkKK2IoRiktOCBiKG9yKTI3IGIoeSltKG91cillKGNvbiltKHYpbShlbmllbmNlLClrKG1hbiltKHkpYyhvdGhlciloCisoY29tbWFuZHMpZihoYSltKHYpbShlKWkoYilzKGVlbillKGFkZGVkKWcoaW4pZyhhZGRpdGlvbikxNTAKKzMxNjAgeSh0bykzMyBiIEZnKEMtYilwIEZvKCwpZSBGZyhDLWYpcCBGbygsKWggRmcoQy1kKXAKK0ZvKCwpZyhhbmQpMTA0MyAzMTU3IHkgRmYoaClwIDEwNjcgMzEwNCBWIDEwNjcgMzE2MCBhCitGZShERUwpcCAxMDY3IDMxNzUgViAxMjA5IDMxNTcgYSBGZihpKTEyMzkgMzE2MCB5IEZvKC4pNDUKK2IoSGVyZSkzMyBiKGFyZSlmKHNvbWUpZyhjb21tYW5kcylnKGZvcilnKG1vKW0odmluZyloKG1vcmUpZihyYXBpZGx5KWYKKyhhYilzKG91dCloKHRoZSkxNTAgMzI2OSB5KGxpbmUuKTE1MCAzNDI0IHkgRmcoQy1hKTMzNgorYiBGbyhNbyltKHYpbShlKTMyIGIodG8pZyh0aGUpZShzdGFydCloKG9mKWcodGhlKWYobGluZS4pMTUwCiszNTc5IHkgRmcoQy1lKTMzNiBiIEZvKE1vKW0odiltKGUpMzIgYih0bylnKHRoZSllKGVuZClnKG9mKWcodGhlKWgKKyhsaW5lLikxNTAgMzczNSB5IEZnKE0tZikzMzYgYiBGbyhNbyltKHYpbShlKTMyIGIoZm9ydyltKGFyZCllKGEpaCh3KW0KKyhvcmQsKWYod2hlcmUpZyhhKWgodyltKG9yZClmKGlzKWcoY29tcClzKG9zZWQpZyhvZiloKGxldHRlcnMpaChhbmQpZAorKGRpZ2l0cy4pMTUwIDM4OTAgeSBGZyhNLWIpMzM2IGIgRm8oTW8pbSh2KW0oZSkzMiBiKGJhYyltKGt3KW0oYXJkKWYoYSkKK2codyltKG9yZC4pMTUwIDQwNDUgeSBGZyhDLWwpMzM2IGIgRm8oQ2xlYXIpMzEgYih0aGUpZihzY3JlZW4sKWgKKyhyZXByaW4pbSh0aW5nKWYodGhlKWgoY3VycmVuKW0odClmKGxpbmUpaChhdClnKHRoZSlmKHRvcC4pMjc1Cis0MjAwIHkoTm90aWNlKWMoaG8pbSh3KWYgRmcoQy1mKWUgRm8obW8pbSh2KW0oZXMpaihmb3J3KW0oYXJkKWUoYSloKGMpbQorKGhhcmFjdGVyLClqKHdoaWxlKWQgRmcoTS1mKWUgRm8obW8pbSh2KW0oZXMpaihmb3J3KW0oYXJkKWUoYSloKHcpbQorKG9yZC4pMzkgYihJdCkyNCBiKGlzKWgoYSlnKGxvKXMob3NlKTE1MCA0MzEwIHkoY29uKW0odiltKGVuKW0odGlvbikzMgorYih0aGF0KWYoY29uKW0odHJvbClnKGspbShleXN0cm9rKW0oZXMpaChvcClzKGVyYXRlKWUob24pZyhjKW0KKyhoYXJhY3RlcnMpaCh3aGlsZSlmKG1ldGEpaChrKW0oZXlzdHJvayltKGVzKWgob3ApcyhlcmF0ZSllKG9uKTE1MAorNDQxOSB5KHcpbShvcmRzLikxNTAgNDYzNyB5IEZjKDEuMi4zKTYzIGIoUmVhZGxpbmUpNDAKK2IoS2lsbGluZylpKENvbW1hbmRzKTI3NSA0ODc5IHkgRmQoS2lsbGluZylqIEZvKHRleHQpMzkKK2IobWVhbnMpZSh0byloKGRlbGV0ZSlnKHRoZSlnKHRleHQpZyhmcm9tKWYodGhlKWcobGluZSwpaihidXQpZCh0byloCisoc2EpbSh2KW0oZSloKGl0KWUoYSltKHcpbShhKW0oeSlqKGZvcilkKGxhdGVyKWgodXNlLCkxNTAKKzQ5ODggeSh1c3VhbGx5KWMoYiltKHkpZyBGZCh5KW0oYW5raW5nKTQyIGIgRm8oXChyZS1pbnNlcnRpbmdcKSkzNQorYihpdClnKGJhYyltKGspZyhpbiltKHRvKWcodGhlKWYobGluZS4pNTIgYihcKGBDdXQnKTM1CitiKGFuZCllKGBwYXN0ZScpaShhcmUpZyhtb3JlKWYocmVjZW4pbSh0KTE1MCA1MDk4IHkoamFyZ29uKWQoZm9yKWYKKyhga2lsbCcpaChhbmQpZihgeSltKGFuaycuXCkpMjc1IDUyMzAgeShJZilmKHRoZSlpKGRlc2NyaXB0aW9uKWYoZm9yKWcKKyhhKWgoY29tbWFuZClmKHNhKW0oeXMpZyh0aGF0KWgoaXQpZyhga2lsbHMnKWcodGV4dCwpaCh0aGVuKWUoeSltKG91KWcKKyhjYW4paChiKXMoZSllKHN1cmUpaCh0aGF0KWgoeSltKG91KTE1MCA1MzQwIHkoY2FuKWcoZ2V0KWcodGhlKWcodGV4dClnCisoYmFjKW0oaylnKGluKWYoYSloKGRpXDAxM2VyZW4pbSh0KWcoXChvcilnKHRoZSlmKHNhbWVcKSloKHBsYWNlKWgKKyhsYXRlci4pcCBlb3AgZW5kCislJVBhZ2U6IDMgNworVGVYRGljdCBiZWdpbiAzIDYgYm9wIDE1MCAtMTE2IGEgRm8oQ2hhcHRlcikzMCBiKDE6KTQxCitiKENvbW1hbmQpMjkgYihMaW5lKWkoRWRpdGluZykyMTUzIGIoMykyNzUgMjk5IHkoV2hlbikyMworYih5KW0ob3UpZyh1c2UpZyhhKWgoa2lsbClnKGNvbW1hbmQsKWcodGhlKWcodGV4dClnKGlzKWYoc2EpbSh2KW0oZWQpaQorKGluKWUoYSlnIEZkKGtpbGwtcmluZylwIEZvKC4pMzkgYihBbiltKHkpMjQgYihuKW0odW0pbShiKXMoZXIpZShvZiloCisoY29uc2VjdXRpdiltKGUpMTUwIDQwOCB5KGtpbGxzKTMxIGIoc2EpbSh2KW0oZSlpKGFsbClmKG9mKWYodGhlKWcKKyhraWxsZWQpaCh0ZXh0KWcodG9nZXRoZXIsKWcoc28pZyh0aGF0KWYod2hlbilmKHkpbShvdSloKHkpbShhbmspaChpdClmCisoYmFjKW0oaywpaCh5KW0ob3UpZyhnZXQpZyhpdClmKGFsbC4pNDMgYihUaGUpMTUwIDUxOAoreShraWxsKTMzIGIocmluZylmKGlzKWcobm90KWgobGluZSlnKHNwKXMoZWNpXDAxNGM7KWcodGhlKWcodGV4dClnCisodGhhdClnKHkpbShvdSlnKGtpbGxlZClmKG9uKWgoYSlmKHByZXZpb3VzbHkpZyh0KW0oeXApcyhlZCloKGxpbmUpZgorKGlzKWgoYSltKHYpLTUgYihhaWxhYmxlKTE1MCA2MjggeSh0bykzMSBiKGIpcyhlKWYoeSltKGFuayltKGVkKWgoYmFjKW0KKyhrKWcobGF0ZXIsKWgod2hlbilkKHkpbShvdSlpKGFyZSlnKHQpbSh5cGluZylmKGFub3RoZXIpaChsaW5lLikyNzUKKzc2MCB5KEhlcmUpZihpcyloKHRoZSlmKGxpc3QpaChvZilnKGNvbW1hbmRzKWYoZm9yKWcoa2lsbGluZyloKHRleHQuKQorMTUwIDkxNiB5IEZnKEMtaykzMzYgYiBGbyhLaWxsKTMxIGIodGhlKWYodGV4dClpKGZyb20pZSh0aGUpZyhjdXJyZW4pbQorKHQpZyhjdXJzb3IpZyhwKXMob3NpdGlvbiloKHRvKWcodGhlKWYoZW5kKWcob2YpZyh0aGUpaChsaW5lLikxNTAKKzEwNzIgeSBGZyhNLWQpMzM2IGIgRm8oS2lsbCkyNyBiKGZyb20pZih0aGUpZyhjdXJzb3IpZyh0byloKHRoZSlmKGVuZClnCisob2YpaCh0aGUpZihjdXJyZW4pbSh0KWcodyltKG9yZCwpaChvciwpaChpZillKGIpcyhldCltKHcpbShlZW4paCh3KW0KKyhvcmRzLClnKHRvKWcodGhlKTYzMCAxMTgyIHkoZW5kKWoob2YpZyh0aGUpaChuZXh0KWYodyltKG9yZC4pNDEKK2IoVyktOCBiKG9yZCkzMCBiKGIpcyhvdW5kYXJpZXMpZihhcmUpaSh0aGUpZyhzYW1lKWYoYXMpaCh0aG9zZSlnKHVzZWQpCitmKGIpbSh5KWcgRmcoTS1mKXAgRm8oLikxNTAgMTMzNyB5IEZnKE0tKTI0NiAxMzM0IHkgRmYoaClwCisyNzAgMTI4MSAxNDYgNCB2IDI3MCAxMzM3IGEgRmUoREVMKXAgMjcwIDEzNTMgViA0MTEgMTMzNAorYSBGZihpKTYzMCAxMzM3IHkgRm8oS2lsbCloKGZyb20pZih0aGUpaChjdXJzb3IpZih0aGUpZyhzdGFydCloKG9mKWcKKyh0aGUpZyhjdXJyZW4pbSh0KWYodyltKG9yZCwpaChvciwpZihpZiloKGIpcyhldCltKHcpbShlZW4pZyh3KW0ob3JkcywpCitmKHRvKWkodGhlKTYzMCAxNDQ3IHkoc3RhcnQpMzkgYihvZilmKHRoZSloKHByZXZpb3VzKWYodyltKG9yZC4pNjQKK2IoVyktOCBiKG9yZCkzOSBiKGIpcyhvdW5kYXJpZXMpZShhcmUpaSh0aGUpZihzYW1lKWgoYXMpZyh0aG9zZSlmKHVzZWQpCitnKGIpbSh5KTYzMCAxNTU3IHkgRmcoTS1iKXAgRm8oLikxNTAgMTcxMiB5IEZnKEMtdykzMzYKK2IgRm8oS2lsbCkzMiBiKGZyb20pZSh0aGUpaShjdXJzb3IpZSh0bylpKHRoZSlnKHByZXZpb3VzKWUod2hpdGVzcGFjZS4pCis0NCBiKFRoaXMpMzEgYihpcylnKGRpXDAxM2VyZW4pbSh0KWgodGhhbilmIEZnKE0tKTM1NTUKKzE3MDkgeSBGZihoKXAgMzU3OCAxNjU2IFYgMzU3OCAxNzEyIGEgRmUoREVMKXAgMzU3OCAxNzI4CitWIDM3MjAgMTcwOSBhIEZmKGkpNjMwIDE4MjIgeSBGbyhiKXMoZWNhdXNlKWYodGhlKWgodyltKG9yZClmKGIpcworKG91bmRhcmllcylmKGRpXDAxM2VyLikyNzUgMTk3OCB5KEhlcmUpNDIgYihpcylmKGhvKW0odyloKHRvKWcKK0ZkKHkpbShhbmspNDcgYiBGbyh0aGUpNDIgYih0ZXh0KWcoYmFjKW0oayloKGluKW0odG8pZih0aGUpZyhsaW5lLik3NAorYihZKS04IGIoYW5raW5nKTQzIGIobWVhbnMpZSh0byloKGNvcCltKHkpaCh0aGUpZShtb3N0LSkxNTAKKzIwODcgeShyZWNlbiltKHRseS1raWxsZWQpMzMgYih0ZXh0KWUoZnJvbSlmKHRoZSlnKGtpbGwpaShidVwwMTNlci4pMTUwCisyMjQzIHkgRmcoQy15KTMzNiBiIEZvKFkpLTggYihhbmspMzEgYih0aGUpZihtb3N0KWgocmVjZW4pbSh0bHkpaAorKGtpbGxlZClmKHRleHQpZyhiYWMpbShrKWcoaW4pbSh0byloKHRoZSllKGJ1XDAxM2VyKWcoYXQpaCh0aGUpZgorKGN1cnNvci4pMTUwIDIzOTkgeSBGZyhNLXkpMzM2IGIgRm8oUm90YXRlKTM2IGIodGhlKWYoa2lsbC1yaW5nLClpKGFuZCkKK2QoeSltKGFuayloKHRoZSlmKG5ldylnKHRvcC4pNTQgYihZKS04IGIob3UpMzUgYihjYW4pZyhvbmx5KWYoZG8paAorKHRoaXMpZihpZiloKHRoZSlnKHByaW9yKTYzMCAyNTA5IHkoY29tbWFuZCkzMCBiKGlzKWgKK0ZnKEMteSllIEZvKG9yKWggRmcoTS15KXAgRm8oLikxNTAgMjcyNyB5IEZjKDEuMi40KTYzCitiKFJlYWRsaW5lKTQwIGIoQXJndW1lbiltKHRzKTI3NSAyOTcwIHkgRm8oWSktOCBiKG91KTI5CitiKGNhbiloKHBhc3MpZihuKW0odW1lcmljKWcoYXJndW1lbiltKHRzKWcodG8paChSZWFkbGluZSlnKGNvbW1hbmRzLik0MAorYihTb21ldGltZXMpMzAgYih0aGUpZihhcmd1bWVuKW0odCloKGFjdHMpMTUwIDMwNzkgeShhcyk0MAorYihhKWgocmVwKXMoZWF0KWYoY291biltKHQsKWoob3RoZXIpZSh0aW1lcylmKGl0KWgoaXMpZih0aGUpZworRmkoc2lnbik0NyBiIEZvKG9mKTQxIGIodGhlKWYoYXJndW1lbiltKHQpZyh0aGF0KWgoaXMpZihzaWduaVwwMTRjYW4pbQorKHQuKTcxIGIoSWYpNDAgYih5KW0ob3UpMTUwIDMxODkgeShwYXNzKTMzIGIoYSloKG5lZ2F0aXYpbShlKWkoYXJndW1lbikKK20odCllKHRvKWcoYSlnKGNvbW1hbmQpZih3aGljKW0oaClnKG5vcm1hbGx5KWgoYWN0cylnKGluKWYoYSloKGZvcncpbQorKGFyZClmKGRpcmVjdGlvbiwpaSh0aGF0KTE1MCAzMjk4IHkoY29tbWFuZClnKHdpbGwpaChhY3QpZyhpbilmKGEpaAorKGJhYyltKGt3KW0oYXJkKWYoZGlyZWN0aW9uLik1NyBiKEYpLTggYihvcikzNiBiKGV4YW1wbGUsKWgodG8pZihraWxsKWcKKyh0ZXh0KWcoYmFjKW0oaylnKHRvKWcodGhlKWcoc3RhcnQpZyhvZikxNTAgMzQwOCB5KHRoZSkzMQorYihsaW5lLClnKHkpbShvdSlmKG1pZ2gpbSh0KWgodCltKHlwKXMoZSlnKGApcCBGbihNLS0pZihDLWspcAorRm8oJy4pMjc1IDM1NDEgeShUaGUpZChnZW5lcmFsKWkodyltKGEpbSh5KWgodG8pZShwYXNzKWcobiltKHVtZXJpYylnCisoYXJndW1lbiltKHRzKWgodG8pZyhhKWYoY29tbWFuZClnKGlzKWcodG8paCh0KW0oeXApcyhlKWYobWV0YSlpCisoZGlnaXRzKWUoYilzKGVmb3JlKTE1MCAzNjUwIHkodGhlKWooY29tbWFuZC4pNDIgYihJZikzMAorYih0aGUpaChcMDE0cnN0KWYoYGRpZ2l0JylpKHQpbSh5cClzKGVkKWYoaXMpZyhhKWcobWluKW0odXMpZihzaWduKWgKKyhcKGApcCBGbigtKXAgRm8oJ1wpLCloKHRoZW4pZih0aGUpZyhzaWduKWYob2YpaCh0aGUpZyhhcmd1bWVuKW0odCkxNTAKKzM3NjAgeSh3aWxsKTM5IGIoYilzKGUpZShuZWdhdGl2KW0oZS4pNjYgYihPbmNlKTM4IGIoeSltKG91KWgoaGEpbSh2KW0KKyhlKWcodCltKHlwKXMoZWQpZihvbmUpaChtZXRhKWcoZGlnaXQpZyh0bylmKGdldClpKHRoZSllKGFyZ3VtZW4pbSh0KWgKKyhzdGFydGVkLClpKHkpbShvdSkxNTAgMzg2OSB5KGNhbikyOSBiKHQpbSh5cClzKGUpZyh0aGUpZyhyZW1haW5kZXIpZgorKG9mKWgodGhlKWcoZGlnaXRzLCloKGFuZClmKHRoZW4pZih0aGUpaChjb21tYW5kLik0MAorYihGKS04IGIob3IpMzAgYihleGFtcGxlLClnKHRvKWYoZ2l2KW0oZSlpKHRoZSllIEZnKEMtZCkxNTAKKzM5NzkgeSBGbyhjb21tYW5kKTM3IGIoYW4pZyhhcmd1bWVuKW0odCloKG9mKWcoMTAsKWkoeSltKG91KWUoY291bGQpZgorKHQpbSh5cClzKGUpaChgKXAgRm4oTS0xKTI5IGIoMCloKEMtZClwIEZvKCcsKTM5IGIod2hpYyltKGgpZSh3aWxsKWgKKyhkZWxldGUpaCh0aGUpZShuZXh0KWgodGVuKTE1MCA0MDg5IHkoYyltKGhhcmFjdGVycykzMgorYihvbillKHRoZSloKGlucHV0KWUobGluZS4pMTUwIDQzMDcgeSBGYygxLjIuNSk2MyBiKFNlYXJjKW0oaGluZyk0MAorYihmb3IpaShDb21tYW5kcylnKGluKWYodGhlKWcoSGlzdG9yeSkyNzUgNDU1MCB5IEZvKFJlYWRsaW5lKTMyCitiKHBybyltKHZpZGVzKWgoY29tbWFuZHMpZihmb3IpZyhzZWFyYyltKGhpbmcpaCh0aHJvdWdoKWUodGhlKWkKKyhjb21tYW5kKWYoaGlzdG9yeSlnKGZvcilnKGxpbmVzKWcoY29uLSkxNTAgNDY1OSB5KHRhaW5pbmcpZihhKWcoc3ApcworKGVjaVwwMTRlZClmKHN0cmluZy4pNDAgYihUaGVyZSkzMCBiKGFyZSloKHQpbSh3KW0obyloKHNlYXJjKW0oaClmKG1vKXMKKyhkZXM6KTQwIGIgRmQoaW5jcmVtZW4pbSh0YWwpMzUgYiBGbyhhbmQpMzAgYiBGZChub24taW5jcmVtZW4pbSh0YWwpcAorRm8oLikyNzUgNDc5MiB5KEluY3JlbWVuKW0odGFsKWMoc2VhcmMpbShoZXMpaChiKXMoZWdpbillKGIpcyhlZm9yZSlnCisodGhlKWgodXNlcilmKGhhcyloKFwwMTRuaXNoZWQpZSh0KW0oeXBpbmcpaSh0aGUpZyhzZWFyYyltKGgpZyhzdHJpbmcuKQorMzkgYihBcykyNiBiKGVhYyltKGgpMTUwIDQ5MDIgeShjKW0oaGFyYWN0ZXIpMzcgYihvZillKHRoZSloKHNlYXJjKW0oaCkKK2coc3RyaW5nKWYoaXMpaCh0KW0oeXApcyhlZCwpZyhSZWFkbGluZSlnKGRpc3BsYSltKHlzKWcodGhlKWYobmV4dCloCisoZW4pbSh0cnkpZyhmcm9tKWUodGhlKWkoaGlzdG9yeSkxNTAgNTAxMSB5KG1hdGMpbShoaW5nKTI1CitiKHRoZSlmKHN0cmluZylnKHQpbSh5cClzKGVkKWcoc28pZyhmYXIuKTM5IGIoQW4pMjMgYihpbmNyZW1lbiltKHRhbClqCisoc2VhcmMpbShoKWUocmVxdWlyZXMpZyhvbmx5KWcoYXMpZyhtYW4pbSh5KWcoYyltKGhhcmFjdGVycylpKGFzKTE1MAorNTEyMSB5KG5lZWRlZClpKHRvKWkoXDAxNG5kKWQodGhlKWkoZGVzaXJlZClmKGhpc3RvcnkpaChlbiltKHRyeSktOAorYiguKTQxIGIoVCktOCBiKG8pMjkgYihzZWFyYyltKGgpaChiYWMpbShrdyltKGFyZClmKGluKWYodGhlKWgoaGlzdG9yeSkKK2coZm9yKWYoYSlpKHBhcnRpY3VsYXIpMTUwIDUyMzAgeShzdHJpbmcsKWcodCltKHlwKXMoZSlmCitGZyhDLXIpcCBGbyguKTQwIGIoVCltKHlwaW5nKTI5IGIgRmcoQy1zKWcgRm8oc2VhcmMpbShoZXMpaChmb3J3KW0oYXJkKQorZih0aHJvdWdoKWcodGhlKWcoaGlzdG9yeSktOCBiKC4pNDEgYihUaGUpMjkgYihjKW0oaGFyYWN0ZXJzKWkocHJlc2VuKW0KKyh0KTE1MCA1MzQwIHkoaW4pMzggYih0aGUpZyh2KS01IGIoYWx1ZSkzOCBiKG9mKWcodGhlKWcKK0ZuKGlzZWFyY2gtdGVybWluYXRvcnMpMzMgYiBGbyh2KS01IGIoYXJpYWJsZSkzOSBiKGFyZSlmKHVzZWQpZih0bylpCisodGVybWluYXRlKWcoYW4pZihpbmNyZW1lbiltKHRhbClwIGVvcCBlbmQKKyUlUGFnZTogNCA4CitUZVhEaWN0IGJlZ2luIDQgNyBib3AgMTUwIC0xMTYgYSBGbyg0KTI2NDUgYihHTlUpMzEgYihSZWFkbGluZSlnCisoTGlicmFyeSkxNTAgMjk5IHkoc2VhcmMpbShoLik2MyBiKElmKTM4IGIodGhhdClnKHYpLTUKK2IoYXJpYWJsZSkzOCBiKGhhcylnKG5vdClnKGIpcyhlZW4pZihhc3NpZ25lZCloKGEpZyh2KS01CitiKGFsdWUsKTQwIGIodGhlKTI1NzggMjk2IHkgRmYoaClwIDI2MDIgMjQzIDEzOSA0IHYgMjYwMgorMjk5IGEgRmUoRVNDKXAgMjYwMiAzMTQgViAyNzM2IDI5NiBhIEZmKGkpMjgwNCAyOTkgeQorRm8oYW5kKWQgRmcoQy1KKWYgRm8oYyltKGhhcmFjdGVycylrKHdpbGwpMTUwIDQwOCB5KHRlcm1pbmF0ZSlqKGFuKWcKKyhpbmNyZW1lbiltKHRhbClnKHNlYXJjKW0oaC4pNzggYiBGZyhDLWcpNDEgYiBGbyh3aWxsKWkoYWIpcyhvcnQpZihhbilnCisoaW5jcmVtZW4pbSh0YWwpaShzZWFyYyltKGgpZihhbmQpZihyZXN0b3JlKWgodGhlKTE1MAorNTE4IHkob3JpZ2luYWwpMzAgYihsaW5lLik0MSBiKFdoZW4pMjggYih0aGUpaChzZWFyYyltKGgpaChpcylmCisodGVybWluYXRlZCwpaCh0aGUpZihoaXN0b3J5KWcoZW4pbSh0cnkpZyhjb24pbSh0YWluaW5nKWgodGhlKWYoc2VhcmMpbQorKGgpaChzdHJpbmcpMTUwIDYyOCB5KGIpcyhlY29tZXMpaCh0aGUpZihjdXJyZW4pbSh0KWcobGluZS4pMjc1Cis3NjkgeShUKS04IGIobykzMSBiKFwwMTRuZCllKG90aGVyKWoobWF0YyltKGhpbmcpZyhlbiltKHRyaWVzKWcoaW4pZQorKHRoZSloKGhpc3RvcnkpZyhsaXN0LCloKHQpbSh5cClzKGUpZyBGZyhDLXIpZSBGbyhvciloCitGZyhDLXMpZiBGbyhhcyloKGFwcHJvcHJpYXRlLik0MyBiKFRoaXMpMTUwIDg3OCB5KHdpbGwpMjYKK2Ioc2VhcmMpbShoKWgoYmFjKW0oa3cpbShhcmQpZyhvcilmKGZvcncpbShhcmQpZyhpbilmKHRoZSlpKGhpc3RvcnkpZgorKGZvcilnKHRoZSlnKG5leHQpZyhlbiltKHRyeSloKG1hdGMpbShoaW5nKWcodGhlKWYoc2VhcmMpbShoKWgoc3RyaW5nKQorMTUwIDk4OCB5KHQpbSh5cClzKGVkKTM3IGIoc28paChmYXIuKTYzIGIoQW4pbSh5KTM4IGIob3RoZXIpZihrKW0oZXkpaQorKHNlcXVlbmNlKWYoYilzKG91bmQpZSh0bylpKGEpZyhSZWFkbGluZSloKGNvbW1hbmQpZSh3aWxsKWgodGVybWluYXRlKWgKKyh0aGUpMTUwIDEwOTggeShzZWFyYyltKGgpMjIgYihhbmQpZShleGVjdXRlKWoodGhhdCllKGNvbW1hbmQuKTM4CitiKEYpLTggYihvcikyMiBiKGluc3RhbmNlLCloKGEpMjEyNyAxMDk1IHkgRmYoaClwIDIxNTEKKzEwNDIgMTUxIDQgdiAyMTUxIDEwOTggYSBGZShSRVQpcCAyMTUxIDExMTMgViAyMjk4IDEwOTUKK2EgRmYoaSkyMzQ5IDEwOTggeSBGbyh3aWxsKWUodGVybWluYXRlKWgodGhlKWYoc2VhcmMpbShoKWgoYW5kKWUKKyhhY2NlcHQpMTUwIDEyMDcgeSh0aGUpMzAgYihsaW5lLClnKHRoZXJlYiltKHkpZihleGVjdXRpbmcpaSh0aGUpZQorKGNvbW1hbmQpZyhmcm9tKWcodGhlKWgoaGlzdG9yeSlmKGxpc3QuKTQxIGIoQSkyOSBiKG1vKW0odiltKGVtZW4pbSh0KWoKKyhjb21tYW5kKWQod2lsbCkxNTAgMTMxNyB5KHRlcm1pbmF0ZSlpKHRoZSlnKHNlYXJjKW0oaCwpZyhtYWspbShlKWgKKyh0aGUpZShsYXN0KWgobGluZSlnKGZvdW5kKWUodGhlKWkoY3VycmVuKW0odClmKGxpbmUsKWgoYW5kKWYoYilzKGVnaW4pCitnKGVkaXRpbmcuKTI3NSAxNDU4IHkoUmVhZGxpbmUpMzUgYihyZW1lbSltKGIpcyhlcnMpZih0aGUpaChsYXN0KWgKKyhpbmNyZW1lbiltKHRhbClnKHNlYXJjKW0oaClmKHN0cmluZy4pNTQgYihJZikzNCBiKHQpbSh3KW0obylqCitGZyhDLXIpcCBGbyhzKWMoYXJlKWkodCltKHlwKXMoZWQpZyh3aXRob3V0KTE1MCAxNTY3Cit5KGFuKW0oeSlpKGluKW0odGVydiltKGVuaW5nKWcoYyltKGhhcmFjdGVycyloKGRlXDAxNG5pbmcpZShhKWgobmV3KWYKKyhzZWFyYyltKGgpaChzdHJpbmcsKWgoYW4pbSh5KWYocmVtZW0pbShiKXMoZXJlZCllKHNlYXJjKW0oaClpKHN0cmluZylnCisoaXMpMTUwIDE2NzcgeSh1c2VkLikyNzUgMTgxOCB5KE5vbi1pbmNyZW1lbiltKHRhbCk0OAorYihzZWFyYyltKGhlcylnKHJlYWQpZSh0aGUpaChlbiltKHRpcmUpaChzZWFyYyltKGgpZihzdHJpbmcpZyhiKXMKKyhlZm9yZSlmKHN0YXJ0aW5nKWgodG8paChzZWFyYyltKGgpZihmb3IpMTUwIDE5MjggeShtYXRjKW0oaGluZylkCisoaGlzdG9yeSllKGxpbmVzLik3OCBiKFRoZSk0MiBiKHNlYXJjKW0oaCloKHN0cmluZylnKG1hKW0oeSlnKGIpcyhlKWYKKyh0KW0oeXApcyhlZClnKGIpbSh5KWcodGhlKWgodXNlcilmKG9yKWgoYilzKGUpZihwYXJ0KWcob2YpaCh0aGUpMTUwCisyMDM3IHkoY29uKW0odGVuKW0odHMpMzIgYihvZilmKHRoZSlmKGN1cnJlbiltKHQpZyhsaW5lLikxNTAKKzIzMTEgeSBGbSgxLjMpNjggYihSZWFkbGluZSk0NyBiKEluaXQpZShGaWxlKTI3NSAyNTYyCit5IEZvKEFsdGhvdWdoKWcodGhlKWcoUmVhZGxpbmUpaChsaWJyYXJ5KWUoY29tZXMpaSh3aXRoKWYoYSloKHNldClmKG9mKQorZyhFbWFjcy1saWspbShlKWkoayltKGV5YmluZGluZ3MpZShpbnN0YWxsZWQpMTUwIDI2NzIKK3koYiltKHkpZChkZWZhdWx0LClpKGl0KWYoaXMpZShwKXMob3NzaWJsZSlnKHRvKWkodXNlKWUoYSloKGRpXDAxM2VyZW4pCittKHQpZyhzZXQpZyhvZilnKGspbShleWJpbmRpbmdzLik3NCBiKEFuKW0oeSk0MiBiKHVzZXIpZihjYW4paAorKGN1c3RvbWl6ZSkxNTAgMjc4MSB5KHByb2dyYW1zKTMyIGIodGhhdCloKHVzZSlmKFJlYWRsaW5lKWgoYiltKHkpZworKHB1dHRpbmcpZihjb21tYW5kcylnKGluKWcoYW4pZyBGZChpbnB1dHJjKTM3IGIgRm8oXDAxNGxlLClkKGNvbiltKHYpbQorKGVuKW0odGlvbmFsbHkpaChpbilkKGhpcykxNTAgMjg5MSB5KGhvbWUpaChkaXJlY3RvcnkpLTgKK2IoLik1MCBiKFRoZSkzMyBiKG5hbWUpZyhvZilnKHRoaXMpZyhcMDE0bGUpaChpcylmKHRhayltKGVuKWgoZnJvbSlmCisodGhlKWcodiktNSBiKGFsdWUpMzQgYihvZilmKHRoZSlnKGVuKW0odmlyb25tZW4pbSh0KWgodiktNQorYihhcmlhYmxlKTE1MCAzMDAwIHkgRm4oSU5QVVRSQylwIEZvKC4pMzkgYihJZikzMCBiKHRoYXQpaCh2KS01CitiKGFyaWFibGUpMzEgYihpcylmKHVuc2V0LClnKHRoZSloKGRlZmF1bHQpZyhpcylmKGApcAorRm4ofi8uaW5wdXRyYylwIEZvKCcuKTI3NSAzMTQyIHkoV2hlbilmKGEpaChwcm9ncmFtKWYod2hpYyltKGgpaCh1c2VzKWYKKyh0aGUpaChSZWFkbGluZSlnKGxpYnJhcnkpZihzdGFydHMpaCh1cCwpZih0aGUpaChpbml0KWcoXDAxNGxlKWYoaXMpaAorKHJlYWQsKWcoYW5kKWYodGhlKTE1MCAzMjUxIHkoayltKGV5KWkoYmluZGluZ3MpZShhcmUpaShzZXQuKTI3NQorMzM5MiB5KEluKTI2IGIoYWRkaXRpb24sKWkodGhlKWYgRm4oQy14KWkoQy1yKWQgRm8oY29tbWFuZCloKHJlLXJlYWRzKWcKKyh0aGlzKWYoaW5pdCloKFwwMTRsZSwpaCh0aCltKHVzKWYoaW5jb3JwKXMob3JhdGluZylnKGFuKW0oeSlnKGMpbQorKGhhbmdlcykxNTAgMzUwMiB5KHRoYXQpayh5KW0ob3UpZyhtaWdoKW0odClnKGhhKW0odiltKGUpZyhtYWRlKWcodG8pZworKGl0LikxNTAgMzczOSB5IEZjKDEuMy4xKTYzIGIoUmVhZGxpbmUpNDAgYihJbml0KWgoRmlsZSlnKFN5biltKHRheCkyNzUKKzM5OTAgeSBGbyhUaGVyZSkzMyBiKGFyZSloKG9ubHkpZyhhKWcoZmV3KWYoYmFzaWMpaChjb25zdHJ1Y3RzKWcoYWxsbyltCisodyltKGVkKWgoaW4pZih0aGUpZyhSZWFkbGluZSlnKGluaXQpZyhcMDE0bGUuKTUxIGIoQmxhbmspMzQKK2IobGluZXMpZyhhcmUpMTUwIDQxMDAgeShpZ25vcmVkLik3MiBiKExpbmVzKTQxIGIoYilzKGVnaW5uaW5nKWYod2l0aCloCisoYSlnKGApcCBGbigjKXAgRm8oJylnKGFyZSloKGNvbW1lbiltKHRzLik3MyBiKExpbmVzKTQxCitiKGIpcyhlZ2lubmluZylmKHdpdGgpZyhhKWkoYClwIEZuKCQpcCBGbygnKWYoaW5kaWNhdGUpMTUwCis0MjA5IHkoY29uZGl0aW9uYWwpMjkgYihjb25zdHJ1Y3RzKWYoXChzZWUpZyhTZWN0aW9uKWgoMS4zLjIpZworKFtDb25kaXRpb25hbClnKEluaXQpZShDb25zdHJ1Y3RzXSwpaShwYWdlKWYoOVwpLik0MQorYihPdGhlcikyNyBiKGxpbmVzKTE1MCA0MzE5IHkoZGVub3RlKWsodiktNSBiKGFyaWFibGUpMzEKK2Ioc2V0dGluZ3MpZyhhbmQpZihrKW0oZXkpaChiaW5kaW5ncy4pMTUwIDQ0ODggeShWKS04CitiKGFyaWFibGUpMzIgYihTZXR0aW5ncyk2MzAgNDU5OCB5KFkpLTggYihvdSk0MSBiKGNhbilnKG1vKXMoZGlmeSllCisodGhlKWkocnVuLXRpbWUpZihiKXMoZWhhKW0odmlvcilnKG9mKWgoUmVhZGxpbmUpZyhiKW0oeSlmKGFsdGVyaW5nKWgKKyh0aGUpZyh2KS01IGIoYWx1ZXMpNDEgYihvZik2MzAgNDcwNyB5KHYpLTUgYihhcmlhYmxlcykzNAorYihpbilmKFJlYWRsaW5lKWkodXNpbmcpZSh0aGUpZyBGbihzZXQpZyBGbyhjb21tYW5kKWcod2l0aGluKWcodGhlKWgKKyhpbml0KWcoXDAxNGxlLik1MCBiKFRoZSkzMyBiKHN5biltKHRheCk2MzAgNDgxNyB5KGlzKWQoc2ltcGxlOik4NzAKKzQ5NTUgeSBGbihzZXQpNDcgYiBGZyh2YXJpYWJsZSk1NiBiKHZhbHVlKTYzMCA1MDkzIHkKK0ZvKEhlcmUsKTI5IGIoZm9yKWUoZXhhbXBsZSwpaChpcylnKGhvKW0odylmKHRvKWgoYyltKGhhbmdlKWcoZnJvbSlmCisodGhlKWcoZGVmYXVsdCloKEVtYWNzLWxpayltKGUpaChrKW0oZXkpZihiaW5kaW5nKWUodG8pNjMwCis1MjAyIHkodXNlKWsgRm4odmkpZyBGbyhsaW5lKWgoZWRpdGluZylnKGNvbW1hbmRzOik4NzAKKzUzNDAgeSBGbihzZXQpNDcgYihlZGl0aW5nLW1vZGUpZCh2aSlwIGVvcCBlbmQKKyUlUGFnZTogNSA5CitUZVhEaWN0IGJlZ2luIDUgOCBib3AgMTUwIC0xMTYgYSBGbyhDaGFwdGVyKTMwIGIoMTopNDEKK2IoQ29tbWFuZCkyOSBiKExpbmUpaShFZGl0aW5nKTIxNTMgYig1KTYzMCAyOTkgeShWKS04CitiKGFyaWFibGUpMzYgYihuYW1lcylmKGFuZClnKHYpLTUgYihhbHVlcywpMzYgYih3aGVyZSlmKGFwcHJvcHJpYXRlLCloCisoYXJlKWcocmVjb2duaXplZClnKHdpdGhvdXQpZihyZWdhcmQpNjMwIDQwOCB5KHRvKWMoY2FzZS4pNDIKK2IoVW5yZWNvZ25pemVkKTMxIGIodiktNSBiKGFyaWFibGUpMzEgYihuYW1lcylnKGFyZSlmKGlnbm9yZWQuKTYzMAorNTM2IHkoQm8pcyhvbGVhbiljKHYpLTUgYihhcmlhYmxlcykyNiBiKFwodGhvc2UpZyh0aGF0KWcoY2FuKWYoYilzKGUpZgorKHNldClpKHRvKWcob24pZihvcilnKG9cMDEzKTcgYihcKSkyNSBiKGFyZSloKHNldClmKHRvKWgob24pZihpZilnKHRoZSkKK2codiktNSBiKGFsdWUpMjYgYihpcyk2MzAgNjQ2IHkobiltKHVsbCllKG9yKWcoZW1wdCltKHkpLTgKK2IoLCkyNyBiIEZkKG9uKWQgRm8oXChjYXNlLWluc2Vuc2l0aXYpbShlXCksKTI5IGIob3IpMjQKK2IoMS4pMzkgYihBbiltKHkpMjUgYihvdGhlcilmKHYpLTUgYihhbHVlKTI1IGIocmVzdWx0cylmKGluKWcodGhlKWcodikKKy01IGIoYXJpYWJsZSk2MzAgNzU2IHkoYilzKGVpbmcpMzAgYihzZXQpaCh0bylnKG9cMDEzLik2MzAKKzg4MyB5KEEpZihncmVhdClpKGRlYWwpZihvZilnKHJ1bi10aW1lKWYoYilzKGVoYSltKHZpb3IpZyhpcylnKGMpbQorKGhhbmdlYWJsZSlqKHdpdGgpZCh0aGUpZyhmb2xsbyltKHdpbmcpaSh2KS01IGIoYXJpYWJsZXMuKTYzMAorMTAyOSB5IEZuKGJlbGwtc3R5bGUpMTExMCAxMTM5IHkgRm8oQ29uKW0odHJvbHMpNDQgYih3aGF0KWcoaGFwcClzKGVucykKK2Uod2hlbiloKFJlYWRsaW5lKWkodyltKGFuKW0odHMpZih0byloKHJpbmcpZSh0aGUpaCh0ZXJtaS0pMTExMAorMTI0OSB5KG5hbCkzNyBiKGIpcyhlbGwuKTYxIGIoSWYpMzcgYihzZXQpaCh0bylnKGApcAorRm4obm9uZSlwIEZvKCcsKWcoUmVhZGxpbmUpZyhuZXYpbShlcilnKHJpbmdzKWUodGhlKWkoYilzKGVsbC4pNjEKK2IoSWYpMzYgYihzZXQpaSh0bykxMTEwIDEzNTggeShgKXAgRm4odmlzaWJsZSlwIEZvKCcsKTMyCitiKFJlYWRsaW5lKWkodXNlcylmKGEpZyh2aXNpYmxlKWcoYilzKGVsbClnKGlmKWcob25lKWcoaXMpZyhhKW0odiktNQorYihhaWxhYmxlLik1MSBiKElmKTMzIGIoc2V0KWcodG8pMTExMCAxNDY4IHkoYClwIEZuKGF1ZGlibGUpcAorRm8oJylqKFwodGhlKWkoZGVmYXVsdFwpLClpKFJlYWRsaW5lKWUoYXR0ZW1wdHMpZyh0byloKHJpbmcpZSh0aGUpZworKHRlcm1pbmFsJ3MpMTExMCAxNTc3IHkoYilzKGVsbC4pNjMwIDE3MjQgeSBGbihiaW5kLXR0eS1zcGVjaWFsLWNoYXJzKQorMTExMCAxODMzIHkgRm8oSWYpNDUgYihzZXQpaCh0bylmKGApcCBGbihvbilwIEZvKCcsKTUwCitiKFJlYWRsaW5lKTQ1IGIoYXR0ZW1wdHMpaSh0bylmKGJpbmQpZCh0aGUpaihjb24pbSh0cm9sKWcoYyltCisoaGFyYWN0ZXJzKTExMTAgMTk0MyB5KHRyZWF0ZWQpMzYgYihzcClzKGVjaWFsbHkpaChiKW0oeSllKHRoZSloKGspbQorKGVybmVsJ3MpZyh0ZXJtaW5hbClnKGRyaXYpbShlcilmKHRvKWgodGhlaXIpZihSZWFkbGluZSkxMTEwCisyMDUyIHkoZXF1aXYpLTUgYihhbGVuKW0odHMuKTYzMCAyMTk4IHkgRm4oY29tbWVudC1iZWdpbikxMTEwCisyMzA4IHkgRm8oVGhlKTI5IGIoc3RyaW5nKWcodG8paChpbnNlcnQpZihhdCloKHRoZSlmKGIpcyhlZ2lubmluZylnKG9mKQorZyh0aGUpaChsaW5lKWYod2hlbilmKHRoZSlpIEZuKGluc2VydC0pMTExMCAyNDE4IHkoY29tbWVudCllCitGbyhjb21tYW5kKWooaXMpZihleGVjdXRlZC4pNDIgYihUaGUpMjkgYihkZWZhdWx0KWkodiktNQorYihhbHVlKTMxIGIoaXMpZiBGbigiIyIpcCBGbyguKTYzMCAyNTY0IHkgRm4oY29tcGxldGlvbi1pZ25vcmUtY2FzZSkKKzExMTAgMjY3MyB5IEZvKElmKWQoc2V0KWgodG8pZyhgKXAgRm4ob24pcCBGbygnLClnKFJlYWRsaW5lKWcocClzCisoZXJmb3JtcyllKFwwMTRsZW5hbWUpaChtYXRjKW0oaGluZylpKGFuZCllKGNvbXBsZXRpb24pMTExMAorMjc4MyB5KGluKWooYSloKGNhc2UtaW5zZW5zaXRpdiltKGUpaShmYXNoaW9uLik0MCBiKFRoZSkzMAorYihkZWZhdWx0KWgodiktNSBiKGFsdWUpMzAgYihpcyloKGApcCBGbihvZmYpcCBGbygnLik2MzAKKzI5MjkgeSBGbihjb21wbGV0aW9uLXF1ZXJ5LWl0ZW1zKTExMTAgMzAzOSB5IEZvKFRoZSkyNgorYihuKW0odW0pbShiKXMoZXIpZihvZiloKHApcyhvc3NpYmxlKWcoY29tcGxldGlvbnMpaCh0aGF0KWcoZGV0ZXJtaW5lcykKK2Yod2hlbilmKHRoZSlpKHVzZXIpMTExMCAzMTQ4IHkoaXMpaShhc2spbShlZCloKHdoZXRoZXIpZih0aGUpaChsaXN0KWcKKyhvZilmKHApcyhvc3NpYmlsaXRpZXMpaChzaG91bGQpZShiKXMoZSloKGRpc3BsYSltKHkpbShlZC4pNDEKK2IoSWYpMjkgYih0aGUpMTExMCAzMjU4IHkobiltKHVtKW0oYilzKGVyKWQob2YpaChwKXMob3NzaWJsZSlmCisoY29tcGxldGlvbnMpaShpcylmKGdyZWF0ZXIpaCh0aGFuKWUodGhpcyloKHYpLTUgYihhbHVlLCkyOAorYihSZWFkbGluZSkxMTEwIDMzNjcgeSh3aWxsKWYoYXNrKWcodGhlKWYodXNlcilnKHdoZXRoZXIpZyhvcilnKG5vdCloCisoaGUpZih3aXNoZXMpZyh0bylpKHZpZXcpZSh0aGVtOylpKG90aGVyd2lzZSwpMTExMCAzNDc3Cit5KHRoZXkpZChhcmUpZihzaW1wbHkpZyhsaXN0ZWQuKTQwIGIoVGhpcykyMyBiKHYpLTUgYihhcmlhYmxlKTI1CitiKG0pbSh1c3QpZyhiKXMoZSllKHNldClpKHRvKWcoYW4pZyhpbiltKHRlZ2VyKWcodiktNQorYihhbHVlKTExMTAgMzU4NyB5KGdyZWF0ZXIpMjYgYih0aGFuKWYob3IpZihlcXVhbClpKHRvKWYoMC4pNDAKK2IoQSkyNCBiKG5lZ2F0aXYpbShlKWoodiktNSBiKGFsdWUpMjYgYihtZWFucyllKFJlYWRsaW5lKWkoc2hvdWxkKTExMTAKKzM2OTYgeShuZXYpbShlcikzMSBiKGFzay4pNDEgYihUaGUpMjkgYihkZWZhdWx0KWkobGltaXQpZyhpcylnCitGbigxMDApcCBGbyguKTYzMCAzODQyIHkgRm4oY29udmVydC1tZXRhKTExMTAgMzk1MiB5CitGbyhJZikyMiBiKHNldClnKHRvKWgoYClwIEZuKG9uKXAgRm8oJywpaChSZWFkbGluZSlmKHdpbGwpZihjb24pbSh2KW0KKyhlcnQpaShjKW0oaGFyYWN0ZXJzKWYod2l0aClmKHRoZSlnKGVpZ2gpbSh0aCloKGJpdClmKHNldCkxMTEwCis0MDYxIHkodG8pZyhhbilmIEZoKGFzY2kpcihpKWcgRm8oayltKGV5KWgoc2VxdWVuY2UpZyhiKW0oeSlmCisoc3RyaXBwaW5nKWYodGhlKWkoZWlnaCltKHRoKWcoYml0KWYoYW5kKWcocHJlXDAxNHhpbmcpZihhbikxMTEwCis0MTY4IHkgRmYoaClwIDExMzQgNDExNSAxMzkgNCB2IDExMzQgNDE3MSBhIEZlKEVTQylwCisxMTM0IDQxODYgViAxMjY4IDQxNjggYSBGZihpKTEzMzIgNDE3MSB5IEZvKGMpbShoYXJhY3RlciwpMzYKK2IoY29uKW0odiltKGVydGluZylnKHRoZW0pZSh0bylnKGEpaChtZXRhLXByZVwwMTR4ZWQpZihrKW0oZXkpZworKHNlcXVlbmNlLikxMTEwIDQyODEgeShUaGUpYyhkZWZhdWx0KWcodiktNSBiKGFsdWUpMzEKK2IoaXMpZyhgKXAgRm4ob24pcCBGbygnLik2MzAgNDQyNyB5IEZuKGRpc2FibGUtY29tcGxldGlvbikxMTEwCis0NTM2IHkgRm8oSWYpMzYgYihzZXQpaCh0byloKGApcCBGbihPbilwIEZvKCcsKWcoUmVhZGxpbmUpZih3aWxsKWcKKyhpbmhpYml0KWYodyltKG9yZCloKGNvbXBsZXRpb24uKTYwIGIoQ29tcGxldGlvbikxMTEwCis0NjQ2IHkoYyltKGhhcmFjdGVycykyOCBiKHdpbGwpZShiKXMoZSlmKGluc2VydGVkKWgoaW4pbSh0byloKHRoZSlnCisobGluZSlmKGFzKWcoaWYpZyh0aGV5KWgoaGFkKWUoYilzKGVlbilnKG1hcHApcyhlZCkxMTEwCis0NzU1IHkodG8pMzEgYiBGbihzZWxmLWluc2VydClwIEZvKC4pMzggYihUaGUpMzAgYihkZWZhdWx0KWcoaXMpaChgKXAKK0ZuKG9mZilwIEZvKCcuKTYzMCA0OTAyIHkgRm4oZWRpdGluZy1tb2RlKTExMTAgNTAxMSB5CitGbyhUaGUpZCBGbihlZGl0aW5nLW1vZGUpZSBGbyh2KS01IGIoYXJpYWJsZSkyOSBiKGNvbiltKHRyb2xzKWgod2hpYyltCisoaCllKGRlZmF1bHQpaChzZXQpaChvZillKGspbShleSlpKGJpbmQtKTExMTAgNTEyMSB5KGluZ3MpMjUKK2IoaXMpZyh1c2VkLikzOCBiKEJ5KTI2IGIoZGVmYXVsdCwpZyhSZWFkbGluZSlnKHN0YXJ0cylmKHVwKWYoaW4paAorKEVtYWNzKWcoZWRpdGluZyloKG1vKXMoZGUsKTExMTAgNTIzMCB5KHdoZXJlKWoodGhlKWcoayltKGV5c3Ryb2spbShlcykKK2koYXJlKWUobW9zdCloKHNpbWlsYXIpZih0byloKEVtYWNzLik0MCBiKFRoaXMpMjkgYih2KS01CitiKGFyaWFibGUpMzAgYihjYW4pMTExMCA1MzQwIHkoYilzKGUpZyhzZXQpaCh0bylnKGVpdGhlcilnKGApcAorRm4oZW1hY3MpcCBGbygnKWUob3IpaChgKXAgRm4odmkpcCBGbygnLilwIGVvcCBlbmQKKyUlUGFnZTogNiAxMAorVGVYRGljdCBiZWdpbiA2IDkgYm9wIDE1MCAtMTE2IGEgRm8oNikyNjQ1IGIoR05VKTMxIGIoUmVhZGxpbmUpZworKExpYnJhcnkpNjMwIDI5OSB5IEZuKGVuYWJsZS1rZXlwYWQpMTExMCA0MDggeSBGbyhXaGVuKTIzCitiKHNldCloKHRvKWcoYClwIEZuKG9uKXAgRm8oJywpaChSZWFkbGluZSlmKHdpbGwpZyh0cnkpZih0byloKGVuYWJsZSlnCisodGhlKWYoYXBwbGljYXRpb24paShrKW0oZXlwYWQpMTExMCA1MTggeSh3aGVuKWgoaXQpaChpcylmKGNhbGxlZC4pNDEKK2IoU29tZSkyNyBiKHN5c3RlbXMpZihuZWVkKWgodGhpcylmKHRvKWgoZW5hYmxlKWcodGhlKWcoYXJybyltKHcpZyhrKW0KKyhleXMuKTExMTAgNjI4IHkoVGhlKWooZGVmYXVsdClnKGlzKWgoYClwIEZuKG9mZilwIEZvKCcuKTYzMAorODE5IHkgRm4oZXhwYW5kLXRpbGRlKTExMTAgOTI5IHkgRm8oSWYpYyhzZXQpaCh0byloKGApcAorRm4ob24pcCBGbygnLClmKHRpbGRlKWcoZXhwYW5zaW9uKWcoaXMpZihwKXMoZXJmb3JtZWQpZih3aGVuKWgKKyhSZWFkbGluZSloKGF0dGVtcHRzKTExMTAgMTAzOSB5KHcpbShvcmQpaShjb21wbGV0aW9uLik0MgorYihUaGUpMzAgYihkZWZhdWx0KWcoaXMpaChgKXAgRm4ob2ZmKXAgRm8oJy4pNjMwIDEyMzAKK3kgRm4oaGlzdG9yeS1wcmVzZXJ2ZS1wb2ludCkxMTEwIDEzNDAgeSBGbyhJZillKHNldClpKHRvKWYoYClwCitGbihvbilwIEZvKCcsKWcodGhlKWcoaGlzdG9yeSlnKGNvKXMoZGUpZyhhdHRlbXB0cylnKHRvKWgocGxhY2UpZihwKXMKKyhvaW4pbSh0KWcoYXQpaCh0aGUpZihzYW1lKTExMTAgMTQ1MCB5KGxvKXMoY2F0aW9uKTM1CitiKG9uKWUoZWFjKW0oaClpKGhpc3RvcnkpZShsaW5lKWgocmV0cmlldiltKGVkKWcod2l0aClmCitGbihwcmV2aW91cy1oaXN0b3J5KWMgRm8ob3IpMTExMCAxNTU5IHkgRm4obmV4dC1oaXN0b3J5KXAKK0ZvKC4pMzcgYihUaGUpMzAgYihkZWZhdWx0KWgoaXMpZihgKXAgRm4ob2ZmKXAgRm8oJy4pNjMwCisxNzUxIHkgRm4oaG9yaXpvbnRhbC1zY3JvbGwtbW9kZSkxMTEwIDE4NjEgeSBGbyhUaGlzKTM1CitiKHYpLTUgYihhcmlhYmxlKTM3IGIoY2FuKWYoYilzKGUpZihzZXQpaCh0byloKGVpdGhlcilmKGApcAorRm4ob24pcCBGbygnKWcob3IpZyhgKXAgRm4ob2ZmKXAgRm8oJy4pNTcgYihTZXR0aW5nKTM2CitiKGl0KWcodG8paChgKXAgRm4ob24pcCBGbygnKTExMTAgMTk3MCB5KG1lYW5zKTI2IGIodGhhdCloKHRoZSlmKHRleHQpaAorKG9mKWcodGhlKWYobGluZXMpZyhiKXMoZWluZylnKGVkaXRlZCloKHdpbGwpZihzY3JvbGwpaChob3Jpem9uKW0KKyh0YWxseSkxMTEwIDIwODAgeShvbikzMiBiKGEpZyhzaW5nbGUpZyhzY3JlZW4pZyhsaW5lKWcod2hlbillKHRoZXkpaQorKGFyZSlnKGxvbmdlciloKHRoYW4pZSh0aGUpaCh3aWR0aClmKG9mKWgodGhlKTExMTAgMjE4OQoreShzY3JlZW4sKTI3IGIoaW5zdGVhZClnKG9mKWYod3JhcHBpbmcpZihvbiltKHRvKWkoYSlmKG5ldylnKHNjcmVlbilnCisobGluZS4pMzkgYihCeSkyNyBiKGRlZmF1bHQsKWcodGhpcykxMTEwIDIyOTkgeSh2KS01CitiKGFyaWFibGUpMzEgYihpcylnKHNldClmKHRvKWkoYClwIEZuKG9mZilwIEZvKCcuKTYzMAorMjQ5MSB5IEZuKGlucHV0LW1ldGEpMTExMCAyNjAwIHkgRm8oSWYpZihzZXQpZyh0byloKGApcAorRm4ob24pcCBGbygnLClnKFJlYWRsaW5lKWcod2lsbClmKGVuYWJsZSloKGVpZ2gpbSh0LWJpdCloKGlucHV0KWQoXChpdCkKK2kod2lsbClmKG5vdCloKGNsZWFyKTExMTAgMjcxMCB5KHRoZSk0MCBiKGVpZ2gpbSh0aClnKGJpdClnKGluKWYodGhlKWgKKyhjKW0oaGFyYWN0ZXJzKWgoaXQpZihyZWFkc1wpLClqKHJlZ2FyZGxlc3MpYyhvZiloKHdoYXQpZyh0aGUpMTExMAorMjgxOSB5KHRlcm1pbmFsKWcoY2xhaW1zKWgoaXQpZyhjYW4pZihzdXBwKXMob3J0Lik2OAorYihUaGUpMzkgYihkZWZhdWx0KWgodiktNSBiKGFsdWUpNDAgYihpcylnKGApcCBGbihvZmYpcAorRm8oJy4pNjkgYihUaGUpMTExMCAyOTI5IHkobmFtZSkzMCBiIEZuKG1ldGEtZmxhZyllIEZvKGlzKWooYSlmKHN5bm9uKW0KKyh5bSlnKGZvcilnKHRoaXMpaCh2KS01IGIoYXJpYWJsZS4pNjMwIDMxMjEgeSBGbihpc2VhcmNoLXRlcm1pbmF0b3JzKQorMTExMCAzMjMwIHkgRm8oVGhlKTUxIGIoc3RyaW5nKWgob2YpZyhjKW0oaGFyYWN0ZXJzKWgodGhhdClmKHNob3VsZCllCisodGVybWluYXRlKWooYW4pZihpbmNyZW1lbiltKHRhbCkxMTEwIDMzNDAgeShzZWFyYyltKGgpMjUKK2Iod2l0aG91dClnKHN1YnNlcXVlbiltKHRseSlnKGV4ZWN1dGluZyloKHRoZSlmKGMpbShoYXJhY3RlciloKGFzKWYoYSlnCisoY29tbWFuZCkxMTEwIDM0NTAgeShcKHNlZSk0NSBiKFNlY3Rpb24paCgxLjIuNSlnKFtTZWFyYyltKGhpbmddLClqCisocGFnZSlkKDNcKS4pODQgYihJZik0NCBiKHRoaXMpZyh2KS01IGIoYXJpYWJsZSk0NSBiKGhhcylnKG5vdCkxMTEwCiszNTU5IHkoYilzKGVlbikzMSBiKGdpdiltKGVuKWgoYSlnKHYpLTUgYihhbHVlLCkzMiBiKHRoZSlnKGMpbQorKGhhcmFjdGVycykyNDk0IDM1NTYgeSBGZihoKXAgMjUxOCAzNTAzIDEzOSA0IHYgMjUxOAorMzU1OSBhIEZlKEVTQylwIDI1MTggMzU3NSBWIDI2NTIgMzU1NiBhIEZmKGkpMjcxMyAzNTU5Cit5IEZvKGFuZClmIEZnKEMtSilnIEZvKHdpbGwpaCh0ZXJtaW5hdGUpZyhhbikxMTEwIDM2NjkKK3koaW5jcmVtZW4pbSh0YWwpZyhzZWFyYyltKGguKTYzMCAzODYxIHkgRm4oa2V5bWFwKTE5MgorYiBGbyhTZXRzKTM5IGIoUmVhZGxpbmUncylnKGlkZWEpaChvZilmKHRoZSlnKGN1cnJlbiltKHQpZihrKW0oZXltYXApaAorKGZvcilnKGspbShleSlnKGJpbmRpbmcpZihjb20tKTExMTAgMzk3MCB5KG1hbmRzLik4MQorYihBY2NlcHRhYmxlKTQ3IGIgRm4oa2V5bWFwKTQyIGIgRm8obmFtZXMpaShhcmUpaCBGbihlbWFjcylwCitGbygsKWkgRm4oZW1hY3Mtc3RhbmRhcmQpcCBGbygsKTExMTAgNDA4MCB5IEZuKGVtYWNzLW1ldGEpcAorRm8oLCk5OSBiIEZuKGVtYWNzLWN0bHgpcCBGbygsKWYgRm4odmkpcCBGbygsKWogRm4odmktbW92ZSlwCitGbygsKWYgRm4odmktY29tbWFuZClwIEZvKCwpZihhbmQpMTExMCA0MTg5IHkgRm4odmktaW5zZXJ0KXAKK0ZvKC4pNjQgYiBGbih2aSkzOCBiIEZvKGlzKWgoZXF1aXYpLTUgYihhbGVuKW0odCk0MSBiKHRvKWUKK0ZuKHZpLWNvbW1hbmQpcCBGbyg7KWkgRm4oZW1hY3MpYyBGbyhpcylpKGVxdWl2KS01IGIoYWxlbiltKHQpMTExMAorNDI5OSB5KHRvKTMzIGIgRm4oZW1hY3Mtc3RhbmRhcmQpcCBGbyguKTQxIGIoVGhlKTMxIGIoZGVmYXVsdCloKHYpLTUKK2IoYWx1ZSkzMiBiKGlzKWcgRm4oZW1hY3MpcCBGbyguKTQ0IGIoVGhlKTMxIGIodiktNSBiKGFsdWUpMzMKK2Iob2YpZih0aGUpMTExMCA0NDA4IHkgRm4oZWRpdGluZy1tb2RlKTI3IGIgRm8odiktNSBiKGFyaWFibGUpMzEKK2IoYWxzbyloKGFcMDEzZWN0cylmKHRoZSlnKGRlZmF1bHQpZihrKW0oZXltYXAuKTYzMCA0NjAwCit5IEZuKG1hcmstZGlyZWN0b3JpZXMpMTExMCA0NzEwIHkgRm8oSWYpMzggYihzZXQpZyh0byloKGApcAorRm4ob24pcCBGbygnLClpKGNvbXBsZXRlZCllKGRpcmVjdG9yeSlmKG5hbWVzKWcoaGEpbSh2KW0oZSlpKGEpZShzbGFzaCkKK2coYXBwKXMoZW5kZWQuKTExMTAgNDgxOSB5KFRoZSkzMCBiKGRlZmF1bHQpZyhpcyloKGApcAorRm4ob24pcCBGbygnLik2MzAgNTAxMSB5IEZuKG1hcmstbW9kaWZpZWQtbGluZXMpMTExMAorNTEyMSB5IEZvKFRoaXMpayh2KS01IGIoYXJpYWJsZSwpMzggYih3aGVuKWQoc2V0KWgodG8paChgKXAKK0ZuKG9uKXAgRm8oJywpZyhjYXVzZXMpZyhSZWFkbGluZSlmKHRvKWgoZGlzcGxhKW0oeSlmKGFuKWYoYXMtKTExMTAKKzUyMzAgeSh0ZXJpc2spZihcKGApcCBGbigqKXAgRm8oJ1wpKWgoYXQpZih0aGUpZyhzdGFydClnKG9mKWcoaGlzdG9yeSlnCisobGluZXMpZyh3aGljKW0oaClmKGhhKW0odiltKGUpaShiKXMoZWVuKWUobW8pcyhkaVwwMTRlZC4pMTExMAorNTM0MCB5KFRoaXMpZCh2KS01IGIoYXJpYWJsZSkzMSBiKGlzKWYoYClwIEZuKG9mZilwIEZvKCcpZyhiKW0oeSlnCisoZGVmYXVsdC4pcCBlb3AgZW5kCislJVBhZ2U6IDcgMTEKK1RlWERpY3QgYmVnaW4gNyAxMCBib3AgMTUwIC0xMTYgYSBGbyhDaGFwdGVyKTMwIGIoMTopNDEKK2IoQ29tbWFuZCkyOSBiKExpbmUpaShFZGl0aW5nKTIxNTMgYig3KTYzMCAyOTkgeSBGbgorKG1hcmstc3ltbGlua2VkLWRpcmVjdG9yaSlvKGVzKTExMTAgNDA4IHkgRm8oSWYpNDQgYihzZXQpaCh0byloKGApcAorRm4ob24pcCBGbygnLClpKGNvbXBsZXRlZCllKG5hbWVzKWYod2hpYyltKGgpZihhcmUpaChzeW0pbShiKXMob2xpYylnCisobGlua3MpZyh0bylnKGRpLSkxMTEwIDUxOCB5KHJlY3RvcmllcylqKGhhKW0odiltKGUpZihhKWcoc2xhc2gpZihhcHApcworKGVuZGVkKWUoXChzdWIpNSBiKGplY3QpNDcgYih0bylnKHRoZSlmKHYpLTUgYihhbHVlKTQ3CitiKG9mKWYgRm4obWFyay0pMTExMCA2MjggeShkaXJlY3RvcmllcylwIEZvKFwpLikzOCBiKFRoZSkzMAorYihkZWZhdWx0KWcoaXMpaChgKXAgRm4ob2ZmKXAgRm8oJy4pNjMwIDc4OSB5IEZuKG1hdGNoLWhpZGRlbi1maWxlcykKKzExMTAgODk4IHkgRm8oVGhpcykyMSBiKHYpLTUgYihhcmlhYmxlLCkyNSBiKHdoZW4pZChzZXQpZyh0byloKGApcAorRm4ob24pcCBGbygnLCloKGNhdXNlcylmKFJlYWRsaW5lKWcodG8pZyhtYXRjKW0oaClnKFwwMTRsZXMpZih3aG9zZSkKKzExMTAgMTAwOCB5KG5hbWVzKTQ0IGIoYilzKGVnaW4pZyh3aXRoKWcoYSlnKGApcCBGbiguKXAKK0ZvKCcpZyhcKGhpZGRlbilmKFwwMTRsZXNcKSlpKHdoZW4pZShwKXMoZXJmb3JtaW5nKWcoXDAxNGxlbmFtZSkxMTEwCisxMTE4IHkoY29tcGxldGlvbiwpaih1bmxlc3MpNDEgYih0aGUpZyhsZWFkaW5nKWgoYClwCitGbiguKXAgRm8oJylnKGlzKWcoc3VwcGxpZWQpZShiKW0oeSloKHRoZSloKHVzZXIpZihpbilnKHRoZSkxMTEwCisxMjI3IHkoXDAxNGxlbmFtZSkzMSBiKHRvKWcoYilzKGUpZShjb21wbGV0ZWQuKTQyIGIoVGhpcykzMAorYih2KS01IGIoYXJpYWJsZSkzMSBiKGlzKWYoYClwIEZuKG9uKXAgRm8oJyloKGIpbSh5KWYoZGVmYXVsdC4pNjMwCisxMzg4IHkgRm4ob3V0cHV0LW1ldGEpMTExMCAxNDk4IHkgRm8oSWYpMzUgYihzZXQpaCh0bylnKGApcAorRm4ob24pcCBGbygnLCloKFJlYWRsaW5lKWYod2lsbClnKGRpc3BsYSltKHkpZihjKW0oaGFyYWN0ZXJzKWkod2l0aCllCisodGhlKWgoZWlnaCltKHRoKWcoYml0KTExMTAgMTYwOCB5KHNldCloKGRpcmVjdGx5KWcocmF0aGVyKWYodGhhbilnKGFzKQoraChhKWcobWV0YS1wcmVcMDE0eGVkKWYoZXNjYXApcyhlKWgoc2VxdWVuY2UuKTU5IGIoVGhlKTExMTAKKzE3MTcgeShkZWZhdWx0KTMxIGIoaXMpZihgKXAgRm4ob2ZmKXAgRm8oJy4pNjMwIDE4NzgKK3kgRm4ocGFnZS1jb21wbGV0aW9ucykxMTEwIDE5ODggeSBGbyhJZilqKHNldClpKHRvKWYoYClwCitGbihvbilwIEZvKCcsKWgoUmVhZGxpbmUpZyh1c2VzKWUoYW4paChpbiltKHRlcm5hbCloCitGbihtb3JlKXAgRm8oLWxpayltKGUpZihwYWdlcilnKHRvKWgoZGlzcGxhKW0oeSkxMTEwCisyMDk3IHkoYSllKHNjcmVlbmZ1bClmKG9mKWcocClzKG9zc2libGUpZyhjb21wbGV0aW9ucylpKGF0KWYoYSlnKHRpbWUuKQorNDcgYihUaGlzKTMxIGIodiktNSBiKGFyaWFibGUpMzQgYihpcyllKGApcCBGbihvbilwIEZvKCcpMTExMAorMjIwNyB5KGIpbSh5KWUoZGVmYXVsdC4pNjMwIDIzNjggeSBGbihwcmludC1jb21wbGV0aW9ucy1ob3Jpem8pbyhudGFsKW8KKyhseSkxMTEwIDI0NzggeSBGbyhJZikyMyBiKHNldClpKHRvKWcoYClwIEZuKG9uKXAgRm8oJywpZyhSZWFkbGluZSlnCisod2lsbClmKGRpc3BsYSltKHkpZyhjb21wbGV0aW9ucyloKHdpdGgpZihtYXRjKW0oaGVzKWgoc29ydGVkKTExMTAKKzI1ODcgeShob3Jpem9uKW0odGFsbHkpNDUgYihpbillKGFscGhhYilzKGV0aWNhbClpKG9yZGVyLClpKHJhdGhlciljCisodGhhbilnKGRvKW0od24pZyh0aGUpaChzY3JlZW4uKTExMTAgMjY5NyB5KFRoZSkzMCBiKGRlZmF1bHQpZyhpcyloKGApcAorRm4ob2ZmKXAgRm8oJy4pNjMwIDI4NTggeSBGbihzaG93LWFsbC1pZi1hbWJpZ3VvdXMpMTExMAorMjk2OCB5IEZvKFRoaXMpZShhbHRlcnMpaSh0aGUpZihkZWZhdWx0KWcoYilzKGVoYSltKHZpb3IpZyhvZilnKHRoZSloCisoY29tcGxldGlvbilnKGZ1bmN0aW9ucy4pNDAgYihJZikyOSBiKHNldCkxMTEwIDMwNzcgeSh0bylmKGApcAorRm4ob24pcCBGbygnLClnKHcpbShvcmRzKWYod2hpYyltKGgpZyhoYSltKHYpbShlKWkobW9yZSlmKHRoYW4pZihvbmUpaAorKHApcyhvc3NpYmxlKWYoY29tcGxldGlvbiloKGNhdXNlKTExMTAgMzE4NyB5KHRoZSkzOQorYihtYXRjKW0oaGVzKWgodG8pZyhiKXMoZSllKGxpc3RlZCloKGltbWVkaWF0ZWx5KWkoaW5zdGVhZCllKG9mKWcKKyhyaW5naW5nKWcodGhlKWcoYilzKGVsbC4pMTExMCAzMjk2IHkoVGhlKTMwIGIoZGVmYXVsdClnKHYpLTUKK2IoYWx1ZSkzMSBiKGlzKWcoYClwIEZuKG9mZilwIEZvKCcuKTYzMCAzNDU4IHkgRm4KKyhzaG93LWFsbC1pZi11bm1vZGlmaWVkKTExMTAgMzU2NyB5IEZvKFRoaXMpMzggYihhbHRlcnMpaCh0aGUpZworKGRlZmF1bHQpZyhiKXMoZWhhKW0odmlvcilnKG9mKWYodGhlKWgoY29tcGxldGlvbiloKGZ1bmN0aW9ucyllKGluKWgoYSkKKzExMTAgMzY3NyB5KGZhc2hpb24pMjUgYihzaW1pbGFyKWgodG8pZyBGZChzaG8pbSh3LWFsbC1pZi1hbSltKGJpZ3VvdXMpCitwIEZvKC4pNDEgYihJZikyNSBiKHNldCloKHRvKWgoYClwIEZuKG9uKXAgRm8oJywpZih3KW0ob3JkcylmKHdoaWMpbShoKQorMTExMCAzNzg2IHkoaGEpbSh2KW0oZSkzMiBiKG1vcmUpZih0aGFuKWYob25lKWkocClzKG9zc2libGUpZQorKGNvbXBsZXRpb24paSh3aXRob3V0KWYoYW4pbSh5KWcocClzKG9zc2libGUpZihwYXItKTExMTAKKzM4OTYgeSh0aWFsKTQzIGIoY29tcGxldGlvbiloKFwodGhlKWYocClzKG9zc2libGUpZihjb21wbGV0aW9ucyloCisoZG9uJ3QpZihzaGFyZSlnKGEpaChjb21tb24pMTExMCA0MDA2IHkocHJlXDAxNHhcKSkzMAorYihjYXVzZSlnKHRoZSloKG1hdGMpbShoZXMpZyh0bylnKGIpcyhlKWYobGlzdGVkKWcoaW1tZWRpYXRlbHkpaQorKGluc3RlYWQpZShvZiloKHJpbmctKTExMTAgNDExNSB5KGluZylnKHRoZSlmKGIpcyhlbGwuKTQxCitiKFRoZSkzMCBiKGRlZmF1bHQpZyh2KS01IGIoYWx1ZSkzMSBiKGlzKWYoYClwIEZuKG9mZilwCitGbygnLik2MzAgNDI3NiB5IEZuKHZpc2libGUtc3RhdHMpMTExMCA0Mzg2IHkgRm8oSWYpaChzZXQpaSh0bylmKGApcAorRm4ob24pcCBGbygnLCloKGEpZihjKW0oaGFyYWN0ZXIpaShkZW5vdGluZyllKGEpZyhcMDE0bGUncylnKHQpbSh5cClzCisoZSlnKGlzKWcoYXBwKXMoZW5kZWQpZSh0bylqKHRoZSkxMTEwIDQ0OTUgeShcMDE0bGVuYW1lKWUod2hlbillCisobGlzdGluZylpKHApcyhvc3NpYmxlKWYoY29tcGxldGlvbnMuKTQyIGIoVGhlKTMwIGIoZGVmYXVsdClnKGlzKWgoYClwCitGbihvZmYpcCBGbygnLikxNTAgNDY1NyB5KEtleSlmKEJpbmRpbmdzKTYzMCA0NzY2IHkoVGhlKTQxCitiKHN5biltKHRheClpKGZvcilmKGNvbiltKHRyb2xsaW5nKWgoayltKGV5KWcoYmluZGluZ3MpZShpbiloKHRoZSlnCisoaW5pdClnKFwwMTRsZSlnKGlzKWcoc2ltcGxlLik3NSBiKEZpcnN0KTQzIGIoeSltKG91KTYzMAorNDg3NiB5KG5lZWQpMjcgYih0bylpKFwwMTRuZClkKHRoZSlpKG5hbWUpZihvZiloKHRoZSlnKGNvbW1hbmQpZih0aGF0KWkKKyh5KW0ob3UpZih3KW0oYW4pbSh0KWcodG8pZyhjKW0oaGFuZ2UuKTQxIGIoVGhlKTI3IGIoZm9sbG8pbSh3aW5nKTYzMAorNDk4NSB5KHNlY3Rpb25zKTM3IGIoY29uKW0odGFpbilnKHRhYmxlcylnKG9mKWYodGhlKWcoY29tbWFuZClmKG5hbWUsKWoKKyh0aGUpZShkZWZhdWx0KWcoayltKGV5YmluZGluZywpaChpZilmKGFuKW0oeSktOCBiKCwpNjMwCis1MDk1IHkoYW5kKTMwIGIoYSloKHNob3J0KWYoZGVzY3JpcHRpb24pZyhvZiloKHdoYXQpZih0aGUpZyhjb21tYW5kKWgKKyhkbylzKGVzLik2MzAgNTIzMCB5KE9uY2UpMzYgYih5KW0ob3UpZyhrbm8pbSh3KWcodGhlKWcobmFtZSlnKG9mKWcKKyh0aGUpZyhjb21tYW5kLCloKHNpbXBseSlmKHBsYWNlKWgob24pZShhKWkobGluZSlmKGluKWcodGhlKWcoaW5pdCk2MzAKKzUzNDAgeShcMDE0bGUpZSh0aGUpZyhuYW1lKWYob2YpaCh0aGUpZyhrKW0oZXkpZyh5KW0ob3UpZyh3aXNoKWYodG8paAorKGJpbmQpZih0aGUpaChjb21tYW5kKWYodG8sKWkoYSlmKGNvbG9uLClpKGFuZClkKHRoZW4pcAorZW9wIGVuZAorJSVQYWdlOiA4IDEyCitUZVhEaWN0IGJlZ2luIDggMTEgYm9wIDE1MCAtMTE2IGEgRm8oOCkyNjQ1IGIoR05VKTMxCitiKFJlYWRsaW5lKWcoTGlicmFyeSk2MzAgMjk5IHkodGhlKWgobmFtZSlnKG9mKWcodGhlKWcoY29tbWFuZC4pNDYKK2IoVGhlKTMxIGIobmFtZSloKG9mKWcodGhlKWcoayltKGV5KWgoY2FuKWYoYilzKGUpZihleHByZXNzZWQpaChpbilmCisoZGlcMDEzZXJlbiltKHQpNjMwIDQwOCB5KHcpbShhKW0oeXMsKWcoZGVwKXMoZW5kaW5nKWUob24paSh3aGF0KWYoeSltCisob3UpaChcMDE0bmQpZChtb3N0KWooY29tZm9ydGFibGUuKTYzMCA1NDUgeShJbilrKGFkZGl0aW9uKWgodG8paAorKGNvbW1hbmQpZihuYW1lcywpaShyZWFkbGluZSllKGFsbG8pbSh3cyloKGspbShleXMpZyh0bylnKGIpcyhlKWUoYilzCisob3VuZClmKHRvKWooYSlmKHN0cmluZyk2MzAgNjU1IHkodGhhdCkzMSBiKGlzKWYoaW5zZXJ0ZWQpaCh3aGVuKWUodGhlKQoraShrKW0oZXkpZyhpcylmKHByZXNzZWQpZyhcKGEpaCBGZChtYWNybyk1IGIgRm8oXCkuKTYzMAorODE5IHkgRmQoayltKGV5bmFtZSlnIEZvKDopNDIgYiBGZChmdW5jdGlvbi1uYW1lKTM1IGIKK0ZvKG9yKWMgRmQobWFjcm8pMTExMCA5MjkgeShrKW0oZXluYW1lKWsgRm8oaXMpMjkgYih0aGUpZihuYW1lKWgob2YpZworKGEpZyhrKW0oZXkpaChzcClzKGVsbGVkKWUob3V0KWgoaW4pZyhFbmdsaXNoLikzOSBiKEYpLTgKK2Iob3IpMzAgYihleGFtcGxlOikxMzUwIDEwNjYgeSBGbihDb250cm9sLXU6KTQ1IGIodW5pdmVyc2FsLWFyZ3VtZW50KQorMTM1MCAxMTc2IHkoTWV0YS1SdWJvdXQ6KWYoYmFja3dhcmQta2lsbC13b3JkKTEzNTAgMTI4NQoreShDb250cm9sLW86KWgoIj4paShvdXRwdXQiKTExMTAgMTQyMiB5IEZvKEluKTM4IGIodGhlKWgoYWIpcyhvKW0odiltCisoZSloKGV4YW1wbGUsKWggRmcoQy11KWQgRm8oaXMpaChiKXMob3VuZClkKHRvKWsodGhlKWUoZnVuY3Rpb24paAorRm4odW5pdmVyc2FsLSkxMTEwIDE1MzIgeShhcmd1bWVudClwIEZvKCwpZiBGZyhNLURFTCllCitGbyhpcylpKGIpcyhvdW5kKWUodG8paSh0aGUpZyhmdW5jdGlvbilnIEZuKGJhY2t3YXJkLWtpbGwtd29yZClwCitGbygsKTExMTAgMTY0MSB5KGFuZClnIEZnKEMtbylnIEZvKGlzKWgoYilzKG91bmQpZSh0bylqKHJ1bilkKHRoZSlqCisobWFjcm8pZihleHByZXNzZWQpZyhvbilmKHRoZSlpKHJpZ2gpbSh0KWYoaGFuZCkxMTEwCisxNzUxIHkoc2lkZSkzMCBiKFwodGhhdClpKGlzLCllKHRvKWgoaW5zZXJ0KWcodGhlKWYodGV4dClpKGApcAorRm4oPillKG91dHB1dClwIEZvKCcpZihpbiltKHRvKWkodGhlKWcobGluZVwpLikxMTEwIDE4ODgKK3koQSkzNyBiKG4pbSh1bSltKGIpcyhlcilmKG9mKWgoc3ltKW0oYilzKG9saWMpZyhjKW0oaGFyYWN0ZXIpaShuYW1lcyllCisoYXJlKWcocmVjb2duaXplZCloKHdoaWxlKWYocHJvLSkxMTEwIDE5OTggeShjZXNzaW5nKTI0CitiKHRoaXMpZyhrKW0oZXkpZyhiaW5kaW5nKWYoc3luKW0odGF4OikzNyBiIEZkKERFTClwCitGbygsKTI0IGIgRmQoRVNDKXAgRm8oLClmIEZkKEVTQ0FQRSlwIEZvKCwpZyBGZChMRkQpcAorRm8oLCloIEZkKE5FVy0pMTExMCAyMTA3IHkoTElORSlwIEZvKCwpMzAgYiBGZChSRVQpcAorRm8oLClnIEZkKFJFVFVSTilwIEZvKCwpaCBGZChSKW0oVUJPVVQpcCBGbygsKWcgRmQoU1ApLTgKK2IoQSltKENFKXAgRm8oLCkzMCBiIEZkKFNQQylwIEZvKCwpZyhhbmQpZiBGZChUKS04IGIoQUIpcAorRm8oLik2MzAgMjI3MSB5IEZuKCIpcCBGZChrKW0oZXlzZXEpciBGbigiKXAgRm8oOik0MQorYiBGZChmdW5jdGlvbi1uYW1lKTM2IGIgRm8ob3IpMzAgYiBGZChtYWNybykxMTEwIDIzODEKK3koayltKGV5c2VxKWsgRm8oZGlcMDEzZXJzKWQoZnJvbSlmIEZkKGspbShleW5hbWUpMzcKK2IgRm8oYWIpcyhvKW0odiltKGUpMzIgYihpbilmKHRoYXQpaChzdHJpbmdzKWYoZGVub3RpbmcpZyhhbilnKGVuLSkxMTEwCisyNDkxIHkodGlyZSlqKGspbShleSloKHNlcXVlbmNlKWYoY2FuKWcoYilzKGUpZihzcClzKGVjaVwwMTRlZCwpaChiKW0KKyh5KWYocGxhY2luZylpKHRoZSlmKGspbShleSlnKHNlcXVlbmNlKWcoaW4pMTExMCAyNjAwCit5KGRvdWJsZSkyOSBiKHF1b3Rlcy4pNDEgYihTb21lKTI5IGIgRmgoZ251KWggRm8oRW1hY3MpZihzdCltKHlsZSlpKGspbQorKGV5KWYoZXNjYXApcyhlcylnKGNhbilnKGIpcyhlKWYodXNlZCwpZyhhcykxMTEwIDI3MTAKK3koaW4payh0aGUpaChmb2xsbyltKHdpbmcpaShleGFtcGxlLClmKGJ1dCllKHRoZSloKHNwKXMoZWNpYWwpaChjKW0KKyhoYXJhY3RlcilnKG5hbWVzKWYoYXJlKWcobm90KTExMTAgMjgxOSB5KHJlY29nbml6ZWQuKTEzNTAKKzI5NTYgeSBGbigiXFxDLXUiOik0NiBiKHVuaXZlcnNhbC1hcmd1bWVudCkxMzUwIDMwNjYKK3koIlxcQy14XFxDLXIiOilmKHJlLXJlYWQtaW5pdC1maWxlKTEzNTAgMzE3NiB5KCJcXGVbMTF+IjopZygiRnVuY3Rpb24pCitoKEtleSlnKDEiKTExMTAgMzMxMyB5IEZvKEluKTY0IGIodGhlKWcoYWIpcyhvKW0odiltKGUpaShleGFtcGxlLCk3NAorYiBGZyhDLXUpNjQgYiBGbyhpcylnKGFnYWluKWkoYilzKG91bmQpYyh0bylrKHRoZSllKGZ1bmN0aW9uKTExMTAKKzM0MjIgeSBGbih1bml2ZXJzYWwtYXJndW1lbnQpMzkgYiBGbyhcKGp1c3QpayhhcyloKGl0KWcodyltKGFzKWcoaW4pZworKHRoZSlmKFwwMTRyc3QpZyhleGFtcGxlXCksKTQ5IGIoYClwIEZnKEMteCkxMTEwIDM1MzIKK3koQy1yKXAgRm8oJyk0MSBiKGlzKWcoYilzKG91bmQpZSh0bylqKHRoZSlmKGZ1bmN0aW9uKWcKK0ZuKHJlLXJlYWQtaW5pdC1maWxlKXAgRm8oLCllKGFuZClpKGApMzQ2MiAzNTI5IHkgRmYoaClwCiszNDg2IDM0NzYgMTM5IDQgdiAzNDg2IDM1MzIgYSBGZShFU0MpcCAzNDg2IDM1NDcgViAzNjIwCiszNTI5IGEgRmYoaSkzMSBiKGgpcCAzNzA1IDM0NzYgMjAgNCB2IDM3MDUgMzUzMiBhIEZlKFspcAorMzcwNSAzNTQ4IFYgMzcyMCAzNTI5IGEgRmYoaSkxMTEwIDM2MzggeShoKXAgMTEzNCAzNTg1CiszNiA0IHYgMTEzNCAzNjQxIGEgRmUoMSlwIDExMzQgMzY1NyBWIDExNjUgMzYzOCBhIEZmKGkpZihoKXAKKzEyNTAgMzU4NSBWIDEyNTAgMzY0MSBhIEZlKDEpcCAxMjUwIDM2NTcgViAxMjgxIDM2MzgKK2EgRmYoaSlnKGgpcCAxMzY1IDM1ODUgNDggNCB2IDEzNjUgMzY0MSBhIEZuKH4pcCAxMzY1CiszNjU3IFYgMTQwOSAzNjM4IGEgRmYoaSkxNDM4IDM2NDEgeSBGbygnKWgoaXMpZihiKXMob3VuZClmKHRvKWkoaW5zZXJ0KQorZih0aGUpaCh0ZXh0KWcoYClwIEZuKEZ1bmN0aW9uKWQoS2V5KWkoMSlwIEZvKCcuKTYzMAorMzgwNiB5KFRoZSlmKGZvbGxvKW0od2luZylpIEZoKGdudSlmIEZvKEVtYWNzKWcoc3QpbSh5bGUpaChlc2NhcClzKGUpZgorKHNlcXVlbmNlcylnKGFyZSlnKGEpbSh2KS01IGIoYWlsYWJsZSkzMiBiKHdoZW4pZChzcClzKGVjaWZ5aW5nKTYzMAorMzkxNSB5KGspbShleSlpKHNlcXVlbmNlczopNjMwIDQwODAgeSBGZyhcXEMtKTMzNiBiIEZvKGNvbiltKHRyb2wpMzIKK2IocHJlXDAxNHgpNjMwIDQyNDQgeSBGZyhcXE0tKTMzNiBiIEZvKG1ldGEpMzEgYihwcmVcMDE0eCk2MzAKKzQ0MDggeSBGZyhcXGUpMzg0IGIgRm8oYW4pMzAgYihlc2NhcClzKGUpaChjKW0oaGFyYWN0ZXIpNjMwCis0NTczIHkgRmcoXFxcXCkzODQgYiBGbyhiYWMpbShrc2xhc2gpNjMwIDQ3MzcgeSBGZyhcXClwCitGbigiKTExMTAgNDczNCB5IEZmKGgpcCAxMTM0IDQ2ODEgViAxMTM0IDQ3MzcgYSBGbigiKXAKKzExMzQgNDc1MyBWIDExNzggNDczNCBhIEZmKGkpMTIwOCA0NzM3IHkgRm8oLCkzMCBiKGEpaChkb3VibGUpZgorKHF1b3RhdGlvbiloKG1hcmspNjMwIDQ5MDIgeSBGZyhcXCcpMTExMCA0ODk5IHkgRmYoaClwCisxMTM0IDQ4NDYgMjAgNCB2IDExMzQgNDkwMiBhIEZlKCcpcCAxMTM0IDQ5MTcgViAxMTUwCis0ODk5IGEgRmYoaSkxMTc5IDQ5MDIgeSBGbygsKWcoYSlnKHNpbmdsZSlnKHF1b3RlKWcob3IpZihhcClzKG9zdHJvcGhlKQorNjMwIDUwNjYgeShJbilkKGFkZGl0aW9uKWgodG8pZyh0aGUpZyBGaChnbnUpZiBGbyhFbWFjcyloKHN0KW0oeWxlKWgKKyhlc2NhcClzKGUpZihzZXF1ZW5jZXMsKWgoYSlmKHNlY29uZClmKHNldCloKG9mKWcoYmFjKW0oa3NsYXNoKTYzMAorNTE3NiB5KGVzY2FwKXMoZXMpaihpcylmKGEpbSh2KS01IGIoYWlsYWJsZTopNjMwIDUzNDAKK3kgRm4oXFxhKTM4NCBiIEZvKGFsZXJ0KTMxIGIoXChiKXMoZWxsXCkpcCBlb3AgZW5kCislJVBhZ2U6IDkgMTMKK1RlWERpY3QgYmVnaW4gOSAxMiBib3AgMTUwIC0xMTYgYSBGbyhDaGFwdGVyKTMwIGIoMTopNDEKK2IoQ29tbWFuZCkyOSBiKExpbmUpaShFZGl0aW5nKTIxNTMgYig5KTYzMCAyOTkgeSBGbihcXGIpMzg0CitiIEZvKGJhYyltKGtzcGFjZSk2MzAgNDU1IHkgRm4oXFxkKWcgRm8oZGVsZXRlKTYzMCA2MTIKK3kgRm4oXFxmKWcgRm8oZm9ybSkzMCBiKGZlZWQpNjMwIDc2OCB5IEZuKFxcbikzODQgYiBGbyhuZXdsaW5lKTYzMAorOTI1IHkgRm4oXFxyKWcgRm8oY2FycmlhZ2UpMzIgYihyZXR1cm4pNjMwIDEwODEgeSBGbihcXHQpMzg0CitiIEZvKGhvcml6b24pbSh0YWwpMzIgYih0YWIpNjMwIDEyMzggeSBGbihcXHYpMzg0IGIgRm8odiltKGVydGljYWwpMzIKK2IodGFiKTYzMCAxMzk0IHkgRm4oXFwpcCBGZyhubm4pMjg4IGIgRm8odGhlKTM1IGIoZWlnaCltKHQtYml0KWgoYyltCisoaGFyYWN0ZXIpZyh3aG9zZSllKHYpLTUgYihhbHVlKTM1IGIoaXMpZyh0aGUpZihvKXMoY3RhbClpKHYpLTUKK2IoYWx1ZSkzNSBiIEZkKG5ubillIEZvKFwob25lKWkodG8pMTExMCAxNTA0IHkodGhyZWUpYyhkaWdpdHNcKSk2MzAKKzE2NjEgeSBGbihcXHgpcCBGZyhISCkyODggYiBGbyh0aGUpNDAgYihlaWdoKW0odC1iaXQpaChjKW0oaGFyYWN0ZXIpZworKHdob3NlKWUodiktNSBiKGFsdWUpMzkgYihpcyloKHRoZSlmKGhleGFkZWNpbWFsKWkodiktNQorYihhbHVlKTQwIGIgRmQoSEgpMTExMCAxNzcwIHkgRm8oXChvbmUpMzEgYihvcilmKHQpbSh3KW0obylpKGhleCllCisoZGlnaXRzXCkpNjMwIDE5MjcgeShXaGVuKTM3IGIoZW4pbSh0ZXJpbmcpaCh0aGUpZyh0ZXh0KWcob2YpZyhhKWcKKyhtYWNybywpaShzaW5nbGUpZShvcilmKGRvdWJsZSlnKHF1b3RlcyloKG0pbSh1c3QpZihiKXMoZSlnKHVzZWQpZih0bykKKzYzMCAyMDM2IHkoaW5kaWNhdGUpMjMgYihhKWUobWFjcm8paChkZVwwMTRuaXRpb24uKTM4CitiKFVucXVvdGVkKTIxIGIodGV4dClpKGlzKWUoYXNzdW1lZClnKHRvKWgoYilzKGUpZihhKWgoZnVuY3Rpb24pZgorKG5hbWUuKTM4IGIoSW4pNjMwIDIxNDYgeSh0aGUpMjIgYihtYWNybylmKGIpcyhvKXMoZHkpLTgKK2IoLCkyMyBiKHRoZSllKGJhYyltKGtzbGFzaCloKGVzY2FwKXMoZXMpZyhkZXNjcmliKXMoZWQpZShhYilzKG8pbSh2KW0KKyhlKWooYXJlKWUoZXhwYW5kZWQuKTM3IGIoQmFjKW0oa3NsYXNoKTYzMCAyMjU1IHkod2lsbClqKHF1b3RlKWgoYW4pbQorKHkpZihvdGhlcilnKGMpbShoYXJhY3RlcilpKGluKWQodGhlKWkobWFjcm8pZih0ZXh0LClrKGluY2x1ZGluZykzOQorYihgKXAgRm4oIilwIEZvKCcpaChhbmQpZyhgKXAgRm4oJylwIEZvKCcuKTY5IGIoRiktOAorYihvcik2MzAgMjM2NSB5KGV4YW1wbGUsKTI4IGIodGhlKWUoZm9sbG8pbSh3aW5nKWgoYmluZGluZylkKHdpbGwpaQorKG1hayltKGUpaChgKXAgRmcoQy14KWogRm4oXFwpcCBGbygnKWMoaW5zZXJ0KWYoYSloKHNpbmdsZSloKGApcAorRm4oXFwpcCBGbygnKWYoaW4pbSh0bylnKHRoZSlnKGxpbmU6KTg3MCAyNDk4IHkgRm4oIlxcQy14XFxcXCI6KTQ1CitiKCJcXFxcIikxNTAgMjcxOCB5IEZjKDEuMy4yKTYzIGIoQ29uZGl0aW9uYWwpNDEgYihJbml0KWcoQ29uc3RydWN0cykKKzI3NSAyOTYxIHkgRm8oUmVhZGxpbmUpMzYgYihpbXBsZW1lbiltKHRzKWYoYSloKGZhY2lsaXQpbSh5KWkoc2ltaWxhcilkCisoaW4pZyhzcGlyaXQpZyh0byloKHRoZSlnKGNvbmRpdGlvbmFsKWgoY29tcGlsYXRpb24pZyhmZWF0dXJlcykxNTAKKzMwNzAgeShvZillKHRoZSlmKEMpZyhwcmVwcm8pcyhjZXNzb3IpZyh3aGljKW0oaClnKGFsbG8pbSh3cylpKGspbShleSlmCisoYmluZGluZ3MpZShhbmQpaCh2KS01IGIoYXJpYWJsZSkzNSBiKHNldHRpbmdzKWgodG8pZihiKXMoZSlmKHApcworKGVyZm9ybWVkKWYoYXMpMTUwIDMxODAgeSh0aGUpZShyZXN1bHQpZihvZilnKHRlc3RzLik0MgorYihUaGVyZSkzMCBiKGFyZSloKGZvdXIpZShwYXJzZXIpaChkaXJlY3RpdiltKGVzKWkodXNlZC4pMTUwCiszMzM2IHkgRm4oJGlmKTMzNiBiIEZvKFRoZSkzMSBiIEZuKCRpZilmIEZvKGNvbnN0cnVjdClpKGFsbG8pbSh3cyloCisoYmluZGluZ3MpZCh0bylpKGIpcyhlKWUobWFkZSlpKGJhc2VkKWYob24pZyh0aGUpZyhlZGl0aW5nKWgobW8pcyhkZSwpZworKHRoZSk2MzAgMzQ0NiB5KHRlcm1pbmFsKTM5IGIoYilzKGVpbmcpZSh1c2VkLClqKG9yKWUodGhlKWcKKyhhcHBsaWNhdGlvbiloKHVzaW5nKWYoUmVhZGxpbmUuKTY0IGIoVGhlKTM4IGIodGV4dCloKG9mKWYodGhlKWcodGVzdCkKKzYzMCAzNTU1IHkoZXh0ZW5kcykzMCBiKHRvKWgodGhlKWcoZW5kKWYob2YpZyh0aGUpaChsaW5lOylnKG5vKWYoYyltCisoaGFyYWN0ZXJzKWkoYXJlKWYocmVxdWlyZWQpZSh0bylpKGlzb2xhdGUpaShpdC4pNjMwCiszNzEyIHkgRm4obW9kZSkyODggYiBGbyhUaGUpMjAgYiBGbihtb2RlPSlnIEZvKGZvcm0pZyhvZiloKHRoZSlnCitGbigkaWYpZiBGbyhkaXJlY3RpdiltKGUpaihpcyllKHVzZWQpZih0byloKHRlc3QpaCh3aGV0aGVyKWUoUmVhZGxpbmUpCisxMTEwIDM4MjEgeShpcykyOSBiKGluKWggRm4oZW1hY3MpZSBGbyhvciloIEZuKHZpKWcgRm8obW8pcyhkZS4pNDAKK2IoVGhpcykyOSBiKG1hKW0oeSloKGIpcyhlKWUodXNlZCloKGluKWcoY29uanVuY3Rpb24paCh3aXRoKWYodGhlKTExMTAKKzM5MzEgeShgKXAgRm4oc2V0KWgoa2V5bWFwKXAgRm8oJyljKGNvbW1hbmQsKWkoZm9yKWYoaW5zdGFuY2UsKWkodG8pZgorKHNldClnKGJpbmRpbmdzKWYoaW4pZyh0aGUpaCBGbihlbWFjcy0pMTExMCA0MDQxIHkoc3RhbmRhcmQpMjMKK2IgRm8oYW5kKWggRm4oZW1hY3MtY3RseClmIEZvKGspbShleW1hcHMpaShvbmx5KWcoaWYpZyhSZWFkbGluZSloKGlzKWYKKyhzdGFydGluZyloKG91dCkxMTEwIDQxNTAgeShpbilrIEZuKGVtYWNzKWYgRm8obW8pcyhkZS4pNjMwCis0MzA3IHkgRm4odGVybSkyODggYiBGbyhUaGUpMjYgYiBGbih0ZXJtPSlnIEZvKGZvcm0pZyhtYSltKHkpaShiKXMoZSllCisodXNlZClnKHRvKWkoaW5jbHVkZSlmKHRlcm1pbmFsLXNwKXMoZWNpXDAxNGMpZyhrKW0oZXkpaChiaW5kLSkxMTEwCis0NDE2IHkoaW5ncywpMzggYihwKXMoZXJoYXBzKWModG8paihiaW5kKWUodGhlKWgoayltKGV5KWgoc2VxdWVuY2VzKWYKKyhvdXRwdXQpZyhiKW0oeSlnKHRoZSlnKHRlcm1pbmFsJ3MpMTExMCA0NTI2IHkoZnVuY3Rpb24pMjQKK2IoayltKGV5cy4pMzkgYihUaGUpMjMgYih3KW0ob3JkKWgob24pZih0aGUpaShyaWdoKW0odClmKHNpZGUpZyhvZilnCisodGhlKWcoYClwIEZuKD0pcCBGbygnKWcoaXMpZyh0ZXN0ZWQpaChhZ2FpbnN0KTExMTAgNDYzNgoreShiKXMob3RoKWsodGhlKWgoZnVsbClnKG5hbWUpZyhvZilnKHRoZSlnKHRlcm1pbmFsKWgoYW5kKWUodGhlKWkocClzCisob3J0aW9uKWUob2YpaCh0aGUpZyh0ZXJtaW5hbCkxMTEwIDQ3NDUgeShuYW1lKWsoYilzKGVmb3JlKWYodGhlKWcKKyhcMDE0cnN0KWcoYClwIEZuKC0pcCBGbygnLik1MCBiKFRoaXMpMzMgYihhbGxvKW0od3MpaQorRm4oc3VuKWUgRm8odG8paChtYXRjKW0oaClnKGIpcyhvdGgpZiBGbihzdW4pZyBGbyhhbmQpMTExMAorNDg1NSB5IEZuKHN1bi1jbWQpcCBGbygsKWMoZm9yKWgoaW5zdGFuY2UuKTYzMCA1MDExIHkKK0ZuKGFwcGxpY2F0aW9uKTExMTAgNTEyMSB5IEZvKFRoZSkyMSBiIEZkKGFwcGxpY2F0aW9uKWoKK0ZvKGNvbnN0cnVjdCllKGlzKWcodXNlZClmKHRvKWkoaW5jbHVkZSlmKGFwcGxpY2F0aW9uLXNwKXMoZWNpXDAxNGMpaAorKHNldC0pMTExMCA1MjMwIHkodGluZ3MuKTM5IGIoRWFjKW0oaCkyNiBiKHByb2dyYW0pZSh1c2luZylnKHRoZSloCisoUmVhZGxpbmUpZyhsaWJyYXJ5KWcoc2V0cylnKHRoZSlnIEZkKGFwcGxpY2F0aW9uKTExMTAKKzUzNDAgeShuYW1lKXAgRm8oLClnKGFuZCllKHkpbShvdSlnKGNhbiloKHRlc3QpZyhmb3IpZihhKWcocGFydGljdWxhciloCisodiktNSBiKGFsdWUuKTM5IGIoVGhpcykyMiBiKGNvdWxkKWgoYilzKGUpZyh1c2VkKWYodG8pcAorZW9wIGVuZAorJSVQYWdlOiAxMCAxNAorVGVYRGljdCBiZWdpbiAxMCAxMyBib3AgMTUwIC0xMTYgYSBGbygxMCkyNjAwIGIoR05VKTMxCitiKFJlYWRsaW5lKWcoTGlicmFyeSkxMTEwIDI5OSB5KGJpbmQpaChrKW0oZXkpaChzZXF1ZW5jZXMpZyh0byloCisoZnVuY3Rpb25zKWUodXNlZnVsKWcoZm9yKWgoYSlnKHNwKXMoZWNpXDAxNGMpZihwcm9ncmFtLik0OAorYihGKS04IGIob3IpMTExMCA0MDggeShpbnN0YW5jZSwpMzUgYih0aGUpZShmb2xsbyltKHdpbmcpaChjb21tYW5kKWYKKyhhZGRzKWYoYSlpKGspbShleSlmKHNlcXVlbmNlKWgodGhhdClmKHF1b3RlcykxMTEwIDUxOAoreSh0aGUpZShjdXJyZW4pbSh0KWYob3IpZyhwcmV2aW91cylnKHcpbShvcmQpZyhpbilnKEJhc2g6KTEzNTAKKzY1MyB5IEZuKCRpZik0NyBiKEJhc2gpMTM1MCA3NjIgeSgjKWcoUXVvdGUpZyh0aGUpZyhjdXJyZW50KWYob3IpaAorKHByZXZpb3VzKWUod29yZCkxMzUwIDg3MiB5KCJcXEMteHEiOiloKCJcXGViXFwiXFxlZlxcIiIpMTM1MAorOTgxIHkoJGVuZGlmKTE1MCAxMTQxIHkoJGVuZGlmKTE5MiBiIEZvKFRoaXMpMjkgYihjb21tYW5kLClpKGFzKWYoc2VlbikKK2goaW4pZih0aGUpZyhwcmV2aW91cylnKGV4YW1wbGUsKWgodGVybWluYXRlcylnKGFuKWcKK0ZuKCRpZillIEZvKGNvbW1hbmQuKTE1MCAxMzAwIHkgRm4oJGVsc2UpMjQwIGIgRm8oQ29tbWFuZHMpMjkKK2IoaW4paCh0aGlzKWgoYnJhbmMpbShoKWUob2YpaSh0aGUpZiBGbigkaWYpZyBGbyhkaXJlY3RpdiltKGUpaShhcmUpZgorKGV4ZWN1dGVkKWcoaWYpZih0aGUpaCh0ZXN0KWcoZmFpbHMuKTE1MCAxNDYwIHkgRm4oJGluY2x1ZGUpOTYKK2IgRm8oVGhpcyk0MyBiKGRpcmVjdGl2KW0oZSlpKHRhayltKGVzKWcoYSllKHNpbmdsZSlpKFwwMTRsZW5hbWUpZShhcyloCisoYW4pZihhcmd1bWVuKW0odCloKGFuZClmKHJlYWRzKWcoY29tbWFuZHMpNjMwIDE1NjkgeShhbmQpMzgKK2IoYmluZGluZ3MpZihmcm9tKWgodGhhdClpKFwwMTRsZS4pNjUgYihGKS04IGIob3IpMzkKK2IoZXhhbXBsZSwpaih0aGUpZChmb2xsbyltKHdpbmcpaChkaXJlY3RpdiltKGUpZyhyZWFkcyllKGZyb20pNjMwCisxNjc5IHkoYClwIEZuKC9ldGMvaW5wdXRyYylwIEZvKCc6KTg3MCAxODEzIHkgRm4oJGluY2x1ZGUpNDYKK2IoL2V0Yy9pbnB1dHJjKTE1MCAyMDM3IHkgRmMoMS4zLjMpNjMgYihTYW1wbGUpNDEgYihJbml0KWcoRmlsZSkyNzUKKzIyODEgeSBGbyhIZXJlKTMxIGIoaXMpZihhbilnKGV4YW1wbGUpaShvZillKGFuKWcgRmQoaW5wdXRyYykzNQorYiBGbyhcMDE0bGUuKTQyIGIoVGhpcykyOSBiKGlsbHVzdHJhdGVzKWooayltKGV5KWYoYmluZGluZywpZih2KS01CitiKGFyaWFibGUpMzEgYihhc3NpZ25tZW4pbSh0LCkxNTAgMjM5MSB5KGFuZClmKGNvbmRpdGlvbmFsKWgoc3luKW0KKyh0YXguKXAgZW9wIGVuZAorJSVQYWdlOiAxMSAxNQorVGVYRGljdCBiZWdpbiAxMSAxNCBib3AgMTUwIC0xMTYgYSBGbyhDaGFwdGVyKTMwIGIoMTopNDEKK2IoQ29tbWFuZCkyOSBiKExpbmUpaShFZGl0aW5nKTIxMDcgYigxMSkzOTAgNDA4IHkgRm4oIyk0NworYihUaGlzKWcoZmlsZSlnKGNvbnRyb2xzKWUodGhlKWkoYmVoYXZpb3VyKWUob2YpaihsaW5lKWUoaW5wdXQpaAorKGVkaXRpbmcpZShmb3IpMzkwIDUxOCB5KCMpaShwcm9ncmFtcylmKHRoYXQpaCh1c2UpZyh0aGUpZihHTlUpaAorKFJlYWRsaW5lKWYobGlicmFyeS4pOTMgYihFeGlzdGluZykzOTAgNjI4IHkoIyk0NyBiKHByb2dyYW1zKWYoaW5jbHVkZSkKK2coRlRQLClnKEJhc2gsKWgoYW5kKWcoR0RCLikzOTAgNzM3IHkoIykzOTAgODQ3IHkoIylnKFlvdSlnKGNhbilnCisocmUtcmVhZClmKHRoZSloKGlucHV0cmMpZihmaWxlKWcod2l0aCloKEMteClnKEMtci4pMzkwCis5NTYgeSgjKWcoTGluZXMpZyhiZWdpbm5pbmcpZSh3aXRoKWkoJyMnKWcoYXJlKWcoY29tbWVudHMuKTM5MAorMTA2NiB5KCMpMzkwIDExNzYgeSgjKWcoRmlyc3QsKWcoaW5jbHVkZSllKGFueSlpKHN5c3RlbXdpZGUpZShiaW5kaW5ncykKK2goYW5kKWgodmFyaWFibGUpMzkwIDEyODUgeSgjKWcoYXNzaWdubWVudHMpZShmcm9tKWkoL2V0Yy9JbnB1dHJjKTM5MAorMTM5NSB5KCRpbmNsdWRlKWYoL2V0Yy9JbnB1dHJjKTM5MCAxNjE0IHkoIykzOTAgMTcyNAoreSgjKWgoU2V0KWcodmFyaW91cylmKGJpbmRpbmdzKWcoZm9yKWgoZW1hY3MpZihtb2RlLikzOTAKKzE5NDMgeShzZXQpaChlZGl0aW5nLW1vZGUpZChlbWFjcykzOTAgMjE2MiB5KCRpZilqKG1vZGU9ZW1hY3MpMzkwCisyMzgxIHkoTWV0YS1Db250cm9sLWg6KTkxIGIoYmFja3dhcmQta2lsbC13b3JkKTQzIGIoVGV4dClrKGFmdGVyKWYodGhlKQoraChmdW5jdGlvbilmKG5hbWUpZyhpcyloKGlnbm9yZWQpcCAzOTcxIDI0MDEgNDIgNzYgdgorMzkwIDI2MDAgYSgjKTM5MCAyNzEwIHkoIylnKEFycm93KWcoa2V5cylmKGluKWkoa2V5cGFkKWUobW9kZSkzOTAKKzI4MTkgeSgjKTM5MCAyOTI5IHkoIyJcXE0tT0QiOikzNzkgYihiYWNrd2FyZC1jaGFyKTM5MAorMzAzOSB5KCMiXFxNLU9DIjopZyhmb3J3YXJkLWNoYXIpMzkwIDMxNDggeSgjIlxcTS1PQSI6KWcKKyhwcmV2aW91cy1oaXN0b3J5KTM5MCAzMjU4IHkoIyJcXE0tT0IiOilnKG5leHQtaGlzdG9yeSkzOTAKKzMzNjcgeSgjKTM5MCAzNDc3IHkoIyk0NyBiKEFycm93KWcoa2V5cylmKGluKWkoQU5TSSllKG1vZGUpMzkwCiszNTg3IHkoIykzOTAgMzY5NiB5KCJcXE0tW0QiOikzODAgYihiYWNrd2FyZC1jaGFyKTM5MAorMzgwNiB5KCJcXE0tW0MiOilnKGZvcndhcmQtY2hhcikzOTAgMzkxNSB5KCJcXE0tW0EiOilnCisocHJldmlvdXMtaGlzdG9yeSkzOTAgNDAyNSB5KCJcXE0tW0IiOilnKG5leHQtaGlzdG9yeSkzOTAKKzQxMzQgeSgjKTM5MCA0MjQ0IHkoIyk0NyBiKEFycm93KWcoa2V5cylmKGluKWkoOClmKGJpdClnKGtleXBhZClmKG1vZGUpCiszOTAgNDM1NCB5KCMpMzkwIDQ0NjMgeSgjIlxcTS1cXEMtT0QiOikzMzEgYihiYWNrd2FyZC1jaGFyKTM5MAorNDU3MyB5KCMiXFxNLVxcQy1PQyI6KWcoZm9yd2FyZC1jaGFyKTM5MCA0NjgyIHkoIyJcXE0tXFxDLU9BIjopZworKHByZXZpb3VzLWhpc3RvcnkpMzkwIDQ3OTIgeSgjIlxcTS1cXEMtT0IiOilnKG5leHQtaGlzdG9yeSkzOTAKKzQ5MDIgeSgjKTM5MCA1MDExIHkoIyk0NyBiKEFycm93KWcoa2V5cylmKGluKWkoOClmKGJpdClnKEFOU0kpZyhtb2RlKQorMzkwIDUxMjEgeSgjKTM5MCA1MjMwIHkoIyJcXE0tXFxDLVtEIjopMzMxIGIoYmFja3dhcmQtY2hhcikzOTAKKzUzNDAgeSgjIlxcTS1cXEMtW0MiOilnKGZvcndhcmQtY2hhcilwIGVvcCBlbmQKKyUlUGFnZTogMTIgMTYKK1RlWERpY3QgYmVnaW4gMTIgMTUgYm9wIDE1MCAtMTE2IGEgRm8oMTIpMjYwMCBiKEdOVSkzMQorYihSZWFkbGluZSlnKExpYnJhcnkpMzkwIDI5OSB5IEZuKCMiXFxNLVxcQy1bQSI6KTMzMQorYihwcmV2aW91cy1oaXN0b3J5KTM5MCA0MDggeSgjIlxcTS1cXEMtW0IiOilnKG5leHQtaGlzdG9yeSkzOTAKKzYyOCB5KEMtcTopNDcgYihxdW90ZWQtaW5zZXJ0KTM5MCA4NDcgeSgkZW5kaWYpMzkwIDEwNjYKK3koIylnKEFuKWgob2xkLXN0eWxlKWQoYmluZGluZy4pOTMgYihUaGlzKTQ3IGIoaGFwcGVucylmKHRvKWgoYmUpZyh0aGUpCitnKGRlZmF1bHQuKTM5MCAxMTc2IHkoVEFCOilnKGNvbXBsZXRlKTM5MCAxMzk1IHkoIylnKE1hY3JvcylnKHRoYXQpZgorKGFyZSloKGNvbnZlbmllbnQpZShmb3IpaShzaGVsbClmKGludGVyYWN0aW9uKTM5MCAxNTA0Cit5KCRpZiloKEJhc2gpMzkwIDE2MTQgeSgjKWcoZWRpdClnKHRoZSlnKHBhdGgpMzkwIDE3MjQKK3koIlxcQy14cCI6KWYoIlBBVEg9JHtQQVRIfVxcZVxcQy1lXFxDLWEpbyhcXGVmKW8oXFxDLWYpbygiKTM5MAorMTgzMyB5KCMpaChwcmVwYXJlKWYodG8paCh0eXBlKWcoYSloKHF1b3RlZCllKHdvcmQpZygtLSkzOTAKKzE5NDMgeSgjKWgoaW5zZXJ0KWcob3BlbilmKGFuZCloKGNsb3NlKWYoZG91YmxlKWgocXVvdGVzKTM5MAorMjA1MiB5KCMpZyhhbmQpZyhtb3ZlKWcodG8pZyhqdXN0KWcoYWZ0ZXIpZih0aGUpaChvcGVuKWcocXVvdGUpMzkwCisyMTYyIHkoIlxcQy14XFwiIjopZSgiXFwiXFwiXFxDLWIiKTM5MCAyMjcxIHkoIylpKGluc2VydClnKGEpZworKGJhY2tzbGFzaCllKFwodGVzdGluZyloKGJhY2tzbGFzaClmKGVzY2FwZXMpMzkwIDIzODEKK3koIylpKGluKWgoc2VxdWVuY2VzKWQoYW5kKWkobWFjcm9zXCkpMzkwIDI0OTEgeSgiXFxDLXhcXFxcIjopZSgiXFxcXCIpCiszOTAgMjYwMCB5KCMpaShRdW90ZSlnKHRoZSlnKGN1cnJlbnQpZihvciloKHByZXZpb3VzKWUod29yZCkzOTAKKzI3MTAgeSgiXFxDLXhxIjopaCgiXFxlYlxcIlxcZWZcXCIiKTM5MCAyODE5IHkoIyloKEFkZClnKGEpaChiaW5kaW5nKWUKKyh0byloKHJlZnJlc2gpZih0aGUpaChsaW5lLClmKHdoaWNoKWcoaXMpaCh1bmJvdW5kKTM5MAorMjkyOSB5KCJcXEMteHIiOilmKHJlZHJhdy1jdXJyZW50LWxpbmUpMzkwIDMwMzkgeSgjKWgoRWRpdClnKHZhcmlhYmxlKWYKKyhvbiloKGN1cnJlbnQpZihsaW5lLikzOTAgMzE0OCB5KCJcXE0tXFxDLXYiOilmCisoIlxcQy1hXFxDLWskXFxDLXlcXE0tXFxDLWVcXEMtKW8oYVxcQy0pbyh5PSIpMzkwIDMyNTgKK3koJGVuZGlmKTM5MCAzNDc3IHkoIylpKHVzZSlnKGEpaCh2aXNpYmxlKWUoYmVsbClnKGlmKWgob25lKWcoaXMpaAorKGF2YWlsYWJsZSkzOTAgMzU4NyB5KHNldClmKGJlbGwtc3R5bGUpZSh2aXNpYmxlKTM5MAorMzgwNiB5KCMpaShkb24ndClnKHN0cmlwKWYoY2hhcmFjdGVycylmKHRvKWkoNyloKGJpdHMpZSh3aGVuKWgocmVhZGluZykKKzM5MCAzOTE1IHkoc2V0KWcoaW5wdXQtbWV0YSllKG9uKTM5MCA0MTM0IHkoIylpKGFsbG93KWcoaXNvLWxhdGluMSllCisoY2hhcmFjdGVycylnKHRvKWkoYmUpZyhpbnNlcnRlZClmKHJhdGhlcikzOTAgNDI0NCB5KCMpaCh0aGFuKWcKKyhjb252ZXJ0ZWQpZSh0bylqKHByZWZpeC1tZXRhKWMoc2VxdWVuY2VzKTM5MCA0MzU0IHkoc2V0KWoKKyhjb252ZXJ0LW1ldGEpZChvZmYpMzkwIDQ1NzMgeSgjKWooZGlzcGxheSlmKGNoYXJhY3RlcnMpZih3aXRoKWkodGhlKWcKKyhlaWdodGgpZihiaXQpaChzZXQpZyhkaXJlY3RseSkzOTAgNDY4MiB5KCMpZyhyYXRoZXIpZyh0aGFuKWYoYXMpaAorKG1ldGEtcHJlZml4ZWQpZShjaGFyYWN0ZXJzKTM5MCA0NzkyIHkoc2V0KWkob3V0cHV0LW1ldGEpZShvbikzOTAKKzUwMTEgeSgjKWkoaWYpaCh0aGVyZSllKGFyZSloKG1vcmUpZyh0aGFuKWYoMTUwKWgocG9zc2libGUpZgorKGNvbXBsZXRpb25zKWUoZm9yKTM5MCA1MTIxIHkoIylqKGEpaCh3b3JkLCllKGFzayloKHRoZSlnKHVzZXIpZyhpZilnCisoaGUpZyh3YW50cylmKHRvKWkoc2VlKWYoYWxsKWYob2YpaSh0aGVtKTM5MCA1MjMwIHkoc2V0KWYKKyhjb21wbGV0aW9uLXF1ZXJ5LWl0ZW1zKTQyIGIoMTUwKXAgZW9wIGVuZAorJSVQYWdlOiAxMyAxNworVGVYRGljdCBiZWdpbiAxMyAxNiBib3AgMTUwIC0xMTYgYSBGbyhDaGFwdGVyKTMwIGIoMTopNDEKK2IoQ29tbWFuZCkyOSBiKExpbmUpaShFZGl0aW5nKTIxMDcgYigxMykzOTAgMjk5IHkgRm4oIyk0NworYihGb3IpZyhGVFApMzkwIDQwOCB5KCRpZilnKEZ0cCkzOTAgNTE4IHkoIlxcQy14ZyI6KWYoImdldClnKFxcTS0/IikzOTAKKzYyOCB5KCJcXEMteHQiOilnKCJwdXQpZyhcXE0tPyIpMzkwIDczNyB5KCJcXE0tLiI6KWcoeWFuay1sYXN0LWFyZykzOTAKKzg0NyB5KCRlbmRpZikxNTAgMTA5OCB5IEZtKDEuNCk2OCBiKEJpbmRhYmxlKTQ1IGIoUmVhZGxpbmUpaShDb21tYW5kcykKKzI3NSAxMzQwIHkgRm8oVGhpcykzMCBiKHNlY3Rpb24paihkZXNjcmliKXMoZXMpZChSZWFkbGluZSlpKGNvbW1hbmRzKWYKKyh0aGF0KWgobWEpbSh5KWcoYilzKGUpZihiKXMob3VuZCllKHRvKWooayltKGV5KWcoc2VxdWVuY2VzLik0NAorYihDb20tKTE1MCAxNDQ5IHkobWFuZCkzMCBiKG5hbWVzKWcod2l0aG91dClnKGFuKWcoYWNjb21wYW4pbSh5aW5nKWkoaykKK20oZXkpZyhzZXF1ZW5jZSllKGFyZSloKHVuKW0oYilzKG91bmQpZChiKW0oeSlpKGRlZmF1bHQuKTI3NQorMTU4MiB5KEluKTI1IGIodGhlKWgoZm9sbG8pbSh3aW5nKWkoZGVzY3JpcHRpb25zLClmIEZkKHApcyhvaW4pbSh0KWgKK0ZvKHJlZmVycyllKHRvKWgodGhlKWYoY3VycmVuKW0odClnKGN1cnNvcilnKHApcyhvc2l0aW9uLCloKGFuZClmCitGZChtYXJrKTMxIGIgRm8ocmVmZXJzKTE1MCAxNjkxIHkodG8pNDAgYihhKWYoY3Vyc29yKWYocClzKG9zaXRpb24paAorKHNhKW0odiltKGVkKWgoYiltKHkpZih0aGUpZyBGbihzZXQtbWFyaylkIEZvKGNvbW1hbmQuKTY2CitiKFRoZSkzOCBiKHRleHQpaShiKXMoZXQpbSh3KW0oZWVuKWcodGhlKWYocClzKG9pbiltKHQpZyhhbmQpMTUwCisxODAxIHkobWFyaykzMCBiKGlzKWgocmVmZXJyZWQpZSh0bylpKGFzKWcodGhlKWYgRmQocmVnaW9uKXAKK0ZvKC4pMTUwIDIwMTggeSBGYygxLjQuMSk2MyBiKENvbW1hbmRzKTQyIGIoRiktMTAgYihvcik0MQorYihNbyltKHZpbmcpMTUwIDIyNjAgeSBGbihiZWdpbm5pbmctb2YtbGluZSkyNiBiKFwoQy1hXCkpNjMwCisyMzcwIHkgRm8oTW8pbSh2KW0oZSkzMiBiKHRvKWcodGhlKWUoc3RhcnQpaChvZilnKHRoZSlmKGN1cnJlbiltKHQpZworKGxpbmUuKTE1MCAyNTI1IHkgRm4oZW5kLW9mLWxpbmUpZChcKEMtZVwpKTYzMCAyNjM1IHkKK0ZvKE1vKW0odiltKGUpMzIgYih0bylnKHRoZSllKGVuZClnKG9mKWcodGhlKWgobGluZS4pMTUwCisyNzkwIHkgRm4oZm9yd2FyZC1jaGFyKWMoXChDLWZcKSk2MzAgMjg5OSB5IEZvKE1vKW0odiltKGUpMzIKK2IoZm9ydyltKGFyZCllKGEpaChjKW0oaGFyYWN0ZXIuKTE1MCAzMDU0IHkgRm4oYmFja3dhcmQtY2hhciljKFwoQy1iXCkpCis2MzAgMzE2NCB5IEZvKE1vKW0odiltKGUpMzIgYihiYWMpbShrKWcoYSllKGMpbShoYXJhY3Rlci4pMTUwCiszMzE5IHkgRm4oZm9yd2FyZC13b3JkKWQoXChNLWZcKSk2MzAgMzQyOSB5IEZvKE1vKW0odiltKGUpMzIKK2IoZm9ydyltKGFyZCllKHRvKWgodGhlKWYoZW5kKWcob2YpZyh0aGUpaChuZXh0KWYodyltKG9yZC4pNDEKK2IoVyktOCBiKG9yZHMpMzAgYihhcmUpaChjb21wKXMob3NlZClmKG9mKWcobGV0dGVycylpKGFuZCk2MzAKKzM1MzggeShkaWdpdHMuKTE1MCAzNjkzIHkgRm4oYmFja3dhcmQtd29yZCkyNyBiKFwoTS1iXCkpNjMwCiszODAzIHkgRm8oTW8pbSh2KW0oZSkzNiBiKGJhYyltKGspZSh0bylnKHRoZSlnKHN0YXJ0KWcob2YpZyh0aGUpZworKGN1cnJlbiltKHQpZihvcilnKHByZXZpb3VzKWcodyltKG9yZC4pNTAgYihXKS04IGIob3JkcykzNAorYihhcmUpZyhjb21wKXMob3NlZCk2MzAgMzkxMyB5KG9mKWQobGV0dGVycylnKGFuZClmKGRpZ2l0cy4pMTUwCis0MDY4IHkgRm4oY2xlYXItc2NyZWVuKWQoXChDLWxcKSk2MzAgNDE3NyB5IEZvKENsZWFyKWcodGhlKWcoc2NyZWVuKWYKKyhhbmQpaChyZWRyYSltKHcpZih0aGUpaChjdXJyZW4pbSh0KWYobGluZSwpaShsZWEpbSh2aW5nKWcodGhlKWYKKyhjdXJyZW4pbSh0KWcobGluZSlnKGF0KWcodGhlKWcodG9wKTYzMCA0Mjg3IHkob2Ypayh0aGUpZihzY3JlZW4uKTE1MAorNDQ0MiB5IEZuKHJlZHJhdy1jdXJyZW50LWxpbmUpMjUgYihcKFwpKTYzMCA0NTUyIHkgRm8oUmVmcmVzaCkzMAorYih0aGUpZyhjdXJyZW4pbSh0KWgobGluZS4pNDEgYihCeSkzMCBiKGRlZmF1bHQsKWgodGhpcylmKGlzKWgodW4pbShiKXMKKyhvdW5kLikxNTAgNDc2OSB5IEZjKDEuNC4yKTYzIGIoQ29tbWFuZHMpNDIgYihGKS0xMCBiKG9yKTQxCitiKE1hbmlwdWxhdGluZyloKFRoZSlmKEhpc3RvcnkpMTUwIDUwMTEgeSBGbihhY2NlcHQtbGluZSkyNworYihcKE5ld2xpbmUpaChvcilpKFJldHVyblwpKTYzMCA1MTIxIHkgRm8oQWNjZXB0KTM2IGIodGhlKWcobGluZSlmCisocmVnYXJkbGVzcyloKG9mKWYod2hlcmUpZyh0aGUpZyhjdXJzb3IpZyhpcy4pNTUgYihJZikzNAorYih0aGlzKWgobGluZSloKGlzKWYobm9uLWVtcHQpbSh5KS04IGIoLCkzNyBiKGl0KTYzMAorNTIzMCB5KG1hKW0oeSkzMiBiKGIpcyhlKWcoYWRkZWQpZih0byloKHRoZSlnKGhpc3RvcnkpZyhsaXN0KWgoZm9yKWUKKyhmdXR1cmUpZyhyZWNhbGwpaih3aXRoKWQgRm4oYWRkX2hpc3RvcnlcKFwpKXAgRm8oLik0MgorYihJZikzMSBiKHRoaXMpNjMwIDUzNDAgeShsaW5lKWcoaXMpZihhKWgobW8pcyhkaVwwMTRlZCllKGhpc3RvcnkpaAorKGxpbmUsKWgodGhlKWcoaGlzdG9yeSlmKGxpbmUpaChpcylmKHJlc3RvcmVkKWgodG8pZyhpdHMpZyhvcmlnaW5hbClnCisoc3RhdGUuKXAgZW9wIGVuZAorJSVQYWdlOiAxNCAxOAorVGVYRGljdCBiZWdpbiAxNCAxNyBib3AgMTUwIC0xMTYgYSBGbygxNCkyNjAwIGIoR05VKTMxCitiKFJlYWRsaW5lKWcoTGlicmFyeSkxNTAgMjk5IHkgRm4ocHJldmlvdXMtaGlzdG9yeSkyNgorYihcKEMtcFwpKTYzMCA0MDggeSBGbyhNbyltKHYpbShlKTMyIGIoYGJhYyltKGsnKWcodGhyb3VnaCllKHRoZSlnCisoaGlzdG9yeSloKGxpc3QsKWcoZmV0YyltKGhpbmcpZyh0aGUpZyhwcmV2aW91cylmKGNvbW1hbmQuKTE1MAorNTU2IHkgRm4obmV4dC1oaXN0b3J5KWQoXChDLW5cKSk2MzAgNjY2IHkgRm8oTW8pbSh2KW0oZSkzMgorYihgZm9ydyltKGFyZCcpZih0aHJvdWdoKWUodGhlKWkoaGlzdG9yeSlmKGxpc3QsKWkoZmV0YyltKGhpbmcpZih0aGUpZworKG5leHQpZihjb21tYW5kLikxNTAgODE0IHkgRm4oYmVnaW5uaW5nLW9mLWhpc3RvcnkpMjUKK2IoXChNLTxcKSk2MzAgOTIzIHkgRm8oTW8pbSh2KW0oZSkzMiBiKHRvKWcodGhlKWUoXDAxNHJzdClnKGxpbmUpZyhpbiloCisodGhlKWYoaGlzdG9yeSktOCBiKC4pMTUwIDEwNzEgeSBGbihlbmQtb2YtaGlzdG9yeSkyNgorYihcKE0tPlwpKTYzMCAxMTgxIHkgRm8oTW8pbSh2KW0oZSkzMiBiKHRvKWcodGhlKWUoZW5kKWcob2YpZyh0aGUpaAorKGlucHV0KWUoaGlzdG9yeSktOCBiKCwpMzEgYihpLmUuLCloKHRoZSlmKGxpbmUpZihjdXJyZW4pbSh0bHkpaChiKXMKKyhlaW5nKWYoZW4pbSh0ZXJlZC4pMTUwIDEzMjkgeSBGbihyZXZlcnNlLXNlYXJjaC1oaXN0b3J5KTI0CitiKFwoQy1yXCkpNjMwIDE0MzggeSBGbyhTZWFyYyltKGgpMzEgYihiYWMpbShrdyltKGFyZCloKHN0YXJ0aW5nKWcoYXQpZworKHRoZSlmKGN1cnJlbiltKHQpZyhsaW5lKWcoYW5kKWcobW8pbSh2aW5nKWgoYHVwJyllKHRocm91Z2gpaCh0aGUpZworKGhpcy0pNjMwIDE1NDggeSh0b3J5KWcoYXMpZihuZWNlc3NhcnkpLTggYiguKTQyIGIoVGhpcykyOQorYihpcylpKGFuKWYoaW5jcmVtZW4pbSh0YWwpaShzZWFyYyltKGguKTE1MCAxNjk2IHkgRm4KKyhmb3J3YXJkLXNlYXJjaC1oaXN0b3J5KTI0IGIoXChDLXNcKSk2MzAgMTgwNSB5IEZvKFNlYXJjKW0oaCkzMAorYihmb3J3KW0oYXJkKWYoc3RhcnRpbmcpaChhdClnKHRoZSlnKGN1cnJlbiltKHQpZihsaW5lKWgoYW5kKWYobW8pbQorKHZpbmcpaChgZG8pbSh3bicpZih0aHJvdWdoKWcodGhlKWgodGhlKTYzMCAxOTE1IHkoaGlzdG9yeSlnKGFzKWgKKyhuZWNlc3NhcnkpLTggYiguKTQxIGIoVGhpcykzMCBiKGlzKWcoYW4paChpbmNyZW1lbiltKHRhbClnKHNlYXJjKW0oaC4pCisxNTAgMjA2MyB5IEZuKG5vbi1pbmNyZW1lbnRhbC1yZXZlcnNlLSlvKHNlYXIpbyhjaC1oKW8oaXN0KW8ob3J5KTI0CitiKFwoTS1wXCkpNjMwIDIxNzIgeSBGbyhTZWFyYyltKGgpMzEgYihiYWMpbShrdyltKGFyZCloKHN0YXJ0aW5nKWcoYXQpZworKHRoZSlmKGN1cnJlbiltKHQpZyhsaW5lKWcoYW5kKWcobW8pbSh2aW5nKWgoYHVwJyllKHRocm91Z2gpaCh0aGUpZworKGhpcy0pNjMwIDIyODIgeSh0b3J5KTM2IGIoYXMpZyhuZWNlc3NhcnkpaCh1c2luZyllKGEpaShub24taW5jcmVtZW4pbQorKHRhbClnKHNlYXJjKW0oaClmKGZvcilnKGEpZyhzdHJpbmcpZyhzdXBwbGllZClmKGIpbSh5KWgodGhlKTYzMAorMjM5MSB5KHVzZXIuKTE1MCAyNTM5IHkgRm4obm9uLWluY3JlbWVudGFsLWZvcndhcmQtKW8oc2VhcilvKGNoLWgpbworKGlzdClvKG9yeSkyNCBiKFwoTS1uXCkpNjMwIDI2NDkgeSBGbyhTZWFyYyltKGgpMzAgYihmb3J3KW0oYXJkKWYKKyhzdGFydGluZyloKGF0KWcodGhlKWcoY3VycmVuKW0odClmKGxpbmUpaChhbmQpZihtbyltKHZpbmcpaChgZG8pbSh3bicpCitmKHRocm91Z2gpZyh0aGUpaCh0aGUpNjMwIDI3NTggeShoaXN0b3J5KWQoYXMpZihuZWNlc3NhcnkpaSh1c2luZyllKGEpaAorKG5vbi1pbmNyZW1lbiltKHRhbClnKHNlYXJjKW0oaCloKGZvcillKGEpaChzdHJpbmcpZyhzdXBwbGllZCllKGIpbSh5KWkKKyh0aGUpNjMwIDI4NjggeSh1c2VyLikxNTAgMzAxNiB5IEZuKGhpc3Rvcnktc2VhcmNoLWZvcndhcmQpZChcKFwpKTYzMAorMzEyNSB5IEZvKFNlYXJjKW0oaCk0MiBiKGZvcncpbShhcmQpZih0aHJvdWdoKWYodGhlKWkoaGlzdG9yeSlmKGZvcilnCisodGhlKWgoc3RyaW5nKWYob2YpaChjKW0oaGFyYWN0ZXJzKWgoYilzKGV0KW0odyltKGVlbilmKHRoZSk2MzAKKzMyMzUgeShzdGFydCkzNiBiKG9mKWYodGhlKWcoY3VycmVuKW0odClnKGxpbmUpZyhhbmQpZyh0aGUpZyhwKXMob2luKW0KKyh0Lik1NSBiKFRoaXMpMzQgYihpcylpKGEpZihub24taW5jcmVtZW4pbSh0YWwpaChzZWFyYyltKGguKTU2CitiKEJ5KTYzMCAzMzQ1IHkoZGVmYXVsdCwpMzEgYih0aGlzKWYoY29tbWFuZClnKGlzKWgodW4pbShiKXMob3VuZC4pMTUwCiszNDkyIHkgRm4oaGlzdG9yeS1zZWFyY2gtYmFja3dhcmQpMjQgYihcKFwpKTYzMCAzNjAyCit5IEZvKFNlYXJjKW0oaCkzNSBiKGJhYyltKGt3KW0oYXJkKWcodGhyb3VnaClmKHRoZSloKGhpc3RvcnkpZyhmb3IpZworKHRoZSlmKHN0cmluZyloKG9mKWcoYyltKGhhcmFjdGVycyloKGIpcyhldCltKHcpbShlZW4pZyh0aGUpNjMwCiszNzEyIHkoc3RhcnQpZyhvZilmKHRoZSlnKGN1cnJlbiltKHQpZyhsaW5lKWcoYW5kKWcodGhlKWcocClzKG9pbiltKHQuKQorNTUgYihUaGlzKTM0IGIoaXMpaShhKWYobm9uLWluY3JlbWVuKW0odGFsKWgoc2VhcmMpbShoLik1NgorYihCeSk2MzAgMzgyMSB5KGRlZmF1bHQsKTMxIGIodGhpcylmKGNvbW1hbmQpZyhpcyloKHVuKW0oYilzKG91bmQuKTE1MAorMzk2OSB5IEZuKHlhbmstbnRoLWFyZyljKFwoTS1DLXlcKSk2MzAgNDA3OSB5IEZvKEluc2VydCkzNworYih0aGUpZyhcMDE0cnN0KWYoYXJndW1lbiltKHQpaSh0bylmKHRoZSloKHByZXZpb3VzKWUoY29tbWFuZCloCisoXCh1c3VhbGx5KWcodGhlKWcoc2Vjb25kKWcodyltKG9yZCk2MzAgNDE4OCB5KG9uKTMyCitiKHRoZSlnKHByZXZpb3VzKWYobGluZVwpKWkoYXQpZihwKXMob2luKW0odC4pNDYgYihXaXRoKTMyCitiKGFuKWcoYXJndW1lbiltKHQpZyBGZChuKXAgRm8oLClnKGluc2VydClnKHRoZSlnIEZkKG4pcAorRm8odGgpZih3KW0ob3JkKWcoZnJvbSk2MzAgNDI5OCB5KHRoZSlrKHByZXZpb3VzKWYoY29tbWFuZCloKFwodGhlKWcodykKK20ob3JkcylnKGluKWYodGhlKWgocHJldmlvdXMpZyhjb21tYW5kKWYoYilzKGVnaW4paCh3aXRoKWYodyltKG9yZCk2MzAKKzQ0MDcgeSgwXCkuKTY5IGIoQSk0MCBiKG5lZ2F0aXYpbShlKWgoYXJndW1lbiltKHQpZihpbnNlcnRzKWcodGhlKWYKK0ZkKG4pcCBGbyh0aClnKHcpbShvcmQpZyhmcm9tKWcodGhlKWgoZW5kKWYob2YpaCh0aGUpZihwcmV2aW91cyk2MzAKKzQ1MTcgeShjb21tYW5kLik0OCBiKE9uY2UpMzMgYih0aGUpZyhhcmd1bWVuKW0odCloIEZkKG4pZQorRm8oaXMpaChjb21wdXRlZCwpaCh0aGUpZihhcmd1bWVuKW0odClnKGlzKWcoZXh0cmFjdGVkKWkoYXMpZShpZik2MzAKKzQ2MjcgeSh0aGUpZShgKXAgRm4oISlwIEZnKG4pMTEgYiBGbygnKTI5IGIoaGlzdG9yeSlpKGV4cGFuc2lvbilmKGhhZClnCisoYilzKGVlbilmKHNwKXMoZWNpXDAxNGVkLikxNTAgNDc3NCB5IEZuKHlhbmstbGFzdC1hcmcpZShcKE0tLilpKG9yKWgKKyhNLV9cKSk2MzAgNDg4NCB5IEZvKEluc2VydClrKGxhc3QpaShhcmd1bWVuKW0odClnKHRvKWcodGhlKWYocHJldmlvdXMpCitmKGNvbW1hbmQpaChcKHRoZSloKGxhc3QpZih3KW0ob3JkKWcob2YpZyh0aGUpZyhwcmV2aW91cyk2MzAKKzQ5OTQgeShoaXN0b3J5KWMoZW4pbSh0cnlcKS4pNDEgYihXaXRoKTMxIGIoYW4pZyhhcmd1bWVuKW0odCwpZyhiKXMKKyhlaGEpbSh2KW0oZSlnKGV4YWN0bHkpaShsaWspbShlKWYgRm4oeWFuay1udGgtYXJnKXAKK0ZvKC4pMzggYihTdWNjZXMtKTYzMCA1MTAzIHkoc2l2KW0oZSlkKGNhbGxzKWgodG8pZiBGbih5YW5rLWxhc3QtYXJnKWMKK0ZvKG1vKW0odiltKGUpMzYgYihiYWMpbShrKWcodGhyb3VnaClkKHRoZSlpKGhpc3RvcnkpZyhsaXN0LCloCisoaW5zZXJ0aW5nKWYodGhlKTYzMCA1MjEzIHkobGFzdClkKGFyZ3VtZW4pbSh0KWYob2YpZyhlYWMpbShoKWgobGluZSlmCisoaW4pZih0dXJuLik0MSBiKFRoZSkzMCBiKGhpc3RvcnkpaChleHBhbnNpb24pZihmYWNpbGl0aWVzKWooYXJlKWUKKyh1c2VkKWYodG8pNjMwIDUzMjIgeShleHRyYWN0KWkodGhlKWUobGFzdClpKGFyZ3VtZW4pbSh0LClmKGFzKWYoaWYpaAorKHRoZSlmKGApcCBGbighJClwIEZvKCcpZyhoaXN0b3J5KWgoZXhwYW5zaW9uKWYoaGFkKWcoYilzKGVlbilmKHNwKXMKKyhlY2lcMDE0ZWQuKXAgZW9wIGVuZAorJSVQYWdlOiAxNSAxOQorVGVYRGljdCBiZWdpbiAxNSAxOCBib3AgMTUwIC0xMTYgYSBGbyhDaGFwdGVyKTMwIGIoMTopNDEKK2IoQ29tbWFuZCkyOSBiKExpbmUpaShFZGl0aW5nKTIxMDcgYigxNSkxNTAgMjk5IHkgRmMoMS40LjMpNjMKK2IoQ29tbWFuZHMpNDIgYihGKS0xMCBiKG9yKTQxIGIoQ2hhbmdpbmcpZyhUKS0xMCBiKGV4dCkxNTAKKzU0NyB5IEZuKGRlbGV0ZS1jaGFyKTI3IGIoXChDLWRcKSk2MzAgNjU2IHkgRm8oRGVsZXRlKTQxCitiKHRoZSllKGMpbShoYXJhY3RlcilpKGF0KWUocClzKG9pbiltKHQuKTY2IGIoSWYpMzkgYihwKXMob2luKW0odClmKGlzKQoraChhdCloKHRoZSlmKGIpcyhlZ2lubmluZylmKG9mKWgodGhlKWcobGluZSwpaih0aGVyZSk2MzAKKzc2NiB5KGFyZSkzNyBiKG5vKWcoYyltKGhhcmFjdGVycylpKGluKWQodGhlKWkobGluZSwpaChhbmQpZCh0aGUpaAorKGxhc3QpaChjKW0oaGFyYWN0ZXIpaCh0KW0oeXApcyhlZCllKHcpbShhcylnKG5vdClnKGIpcyhvdW5kKWUodG8pNjMwCis4NzUgeSBGbihkZWxldGUtY2hhcilwIEZvKCwpMjggYih0aGVuKWkocmV0dXJuKWYgRmgoZW9mKXAKK0ZvKC4pMTUwIDEwNDIgeSBGbihiYWNrd2FyZC1kZWxldGUtY2hhciljKFwoUnVib3V0XCkpNjMwCisxMTUyIHkgRm8oRGVsZXRlKTMyIGIodGhlKWYoYyltKGhhcmFjdGVyKWcoYilzKGVoaW5kKWUodGhlKWgoY3Vyc29yLik0MAorYihBKTMwIGIobiltKHVtZXJpYylnKGFyZ3VtZW4pbSh0KWgobWVhbnMpZih0byloKGtpbGwpZyh0aGUpNjMwCisxMjYxIHkoYyltKGhhcmFjdGVycyloKGluc3RlYWQpZShvZiloKGRlbGV0aW5nKWcodGhlbS4pMTUwCisxNDI4IHkgRm4oZm9yd2FyZC1iYWNrd2FyZC1kZWxldGUtKW8oY2hhcikyNCBiKFwoXCkpNjMwCisxNTM4IHkgRm8oRGVsZXRlKTQwIGIodGhlKWYoYyltKGhhcmFjdGVyKWgodW5kZXIpYyh0aGUpaihjdXJzb3IsKWgKKyh1bmxlc3MpZCh0aGUpaShjdXJzb3IpZShpcyloKGF0KWgodGhlKWcoZW5kKWUob2YpaSh0aGUpNjMwCisxNjQ3IHkobGluZSwpMzMgYihpbillKHdoaWMpbShoKWcoY2FzZSlpKHRoZSlmKGMpbShoYXJhY3RlciloKGIpcworKGVoaW5kKWQodGhlKWkoY3Vyc29yKWYoaXMpZyhkZWxldGVkLik0NiBiKEJ5KTMyIGIoZGVmYXVsdCwpZyh0aGlzKTYzMAorMTc1NyB5KGlzKWUobm90KWgoYilzKG91bmQpZCh0bylqKGEpZyhrKW0oZXkpLTggYiguKTE1MAorMTkyNCB5IEZuKHF1b3RlZC1pbnNlcnQpMjcgYihcKEMtcSlpKG9yKWgoQy12XCkpNjMwIDIwMzMKK3kgRm8oQWRkKWoodGhlKWkobmV4dClmKGMpbShoYXJhY3RlcilpKHQpbSh5cClzKGVkKWUodG8paCh0aGUpZihsaW5lKWgKKyh2KW0oZXJiYXRpbS4pNTMgYihUaGlzKTMzIGIoaXMpaShobyltKHcpZih0byloKGluc2VydClmKGspbShleSk2MzAKKzIxNDMgeShzZXF1ZW5jZXMpZChsaWspbShlKWcgRmcoQy1xKXAgRm8oLClmKGZvcilnKGV4YW1wbGUuKTE1MAorMjMxMCB5IEZuKHRhYi1pbnNlcnQpZShcKE0tKTgwMiAyMzA3IHkgRmYoaClwIDgyNSAyMjU0CisxNDggNCB2IDgyNSAyMzEwIGEgRmUoVCktNiBiKEFCKXAgODI1IDIzMjUgViA5NjkgMjMwNworYSBGZihpKTk5OCAyMzEwIHkgRm4oXCkpNjMwIDI0MTkgeSBGbyhJbnNlcnQpMzAgYihhKWgodGFiKWYoYyltCisoaGFyYWN0ZXIuKTE1MCAyNTg2IHkgRm4oc2VsZi1pbnNlcnQpZChcKGEsKWooYiwpZyhBLClmKDEsKWgoISwpZyguLi4pbworKFwpKTYzMCAyNjk2IHkgRm8oSW5zZXJ0KWcoeSltKG91cnNlbGYuKTE1MCAyODYyIHkgRm4odHJhbnNwb3NlLWNoYXJzKWMKKyhcKEMtdFwpKTYzMCAyOTcyIHkgRm8oRHJhZykzMyBiKHRoZSlmKGMpbShoYXJhY3RlciloKGIpcyhlZm9yZSlmKHRoZSlnCisoY3Vyc29yKWYoZm9ydyltKGFyZCloKG8pbSh2KW0oZXIpaCh0aGUpZihjKW0oaGFyYWN0ZXIpaShhdCllKHRoZSlnCisoY3Vyc29yLCk2MzAgMzA4MSB5KG1vKW0odmluZylrKHRoZSlnKGN1cnNvcilmKGZvcncpbShhcmQpZyhhcylnKHcpbQorKGVsbC4pNTcgYihJZikzNSBiKHRoZSloKGluc2VydGlvbilnKHApcyhvaW4pbSh0KWYoaXMpZyhhdClpKHRoZSllKGVuZCkKK2cob2YpaCh0aGUpNjMwIDMxOTEgeShsaW5lLCkyNCBiKHRoZW4pZSh0aGlzKWcodHJhbnNwKXMob3NlcylmKHRoZSloCisobGFzdCloKHQpbSh3KW0obylnKGMpbShoYXJhY3RlcnMpZyhvZilmKHRoZSloKGxpbmUuKTM4CitiKE5lZ2F0aXYpbShlKTI1IGIoYXJndW1lbiltKHRzKTYzMCAzMzAxIHkoaGEpbSh2KW0oZSkzMgorYihubyllKGVcMDEzZWN0LikxNTAgMzQ2NyB5IEZuKHRyYW5zcG9zZS13b3JkcyljKFwoTS10XCkpNjMwCiszNTc3IHkgRm8oRHJhZykzMyBiKHRoZSlnKHcpbShvcmQpZihiKXMoZWZvcmUpZyhwKXMob2luKW0odClnKHBhc3QpZworKHRoZSloKHcpbShvcmQpZihhZnRlcilnKHApcyhvaW4pbSh0LClpKG1vKW0odmluZylmKHApcyhvaW4pbSh0KWYocGFzdCkKK2codGhhdCk2MzAgMzY4NyB5KHcpbShvcmQpYyhhcyloKHcpbShlbGwuKTQxIGIoSWYpMjcKK2IodGhlKWkoaW5zZXJ0aW9uKWYocClzKG9pbiltKHQpaChpcylmKGF0KWgodGhlKWcoZW5kKWUob2YpaSh0aGUpZgorKGxpbmUsKWkodGhpcyllKHRyYW5zcClzKG9zZXMpZyh0aGUpNjMwIDM3OTYgeShsYXN0KWoodCltKHcpbShvKWgodyltCisob3JkcyllKG9uKWcodGhlKWgobGluZS4pMTUwIDM5NjMgeSBGbih1cGNhc2Utd29yZCljKFwoTS11XCkpNjMwCis0MDczIHkgRm8oVXBwKXMoZXJjYXNlKTMyIGIodGhlKWcoY3VycmVuKW0odClnKFwob3IpZyhmb2xsbyltKHdpbmdcKSlpCisodyltKG9yZC4pNDUgYihXaXRoKTMyIGIoYSlnKG5lZ2F0aXYpbShlKWooYXJndW1lbiltKHQsKWUodXBwKXMoZXItKTYzMAorNDE4MiB5KGNhc2UpZSh0aGUpZyhwcmV2aW91cylmKHcpbShvcmQsKWcoYnV0KWcoZG8pZyhub3QpaChtbyltKHYpbShlKWgKKyh0aGUpZShjdXJzb3IuKTE1MCA0MzQ5IHkgRm4oZG93bmNhc2Utd29yZClkKFwoTS1sXCkpNjMwCis0NDU4IHkgRm8oTG8pbSh3KW0oZXJjYXNlKWModGhlKWYoY3VycmVuKW0odClmKFwob3IpaChmb2xsbyltKHdpbmdcKSlpCisodyltKG9yZC4pMzcgYihXaXRoKTIyIGIoYSlnKG5lZ2F0aXYpbShlKWkoYXJndW1lbiltKHQsKWcobG8pbSh3KW0KKyhlcmNhc2UpNjMwIDQ1NjggeSh0aGUpMzEgYihwcmV2aW91cyllKHcpbShvcmQsKWkoYnV0KWUoZG8paShub3QpZihtbyltCisodiltKGUpaSh0aGUpZihjdXJzb3IuKTE1MCA0NzM1IHkgRm4oY2FwaXRhbGl6ZS13b3JkKTI2CitiKFwoTS1jXCkpNjMwIDQ4NDQgeSBGbyhDYXBpdGFsaXplKWQodGhlKWYoY3VycmVuKW0odClmKFwob3IpZyhmb2xsbyltCisod2luZ1wpKWkodyltKG9yZC4pMzggYihXaXRoKTIxIGIoYSloKG5lZ2F0aXYpbShlKWgoYXJndW1lbiltKHQsKWgKKyhjYXBpdGFsaXplKTYzMCA0OTU0IHkodGhlKTMxIGIocHJldmlvdXMpZSh3KW0ob3JkLClpKGJ1dCllKGRvKWkobm90KWYKKyhtbyltKHYpbShlKWkodGhlKWYoY3Vyc29yLikxNTAgNTEyMSB5IEZuKG92ZXJ3cml0ZS1tb2RlKTI2CitiKFwoXCkpNjMwIDUyMzAgeSBGbyhUKS04IGIob2dnbGUpMzUgYihvKW0odiltKGVyd3JpdGUpZyhtbylzKGRlLik0OAorYihXaXRoKTMzIGIoYW4pZyhleHBsaWNpdCloKHApcyhvc2l0aXYpbShlKWcobiltKHVtZXJpYylmKGFyZ3VtZW4pbSh0LCkKK2goc3dpdGMpbShoZXMpNjMwIDUzNDAgeSh0bykyMiBiKG8pbSh2KW0oZXJ3cml0ZSlpKG1vKXMoZGUuKTM3CitiKFdpdGgpMjIgYihhbilnKGV4cGxpY2l0KWgobm9uLXApcyhvc2l0aXYpbShlKWYobiltKHVtZXJpYylnKGFyZ3VtZW4pbQorKHQsKWkoc3dpdGMpbShoZXMpZSh0bylwIGVvcCBlbmQKKyUlUGFnZTogMTYgMjAKK1RlWERpY3QgYmVnaW4gMTYgMTkgYm9wIDE1MCAtMTE2IGEgRm8oMTYpMjYwMCBiKEdOVSkzMQorYihSZWFkbGluZSlnKExpYnJhcnkpNjMwIDI5OSB5KGluc2VydClmKG1vKXMoZGUuKTQxIGIoVGhpcykzMAorYihjb21tYW5kKWgoYVwwMTNlY3RzKWgob25seSllIEZuKGVtYWNzKWYgRm8obW8pcyhkZTspaQorRm4odmkpZiBGbyhtbylzKGRlKWcoZG8pcyhlcylnKG8pbSh2KW0oZXJ3cml0ZSk2MzAgNDA4Cit5KGRpXDAxM2VyZW4pbSh0bHkpLTggYiguKTQyIGIoRWFjKW0oaCkzMSBiKGNhbGwpaCh0bylmCitGbihyZWFkbGluZVwoXCkpYyBGbyhzdGFydHMpayhpbilmKGluc2VydClnKG1vKXMoZGUuKTYzMAorNTM5IHkoSW4pZShvKW0odiltKGVyd3JpdGUpaihtbylzKGRlLCllKGMpbShoYXJhY3RlcnMpaShiKXMob3VuZCljKHRvKWoKK0ZuKHNlbGYtaW5zZXJ0KWMgRm8ocmVwbGFjZSlrKHRoZSlnKHRleHQpZyhhdClnKHApcyhvaW4pbSh0KTYzMAorNjQ4IHkocmF0aGVyKTQxIGIodGhhbiloKHB1c2hpbmcpZSh0aGUpaSh0ZXh0KWcodG8pZyh0aGUpZyhyaWdoKW0odC4pNzUKK2IoQ2hhcmFjdGVycyk0MiBiKGIpcyhvdW5kKWQodG8paiBGbihiYWNrd2FyZC0pNjMwIDc1OAoreShkZWxldGUtY2hhcikyNyBiIEZvKHJlcGxhY2UpMzIgYih0aGUpZShjKW0oaGFyYWN0ZXIpaShiKXMoZWZvcmUpZShwKXMKKyhvaW4pbSh0KWgod2l0aClmKGEpZyhzcGFjZS4pNjMwIDg4OCB5KEJ5KWgoZGVmYXVsdCwpZih0aGlzKWgoY29tbWFuZClmCisoaXMpZyh1biltKGIpcyhvdW5kLikxNTAgMTA5OSB5IEZjKDEuNC40KTYzIGIoS2lsbGluZyk0MgorYihBbmQpZShZKS0xMCBiKGFua2luZykxNTAgMTMzOSB5IEZuKGtpbGwtbGluZSkyOCBiKFwoQy1rXCkpNjMwCisxNDQ5IHkgRm8oS2lsbClqKHRoZSlmKHRleHQpaShmcm9tKWUocClzKG9pbiltKHQpZyh0byloKHRoZSlnKGVuZCllKG9mKQoraSh0aGUpZihsaW5lLikxNTAgMTU5OSB5IEZuKGJhY2t3YXJkLWtpbGwtbGluZSkyNSBiKFwoQy14KTMwCitiKFJ1Ym91dFwpKTYzMCAxNzA5IHkgRm8oS2lsbCloKGJhYyltKGt3KW0oYXJkKWcodG8pZyh0aGUpZihiKXMKKyhlZ2lubmluZylnKG9mKWcodGhlKWgobGluZS4pMTUwIDE4NjAgeSBGbih1bml4LWxpbmUtZGlzY2FyZCkyNgorYihcKEMtdVwpKTYzMCAxOTY5IHkgRm8oS2lsbCkzMSBiKGJhYyltKGt3KW0oYXJkKWcoZnJvbSllKHRoZSlpKGN1cnNvcikKK2YodG8paCh0aGUpZihiKXMoZWdpbm5pbmcpZyhvZiloKHRoZSlmKGN1cnJlbiltKHQpZyhsaW5lLikxNTAKKzIxMjAgeSBGbihraWxsLXdob2xlLWxpbmUpYyhcKFwpKTYzMCAyMjMwIHkgRm8oS2lsbCkzNworYihhbGwpZyhjKW0oaGFyYWN0ZXJzKWgob24pZih0aGUpZihjdXJyZW4pbSh0KWgobGluZSwpaChubylmKG1hdHRlcilnCisod2hlcmUpZihwKXMob2luKW0odCloKGlzLik1OSBiKEJ5KTM2IGIoZGVmYXVsdCwpNjMwCisyMzM5IHkodGhpcykzMCBiKGlzKWgodW4pbShiKXMob3VuZC4pMTUwIDI0OTAgeSBGbihraWxsLXdvcmQpZChcKE0tZFwpKQorNjMwIDI2MDAgeSBGbyhLaWxsKWkoZnJvbSlmKHApcyhvaW4pbSh0KWcodG8paCh0aGUpZyhlbmQpZShvZilpKHRoZSlmCisoY3VycmVuKW0odCloKHcpbShvcmQsKWYob3IpZyhpZiloKGIpcyhldCltKHcpbShlZW4pZyh3KW0ob3JkcywpZih0byloCisodGhlKWcoZW5kKTYzMCAyNzA5IHkob2YpaCh0aGUpZihuZXh0KWgodyltKG9yZC4pNDAgYihXKS04CitiKG9yZCkzMSBiKGIpcyhvdW5kYXJpZXMpZShhcmUpaCh0aGUpaChzYW1lKWcoYXMpZiBGbihmb3J3YXJkLXdvcmQpcAorRm8oLikxNTAgMjg2MCB5IEZuKGJhY2t3YXJkLWtpbGwtd29yZCkyNSBiKFwoTS0pMTE4MworMjg1NyB5IEZmKGgpcCAxMjA3IDI4MDQgMTQ2IDQgdiAxMjA3IDI4NjAgYSBGZShERUwpcAorMTIwNyAyODc1IFYgMTM0OCAyODU3IGEgRmYoaSkxMzc4IDI4NjAgeSBGbihcKSk2MzAgMjk3MAoreSBGbyhLaWxsKWsodGhlKWcodyltKG9yZClnKGIpcyhlaGluZCllKHApcyhvaW4pbSh0Lik0MAorYihXKS04IGIob3JkKTI5IGIoYilzKG91bmRhcmllcylmKGFyZSloKHRoZSlnKHNhbWUpZyhhcylnCitGbihiYWNrd2FyZC13b3JkKXAgRm8oLikxNTAgMzEyMCB5IEZuKHVuaXgtd29yZC1ydWJvdXQpZChcKEMtd1wpKTYzMAorMzIzMCB5IEZvKEtpbGwpMzIgYih0aGUpZyh3KW0ob3JkKWYoYilzKGVoaW5kKWYocClzKG9pbiltKHQsKWkodXNpbmcpZgorKHdoaXRlKWgoc3BhY2UpZyhhcylnKGEpZyh3KW0ob3JkKWYoYilzKG91bmRhcnkpLTggYiguKTQzCitiKFRoZSkzMSBiKGtpbGxlZCk2MzAgMzMzOSB5KHRleHQpZyhpcylnKHNhKW0odiltKGVkKWcob24pZyh0aGUpZgorKGtpbGwtcmluZy4pMTUwIDM0OTAgeSBGbih1bml4LWZpbGVuYW1lLXJ1Ym91dCkyNSBiKFwoXCkpNjMwCiszNjAwIHkgRm8oS2lsbCkzNyBiKHRoZSlmKHcpbShvcmQpZyhiKXMoZWhpbmQpZihwKXMob2luKW0odCwpaih1c2luZyllCisod2hpdGUpZyhzcGFjZSloKGFuZClmKHRoZSlnKHNsYXNoKWcoYyltKGhhcmFjdGVyKWkoYXMpZih0aGUpNjMwCiszNzA5IHkodyltKG9yZCkzMCBiKGIpcyhvdW5kYXJpZXMuKTM5IGIoVGhlKTMwIGIoa2lsbGVkKWgodGV4dClnKGlzKWcKKyhzYSltKHYpbShlZClnKG9uKWcodGhlKWYoa2lsbC1yaW5nLikxNTAgMzg2MCB5IEZuCisoZGVsZXRlLWhvcml6b250YWwtc3BhY2UpMjQgYihcKFwpKTYzMCAzOTcwIHkgRm8oRGVsZXRlKTMzCitiKGFsbCllKHNwYWNlcylnKGFuZCllKHRhYnMpaShhcm91bmQpZShwKXMob2luKW0odC4pNDEKK2IoQnkpMzEgYihkZWZhdWx0LClmKHRoaXMpaChpcylmKHVuKW0oYilzKG91bmQuKTE1MCA0MTIxCit5IEZuKGtpbGwtcmVnaW9uKWQoXChcKSk2MzAgNDIzMCB5IEZvKEtpbGwpayh0aGUpZih0ZXh0KWkoaW4pZSh0aGUpZworKGN1cnJlbiltKHQpaChyZWdpb24uKTQxIGIoQnkpMzEgYihkZWZhdWx0LClmKHRoaXMpaChjb21tYW5kKWYoaXMpZyh1bikKK20oYilzKG91bmQuKTE1MCA0MzgxIHkgRm4oY29weS1yZWdpb24tYXMta2lsbCkyNSBiKFwoXCkpNjMwCis0NDkwIHkgRm8oQ29wKW0oeSkzNCBiKHRoZSlnKHRleHQpaChpbilmKHRoZSlnKHJlZ2lvbilnKHRvKWgodGhlKWYKKyhraWxsKWgoYnVcMDEzZXIsKWYoc28pZyhpdCloKGNhbilmKGIpcyhlKWYoeSltKGFuayltKGVkKWkocmlnaCltKHQpZgorKGEpbSh3KW0oYSltKHkpLTggYiguKTYzMCA0NjAwIHkoQnkpMzEgYihkZWZhdWx0LClmKHRoaXMpaChjb21tYW5kKWYKKyhpcylnKHVuKW0oYilzKG91bmQuKTE1MCA0NzUxIHkgRm4oY29weS1iYWNrd2FyZC13b3JkKTI1CitiKFwoXCkpNjMwIDQ4NjAgeSBGbyhDb3ApbSh5KTM4IGIodGhlKWgodyltKG9yZClmKGIpcyhlZm9yZSlnKHApcyhvaW4pbQorKHQpZyh0bylpKHRoZSllKGtpbGwpaChidVwwMTNlci4pNjQgYihUaGUpMzggYih3KW0ob3JkKWcoYilzKG91bmRhcmllcykKK2YoYXJlKWkodGhlKTYzMCA0OTcwIHkoc2FtZSkzMSBiKGFzKWYgRm4oYmFja3dhcmQtd29yZClwCitGbyguKTM4IGIoQnkpMzAgYihkZWZhdWx0LCloKHRoaXMpZihjb21tYW5kKWcoaXMpaCh1biltKGIpcyhvdW5kLikxNTAKKzUxMjEgeSBGbihjb3B5LWZvcndhcmQtd29yZCkyNiBiKFwoXCkpNjMwIDUyMzAgeSBGbyhDb3ApbSh5KTMxCitiKHRoZSlnKHcpbShvcmQpZyhmb2xsbyltKHdpbmcpaChwKXMob2luKW0odClmKHRvKWgodGhlKWYoa2lsbCloCisoYnVcMDEzZXIuKTQyIGIoVGhlKTMwIGIodyltKG9yZCloKGIpcyhvdW5kYXJpZXMpZShhcmUpaih0aGUpNjMwCis1MzQwIHkoc2FtZSlmKGFzKWYgRm4oZm9yd2FyZC13b3JkKXAgRm8oLikzOCBiKEJ5KTMwCitiKGRlZmF1bHQsKWgodGhpcylnKGNvbW1hbmQpZihpcylnKHVuKW0oYilzKG91bmQuKXAgZW9wCiBlbmQKKyUlUGFnZTogMTcgMjEKK1RlWERpY3QgYmVnaW4gMTcgMjAgYm9wIDE1MCAtMTE2IGEgRm8oQ2hhcHRlcikzMCBiKDE6KTQxCitiKENvbW1hbmQpMjkgYihMaW5lKWkoRWRpdGluZykyMTA3IGIoMTcpMTUwIDI5OSB5IEZuKHlhbmspMjkKK2IoXChDLXlcKSk2MzAgNDA4IHkgRm8oWSktOCBiKGFuaykzMSBiKHRoZSlmKHRvcCloKG9mKWcodGhlKWYoa2lsbCloCisocmluZylmKGluKW0odG8paSh0aGUpZShidVwwMTNlcilnKGF0KWgocClzKG9pbiltKHQuKTE1MAorNTUyIHkgRm4oeWFuay1wb3ApZChcKE0teVwpKTYzMCA2NjEgeSBGbyhSb3RhdGUpMzYgYih0aGUpZihraWxsLXJpbmcsKWkKKyhhbmQpZCh5KW0oYW5rKWgodGhlKWYobmV3KWcodG9wLik1NCBiKFkpLTggYihvdSkzNSBiKGNhbilnKG9ubHkpZihkbyloCisodGhpcylmKGlmKWgodGhlKWcocHJpb3IpNjMwIDc3MSB5KGNvbW1hbmQpMzAgYihpcyloCitGbih5YW5rKWUgRm8ob3IpaCBGbih5YW5rLXBvcClwIEZvKC4pMTUwIDk3MSB5IEZjKDEuNC41KTYzCitiKFNwKXMoZWNpZnlpbmcpNDIgYihOdW1lcmljKWYoQXJndW1lbiltKHRzKTE1MCAxMjA3Cit5IEZuKGRpZ2l0LWFyZ3VtZW50KTI2IGIoXCgpcCBGZyhNLTApcCBGbigsKWogRmcoTS0xKXAKK0ZuKCwpaCguLi4pZiBGZyhNLS0pcCBGbihcKSk2MzAgMTMxNyB5IEZvKEFkZClkKHRoaXMpaChkaWdpdClnKHRvKWgKKyh0aGUpZihhcmd1bWVuKW0odClnKGFscmVhZHkpaChhY2N1bSltKHVsYXRpbmcsKWgob3IpZShzdGFydCloKGEpZihuZXcpCitmKGFyZ3VtZW4pbSh0Lik2MzAgMTQyNyB5IEZnKE0tLSlqIEZvKHN0YXJ0cylpKGEpZyhuZWdhdGl2KW0oZSlpCisoYXJndW1lbiltKHQuKTE1MCAxNTcwIHkgRm4odW5pdmVyc2FsLWFyZ3VtZW50KTI1IGIoXChcKSk2MzAKKzE2ODAgeSBGbyhUaGlzKWcoaXMpZyhhbm90aGVyKWgodyltKGEpbSh5KWcodG8paChzcClzKGVjaWZ5KWUoYW4pZworKGFyZ3VtZW4pbSh0Lik0MCBiKElmKTI1IGIodGhpcylnKGNvbW1hbmQpaChpcylmKGZvbGxvKW0odyltKGVkKWkoYiltCisoeSlmKG9uZSk2MzAgMTc4OSB5KG9yKWsobW9yZSlmKGRpZ2l0cywpaShvcHRpb25hbGx5KWcod2l0aCllKGEpaAorKGxlYWRpbmcpaChtaW4pbSh1cyllKHNpZ24sKWgodGhvc2UpZyhkaWdpdHMpZyhkZVwwMTRuZSlmKHRoZSloKGFyLSk2MzAKKzE4OTkgeShndW1lbiltKHQuKTQxIGIoSWYpMjggYih0aGUpaShjb21tYW5kKWYoaXMpZyhmb2xsbyltKHcpbShlZCloKGIpCittKHkpZihkaWdpdHMsKWkoZXhlY3V0aW5nKWYgRm4odW5pdmVyc2FsLWFyZ3VtZW50KTYzMAorMjAwOCB5IEZvKGFnYWluKWooZW5kcyllKHRoZSloKG4pbSh1bWVyaWMpZihhcmd1bWVuKW0odCwpaShidXQpZShpcyloCisob3RoZXJ3aXNlKWcoaWdub3JlZC4pNDUgYihBcykzMiBiKGEpZyhzcClzKGVjaWFsKWgoY2FzZSwpNjMwCisyMTE4IHkoaWYpZyh0aGlzKWcoY29tbWFuZClmKGlzKWgoaW1tZWRpYXRlbHkpaChmb2xsbyltKHcpbShlZCloKGIpbSh5KQorZChhKWgoYyltKGhhcmFjdGVyKWkodGhhdCllKGlzKWcobmVpdGhlcilnKGEpZyhkaWdpdCk2MzAKKzIyMjggeShvcikyOCBiKG1pbiltKHVzKWYoc2lnbiwpaSh0aGUpZihhcmd1bWVuKW0odClnKGNvdW4pbSh0KWgoZm9yKWUKKyh0aGUpaShuZXh0KWYoY29tbWFuZClmKGlzKWgobSltKHVsdGlwbGllZCloKGIpbSh5KWUoZm91ci4pNjMwCisyMzM3IHkoVGhlKTM3IGIoYXJndW1lbiltKHQpaChjb3VuKW0odClmKGlzKWgoaW5pdGlhbGx5KWgob25lLClnKHNvKWYKKyhleGVjdXRpbmcpZyh0aGlzKWYoZnVuY3Rpb24pZyh0aGUpaChcMDE0cnN0KWUodGltZSk2MzAKKzI0NDcgeShtYWspbShlcylkKHRoZSllKGFyZ3VtZW4pbSh0KWkoY291biltKHQpZihmb3VyLClmKGEpaShzZWNvbmQpZQorKHRpbWUpaShtYWspbShlcylmKHRoZSlnKGFyZ3VtZW4pbSh0KWcoY291biltKHQpaChzaXgtKTYzMAorMjU1NiB5KHRlZW4sKWUoYW5kKWYoc28paChvbi4pNDAgYihCeSkzMSBiKGRlZmF1bHQsKWcodGhpcylmKGlzKWcobm90KWgKKyhiKXMob3VuZClkKHRvKWooYSlnKGspbShleSktOCBiKC4pMTUwIDI3NTcgeSBGYygxLjQuNik2MworYihMZXR0aW5nKTQwIGIoUmVhZGxpbmUpaChUKW0oeXApcyhlKWcoRiktMTAgYihvcik0MgorYihZKS0xMCBiKG91KTE1MCAyOTkzIHkgRm4oY29tcGxldGUpMjggYihcKCk2MTAgMjk5MAoreSBGZihoKXAgNjM0IDI5MzcgMTQ4IDQgdiA2MzQgMjk5MyBhIEZlKFQpLTYgYihBQilwIDYzNAorMzAwOCBWIDc3OCAyOTkwIGEgRmYoaSk4MDggMjk5MyB5IEZuKFwpKTYzMCAzMTAyIHkgRm8oQSltKHR0ZW1wdCkyNAorYih0bylmKHApcyhlcmZvcm0pZShjb21wbGV0aW9uKWoob24pZih0aGUpZyh0ZXh0KWcoYilzKGVmb3JlKWYocClzKG9pbikKK20odC4pMzkgYihUaGUpMjIgYihhY3R1YWwpaShjb21wbGV0aW9uKTYzMCAzMjEyIHkocClzKGVyZm9ybWVkKTI5CitiKGlzKWgoYXBwbGljYXRpb24tc3ApcyhlY2lcMDE0Yy4pNDIgYihUaGUpMzAgYihkZWZhdWx0KWgoaXMpZgorKFwwMTRsZW5hbWUpaChjb21wbGV0aW9uLikxNTAgMzM1NSB5IEZuKHBvc3NpYmxlLWNvbXBsZXRpb25zKTI1CitiKFwoTS0/XCkpNjMwIDM0NjUgeSBGbyhMaXN0KTMxIGIodGhlKWYocClzKG9zc2libGUpZyhjb21wbGV0aW9ucylpKG9mKQorZSh0aGUpaCh0ZXh0KWcoYilzKGVmb3JlKWYocClzKG9pbiltKHQuKTE1MCAzNjA4IHkgRm4KKyhpbnNlcnQtY29tcGxldGlvbnMpMjUgYihcKE0tKlwpKTYzMCAzNzE4IHkgRm8oSW5zZXJ0KTMwCitiKGFsbCloKGNvbXBsZXRpb25zKWgob2YpZih0aGUpZyh0ZXh0KWcoYilzKGVmb3JlKWYocClzKG9pbiltKHQpaCh0aGF0KQorZyh3KW0ob3VsZClmKGhhKW0odiltKGUpaShiKXMoZWVuKWUoZ2VuZXJhdGVkKTYzMCAzODI3Cit5KGIpbSh5KWcgRm4ocG9zc2libGUtY29tcGxldGlvbnMpcCBGbyguKTE1MCAzOTcxIHkgRm4obWVudS1jb21wbGV0ZSlkCisoXChcKSk2MzAgNDA4MCB5IEZvKFNpbWlsYXIpZCh0bylnIEZuKGNvbXBsZXRlKXAgRm8oLClmKGJ1dCloKHJlcGxhY2VzKQorZyh0aGUpZyh3KW0ob3JkKWcodG8pZyhiKXMoZSlmKGNvbXBsZXRlZClpKHdpdGgpZShhKWkoc2luZ2xlKWYobWF0YyltCisoaCk2MzAgNDE5MCB5KGZyb20pMzcgYih0aGUpaChsaXN0KWgob2YpZihwKXMob3NzaWJsZSlmKGNvbXBsZXRpb25zLik2NAorYihSZXApcyhlYXRlZCkzOSBiKGV4ZWN1dGlvbilnKG9mKWYgRm4obWVudS1jb21wbGV0ZSk2MzAKKzQzMDAgeSBGbyhzdGVwcylpKHRocm91Z2gpZyh0aGUpZyhsaXN0KWgob2YpZihwKXMob3NzaWJsZSlnCisoY29tcGxldGlvbnMsKWsoaW5zZXJ0aW5nKWMoZWFjKW0oaClpKG1hdGMpbShoKWYoaW4pZih0dXJuLik2MzAKKzQ0MDkgeShBKW0odCllKHRoZSlmKGVuZClmKG9mKWgodGhlKWcobGlzdClnKG9mKWcoY29tcGxldGlvbnMsKWkodGhlKWUKKyhiKXMoZWxsKWcoaXMpZyhydW5nKWYoXChzdWIpNSBiKGplY3QpMzYgYih0bylpKHRoZSlmKHNldHRpbmcpNjMwCis0NTE5IHkob2YpZiBGbihiZWxsLXN0eWxlKXAgRm8oXCkpZShhbmQpaCh0aGUpaChvcmlnaW5hbClpKHRleHQpZihpcylmCisocmVzdG9yZWQuKTU3IGIoQW4pMzYgYihhcmd1bWVuKW0odCloKG9mKWYgRmQobilmIEZvKG1vKW0odiltKGVzKWkKK0ZkKG4pNjMwIDQ2MjggeSBGbyhwKXMob3NpdGlvbnMpZShmb3J3KW0oYXJkKWYoaW4pZyh0aGUpaChsaXN0KWgob2YpZQorKG1hdGMpbShoZXM7KTM5IGIoYSljKG5lZ2F0aXYpbShlKWkoYXJndW1lbiltKHQpZShtYSltKHkpZyhiKXMoZSlmCisodXNlZClnKHRvKTYzMCA0NzM4IHkobW8pbSh2KW0oZSk0MCBiKGJhYyltKGt3KW0oYXJkKWUodGhyb3VnaClnKHRoZSlnCisobGlzdC4pNjUgYihUaGlzKTM4IGIoY29tbWFuZClnKGlzKWcoaW4pbSh0ZW5kZWQpZyh0byloKGIpcyhlKWYoYilzCisob3VuZCllKHRvKTYzMCA0ODQ1IHkgRmYoaClwIDY1NCA0NzkyIFYgNjU0IDQ4NDggYSBGZShUKS02CitiKEFCKXAgNjU0IDQ4NjMgViA3OTggNDg0NSBhIEZmKGkpODI4IDQ4NDggeSBGbygsKTMwCitiKGJ1dClnKGlzKWcodW4pbShiKXMob3VuZCllKGIpbSh5KWkoZGVmYXVsdC4pMTUwIDQ5OTEKK3kgRm4oZGVsZXRlLWNoYXItb3ItbGlzdCkyNSBiKFwoXCkpNjMwIDUxMDEgeSBGbyhEZWxldGVzKWsodGhlKWUoYyltCisoaGFyYWN0ZXIpaCh1bmRlcillKHRoZSloKGN1cnNvcilmKGlmKWgobm90KWcoYXQpZyh0aGUpZyhiKXMoZWdpbm5pbmcpZworKG9yKWYoZW5kKWgob2YpZyh0aGUpZyhsaW5lKTYzMCA1MjEwIHkoXChsaWspbShlKWsgRm4oZGVsZXRlLWNoYXIpcAorRm8oXCkuKTM3IGIoSWYpMjkgYihhdCloKHRoZSlmKGVuZClmKG9mKWkodGhlKWYobGluZSwpaChiKXMoZWhhKW0odiltCisoZXMpZyhpZGVuKW0odGljYWxseSloKHRvKWUgRm4ocG9zc2libGUtKTYzMCA1MzIwIHkoY29tcGxldGlvbnMpcAorRm8oLikzOCBiKFRoaXMpMjkgYihjb21tYW5kKWgoaXMpaCh1biltKGIpcyhvdW5kKWQoYiltKHkpaShkZWZhdWx0LilwCitlb3AgZW5kCislJVBhZ2U6IDE4IDIyCitUZVhEaWN0IGJlZ2luIDE4IDIxIGJvcCAxNTAgLTExNiBhIEZvKDE4KTI2MDAgYihHTlUpMzEKK2IoUmVhZGxpbmUpZyhMaWJyYXJ5KTE1MCAyOTkgeSBGYygxLjQuNyk2MyBiKEtleWIpcyhvYXJkKTQxCitiKE1hY3JvcykxNTAgNTQ1IHkgRm4oc3RhcnQta2JkLW1hY3JvKTI2IGIoXChDLXgpaihcKFwpKTYzMAorNjU1IHkgRm8oQmVnaW4paShzYSltKHZpbmcpaCh0aGUpZShjKW0oaGFyYWN0ZXJzKWkodCltKHlwKXMoZWQpZShpbiltCisodG8paCh0aGUpZyhjdXJyZW4pbSh0KWYoayltKGV5YilzKG9hcmQpZyhtYWNyby4pMTUwCis4MTggeSBGbihlbmQta2JkLW1hY3JvKWQoXChDLXgpaShcKVwpKTYzMCA5MjcgeSBGbyhTdG9wKWUoc2EpbSh2aW5nKWgKKyh0aGUpZyhjKW0oaGFyYWN0ZXJzKWcodCltKHlwKXMoZWQpZihpbiltKHRvKWkodGhlKWUoY3VycmVuKW0odClnKGspbQorKGV5YilzKG9hcmQpZyhtYWNybyloKGFuZClmKHNhKW0odiltKGUpaSh0aGUpNjMwIDEwMzcKK3koZGVcMDE0bml0aW9uLikxNTAgMTIwMCB5IEZuKGNhbGwtbGFzdC1rYmQtbWFjcm8pYyhcKEMteClrKGVcKSk2MzAKKzEzMTAgeSBGbyhSZS1leGVjdXRlKTM3IGIodGhlKWUobGFzdCloKGspbShleWIpcyhvYXJkKWYobWFjcm8paAorKGRlXDAxNG5lZCwpZihiKW0oeSloKG1ha2luZylmKHRoZSlnKGMpbShoYXJhY3RlcnMpaShpbillKHRoZSk2MzAKKzE0MTkgeShtYWNybyljKGFwcClzKGVhcilmKGFzKWcoaWYpaCh0KW0oeXApcyhlZClmKGF0KWgodGhlKWYoayltKGV5YilzCisob2FyZC4pMTUwIDE2NTEgeSBGYygxLjQuOCk2MyBiKFNvbWUpNDEgYihNaXNjZWxsYW5lb3VzKWkoQ29tbWFuZHMpMTUwCisxODk4IHkgRm4ocmUtcmVhZC1pbml0LWZpbGUpMjYgYihcKEMteClqKEMtclwpKTYzMCAyMDA3Cit5IEZvKFJlYWQpMjIgYihpbilnKHRoZSlnKGNvbiltKHRlbiltKHRzKWgob2YpZih0aGUpZworRmQoaW5wdXRyYykyNyBiIEZvKFwwMTRsZSwpZChhbmQpZChpbmNvcnApcyhvcmF0ZSloKGFuKW0oeSloKGJpbmRpbmdzKWQKKyhvcilpKHYpLTUgYihhcmlhYmxlKTYzMCAyMTE3IHkoYXNzaWdubWVuKW0odHMpMzEgYihmb3VuZCllKHRoZXJlLikxNTAKKzIyODAgeSBGbihhYm9ydClnKFwoQy1nXCkpNjMwIDIzOTAgeSBGbyhBYilzKG9ydClkKHRoZSloKGN1cnJlbiltKHQpZgorKGVkaXRpbmcpaChjb21tYW5kKWYoYW5kKWcocmluZyloKHRoZSlmKHRlcm1pbmFsJ3MpaChiKXMoZWxsKWcoXChzdWIpNQorYihqZWN0KTI2IGIodG8paSh0aGUpNjMwIDI0OTkgeShzZXR0aW5nKWoob2YpZyBGbihiZWxsLXN0eWxlKXAKK0ZvKFwpLikxNTAgMjY2MyB5IEZuKGRvLXVwcGVyY2FzZS12ZXJzaW9uKTI1IGIoXChNLWEsKWsoTS1iLClnKE0tKXAKK0ZnKHgpcCBGbigsKWcoLi4uKW8oXCkpNjMwIDI3NzIgeSBGbyhJZillKHRoZSloKG1ldGFcMDE0ZWQpZyhjKW0KKyhoYXJhY3RlciloIEZkKHgpMzQgYiBGbyhpcykyOCBiKGxvKW0odyltKGVyY2FzZSwpaShydW4pZCh0aGUpZworKGNvbW1hbmQpaCh0aGF0KWcoaXMpZyhiKXMob3VuZClkKHRvKWsodGhlKTYzMCAyODgyIHkoY29ycmVzcClzKG9uZGluZykKK2codXBwKXMoZXJjYXNlKWgoYyltKGhhcmFjdGVyLikxNTAgMzA0NSB5IEZuKHByZWZpeC1tZXRhKWQoXCgpNzUzCiszMDQyIHkgRmYoaClwIDc3NyAyOTg5IDEzOSA0IHYgNzc3IDMwNDUgYSBGZShFU0MpcCA3NzcKKzMwNjAgViA5MTEgMzA0MiBhIEZmKGkpOTQxIDMwNDUgeSBGbihcKSk2MzAgMzE1NSB5IEZvKE1ldGFmeSkzOQorYih0aGUpZShuZXh0KWgoYyltKGhhcmFjdGVyKWgodCltKHlwKXMoZWQuKTYyIGIoVGhpcykzNworYihpcylnKGZvciloKGspbShleWIpcyhvYXJkcylmKHdpdGhvdXQpZyhhKWgobWV0YSlnKGspbShleSktOAorYiguKTYzMCAzMjY0IHkoVCltKHlwaW5nKTMwIGIoYCk5NjggMzI2MSB5IEZmKGgpcCA5OTMKKzMyMDggViA5OTMgMzI2NCBhIEZlKEVTQylwIDk5MyAzMjgwIFYgMTEyNyAzMjYxIGEgRmYoaSkxMTg3CiszMjY0IHkgRm4oZilwIEZvKCcpZyhpcylnKGVxdWl2KS01IGIoYWxlbiltKHQpMzIgYih0bylmKHQpbSh5cGluZylnCitGZyhNLWYpcCBGbyguKTE1MCAzNDI4IHkgRm4odW5kbyllKFwoQy1fKWcob3IpaChDLXgpZyhDLXVcKSk2MzAKKzM1MzcgeSBGbyhJbmNyZW1lbiltKHRhbCloKHVuZG8sKWYoc2VwYXJhdGVseSloKHJlbWVtKW0oYilzKGVyZWQpZihmb3IpCitnKGVhYyltKGgpaShsaW5lLikxNTAgMzcwMCB5IEZuKHJldmVydC1saW5lKTI3IGIoXChNLXJcKSk2MzAKKzM4MTAgeSBGbyhVbmRvKTMzIGIoYWxsKWgoYyltKGhhbmdlcylnKG1hZGUpZih0byloKHRoaXMpZihsaW5lLik0OQorYihUaGlzKTMyIGIoaXMpaChsaWspbShlKWkoZXhlY3V0aW5nKWYodGhlKWYgRm4odW5kbylmCitGbyhjb21tYW5kKTYzMCAzOTIwIHkoZW5vdWdoKWUodGltZXMpaCh0bylnKGdldCloKGJhYyltKGspZih0bylnKHRoZSlmCisoYilzKGVnaW5uaW5nLikxNTAgNDA4MyB5IEZuKHRpbGRlLWV4cGFuZClkKFwoTS1+XCkpNjMwCis0MTkyIHkgRm8oUCltKGVyZm9ybSlqKHRpbGRlKWgoZXhwYW5zaW9uKWcob24pZih0aGUpZyhjdXJyZW4pbSh0KWgodyltCisob3JkLikxNTAgNDM1NiB5IEZuKHNldC1tYXJrKWQoXChDLUBcKSk2MzAgNDQ2NSB5IEZvKFNldCkzMworYih0aGUpZyhtYXJrKWYodG8paSh0aGUpZihwKXMob2luKW0odC4pNDggYihJZikzMiBiKGEpaChuKW0odW1lcmljKWcKKyhhcmd1bWVuKW0odClnKGlzKWcoc3VwcGxpZWQsKWYodGhlKWgobWFyaylnKGlzKWYoc2V0KTYzMAorNDU3NSB5KHRvKWYodGhhdClnKHApcyhvc2l0aW9uLikxNTAgNDczOCB5IEZuKGV4Y2hhbmdlLXBvaW50LWFuZC1tYXJrKQorMjQgYihcKEMteCkyOSBiKEMteFwpKTYzMCA0ODQ4IHkgRm8oU3cpbShhcClpKHRoZSlnKHApcyhvaW4pbSh0KWcod2l0aCkKK2codGhlKWcobWFyay4pNDMgYihUaGUpMzEgYihjdXJyZW4pbSh0KWcoY3Vyc29yKWYocClzKG9zaXRpb24paShpcylmCisoc2V0KWgodG8pZih0aGUpaChzYSltKHYpbShlZCk2MzAgNDk1NyB5KHApcyhvc2l0aW9uLClmKGFuZCllKHRoZSlpCisob2xkKWcoY3Vyc29yKWUocClzKG9zaXRpb24paShpcylmKHNhKW0odiltKGVkKWkoYXMpZSh0aGUpaChtYXJrLikxNTAKKzUxMjEgeSBGbihjaGFyYWN0ZXItc2VhcmNoKTI2IGIoXChDLV1cKSk2MzAgNTIzMCB5IEZvKEEpZihjKW0oaGFyYWN0ZXIpCitoKGlzKWYocmVhZClnKGFuZClmKHApcyhvaW4pbSh0KWgoaXMpZyhtbyltKHYpbShlZCloKHRvKWcodGhlKWYobmV4dClnCisobylzKGNjdXJyZW5jZSlnKG9mKWcodGhhdClnKGMpbShoYXJhY3Rlci4pNjMwIDUzNDAgeShBKTMwCitiKG5lZ2F0aXYpbShlKWooY291biltKHQpZShzZWFyYyltKGhlcylnKGZvcilmKHByZXZpb3VzKWcobylzCisoY2N1cnJlbmNlcy4pcCBlb3AgZW5kCislJVBhZ2U6IDE5IDIzCitUZVhEaWN0IGJlZ2luIDE5IDIyIGJvcCAxNTAgLTExNiBhIEZvKENoYXB0ZXIpMzAgYigxOik0MQorYihDb21tYW5kKTI5IGIoTGluZSlpKEVkaXRpbmcpMjEwNyBiKDE5KTE1MCAyOTkgeSBGbgorKGNoYXJhY3Rlci1zZWFyY2gtYmFja3dhcilvKGQpMjQgYihcKE0tQy1dXCkpNjMwIDQwOAoreSBGbyhBKTQ1IGIoYyltKGhhcmFjdGVyKWgoaXMpZihyZWFkKWcoYW5kKWYocClzKG9pbiltKHQpaChpcylnKG1vKW0odikKK20oZWQpaCh0bylmKHRoZSlnKHByZXZpb3VzKWYobylzKGNjdXJyZW5jZSloKG9mKWcodGhhdCk2MzAKKzUxOCB5KGMpbShoYXJhY3Rlci4pZChBKTMxIGIobmVnYXRpdiltKGUpaChjb3VuKW0odClmKHNlYXJjKW0oaGVzKWgKKyhmb3IpZShzdWJzZXF1ZW4pbSh0KWYobylzKGNjdXJyZW5jZXMuKTE1MCA2NzcgeSBGbihpbnNlcnQtY29tbWVudClkCisoXChNLSNcKSk2MzAgNzg3IHkgRm8oV2l0aG91dCkzNiBiKGEpZyhuKW0odW1lcmljKWcoYXJndW1lbiltKHQsKWgodGhlKQorZih2KS01IGIoYWx1ZSkzNiBiKG9mKWcodGhlKWcgRm4oY29tbWVudC1iZWdpbiljIEZvKHYpLTUKK2IoYXJpYWJsZSkzNiBiKGlzKWcoaW4tKTYzMCA4OTcgeShzZXJ0ZWQpYyhhdClnKHRoZSlnKGIpcyhlZ2lubmluZylmCisob2YpaCh0aGUpZihjdXJyZW4pbSh0KWgobGluZS4pNDUgYihJZikzMSBiKGEpaChuKW0odW1lcmljKWYoYXJndW1lbiltCisodCloKGlzKWcoc3VwcGxpZWQsKTYzMCAxMDA2IHkodGhpcylrKGNvbW1hbmQpaChhY3RzKWcoYXMpZyhhKWcKKyh0b2dnbGU6KTU1IGIoaWYpMzcgYih0aGUpZihjKW0oaGFyYWN0ZXJzKWkoYXQpZyh0aGUpZShiKXMoZWdpbm5pbmcpZworKG9mKWgodGhlKWcobGluZSk2MzAgMTExNiB5KGRvKTMwIGIobm90KWgobWF0YyltKGgpaCh0aGUpZih2KS01CitiKGFsdWUpMzEgYihvZilmIEZuKGNvbW1lbnQtYmVnaW4pcCBGbygsKWUodGhlKWkodiktNQorYihhbHVlKTMxIGIoaXMpZyhpbnNlcnRlZCwpZyhvdGhlcndpc2UpZyh0aGUpNjMwIDEyMjUKK3koYyltKGhhcmFjdGVycyk0MiBiKGluKWQgRm4oY29tbWVudC1iZWdpbillIEZvKGFyZSlqKGRlbGV0ZWQpaChmcm9tKWYKKyh0aGUpZyhiKXMoZWdpbm5pbmcpZyhvZilnKHRoZSlnKGxpbmUuKTcxIGIoSW4pNjMwIDEzMzUKK3koZWl0aGVyKTMxIGIoY2FzZSwpaCh0aGUpZShsaW5lKWgoaXMpZihhY2NlcHRlZClpKGFzKWYoaWYpZihhKWgKKyhuZXdsaW5lKWYoaGFkKWcoYilzKGVlbilmKHQpbSh5cClzKGVkLikxNTAgMTQ5NCB5IEZuKGR1bXAtZnVuY3Rpb25zKWQKKyhcKFwpKTYzMCAxNjA0IHkgRm8oUHJpbiltKHQpZyhhbGwpaShvZillKHRoZSloKGZ1bmN0aW9ucylmKGFuZClnCisodGhlaXIpZyhrKW0oZXkpaChiaW5kaW5ncyllKHRvKWoodGhlKWUoUmVhZGxpbmUpaChvdXRwdXQpZihzdHJlYW0uKTYzMAorMTcxNCB5KElmKTMxIGIoYSloKG4pbSh1bWVyaWMpZyhhcmd1bWVuKW0odClnKGlzKWcoc3VwcGxpZWQsKWYodGhlKWgKKyhvdXRwdXQpZihpcyloKGZvcm1hdHRlZClnKGluKWYoc3VjKW0oaCloKGEpZyh3KW0oYSltKHkpZyh0aGF0KTYzMAorMTgyMyB5KGl0KWYoY2FuKWcoYilzKGUpZShtYWRlKWkocGFydClmKG9mKWcoYW4paCBGZChpbnB1dHJjKWsKK0ZvKFwwMTRsZS4pNDEgYihUaGlzKTI5IGIoY29tbWFuZCloKGlzKWgodW4pbShiKXMob3VuZCljKGIpbSh5KWsKKyhkZWZhdWx0LikxNTAgMTk4MyB5IEZuKGR1bXAtdmFyaWFibGVzKTI2IGIoXChcKSk2MzAKKzIwOTIgeSBGbyhQcmluKW0odCkyMSBiKGFsbCloKG9mKWcodGhlKWYoc2V0dGFibGUpaSh2KS01CitiKGFyaWFibGVzKTIyIGIoYW5kKWYodGhlaXIpZyh2KS01IGIoYWx1ZXMpMjIgYih0bylnKHRoZSlmKFJlYWRsaW5lKWgKKyhvdXRwdXQpZihzdHJlYW0uKTYzMCAyMjAyIHkoSWYpMzEgYihhKWgobiltKHVtZXJpYylnKGFyZ3VtZW4pbSh0KWcoaXMpCitnKHN1cHBsaWVkLClmKHRoZSloKG91dHB1dClmKGlzKWgoZm9ybWF0dGVkKWcoaW4pZihzdWMpbShoKWgoYSlnKHcpbShhKQorbSh5KWcodGhhdCk2MzAgMjMxMSB5KGl0KWYoY2FuKWcoYilzKGUpZShtYWRlKWkocGFydClmKG9mKWcoYW4paAorRmQoaW5wdXRyYylrIEZvKFwwMTRsZS4pNDEgYihUaGlzKTI5IGIoY29tbWFuZCloKGlzKWgodW4pbShiKXMob3VuZCljCisoYiltKHkpayhkZWZhdWx0LikxNTAgMjQ3MSB5IEZuKGR1bXAtbWFjcm9zKWMoXChcKSk2MzAKKzI1ODAgeSBGbyhQcmluKW0odCkzNCBiKGFsbClnKG9mKWcodGhlKWcoUmVhZGxpbmUpZyhrKW0oZXkpaChzZXF1ZW5jZXMpCitmKGIpcyhvdW5kKWUodG8paShtYWNyb3MpZyhhbmQpZih0aGUpaChzdHJpbmdzKWcodGhleSk2MzAKKzI2OTAgeShvdXRwdXQuKTUzIGIoSWYpMzUgYihhKWcobiltKHVtZXJpYylmKGFyZ3VtZW4pbSh0KWkoaXMpZQorKHN1cHBsaWVkLCloKHRoZSlnKG91dHB1dClnKGlzKWYoZm9ybWF0dGVkKWkoaW4pZShzdWMpbShoKWgoYSk2MzAKKzI4MDAgeSh3KW0oYSltKHkpYyh0aGF0KWcoaXQpZihjYW4pZyhiKXMoZSlnKG1hZGUpZyhwYXJ0KWYob2YpaShhbillCitGZChpbnB1dHJjKTM1IGIgRm8oXDAxNGxlLik0MSBiKFRoaXMpMjkgYihjb21tYW5kKWgoaXMpZyh1biltKGIpcyhvdW5kKQorZChiKW0oeSk2MzAgMjkwOSB5KGRlZmF1bHQuKTE1MCAzMDY4IHkgRm4oZW1hY3MtZWRpdGluZy1tb2RlKWUoXChDLWVcKSkKKzYzMCAzMTc4IHkgRm8oV2hlbikzMCBiKGluKWcgRm4odmkpZyBGbyhjb21tYW5kKWcobW8pcyhkZSwpZyh0aGlzKWgKKyhjYXVzZXMpZihhKWgoc3dpdGMpbShoKWcodG8pZyBGbihlbWFjcyllIEZvKGVkaXRpbmcpaShtbylzKGRlLikxNTAKKzMzMzcgeSBGbih2aS1lZGl0aW5nLW1vZGUpMjYgYihcKE0tQy1qXCkpNjMwIDM0NDcgeSBGbyhXaGVuKWsoaW4pZworRm4oZW1hY3MpZiBGbyhlZGl0aW5nKWkobW8pcyhkZSwpZih0aGlzKWgoY2F1c2VzKWYoYSloKHN3aXRjKW0oaClnKHRvKWcKK0ZuKHZpKWYgRm8oZWRpdGluZyloKG1vKXMoZGUuKTE1MCAzNzA0IHkgRm0oMS41KTY4IGIoUmVhZGxpbmUpNDcKK2IodmkpZShNbyl0KGRlKTI3NSAzOTQ5IHkgRm8oV2hpbGUpMjQgYih0aGUpZyhSZWFkbGluZSlnKGxpYnJhcnkpZihkbylzCisoZXMpaChub3QpZyhoYSltKHYpbShlKWcoYSloKGZ1bGwpZShzZXQpaChvZilnIEZuKHZpKWYKK0ZvKGVkaXRpbmcpaChmdW5jdGlvbnMsKWgoaXQpZihkbylzKGVzKWcoY29uKW0odGFpbikxNTAKKzQwNTggeShlbm91Z2gpMzQgYih0byloKGFsbG8pbSh3KWcoc2ltcGxlKWYoZWRpdGluZyloKG9mKWYodGhlKWcobGluZS4pCis1MiBiKFRoZSkzNCBiKFJlYWRsaW5lKWcgRm4odmkpZyBGbyhtbylzKGRlKWYoYilzKGVoYSltKHYpbShlcylpKGFzKWYKKyhzcClzKGVjaVwwMTRlZClmKGluKTE1MCA0MTY4IHkodGhlKWUgRmgocG9zaXgpZSBGbygxMDAzLjIpayhzdGFuZGFyZC4pCisyNzUgNDMwMiB5KEluKTI4IGIob3JkZXIpZyh0bylpKHN3aXRjKW0oaClnKGluKW0odGVyYWN0aXYpbShlbHkpaShiKXMKKyhldCltKHcpbShlZW4pZCBGbihlbWFjcylmIEZvKGFuZClnIEZuKHZpKWggRm8oZWRpdGluZylnKG1vKXMoZGVzLClnCisodXNlKWcodGhlKWcoY29tbWFuZCkxNTAgNDQxMiB5IEZnKE0tQy1qKTM2IGIgRm8oXChiKXMob3VuZCloKHRvKWgKKyhlbWFjcy1lZGl0aW5nLW1vKXMoZGUpaSh3aGVuKWQoaW4pZyBGbih2aSloIEZvKG1vKXMoZGUpZihhbmQpZyh0bylpCisodmktZWRpdGluZy1tbylzKGRlKWcoaW4pZSBGbihlbWFjcykxNTAgNDUyMSB5IEZvKG1vKXMoZGVcKS4payhUaGUpMzAKK2IoUmVhZGxpbmUpaChkZWZhdWx0KWYoaXMpZyBGbihlbWFjcylmIEZvKG1vKXMoZGUuKTI3NQorNDY1NiB5KFdoZW4pZyh5KW0ob3UpaShlbiltKHRlcilmKGEpaChsaW5lKWYoaW4pZyBGbih2aSlmCitGbyhtbylzKGRlLCloKHkpbShvdSloKGFyZSlmKGFscmVhZHkpaChwbGFjZWQpZihpbilnKGBpbnNlcnRpb24nKWcobW8pcworKGRlLClnKGFzKWgoaWYpZih5KW0ob3UpMTUwIDQ3NjUgeShoYWQpYyh0KW0oeXApcyhlZClnKGFuKWcoYClwCitGbihpKXAgRm8oJy4pMzkgYihQcmVzc2luZykxMjE1IDQ3NjIgeSBGZihoKXAgMTIzOSA0NzA5CisxMzkgNCB2IDEyMzkgNDc2NSBhIEZlKEVTQylwIDEyMzkgNDc4MSBWIDEzNzMgNDc2MiBhCitGZihpKTE0MjkgNDc2NSB5IEZvKHN3aXRjKW0oaGVzKTI3IGIoeSltKG91KWcoaW4pbSh0bylnKGBjb21tYW5kJylmKG1vKQorcyhkZSwpaCh3aGVyZSlmKHkpbShvdSloKGNhbilmKGVkaXQpaCh0aGUpMTUwIDQ4NzUgeSh0ZXh0KTM1CitiKG9mKWYodGhlKWcobGluZSlnKHdpdGgpZih0aGUpaChzdGFuZGFyZClmIEZuKHZpKWcgRm8obW8pbSh2KW0oZW1lbiltCisodClqKGspbShleXMsKWcobW8pbSh2KW0oZSlmKHRvKWYocHJldmlvdXMpZyhoaXN0b3J5KWYobGluZXMpaCh3aXRoKTE1MAorNDk4NSB5KGApcCBGbihrKXAgRm8oJylkKGFuZCllKHN1YnNlcXVlbiltKHQpaChsaW5lcyloKHdpdGgpZihgKXAKK0ZuKGopcCBGbygnLClnKGFuZClnKHNvKWgoZm9ydGguKXAgZW9wIGVuZAorJSVQYWdlOiAyMCAyNAorVGVYRGljdCBiZWdpbiAyMCAyMyBib3AgMTUwIC0xMTYgYSBGbygyMCkyNjAwIGIoR05VKTMxCitiKFJlYWRsaW5lKWcoTGlicmFyeSlwIGVvcCBlbmQKKyUlUGFnZTogMjEgMjUKK1RlWERpY3QgYmVnaW4gMjEgMjQgYm9wIDE1MCAtMTE2IGEgRm8oQXBwKXMoZW5kaXgpMjkKK2IoQTopaChDb3ApbSh5aW5nKWgoVGhpcylmKE1hbiltKHVhbCkyMTA1IGIoMjEpMTUwIDI5OQoreSBGayhBcHApdChlbmRpeCk1MiBiKEEpNDAgYihDb3ApbCh5aW5nKTUxIGIoVGhpcylqKE1hbilsKHVhbCkxNTAKKzY5MCB5IEZtKEEuMSk2NyBiKEdOVSk0NSBiKEYpLTExIGIocmVlKTQ1IGIoRG8pdChjdW1lbilsKHRhdGlvbiloCisoTGljZW5zZSkxMzk2IDkwOSB5IEZvKFYpLTggYihlcnNpb24pMzEgYigxLjIsKWgoTm8pbSh2KW0oZW0pbShiKXMoZXIpZworKDIwMDIpMzkwIDEwNTIgeShDb3ApbSh5cmlnaCltKHQpODQyIDEwNDkgeShjKTgxNyAxMDUyCit5IEZsKFwwMTUpZSBGbygyMDAwLDIwMDEsMjAwMikzNiBiKEYpLTggYihyZWUpMzIgYihTb2Z0KW0odyltKGFyZSlmKEYpCistOCBiKG91bmRhdGlvbiwpMzIgYihJbmMuKTM5MCAxMTYxIHkoNTkpZihUKS04IGIoZW1wbGUpMzEKK2IoUGxhY2UsKWgoU3VpdGUpZSgzMzAsKWkoQm9zdG9uLClnKE1BKTYxIGIoMDIxMTEtMTMwNywpMzUKK2IoVVNBKTM5MCAxMzgwIHkoRXYpbShlcnkpbShvbmUpYyhpcylnKHApcyhlcm1pdHRlZClmKHRvKWgoY29wKW0oeSlnCisoYW5kKWYoZGlzdHJpYnV0ZSlnKHYpbShlcmJhdGltKWgoY29waWVzKTM5MCAxNDkwIHkob2YpZyh0aGlzKWYKKyhsaWNlbnNlKWgoZG8pcyhjdW1lbiltKHQsKWcoYnV0KWUoYyltKGhhbmdpbmcpaihpdClmKGlzKWYobm90KWgoYWxsbyltCisodyltKGVkLikxOTkgMTYzMiB5KDAuKTYxIGIoUFJFQU1CTEUpMzMwIDE3NzAgeShUaGUpMzcKK2IocHVycClzKG9zZSllKG9mKWkodGhpcylnKExpY2Vuc2UpaChpcylmKHRvKWgobWFrKW0oZSlnKGEpZyhtYW4pbQorKHVhbCwpaCh0ZXh0YilzKG8pcyhvaywpaChvcilkKG90aGVyKWcoZnVuY3Rpb25hbCloKGFuZCkzMzAKKzE4ODAgeSh1c2VmdWwpMjkgYihkbylzKGN1bWVuKW0odCloIEZkKGZyZWUpMzYgYiBGbyhpbikyOQorYih0aGUpaShzZW5zZSlmKG9mKWcoZnJlZWRvbTopNDEgYih0bykzMSBiKGFzc3VyZSllKGV2KW0oZXJ5KW0ob25lKWoKKyh0aGUpZShlXDAxM2VjdGl2KW0oZSlqKGZyZWVkb20pMzMwIDE5OTAgeSh0bylmKGNvcCltKHkpZyhhbmQpZgorKHJlZGlzdHJpYnV0ZSlnKGl0LCloKHdpdGgpZyhvcilmKHdpdGhvdXQpZyhtbylzKGRpZnlpbmcpZyhpdCwpaQorKGVpdGhlcilmKGNvbW1lcmNpYWxseSloKG9yKWUobm9uLSkzMzAgMjA5OSB5KGNvbW1lcmNpYWxseSktOAorYiguKTU2IGIoU2Vjb25kYXJpbHkpLTggYigsKTM2IGIodGhpcylmKExpY2Vuc2UpZyhwcmVzZXJ2KW0oZXMpZyhmb3IpZgorKHRoZSloKGF1dGhvcilmKGFuZClnKHB1Ymxpc2hlcilmKGEpaSh3KW0oYSltKHkpMzMwIDIyMDkKK3kodG8paShnZXQpZyhjcmVkaXQpZyhmb3IpZih0aGVpcilnKHcpbShvcmssKWkod2hpbGUpZShub3QpZyhiKXMoZWluZylnCisoY29uc2lkZXJlZClnKHJlc3ApcyhvbnNpYmxlKWYoZm9yKWgobW8pcyhkaVwwMTRjYXRpb25zKTMzMAorMjMxOCB5KG1hZGUpMzAgYihiKW0oeSloKG90aGVycy4pMzMwIDI0NTcgeShUaGlzKTIyIGIoTGljZW5zZSlpKGlzKWYoYSkKK2goa2luZCllKG9mKWkoXFxjb3ApbSh5bGVmdCIsKWood2hpYyltKGgpYyhtZWFucylnKHRoYXQpaChkZXJpdiktNQorYihhdGl2KW0oZSkyNCBiKHcpbShvcmtzKWYob2YpaCh0aGUpZihkbylzKGN1bWVuKW0odCkzMzAKKzI1NjYgeShtKW0odXN0KTM0IGIodGhlbXNlbHYpbShlcyloKGIpcyhlKWUoZnJlZSloKGluKWcodGhlKWcoc2FtZSlnCisoc2Vuc2UuKTUxIGIoSXQpMzQgYihjb21wbGVtZW4pbSh0cyloKHRoZSlmKEdOVSlnKEdlbmVyYWwpaChQdWJsaWMpMzMwCisyNjc2IHkoTGljZW5zZSwpYyh3aGljKW0oaClmKGlzKWgoYSlmKGNvcCltKHlsZWZ0KWkobGljZW5zZSlnKGRlc2lnbmVkKQorZShmb3IpZyhmcmVlKWgoc29mdCltKHcpbShhcmUuKTMzMCAyODE0IHkoVyktOCBiKGUpMzEKK2IoaGEpbSh2KW0oZSlmKGRlc2lnbmVkKWcodGhpcylmKExpY2Vuc2UpaChpbilmKG9yZGVyKWcodG8paSh1c2UpZShpdCloCisoZm9yKWYobWFuKW0odWFscyloKGZvcilmKGZyZWUpaChzb2Z0KW0odyltKGFyZSwpaChiKXMoZWNhdXNlKTMzMAorMjkyNCB5KGZyZWUpNDIgYihzb2Z0KW0odyltKGFyZSlpKG5lZWRzKWUoZnJlZSlnKGRvKXMoY3VtZW4pbSh0YXRpb246KQorNjUgYihhKTQyIGIoZnJlZSloKHByb2dyYW0pZihzaG91bGQpZihjb21lKWkod2l0aClmKG1hbiltKHVhbHMpMzMwCiszMDMzIHkocHJvKW0odmlkaW5nKTI5IGIodGhlKWcoc2FtZSlnKGZyZWVkb21zKWYodGhhdClpKHRoZSlmKHNvZnQpbSh3KQorbShhcmUpaChkbylzKGVzLik0MCBiKEJ1dCkyOSBiKHRoaXMpZihMaWNlbnNlKWkoaXMpZihub3QpZyhsaW1pdGVkKWcKKyh0bykzMzAgMzE0MyB5KHNvZnQpbSh3KW0oYXJlKWoobWFuKW0odWFsczspZihpdClnKGNhbilnKGIpcyhlKWYodXNlZClnCisoZm9yKWcoYW4pbSh5KWgodGV4dHVhbCloKHcpbShvcmssKWYocmVnYXJkbGVzcylnKG9mKWcoc3ViKTUKK2IoamVjdCkzMCBiKG1hdHRlcilpKG9yKTMzMCAzMjUyIHkod2hldGhlcilmKGl0KWgoaXMpZihwdWJsaXNoZWQpZihhcylpCisoYSlmKHByaW4pbSh0ZWQpZyhiKXMobylzKG9rLik0NCBiKFcpLTggYihlKTMyIGIocmVjb21tZW5kKWYodGhpcyloCisoTGljZW5zZSlnKHByaW5jaXBhbGx5KWYoZm9yKTMzMCAzMzYyIHkodyltKG9ya3MpZih3aG9zZSloKHB1cnApcyhvc2UpZAorKGlzKWooaW5zdHJ1Y3Rpb24pZihvcilnKHJlZmVyZW5jZS4pMTk5IDM1MDAgeSgxLik2MQorYihBUFBMSUNBQklMSVRZKTI5IGIoQU5EKWooREVGSU5JVElPTlMpMzMwIDM2MzkgeShUaGlzKTM5CitiKExpY2Vuc2UpaShhcHBsaWVzKWYodG8pZyhhbiltKHkpaChtYW4pbSh1YWwpZihvcilnKG90aGVyKWcodyltKG9yaywpaQorKGluKWUoYW4pbSh5KWcobWVkaXVtLClpKHRoYXQpZShjb24pbSh0YWlucylpKGEpMzMwIDM3NDgKK3kobm90aWNlKWgocGxhY2VkKWYoYiltKHkpZih0aGUpaChjb3ApbSh5cmlnaCltKHQpaChob2xkZXIpZShzYSltKHlpbmcpCitoKGl0KWcoY2FuKWcoYilzKGUpZihkaXN0cmlidXRlZClmKHVuZGVyKWcodGhlKWkodGVybXMpMzMwCiszODU4IHkob2YpYyh0aGlzKWYoTGljZW5zZS4pNjIgYihTdWMpbShoKTM3IGIoYSloKG5vdGljZSloKGdyYW4pbSh0cylmCisoYSlnKHcpbShvcmxkLXdpZGUsKWgocm8pbSh5KW0oYWx0KW0oeS1mcmVlKWkobGljZW5zZSwpZih1bmxpbWl0ZWQpZAorKGluKTMzMCAzOTY3IHkoZHVyYXRpb24sKTQ5IGIodG8pZCh1c2UpZih0aGF0KWcodyltKG9yayloKHVuZGVyKWQodGhlKWoKKyhjb25kaXRpb25zKWYoc3RhdGVkKWgoaGVyZWluLik4NSBiKFRoZSk0NSBiKFxcRG8pcyhjdW1lbiltKHQiLCkzMzAKKzQwNzcgeShiKXMoZWxvKW0odywpMjkgYihyZWZlcnMpZih0byloKGFuKW0oeSlnKHN1YyltKGgpZihtYW4pbSh1YWwpaAorKG9yKWYodyltKG9yay4pNDAgYihBbiltKHkpMjkgYihtZW0pbShiKXMoZXIpZShvZilpKHRoZSlmKHB1YmxpYylnKGlzKWcKKyhhKWgobGljZW5zZWUsKWkoYW5kKTMzMCA0MTg3IHkoaXMpMjUgYihhZGRyZXNzZWQpZihhcyloKFxceSltKG91Ii4pNDAKK2IoWSktOCBiKG91KTI2IGIoYWNjZXB0KWcodGhlKWYobGljZW5zZSloKGlmKWYoeSltKG91KWgoY29wKW0oeSktOAorYigsKTI3IGIobW8pcyhkaWZ5KWQob3IpaChkaXN0cmlidXRlKWcodGhlKWcodyltKG9yaykzMzAKKzQyOTYgeShpbikzMCBiKGEpaCh3KW0oYSltKHkpZyhyZXF1aXJpbmcpZihwKXMoZXJtaXNzaW9uKWYodW5kZXIpZyhjb3ApCittKHlyaWdoKW0odClqKGxhKW0ody4pMzMwIDQ0MzUgeShBKWkoXFxNbylzKGRpXDAxNGVkKWYoViktOAorYihlcnNpb24iKTM1IGIob2YpZih0aGUpZyhEbylzKGN1bWVuKW0odClnKG1lYW5zKWcoYW4pbSh5KWcodyltKG9yaylmCisoY29uKW0odGFpbmluZylqKHRoZSllKERvKXMoY3VtZW4pbSh0KWcob3IpMzMwIDQ1NDQgeShhKWsocClzKG9ydGlvbilmCisob2YpaChpdCwpaShlaXRoZXIpZShjb3BpZWQpZyh2KW0oZXJiYXRpbSwpaShvcilkKHdpdGgpaChtbylzCisoZGlcMDE0Y2F0aW9ucylmKGFuZC9vciloKHRyYW5zbGF0ZWQpZyhpbiltKHRvKTMzMCA0NjU0Cit5KGFub3RoZXIpMzEgYihsYW5ndWFnZS4pMzMwIDQ3OTIgeShBKTI2IGIoXFxTZWNvbmRhcnkpZyhTZWN0aW9uIiloKGlzKQorZihhKWgobmFtZWQpZShhcHApcyhlbmRpeClmKG9yKWkoYSloKGZyb24pbSh0LW1hdHRlcilnKHNlY3Rpb24pZyhvZilmCisodGhlKWcoRG8pcyhjdW1lbiltKHQpMzMwIDQ5MDIgeSh0aGF0KWMoZGVhbHMpZyhleGNsdXNpdiltKGVseSloKHdpdGgpZQorKHRoZSlnKHJlbGF0aW9uc2hpcCloKG9mKWYodGhlKWgocHVibGlzaGVycylkKG9yKWkoYXV0aG9ycylnKG9mKWgodGhlKWYKKyhEbylzKGN1bWVuKW0odCkzMzAgNTAxMSB5KHRvKTM4IGIodGhlKWYoRG8pcyhjdW1lbiltKHQncylpKG8pbSh2KW0KKyhlcmFsbClnKHN1Yik1IGIoamVjdCkzNyBiKFwob3IpaCh0bylnKHJlbGF0ZWQpZyhtYXR0ZXJzXCkpZyhhbmQpZihjb24pCittKHRhaW5zKWgobm90aGluZylmKHRoYXQpMzMwIDUxMjEgeShjb3VsZClqKGZhbGwpaChkaXJlY3RseSlnKHdpdGhpbilmCisodGhhdCloKG8pbSh2KW0oZXJhbGwpaShzdWIpNSBiKGplY3QuKTcwIGIoXChUaCltKHVzLCk0MgorYihpZillKHRoZSloKERvKXMoY3VtZW4pbSh0KWcoaXMpZihpbilnKHBhcnQpaChhKTMzMAorNTIzMCB5KHRleHRiKXMobylzKG9rKTI0IGIob2YpZyhtYXRoZW1hdGljcywpaihhKWQoU2Vjb25kYXJ5KWYoU2VjdGlvbikKK2gobWEpbSh5KWcobm90KWcoZXhwbGFpbilnKGFuKW0oeSlnKG1hdGhlbWF0aWNzLlwpKTQwCitiKFRoZSkzMzAgNTM0MCB5KHJlbGF0aW9uc2hpcCkyOCBiKGNvdWxkKWYoYilzKGUpZyhhKWcobWF0dGVyKWkob2YpZQorKGhpc3RvcmljYWwpaShjb25uZWN0aW9uKWYod2l0aClmKHRoZSloKHN1Yik1IGIoamVjdCkyNworYihvcilnKHdpdGgpZyhyZWxhdGVkKXAgZW9wIGVuZAorJSVQYWdlOiAyMiAyNgorVGVYRGljdCBiZWdpbiAyMiAyNSBib3AgMTUwIC0xMTYgYSBGbygyMikyNjAwIGIoR05VKTMxCitiKFJlYWRsaW5lKWcoTGlicmFyeSkzMzAgMjk5IHkobWF0dGVycywpMzggYihvcilkKG9mKWgobGVnYWwsKWkKKyhjb21tZXJjaWFsLCloKHBoaWxvc29waGljYWwsKWYoZXRoaWNhbClmKG9yKWUocClzKG9saXRpY2FsKWkocClzCisob3NpdGlvbilmKHJlZ2FyZGluZykzMzAgNDA4IHkodGhlbS4pMzMwIDU0OSB5KFRoZSkyNQorYihcXEluKW0odiktNSBiKGFyaWFuKW0odCkyNyBiKFNlY3Rpb25zIilnKGFyZSlmKGNlcnRhaW4pZyhTZWNvbmRhcnkpZworKFNlY3Rpb25zKWcod2hvc2UpZih0aXRsZXMpaShhcmUpZihkZXNpZ25hdGVkLClpKGFzKTMzMAorNjU5IHkoYilzKGVpbmcpZSh0aG9zZSloKG9mKWcoSW4pbSh2KS01IGIoYXJpYW4pbSh0KTI3CitiKFNlY3Rpb25zLClpKGluKWQodGhlKWgobm90aWNlKWgodGhhdClmKHNhKW0oeXMpZyh0aGF0KWcodGhlKWcoRG8pcworKGN1bWVuKW0odClnKGlzKWcocmVsZWFzZWQpMzMwIDc2OSB5KHVuZGVyKWYodGhpcylpKExpY2Vuc2UuKTQwCitiKElmKTI3IGIoYSloKHNlY3Rpb24paChkbylzKGVzKWYobm90KWYoXDAxNHQpaCh0aGUpZyhhYilzKG8pbSh2KW0oZSloCisoZGVcMDE0bml0aW9uKWUob2YpaChTZWNvbmRhcnkpZih0aGVuKWgoaXQpZyhpcykzMzAgODc4Cit5KG5vdClrKGFsbG8pbSh3KW0oZWQpaSh0byllKGIpcyhlKWcoZGVzaWduYXRlZClnKGFzKWcoSW4pbSh2KS01CitiKGFyaWFuKW0odC4pNDYgYihUaGUpMzEgYihEbylzKGN1bWVuKW0odClpKG1hKW0oeSlmKGNvbiltKHRhaW4paSh6ZXJvKQorZShJbiltKHYpLTUgYihhcmlhbiltKHQpMzMwIDk4OCB5KFNlY3Rpb25zLikzOSBiKElmKTI1CitiKHRoZSlmKERvKXMoY3VtZW4pbSh0KWkoZG8pcyhlcyllKG5vdCloKGlkZW4pbSh0aWZ5KWcoYW4pbSh5KWcoSW4pbSh2KQorLTUgYihhcmlhbiltKHQpMjUgYihTZWN0aW9ucyloKHRoZW4pZSh0aGVyZSloKGFyZSlnKG5vbmUuKTMzMAorMTEyOSB5KFRoZSkzNiBiKFxcQ28pbSh2KW0oZXIpaShUKS04IGIoZXh0cyIpMzggYihhcmUpZihjZXJ0YWluKWcKKyhzaG9ydClnKHBhc3NhZ2VzKWcob2YpZyh0ZXh0KWcodGhhdCloKGFyZSlmKGxpc3RlZCwpaShhcylkKEYpLTgKK2Iocm9uKW0odC1DbyltKHYpbShlcikzMzAgMTIzOCB5KFQpZyhleHRzKTI2IGIob3IpZihCYWMpbShrLUNvKW0odiltCisoZXIpaihUKS04IGIoZXh0cywpMjcgYihpbilkKHRoZSloKG5vdGljZSlpKHRoYXQpZShzYSltKHlzKWgodGhhdClnCisodGhlKWYoRG8pcyhjdW1lbiltKHQpaChpcylmKHJlbGVhc2VkKWcodW5kZXIpMzMwIDEzNDgKK3kodGhpcyloKExpY2Vuc2UuKTQwIGIoQSkyNSBiKEYpLTggYihyb24pbSh0LUNvKW0odiltKGVyKTI5CitiKFQpLTggYihleHQpMjYgYihtYSltKHkpaChiKXMoZSllKGF0KWkobW9zdClmKDUpZyh3KW0ob3JkcywpZyhhbmQpZyhhKQorZyhCYWMpbShrLUNvKW0odiltKGVyKWooVCktOCBiKGV4dCkyNiBiKG1hKW0oeSkzMzAgMTQ1NworeShiKXMoZSlrKGF0KWgobW9zdClnKDI1KWcodyltKG9yZHMuKTMzMCAxNTk4IHkoQSkzNgorYihcXFQpLTggYihyYW5zcGFyZW4pbSh0IikzNiBiKGNvcCltKHkpZyhvZilnKHRoZSlmKERvKXMoY3VtZW4pbSh0KWgKKyhtZWFucylnKGEpZyhtYWMpbShoaW5lLXJlYWRhYmxlKWgoY29wKW0oeSktOCBiKCwpMzgKK2IocmVwcmVzZW4pbSh0ZWQpMzMwIDE3MDggeShpbilkKGEpaChmb3JtYXQpZyh3aG9zZSlnKHNwKXMKKyhlY2lcMDE0Y2F0aW9uKWcoaXMpZyhhKW0odiktNSBiKGFpbGFibGUpMzggYih0bylmKHRoZSlmKGdlbmVyYWwpZworKHB1YmxpYywpaCh0aGF0KWYoaXMpZyhzdWl0YWJsZSlnKGZvcikzMzAgMTgxNyB5KHJldmlzaW5nKWModGhlKWcoZG8pcworKGN1bWVuKW0odClmKHN0cmFpZ2gpbSh0Zm9ydyltKGFyZGx5KWkod2l0aCllKGdlbmVyaWMpaSh0ZXh0KWcoZWRpdG9ycykKK2Yob3IpZihcKGZvciloKGltYWdlcyloKGNvbS0pMzMwIDE5MjcgeShwKXMob3NlZCkyMyBiKG9mKWgocGl4ZWxzXCkpZworKGdlbmVyaWMpaChwYWluKW0odClmKHByb2dyYW1zKWcob3IpZihcKGZvciloKGRyYSltKHdpbmdzXCkpZyhzb21lKWcKKyh3aWRlbHkpZyhhKW0odiktNSBiKGFpbGFibGUpMjYgYihkcmEpbSh3aW5nKTMzMCAyMDM3Cit5KGVkaXRvciwpayhhbmQpZih0aGF0KWcoaXMpZyhzdWl0YWJsZSloKGZvcilmKGlucHV0KWYodG8paSh0ZXh0KWcKKyhmb3JtYXR0ZXJzKWYob3IpZyhmb3IpZyhhdXRvbWF0aWMpaSh0cmFuc2xhdGlvbilmKHRvKTMzMAorMjE0NiB5KGEpZCh2KS01IGIoYXJpZXQpbSh5KTI4IGIob2YpZihmb3JtYXRzKWcoc3VpdGFibGUpaChmb3IpZShpbnB1dCkKK2codG8paSh0ZXh0KWcoZm9ybWF0dGVycy4pNDAgYihBKTI3IGIoY29wKW0oeSlnKG1hZGUpZyhpbilnKGFuKWcKKyhvdGhlcndpc2UpMzMwIDIyNTYgeShUKS04IGIocmFuc3BhcmVuKW0odCkzNyBiKFwwMTRsZSloKGZvcm1hdClnCisod2hvc2UpZihtYXJrdXAsKWkob3IpZShhYnNlbmNlKWgob2YpZyhtYXJrdXAsKWcoaGFzKWcoYilzKGVlbilmCisoYXJyYW5nZWQpZyh0bykzMzAgMjM2NSB5KHRoKW0odyltKGFydCkyNyBiKG9yKWcoZGlzY291cmFnZSlnCisoc3Vic2VxdWVuKW0odClmKG1vKXMoZGlcMDE0Y2F0aW9uKWgoYiltKHkpZyhyZWFkZXJzKWYoaXMpZyhub3QpaChUKS04CitiKHJhbnNwYXJlbiltKHQuKTM5IGIoQW4pMjcgYihpbWFnZSkzMzAgMjQ3NSB5KGZvcm1hdCkzNQorYihpcylmKG5vdCloKFQpLTggYihyYW5zcGFyZW4pbSh0KTM0IGIoaWYpZyh1c2VkKWcoZm9yKWcoYW4pbSh5KWcKKyhzdWJzdGFuKW0odGlhbCloKGFtb3VuKW0odClnKG9mKWcodGV4dC4pNTMgYihBKTM1IGIoY29wKW0oeSlnKHRoYXQpZworKGlzKTMzMCAyNTg1IHkobm90KWMoXFxUKS04IGIocmFuc3BhcmVuKW0odCIpMzEgYihpcylmKGNhbGxlZClpCisoXFxPcGFxdWUiLikzMzAgMjcyNSB5KEV4YW1wbGVzKTUzIGIob2YpZyhzdWl0YWJsZSloKGZvcm1hdHMpZihmb3IpZyhUKQorLTggYihyYW5zcGFyZW4pbSh0KTUzIGIoY29waWVzKWgoaW5jbHVkZSlmKHBsYWluKWcgRmgoYXNjaSlyKGkpZworRm8od2l0aG91dCkzMzAgMjgzNSB5KG1hcmt1cCwpNDEgYihUKS04IGIoZXhpbmZvKTQwIGIoaW5wdXQpZihmb3JtYXQsKWoKKyhMYVQpMTc3NSAyODU1IHkoRSkxODI2IDI4MzUgeShYKWQoaW5wdXQpZyhmb3JtYXQsKWsKK0ZoKHNnbWwpYyBGbyhvcilnIEZoKHhtbClnIEZvKHVzaW5nKWcoYSloKHB1YmxpY2x5KTMzMAorMjk0NSB5KGEpbSh2KS01IGIoYWlsYWJsZSkzNCBiIEZoKGR0ZClwIEZvKCwpZChhbmQpZworKHN0YW5kYXJkLWNvbmZvcm1pbmcpZyhzaW1wbGUpaCBGaChodG1sKXAgRm8oLClmKFApbShvc3RTY3JpcHQpaChvcilmCitGaChwZGYpZyBGbyhkZXNpZ25lZClnKGZvcikzMzAgMzA1NCB5KGgpbSh1bWFuKTM3IGIobW8pcyhkaVwwMTRjYXRpb24uKQorNjUgYihFeGFtcGxlcykzOCBiKG9mKWcodHJhbnNwYXJlbiltKHQpZyhpbWFnZSlpKGZvcm1hdHMpZShpbmNsdWRlKWcKK0ZoKHBuZylwIEZvKCwpaSBGaCh4KW4oY2YpZSBGbyhhbmQpMzMwIDMxNjQgeSBGaChqcGcpcAorRm8oLik2MyBiKE9wYXF1ZSkzOCBiKGZvcm1hdHMpZyhpbmNsdWRlKWcocHJvcHJpZXRhcnkpZyhmb3JtYXRzKWcodGhhdCkKK2goY2FuKWYoYilzKGUpZyhyZWFkKWcoYW5kKWYoZWRpdGVkKWkob25seSkzMzAgMzI3MyB5KGIpbSh5KWcKKyhwcm9wcmlldGFyeSlnKHcpbShvcmQpZyhwcm8pcyhjZXNzb3JzLClqIEZoKHNnbWwpYyBGbyhvcilpCitGaCh4bWwpZSBGbyhmb3IpaSh3aGljKW0oaClmKHRoZSlnIEZoKGR0ZClnIEZvKGFuZC9vcilnKHBybylzKGNlc3NpbmcpCiszMzAgMzM4MyB5KHRvKXMob2xzKTMyIGIoYXJlKWYobm90KWcoZ2VuZXJhbGx5KWgoYSltKHYpLTUKK2IoYWlsYWJsZSwpMzQgYihhbmQpYyh0aGUpaChtYWMpbShoaW5lLWdlbmVyYXRlZClpIEZoKGh0bWwpcAorRm8oLClkKFApbShvc3RTY3JpcHQpaShvcilmIEZoKHBkZikzMzAgMzQ5MyB5IEZvKHBybylzKGR1Y2VkKWUoYiltKHkpaAorKHNvbWUpaCh3KW0ob3JkKWYocHJvKXMoY2Vzc29ycylnKGZvcilnKG91dHB1dClnKHB1cnApcyhvc2VzKWUob25seSktOAorYiguKTMzMCAzNjM0IHkoVGhlKTM0IGIoXFxUaXRsZSloKFApbShhZ2UiKWkobWVhbnMsKWUoZm9yKWYoYSloKHByaW4pbQorKHRlZClmKGIpcyhvKXMob2ssKWgodGhlKWYodGl0bGUpaShwYWdlKWYoaXRzZWxmLCloKHBsdXMpZShzdWMpbShoKWYKKyhmb2xsbyltKHdpbmcpMzMwIDM3NDMgeShwYWdlcykyOCBiKGFzKWcoYXJlKWcobmVlZGVkKWcodG8pZyhob2xkLClnCisobGVnaWJseSktOCBiKCwpMzAgYih0aGUpZShtYXRlcmlhbCloKHRoaXMpZihMaWNlbnNlKWcocmVxdWlyZXMpZih0byloCisoYXBwKXMoZWFyKWYoaW4paCh0aGUpMzMwIDM4NTMgeSh0aXRsZSlnKHBhZ2UuKTQwIGIoRiktOAorYihvcikyOCBiKHcpbShvcmtzKWUoaW4pZyhmb3JtYXRzKWgod2hpYyltKGgpZyhkbylmKG5vdCloKGhhKW0odiltKGUpaAorKGFuKW0oeSllKHRpdGxlKWoocGFnZSllKGFzKWcoc3VjKW0oaCwpZyhcXFRpdGxlKWgoUCltKGFnZSIpMzMwCiszOTYyIHkobWVhbnMpaih0aGUpZih0ZXh0KWkobmVhcillKHRoZSloKG1vc3QpZyhwcm9taW5lbiltKHQpZyhhcHApcworKGVhcmFuY2UpZihvZiloKHRoZSlnKHcpbShvcmsncylnKHRpdGxlLCloKHByZWNlZGluZylmKHRoZSkzMzAKKzQwNzIgeShiKXMoZWdpbm5pbmcpZihvZilnKHRoZSloKGIpcyhvKXMoZHkpZShvZiloKHRoZSloKHRleHQuKTMzMAorNDIxMyB5KEEpZihzZWN0aW9uKWgoXFxFbiltKHRpdGxlZClnKFhZWiIpZihtZWFucylmKGEpaChuYW1lZClnCisoc3VidW5pdCllKG9mKWgodGhlKWgoRG8pcyhjdW1lbiltKHQpaCh3aG9zZSllKHRpdGxlKWkoZWl0aGVyKTMzMAorNDMyMiB5KGlzKWQocHJlY2lzZWx5KWcoWFlaKWcob3IpZihjb24pbSh0YWlucylpKFhZWilmKGluKWYocGFyZW4pbQorKHRoZXNlcylpKGZvbGxvKW0od2luZylnKHRleHQpZyh0aGF0KWYodHJhbnNsYXRlcyloKFhZWillKGluKTMzMAorNDQzMiB5KGFub3RoZXIpZShsYW5ndWFnZS4pNDAgYihcKEhlcmUpMjYgYihYWVopZihzdGFuZHMpZihmb3IpaChhKWcKKyhzcClzKGVjaVwwMTRjKWcoc2VjdGlvbiloKG5hbWUpZihtZW4pbSh0aW9uZWQpaChiKXMoZWxvKW0odywpZyhzdWMpbQorKGgpMzMwIDQ1NDIgeShhcylpKFxcQWMpbShrbm8pbSh3bGVkZ2VtZW4pbSh0cyIsKTMzIGIoXFxEZWRpY2F0aW9ucyIsKWUKKyhcXEVuZG9yc2VtZW4pbSh0cyIsKWUob3IpZihcXEhpc3RvcnkiLlwpKTQyIGIoVCktOCBiKG8pMjkKK2IoXFxQcmVzZXJ2KW0oZSkzMzAgNDY1MSB5KHRoZSkzNCBiKFRpdGxlIiloKG9mKWUoc3VjKW0oaCloKGEpZworKHNlY3Rpb24pZyh3aGVuKWYoeSltKG91KWgobW8pcyhkaWZ5KWUodGhlKWkoRG8pcyhjdW1lbiltKHQpaChtZWFucyllCisodGhhdCloKGl0KWcocmVtYWlucylnKGEpMzMwIDQ3NjEgeShzZWN0aW9uKWUoXFxFbiltKHRpdGxlZClmKFhZWiIpZworKGFjY29yZGluZylnKHRvKWcodGhpcylnKGRlXDAxNG5pdGlvbi4pMzMwIDQ5MDIgeShUaGUpYyhEbylzKGN1bWVuKW0odCkKK2kobWEpbSh5KWYoaW5jbHVkZSlmKFcpLTggYihhcnJhbiltKHQpbSh5KTMwIGIoRGlzY2xhaW1lcnMpZihuZXh0KWYodG8pCitnKHRoZSlnKG5vdGljZSloKHdoaWMpbShoKWUoc3RhdGVzKWkodGhhdCkzMzAgNTAxMSB5KHRoaXMpMzQKK2IoTGljZW5zZSlnKGFwcGxpZXMpZyh0byloKHRoZSlmKERvKXMoY3VtZW4pbSh0Lik1MiBiKFRoZXNlKTMzCitiKFcpLTggYihhcnJhbiltKHQpbSh5KTM2IGIoRGlzY2xhaW1lcnMpZihhcmUpZyhjb25zaWRlcmVkKWUodG8pMzMwCis1MTIxIHkoYilzKGUpayhpbmNsdWRlZClnKGIpbSh5KWcocmVmZXJlbmNlKWgoaW4pZyh0aGlzKWYoTGljZW5zZSwpagorKGJ1dClkKG9ubHkpaChhcylnKHJlZ2FyZHMpZihkaXNjbGFpbWluZylpKHcpbShhcnJhbiltKHRpZXM6KTMzMAorNTIzMCB5KGFuKW0oeSllKG90aGVyKWcoaW1wbGljYXRpb24paSh0aGF0KWUodGhlc2UpZyhXKS04CitiKGFycmFuKW0odCltKHkpMzkgYihEaXNjbGFpbWVycylmKG1hKW0oeSlnKGhhKW0odiltKGUpZyhpcylmKHYpbShvaWQpZworKGFuZClmKGhhcyloKG5vKTMzMCA1MzQwIHkoZVwwMTNlY3QpMzIgYihvbillKHRoZSloKG1lYW5pbmcpZihvZiloCisodGhpcylmKExpY2Vuc2UuKXAgZW9wIGVuZAorJSVQYWdlOiAyMyAyNworVGVYRGljdCBiZWdpbiAyMyAyNiBib3AgMTUwIC0xMTYgYSBGbyhBcHApcyhlbmRpeCkyOQorYihBOiloKENvcCltKHlpbmcpaChUaGlzKWYoTWFuKW0odWFsKTIxMDUgYigyMykxOTkgMjk5Cit5KDIuKTYxIGIoVkVSQkEpLTggYihUSU0pMzEgYihDT1BZSU5HKTMzMCA0NDUgeShZKS04CitiKG91KTM5IGIobWEpbSh5KWYoY29wKW0oeSloKGFuZCllKGRpc3RyaWJ1dGUpaCh0aGUpZyhEbylzKGN1bWVuKW0odCloCisoaW4pZihhbiltKHkpZyhtZWRpdW0sKWgoZWl0aGVyKWcoY29tbWVyY2lhbGx5KWgob3IpMzMwCis1NTUgeShub25jb21tZXJjaWFsbHkpLTggYigsKTQ4IGIocHJvKW0odmlkZWQpNDIgYih0aGF0KWgodGhpcylmCisoTGljZW5zZSwpNDcgYih0aGUpNDIgYihjb3ApbSh5cmlnaCltKHQpaShub3RpY2VzLClqKGFuZCk0MgorYih0aGUpaChsaWNlbnNlKTMzMCA2NjQgeShub3RpY2UpMzcgYihzYSltKHlpbmcpZyh0aGlzKWUoTGljZW5zZSlpCisoYXBwbGllcyllKHRvKWkodGhlKWYoRG8pcyhjdW1lbiltKHQpZyhhcmUpZyhyZXBybylzKGR1Y2VkKWUoaW4paShhbGwpZworKGNvcGllcywpaihhbmQpMzMwIDc3NCB5KHRoYXQpMjcgYih5KW0ob3UpZyhhZGQpZihubyloKG90aGVyKWYKKyhjb25kaXRpb25zKWgod2hhdHNvKXMoZXYpbShlciloKHRvKWYodGhvc2UpZyhvZilnKHRoaXMpZihMaWNlbnNlLik0MAorYihZKS04IGIob3UpMjcgYihtYSltKHkpZyhub3QpZyh1c2UpMzMwIDg4MyB5KHRlYyltKGhuaWNhbCkzNQorYihtZWFzdXJlcylkKHRvKWkob2JzdHJ1Y3QpZihvcilnKGNvbiltKHRyb2wpaCh0aGUpZihyZWFkaW5nKWcob3IpZworKGZ1cnRoZXIpZShjb3ApbSh5aW5nKWoob2YpZih0aGUpZyhjb3BpZXMpMzMwIDk5MyB5KHkpbShvdSkyNQorYihtYWspbShlKWcob3IpZyhkaXN0cmlidXRlLikzOCBiKEhvKW0odyltKGV2KW0oZXIsKTI4CitiKHkpbShvdSlkKG1hKW0oeSlnKGFjY2VwdCloKGNvbXApcyhlbnNhdGlvbilmKGluKWYoZXhjKW0oaGFuZ2Upaihmb3IpZAorKGNvcGllcy4pMzMwIDExMDMgeShJZikzMiBiKHkpbShvdSlnKGRpc3RyaWJ1dGUpZyhhKWgobGFyZ2UpZyhlbm91Z2gpZgorKG4pbSh1bSltKGIpcyhlcilmKG9mKWgoY29waWVzKWgoeSltKG91KWYobSltKHVzdCloKGFsc28pZyhmb2xsbyltKHcpZworKHRoZSlmKGNvbmRpdGlvbnMpMzMwIDEyMTIgeShpbillKHNlY3Rpb24paSgzLikzMzAgMTM1OAoreShZKS04IGIob3UpMjEgYihtYSltKHkpaChhbHNvKWYobGVuZClnKGNvcGllcywpaSh1bmRlcilkKHRoZSloKHNhbWUpZworKGNvbmRpdGlvbnMpZyhzdGF0ZWQpaChhYilzKG8pbSh2KW0oZSwpaShhbmQpYyh5KW0ob3UpaChtYSltKHkpZworKHB1YmxpY2x5KTMzMCAxNDY4IHkoZGlzcGxhKW0oeSkzMSBiKGNvcGllcy4pMTk5IDE2MTQKK3koMy4pNjEgYihDT1BZSU5HKTMwIGIoSU4pZyhRVUFOVElUWSkzMzAgMTc2MCB5KElmKTI1CitiKHkpbShvdSlnKHB1Ymxpc2gpZihwcmluKW0odGVkKWcoY29waWVzKWkoXChvcilnKGNvcGllcylnKGluKWYobWVkaWEpZworKHRoYXQpaChjb21tb25seSlnKGhhKW0odiltKGUpZyhwcmluKW0odGVkKWYoY28pbSh2KW0oZXJzXCkpaShvZikzMzAKKzE4NzAgeSh0aGUpMzIgYihEbylzKGN1bWVuKW0odCwpaChuKW0odW0pbShiKXMoZXJpbmcpZShtb3JlKWgodGhhbilmCisoMTAwLClqKGFuZClkKHRoZSloKERvKXMoY3VtZW4pbSh0J3MpaChsaWNlbnNlKWYobm90aWNlKWgocmVxdWlyZXMpMzMwCisxOTc5IHkoQ28pbSh2KW0oZXIpaShUKS04IGIoZXh0cywpMzYgYih5KW0ob3UpZihtKW0odXN0KWYoZW5jbG9zZSlpCisodGhlKWUoY29waWVzKWgoaW4pZihjbyltKHYpbShlcnMpaSh0aGF0KWYoY2FycnkpLTggYigsKTM2CitiKGNsZWFybHkpZihhbmQpZihsZWdpYmx5KS04IGIoLCkzNyBiKGFsbCkzMzAgMjA4OSB5KHRoZXNlKWooQ28pbSh2KW0KKyhlcilnKFQpLTggYihleHRzOik1OSBiKEYpLTggYihyb24pbSh0LUNvKW0odiltKGVyKTQxCitiKFQpLTggYihleHRzKTQwIGIob24pZih0aGUpZyhmcm9uKW0odClnKGNvKW0odiltKGVyLCk0NAorYihhbmQpMzggYihCYWMpbShrLUNvKW0odiltKGVyKWsoVCktOCBiKGV4dHMpNDAgYihvbikzMzAKKzIxOTggeSh0aGUpMjkgYihiYWMpbShrKWgoY28pbSh2KW0oZXIuKTQyIGIoQm90aCkzMCBiKGNvKW0odiltKGVycyloKG0pCittKHVzdCllKGFsc28paChjbGVhcmx5KWcoYW5kKWYobGVnaWJseSloKGlkZW4pbSh0aWZ5KWYoeSltKG91KWgoYXMpZgorKHRoZSloKHB1Ymxpc2hlcikzMzAgMjMwOCB5KG9mKWsodGhlc2UpaChjb3BpZXMuKTUzIGIoVGhlKTM0CitiKGZyb24pbSh0KWgoY28pbSh2KW0oZXIpaChtKW0odXN0KWUocHJlc2VuKW0odClnKHRoZSloKGZ1bGwpZih0aXRsZSlpCisod2l0aClkKGFsbClqKHcpbShvcmRzKWQob2YpaSh0aGUpZih0aXRsZSkzMzAgMjQxOCB5KGVxdWFsbHkpZQorKHByb21pbmVuKW0odCllKGFuZClnKHZpc2libGUuKTQzIGIoWSktOCBiKG91KTMxIGIobWEpbSh5KWcoYWRkKWcKKyhvdGhlcilnKG1hdGVyaWFsKWgob24pZih0aGUpZyhjbyltKHYpbShlcnMpaChpbillKGFkZGl0aW9uLikzMzAKKzI1MjcgeShDb3ApbSh5aW5nKTM2IGIod2l0aClnKGMpbShoYW5nZXMpaChsaW1pdGVkKWcodG8pZyh0aGUpZyhjbyltKHYpCittKGVycywpaShhcylkKGxvbmcpaChhcylnKHRoZXkpZihwcmVzZXJ2KW0oZSlnKHRoZSloKHRpdGxlKWcob2YpZyh0aGUpCiszMzAgMjYzNyB5KERvKXMoY3VtZW4pbSh0KWgoYW5kKWUoc2F0aXNmeSlpKHRoZXNlKWYoY29uZGl0aW9ucywpaihjYW4pZAorKGIpcyhlKWcodHJlYXRlZCloKGFzKWYodiltKGVyYmF0aW0paChjb3ApbSh5aW5nKWcoaW4pZihvdGhlcikzMzAKKzI3NDYgeShyZXNwKXMoZWN0cy4pMzMwIDI4OTIgeShJZikzMiBiKHRoZSloKHJlcXVpcmVkKWYodGV4dHMpaShmb3IpZQorKGVpdGhlciloKGNvKW0odiltKGVyKWkoYXJlKWUodG8pcyhvKWcodiltKG9sdW1pbm91cylnKHRvKWcoXDAxNHQpZworKGxlZ2libHkpLTggYigsKTM1IGIoeSltKG91KWUoc2hvdWxkKWYocHV0KTMzMCAzMDAyIHkodGhlKWgoXDAxNHJzdClmCisob25lcyloKGxpc3RlZClnKFwoYXMpaChtYW4pbSh5KWYoYXMpZyhcMDE0dClnKHJlYXNvbmFibHlcKSlnKG9uKWcodGhlKQorZyhhY3R1YWwpaChjbyltKHYpbShlciwpaChhbmQpZShjb24pbSh0aW4pbSh1ZSloKHRoZSkzMzAKKzMxMTIgeShyZXN0KWQob24pbSh0bylnKGFkamFjZW4pbSh0KWgocGFnZXMuKTMzMCAzMjU4Cit5KElmKTI3IGIoeSltKG91KWcocHVibGlzaCllKG9yKWkoZGlzdHJpYnV0ZSlnKE9wYXF1ZSlmKGNvcGllcylpKG9mKWYKKyh0aGUpaChEbylzKGN1bWVuKW0odClmKG4pbSh1bSltKGIpcyhlcmluZylmKG1vcmUpaSh0aGFuKWUoMTAwLCkzMzAKKzMzNjcgeSh5KW0ob3UpaShtKW0odXN0KWcoZWl0aGVyKWgoaW5jbHVkZSllKGEpaShtYWMpbShoaW5lLXJlYWRhYmxlKWcKKyhUKS04IGIocmFuc3BhcmVuKW0odCkyOCBiKGNvcCltKHkpaChhbG9uZylnKHdpdGgpZShlYWMpbShoKWkoT3BhcXVlKQorMzMwIDM0NzcgeShjb3ApbSh5KS04IGIoLCkzOCBiKG9yKWQoc3RhdGUpaChpbilmKG9yKWcod2l0aClnKGVhYyltKGgpaAorKE9wYXF1ZSllKGNvcCltKHkpaShhKWcoY29tcHV0ZXItbmV0KW0odyltKG9yaylnKGxvKXMoY2F0aW9uKWgoZnJvbSlkCisod2hpYyltKGgpMzMwIDM1ODcgeSh0aGUpMjQgYihnZW5lcmFsKWkobmV0KW0odyltKG9yay11c2luZylmKHB1YmxpYyllCisoaGFzKWgoYWNjZXNzKWkodG8pZihkbyltKHdubG9hZClmKHVzaW5nKWcocHVibGljLXN0YW5kYXJkKWYobmV0KW0odyltCisob3JrKTMzMCAzNjk2IHkocHJvdG8pcyhjb2xzKTQwIGIoYSlmKGNvbXBsZXRlKWgoVCktOAorYihyYW5zcGFyZW4pbSh0KTM5IGIoY29wKW0oeSlnKG9mKWcodGhlKWgoRG8pcyhjdW1lbiltKHQsKWkoZnJlZSlkKG9mKWcKKyhhZGRlZClmKG1hdGVyaWFsLik2NyBiKElmKTMzMCAzODA2IHkoeSltKG91KTM5IGIodXNlKWcodGhlKWcobGF0dGVyKWgKKyhvcHRpb24sKWgoeSltKG91KWYobSltKHVzdCllKHRhayltKGUpaihyZWFzb25hYmx5KWUocHJ1ZGVuKW0odCllCisoc3RlcHMsKWsod2hlbilkKHkpbShvdSloKGIpcyhlZ2luKTMzMCAzOTE1IHkoZGlzdHJpYnV0aW9uKWYob2YpZworKE9wYXF1ZSlnKGNvcGllcyloKGluKWUocXVhbiltKHRpdCltKHkpLTggYigsKTQzIGIodG8pMzgKK2IoZW5zdXJlKWcodGhhdCloKHRoaXMpZihUKS04IGIocmFuc3BhcmVuKW0odCkzOCBiKGNvcCltKHkpaCh3aWxsKTMzMAorNDAyNSB5KHJlbWFpbikzMCBiKHRoKW0odXMpZyhhY2Nlc3NpYmxlKWkoYXQpZih0aGUpZihzdGF0ZWQpaChsbylzCisoY2F0aW9uKWgodW4pbSh0aWwpZShhdCloKGxlYXN0KWgob25lKWUoeSltKGVhciloKGFmdGVyKWcodGhlKWYobGFzdCloCisodGltZSkzMzAgNDEzNCB5KHkpbShvdSkzNyBiKGRpc3RyaWJ1dGUpZihhbiloKE9wYXF1ZSlmKGNvcCltKHkpaQorKFwoZGlyZWN0bHkpZyhvcillKHRocm91Z2gpZyh5KW0ob3VyKWgoYWdlbiltKHRzKWgob3IpZihyZXRhaWxlcnNcKSloCisob2YpZih0aGF0KTMzMCA0MjQ0IHkoZWRpdGlvbikzMSBiKHRvKWcodGhlKWcocHVibGljLikzMzAKKzQzOTAgeShJdClrKGlzKWYocmVxdWVzdGVkLClpKGJ1dCllKG5vdCloKHJlcXVpcmVkLClnKHRoYXQpZyh5KW0ob3UpZworKGNvbiltKHRhY3QpaCh0aGUpZihhdXRob3JzKWYob2YpaCh0aGUpZyhEbylzKGN1bWVuKW0odClnKHcpbShlbGwpMzMwCis0NTAwIHkoYilzKGVmb3JlKTI4IGIocmVkaXN0cmlidXRpbmcpZyhhbiltKHkpaChsYXJnZSloKG4pbSh1bSltKGIpcworKGVyKWQob2YpaShjb3BpZXMsKWgodG8pZihnaXYpbShlKWgodGhlbSlmKGEpZyhjKW0oaGFuY2UpaCh0bylmKHBybyltCisodmlkZSlnKHkpbShvdSkzMzAgNDYwOSB5KHdpdGgpaChhbilnKHVwKXMoZGF0ZWQpZih2KW0oZXJzaW9uKWkob2YpZworKHRoZSlmKERvKXMoY3VtZW4pbSh0LikxOTkgNDc1NSB5KDQuKTYxIGIoTU9ESUZJQ0EpLTgKK2IoVElPTlMpMzMwIDQ5MDIgeShZKWcob3UpMjYgYihtYSltKHkpZyhjb3ApbSh5KWcoYW5kKWYoZGlzdHJpYnV0ZSlnKGEpCitoKE1vKXMoZGlcMDE0ZWQpZihWKS04IGIoZXJzaW9uKTI2IGIob2YpZyh0aGUpZyhEbylzKGN1bWVuKW0odClnKHVuZGVyKQorZSh0aGUpaChjb25kaXRpb25zKTMzMCA1MDExIHkob2YpYyhzZWN0aW9ucyloKDIpZyhhbmQpZSgzKWgoYWIpcyhvKW0odikKK20oZSwpayhwcm8pbSh2aWRlZCkyMCBiKHRoYXQpaSh5KW0ob3UpZihyZWxlYXNlKWkodGhlKWUoTW8pcyhkaVwwMTRlZClmCisoViktOCBiKGVyc2lvbikyMiBiKHVuZGVyKWQocHJlY2lzZWx5KTMzMCA1MTIxIHkodGhpcykyOQorYihMaWNlbnNlLCloKHdpdGgpZih0aGUpZyhNbylzKGRpXDAxNGVkKWYoViktOCBiKGVyc2lvbikzMAorYihcMDE0bGxpbmcpZih0aGUpZyhyb2xlKWgob2YpZih0aGUpZyhEbylzKGN1bWVuKW0odCwpaCh0aCltKHVzKWYKKyhsaWNlbnNpbmcpMzMwIDUyMzAgeShkaXN0cmlidXRpb24payhhbmQpaChtbylzKGRpXDAxNGNhdGlvbilnKG9mKWgKKyh0aGUpZihNbylzKGRpXDAxNGVkKWYoViktOCBiKGVyc2lvbikzNSBiKHRvKWcod2hvKXMoZXYpbShlcilmKHApcworKG9zc2Vzc2VzKWYoYSlpKGNvcCltKHkpZyhvZikzMzAgNTM0MCB5KGl0Lik0MSBiKEluKTMwCitiKGFkZGl0aW9uLCloKHkpbShvdSlmKG0pbSh1c3QpaChkbylmKHRoZXNlKWgodGhpbmdzKWYoaW4pZyh0aGUpaChNbylzCisoZGlcMDE0ZWQpZShWKS04IGIoZXJzaW9uOilwIGVvcCBlbmQKKyUlUGFnZTogMjQgMjgKK1RlWERpY3QgYmVnaW4gMjQgMjcgYm9wIDE1MCAtMTE2IGEgRm8oMjQpMjYwMCBiKEdOVSkzMQorYihSZWFkbGluZSlnKExpYnJhcnkpMzU3IDI5OSB5KEEuKTYwIGIoVXNlKTMzIGIoaW4pZih0aGUpaChUaXRsZSloKFApbQorKGFnZSlnKFwoYW5kKWYob24pZih0aGUpaChjbyltKHYpbShlcnMsKWkoaWYpZShhbiltKHlcKSlnKGEpZyh0aXRsZSloCisoZGlzdGluY3QpZihmcm9tKWcodGhhdClnKG9mKWcodGhlKTUxMCA0MDggeShEbylzKGN1bWVuKW0odCwpaihhbmQpZAorKGZyb20pZyh0aG9zZSlpKG9mKWYocHJldmlvdXMpZih2KW0oZXJzaW9ucyloKFwod2hpYyltKGgpZyhzaG91bGQsKWcKKyhpZilnKHRoZXJlKWcodyltKGVyZSlnKGFuKW0oeSktOCBiKCwpNTEwIDUxOCB5KGIpcyhlKTMxCitiKGxpc3RlZCloKGluKWYodGhlKWcoSGlzdG9yeSloKHNlY3Rpb24pZyhvZilnKHRoZSlmKERvKXMoY3VtZW4pbSh0XCkuKQorNDUgYihZKS04IGIob3UpMzIgYihtYSltKHkpZyh1c2UpZih0aGUpZyhzYW1lKWgodGl0bGUpaChhcyk1MTAKKzYyOCB5KGEpZShwcmV2aW91cylmKHYpbShlcnNpb24pZyhpZiloKHRoZSlmKG9yaWdpbmFsKWkocHVibGlzaGVyKWQob2YpCitoKHRoYXQpaCh2KW0oZXJzaW9uKWcoZ2l2KW0oZXMpaChwKXMoZXJtaXNzaW9uLikzNjAgNzU4Cit5KEIuKTYxIGIoTGlzdCkzMSBiKG9uKWYodGhlKWgoVGl0bGUpZyhQKW0oYWdlLClpKGFzKWQoYXV0aG9ycywpaChvbmUpZworKG9yKWYobW9yZSloKHApcyhlcnNvbnMpZShvciloKGVuKW0odGl0aWVzKWoocmVzcClzKG9uc2libGUpYyhmb3IpNTEwCis4NjcgeShhdXRob3JzaGlwKWMob2YpaCh0aGUpaChtbylzKGRpXDAxNGNhdGlvbnMpZihpbilnKHRoZSlnKE1vKXMKKyhkaVwwMTRlZClmKFYpLTggYihlcnNpb24sKTI4IGIodG9nZXRoZXIpZyh3aXRoKWQoYXQpaShsZWFzdCloKFwwMTR2KW0KKyhlKTUxMCA5NzcgeShvZiljKHRoZSlnKHByaW5jaXBhbClnKGF1dGhvcnMpZihvZilpKHRoZSlmKERvKXMoY3VtZW4pbQorKHQpZyhcKGFsbCloKG9mKWcoaXRzKWYocHJpbmNpcGFsKWcoYXV0aG9ycywpaChpZilmKGl0KWcoaGFzKWcoZmV3KW0KKyhlcik1MTAgMTA4NyB5KHRoYW4pMzAgYihcMDE0diltKGVcKSwpaCh1bmxlc3MpZih0aGV5KWgocmVsZWFzZSlnKHkpbQorKG91KWcoZnJvbSlmKHRoaXMpZyhyZXF1aXJlbWVuKW0odC4pMzU5IDEyMTcgeShDLik2MAorYihTdGF0ZSkzMiBiKG9uKWUodGhlKWgoVGl0bGUpaChwYWdlKWYodGhlKWcobmFtZSlnKG9mKWcodGhlKWcKKyhwdWJsaXNoZXIpZShvZilpKHRoZSlnKE1vKXMoZGlcMDE0ZWQpZihWKS04IGIoZXJzaW9uLCkzMgorYihhcylmKHRoZSk1MTAgMTMyNiB5KHB1Ymxpc2hlci4pMzU1IDE0NTYgeShELik2MSBiKFByZXNlcnYpbShlKTMxCitiKGFsbClnKHRoZSlnKGNvcCltKHlyaWdoKW0odCloKG5vdGljZXMpZihvZilnKHRoZSlmKERvKXMoY3VtZW4pbSh0LikKKzM2MyAxNTg3IHkoRS4pNjAgYihBZGQpMzAgYihhbilpKGFwcHJvcHJpYXRlKWYoY29wKW0oeXJpZ2gpbSh0KWkKKyhub3RpY2UpZihmb3IpZyh5KW0ob3VyKWYobW8pcyhkaVwwMTRjYXRpb25zKWcoYWRqYWNlbiltKHQpaSh0bylmKHRoZSlnCisob3RoZXIpNTEwIDE2OTYgeShjb3ApbSh5cmlnaCltKHQpZyhub3RpY2VzLikzNjUgMTgyNgoreShGLik2MSBiKEluY2x1ZGUsKTI4IGIoaW1tZWRpYXRlbHkpaChhZnRlcilmKHRoZSloKGNvcCltKHlyaWdoKW0odClnCisobm90aWNlcywpaChhKWUobGljZW5zZSloKG5vdGljZSlnKGdpdmluZylnKHRoZSlmKHB1YmxpYyk1MTAKKzE5MzYgeShwKXMoZXJtaXNzaW9uKTIzIGIodG8paih1c2UpZSh0aGUpZyhNbylzKGRpXDAxNGVkKWcoViktOAorYihlcnNpb24pMjUgYih1bmRlcillKHRoZSlpKHRlcm1zKWYob2YpaCh0aGlzKWYoTGljZW5zZSwpaihpbilkKHRoZSlnCisoZm9ybSk1MTAgMjA0NSB5KHNobyltKHduKTMwIGIoaW4pZyh0aGUpZyhBZGRlbmR1bSlmKGIpcyhlbG8pbSh3LikzNTMKKzIxNzYgeShHLik2MSBiKFByZXNlcnYpbShlKTIzIGIoaW4pZyh0aGF0KWcobGljZW5zZSloKG5vdGljZSlnKHRoZSlmCisoZnVsbClnKGxpc3RzKWcob2YpZyhJbiltKHYpLTUgYihhcmlhbiltKHQpMjMgYihTZWN0aW9ucyloKGFuZCllCisocmVxdWlyZWQpZyhDbyltKHYpbShlcik1MTAgMjI4NSB5KFQpLTggYihleHRzKTMxIGIoZ2l2KW0oZW4pZyhpbilmCisodGhlKWgoRG8pcyhjdW1lbiltKHQncylnKGxpY2Vuc2UpaChub3RpY2UuKTM1NyAyNDE1Cit5KEguKTYwIGIoSW5jbHVkZSkzMCBiKGFuKWcodW5hbHRlcmVkKWcoY29wKW0oeSloKG9mKWcodGhpcylmKExpY2Vuc2UuKQorMzkyIDI1NDUgeShJLik2MCBiKFByZXNlcnYpbShlKTMzIGIodGhlKWYoc2VjdGlvbiloKEVuKW0odGl0bGVkKWcKKyhcXEhpc3RvcnkiLCloKFByZXNlcnYpbShlKWYoaXRzKWYoVGl0bGUsKWkoYW5kKWQoYWRkKWgodG8paChpdClmKGFuKWcKKyhpdGVtKTUxMCAyNjU1IHkoc3RhdGluZylkKGF0KWcobGVhc3QpZyh0aGUpZyh0aXRsZSwpaCh5KW0oZWFyLClnKG5ldylkCisoYXV0aG9ycywpaShhbmQpZShwdWJsaXNoZXIpZihvZilqKHRoZSlmKE1vKXMoZGlcMDE0ZWQpZihWKS04CitiKGVyc2lvbik1MTAgMjc2NSB5KGFzKTMyIGIoZ2l2KW0oZW4pZyhvbilmKHRoZSloKFRpdGxlKWcoUCltKGFnZS4pNDUKK2IoSWYpMzEgYih0aGVyZSloKGlzKWYobm8pZyhzZWN0aW9uKWkoRW4pbSh0aXRsZWQpZihcXEhpc3RvcnkiKWgoaW4pZQorKHRoZSlnKERvKXMoY3UtKTUxMCAyODc0IHkobWVuKW0odCwpMzcgYihjcmVhdGUpZihvbmUpZihzdGF0aW5nKWgodGhlKWYKKyh0aXRsZSwpaSh5KW0oZWFyLClnKGF1dGhvcnMsKWYoYW5kKWUocHVibGlzaGVyKWYob2YpaSh0aGUpZyhEbylzCisoY3VtZW4pbSh0KTUxMCAyOTg0IHkoYXMpaChnaXYpbShlbiloKG9uKWYoaXRzKWgoVGl0bGUpZyhQKW0oYWdlLClpCisodGhlbilkKGFkZClnKGFuKWcoaXRlbSlnKGRlc2NyaWJpbmcpZyh0aGUpZyhNbylzKGRpXDAxNGVkKWcoViktOAorYihlcnNpb24pMzcgYihhcyk1MTAgMzA5MyB5KHN0YXRlZCkzMSBiKGluKWYodGhlKWgocHJldmlvdXMpZihzZW4pbQorKHRlbmNlLikzNzggMzIyNCB5KEouKTYwIGIoUHJlc2VydiltKGUpMzMgYih0aGUpZyhuZXQpbSh3KW0ob3JrKWcobG8pcworKGNhdGlvbiwpaShpZilkKGFuKW0oeSktOCBiKCwpMzQgYihnaXYpbShlbilmKGluKWcodGhlKWYoRG8pcyhjdW1lbiltCisodCloKGZvcilnKHB1YmxpYyllKGFjY2VzcylqKHRvKTUxMCAzMzMzIHkoYSllKFQpLTggYihyYW5zcGFyZW4pbSh0KTMwCitiKGNvcCltKHkpaShvZilnKHRoZSlmKERvKXMoY3VtZW4pbSh0LCloKGFuZClmKGxpayltKGV3aXNlKWgodGhlKWcobmV0KQorbSh3KW0ob3JrKWcobG8pcyhjYXRpb25zKWcoZ2l2KW0oZW4pZyhpbik1MTAgMzQ0MyB5KHRoZSlnKERvKXMoY3VtZW4pbQorKHQpZyhmb3IpZyhwcmV2aW91cylmKHYpbShlcnNpb25zKWgoaXQpZyh3KW0oYXMpZyhiYXNlZClmKG9uLik0NQorYihUaGVzZSkzMSBiKG1hKW0oeSloKGIpcyhlKWYocGxhY2VkKWgoaW4pZyh0aGUpNTEwIDM1NTIKK3koXFxIaXN0b3J5IikyNyBiKHNlY3Rpb24uKTQwIGIoWSktOCBiKG91KTI1IGIobWEpbSh5KWgob21pdClnKGEpZihuZXQpCittKHcpbShvcmspaChsbylzKGNhdGlvbilnKGZvcilmKGEpaCh3KW0ob3JrKWYodGhhdClnKHcpbShhcyloCisocHVibGlzaGVkKTUxMCAzNjYyIHkoYXQpMzYgYihsZWFzdCloKGZvdXIpZSh5KW0oZWFycylpKGIpcyhlZm9yZSllCisodGhlKWgoRG8pcyhjdW1lbiltKHQpaChpdHNlbGYsKWgob3IpZChpZiloKHRoZSlnKG9yaWdpbmFsKWgocHVibGlzaGVyKQorZChvZilpKHRoZSk1MTAgMzc3MSB5KHYpbShlcnNpb24pMzEgYihpdClnKHJlZmVycylmKHRvKWgoZ2l2KW0oZXMpaChwKXMKKyhlcm1pc3Npb24uKTM1NCAzOTAyIHkoSy4pNjAgYihGKS04IGIob3IpMjQgYihhbiltKHkpaChzZWN0aW9uKWYoRW4pbQorKHRpdGxlZCloKFxcQWMpbShrbm8pbSh3bGVkZ2VtZW4pbSh0cyIpaShvcilkKFxcRGVkaWNhdGlvbnMiLClrCisoUHJlc2VydiltKGUpYyh0aGUpZyhUaXRsZSk1MTAgNDAxMSB5KG9mKWoodGhlKWYoc2VjdGlvbiwpaihhbmQpZAorKHByZXNlcnYpbShlKWgoaW4pZih0aGUpaChzZWN0aW9uKWcoYWxsKWgodGhlKWUoc3Vic3RhbmNlKWgoYW5kKWYodG9uZSkKK2gob2YpZihlYWMpbShoKWkob2YpZih0aGUpNTEwIDQxMjEgeShjb24pbSh0cmlidXRvcilrKGFjKW0oa25vKW0KKyh3bGVkZ2VtZW4pbSh0cylpKGFuZC9vcilkKGRlZGljYXRpb25zKWgoZ2l2KW0oZW4paCh0aGVyZWluLikzNjgKKzQyNTEgeShMLik2MCBiKFByZXNlcnYpbShlKTM2IGIoYWxsKWcodGhlKWcoSW4pbSh2KS01CitiKGFyaWFuKW0odCkzNiBiKFNlY3Rpb25zKWcob2YpZih0aGUpaChEbylzKGN1bWVuKW0odCwpaCh1bmFsdGVyZWQpZgorKGluKWYodGhlaXIpZyh0ZXh0KWkoYW5kKTUxMCA0MzYxIHkoaW4pZih0aGVpcilnKHRpdGxlcy4pNTgKK2IoU2VjdGlvbikzNyBiKG4pbSh1bSltKGIpcyhlcnMpZChvcilpKHRoZSlnKGVxdWl2KS01CitiKGFsZW4pbSh0KTM4IGIoYXJlKWUobm90KWcoY29uc2lkZXJlZClnKHBhcnQpZyhvZilnKHRoZSk1MTAKKzQ0NzAgeShzZWN0aW9uKWModGl0bGVzLikzNDEgNDYwMCB5KE0uKTYxIGIoRGVsZXRlKTMzCitiKGFuKW0oeSllKHNlY3Rpb24paChFbiltKHRpdGxlZClmKFxcRW5kb3JzZW1lbiltKHRzIi4pNDIKK2IoU3VjKW0oaCkzMCBiKGEpaShzZWN0aW9uKWYobWEpbSh5KWgobm90KWYoYilzKGUpZihpbmNsdWRlZCk1MTAKKzQ3MTAgeShpbilnKHRoZSloKE1vKXMoZGlcMDE0ZWQpZShWKS04IGIoZXJzaW9uLikzNTcKKzQ4NDAgeShOLik2MCBiKERvKTI5IGIobm90KWcocmV0aXRsZSloKGFuKW0oeSllKGV4aXN0aW5nKWkoc2VjdGlvbilmCisodG8pZyhiKXMoZSlmKEVuKW0odGl0bGVkKWgoXFxFbmRvcnNlbWVuKW0odHMiKWcob3IpZih0byloKGNvblwwMTVpY3QpZworKGluKTUxMCA0OTUwIHkodGl0bGUpaih3aXRoKWUoYW4pbSh5KWgoSW4pbSh2KS01IGIoYXJpYW4pbSh0KTMxCitiKFNlY3Rpb24uKTM1NCA1MDgwIHkoTy4pNjAgYihQcmVzZXJ2KW0oZSkzMSBiKGFuKW0oeSlnKFcpLTgKK2IoYXJyYW4pbSh0KW0oeSkzMiBiKERpc2NsYWltZXJzLikzMzAgNTIzMCB5KElmKWgodGhlKWcoTW8pcyhkaVwwMTRlZClnCisoViktOCBiKGVyc2lvbikzNCBiKGluY2x1ZGVzKWYobmV3KWcoZnJvbiltKHQtbWF0dGVyKWkoc2VjdGlvbnMpZihvcilmCisoYXBwKXMoZW5kaWNlcylnKHRoYXQpaChxdWFsaWZ5KTMzMCA1MzQwIHkoYXMpMjggYihTZWNvbmRhcnkpZworKFNlY3Rpb25zKWcoYW5kKWYoY29uKW0odGFpbilqKG5vKWQobWF0ZXJpYWwpaihjb3BpZWQpZShmcm9tKWYodGhlKWgKKyhEbylzKGN1bWVuKW0odCwpaSh5KW0ob3UpZShtYSltKHkpZyhhdClwIGVvcCBlbmQKKyUlUGFnZTogMjUgMjkKK1RlWERpY3QgYmVnaW4gMjUgMjggYm9wIDE1MCAtMTE2IGEgRm8oQXBwKXMoZW5kaXgpMjkKK2IoQTopaChDb3ApbSh5aW5nKWgoVGhpcylmKE1hbiltKHVhbCkyMTA1IGIoMjUpMzMwIDI5OQoreSh5KW0ob3VyKTMyIGIob3B0aW9uKWgoZGVzaWduYXRlKWgoc29tZSllKG9yKWgoYWxsKWcob2YpZih0aGVzZSloCisoc2VjdGlvbnMpaChhcyllKGluKW0odiktNSBiKGFyaWFuKW0odC4pNDggYihUKS04IGIobykzMworYihkbylmKHRoaXMsKWgoYWRkKWYodGhlaXIpMzMwIDQwOCB5KHRpdGxlcykzNyBiKHRvKWYodGhlKWYobGlzdCloKG9mKWcKKyhJbiltKHYpLTUgYihhcmlhbiltKHQpMzYgYihTZWN0aW9ucylnKGluKWYodGhlKWgoTW8pcyhkaVwwMTRlZClmKFYpLTgKK2IoZXJzaW9uJ3MpMzYgYihsaWNlbnNlKWcobm90aWNlLik1NyBiKFRoZXNlKTMzMCA1MTgKK3kodGl0bGVzKTMyIGIobSltKHVzdCllKGIpcyhlKWcoZGlzdGluY3QpaChmcm9tKWUoYW4pbSh5KWkob3RoZXIpZworKHNlY3Rpb24pZyh0aXRsZXMuKTMzMCA2NTAgeShZKS04IGIob3UpNDMgYihtYSltKHkpZyhhZGQpZihhKWcoc2VjdGlvbikKK2koRW4pbSh0aXRsZWQpZihcXEVuZG9yc2VtZW4pbSh0cyIsKWoocHJvKW0odmlkZWQpYyhpdCloKGNvbiltKHRhaW5zKWcKKyhub3RoaW5nKWcoYnV0KTMzMCA3NTkgeShlbmRvcnNlbWVuKW0odHMpMzAgYihvZilnKHkpbShvdXIpZihNbylzCisoZGlcMDE0ZWQpZyhWKS04IGIoZXJzaW9uKTMxIGIoYiltKHkpZSh2KS01IGIoYXJpb3VzKTMwCitiKHBhcnRpZXN8Zm9yKWcoZXhhbXBsZSwpZyhzdGF0ZW1lbiltKHRzKWkob2YpMzMwIDg2OQoreShwKXMoZWVyKTI3IGIocmV2aWV3KWcob3IpZyh0aGF0KWgodGhlKWYodGV4dClpKGhhcylkKGIpcyhlZW4paChhcHBybykKK20odiltKGVkKWcoYiltKHkpZyhhbiloKG9yZ2FuaXphdGlvbiloKGFzKWUodGhlKWgoYXV0aG9yaXRhdGl2KW0oZSkzMzAKKzk3OCB5KGRlXDAxNG5pdGlvbilpKG9mKWgoYSlmKHN0YW5kYXJkLikzMzAgMTExMCB5KFkpLTgKK2Iob3UpMjkgYihtYSltKHkpZyhhZGQpZShhKWkocGFzc2FnZSlnKG9mKWcodXApZSh0bylpKFwwMTR2KW0oZSlnKHcpbQorKG9yZHMpZShhcylpKGEpZyhGKS04IGIocm9uKW0odC1DbyltKHYpbShlcikzMCBiKFQpLTgKK2IoZXh0LCkzMCBiKGFuZCllKGEpZyhwYXNzYWdlKWkob2YpZSh1cCkzMzAgMTIxOSB5KHRvKWcoMjUpZyh3KW0ob3JkcyllCisoYXMpaShhKWYoQmFjKW0oay1DbyltKHYpbShlcilqKFQpLTggYihleHQsKTI5IGIodG8pZih0aGUpZihlbmQpZihvZilpCisodGhlKWYobGlzdCloKG9mKWYoQ28pbSh2KW0oZXIpaChUKS04IGIoZXh0cykyNyBiKGluKWcodGhlKWgoTW8pcworKGRpXDAxNGVkKTMzMCAxMzI5IHkoViktOCBiKGVyc2lvbi4pNTggYihPbmx5KTM1IGIob25lKWgocGFzc2FnZSloKG9mKWYKKyhGKS04IGIocm9uKW0odC1DbyltKHYpbShlcikzOCBiKFQpLTggYihleHQpMzYgYihhbmQpZyhvbmUpZyhvZilnKEJhYyltCisoay1DbyltKHYpbShlcilqKFQpLTggYihleHQpMzYgYihtYSltKHkpaChiKXMoZSkzMzAgMTQzOQoreShhZGRlZCkyNyBiKGIpbSh5KWcoXChvciloKHRocm91Z2gpZihhcnJhbmdlbWVuKW0odHMpaChtYWRlKWcoYiltKHlcKSkKK2coYW4pbSh5KWcob25lKWYoZW4pbSh0aXQpbSh5KS04IGIoLik0MiBiKElmKTI3IGIodGhlKWgoRG8pcyhjdW1lbiltKHQpCitnKGFscmVhZHkpMzMwIDE1NDggeShpbmNsdWRlcykzNCBiKGEpZyhjbyltKHYpbShlciloKHRleHQpZyhmb3IpZih0aGUpZworKHNhbWUpaChjbyltKHYpbShlciwpaChwcmV2aW91c2x5KWUoYWRkZWQpZihiKW0oeSloKHkpbShvdSlnKG9yKWcoYiltCisoeSlnKGFycmFuZ2VtZW4pbSh0KTMzMCAxNjU4IHkobWFkZSloKGIpbSh5KWcodGhlKWgoc2FtZSlmKGVuKW0odGl0KW0KKyh5KWkoeSltKG91KWYoYXJlKWYoYWN0aW5nKWkob24pZShiKXMoZWhhbGYpZihvZiwpaih5KW0ob3UpZihtYSltKHkpZworKG5vdClmKGFkZClnKGFub3RoZXI7KWooYnV0KTMzMCAxNzY3IHkoeSltKG91KWMobWEpbSh5KWgocmVwbGFjZSlnKHRoZSkKK2Yob2xkKWcob25lLClpKG9uKWUoZXhwbGljaXQpaChwKXMoZXJtaXNzaW9uKWUoZnJvbSlnKHRoZSlpKHByZXZpb3VzKWUKKyhwdWJsaXNoZXIpZih0aGF0KTMzMCAxODc3IHkoYWRkZWQpZSh0aGUpZyhvbGQpaChvbmUuKTMzMAorMjAwOCB5KFRoZSkyNSBiKGF1dGhvclwoc1wpKWgoYW5kKWYocHVibGlzaGVyXChzXCkpZihvZilpKHRoZSlmKERvKXMKKyhjdW1lbiltKHQpaChkbylnKG5vdClmKGIpbSh5KWgodGhpcylmKExpY2Vuc2UpaChnaXYpbShlKWgocClzCisoZXJtaXNzaW9uKTMzMCAyMTE4IHkodG8payh1c2UpZih0aGVpcilnKG5hbWVzKWgoZm9yKWYocHVibGljaXQpbSh5KWcKKyhmb3IpaChvcilmKHRvKWgoYXNzZXJ0KWcob3IpZihpbXBseSlnKGVuZG9yc2VtZW4pbSh0KWcob2YpaChhbiltKHkpZworKE1vKXMoZGlcMDE0ZWQpMzMwIDIyMjggeShWKS04IGIoZXJzaW9uLikxOTkgMjM1OSB5KDUuKTYxCitiKENPTUJJTklORykzMSBiKERPQ1VNRU5UUykzMzAgMjQ5MSB5KFkpLTggYihvdSkzOSBiKG1hKW0oeSlnKGNvbSltCisoYmluZSloKHRoZSlmKERvKXMoY3VtZW4pbSh0KWcod2l0aClnKG90aGVyKWYoZG8pcyhjdW1lbiltKHRzKWgKKyhyZWxlYXNlZClnKHVuZGVyKWYodGhpcylnKExpY2Vuc2UsKTMzMCAyNjAwIHkodW5kZXIpZih0aGUpaCh0ZXJtcylnCisoZGVcMDE0bmVkKWYoaW4paChzZWN0aW9uKWgoNClnKGFiKXMobyltKHYpbShlKWcoZm9yKWYobW8pcyhkaVwwMTRlZClmCisodiltKGVyc2lvbnMsKWsocHJvKW0odmlkZWQpZCh0aGF0KWgoeSltKG91KTMzMCAyNzEwCit5KGluY2x1ZGUpMjUgYihpbilnKHRoZSlnKGNvbSltKGJpbmF0aW9uKWkoYWxsKWYob2YpZyh0aGUpZihJbiltKHYpLTUKK2IoYXJpYW4pbSh0KTI2IGIoU2VjdGlvbnMpZyhvZilnKGFsbClnKG9mKWYodGhlKWgob3JpZ2luYWwpZyhkbylzCisoY3VtZW4pbSh0cywpMzMwIDI4MTkgeSh1bm1vKXMoZGlcMDE0ZWQsKWcoYW5kKWcobGlzdCloKHRoZW0pZyhhbGwpZworKGFzKWcoSW4pbSh2KS01IGIoYXJpYW4pbSh0KTI4IGIoU2VjdGlvbnMpZihvZilnKHkpbShvdXIpZyhjb20pbShiaW5lZCkKK2codyltKG9yaylmKGluKWgoaXRzKWcobGljZW5zZSkzMzAgMjkyOSB5KG5vdGljZSwpMzIKK2IoYW5kKWUodGhhdCloKHkpbShvdSlmKHByZXNlcnYpbShlKWgoYWxsKWcodGhlaXIpZyhXKS04CitiKGFycmFuKW0odCltKHkpMzIgYihEaXNjbGFpbWVycy4pMzMwIDMwNjEgeShUaGUpZShjb20pbShiaW5lZClnKHcpbQorKG9yayloKG5lZWQpZShvbmx5KWkoY29uKW0odGFpbilnKG9uZSlnKGNvcCltKHkpZyhvZilmKHRoaXMpZyhMaWNlbnNlLCkKK2koYW5kKWQobSltKHVsdGlwbGUpaShpZGVuKW0odGljYWwpMzMwIDMxNzAgeShJbiltKHYpLTUKK2IoYXJpYW4pbSh0KTMzIGIoU2VjdGlvbnMpZyhtYSltKHkpZyhiKXMoZSlmKHJlcGxhY2VkKWgod2l0aClmKGEpaAorKHNpbmdsZSlnKGNvcCltKHkpLTggYiguKTQ4IGIoSWYpMzIgYih0aGVyZSloKGFyZSlnKG0pbSh1bHRpcGxlKWcoSW4pbQorKHYpLTUgYihhcmlhbiltKHQpMzMwIDMyODAgeShTZWN0aW9ucykyNyBiKHdpdGgpZyh0aGUpZyhzYW1lKWcobmFtZSlnCisoYnV0KWYoZGlcMDEzZXJlbiltKHQpaChjb24pbSh0ZW4pbSh0cywpaShtYWspbShlKWYodGhlKWYodGl0bGUpaChvZilmCisoZWFjKW0oaCloKHN1YyltKGgpZihzZWN0aW9uKTMzMCAzMzg5IHkodW5pcXVlKTMzIGIoYiltKHkpaChhZGRpbmcpZgorKGF0KWkodGhlKWYoZW5kKWcob2YpZyhpdCwpaChpbilmKHBhcmVuKW0odGhlc2VzLClpKHRoZSllKG5hbWUpZyhvZilnCisodGhlKWcob3JpZ2luYWwpaChhdXRob3IpZihvcikzMzAgMzQ5OSB5KHB1Ymxpc2hlcikyMworYihvZilpKHRoYXQpaChzZWN0aW9uKWcoaWYpZihrbm8pbSh3biwpaChvcilmKGVsc2UpaChhKWYodW5pcXVlKWYobiltCisodW0pbShiKXMoZXIuKTM4IGIoTWFrKW0oZSkyNiBiKHRoZSlnKHNhbWUpZihhZGp1c3RtZW4pbSh0KTMzMAorMzYwOCB5KHRvKWcodGhlKWcoc2VjdGlvbilnKHRpdGxlcyloKGluKWUodGhlKWgobGlzdClnKG9mKWYoSW4pbSh2KS01CitiKGFyaWFuKW0odCkyNiBiKFNlY3Rpb25zKWYoaW4pZih0aGUpZyhsaWNlbnNlKWkobm90aWNlKWcob2YpZSh0aGUpaAorKGNvbSltKGJpbmVkKTMzMCAzNzE4IHkodyltKG9yay4pMzMwIDM4NTAgeShJbik0MSBiKHRoZSlnKGNvbSltCisoYmluYXRpb24sKTQ2IGIoeSltKG91KTQxIGIobSltKHVzdClnKGNvbSltKGJpbmUpaChhbiltKHkpZyhzZWN0aW9ucylnCisoRW4pbSh0aXRsZWQpZyhcXEhpc3RvcnkiKWgoaW4pZSh0aGUpZyh2KS01IGIoYXJpLSkzMzAKKzM5NTkgeShvdXMpMzIgYihvcmlnaW5hbCloKGRvKXMoY3VtZW4pbSh0cywpZyhmb3JtaW5nKWYob25lKWcoc2VjdGlvbiloCisoRW4pbSh0aXRsZWQpZyhcXEhpc3RvcnkiOylpKGxpayltKGV3aXNlKWYoY29tKW0oYmluZSlmKGFuKW0oeSkzMzAKKzQwNjkgeShzZWN0aW9ucylnKEVuKW0odGl0bGVkKWYoXFxBYyltKGtubyltKHdsZWRnZW1lbiltKHRzIiwpayhhbmQpMzEKK2IoYW4pbSh5KWgoc2VjdGlvbnMpaChFbiltKHRpdGxlZClnKFxcRGVkaWNhdGlvbnMiLik0NworYihZKS04IGIob3UpMzMwIDQxNzggeShtKW0odXN0KTMwIGIoZGVsZXRlKWkoYWxsKWYoc2VjdGlvbnMpaChFbiltCisodGl0bGVkKWYoXFxFbmRvcnNlbWVuKW0odHMuIikxOTkgNDMxMCB5KDYuKTYxIGIoQ09MTEVDVElPTlMpMjgKK2IoT0YpaShET0NVTUVOVFMpMzMwIDQ0NDEgeShZKS04IGIob3UpMzIgYihtYSltKHkpaChtYWspbShlKWcoYSlmCisoY29sbGVjdGlvbilpKGNvbnNpc3RpbmcpZihvZilmKHRoZSlnKERvKXMoY3VtZW4pbSh0KWcoYW5kKWcob3RoZXIpZworKGRvKXMoY3VtZW4pbSh0cylmKHJlbGVhc2VkKTMzMCA0NTUxIHkodW5kZXIpNDEgYih0aGlzKWgoTGljZW5zZSwpaworKGFuZCljKHJlcGxhY2UpaCh0aGUpZyhpbmRpdmlkdWFsKWYoY29waWVzKWgob2YpZih0aGlzKWcoTGljZW5zZSloKGluKWYKKyh0aGUpaCh2KS01IGIoYXJpb3VzKTMzMCA0NjYxIHkoZG8pcyhjdW1lbiltKHRzKTQyIGIod2l0aClnKGEpaChzaW5nbGUpCitnKGNvcCltKHkpaCh0aGF0KWYoaXMpZihpbmNsdWRlZClnKGluKWcodGhlKWgoY29sbGVjdGlvbiwpNDgKK2IocHJvKW0odmlkZWQpNDIgYih0aGF0KWkoeSltKG91KTMzMCA0NzcwIHkoZm9sbG8pbSh3KTM4CitiKHRoZSlnKHJ1bGVzKWUob2YpaCh0aGlzKWcoTGljZW5zZSloKGZvcilmKHYpbShlcmJhdGltKWgoY29wKW0oeWluZylnCisob2YpZihlYWMpbShoKWgob2YpZih0aGUpaChkbylzKGN1bWVuKW0odHMpZShpbiloKGFsbCkzMzAKKzQ4ODAgeShvdGhlcikzMSBiKHJlc3ApcyhlY3RzLikzMzAgNTAxMSB5KFkpLTggYihvdSkzMgorYihtYSltKHkpZyhleHRyYWN0KWgoYSlmKHNpbmdsZSlnKGRvKXMoY3VtZW4pbSh0KWYoZnJvbSlnKHN1YyltKGgpZyhhKWgKKyhjb2xsZWN0aW9uLClpKGFuZClkKGRpc3RyaWJ1dGUpZyhpdCloKGluZGl2aWR1LSkzMzAKKzUxMjEgeShhbGx5KWsodW5kZXIpZCh0aGlzKWkoTGljZW5zZSwpaShwcm8pbSh2aWRlZCllKHkpbShvdSlnKGluc2VydClnCisoYSlnKGNvcCltKHkpaChvZilmKHRoaXMpZyhMaWNlbnNlKWcoaW4pbSh0byloKHRoZSlnKGV4dHJhY3RlZCkzMzAKKzUyMzAgeShkbylzKGN1bWVuKW0odCwpZChhbmQpZihmb2xsbyltKHcpaSh0aGlzKWUoTGljZW5zZSloKGluKWcoYWxsKWcKKyhvdGhlcilnKHJlc3ApcyhlY3RzKWYocmVnYXJkaW5nKWgodiltKGVyYmF0aW0pZyhjb3ApbSh5aW5nKWgob2YpMzMwCis1MzQwIHkodGhhdClkKGRvKXMoY3VtZW4pbSh0LilwIGVvcCBlbmQKKyUlUGFnZTogMjYgMzAKK1RlWERpY3QgYmVnaW4gMjYgMjkgYm9wIDE1MCAtMTE2IGEgRm8oMjYpMjYwMCBiKEdOVSkzMQorYihSZWFkbGluZSlnKExpYnJhcnkpMTk5IDI5OSB5KDcuKTYxIGIoQSltKEdHUkVHQSktOAorYihUSU9OKTMyIGIoV0lUSCllKElOREVQRU5ERU5UKWgoVyltKE9SS1MpMzMwIDQyOCB5KEEpZChjb21waWxhdGlvbilpCisob2YpZSh0aGUpZyhEbylzKGN1bWVuKW0odCloKG9yKWYoaXRzKWcoZGVyaXYpLTUgYihhdGl2KW0oZXMpMzAKK2Iod2l0aClkKG90aGVyKWkoc2VwYXJhdGUpZyhhbmQpZShpbmRlcClzKGVuZGVuKW0odCkzMzAKKzUzOCB5KGRvKXMoY3VtZW4pbSh0cykzMyBiKG9yKWcodyltKG9ya3MsKWgoaW4pZihvciloKG9uKWYoYSlnKHYpbQorKG9sdW1lKWgob2YpZyhhKWYoc3RvcmFnZSlpKG9yKWUoZGlzdHJpYnV0aW9uKWcobWVkaXVtLClnKGlzKWgoY2FsbGVkKQorMzMwIDY0OCB5KGFuKWMoXFxhZ2dyZWdhdGUiKWsoaWYpYyh0aGUpZyhjb3ApbSh5cmlnaCltKHQpaShyZXN1bHRpbmcpZQorKGZyb20pZih0aGUpaShjb21waWxhdGlvbilnKGlzKWYobm90KWgodXNlZCllKHRvKWkobGltaXQpZyh0aGUpMzMwCis3NTcgeShsZWdhbClkKHJpZ2gpbSh0cylmKG9mKWcodGhlKWcoY29tcGlsYXRpb24ncyloKHVzZXJzKWUoYilzKGV5KW0KKyhvbmQpZyh3aGF0KWcodGhlKWgoaW5kaXZpZHVhbClmKHcpbShvcmtzKWcocClzKGVybWl0LikzOQorYihXaGVuKTMzMCA4NjcgeSh0aGUpMjggYihEbylzKGN1bWVuKW0odClnKGlzKWcoaW5jbHVkZWQpZihhbilnCisoYWdncmVnYXRlLCkzMiBiKHRoaXMpMjcgYihMaWNlbnNlKWgoZG8pcyhlcylnKG5vdClnKGFwcGx5KWYodG8paCh0aGUpZworKG90aGVyKWcodyltKG9ya3MpMzMwIDk3NiB5KGluKWkodGhlKWgoYWdncmVnYXRlKWkod2hpYyltKGgpZChhcmUpaAorKG5vdClmKHRoZW1zZWx2KW0oZXMpaShkZXJpdiktNSBiKGF0aXYpbShlKTMyIGIodyltKG9ya3MpZShvZiloKHRoZSlmCisoRG8pcyhjdW1lbiltKHQuKTMzMCAxMTA2IHkoSWYpMjIgYih0aGUpaChDbyltKHYpbShlciloKFQpLTgKK2IoZXh0KTIzIGIocmVxdWlyZW1lbiltKHQpZyhvZilnKHNlY3Rpb24paCgzKWYoaXMpZyhhcHBsaWNhYmxlKWgodG8pZgorKHRoZXNlKWgoY29waWVzKWYob2YpZyh0aGUpZyhEbylzKGN1bWVuKW0odCwpMzMwIDEyMTUKK3kodGhlbilmKGlmKWcodGhlKWgoRG8pcyhjdW1lbiltKHQpZyhpcylnKGxlc3MpZih0aGFuKWcob25lKWgoaGFsZilmCisob2YpaCh0aGUpZyhlbiltKHRpcmUpZyhhZ2dyZWdhdGUsKWsodGhlKWMoRG8pcyhjdW1lbiltKHQncylnKENvKW0odiltCisoZXIpMzMwIDEzMjUgeShUKS04IGIoZXh0cykyNyBiKG1hKW0oeSlnKGIpcyhlKWYocGxhY2VkKWgob24pZyhjbyltKHYpbQorKGVycyloKHRoYXQpZihicmFjKW0oayltKGV0KWgodGhlKWYoRG8pcyhjdW1lbiltKHQpZyh3aXRoaW4pZih0aGUpaAorKGFnZ3JlZ2F0ZSwpaihvcilkKHRoZSkzMzAgMTQzNSB5KGVsZWN0cm9uaWMpMzcgYihlcXVpdiktNQorYihhbGVuKW0odCkzNiBiKG9mKWcoY28pbSh2KW0oZXJzKWcoaWYpZih0aGUpZyhEbylzKGN1bWVuKW0odCloKGlzKWYKKyhpbilnKGVsZWN0cm9uaWMpaShmb3JtLik1NCBiKE90aGVyd2lzZSkzNSBiKHRoZXkpMzMwCisxNTQ0IHkobSltKHVzdCkzMCBiKGFwcClzKGVhcilnKG9uKWcocHJpbiltKHRlZClnKGNvKW0odiltKGVycylpKHRoYXQpZgorKGJyYWMpbShrKW0oZXQpaCh0aGUpZih3aG9sZSlmKGFnZ3JlZ2F0ZS4pMTk5IDE2NzQgeSg4Lik2MQorYihUUkFOU0xBKS04IGIoVElPTikzMzAgMTgwMyB5KFQpZyhyYW5zbGF0aW9uKTQxIGIoaXMpZihjb25zaWRlcmVkKWYoYSkKK2koa2luZCllKG9mKWgobW8pcyhkaVwwMTRjYXRpb24sKWooc28pZCh5KW0ob3UpZyhtYSltKHkpaChkaXN0cmlidXRlKWUKKyh0cmFuc2xhdGlvbnMpMzMwIDE5MTMgeShvZik0NSBiKHRoZSlmKERvKXMoY3VtZW4pbSh0KWgodW5kZXIpZSh0aGUpaAorKHRlcm1zKWgob2YpZihzZWN0aW9uKWkoNC4pODMgYihSZXBsYWNpbmcpNDUgYihJbiltKHYpLTUKK2IoYXJpYW4pbSh0KTQ1IGIoU2VjdGlvbnMpZyh3aXRoKTMzMCAyMDIyIHkodHJhbnNsYXRpb25zKWgocmVxdWlyZXMpZgorKHNwKXMoZWNpYWwpaChwKXMoZXJtaXNzaW9uKWYoZnJvbSlnKHRoZWlyKWcoY29wKW0oeXJpZ2gpbSh0KWkKKyhob2xkZXJzLClpKGJ1dCljKHkpbShvdSlnKG1hKW0oeSkzMzAgMjEzMiB5KGluY2x1ZGUpMjQKK2IodHJhbnNsYXRpb25zKWkob2YpZShzb21lKWgob3IpZyhhbGwpZyhJbiltKHYpLTUgYihhcmlhbiltKHQpMjUKK2IoU2VjdGlvbnMpZyhpbilmKGFkZGl0aW9uKWgodG8pZyh0aGUpZyhvcmlnaW5hbCloKHYpbShlcnNpb25zKTMzMAorMjI0MiB5KG9mKTMyIGIodGhlc2UpZihJbiltKHYpLTUgYihhcmlhbiltKHQpMzMgYihTZWN0aW9ucy4pNDQKK2IoWSktOCBiKG91KTMyIGIobWEpbSh5KWcoaW5jbHVkZSlmKGEpaCh0cmFuc2xhdGlvbilnKG9mKWcodGhpcylmCisoTGljZW5zZSwpaShhbmQpZChhbGwpaih0aGUpMzMwIDIzNTEgeShsaWNlbnNlKTQyIGIobm90aWNlcylnKGluKWYodGhlKQoraChEbylzKGN1bWVuKW0odCwpaihhbmQpNDAgYihhbiltKHkpaShXKS04IGIoYXJyYW4pbSh0KW0oeSk0MgorYihEaXNjbGFpbWVycywpayhwcm8pbSh2aWRlZCk0MSBiKHRoYXQpaCh5KW0ob3UpMzMwIDI0NjEKK3koYWxzbylmKGluY2x1ZGUpZih0aGUpZyhvcmlnaW5hbCloKEVuZ2xpc2gpZih2KW0oZXJzaW9uKWcob2YpZyh0aGlzKWcKKyhMaWNlbnNlKWgoYW5kKWUodGhlKWgob3JpZ2luYWwpaCh2KW0oZXJzaW9ucylnKG9mKTMzMAorMjU3MCB5KHRob3NlKTM1IGIobm90aWNlcylnKGFuZCllKGRpc2NsYWltZXJzLik1MyBiKEluKTMzCitiKGNhc2UpaShvZilnKGEpZihkaXNhZ3JlZW1lbiltKHQpaChiKXMoZXQpbSh3KW0oZWVuKWcodGhlKWYKKyh0cmFuc2xhdGlvbilpKGFuZCkzMzAgMjY4MCB5KHRoZSlmKG9yaWdpbmFsKWkodiltKGVyc2lvbillKG9mKWgodGhpcylmCisoTGljZW5zZSloKG9yKWYoYSlnKG5vdGljZSlpKG9yKWUoZGlzY2xhaW1lciwpaSh0aGUpZihvcmlnaW5hbClnKHYpbQorKGVyc2lvbilnKHdpbGwpMzMwIDI3OTAgeShwcmV2KS01IGIoYWlsLikzMzAgMjkxOSB5KElmKTI4CitiKGEpaChzZWN0aW9uKWgoaW4pZSh0aGUpaChEbylzKGN1bWVuKW0odCloKGlzKWUoRW4pbSh0aXRsZWQpaShcXEFjKW0KKyhrbm8pbSh3bGVkZ2VtZW4pbSh0cyIsKWkoXFxEZWRpY2F0aW9ucyIsKWcob3IpZChcXEhpcy0pMzMwCiszMDI5IHkodG9yeSIsKWYodGhlKWYocmVxdWlyZW1lbiltKHQpZihcKHNlY3Rpb24paSg0XCkpZih0bylnKFByZXNlcnYpbQorKGUpZyhpdHMpZihUaXRsZSlpKFwoc2VjdGlvbilmKDFcKSlnKHdpbGwpZyh0KW0oeXBpY2FsbHkpaChyZXF1aXJlKTMzMAorMzEzOCB5KGMpbShoYW5naW5nKWoodGhlKWcoYWN0dWFsKWgodGl0bGUuKTE5OSAzMjY4IHkoOS4pNjEKK2IoVEVSTUlOQSktOCBiKFRJT04pMzMwIDMzOTcgeShZKWcob3UpMzAgYihtYSltKHkpaChub3QpZihjb3ApbSh5KS04CitiKCwpMzEgYihtbylzKGRpZnkpLTggYigsKTMwIGIoc3VibGljZW5zZSwpZyhvcilnKGRpc3RyaWJ1dGUpZih0aGUpaAorKERvKXMoY3VtZW4pbSh0KWcoZXhjZXB0KWgoYXMpZihleHByZXNzbHkpMzMwIDM1MDcgeShwcm8pbSh2aWRlZCk0MQorYihmb3IpaCh1bmRlcillKHRoaXMpaShMaWNlbnNlLik3NSBiKEFuKW0oeSk0MiBiKG90aGVyKWcoYXR0ZW1wdCloKHRvKWcKKyhjb3ApbSh5KS04IGIoLCk0NiBiKG1vKXMoZGlmeSktOCBiKCwpNDQgYihzdWJsaWNlbnNlKWUob3IpMzMwCiszNjE2IHkoZGlzdHJpYnV0ZSkzNiBiKHRoZSloKERvKXMoY3VtZW4pbSh0KWcoaXMpZyh2KW0ob2lkLClpKGFuZClkCisod2lsbCloKGF1dG9tYXRpY2FsbHkpaSh0ZXJtaW5hdGUpZih5KW0ob3VyKWUocmlnaCltKHRzKWgodW5kZXIpMzMwCiszNzI2IHkodGhpcykyOCBiKExpY2Vuc2UuKTQwIGIoSG8pbSh3KW0oZXYpbShlciwpMzEgYihwYXJ0aWVzKWQod2hvKWYKKyhoYSltKHYpbShlKWkocmVjZWl2KW0oZWQpZyhjb3BpZXMsKWgob3IpZChyaWdoKW0odHMsKWkoZnJvbSlmKHkpbShvdSlnCisodW5kZXIpZSh0aGlzKTMzMCAzODM2IHkoTGljZW5zZSkzNyBiKHdpbGwpZyhub3QpZyhoYSltKHYpbShlKWgodGhlaXIpZgorKGxpY2Vuc2VzKWcodGVybWluYXRlZCloKHNvKWYobG9uZylnKGFzKWcoc3VjKW0oaClmKHBhcnRpZXMpaChyZW1haW4pZworKGluKWYoZnVsbCkzMzAgMzk0NSB5KGNvbXBsaWFuY2UuKTE1NCA0MDc1IHkoMTAuKTYxIGIoRlVUVVJFKTMwCitiKFJFVklTSU9OUylmKE9GKWkoVEhJUyllKExJQ0VOU0UpMzMwIDQyMDQgeShUaGUpNDEgYihGKS04CitiKHJlZSk0MyBiKFNvZnQpbSh3KW0oYXJlKWYoRiktOCBiKG91bmRhdGlvbik0MyBiKG1hKW0oeSlmKHB1Ymxpc2gpZQorKG5ldywpayhyZXZpc2VkKWQodiltKGVyc2lvbnMpaChvZilnKHRoZSlnKEdOVSlnKEYpLTgKK2IocmVlKTMzMCA0MzE0IHkoRG8pcyhjdW1lbiltKHRhdGlvbikzNCBiKExpY2Vuc2UpZShmcm9tKWcodGltZSloKHRvKWcKKyh0aW1lLik0NiBiKFN1YyltKGgpMzEgYihuZXcpaCh2KW0oZXJzaW9ucylnKHdpbGwpaChiKXMoZSllKHNpbWlsYXIpaAorKGluKWcoc3Bpcml0KTMzMCA0NDIzIHkodG8paih0aGUpZyhwcmVzZW4pbSh0KWYodiltKGVyc2lvbiwpaShidXQpZShtYSkKK20oeSloKGRpXDAxM2VyKWYoaW4pZyhkZXRhaWwpaCh0bylnKGFkZHJlc3MpZihuZXcpZyhwcm9ibGVtcylmKG9yKWkKKyhjb25jZXJucy4pMzMwIDQ1MzMgeShTZWUpYyBGbihodHRwOi8vd3d3LmdudS5vcmcvY29weSlvKGxlZnQpbygvKXAKK0ZvKC4pMzMwIDQ2NjMgeShFYWMpbShoKWYodiltKGVyc2lvbilnKG9mKWcodGhlKWYoTGljZW5zZSloKGlzKWcoZ2l2KW0KKyhlbilnKGEpZyhkaXN0aW5ndWlzaGluZylmKHYpbShlcnNpb24paChuKW0odW0pbShiKXMoZXIuKTM5CitiKElmKTI5IGIodGhlKWcoRG8pcyhjdW1lbiltKHQpMzMwIDQ3NzIgeShzcClzKGVjaVwwMTRlcyk0NQorYih0aGF0KWgoYSlnKHBhcnRpY3VsYXIpZihuKW0odW0pbShiKXMoZXJlZClmKHYpbShlcnNpb24paShvZilmKHRoaXMpZworKExpY2Vuc2UpaChcXG9yKWcoYW4pbSh5KWcobGF0ZXIpZyh2KW0oZXJzaW9uIikzMzAgNDg4MgoreShhcHBsaWVzKTMzIGIodG8pZyhpdCwpaCh5KW0ob3UpZShoYSltKHYpbShlKWkodGhlKWYob3B0aW9uKWcob2YpZgorKGZvbGxvKW0od2luZylpKHRoZSlmKHRlcm1zKWYoYW5kKWcoY29uZGl0aW9ucyloKGVpdGhlcilnKG9mKWYodGhhdCkzMzAKKzQ5OTEgeShzcClzKGVjaVwwMTRlZCkzNyBiKHYpbShlcnNpb24paShvcillKG9mKWgoYW4pbSh5KWgobGF0ZXIpZyh2KW0KKyhlcnNpb24pZih0aGF0KWcoaGFzKWcoYilzKGVlbilmKHB1Ymxpc2hlZClmKFwobm90KWooYXMpZihhKWcoZHJhZnRcKSlnCisoYiltKHkpMzMwIDUxMDEgeSh0aGUpMzMgYihGKS04IGIocmVlKTM0IGIoU29mdCltKHcpbShhcmUpZihGKS04CitiKG91bmRhdGlvbi4pNDkgYihJZikzMiBiKHRoZSloKERvKXMoY3VtZW4pbSh0KWcoZG8pcyhlcylnKG5vdClnKHNwKXMKKyhlY2lmeSlmKGEpaCh2KW0oZXJzaW9uKWcobiltKHVtKW0oYilzKGVyKWYob2YpMzMwIDUyMTAKK3kodGhpcylpKExpY2Vuc2UsKWooeSltKG91KWQobWEpbSh5KWkoYyltKGhvKXMob3NlKWYoYW4pbSh5KWcodiltCisoZXJzaW9uKWcoZXYpbShlcilnKHB1Ymxpc2hlZCllKFwobm90KWkoYXMpZyhhKWYoZHJhZnRcKSloKGIpbSh5KWYodGhlKQoraChGKS04IGIocmVlKTMzMCA1MzIwIHkoU29mdCltKHcpbShhcmUpMzEgYihGKS04IGIob3VuZGF0aW9uLilwCitlb3AgZW5kCislJVBhZ2U6IDI3IDMxCitUZVhEaWN0IGJlZ2luIDI3IDMwIGJvcCAxNTAgLTExNiBhIEZvKEFwcClzKGVuZGl4KTI5CitiKEE6KWgoQ29wKW0oeWluZyloKFRoaXMpZihNYW4pbSh1YWwpMjEwNSBiKDI3KTE1MCAyOTkKK3kgRmMoQS4xLjEpNjIgYihBRERFTkRVTTopNDEgYihIbyltKHcpZyh0bylnKHVzZSlnKHRoaXMpZyhMaWNlbnNlKWcKKyhmb3IpaCh5KW0ob3VyKWYoZG8pcyhjdW1lbiltKHRzKTI3NSA1NDMgeSBGbyhUKS04IGIobykyNworYih1c2UpZyh0aGlzKWcoTGljZW5zZSloKGluKWYoYSloKGRvKXMoY3VtZW4pbSh0KWYoeSltKG91KWgoaGEpbSh2KW0oZSkKK2cod3JpdHRlbiwpZyhpbmNsdWRlKWYoYSloKGNvcCltKHkpZyhvZilmKHRoZSloKExpY2Vuc2UpZyhpbilmKHRoZSkxNTAKKzY1MyB5KGRvKXMoY3VtZW4pbSh0KWooYW5kKWcocHV0KWcodGhlKWcoZm9sbG8pbSh3aW5nKWkoY29wKW0oeXJpZ2gpbQorKHQpZyhhbmQpZShsaWNlbnNlKWgobm90aWNlcylnKGp1c3QpZihhZnRlciloKHRoZSlnKHRpdGxlKWgocGFnZTopNDY4Cis3NjUgeSBGYihDb3B5cmlnaHQpNDIgYihcKENcKSk3OSBiIEZhKHllYXIpODggYih5b3VyKTQwCitiKG5hbWUpcCBGYiguKTQ2OCA4NTIgeShQZXJtaXNzaW9uKWkoaXMpZShncmFudGVkKWcodG8pZyhjb3B5LCloCisoZGlzdHJpYnV0ZSlnKGFuZC9vcilnKG1vZGlmeSlmKHRoaXMpZyhkb2N1bWVudCk0NjggOTM5Cit5KHVuZGVyKWgodGhlKWYodGVybXMpZyhvZilnKHRoZSlnKEdOVSlnKEZyZWUpZyhEb2N1bWVudGF0aW9uKWkKKyhMaWNlbnNlLClmKFZlcnNpb24pZygxLjIpNDY4IDEwMjYgeShvcilmKGFueSlnKGxhdGVyKWcodmVyc2lvbiloCisocHVibGlzaGVkKWgoYnkpZCh0aGUpaChGcmVlKWcoU29mdHdhcmUpaChGb3VuZGF0aW9uOyk0NjgKKzExMTMgeSh3aXRoKWcobm8pZShJbnZhcmlhbnQpaihTZWN0aW9ucywpZihubylmKEZyb250LUNvdmVyKWgoVGV4dHMsKWcKKyhhbmQpZihubylmKEJhY2stQ292ZXIpaihUZXh0cy4pNDY4IDEyMDAgeShBKWUoY29weSlnKG9mKWcodGhlKWcKKyhsaWNlbnNlKWcoaXMpZyhpbmNsdWRlZCloKGluKWYodGhlKWcoc2VjdGlvbiloKGVudGl0bGVkKWcoYGBHTlUpNDY4CisxMjg4IHkoRnJlZSlnKERvY3VtZW50YXRpb24paChMaWNlbnNlJycuKTI3NSAxNDEwIHkgRm8oSWYpZCh5KW0ob3UpaAorKGhhKW0odiltKGUpaChJbiltKHYpLTUgYihhcmlhbiltKHQpNDEgYihTZWN0aW9ucywpaShGKS04CitiKHJvbiltKHQtQ28pbSh2KW0oZXIpNDIgYihUKS04IGIoZXh0cyk0MSBiKGFuZCllKEJhYyltKGstQ28pbSh2KW0oZXIpaworKFQpLTggYihleHRzLCk0MyBiKHJlcGxhY2UpZSh0aGUpMTUwIDE1MjAgeShcXHdpdGguLi5UKS04CitiKGV4dHMuIik0MyBiKGxpbmUpMzAgYih3aXRoKWgodGhpczopNTQ3IDE2MzIgeSBGYih3aXRoKTQwCitiKHRoZSlnKEludmFyaWFudCloKFNlY3Rpb25zKWcoYmVpbmcpZyBGYShsaXN0KWYodGhlaXIpZyh0aXRsZXMpcAorRmIoLCloKHdpdGgpNTQ3IDE3MTkgeSh0aGUpZihGcm9udC1Db3ZlcilpKFRleHRzKWUoYmVpbmcpZworRmEobGlzdClwIEZiKCwpaChhbmQpZih3aXRoKWcodGhlKWcoQmFjay1Db3ZlciloKFRleHRzKTU0NworMTgwNiB5KGJlaW5nKWYgRmEobGlzdClwIEZiKC4pMjc1IDE5MjkgeSBGbyhJZikzNCBiKHkpbShvdSlpKGhhKW0odiltCisoZSlnKEluKW0odiktNSBiKGFyaWFuKW0odCkzNiBiKFNlY3Rpb25zKWcod2l0aG91dClmKENvKW0odiltKGVyKWgoVCktOAorYihleHRzLCkzOCBiKG9yKWQoc29tZSlnKG90aGVyKWgoY29tKW0oYmluYXRpb24pZyhvZilnKHRoZSkxNTAKKzIwMzggeSh0aHJlZSwpMzEgYihtZXJnZSlnKHRob3NlKWcodCltKHcpbShvKWcoYWx0ZXJuYXRpdiltKGVzKWkodG8pZQorKHN1aXQpZih0aGUpaChzaXR1YXRpb24uKTI3NSAyMTczIHkoSWYpMjMgYih5KW0ob3VyKWgoZG8pcyhjdW1lbiltKHQpZgorKGNvbiltKHRhaW5zKWkobm9uKW0odHJpdmlhbClnKGV4YW1wbGVzKWcob2YpZihwcm9ncmFtKWYoY28pcyhkZSwpaih3KW0KKyhlKWUocmVjb21tZW5kKWcocmVsZWFzaW5nKTE1MCAyMjgzIHkodGhlc2UpNDQgYihleGFtcGxlcylmKGluKWcKKyhwYXJhbGxlbCloKHVuZGVyKWUoeSltKG91ciloKGMpbShob2ljZSlpKG9mKWUoZnJlZSlnKHNvZnQpbSh3KW0oYXJlKWgKKyhsaWNlbnNlLClrKHN1YyltKGgpNDMgYihhcylnKHRoZSlnKEdOVSkxNTAgMjM5MiB5KEdlbmVyYWwpMzEKK2IoUHVibGljKWYoTGljZW5zZSwpaSh0bylmKHApcyhlcm1pdCllKHRoZWlyKWkodXNlKWYoaW4pZyhmcmVlKWcoc29mdCltCisodyltKGFyZS4pcCBlb3AgZW5kCislJVBhZ2U6IDI4IDMyCitUZVhEaWN0IGJlZ2luIDI4IDMxIGJvcCAxNTAgLTExNiBhIEZvKDI4KTI2MDAgYihHTlUpMzEKK2IoUmVhZGxpbmUpZyhMaWJyYXJ5KXAgZW9wIGVuZAorJSVUcmFpbGVyCisKIHVzZXJkaWN0IC9lbmQtaG9vayBrbm93bntlbmQtaG9va31pZgogJSVFT0YKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2RvYy9ybHVzZXJtYW4udGV4aSBiL3JlYWRsaW5lL2RvYy9ybHVzZXJtYW4udGV4aQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYjgwYjMxCi0tLSAvZGV2L251bGwKKysrIGIvcmVhZGxpbmUvZG9jL3JsdXNlcm1hbi50ZXhpCkBAIC0wLDAgKzEsODggQEAKK1xpbnB1dCB0ZXhpbmZvICAgIEBjIC0qLXRleGluZm8tKi0KK0Bjb21tZW50ICUqKnN0YXJ0IG9mIGhlYWRlciAoVGhpcyBpcyBmb3IgcnVubmluZyBUZXhpbmZvIG9uIGEgcmVnaW9uLikKK0BzZXRmaWxlbmFtZSBybHVzZXJtYW4uaW5mbworQHNldHRpdGxlIEdOVSBSZWFkbGluZSBMaWJyYXJ5CitAY29tbWVudCAlKiplbmQgb2YgaGVhZGVyIChUaGlzIGlzIGZvciBydW5uaW5nIFRleGluZm8gb24gYSByZWdpb24uKQorCitAc2V0Y2hhcHRlcm5ld3BhZ2Ugb2RkCisKK0BpbmNsdWRlIHZlcnNpb24udGV4aQorCitAY29weWluZworVGhpcyBtYW51YWwgZGVzY3JpYmVzIHRoZSBlbmQgdXNlciBpbnRlcmZhY2Ugb2YgdGhlIEdOVSBSZWFkbGluZSBMaWJyYXJ5CisodmVyc2lvbiBAdmFsdWV7VkVSU0lPTn0sIEB2YWx1ZXtVUERBVEVEfSksIGEgbGlicmFyeSB3aGljaCBhaWRzIGluIHRoZQorY29uc2lzdGVuY3kgb2YgdXNlciBpbnRlcmZhY2UgYWNyb3NzIGRpc2NyZXRlIHByb2dyYW1zIHdoaWNoIHByb3ZpZGUKK2EgY29tbWFuZCBsaW5lIGludGVyZmFjZS4KKworQ29weXJpZ2h0IEBjb3B5cmlnaHR7fSAxOTg4LTIwMDUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKK1Blcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBtYWtlIGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcyBvZgordGhpcyBtYW51YWwgcHJvdmlkZWQgdGhlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UKK2FyZSBwcmVzZXJ2ZWQgb24gYWxsIGNvcGllcy4KKworQHF1b3RhdGlvbgorUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGlzIGRvY3VtZW50Cit1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBGcmVlIERvY3VtZW50YXRpb24gTGljZW5zZSwgVmVyc2lvbiAxLjEgb3IKK2FueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB3aXRoIG5vCitJbnZhcmlhbnQgU2VjdGlvbnMsIHdpdGggdGhlIEZyb250LUNvdmVyIHRleHRzIGJlaW5nIGBgQSBHTlUgTWFudWFsLCcnCithbmQgd2l0aCB0aGUgQmFjay1Db3ZlciBUZXh0cyBhcyBpbiAoYSkgYmVsb3cuICBBIGNvcHkgb2YgdGhlIGxpY2Vuc2UgaXMKK2luY2x1ZGVkIGluIHRoZSBzZWN0aW9uIGVudGl0bGVkIGBgR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlLicnCisKKyhhKSBUaGUgRlNGJ3MgQmFjay1Db3ZlciBUZXh0IGlzOiBgYFlvdSBoYXZlIGZyZWVkb20gdG8gY29weSBhbmQgbW9kaWZ5Cit0aGlzIEdOVSBNYW51YWwsIGxpa2UgR05VIHNvZnR3YXJlLiAgQ29waWVzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQorU29mdHdhcmUgRm91bmRhdGlvbiByYWlzZSBmdW5kcyBmb3IgR05VIGRldmVsb3BtZW50LicnCitAZW5kIHF1b3RhdGlvbgorQGVuZCBjb3B5aW5nCisKK0BkaXJjYXRlZ29yeSBMaWJyYXJpZXMKK0BkaXJlbnRyeQorKiBSTHVzZXJtYW46IChybHVzZXJtYW4pLiAgICAgICBUaGUgR05VIHJlYWRsaW5lIGxpYnJhcnkgVXNlcidzIE1hbnVhbC4KK0BlbmQgZGlyZW50cnkKKworQHRpdGxlcGFnZQorQHRpdGxlIEdOVSBSZWFkbGluZSBMaWJyYXJ5IFVzZXIgSW50ZXJmYWNlCitAc3VidGl0bGUgRWRpdGlvbiBAdmFsdWV7RURJVElPTn0sIGZvciBAY29kZXtSZWFkbGluZSBMaWJyYXJ5fSBWZXJzaW9uIEB2YWx1ZXtWRVJTSU9OfS4KK0BzdWJ0aXRsZSBAdmFsdWV7VVBEQVRFRC1NT05USH0KK0BhdXRob3IgQ2hldCBSYW1leSwgQ2FzZSBXZXN0ZXJuIFJlc2VydmUgVW5pdmVyc2l0eQorQGF1dGhvciBCcmlhbiBGb3gsIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorCitAcGFnZQorQHZza2lwIDBwdCBwbHVzIDFmaWxsbAorQGluc2VydGNvcHlpbmcKKworQHNwIDEKK1B1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIEAqCis1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQCoKK0Jvc3RvbiwgTUEgMDIxMTEtMTMwNyBAKgorVVNBIEAqCisKK0BlbmQgdGl0bGVwYWdlCisKK0Bjb250ZW50cworCitAaWZub3R0ZXgKK0Bub2RlIFRvcAorQHRvcCBHTlUgUmVhZGxpbmUgTGlicmFyeQorCitUaGlzIGRvY3VtZW50IGRlc2NyaWJlcyB0aGUgZW5kIHVzZXIgaW50ZXJmYWNlIG9mIHRoZSBHTlUgUmVhZGxpbmUgTGlicmFyeSwKK2EgdXRpbGl0eSB3aGljaCBhaWRzIGluIHRoZSBjb25zaXN0ZW5jeSBvZiB1c2VyIGludGVyZmFjZSBhY3Jvc3MgZGlzY3JldGUKK3Byb2dyYW1zIHdoaWNoIHByb3ZpZGUgYSBjb21tYW5kIGxpbmUgaW50ZXJmYWNlLgorCitAbWVudQorKiBDb21tYW5kIExpbmUgRWRpdGluZzo6CSAgIEdOVSBSZWFkbGluZSBVc2VyJ3MgTWFudWFsLgorKiBDb3B5aW5nIFRoaXMgTWFudWFsOjoJCUNvcHlpbmcgVGhpcyBNYW51YWwuCitAZW5kIG1lbnUKK0BlbmQgaWZub3R0ZXgKKworQGluY2x1ZGUgcmx1c2VyLnRleGkKKworQG5vZGUgQ29weWluZyBUaGlzIE1hbnVhbAorQGFwcGVuZGl4IENvcHlpbmcgVGhpcyBNYW51YWwKKworQG1lbnUKKyogR05VIEZyZWUgRG9jdW1lbnRhdGlvbiBMaWNlbnNlOjoJTGljZW5zZSBmb3IgY29weWluZyB0aGlzIG1hbnVhbC4KK0BlbmQgbWVudQorCitAaW5jbHVkZSBmZGwudGV4aQorCitAYnllCmRpZmYgLS1naXQgYS9yZWFkbGluZS9kb2MvdGV4aTJkdmkgYi9yZWFkbGluZS9kb2MvdGV4aTJkdmkKaW5kZXggYzE4Njg0OC4uYzBiY2MwYSAxMDA3NTUKLS0tIGEvcmVhZGxpbmUvZG9jL3RleGkyZHZpCisrKyBiL3JlYWRsaW5lL2RvYy90ZXhpMmR2aQpAQCAtMiw3ICsyLDggQEAKICMgdGV4aTJkdmkgLS0tIHByb2R1Y2UgRFZJIChvciBQREYpIGZpbGVzIGZyb20gVGV4aW5mbyAob3IgTGFUZVgpIHNvdXJjZXMuCiAjICRJZCQKICMKLSMgQ29weXJpZ2h0IChDKSAxOTkyLCA5MywgOTQsIDk1LCA5NiwgOTcsIDk4LCA5OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAxLAorIyAyMDAyLCAyMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogIwogIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQpAQCAtMjksOSArMzAsOSBAQAogcmNzX3JldmlzaW9uPSckUmV2aXNpb24kJwogcmNzX3ZlcnNpb249YHNldCAtICRyY3NfcmV2aXNpb247IGVjaG8gJDJgCiBwcm9ncmFtPWBlY2hvICQwIHwgc2VkIC1lICdzIS4qLyEhJ2AKLXZlcnNpb249InRleGkyZHZpIChHTlUgVGV4aW5mbyA0LjApICRyY3NfdmVyc2lvbgordmVyc2lvbj0idGV4aTJkdmkgKEdOVSBUZXhpbmZvIDQuNSkgJHJjc192ZXJzaW9uCiAKLUNvcHlyaWdodCAoQykgMTk5OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KK0NvcHlyaWdodCAoQykgMjAwMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIFRoZXJlIGlzIE5PIHdhcnJhbnR5LiAgWW91IG1heSByZWRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZQogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZXNlIG1hdHRlcnMsIHNlZSB0aGUgZmlsZXMgbmFtZWQgQ09QWUlORy4iCkBAIC00Niw0NiArNDcsNTIgQEAKIE1ha2VpbmZvIGlzIHVzZWQgdG8gcGVyZm9ybSBUZXhpbmZvIG1hY3JvIGV4cGFuc2lvbiBiZWZvcmUgcnVubmluZyBUZVgKIHdoZW4gbmVlZGVkLgogCi1PcHRpb25zOgotICAtQCAgICAgICAgICAgICAgICAgICBVc2UgQGlucHV0IGluc3RlYWQgb2YgXGlucHV0OyBmb3IgcHJlbG9hZGVkIFRleGluZm8uCi0gIC1iLCAtLWJhdGNoICAgICAgICAgIE5vIGludGVyYWN0aW9uLgotICAtYywgLS1jbGVhbiAgICAgICAgICBSZW1vdmUgYWxsIGF1eGlsaWFyeSBmaWxlcy4KLSAgLUQsIC0tZGVidWcgICAgICAgICAgVHVybiBvbiBzaGVsbCBkZWJ1Z2dpbmcgKHNldCAteCkuCi0gIC1lLCAtLWV4cGFuZCAgICAgICAgIEZvcmNlIG1hY3JvIGV4cGFuc2lvbiB1c2luZyBtYWtlaW5mby4KLSAgLUkgRElSICAgICAgICAgICAgICAgU2VhcmNoIERJUiBmb3IgVGV4aW5mbyBmaWxlcy4KLSAgLWgsIC0taGVscCAgICAgICAgICAgRGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXQgc3VjY2Vzc2Z1bGx5LgotICAtbCwgLS1sYW5ndWFnZT1MQU5HICBTcGVjaWZ5IHRoZSBMQU5HIG9mIEZJTEU6IExhVGVYIG9yIFRleGluZm8uCi0gIC1wLCAtLXBkZiAgICAgICAgICAgIFVzZSBwZGZ0ZXggb3IgcGRmbGF0ZXggZm9yIHByb2Nlc3NpbmcuCi0gIC1xLCAtLXF1aWV0ICAgICAgICAgIE5vIG91dHB1dCB1bmxlc3MgZXJyb3JzIChpbXBsaWVzIC0tYmF0Y2gpLgotICAtcywgLS1zaWxlbnQgICAgICAgICBTYW1lIGFzIC0tcXVpZXQuCi0gIC10LCAtLXRleGluZm89Q01EICAgIEluc2VydCBDTUQgYWZ0ZXIgQHNldGZpbGVuYW1lIGluIGNvcHkgb2YgaW5wdXQgZmlsZS4KLSAgICAgICAgICAgICAgICAgICAgICAgTXVsdGlwbGUgdmFsdWVzIGFjY3VtdWxhdGUuCi0gIC12LCAtLXZlcnNpb24gICAgICAgIERpc3BsYXkgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdCBzdWNjZXNzZnVsbHkuCi0gIC1WLCAtLXZlcmJvc2UgICAgICAgIFJlcG9ydCBvbiB3aGF0IGlzIGRvbmUuCitPcGVyYXRpb24gbW9kZXM6CisgIC1iLCAtLWJhdGNoICAgICAgICAgbm8gaW50ZXJhY3Rpb24KKyAgLWMsIC0tY2xlYW4gICAgICAgICByZW1vdmUgYWxsIGF1eGlsaWFyeSBmaWxlcworICAtRCwgLS1kZWJ1ZyAgICAgICAgIHR1cm4gb24gc2hlbGwgZGVidWdnaW5nIChzZXQgLXgpCisgIC1oLCAtLWhlbHAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXQgc3VjY2Vzc2Z1bGx5CisgIC1vLCAtLW91dHB1dD1PRklMRSAgbGVhdmUgb3V0cHV0IGluIE9GSUxFIChpbXBsaWVzIC0tY2xlYW4pOworICAgICAgICAgICAgICAgICAgICAgIE9ubHkgb25lIGlucHV0IEZJTEUgbWF5IGJlIHNwZWNpZmllZCBpbiB0aGlzIGNhc2UKKyAgLXEsIC0tcXVpZXQgICAgICAgICBubyBvdXRwdXQgdW5sZXNzIGVycm9ycyAoaW1wbGllcyAtLWJhdGNoKQorICAtcywgLS1zaWxlbnQgICAgICAgIHNhbWUgYXMgLS1xdWlldAorICAtdiwgLS12ZXJzaW9uICAgICAgIGRpc3BsYXkgdmVyc2lvbiBpbmZvcm1hdGlvbiBhbmQgZXhpdCBzdWNjZXNzZnVsbHkKKyAgLVYsIC0tdmVyYm9zZSAgICAgICByZXBvcnQgb24gd2hhdCBpcyBkb25lCisKK1RlWCB0dW5pbmc6CisgIC1AICAgICAgICAgICAgICAgICAgIHVzZSBAaW5wdXQgaW5zdGVhZCBvZiBcaW5wdXQ7IGZvciBwcmVsb2FkZWQgVGV4aW5mbworICAtZSwgLUUsIC0tZXhwYW5kICAgICBmb3JjZSBtYWNybyBleHBhbnNpb24gdXNpbmcgbWFrZWluZm8KKyAgLUkgRElSICAgICAgICAgICAgICAgc2VhcmNoIERJUiBmb3IgVGV4aW5mbyBmaWxlcworICAtbCwgLS1sYW5ndWFnZT1MQU5HICBzcGVjaWZ5IHRoZSBMQU5HIG9mIEZJTEUgKExhVGVYIG9yIFRleGluZm8pCisgIC1wLCAtLXBkZiAgICAgICAgICAgIHVzZSBwZGZ0ZXggb3IgcGRmbGF0ZXggZm9yIHByb2Nlc3NpbmcKKyAgLXQsIC0tdGV4aW5mbz1DTUQgICAgaW5zZXJ0IENNRCBhZnRlciBAc2V0ZmlsZW5hbWUgaW4gY29weSBvZiBpbnB1dCBmaWxlCisgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlIHZhbHVlcyBhY2N1bXVsYXRlCiAKIFRoZSB2YWx1ZXMgb2YgdGhlIEJJQlRFWCwgTEFURVggKG9yIFBERkxBVEVYKSwgTUFLRUlOREVYLCBNQUtFSU5GTywKIFRFWCAob3IgUERGVEVYKSwgYW5kIFRFWElOREVYIGVudmlyb25tZW50IHZhcmlhYmxlcyBhcmUgdXNlZCB0byBydW4KIHRob3NlIGNvbW1hbmRzLCBpZiB0aGV5IGFyZSBzZXQuCiAKIEVtYWlsIGJ1ZyByZXBvcnRzIHRvIDxidWctdGV4aW5mb0BnbnUub3JnPiwKLWdlbmVyYWwgcXVlc3Rpb25zIGFuZCBkaXNjdXNzaW9uIHRvIDxoZWxwLXRleGluZm9AZ251Lm9yZz4uIgorZ2VuZXJhbCBxdWVzdGlvbnMgYW5kIGRpc2N1c3Npb24gdG8gPGhlbHAtdGV4aW5mb0BnbnUub3JnPi4KK1RleGluZm8gaG9tZSBwYWdlOiBodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvdGV4aW5mby8iCiAKICMgSW5pdGlhbGl6ZSB2YXJpYWJsZXMgZm9yIG9wdGlvbiBvdmVycmlkaW5nIGFuZCBvdGhlcndpc2UuCiAjIERvbid0IHVzZSBgdW5zZXQnIHNpbmNlIG9sZCBib3VybmUgc2hlbGxzIGRvbid0IGhhdmUgdGhpcyBjb21tYW5kLgogIyBJbnN0ZWFkLCBhc3NpZ24gdGhlbSBhbiBlbXB0eSB2YWx1ZS4KLWVzY2FwZT0nXCcKIGJhdGNoPWZhbHNlICAgICAjIGV2YWwgZm9yIGJhdGNoIG1vZGUKIGNsZWFuPQogZGVidWc9Citlc2NhcGU9J1wnCiBleHBhbmQ9ICAgICAgICAgIyB0IGZvciBleHBhbnNpb24gdmlhIG1ha2VpbmZvCi1vZm9ybWF0PWR2aQotc2V0X2xhbmd1YWdlPQogbWlpbmNsdWRlcz0gICAgICMgbWFrZWluZm8gaW5jbHVkZSBwYXRoCitvZm9ybWF0PWR2aQorb25hbWU9ICAgICAgICAgICMgLS1vdXRwdXQKK3F1aWV0PSAgICAgICAgICAjIGJ5IGRlZmF1bHQgbGV0IHRoZSB0b29scycgbWVzc2FnZSBiZSBkaXNwbGF5ZWQKK3NldF9sYW5ndWFnZT0KIHRleHRyYT0KIHRtcGRpcj0ke1RNUERJUjotL3RtcH0vdDJkJCQgICMgYXZvaWQgY29sbGlzaW9ucyBvbiA4LjMgZmlsZXN5c3RlbXMuCi10eGluY2x1ZGVzPSAgICAgIyBURVhJTlBVVFMgZXh0ZW5zaW9ucwordHhpbmNsdWRlcz0gICAgICMgVEVYSU5QVVRTIGV4dGVuc2lvbnMsIHdpdGggdHJhaWxpbmcgY29sb24KIHR4aXByZXJlcT0xOTk5MDEyOSAjIG1pbmltdW0gdGV4aW5mby50ZXggdmVyc2lvbiB0byBoYXZlIG1hY3JvIGV4cGFuc2lvbgotcXVpZXQ9ICAgICAgICAgICMgYnkgZGVmYXVsdCBsZXQgdGhlIHRvb2xzJyBtZXNzYWdlIGJlIGRpc3BsYXllZAogdmVyYm9zZT1mYWxzZSAgICMgZWNobyBmb3IgdmVyYm9zZSBtb2RlCiAKIG9yaWdfcHdkPWBwd2RgCkBAIC05OCw2ICsxMDUsMTIgQEAKICAgcGF0aF9zZXA9IjoiCiBmaQogCisjIFBhY2lmeSB2ZXJib3NlIGNkcy4KK0NEUEFUSD0ke1pTSF9WRVJTSU9OKy59JHBhdGhfc2VwCisKKyMgSW4gY2FzZSBzb21lb25lIGNyYXp5IGluc2lzdHMgb24gdXNpbmcgZ3JlcCAtRS4KKzogJHtFR1JFUD1lZ3JlcH0KKwogIyBTYXZlIHRoaXMgc28gd2UgY2FuIGNvbnN0cnVjdCBhIG5ldyBURVhJTlBVVFMgcGF0aCBmb3IgZWFjaCBmaWxlLgogVEVYSU5QVVRTX29yaWc9IiRURVhJTlBVVFMiCiAjIFVuZm9ydHVuYXRlbHkgbWFrZWluZGV4IGRvZXMgbm90IHJlYWQgVEVYSU5QVVRTLgpAQCAtMTM2LDE0ICsxNDksMjEgQEAKICAgICAtcSB8IC1zIHwgLS1xKiB8IC0tcyopIHF1aWV0PXQ7IGJhdGNoPWV2YWw7OwogICAgIC1jIHwgLS1jKikgY2xlYW49dDs7CiAgICAgLUQgfCAtLWQqKSBkZWJ1Zz10OzsKLSAgICAtZSB8IC0tZSopIGV4cGFuZD10OzsKKyAgICAtZSB8IC1FIHwgLS1lKikgZXhwYW5kPXQ7OwogICAgIC1oIHwgLS1oKikgZWNobyAiJHVzYWdlIjsgZXhpdCAwOzsKICAgICAtSSB8IC0tSSopCiAgICAgICBzaGlmdAogICAgICAgbWlpbmNsdWRlcz0iJG1paW5jbHVkZXMgLUkgJDEiCi0gICAgICB0eGluY2x1ZGVzPSIkdHhpbmNsdWRlcyRwYXRoX3NlcCQxIgorICAgICAgdHhpbmNsdWRlcz0iJHR4aW5jbHVkZXMkMSRwYXRoX3NlcCIKICAgICAgIDs7CiAgICAgLWwgfCAtLWwqKSBzaGlmdDsgc2V0X2xhbmd1YWdlPSQxOzsKKyAgICAtbyB8IC0tbyopCisgICAgICBzaGlmdAorICAgICAgY2xlYW49dAorICAgICAgY2FzZSAiJDEiIGluCisgICAgICAgIC8qIHwgPzovKikgb25hbWU9JDE7OworICAgICAgICAgICAgICAgICopIG9uYW1lPSIkb3JpZ19wd2QvJDEiOzsKKyAgICAgIGVzYWM7OwogICAgIC1wIHwgLS1wKikgb2Zvcm1hdD1wZGY7OwogICAgIC10IHwgLS10Kikgc2hpZnQ7IHRleHRyYT0iJHRleHRyYVxcCiAkMSI7OwpAQCAtMTY4LDExICsxODgsMjAgQEAKIHNoaWZ0CiAKICMgSW50ZXJwcmV0IHJlbWFpbmluZyBjb21tYW5kIGxpbmUgYXJncyBhcyBmaWxlbmFtZXMuCi1pZiB0ZXN0ICQjID0gMDsgdGhlbgorY2FzZSAkIyBpbgorIDApCiAgIGVjaG8gIiQwOiBNaXNzaW5nIGZpbGUgYXJndW1lbnRzLiIgPiYyCiAgIGVjaG8gIiQwOiBUcnkgXGAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiYyCiAgIGV4aXQgMgotZmkKKyAgOzsKKyAxKSA7OworICopCisgIGlmIHRlc3QgLW4gIiRvbmFtZSI7IHRoZW4KKyAgICBlY2hvICIkMDogQ2FuJ3QgdXNlIG9wdGlvbiBcYC0tb3V0cHV0JyB3aXRoIG1vcmUgdGhhbiBvbmUgYXJndW1lbnQuIiA+JjIKKyAgICBleGl0IDIKKyAgZmkKKyAgOzsKK2VzYWMKIAogIyBQcmVwYXJlIHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5LiAgUmVtb3ZlIGl0IGF0IGV4aXQsIHVubGVzcyBkZWJ1Z2dpbmcuCiBpZiB0ZXN0IC16ICIkZGVidWciOyB0aGVuCkBAIC0yMDUsMTQgKzIzNCwyMyBAQAogICAgIHMvXkBjIHRleGkyZHZpLy8KICAgfQogfQotL15AaHRtbC8sL15AZW5kIGh0bWwvZAotL15AaWZodG1sLywvXkBlbmQgaWZodG1sL2QKLS9eQGlmbm90dGV4LywvXkBlbmQgaWZub3R0ZXgvZAorL15AaHRtbC8sL15AZW5kIGh0bWwveworICBzL14vQGMgKHRleGkyZHZpKS8KK30KKy9eQGlmaHRtbC8sL15AZW5kIGlmaHRtbC97CisgIHMvXi9AYyAodGV4aTJkdmkpLworfQorL15AaWZub3R0ZXgvLC9eQGVuZCBpZm5vdHRleC97CisgIHMvXi9AYyAodGV4aTJkdmkpLworfQogL15AaWZpbmZvLywvXkBlbmQgaWZpbmZvL3sKICAgL15Abm9kZS9wCiAgIC9eQG1lbnUvLC9eQGVuZCBtZW51L3AKLSAgZAorICB0CisgIHMvXi9AYyAodGV4aTJkdmkpLwogfQorcy9eQGlmbm90aW5mby9AYyB0ZXhpMmR2aUBpZm5vdGluZm8vCitzL15AZW5kIGlmbm90aW5mby9AYyB0ZXhpMmR2aUBlbmQgaWZub3RpbmZvLwogRU9GCiAjIFVuY29tbWVudGluZyBpcyBzaW1wbGU6IFJlbW92ZSBhbnkgbGVhZGluZyBgQGMgdGV4aTJkdmknLgogdW5jb21tZW50X2lmdGV4X3NlZD0kdXRpbGRpci91bmNvbW1lbnQuc2VkCkBAIC0yMzAsNyArMjY4LDcgQEAKICMgR2V0IGxpc3Qgb2YgeHJlZiBmaWxlcyAoaW5kZXhlcywgdGFibGVzIGFuZCBsaXN0cykuCiAjIEZpbmQgYWxsIGZpbGVzIGhhdmluZyByb290IGZpbGVuYW1lIHdpdGggYSB0d28tbGV0dGVyIGV4dGVuc2lvbiwKICMgc2F2ZXMgdGhlIG9uZXMgdGhhdCBhcmUgcmVhbGx5IFRleGluZm8tcmVsYXRlZCBmaWxlcy4gIC4/bz8gY2F0Y2hlcwotIyBMYVRlWCB0YWJsZXMgYW5kIGxpc3RzLgorIyBtYW55IGZpbGVzOiAudG9jLCAubG9nLCBMYVRlWCB0YWJsZXMgYW5kIGxpc3RzLCBGaVhtZSdzIC5sb3gsIG1heWJlIG1vcmUuCiBmb3IgdGhpc19maWxlIGluICIkMSIuP28/ICIkMSIuYXV4ICIkMSIuPz8gIiQxIi5pZHg7IGRvCiAgICMgSWYgZmlsZSBpcyBlbXB0eSwgc2tpcCBpdC4KICAgdGVzdCAtcyAiJHRoaXNfZmlsZSIgfHwgY29udGludWUKQEAgLTI3Myw3ICszMTEsNyBAQAogCiAgICMgSWYgdGhlIENPTU1BTkRfTElORV9GSUxFTkFNRSBpcyBub3QgYWJzb2x1dGUgKGUuZy4sIC0tZGVidWcudGV4KSwKICAgIyBwcmVwZW5kIGAuLycgaW4gb3JkZXIgdG8gYXZvaWQgdGhhdCB0aGUgdG9vbHMgdGFrZSBpdCBhcyBhbiBvcHRpb24uCi0gIGVjaG8gIiRjb21tYW5kX2xpbmVfZmlsZW5hbWUiIHwgZWdyZXAgJ14oL3xbQS16XTovKScgPi9kZXYvbnVsbCBcCisgIGVjaG8gIiRjb21tYW5kX2xpbmVfZmlsZW5hbWUiIHwgJEVHUkVQICdeKC98W0Etel06LyknID4vZGV2L251bGwgXAogICB8fCBjb21tYW5kX2xpbmVfZmlsZW5hbWU9Ii4vJGNvbW1hbmRfbGluZV9maWxlbmFtZSIKIAogICAjIFNlZSBpZiB0aGUgZmlsZSBleGlzdHMuICBJZiBpdCBkb2Vzbid0IHdlJ3JlIGluIHRyb3VibGUgc2luY2UsIGV2ZW4KQEAgLTMxNCwyMiArMzUyLDY3IEBACiAgICMgTWFrZSBhbGwgdGhvc2UgZGlyZWN0b3JpZXMgYW5kIGdpdmUgdXAgaWYgd2UgY2FuJ3Qgc3VjY2VlZC4KICAgbWtkaXIgJHRtcGRpcl9zcmMgJHRtcGRpcl94dHIgJHRtcGRpcl9iYWsgfHwgZXhpdCAxCiAKLSAgIyBTb3VyY2UgZmlsZSBtaWdodCBpbmNsdWRlIGFkZGl0aW9uYWwgc291cmNlcy4gIFB1dCBgLicgYW5kCi0gICMgZGlyZWN0b3J5IHdoZXJlIHNvdXJjZSBmaWxlKHMpIHJlc2lkZSBpbiBURVhJTlBVVFMgYmVmb3JlIGFueXRoaW5nCi0gICMgZWxzZS4gIGAuJyBnb2VzIGZpcnN0IHRvIGVuc3VyZSB0aGF0IGFueSBvbGQgLmF1eCwgLmNwcywKKyAgIyBTb3VyY2UgZmlsZSBtaWdodCBpbmNsdWRlIGFkZGl0aW9uYWwgc291cmNlcy4KKyAgIyBXZSB3YW50IGAuOiRvcmlnX3B3ZCcgYmVmb3JlIGFueXRoaW5nIGVsc2UuICAoV2UnbGwgYWRkIGAuOicgbGF0ZXIKKyAgIyBhZnRlciBhbGwgb3RoZXIgZGlyZWN0b3JpZXMgaGF2ZSBiZWVuIHR1cm5lZCBpbnRvIGFic29sdXRlIHBhdGhzLikKKyAgIyBgLicgZ29lcyBmaXJzdCB0byBlbnN1cmUgdGhhdCBhbnkgb2xkIC5hdXgsIC5jcHMsCiAgICMgZXRjLiBmaWxlcyBpbiAke2RpcmVjdG9yeX0gZG9uJ3QgZ2V0IHVzZWQgaW4gcHJlZmVyZW5jZSB0byBmcmVzaGVyCiAgICMgZmlsZXMgaW4gYC4nLiAgSW5jbHVkZSBvcmlnX3B3ZCBpbiBjYXNlIHdlIGFyZSBpbiBjbGVhbiBtb2RlLCB3aGVyZQogICAjIHdlJ3ZlIGNkJ2QgdG8gYSB0ZW1wIGRpcmVjdG9yeS4KLSAgY29tbW9uPSIuJHBhdGhfc2VwJG9yaWdfcHdkJHBhdGhfc2VwJGZpbGVuYW1lX2RpciRwYXRoX3NlcCR0eGluY2x1ZGVzJHBhdGhfc2VwIgorICBjb21tb249IiRvcmlnX3B3ZCRwYXRoX3NlcCRmaWxlbmFtZV9kaXIkcGF0aF9zZXAkdHhpbmNsdWRlcyIKICAgIFRFWElOUFVUUz0iJGNvbW1vbiRURVhJTlBVVFNfb3JpZyIKICAgSU5ERVhTVFlMRT0iJGNvbW1vbiRJTkRFWFNUWUxFX29yaWciCiAKKyAgIyBDb252ZXJ0IHJlbGF0aXZlIHBhdGhzIHRvIGFic29sdXRlIHBhdGhzLCBzbyB3ZSBjYW4gcnVuIGluIGFub3RoZXIKKyAgIyBkaXJlY3RvcnkgKGUuZy4sIGluIC0tY2xlYW4gbW9kZSwgb3IgZHVyaW5nIHRoZSBtYWNyby1zdXBwb3J0CisgICMgZGV0ZWN0aW9uLikKKyAgIworICAjIEVtcHR5IHBhdGggY29tcG9uZW50cyBhcmUgbWVhbmluZ2Z1bCB0byB0ZXguICBXZSByZXdyaXRlIHRoZW0KKyAgIyBhcyBgRU1QVFknIHNvIHRoZXkgZG9uJ3QgZ2V0IGxvc3Qgd2hlbiB3ZSBzcGxpdCBvbiAkcGF0aF9zZXAuCisgICBURVhJTlBVVFM9YGVjaG8gJFRFWElOUFVUUyAgfHNlZCAncy9eOi9FTVBUWTovO3MvOiQvOkVNUFRZLztzLzo6LzpFTVBUWTovZydgCisgIElOREVYU1RZTEU9YGVjaG8gJElOREVYU1RZTEUgfHNlZCAncy9eOi9FTVBUWTovO3MvOiQvOkVNUFRZLztzLzo6LzpFTVBUWTovZydgCisgIHNhdmVfSUZTPSRJRlMKKyAgSUZTPSRwYXRoX3NlcAorICBzZXQgeCAkVEVYSU5QVVRTOyBzaGlmdAorICBURVhJTlBVVFM9LgorICBmb3IgZGlyCisgIGRvCisgICAgY2FzZSAkZGlyIGluCisgICAgICBFTVBUWSkKKyAgICAgICAgVEVYSU5QVVRTPSRURVhJTlBVVFMkcGF0aF9zZXAKKyAgICAgICAgOzsKKyAgICAgIFtcXC9dKiB8ID86W1xcL10qKSAgICAgICAgIyBBYnNvbHV0ZSBwYXRocyBkb24ndCBuZWVkIHRvIGJlIGV4cGFuc2VkLgorICAgICAgICBURVhJTlBVVFM9JFRFWElOUFVUUyRwYXRoX3NlcCRkaXIKKyAgICAgICAgOzsKKyAgICAgICopCisgICAgICAgIGFicz1gY2QgIiRkaXIiICYmIHB3ZGAgJiYgVEVYSU5QVVRTPSRURVhJTlBVVFMkcGF0aF9zZXAkYWJzCisgICAgICAgIDs7CisgICAgZXNhYworICBkb25lCisgIHNldCB4ICRJTkRFWFNUWUxFOyBzaGlmdAorICBJTkRFWFNUWUxFPS4KKyAgZm9yIGRpcgorICBkbworICAgIGNhc2UgJGRpciBpbgorICAgICAgRU1QVFkpCisgICAgICAgIElOREVYU1RZTEU9JElOREVYU1RZTEUkcGF0aF9zZXAKKyAgICAgICAgOzsKKyAgICAgIFtcXC9dKiB8ID86W1xcL10qKSAgICAgICAgIyBBYnNvbHV0ZSBwYXRocyBkb24ndCBuZWVkIHRvIGJlIGV4cGFuc2VkLgorICAgICAgICBJTkRFWFNUWUxFPSRJTkRFWFNUWUxFJHBhdGhfc2VwJGRpcgorICAgICAgICA7OworICAgICAgKikKKyAgICAgICAgYWJzPWBjZCAiJGRpciIgJiYgcHdkYCAmJiBJTkRFWFNUWUxFPSRJTkRFWFNUWUxFJHBhdGhfc2VwJGFicworICAgICAgICA7OworICAgIGVzYWMKKyAgZG9uZQorICBJRlM9JHNhdmVfSUZTCisKICAgIyBJZiB0aGUgdXNlciBleHBsaWNpdGx5IHNwZWNpZmllZCB0aGUgbGFuZ3VhZ2UsIHVzZSB0aGF0LgogICAjIE90aGVyd2lzZSwgaWYgdGhlIGZpcnN0IGxpbmUgaXMgXGlucHV0IHRleGluZm8sIGFzc3VtZSBpdCdzIHRleGluZm8uCiAgICMgT3RoZXJ3aXNlLCBndWVzcyBmcm9tIHRoZSBmaWxlIGV4dGVuc2lvbi4KICAgaWYgdGVzdCAtbiAiJHNldF9sYW5ndWFnZSI7IHRoZW4KICAgICBsYW5ndWFnZT0kc2V0X2xhbmd1YWdlCi0gIGVsaWYgc2VkIDFxICIkY29tbWFuZF9saW5lX2ZpbGVuYW1lIiB8IGZncmVwICdpbnB1dCB0ZXhpbmZvJyA+L2Rldi9udWxsOyB0aGVuCisgIGVsaWYgc2VkIDFxICIkY29tbWFuZF9saW5lX2ZpbGVuYW1lIiB8IGdyZXAgJ2lucHV0IHRleGluZm8nID4vZGV2L251bGw7IHRoZW4KICAgICBsYW5ndWFnZT10ZXhpbmZvCiAgIGVsc2UKICAgICBsYW5ndWFnZT0KQEAgLTM3Myw5ICs0NTYsOSBAQAogICAgICAgICB0eGl2ZXJzaW9uX3RleD10eGl2ZXJzaW9uLnRleAogICAgICAgICBlY2hvICdcaW5wdXQgdGV4aW5mby50ZXggQGJ5ZScgPiR0bXBkaXIvJHR4aXZlcnNpb25fdGV4CiAgICAgICAgICMgUnVuIGluIHRoZSB0bXBkaXIgdG8gYXZvaWQgbGVhdmluZyBmaWxlcy4KLSAgICAgICAgZXZhbCBgY2QgJHRtcGRpciA+L2Rldi9udWxsIFwKLSAgICAgICAgICAgICAgICAgICAgJiYgJHRleCAkdHhpdmVyc2lvbl90ZXggMj4vZGV2L251bGwgXAotfCBzZWQgLW4gJ3MvXi4qXFtcKC4qXCl2ZXJzaW9uIFwoLi4uLlwpLVwoLi5cKS1cKC4uXCkuKiQvdHhpZm9ybWF0PVwxIHR4aXZlcnNpb249IlwyXDNcNCIvcCdgCisgICAgICAgIGV2YWwgYGNkICR0bXBkaXIgPi9kZXYvbnVsbCAmJgorICAgICAgICAgICAgICAkdGV4ICR0eGl2ZXJzaW9uX3RleCAyPi9kZXYvbnVsbCB8CisgICAgICAgICAgICAgIHNlZCAtbiAncy9eLipcW1woLipcKXZlcnNpb24gXCguLi4uXCktXCguLlwpLVwoLi5cKS4qJC90eGlmb3JtYXQ9XDEgdHhpdmVyc2lvbj0iXDJcM1w0Ii9wJ2AKICAgICAgICAgJHZlcmJvc2UgInRleGluZm8udGV4IHByZWxvYWRlZCBhcyBcYCR0eGlmb3JtYXQnLCB2ZXJzaW9uIGlzIFxgJHR4aXZlcnNpb24nIC4uLiIKICAgICAgICAgaWYgdGVzdCAiJHR4aXByZXJlcSIgLWxlICIkdHhpdmVyc2lvbiIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgICAgICAgICAgbWFrZWluZm89CkBAIC00NjcsMTAgKzU1MCwxNCBAQAogCiAgICAgIyBXaGF0IHdlJ2xsIHJ1biB0ZXhpbmRleCBvbiAtLSBleGNsdWRlIG5vbi1pbmRleCBmaWxlcy4KICAgICAjIFNpbmNlIHdlIGtub3cgaW5kZXggZmlsZXMgYXJlIGxhc3QsIGl0IGlzIGNvcnJlY3QgdG8gcmVtb3ZlIGV2ZXJ5dGhpbmcKLSAgICAjIGJlZm9yZSAuYXV4IGFuZCAuP28/LgorICAgICMgYmVmb3JlIC5hdXggYW5kIC4/bz8uICBCdXQgZG9uJ3QgcmVhbGx5IGRvIDxhbnl0aGluZz5vPGFueXRoaW5nPgorICAgICMgLS0gZG9uJ3QgbWF0Y2ggd2hpdGVzcGFjZSBhcyA8YW55dGhpbmc+LgorICAgICMgT3RoZXJ3aXNlLCBpZiBvcmlnX3hyZWZfZmlsZXMgY29udGFpbnMgc29tZXRoaW5nIGxpa2UKKyAgICAjICAgZm9vLnhvIGZvby53aGF0ZXZlcgorICAgICMgdGhlIHNwYWNlIGFmdGVyIHRoZSBvIHdpbGwgZ2V0IG1hdGNoZWQuCiAgICAgaW5kZXhfZmlsZXM9YGVjaG8gIiRvcmlnX3hyZWZfZmlsZXMiIFwKICAgICAgICAgICAgICAgICAgfCBzZWQgInMhLipcLmF1eCEhZzsKLSAgICAgICAgICAgICAgICAgICAgICAgIHMhLi8kZmlsZW5hbWVfbm9leHRcLi5vLiEhZzsKKyAgICAgICAgICAgICAgICAgICAgICAgIHMhLi8kZmlsZW5hbWVfbm9leHRcLlteIF1vW14gXSEhZzsKICAgICAgICAgICAgICAgICAgICAgICAgIHMvXlsgXSovLztzL1sgXSokLy8iYAogICAgICMgUnVuIHRleGluZGV4IChvciBtYWtlaW5kZXgpIG9uIGN1cnJlbnQgaW5kZXggZmlsZXMuICBJZiB0aGV5CiAgICAgIyBhbHJlYWR5IGV4aXN0LCBhbmQgYWZ0ZXIgcnVubmluZyBUZVggYSBmaXJzdCB0aW1lIHRoZSBpbmRleApAQCAtNDg5LDggKzU3Niw4IEBACiAgICAgIyBQcmV2ZW50ICRFU0NBUEUgZnJvbSBiZWluZyBpbnRlcnByZXRlZCBieSB0aGUgc2hlbGwgaWYgaXQgaGFwcGVucwogICAgICMgdG8gYmUgYC8nLgogICAgICRiYXRjaCB0ZXhfYXJncz0iXFwke2VzY2FwZX1ub25zdG9wbW9kZVwgXFwke2VzY2FwZX1pbnB1dCIKLSAgICAkdmVyYm9zZSAiUnVubmluZyAkY21kIC4uLiIKICAgICBjbWQ9IiR0ZXggJHRleF9hcmdzICRmaWxlbmFtZV9pbnB1dCIKKyAgICAkdmVyYm9zZSAiUnVubmluZyAkY21kIC4uLiIKICAgICBpZiAkY21kID4mNTsgdGhlbiA6OyBlbHNlCiAgICAgICBlY2hvICIkMDogJHRleCBleGl0ZWQgd2l0aCBiYWQgc3RhdHVzLCBxdWl0dGluZy4iID4mMgogICAgICAgZWNobyAiJDA6IHNlZSAkZmlsZW5hbWVfbm9leHQubG9nIGZvciBlcnJvcnMuIiA+JjIKQEAgLTUwOCw3ICs1OTUsNyBAQAogICAgICMgc3ViZGlycywgc2luY2UgdGV4aTJkdmkgZG9lcyBub3QgdHJ5IHRvIGNvbXBhcmUgeHJlZiBmaWxlcyBpbgogICAgICMgc3ViZGlycy4gIFBlcmZvcm1pbmcgeHJlZiBmaWxlcyB0ZXN0IGlzIHN0aWxsIGdvb2Qgc2luY2UgTGFUZVgKICAgICAjIGRvZXMgbm90IHJlcG9ydCBjaGFuZ2VzIGluIHhyZWYgZmlsZXMuCi0gICAgaWYgZmdyZXAgIlJlcnVuIHRvIGdldCIgIiRmaWxlbmFtZV9ub2V4dC5sb2ciID4vZGV2L251bGwgMj4mMTsgdGhlbgorICAgIGlmIGdyZXAgIlJlcnVuIHRvIGdldCIgIiRmaWxlbmFtZV9ub2V4dC5sb2ciID4vZGV2L251bGwgMj4mMTsgdGhlbgogICAgICAgZmluaXNoZWQ9CiAgICAgZmkKIApAQCAtNTUwLDggKzYzNywxMyBAQAogICAjIC0gdGhlIG5leHQgZmlsZSBpcyBwcm9jZXNzZWQgaW4gY29ycmVjdCBjb25kaXRpb25zCiAgICMgLSB0aGUgdGVtcG9yYXJ5IGZpbGUgY2FuIGJlIHJlbW92ZWQKICAgaWYgdGVzdCAtbiAiJGNsZWFuIjsgdGhlbgotICAgICR2ZXJib3NlICJDb3B5aW5nICRvZm9ybWF0IGZpbGUgZnJvbSBgcHdkYCB0byAkb3JpZ19wd2QiCi0gICAgY3AgLXAgIi4vJGZpbGVuYW1lX25vZXh0LiRvZm9ybWF0IiAiJG9yaWdfcHdkIgorICAgIGlmIHRlc3QgLW4gIiRvbmFtZSI7IHRoZW4KKyAgICAgICBkZXN0PSRvbmFtZQorICAgIGVsc2UKKyAgICAgICBkZXN0PSRvcmlnX3B3ZAorICAgIGZpCisgICAgJHZlcmJvc2UgIkNvcHlpbmcgJG9mb3JtYXQgZmlsZSBmcm9tIGBwd2RgIHRvICRkZXN0IgorICAgIGNwIC1wICIuLyRmaWxlbmFtZV9ub2V4dC4kb2Zvcm1hdCIgIiRkZXN0IgogICAgIGNkIC8gIyBpbiBjYXNlICRvcmlnX3B3ZCBpcyBvbiBhIGRpZmZlcmVudCBkcml2ZSAoZm9yIERPUykKICAgICBjZCAkb3JpZ19wd2QgfHwgZXhpdCAxCiAgIGZpCmRpZmYgLS1naXQgYS9yZWFkbGluZS9kb2MvdGV4aW5mby50ZXggYi9yZWFkbGluZS9kb2MvdGV4aW5mby50ZXgKaW5kZXggYzQ5YWY5Zi4uNTU1YTA3NyAxMDA2NDQKLS0tIGEvcmVhZGxpbmUvZG9jL3RleGluZm8udGV4CisrKyBiL3JlYWRsaW5lL2RvYy90ZXhpbmZvLnRleApAQCAtMywxMCArMywxMCBAQAogJSBMb2FkIHBsYWluIGlmIG5lY2Vzc2FyeSwgaS5lLiwgaWYgcnVubmluZyB1bmRlciBpbml0ZXguCiBcZXhwYW5kYWZ0ZXJcaWZ4XGNzbmFtZSBmbXRuYW1lXGVuZGNzbmFtZVxyZWxheFxpbnB1dCBwbGFpblxmaQogJQotXGRlZlx0ZXhpbmZvdmVyc2lvbnsxOTk5LTA5LTI1LjEwfQorXGRlZlx0ZXhpbmZvdmVyc2lvbnsyMDAzLTAyLTAzLjE2fQogJQotJSBDb3B5cmlnaHQgKEMpIDE5ODUsIDg2LCA4OCwgOTAsIDkxLCA5MiwgOTMsIDk0LCA5NSwgOTYsIDk3LCA5OCwgOTkKLSUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCislIENvcHlyaWdodCAoQykgMTk4NSwgMTk4NiwgMTk4OCwgMTk5MCwgMTk5MSwgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwKKyUgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICUKICUgVGhpcyB0ZXhpbmZvLnRleCBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogJSBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwpAQCAtMjksMTYgKzI5LDE3IEBACiAlCiAlIFBsZWFzZSB0cnkgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRleGluZm8udGV4IGJlZm9yZSBzdWJtaXR0aW5nIGJ1ZwogJSByZXBvcnRzOyB5b3UgY2FuIGdldCB0aGUgbGF0ZXN0IHZlcnNpb24gZnJvbToKLSUgICBmdHA6Ly9mdHAuZ251Lm9yZy9nbnUvdGV4aW5mby50ZXgKLSUgICAoYW5kIGFsbCBHTlUgbWlycm9ycywgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9vcmRlci9mdHAuaHRtbCkKLSUgICBmdHA6Ly90ZXhpbmZvLm9yZy90ZXgvdGV4aW5mby50ZXgKLSUgICBmdHA6Ly91cy5jdGFuLm9yZy9tYWNyb3MvdGV4aW5mby90ZXhpbmZvLnRleAotJSAgIChhbmQgYWxsIENUQU4gbWlycm9ycywgZmluZ2VyIGN0YW5AdXMuY3Rhbi5vcmcgZm9yIGEgbGlzdCkuCi0lICAgL2hvbWUvZ2QvZ251L2RvYy90ZXhpbmZvLnRleCBvbiB0aGUgR05VIG1hY2hpbmVzLgorJSAgIGZ0cDovL2Z0cC5nbnUub3JnL2dudS90ZXhpbmZvL3RleGluZm8udGV4CislICAgICAoYW5kIGFsbCBHTlUgbWlycm9ycywgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9vcmRlci9mdHAuaHRtbCkKKyUgICBmdHA6Ly90dWcub3JnL3RleC90ZXhpbmZvLnRleAorJSAgICAgKGFuZCBhbGwgQ1RBTiBtaXJyb3JzLCBzZWUgaHR0cDovL3d3dy5jdGFuLm9yZyksCislICAgYW5kIC9ob21lL2dkL2dudS9kb2MvdGV4aW5mby50ZXggb24gdGhlIEdOVSBtYWNoaW5lcy4KKyUgCislIFRoZSBHTlUgVGV4aW5mbyBob21lIHBhZ2UgaXMgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL3RleGluZm8uCislIAogJSBUaGUgdGV4aW5mby50ZXggaW4gYW55IGdpdmVuIFRleGluZm8gZGlzdHJpYnV0aW9uIGNvdWxkIHdlbGwgYmUgb3V0CiAlIG9mIGRhdGUsIHNvIGlmIHRoYXQncyB3aGF0IHlvdSdyZSB1c2luZywgcGxlYXNlIGNoZWNrLgotJSBUZXhpbmZvIGhhcyBhIHNtYWxsIGhvbWUgcGFnZSBhdCBodHRwOi8vdGV4aW5mby5vcmcvLgotJQorJSAKICUgU2VuZCBidWcgcmVwb3J0cyB0byBidWctdGV4aW5mb0BnbnUub3JnLiAgUGxlYXNlIGluY2x1ZGUgaW5jbHVkaW5nIGEKICUgY29tcGxldGUgZG9jdW1lbnQgaW4gZWFjaCBidWcgcmVwb3J0IHdpdGggd2hpY2ggd2UgY2FuIHJlcHJvZHVjZSB0aGUKICUgcHJvYmxlbS4gIFBhdGNoZXMgYXJlLCBvZiBjb3Vyc2UsIGdyZWF0bHkgYXBwcmVjaWF0ZWQuCkBAIC01MCwxMyArNTEsMTQgQEAKICUgICB0ZXhpbmRleCBmb28uPz8KICUgICB0ZXggZm9vLnRleGkKICUgICB0ZXggZm9vLnRleGkKLSUgICBkdmlwcyBmb28uZHZpIC1vICMgb3Igd2hhdGV2ZXIsIHRvIHByb2Nlc3MgdGhlIGR2aSBmaWxlOyB0aGlzIG1ha2VzIGZvby5wcy4KLSUgVGhlIGV4dHJhIHJ1bnMgb2YgVGVYIGdldCB0aGUgY3Jvc3MtcmVmZXJlbmNlIGluZm9ybWF0aW9uIGNvcnJlY3QuCislICAgZHZpcHMgZm9vLmR2aSAtbyAgIyBvciB3aGF0ZXZlcjsgdGhpcyBtYWtlcyBmb28ucHMuCislIFRoZSBleHRyYSBUZVggcnVucyBnZXQgdGhlIGNyb3NzLXJlZmVyZW5jZSBpbmZvcm1hdGlvbiBjb3JyZWN0LgogJSBTb21ldGltZXMgb25lIHJ1biBhZnRlciB0ZXhpbmRleCBzdWZmaWNlcywgYW5kIHNvbWV0aW1lcyB5b3UgbmVlZCBtb3JlCiAlIHRoYW4gdHdvOyB0ZXhpMmR2aSBkb2VzIGl0IGFzIG1hbnkgdGltZXMgYXMgbmVjZXNzYXJ5LgotJQotJSBJdCBpcyBwb3NzaWJsZSB0byBhZGFwdCB0ZXhpbmZvLnRleCBmb3Igb3RoZXIgbGFuZ3VhZ2VzLiAgWW91IGNhbiBnZXQKLSUgdGhlIGV4aXN0aW5nIGxhbmd1YWdlLXNwZWNpZmljIGZpbGVzIGZyb20gZnRwOi8vZnRwLmdudS5vcmcvZ251L3RleGluZm8vLgorJSAKKyUgSXQgaXMgcG9zc2libGUgdG8gYWRhcHQgdGV4aW5mby50ZXggZm9yIG90aGVyIGxhbmd1YWdlcywgdG8gc29tZQorJSBleHRlbnQuICBZb3UgY2FuIGdldCB0aGUgZXhpc3RpbmcgbGFuZ3VhZ2Utc3BlY2lmaWMgZmlsZXMgZnJvbSB0aGUKKyUgZnVsbCBUZXhpbmZvIGRpc3RyaWJ1dGlvbi4KIAogXG1lc3NhZ2V7TG9hZGluZyB0ZXhpbmZvIFt2ZXJzaW9uIFx0ZXhpbmZvdmVyc2lvbl06fQogCkBAIC02Niw2ICs2OCwxMyBAQAogXGV2ZXJ5am9ie1xtZXNzYWdle1tUZXhpbmZvIHZlcnNpb24gXHRleGluZm92ZXJzaW9uXX0lCiAgIFxjYXRjb2RlYCs9XGFjdGl2ZSBcY2F0Y29kZWBcXz1cYWN0aXZlfQogCitcbWVzc2FnZXtCYXNpY3MsfQorXGNoYXJkZWZcb3RoZXI9MTIKKworJSBXZSBuZXZlciB3YW50IHBsYWluJ3Mgb3V0ZXIgXCsgZGVmaW5pdGlvbiBpbiBUZXhpbmZvLgorJSBGb3IgQHRleCwgd2UgY2FuIHVzZSBcdGFiYWxpZ24uCitcbGV0XCsgPSBccmVsYXgKKwogJSBTYXZlIHNvbWUgcGFydHMgb2YgcGxhaW4gdGV4IHdob3NlIG5hbWVzIHdlIHdpbGwgcmVkZWZpbmUuCiBcbGV0XHB0ZXhiPVxiCiBcbGV0XHB0ZXhidWxsZXQ9XGJ1bGxldApAQCAtNzYsMTkgKzg1LDE2IEBACiBcbGV0XHB0ZXhlbmQ9XGVuZAogXGxldFxwdGV4ZXF1aXY9XGVxdWl2CiBcbGV0XHB0ZXhleGNsYW09XCEKK1xsZXRccHRleGd0cj0+CitcbGV0XHB0ZXhoYXQ9XgogXGxldFxwdGV4aT1caQogXGxldFxwdGV4bGJyYWNlPVx7CitcbGV0XHB0ZXhsZXNzPTwKK1xsZXRccHRleHBsdXM9KwogXGxldFxwdGV4cmJyYWNlPVx9CiBcbGV0XHB0ZXhzdGFyPVwqCiBcbGV0XHB0ZXh0PVx0CiAKLSUgV2UgbmV2ZXIgd2FudCBwbGFpbidzIG91dGVyIFwrIGRlZmluaXRpb24gaW4gVGV4aW5mby4KLSUgRm9yIEB0ZXgsIHdlIGNhbiB1c2UgXHRhYmFsaWduLgotXGxldFwrID0gXHJlbGF4Ci0KLVxtZXNzYWdle0Jhc2ljcyx9Ci1cY2hhcmRlZlxvdGhlcj0xMgotCiAlIElmIHRoaXMgY2hhcmFjdGVyIGFwcGVhcnMgaW4gYW4gZXJyb3IgbWVzc2FnZSBvciBoZWxwIHN0cmluZywgaXQKICUgc3RhcnRzIGEgbmV3IGxpbmUgaW4gdGhlIG91dHB1dC4KIFxuZXdsaW5lY2hhciA9IGBeXkoKQEAgLTEzNSw0MCArMTQxLDc0IEBACiBcaWZ4XHB1dHdvcmREZWZmdW5jXHVuZGVmaW5lZCAgIFxnZGVmXHB1dHdvcmREZWZmdW5je0Z1bmN0aW9ufVxmaQogXGlmeFxwdXR3b3JkRGVmdHlwZWZ1blx1bmRlZmluZWRcZ2RlZlxwdXR3b3JkRGVmdHlwZWZ1bntGdW5jdGlvbn1cZmkKIAorJSBJbiBzb21lIG1hY3Jvcywgd2UgY2Fubm90IHVzZSB0aGUgYFw/IG5vdGF0aW9uLS0tdGhlIGxlZnQgcXVvdGUgaXMKKyUgaW4gc29tZSBjYXNlcyB0aGUgZXNjYXBlIGNoYXIuCitcY2hhcmRlZlxjb2xvbkNoYXIgPSBgXDoKK1xjaGFyZGVmXGNvbW1hQ2hhciA9IGBcLAorXGNoYXJkZWZcZG90Q2hhciAgID0gYFwuCitcY2hhcmRlZlxlcXVhbENoYXIgPSBgXD0KK1xjaGFyZGVmXGV4Y2xhbUNoYXI9IGBcIQorXGNoYXJkZWZccXVlc3RDaGFyID0gYFw/CitcY2hhcmRlZlxzZW1pQ2hhciAgPSBgXDsKK1xjaGFyZGVmXHNwYWNlQ2hhciA9IGBcICUKK1xjaGFyZGVmXHVuZGVyQ2hhciA9IGBcXworCiAlIElnbm9yZSBhIHRva2VuLgogJQogXGRlZlxnb2JibGUjMXt9CiAKKyUgVHJ1ZSBpZiAjMSBpcyB0aGUgZW1wdHkgc3RyaW5nLCBpLmUuLCBjYWxsZWQgbGlrZSBgXGlmZW1wdHl7fScuCislCitcZGVmXGlmZW1wdHkjMXtcaWZlbXB0eXggIzFcZW1wdHltYXJrQVxlbXB0eW1hcmtCfSUKK1xkZWZcaWZlbXB0eXgjMSMyXGVtcHR5bWFya0J7XGlmeCAjMVxlbXB0eW1hcmtBfSUKKworJSBIeXBoZW5hdGlvbiBmaXhlcy4KIFxoeXBoZW5hdGlvbnthcC1wZW4tZGl4fQogXGh5cGhlbmF0aW9ue21pbmktYnVmLWZlciBtaW5pLWJ1Zi1mZXJzfQogXGh5cGhlbmF0aW9ue2VzaGVsbH0KIFxoeXBoZW5hdGlvbnt3aGl0ZS1zcGFjZX0KIAogJSBNYXJnaW4gdG8gYWRkIHRvIHJpZ2h0IG9mIGV2ZW4gcGFnZXMsIHRvIGxlZnQgb2Ygb2RkIHBhZ2VzLgotXG5ld2RpbWVuIFxiaW5kaW5nb2Zmc2V0Ci1cbmV3ZGltZW4gXG5vcm1hbG9mZnNldAorXG5ld2RpbWVuXGJpbmRpbmdvZmZzZXQKK1xuZXdkaW1lblxub3JtYWxvZmZzZXQKIFxuZXdkaW1lblxwYWdld2lkdGggXG5ld2RpbWVuXHBhZ2VoZWlnaHQKIAogJSBTb21ldGltZXMgaXQgaXMgY29udmVuaWVudCB0byBoYXZlIGV2ZXJ5dGhpbmcgaW4gdGhlIHRyYW5zY3JpcHQgZmlsZQogJSBhbmQgbm90aGluZyBvbiB0aGUgdGVybWluYWwuICBXZSBkb24ndCBqdXN0IGNhbGwgXHRyYWNpbmdhbGwgaGVyZSwKLSUgc2luY2UgdGhhdCBwcm9kdWNlcyBzb21lIHVzZWxlc3Mgb3V0cHV0IG9uIHRoZSB0ZXJtaW5hbC4KKyUgc2luY2UgdGhhdCBwcm9kdWNlcyBzb21lIHVzZWxlc3Mgb3V0cHV0IG9uIHRoZSB0ZXJtaW5hbC4gIFdlIGFsc28gbWFrZQorJSBzb21lIGVmZm9ydCB0byBvcmRlciB0aGUgdHJhY2luZyBjb21tYW5kcyB0byByZWR1Y2Ugb3V0cHV0IGluIHRoZSBsb2cKKyUgZmlsZTsgY2YuIHRyYWNlLnN0eSBpbiBMYVRlWC4KICUKIFxkZWZcZ2xvZ2dpbmdhbGx7XGJlZ2luZ3JvdXAgXGdsb2JhbGRlZnMgPSAxIFxsb2dnaW5nYWxsIFxlbmRncm91cH0lCi1caWZ4XGVUZVh2ZXJzaW9uXHVuZGVmaW5lZAotXGRlZlxsb2dnaW5nYWxse1x0cmFjaW5nY29tbWFuZHMyIFx0cmFjaW5nc3RhdHMyCi0gICBcdHJhY2luZ3BhZ2VzMSBcdHJhY2luZ291dHB1dDEgXHRyYWNpbmdsb3N0Y2hhcnMxCi0gICBcdHJhY2luZ21hY3JvczIgXHRyYWNpbmdwYXJhZ3JhcGhzMSBcdHJhY2luZ3Jlc3RvcmVzMQotICAgXHNob3dib3hicmVhZHRoXG1heGRpbWVuXHNob3dib3hkZXB0aFxtYXhkaW1lbgorXGRlZlxsb2dnaW5nYWxseyUKKyAgXHRyYWNpbmdzdGF0czIKKyAgXHRyYWNpbmdwYWdlczEKKyAgXHRyYWNpbmdsb3N0Y2hhcnMyICAlIDIgZ2l2ZXMgdXMgbW9yZSBpbiBldGV4CisgIFx0cmFjaW5ncGFyYWdyYXBoczEKKyAgXHRyYWNpbmdvdXRwdXQxCisgIFx0cmFjaW5nbWFjcm9zMgorICBcdHJhY2luZ3Jlc3RvcmVzMQorICBcc2hvd2JveGJyZWFkdGhcbWF4ZGltZW4gXHNob3dib3hkZXB0aFxtYXhkaW1lbgorICBcaWZ4XGVUZVh2ZXJzaW9uXHVuZGVmaW5lZFxlbHNlICUgZXRleCBnaXZlcyB1cyBtb3JlIGxvZ2dpbmcKKyAgICBcdHJhY2luZ3NjYW50b2tlbnMxCisgICAgXHRyYWNpbmdpZnMxCisgICAgXHRyYWNpbmdncm91cHMxCisgICAgXHRyYWNpbmduZXN0aW5nMgorICAgIFx0cmFjaW5nYXNzaWduczEKKyAgXGZpCisgIFx0cmFjaW5nY29tbWFuZHMzICAlIDMgZ2l2ZXMgdXMgbW9yZSBpbiBldGV4CisgIFxlcnJvcmNvbnRleHRsaW5lc1xtYXhkaW1lbgogfSUKLVxlbHNlCi1cZGVmXGxvZ2dpbmdhbGx7XHRyYWNpbmdjb21tYW5kczMgXHRyYWNpbmdzdGF0czIKLSAgIFx0cmFjaW5ncGFnZXMxIFx0cmFjaW5nb3V0cHV0MSBcdHJhY2luZ2xvc3RjaGFyczEKLSAgIFx0cmFjaW5nbWFjcm9zMiBcdHJhY2luZ3BhcmFncmFwaHMxIFx0cmFjaW5ncmVzdG9yZXMxCi0gICBcdHJhY2luZ3NjYW50b2tlbnMxIFx0cmFjaW5nYXNzaWduczEgXHRyYWNpbmdpZnMxCi0gICBcdHJhY2luZ2dyb3VwczEgXHRyYWNpbmduZXN0aW5nMgotICAgXHNob3dib3hicmVhZHRoXG1heGRpbWVuXHNob3dib3hkZXB0aFxtYXhkaW1lbgotfSUKLVxmaQorCislIGFkZCBjaGVjayBmb3IgXGxhc3RwZW5hbHR5IHRvIHBsYWluJ3MgZGVmaW5pdGlvbnMuICBJZiB0aGUgbGFzdCB0aGluZworJSB3ZSBkaWQgd2FzIGEgXG5vYnJlYWssIHdlIGRvbid0IHdhbnQgdG8gaW5zZXJ0IG1vcmUgc3BhY2UuCislIAorXGRlZlxzbWFsbGJyZWFre1xpZm51bVxsYXN0cGVuYWx0eTwxMDAwMFxwYXJcaWZkaW1cbGFzdHNraXA8XHNtYWxsc2tpcGFtb3VudAorICBccmVtb3ZlbGFzdHNraXBccGVuYWx0eS01MFxzbWFsbHNraXBcZmlcZml9CitcZGVmXG1lZGJyZWFre1xpZm51bVxsYXN0cGVuYWx0eTwxMDAwMFxwYXJcaWZkaW1cbGFzdHNraXA8XG1lZHNraXBhbW91bnQKKyAgXHJlbW92ZWxhc3Rza2lwXHBlbmFsdHktMTAwXG1lZHNraXBcZmlcZml9CitcZGVmXGJpZ2JyZWFre1xpZm51bVxsYXN0cGVuYWx0eTwxMDAwMFxwYXJcaWZkaW1cbGFzdHNraXA8XGJpZ3NraXBhbW91bnQKKyAgXHJlbW92ZWxhc3Rza2lwXHBlbmFsdHktMjAwXGJpZ3NraXBcZmlcZml9CiAKICUgRm9yIEBjcm9wbWFya3MgY29tbWFuZC4KICUgRG8gQGNyb3BtYXJrcyB0byBnZXQgY3JvcCBtYXJrcy4KQEAgLTIxNCw2ICsyNTQsOSBAQAogICAgIFxub3JtYWx0dXJub2ZmYWN0aXZlICAlIFwgaW4gaW5kZXggZW50cmllcyBtdXN0IG5vdCBzdGF5IFwsIGUuZy4sIGlmCiAgICAgICAgICAgICAgICAgICAgJSB0aGUgcGFnZSBicmVhayBoYXBwZW5zIHRvIGJlIGluIHRoZSBtaWRkbGUgb2YgYW4gZXhhbXBsZS4KICAgICBcc2hpcG91dFx2Ym94eyUKKyAgICAgICUgRG8gdGhpcyBlYXJseSBzbyBwZGYgcmVmZXJlbmNlcyBnbyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBwYWdlLgorICAgICAgXGlmcGRmbWFrZXBhZ2VkZXN0IFxwZGZta2Rlc3R7XHRoZVxwYWdlbm99IFxmaQorICAgICAgJQogICAgICAgXGlmY3JvcG1hcmtzIFx2Ym94IHRvIFxvdXRlcnZzaXplXGJncm91cAogICAgICAgICBcaHNpemUgPSBcb3V0ZXJoc2l6ZQogICAgICAgICBcdnNraXAtXHRvcGFuZGJvdHRvbW1hcmdpbgpAQCAtMjQzLDggKzI4Niw2IEBACiAgICAgICAgIFx1bnZib3hcZm9vdGxpbmVib3gKICAgICAgIFxmaQogICAgICAgJQotICAgICAgXGlmcGRmbWFrZXBhZ2VkZXN0IFxwZGZta2Rlc3R7XHRoZVxwYWdlbm99IFxmaQotICAgICAgJQogICAgICAgXGlmY3JvcG1hcmtzCiAgICAgICAgICAgXGVncm91cCAlIGVuZCBvZiBcdmJveFxiZ3JvdXAKICAgICAgICAgXGhmaWxcZWdyb3VwICUgZW5kIG9mIChjZW50ZXJpbmcpIFxsaW5lXGJncm91cApAQCAtMjYyLDcgKzMwMyw3IEBACiAgICAgICBcZWdyb3VwICUgXHZib3ggZnJvbSBmaXJzdCBjcm9wbWFya3MgY2xhdXNlCiAgICAgICBcZmkKICAgICB9JSBlbmQgb2YgXHNoaXBvdXRcdmJveAotICB9JSBlbmQgb2YgZ3JvdXAgd2l0aCBcdHVybm9mZmFjdGl2ZQorICB9JSBlbmQgb2YgZ3JvdXAgd2l0aCBcbm9ybWFsdHVybm9mZmFjdGl2ZQogICBcYWR2YW5jZXBhZ2VubwogICBcaWZudW1cb3V0cHV0cGVuYWx0eT4tMjAwMDAgXGVsc2VcZG9zdXBlcmVqZWN0XGZpCiB9CkBAIC00MjIsMTcgKzQ2Myw2IEBACiB9CiAKIAotJSBTaW5nbGUtc3BhY2luZyBpcyBkb25lIGJ5IHZhcmlvdXMgZW52aXJvbm1lbnRzIChzcGVjaWZpY2FsbHksIGluCi0lIFxub25maWxsc3RhcnQgYW5kIFxxdW90YXRpb25zKS4KLVxuZXdza2lwXHNpbmdsZXNwYWNlc2tpcCBcc2luZ2xlc3BhY2Vza2lwID0gMTIuNXB0Ci1cZGVmXHNpbmdsZXNwYWNleyUKLSAgJSBXaHkgd2FzIHRoaXMga2VybiBoZXJlPyAgSXQgbWVzc2VzIHVwIGVxdWFsaXppbmcgc3BhY2UgYWJvdmUgYW5kIGJlbG93Ci0gICUgZW52aXJvbm1lbnRzLiAgLS1rYXJsLCA2bWF5OTMKLSAgJXtcYWR2YW5jZSBcYmFzZWxpbmVza2lwIGJ5IC1cc2luZ2xlc3BhY2Vza2lwCi0gICVca2VybiBcYmFzZWxpbmVza2lwfSUKLSAgXHNldGxlYWRpbmcgXHNpbmdsZXNwYWNlc2tpcAotfQotCiAlJSBTaW1wbGUgc2luZ2xlLWNoYXJhY3RlciBAIGNvbW1hbmRzCiAKICUgQEAgcHJpbnRzIGFuIEAKQEAgLTQ1MiwxNiArNDgyLDE5IEBACiBcbGV0XHs9XG15bGJyYWNlCiBcbGV0XH09XG15cmJyYWNlCiBcYmVnaW5ncm91cAotICAlIERlZmluaXRpb25zIHRvIHByb2R1Y2UgYWN0dWFsIFx7ICYgXH0gY29tbWFuZCBpbiBhbiBpbmRleC4KLSAgXGNhdGNvZGVgXHsgPSAxMiBcY2F0Y29kZWBcfSA9IDEyCisgICUgRGVmaW5pdGlvbnMgdG8gcHJvZHVjZSBceyBhbmQgXH0gY29tbWFuZHMgZm9yIGluZGljZXMsCisgICUgYW5kIEB7IGFuZCBAfSBmb3IgdGhlIGF1eCBmaWxlLgorICBcY2F0Y29kZWBceyA9IFxvdGhlciBcY2F0Y29kZWBcfSA9IFxvdGhlcgogICBcY2F0Y29kZWBcWyA9IDEgXGNhdGNvZGVgXF0gPSAyCi0gIFxjYXRjb2RlYFxAID0gMCBcY2F0Y29kZWBcXCA9IDEyCi0gIEBnZGVmQGxicmFjZWNtZFtce10lCi0gIEBnZGVmQHJicmFjZWNtZFtcfV0lCi1AZW5kZ3JvdXAKKyAgXGNhdGNvZGVgXCEgPSAwIFxjYXRjb2RlYFxcID0gXG90aGVyCisgICFnZGVmIWxicmFjZWNtZFtce10lCisgICFnZGVmIXJicmFjZWNtZFtcfV0lCisgICFnZGVmIWxicmFjZWF0Y21kW0B7XSUKKyAgIWdkZWYhcmJyYWNlYXRjbWRbQH1dJQorIWVuZGdyb3VwCiAKICUgQWNjZW50czogQCwgQGRvdGFjY2VudCBAcmluZ2FjY2VudCBAdWJhcmFjY2VudCBAdWRvdGFjY2VudAotJSBPdGhlcnMgYXJlIGRlZmluZWQgYnkgcGxhaW4gVGVYOiBAYCBAJyBAIiBAXiBAfiBAPSBAdiBASC4KKyUgT3RoZXJzIGFyZSBkZWZpbmVkIGJ5IHBsYWluIFRlWDogQGAgQCcgQCIgQF4gQH4gQD0gQHUgQHYgQEguCiBcbGV0XCwgPSBcYwogXGxldFxkb3RhY2NlbnQgPSBcLgogXGRlZlxyaW5nYWNjZW50IzF7e1xhY2NlbnQyMyAjMX19CkBAIC00NzAsNyArNTAzLDcgQEAKIFxsZXRcdWRvdGFjY2VudCA9IFxkCiAKICUgT3RoZXIgc3BlY2lhbCBjaGFyYWN0ZXJzOiBAcXVlc3Rpb25kb3duIEBleGNsYW1kb3duCi0lIFBsYWluIFRlWCBkZWZpbmVzOiBAQUEgQEFFIEBPIEBPRSBATCAoYW5kIGxvd2VyY2FzZSB2ZXJzaW9ucykgQHNzLgorJSBQbGFpbiBUZVggZGVmaW5lczogQEFBIEBBRSBATyBAT0UgQEwgKHBsdXMgbG93ZXJjYXNlIHZlcnNpb25zKSBAc3MuCiBcZGVmXHF1ZXN0aW9uZG93bns/YH0KIFxkZWZcZXhjbGFtZG93bnshYH0KIApAQCAtNTI1LDYgKzU1OCwxNiBAQAogJSB0aGVyZWZvcmUsIG5vIGdsdWUgaXMgaW5zZXJ0ZWQsIGFuZCB0aGUgc3BhY2UgYmV0d2VlbiB0aGUgaGVhZGxpbmUgYW5kCiAlIHRoZSB0ZXh0IGlzIHNtYWxsLCB3aGljaCBsb29rcyBiYWQuCiAlCislIEFub3RoZXIgY29tcGxpY2F0aW9uIGlzIHRoYXQgdGhlIGdyb3VwIG1pZ2h0IGJlIHZlcnkgbGFyZ2UuICBUaGlzIGNhbgorJSBjYXVzZSB0aGUgZ2x1ZSBvbiB0aGUgcHJldmlvdXMgcGFnZSB0byBiZSB1bmR1bHkgc3RyZXRjaGVkLCBiZWNhdXNlIGl0CislIGRvZXMgbm90IGhhdmUgbXVjaCBtYXRlcmlhbC4gIEluIHRoaXMgY2FzZSwgaXQncyBiZXR0ZXIgdG8gYWRkIGFuCislIGV4cGxpY2l0IFx2ZmlsbCBzbyB0aGF0IHRoZSBleHRyYSBzcGFjZSBpcyBhdCB0aGUgYm90dG9tLiAgVGhlCislIHRocmVzaG9sZCBmb3IgZG9pbmcgdGhpcyBpcyBpZiB0aGUgZ3JvdXAgaXMgbW9yZSB0aGFuIFx2ZmlsbGxpbWl0CislIHBlcmNlbnQgb2YgYSBwYWdlIChcdmZpbGxsaW1pdCBjYW4gYmUgY2hhbmdlZCBpbnNpZGUgb2YgQHRleCkuCislIAorXG5ld2JveFxncm91cGJveAorXGRlZlx2ZmlsbGxpbWl0ezAuN30KKyUKIFxkZWZcZ3JvdXB7XGJlZ2luZ3JvdXAKICAgXGlmbnVtXGNhdGNvZGUxMz1cYWN0aXZlIFxlbHNlCiAgICAgXGVycmhlbHAgPSBcZ3JvdXBpbnZhbGlkaGVscApAQCAtNTM4LDEwICs1ODEsMjIgQEAKICAgJSBhYm92ZS4gIEJ1dCBpdCdzIHByZXR0eSBjbG9zZS4KICAgXGRlZlxFZ3JvdXB7JQogICAgIFxlZ3JvdXAgICAgICAgICAgICUgRW5kIHRoZSBcdnRvcC4KKyAgICAlIFxkaW1lbjAgaXMgdGhlIHZlcnRpY2FsIHNpemUgb2YgdGhlIGdyb3VwJ3MgYm94LgorICAgIFxkaW1lbjAgPSBcaHRcZ3JvdXBib3ggIFxhZHZhbmNlXGRpbWVuMCBieSBcZHBcZ3JvdXBib3gKKyAgICAlIFxkaW1lbjIgaXMgaG93IG11Y2ggc3BhY2UgaXMgbGVmdCBvbiB0aGUgcGFnZSAobW9yZSBvciBsZXNzKS4KKyAgICBcZGltZW4yID0gXHBhZ2VoZWlnaHQgICBcYWR2YW5jZVxkaW1lbjIgYnkgLVxwYWdldG90YWwKKyAgICAlIGlmIHRoZSBncm91cCBkb2Vzbid0IGZpdCBvbiB0aGUgY3VycmVudCBwYWdlLCBhbmQgaXQncyBhIGJpZyBiaWcKKyAgICAlIGdyb3VwLCBmb3JjZSBhIHBhZ2UgYnJlYWsuCisgICAgXGlmZGltIFxkaW1lbjAgPiBcZGltZW4yCisgICAgICBcaWZkaW0gXHBhZ2V0b3RhbCA8IFx2ZmlsbGxpbWl0XHBhZ2VoZWlnaHQKKyAgICAgICAgXHBhZ2UKKyAgICAgIFxmaQorICAgIFxmaQorICAgIFxjb3B5XGdyb3VwYm94CiAgICAgXGVuZGdyb3VwICAgICAgICAgJSBFbmQgdGhlIFxncm91cC4KICAgfSUKICAgJQotICBcdnRvcFxiZ3JvdXAKKyAgXHNldGJveFxncm91cGJveCA9IFx2dG9wXGJncm91cAogICAgICUgV2UgaGF2ZSB0byBwdXQgYSBzdHJ1dCBvbiB0aGUgbGFzdCBsaW5lIGluIGNhc2UgdGhlIEBncm91cCBpcyBpbgogICAgICUgdGhlIG1pZHN0IG9mIGFuIGV4YW1wbGUsIHJhdGhlciB0aGFuIGNvbXBsZXRlbHkgZW5jbG9zaW5nIGl0LgogICAgICUgT3RoZXJ3aXNlLCB0aGUgaW50ZXJsaW5lIHNwYWNlIGJldHdlZW4gdGhlIGxhc3QgbGluZSBvZiB0aGUgZ3JvdXAKQEAgLTY4Nyw0NCArNzQyLDg4IEBACiBcZGVmXG5vZmlsbGV4ZGVudHl5eSAjMXt7XGFkdmFuY2UgXGxlZnRza2lwIGJ5IC1cZXhkZW50YW1vdW50CiBcbGVmdGxpbmV7XGhza2lwXGxlZnRza2lwe1xybSMxfX19fQogCi0lIEBpbm1hcmdpbntURVhUfSBwdXRzIFRFWFQgaW4gdGhlIG1hcmdpbiBuZXh0IHRvIHRoZSBjdXJyZW50IHBhcmFncmFwaC4KLQotXGRlZlxpbm1hcmdpbiMxeyUKLVxzdHJ1dFx2YWRqdXN0e1xub2JyZWFrXGtlcm4tXHN0cnV0ZGVwdGgKLSAgXHZ0b3AgdG8gXHN0cnV0ZGVwdGh7XGJhc2VsaW5lc2tpcFxzdHJ1dGRlcHRoXHZzcwotICBcbGxhcHtccmlnaHRza2lwPVxpbm1hcmdpbnNwYWNpbmcgXHZib3h7XG5vaW5kZW50ICMxfX1cbnVsbH19fQorJSBAaW5tYXJnaW57V0hJQ0h9e1RFWFR9IHB1dHMgVEVYVCBpbiB0aGUgV0hJQ0ggbWFyZ2luIG5leHQgdG8gdGhlIGN1cnJlbnQKKyUgcGFyYWdyYXBoLiAgRm9yIG1vcmUgZ2VuZXJhbCBwdXJwb3NlcywgdXNlIHRoZSBcbWFyZ2luIGluc2VydGlvbgorJSBjbGFzcy4gIFdISUNIIGlzIGBsJyBvciBgcicuCislCiBcbmV3c2tpcFxpbm1hcmdpbnNwYWNpbmcgXGlubWFyZ2luc3BhY2luZz0xY20KIFxkZWZcc3RydXRkZXB0aHtcZHBcc3RydXRib3h9Ci0KLSVcaGJveHt7XHJtIzF9fVxoZmlsXGJyZWFrfX0KKyUKK1xkZWZcZG9pbm1hcmdpbiMxIzJ7XHN0cnV0XHZhZGp1c3R7JQorICBcbm9icmVhaworICBca2Vybi1cc3RydXRkZXB0aAorICBcdnRvcCB0byBcc3RydXRkZXB0aHslCisgICAgXGJhc2VsaW5lc2tpcD1cc3RydXRkZXB0aAorICAgIFx2c3MKKyAgICAlIGlmIHlvdSBoYXZlIG11bHRpcGxlIGxpbmVzIG9mIHN0dWZmIHRvIHB1dCBoZXJlLCB5b3UnbGwgbmVlZCB0bworICAgICUgbWFrZSB0aGUgdmJveCB5b3Vyc2VsZiBvZiB0aGUgYXBwcm9wcmlhdGUgc2l6ZS4KKyAgICBcaWZ4IzFsJQorICAgICAgXGxsYXB7XGlnbm9yZXNwYWNlcyAjMlxoc2tpcFxpbm1hcmdpbnNwYWNpbmd9JQorICAgIFxlbHNlCisgICAgICBccmxhcHtcaHNraXBcaHNpemUgXGhza2lwXGlubWFyZ2luc3BhY2luZyBcaWdub3Jlc3BhY2VzICMyfSUKKyAgICBcZmkKKyAgICBcbnVsbAorICB9JQorfX0KK1xkZWZcaW5sZWZ0bWFyZ2lue1xkb2lubWFyZ2luIGx9CitcZGVmXGlucmlnaHRtYXJnaW57XGRvaW5tYXJnaW4gcn0KKyUKKyUgQGlubWFyZ2lue1RFWFQgWywgUklHSFQtVEVYVF19CislIChpZiBSSUdIVC1URVhUIGlzIGdpdmVuLCB1c2UgVEVYVCBmb3IgbGVmdCBwYWdlLCBSSUdIVC1URVhUIGZvciByaWdodDsKKyUgZWxzZSB1c2UgVEVYVCBmb3IgYm90aCkuCislIAorXGRlZlxpbm1hcmdpbiMxe1xwYXJzZWlubWFyZ2luICMxLCxcZmluaXNofQorXGRlZlxwYXJzZWlubWFyZ2luIzEsIzIsIzNcZmluaXNoeyUgbm90IHBlcmZlY3QsIGJ1dCBiZXR0ZXIgdGhhbiBub3RoaW5nLgorICBcc2V0Ym94MCA9IFxoYm94e1xpZ25vcmVzcGFjZXMgIzJ9JSAKKyAgXGlmZGltXHdkMCA+IDBwdAorICAgIFxkZWZcbGVmdHRleHR7IzF9JSAgaGF2ZSBib3RoIHRleHRzCisgICAgXGRlZlxyaWdodHRleHR7IzJ9JQorICBcZWxzZQorICAgIFxkZWZcbGVmdHRleHR7IzF9JSAgaGF2ZSBvbmx5IG9uZSB0ZXh0CisgICAgXGRlZlxyaWdodHRleHR7IzF9JQorICBcZmkKKyAgJQorICBcaWZvZGRccGFnZW5vCisgICAgXGRlZlx0ZW1we1xpbnJpZ2h0bWFyZ2luXHJpZ2h0dGV4dH0lIG9kZCBwYWdlIC0+IG91dHNpZGUgaXMgcmlnaHQgbWFyZ2luCisgIFxlbHNlCisgICAgXGRlZlx0ZW1we1xpbmxlZnRtYXJnaW5cbGVmdHRleHR9JQorICBcZmkKKyAgXHRlbXAKK30KIAogJSBAaW5jbHVkZSBmaWxlICAgIGluc2VydCB0ZXh0IG9mIHRoYXQgZmlsZSBhcyBpbnB1dC4KICUgQWxsb3cgbm9ybWFsIGNoYXJhY3RlcnMgdGhhdCAgd2UgbWFrZSBhY3RpdmUgaW4gdGhlIGFyZ3VtZW50IChhIGZpbGUgbmFtZSkuCiBcZGVmXGluY2x1ZGV7XGJlZ2luZ3JvdXAKLSAgXGNhdGNvZGVgXFw9MTIKLSAgXGNhdGNvZGVgfj0xMgotICBcY2F0Y29kZWBePTEyCi0gIFxjYXRjb2RlYF89MTIKLSAgXGNhdGNvZGVgfD0xMgotICBcY2F0Y29kZWA8PTEyCi0gIFxjYXRjb2RlYD49MTIKLSAgXGNhdGNvZGVgKz0xMgorICBcY2F0Y29kZWBcXD1cb3RoZXIKKyAgXGNhdGNvZGVgfj1cb3RoZXIKKyAgXGNhdGNvZGVgXj1cb3RoZXIKKyAgXGNhdGNvZGVgXz1cb3RoZXIKKyAgXGNhdGNvZGVgfD1cb3RoZXIKKyAgXGNhdGNvZGVgPD1cb3RoZXIKKyAgXGNhdGNvZGVgPj1cb3RoZXIKKyAgXGNhdGNvZGVgKz1cb3RoZXIKICAgXHBhcnNlYXJnXGluY2x1ZGV6enp9CiAlIFJlc3RvcmUgYWN0aXZlIGNoYXJzIGZvciBpbmNsdWRlZCBmaWxlLgogXGRlZlxpbmNsdWRlenp6IzF7XGVuZGdyb3VwXGJlZ2luZ3JvdXAKICAgJSBSZWFkIHRoZSBpbmNsdWRlZCBmaWxlIGluIGEgZ3JvdXAgc28gbmVzdGVkIEBpbmNsdWRlJ3Mgd29yay4KICAgXGRlZlx0aGlzZmlsZXsjMX0lCisgIFxsZXRcdmFsdWU9XGV4cGFuZGFibGV2YWx1ZQogICBcaW5wdXRcdGhpc2ZpbGUKIFxlbmRncm91cH0KIAogXGRlZlx0aGlzZmlsZXt9CiAKLSUgQGNlbnRlciBsaW5lICAgb3V0cHV0cyB0aGF0IGxpbmUsIGNlbnRlcmVkCi0KLVxkZWZcY2VudGVye1xwYXJzZWFyZ1xjZW50ZXJ6enp9Ci1cZGVmXGNlbnRlcnp6eiAjMXt7XGFkdmFuY2VcaHNpemUgYnkgLVxsZWZ0c2tpcAotXGFkdmFuY2VcaHNpemUgYnkgLVxyaWdodHNraXAKLVxjZW50ZXJsaW5leyMxfX19CislIEBjZW50ZXIgbGluZQorJSBvdXRwdXRzIHRoYXQgbGluZSwgY2VudGVyZWQuCislCitcZGVmXGNlbnRlcntccGFyc2VhcmdcZG9jZW50ZXJ9CitcZGVmXGRvY2VudGVyIzF7eyUKKyAgXGlmaG1vZGUgXGhmaWxcYnJlYWsgXGZpCisgIFxhZHZhbmNlXGhzaXplIGJ5IC1cbGVmdHNraXAKKyAgXGFkdmFuY2VcaHNpemUgYnkgLVxyaWdodHNraXAKKyAgXGxpbmV7XGhmaWwgXGlnbm9yZXNwYWNlcyMxXHVuc2tpcCBcaGZpbH0lCisgIFxpZmhtb2RlIFxicmVhayBcZmkKK319CiAKICUgQHNwIG4gICBvdXRwdXRzIG4gbGluZXMgb2YgdmVydGljYWwgc3BhY2UKIApAQCAtNzg0LDE4ICs4ODMsNTYgQEAKICUKIFxkZWZcYXNpcyMxeyMxfQogCi0lIEBtYXRoIG1lYW5zIG91dHB1dCBpbiBtYXRoIG1vZGUuCi0lIFdlIGRvbid0IHVzZSAkJ3MgZGlyZWN0bHkgaW4gdGhlIGRlZmluaXRpb24gb2YgXG1hdGggYmVjYXVzZSBjb250cm9sCi0lIHNlcXVlbmNlcyBsaWtlIFxtYXRoIGFyZSBleHBhbmRlZCB3aGVuIHRoZSB0b2MgZmlsZSBpcyB3cml0dGVuLiAgVGhlbiwKLSUgd2UgcmVhZCB0aGUgdG9jIGZpbGUgYmFjaywgdGhlICQncyB3aWxsIGJlIG5vcm1hbCBjaGFyYWN0ZXJzIChhcyB0aGV5Ci0lIHNob3VsZCBiZSwgYWNjb3JkaW5nIHRvIHRoZSBkZWZpbml0aW9uIG9mIFRleGluZm8pLiAgU28gd2UgbXVzdCB1c2UgYQotJSBjb250cm9sIHNlcXVlbmNlIHRvIHN3aXRjaCBpbnRvIGFuZCBvdXQgb2YgbWF0aCBtb2RlLgorJSBAbWF0aCBvdXRwdXRzIGl0cyBhcmd1bWVudCBpbiBtYXRoIG1vZGUuCislIFdlIGRvbid0IHVzZSAkJ3MgZGlyZWN0bHkgaW4gdGhlIGRlZmluaXRpb24gb2YgXG1hdGggYmVjYXVzZSB3ZSBuZWVkCislIHRvIHNldCBjYXRjb2RlcyBhY2NvcmRpbmcgdG8gcGxhaW4gVGVYIGZpcnN0LCB0byBhbGxvdyBmb3Igc3Vic2NyaXB0cywKKyUgc3VwZXJzY3JpcHRzLCBzcGVjaWFsIG1hdGggY2hhcnMsIGV0Yy4KKyUgCitcbGV0XGltcGxpY2l0bWF0aCA9ICQlJCBmb250LWxvY2sgZml4CiAlCi0lIFRoaXMgaXNuJ3QgcXVpdGUgZW5vdWdoIGZvciBAbWF0aCB0byB3b3JrIHByb3Blcmx5IGluIGluZGljZXMsIGJ1dCBpdAotJSBzZWVtcyB1bmxpa2VseSBpdCB3aWxsIGV2ZXIgYmUgbmVlZGVkIHRoZXJlLgorJSBPbmUgY29tcGxpY2F0aW9uOiBfIHVzdWFsbHkgbWVhbnMgc3Vic2NyaXB0cywgYnV0IGl0IGNvdWxkIGFsc28gbWVhbgorJSBhbiBhY3R1YWwgXyBjaGFyYWN0ZXIsIGFzIGluIEBtYXRoe0B2YXJ7c29tZV92YXJpYWJsZX0gKyAxfS4gIFNvIG1ha2UKKyUgXyB3aXRoaW4gQG1hdGggYmUgYWN0aXZlIChtYXRoY29kZSAiODAwMCksIGFuZCBkaXN0aW5ndWlzaCBieSBzZWVpbmcKKyUgaWYgdGhlIGN1cnJlbnQgZmFtaWx5IGlzIFxzbGZhbSwgd2hpY2ggaXMgd2hhdCBAdmFyIHVzZXMuCislIAore1xjYXRjb2RlXHVuZGVyQ2hhciA9IFxhY3RpdmUKK1xnZGVmXG1hdGh1bmRlcnNjb3JleyUKKyAgXGNhdGNvZGVcdW5kZXJDaGFyPVxhY3RpdmUKKyAgXGRlZl97XGlmbnVtXGZhbT1cc2xmYW0gXF9cZWxzZVxzYlxmaX0lCit9fQogJQotXGxldFxpbXBsaWNpdG1hdGggPSAkCi1cZGVmXG1hdGgjMXtcaW1wbGljaXRtYXRoICMxXGltcGxpY2l0bWF0aH0KKyUgQW5vdGhlciBjb21wbGljYXRpb246IHdlIHdhbnQgXFwgKGFuZCBAXCkgdG8gb3V0cHV0IGEgXCBjaGFyYWN0ZXIuCislIEZZSSwgcGxhaW4udGV4IHVzZXMgXFwgYXMgYSB0ZW1wb3JhcnkgY29udHJvbCBzZXF1ZW5jZSAod2h5PyksIGJ1dAorJSB0aGlzIGlzIG5vdCBhZHZlcnRpc2VkIGFuZCB3ZSBkb24ndCBjYXJlLiAgVGV4aW5mbyBkb2VzIG5vdAorJSBvdGhlcndpc2UgZGVmaW5lIEBcLgorJSAKKyUgVGhlIFxtYXRoY2hhciBpcyBjbGFzcz0wPW9yZGluYXJ5LCBmYW1pbHk9Nz10dGZhbSwgcG9zaXRpb249NUM9XC4KK1xkZWZcbWF0aGJhY2tzbGFzaHtcaWZudW1cZmFtPVx0dGZhbSBcbWF0aGNoYXIiMDc1QyBcZWxzZVxiYWNrc2xhc2ggXGZpfQorJQorXGRlZlxtYXRoeyUKKyAgXHRleAorICBcbWF0aGNvZGVgXF89IjgwMDAgXG1hdGh1bmRlcnNjb3JlCisgIFxsZXRcXCA9IFxtYXRoYmFja3NsYXNoCisgIFxtYXRoYWN0aXZlCisgIFxpbXBsaWNpdG1hdGhcZmluaXNobWF0aH0KK1xkZWZcZmluaXNobWF0aCMxeyMxXGltcGxpY2l0bWF0aFxFdGV4fQorCislIFNvbWUgYWN0aXZlIGNoYXJhY3RlcnMgKHN1Y2ggYXMgPCkgYXJlIHNwYWNlZCBkaWZmZXJlbnRseSBpbiBtYXRoLgorJSBXZSBoYXZlIHRvIHJlc2V0IHRoZWlyIGRlZmluaXRpb25zIGluIGNhc2UgdGhlIEBtYXRoIHdhcyBhbgorJSBhcmd1bWVudCB0byBhIGNvbW1hbmQgd2hpY2ggc2V0IHRoZSBjYXRjb2RlcyAoc3VjaCBhcyBAaXRlbSBvciBAc2VjdGlvbikuCislIAoreworICBcY2F0Y29kZWBeID0gXGFjdGl2ZQorICBcY2F0Y29kZWA8ID0gXGFjdGl2ZQorICBcY2F0Y29kZWA+ID0gXGFjdGl2ZQorICBcY2F0Y29kZWArID0gXGFjdGl2ZQorICBcZ2RlZlxtYXRoYWN0aXZleyUKKyAgICBcbGV0XiA9IFxwdGV4aGF0CisgICAgXGxldDwgPSBccHRleGxlc3MKKyAgICBcbGV0PiA9IFxwdGV4Z3RyCisgICAgXGxldCsgPSBccHRleHBsdXMKKyAgfQorfQogCiAlIEBidWxsZXQgYW5kIEBtaW51cyBuZWVkIHRoZSBzYW1lIHRyZWF0bWVudCBhcyBAbWF0aCwganVzdCBhYm92ZS4KIFxkZWZcYnVsbGV0e1xpbXBsaWNpdG1hdGhccHRleGJ1bGxldFxpbXBsaWNpdG1hdGh9CkBAIC04NzgsMjAgKzEwMTUsMjYgQEAKICAgXGRlZlxkb3BkZmltYWdlIzEjMiMzeyUKICAgICBcZGVmXGltYWdld2lkdGh7IzJ9JQogICAgIFxkZWZcaW1hZ2VoZWlnaHR7IzN9JQorICAgICUgd2l0aG91dCBcaW1tZWRpYXRlLCBwZGZ0ZXggc2VnIGZhdWx0cyB3aGVuIHRoZSBzYW1lIGltYWdlIGlzCisgICAgJSBpbmNsdWRlZCB0d2ljZS4gIChWZXJzaW9uIDMuMTQxNTktcHJlLTEuMC11bm9mZmljaWFsLTIwMDEwNzA0LikKICAgICBcaWZudW1ccGRmdGV4dmVyc2lvbiA8IDE0Ci0gICAgICBccGRmaW1hZ2UKKyAgICAgIFxpbW1lZGlhdGVccGRmaW1hZ2UKICAgICBcZWxzZQotICAgICAgXHBkZnhpbWFnZQorICAgICAgXGltbWVkaWF0ZVxwZGZ4aW1hZ2UKICAgICBcZmkKICAgICAgIFxpZnhcZW1wdHlcaW1hZ2V3aWR0aFxlbHNlIHdpZHRoIFxpbWFnZXdpZHRoIFxmaQogICAgICAgXGlmeFxlbXB0eVxpbWFnZWhlaWdodFxlbHNlIGhlaWdodCBcaW1hZ2VoZWlnaHQgXGZpCi0gICAgICB7IzEucGRmfSUKKyAgICAgIFxpZm51bVxwZGZ0ZXh2ZXJzaW9uPDEzCisgICAgICAgICAjMS5wZGYlCisgICAgICAgXGVsc2UKKyAgICAgICAgIHsjMS5wZGZ9JQorICAgICAgIFxmaQogICAgIFxpZm51bVxwZGZ0ZXh2ZXJzaW9uIDwgMTQgXGVsc2UKICAgICAgIFxwZGZyZWZ4aW1hZ2UgXHBkZmxhc3R4aW1hZ2UKICAgICBcZml9Ci0gIFxkZWZccGRmbWtkZXN0IzF7XHBkZmRlc3QgbmFtZXsjMUB9IHh5en0KLSAgXGRlZlxwZGZta3BnbiMxeyMxQH0KLSAgXGxldFxsaW5rY29sb3IgPSBcQ3lhbgorICBcZGVmXHBkZm1rZGVzdCMxe3tcbm9ybWFsdHVybm9mZmFjdGl2ZSBccGRmZGVzdCBuYW1leyMxfSB4eXp9fQorICBcZGVmXHBkZm1rcGduIzF7IzF9CisgIFxsZXRcbGlua2NvbG9yID0gXEJsdWUgICUgd2FzIEN5YW4sIGJ1dCB0aGF0IHNlZW1zIGxpZ2h0PwogICBcZGVmXGVuZGxpbmt7XEJsYWNrXHBkZmVuZGxpbmt9CiAgICUgQWRkaW5nIG91dGxpbmVzIHRvIFBERjsgbWFjcm9zIGZvciBjYWxjdWxhdGluZyBzdHJ1Y3R1cmUgb2Ygb3V0bGluZXMKICAgJSBjb21lIGZyb20gUGV0ciBPbHNhawpAQCAtOTAyLDQxICsxMDQ1LDQzIEBACiAgICAgXGV4cGFuZGFmdGVyXHhkZWZcY3NuYW1lIzFcZW5kY3NuYW1le1x0aGVcdGVtcG51bX19CiAgIFxkZWZccGRmbWFrZW91dGxpbmVze3slCiAgICAgXG9wZW5pbiAxIFxqb2JuYW1lLnRvYwotICAgIFxpZmVvZiAxXGVsc2VcYmdyb3VwCisgICAgXGlmZW9mIDFcZWxzZVxiZWdpbmdyb3VwCiAgICAgICBcY2xvc2VpbiAxIAotICAgICAgXGluZGV4bm9mb250cwotICAgICAgXGRlZlx0dHt9Ci0gICAgICAlIHRoYW5oJ3MgaGFjayAvIHByb3BlciBicmFjZXMgaW4gYm9va21hcmtzICAKKyAgICAgICUgVGhhbmgncyBoYWNrIC8gcHJvcGVyIGJyYWNlcyBpbiBib29rbWFya3MgIAogICAgICAgXGVkZWZcbXlsYnJhY2V7XGlmdHJ1ZSBcc3RyaW5ne1xlbHNlfVxmaX1cbGV0XHs9XG15bGJyYWNlCiAgICAgICBcZWRlZlxteXJicmFjZXtcaWZmYWxzZXtcZWxzZVxzdHJpbmd9XGZpfVxsZXRcfT1cbXlyYnJhY2UKICAgICAgICUKICAgICAgIFxkZWZcY2hhcGVudHJ5ICMjMSMjMiMjM3t9Ci0gICAgICBcZGVmXHVubnVtYmNoYXBlbnRyeSAjIzEjIzJ7fQogICAgICAgXGRlZlxzZWNlbnRyeSAjIzEjIzIjIzMjIzR7XGFkdmFuY2VudW1iZXJ7Y2hhcCMjMn19Ci0gICAgICBcZGVmXHVubnVtYnNlY2VudHJ5ICMjMSMjMnt9CiAgICAgICBcZGVmXHN1YnNlY2VudHJ5ICMjMSMjMiMjMyMjNCMjNXtcYWR2YW5jZW51bWJlcntzZWMjIzIuIyMzfX0KLSAgICAgIFxkZWZcdW5udW1ic3Vic2VjZW50cnkgIyMxIyMye30KICAgICAgIFxkZWZcc3Vic3Vic2VjZW50cnkgIyMxIyMyIyMzIyM0IyM1IyM2e1xhZHZhbmNlbnVtYmVye3N1YnNlYyMjMi4jIzMuIyM0fX0KLSAgICAgIFxkZWZcdW5udW1ic3Vic3Vic2VjZW50cnkgIyMxIyMye30KKyAgICAgIFxsZXRcYXBwZW5kaXhlbnRyeSA9IFxjaGFwZW50cnkKKyAgICAgIFxsZXRcdW5udW1iY2hhcGVudHJ5ID0gXGNoYXBlbnRyeQorICAgICAgXGxldFx1bm51bWJzZWNlbnRyeSA9IFxzZWNlbnRyeQorICAgICAgXGxldFx1bm51bWJzdWJzZWNlbnRyeSA9IFxzdWJzZWNlbnRyeQorICAgICAgXGxldFx1bm51bWJzdWJzdWJzZWNlbnRyeSA9IFxzdWJzdWJzZWNlbnRyeQogICAgICAgXGlucHV0IFxqb2JuYW1lLnRvYwogICAgICAgXGRlZlxjaGFwZW50cnkgIyMxIyMyIyMzeyUKICAgICAgICAgXHBkZm91dGxpbmUgZ290byBuYW1le1xwZGZta3BnbnsjIzN9fWNvdW50LVxleHBudW1iZXJ7Y2hhcCMjMn17IyMxfX0KLSAgICAgIFxkZWZcdW5udW1iY2hhcGVudHJ5ICMjMSMjMnslCi0gICAgICAgIFxwZGZvdXRsaW5lIGdvdG8gbmFtZXtccGRmbWtwZ257IyMyfX17IyMxfX0KICAgICAgIFxkZWZcc2VjZW50cnkgIyMxIyMyIyMzIyM0eyUKICAgICAgICAgXHBkZm91dGxpbmUgZ290byBuYW1le1xwZGZta3BnbnsjIzR9fWNvdW50LVxleHBudW1iZXJ7c2VjIyMyLiMjM317IyMxfX0KLSAgICAgIFxkZWZcdW5udW1ic2VjZW50cnkgIyMxIyMyeyUKLSAgICAgICAgXHBkZm91dGxpbmUgZ290byBuYW1le1xwZGZta3BnbnsjIzJ9fXsjIzF9fQogICAgICAgXGRlZlxzdWJzZWNlbnRyeSAjIzEjIzIjIzMjIzQjIzV7JQogICAgICAgICBccGRmb3V0bGluZSBnb3RvIG5hbWV7XHBkZm1rcGdueyMjNX19Y291bnQtXGV4cG51bWJlcntzdWJzZWMjIzIuIyMzLiMjNH17IyMxfX0KLSAgICAgIFxkZWZcdW5udW1ic3Vic2VjZW50cnkgIyMxIyMyeyUKLSAgICAgICAgXHBkZm91dGxpbmUgZ290byBuYW1le1xwZGZta3BnbnsjIzJ9fXsjIzF9fQogICAgICAgXGRlZlxzdWJzdWJzZWNlbnRyeSAjIzEjIzIjIzMjIzQjIzUjIzZ7JQogICAgICAgICBccGRmb3V0bGluZSBnb3RvIG5hbWV7XHBkZm1rcGdueyMjNn19eyMjMX19Ci0gICAgICBcZGVmXHVubnVtYnN1YnN1YnNlY2VudHJ5ICMjMSMjMnslCi0gICAgICAgIFxwZGZvdXRsaW5lIGdvdG8gbmFtZXtccGRmbWtwZ257IyMyfX17IyMxfX0KKyAgICAgIFxsZXRcYXBwZW5kaXhlbnRyeSA9IFxjaGFwZW50cnkKKyAgICAgIFxsZXRcdW5udW1iY2hhcGVudHJ5ID0gXGNoYXBlbnRyeQorICAgICAgXGxldFx1bm51bWJzZWNlbnRyeSA9IFxzZWNlbnRyeQorICAgICAgXGxldFx1bm51bWJzdWJzZWNlbnRyeSA9IFxzdWJzZWNlbnRyeQorICAgICAgXGxldFx1bm51bWJzdWJzdWJzZWNlbnRyeSA9IFxzdWJzdWJzZWNlbnRyeQorICAgICAgJQorICAgICAgJSBNYWtlIHNwZWNpYWwgY2hhcmFjdGVycyBub3JtYWwgZm9yIHdyaXRpbmcgdG8gdGhlIHBkZiBmaWxlLgorICAgICAgJSAKKyAgICAgIFxpbmRleG5vZm9udHMKKyAgICAgIFxsZXRcdHQ9XHJlbGF4CisgICAgICBcdHVybm9mZmFjdGl2ZQogICAgICAgXGlucHV0IFxqb2JuYW1lLnRvYwotICAgIFxlZ3JvdXBcZmkKKyAgICBcZW5kZ3JvdXBcZmkKICAgfX0KICAgXGRlZlxtYWtlbGlua3MgIzEseyUKICAgICBcZGVmXHBhcmFtc3sjMX1cZGVmXEV7RU5EfSUKQEAgLTk4Niw2ICsxMTMxLDcgQEAKICAgXGRlZlxwZGZ1cmwjMXslCiAgICAgXGJlZ2luZ3JvdXAKICAgICAgIFxub3JtYWx0dXJub2ZmYWN0aXZlXGRlZlxAe0B9JQorICAgICAgXGxldFx2YWx1ZT1cZXhwYW5kYWJsZXZhbHVlCiAgICAgICBcbGVhdmV2bW9kZVxSZWQKICAgICAgIFxzdGFydGxpbmsgYXR0cnsvQm9yZGVyIFswIDAgMF19JQogICAgICAgICB1c2Vyey9TdWJ0eXBlIC9MaW5rIC9BIDw8IC9TIC9VUkkgL1VSSSAoIzEpID4+fSUKQEAgLTEwMTMsOSArMTE1OSw4IEBACiAgIFxkZWZcbWFrZWxpbmt7XGFkZHRva2Vuc3tcdG9rc0J9JQogICAgIHtcbm9leHBhbmRccGRmbGlua3tcdGhlXHRva3NDfX1cdG9rc0M9e31cZ2xvYmFsXGNvdW50QT0wfQogICBcZGVmXHBkZmxpbmsjMXslCi0gICAgXHN0YXJ0bGluayBhdHRyey9Cb3JkZXIgWzAgMCAwXX0gZ290byBuYW1le1xta3BnbnsjMX19CisgICAgXHN0YXJ0bGluayBhdHRyey9Cb3JkZXIgWzAgMCAwXX0gZ290byBuYW1le1xwZGZta3BnbnsjMX19CiAgICAgXGxpbmtjb2xvciAjMVxlbmRsaW5rfQotICBcZGVmXG1rcGduIzF7IzFAfSAKICAgXGRlZlxkb25le1xlZGVmXHN0e1xnbG9iYWxcbm9leHBhbmRcdG9rc0E9e1x0aGVcdG9rc0J9fVxzdH0KIFxmaSAlIFxpZnhccGRmb3V0cHV0CiAKQEAgLTEwMzIsOSArMTE3NywyNiBAQAogJSBXZSBkb24ndCBuZWVkIG1hdGggZm9yIHRoaXMgb25lLgogXGRlZlx0dHNse1x0ZW50dHNsfQogCi0lIFVzZSBDb21wdXRlciBNb2Rlcm4gZm9udHMgYXQgXG1hZ3N0ZXBoYWxmICgxMXB0KS4KLVxuZXdjb3VudFxtYWlubWFnc3RlcAotXG1haW5tYWdzdGVwPVxtYWdzdGVwaGFsZgorJSBEZWZhdWx0IGxlYWRpbmcuCitcbmV3ZGltZW5cdGV4dGxlYWRpbmcgIFx0ZXh0bGVhZGluZyA9IDEzLjJwdAorCislIFNldCB0aGUgYmFzZWxpbmVza2lwIHRvICMxLCBhbmQgdGhlIGxpbmVza2lwIGFuZCBzdHJ1dCBzaXplCislIGNvcnJlc3BvbmRpbmdseS4gIFRoZXJlIGlzIG5vIGRlZXAgbWVhbmluZyBiZWhpbmQgdGhlc2UgbWFnaWMgbnVtYmVycworJSB1c2VkIGFzIGZhY3RvcnM7IHRoZXkganVzdCBtYXRjaCAoY2xvc2VseSBlbm91Z2gpIHdoYXQgS251dGggZGVmaW5lZC4KKyUKK1xkZWZcbGluZXNraXBmYWN0b3J7LjA4MzMzfQorXGRlZlxzdHJ1dGhlaWdodHBlcmNlbnR7LjcwODMzfQorXGRlZlxzdHJ1dGRlcHRocGVyY2VudCB7LjI5MTY3fQorJQorXGRlZlxzZXRsZWFkaW5nIzF7JQorICBcbm9ybWFsYmFzZWxpbmVza2lwID0gIzFccmVsYXgKKyAgXG5vcm1hbGxpbmVza2lwID0gXGxpbmVza2lwZmFjdG9yXG5vcm1hbGJhc2VsaW5lc2tpcAorICBcbm9ybWFsYmFzZWxpbmVzCisgIFxzZXRib3hcc3RydXRib3ggPVxoYm94eyUKKyAgICBcdnJ1bGUgd2lkdGgwcHQgaGVpZ2h0XHN0cnV0aGVpZ2h0cGVyY2VudFxiYXNlbGluZXNraXAKKyAgICAgICAgICAgICAgICAgICAgZGVwdGggXHN0cnV0ZGVwdGhwZXJjZW50IFxiYXNlbGluZXNraXAKKyAgfSUKK30KIAogJSBTZXQgdGhlIGZvbnQgbWFjcm8gIzEgdG8gdGhlIGZvbnQgbmFtZWQgIzIsIGFkZGluZyBvbiB0aGUKICUgc3BlY2lmaWVkIGZvbnQgcHJlZml4IChub3JtYWxseSBgY20nKS4KQEAgLTEwNjQsMTcgKzEyMjYsMjEgQEAKIFxkZWZcc2NzaGFwZXtjc2N9CiBcZGVmXHNjYnNoYXBle2NzY30KIAorXG5ld2NvdW50XG1haW5tYWdzdGVwCiBcaWZ4XGJpZ2dlclxyZWxheAotXGxldFxtYWlubWFnc3RlcD1cbWFnc3RlcDEKLVxzZXRmb250XHRleHRybVxybXNoYXBlezEyfXsxMDAwfQotXHNldGZvbnRcdGV4dHR0XHR0c2hhcGV7MTJ9ezEwMDB9CisgICUgbm90IHJlYWxseSBzdXBwb3J0ZWQuCisgIFxtYWlubWFnc3RlcD1cbWFnc3RlcDEKKyAgXHNldGZvbnRcdGV4dHJtXHJtc2hhcGV7MTJ9ezEwMDB9CisgIFxzZXRmb250XHRleHR0dFx0dHNoYXBlezEyfXsxMDAwfQogXGVsc2UKLVxzZXRmb250XHRleHRybVxybXNoYXBlezEwfXtcbWFpbm1hZ3N0ZXB9Ci1cc2V0Zm9udFx0ZXh0dHRcdHRzaGFwZXsxMH17XG1haW5tYWdzdGVwfQorICBcbWFpbm1hZ3N0ZXA9XG1hZ3N0ZXBoYWxmCisgIFxzZXRmb250XHRleHRybVxybXNoYXBlezEwfXtcbWFpbm1hZ3N0ZXB9CisgIFxzZXRmb250XHRleHR0dFx0dHNoYXBlezEwfXtcbWFpbm1hZ3N0ZXB9CiBcZmkKLSUgSW5zdGVhZCBvZiBjbWIxMCwgeW91IG1hbnkgd2FudCB0byB1c2UgY21ieDEwLgorJSBJbnN0ZWFkIG9mIGNtYjEwLCB5b3UgbWF5IHdhbnQgdG8gdXNlIGNtYngxMC4KICUgY21ieDEwIGlzIGEgcHJldHRpZXIgZm9udCBvbiBpdHMgb3duLCBidXQgY21iMTAKLSUgbG9va3MgYmV0dGVyIHdoZW4gZW1iZWRkZWQgaW4gYSBsaW5lIHdpdGggY21yMTAuCislIGxvb2tzIGJldHRlciB3aGVuIGVtYmVkZGVkIGluIGEgbGluZSB3aXRoIGNtcjEwCislIChpbiBCb2IncyBvcGluaW9uKS4KIFxzZXRmb250XHRleHRiZlxiZnNoYXBlezEwfXtcbWFpbm1hZ3N0ZXB9CiBcc2V0Zm9udFx0ZXh0aXRcaXRzaGFwZXsxMH17XG1haW5tYWdzdGVwfQogXHNldGZvbnRcdGV4dHNsXHNsc2hhcGV7MTB9e1xtYWlubWFnc3RlcH0KQEAgLTExMDEsNiArMTI2NywxOCBAQAogXGZvbnRcc21hbGxpPWNtbWk5CiBcZm9udFxzbWFsbHN5PWNtc3k5CiAKKyUgRm9udHMgZm9yIHNtYWxsIGV4YW1wbGVzICg4cHQpLgorXHNldGZvbnRcc21hbGxlcnJtXHJtc2hhcGV7OH17MTAwMH0KK1xzZXRmb250XHNtYWxsZXJ0dFx0dHNoYXBlezh9ezEwMDB9Citcc2V0Zm9udFxzbWFsbGVyYmZcYmZzaGFwZXsxMH17ODAwfQorXHNldGZvbnRcc21hbGxlcml0XGl0c2hhcGV7OH17MTAwMH0KK1xzZXRmb250XHNtYWxsZXJzbFxzbHNoYXBlezh9ezEwMDB9Citcc2V0Zm9udFxzbWFsbGVyc2Zcc2ZzaGFwZXs4fXsxMDAwfQorXHNldGZvbnRcc21hbGxlcnNjXHNjc2hhcGV7MTB9ezgwMH0KK1xzZXRmb250XHNtYWxsZXJ0dHNsXHR0c2xzaGFwZXsxMH17ODAwfQorXGZvbnRcc21hbGxlcmk9Y21taTgKK1xmb250XHNtYWxsZXJzeT1jbXN5OAorCiAlIEZvbnRzIGZvciB0aXRsZSBwYWdlOgogXHNldGZvbnRcdGl0bGVybVxybWJzaGFwZXsxMn17XG1hZ3N0ZXAzfQogXHNldGZvbnRcdGl0bGVpdFxpdGJzaGFwZXsxMH17XG1hZ3N0ZXA0fQpAQCAtMTExMyw2ICsxMjkxLDcgQEAKIFxmb250XHRpdGxlaT1jbW1pMTIgc2NhbGVkIFxtYWdzdGVwMwogXGZvbnRcdGl0bGVzeT1jbXN5MTAgc2NhbGVkIFxtYWdzdGVwNAogXGRlZlxhdXRob3JybXtcc2Vjcm19CitcZGVmXGF1dGhvcnR0e1xzZWN0dH0KIAogJSBDaGFwdGVyIChhbmQgdW5udW1iZXJlZCkgZm9udHMgKDE3LjI4cHQpLgogXHNldGZvbnRcY2hhcHJtXHJtYnNoYXBlezEyfXtcbWFnc3RlcDJ9CkBAIC0xMTM4LDIwICsxMzE3LDYgQEAKIFxmb250XHNlY2k9Y21taTEyIHNjYWxlZCBcbWFnc3RlcDEKIFxmb250XHNlY3N5PWNtc3kxMCBzY2FsZWQgXG1hZ3N0ZXAyCiAKLSUgXHNldGZvbnRcc3NlY3JtXGJ4c2hhcGV7MTB9e1xtYWdzdGVwMX0gICAgJSBUaGlzIHNpemUgYW4gZm9udCBsb29rZWQgYmFkLgotJSBcc2V0Zm9udFxzc2VjaXRcaXRzaGFwZXsxMH17XG1hZ3N0ZXAxfSAgICAlIFRoZSBsZXR0ZXJzIHdlcmUgdG9vIGNyb3dkZWQuCi0lIFxzZXRmb250XHNzZWNzbFxzbHNoYXBlezEwfXtcbWFnc3RlcDF9Ci0lIFxzZXRmb250XHNzZWN0dFx0dHNoYXBlezEwfXtcbWFnc3RlcDF9Ci0lIFxzZXRmb250XHNzZWNzZlxzZnNoYXBlezEwfXtcbWFnc3RlcDF9Ci0KLSVcc2V0Zm9udFxzc2Vjcm1cYmZzaGFwZXsxMH17MTMxNX0gICAgICAlIE5vdGUgdGhlIHVzZSBvZiBjbWIgcmF0aGVyIHRoYW4gY21ieC4KLSVcc2V0Zm9udFxzc2VjaXRcaXRzaGFwZXsxMH17MTMxNX0gICAgICAlIEFsc28sIHRoZSBzaXplIGlzIGEgbGl0dGxlIGxhcmdlciB0aGFuCi0lXHNldGZvbnRcc3NlY3NsXHNsc2hhcGV7MTB9ezEzMTV9ICAgICAgJSBiZWluZyBzY2FsZWQgbWFnc3RlcDEuCi0lXHNldGZvbnRcc3NlY3R0XHR0c2hhcGV7MTB9ezEzMTV9Ci0lXHNldGZvbnRcc3NlY3NmXHNmc2hhcGV7MTB9ezEzMTV9Ci0KLSVcbGV0XHNzZWNiZj1cc3NlY3JtCi0KICUgU3Vic2VjdGlvbiBmb250cyAoMTMuMTVwdCkuCiBcc2V0Zm9udFxzc2Vjcm1ccm1ic2hhcGV7MTJ9e1xtYWdzdGVwaGFsZn0KIFxzZXRmb250XHNzZWNpdFxpdGJzaGFwZXsxMH17MTMxNX0KQEAgLTExNjgsMTcgKzEzMzMsMTYgQEAKIAogJSBJbiBvcmRlciBmb3IgdGhlIGZvbnQgY2hhbmdlcyB0byBhZmZlY3QgbW9zdCBtYXRoIHN5bWJvbHMgYW5kIGxldHRlcnMsCiAlIHdlIGhhdmUgdG8gZGVmaW5lIHRoZSBcdGV4dGZvbnQgb2YgdGhlIHN0YW5kYXJkIGZhbWlsaWVzLiAgU2luY2UKLSUgdGV4aW5mbyBkb2Vzbid0IGFsbG93IGZvciBwcm9kdWNpbmcgc3Vic2NyaXB0cyBhbmQgc3VwZXJzY3JpcHRzLCB3ZQotJSBkb24ndCBib3RoZXIgdG8gcmVzZXQgXHNjcmlwdGZvbnQgYW5kIFxzY3JpcHRzY3JpcHRmb250ICh3aGljaCB3b3VsZAotJSBhbHNvIHJlcXVpcmUgbG9hZGluZyBhIGxvdCBtb3JlIGZvbnRzKS4KKyUgdGV4aW5mbyBkb2Vzbid0IGFsbG93IGZvciBwcm9kdWNpbmcgc3Vic2NyaXB0cyBhbmQgc3VwZXJzY3JpcHRzIGV4Y2VwdAorJSBpbiB0aGUgbWFpbiB0ZXh0LCB3ZSBkb24ndCBib3RoZXIgdG8gcmVzZXQgXHNjcmlwdGZvbnQgYW5kCislIFxzY3JpcHRzY3JpcHRmb250ICh3aGljaCB3b3VsZCBhbHNvIHJlcXVpcmUgbG9hZGluZyBhIGxvdCBtb3JlIGZvbnRzKS4KICUKIFxkZWZccmVzZXRtYXRoZm9udHN7JQotICBcdGV4dGZvbnQwID0gXHRlbnJtIFx0ZXh0Zm9udDEgPSBcdGVuaSBcdGV4dGZvbnQyID0gXHRlbnN5Ci0gIFx0ZXh0Zm9udFxpdGZhbSA9IFx0ZW5pdCBcdGV4dGZvbnRcc2xmYW0gPSBcdGVuc2wgXHRleHRmb250XGJmZmFtID0gXHRlbmJmCi0gIFx0ZXh0Zm9udFx0dGZhbSA9IFx0ZW50dCBcdGV4dGZvbnRcc2ZmYW0gPSBcdGVuc2YKKyAgXHRleHRmb250MD1cdGVucm0gXHRleHRmb250MT1cdGVuaSBcdGV4dGZvbnQyPVx0ZW5zeQorICBcdGV4dGZvbnRcaXRmYW09XHRlbml0IFx0ZXh0Zm9udFxzbGZhbT1cdGVuc2wgXHRleHRmb250XGJmZmFtPVx0ZW5iZgorICBcdGV4dGZvbnRcdHRmYW09XHRlbnR0IFx0ZXh0Zm9udFxzZmZhbT1cdGVuc2YKIH0KIAotCiAlIFRoZSBmb250LWNoYW5naW5nIGNvbW1hbmRzIHJlZGVmaW5lIHRoZSBtZWFuaW5ncyBvZiBcdGVuU1RZTEUsIGluc3RlYWQKICUgb2YganVzdCBcU1RZTEUuICBXZSBkbyB0aGlzIHNvIHRoYXQgZm9udCBjaGFuZ2VzIHdpbGwgY29udGludWUgdG8gd29yawogJSBpbiBtYXRoIG1vZGUsIHdoZXJlIGl0IGlzIHRoZSBjdXJyZW50IFxmYW0gdGhhdCBpcyByZWxldmFudCBpbiBtb3N0CkBAIC0xMTg5LDcgKzEzNTMsNyBAQAogICBcbGV0XHRlbnJtPVx0ZXh0cm0gXGxldFx0ZW5pdD1cdGV4dGl0IFxsZXRcdGVuc2w9XHRleHRzbAogICBcbGV0XHRlbmJmPVx0ZXh0YmYgXGxldFx0ZW50dD1cdGV4dHR0IFxsZXRcc21hbGxjYXBzPVx0ZXh0c2MKICAgXGxldFx0ZW5zZj1cdGV4dHNmIFxsZXRcdGVuaT1cdGV4dGkgXGxldFx0ZW5zeT1cdGV4dHN5IFxsZXRcdGVudHRzbD1cdGV4dHR0c2wKLSAgXHJlc2V0bWF0aGZvbnRzfQorICBccmVzZXRtYXRoZm9udHMgXHNldGxlYWRpbmd7XHRleHRsZWFkaW5nfX0KIFxkZWZcdGl0bGVmb250c3slCiAgIFxsZXRcdGVucm09XHRpdGxlcm0gXGxldFx0ZW5pdD1cdGl0bGVpdCBcbGV0XHRlbnNsPVx0aXRsZXNsCiAgIFxsZXRcdGVuYmY9XHRpdGxlYmYgXGxldFx0ZW50dD1cdGl0bGV0dCBcbGV0XHNtYWxsY2Fwcz1cdGl0bGVzYwpAQCAtMTIxOCw3ICsxMzgyLDMyIEBACiAgIFxsZXRcdGVuYmY9XHNtYWxsYmYgXGxldFx0ZW50dD1cc21hbGx0dCBcbGV0XHNtYWxsY2Fwcz1cc21hbGxzYwogICBcbGV0XHRlbnNmPVxzbWFsbHNmIFxsZXRcdGVuaT1cc21hbGxpIFxsZXRcdGVuc3k9XHNtYWxsc3kKICAgXGxldFx0ZW50dHNsPVxzbWFsbHR0c2wKLSAgXHJlc2V0bWF0aGZvbnRzIFxzZXRsZWFkaW5nezExcHR9fQorICBccmVzZXRtYXRoZm9udHMgXHNldGxlYWRpbmd7MTAuNXB0fX0KK1xkZWZcc21hbGxlcmZvbnRzeyUKKyAgXGxldFx0ZW5ybT1cc21hbGxlcnJtIFxsZXRcdGVuaXQ9XHNtYWxsZXJpdCBcbGV0XHRlbnNsPVxzbWFsbGVyc2wKKyAgXGxldFx0ZW5iZj1cc21hbGxlcmJmIFxsZXRcdGVudHQ9XHNtYWxsZXJ0dCBcbGV0XHNtYWxsY2Fwcz1cc21hbGxlcnNjCisgIFxsZXRcdGVuc2Y9XHNtYWxsZXJzZiBcbGV0XHRlbmk9XHNtYWxsZXJpIFxsZXRcdGVuc3k9XHNtYWxsZXJzeQorICBcbGV0XHRlbnR0c2w9XHNtYWxsZXJ0dHNsCisgIFxyZXNldG1hdGhmb250cyBcc2V0bGVhZGluZ3s5LjVwdH19CisKKyUgU2V0IHRoZSBmb250cyB0byB1c2Ugd2l0aCB0aGUgQHNtYWxsLi4uIGVudmlyb25tZW50cy4KK1xsZXRcc21hbGxleGFtcGxlZm9udHMgPSBcc21hbGxmb250cworCislIEFib3V0IFxzbWFsbGV4YW1wbGVmb250cy4gIElmIHdlIHVzZSBcc21hbGxmb250cyAoOXB0KSwgQHNtYWxsZXhhbXBsZQorJSBjYW4gZml0IHRoaXMgbWFueSBjaGFyYWN0ZXJzOgorJSAgIDguNXgxMT04NiAgIHNtYWxsYm9vaz03MiAgYTQ9OTAgIGE1PTY5CislIElmIHdlIHVzZSBcc21hbGxlcmZvbnRzICg4cHQpLCB0aGVuIHdlIGNhbiBmaXQgdGhpcyBtYW55IGNoYXJhY3RlcnM6CislICAgOC41eDExPTkwKyAgc21hbGxib29rPTgwICBhND05MCsgIGE1PTc3CislIEZvciBtZSwgc3ViamVjdGl2ZWx5LCB0aGUgZmV3IGV4dHJhIGNoYXJhY3RlcnMgdGhhdCBmaXQgYXJlbid0IHdvcnRoCislIHRoZSBhZGRpdGlvbmFsIHNtYWxsbmVzcyBvZiA4cHQuICBTbyBJJ20gbWFraW5nIHRoZSBkZWZhdWx0IDlwdC4KKyUgCislIEJ5IHRoZSB3YXksIGZvciBjb21wYXJpc29uLCBoZXJlJ3Mgd2hhdCBmaXRzIHdpdGggQGV4YW1wbGUgKDEwcHQpOgorJSAgIDguNXgxMT03MSAgc21hbGxib29rPTYwICBhND03NSAgYTU9NTgKKyUgCislIEkgd2lzaCB3ZSB1c2VkIEE0IHBhcGVyIG9uIHRoaXMgc2lkZSBvZiB0aGUgQXRsYW50aWMuCislIAorJSAtLWthcmwsIDI0amFuMDMuCisKIAogJSBTZXQgdXAgdGhlIGRlZmF1bHQgZm9udHMsIHNvIHdlIGNhbiB1c2UgdGhlbSBmb3IgY3JlYXRpbmcgYm94ZXMuCiAlCkBAIC0xMjM1LDYgKzE0MjQsNyBAQAogXHNldGZvbnRcc2hvcnRjb250cm1ccm1zaGFwZXsxMn17MTAwMH0KIFxzZXRmb250XHNob3J0Y29udGJmXGJ4c2hhcGV7MTJ9ezEwMDB9CiBcc2V0Zm9udFxzaG9ydGNvbnRzbFxzbHNoYXBlezEyfXsxMDAwfQorXHNldGZvbnRcc2hvcnRjb250dHRcdHRzaGFwZXsxMn17MTAwMH0KIAogJSUgQWRkIHNjcmliZS1saWtlIGZvbnQgZW52aXJvbm1lbnRzLCBwbHVzIEBsIGZvciBpbmxpbmUgbGlzcCAodXN1YWxseSBzYW5zCiAlJSBzZXJpZikgYW5kIEBpaSBmb3IgVGVYIGl0YWxpYwpAQCAtMTI0Miw4ICsxNDMyLDggQEAKICUgXHNtYXJ0aXRhbGlje0FSR30gb3V0cHV0cyBhcmcgaW4gaXRhbGljcywgZm9sbG93ZWQgYnkgYW4gaXRhbGljIGNvcnJlY3Rpb24KICUgdW5sZXNzIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyIGlzIHN1Y2ggYXMgbm90IHRvIG5lZWQgb25lLgogXGRlZlxzbWFydGl0YWxpY3h7XGlmeFxuZXh0LFxlbHNlXGlmeFxuZXh0LVxlbHNlXGlmeFxuZXh0LlxlbHNlXC9cZmlcZmlcZml9Ci1cZGVmXHNtYXJ0c2xhbnRlZCMxe3tcc2wgIzF9XGZ1dHVyZWxldFxuZXh0XHNtYXJ0aXRhbGljeH0KLVxkZWZcc21hcnRpdGFsaWMjMXt7XGl0ICMxfVxmdXR1cmVsZXRcbmV4dFxzbWFydGl0YWxpY3h9CitcZGVmXHNtYXJ0c2xhbnRlZCMxe3tcaWZ1c2luZ3R0XHR0c2xcc2wgIzF9XGZ1dHVyZWxldFxuZXh0XHNtYXJ0aXRhbGljeH0KK1xkZWZcc21hcnRpdGFsaWMjMXt7XGlmdXNpbmd0dFx0dHNsXGl0ICMxfVxmdXR1cmVsZXRcbmV4dFxzbWFydGl0YWxpY3h9CiAKIFxsZXRcaT1cc21hcnRpdGFsaWMKIFxsZXRcdmFyPVxzbWFydHNsYW50ZWQKQEAgLTEyNjEsNiArMTQ1MSwxNyBAQAogXGRlZlxub2h5cGhlbmF0aW9ue1xoeXBoZW5jaGFyXGZvbnQgPSAtMSAgXGFmdGVyZ3JvdXBccmVzdG9yZWh5cGhlbmF0aW9ufQogXGRlZlxyZXN0b3JlaHlwaGVuYXRpb257XGh5cGhlbmNoYXJcZm9udCA9IGAtIH0KIAorJSBTZXQgc2Zjb2RlIHRvIG5vcm1hbCBmb3IgdGhlIGNoYXJzIHRoYXQgdXN1YWxseSBoYXZlIGFub3RoZXIgdmFsdWUuCislIENhbid0IHVzZSBwbGFpbidzIFxmcmVuY2hzcGFjaW5nIGJlY2F1c2UgaXQgdXNlcyB0aGUgYFx4IG5vdGF0aW9uLCBhbmQKKyUgc29tZXRpbWVzIFx4IGhhcyBhbiBhY3RpdmUgZGVmaW5pdGlvbiB0aGF0IG1lc3NlcyB0aGluZ3MgdXAuCislIAorXGNhdGNvZGVgQD0xMQorICBcZGVmXGZyZW5jaHNwYWNpbmd7JQorICAgIFxzZmNvZGVcZG90Q2hhciAgPVxAbSBcc2Zjb2RlXHF1ZXN0Q2hhcj1cQG0gXHNmY29kZVxleGNsYW1DaGFyPVxAbQorICAgIFxzZmNvZGVcY29sb25DaGFyPVxAbSBcc2Zjb2RlXHNlbWlDaGFyID1cQG0gXHNmY29kZVxjb21tYUNoYXIgPVxAbQorICB9CitcY2F0Y29kZWBAPVxvdGhlcgorCiBcZGVmXHQjMXslCiAgIHtcdHQgXHJhd2JhY2tzbGFzaCBcZnJlbmNoc3BhY2luZyAjMX0lCiAgIFxudWxsCkBAIC0xMzMyLDExICsxNTMzLDE5IEBACiAKIFxkZWZccmVhbGRhc2h7LX0KIFxkZWZcY29kZWRhc2h7LVxkaXNjcmV0aW9uYXJ5e317fXt9fQotXGRlZlxjb2RldW5kZXJ7XGlmdXNpbmd0dHtcbm9ybWFsdW5kZXJzY29yZVxkaXNjcmV0aW9uYXJ5e317fXt9fXtcX319CitcZGVmXGNvZGV1bmRlcnslCisgICUgdGhpcyBpcyBhbGwgc28gQG1hdGh7QGNvZGV7dmFyX25hbWV9KzF9IGNhbiB3b3JrLiAgSW4gbWF0aCBtb2RlLCBfCisgICUgaXMgImFjdGl2ZSIgKG1hdGhjb2RlIjgwMDApIGFuZCBcbm9ybWFsdW5kZXJzY29yZSAob3IgXGNoYXI5NSwgZXRjLikKKyAgJSB3aWxsIHRoZXJlZm9yZSBleHBhbmQgdGhlIGFjdGl2ZSBkZWZpbml0aW9uIG9mIF8sIHdoaWNoIGlzIHVzCisgICUgKGluc2lkZSBAY29kZSB0aGF0IGlzKSwgdGhlcmVmb3JlIGFuIGVuZGxlc3MgbG9vcC4KKyAgXGlmdXNpbmd0dHtcaWZtbW9kZQorICAgICAgICAgICAgICAgXG1hdGhjaGFyIjA3NUYgJSBjbGFzcyAwPW9yZGluYXJ5LCBmYW1pbHkgNz10dGZhbSwgcG9zIDB4NUY9Xy4KKyAgICAgICAgICAgICBcZWxzZVxub3JtYWx1bmRlcnNjb3JlIFxmaQorICAgICAgICAgICAgIFxkaXNjcmV0aW9uYXJ5e317fXt9fSUKKyAgICAgICAgICAgIHtcX30lCit9CiBcZGVmXGNvZGV4ICMxe1x0Y2xvc2V7IzF9XGVuZGdyb3VwfQogCi0lXGxldFxleHA9XHRjbG9zZSAgJVdhcyB0ZW1wb3JhcnkKLQogJSBAa2JkIGlzIGxpa2UgQGNvZGUsIGV4Y2VwdCB0aGF0IGlmIHRoZSBhcmd1bWVudCBpcyBqdXN0IG9uZSBAa2V5IGNvbW1hbmQsCiAlIHRoZW4gQGtiZCBoYXMgbm8gZWZmZWN0LgogCkBAIC0xMzUyLDE1ICsxNTYxLDE3IEBACiAgICAgXGdkZWZca2JkZXhhbXBsZWZvbnR7XHR0c2x9XGdkZWZca2JkZm9udHtcdHR9JQogICBcZWxzZVxpZnhcYXJnXHdvcmRjb2RlCiAgICAgXGdkZWZca2JkZXhhbXBsZWZvbnR7XHR0fVxnZGVmXGtiZGZvbnR7XHR0fSUKKyAgXGVsc2UKKyAgICBcZXJyaGVscCA9IFxFTXNpbXBsZQorICAgIFxlcnJtZXNzYWdle1Vua25vd24gQGtiZGlucHV0c3R5bGUgYFxhcmcnfSUKICAgXGZpXGZpXGZpCiB9CiBcZGVmXHdvcmRkaXN0aW5jdHtkaXN0aW5jdH0KIFxkZWZcd29yZGV4YW1wbGV7ZXhhbXBsZX0KIFxkZWZcd29yZGNvZGV7Y29kZX0KIAotJSBEZWZhdWx0IGlzIGtiZGlucHV0ZGlzdGluY3QuICAoVG9vIG11Y2ggb2YgYSBoYXNzbGUgdG8gY2FsbCB0aGUgbWFjcm8sCi0lIHRoZSBjYXRjb2RlcyBhcmUgd3JvbmcgZm9yIHBhcnNlYXJnIHRvIHdvcmsuKQotXGdkZWZca2JkZXhhbXBsZWZvbnR7XHR0c2x9XGdkZWZca2JkZm9udHtcdHRzbH0KKyUgRGVmYXVsdCBpcyBgZGlzdGluY3QuJworXGtiZGlucHV0c3R5bGUgZGlzdGluY3QKIAogXGRlZlx4a2V5e1xrZXl9CiBcZGVmXGtiZGZvbyMxIzIjM1xwYXJ7XGRlZlxvbmV7IzF9XGRlZlx0aHJlZXsjM31cZGVmXHRocmVleHs/P30lCkBAIC0xNDc0LDcgKzE2ODUsOCBAQAogICAgXGxldFxzdWJ0aXRsZXJtPVx0ZW5ybQogICAgXGRlZlxzdWJ0aXRsZWZvbnR7XHN1YnRpdGxlcm0gXG5vcm1hbGJhc2VsaW5lc2tpcCA9IDEzcHQgXG5vcm1hbGJhc2VsaW5lc30lCiAgICAlCi0gICBcZGVmXGF1dGhvcmZvbnR7XGF1dGhvcnJtIFxub3JtYWxiYXNlbGluZXNraXAgPSAxNnB0IFxub3JtYWxiYXNlbGluZXN9JQorICAgXGRlZlxhdXRob3Jmb250e1xhdXRob3JybSBcbm9ybWFsYmFzZWxpbmVza2lwID0gMTZwdCBcbm9ybWFsYmFzZWxpbmVzCisgICAgICAgICAgICAgICAgICAgXGxldFx0dD1cYXV0aG9ydHR9JQogICAgJQogICAgJSBMZWF2ZSBzb21lIHNwYWNlIGF0IHRoZSB2ZXJ5IHRvcCBvZiB0aGUgcGFnZS4KICAgIFx2Z2x1ZVx0aXRsZXBhZ2V0b3BnbHVlCkBAIC0xNTIxLDYgKzE3MzMsMTAgQEAKICAgIFxvbGRwYWdlCiAgICBcZW5kZ3JvdXAKICAgICUKKyAgICUgTmVlZCB0aGlzIGJlZm9yZSB0aGUgXC4uLmFmdGVydGl0bGVwYWdlIGNoZWNrcyBzbyB0aGF0IGlmIHRoZXkgYXJlCisgICAlIGluIGVmZmVjdCB0aGUgdG9jIHBhZ2VzIHdpbGwgY29tZSBvdXQgd2l0aCBwYWdlIG51bWJlcnMuCisgICBcSEVBRElOR1NvbgorICAgJQogICAgJSBJZiB0aGV5IHdhbnQgc2hvcnQsIHRoZXkgY2VydGFpbmx5IHdhbnQgbG9uZyB0b28uCiAgICBcaWZzZXRzaG9ydGNvbnRlbnRzYWZ0ZXJ0aXRsZXBhZ2UKICAgICAgXHNob3J0Y29udGVudHMKQEAgLTE1MzQsMTAgKzE3NTAsNiBAQAogICAgICBcZ2xvYmFsXGxldFxjb250ZW50cyA9IFxyZWxheAogICAgICBcZ2xvYmFsXGxldFxzaG9ydGNvbnRlbnRzID0gXHJlbGF4CiAgICBcZmkKLSAgICUKLSAgIFxpZnBkZiBccGRmbWFrZXBhZ2VkZXN0dHJ1ZSBcZmkKLSAgICUKLSAgIFxIRUFESU5HU29uCiB9CiAKIFxkZWZcZmluaXNodGl0bGVwYWdleyUKQEAgLTE2NzAsNyArMTg4MiwxMCBAQAogfQogCiAlIFN1YnJvdXRpbmVzIHVzZWQgaW4gZ2VuZXJhdGluZyBoZWFkaW5ncwotJSBQcm9kdWNlcyBEYXkgTW9udGggWWVhciBzdHlsZSBvZiBvdXRwdXQuCislIFRoaXMgcHJvZHVjZXMgRGF5IE1vbnRoIFllYXIgc3R5bGUgb2Ygb3V0cHV0LgorJSBPbmx5IGRlZmluZSBpZiBub3QgYWxyZWFkeSBkZWZpbmVkLCBpbiBjYXNlIGEgdHhpLT8/LnRleCBmaWxlIGhhcyBzZXQKKyUgdXAgYSBkaWZmZXJlbnQgZm9ybWF0IChlLmcuLCB0eGktY3MudGV4IGRvZXMgdGhpcykuCitcaWZ4XHRvZGF5XHVuZGVmaW5lZAogXGRlZlx0b2RheXslCiAgIFxudW1iZXJcZGF5XHNwYWNlCiAgIFxpZmNhc2VcbW9udGgKQEAgLTE2NzksNiArMTg5NCw3IEBACiAgIFxvclxwdXR3b3JkTVNlcFxvclxwdXR3b3JkTU9jdFxvclxwdXR3b3JkTU5vdlxvclxwdXR3b3JkTURlYwogICBcZmkKICAgXHNwYWNlXG51bWJlclx5ZWFyfQorXGZpCiAKICUgQHNldHRpdGxlIGxpbmUuLi4gIHNwZWNpZmllcyB0aGUgdGl0bGUgb2YgdGhlIGRvY3VtZW50LCBmb3IgaGVhZGluZ3MuCiAlIEl0IGdlbmVyYXRlcyBubyBvdXRwdXQgb2YgaXRzIG93bi4KQEAgLTE3NTEsMTAgKzE5NjcsMTggQEAKICAgICAlIFxwYXJza2lwIGdsdWUgLS0gbG9naWNhbGx5IGl0J3MgcGFydCBvZiB0aGUgQGl0ZW0gd2UganVzdCBzdGFydGVkLgogICAgIFxub2JyZWFrIFx2c2tpcC1ccGFyc2tpcAogICAgICUKLSAgICAlIFN0b3AgYSBwYWdlIGJyZWFrIGF0IHRoZSBccGFyc2tpcCBnbHVlIGNvbWluZyB1cC4gIFVuZm9ydHVuYXRlbHkKKyAgICAlIFN0b3AgYSBwYWdlIGJyZWFrIGF0IHRoZSBccGFyc2tpcCBnbHVlIGNvbWluZyB1cC4gIChVbmZvcnR1bmF0ZWx5CiAgICAgJSB3ZSBjYW4ndCBwcmV2ZW50IGEgcG9zc2libGUgcGFnZSBicmVhayBhdCB0aGUgZm9sbG93aW5nCi0gICAgJSBcYmFzZWxpbmVza2lwIGdsdWUuCi0gICAgXG5vYnJlYWsKKyAgICAlIFxiYXNlbGluZXNraXAgZ2x1ZS4pICBIb3dldmVyLCBpZiB3aGF0IGZvbGxvd3MgaXMgYW4gZW52aXJvbm1lbnQKKyAgICAlIHN1Y2ggYXMgQGV4YW1wbGUsIHRoZXJlIHdpbGwgYmUgbm8gXHBhcnNraXAgZ2x1ZTsgdGhlbgorICAgICUgdGhlIG5lZ2F0aXZlIHZza2lwIHdlIGp1c3Qgd291bGQgY2F1c2UgdGhlIGV4YW1wbGUgYW5kIHRoZSBpdGVtIHRvCisgICAgJSBjcmFzaCB0b2dldGhlci4gIFNvIHdlIHVzZSB0aGlzIGJpemFycmUgdmFsdWUgb2YgMTAwMDEgYXMgYSBzaWduYWwKKyAgICAlIHRvIFxhYm92ZWVudmJyZWFrIHRvIGluc2VydCBccGFyc2tpcCBnbHVlIGFmdGVyIGFsbC4KKyAgICAlIChQb3NzaWJseSB0aGVyZSBhcmUgb3RoZXIgY29tbWFuZHMgdGhhdCBjb3VsZCBiZSBmb2xsb3dlZCBieQorICAgICUgQGV4YW1wbGUgd2hpY2ggbmVlZCB0aGUgc2FtZSB0cmVhdG1lbnQsIGJ1dCBub3Qgc2VjdGlvbiB0aXRsZXM7IG9yCisgICAgJSBtYXliZSBzZWN0aW9uIHRpdGxlcyBhcmUgdGhlIG9ubHkgc3BlY2lhbCBjYXNlIGFuZCB0aGV5IHNob3VsZCBiZQorICAgICUgcGVuYWx0eSAxMDAwMS4uLikKKyAgICBccGVuYWx0eSAxMDAwMQogICAgIFxlbmRncm91cAogICAgIFxpdGVteG5lZWRzbmVnYXRpdmV2c2tpcGZhbHNlCiAgIFxlbHNlCkBAIC0xODYwLDExICsyMDg0LDYgQEAKIFxkZWZcaXRlbWNvbnRlbnRzeyMxfSUKIFxsZXRcaXRlbT1caXRlbWl6ZWl0ZW19CiAKLSUgU2V0IHNmY29kZSB0byBub3JtYWwgZm9yIHRoZSBjaGFycyB0aGF0IHVzdWFsbHkgaGF2ZSBhbm90aGVyIHZhbHVlLgotJSBUaGVzZSBhcmUgYC4/ITo7LCcKLVxkZWZcZnJlbmNoc3BhY2luZ3tcc2Zjb2RlNDY9MTAwMCBcc2Zjb2RlNjM9MTAwMCBcc2Zjb2RlMzM9MTAwMAotICBcc2Zjb2RlNTg9MTAwMCBcc2Zjb2RlNTk9MTAwMCBcc2Zjb2RlNDQ9MTAwMCB9Ci0KICUgXHNwbGl0b2ZmIFRPS0VOU1xlbmRtYXJrIGRlZmluZXMgXGZpcnN0IHRvIGJlIHRoZSBmaXJzdCB0b2tlbiBpbgogJSBUT0tFTlMsIGFuZCBccmVzdCB0byBiZSB0aGUgcmVtYWluZGVyLgogJQpAQCAtMjA4Niw4ICsyMzA1LDggQEAKICAgICAgICAgIFxsZXRcZ29ccGlja3Vwd2hvbGVmcmFjdGlvbgogICAgICAgXGVsc2UKICAgICAgICAgIFxnbG9iYWxcYWR2YW5jZVxjb2xjb3VudCBieSAxCi0gICAgICAgICBcc2V0Ym94MD1caGJveHsjMVx1bnNraXAgfSUgQWRkIGEgbm9ybWFsIHdvcmQgc3BhY2UgYXMgYSBzZXBhcmF0b3I7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJSB0eXBpY2FsbHkgdGhhdCBpcyBhbHdheXMgaW4gdGhlIGlucHV0LCBhbnl3YXkuCisgICAgICAgICBcc2V0Ym94MD1caGJveHsjMVx1bnNraXBcc3BhY2V9JSBBZGQgYSBub3JtYWwgd29yZCBzcGFjZSBhcyBhCisgICAgICAgICAgICAgICAgICAgJSBzZXBhcmF0b3I7IHR5cGljYWxseSB0aGF0IGlzIGFsd2F5cyBpbiB0aGUgaW5wdXQsIGFueXdheS4KICAgICAgICAgIFxleHBhbmRhZnRlclx4ZGVmXGNzbmFtZSBjb2xcdGhlXGNvbGNvdW50XGVuZGNzbmFtZXtcdGhlXHdkMH0lCiAgICAgICBcZmkKICAgICBcZmkKQEAgLTIxMDIsMTggKzIzMjEsMTggQEAKICAgXGdvCiB9CiAKLSUgVGhpcyB1c2VkIHRvIGhhdmUgXGhza2lwMXNwLiAgQnV0IHRoZW4gdGhlIHNwYWNlIGluIGEgdGVtcGxhdGUgbGluZSBpcwotJSBub3QgZW5vdWdoLiAgVGhhdCBpcyBiYWQuICBTbyBsZXQncyBnbyBiYWNrIHRvIGp1c3QgJiB1bnRpbCB3ZQotJSBlbmNvdW50ZXIgdGhlIHByb2JsZW0gaXQgd2FzIGludGVuZGVkIHRvIHNvbHZlIGFnYWluLgotJSAtLWthcmwsIG5hdGhhbkBhY20ub3JnLCAyMGFwcjk5LgotXGRlZlx0YWJ7Jn0KLQogJSBAbXVsdGl0YWJsZSAuLi4gQGVuZCBtdWx0aXRhYmxlIGRlZmluaXRpb25zOgogJQogXGRlZlxtdWx0aXRhYmxle1xwYXJzZWFyZ1xkb3RhYmxlfQogXGRlZlxkb3RhYmxlIzF7XGJncm91cAogICBcdnNraXBccGFyc2tpcAotICBcbGV0XGl0ZW1cY3JjcgorICBcbGV0XGl0ZW09XGNyY3J3aXRoZm9vdG5vdGVzCisgICUgQSBcdGFiIHVzZWQgdG8gaW5jbHVkZSBcaHNraXAxc3AuICBCdXQgdGhlbiB0aGUgc3BhY2UgaW4gYSB0ZW1wbGF0ZQorICAlIGxpbmUgaXMgbm90IGVub3VnaC4gIFRoYXQgaXMgYmFkLiAgU28gbGV0J3MgZ28gYmFjayB0byBqdXN0ICYgdW50aWwKKyAgJSB3ZSBlbmNvdW50ZXIgdGhlIHByb2JsZW0gaXQgd2FzIGludGVuZGVkIHRvIHNvbHZlIGFnYWluLiAgLS1rYXJsLAorICAlIG5hdGhhbkBhY20ub3JnLCAyMGFwcjk5LgorICBcbGV0XHRhYj0mJQorICBcbGV0XHN0YXJ0Zm9vdGlucz1cc3RhcnRzYXZlZGZvb3Rub3RlCiAgIFx0b2xlcmFuY2U9OTUwMAogICBcaGJhZG5lc3M9OTUwMAogICBcc2V0bXVsdGl0YWJsZXNwYWNpbmcKQEAgLTIxMjEsNyArMjM0MCwxMSBAQAogICBccGFyaW5kZW50PVxtdWx0aXRhYmxlcGFyaW5kZW50CiAgIFxvdmVyZnVsbHJ1bGU9MHB0CiAgIFxnbG9iYWxcY29sY291bnQ9MAotICBcZGVmXEVtdWx0aXRhYmxle1xnbG9iYWxcc2V0cGVyY2VudGZhbHNlXGNyXGVncm91cFxlZ3JvdXB9JQorICBcZGVmXEVtdWx0aXRhYmxleyUKKyAgICBcZ2xvYmFsXHNldHBlcmNlbnRmYWxzZQorICAgIFxjcmNyd2l0aGZvb3Rub3Rlc1xjcmNyCisgICAgXGVncm91cFxlZ3JvdXAKKyAgfSUKICAgJQogICAlIFRvIHBhcnNlIGV2ZXJ5dGhpbmcgYmV0d2VlbiBAbXVsdGl0YWJsZSBhbmQgQGl0ZW06CiAgIFxzZXR1cHRhYmxlIzEgXGVuZHNldHVwdGFibGUKQEAgLTIyMTAsNiArMjQzMywyNSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlJSB0aGFuIHNraXAgYmV0d2VlbiBsaW5lcyBpbiB0aGUgdGFibGUuCiBcZml9CiAKKyUgSW4gY2FzZSBhIEBmb290bm90ZSBhcHBlYXJzIGluc2lkZSBhbiBhbGlnbm1lbnQsIHNhdmUgdGhlIGZvb3Rub3RlCislIHRleHQgdG8gYSBib3ggYW5kIG1ha2UgdGhlIFxpbnNlcnQgd2hlbiBhIHJvdyBvZiB0aGUgdGFibGUgaXMKKyUgZmluaXNoZWQuICBPdGhlcndpc2UsIHRoZSBpbnNlcnRpb24gaXMgbG9zdCwgaXQgbmV2ZXIgbWlncmF0ZXMgdG8gdGhlCislIG1haW4gdmVydGljYWwgbGlzdC4gIC0ta2FzYWwsIDIyamFuMDMuCislCitcbmV3Ym94XHNhdmVkZm9vdG5vdGVzCislCislIFxkb3RhYmxlIFxsZXQncyBcc3RhcnRmb290aW5zIHRvIHRoaXMsIHNvIHRoYXQgXGRvZm9vdG5vdGUgd2lsbCBjYWxsCislIGl0IGluc3RlYWQgb2Ygc3RhcnRpbmcgdGhlIGluc2VydGlvbiByaWdodCBhd2F5LgorXGRlZlxzdGFydHNhdmVkZm9vdG5vdGV7JQorICBcZ2xvYmFsXHNldGJveFxzYXZlZGZvb3Rub3RlcyA9IFx2Ym94XGJncm91cAorICAgIFx1bnZib3hcc2F2ZWRmb290bm90ZXMKK30KK1xkZWZcY3JjcndpdGhmb290bm90ZXN7JQorICBcY3JjcgorICBcaWZ2b2lkXHNhdmVkZm9vdG5vdGVzIFxlbHNlCisgICAgXG5vYWxpZ257XGluc2VydFxmb290aW5ze1xib3hcc2F2ZWRmb290bm90ZXN9fSUKKyAgXGZpCit9CiAKIFxtZXNzYWdle2NvbmRpdGlvbmFscyx9CiAlIFByZXZlbnQgZXJyb3JzIGZvciBzZWN0aW9uIGNvbW1hbmRzLgpAQCAtMjI0NSw2NCArMjQ4NywxMTcgQEAKICUgYW5kIHNvIHdhbnQgdG8gdHVybiBvZmYgbW9zdCBjb21tYW5kcywgaW4gY2FzZSB0aGV5IGFyZSB1c2VkCiAlIGluY29ycmVjdGx5LgogJQorJSBXZSB1c2UgXGVtcHR5IGluc3RlYWQgb2YgXHJlbGF4IGZvciB0aGUgQGRlZi4uLiBjb21tYW5kcywgc28gdGhhdCBcZW5kCislIGRvZXNuJ3QgdGhyb3cgYW4gZXJyb3IuICBGb3IgaW5zdGFuY2U6CislIEBpZ25vcmUKKyUgQGRlZmZuIC4uLgorJSBAZW5kIGRlZmZuCislIEBlbmQgaWdub3JlCislIAorJSBUaGUgQGVuZCBkZWZmbiBpcyBnb2luZyB0byBnZXQgZXhwYW5kZWQsIGJlY2F1c2Ugd2UncmUgdHJ5aW5nIHRvIGFsbG93CislIG5lc3RlZCBjb25kaXRpb25hbHMuICBCdXQgd2UgZG9uJ3Qgd2FudCB0byBleHBhbmQgdGhlIGFjdHVhbCBAZGVmZm4sCislIHNpbmNlIGl0IG1pZ2h0IGJlIHN5bnRhY3RpY2FsbHkgY29ycmVjdCBhbmQgaW50ZW5kZWQgdG8gYmUgaWdub3JlZC4KKyUgU2luY2UgXGVuZCBjaGVja3MgZm9yIFxyZWxheCwgdXNpbmcgXGVtcHR5IGRvZXMgbm90IGNhdXNlIGFuIGVycm9yLgorJSAKIFxkZWZcaWdub3JlbW9yZWNvbW1hbmRzeyUKICAgXGxldFxkZWZjb2RlaW5kZXggPSBccmVsYXgKLSAgXGxldFxkZWZjdiA9IFxyZWxheAotICBcbGV0XGRlZmZuID0gXHJlbGF4Ci0gIFxsZXRcZGVmZm54ID0gXHJlbGF4CisgIFxsZXRcZGVmY3YgPSBcZW1wdHkKKyAgXGxldFxkZWZjdnggPSBcZW1wdHkKKyAgXGxldFxFZGVmY3YgPSBcZW1wdHkKKyAgXGxldFxkZWZmbiA9IFxlbXB0eQorICBcbGV0XGRlZmZueCA9IFxlbXB0eQorICBcbGV0XEVkZWZmbiA9IFxlbXB0eQogICBcbGV0XGRlZmluZGV4ID0gXHJlbGF4Ci0gIFxsZXRcZGVmaXZhciA9IFxyZWxheAotICBcbGV0XGRlZm1hYyA9IFxyZWxheAotICBcbGV0XGRlZm1ldGhvZCA9IFxyZWxheAotICBcbGV0XGRlZm9wID0gXHJlbGF4Ci0gIFxsZXRcZGVmb3B0ID0gXHJlbGF4Ci0gIFxsZXRcZGVmc3BlYyA9IFxyZWxheAotICBcbGV0XGRlZnRwID0gXHJlbGF4Ci0gIFxsZXRcZGVmdHlwZWZuID0gXHJlbGF4Ci0gIFxsZXRcZGVmdHlwZWZ1biA9IFxyZWxheAotICBcbGV0XGRlZnR5cGVpdmFyID0gXHJlbGF4Ci0gIFxsZXRcZGVmdHlwZW9wID0gXHJlbGF4Ci0gIFxsZXRcZGVmdHlwZXZhciA9IFxyZWxheAotICBcbGV0XGRlZnR5cGV2ciA9IFxyZWxheAotICBcbGV0XGRlZnVuID0gXHJlbGF4Ci0gIFxsZXRcZGVmdmFyID0gXHJlbGF4Ci0gIFxsZXRcZGVmdnIgPSBccmVsYXgKLSAgXGxldFxyZWYgPSBccmVsYXgKLSAgXGxldFx4cmVmID0gXHJlbGF4Ci0gIFxsZXRccHJpbnRpbmRleCA9IFxyZWxheAotICBcbGV0XHB4cmVmID0gXHJlbGF4Ci0gIFxsZXRcc2V0dGl0bGUgPSBccmVsYXgKLSAgXGxldFxzZXRjaGFwdGVybmV3cGFnZSA9IFxyZWxheAotICBcbGV0XHNldGNoYXB0ZXJzdHlsZSA9IFxyZWxheAotICBcbGV0XGV2ZXJ5aGVhZGluZyA9IFxyZWxheAotICBcbGV0XGV2ZW5oZWFkaW5nID0gXHJlbGF4Ci0gIFxsZXRcb2RkaGVhZGluZyA9IFxyZWxheAotICBcbGV0XGV2ZXJ5Zm9vdGluZyA9IFxyZWxheAorICBcbGV0XGRlZml2YXIgPSBcZW1wdHkKKyAgXGxldFxkZWZpdmFyeCA9IFxlbXB0eQorICBcbGV0XEVkZWZpdmFyID0gXGVtcHR5CisgIFxsZXRcZGVmbWFjID0gXGVtcHR5CisgIFxsZXRcZGVmbWFjeCA9IFxlbXB0eQorICBcbGV0XEVkZWZtYWMgPSBcZW1wdHkKKyAgXGxldFxkZWZtZXRob2QgPSBcZW1wdHkKKyAgXGxldFxkZWZtZXRob2R4ID0gXGVtcHR5CisgIFxsZXRcRWRlZm1ldGhvZCA9IFxlbXB0eQorICBcbGV0XGRlZm9wID0gXGVtcHR5CisgIFxsZXRcZGVmb3B4ID0gXGVtcHR5CisgIFxsZXRcRWRlZm9wID0gXGVtcHR5CisgIFxsZXRcZGVmb3B0ID0gXGVtcHR5CisgIFxsZXRcZGVmb3B0eCA9IFxlbXB0eQorICBcbGV0XEVkZWZvcHQgPSBcZW1wdHkKKyAgXGxldFxkZWZzcGVjID0gXGVtcHR5CisgIFxsZXRcZGVmc3BlY3ggPSBcZW1wdHkKKyAgXGxldFxFZGVmc3BlYyA9IFxlbXB0eQorICBcbGV0XGRlZnRwID0gXGVtcHR5CisgIFxsZXRcZGVmdHB4ID0gXGVtcHR5CisgIFxsZXRcRWRlZnRwID0gXGVtcHR5CisgIFxsZXRcZGVmdHlwZWZuID0gXGVtcHR5CisgIFxsZXRcZGVmdHlwZWZueCA9IFxlbXB0eQorICBcbGV0XEVkZWZ0eXBlZm4gPSBcZW1wdHkKKyAgXGxldFxkZWZ0eXBlZnVuID0gXGVtcHR5CisgIFxsZXRcZGVmdHlwZWZ1bnggPSBcZW1wdHkKKyAgXGxldFxFZGVmdHlwZWZ1biA9IFxlbXB0eQorICBcbGV0XGRlZnR5cGVpdmFyID0gXGVtcHR5CisgIFxsZXRcZGVmdHlwZWl2YXJ4ID0gXGVtcHR5CisgIFxsZXRcRWRlZnR5cGVpdmFyID0gXGVtcHR5CisgIFxsZXRcZGVmdHlwZW1ldGhvZCA9IFxlbXB0eQorICBcbGV0XGRlZnR5cGVtZXRob2R4ID0gXGVtcHR5CisgIFxsZXRcRWRlZnR5cGVtZXRob2QgPSBcZW1wdHkKKyAgXGxldFxkZWZ0eXBlb3AgPSBcZW1wdHkKKyAgXGxldFxkZWZ0eXBlb3B4ID0gXGVtcHR5CisgIFxsZXRcRWRlZnR5cGVvcCA9IFxlbXB0eQorICBcbGV0XGRlZnR5cGV2YXIgPSBcZW1wdHkKKyAgXGxldFxkZWZ0eXBldmFyeCA9IFxlbXB0eQorICBcbGV0XEVkZWZ0eXBldmFyID0gXGVtcHR5CisgIFxsZXRcZGVmdHlwZXZyID0gXGVtcHR5CisgIFxsZXRcZGVmdHlwZXZyeCA9IFxlbXB0eQorICBcbGV0XEVkZWZ0eXBldnIgPSBcZW1wdHkKKyAgXGxldFxkZWZ1biA9IFxlbXB0eQorICBcbGV0XGRlZnVueCA9IFxlbXB0eQorICBcbGV0XEVkZWZ1biA9IFxlbXB0eQorICBcbGV0XGRlZnZhciA9IFxlbXB0eQorICBcbGV0XGRlZnZhcnggPSBcZW1wdHkKKyAgXGxldFxFZGVmdmFyID0gXGVtcHR5CisgIFxsZXRcZGVmdnIgPSBcZW1wdHkKKyAgXGxldFxkZWZ2cnggPSBcZW1wdHkKKyAgXGxldFxFZGVmdnIgPSBcZW1wdHkKKyAgXGxldFxjbGVhciA9IFxyZWxheAorICBcbGV0XGRvd24gPSBccmVsYXgKICAgXGxldFxldmVuZm9vdGluZyA9IFxyZWxheAotICBcbGV0XG9kZGZvb3RpbmcgPSBccmVsYXgKKyAgXGxldFxldmVuaGVhZGluZyA9IFxyZWxheAorICBcbGV0XGV2ZXJ5Zm9vdGluZyA9IFxyZWxheAorICBcbGV0XGV2ZXJ5aGVhZGluZyA9IFxyZWxheAogICBcbGV0XGhlYWRpbmdzID0gXHJlbGF4CiAgIFxsZXRcaW5jbHVkZSA9IFxyZWxheAotICBcbGV0XGxvd2Vyc2VjdGlvbnMgPSBccmVsYXgKLSAgXGxldFxkb3duID0gXHJlbGF4Ci0gIFxsZXRccmFpc2VzZWN0aW9ucyA9IFxyZWxheAotICBcbGV0XHVwID0gXHJlbGF4Ci0gIFxsZXRcc2V0ID0gXHJlbGF4Ci0gIFxsZXRcY2xlYXIgPSBccmVsYXgKICAgXGxldFxpdGVtID0gXHJlbGF4CisgIFxsZXRcbG93ZXJzZWN0aW9ucyA9IFxyZWxheAorICBcbGV0XG9kZGZvb3RpbmcgPSBccmVsYXgKKyAgXGxldFxvZGRoZWFkaW5nID0gXHJlbGF4CisgIFxsZXRccHJpbnRpbmRleCA9IFxyZWxheAorICBcbGV0XHB4cmVmID0gXHJlbGF4CisgIFxsZXRccmFpc2VzZWN0aW9ucyA9IFxyZWxheAorICBcbGV0XHJlZiA9IFxyZWxheAorICBcbGV0XHNldCA9IFxyZWxheAorICBcbGV0XHNldGNoYXB0ZXJuZXdwYWdlID0gXHJlbGF4CisgIFxsZXRcc2V0Y2hhcHRlcnN0eWxlID0gXHJlbGF4CisgIFxsZXRcc2V0dGl0bGUgPSBccmVsYXgKKyAgXGxldFx1cCA9IFxyZWxheAorICBcbGV0XHZlcmJhdGltaW5jbHVkZSA9IFxyZWxheAorICBcbGV0XHhyZWYgPSBccmVsYXgKIH0KIAotJSBJZ25vcmUgQGlnbm9yZSAuLi4gQGVuZCBpZ25vcmUuCislIElnbm9yZSBAaWdub3JlLCBAaWZodG1sLCBAaWZpbmZvLCBhbmQgdGhlIGxpa2UuCiAlCi1cZGVmXGlnbm9yZXtcZG9pZ25vcmV7aWdub3JlfX0KLQotJSBJZ25vcmUgQGlmaW5mbywgQGlmaHRtbCwgQGlmbm90dGV4LCBAaHRtbCwgQG1lbnUsIGFuZCBAZGlyZW50cnkgdGV4dC4KLSUKLVxkZWZcaWZpbmZve1xkb2lnbm9yZXtpZmluZm99fQotXGRlZlxpZmh0bWx7XGRvaWdub3Jle2lmaHRtbH19Ci1cZGVmXGlmbm90dGV4e1xkb2lnbm9yZXtpZm5vdHRleH19Ci1cZGVmXGh0bWx7XGRvaWdub3Jle2h0bWx9fQotXGRlZlxtZW51e1xkb2lnbm9yZXttZW51fX0KIFxkZWZcZGlyZW50cnl7XGRvaWdub3Jle2RpcmVudHJ5fX0KK1xkZWZcZG9jdW1lbnRkZXNjcmlwdGlvbndvcmR7ZG9jdW1lbnRkZXNjcmlwdGlvbn0KK1xkZWZcZG9jdW1lbnRkZXNjcmlwdGlvbntcZG9pZ25vcmV7ZG9jdW1lbnRkZXNjcmlwdGlvbn19CitcZGVmXGh0bWx7XGRvaWdub3Jle2h0bWx9fQorXGRlZlxpZmh0bWx7XGRvaWdub3Jle2lmaHRtbH19CitcZGVmXGlmaW5mb3tcZG9pZ25vcmV7aWZpbmZvfX0KK1xkZWZcaWZub3R0ZXh7XGRvaWdub3Jle2lmbm90dGV4fX0KK1xkZWZcaWZwbGFpbnRleHR7XGRvaWdub3Jle2lmcGxhaW50ZXh0fX0KK1xkZWZcaWZ4bWx7XGRvaWdub3Jle2lmeG1sfX0KK1xkZWZcaWdub3Jle1xkb2lnbm9yZXtpZ25vcmV9fQorXGRlZlxtZW51e1xkb2lnbm9yZXttZW51fX0KK1xkZWZceG1se1xkb2lnbm9yZXt4bWx9fQogCiAlIEBkaXJjYXRlZ29yeSBDQVRFR09SWSAgLS0gc3BlY2lmeSBhIGNhdGVnb3J5IG9mIHRoZSBkaXIgZmlsZQogJSB3aGljaCB0aGlzIGZpbGUgc2hvdWxkIGJlbG9uZyB0by4gIElnbm9yZSB0aGlzIGluIFRlWC4KQEAgLTIzMjAsNyArMjYxNSw3IEBACiAgIFxsb25nXGRlZlxkb2lnbm9yZXRleHQjIzFAZW5kICMxe1xlbmRkb2lnbm9yZX0lCiAgICUKICAgJSBNYWtlIHN1cmUgdGhhdCBzcGFjZXMgdHVybiBpbnRvIHRva2VucyB0aGF0IG1hdGNoIHdoYXQgXGRvaWdub3JldGV4dCB3YW50cy4KLSAgXGNhdGNvZGUzMiA9IDEwCisgIFxjYXRjb2RlXHNwYWNlQ2hhciA9IDEwCiAgICUKICAgJSBJZ25vcmUgYnJhY2VzLCB0b28sIHNvIG1pc21hdGNoZWQgYnJhY2VzIGRvbid0IGNhdXNlIHRyb3VibGUuCiAgIFxjYXRjb2RlYFx7ID0gOQpAQCAtMjMyOSwxNCArMjYyNCwyMSBAQAogICAlIFdlIG11c3Qgbm90IGhhdmUgQGMgaW50ZXJwcmV0ZWQgYXMgYSBjb250cm9sIHNlcXVlbmNlLgogICBcY2F0Y29kZWBcQCA9IDEyCiAgICUKLSAgJSBNYWtlIHRoZSBsZXR0ZXIgYyBhIGNvbW1lbnQgY2hhcmFjdGVyIHNvIHRoYXQgdGhlIHJlc3Qgb2YgdGhlIGxpbmUKLSAgJSB3aWxsIGJlIGlnbm9yZWQuIFRoaXMgd2F5LCB0aGUgZG9jdW1lbnQgY2FuIGhhdmUgKGZvciBleGFtcGxlKQotICAlICAgQGMgQGVuZCBpZmluZm8KLSAgJSBhbmQgdGhlIEBlbmQgaWZpbmZvIHdpbGwgYmUgcHJvcGVybHkgaWdub3JlZC4KLSAgJSAoV2UndmUganVzdCBjaGFuZ2VkIEAgdG8gY2F0Y29kZSAxMi4pCi0gIFxjYXRjb2RlYFxjID0gMTQKKyAgXGRlZlxpZ25vcmV3b3JkeyMxfSUKKyAgXGlmeFxpZ25vcmV3b3JkXGRvY3VtZW50ZGVzY3JpcHRpb253b3JkCisgICAgJSBUaGUgYyBrbHVkZ2UgYnJlYWtzIGRvY3VtZW50ZGVzY3JpcHRpb24sIHNpbmNlCisgICAgJSBgZG9jdW1lbnRkZXNjcmlwdGlvbicgY29udGFpbnMgYSBgYycuICBNZWFucyBub3QgZXZlcnl0aGluZyB3aWxsCisgICAgJSBiZSBpZ25vcmVkIGluc2lkZSBAZG9jdW1lbnRkZXNjcmlwdGlvbiwgYnV0IG9oIHdlbGwuLi4KKyAgXGVsc2UKKyAgICAlIE1ha2UgdGhlIGxldHRlciBjIGEgY29tbWVudCBjaGFyYWN0ZXIgc28gdGhhdCB0aGUgcmVzdCBvZiB0aGUgbGluZQorICAgICUgd2lsbCBiZSBpZ25vcmVkLiBUaGlzIHdheSwgdGhlIGRvY3VtZW50IGNhbiBoYXZlIChmb3IgZXhhbXBsZSkKKyAgICAlICAgQGMgQGVuZCBpZmluZm8KKyAgICAlIGFuZCB0aGUgQGVuZCBpZmluZm8gd2lsbCBiZSBwcm9wZXJseSBpZ25vcmVkLgorICAgICUgKFdlJ3ZlIGp1c3QgY2hhbmdlZCBAIHRvIGNhdGNvZGUgMTIuKQorICAgIFxjYXRjb2RlYFxjID0gMTQKKyAgXGZpCiAgICUKLSAgJSBBbmQgbm93IGV4cGFuZCB0aGF0IGNvbW1hbmQuCisgICUgQW5kIG5vdyBleHBhbmQgdGhlIGNvbW1hbmQgZGVmaW5lZCBhYm92ZS4KICAgXGRvaWdub3JldGV4dAogfQogCkBAIC0yMzU1LDcgKzI2NTcsNyBAQAogICAgIFxpbW1lZGlhdGVcd3JpdGUxNntJZiB5b3UgYXJlIHJ1bm5pbmcgYW5vdGhlciB2ZXJzaW9uIG9mIFRlWCwgcmVsYXgufQogICAgIFxpbW1lZGlhdGVcd3JpdGUxNntJZiB5b3UgYXJlIHJ1bm5pbmcgVW5peCBUZVggMy4wLCBraWxsIHRoaXMgVGVYIHByb2Nlc3MufQogICAgIFxpbW1lZGlhdGVcd3JpdGUxNnsgIFRoZW4gdXBncmFkZSB5b3VyIFRlWCBpbnN0YWxsYXRpb24gaWYgeW91IGNhbi59Ci0gICAgXGltbWVkaWF0ZVx3cml0ZTE2eyAgKFNlZSBmdHA6Ly9mdHAuZ251Lm9yZy9wdWIvZ251L1RlWC5SRUFETUUuKX0KKyAgICBcaW1tZWRpYXRlXHdyaXRlMTZ7ICAoU2VlIGZ0cDovL2Z0cC5nbnUub3JnL25vbi1nbnUvVGVYLlJFQURNRS4pfQogICAgIFxpbW1lZGlhdGVcd3JpdGUxNntJZiB5b3UgYXJlIHN0dWNrIHdpdGggdmVyc2lvbiAzLjAsIHJ1biB0aGV9CiAgICAgXGltbWVkaWF0ZVx3cml0ZTE2eyAgc2NyaXB0IGBgdGV4M3BhdGNoJycgZnJvbSB0aGUgVGV4aW5mbyBkaXN0cmlidXRpb259CiAgICAgXGltbWVkaWF0ZVx3cml0ZTE2eyAgdG8gdXNlIGEgd29ya2Fyb3VuZC59CkBAIC0yMzc3LDggKzI2NzksOCBAQAogICAlIFdlIG11c3QgYWN0dWFsbHkgZXhwYW5kIHRoZSBpZ25vcmVkIHRleHQgdG8gbG9vayBmb3IgdGhlIEBlbmQKICAgJSBjb21tYW5kLCBzbyB0aGF0IG5lc3RlZCBpZ25vcmUgY29uc3RydWN0cyB3b3JrLiAgVGh1cywgd2UgcHV0IHRoZQogICAlIHRleHQgaW50byBhIFx2Ym94IGFuZCB0aGVuIGRvIG5vdGhpbmcgd2l0aCB0aGUgcmVzdWx0LiAgVG8gbWluaW1pemUKLSAgJSB0aGUgY2hhbmdlIG9mIG1lbW9yeSBvdmVyZmxvdywgd2UgZm9sbG93IHRoZSBhcHByb2FjaCBvdXRsaW5lZCBvbgotICAlIHBhZ2UgNDAxIG9mIHRoZSBUZVhib29rOiBtYWtlIHRoZSBjdXJyZW50IGZvbnQgYmUgYSBkdW1teSBmb250LgorICAlIHRoZSBjaGFuY2Ugb2YgbWVtb3J5IG92ZXJmbG93LCB3ZSBmb2xsb3cgdGhlIGFwcHJvYWNoIG91dGxpbmVkIG9uCisgICUgcGFnZSA0MDEgb2YgdGhlIFRlWGJvb2suCiAgICUKICAgXHNldGJveDAgPSBcdmJveFxiZ3JvdXAKICAgICAlIERvbid0IGNvbXBsYWluIGFib3V0IGNvbnRyb2wgc2VxdWVuY2VzIHdlIGhhdmUgZGVjbGFyZWQgXG91dGVyLgpAQCAtMjM5OSw4ICsyNzAxLDggQEAKICAgICAlCiAgICAgJSBTZXQgdGhlIGN1cnJlbnQgZm9udCB0byBiZSBcbnVsbGZvbnQsIGEgVGVYIHByaW1pdGl2ZSwgYW5kIGRlZmluZQogICAgICUgYWxsIHRoZSBmb250IGNvbW1hbmRzIHRvIGFsc28gdXNlIFxudWxsZm9udC4gIFdlIGRvbid0IHVzZQotICAgICUgZHVtbXkudGZtLCBhcyBzdWdnZXN0ZWQgaW4gdGhlIFRlWGJvb2ssIGJlY2F1c2Ugbm90IGFsbCBzaXRlcwotICAgICUgbWlnaHQgaGF2ZSB0aGF0IGluc3RhbGxlZC4gIFRoZXJlZm9yZSwgbWF0aCBtb2RlIHdpbGwgc3RpbGwKKyAgICAlIGR1bW15LnRmbSwgYXMgc3VnZ2VzdGVkIGluIHRoZSBUZVhib29rLCBiZWNhdXNlIHNvbWUgc2l0ZXMKKyAgICAlIG1pZ2h0IG5vdCBoYXZlIHRoYXQgaW5zdGFsbGVkLiAgVGhlcmVmb3JlLCBtYXRoIG1vZGUgd2lsbCBzdGlsbAogICAgICUgcHJvZHVjZSBvdXRwdXQsIGJ1dCB0aGF0IHNob3VsZCBiZSBhbiBleHRyZW1lbHkgc21hbGwgYW1vdW50IG9mCiAgICAgJSBzdHVmZiBjb21wYXJlZCB0byB0aGUgbWFpbiBpbnB1dC4KICAgICAlCkBAIC0yNDA4LDEwICsyNzEwLDE0IEBACiAgICAgXGxldFx0ZW5ybT1cbnVsbGZvbnQgXGxldFx0ZW5pdD1cbnVsbGZvbnQgXGxldFx0ZW5zbD1cbnVsbGZvbnQKICAgICBcbGV0XHRlbmJmPVxudWxsZm9udCBcbGV0XHRlbnR0PVxudWxsZm9udCBcbGV0XHNtYWxsY2Fwcz1cbnVsbGZvbnQKICAgICBcbGV0XHRlbnNmPVxudWxsZm9udAotICAgICUgU2ltaWxhcmx5IGZvciBpbmRleCBmb250cyAobW9zdGx5IGZvciB0aGVpciB1c2UgaW4gc21hbGxleGFtcGxlKS4KKyAgICAlIFNpbWlsYXJseSBmb3IgaW5kZXggZm9udHMuCiAgICAgXGxldFxzbWFsbHJtPVxudWxsZm9udCBcbGV0XHNtYWxsaXQ9XG51bGxmb250IFxsZXRcc21hbGxzbD1cbnVsbGZvbnQKICAgICBcbGV0XHNtYWxsYmY9XG51bGxmb250IFxsZXRcc21hbGx0dD1cbnVsbGZvbnQgXGxldFxzbWFsbHNjPVxudWxsZm9udAogICAgIFxsZXRcc21hbGxzZj1cbnVsbGZvbnQKKyAgICAlIFNpbWlsYXJseSBmb3Igc21hbGxleGFtcGxlIGZvbnRzLgorICAgIFxsZXRcc21hbGxlcnJtPVxudWxsZm9udCBcbGV0XHNtYWxsZXJpdD1cbnVsbGZvbnQgXGxldFxzbWFsbGVyc2w9XG51bGxmb250CisgICAgXGxldFxzbWFsbGVyYmY9XG51bGxmb250IFxsZXRcc21hbGxlcnR0PVxudWxsZm9udCBcbGV0XHNtYWxsZXJzYz1cbnVsbGZvbnQKKyAgICBcbGV0XHNtYWxsZXJzZj1cbnVsbGZvbnQKICAgICAlCiAgICAgJSBEb24ndCBjb21wbGFpbiB3aGVuIGNoYXJhY3RlcnMgYXJlIG1pc3NpbmcgZnJvbSB0aGUgZm9udHMuCiAgICAgXHRyYWNpbmdsb3N0Y2hhcnMgPSAwCkBAIC0yNDI1LDcgKzI3MzEsNyBAQAogICAgICUgRG8gbWluaW1hbCBsaW5lLWJyZWFraW5nLgogICAgIFxwcmV0b2xlcmFuY2UgPSAxMDAwMAogICAgICUKLSAgICAlIERvIG5vdCBleGVjdXRlIGluc3RydWN0aW9ucyBpbiBAdGV4CisgICAgJSBEbyBub3QgZXhlY3V0ZSBpbnN0cnVjdGlvbnMgaW4gQHRleC4KICAgICBcZGVmXHRleHtcZG9pZ25vcmV7dGV4fX0lCiAgICAgJSBEbyBub3QgZXhlY3V0ZSBtYWNybyBkZWZpbml0aW9ucy4KICAgICAlIGBjJyBpcyBhIGNvbW1lbnQgY2hhcmFjdGVyLCBzbyB0aGUgd29yZCBgbWFjcm8nIHdpbGwgZ2V0IGN1dCBvZmYuCkBAIC0yNDcwLDcgKzI3NzYsNyBAQAogICAlIHdlJ3JlIGNhbGxlZCBmcm9tIEBjb2RlLCBhcyBAY29kZXtAdmFsdWV7Zm9vLWJhcl99fS4gIFNvIFxsZXQgYW55CiAgICUgc3VjaCBhY3RpdmUgY2hhcmFjdGVycyB0byB0aGVpciBub3JtYWwgZXF1aXZhbGVudHMuCiAgIFxnZGVmXHZhbHVle1xiZWdpbmdyb3VwCi0gICAgXGNhdGNvZGVgXC09MTIgXGNhdGNvZGVgXF89MTIKKyAgICBcY2F0Y29kZWBcLT1cb3RoZXIgXGNhdGNvZGVgXF89XG90aGVyCiAgICAgXGluZGV4YnJlYWtzIFxsZXRfXG5vcm1hbHVuZGVyc2NvcmUKICAgICBcdmFsdWV4eHh9CiB9CkBAIC0yNDc5LDE1ICsyNzg1LDE3IEBACiAlIFdlIGhhdmUgdGhpcyBzdWJyb3V0aW5lIHNvIHRoYXQgd2UgY2FuIGhhbmRsZSBhdCBsZWFzdCBzb21lIEB2YWx1ZSdzCiAlIHByb3Blcmx5IGluIGluZGV4ZXMgKHdlIFxsZXRcdmFsdWUgdG8gdGhpcyBpbiBcaW5kZXhkdW1taWVzKS4gIE9uZXMKICUgd2hvc2UgbmFtZXMgY29udGFpbiAtIG9yIF8gc3RpbGwgd29uJ3Qgd29yaywgYnV0IHdlIGNhbid0IGRvIGFueXRoaW5nCi0lIGFib3V0IHRoYXQuICBUaGUgY29tbWFuZCBoYXMgdG8gYmUgZnVsbHkgZXhwYW5kYWJsZSwgc2luY2UgdGhlIHJlc3VsdAotJSB3aW5kcyB1cCBpbiB0aGUgaW5kZXggZmlsZS4gIFRoaXMgbWVhbnMgdGhhdCBpZiB0aGUgdmFyaWFibGUncyB2YWx1ZQotJSBjb250YWlucyBvdGhlciBUZXhpbmZvIGNvbW1hbmRzLCBpdCdzIGFsbW9zdCBjZXJ0YWluIGl0IHdpbGwgZmFpbAotJSAoYWx0aG91Z2ggcGVyaGFwcyB3ZSBjb3VsZCBmaXggdGhhdCB3aXRoIHN1ZmZpY2llbnQgd29yayB0byBkbyBhCi0lIG9uZS1sZXZlbCBleHBhbnNpb24gb24gdGhlIHJlc3VsdCwgaW5zdGVhZCBvZiBjb21wbGV0ZSkuCislIGFib3V0IHRoYXQuICBUaGUgY29tbWFuZCBoYXMgdG8gYmUgZnVsbHkgZXhwYW5kYWJsZSAoaWYgdGhlIHZhcmlhYmxlCislIGlzIHNldCksIHNpbmNlIHRoZSByZXN1bHQgd2luZHMgdXAgaW4gdGhlIGluZGV4IGZpbGUuICBUaGlzIG1lYW5zIHRoYXQKKyUgaWYgdGhlIHZhcmlhYmxlJ3MgdmFsdWUgY29udGFpbnMgb3RoZXIgVGV4aW5mbyBjb21tYW5kcywgaXQncyBhbG1vc3QKKyUgY2VydGFpbiBpdCB3aWxsIGZhaWwgKGFsdGhvdWdoIHBlcmhhcHMgd2UgY291bGQgZml4IHRoYXQgd2l0aAorJSBzdWZmaWNpZW50IHdvcmsgdG8gZG8gYSBvbmUtbGV2ZWwgZXhwYW5zaW9uIG9uIHRoZSByZXN1bHQsIGluc3RlYWQgb2YKKyUgY29tcGxldGUpLgogJQogXGRlZlxleHBhbmRhYmxldmFsdWUjMXslCiAgIFxleHBhbmRhZnRlclxpZnhcY3NuYW1lIFNFVCMxXGVuZGNzbmFtZVxyZWxheAogICAgIHtbTm8gdmFsdWUgZm9yIGBgIzEnJ119JQorICAgIFxtZXNzYWdle1ZhcmlhYmxlIGAjMScsIHVzZWQgaW4gQHZhbHVlLCBpcyBub3Qgc2V0Ln0lCiAgIFxlbHNlCiAgICAgXGNzbmFtZSBTRVQjMVxlbmRjc25hbWUKICAgXGZpCkBAIC0yNDk2LDEzICsyODA0LDE0IEBACiAlIEBpZnNldCBWQVIgLi4uIEBlbmQgaWZzZXQgcmVhZHMgdGhlIGAuLi4nIGlmZiBWQVIgaGFzIGJlZW4gZGVmaW5lZAogJSB3aXRoIEBzZXQuCiAlCi1cZGVmXGlmc2V0e1xwYXJzZWFyZ1xpZnNldHh4eH0KLVxkZWZcaWZzZXR4eHggIzF7JQorXGRlZlxpZnNldHtccGFyc2VhcmdcZG9pZnNldH0KK1xkZWZcZG9pZnNldCMxeyUKICAgXGV4cGFuZGFmdGVyXGlmeFxjc25hbWUgU0VUIzFcZW5kY3NuYW1lXHJlbGF4Ci0gICAgXGV4cGFuZGFmdGVyXGlmc2V0ZmFpbAorICAgIFxsZXRcbmV4dD1caWZzZXRmYWlsCiAgIFxlbHNlCi0gICAgXGV4cGFuZGFmdGVyXGlmc2V0c3VjY2VlZAorICAgIFxsZXRcbmV4dD1caWZzZXRzdWNjZWVkCiAgIFxmaQorICBcbmV4dAogfQogXGRlZlxpZnNldHN1Y2NlZWR7XGNvbmRpdGlvbmFsc3VjY2VlZHtpZnNldH19CiBcZGVmXGlmc2V0ZmFpbHtcbmVzdGVkaWdub3Jle2lmc2V0fX0KQEAgLTI1MTEsNTIgKzI4MjAsNDAgQEAKICUgQGlmY2xlYXIgVkFSIC4uLiBAZW5kIGlmY2xlYXIgcmVhZHMgdGhlIGAuLi4nIGlmZiBWQVIgaGFzIG5ldmVyIGJlZW4KICUgZGVmaW5lZCB3aXRoIEBzZXQsIG9yIGhhcyBiZWVuIHVuZGVmaW5lZCB3aXRoIEBjbGVhci4KICUKLVxkZWZcaWZjbGVhcntccGFyc2VhcmdcaWZjbGVhcnh4eH0KLVxkZWZcaWZjbGVhcnh4eCAjMXslCitcZGVmXGlmY2xlYXJ7XHBhcnNlYXJnXGRvaWZjbGVhcn0KK1xkZWZcZG9pZmNsZWFyIzF7JQogICBcZXhwYW5kYWZ0ZXJcaWZ4XGNzbmFtZSBTRVQjMVxlbmRjc25hbWVccmVsYXgKLSAgICBcZXhwYW5kYWZ0ZXJcaWZjbGVhcnN1Y2NlZWQKKyAgICBcbGV0XG5leHQ9XGlmY2xlYXJzdWNjZWVkCiAgIFxlbHNlCi0gICAgXGV4cGFuZGFmdGVyXGlmY2xlYXJmYWlsCisgICAgXGxldFxuZXh0PVxpZmNsZWFyZmFpbAogICBcZmkKKyAgXG5leHQKIH0KIFxkZWZcaWZjbGVhcnN1Y2NlZWR7XGNvbmRpdGlvbmFsc3VjY2VlZHtpZmNsZWFyfX0KIFxkZWZcaWZjbGVhcmZhaWx7XG5lc3RlZGlnbm9yZXtpZmNsZWFyfX0KIFxkZWZpbmV1bm1hdGNoZWRlbmR7aWZjbGVhcn0KIAotJSBAaWZ0ZXgsIEBpZm5vdGh0bWwsIEBpZm5vdGluZm8gYWx3YXlzIHN1Y2NlZWQ7IHdlIHJlYWQgdGhlIHRleHQKLSUgZm9sbG93aW5nLCB0aHJvdWdoIHRoZSBmaXJzdCBAZW5kIGlmdGV4IChldGMuKS4gIE1ha2UgYEBlbmQgaWZ0ZXgnCi0lIChldGMuKSB2YWxpZCBvbmx5IGFmdGVyIGFuIEBpZnRleC4KKyUgQGlmdGV4LCBAaWZub3RodG1sLCBAaWZub3RpbmZvLCBAaWZub3RwbGFpbnRleHQgYWx3YXlzIHN1Y2NlZWQ7IHdlCislIHJlYWQgdGhlIHRleHQgZm9sbG93aW5nLCB0aHJvdWdoIHRoZSBmaXJzdCBAZW5kIGlmdGV4IChldGMuKS4gIE1ha2UKKyUgYEBlbmQgaWZ0ZXgnIChldGMuKSB2YWxpZCBvbmx5IGFmdGVyIGFuIEBpZnRleC4KICUKIFxkZWZcaWZ0ZXh7XGNvbmRpdGlvbmFsc3VjY2VlZHtpZnRleH19CiBcZGVmXGlmbm90aHRtbHtcY29uZGl0aW9uYWxzdWNjZWVke2lmbm90aHRtbH19CiBcZGVmXGlmbm90aW5mb3tcY29uZGl0aW9uYWxzdWNjZWVke2lmbm90aW5mb319CitcZGVmXGlmbm90cGxhaW50ZXh0e1xjb25kaXRpb25hbHN1Y2NlZWR7aWZub3RwbGFpbnRleHR9fQogXGRlZmluZXVubWF0Y2hlZGVuZHtpZnRleH0KIFxkZWZpbmV1bm1hdGNoZWRlbmR7aWZub3RodG1sfQogXGRlZmluZXVubWF0Y2hlZGVuZHtpZm5vdGluZm99CitcZGVmaW5ldW5tYXRjaGVkZW5ke2lmbm90cGxhaW50ZXh0fQogCi0lIFdlIGNhbid0IGp1c3Qgd2FudCB0byBzdGFydCBhIGdyb3VwIGF0IEBpZnRleCAoZm9yIGV4YW1wbGUpIGFuZCBlbmQgaXQKLSUgYXQgQGVuZCBpZnRleCwgc2luY2UgdGhlbiBAc2V0IGNvbW1hbmRzIGluc2lkZSB0aGUgY29uZGl0aW9uYWwgaGF2ZSBubwotJSBlZmZlY3QgKHRoZXknZCBnZXQgcmV2ZXJ0ZWQgYXQgdGhlIGVuZCBvZiB0aGUgZ3JvdXApLiAgU28gd2UgbXVzdAotJSBkZWZpbmUgXEVpZnRleCB0byByZWRlZmluZSBpdHNlbGYgdG8gYmUgaXRzIHByZXZpb3VzIHZhbHVlLiAgKFdlIGNhbid0Ci0lIGp1c3QgZGVmaW5lIGl0IHRvIGZhaWwgYWdhaW4gd2l0aCBhbiBgYHVubWF0Y2hlZCBlbmQnJyBlcnJvciwgc2luY2UKLSUgdGhlIEBpZnNldCBtaWdodCBiZSBuZXN0ZWQuKQorJSBUcnVlIGNvbmRpdGlvbmFsLiAgU2luY2UgXHNldCBnbG9iYWxseSBkZWZpbmVzIGl0cyB2YXJpYWJsZXMsIHdlIGNhbgorJSBqdXN0IHN0YXJ0IGFuZCBlbmQgYSBncm91cCAodG8ga2VlcCB0aGUgQGVuZCBkZWZpbml0aW9uIHVuZGVmaW5lZCBhdAorJSB0aGUgb3V0ZXIgbGV2ZWwpLgogJQotXGRlZlxjb25kaXRpb25hbHN1Y2NlZWQjMXslCi0gIFxlZGVmXHRlbXB7JQotICAgICUgUmVtZW1iZXIgdGhlIGN1cnJlbnQgdmFsdWUgb2YgXEUjMS4KLSAgICBcbGV0XG5lY2V7cHJldkUjMX0gPSBcbmVjZXtFIzF9JQotICAgICUKLSAgICAlIEF0IHRoZSBgQGVuZCAjMScsIHJlZGVmaW5lIFxFIzEgdG8gYmUgaXRzIHByZXZpb3VzIHZhbHVlLgotICAgIFxkZWZcbmVjZXtFIzF9e1xsZXRcbmVjZXtFIzF9ID0gXG5lY2V7cHJldkUjMX19JQotICB9JQotICBcdGVtcAorXGRlZlxjb25kaXRpb25hbHN1Y2NlZWQjMXtcYmVnaW5ncm91cAorICBcZXhwYW5kYWZ0ZXJcZGVmXGNzbmFtZSBFIzFcZW5kY3NuYW1le1xlbmRncm91cH0lCiB9CiAKLSUgV2UgbmVlZCB0byBleHBhbmQgbG90cyBvZiBcY3NuYW1lJ3MsIGJ1dCB3ZSBkb24ndCB3YW50IHRvIGV4cGFuZCB0aGUKLSUgY29udHJvbCBzZXF1ZW5jZXMgYWZ0ZXIgd2UndmUgY29uc3RydWN0ZWQgdGhlbS4KLSUKLVxkZWZcbmVjZSMxe1xleHBhbmRhZnRlclxub2V4cGFuZFxjc25hbWUjMVxlbmRjc25hbWV9Ci0KICUgQGRlZmluaW5mb2VuY2xvc2UuCiBcbGV0XGRlZmluZm9lbmNsb3NlPVxjb21tZW50CiAKQEAgLTI1ODcsNDIgKzI4ODQsNDggQEAKIH0KIAogJSBAZGVmaW5kZXggZm9vICA9PSAgXG5ld2luZGV4e2Zvb30KLQorJQogXGRlZlxkZWZpbmRleHtccGFyc2VhcmdcbmV3aW5kZXh9CiAKICUgRGVmaW5lIEBkZWZjb2RlaW5kZXgsIGxpa2UgQGRlZmluZGV4IGV4Y2VwdCBwdXQgYWxsIGVudHJpZXMgaW4gQGNvZGUuCi0KKyUKK1xkZWZcZGVmY29kZWluZGV4e1xwYXJzZWFyZ1xuZXdjb2RlaW5kZXh9CislCiBcZGVmXG5ld2NvZGVpbmRleCMxeyUKICAgXGlmbGlua3MKICAgICBcZXhwYW5kYWZ0ZXJcbmV3d3JpdGUgXGNzbmFtZSMxaW5kZmlsZVxlbmRjc25hbWUKICAgICBcb3Blbm91dCBcY3NuYW1lIzFpbmRmaWxlXGVuZGNzbmFtZSBcam9ibmFtZS4jMQogICBcZmkKICAgXGV4cGFuZGFmdGVyXHhkZWZcY3NuYW1lIzFpbmRleFxlbmRjc25hbWV7JQotICAgIFxub2V4cGFuZFxkb2NvZGVpbmRleHsjMX19CisgICAgXG5vZXhwYW5kXGRvY29kZWluZGV4eyMxfX0lCiB9CiAKLVxkZWZcZGVmY29kZWluZGV4e1xwYXJzZWFyZ1xuZXdjb2RlaW5kZXh9CiAKICUgQHN5bmluZGV4IGZvbyBiYXIgICAgbWFrZXMgaW5kZXggZm9vIGZlZWQgaW50byBpbmRleCBiYXIuCiAlIERvIHRoaXMgaW5zdGVhZCBvZiBAZGVmaW5kZXggZm9vIGlmIHlvdSBkb24ndCB3YW50IGl0IGFzIGEgc2VwYXJhdGUgaW5kZXguCi0lIFRoZSBcY2xvc2VvdXQgaGVscHMgcmVkdWNlIHVubmVjZXNzYXJ5IG9wZW4gZmlsZXM7IHRoZSBsaW1pdCBvbiB0aGUKLSUgQWNvcm4gUklTQyBPUyBpcyBhIG1lcmUgMTYgZmlsZXMuCi1cZGVmXHN5bmluZGV4IzEgIzIgeyUKLSAgXGV4cGFuZGFmdGVyXGxldFxleHBhbmRhZnRlclxzeW5pbmRleGZvb1xleHBhbmRhZnRlcj1cY3NuYW1lIzJpbmRmaWxlXGVuZGNzbmFtZQotICBcZXhwYW5kYWZ0ZXJcY2xvc2VvdXRcY3NuYW1lIzFpbmRmaWxlXGVuZGNzbmFtZQotICBcZXhwYW5kYWZ0ZXJcbGV0XGNzbmFtZSMxaW5kZmlsZVxlbmRjc25hbWU9XHN5bmluZGV4Zm9vCi0gIFxleHBhbmRhZnRlclx4ZGVmXGNzbmFtZSMxaW5kZXhcZW5kY3NuYW1leyUgZGVmaW5lIFx4eHhpbmRleAotICAgIFxub2V4cGFuZFxkb2luZGV4eyMyfX0lCi19Ci0KKyUgCiAlIEBzeW5jb2RlaW5kZXggZm9vIGJhciAgIHNpbWlsYXIsIGJ1dCBwdXQgYWxsIGVudHJpZXMgbWFkZSBmb3IgaW5kZXggZm9vCiAlIGluc2lkZSBAY29kZS4KLVxkZWZcc3luY29kZWluZGV4IzEgIzIgeyUKLSAgXGV4cGFuZGFmdGVyXGxldFxleHBhbmRhZnRlclxzeW5pbmRleGZvb1xleHBhbmRhZnRlcj1cY3NuYW1lIzJpbmRmaWxlXGVuZGNzbmFtZQotICBcZXhwYW5kYWZ0ZXJcY2xvc2VvdXRcY3NuYW1lIzFpbmRmaWxlXGVuZGNzbmFtZQotICBcZXhwYW5kYWZ0ZXJcbGV0XGNzbmFtZSMxaW5kZmlsZVxlbmRjc25hbWU9XHN5bmluZGV4Zm9vCi0gIFxleHBhbmRhZnRlclx4ZGVmXGNzbmFtZSMxaW5kZXhcZW5kY3NuYW1leyUgZGVmaW5lIFx4eHhpbmRleAotICAgIFxub2V4cGFuZFxkb2NvZGVpbmRleHsjMn19JQorJSAKK1xkZWZcc3luaW5kZXgjMSAjMiB7XGRvc3luaW5kZXhcZG9pbmRleHsjMX17IzJ9fQorXGRlZlxzeW5jb2RlaW5kZXgjMSAjMiB7XGRvc3luaW5kZXhcZG9jb2RlaW5kZXh7IzF9eyMyfX0KKworJSAjMSBpcyBcZG9pbmRleCBvciBcZG9jb2RlaW5kZXgsICMyIHRoZSBpbmRleCBnZXR0aW5nIHJlZGVmaW5lZCAoZm9vKSwKKyUgIzMgdGhlIHRhcmdldCBpbmRleCAoYmFyKS4KK1xkZWZcZG9zeW5pbmRleCMxIzIjM3slCisgICUgT25seSBkbyBcY2xvc2VvdXQgaWYgd2UgaGF2ZW4ndCBhbHJlYWR5IGRvbmUgaXQsIGVsc2Ugd2UnbGwgZW5kIHVwCisgICUgY2xvc2luZyB0aGUgdGFyZ2V0IGluZGV4LgorICBcZXhwYW5kYWZ0ZXIgXGlmeFxjc25hbWUgZG9uZXN5bmluZGV4IzJcZW5kY3NuYW1lIFx1bmRlZmluZWQKKyAgICAlIFRoZSBcY2xvc2VvdXQgaGVscHMgcmVkdWNlIHVubmVjZXNzYXJ5IG9wZW4gZmlsZXM7IHRoZSBsaW1pdCBvbiB0aGUKKyAgICAlIEFjb3JuIFJJU0MgT1MgaXMgYSBtZXJlIDE2IGZpbGVzLgorICAgIFxleHBhbmRhZnRlclxjbG9zZW91dFxjc25hbWUjMmluZGZpbGVcZW5kY3NuYW1lCisgICAgXGV4cGFuZGFmdGVyXGxldFxjc25hbWVcZG9uZXN5bmluZGV4IzJcZW5kY3NuYW1lID0gMQorICBcZmkKKyAgJSByZWRlZmluZSBcZm9vaW5kZmlsZToKKyAgXGV4cGFuZGFmdGVyXGxldFxleHBhbmRhZnRlclx0ZW1wXGV4cGFuZGFmdGVyPVxjc25hbWUjM2luZGZpbGVcZW5kY3NuYW1lCisgIFxleHBhbmRhZnRlclxsZXRcY3NuYW1lIzJpbmRmaWxlXGVuZGNzbmFtZT1cdGVtcAorICAlIHJlZGVmaW5lIFxmb29pbmRleDoKKyAgXGV4cGFuZGFmdGVyXHhkZWZcY3NuYW1lIzJpbmRleFxlbmRjc25hbWV7XG5vZXhwYW5kIzF7IzN9fSUKIH0KIAogJSBEZWZpbmUgXGRvaW5kZXgsIHRoZSBkcml2ZXIgZm9yIGFsbCBcZm9vaW5kZXggbWFjcm9zLgpAQCAtMjY0MiwxNzIgKzI5NDUsMjU1IEBACiBcZGVmXGRvY29kZWluZGV4IzF7XGVkZWZcaW5kZXhuYW1leyMxfVxwYXJzZWFyZ1xzaW5nbGVjb2RlaW5kZXhlcn0KIFxkZWZcc2luZ2xlY29kZWluZGV4ZXIgIzF7XGRvaW5ke1xpbmRleG5hbWV9e1xjb2RleyMxfX19CiAKKyUgVGFrZSBjYXJlIG9mIFRleGluZm8gY29tbWFuZHMgdGhhdCBjYW4gYXBwZWFyIGluIGFuIGluZGV4IGVudHJ5LgorJSBTaW5jZSB0aGVyZSBhcmUgc29tZSBjb21tYW5kcyB3ZSB3YW50IHRvIGV4cGFuZCwgYW5kIG90aGVycyB3ZSBkb24ndCwKKyUgd2UgaGF2ZSB0byBsYWJvcmlvdXNseSBwcmV2ZW50IGV4cGFuc2lvbiBmb3IgdGhvc2UgdGhhdCB3ZSBkb24ndC4KKyUgCiBcZGVmXGluZGV4ZHVtbWllc3slCi1cZGVmXCB7IH0lCi0lIFRha2UgY2FyZSBvZiB0aGUgcGxhaW4gdGV4IGFjY2VudCBjb21tYW5kcy4KLVxkZWZcIntccmVhbGJhY2tzbGFzaCAifSUKLVxkZWZcYHtccmVhbGJhY2tzbGFzaCBgfSUKLVxkZWZcJ3tccmVhbGJhY2tzbGFzaCAnfSUKLVxkZWZcXntccmVhbGJhY2tzbGFzaCBefSUKLVxkZWZcfntccmVhbGJhY2tzbGFzaCB+fSUKLVxkZWZcPXtccmVhbGJhY2tzbGFzaCA9fSUKLVxkZWZcYntccmVhbGJhY2tzbGFzaCBifSUKLVxkZWZcY3tccmVhbGJhY2tzbGFzaCBjfSUKLVxkZWZcZHtccmVhbGJhY2tzbGFzaCBkfSUKLVxkZWZcdXtccmVhbGJhY2tzbGFzaCB1fSUKLVxkZWZcdntccmVhbGJhY2tzbGFzaCB2fSUKLVxkZWZcSHtccmVhbGJhY2tzbGFzaCBIfSUKLSUgVGFrZSBjYXJlIG9mIHRoZSBwbGFpbiB0ZXggc3BlY2lhbCBFdXJvcGVhbiBtb2RpZmllZCBsZXR0ZXJzLgotXGRlZlxvZXtccmVhbGJhY2tzbGFzaCBvZX0lCi1cZGVmXGFle1xyZWFsYmFja3NsYXNoIGFlfSUKLVxkZWZcYWF7XHJlYWxiYWNrc2xhc2ggYWF9JQotXGRlZlxPRXtccmVhbGJhY2tzbGFzaCBPRX0lCi1cZGVmXEFFe1xyZWFsYmFja3NsYXNoIEFFfSUKLVxkZWZcQUF7XHJlYWxiYWNrc2xhc2ggQUF9JQotXGRlZlxve1xyZWFsYmFja3NsYXNoIG99JQotXGRlZlxPe1xyZWFsYmFja3NsYXNoIE99JQotXGRlZlxse1xyZWFsYmFja3NsYXNoIGx9JQotXGRlZlxMe1xyZWFsYmFja3NsYXNoIEx9JQotXGRlZlxzc3tccmVhbGJhY2tzbGFzaCBzc30lCi0lIFRha2UgY2FyZSBvZiB0ZXhpbmZvIGNvbW1hbmRzIGxpa2VseSB0byBhcHBlYXIgaW4gYW4gaW5kZXggZW50cnkuCi0lIChNdXN0IGJlIGEgd2F5IHRvIGF2b2lkIGRvaW5nIGV4cGFuc2lvbiBhdCBhbGwsIGFuZCB0aHVzIG5vdCBoYXZlIHRvCi0lIGxhYm9yaW91c2x5IGxpc3QgZXZlcnkgc2luZ2xlIGNvbW1hbmQgaGVyZS4pCi1cZGVmXEB7QH0lIHdpbGwgYmUgQEAgd2hlbiB3ZSBzd2l0Y2ggdG8gQCBhcyBlc2NhcGUgY2hhci4KLSUgTmVlZCB0aGVzZSBpbiBjYXNlIFx0ZXggaXMgaW4gZWZmZWN0IGFuZCBceyBpcyBhIFxkZWxpbWl0ZXIgYWdhaW4uCi0lIEJ1dCBjYW4ndCB1c2UgXGxicmFjZWNtZCBhbmQgXHJicmFjZWNtZCBiZWNhdXNlIHRleGluZGV4IGFzc3VtZXMKLSUgYnJhY2VzIGFuZCBiYWNrc2xhc2hlcyBhcmUgdXNlZCBvbmx5IGFzIGRlbGltaXRlcnMuICAKLVxsZXRceyA9IFxteWxicmFjZQotXGxldFx9ID0gXG15cmJyYWNlCi1cZGVmXF97e1xyZWFsYmFja3NsYXNoIF99fSUKLVxkZWZcd3tccmVhbGJhY2tzbGFzaCB3IH0lCi1cZGVmXGJme1xyZWFsYmFja3NsYXNoIGJmIH0lCi0lXGRlZlxybXtccmVhbGJhY2tzbGFzaCBybSB9JQotXGRlZlxzbHtccmVhbGJhY2tzbGFzaCBzbCB9JQotXGRlZlxzZntccmVhbGJhY2tzbGFzaCBzZn0lCi1cZGVmXHR0e1xyZWFsYmFja3NsYXNoIHR0fSUKLVxkZWZcZ3Rye1xyZWFsYmFja3NsYXNoIGd0cn0lCi1cZGVmXGxlc3N7XHJlYWxiYWNrc2xhc2ggbGVzc30lCi1cZGVmXGhhdHtccmVhbGJhY2tzbGFzaCBoYXR9JQotXGRlZlxUZVh7XHJlYWxiYWNrc2xhc2ggVGVYfSUKLVxkZWZcZG90c3tccmVhbGJhY2tzbGFzaCBkb3RzIH0lCi1cZGVmXHJlc3VsdHtccmVhbGJhY2tzbGFzaCByZXN1bHR9JQotXGRlZlxlcXVpdntccmVhbGJhY2tzbGFzaCBlcXVpdn0lCi1cZGVmXGV4cGFuc2lvbntccmVhbGJhY2tzbGFzaCBleHBhbnNpb259JQotXGRlZlxwcmludHtccmVhbGJhY2tzbGFzaCBwcmludH0lCi1cZGVmXGVycm9ye1xyZWFsYmFja3NsYXNoIGVycm9yfSUKLVxkZWZccG9pbnR7XHJlYWxiYWNrc2xhc2ggcG9pbnR9JQotXGRlZlxjb3B5cmlnaHR7XHJlYWxiYWNrc2xhc2ggY29weXJpZ2h0fSUKLVxkZWZcdGNsb3NlIyMxe1xyZWFsYmFja3NsYXNoIHRjbG9zZSB7IyMxfX0lCi1cZGVmXGNvZGUjIzF7XHJlYWxiYWNrc2xhc2ggY29kZSB7IyMxfX0lCi1cZGVmXHVyZWYjIzF7XHJlYWxiYWNrc2xhc2ggdXJlZiB7IyMxfX0lCi1cZGVmXHVybCMjMXtccmVhbGJhY2tzbGFzaCB1cmwgeyMjMX19JQotXGRlZlxlbnYjIzF7XHJlYWxiYWNrc2xhc2ggZW52IHsjIzF9fSUKLVxkZWZcY29tbWFuZCMjMXtccmVhbGJhY2tzbGFzaCBjb21tYW5kIHsjIzF9fSUKLVxkZWZcb3B0aW9uIyMxe1xyZWFsYmFja3NsYXNoIG9wdGlvbiB7IyMxfX0lCi1cZGVmXGRvdGxlc3MjIzF7XHJlYWxiYWNrc2xhc2ggZG90bGVzcyB7IyMxfX0lCi1cZGVmXHNhbXAjIzF7XHJlYWxiYWNrc2xhc2ggc2FtcCB7IyMxfX0lCi1cZGVmXCwjIzF7XHJlYWxiYWNrc2xhc2ggLHsjIzF9fSUKLVxkZWZcdCMjMXtccmVhbGJhY2tzbGFzaCB0IHsjIzF9fSUKLVxkZWZcciMjMXtccmVhbGJhY2tzbGFzaCByIHsjIzF9fSUKLVxkZWZcaSMjMXtccmVhbGJhY2tzbGFzaCBpIHsjIzF9fSUKLVxkZWZcYiMjMXtccmVhbGJhY2tzbGFzaCBiIHsjIzF9fSUKLVxkZWZcc2MjIzF7XHJlYWxiYWNrc2xhc2ggc2MgeyMjMX19JQotXGRlZlxjaXRlIyMxe1xyZWFsYmFja3NsYXNoIGNpdGUgeyMjMX19JQotXGRlZlxrZXkjIzF7XHJlYWxiYWNrc2xhc2gga2V5IHsjIzF9fSUKLVxkZWZcZmlsZSMjMXtccmVhbGJhY2tzbGFzaCBmaWxlIHsjIzF9fSUKLVxkZWZcdmFyIyMxe1xyZWFsYmFja3NsYXNoIHZhciB7IyMxfX0lCi1cZGVmXGtiZCMjMXtccmVhbGJhY2tzbGFzaCBrYmQgeyMjMX19JQotXGRlZlxkZm4jIzF7XHJlYWxiYWNrc2xhc2ggZGZuIHsjIzF9fSUKLVxkZWZcZW1waCMjMXtccmVhbGJhY2tzbGFzaCBlbXBoIHsjIzF9fSUKLVxkZWZcYWNyb255bSMjMXtccmVhbGJhY2tzbGFzaCBhY3JvbnltIHsjIzF9fSUKLSUKLSUgSGFuZGxlIHNvbWUgY2FzZXMgb2YgQHZhbHVlIC0tIHdoZXJlIHRoZSB2YXJpYWJsZSBuYW1lIGRvZXMgbm90Ci0lIGNvbnRhaW4gLSBvciBfLCBhbmQgdGhlIHZhbHVlIGRvZXMgbm90IGNvbnRhaW4gYW55Ci0lIChub24tZnVsbHktZXhwYW5kYWJsZSkgY29tbWFuZHMuCi1cbGV0XHZhbHVlID0gXGV4cGFuZGFibGV2YWx1ZQotJQotXHVuc2Vwc3BhY2VzCi0lIFR1cm4gb2ZmIG1hY3JvIGV4cGFuc2lvbgotXHR1cm5vZmZtYWNyb3MKKyAgXGRlZlxAe0B9JSBjaGFuZ2UgdG8gQEAgd2hlbiB3ZSBzd2l0Y2ggdG8gQCBhcyBlc2NhcGUgY2hhciBpbiBpbmRleCBmaWxlcy4KKyAgXGRlZlwge1xyZWFsYmFja3NsYXNoXHNwYWNlIH0lCisgICUgTmVlZCB0aGVzZSBpbiBjYXNlIFx0ZXggaXMgaW4gZWZmZWN0IGFuZCBceyBpcyBhIFxkZWxpbWl0ZXIgYWdhaW4uCisgICUgQnV0IGNhbid0IHVzZSBcbGJyYWNlY21kIGFuZCBccmJyYWNlY21kIGJlY2F1c2UgdGV4aW5kZXggYXNzdW1lcworICAlIGJyYWNlcyBhbmQgYmFja3NsYXNoZXMgYXJlIHVzZWQgb25seSBhcyBkZWxpbWl0ZXJzLiAgCisgIFxsZXRceyA9IFxteWxicmFjZQorICBcbGV0XH0gPSBcbXlyYnJhY2UKKyAgJQorICAlIFxkZWZpbmVkdW1teXdvcmQgZGVmaW5lcyBcIzEgYXMgXHJlYWxiYWNrc2xhc2ggIzFcc3BhY2UsIHRodXMKKyAgJSBlZmZlY3RpdmVseSBwcmV2ZW50aW5nIGl0cyBleHBhbnNpb24uICBUaGlzIGlzIHVzZWQgb25seSBmb3IgY29udHJvbAorICAlIHdvcmRzLCBub3QgY29udHJvbCBsZXR0ZXJzLCBiZWNhdXNlIHRoZSBcc3BhY2Ugd291bGQgYmUgaW5jb3JyZWN0CisgICUgZm9yIGNvbnRyb2wgY2hhcmFjdGVycywgYnV0IGlzIG5lZWRlZCB0byBzZXBhcmF0ZSB0aGUgY29udHJvbCB3b3JkCisgICUgZnJvbSB3aGF0ZXZlciBmb2xsb3dzLgorICAlIAorICAlIEZvciBjb250cm9sIGxldHRlcnMsIHdlIGhhdmUgXGRlZmluZWR1bW15bGV0dGVyLCB3aGljaCBvbWl0cyB0aGUKKyAgJSBzcGFjZS4KKyAgJSAKKyAgJSBUaGVzZSBjYW4gYmUgdXNlZCBib3RoIGZvciBjb250cm9sIHdvcmRzIHRoYXQgdGFrZSBhbiBhcmd1bWVudCBhbmQKKyAgJSB0aG9zZSB0aGF0IGRvIG5vdC4gIElmIGl0IGlzIGZvbGxvd2VkIGJ5IHthcmd9IGluIHRoZSBpbnB1dCwgdGhlbgorICAlIHRoYXQgd2lsbCBkdXRpZnVsbHkgZ2V0IHdyaXR0ZW4gdG8gdGhlIGluZGV4IChvciB3aGVyZXZlcikuCisgICUgCisgIFxkZWZcZGVmaW5lZHVtbXl3b3JkIyMxeyUKKyAgICBcZXhwYW5kYWZ0ZXJcZGVmXGNzbmFtZSAjIzFcZW5kY3NuYW1le1xyZWFsYmFja3NsYXNoICMjMVxzcGFjZX0lCisgIH0lCisgIFxkZWZcZGVmaW5lZHVtbXlsZXR0ZXIjIzF7JQorICAgIFxleHBhbmRhZnRlclxkZWZcY3NuYW1lICMjMVxlbmRjc25hbWV7XHJlYWxiYWNrc2xhc2ggIyMxfSUKKyAgfSUKKyAgJQorICAlIERvIHRoZSByZWRlZmluaXRpb25zLgorICBcY29tbW9uZHVtbWllcworfQorCislIEZvciB0aGUgYXV4IGZpbGUsIEAgaXMgdGhlIGVzY2FwZSBjaGFyYWN0ZXIuICBTbyB3ZSB3YW50IHRvIHJlZGVmaW5lCislIGV2ZXJ5dGhpbmcgdXNpbmcgQCBpbnN0ZWFkIG9mIFxyZWFsYmFja3NsYXNoLiAgV2hlbiBldmVyeXRoaW5nIHVzZXMgCislIEAsIHRoaXMgd2lsbCBiZSBzaW1wbGVyLgorJSAKK1xkZWZcYXRkdW1taWVzeyUKKyAgXGRlZlxAe0BAfSUKKyAgXGRlZlwge0AgfSUKKyAgXGxldFx7ID0gXGxicmFjZWF0Y21kCisgIFxsZXRcfSA9IFxyYnJhY2VhdGNtZAorICAlCisgICUgKFNlZSBjb21tZW50cyBpbiBcaW5kZXhkdW1taWVzLikKKyAgXGRlZlxkZWZpbmVkdW1teXdvcmQjIzF7JQorICAgIFxleHBhbmRhZnRlclxkZWZcY3NuYW1lICMjMVxlbmRjc25hbWV7QCMjMVxzcGFjZX0lCisgIH0lCisgIFxkZWZcZGVmaW5lZHVtbXlsZXR0ZXIjIzF7JQorICAgIFxleHBhbmRhZnRlclxkZWZcY3NuYW1lICMjMVxlbmRjc25hbWV7QCMjMX0lCisgIH0lCisgICUKKyAgJSBEbyB0aGUgcmVkZWZpbml0aW9ucy4KKyAgXGNvbW1vbmR1bW1pZXMKK30KKworJSBDYWxsZWQgZnJvbSBcaW5kZXhkdW1taWVzIGFuZCBcYXRkdW1taWVzLiAgXGRlZmluZWR1bW15d29yZCBhbmQKKyUgXGRlZmluZWR1bW15bGV0dGVyIG11c3QgYmUgZGVmaW5lZCBmaXJzdC4KKyUgCitcZGVmXGNvbW1vbmR1bW1pZXN7JQorICAlCisgIFxub3JtYWx0dXJub2ZmYWN0aXZlCisgICUKKyAgJSBDb250cm9sIGxldHRlcnMgYW5kIGFjY2VudHMuCisgIFxkZWZpbmVkdW1teWxldHRlcntffSUKKyAgXGRlZmluZWR1bW15bGV0dGVyeyx9JQorICBcZGVmaW5lZHVtbXlsZXR0ZXJ7In0lCisgIFxkZWZpbmVkdW1teWxldHRlcntgfSUKKyAgXGRlZmluZWR1bW15bGV0dGVyeyd9JQorICBcZGVmaW5lZHVtbXlsZXR0ZXJ7Xn0lCisgIFxkZWZpbmVkdW1teWxldHRlcnt+fSUKKyAgXGRlZmluZWR1bW15bGV0dGVyez19JQorICBcZGVmaW5lZHVtbXl3b3Jke3V9JQorICBcZGVmaW5lZHVtbXl3b3Jke3Z9JQorICBcZGVmaW5lZHVtbXl3b3Jke0h9JQorICBcZGVmaW5lZHVtbXl3b3Jke2RvdGFjY2VudH0lCisgIFxkZWZpbmVkdW1teXdvcmR7cmluZ2FjY2VudH0lCisgIFxkZWZpbmVkdW1teXdvcmR7dGllYWNjZW50fSUKKyAgXGRlZmluZWR1bW15d29yZHt1YmFyYWNjZW50fSUKKyAgXGRlZmluZWR1bW15d29yZHt1ZG90YWNjZW50fSUKKyAgXGRlZmluZWR1bW15d29yZHtkb3RsZXNzfSUKKyAgJQorICAlIE90aGVyIG5vbi1FbmdsaXNoIGxldHRlcnMuCisgIFxkZWZpbmVkdW1teXdvcmR7QUF9JQorICBcZGVmaW5lZHVtbXl3b3Jke0FFfSUKKyAgXGRlZmluZWR1bW15d29yZHtMfSUKKyAgXGRlZmluZWR1bW15d29yZHtPRX0lCisgIFxkZWZpbmVkdW1teXdvcmR7T30lCisgIFxkZWZpbmVkdW1teXdvcmR7YWF9JQorICBcZGVmaW5lZHVtbXl3b3Jke2FlfSUKKyAgXGRlZmluZWR1bW15d29yZHtsfSUKKyAgXGRlZmluZWR1bW15d29yZHtvZX0lCisgIFxkZWZpbmVkdW1teXdvcmR7b30lCisgIFxkZWZpbmVkdW1teXdvcmR7c3N9JQorICAlCisgICUgQWx0aG91Z2ggdGhlc2UgaW50ZXJuYWwgY29tbWFuZHMgc2hvdWxkbid0IHNob3cgdXAsIHNvbWV0aW1lcyB0aGV5IGRvLgorICBcZGVmaW5lZHVtbXl3b3Jke2JmfSUKKyAgXGRlZmluZWR1bW15d29yZHtndHJ9JQorICBcZGVmaW5lZHVtbXl3b3Jke2hhdH0lCisgIFxkZWZpbmVkdW1teXdvcmR7bGVzc30lCisgIFxkZWZpbmVkdW1teXdvcmR7c2Z9JQorICBcZGVmaW5lZHVtbXl3b3Jke3NsfSUKKyAgXGRlZmluZWR1bW15d29yZHt0Y2xvc2V9JQorICBcZGVmaW5lZHVtbXl3b3Jke3R0fSUKKyAgJQorICAlIFRleGluZm8gZm9udCBjb21tYW5kcy4KKyAgXGRlZmluZWR1bW15d29yZHtifSUKKyAgXGRlZmluZWR1bW15d29yZHtpfSUKKyAgXGRlZmluZWR1bW15d29yZHtyfSUKKyAgXGRlZmluZWR1bW15d29yZHtzY30lCisgIFxkZWZpbmVkdW1teXdvcmR7dH0lCisgICUKKyAgXGRlZmluZWR1bW15d29yZHtUZVh9JQorICBcZGVmaW5lZHVtbXl3b3Jke2Fjcm9ueW19JQorICBcZGVmaW5lZHVtbXl3b3Jke2NpdGV9JQorICBcZGVmaW5lZHVtbXl3b3Jke2NvZGV9JQorICBcZGVmaW5lZHVtbXl3b3Jke2NvbW1hbmR9JQorICBcZGVmaW5lZHVtbXl3b3Jke2Rmbn0lCisgIFxkZWZpbmVkdW1teXdvcmR7ZG90c30lCisgIFxkZWZpbmVkdW1teXdvcmR7ZW1waH0lCisgIFxkZWZpbmVkdW1teXdvcmR7ZW52fSUKKyAgXGRlZmluZWR1bW15d29yZHtmaWxlfSUKKyAgXGRlZmluZWR1bW15d29yZHtrYmR9JQorICBcZGVmaW5lZHVtbXl3b3Jke2tleX0lCisgIFxkZWZpbmVkdW1teXdvcmR7bWF0aH0lCisgIFxkZWZpbmVkdW1teXdvcmR7b3B0aW9ufSUKKyAgXGRlZmluZWR1bW15d29yZHtzYW1wfSUKKyAgXGRlZmluZWR1bW15d29yZHtzdHJvbmd9JQorICBcZGVmaW5lZHVtbXl3b3Jke3VyZWZ9JQorICBcZGVmaW5lZHVtbXl3b3Jke3VybH0lCisgIFxkZWZpbmVkdW1teXdvcmR7dmFyfSUKKyAgXGRlZmluZWR1bW15d29yZHt3fSUKKyAgJQorICAlIEFzc29ydGVkIHNwZWNpYWwgY2hhcmFjdGVycy4KKyAgXGRlZmluZWR1bW15d29yZHtidWxsZXR9JQorICBcZGVmaW5lZHVtbXl3b3Jke2NvcHlyaWdodH0lCisgIFxkZWZpbmVkdW1teXdvcmR7ZG90c30lCisgIFxkZWZpbmVkdW1teXdvcmR7ZW5kZG90c30lCisgIFxkZWZpbmVkdW1teXdvcmR7ZXF1aXZ9JQorICBcZGVmaW5lZHVtbXl3b3Jke2Vycm9yfSUKKyAgXGRlZmluZWR1bW15d29yZHtleHBhbnNpb259JQorICBcZGVmaW5lZHVtbXl3b3Jke21pbnVzfSUKKyAgXGRlZmluZWR1bW15d29yZHtwb3VuZHN9JQorICBcZGVmaW5lZHVtbXl3b3Jke3BvaW50fSUKKyAgXGRlZmluZWR1bW15d29yZHtwcmludH0lCisgIFxkZWZpbmVkdW1teXdvcmR7cmVzdWx0fSUKKyAgJQorICAlIEhhbmRsZSBzb21lIGNhc2VzIG9mIEB2YWx1ZSAtLSB3aGVyZSB0aGUgdmFyaWFibGUgbmFtZSBkb2VzIG5vdAorICAlIGNvbnRhaW4gLSBvciBfLCBhbmQgdGhlIHZhbHVlIGRvZXMgbm90IGNvbnRhaW4gYW55CisgICUgKG5vbi1mdWxseS1leHBhbmRhYmxlKSBjb21tYW5kcy4KKyAgXGxldFx2YWx1ZSA9IFxleHBhbmRhYmxldmFsdWUKKyAgJQorICAlIE5vcm1hbCBzcGFjZXMsIG5vdCBhY3RpdmUgb25lcy4KKyAgXHVuc2Vwc3BhY2VzCisgICUKKyAgJSBObyBtYWNybyBleHBhbnNpb24uCisgIFx0dXJub2ZmbWFjcm9zCiB9CiAKICUgSWYgYW4gaW5kZXggY29tbWFuZCBpcyB1c2VkIGluIGFuIEBleGFtcGxlIGVudmlyb25tZW50LCBhbnkgc3BhY2VzCiAlIHRoZXJlaW4gc2hvdWxkIGJlY29tZSByZWd1bGFyIHNwYWNlcyBpbiB0aGUgcmF3IGluZGV4IGZpbGUsIG5vdCB0aGUKLSUgZXhwYW5zaW9uIG9mIFx0aWUgKFxcbGVhdmV2bW9kZSBccGVuYWx0eSBcQE0gXCApLgorJSBleHBhbnNpb24gb2YgXHRpZSAoXGxlYXZldm1vZGUgXHBlbmFsdHkgXEBNIFwgKS4KIHtcb2JleXNwYWNlcwogIFxnZGVmXHVuc2Vwc3BhY2Vze1xvYmV5c3BhY2VzXGxldCA9XHNwYWNlfX0KIAotJSBcaW5kZXhub2ZvbnRzIG5vLW9wcyBhbGwgZm9udC1jaGFuZ2UgY29tbWFuZHMuCi0lIFRoaXMgaXMgdXNlZCB3aGVuIG91dHB1dHRpbmcgdGhlIHN0cmluZ3MgdG8gc29ydCB0aGUgaW5kZXggYnkuCi1cZGVmXGluZGV4ZHVtbXlmb250IzF7IzF9CisKKyUgXGluZGV4bm9mb250cyBpcyB1c2VkIHdoZW4gb3V0cHV0dGluZyB0aGUgc3RyaW5ncyB0byBzb3J0IHRoZSBpbmRleAorJSBieSwgYW5kIHdoZW4gY29uc3RydWN0aW5nIGNvbnRyb2wgc2VxdWVuY2UgbmFtZXMuICBJdCBlbGltaW5hdGVzIGFsbAorJSBjb250cm9sIHNlcXVlbmNlcyBhbmQganVzdCB3cml0ZXMgd2hhdGV2ZXIgdGhlIGJlc3QgQVNDSUkgc29ydCBzdHJpbmcKKyUgd291bGQgYmUgZm9yIGEgZ2l2ZW4gY29tbWFuZCAodXN1YWxseSBpdHMgYXJndW1lbnQpLgorJQogXGRlZlxpbmRleGR1bW15dGV4e1RlWH0KIFxkZWZcaW5kZXhkdW1teWRvdHN7Li4ufQotCislCiBcZGVmXGluZGV4bm9mb250c3slCi0lIEp1c3QgaWdub3JlIGFjY2VudHMuCi1cbGV0XCw9XGluZGV4ZHVtbXlmb250Ci1cbGV0XCI9XGluZGV4ZHVtbXlmb250Ci1cbGV0XGA9XGluZGV4ZHVtbXlmb250Ci1cbGV0XCc9XGluZGV4ZHVtbXlmb250Ci1cbGV0XF49XGluZGV4ZHVtbXlmb250Ci1cbGV0XH49XGluZGV4ZHVtbXlmb250Ci1cbGV0XD09XGluZGV4ZHVtbXlmb250Ci1cbGV0XGI9XGluZGV4ZHVtbXlmb250Ci1cbGV0XGM9XGluZGV4ZHVtbXlmb250Ci1cbGV0XGQ9XGluZGV4ZHVtbXlmb250Ci1cbGV0XHU9XGluZGV4ZHVtbXlmb250Ci1cbGV0XHY9XGluZGV4ZHVtbXlmb250Ci1cbGV0XEg9XGluZGV4ZHVtbXlmb250Ci1cbGV0XGRvdGxlc3M9XGluZGV4ZHVtbXlmb250Ci0lIFRha2UgY2FyZSBvZiB0aGUgcGxhaW4gdGV4IHNwZWNpYWwgRXVyb3BlYW4gbW9kaWZpZWQgbGV0dGVycy4KLVxkZWZcb2V7b2V9JQotXGRlZlxhZXthZX0lCi1cZGVmXGFhe2FhfSUKLVxkZWZcT0V7T0V9JQotXGRlZlxBRXtBRX0lCi1cZGVmXEFBe0FBfSUKLVxkZWZcb3tvfSUKLVxkZWZcT3tPfSUKLVxkZWZcbHtsfSUKLVxkZWZcTHtMfSUKLVxkZWZcc3N7c3N9JQotXGxldFx3PVxpbmRleGR1bW15Zm9udAotXGxldFx0PVxpbmRleGR1bW15Zm9udAotXGxldFxyPVxpbmRleGR1bW15Zm9udAotXGxldFxpPVxpbmRleGR1bW15Zm9udAotXGxldFxiPVxpbmRleGR1bW15Zm9udAotXGxldFxlbXBoPVxpbmRleGR1bW15Zm9udAotXGxldFxzdHJvbmc9XGluZGV4ZHVtbXlmb250Ci1cbGV0XGNpdGU9XGluZGV4ZHVtbXlmb250Ci1cbGV0XHNjPVxpbmRleGR1bW15Zm9udAotJURvbid0IG5vLW9wIFx0dCwgc2luY2UgaXQgaXNuJ3QgYSB1c2VyLWxldmVsIGNvbW1hbmQKLSUgYW5kIGlzIHVzZWQgaW4gdGhlIGRlZmluaXRpb25zIG9mIHRoZSBhY3RpdmUgY2hhcnMgbGlrZSA8LCA+LCB8Li4uCi0lXGxldFx0dD1caW5kZXhkdW1teWZvbnQKLVxsZXRcdGNsb3NlPVxpbmRleGR1bW15Zm9udAotXGxldFxjb2RlPVxpbmRleGR1bW15Zm9udAotXGxldFx1cmw9XGluZGV4ZHVtbXlmb250Ci1cbGV0XHVyZWY9XGluZGV4ZHVtbXlmb250Ci1cbGV0XGVudj1caW5kZXhkdW1teWZvbnQKLVxsZXRcYWNyb255bT1caW5kZXhkdW1teWZvbnQKLVxsZXRcY29tbWFuZD1caW5kZXhkdW1teWZvbnQKLVxsZXRcb3B0aW9uPVxpbmRleGR1bW15Zm9udAotXGxldFxmaWxlPVxpbmRleGR1bW15Zm9udAotXGxldFxzYW1wPVxpbmRleGR1bW15Zm9udAotXGxldFxrYmQ9XGluZGV4ZHVtbXlmb250Ci1cbGV0XGtleT1caW5kZXhkdW1teWZvbnQKLVxsZXRcdmFyPVxpbmRleGR1bW15Zm9udAotXGxldFxUZVg9XGluZGV4ZHVtbXl0ZXgKLVxsZXRcZG90cz1caW5kZXhkdW1teWRvdHMKLVxkZWZcQHtAfSUKKyAgXGRlZlwgeyB9JQorICBcZGVmXEB7QH0lCisgICUgaG93IHRvIGhhbmRsZSBicmFjZXM/CisgIFxkZWZcX3tcbm9ybWFsdW5kZXJzY29yZX0lCisgICUKKyAgXGxldFwsPVxhc2lzCisgIFxsZXRcIj1cYXNpcworICBcbGV0XGA9XGFzaXMKKyAgXGxldFwnPVxhc2lzCisgIFxsZXRcXj1cYXNpcworICBcbGV0XH49XGFzaXMKKyAgXGxldFw9PVxhc2lzCisgIFxsZXRcdT1cYXNpcworICBcbGV0XHY9XGFzaXMKKyAgXGxldFxIPVxhc2lzCisgIFxsZXRcZG90YWNjZW50PVxhc2lzCisgIFxsZXRccmluZ2FjY2VudD1cYXNpcworICBcbGV0XHRpZWFjY2VudD1cYXNpcworICBcbGV0XHViYXJhY2NlbnQ9XGFzaXMKKyAgXGxldFx1ZG90YWNjZW50PVxhc2lzCisgIFxsZXRcZG90bGVzcz1cYXNpcworICAlCisgICUgT3RoZXIgbm9uLUVuZ2xpc2ggbGV0dGVycy4KKyAgXGRlZlxBQXtBQX0lCisgIFxkZWZcQUV7QUV9JQorICBcZGVmXEx7TH0lCisgIFxkZWZcT0V7T0V9JQorICBcZGVmXE97T30lCisgIFxkZWZcYWF7YWF9JQorICBcZGVmXGFle2FlfSUKKyAgXGRlZlxse2x9JQorICBcZGVmXG9le29lfSUKKyAgXGRlZlxve299JQorICBcZGVmXHNze3NzfSUKKyAgXGRlZlxleGNsYW1kb3dueyF9JQorICBcZGVmXHF1ZXN0aW9uZG93bns/fSUKKyAgJQorICAlIERvbid0IG5vLW9wIFx0dCwgc2luY2UgaXQgaXNuJ3QgYSB1c2VyLWxldmVsIGNvbW1hbmQKKyAgJSBhbmQgaXMgdXNlZCBpbiB0aGUgZGVmaW5pdGlvbnMgb2YgdGhlIGFjdGl2ZSBjaGFycyBsaWtlIDwsID4sIHwsIGV0Yy4KKyAgJSBMaWtld2lzZSB3aXRoIHRoZSBvdGhlciBwbGFpbiB0ZXggZm9udCBjb21tYW5kcy4KKyAgJVxsZXRcdHQ9XGFzaXMKKyAgJQorICAlIFRleGluZm8gZm9udCBjb21tYW5kcy4KKyAgXGxldFxiPVxhc2lzCisgIFxsZXRcaT1cYXNpcworICBcbGV0XHI9XGFzaXMKKyAgXGxldFxzYz1cYXNpcworICBcbGV0XHQ9XGFzaXMKKyAgJQorICBcbGV0XFRlWD1caW5kZXhkdW1teXRleAorICBcbGV0XGFjcm9ueW09XGFzaXMKKyAgXGxldFxjaXRlPVxhc2lzCisgIFxsZXRcY29kZT1cYXNpcworICBcbGV0XGNvbW1hbmQ9XGFzaXMKKyAgXGxldFxkZm49XGFzaXMKKyAgXGxldFxkb3RzPVxpbmRleGR1bW15ZG90cworICBcbGV0XGVtcGg9XGFzaXMKKyAgXGxldFxlbnY9XGFzaXMKKyAgXGxldFxmaWxlPVxhc2lzCisgIFxsZXRca2JkPVxhc2lzCisgIFxsZXRca2V5PVxhc2lzCisgIFxsZXRcbWF0aD1cYXNpcworICBcbGV0XG9wdGlvbj1cYXNpcworICBcbGV0XHNhbXA9XGFzaXMKKyAgXGxldFxzdHJvbmc9XGFzaXMKKyAgXGxldFx1cmVmPVxhc2lzCisgIFxsZXRcdXJsPVxhc2lzCisgIFxsZXRcdmFyPVxhc2lzCisgIFxsZXRcdz1cYXNpcwogfQogCi0lIFRvIGRlZmluZSBccmVhbGJhY2tzbGFzaCwgd2UgbXVzdCBtYWtlIFwgbm90IGJlIGFuIGVzY2FwZS4KLSUgV2UgbXVzdCBmaXJzdCBtYWtlIGFub3RoZXIgY2hhcmFjdGVyIChAKSBhbiBlc2NhcGUKLSUgc28gd2UgZG8gbm90IGJlY29tZSB1bmFibGUgdG8gZG8gYSBkZWZpbml0aW9uLgotCi17XGNhdGNvZGVgXEA9MCBcY2F0Y29kZWBcXD1cb3RoZXIKLSBAZ2RlZkByZWFsYmFja3NsYXNoe1x9fQotCiBcbGV0XGluZGV4YmFja3NsYXNoPTAgICVvdmVycmlkZGVuIGR1cmluZyBccHJpbnRpbmRleC4KIFxsZXRcU0VUbWFyZ2luaW5kZXg9XHJlbGF4ICUgcHV0IGluZGV4IGVudHJpZXMgaW4gbWFyZ2luICh1bmRvY3VtZW50ZWQpPwogCkBAIC0yODM4LDMyICszMjI0LDI5IEBACiAgICAgICAgIFxkZWZccmF3YmFja3NsYXNoeHh7XGluZGV4YmFja3NsYXNofSUgXGluZGV4YmFja3NsYXNoIGlzbid0IGRlZmluZWQgbm93CiAgICAgICAgICUgc28gaXQgd2lsbCBiZSBvdXRwdXQgYXMgaXM7IGFuZCBpdCB3aWxsIHByaW50IGFzIGJhY2tzbGFzaC4KICAgICAgICAgJQotICAgICAgICBcZGVmXHRoaXJkYXJneyMzfSUKLSAgICAgICAgJQotICAgICAgICAlIElmIHRoaXJkIGFyZyBpcyBwcmVzZW50LCBwcmVjZWRlIGl0IHdpdGggc3BhY2UgaW4gc29ydCBrZXkuCi0gICAgICAgIFxpZnhcdGhpcmRhcmdcZW1wdHltYWNybwotICAgICAgICAgIFxsZXRcc3ViZW50cnkgPSBcZW1wdHkKLSAgICAgICAgXGVsc2UKLSAgICAgICAgICBcZGVmXHN1YmVudHJ5eyAjM30lCi0gICAgICAgIFxmaQotICAgICAgICAlCi0gICAgICAgICUgRmlyc3QgcHJvY2VzcyB0aGUgaW5kZXggZW50cnkgd2l0aCBhbGwgZm9udCBjb21tYW5kcyB0dXJuZWQKLSAgICAgICAgJSBvZmYgdG8gZ2V0IHRoZSBzdHJpbmcgdG8gc29ydCBieS4KLSAgICAgICAge1xpbmRleG5vZm9udHMgXHhkZWZcaW5kZXhzb3J0dG1weyMyXHN1YmVudHJ5fX0lCi0gICAgICAgICUKLSAgICAgICAgJSBOb3cgdGhlIHJlYWwgaW5kZXggZW50cnkgd2l0aCB0aGUgZm9udHMuCisgICAgICAgICUgVGhlIG1haW4gaW5kZXggZW50cnkgdGV4dC4KICAgICAgICAgXHRva3MwID0geyMyfSUKICAgICAgICAgJQotICAgICAgICAlIElmIHRoaXJkIChzdWJlbnRyeSkgYXJnIGlzIHByZXNlbnQsIGFkZCBpdCB0byB0aGUgaW5kZXgKLSAgICAgICAgJSBzdHJpbmcuICBBbmQgaW5jbHVkZSBhIHNwYWNlLgorICAgICAgICAlIElmIHRoaXJkIGFyZyBpcyBwcmVzZW50LCBwcmVjZWRlIGl0IHdpdGggc3BhY2UgaW4gc29ydCBrZXkuCisgICAgICAgIFxkZWZcdGhpcmRhcmd7IzN9JQogICAgICAgICBcaWZ4XHRoaXJkYXJnXGVtcHR5bWFjcm8gXGVsc2UKKyAgICAgICAgICAgJSBJZiB0aGUgdGhpcmQgKHN1YmVudHJ5KSBhcmcgaXMgcHJlc2VudCwgYWRkIGl0IHRvIHRoZSBpbmRleAorICAgICAgICAgICAlIGxpbmUgdG8gd3JpdGUuCiAgICAgICAgICAgXHRva3MwID0gXGV4cGFuZGFmdGVye1x0aGVcdG9rczAgXHNwYWNlICMzfSUKICAgICAgICAgXGZpCiAgICAgICAgICUKLSAgICAgICAgJSBTZXQgdXAgdGhlIGNvbXBsZXRlIGluZGV4IGVudHJ5LCB3aXRoIGJvdGggdGhlIHNvcnQga2V5Ci0gICAgICAgICUgYW5kIHRoZSBvcmlnaW5hbCB0ZXh0LCBpbmNsdWRpbmcgYW55IGZvbnQgY29tbWFuZHMuICBXZSB3cml0ZQotICAgICAgICAlIHRocmVlIGFyZ3VtZW50cyB0byBcZW50cnkgdG8gdGhlIC4/PyBmaWxlLCB0ZXhpbmRleCByZWR1Y2VzIHRvCi0gICAgICAgICUgdHdvIHdoZW4gd3JpdGluZyB0aGUgLj8/cyBzb3J0ZWQgcmVzdWx0LgorICAgICAgICAlIFByb2Nlc3MgdGhlIGluZGV4IGVudHJ5IHdpdGggYWxsIGZvbnQgY29tbWFuZHMgdHVybmVkIG9mZiwgdG8KKyAgICAgICAgJSBnZXQgdGhlIHN0cmluZyB0byBzb3J0IGJ5LgorICAgICAgICB7XGluZGV4bm9mb250cworICAgICAgICAgXGVkZWZcdGVtcHtcdGhlXHRva3MwfSUgbmVlZCBmdWxsIGV4cGFuc2lvbgorICAgICAgICAgXHhkZWZcaW5kZXhzb3J0dG1we1x0ZW1wfSUKKyAgICAgICAgfSUKKyAgICAgICAgJQorICAgICAgICAlIFNldCB1cCB0aGUgY29tcGxldGUgaW5kZXggZW50cnksIHdpdGggYm90aCB0aGUgc29ydCBrZXkgYW5kCisgICAgICAgICUgdGhlIG9yaWdpbmFsIHRleHQsIGluY2x1ZGluZyBhbnkgZm9udCBjb21tYW5kcy4gIFdlIHdyaXRlCisgICAgICAgICUgdGhyZWUgYXJndW1lbnRzIHRvIFxlbnRyeSB0byB0aGUgLj8/IGZpbGUgKGZvdXIgaW4gdGhlCisgICAgICAgICUgc3ViZW50cnkgY2FzZSksIHRleGluZGV4IHJlZHVjZXMgdG8gdHdvIHdoZW4gd3JpdGluZyB0aGUgLj8/cworICAgICAgICAlIHNvcnRlZCByZXN1bHQuCiAgICAgICAgIFxlZGVmXHRlbXB7JQogICAgICAgICAgIFx3cml0ZVxjc25hbWUjMWluZGZpbGVcZW5kY3NuYW1leyUKICAgICAgICAgICAgIFxyZWFsYmFja3NsYXNoIGVudHJ5e1xpbmRleHNvcnR0bXB9e1xmb2xpb317XHRoZVx0b2tzMH19JQpAQCAtMjg4OSwxMiArMzI3MiwxMSBAQAogICAgICAgICBcaWZsaW5rcwogICAgICAgICAgIFxpZnZtb2RlCiAgICAgICAgICAgICBcc2tpcDAgPSBcbGFzdHNraXAKLSAgICAgICAgICAgIFxpZmRpbVxsYXN0c2tpcCA9IDBwdCBcZWxzZSBcbm9icmVha1x2c2tpcC1cbGFzdHNraXAgXGZpCisgICAgICAgICAgICBcaWZkaW1cbGFzdHNraXAgPSAwcHQgXGVsc2UgXG5vYnJlYWtcdnNraXAtXHNraXAwIFxmaQogICAgICAgICAgIFxmaQogICAgICAgICAgICUKICAgICAgICAgICBcdGVtcCAlIGRvIHRoZSB3cml0ZQogICAgICAgICAgICUKLSAgICAgICAgICAlCiAgICAgICAgICAgXGlmdm1vZGUgXGlmZGltXHNraXAwID0gMHB0IFxlbHNlIFxub2JyZWFrXHZza2lwXHNraXAwIFxmaSBcZmkKICAgICAgICAgXGZpCiAgICAgICB9JQpAQCAtMzA4NSwxMSArMzQ2NywxOCBAQAogXGRlZlxwcmltYXJ5ICMxe1xsaW5leyMxXGhmaWx9fQogCiBcbmV3c2tpcFxzZWNvbmRhcnlpbmRlbnQgXHNlY29uZGFyeWluZGVudD0wLjVjbQotCi1cZGVmXHNlY29uZGFyeSAjMSMyewote1xwYXJmaWxsc2tpcD0waW4gXHBhcnNraXA9MGluCi1caGFuZ2luZGVudCA9MWluIFxoYW5nYWZ0ZXI9MQotXG5vaW5kZW50XGhza2lwXHNlY29uZGFyeWluZGVudFxoYm94eyMxfVxpbmRleGRvdGZpbGwgIzJccGFyCitcZGVmXHNlY29uZGFyeSMxIzJ7eyUKKyAgXHBhcmZpbGxza2lwPTBpbgorICBccGFyc2tpcD0waW4KKyAgXGhhbmdpbmRlbnQ9MWluCisgIFxoYW5nYWZ0ZXI9MQorICBcbm9pbmRlbnRcaHNraXBcc2Vjb25kYXJ5aW5kZW50XGhib3h7IzF9XGluZGV4ZG90ZmlsbAorICBcaWZwZGYKKyAgICBccGRmZ2V0dG9rcyMyLlwgXHRoZVx0b2tzQSAlIFRoZSBwYWdlIG51bWJlciBlbmRzIHRoZSBwYXJhZ3JhcGguCisgIFxlbHNlCisgICAgIzIKKyAgXGZpCisgIFxwYXIKIH19CiAKICUgRGVmaW5lIHR3by1jb2x1bW4gbW9kZSwgd2hpY2ggd2UgdXNlIHRvIHR5cGVzZXQgaW5kZXhlcy4KQEAgLTMxNDksNyArMzUzOCw2IEBACiAgICUKICAgJSBEb3VibGUgdGhlIFx2c2l6ZSBhcyB3ZWxsLiAgKFdlIGRvbid0IG5lZWQgYSBzZXBhcmF0ZSByZWdpc3RlciBoZXJlLAogICAlIHNpbmNlIG5vYm9keSBjbG9iYmVycyBcdnNpemUuKQotICBcYWR2YW5jZVx2c2l6ZSBieSAtXGh0XHBhcnRpYWxwYWdlCiAgIFx2c2l6ZSA9IDJcdnNpemUKIH0KIApAQCAtMzE2Myw2ICszNTUxLDcgQEAKICAgJSBwcmV2aW91cyBwYWdlLgogICBcZGltZW5AID0gXHZzaXplCiAgIFxkaXZpZGVcZGltZW5AIGJ5IDIKKyAgXGFkdmFuY2VcZGltZW5AIGJ5IC1caHRccGFydGlhbHBhZ2UKICAgJQogICAlIGJveDAgd2lsbCBiZSB0aGUgbGVmdC1oYW5kIGNvbHVtbiwgYm94MiB0aGUgcmlnaHQuCiAgIFxzZXRib3gwPVx2c3BsaXQyNTUgdG9cZGltZW5AIFxzZXRib3gyPVx2c3BsaXQyNTUgdG9cZGltZW5ACkBAIC0zMTcwLDE1ICszNTU5LDE4IEBACiAgIFx1bnZib3gyNTUKICAgXHBlbmFsdHlcb3V0cHV0cGVuYWx0eQogfQorJQorJSBSZS1vdXRwdXQgdGhlIGNvbnRlbnRzIG9mIHRoZSBvdXRwdXQgcGFnZSAtLSBhbnkgcHJldmlvdXMgbWF0ZXJpYWwsCislIGZvbGxvd2VkIGJ5IHRoZSB0d28gYm94ZXMgd2UganVzdCBzcGxpdCwgaW4gYm94MCBhbmQgYm94Mi4KIFxkZWZccGFnZXNvZmFyeyUKLSAgJSBSZS1vdXRwdXQgdGhlIGNvbnRlbnRzIG9mIHRoZSBvdXRwdXQgcGFnZSAtLSBhbnkgcHJldmlvdXMgbWF0ZXJpYWwsCi0gICUgZm9sbG93ZWQgYnkgdGhlIHR3byBib3hlcyB3ZSBqdXN0IHNwbGl0LCBpbiBib3gwIGFuZCBib3gyLgogICBcdW52Ym94XHBhcnRpYWxwYWdlCiAgICUKICAgXGhzaXplID0gXGRvdWJsZWNvbHVtbmhzaXplCiAgIFx3ZDA9XGhzaXplIFx3ZDI9XGhzaXplCiAgIFxoYm94IHRvXHBhZ2V3aWR0aHtcYm94MFxoZmlsXGJveDJ9JQogfQorJSAKKyUgQWxsIGRvbmUgd2l0aCBkb3VibGUgY29sdW1ucy4KIFxkZWZcZW5kZG91YmxlY29sdW1uc3slCiAgIFxvdXRwdXQgPSB7JQogICAgICUgU3BsaXQgdGhlIGxhc3Qgb2YgdGhlIGRvdWJsZS1jb2x1bW4gbWF0ZXJpYWwuICBMZWF2ZSBpdCBvbiB0aGUKQEAgLTMyMDMsOCArMzU5NSw5IEBACiAgICUgXGVuZGdyb3VwIHdoZXJlIFx2c2l6ZSBnb3QgcmVzdG9yZWQpLgogICBccGFnZWdvYWwgPSBcdnNpemUKIH0KKyUKKyUgQ2FsbGVkIGF0IHRoZSBlbmQgb2YgdGhlIGRvdWJsZSBjb2x1bW4gbWF0ZXJpYWwuCiBcZGVmXGJhbGFuY2Vjb2x1bW5zeyUKLSAgJSBDYWxsZWQgYXQgdGhlIGVuZCBvZiB0aGUgZG91YmxlIGNvbHVtbiBtYXRlcmlhbC4KICAgXHNldGJveDAgPSBcdmJveHtcdW52Ym94MjU1fSUgbGlrZSBcYm94MjU1IGJ1dCBtb3JlIGVmZmljaWVudCwgc2VlIHAuMTIwLgogICBcZGltZW5AID0gXGh0MAogICBcYWR2YW5jZVxkaW1lbkAgYnkgXHRvcHNraXAKQEAgLTMzNTksNDIgKzM3NTIsNDEgQEAKIFxvdXRlclxkZWZcY2hhcHRlcntccGFyc2VhcmdcY2hhcHRlcnl5eX0KIFxkZWZcY2hhcHRlcnl5eSAjMXtcbnVtaGVhZDB7IzF9fSAlIG5vcm1hbGx5IG51bWhlYWQwIGNhbGxzIGNoYXB0ZXJ6enoKIFxkZWZcY2hhcHRlcnp6eiAjMXslCi1cc2Vjbm89MCBcc3Vic2Vjbm89MCBcc3Vic3Vic2Vjbm89MAotXGdsb2JhbFxhZHZhbmNlIFxjaGFwbm8gYnkgMSBcbWVzc2FnZXtccHV0d29yZENoYXB0ZXJcc3BhY2UgXHRoZVxjaGFwbm99JQotXGNoYXBtYWNybyB7IzF9e1x0aGVcY2hhcG5vfSUKLVxnZGVmXHRoaXNzZWN0aW9ueyMxfSUKLVxnZGVmXHRoaXNjaGFwdGVybmFtZXsjMX0lCi0lIFdlIGRvbid0IHN1YnN0aXR1dGUgdGhlIGFjdHVhbCBjaGFwdGVyIG5hbWUgaW50byBcdGhpc2NoYXB0ZXIKLSUgYmVjYXVzZSB3ZSBkb24ndCB3YW50IGl0cyBtYWNyb3MgZXZhbHVhdGVkIG5vdy4KLVx4ZGVmXHRoaXNjaGFwdGVye1xwdXR3b3JkQ2hhcHRlcnt9IFx0aGVcY2hhcG5vOiBcbm9leHBhbmRcdGhpc2NoYXB0ZXJuYW1lfSUKLVx0b2tzMCA9IHsjMX0lCi1cZWRlZlx0ZW1we1xub2V4cGFuZFx3cml0ZXRvY2VudHJ5e1xyZWFsYmFja3NsYXNoIGNoYXBlbnRyeXtcdGhlXHRva3MwfSUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHRoZVxjaGFwbm99fX0lCi1cdGVtcAotXGRvbm9kZXJlZgotXGdsb2JhbFxsZXRcc2VjdGlvbiA9IFxudW1iZXJlZHNlYwotXGdsb2JhbFxsZXRcc3Vic2VjdGlvbiA9IFxudW1iZXJlZHN1YnNlYwotXGdsb2JhbFxsZXRcc3Vic3Vic2VjdGlvbiA9IFxudW1iZXJlZHN1YnN1YnNlYworICBcc2Vjbm89MCBcc3Vic2Vjbm89MCBcc3Vic3Vic2Vjbm89MAorICBcZ2xvYmFsXGFkdmFuY2UgXGNoYXBubyBieSAxIFxtZXNzYWdle1xwdXR3b3JkQ2hhcHRlclxzcGFjZSBcdGhlXGNoYXBub30lCisgIFxjaGFwbWFjcm8geyMxfXtcdGhlXGNoYXBub30lCisgIFxnZGVmXHRoaXNzZWN0aW9ueyMxfSUKKyAgXGdkZWZcdGhpc2NoYXB0ZXJuYW1leyMxfSUKKyAgJSBXZSBkb24ndCBzdWJzdGl0dXRlIHRoZSBhY3R1YWwgY2hhcHRlciBuYW1lIGludG8gXHRoaXNjaGFwdGVyCisgICUgYmVjYXVzZSB3ZSBkb24ndCB3YW50IGl0cyBtYWNyb3MgZXZhbHVhdGVkIG5vdy4KKyAgXHhkZWZcdGhpc2NoYXB0ZXJ7XHB1dHdvcmRDaGFwdGVye30gXHRoZVxjaGFwbm86IFxub2V4cGFuZFx0aGlzY2hhcHRlcm5hbWV9JQorICBcd3JpdGV0b2NlbnRyeXtjaGFwfXsjMX17e1x0aGVcY2hhcG5vfX0KKyAgXGRvbm9kZXJlZgorICBcZ2xvYmFsXGxldFxzZWN0aW9uID0gXG51bWJlcmVkc2VjCisgIFxnbG9iYWxcbGV0XHN1YnNlY3Rpb24gPSBcbnVtYmVyZWRzdWJzZWMKKyAgXGdsb2JhbFxsZXRcc3Vic3Vic2VjdGlvbiA9IFxudW1iZXJlZHN1YnN1YnNlYwogfQogCislIHdlIHVzZSBcY2hhcG5vIHRvIGF2b2lkIGluZGVudGluZyBiYWNrCitcZGVmXGFwcGVuZGl4Ym94IzF7JQorICBcc2V0Ym94MCA9IFxoYm94e1xwdXR3b3JkQXBwZW5kaXh7fSBcdGhlXGNoYXBub30lCisgIFxoYm94IHRvIFx3ZDB7IzFcaHNzfX0KKwogXG91dGVyXGRlZlxhcHBlbmRpeHtccGFyc2VhcmdcYXBwZW5kaXh5eXl9CiBcZGVmXGFwcGVuZGl4eXl5ICMxe1xhcHBoZWFkMHsjMX19ICUgbm9ybWFsbHkgYXBwaGVhZDAgY2FsbHMgYXBwZW5kaXh6enoKIFxkZWZcYXBwZW5kaXh6enogIzF7JQotXHNlY25vPTAgXHN1YnNlY25vPTAgXHN1YnN1YnNlY25vPTAKLVxnbG9iYWxcYWR2YW5jZSBcYXBwZW5kaXhubyBieSAxCi1cbWVzc2FnZXtccHV0d29yZEFwcGVuZGl4XHNwYWNlIFxhcHBlbmRpeGxldHRlcn0lCi1cY2hhcG1hY3JvIHsjMX17XHB1dHdvcmRBcHBlbmRpeHt9IFxhcHBlbmRpeGxldHRlcn0lCi1cZ2RlZlx0aGlzc2VjdGlvbnsjMX0lCi1cZ2RlZlx0aGlzY2hhcHRlcm5hbWV7IzF9JQotXHhkZWZcdGhpc2NoYXB0ZXJ7XHB1dHdvcmRBcHBlbmRpeHt9IFxhcHBlbmRpeGxldHRlcjogXG5vZXhwYW5kXHRoaXNjaGFwdGVybmFtZX0lCi1cdG9rczAgPSB7IzF9JQotXGVkZWZcdGVtcHtcbm9leHBhbmRcd3JpdGV0b2NlbnRyeXtccmVhbGJhY2tzbGFzaCBjaGFwZW50cnl7XHRoZVx0b2tzMH0lCi0gICAgICAgICAgICAgICAgICAgICAgIHtccHV0d29yZEFwcGVuZGl4e30gXGFwcGVuZGl4bGV0dGVyfX19JQotXHRlbXAKLVxhcHBlbmRpeG5vZGVyZWYKLVxnbG9iYWxcbGV0XHNlY3Rpb24gPSBcYXBwZW5kaXhzZWMKLVxnbG9iYWxcbGV0XHN1YnNlY3Rpb24gPSBcYXBwZW5kaXhzdWJzZWMKLVxnbG9iYWxcbGV0XHN1YnN1YnNlY3Rpb24gPSBcYXBwZW5kaXhzdWJzdWJzZWMKKyAgXHNlY25vPTAgXHN1YnNlY25vPTAgXHN1YnN1YnNlY25vPTAKKyAgXGdsb2JhbFxhZHZhbmNlIFxhcHBlbmRpeG5vIGJ5IDEKKyAgXG1lc3NhZ2V7XHB1dHdvcmRBcHBlbmRpeFxzcGFjZSBcYXBwZW5kaXhsZXR0ZXJ9JQorICBcY2hhcG1hY3JvIHsjMX17XGFwcGVuZGl4Ym94e1xwdXR3b3JkQXBwZW5kaXh7fSBcYXBwZW5kaXhsZXR0ZXJ9fSUKKyAgXGdkZWZcdGhpc3NlY3Rpb257IzF9JQorICBcZ2RlZlx0aGlzY2hhcHRlcm5hbWV7IzF9JQorICBceGRlZlx0aGlzY2hhcHRlcntccHV0d29yZEFwcGVuZGl4e30gXGFwcGVuZGl4bGV0dGVyOiBcbm9leHBhbmRcdGhpc2NoYXB0ZXJuYW1lfSUKKyAgXHdyaXRldG9jZW50cnl7YXBwZW5kaXh9eyMxfXt7XGFwcGVuZGl4bGV0dGVyfX0KKyAgXGFwcGVuZGl4bm9kZXJlZgorICBcZ2xvYmFsXGxldFxzZWN0aW9uID0gXGFwcGVuZGl4c2VjCisgIFxnbG9iYWxcbGV0XHN1YnNlY3Rpb24gPSBcYXBwZW5kaXhzdWJzZWMKKyAgXGdsb2JhbFxsZXRcc3Vic3Vic2VjdGlvbiA9IFxhcHBlbmRpeHN1YnN1YnNlYwogfQogCiAlIEBjZW50ZXJjaGFwIGlzIGxpa2UgQHVubnVtYmVyZWQsIGJ1dCB0aGUgaGVhZGluZyBpcyBjZW50ZXJlZC4KQEAgLTM0MDcsMTQ5ICszNzk5LDEyMSBAQAogXG91dGVyXGRlZlx1bm51bWJlcmVke1xwYXJzZWFyZ1x1bm51bWJlcmVkeXl5fQogXGRlZlx1bm51bWJlcmVkeXl5ICMxe1x1bm5taGVhZDB7IzF9fSAlIG5vcm1hbGx5IHVubm1oZWFkMCBjYWxscyB1bm51bWJlcmVkenp6CiBcZGVmXHVubnVtYmVyZWR6enogIzF7JQotXHNlY25vPTAgXHN1YnNlY25vPTAgXHN1YnN1YnNlY25vPTAKLSUKLSUgVGhpcyB1c2VkIHRvIGJlIHNpbXBseSBcbWVzc2FnZXsjMX0sIGJ1dCBUZVggZnVsbHkgZXhwYW5kcyB0aGUKLSUgYXJndW1lbnQgdG8gXG1lc3NhZ2UuICBUaGVyZWZvcmUsIGlmICMxIGNvbnRhaW5lZCBALWNvbW1hbmRzLCBUZVgKLSUgZXhwYW5kZWQgdGhlbS4gIEZvciBleGFtcGxlLCBpbiBgQHVubnVtYmVyZWQgVGhlIEBjaXRle0Jvb2t9JywgVGVYCi0lIGV4cGFuZGVkIEBjaXRlICh3aGljaCB0dXJucyBvdXQgdG8gY2F1c2UgZXJyb3JzIGJlY2F1c2UgXGNpdGUgaXMgbWVhbnQKLSUgdG8gYmUgZXhlY3V0ZWQsIG5vdCBleHBhbmRlZCkuCi0lCi0lIEFueXdheSwgd2UgZG9uJ3Qgd2FudCB0aGUgZnVsbHktZXhwYW5kZWQgZGVmaW5pdGlvbiBvZiBAY2l0ZSB0byBhcHBlYXIKLSUgYXMgYSByZXN1bHQgb2YgdGhlIFxtZXNzYWdlLCB3ZSBqdXN0IHdhbnQgYEBjaXRlJyBpdHNlbGYuICBXZSB1c2UKLSUgXHRoZTx0b2tzIHJlZ2lzdGVyPiB0byBhY2hpZXZlIHRoaXM6IFRlWCBleHBhbmRzIFx0aGU8dG9rcz4gb25seSBvbmNlLAotJSBzaW1wbHkgeWllbGRpbmcgdGhlIGNvbnRlbnRzIG9mIDx0b2tzIHJlZ2lzdGVyPi4gIChXZSBhbHNvIGRvIHRoaXMgZm9yCi0lIHRoZSB0b2MgZW50cmllcy4pCi1cdG9rczAgPSB7IzF9XG1lc3NhZ2V7KFx0aGVcdG9rczApfSUKLSUKLVx1bm51bWJjaGFwbWFjcm8geyMxfSUKLVxnZGVmXHRoaXNjaGFwdGVyeyMxfVxnZGVmXHRoaXNzZWN0aW9ueyMxfSUKLVx0b2tzMCA9IHsjMX0lCi1cZWRlZlx0ZW1we1xub2V4cGFuZFx3cml0ZXRvY2VudHJ5e1xyZWFsYmFja3NsYXNoIHVubnVtYmNoYXBlbnRyeXtcdGhlXHRva3MwfX19JQotXHRlbXAKLVx1bm51bWJub2RlcmVmCi1cZ2xvYmFsXGxldFxzZWN0aW9uID0gXHVubnVtYmVyZWRzZWMKLVxnbG9iYWxcbGV0XHN1YnNlY3Rpb24gPSBcdW5udW1iZXJlZHN1YnNlYwotXGdsb2JhbFxsZXRcc3Vic3Vic2VjdGlvbiA9IFx1bm51bWJlcmVkc3Vic3Vic2VjCisgIFxzZWNubz0wIFxzdWJzZWNubz0wIFxzdWJzdWJzZWNubz0wCisgICUKKyAgJSBUaGlzIHVzZWQgdG8gYmUgc2ltcGx5IFxtZXNzYWdleyMxfSwgYnV0IFRlWCBmdWxseSBleHBhbmRzIHRoZQorICAlIGFyZ3VtZW50IHRvIFxtZXNzYWdlLiAgVGhlcmVmb3JlLCBpZiAjMSBjb250YWluZWQgQC1jb21tYW5kcywgVGVYCisgICUgZXhwYW5kZWQgdGhlbS4gIEZvciBleGFtcGxlLCBpbiBgQHVubnVtYmVyZWQgVGhlIEBjaXRle0Jvb2t9JywgVGVYCisgICUgZXhwYW5kZWQgQGNpdGUgKHdoaWNoIHR1cm5zIG91dCB0byBjYXVzZSBlcnJvcnMgYmVjYXVzZSBcY2l0ZSBpcyBtZWFudAorICAlIHRvIGJlIGV4ZWN1dGVkLCBub3QgZXhwYW5kZWQpLgorICAlCisgICUgQW55d2F5LCB3ZSBkb24ndCB3YW50IHRoZSBmdWxseS1leHBhbmRlZCBkZWZpbml0aW9uIG9mIEBjaXRlIHRvIGFwcGVhcgorICAlIGFzIGEgcmVzdWx0IG9mIHRoZSBcbWVzc2FnZSwgd2UganVzdCB3YW50IGBAY2l0ZScgaXRzZWxmLiAgV2UgdXNlCisgICUgXHRoZTx0b2tzIHJlZ2lzdGVyPiB0byBhY2hpZXZlIHRoaXM6IFRlWCBleHBhbmRzIFx0aGU8dG9rcz4gb25seSBvbmNlLAorICAlIHNpbXBseSB5aWVsZGluZyB0aGUgY29udGVudHMgb2YgPHRva3MgcmVnaXN0ZXI+LiAgKFdlIGFsc28gZG8gdGhpcyBmb3IKKyAgJSB0aGUgdG9jIGVudHJpZXMuKQorICBcdG9rczAgPSB7IzF9XG1lc3NhZ2V7KFx0aGVcdG9rczApfSUKKyAgJQorICBcdW5udW1iY2hhcG1hY3JvIHsjMX0lCisgIFxnZGVmXHRoaXNjaGFwdGVyeyMxfVxnZGVmXHRoaXNzZWN0aW9ueyMxfSUKKyAgXHdyaXRldG9jZW50cnl7dW5udW1iY2hhcH17IzF9e3tcdGhlXGNoYXBub319CisgIFx1bm51bWJub2RlcmVmCisgIFxnbG9iYWxcbGV0XHNlY3Rpb24gPSBcdW5udW1iZXJlZHNlYworICBcZ2xvYmFsXGxldFxzdWJzZWN0aW9uID0gXHVubnVtYmVyZWRzdWJzZWMKKyAgXGdsb2JhbFxsZXRcc3Vic3Vic2VjdGlvbiA9IFx1bm51bWJlcmVkc3Vic3Vic2VjCiB9CiAKICUgU2VjdGlvbnMuCiBcb3V0ZXJcZGVmXG51bWJlcmVkc2Vje1xwYXJzZWFyZ1xzZWN5eXl9CiBcZGVmXHNlY3l5eSAjMXtcbnVtaGVhZDF7IzF9fSAlIG5vcm1hbGx5IGNhbGxzIHNlY3p6egogXGRlZlxzZWN6enogIzF7JQotXHN1YnNlY25vPTAgXHN1YnN1YnNlY25vPTAgXGdsb2JhbFxhZHZhbmNlIFxzZWNubyBieSAxICUKLVxnZGVmXHRoaXNzZWN0aW9ueyMxfVxzZWNoZWFkaW5nIHsjMX17XHRoZVxjaGFwbm99e1x0aGVcc2Vjbm99JQotXHRva3MwID0geyMxfSUKLVxlZGVmXHRlbXB7XG5vZXhwYW5kXHdyaXRldG9jZW50cnl7XHJlYWxiYWNrc2xhc2ggc2VjZW50cnl7XHRoZVx0b2tzMH0lCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1x0aGVcY2hhcG5vfXtcdGhlXHNlY25vfX19JQotXHRlbXAKLVxkb25vZGVyZWYKLVxub2JyZWFrCisgIFxzdWJzZWNubz0wIFxzdWJzdWJzZWNubz0wIFxnbG9iYWxcYWR2YW5jZSBcc2Vjbm8gYnkgMSAlCisgIFxnZGVmXHRoaXNzZWN0aW9ueyMxfVxzZWNoZWFkaW5nIHsjMX17XHRoZVxjaGFwbm99e1x0aGVcc2Vjbm99JQorICBcd3JpdGV0b2NlbnRyeXtzZWN9eyMxfXt7XHRoZVxjaGFwbm99e1x0aGVcc2Vjbm99fQorICBcZG9ub2RlcmVmCisgIFxub2JyZWFrCiB9CiAKIFxvdXRlclxkZWZcYXBwZW5kaXhzZWN0aW9ue1xwYXJzZWFyZ1xhcHBlbmRpeHNlY3l5eX0KIFxvdXRlclxkZWZcYXBwZW5kaXhzZWN7XHBhcnNlYXJnXGFwcGVuZGl4c2VjeXl5fQogXGRlZlxhcHBlbmRpeHNlY3l5eSAjMXtcYXBwaGVhZDF7IzF9fSAlIG5vcm1hbGx5IGNhbGxzIGFwcGVuZGl4c2VjdGlvbnp6egogXGRlZlxhcHBlbmRpeHNlY3Rpb256enogIzF7JQotXHN1YnNlY25vPTAgXHN1YnN1YnNlY25vPTAgXGdsb2JhbFxhZHZhbmNlIFxzZWNubyBieSAxICUKLVxnZGVmXHRoaXNzZWN0aW9ueyMxfVxzZWNoZWFkaW5nIHsjMX17XGFwcGVuZGl4bGV0dGVyfXtcdGhlXHNlY25vfSUKLVx0b2tzMCA9IHsjMX0lCi1cZWRlZlx0ZW1we1xub2V4cGFuZFx3cml0ZXRvY2VudHJ5e1xyZWFsYmFja3NsYXNoIHNlY2VudHJ5e1x0aGVcdG9rczB9JQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcYXBwZW5kaXhsZXR0ZXJ9e1x0aGVcc2Vjbm99fX0lCi1cdGVtcAotXGFwcGVuZGl4bm9kZXJlZgotXG5vYnJlYWsKKyAgXHN1YnNlY25vPTAgXHN1YnN1YnNlY25vPTAgXGdsb2JhbFxhZHZhbmNlIFxzZWNubyBieSAxICUKKyAgXGdkZWZcdGhpc3NlY3Rpb257IzF9XHNlY2hlYWRpbmcgeyMxfXtcYXBwZW5kaXhsZXR0ZXJ9e1x0aGVcc2Vjbm99JQorICBcd3JpdGV0b2NlbnRyeXtzZWN9eyMxfXt7XGFwcGVuZGl4bGV0dGVyfXtcdGhlXHNlY25vfX0KKyAgXGFwcGVuZGl4bm9kZXJlZgorICBcbm9icmVhawogfQogCiBcb3V0ZXJcZGVmXHVubnVtYmVyZWRzZWN7XHBhcnNlYXJnXHVubnVtYmVyZWRzZWN5eXl9CiBcZGVmXHVubnVtYmVyZWRzZWN5eXkgIzF7XHVubm1oZWFkMXsjMX19ICUgbm9ybWFsbHkgY2FsbHMgdW5udW1iZXJlZHNlY3p6egogXGRlZlx1bm51bWJlcmVkc2Vjenp6ICMxeyUKLVxwbGFpbnNlY2hlYWRpbmcgeyMxfVxnZGVmXHRoaXNzZWN0aW9ueyMxfSUKLVx0b2tzMCA9IHsjMX0lCi1cZWRlZlx0ZW1we1xub2V4cGFuZFx3cml0ZXRvY2VudHJ5e1xyZWFsYmFja3NsYXNoIHVubnVtYnNlY2VudHJ5e1x0aGVcdG9rczB9fX0lCi1cdGVtcAotXHVubnVtYm5vZGVyZWYKLVxub2JyZWFrCisgIFxwbGFpbnNlY2hlYWRpbmcgeyMxfVxnZGVmXHRoaXNzZWN0aW9ueyMxfSUKKyAgXHdyaXRldG9jZW50cnl7dW5udW1ic2VjfXsjMX17e1x0aGVcY2hhcG5vfXtcdGhlXHNlY25vfX0KKyAgXHVubnVtYm5vZGVyZWYKKyAgXG5vYnJlYWsKIH0KIAogJSBTdWJzZWN0aW9ucy4KIFxvdXRlclxkZWZcbnVtYmVyZWRzdWJzZWN7XHBhcnNlYXJnXG51bWJlcmVkc3Vic2VjeXl5fQogXGRlZlxudW1iZXJlZHN1YnNlY3l5eSAjMXtcbnVtaGVhZDJ7IzF9fSAlIG5vcm1hbGx5IGNhbGxzIG51bWJlcmVkc3Vic2Vjenp6CiBcZGVmXG51bWJlcmVkc3Vic2Vjenp6ICMxeyUKLVxnZGVmXHRoaXNzZWN0aW9ueyMxfVxzdWJzdWJzZWNubz0wIFxnbG9iYWxcYWR2YW5jZSBcc3Vic2Vjbm8gYnkgMSAlCi1cc3Vic2VjaGVhZGluZyB7IzF9e1x0aGVcY2hhcG5vfXtcdGhlXHNlY25vfXtcdGhlXHN1YnNlY25vfSUKLVx0b2tzMCA9IHsjMX0lCi1cZWRlZlx0ZW1we1xub2V4cGFuZFx3cml0ZXRvY2VudHJ5e1xyZWFsYmFja3NsYXNoIHN1YnNlY2VudHJ5e1x0aGVcdG9rczB9JQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1x0aGVcY2hhcG5vfXtcdGhlXHNlY25vfXtcdGhlXHN1YnNlY25vfX19JQotXHRlbXAKLVxkb25vZGVyZWYKLVxub2JyZWFrCisgIFxnZGVmXHRoaXNzZWN0aW9ueyMxfVxzdWJzdWJzZWNubz0wIFxnbG9iYWxcYWR2YW5jZSBcc3Vic2Vjbm8gYnkgMSAlCisgIFxzdWJzZWNoZWFkaW5nIHsjMX17XHRoZVxjaGFwbm99e1x0aGVcc2Vjbm99e1x0aGVcc3Vic2Vjbm99JQorICBcd3JpdGV0b2NlbnRyeXtzdWJzZWN9eyMxfXt7XHRoZVxjaGFwbm99e1x0aGVcc2Vjbm99e1x0aGVcc3Vic2Vjbm99fQorICBcZG9ub2RlcmVmCisgIFxub2JyZWFrCiB9CiAKIFxvdXRlclxkZWZcYXBwZW5kaXhzdWJzZWN7XHBhcnNlYXJnXGFwcGVuZGl4c3Vic2VjeXl5fQogXGRlZlxhcHBlbmRpeHN1YnNlY3l5eSAjMXtcYXBwaGVhZDJ7IzF9fSAlIG5vcm1hbGx5IGNhbGxzIGFwcGVuZGl4c3Vic2Vjenp6CiBcZGVmXGFwcGVuZGl4c3Vic2Vjenp6ICMxeyUKLVxnZGVmXHRoaXNzZWN0aW9ueyMxfVxzdWJzdWJzZWNubz0wIFxnbG9iYWxcYWR2YW5jZSBcc3Vic2Vjbm8gYnkgMSAlCi1cc3Vic2VjaGVhZGluZyB7IzF9e1xhcHBlbmRpeGxldHRlcn17XHRoZVxzZWNub317XHRoZVxzdWJzZWNub30lCi1cdG9rczAgPSB7IzF9JQotXGVkZWZcdGVtcHtcbm9leHBhbmRcd3JpdGV0b2NlbnRyeXtccmVhbGJhY2tzbGFzaCBzdWJzZWNlbnRyeXtcdGhlXHRva3MwfSUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xhcHBlbmRpeGxldHRlcn17XHRoZVxzZWNub317XHRoZVxzdWJzZWNub319fSUKLVx0ZW1wCi1cYXBwZW5kaXhub2RlcmVmCi1cbm9icmVhaworICBcZ2RlZlx0aGlzc2VjdGlvbnsjMX1cc3Vic3Vic2Vjbm89MCBcZ2xvYmFsXGFkdmFuY2UgXHN1YnNlY25vIGJ5IDEgJQorICBcc3Vic2VjaGVhZGluZyB7IzF9e1xhcHBlbmRpeGxldHRlcn17XHRoZVxzZWNub317XHRoZVxzdWJzZWNub30lCisgIFx3cml0ZXRvY2VudHJ5e3N1YnNlY317IzF9e3tcYXBwZW5kaXhsZXR0ZXJ9e1x0aGVcc2Vjbm99e1x0aGVcc3Vic2Vjbm99fQorICBcYXBwZW5kaXhub2RlcmVmCisgIFxub2JyZWFrCiB9CiAKIFxvdXRlclxkZWZcdW5udW1iZXJlZHN1YnNlY3tccGFyc2VhcmdcdW5udW1iZXJlZHN1YnNlY3l5eX0KIFxkZWZcdW5udW1iZXJlZHN1YnNlY3l5eSAjMXtcdW5ubWhlYWQyeyMxfX0gJW5vcm1hbGx5IGNhbGxzIHVubnVtYmVyZWRzdWJzZWN6enoKIFxkZWZcdW5udW1iZXJlZHN1YnNlY3p6eiAjMXslCi1ccGxhaW5zdWJzZWNoZWFkaW5nIHsjMX1cZ2RlZlx0aGlzc2VjdGlvbnsjMX0lCi1cdG9rczAgPSB7IzF9JQotXGVkZWZcdGVtcHtcbm9leHBhbmRcd3JpdGV0b2NlbnRyeXtccmVhbGJhY2tzbGFzaCB1bm51bWJzdWJzZWNlbnRyeSUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcdGhlXHRva3MwfX19JQotXHRlbXAKLVx1bm51bWJub2RlcmVmCi1cbm9icmVhaworICBccGxhaW5zdWJzZWNoZWFkaW5nIHsjMX1cZ2RlZlx0aGlzc2VjdGlvbnsjMX0lCisgIFx3cml0ZXRvY2VudHJ5e3VubnVtYnN1YnNlY317IzF9e3tcdGhlXGNoYXBub317XHRoZVxzZWNub317XHRoZVxzdWJzZWNub319CisgIFx1bm51bWJub2RlcmVmCisgIFxub2JyZWFrCiB9CiAKICUgU3Vic3Vic2VjdGlvbnMuCiBcb3V0ZXJcZGVmXG51bWJlcmVkc3Vic3Vic2Vje1xwYXJzZWFyZ1xudW1iZXJlZHN1YnN1YnNlY3l5eX0KIFxkZWZcbnVtYmVyZWRzdWJzdWJzZWN5eXkgIzF7XG51bWhlYWQzeyMxfX0gJSBub3JtYWxseSBudW1iZXJlZHN1YnN1YnNlY3p6egogXGRlZlxudW1iZXJlZHN1YnN1YnNlY3p6eiAjMXslCi1cZ2RlZlx0aGlzc2VjdGlvbnsjMX1cZ2xvYmFsXGFkdmFuY2UgXHN1YnN1YnNlY25vIGJ5IDEgJQotXHN1YnN1YnNlY2hlYWRpbmcgeyMxfQotICB7XHRoZVxjaGFwbm99e1x0aGVcc2Vjbm99e1x0aGVcc3Vic2Vjbm99e1x0aGVcc3Vic3Vic2Vjbm99JQotXHRva3MwID0geyMxfSUKLVxlZGVmXHRlbXB7XG5vZXhwYW5kXHdyaXRldG9jZW50cnl7XHJlYWxiYWNrc2xhc2ggc3Vic3Vic2VjZW50cnl7XHRoZVx0b2tzMH0lCi0gIHtcdGhlXGNoYXBub317XHRoZVxzZWNub317XHRoZVxzdWJzZWNub317XHRoZVxzdWJzdWJzZWNub319fSUKLVx0ZW1wCi1cZG9ub2RlcmVmCi1cbm9icmVhaworICBcZ2RlZlx0aGlzc2VjdGlvbnsjMX1cZ2xvYmFsXGFkdmFuY2UgXHN1YnN1YnNlY25vIGJ5IDEgJQorICBcc3Vic3Vic2VjaGVhZGluZyB7IzF9CisgICAge1x0aGVcY2hhcG5vfXtcdGhlXHNlY25vfXtcdGhlXHN1YnNlY25vfXtcdGhlXHN1YnN1YnNlY25vfSUKKyAgXHdyaXRldG9jZW50cnl7c3Vic3Vic2VjfXsjMX17e1x0aGVcY2hhcG5vfXtcdGhlXHNlY25vfXtcdGhlXHN1YnNlY25vfXtcdGhlXHN1YnN1YnNlY25vfX0KKyAgXGRvbm9kZXJlZgorICBcbm9icmVhawogfQogCiBcb3V0ZXJcZGVmXGFwcGVuZGl4c3Vic3Vic2Vje1xwYXJzZWFyZ1xhcHBlbmRpeHN1YnN1YnNlY3l5eX0KIFxkZWZcYXBwZW5kaXhzdWJzdWJzZWN5eXkgIzF7XGFwcGhlYWQzeyMxfX0gJSBub3JtYWxseSBhcHBlbmRpeHN1YnN1YnNlY3p6egogXGRlZlxhcHBlbmRpeHN1YnN1YnNlY3p6eiAjMXslCi1cZ2RlZlx0aGlzc2VjdGlvbnsjMX1cZ2xvYmFsXGFkdmFuY2UgXHN1YnN1YnNlY25vIGJ5IDEgJQotXHN1YnN1YnNlY2hlYWRpbmcgeyMxfQotICB7XGFwcGVuZGl4bGV0dGVyfXtcdGhlXHNlY25vfXtcdGhlXHN1YnNlY25vfXtcdGhlXHN1YnN1YnNlY25vfSUKLVx0b2tzMCA9IHsjMX0lCi1cZWRlZlx0ZW1we1xub2V4cGFuZFx3cml0ZXRvY2VudHJ5e1xyZWFsYmFja3NsYXNoIHN1YnN1YnNlY2VudHJ5e1x0aGVcdG9rczB9JQotICB7XGFwcGVuZGl4bGV0dGVyfXtcdGhlXHNlY25vfXtcdGhlXHN1YnNlY25vfXtcdGhlXHN1YnN1YnNlY25vfX19JQotXHRlbXAKLVxhcHBlbmRpeG5vZGVyZWYKLVxub2JyZWFrCisgIFxnZGVmXHRoaXNzZWN0aW9ueyMxfVxnbG9iYWxcYWR2YW5jZSBcc3Vic3Vic2Vjbm8gYnkgMSAlCisgIFxzdWJzdWJzZWNoZWFkaW5nIHsjMX0KKyAgICB7XGFwcGVuZGl4bGV0dGVyfXtcdGhlXHNlY25vfXtcdGhlXHN1YnNlY25vfXtcdGhlXHN1YnN1YnNlY25vfSUKKyAgXHdyaXRldG9jZW50cnl7c3Vic3Vic2VjfXsjMX17e1xhcHBlbmRpeGxldHRlcn17XHRoZVxzZWNub317XHRoZVxzdWJzZWNub317XHRoZVxzdWJzdWJzZWNub319CisgIFxhcHBlbmRpeG5vZGVyZWYKKyAgXG5vYnJlYWsKIH0KIAogXG91dGVyXGRlZlx1bm51bWJlcmVkc3Vic3Vic2Vje1xwYXJzZWFyZ1x1bm51bWJlcmVkc3Vic3Vic2VjeXl5fQogXGRlZlx1bm51bWJlcmVkc3Vic3Vic2VjeXl5ICMxe1x1bm5taGVhZDN7IzF9fSAlbm9ybWFsbHkgdW5udW1iZXJlZHN1YnN1YnNlY3p6egogXGRlZlx1bm51bWJlcmVkc3Vic3Vic2Vjenp6ICMxeyUKLVxwbGFpbnN1YnN1YnNlY2hlYWRpbmcgeyMxfVxnZGVmXHRoaXNzZWN0aW9ueyMxfSUKLVx0b2tzMCA9IHsjMX0lCi1cZWRlZlx0ZW1we1xub2V4cGFuZFx3cml0ZXRvY2VudHJ5e1xyZWFsYmFja3NsYXNoIHVubnVtYnN1YnN1YnNlY2VudHJ5JQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1x0aGVcdG9rczB9fX0lCi1cdGVtcAotXHVubnVtYm5vZGVyZWYKLVxub2JyZWFrCisgIFxwbGFpbnN1YnN1YnNlY2hlYWRpbmcgeyMxfVxnZGVmXHRoaXNzZWN0aW9ueyMxfSUKKyAgXHdyaXRldG9jZW50cnl7dW5udW1ic3Vic3Vic2VjfXsjMX17e1x0aGVcY2hhcG5vfXtcdGhlXHNlY25vfXtcdGhlXHN1YnNlY25vfXtcdGhlXHN1YnN1YnNlY25vfX0KKyAgXHVubnVtYm5vZGVyZWYKKyAgXG5vYnJlYWsKIH0KIAogJSBUaGVzZSBhcmUgdmFyaWFudHMgd2hpY2ggYXJlIG5vdCAib3V0ZXIiLCBzbyB0aGV5IGNhbiBhcHBlYXIgaW4gQGlmaW5mby4KQEAgLTM1OTAsMTYgKzM5NTQsMTYgQEAKIAogXGRlZlxtYWpvcmhlYWRpbmd7XHBhcnNlYXJnXG1ham9yaGVhZGluZ3p6en0KIFxkZWZcbWFqb3JoZWFkaW5nenp6ICMxeyUKLXtcYWR2YW5jZVxjaGFwaGVhZGluZ3NraXAgYnkgMTBwdCBcY2hhcGJyZWFrIH0lCi17XGNoYXBmb250cyBcdmJveHtcaHlwaGVucGVuYWx0eT0xMDAwMFx0b2xlcmFuY2U9NTAwMAotICAgICAgICAgICAgICAgICAgXHBhcmluZGVudD0wcHRccmFnZ2VkcmlnaHQKLSAgICAgICAgICAgICAgICAgIFxybSAjMVxoZmlsbH19XGJpZ3NraXAgXHBhclxwZW5hbHR5IDIwMH0KKyAge1xhZHZhbmNlXGNoYXBoZWFkaW5nc2tpcCBieSAxMHB0IFxjaGFwYnJlYWsgfSUKKyAge1xjaGFwZm9udHMgXHZib3h7XGh5cGhlbnBlbmFsdHk9MTAwMDBcdG9sZXJhbmNlPTUwMDAKKyAgICAgICAgICAgICAgICAgICAgXHBhcmluZGVudD0wcHRccmFnZ2VkcmlnaHQKKyAgICAgICAgICAgICAgICAgICAgXHJtICMxXGhmaWxsfX1cYmlnc2tpcCBccGFyXHBlbmFsdHkgMjAwfQogCiBcZGVmXGNoYXBoZWFkaW5ne1xwYXJzZWFyZ1xjaGFwaGVhZGluZ3p6en0KIFxkZWZcY2hhcGhlYWRpbmd6enogIzF7XGNoYXBicmVhayAlCi17XGNoYXBmb250cyBcdmJveHtcaHlwaGVucGVuYWx0eT0xMDAwMFx0b2xlcmFuY2U9NTAwMAotICAgICAgICAgICAgICAgICAgXHBhcmluZGVudD0wcHRccmFnZ2VkcmlnaHQKLSAgICAgICAgICAgICAgICAgIFxybSAjMVxoZmlsbH19XGJpZ3NraXAgXHBhclxwZW5hbHR5IDIwMH0KKyAge1xjaGFwZm9udHMgXHZib3h7XGh5cGhlbnBlbmFsdHk9MTAwMDBcdG9sZXJhbmNlPTUwMDAKKyAgICAgICAgICAgICAgICAgICAgXHBhcmluZGVudD0wcHRccmFnZ2VkcmlnaHQKKyAgICAgICAgICAgICAgICAgICAgXHJtICMxXGhmaWxsfX1cYmlnc2tpcCBccGFyXHBlbmFsdHkgMjAwfQogCiAlIEBoZWFkaW5nLCBAc3ViaGVhZGluZywgQHN1YnN1YmhlYWRpbmcuCiBcZGVmXGhlYWRpbmd7XHBhcnNlYXJnXHBsYWluc2VjaGVhZGluZ30KQEAgLTM3NDUsNyArNDEwOSwxNiBAQAogICAgICAgICAgIFxoYW5naW5kZW50ID0gXHdkMCAlIHplcm8gaWYgbm8gc2VjdGlvbiBudW1iZXIKICAgICAgICAgICBcdW5oYm94MCAjM30lCiAgIH0lCi0gIFxpZmRpbVxwYXJza2lwPDEwcHQgXG5vYnJlYWtca2VybjEwcHRcbm9icmVha1xrZXJuLVxwYXJza2lwXGZpIFxub2JyZWFrCisgICUgQWRkIGV4dHJhIHNwYWNlIGFmdGVyIHRoZSBoZWFkaW5nIC0tIGVpdGhlciBhIGxpbmUgc3BhY2Ugb3IgYQorICAlIHBhcmFncmFwaCBzcGFjZSwgd2hpY2hldmVyIGlzIG1vcmUuICAoU29tZSBwZW9wbGUgbGlrZSB0byBzZXQKKyAgJSBccGFyc2tpcCB0byBsYXJnZSB2YWx1ZXMgZm9yIHNvbWUgcmVhc29uLikgIERvbid0IGFsbG93IHN0cmV0Y2gsIHRob3VnaC4KKyAgXG5vYnJlYWsKKyAgXGlmZGltXHBhcnNraXA+XG5vcm1hbGJhc2VsaW5lc2tpcAorICAgIFxrZXJuXHBhcnNraXAKKyAgXGVsc2UKKyAgICBca2Vyblxub3JtYWxiYXNlbGluZXNraXAKKyAgXGZpCisgIFxub2JyZWFrCiB9CiAKIApAQCAtMzc1NywxNiArNDEzMCwzMCBAQAogJSBDYWxsZWQgZnJvbSBAY2hhcHRlciwgZXRjLiAgV2Ugc3VwcGx5IHtcZm9saW99IGF0IHRoZSBlbmQgb2YgdGhlCiAlIGFyZ3VtZW50LCB3aGljaCB3aWxsIGVuZCB1cCBhcyB0aGUgbGFzdCBhcmd1bWVudCB0byB0aGUgXC4uLmVudHJ5IG1hY3JvLgogJQotJSBXZSBvcGVuIHRoZSAudG9jIGZpbGUgaGVyZSBpbnN0ZWFkIG9mIGF0IEBzZXRmaWxlbmFtZSBvciBhbnkgb3RoZXIKLSUgZ2l2ZW4gdGltZSBzbyB0aGF0IEBjb250ZW50cyBjYW4gYmUgcHV0IGluIHRoZSBkb2N1bWVudCBhbnl3aGVyZS4KKyUgVXNhZ2U6IFx3cml0ZXRvY2VudHJ5e2NoYXB9e1RoZSBOYW1lIG9mIFRoZSBHYW1lfXt7XHRoZVxjaGFwbm99fQorJSBXZSBvcGVuIHRoZSAudG9jIGZpbGUgZm9yIHdyaXRpbmcgaGVyZSBpbnN0ZWFkIG9mIGF0IEBzZXRmaWxlbmFtZSAob3IKKyUgYW55IG90aGVyIGZpeGVkIHRpbWUpIHNvIHRoYXQgQGNvbnRlbnRzIGNhbiBiZSBhbnl3aGVyZSBpbiB0aGUgZG9jdW1lbnQuCiAlCiBcbmV3aWZcaWZ0b2NmaWxlb3BlbmVkCi1cZGVmXHdyaXRldG9jZW50cnkjMXslCitcZGVmXHdyaXRldG9jZW50cnkjMSMyIzN7JQogICBcaWZ0b2NmaWxlb3BlbmVkXGVsc2UKICAgICBcaW1tZWRpYXRlXG9wZW5vdXRcdG9jZmlsZSA9IFxqb2JuYW1lLnRvYwogICAgIFxnbG9iYWxcdG9jZmlsZW9wZW5lZHRydWUKICAgXGZpCi0gIFxpZmxpbmtzIFx3cml0ZVx0b2NmaWxleyMxe1xmb2xpb319XGZpCisgICUKKyAgXGlmbGlua3MKKyAgICBcdG9rczAgPSB7IzJ9JQorICAgIFxlZGVmXHRlbXB7XHdyaXRlXHRvY2ZpbGV7XHJlYWxiYWNrc2xhc2ggIzFlbnRyeXtcdGhlXHRva3MwfSMze1xmb2xpb319fSUKKyAgICBcdGVtcAorICBcZmkKKyAgJQorICAlIFRlbGwgXHNoaXBvdXQgdG8gY3JlYXRlIGEgcGFnZSBkZXN0aW5hdGlvbiBpZiB3ZSdyZSBkb2luZyBwZGYsIHdoaWNoCisgICUgd2lsbCBiZSB0aGUgdGFyZ2V0IG9mIHRoZSBsaW5rcyBpbiB0aGUgdGFibGUgb2YgY29udGVudHMuICBXZSBjYW4ndAorICAlIGp1c3QgZG8gaXQgb24gZXZlcnkgcGFnZSBiZWNhdXNlIHRoZSB0aXRsZSBwYWdlcyBhcmUgbnVtYmVyZWQgMSBhbmQKKyAgJSAyICh0aGUgcGFnZSBudW1iZXJzIGFyZW4ndCBwcmludGVkKSwgYW5kIHNvIGFyZSB0aGUgZmlyc3QgdHdvIHBhZ2VzCisgICUgb2YgdGhlIGRvY3VtZW50LiAgVGh1cywgd2UnZCBoYXZlIHR3byBkZXN0aW5hdGlvbnMgbmFtZWQgYDEnLCBhbmQKKyAgJSB0d28gbmFtZWQgYDInLgorICBcaWZwZGYgXHBkZm1ha2VwYWdlZGVzdHRydWUgXGZpCiB9CiAKIFxuZXdza2lwXGNvbnRlbnRzcmlnaHRtYXJnaW4gXGNvbnRlbnRzcmlnaHRtYXJnaW49MWluCkBAIC0zNzk3LDcgKzQxODQsNyBAQAogICAgICAgXGFkdmFuY2VcaHNpemUgYnkgLVxjb250ZW50c3JpZ2h0bWFyZ2luICUgRG9uJ3QgdXNlIHRoZSBmdWxsIGxpbmUgbGVuZ3RoLgogICAgICAgJQogICAgICAgJSBSb21hbiBudW1lcmFscyBmb3IgcGFnZSBudW1iZXJzLgotICAgICAgXGlmbnVtIFxwYWdlbm8+MCBccGFnZW5vID0gXGxhc3RuZWdhdGl2ZXBhZ2VubyBcZmkKKyAgICAgIFxpZm51bSBccGFnZW5vPjAgXGdsb2JhbFxwYWdlbm8gPSBcbGFzdG5lZ2F0aXZlcGFnZW5vIFxmaQogfQogCiAKQEAgLTM4MTQsNyArNDIwMSw3IEBACiAgICAgIFxwZGZtYWtlb3V0bGluZXMKICAgIFxlbmRncm91cAogICAgXGxhc3RuZWdhdGl2ZXBhZ2VubyA9IFxwYWdlbm8KLSAgIFxwYWdlbm8gPSBcc2F2ZXBhZ2VubworICAgXGdsb2JhbFxwYWdlbm8gPSBcc2F2ZXBhZ2VubwogfQogCiAlIEFuZCBqdXN0IHRoZSBjaGFwdGVycy4KQEAgLTM4MjIsMTkgKzQyMDksMjEgQEAKICAgIFxzdGFydGNvbnRlbnRze1xwdXR3b3JkU2hvcnRUT0N9JQogICAgICAgJQogICAgICAgXGxldFxjaGFwZW50cnkgPSBcc2hvcnRjaGFwZW50cnkKKyAgICAgIFxsZXRcYXBwZW5kaXhlbnRyeSA9IFxzaG9ydGFwcGVuZGl4ZW50cnkKICAgICAgIFxsZXRcdW5udW1iY2hhcGVudHJ5ID0gXHNob3J0dW5udW1iZXJlZGVudHJ5CiAgICAgICAlIFdlIHdhbnQgYSB0cnVlIHJvbWFuIGhlcmUgZm9yIHRoZSBwYWdlIG51bWJlcnMuCiAgICAgICBcc2VjZm9udHMKLSAgICAgIFxsZXRccm09XHNob3J0Y29udHJtIFxsZXRcYmY9XHNob3J0Y29udGJmIFxsZXRcc2w9XHNob3J0Y29udHNsCisgICAgICBcbGV0XHJtPVxzaG9ydGNvbnRybSBcbGV0XGJmPVxzaG9ydGNvbnRiZgorICAgICAgXGxldFxzbD1cc2hvcnRjb250c2wgXGxldFx0dD1cc2hvcnRjb250dHQKICAgICAgIFxybQogICAgICAgXGh5cGhlbnBlbmFsdHkgPSAxMDAwMAogICAgICAgXGFkdmFuY2VcYmFzZWxpbmVza2lwIGJ5IDFwdCAlIE9wZW4gaXQgdXAgYSBsaXR0bGUuCiAgICAgICBcZGVmXHNlY2VudHJ5ICMjMSMjMiMjMyMjNHt9Ci0gICAgICBcZGVmXHVubnVtYnNlY2VudHJ5ICMjMSMjMnt9CiAgICAgICBcZGVmXHN1YnNlY2VudHJ5ICMjMSMjMiMjMyMjNCMjNXt9Ci0gICAgICBcZGVmXHVubnVtYnN1YnNlY2VudHJ5ICMjMSMjMnt9CiAgICAgICBcZGVmXHN1YnN1YnNlY2VudHJ5ICMjMSMjMiMjMyMjNCMjNSMjNnt9Ci0gICAgICBcZGVmXHVubnVtYnN1YnN1YnNlY2VudHJ5ICMjMSMjMnt9CisgICAgICBcbGV0XHVubnVtYnNlY2VudHJ5ID0gXHNlY2VudHJ5CisgICAgICBcbGV0XHVubnVtYnN1YnNlY2VudHJ5ID0gXHN1YnNlY2VudHJ5CisgICAgICBcbGV0XHVubnVtYnN1YnN1YnNlY2VudHJ5ID0gXHN1YnN1YnNlY2VudHJ5CiAgICAgICBcb3BlbmluIDEgXGpvYm5hbWUudG9jCiAgICAgICBcaWZlb2YgMSBcZWxzZQogICAgICAgICBcY2xvc2VpbiAxCkBAIC0zODQ0LDcgKzQyMzMsNyBAQAogICAgICBcY29udGVudHNhbGlnbm1hY3JvICUgaW4gY2FzZSBAc2V0Y2hhcHRlcm5ld3BhZ2Ugb2RkIGlzIGluIGVmZmVjdAogICAgXGVuZGdyb3VwCiAgICBcbGFzdG5lZ2F0aXZlcGFnZW5vID0gXHBhZ2VubwotICAgXHBhZ2VubyA9IFxzYXZlcGFnZW5vCisgICBcZ2xvYmFsXHBhZ2VubyA9IFxzYXZlcGFnZW5vCiB9CiBcbGV0XHNob3J0Y29udGVudHMgPSBcc3VtbWFyeWNvbnRlbnRzCiAKQEAgLTM4NTcsMTYgKzQyNDYsMjQgQEAKICUgVGhlIGxhc3QgYXJndW1lbnQgaXMgdGhlIHBhZ2UgbnVtYmVyLgogJSBUaGUgYXJndW1lbnRzIGluIGJldHdlZW4gYXJlIHRoZSBjaGFwdGVyIG51bWJlciwgc2VjdGlvbiBudW1iZXIsIC4uLgogCi0lIENoYXB0ZXItbGV2ZWwgdGhpbmdzLCBmb3IgYm90aCB0aGUgbG9uZyBhbmQgc2hvcnQgY29udGVudHMuCislIENoYXB0ZXJzLCBpbiB0aGUgbWFpbiBjb250ZW50cy4KIFxkZWZcY2hhcGVudHJ5IzEjMiMze1xkb2NoYXBlbnRyeXsjMlxsYWJlbHNwYWNlIzF9eyMzfX0KLQotJSBTZWUgY29tbWVudHMgaW4gXGRvY2hhcGVudHJ5IHJlIHZib3ggYW5kIHJlbGF0ZWQgc2V0dGluZ3MKKyUKKyUgQ2hhcHRlcnMsIGluIHRoZSBzaG9ydCB0b2MuCislIFNlZSBjb21tZW50cyBpbiBcZG9jaGFwZW50cnkgcmUgdmJveCBhbmQgcmVsYXRlZCBzZXR0aW5ncy4KIFxkZWZcc2hvcnRjaGFwZW50cnkjMSMyIzN7JQogICBcdG9jZW50cnl7XHNob3J0Y2hhcGxhYmVseyMyfVxsYWJlbHNwYWNlICMxfXtcZG9zaG9ydHBhZ2Vub1xiZ3JvdXAjM1xlZ3JvdXB9JQogfQogCislIEFwcGVuZGljZXMsIGluIHRoZSBtYWluIGNvbnRlbnRzLgorXGRlZlxhcHBlbmRpeGVudHJ5IzEjMiMzeyUKKyAgXGRvY2hhcGVudHJ5e1xhcHBlbmRpeGJveHtccHV0d29yZEFwcGVuZGl4e30gIzJ9XGxhYmVsc3BhY2UjMX17IzN9fQorJQorJSBBcHBlbmRpY2VzLCBpbiB0aGUgc2hvcnQgdG9jLgorXGxldFxzaG9ydGFwcGVuZGl4ZW50cnkgPSBcc2hvcnRjaGFwZW50cnkKKwogJSBUeXBlc2V0IHRoZSBsYWJlbCBmb3IgYSBjaGFwdGVyIG9yIGFwcGVuZGl4IGZvciB0aGUgc2hvcnQgY29udGVudHMuCi0lIFRoZSBhcmcgaXMsIGUuZy4gYEFwcGVuZGl4IEEnIGZvciBhbiBhcHBlbmRpeCwgb3IgYDMnIGZvciBhIGNoYXB0ZXIuCislIFRoZSBhcmcgaXMsIGUuZy4sIGBBcHBlbmRpeCBBJyBmb3IgYW4gYXBwZW5kaXgsIG9yIGAzJyBmb3IgYSBjaGFwdGVyLgogJSBXZSBjb3VsZCBzaW1wbGlmeSB0aGUgY29kZSBoZXJlIGJ5IHdyaXRpbmcgb3V0IGFuIFxhcHBlbmRpeGVudHJ5CiAlIGNvbW1hbmQgaW4gdGhlIHRvYyBmaWxlIGZvciBhcHBlbmRpY2VzLCBpbnN0ZWFkIG9mIHVzaW5nIFxjaGFwZW50cnkKICUgZm9yIGJvdGgsIGJ1dCBpdCBkb2Vzbid0IHNlZW0gd29ydGggaXQuCkBAIC0zODc0LDM4ICs0MjcxLDMxIEBACiBcbmV3ZGltZW5cc2hvcnRhcHBlbmRpeHdpZHRoCiAlCiBcZGVmXHNob3J0Y2hhcGxhYmVsIzF7JQotICAlIENvbXB1dGUgd2lkdGggb2Ygd29yZCAiQXBwZW5kaXgiLCBtYXkgY2hhbmdlIHdpdGggbGFuZ3VhZ2UuCi0gIFxzZXRib3gwID0gXGhib3h7XHNob3J0Y29udHJtIFxwdXR3b3JkQXBwZW5kaXh9JQotICBcc2hvcnRhcHBlbmRpeHdpZHRoID0gXHdkMAotICAlCi0gICUgV2UgdHlwZXNldCAjMSBpbiBhIGJveCBvZiBjb25zdGFudCB3aWR0aCwgcmVnYXJkbGVzcyBvZiB0aGUgdGV4dCBvZgotICAlICMxLCBzbyB0aGUgY2hhcHRlciB0aXRsZXMgd2lsbCBjb21lIG91dCBhbGlnbmVkLgotICBcc2V0Ym94MCA9IFxoYm94eyMxfSUKLSAgXGRpbWVuMCA9IFxpZmRpbVx3ZDAgPiBcc2hvcnRhcHBlbmRpeHdpZHRoIFxzaG9ydGFwcGVuZGl4d2lkdGggXGVsc2UgMHB0IFxmaQotICAlCi0gICUgVGhpcyBzcGFjZSBzaG91bGQgYmUgcGxlbnR5LCBzaW5jZSBhIHNpbmdsZSBudW1iZXIgaXMgLjVlbSwgYW5kIHRoZQorICAlIFRoaXMgc3BhY2Ugc2hvdWxkIGJlIGVub3VnaCwgc2luY2UgYSBzaW5nbGUgbnVtYmVyIGlzIC41ZW0sIGFuZCB0aGUKICAgJSB3aWRlc3QgbGV0dGVyIChNKSBpcyAxZW0sIGF0IGxlYXN0IGluIHRoZSBDb21wdXRlciBNb2Rlcm4gZm9udHMuCisgICUgQnV0IHVzZSBcaHNzIGp1c3QgaW4gY2FzZS4KICAgJSAoVGhpcyBzcGFjZSBkb2Vzbid0IGluY2x1ZGUgdGhlIGV4dHJhIHNwYWNlIHRoYXQgZ2V0cyBhZGRlZCBhZnRlcgogICAlIHRoZSBsYWJlbDsgdGhhdCBnZXRzIHB1dCBpbiBieSBcc2hvcnRjaGFwZW50cnkgYWJvdmUuKQotICBcYWR2YW5jZVxkaW1lbjAgYnkgMS4xZW0KLSAgXGhib3ggdG8gXGRpbWVuMHsjMVxoZmlsfSUKKyAgXGRpbWVuMCA9IDFlbQorICBcaGJveCB0byBcZGltZW4weyMxXGhzc30lCiB9CiAKLVxkZWZcdW5udW1iY2hhcGVudHJ5IzEjMntcZG9jaGFwZW50cnl7IzF9eyMyfX0KLVxkZWZcc2hvcnR1bm51bWJlcmVkZW50cnkjMSMye1x0b2NlbnRyeXsjMX17XGRvc2hvcnRwYWdlbm9cYmdyb3VwIzJcZWdyb3VwfX0KKyUgVW5udW1iZXJlZCBjaGFwdGVycy4KK1xkZWZcdW5udW1iY2hhcGVudHJ5IzEjMiMze1xkb2NoYXBlbnRyeXsjMX17IzN9fQorXGRlZlxzaG9ydHVubnVtYmVyZWRlbnRyeSMxIzIjM3tcdG9jZW50cnl7IzF9e1xkb3Nob3J0cGFnZW5vXGJncm91cCMzXGVncm91cH19CiAKICUgU2VjdGlvbnMuCiBcZGVmXHNlY2VudHJ5IzEjMiMzIzR7XGRvc2VjZW50cnl7IzIuIzNcbGFiZWxzcGFjZSMxfXsjNH19Ci1cZGVmXHVubnVtYnNlY2VudHJ5IzEjMntcZG9zZWNlbnRyeXsjMX17IzJ9fQorXGRlZlx1bm51bWJzZWNlbnRyeSMxIzIjMyM0e1xkb3NlY2VudHJ5eyMxfXsjNH19CiAKICUgU3Vic2VjdGlvbnMuCiBcZGVmXHN1YnNlY2VudHJ5IzEjMiMzIzQjNXtcZG9zdWJzZWNlbnRyeXsjMi4jMy4jNFxsYWJlbHNwYWNlIzF9eyM1fX0KLVxkZWZcdW5udW1ic3Vic2VjZW50cnkjMSMye1xkb3N1YnNlY2VudHJ5eyMxfXsjMn19CitcZGVmXHVubnVtYnN1YnNlY2VudHJ5IzEjMiMzIzQjNXtcZG9zdWJzZWNlbnRyeXsjMX17IzV9fQogCiAlIEFuZCBzdWJzdWJzZWN0aW9ucy4KIFxkZWZcc3Vic3Vic2VjZW50cnkjMSMyIzMjNCM1IzZ7JQogICBcZG9zdWJzdWJzZWNlbnRyeXsjMi4jMy4jNC4jNVxsYWJlbHNwYWNlIzF9eyM2fX0KLVxkZWZcdW5udW1ic3Vic3Vic2VjZW50cnkjMSMye1xkb3N1YnN1YnNlY2VudHJ5eyMxfXsjMn19CitcZGVmXHVubnVtYnN1YnN1YnNlY2VudHJ5IzEjMiMzIzQjNSM2e1xkb3N1YnN1YnNlY2VudHJ5eyMxfXsjNn19CiAKICUgVGhpcyBwYXJhbWV0ZXIgY29udHJvbHMgdGhlIGluZGVudGF0aW9uIG9mIHRoZSB2YXJpb3VzIGxldmVscy4KIFxuZXdkaW1lblx0b2NpbmRlbnQgXHRvY2luZGVudCA9IDNwYwpAQCAtMzk0Niw3ICs0MzM2LDcgQEAKIFxkZWZcdG9jZW50cnkjMSMye1xiZWdpbmdyb3VwCiAgIFx2c2tpcCAwcHQgcGx1czFwdCAlIGFsbG93IGEgbGl0dGxlIHN0cmV0Y2ggZm9yIHRoZSBzYWtlIG9mIG5pY2UgcGFnZSBicmVha3MKICAgJSBEbyBub3QgdXNlIFx0dXJub2ZmYWN0aXZlIGluIHRoZXNlIGFyZ3VtZW50cy4gIFNpbmNlIHRoZSB0b2MgaXMKLSAgJSB0eXBlc2V0IGluIGNtciwgc28gY2hhcmFjdGVycyBzdWNoIGFzIF8gd291bGQgY29tZSBvdXQgd3Jvbmc7IHdlCisgICUgdHlwZXNldCBpbiBjbXIsIGNoYXJhY3RlcnMgc3VjaCBhcyBfIHdvdWxkIGNvbWUgb3V0IHdyb25nOyB3ZQogICAlIGhhdmUgdG8gZG8gdGhlIHVzdWFsIHRyYW5zbGF0aW9uIHRyaWNrcy4KICAgXGVudHJ5eyMxfXsjMn0lCiBcZW5kZ3JvdXB9CkBAIC0zOTY2LDM2ICs0MzU2LDI3IEBACiBcbWVzc2FnZXtlbnZpcm9ubWVudHMsfQogJSBAZm9vIC4uLiBAZW5kIGZvby4KIAorJSBAcG9pbnR7fSwgQHJlc3VsdHt9LCBAZXhwYW5zaW9ue30sIEBwcmludHt9LCBAZXF1aXZ7fS4KKyUgCiAlIFNpbmNlIHRoZXNlIGNoYXJhY3RlcnMgYXJlIHVzZWQgaW4gZXhhbXBsZXMsIGl0IHNob3VsZCBiZSBhbiBldmVuIG51bWJlciBvZgogJSBcdHQgd2lkdGhzLiBFYWNoIFx0dCBjaGFyYWN0ZXIgaXMgMWVuLCBzbyB0d28gbWFrZXMgaXQgMWVtLgotJSBGdXJ0aGVybW9yZSwgdGhlc2UgZGVmaW5pdGlvbnMgbXVzdCBjb21lIGFmdGVyIHdlIGRlZmluZSBvdXIgZm9udHMuCi1cbmV3Ym94XGRibGFycm93Ym94ICAgIFxuZXdib3hcbG9uZ2RibGFycm93Ym94Ci1cbmV3Ym94XHB1c2hjaGFyYm94ICAgIFxuZXdib3hcYnVsbGJveAotXG5ld2JveFxlcXVpdmJveCAgICAgICBcbmV3Ym94XGVycm9yYm94Ci0KLSV7XHRlbnR0Ci0lXGdsb2JhbFxzZXRib3hcZGJsYXJyb3dib3ggPSBcaGJveCB0byAxZW17XGhmaWwkXFJpZ2h0YXJyb3ckXGhmaWx9Ci0lXGdsb2JhbFxzZXRib3hcbG9uZ2RibGFycm93Ym94ID0gXGhib3ggdG8gMWVte1xoZmlsJFxtYXBzdG8kXGhmaWx9Ci0lXGdsb2JhbFxzZXRib3hccHVzaGNoYXJib3ggPSBcaGJveCB0byAxZW17XGhmaWwkXGRhc2h2JFxoZmlsfQotJVxnbG9iYWxcc2V0Ym94XGVxdWl2Ym94ID0gXGhib3ggdG8gMWVte1xoZmlsJFxwdGV4ZXF1aXYkXGhmaWx9Ci0lIEFkYXB0ZWQgZnJvbSB0aGUgbWFubWFjIGZvcm1hdCAocC40MjAgb2YgVGVYYm9vaykKLSVcZ2xvYmFsXHNldGJveFxidWxsYm94ID0gXGhib3ggdG8gMWVte1xrZXJuLjE1ZW1cdnJ1bGUgaGVpZ2h0IC43NWV4IHdpZHRoIC44NWV4Ci0lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aCAuMWV4XGhmaWx9Ci0lfQotCi0lIEBwb2ludHt9LCBAcmVzdWx0e30sIEBleHBhbnNpb257fSwgQHByaW50e30sIEBlcXVpdnt9LgorJQogXGRlZlxwb2ludHskXHN0YXIkfQogXGRlZlxyZXN1bHR7XGxlYXZldm1vZGVccmFpc2UuMTVleFxoYm94IHRvIDFlbXtcaGZpbCRcUmlnaHRhcnJvdyRcaGZpbH19CiBcZGVmXGV4cGFuc2lvbntcbGVhdmV2bW9kZVxyYWlzZS4xZXhcaGJveCB0byAxZW17XGhmaWwkXG1hcHN0byRcaGZpbH19CiBcZGVmXHByaW50e1xsZWF2ZXZtb2RlXGxvd2VyLjFleFxoYm94IHRvIDFlbXtcaGZpbCRcZGFzaHYkXGhmaWx9fQogXGRlZlxlcXVpdntcbGVhdmV2bW9kZVxsb3dlci4xZXhcaGJveCB0byAxZW17XGhmaWwkXHB0ZXhlcXVpdiRcaGZpbH19CiAKKyUgVGhlIEBlcnJvcnt9IGNvbW1hbmQuCiAlIEFkYXB0ZWQgZnJvbSB0aGUgVGVYYm9vaydzIFxib3hpdC4KKyUgCitcbmV3Ym94XGVycm9yYm94CislCiB7XHRlbnR0IFxnbG9iYWxcZGltZW4wID0gM2VtfSUgV2lkdGggb2YgdGhlIGJveC4KIFxkaW1lbjIgPSAuNTVwdCAlIFRoaWNrbmVzcyBvZiBydWxlcwogJSBUaGUgdGV4dC4gKGByJyBpcyBvcGVuIG9uIHRoZSByaWdodCwgYGUnIHNvbWV3aGF0IGxlc3Mgc28gb24gdGhlIGxlZnQuKQogXHNldGJveDAgPSBcaGJveHtca2Vybi0uNzVwdCBcdGVuc2YgZXJyb3Jca2Vybi0xLjVwdH0KLQorJQogXGdsb2JhbFxzZXRib3hcZXJyb3Jib3g9XGhib3ggdG8gXGRpbWVuMHtcaGZpbAogICAgXGhzaXplID0gXGRpbWVuMCBcYWR2YW5jZVxoc2l6ZSBieSAtNS44cHQgJSBTcGFjZSB0byBsZWZ0K3JpZ2h0LgogICAgXGFkdmFuY2VcaHNpemUgYnkgLTJcZGltZW4yICUgUnVsZXMuCkBAIC00MDA2LDggKzQzODcsNyBAQAogICAgICAgICAgXGtlcm4zcHRcdnJ1bGUgd2lkdGhcZGltZW4yfSUgU3BhY2UgdG8gcmlnaHQuCiAgICAgICBcaHJ1bGUgaGVpZ2h0XGRpbWVuMn0KICAgICBcaGZpbH0KLQotJSBUaGUgQGVycm9ye30gY29tbWFuZC4KKyUKIFxkZWZcZXJyb3J7XGxlYXZldm1vZGVcbG93ZXIuN2V4XGNvcHlcZXJyb3Jib3h9CiAKICUgQHRleCAuLi4gQGVuZCB0ZXggICAgZXNjYXBlcyBpbnRvIHJhdyBUZXggdGVtcG9yYXJpbHkuCkBAIC00MDE3LDE0ICs0Mzk3LDE0IEBACiBcZGVmXHRleHtcYmVnaW5ncm91cAogICBcY2F0Y29kZSBgXFw9MCBcY2F0Y29kZSBgXHs9MSBcY2F0Y29kZSBgXH09MgogICBcY2F0Y29kZSBgXCQ9MyBcY2F0Y29kZSBgXCY9NCBcY2F0Y29kZSBgXCM9NgotICBcY2F0Y29kZSBgXF49NyBcY2F0Y29kZSBgXF89OCBcY2F0Y29kZSBgXH49MTMgXGxldH49XHRpZQorICBcY2F0Y29kZSBgXF49NyBcY2F0Y29kZSBgXF89OCBcY2F0Y29kZSBgXH49XGFjdGl2ZSBcbGV0fj1cdGllCiAgIFxjYXRjb2RlIGBcJT0xNAotICBcY2F0Y29kZSA0Mz0xMiAlIHBsdXMKLSAgXGNhdGNvZGVgXCI9MTIKLSAgXGNhdGNvZGVgXD09MTIKLSAgXGNhdGNvZGVgXHw9MTIKLSAgXGNhdGNvZGVgXDw9MTIKLSAgXGNhdGNvZGVgXD49MTIKKyAgXGNhdGNvZGUgYFwrPVxvdGhlcgorICBcY2F0Y29kZSBgXCI9XG90aGVyCisgIFxjYXRjb2RlIGBcPT1cb3RoZXIKKyAgXGNhdGNvZGUgYFx8PVxvdGhlcgorICBcY2F0Y29kZSBgXDw9XG90aGVyCisgIFxjYXRjb2RlIGBcPj1cb3RoZXIKICAgXGVzY2FwZWNoYXI9YFxcCiAgICUKICAgXGxldFxiPVxwdGV4YgpAQCAtNDA0Nyw5ICs0NDI3LDkgQEAKICAgXGRlZlxAe0B9JQogXGxldFxFdGV4PVxlbmRncm91cH0KIAotJSBEZWZpbmUgQGxpc3AgLi4uIEBlbmRsaXNwLgorJSBEZWZpbmUgQGxpc3AgLi4uIEBlbmQgbGlzcC4KICUgQGxpc3AgZG9lcyBhIFxiZWdpbmdyb3VwIHNvIGl0IGNhbiByZWJpbmQgdGhpbmdzLAotJSBpbmNsdWRpbmcgdGhlIGRlZmluaXRpb24gb2YgQGVuZGxpc3AgKHdoaWNoIG5vcm1hbGx5IGlzIGVycm9uZW91cykuCislIGluY2x1ZGluZyB0aGUgZGVmaW5pdGlvbiBvZiBAZW5kIGxpc3AgKHdoaWNoIG5vcm1hbGx5IGlzIGVycm9uZW91cykuCiAKICUgQW1vdW50IHRvIG5hcnJvdyB0aGUgbWFyZ2lucyBieSBmb3IgQGxpc3AuCiBcbmV3c2tpcFxsaXNwbmFycm93aW5nIFxsaXNwbmFycm93aW5nPTAuNGluCkBAIC00MDc4LDExICs0NDU4LDIyIEBACiAlIE1ha2Ugc3BhY2luZyBhbmQgYmVsb3cgZW52aXJvbm1lbnQgc3ltbWV0cmljYWwuICBXZSB1c2UgXHBhcnNraXAgaGVyZQogJSB0byBoZWxwIGluIGRvaW5nIHRoYXQsIHNpbmNlIGluIEBleGFtcGxlLWxpa2UgZW52aXJvbm1lbnRzIFxwYXJza2lwCiAlIGlzIHJlc2V0IHRvIHplcm87IHRodXMgdGhlIFxhZnRlcmVudmJyZWFrIGluc2VydHMgbm8gc3BhY2UgLS0gYnV0IHRoZQotJSBzdGFydCBvZiB0aGUgbmV4dCBwYXJhZ3JhcGggd2lsbCBpbnNlcnQgXHBhcnNraXAKKyUgc3RhcnQgb2YgdGhlIG5leHQgcGFyYWdyYXBoIHdpbGwgaW5zZXJ0IFxwYXJza2lwLgogJQotXGRlZlxhYm92ZWVudmJyZWFre3tcYWR2YW5jZVxlbnZza2lwYW1vdW50IGJ5IFxwYXJza2lwCi1cZW5kZ3JhZiBcaWZkaW1cbGFzdHNraXA8XGVudnNraXBhbW91bnQKLVxyZW1vdmVsYXN0c2tpcCBccGVuYWx0eS01MCBcdnNraXBcZW52c2tpcGFtb3VudCBcZml9fQorXGRlZlxhYm92ZWVudmJyZWFre3slCisgICUgPTEwMDAwIGluc3RlYWQgb2YgPDEwMDAwIGJlY2F1c2Ugb2YgYSBzcGVjaWFsIGNhc2UgaW4gXGl0ZW16enosIHEudi4KKyAgXGlmbnVtIFxsYXN0cGVuYWx0eT0xMDAwMCBcZWxzZQorICAgIFxhZHZhbmNlXGVudnNraXBhbW91bnQgYnkgXHBhcnNraXAKKyAgICBcZW5kZ3JhZgorICAgIFxpZmRpbVxsYXN0c2tpcDxcZW52c2tpcGFtb3VudAorICAgICAgXHJlbW92ZWxhc3Rza2lwCisgICAgICAlIGl0J3Mgbm90IGEgZ29vZCBwbGFjZSB0byBicmVhayBpZiB0aGUgbGFzdCBwZW5hbHR5IHdhcyBcbm9icmVhaworICAgICAgJSBvciBiZXR0ZXIgLi4uCisgICAgICBcaWZudW1cbGFzdHBlbmFsdHk+MTAwMDAgXGVsc2UgXHBlbmFsdHktNTAgXGZpCisgICAgICBcdnNraXBcZW52c2tpcGFtb3VudAorICAgIFxmaQorICBcZmkKK319CiAKIFxsZXRcYWZ0ZXJlbnZicmVhayA9IFxhYm92ZWVudmJyZWFrCiAKQEAgLTQxMTAsNyArNDUwMSw4IEBACiAlCiBcbmV3c2tpcFxsc2tpcFxuZXdza2lwXHJza2lwCiAKLVxsb25nXGRlZlxjYXJ0b3VjaGV7JQorXGRlZlxjYXJ0b3VjaGV7JQorXHBhciAgJSBjYW4ndCBiZSBpbiB0aGUgbWlkc3Qgb2YgYSBwYXJhZ3JhcGguCiBcYmVnaW5ncm91cAogICAgICAgICBcbHNraXA9XGxlZnRza2lwIFxyc2tpcD1ccmlnaHRza2lwCiAgICAgICAgIFxsZWZ0c2tpcD0wcHRccmlnaHRza2lwPTBwdCAld2Ugd2FudCB0aGVzZSAqb3V0c2lkZSouCkBAIC00MTU3LDcgKzQ1NDksNiBAQAogICBcaW5FTlYgJSBUaGlzIGdyb3VwIGVuZHMgYXQgdGhlIGVuZCBvZiB0aGUgYm9keQogICBcaGZ1enogPSAxMnB0ICUgRG9uJ3QgYmUgZnVzc3kKICAgXHNlcHNwYWNlcyAlIE1ha2Ugc3BhY2VzIGJlIHdvcmQtc2VwYXJhdG9ycyByYXRoZXIgdGhhbiBzcGFjZSB0b2tlbnMuCi0gIFxzaW5nbGVzcGFjZQogICBcbGV0XHBhciA9IFxsaXNwcGFyICUgZG9uJ3QgaWdub3JlIGJsYW5rIGxpbmVzCiAgIFxvYmV5bGluZXMgJSBlYWNoIGxpbmUgb2YgaW5wdXQgaXMgYSBsaW5lIG9mIG91dHB1dAogICBccGFyc2tpcCA9IDBwdApAQCAtNDE5NiwyNyArNDU4NywxNiBAQAogJSBAZXhhbXBsZTogU2FtZSBhcyBAbGlzcC4KIFxkZWZcZXhhbXBsZXtcYmVnaW5ncm91cCBcZGVmXEVleGFtcGxle1xub25maWxsZmluaXNoXGVuZGdyb3VwfVxsaXNwfQogCi0lIEBzbWFsbC4uLiBpcyB1c3VhbGx5IGVxdWl2YWxlbnQgdG8gdGhlIG5vbi1zbWFsbCAoQHNtYWxsYm9vawotJSByZWRlZmluZXMpLiAgV2UgbXVzdCBjYWxsIFxleGFtcGxlIChvciB3aGF0ZXZlcikgbGFzdCBpbiB0aGUKLSUgZGVmaW5pdGlvbiwgc2luY2UgaXQgcmVhZHMgdGhlIHJldHVybiBmb2xsb3dpbmcgdGhlIEBleGFtcGxlIChvcgotJSB3aGF0ZXZlcikgY29tbWFuZC4KLSUKLSUgVGhpcyBhY3R1YWxseSBhbGxvd3MgKGZvciBleGFtcGxlKSBAZW5kIGRpc3BsYXkgaW5zaWRlIGFuCi0lIEBzbWFsbGRpc3BsYXkuICBUb28gYmFkLCBidXQgbWFrZWluZm8gd2lsbCBjYXRjaCB0aGUgZXJyb3IgYW55d2F5LgotJQotXGRlZlxzbWFsbGRpc3BsYXl7XGJlZ2luZ3JvdXBcZGVmXEVzbWFsbGRpc3BsYXl7XG5vbmZpbGxmaW5pc2hcZW5kZ3JvdXB9XGRpc3BsYXl9Ci1cZGVmXHNtYWxsZXhhbXBsZXtcYmVnaW5ncm91cFxkZWZcRXNtYWxsZXhhbXBsZXtcbm9uZmlsbGZpbmlzaFxlbmRncm91cH1cbGlzcH0KLVxkZWZcc21hbGxmb3JtYXR7XGJlZ2luZ3JvdXBcZGVmXEVzbWFsbGZvcm1hdHtcbm9uZmlsbGZpbmlzaFxlbmRncm91cH1cZm9ybWF0fQotXGRlZlxzbWFsbGxpc3B7XGJlZ2luZ3JvdXBcZGVmXEVzbWFsbGxpc3B7XG5vbmZpbGxmaW5pc2hcZW5kZ3JvdXB9XGxpc3B9Ci0KLSUgUmVhbCBAc21hbGxleGFtcGxlIGFuZCBAc21hbGxsaXNwICh3aGVuIEBzbWFsbGJvb2spOiB1c2Ugc21hbGxlciBmb250cy4KKyUgQHNtYWxsZXhhbXBsZSBhbmQgQHNtYWxsbGlzcDogdXNlIHNtYWxsZXIgZm9udHMuCiAlIE9yaWdpbmFsbHkgY29udHJpYnV0ZWQgYnkgUGF2ZWxAeGVyb3guCi1cZGVmXHNtYWxsbGlzcHh7XGJlZ2luZ3JvdXAKK1xkZWZcc21hbGxsaXNwe1xiZWdpbmdyb3VwCiAgIFxkZWZcRXNtYWxsbGlzcHtcbm9uZmlsbGZpbmlzaFxlbmRncm91cH0lCiAgIFxkZWZcRXNtYWxsZXhhbXBsZXtcbm9uZmlsbGZpbmlzaFxlbmRncm91cH0lCi0gIFxzbWFsbGZvbnRzCisgIFxzbWFsbGV4YW1wbGVmb250cwogICBcbGlzcAogfQorXGxldFxzbWFsbGV4YW1wbGUgPSBcc21hbGxsaXNwCisKIAogJSBAZGlzcGxheTogc2FtZSBhcyBAbGlzcCBleGNlcHQga2VlcCBjdXJyZW50IGZvbnQuCiAlCkBAIC00MjI1LDEyICs0NjA1LDEyIEBACiAgIFxsZXRcRWRpc3BsYXkgPSBcbm9uZmlsbGZpbmlzaAogICBcZ29iYmxlCiB9Ci0KLSUgQHNtYWxsZGlzcGxheSAod2hlbiBAc21hbGxib29rKTogQGRpc3BsYXkgcGx1cyBzbWFsbGVyIGZvbnRzLgogJQotXGRlZlxzbWFsbGRpc3BsYXl4e1xiZWdpbmdyb3VwCislIEBzbWFsbGRpc3BsYXk6IEBkaXNwbGF5IHBsdXMgc21hbGxlciBmb250cy4KKyUKK1xkZWZcc21hbGxkaXNwbGF5e1xiZWdpbmdyb3VwCiAgIFxkZWZcRXNtYWxsZGlzcGxheXtcbm9uZmlsbGZpbmlzaFxlbmRncm91cH0lCi0gIFxzbWFsbGZvbnRzIFxybQorICBcc21hbGxleGFtcGxlZm9udHMgXHJtCiAgIFxkaXNwbGF5CiB9CiAKQEAgLTQyNDIsMTIgKzQ2MjIsMTIgQEAKICAgXGxldFxFZm9ybWF0ID0gXG5vbmZpbGxmaW5pc2gKICAgXGdvYmJsZQogfQotCi0lIEBzbWFsbGZvcm1hdCAod2hlbiBAc21hbGxib29rKTogQGZvcm1hdCBwbHVzIHNtYWxsZXIgZm9udHMuCiAlCi1cZGVmXHNtYWxsZm9ybWF0eHtcYmVnaW5ncm91cAorJSBAc21hbGxmb3JtYXQ6IEBmb3JtYXQgcGx1cyBzbWFsbGVyIGZvbnRzLgorJQorXGRlZlxzbWFsbGZvcm1hdHtcYmVnaW5ncm91cAogICBcZGVmXEVzbWFsbGZvcm1hdHtcbm9uZmlsbGZpbmlzaFxlbmRncm91cH0lCi0gIFxzbWFsbGZvbnRzIFxybQorICBcc21hbGxleGFtcGxlZm9udHMgXHJtCiAgIFxmb3JtYXQKIH0KIApAQCAtNDI2NSwxMyArNDY0NSwxMyBAQAogICBcZ29iYmxlCiB9CiAKKwogJSBAcXVvdGF0aW9uIGRvZXMgbm9ybWFsIGxpbmVicmVha2luZyAoaGVuY2Ugd2UgY2FuJ3QgdXNlIFxub25maWxsc3RhcnQpCiAlIGFuZCBuYXJyb3dzIHRoZSBtYXJnaW5zLgogJQogXGRlZlxxdW90YXRpb257JQogICBcYmVnaW5ncm91cFxpbkVOViAlVGhpcyBncm91cCBlbmRzIGF0IHRoZSBlbmQgb2YgdGhlIEBxdW90YXRpb24gYm9keQogICB7XHBhcnNraXA9MHB0IFxhYm92ZWVudmJyZWFrfSUgYmVjYXVzZSBcYWJvdmVlbnZicmVhayBpbnNlcnRzIFxwYXJza2lwCi0gIFxzaW5nbGVzcGFjZQogICBccGFyaW5kZW50PTBwdAogICAlIFdlIGhhdmUgcmV0YWluZWQgYSBub256ZXJvIHBhcnNraXAgZm9yIHRoZSBlbnZpcm9ubWVudCwgc2luY2Ugd2UncmUKICAgJSBkb2luZyBub3JtYWwgZmlsbGluZy4gU28gdG8gYXZvaWQgZXh0cmEgc3BhY2UgYmVsb3cgdGhlIGVudmlyb25tZW50Li4uCkBAIC00Mjg3LDIzICs0NjY3LDI1NyBAQAogfQogCiAKKyUgTGFUZVgtbGlrZSBAdmVyYmF0aW0uLi5AZW5kIHZlcmJhdGltIGFuZCBAdmVyYns8Y2hhcj4uLi48Y2hhcj59CislIElmIHdlIHdhbnQgdG8gYWxsb3cgYW55IDxjaGFyPiBhcyBkZWxpbWl0ZXIsIAorJSB3ZSBuZWVkIHRoZSBjdXJseSBicmFjZXMgc28gdGhhdCBtYWtlaW5mbyBzZWVzIHRoZSBAdmVyYiBjb21tYW5kLCBlZzoKKyUgYEB2ZXJieC4uLngnIHdvdWxkIGxvb2sgbGlrZSB0aGUgJ0B2ZXJieCcgY29tbWFuZC4gIC0tamFubmVrZUBnbnUub3JnCislCislIFtLbnV0aF06IERvbmFsZCBFcnZpbiBLbnV0aCwgMTk5Ni4gIFRoZSBUZVhib29rLgorJQorJSBbS251dGhdIHAuMzQ0OyBvbmx5IHdlIG5lZWQgdG8gZG8gdGhlIG90aGVyIGNoYXJhY3RlcnMgVGV4aW5mbyBzZXRzCislIGFjdGl2ZSB0b28uICBPdGhlcndpc2UsIHRoZXkgZ2V0IGxvc3QgYXMgdGhlIGZpcnN0IGNoYXJhY3RlciBvbiBhCislIHZlcmJhdGltIGxpbmUuCitcZGVmXGRvc3BlY2lhbHN7JQorICBcZG9cIFxkb1xcXGRvXHtcZG9cfVxkb1wkXGRvXCYlCisgIFxkb1wjXGRvXF5cZG9cXl5LXGRvXF9cZG9cXl5BXGRvXCVcZG9cfiUKKyAgXGRvXDxcZG9cPlxkb1x8XGRvXEBcZG8rXGRvXCIlCit9CislCislIFtLbnV0aF0gcC4gMzgwCitcZGVmXHVuY2F0Y29kZXNwZWNpYWxzeyUKKyAgXGRlZlxkbyMjMXtcY2F0Y29kZWAjIzE9MTJ9XGRvc3BlY2lhbHN9CislCislIFtLbnV0aF0gcHAuIDM4MCwzODEsMzkxCislIERpc2FibGUgU3BhbmlzaCBsaWdhdHVyZXMgP2AgYW5kICFgIG9mIFx0dCBmb250CitcYmVnaW5ncm91cAorICBcY2F0Y29kZWBcYD1cYWN0aXZlXGdkZWZge1xyZWxheFxscX0KK1xlbmRncm91cAorJQorJSBTZXR1cCBmb3IgdGhlIEB2ZXJiIGNvbW1hbmQuCislCislIEVpZ2h0IHNwYWNlcyBmb3IgYSB0YWIKK1xiZWdpbmdyb3VwCisgIFxjYXRjb2RlYFxeXkk9XGFjdGl2ZQorICBcZ2RlZlx0YWJlaWdodHNwYWNlc3tcY2F0Y29kZWBcXl5JPVxhY3RpdmVcZGVmXl5Je1wgXCBcIFwgXCBcIFwgXCB9fQorXGVuZGdyb3VwCislCitcZGVmXHNldHVwdmVyYnslCisgIFx0dCAgJSBlYXNpZXN0IChhbmQgY29udmVudGlvbmFsbHkgdXNlZCkgZm9udCBmb3IgdmVyYmF0aW0KKyAgXGRlZlxwYXJ7XGxlYXZldm1vZGVcZW5kZ3JhZn0lCisgIFxjYXRjb2RlYFxgPVxhY3RpdmUKKyAgXHRhYmVpZ2h0c3BhY2VzCisgICUgUmVzcGVjdCBsaW5lIGJyZWFrcywKKyAgJSBwcmludCBzcGVjaWFsIHN5bWJvbHMgYXMgdGhlbXNlbHZlcywgYW5kCisgICUgbWFrZSBlYWNoIHNwYWNlIGNvdW50CisgICUgbXVzdCBkbyBpbiB0aGlzIG9yZGVyOgorICBcb2JleWxpbmVzIFx1bmNhdGNvZGVzcGVjaWFscyBcc2Vwc3BhY2VzCit9CisKKyUgU2V0dXAgZm9yIHRoZSBAdmVyYmF0aW0gZW52aXJvbm1lbnQKKyUKKyUgUmVhbCB0YWIgZXhwYW5zaW9uCitcbmV3ZGltZW5cdGFidyBcc2V0Ym94MD1caGJveHtcdHRcc3BhY2V9IFx0YWJ3PThcd2QwICUgdGFiIGFtb3VudAorJQorXGRlZlxzdGFydHRhYmJveHtcc2V0Ym94MD1caGJveFxiZ3JvdXB9CitcYmVnaW5ncm91cAorICBcY2F0Y29kZWBcXl5JPVxhY3RpdmUKKyAgXGdkZWZcdGFiZXhwYW5keyUKKyAgICBcY2F0Y29kZWBcXl5JPVxhY3RpdmUKKyAgICBcZGVmXl5Je1xsZWF2ZXZtb2RlXGVncm91cAorICAgICAgXGRpbWVuMD1cd2QwICUgdGhlIHdpZHRoIHNvIGZhciwgb3Igc2luY2UgdGhlIHByZXZpb3VzIHRhYgorICAgICAgXGRpdmlkZVxkaW1lbjAgYnlcdGFidworICAgICAgXG11bHRpcGx5XGRpbWVuMCBieVx0YWJ3ICUgY29tcHV0ZSBwcmV2aW91cyBtdWx0aXBsZSBvZiBcdGFidworICAgICAgXGFkdmFuY2VcZGltZW4wIGJ5XHRhYncgICUgYWR2YW5jZSB0byBuZXh0IG11bHRpcGxlIG9mIFx0YWJ3CisgICAgICBcd2QwPVxkaW1lbjAgXGJveDAgXHN0YXJ0dGFiYm94CisgICAgfSUKKyAgfQorXGVuZGdyb3VwCitcZGVmXHNldHVwdmVyYmF0aW17JQorICAlIEVhc2llc3QgKGFuZCBjb252ZW50aW9uYWxseSB1c2VkKSBmb250IGZvciB2ZXJiYXRpbQorICBcdHQKKyAgXGRlZlxwYXJ7XGxlYXZldm1vZGVcZWdyb3VwXGJveDBcZW5kZ3JhZn0lCisgIFxjYXRjb2RlYFxgPVxhY3RpdmUKKyAgXHRhYmV4cGFuZAorICAlIFJlc3BlY3QgbGluZSBicmVha3MsCisgICUgcHJpbnQgc3BlY2lhbCBzeW1ib2xzIGFzIHRoZW1zZWx2ZXMsIGFuZAorICAlIG1ha2UgZWFjaCBzcGFjZSBjb3VudAorICAlIG11c3QgZG8gaW4gdGhpcyBvcmRlcjoKKyAgXG9iZXlsaW5lcyBcdW5jYXRjb2Rlc3BlY2lhbHMgXHNlcHNwYWNlcworICBcZXZlcnlwYXJ7XHN0YXJ0dGFiYm94fSUKK30KKworJSBEbyB0aGUgQHZlcmIgbWFnaWM6IHZlcmJhdGltIHRleHQgaXMgcXVvdGVkIGJ5IHVuaXF1ZSAKKyUgZGVsaW1pdGVyIGNoYXJhY3RlcnMuICBCZWZvcmUgZmlyc3QgZGVsaW1pdGVyIGV4cGVjdCBhIAorJSByaWdodCBicmFjZSwgYWZ0ZXIgbGFzdCBkZWxpbWl0ZXIgZXhwZWN0IGNsb3NpbmcgYnJhY2U6CislCislICAgIFxkZWZcZG92ZXJiJ3snPGNoYXI+IzE8Y2hhcj4nfSd7IzF9CislCislIFtLbnV0aF0gcC4gMzgyOyBvbmx5IGVhdCBvdXRlciB7fQorXGJlZ2luZ3JvdXAKKyAgXGNhdGNvZGVgWz0xXGNhdGNvZGVgXT0yXGNhdGNvZGVgXHs9MTJcY2F0Y29kZWBcfT0xMgorICBcZ2RlZlxkb3ZlcmJ7IzFbXGRlZlxuZXh0IyMxIzF9WyMjMVxlbmRncm91cF1cbmV4dF0KK1xlbmRncm91cAorJQorXGRlZlx2ZXJie1xiZWdpbmdyb3VwXHNldHVwdmVyYlxkb3ZlcmJ9CislCislCislIERvIHRoZSBAdmVyYmF0aW0gbWFnaWM6IGRlZmluZSB0aGUgbWFjcm8gXGRvdmVyYmF0aW0gc28gdGhhdAorJSB0aGUgKGZpcnN0KSBhcmd1bWVudCBlbmRzIHdoZW4gJ0BlbmQgdmVyYmF0aW0nIGlzIHJlYWNoZWQsIGllOgorJQorJSAgICAgXGRlZlxkb3ZlcmJhdGltIzFAZW5kIHZlcmJhdGlteyMxfQorJQorJSBGb3IgVGV4aW5mbyBpdCdzIGEgbG90IGVhc2llciB0aGFuIGZvciBMYVRlWCwgCislIGJlY2F1c2UgdGV4aW5mbydzIFx2ZXJiYXRpbSBkb2Vzbid0IHN0b3AgYXQgJ1xlbmR7dmVyYmF0aW19JzoKKyUgd2UgbmVlZCBub3QgcmVkZWZpbmUgJ1wnLCAneycgYW5kICd9Jy4KKyUKKyUgSW5zcGlyZWQgYnkgTGFUZVgncyB2ZXJiYXRpbSBjb21tYW5kIHNldCBbbGF0ZXgubHR4XQorJSUgSW5jbHVkZSBMYVRlWCBoYWNrIGZvciBjb21wbGV0ZW5lc3MgLS0gbmV2ZXIga25vdworJSUgXGJlZ2luZ3JvdXAKKyUlIFxjYXRjb2RlYHw9MCBcY2F0Y29kZWBbPTEKKyUlIFxjYXRjb2RlYF09MlxjYXRjb2RlYFx7PTEyXGNhdGNvZGVgXH09MTJcY2F0Y29kZWBcID1cYWN0aXZlCislJSBcY2F0Y29kZWBcXD0xMnxnZGVmfGRvdmVyYmF0aW0jMUBlbmQgdmVyYmF0aW1bCislJSAjMXxlbmRncm91cHxkZWZ8RXZlcmJhdGltW118ZW5kW3ZlcmJhdGltXV0KKyUlIHxlbmRncm91cAorJQorXGJlZ2luZ3JvdXAKKyAgXGNhdGNvZGVgXCA9XGFjdGl2ZQorICBcb2JleWxpbmVzICUKKyAgJSBpZ25vcmUgZXZlcnl0aGluZyB1cCB0byB0aGUgZmlyc3QgXl5NLCB0aGF0J3MgdGhlIG5ld2xpbmUgYXQgdGhlIGVuZAorICAlIG9mIHRoZSBAdmVyYmF0aW0gaW5wdXQgbGluZSBpdHNlbGYuICBPdGhlcndpc2Ugd2UgZ2V0IGFuIGV4dHJhIGJsYW5rCisgICUgbGluZSBpbiB0aGUgb3V0cHV0LgorICBcZ2RlZlxkb3ZlcmJhdGltIzFeXk0jMkBlbmQgdmVyYmF0aW17IzJcZW5ke3ZlcmJhdGltfX0lCitcZW5kZ3JvdXAKKyUKK1xkZWZcdmVyYmF0aW17JQorICBcZGVmXEV2ZXJiYXRpbXtcbm9uZmlsbGZpbmlzaFxlbmRncm91cH0lCisgIFxiZWdpbmdyb3VwCisgICAgXG5vbmZpbGxzdGFydAorICAgIFxhZHZhbmNlXGxlZnRza2lwIGJ5IC1cZGVmYm9keWluZGVudAorICAgIFxiZWdpbmdyb3VwXHNldHVwdmVyYmF0aW1cZG92ZXJiYXRpbQorfQorCislIEB2ZXJiYXRpbWluY2x1ZGUgRklMRSAtIGluc2VydCB0ZXh0IG9mIGZpbGUgaW4gdmVyYmF0aW0gZW52aXJvbm1lbnQuCislCislIEFsbG93IG5vcm1hbCBjaGFyYWN0ZXJzIHRoYXQgd2UgbWFrZSBhY3RpdmUgaW4gdGhlIGFyZ3VtZW50IChhIGZpbGUgbmFtZSkuCitcZGVmXHZlcmJhdGltaW5jbHVkZXslCisgIFxiZWdpbmdyb3VwCisgICAgXGNhdGNvZGVgXFw9XG90aGVyCisgICAgXGNhdGNvZGVgfj1cb3RoZXIKKyAgICBcY2F0Y29kZWBePVxvdGhlcgorICAgIFxjYXRjb2RlYF89XG90aGVyCisgICAgXGNhdGNvZGVgfD1cb3RoZXIKKyAgICBcY2F0Y29kZWA8PVxvdGhlcgorICAgIFxjYXRjb2RlYD49XG90aGVyCisgICAgXGNhdGNvZGVgKz1cb3RoZXIKKyAgICBccGFyc2VhcmdcZG92ZXJiYXRpbWluY2x1ZGUKK30KK1xkZWZcc2V0dXB2ZXJiYXRpbWluY2x1ZGV7JQorICBcYmVnaW5ncm91cAorICAgIFxub25maWxsc3RhcnQKKyAgICBcYWR2YW5jZVxsZWZ0c2tpcCBieSAtXGRlZmJvZHlpbmRlbnQKKyAgICBcYmVnaW5ncm91cFxzZXR1cHZlcmJhdGltCit9CislCitcZGVmXGRvdmVyYmF0aW1pbmNsdWRlIzF7JQorICAgICAlIFJlc3RvcmUgYWN0aXZlIGNoYXJzIGZvciBpbmNsdWRlZCBmaWxlLgorICBcZW5kZ3JvdXAKKyAgXGJlZ2luZ3JvdXAKKyAgICBcbGV0XHZhbHVlPVxleHBhbmRhYmxldmFsdWUKKyAgICBcZGVmXHRoaXNmaWxleyMxfSUKKyAgICBcZXhwYW5kYWZ0ZXJcZXhwYW5kYWZ0ZXJcc2V0dXB2ZXJiYXRpbWluY2x1ZGVcaW5wdXRcdGhpc2ZpbGUKKyAgXGVuZGdyb3VwCisgIFxub25maWxsZmluaXNoCisgIFxlbmRncm91cAorfQorCislIEBjb3B5aW5nIC4uLiBAZW5kIGNvcHlpbmcuCislIFNhdmUgdGhlIHRleHQgYXdheSBmb3IgQGluc2VydGNvcHlpbmcgbGF0ZXIuICBNYW55IGNvbW1hbmRzIHdvbid0IGJlCislIGFsbG93ZWQgaW4gdGhpcyBjb250ZXh0LCBidXQgdGhhdCdzIG9rLgorJSAKKyUgV2Ugc2F2ZSB0aGUgdW5pbnRlcnByZXRlZCB0b2tlbnMsIHJhdGhlciB0aGFuIGNyZWF0aW5nIGEgYm94LgorJSBTYXZpbmcgdGhlIHRleHQgaW4gYSBib3ggd291bGQgYmUgbXVjaCBlYXNpZXIsIGJ1dCB0aGVuIGFsbCB0aGUKKyUgdHlwZXNldHRpbmcgY29tbWFuZHMgKEBzbWFsbGJvb2ssIGZvbnQgY2hhbmdlcywgZXRjLikgaGF2ZSB0byBiZSBkb25lCislIGJlZm9yZWhhbmQgLS0gYW5kIGEpIHdlIHdhbnQgQGNvcHlpbmcgdG8gYmUgZG9uZSBmaXJzdCBpbiB0aGUgc291cmNlCislIGZpbGU7IGIpIGxldHRpbmcgdXNlcnMgZGVmaW5lIHRoZSBmcm9udG1hdHRlciBpbiBhcyBmbGV4aWJsZSBvcmRlciBhcworJSBwb3NzaWJsZSBpcyB2ZXJ5IGRlc2lyYWJsZS4KKyUgCitcZGVmXGNvcHlpbmd7XGJlZ2luZ3JvdXAKKyAgJSBEZWZpbmUgYSBjb21tYW5kIHRvIHN3YWxsb3cgdGV4dCB1bnRpbCB3ZSByZWFjaCBgQGVuZCBjb3B5aW5nJy4KKyAgJSBcIGlzIHRoZSBlc2NhcGUgY2hhciBpbiB0aGlzIHRleGluZm8udGV4IGZpbGUsIHNvIGl0IGlzIHRoZQorICAlIGRlbGltaXRlciBmb3IgdGhlIGNvbW1hbmQ7IEAgd2lsbCBiZSB0aGUgZXNjYXBlIGNoYXIgd2hlbiB3ZSByZWFkCisgICUgaXQsIGJ1dCB0aGF0IGRvZXNuJ3QgbWF0dGVyLgorICBcbG9uZ1xkZWZcZG9jb3B5aW5nIyMxXGVuZCBjb3B5aW5ne1xnZGVmXGNvcHlpbmd0ZXh0eyMjMX1cZW5kZG9jb3B5aW5nfSUKKyAgJQorICAlIFdlIG11c3QgcHJlc2VydmUgXl5NJ3MgaW4gdGhlIGlucHV0IGZpbGU7IHNlZSBcaW5zZXJ0Y29weWluZyBiZWxvdy4KKyAgXGNhdGNvZGVgXF5eTSA9IFxhY3RpdmUKKyAgXGRvY29weWluZworfQorCislIFdoYXQgd2UgZG8gdG8gZmluaXNoIG9mZiB0aGUgY29weWluZyB0ZXh0LgorJQorXGRlZlxlbmRkb2NvcHlpbmd7XGVuZGdyb3VwXGlnbm9yZXNwYWNlc30KKworJSBAaW5zZXJ0Y29weWluZy4gIEhlcmUgd2UgbXVzdCBwbGF5IGdhbWVzIHdpdGggXl5NJ3MuICBPbiB0aGUgb25lIGhhbmQsCislIHdlIG5lZWQgdGhlbSB0byBkZWxpbWl0IGNvbW1hbmRzIHN1Y2ggYXMgYEBlbmQgcXVvdGF0aW9uJywgc28gdGhleQorJSBtdXN0IGJlIGFjdGl2ZS4gIE9uIHRoZSBvdGhlciBoYW5kLCB3ZSBjZXJ0YWlubHkgZG9uJ3Qgd2FudCBldmVyeQorJSBlbmQtb2YtbGluZSB0byBiZSBhIFxwYXIsIGFzIHdvdWxkIGhhcHBlbiB3aXRoIHRoZSBub3JtYWwgYWN0aXZlCislIGRlZmluaXRpb24gb2YgXl5NLiAgT24gdGhlIHRoaXJkIGhhbmQsIHR3byBeXk0ncyBpbiBhIHJvdyBzaG91bGQgc3RpbGwKKyUgZ2VuZXJhdGUgYSBccGFyLgorJSAKKyUgT3VyIGFwcHJvYWNoIGlzIHRvIG1ha2UgXl5NIGluc2VydCBhIHNwYWNlIGFuZCBhIHBlbmFsdHkxIG5vcm1hbGx5OworJSB0aGVuIGl0IGNhbiBhbHNvIGNoZWNrIGlmIFxsYXN0cGVuYWx0eT0xLiAgSWYgaXQgZG9lcywgdGhlbiBtYW51YWxseQorJSBkbyBccGFyLgorJSAKKyUgVGhpcyBtZXNzZXMgdXAgdGhlIG5vcm1hbCBkZWZpbml0aW9ucyBvZiBAY1tvbW1lbnRdLCBzbyB3ZSByZWRlZmluZQorJSBpdC4gIFNpbWlsYXJseSBmb3IgQGlnbm9yZS4gIChUaGVzZSBjb21tYW5kcyBhcmUgdXNlZCBpbiB0aGUgZ2NjCislIG1hbnVhbCBmb3IgbWFuIHBhZ2UgZ2VuZXJhdGlvbi4pCislIAorJSBTZWVtcyBwcmV0dHkgZnJhZ2lsZSwgbW9zdCBsaW5lLW9yaWVudGVkIGNvbW1hbmRzIHdpbGwgcHJlc3VtYWJseQorJSBmYWlsLCBidXQgZm9yIHRoZSBsaW1pdGVkIHVzZSBvZiBnZXR0aW5nIHRoZSBjb3B5aW5nIHRleHQgKHdoaWNoCislIHNob3VsZCBiZSBxdWl0ZSBzaW1wbGUpIGluc2VydGVkLCB3ZSBjYW4gaG9wZSBpdCdzIG9rLgorJQore1xjYXRjb2RlYFxeXk09XGFjdGl2ZSAlCitcZ2RlZlxpbnNlcnRjb3B5aW5ne1xiZWdpbmdyb3VwICUKKyAgXHBhcmluZGVudCA9IDBwdCAgJSBsb29rcyB3cm9uZyBvbiB0aXRsZSBwYWdlCisgIFxkZWZeXk17JQorICAgIFxpZm51bSBcbGFzdHBlbmFsdHk9MSAlCisgICAgICBccGFyICUKKyAgICBcZWxzZSAlCisgICAgICBcc3BhY2UgXHBlbmFsdHkgMSAlCisgICAgXGZpICUKKyAgfSUKKyAgJQorICAlIEZpeCBAY1tvbW1lbnRdIGZvciBjYXRjb2RlIDEzIF5eTSdzLgorICBcZGVmXGMjIzFeXk17XGlnbm9yZXNwYWNlc30lCisgIFxsZXRcY29tbWVudCA9IFxjICUKKyAgJQorICAlIERvbid0IGJvdGhlciBqdW1waW5nIHRocm91Z2ggYWxsIHRoZSBob29wcyB0aGF0IFxkb2lnbm9yZSBkb2VzLCBpdAorICAlIHdvdWxkIGJlIHZlcnkgaGFyZCBzaW5jZSB0aGUgY2F0Y29kZXMgYXJlIGFscmVhZHkgc2V0LgorICBcbG9uZ1xkZWZcaWdub3JlIyMxXGVuZCBpZ25vcmV7XGlnbm9yZXNwYWNlc30lCisgICUKKyAgXGNvcHlpbmd0ZXh0ICUKK1xlbmRncm91cH0lCit9CisKIFxtZXNzYWdle2RlZnVucyx9CiAlIEBkZWZ1biBldGMuCiAKICUgQWxsb3cgdXNlciB0byBjaGFuZ2UgZGVmaW5pdGlvbiBvYmplY3QgZm9udCAoXGRmKSBpbnRlcm5hbGx5Ci1cZGVmXHNldGRlZmZvbnQgIzEge1xjc25hbWUgREVGIzFcZW5kY3NuYW1lfQorXGRlZlxzZXRkZWZmb250IzEge1xjc25hbWUgREVGIzFcZW5kY3NuYW1lfQogCiBcbmV3c2tpcFxkZWZib2R5aW5kZW50IFxkZWZib2R5aW5kZW50PS40aW4KIFxuZXdza2lwXGRlZmFyZ3NpbmRlbnQgXGRlZmFyZ3NpbmRlbnQ9NTBwdAotXG5ld3NraXBcZGVmdHlwZW1hcmdpbiBcZGVmdHlwZW1hcmdpbj0xMnB0CiBcbmV3c2tpcFxkZWZsYXN0YXJnbWFyZ2luIFxkZWZsYXN0YXJnbWFyZ2luPTE4cHQKIAogXG5ld2NvdW50XHBhcmVuY291bnQKLSUgZGVmaW5lIFxmdW5jdGlvbnBhcmVucywgd2hpY2ggbWFrZXMgKCBhbmQgKSBhbmQgJiBkbyBzcGVjaWFsIHRoaW5ncy4KLSUgXGZ1bmN0aW9ucGFyZW5zIGFmZmVjdHMgdGhlIGdyb3VwIGl0IGlzIGNvbnRhaW5lZCBpbi4KKworJSBXZSB3YW50ICgpJltdIHRvIHByaW50IHNwZWNpYWxseSBvbiB0aGUgZGVmdW4gbGluZS4KKyUgCiBcZGVmXGFjdGl2ZXBhcmVuc3slCi1cY2F0Y29kZWBcKD1cYWN0aXZlIFxjYXRjb2RlYFwpPVxhY3RpdmUgXGNhdGNvZGVgXCY9XGFjdGl2ZQotXGNhdGNvZGVgXFs9XGFjdGl2ZSBcY2F0Y29kZWBcXT1cYWN0aXZlfQorICBcY2F0Y29kZWBcKD1cYWN0aXZlIFxjYXRjb2RlYFwpPVxhY3RpdmUKKyAgXGNhdGNvZGVgXCY9XGFjdGl2ZQorICBcY2F0Y29kZWBcWz1cYWN0aXZlIFxjYXRjb2RlYFxdPVxhY3RpdmUKK30KIAogJSBNYWtlIGNvbnRyb2wgc2VxdWVuY2VzIHdoaWNoIGFjdCBsaWtlIG5vcm1hbCBwYXJlbnRoZXNpcyBjaGFycy4KIFxsZXRcbHBhcmVuID0gKCBcbGV0XHJwYXJlbiA9ICkKQEAgLTQzNTAsODggKzQ5NjQsMTI0IEBACiAKICUgQWN0aXZlICYncyBzbmVhayBpbnRvIHRoZSBpbmRleCBhcmd1bWVudHMsIHNvIG1ha2Ugc3VyZSBpdCdzIGRlZmluZWQuCiB7Ci0gIFxjYXRjb2RlYCYgPSAxMworICBcY2F0Y29kZWAmID0gXGFjdGl2ZQogICBcZ2xvYmFsXGxldCYgPSBcYW1wbnIKIH0KIAotJSBGaXJzdCwgZGVmbmFtZSwgd2hpY2ggZm9ybWF0cyB0aGUgaGVhZGVyIGxpbmUgaXRzZWxmLgotJSAjMSBzaG91bGQgYmUgdGhlIGZ1bmN0aW9uIG5hbWUuCi0lICMyIHNob3VsZCBiZSB0aGUgdHlwZSBvZiBkZWZpbml0aW9uLCBzdWNoIGFzICJGdW5jdGlvbiIuCi0KLVxkZWZcZGVmbmFtZSAjMSMyeyUKLSUgR2V0IHRoZSB2YWx1ZXMgb2YgXGxlZnRza2lwIGFuZCBccmlnaHRza2lwIGFzIHRoZXkgd2VyZQotJSBvdXRzaWRlIHRoZSBAZGVmLi4uCi1cZGltZW4yPVxsZWZ0c2tpcAotXGFkdmFuY2VcZGltZW4yIGJ5IC1cZGVmYm9keWluZGVudAotXG5vaW5kZW50Ci1cc2V0Ym94MD1caGJveHtcaHNraXAgXGRlZmxhc3RhcmdtYXJnaW57XHJtICMyfVxoc2tpcCBcZGVmdHlwZW1hcmdpbn0lCi1cZGltZW4wPVxoc2l6ZSBcYWR2YW5jZSBcZGltZW4wIGJ5IC1cd2QwICUgY29tcHV0ZSBzaXplIGZvciBmaXJzdCBsaW5lCi1cZGltZW4xPVxoc2l6ZSBcYWR2YW5jZSBcZGltZW4xIGJ5IC1cZGVmYXJnc2luZGVudCAlc2l6ZSBmb3IgY29udGludWF0aW9ucwotXHBhcnNoYXBlIDIgMGluIFxkaW1lbjAgXGRlZmFyZ3NpbmRlbnQgXGRpbWVuMQotJSBOb3cgb3V0cHV0IGFyZyAyICgiRnVuY3Rpb24iIG9yIHNvbWUgc3VjaCkKLSUgZW5kaW5nIGF0IFxkZWZ0eXBlbWFyZ2luIGZyb20gdGhlIHJpZ2h0IG1hcmdpbiwKLSUgYnV0IHN0dWNrIGluc2lkZSBhIGJveCBvZiB3aWR0aCAwIHNvIGl0IGRvZXMgbm90IGludGVyZmVyZSB3aXRoIGxpbmVicmVha2luZwoteyUgQWRqdXN0IFxoc2l6ZSB0byBleGNsdWRlIHRoZSBhbWJpZW50IG1hcmdpbnMsCi0lIHNvIHRoYXQgXHJpZ2h0bGluZSB3aWxsIG9iZXkgdGhlbS4KLVxhZHZhbmNlIFxoc2l6ZSBieSAtXGRpbWVuMgotXHJsYXB7XHJpZ2h0bGluZXt7XHJtICMyfVxoc2tpcCAtMS4yNXBjIH19fSUKLSUgTWFrZSBhbGwgbGluZXMgdW5kZXJmdWxsIGFuZCBubyBjb21wbGFpbnRzOgotXHRvbGVyYW5jZT0xMDAwMCBcaGJhZG5lc3M9MTAwMDAKLVxhZHZhbmNlXGxlZnRza2lwIGJ5IC1cZGVmYm9keWluZGVudAotXGV4ZGVudGFtb3VudD1cZGVmYm9keWluZGVudAote1xkZiAjMX1cZW5za2lwICAgICAgICAlIEdlbmVyYXRlIGZ1bmN0aW9uIG5hbWUKKyUgXGRlZm5hbWUsIHdoaWNoIGZvcm1hdHMgdGhlIG5hbWUgb2YgdGhlIEBkZWYgKG5vdCB0aGUgYXJncykuCislICMxIGlzIHRoZSBmdW5jdGlvbiBuYW1lLgorJSAjMiBpcyB0aGUgdHlwZSBvZiBkZWZpbml0aW9uLCBzdWNoIGFzICJGdW5jdGlvbiIuCislCitcZGVmXGRlZm5hbWUjMSMyeyUKKyAgJSBIb3cgd2UnbGwgb3V0cHV0IHRoZSB0eXBlIG5hbWUuICBQdXR0aW5nIGl0IGluIGJyYWNrZXRzIGhlbHBzCisgICUgZGlzdGluZ3Vpc2ggaXQgZnJvbSB0aGUgYm9keSB0ZXh0IHRoYXQgbWF5IGVuZCB1cCBvbiB0aGUgbmV4dCBsaW5lCisgICUganVzdCBiZWxvdyBpdC4KKyAgXGlmZW1wdHl7IzJ9JQorICAgIFxkZWZcZGVmbmFtZXR5cGV7fSUKKyAgXGVsc2UKKyAgICBcZGVmXGRlZm5hbWV0eXBle1tccm0gIzJdfSUKKyAgXGZpCisgICUKKyAgJSBHZXQgdGhlIHZhbHVlcyBvZiBcbGVmdHNraXAgYW5kIFxyaWdodHNraXAgYXMgdGhleSB3ZXJlIG91dHNpZGUgdGhlIEBkZWYuLi4KKyAgXGRpbWVuMj1cbGVmdHNraXAKKyAgXGFkdmFuY2VcZGltZW4yIGJ5IC1cZGVmYm9keWluZGVudAorICAlCisgICUgRmlndXJlIG91dCB2YWx1ZXMgZm9yIHRoZSBwYXJhZ3JhcGggc2hhcGUuCisgIFxzZXRib3gwPVxoYm94e1xoc2tpcCBcZGVmbGFzdGFyZ21hcmdpbntcZGVmbmFtZXR5cGV9fSUKKyAgXGRpbWVuMD1caHNpemUgXGFkdmFuY2UgXGRpbWVuMCBieSAtXHdkMCAgJSBjb21wdXRlIHNpemUgZm9yIGZpcnN0IGxpbmUKKyAgXGRpbWVuMT1caHNpemUgXGFkdmFuY2UgXGRpbWVuMSBieSAtXGRlZmFyZ3NpbmRlbnQgICUgc2l6ZSBmb3IgY29udGludWF0aW9ucworICBccGFyc2hhcGUgMiAwaW4gXGRpbWVuMCBcZGVmYXJnc2luZGVudCBcZGltZW4xCisgICUKKyAgJSBPdXRwdXQgYXJnIDIgKCJGdW5jdGlvbiIgb3Igc29tZSBzdWNoKSBidXQgc3R1Y2sgaW5zaWRlIGEgYm94IG9mCisgICUgd2lkdGggMCBzbyBpdCBkb2VzIG5vdCBpbnRlcmZlcmUgd2l0aCBsaW5lYnJlYWtpbmcuCisgIFxub2luZGVudAorICAlCisgIHslIEFkanVzdCBcaHNpemUgdG8gZXhjbHVkZSB0aGUgYW1iaWVudCBtYXJnaW5zLAorICAgJSBzbyB0aGF0IFxyaWdodGxpbmUgd2lsbCBvYmV5IHRoZW0uCisgICBcYWR2YW5jZSBcaHNpemUgYnkgLVxkaW1lbjIKKyAgIFxkaW1lbjMgPSAwcHQgICUgd2FzIC0xLjI1cGMKKyAgIFxybGFwe1xyaWdodGxpbmV7XGRlZm5hbWV0eXBlXGtlcm5cZGltZW4zfX0lCisgIH0lCisgICUKKyAgJSBBbGxvdyBhbGwgbGluZXMgdG8gYmUgdW5kZXJmdWxsIHdpdGhvdXQgY29tcGxhaW50OgorICBcdG9sZXJhbmNlPTEwMDAwIFxoYmFkbmVzcz0xMDAwMAorICBcYWR2YW5jZVxsZWZ0c2tpcCBieSAtXGRlZmJvZHlpbmRlbnQKKyAgXGV4ZGVudGFtb3VudD1cZGVmYm9keWluZGVudAorICB7XGRmICMxfVxlbnNraXAgICAgICAgICUgb3V0cHV0IGZ1bmN0aW9uIG5hbWUKKyAgJSBcZGVmdW5hcmdzIHdpbGwgYmUgY2FsbGVkIG5leHQgdG8gb3V0cHV0IHRoZSBhcmd1bWVudHMsIGlmIGFueS4KIH0KIAotJSBBY3R1YWxseSBwcm9jZXNzIHRoZSBib2R5IG9mIGEgZGVmaW5pdGlvbgotJSAjMSBzaG91bGQgYmUgdGhlIHRlcm1pbmF0aW5nIGNvbnRyb2wgc2VxdWVuY2UsIHN1Y2ggYXMgXEVkZWZ1bi4KLSUgIzIgc2hvdWxkIGJlIHRoZSAiYW5vdGhlciBuYW1lIiBjb250cm9sIHNlcXVlbmNlLCBzdWNoIGFzIFxkZWZ1bnguCi0lICMzIHNob3VsZCBiZSB0aGUgY29udHJvbCBzZXF1ZW5jZSB0aGF0IGFjdHVhbGx5IHByb2Nlc3NlcyB0aGUgaGVhZGVyLAotJSAgICBzdWNoIGFzIFxkZWZ1bmhlYWRlci4KLQotXGRlZlxkZWZwYXJzZWJvZHkgIzEjMiMze1xiZWdpbmdyb3VwXGluRU5WJSBFbnZpcm9ubWVudCBmb3IgZGVmaW5pdGlvbmJvZHkKLVxtZWRicmVhayAlCi0lIERlZmluZSB0aGUgZW5kIHRva2VuIHRoYXQgdGhpcyBkZWZpbmluZyBjb25zdHJ1Y3Qgc3BlY2lmaWVzCi0lIHNvIHRoYXQgaXQgd2lsbCBleGl0IHRoaXMgZ3JvdXAuCi1cZGVmIzF7XGVuZGdyYWZcZW5kZ3JvdXBcbWVkYnJlYWt9JQotXGRlZiMye1xiZWdpbmdyb3VwXG9iZXlsaW5lc1xhY3RpdmVwYXJlbnNcc3BhY2VzcGxpdCMzfSUKLVxwYXJpbmRlbnQ9MGluCi1cYWR2YW5jZVxsZWZ0c2tpcCBieSBcZGVmYm9keWluZGVudAotXGV4ZGVudGFtb3VudD1cZGVmYm9keWluZGVudAotXGJlZ2luZ3JvdXAgJQotXGNhdGNvZGUgNjE9XGFjdGl2ZSAlIDYxIGlzIGA9JwotXG9iZXlsaW5lc1xhY3RpdmVwYXJlbnNcc3BhY2VzcGxpdCMzfQotCislIENvbW1vbiBwaWVjZXMgdG8gc3RhcnQgYW55IEBkZWYuLi4KICUgIzEgaXMgdGhlIFxFLi4uIGNvbnRyb2wgc2VxdWVuY2UgdG8gZW5kIHRoZSBkZWZpbml0aW9uICh3aGljaCB3ZSBkZWZpbmUpLgotJSAjMiBpcyB0aGUgXC4uLnggY29udHJvbCBzZXF1ZW5jZSBmb3IgY29uc2VjdXRpdmUgZm5zICh3aGljaCB3ZSBkZWZpbmUpLgotJSAjMyBpcyB0aGUgY29udHJvbCBzZXF1ZW5jZSB0byBjYWxsIHRvIHJlc3VtZSBwcm9jZXNzaW5nLgotJSAjNCwgZGVsaW1pdGVkIGJ5IHRoZSBzcGFjZSwgaXMgdGhlIGNsYXNzIG5hbWUuCi0lCi1cZGVmXGRlZm1ldGhwYXJzZWJvZHkjMSMyIzMjNCB7XGJlZ2luZ3JvdXBcaW5FTlYgJQotXG1lZGJyZWFrICUKLSUgRGVmaW5lIHRoZSBlbmQgdG9rZW4gdGhhdCB0aGlzIGRlZmluaW5nIGNvbnN0cnVjdCBzcGVjaWZpZXMKLSUgc28gdGhhdCBpdCB3aWxsIGV4aXQgdGhpcyBncm91cC4KLVxkZWYjMXtcZW5kZ3JhZlxlbmRncm91cFxtZWRicmVha30lCi1cZGVmIzIjIzEge1xiZWdpbmdyb3VwXG9iZXlsaW5lc1xhY3RpdmVwYXJlbnNcc3BhY2VzcGxpdHsjM3sjIzF9fX0lCi1ccGFyaW5kZW50PTBpbgotXGFkdmFuY2VcbGVmdHNraXAgYnkgXGRlZmJvZHlpbmRlbnQKLVxleGRlbnRhbW91bnQ9XGRlZmJvZHlpbmRlbnQKLVxiZWdpbmdyb3VwXG9iZXlsaW5lc1xhY3RpdmVwYXJlbnNcc3BhY2VzcGxpdHsjM3sjNH19fQotCi0lIFVzZWQgZm9yIEBkZWZ0eXBlbWV0aG9kIGFuZCBAZGVmdHlwZWl2YXIuCi0lICMxIGlzIHRoZSBcRS4uLiBjb250cm9sIHNlcXVlbmNlIHRvIGVuZCB0aGUgZGVmaW5pdGlvbiAod2hpY2ggd2UgZGVmaW5lKS4KLSUgIzIgaXMgdGhlIFwuLi54IGNvbnRyb2wgc2VxdWVuY2UgZm9yIGNvbnNlY3V0aXZlIGZucyAod2hpY2ggd2UgZGVmaW5lKS4KLSUgIzMgaXMgdGhlIGNvbnRyb2wgc2VxdWVuY2UgdG8gY2FsbCB0byByZXN1bWUgcHJvY2Vzc2luZy4KLSUgIzQsIGRlbGltaXRlZCBieSBhIHNwYWNlLCBpcyB0aGUgY2xhc3MgbmFtZS4KLSUgIzUgaXMgdGhlIG1ldGhvZCdzIHJldHVybiB0eXBlLgotJQotXGRlZlxkZWZ0eXBlbWV0aHBhcnNlYm9keSMxIzIjMyM0ICM1IHtcYmVnaW5ncm91cFxpbkVOVgorJSAjMiBpcyB0aGUgXC4uLnggY29udHJvbCBzZXF1ZW5jZSAod2hpY2ggb3VyIGNhbGxlciBkZWZpbmVzKS4KKyUgIzMgaXMgdGhlIGNvbnRyb2wgc2VxdWVuY2UgdG8gcHJvY2VzcyB0aGUgaGVhZGVyLCBzdWNoIGFzIFxkZWZ1bmhlYWRlci4KKyUgCitcZGVmXHBhcnNlYm9keWNvbW1vbiMxIzIjM3slCisgIFxiZWdpbmdyb3VwXGluRU5WCisgICUgSWYgdGhlcmUgYXJlIHR3byBAZGVmIGNvbW1hbmRzIGluIGEgcm93LCB3ZSdsbCBoYXZlIGEgXG5vYnJlYWssCisgICUgd2hpY2ggaXMgdGhlcmUgdG8ga2VlcCB0aGUgZnVuY3Rpb24gZGVzY3JpcHRpb24gdG9nZXRoZXIgd2l0aCBpdHMKKyAgJSBoZWFkZXIuICBCdXQgaWYgdGhlcmUncyBub3RoaW5nIGJ1dCBoZWFkZXJzLCB3ZSB3YW50IHRvIGFsbG93IGEKKyAgJSBicmVhayBhZnRlciBhbGwuICBDaGVjayBmb3IgcGVuYWx0eSAxMDAwMiAoaW5zZXJ0ZWQgYnkKKyAgJSBcZGVmYXJnc2NvbW1vbmVuZGluZykgaW5zdGVhZCBvZiAxMDAwMCwgc2luY2UgdGhlIHNlY3Rpb25pbmcKKyAgJSBjb21tYW5kcyBpbnNlcnQgYSBccGVuYWx0eTEwMDAwLCBhbmQgd2UgZG9uJ3Qgd2FudCB0byBhbGxvdyBhIGJyZWFrCisgICUgYmV0d2VlbiBhIHNlY3Rpb24gaGVhZGluZyBhbmQgYSBkZWZ1bi4KKyAgXGlmbnVtXGxhc3RwZW5hbHR5PTEwMDAyIFxwZW5hbHR5MCBcZmkKICAgXG1lZGJyZWFrCisgICUKKyAgJSBEZWZpbmUgdGhlIFxFLi4uIGVuZCB0b2tlbiB0aGF0IHRoaXMgZGVmaW5pbmcgY29uc3RydWN0IHNwZWNpZmllcworICAlIHNvIHRoYXQgaXQgd2lsbCBleGl0IHRoaXMgZ3JvdXAuCiAgIFxkZWYjMXtcZW5kZ3JhZlxlbmRncm91cFxtZWRicmVha30lCi0gIFxkZWYjMiMjMSAjIzIge1xiZWdpbmdyb3VwXG9iZXlsaW5lc1xhY3RpdmVwYXJlbnNcc3BhY2VzcGxpdHsjM3sjIzF9eyMjMn19fSUKKyAgJQogICBccGFyaW5kZW50PTBpbgogICBcYWR2YW5jZVxsZWZ0c2tpcCBieSBcZGVmYm9keWluZGVudAogICBcZXhkZW50YW1vdW50PVxkZWZib2R5aW5kZW50Ci0gIFxiZWdpbmdyb3VwXG9iZXlsaW5lc1xhY3RpdmVwYXJlbnNcc3BhY2VzcGxpdHsjM3sjNH17IzV9fX0KK30KKworJSBDb21tb24gcGFydCBvZiB0aGUgXC4uLnggZGVmaW5pdGlvbnMuCislIAorXGRlZlxkZWZ4Ym9keWNvbW1vbnslCisgICUgQXMgd2l0aCBccGFyc2Vib2R5Y29tbW9uIGFib3ZlLCBhbGxvdyBsaW5lIGJyZWFrIGlmIHdlIGhhdmUgbXVsdGlwbGUKKyAgJSB4IGhlYWRlcnMgaW4gYSByb3cuICBJdCdzIG5vdCBhIGdyZWF0IHBsYWNlLCB0aG91Z2guCisgIFxpZm51bVxsYXN0cGVuYWx0eT0xMDAwMCBccGVuYWx0eTEwMDAgXGZpCisgICUKKyAgXGJlZ2luZ3JvdXBcb2JleWxpbmVzCit9CisKKyUgUHJvY2VzcyBib2R5IG9mIEBkZWZ1biwgQGRlZmZuLCBAZGVmbWFjLCBldGMuCislCitcZGVmXGRlZnBhcnNlYm9keSMxIzIjM3slCisgIFxwYXJzZWJvZHljb21tb257IzF9eyMyfXsjM30lCisgIFxkZWYjMntcZGVmeGJvZHljb21tb24gXGFjdGl2ZXBhcmVucyBcc3BhY2VzcGxpdCMzfSUKKyAgXGNhdGNvZGVcZXF1YWxDaGFyPVxhY3RpdmUKKyAgXGJlZ2luZ3JvdXBcb2JleWxpbmVzXGFjdGl2ZXBhcmVucworICBcc3BhY2VzcGxpdCMzJQorfQorCislICMxLCAjMiwgIzMgYXJlIHRoZSBjb21tb24gYXJndW1lbnRzIChzZWUgXHBhcnNlYm9keWNvbW1vbiBhYm92ZSkuCislICM0LCBkZWxpbWl0ZWQgYnkgdGhlIHNwYWNlLCBpcyB0aGUgY2xhc3MgbmFtZS4KKyUKK1xkZWZcZGVmbWV0aHBhcnNlYm9keSMxIzIjMyM0IHslCisgIFxwYXJzZWJvZHljb21tb257IzF9eyMyfXsjM30lCisgIFxkZWYjMiMjMSB7XGRlZnhib2R5Y29tbW9uIFxhY3RpdmVwYXJlbnMgXHNwYWNlc3BsaXR7IzN7IyMxfX19JQorICBcYmVnaW5ncm91cFxvYmV5bGluZXNcYWN0aXZlcGFyZW5zCisgICUgVGhlIFxlbXB0eSBoZXJlIHByZXZlbnRzIG1pc2ludGVycHJldGF0aW9uIG9mIGEgY29uc3RydWN0IHN1Y2ggYXMKKyAgJSAgIEBkZWZmbiB7d2hhdGV2ZXJ9IHtFbmhhcm1vbmljIGNvbW1hfQorICAlIFNlZSBjb21tZW50cyBhdCBcZGVmdHBwYXJzZWJvZHksIGFsdGhvdWdoIGluIG91ciBjYXNlIHdlIGRvbid0IGhhdmUKKyAgJSB0byByZW1vdmUgdGhlIFxlbXB0eSBhZnRlcndhcmRzLCBzaW5jZSBpdCBpcyBlbXB0eS4KKyAgXHNwYWNlc3BsaXR7IzN7IzR9fVxlbXB0eQorfQorCislIFVzZWQgZm9yIEBkZWZ0eXBlbWV0aG9kIGFuZCBAZGVmdHlwZWl2YXIuCislICMxLCAjMiwgIzMgYXJlIHRoZSBjb21tb24gYXJndW1lbnRzIChzZWUgXGRlZnBhcnNlYm9keSkuCislICM0LCBkZWxpbWl0ZWQgYnkgYSBzcGFjZSwgaXMgdGhlIGNsYXNzIG5hbWUuCislICM1IGlzIHRoZSBtZXRob2QncyByZXR1cm4gdHlwZS4KKyUKK1xkZWZcZGVmdHlwZW1ldGhwYXJzZWJvZHkjMSMyIzMjNCAjNSB7JQorICBccGFyc2Vib2R5Y29tbW9ueyMxfXsjMn17IzN9JQorICBcZGVmIzIjIzEgIyMyIHtcZGVmeGJvZHljb21tb24gXGFjdGl2ZXBhcmVucyBcc3BhY2VzcGxpdHsjM3sjIzF9eyMjMn19fSUKKyAgXGJlZ2luZ3JvdXBcb2JleWxpbmVzXGFjdGl2ZXBhcmVucworICBcc3BhY2VzcGxpdHsjM3sjNH17IzV9fSUKK30KIAogJSBVc2VkIGZvciBAZGVmdHlwZW9wLiAgVGhlIGNoYW5nZSBmcm9tIFxkZWZ0eXBlbWV0aHBhcnNlYm9keSBpcyBhbgogJSBleHRyYSBhcmd1bWVudCBhdCB0aGUgYmVnaW5uaW5nIHdoaWNoIGlzIHRoZSBgY2F0ZWdvcnknLCBpbnN0ZWFkIG9mIGl0CkBAIC00NDQwLDY0ICs1MDkwLDQ4IEBACiAlIGlucHV0IGF0IGhhbmQuICBUaHVzIGFsc28gbmVlZCBhIGNvbnRyb2wgc2VxdWVuY2UgKHBhc3NlZCBhcyAjNSkgZm9yCiAlIHRoZSBcRS4uLiBkZWZpbml0aW9uIHRvIGFzc2lnbiB0aGUgY2F0ZWdvcnkgbmFtZSB0by4KICUgCi1cZGVmXGRlZnR5cGVvcHBhcnNlYm9keSMxIzIjMyM0IzUgIzYge1xiZWdpbmdyb3VwXGluRU5WCi0gIFxtZWRicmVhawotICBcZGVmIzF7XGVuZGdyYWZcZW5kZ3JvdXBcbWVkYnJlYWt9JQotICBcZGVmIzIjIzEgIyMyICMjMyB7JQotICAgIFxkZWYjNHsjIzF9JQotICAgIFxiZWdpbmdyb3VwXG9iZXlsaW5lc1xhY3RpdmVwYXJlbnNcc3BhY2VzcGxpdHsjM3sjIzJ9eyMjM319fSUKLSAgXHBhcmluZGVudD0waW4KLSAgXGFkdmFuY2VcbGVmdHNraXAgYnkgXGRlZmJvZHlpbmRlbnQKLSAgXGV4ZGVudGFtb3VudD1cZGVmYm9keWluZGVudAotICBcYmVnaW5ncm91cFxvYmV5bGluZXNcYWN0aXZlcGFyZW5zXHNwYWNlc3BsaXR7IzN7IzV9eyM2fX19CitcZGVmXGRlZnR5cGVvcHBhcnNlYm9keSMxIzIjMyM0IzUgIzYgeyUKKyAgXHBhcnNlYm9keWNvbW1vbnsjMX17IzJ9eyMzfSUKKyAgXGRlZiMyIyMxICMjMiAjIzMge1xkZWYjNHsjIzF9JQorICAgIFxkZWZ4Ym9keWNvbW1vbiBcYWN0aXZlcGFyZW5zIFxzcGFjZXNwbGl0eyMzeyMjMn17IyMzfX19JQorICBcYmVnaW5ncm91cFxvYmV5bGluZXNcYWN0aXZlcGFyZW5zCisgIFxzcGFjZXNwbGl0eyMzeyM1fXsjNn19JQorfQogCi1cZGVmXGRlZm9wcGFyc2Vib2R5ICMxIzIjMyM0IzUge1xiZWdpbmdyb3VwXGluRU5WICUKLVxtZWRicmVhayAlCi0lIERlZmluZSB0aGUgZW5kIHRva2VuIHRoYXQgdGhpcyBkZWZpbmluZyBjb25zdHJ1Y3Qgc3BlY2lmaWVzCi0lIHNvIHRoYXQgaXQgd2lsbCBleGl0IHRoaXMgZ3JvdXAuCi1cZGVmIzF7XGVuZGdyYWZcZW5kZ3JvdXBcbWVkYnJlYWt9JQotXGRlZiMyIyMxICMjMiB7XGRlZiM0eyMjMX0lCi1cYmVnaW5ncm91cFxvYmV5bGluZXNcYWN0aXZlcGFyZW5zXHNwYWNlc3BsaXR7IzN7IyMyfX19JQotXHBhcmluZGVudD0waW4KLVxhZHZhbmNlXGxlZnRza2lwIGJ5IFxkZWZib2R5aW5kZW50Ci1cZXhkZW50YW1vdW50PVxkZWZib2R5aW5kZW50Ci1cYmVnaW5ncm91cFxvYmV5bGluZXNcYWN0aXZlcGFyZW5zXHNwYWNlc3BsaXR7IzN7IzV9fX0KKyUgRm9yIEBkZWZvcC4KK1xkZWZcZGVmb3BwYXJzZWJvZHkgIzEjMiMzIzQjNSB7JQorICBccGFyc2Vib2R5Y29tbW9ueyMxfXsjMn17IzN9JQorICBcZGVmIzIjIzEgIyMyIHtcZGVmIzR7IyMxfSUKKyAgICBcZGVmeGJvZHljb21tb24gXGFjdGl2ZXBhcmVucyBcc3BhY2VzcGxpdHsjM3sjIzJ9fX0lCisgIFxiZWdpbmdyb3VwXG9iZXlsaW5lc1xhY3RpdmVwYXJlbnMKKyAgXHNwYWNlc3BsaXR7IzN7IzV9fSUKK30KIAogJSBUaGVzZSBwYXJzaW5nIGZ1bmN0aW9ucyBhcmUgc2ltaWxhciB0byB0aGUgcHJlY2VkaW5nIG9uZXMKICUgZXhjZXB0IHRoYXQgdGhleSBkbyBub3QgbWFrZSBwYXJlbnMgaW50byBhY3RpdmUgY2hhcmFjdGVycy4KICUgVGhlc2UgYXJlIHVzZWQgZm9yICJ2YXJpYWJsZXMiIHNpbmNlIHRoZXkgaGF2ZSBubyBhcmd1bWVudHMuCi0KLVxkZWZcZGVmdmFycGFyc2Vib2R5ICMxIzIjM3tcYmVnaW5ncm91cFxpbkVOViUgRW52aXJvbm1lbnQgZm9yIGRlZmluaXRpb25ib2R5Ci1cbWVkYnJlYWsgJQotJSBEZWZpbmUgdGhlIGVuZCB0b2tlbiB0aGF0IHRoaXMgZGVmaW5pbmcgY29uc3RydWN0IHNwZWNpZmllcwotJSBzbyB0aGF0IGl0IHdpbGwgZXhpdCB0aGlzIGdyb3VwLgotXGRlZiMxe1xlbmRncmFmXGVuZGdyb3VwXG1lZGJyZWFrfSUKLVxkZWYjMntcYmVnaW5ncm91cFxvYmV5bGluZXNcc3BhY2VzcGxpdCMzfSUKLVxwYXJpbmRlbnQ9MGluCi1cYWR2YW5jZVxsZWZ0c2tpcCBieSBcZGVmYm9keWluZGVudAotXGV4ZGVudGFtb3VudD1cZGVmYm9keWluZGVudAotXGJlZ2luZ3JvdXAgJQotXGNhdGNvZGUgNjE9XGFjdGl2ZSAlCi1cb2JleWxpbmVzXHNwYWNlc3BsaXQjM30KLQotJSBUaGlzIGlzIHVzZWQgZm9yIFxkZWZ7dHAsdnJ9cGFyc2Vib2R5LiAgSXQgY291bGQgcHJvYmFibHkgYmUgdXNlZCBmb3IKLSUgc29tZSBvZiB0aGUgb3RoZXJzLCB0b28sIHdpdGggc29tZSBqdWRpY2lvdXMgY29uZGl0aW9uYWxzLgogJQotXGRlZlxwYXJzZWJvZHljb21tb24jMSMyIzN7JQotICBcYmVnaW5ncm91cFxpbkVOViAlCi0gIFxtZWRicmVhayAlCi0gICUgRGVmaW5lIHRoZSBlbmQgdG9rZW4gdGhhdCB0aGlzIGRlZmluaW5nIGNvbnN0cnVjdCBzcGVjaWZpZXMKLSAgJSBzbyB0aGF0IGl0IHdpbGwgZXhpdCB0aGlzIGdyb3VwLgotICBcZGVmIzF7XGVuZGdyYWZcZW5kZ3JvdXBcbWVkYnJlYWt9JQotICBcZGVmIzIjIzEge1xiZWdpbmdyb3VwXG9iZXlsaW5lc1xzcGFjZXNwbGl0eyMzeyMjMX19fSUKLSAgXHBhcmluZGVudD0waW4KLSAgXGFkdmFuY2VcbGVmdHNraXAgYnkgXGRlZmJvZHlpbmRlbnQKLSAgXGV4ZGVudGFtb3VudD1cZGVmYm9keWluZGVudAorXGRlZlxkZWZ2YXJwYXJzZWJvZHkgIzEjMiMzeyUKKyAgXHBhcnNlYm9keWNvbW1vbnsjMX17IzJ9eyMzfSUKKyAgXGRlZiMye1xkZWZ4Ym9keWNvbW1vbiBcc3BhY2VzcGxpdCMzfSUKKyAgXGNhdGNvZGVcZXF1YWxDaGFyPVxhY3RpdmUKICAgXGJlZ2luZ3JvdXBcb2JleWxpbmVzCisgIFxzcGFjZXNwbGl0IzMlCit9CisKKyUgQGRlZm9wdmFyLgorXGRlZlxkZWZvcHZhcnBhcnNlYm9keSAjMSMyIzMjNCM1IHslCisgIFxwYXJzZWJvZHljb21tb257IzF9eyMyfXsjM30lCisgIFxkZWYjMiMjMSAjIzIge1xkZWYjNHsjIzF9JQorICAgIFxkZWZ4Ym9keWNvbW1vbiBcc3BhY2VzcGxpdHsjM3sjIzJ9fX0lCisgIFxiZWdpbmdyb3VwXG9iZXlsaW5lcworICBcc3BhY2VzcGxpdHsjM3sjNX19JQogfQogCiBcZGVmXGRlZnZycGFyc2Vib2R5IzEjMiMzIzQgeyUKICAgXHBhcnNlYm9keWNvbW1vbnsjMX17IzJ9eyMzfSUKKyAgXGRlZiMyIyMxIHtcZGVmeGJvZHljb21tb24gXHNwYWNlc3BsaXR7IzN7IyMxfX19JQorICBcYmVnaW5ncm91cFxvYmV5bGluZXMKICAgXHNwYWNlc3BsaXR7IzN7IzR9fSUKIH0KIApAQCAtNDUxMiw2ICs1MTQ2LDggQEAKICUKIFxkZWZcZGVmdHBwYXJzZWJvZHkgIzEjMiMzIzQgeyUKICAgXHBhcnNlYm9keWNvbW1vbnsjMX17IzJ9eyMzfSUKKyAgXGRlZiMyIyMxIHtcZGVmeGJvZHljb21tb24gXHNwYWNlc3BsaXR7IzN7IyMxfX19JQorICBcYmVnaW5ncm91cFxvYmV5bGluZXMKICAgXHNwYWNlc3BsaXR7XHBhcnNldHBoZWFkZXJsaW5leyMzeyM0fX19XGVtcHR5CiB9CiAKQEAgLTQ1MjgsMzggKzUxNjQsMzcgQEAKICAgIzF7XHJlbW92ZWVtcHR5YnJhY2VzIzJccmVsYXh9eyMzfSUKIH0lCiAKLVxkZWZcZGVmb3B2YXJwYXJzZWJvZHkgIzEjMiMzIzQjNSB7XGJlZ2luZ3JvdXBcaW5FTlYgJQotXG1lZGJyZWFrICUKLSUgRGVmaW5lIHRoZSBlbmQgdG9rZW4gdGhhdCB0aGlzIGRlZmluaW5nIGNvbnN0cnVjdCBzcGVjaWZpZXMKLSUgc28gdGhhdCBpdCB3aWxsIGV4aXQgdGhpcyBncm91cC4KLVxkZWYjMXtcZW5kZ3JhZlxlbmRncm91cFxtZWRicmVha30lCi1cZGVmIzIjIzEgIyMyIHtcZGVmIzR7IyMxfSUKLVxiZWdpbmdyb3VwXG9iZXlsaW5lc1xzcGFjZXNwbGl0eyMzeyMjMn19fSUKLVxwYXJpbmRlbnQ9MGluCi1cYWR2YW5jZVxsZWZ0c2tpcCBieSBcZGVmYm9keWluZGVudAotXGV4ZGVudGFtb3VudD1cZGVmYm9keWluZGVudAotXGJlZ2luZ3JvdXBcb2JleWxpbmVzXHNwYWNlc3BsaXR7IzN7IzV9fX0KLQotJSBTcGxpdCB1cCAjMiBhdCB0aGUgZmlyc3Qgc3BhY2UgdG9rZW4uCislIFNwbGl0IHVwICMyICh0aGUgcmVzdCBvZiB0aGUgaW5wdXQgbGluZSkgYXQgdGhlIGZpcnN0IHNwYWNlIHRva2VuLgogJSBjYWxsICMxIHdpdGggdHdvIGFyZ3VtZW50czoKICUgIHRoZSBmaXJzdCBpcyBhbGwgb2YgIzIgYmVmb3JlIHRoZSBzcGFjZSB0b2tlbiwKICUgIHRoZSBzZWNvbmQgaXMgYWxsIG9mICMyIGFmdGVyIHRoYXQgc3BhY2UgdG9rZW4uCiAlIElmICMyIGNvbnRhaW5zIG5vIHNwYWNlIHRva2VuLCBhbGwgb2YgaXQgaXMgcGFzc2VkIGFzIHRoZSBmaXJzdCBhcmcKICUgYW5kIHRoZSBzZWNvbmQgaXMgcGFzc2VkIGFzIGVtcHR5LgotCi17XG9iZXlsaW5lcwotXGdkZWZcc3BhY2VzcGxpdCMxIzJeXk17XGVuZGdyb3VwXHNwYWNlc3BsaXRmb297IzF9IzIgXHJlbGF4XHNwYWNlc3BsaXRmb299JQotXGxvbmdcZ2RlZlxzcGFjZXNwbGl0Zm9vIzEjMiAjMyM0XHNwYWNlc3BsaXRmb297JQotXGlmeFxyZWxheCAjMyUKLSMxeyMyfXt9XGVsc2UgIzF7IzJ9eyMzIzR9XGZpfX0KLQotJSBTbyBtdWNoIGZvciB0aGUgdGhpbmdzIGNvbW1vbiB0byBhbGwga2luZHMgb2YgZGVmaW5pdGlvbnMuCislCit7XG9iZXlsaW5lcyAlCisgXGdkZWZcc3BhY2VzcGxpdCMxIzJeXk17XGVuZGdyb3VwXHNwYWNlc3BsaXR4eyMxfSMyIFxyZWxheFxzcGFjZXNwbGl0eH0lCisgXGxvbmdcZ2RlZlxzcGFjZXNwbGl0eCMxIzIgIzMjNFxzcGFjZXNwbGl0eHslCisgICBcaWZ4XHJlbGF4ICMzJQorICAgICAjMXsjMn17fSUKKyAgIFxlbHNlICUKKyAgICAgIzF7IzJ9eyMzIzR9JQorICAgXGZpfSUKK30KIAogJSBEZWZpbmUgQGRlZnVuLgogCi0lIEZpcnN0LCBkZWZpbmUgdGhlIHByb2Nlc3NpbmcgdGhhdCBpcyB3YW50ZWQgZm9yIGFyZ3VtZW50cyBvZiBcZGVmdW4KLSUgVXNlIHRoaXMgdG8gZXhwYW5kIHRoZSBhcmdzIGFuZCB0ZXJtaW5hdGUgdGhlIHBhcmFncmFwaCB0aGV5IG1ha2UgdXAKKyUgVGhpcyBpcyBjYWxsZWQgdG8gZW5kIHRoZSBhcmd1bWVudHMgcHJvY2Vzc2luZyBmb3IgYWxsIHRoZSBAZGVmLi4uIGNvbW1hbmRzLgorJQorXGRlZlxkZWZhcmdzY29tbW9uZW5kaW5neyUKKyAgXGludGVybGluZXBlbmFsdHkgPSAxMDAwMAorICBcYWR2YW5jZVxyaWdodHNraXAgYnkgMHB0IHBsdXMgMWZpbAorICBcZW5kZ3JhZgorICBcbm9icmVha1x2c2tpcCAtXHBhcnNraXAKKyAgXHBlbmFsdHkgMTAwMDIgICUgc2lnbmFsIHRvIFxwYXJzZWJvZHljb21tb24uCit9CiAKKyUgVGhpcyBleHBhbmRzIHRoZSBhcmdzIGFuZCB0ZXJtaW5hdGVzIHRoZSBwYXJhZ3JhcGggdGhleSBjb21wcmlzZS4KKyUgCiBcZGVmXGRlZnVuYXJncyMxe1xmdW5jdGlvbnBhcmVucyBcc2wKICUgRXhwYW5kLCBwcmV2ZW50aW5nIGh5cGhlbmF0aW9uIGF0IGAtJyBjaGFycy4KICUgTm90ZSB0aGF0IGdyb3VwcyBkb24ndCBhZmZlY3QgY2hhbmdlcyBpbiBcaHlwaGVuY2hhci4KQEAgLTQ1NjgsOSArNTIwMyw3IEBACiAjMSUKIHtcdGVuc2xcaHlwaGVuY2hhclxmb250PTQ1fSUKIFxpZm51bVxwYXJlbmNvdW50PTAgXGVsc2UgXGVycm1lc3NhZ2V7VW5iYWxhbmNlZCBwYXJlbnRoZXNlcyBpbiBAZGVmfVxmaSUKLVxpbnRlcmxpbmVwZW5hbHR5PTEwMDAwCi1cYWR2YW5jZVxyaWdodHNraXAgYnkgMHB0IHBsdXMgMWZpbAotXGVuZGdyYWZcbm9icmVha1x2c2tpcCAtXHBhcnNraXBcbm9icmVhaworICBcZGVmYXJnc2NvbW1vbmVuZGluZwogfQogCiBcZGVmXGRlZnR5cGVmdW5hcmdzICMxeyUKQEAgLTQ1NzksOSArNTIxMiw3IEBACiAlIFVzZSBcYm9sZGJyYXhub2FtcCwgbm90IFxmdW5jdGlvbnBhcmVucywgc28gdGhhdCAmIGlzIG5vdCBzcGVjaWFsLgogXGJvbGRicmF4bm9hbXAKIFx0Y2xvc2V7IzF9JSBhdm9pZCBcY29kZSBiZWNhdXNlIG9mIHNpZGUgZWZmZWN0cyBvbiBhY3RpdmUgY2hhcnMKLVxpbnRlcmxpbmVwZW5hbHR5PTEwMDAwCi1cYWR2YW5jZVxyaWdodHNraXAgYnkgMHB0IHBsdXMgMWZpbAotXGVuZGdyYWZcbm9icmVha1x2c2tpcCAtXHBhcnNraXBcbm9icmVhaworICBcZGVmYXJnc2NvbW1vbmVuZGluZwogfQogCiAlIERvIGNvbXBsZXRlIHByb2Nlc3Npbmcgb2Ygb25lIEBkZWZ1biBvciBAZGVmdW54IGxpbmUgYWxyZWFkeSBwYXJzZWQuCkBAIC00NTkyLDcgKzUyMjMsNyBAQAogCiBcZGVmXGRlZmZuaGVhZGVyICMxIzIjM3tcZG9pbmQge2ZufXtcY29kZXsjMn19JQogXGJlZ2luZ3JvdXBcZGVmbmFtZSB7IzJ9eyMxfVxkZWZ1bmFyZ3N7IzN9XGVuZGdyb3VwICUKLVxjYXRjb2RlIDYxPVxvdGhlciAlIFR1cm4gb2ZmIGNoYW5nZSBtYWRlIGluIFxkZWZwYXJzZWJvZHkKK1xjYXRjb2RlXGVxdWFsQ2hhcj1cb3RoZXIgJSBUdXJuIG9mZiBjaGFuZ2UgbWFkZSBpbiBcZGVmcGFyc2Vib2R5CiB9CiAKICUgQGRlZnVuID09IEBkZWZmbiBGdW5jdGlvbgpAQCAtNDYwMiw3ICs1MjMzLDcgQEAKIFxkZWZcZGVmdW5oZWFkZXIgIzEjMntcZG9pbmQge2ZufXtcY29kZXsjMX19JSBNYWtlIGVudHJ5IGluIGZ1bmN0aW9uIGluZGV4CiBcYmVnaW5ncm91cFxkZWZuYW1lIHsjMX17XHB1dHdvcmREZWZmdW5jfSUKIFxkZWZ1bmFyZ3MgeyMyfVxlbmRncm91cCAlCi1cY2F0Y29kZSA2MT1cb3RoZXIgJSBUdXJuIG9mZiBjaGFuZ2UgbWFkZSBpbiBcZGVmcGFyc2Vib2R5CitcY2F0Y29kZVxlcXVhbENoYXI9XG90aGVyICUgVHVybiBvZmYgY2hhbmdlIG1hZGUgaW4gXGRlZnBhcnNlYm9keQogfQogCiAlIEBkZWZ0eXBlZnVuIGludCBmb29iYXIgKGludCBAdmFye2Zvb30sIGZsb2F0IEB2YXJ7YmFyfSkKQEAgLTQ2MTQsMTggKzUyNDUsMTggQEAKICUgIzEgaXMgdGhlIGRhdGEgdHlwZSwgIzIgdGhlIG5hbWUsICMzIHRoZSBhcmdzLgogXGRlZlxkZWZ0eXBlZnVuaGVhZGVyeCAjMSMyICMzXHJlbGF4eyUKIFxkb2luZCB7Zm59e1xjb2RleyMyfX0lIE1ha2UgZW50cnkgaW4gZnVuY3Rpb24gaW5kZXgKLVxiZWdpbmdyb3VwXGRlZm5hbWUge1xkZWZoZWFkZXJ4Y29uZCMxXHJlbGF4JCQkIzJ9e1xwdXR3b3JkRGVmdHlwZWZ1bn0lCitcYmVnaW5ncm91cFxkZWZuYW1lIHtcZGVmaGVhZGVyeGNvbmQjMVxyZWxheCQuJCMyfXtccHV0d29yZERlZnR5cGVmdW59JQogXGRlZnR5cGVmdW5hcmdzIHsjM31cZW5kZ3JvdXAgJQotXGNhdGNvZGUgNjE9XG90aGVyICUgVHVybiBvZmYgY2hhbmdlIG1hZGUgaW4gXGRlZnBhcnNlYm9keQorXGNhdGNvZGVcZXF1YWxDaGFyPVxvdGhlciAlIFR1cm4gb2ZmIGNoYW5nZSBtYWRlIGluIFxkZWZwYXJzZWJvZHkKIH0KIAogJSBAZGVmdHlwZWZuIHtMaWJyYXJ5IEZ1bmN0aW9ufSBpbnQgZm9vYmFyIChpbnQgQHZhcntmb299LCBmbG9hdCBAdmFye2Jhcn0pCiAKIFxkZWZcZGVmdHlwZWZue1xkZWZtZXRocGFyc2Vib2R5XEVkZWZ0eXBlZm5cZGVmdHlwZWZueFxkZWZ0eXBlZm5oZWFkZXJ9CiAKLSUgXGRlZmhlYWRlcnhjb25kIzFccmVsYXgkJCQKKyUgXGRlZmhlYWRlcnhjb25kIzFccmVsYXgkLiQKICUgcHV0cyAjMSBpbiBAY29kZSwgZm9sbG93ZWQgYnkgYSBzcGFjZSwgYnV0IGRvZXMgbm90aGluZyBpZiAjMSBpcyBudWxsLgotXGRlZlxkZWZoZWFkZXJ4Y29uZCMxIzIkJCR7XGlmeCMxXHJlbGF4XGVsc2VcY29kZXsjMSMyfSBcZml9CitcZGVmXGRlZmhlYWRlcnhjb25kIzEjMiQuJHtcaWZ4IzFccmVsYXhcZWxzZVxjb2RleyMxIzJ9IFxmaX0KIAogJSAjMSBpcyB0aGUgY2xhc3NpZmljYXRpb24uICAjMiBpcyB0aGUgZGF0YSB0eXBlLiAgIzMgaXMgdGhlIG5hbWUgYW5kIGFyZ3MuCiBcZGVmXGRlZnR5cGVmbmhlYWRlciAjMSMyIzN7XGRlZnR5cGVmbmhlYWRlcnh7IzF9eyMyfSMzIFxyZWxheH0KQEAgLTQ2MzUsOSArNTI2Niw5IEBACiBcYmVnaW5ncm91cAogXG5vcm1hbHBhcmVucyAlIG5vdGFibHksIHR1cm4gb2ZmIGAmJyBtYWdpYywgd2hpY2ggcHJldmVudHMKICUgICAgICAgICAgICAgICBhdCBsZWFzdCBzb21lIEMrKyB0ZXh0IGZyb20gd29ya2luZwotXGRlZm5hbWUge1xkZWZoZWFkZXJ4Y29uZCMyXHJlbGF4JCQkIzN9eyMxfSUKK1xkZWZuYW1lIHtcZGVmaGVhZGVyeGNvbmQjMlxyZWxheCQuJCMzfXsjMX0lCiBcZGVmdHlwZWZ1bmFyZ3MgeyM0fVxlbmRncm91cCAlCi1cY2F0Y29kZSA2MT1cb3RoZXIgJSBUdXJuIG9mZiBjaGFuZ2UgbWFkZSBpbiBcZGVmcGFyc2Vib2R5CitcY2F0Y29kZVxlcXVhbENoYXI9XG90aGVyICUgVHVybiBvZmYgY2hhbmdlIG1hZGUgaW4gXGRlZnBhcnNlYm9keQogfQogCiAlIEBkZWZtYWMgPT0gQGRlZmZuIE1hY3JvCkBAIC00NjQ3LDcgKzUyNzgsNyBAQAogXGRlZlxkZWZtYWNoZWFkZXIgIzEjMntcZG9pbmQge2ZufXtcY29kZXsjMX19JSBNYWtlIGVudHJ5IGluIGZ1bmN0aW9uIGluZGV4CiBcYmVnaW5ncm91cFxkZWZuYW1lIHsjMX17XHB1dHdvcmREZWZtYWN9JQogXGRlZnVuYXJncyB7IzJ9XGVuZGdyb3VwICUKLVxjYXRjb2RlIDYxPVxvdGhlciAlIFR1cm4gb2ZmIGNoYW5nZSBtYWRlIGluIFxkZWZwYXJzZWJvZHkKK1xjYXRjb2RlXGVxdWFsQ2hhcj1cb3RoZXIgJSBUdXJuIG9mZiBjaGFuZ2UgbWFkZSBpbiBcZGVmcGFyc2Vib2R5CiB9CiAKICUgQGRlZnNwZWMgPT0gQGRlZmZuIFNwZWNpYWwgRm9ybQpAQCAtNDY1Nyw3ICs1Mjg4LDcgQEAKIFxkZWZcZGVmc3BlY2hlYWRlciAjMSMye1xkb2luZCB7Zm59e1xjb2RleyMxfX0lIE1ha2UgZW50cnkgaW4gZnVuY3Rpb24gaW5kZXgKIFxiZWdpbmdyb3VwXGRlZm5hbWUgeyMxfXtccHV0d29yZERlZnNwZWN9JQogXGRlZnVuYXJncyB7IzJ9XGVuZGdyb3VwICUKLVxjYXRjb2RlIDYxPVxvdGhlciAlIFR1cm4gb2ZmIGNoYW5nZSBtYWRlIGluIFxkZWZwYXJzZWJvZHkKK1xjYXRjb2RlXGVxdWFsQ2hhcj1cb3RoZXIgJSBUdXJuIG9mZiBjaGFuZ2UgbWFkZSBpbiBcZGVmcGFyc2Vib2R5CiB9CiAKICUgQGRlZm9wIENBVEVHT1JZIENMQVNTIE9QRVJBVElPTiBBUkcuLi4KQEAgLTQ2NjYsOSArNTI5NywxMSBAQAogXGRlZm9wcGFyc2Vib2R5XEVkZWZvcFxkZWZvcHhcZGVmb3BoZWFkZXJcZGVmb3B0eXBlfQogJQogXGRlZlxkZWZvcGhlYWRlciMxIzIjM3slCi1cZG9zdWJpbmQge2ZufXtcY29kZXsjMn19e1xwdXR3b3Jkb25cICMxfSUgTWFrZSBlbnRyeSBpbiBmdW5jdGlvbiBpbmRleAotXGJlZ2luZ3JvdXBcZGVmbmFtZSB7IzJ9e1xkZWZvcHR5cGVcIFxwdXR3b3Jkb25cICMxfSUKLVxkZWZ1bmFyZ3MgeyMzfVxlbmRncm91cCAlCisgIFxkb3N1YmluZHtmbn17XGNvZGV7IzJ9fXtccHV0d29yZG9uXCBcY29kZXsjMX19JSBmdW5jdGlvbiBpbmRleCBlbnRyeQorICBcYmVnaW5ncm91cAorICAgIFxkZWZuYW1leyMyfXtcZGVmb3B0eXBlXCBccHV0d29yZG9uXCAjMX0lCisgICAgXGRlZnVuYXJnc3sjM30lCisgIFxlbmRncm91cAogfQogCiAlIEBkZWZ0eXBlb3AgQ0FURUdPUlkgQ0xBU1MgVFlQRSBPUEVSQVRJT04gQVJHLi4uCkBAIC00NjgxLDcgKzUzMTQsNyBAQAogXGRlZlxkZWZ0eXBlb3BoZWFkZXIjMSMyIzMjNHslCiAgIFxkb3N1YmluZHtmbn17XGNvZGV7IzN9fXtccHV0d29yZG9uXCBcY29kZXsjMX19JSBlbnRyeSBpbiBmdW5jdGlvbiBpbmRleAogICBcYmVnaW5ncm91cAotICAgIFxkZWZuYW1le1xkZWZoZWFkZXJ4Y29uZCMyXHJlbGF4JCQkIzN9CisgICAgXGRlZm5hbWV7XGRlZmhlYWRlcnhjb25kIzJccmVsYXgkLiQjM30KICAgICAgICAgICAgIHtcZGVmdHlwZW9wY2F0ZWdvcnlcIFxwdXR3b3Jkb25cIFxjb2RleyMxfX0lCiAgICAgXGRlZnR5cGVmdW5hcmdzeyM0fSUKICAgXGVuZGdyb3VwCkBAIC00Njk2LDcgKzUzMjksNyBAQAogXGRlZlxkZWZ0eXBlbWV0aG9kaGVhZGVyIzEjMiMzIzR7JQogICBcZG9zdWJpbmR7Zm59e1xjb2RleyMzfX17XHB1dHdvcmRvblwgXGNvZGV7IzF9fSUgZW50cnkgaW4gZnVuY3Rpb24gaW5kZXgKICAgXGJlZ2luZ3JvdXAKLSAgICBcZGVmbmFtZXtcZGVmaGVhZGVyeGNvbmQjMlxyZWxheCQkJCMzfXtccHV0d29yZE1ldGhvZG9uXCBcY29kZXsjMX19JQorICAgIFxkZWZuYW1le1xkZWZoZWFkZXJ4Y29uZCMyXHJlbGF4JC4kIzN9e1xwdXR3b3JkTWV0aG9kb25cIFxjb2RleyMxfX0lCiAgICAgXGRlZnR5cGVmdW5hcmdzeyM0fSUKICAgXGVuZGdyb3VwCiB9CkBAIC00NzEwLDcgKzUzNDMsOCBAQAogXGRlZlxkZWZ0eXBlaXZhcmhlYWRlciMxIzIjM3slCiAgIFxkb3N1YmluZHt2cn17XGNvZGV7IzN9fXtccHV0d29yZG9mXCBcY29kZXsjMX19JSBlbnRyeSBpbiB2YXJpYWJsZSBpbmRleAogICBcYmVnaW5ncm91cAotICAgIFxkZWZuYW1leyMzfXtccHV0d29yZEluc3RhbmNlVmFyaWFibGVvZlwgXGNvZGV7IzF9fSUKKyAgICBcZGVmbmFtZXtcZGVmaGVhZGVyeGNvbmQjMlxyZWxheCQuJCMzfQorICAgICAgICAgICAge1xwdXR3b3JkSW5zdGFuY2VWYXJpYWJsZW9mXCBcY29kZXsjMX19JQogICAgIFxkZWZ2YXJhcmdzeyMzfSUKICAgXGVuZGdyb3VwCiB9CkBAIC00NzM0LDkgKzUzNjgsMTEgQEAKIFxkZWZvcHZhcnBhcnNlYm9keVxFZGVmY3ZcZGVmY3Z4XGRlZmN2YXJoZWFkZXJcZGVmY3Z0eXBlfQogCiBcZGVmXGRlZmN2YXJoZWFkZXIgIzEjMiMzeyUKLVxkb3N1YmluZCB7dnJ9e1xjb2RleyMyfX17XHB1dHdvcmRvZlwgIzF9JSBNYWtlIGVudHJ5IGluIHZhciBpbmRleAotXGJlZ2luZ3JvdXBcZGVmbmFtZSB7IzJ9e1xkZWZjdnR5cGVcIFxwdXR3b3Jkb2ZcICMxfSUKLVxkZWZ2YXJhcmdzIHsjM31cZW5kZ3JvdXAgJQorICBcZG9zdWJpbmR7dnJ9e1xjb2RleyMyfX17XHB1dHdvcmRvZlwgXGNvZGV7IzF9fSUgdmFyaWFibGUgaW5kZXggZW50cnkKKyAgXGJlZ2luZ3JvdXAKKyAgICBcZGVmbmFtZXsjMn17XGRlZmN2dHlwZVwgXHB1dHdvcmRvZlwgIzF9JQorICAgIFxkZWZ2YXJhcmdzeyMzfSUKKyAgXGVuZGdyb3VwCiB9CiAKICUgQGRlZml2YXIgQ0xBU1MgVkFSTkFNRSA9PSBAZGVmY3Yge0luc3RhbmNlIFZhcmlhYmxlfSBDTEFTUyBWQVJOQU1FCkBAIC00NzQ0LDcgKzUzODAsNyBAQAogXGRlZlxkZWZpdmFye1xkZWZ2cnBhcnNlYm9keVxFZGVmaXZhclxkZWZpdmFyeFxkZWZpdmFyaGVhZGVyfQogJQogXGRlZlxkZWZpdmFyaGVhZGVyIzEjMiMzeyUKLSAgXGRvc3ViaW5kIHt2cn17XGNvZGV7IzJ9fXtccHV0d29yZG9mXCAjMX0lIGVudHJ5IGluIHZhciBpbmRleAorICBcZG9zdWJpbmR7dnJ9e1xjb2RleyMyfX17XHB1dHdvcmRvZlwgXGNvZGV7IzF9fSUgZW50cnkgaW4gdmFyIGluZGV4CiAgIFxiZWdpbmdyb3VwCiAgICAgXGRlZm5hbWV7IzJ9e1xwdXR3b3JkSW5zdGFuY2VWYXJpYWJsZW9mXCAjMX0lCiAgICAgXGRlZnZhcmFyZ3N7IzN9JQpAQCAtNDc1Niw4ICs1MzkyLDggQEAKICUgVGhpcyBpcyBhY3R1YWxseSBzaW1wbGU6IGp1c3QgcHJpbnQgdGhlbSBpbiByb21hbi4KICUgVGhpcyBtdXN0IGV4cGFuZCB0aGUgYXJncyBhbmQgdGVybWluYXRlIHRoZSBwYXJhZ3JhcGggdGhleSBtYWtlIHVwCiBcZGVmXGRlZnZhcmFyZ3MgIzF7XG5vcm1hbHBhcmVucyAjMSUKLVxpbnRlcmxpbmVwZW5hbHR5PTEwMDAwCi1cZW5kZ3JhZlxub2JyZWFrXHZza2lwIC1ccGFyc2tpcFxub2JyZWFrfQorICBcZGVmYXJnc2NvbW1vbmVuZGluZworfQogCiAlIEBkZWZ2ciBDb3VudGVyIGZvby1jb3VudAogCkBAIC00NzkyLDkgKzU0MjgsOCBAQAogJSBpcyBhY3R1YWxseSBwYXJ0IG9mIHRoZSBkYXRhIHR5cGUsIHdoaWNoIHNob3VsZCBub3QgYmUgcHV0IGludG8gdGhlIGluZGV4LgogXGRlZlxkZWZ0eXBldmFyaGVhZGVyICMxIzJ7JQogXGRvdmFyaW5kIzIgXHJlbGF4JSBNYWtlIGVudHJ5IGluIHZhcmlhYmxlcyBpbmRleAotXGJlZ2luZ3JvdXBcZGVmbmFtZSB7XGRlZmhlYWRlcnhjb25kIzFccmVsYXgkJCQjMn17XHB1dHdvcmREZWZ0eXBldmFyfSUKLVxpbnRlcmxpbmVwZW5hbHR5PTEwMDAwCi1cZW5kZ3JhZlxub2JyZWFrXHZza2lwIC1ccGFyc2tpcFxub2JyZWFrCitcYmVnaW5ncm91cFxkZWZuYW1lIHtcZGVmaGVhZGVyeGNvbmQjMVxyZWxheCQuJCMyfXtccHV0d29yZERlZnR5cGV2YXJ9JQorICBcZGVmYXJnc2NvbW1vbmVuZGluZwogXGVuZGdyb3VwfQogXGRlZlxkb3ZhcmluZCMxICMyXHJlbGF4e1xkb2luZHt2cn17XGNvZGV7IzF9fX0KIApAQCAtNDgwMyw5ICs1NDM4LDggQEAKIFxkZWZcZGVmdHlwZXZye1xkZWZ2cnBhcnNlYm9keVxFZGVmdHlwZXZyXGRlZnR5cGV2cnhcZGVmdHlwZXZyaGVhZGVyfQogCiBcZGVmXGRlZnR5cGV2cmhlYWRlciAjMSMyIzN7XGRvdmFyaW5kIzMgXHJlbGF4JQotXGJlZ2luZ3JvdXBcZGVmbmFtZSB7XGRlZmhlYWRlcnhjb25kIzJccmVsYXgkJCQjM317IzF9Ci1caW50ZXJsaW5lcGVuYWx0eT0xMDAwMAotXGVuZGdyYWZcbm9icmVha1x2c2tpcCAtXHBhcnNraXBcbm9icmVhaworXGJlZ2luZ3JvdXBcZGVmbmFtZSB7XGRlZmhlYWRlcnhjb25kIzJccmVsYXgkLiQjM317IzF9CisgIFxkZWZhcmdzY29tbW9uZW5kaW5nCiBcZW5kZ3JvdXB9CiAKICUgTm93IGRlZmluZSBAZGVmdHAKQEAgLTQ4NTQsNyArNTQ4OCw3IEBACiAgXGRlZlxzY2FubWFjcm8jMXslCiAgICBcYmVnaW5ncm91cCBcbmV3bGluZWNoYXJgXF5eTQogICAgJSBVbmRvIGNhdGNvZGUgY2hhbmdlcyBvZiBcc3RhcnRjb250ZW50cyBhbmQgXGRvcHJpbnRpbmRleAotICAgXGNhdGNvZGVgXEA9MCBcY2F0Y29kZWBcXD0xMiBcZXNjYXBlY2hhcj1gXEAKKyAgIFxjYXRjb2RlYFxAPTAgXGNhdGNvZGVgXFw9XG90aGVyIFxlc2NhcGVjaGFyPWBcQAogICAgJSBBcHBlbmQgXGVuZGlucHV0IHRvIG1ha2Ugc3VyZSB0aGF0IFRlWCBkb2VzIG5vdCBzZWUgdGhlIGVuZGluZyBuZXdsaW5lLgogICAgXHRva3MwPXsjMVxlbmRpbnB1dH0lCiAgICBcaW1tZWRpYXRlXG9wZW5vdXRcbWFjc2NyaWJibGU9XGpvYm5hbWUudG1wCkBAIC00ODY4LDcgKzU1MDIsNyBAQAogXGRlZlxzY2FubWFjcm8jMXslCiBcYmVnaW5ncm91cCBcbmV3bGluZWNoYXJgXF5eTQogJSBVbmRvIGNhdGNvZGUgY2hhbmdlcyBvZiBcc3RhcnRjb250ZW50cyBhbmQgXGRvcHJpbnRpbmRleAotXGNhdGNvZGVgXEA9MCBcY2F0Y29kZWBcXD0xMiBcZXNjYXBlY2hhcj1gXEAKK1xjYXRjb2RlYFxAPTAgXGNhdGNvZGVgXFw9XG90aGVyIFxlc2NhcGVjaGFyPWBcQAogXGxldFx4ZWF0c3BhY2VzXGVhdHNwYWNlc1xzY2FudG9rZW5zeyMxXGVuZGlucHV0fVxlbmRncm91cH0KIFxmaQogCkBAIC00ODk4LDcgKzU1MzIsNyBAQAogfQogCiAlIFRyaW0gYSBzaW5nbGUgdHJhaWxpbmcgXl5NIG9mZiBhIHN0cmluZy4KLXtcY2F0Y29kZWBcXl5NPTEyXGNhdGNvZGVgXFE9MyUKK3tcY2F0Y29kZWBcXl5NPVxvdGhlciBcY2F0Y29kZWBcUT0zJQogXGdkZWZcZWF0Y3IgIzF7XGVhdGNyYSAjMVFeXk1RfSUKIFxnZGVmXGVhdGNyYSMxXl5NUXtcZWF0Y3JiIzFRfSUKIFxnZGVmXGVhdGNyYiMxUSMyUXsjMX0lCkBAIC00OTEzLDI5ICs1NTQ3LDI5IEBACiAlIGJvZHksIGFuZCB0aGVuIG1ha2luZyBpdCB0aGUgXG5ld2xpbmVjaGFyIGluIFxzY2FubWFjcm8uCiAKIFxkZWZcbWFjcm9ib2R5Y3R4dHslCi0gIFxjYXRjb2RlYFx+PTEyCi0gIFxjYXRjb2RlYFxePTEyCi0gIFxjYXRjb2RlYFxfPTEyCi0gIFxjYXRjb2RlYFx8PTEyCi0gIFxjYXRjb2RlYFw8PTEyCi0gIFxjYXRjb2RlYFw+PTEyCi0gIFxjYXRjb2RlYFwrPTEyCi0gIFxjYXRjb2RlYFx7PTEyCi0gIFxjYXRjb2RlYFx9PTEyCi0gIFxjYXRjb2RlYFxAPTEyCi0gIFxjYXRjb2RlYFxeXk09MTIKKyAgXGNhdGNvZGVgXH49XG90aGVyCisgIFxjYXRjb2RlYFxePVxvdGhlcgorICBcY2F0Y29kZWBcXz1cb3RoZXIKKyAgXGNhdGNvZGVgXHw9XG90aGVyCisgIFxjYXRjb2RlYFw8PVxvdGhlcgorICBcY2F0Y29kZWBcPj1cb3RoZXIKKyAgXGNhdGNvZGVgXCs9XG90aGVyCisgIFxjYXRjb2RlYFx7PVxvdGhlcgorICBcY2F0Y29kZWBcfT1cb3RoZXIKKyAgXGNhdGNvZGVgXEA9XG90aGVyCisgIFxjYXRjb2RlYFxeXk09XG90aGVyCiAgIFx1c2VtYm9keWJhY2tzbGFzaH0KIAogXGRlZlxtYWNyb2FyZ2N0eHR7JQotICBcY2F0Y29kZWBcfj0xMgotICBcY2F0Y29kZWBcXj0xMgotICBcY2F0Y29kZWBcXz0xMgotICBcY2F0Y29kZWBcfD0xMgotICBcY2F0Y29kZWBcPD0xMgotICBcY2F0Y29kZWBcPj0xMgotICBcY2F0Y29kZWBcKz0xMgotICBcY2F0Y29kZWBcQD0xMgotICBcY2F0Y29kZWBcXD0xMn0KKyAgXGNhdGNvZGVgXH49XG90aGVyCisgIFxjYXRjb2RlYFxePVxvdGhlcgorICBcY2F0Y29kZWBcXz1cb3RoZXIKKyAgXGNhdGNvZGVgXHw9XG90aGVyCisgIFxjYXRjb2RlYFw8PVxvdGhlcgorICBcY2F0Y29kZWBcPj1cb3RoZXIKKyAgXGNhdGNvZGVgXCs9XG90aGVyCisgIFxjYXRjb2RlYFxAPVxvdGhlcgorICBcY2F0Y29kZWBcXD1cb3RoZXJ9CiAKICUgXG1ib2R5YmFja3NsYXNoIGlzIHRoZSBkZWZpbml0aW9uIG9mIFwgaW4gQG1hY3JvIGJvZGllcy4KICUgSXQgbWFwcyBcZm9vXCA9PiBcY3NuYW1lIG1hY2FyZy5mb29cZW5kY3NuYW1lID0+ICNOCkBAIC00OTYzLDcgKzU1OTcsNyBAQAogICAgICBcbWVzc2FnZXtXYXJuaW5nOiByZWRlZmluaW5nIFx0aGVcbWFjbmFtZX0lCiAgIFxlbHNlCiAgICAgIFxleHBhbmRhZnRlclxpZnhcY3NuYW1lIFx0aGVcbWFjbmFtZVxlbmRjc25hbWUgXHJlbGF4Ci0gICAgIFxlbHNlIFxlcnJtZXNzYWdle1RoZSBuYW1lIFx0aGVcbWFjbmFtZVxzcGFjZSBpcyByZXNlcnZlZH1cZmkKKyAgICAgXGVsc2UgXGVycm1lc3NhZ2V7TWFjcm8gbmFtZSBcdGhlXG1hY25hbWVcc3BhY2UgYWxyZWFkeSBkZWZpbmVkfVxmaQogICAgICBcZ2xvYmFsXGNzbGV0e21hY3NhdmUuXHRoZVxtYWNuYW1lfXtcdGhlXG1hY25hbWV9JQogICAgICBcZ2xvYmFsXGV4cGFuZGFmdGVyXGxldFxjc25hbWUgaXNtYWNyby5cdGhlXG1hY25hbWVcZW5kY3NuYW1lPTElCiAgICAgICUgQWRkIHRoZSBtYWNyb25hbWUgdG8gXG1hY3JvbGlzdApAQCAtNDk3NiwzMiArNTYxMCwzMyBAQAogICBcZWxzZSBcZXhwYW5kYWZ0ZXJccGFyc2VtYWNib2R5CiAgIFxmaX0KIAotXGRlZlx1bm1hY3Jve1xwYXJzZWFyZ1x1bm1hY3JveHh4fQotXGRlZlx1bm1hY3JveHh4IzF7JQorXGRlZlx1bm1hY3Jve1xwYXJzZWFyZ1xkb3VubWFjcm99CitcZGVmXGRvdW5tYWNybyMxeyUKICAgXGlmMVxjc25hbWUgaXNtYWNyby4jMVxlbmRjc25hbWUKICAgICBcZ2xvYmFsXGNzbGV0eyMxfXttYWNzYXZlLiMxfSUKICAgICBcZ2xvYmFsXGV4cGFuZGFmdGVyXGxldCBcY3NuYW1lIGlzbWFjcm8uIzFcZW5kY3NuYW1lPTAlCi0gICAgJSBSZW1vdmUgdGhlIG1hY3JvIG5hbWUgZnJvbSBcbWFjcm9saXN0CisgICAgJSBSZW1vdmUgdGhlIG1hY3JvIG5hbWUgZnJvbSBcbWFjcm9saXN0OgogICAgIFxiZWdpbmdyb3VwCi0gICAgICBcZWRlZlx0ZW1wYXtcZXhwYW5kYWZ0ZXJcbm9leHBhbmRcY3NuYW1lIzFcZW5kY3NuYW1lfSUKLSAgICAgIFxkZWZcZG8jIzF7JQotICAgICAgICBcZGVmXHRlbXBieyMjMX0lCi0gICAgICAgIFxpZnhcdGVtcGFcdGVtcGIKLSAgICAgICAgICAlIHJlbW92ZSB0aGlzCi0gICAgICAgIFxlbHNlCi0gICAgICAgICAgXHRva3MwID0gXGV4cGFuZGFmdGVye1xuZXdtYWNyb2xpc3RcZG99JQotICAgICAgICAgIFxlZGVmXG5ld21hY3JvbGlzdHtcdGhlXHRva3MwXGV4cGFuZGFmdGVyXG5vZXhwYW5kXHRlbXBhfSUKLSAgICAgICAgXGZpfSUKLSAgICAgIFxkZWZcbmV3bWFjcm9saXN0e30lCi0gICAgICAlIEV4ZWN1dGUgbWFjcm8gbGlzdCB0byBkZWZpbmUgXG5ld21hY3JvbGlzdAotICAgICAgXG1hY3JvbGlzdAotICAgICAgXGdsb2JhbFxsZXRcbWFjcm9saXN0XG5ld21hY3JvbGlzdAorICAgICAgXGV4cGFuZGFmdGVyXGxldFxjc25hbWUjMVxlbmRjc25hbWUgXHJlbGF4CisgICAgICBcbGV0XGRvXHVubWFjcm9kbworICAgICAgXHhkZWZcbWFjcm9saXN0e1xtYWNyb2xpc3R9JQogICAgIFxlbmRncm91cAogICBcZWxzZQogICAgIFxlcnJtZXNzYWdle01hY3JvICMxIG5vdCBkZWZpbmVkfSUKICAgXGZpCiB9CiAKKyUgQ2FsbGVkIGJ5IFxkbyBmcm9tIFxkb3VubWFjcm8gb24gZWFjaCBtYWNyby4gIFRoZSBpZGVhIGlzIHRvIG9taXQgYW55CislIG1hY3JvIGRlZmluaXRpb25zIHRoYXQgaGF2ZSBiZWVuIGNoYW5nZWQgdG8gXHJlbGF4LgorJSAKK1xkZWZcdW5tYWNyb2RvIzF7JQorICBcaWZ4IzFccmVsYXgKKyAgICAlIHJlbW92ZSB0aGlzCisgIFxlbHNlCisgICAgXG5vZXhwYW5kXGRvIFxub2V4cGFuZCAjMSUKKyAgXGZpCit9CisKICUgVGhpcyBtYWtlcyB1c2Ugb2YgdGhlIG9ic2N1cmUgZmVhdHVyZSB0aGF0IGlmIHRoZSBsYXN0IHRva2VuIG9mIGEKICUgPHBhcmFtZXRlciBsaXN0PiBpcyAjLCB0aGVuIHRoZSBwcmVjZWRpbmcgYXJndW1lbnQgaXMgZGVsaW1pdGVkIGJ5CiAlIGFuIG9wZW5pbmcgYnJhY2UsIGFuZCB0aGF0IG9wZW5pbmcgYnJhY2UgaXMgbm90IGNvbnN1bWVkLgpAQCAtNTE4NCwxNSArNTgxOSwyMyBAQAogXGdkZWZccmVzdG9yZXNme1xyZWxheCBcaWZobW9kZSBcc3BhY2VmYWN0b3I9XHNhdmVzZnJlZ2lzdGVyIFxmaX0KIFxnZGVmXGFuY2hvciMxe1xzYXZlc2YgXHNldHJlZnsjMX17WW5vdGhpbmd9XHJlc3RvcmVzZiBcaWdub3Jlc3BhY2VzfQogCi0lIFxzZXRyZWZ7TkFNRX17U05UfSBkZWZpbmVzIGEgY3Jvc3MtcmVmZXJlbmNlIHBvaW50IE5BTUUsIG5hbWVseQotJSBOQU1FLXRpdGxlLCBOQU1FLXBnLCBhbmQgTkFNRS1TTlQuICBDYWxsZWQgZnJvbSBcZm9vbm9kZXJlZi4gIFdlIGhhdmUKLSUgdG8gc2V0IFxpbmRleGR1bW1pZXMgc28gY29tbWFuZHMgc3VjaCBhcyBAY29kZSBpbiBhIHNlY3Rpb24gdGl0bGUKLSUgYXJlbid0IGV4cGFuZGVkLiAgSXQgd291bGQgYmUgbmljZXIgbm90IHRvIGV4cGFuZCB0aGUgdGl0bGVzIGluIHRoZQotJSBmaXJzdCBwbGFjZSwgYnV0IHRoZXJlJ3Mgc28gbWFueSBsYXllcnMgdGhhdCB0aGF0IGlzIGhhcmQgdG8gZG8uCislIFxzZXRyZWZ7TkFNRX17U05UfSBkZWZpbmVzIGEgY3Jvc3MtcmVmZXJlbmNlIHBvaW50IE5BTUUgKGEgbm9kZSBvciBhbgorJSBhbmNob3IpLCBuYW1lbHkgTkFNRS10aXRsZSAodGhlIGNvcnJlc3BvbmRpbmcgQGNoYXB0ZXIvZXRjLiBuYW1lKSwKKyUgTkFNRS1wZyAodGhlIHBhZ2UgbnVtYmVyKSwgYW5kIE5BTUUtc250IChzZWN0aW9uIG51bWJlciBhbmQgdHlwZSkuCislIENhbGxlZCBmcm9tIFxmb29ub2RlcmVmLgorJSAKKyUgV2UgaGF2ZSB0byBzZXQgXGluZGV4ZHVtbWllcyBzbyBjb21tYW5kcyBzdWNoIGFzIEBjb2RlIGluIGEgc2VjdGlvbgorJSB0aXRsZSBhcmVuJ3QgZXhwYW5kZWQuICBJdCB3b3VsZCBiZSBuaWNlciBub3QgdG8gZXhwYW5kIHRoZSB0aXRsZXMgaW4KKyUgdGhlIGZpcnN0IHBsYWNlLCBidXQgdGhlcmUncyBzbyBtYW55IGxheWVycyB0aGF0IHRoYXQgaXMgaGFyZCB0byBkby4KICUKKyUgTGlrZXdpc2UsIHVzZSBcdHVybm9mZmFjdGl2ZSBzbyB0aGF0IHB1bmN0dWF0aW9uIGNoYXJzIHN1Y2ggYXMgdW5kZXJzY29yZQorJSBhbmQgYmFja3NsYXNoIHdvcmsgaW4gbm9kZSBuYW1lcy4KKyUgCiBcZGVmXHNldHJlZiMxIzJ7eyUKLSAgXGluZGV4ZHVtbWllcworICBcYXRkdW1taWVzCiAgIFxwZGZta2Rlc3R7IzF9JQorICAlCisgIFx0dXJub2ZmYWN0aXZlCiAgIFxkb3NldHF7IzEtdGl0bGV9e1l0aXRsZX0lCiAgIFxkb3NldHF7IzEtcGd9e1lwYWdlbnVtYmVyfSUKICAgXGRvc2V0cXsjMS1zbnR9eyMyfSUKQEAgLTUyNDQsMTMgKzU4ODcsMTUgQEAKICAgXGlmcGRmCiAgICAgXGxlYXZldm1vZGUKICAgICBcZ2V0ZmlsZW5hbWV7IzR9JQotICAgIFxpZm51bVxmaWxlbmFtZWxlbmd0aD4wCi0gICAgICBcc3RhcnRsaW5rIGF0dHJ7L0JvcmRlciBbMCAwIDBdfSUKLSAgICAgICAgZ290byBmaWxle1x0aGVcZmlsZW5hbWUucGRmfSBuYW1leyMxQH0lCi0gICAgXGVsc2UKLSAgICAgIFxzdGFydGxpbmsgYXR0cnsvQm9yZGVyIFswIDAgMF19JQotICAgICAgICBnb3RvIG5hbWV7IzFAfSUKLSAgICBcZmkKKyAgICB7XHR1cm5vZmZhY3RpdmUgXG90aGVyYmFja3NsYXNoCisgICAgIFxpZm51bVxmaWxlbmFtZWxlbmd0aD4wCisgICAgICAgXHN0YXJ0bGluayBhdHRyey9Cb3JkZXIgWzAgMCAwXX0lCisgICAgICAgICBnb3RvIGZpbGV7XHRoZVxmaWxlbmFtZS5wZGZ9IG5hbWV7IzF9JQorICAgICBcZWxzZQorICAgICAgIFxzdGFydGxpbmsgYXR0cnsvQm9yZGVyIFswIDAgMF19JQorICAgICAgICAgZ290byBuYW1leyMxfSUKKyAgICAgXGZpCisgICAgfSUKICAgICBcbGlua2NvbG9yCiAgIFxmaQogICAlCkBAIC01MjYyLDcgKzU5MDcsNyBAQAogICAgICUgaW50byB0aGUgdXN1YWwgXGxlYXZldm1vZGUuLi5cdnJ1bGUgc3R1ZmYgZm9yIHB1cnBvc2VzIG9mCiAgICAgJSBwcmludGluZy4gU28gd2UgXHR1cm5vZmZhY3RpdmUgZm9yIHRoZSBccmVmeC1zbnQsIGJhY2sgb24gZm9yIHRoZQogICAgICUgcHJpbnRpbmcsIGJhY2sgb2ZmIGZvciB0aGUgXHJlZngtcGcuCi0gICAge1xub3JtYWx0dXJub2ZmYWN0aXZlCisgICAge1x0dXJub2ZmYWN0aXZlIFxvdGhlcmJhY2tzbGFzaAogICAgICAlIE9ubHkgb3V0cHV0IGEgZm9sbG93aW5nIHNwYWNlIGlmIHRoZSAtc250IHJlZiBpcyBub25lbXB0eTsgZm9yCiAgICAgICUgQHVubnVtYmVyZWQgYW5kIEBhbmNob3IsIGl0IHdvbid0IGJlLgogICAgICBcc2V0Ym94MiA9IFxoYm94e1xpZ25vcmVzcGFjZXMgXHJlZnh7IzEtc250fXt9fSUKQEAgLTUyNzEsNzMgKzU5MTYsNzQgQEAKICAgICAlIFtteW5vZGVdLAogICAgIFtccHJpbnRlZG5vZGVuYW1lXSxcc3BhY2UKICAgICAlIHBhZ2UgMwotICAgIFx0dXJub2ZmYWN0aXZlIFxwdXR3b3JkcGFnZVx0aWVccmVmeHsjMS1wZ317fSUKKyAgICBcdHVybm9mZmFjdGl2ZSBcb3RoZXJiYWNrc2xhc2ggXHB1dHdvcmRwYWdlXHRpZVxyZWZ4eyMxLXBnfXt9JQogICBcZmkKICAgXGVuZGxpbmsKIFxlbmRncm91cH0KIAotJSBcZG9zZXRxIGlzIHRoZSBpbnRlcmZhY2UgZm9yIGNhbGxzIGZyb20gb3RoZXIgbWFjcm9zCi0KLSUgVXNlIFxub3JtYWx0dXJub2ZmYWN0aXZlIHNvIHRoYXQgcHVuY3R1YXRpb24gY2hhcnMgc3VjaCBhcyB1bmRlcnNjb3JlCi0lIGFuZCBiYWNrc2xhc2ggd29yayBpbiBub2RlIG5hbWVzLiAgKFx0dXJub2ZmYWN0aXZlIGRvZXNuJ3QgZG8gXC4pCislIFxkb3NldHEgaXMgY2FsbGVkIGZyb20gXHNldHJlZiB0byBkbyB0aGUgYWN0dWFsIFx3cml0ZSAoXGlmbGlua3MpLgorJQogXGRlZlxkb3NldHEjMSMyeyUKICAge1xsZXRcZm9saW89MCUKLSAgIFxub3JtYWx0dXJub2ZmYWN0aXZlCiAgICBcZWRlZlxuZXh0e1x3cml0ZVxhdXhmaWxle1xpbnRlcm5hbHNldHF7IzF9eyMyfX19JQotICAgXGlmbGlua3MKLSAgICAgXG5leHQKLSAgIFxmaQorICAgXGlmbGlua3MgXG5leHQgXGZpCiAgIH0lCiB9CiAKLSUgXGludGVybmFsc2V0cSB7Zm9vfXtwYWdlfSBleHBhbmRzIGludG8KLSUgQ0hBUkFDVEVSUyAneHJkZWYge2Zvb317Li4uZXhwYW5zaW9uIG9mIFxZcGFnZS4uLn0KLSUgV2hlbiB0aGUgYXV4IGZpbGUgaXMgcmVhZCwgJyBpcyB0aGUgZXNjYXBlIGNoYXJhY3RlcgorJSBcaW50ZXJuYWxzZXRxe2Zvb317cGFnZX0gZXhwYW5kcyBpbnRvCislICAgQ0hBUkFDVEVSUyBAeHJkZWZ7Zm9vfXsuLi5leHBhbnNpb24gb2YgXHBhZ2UuLi59CitcZGVmXGludGVybmFsc2V0cSMxIzJ7QHhyZGVmeyMxfXtcY3NuYW1lICMyXGVuZGNzbmFtZX19CiAKLVxkZWZcaW50ZXJuYWxzZXRxICMxIzJ7J3hyZGVmIHsjMX17XGNzbmFtZSAjMlxlbmRjc25hbWV9fQotCi0lIFRoaW5ncyB0byBiZSBleHBhbmRlZCBieSBcaW50ZXJuYWxzZXRxCi0KKyUgVGhpbmdzIHRvIGJlIGV4cGFuZGVkIGJ5IFxpbnRlcm5hbHNldHEuCislIAogXGRlZlxZcGFnZW51bWJlcntcZm9saW99Ci0KIFxkZWZcWXRpdGxle1x0aGlzc2VjdGlvbn0KLQogXGRlZlxZbm90aGluZ3t9Ci0KIFxkZWZcWXNlY3Rpb25udW1iZXJhbmR0eXBleyUKLVxpZm51bVxzZWNubz0wIFxwdXR3b3JkQ2hhcHRlclx4cmVmdGllXHRoZVxjaGFwbm8gJQotXGVsc2UgXGlmbnVtIFxzdWJzZWNubz0wIFxwdXR3b3JkU2VjdGlvblx4cmVmdGllXHRoZVxjaGFwbm8uXHRoZVxzZWNubyAlCi1cZWxzZSBcaWZudW0gXHN1YnN1YnNlY25vPTAgJQotXHB1dHdvcmRTZWN0aW9uXHhyZWZ0aWVcdGhlXGNoYXBuby5cdGhlXHNlY25vLlx0aGVcc3Vic2Vjbm8gJQotXGVsc2UgJQotXHB1dHdvcmRTZWN0aW9uXHhyZWZ0aWVcdGhlXGNoYXBuby5cdGhlXHNlY25vLlx0aGVcc3Vic2Vjbm8uXHRoZVxzdWJzdWJzZWNubyAlCi1cZmkgXGZpIFxmaSB9CisgIFxpZm51bVxzZWNubz0wCisgICAgXHB1dHdvcmRDaGFwdGVyQHRpZSBcdGhlXGNoYXBubworICBcZWxzZSBcaWZudW1cc3Vic2Vjbm89MAorICAgIFxwdXR3b3JkU2VjdGlvbkB0aWUgXHRoZVxjaGFwbm8uXHRoZVxzZWNubworICBcZWxzZSBcaWZudW1cc3Vic3Vic2Vjbm89MAorICAgIFxwdXR3b3JkU2VjdGlvbkB0aWUgXHRoZVxjaGFwbm8uXHRoZVxzZWNuby5cdGhlXHN1YnNlY25vCisgIFxlbHNlCisgICAgXHB1dHdvcmRTZWN0aW9uQHRpZSBcdGhlXGNoYXBuby5cdGhlXHNlY25vLlx0aGVcc3Vic2Vjbm8uXHRoZVxzdWJzdWJzZWNubworICBcZmlcZmlcZmkKK30KIAogXGRlZlxZYXBwZW5kaXhsZXR0ZXJhbmR0eXBleyUKLVxpZm51bVxzZWNubz0wIFxwdXR3b3JkQXBwZW5kaXhceHJlZnRpZSdjaGFyXHRoZVxhcHBlbmRpeG5ve30lCi1cZWxzZSBcaWZudW0gXHN1YnNlY25vPTAgXHB1dHdvcmRTZWN0aW9uXHhyZWZ0aWUnY2hhclx0aGVcYXBwZW5kaXhuby5cdGhlXHNlY25vICUKLVxlbHNlIFxpZm51bSBcc3Vic3Vic2Vjbm89MCAlCi1ccHV0d29yZFNlY3Rpb25ceHJlZnRpZSdjaGFyXHRoZVxhcHBlbmRpeG5vLlx0aGVcc2Vjbm8uXHRoZVxzdWJzZWNubyAlCi1cZWxzZSAlCi1ccHV0d29yZFNlY3Rpb25ceHJlZnRpZSdjaGFyXHRoZVxhcHBlbmRpeG5vLlx0aGVcc2Vjbm8uXHRoZVxzdWJzZWNuby5cdGhlXHN1YnN1YnNlY25vICUKLVxmaSBcZmkgXGZpIH0KLQotXGdkZWZceHJlZnRpZXsndGllfQorICBcaWZudW1cc2Vjbm89MAorICAgICBccHV0d29yZEFwcGVuZGl4QHRpZSBAY2hhclx0aGVcYXBwZW5kaXhub3t9JQorICBcZWxzZSBcaWZudW1cc3Vic2Vjbm89MAorICAgICBccHV0d29yZFNlY3Rpb25AdGllIEBjaGFyXHRoZVxhcHBlbmRpeG5vLlx0aGVcc2Vjbm8KKyAgXGVsc2UgXGlmbnVtXHN1YnN1YnNlY25vPTAKKyAgICBccHV0d29yZFNlY3Rpb25AdGllIEBjaGFyXHRoZVxhcHBlbmRpeG5vLlx0aGVcc2Vjbm8uXHRoZVxzdWJzZWNubworICBcZWxzZQorICAgIFxwdXR3b3JkU2VjdGlvbkB0aWUKKyAgICAgIEBjaGFyXHRoZVxhcHBlbmRpeG5vLlx0aGVcc2Vjbm8uXHRoZVxzdWJzZWNuby5cdGhlXHN1YnN1YnNlY25vCisgIFxmaVxmaVxmaQorfQogCiAlIFVzZSBUZVggMy4wJ3MgXGlucHV0bGluZW5vIHRvIGdldCB0aGUgbGluZSBudW1iZXIsIGZvciBiZXR0ZXIgZXJyb3IKICUgbWVzc2FnZXMsIGJ1dCBpZiB3ZSdyZSB1c2luZyBhbiBvbGQgdmVyc2lvbiBvZiBUZVgsIGRvbid0IGRvIGFueXRoaW5nLgogJQogXGlmeFxpbnB1dGxpbmVub1x0aGlzaXN1bmRlZmluZWQKLSAgXGxldFxsaW5lbnVtYmVyID0gXGVtcHR5ICUgTm9uLTMuMC4KKyAgXGxldFxsaW5lbnVtYmVyID0gXGVtcHR5ICUgUHJlLTMuMC4KIFxlbHNlCiAgIFxkZWZcbGluZW51bWJlcntcdGhlXGlucHV0bGluZW5vOlxzcGFjZX0KIFxmaQogCiAlIERlZmluZSBccmVmeHtOQU1FfXtTVUZGSVh9IHRvIHJlZmVyZW5jZSBhIGNyb3NzLXJlZmVyZW5jZSBzdHJpbmcgbmFtZWQgTkFNRS4KICUgSWYgaXRzIHZhbHVlIGlzIG5vbmVtcHR5LCBTVUZGSVggaXMgb3V0cHV0IGFmdGVyd2FyZC4KLQorJQogXGRlZlxyZWZ4IzEjMnslCi0gIFxleHBhbmRhZnRlclxpZnhcY3NuYW1lIFgjMVxlbmRjc25hbWVccmVsYXgKKyAgeyUKKyAgICBcaW5kZXhub2ZvbnRzCisgICAgXG90aGVyYmFja3NsYXNoCisgICAgXGV4cGFuZGFmdGVyXGdsb2JhbFxleHBhbmRhZnRlclxsZXRcZXhwYW5kYWZ0ZXJcdGhpc3JlZlgKKyAgICAgIFxjc25hbWUgWCMxXGVuZGNzbmFtZQorICB9JQorICBcaWZ4XHRoaXNyZWZYXHJlbGF4CiAgICAgJSBJZiBub3QgZGVmaW5lZCwgc2F5IHNvbWV0aGluZyBhdCBsZWFzdC4KICAgICBcYW5nbGVsZWZ0IHVuXC1kZVwtZmluZWRcYW5nbGVyaWdodAogICAgIFxpZmxpbmtzCkBAIC01MzUyLDE5ICs1OTk4LDE0IEBACiAgICAgXGZpCiAgIFxlbHNlCiAgICAgJSBJdCdzIGRlZmluZWQsIHNvIGp1c3QgdXNlIGl0LgotICAgIFxjc25hbWUgWCMxXGVuZGNzbmFtZQorICAgIFx0aGlzcmVmWAogICBcZmkKICAgIzIlIE91dHB1dCB0aGUgc3VmZml4IGluIGFueSBjYXNlLgogfQogCiAlIFRoaXMgaXMgdGhlIG1hY3JvIGludm9rZWQgYnkgZW50cmllcyBpbiB0aGUgYXV4IGZpbGUuCiAlCi1cZGVmXHhyZGVmIzF7XGJlZ2luZ3JvdXAKLSAgJSBSZWVuYWJsZSBcIGFzIGFuIGVzY2FwZSB3aGlsZSByZWFkaW5nIHRoZSBzZWNvbmQgYXJndW1lbnQuCi0gIFxjYXRjb2RlYFxcID0gMAotICBcYWZ0ZXJhc3NpZ25tZW50XGVuZGdyb3VwCi0gIFxleHBhbmRhZnRlclxnZGVmXGNzbmFtZSBYIzFcZW5kY3NuYW1lCi19CitcZGVmXHhyZGVmIzF7XGV4cGFuZGFmdGVyXGdkZWZcY3NuYW1lIFgjMVxlbmRjc25hbWV9CiAKICUgUmVhZCB0aGUgbGFzdCBleGlzdGluZyBhdXggZmlsZSwgaWYgYW55LiAgTm8gZXJyb3IgaWYgbm9uZSBleGlzdHMuCiBcZGVmXHJlYWRhdXhmaWxle1xiZWdpbmdyb3VwCkBAIC01Mzk1LDkgKzYwMzYsNyBAQAogICBcY2F0Y29kZWBcXl5dPVxvdGhlcgogICBcY2F0Y29kZWBcXl5ePVxvdGhlcgogICBcY2F0Y29kZWBcXl5fPVxvdGhlcgotICBcY2F0Y29kZWBcQD1cb3RoZXIKLSAgXGNhdGNvZGVgXF49XG90aGVyCi0gICUgSXQgd2FzIHN1Z2dlc3RlZCB0byBkZWZpbmUgdGhpcyBhcyA3LCB3aGljaCB3b3VsZCBhbGxvdyBeXmU0IGV0Yy4KKyAgJSBJdCB3YXMgc3VnZ2VzdGVkIHRvIHNldCB0aGUgY2F0Y29kZSBvZiBeIHRvIDcsIHdoaWNoIHdvdWxkIGFsbG93IF5eZTQgZXRjLgogICAlIGluIHhyZWYgdGFncywgaS5lLiwgbm9kZSBuYW1lcy4gIEJ1dCBzaW5jZSBeXmU0IG5vdGF0aW9uIGlzbid0CiAgICUgc3VwcG9ydGVkIGluIHRoZSBtYWluIHRleHQsIGl0IGRvZXNuJ3Qgc2VlbSBkZXNpcmFibGUuICBGdXJ0aGVybW9yZSwKICAgJSB0aGF0IGlzIG5vdCBlbm91Z2g6IGZvciBub2RlIG5hbWVzIHRoYXQgYWN0dWFsbHkgY29udGFpbiBhIF4KQEAgLTU0MTAsNiArNjA0OSw5IEBACiAgICUgXGRlZlxhdXhoYXR7XGRlZl57J2hhdCB9fSUgZXh0cmEgc3BhY2Ugc28gb2sgaWYgZm9sbG93ZWQgYnkgbGV0dGVyCiAgICUgYW5kIHRoZW4gdG8gY2FsbCBcYXV4aGF0IGluIFxzZXRxLgogICAlCisgIFxjYXRjb2RlYFxePVxvdGhlcgorICAlCisgICUgU3BlY2lhbCBjaGFyYWN0ZXJzLiAgU2hvdWxkIGJlIHR1cm5lZCBvZmYgYW55d2F5LCBidXQuLi4KICAgXGNhdGNvZGVgXH49XG90aGVyCiAgIFxjYXRjb2RlYFxbPVxvdGhlcgogICBcY2F0Y29kZWBcXT1cb3RoZXIKQEAgLTU0MjEsNyArNjA2Myw5IEBACiAgIFxjYXRjb2RlYFwkPVxvdGhlcgogICBcY2F0Y29kZWBcIz1cb3RoZXIKICAgXGNhdGNvZGVgXCY9XG90aGVyCisgIFxjYXRjb2RlYFwlPVxvdGhlcgogICBcY2F0Y29kZWArPVxvdGhlciAlIGF2b2lkIFwrIGZvciBwYXJhbm9pYSBldmVuIHRob3VnaCB3ZSd2ZSB0dXJuZWQgaXQgb2ZmCisgICUKICAgJSBNYWtlIHRoZSBjaGFyYWN0ZXJzIDEyOC0yNTUgYmUgcHJpbnRpbmcgY2hhcmFjdGVycwogICB7JQogICAgIFxjb3VudCAxPTEyOApAQCAtNTQzMSwxNyArNjA3NSwxOCBAQAogICAgICAgXGlmbnVtIFxjb3VudCAxPDI1NiBcbG9vcCBcZmkKICAgICB9JQogICB9JQotICAlIFRoZSBhdXggZmlsZSB1c2VzICcgYXMgdGhlIGVzY2FwZSAoZm9yIG5vdykuCisgICUKICAgJSBUdXJuIG9mZiBcIGFzIGFuIGVzY2FwZSBzbyB3ZSBkbyBub3QgbG9zZSBvbgogICAlIGVudHJpZXMgd2hpY2ggd2VyZSBkdW1wZWQgd2l0aCBjb250cm9sIHNlcXVlbmNlcyBpbiB0aGVpciBuYW1lcy4KLSAgJSBGb3IgZXhhbXBsZSwgJ3hyZGVmIHskXGxlcSAkLWZ1bn17cGFnZSAuLi59IG1hZGUgYnkgQGRlZnVuIF5eCisgICUgRm9yIGV4YW1wbGUsIEB4cmRlZnskXGxlcSAkLWZ1bn17cGFnZSAuLi59IG1hZGUgYnkgQGRlZnVuIF5eCiAgICUgUmVmZXJlbmNlIHRvIHN1Y2ggZW50cmllcyBzdGlsbCBkb2VzIG5vdCB3b3JrIHRoZSB3YXkgb25lIHdvdWxkIHdpc2gsCiAgICUgYnV0IGF0IGxlYXN0IHRoZXkgZG8gbm90IGJvbWIgb3V0IHdoZW4gdGhlIGF1eCBmaWxlIGlzIHJlYWQgaW4uCisgIFxjYXRjb2RlYFxcPVxvdGhlcgorICAlCisgICUgQCBpcyBvdXIgZXNjYXBlIGNoYXJhY3RlciBpbiAuYXV4IGZpbGVzLgogICBcY2F0Y29kZWBcez0xCiAgIFxjYXRjb2RlYFx9PTIKLSAgXGNhdGNvZGVgXCU9XG90aGVyCi0gIFxjYXRjb2RlYFwnPTAKLSAgXGNhdGNvZGVgXFw9XG90aGVyCisgIFxjYXRjb2RlYFxAPTAKICAgJQogICBcb3BlbmluIDEgXGpvYm5hbWUuYXV4CiAgIFxpZmVvZiAxIFxlbHNlCkBAIC01NDg2LDcgKzYxMzEsNyBAQAogICAlIFJlbW92ZSBpbmFkdmVydGVudCBibGFuayBzcGFjZSBiZWZvcmUgdHlwZXNldHRpbmcgdGhlIGZvb3Rub3RlIG51bWJlci4KICAgXHVuc2tpcAogICBcdGhpc2Zvb3Rub1xAc2YKLSAgXGZvb3Rub3Rlenp6CisgIFxkb2Zvb3Rub3RlCiB9JQogCiAlIERvbid0IGJvdGhlciB3aXRoIHRoZSB0cmlja2VyeSBpbiBwbGFpbi50ZXggdG8gbm90IHJlcXVpcmUgdGhlCkBAIC01NDk2LDEwICs2MTQxLDE3IEBACiAlIFxwYXJzZWFyZ2xpbmUgZmFpbCBpbnNpZGUgZm9vdG5vdGVzIGJlY2F1c2UgdGhlIHRva2VucyBhcmUgZml4ZWQgd2hlbgogJSB0aGUgZm9vdG5vdGUgaXMgcmVhZC4gIC0ta2FybCwgMTZub3Y5Ni4KICUKLVxsb25nXGdkZWZcZm9vdG5vdGV6enp7XGluc2VydFxmb290aW5zXGJncm91cAorJSBUaGUgc3RhcnQgb2YgdGhlIGZvb3Rub3RlIGxvb2tzIHVzdWFsbHkgbGlrZSB0aGlzOgorXGdkZWZcc3RhcnRmb290aW5ze1xpbnNlcnRcZm9vdGluc1xiZ3JvdXB9CislCislIC4uLiBidXQgdGhpcyBtYWNybyBpcyByZWRlZmluZWQgaW5zaWRlIEBtdWx0aXRhYmxlLgorJQorXGdkZWZcZG9mb290bm90ZXslCisgIFxzdGFydGZvb3RpbnMKICAgJSBXZSB3YW50IHRvIHR5cGVzZXQgdGhpcyB0ZXh0IGFzIGEgbm9ybWFsIHBhcmFncmFwaCwgZXZlbiBpZiB0aGUKICAgJSBmb290bm90ZSByZWZlcmVuY2Ugb2NjdXJzIGluIChmb3IgZXhhbXBsZSkgYSBkaXNwbGF5IGVudmlyb25tZW50LgogICAlIFNvIHJlc2V0IHNvbWUgcGFyYW1ldGVycy4KKyAgXGhzaXplPVxwYWdld2lkdGgKICAgXGludGVybGluZXBlbmFsdHlcaW50ZXJmb290bm90ZWxpbmVwZW5hbHR5CiAgIFxzcGxpdHRvcHNraXBcaHRcc3RydXRib3ggJSB0b3AgYmFzZWxpbmUgZm9yIGJyb2tlbiBmb290bm90ZXMKICAgXHNwbGl0bWF4ZGVwdGhcZHBcc3RydXRib3gKQEAgLTU1MTIsOCArNjE2NCwxNSBAQAogICAlCiAgIFxzbWFsbGZvbnRzIFxybQogICAlCi0gICUgSGFuZyB0aGUgZm9vdG5vdGUgdGV4dCBvZmYgdGhlIG51bWJlci4KLSAgXGhhbmcKKyAgJSBCZWNhdXNlIHdlIHVzZSBoYW5naW5nIGluZGVudGF0aW9uIGluIGZvb3Rub3RlcywgYSBAbm9pbmRlbnQgYXBwZWFycworICAlIHRvIGV4ZGVudCB0aGlzIHRleHQsIHNvIG1ha2UgaXQgYmUgYSBuby1vcC4gIG1ha2VpbmZvIGRvZXMgbm90IHVzZQorICAlIGhhbmdpbmcgaW5kZW50YXRpb24gc28gQG5vaW5kZW50IGNhbiBzdGlsbCBiZSBuZWVkZWQgd2l0aGluIGZvb3Rub3RlCisgICUgdGV4dCBhZnRlciBhbiBAZXhhbXBsZSBvciB0aGUgbGlrZSAobm90IHRoYXQgdGhpcyBpcyBnb29kIHN0eWxlKS4KKyAgXGxldFxub2luZGVudCA9IFxyZWxheAorICAlCisgICUgSGFuZyB0aGUgZm9vdG5vdGUgdGV4dCBvZmYgdGhlIG51bWJlci4gIFVzZSBcZXZlcnlwYXIgaW4gY2FzZSB0aGUKKyAgJSBmb290bm90ZSBleHRlbmRzIGZvciBtb3JlIHRoYW4gb25lIHBhcmFncmFwaC4KKyAgXGV2ZXJ5cGFyID0ge1xoYW5nfSUKICAgXHRleHRpbmRlbnR7XHRoaXNmb290bm99JQogICAlCiAgICUgRG9uJ3QgY3Jhc2ggaW50byB0aGUgbGluZSBhYm92ZSB0aGUgZm9vdG5vdGUgdGV4dC4gIFNpbmNlIHRoaXMKQEAgLTU1MjIsMzIgKzYxODEsOCBAQAogICBcZm9vdHN0cnV0CiAgIFxmdXR1cmVsZXRcbmV4dFxmb0B0CiB9Ci1cZGVmXGZvQHR7XGlmY2F0XGJncm91cFxub2V4cGFuZFxuZXh0IFxsZXRcbmV4dFxmQEB0Ci0gIFxlbHNlXGxldFxuZXh0XGZAdFxmaSBcbmV4dH0KLVxkZWZcZkBAdHtcYmdyb3VwXGFmdGVyZ3JvdXBcQGZvb3RcbGV0XG5leHR9Ci1cZGVmXGZAdCMxeyMxXEBmb290fQotXGRlZlxAZm9vdHtcc3RydXRccGFyXGVncm91cH0KLQogfSVlbmQgXGNhdGNvZGUgYFxAPTExCiAKLSUgU2V0IHRoZSBiYXNlbGluZXNraXAgdG8gIzEsIGFuZCB0aGUgbGluZXNraXAgYW5kIHN0cnV0IHNpemUKLSUgY29ycmVzcG9uZGluZ2x5LiAgVGhlcmUgaXMgbm8gZGVlcCBtZWFuaW5nIGJlaGluZCB0aGVzZSBtYWdpYyBudW1iZXJzCi0lIHVzZWQgYXMgZmFjdG9yczsgdGhleSBqdXN0IG1hdGNoIChjbG9zZWx5IGVub3VnaCkgd2hhdCBLbnV0aCBkZWZpbmVkLgotJQotXGRlZlxsaW5lc2tpcGZhY3RvcnsuMDgzMzN9Ci1cZGVmXHN0cnV0aGVpZ2h0cGVyY2VudHsuNzA4MzN9Ci1cZGVmXHN0cnV0ZGVwdGhwZXJjZW50IHsuMjkxNjd9Ci0lCi1cZGVmXHNldGxlYWRpbmcjMXslCi0gIFxub3JtYWxiYXNlbGluZXNraXAgPSAjMVxyZWxheAotICBcbm9ybWFsbGluZXNraXAgPSBcbGluZXNraXBmYWN0b3Jcbm9ybWFsYmFzZWxpbmVza2lwCi0gIFxub3JtYWxiYXNlbGluZXMKLSAgXHNldGJveFxzdHJ1dGJveCA9XGhib3h7JQotICAgIFx2cnVsZSB3aWR0aDBwdCBoZWlnaHRcc3RydXRoZWlnaHRwZXJjZW50XGJhc2VsaW5lc2tpcAotICAgICAgICAgICAgICAgICAgICBkZXB0aCBcc3RydXRkZXB0aHBlcmNlbnQgXGJhc2VsaW5lc2tpcAotICB9JQotfQotCiAlIEB8IGluc2VydHMgYSBjaGFuZ2ViYXIgdG8gdGhlIGxlZnQgb2YgdGhlIGN1cnJlbnQgbGluZS4gIEl0IHNob3VsZAogJSBzdXJyb3VuZCBhbnkgY2hhbmdlZCB0ZXh0LiAgVGhpcyBhcHByb2FjaCBkb2VzICpub3QqIHdvcmsgaWYgdGhlCiAlIGNoYW5nZSBzcGFucyBtb3JlIHRoYW4gdHdvIGxpbmVzIG9mIG91dHB1dC4gIFRvIGhhbmRsZSB0aGF0LCB3ZSB3b3VsZApAQCAtNTU5Miw4ICs2MjI3LDggQEAKIFxvcGVuaW4gMSA9IGVwc2YudGV4CiBcaWZlb2YgMSBcZWxzZQogICBcY2xvc2VpbiAxCi0gICUgRG8gbm90IGJvdGhlciBzaG93aW5nIGJhbm5lciB3aXRoIHBvc3QtdjIuNyBlcHNmLnRleCAoYXZhaWxhYmxlIGluCi0gICUgZG9jL2Vwc2YudGV4IHVudGlsIGl0IHNob3dzIHVwIG9uIGN0YW4pLgorICAlIERvIG5vdCBib3RoZXIgc2hvd2luZyBiYW5uZXIgd2l0aCBlcHNmLnRleCB2Mi43ayAoYXZhaWxhYmxlIGluCisgICUgZG9jL2Vwc2YudGV4IGFuZCBvbiBjdGFuKS4KICAgXGRlZlxlcHNmYW5ub3VuY2V7XHRva3MwID0gfSUKICAgXGlucHV0IGVwc2YudGV4CiBcZmkKQEAgLTU2MTIsNDAgKzYyNDcsNDQgQEAKICAgICAgIFxnbG9iYWxcd2FybmVkbm9lcHNmdHJ1ZQogICAgIFxmaQogICBcZWxzZQotICAgIFxpbWFnZXh4eCAjMSwsLFxmaW5pc2gKKyAgICBcaW1hZ2V4eHggIzEsLCwsLFxmaW5pc2gKICAgXGZpCiB9CiAlCiAlIEFyZ3VtZW50cyB0byBAaW1hZ2U6CiAlICMxIGlzIChtYW5kYXRvcnkpIGltYWdlIGZpbGVuYW1lOyB3ZSB0YWNrIG9uIC5lcHMgZXh0ZW5zaW9uLgogJSAjMiBpcyAob3B0aW9uYWwpIHdpZHRoLCAjMyBpcyAob3B0aW9uYWwpIGhlaWdodC4KLSUgIzQgaXMganVzdCB0aGUgdXN1YWwgZXh0cmEgaWdub3JlZCBhcmcgZm9yIHBhcnNpbmcgdGhpcyBzdHVmZi4KLVxkZWZcaW1hZ2V4eHgjMSwjMiwjMywjNFxmaW5pc2h7JQorJSAjNCBpcyAoaWdub3JlZCBvcHRpb25hbCkgaHRtbCBhbHQgdGV4dC4KKyUgIzUgaXMgKGlnbm9yZWQgb3B0aW9uYWwpIGV4dGVuc2lvbi4KKyUgIzYgaXMganVzdCB0aGUgdXN1YWwgZXh0cmEgaWdub3JlZCBhcmcgZm9yIHBhcnNpbmcgdGhpcyBzdHVmZi4KK1xuZXdpZlxpZmltYWdldm1vZGUKK1xkZWZcaW1hZ2V4eHgjMSwjMiwjMywjNCwjNSwjNlxmaW5pc2h7XGJlZ2luZ3JvdXAKKyAgXGNhdGNvZGVgXF5eTSA9IDUgICAgICUgaW4gY2FzZSB3ZSdyZSBpbnNpZGUgYW4gZXhhbXBsZQorICBcbm9ybWFsdHVybm9mZmFjdGl2ZSAgJSBhbGxvdyBfIGV0IGFsLiBpbiBuYW1lcworICAlIElmIHRoZSBpbWFnZSBpcyBieSBpdHNlbGYsIGNlbnRlciBpdC4KKyAgXGlmdm1vZGUKKyAgICBcaW1hZ2V2bW9kZXRydWUKKyAgICBcbm9icmVha1xiaWdza2lwCisgICAgJSBVc3VhbGx5IHdlJ2xsIGhhdmUgdGV4dCBhZnRlciB0aGUgaW1hZ2Ugd2hpY2ggd2lsbCBpbnNlcnQKKyAgICAlIFxwYXJza2lwIGdsdWUsIHNvIGluc2VydCBpdCBoZXJlIHRvbyB0byBlcXVhbGl6ZSB0aGUgc3BhY2UKKyAgICAlIGFib3ZlIGFuZCBiZWxvdy4gCisgICAgXG5vYnJlYWtcdnNraXBccGFyc2tpcAorICAgIFxub2JyZWFrCisgICAgXGxpbmVcYmdyb3VwXGhzcworICBcZmkKKyAgJQorICAlIE91dHB1dCB0aGUgaW1hZ2UuCiAgIFxpZnBkZgotICAgIFxjZW50ZXJsaW5le1xkb3BkZmltYWdleyMxfXsjMn17IzN9fSUKKyAgICBcZG9wZGZpbWFnZXsjMX17IzJ9eyMzfSUKICAgXGVsc2UKICAgICAlIFxlcHNmYm94IGl0c2VsZiByZXNldHMgXGVwc2Y/c2l6ZSBhdCBlYWNoIGZpZ3VyZS4KICAgICBcc2V0Ym94MCA9IFxoYm94e1xpZ25vcmVzcGFjZXMgIzJ9XGlmZGltXHdkMCA+IDBwdCBcZXBzZnhzaXplPSMyXHJlbGF4IFxmaQogICAgIFxzZXRib3gwID0gXGhib3h7XGlnbm9yZXNwYWNlcyAjM31caWZkaW1cd2QwID4gMHB0IFxlcHNmeXNpemU9IzNccmVsYXggXGZpCi0gICAgXGJlZ2luZ3JvdXAKLSAgICAgIFxjYXRjb2RlYFxeXk0gPSA1ICUgaW4gY2FzZSB3ZSdyZSBpbnNpZGUgYW4gZXhhbXBsZQotICAgICAgJSBJZiB0aGUgaW1hZ2UgaXMgYnkgaXRzZWxmLCBjZW50ZXIgaXQuCi0gICAgICBcaWZ2bW9kZQotICAgICAgICBcbm9icmVha1xiaWdza2lwCi0gICAgICAgICUgVXN1YWxseSB3ZSdsbCBoYXZlIHRleHQgYWZ0ZXIgdGhlIGltYWdlIHdoaWNoIHdpbGwgaW5zZXJ0Ci0gICAgICAgICUgXHBhcnNraXAgZ2x1ZSwgc28gaW5zZXJ0IGl0IGhlcmUgdG9vIHRvIGVxdWFsaXplIHRoZSBzcGFjZQotICAgICAgICAlIGFib3ZlIGFuZCBiZWxvdy4gCi0gICAgICAgIFxub2JyZWFrXHZza2lwXHBhcnNraXAKLSAgICAgICAgXG5vYnJlYWsKLSAgICAgICAgXGNlbnRlcmxpbmV7XGVwc2Zib3h7IzEuZXBzfX0lCi0gICAgICAgIFxiaWdicmVhawotICAgICAgXGVsc2UKLSAgICAgICAgJSBJbiB0aGUgbWlkZGxlIG9mIGEgcGFyYWdyYXBoLCBubyBleHRyYSBzcGFjZS4KLSAgICAgICAgXGVwc2Zib3h7IzEuZXBzfSUKLSAgICAgIFxmaQotICAgIFxlbmRncm91cAorICAgIFxlcHNmYm94eyMxLmVwc30lCiAgIFxmaQotfQorICAlCisgIFxpZmltYWdldm1vZGUgXGhzcyBcZWdyb3VwIFxiaWdicmVhayBcZmkgICUgc3BhY2UgYWZ0ZXIgdGhlIGltYWdlCitcZW5kZ3JvdXB9CiAKIAogXG1lc3NhZ2V7bG9jYWxpemF0aW9uLH0KQEAgLTU3MTQsMTAgKzYzNTMsMTMgQEAKIH0KIAogJSBQYXJhbWV0ZXJzIGluIG9yZGVyOiAxKSB0ZXh0aGVpZ2h0OyAyKSB0ZXh0d2lkdGg7IDMpIHZvZmZzZXQ7Ci0lIDQpIGhvZmZzZXQ7IDUpIGJpbmRpbmcgb2Zmc2V0OyA2KSB0b3Bza2lwLiAgVGhlbiB3aG9ldmVyIGNhbGxzIHVzIGNhbgotJSBzZXQgXHBhcnNraXAgYW5kIGNhbGwgXHNldGxlYWRpbmcgZm9yIFxiYXNlbGluZXNraXAuCislIDQpIGhvZmZzZXQ7IDUpIGJpbmRpbmcgb2Zmc2V0OyA2KSB0b3Bza2lwOyA3KSBwaHlzaWNhbCBwYWdlIGhlaWdodDsgOCkKKyUgcGh5c2ljYWwgcGFnZSB3aWR0aC4KKyUgCislIFdlIGFsc28gY2FsbCBcc2V0bGVhZGluZ3tcdGV4dGxlYWRpbmd9LCBzbyB0aGUgY2FsbGVyIHNob3VsZCBkZWZpbmUKKyUgXHRleHRsZWFkaW5nLiAgVGhlIGNhbGxlciBzaG91bGQgYWxzbyBzZXQgXHBhcnNraXAuCiAlCi1cZGVmXGludGVybmFscGFnZXNpemVzIzEjMiMzIzQjNSM2eyUKK1xkZWZcaW50ZXJuYWxwYWdlc2l6ZXMjMSMyIzMjNCM1IzYjNyM4eyUKICAgXHZvZmZzZXQgPSAjM1xyZWxheAogICBcdG9wc2tpcCA9ICM2XHJlbGF4CiAgIFxzcGxpdHRvcHNraXAgPSBcdG9wc2tpcApAQCAtNTczNiw2ICs2Mzc4LDEzIEBACiAgIFxub3JtYWxvZmZzZXQgPSAjNFxyZWxheAogICBcYmluZGluZ29mZnNldCA9ICM1XHJlbGF4CiAgICUKKyAgXGlmcGRmCisgICAgXHBkZnBhZ2VoZWlnaHQgIzdccmVsYXgKKyAgICBccGRmcGFnZXdpZHRoICM4XHJlbGF4CisgIFxmaQorICAlCisgIFxzZXRsZWFkaW5ne1x0ZXh0bGVhZGluZ30KKyAgJQogICBccGFyaW5kZW50ID0gXGRlZmF1bHRwYXJpbmRlbnQKICAgXHNldGVtZXJnZW5jeXN0cmV0Y2gKIH0KQEAgLTU3NDMsNjEgKzYzOTIsOTkgQEAKICUgQGxldHRlcnBhcGVyICh0aGUgZGVmYXVsdCkuCiBcZGVmXGxldHRlcnBhcGVye3tcZ2xvYmFsZGVmcyA9IDEKICAgXHBhcnNraXAgPSAzcHQgcGx1cyAycHQgbWludXMgMXB0Ci0gIFxzZXRsZWFkaW5nezEzLjJwdH0lCisgIFx0ZXh0bGVhZGluZyA9IDEzLjJwdAogICAlCiAgICUgSWYgcGFnZSBpcyBub3RoaW5nIGJ1dCB0ZXh0LCBtYWtlIGl0IGNvbWUgb3V0IGV2ZW4uCi0gIFxpbnRlcm5hbHBhZ2VzaXplc3s0NlxiYXNlbGluZXNraXB9ezZpbn17XHZvZmZzZXR9ey4yNWlufXtcYmluZGluZ29mZnNldH17MzZwdH0lCisgIFxpbnRlcm5hbHBhZ2VzaXplc3s0NlxiYXNlbGluZXNraXB9ezZpbn0lCisgICAgICAgICAgICAgICAgICAgIHtcdm9mZnNldH17LjI1aW59JQorICAgICAgICAgICAgICAgICAgICB7XGJpbmRpbmdvZmZzZXR9ezM2cHR9JQorICAgICAgICAgICAgICAgICAgICB7MTFpbn17OC41aW59JQogfX0KIAogJSBVc2UgQHNtYWxsYm9vayB0byByZXNldCBwYXJhbWV0ZXJzIGZvciA3eDkuNSAob3Igc28pIGZvcm1hdC4KIFxkZWZcc21hbGxib29re3tcZ2xvYmFsZGVmcyA9IDEKICAgXHBhcnNraXAgPSAycHQgcGx1cyAxcHQKLSAgXHNldGxlYWRpbmd7MTJwdH0lCisgIFx0ZXh0bGVhZGluZyA9IDEycHQKICAgJQotICBcaW50ZXJuYWxwYWdlc2l6ZXN7Ny41aW59ezUuaW59e1x2b2Zmc2V0fXsuMjVpbn17XGJpbmRpbmdvZmZzZXR9ezE2cHR9JQorICBcaW50ZXJuYWxwYWdlc2l6ZXN7Ny41aW59ezVpbn0lCisgICAgICAgICAgICAgICAgICAgIHtcdm9mZnNldH17LjI1aW59JQorICAgICAgICAgICAgICAgICAgICB7XGJpbmRpbmdvZmZzZXR9ezE2cHR9JQorICAgICAgICAgICAgICAgICAgICB7OS4yNWlufXs3aW59JQogICAlCiAgIFxsaXNwbmFycm93aW5nID0gMC4zaW4KICAgXHRvbGVyYW5jZSA9IDcwMAogICBcaGZ1enogPSAxcHQKICAgXGNvbnRlbnRzcmlnaHRtYXJnaW4gPSAwcHQKLSAgXGRlZnR5cGVtYXJnaW4gPSAwcHQKICAgXGRlZmJvZHlpbmRlbnQgPSAuNWNtCi0gICUKLSAgXGxldFxzbWFsbGRpc3BsYXkgPSBcc21hbGxkaXNwbGF5eAotICBcbGV0XHNtYWxsZXhhbXBsZSA9IFxzbWFsbGxpc3B4Ci0gIFxsZXRcc21hbGxmb3JtYXQgPSBcc21hbGxmb3JtYXR4Ci0gIFxsZXRcc21hbGxsaXNwID0gXHNtYWxsbGlzcHgKIH19CiAKICUgVXNlIEBhZm91cnBhcGVyIHRvIHByaW50IG9uIEV1cm9wZWFuIEE0IHBhcGVyLgogXGRlZlxhZm91cnBhcGVye3tcZ2xvYmFsZGVmcyA9IDEKLSAgXHNldGxlYWRpbmd7MTJwdH0lCiAgIFxwYXJza2lwID0gM3B0IHBsdXMgMnB0IG1pbnVzIDFwdAorICBcdGV4dGxlYWRpbmcgPSAxMy4ycHQKICAgJQotICBcaW50ZXJuYWxwYWdlc2l6ZXN7NTNcYmFzZWxpbmVza2lwfXsxNjBtbX17XHZvZmZzZXR9ezRtbX17XGJpbmRpbmdvZmZzZXR9ezQ0cHR9JQorICAlIERvdWJsZS1zaWRlIHByaW50aW5nIHZpYSBwb3N0c2NyaXB0IG9uIExhc2VyamV0IDQwNTAgCisgICUgcHJpbnRzIGRvdWJsZS1zaWRlZCBuaWNlbHkgd2hlbiBcYmluZGluZ29mZnNldD0xMG1tIGFuZCBcaG9mZnNldD0tNm1tLgorICAlIFRvIGNoYW5nZSB0aGUgc2V0dGluZ3MgZm9yIGEgZGlmZmVyZW50IHByaW50ZXIgb3Igc2l0dWF0aW9uLCBhZGp1c3QKKyAgJSBcbm9ybWFsb2Zmc2V0IHVudGlsIHRoZSBmcm9udC1zaWRlIGFuZCBiYWNrLXNpZGUgdGV4dHMgYWxpZ24uICBUaGVuCisgICUgZG8gdGhlIHNhbWUgZm9yIFxiaW5kaW5nb2Zmc2V0LiAgWW91IGNhbiBzZXQgdGhlc2UgZm9yIHRlc3RpbmcgaW4KKyAgJSB5b3VyIHRleGluZm8gc291cmNlIGZpbGUgbGlrZSB0aGlzOgorICAlIEB0ZXgKKyAgJSBcZ2xvYmFsXG5vcm1hbG9mZnNldCA9IC02bW0KKyAgJSBcZ2xvYmFsXGJpbmRpbmdvZmZzZXQgPSAxMG1tCisgICUgQGVuZCB0ZXgKKyAgXGludGVybmFscGFnZXNpemVzezUxXGJhc2VsaW5lc2tpcH17MTYwbW19CisgICAgICAgICAgICAgICAgICAgIHtcdm9mZnNldH17XGhvZmZzZXR9JQorICAgICAgICAgICAgICAgICAgICB7XGJpbmRpbmdvZmZzZXR9ezQ0cHR9JQorICAgICAgICAgICAgICAgICAgICB7Mjk3bW19ezIxMG1tfSUKICAgJQogICBcdG9sZXJhbmNlID0gNzAwCiAgIFxoZnV6eiA9IDFwdAorICBcY29udGVudHNyaWdodG1hcmdpbiA9IDBwdAorICBcZGVmYm9keWluZGVudCA9IDVtbQogfX0KIAotJSBBIHNwZWNpZmljIHRleHQgbGF5b3V0LCAyNHgxNWNtIG92ZXJhbGwsIGludGVuZGVkIGZvciBBNCBwYXBlci4gIFRvcCBtYXJnaW4KLSUgMjltbSwgaGVuY2UgYm90dG9tIG1hcmdpbiAyOG1tLCBub21pbmFsIHNpZGUgbWFyZ2luIDNjbS4KKyUgVXNlIEBhZml2ZXBhcGVyIHRvIHByaW50IG9uIEV1cm9wZWFuIEE1IHBhcGVyLgorJSBGcm9tIHJvbWlsZG9AdXJhbm8uaWNlYi51Zm9wLmJyLCAyIEp1bHkgMjAwMC4KKyUgSGUgYWxzbyByZWNvbW1lbmRzIG1ha2luZyBAZXhhbXBsZSBhbmQgQGxpc3AgYmUgc21hbGwuCitcZGVmXGFmaXZlcGFwZXJ7e1xnbG9iYWxkZWZzID0gMQorICBccGFyc2tpcCA9IDJwdCBwbHVzIDFwdCBtaW51cyAwLjFwdAorICBcdGV4dGxlYWRpbmcgPSAxMi41cHQKKyAgJQorICBcaW50ZXJuYWxwYWdlc2l6ZXN7MTYwbW19ezEyMG1tfSUKKyAgICAgICAgICAgICAgICAgICAge1x2b2Zmc2V0fXtcaG9mZnNldH0lCisgICAgICAgICAgICAgICAgICAgIHtcYmluZGluZ29mZnNldH17OHB0fSUKKyAgICAgICAgICAgICAgICAgICAgezIxMG1tfXsxNDhtbX0lCisgICUKKyAgXGxpc3BuYXJyb3dpbmcgPSAwLjJpbgorICBcdG9sZXJhbmNlID0gODAwCisgIFxoZnV6eiA9IDEuMnB0CisgIFxjb250ZW50c3JpZ2h0bWFyZ2luID0gMHB0CisgIFxkZWZib2R5aW5kZW50ID0gMm1tCisgIFx0YWJsZWluZGVudCA9IDEybW0KK319CisKKyUgQSBzcGVjaWZpYyB0ZXh0IGxheW91dCwgMjR4MTVjbSBvdmVyYWxsLCBpbnRlbmRlZCBmb3IgQTQgcGFwZXIuICAKIFxkZWZcYWZvdXJsYXRleHt7XGdsb2JhbGRlZnMgPSAxCi0gIFxzZXRsZWFkaW5nezEzLjZwdH0lCi0gICUKICAgXGFmb3VycGFwZXIKLSAgXGludGVybmFscGFnZXNpemVzezIzN21tfXsxNTBtbX17My42bW19ezMuNm1tfXszbW19ezdtbX0lCisgIFxpbnRlcm5hbHBhZ2VzaXplc3syMzdtbX17MTUwbW19JQorICAgICAgICAgICAgICAgICAgICB7XHZvZmZzZXR9ezQuNm1tfSUKKyAgICAgICAgICAgICAgICAgICAge1xiaW5kaW5nb2Zmc2V0fXs3bW19JQorICAgICAgICAgICAgICAgICAgICB7Mjk3bW19ezIxMG1tfSUKICAgJQorICAlIE11c3QgZXhwbGljaXRseSByZXNldCB0byAwIGJlY2F1c2Ugd2UgY2FsbCBcYWZvdXJwYXBlci4KICAgXGdsb2JhbGRlZnMgPSAwCiB9fQogCi0lIFVzZSBAYWZvdXJ3aWRlIHRvIHByaW50IG9uIEV1cm9wZWFuIEE0IHBhcGVyIGluIHdpZGUgZm9ybWF0LgotXGRlZlxhZm91cndpZGV7JQorJSBVc2UgQGFmb3Vyd2lkZSB0byBwcmludCBvbiBBNCBwYXBlciBpbiBsYW5kc2NhcGUgZm9ybWF0LgorXGRlZlxhZm91cndpZGV7e1xnbG9iYWxkZWZzID0gMQogICBcYWZvdXJwYXBlcgotICBcaW50ZXJuYWxwYWdlc2l6ZXN7OS41aW59ezYuNWlufXtcaG9mZnNldH17XG5vcm1hbG9mZnNldH17XGJpbmRpbmdvZmZzZXR9ezdtbX0lCi0gICUKKyAgXGludGVybmFscGFnZXNpemVzezI0MW1tfXsxNjVtbX0lCisgICAgICAgICAgICAgICAgICAgIHtcdm9mZnNldH17LTIuOTVtbX0lCisgICAgICAgICAgICAgICAgICAgIHtcYmluZGluZ29mZnNldH17N21tfSUKKyAgICAgICAgICAgICAgICAgICAgezI5N21tfXsyMTBtbX0lCiAgIFxnbG9iYWxkZWZzID0gMAotfQorfX0KIAogJSBAcGFnZXNpemVzIFRFWFRIRUlHSFRbLFRFWFRXSURUSF0KICUgUGVyaGFwcyB3ZSBzaG91bGQgYWxsb3cgc2V0dGluZyB0aGUgbWFyZ2lucywgXHRvcHNraXAsIFxwYXJza2lwLApAQCAtNTgxMCw5ICs2NDk3LDE4IEBACiAgIFxnbG9iYWxkZWZzID0gMQogICAlCiAgIFxwYXJza2lwID0gM3B0IHBsdXMgMnB0IG1pbnVzIDFwdAotICBcc2V0bGVhZGluZ3sxMy4ycHR9JQorICBcc2V0bGVhZGluZ3tcdGV4dGxlYWRpbmd9JQogICAlCi0gIFxpbnRlcm5hbHBhZ2VzaXplc3sjMX17XGhzaXplfXtcdm9mZnNldH17XG5vcm1hbG9mZnNldH17XGJpbmRpbmdvZmZzZXR9ezQ0cHR9JQorICBcZGltZW4wID0gIzEKKyAgXGFkdmFuY2VcZGltZW4wIGJ5IFx2b2Zmc2V0CisgICUKKyAgXGRpbWVuMiA9IFxoc2l6ZQorICBcYWR2YW5jZVxkaW1lbjIgYnkgXG5vcm1hbG9mZnNldAorICAlCisgIFxpbnRlcm5hbHBhZ2VzaXplc3sjMX17XGhzaXplfSUKKyAgICAgICAgICAgICAgICAgICAge1x2b2Zmc2V0fXtcbm9ybWFsb2Zmc2V0fSUKKyAgICAgICAgICAgICAgICAgICAge1xiaW5kaW5nb2Zmc2V0fXs0NHB0fSUKKyAgICAgICAgICAgICAgICAgICAge1xkaW1lbjB9e1xkaW1lbjJ9JQogfX0KIAogJSBTZXQgZGVmYXVsdCB0byBsZXR0ZXIuCkBAIC01ODQwLDcgKzY1MzYsNyBAQAogXGRlZlxub3JtYWxsZXNzezx9CiBcZGVmXG5vcm1hbGdyZWF0ZXJ7Pn0KIFxkZWZcbm9ybWFscGx1c3srfQotXGRlZlxub3JtYWxkb2xsYXJ7JH0KK1xkZWZcbm9ybWFsZG9sbGFyeyR9JSQgZm9udC1sb2NrIGZpeAogCiAlIFRoaXMgbWFjcm8gaXMgdXNlZCB0byBtYWtlIGEgY2hhcmFjdGVyIHByaW50IG9uZSB3YXkgaW4gdHRmb250CiAlIHdoZXJlIGl0IGNhbiBwcm9iYWJseSBqdXN0IGJlIG91dHB1dCwgYW5kIGFub3RoZXIgd2F5IGluIG90aGVyIGZvbnRzLApAQCAtNTg3Niw3ICs2NTcyLDcgQEAKIFxjYXRjb2RlYFxfPVxhY3RpdmUKIFxkZWZfe1xpZnVzaW5ndHRcbm9ybWFsdW5kZXJzY29yZVxffQogJSBTdWJyb3V0aW5lIGZvciB0aGUgcHJldmlvdXMgbWFjcm8uCi1cZGVmXF97XGxlYXZldm1vZGUgXGtlcm4uMDZlbSBcdmJveHtcaHJ1bGUgd2lkdGguM2VtIGhlaWdodC4xZXh9fQorXGRlZlxfe1xsZWF2ZXZtb2RlIFxrZXJuLjA3ZW0gXHZib3h7XGhydWxlIHdpZHRoLjNlbSBoZWlnaHQuMWV4fVxrZXJuIC4wN2VtIH0KIAogXGNhdGNvZGVgXHw9XGFjdGl2ZQogXGRlZnx7e1x0dFxjaGFyMTI0fX0KQEAgLTU4ODksOSArNjU4NSw3IEBACiBcY2F0Y29kZWBcKz1cYWN0aXZlCiBcZGVmK3t7XHR0IFxjaGFyIDQzfX0KIFxjYXRjb2RlYFwkPVxhY3RpdmUKLVxkZWYke1xpZnVzaW5naXR7e1xzbFwkfX1cbm9ybWFsZG9sbGFyfQotJVxjYXRjb2RlIDI3PVxhY3RpdmUKLSVcZGVmXl5beyRcZGlhbW9uZHN1aXQkfQorXGRlZiR7XGlmdXNpbmdpdHt7XHNsXCR9fVxub3JtYWxkb2xsYXJ9JSQgZm9udC1sb2NrIGZpeAogCiAlIFNldCB1cCBhbiBhY3RpdmUgZGVmaW5pdGlvbiBmb3IgPSwgYnV0IGRvbid0IGVuYWJsZSBpdCBtb3N0IG9mIHRoZSB0aW1lLgoge1xjYXRjb2RlYFw9PVxhY3RpdmUKQEAgLTU5MDgsNDQgKzY2MDIsNDYgQEAKIAogXGNhdGNvZGVgXEA9MAogCi0lIFxyYXdiYWNrc2xhc2h4eCBvdXRwdXQgb25lIGJhY2tzbGFzaCBjaGFyYWN0ZXIgaW4gY3VycmVudCBmb250CislIFxyYXdiYWNrc2xhc2h4eCBvdXRwdXRzIG9uZSBiYWNrc2xhc2ggY2hhcmFjdGVyIGluIGN1cnJlbnQgZm9udCwKKyUgYXMgaW4gXGNoYXJgXFwuCiBcZ2xvYmFsXGNoYXJkZWZccmF3YmFja3NsYXNoeHg9YFxcCi0le1xjYXRjb2RlYFxcPVxvdGhlcgotJUBnZGVmQHJhd2JhY2tzbGFzaHh4e1x9fQogCi0lIFxyYXdiYWNrc2xhc2ggcmVkZWZpbmVzIFwgYXMgaW5wdXQgdG8gZG8gXHJhd2JhY2tzbGFzaHh4LgorJSBccmF3YmFja3NsYXNoIGRlZmluZXMgYW4gYWN0aXZlIFwgdG8gZG8gXHJhd2JhY2tzbGFzaHh4LgorJSBcb3RoZXJiYWNrc2xhc2ggZGVmaW5lcyBhbiBhY3RpdmUgXCB0byBiZSBhIGxpdGVyYWwgYFwnIGNoYXJhY3RlciB3aXRoCislIGNhdGNvZGUgb3RoZXIuCiB7XGNhdGNvZGVgXFw9XGFjdGl2ZQotQGdkZWZAcmF3YmFja3NsYXNoe0BsZXRcPUByYXdiYWNrc2xhc2h4eCB9fQorIEBnZGVmQHJhd2JhY2tzbGFzaHtAbGV0XD1AcmF3YmFja3NsYXNoeHh9CisgQGdkZWZAb3RoZXJiYWNrc2xhc2h7QGxldFw9QHJlYWxiYWNrc2xhc2h9Cit9CisKKyUgXHJlYWxiYWNrc2xhc2ggaXMgYW4gYWN0dWFsIGNoYXJhY3RlciBgXCcgd2l0aCBjYXRjb2RlIG90aGVyLgore1xjYXRjb2RlYFxcPVxvdGhlciBAZ2RlZkByZWFsYmFja3NsYXNoe1x9fQogCiAlIFxub3JtYWxiYWNrc2xhc2ggb3V0cHV0cyBvbmUgYmFja3NsYXNoIGluIGZpeGVkIHdpZHRoIGZvbnQuCiBcZGVmXG5vcm1hbGJhY2tzbGFzaHt7XHR0XHJhd2JhY2tzbGFzaHh4fX0KIAotJSBcY2F0Y29kZSAxNz0wICAgJSBEZWZpbmUgY29udHJvbC1xCiBcY2F0Y29kZWBcXD1cYWN0aXZlCiAKICUgVXNlZCBzb21ldGltZXMgdG8gdHVybiBvZmYgKGVmZmVjdGl2ZWx5KSB0aGUgYWN0aXZlIGNoYXJhY3RlcnMKICUgZXZlbiBhZnRlciBwYXJzaW5nIHRoZW0uCi1AZGVmQHR1cm5vZmZhY3RpdmV7QGxldCI9QG5vcm1hbGRvdWJsZXF1b3RlCi1AbGV0XD1AcmVhbGJhY2tzbGFzaAotQGxldH49QG5vcm1hbHRpbGRlCi1AbGV0Xj1Abm9ybWFsY2FyZXQKLUBsZXRfPUBub3JtYWx1bmRlcnNjb3JlCi1AbGV0fD1Abm9ybWFsdmVydGljYWxiYXIKLUBsZXQ8PUBub3JtYWxsZXNzCi1AbGV0Pj1Abm9ybWFsZ3JlYXRlcgotQGxldCs9QG5vcm1hbHBsdXMKLUBsZXQkPUBub3JtYWxkb2xsYXJ9CitAZGVmQHR1cm5vZmZhY3RpdmV7JQorICBAbGV0Ij1Abm9ybWFsZG91YmxlcXVvdGUKKyAgQGxldFw9QHJlYWxiYWNrc2xhc2gKKyAgQGxldH49QG5vcm1hbHRpbGRlCisgIEBsZXRePUBub3JtYWxjYXJldAorICBAbGV0Xz1Abm9ybWFsdW5kZXJzY29yZQorICBAbGV0fD1Abm9ybWFsdmVydGljYWxiYXIKKyAgQGxldDw9QG5vcm1hbGxlc3MKKyAgQGxldD49QG5vcm1hbGdyZWF0ZXIKKyAgQGxldCs9QG5vcm1hbHBsdXMKKyAgQGxldCQ9QG5vcm1hbGRvbGxhciAlJCBmb250LWxvY2sgZml4Cit9CiAKLUBkZWZAbm9ybWFsdHVybm9mZmFjdGl2ZXtAbGV0Ij1Abm9ybWFsZG91YmxlcXVvdGUKLUBsZXRcPUBub3JtYWxiYWNrc2xhc2gKLUBsZXR+PUBub3JtYWx0aWxkZQotQGxldF49QG5vcm1hbGNhcmV0Ci1AbGV0Xz1Abm9ybWFsdW5kZXJzY29yZQotQGxldHw9QG5vcm1hbHZlcnRpY2FsYmFyCi1AbGV0PD1Abm9ybWFsbGVzcwotQGxldD49QG5vcm1hbGdyZWF0ZXIKLUBsZXQrPUBub3JtYWxwbHVzCi1AbGV0JD1Abm9ybWFsZG9sbGFyfQorJSBTYW1lIGFzIEB0dXJub2ZmYWN0aXZlIGV4Y2VwdCBvdXRwdXRzIFwgYXMge1x0dFxjaGFyYFxcfSBpbnN0ZWFkIG9mCislIHRoZSBsaXRlcmFsIGNoYXJhY3RlciBgXCcuICAoVGh1cywgXCBpcyBub3QgZXhwYW5kYWJsZSB3aGVuIHRoaXMgaXMgaW4KKyUgZWZmZWN0LikKKyUgCitAZGVmQG5vcm1hbHR1cm5vZmZhY3RpdmV7QHR1cm5vZmZhY3RpdmUgQGxldFw9QG5vcm1hbGJhY2tzbGFzaH0KIAogJSBNYWtlIF8gYW5kICsgXG90aGVyIGNoYXJhY3RlcnMsIHRlbXBvcmFyaWx5LgogJSBUaGlzIGlzIGNhbmNlbGVkIGJ5IEBmaXhiYWNrc2xhc2guCmRpZmYgLS1naXQgYS9yZWFkbGluZS9kb2MvdmVyc2lvbi50ZXhpIGIvcmVhZGxpbmUvZG9jL3ZlcnNpb24udGV4aQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OTgxNmJmCi0tLSAvZGV2L251bGwKKysrIGIvcmVhZGxpbmUvZG9jL3ZlcnNpb24udGV4aQpAQCAtMCwwICsxLDEwIEBACitAaWdub3JlCitDb3B5cmlnaHQgKEMpIDE5ODgtMjAwNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4gCitAZW5kIGlnbm9yZQorCitAc2V0IEVESVRJT04gNS4xLWJldGExCitAc2V0IFZFUlNJT04gNS4xLWJldGExCitAc2V0IFVQREFURUQgMTEgTm92ZW1iZXIgMjAwNQorQHNldCBVUERBVEVELU1PTlRIIE5vdmVtYmVyIDIwMDUKKworQHNldCBMQVNUQ0hBTkdFIEZyaSBOb3YgMTEgMTk6NTA6NTEgRVNUIDIwMDUKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2V4YW1wbGVzL01ha2VmaWxlLmluIGIvcmVhZGxpbmUvZXhhbXBsZXMvTWFrZWZpbGUuaW4KaW5kZXggNzJjOTkwNC4uZTI3YmJjMCAxMDA2NDQKLS0tIGEvcmVhZGxpbmUvZXhhbXBsZXMvTWFrZWZpbGUuaW4KKysrIGIvcmVhZGxpbmUvZXhhbXBsZXMvTWFrZWZpbGUuaW4KQEAgLTQwLDYgKzQwLDggQEAKIENDRkxBR1MgID0gJChERUZTKSAkKExPQ0FMX0NGTEFHUykgJChDUFBGTEFHUykgJChJTkNMVURFUykgJChDRkxBR1MpCiBMREZMQUdTID0gLWcgLUwuLiBATERGTEFHU0AKIAorUFVSSUZZID0gQFBVUklGWUAKKwogUkVBRExJTkVfTElCID0gLi4vbGlicmVhZGxpbmUuYQogSElTVE9SWV9MSUIgPSAuLi9saWJoaXN0b3J5LmEKIApAQCAtNTAsMzMgKzUyLDM1IEBACiAJJChDQykgJChDQ0ZMQUdTKSAtYyAkPAogCiBFWEVDVVRBQkxFUyA9IGZpbGVtYW4gcmx0ZXN0IHJsIHJsY2F0IHJsdmVyc2lvbiBoaXN0ZXhhbXAgCi1PQkpFQ1RTID0gZmlsZW1hbi5vIHJsdGVzdC5vIHJsLm8gcmx2ZXJzaW9uLm8gaGlzdGV4YW1wLm8KK09CSkVDVFMgPSBmaWxlbWFuLm8gcmx0ZXN0Lm8gcmwubyBybGNhdC5vIHJsdmVyc2lvbi5vIGhpc3RleGFtcC5vCiAKIGFsbDogJChFWEVDVVRBQkxFUykKLWV2ZXJ5dGhpbmc6IGFsbCBybGZlCitldmVyeXRoaW5nOiBhbGwKIAogcmw6IHJsLm8gJChSRUFETElORV9MSUIpCi0JJChDQykgJChMREZMQUdTKSAtbyAkQCBybC5vIC1scmVhZGxpbmUgJChURVJNQ0FQX0xJQikKKwkkKFBVUklGWSkgJChDQykgJChMREZMQUdTKSAtbyAkQCBybC5vICQoUkVBRExJTkVfTElCKSAkKFRFUk1DQVBfTElCKQogCiBybGNhdDogcmxjYXQubyAkKFJFQURMSU5FX0xJQikKLQkkKENDKSAkKExERkxBR1MpIC1vICRAIHJsY2F0Lm8gLWxyZWFkbGluZSAkKFRFUk1DQVBfTElCKQorCSQoUFVSSUZZKSAkKENDKSAkKExERkxBR1MpIC1vICRAIHJsY2F0Lm8gJChSRUFETElORV9MSUIpICQoVEVSTUNBUF9MSUIpCiAKIGZpbGVtYW46IGZpbGVtYW4ubyAkKFJFQURMSU5FX0xJQikKLQkkKENDKSAkKExERkxBR1MpIC1vICRAIGZpbGVtYW4ubyAtbHJlYWRsaW5lICQoVEVSTUNBUF9MSUIpCisJJChQVVJJRlkpICQoQ0MpICQoTERGTEFHUykgLW8gJEAgZmlsZW1hbi5vICQoUkVBRExJTkVfTElCKSAkKFRFUk1DQVBfTElCKQogCiBybHRlc3Q6IHJsdGVzdC5vICQoUkVBRExJTkVfTElCKQotCSQoQ0MpICQoTERGTEFHUykgLW8gJEAgcmx0ZXN0Lm8gLWxyZWFkbGluZSAkKFRFUk1DQVBfTElCKQorCSQoUFVSSUZZKSAkKENDKSAkKExERkxBR1MpIC1vICRAIHJsdGVzdC5vICQoUkVBRExJTkVfTElCKSAkKFRFUk1DQVBfTElCKQorCitybHB0eXRlc3Q6IHJscHR5dGVzdC5vICQoUkVBRExJTkVfTElCKQorCSQoUFVSSUZZKSAkKENDKSAkKExERkxBR1MpIC1vICRAIHJscHR5dGVzdC5vICQoUkVBRExJTkVfTElCKSAkKFRFUk1DQVBfTElCKQogCiBybHZlcnNpb246IHJsdmVyc2lvbi5vICQoUkVBRExJTkVfTElCKQotCSQoQ0MpICQoTERGTEFHUykgLW8gJEAgcmx2ZXJzaW9uLm8gLWxyZWFkbGluZSAkKFRFUk1DQVBfTElCKQorCSQoQ0MpICQoTERGTEFHUykgLW8gJEAgcmx2ZXJzaW9uLm8gJChSRUFETElORV9MSUIpICQoVEVSTUNBUF9MSUIpCiAKIGhpc3RleGFtcDogaGlzdGV4YW1wLm8gJChISVNUT1JZX0xJQikKLQkkKENDKSAkKExERkxBR1MpIC1vICRAIGhpc3RleGFtcC5vIC1saGlzdG9yeSAkKFRFUk1DQVBfTElCKQorCSQoUFVSSUZZKSAkKENDKSAkKExERkxBR1MpIC1vICRAIGhpc3RleGFtcC5vIC1saGlzdG9yeSAkKFRFUk1DQVBfTElCKQogCiBjbGVhbiBtb3N0bHljbGVhbjoKIAkkKFJNKSAkKE9CSkVDVFMpCiAJJChSTSkgJChFWEVDVVRBQkxFUykgKi5leGUKLQkkKFJNKSBybGZlLm8gcmxmZQogCiBkaXN0Y2xlYW4gbWFpbnRhaW5lci1jbGVhbjogY2xlYW4KIAkkKFJNKSBNYWtlZmlsZQpAQCAtODYsMTkgKzkwLDEzIEBACiBybC5vOiBybC5jCiBybHZlcnNpb24ubzogcmx2ZXJzaW9uLmMKIGhpc3RleGFtcC5vOiBoaXN0ZXhhbXAuYworcmxjYXQubzogcmxjYXQuYworcmxwdHl0ZXN0Lm86IHJscHR5dGVzdC5jCiAKIGZpbGVtYW4ubzogJCh0b3Bfc3JjZGlyKS9yZWFkbGluZS5oCiBybHRlc3QubzogJCh0b3Bfc3JjZGlyKS9yZWFkbGluZS5oCiBybC5vOiAkKHRvcF9zcmNkaXIpL3JlYWRsaW5lLmgKIHJsdmVyc2lvbi5vOiAkKHRvcF9zcmNkaXIpL3JlYWRsaW5lLmgKIGhpc3RleGFtcC5vOiAkKHRvcF9zcmNkaXIpL2hpc3RvcnkuaAotCi0jIFN0dWZmIGZvciBQZXIgQm90aG5lcidzIGBybGZlJyBwcm9ncmFtCi0gCi1ybGZlOiBybGZlLm8gJChSRUFETElORV9MSUIpICQoSElTVE9SWV9MSUIpCi0JJChDQykgJChMREZMQUdTKSAtbyAkQCBybGZlLm8gLWxyZWFkbGluZSAtbGhpc3RvcnkgJHtURVJNQ0FQX0xJQn0KLQotcmxmZS5vOiBybGZlLmMKLQotcmxmZS5vOiAkKHRvcF9zcmNkaXIpL3JlYWRsaW5lLmgKLXJsZmUubzogJCh0b3Bfc3JjZGlyKS9oaXN0b3J5LmgKK3JsY2F0Lm86ICQodG9wX3NyY2RpcikvcmVhZGxpbmUuaCAkKHRvcF9zcmNkaXIpL2hpc3RvcnkuaAorcmxwdHl0ZXN0Lm86ICQodG9wX3NyY2RpcikvcmVhZGxpbmUuaCAkKHRvcF9zcmNkaXIpL2hpc3RvcnkuaApkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvZXhhbXBsZXMvaGlzdGV4YW1wLmMgYi9yZWFkbGluZS9leGFtcGxlcy9oaXN0ZXhhbXAuYwppbmRleCA0NTY1MWRmLi40ZjA1OWMxIDEwMDY0NAotLS0gYS9yZWFkbGluZS9leGFtcGxlcy9oaXN0ZXhhbXAuYworKysgYi9yZWFkbGluZS9leGFtcGxlcy9oaXN0ZXhhbXAuYwpAQCAtMjYsMTQgKzI2LDE3IEBACiAjICBpbmNsdWRlIDxyZWFkbGluZS9oaXN0b3J5Lmg+CiAjZW5kaWYKIAorI2luY2x1ZGUgPHN0cmluZy5oPgorCiBtYWluIChhcmdjLCBhcmd2KQogICAgICBpbnQgYXJnYzsKICAgICAgY2hhciAqKmFyZ3Y7CiB7CiAgIGNoYXIgbGluZVsxMDI0XSwgKnQ7Ci0gIGludCBsZW4sIGRvbmUgPSAwOworICBpbnQgbGVuLCBkb25lOwogCiAgIGxpbmVbMF0gPSAwOworICBkb25lID0gMDsKIAogICB1c2luZ19oaXN0b3J5ICgpOwogICB3aGlsZSAoIWRvbmUpCkBAIC00Miw3MSArNDUsODAgQEAKICAgICAgIGZmbHVzaCAoc3Rkb3V0KTsKICAgICAgIHQgPSBmZ2V0cyAobGluZSwgc2l6ZW9mIChsaW5lKSAtIDEsIHN0ZGluKTsKICAgICAgIGlmICh0ICYmICp0KQotICAgICAgICB7Ci0gICAgICAgICAgbGVuID0gc3RybGVuICh0KTsKLSAgICAgICAgICBpZiAodFtsZW4gLSAxXSA9PSAnXG4nKQotICAgICAgICAgICAgdFtsZW4gLSAxXSA9ICdcMCc7Ci0gICAgICAgIH0KKwl7CisJICBsZW4gPSBzdHJsZW4gKHQpOworCSAgaWYgKHRbbGVuIC0gMV0gPT0gJ1xuJykKKwkgICAgdFtsZW4gLSAxXSA9ICdcMCc7CisJfQogCiAgICAgICBpZiAoIXQpCi0gICAgICAgIHN0cmNweSAobGluZSwgInF1aXQiKTsKKwlzdHJjcHkgKGxpbmUsICJxdWl0Iik7CiAKICAgICAgIGlmIChsaW5lWzBdKQotICAgICAgICB7Ci0gICAgICAgICAgY2hhciAqZXhwYW5zaW9uOwotICAgICAgICAgIGludCByZXN1bHQ7CisJeworCSAgY2hhciAqZXhwYW5zaW9uOworCSAgaW50IHJlc3VsdDsKIAotICAgICAgICAgIHVzaW5nX2hpc3RvcnkgKCk7CisJICB1c2luZ19oaXN0b3J5ICgpOwogCi0gICAgICAgICAgcmVzdWx0ID0gaGlzdG9yeV9leHBhbmQgKGxpbmUsICZleHBhbnNpb24pOwotICAgICAgICAgIGlmIChyZXN1bHQpCi0gICAgICAgICAgICBmcHJpbnRmIChzdGRlcnIsICIlc1xuIiwgZXhwYW5zaW9uKTsKKwkgIHJlc3VsdCA9IGhpc3RvcnlfZXhwYW5kIChsaW5lLCAmZXhwYW5zaW9uKTsKKwkgIGlmIChyZXN1bHQpCisJICAgIGZwcmludGYgKHN0ZGVyciwgIiVzXG4iLCBleHBhbnNpb24pOwogCi0gICAgICAgICAgaWYgKHJlc3VsdCA8IDAgfHwgcmVzdWx0ID09IDIpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIGZyZWUgKGV4cGFuc2lvbik7Ci0gICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQorCSAgaWYgKHJlc3VsdCA8IDAgfHwgcmVzdWx0ID09IDIpCisJICAgIHsKKwkgICAgICBmcmVlIChleHBhbnNpb24pOworCSAgICAgIGNvbnRpbnVlOworCSAgICB9CiAKLSAgICAgICAgICBhZGRfaGlzdG9yeSAoZXhwYW5zaW9uKTsKLSAgICAgICAgICBzdHJuY3B5IChsaW5lLCBleHBhbnNpb24sIHNpemVvZiAobGluZSkgLSAxKTsKLSAgICAgICAgICBmcmVlIChleHBhbnNpb24pOwotICAgICAgICB9CisJICBhZGRfaGlzdG9yeSAoZXhwYW5zaW9uKTsKKwkgIHN0cm5jcHkgKGxpbmUsIGV4cGFuc2lvbiwgc2l6ZW9mIChsaW5lKSAtIDEpOworCSAgZnJlZSAoZXhwYW5zaW9uKTsKKwl9CiAKICAgICAgIGlmIChzdHJjbXAgKGxpbmUsICJxdWl0IikgPT0gMCkKLSAgICAgICAgZG9uZSA9IDE7CisJZG9uZSA9IDE7CiAgICAgICBlbHNlIGlmIChzdHJjbXAgKGxpbmUsICJzYXZlIikgPT0gMCkKLSAgICAgICAgd3JpdGVfaGlzdG9yeSAoImhpc3RvcnlfZmlsZSIpOworCXdyaXRlX2hpc3RvcnkgKCJoaXN0b3J5X2ZpbGUiKTsKICAgICAgIGVsc2UgaWYgKHN0cmNtcCAobGluZSwgInJlYWQiKSA9PSAwKQotICAgICAgICByZWFkX2hpc3RvcnkgKCJoaXN0b3J5X2ZpbGUiKTsKKwlyZWFkX2hpc3RvcnkgKCJoaXN0b3J5X2ZpbGUiKTsKICAgICAgIGVsc2UgaWYgKHN0cmNtcCAobGluZSwgImxpc3QiKSA9PSAwKQotICAgICAgICB7Ci0gICAgICAgICAgcmVnaXN0ZXIgSElTVF9FTlRSWSAqKnRoZV9saXN0OwotICAgICAgICAgIHJlZ2lzdGVyIGludCBpOworCXsKKwkgIHJlZ2lzdGVyIEhJU1RfRU5UUlkgKip0aGVfbGlzdDsKKwkgIHJlZ2lzdGVyIGludCBpOworCSAgdGltZV90IHR0OworCSAgY2hhciB0aW1lc3RyWzEyOF07CiAKLSAgICAgICAgICB0aGVfbGlzdCA9IGhpc3RvcnlfbGlzdCAoKTsKLSAgICAgICAgICBpZiAodGhlX2xpc3QpCi0gICAgICAgICAgICBmb3IgKGkgPSAwOyB0aGVfbGlzdFtpXTsgaSsrKQotICAgICAgICAgICAgICBwcmludGYgKCIlZDogJXNcbiIsIGkgKyBoaXN0b3J5X2Jhc2UsIHRoZV9saXN0W2ldLT5saW5lKTsKLSAgICAgICAgfQorCSAgdGhlX2xpc3QgPSBoaXN0b3J5X2xpc3QgKCk7CisJICBpZiAodGhlX2xpc3QpCisJICAgIGZvciAoaSA9IDA7IHRoZV9saXN0W2ldOyBpKyspCisJICAgICAgeworCSAgICAgIAl0dCA9IGhpc3RvcnlfZ2V0X3RpbWUgKHRoZV9saXN0W2ldKTsKKwkJaWYgKHR0KQorCQkgIHN0cmZ0aW1lICh0aW1lc3RyLCBzaXplb2YgKHRpbWVzdHIpLCAiJWEgJVIiLCBsb2NhbHRpbWUoJnR0KSk7CisJCWVsc2UKKwkJICBzdHJjcHkgKHRpbWVzdHIsICI/PyIpOworCSAgICAgICAgcHJpbnRmICgiJWQ6ICVzOiAlc1xuIiwgaSArIGhpc3RvcnlfYmFzZSwgdGltZXN0ciwgdGhlX2xpc3RbaV0tPmxpbmUpOworCSAgICAgIH0KKwl9CiAgICAgICBlbHNlIGlmIChzdHJuY21wIChsaW5lLCAiZGVsZXRlIiwgNikgPT0gMCkKLSAgICAgICAgewotICAgICAgICAgIGludCB3aGljaDsKLSAgICAgICAgICBpZiAoKHNzY2FuZiAobGluZSArIDYsICIlZCIsICZ3aGljaCkpID09IDEpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIEhJU1RfRU5UUlkgKmVudHJ5ID0gcmVtb3ZlX2hpc3RvcnkgKHdoaWNoKTsKLSAgICAgICAgICAgICAgaWYgKCFlbnRyeSkKLSAgICAgICAgICAgICAgICBmcHJpbnRmIChzdGRlcnIsICJObyBzdWNoIGVudHJ5ICVkXG4iLCB3aGljaCk7Ci0gICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICBmcmVlIChlbnRyeS0+bGluZSk7Ci0gICAgICAgICAgICAgICAgICBmcmVlIChlbnRyeSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgZnByaW50ZiAoc3RkZXJyLCAibm9uLW51bWVyaWMgYXJnIGdpdmVuIHRvIGBkZWxldGUnXG4iKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorCXsKKwkgIGludCB3aGljaDsKKwkgIGlmICgoc3NjYW5mIChsaW5lICsgNiwgIiVkIiwgJndoaWNoKSkgPT0gMSkKKwkgICAgeworCSAgICAgIEhJU1RfRU5UUlkgKmVudHJ5ID0gcmVtb3ZlX2hpc3RvcnkgKHdoaWNoKTsKKwkgICAgICBpZiAoIWVudHJ5KQorCQlmcHJpbnRmIChzdGRlcnIsICJObyBzdWNoIGVudHJ5ICVkXG4iLCB3aGljaCk7CisJICAgICAgZWxzZQorCQl7CisJCSAgZnJlZSAoZW50cnktPmxpbmUpOworCQkgIGZyZWUgKGVudHJ5KTsKKwkJfQorCSAgICB9CisJICBlbHNlCisJICAgIHsKKwkgICAgICBmcHJpbnRmIChzdGRlcnIsICJub24tbnVtZXJpYyBhcmcgZ2l2ZW4gdG8gYGRlbGV0ZSdcbiIpOworCSAgICB9CisJfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2V4YW1wbGVzL3JsLWZnZXRzLmMgYi9yZWFkbGluZS9leGFtcGxlcy9ybC1mZ2V0cy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1MTJiOTQKLS0tIC9kZXYvbnVsbAorKysgYi9yZWFkbGluZS9leGFtcGxlcy9ybC1mZ2V0cy5jCkBAIC0wLDAgKzEsMzc0IEBACisvKgorRGF0ZTogVHVlLCAxNiBNYXIgMjAwNCAxOTozODo0MCAtMDgwMAorRnJvbTogSGFyb2xkIExldnkgPEhhcm9sZC5MZXZ5QHN5bm9wc3lzLmNvbT4KK1N1YmplY3Q6IGZnZXRzKHN0ZGluKSAtLT4gcmVhZGxpbmUoKSByZWRpcmVjdG9yCitUbzogY2hldEBwby5jd3J1LmVkdQorCitIaSBDaGV0LAorCitIZXJlIGlzIHNvbWV0aGluZyB5b3UgbWF5IGZpbmQgdXNlZnVsIGVub3VnaCB0byBpbmNsdWRlIGluIHRoZSByZWFkbGluZQorZGlzdHJpYnV0aW9uLiAgSXQgaXMgYSBzaGFyZWQgbGlicmFyeSB0aGF0IHJlZGlyZWN0cyBjYWxscyB0byBmZ2V0cyhzdGRpbikKK3RvIHJlYWRsaW5lKCkgdmlhIExEX1BSRUxPQUQsIGFuZCBpdCBzdXBwb3J0cyBhIGN1c3RvbSBwcm9tcHQgYW5kIGxpc3Qgb2YKK2NvbW1hbmQgbmFtZXMuICBNYW55IHBlb3BsZSBoYXZlIGFza2VkIG1lIGZvciB0aGlzIGZpbGUsIHNvIEkgdGhvdWdodCBJJ2QKK3Bhc3MgaXQgeW91ciB3YXkgaW4gaG9wZSBvZiBqdXN0IGluY2x1ZGluZyBpdCB3aXRoIHJlYWRsaW5lIHRvIGJlZ2luIHdpdGguCisKK0Jlc3QgUmVnYXJkcywKKworLUhhcm9sZAorKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAKKyAgRklMRSBOQU1FOiAgICBmZ2V0cy5jICAgICAgICAgICAgICAgICAgVEFSR0VUOiAgIGxpYmZnZXRzLnNvCisgIEFVVEhPUjogICAgICAgSGFyb2xkIExldnkgICAgICAgICAgICAgIFZFUlNJT046ICAxLjAKKyAgICAgICAgICAgICAgICBobGV2eUBzeW5vcHN5cy5jb20KKyAgCisgIEFCU1RSQUNUOiAgQ3VzdG9taXplIGZnZXRzKCkgYmVoYXZpb3IgdmlhIExEX1BSRUxPQUQgaW4gdGhlIGZvbGxvd2luZyB3YXlzOgorICAKKyAgICAtLSBJZiBmZ2V0cyhzdGRpbikgaXMgY2FsbGVkLCByZWRpcmVjdCB0byBHTlUgcmVhZGxpbmUoKSB0byBvYnRhaW4KKyAgICAgICBjb21tYW5kLWxpbmUgZWRpdGluZywgZmlsZS1uYW1lIGNvbXBsZXRpb24sIGhpc3RvcnksIGV0Yy4KKyAgCisgICAgLS0gQSBsaXN0IG9mIGNvbW1hbmRzIGZvciBjb21tYW5kLW5hbWUgY29tcGxldGlvbiBjYW4gYmUgY29uZmlndXJlZCBieQorICAgICAgIHNldHRpbmcgdGhlIGVudmlyb25tZW50LXZhcmlhYmxlIEZHRVRTX0NPTU1BTkRfRklMRSB0byBhIGZpbGUgY29udGFpbmluZworICAgICAgIHRoZSBsaXN0IG9mIGNvbW1hbmRzIHRvIGJlIHVzZWQuCisgIAorICAgIC0tIENvbW1hbmQtbGluZSBlZGl0aW5nIHdpdGggcmVhZGxpbmUoKSB3b3JrcyBiZXN0IHdoZW4gdGhlIHByb21wdCBzdHJpbmcKKyAgICAgICBpcyBrbm93bjsgeW91IGNhbiBzZXQgdGhpcyB3aXRoIHRoZSBGR0VUU19QUk9NUFQgZW52aXJvbm1lbnQgdmFyaWFibGUuCisgIAorICAgIC0tIFRoZXJlIHNwZWNpYWwgc3RyaW5ncyB0aGF0IGxpYmZnZXRzIHdpbGwgaW50ZXJwcmV0IGFzIGludGVybmFsIGNvbW1hbmRzOgorICAKKyAgICAgICAgICAgX2ZnZXRzX3Jlc2V0XyAgICByZXNldCB0aGUgY29tbWFuZCBsaXN0CisgIAorICAgICAgICAgICBfZmdldHNfZHVtcF8gICAgIGR1bXAgc3RhdHVzCisgIAorICAgICAgICAgICBfZmdldHNfZGVidWdfICAgIHRvZ2dsZSBkZWJ1ZyBtZXNzYWdlcworCisgIEhPVyBUTyBCVUlMRDogIEhlcmUgYXJlIGV4YW1wbGVzIG9mIGhvdyB0byBidWlsZCBsaWJmZ2V0cy5zbyBvbiB2YXJpb3VzCisgIHBsYXRmb3JtczsgeW91IHdpbGwgaGF2ZSB0byBhZGQgLUkgYW5kIC1MIGZsYWdzIHRvIGNvbmZpZ3VyZSBhY2Nlc3MgdG8KKyAgdGhlIHJlYWRsaW5lIGhlYWRlciBhbmQgbGlicmFyeSBmaWxlcy4KKworICAoMzItYml0IGJ1aWxkcyB3aXRoIGdjYykKKyAgQUlYOiAgIGdjYyAtZlBJQyBmZ2V0cy5jIC1zaGFyZWQgLW8gbGliZmdldHMuc28gLWxjIC1sZGwgLWxyZWFkbGluZSAtbHRlcm1jYXAKKyAgSFAtVVg6IGdjYyAtZlBJQyBmZ2V0cy5jIC1zaGFyZWQgLW8gbGliZmdldHMuc28gLWxjIC1sZGxkIC1scmVhZGxpbmUKKyAgTGludXg6IGdjYyAtZlBJQyBmZ2V0cy5jIC1zaGFyZWQgLW8gbGliZmdldHMuc28gLWxjIC1sZGwgLWxyZWFkbGluZQorICBTdW5PUzogZ2NjIC1mUElDIGZnZXRzLmMgLXNoYXJlZCAtbyBsaWJmZ2V0cy5zbyAtbGMgLWxkbCAtbGdlbiAtbHJlYWRsaW5lCisKKyAgKDY0LWJpdCBidWlsZHMgd2l0aG91dCBnY2MpCisgIFN1bk9TOiBTVU5Xc3Byby9iaW4vY2MgLURfTEFSR0VGSUxFNjRfU09VUkNFPTEgLXh0YXJnZXQ9dWx0cmEgLXhhcmNoPXY5IFwKKyAgICAgICAgICAgLUtQSUMgZmdldHMuYyAtQmR5bmFtaWMgLWxjIC1sZGwgLWxnZW4gLWx0ZXJtY2FwIC1scmVhZGxpbmUKKyAgCisgIEhPVyBUTyBVU0U6ICBEaWZmZXJlbnQgb3BlcmF0aW5nIHN5c3RlbXMgaGF2ZSBkaWZmZXJlbnQgbGV2ZWxzIG9mIHN1cHBvcnQKKyAgZm9yIHRoZSBMRF9QUkVMT0FEIGNvbmNlcHQuICBUaGUgZ2VuZXJpYyBtZXRob2QgZm9yIDMyLWJpdCBwbGF0Zm9ybXMgaXMgdG8KKyAgcHV0IGxpYnRlcm1jYXAuc28sIGxpYmZnZXRzLnNvLCBhbmQgbGlicmVhZGxpbmUuc28gKHdpdGggYWJzb2x1dGUgcGF0aHMpCisgIGluIHRoZSBMRF9QUkVMT0FEIGVudmlyb25tZW50IHZhcmlhYmxlLCBhbmQgdG8gcHV0IHRoZWlyIHBhcmVudCBkaXJlY3RvcmllcworICBpbiB0aGUgTERfTElCUkFSWV9QQVRIIGVudmlyb25tZW50IHZhcmlhYmxlLiAgVW5mb3J0dW5hdGVseSB0aGVyZSBpcyBubworICBnZW5lcmljIG1ldGhvZCBmb3IgNjQtYml0IHBsYXRmb3JtczsgZS5nLiBmb3IgNjQtYml0IFN1bk9TLCB5b3Ugd291bGQgaGF2ZQorICB0byBidWlsZCBib3RoIDMyLWJpdCBhbmQgNjQtYml0IGxpYmZnZXRzIGFuZCBsaWJyZWFkbGluZSBsaWJyYXJpZXMsIGFuZAorICB1c2UgdGhlIExEX0ZMQUdTXzMyIGFuZCBMRF9GTEFHU182NCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgd2l0aCBwcmVsb2FkIGFuZAorICBsaWJyYXJ5X3BhdGggY29uZmlndXJhdGlvbnMgKGEgbWl4IG9mIDMyLWJpdCBhbmQgNjQtYml0IGNhbGxzIGFyZSBtYWRlIHVuZGVyCisgIDY0LWJpdCBTdW5PUykuCisgIAorICBFWEFNUExFIFdSQVBQRVI6ICBIZXJlIGlzIGFuIGV4YW1wbGUgc2hlbGwgc2NyaXB0IHdyYXBwZXIgYXJvdW5kIHRoZQorICBwcm9ncmFtICJmb28iIHRoYXQgdXNlcyBmZ2V0cygpIGZvciBjb21tYW5kLWxpbmUgaW5wdXQ6CisKKyAgICAgICMhL2Jpbi9jc2gKKyAgICAgICMjIyMgcmVwbGFjZSB0aGlzIHdpdGggdGhlIGxpYnRlcm1jYXAuc28gZGlyZWN0b3J5OgorICAgICAgc2V0IGRpcjEgPSAiL3Vzci9saWIiCisgICAgICAjIyMjIHJlcGxhY2UgdGhpcyB3aXRoIHRoZSBsaWJmZ2V0cy5zbyBkaXJlY3Rvcnk6CisgICAgICBzZXQgZGlyMiA9ICIvdXNyL2ZnZXRzIgorICAgICAgIyMjIyByZXBsYWNlIHRoaXMgd2l0aCB0aGUgbGlicmVhZGxpbmUuc28gZGlyZWN0b3J5OgorICAgICAgc2V0IGRpcjMgPSAiL3Vzci9sb2NhbC9saWIiCisgICAgICBzZXQgbGliMSA9ICIke2RpcjF9L2xpYnRlcm1jYXAuc28iCisgICAgICBzZXQgbGliMiA9ICIke2RpcjJ9L2xpYmZnZXRzLnNvIgorICAgICAgc2V0IGxpYjMgPSAiJHtkaXIzfS9saWJyZWFkbGluZS5zbyIKKyAgICAgIGlmICggIiR7P0xEX1BSRUxPQUR9IiApIHRoZW4KKyAgICAgICAgc2V0ZW52IExEX1BSRUxPQUQgIiR7bGliMX06JHtsaWIyfToke2xpYjN9OiR7TERfUFJFTE9BRH0iCisgICAgICBlbHNlCisgICAgICAgIHNldGVudiBMRF9QUkVMT0FEICIke2xpYjF9OiR7bGliMn06JHtsaWIzfSIKKyAgICAgIGVuZGlmCisgICAgICBpZiAoICIkez9MRF9MSUJSQVJZX1BBVEh9IiApIHRoZW4KKyAgICAgICAgc2V0ZW52IExEX0xJQlJBUllfUEFUSCAiJHtkaXIxfToke2RpcjJ9OiR7ZGlyM306JHtMRF9MSUJSQVJZX1BBVEh9IgorICAgICAgZWxzZQorICAgICAgICBzZXRlbnYgTERfTElCUkFSWV9QQVRIICIke2RpcjF9OiR7ZGlyMn06JHtkaXIzfSIKKyAgICAgIGVuZGlmCisgICAgICBzZXRlbnYgRkdFVFNfQ09NTUFORF9GSUxFICIke2RpcjJ9L2Zvby5jb21tYW5kcyIKKyAgICAgIHNldGVudiBGR0VUU19QUk9NUFQgICAgICAgImZvbz4gIgorICAgICAgZXhlYyAiZm9vIiAkKgorICAKKyAgQ29weXJpZ2h0IChDKakyMDAzLTIwMDQgSGFyb2xkIExldnkuCisgIAorICBUaGlzIGNvZGUgbGlua3MgdG8gdGhlIEdOVSByZWFkbGluZSBsaWJyYXJ5LCBhbmQgYXMgc3VjaCBpcyBib3VuZCBieSB0aGUKKyAgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQorICBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAyIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgIAorICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgb2Z0ZW4gc2hpcHBlZCB3aXRoIEdOVSBzb2Z0d2FyZSwgYW5kIGlzCisgIGdlbmVyYWxseSBrZXB0IGluIGEgZmlsZSBjYWxsZWQgQ09QWUlORyBvciBMSUNFTlNFLiAgSWYgeW91IGRvIG5vdCBoYXZlIGEKKyAgY29weSBvZiB0aGUgbGljZW5zZSwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgNTkgVGVtcGxlIFBsYWNlLAorICBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEgVVNBLgorICAKKyAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCisgIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCisgIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUKKyAgZGV0YWlscy4KKyAgCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworDAorI2luY2x1ZGUgPGRsZmNuLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmdzLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpbmNsdWRlIDxyZWFkbGluZS9yZWFkbGluZS5oPgorI2luY2x1ZGUgPHJlYWRsaW5lL2hpc3RvcnkuaD4KKworCisMCisvKiBmb3IgZHluYW1pY2FsbHkgY29ubmVjdGluZyB0byB0aGUgbmF0aXZlIGZnZXRzKCkgKi8KKyNpZiBkZWZpbmVkKFJUTERfTkVYVCkKKyNkZWZpbmUgUkVBTF9MSUJDIFJUTERfTkVYVAorI2Vsc2UKKyNkZWZpbmUgUkVBTF9MSUJDICgodm9pZCAqKSAtMUwpCisjZW5kaWYKK3R5cGVkZWYgY2hhciAqICggKiBmZ2V0c190ICkgKCBjaGFyICogcywgaW50IG4sIEZJTEUgKiBzdHJlYW0gKSA7CisKKworDAorLyogcHJpdmF0ZSBkYXRhICovCisvKiAtLSB3cml0ZWFibGUgZGF0YSBpcyBzdG9yZWQgaW4gdGhlIHNoYXJlZCBsaWJyYXJ5J3MgZGF0YSBzZWdtZW50CisgICAtLSBldmVyeSBwcm9jZXNzIHRoYXQgdXNlcyB0aGUgc2hhcmVkIGxpYnJhcnkgZ2V0cyBhIHByaXZhdGUgbWVtb3J5IGNvcHkgb2YKKyAgICAgIGl0cyBlbnRpcmUgZGF0YSBzZWdtZW50CisgICAtLSBzdGF0aWMgZGF0YSBpbiB0aGUgc2hhcmVkIGxpYnJhcnkgaXMgbm90IGNvcGllZCB0byB0aGUgYXBwbGljYXRpb24KKyAgIC0tIG9ubHkgcmVhZC1vbmx5IChpLmUuICdjb25zdCcpIGRhdGEgaXMgc3RvcmVkIGluIHRoZSBzaGFyZWQgbGlicmFyeSdzCisgICAgICB0ZXh0IHNlZ21lbnQKKyovCitzdGF0aWMgY2hhciAqKiBteV9mZ2V0c19uYW1lcyAgICAgICAgICAgPSBOVUxMIDsKK3N0YXRpYyBpbnQgICAgIG15X2ZnZXRzX251bWJlcl9vZl9uYW1lcyA9IDAgICAgOworc3RhdGljIGludCAgICAgbXlfZmdldHNfZGVidWdfZmxhZyAgICAgID0gMCAgICA7CisKKworDAorLyogaW52b2tlZCB3aXRoIF9mZ2V0c19yZXNldF8gKi8KK3N0YXRpYyB2b2lkCitteV9mZ2V0c19yZXNldCAoCisgIHZvaWQKKykgeworICBpZiAoIG15X2ZnZXRzX25hbWVzICYmIChteV9mZ2V0c19udW1iZXJfb2ZfbmFtZXMgPiAwKSApIHsKKyAgICBpbnQgaSA7CisgICAgaWYgKCBteV9mZ2V0c19kZWJ1Z19mbGFnICkgeworICAgICAgcHJpbnRmICggImxpYmZnZXRzOiAgcmVtb3ZpbmcgY29tbWFuZCBsaXN0XG4iICkgOworICAgIH0KKyAgICBmb3IgKCBpID0gMCA7IGkgPCBteV9mZ2V0c19udW1iZXJfb2ZfbmFtZXMgOyBpICsrICkgeworICAgICAgaWYgKCBteV9mZ2V0c19uYW1lc1tpXSApIGZyZWUgKCBteV9mZ2V0c19uYW1lc1tpXSApIDsKKyAgICB9CisgICAgZnJlZSAoIG15X2ZnZXRzX25hbWVzICkgOworICB9CisgIG15X2ZnZXRzX25hbWVzID0gTlVMTCA7CisgIG15X2ZnZXRzX251bWJlcl9vZl9uYW1lcyA9IDAgOworfQorCisKKwwKKy8qIGludm9rZWQgd2l0aCBfZmdldHNfZHVtcF8gKi8KK3N0YXRpYyB2b2lkCitteV9mZ2V0c19kdW1wICgKKyAgdm9pZAorKSB7CisgIGNoYXIgKiBzIDsKKyAgcHJpbnRmICggIlxuIiApIDsKKyAgcyA9IGdldGVudiAoICJGR0VUU19QUk9NUFQiICkgOworICBwcmludGYgKCAiRkdFVFNfUFJPTVBUICAgICAgID0gJXNcbiIsIHMgPyBzIDogIiIgKSA7CisgIHMgPSBnZXRlbnYgKCAiRkdFVFNfQ09NTUFORF9GSUxFIiApIDsKKyAgcHJpbnRmICggIkZHRVRTX0NPTU1BTkRfRklMRSA9ICVzXG4iLCBzID8gcyA6ICIiICkgOworICBwcmludGYgKCAiZGVidWcgZmxhZyAgICAgICAgID0gJWRcbiIsIG15X2ZnZXRzX2RlYnVnX2ZsYWcgKSA7CisgIHByaW50ZiAoICIjY29tbWFuZHMgICAgICAgICAgPSAlZFxuIiwgbXlfZmdldHNfbnVtYmVyX29mX25hbWVzICkgOworICBpZiAoIG15X2ZnZXRzX2RlYnVnX2ZsYWcgKSB7CisgICAgaWYgKCBteV9mZ2V0c19uYW1lcyAmJiAobXlfZmdldHNfbnVtYmVyX29mX25hbWVzID4gMCkgKSB7CisgICAgICBpbnQgaSA7CisgICAgICBmb3IgKCBpID0gMCA7IGkgPCBteV9mZ2V0c19udW1iZXJfb2ZfbmFtZXMgOyBpICsrICkgeworICAgICAgICBwcmludGYgKCAiJXNcbiIsIG15X2ZnZXRzX25hbWVzW2ldICkgOworICAgICAgfQorICAgIH0KKyAgfQorICBwcmludGYgKCAiXG4iICkgOworfQorCisKKwwKKy8qIGludm9rZWQgd2l0aCBfZmdldHNfZGVidWdfICovCitzdGF0aWMgdm9pZAorbXlfZmdldHNfZGVidWdfdG9nZ2xlICgKKyAgdm9pZAorKSB7CisgIG15X2ZnZXRzX2RlYnVnX2ZsYWcgPSBteV9mZ2V0c19kZWJ1Z19mbGFnID8gMCA6IDEgOworICBpZiAoIG15X2ZnZXRzX2RlYnVnX2ZsYWcgKSB7CisgICAgcHJpbnRmICggImxpYmZnZXRzOiAgZGVidWcgZmxhZyA9ICVkXG4iLCBteV9mZ2V0c19kZWJ1Z19mbGFnICkgOworICB9Cit9CisKKworDAorLyogcmVhZCB0aGUgY29tbWFuZCBsaXN0IGlmIG5lZWRlZCwgcmV0dXJuIHRoZSBpLXRoIG5hbWUgKi8KK3N0YXRpYyBjaGFyICoKK215X2ZnZXRzX2xvb2t1cCAoCisgIGludCBpbmRleAorKSB7CisgIGlmICggKCEgbXlfZmdldHNfbmFtZXMpIHx8ICghIG15X2ZnZXRzX251bWJlcl9vZl9uYW1lcykgKSB7CisgICAgY2hhciAqIGZuYW1lIDsKKyAgICBGSUxFICogZnAgOworICAgIGZnZXRzX3QgX2ZnZXRzIDsKKyAgICBpbnQgaSA7CisgICAgY2hhciBidWYxWzI1Nl0sIGJ1ZjJbMjU2XSA7CisgICAgZm5hbWUgPSBnZXRlbnYgKCAiRkdFVFNfQ09NTUFORF9GSUxFIiApIDsKKyAgICBpZiAoICEgZm5hbWUgKSB7CisgICAgICBpZiAoIG15X2ZnZXRzX2RlYnVnX2ZsYWcgKSB7CisgICAgICAgIHByaW50ZiAoICJsaWJmZ2V0czogIGVtcHR5IG9yIHVuc2V0IEZHRVRTX0NPTU1BTkRfRklMRVxuIiApIDsKKyAgICAgIH0KKyAgICAgIHJldHVybiBOVUxMIDsKKyAgICB9CisgICAgZnAgPSBmb3BlbiAoIGZuYW1lLCAiciIgKSA7CisgICAgaWYgKCAhIGZwICkgeworICAgICAgaWYgKCBteV9mZ2V0c19kZWJ1Z19mbGFnICkgeworICAgICAgICBwcmludGYgKCAibGliZmdldHM6ICBjYW5ub3Qgb3BlbiAnJXMnIGZvciByZWFkaW5nXG4iLCBmbmFtZSApIDsKKyAgICAgIH0KKyAgICAgIHJldHVybiBOVUxMIDsKKyAgICB9CisgICAgX2ZnZXRzID0gKGZnZXRzX3QpIGRsc3ltICggUkVBTF9MSUJDLCAiZmdldHMiICkgOworICAgIGlmICggISBfZmdldHMgKSB7CisgICAgICBmcHJpbnRmICggc3RkZXJyLAorICAgICAgICAibGliZmdldHM6ICBmYWlsZWQgdG8gZHluYW1pY2FsbHkgbGluayB0byBuYXRpdmUgZmdldHMoKVxuIgorICAgICAgKSA7CisgICAgICByZXR1cm4gTlVMTCA7CisgICAgfQorICAgIGZvciAoIGkgPSAwIDsgX2ZnZXRzKGJ1ZjEsMjU1LGZwKSA7IGkgKysgKSA7CisgICAgaWYgKCAhIGkgKSB7IGZjbG9zZShmcCkgOyByZXR1cm4gTlVMTCA7IH0KKyAgICBteV9mZ2V0c19uYW1lcyA9IChjaGFyKiopIGNhbGxvYyAoIGksIHNpemVvZihjaGFyKikgKSA7CisgICAgcmV3aW5kICggZnAgKSA7CisgICAgaSA9IDAgOworICAgIHdoaWxlICggX2ZnZXRzKGJ1ZjEsMjU1LGZwKSApIHsKKyAgICAgIGJ1ZjFbMjU1XSA9IDAgOworICAgICAgaWYgKCAxID09IHNzY2FuZihidWYxLCIlcyIsYnVmMikgKSB7CisgICAgICAgIG15X2ZnZXRzX25hbWVzW2ldID0gc3RyZHVwKGJ1ZjIpIDsKKyAgICAgICAgaSArKyA7CisgICAgICB9CisgICAgfQorICAgIGZjbG9zZSAoIGZwICkgOworICAgIG15X2ZnZXRzX251bWJlcl9vZl9uYW1lcyA9IGkgOworICAgIGlmICggbXlfZmdldHNfZGVidWdfZmxhZyApIHsKKyAgICAgIHByaW50ZiAoICJsaWJmZ2V0czogIHN1Y2Nlc3NmdWxseSByZWFkICVkIGNvbW1hbmRzXG4iLCBpICkgOworICAgIH0KKyAgfQorICBpZiAoIGluZGV4IDwgbXlfZmdldHNfbnVtYmVyX29mX25hbWVzICkgeworICAgIHJldHVybiBteV9mZ2V0c19uYW1lc1tpbmRleF0gOworICB9IGVsc2UgeworICAgIHJldHVybiBOVUxMIDsKKyAgfQorfQorCisKKwwKKy8qIGdlbmVyYXRlIGEgbGlzdCBvZiBwYXJ0aWFsIG5hbWUgbWF0Y2hlcyBmb3IgcmVhZGxpbmUoKSAqLworc3RhdGljIGNoYXIgKgorbXlfZmdldHNfZ2VuZXJhdG9yICgKKyAgY29uc3QgY2hhciAqIHRleHQsCisgIGludCAgICAgICAgICBzdGF0ZQorKQoreworICBzdGF0aWMgaW50IGxpc3RfaW5kZXgsIGxlbiA7CisgIGNoYXIgKiAgICAgbmFtZSA7CisgIGlmICggISBzdGF0ZSApIHsKKyAgICBsaXN0X2luZGV4ID0gMCA7CisgICAgbGVuID0gc3RybGVuICggdGV4dCApIDsKKyAgfQorICB3aGlsZSAoICggbmFtZSA9IG15X2ZnZXRzX2xvb2t1cChsaXN0X2luZGV4KSApICkgeworICAgIGxpc3RfaW5kZXggKysgOworICAgIGlmICggISBzdHJuY21wICggbmFtZSwgdGV4dCwgbGVuICkgKSB7CisgICAgICByZXR1cm4gKCBzdHJkdXAgKCBuYW1lICkgKSA7CisgICAgfQorICB9CisgIHJldHVybiAoIE5VTEwgKSA7Cit9CisKKworDAorLyogcGFydGlhbCBuYW1lIGNvbXBsZXRpb24gY2FsbGJhY2sgZm9yIHJlYWRsaW5lKCkgKi8KK3N0YXRpYyBjaGFyICoqCitteV9mZ2V0c19jb21wbGV0aW9uICgKKyAgY29uc3QgY2hhciAqIHRleHQsCisgIGludCAgICAgICAgICBzdGFydCwKKyAgaW50ICAgICAgICAgIGVuZAorKQoreworICBjaGFyICoqIG1hdGNoZXMgOworICBtYXRjaGVzID0gTlVMTCA7CisgIGlmICggISBzdGFydCApIHsKKyAgICBtYXRjaGVzID0gcmxfY29tcGxldGlvbl9tYXRjaGVzICggdGV4dCwgbXlfZmdldHNfZ2VuZXJhdG9yICkgOworICB9CisgIHJldHVybiAoIG1hdGNoZXMgKSA7Cit9CisKKworDAorLyogZmdldHMoKSBpbnRlcmNlcHQgKi8KK2NoYXIgKgorZmdldHMgKAorICBjaGFyICogcywKKyAgaW50ICAgIG4sCisgIEZJTEUgKiBzdHJlYW0KKykKK3sKKyAgaWYgKCAhIHMgKSByZXR1cm4gTlVMTCA7CisgIGlmICggc3RyZWFtID09IHN0ZGluICkgeworICAgIGNoYXIgKiBwcm9tcHQgOworICAgIGNoYXIgKiBteV9mZ2V0c19saW5lIDsKKyAgICBybF9hbHJlYWR5X3Byb21wdGVkID0gMSA7CisgICAgcmxfYXR0ZW1wdGVkX2NvbXBsZXRpb25fZnVuY3Rpb24gPSBteV9mZ2V0c19jb21wbGV0aW9uIDsKKyAgICBybF9jYXRjaF9zaWduYWxzID0gMSA7CisgICAgcmxfY2F0Y2hfc2lnd2luY2ggPSAxIDsKKyAgICBybF9zZXRfc2lnbmFscyAoKSA7CisgICAgcHJvbXB0ID0gZ2V0ZW52ICggIkZHRVRTX1BST01QVCIgKSA7CisgICAgZm9yICgKKyAgICAgIG15X2ZnZXRzX2xpbmUgPSAwIDsgISBteV9mZ2V0c19saW5lIDsgbXlfZmdldHNfbGluZT1yZWFkbGluZShwcm9tcHQpCisgICAgKSA7CisgICAgaWYgKCAhIHN0cm5jbXAobXlfZmdldHNfbGluZSwgIl9mZ2V0c19yZXNldF8iLCAxMykgKSB7CisgICAgICBteV9mZ2V0c19yZXNldCAoKSA7CisgICAgICBmcmVlICggbXlfZmdldHNfbGluZSApIDsKKyAgICAgIHN0cmNweSAoIHMsICJcbiIgKSA7CisgICAgICByZXR1cm4gKCBzICkgOworICAgIH0KKyAgICBpZiAoICEgc3RybmNtcChteV9mZ2V0c19saW5lLCAiX2ZnZXRzX2R1bXBfIiwgMTIpICkgeworICAgICAgbXlfZmdldHNfZHVtcCAoKSA7CisgICAgICBmcmVlICggbXlfZmdldHNfbGluZSApIDsKKyAgICAgIHN0cmNweSAoIHMsICJcbiIgKSA7CisgICAgICByZXR1cm4gKCBzICkgOworICAgIH0KKyAgICBpZiAoICEgc3RybmNtcChteV9mZ2V0c19saW5lLCAiX2ZnZXRzX2RlYnVnXyIsIDEzKSApIHsKKyAgICAgIG15X2ZnZXRzX2RlYnVnX3RvZ2dsZSAoKSA7CisgICAgICBmcmVlICggbXlfZmdldHNfbGluZSApIDsKKyAgICAgIHN0cmNweSAoIHMsICJcbiIgKSA7CisgICAgICByZXR1cm4gKCBzICkgOworICAgIH0KKyAgICAodm9pZCkgc3RybmNweSAoIHMsIG15X2ZnZXRzX2xpbmUsIG4tMSApIDsKKyAgICAodm9pZCkgc3RyY2F0ICggcywgIlxuIiApIDsKKyAgICBpZiAoICpteV9mZ2V0c19saW5lICkgYWRkX2hpc3RvcnkgKCBteV9mZ2V0c19saW5lICkgOworICAgIGZyZWUgKCBteV9mZ2V0c19saW5lICkgOworICAgIHJldHVybiAoIHMgKSA7CisgIH0gZWxzZSB7CisgICAgc3RhdGljIGZnZXRzX3QgX2ZnZXRzIDsKKyAgICBfZmdldHMgPSAoZmdldHNfdCkgZGxzeW0gKCBSRUFMX0xJQkMsICJmZ2V0cyIgKSA7CisgICAgaWYgKCAhIF9mZ2V0cyApIHsKKyAgICAgIGZwcmludGYgKCBzdGRlcnIsCisgICAgICAgICJsaWJmZ2V0czogIGZhaWxlZCB0byBkeW5hbWljYWxseSBsaW5rIHRvIG5hdGl2ZSBmZ2V0cygpXG4iCisgICAgICApIDsKKyAgICAgIHN0cmNweSAoIHMsICJcbiIgKSA7CisgICAgICByZXR1cm4gKCBzICkgOworICAgIH0KKyAgICByZXR1cm4gKAorICAgICAgX2ZnZXRzICggcywgbiwgc3RyZWFtICkKKyAgICApIDsKKyAgfQorfQpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvZXhhbXBsZXMvcmwuYyBiL3JlYWRsaW5lL2V4YW1wbGVzL3JsLmMKaW5kZXggZDI2MDQ4OS4uYzYwOGMxNSAxMDA2NDQKLS0tIGEvcmVhZGxpbmUvZXhhbXBsZXMvcmwuYworKysgYi9yZWFkbGluZS9leGFtcGxlcy9ybC5jCkBAIC0zMSwxMiArMzEsMTkgQEAKIAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSAicG9zaXhzdGF0LmgiCisKKyNpZmRlZiBIQVZFX1NURExJQl9ICisjICBpbmNsdWRlIDxzdGRsaWIuaD4KKyNlbHNlIAorZXh0ZXJuIHZvaWQgZXhpdCgpOworI2VuZGlmCiAKICNpZiBkZWZpbmVkIChSRUFETElORV9MSUJSQVJZKQorIyAgaW5jbHVkZSAicG9zaXhzdGF0LmgiCiAjICBpbmNsdWRlICJyZWFkbGluZS5oIgogIyAgaW5jbHVkZSAiaGlzdG9yeS5oIgogI2Vsc2UKKyMgIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CiAjICBpbmNsdWRlIDxyZWFkbGluZS9yZWFkbGluZS5oPgogIyAgaW5jbHVkZSA8cmVhZGxpbmUvaGlzdG9yeS5oPgogI2VuZGlmCmRpZmYgLS1naXQgYS9yZWFkbGluZS9leGFtcGxlcy9ybGNhdC5jIGIvcmVhZGxpbmUvZXhhbXBsZXMvcmxjYXQuYwppbmRleCAxNzZiOWY0Li4zM2FlYTRhIDEwMDY0NAotLS0gYS9yZWFkbGluZS9leGFtcGxlcy9ybGNhdC5jCisrKyBiL3JlYWRsaW5lL2V4YW1wbGVzL3JsY2F0LmMKQEAgLTQwLDYgKzQwLDEyIEBACiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KIAorI2lmZGVmIEhBVkVfU1RETElCX0gKKyMgIGluY2x1ZGUgPHN0ZGxpYi5oPgorI2Vsc2UgCitleHRlcm4gdm9pZCBleGl0KCk7CisjZW5kaWYKKwogI2lmbmRlZiBlcnJubwogZXh0ZXJuIGludCBlcnJubzsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvZXhhbXBsZXMvcmxmZS9DaGFuZ2VMb2cgYi9yZWFkbGluZS9leGFtcGxlcy9ybGZlL0NoYW5nZUxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTQxYjJiCi0tLSAvZGV2L251bGwKKysrIGIvcmVhZGxpbmUvZXhhbXBsZXMvcmxmZS9DaGFuZ2VMb2cKQEAgLTAsMCArMSwzNyBAQAorMjAwNC0xMS0wNCAgUGVyIEJvdGhuZXIgIDxwZXJAYm90aG5lci5jb20+CisKKwkqIHB0eS5jOiAgSW1wb3J0IGZyb20gc2NyZWVuLTQuMC4yLgorCSogY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbiwgY29uZmlnLmguaW46ICBTZXQgdXAgYXV0b2NvbmYgaGFuZGxpbmcsCisJY29weWluZyBhIGJ1bmsgb2Ygc3R1ZmYgb3ZlciBmcm9tIHNjcmVlbi4KKwkqIHJsZmUuYzogIFVzZSBPcGVuUFRZIGZyb20gcHR5LmMgaW5zdGVhZCBvZiBnZXRfbWFzdGVyX3B0eS4KKworMjAwNC0xMS0wMyAgUGVyIEJvdGhuZXIgIDxwZXJAYm90aG5lci5jb20+CisKKwkqIHJsZmUuYzogIEdldCBpbnB1dCBlbXBoYXNpcyAoYm9sZGVuaW5nKSBtb3JlIHJvYnVzdC4KKworCSogcmxmZS5jOiAgVmFyaW91cyBjbGVhbnVwcyBvbiBjb21tZW50cyBhbmQgbmFtZXMuCisKKzIwMDMtMTEtMDcgV29sZmdhbmcgVGFldWJlciA8d29sZmdhbmdfdGFldWJlckBhZ2lsZW50LmNvbT4KKworCSogU3BlY2lmeSBhIGhpc3RvcnkgZmlsZSBhbmQgdGhlIHNpemUgb2YgdGhlIGhpc3RvcnkgZmlsZSB3aXRoIGNvbW1hbmQKKwkqIGxpbmUgb3B0aW9uczsgdXNlIEVESVRPUi9WSVNVQUwgdG8gc2V0IHZpL2VtYWNzIHByZWZlcmVuY2UuCisKKzE5OTktMDktMDMgIENoZXQgUmFtZXkgPGNoZXRAbmlrZS5pbnMuY3dydS5lZHU+CisKKwkqIGZlcC5jOiBNZW1tb3ZlIGlzIG5vdCB1bml2ZXJzYWxseSBhdmFpbGFibGUuICBUaGlzIHBhdGNoIGFzc3VtZXMKKyAJdGhhdCBhbiBhdXRvY29uZiB0ZXN0IGhhcyBiZWVuIHBlcmZvcm1lZCwgYW5kIHRoYXQgbWVtY3B5IGlzCisgCWF2YWlsYWJsZSB3aXRob3V0IGNoZWNraW5nLgorCisJKiBmZXAuYzogVkRJU0NBUkQgaXMgbm90IHVuaXZlcnNhbGx5IGF2YWlsYWJsZSwgZXZlbiB3aGVuIHRlcm1pb3MgaXMuCisKKwkqIGZlcC5jOiBJZiBhIHN5c3RlbSBkb2Vzbid0IGhhdmUgVElPQ1NDVFRZLCB0aGUgZmlyc3QgYG9wZW4nCisgCXBlcmZvcm1lZCBhZnRlciBzZXRzaWQgYWxsb2NhdGVzIGEgY29udHJvbGxpbmcgdGVybWluYWwuICBUaGUKKyAJb3JpZ2luYWwgY29kZSB3b3VsZCBsZWF2ZSB0aGUgY2hpbGQgcHJvY2VzcyBydW5uaW5nIG9uIHRoZSBzbGF2ZSBwdHkKKyAJd2l0aG91dCBhIGNvbnRyb2xsaW5nIHR0eSBpZiBUSU9DU0NUVFkgd2FzIG5vdCBhdmFpbGFibGUuCisKKwkqIGZlcC5jOiBNb3N0IHZlcnNpb25zIG9mIFNWUjQsIGluY2x1ZGluZyBzb2xhcmlzLCBkb24ndCBhbGxvdworCXRlcm1pbmFsIGlvY3RsIGNhbGxzIG9uIHRoZSBtYXN0ZXIgc2lkZSBvZiB0aGUgcHR5LgorCisxOTk5LTA4LTI4ICBQZXIgQm90aG5lciAgPHBlckBib3RobmVyLmNvbT4KKworCSogZmVwLmM6ICBJbml0aWFsIHJlbGVhc2UuCmRpZmYgLS1naXQgYS9yZWFkbGluZS9leGFtcGxlcy9ybGZlL01ha2VmaWxlLmluIGIvcmVhZGxpbmUvZXhhbXBsZXMvcmxmZS9NYWtlZmlsZS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NjUzZGVjCi0tLSAvZGV2L251bGwKKysrIGIvcmVhZGxpbmUvZXhhbXBsZXMvcmxmZS9NYWtlZmlsZS5pbgpAQCAtMCwwICsxLDE3NiBAQAorIworIyBNYWtlZmlsZSB0ZW1wbGF0ZSBmb3IgcmxmZSAKKyMKKyMgU2VlIG1hY2hpbmUgZGVwZW5kYW50IGNvbmZpZy5oIGZvciBtb3JlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4KKyMKKworc3JjZGlyID0gQHNyY2RpckAKK1ZQQVRIID0gQHNyY2RpckAKKworREVTVERJUiA9IAorCisjIFdoZXJlIHRvIGluc3RhbGwgc2NyZWVuLgorCitwcmVmaXggPSBAcHJlZml4QAorZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACisKKyMgZG9uJ3QgZm9yZ2V0IHRvIGNoYW5nZSBtYW5kaXIgYW5kIGluZm9kaXIgaW4gZG9jL01ha2VmaWxlLgorYmluZGlyICA9ICQoZXhlY19wcmVmaXgpL2JpbgorCitWRVJTSU9OID0gQFZFUlNJT05ACitTQ1JFRU4gPSBzY3JlZW4tJChWRVJTSU9OKQorCitDQyA9IEBDQ0AKK0NGTEFHUyA9IEBDRkxBR1NACitDUFBGTEFHUyA9IEBDUFBGTEFHU0AKKyNMREZMQUdTID0gLUwkKFJFQURMSU5FX0RJUikKK0xERkxBR1MgPSBATERGTEFHU0AKK0xJQlMgPSAtbHJlYWRsaW5lIC1saGlzdG9yeSAtbG5jdXJzZXMKKworQ1BQPUBDUFBACitDUFBfREVQRU5EPSQoQ0MpIC1NTQorCitJTlNUQUxMID0gQElOU1RBTExACitJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAorSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKKworQVdLID0gQEFXS0AKKworT1BUSU9OUz0KKyNPUFRJT05TPSAtRERFQlVHCisKK1NIRUxMPS9iaW4vc2gKKworQ0ZJTEVTPQlybGZlLmMgcHR5LmMKK0hGSUxFUz0gZXh0ZXJuLmggb3MuaCBzY3JlZW4uaAorRVhUUkFfRElTVD1jb25maWd1cmUuaW4gY29uZmlndXJlIE1ha2VmaWxlLmluIGNvbmZpZy5oLmluIENoYW5nZUxvZyBSRUFETUUKK09GSUxFUz0JcmxmZS5vIHB0eS5vCisKK2FsbDoJcmxmZQorCitybGZlOiAkKE9GSUxFUykKKwkkKENDKSAkKExERkxBR1MpIC1vICRAICQoT0ZJTEVTKSAkKExJQlMpCisKK3JsZmUtJChWRVJTSU9OKS50YXIuZ3o6CisJdGFyIGN6ZiAkQCAkKENGSUxFUykgJChIRklMRVMpICQoRVhUUkFfRElTVCkKKworLmMubzoKKwkkKENDKSAtYyAtSS4gLUkkKHNyY2RpcikgJChNX0NGTEFHUykgJChERUZTKSAkKE9QVElPTlMpICQoQ0ZMQUdTKSAkPAorCitpbnN0YWxsX2JpbjogLnZlcnNpb24gc2NyZWVuCisJLWlmIFsgLWYgJChERVNURElSKSQoYmluZGlyKS8kKFNDUkVFTikgXSAmJiBbICEgLWYgJChERVNURElSKSQoYmluZGlyKS8kKFNDUkVFTikub2xkIF07IFwKKwkJdGhlbiBtdiAkKERFU1RESVIpJChiaW5kaXIpLyQoU0NSRUVOKSAkKERFU1RESVIpJChiaW5kaXIpLyQoU0NSRUVOKS5vbGQ7IGZpCisJJChJTlNUQUxMX1BST0dSQU0pIHNjcmVlbiAkKERFU1RESVIpJChiaW5kaXIpLyQoU0NSRUVOKQorCS1jaG93biByb290ICQoREVTVERJUikkKGJpbmRpcikvJChTQ1JFRU4pICYmIGNobW9kIDQ3NTUgJChERVNURElSKSQoYmluZGlyKS8kKFNDUkVFTikKKyMgVGhpcyBkb2Vzbid0IHdvcmsgaWYgJChiaW5kaXIpL3NjcmVlbiBpcyBhIHN5bWxpbmsKKwktaWYgWyAtZiAkKERFU1RESVIpJChiaW5kaXIpL3NjcmVlbiBdICYmIFsgISAtZiAkKERFU1RESVIpJChiaW5kaXIpL3NjcmVlbi5vbGQgXTsgdGhlbiBtdiAkKERFU1RESVIpJChiaW5kaXIpL3NjcmVlbiAkKERFU1RESVIpJChiaW5kaXIpL3NjcmVlbi5vbGQ7IGZpCisJcm0gLWYgJChERVNURElSKSQoYmluZGlyKS9zY3JlZW4KKwkoY2QgJChERVNURElSKSQoYmluZGlyKSAmJiBsbiAtc2YgJChTQ1JFRU4pIHNjcmVlbikKKwljcCAkKHNyY2RpcikvdXRmOGVuY29kaW5ncy8/PyAkKERFU1RESVIpJChTQ1JFRU5FTkNPRElOR1MpCisKKwordW5pbnN0YWxsOiAudmVyc2lvbgorCXJtIC1mICQoREVTVERJUikkKGJpbmRpcikvJChTQ1JFRU4pCisJcm0gLWYgJChERVNURElSKSQoYmluZGlyKS9zY3JlZW4KKwktbXYgJChERVNURElSKSQoYmluZGlyKS9zY3JlZW4ub2xkICQoREVTVERJUikkKGJpbmRpcikvc2NyZWVuCisJcm0gLWYgJChERVNURElSKSQoRVRDU0NSRUVOUkMpCisJY2QgZG9jOyAkKE1BS0UpIHVuaW5zdGFsbAorCitzaGFkb3c6CisJbWtkaXIgc2hhZG93OworCWNkIHNoYWRvdzsgbG4gLXMgLi4vKi5bY2hdIC4uLyouaW4gLi4vKi5zaCAuLi9jb25maWd1cmUgLi4vZG9jIC4uL3Rlcm1pbmZvIC4uL2V0YyAuCisJcm0gLWYgc2hhZG93L3Rlcm0uaCBzaGFkb3cvdHR5LmMgc2hhZG93L2NvbW0uaCBzaGFkb3cvb3NkZWYuaAorCWVjaG8gImluc3RhbGwgYWxsIE1ha2VmaWxlcyBhbmQgY29uZmlnOiIgPiBzaGFkb3cvTWFrZWZpbGUKKwllY2hvICIJcm0gLWYgY29uZmlnLmNhY2hlIiA+PiBzaGFkb3cvTWFrZWZpbGUKKwllY2hvICIJc2ggLi9jb25maWd1cmUiID4+IHNoYWRvdy9NYWtlZmlsZQorCit0ZXJtLmg6IHRlcm0uYyB0ZXJtLnNoCisJQVdLPSQoQVdLKSBzcmNkaXI9JChzcmNkaXIpIHNoICQoc3JjZGlyKS90ZXJtLnNoCisKK2ttYXBkZWYuYzogdGVybS5oCisKK3R0eS5jOgl0dHkuc2ggCisJc2ggJChzcmNkaXIpL3R0eS5zaCB0dHkuYworCittb3N0bHljbGVhbjoKKwlybSAtZiAkKE9GSUxFUykgcmxmZSAqLm8KKworY2xlYW4gY2VsYW46IG1vc3RseWNsZWFuCisJcm0gLWYgdHR5LmMgdGVybS5oIGNvbW0uaCBvc2RlZi5oIGttYXBkZWYuYyBjb3JlCisKKyMgRGVsZXRlIGFsbCBmaWxlcyBmcm9tIHRoZSBjdXJyZW50IGRpcmVjdG9yeSB0aGF0IGFyZSBjcmVhdGVkIGJ5IAorIyBjb25maWd1cmluZyBvciBidWlsZGluZyB0aGUgcHJvZ3JhbS4KKyMgYnVpbGRpbmcgb2YgdGVybS5oL2NvbW0uaCByZXF1aXJlcyBhd2suIEtlZXAgaXQgaW4gdGhlIGRpc3RyaWJ1dGlvbgorIyB3ZSBrZWVwIGNvbmZpZy5oLCBhcyB0aGlzIGZpbGUga25vd3Mgd2hlcmUgJ21ha2UgZGlzdCcgZmluZHMgdGhlIEVUQ1NDUkVFTlJDLgorI2Rpc3RjbGVhbjoJbW9zdGx5Y2xlYW4KKyMJcm0gLWYgJChTQ1JFRU4pLnRhciAkKFNDUkVFTikudGFyLmd6CisjCXJtIC1mIGNvbmZpZy5zdGF0dXMgTWFrZWZpbGUKKyMJcm0gLWYgb3NkZWYuaCBkb2MvTWFrZWZpbGUKKworbWFpbnRhaW5lci1jbGVhbjoKKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIG5vdCBldmVuIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2U7IgorCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKKworCisjIERlbGV0ZSBldmVyeXRoaW5nIGZyb20gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHRoYXQgY2FuIGJlCisjIHJlY29uc3RydWN0ZWQgd2l0aCB0aGlzIE1ha2VmaWxlLgorcmVhbGNsZWFuOiAudmVyc2lvbiBtb3N0bHljbGVhbgorCXJtIC1mICQoU0NSRUVOKS50YXIgJChTQ1JFRU4pLnRhci5negorCXJtIC1mIGNvbmZpZy5zdGF0dXMgTWFrZWZpbGUgZG9jL01ha2VmaWxlCisJcm0gLWYgdHR5LmMgdGVybS5oIGNvbW0uaCBvc2RlZi5oIGttYXBkZWYuYworCXJtIC1mIGNvbmZpZy5oCisJZWNobyAiaW5zdGFsbCBhbGwgTWFrZWZpbGVzIGFuZCBjb25maWc6IiA+IE1ha2VmaWxlCisJZWNobyAiICBzaCAuL2NvbmZpZ3VyZSIgPj4gTWFrZWZpbGUKKwordGFncyBUQUdTOiAkKENGSUxFUykKKwktY3RhZ3MgICAgKi5zaCAkKENGSUxFUykgKi5oCisJLWN0YWdzIC1lICouc2ggJChDRklMRVMpICouaAorCitkaXN0OiAudmVyc2lvbiAkKFNDUkVFTikudGFyLmd6CisKKworIyBQZXJmb3JtIHNlbGYtdGVzdHMgKGlmIGFueSkuCitjaGVjazoKKworY29uZmlnOgorCXJtIC1mIGNvbmZpZy5jYWNoZQorCXNoIC4vY29uZmlndXJlCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisudmVyc2lvbjoKKwlAcmV2PWBzZWQgPCAkKHNyY2RpcikvcGF0Y2hsZXZlbC5oIC1uIC1lICcvI2RlZmluZSBSRVYvcy8jZGVmaW5lIFJFViAgKi8vcCdgOyBcCisJdmVycz1gc2VkIDwgJChzcmNkaXIpL3BhdGNobGV2ZWwuaCAtbiAtZSAnLyNkZWZpbmUgVkVSUy9zLyNkZWZpbmUgVkVSUyAgKi8vcCdgOyBcCisJcGF0PWBzZWQgPCAkKHNyY2RpcikvcGF0Y2hsZXZlbC5oIC1uIC1lICcvI2RlZmluZSBQQVRDSExFVkVML3MvI2RlZmluZSBQQVRDSExFVkVMICAqLy9wJ2A7IFwKKwlpZiBbICIkJHtyZXZ9LiQke3ZlcnN9LiQke3BhdH0iICE9ICIkKFZFUlNJT04pIiBdOyB0aGVuIFwKKwllY2hvICJUaGlzIGRpc3RyaWJ1dGlvbiBpcyBzY3JlZW4tJCR7cmV2fS4kJHt2ZXJzfS4kJHtwYXR9LCBidXQiOyBcCisJZWNobyAidGhlIE1ha2VmaWxlIGlzIGZyb20gJChWRVJTSU9OKS4gUGxlYXNlIHVwZGF0ZSEiOyBleGl0IDE7IGZpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworbWRlcGVuZDogJChDRklMRVMpIHRlcm0uaAorCUBybSAtZiBERVBFTkQgOyBcCisJZm9yIGkgaW4gJHtDRklMRVN9IDsgZG8gXAorCSAgZWNobyAiJCRpIiA7IFwKKwkgIGVjaG8gYGVjaG8gIiQkaSIgfCBzZWQgLWUgJ3MvLmMkJC8uby8nYCI6ICQkaSIgYFwKKyAgICAgICAgICAgIGNjIC1FICQkaSB8XAorICAgICAgICAgICAgZ3JlcCAnXiMgLioiXC4vLipcLmgiJyB8XAorICAgICAgICAgICAgKHNvcnQgLXQnIicgLXUgLWsgMiwyIDI+L2Rldi9udWxsIHx8IHNvcnQgLXQnIicgLXUgKzEgLTIpIHxcCisgICAgICAgICAgICBzZWQgLWUgJ3MvLioiXC5cL1woLipcKSIuKi9cMS8nXAorICAgICAgICAgIGAgPj4gREVQRU5EIDsgXAorCWRvbmUKKworZGVwZW5kOiBkZXBlbmQuaW4KKwkuL2NvbmZpZy5zdGF0dXMgfHwgLi9jb25maWd1cmUKKworZGVwZW5kLmluOiAkKENGSUxFUykgdGVybS5oCisJY3AgTWFrZWZpbGUuaW4gTWFrZWZpbGUuaW5+CisJc2VkIC1lICcvXCNcI1wjIERlcGVuZGVuY2llcy9xJyA8IE1ha2VmaWxlLmluID4gdG1wX21ha2UKKwlmb3IgaSBpbiAkKENGSUxFUyk7IGRvIGVjaG8gJCRpOyAkKENQUF9ERVBFTkQpICQkaSA+PiB0bXBfbWFrZTsgZG9uZSAKKwltdiB0bXBfbWFrZSBNYWtlZmlsZS5pbgorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyMjIyBEZXBlbmRlbmNpZXM6CitwdHkubzogcHR5LmMgY29uZmlnLmgKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2V4YW1wbGVzL3JsZmUvUkVBRE1FIGIvcmVhZGxpbmUvZXhhbXBsZXMvcmxmZS9SRUFETUUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWUxZjY4OQotLS0gL2Rldi9udWxsCisrKyBiL3JlYWRsaW5lL2V4YW1wbGVzL3JsZmUvUkVBRE1FCkBAIC0wLDAgKzEsNzggQEAKK3JsZmUgKFJlYWRMaW5lIEZyb250LUVuZCkgaXMgYSAidW5pdmVyc2FsIHdyYXBwZXIiIGFyb3VuZCByZWFkbGluZS4KK1lvdSBzcGVjaWZ5IGFuIGludGVyYWN0aXZlIHByb2dyYW0gdG8gcnVuICh0eXBpY2FsbHkgYSBzaGVsbCksIGFuZAorcmVhZGxpbmUgaXMgdXNlZCB0byBlZGl0IGlucHV0IGxpbmVzLgorCitUaGVyZSBhcmUgb3RoZXIgc3VjaCBmcm9udC1lbmRzOyB3aGF0IGRpc3Rpbmd1aXNoZXMgdGhpcyBvbmUgaXMgdGhhdAoraXQgbW9uaXRvcnMgdGhlIHN0YXRlIG9mIHRoZSBpbmZlcmlvciBwdHksIGFuZCBpZiB0aGUgaW5mZXJpb3IgcHJvZ3JhbQorc3dpdGNoZXMgaXRzIHRlcm1pbmFsIHRvIHJhdyBtb2RlLCB0aGVuIHJsZmUgcGFzc2VzIHlvdXIgY2hhcmFjdGVycwordGhyb3VnaCBkaXJlY3RseS4gIFRoaXMgYmFzaWNhbGx5IG1lYW5zIHlvdSBjYW4gcnVuIHlvdXIgZW50aXJlCitzZXNzaW9uIChpbmNsdWRpbmcgYmFzaCBhbmQgdGVybWluYWwtbW9kZSBlbWFjcykgdW5kZXIgcmxmZS4KKworRkVBVFVSRVMKKworKiBDYW4gdXNlIGFsbCByZWFkbGluZSBjb21tYW5kcyAoYW5kIGhpc3RvcnkpIGluIGNvbW1hbmRzIHRoYXQKK3JlYWQgaW5wdXQgbGluZXMgaW4gImNhbm9uaWNhbCBtb2RlIiAtIGV2ZW4gJ2NhdCchCisKKyogQXV0b21hdGljYWxseSBzd2l0Y2hlcyBiZXR3ZWVuICJyZWFkbGluZS1lZGl0aW5nIG1vZGUiIGFuZCAicmF3IG1vZGUiCitkZXBlbmRpbmcgb24gdGhlIHRlcm1pbmFsIG1vZGUuICBJZiB0aGUgaW5mZXJpb3IgcHJvZ3JhbSBpbnZva2VzCityZWFkbGluZSBpdHNlbGYsIGl0IHdpbGwgZG8gaXRzIG93biBsaW5lIGVkaXRpbmcuICAoVGhlIGluZmVyaW9yCityZWFkbGluZSB3aWxsIG5vdCBrbm93IGFib3V0IHJsZmUsIGFuZCBpdCB3aWxsIGhhdmUgaXRzIG93biBoaXN0b3J5LikKK1lvdSBjYW4gZXZlbiBydW4gcHJvZ3JhbXMgbGlrZSAnZW1hdnMgLW53JyBhbmQgJ3ZpJyB1bmRlciBybGZlLgorVGhlIGdvYWwgaXMgeW91IGNvdWxkIGxlYXZlIHJsZmUgYWx3YXlzIG9uIHdpdGhvdXQgZXZlbiBrbm93aW5nCithYm91dCBpdC4gIChXZSdyZSBub3QgcXVpdGUgdGhlcmUsIGJ1dCBpdCB3b3JrcyB0b2xlcmFibHkgd2VsbC4pCisKKyogVGhlIGlucHV0IGxpbmUgKGFmdGVyIGFueSBwcm9tcHQpIGlzIGNoYW5nZWQgdG8gYm9sZC1mYWNlLgorCitJTlNUQUxMCisKK1RoZSB1c3VhbDogLi9jb25maWd1cmUgJiYgbWFrZSAmJiBtYWtlIGluc3RhbGwKKworTm90ZSBzbyBmYXIgcmxmZSBoYXMgb25seSBiZWVuIHRlc3RlZCBvbiBHTlUgTGludXggKEZlZG9yYSBDb3JlIDIpCithbmQgTWFjIE9TIFggKDEwLjMpLgorCitUaGlzIGFzc3VtZXMgcmVhZGxpbmUgaGVhZGVyIGZpbGVzIGFuZCBsaWJyYXJpZXMgYXJlIGluIHRoZSBkZWZhdWx0CitwbGFjZXMuICBJZiBub3QsIHlvdSBjYW4gY3JlYXRlIGEgbGluayBuYW1lZCByZWFkbGluZSBwb2ludGluZyB0byB0aGUKK3JlYWRsaW5lIHNvdXJjZXMuICBUbyBsaW5rIHdpdGggbGlicmVhZGxpbmUuYSBhbmQgbGliaGlzdG9yeS5hCit5b3UgY2FuIGNvcHkgb3IgbGluayB0aGVtLCBvciBhZGQgTERGTEFHUz0nLS9wYXRoL3RvL3JlYWRsaW5lJyB0bwordGhlIG1ha2UgY29tbWFuZC1saW5lLgorCitVU0FHRQorCitKdXN0IHJ1biBpdC4gIFRoYXQgYnkgZGVmYXVsdCBydW5zIGJhc2guICBZb3UgY2FuIHJ1biBzb21lIG90aGVyCitjb21tYW5kIGJ5IGdpdmluZyBpdCBhcyBjb21tYW5kLWxpbmUgYXJndW1lbnRzLgorCitUaGVyZSBhcmUgYSBmZXcgdHdlYWtzOiAgLWggYWxsb3dzIHlvdSB0byBuYW1lIHRoZSBoaXN0b3J5IGZpbGUsCithbmQgLXMgYWxsb3dzIHlvdSB0byBzcGVjaWZ5IGl0cyBzaXplLiAgSXQgZGVmYXVsdCB0byAiZW1hY3MiIG1vZGUsCitidXQgaWYgdGhlIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBFRElUT1IgaXMgc2V0IHRvICJ2aSIgdGhhdAorbW9kZSBpcyBjaG9zZW4uCisKK0lTU1VFUworCisqIFRoZSBtb2RlIHN3aXRjaGluZyBkZXBlbmRzIG9uIHRoZSB0ZXJtaW5hbCBtb2RlIHNldCBieSB0aGUgaW5mZXJpb3IKK3Byb2dyYW0uICBUaHVzIHNzaC90ZWxuZXQvc2NyZWVuLXR5cGUgcHJvZ3JhbXMgd2lsbCB0eXBpY2FsbHkgYmUgaW4KK3JhdyBtb2RlLCBzbyBybGZlIHdvbid0IGJlIG11Y2ggdXNlLCBldmVuIGlmIHJlbW90ZSBwcm9ncmFtcyBydW4gaW4KK2Nhbm9uaWNhbCBtb2RlLiAgVGhlIHdvcmstYXJvdW5kIGlzIHRvIHJ1biBybGZlIG9uIHRoZSByZW1vdGUgZW5kLgorCisqIEVjaG8gc3VwcmVzc2lvbiBhbmQgcHJvbXB0IHJlY29nbml0aW9uIGFyZSBzb21ld2hhdCBmcmFnaWxlLgorKEEgcHJvdG9jb2wgc28gdGhhdCB0aGUgby9zIHR0eSBjb2RlIGNhbiByZWxpYWJseSBjb21tdW5pY2F0ZSBpdHMKK3N0YXRlIHRvIHJsZmUgY291bGQgc29sdmUgdGhpcyBwcm9ibGVtLCBhbmQgdGhlIHByZXZpb3VzIG9uZS4pCisKKyogU2VlIHRoZSBpbnRybyB0byBybGZlLmMgZm9yIG1vcmUgbm90ZXMuCisKKyogQXNzdW1lcyBhIFZUMTAwLWNvbXBhdGlibGUgdGVybWluYWwsIHRob3VnaCB0aGF0IGNvdWxkIGJlIGdlbmVyYWxpemVkCitpZiBhbnlib2R5IGNhcmVzLgorCisqIFJlcXVpcmVzIG5jdXJzZXMuCisKKyogSXQgd291bGQgYmUgdXNlZnVsIHRvIGludGVncmF0ZSBybGZlJ3MgbG9naWMgaW4gYSB0ZXJtaW5hbCBlbXVsYXRvci4KK1RoYXQgd291bGQgbWFrZSBpdCBlYXNpZXIgdG8gcmVwb3NpdGlvbiB0aGUgZWRpdCBwb3NpdGlvbiB3aXRoIGEgbW91c2UsCitpbnRlZ3JhdGUgY3V0LWFuZC1wYXN0ZSB3aXRoIHRoZSBzeXN0ZW0gY2xpcGJvYXJkLCBhbmQgbW9yZSByb2J1c3RseQoraGFuZGxlIGVzY2FwZSBzZXF1ZW5jZSBhbmQgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzIG1vcmUgcm9idXN0bHkuCisKK0FVVEhPUgorCitQZXIgQm90aG5lciA8cGVyQGJvdGhuZXIuY29tPgorCitMSUNFTlNFCisKK0dQTC4KZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2V4YW1wbGVzL3JsZmUvY29uZmlnLmguaW4gYi9yZWFkbGluZS9leGFtcGxlcy9ybGZlL2NvbmZpZy5oLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4ZmYxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9yZWFkbGluZS9leGFtcGxlcy9ybGZlL2NvbmZpZy5oLmluCkBAIC0wLDAgKzEsMzc1IEBACisvKiBDb3B5cmlnaHQgMjAwNCBQZXIgQm90aG5lciA8cGVyQGJvdGhuZXIuY29tPgorICogQmFzZWQgb24gY29uZmlnLmggZnJvbSBzY3JlZW4tNC4wLjIuCisgKiBDb3B5cmlnaHQgKGMpIDE5OTMtMjAwMAorICogICAgICBKdWVyZ2VuIFdlaWdlcnQgKGpud2VpZ2VyQGltbWQ0LmluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlKQorICogICAgICBNaWNoYWVsIFNjaHJvZWRlciAobWxzY2hyb2VAaW1tZDQuaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGUpCisgKiBDb3B5cmlnaHQgKGMpIDE5ODcgT2xpdmVyIExhdW1hbm4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikKKyAqIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtIChzZWUgdGhlIGZpbGUgQ09QWUlORyk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlCisgKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sCisgKiA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcsIFVTQQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAkSWQkIEZBVQorICovCisKKworCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKglVc2VyIENvbmZpZ3VyYXRpb24gU2VjdGlvbgorICovCisKKworLyogCisgKiBkZWZpbmUgUFRZTU9ERSBpZiB5b3UgZG8gbm90IGxpa2UgdGhlIGRlZmF1bHQgb2YgMDYyMiwgd2hpY2ggYWxsb3dzIAorICogcHVibGljIHdyaXRlIHRvIHlvdXIgcHR5LgorICogZGVmaW5lIFBUWUdST1VQIHRvIHNvbWUgbnVtZXJpY2FsIGdyb3VwLWlkIGlmIHlvdSBkbyBub3Qgd2FudCB0aGUKKyAqIHR0eSB0byBiZSBpbiAieW91ciIgZ3JvdXAuCisgKiBOb3RlLCBzY3JlZW4gaXMgdW5hYmxlIHRvIGNoYW5nZSBtb2RlIG9yIGdyb3VwIG9mIHRoZSBwdHkgaWYgaXQKKyAqIGlzIG5vdCBpbnN0YWxsZWQgd2l0aCBzdWZmaWNpZW50IHByaXZpbGVnZS4gKGUuZy4gc2V0LXVpZC1yb290KQorICogZGVmaW5lIFBUWVJPRlMgaWYgdGhlIC9kZXYvcHR5IGRldmljZXMgYXJlIG1vdW50ZWQgb24gYSByZWFkLW9ubHkgCisgKiBmaWxlc3lzdGVtIHNvIHNjcmVlbiBzaG91bGQgbm90IGV2ZW4gYXR0ZW1wdCB0byBzZXQgbW9kZSBvciBncm91cCAgCisgKiBldmVuIGlmIHJ1bm5pbmcgYXMgcm9vdCAoZS5nLiBvbiBUaVZvKS4KKyAqLworI3VuZGVmIFBUWU1PREUKKyN1bmRlZiBQVFlHUk9VUAorI3VuZGVmIFBUWVJPRlMKKworLyoKKyAqIElmIHNjcmVlbiBpcyBOT1QgaW5zdGFsbGVkIHNldC11aWQgcm9vdCwgc2NyZWVuIGNhbiBwcm92aWRlIHR0eQorICogc2VjdXJpdHkgYnkgZXhjbHVzaXZlbHkgbG9ja2luZyB0aGUgcHR5cy4gIFdoaWxlIHRoaXMga2VlcHMgb3RoZXIKKyAqIHVzZXJzIGZyb20gb3BlbmluZyB5b3VyIHB0eXMsIGl0IGFsc28ga2VlcHMgeW91ciBvd24gc3VicHJvY2Vzc2VzCisgKiBmcm9tIGJlaW5nIGFibGUgdG8gb3BlbiAvZGV2L3R0eS4gIERlZmluZSBMT0NLUFRZIHRvIGFkZCB0aGlzCisgKiBleGNsdXNpdmUgbG9ja2luZy4KKyAqLworI3VuZGVmIExPQ0tQVFkKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqCUVuZCBvZiBVc2VyIENvbmZpZ3VyYXRpb24gU2VjdGlvbgorICoKKyAqICAgICAgUmVzdCBvZiB0aGlzIGZpbGUgaXMgbW9kaWZpZWQgYnkgJ2NvbmZpZ3VyZScKKyAqICAgICAgQ2hhbmdlIGF0IHlvdXIgb3duIHJpc2shCisgKgorICovCisKKy8qCisgKiBTb21lIGRlZmluZXMgdG8gaWRlbnRpZnkgc3BlY2lhbCB1bml4IHZhcmlhbnRzCisgKi8KKyNpZm5kZWYgU1ZSNAorI3VuZGVmIFNWUjQKKyNlbmRpZgorCisjaWZuZGVmIF9QT1NJWF9TT1VSQ0UKKyN1bmRlZiBfUE9TSVhfU09VUkNFCisjZW5kaWYKKworLyoKKyAqIERlZmluZSBQT1NJWCBpZiB5b3VyIHN5c3RlbSBzdXBwb3J0cyBJRUVFIFN0ZCAxMDAzLjEtMTk4OCAoUE9TSVgpLgorICovCisjdW5kZWYgUE9TSVgKKworLyoKKyAqIERlZmluZSBURVJNSU8gaWYgeW91IGhhdmUgc3RydWN0IHRlcm1pbyBpbnN0ZWFkIG9mIHN0cnVjdCBzZ3R0eWIuCisgKiBUaGlzIGlzIHVzdWFsbHkgdGhlIGNhc2UgZm9yIFNWSUQgc3lzdGVtcywgd2hlcmUgQlNEIHVzZXMgc2d0dHliLgorICogUE9TSVggc3lzdGVtcyBzaG91bGQgZGVmaW5lIHRoaXMgYW55d2F5LCBldmVuIHRob3VnaCB0aGV5IHVzZQorICogc3RydWN0IHRlcm1pb3MuCisgKi8KKyN1bmRlZiBURVJNSU8KKworLyoKKyAqIERlZmluZSBDWVRFUk1JTyBpZiB5b3UgaGF2ZSBjeXJpbGxpYyB0ZXJtaW8gbW9kZXMuCisgKi8KKyN1bmRlZiBDWVRFUk1JTworCisvKgorICogRGVmaW5lIFRFUk1JTkZPIGlmIHlvdXIgbWFjaGluZSBlbXVsYXRlcyB0aGUgdGVybWNhcCByb3V0aW5lcworICogd2l0aCB0aGUgdGVybWluZm8gZGF0YWJhc2UuCisgKiBUaHVzIHRoZSAuc2NyZWVucmMgZmlsZSBpcyBwYXJzZWQgZm9yCisgKiB0aGUgY29tbWFuZCAndGVybWluZm8nIGFuZCBub3QgJ3Rlcm1jYXAnLgorICovCisjdW5kZWYgVEVSTUlORk8KKworLyoKKyAqIElmIHlvdXIgbGlicmFyeSBkb2VzIG5vdCBkZWZpbmUgb3NwZWVkLCBkZWZpbmUgdGhpcy4KKyAqLworI3VuZGVmIE5FRURfT1NQRUVECisKKy8qCisgKiBEZWZpbmUgU1lTViBpZiB5b3VyIG1hY2hpbmUgaXMgU1lTViBjb21wbGllbnQgKFN5cyBWLCBIUFVYLCBBL1VYKQorICovCisjaWZuZGVmIFNZU1YKKyN1bmRlZiBTWVNWCisjZW5kaWYKKworLyoKKyAqIERlZmluZSBTSUdWT0lEIGlmIHlvdXIgc2lnbmFsIGhhbmRsZXJzIHJldHVybiB2b2lkLiAgT24gb2xkZXIKKyAqIHN5c3RlbXMsIHNpZ25hbCByZXR1cm5zIGludCwgYnV0IG9uIG5ld2VyIG9uZXMsIGl0IHJldHVybnMgdm9pZC4KKyAqLworI3VuZGVmIFNJR1ZPSUQgCisKKy8qCisgKiBEZWZpbmUgVVNFU0lHU0VUIGlmIHlvdSBoYXZlIHNpZ3NldCBmb3IgQlNEIDQuMSByZWxpYWJsZSBzaWduYWxzLgorICovCisjdW5kZWYgVVNFU0lHU0VUCisKKy8qCisgKiBEZWZpbmUgU1lTVlNJR1MgaWYgc2lnbmFsIGhhbmRsZXJzIG11c3QgYmUgcmVpbnN0YWxsZWQgYWZ0ZXIKKyAqIHRoZXkgaGF2ZSBiZWVuIGNhbGxlZC4KKyAqLworI3VuZGVmIFNZU1ZTSUdTCisKKy8qCisgKiBEZWZpbmUgQlNEV0FJVCBpZiB5b3VyIHN5c3RlbSBkZWZpbmVzIGEgJ3VuaW9uIHdhaXQnIGluIDxzeXMvd2FpdC5oPgorICoKKyAqIE9ubHkgYWxsb3cgQlNEV0FJVCBpLmUuIHdhaXQzIG9uIG5vbnBvc2l4IHN5c3RlbXMsIHNpbmNlCisgKiBwb3NpeCBpbXBsaWVzIHdhaXQoMykgYW5kIHdhaXRwaWQoMykuIHZkbGluZGVuQGZ3aS51dmEubmwKKyAqIAorICovCisjaWZuZGVmIFBPU0lYCisjdW5kZWYgQlNEV0FJVAorI2VuZGlmCisKKy8qCisgKiBPbiBSSVNDT1Mgd2UgcHJlZmVyIHdhaXQyKCkgb3ZlciB3YWl0MygpLiByb3VpbGpAc25pLXVzYS5jb20gCisgKi8KKyNpZmRlZiBCU0RXQUlUCisjdW5kZWYgVVNFX1dBSVQyCisjZW5kaWYKKworLyoKKyAqIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgdXRlbXB0ZXIgdXRtcCBoZWxwZXIgcHJvZ3JhbQorICovCisjdW5kZWYgSEFWRV9VVEVNUFRFUgorCisvKgorICogSWYgdHR5c2xvdCgpIGJyZWFrcyBnZXRsb2dpbigpIGJ5IHJldHVybmluZyBpbmRleGVzIHRvIHV0bXAgZW50cmllcworICogb2YgdHlwZSBERUFEX1BST0NFU1MsIHRoZW4gb3VyIGdldGxvZ2luKCkgcmVwbGFjZW1lbnQgc2hvdWxkIGJlCisgKiBzZWxlY3RlZCBieSBkZWZpbmluZyBCVUdHWUdFVExPR0lOLgorICovCisjdW5kZWYgQlVHR1lHRVRMT0dJTgorCisvKgorICogSWYgeW91ciBzeXN0ZW0gaGFzIHRoZSBjYWxscyBzZXRyZXVpZCgpIGFuZCBzZXRyZWdpZCgpLAorICogZGVmaW5lIEhBVkVfU0VUUkVVSUQuIE90aGVyd2lzZSBzY3JlZW4gd2lsbCB1c2UgYSBmb3JrZWQgcHJvY2VzcyB0bworICogc2FmZWx5IGNyZWF0ZSBvdXRwdXQgZmlsZXMgd2l0aG91dCByZXRhaW5pbmcgYW55IHNwZWNpYWwgcHJpdmlsZWdlcy4KKyAqLworI3VuZGVmIEhBVkVfU0VUUkVVSUQKKworLyoKKyAqIElmIHlvdXIgc3lzdGVtIHN1cHBvcnRzIEJTRDQuNCdzIHNldGV1aWQoKSBhbmQgc2V0ZWdpZCgpLCBkZWZpbmUKKyAqIEhBVkVfU0VURVVJRC4KKyAqLworI3VuZGVmIEhBVkVfU0VURVVJRAorCisvKgorICogSWYgeW91IHdhbnQgdGhlICJ0aW1lIiBjb21tYW5kIHRvIGRpc3BsYXkgdGhlIGN1cnJlbnQgbG9hZCBhdmVyYWdlCisgKiBkZWZpbmUgTE9BREFWLiBNYXliZSB5b3UgbXVzdCBpbnN0YWxsIHNjcmVlbiB3aXRoIHRoZSBuZWVkZWQKKyAqIHByaXZpbGVnZXMgdG8gcmVhZCAvZGV2L2ttZW0uCisgKiBOb3RlIHRoYXQgTkxJU1RfIHN0dWZmIGlzIG9ubHkgY2hlY2tlZCwgd2hlbiBnZXRsb2FkYXZnKCkgaXMgbm90IGF2YWlsYWJsZS4KKyAqLworI3VuZGVmIExPQURBVgorCisjdW5kZWYgTE9BREFWX05VTQorI3VuZGVmIExPQURBVl9UWVBFCisjdW5kZWYgTE9BREFWX1NDQUxFCisjdW5kZWYgTE9BREFWX0dFVExPQURBVkcKKyN1bmRlZiBMT0FEQVZfVU5JWAorI3VuZGVmIExPQURBVl9BVkVOUlVOCisjdW5kZWYgTE9BREFWX1VTRV9OTElTVDY0CisKKyN1bmRlZiBOTElTVF9ERUNMQVJFRAorI3VuZGVmIE5MSVNUX1NUUlVDVAorI3VuZGVmIE5MSVNUX05BTUVfVU5JT04KKworLyoKKyAqIElmIHlvdXIgc3lzdGVtIGhhcyB0aGUgbmV3IGZvcm1hdCAvZXRjL3R0eXMgKGxpa2UgNC4zIEJTRCkgYW5kIHRoZQorICogZ2V0dHR5ZW50KDMpIGxpYnJhcnkgZnVuY3Rpb25zLCBkZWZpbmUgR0VUVFRZRU5ULgorICovCisjdW5kZWYgR0VUVFRZRU5UCisKKy8qCisgKiBEZWZpbmUgVVNFQkNPUFkgaWYgdGhlIGJjb3B5L21lbWNweSBmcm9tIHlvdXIgc3lzdGVtJ3MgQyBsaWJyYXJ5CisgKiBzdXBwb3J0cyB0aGUgb3ZlcmxhcHBpbmcgb2Ygc291cmNlIGFuZCBkZXN0aW5hdGlvbiBibG9ja3MuICBXaGVuCisgKiB1bmRlZmluZWQsIHNjcmVlbiB1c2VzIGl0cyBvd24gKHByb2JhYmx5IHNsb3dlcikgdmVyc2lvbiBvZiBiY29weSgpLgorICogCisgKiBTWVNWIG1hY2hpbmVzIG1heSBoYXZlIGEgd29ya2luZyBtZW1jcHkoKSAtLSBPaCwgdGhpcyBpcyAKKyAqIHF1aXRlIHVubGlrZWx5LiBUZWxsIG1lIGlmIHlvdSBzZWUgb25lLgorICogIkJ1dCB0aGVuLCBtZW1tb3ZlKCkgc2hvdWxkIHdvcmssIGlmIGF0IGFsbCBhdmFpbGFibGUiIGhlIHRob3VnaHQuLi4KKyAqIEJvaW5nLCBuZXZlciBzYXkgIndvcmtzIGV2ZXJ5d2hlcmUiIHVubGVzcyB5b3UgY2hlY2tlZCBTQ08gVU5JWC4KKyAqIFRoZWlyIG1lbW92ZSBmYWlscyB0aGUgdGVzdCBpbiB0aGUgY29uZmlndXJlIHNjcmlwdC4gU2lnaC4gKEp1ZXJnZW4pCisgKi8KKyN1bmRlZiBVU0VCQ09QWQorI3VuZGVmIFVTRU1FTUNQWQorI3VuZGVmIFVTRU1FTU1PVkUKKworLyoKKyAqIElmIHlvdXIgc3lzdGVtIGhhcyB2c3ByaW50ZigpIGFuZCByZXF1aXJlcyB0aGUgdXNlIG9mIHRoZSBtYWNyb3MgaW4KKyAqICJ2YXJhcmdzLmgiIHRvIHVzZSBmdW5jdGlvbnMgd2l0aCB2YXJpYWJsZSBhcmd1bWVudHMsCisgKiBkZWZpbmUgVVNFVkFSQVJHUy4KKyAqLworI3VuZGVmIFVTRVZBUkFSR1MKKworLyoKKyAqIElmIHlvdXIgc3lzdGVtIGhhcyBzdHJlcnJvcigpIGRlZmluZSB0aGlzLgorICovCisjdW5kZWYgSEFWRV9TVFJFUlJPUgorCisvKgorICogSWYgdGhlIHNlbGVjdCByZXR1cm4gdmFsdWUgZG9lc24ndCB0cmVhdCBhIGRlc2NyaXB0b3IgdGhhdCBpcworICogdXNhYmxlIGZvciByZWFkaW5nIGFuZCB3cml0aW5nIGFzIHR3byBoaXRzLCBkZWZpbmUgU0VMRUNUX0JST0tFTi4KKyAqLworI3VuZGVmIFNFTEVDVF9CUk9LRU4KKworLyoKKyAqIERlZmluZSB0aGlzIGlmIHlvdXIgc3lzdGVtIHN1cHBvcnRzIG5hbWVkIHBpcGVzLgorICovCisjdW5kZWYgTkFNRURQSVBFCisKKy8qCisgKiBEZWZpbmUgdGhpcyBpZiB5b3VyIHN5c3RlbSBleGl0cyBzZWxlY3QoKSBpbW1lZGlhdGx5IGlmIGEgcGlwZSBpcworICogb3BlbmVkIHJlYWQtb25seSBhbmQgbm8gd3JpdGVyIGhhcyBvcGVuZWQgaXQuCisgKi8KKyN1bmRlZiBCUk9LRU5fUElQRQorCisvKgorICogRGVmaW5lIHRoaXMgaWYgdGhlIHVuaXgtZG9tYWluIHNvY2tldCBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0CisgKiBjcmVhdGUgYSBzb2NrZXQgaW4gdGhlIGZpbGVzeXN0ZW0uCisgKi8KKyN1bmRlZiBTT0NLX05PVF9JTl9GUworCisvKgorICogSWYgeW91ciBzeXN0ZW0gaGFzIHNldGVudigpIGFuZCB1bnNldGVudigpIGRlZmluZSBVU0VTRVRFTlYKKyAqLworI3VuZGVmIFVTRVNFVEVOVgorCisvKgorICogSWYgeW91ciBzeXN0ZW0gZG9lcyBub3QgY29tZSB3aXRoIGEgc2V0ZW52KCkvcHV0ZW52KCkvZ2V0ZW52KCkKKyAqIGZ1bmN0aW9ucywgeW91IG1heSBicmluZyBpbiBvdXIgb3duIGNvZGUgYnkgZGVmaW5pbmcgTkVFRFBVVEVOVi4KKyAqLworI3VuZGVmIE5FRURQVVRFTlYKKworLyoKKyAqIElmIHRoZSBwYXNzd29yZHMgYXJlIHN0b3JlZCBpbiBhIHNoYWRvdyBmaWxlIGFuZCB5b3Ugd2FudCB0aGUKKyAqIGJ1aWx0aW4gbG9jayB0byB3b3JrIHByb3Blcmx5LCBkZWZpbmUgU0hBRE9XUFcuCisgKi8KKyN1bmRlZiBTSEFET1dQVworCisvKgorICogSWYgeW91IGFyZSBvbiBhIFNZUyBWIG1hY2hpbmUgdGhhdCByZXN0cmljdHMgZmlsZW5hbWUgbGVuZ3RoIHRvIDE0IAorICogY2hhcmFjdGVycywgeW91IG1heSBuZWVkIHRvIGVuZm9yY2UgdGhhdCBieSBzZXR0aW5nIE5BTUVfTUFYIHRvIDE0CisgKi8KKyN1bmRlZiBOQU1FX01BWAkJLyogS0VFUF9VTkRFRl9IRVJFIG92ZXJyaWRlIHN5c3RlbSB2YWx1ZSAqLworI3VuZGVmIE5BTUVfTUFYCisKKy8qCisgKiBkZWZpbmUgSEFWRV9SRU5BTUUgaWYgeW91ciBzeXN0ZW0gaGFzIGEgcmVuYW1lKCkgZnVuY3Rpb24KKyAqLworI3VuZGVmIEhBVkVfUkVOQU1FCisKKy8qCisgKiBkZWZpbmUgSEFWRV9fRVhJVCBpZiB5b3VyIHN5c3RlbSBoYXMgdGhlIF9leGl0KCkgY2FsbC4KKyAqLworI3VuZGVmIEhBVkVfX0VYSVQKKworLyoKKyAqIGRlZmluZSBIQVZFX0xTVEFUIGlmIHlvdXIgc3lzdGVtIGhhcyBzeW1saW5rcyBhbmQgdGhlIGxzdGF0KCkgY2FsbC4KKyAqLworI3VuZGVmIEhBVkVfTFNUQVQKKworLyoKKyAqIGRlZmluZSBIQVZFX1VUSU1FUyBpZiB5b3VyIHN5c3RlbSBoYXMgdGhlIHV0aW1lcygpIGNhbGwuCisgKi8KKyN1bmRlZiBIQVZFX1VUSU1FUworCisvKgorICogZGVmaW5lIEhBVkVfRkNIT1dOIGlmIHlvdXIgc3lzdGVtIGhhcyB0aGUgZmNob3duKCkgY2FsbC4KKyAqLworI3VuZGVmIEhBVkVfRkNIT1dOCisKKy8qCisgKiBkZWZpbmUgSEFWRV9GQ0hNT0QgaWYgeW91ciBzeXN0ZW0gaGFzIHRoZSBmY2htb2QoKSBjYWxsLgorICovCisjdW5kZWYgSEFWRV9GQ0hNT0QKKworLyoKKyAqIGRlZmluZSBIQVZFX1ZTTlBSSU5URiBpZiB5b3VyIHN5c3RlbSBoYXMgdnNucHJpbnRmKCkgKEdOVSBsaWIpLgorICovCisjdW5kZWYgSEFWRV9WU05QUklOVEYKKworLyoKKyAqIGRlZmluZSBIQVZFX0dFVENXRCBpZiB5b3VyIHN5c3RlbSBoYXMgdGhlIGdldGN3ZCgpIGNhbGwuCisgKi8KKyN1bmRlZiBIQVZFX0dFVENXRAorCisvKgorICogZGVmaW5lIEhBVkVfU0VUTE9DQUxFIGlmIHlvdXIgc3lzdGVtIGhhcyB0aGUgc2V0bG9jYWxlKCkgY2FsbC4KKyAqLworI3VuZGVmIEhBVkVfU0VUTE9DQUxFCisKKy8qCisgKiBkZWZpbmUgSEFWRV9TVFJGVElNRSBpZiB5b3VyIHN5c3RlbSBoYXMgdGhlIHN0cmZ0aW1lKCkgY2FsbC4KKyAqLworI3VuZGVmIEhBVkVfU1RSRlRJTUUKKworLyoKKyAqIGRlZmluZSBIQVZFX05MX0xBTkdJTkZPIGlmIHlvdXIgc3lzdGVtIGhhcyB0aGUgbmxfbGFuZ2luZm8oKSBjYWxsCisgKiBhbmQgPGxhbmdpbmZvLmg+IGRlZmluZXMgQ09ERVNFVC4KKyAqLworI3VuZGVmIEhBVkVfTkxfTEFOR0lORk8KKworLyoKKyAqIE5ld2VyIHZlcnNpb25zIG9mIFNvbGFyaXMgaW5jbHVkZSBmZHdhbGssIHdoaWNoIGNhbiBncmVhdGx5IGltcHJvdmUKKyAqIHRoZSBzdGFydHVwIHRpbWUgb2Ygc2NyZWVuOyBvdGhlcndpc2Ugc2NyZWVuIHNwZW5kcyBhIGxvdCBvZiB0aW1lCisgKiBjbG9zaW5nIGZpbGUgZGVzY3JpcHRvcnMuCisgKi8KKyN1bmRlZiBIQVZFX0ZEV0FMSworCisvKgorICogZGVmaW5lIEhBVkVfREVWX1BUQyBpZiB5b3UgaGF2ZSBhIC9kZXYvcHRjIGNoYXJhY3RlciBzcGVjaWFsCisgKiBkZXZpY2UuCisgKi8KKyN1bmRlZiBIQVZFX0RFVl9QVEMKKworLyoKKyAqIGRlZmluZSBIQVZFX1NWUjRfUFRZUyBpZiB5b3UgaGF2ZSBhIC9kZXYvcHRteCBjaGFyYWN0ZXIgc3BlY2lhbAorICogZGV2aWNlIGFuZCBzdXBwb3J0IHRoZSBwdHNuYW1lKCksIGdyYW50cHQoKSwgdW5sb2NrcHQoKSBmdW5jdGlvbnMuCisgKi8KKyN1bmRlZiBIQVZFX1NWUjRfUFRZUworCisvKgorICogZGVmaW5lIEhBVkVfR0VUUFQgaWYgeW91IGhhdmUgdGhlIGdldHB0KCkgZnVuY3Rpb24uCisgKi8KKyN1bmRlZiBIQVZFX0dFVFBUCisKKy8qCisgKiBkZWZpbmUgSEFWRV9PUEVOUFRZIGlmIHlvdXIgc3lzdGVtIGhhcyB0aGUgb3BlbnB0eSgpIGNhbGwuCisgKi8KKyN1bmRlZiBIQVZFX09QRU5QVFkKKworLyogCisgKiBkZWZpbmUgUFRZUkFOR0UwIGFuZCBvciBQVFlSQU5HRTEgaWYgeW91IHdhbnQgdG8gYWRhcHQgc2NyZWVuCisgKiB0byB1bnVzdWFsIGVudmlyb25tZW50cy4gRS5nLiBGb3IgU3VuT3MgdGhlIGRlZmF1bHRzIGFyZSAicXByIiBhbmQgCisgKiAiMDEyMzQ1Njc4OWFiY2RlZiIuIEZvciBTdW5PcyA0LjEuMiAKKyAqICNkZWZpbmUgUFRZUkFOR0UwICJwcXJzdHV2d3h5elBRUlNUIiAKKyAqIGlzIHJlY29tbWVuZGVkIGJ5IERhbiBKYWNvYnNvbi4KKyAqLworI3VuZGVmIFBUWVJBTkdFMAorI3VuZGVmIFBUWVJBTkdFMQorCisjZGVmaW5lIFVTRVZBUkFSR1MKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2V4YW1wbGVzL3JsZmUvY29uZmlndXJlIGIvcmVhZGxpbmUvZXhhbXBsZXMvcmxmZS9jb25maWd1cmUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmE4MjAyNgotLS0gL2Rldi9udWxsCisrKyBiL3JlYWRsaW5lL2V4YW1wbGVzL3JsZmUvY29uZmlndXJlCkBAIC0wLDAgKzEsNTQwMCBAQAorIyEgL2Jpbi9zaAorIyBHdWVzcyB2YWx1ZXMgZm9yIHN5c3RlbS1kZXBlbmRlbnQgdmFyaWFibGVzIGFuZCBjcmVhdGUgTWFrZWZpbGVzLgorIyBHZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTkuCisjCisjIENvcHlyaWdodCAoQykgMjAwMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgVGhpcyBjb25maWd1cmUgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IGl0LgorIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisjIyBNNHNoIEluaXRpYWxpemF0aW9uLiAgIyMKKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworCisjIEJlIEJvdXJuZSBjb21wYXRpYmxlCitpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgZW11bGF0ZSBzaAorICBOVUxMQ01EPToKKyAgIyBac2ggMy54IGFuZCA0LnggcGVyZm9ybXMgd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAorICAjIGlzIGNvbnRyYXJ5IHRvIG91ciB1c2FnZS4gIERpc2FibGUgdGhpcyBmZWF0dXJlLgorICBhbGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRAIicKK2VsaWYgdGVzdCAtbiAiJHtCQVNIX1ZFUlNJT04rc2V0fSIgJiYgKHNldCAtbyBwb3NpeCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgIHNldCAtbyBwb3NpeAorZmkKK0RVQUxDQVNFPTE7IGV4cG9ydCBEVUFMQ0FTRSAjIGZvciBNS1Mgc2gKKworIyBTdXBwb3J0IHVuc2V0IHdoZW4gcG9zc2libGUuCitpZiAoIChNQUlMPTYwOyB1bnNldCBNQUlMKSB8fCBleGl0KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgYXNfdW5zZXQ9dW5zZXQKK2Vsc2UKKyAgYXNfdW5zZXQ9ZmFsc2UKK2ZpCisKKworIyBXb3JrIGFyb3VuZCBidWdzIGluIHByZS0zLjAgVVdJTiBrc2guCiskYXNfdW5zZXQgRU5WIE1BSUwgTUFJTFBBVEgKK1BTMT0nJCAnCitQUzI9Jz4gJworUFM0PScrICcKKworIyBOTFMgbnVpc2FuY2VzLgorZm9yIGFzX3ZhciBpbiBcCisgIExBTkcgTEFOR1VBR0UgTENfQUREUkVTUyBMQ19BTEwgTENfQ09MTEFURSBMQ19DVFlQRSBMQ19JREVOVElGSUNBVElPTiBcCisgIExDX01FQVNVUkVNRU5UIExDX01FU1NBR0VTIExDX01PTkVUQVJZIExDX05BTUUgTENfTlVNRVJJQyBMQ19QQVBFUiBcCisgIExDX1RFTEVQSE9ORSBMQ19USU1FCitkbworICBpZiAoc2V0ICt4OyB0ZXN0IC16ICJgKGV2YWwgJGFzX3Zhcj1DOyBleHBvcnQgJGFzX3ZhcikgMj4mMWAiKTsgdGhlbgorICAgIGV2YWwgJGFzX3Zhcj1DOyBleHBvcnQgJGFzX3ZhcgorICBlbHNlCisgICAgJGFzX3Vuc2V0ICRhc192YXIKKyAgZmkKK2RvbmUKKworIyBSZXF1aXJlZCB0byB1c2UgYmFzZW5hbWUuCitpZiBleHByIGEgOiAnXChhXCknID4vZGV2L251bGwgMj4mMTsgdGhlbgorICBhc19leHByPWV4cHIKK2Vsc2UKKyAgYXNfZXhwcj1mYWxzZQorZmkKKworaWYgKGJhc2VuYW1lIC8pID4vZGV2L251bGwgMj4mMSAmJiB0ZXN0ICJYYGJhc2VuYW1lIC8gMj4mMWAiID0gIlgvIjsgdGhlbgorICBhc19iYXNlbmFtZT1iYXNlbmFtZQorZWxzZQorICBhc19iYXNlbmFtZT1mYWxzZQorZmkKKworCisjIE5hbWUgb2YgdGhlIGV4ZWN1dGFibGUuCithc19tZT1gJGFzX2Jhc2VuYW1lICIkMCIgfHwKKyRhc19leHByIFgvIiQwIiA6ICcuKi9cKFteL11bXi9dKlwpLyokJyBcfCBcCisJIFgiJDAiIDogJ1hcKC8vXCkkJyBcfCBcCisJIFgiJDAiIDogJ1hcKC9cKSQnIFx8IFwKKwkgLiAgICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8CitlY2hvIFgvIiQwIiB8CisgICAgc2VkICcvXi4qXC9cKFteL11bXi9dKlwpXC8qJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcL1woXC9cL1wpJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcL1woXC9cKS4qL3sgcy8vXDEvOyBxOyB9CisgIAkgIHMvLiovLi87IHEnYAorCisKKyMgUEFUSCBuZWVkcyBDUiwgYW5kIExJTkVOTyBuZWVkcyBDUiBhbmQgUEFUSC4KKyMgQXZvaWQgZGVwZW5kaW5nIHVwb24gQ2hhcmFjdGVyIFJhbmdlcy4KK2FzX2NyX2xldHRlcnM9J2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JworYXNfY3JfTEVUVEVSUz0nQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonCithc19jcl9MZXR0ZXJzPSRhc19jcl9sZXR0ZXJzJGFzX2NyX0xFVFRFUlMKK2FzX2NyX2RpZ2l0cz0nMDEyMzQ1Njc4OScKK2FzX2NyX2FsbnVtPSRhc19jcl9MZXR0ZXJzJGFzX2NyX2RpZ2l0cworCisjIFRoZSB1c2VyIGlzIGFsd2F5cyByaWdodC4KK2lmIHRlc3QgIiR7UEFUSF9TRVBBUkFUT1Irc2V0fSIgIT0gc2V0OyB0aGVuCisgIGVjaG8gIiMhIC9iaW4vc2giID5jb25mJCQuc2gKKyAgZWNobyAgImV4aXQgMCIgICA+PmNvbmYkJC5zaAorICBjaG1vZCAreCBjb25mJCQuc2gKKyAgaWYgKFBBVEg9Ii9ub25leGlzdGVudDsuIjsgY29uZiQkLnNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgICBQQVRIX1NFUEFSQVRPUj0nOycKKyAgZWxzZQorICAgIFBBVEhfU0VQQVJBVE9SPToKKyAgZmkKKyAgcm0gLWYgY29uZiQkLnNoCitmaQorCisKKyAgYXNfbGluZW5vXzE9JExJTkVOTworICBhc19saW5lbm9fMj0kTElORU5PCisgIGFzX2xpbmVub18zPWAoZXhwciAkYXNfbGluZW5vXzEgKyAxKSAyPi9kZXYvbnVsbGAKKyAgdGVzdCAieCRhc19saW5lbm9fMSIgIT0gIngkYXNfbGluZW5vXzIiICYmCisgIHRlc3QgIngkYXNfbGluZW5vXzMiICA9ICJ4JGFzX2xpbmVub18yIiAgfHwgeworICAjIEZpbmQgd2hvIHdlIGFyZS4gIExvb2sgaW4gdGhlIHBhdGggaWYgd2UgY29udGFpbiBubyBwYXRoIGF0IGFsbAorICAjIHJlbGF0aXZlIG9yIG5vdC4KKyAgY2FzZSAkMCBpbgorICAgICpbXFwvXSogKSBhc19teXNlbGY9JDAgOzsKKyAgICAqKSBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCitmb3IgYXNfZGlyIGluICRQQVRICitkbworICBJRlM9JGFzX3NhdmVfSUZTCisgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisgIHRlc3QgLXIgIiRhc19kaXIvJDAiICYmIGFzX215c2VsZj0kYXNfZGlyLyQwICYmIGJyZWFrCitkb25lCisKKyAgICAgICA7OworICBlc2FjCisgICMgV2UgZGlkIG5vdCBmaW5kIG91cnNlbHZlcywgbW9zdCBwcm9iYWJseSB3ZSB3ZXJlIHJ1biBhcyBgc2ggQ09NTUFORCcKKyAgIyBpbiB3aGljaCBjYXNlIHdlIGFyZSBub3QgdG8gYmUgZm91bmQgaW4gdGhlIHBhdGguCisgIGlmIHRlc3QgIngkYXNfbXlzZWxmIiA9IHg7IHRoZW4KKyAgICBhc19teXNlbGY9JDAKKyAgZmkKKyAgaWYgdGVzdCAhIC1mICIkYXNfbXlzZWxmIjsgdGhlbgorICAgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGZpbmQgbXlzZWxmOyByZXJ1biB3aXRoIGFuIGFic29sdXRlIHBhdGgiID4mMgorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisgIGZpCisgIGNhc2UgJENPTkZJR19TSEVMTCBpbgorICAnJykKKyAgICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCitmb3IgYXNfZGlyIGluIC9iaW4kUEFUSF9TRVBBUkFUT1IvdXNyL2JpbiRQQVRIX1NFUEFSQVRPUiRQQVRICitkbworICBJRlM9JGFzX3NhdmVfSUZTCisgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisgIGZvciBhc19iYXNlIGluIHNoIGJhc2gga3NoIHNoNTsgZG8KKwkgY2FzZSAkYXNfZGlyIGluCisJIC8qKQorCSAgIGlmICgiJGFzX2Rpci8kYXNfYmFzZSIgLWMgJworICBhc19saW5lbm9fMT0kTElORU5PCisgIGFzX2xpbmVub18yPSRMSU5FTk8KKyAgYXNfbGluZW5vXzM9YChleHByICRhc19saW5lbm9fMSArIDEpIDI+L2Rldi9udWxsYAorICB0ZXN0ICJ4JGFzX2xpbmVub18xIiAhPSAieCRhc19saW5lbm9fMiIgJiYKKyAgdGVzdCAieCRhc19saW5lbm9fMyIgID0gIngkYXNfbGluZW5vXzIiICcpIDI+L2Rldi9udWxsOyB0aGVuCisJICAgICAkYXNfdW5zZXQgQkFTSF9FTlYgfHwgdGVzdCAiJHtCQVNIX0VOVitzZXR9IiAhPSBzZXQgfHwgeyBCQVNIX0VOVj07IGV4cG9ydCBCQVNIX0VOVjsgfQorCSAgICAgJGFzX3Vuc2V0IEVOViB8fCB0ZXN0ICIke0VOVitzZXR9IiAhPSBzZXQgfHwgeyBFTlY9OyBleHBvcnQgRU5WOyB9CisJICAgICBDT05GSUdfU0hFTEw9JGFzX2Rpci8kYXNfYmFzZQorCSAgICAgZXhwb3J0IENPTkZJR19TSEVMTAorCSAgICAgZXhlYyAiJENPTkZJR19TSEVMTCIgIiQwIiAkezErIiRAIn0KKwkgICBmaTs7CisJIGVzYWMKKyAgICAgICBkb25lCitkb25lCis7OworICBlc2FjCisKKyAgIyBDcmVhdGUgJGFzX21lLmxpbmVubyBhcyBhIGNvcHkgb2YgJGFzX215c2VsZiwgYnV0IHdpdGggJExJTkVOTworICAjIHVuaWZvcm1seSByZXBsYWNlZCBieSB0aGUgbGluZSBudW1iZXIuICBUaGUgZmlyc3QgJ3NlZCcgaW5zZXJ0cyBhCisgICMgbGluZS1udW1iZXIgbGluZSBiZWZvcmUgZWFjaCBsaW5lOyB0aGUgc2Vjb25kICdzZWQnIGRvZXMgdGhlIHJlYWwKKyAgIyB3b3JrLiAgVGhlIHNlY29uZCBzY3JpcHQgdXNlcyAnTicgdG8gcGFpciBlYWNoIGxpbmUtbnVtYmVyIGxpbmUKKyAgIyB3aXRoIHRoZSBudW1iZXJlZCBsaW5lLCBhbmQgYXBwZW5kcyB0cmFpbGluZyAnLScgZHVyaW5nCisgICMgc3Vic3RpdHV0aW9uIHNvIHRoYXQgJExJTkVOTyBpcyBub3QgYSBzcGVjaWFsIGNhc2UgYXQgbGluZSBlbmQuCisgICMgKFJhamEgUiBIYXJpbmF0aCBzdWdnZXN0ZWQgc2VkICc9JywgYW5kIFBhdWwgRWdnZXJ0IHdyb3RlIHRoZQorICAjIHNlY29uZCAnc2VkJyBzY3JpcHQuICBCbGFtZSBMZWUgRS4gTWNNYWhvbiBmb3Igc2VkJ3Mgc3ludGF4LiAgOi0pCisgIHNlZCAnPScgPCRhc19teXNlbGYgfAorICAgIHNlZCAnCisgICAgICBOCisgICAgICBzLCQsLSwKKyAgICAgIDogbG9vcAorICAgICAgcyxeXChbJyRhc19jcl9kaWdpdHMnXSpcKVwoLipcKVskXUxJTkVOT1woW14nJGFzX2NyX2FsbnVtJ19dXCksXDFcMlwxXDMsCisgICAgICB0IGxvb3AKKyAgICAgIHMsLSQsLAorICAgICAgcyxeWyckYXNfY3JfZGlnaXRzJ10qXG4sLAorICAgICcgPiRhc19tZS5saW5lbm8gJiYKKyAgY2htb2QgK3ggJGFzX21lLmxpbmVubyB8fAorICAgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSAkYXNfbWUubGluZW5vOyByZXJ1biB3aXRoIGEgUE9TSVggc2hlbGwiID4mMgorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisKKyAgIyBEb24ndCB0cnkgdG8gZXhlYyBhcyBpdCBjaGFuZ2VzICRbMF0sIGNhdXNpbmcgYWxsIHNvcnQgb2YgcHJvYmxlbXMKKyAgIyAodGhlIGRpcm5hbWUgb2YgJFswXSBpcyBub3QgdGhlIHBsYWNlIHdoZXJlIHdlIG1pZ2h0IGZpbmQgdGhlCisgICMgb3JpZ2luYWwgYW5kIHNvIG9uLiAgQXV0b2NvbmYgaXMgZXNwZWNpYWxseSBzZW5zaWJsZSB0byB0aGlzKS4KKyAgLiAuLyRhc19tZS5saW5lbm8KKyAgIyBFeGl0IHN0YXR1cyBpcyB0aGF0IG9mIHRoZSBsYXN0IGNvbW1hbmQuCisgIGV4aXQKK30KKworCitjYXNlIGBlY2hvICJ0ZXN0aW5nXGMiOyBlY2hvIDEsMiwzYCxgZWNobyAtbiB0ZXN0aW5nOyBlY2hvIDEsMiwzYCBpbgorICAqYyosLW4qKSBFQ0hPX049IEVDSE9fQz0nCisnIEVDSE9fVD0nCScgOzsKKyAgKmMqLCogICkgRUNIT19OPS1uIEVDSE9fQz0gRUNIT19UPSA7OworICAqKSAgICAgICBFQ0hPX049IEVDSE9fQz0nXGMnIEVDSE9fVD0gOzsKK2VzYWMKKworaWYgZXhwciBhIDogJ1woYVwpJyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgYXNfZXhwcj1leHByCitlbHNlCisgIGFzX2V4cHI9ZmFsc2UKK2ZpCisKK3JtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5maWxlCitlY2hvID5jb25mJCQuZmlsZQoraWYgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVuCisgICMgV2UgY291bGQganVzdCBjaGVjayBmb3IgREpHUFA7IGJ1dCB0aGlzIHRlc3QgYSkgd29ya3MgYikgaXMgbW9yZSBnZW5lcmljCisgICMgYW5kIGMpIHdpbGwgcmVtYWluIHZhbGlkIG9uY2UgREpHUFAgc3VwcG9ydHMgc3ltbGlua3MgKERKR1BQIDIuMDQpLgorICBpZiB0ZXN0IC1mIGNvbmYkJC5leGU7IHRoZW4KKyAgICAjIERvbid0IHVzZSBsbiBhdCBhbGw7IHdlIGRvbid0IGhhdmUgYW55IGxpbmtzCisgICAgYXNfbG5fcz0nY3AgLXAnCisgIGVsc2UKKyAgICBhc19sbl9zPSdsbiAtcycKKyAgZmkKK2VsaWYgbG4gY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVuCisgIGFzX2xuX3M9bG4KK2Vsc2UKKyAgYXNfbG5fcz0nY3AgLXAnCitmaQorcm0gLWYgY29uZiQkIGNvbmYkJC5leGUgY29uZiQkLmZpbGUKKworaWYgbWtkaXIgLXAgLiAyPi9kZXYvbnVsbDsgdGhlbgorICBhc19ta2Rpcl9wPToKK2Vsc2UKKyAgdGVzdCAtZCAuLy1wICYmIHJtZGlyIC4vLXAKKyAgYXNfbWtkaXJfcD1mYWxzZQorZmkKKworYXNfZXhlY3V0YWJsZV9wPSJ0ZXN0IC1mIgorCisjIFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgQ1BQIG5hbWUuCithc190cl9jcHA9ImV2YWwgc2VkICd5JSokYXNfY3JfbGV0dGVycyVQJGFzX2NyX0xFVFRFUlMlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgorCisjIFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgdmFyaWFibGUgbmFtZS4KK2FzX3RyX3NoPSJldmFsIHNlZCAneSUqKyVwcCU7cyVbXl8kYXNfY3JfYWxudW1dJV8lZyciCisKKworIyBJRlMKKyMgV2UgbmVlZCBzcGFjZSwgdGFiIGFuZCBuZXcgbGluZSwgaW4gcHJlY2lzZWx5IHRoYXQgb3JkZXIuCithc19ubD0nCisnCitJRlM9IiAJJGFzX25sIgorCisjIENEUEFUSC4KKyRhc191bnNldCBDRFBBVEgKKworCisjIE5hbWUgb2YgdGhlIGhvc3QuCisjIGhvc3RuYW1lIG9uIHNvbWUgc3lzdGVtcyAoU1ZSMy4yLCBMaW51eCkgcmV0dXJucyBhIGJvZ3VzIGV4aXQgc3RhdHVzLAorIyBzbyB1bmFtZSBnZXRzIHJ1biB0b28uCithY19ob3N0bmFtZT1gKGhvc3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYvbnVsbCB8IHNlZCAxcWAKKworZXhlYyA2PiYxCisKKyMKKyMgSW5pdGlhbGl6YXRpb25zLgorIworYWNfZGVmYXVsdF9wcmVmaXg9L3Vzci9sb2NhbAorYWNfY29uZmlnX2xpYm9ial9kaXI9LgorY3Jvc3NfY29tcGlsaW5nPW5vCitzdWJkaXJzPQorTUZMQUdTPQorTUFLRUZMQUdTPQorU0hFTEw9JHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0KKworIyBNYXhpbXVtIG51bWJlciBvZiBsaW5lcyB0byBwdXQgaW4gYSBzaGVsbCBoZXJlIGRvY3VtZW50LgorIyBUaGlzIHZhcmlhYmxlIHNlZW1zIG9ic29sZXRlLiAgSXQgc2hvdWxkIHByb2JhYmx5IGJlIHJlbW92ZWQsIGFuZAorIyBvbmx5IGFjX21heF9zZWRfbGluZXMgc2hvdWxkIGJlIHVzZWQuCis6ICR7YWNfbWF4X2hlcmVfbGluZXM9Mzh9CisKKyMgSWRlbnRpdHkgb2YgdGhpcyBwYWNrYWdlLgorUEFDS0FHRV9OQU1FPQorUEFDS0FHRV9UQVJOQU1FPQorUEFDS0FHRV9WRVJTSU9OPQorUEFDS0FHRV9TVFJJTkc9CitQQUNLQUdFX0JVR1JFUE9SVD0KKworYWNfdW5pcXVlX2ZpbGU9InJsZmUuYyIKK2FjX3N1YnN0X3ZhcnM9J1NIRUxMIFBBVEhfU0VQQVJBVE9SIFBBQ0tBR0VfTkFNRSBQQUNLQUdFX1RBUk5BTUUgUEFDS0FHRV9WRVJTSU9OIFBBQ0tBR0VfU1RSSU5HIFBBQ0tBR0VfQlVHUkVQT1JUIGV4ZWNfcHJlZml4IHByZWZpeCBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIGJpbmRpciBzYmluZGlyIGxpYmV4ZWNkaXIgZGF0YWRpciBzeXNjb25mZGlyIHNoYXJlZHN0YXRlZGlyIGxvY2Fsc3RhdGVkaXIgbGliZGlyIGluY2x1ZGVkaXIgb2xkaW5jbHVkZWRpciBpbmZvZGlyIG1hbmRpciBidWlsZF9hbGlhcyBob3N0X2FsaWFzIHRhcmdldF9hbGlhcyBERUZTIEVDSE9fQyBFQ0hPX04gRUNIT19UIExJQlMgVkVSU0lPTiBDQyBDRkxBR1MgTERGTEFHUyBDUFBGTEFHUyBhY19jdF9DQyBFWEVFWFQgT0JKRVhUIENQUCBFR1JFUCBBV0sgV1JJVEVQQVRIIFhURVJNUEFUSCBMSUJPQkpTIExUTElCT0JKUycKK2FjX3N1YnN0X2ZpbGVzPScnCisKKyMgSW5pdGlhbGl6ZSBzb21lIHZhcmlhYmxlcyBzZXQgYnkgb3B0aW9ucy4KK2FjX2luaXRfaGVscD0KK2FjX2luaXRfdmVyc2lvbj1mYWxzZQorIyBUaGUgdmFyaWFibGVzIGhhdmUgdGhlIHNhbWUgbmFtZXMgYXMgdGhlIG9wdGlvbnMsIHdpdGgKKyMgZGFzaGVzIGNoYW5nZWQgdG8gdW5kZXJsaW5lcy4KK2NhY2hlX2ZpbGU9L2Rldi9udWxsCitleGVjX3ByZWZpeD1OT05FCitub19jcmVhdGU9Citub19yZWN1cnNpb249CitwcmVmaXg9Tk9ORQorcHJvZ3JhbV9wcmVmaXg9Tk9ORQorcHJvZ3JhbV9zdWZmaXg9Tk9ORQorcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT1zLHgseCwKK3NpbGVudD0KK3NpdGU9CitzcmNkaXI9Cit2ZXJib3NlPQoreF9pbmNsdWRlcz1OT05FCit4X2xpYnJhcmllcz1OT05FCisKKyMgSW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBvcHRpb25zLgorIyBUaGVzZSBhcmUgbGVmdCB1bmV4cGFuZGVkIHNvIHVzZXJzIGNhbiAibWFrZSBpbnN0YWxsIGV4ZWNfcHJlZml4PS9mb28iCisjIGFuZCBhbGwgdGhlIHZhcmlhYmxlcyB0aGF0IGFyZSBzdXBwb3NlZCB0byBiZSBiYXNlZCBvbiBleGVjX3ByZWZpeAorIyBieSBkZWZhdWx0IHdpbGwgYWN0dWFsbHkgY2hhbmdlLgorIyBVc2UgYnJhY2VzIGluc3RlYWQgb2YgcGFyZW5zIGJlY2F1c2Ugc2gsIHBlcmwsIGV0Yy4gYWxzbyBhY2NlcHQgdGhlbS4KK2JpbmRpcj0nJHtleGVjX3ByZWZpeH0vYmluJworc2JpbmRpcj0nJHtleGVjX3ByZWZpeH0vc2JpbicKK2xpYmV4ZWNkaXI9JyR7ZXhlY19wcmVmaXh9L2xpYmV4ZWMnCitkYXRhZGlyPScke3ByZWZpeH0vc2hhcmUnCitzeXNjb25mZGlyPScke3ByZWZpeH0vZXRjJworc2hhcmVkc3RhdGVkaXI9JyR7cHJlZml4fS9jb20nCitsb2NhbHN0YXRlZGlyPScke3ByZWZpeH0vdmFyJworbGliZGlyPScke2V4ZWNfcHJlZml4fS9saWInCitpbmNsdWRlZGlyPScke3ByZWZpeH0vaW5jbHVkZScKK29sZGluY2x1ZGVkaXI9Jy91c3IvaW5jbHVkZScKK2luZm9kaXI9JyR7cHJlZml4fS9pbmZvJworbWFuZGlyPScke3ByZWZpeH0vbWFuJworCithY19wcmV2PQorZm9yIGFjX29wdGlvbgorZG8KKyAgIyBJZiB0aGUgcHJldmlvdXMgb3B0aW9uIG5lZWRzIGFuIGFyZ3VtZW50LCBhc3NpZ24gaXQuCisgIGlmIHRlc3QgLW4gIiRhY19wcmV2IjsgdGhlbgorICAgIGV2YWwgIiRhY19wcmV2PVwkYWNfb3B0aW9uIgorICAgIGFjX3ByZXY9CisgICAgY29udGludWUKKyAgZmkKKworICBhY19vcHRhcmc9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4W149XSo9XCguKlwpJ2AKKworICAjIEFjY2VwdCB0aGUgaW1wb3J0YW50IEN5Z251cyBjb25maWd1cmUgb3B0aW9ucywgc28gd2UgY2FuIGRpYWdub3NlIHR5cG9zLgorCisgIGNhc2UgJGFjX29wdGlvbiBpbgorCisgIC1iaW5kaXIgfCAtLWJpbmRpciB8IC0tYmluZGkgfCAtLWJpbmQgfCAtLWJpbiB8IC0tYmkpCisgICAgYWNfcHJldj1iaW5kaXIgOzsKKyAgLWJpbmRpcj0qIHwgLS1iaW5kaXI9KiB8IC0tYmluZGk9KiB8IC0tYmluZD0qIHwgLS1iaW49KiB8IC0tYmk9KikKKyAgICBiaW5kaXI9JGFjX29wdGFyZyA7OworCisgIC1idWlsZCB8IC0tYnVpbGQgfCAtLWJ1aWwgfCAtLWJ1aSB8IC0tYnUpCisgICAgYWNfcHJldj1idWlsZF9hbGlhcyA7OworICAtYnVpbGQ9KiB8IC0tYnVpbGQ9KiB8IC0tYnVpbD0qIHwgLS1idWk9KiB8IC0tYnU9KikKKyAgICBidWlsZF9hbGlhcz0kYWNfb3B0YXJnIDs7CisKKyAgLWNhY2hlLWZpbGUgfCAtLWNhY2hlLWZpbGUgfCAtLWNhY2hlLWZpbCB8IC0tY2FjaGUtZmkgXAorICB8IC0tY2FjaGUtZiB8IC0tY2FjaGUtIHwgLS1jYWNoZSB8IC0tY2FjaCB8IC0tY2FjIHwgLS1jYSB8IC0tYykKKyAgICBhY19wcmV2PWNhY2hlX2ZpbGUgOzsKKyAgLWNhY2hlLWZpbGU9KiB8IC0tY2FjaGUtZmlsZT0qIHwgLS1jYWNoZS1maWw9KiB8IC0tY2FjaGUtZmk9KiBcCisgIHwgLS1jYWNoZS1mPSogfCAtLWNhY2hlLT0qIHwgLS1jYWNoZT0qIHwgLS1jYWNoPSogfCAtLWNhYz0qIHwgLS1jYT0qIHwgLS1jPSopCisgICAgY2FjaGVfZmlsZT0kYWNfb3B0YXJnIDs7CisKKyAgLS1jb25maWctY2FjaGUgfCAtQykKKyAgICBjYWNoZV9maWxlPWNvbmZpZy5jYWNoZSA7OworCisgIC1kYXRhZGlyIHwgLS1kYXRhZGlyIHwgLS1kYXRhZGkgfCAtLWRhdGFkIHwgLS1kYXRhIHwgLS1kYXQgfCAtLWRhKQorICAgIGFjX3ByZXY9ZGF0YWRpciA7OworICAtZGF0YWRpcj0qIHwgLS1kYXRhZGlyPSogfCAtLWRhdGFkaT0qIHwgLS1kYXRhZD0qIHwgLS1kYXRhPSogfCAtLWRhdD0qIFwKKyAgfCAtLWRhPSopCisgICAgZGF0YWRpcj0kYWNfb3B0YXJnIDs7CisKKyAgLWRpc2FibGUtKiB8IC0tZGlzYWJsZS0qKQorICAgIGFjX2ZlYXR1cmU9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4LSpkaXNhYmxlLVwoLipcKSdgCisgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgorICAgIGV4cHIgIngkYWNfZmVhdHVyZSIgOiAiLipbXi1fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgorICAgICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIGZlYXR1cmUgbmFtZTogJGFjX2ZlYXR1cmUiID4mMgorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisgICAgYWNfZmVhdHVyZT1gZWNobyAkYWNfZmVhdHVyZSB8IHNlZCAncy8tL18vZydgCisgICAgZXZhbCAiZW5hYmxlXyRhY19mZWF0dXJlPW5vIiA7OworCisgIC1lbmFibGUtKiB8IC0tZW5hYmxlLSopCisgICAgYWNfZmVhdHVyZT1gZXhwciAieCRhY19vcHRpb24iIDogJ3gtKmVuYWJsZS1cKFtePV0qXCknYAorICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1lcy4KKyAgICBleHByICJ4JGFjX2ZlYXR1cmUiIDogIi4qW14tXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKKyAgICAgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCBmZWF0dXJlIG5hbWU6ICRhY19mZWF0dXJlIiA+JjIKKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorICAgIGFjX2ZlYXR1cmU9YGVjaG8gJGFjX2ZlYXR1cmUgfCBzZWQgJ3MvLS9fL2cnYAorICAgIGNhc2UgJGFjX29wdGlvbiBpbgorICAgICAgKj0qKSBhY19vcHRhcmc9YGVjaG8gIiRhY19vcHRhcmciIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgOzsKKyAgICAgICopIGFjX29wdGFyZz15ZXMgOzsKKyAgICBlc2FjCisgICAgZXZhbCAiZW5hYmxlXyRhY19mZWF0dXJlPSckYWNfb3B0YXJnJyIgOzsKKworICAtZXhlYy1wcmVmaXggfCAtLWV4ZWNfcHJlZml4IHwgLS1leGVjLXByZWZpeCB8IC0tZXhlYy1wcmVmaSBcCisgIHwgLS1leGVjLXByZWYgfCAtLWV4ZWMtcHJlIHwgLS1leGVjLXByIHwgLS1leGVjLXAgfCAtLWV4ZWMtIFwKKyAgfCAtLWV4ZWMgfCAtLWV4ZSB8IC0tZXgpCisgICAgYWNfcHJldj1leGVjX3ByZWZpeCA7OworICAtZXhlYy1wcmVmaXg9KiB8IC0tZXhlY19wcmVmaXg9KiB8IC0tZXhlYy1wcmVmaXg9KiB8IC0tZXhlYy1wcmVmaT0qIFwKKyAgfCAtLWV4ZWMtcHJlZj0qIHwgLS1leGVjLXByZT0qIHwgLS1leGVjLXByPSogfCAtLWV4ZWMtcD0qIHwgLS1leGVjLT0qIFwKKyAgfCAtLWV4ZWM9KiB8IC0tZXhlPSogfCAtLWV4PSopCisgICAgZXhlY19wcmVmaXg9JGFjX29wdGFyZyA7OworCisgIC1nYXMgfCAtLWdhcyB8IC0tZ2EgfCAtLWcpCisgICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aC1nYXMuCisgICAgd2l0aF9nYXM9eWVzIDs7CisKKyAgLWhlbHAgfCAtLWhlbHAgfCAtLWhlbCB8IC0taGUgfCAtaCkKKyAgICBhY19pbml0X2hlbHA9bG9uZyA7OworICAtaGVscD1yKiB8IC0taGVscD1yKiB8IC0taGVsPXIqIHwgLS1oZT1yKiB8IC1ociopCisgICAgYWNfaW5pdF9oZWxwPXJlY3Vyc2l2ZSA7OworICAtaGVscD1zKiB8IC0taGVscD1zKiB8IC0taGVsPXMqIHwgLS1oZT1zKiB8IC1ocyopCisgICAgYWNfaW5pdF9oZWxwPXNob3J0IDs7CisKKyAgLWhvc3QgfCAtLWhvc3QgfCAtLWhvcyB8IC0taG8pCisgICAgYWNfcHJldj1ob3N0X2FsaWFzIDs7CisgIC1ob3N0PSogfCAtLWhvc3Q9KiB8IC0taG9zPSogfCAtLWhvPSopCisgICAgaG9zdF9hbGlhcz0kYWNfb3B0YXJnIDs7CisKKyAgLWluY2x1ZGVkaXIgfCAtLWluY2x1ZGVkaXIgfCAtLWluY2x1ZGVkaSB8IC0taW5jbHVkZWQgfCAtLWluY2x1ZGUgXAorICB8IC0taW5jbHVkIHwgLS1pbmNsdSB8IC0taW5jbCB8IC0taW5jKQorICAgIGFjX3ByZXY9aW5jbHVkZWRpciA7OworICAtaW5jbHVkZWRpcj0qIHwgLS1pbmNsdWRlZGlyPSogfCAtLWluY2x1ZGVkaT0qIHwgLS1pbmNsdWRlZD0qIHwgLS1pbmNsdWRlPSogXAorICB8IC0taW5jbHVkPSogfCAtLWluY2x1PSogfCAtLWluY2w9KiB8IC0taW5jPSopCisgICAgaW5jbHVkZWRpcj0kYWNfb3B0YXJnIDs7CisKKyAgLWluZm9kaXIgfCAtLWluZm9kaXIgfCAtLWluZm9kaSB8IC0taW5mb2QgfCAtLWluZm8gfCAtLWluZikKKyAgICBhY19wcmV2PWluZm9kaXIgOzsKKyAgLWluZm9kaXI9KiB8IC0taW5mb2Rpcj0qIHwgLS1pbmZvZGk9KiB8IC0taW5mb2Q9KiB8IC0taW5mbz0qIHwgLS1pbmY9KikKKyAgICBpbmZvZGlyPSRhY19vcHRhcmcgOzsKKworICAtbGliZGlyIHwgLS1saWJkaXIgfCAtLWxpYmRpIHwgLS1saWJkKQorICAgIGFjX3ByZXY9bGliZGlyIDs7CisgIC1saWJkaXI9KiB8IC0tbGliZGlyPSogfCAtLWxpYmRpPSogfCAtLWxpYmQ9KikKKyAgICBsaWJkaXI9JGFjX29wdGFyZyA7OworCisgIC1saWJleGVjZGlyIHwgLS1saWJleGVjZGlyIHwgLS1saWJleGVjZGkgfCAtLWxpYmV4ZWNkIHwgLS1saWJleGVjIFwKKyAgfCAtLWxpYmV4ZSB8IC0tbGliZXggfCAtLWxpYmUpCisgICAgYWNfcHJldj1saWJleGVjZGlyIDs7CisgIC1saWJleGVjZGlyPSogfCAtLWxpYmV4ZWNkaXI9KiB8IC0tbGliZXhlY2RpPSogfCAtLWxpYmV4ZWNkPSogfCAtLWxpYmV4ZWM9KiBcCisgIHwgLS1saWJleGU9KiB8IC0tbGliZXg9KiB8IC0tbGliZT0qKQorICAgIGxpYmV4ZWNkaXI9JGFjX29wdGFyZyA7OworCisgIC1sb2NhbHN0YXRlZGlyIHwgLS1sb2NhbHN0YXRlZGlyIHwgLS1sb2NhbHN0YXRlZGkgfCAtLWxvY2Fsc3RhdGVkIFwKKyAgfCAtLWxvY2Fsc3RhdGUgfCAtLWxvY2Fsc3RhdCB8IC0tbG9jYWxzdGEgfCAtLWxvY2Fsc3QgXAorICB8IC0tbG9jYWxzIHwgLS1sb2NhbCB8IC0tbG9jYSB8IC0tbG9jIHwgLS1sbykKKyAgICBhY19wcmV2PWxvY2Fsc3RhdGVkaXIgOzsKKyAgLWxvY2Fsc3RhdGVkaXI9KiB8IC0tbG9jYWxzdGF0ZWRpcj0qIHwgLS1sb2NhbHN0YXRlZGk9KiB8IC0tbG9jYWxzdGF0ZWQ9KiBcCisgIHwgLS1sb2NhbHN0YXRlPSogfCAtLWxvY2Fsc3RhdD0qIHwgLS1sb2NhbHN0YT0qIHwgLS1sb2NhbHN0PSogXAorICB8IC0tbG9jYWxzPSogfCAtLWxvY2FsPSogfCAtLWxvY2E9KiB8IC0tbG9jPSogfCAtLWxvPSopCisgICAgbG9jYWxzdGF0ZWRpcj0kYWNfb3B0YXJnIDs7CisKKyAgLW1hbmRpciB8IC0tbWFuZGlyIHwgLS1tYW5kaSB8IC0tbWFuZCB8IC0tbWFuIHwgLS1tYSB8IC0tbSkKKyAgICBhY19wcmV2PW1hbmRpciA7OworICAtbWFuZGlyPSogfCAtLW1hbmRpcj0qIHwgLS1tYW5kaT0qIHwgLS1tYW5kPSogfCAtLW1hbj0qIHwgLS1tYT0qIHwgLS1tPSopCisgICAgbWFuZGlyPSRhY19vcHRhcmcgOzsKKworICAtbmZwIHwgLS1uZnAgfCAtLW5mKQorICAgICMgT2Jzb2xldGU7IHVzZSAtLXdpdGhvdXQtZnAuCisgICAgd2l0aF9mcD1ubyA7OworCisgIC1uby1jcmVhdGUgfCAtLW5vLWNyZWF0ZSB8IC0tbm8tY3JlYXQgfCAtLW5vLWNyZWEgfCAtLW5vLWNyZSBcCisgIHwgLS1uby1jciB8IC0tbm8tYyB8IC1uKQorICAgIG5vX2NyZWF0ZT15ZXMgOzsKKworICAtbm8tcmVjdXJzaW9uIHwgLS1uby1yZWN1cnNpb24gfCAtLW5vLXJlY3Vyc2lvIHwgLS1uby1yZWN1cnNpIFwKKyAgfCAtLW5vLXJlY3VycyB8IC0tbm8tcmVjdXIgfCAtLW5vLXJlY3UgfCAtLW5vLXJlYyB8IC0tbm8tcmUgfCAtLW5vLXIpCisgICAgbm9fcmVjdXJzaW9uPXllcyA7OworCisgIC1vbGRpbmNsdWRlZGlyIHwgLS1vbGRpbmNsdWRlZGlyIHwgLS1vbGRpbmNsdWRlZGkgfCAtLW9sZGluY2x1ZGVkIFwKKyAgfCAtLW9sZGluY2x1ZGUgfCAtLW9sZGluY2x1ZCB8IC0tb2xkaW5jbHUgfCAtLW9sZGluY2wgfCAtLW9sZGluYyBcCisgIHwgLS1vbGRpbiB8IC0tb2xkaSB8IC0tb2xkIHwgLS1vbCB8IC0tbykKKyAgICBhY19wcmV2PW9sZGluY2x1ZGVkaXIgOzsKKyAgLW9sZGluY2x1ZGVkaXI9KiB8IC0tb2xkaW5jbHVkZWRpcj0qIHwgLS1vbGRpbmNsdWRlZGk9KiB8IC0tb2xkaW5jbHVkZWQ9KiBcCisgIHwgLS1vbGRpbmNsdWRlPSogfCAtLW9sZGluY2x1ZD0qIHwgLS1vbGRpbmNsdT0qIHwgLS1vbGRpbmNsPSogfCAtLW9sZGluYz0qIFwKKyAgfCAtLW9sZGluPSogfCAtLW9sZGk9KiB8IC0tb2xkPSogfCAtLW9sPSogfCAtLW89KikKKyAgICBvbGRpbmNsdWRlZGlyPSRhY19vcHRhcmcgOzsKKworICAtcHJlZml4IHwgLS1wcmVmaXggfCAtLXByZWZpIHwgLS1wcmVmIHwgLS1wcmUgfCAtLXByIHwgLS1wKQorICAgIGFjX3ByZXY9cHJlZml4IDs7CisgIC1wcmVmaXg9KiB8IC0tcHJlZml4PSogfCAtLXByZWZpPSogfCAtLXByZWY9KiB8IC0tcHJlPSogfCAtLXByPSogfCAtLXA9KikKKyAgICBwcmVmaXg9JGFjX29wdGFyZyA7OworCisgIC1wcm9ncmFtLXByZWZpeCB8IC0tcHJvZ3JhbS1wcmVmaXggfCAtLXByb2dyYW0tcHJlZmkgfCAtLXByb2dyYW0tcHJlZiBcCisgIHwgLS1wcm9ncmFtLXByZSB8IC0tcHJvZ3JhbS1wciB8IC0tcHJvZ3JhbS1wKQorICAgIGFjX3ByZXY9cHJvZ3JhbV9wcmVmaXggOzsKKyAgLXByb2dyYW0tcHJlZml4PSogfCAtLXByb2dyYW0tcHJlZml4PSogfCAtLXByb2dyYW0tcHJlZmk9KiBcCisgIHwgLS1wcm9ncmFtLXByZWY9KiB8IC0tcHJvZ3JhbS1wcmU9KiB8IC0tcHJvZ3JhbS1wcj0qIHwgLS1wcm9ncmFtLXA9KikKKyAgICBwcm9ncmFtX3ByZWZpeD0kYWNfb3B0YXJnIDs7CisKKyAgLXByb2dyYW0tc3VmZml4IHwgLS1wcm9ncmFtLXN1ZmZpeCB8IC0tcHJvZ3JhbS1zdWZmaSB8IC0tcHJvZ3JhbS1zdWZmIFwKKyAgfCAtLXByb2dyYW0tc3VmIHwgLS1wcm9ncmFtLXN1IHwgLS1wcm9ncmFtLXMpCisgICAgYWNfcHJldj1wcm9ncmFtX3N1ZmZpeCA7OworICAtcHJvZ3JhbS1zdWZmaXg9KiB8IC0tcHJvZ3JhbS1zdWZmaXg9KiB8IC0tcHJvZ3JhbS1zdWZmaT0qIFwKKyAgfCAtLXByb2dyYW0tc3VmZj0qIHwgLS1wcm9ncmFtLXN1Zj0qIHwgLS1wcm9ncmFtLXN1PSogfCAtLXByb2dyYW0tcz0qKQorICAgIHByb2dyYW1fc3VmZml4PSRhY19vcHRhcmcgOzsKKworICAtcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZSB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZSBcCisgIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW0gfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hIFwKKyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtLW4gfCAtLXByb2dyYW0tdHJhbnNmb3JtLSBcCisgIHwgLS1wcm9ncmFtLXRyYW5zZm9ybSB8IC0tcHJvZ3JhbS10cmFuc2ZvciBcCisgIHwgLS1wcm9ncmFtLXRyYW5zZm8gfCAtLXByb2dyYW0tdHJhbnNmIFwKKyAgfCAtLXByb2dyYW0tdHJhbnMgfCAtLXByb2dyYW0tdHJhbiBcCisgIHwgLS1wcm9nci10cmEgfCAtLXByb2dyYW0tdHIgfCAtLXByb2dyYW0tdCkKKyAgICBhY19wcmV2PXByb2dyYW1fdHJhbnNmb3JtX25hbWUgOzsKKyAgLXByb2dyYW0tdHJhbnNmb3JtLW5hbWU9KiB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtZT0qIFwKKyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hbT0qIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYT0qIFwKKyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtLW49KiB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tPSogXAorICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm09KiB8IC0tcHJvZ3JhbS10cmFuc2Zvcj0qIFwKKyAgfCAtLXByb2dyYW0tdHJhbnNmbz0qIHwgLS1wcm9ncmFtLXRyYW5zZj0qIFwKKyAgfCAtLXByb2dyYW0tdHJhbnM9KiB8IC0tcHJvZ3JhbS10cmFuPSogXAorICB8IC0tcHJvZ3ItdHJhPSogfCAtLXByb2dyYW0tdHI9KiB8IC0tcHJvZ3JhbS10PSopCisgICAgcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT0kYWNfb3B0YXJnIDs7CisKKyAgLXEgfCAtcXVpZXQgfCAtLXF1aWV0IHwgLS1xdWllIHwgLS1xdWkgfCAtLXF1IHwgLS1xIFwKKyAgfCAtc2lsZW50IHwgLS1zaWxlbnQgfCAtLXNpbGVuIHwgLS1zaWxlIHwgLS1zaWwpCisgICAgc2lsZW50PXllcyA7OworCisgIC1zYmluZGlyIHwgLS1zYmluZGlyIHwgLS1zYmluZGkgfCAtLXNiaW5kIHwgLS1zYmluIHwgLS1zYmkgfCAtLXNiKQorICAgIGFjX3ByZXY9c2JpbmRpciA7OworICAtc2JpbmRpcj0qIHwgLS1zYmluZGlyPSogfCAtLXNiaW5kaT0qIHwgLS1zYmluZD0qIHwgLS1zYmluPSogXAorICB8IC0tc2JpPSogfCAtLXNiPSopCisgICAgc2JpbmRpcj0kYWNfb3B0YXJnIDs7CisKKyAgLXNoYXJlZHN0YXRlZGlyIHwgLS1zaGFyZWRzdGF0ZWRpciB8IC0tc2hhcmVkc3RhdGVkaSBcCisgIHwgLS1zaGFyZWRzdGF0ZWQgfCAtLXNoYXJlZHN0YXRlIHwgLS1zaGFyZWRzdGF0IHwgLS1zaGFyZWRzdGEgXAorICB8IC0tc2hhcmVkc3QgfCAtLXNoYXJlZHMgfCAtLXNoYXJlZCB8IC0tc2hhcmUgfCAtLXNoYXIgXAorICB8IC0tc2hhIHwgLS1zaCkKKyAgICBhY19wcmV2PXNoYXJlZHN0YXRlZGlyIDs7CisgIC1zaGFyZWRzdGF0ZWRpcj0qIHwgLS1zaGFyZWRzdGF0ZWRpcj0qIHwgLS1zaGFyZWRzdGF0ZWRpPSogXAorICB8IC0tc2hhcmVkc3RhdGVkPSogfCAtLXNoYXJlZHN0YXRlPSogfCAtLXNoYXJlZHN0YXQ9KiB8IC0tc2hhcmVkc3RhPSogXAorICB8IC0tc2hhcmVkc3Q9KiB8IC0tc2hhcmVkcz0qIHwgLS1zaGFyZWQ9KiB8IC0tc2hhcmU9KiB8IC0tc2hhcj0qIFwKKyAgfCAtLXNoYT0qIHwgLS1zaD0qKQorICAgIHNoYXJlZHN0YXRlZGlyPSRhY19vcHRhcmcgOzsKKworICAtc2l0ZSB8IC0tc2l0ZSB8IC0tc2l0KQorICAgIGFjX3ByZXY9c2l0ZSA7OworICAtc2l0ZT0qIHwgLS1zaXRlPSogfCAtLXNpdD0qKQorICAgIHNpdGU9JGFjX29wdGFyZyA7OworCisgIC1zcmNkaXIgfCAtLXNyY2RpciB8IC0tc3JjZGkgfCAtLXNyY2QgfCAtLXNyYyB8IC0tc3IpCisgICAgYWNfcHJldj1zcmNkaXIgOzsKKyAgLXNyY2Rpcj0qIHwgLS1zcmNkaXI9KiB8IC0tc3JjZGk9KiB8IC0tc3JjZD0qIHwgLS1zcmM9KiB8IC0tc3I9KikKKyAgICBzcmNkaXI9JGFjX29wdGFyZyA7OworCisgIC1zeXNjb25mZGlyIHwgLS1zeXNjb25mZGlyIHwgLS1zeXNjb25mZGkgfCAtLXN5c2NvbmZkIHwgLS1zeXNjb25mIFwKKyAgfCAtLXN5c2NvbiB8IC0tc3lzY28gfCAtLXN5c2MgfCAtLXN5cyB8IC0tc3kpCisgICAgYWNfcHJldj1zeXNjb25mZGlyIDs7CisgIC1zeXNjb25mZGlyPSogfCAtLXN5c2NvbmZkaXI9KiB8IC0tc3lzY29uZmRpPSogfCAtLXN5c2NvbmZkPSogfCAtLXN5c2NvbmY9KiBcCisgIHwgLS1zeXNjb249KiB8IC0tc3lzY289KiB8IC0tc3lzYz0qIHwgLS1zeXM9KiB8IC0tc3k9KikKKyAgICBzeXNjb25mZGlyPSRhY19vcHRhcmcgOzsKKworICAtdGFyZ2V0IHwgLS10YXJnZXQgfCAtLXRhcmdlIHwgLS10YXJnIHwgLS10YXIgfCAtLXRhIHwgLS10KQorICAgIGFjX3ByZXY9dGFyZ2V0X2FsaWFzIDs7CisgIC10YXJnZXQ9KiB8IC0tdGFyZ2V0PSogfCAtLXRhcmdlPSogfCAtLXRhcmc9KiB8IC0tdGFyPSogfCAtLXRhPSogfCAtLXQ9KikKKyAgICB0YXJnZXRfYWxpYXM9JGFjX29wdGFyZyA7OworCisgIC12IHwgLXZlcmJvc2UgfCAtLXZlcmJvc2UgfCAtLXZlcmJvcyB8IC0tdmVyYm8gfCAtLXZlcmIpCisgICAgdmVyYm9zZT15ZXMgOzsKKworICAtdmVyc2lvbiB8IC0tdmVyc2lvbiB8IC0tdmVyc2lvIHwgLS12ZXJzaSB8IC0tdmVycyB8IC1WKQorICAgIGFjX2luaXRfdmVyc2lvbj06IDs7CisKKyAgLXdpdGgtKiB8IC0td2l0aC0qKQorICAgIGFjX3BhY2thZ2U9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4LSp3aXRoLVwoW149XSpcKSdgCisgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgorICAgIGV4cHIgIngkYWNfcGFja2FnZSIgOiAiLipbXi1fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgorICAgICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBpbnZhbGlkIHBhY2thZ2UgbmFtZTogJGFjX3BhY2thZ2UiID4mMgorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisgICAgYWNfcGFja2FnZT1gZWNobyAkYWNfcGFja2FnZXwgc2VkICdzLy0vXy9nJ2AKKyAgICBjYXNlICRhY19vcHRpb24gaW4KKyAgICAgICo9KikgYWNfb3B0YXJnPWBlY2hvICIkYWNfb3B0YXJnIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYDs7CisgICAgICAqKSBhY19vcHRhcmc9eWVzIDs7CisgICAgZXNhYworICAgIGV2YWwgIndpdGhfJGFjX3BhY2thZ2U9JyRhY19vcHRhcmcnIiA7OworCisgIC13aXRob3V0LSogfCAtLXdpdGhvdXQtKikKKyAgICBhY19wYWNrYWdlPWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qd2l0aG91dC1cKC4qXCknYAorICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1lcy4KKyAgICBleHByICJ4JGFjX3BhY2thZ2UiIDogIi4qW14tXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKKyAgICAgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCBwYWNrYWdlIG5hbWU6ICRhY19wYWNrYWdlIiA+JjIKKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorICAgIGFjX3BhY2thZ2U9YGVjaG8gJGFjX3BhY2thZ2UgfCBzZWQgJ3MvLS9fL2cnYAorICAgIGV2YWwgIndpdGhfJGFjX3BhY2thZ2U9bm8iIDs7CisKKyAgLS14KQorICAgICMgT2Jzb2xldGU7IHVzZSAtLXdpdGgteC4KKyAgICB3aXRoX3g9eWVzIDs7CisKKyAgLXgtaW5jbHVkZXMgfCAtLXgtaW5jbHVkZXMgfCAtLXgtaW5jbHVkZSB8IC0teC1pbmNsdWQgfCAtLXgtaW5jbHUgXAorICB8IC0teC1pbmNsIHwgLS14LWluYyB8IC0teC1pbiB8IC0teC1pKQorICAgIGFjX3ByZXY9eF9pbmNsdWRlcyA7OworICAteC1pbmNsdWRlcz0qIHwgLS14LWluY2x1ZGVzPSogfCAtLXgtaW5jbHVkZT0qIHwgLS14LWluY2x1ZD0qIHwgLS14LWluY2x1PSogXAorICB8IC0teC1pbmNsPSogfCAtLXgtaW5jPSogfCAtLXgtaW49KiB8IC0teC1pPSopCisgICAgeF9pbmNsdWRlcz0kYWNfb3B0YXJnIDs7CisKKyAgLXgtbGlicmFyaWVzIHwgLS14LWxpYnJhcmllcyB8IC0teC1saWJyYXJpZSB8IC0teC1saWJyYXJpIFwKKyAgfCAtLXgtbGlicmFyIHwgLS14LWxpYnJhIHwgLS14LWxpYnIgfCAtLXgtbGliIHwgLS14LWxpIHwgLS14LWwpCisgICAgYWNfcHJldj14X2xpYnJhcmllcyA7OworICAteC1saWJyYXJpZXM9KiB8IC0teC1saWJyYXJpZXM9KiB8IC0teC1saWJyYXJpZT0qIHwgLS14LWxpYnJhcmk9KiBcCisgIHwgLS14LWxpYnJhcj0qIHwgLS14LWxpYnJhPSogfCAtLXgtbGlicj0qIHwgLS14LWxpYj0qIHwgLS14LWxpPSogfCAtLXgtbD0qKQorICAgIHhfbGlicmFyaWVzPSRhY19vcHRhcmcgOzsKKworICAtKikgeyBlY2hvICIkYXNfbWU6IGVycm9yOiB1bnJlY29nbml6ZWQgb3B0aW9uOiAkYWNfb3B0aW9uCitUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiYyCisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKyAgICA7OworCisgICo9KikKKyAgICBhY19lbnZ2YXI9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4XChbXj1dKlwpPSdgCisgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgorICAgIGV4cHIgIngkYWNfZW52dmFyIiA6ICIuKlteXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKKyAgICAgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCB2YXJpYWJsZSBuYW1lOiAkYWNfZW52dmFyIiA+JjIKKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorICAgIGFjX29wdGFyZz1gZWNobyAiJGFjX29wdGFyZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAKKyAgICBldmFsICIkYWNfZW52dmFyPSckYWNfb3B0YXJnJyIKKyAgICBleHBvcnQgJGFjX2VudnZhciA7OworCisgICopCisgICAgIyBGSVhNRTogc2hvdWxkIGJlIHJlbW92ZWQgaW4gYXV0b2NvbmYgMy4wLgorICAgIGVjaG8gIiRhc19tZTogV0FSTklORzogeW91IHNob3VsZCB1c2UgLS1idWlsZCwgLS1ob3N0LCAtLXRhcmdldCIgPiYyCisgICAgZXhwciAieCRhY19vcHRpb24iIDogIi4qW14tLl8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCisgICAgICBlY2hvICIkYXNfbWU6IFdBUk5JTkc6IGludmFsaWQgaG9zdCB0eXBlOiAkYWNfb3B0aW9uIiA+JjIKKyAgICA6ICR7YnVpbGRfYWxpYXM9JGFjX29wdGlvbn0gJHtob3N0X2FsaWFzPSRhY19vcHRpb259ICR7dGFyZ2V0X2FsaWFzPSRhY19vcHRpb259CisgICAgOzsKKworICBlc2FjCitkb25lCisKK2lmIHRlc3QgLW4gIiRhY19wcmV2IjsgdGhlbgorICBhY19vcHRpb249LS1gZWNobyAkYWNfcHJldiB8IHNlZCAncy9fLy0vZydgCisgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogbWlzc2luZyBhcmd1bWVudCB0byAkYWNfb3B0aW9uIiA+JjIKKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorZmkKKworIyBCZSBzdXJlIHRvIGhhdmUgYWJzb2x1dGUgcGF0aHMuCitmb3IgYWNfdmFyIGluIGV4ZWNfcHJlZml4IHByZWZpeAorZG8KKyAgZXZhbCBhY192YWw9JGBlY2hvICRhY192YXJgCisgIGNhc2UgJGFjX3ZhbCBpbgorICAgIFtcXC8kXSogfCA/OltcXC9dKiB8IE5PTkUgfCAnJyApIDs7CisgICAgKikgIHsgZWNobyAiJGFzX21lOiBlcnJvcjogZXhwZWN0ZWQgYW4gYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUgZm9yIC0tJGFjX3ZhcjogJGFjX3ZhbCIgPiYyCisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OworICBlc2FjCitkb25lCisKKyMgQmUgc3VyZSB0byBoYXZlIGFic29sdXRlIHBhdGhzLgorZm9yIGFjX3ZhciBpbiBiaW5kaXIgc2JpbmRpciBsaWJleGVjZGlyIGRhdGFkaXIgc3lzY29uZmRpciBzaGFyZWRzdGF0ZWRpciBcCisJICAgICAgbG9jYWxzdGF0ZWRpciBsaWJkaXIgaW5jbHVkZWRpciBvbGRpbmNsdWRlZGlyIGluZm9kaXIgbWFuZGlyCitkbworICBldmFsIGFjX3ZhbD0kYGVjaG8gJGFjX3ZhcmAKKyAgY2FzZSAkYWNfdmFsIGluCisgICAgW1xcLyRdKiB8ID86W1xcL10qICkgOzsKKyAgICAqKSAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBleHBlY3RlZCBhbiBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBmb3IgLS0kYWNfdmFyOiAkYWNfdmFsIiA+JjIKKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7CisgIGVzYWMKK2RvbmUKKworIyBUaGVyZSBtaWdodCBiZSBwZW9wbGUgd2hvIGRlcGVuZCBvbiB0aGUgb2xkIGJyb2tlbiBiZWhhdmlvcjogYCRob3N0JworIyB1c2VkIHRvIGhvbGQgdGhlIGFyZ3VtZW50IG9mIC0taG9zdCBldGMuCisjIEZJWE1FOiBUbyByZW1vdmUgc29tZSBkYXkuCitidWlsZD0kYnVpbGRfYWxpYXMKK2hvc3Q9JGhvc3RfYWxpYXMKK3RhcmdldD0kdGFyZ2V0X2FsaWFzCisKKyMgRklYTUU6IFRvIHJlbW92ZSBzb21lIGRheS4KK2lmIHRlc3QgIngkaG9zdF9hbGlhcyIgIT0geDsgdGhlbgorICBpZiB0ZXN0ICJ4JGJ1aWxkX2FsaWFzIiA9IHg7IHRoZW4KKyAgICBjcm9zc19jb21waWxpbmc9bWF5YmUKKyAgICBlY2hvICIkYXNfbWU6IFdBUk5JTkc6IElmIHlvdSB3YW50ZWQgdG8gc2V0IHRoZSAtLWJ1aWxkIHR5cGUsIGRvbid0IHVzZSAtLWhvc3QuCisgICAgSWYgYSBjcm9zcyBjb21waWxlciBpcyBkZXRlY3RlZCB0aGVuIGNyb3NzIGNvbXBpbGUgbW9kZSB3aWxsIGJlIHVzZWQuIiA+JjIKKyAgZWxpZiB0ZXN0ICJ4JGJ1aWxkX2FsaWFzIiAhPSAieCRob3N0X2FsaWFzIjsgdGhlbgorICAgIGNyb3NzX2NvbXBpbGluZz15ZXMKKyAgZmkKK2ZpCisKK2FjX3Rvb2xfcHJlZml4PQordGVzdCAtbiAiJGhvc3RfYWxpYXMiICYmIGFjX3Rvb2xfcHJlZml4PSRob3N0X2FsaWFzLQorCit0ZXN0ICIkc2lsZW50IiA9IHllcyAmJiBleGVjIDY+L2Rldi9udWxsCisKKworIyBGaW5kIHRoZSBzb3VyY2UgZmlsZXMsIGlmIGxvY2F0aW9uIHdhcyBub3Qgc3BlY2lmaWVkLgoraWYgdGVzdCAteiAiJHNyY2RpciI7IHRoZW4KKyAgYWNfc3JjZGlyX2RlZmF1bHRlZD15ZXMKKyAgIyBUcnkgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoaXMgc2NyaXB0LCB0aGVuIGl0cyBwYXJlbnQuCisgIGFjX2NvbmZkaXI9YChkaXJuYW1lICIkMCIpIDI+L2Rldi9udWxsIHx8CiskYXNfZXhwciBYIiQwIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAorCSBYIiQwIiA6ICdYXCgvL1wpW14vXScgXHwgXAorCSBYIiQwIiA6ICdYXCgvL1wpJCcgXHwgXAorCSBYIiQwIiA6ICdYXCgvXCknIFx8IFwKKwkgLiAgICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8CitlY2hvIFgiJDAiIHwKKyAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXChcL1wvXClbXi9dLioveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXChcL1wvXCkkL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cKS4qL3sgcy8vXDEvOyBxOyB9CisgIAkgIHMvLiovLi87IHEnYAorICBzcmNkaXI9JGFjX2NvbmZkaXIKKyAgaWYgdGVzdCAhIC1yICRzcmNkaXIvJGFjX3VuaXF1ZV9maWxlOyB0aGVuCisgICAgc3JjZGlyPS4uCisgIGZpCitlbHNlCisgIGFjX3NyY2Rpcl9kZWZhdWx0ZWQ9bm8KK2ZpCitpZiB0ZXN0ICEgLXIgJHNyY2Rpci8kYWNfdW5pcXVlX2ZpbGU7IHRoZW4KKyAgaWYgdGVzdCAiJGFjX3NyY2Rpcl9kZWZhdWx0ZWQiID0geWVzOyB0aGVuCisgICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBzb3VyY2VzICgkYWNfdW5pcXVlX2ZpbGUpIGluICRhY19jb25mZGlyIG9yIC4uIiA+JjIKKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorICBlbHNlCisgICAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBzb3VyY2VzICgkYWNfdW5pcXVlX2ZpbGUpIGluICRzcmNkaXIiID4mMgorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisgIGZpCitmaQorKGNkICRzcmNkaXIgJiYgdGVzdCAtciAuLyRhY191bmlxdWVfZmlsZSkgMj4vZGV2L251bGwgfHwKKyAgeyBlY2hvICIkYXNfbWU6IGVycm9yOiBzb3VyY2VzIGFyZSBpbiAkc3JjZGlyLCBidXQgXGBjZCAkc3JjZGlyJyBkb2VzIG5vdCB3b3JrIiA+JjIKKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorc3JjZGlyPWBlY2hvICIkc3JjZGlyIiB8IHNlZCAncyVcKFteXFwvXVwpW1xcL10qJCVcMSUnYAorYWNfZW52X2J1aWxkX2FsaWFzX3NldD0ke2J1aWxkX2FsaWFzK3NldH0KK2FjX2Vudl9idWlsZF9hbGlhc192YWx1ZT0kYnVpbGRfYWxpYXMKK2FjX2N2X2Vudl9idWlsZF9hbGlhc19zZXQ9JHtidWlsZF9hbGlhcytzZXR9CithY19jdl9lbnZfYnVpbGRfYWxpYXNfdmFsdWU9JGJ1aWxkX2FsaWFzCithY19lbnZfaG9zdF9hbGlhc19zZXQ9JHtob3N0X2FsaWFzK3NldH0KK2FjX2Vudl9ob3N0X2FsaWFzX3ZhbHVlPSRob3N0X2FsaWFzCithY19jdl9lbnZfaG9zdF9hbGlhc19zZXQ9JHtob3N0X2FsaWFzK3NldH0KK2FjX2N2X2Vudl9ob3N0X2FsaWFzX3ZhbHVlPSRob3N0X2FsaWFzCithY19lbnZfdGFyZ2V0X2FsaWFzX3NldD0ke3RhcmdldF9hbGlhcytzZXR9CithY19lbnZfdGFyZ2V0X2FsaWFzX3ZhbHVlPSR0YXJnZXRfYWxpYXMKK2FjX2N2X2Vudl90YXJnZXRfYWxpYXNfc2V0PSR7dGFyZ2V0X2FsaWFzK3NldH0KK2FjX2N2X2Vudl90YXJnZXRfYWxpYXNfdmFsdWU9JHRhcmdldF9hbGlhcworYWNfZW52X0NDX3NldD0ke0NDK3NldH0KK2FjX2Vudl9DQ192YWx1ZT0kQ0MKK2FjX2N2X2Vudl9DQ19zZXQ9JHtDQytzZXR9CithY19jdl9lbnZfQ0NfdmFsdWU9JENDCithY19lbnZfQ0ZMQUdTX3NldD0ke0NGTEFHUytzZXR9CithY19lbnZfQ0ZMQUdTX3ZhbHVlPSRDRkxBR1MKK2FjX2N2X2Vudl9DRkxBR1Nfc2V0PSR7Q0ZMQUdTK3NldH0KK2FjX2N2X2Vudl9DRkxBR1NfdmFsdWU9JENGTEFHUworYWNfZW52X0xERkxBR1Nfc2V0PSR7TERGTEFHUytzZXR9CithY19lbnZfTERGTEFHU192YWx1ZT0kTERGTEFHUworYWNfY3ZfZW52X0xERkxBR1Nfc2V0PSR7TERGTEFHUytzZXR9CithY19jdl9lbnZfTERGTEFHU192YWx1ZT0kTERGTEFHUworYWNfZW52X0NQUEZMQUdTX3NldD0ke0NQUEZMQUdTK3NldH0KK2FjX2Vudl9DUFBGTEFHU192YWx1ZT0kQ1BQRkxBR1MKK2FjX2N2X2Vudl9DUFBGTEFHU19zZXQ9JHtDUFBGTEFHUytzZXR9CithY19jdl9lbnZfQ1BQRkxBR1NfdmFsdWU9JENQUEZMQUdTCithY19lbnZfQ1BQX3NldD0ke0NQUCtzZXR9CithY19lbnZfQ1BQX3ZhbHVlPSRDUFAKK2FjX2N2X2Vudl9DUFBfc2V0PSR7Q1BQK3NldH0KK2FjX2N2X2Vudl9DUFBfdmFsdWU9JENQUAorCisjCisjIFJlcG9ydCB0aGUgLS1oZWxwIG1lc3NhZ2UuCisjCitpZiB0ZXN0ICIkYWNfaW5pdF9oZWxwIiA9ICJsb25nIjsgdGhlbgorICAjIE9taXQgc29tZSBpbnRlcm5hbCBvciBvYnNvbGV0ZSBvcHRpb25zIHRvIG1ha2UgdGhlIGxpc3QgbGVzcyBpbXBvc2luZy4KKyAgIyBUaGlzIG1lc3NhZ2UgaXMgdG9vIGxvbmcgdG8gYmUgYSBzdHJpbmcgaW4gdGhlIEEvVVggMy4xIHNoLgorICBjYXQgPDxfQUNFT0YKK1xgY29uZmlndXJlJyBjb25maWd1cmVzIHRoaXMgcGFja2FnZSB0byBhZGFwdCB0byBtYW55IGtpbmRzIG9mIHN5c3RlbXMuCisKK1VzYWdlOiAkMCBbT1BUSU9OXS4uLiBbVkFSPVZBTFVFXS4uLgorCitUbyBhc3NpZ24gZW52aXJvbm1lbnQgdmFyaWFibGVzIChlLmcuLCBDQywgQ0ZMQUdTLi4uKSwgc3BlY2lmeSB0aGVtIGFzCitWQVI9VkFMVUUuICBTZWUgYmVsb3cgZm9yIGRlc2NyaXB0aW9ucyBvZiBzb21lIG9mIHRoZSB1c2VmdWwgdmFyaWFibGVzLgorCitEZWZhdWx0cyBmb3IgdGhlIG9wdGlvbnMgYXJlIHNwZWNpZmllZCBpbiBicmFja2V0cy4KKworQ29uZmlndXJhdGlvbjoKKyAgLWgsIC0taGVscCAgICAgICAgICAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXQKKyAgICAgIC0taGVscD1zaG9ydCAgICAgICAgZGlzcGxheSBvcHRpb25zIHNwZWNpZmljIHRvIHRoaXMgcGFja2FnZQorICAgICAgLS1oZWxwPXJlY3Vyc2l2ZSAgICBkaXNwbGF5IHRoZSBzaG9ydCBoZWxwIG9mIGFsbCB0aGUgaW5jbHVkZWQgcGFja2FnZXMKKyAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgZGlzcGxheSB2ZXJzaW9uIGluZm9ybWF0aW9uIGFuZCBleGl0CisgIC1xLCAtLXF1aWV0LCAtLXNpbGVudCAgIGRvIG5vdCBwcmludCBcYGNoZWNraW5nLi4uJyBtZXNzYWdlcworICAgICAgLS1jYWNoZS1maWxlPUZJTEUgICBjYWNoZSB0ZXN0IHJlc3VsdHMgaW4gRklMRSBbZGlzYWJsZWRdCisgIC1DLCAtLWNvbmZpZy1jYWNoZSAgICAgIGFsaWFzIGZvciBcYC0tY2FjaGUtZmlsZT1jb25maWcuY2FjaGUnCisgIC1uLCAtLW5vLWNyZWF0ZSAgICAgICAgIGRvIG5vdCBjcmVhdGUgb3V0cHV0IGZpbGVzCisgICAgICAtLXNyY2Rpcj1ESVIgICAgICAgIGZpbmQgdGhlIHNvdXJjZXMgaW4gRElSIFtjb25maWd1cmUgZGlyIG9yIFxgLi4nXQorCitfQUNFT0YKKworICBjYXQgPDxfQUNFT0YKK0luc3RhbGxhdGlvbiBkaXJlY3RvcmllczoKKyAgLS1wcmVmaXg9UFJFRklYICAgICAgICAgaW5zdGFsbCBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZmlsZXMgaW4gUFJFRklYCisJCQkgIFskYWNfZGVmYXVsdF9wcmVmaXhdCisgIC0tZXhlYy1wcmVmaXg9RVBSRUZJWCAgIGluc3RhbGwgYXJjaGl0ZWN0dXJlLWRlcGVuZGVudCBmaWxlcyBpbiBFUFJFRklYCisJCQkgIFtQUkVGSVhdCisKK0J5IGRlZmF1bHQsIFxgbWFrZSBpbnN0YWxsJyB3aWxsIGluc3RhbGwgYWxsIHRoZSBmaWxlcyBpbgorXGAkYWNfZGVmYXVsdF9wcmVmaXgvYmluJywgXGAkYWNfZGVmYXVsdF9wcmVmaXgvbGliJyBldGMuICBZb3UgY2FuIHNwZWNpZnkKK2FuIGluc3RhbGxhdGlvbiBwcmVmaXggb3RoZXIgdGhhbiBcYCRhY19kZWZhdWx0X3ByZWZpeCcgdXNpbmcgXGAtLXByZWZpeCcsCitmb3IgaW5zdGFuY2UgXGAtLXByZWZpeD1cJEhPTUUnLgorCitGb3IgYmV0dGVyIGNvbnRyb2wsIHVzZSB0aGUgb3B0aW9ucyBiZWxvdy4KKworRmluZSB0dW5pbmcgb2YgdGhlIGluc3RhbGxhdGlvbiBkaXJlY3RvcmllczoKKyAgLS1iaW5kaXI9RElSICAgICAgICAgICB1c2VyIGV4ZWN1dGFibGVzIFtFUFJFRklYL2Jpbl0KKyAgLS1zYmluZGlyPURJUiAgICAgICAgICBzeXN0ZW0gYWRtaW4gZXhlY3V0YWJsZXMgW0VQUkVGSVgvc2Jpbl0KKyAgLS1saWJleGVjZGlyPURJUiAgICAgICBwcm9ncmFtIGV4ZWN1dGFibGVzIFtFUFJFRklYL2xpYmV4ZWNdCisgIC0tZGF0YWRpcj1ESVIgICAgICAgICAgcmVhZC1vbmx5IGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBkYXRhIFtQUkVGSVgvc2hhcmVdCisgIC0tc3lzY29uZmRpcj1ESVIgICAgICAgcmVhZC1vbmx5IHNpbmdsZS1tYWNoaW5lIGRhdGEgW1BSRUZJWC9ldGNdCisgIC0tc2hhcmVkc3RhdGVkaXI9RElSICAgbW9kaWZpYWJsZSBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZGF0YSBbUFJFRklYL2NvbV0KKyAgLS1sb2NhbHN0YXRlZGlyPURJUiAgICBtb2RpZmlhYmxlIHNpbmdsZS1tYWNoaW5lIGRhdGEgW1BSRUZJWC92YXJdCisgIC0tbGliZGlyPURJUiAgICAgICAgICAgb2JqZWN0IGNvZGUgbGlicmFyaWVzIFtFUFJFRklYL2xpYl0KKyAgLS1pbmNsdWRlZGlyPURJUiAgICAgICBDIGhlYWRlciBmaWxlcyBbUFJFRklYL2luY2x1ZGVdCisgIC0tb2xkaW5jbHVkZWRpcj1ESVIgICAgQyBoZWFkZXIgZmlsZXMgZm9yIG5vbi1nY2MgWy91c3IvaW5jbHVkZV0KKyAgLS1pbmZvZGlyPURJUiAgICAgICAgICBpbmZvIGRvY3VtZW50YXRpb24gW1BSRUZJWC9pbmZvXQorICAtLW1hbmRpcj1ESVIgICAgICAgICAgIG1hbiBkb2N1bWVudGF0aW9uIFtQUkVGSVgvbWFuXQorX0FDRU9GCisKKyAgY2F0IDw8XF9BQ0VPRgorX0FDRU9GCitmaQorCitpZiB0ZXN0IC1uICIkYWNfaW5pdF9oZWxwIjsgdGhlbgorCisgIGNhdCA8PFxfQUNFT0YKKworT3B0aW9uYWwgUGFja2FnZXM6CisgIC0td2l0aC1QQUNLQUdFWz1BUkddICAgIHVzZSBQQUNLQUdFIFtBUkc9eWVzXQorICAtLXdpdGhvdXQtUEFDS0FHRSAgICAgICBkbyBub3QgdXNlIFBBQ0tBR0UgKHNhbWUgYXMgLS13aXRoLVBBQ0tBR0U9bm8pCisgIC0td2l0aC1wdHktbW9kZT1tb2RlICAgIGRlZmF1bHQgbW9kZSBmb3IgcHR5cworICAtLXdpdGgtcHR5LWdyb3VwPWdyb3VwICBkZWZhdWx0IGdyb3VwIGZvciBwdHlzCisKK1NvbWUgaW5mbHVlbnRpYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzOgorICBDQyAgICAgICAgICBDIGNvbXBpbGVyIGNvbW1hbmQKKyAgQ0ZMQUdTICAgICAgQyBjb21waWxlciBmbGFncworICBMREZMQUdTICAgICBsaW5rZXIgZmxhZ3MsIGUuZy4gLUw8bGliIGRpcj4gaWYgeW91IGhhdmUgbGlicmFyaWVzIGluIGEKKyAgICAgICAgICAgICAgbm9uc3RhbmRhcmQgZGlyZWN0b3J5IDxsaWIgZGlyPgorICBDUFBGTEFHUyAgICBDL0MrKyBwcmVwcm9jZXNzb3IgZmxhZ3MsIGUuZy4gLUk8aW5jbHVkZSBkaXI+IGlmIHlvdSBoYXZlCisgICAgICAgICAgICAgIGhlYWRlcnMgaW4gYSBub25zdGFuZGFyZCBkaXJlY3RvcnkgPGluY2x1ZGUgZGlyPgorICBDUFAgICAgICAgICBDIHByZXByb2Nlc3NvcgorCitVc2UgdGhlc2UgdmFyaWFibGVzIHRvIG92ZXJyaWRlIHRoZSBjaG9pY2VzIG1hZGUgYnkgYGNvbmZpZ3VyZScgb3IgdG8gaGVscAoraXQgdG8gZmluZCBsaWJyYXJpZXMgYW5kIHByb2dyYW1zIHdpdGggbm9uc3RhbmRhcmQgbmFtZXMvbG9jYXRpb25zLgorCitfQUNFT0YKK2ZpCisKK2lmIHRlc3QgIiRhY19pbml0X2hlbHAiID0gInJlY3Vyc2l2ZSI7IHRoZW4KKyAgIyBJZiB0aGVyZSBhcmUgc3ViZGlycywgcmVwb3J0IHRoZWlyIHNwZWNpZmljIC0taGVscC4KKyAgYWNfcG9wZGlyPWBwd2RgCisgIGZvciBhY19kaXIgaW4gOiAkYWNfc3ViZGlyc19hbGw7IGRvIHRlc3QgIngkYWNfZGlyIiA9IHg6ICYmIGNvbnRpbnVlCisgICAgdGVzdCAtZCAkYWNfZGlyIHx8IGNvbnRpbnVlCisgICAgYWNfYnVpbGRkaXI9LgorCitpZiB0ZXN0ICIkYWNfZGlyIiAhPSAuOyB0aGVuCisgIGFjX2Rpcl9zdWZmaXg9L2BlY2hvICIkYWNfZGlyIiB8IHNlZCAncyxeXC5bXFwvXSwsJ2AKKyAgIyBBICIuLi8iIGZvciBlYWNoIGRpcmVjdG9yeSBpbiAkYWNfZGlyX3N1ZmZpeC4KKyAgYWNfdG9wX2J1aWxkZGlyPWBlY2hvICIkYWNfZGlyX3N1ZmZpeCIgfCBzZWQgJ3MsL1teXFwvXSosLi4vLGcnYAorZWxzZQorICBhY19kaXJfc3VmZml4PSBhY190b3BfYnVpbGRkaXI9CitmaQorCitjYXNlICRzcmNkaXIgaW4KKyAgLikgICMgTm8gLS1zcmNkaXIgb3B0aW9uLiAgV2UgYXJlIGJ1aWxkaW5nIGluIHBsYWNlLgorICAgIGFjX3NyY2Rpcj0uCisgICAgaWYgdGVzdCAteiAiJGFjX3RvcF9idWlsZGRpciI7IHRoZW4KKyAgICAgICBhY190b3Bfc3JjZGlyPS4KKyAgICBlbHNlCisgICAgICAgYWNfdG9wX3NyY2Rpcj1gZWNobyAkYWNfdG9wX2J1aWxkZGlyIHwgc2VkICdzLC8kLCwnYAorICAgIGZpIDs7CisgIFtcXC9dKiB8ID86W1xcL10qICkgICMgQWJzb2x1dGUgcGF0aC4KKyAgICBhY19zcmNkaXI9JHNyY2RpciRhY19kaXJfc3VmZml4OworICAgIGFjX3RvcF9zcmNkaXI9JHNyY2RpciA7OworICAqKSAjIFJlbGF0aXZlIHBhdGguCisgICAgYWNfc3JjZGlyPSRhY190b3BfYnVpbGRkaXIkc3JjZGlyJGFjX2Rpcl9zdWZmaXgKKyAgICBhY190b3Bfc3JjZGlyPSRhY190b3BfYnVpbGRkaXIkc3JjZGlyIDs7Citlc2FjCisKKyMgRG8gbm90IHVzZSBgY2QgZm9vICYmIHB3ZGAgdG8gY29tcHV0ZSBhYnNvbHV0ZSBwYXRocywgYmVjYXVzZQorIyB0aGUgZGlyZWN0b3JpZXMgbWF5IG5vdCBleGlzdC4KK2Nhc2UgYHB3ZGAgaW4KKy4pIGFjX2Fic19idWlsZGRpcj0iJGFjX2RpciI7OworKikKKyAgY2FzZSAiJGFjX2RpciIgaW4KKyAgLikgYWNfYWJzX2J1aWxkZGlyPWBwd2RgOzsKKyAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfYnVpbGRkaXI9IiRhY19kaXIiOzsKKyAgKikgYWNfYWJzX2J1aWxkZGlyPWBwd2RgLyIkYWNfZGlyIjs7CisgIGVzYWM7OworZXNhYworY2FzZSAkYWNfYWJzX2J1aWxkZGlyIGluCisuKSBhY19hYnNfdG9wX2J1aWxkZGlyPSR7YWNfdG9wX2J1aWxkZGlyfS47OworKikKKyAgY2FzZSAke2FjX3RvcF9idWlsZGRpcn0uIGluCisgIC4pIGFjX2Fic190b3BfYnVpbGRkaXI9JGFjX2Fic19idWlsZGRpcjs7CisgIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX3RvcF9idWlsZGRpcj0ke2FjX3RvcF9idWlsZGRpcn0uOzsKKyAgKikgYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfYWJzX2J1aWxkZGlyLyR7YWNfdG9wX2J1aWxkZGlyfS47OworICBlc2FjOzsKK2VzYWMKK2Nhc2UgJGFjX2Fic19idWlsZGRpciBpbgorLikgYWNfYWJzX3NyY2Rpcj0kYWNfc3JjZGlyOzsKKyopCisgIGNhc2UgJGFjX3NyY2RpciBpbgorICAuKSBhY19hYnNfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXI7OworICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic19zcmNkaXI9JGFjX3NyY2Rpcjs7CisgICopIGFjX2Fic19zcmNkaXI9JGFjX2Fic19idWlsZGRpci8kYWNfc3JjZGlyOzsKKyAgZXNhYzs7Citlc2FjCitjYXNlICRhY19hYnNfYnVpbGRkaXIgaW4KKy4pIGFjX2Fic190b3Bfc3JjZGlyPSRhY190b3Bfc3JjZGlyOzsKKyopCisgIGNhc2UgJGFjX3RvcF9zcmNkaXIgaW4KKyAgLikgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX2Fic19idWlsZGRpcjs7CisgIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3RvcF9zcmNkaXI7OworICAqKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyLyRhY190b3Bfc3JjZGlyOzsKKyAgZXNhYzs7Citlc2FjCisKKyAgICBjZCAkYWNfZGlyCisgICAgIyBDaGVjayBmb3IgZ3Vlc3RlZCBjb25maWd1cmU7IG90aGVyd2lzZSBnZXQgQ3lnbnVzIHN0eWxlIGNvbmZpZ3VyZS4KKyAgICBpZiB0ZXN0IC1mICRhY19zcmNkaXIvY29uZmlndXJlLmdudTsgdGhlbgorICAgICAgZWNobworICAgICAgJFNIRUxMICRhY19zcmNkaXIvY29uZmlndXJlLmdudSAgLS1oZWxwPXJlY3Vyc2l2ZQorICAgIGVsaWYgdGVzdCAtZiAkYWNfc3JjZGlyL2NvbmZpZ3VyZTsgdGhlbgorICAgICAgZWNobworICAgICAgJFNIRUxMICRhY19zcmNkaXIvY29uZmlndXJlICAtLWhlbHA9cmVjdXJzaXZlCisgICAgZWxpZiB0ZXN0IC1mICRhY19zcmNkaXIvY29uZmlndXJlLmFjIHx8CisJICAgdGVzdCAtZiAkYWNfc3JjZGlyL2NvbmZpZ3VyZS5pbjsgdGhlbgorICAgICAgZWNobworICAgICAgJGFjX2NvbmZpZ3VyZSAtLWhlbHAKKyAgICBlbHNlCisgICAgICBlY2hvICIkYXNfbWU6IFdBUk5JTkc6IG5vIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gaXMgaW4gJGFjX2RpciIgPiYyCisgICAgZmkKKyAgICBjZCAkYWNfcG9wZGlyCisgIGRvbmUKK2ZpCisKK3Rlc3QgLW4gIiRhY19pbml0X2hlbHAiICYmIGV4aXQgMAoraWYgJGFjX2luaXRfdmVyc2lvbjsgdGhlbgorICBjYXQgPDxcX0FDRU9GCisKK0NvcHlyaWdodCAoQykgMjAwMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KK1RoaXMgY29uZmlndXJlIHNjcmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCitnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuCitfQUNFT0YKKyAgZXhpdCAwCitmaQorZXhlYyA1PmNvbmZpZy5sb2cKK2NhdCA+JjUgPDxfQUNFT0YKK1RoaXMgZmlsZSBjb250YWlucyBhbnkgbWVzc2FnZXMgcHJvZHVjZWQgYnkgY29tcGlsZXJzIHdoaWxlCitydW5uaW5nIGNvbmZpZ3VyZSwgdG8gYWlkIGRlYnVnZ2luZyBpZiBjb25maWd1cmUgbWFrZXMgYSBtaXN0YWtlLgorCitJdCB3YXMgY3JlYXRlZCBieSAkYXNfbWUsIHdoaWNoIHdhcworZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU5LiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCisKKyAgJCAkMCAkQAorCitfQUNFT0YKK3sKK2NhdCA8PF9BU1VOQU1FCisjIyAtLS0tLS0tLS0gIyMKKyMjIFBsYXRmb3JtLiAjIworIyMgLS0tLS0tLS0tICMjCisKK2hvc3RuYW1lID0gYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgCit1bmFtZSAtbSA9IGAodW5hbWUgLW0pIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKK3VuYW1lIC1yID0gYCh1bmFtZSAtcikgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAordW5hbWUgLXMgPSBgKHVuYW1lIC1zKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCit1bmFtZSAtdiA9IGAodW5hbWUgLXYpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKKworL3Vzci9iaW4vdW5hbWUgLXAgPSBgKC91c3IvYmluL3VuYW1lIC1wKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCisvYmluL3VuYW1lIC1YICAgICA9IGAoL2Jpbi91bmFtZSAtWCkgMj4vZGV2L251bGwgICAgIHx8IGVjaG8gdW5rbm93bmAKKworL2Jpbi9hcmNoICAgICAgICAgICAgICA9IGAoL2Jpbi9hcmNoKSAyPi9kZXYvbnVsbCAgICAgICAgICAgICAgfHwgZWNobyB1bmtub3duYAorL3Vzci9iaW4vYXJjaCAtayAgICAgICA9IGAoL3Vzci9iaW4vYXJjaCAtaykgMj4vZGV2L251bGwgICAgICAgfHwgZWNobyB1bmtub3duYAorL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyA9IGAoL3Vzci9jb252ZXgvZ2V0c3lzaW5mbykgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAoraG9zdGluZm8gICAgICAgICAgICAgICA9IGAoaG9zdGluZm8pIDI+L2Rldi9udWxsICAgICAgICAgICAgICAgfHwgZWNobyB1bmtub3duYAorL2Jpbi9tYWNoaW5lICAgICAgICAgICA9IGAoL2Jpbi9tYWNoaW5lKSAyPi9kZXYvbnVsbCAgICAgICAgICAgfHwgZWNobyB1bmtub3duYAorL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IGAoL3Vzci9iaW4vb3NsZXZlbCkgMj4vZGV2L251bGwgICAgICAgfHwgZWNobyB1bmtub3duYAorL2Jpbi91bml2ZXJzZSAgICAgICAgICA9IGAoL2Jpbi91bml2ZXJzZSkgMj4vZGV2L251bGwgICAgICAgICAgfHwgZWNobyB1bmtub3duYAorCitfQVNVTkFNRQorCithc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCitmb3IgYXNfZGlyIGluICRQQVRICitkbworICBJRlM9JGFzX3NhdmVfSUZTCisgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisgIGVjaG8gIlBBVEg6ICRhc19kaXIiCitkb25lCisKK30gPiY1CisKK2NhdCA+JjUgPDxfQUNFT0YKKworCisjIyAtLS0tLS0tLS0tLSAjIworIyMgQ29yZSB0ZXN0cy4gIyMKKyMjIC0tLS0tLS0tLS0tICMjCisKK19BQ0VPRgorCisKKyMgS2VlcCBhIHRyYWNlIG9mIHRoZSBjb21tYW5kIGxpbmUuCisjIFN0cmlwIG91dCAtLW5vLWNyZWF0ZSBhbmQgLS1uby1yZWN1cnNpb24gc28gdGhleSBkbyBub3QgcGlsZSB1cC4KKyMgU3RyaXAgb3V0IC0tc2lsZW50IGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCB0byByZWNvcmQgaXQgZm9yIGZ1dHVyZSBydW5zLgorIyBBbHNvIHF1b3RlIGFueSBhcmdzIGNvbnRhaW5pbmcgc2hlbGwgbWV0YS1jaGFyYWN0ZXJzLgorIyBNYWtlIHR3byBwYXNzZXMgdG8gYWxsb3cgZm9yIHByb3BlciBkdXBsaWNhdGUtYXJndW1lbnQgc3VwcHJlc3Npb24uCithY19jb25maWd1cmVfYXJncz0KK2FjX2NvbmZpZ3VyZV9hcmdzMD0KK2FjX2NvbmZpZ3VyZV9hcmdzMT0KK2FjX3NlcD0KK2FjX211c3Rfa2VlcF9uZXh0PWZhbHNlCitmb3IgYWNfcGFzcyBpbiAxIDIKK2RvCisgIGZvciBhY19hcmcKKyAgZG8KKyAgICBjYXNlICRhY19hcmcgaW4KKyAgICAtbm8tY3JlYXRlIHwgLS1uby1jKiB8IC1uIHwgLW5vLXJlY3Vyc2lvbiB8IC0tbm8tciopIGNvbnRpbnVlIDs7CisgICAgLXEgfCAtcXVpZXQgfCAtLXF1aWV0IHwgLS1xdWllIHwgLS1xdWkgfCAtLXF1IHwgLS1xIFwKKyAgICB8IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCkKKyAgICAgIGNvbnRpbnVlIDs7CisgICAgKiIgIip8KiIJIip8KltcW1xdXH5cI1wkXF5cJlwqXChcKVx7XH1cXFx8XDtcPFw+XD9cIlwnXSopCisgICAgICBhY19hcmc9YGVjaG8gIiRhY19hcmciIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgIDs7CisgICAgZXNhYworICAgIGNhc2UgJGFjX3Bhc3MgaW4KKyAgICAxKSBhY19jb25maWd1cmVfYXJnczA9IiRhY19jb25maWd1cmVfYXJnczAgJyRhY19hcmcnIiA7OworICAgIDIpCisgICAgICBhY19jb25maWd1cmVfYXJnczE9IiRhY19jb25maWd1cmVfYXJnczEgJyRhY19hcmcnIgorICAgICAgaWYgdGVzdCAkYWNfbXVzdF9rZWVwX25leHQgPSB0cnVlOyB0aGVuCisJYWNfbXVzdF9rZWVwX25leHQ9ZmFsc2UgIyBHb3QgdmFsdWUsIGJhY2sgdG8gbm9ybWFsLgorICAgICAgZWxzZQorCWNhc2UgJGFjX2FyZyBpbgorCSAgKj0qIHwgLS1jb25maWctY2FjaGUgfCAtQyB8IC1kaXNhYmxlLSogfCAtLWRpc2FibGUtKiBcCisJICB8IC1lbmFibGUtKiB8IC0tZW5hYmxlLSogfCAtZ2FzIHwgLS1nKiB8IC1uZnAgfCAtLW5mKiBcCisJICB8IC1xIHwgLXF1aWV0IHwgLS1xKiB8IC1zaWxlbnQgfCAtLXNpbCogfCAtdiB8IC12ZXJiKiBcCisJICB8IC13aXRoLSogfCAtLXdpdGgtKiB8IC13aXRob3V0LSogfCAtLXdpdGhvdXQtKiB8IC0teCkKKwkgICAgY2FzZSAiJGFjX2NvbmZpZ3VyZV9hcmdzMCAiIGluCisJICAgICAgIiRhY19jb25maWd1cmVfYXJnczEiKiIgJyRhY19hcmcnICIqICkgY29udGludWUgOzsKKwkgICAgZXNhYworCSAgICA7OworCSAgLSogKSBhY19tdXN0X2tlZXBfbmV4dD10cnVlIDs7CisJZXNhYworICAgICAgZmkKKyAgICAgIGFjX2NvbmZpZ3VyZV9hcmdzPSIkYWNfY29uZmlndXJlX2FyZ3MkYWNfc2VwJyRhY19hcmcnIgorICAgICAgIyBHZXQgcmlkIG9mIHRoZSBsZWFkaW5nIHNwYWNlLgorICAgICAgYWNfc2VwPSIgIgorICAgICAgOzsKKyAgICBlc2FjCisgIGRvbmUKK2RvbmUKKyRhc191bnNldCBhY19jb25maWd1cmVfYXJnczAgfHwgdGVzdCAiJHthY19jb25maWd1cmVfYXJnczArc2V0fSIgIT0gc2V0IHx8IHsgYWNfY29uZmlndXJlX2FyZ3MwPTsgZXhwb3J0IGFjX2NvbmZpZ3VyZV9hcmdzMDsgfQorJGFzX3Vuc2V0IGFjX2NvbmZpZ3VyZV9hcmdzMSB8fCB0ZXN0ICIke2FjX2NvbmZpZ3VyZV9hcmdzMStzZXR9IiAhPSBzZXQgfHwgeyBhY19jb25maWd1cmVfYXJnczE9OyBleHBvcnQgYWNfY29uZmlndXJlX2FyZ3MxOyB9CisKKyMgV2hlbiBpbnRlcnJ1cHRlZCBvciBleGl0J2QsIGNsZWFudXAgdGVtcG9yYXJ5IGZpbGVzLCBhbmQgY29tcGxldGUKKyMgY29uZmlnLmxvZy4gIFdlIHJlbW92ZSBjb21tZW50cyBiZWNhdXNlIGFueXdheSB0aGUgcXVvdGVzIGluIHRoZXJlCisjIHdvdWxkIGNhdXNlIHByb2JsZW1zIG9yIGxvb2sgdWdseS4KKyMgV0FSTklORzogQmUgc3VyZSBub3QgdG8gdXNlIHNpbmdsZSBxdW90ZXMgaW4gdGhlcmUsIGFzIHNvbWUgc2hlbGxzLAorIyBzdWNoIGFzIG91ciBEVSA1LjAgZnJpZW5kLCB3aWxsIHRoZW4gYGNsb3NlJyB0aGUgdHJhcC4KK3RyYXAgJ2V4aXRfc3RhdHVzPSQ/CisgICMgU2F2ZSBpbnRvIGNvbmZpZy5sb2cgc29tZSBpbmZvcm1hdGlvbiB0aGF0IG1pZ2h0IGhlbHAgaW4gZGVidWdnaW5nLgorICB7CisgICAgZWNobworCisgICAgY2F0IDw8XF9BU0JPWAorIyMgLS0tLS0tLS0tLS0tLS0tLSAjIworIyMgQ2FjaGUgdmFyaWFibGVzLiAjIworIyMgLS0tLS0tLS0tLS0tLS0tLSAjIworX0FTQk9YCisgICAgZWNobworICAgICMgVGhlIGZvbGxvd2luZyB3YXkgb2Ygd3JpdGluZyB0aGUgY2FjaGUgbWlzaGFuZGxlcyBuZXdsaW5lcyBpbiB2YWx1ZXMsCit7CisgIChzZXQpIDI+JjEgfAorICAgIGNhc2UgYChhY19zcGFjZT0nIiciJyAnIiciJzsgc2V0IHwgZ3JlcCBhY19zcGFjZSkgMj4mMWAgaW4KKyAgICAqYWNfc3BhY2U9XCAqKQorICAgICAgc2VkIC1uIFwKKwkicy8nIiciJy8nIiciJ1xcXFwnIiciJyciJyInL2c7CisJICBzL15cXChbXyRhc19jcl9hbG51bV0qX2N2X1tfJGFzX2NyX2FsbnVtXSpcXCk9XFwoLipcXCkvXFwxPSciJyInXFwyJyInIicvcCIKKyAgICAgIDs7CisgICAgKikKKyAgICAgIHNlZCAtbiBcCisJInMvXlxcKFtfJGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxudW1dKlxcKT1cXCguKlxcKS9cXDE9XFwyL3AiCisgICAgICA7OworICAgIGVzYWM7Cit9CisgICAgZWNobworCisgICAgY2F0IDw8XF9BU0JPWAorIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKKyMjIE91dHB1dCB2YXJpYWJsZXMuICMjCisjIyAtLS0tLS0tLS0tLS0tLS0tLSAjIworX0FTQk9YCisgICAgZWNobworICAgIGZvciBhY192YXIgaW4gJGFjX3N1YnN0X3ZhcnMKKyAgICBkbworICAgICAgZXZhbCBhY192YWw9JGBlY2hvICRhY192YXJgCisgICAgICBlY2hvICIkYWNfdmFyPSciJyInJGFjX3ZhbCciJyInIgorICAgIGRvbmUgfCBzb3J0CisgICAgZWNobworCisgICAgaWYgdGVzdCAtbiAiJGFjX3N1YnN0X2ZpbGVzIjsgdGhlbgorICAgICAgY2F0IDw8XF9BU0JPWAorIyMgLS0tLS0tLS0tLS0tLSAjIworIyMgT3V0cHV0IGZpbGVzLiAjIworIyMgLS0tLS0tLS0tLS0tLSAjIworX0FTQk9YCisgICAgICBlY2hvCisgICAgICBmb3IgYWNfdmFyIGluICRhY19zdWJzdF9maWxlcworICAgICAgZG8KKwlldmFsIGFjX3ZhbD0kYGVjaG8gJGFjX3ZhcmAKKwllY2hvICIkYWNfdmFyPSciJyInJGFjX3ZhbCciJyInIgorICAgICAgZG9uZSB8IHNvcnQKKyAgICAgIGVjaG8KKyAgICBmaQorCisgICAgaWYgdGVzdCAtcyBjb25mZGVmcy5oOyB0aGVuCisgICAgICBjYXQgPDxcX0FTQk9YCisjIyAtLS0tLS0tLS0tLSAjIworIyMgY29uZmRlZnMuaC4gIyMKKyMjIC0tLS0tLS0tLS0tICMjCitfQVNCT1gKKyAgICAgIGVjaG8KKyAgICAgIHNlZCAiL14kL2QiIGNvbmZkZWZzLmggfCBzb3J0CisgICAgICBlY2hvCisgICAgZmkKKyAgICB0ZXN0ICIkYWNfc2lnbmFsIiAhPSAwICYmCisgICAgICBlY2hvICIkYXNfbWU6IGNhdWdodCBzaWduYWwgJGFjX3NpZ25hbCIKKyAgICBlY2hvICIkYXNfbWU6IGV4aXQgJGV4aXRfc3RhdHVzIgorICB9ID4mNQorICBybSAtZiBjb3JlICouY29yZSAmJgorICBybSAtcmYgY29uZnRlc3QqIGNvbmZkZWZzKiBjb25mJCQqICRhY19jbGVhbl9maWxlcyAmJgorICAgIGV4aXQgJGV4aXRfc3RhdHVzCisgICAgICcgMAorZm9yIGFjX3NpZ25hbCBpbiAxIDIgMTMgMTU7IGRvCisgIHRyYXAgJ2FjX3NpZ25hbD0nJGFjX3NpZ25hbCc7IHsgKGV4aXQgMSk7IGV4aXQgMTsgfScgJGFjX3NpZ25hbAorZG9uZQorYWNfc2lnbmFsPTAKKworIyBjb25mZGVmcy5oIGF2b2lkcyBPUyBjb21tYW5kIGxpbmUgbGVuZ3RoIGxpbWl0cyB0aGF0IERFRlMgY2FuIGV4Y2VlZC4KK3JtIC1yZiBjb25mdGVzdCogY29uZmRlZnMuaAorIyBBSVggY3BwIGxvc2VzIG9uIGFuIGVtcHR5IGZpbGUsIHNvIG1ha2Ugc3VyZSBpdCBjb250YWlucyBhdCBsZWFzdCBhIG5ld2xpbmUuCitlY2hvID5jb25mZGVmcy5oCisKKyMgUHJlZGVmaW5lZCBwcmVwcm9jZXNzb3IgdmFyaWFibGVzLgorCitjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiJFBBQ0tBR0VfTkFNRSIKK19BQ0VPRgorCisKK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICIkUEFDS0FHRV9UQVJOQU1FIgorX0FDRU9GCisKKworY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIiRQQUNLQUdFX1ZFUlNJT04iCitfQUNFT0YKKworCitjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICIkUEFDS0FHRV9TVFJJTkciCitfQUNFT0YKKworCitjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICIkUEFDS0FHRV9CVUdSRVBPUlQiCitfQUNFT0YKKworCisjIExldCB0aGUgc2l0ZSBmaWxlIHNlbGVjdCBhbiBhbHRlcm5hdGUgY2FjaGUgZmlsZSBpZiBpdCB3YW50cyB0by4KKyMgUHJlZmVyIGV4cGxpY2l0bHkgc2VsZWN0ZWQgZmlsZSB0byBhdXRvbWF0aWNhbGx5IHNlbGVjdGVkIG9uZXMuCitpZiB0ZXN0IC16ICIkQ09ORklHX1NJVEUiOyB0aGVuCisgIGlmIHRlc3QgIngkcHJlZml4IiAhPSB4Tk9ORTsgdGhlbgorICAgIENPTkZJR19TSVRFPSIkcHJlZml4L3NoYXJlL2NvbmZpZy5zaXRlICRwcmVmaXgvZXRjL2NvbmZpZy5zaXRlIgorICBlbHNlCisgICAgQ09ORklHX1NJVEU9IiRhY19kZWZhdWx0X3ByZWZpeC9zaGFyZS9jb25maWcuc2l0ZSAkYWNfZGVmYXVsdF9wcmVmaXgvZXRjL2NvbmZpZy5zaXRlIgorICBmaQorZmkKK2ZvciBhY19zaXRlX2ZpbGUgaW4gJENPTkZJR19TSVRFOyBkbworICBpZiB0ZXN0IC1yICIkYWNfc2l0ZV9maWxlIjsgdGhlbgorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGxvYWRpbmcgc2l0ZSBzY3JpcHQgJGFjX3NpdGVfZmlsZSIgPiY1CitlY2hvICIkYXNfbWU6IGxvYWRpbmcgc2l0ZSBzY3JpcHQgJGFjX3NpdGVfZmlsZSIgPiY2O30KKyAgICBzZWQgJ3MvXi98IC8nICIkYWNfc2l0ZV9maWxlIiA+JjUKKyAgICAuICIkYWNfc2l0ZV9maWxlIgorICBmaQorZG9uZQorCitpZiB0ZXN0IC1yICIkY2FjaGVfZmlsZSI7IHRoZW4KKyAgIyBTb21lIHZlcnNpb25zIG9mIGJhc2ggd2lsbCBmYWlsIHRvIHNvdXJjZSAvZGV2L251bGwgKHNwZWNpYWwKKyAgIyBmaWxlcyBhY3R1YWxseSksIHNvIHdlIGF2b2lkIGRvaW5nIHRoYXQuCisgIGlmIHRlc3QgLWYgIiRjYWNoZV9maWxlIjsgdGhlbgorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGxvYWRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNQorZWNobyAiJGFzX21lOiBsb2FkaW5nIGNhY2hlICRjYWNoZV9maWxlIiA+JjY7fQorICAgIGNhc2UgJGNhY2hlX2ZpbGUgaW4KKyAgICAgIFtcXC9dKiB8ID86W1xcL10qICkgLiAkY2FjaGVfZmlsZTs7CisgICAgICAqKSAgICAgICAgICAgICAgICAgICAgICAuIC4vJGNhY2hlX2ZpbGU7OworICAgIGVzYWMKKyAgZmkKK2Vsc2UKKyAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY3JlYXRpbmcgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNQorZWNobyAiJGFzX21lOiBjcmVhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30KKyAgPiRjYWNoZV9maWxlCitmaQorCisjIENoZWNrIHRoYXQgdGhlIHByZWNpb3VzIHZhcmlhYmxlcyBzYXZlZCBpbiB0aGUgY2FjaGUgaGF2ZSBrZXB0IHRoZSBzYW1lCisjIHZhbHVlLgorYWNfY2FjaGVfY29ycnVwdGVkPWZhbHNlCitmb3IgYWNfdmFyIGluIGAoc2V0KSAyPiYxIHwKKwkgICAgICAgc2VkIC1uICdzL15hY19lbnZfXChbYS16QS1aXzAtOV0qXClfc2V0PS4qL1wxL3AnYDsgZG8KKyAgZXZhbCBhY19vbGRfc2V0PVwkYWNfY3ZfZW52XyR7YWNfdmFyfV9zZXQKKyAgZXZhbCBhY19uZXdfc2V0PVwkYWNfZW52XyR7YWNfdmFyfV9zZXQKKyAgZXZhbCBhY19vbGRfdmFsPSJcJGFjX2N2X2Vudl8ke2FjX3Zhcn1fdmFsdWUiCisgIGV2YWwgYWNfbmV3X3ZhbD0iXCRhY19lbnZfJHthY192YXJ9X3ZhbHVlIgorICBjYXNlICRhY19vbGRfc2V0LCRhY19uZXdfc2V0IGluCisgICAgc2V0LCkKKyAgICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBcYCRhY192YXInIHdhcyBzZXQgdG8gXGAkYWNfb2xkX3ZhbCcgaW4gdGhlIHByZXZpb3VzIHJ1biIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBcYCRhY192YXInIHdhcyBzZXQgdG8gXGAkYWNfb2xkX3ZhbCcgaW4gdGhlIHByZXZpb3VzIHJ1biIgPiYyO30KKyAgICAgIGFjX2NhY2hlX2NvcnJ1cHRlZD06IDs7CisgICAgLHNldCkKKyAgICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBcYCRhY192YXInIHdhcyBub3Qgc2V0IGluIHRoZSBwcmV2aW91cyBydW4iID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgbm90IHNldCBpbiB0aGUgcHJldmlvdXMgcnVuIiA+JjI7fQorICAgICAgYWNfY2FjaGVfY29ycnVwdGVkPTogOzsKKyAgICAsKTs7CisgICAgKikKKyAgICAgIGlmIHRlc3QgIngkYWNfb2xkX3ZhbCIgIT0gIngkYWNfbmV3X3ZhbCI7IHRoZW4KKwl7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogXGAkYWNfdmFyJyBoYXMgY2hhbmdlZCBzaW5jZSB0aGUgcHJldmlvdXMgcnVuOiIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBcYCRhY192YXInIGhhcyBjaGFuZ2VkIHNpbmNlIHRoZSBwcmV2aW91cyBydW46IiA+JjI7fQorCXsgZWNobyAiJGFzX21lOiRMSU5FTk86ICAgZm9ybWVyIHZhbHVlOiAgJGFjX29sZF92YWwiID4mNQorZWNobyAiJGFzX21lOiAgIGZvcm1lciB2YWx1ZTogICRhY19vbGRfdmFsIiA+JjI7fQorCXsgZWNobyAiJGFzX21lOiRMSU5FTk86ICAgY3VycmVudCB2YWx1ZTogJGFjX25ld192YWwiID4mNQorZWNobyAiJGFzX21lOiAgIGN1cnJlbnQgdmFsdWU6ICRhY19uZXdfdmFsIiA+JjI7fQorCWFjX2NhY2hlX2NvcnJ1cHRlZD06CisgICAgICBmaTs7CisgIGVzYWMKKyAgIyBQYXNzIHByZWNpb3VzIHZhcmlhYmxlcyB0byBjb25maWcuc3RhdHVzLgorICBpZiB0ZXN0ICIkYWNfbmV3X3NldCIgPSBzZXQ7IHRoZW4KKyAgICBjYXNlICRhY19uZXdfdmFsIGluCisgICAgKiIgIip8KiIJIip8KltcW1xdXH5cI1wkXF5cJlwqXChcKVx7XH1cXFx8XDtcPFw+XD9cIlwnXSopCisgICAgICBhY19hcmc9JGFjX3Zhcj1gZWNobyAiJGFjX25ld192YWwiIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgIDs7CisgICAgKikgYWNfYXJnPSRhY192YXI9JGFjX25ld192YWwgOzsKKyAgICBlc2FjCisgICAgY2FzZSAiICRhY19jb25maWd1cmVfYXJncyAiIGluCisgICAgICAqIiAnJGFjX2FyZycgIiopIDs7ICMgQXZvaWQgZHVwcy4gIFVzZSBvZiBxdW90ZXMgZW5zdXJlcyBhY2N1cmFjeS4KKyAgICAgICopIGFjX2NvbmZpZ3VyZV9hcmdzPSIkYWNfY29uZmlndXJlX2FyZ3MgJyRhY19hcmcnIiA7OworICAgIGVzYWMKKyAgZmkKK2RvbmUKK2lmICRhY19jYWNoZV9jb3JydXB0ZWQ7IHRoZW4KKyAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNoYW5nZXMgaW4gdGhlIGVudmlyb25tZW50IGNhbiBjb21wcm9taXNlIHRoZSBidWlsZCIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBjaGFuZ2VzIGluIHRoZSBlbnZpcm9ubWVudCBjYW4gY29tcHJvbWlzZSB0aGUgYnVpbGQiID4mMjt9CisgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IHJ1biBcYG1ha2UgZGlzdGNsZWFuJyBhbmQvb3IgXGBybSAkY2FjaGVfZmlsZScgYW5kIHN0YXJ0IG92ZXIiID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogcnVuIFxgbWFrZSBkaXN0Y2xlYW4nIGFuZC9vciBcYHJtICRjYWNoZV9maWxlJyBhbmQgc3RhcnQgb3ZlciIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorZmkKKworYWNfZXh0PWMKK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCithY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCithY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorCisKKworCisKKworCisKKworCisKKworCisKKworCisKKworCisgICAgICAgICAgYWNfY29uZmlnX2hlYWRlcnM9IiRhY19jb25maWdfaGVhZGVycyBjb25maWcuaCIKKworVkVSU0lPTj0wLjQKKworCisKK29sZF9DRkxBR1M9IiRDRkxBR1MiCithY19leHQ9YworYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCithY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CitpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1nY2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9Z2NjOyBhY193b3JkPSQyCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KKyAgYWNfY3ZfcHJvZ19DQz0iJENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KK2Vsc2UKK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4gJFBBVEgKK2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisgIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB0aGVuCisgICAgYWNfY3ZfcHJvZ19DQz0iJHthY190b29sX3ByZWZpeH1nY2MiCisgICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorICAgIGJyZWFrIDIKKyAgZmkKK2RvbmUKK2RvbmUKKworZmkKK2ZpCitDQz0kYWNfY3ZfcHJvZ19DQworaWYgdGVzdCAtbiAiJENDIjsgdGhlbgorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQ0MiID4mNQorZWNobyAiJHtFQ0hPX1R9JENDIiA+JjYKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorZWNobyAiJHtFQ0hPX1R9bm8iID4mNgorZmkKKworZmkKK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX0NDIjsgdGhlbgorICBhY19jdF9DQz0kQ0MKKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJnY2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorc2V0IGR1bW15IGdjYzsgYWNfd29yZD0kMgorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9DQytzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCisgIGFjX2N2X3Byb2dfYWNfY3RfQ0M9IiRhY19jdF9DQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCitlbHNlCithc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCitmb3IgYXNfZGlyIGluICRQQVRICitkbworICBJRlM9JGFzX3NhdmVfSUZTCisgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgorICAgIGFjX2N2X3Byb2dfYWNfY3RfQ0M9ImdjYyIKKyAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisgICAgYnJlYWsgMgorICBmaQorZG9uZQorZG9uZQorCitmaQorZmkKK2FjX2N0X0NDPSRhY19jdl9wcm9nX2FjX2N0X0NDCitpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdF9DQyIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3RfQ0MiID4mNgorZWxzZQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CitlY2hvICIke0VDSE9fVH1ubyIgPiY2CitmaQorCisgIENDPSRhY19jdF9DQworZWxzZQorICBDQz0iJGFjX2N2X3Byb2dfQ0MiCitmaQorCitpZiB0ZXN0IC16ICIkQ0MiOyB0aGVuCisgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fWNjIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fWNjOyBhY193b3JkPSQyCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KKyAgYWNfY3ZfcHJvZ19DQz0iJENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KK2Vsc2UKK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4gJFBBVEgKK2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisgIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB0aGVuCisgICAgYWNfY3ZfcHJvZ19DQz0iJHthY190b29sX3ByZWZpeH1jYyIKKyAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisgICAgYnJlYWsgMgorICBmaQorZG9uZQorZG9uZQorCitmaQorZmkKK0NDPSRhY19jdl9wcm9nX0NDCitpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDQyIgPiY1CitlY2hvICIke0VDSE9fVH0kQ0MiID4mNgorZWxzZQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CitlY2hvICIke0VDSE9fVH1ubyIgPiY2CitmaQorCitmaQoraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfQ0MiOyB0aGVuCisgIGFjX2N0X0NDPSRDQworICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImNjIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KK3NldCBkdW1teSBjYzsgYWNfd29yZD0kMgorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9DQytzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCisgIGFjX2N2X3Byb2dfYWNfY3RfQ0M9IiRhY19jdF9DQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCitlbHNlCithc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCitmb3IgYXNfZGlyIGluICRQQVRICitkbworICBJRlM9JGFzX3NhdmVfSUZTCisgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgorICAgIGFjX2N2X3Byb2dfYWNfY3RfQ0M9ImNjIgorICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKyAgICBicmVhayAyCisgIGZpCitkb25lCitkb25lCisKK2ZpCitmaQorYWNfY3RfQ0M9JGFjX2N2X3Byb2dfYWNfY3RfQ0MKK2lmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRoZW4KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N0X0NDIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdF9DQyIgPiY2CitlbHNlCisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKK2VjaG8gIiR7RUNIT19UfW5vIiA+JjYKK2ZpCisKKyAgQ0M9JGFjX2N0X0NDCitlbHNlCisgIENDPSIkYWNfY3ZfcHJvZ19DQyIKK2ZpCisKK2ZpCitpZiB0ZXN0IC16ICIkQ0MiOyB0aGVuCisgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiY2MiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorc2V0IGR1bW15IGNjOyBhY193b3JkPSQyCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9wcm9nX0NDK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KKyAgYWNfY3ZfcHJvZ19DQz0iJENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KK2Vsc2UKKyAgYWNfcHJvZ19yZWplY3RlZD1ubworYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorZm9yIGFzX2RpciBpbiAkUEFUSAorZG8KKyAgSUZTPSRhc19zYXZlX0lGUworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKyAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KKyAgICBpZiB0ZXN0ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA9ICIvdXNyL3VjYi9jYyI7IHRoZW4KKyAgICAgICBhY19wcm9nX3JlamVjdGVkPXllcworICAgICAgIGNvbnRpbnVlCisgICAgIGZpCisgICAgYWNfY3ZfcHJvZ19DQz0iY2MiCisgICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorICAgIGJyZWFrIDIKKyAgZmkKK2RvbmUKK2RvbmUKKworaWYgdGVzdCAkYWNfcHJvZ19yZWplY3RlZCA9IHllczsgdGhlbgorICAjIFdlIGZvdW5kIGEgYm9nb24gaW4gdGhlIHBhdGgsIHNvIG1ha2Ugc3VyZSB3ZSBuZXZlciB1c2UgaXQuCisgIHNldCBkdW1teSAkYWNfY3ZfcHJvZ19DQworICBzaGlmdAorICBpZiB0ZXN0ICQjICE9IDA7IHRoZW4KKyAgICAjIFdlIGNob3NlIGEgZGlmZmVyZW50IGNvbXBpbGVyIGZyb20gdGhlIGJvZ3VzIG9uZS4KKyAgICAjIEhvd2V2ZXIsIGl0IGhhcyB0aGUgc2FtZSBiYXNlbmFtZSwgc28gdGhlIGJvZ29uIHdpbGwgYmUgY2hvc2VuCisgICAgIyBmaXJzdCBpZiB3ZSBzZXQgQ0MgdG8ganVzdCB0aGUgYmFzZW5hbWU7IHVzZSB0aGUgZnVsbCBmaWxlIG5hbWUuCisgICAgc2hpZnQKKyAgICBhY19jdl9wcm9nX0NDPSIkYXNfZGlyLyRhY193b3JkJHsxKycgJ30kQCIKKyAgZmkKK2ZpCitmaQorZmkKK0NDPSRhY19jdl9wcm9nX0NDCitpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDQyIgPiY1CitlY2hvICIke0VDSE9fVH0kQ0MiID4mNgorZWxzZQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CitlY2hvICIke0VDSE9fVH1ubyIgPiY2CitmaQorCitmaQoraWYgdGVzdCAteiAiJENDIjsgdGhlbgorICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisgIGZvciBhY19wcm9nIGluIGNsCisgIGRvCisgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCitzZXQgZHVtbXkgJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2c7IGFjX3dvcmQ9JDIKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgorICBhY19jdl9wcm9nX0NDPSIkQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorZWxzZQorYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorZm9yIGFzX2RpciBpbiAkUEFUSAorZG8KKyAgSUZTPSRhc19zYXZlX0lGUworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKyAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KKyAgICBhY19jdl9wcm9nX0NDPSIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIKKyAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisgICAgYnJlYWsgMgorICBmaQorZG9uZQorZG9uZQorCitmaQorZmkKK0NDPSRhY19jdl9wcm9nX0NDCitpZiB0ZXN0IC1uICIkQ0MiOyB0aGVuCisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDQyIgPiY1CitlY2hvICIke0VDSE9fVH0kQ0MiID4mNgorZWxzZQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CitlY2hvICIke0VDSE9fVH1ubyIgPiY2CitmaQorCisgICAgdGVzdCAtbiAiJENDIiAmJiBicmVhaworICBkb25lCitmaQoraWYgdGVzdCAteiAiJENDIjsgdGhlbgorICBhY19jdF9DQz0kQ0MKKyAgZm9yIGFjX3Byb2cgaW4gY2wKK2RvCisgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorc2V0IGR1bW15ICRhY19wcm9nOyBhY193b3JkPSQyCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X0NDK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGlmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRoZW4KKyAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iJGFjX2N0X0NDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KK2Vsc2UKK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4gJFBBVEgKK2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisgIGlmICRhc19leGVjdXRhYmxlX3AgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB0aGVuCisgICAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iJGFjX3Byb2ciCisgICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorICAgIGJyZWFrIDIKKyAgZmkKK2RvbmUKK2RvbmUKKworZmkKK2ZpCithY19jdF9DQz0kYWNfY3ZfcHJvZ19hY19jdF9DQworaWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3RfQ0MiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N0X0NDIiA+JjYKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQorZWNobyAiJHtFQ0hPX1R9bm8iID4mNgorZmkKKworICB0ZXN0IC1uICIkYWNfY3RfQ0MiICYmIGJyZWFrCitkb25lCisKKyAgQ0M9JGFjX2N0X0NDCitmaQorCitmaQorCisKK3Rlc3QgLXogIiRDQyIgJiYgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogbm8gYWNjZXB0YWJsZSBDIGNvbXBpbGVyIGZvdW5kIGluIFwkUEFUSAorU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogbm8gYWNjZXB0YWJsZSBDIGNvbXBpbGVyIGZvdW5kIGluIFwkUEFUSAorU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKworIyBQcm92aWRlIHNvbWUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbXBpbGVyLgorZWNobyAiJGFzX21lOiRMSU5FTk86IiBcCisgICAgICJjaGVja2luZyBmb3IgQyBjb21waWxlciB2ZXJzaW9uIiA+JjUKK2FjX2NvbXBpbGVyPWBzZXQgWCAkYWNfY29tcGlsZTsgZWNobyAkMmAKK3sgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVyIC0tdmVyc2lvbiA8L2Rldi9udWxsID4mNVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlciAtLXZlcnNpb24gPC9kZXYvbnVsbCA+JjUpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0KK3sgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVyIC12IDwvZGV2L251bGwgPiY1XCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGVyIC12IDwvZGV2L251bGwgPiY1KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9Cit7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlciAtViA8L2Rldi9udWxsID4mNVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlciAtViA8L2Rldi9udWxsID4mNSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfQorCitjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKworaW50CittYWluICgpCit7CisKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorYWNfY2xlYW5fZmlsZXNfc2F2ZT0kYWNfY2xlYW5fZmlsZXMKK2FjX2NsZWFuX2ZpbGVzPSIkYWNfY2xlYW5fZmlsZXMgYS5vdXQgYS5leGUgYi5vdXQiCisjIFRyeSB0byBjcmVhdGUgYW4gZXhlY3V0YWJsZSB3aXRob3V0IC1vIGZpcnN0LCBkaXNyZWdhcmQgYS5vdXQuCisjIEl0IHdpbGwgaGVscCB1cyBkaWFnbm9zZSBicm9rZW4gY29tcGlsZXJzLCBhbmQgZmluZGluZyBvdXQgYW4gaW50dWl0aW9uCisjIG9mIGV4ZWV4dC4KK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUuLi4gJEVDSE9fQyIgPiY2CithY19saW5rX2RlZmF1bHQ9YGVjaG8gIiRhY19saW5rIiB8IHNlZCAncy8gLW8gKmNvbmZ0ZXN0W14gXSovLydgCitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rX2RlZmF1bHRcIiIpID4mNQorICAoZXZhbCAkYWNfbGlua19kZWZhdWx0KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCisgICMgRmluZCB0aGUgb3V0cHV0LCBzdGFydGluZyBmcm9tIHRoZSBtb3N0IGxpa2VseS4gIFRoaXMgc2NoZW1lIGlzCisjIG5vdCByb2J1c3QgdG8ganVuayBpbiBgLicsIGhlbmNlIGdvIHRvIHdpbGRjYXJkcyAoYS4qKSBvbmx5IGFzIGEgbGFzdAorIyByZXNvcnQuCisKKyMgQmUgY2FyZWZ1bCB0byBpbml0aWFsaXplIHRoaXMgdmFyaWFibGUsIHNpbmNlIGl0IHVzZWQgdG8gYmUgY2FjaGVkLgorIyBPdGhlcndpc2UgYW4gb2xkIGNhY2hlIHZhbHVlIG9mIGBubycgbGVkIHRvIGBFWEVFWFQgPSBubycgaW4gYSBNYWtlZmlsZS4KK2FjX2N2X2V4ZWV4dD0KKyMgYi5vdXQgaXMgY3JlYXRlZCBieSBpOTYwIGNvbXBpbGVycy4KK2ZvciBhY19maWxlIGluIGFfb3V0LmV4ZSBhLmV4ZSBjb25mdGVzdC5leGUgYS5vdXQgY29uZnRlc3QgYS4qIGNvbmZ0ZXN0LiogYi5vdXQKK2RvCisgIHRlc3QgLWYgIiRhY19maWxlIiB8fCBjb250aW51ZQorICBjYXNlICRhY19maWxlIGluCisgICAgKi4kYWNfZXh0IHwgKi54Y29mZiB8ICoudGRzIHwgKi5kIHwgKi5wZGIgfCAqLnhTWU0gfCAqLmJiIHwgKi5iYmcgfCAqLm8gfCAqLm9iaiApCisJOzsKKyAgICBjb25mdGVzdC4kYWNfZXh0ICkKKwkjIFRoaXMgaXMgdGhlIHNvdXJjZSBmaWxlLgorCTs7CisgICAgW2FiXS5vdXQgKQorCSMgV2UgZm91bmQgdGhlIGRlZmF1bHQgZXhlY3V0YWJsZSwgYnV0IGV4ZWV4dD0nJyBpcyBtb3N0CisJIyBjZXJ0YWlubHkgcmlnaHQuCisJYnJlYWs7OworICAgICouKiApCisJYWNfY3ZfZXhlZXh0PWBleHByICIkYWNfZmlsZSIgOiAnW14uXSpcKFwuLipcKSdgCisJIyBGSVhNRTogSSBiZWxpZXZlIHdlIGV4cG9ydCBhY19jdl9leGVleHQgZm9yIExpYnRvb2wsCisJIyBidXQgaXQgd291bGQgYmUgY29vbCB0byBmaW5kIG91dCBpZiBpdCdzIHRydWUuICBEb2VzIGFueWJvZHkKKwkjIG1haW50YWluIExpYnRvb2w/IC0tYWtpbS4KKwlleHBvcnQgYWNfY3ZfZXhlZXh0CisJYnJlYWs7OworICAgICogKQorCWJyZWFrOzsKKyAgZXNhYworZG9uZQorZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCit7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBDIGNvbXBpbGVyIGNhbm5vdCBjcmVhdGUgZXhlY3V0YWJsZXMKK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IEMgY29tcGlsZXIgY2Fubm90IGNyZWF0ZSBleGVjdXRhYmxlcworU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9CisgICB7IChleGl0IDc3KTsgZXhpdCA3NzsgfTsgfQorZmkKKworYWNfZXhlZXh0PSRhY19jdl9leGVleHQKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19maWxlIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19maWxlIiA+JjYKKworIyBDaGVjayB0aGUgY29tcGlsZXIgcHJvZHVjZXMgZXhlY3V0YWJsZXMgd2UgY2FuIHJ1bi4gIElmIG5vdCwgZWl0aGVyCisjIHRoZSBjb21waWxlciBpcyBicm9rZW4sIG9yIHdlIGNyb3NzIGNvbXBpbGUuCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciB3b3JrcyIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MuLi4gJEVDSE9fQyIgPiY2CisjIEZJWE1FOiBUaGVzZSBjcm9zcyBjb21waWxlciBoYWNrcyBzaG91bGQgYmUgcmVtb3ZlZCBmb3IgQXV0b2NvbmYgMy4wCisjIElmIG5vdCBjcm9zcyBjb21waWxpbmcsIGNoZWNrIHRoYXQgd2UgY2FuIHJ1biBhIHNpbXBsZSBwcm9ncmFtLgoraWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgIT0geWVzOyB0aGVuCisgIGlmIHsgYWNfdHJ5PScuLyRhY19maWxlJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgICAgY3Jvc3NfY29tcGlsaW5nPW5vCisgIGVsc2UKKyAgICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IG1heWJlOyB0aGVuCisJY3Jvc3NfY29tcGlsaW5nPXllcworICAgIGVsc2UKKwl7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgcnVuIEMgY29tcGlsZWQgcHJvZ3JhbXMuCitJZiB5b3UgbWVhbnQgdG8gY3Jvc3MgY29tcGlsZSwgdXNlIFxgLS1ob3N0Jy4KK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBydW4gQyBjb21waWxlZCBwcm9ncmFtcy4KK0lmIHlvdSBtZWFudCB0byBjcm9zcyBjb21waWxlLCB1c2UgXGAtLWhvc3QnLgorU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKyAgICBmaQorICBmaQorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1CitlY2hvICIke0VDSE9fVH15ZXMiID4mNgorCitybSAtZiBhLm91dCBhLmV4ZSBjb25mdGVzdCRhY19jdl9leGVleHQgYi5vdXQKK2FjX2NsZWFuX2ZpbGVzPSRhY19jbGVhbl9maWxlc19zYXZlCisjIENoZWNrIHRoZSBjb21waWxlciBwcm9kdWNlcyBleGVjdXRhYmxlcyB3ZSBjYW4gcnVuLiAgSWYgbm90LCBlaXRoZXIKKyMgdGhlIGNvbXBpbGVyIGlzIGJyb2tlbiwgb3Igd2UgY3Jvc3MgY29tcGlsZS4KK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmciID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBjcm9zcyBjb21waWxpbmcuLi4gJEVDSE9fQyIgPiY2CitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkY3Jvc3NfY29tcGlsaW5nIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRjcm9zc19jb21waWxpbmciID4mNgorCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBleGVjdXRhYmxlcyIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBzdWZmaXggb2YgZXhlY3V0YWJsZXMuLi4gJEVDSE9fQyIgPiY2CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2xpbmspIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KKyAgIyBJZiBib3RoIGBjb25mdGVzdC5leGUnIGFuZCBgY29uZnRlc3QnIGFyZSBgcHJlc2VudCcgKHdlbGwsIG9ic2VydmFibGUpCisjIGNhdGNoIGBjb25mdGVzdC5leGUnLiAgRm9yIGluc3RhbmNlIHdpdGggQ3lnd2luLCBgbHMgY29uZnRlc3QnIHdpbGwKKyMgd29yayBwcm9wZXJseSAoaS5lLiwgcmVmZXIgdG8gYGNvbmZ0ZXN0LmV4ZScpLCB3aGlsZSBpdCB3b24ndCB3aXRoCisjIGBybScuCitmb3IgYWNfZmlsZSBpbiBjb25mdGVzdC5leGUgY29uZnRlc3QgY29uZnRlc3QuKjsgZG8KKyAgdGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNvbnRpbnVlCisgIGNhc2UgJGFjX2ZpbGUgaW4KKyAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyB8ICoubyB8ICoub2JqICkgOzsKKyAgICAqLiogKSBhY19jdl9leGVleHQ9YGV4cHIgIiRhY19maWxlIiA6ICdbXi5dKlwoXC4uKlwpJ2AKKwkgIGV4cG9ydCBhY19jdl9leGVleHQKKwkgIGJyZWFrOzsKKyAgICAqICkgYnJlYWs7OworICBlc2FjCitkb25lCitlbHNlCisgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBleGVjdXRhYmxlczogY2Fubm90IGNvbXBpbGUgYW5kIGxpbmsKK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBleGVjdXRhYmxlczogY2Fubm90IGNvbXBpbGUgYW5kIGxpbmsKK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CitmaQorCitybSAtZiBjb25mdGVzdCRhY19jdl9leGVleHQKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9leGVleHQiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X2V4ZWV4dCIgPiY2CisKK3JtIC1mIGNvbmZ0ZXN0LiRhY19leHQKK0VYRUVYVD0kYWNfY3ZfZXhlZXh0CithY19leGVleHQ9JEVYRUVYVAorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X29iamV4dCtzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKworaW50CittYWluICgpCit7CisKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QubyBjb25mdGVzdC5vYmoKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgorICBmb3IgYWNfZmlsZSBpbiBgKGxzIGNvbmZ0ZXN0Lm8gY29uZnRlc3Qub2JqOyBscyBjb25mdGVzdC4qKSAyPi9kZXYvbnVsbGA7IGRvCisgIGNhc2UgJGFjX2ZpbGUgaW4KKyAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyApIDs7CisgICAgKikgYWNfY3Zfb2JqZXh0PWBleHByICIkYWNfZmlsZSIgOiAnLipcLlwoLipcKSdgCisgICAgICAgYnJlYWs7OworICBlc2FjCitkb25lCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK3sgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXM6IGNhbm5vdCBjb21waWxlCitTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgY29tcHV0ZSBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzOiBjYW5ub3QgY29tcGlsZQorU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KK2ZpCisKK3JtIC1mIGNvbmZ0ZXN0LiRhY19jdl9vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9vYmpleHQiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X29iamV4dCIgPiY2CitPQkpFWFQ9JGFjX2N2X29iamV4dAorYWNfb2JqZXh0PSRPQkpFWFQKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMgY29tcGlsZXIiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMgY29tcGlsZXIuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X2NfY29tcGlsZXJfZ251K3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworCitpbnQKK21haW4gKCkKK3sKKyNpZm5kZWYgX19HTlVDX18KKyAgICAgICBjaG9rZSBtZQorI2VuZGlmCisKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBhY19jb21waWxlcl9nbnU9eWVzCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2FjX2NvbXBpbGVyX2dudT1ubworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2FjX2N2X2NfY29tcGlsZXJfZ251PSRhY19jb21waWxlcl9nbnUKKworZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9jX2NvbXBpbGVyX2dudSIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3ZfY19jb21waWxlcl9nbnUiID4mNgorR0NDPWB0ZXN0ICRhY19jb21waWxlcl9nbnUgPSB5ZXMgJiYgZWNobyB5ZXNgCithY190ZXN0X0NGTEFHUz0ke0NGTEFHUytzZXR9CithY19zYXZlX0NGTEFHUz0kQ0ZMQUdTCitDRkxBR1M9Ii1nIgorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgJENDIGFjY2VwdHMgLWciID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyB3aGV0aGVyICRDQyBhY2NlcHRzIC1nLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9wcm9nX2NjX2crc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKK2ludAorbWFpbiAoKQoreworCisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3ZfcHJvZ19jY19nPXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCithY19jdl9wcm9nX2NjX2c9bm8KK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3Byb2dfY2NfZyIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3ZfcHJvZ19jY19nIiA+JjYKK2lmIHRlc3QgIiRhY190ZXN0X0NGTEFHUyIgPSBzZXQ7IHRoZW4KKyAgQ0ZMQUdTPSRhY19zYXZlX0NGTEFHUworZWxpZiB0ZXN0ICRhY19jdl9wcm9nX2NjX2cgPSB5ZXM7IHRoZW4KKyAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKyAgICBDRkxBR1M9Ii1nIC1PMiIKKyAgZWxzZQorICAgIENGTEFHUz0iLWciCisgIGZpCitlbHNlCisgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisgICAgQ0ZMQUdTPSItTzIiCisgIGVsc2UKKyAgICBDRkxBR1M9CisgIGZpCitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkQ0Mgb3B0aW9uIHRvIGFjY2VwdCBBTlNJIEMiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJENDIG9wdGlvbiB0byBhY2NlcHQgQU5TSSBDLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9wcm9nX2NjX3N0ZGMrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgYWNfY3ZfcHJvZ19jY19zdGRjPW5vCithY19zYXZlX0NDPSRDQworY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaW5jbHVkZSA8c3RkYXJnLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorLyogTW9zdCBvZiB0aGUgZm9sbG93aW5nIHRlc3RzIGFyZSBzdG9sZW4gZnJvbSBSQ1MgNS43J3Mgc3JjL2NvbmYuc2guICAqLworc3RydWN0IGJ1ZiB7IGludCB4OyB9OworRklMRSAqICgqcmNzb3BlbikgKHN0cnVjdCBidWYgKiwgc3RydWN0IHN0YXQgKiwgaW50KTsKK3N0YXRpYyBjaGFyICplIChwLCBpKQorICAgICBjaGFyICoqcDsKKyAgICAgaW50IGk7Cit7CisgIHJldHVybiBwW2ldOworfQorc3RhdGljIGNoYXIgKmYgKGNoYXIgKiAoKmcpIChjaGFyICoqLCBpbnQpLCBjaGFyICoqcCwgLi4uKQoreworICBjaGFyICpzOworICB2YV9saXN0IHY7CisgIHZhX3N0YXJ0ICh2LHApOworICBzID0gZyAocCwgdmFfYXJnICh2LGludCkpOworICB2YV9lbmQgKHYpOworICByZXR1cm4gczsKK30KKworLyogT1NGIDQuMCBDb21wYXEgY2MgaXMgc29tZSBzb3J0IG9mIGFsbW9zdC1BTlNJIGJ5IGRlZmF1bHQuICBJdCBoYXMKKyAgIGZ1bmN0aW9uIHByb3RvdHlwZXMgYW5kIHN0dWZmLCBidXQgbm90ICdceEhIJyBoZXggY2hhcmFjdGVyIGNvbnN0YW50cy4KKyAgIFRoZXNlIGRvbid0IHByb3Zva2UgYW4gZXJyb3IgdW5mb3J0dW5hdGVseSwgaW5zdGVhZCBhcmUgc2lsZW50bHkgdHJlYXRlZAorICAgYXMgJ3gnLiAgVGhlIGZvbGxvd2luZyBpbmR1Y2VzIGFuIGVycm9yLCB1bnRpbCAtc3RkMSBpcyBhZGRlZCB0byBnZXQKKyAgIHByb3BlciBBTlNJIG1vZGUuICBDdXJpb3VzbHkgJ1x4MDAnIT0neCcgYWx3YXlzIGNvbWVzIG91dCB0cnVlLCBmb3IgYW4KKyAgIGFycmF5IHNpemUgYXQgbGVhc3QuICBJdCdzIG5lY2Vzc2FyeSB0byB3cml0ZSAnXHgwMCc9PTAgdG8gZ2V0IHNvbWV0aGluZworICAgdGhhdCdzIHRydWUgb25seSB3aXRoIC1zdGQxLiAgKi8KK2ludCBvc2Y0X2NjX2FycmF5IFsnXHgwMCcgPT0gMCA/IDEgOiAtMV07CisKK2ludCB0ZXN0IChpbnQgaSwgZG91YmxlIHgpOworc3RydWN0IHMxIHtpbnQgKCpmKSAoaW50IGEpO307CitzdHJ1Y3QgczIge2ludCAoKmYpIChkb3VibGUgYSk7fTsKK2ludCBwYWlybmFtZXMgKGludCwgY2hhciAqKiwgRklMRSAqKCopKHN0cnVjdCBidWYgKiwgc3RydWN0IHN0YXQgKiwgaW50KSwgaW50LCBpbnQpOworaW50IGFyZ2M7CitjaGFyICoqYXJndjsKK2ludAorbWFpbiAoKQoreworcmV0dXJuIGYgKGUsIGFyZ3YsIDApICE9IGFyZ3ZbMF0gIHx8ICBmIChlLCBhcmd2LCAxKSAhPSBhcmd2WzFdOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCisjIERvbid0IHRyeSBnY2MgLWFuc2k7IHRoYXQgdHVybnMgb2ZmIHVzZWZ1bCBleHRlbnNpb25zIGFuZAorIyBicmVha3Mgc29tZSBzeXN0ZW1zJyBoZWFkZXIgZmlsZXMuCisjIEFJWAkJCS1xbGFuZ2x2bD1hbnNpCisjIFVsdHJpeCBhbmQgT1NGLzEJLXN0ZDEKKyMgSFAtVVggMTAuMjAgYW5kIGxhdGVyCS1BZQorIyBIUC1VWCBvbGRlciB2ZXJzaW9ucwktQWEgLURfSFBVWF9TT1VSQ0UKKyMgU1ZSNAkJCS1YYyAtRF9fRVhURU5TSU9OU19fCitmb3IgYWNfYXJnIGluICIiIC1xbGFuZ2x2bD1hbnNpIC1zdGQxIC1BZSAiLUFhIC1EX0hQVVhfU09VUkNFIiAiLVhjIC1EX19FWFRFTlNJT05TX18iCitkbworICBDQz0iJGFjX3NhdmVfQ0MgJGFjX2FyZyIKKyAgcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBhY19jdl9wcm9nX2NjX3N0ZGM9JGFjX2FyZworYnJlYWsKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0Citkb25lCitybSAtZiBjb25mdGVzdC4kYWNfZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQKK0NDPSRhY19zYXZlX0NDCisKK2ZpCisKK2Nhc2UgIngkYWNfY3ZfcHJvZ19jY19zdGRjIiBpbgorICB4fHhubykKKyAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBub25lIG5lZWRlZCIgPiY1CitlY2hvICIke0VDSE9fVH1ub25lIG5lZWRlZCIgPiY2IDs7CisgICopCisgICAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3Byb2dfY2Nfc3RkYyIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3ZfcHJvZ19jY19zdGRjIiA+JjYKKyAgICBDQz0iJENDICRhY19jdl9wcm9nX2NjX3N0ZGMiIDs7Citlc2FjCisKKyMgU29tZSBwZW9wbGUgdXNlIGEgQysrIGNvbXBpbGVyIHRvIGNvbXBpbGUgQy4gIFNpbmNlIHdlIHVzZSBgZXhpdCcsCisjIGluIEMrKyB3ZSBuZWVkIHRvIGRlY2xhcmUgaXQuICBJbiBjYXNlIHNvbWVvbmUgdXNlcyB0aGUgc2FtZSBjb21waWxlcgorIyBmb3IgYm90aCBjb21waWxpbmcgQyBhbmQgQysrIHdlIG5lZWQgdG8gaGF2ZSB0aGUgQysrIGNvbXBpbGVyIGRlY2lkZQorIyB0aGUgZGVjbGFyYXRpb24gb2YgZXhpdCwgc2luY2UgaXQncyB0aGUgbW9zdCBkZW1hbmRpbmcgZW52aXJvbm1lbnQuCitjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKyNpZm5kZWYgX19jcGx1c3BsdXMKKyAgY2hva2UgbWUKKyNlbmRpZgorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGZvciBhY19kZWNsYXJhdGlvbiBpbiBcCisgICAnJyBcCisgICAnZXh0ZXJuICJDIiB2b2lkIHN0ZDo6ZXhpdCAoaW50KSB0aHJvdyAoKTsgdXNpbmcgc3RkOjpleGl0OycgXAorICAgJ2V4dGVybiAiQyIgdm9pZCBzdGQ6OmV4aXQgKGludCk7IHVzaW5nIHN0ZDo6ZXhpdDsnIFwKKyAgICdleHRlcm4gIkMiIHZvaWQgZXhpdCAoaW50KSB0aHJvdyAoKTsnIFwKKyAgICdleHRlcm4gIkMiIHZvaWQgZXhpdCAoaW50KTsnIFwKKyAgICd2b2lkIGV4aXQgKGludCk7JworZG8KKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCiskYWNfZGVjbGFyYXRpb24KKyNpbmNsdWRlIDxzdGRsaWIuaD4KK2ludAorbWFpbiAoKQoreworZXhpdCAoNDIpOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIDoKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworY29udGludWUKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworJGFjX2RlY2xhcmF0aW9uCitpbnQKK21haW4gKCkKK3sKK2V4aXQgKDQyKTsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBicmVhaworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZG9uZQorcm0gLWYgY29uZnRlc3QqCitpZiB0ZXN0IC1uICIkYWNfZGVjbGFyYXRpb24iOyB0aGVuCisgIGVjaG8gJyNpZmRlZiBfX2NwbHVzcGx1cycgPj5jb25mZGVmcy5oCisgIGVjaG8gJGFjX2RlY2xhcmF0aW9uICAgICAgPj5jb25mZGVmcy5oCisgIGVjaG8gJyNlbmRpZicgICAgICAgICAgICAgPj5jb25mZGVmcy5oCitmaQorCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CithY19leHQ9YworYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCithY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisKK2FjX2V4dD1jCithY19jcHA9JyRDUFAgJENQUEZMQUdTJworYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDIHByZXByb2Nlc3NvciIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yLi4uICRFQ0hPX0MiID4mNgorIyBPbiBTdW5zLCBzb21ldGltZXMgJENQUCBuYW1lcyBhIGRpcmVjdG9yeS4KK2lmIHRlc3QgLW4gIiRDUFAiICYmIHRlc3QgLWQgIiRDUFAiOyB0aGVuCisgIENQUD0KK2ZpCitpZiB0ZXN0IC16ICIkQ1BQIjsgdGhlbgorICBpZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ1BQK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgICAgICAjIERvdWJsZSBxdW90ZXMgYmVjYXVzZSBDUFAgbmVlZHMgdG8gYmUgZXhwYW5kZWQKKyAgICBmb3IgQ1BQIGluICIkQ0MgLUUiICIkQ0MgLUUgLXRyYWRpdGlvbmFsLWNwcCIgIi9saWIvY3BwIgorICAgIGRvCisgICAgICBhY19wcmVwcm9jX29rPWZhbHNlCitmb3IgYWNfY19wcmVwcm9jX3dhcm5fZmxhZyBpbiAnJyB5ZXMKK2RvCisgICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhhdCBjb21lcyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKKyAgIyB3aXRoIGEgZnJlc2ggY3Jvc3MtY29tcGlsZXIgd29ya3MuCisgICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQorICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4KKyAgIyBPbiB0aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKKyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2lmZGVmIF9fU1REQ19fCisjIGluY2x1ZGUgPGxpbWl0cy5oPgorI2Vsc2UKKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+CisjZW5kaWYKKwkJICAgICBTeW50YXggZXJyb3IKK19BQ0VPRgoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHRcIiIpID4mNQorICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsOyB0aGVuCisgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCisgICAgYWNfY3BwX2Vycj0kYWNfY19wcmVwcm9jX3dhcm5fZmxhZworICAgIGFjX2NwcF9lcnI9JGFjX2NwcF9lcnIkYWNfY193ZXJyb3JfZmxhZworICBlbHNlCisgICAgYWNfY3BwX2Vycj0KKyAgZmkKK2Vsc2UKKyAgYWNfY3BwX2Vycj15ZXMKK2ZpCitpZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRoZW4KKyAgOgorZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCisgICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KK2NvbnRpbnVlCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKworICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uLWV4aXN0ZW50IGhlYWRlcnMKKyAgIyBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4KKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KK19BQ0VPRgoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHRcIiIpID4mNQorICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsOyB0aGVuCisgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCisgICAgYWNfY3BwX2Vycj0kYWNfY19wcmVwcm9jX3dhcm5fZmxhZworICAgIGFjX2NwcF9lcnI9JGFjX2NwcF9lcnIkYWNfY193ZXJyb3JfZmxhZworICBlbHNlCisgICAgYWNfY3BwX2Vycj0KKyAgZmkKK2Vsc2UKKyAgYWNfY3BwX2Vycj15ZXMKK2ZpCitpZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRoZW4KKyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4KK2NvbnRpbnVlCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKKyAgIyBQYXNzZXMgYm90aCB0ZXN0cy4KK2FjX3ByZXByb2Nfb2s9OgorYnJlYWsKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorCitkb25lCisjIEJlY2F1c2Ugb2YgYGJyZWFrJywgX0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CitpZiAkYWNfcHJlcHJvY19vazsgdGhlbgorICBicmVhaworZmkKKworICAgIGRvbmUKKyAgICBhY19jdl9wcm9nX0NQUD0kQ1BQCisKK2ZpCisgIENQUD0kYWNfY3ZfcHJvZ19DUFAKK2Vsc2UKKyAgYWNfY3ZfcHJvZ19DUFA9JENQUAorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRDUFAiID4mNQorZWNobyAiJHtFQ0hPX1R9JENQUCIgPiY2CithY19wcmVwcm9jX29rPWZhbHNlCitmb3IgYWNfY19wcmVwcm9jX3dhcm5fZmxhZyBpbiAnJyB5ZXMKK2RvCisgICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhhdCBjb21lcyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKKyAgIyB3aXRoIGEgZnJlc2ggY3Jvc3MtY29tcGlsZXIgd29ya3MuCisgICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQorICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4KKyAgIyBPbiB0aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKKyAgIyBub3QganVzdCB0aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2lmZGVmIF9fU1REQ19fCisjIGluY2x1ZGUgPGxpbWl0cy5oPgorI2Vsc2UKKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+CisjZW5kaWYKKwkJICAgICBTeW50YXggZXJyb3IKK19BQ0VPRgoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHRcIiIpID4mNQorICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsOyB0aGVuCisgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCisgICAgYWNfY3BwX2Vycj0kYWNfY19wcmVwcm9jX3dhcm5fZmxhZworICAgIGFjX2NwcF9lcnI9JGFjX2NwcF9lcnIkYWNfY193ZXJyb3JfZmxhZworICBlbHNlCisgICAgYWNfY3BwX2Vycj0KKyAgZmkKK2Vsc2UKKyAgYWNfY3BwX2Vycj15ZXMKK2ZpCitpZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRoZW4KKyAgOgorZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCisgICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KK2NvbnRpbnVlCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKKworICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uLWV4aXN0ZW50IGhlYWRlcnMKKyAgIyBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4KKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KK19BQ0VPRgoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHRcIiIpID4mNQorICAoZXZhbCAkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSA+L2Rldi9udWxsOyB0aGVuCisgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCisgICAgYWNfY3BwX2Vycj0kYWNfY19wcmVwcm9jX3dhcm5fZmxhZworICAgIGFjX2NwcF9lcnI9JGFjX2NwcF9lcnIkYWNfY193ZXJyb3JfZmxhZworICBlbHNlCisgICAgYWNfY3BwX2Vycj0KKyAgZmkKK2Vsc2UKKyAgYWNfY3BwX2Vycj15ZXMKK2ZpCitpZiB0ZXN0IC16ICIkYWNfY3BwX2VyciI7IHRoZW4KKyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4KK2NvbnRpbnVlCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKKyAgIyBQYXNzZXMgYm90aCB0ZXN0cy4KK2FjX3ByZXByb2Nfb2s9OgorYnJlYWsKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorCitkb25lCisjIEJlY2F1c2Ugb2YgYGJyZWFrJywgX0FDX1BSRVBST0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CitpZiAkYWNfcHJlcHJvY19vazsgdGhlbgorICA6CitlbHNlCisgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IEMgcHJlcHJvY2Vzc29yIFwiJENQUFwiIGZhaWxzIHNhbml0eSBjaGVjaworU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogQyBwcmVwcm9jZXNzb3IgXCIkQ1BQXCIgZmFpbHMgc2FuaXR5IGNoZWNrCitTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorZmkKKworYWNfZXh0PWMKK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCithY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCithY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorCisKKworZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBlZ3JlcCIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBlZ3JlcC4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19lZ3JlcCtzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBpZiBlY2hvIGEgfCAoZ3JlcCAtRSAnKGF8YiknKSA+L2Rldi9udWxsIDI+JjEKKyAgICB0aGVuIGFjX2N2X3Byb2dfZWdyZXA9J2dyZXAgLUUnCisgICAgZWxzZSBhY19jdl9wcm9nX2VncmVwPSdlZ3JlcCcKKyAgICBmaQorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19jdl9wcm9nX2VncmVwIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRhY19jdl9wcm9nX2VncmVwIiA+JjYKKyBFR1JFUD0kYWNfY3ZfcHJvZ19lZ3JlcAorCisKK2lmIHRlc3QgJGFjX2N2X2NfY29tcGlsZXJfZ251ID0geWVzOyB0aGVuCisgICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHdoZXRoZXIgJENDIG5lZWRzIC10cmFkaXRpb25hbCIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIHdoZXRoZXIgJENDIG5lZWRzIC10cmFkaXRpb25hbC4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19nY2NfdHJhZGl0aW9uYWwrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgICBhY19wYXR0ZXJuPSJBdXRvY29uZi4qJ3gnIgorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDxzZ3R0eS5oPgorQXV0b2NvbmYgVElPQ0dFVFAKK19BQ0VPRgoraWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAorICAkRUdSRVAgIiRhY19wYXR0ZXJuIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgYWNfY3ZfcHJvZ19nY2NfdHJhZGl0aW9uYWw9eWVzCitlbHNlCisgIGFjX2N2X3Byb2dfZ2NjX3RyYWRpdGlvbmFsPW5vCitmaQorcm0gLWYgY29uZnRlc3QqCisKKworICBpZiB0ZXN0ICRhY19jdl9wcm9nX2djY190cmFkaXRpb25hbCA9IG5vOyB0aGVuCisgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaW5jbHVkZSA8dGVybWlvLmg+CitBdXRvY29uZiBUQ0dFVEEKK19BQ0VPRgoraWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAorICAkRUdSRVAgIiRhY19wYXR0ZXJuIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgYWNfY3ZfcHJvZ19nY2NfdHJhZGl0aW9uYWw9eWVzCitmaQorcm0gLWYgY29uZnRlc3QqCisKKyAgZmkKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfcHJvZ19nY2NfdHJhZGl0aW9uYWwiID4mNQorZWNobyAiJHtFQ0hPX1R9JGFjX2N2X3Byb2dfZ2NjX3RyYWRpdGlvbmFsIiA+JjYKKyAgaWYgdGVzdCAkYWNfY3ZfcHJvZ19nY2NfdHJhZGl0aW9uYWwgPSB5ZXM7IHRoZW4KKyAgICBDQz0iJENDIC10cmFkaXRpb25hbCIKKyAgZmkKK2ZpCisKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgbGlicmFyeSBjb250YWluaW5nIHN0cmVycm9yIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBzdHJlcnJvci4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3Zfc2VhcmNoX3N0cmVycm9yK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGFjX2Z1bmNfc2VhcmNoX3NhdmVfTElCUz0kTElCUworYWNfY3Zfc2VhcmNoX3N0cmVycm9yPW5vCitjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKworLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8KKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIgorI2VuZGlmCisvKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyCisgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLworY2hhciBzdHJlcnJvciAoKTsKK2ludAorbWFpbiAoKQoreworc3RyZXJyb3IgKCk7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2xpbmspIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgYWNfY3Zfc2VhcmNoX3N0cmVycm9yPSJub25lIHJlcXVpcmVkIgorZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2lmIHRlc3QgIiRhY19jdl9zZWFyY2hfc3RyZXJyb3IiID0gbm87IHRoZW4KKyAgZm9yIGFjX2xpYiBpbiBjcG9zaXg7IGRvCisgICAgTElCUz0iLWwkYWNfbGliICAkYWNfZnVuY19zZWFyY2hfc2F2ZV9MSUJTIgorICAgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworCisvKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiCisjZW5kaWYKKy8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCitjaGFyIHN0cmVycm9yICgpOworaW50CittYWluICgpCit7CitzdHJlcnJvciAoKTsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBhY19jdl9zZWFyY2hfc3RyZXJyb3I9Ii1sJGFjX2xpYiIKK2JyZWFrCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorICBkb25lCitmaQorTElCUz0kYWNfZnVuY19zZWFyY2hfc2F2ZV9MSUJTCitmaQorZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3NlYXJjaF9zdHJlcnJvciIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3Zfc2VhcmNoX3N0cmVycm9yIiA+JjYKK2lmIHRlc3QgIiRhY19jdl9zZWFyY2hfc3RyZXJyb3IiICE9IG5vOyB0aGVuCisgIHRlc3QgIiRhY19jdl9zZWFyY2hfc3RyZXJyb3IiID0gIm5vbmUgcmVxdWlyZWQiIHx8IExJQlM9IiRhY19jdl9zZWFyY2hfc3RyZXJyb3IgJExJQlMiCisKK2ZpCisKKworaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KKyAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IHJ1biB0ZXN0IHByb2dyYW0gd2hpbGUgY3Jvc3MgY29tcGlsaW5nCitTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgcnVuIHRlc3QgcHJvZ3JhbSB3aGlsZSBjcm9zcyBjb21waWxpbmcKK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworbWFpbigpe2V4aXQoMCk7fQorX0FDRU9GCitybSAtZiBjb25mdGVzdCRhY19leGVleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7IGFjX3RyeT0nLi9jb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgOgorZWxzZQorICBlY2hvICIkYXNfbWU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMiID4mNQorZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworKCBleGl0ICRhY19zdGF0dXMgKQorCitpZiB0ZXN0ICRDQyAhPSBjYyA7IHRoZW4KK2VjaG8gIllvdXIgJENDIGZhaWxlZCAtIHJlc3RhcnRpbmcgd2l0aCBDQz1jYyIgMT4mNgorCitlY2hvICIiIDE+JjYKKworQ0M9Y2MKK2V4cG9ydCBDQworZXhlYyAkMCAkY29uZmlndXJlX2FyZ3MKK2ZpCisKK2ZpCitybSAtZiBjb3JlICouY29yZSBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKKworaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KKyAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IHJ1biB0ZXN0IHByb2dyYW0gd2hpbGUgY3Jvc3MgY29tcGlsaW5nCitTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgcnVuIHRlc3QgcHJvZ3JhbSB3aGlsZSBjcm9zcyBjb21waWxpbmcKK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworbWFpbigpe2V4aXQoMCk7fQorX0FDRU9GCitybSAtZiBjb25mdGVzdCRhY19leGVleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7IGFjX3RyeT0nLi9jb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgOgorZWxzZQorICBlY2hvICIkYXNfbWU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMiID4mNQorZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworKCBleGl0ICRhY19zdGF0dXMgKQorZXhlYyA1PiYyCitldmFsICRhY19saW5rCitlY2hvICJDQz0kQ0M7IENGTEFHUz0kQ0ZMQUdTOyBMSUJTPSRMSUJTOyIgMT4mNgorCitlY2hvICIkYWNfY29tcGlsZSIgMT4mNgorCit7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBDYW4ndCBydW4gdGhlIGNvbXBpbGVyIC0gc29ycnkiID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogQ2FuJ3QgcnVuIHRoZSBjb21waWxlciAtIHNvcnJ5IiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CitmaQorcm0gLWYgY29yZSAqLmNvcmUgZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCisKK2lmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuCisgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBydW4gdGVzdCBwcm9ncmFtIHdoaWxlIGNyb3NzIGNvbXBpbGluZworU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IHJ1biB0ZXN0IHByb2dyYW0gd2hpbGUgY3Jvc3MgY29tcGlsaW5nCitTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorZWxzZQorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKworbWFpbigpCit7CisgIGludCBfX3NvbWV0aGluZ19zdHJhbmdlXygpOworICBfX3NvbWV0aGluZ19zdHJhbmdlXygwKTsKK30KKworX0FDRU9GCitybSAtZiBjb25mdGVzdCRhY19leGVleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJiB7IGFjX3RyeT0nLi9jb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogWW91ciBjb21waWxlciBkb2VzIG5vdCBzZXQgdGhlIGV4aXQgc3RhdHVzIC0gc29ycnkiID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogWW91ciBjb21waWxlciBkb2VzIG5vdCBzZXQgdGhlIGV4aXQgc3RhdHVzIC0gc29ycnkiID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAkYWNfc3RhdHVzIiA+JjUKK2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2ZpCitybSAtZiBjb3JlICouY29yZSBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKKworZm9yIGFjX3Byb2cgaW4gZ2F3ayBtYXdrIG5hd2sgYXdrCitkbworICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KK3NldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgorZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfcHJvZ19BV0src2V0fSIgPSBzZXQ7IHRoZW4KKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKK2Vsc2UKKyAgaWYgdGVzdCAtbiAiJEFXSyI7IHRoZW4KKyAgYWNfY3ZfcHJvZ19BV0s9IiRBV0siICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorZWxzZQorYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorZm9yIGFzX2RpciBpbiAkUEFUSAorZG8KKyAgSUZTPSRhc19zYXZlX0lGUworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKyAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KKyAgICBhY19jdl9wcm9nX0FXSz0iJGFjX3Byb2ciCisgICAgZWNobyAiJGFzX21lOiRMSU5FTk86IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorICAgIGJyZWFrIDIKKyAgZmkKK2RvbmUKK2RvbmUKKworZmkKK2ZpCitBV0s9JGFjX2N2X3Byb2dfQVdLCitpZiB0ZXN0IC1uICIkQVdLIjsgdGhlbgorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkQVdLIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRBV0siID4mNgorZWxzZQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CitlY2hvICIke0VDSE9fVH1ubyIgPiY2CitmaQorCisgIHRlc3QgLW4gIiRBV0siICYmIGJyZWFrCitkb25lCisKKworaWYgdGVzdCAtZiBldGMvdG9vbGNoZWNrOyB0aGVuCit7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgYnVnZ3kgdG9vbHMuLi4iID4mNQorZWNobyAiJGFzX21lOiBjaGVja2luZyBmb3IgYnVnZ3kgdG9vbHMuLi4iID4mNjt9CitzaCBldGMvdG9vbGNoZWNrIDE+JjYKK2ZpCisKKworeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIFN5c3RlbSBWLi4uIiA+JjUKK2VjaG8gIiRhc19tZTogY2hlY2tpbmcgZm9yIFN5c3RlbSBWLi4uIiA+JjY7fQorY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KK2ludAorbWFpbiAoKQoreworaW50IHggPSBTSUdDSExEIHwgRk5ERUxBWTsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QuJGFjX29iamV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICA6CitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2NhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisjZGVmaW5lIFNZU1YgMQorX0FDRU9GCisKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisKK3sgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBTb2xhcmlzIDIueC4uLiIgPiY1CitlY2hvICIkYXNfbWU6IGNoZWNraW5nIGZvciBTb2xhcmlzIDIueC4uLiIgPiY2O30KK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2lmIGRlZmluZWQoU1ZSNCkgJiYgZGVmaW5lZChzdW4pCisgIHllcworI2VuZGlmCisKK19BQ0VPRgoraWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAorICAkRUdSRVAgInllcyIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgIExJQlM9IiRMSUJTIC1sc29ja2V0IC1sbnNsIC1sa3N0YXQiCitmaQorcm0gLWYgY29uZnRlc3QqCisKKworCit7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBzZWxlY3QuLi4iID4mNQorZWNobyAiJGFzX21lOiBjaGVja2luZyBzZWxlY3QuLi4iID4mNjt9CitjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKworaW50CittYWluICgpCit7CitzZWxlY3QoMCwgMCwgMCwgMCwgMCk7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2xpbmspIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgOgorZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCitMSUJTPSIkTElCUyAtbG5ldCAtbG5zbCIKK3sgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHNlbGVjdCB3aXRoICRMSUJTLi4uIiA+JjUKK2VjaG8gIiRhc19tZTogY2hlY2tpbmcgc2VsZWN0IHdpdGggJExJQlMuLi4iID4mNjt9CitjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKworaW50CittYWluICgpCit7CitzZWxlY3QoMCwgMCwgMCwgMCwgMCk7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2xpbmspIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgOgorZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCit7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiAhISEgbm8gc2VsZWN0IC0gbm8gc2NyZWVuIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6ICEhISBubyBzZWxlY3QgLSBubyBzY3JlZW4iID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKworeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgc2VsZWN0IHJldHVybiB2YWx1ZS4uLiIgPiY1CitlY2hvICIkYXNfbWU6IGNoZWNraW5nIHNlbGVjdCByZXR1cm4gdmFsdWUuLi4iID4mNjt9CitpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbgorICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgcnVuIHRlc3QgcHJvZ3JhbSB3aGlsZSBjcm9zcyBjb21waWxpbmcKK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBydW4gdGVzdCBwcm9ncmFtIHdoaWxlIGNyb3NzIGNvbXBpbGluZworU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisKK2NoYXIgKm5hbSA9ICIvdG1wL2NvbmZ0ZXN0JCQiOworCisjaWZkZWYgTkFNRURQSVBFCisKKyNpZm5kZWYgT19OT05CTE9DSworI2RlZmluZSBPX05PTkJMT0NLIE9fTkRFTEFZCisjZW5kaWYKKyNpZm5kZWYgU19JRklGTworI2RlZmluZSBTX0lGSUZPIDAwMTAwMDAKKyNlbmRpZgorCisKK21haW4oKQoreworI2lmZGVmIEZEX1NFVAorICBmZF9zZXQgZjsKKyNlbHNlCisgIGludCBmOworI2VuZGlmCisKKyNpZmRlZiBfX0ZyZWVCU0RfXworLyogRnJvbSBBbmRyZXcgQS4gQ2hlcm5vdiAoYWNoZUBhc3RyYWwubXNrLnN1KToKKyAqIG9wZW5pbmcgUkRXUiBmaWZvIGZhaWxzIGluIEJTRCA0LjQsIGJ1dCBzZWxlY3QgcmV0dXJuIHZhbHVlcyBhcmUKKyAqIHJpZ2h0LgorICovCisgIGV4aXQoMCk7CisjZW5kaWYKKyAgKHZvaWQpYWxhcm0oNSk7CisjaWZkZWYgUE9TSVgKKyAgaWYgKG1rZmlmbyhuYW0sIDA3NzcpKQorI2Vsc2UKKyAgaWYgKG1rbm9kKG5hbSwgU19JRklGT3wwNzc3LCAwKSkKKyNlbmRpZgorICAgIGV4aXQoMSk7CisgIGNsb3NlKDApOworICBpZiAob3BlbihuYW0sIE9fUkRXUiB8IE9fTk9OQkxPQ0spKQorICAgIGV4aXQoMSk7CisgIGlmICh3cml0ZSgwLCAiVEVTVCIsIDQpID09IC0xKQorICAgIGV4aXQoMSk7CisKKyNlbHNlCisKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisjaW5jbHVkZSA8c3lzL3VuLmg+CisKK21haW4oKQoreworICBpbnQgczEsIHMyLCBsOworICBzdHJ1Y3Qgc29ja2FkZHJfdW4gYTsKKyNpZmRlZiBGRF9TRVQKKyAgZmRfc2V0IGY7CisjZWxzZQorICBpbnQgZjsKKyNlbmRpZgorCisgICh2b2lkKWFsYXJtKDUpOworICBpZiAoKHMxID0gc29ja2V0KEFGX1VOSVgsIFNPQ0tfU1RSRUFNLCAwKSkgPT0gLTEpCisgICAgZXhpdCgxKTsKKyAgYS5zdW5fZmFtaWx5ID0gQUZfVU5JWDsKKyAgc3RyY3B5KGEuc3VuX3BhdGgsIG5hbSk7CisgICh2b2lkKSB1bmxpbmsobmFtKTsKKyAgaWYgKGJpbmQoczEsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJmEsIHN0cmxlbihuYW0pKzIpID09IC0xKQorICAgIGV4aXQoMSk7CisgIGlmIChsaXN0ZW4oczEsIDIpKQorICAgIGV4aXQoMSk7CisgIGlmIChmb3JrKCkgPT0gMCkKKyAgICB7CisgICAgICBpZiAoKHMyID0gc29ja2V0KEFGX1VOSVgsIFNPQ0tfU1RSRUFNLCAwKSkgPT0gLTEpCisJa2lsbChnZXRwcGlkKCksIDMpOworICAgICAgKHZvaWQpY29ubmVjdChzMiwgKHN0cnVjdCBzb2NrYWRkciAqKSZhLCBzdHJsZW4obmFtKSArIDIpOworICAgICAgaWYgKHdyaXRlKHMyLCAiSEVMTE8iLCA1KSA9PSAtMSkKKwlraWxsKGdldHBwaWQoKSwgMyk7CisgICAgICBleGl0KDApOworICAgIH0KKyAgbCA9IHNpemVvZihhKTsKKyAgY2xvc2UoMCk7CisgIGlmIChhY2NlcHQoczEsIChzdHJ1Y3Qgc29ja2FkZHIgKikmYSwgJmwpKQorICAgIGV4aXQoMSk7CisjZW5kaWYKKworCisjaWZkZWYgRkRfU0VUCisgIEZEX1NFVCgwLCAmZik7CisjZWxzZQorICBmID0gMTsKKyNlbmRpZgorICBpZiAoc2VsZWN0KDEsICZmLCAwLCAwLCAwKSA9PSAtMSkKKyAgICBleGl0KDEpOworICBpZiAoc2VsZWN0KDEsICZmLCAmZiwgMCwgMCkgIT0gMikKKyAgICBleGl0KDEpOworICBleGl0KDApOworfQorCitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0JGFjX2V4ZWV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CisgIChldmFsICRhY19saW5rKSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBlY2hvICItIHNlbGVjdCBpcyBvayIgMT4mNgorCitlbHNlCisgIGVjaG8gIiRhc19tZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgJGFjX3N0YXR1cyIgPiY1CitlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCisoIGV4aXQgJGFjX3N0YXR1cyApCitlY2hvICItIHNlbGVjdCBjYW4ndCBjb3VudCIgMT4mNgorIGNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisjZGVmaW5lIFNFTEVDVF9CUk9LRU4gMQorX0FDRU9GCisKK2ZpCitybSAtZiBjb3JlICouY29yZSBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKKworeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHRnZXRlbnQuLi4iID4mNQorZWNobyAiJGFzX21lOiBjaGVja2luZyBmb3IgdGdldGVudC4uLiIgPiY2O30KK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworCitpbnQKK21haW4gKCkKK3sKK3RnZXRlbnQoKGNoYXIgKikwLCAoY2hhciAqKTApOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CisgIChldmFsICRhY19saW5rKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIDoKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworb2xpYnM9IiRMSUJTIgorTElCUz0iLWxjdXJzZXMgJG9saWJzIgoreyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgbGliY3Vyc2VzLi4uIiA+JjUKK2VjaG8gIiRhc19tZTogY2hlY2tpbmcgbGliY3Vyc2VzLi4uIiA+JjY7fQorY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKK2ludAorbWFpbiAoKQoreworCisjaWZkZWYgX19ocHV4CitfX3NvcnJ5X2hwdXhfbGliY3Vyc2VzX2lzX3RvdGFsbHlfYnJva2VuX2luXzEwXzEwKCk7CisjZWxzZQordGdldGVudCgoY2hhciAqKTAsIChjaGFyICopMCk7CisjZW5kaWYKKworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CisgIChldmFsICRhY19saW5rKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIDoKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworTElCUz0iLWx0ZXJtY2FwICRvbGlicyIKK3sgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGxpYnRlcm1jYXAuLi4iID4mNQorZWNobyAiJGFzX21lOiBjaGVja2luZyBsaWJ0ZXJtY2FwLi4uIiA+JjY7fQorY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKK2ludAorbWFpbiAoKQorewordGdldGVudCgoY2hhciAqKTAsIChjaGFyICopMCk7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2xpbmspIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgOgorZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCitMSUJTPSItbHRlcm1saWIgJG9saWJzIgoreyBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgbGlidGVybWxpYi4uLiIgPiY1CitlY2hvICIkYXNfbWU6IGNoZWNraW5nIGxpYnRlcm1saWIuLi4iID4mNjt9CitjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKworaW50CittYWluICgpCit7Cit0Z2V0ZW50KChjaGFyICopMCwgKGNoYXIgKikwKTsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICA6CitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK0xJQlM9Ii1sbmN1cnNlcyAkb2xpYnMiCit7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBsaWJuY3Vyc2VzLi4uIiA+JjUKK2VjaG8gIiRhc19tZTogY2hlY2tpbmcgbGlibmN1cnNlcy4uLiIgPiY2O30KK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworCitpbnQKK21haW4gKCkKK3sKK3RnZXRlbnQoKGNoYXIgKikwLCAoY2hhciAqKTApOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CisgIChldmFsICRhY19saW5rKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIDoKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogISEhIG5vIHRnZXRlbnQgLSBubyBzY3JlZW4iID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogISEhIG5vIHRnZXRlbnQgLSBubyBzY3JlZW4iID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CisKK2lmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuCisgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBydW4gdGVzdCBwcm9ncmFtIHdoaWxlIGNyb3NzIGNvbXBpbGluZworU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IHJ1biB0ZXN0IHByb2dyYW0gd2hpbGUgY3Jvc3MgY29tcGlsaW5nCitTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorZWxzZQorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKworbWFpbigpCit7CisgZXhpdChzdHJjbXAodGdvdG8oIiVwMSVkIiwgMCwgMSksICIxIikgPyAwIDogMSk7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0JGFjX2V4ZWV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CisgIChldmFsICRhY19saW5rKSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBlY2hvICItIHlvdSB1c2UgdGhlIHRlcm1jYXAgZGF0YWJhc2UiIDE+JjYKKworZWxzZQorICBlY2hvICIkYXNfbWU6IHByb2dyYW0gZXhpdGVkIHdpdGggc3RhdHVzICRhY19zdGF0dXMiID4mNQorZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworKCBleGl0ICRhY19zdGF0dXMgKQorZWNobyAiLSB5b3UgdXNlIHRoZSB0ZXJtaW5mbyBkYXRhYmFzZSIgMT4mNgorIGNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisjZGVmaW5lIFRFUk1JTkZPIDEKK19BQ0VPRgorCitmaQorcm0gLWYgY29yZSAqLmNvcmUgZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCit7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBvc3BlZWQuLi4iID4mNQorZWNobyAiJGFzX21lOiBjaGVja2luZyBvc3BlZWQuLi4iID4mNjt9CitjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KK2V4dGVybiBzaG9ydCBvc3BlZWQ7CitpbnQKK21haW4gKCkKK3sKK29zcGVlZD01OworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CisgIChldmFsICRhY19saW5rKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIDoKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgTkVFRF9PU1BFRUQgMQorX0FDRU9GCisKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorCit7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgL2Rldi9wdGMuLi4iID4mNQorZWNobyAiJGFzX21lOiBjaGVja2luZyBmb3IgL2Rldi9wdGMuLi4iID4mNjt9CitpZiB0ZXN0IC1yIC9kZXYvcHRjOyB0aGVuCitjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorI2RlZmluZSBIQVZFX0RFVl9QVEMgMQorX0FDRU9GCisKK2ZpCisKK3sgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBTVlI0IHB0eXMuLi4iID4mNQorZWNobyAiJGFzX21lOiBjaGVja2luZyBmb3IgU1ZSNCBwdHlzLi4uIiA+JjY7fQorc3lzdnI0cHR5cz0KK2lmIHRlc3QgLWMgL2Rldi9wdG14IDsgdGhlbgorY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKK2ludAorbWFpbiAoKQoreworcHRzbmFtZSgwKTtncmFudHB0KDApO3VubG9ja3B0KDApOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CisgIChldmFsICRhY19saW5rKSAyPmNvbmZ0ZXN0LmVyMQorICBhY19zdGF0dXM9JD8KKyAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXIxID5jb25mdGVzdC5lcnIKKyAgcm0gLWYgY29uZnRlc3QuZXIxCisgIGNhdCBjb25mdGVzdC5lcnIgPiY1CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorCQkJIHx8IHRlc3QgISAtcyBjb25mdGVzdC5lcnInCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKwkgeyBhY190cnk9J3Rlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisjZGVmaW5lIEhBVkVfU1ZSNF9QVFlTIDEKK19BQ0VPRgorCitzeXN2cjRwdHlzPTEKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorCisKK2ZvciBhY19mdW5jIGluIGdldHB0CitkbworYXNfYWNfdmFyPWBlY2hvICJhY19jdl9mdW5jXyRhY19mdW5jIiB8ICRhc190cl9zaGAKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX2Z1bmMiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2Z1bmMuLi4gJEVDSE9fQyIgPiY2CitpZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX3ZhcitzZXR9XCIgPSBzZXQiOyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworLyogRGVmaW5lICRhY19mdW5jIHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgJGFjX2Z1bmMuCisgICBGb3IgZXhhbXBsZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KKyNkZWZpbmUgJGFjX2Z1bmMgaW5ub2N1b3VzXyRhY19mdW5jCisKKy8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKKyAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyICRhY19mdW5jICgpOyBiZWxvdy4KKyAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCisgICAgPGxpbWl0cy5oPiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KKworI2lmZGVmIF9fU1REQ19fCisjIGluY2x1ZGUgPGxpbWl0cy5oPgorI2Vsc2UKKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+CisjZW5kaWYKKworI3VuZGVmICRhY19mdW5jCisKKy8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIKK3sKKyNlbmRpZgorLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgorICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KK2NoYXIgJGFjX2Z1bmMgKCk7CisvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9ucyB3aGljaCBpdCBpbXBsZW1lbnRzCisgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFtZWQKKyAgICBzb21ldGhpbmcgc3RhcnRpbmcgd2l0aCBfXyBhbmQgdGhlIG5vcm1hbCBuYW1lIGlzIGFuIGFsaWFzLiAgKi8KKyNpZiBkZWZpbmVkIChfX3N0dWJfJGFjX2Z1bmMpIHx8IGRlZmluZWQgKF9fc3R1Yl9fXyRhY19mdW5jKQorY2hva2UgbWUKKyNlbHNlCitjaGFyICgqZikgKCkgPSAkYWNfZnVuYzsKKyNlbmRpZgorI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworaW50CittYWluICgpCit7CityZXR1cm4gZiAhPSAkYWNfZnVuYzsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBldmFsICIkYXNfYWNfdmFyPXllcyIKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworZXZhbCAiJGFzX2FjX3Zhcj1ubyIKK2ZpCitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisgICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IGBldmFsIGVjaG8gJyR7JyRhc19hY192YXInfSdgIiA+JjUKK2VjaG8gIiR7RUNIT19UfWBldmFsIGVjaG8gJyR7JyRhc19hY192YXInfSdgIiA+JjYKK2lmIHRlc3QgYGV2YWwgZWNobyAnJHsnJGFzX2FjX3Zhcid9J2AgPSB5ZXM7IHRoZW4KKyAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBgZWNobyAiSEFWRV8kYWNfZnVuYyIgfCAkYXNfdHJfY3BwYCAxCitfQUNFT0YKKworZmkKK2RvbmUKKworCitpZiB0ZXN0IC16ICIkc3lzdnI0cHR5cyI7IHRoZW4KKworZm9yIGFjX2Z1bmMgaW4gb3BlbnB0eQorZG8KK2FzX2FjX3Zhcj1gZWNobyAiYWNfY3ZfZnVuY18kYWNfZnVuYyIgfCAkYXNfdHJfc2hgCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY19mdW5jIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY19mdW5jLi4uICRFQ0hPX0MiID4mNgoraWYgZXZhbCAidGVzdCBcIlwkeyRhc19hY192YXIrc2V0fVwiID0gc2V0IjsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKy8qIERlZmluZSAkYWNfZnVuYyB0byBhbiBpbm5vY3VvdXMgdmFyaWFudCwgaW4gY2FzZSA8bGltaXRzLmg+IGRlY2xhcmVzICRhY19mdW5jLgorICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRpbWVvZmRheS4gICovCisjZGVmaW5lICRhY19mdW5jIGlubm9jdW91c18kYWNfZnVuYworCisvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCisgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciAkYWNfZnVuYyAoKTsgYmVsb3cuCisgICAgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBpZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQorICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCisKKyNpZmRlZiBfX1NURENfXworIyBpbmNsdWRlIDxsaW1pdHMuaD4KKyNlbHNlCisjIGluY2x1ZGUgPGFzc2VydC5oPgorI2VuZGlmCisKKyN1bmRlZiAkYWNfZnVuYworCisvKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiCit7CisjZW5kaWYKKy8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzIKKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCitjaGFyICRhY19mdW5jICgpOworLyogVGhlIEdOVSBDIGxpYnJhcnkgZGVmaW5lcyB0aGlzIGZvciBmdW5jdGlvbnMgd2hpY2ggaXQgaW1wbGVtZW50cworICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAgU29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCisgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCisjaWYgZGVmaW5lZCAoX19zdHViXyRhY19mdW5jKSB8fCBkZWZpbmVkIChfX3N0dWJfX18kYWNfZnVuYykKK2Nob2tlIG1lCisjZWxzZQorY2hhciAoKmYpICgpID0gJGFjX2Z1bmM7CisjZW5kaWYKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKK2ludAorbWFpbiAoKQoreworcmV0dXJuIGYgIT0gJGFjX2Z1bmM7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QkYWNfZXhlZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19saW5rXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2xpbmspIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQnCisgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CisgIChldmFsICRhY190cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKyAgZXZhbCAiJGFzX2FjX3Zhcj15ZXMiCitlbHNlCisgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKK2V2YWwgIiRhc19hY192YXI9bm8iCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBgZXZhbCBlY2hvICckeyckYXNfYWNfdmFyJ30nYCIgPiY1CitlY2hvICIke0VDSE9fVH1gZXZhbCBlY2hvICckeyckYXNfYWNfdmFyJ30nYCIgPiY2CitpZiB0ZXN0IGBldmFsIGVjaG8gJyR7JyRhc19hY192YXInfSdgID0geWVzOyB0aGVuCisgIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgYGVjaG8gIkhBVkVfJGFjX2Z1bmMiIHwgJGFzX3RyX2NwcGAgMQorX0FDRU9GCisKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBvcGVucHR5IGluIC1sdXRpbCIgPiY1CitlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciBvcGVucHR5IGluIC1sdXRpbC4uLiAkRUNIT19DIiA+JjYKK2lmIHRlc3QgIiR7YWNfY3ZfbGliX3V0aWxfb3BlbnB0eStzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCitMSUJTPSItbHV0aWwgICRMSUJTIgorY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKKy8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIKKyNlbmRpZgorLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMgorICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KK2NoYXIgb3BlbnB0eSAoKTsKK2ludAorbWFpbiAoKQoreworb3BlbnB0eSAoKTsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBhY19jdl9saWJfdXRpbF9vcGVucHR5PXllcworZWxzZQorICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCithY19jdl9saWJfdXRpbF9vcGVucHR5PW5vCitmaQorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorICAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKK2ZpCitlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfY3ZfbGliX3V0aWxfb3BlbnB0eSIgPiY1CitlY2hvICIke0VDSE9fVH0kYWNfY3ZfbGliX3V0aWxfb3BlbnB0eSIgPiY2CitpZiB0ZXN0ICRhY19jdl9saWJfdXRpbF9vcGVucHR5ID0geWVzOyB0aGVuCisgIGNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisjZGVmaW5lIEhBVkVfT1BFTlBUWSAxCitfQUNFT0YKKyBMSUJTPSIkTElCUyAtbHV0aWwiCitmaQorCitmaQorZG9uZQorCitmaQorCit7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgcHR5cmFuZ2VzLi4uIiA+JjUKK2VjaG8gIiRhc19tZTogY2hlY2tpbmcgZm9yIHB0eXJhbmdlcy4uLiIgPiY2O30KK2lmIHRlc3QgLWQgL2Rldi9wdHltIDsgdGhlbgorcGRpcj0nL2Rldi9wdHltJworZWxzZQorcGRpcj0nL2RldicKK2ZpCitjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpZmRlZiBNX1VOSVgKKyAgIHllczsKKyNlbmRpZgorCitfQUNFT0YKK2lmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKKyAgJEVHUkVQICJ5ZXMiID4vZGV2L251bGwgMj4mMTsgdGhlbgorICBwdHlzPWBlY2hvIC9kZXYvcHR5cD8/YAorZWxzZQorICBwdHlzPWBlY2hvICRwZGlyL3B0eT8/YAorZmkKK3JtIC1mIGNvbmZ0ZXN0KgorCitpZiB0ZXN0ICIkcHR5cyIgIT0gIiRwZGlyL3B0eT8/IiA7IHRoZW4KK3AwPWBlY2hvICRwdHlzIHwgdHIgJyAnICdcMDEyJyB8IHNlZCAtZSAncy9eLipcKC5cKS4kL1wxL2cnIHwgc29ydCAtdSB8IHRyIC1kICdcMDEyJ2AKK3AxPWBlY2hvICRwdHlzIHwgdHIgJyAnICdcMDEyJyB8IHNlZCAtZSAncy9eLipcKC5cKSQvXDEvZycgIHwgc29ydCAtdSB8IHRyIC1kICdcMDEyJ2AKK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgUFRZUkFOR0UwICIkcDAiCitfQUNFT0YKKworY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBQVFlSQU5HRTEgIiRwMSIKK19BQ0VPRgorCitmaQorCisKKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtcHR5LW1vZGUgb3IgLS13aXRob3V0LXB0eS1tb2RlIHdhcyBnaXZlbi4KK2lmIHRlc3QgIiR7d2l0aF9wdHlfbW9kZStzZXR9IiA9IHNldDsgdGhlbgorICB3aXRodmFsPSIkd2l0aF9wdHlfbW9kZSIKKyAgIHB0eW1vZGU9IiR7d2l0aHZhbH0iCitmaTsKKworIyBDaGVjayB3aGV0aGVyIC0td2l0aC1wdHktZ3JvdXAgb3IgLS13aXRob3V0LXB0eS1ncm91cCB3YXMgZ2l2ZW4uCitpZiB0ZXN0ICIke3dpdGhfcHR5X2dyb3VwK3NldH0iID0gc2V0OyB0aGVuCisgIHdpdGh2YWw9IiR3aXRoX3B0eV9ncm91cCIKKyAgIHB0eWdycD0iJHt3aXRodmFsfSIKK2ZpOwordGVzdCAtbiAiJHB0eW1vZGUiIHx8IHB0eW1vZGU9MDYyMAoraWYgdGVzdCAtbiAiJHB0eWdycCIgOyB0aGVuCitjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIFBUWU1PREUgJHB0eW1vZGUKK19BQ0VPRgorCitjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIFBUWUdST1VQICRwdHlncnAKK19BQ0VPRgorCitlbHNlCisKK3sgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGRlZmF1bHQgdHR5IHBlcm1pc3Npb25zL2dyb3VwLi4uIiA+JjUKK2VjaG8gIiRhc19tZTogY2hlY2tpbmcgZGVmYXVsdCB0dHkgcGVybWlzc2lvbnMvZ3JvdXAuLi4iID4mNjt9CitybSAtZiBjb25mdGVzdF9ncnAKK2lmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuCisgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBydW4gdGVzdCBwcm9ncmFtIHdoaWxlIGNyb3NzIGNvbXBpbGluZworU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IHJ1biB0ZXN0IHByb2dyYW0gd2hpbGUgY3Jvc3MgY29tcGlsaW5nCitTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorZWxzZQorICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGNvbmZkZWZzLmguICAqLworX0FDRU9GCitjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQKK2NhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKworI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KK21haW4oKQoreworICBzdHJ1Y3Qgc3RhdCBzYjsKKyAgY2hhciAqeCwqdHR5bmFtZSgpOworICBpbnQgb20sIG07CisgIEZJTEUgKmZwOworCisgIGlmICghKHggPSB0dHluYW1lKDApKSkgZXhpdCgxKTsKKyAgaWYgKHN0YXQoeCwgJnNiKSkgZXhpdCgxKTsKKyAgb20gPSBzYi5zdF9tb2RlOworICBpZiAob20gJiAwMDIpIGV4aXQoMCk7CisgIG0gPSBzeXN0ZW0oIm1lc2cgeSIpOworICBpZiAobSA9PSAtMSB8fCBtID09IDEyNykgZXhpdCgxKTsKKyAgaWYgKHN0YXQoeCwgJnNiKSkgZXhpdCgxKTsKKyAgbSA9IHNiLnN0X21vZGU7CisgIGlmIChjaG1vZCh4LCBvbSkpIGV4aXQoMSk7CisgIGlmIChtICYgMDAyKSBleGl0KDApOworICBpZiAoc2Iuc3RfZ2lkID09IGdldGdpZCgpKSBleGl0KDEpOworICBpZiAoIShmcD1mb3BlbigiY29uZnRlc3RfZ3JwIiwgInciKSkpCisgICAgZXhpdCgxKTsKKyAgZnByaW50ZihmcCwgIiVkXG4iLCBzYi5zdF9naWQpOworICBmY2xvc2UoZnApOworICBleGl0KDApOworfQorCitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0JGFjX2V4ZWV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CisgIChldmFsICRhY19saW5rKSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorCisgICAgaWYgdGVzdCAtZiBjb25mdGVzdF9ncnA7IHRoZW4KKwlwdHlncnA9YGNhdCBjb25mdGVzdF9ncnBgCisJZWNobyAiLSBwdHkgbW9kZTogJHB0eW1vZGUsIGdyb3VwOiAkcHR5Z3JwIiAxPiY2CisKKwljYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIFBUWU1PREUgJHB0eW1vZGUKK19BQ0VPRgorCisJY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBQVFlHUk9VUCAkcHR5Z3JwCitfQUNFT0YKKworICAgIGVsc2UKKwllY2hvICItIHB0eXMgYXJlIHdvcmxkIGFjY2Vzc2FibGUiIDE+JjYKKworICAgIGZpCisKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAkYWNfc3RhdHVzIiA+JjUKK2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1CitzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CisKKyggZXhpdCAkYWNfc3RhdHVzICkKKworICAgIFdSSVRFUEFUSD0nJworICAgIFhURVJNUEFUSD0nJworICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAid3JpdGUiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorc2V0IGR1bW15IHdyaXRlOyBhY193b3JkPSQyCitlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICRFQ0hPX0MiID4mNgoraWYgdGVzdCAiJHthY19jdl9wYXRoX1dSSVRFUEFUSCtzZXR9IiA9IHNldDsgdGhlbgorICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorZWxzZQorICBjYXNlICRXUklURVBBVEggaW4KKyAgW1xcL10qIHwgPzpbXFwvXSopCisgIGFjX2N2X3BhdGhfV1JJVEVQQVRIPSIkV1JJVEVQQVRIIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KKyAgOzsKKyAgKikKKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorZm9yIGFzX2RpciBpbiAkUEFUSAorZG8KKyAgSUZTPSRhc19zYXZlX0lGUworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKyAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IHRoZW4KKyAgICBhY19jdl9wYXRoX1dSSVRFUEFUSD0iJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIKKyAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisgICAgYnJlYWsgMgorICBmaQorZG9uZQorZG9uZQorCisgIDs7Citlc2FjCitmaQorV1JJVEVQQVRIPSRhY19jdl9wYXRoX1dSSVRFUEFUSAorCitpZiB0ZXN0IC1uICIkV1JJVEVQQVRIIjsgdGhlbgorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkV1JJVEVQQVRIIiA+JjUKK2VjaG8gIiR7RUNIT19UfSRXUklURVBBVEgiID4mNgorZWxzZQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CitlY2hvICIke0VDSE9fVH1ubyIgPiY2CitmaQorCisgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJ4dGVybSIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCitzZXQgZHVtbXkgeHRlcm07IGFjX3dvcmQ9JDIKK2VjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gJEVDSE9fQyIgPiY2CitpZiB0ZXN0ICIke2FjX2N2X3BhdGhfWFRFUk1QQVRIK3NldH0iID0gc2V0OyB0aGVuCisgIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkgJEVDSE9fQyIgPiY2CitlbHNlCisgIGNhc2UgJFhURVJNUEFUSCBpbgorICBbXFwvXSogfCA/OltcXC9dKikKKyAgYWNfY3ZfcGF0aF9YVEVSTVBBVEg9IiRYVEVSTVBBVEgiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgorICA7OworICAqKQorICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCitmb3IgYXNfZGlyIGluICRQQVRICitkbworICBJRlM9JGFzX3NhdmVfSUZTCisgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgorICAgIGFjX2N2X3BhdGhfWFRFUk1QQVRIPSIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IgorICAgIGVjaG8gIiRhc19tZTokTElORU5POiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKyAgICBicmVhayAyCisgIGZpCitkb25lCitkb25lCisKKyAgOzsKK2VzYWMKK2ZpCitYVEVSTVBBVEg9JGFjX2N2X3BhdGhfWFRFUk1QQVRICisKK2lmIHRlc3QgLW4gIiRYVEVSTVBBVEgiOyB0aGVuCisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRYVEVSTVBBVEgiID4mNQorZWNobyAiJHtFQ0hPX1R9JFhURVJNUEFUSCIgPiY2CitlbHNlCisgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKK2VjaG8gIiR7RUNIT19UfW5vIiA+JjYKK2ZpCisKKyAgICBmb3VuZD0KKyAgICBpZiB0ZXN0IC1uICIkV1JJVEVQQVRIJFhURVJNUEFUSCI7IHRoZW4KKyAgICAgIGZpbmRmb2xsb3c9CisgICAgICBsc2ZvbGxvdz0KKyAgICAgIGZvdW5kPWBmaW5kICRXUklURVBBVEggJFhURVJNUEFUSCAtZm9sbG93IC1wcmludCAyPi9kZXYvbnVsbGAKKyAgICAgIGlmIHRlc3QgLW4gIiRmb3VuZCI7IHRoZW4KKwlmaW5kZm9sbG93PS1mb2xsb3cKKwlsc2ZvbGxvdz1MCisgICAgICBmaQorICAgICAgaWYgdGVzdCAtbiAiJFhURVJNUEFUSCI7IHRoZW4KKwlwdHlncnBuPWBscyAtbCRsc2ZvbGxvdyAkWFRFUk1QQVRIIHwgc2VkIC1uIC1lIDFwIHwgJEFXSyAne3ByaW50ICQ0fSdgCisJaWYgdGVzdCB0dHkgIT0gIiRwdHlncnBuIjsgdGhlbgorCSAgWFRFUk1QQVRIPQorCWZpCisgICAgICBmaQorICAgIGZpCisgICAgaWYgdGVzdCAtbiAiJFdSSVRFUEFUSCRYVEVSTVBBVEgiOyB0aGVuCisgICAgICBmb3VuZD1gZmluZCAkV1JJVEVQQVRIICRYVEVSTVBBVEggJGZpbmRmb2xsb3cgLXBlcm0gLTIwMDAgLXByaW50YAorICAgICAgaWYgdGVzdCAtbiAiJGZvdW5kIjsgdGhlbgorCXB0eWdycD1gbHMgLWxuJGxzZm9sbG93ICRmb3VuZCB8IHNlZCAtbiAtZSAxcCB8ICRBV0sgJ3twcmludCAkNH0nYAorCWVjaG8gIi0gcHR5IG1vZGU6ICRwdHltb2RlLCBncm91cDogJHB0eWdycCIgMT4mNgorCisJY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBQVFlNT0RFICRwdHltb2RlCitfQUNFT0YKKworCWNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgUFRZR1JPVVAgJHB0eWdycAorX0FDRU9GCisKKyAgICAgIGVsc2UKKwllY2hvICItIHB0eXMgYXJlIHdvcmxkIGFjY2Vzc2FibGUiIDE+JjYKKworICAgICAgZmkKKyAgICBlbHNlCisgICAgICBlY2hvICItIGNhbid0IGRldGVybWluZSAtIGFzc3VtZSBwdHlzIGFyZSB3b3JsZCBhY2Nlc3NhYmxlIiAxPiY2CisKKyAgICBmaQorCisKK2ZpCitybSAtZiBjb3JlICouY29yZSBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK3JtIC1mIGNvbmZ0ZXN0X2dycAorZmkKKworaWYgdGVzdCAtbiAiJHBvc2l4IiA7IHRoZW4KKworZWNobyAiYXNzdW1pbmcgcG9zaXggc2lnbmFsIGRlZmluaXRpb24iIDE+JjYKKworY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKyNkZWZpbmUgU0lHVk9JRCAxCitfQUNFT0YKKworCitlbHNlCisKK3sgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHJldHVybiB0eXBlIG9mIHNpZ25hbCBoYW5kbGVycy4uLiIgPiY1CitlY2hvICIkYXNfbWU6IGNoZWNraW5nIHJldHVybiB0eXBlIG9mIHNpZ25hbCBoYW5kbGVycy4uLiIgPiY2O30KK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2lmZGVmIHNpZ25hbAorI3VuZGVmIHNpZ25hbAorI2VuZGlmCitleHRlcm4gdm9pZCAoKnNpZ25hbCAoKSkgKCk7CitpbnQKK21haW4gKCkKK3sKK2ludCBpOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0CitpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCisgIGFjX3N0YXR1cz0kPworICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorICBybSAtZiBjb25mdGVzdC5lcjEKKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciCisJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfSAmJgorCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9OyB0aGVuCisgIGNhdCA+PmNvbmZkZWZzLmggPDxcX0FDRU9GCisjZGVmaW5lIFNJR1ZPSUQgMQorX0FDRU9GCisKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK3sgZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIHNpZ3NldC4uLiIgPiY1CitlY2hvICIkYXNfbWU6IGNoZWNraW5nIHNpZ3NldC4uLiIgPiY2O30KK2NhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogY29uZmRlZnMuaC4gICovCitfQUNFT0YKK2NhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAorY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLyogZW5kIGNvbmZkZWZzLmguICAqLworCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisKK2ludAorbWFpbiAoKQoreworCisjaWZkZWYgU0lHVk9JRAorc2lnc2V0KDAsICh2b2lkICgqKSgpKTApOworI2Vsc2UKK3NpZ3NldCgwLCAoaW50ICgqKSgpKTApOworI2VuZGlmCisKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgorcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdCRhY19leGVleHQKK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2xpbmtcIiIpID4mNQorICAoZXZhbCAkYWNfbGluaykgMj5jb25mdGVzdC5lcjEKKyAgYWNfc3RhdHVzPSQ/CisgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCisgIHJtIC1mIGNvbmZ0ZXN0LmVyMQorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorICAoZXZhbCAkYWNfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCisJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICBjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorI2RlZmluZSBVU0VTSUdTRVQgMQorX0FDRU9GCisKK2Vsc2UKKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKKworZmkKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKyAgICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Cit7IGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBzaWduYWwgaW1wbGVtZW50YXRpb24uLi4iID4mNQorZWNobyAiJGFzX21lOiBjaGVja2luZyBzaWduYWwgaW1wbGVtZW50YXRpb24uLi4iID4mNjt9CitpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbgorICB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgcnVuIHRlc3QgcHJvZ3JhbSB3aGlsZSBjcm9zcyBjb21waWxpbmcKK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBydW4gdGVzdCBwcm9ncmFtIHdoaWxlIGNyb3NzIGNvbXBpbGluZworU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KK2Vsc2UKKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBjb25mZGVmcy5oLiAgKi8KK19BQ0VPRgorY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CitjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKworI2lmbmRlZiBTSUdDTEQKKyNkZWZpbmUgU0lHQ0xEIFNJR0NITEQKKyNlbmRpZgorI2lmZGVmIFVTRVNJR1NFVAorI2RlZmluZSBzaWduYWwgc2lnc2V0CisjZW5kaWYKKworaW50IGdvdDsKKworI2lmZGVmIFNJR1ZPSUQKK3ZvaWQKKyNlbmRpZgoraGFuZCgpCit7CisgIGdvdCsrOworfQorCittYWluKCkKK3sKKyAgLyogb24gaHB1eCB3ZSB1c2Ugc2lndmVjIHRvIGdldCBic2Qgc2lnbmFscyAqLworI2lmZGVmIF9faHB1eAorICAodm9pZClzaWduYWwoU0lHQ0xELCBoYW5kKTsKKyAga2lsbChnZXRwaWQoKSwgU0lHQ0xEKTsKKyAga2lsbChnZXRwaWQoKSwgU0lHQ0xEKTsKKyAgaWYgKGdvdCA8IDIpCisgICAgZXhpdCgxKTsKKyNlbmRpZgorICBleGl0KDApOworfQorCitfQUNFT0YKK3JtIC1mIGNvbmZ0ZXN0JGFjX2V4ZWV4dAoraWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfbGlua1wiIikgPiY1CisgIChldmFsICRhY19saW5rKSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9ICYmIHsgYWNfdHJ5PScuL2NvbmZ0ZXN0JGFjX2V4ZWV4dCcKKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorICA6CitlbHNlCisgIGVjaG8gIiRhc19tZTogcHJvZ3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgJGFjX3N0YXR1cyIgPiY1CitlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQorCisoIGV4aXQgJGFjX3N0YXR1cyApCitjYXQgPj5jb25mZGVmcy5oIDw8XF9BQ0VPRgorI2RlZmluZSBTWVNWU0lHUyAxCitfQUNFT0YKKworZmkKK3JtIC1mIGNvcmUgKi5jb3JlIGdtb24ub3V0IGJiLm91dCBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorCitmaQorCisgICAgICAgICAgYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVzIE1ha2VmaWxlIgorY2F0ID5jb25mY2FjaGUgPDxcX0FDRU9GCisjIFRoaXMgZmlsZSBpcyBhIHNoZWxsIHNjcmlwdCB0aGF0IGNhY2hlcyB0aGUgcmVzdWx0cyBvZiBjb25maWd1cmUKKyMgdGVzdHMgcnVuIG9uIHRoaXMgc3lzdGVtIHNvIHRoZXkgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuIGNvbmZpZ3VyZQorIyBzY3JpcHRzIGFuZCBjb25maWd1cmUgcnVucywgc2VlIGNvbmZpZ3VyZSdzIG9wdGlvbiAtLWNvbmZpZy1jYWNoZS4KKyMgSXQgaXMgbm90IHVzZWZ1bCBvbiBvdGhlciBzeXN0ZW1zLiAgSWYgaXQgY29udGFpbnMgcmVzdWx0cyB5b3UgZG9uJ3QKKyMgd2FudCB0byBrZWVwLCB5b3UgbWF5IHJlbW92ZSBvciBlZGl0IGl0LgorIworIyBjb25maWcuc3RhdHVzIG9ubHkgcGF5cyBhdHRlbnRpb24gdG8gdGhlIGNhY2hlIGZpbGUgaWYgeW91IGdpdmUgaXQKKyMgdGhlIC0tcmVjaGVjayBvcHRpb24gdG8gcmVydW4gY29uZmlndXJlLgorIworIyBgYWNfY3ZfZW52X2ZvbycgdmFyaWFibGVzIChzZXQgb3IgdW5zZXQpIHdpbGwgYmUgb3ZlcnJpZGRlbiB3aGVuCisjIGxvYWRpbmcgdGhpcyBmaWxlLCBvdGhlciAqdW5zZXQqIGBhY19jdl9mb28nIHdpbGwgYmUgYXNzaWduZWQgdGhlCisjIGZvbGxvd2luZyB2YWx1ZXMuCisKK19BQ0VPRgorCisjIFRoZSBmb2xsb3dpbmcgd2F5IG9mIHdyaXRpbmcgdGhlIGNhY2hlIG1pc2hhbmRsZXMgbmV3bGluZXMgaW4gdmFsdWVzLAorIyBidXQgd2Uga25vdyBvZiBubyB3b3JrYXJvdW5kIHRoYXQgaXMgc2ltcGxlLCBwb3J0YWJsZSwgYW5kIGVmZmljaWVudC4KKyMgU28sIGRvbid0IHB1dCBuZXdsaW5lcyBpbiBjYWNoZSB2YXJpYWJsZXMnIHZhbHVlcy4KKyMgVWx0cml4IHNoIHNldCB3cml0ZXMgdG8gc3RkZXJyIGFuZCBjYW4ndCBiZSByZWRpcmVjdGVkIGRpcmVjdGx5LAorIyBhbmQgc2V0cyB0aGUgaGlnaCBiaXQgaW4gdGhlIGNhY2hlIGZpbGUgdW5sZXNzIHdlIGFzc2lnbiB0byB0aGUgdmFycy4KK3sKKyAgKHNldCkgMj4mMSB8CisgICAgY2FzZSBgKGFjX3NwYWNlPScgJzsgc2V0IHwgZ3JlcCBhY19zcGFjZSkgMj4mMWAgaW4KKyAgICAqYWNfc3BhY2U9XCAqKQorICAgICAgIyBgc2V0JyBkb2VzIG5vdCBxdW90ZSBjb3JyZWN0bHksIHNvIGFkZCBxdW90ZXMgKGRvdWJsZS1xdW90ZQorICAgICAgIyBzdWJzdGl0dXRpb24gdHVybnMgXFxcXCBpbnRvIFxcLCBhbmQgc2VkIHR1cm5zIFxcIGludG8gXCkuCisgICAgICBzZWQgLW4gXAorCSJzLycvJ1xcXFwnJy9nOworCSAgcy9eXFwoW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4qXFwpL1xcMT0nXFwyJy9wIgorICAgICAgOzsKKyAgICAqKQorICAgICAgIyBgc2V0JyBxdW90ZXMgY29ycmVjdGx5IGFzIHJlcXVpcmVkIGJ5IFBPU0lYLCBzbyBkbyBub3QgYWRkIHF1b3Rlcy4KKyAgICAgIHNlZCAtbiBcCisJInMvXlxcKFtfJGFzX2NyX2FsbnVtXSpfY3ZfW18kYXNfY3JfYWxudW1dKlxcKT1cXCguKlxcKS9cXDE9XFwyL3AiCisgICAgICA7OworICAgIGVzYWM7Cit9IHwKKyAgc2VkICcKKyAgICAgdCBjbGVhcgorICAgICA6IGNsZWFyCisgICAgIHMvXlwoW149XSpcKT1cKC4qW3t9XS4qXCkkL3Rlc3QgIiR7XDErc2V0fSIgPSBzZXQgfHwgJi8KKyAgICAgdCBlbmQKKyAgICAgL15hY19jdl9lbnYvIXMvXlwoW149XSpcKT1cKC4qXCkkL1wxPSR7XDE9XDJ9LworICAgICA6IGVuZCcgPj5jb25mY2FjaGUKK2lmIGRpZmYgJGNhY2hlX2ZpbGUgY29uZmNhY2hlID4vZGV2L251bGwgMj4mMTsgdGhlbiA6OyBlbHNlCisgIGlmIHRlc3QgLXcgJGNhY2hlX2ZpbGU7IHRoZW4KKyAgICB0ZXN0ICJ4JGNhY2hlX2ZpbGUiICE9ICJ4L2Rldi9udWxsIiAmJiBlY2hvICJ1cGRhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIKKyAgICBjYXQgY29uZmNhY2hlID4kY2FjaGVfZmlsZQorICBlbHNlCisgICAgZWNobyAibm90IHVwZGF0aW5nIHVud3JpdGFibGUgY2FjaGUgJGNhY2hlX2ZpbGUiCisgIGZpCitmaQorcm0gLWYgY29uZmNhY2hlCisKK3Rlc3QgIngkcHJlZml4IiA9IHhOT05FICYmIHByZWZpeD0kYWNfZGVmYXVsdF9wcmVmaXgKKyMgTGV0IG1ha2UgZXhwYW5kIGV4ZWNfcHJlZml4LgordGVzdCAieCRleGVjX3ByZWZpeCIgPSB4Tk9ORSAmJiBleGVjX3ByZWZpeD0nJHtwcmVmaXh9JworCisjIFZQQVRIIG1heSBjYXVzZSB0cm91YmxlIHdpdGggc29tZSBtYWtlcywgc28gd2UgcmVtb3ZlICQoc3JjZGlyKSwKKyMgJHtzcmNkaXJ9IGFuZCBAc3JjZGlyQCBmcm9tIFZQQVRIIGlmIHNyY2RpciBpcyAiLiIsIHN0cmlwIGxlYWRpbmcgYW5kCisjIHRyYWlsaW5nIGNvbG9ucyBhbmQgdGhlbiByZW1vdmUgdGhlIHdob2xlIGxpbmUgaWYgVlBBVEggYmVjb21lcyBlbXB0eQorIyAoYWN0dWFsbHkgd2UgbGVhdmUgYW4gZW1wdHkgbGluZSB0byBwcmVzZXJ2ZSBsaW5lIG51bWJlcnMpLgoraWYgdGVzdCAieCRzcmNkaXIiID0geC47IHRoZW4KKyAgYWNfdnBzdWI9Jy9eWwkgXSpWUEFUSFsJIF0qPS97CitzLzoqXCQoc3JjZGlyKToqLzovOworcy86Klwke3NyY2Rpcn06Ki86LzsKK3MvOipAc3JjZGlyQDoqLzovOworcy9eXChbXj1dKj1bCSBdKlwpOiovXDEvOworcy86KiQvLzsKK3MvXltePV0qPVsJIF0qJC8vOworfScKK2ZpCisKK0RFRlM9LURIQVZFX0NPTkZJR19ICisKK2FjX2xpYm9ianM9CithY19sdGxpYm9ianM9Citmb3IgYWNfaSBpbiA6ICRMSUJPQkpTOyBkbyB0ZXN0ICJ4JGFjX2kiID0geDogJiYgY29udGludWUKKyAgIyAxLiBSZW1vdmUgdGhlIGV4dGVuc2lvbiwgYW5kICRVIGlmIGFscmVhZHkgaW5zdGFsbGVkLgorICBhY19pPWBlY2hvICIkYWNfaSIgfAorCSBzZWQgJ3MvXCRVXC4vLi87cy9cLm8kLy87cy9cLm9iaiQvLydgCisgICMgMi4gQWRkIHRoZW0uCisgIGFjX2xpYm9ianM9IiRhY19saWJvYmpzICRhY19pXCRVLiRhY19vYmpleHQiCisgIGFjX2x0bGlib2Jqcz0iJGFjX2x0bGlib2JqcyAkYWNfaSInJFUubG8nCitkb25lCitMSUJPQkpTPSRhY19saWJvYmpzCisKK0xUTElCT0JKUz0kYWNfbHRsaWJvYmpzCisKKworCis6ICR7Q09ORklHX1NUQVRVUz0uL2NvbmZpZy5zdGF0dXN9CithY19jbGVhbl9maWxlc19zYXZlPSRhY19jbGVhbl9maWxlcworYWNfY2xlYW5fZmlsZXM9IiRhY19jbGVhbl9maWxlcyAkQ09ORklHX1NUQVRVUyIKK3sgZWNobyAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5nICRDT05GSUdfU1RBVFVTIiA+JjUKK2VjaG8gIiRhc19tZTogY3JlYXRpbmcgJENPTkZJR19TVEFUVVMiID4mNjt9CitjYXQgPiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GCisjISAkU0hFTEwKKyMgR2VuZXJhdGVkIGJ5ICRhc19tZS4KKyMgUnVuIHRoaXMgZmlsZSB0byByZWNyZWF0ZSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLgorIyBDb21waWxlciBvdXRwdXQgcHJvZHVjZWQgYnkgY29uZmlndXJlLCB1c2VmdWwgZm9yIGRlYnVnZ2luZworIyBjb25maWd1cmUsIGlzIGluIGNvbmZpZy5sb2cgaWYgaXQgZXhpc3RzLgorCitkZWJ1Zz1mYWxzZQorYWNfY3NfcmVjaGVjaz1mYWxzZQorYWNfY3Nfc2lsZW50PWZhbHNlCitTSEVMTD1cJHtDT05GSUdfU0hFTEwtJFNIRUxMfQorX0FDRU9GCisKK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgorIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCisjIyBNNHNoIEluaXRpYWxpemF0aW9uLiAgIyMKKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworCisjIEJlIEJvdXJuZSBjb21wYXRpYmxlCitpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iICYmIChlbXVsYXRlIHNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgZW11bGF0ZSBzaAorICBOVUxMQ01EPToKKyAgIyBac2ggMy54IGFuZCA0LnggcGVyZm9ybXMgd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAorICAjIGlzIGNvbnRyYXJ5IHRvIG91ciB1c2FnZS4gIERpc2FibGUgdGhpcyBmZWF0dXJlLgorICBhbGlhcyAtZyAnJHsxKyIkQCJ9Jz0nIiRAIicKK2VsaWYgdGVzdCAtbiAiJHtCQVNIX1ZFUlNJT04rc2V0fSIgJiYgKHNldCAtbyBwb3NpeCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgIHNldCAtbyBwb3NpeAorZmkKK0RVQUxDQVNFPTE7IGV4cG9ydCBEVUFMQ0FTRSAjIGZvciBNS1Mgc2gKKworIyBTdXBwb3J0IHVuc2V0IHdoZW4gcG9zc2libGUuCitpZiAoIChNQUlMPTYwOyB1bnNldCBNQUlMKSB8fCBleGl0KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgYXNfdW5zZXQ9dW5zZXQKK2Vsc2UKKyAgYXNfdW5zZXQ9ZmFsc2UKK2ZpCisKKworIyBXb3JrIGFyb3VuZCBidWdzIGluIHByZS0zLjAgVVdJTiBrc2guCiskYXNfdW5zZXQgRU5WIE1BSUwgTUFJTFBBVEgKK1BTMT0nJCAnCitQUzI9Jz4gJworUFM0PScrICcKKworIyBOTFMgbnVpc2FuY2VzLgorZm9yIGFzX3ZhciBpbiBcCisgIExBTkcgTEFOR1VBR0UgTENfQUREUkVTUyBMQ19BTEwgTENfQ09MTEFURSBMQ19DVFlQRSBMQ19JREVOVElGSUNBVElPTiBcCisgIExDX01FQVNVUkVNRU5UIExDX01FU1NBR0VTIExDX01PTkVUQVJZIExDX05BTUUgTENfTlVNRVJJQyBMQ19QQVBFUiBcCisgIExDX1RFTEVQSE9ORSBMQ19USU1FCitkbworICBpZiAoc2V0ICt4OyB0ZXN0IC16ICJgKGV2YWwgJGFzX3Zhcj1DOyBleHBvcnQgJGFzX3ZhcikgMj4mMWAiKTsgdGhlbgorICAgIGV2YWwgJGFzX3Zhcj1DOyBleHBvcnQgJGFzX3ZhcgorICBlbHNlCisgICAgJGFzX3Vuc2V0ICRhc192YXIKKyAgZmkKK2RvbmUKKworIyBSZXF1aXJlZCB0byB1c2UgYmFzZW5hbWUuCitpZiBleHByIGEgOiAnXChhXCknID4vZGV2L251bGwgMj4mMTsgdGhlbgorICBhc19leHByPWV4cHIKK2Vsc2UKKyAgYXNfZXhwcj1mYWxzZQorZmkKKworaWYgKGJhc2VuYW1lIC8pID4vZGV2L251bGwgMj4mMSAmJiB0ZXN0ICJYYGJhc2VuYW1lIC8gMj4mMWAiID0gIlgvIjsgdGhlbgorICBhc19iYXNlbmFtZT1iYXNlbmFtZQorZWxzZQorICBhc19iYXNlbmFtZT1mYWxzZQorZmkKKworCisjIE5hbWUgb2YgdGhlIGV4ZWN1dGFibGUuCithc19tZT1gJGFzX2Jhc2VuYW1lICIkMCIgfHwKKyRhc19leHByIFgvIiQwIiA6ICcuKi9cKFteL11bXi9dKlwpLyokJyBcfCBcCisJIFgiJDAiIDogJ1hcKC8vXCkkJyBcfCBcCisJIFgiJDAiIDogJ1hcKC9cKSQnIFx8IFwKKwkgLiAgICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8CitlY2hvIFgvIiQwIiB8CisgICAgc2VkICcvXi4qXC9cKFteL11bXi9dKlwpXC8qJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcL1woXC9cL1wpJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcL1woXC9cKS4qL3sgcy8vXDEvOyBxOyB9CisgIAkgIHMvLiovLi87IHEnYAorCisKKyMgUEFUSCBuZWVkcyBDUiwgYW5kIExJTkVOTyBuZWVkcyBDUiBhbmQgUEFUSC4KKyMgQXZvaWQgZGVwZW5kaW5nIHVwb24gQ2hhcmFjdGVyIFJhbmdlcy4KK2FzX2NyX2xldHRlcnM9J2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JworYXNfY3JfTEVUVEVSUz0nQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonCithc19jcl9MZXR0ZXJzPSRhc19jcl9sZXR0ZXJzJGFzX2NyX0xFVFRFUlMKK2FzX2NyX2RpZ2l0cz0nMDEyMzQ1Njc4OScKK2FzX2NyX2FsbnVtPSRhc19jcl9MZXR0ZXJzJGFzX2NyX2RpZ2l0cworCisjIFRoZSB1c2VyIGlzIGFsd2F5cyByaWdodC4KK2lmIHRlc3QgIiR7UEFUSF9TRVBBUkFUT1Irc2V0fSIgIT0gc2V0OyB0aGVuCisgIGVjaG8gIiMhIC9iaW4vc2giID5jb25mJCQuc2gKKyAgZWNobyAgImV4aXQgMCIgICA+PmNvbmYkJC5zaAorICBjaG1vZCAreCBjb25mJCQuc2gKKyAgaWYgKFBBVEg9Ii9ub25leGlzdGVudDsuIjsgY29uZiQkLnNoKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgICBQQVRIX1NFUEFSQVRPUj0nOycKKyAgZWxzZQorICAgIFBBVEhfU0VQQVJBVE9SPToKKyAgZmkKKyAgcm0gLWYgY29uZiQkLnNoCitmaQorCisKKyAgYXNfbGluZW5vXzE9JExJTkVOTworICBhc19saW5lbm9fMj0kTElORU5PCisgIGFzX2xpbmVub18zPWAoZXhwciAkYXNfbGluZW5vXzEgKyAxKSAyPi9kZXYvbnVsbGAKKyAgdGVzdCAieCRhc19saW5lbm9fMSIgIT0gIngkYXNfbGluZW5vXzIiICYmCisgIHRlc3QgIngkYXNfbGluZW5vXzMiICA9ICJ4JGFzX2xpbmVub18yIiAgfHwgeworICAjIEZpbmQgd2hvIHdlIGFyZS4gIExvb2sgaW4gdGhlIHBhdGggaWYgd2UgY29udGFpbiBubyBwYXRoIGF0IGFsbAorICAjIHJlbGF0aXZlIG9yIG5vdC4KKyAgY2FzZSAkMCBpbgorICAgICpbXFwvXSogKSBhc19teXNlbGY9JDAgOzsKKyAgICAqKSBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCitmb3IgYXNfZGlyIGluICRQQVRICitkbworICBJRlM9JGFzX3NhdmVfSUZTCisgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisgIHRlc3QgLXIgIiRhc19kaXIvJDAiICYmIGFzX215c2VsZj0kYXNfZGlyLyQwICYmIGJyZWFrCitkb25lCisKKyAgICAgICA7OworICBlc2FjCisgICMgV2UgZGlkIG5vdCBmaW5kIG91cnNlbHZlcywgbW9zdCBwcm9iYWJseSB3ZSB3ZXJlIHJ1biBhcyBgc2ggQ09NTUFORCcKKyAgIyBpbiB3aGljaCBjYXNlIHdlIGFyZSBub3QgdG8gYmUgZm91bmQgaW4gdGhlIHBhdGguCisgIGlmIHRlc3QgIngkYXNfbXlzZWxmIiA9IHg7IHRoZW4KKyAgICBhc19teXNlbGY9JDAKKyAgZmkKKyAgaWYgdGVzdCAhIC1mICIkYXNfbXlzZWxmIjsgdGhlbgorICAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIG15c2VsZjsgcmVydW4gd2l0aCBhbiBhYnNvbHV0ZSBwYXRoIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIG15c2VsZjsgcmVydW4gd2l0aCBhbiBhYnNvbHV0ZSBwYXRoIiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisgIGZpCisgIGNhc2UgJENPTkZJR19TSEVMTCBpbgorICAnJykKKyAgICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCitmb3IgYXNfZGlyIGluIC9iaW4kUEFUSF9TRVBBUkFUT1IvdXNyL2JpbiRQQVRIX1NFUEFSQVRPUiRQQVRICitkbworICBJRlM9JGFzX3NhdmVfSUZTCisgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisgIGZvciBhc19iYXNlIGluIHNoIGJhc2gga3NoIHNoNTsgZG8KKwkgY2FzZSAkYXNfZGlyIGluCisJIC8qKQorCSAgIGlmICgiJGFzX2Rpci8kYXNfYmFzZSIgLWMgJworICBhc19saW5lbm9fMT0kTElORU5PCisgIGFzX2xpbmVub18yPSRMSU5FTk8KKyAgYXNfbGluZW5vXzM9YChleHByICRhc19saW5lbm9fMSArIDEpIDI+L2Rldi9udWxsYAorICB0ZXN0ICJ4JGFzX2xpbmVub18xIiAhPSAieCRhc19saW5lbm9fMiIgJiYKKyAgdGVzdCAieCRhc19saW5lbm9fMyIgID0gIngkYXNfbGluZW5vXzIiICcpIDI+L2Rldi9udWxsOyB0aGVuCisJICAgICAkYXNfdW5zZXQgQkFTSF9FTlYgfHwgdGVzdCAiJHtCQVNIX0VOVitzZXR9IiAhPSBzZXQgfHwgeyBCQVNIX0VOVj07IGV4cG9ydCBCQVNIX0VOVjsgfQorCSAgICAgJGFzX3Vuc2V0IEVOViB8fCB0ZXN0ICIke0VOVitzZXR9IiAhPSBzZXQgfHwgeyBFTlY9OyBleHBvcnQgRU5WOyB9CisJICAgICBDT05GSUdfU0hFTEw9JGFzX2Rpci8kYXNfYmFzZQorCSAgICAgZXhwb3J0IENPTkZJR19TSEVMTAorCSAgICAgZXhlYyAiJENPTkZJR19TSEVMTCIgIiQwIiAkezErIiRAIn0KKwkgICBmaTs7CisJIGVzYWMKKyAgICAgICBkb25lCitkb25lCis7OworICBlc2FjCisKKyAgIyBDcmVhdGUgJGFzX21lLmxpbmVubyBhcyBhIGNvcHkgb2YgJGFzX215c2VsZiwgYnV0IHdpdGggJExJTkVOTworICAjIHVuaWZvcm1seSByZXBsYWNlZCBieSB0aGUgbGluZSBudW1iZXIuICBUaGUgZmlyc3QgJ3NlZCcgaW5zZXJ0cyBhCisgICMgbGluZS1udW1iZXIgbGluZSBiZWZvcmUgZWFjaCBsaW5lOyB0aGUgc2Vjb25kICdzZWQnIGRvZXMgdGhlIHJlYWwKKyAgIyB3b3JrLiAgVGhlIHNlY29uZCBzY3JpcHQgdXNlcyAnTicgdG8gcGFpciBlYWNoIGxpbmUtbnVtYmVyIGxpbmUKKyAgIyB3aXRoIHRoZSBudW1iZXJlZCBsaW5lLCBhbmQgYXBwZW5kcyB0cmFpbGluZyAnLScgZHVyaW5nCisgICMgc3Vic3RpdHV0aW9uIHNvIHRoYXQgJExJTkVOTyBpcyBub3QgYSBzcGVjaWFsIGNhc2UgYXQgbGluZSBlbmQuCisgICMgKFJhamEgUiBIYXJpbmF0aCBzdWdnZXN0ZWQgc2VkICc9JywgYW5kIFBhdWwgRWdnZXJ0IHdyb3RlIHRoZQorICAjIHNlY29uZCAnc2VkJyBzY3JpcHQuICBCbGFtZSBMZWUgRS4gTWNNYWhvbiBmb3Igc2VkJ3Mgc3ludGF4LiAgOi0pCisgIHNlZCAnPScgPCRhc19teXNlbGYgfAorICAgIHNlZCAnCisgICAgICBOCisgICAgICBzLCQsLSwKKyAgICAgIDogbG9vcAorICAgICAgcyxeXChbJyRhc19jcl9kaWdpdHMnXSpcKVwoLipcKVskXUxJTkVOT1woW14nJGFzX2NyX2FsbnVtJ19dXCksXDFcMlwxXDMsCisgICAgICB0IGxvb3AKKyAgICAgIHMsLSQsLAorICAgICAgcyxeWyckYXNfY3JfZGlnaXRzJ10qXG4sLAorICAgICcgPiRhc19tZS5saW5lbm8gJiYKKyAgY2htb2QgK3ggJGFzX21lLmxpbmVubyB8fAorICAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBjcmVhdGUgJGFzX21lLmxpbmVubzsgcmVydW4gd2l0aCBhIFBPU0lYIHNoZWxsIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjcmVhdGUgJGFzX21lLmxpbmVubzsgcmVydW4gd2l0aCBhIFBPU0lYIHNoZWxsIiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisKKyAgIyBEb24ndCB0cnkgdG8gZXhlYyBhcyBpdCBjaGFuZ2VzICRbMF0sIGNhdXNpbmcgYWxsIHNvcnQgb2YgcHJvYmxlbXMKKyAgIyAodGhlIGRpcm5hbWUgb2YgJFswXSBpcyBub3QgdGhlIHBsYWNlIHdoZXJlIHdlIG1pZ2h0IGZpbmQgdGhlCisgICMgb3JpZ2luYWwgYW5kIHNvIG9uLiAgQXV0b2NvbmYgaXMgZXNwZWNpYWxseSBzZW5zaWJsZSB0byB0aGlzKS4KKyAgLiAuLyRhc19tZS5saW5lbm8KKyAgIyBFeGl0IHN0YXR1cyBpcyB0aGF0IG9mIHRoZSBsYXN0IGNvbW1hbmQuCisgIGV4aXQKK30KKworCitjYXNlIGBlY2hvICJ0ZXN0aW5nXGMiOyBlY2hvIDEsMiwzYCxgZWNobyAtbiB0ZXN0aW5nOyBlY2hvIDEsMiwzYCBpbgorICAqYyosLW4qKSBFQ0hPX049IEVDSE9fQz0nCisnIEVDSE9fVD0nCScgOzsKKyAgKmMqLCogICkgRUNIT19OPS1uIEVDSE9fQz0gRUNIT19UPSA7OworICAqKSAgICAgICBFQ0hPX049IEVDSE9fQz0nXGMnIEVDSE9fVD0gOzsKK2VzYWMKKworaWYgZXhwciBhIDogJ1woYVwpJyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgYXNfZXhwcj1leHByCitlbHNlCisgIGFzX2V4cHI9ZmFsc2UKK2ZpCisKK3JtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYkJC5maWxlCitlY2hvID5jb25mJCQuZmlsZQoraWYgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVuCisgICMgV2UgY291bGQganVzdCBjaGVjayBmb3IgREpHUFA7IGJ1dCB0aGlzIHRlc3QgYSkgd29ya3MgYikgaXMgbW9yZSBnZW5lcmljCisgICMgYW5kIGMpIHdpbGwgcmVtYWluIHZhbGlkIG9uY2UgREpHUFAgc3VwcG9ydHMgc3ltbGlua3MgKERKR1BQIDIuMDQpLgorICBpZiB0ZXN0IC1mIGNvbmYkJC5leGU7IHRoZW4KKyAgICAjIERvbid0IHVzZSBsbiBhdCBhbGw7IHdlIGRvbid0IGhhdmUgYW55IGxpbmtzCisgICAgYXNfbG5fcz0nY3AgLXAnCisgIGVsc2UKKyAgICBhc19sbl9zPSdsbiAtcycKKyAgZmkKK2VsaWYgbG4gY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVuCisgIGFzX2xuX3M9bG4KK2Vsc2UKKyAgYXNfbG5fcz0nY3AgLXAnCitmaQorcm0gLWYgY29uZiQkIGNvbmYkJC5leGUgY29uZiQkLmZpbGUKKworaWYgbWtkaXIgLXAgLiAyPi9kZXYvbnVsbDsgdGhlbgorICBhc19ta2Rpcl9wPToKK2Vsc2UKKyAgdGVzdCAtZCAuLy1wICYmIHJtZGlyIC4vLXAKKyAgYXNfbWtkaXJfcD1mYWxzZQorZmkKKworYXNfZXhlY3V0YWJsZV9wPSJ0ZXN0IC1mIgorCisjIFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgQ1BQIG5hbWUuCithc190cl9jcHA9ImV2YWwgc2VkICd5JSokYXNfY3JfbGV0dGVycyVQJGFzX2NyX0xFVFRFUlMlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgorCisjIFNlZCBleHByZXNzaW9uIHRvIG1hcCBhIHN0cmluZyBvbnRvIGEgdmFsaWQgdmFyaWFibGUgbmFtZS4KK2FzX3RyX3NoPSJldmFsIHNlZCAneSUqKyVwcCU7cyVbXl8kYXNfY3JfYWxudW1dJV8lZyciCisKKworIyBJRlMKKyMgV2UgbmVlZCBzcGFjZSwgdGFiIGFuZCBuZXcgbGluZSwgaW4gcHJlY2lzZWx5IHRoYXQgb3JkZXIuCithc19ubD0nCisnCitJRlM9IiAJJGFzX25sIgorCisjIENEUEFUSC4KKyRhc191bnNldCBDRFBBVEgKKworZXhlYyA2PiYxCisKKyMgT3BlbiB0aGUgbG9nIHJlYWwgc29vbiwgdG8ga2VlcCBcJFswXSBhbmQgc28gb24gbWVhbmluZ2Z1bCwgYW5kIHRvCisjIHJlcG9ydCBhY3R1YWwgaW5wdXQgdmFsdWVzIG9mIENPTkZJR19GSUxFUyBldGMuIGluc3RlYWQgb2YgdGhlaXIKKyMgdmFsdWVzIGFmdGVyIG9wdGlvbnMgaGFuZGxpbmcuICBMb2dnaW5nIC0tdmVyc2lvbiBldGMuIGlzIE9LLgorZXhlYyA1Pj5jb25maWcubG9nCit7CisgIGVjaG8KKyAgc2VkICdoO3MvLi8tL2c7cy9eLi4uLyMjIC87cy8uLi4kLyAjIy87cDt4O3A7eCcgPDxfQVNCT1gKKyMjIFJ1bm5pbmcgJGFzX21lLiAjIworX0FTQk9YCit9ID4mNQorY2F0ID4mNSA8PF9DU0VPRgorCitUaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5ICRhc19tZSwgd2hpY2ggd2FzCitnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNTkuICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKKworICBDT05GSUdfRklMRVMgICAgPSAkQ09ORklHX0ZJTEVTCisgIENPTkZJR19IRUFERVJTICA9ICRDT05GSUdfSEVBREVSUworICBDT05GSUdfTElOS1MgICAgPSAkQ09ORklHX0xJTktTCisgIENPTkZJR19DT01NQU5EUyA9ICRDT05GSUdfQ09NTUFORFMKKyAgJCAkMCAkQAorCitfQ1NFT0YKK2VjaG8gIm9uIGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYCIgPiY1CitlY2hvID4mNQorX0FDRU9GCisKKyMgRmlsZXMgdGhhdCBjb25maWcuc3RhdHVzIHdhcyBtYWRlIGZvci4KK2lmIHRlc3QgLW4gIiRhY19jb25maWdfZmlsZXMiOyB0aGVuCisgIGVjaG8gImNvbmZpZ19maWxlcz1cIiRhY19jb25maWdfZmlsZXNcIiIgPj4kQ09ORklHX1NUQVRVUworZmkKKworaWYgdGVzdCAtbiAiJGFjX2NvbmZpZ19oZWFkZXJzIjsgdGhlbgorICBlY2hvICJjb25maWdfaGVhZGVycz1cIiRhY19jb25maWdfaGVhZGVyc1wiIiA+PiRDT05GSUdfU1RBVFVTCitmaQorCitpZiB0ZXN0IC1uICIkYWNfY29uZmlnX2xpbmtzIjsgdGhlbgorICBlY2hvICJjb25maWdfbGlua3M9XCIkYWNfY29uZmlnX2xpbmtzXCIiID4+JENPTkZJR19TVEFUVVMKK2ZpCisKK2lmIHRlc3QgLW4gIiRhY19jb25maWdfY29tbWFuZHMiOyB0aGVuCisgIGVjaG8gImNvbmZpZ19jb21tYW5kcz1cIiRhY19jb25maWdfY29tbWFuZHNcIiIgPj4kQ09ORklHX1NUQVRVUworZmkKKworY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GCisKK2FjX2NzX3VzYWdlPSJcCitcYCRhc19tZScgaW5zdGFudGlhdGVzIGZpbGVzIGZyb20gdGVtcGxhdGVzIGFjY29yZGluZyB0byB0aGUKK2N1cnJlbnQgY29uZmlndXJhdGlvbi4KKworVXNhZ2U6ICQwIFtPUFRJT05TXSBbRklMRV0uLi4KKworICAtaCwgLS1oZWxwICAgICAgIHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0CisgIC1WLCAtLXZlcnNpb24gICAgcHJpbnQgdmVyc2lvbiBudW1iZXIsIHRoZW4gZXhpdAorICAtcSwgLS1xdWlldCAgICAgIGRvIG5vdCBwcmludCBwcm9ncmVzcyBtZXNzYWdlcworICAtZCwgLS1kZWJ1ZyAgICAgIGRvbid0IHJlbW92ZSB0ZW1wb3JhcnkgZmlsZXMKKyAgICAgIC0tcmVjaGVjayAgICB1cGRhdGUgJGFzX21lIGJ5IHJlY29uZmlndXJpbmcgaW4gdGhlIHNhbWUgY29uZGl0aW9ucworICAtLWZpbGU9RklMRVs6VEVNUExBVEVdCisJCSAgIGluc3RhbnRpYXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgRklMRQorICAtLWhlYWRlcj1GSUxFWzpURU1QTEFURV0KKwkJICAgaW5zdGFudGlhdGUgdGhlIGNvbmZpZ3VyYXRpb24gaGVhZGVyIEZJTEUKKworQ29uZmlndXJhdGlvbiBmaWxlczoKKyRjb25maWdfZmlsZXMKKworQ29uZmlndXJhdGlvbiBoZWFkZXJzOgorJGNvbmZpZ19oZWFkZXJzCisKK1JlcG9ydCBidWdzIHRvIDxidWctYXV0b2NvbmZAZ251Lm9yZz4uIgorX0FDRU9GCisKK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GCithY19jc192ZXJzaW9uPSJcXAorY29uZmlnLnN0YXR1cworY29uZmlndXJlZCBieSAkMCwgZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjU5LAorICB3aXRoIG9wdGlvbnMgXFwiYGVjaG8gIiRhY19jb25maWd1cmVfYXJncyIgfCBzZWQgJ3MvW1xcIiJcYFwkXS9cXFxcJi9nJ2BcXCIKKworQ29weXJpZ2h0IChDKSAyMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorVGhpcyBjb25maWcuc3RhdHVzIHNjcmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCitnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuIgorc3JjZGlyPSRzcmNkaXIKK19BQ0VPRgorCitjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKKyMgSWYgbm8gZmlsZSBhcmUgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLCB0aGVuIHdlIG5lZWQgdG8gcHJvdmlkZSBkZWZhdWx0CisjIHZhbHVlLiAgQnkgd2UgbmVlZCB0byBrbm93IGlmIGZpbGVzIHdlcmUgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLgorYWNfbmVlZF9kZWZhdWx0cz06Cit3aGlsZSB0ZXN0ICQjICE9IDAKK2RvCisgIGNhc2UgJDEgaW4KKyAgLS0qPSopCisgICAgYWNfb3B0aW9uPWBleHByICJ4JDEiIDogJ3hcKFtePV0qXCk9J2AKKyAgICBhY19vcHRhcmc9YGV4cHIgIngkMSIgOiAneFtePV0qPVwoLipcKSdgCisgICAgYWNfc2hpZnQ9OgorICAgIDs7CisgIC0qKQorICAgIGFjX29wdGlvbj0kMQorICAgIGFjX29wdGFyZz0kMgorICAgIGFjX3NoaWZ0PXNoaWZ0CisgICAgOzsKKyAgKikgIyBUaGlzIGlzIG5vdCBhbiBvcHRpb24sIHNvIHRoZSB1c2VyIGhhcyBwcm9iYWJseSBnaXZlbiBleHBsaWNpdAorICAgICAjIGFyZ3VtZW50cy4KKyAgICAgYWNfb3B0aW9uPSQxCisgICAgIGFjX25lZWRfZGVmYXVsdHM9ZmFsc2U7OworICBlc2FjCisKKyAgY2FzZSAkYWNfb3B0aW9uIGluCisgICMgSGFuZGxpbmcgb2YgdGhlIG9wdGlvbnMuCitfQUNFT0YKK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgorICAtcmVjaGVjayB8IC0tcmVjaGVjayB8IC0tcmVjaGVjIHwgLS1yZWNoZSB8IC0tcmVjaCB8IC0tcmVjIHwgLS1yZSB8IC0tcikKKyAgICBhY19jc19yZWNoZWNrPTogOzsKKyAgLS12ZXJzaW9uIHwgLS12ZXJzKiB8IC1WICkKKyAgICBlY2hvICIkYWNfY3NfdmVyc2lvbiI7IGV4aXQgMCA7OworICAtLWhlIHwgLS1oKQorICAgICMgQ29uZmxpY3QgYmV0d2VlbiAtLWhlbHAgYW5kIC0taGVhZGVyCisgICAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogYW1iaWd1b3VzIG9wdGlvbjogJDEKK1RyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IGFtYmlndW91cyBvcHRpb246ICQxCitUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfTs7CisgIC0taGVscCB8IC0taGVsIHwgLWggKQorICAgIGVjaG8gIiRhY19jc191c2FnZSI7IGV4aXQgMCA7OworICAtLWRlYnVnIHwgLS1kKiB8IC1kICkKKyAgICBkZWJ1Zz06IDs7CisgIC0tZmlsZSB8IC0tZmlsIHwgLS1maSB8IC0tZiApCisgICAgJGFjX3NoaWZ0CisgICAgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTICRhY19vcHRhcmciCisgICAgYWNfbmVlZF9kZWZhdWx0cz1mYWxzZTs7CisgIC0taGVhZGVyIHwgLS1oZWFkZSB8IC0taGVhZCB8IC0taGVhICkKKyAgICAkYWNfc2hpZnQKKyAgICBDT05GSUdfSEVBREVSUz0iJENPTkZJR19IRUFERVJTICRhY19vcHRhcmciCisgICAgYWNfbmVlZF9kZWZhdWx0cz1mYWxzZTs7CisgIC1xIHwgLXF1aWV0IHwgLS1xdWlldCB8IC0tcXVpZSB8IC0tcXVpIHwgLS1xdSB8IC0tcSBcCisgIHwgLXNpbGVudCB8IC0tc2lsZW50IHwgLS1zaWxlbiB8IC0tc2lsZSB8IC0tc2lsIHwgLS1zaSB8IC0tcykKKyAgICBhY19jc19zaWxlbnQ9OiA7OworCisgICMgVGhpcyBpcyBhbiBlcnJvci4KKyAgLSopIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IHVucmVjb2duaXplZCBvcHRpb246ICQxCitUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiB1bnJlY29nbml6ZWQgb3B0aW9uOiAkMQorVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0gOzsKKworICAqKSBhY19jb25maWdfdGFyZ2V0cz0iJGFjX2NvbmZpZ190YXJnZXRzICQxIiA7OworCisgIGVzYWMKKyAgc2hpZnQKK2RvbmUKKworYWNfY29uZmlndXJlX2V4dHJhX2FyZ3M9CisKK2lmICRhY19jc19zaWxlbnQ7IHRoZW4KKyAgZXhlYyA2Pi9kZXYvbnVsbAorICBhY19jb25maWd1cmVfZXh0cmFfYXJncz0iJGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzIC0tc2lsZW50IgorZmkKKworX0FDRU9GCitjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRgoraWYgXCRhY19jc19yZWNoZWNrOyB0aGVuCisgIGVjaG8gInJ1bm5pbmcgJFNIRUxMICQwICIgJGFjX2NvbmZpZ3VyZV9hcmdzIFwkYWNfY29uZmlndXJlX2V4dHJhX2FyZ3MgIiAtLW5vLWNyZWF0ZSAtLW5vLXJlY3Vyc2lvbiIgPiY2CisgIGV4ZWMgJFNIRUxMICQwICRhY19jb25maWd1cmVfYXJncyBcJGFjX2NvbmZpZ3VyZV9leHRyYV9hcmdzIC0tbm8tY3JlYXRlIC0tbm8tcmVjdXJzaW9uCitmaQorCitfQUNFT0YKKworCisKKworCitjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKK2ZvciBhY19jb25maWdfdGFyZ2V0IGluICRhY19jb25maWdfdGFyZ2V0cworZG8KKyAgY2FzZSAiJGFjX2NvbmZpZ190YXJnZXQiIGluCisgICMgSGFuZGxpbmcgb2YgYXJndW1lbnRzLgorICAiTWFrZWZpbGUiICkgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIE1ha2VmaWxlIiA7OworICAiY29uZmlnLmgiICkgQ09ORklHX0hFQURFUlM9IiRDT05GSUdfSEVBREVSUyBjb25maWcuaCIgOzsKKyAgKikgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogaW52YWxpZCBhcmd1bWVudDogJGFjX2NvbmZpZ190YXJnZXQiID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogaW52YWxpZCBhcmd1bWVudDogJGFjX2NvbmZpZ190YXJnZXQiID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07OworICBlc2FjCitkb25lCisKKyMgSWYgdGhlIHVzZXIgZGlkIG5vdCB1c2UgdGhlIGFyZ3VtZW50cyB0byBzcGVjaWZ5IHRoZSBpdGVtcyB0byBpbnN0YW50aWF0ZSwKKyMgdGhlbiB0aGUgZW52dmFyIGludGVyZmFjZSBpcyB1c2VkLiAgU2V0IG9ubHkgdGhvc2UgdGhhdCBhcmUgbm90LgorIyBXZSB1c2UgdGhlIGxvbmcgZm9ybSBmb3IgdGhlIGRlZmF1bHQgYXNzaWdubWVudCBiZWNhdXNlIG9mIGFuIGV4dHJlbWVseQorIyBiaXphcnJlIGJ1ZyBvbiBTdW5PUyA0LjEuMy4KK2lmICRhY19uZWVkX2RlZmF1bHRzOyB0aGVuCisgIHRlc3QgIiR7Q09ORklHX0ZJTEVTK3NldH0iID0gc2V0IHx8IENPTkZJR19GSUxFUz0kY29uZmlnX2ZpbGVzCisgIHRlc3QgIiR7Q09ORklHX0hFQURFUlMrc2V0fSIgPSBzZXQgfHwgQ09ORklHX0hFQURFUlM9JGNvbmZpZ19oZWFkZXJzCitmaQorCisjIEhhdmUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGZvciBjb252ZW5pZW5jZS4gIE1ha2UgaXQgaW4gdGhlIGJ1aWxkIHRyZWUKKyMgc2ltcGx5IGJlY2F1c2UgdGhlcmUgaXMgbm8gcmVhc29uIHRvIHB1dCBpdCBoZXJlLCBhbmQgaW4gYWRkaXRpb24sCisjIGNyZWF0aW5nIGFuZCBtb3ZpbmcgZmlsZXMgZnJvbSAvdG1wIGNhbiBzb21ldGltZXMgY2F1c2UgcHJvYmxlbXMuCisjIENyZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnksIGFuZCBob29rIGZvciBpdHMgcmVtb3ZhbCB1bmxlc3MgZGVidWdnaW5nLgorJGRlYnVnIHx8Cit7CisgIHRyYXAgJ2V4aXRfc3RhdHVzPSQ/OyBybSAtcmYgJHRtcCAmJiBleGl0ICRleGl0X3N0YXR1cycgMAorICB0cmFwICd7IChleGl0IDEpOyBleGl0IDE7IH0nIDEgMiAxMyAxNQorfQorCisjIENyZWF0ZSBhIChzZWN1cmUpIHRtcCBkaXJlY3RvcnkgZm9yIHRtcCBmaWxlcy4KKworeworICB0bXA9YCh1bWFzayAwNzcgJiYgbWt0ZW1wIC1kIC1xICIuL2NvbmZzdGF0WFhYWFhYIikgMj4vZGV2L251bGxgICYmCisgIHRlc3QgLW4gIiR0bXAiICYmIHRlc3QgLWQgIiR0bXAiCit9ICB8fAoreworICB0bXA9Li9jb25mc3RhdCQkLSRSQU5ET00KKyAgKHVtYXNrIDA3NyAmJiBta2RpciAkdG1wKQorfSB8fAoreworICAgZWNobyAiJG1lOiBjYW5ub3QgY3JlYXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpbiAuIiA+JjIKKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfQorfQorCitfQUNFT0YKKworY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YKKworIworIyBDT05GSUdfRklMRVMgc2VjdGlvbi4KKyMKKworIyBObyBuZWVkIHRvIGdlbmVyYXRlIHRoZSBzY3JpcHRzIGlmIHRoZXJlIGFyZSBubyBDT05GSUdfRklMRVMuCisjIFRoaXMgaGFwcGVucyBmb3IgaW5zdGFuY2Ugd2hlbiAuL2NvbmZpZy5zdGF0dXMgY29uZmlnLmgKK2lmIHRlc3QgLW4gIlwkQ09ORklHX0ZJTEVTIjsgdGhlbgorICAjIFByb3RlY3QgYWdhaW5zdCBiZWluZyBvbiB0aGUgcmlnaHQgc2lkZSBvZiBhIHNlZCBzdWJzdCBpbiBjb25maWcuc3RhdHVzLgorICBzZWQgJ3MvLEAvQEAvOyBzL0AsL0BALzsgcy8sO3QgdFwkL0A7dCB0LzsgL0A7dCB0XCQvcy9bXFxcXCYsXS9cXFxcJi9nOworICAgcy9AQC8sQC87IHMvQEAvQCwvOyBzL0A7dCB0XCQvLDt0IHQvJyA+XCR0bXAvc3Vicy5zZWQgPDxcXENFT0YKK3MsQFNIRUxMQCwkU0hFTEwsO3QgdAorcyxAUEFUSF9TRVBBUkFUT1JALCRQQVRIX1NFUEFSQVRPUiw7dCB0CitzLEBQQUNLQUdFX05BTUVALCRQQUNLQUdFX05BTUUsO3QgdAorcyxAUEFDS0FHRV9UQVJOQU1FQCwkUEFDS0FHRV9UQVJOQU1FLDt0IHQKK3MsQFBBQ0tBR0VfVkVSU0lPTkAsJFBBQ0tBR0VfVkVSU0lPTiw7dCB0CitzLEBQQUNLQUdFX1NUUklOR0AsJFBBQ0tBR0VfU1RSSU5HLDt0IHQKK3MsQFBBQ0tBR0VfQlVHUkVQT1JUQCwkUEFDS0FHRV9CVUdSRVBPUlQsO3QgdAorcyxAZXhlY19wcmVmaXhALCRleGVjX3ByZWZpeCw7dCB0CitzLEBwcmVmaXhALCRwcmVmaXgsO3QgdAorcyxAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAsJHByb2dyYW1fdHJhbnNmb3JtX25hbWUsO3QgdAorcyxAYmluZGlyQCwkYmluZGlyLDt0IHQKK3MsQHNiaW5kaXJALCRzYmluZGlyLDt0IHQKK3MsQGxpYmV4ZWNkaXJALCRsaWJleGVjZGlyLDt0IHQKK3MsQGRhdGFkaXJALCRkYXRhZGlyLDt0IHQKK3MsQHN5c2NvbmZkaXJALCRzeXNjb25mZGlyLDt0IHQKK3MsQHNoYXJlZHN0YXRlZGlyQCwkc2hhcmVkc3RhdGVkaXIsO3QgdAorcyxAbG9jYWxzdGF0ZWRpckAsJGxvY2Fsc3RhdGVkaXIsO3QgdAorcyxAbGliZGlyQCwkbGliZGlyLDt0IHQKK3MsQGluY2x1ZGVkaXJALCRpbmNsdWRlZGlyLDt0IHQKK3MsQG9sZGluY2x1ZGVkaXJALCRvbGRpbmNsdWRlZGlyLDt0IHQKK3MsQGluZm9kaXJALCRpbmZvZGlyLDt0IHQKK3MsQG1hbmRpckAsJG1hbmRpciw7dCB0CitzLEBidWlsZF9hbGlhc0AsJGJ1aWxkX2FsaWFzLDt0IHQKK3MsQGhvc3RfYWxpYXNALCRob3N0X2FsaWFzLDt0IHQKK3MsQHRhcmdldF9hbGlhc0AsJHRhcmdldF9hbGlhcyw7dCB0CitzLEBERUZTQCwkREVGUyw7dCB0CitzLEBFQ0hPX0NALCRFQ0hPX0MsO3QgdAorcyxARUNIT19OQCwkRUNIT19OLDt0IHQKK3MsQEVDSE9fVEAsJEVDSE9fVCw7dCB0CitzLEBMSUJTQCwkTElCUyw7dCB0CitzLEBWRVJTSU9OQCwkVkVSU0lPTiw7dCB0CitzLEBDQ0AsJENDLDt0IHQKK3MsQENGTEFHU0AsJENGTEFHUyw7dCB0CitzLEBMREZMQUdTQCwkTERGTEFHUyw7dCB0CitzLEBDUFBGTEFHU0AsJENQUEZMQUdTLDt0IHQKK3MsQGFjX2N0X0NDQCwkYWNfY3RfQ0MsO3QgdAorcyxARVhFRVhUQCwkRVhFRVhULDt0IHQKK3MsQE9CSkVYVEAsJE9CSkVYVCw7dCB0CitzLEBDUFBALCRDUFAsO3QgdAorcyxARUdSRVBALCRFR1JFUCw7dCB0CitzLEBBV0tALCRBV0ssO3QgdAorcyxAV1JJVEVQQVRIQCwkV1JJVEVQQVRILDt0IHQKK3MsQFhURVJNUEFUSEAsJFhURVJNUEFUSCw7dCB0CitzLEBMSUJPQkpTQCwkTElCT0JKUyw7dCB0CitzLEBMVExJQk9CSlNALCRMVExJQk9CSlMsO3QgdAorQ0VPRgorCitfQUNFT0YKKworICBjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKKyAgIyBTcGxpdCB0aGUgc3Vic3RpdHV0aW9ucyBpbnRvIGJpdGUtc2l6ZWQgcGllY2VzIGZvciBzZWRzIHdpdGgKKyAgIyBzbWFsbCBjb21tYW5kIG51bWJlciBsaW1pdHMsIGxpa2Ugb24gRGlnaXRhbCBPU0YvMSBhbmQgSFAtVVguCisgIGFjX21heF9zZWRfbGluZXM9NDgKKyAgYWNfc2VkX2ZyYWc9MSAjIE51bWJlciBvZiBjdXJyZW50IGZpbGUuCisgIGFjX2JlZz0xICMgRmlyc3QgbGluZSBmb3IgY3VycmVudCBmaWxlLgorICBhY19lbmQ9JGFjX21heF9zZWRfbGluZXMgIyBMaW5lIGFmdGVyIGxhc3QgbGluZSBmb3IgY3VycmVudCBmaWxlLgorICBhY19tb3JlX2xpbmVzPToKKyAgYWNfc2VkX2NtZHM9CisgIHdoaWxlICRhY19tb3JlX2xpbmVzOyBkbworICAgIGlmIHRlc3QgJGFjX2JlZyAtZ3QgMTsgdGhlbgorICAgICAgc2VkICIxLCR7YWNfYmVnfWQ7ICR7YWNfZW5kfXEiICR0bXAvc3Vicy5zZWQgPiR0bXAvc3Vicy5mcmFnCisgICAgZWxzZQorICAgICAgc2VkICIke2FjX2VuZH1xIiAkdG1wL3N1YnMuc2VkID4kdG1wL3N1YnMuZnJhZworICAgIGZpCisgICAgaWYgdGVzdCAhIC1zICR0bXAvc3Vicy5mcmFnOyB0aGVuCisgICAgICBhY19tb3JlX2xpbmVzPWZhbHNlCisgICAgZWxzZQorICAgICAgIyBUaGUgcHVycG9zZSBvZiB0aGUgbGFiZWwgYW5kIG9mIHRoZSBicmFuY2hpbmcgY29uZGl0aW9uIGlzIHRvCisgICAgICAjIHNwZWVkIHVwIHRoZSBzZWQgcHJvY2Vzc2luZyAoaWYgdGhlcmUgYXJlIG5vIGBAJyBhdCBhbGwsIHRoZXJlCisgICAgICAjIGlzIG5vIG5lZWQgdG8gYnJvd3NlIGFueSBvZiB0aGUgc3Vic3RpdHV0aW9ucykuCisgICAgICAjIFRoZXNlIGFyZSB0aGUgdHdvIGV4dHJhIHNlZCBjb21tYW5kcyBtZW50aW9uZWQgYWJvdmUuCisgICAgICAoZWNobyAnOnQKKyAgL0BbYS16QS1aX11bYS16QS1aXzAtOV0qQC8hYicgJiYgY2F0ICR0bXAvc3Vicy5mcmFnKSA+JHRtcC9zdWJzLSRhY19zZWRfZnJhZy5zZWQKKyAgICAgIGlmIHRlc3QgLXogIiRhY19zZWRfY21kcyI7IHRoZW4KKwlhY19zZWRfY21kcz0ic2VkIC1mICR0bXAvc3Vicy0kYWNfc2VkX2ZyYWcuc2VkIgorICAgICAgZWxzZQorCWFjX3NlZF9jbWRzPSIkYWNfc2VkX2NtZHMgfCBzZWQgLWYgJHRtcC9zdWJzLSRhY19zZWRfZnJhZy5zZWQiCisgICAgICBmaQorICAgICAgYWNfc2VkX2ZyYWc9YGV4cHIgJGFjX3NlZF9mcmFnICsgMWAKKyAgICAgIGFjX2JlZz0kYWNfZW5kCisgICAgICBhY19lbmQ9YGV4cHIgJGFjX2VuZCArICRhY19tYXhfc2VkX2xpbmVzYAorICAgIGZpCisgIGRvbmUKKyAgaWYgdGVzdCAteiAiJGFjX3NlZF9jbWRzIjsgdGhlbgorICAgIGFjX3NlZF9jbWRzPWNhdAorICBmaQorZmkgIyB0ZXN0IC1uICIkQ09ORklHX0ZJTEVTIgorCitfQUNFT0YKK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgorZm9yIGFjX2ZpbGUgaW4gOiAkQ09ORklHX0ZJTEVTOyBkbyB0ZXN0ICJ4JGFjX2ZpbGUiID0geDogJiYgY29udGludWUKKyAgIyBTdXBwb3J0ICJvdXRmaWxlWzppbmZpbGVbOmluZmlsZS4uLl1dIiwgZGVmYXVsdGluZyBpbmZpbGU9Im91dGZpbGUuaW4iLgorICBjYXNlICRhY19maWxlIGluCisgIC0gfCAqOi0gfCAqOi06KiApICMgaW5wdXQgZnJvbSBzdGRpbgorCWNhdCA+JHRtcC9zdGRpbgorCWFjX2ZpbGVfaW49YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyxbXjpdKjosLCdgCisJYWNfZmlsZT1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLDouKiwsJ2AgOzsKKyAgKjoqICkgYWNfZmlsZV9pbj1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLFteOl0qOiwsJ2AKKwlhY19maWxlPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsOi4qLCwnYCA7OworICAqICkgICBhY19maWxlX2luPSRhY19maWxlLmluIDs7CisgIGVzYWMKKworICAjIENvbXB1dGUgQHNyY2RpckAsIEB0b3Bfc3JjZGlyQCwgYW5kIEBJTlNUQUxMQCBmb3Igc3ViZGlyZWN0b3JpZXMuCisgIGFjX2Rpcj1gKGRpcm5hbWUgIiRhY19maWxlIikgMj4vZGV2L251bGwgfHwKKyRhc19leHByIFgiJGFjX2ZpbGUiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisJIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisJIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXCkkJyBcfCBcCisJIFgiJGFjX2ZpbGUiIDogJ1hcKC9cKScgXHwgXAorCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKK2VjaG8gWCIkYWNfZmlsZSIgfAorICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KKyAgCSAgcy8uKi8uLzsgcSdgCisgIHsgaWYgJGFzX21rZGlyX3A7IHRoZW4KKyAgICBta2RpciAtcCAiJGFjX2RpciIKKyAgZWxzZQorICAgIGFzX2Rpcj0iJGFjX2RpciIKKyAgICBhc19kaXJzPQorICAgIHdoaWxlIHRlc3QgISAtZCAiJGFzX2RpciI7IGRvCisgICAgICBhc19kaXJzPSIkYXNfZGlyICRhc19kaXJzIgorICAgICAgYXNfZGlyPWAoZGlybmFtZSAiJGFzX2RpciIpIDI+L2Rldi9udWxsIHx8CiskYXNfZXhwciBYIiRhc19kaXIiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisJIFgiJGFzX2RpciIgOiAnWFwoLy9cKVteL10nIFx8IFwKKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAorCSBYIiRhc19kaXIiIDogJ1hcKC9cKScgXHwgXAorCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKK2VjaG8gWCIkYXNfZGlyIiB8CisgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpW14vXS4qL3sgcy8vXDEvOyBxOyB9CisgIAkgIC9eWFwoXC9cL1wpJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXCkuKi97IHMvL1wxLzsgcTsgfQorICAJICBzLy4qLy4vOyBxJ2AKKyAgICBkb25lCisgICAgdGVzdCAhIC1uICIkYXNfZGlycyIgfHwgbWtkaXIgJGFzX2RpcnMKKyAgZmkgfHwgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSBkaXJlY3RvcnkgXCIkYWNfZGlyXCIiID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07IH0KKworICBhY19idWlsZGRpcj0uCisKK2lmIHRlc3QgIiRhY19kaXIiICE9IC47IHRoZW4KKyAgYWNfZGlyX3N1ZmZpeD0vYGVjaG8gIiRhY19kaXIiIHwgc2VkICdzLF5cLltcXC9dLCwnYAorICAjIEEgIi4uLyIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4LgorICBhY190b3BfYnVpbGRkaXI9YGVjaG8gIiRhY19kaXJfc3VmZml4IiB8IHNlZCAncywvW15cXC9dKiwuLi8sZydgCitlbHNlCisgIGFjX2Rpcl9zdWZmaXg9IGFjX3RvcF9idWlsZGRpcj0KK2ZpCisKK2Nhc2UgJHNyY2RpciBpbgorICAuKSAgIyBObyAtLXNyY2RpciBvcHRpb24uICBXZSBhcmUgYnVpbGRpbmcgaW4gcGxhY2UuCisgICAgYWNfc3JjZGlyPS4KKyAgICBpZiB0ZXN0IC16ICIkYWNfdG9wX2J1aWxkZGlyIjsgdGhlbgorICAgICAgIGFjX3RvcF9zcmNkaXI9LgorICAgIGVsc2UKKyAgICAgICBhY190b3Bfc3JjZGlyPWBlY2hvICRhY190b3BfYnVpbGRkaXIgfCBzZWQgJ3MsLyQsLCdgCisgICAgZmkgOzsKKyAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBBYnNvbHV0ZSBwYXRoLgorICAgIGFjX3NyY2Rpcj0kc3JjZGlyJGFjX2Rpcl9zdWZmaXg7CisgICAgYWNfdG9wX3NyY2Rpcj0kc3JjZGlyIDs7CisgICopICMgUmVsYXRpdmUgcGF0aC4KKyAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZGRpciRzcmNkaXIkYWNfZGlyX3N1ZmZpeAorICAgIGFjX3RvcF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpciRzcmNkaXIgOzsKK2VzYWMKKworIyBEbyBub3QgdXNlIGBjZCBmb28gJiYgcHdkYCB0byBjb21wdXRlIGFic29sdXRlIHBhdGhzLCBiZWNhdXNlCisjIHRoZSBkaXJlY3RvcmllcyBtYXkgbm90IGV4aXN0LgorY2FzZSBgcHdkYCBpbgorLikgYWNfYWJzX2J1aWxkZGlyPSIkYWNfZGlyIjs7CisqKQorICBjYXNlICIkYWNfZGlyIiBpbgorICAuKSBhY19hYnNfYnVpbGRkaXI9YHB3ZGA7OworICBbXFwvXSogfCA/OltcXC9dKiApIGFjX2Fic19idWlsZGRpcj0iJGFjX2RpciI7OworICAqKSBhY19hYnNfYnVpbGRkaXI9YHB3ZGAvIiRhY19kaXIiOzsKKyAgZXNhYzs7Citlc2FjCitjYXNlICRhY19hYnNfYnVpbGRkaXIgaW4KKy4pIGFjX2Fic190b3BfYnVpbGRkaXI9JHthY190b3BfYnVpbGRkaXJ9Ljs7CisqKQorICBjYXNlICR7YWNfdG9wX2J1aWxkZGlyfS4gaW4KKyAgLikgYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfYWJzX2J1aWxkZGlyOzsKKyAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfdG9wX2J1aWxkZGlyPSR7YWNfdG9wX2J1aWxkZGlyfS47OworICAqKSBhY19hYnNfdG9wX2J1aWxkZGlyPSRhY19hYnNfYnVpbGRkaXIvJHthY190b3BfYnVpbGRkaXJ9Ljs7CisgIGVzYWM7OworZXNhYworY2FzZSAkYWNfYWJzX2J1aWxkZGlyIGluCisuKSBhY19hYnNfc3JjZGlyPSRhY19zcmNkaXI7OworKikKKyAgY2FzZSAkYWNfc3JjZGlyIGluCisgIC4pIGFjX2Fic19zcmNkaXI9JGFjX2Fic19idWlsZGRpcjs7CisgIFtcXC9dKiB8ID86W1xcL10qICkgYWNfYWJzX3NyY2Rpcj0kYWNfc3JjZGlyOzsKKyAgKikgYWNfYWJzX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyLyRhY19zcmNkaXI7OworICBlc2FjOzsKK2VzYWMKK2Nhc2UgJGFjX2Fic19idWlsZGRpciBpbgorLikgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3RvcF9zcmNkaXI7OworKikKKyAgY2FzZSAkYWNfdG9wX3NyY2RpciBpbgorICAuKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfYWJzX2J1aWxkZGlyOzsKKyAgW1xcL10qIHwgPzpbXFwvXSogKSBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfdG9wX3NyY2Rpcjs7CisgICopIGFjX2Fic190b3Bfc3JjZGlyPSRhY19hYnNfYnVpbGRkaXIvJGFjX3RvcF9zcmNkaXI7OworICBlc2FjOzsKK2VzYWMKKworCisKKyAgaWYgdGVzdCB4IiRhY19maWxlIiAhPSB4LTsgdGhlbgorICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGNyZWF0aW5nICRhY19maWxlIiA+JjUKK2VjaG8gIiRhc19tZTogY3JlYXRpbmcgJGFjX2ZpbGUiID4mNjt9CisgICAgcm0gLWYgIiRhY19maWxlIgorICBmaQorICAjIExldCdzIHN0aWxsIHByZXRlbmQgaXQgaXMgYGNvbmZpZ3VyZScgd2hpY2ggaW5zdGFudGlhdGVzIChpLmUuLCBkb24ndAorICAjIHVzZSAkYXNfbWUpLCBwZW9wbGUgd291bGQgYmUgc3VycHJpc2VkIHRvIHJlYWQ6CisgICMgICAgLyogY29uZmlnLmguICBHZW5lcmF0ZWQgYnkgY29uZmlnLnN0YXR1cy4gICovCisgIGlmIHRlc3QgeCIkYWNfZmlsZSIgPSB4LTsgdGhlbgorICAgIGNvbmZpZ3VyZV9pbnB1dD0KKyAgZWxzZQorICAgIGNvbmZpZ3VyZV9pbnB1dD0iJGFjX2ZpbGUuICAiCisgIGZpCisgIGNvbmZpZ3VyZV9pbnB1dD0kY29uZmlndXJlX2lucHV0IkdlbmVyYXRlZCBmcm9tIGBlY2hvICRhY19maWxlX2luIHwKKwkJCQkgICAgIHNlZCAncywuKi8sLCdgIGJ5IGNvbmZpZ3VyZS4iCisKKyAgIyBGaXJzdCBsb29rIGZvciB0aGUgaW5wdXQgZmlsZXMgaW4gdGhlIGJ1aWxkIHRyZWUsIG90aGVyd2lzZSBpbiB0aGUKKyAgIyBzcmMgdHJlZS4KKyAgYWNfZmlsZV9pbnB1dHM9YElGUz06CisgICAgZm9yIGYgaW4gJGFjX2ZpbGVfaW47IGRvCisgICAgICBjYXNlICRmIGluCisgICAgICAtKSBlY2hvICR0bXAvc3RkaW4gOzsKKyAgICAgIFtcXC8kXSopCisJICMgQWJzb2x1dGUgKGNhbid0IGJlIERPUy1zdHlsZSwgYXMgSUZTPTopCisJIHRlc3QgLWYgIiRmIiB8fCB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiY1CitlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3QgZmluZCBpbnB1dCBmaWxlOiAkZiIgPiYyO30KKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsgfTsgfQorCSBlY2hvICIkZiI7OworICAgICAgKikgIyBSZWxhdGl2ZQorCSBpZiB0ZXN0IC1mICIkZiI7IHRoZW4KKwkgICAjIEJ1aWxkIHRyZWUKKwkgICBlY2hvICIkZiIKKwkgZWxpZiB0ZXN0IC1mICIkc3JjZGlyLyRmIjsgdGhlbgorCSAgICMgU291cmNlIHRyZWUKKwkgICBlY2hvICIkc3JjZGlyLyRmIgorCSBlbHNlCisJICAgIyAvZGV2L251bGwgdHJlZQorCSAgIHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisJIGZpOzsKKyAgICAgIGVzYWMKKyAgICBkb25lYCB8fCB7IChleGl0IDEpOyBleGl0IDE7IH0KK19BQ0VPRgorY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YKKyAgc2VkICIkYWNfdnBzdWIKKyRleHRyYXN1YgorX0FDRU9GCitjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKKzp0CisvQFthLXpBLVpfXVthLXpBLVpfMC05XSpALyFiCitzLEBjb25maWd1cmVfaW5wdXRALCRjb25maWd1cmVfaW5wdXQsO3QgdAorcyxAc3JjZGlyQCwkYWNfc3JjZGlyLDt0IHQKK3MsQGFic19zcmNkaXJALCRhY19hYnNfc3JjZGlyLDt0IHQKK3MsQHRvcF9zcmNkaXJALCRhY190b3Bfc3JjZGlyLDt0IHQKK3MsQGFic190b3Bfc3JjZGlyQCwkYWNfYWJzX3RvcF9zcmNkaXIsO3QgdAorcyxAYnVpbGRkaXJALCRhY19idWlsZGRpciw7dCB0CitzLEBhYnNfYnVpbGRkaXJALCRhY19hYnNfYnVpbGRkaXIsO3QgdAorcyxAdG9wX2J1aWxkZGlyQCwkYWNfdG9wX2J1aWxkZGlyLDt0IHQKK3MsQGFic190b3BfYnVpbGRkaXJALCRhY19hYnNfdG9wX2J1aWxkZGlyLDt0IHQKKyIgJGFjX2ZpbGVfaW5wdXRzIHwgKGV2YWwgIiRhY19zZWRfY21kcyIpID4kdG1wL291dAorICBybSAtZiAkdG1wL3N0ZGluCisgIGlmIHRlc3QgeCIkYWNfZmlsZSIgIT0geC07IHRoZW4KKyAgICBtdiAkdG1wL291dCAkYWNfZmlsZQorICBlbHNlCisgICAgY2F0ICR0bXAvb3V0CisgICAgcm0gLWYgJHRtcC9vdXQKKyAgZmkKKworZG9uZQorX0FDRU9GCitjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YKKworIworIyBDT05GSUdfSEVBREVSIHNlY3Rpb24uCisjCisKKyMgVGhlc2Ugc2VkIGNvbW1hbmRzIGFyZSBwYXNzZWQgdG8gc2VkIGFzICJBIE5BTUUgQiBOQU1FIEMgVkFMVUUgRCIsIHdoZXJlCisjIE5BTUUgaXMgdGhlIGNwcCBtYWNybyBiZWluZyBkZWZpbmVkIGFuZCBWQUxVRSBpcyB0aGUgdmFsdWUgaXQgaXMgYmVpbmcgZ2l2ZW4uCisjCisjIGFjX2Qgc2V0cyB0aGUgdmFsdWUgaW4gIiNkZWZpbmUgTkFNRSBWQUxVRSIgbGluZXMuCithY19kQT0ncyxeXChbCSBdKlwpI1woWwkgXSpkZWZpbmVbCSBdWwkgXSpcKScKK2FjX2RCPSdbCSBdLiokLFwxI1wyJworYWNfZEM9JyAnCithY19kRD0nLDt0JworIyBhY191IHR1cm5zICIjdW5kZWYgTkFNRSIgd2l0aG91dCB0cmFpbGluZyBibGFua3MgaW50byAiI2RlZmluZSBOQU1FIFZBTFVFIi4KK2FjX3VBPSdzLF5cKFsJIF0qXCkjXChbCSBdKlwpdW5kZWZcKFsJIF1bCSBdKlwpJworYWNfdUI9JyQsXDEjXDJkZWZpbmVcMycKK2FjX3VDPScgJworYWNfdUQ9Jyw7dCcKKworZm9yIGFjX2ZpbGUgaW4gOiAkQ09ORklHX0hFQURFUlM7IGRvIHRlc3QgIngkYWNfZmlsZSIgPSB4OiAmJiBjb250aW51ZQorICAjIFN1cHBvcnQgIm91dGZpbGVbOmluZmlsZVs6aW5maWxlLi4uXV0iLCBkZWZhdWx0aW5nIGluZmlsZT0ib3V0ZmlsZS5pbiIuCisgIGNhc2UgJGFjX2ZpbGUgaW4KKyAgLSB8ICo6LSB8ICo6LToqICkgIyBpbnB1dCBmcm9tIHN0ZGluCisJY2F0ID4kdG1wL3N0ZGluCisJYWNfZmlsZV9pbj1gZWNobyAiJGFjX2ZpbGUiIHwgc2VkICdzLFteOl0qOiwsJ2AKKwlhY19maWxlPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsOi4qLCwnYCA7OworICAqOiogKSBhY19maWxlX2luPWBlY2hvICIkYWNfZmlsZSIgfCBzZWQgJ3MsW146XSo6LCwnYAorCWFjX2ZpbGU9YGVjaG8gIiRhY19maWxlIiB8IHNlZCAncyw6LiosLCdgIDs7CisgICogKSAgIGFjX2ZpbGVfaW49JGFjX2ZpbGUuaW4gOzsKKyAgZXNhYworCisgIHRlc3QgeCIkYWNfZmlsZSIgIT0geC0gJiYgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogY3JlYXRpbmcgJGFjX2ZpbGUiID4mNQorZWNobyAiJGFzX21lOiBjcmVhdGluZyAkYWNfZmlsZSIgPiY2O30KKworICAjIEZpcnN0IGxvb2sgZm9yIHRoZSBpbnB1dCBmaWxlcyBpbiB0aGUgYnVpbGQgdHJlZSwgb3RoZXJ3aXNlIGluIHRoZQorICAjIHNyYyB0cmVlLgorICBhY19maWxlX2lucHV0cz1gSUZTPToKKyAgICBmb3IgZiBpbiAkYWNfZmlsZV9pbjsgZG8KKyAgICAgIGNhc2UgJGYgaW4KKyAgICAgIC0pIGVjaG8gJHRtcC9zdGRpbiA7OworICAgICAgW1xcLyRdKikKKwkgIyBBYnNvbHV0ZSAoY2FuJ3QgYmUgRE9TLXN0eWxlLCBhcyBJRlM9OikKKwkgdGVzdCAtZiAiJGYiIHx8IHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBmaW5kIGlucHV0IGZpbGU6ICRmIiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9CisJICMgRG8gcXVvdGUgJGYsIHRvIHByZXZlbnQgRE9TIHBhdGhzIGZyb20gYmVpbmcgSUZTJ2QuCisJIGVjaG8gIiRmIjs7CisgICAgICAqKSAjIFJlbGF0aXZlCisJIGlmIHRlc3QgLWYgIiRmIjsgdGhlbgorCSAgICMgQnVpbGQgdHJlZQorCSAgIGVjaG8gIiRmIgorCSBlbGlmIHRlc3QgLWYgIiRzcmNkaXIvJGYiOyB0aGVuCisJICAgIyBTb3VyY2UgdHJlZQorCSAgIGVjaG8gIiRzcmNkaXIvJGYiCisJIGVsc2UKKwkgICAjIC9kZXYvbnVsbCB0cmVlCisJICAgeyB7IGVjaG8gIiRhc19tZTokTElORU5POiBlcnJvcjogY2Fubm90IGZpbmQgaW5wdXQgZmlsZTogJGYiID4mNQorZWNobyAiJGFzX21lOiBlcnJvcjogY2Fubm90IGZpbmQgaW5wdXQgZmlsZTogJGYiID4mMjt9CisgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKwkgZmk7OworICAgICAgZXNhYworICAgIGRvbmVgIHx8IHsgKGV4aXQgMSk7IGV4aXQgMTsgfQorICAjIFJlbW92ZSB0aGUgdHJhaWxpbmcgc3BhY2VzLgorICBzZWQgJ3MvWwkgXSokLy8nICRhY19maWxlX2lucHV0cyA+JHRtcC9pbgorCitfQUNFT0YKKworIyBUcmFuc2Zvcm0gY29uZmRlZnMuaCBpbnRvIHR3byBzZWQgc2NyaXB0cywgYGNvbmZ0ZXN0LmRlZmluZXMnIGFuZAorIyBgY29uZnRlc3QudW5kZWZzJywgdGhhdCBzdWJzdGl0dXRlcyB0aGUgcHJvcGVyIHZhbHVlcyBpbnRvCisjIGNvbmZpZy5oLmluIHRvIHByb2R1Y2UgY29uZmlnLmguICBUaGUgZmlyc3QgaGFuZGxlcyBgI2RlZmluZScKKyMgdGVtcGxhdGVzLCBhbmQgdGhlIHNlY29uZCBgI3VuZGVmJyB0ZW1wbGF0ZXMuCisjIEFuZCBmaXJzdDogUHJvdGVjdCBhZ2FpbnN0IGJlaW5nIG9uIHRoZSByaWdodCBzaWRlIG9mIGEgc2VkIHN1YnN0IGluCisjIGNvbmZpZy5zdGF0dXMuICBQcm90ZWN0IGFnYWluc3QgYmVpbmcgaW4gYW4gdW5xdW90ZWQgaGVyZSBkb2N1bWVudAorIyBpbiBjb25maWcuc3RhdHVzLgorcm0gLWYgY29uZnRlc3QuZGVmaW5lcyBjb25mdGVzdC51bmRlZnMKKyMgVXNpbmcgYSBoZXJlIGRvY3VtZW50IGluc3RlYWQgb2YgYSBzdHJpbmcgcmVkdWNlcyB0aGUgcXVvdGluZyBuaWdodG1hcmUuCisjIFB1dHRpbmcgY29tbWVudHMgaW4gc2VkIHNjcmlwdHMgaXMgbm90IHBvcnRhYmxlLgorIworIyBgZW5kJyBpcyB1c2VkIHRvIGF2b2lkIHRoYXQgdGhlIHNlY29uZCBtYWluIHNlZCBjb21tYW5kIChtZWFudCBmb3IKKyMgMC1hcnkgQ1BQIG1hY3JvcykgYXBwbGllcyB0byBuLWFyeSBtYWNybyBkZWZpbml0aW9ucy4KKyMgU2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIGZvciBgY2xlYXInLgorY2F0ID5jb25mZGVmMnNlZC5zZWQgPDxcX0FDRU9GCitzL1tcXCYsXS9cXCYvZworcyxbXFwkYF0sXFwmLGcKK3QgY2xlYXIKKzogY2xlYXIKK3MsXlsJIF0qI1sJIF0qZGVmaW5lWwkgXVsJIF0qXChbXgkgKF1bXgkgKF0qXClcKChbXildKilcKVsJIF0qXCguKlwpJCwke2FjX2RBfVwxJHthY19kQn1cMVwyJHthY19kQ31cMyR7YWNfZER9LGdwCit0IGVuZAorcyxeWwkgXSojWwkgXSpkZWZpbmVbCSBdWwkgXSpcKFteCSBdW14JIF0qXClbCSBdKlwoLipcKSQsJHthY19kQX1cMSR7YWNfZEJ9XDEke2FjX2RDfVwyJHthY19kRH0sZ3AKKzogZW5kCitfQUNFT0YKKyMgSWYgc29tZSBtYWNyb3Mgd2VyZSBjYWxsZWQgc2V2ZXJhbCB0aW1lcyB0aGVyZSBtaWdodCBiZSBzZXZlcmFsIHRpbWVzCisjIHRoZSBzYW1lICNkZWZpbmVzLCB3aGljaCBpcyB1c2VsZXNzLiAgTmV2ZXJ0aGVsZXNzLCB3ZSBtYXkgbm90IHdhbnQgdG8KKyMgc29ydCB0aGVtLCBzaW5jZSB3ZSB3YW50IHRoZSAqbGFzdCogQUMtREVGSU5FIHRvIGJlIGhvbm9yZWQuCit1bmlxIGNvbmZkZWZzLmggfCBzZWQgLW4gLWYgY29uZmRlZjJzZWQuc2VkID5jb25mdGVzdC5kZWZpbmVzCitzZWQgJ3MvYWNfZC9hY191L2cnIGNvbmZ0ZXN0LmRlZmluZXMgPmNvbmZ0ZXN0LnVuZGVmcworcm0gLWYgY29uZmRlZjJzZWQuc2VkCisKKyMgVGhpcyBzZWQgY29tbWFuZCByZXBsYWNlcyAjdW5kZWYgd2l0aCBjb21tZW50cy4gIFRoaXMgaXMgbmVjZXNzYXJ5LCBmb3IKKyMgZXhhbXBsZSwgaW4gdGhlIGNhc2Ugb2YgX1BPU0lYX1NPVVJDRSwgd2hpY2ggaXMgcHJlZGVmaW5lZCBhbmQgcmVxdWlyZWQKKyMgb24gc29tZSBzeXN0ZW1zIHdoZXJlIGNvbmZpZ3VyZSB3aWxsIG5vdCBkZWNpZGUgdG8gZGVmaW5lIGl0LgorY2F0ID4+Y29uZnRlc3QudW5kZWZzIDw8XF9BQ0VPRgorcyxeWwkgXSojWwkgXSp1bmRlZlsJIF1bCSBdKlthLXpBLVpfXVthLXpBLVpfMC05XSosLyogJiAqLywKK19BQ0VPRgorCisjIEJyZWFrIHVwIGNvbmZ0ZXN0LmRlZmluZXMgYmVjYXVzZSBzb21lIHNoZWxscyBoYXZlIGEgbGltaXQgb24gdGhlIHNpemUKKyMgb2YgaGVyZSBkb2N1bWVudHMsIGFuZCBvbGQgc2VkcyBoYXZlIHNtYWxsIGxpbWl0cyB0b28gKDEwMCBjbWRzKS4KK2VjaG8gJyAgIyBIYW5kbGUgYWxsIHRoZSAjZGVmaW5lIHRlbXBsYXRlcyBvbmx5IGlmIG5lY2Vzc2FyeS4nID4+JENPTkZJR19TVEFUVVMKK2VjaG8gJyAgaWYgZ3JlcCAiXlsJIF0qI1sJIF0qZGVmaW5lIiAkdG1wL2luID4vZGV2L251bGw7IHRoZW4nID4+JENPTkZJR19TVEFUVVMKK2VjaG8gJyAgIyBJZiB0aGVyZSBhcmUgbm8gZGVmaW5lcywgd2UgbWF5IGhhdmUgYW4gZW1wdHkgaWYvZmknID4+JENPTkZJR19TVEFUVVMKK2VjaG8gJyAgOicgPj4kQ09ORklHX1NUQVRVUworcm0gLWYgY29uZnRlc3QudGFpbAord2hpbGUgZ3JlcCAuIGNvbmZ0ZXN0LmRlZmluZXMgPi9kZXYvbnVsbAorZG8KKyAgIyBXcml0ZSBhIGxpbWl0ZWQtc2l6ZSBoZXJlIGRvY3VtZW50IHRvICR0bXAvZGVmaW5lcy5zZWQuCisgIGVjaG8gJyAgY2F0ID4kdG1wL2RlZmluZXMuc2VkIDw8Q0VPRicgPj4kQ09ORklHX1NUQVRVUworICAjIFNwZWVkIHVwOiBkb24ndCBjb25zaWRlciB0aGUgbm9uIGAjZGVmaW5lJyBsaW5lcy4KKyAgZWNobyAnL15bCSBdKiNbCSBdKmRlZmluZS8hYicgPj4kQ09ORklHX1NUQVRVUworICAjIFdvcmsgYXJvdW5kIHRoZSBmb3JnZXQtdG8tcmVzZXQtdGhlLWZsYWcgYnVnLgorICBlY2hvICd0IGNscicgPj4kQ09ORklHX1NUQVRVUworICBlY2hvICc6IGNscicgPj4kQ09ORklHX1NUQVRVUworICBzZWQgJHthY19tYXhfaGVyZV9saW5lc31xIGNvbmZ0ZXN0LmRlZmluZXMgPj4kQ09ORklHX1NUQVRVUworICBlY2hvICdDRU9GCisgIHNlZCAtZiAkdG1wL2RlZmluZXMuc2VkICR0bXAvaW4gPiR0bXAvb3V0CisgIHJtIC1mICR0bXAvaW4KKyAgbXYgJHRtcC9vdXQgJHRtcC9pbgorJyA+PiRDT05GSUdfU1RBVFVTCisgIHNlZCAxLCR7YWNfbWF4X2hlcmVfbGluZXN9ZCBjb25mdGVzdC5kZWZpbmVzID5jb25mdGVzdC50YWlsCisgIHJtIC1mIGNvbmZ0ZXN0LmRlZmluZXMKKyAgbXYgY29uZnRlc3QudGFpbCBjb25mdGVzdC5kZWZpbmVzCitkb25lCitybSAtZiBjb25mdGVzdC5kZWZpbmVzCitlY2hvICcgIGZpICMgZ3JlcCcgPj4kQ09ORklHX1NUQVRVUworZWNobyA+PiRDT05GSUdfU1RBVFVTCisKKyMgQnJlYWsgdXAgY29uZnRlc3QudW5kZWZzIGJlY2F1c2Ugc29tZSBzaGVsbHMgaGF2ZSBhIGxpbWl0IG9uIHRoZSBzaXplCisjIG9mIGhlcmUgZG9jdW1lbnRzLCBhbmQgb2xkIHNlZHMgaGF2ZSBzbWFsbCBsaW1pdHMgdG9vICgxMDAgY21kcykuCitlY2hvICcgICMgSGFuZGxlIGFsbCB0aGUgI3VuZGVmIHRlbXBsYXRlcycgPj4kQ09ORklHX1NUQVRVUworcm0gLWYgY29uZnRlc3QudGFpbAord2hpbGUgZ3JlcCAuIGNvbmZ0ZXN0LnVuZGVmcyA+L2Rldi9udWxsCitkbworICAjIFdyaXRlIGEgbGltaXRlZC1zaXplIGhlcmUgZG9jdW1lbnQgdG8gJHRtcC91bmRlZnMuc2VkLgorICBlY2hvICcgIGNhdCA+JHRtcC91bmRlZnMuc2VkIDw8Q0VPRicgPj4kQ09ORklHX1NUQVRVUworICAjIFNwZWVkIHVwOiBkb24ndCBjb25zaWRlciB0aGUgbm9uIGAjdW5kZWYnCisgIGVjaG8gJy9eWwkgXSojWwkgXSp1bmRlZi8hYicgPj4kQ09ORklHX1NUQVRVUworICAjIFdvcmsgYXJvdW5kIHRoZSBmb3JnZXQtdG8tcmVzZXQtdGhlLWZsYWcgYnVnLgorICBlY2hvICd0IGNscicgPj4kQ09ORklHX1NUQVRVUworICBlY2hvICc6IGNscicgPj4kQ09ORklHX1NUQVRVUworICBzZWQgJHthY19tYXhfaGVyZV9saW5lc31xIGNvbmZ0ZXN0LnVuZGVmcyA+PiRDT05GSUdfU1RBVFVTCisgIGVjaG8gJ0NFT0YKKyAgc2VkIC1mICR0bXAvdW5kZWZzLnNlZCAkdG1wL2luID4kdG1wL291dAorICBybSAtZiAkdG1wL2luCisgIG12ICR0bXAvb3V0ICR0bXAvaW4KKycgPj4kQ09ORklHX1NUQVRVUworICBzZWQgMSwke2FjX21heF9oZXJlX2xpbmVzfWQgY29uZnRlc3QudW5kZWZzID5jb25mdGVzdC50YWlsCisgIHJtIC1mIGNvbmZ0ZXN0LnVuZGVmcworICBtdiBjb25mdGVzdC50YWlsIGNvbmZ0ZXN0LnVuZGVmcworZG9uZQorcm0gLWYgY29uZnRlc3QudW5kZWZzCisKK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgorICAjIExldCdzIHN0aWxsIHByZXRlbmQgaXQgaXMgYGNvbmZpZ3VyZScgd2hpY2ggaW5zdGFudGlhdGVzIChpLmUuLCBkb24ndAorICAjIHVzZSAkYXNfbWUpLCBwZW9wbGUgd291bGQgYmUgc3VycHJpc2VkIHRvIHJlYWQ6CisgICMgICAgLyogY29uZmlnLmguICBHZW5lcmF0ZWQgYnkgY29uZmlnLnN0YXR1cy4gICovCisgIGlmIHRlc3QgeCIkYWNfZmlsZSIgPSB4LTsgdGhlbgorICAgIGVjaG8gIi8qIEdlbmVyYXRlZCBieSBjb25maWd1cmUuICAqLyIgPiR0bXAvY29uZmlnLmgKKyAgZWxzZQorICAgIGVjaG8gIi8qICRhY19maWxlLiAgR2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZS4gICovIiA+JHRtcC9jb25maWcuaAorICBmaQorICBjYXQgJHRtcC9pbiA+PiR0bXAvY29uZmlnLmgKKyAgcm0gLWYgJHRtcC9pbgorICBpZiB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtOyB0aGVuCisgICAgaWYgZGlmZiAkYWNfZmlsZSAkdG1wL2NvbmZpZy5oID4vZGV2L251bGwgMj4mMTsgdGhlbgorICAgICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogJGFjX2ZpbGUgaXMgdW5jaGFuZ2VkIiA+JjUKK2VjaG8gIiRhc19tZTogJGFjX2ZpbGUgaXMgdW5jaGFuZ2VkIiA+JjY7fQorICAgIGVsc2UKKyAgICAgIGFjX2Rpcj1gKGRpcm5hbWUgIiRhY19maWxlIikgMj4vZGV2L251bGwgfHwKKyRhc19leHByIFgiJGFjX2ZpbGUiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCisJIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisJIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXCkkJyBcfCBcCisJIFgiJGFjX2ZpbGUiIDogJ1hcKC9cKScgXHwgXAorCSAuICAgICA6ICdcKC5cKScgMj4vZGV2L251bGwgfHwKK2VjaG8gWCIkYWNfZmlsZSIgfAorICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KKyAgCSAgcy8uKi8uLzsgcSdgCisgICAgICB7IGlmICRhc19ta2Rpcl9wOyB0aGVuCisgICAgbWtkaXIgLXAgIiRhY19kaXIiCisgIGVsc2UKKyAgICBhc19kaXI9IiRhY19kaXIiCisgICAgYXNfZGlycz0KKyAgICB3aGlsZSB0ZXN0ICEgLWQgIiRhc19kaXIiOyBkbworICAgICAgYXNfZGlycz0iJGFzX2RpciAkYXNfZGlycyIKKyAgICAgIGFzX2Rpcj1gKGRpcm5hbWUgIiRhc19kaXIiKSAyPi9kZXYvbnVsbCB8fAorJGFzX2V4cHIgWCIkYXNfZGlyIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAorCSBYIiRhc19kaXIiIDogJ1hcKC8vXClbXi9dJyBcfCBcCisJIFgiJGFzX2RpciIgOiAnWFwoLy9cKSQnIFx8IFwKKwkgWCIkYXNfZGlyIiA6ICdYXCgvXCknIFx8IFwKKwkgLiAgICAgOiAnXCguXCknIDI+L2Rldi9udWxsIHx8CitlY2hvIFgiJGFzX2RpciIgfAorICAgIHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXC9cKVteL10uKi97IHMvL1wxLzsgcTsgfQorICAJICAvXlhcKFwvXC9cKSQveyBzLy9cMS87IHE7IH0KKyAgCSAgL15YXChcL1wpLioveyBzLy9cMS87IHE7IH0KKyAgCSAgcy8uKi8uLzsgcSdgCisgICAgZG9uZQorICAgIHRlc3QgISAtbiAiJGFzX2RpcnMiIHx8IG1rZGlyICRhc19kaXJzCisgIGZpIHx8IHsgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5IFwiJGFjX2RpclwiIiA+JjUKK2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5IFwiJGFjX2RpclwiIiA+JjI7fQorICAgeyAoZXhpdCAxKTsgZXhpdCAxOyB9OyB9OyB9CisKKyAgICAgIHJtIC1mICRhY19maWxlCisgICAgICBtdiAkdG1wL2NvbmZpZy5oICRhY19maWxlCisgICAgZmkKKyAgZWxzZQorICAgIGNhdCAkdG1wL2NvbmZpZy5oCisgICAgcm0gLWYgJHRtcC9jb25maWcuaAorICBmaQorZG9uZQorX0FDRU9GCisKK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRgorCit7IChleGl0IDApOyBleGl0IDA7IH0KK19BQ0VPRgorY2htb2QgK3ggJENPTkZJR19TVEFUVVMKK2FjX2NsZWFuX2ZpbGVzPSRhY19jbGVhbl9maWxlc19zYXZlCisKKworIyBjb25maWd1cmUgaXMgd3JpdGluZyB0byBjb25maWcubG9nLCBhbmQgdGhlbiBjYWxscyBjb25maWcuc3RhdHVzLgorIyBjb25maWcuc3RhdHVzIGRvZXMgaXRzIG93biByZWRpcmVjdGlvbiwgYXBwZW5kaW5nIHRvIGNvbmZpZy5sb2cuCisjIFVuZm9ydHVuYXRlbHksIG9uIERPUyB0aGlzIGZhaWxzLCBhcyBjb25maWcubG9nIGlzIHN0aWxsIGtlcHQgb3BlbgorIyBieSBjb25maWd1cmUsIHNvIGNvbmZpZy5zdGF0dXMgd29uJ3QgYmUgYWJsZSB0byB3cml0ZSB0byBpdDsgaXRzCisjIG91dHB1dCBpcyBzaW1wbHkgZGlzY2FyZGVkLiAgU28gd2UgZXhlYyB0aGUgRkQgdG8gL2Rldi9udWxsLAorIyBlZmZlY3RpdmVseSBjbG9zaW5nIGNvbmZpZy5sb2csIHNvIGl0IGNhbiBiZSBwcm9wZXJseSAocmUpb3BlbmVkIGFuZAorIyBhcHBlbmRlZCB0byBieSBjb25maWcuc3RhdHVzLiAgV2hlbiBjb21pbmcgYmFjayB0byBjb25maWd1cmUsIHdlCisjIG5lZWQgdG8gbWFrZSB0aGUgRkQgYXZhaWxhYmxlIGFnYWluLgoraWYgdGVzdCAiJG5vX2NyZWF0ZSIgIT0geWVzOyB0aGVuCisgIGFjX2NzX3N1Y2Nlc3M9OgorICBhY19jb25maWdfc3RhdHVzX2FyZ3M9CisgIHRlc3QgIiRzaWxlbnQiID0geWVzICYmCisgICAgYWNfY29uZmlnX3N0YXR1c19hcmdzPSIkYWNfY29uZmlnX3N0YXR1c19hcmdzIC0tcXVpZXQiCisgIGV4ZWMgNT4vZGV2L251bGwKKyAgJFNIRUxMICRDT05GSUdfU1RBVFVTICRhY19jb25maWdfc3RhdHVzX2FyZ3MgfHwgYWNfY3Nfc3VjY2Vzcz1mYWxzZQorICBleGVjIDU+PmNvbmZpZy5sb2cKKyAgIyBVc2UgfHwsIG5vdCAmJiwgdG8gYXZvaWQgZXhpdGluZyBmcm9tIHRoZSBpZiB3aXRoICQ/ID0gMSwgd2hpY2gKKyAgIyB3b3VsZCBtYWtlIGNvbmZpZ3VyZSBmYWlsIGlmIHRoaXMgaXMgdGhlIGxhc3QgaW5zdHJ1Y3Rpb24uCisgICRhY19jc19zdWNjZXNzIHx8IHsgKGV4aXQgMSk7IGV4aXQgMTsgfQorZmkKKwpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvZXhhbXBsZXMvcmxmZS9jb25maWd1cmUuaW4gYi9yZWFkbGluZS9leGFtcGxlcy9ybGZlL2NvbmZpZ3VyZS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDY4NTQxCi0tLSAvZGV2L251bGwKKysrIGIvcmVhZGxpbmUvZXhhbXBsZXMvcmxmZS9jb25maWd1cmUuaW4KQEAgLTAsMCArMSw0MzggQEAKK2RubCBQcm9jZXNzIHRoaXMgZmlsZSB3aXRoIGF1dG9jb25mIHRvIHByb2R1Y2UgYSBjb25maWd1cmUgc2NyaXB0LgorCitBQ19JTklUKHJsZmUuYykKK0FDX0NPTkZJR19IRUFERVIoY29uZmlnLmgpCitWRVJTSU9OPTAuNAorQUNfU1VCU1QoVkVSU0lPTikKKworZG5sCitkbmwgRGVmaW5lIHNvbWUgdXNlZnVsIG1hY3JvcworZG5sCitBQ19ERUZVTihBQ19QUk9HUkFNX1NPVVJDRSwKK1tBQ19SRVFVSVJFKFtBQ19QUk9HX0NQUF0pQUNfUFJPVklERShbJDBdKWNhdCA+IGNvbmZ0ZXN0LmMgPDxFT0YKKyNpbmNsdWRlICJjb25mZGVmcy5oIgorWyQxXQorX0NVVF9IRVJFXworWyQyXQorRU9GCitldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LmMgMj4mNSB8IHNlZCAtZSAnMSwvX0NVVF9IRVJFXy9kJyAtZSAncy8gLy9nJyA+IGNvbmZ0ZXN0Lm91dCIKKy4gLi9jb25mdGVzdC5vdXQKK3JtIC1mIGNvbmZ0ZXN0KgorXSlkbmwKK2RubAorZGVmaW5lKEFDX05PVEUsCitbZWNobyAiJDEiIDE+JkFDX0ZEX01TRworXSlkbmwKKworb2xkX0NGTEFHUz0iJENGTEFHUyIKK0FDX1BST0dfQ0MKK0FDX1BST0dfQ1BQCitBQ19QUk9HX0dDQ19UUkFESVRJT05BTAorQUNfSVNDX1BPU0lYCisKK0FDX1RSWV9SVU4obWFpbigpe2V4aXQoMCk7fSwsWworaWYgdGVzdCAkQ0MgIT0gY2MgOyB0aGVuCitBQ19OT1RFKFlvdXIgJENDIGZhaWxlZCAtIHJlc3RhcnRpbmcgd2l0aCBDQz1jYykKK0FDX05PVEUoKQorQ0M9Y2MKK2V4cG9ydCBDQworZXhlYyAkMCAkY29uZmlndXJlX2FyZ3MKK2ZpCitdKQorCitBQ19UUllfUlVOKG1haW4oKXtleGl0KDApO30sLAorZXhlYyA1PiYyCitldmFsICRhY19saW5rCitBQ19OT1RFKENDPSRDQzsgQ0ZMQUdTPSRDRkxBR1M7IExJQlM9JExJQlM7KQorQUNfTk9URSgkYWNfY29tcGlsZSkKK0FDX01TR19FUlJPUihDYW4ndCBydW4gdGhlIGNvbXBpbGVyIC0gc29ycnkpKQorCitBQ19UUllfUlVOKFsKK21haW4oKQoreworICBpbnQgX19zb21ldGhpbmdfc3RyYW5nZV8oKTsKKyAgX19zb21ldGhpbmdfc3RyYW5nZV8oMCk7Cit9CitdLEFDX01TR19FUlJPUihZb3VyIGNvbXBpbGVyIGRvZXMgbm90IHNldCB0aGUgZXhpdCBzdGF0dXMgLSBzb3JyeSkpCisKK0FDX1BST0dfQVdLCisKK2lmIHRlc3QgLWYgZXRjL3Rvb2xjaGVjazsgdGhlbgorQUNfQ0hFQ0tJTkcoZm9yIGJ1Z2d5IHRvb2xzKQorc2ggZXRjL3Rvb2xjaGVjayAxPiZBQ19GRF9NU0cKK2ZpCisKK2RubAorZG5sICAgICoqKiogIHNwZWNpYWwgdW5peCB2YXJpYW50cyAgKioqKgorZG5sCisKK0FDX0NIRUNLSU5HKGZvciBTeXN0ZW0gVikKK0FDX1RSWV9DT01QSUxFKAorWyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDxmY250bC5oPl0sIFtpbnQgeCA9IFNJR0NITEQgfCBGTkRFTEFZO10sICwgQUNfREVGSU5FKFNZU1YpKQorCitBQ19DSEVDS0lORyhmb3IgU29sYXJpcyAyLngpCitBQ19FR1JFUF9DUFAoeWVzLAorWyNpZiBkZWZpbmVkKFNWUjQpICYmIGRlZmluZWQoc3VuKQorICB5ZXMKKyNlbmRpZgorXSwgTElCUz0iJExJQlMgLWxzb2NrZXQgLWxuc2wgLWxrc3RhdCIpCisKK2RubAorZG5sICAgICoqKiogIHNlbGVjdCgpICAqKioqCitkbmwKKworQUNfQ0hFQ0tJTkcoc2VsZWN0KQorQUNfVFJZX0xJTksoLFtzZWxlY3QoMCwgMCwgMCwgMCwgMCk7XSwsIAorTElCUz0iJExJQlMgLWxuZXQgLWxuc2wiCitBQ19DSEVDS0lORyhzZWxlY3Qgd2l0aCAkTElCUykKK0FDX1RSWV9MSU5LKCxbc2VsZWN0KDAsIDAsIDAsIDAsIDApO10sLCAKK0FDX01TR19FUlJPUighISEgbm8gc2VsZWN0IC0gbm8gc2NyZWVuKSkKKykKK2RubAorZG5sICAgICoqKiogIGNoZWNrIHRoZSBzZWxlY3QgaW1wbGVtZW50YXRpb24gKioqKgorZG5sCisKK0FDX0NIRUNLSU5HKHNlbGVjdCByZXR1cm4gdmFsdWUpCitBQ19UUllfUlVOKFsKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisKK2NoYXIgKm5hbSA9ICIvdG1wL2NvbmZ0ZXN0JCQiOworCisjaWZkZWYgTkFNRURQSVBFCisKKyNpZm5kZWYgT19OT05CTE9DSworI2RlZmluZSBPX05PTkJMT0NLIE9fTkRFTEFZCisjZW5kaWYKKyNpZm5kZWYgU19JRklGTworI2RlZmluZSBTX0lGSUZPIDAwMTAwMDAKKyNlbmRpZgorCisKK21haW4oKQoreworI2lmZGVmIEZEX1NFVAorICBmZF9zZXQgZjsKKyNlbHNlCisgIGludCBmOworI2VuZGlmCisKKyNpZmRlZiBfX0ZyZWVCU0RfXworLyogRnJvbSBBbmRyZXcgQS4gQ2hlcm5vdiAoYWNoZUBhc3RyYWwubXNrLnN1KToKKyAqIG9wZW5pbmcgUkRXUiBmaWZvIGZhaWxzIGluIEJTRCA0LjQsIGJ1dCBzZWxlY3QgcmV0dXJuIHZhbHVlcyBhcmUKKyAqIHJpZ2h0LgorICovCisgIGV4aXQoMCk7CisjZW5kaWYKKyAgKHZvaWQpYWxhcm0oNSk7CisjaWZkZWYgUE9TSVgKKyAgaWYgKG1rZmlmbyhuYW0sIDA3NzcpKQorI2Vsc2UKKyAgaWYgKG1rbm9kKG5hbSwgU19JRklGT3wwNzc3LCAwKSkKKyNlbmRpZgorICAgIGV4aXQoMSk7CisgIGNsb3NlKDApOworICBpZiAob3BlbihuYW0sIE9fUkRXUiB8IE9fTk9OQkxPQ0spKQorICAgIGV4aXQoMSk7CisgIGlmICh3cml0ZSgwLCAiVEVTVCIsIDQpID09IC0xKQorICAgIGV4aXQoMSk7CisKKyNlbHNlCisKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisjaW5jbHVkZSA8c3lzL3VuLmg+CisKK21haW4oKQoreworICBpbnQgczEsIHMyLCBsOworICBzdHJ1Y3Qgc29ja2FkZHJfdW4gYTsKKyNpZmRlZiBGRF9TRVQKKyAgZmRfc2V0IGY7CisjZWxzZQorICBpbnQgZjsKKyNlbmRpZgorCisgICh2b2lkKWFsYXJtKDUpOworICBpZiAoKHMxID0gc29ja2V0KEFGX1VOSVgsIFNPQ0tfU1RSRUFNLCAwKSkgPT0gLTEpCisgICAgZXhpdCgxKTsKKyAgYS5zdW5fZmFtaWx5ID0gQUZfVU5JWDsKKyAgc3RyY3B5KGEuc3VuX3BhdGgsIG5hbSk7CisgICh2b2lkKSB1bmxpbmsobmFtKTsKKyAgaWYgKGJpbmQoczEsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJmEsIHN0cmxlbihuYW0pKzIpID09IC0xKQorICAgIGV4aXQoMSk7CisgIGlmIChsaXN0ZW4oczEsIDIpKQorICAgIGV4aXQoMSk7CisgIGlmIChmb3JrKCkgPT0gMCkKKyAgICB7CisgICAgICBpZiAoKHMyID0gc29ja2V0KEFGX1VOSVgsIFNPQ0tfU1RSRUFNLCAwKSkgPT0gLTEpCisJa2lsbChnZXRwcGlkKCksIDMpOworICAgICAgKHZvaWQpY29ubmVjdChzMiwgKHN0cnVjdCBzb2NrYWRkciAqKSZhLCBzdHJsZW4obmFtKSArIDIpOworICAgICAgaWYgKHdyaXRlKHMyLCAiSEVMTE8iLCA1KSA9PSAtMSkKKwlraWxsKGdldHBwaWQoKSwgMyk7CisgICAgICBleGl0KDApOworICAgIH0KKyAgbCA9IHNpemVvZihhKTsKKyAgY2xvc2UoMCk7CisgIGlmIChhY2NlcHQoczEsIChzdHJ1Y3Qgc29ja2FkZHIgKikmYSwgJmwpKQorICAgIGV4aXQoMSk7CisjZW5kaWYKKworCisjaWZkZWYgRkRfU0VUCisgIEZEX1NFVCgwLCAmZik7CisjZWxzZQorICBmID0gMTsKKyNlbmRpZgorICBpZiAoc2VsZWN0KDEsICZmLCAwLCAwLCAwKSA9PSAtMSkKKyAgICBleGl0KDEpOworICBpZiAoc2VsZWN0KDEsICZmLCAmZiwgMCwgMCkgIT0gMikKKyAgICBleGl0KDEpOworICBleGl0KDApOworfQorXSxBQ19OT1RFKC0gc2VsZWN0IGlzIG9rKSwKK0FDX05PVEUoLSBzZWxlY3QgY2FuJ3QgY291bnQpIEFDX0RFRklORShTRUxFQ1RfQlJPS0VOKSkKKworZG5sCitkbmwgICAgKioqKiAgdGVybWNhcCBvciB0ZXJtaW5mbyAgKioqKgorZG5sCitBQ19DSEVDS0lORyhmb3IgdGdldGVudCkKK0FDX1RSWV9MSU5LKCx0Z2V0ZW50KChjaGFyICopMCwgKGNoYXIgKikwKTssLAorb2xpYnM9IiRMSUJTIgorTElCUz0iLWxjdXJzZXMgJG9saWJzIgorQUNfQ0hFQ0tJTkcobGliY3Vyc2VzKQorQUNfVFJZX0xJTksoLFsKKyNpZmRlZiBfX2hwdXgKK19fc29ycnlfaHB1eF9saWJjdXJzZXNfaXNfdG90YWxseV9icm9rZW5faW5fMTBfMTAoKTsKKyNlbHNlCit0Z2V0ZW50KChjaGFyICopMCwgKGNoYXIgKikwKTsKKyNlbmRpZgorXSwsCitMSUJTPSItbHRlcm1jYXAgJG9saWJzIgorQUNfQ0hFQ0tJTkcobGlidGVybWNhcCkKK0FDX1RSWV9MSU5LKCx0Z2V0ZW50KChjaGFyICopMCwgKGNoYXIgKikwKTssLAorTElCUz0iLWx0ZXJtbGliICRvbGlicyIKK0FDX0NIRUNLSU5HKGxpYnRlcm1saWIpCitBQ19UUllfTElOSygsdGdldGVudCgoY2hhciAqKTAsIChjaGFyICopMCk7LCwKK0xJQlM9Ii1sbmN1cnNlcyAkb2xpYnMiCitBQ19DSEVDS0lORyhsaWJuY3Vyc2VzKQorQUNfVFJZX0xJTksoLHRnZXRlbnQoKGNoYXIgKikwLCAoY2hhciAqKTApOywsCitBQ19NU0dfRVJST1IoISEhIG5vIHRnZXRlbnQgLSBubyBzY3JlZW4pKSkpKSkKKworQUNfVFJZX1JVTihbCittYWluKCkKK3sKKyBleGl0KHN0cmNtcCh0Z290bygiJXAxJWQiLCAwLCAxKSwgIjEiKSA/IDAgOiAxKTsKK31dLCBBQ19OT1RFKC0geW91IHVzZSB0aGUgdGVybWNhcCBkYXRhYmFzZSksCitBQ19OT1RFKC0geW91IHVzZSB0aGUgdGVybWluZm8gZGF0YWJhc2UpIEFDX0RFRklORShURVJNSU5GTykpCitBQ19DSEVDS0lORyhvc3BlZWQpCitBQ19UUllfTElOSyhleHRlcm4gc2hvcnQgb3NwZWVkOyxvc3BlZWQ9NTssLEFDX0RFRklORShORUVEX09TUEVFRCkpCisKK2RubAorZG5sICAgICoqKiogIFBUWSBzcGVjaWZpYyB0aGluZ3MgICoqKioKK2RubAorQUNfQ0hFQ0tJTkcoZm9yIC9kZXYvcHRjKQoraWYgdGVzdCAtciAvZGV2L3B0YzsgdGhlbgorQUNfREVGSU5FKEhBVkVfREVWX1BUQykKK2ZpCisKK0FDX0NIRUNLSU5HKGZvciBTVlI0IHB0eXMpCitzeXN2cjRwdHlzPQoraWYgdGVzdCAtYyAvZGV2L3B0bXggOyB0aGVuCitBQ19UUllfTElOSyhbXSxbcHRzbmFtZSgwKTtncmFudHB0KDApO3VubG9ja3B0KDApO10sW0FDX0RFRklORShIQVZFX1NWUjRfUFRZUykKK3N5c3ZyNHB0eXM9MV0pCitmaQorCitBQ19DSEVDS19GVU5DUyhnZXRwdCkKKworZG5sIGNoZWNrIGZvciBvcGVucHR5KCkKK2lmIHRlc3QgLXogIiRzeXN2cjRwdHlzIjsgdGhlbgorQUNfQ0hFQ0tfRlVOQ1Mob3BlbnB0eSwsCitbQUNfQ0hFQ0tfTElCKHV0aWwsb3BlbnB0eSwgW0FDX0RFRklORShIQVZFX09QRU5QVFkpXSBbTElCUz0iJExJQlMgLWx1dGlsIl0pXSkKK2ZpCisKK0FDX0NIRUNLSU5HKGZvciBwdHlyYW5nZXMpCitpZiB0ZXN0IC1kIC9kZXYvcHR5bSA7IHRoZW4KK3BkaXI9Jy9kZXYvcHR5bScKK2Vsc2UKK3BkaXI9Jy9kZXYnCitmaQorZG5sIFNDTyB1c2VzIHB0eXAlZAorQUNfRUdSRVBfQ1BQKHllcywKK1sjaWZkZWYgTV9VTklYCisgICB5ZXM7CisjZW5kaWYKK10sIHB0eXM9YGVjaG8gL2Rldi9wdHlwPz9gLCBwdHlzPWBlY2hvICRwZGlyL3B0eT8/YCkKK2RubCBpZiB0ZXN0IC1jIC9kZXYvcHR5cDE5OyB0aGVuCitkbmwgcHR5cz1gZWNobyAvZGV2L3B0eXA/P2AKK2RubCBlbHNlCitkbmwgcHR5cz1gZWNobyAkcGRpci9wdHk/P2AKK2RubCBmaQoraWYgdGVzdCAiJHB0eXMiICE9ICIkcGRpci9wdHk/PyIgOyB0aGVuCitwMD1gZWNobyAkcHR5cyB8IHRyICcgJyAnXDAxMicgfCBzZWQgLWUgJ3MvXi4qXCguXCkuJC9cMS9nJyB8IHNvcnQgLXUgfCB0ciAtZCAnXDAxMidgCitwMT1gZWNobyAkcHR5cyB8IHRyICcgJyAnXDAxMicgfCBzZWQgLWUgJ3MvXi4qXCguXCkkL1wxL2cnICB8IHNvcnQgLXUgfCB0ciAtZCAnXDAxMidgCitBQ19ERUZJTkVfVU5RVU9URUQoUFRZUkFOR0UwLCIkcDAiKQorQUNfREVGSU5FX1VOUVVPVEVEKFBUWVJBTkdFMSwiJHAxIikKK2ZpCisKK2RubCAgICAqKioqICBwdHkgbW9kZS9ncm91cCBoYW5kbGluZyAqKioqCitkbmwKK2RubCBzdXBwb3J0IHByb3ZpZGVkIGJ5IEx1a2UgTWV3YnVybiA8bG1Acm1pdC5lZHUuYXU+LCA5MzEyMjIKK0FDX0FSR19XSVRIKHB0eS1tb2RlLCBbICAtLXdpdGgtcHR5LW1vZGU9bW9kZSAgICBkZWZhdWx0IG1vZGUgZm9yIHB0eXNdLCBbIHB0eW1vZGU9IiR7d2l0aHZhbH0iIF0pCitBQ19BUkdfV0lUSChwdHktZ3JvdXAsIFsgIC0td2l0aC1wdHktZ3JvdXA9Z3JvdXAgIGRlZmF1bHQgZ3JvdXAgZm9yIHB0eXNdLCBbIHB0eWdycD0iJHt3aXRodmFsfSIgXSkKK3Rlc3QgLW4gIiRwdHltb2RlIiB8fCBwdHltb2RlPTA2MjAKK2lmIHRlc3QgLW4gIiRwdHlncnAiIDsgdGhlbgorQUNfREVGSU5FX1VOUVVPVEVEKFBUWU1PREUsICRwdHltb2RlKQorQUNfREVGSU5FX1VOUVVPVEVEKFBUWUdST1VQLCRwdHlncnApCitlbHNlCisKK0FDX0NIRUNLSU5HKGRlZmF1bHQgdHR5IHBlcm1pc3Npb25zL2dyb3VwKQorcm0gLWYgY29uZnRlc3RfZ3JwCitBQ19UUllfUlVOKFsKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CittYWluKCkKK3sKKyAgc3RydWN0IHN0YXQgc2I7CisgIGNoYXIgKngsKnR0eW5hbWUoKTsKKyAgaW50IG9tLCBtOworICBGSUxFICpmcDsKKworICBpZiAoISh4ID0gdHR5bmFtZSgwKSkpIGV4aXQoMSk7CisgIGlmIChzdGF0KHgsICZzYikpIGV4aXQoMSk7CisgIG9tID0gc2Iuc3RfbW9kZTsKKyAgaWYgKG9tICYgMDAyKSBleGl0KDApOworICBtID0gc3lzdGVtKCJtZXNnIHkiKTsKKyAgaWYgKG0gPT0gLTEgfHwgbSA9PSAxMjcpIGV4aXQoMSk7CisgIGlmIChzdGF0KHgsICZzYikpIGV4aXQoMSk7CisgIG0gPSBzYi5zdF9tb2RlOworICBpZiAoY2htb2QoeCwgb20pKSBleGl0KDEpOworICBpZiAobSAmIDAwMikgZXhpdCgwKTsKKyAgaWYgKHNiLnN0X2dpZCA9PSBnZXRnaWQoKSkgZXhpdCgxKTsKKyAgaWYgKCEoZnA9Zm9wZW4oImNvbmZ0ZXN0X2dycCIsICJ3IikpKQorICAgIGV4aXQoMSk7CisgIGZwcmludGYoZnAsICIlZFxuIiwgc2Iuc3RfZ2lkKTsKKyAgZmNsb3NlKGZwKTsKKyAgZXhpdCgwKTsKK30KK10sWworICAgIGlmIHRlc3QgLWYgY29uZnRlc3RfZ3JwOyB0aGVuCisJcHR5Z3JwPWBjYXQgY29uZnRlc3RfZ3JwYAorCUFDX05PVEUoWy0gcHR5IG1vZGU6ICRwdHltb2RlLCBncm91cDogJHB0eWdycF0pCisJQUNfREVGSU5FX1VOUVVPVEVEKFBUWU1PREUsICRwdHltb2RlKQorCUFDX0RFRklORV9VTlFVT1RFRChQVFlHUk9VUCwkcHR5Z3JwKQorICAgIGVsc2UKKwlBQ19OT1RFKC0gcHR5cyBhcmUgd29ybGQgYWNjZXNzYWJsZSkKKyAgICBmaQorXSxbCisgICAgV1JJVEVQQVRIPScnCisgICAgWFRFUk1QQVRIPScnCisgICAgQUNfUEFUSF9QUk9HKFdSSVRFUEFUSCwgd3JpdGUpCisgICAgQUNfUEFUSF9QUk9HKFhURVJNUEFUSCwgeHRlcm0pCisgICAgZm91bmQ9CisgICAgaWYgdGVzdCAtbiAiJFdSSVRFUEFUSCRYVEVSTVBBVEgiOyB0aGVuCisgICAgICBmaW5kZm9sbG93PQorICAgICAgbHNmb2xsb3c9CisgICAgICBmb3VuZD1gZmluZCAkV1JJVEVQQVRIICRYVEVSTVBBVEggLWZvbGxvdyAtcHJpbnQgMj4vZGV2L251bGxgCisgICAgICBpZiB0ZXN0IC1uICIkZm91bmQiOyB0aGVuCisJZmluZGZvbGxvdz0tZm9sbG93CisJbHNmb2xsb3c9TAorICAgICAgZmkKKyAgICAgIGlmIHRlc3QgLW4gIiRYVEVSTVBBVEgiOyB0aGVuCisJcHR5Z3Jwbj1gbHMgLWwkbHNmb2xsb3cgJFhURVJNUEFUSCB8IHNlZCAtbiAtZSAxcCB8ICRBV0sgJ3twcmludCAkNH0nYAorCWlmIHRlc3QgdHR5ICE9ICIkcHR5Z3JwbiI7IHRoZW4KKwkgIFhURVJNUEFUSD0KKwlmaQorICAgICAgZmkKKyAgICBmaQorICAgIGlmIHRlc3QgLW4gIiRXUklURVBBVEgkWFRFUk1QQVRIIjsgdGhlbgorICAgICAgZm91bmQ9YGZpbmQgJFdSSVRFUEFUSCAkWFRFUk1QQVRIICRmaW5kZm9sbG93IC1wZXJtIC0yMDAwIC1wcmludGAgCisgICAgICBpZiB0ZXN0IC1uICIkZm91bmQiOyB0aGVuCisJcHR5Z3JwPWBscyAtbG4kbHNmb2xsb3cgJGZvdW5kIHwgc2VkIC1uIC1lIDFwIHwgJEFXSyAne3ByaW50ICQ0fSdgCisJQUNfTk9URShbLSBwdHkgbW9kZTogJHB0eW1vZGUsIGdyb3VwOiAkcHR5Z3JwXSkKKwlBQ19ERUZJTkVfVU5RVU9URUQoUFRZTU9ERSwgJHB0eW1vZGUpCisJQUNfREVGSU5FX1VOUVVPVEVEKFBUWUdST1VQLCRwdHlncnApCisgICAgICBlbHNlCisJQUNfTk9URSgtIHB0eXMgYXJlIHdvcmxkIGFjY2Vzc2FibGUpCisgICAgICBmaQorICAgIGVsc2UKKyAgICAgIEFDX05PVEUoLSBjYW4ndCBkZXRlcm1pbmUgLSBhc3N1bWUgcHR5cyBhcmUgd29ybGQgYWNjZXNzYWJsZSkKKyAgICBmaQorICBdCispCitybSAtZiBjb25mdGVzdF9ncnAKK2ZpCisKK2RubAorZG5sICAgICoqKiogIHNpZ25hbCBoYW5kbGluZyAgKioqKgorZG5sCitpZiB0ZXN0IC1uICIkcG9zaXgiIDsgdGhlbgorCitkbmwgUE9TSVggaGFzIHJlbGlhYmxlIHNpZ25hbHMgd2l0aCB2b2lkIHJldHVybiB0eXBlLgorQUNfTk9URShhc3N1bWluZyBwb3NpeCBzaWduYWwgZGVmaW5pdGlvbikKK0FDX0RFRklORShTSUdWT0lEKQorCitlbHNlCisKK0FDX0NIRUNLSU5HKHJldHVybiB0eXBlIG9mIHNpZ25hbCBoYW5kbGVycykKK0FDX1RSWV9DT01QSUxFKAorWyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNpZmRlZiBzaWduYWwKKyN1bmRlZiBzaWduYWwKKyNlbmRpZgorZXh0ZXJuIHZvaWQgKCpzaWduYWwgKCkpICgpO10sIFtpbnQgaTtdLCBBQ19ERUZJTkUoU0lHVk9JRCkpCitBQ19DSEVDS0lORyhzaWdzZXQpCitBQ19UUllfTElOSyhbCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CitdLFsKKyNpZmRlZiBTSUdWT0lECitzaWdzZXQoMCwgKHZvaWQgKCopKCkpMCk7CisjZWxzZQorc2lnc2V0KDAsIChpbnQgKCopKCkpMCk7CisjZW5kaWYKK10sIEFDX0RFRklORShVU0VTSUdTRVQpKQorQUNfQ0hFQ0tJTkcoc2lnbmFsIGltcGxlbWVudGF0aW9uKQorQUNfVFJZX1JVTihbCisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisKKyNpZm5kZWYgU0lHQ0xECisjZGVmaW5lIFNJR0NMRCBTSUdDSExECisjZW5kaWYKKyNpZmRlZiBVU0VTSUdTRVQKKyNkZWZpbmUgc2lnbmFsIHNpZ3NldAorI2VuZGlmCisKK2ludCBnb3Q7CisKKyNpZmRlZiBTSUdWT0lECit2b2lkCisjZW5kaWYKK2hhbmQoKQoreworICBnb3QrKzsKK30KKworbWFpbigpCit7CisgIC8qIG9uIGhwdXggd2UgdXNlIHNpZ3ZlYyB0byBnZXQgYnNkIHNpZ25hbHMgKi8KKyNpZmRlZiBfX2hwdXgKKyAgKHZvaWQpc2lnbmFsKFNJR0NMRCwgaGFuZCk7CisgIGtpbGwoZ2V0cGlkKCksIFNJR0NMRCk7CisgIGtpbGwoZ2V0cGlkKCksIFNJR0NMRCk7CisgIGlmIChnb3QgPCAyKQorICAgIGV4aXQoMSk7CisjZW5kaWYKKyAgZXhpdCgwKTsKK30KK10sLEFDX0RFRklORShTWVNWU0lHUykpCisKK2ZpCisKK0FDX09VVFBVVChNYWtlZmlsZSkKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2V4YW1wbGVzL3JsZmUvZXh0ZXJuLmggYi9yZWFkbGluZS9leGFtcGxlcy9ybGZlL2V4dGVybi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjYWNlMmMKLS0tIC9kZXYvbnVsbAorKysgYi9yZWFkbGluZS9leGFtcGxlcy9ybGZlL2V4dGVybi5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qIENvcHlyaWdodCAoYykgMTk5My0yMDAyCisgKiAgICAgIEp1ZXJnZW4gV2VpZ2VydCAoam53ZWlnZXJAaW1tZDQuaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGUpCisgKiAgICAgIE1pY2hhZWwgU2Nocm9lZGVyIChtbHNjaHJvZUBpbW1kNC5pbmZvcm1hdGlrLnVuaS1lcmxhbmdlbi5kZSkKKyAqIENvcHlyaWdodCAoYykgMTk4NyBPbGl2ZXIgTGF1bWFubgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKQorICogYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0gKHNlZSB0aGUgZmlsZSBDT1BZSU5HKTsgaWYgbm90LCB3cml0ZSB0byB0aGUKKyAqIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKKyAqIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNywgVVNBCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICRJZCQgRkFVCisgKi8KKworI2lmICFkZWZpbmVkKF9fR05VQ19fKSB8fCBfX0dOVUNfXyA8IDIKKyN1bmRlZiBfX2F0dHJpYnV0ZV9fCisjZGVmaW5lIF9fYXR0cmlidXRlX18oeCkKKyNlbmRpZgorCisvKiBwdHkuYyAqLworZXh0ZXJuIGludCAgIE9wZW5QVFkgX19QKChjaGFyICoqKSk7CitleHRlcm4gdm9pZCAgSW5pdFBUWSBfX1AoKGludCkpOworCmRpZmYgLS1naXQgYS9yZWFkbGluZS9leGFtcGxlcy9ybGZlL29zLmggYi9yZWFkbGluZS9leGFtcGxlcy9ybGZlL29zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTk5NGZlNgotLS0gL2Rldi9udWxsCisrKyBiL3JlYWRsaW5lL2V4YW1wbGVzL3JsZmUvb3MuaApAQCAtMCwwICsxLDUzMCBAQAorLyogQ29weXJpZ2h0IChjKSAxOTkzLTIwMDIKKyAqICAgICAgSnVlcmdlbiBXZWlnZXJ0IChqbndlaWdlckBpbW1kNC5pbmZvcm1hdGlrLnVuaS1lcmxhbmdlbi5kZSkKKyAqICAgICAgTWljaGFlbCBTY2hyb2VkZXIgKG1sc2Nocm9lQGltbWQ0LmluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlKQorICogQ29weXJpZ2h0IChjKSAxOTg3IE9saXZlciBMYXVtYW5uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBvcHRpb24pCisgKiBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbSAoc2VlIHRoZSBmaWxlIENPUFlJTkcpOyBpZiBub3QsIHdyaXRlIHRvIHRoZQorICogRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLAorICogNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3LCBVU0EKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogJElkJCBGQVUKKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorCisjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CisKKy8qIEluIHN0cmljdCBBTlNJIG1vZGUsIEhQLVVYIG1hY2hpbmVzIGRlZmluZSBfX2hwdXggYnV0IG5vdCBocHV4ICovCisjaWYgZGVmaW5lZChfX2hwdXgpICYmICFkZWZpbmVkKGhwdXgpCisjIGRlZmluZSBocHV4CisjZW5kaWYKKworI2lmIGRlZmluZWQoX19ic2RpX18pIHx8IGRlZmluZWQoX18zODZCU0RfXykgfHwgZGVmaW5lZChfQ1hfVVgpIHx8IGRlZmluZWQoaHB1eCkgfHwgZGVmaW5lZChfSUJNUjIpIHx8IGRlZmluZWQobGludXgpCisjIGluY2x1ZGUgPHNpZ25hbC5oPgorI2VuZGlmIC8qIF9fYnNkaV9fIHx8IF9fMzg2QlNEX18gfHwgX0NYX1VYIHx8IGhwdXggfHwgX0lCTVIyIHx8IGxpbnV4ICovCisKKyNpZmRlZiBJU0MKKyMgaWZkZWYgRU5BTUVUT09MT05HCisjICB1bmRlZiBFTkFNRVRPT0xPTkcKKyMgZW5kaWYKKyMgaWZkZWYgRU5PVEVNUFRZCisjICB1bmRlZiBFTk9URU1QVFkKKyMgZW5kaWYKKyMgaW5jbHVkZSA8c3lzL2JzZHR5cGVzLmg+CisjIGluY2x1ZGUgPG5ldC9lcnJuby5oPgorI2VuZGlmCisKKyNpZmRlZiBzdW4KKyMgZGVmaW5lIGdldHBncnAgX19nZXRwZ3JwCisjIGRlZmluZSBleGl0IF9fZXhpdAorI2VuZGlmCisjaWZkZWYgUE9TSVgKKyMgaW5jbHVkZSA8dW5pc3RkLmg+CisjIGlmIGRlZmluZWQoX19TVERDX18pCisjICBpbmNsdWRlIDxzdGRsaWIuaD4KKyMgZW5kaWYgLyogX19TVERDX18gKi8KKyNlbmRpZiAvKiBQT1NJWCAqLworI2lmZGVmIHN1bgorIyB1bmRlZiBnZXRwZ3JwCisjIHVuZGVmIGV4aXQKKyNlbmRpZiAvKiBzdW4gKi8KKworI2lmbmRlZiBsaW51eCAvKiBhbGwgZG9uZSBpbiA8ZXJybm8uaD4gKi8KK2V4dGVybiBpbnQgZXJybm87CisjZW5kaWYgLyogbGludXggKi8KKyNpZm5kZWYgSEFWRV9TVFJFUlJPUgorLyogTm8gbWFjcm9zLCBwbGVhc2UgKi8KKyN1bmRlZiBzdHJlcnJvcgorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChTWVNWKSAmJiAhZGVmaW5lZChsaW51eCkKKyMgaWZkZWYgTkVXU09TCisjICBkZWZpbmUgc3RybGVuIF9fX3N0cmxlbl9fXworIyAgaW5jbHVkZSA8c3RyaW5ncy5oPgorIyAgdW5kZWYgc3RybGVuCisjIGVsc2UgLyogTkVXU09TICovCisjICBpbmNsdWRlIDxzdHJpbmdzLmg+CisjIGVuZGlmIC8qIE5FV1NPUyAqLworI2Vsc2UgLyogU1lTViAqLworIyBpZiBkZWZpbmVkKFNWUjQpIHx8IGRlZmluZWQoTkVXU09TKQorIyAgZGVmaW5lIHN0cmxlbiBfX19zdHJsZW5fX18KKyMgIGluY2x1ZGUgPHN0cmluZy5oPgorIyAgdW5kZWYgc3RybGVuCisjICBpZiAhZGVmaW5lZChORVdTT1MpICYmICFkZWZpbmVkKF9faHB1eCkKKyAgICBleHRlcm4gc2l6ZV90IHN0cmxlbihjb25zdCBjaGFyICopOworIyAgZW5kaWYKKyMgZWxzZSAvKiBTVlI0ICovCisjICBpbmNsdWRlIDxzdHJpbmcuaD4KKyMgZW5kaWYgLyogU1ZSNCAqLworI2VuZGlmIC8qIFNZU1YgKi8KKworI2lmZGVmIFVTRVZBUkFSR1MKKyMgaWYgZGVmaW5lZChfX1NURENfXykKKyMgIGluY2x1ZGUgPHN0ZGFyZy5oPgorIyAgZGVmaW5lIFZBX0xJU1QodmFyKSB2YV9saXN0IHZhcjsKKyMgIGRlZmluZSBWQV9ET1RTIC4uLgorIyAgZGVmaW5lIFZBX0RFQ0wKKyMgIGRlZmluZSBWQV9TVEFSVChhcCwgZm10KSB2YV9zdGFydChhcCwgZm10KQorIyAgZGVmaW5lIFZBX0FSR1MoYXApIGFwCisjICBkZWZpbmUgVkFfRU5EKGFwKSB2YV9lbmQoYXApCisjIGVsc2UKKyMgIGluY2x1ZGUgPHZhcmFyZ3MuaD4KKyMgIGRlZmluZSBWQV9MSVNUKHZhcikgdmFfbGlzdCB2YXI7CisjICBkZWZpbmUgVkFfRE9UUyB2YV9hbGlzdAorIyAgZGVmaW5lIFZBX0RFQ0wgdmFfZGNsCisjICBkZWZpbmUgVkFfU1RBUlQoYXAsIGZtdCkgdmFfc3RhcnQoYXApCisjICBkZWZpbmUgVkFfQVJHUyhhcCkgYXAKKyMgIGRlZmluZSBWQV9FTkQoYXApIHZhX2VuZChhcCkKKyMgZW5kaWYKKyNlbHNlCisjIGRlZmluZSBWQV9MSVNUKHZhcikKKyMgZGVmaW5lIFZBX0RPVFMgcDEsIHAyLCBwMywgcDQsIHA1LCBwNgorIyBkZWZpbmUgVkFfREVDTCB1bnNpZ25lZCBsb25nIFZBX0RPVFM7CisjIGRlZmluZSBWQV9TVEFSVChhcCwgZm10KQorIyBkZWZpbmUgVkFfQVJHUyhhcCkgVkFfRE9UUworIyBkZWZpbmUgVkFfRU5EKGFwKQorIyB1bmRlZiB2c25wcmludGYKKyMgZGVmaW5lIHZzbnByaW50ZiB4c25wcmludGYKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoc3VuKSAmJiAhZGVmaW5lZChCNDMpICYmICFkZWZpbmVkKElTQykgJiYgIWRlZmluZWQocHlyKSAmJiAhZGVmaW5lZChfQ1hfVVgpCisjIGluY2x1ZGUgPHRpbWUuaD4KKyNlbmRpZgorI2luY2x1ZGUgPHN5cy90aW1lLmg+CisKKyNpZmRlZiBNX1VOSVggICAvKiBTQ08gKi8KKyMgaW5jbHVkZSA8c3lzL3N0cmVhbS5oPgorIyBpbmNsdWRlIDxzeXMvcHRlbS5oPgorIyBkZWZpbmUgZnRydW5jYXRlKGZkLCBzKSBjaHNpemUoZmQsIHMpCisjZW5kaWYKKworI2lmZGVmIFNZU1YKKyMgZGVmaW5lIGluZGV4IHN0cmNocgorIyBkZWZpbmUgcmluZGV4IHN0cnJjaHIKKyMgZGVmaW5lIGJ6ZXJvKHBvaSxsZW4pIG1lbXNldChwb2ksMCxsZW4pCisjIGRlZmluZSBiY21wIG1lbWNtcAorIyBkZWZpbmUga2lsbHBnKHBncnAsc2lnKSBraWxsKCAtKHBncnApLCBzaWcpCisjZW5kaWYKKworI2lmbmRlZiBIQVZFX0dFVENXRAorIyBkZWZpbmUgZ2V0Y3dkKGIsbCkgZ2V0d2QoYikKKyNlbmRpZgorCisjaWZuZGVmIFVTRUJDT1BZCisjIGlmZGVmIFVTRU1FTU1PVkUKKyMgIGRlZmluZSBiY29weShzLGQsbGVuKSBtZW1tb3ZlKGQscyxsZW4pCisjIGVsc2UKKyMgIGlmZGVmIFVTRU1FTUNQWQorIyAgIGRlZmluZSBiY29weShzLGQsbGVuKSBtZW1jcHkoZCxzLGxlbikKKyMgIGVsc2UKKyMgICBkZWZpbmUgTkVFRF9PV05fQkNPUFkKKyMgICBkZWZpbmUgYmNvcHkgeGJjb3B5CisjICBlbmRpZgorIyBlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBocHV4CisjIGRlZmluZSBzZXRyZXVpZChydWlkLCBldWlkKSBzZXRyZXN1aWQocnVpZCwgZXVpZCwgLTEpCisjIGRlZmluZSBzZXRyZWdpZChyZ2lkLCBlZ2lkKSBzZXRyZXNnaWQocmdpZCwgZWdpZCwgLTEpCisjZW5kaWYKKworI2lmIGRlZmluZWQoSEFWRV9TRVRFVUlEKSB8fCBkZWZpbmVkKEhBVkVfU0VUUkVVSUQpCisjIGRlZmluZSBVU0VfU0VURVVJRAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChIQVZFX19FWElUKSAmJiAhZGVmaW5lZChfZXhpdCkKKyNkZWZpbmUgX2V4aXQoeCkgZXhpdCh4KQorI2VuZGlmCisKKyNpZm5kZWYgSEFWRV9VVElNRVMKKyMgZGVmaW5lIHV0aW1lcyB1dGltZQorI2VuZGlmCisKKyNpZmRlZiBCVUlMVElOX1RFTE5FVAorIyBpbmNsdWRlIDxuZXRpbmV0L2luLmg+CisjIGluY2x1ZGUgPGFycGEvaW5ldC5oPgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKFVTRV9MT0NBTEUpICYmICghZGVmaW5lZChIQVZFX1NFVExPQ0FMRSkgfHwgIWRlZmluZWQoSEFWRV9TVFJGVElNRSkpCisjIHVuZGVmIFVTRV9MT0NBTEUKKyNlbmRpZgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgIHRlcm1pbmFsIGhhbmRsaW5nCisgKi8KKworI2lmZGVmIFBPU0lYCisjIGluY2x1ZGUgPHRlcm1pb3MuaD4KKyMgaWZkZWYgaHB1eAorIyAgaW5jbHVkZSA8YnNkdHR5Lmg+CisjIGVuZGlmIC8qIGhwdXggKi8KKyMgaWZkZWYgTkNDUworIyAgZGVmaW5lIE1BWENDIE5DQ1MKKyMgZWxzZQorIyAgZGVmaW5lIE1BWENDIDI1NgorIyBlbmRpZgorI2Vsc2UgLyogUE9TSVggKi8KKyMgaWZkZWYgVEVSTUlPCisjICBpbmNsdWRlIDx0ZXJtaW8uaD4KKyMgIGlmZGVmIE5DQworIyAgIGRlZmluZSBNQVhDQyBOQ0MKKyMgIGVsc2UKKyMgICBkZWZpbmUgTUFYQ0MgMjU2CisjICBlbmRpZgorIyAgaWZkZWYgQ1lURVJNSU8KKyMgICBpbmNsdWRlIDxjeXRlcm1pby5oPgorIyAgZW5kaWYKKyMgZWxzZSAvKiBURVJNSU8gKi8KKyMgIGluY2x1ZGUgPHNndHR5Lmg+CisjIGVuZGlmIC8qIFRFUk1JTyAqLworI2VuZGlmIC8qIFBPU0lYICovCisKKyNpZm5kZWYgVkRJU0FCTEUKKyMgaWZkZWYgX1BPU0lYX1ZESVNBQkxFCisjICBkZWZpbmUgVkRJU0FCTEUgX1BPU0lYX1ZESVNBQkxFCisjIGVsc2UKKyMgIGRlZmluZSBWRElTQUJMRSAwMzc3CisjIGVuZGlmIC8qIF9QT1NJWF9WRElTQUJMRSAqLworI2VuZGlmIC8qICFWRElTQUJMRSAqLworCisKKy8qIG9uIHNnaSwgcmVnYXJkbGVzcyBvZiB0aGUgc3RyZWFtIGhlYWQncyByZWFkIG1vZGUgKFJOT1JNL1JNU0dOL1JNU0dEKQorICogVElPQ1BLVCBtb2RlIGNhdXNlcyBkYXRhIGxvc3MgaWYgb3VyIGJ1ZmZlciBpcyB0b28gc21hbGwgKElPU0laRSkKKyAqIHRvIGhvbGQgdGhlIHdob2xlIHBhY2tldCBhdCBmaXJzdCByZWFkKCkuCisgKiAoTWFyYyBCb3VjaGVyKQorICoKKyAqIG1hdHRoZXcgZ3JlZW46CisgKiBUSU9DUEtUIGlzIGJyb2tlbiBvbiBkZ3V4IDUuNC4xIGdlbmVyaWMgQVZpaU9OIG1jODgxMDAKKyAqCisgKiBKb2UgVHJhaXN0ZXI6IE9uIEFJWDQsIHByb2dyYW1zIGxpa2UgaXJjIHdvbid0IHdvcmsgaWYgc2NyZWVuCisgKiB1c2VzIFRJT0NQS1QgKHNlbGVjdCBmYWlscyB0byByZXR1cm4gb24gcHR5IHJlYWQpLgorICovCisjaWYgZGVmaW5lZChzZ2kpIHx8IGRlZmluZWQoREdVWCkgfHwgZGVmaW5lZChfSUJNUjIpCisjIHVuZGVmIFRJT0NQS1QKKyNlbmRpZgorCisvKiBsaW51eCBuY3Vyc2VzIGlzIGJyb2tlbiwgd2UgaGF2ZSB0byB1c2Ugb3VyIG93biB0cHV0cyAqLworI2lmIGRlZmluZWQobGludXgpICYmIGRlZmluZWQoVEVSTUlORk8pCisjIGRlZmluZSB0cHV0cyB4dHB1dHMKKyNlbmRpZgorCisvKiBBbGV4YW5kcmUgT2xpdmE6IFNWUjQgc3R5bGUgcHR5cyBkb24ndCB3b3JrIHdpdGggb3NmICovCisjaWZkZWYgX19vc2ZfXworIyB1bmRlZiBIQVZFX1NWUjRfUFRZUworI2VuZGlmCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICB1dG1wIGhhbmRsaW5nCisgKi8KKworI2lmZGVmIEdFVFVURU5UCisgIHR5cGVkZWYgY2hhciAqc2xvdF90OworI2Vsc2UKKyAgdHlwZWRlZiBpbnQgc2xvdF90OworI2VuZGlmCisKKyNpZiBkZWZpbmVkKFVUTVBPSykgfHwgZGVmaW5lZChCVUdHWUdFVExPR0lOKQorIyBpZiBkZWZpbmVkKFNWUjQpICYmICFkZWZpbmVkKERHVVgpICYmICFkZWZpbmVkKF9faHB1eCkgJiYgIWRlZmluZWQobGludXgpCisjICBpbmNsdWRlIDx1dG1weC5oPgorIyAgZGVmaW5lIFVUTVBGSUxFCVVUTVBYX0ZJTEUKKyMgIGRlZmluZSB1dG1wCQl1dG1weAorIyAgZGVmaW5lIGdldHV0ZW50CWdldHV0eGVudAorIyAgZGVmaW5lIGdldHV0aWQJZ2V0dXR4aWQKKyMgIGRlZmluZSBnZXR1dGxpbmUJZ2V0dXR4bGluZQorIyAgZGVmaW5lIHB1dHV0bGluZQlwdXR1dHhsaW5lCisjICBkZWZpbmUgc2V0dXRlbnQJc2V0dXR4ZW50CisjICBkZWZpbmUgZW5kdXRlbnQJZW5kdXR4ZW50CisjICBkZWZpbmUgdXRfdGltZQl1dF94dGltZQorIyBlbHNlIC8qIFNWUjQgKi8KKyMgIGluY2x1ZGUgPHV0bXAuaD4KKyMgZW5kaWYgLyogU1ZSNCAqLworIyBpZmRlZiBhcG9sbG8KKyAgIC8qIAorICAgICogV2UgZG9uJ3QgaGF2ZSBHRVRVVEVOVCwgc28gd2UgZGlnIGludG8gdXRtcCBvdXJzZWx2ZXMuCisgICAgKiBCdXQgd2Ugc2F2ZSB0aGUgcGVybWFuZW50IGZpbGVkZXNjcmlwdG9yIGFuZAorICAgICogb3BlbiB1dG1wIGp1c3Qgd2hlbiB3ZSBuZWVkIHRvLiAKKyAgICAqIFRoaXMgY29kZSBzdXBwb3J0cyBhbiB1bnNvcnRlZCB1dG1wLiBqdy4KKyAgICAqLworIyAgZGVmaW5lIFVUTk9LRUVQCisjIGVuZGlmIC8qIGFwb2xsbyAqLworCisjIGlmbmRlZiBVVE1QRklMRQorIyAgaWZkZWYgVVRNUF9GSUxFCisjICAgZGVmaW5lIFVUTVBGSUxFCVVUTVBfRklMRQorIyAgZWxzZQorIyAgIGlmZGVmIF9QQVRIX1VUTVAKKyMgICAgZGVmaW5lIFVUTVBGSUxFCV9QQVRIX1VUTVAKKyMgICBlbHNlCisjICAgIGRlZmluZSBVVE1QRklMRQkiL2V0Yy91dG1wIgorIyAgIGVuZGlmIC8qIF9QQVRIX1VUTVAgKi8KKyMgIGVuZGlmCisjIGVuZGlmCisKKyNlbmRpZiAvKiBVVE1QT0sgfHwgQlVHR1lHRVRMT0dJTiAqLworCisjaWYgIWRlZmluZWQoVVRNUE9LKSAmJiBkZWZpbmVkKFVTUkxJTUlUKQorIyB1bmRlZiBVU1JMSU1JVAorI2VuZGlmCisKKyNpZmRlZiBMT0dPVVRPSworIyBpZm5kZWYgTE9HSU5ERUZBVUxUCisjICBkZWZpbmUgTE9HSU5ERUZBVUxUIDAKKyMgZW5kaWYKKyNlbHNlCisjIGlmZGVmIExPR0lOREVGQVVMVAorIyAgdW5kZWYgTE9HSU5ERUZBVUxUCisjIGVuZGlmCisjIGRlZmluZSBMT0dJTkRFRkFVTFQgMQorI2VuZGlmCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICBmaWxlIHN0dWZmCisgKi8KKworI2lmbmRlZiBGX09LCisjZGVmaW5lIEZfT0sgMAorI2VuZGlmCisjaWZuZGVmIFhfT0sKKyNkZWZpbmUgWF9PSyAxCisjZW5kaWYKKyNpZm5kZWYgV19PSworI2RlZmluZSBXX09LIDIKKyNlbmRpZgorI2lmbmRlZiBSX09LCisjZGVmaW5lIFJfT0sgNAorI2VuZGlmCisKKyNpZm5kZWYgU19JRklGTworI2RlZmluZSBTX0lGSUZPICAwMDEwMDAwCisjZW5kaWYKKyNpZm5kZWYgU19JUkVBRAorI2RlZmluZSBTX0lSRUFEICAwMDAwNDAwCisjZW5kaWYKKyNpZm5kZWYgU19JV1JJVEUKKyNkZWZpbmUgU19JV1JJVEUgMDAwMDIwMAorI2VuZGlmCisjaWZuZGVmIFNfSUVYRUMKKyNkZWZpbmUgU19JRVhFQyAgMDAwMDEwMAorI2VuZGlmCisKKyNpZiBkZWZpbmVkKFNfSUZJRk8pICYmIGRlZmluZWQoU19JRk1UKSAmJiAhZGVmaW5lZChTX0lTRklGTykKKyNkZWZpbmUgU19JU0ZJRk8obW9kZSkgKCgobW9kZSkgJiBTX0lGTVQpID09IFNfSUZJRk8pCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNfSUZTT0NLKSAmJiBkZWZpbmVkKFNfSUZNVCkgJiYgIWRlZmluZWQoU19JU1NPQ0spCisjZGVmaW5lIFNfSVNTT0NLKG1vZGUpICgoKG1vZGUpICYgU19JRk1UKSA9PSBTX0lGU09DSykKKyNlbmRpZgorI2lmIGRlZmluZWQoU19JRkNIUikgJiYgZGVmaW5lZChTX0lGTVQpICYmICFkZWZpbmVkKFNfSVNDSFIpCisjZGVmaW5lIFNfSVNDSFIobW9kZSkgKCgobW9kZSkgJiBTX0lGTVQpID09IFNfSUZDSFIpCisjZW5kaWYKKyNpZiBkZWZpbmVkKFNfSUZESVIpICYmIGRlZmluZWQoU19JRk1UKSAmJiAhZGVmaW5lZChTX0lTRElSKQorI2RlZmluZSBTX0lTRElSKG1vZGUpICgoKG1vZGUpICYgU19JRk1UKSA9PSBTX0lGRElSKQorI2VuZGlmCisjaWYgZGVmaW5lZChTX0lGTE5LKSAmJiBkZWZpbmVkKFNfSUZNVCkgJiYgIWRlZmluZWQoU19JU0xOSykKKyNkZWZpbmUgU19JU0xOSyhtb2RlKSAoKChtb2RlKSAmIFNfSUZNVCkgPT0gU19JRkxOSykKKyNlbmRpZgorCisvKgorICogU3VuT1MgNC4xLjM6IGBtYW4gMlYgb3BlbicgaGFzIG9ubHkgb25lIGxpbmUgdGhhdCBtZW50aW9ucyBPX05PQkxPQ0s6CisgKgorICogICAgIE9fTk9OQkxPQ0sgICAgIFNhbWUgYXMgT19OREVMQVkgYWJvdmUuCisgKgorICogb24gdGhlIHZlcnkgc2FtZSBTdW5PUyA0LjEuMywgSSB0cmFjZWQgdGhlIG9wZW4gc3lzdGVtIGNhbGwgYW5kIGZvdW5kCisgKiB0aGF0IGFuIG9wZW4oIi9kZXYvdHR5eTA4IiwgT19SRFdSfE9fTk9OQkxPQ0t8T19OT0NUVFkpIHdhcyBibG9ja2VkLAorICogd2hlcmVhcyBvcGVuKCIvZGV2L3R0eXkwOCIsIE9fUkRXUnxPX05ERUxBWSAgfE9fTk9DVFRZKSB3ZW50IHRocm91Z2guCisgKgorICogRm9yIHRoaXMgc2ltcGxlIHJlYXNvbiBJIG5vdyBmYXZvdXIgT19OREVMQVkuIGp3LiA0LjUuOTUKKyAqLworI2lmIGRlZmluZWQoc3VuKSAmJiAhZGVmaW5lZChTVlI0KQorIyB1bmRlZiBPX05PTkJMT0NLCisjZW5kaWYKKworI2lmICFkZWZpbmVkKE9fTk9OQkxPQ0spICYmIGRlZmluZWQoT19OREVMQVkpCisjIGRlZmluZSBPX05PTkJMT0NLIE9fTkRFTEFZCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEZOQkxPQ0spICYmIGRlZmluZWQoRk5PTkJMT0NLKQorIyBkZWZpbmUgRk5CTE9DSyBGTk9OQkxPQ0sKKyNlbmRpZgorI2lmICFkZWZpbmVkKEZOQkxPQ0spICYmIGRlZmluZWQoRk5ERUxBWSkKKyMgZGVmaW5lIEZOQkxPQ0sgRk5ERUxBWQorI2VuZGlmCisjaWYgIWRlZmluZWQoRk5CTE9DSykgJiYgZGVmaW5lZChPX05PTkJMT0NLKQorIyBkZWZpbmUgRk5CTE9DSyBPX05PTkJMT0NLCisjZW5kaWYKKworI2lmbmRlZiBQT1NJWAorI3VuZGVmIG1rZmlmbworI2RlZmluZSBta2ZpZm8obixtKSBta25vZChuLFNfSUZJRk98KG0pLDApCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEhBVkVfTFNUQVQpICYmICFkZWZpbmVkKGxzdGF0KQorIyBkZWZpbmUgbHN0YXQgc3RhdAorI2VuZGlmCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgc2lnbmFsIGhhbmRsaW5nCisgKi8KKworI2lmZGVmIFNJR1ZPSUQKKyMgZGVmaW5lIFNJR1JFVFVSTgorIyBkZWZpbmUgc2lncmV0X3Qgdm9pZAorI2Vsc2UKKyMgZGVmaW5lIFNJR1JFVFVSTiByZXR1cm4gMDsKKyMgZGVmaW5lIHNpZ3JldF90IGludAorI2VuZGlmCisKKy8qIEdlZWVlZSwgcmV2ZXJzZSBpdD8gKi8KKyNpZiBkZWZpbmVkKFNWUjQpIHx8IChkZWZpbmVkKFNZU1YpICYmIGRlZmluZWQoSVNDKSkgfHwgZGVmaW5lZChfQUlYKSB8fCBkZWZpbmVkKGxpbnV4KSB8fCBkZWZpbmVkKHVsdHJpeCkgfHwgZGVmaW5lZChfXzM4NkJTRF9fKSB8fCBkZWZpbmVkKF9fYnNkaV9fKSB8fCBkZWZpbmVkKFBPU0lYKSB8fCBkZWZpbmVkKE5lWFQpCisjIGRlZmluZSBTSUdIQVNBUkcKKyNlbmRpZgorCisjaWZkZWYgU0lHSEFTQVJHCisjIGRlZmluZSBTSUdQUk9UT0FSRyAgIChpbnQpCisjIGRlZmluZSBTSUdERUZBUkcgICAgIChzaWdzaWcpIGludCBzaWdzaWc7CisjIGRlZmluZSBTSUdBUkcgICAgICAgIDAKKyNlbHNlCisjIGRlZmluZSBTSUdQUk9UT0FSRyAgICh2b2lkKQorIyBkZWZpbmUgU0lHREVGQVJHICAgICAoKQorIyBkZWZpbmUgU0lHQVJHCisjZW5kaWYKKworI2lmbmRlZiBTSUdDSExECisjZGVmaW5lIFNJR0NITEQgU0lHQ0xECisjZW5kaWYKKworI2lmIGRlZmluZWQoUE9TSVgpIHx8IGRlZmluZWQoaHB1eCkKKyMgZGVmaW5lIHNpZ25hbCB4c2lnbmFsCisjZWxzZQorIyBpZmRlZiBVU0VTSUdTRVQKKyMgIGRlZmluZSBzaWduYWwgc2lnc2V0CisjIGVuZGlmIC8qIFVTRVNJR1NFVCAqLworI2VuZGlmCisKKy8qIHVzZWQgaW4gc2NyZWVuLmMgYW5kIGF0dGFjaGVyLmMgKi8KKyNpZm5kZWYgTlNJRwkJLyoga2JlYWwgbmVlZHMgdGhlc2Ugdy9vIFNZU1YgKi8KKyMgZGVmaW5lIE5TSUcgMzIKKyNlbmRpZiAvKiAhTlNJRyAqLworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgV2FpdCBzdHVmZgorICovCisKKyNpZiAoIWRlZmluZWQoc3lzVjY4KSAmJiAhZGVmaW5lZChNX1hFTklYKSkgfHwgZGVmaW5lZChOZVhUKSB8fCBkZWZpbmVkKE1fVU5JWCkKKyMgaW5jbHVkZSA8c3lzL3dhaXQuaD4KKyNlbmRpZgorCisjaWZuZGVmIFdURVJNU0lHCisjIGlmbmRlZiBCU0RXQUlUIC8qIGlmIHdhaXQgaXMgTk9UIGEgdW5pb246ICovCisjICBkZWZpbmUgV1RFUk1TSUcoc3RhdHVzKSAoc3RhdHVzICYgMDE3NykKKyMgZWxzZQorIyAgZGVmaW5lIFdURVJNU0lHKHN0YXR1cykgc3RhdHVzLndfVC53X1Rlcm1zaWcgCisjIGVuZGlmCisjZW5kaWYKKworI2lmbmRlZiBXU1RPUFNJRworIyBpZm5kZWYgQlNEV0FJVCAvKiBpZiB3YWl0IGlzIE5PVCBhIHVuaW9uOiAqLworIyAgZGVmaW5lIFdTVE9QU0lHKHN0YXR1cykgKChzdGF0dXMgPj4gOCkgJiAwMzc3KQorIyBlbHNlCisjICBkZWZpbmUgV1NUT1BTSUcoc3RhdHVzKSBzdGF0dXMud19TLndfU3RvcHNpZyAKKyMgZW5kaWYKKyNlbmRpZgorCisvKiBORVQtMiB1c2VzIFdDT1JFRFVNUCAqLworI2lmIGRlZmluZWQoV0NPUkVEVU1QKSAmJiAhZGVmaW5lZChXSUZDT1JFU0lHKQorIyBkZWZpbmUgV0lGQ09SRVNJRyhzdGF0dXMpIFdDT1JFRFVNUChzdGF0dXMpCisjZW5kaWYKKworI2lmbmRlZiBXSUZDT1JFU0lHCisjIGlmbmRlZiBCU0RXQUlUIC8qIGlmIHdhaXQgaXMgTk9UIGEgdW5pb246ICovCisjICBkZWZpbmUgV0lGQ09SRVNJRyhzdGF0dXMpIChzdGF0dXMgJiAwMjAwKQorIyBlbHNlCisjICBkZWZpbmUgV0lGQ09SRVNJRyhzdGF0dXMpIHN0YXR1cy53X1Qud19Db3JlZHVtcAorIyBlbmRpZgorI2VuZGlmCisKKyNpZm5kZWYgV0VYSVRTVEFUVVMKKyMgaWZuZGVmIEJTRFdBSVQgLyogaWYgd2FpdCBpcyBOT1QgYSB1bmlvbjogKi8KKyMgIGRlZmluZSBXRVhJVFNUQVRVUyhzdGF0dXMpICgoc3RhdHVzID4+IDgpICYgMDM3NykKKyMgZWxzZQorIyAgZGVmaW5lIFdFWElUU1RBVFVTKHN0YXR1cykgc3RhdHVzLndfVC53X1JldGNvZGUKKyMgZW5kaWYKKyNlbmRpZgorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgc2VsZWN0IHN0dWZmCisgKi8KKworI2lmIGRlZmluZWQoTV9YRU5JWCkgfHwgZGVmaW5lZChNX1VOSVgpIHx8IGRlZmluZWQoX1NFUVVFTlRfKQorI2luY2x1ZGUgPHN5cy9zZWxlY3QuaD4JCS8qIGZvciB0aW1ldmFsICsgRkQuLi4gKi8KKyNlbmRpZgorCisvKgorICogU3VuT1MgMy41IC0gVG9tIFNjaG1pZHQgLSBNaWNyb24gU2VtaWNvbmR1Y3RvciwgSW5jIC0gMjctSnVsLTkzCisgKiB0c2NobWlkdEB2YXgubWljcm9uLmNvbQorICovCisjaWZuZGVmIEZEX1NFVAorIyBpZm5kZWYgU1VOT1MzCit0eXBlZGVmIHN0cnVjdCBmZF9zZXQgeyBpbnQgZmRzX2JpdHNbMV07IH0gZmRfc2V0OworIyBlbmRpZgorIyBkZWZpbmUgRkRfWkVSTyhmZCkgKChmZCktPmZkc19iaXRzWzBdID0gMCkKKyMgZGVmaW5lIEZEX1NFVChiLCBmZCkgKChmZCktPmZkc19iaXRzWzBdIHw9IDEgPDwgKGIpKQorIyBkZWZpbmUgRkRfSVNTRVQoYiwgZmQpICgoZmQpLT5mZHNfYml0c1swXSAmIDEgPDwgKGIpKQorIyBkZWZpbmUgRkRfU0VUU0laRSAzMgorI2VuZGlmCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICB1c2VyIGRlZmluZWFibGUgc3R1ZmYKKyAqLworCisjaWZuZGVmIFRFUk1DQVBfQlVGU0laRQorIyBkZWZpbmUgVEVSTUNBUF9CVUZTSVpFIDIwNDgKKyNlbmRpZgorCisjaWZuZGVmIE1BWFBBVEhMRU4KKyMgZGVmaW5lIE1BWFBBVEhMRU4gMTAyNAorI2VuZGlmCisKKy8qIAorICogeW91IG1heSB0cnkgdG8gdmFyeSB0aGlzIHZhbHVlLiBVc2UgbG93IHZhbHVlcyBpZiB5b3VyIChWTVMpIHN5c3RlbQorICogdGVuZHMgdG8gY2hva2Ugd2hlbiBwYXN0aW5nLiBVc2UgaGlnaCB2YWx1ZXMgaWYgeW91IHdhbnQgdG8gdGVzdAorICogaG93IG1hbnkgY2hhcmFjdGVycyB5b3VyIHB0eSdzIGNhbiBidWZmZXIuCisgKi8KKyNkZWZpbmUgSU9TSVpFCQk0MDk2CisKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2V4YW1wbGVzL3JsZmUvcHR5LmMgYi9yZWFkbGluZS9leGFtcGxlcy9ybGZlL3B0eS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4OWQ0NGMKLS0tIC9kZXYvbnVsbAorKysgYi9yZWFkbGluZS9leGFtcGxlcy9ybGZlL3B0eS5jCkBAIC0wLDAgKzEsMzg3IEBACisvKiBDb3B5cmlnaHQgKGMpIDE5OTMtMjAwMgorICogICAgICBKdWVyZ2VuIFdlaWdlcnQgKGpud2VpZ2VyQGltbWQ0LmluZm9ybWF0aWsudW5pLWVybGFuZ2VuLmRlKQorICogICAgICBNaWNoYWVsIFNjaHJvZWRlciAobWxzY2hyb2VAaW1tZDQuaW5mb3JtYXRpay51bmktZXJsYW5nZW4uZGUpCisgKiBDb3B5cmlnaHQgKGMpIDE5ODcgT2xpdmVyIExhdW1hbm4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikKKyAqIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtIChzZWUgdGhlIGZpbGUgQ09QWUlORyk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlCisgKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sCisgKiA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcsIFVTQQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKi8KKworI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgInNjcmVlbi5oIgorCisjaWZuZGVmIHN1bgorIyBpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNlbmRpZgorCisvKiBmb3Igc29sYXJpcyAyLjEsIFVuaXh3YXJlIChTVlI0LjIpIGFuZCBwb3NzaWJseSBvdGhlcnMgKi8KKyNpZmRlZiBIQVZFX1NWUjRfUFRZUworIyBpbmNsdWRlIDxzeXMvc3Ryb3B0cy5oPgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKHN1bikgJiYgZGVmaW5lZChMT0NLUFRZKSAmJiAhZGVmaW5lZChUSU9DRVhDTCkKKyMgaW5jbHVkZSA8c3lzL3R0b2xkLmg+CisjZW5kaWYKKworI2lmZGVmIElTQworIyBpbmNsdWRlIDxzeXMvdHR5Lmg+CisjIGluY2x1ZGUgPHN5cy9zaW9jdGwuaD4KKyMgaW5jbHVkZSA8c3lzL3B0eS5oPgorI2VuZGlmCisKKyNpZmRlZiBzZ2kKKyMgaW5jbHVkZSA8c3lzL3N5c21hY3Jvcy5oPgorI2VuZGlmIC8qIHNnaSAqLworCisjaW5jbHVkZSAiZXh0ZXJuLmgiCisKKy8qCisgKiBpZiBubyBQVFlSQU5HRVswMV0gaXMgaW4gdGhlIGNvbmZpZyBmaWxlLCB3ZSBwaWNrIGEgZGVmYXVsdAorICovCisjaWZuZGVmIFBUWVJBTkdFMAorIyBkZWZpbmUgUFRZUkFOR0UwICJxcHIiCisjZW5kaWYKKyNpZm5kZWYgUFRZUkFOR0UxCisjIGRlZmluZSBQVFlSQU5HRTEgIjAxMjM0NTY3ODlhYmNkZWYiCisjZW5kaWYKKworLyogU1ZSNCBwc2V1ZG8gdHR5cyBkb24ndCBzZWVtIHRvIHdvcmsgd2l0aCBTQ08tNSAqLworI2lmZGVmIE1fVU5JWAorIyB1bmRlZiBIQVZFX1NWUjRfUFRZUworI2VuZGlmCisKK2V4dGVybiBpbnQgZWZmX3VpZDsKKworLyogdXNlZCBmb3Igb3BlbmluZyBhIG5ldyBwdHktcGFpcjogKi8KK3N0YXRpYyBjaGFyIFB0eU5hbWVbMzJdLCBUdHlOYW1lWzMyXTsKKworI2lmICEoZGVmaW5lZChzZXF1ZW50KSB8fCBkZWZpbmVkKF9TRVFVRU5UXykgfHwgZGVmaW5lZChIQVZFX1NWUjRfUFRZUykpCisjIGlmZGVmIGhwdXgKK3N0YXRpYyBjaGFyIFB0eVByb3RvW10gPSAiL2Rldi9wdHltL3B0eVhZIjsKK3N0YXRpYyBjaGFyIFR0eVByb3RvW10gPSAiL2Rldi9wdHkvdHR5WFkiOworIyBlbHNlCisjICBpZmRlZiBNX1VOSVgKK3N0YXRpYyBjaGFyIFB0eVByb3RvW10gPSAiL2Rldi9wdHlwWFkiOworc3RhdGljIGNoYXIgVHR5UHJvdG9bXSA9ICIvZGV2L3R0eXBYWSI7CisjICBlbHNlCitzdGF0aWMgY2hhciBQdHlQcm90b1tdID0gIi9kZXYvcHR5WFkiOworc3RhdGljIGNoYXIgVHR5UHJvdG9bXSA9ICIvZGV2L3R0eVhZIjsKKyMgIGVuZGlmCisjIGVuZGlmIC8qIGhwdXggKi8KKyNlbmRpZgorCitzdGF0aWMgdm9pZCBpbml0bWFzdGVyIF9fUCgoaW50KSk7CisKKyNpZiBkZWZpbmVkKHN1bikKKy8qIHN1bidzIHV0bXBfdXBkYXRlIHByb2dyYW0gb3BlbnMgdGhlIHNhbHZlIHNpZGUsIHRodXMgY29ycnVwdGluZworICovCitpbnQgcHR5X3ByZW9wZW4gPSAxOworI2Vsc2UKK2ludCBwdHlfcHJlb3BlbiA9IDA7CisjZW5kaWYKKworLyoKKyAqICBPcGVuIGFsbCBwdHlzIHdpdGggT19OT0NUVFksIGp1c3QgdG8gYmUgb24gdGhlIHNhZmUgc2lkZQorICogIChSSVNDb3MgbWlwcyBicmVha3Mgb3RoZXJ3aXNlKQorICovCisjaWZuZGVmIE9fTk9DVFRZCisjIGRlZmluZSBPX05PQ1RUWSAwCisjZW5kaWYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIHZvaWQKK2luaXRtYXN0ZXIoZikKK2ludCBmOworeworI2lmZGVmIFBPU0lYCisgIHRjZmx1c2goZiwgVENJT0ZMVVNIKTsKKyNlbHNlCisjIGlmZGVmIFRJT0NGTFVTSAorICAodm9pZCkgaW9jdGwoZiwgVElPQ0ZMVVNILCAoY2hhciAqKSAwKTsKKyMgZW5kaWYKKyNlbmRpZgorI2lmZGVmIExPQ0tQVFkKKyAgKHZvaWQpIGlvY3RsKGYsIFRJT0NFWENMLCAoY2hhciAqKSAwKTsKKyNlbmRpZgorfQorCit2b2lkCitJbml0UFRZKGYpCitpbnQgZjsKK3sKKyAgaWYgKGYgPCAwKQorICAgIHJldHVybjsKKyNpZiBkZWZpbmVkKElfUFVTSCkgJiYgZGVmaW5lZChIQVZFX1NWUjRfUFRZUykgJiYgIWRlZmluZWQoc2dpKSAmJiAhZGVmaW5lZChsaW51eCkgJiYgIWRlZmluZWQoX19vc2ZfXykgJiYgIWRlZmluZWQoTV9VTklYKQorICBpZiAoaW9jdGwoZiwgSV9QVVNILCAicHRlbSIpKQorICAgIFBhbmljKGVycm5vLCAiSW5pdFBUWTogY2Fubm90IElfUFVTSCBwdGVtIik7CisgIGlmIChpb2N0bChmLCBJX1BVU0gsICJsZHRlcm0iKSkKKyAgICBQYW5pYyhlcnJubywgIkluaXRQVFk6IGNhbm5vdCBJX1BVU0ggbGR0ZXJtIik7CisjIGlmZGVmIHN1bgorICBpZiAoaW9jdGwoZiwgSV9QVVNILCAidHRjb21wYXQiKSkKKyAgICBQYW5pYyhlcnJubywgIkluaXRQVFk6IGNhbm5vdCBJX1BVU0ggdHRjb21wYXQiKTsKKyMgZW5kaWYKKyNlbmRpZgorfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWYgZGVmaW5lZChPU1gpICYmICFkZWZpbmVkKFBUWV9ET05FKQorI2RlZmluZSBQVFlfRE9ORQoraW50CitPcGVuUFRZKHR0eW4pCitjaGFyICoqdHR5bjsKK3sKKyAgcmVnaXN0ZXIgaW50IGY7CisgIGlmICgoZiA9IG9wZW5fY29udHJvbGxpbmdfcHR5KFR0eU5hbWUpKSA8IDApCisgICAgcmV0dXJuIC0xOworICBpbml0bWFzdGVyKGYpOworICAqdHR5biA9IFR0eU5hbWU7CisgIHJldHVybiBmOworfQorI2VuZGlmCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZiAoZGVmaW5lZChzZXF1ZW50KSB8fCBkZWZpbmVkKF9TRVFVRU5UXykpICYmICFkZWZpbmVkKFBUWV9ET05FKQorI2RlZmluZSBQVFlfRE9ORQoraW50CitPcGVuUFRZKHR0eW4pCitjaGFyICoqdHR5bjsKK3sKKyAgY2hhciAqbSwgKnM7CisgIHJlZ2lzdGVyIGludCBmOworCisgIGlmICgoZiA9IGdldHBzZXVkb3R0eSgmcywgJm0pKSA8IDApCisgICAgcmV0dXJuIC0xOworI2lmZGVmIF9TRVFVRU5UXworICBmdmhhbmd1cChzKTsKKyNlbmRpZgorICBzdHJuY3B5KFB0eU5hbWUsIG0sIHNpemVvZihQdHlOYW1lKSk7CisgIHN0cm5jcHkoVHR5TmFtZSwgcywgc2l6ZW9mKFR0eU5hbWUpKTsKKyAgaW5pdG1hc3RlcihmKTsKKyAgKnR0eW4gPSBUdHlOYW1lOworICByZXR1cm4gZjsKK30KKyNlbmRpZgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWYgZGVmaW5lZChfX3NnaSkgJiYgIWRlZmluZWQoUFRZX0RPTkUpCisjZGVmaW5lIFBUWV9ET05FCitpbnQKK09wZW5QVFkodHR5bikKK2NoYXIgKip0dHluOworeworICBpbnQgZjsKKyAgY2hhciAqbmFtZSwgKl9nZXRwdHkoKTsgCisgIHNpZ3JldF90ICgqc2lnY2xkKV9fUChTSUdQUk9UT0FSRyk7CisKKyAgLyoKKyAgICogU0lHQ0hMRCBzZXQgdG8gU0lHX0RGTCBmb3IgX2dldHB0eSgpIGJlY2F1c2UgaXQgbWF5IGZvcmsoKSBhbmQKKyAgICogZXhlYygpIC91c3IvYWRtL21rcHRzCisgICAqLworICBzaWdjbGQgPSBzaWduYWwoU0lHQ0hMRCwgU0lHX0RGTCk7CisgIG5hbWUgPSBfZ2V0cHR5KCZmLCBPX1JEV1IgfCBPX05PTkJMT0NLLCAwNjAwLCAwKTsKKyAgc2lnbmFsKFNJR0NITEQsIHNpZ2NsZCk7CisKKyAgaWYgKG5hbWUgPT0gMCkKKyAgICByZXR1cm4gLTE7CisgIGluaXRtYXN0ZXIoZik7CisgICp0dHluID0gbmFtZTsKKyAgcmV0dXJuIGY7Cit9CisjZW5kaWYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmIGRlZmluZWQoTUlQUykgJiYgZGVmaW5lZChIQVZFX0RFVl9QVEMpICYmICFkZWZpbmVkKFBUWV9ET05FKQorI2RlZmluZSBQVFlfRE9ORQoraW50CitPcGVuUFRZKHR0eW4pCitjaGFyICoqdHR5bjsKK3sKKyAgcmVnaXN0ZXIgaW50IGY7CisgIHN0cnVjdCBzdGF0IGJ1ZjsKKyAgIAorICBzdHJjcHkoUHR5TmFtZSwgIi9kZXYvcHRjIik7CisgIGlmICgoZiA9IG9wZW4oUHR5TmFtZSwgT19SRFdSIHwgT19OT0NUVFkgfCBPX05PTkJMT0NLKSkgPCAwKQorICAgIHJldHVybiAtMTsKKyAgaWYgKGZzdGF0KGYsICZidWYpIDwgMCkKKyAgICB7CisgICAgICBjbG9zZShmKTsKKyAgICAgIHJldHVybiAtMTsKKyAgICB9CisgIHNwcmludGYoVHR5TmFtZSwgIi9kZXYvdHR5cSVkIiwgbWlub3IoYnVmLnN0X3JkZXYpKTsKKyAgaW5pdG1hc3RlcihmKTsKKyAgKnR0eW4gPSBUdHlOYW1lOworICByZXR1cm4gZjsKK30KKyNlbmRpZgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWYgZGVmaW5lZChIQVZFX1NWUjRfUFRZUykgJiYgIWRlZmluZWQoUFRZX0RPTkUpCisjZGVmaW5lIFBUWV9ET05FCitpbnQKK09wZW5QVFkodHR5bikKK2NoYXIgKip0dHluOworeworICByZWdpc3RlciBpbnQgZjsKKyAgY2hhciAqbSwgKnB0c25hbWUoKTsKKyAgaW50IHVubG9ja3B0IF9fUCgoaW50KSksIGdyYW50cHQgX19QKChpbnQpKTsKKyNpZiBkZWZpbmVkKEhBVkVfR0VUUFQpICYmIGRlZmluZWQobGludXgpCisgIGludCBnZXRwdCBfX1AoKHZvaWQpKTsKKyNlbmRpZgorICBzaWdyZXRfdCAoKnNpZ2NsZClfX1AoU0lHUFJPVE9BUkcpOworCisgIHN0cmNweShQdHlOYW1lLCAiL2Rldi9wdG14Iik7CisjaWYgZGVmaW5lZChIQVZFX0dFVFBUKSAmJiBkZWZpbmVkKGxpbnV4KQorICBpZiAoKGYgPSBnZXRwdCgpKSA9PSAtMSkKKyNlbHNlCisgIGlmICgoZiA9IG9wZW4oUHR5TmFtZSwgT19SRFdSIHwgT19OT0NUVFkpKSA9PSAtMSkKKyNlbmRpZgorICAgIHJldHVybiAtMTsKKworICAvKgorICAgKiBTSUdDSExEIHNldCB0byBTSUdfREZMIGZvciBncmFudHB0KCkgYmVjYXVzZSBpdCBmb3JrKClzIGFuZAorICAgKiBleGVjKClzIHB0X2NobW9kCisgICAqLworICBzaWdjbGQgPSBzaWduYWwoU0lHQ0hMRCwgU0lHX0RGTCk7CisgIGlmICgobSA9IHB0c25hbWUoZikpID09IE5VTEwgfHwgZ3JhbnRwdChmKSB8fCB1bmxvY2twdChmKSkKKyAgICB7CisgICAgICBzaWduYWwoU0lHQ0hMRCwgc2lnY2xkKTsKKyAgICAgIGNsb3NlKGYpOworICAgICAgcmV0dXJuIC0xOworICAgIH0gCisgIHNpZ25hbChTSUdDSExELCBzaWdjbGQpOworICBzdHJuY3B5KFR0eU5hbWUsIG0sIHNpemVvZihUdHlOYW1lKSk7CisgIGluaXRtYXN0ZXIoZik7CisgICp0dHluID0gVHR5TmFtZTsKKyAgcmV0dXJuIGY7Cit9CisjZW5kaWYKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmIGRlZmluZWQoX0FJWCkgJiYgZGVmaW5lZChIQVZFX0RFVl9QVEMpICYmICFkZWZpbmVkKFBUWV9ET05FKQorI2RlZmluZSBQVFlfRE9ORQorCitpbnQKK09wZW5QVFkodHR5bikKK2NoYXIgKip0dHluOworeworICByZWdpc3RlciBpbnQgZjsKKworICAvKiBhIGR1bWIgbG9va2luZyBsb29wIHJlcGxhY2VkIGJ5IG15Y3JvZnRzIGNvZGU6ICovCisgIHN0cmNweSAoUHR5TmFtZSwgIi9kZXYvcHRjIik7CisgIGlmICgoZiA9IG9wZW4gKFB0eU5hbWUsIE9fUkRXUiB8IE9fTk9DVFRZKSkgPCAwKQorICAgIHJldHVybiAtMTsKKyAgc3RybmNweShUdHlOYW1lLCB0dHluYW1lKGYpLCBzaXplb2YoVHR5TmFtZSkpOworICBpZiAoZWZmX3VpZCAmJiBhY2Nlc3MoVHR5TmFtZSwgUl9PSyB8IFdfT0spKQorICAgIHsKKyAgICAgIGNsb3NlKGYpOworICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgaW5pdG1hc3RlcihmKTsKKyMgaWZkZWYgX0lCTVIyCisgIHB0eV9wcmVvcGVuID0gMTsKKyMgZW5kaWYKKyAgKnR0eW4gPSBUdHlOYW1lOworICByZXR1cm4gZjsKK30KKyNlbmRpZgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWYgZGVmaW5lZChIQVZFX09QRU5QVFkpICYmICFkZWZpbmVkKFBUWV9ET05FKQorI2RlZmluZSBQVFlfRE9ORQoraW50CitPcGVuUFRZKHR0eW4pCitjaGFyICoqdHR5bjsKK3sKKyAgaW50IGYsIHM7CisgIGlmIChvcGVucHR5KCZmLCAmcywgVHR5TmFtZSwgTlVMTCwgTlVMTCkgIT0gMCkKKyAgICByZXR1cm4gLTE7CisgIGNsb3NlKHMpOworICBpbml0bWFzdGVyKGYpOworICBwdHlfcHJlb3BlbiA9IDE7CisgICp0dHluID0gVHR5TmFtZTsKKyAgcmV0dXJuIGY7ICAgIAorfQorI2VuZGlmCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgUFRZX0RPTkUKK2ludAorT3BlblBUWSh0dHluKQorY2hhciAqKnR0eW47Cit7CisgIHJlZ2lzdGVyIGNoYXIgKnAsICpxLCAqbCwgKmQ7CisgIHJlZ2lzdGVyIGludCBmOworCisgIGRlYnVnKCJPcGVuUFRZOiBVc2luZyBCU0Qgc3R5bGUgcHR5cy5cbiIpOworICBzdHJjcHkoUHR5TmFtZSwgUHR5UHJvdG8pOworICBzdHJjcHkoVHR5TmFtZSwgVHR5UHJvdG8pOworICBmb3IgKHAgPSBQdHlOYW1lOyAqcCAhPSAnWCc7IHArKykKKyAgICA7CisgIGZvciAocSA9IFR0eU5hbWU7ICpxICE9ICdYJzsgcSsrKQorICAgIDsKKyAgZm9yIChsID0gUFRZUkFOR0UwOyAoKnAgPSAqbCkgIT0gJ1wwJzsgbCsrKQorICAgIHsKKyAgICAgIGZvciAoZCA9IFBUWVJBTkdFMTsgKHBbMV0gPSAqZCkgIT0gJ1wwJzsgZCsrKQorCXsKKwkgIGRlYnVnMSgiT3BlblBUWSB0cmllcyAnJXMnXG4iLCBQdHlOYW1lKTsKKwkgIGlmICgoZiA9IG9wZW4oUHR5TmFtZSwgT19SRFdSIHwgT19OT0NUVFkpKSA9PSAtMSkKKwkgICAgY29udGludWU7CisJICBxWzBdID0gKmw7CisJICBxWzFdID0gKmQ7CisJICBpZiAoZWZmX3VpZCAmJiBhY2Nlc3MoVHR5TmFtZSwgUl9PSyB8IFdfT0spKQorCSAgICB7CisJICAgICAgY2xvc2UoZik7CisJICAgICAgY29udGludWU7CisJICAgIH0KKyNpZiBkZWZpbmVkKHN1bikgJiYgZGVmaW5lZChUSU9DR1BHUlApICYmICFkZWZpbmVkKFNVTk9TMykKKwkgIC8qIEhhY2sgdG8gZW5zdXJlIHRoYXQgdGhlIHNsYXZlIHNpZGUgb2YgdGhlIHB0eSBpcworCSAgICogdW51c2VkLiBNYXkgbm90IHdvcmsgaW4gYW55dGhpbmcgb3RoZXIgdGhhbiBTdW5PUzQuMQorCSAgICovCisJICAgIHsKKwkgICAgICBpbnQgcGdycDsKKworCSAgICAgIC8qIHRjZ2V0cGdycCBkb2VzIG5vdCB3b3JrICh1c2VzIFRJT0NHRVRQR1JQKSEgKi8KKwkgICAgICBpZiAoaW9jdGwoZiwgVElPQ0dQR1JQLCAoY2hhciAqKSZwZ3JwKSAhPSAtMSB8fCBlcnJubyAhPSBFSU8pCisJCXsKKwkJICBjbG9zZShmKTsKKwkJICBjb250aW51ZTsKKwkJfQorCSAgICB9CisjZW5kaWYKKwkgIGluaXRtYXN0ZXIoZik7CisJICAqdHR5biA9IFR0eU5hbWU7CisJICByZXR1cm4gZjsKKwl9CisgICAgfQorICByZXR1cm4gLTE7Cit9CisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvZXhhbXBsZXMvcmxmZS9ybGZlLmMgYi9yZWFkbGluZS9leGFtcGxlcy9ybGZlL3JsZmUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZDc0N2RjCi0tLSAvZGV2L251bGwKKysrIGIvcmVhZGxpbmUvZXhhbXBsZXMvcmxmZS9ybGZlLmMKQEAgLTAsMCArMSw3ODAgQEAKKy8qIEEgZnJvbnQtZW5kIHVzaW5nIHJlYWRsaW5lIHRvICJjb29rIiBpbnB1dCBsaW5lcy4KKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDE5OTkgIFBlciBCb3RobmVyCisgKiAKKyAqIFRoaXMgZnJvbnQtZW5kIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQKKyAqIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikKKyAqIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFNvbWUgY29kZSBmcm9tIEpvaG5zb24gJiBUcm9hbjogIkxpbnV4IEFwcGxpY2F0aW9uIERldmVsb3BtZW50IgorICogKEFkZGlzb24tV2VzbGV5LCAxOTk4KSB3YXMgdXNlZCBkaXJlY3RseSBvciBmb3IgaW5zcGlyYXRpb24uCisgKgorICogMjAwMy0xMS0wNyBXb2xmZ2FuZyBUYWV1YmVyIDx3b2xmZ2FuZ190YWV1YmVyQGFnaWxlbnQuY29tPgorICogU3BlY2lmeSBhIGhpc3RvcnkgZmlsZSBhbmQgdGhlIHNpemUgb2YgdGhlIGhpc3RvcnkgZmlsZSB3aXRoIGNvbW1hbmQKKyAqIGxpbmUgb3B0aW9uczsgdXNlIEVESVRPUi9WSVNVQUwgdG8gc2V0IHZpL2VtYWNzIHByZWZlcmVuY2UuCisgKi8KKworLyogUFJPQkxFTVMvVE9ETzoKKyAqCisgKiBPbmx5IHRlc3RlZCB1bmRlciBHTlUvTGludXggYW5kIE1hYyBPUyAxMC54OyAgbmVlZHMgdG8gYmUgcG9ydGVkLgorICoKKyAqIFN3aXRjaGluZyBiZXR3ZWVuIGxpbmUtZWRpdGluZy1tb2RlIHZzIHJhdy1jaGFyLW1vZGUgZGVwZW5kaW5nIG9uCisgKiB3aGF0IHRjZ2V0YXR0ciByZXR1cm5zIGlzIGluaGVyZW50bHkgbm90IHJvYnVzdCwgcGx1cyBpdCBkb2Vzbid0CisgKiB3b3JrIHdoZW4gc3NoL3RlbG5ldHRpbmcgaW4uICBBIGJldHRlciBzb2x1dGlvbiBpcyBwb3NzaWJsZSBpZiB0aGUKKyAqIHR0eSBzeXN0ZW0gY2FuIHNlbmQgaW4tbGluZSBlc2NhcGUgc2VxdWVuY2VzIGluZGljYXRpbmcgdGhlIGN1cnJlbnQKKyAqIG1vZGUsIGVjaG8nZCBpbnB1dCwgZXRjLiAgVGhhdCB3b3VsZCBhbHNvIGFsbG93IGEgdXNlciBwcmVmZXJlbmNlCisgKiB0byBzZXQgZGlmZmVyZW50IGNvbG9ycyBmb3IgcHJvbXB0LCBpbnB1dCwgc3Rkb3V0LCBhbmQgc3RkZXJyLgorICoKKyAqIFdoZW4gcnVubmluZyBtYyAtYyB1bmRlciB0aGUgTGludXggY29uc29sZSwgbWMgZG9lcyBub3QgcmVjb2duaXplCisgKiBtb3VzZSBjbGlja3MsIHdoaWNoIG1jIGRvZXMgd2hlbiBub3QgcnVubmluZyB1bmRlciBybGZlLgorICoKKyAqIFBhc3Rpbmcgc2VsZWN0ZWQgdGV4dCBjb250YWluaW5nIHRhYnMgaXMgbGlrZSBoaXR0aW5nIHRoZSB0YWIgY2hhcmFjdGVyLAorICogd2hpY2ggaW52b2tlcyByZWFkbGluZSBjb21wbGV0aW9uLiAgV2UgZG9uJ3Qgd2FudCB0aGlzLiAgSSBkb24ndCBrbm93CisgKiBpZiB0aGlzIGlzIGZpeGFibGUgd2l0aG91dCBpbnRlZ3JhdGluZyBybGZlIGludG8gYSB0ZXJtaW5hbCBlbXVsYXRvci4KKyAqCisgKiBFY2hvIHN1cHByZXNzaW9uIGlzIGEga2x1ZGdlLCBidXQgY2FuIG9ubHkgYmUgYXZvaWRlZCB3aXRoIGJldHRlciBrZXJuZWwKKyAqIHN1cHBvcnQ6IFdlIG5lZWQgYSB0dHkgbW9kZSB0byBkaXNhYmxlICJyZWFsIiBlY2hvaW5nLCB3aGlsZSBzdGlsbAorICogbGV0dGluZyB0aGUgaW5mZXJpb3IgdGhpbmsgaXRzIHR0eSBkcml2ZXIgdG8gZG9pbmcgZWNob2luZy4KKyAqIFN0ZXZlbnMncyBib29rIGNsYWltcyBTQ1IkIGFuZCBCU0Q0LjMrIGhhdmUgVElPQ1JFTU9URS4KKyAqCisgKiBUaGUgbGF0ZXN0IHJlYWRsaW5lIG1heSBoYXZlIHNvbWUgaG9va3Mgd2UgY2FuIHVzZSB0byBhdm9pZCBoYXZpbmcKKyAqIHRvIGJhY2sgdXAgdGhlIHByb21wdC4gKFNlZSBIQVZFX0FMUkVBRFlfUFJPTVBURUQuKQorICoKKyAqIERlc2lyYWJsZSByZWFkbGluZSBmZWF0dXJlOiAgV2hlbiBpbiBjb29rZWQgbm8tZWNobyBtb2RlIChlLmcuIHBhc3N3b3JkKSwKKyAqIGVjaG8gY2hhcmFjdGVycyBhcmUgdGhleSBhcmUgdHlwZXMgd2l0aCAnKicsIGJ1dCByZW1vdmUgdGhlbSB3aGVuIGRvbmUuCisgKgorICogQXN5bmNocm9ub3VzIG91dHB1dCB3aGlsZSB3ZSdyZSBlZGl0aW5nIGFuIGlucHV0IGxpbmUgc2hvdWxkIGJlCisgKiBpbnNlcnRlZCBpbiB0aGUgb3V0cHV0IHZpZXcgKmJlZm9yZSogdGhlIGlucHV0IGxpbmUsIHNvIHRoYXQgdGhlCisgKiBsaW5lcyBiZWluZyBlZGl0ZWQgKHdpdGggdGhlIHByb21wdCkgZmxvYXQgYXQgdGhlIGVuZCBvZiB0aGUgaW5wdXQuCisgKgorICogQSAicGFnZSBtb2RlIiBvcHRpb24gdG8gZW11bGF0ZSBtb3JlL2xlc3MgYmVoYXZpb3I6ICBBdCBlYWNoIHBhZ2Ugb2YKKyAqIG91dHB1dCwgcGF1c2UgZm9yIGEgdXNlciBjb21tYW5kLiAgVGhpcyByZXF1aXJlZCBwYXJzaW5nIHRoZSBvdXRwdXQKKyAqIHRvIGtlZXAgdHJhY2sgb2YgbGluZSBsZW5ndGhzLiAgSXQgYWxzbyByZXF1aXJlcyByZW1lbWJlcmluZyB0aGUKKyAqIG91dHB1dCwgaWYgd2Ugd2FudCBhbiBvcHRpb24gdG8gc2Nyb2xsIGJhY2ssIHdoaWNoIHN1Z2dlc3RzIHRoYXQKKyAqIHRoaXMgc2hvdWxkIGJlIGludGVncmF0ZWQgd2l0aCBhIHRlcm1pbmFsIGVtdWxhdG9yIGxpa2UgeHRlcm0uCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgorI2luY2x1ZGUgPGFycGEvaW5ldC5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPG5ldGRiLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxncnAuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorI2luY2x1ZGUgPHRlcm1pb3MuaD4KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWZkZWYgUkVBRExJTkVfTElCUkFSWQorIyAgaW5jbHVkZSAicmVhZGxpbmUuaCIKKyMgIGluY2x1ZGUgImhpc3RvcnkuaCIKKyNlbHNlCisjICBpbmNsdWRlIDxyZWFkbGluZS9yZWFkbGluZS5oPgorIyAgaW5jbHVkZSA8cmVhZGxpbmUvaGlzdG9yeS5oPgorI2VuZGlmCisKKyNpZm5kZWYgQ09NTUFORAorI2RlZmluZSBDT01NQU5EICIvYmluL2Jhc2giCisjZW5kaWYKKyNpZm5kZWYgQ09NTUFORF9BUkdTCisjZGVmaW5lIENPTU1BTkRfQVJHUyBDT01NQU5ECisjZW5kaWYKKworI2lmbmRlZiBBTFRfQ09NTUFORAorI2RlZmluZSBBTFRfQ09NTUFORCAiL2Jpbi9zaCIKKyNlbmRpZgorI2lmbmRlZiBBTFRfQ09NTUFORF9BUkdTCisjZGVmaW5lIEFMVF9DT01NQU5EX0FSR1MgQUxUX0NPTU1BTkQKKyNlbmRpZgorCisjaWZuZGVmIEhBVkVfTUVNTU9WRQorIyAgaWYgX19HTlVDX18gPiAxCisjICAgIGRlZmluZSBtZW1tb3ZlKGQsIHMsIG4pCV9fYnVpbHRpbl9tZW1jcHkoZCwgcywgbikKKyMgIGVsc2UKKyMgICAgZGVmaW5lIG1lbW1vdmUoZCwgcywgbikJbWVtY3B5KGQsIHMsIG4pCisjICBlbmRpZgorI2Vsc2UKKyMgIGRlZmluZSBtZW1tb3ZlKGQsIHMsIG4pCW1lbWNweShkLCBzLCBuKQorI2VuZGlmCisKKyNkZWZpbmUgQVBQTElDQVRJT05fTkFNRSAicmxmZSIKKworc3RhdGljIGludCBpbl9mcm9tX2luZmVyaW9yX2ZkOworc3RhdGljIGludCBvdXRfdG9faW5mZXJpb3JfZmQ7CitzdGF0aWMgdm9pZCBzZXRfZWRpdF9tb2RlICgpOworc3RhdGljIHZvaWQgdXNhZ2VfZXhpdCAoKTsKK3N0YXRpYyBjaGFyICpoaXN0X2ZpbGUgPSAwOworc3RhdGljIGludCAgaGlzdF9zaXplID0gMDsKKworLyogVW5mb3J0dW5hdGVseSwgd2UgY2Fubm90IHNhZmVseSBkaXNwbGF5IGVjaG8gZnJvbSB0aGUgaW5mZXJpb3IgcHJvY2Vzcy4KKyAgIFRoZSByZWFzb24gaXMgdGhhdCB0aGUgZWNobyBiaXQgaW4gdGhlIHB0eSBpcyAib3duZWQiIGJ5IHRoZSBpbmZlcmlvciwKKyAgIGFuZCBpZiB3ZSB0cnkgdG8gdHVybiBpdCBvZmYsIHdlIGNvdWxkIGNvbmZ1c2UgdGhlIGluZmVyaW9yLgorICAgVGh1cywgd2hlbiBlY2hvaW5nLCB3ZSBnZXQgZWNobyB0d2ljZTogIEZpcnN0IHJlYWRsaW5lIGVjaG9lcyB3aGlsZQorICAgd2UncmUgYWN0dWFsbHkgZWRpdGluZy4gVGhlbiB3ZSBzZW5kIHRoZSBsaW5lIHRvIHRoZSBpbmZlcmlvciwgYW5kIHRoZQorICAgdGVybWluYWwgZHJpdmVyIHNlbmQgYmFjayBhbiBleHRyYSBlY2hvLgorICAgVGhlIHdvcmstYXJvdW5kIGlzIHRvIHJlbWVtYmVyIHRoZSBpbnB1dCBsaW5lcywgYW5kIHdoZW4gd2Ugc2VlIHRoYXQKKyAgIGxpbmUgY29tZSBiYWNrLCB3ZSBzdXByZXNzIHRoZSBvdXRwdXQuCisgICBBIGJldHRlciBzb2x1dGlvbiAoc3VwcG9zZWRseSBhdmFpbGFibGUgb24gU1ZSNCkgd291bGQgYmUgYSBzbWFydGVyCisgICB0ZXJtaW5hbCBkcml2ZXIsIHdpdGggbW9yZSBmbGFncyAuLi4gKi8KKyNkZWZpbmUgRUNIT19TVVBQUkVTU19NQVggMTAyNAorY2hhciBlY2hvX3N1cHByZXNzX2J1ZmZlcltFQ0hPX1NVUFBSRVNTX01BWF07CitpbnQgZWNob19zdXBwcmVzc19zdGFydCA9IDA7CitpbnQgZWNob19zdXBwcmVzc19saW1pdCA9IDA7CisKKy8qI2RlZmluZSBERUJVRyovCisKKyNpZmRlZiBERUJVRworRklMRSAqbG9nZmlsZSA9IE5VTEw7CisjZGVmaW5lIERQUklOVDAoRk1UKSAoZnByaW50Zihsb2dmaWxlLCBGTVQpLCBmZmx1c2gobG9nZmlsZSkpCisjZGVmaW5lIERQUklOVDEoRk1ULCBWMSkgKGZwcmludGYobG9nZmlsZSwgRk1ULCBWMSksIGZmbHVzaChsb2dmaWxlKSkKKyNkZWZpbmUgRFBSSU5UMihGTVQsIFYxLCBWMikgKGZwcmludGYobG9nZmlsZSwgRk1ULCBWMSwgVjIpLCBmZmx1c2gobG9nZmlsZSkpCisjZWxzZQorI2RlZmluZSBEUFJJTlQwKEZNVCkgKCh2b2lkKSAwKSAvKiBEbyBub3RoaW5nICovCisjZGVmaW5lIERQUklOVDEoRk1ULCBWMSkgKCh2b2lkKSAwKSAvKiBEbyBub3RoaW5nICovCisjZGVmaW5lIERQUklOVDIoRk1ULCBWMSwgVjIpICgodm9pZCkgMCkgLyogRG8gbm90aGluZyAqLworI2VuZGlmCisKK3N0cnVjdCB0ZXJtaW9zIG9yaWdfdGVybTsKKworLyogUGlkIG9mIGNoaWxkIHByb2Nlc3MuICovCitzdGF0aWMgcGlkX3QgY2hpbGQgPSAtMTsKKworc3RhdGljIHZvaWQKK3NpZ19jaGlsZCAoaW50IHNpZ25vKQoreworICBpbnQgc3RhdHVzOworICB3YWl0ICgmc3RhdHVzKTsKKyAgaWYgKGhpc3RfZmlsZSAhPSAwKQorICAgIHsKKyAgICAgIHdyaXRlX2hpc3RvcnkgKGhpc3RfZmlsZSk7CisgICAgICBpZiAoaGlzdF9zaXplKQorCWhpc3RvcnlfdHJ1bmNhdGVfZmlsZSAoaGlzdF9maWxlLCBoaXN0X3NpemUpOworICAgIH0KKyAgRFBSSU5UMCAoIihDaGlsZCBwcm9jZXNzIGRpZWQuKVxuIik7CisgIHRjc2V0YXR0cihTVERJTl9GSUxFTk8sIFRDU0FOT1csICZvcmlnX3Rlcm0pOworICBleGl0ICgwKTsKK30KKwordm9sYXRpbGUgaW50IHByb3BhZ2F0ZV9zaWd3aW5jaCA9IDA7CisKKy8qIHNpZ3dpbmNoX2hhbmRsZXIKKyAqIHByb3BhZ2F0ZSB3aW5kb3cgc2l6ZSBjaGFuZ2VzIGZyb20gaW5wdXQgZmlsZSBkZXNjcmlwdG9yIHRvCisgKiBtYXN0ZXIgc2lkZSBvZiBwdHkuCisgKi8KK3ZvaWQgc2lnd2luY2hfaGFuZGxlcihpbnQgc2lnbmFsKSB7IAorICAgcHJvcGFnYXRlX3NpZ3dpbmNoID0gMTsKK30KKworCisvKiBnZXRfc2xhdmVfcHR5KCkgcmV0dXJucyBhbiBpbnRlZ2VyIGZpbGUgZGVzY3JpcHRvci4KKyAqIElmIGl0IHJldHVybnMgPCAwLCBhbiBlcnJvciBoYXMgb2NjdXJyZWQuCisgKiBPdGhlcndpc2UsIGl0IGhhcyByZXR1cm5lZCB0aGUgc2xhdmUgZmlsZSBkZXNjcmlwdG9yLgorICovCisKK2ludCBnZXRfc2xhdmVfcHR5KGNoYXIgKm5hbWUpIHsgCisgICBzdHJ1Y3QgZ3JvdXAgKmdwdHI7CisgICBnaWRfdCBnaWQ7CisgICBpbnQgc2xhdmUgPSAtMTsKKworICAgLyogY2hvd24vY2htb2QgdGhlIGNvcnJlc3BvbmRpbmcgcHR5LCBpZiBwb3NzaWJsZS4KKyAgICAqIFRoaXMgd2lsbCBvbmx5IHdvcmsgaWYgdGhlIHByb2Nlc3MgaGFzIHJvb3QgcGVybWlzc2lvbnMuCisgICAgKiBBbHRlcm5hdGl2ZWx5LCB3cml0ZSBhbmQgZXhlYyBhIHNtYWxsIHNldHVpZCBwcm9ncmFtIHRoYXQKKyAgICAqIGRvZXMganVzdCB0aGlzLgorICAgICovCisgICBpZiAoKGdwdHIgPSBnZXRncm5hbSgidHR5IikpICE9IDApIHsKKyAgICAgIGdpZCA9IGdwdHItPmdyX2dpZDsKKyAgIH0gZWxzZSB7CisgICAgICAvKiBpZiB0aGUgdHR5IGdyb3VwIGRvZXMgbm90IGV4aXN0LCBkb24ndCBjaGFuZ2UgdGhlCisgICAgICAgKiBncm91cCBvbiB0aGUgc2xhdmUgcHR5LCBvbmx5IHRoZSBvd25lcgorICAgICAgICovCisgICAgICBnaWQgPSAtMTsKKyAgIH0KKworICAgLyogTm90ZSB0aGF0IHdlIGRvIG5vdCBjaGVjayBmb3IgZXJyb3JzIGhlcmUuICBJZiB0aGlzIGlzIGNvZGUKKyAgICAqIHdoZXJlIHRoZXNlIGFjdGlvbnMgYXJlIGNyaXRpY2FsLCBjaGVjayBmb3IgZXJyb3JzIQorICAgICovCisgICBjaG93bihuYW1lLCBnZXR1aWQoKSwgZ2lkKTsKKyAgIC8qIFRoaXMgY29kZSBvbmx5IG1ha2VzIHRoZSBzbGF2ZSByZWFkL3dyaXRlYWJsZSBmb3IgdGhlIHVzZXIuCisgICAgKiBJZiB0aGlzIGlzIGZvciBhbiBpbnRlcmFjdGl2ZSBzaGVsbCB0aGF0IHdpbGwgd2FudCB0bworICAgICogcmVjZWl2ZSAid3JpdGUiIGFuZCAid2FsbCIgbWVzc2FnZXMsIE9SIFNfSVdHUlAgaW50byB0aGUKKyAgICAqIHNlY29uZCBhcmd1bWVudCBiZWxvdy4KKyAgICAqLworICAgY2htb2QobmFtZSwgU19JUlVTUnxTX0lXVVNSKTsKKworICAgLyogb3BlbiB0aGUgY29ycmVzcG9uZGluZyBzbGF2ZSBwdHkgKi8KKyAgIHNsYXZlID0gb3BlbihuYW1lLCBPX1JEV1IpOworICAgcmV0dXJuIChzbGF2ZSk7Cit9CisKKy8qIENlcnRhaW4gc3BlY2lhbCBjaGFyYWN0ZXJzLCBzdWNoIGFzIGN0cmwvQywgd2Ugd2FudCB0byBwYXNzIGRpcmVjdGx5CisgICB0byB0aGUgaW5mZXJpb3IsIHJhdGhlciB0aGFuIGxldHRpbmcgcmVhZGxpbmUgaGFuZGxlIHRoZW0uICovCisKK3N0YXRpYyBjaGFyIHNwZWNpYWxfY2hhcnNbMjBdOworc3RhdGljIGludCBzcGVjaWFsX2NoYXJzX2NvdW50OworCitzdGF0aWMgdm9pZAorYWRkX3NwZWNpYWxfY2hhcihpbnQgY2gpCit7CisgIGlmIChjaCAhPSAwKQorICAgIHNwZWNpYWxfY2hhcnNbc3BlY2lhbF9jaGFyc19jb3VudCsrXSA9IGNoOworfQorCitzdGF0aWMgaW50IGVvZl9jaGFyOworCitzdGF0aWMgaW50Citpc19zcGVjaWFsX2NoYXIoaW50IGNoKQoreworICBpbnQgaTsKKyNpZiAwCisgIGlmIChjaCA9PSBlb2ZfY2hhciAmJiBybF9wb2ludCA9PSBybF9lbmQpCisgICAgcmV0dXJuIDE7CisjZW5kaWYKKyAgZm9yIChpID0gc3BlY2lhbF9jaGFyc19jb3VudDsgIC0taSA+PSAwOyApCisgICAgaWYgKHNwZWNpYWxfY2hhcnNbaV0gPT0gY2gpCisgICAgICByZXR1cm4gMTsKKyAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjaGFyIGJ1ZlsxMDI0XTsKKy8qIGJ1ZlswIC4uIGJ1Zl9jb3VudC0xXSBpcyB0aGUgd2hhdCBoYXMgYmVlbiBlbWl0dGVkIG9uIHRoZSBjdXJyZW50IGxpbmUuCisgICBJdCBpcyB1c2VkIGFzIHRoZSByZWFkbGluZSBwcm9tcHQuICovCitzdGF0aWMgaW50IGJ1Zl9jb3VudCA9IDA7CisKK2ludCBkb19lbXBoYXNpemVfaW5wdXQgPSAxOworaW50IGN1cnJlbnRfZW1waGFzaXplX2lucHV0OworCitjaGFyICpzdGFydF9pbnB1dF9tb2RlID0gIlwwMzNbMW0iOworY2hhciAqZW5kX2lucHV0X21vZGUgPSAiXDAzM1swbSI7CisKK2ludCBudW1fa2V5cyA9IDA7CisKK3N0YXRpYyB2b2lkIG1heWJlX2VtcGhhc2l6ZV9pbnB1dCAoaW50IG9uKQoreworICBpZiAob24gPT0gY3VycmVudF9lbXBoYXNpemVfaW5wdXQKKyAgICAgIHx8IChvbiAmJiAhIGRvX2VtcGhhc2l6ZV9pbnB1dCkpCisgICAgcmV0dXJuOworICBmcHJpbnRmIChybF9vdXRzdHJlYW0sIG9uID8gc3RhcnRfaW5wdXRfbW9kZSA6IGVuZF9pbnB1dF9tb2RlKTsKKyAgZmZsdXNoIChybF9vdXRzdHJlYW0pOworICBjdXJyZW50X2VtcGhhc2l6ZV9pbnB1dCA9IG9uOworfQorCitzdGF0aWMgdm9pZAorbnVsbF9wcmVwX3Rlcm1pbmFsIChpbnQgbWV0YSkKK3sKK30KKworc3RhdGljIHZvaWQKK251bGxfZGVwcmVwX3Rlcm1pbmFsICgpCit7CisgIG1heWJlX2VtcGhhc2l6ZV9pbnB1dCAoMCk7Cit9CisKK3N0YXRpYyBpbnQKK3ByZV9pbnB1dF9jaGFuZ2VfbW9kZSAodm9pZCkKK3sKKyAgcmV0dXJuIDA7Cit9CisKK2NoYXIgcGVuZGluZ19zcGVjaWFsX2NoYXI7CisKK3N0YXRpYyB2b2lkCitsaW5lX2hhbmRsZXIgKGNoYXIgKmxpbmUpCit7CisgIGlmIChsaW5lID09IE5VTEwpCisgICAgeworICAgICAgY2hhciBidWZbMV07CisgICAgICBEUFJJTlQwKCJzYXcgZW9mIVxuIik7CisgICAgICBidWZbMF0gPSAnXDAwNCc7IC8qIGN0cmwvZCAqLworICAgICAgd3JpdGUgKG91dF90b19pbmZlcmlvcl9mZCwgYnVmLCAxKTsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICBzdGF0aWMgY2hhciBlbnRlcltdID0gIlxyIjsKKyAgICAgIC8qICBTZW5kIGxpbmUgdG8gaW5mZXJpb3I6ICovCisgICAgICBpbnQgbGVuZ3RoID0gc3RybGVuIChsaW5lKTsKKyAgICAgIGlmIChsZW5ndGggPiBFQ0hPX1NVUFBSRVNTX01BWC0yKQorCXsKKwkgIGVjaG9fc3VwcHJlc3Nfc3RhcnQgPSAwOworCSAgZWNob19zdXBwcmVzc19saW1pdCA9IDA7CisJfQorICAgICAgZWxzZQorCXsKKwkgIGlmIChlY2hvX3N1cHByZXNzX2xpbWl0ICsgbGVuZ3RoID4gRUNIT19TVVBQUkVTU19NQVggLSAyKQorCSAgICB7CisJICAgICAgaWYgKGVjaG9fc3VwcHJlc3NfbGltaXQgLSBlY2hvX3N1cHByZXNzX3N0YXJ0ICsgbGVuZ3RoCisJCSAgPD0gRUNIT19TVVBQUkVTU19NQVggLSAyKQorCQl7CisJCSAgbWVtbW92ZSAoZWNob19zdXBwcmVzc19idWZmZXIsCisJCQkgICBlY2hvX3N1cHByZXNzX2J1ZmZlciArIGVjaG9fc3VwcHJlc3Nfc3RhcnQsCisJCQkgICBlY2hvX3N1cHByZXNzX2xpbWl0IC0gZWNob19zdXBwcmVzc19zdGFydCk7CisJCSAgZWNob19zdXBwcmVzc19saW1pdCAtPSBlY2hvX3N1cHByZXNzX3N0YXJ0OworCQkgIGVjaG9fc3VwcHJlc3Nfc3RhcnQgPSAwOworCQl9CisJICAgICAgZWxzZQorCQl7CisJCSAgZWNob19zdXBwcmVzc19saW1pdCA9IDA7CisJCX0KKwkgICAgICBlY2hvX3N1cHByZXNzX3N0YXJ0ID0gMDsKKwkgICAgfQorCSAgbWVtY3B5IChlY2hvX3N1cHByZXNzX2J1ZmZlciArIGVjaG9fc3VwcHJlc3NfbGltaXQsCisJCSAgbGluZSwgbGVuZ3RoKTsKKwkgIGVjaG9fc3VwcHJlc3NfbGltaXQgKz0gbGVuZ3RoOworCSAgZWNob19zdXBwcmVzc19idWZmZXJbZWNob19zdXBwcmVzc19saW1pdCsrXSA9ICdccic7CisJICBlY2hvX3N1cHByZXNzX2J1ZmZlcltlY2hvX3N1cHByZXNzX2xpbWl0KytdID0gJ1xuJzsKKwl9CisgICAgICB3cml0ZSAob3V0X3RvX2luZmVyaW9yX2ZkLCBsaW5lLCBsZW5ndGgpOworICAgICAgaWYgKHBlbmRpbmdfc3BlY2lhbF9jaGFyID09IDApCisgICAgICAgIHsKKyAgICAgICAgICB3cml0ZSAob3V0X3RvX2luZmVyaW9yX2ZkLCBlbnRlciwgc2l6ZW9mKGVudGVyKS0xKTsKKyAgICAgICAgICBpZiAoKmxpbmUpCisgICAgICAgICAgICBhZGRfaGlzdG9yeSAobGluZSk7CisgICAgICAgIH0KKyAgICAgIGZyZWUgKGxpbmUpOworICAgIH0KKyAgcmxfY2FsbGJhY2tfaGFuZGxlcl9yZW1vdmUgKCk7CisgIGJ1Zl9jb3VudCA9IDA7CisgIG51bV9rZXlzID0gMDsKKyAgaWYgKHBlbmRpbmdfc3BlY2lhbF9jaGFyICE9IDApCisgICAgeworICAgICAgd3JpdGUgKG91dF90b19pbmZlcmlvcl9mZCwgJnBlbmRpbmdfc3BlY2lhbF9jaGFyLCAxKTsKKyAgICAgIHBlbmRpbmdfc3BlY2lhbF9jaGFyID0gMDsKKyAgICB9Cit9CisKKy8qIFZhbHVlIG9mIHJsX2dldGNfZnVuY3Rpb24uCisgICBVc2UgdGhpcyBiZWNhdXNlIHJlYWRsaW5lIHNob3VsZCByZWFkIGZyb20gc3RkaW4sIG5vdCBybF9pbnN0cmVhbSwKKyAgIHBvaW50cyB0byB0aGUgcHR5IChzbyByZWFkbGluZSBoYXMgbW9uaXRvciBpdHMgdGVybWluYWwgbW9kZXMpLiAqLworCitpbnQKK215X3JsX2dldGMgKEZJTEUgKmR1bW15KQoreworICBpbnQgY2ggPSBybF9nZXRjIChzdGRpbik7CisgIGlmIChpc19zcGVjaWFsX2NoYXIgKGNoKSkKKyAgICB7CisgICAgICBwZW5kaW5nX3NwZWNpYWxfY2hhciA9IGNoOworICAgICAgcmV0dXJuICdccic7CisgICAgfQorICByZXR1cm4gY2g7Cit9CisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgIGNoYXIgKnBhdGg7CisgIGludCBpOworICBpbnQgbWFzdGVyOworICBjaGFyICpuYW1lOworICBpbnQgaW5fZnJvbV90dHlfZmQ7CisgIHN0cnVjdCBzaWdhY3Rpb24gYWN0OworICBzdHJ1Y3Qgd2luc2l6ZSB3czsKKyAgc3RydWN0IHRlcm1pb3MgdDsKKyAgaW50IG1heGZkOworICBmZF9zZXQgaW5fc2V0OworICBzdGF0aWMgY2hhciBlbXB0eV9zdHJpbmdbMV0gPSAiIjsKKyAgY2hhciAqcHJvbXB0ID0gZW1wdHlfc3RyaW5nOworICBpbnQgaW9jdGxfZXJyID0gMDsKKyAgaW50IGFyZ19iYXNlID0gMTsKKworI2lmZGVmIERFQlVHCisgIGxvZ2ZpbGUgPSBmb3BlbigiL3RtcC9ybGZlLmxvZyIsICJ3Iik7CisjZW5kaWYKKworICB3aGlsZSAoYXJnX2Jhc2U8YXJnYykKKyAgICB7CisgICAgICBpZiAoYXJndlthcmdfYmFzZV1bMF0gIT0gJy0nKQorCWJyZWFrOworICAgICAgaWYgKGFyZ19iYXNlKzEgPj0gYXJnYyApCisJdXNhZ2VfZXhpdCgpOworICAgICAgc3dpdGNoKGFyZ3ZbYXJnX2Jhc2VdWzFdKQorCXsKKwljYXNlICdoJzoKKwkgIGFyZ19iYXNlKys7CisJICBoaXN0X2ZpbGUgPSBhcmd2W2FyZ19iYXNlXTsKKwkgIGJyZWFrOworCWNhc2UgJ3MnOgorCSAgYXJnX2Jhc2UrKzsKKwkgIGhpc3Rfc2l6ZSA9IGF0b2koYXJndlthcmdfYmFzZV0pOworCSAgaWYgKGhpc3Rfc2l6ZTwwKQorCSAgICB1c2FnZV9leGl0KCk7CisJICBicmVhazsKKwlkZWZhdWx0OgorCSAgdXNhZ2VfZXhpdCgpOworCX0KKyAgICAgIGFyZ19iYXNlKys7CisgICAgfQorICBpZiAoaGlzdF9maWxlKQorICAgIHJlYWRfaGlzdG9yeSAoaGlzdF9maWxlKTsKKworICBzZXRfZWRpdF9tb2RlICgpOworCisgIHJsX3JlYWRsaW5lX25hbWUgPSBBUFBMSUNBVElPTl9OQU1FOworICAKKyAgaWYgKChtYXN0ZXIgPSBPcGVuUFRZICgmbmFtZSkpIDwgMCkKKyAgICB7CisgICAgICBwZXJyb3IoInB0eXBhaXI6IGNvdWxkIG5vdCBvcGVuIG1hc3RlciBwdHkiKTsKKyAgICAgIGV4aXQoMSk7CisgICAgfQorCisgIERQUklOVDEoInB0eSBuYW1lOiAnJXMnXG4iLCBuYW1lKTsKKworICAvKiBzZXQgdXAgU0lHV0lOQ0ggaGFuZGxlciAqLworICBhY3Quc2FfaGFuZGxlciA9IHNpZ3dpbmNoX2hhbmRsZXI7CisgIHNpZ2VtcHR5c2V0KCYoYWN0LnNhX21hc2spKTsKKyAgYWN0LnNhX2ZsYWdzID0gMDsKKyAgaWYgKHNpZ2FjdGlvbihTSUdXSU5DSCwgJmFjdCwgTlVMTCkgPCAwKQorICAgIHsKKyAgICAgIHBlcnJvcigicHR5cGFpcjogY291bGQgbm90IGhhbmRsZSBTSUdXSU5DSCAiKTsKKyAgICAgIGV4aXQoMSk7CisgICAgfQorCisgIGlmIChpb2N0bChTVERJTl9GSUxFTk8sIFRJT0NHV0lOU1osICZ3cykgPCAwKQorICAgIHsKKyAgICAgIHBlcnJvcigicHR5cGFpcjogY291bGQgbm90IGdldCB3aW5kb3cgc2l6ZSIpOworICAgICAgZXhpdCgxKTsKKyAgICB9CisKKyAgaWYgKChjaGlsZCA9IGZvcmsoKSkgPCAwKQorICAgIHsKKyAgICAgIHBlcnJvcigiY2Fubm90IGZvcmsiKTsKKyAgICAgIGV4aXQoMSk7CisgICAgfQorCisgIGlmIChjaGlsZCA9PSAwKQorICAgIHsgCisgICAgICBpbnQgc2xhdmU7ICAvKiBmaWxlIGRlc2NyaXB0b3IgZm9yIHNsYXZlIHB0eSAqLworCisgICAgICAvKiBXZSBhcmUgaW4gdGhlIGNoaWxkIHByb2Nlc3MgKi8KKyAgICAgIGNsb3NlKG1hc3Rlcik7CisKKyNpZmRlZiBUSU9DU0NUVFkKKyAgICAgIGlmICgoc2xhdmUgPSBnZXRfc2xhdmVfcHR5KG5hbWUpKSA8IDApCisJeworCSAgcGVycm9yKCJwdHlwYWlyOiBjb3VsZCBub3Qgb3BlbiBzbGF2ZSBwdHkiKTsKKwkgIGV4aXQoMSk7CisJfQorI2VuZGlmCisKKyAgICAgIC8qIFdlIG5lZWQgdG8gbWFrZSB0aGlzIHByb2Nlc3MgYSBzZXNzaW9uIGdyb3VwIGxlYWRlciwgYmVjYXVzZQorICAgICAgICogaXQgaXMgb24gYSBuZXcgUFRZLCBhbmQgdGhpbmdzIGxpa2Ugam9iIGNvbnRyb2wgc2ltcGx5IHdpbGwKKyAgICAgICAqIG5vdCB3b3JrIGNvcnJlY3RseSB1bmxlc3MgdGhlcmUgaXMgYSBzZXNzaW9uIGdyb3VwIGxlYWRlcgorICAgICAgICogYW5kIHByb2Nlc3MgZ3JvdXAgbGVhZGVyICh3aGljaCBhIHNlc3Npb24gZ3JvdXAgbGVhZGVyCisgICAgICAgKiBhdXRvbWF0aWNhbGx5IGlzKS4gVGhpcyBhbHNvIGRpc2Fzc29jaWF0ZXMgdXMgZnJvbSBvdXIgb2xkCisgICAgICAgKiBjb250cm9sbGluZyB0dHkuIAorICAgICAgICovCisgICAgICBpZiAoc2V0c2lkKCkgPCAwKQorCXsKKwkgIHBlcnJvcigiY291bGQgbm90IHNldCBzZXNzaW9uIGxlYWRlciIpOworCX0KKworICAgICAgLyogVGllIHVzIHRvIG91ciBuZXcgY29udHJvbGxpbmcgdHR5LiAqLworI2lmZGVmIFRJT0NTQ1RUWQorICAgICAgaWYgKGlvY3RsKHNsYXZlLCBUSU9DU0NUVFksIE5VTEwpKQorCXsKKwkgIHBlcnJvcigiY291bGQgbm90IHNldCBuZXcgY29udHJvbGxpbmcgdHR5Iik7CisJfQorI2Vsc2UKKyAgICAgIGlmICgoc2xhdmUgPSBnZXRfc2xhdmVfcHR5KG5hbWUpKSA8IDApCisJeworCSAgcGVycm9yKCJwdHlwYWlyOiBjb3VsZCBub3Qgb3BlbiBzbGF2ZSBwdHkiKTsKKwkgIGV4aXQoMSk7CisJfQorI2VuZGlmCisKKyAgICAgIC8qIG1ha2Ugc2xhdmUgcHR5IGJlIHN0YW5kYXJkIGluLCBvdXQsIGFuZCBlcnJvciAqLworICAgICAgZHVwMihzbGF2ZSwgU1RESU5fRklMRU5PKTsKKyAgICAgIGR1cDIoc2xhdmUsIFNURE9VVF9GSUxFTk8pOworICAgICAgZHVwMihzbGF2ZSwgU1RERVJSX0ZJTEVOTyk7CisKKyAgICAgIC8qIGF0IHRoaXMgcG9pbnQgdGhlIHNsYXZlIHB0eSBzaG91bGQgYmUgc3RhbmRhcmQgaW5wdXQgKi8KKyAgICAgIGlmIChzbGF2ZSA+IDIpCisJeworCSAgY2xvc2Uoc2xhdmUpOworCX0KKworICAgICAgLyogVHJ5IHRvIHJlc3RvcmUgd2luZG93IHNpemU7IGZhaWx1cmUgaXNuJ3QgY3JpdGljYWwgKi8KKyAgICAgIGlmIChpb2N0bChTVERPVVRfRklMRU5PLCBUSU9DU1dJTlNaLCAmd3MpIDwgMCkKKwl7CisJICBwZXJyb3IoImNvdWxkIG5vdCByZXN0b3JlIHdpbmRvdyBzaXplIik7CisJfQorCisgICAgICAvKiBub3cgc3RhcnQgdGhlIHNoZWxsICovCisgICAgICB7CisJc3RhdGljIGNoYXIqIGNvbW1hbmRfYXJnc1tdID0geyBDT01NQU5EX0FSR1MsIE5VTEwgfTsKKwlzdGF0aWMgY2hhciogYWx0X2NvbW1hbmRfYXJnc1tdID0geyBBTFRfQ09NTUFORF9BUkdTLCBOVUxMIH07CisJaWYgKGFyZ2MgPD0gMSkKKwkgIHsKKwkgICAgZXhlY3ZwIChDT01NQU5ELCBjb21tYW5kX2FyZ3MpOworCSAgICBleGVjdnAgKEFMVF9DT01NQU5ELCBhbHRfY29tbWFuZF9hcmdzKTsKKwkgIH0KKwllbHNlCisJICBleGVjdnAgKGFyZ3ZbYXJnX2Jhc2VdLCAmYXJndlthcmdfYmFzZV0pOworICAgICAgfQorCisgICAgICAvKiBzaG91bGQgbmV2ZXIgYmUgcmVhY2hlZCAqLworICAgICAgZXhpdCgxKTsKKyAgICB9CisKKyAgLyogcGFyZW50ICovCisgIHNpZ25hbCAoU0lHQ0hMRCwgc2lnX2NoaWxkKTsKKworICAvKiBOb3RlIHRoYXQgd2Ugb25seSBzZXQgdGVybWlvcyBzZXR0aW5ncyBmb3Igc3RhbmRhcmQgaW5wdXQ7CisgICAqIHRoZSBtYXN0ZXIgc2lkZSBvZiBhIHB0eSBpcyBOT1QgYSB0dHkuCisgICAqLworICB0Y2dldGF0dHIoU1RESU5fRklMRU5PLCAmb3JpZ190ZXJtKTsKKworICB0ID0gb3JpZ190ZXJtOworICBlb2ZfY2hhciA9IHQuY19jY1tWRU9GXTsKKyAgLyogIGFkZF9zcGVjaWFsX2NoYXIodC5jX2NjW1ZFT0ZdKTsqLworICBhZGRfc3BlY2lhbF9jaGFyKHQuY19jY1tWSU5UUl0pOworICBhZGRfc3BlY2lhbF9jaGFyKHQuY19jY1tWUVVJVF0pOworICBhZGRfc3BlY2lhbF9jaGFyKHQuY19jY1tWU1VTUF0pOworI2lmIGRlZmluZWQgKFZESVNDQVJEKQorICBhZGRfc3BlY2lhbF9jaGFyKHQuY19jY1tWRElTQ0FSRF0pOworI2VuZGlmCisKKyAgdC5jX2xmbGFnICY9IH4oSUNBTk9OIHwgSVNJRyB8IEVDSE8gfCBFQ0hPQ1RMIHwgRUNIT0UgfCBcCisJCSBFQ0hPSyB8IEVDSE9LRSB8IEVDSE9OTCB8IEVDSE9QUlQgKTsKKyAgdC5jX2lmbGFnICY9IH5JQ1JOTDsKKyAgdC5jX2lmbGFnIHw9IElHTkJSSzsKKyAgdC5jX2NjW1ZNSU5dID0gMTsKKyAgdC5jX2NjW1ZUSU1FXSA9IDA7CisgIHRjc2V0YXR0cihTVERJTl9GSUxFTk8sIFRDU0FOT1csICZ0KTsKKyAgaW5fZnJvbV9pbmZlcmlvcl9mZCA9IG1hc3RlcjsKKyAgb3V0X3RvX2luZmVyaW9yX2ZkID0gbWFzdGVyOworICBybF9pbnN0cmVhbSA9IGZkb3BlbiAobWFzdGVyLCAiciIpOworICBybF9nZXRjX2Z1bmN0aW9uID0gbXlfcmxfZ2V0YzsKKworICBybF9wcmVwX3Rlcm1fZnVuY3Rpb24gPSBudWxsX3ByZXBfdGVybWluYWw7IAorICBybF9kZXByZXBfdGVybV9mdW5jdGlvbiA9IG51bGxfZGVwcmVwX3Rlcm1pbmFsOworICBybF9wcmVfaW5wdXRfaG9vayA9IHByZV9pbnB1dF9jaGFuZ2VfbW9kZTsKKyAgcmxfY2FsbGJhY2tfaGFuZGxlcl9pbnN0YWxsIChwcm9tcHQsIGxpbmVfaGFuZGxlcik7CisKKyAgaW5fZnJvbV90dHlfZmQgPSBTVERJTl9GSUxFTk87CisgIEZEX1pFUk8gKCZpbl9zZXQpOworICBtYXhmZCA9IGluX2Zyb21faW5mZXJpb3JfZmQgPiBpbl9mcm9tX3R0eV9mZCA/IGluX2Zyb21faW5mZXJpb3JfZmQKKyAgICA6IGluX2Zyb21fdHR5X2ZkOworICBmb3IgKDs7KQorICAgIHsKKyAgICAgIGludCBudW07CisgICAgICBGRF9TRVQgKGluX2Zyb21faW5mZXJpb3JfZmQsICZpbl9zZXQpOworICAgICAgRkRfU0VUIChpbl9mcm9tX3R0eV9mZCwgJmluX3NldCk7CisKKyAgICAgIG51bSA9IHNlbGVjdChtYXhmZCsxLCAmaW5fc2V0LCBOVUxMLCBOVUxMLCBOVUxMKTsKKworICAgICAgaWYgKHByb3BhZ2F0ZV9zaWd3aW5jaCkKKwl7CisJICBzdHJ1Y3Qgd2luc2l6ZSB3czsKKwkgIGlmIChpb2N0bCAoU1RESU5fRklMRU5PLCBUSU9DR1dJTlNaLCAmd3MpID49IDApCisJICAgIHsKKwkgICAgICBpb2N0bCAobWFzdGVyLCBUSU9DU1dJTlNaLCAmd3MpOworCSAgICB9CisJICBwcm9wYWdhdGVfc2lnd2luY2ggPSAwOworCSAgY29udGludWU7CisJfQorCisgICAgICBpZiAobnVtIDw9IDApCisJeworCSAgcGVycm9yICgic2VsZWN0Iik7CisJICBleGl0ICgtMSk7CisJfQorICAgICAgaWYgKEZEX0lTU0VUIChpbl9mcm9tX3R0eV9mZCwgJmluX3NldCkpCisJeworCSAgZXh0ZXJuIGludCByZWFkbGluZV9lY2hvaW5nX3A7CisJICBzdHJ1Y3QgdGVybWlvcyB0ZXJtX21hc3RlcjsKKwkgIGludCBkb19jYW5vbiA9IDE7CisJICBpbnQgZG9faWNybmwgPSAxOworCSAgaW50IGlvY3RsX3JldDsKKworCSAgRFBSSU5UMSgiW3R0eSBhdmFpbCBudW1fa2V5czolZF1cbiIsIG51bV9rZXlzKTsKKworCSAgLyogSWYgd2UgY2FuJ3QgZ2V0IHR0eSBtb2RlcyBmb3IgdGhlIG1hc3RlciBzaWRlIG9mIHRoZSBwdHksIHdlCisJICAgICBjYW4ndCBoYW5kbGUgbm9uLWNhbm9uaWNhbC1tb2RlIHByb2dyYW1zLiAgQWx3YXlzIGFzc3VtZSB0aGUKKwkgICAgIG1hc3RlciBpcyBpbiBjYW5vbmljYWwgZWNobyBtb2RlIGlmIHdlIGNhbid0IHRlbGwuICovCisJICBpb2N0bF9yZXQgPSB0Y2dldGF0dHIobWFzdGVyLCAmdGVybV9tYXN0ZXIpOworCisJICBpZiAoaW9jdGxfcmV0ID49IDApCisJICAgIHsKKwkgICAgICBkb19jYW5vbiA9ICh0ZXJtX21hc3Rlci5jX2xmbGFnICYgSUNBTk9OKSAhPSAwOworCSAgICAgIGRvX2ljcm5sID0gKHRlcm1fbWFzdGVyLmNfbGZsYWcgJiBJQ1JOTCkgIT0gMDsKKwkgICAgICByZWFkbGluZV9lY2hvaW5nX3AgPSAodGVybV9tYXN0ZXIuY19sZmxhZyAmIEVDSE8pICE9IDA7CisJICAgICAgRFBSSU5UMSAoImVjaG8sY2Fub24sY3JubDolMDNkXG4iLAorCQkgICAgICAgMTAwICogcmVhZGxpbmVfZWNob2luZ19wCisJCSAgICAgICArIDEwICogZG9fY2Fub24KKwkJICAgICAgICsgMSAqIGRvX2ljcm5sKTsKKwkgICAgfQorCSAgZWxzZQorCSAgICB7CisJICAgICAgaWYgKGlvY3RsX2VyciA9PSAwKQorCQlEUFJJTlQxKCJ0Y2dldGF0dHIgb24gbWFzdGVyIGZkIGZhaWxlZDogZXJybm8gPSAlZFxuIiwgZXJybm8pOworCSAgICAgIGlvY3RsX2VyciA9IDE7CisJICAgIH0KKworCSAgaWYgKGRvX2Nhbm9uID09IDAgJiYgbnVtX2tleXMgPT0gMCkKKwkgICAgeworCSAgICAgIGNoYXIgY2hbMTBdOworCSAgICAgIGludCBjb3VudCA9IHJlYWQgKFNURElOX0ZJTEVOTywgY2gsIHNpemVvZihjaCkpOworCSAgICAgIERQUklOVDEoIltyZWFkICVkIGNoYXJzIGZyb20gc3RkaW46ICIsIGNvdW50KTsKKwkgICAgICBEUFJJTlQyKCIgXCIlLipzXCJdXG4iLCBjb3VudCwgY2gpOworCSAgICAgIGlmIChkb19pY3JubCkKKwkJeworCQkgIGludCBpID0gY291bnQ7CisJCSAgd2hpbGUgKC0taSA+PSAwKQorCQkgICAgeworCQkgICAgICBpZiAoY2hbaV0gPT0gJ1xyJykKKwkJCWNoW2ldID0gJ1xuJzsKKwkJICAgIH0KKwkJfQorCSAgICAgIG1heWJlX2VtcGhhc2l6ZV9pbnB1dCAoMSk7CisJICAgICAgd3JpdGUgKG91dF90b19pbmZlcmlvcl9mZCwgY2gsIGNvdW50KTsKKwkgICAgfQorCSAgZWxzZQorCSAgICB7CisJICAgICAgaWYgKG51bV9rZXlzID09IDApCisJCXsKKwkJICBpbnQgaTsKKwkJICAvKiBSZS1pbnN0YWxsIGNhbGxiYWNrIGhhbmRsZXIgZm9yIG5ldyBwcm9tcHQuICovCisJCSAgaWYgKHByb21wdCAhPSBlbXB0eV9zdHJpbmcpCisJCSAgICBmcmVlIChwcm9tcHQpOworCQkgIGlmIChwcm9tcHQgPT0gTlVMTCkKKwkJICAgIHsKKwkJICAgICAgRFBSSU5UMCgiTmV3IGVtcHR5IHByb21wdFxuIik7CisJCSAgICAgIHByb21wdCA9IGVtcHR5X3N0cmluZzsKKwkJICAgIH0KKwkJICBlbHNlCisJCSAgICB7CisJCSAgICAgIGlmIChkb19lbXBoYXNpemVfaW5wdXQgJiYgYnVmX2NvdW50ID4gMCkKKwkJCXsKKwkJCSAgcHJvbXB0ID0gbWFsbG9jIChidWZfY291bnQgKyBzdHJsZW4gKGVuZF9pbnB1dF9tb2RlKQorCQkJCQkgICArIHN0cmxlbiAoc3RhcnRfaW5wdXRfbW9kZSkgKyA1KTsKKwkJCSAgc3ByaW50ZiAocHJvbXB0LCAiXDAwMSVzXDAwMiUuKnNcMDAxJXNcMDAyIiwKKwkJCQkgICBlbmRfaW5wdXRfbW9kZSwKKwkJCQkgICBidWZfY291bnQsIGJ1ZiwKKwkJCQkgICBzdGFydF9pbnB1dF9tb2RlKTsKKwkJCX0KKwkJICAgICAgZWxzZQorCQkJeworCQkJICBwcm9tcHQgPSBtYWxsb2MgKGJ1Zl9jb3VudCArIDEpOworCQkJICBtZW1jcHkgKHByb21wdCwgYnVmLCBidWZfY291bnQpOworCQkJICBwcm9tcHRbYnVmX2NvdW50XSA9ICdcMCc7CisJCQl9CisJCSAgICAgIERQUklOVDEoIk5ldyBwcm9tcHQgJyVzJ1xuIiwgcHJvbXB0KTsKKyNpZiAwIC8qIGlmZGVmIEhBVkVfUkxfQUxSRUFEWV9QUk9NUFRFRCAqLworCQkgICAgICAvKiBEb2Vzbid0IHF1aXRlIHdvcmsgd2hlbiBkb19lbXBoYXNpemVfaW5wdXQgaXMgMS4gKi8KKwkJICAgICAgcmxfYWxyZWFkeV9wcm9tcHRlZCA9IGJ1Zl9jb3VudCA+IDA7CisjZWxzZQorCQkgICAgICBpZiAoYnVmX2NvdW50ID4gMCkKKwkJCXdyaXRlICgxLCAiXHIiLCAxKTsKKyNlbmRpZgorCQkgICAgfQorCisJCSAgcmxfY2FsbGJhY2tfaGFuZGxlcl9pbnN0YWxsIChwcm9tcHQsIGxpbmVfaGFuZGxlcik7CisJCX0KKwkgICAgICBudW1fa2V5cysrOworCSAgICAgIG1heWJlX2VtcGhhc2l6ZV9pbnB1dCAoMSk7CisJICAgICAgcmxfY2FsbGJhY2tfcmVhZF9jaGFyICgpOworCSAgICB9CisJfQorICAgICAgZWxzZSAvKiBvdXRwdXQgZnJvbSBpbmZlcmlvci4gKi8KKwl7CisJICBpbnQgaTsKKwkgIGludCBjb3VudDsKKwkgIGludCBvbGRfY291bnQ7CisJICBpZiAoYnVmX2NvdW50ID4gKHNpemVvZihidWYpID4+IDIpKQorCSAgICBidWZfY291bnQgPSAwOworCSAgY291bnQgPSByZWFkIChpbl9mcm9tX2luZmVyaW9yX2ZkLCBidWYrYnVmX2NvdW50LAorCQkJc2l6ZW9mKGJ1ZikgLSBidWZfY291bnQpOworICAgICAgICAgIERQUklOVDIoInJlYWQgJWQgZnJvbSBpbmZlcmlvciwgYnVmX2NvdW50PSVkIiwgY291bnQsIGJ1Zl9jb3VudCk7CisJICBEUFJJTlQyKCI6IFwiJS4qc1wiIiwgY291bnQsIGJ1ZitidWZfY291bnQpOworCSAgbWF5YmVfZW1waGFzaXplX2lucHV0ICgwKTsKKwkgIGlmIChjb3VudCA8PSAwKQorCSAgICB7CisJICAgICAgRFBSSU5UMCAoIihDb25uZWN0aW9uIGNsb3NlZCBieSBmb3JlaWduIGhvc3QuKVxuIik7CisJICAgICAgdGNzZXRhdHRyKFNURElOX0ZJTEVOTywgVENTQU5PVywgJm9yaWdfdGVybSk7CisJICAgICAgZXhpdCAoMCk7CisJICAgIH0KKwkgIG9sZF9jb3VudCA9IGJ1Zl9jb3VudDsKKworICAgICAgICAgIC8qIExvb2sgZm9yIGFueSBwZW5kaW5nIGVjaG8gdGhhdCB3ZSBuZWVkIHRvIHN1cHByZXNzLiAqLworCSAgd2hpbGUgKGVjaG9fc3VwcHJlc3Nfc3RhcnQgPCBlY2hvX3N1cHByZXNzX2xpbWl0CisJCSAmJiBjb3VudCA+IDAKKwkJICYmIGJ1ZltidWZfY291bnRdID09IGVjaG9fc3VwcHJlc3NfYnVmZmVyW2VjaG9fc3VwcHJlc3Nfc3RhcnRdKQorCSAgICB7CisJICAgICAgY291bnQtLTsKKwkgICAgICBidWZfY291bnQrKzsKKwkgICAgICBlY2hvX3N1cHByZXNzX3N0YXJ0Kys7CisJICAgIH0KKwkgIERQUklOVDEoInN1cHByZXNzZWQgJWQgY2hhcmFjdGVycyBvZiBlY2hvLlxuIiwgYnVmX2NvdW50LW9sZF9jb3VudCk7CisKKyAgICAgICAgICAvKiBXcml0ZSB0byB0aGUgdGVybWluYWwgYW55dGhpbmcgdGhhdCB3YXMgbm90IHN1cHByZXNzZWQuICovCisgICAgICAgICAgaWYgKGNvdW50ID4gMCkKKyAgICAgICAgICAgIHdyaXRlICgxLCBidWYgKyBidWZfY291bnQsIGNvdW50KTsKKworICAgICAgICAgIC8qIEZpbmFsbHksIGxvb2sgZm9yIGEgcHJvbXB0IGNhbmRpZGF0ZS4KKyAgICAgICAgICAgKiBXaGVuIHdlIGdldCBhcm91bmQgdG8gZ29pbmcgaW5wdXQgKGZyb20gdGhlIGtleWJvYXJkKSwKKyAgICAgICAgICAgKiB3ZSB3aWxsIGNvbnNpZGVyIHRoZSBwcm9tcHQgdG8gYmUgYW55dGhpbmcgc2luY2UgdGhlIGxhc3QKKyAgICAgICAgICAgKiBsaW5lIHRlcm1pbmF0b3IuICBTbyB3ZSBuZWVkIHRvIHNhdmUgdGhhdCB0ZXh0IGluIHRoZQorICAgICAgICAgICAqIGluaXRpYWwgcGFydCBvZiBidWYuICBIb3dldmVyLCBhbnl0aGluZyBiZWZvcmUgdGhlCisgICAgICAgICAgICogbW9zdCByZWNlbnQgZW5kLW9mLWxpbmUgaXMgbm90IGludGVyZXN0aW5nLiAqLworCSAgYnVmX2NvdW50ICs9IGNvdW50OworI2lmIDEKKwkgIGZvciAoaSA9IGJ1Zl9jb3VudDsgIC0taSA+PSBvbGRfY291bnQ7ICkKKyNlbHNlCisJICBmb3IgKGkgPSBidWZfY291bnQgLSAxOyAgaS0tID49IGJ1Zl9jb3VudCAtIGNvdW50OyApCisjZW5kaWYKKwkgICAgeworCSAgICAgIGlmIChidWZbaV0gPT0gJ1xuJyB8fCBidWZbaV0gPT0gJ1xyJykKKwkJeworCQkgIGkrKzsKKwkJICBtZW1tb3ZlIChidWYsIGJ1ZitpLCBidWZfY291bnQgLSBpKTsKKwkJICBidWZfY291bnQgLT0gaTsKKwkJICBicmVhazsKKwkJfQorCSAgICB9CisJICBEUFJJTlQyKCItPiBpOiAlZCwgYnVmX2NvdW50OiAlZFxuIiwgaSwgYnVmX2NvdW50KTsKKwl9CisgICAgfQorfQorCitzdGF0aWMgdm9pZCBzZXRfZWRpdF9tb2RlICgpCit7CisgIGludCB2aSA9IDA7CisgIGNoYXIgKnNoZWxsb3B0czsKKworICBzaGVsbG9wdHMgPSBnZXRlbnYgKCJTSEVMTE9QVFMiKTsKKyAgd2hpbGUgKHNoZWxsb3B0cyAhPSAwKQorICAgIHsKKyAgICAgIGlmIChzdHJuY21wICgidmkiLCBzaGVsbG9wdHMsIDIpID09IDApCisJeworCSAgdmkgPSAxOworCSAgYnJlYWs7CisJfQorICAgICAgc2hlbGxvcHRzID0gaW5kZXggKHNoZWxsb3B0cyArIDEsICc6Jyk7CisgICAgfQorCisgIGlmICghdmkpCisgICAgeworICAgICAgaWYgKGdldGVudiAoIkVESVRPUiIpICE9IDApCisJdmkgfD0gc3RyY21wIChnZXRlbnYgKCJFRElUT1IiKSwgInZpIikgPT0gMDsKKyAgICB9CisKKyAgaWYgKHZpKQorICAgIHJsX3ZhcmlhYmxlX2JpbmQgKCJlZGl0aW5nLW1vZGUiLCAidmkiKTsKKyAgZWxzZQorICAgIHJsX3ZhcmlhYmxlX2JpbmQgKCJlZGl0aW5nLW1vZGUiLCAiZW1hY3MiKTsKK30KKworCitzdGF0aWMgdm9pZCB1c2FnZV9leGl0ICgpCit7CisgIGZwcmludGYgKHN0ZGVyciwgIlVzYWdlOiBybGZlIFstaCBoaXN0ZmlsZV0gWy1zIHNpemVdIGNtZCBbYXJnMV0gW2FyZzJdIC4uLlxuXG4iKTsKKyAgZXhpdCAoMSk7Cit9CmRpZmYgLS1naXQgYS9yZWFkbGluZS9leGFtcGxlcy9ybGZlL3NjcmVlbi5oIGIvcmVhZGxpbmUvZXhhbXBsZXMvcmxmZS9zY3JlZW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YjA0MGMzCi0tLSAvZGV2L251bGwKKysrIGIvcmVhZGxpbmUvZXhhbXBsZXMvcmxmZS9zY3JlZW4uaApAQCAtMCwwICsxLDIgQEAKKy8qIER1bW15IGhlYWRlciB0byBhdm9pZCBtb2RpZnlpbmcgcHR5LmMgKi8KKyNpbmNsdWRlICJvcy5oIgpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvZXhhbXBsZXMvcmxwdHl0ZXN0LmMgYi9yZWFkbGluZS9leGFtcGxlcy9ybHB0eXRlc3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OTI1N2RiCi0tLSAvZGV2L251bGwKKysrIGIvcmVhZGxpbmUvZXhhbXBsZXMvcmxwdHl0ZXN0LmMKQEAgLTAsMCArMSwzMzcgQEAKKy8qCisgKgorICogQW5vdGhlciB0ZXN0IGhhcm5lc3MgZm9yIHRoZSByZWFkbGluZSBjYWxsYmFjayBpbnRlcmZhY2UuCisgKgorICogQXV0aG9yOiBCb2IgUm9zc2kgPGJvYkBicmFza28ubmV0PgorICovCisKKyNpZiBkZWZpbmVkIChIQVZFX0NPTkZJR19IKQorI2luY2x1ZGUgPGNvbmZpZy5oPgorI2VuZGlmCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8Y3Vyc2VzLmg+CisKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworI2luY2x1ZGUgPHNpZ25hbC5oPgorCisjaWYgMAkvKiBMSU5VWCAqLworI2luY2x1ZGUgPHB0eS5oPgorI2Vsc2UKKyNpbmNsdWRlIDx1dGlsLmg+CisjZW5kaWYKKworI2lmZGVmIFJFQURMSU5FX0xJQlJBUlkKKyMgIGluY2x1ZGUgInJlYWRsaW5lLmgiCisjZWxzZQorIyAgaW5jbHVkZSA8cmVhZGxpbmUvcmVhZGxpbmUuaD4KKyNlbmRpZgorCisvKioKKyAqIE1hc3Rlci9TbGF2ZSBQVFkgdXNlZCB0byBrZWVwIHJlYWRsaW5lIG9mZiBvZiBzdGRpbi9zdGRvdXQuCisgKi8KK3N0YXRpYyBpbnQgbWFzdGVyZmQgPSAtMTsKK3N0YXRpYyBpbnQgc2xhdmVmZDsKKwordm9pZAorc2lnaW50IChzKQorICAgICBpbnQgczsKK3sKKyAgdHR5X3Jlc2V0IChTVERJTl9GSUxFTk8pOworICBjbG9zZSAobWFzdGVyZmQpOworICBjbG9zZSAoc2xhdmVmZCk7CisgIHByaW50ZiAoIlxuIik7CisgIGV4aXQgKDApOworfQorCitzdGF0aWMgaW50IAordXNlcl9pbnB1dCgpCit7CisgIGludCBzaXplOworICBjb25zdCBpbnQgTUFYID0gMTAyNDsKKyAgY2hhciAqYnVmID0gKGNoYXIgKiltYWxsb2MoTUFYKzEpOworCisgIHNpemUgPSByZWFkIChTVERJTl9GSUxFTk8sIGJ1ZiwgTUFYKTsKKyAgaWYgKHNpemUgPT0gLTEpCisgICAgcmV0dXJuIC0xOworCisgIHNpemUgPSB3cml0ZSAobWFzdGVyZmQsIGJ1Ziwgc2l6ZSk7CisgIGlmIChzaXplID09IC0xKQorICAgIHJldHVybiAtMTsKKworICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCAKK3JlYWRsaW5lX2lucHV0KCkKK3sKKyAgY29uc3QgaW50IE1BWCA9IDEwMjQ7CisgIGNoYXIgKmJ1ZiA9IChjaGFyICopbWFsbG9jKE1BWCsxKTsKKyAgaW50IHNpemU7CisKKyAgc2l6ZSA9IHJlYWQgKG1hc3RlcmZkLCBidWYsIE1BWCk7CisgIGlmIChzaXplID09IC0xKQorICAgIHsKKyAgICAgIGZyZWUoIGJ1ZiApOworICAgICAgYnVmID0gTlVMTDsKKyAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgYnVmW3NpemVdID0gMDsKKworICAvKiBEaXNwbGF5IG91dHB1dCBmcm9tIHJlYWRsaW5lICovCisgIGlmICggc2l6ZSA+IDAgKQorICAgIGZwcmludGYoc3RkZXJyLCAiJXMiLCBidWYpOworCisgIGZyZWUoIGJ1ZiApOworICBidWYgPSBOVUxMOworICByZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgCitybGN0eF9zZW5kX3VzZXJfY29tbWFuZChjaGFyICpsaW5lKQoreworICAvKiBUaGlzIGhhcHBlbnMgd2hlbiBybF9jYWxsYmFja19yZWFkX2NoYXIgZ2V0cyBFT0YgKi8KKyAgaWYgKCBsaW5lID09IE5VTEwgKQorICAgIHJldHVybjsKKyAgICAKKyAgaWYgKHN0cmNtcCAobGluZSwgImV4aXQiKSA9PSAwKSB7CisgIAl0dHlfcmVzZXQgKFNURElOX0ZJTEVOTyk7CisgIAljbG9zZSAobWFzdGVyZmQpOworICAJY2xvc2UgKHNsYXZlZmQpOworICAJcHJpbnRmICgiXG4iKTsKKwlleGl0ICgwKTsKKyAgfQorICAKKyAgLyogRG9uJ3QgYWRkIHRoZSBlbnRlciBjb21tYW5kICovCisgIGlmICggbGluZSAmJiAqbGluZSAhPSAnXDAnICkKKyAgICBhZGRfaGlzdG9yeShsaW5lKTsKK30KKworc3RhdGljIHZvaWQgCitjdXN0b21fZGVwcmVwX3Rlcm1fZnVuY3Rpb24gKCkKK3sKK30KKworc3RhdGljIGludCAKK2luaXRfcmVhZGxpbmUgKGludCBpbnB1dGZkLCBpbnQgb3V0cHV0ZmQpIAoreworICBGSUxFICppbnB1dEZJTEUsICpvdXRwdXRGSUxFOworCisgIGlucHV0RklMRSA9IGZkb3BlbiAoaW5wdXRmZCwgInIiKTsKKyAgaWYgKCFpbnB1dEZJTEUpCisgICAgcmV0dXJuIC0xOworCisgIG91dHB1dEZJTEUgPSBmZG9wZW4gKG91dHB1dGZkLCAidyIpOworICBpZiAoIW91dHB1dEZJTEUpCisgICAgcmV0dXJuIC0xOworCisgIHJsX2luc3RyZWFtID0gaW5wdXRGSUxFOworICBybF9vdXRzdHJlYW0gPSBvdXRwdXRGSUxFOworCisgIC8qIFRlbGwgcmVhZGxpbmUgd2hhdCB0aGUgcHJvbXB0IGlzIGlmIGl0IG5lZWRzIHRvIHB1dCBpdCBiYWNrICovCisgIHJsX2NhbGxiYWNrX2hhbmRsZXJfaW5zdGFsbCgiKHJsdGVzdCk6ICAiLCBybGN0eF9zZW5kX3VzZXJfY29tbWFuZCk7CisKKyAgLyogU2V0IHRoZSB0ZXJtaW5hbCB0eXBlIHRvIGR1bWIgc28gdGhlIG91dHB1dCBvZiByZWFkbGluZSBjYW4gYmUKKyAgICogdW5kZXJzdG9vZCBieSB0Z2RiICovCisgIGlmICggcmxfcmVzZXRfdGVybWluYWwoImR1bWIiKSA9PSAtMSApCisgICAgcmV0dXJuIC0xOworCisgIC8qIEZvciBzb21lIHJlYXNvbiwgcmVhZGxpbmUgY2FuIG5vdCBkZXByZXAgdGhlIHRlcm1pbmFsLgorICAgKiBIb3dldmVyLCBpdCBkb2Vzbid0IG1hdHRlciBiZWNhdXNlIG5vIG90aGVyIGFwcGxpY2F0aW9uIGlzIHdvcmtpbmcgb24KKyAgICogdGhlIHRlcm1pbmFsIGJlc2lkZXMgcmVhZGxpbmUgKi8KKyAgcmxfZGVwcmVwX3Rlcm1fZnVuY3Rpb24gPSBjdXN0b21fZGVwcmVwX3Rlcm1fZnVuY3Rpb247CisKKyAgdXNpbmdfaGlzdG9yeSgpOworICByZWFkX2hpc3RvcnkoIi5oaXN0b3J5Iik7IAorCisgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50IAorbWFpbl9sb29wKHZvaWQpCit7CisgIGZkX3NldCByc2V0OworICBpbnQgbWF4OworICAgIAorICBtYXggPSAobWFzdGVyZmQgPiBTVERJTl9GSUxFTk8pID8gbWFzdGVyZmQgOiBTVERJTl9GSUxFTk87CisgIG1heCA9IChtYXggPiBzbGF2ZWZkKSA/IG1heCA6IHNsYXZlZmQ7CisKKyAgZm9yICg7OykKKyAgICB7CisgICAgICAvKiBSZXNldCB0aGUgZmRfc2V0LCBhbmQgd2F0Y2ggZm9yIGlucHV0IGZyb20gR0RCIG9yIHN0ZGluICovCisgICAgICBGRF9aRVJPKCZyc2V0KTsKKyAgICAgICAgCisgICAgICBGRF9TRVQoU1RESU5fRklMRU5PLCAmcnNldCk7CisgICAgICBGRF9TRVQoc2xhdmVmZCwgJnJzZXQpOworICAgICAgRkRfU0VUKG1hc3RlcmZkLCAmcnNldCk7CisKKyAgICAgIC8qIFdhaXQgZm9yIGlucHV0ICovCisgICAgICBpZiAoc2VsZWN0KG1heCArIDEsICZyc2V0LCBOVUxMLCBOVUxMLCBOVUxMKSA9PSAtMSkKKyAgICAgICAgeworICAgICAgICAgIGlmIChlcnJubyA9PSBFSU5UUikKKyAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKworICAgICAgLyogSW5wdXQgcmVjZWl2ZWQgdGhyb3VnaCB0aGUgcHR5OiAgSGFuZGxlIGl0IAorICAgICAgICogV3JvdGUgdG8gbWFzdGVyZmQsIHNsYXZlIGZkIGhhcyB0aGF0IGlucHV0LCBhbGVydCByZWFkbGluZSB0byByZWFkIGl0LiAKKyAgICAgICAqLworICAgICAgaWYgKEZEX0lTU0VUKHNsYXZlZmQsICZyc2V0KSkKKyAgICAgICAgcmxfY2FsbGJhY2tfcmVhZF9jaGFyKCk7CisKKyAgICAgIC8qIElucHV0IHJlY2VpdmVkIHRocm91Z2ggdGhlIHB0eS4KKyAgICAgICAqIFJlYWRsaW5lIHJlYWQgZnJvbSBzbGF2ZWZkLCBhbmQgaXQgd3JvdGUgdG8gdGhlIG1hc3RlcmZkLiAKKyAgICAgICAqLworICAgICAgaWYgKEZEX0lTU0VUKG1hc3RlcmZkLCAmcnNldCkpCisgICAgICAgIGlmICggcmVhZGxpbmVfaW5wdXQoKSA9PSAtMSApCisgICAgICAgICAgcmV0dXJuIC0xOworCisgICAgICAvKiBJbnB1dCByZWNlaXZlZDogIEhhbmRsZSBpdCwgd3JpdGUgdG8gbWFzdGVyZmQgKGlucHV0IHRvIHJlYWRsaW5lKSAqLworICAgICAgaWYgKEZEX0lTU0VUKFNURElOX0ZJTEVOTywgJnJzZXQpKQorICAgICAgICBpZiAoIHVzZXJfaW5wdXQoKSA9PSAtMSApCisgICAgICAgICAgcmV0dXJuIC0xOworICB9CisKKyAgcmV0dXJuIDA7Cit9CisKKy8qIFRoZSB0ZXJtaW5hbCBhdHRyaWJ1dGVzIGJlZm9yZSBjYWxsaW5nIHR0eV9jYnJlYWsgKi8KK3N0YXRpYyBzdHJ1Y3QgdGVybWlvcyBzYXZlX3Rlcm1pb3M7CitzdGF0aWMgc3RydWN0IHdpbnNpemUgc2l6ZTsKK3N0YXRpYyBlbnVtIHsgUkVTRVQsIFRDQlJFQUsgfSB0dHlzdGF0ZSA9IFJFU0VUOworCisvKiB0dHlfY2JyZWFrOiBTZXRzIHRlcm1pbmFsIHRvIGNicmVhayBtb2RlLiBBbHNvIGtub3duIGFzIG5vbmNhbm9uaWNhbCBtb2RlLgorICogICAgMS4gU2lnbmFsIGhhbmRsaW5nIGlzIHN0aWxsIHR1cm5lZCBvbiwgc28gdGhlIHVzZXIgY2FuIHN0aWxsIHR5cGUgdGhvc2UuCisgKiAgICAyLiBlY2hvIGlzIG9mZgorICogICAgMy4gUmVhZCBpbiBvbmUgY2hhciBhdCBhIHRpbWUuCisgKgorICogZmQgICAgLSBUaGUgZmlsZSBkZXNjcmlwdG9yIG9mIHRoZSB0ZXJtaW5hbAorICogCisgKiBSZXR1cm5zOiAwIG9uIHN1Y2VzcywgLTEgb24gZXJyb3IKKyAqLworaW50IHR0eV9jYnJlYWsoaW50IGZkKXsKKyAgIHN0cnVjdCB0ZXJtaW9zIGJ1ZjsKKyAgICBpbnQgdHR5c2F2ZWZkID0gLTE7CisgICAKKyAgIGlmKHRjZ2V0YXR0cihmZCwgJnNhdmVfdGVybWlvcykgPCAwKQorICAgICAgcmV0dXJuIC0xOworICAgICAgCisgICBidWYgPSBzYXZlX3Rlcm1pb3M7CisgICBidWYuY19sZmxhZyAmPSB+KEVDSE8gfCBJQ0FOT04pOworICAgYnVmLmNfaWZsYWcgJj0gfihJQ1JOTCB8IElOTENSKTsKKyAgIGJ1Zi5jX2NjW1ZNSU5dID0gMTsKKyAgIGJ1Zi5jX2NjW1ZUSU1FXSA9IDA7CisKKyNpZiBkZWZpbmVkIChWTE5FWFQpICYmIGRlZmluZWQgKF9QT1NJWF9WRElTQUJMRSkKKyAgIGJ1Zi5jX2NjW1ZMTkVYVF0gPSBfUE9TSVhfVkRJU0FCTEU7CisjZW5kaWYKKworI2lmIGRlZmluZWQgKFZEU1VTUCkgJiYgZGVmaW5lZCAoX1BPU0lYX1ZESVNBQkxFKQorICAgYnVmLmNfY2NbVkRTVVNQXSA9IF9QT1NJWF9WRElTQUJMRTsKKyNlbmRpZgorCisgIC8qIGVuYWJsZSBmbG93IGNvbnRyb2w7IG9ubHkgc3R0eSBzdGFydCBjaGFyIGNhbiByZXN0YXJ0IG91dHB1dCAqLworI2lmIDAKKyAgYnVmLmNfaWZsYWcgfD0gKElYT058SVhPRkYpOworI2lmZGVmIElYQU5ZCisgIGJ1Zi5jX2lmbGFnICY9IH5JWEFOWTsKKyNlbmRpZgorI2VuZGlmCisKKyAgLyogZGlzYWJsZSBmbG93IGNvbnRyb2w7IGxldCBeUyBhbmQgXlEgdGhyb3VnaCB0byBwdHkgKi8KKyAgYnVmLmNfaWZsYWcgJj0gfihJWE9OfElYT0ZGKTsKKyNpZmRlZiBJWEFOWQorICBidWYuY19pZmxhZyAmPSB+SVhBTlk7CisjZW5kaWYKKworICBpZih0Y3NldGF0dHIoZmQsIFRDU0FGTFVTSCwgJmJ1ZikgPCAwKQorICAgICAgcmV0dXJuIC0xOworCisgICB0dHlzdGF0ZSA9IFRDQlJFQUs7CisgICB0dHlzYXZlZmQgPSBmZDsKKworICAgLyogc2V0IHNpemUgKi8KKyAgIGlmKGlvY3RsKGZkLCBUSU9DR1dJTlNaLCAoY2hhciAqKSZzaXplKSA8IDApCisgICAgICByZXR1cm4gLTE7CisKKyNpZmRlZiBERUJVRworICAgZXJyX21zZygiJWQgcm93cyBhbmQgJWQgY29sc1xuIiwgc2l6ZS53c19yb3csIHNpemUud3NfY29sKTsgICAKKyNlbmRpZgorICAgCisgICByZXR1cm4gKDApOyAgIAorfQorCitpbnQgCit0dHlfb2ZmX3hvbl94b2ZmIChpbnQgZmQpCit7CisgIHN0cnVjdCB0ZXJtaW9zIGJ1ZjsKKyAgaW50IHR0eXNhdmVmZCA9IC0xOworCisgIGlmKHRjZ2V0YXR0cihmZCwgJmJ1ZikgPCAwKQorICAgIHJldHVybiAtMTsKKyAgICAgCisgIGJ1Zi5jX2lmbGFnICY9IH4oSVhPTnxJWE9GRik7CisKKyAgaWYodGNzZXRhdHRyKGZkLCBUQ1NBRkxVU0gsICZidWYpIDwgMCkKKyAgICByZXR1cm4gLTE7CisKKyAgcmV0dXJuIDA7ICAgCit9CisKKy8qIHR0eV9yZXNldDogU2V0cyB0aGUgdGVybWluYWwgYXR0cmlidXRlcyBiYWNrIHRvIHRoZWlyIHByZXZpb3VzIHN0YXRlLgorICogUFJFOiB0dHlfY2JyZWFrIG11c3QgaGF2ZSBhbHJlYWR5IGJlZW4gY2FsbGVkLgorICogCisgKiBmZCAgICAtIFRoZSBmaWxlIGRlc2NyaW9wdG9yIG9mIHRoZSB0ZXJtaW5hbCB0byByZXNldC4KKyAqIAorICogUmV0dXJuczogMCBvbiBzdWNjZXNzLCAtMSBvbiBlcnJvcgorICovCitpbnQgdHR5X3Jlc2V0KGludCBmZCkKK3sKKyAgIGlmKHR0eXN0YXRlICE9IFRDQlJFQUspCisgICAgICByZXR1cm4gKDApOworCisgICBpZih0Y3NldGF0dHIoZmQsIFRDU0FGTFVTSCwgJnNhdmVfdGVybWlvcykgPCAwKQorICAgICAgcmV0dXJuICgtMSk7CisgICAgICAKKyAgIHR0eXN0YXRlID0gUkVTRVQ7CisgICAKKyAgIHJldHVybiAwOyAgIAorfQorCitpbnQgCittYWluKCkKK3sKKyAgaW50IHZhbDsKKyAgdmFsID0gb3BlbnB0eSAoJm1hc3RlcmZkLCAmc2xhdmVmZCwgTlVMTCwgTlVMTCwgTlVMTCk7CisgIGlmICh2YWwgPT0gLTEpCisgICAgcmV0dXJuIC0xOworCisgIHZhbCA9IHR0eV9vZmZfeG9uX3hvZmYgKG1hc3RlcmZkKTsKKyAgaWYgKHZhbCA9PSAtMSkKKyAgICByZXR1cm4gLTE7CisKKyAgdmFsID0gaW5pdF9yZWFkbGluZSAoc2xhdmVmZCwgc2xhdmVmZCk7CisgIGlmICh2YWwgPT0gLTEpCisgICAgcmV0dXJuIC0xOworCisgIHZhbCA9IHR0eV9jYnJlYWsgKFNURElOX0ZJTEVOTyk7CisgIGlmICh2YWwgPT0gLTEpCisgICAgcmV0dXJuIC0xOworCisgIHNpZ25hbCAoU0lHSU5ULCBzaWdpbnQpOworCisgIHZhbCA9IG1haW5fbG9vcCAoKTsKKworICB0dHlfcmVzZXQgKFNURElOX0ZJTEVOTyk7CisKKyAgaWYgKHZhbCA9PSAtMSkKKyAgICByZXR1cm4gLTE7CisKKyAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9yZWFkbGluZS9leGFtcGxlcy9ybHRlc3QuYyBiL3JlYWRsaW5lL2V4YW1wbGVzL3JsdGVzdC5jCmluZGV4IDk5ZjA4M2IuLmNiNjdiYWIgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL2V4YW1wbGVzL3JsdGVzdC5jCisrKyBiL3JlYWRsaW5lL2V4YW1wbGVzL3JsdGVzdC5jCkBAIC0zMSw2ICszMSwxMiBAQAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAKKyNpZmRlZiBIQVZFX1NURExJQl9ICisjICBpbmNsdWRlIDxzdGRsaWIuaD4KKyNlbHNlIAorZXh0ZXJuIHZvaWQgZXhpdCgpOworI2VuZGlmCisKICNpZmRlZiBSRUFETElORV9MSUJSQVJZCiAjICBpbmNsdWRlICJyZWFkbGluZS5oIgogIyAgaW5jbHVkZSAiaGlzdG9yeS5oIgpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvZXhhbXBsZXMvcmx2ZXJzaW9uLmMgYi9yZWFkbGluZS9leGFtcGxlcy9ybHZlcnNpb24uYwppbmRleCA1Mzk0OWQxLi42Yzg2ODc0IDEwMDY0NAotLS0gYS9yZWFkbGluZS9leGFtcGxlcy9ybHZlcnNpb24uYworKysgYi9yZWFkbGluZS9leGFtcGxlcy9ybHZlcnNpb24uYwpAQCAtMzAsNiArMzAsMTIgQEAKICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpbmNsdWRlICJwb3NpeHN0YXQuaCIKIAorI2lmZGVmIEhBVkVfU1RETElCX0gKKyMgIGluY2x1ZGUgPHN0ZGxpYi5oPgorI2Vsc2UKK2V4dGVybiB2b2lkIGV4aXQoKTsKKyNlbmRpZgorCiAjaWZkZWYgUkVBRExJTkVfTElCUkFSWQogIyAgaW5jbHVkZSAicmVhZGxpbmUuaCIKICNlbHNlCmRpZmYgLS1naXQgYS9yZWFkbGluZS9mdW5tYXAuYyBiL3JlYWRsaW5lL2Z1bm1hcC5jCmluZGV4IGZlOWExZGEuLjljNzYwY2MgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL2Z1bm1hcC5jCisrKyBiL3JlYWRsaW5lL2Z1bm1hcC5jCkBAIC0xMzEsNiArMTMxLDcgQEAKICAgeyAidHR5LXN0YXR1cyIsIHJsX3R0eV9zdGF0dXMgfSwKICAgeyAidW5kbyIsIHJsX3VuZG9fY29tbWFuZCB9LAogICB7ICJ1bml2ZXJzYWwtYXJndW1lbnQiLCBybF91bml2ZXJzYWxfYXJndW1lbnQgfSwKKyAgeyAidW5peC1maWxlbmFtZS1ydWJvdXQiLCBybF91bml4X2ZpbGVuYW1lX3J1Ym91dCB9LAogICB7ICJ1bml4LWxpbmUtZGlzY2FyZCIsIHJsX3VuaXhfbGluZV9kaXNjYXJkIH0sCiAgIHsgInVuaXgtd29yZC1ydWJvdXQiLCBybF91bml4X3dvcmRfcnVib3V0IH0sCiAgIHsgInVwY2FzZS13b3JkIiwgcmxfdXBjYXNlX3dvcmQgfSwKQEAgLTE3NSw2ICsxNzYsNyBAQAogICB7ICJ2aS1wdXQiLCBybF92aV9wdXQgfSwKICAgeyAidmktcmVkbyIsIHJsX3ZpX3JlZG8gfSwKICAgeyAidmktcmVwbGFjZSIsIHJsX3ZpX3JlcGxhY2UgfSwKKyAgeyAidmktcnVib3V0IiwgcmxfdmlfcnVib3V0IH0sCiAgIHsgInZpLXNlYXJjaCIsIHJsX3ZpX3NlYXJjaCB9LAogICB7ICJ2aS1zZWFyY2gtYWdhaW4iLCBybF92aV9zZWFyY2hfYWdhaW4gfSwKICAgeyAidmktc2V0LW1hcmsiLCBybF92aV9zZXRfbWFyayB9LApkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvaGlzdGV4cGFuZC5jIGIvcmVhZGxpbmUvaGlzdGV4cGFuZC5jCmluZGV4IDZjODExOTYuLjY4NDcwMTQgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL2hpc3RleHBhbmQuYworKysgYi9yZWFkbGluZS9oaXN0ZXhwYW5kLmMKQEAgLTEsNiArMSw2IEBACiAvKiBoaXN0ZXhwYW5kLmMgLS0gaGlzdG9yeSBleHBhbnNpb24uICovCiAKLS8qIENvcHlyaWdodCAoQykgMTk4OSwgMTk5MiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKy8qIENvcHlyaWdodCAoQykgMTk4OS0yMDA0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCiAgICBUaGlzIGZpbGUgY29udGFpbnMgdGhlIEdOVSBIaXN0b3J5IExpYnJhcnkgKHRoZSBMaWJyYXJ5KSwgYSBzZXQgb2YKICAgIHJvdXRpbmVzIGZvciBtYW5hZ2luZyB0aGUgdGV4dCBvZiBwcmV2aW91c2x5IHR5cGVkIGxpbmVzLgpAQCAtNTIsNiArNTIsOCBAQAogI2RlZmluZSBISVNUT1JZX1dPUkRfREVMSU1JVEVSUwkJIiBcdFxuOyYoKXw8PiIKICNkZWZpbmUgSElTVE9SWV9RVU9URV9DSEFSQUNURVJTCSJcIidgIgogCisjZGVmaW5lIHNsYXNoaWZ5X2luX3F1b3RlcyAiXFxgXCIkIgorCiB0eXBlZGVmIGludCBfaGlzdF9zZWFyY2hfZnVuY190IFBBUkFNUygoY29uc3QgY2hhciAqLCBpbnQpKTsKIAogZXh0ZXJuIGludCBybF9ieXRlX29yaWVudGVkOwkvKiBkZWNsYXJlZCBpbiBtYnV0aWwuYyAqLwpAQCAtNjUsNiArNjcsOCBAQAogCiBzdGF0aWMgY2hhciAqZ2V0X2hpc3Rvcnlfd29yZF9zcGVjaWZpZXIgUEFSQU1TKChjaGFyICosIGNoYXIgKiwgaW50ICopKTsKIHN0YXRpYyBjaGFyICpoaXN0b3J5X2ZpbmRfd29yZCBQQVJBTVMoKGNoYXIgKiwgaW50KSk7CitzdGF0aWMgaW50IGhpc3RvcnlfdG9rZW5pemVfd29yZCBQQVJBTVMoKGNvbnN0IGNoYXIgKiwgaW50KSk7CitzdGF0aWMgY2hhciAqaGlzdG9yeV9zdWJzdHJpbmcgUEFSQU1TKChjb25zdCBjaGFyICosIGludCwgaW50KSk7CiAKIHN0YXRpYyBjaGFyICpxdW90ZV9icmVha3MgUEFSQU1TKChjaGFyICopKTsKIApAQCAtMjAyLDIzICsyMDYsMjQgQEAKIAogICAvKiBPbmx5IGEgY2xvc2luZyBgPycgb3IgYSBuZXdsaW5lIGRlbGltaXQgYSBzdWJzdHJpbmcgc2VhcmNoIHN0cmluZy4gKi8KICAgZm9yIChsb2NhbF9pbmRleCA9IGk7IGMgPSBzdHJpbmdbaV07IGkrKykKKyAgICB7CiAjaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKLSAgICBpZiAoTUJfQ1VSX01BWCA+IDEgJiYgcmxfYnl0ZV9vcmllbnRlZCA9PSAwKQotICAgICAgewotCWludCB2OwotCW1ic3RhdGVfdCBwczsKKyAgICAgIGlmIChNQl9DVVJfTUFYID4gMSAmJiBybF9ieXRlX29yaWVudGVkID09IDApCisJeworCSAgaW50IHY7CisJICBtYnN0YXRlX3QgcHM7CiAKLQltZW1zZXQgKCZwcywgMCwgc2l6ZW9mIChtYnN0YXRlX3QpKTsKLQkvKiBUaGVzZSBwcm9kdWNlIHdhcm5pbmdzIGJlY2F1c2Ugd2UncmUgcGFzc2luZyBhIGNvbnN0IHN0cmluZyB0byBhCi0JICAgZnVuY3Rpb24gdGhhdCB0YWtlcyBhIG5vbi1jb25zdCBzdHJpbmcuICovCi0JX3JsX2FkanVzdF9wb2ludCAoc3RyaW5nLCBpLCAmcHMpOwotCWlmICgodiA9IF9ybF9nZXRfY2hhcl9sZW4gKHN0cmluZyArIGksICZwcykpID4gMSkKLQkgIHsKLQkgICAgaSArPSB2IC0gMTsKLQkgICAgY29udGludWU7Ci0JICB9Ci0gICAgICB9Ci0gICAgZWxzZQorCSAgbWVtc2V0ICgmcHMsIDAsIHNpemVvZiAobWJzdGF0ZV90KSk7CisJICAvKiBUaGVzZSBwcm9kdWNlIHdhcm5pbmdzIGJlY2F1c2Ugd2UncmUgcGFzc2luZyBhIGNvbnN0IHN0cmluZyB0byBhCisJICAgICBmdW5jdGlvbiB0aGF0IHRha2VzIGEgbm9uLWNvbnN0IHN0cmluZy4gKi8KKwkgIF9ybF9hZGp1c3RfcG9pbnQgKChjaGFyICopc3RyaW5nLCBpLCAmcHMpOworCSAgaWYgKCh2ID0gX3JsX2dldF9jaGFyX2xlbiAoKGNoYXIgKilzdHJpbmcgKyBpLCAmcHMpKSA+IDEpCisJICAgIHsKKwkgICAgICBpICs9IHYgLSAxOworCSAgICAgIGNvbnRpbnVlOworCSAgICB9CisgICAgICAgIH0KKwogI2VuZGlmIC8qIEhBTkRMRV9NVUxUSUJZVEUgKi8KICAgICAgIGlmICgoIXN1YnN0cmluZ19va2F5ICYmICh3aGl0ZXNwYWNlIChjKSB8fCBjID09ICc6JyB8fAogCSAgKGhpc3Rvcnlfc2VhcmNoX2RlbGltaXRlcl9jaGFycyAmJiBtZW1iZXIgKGMsIGhpc3Rvcnlfc2VhcmNoX2RlbGltaXRlcl9jaGFycykpIHx8CkBAIC0yMjYsNiArMjMxLDcgQEAKIAkgIHN0cmluZ1tpXSA9PSAnXG4nIHx8CiAJICAoc3Vic3RyaW5nX29rYXkgJiYgc3RyaW5nW2ldID09ICc/JykpCiAJYnJlYWs7CisgICAgfQogCiAgIHdoaWNoID0gaSAtIGxvY2FsX2luZGV4OwogICB0ZW1wID0gKGNoYXIgKil4bWFsbG9jICgxICsgd2hpY2gpOwpAQCAtNTE3LDcgKzUyMyw3IEBACiAgICAgIGNoYXIgKmN1cnJlbnRfbGluZTsJLyogZm9yICEjICovCiB7CiAgIGludCBpLCBuLCBzdGFydGluZ19pbmRleDsKLSAgaW50IHN1YnN0aXR1dGVfZ2xvYmFsbHksIHdhbnRfcXVvdGVzLCBwcmludF9vbmx5OworICBpbnQgc3Vic3RpdHV0ZV9nbG9iYWxseSwgc3Vic3RfYnl3b3Jkcywgd2FudF9xdW90ZXMsIHByaW50X29ubHk7CiAgIGNoYXIgKmV2ZW50LCAqdGVtcCwgKnJlc3VsdCwgKnRzdHIsICp0LCBjLCAqd29yZF9zcGVjOwogICBpbnQgcmVzdWx0X2xlbjsKICNpZiBkZWZpbmVkIChIQU5ETEVfTVVMVElCWVRFKQpAQCAtNTk5LDE5ICs2MDUsMjUgQEAKICAgRlJFRSAod29yZF9zcGVjKTsKIAogICAvKiBQZXJoYXBzIHRoZXJlIGFyZSBvdGhlciBtb2RpZmllcnMgaW52b2x2ZWQuICBEbyB3aGF0IHRoZXkgc2F5LiAqLwotICB3YW50X3F1b3RlcyA9IHN1YnN0aXR1dGVfZ2xvYmFsbHkgPSBwcmludF9vbmx5ID0gMDsKKyAgd2FudF9xdW90ZXMgPSBzdWJzdGl0dXRlX2dsb2JhbGx5ID0gc3Vic3RfYnl3b3JkcyA9IHByaW50X29ubHkgPSAwOwogICBzdGFydGluZ19pbmRleCA9IGk7CiAKICAgd2hpbGUgKHN0cmluZ1tpXSA9PSAnOicpCiAgICAgewogICAgICAgYyA9IHN0cmluZ1tpICsgMV07CiAKLSAgICAgIGlmIChjID09ICdnJykKKyAgICAgIGlmIChjID09ICdnJyB8fCBjID09ICdhJykKIAl7CiAJICBzdWJzdGl0dXRlX2dsb2JhbGx5ID0gMTsKIAkgIGkrKzsKIAkgIGMgPSBzdHJpbmdbaSArIDFdOwogCX0KKyAgICAgIGVsc2UgaWYgKGMgPT0gJ0cnKQorCXsKKwkgIHN1YnN0X2J5d29yZHMgPSAxOworCSAgaSsrOworCSAgYyA9IHN0cmluZ1tpICsgMV07CisJfQogCiAgICAgICBzd2l0Y2ggKGMpCiAJewpAQCAtNjgzLDcgKzY5NSw3IEBACiAJY2FzZSAncyc6CiAJICB7CiAJICAgIGNoYXIgKm5ld19ldmVudDsKLQkgICAgaW50IGRlbGltaXRlciwgZmFpbGVkLCBzaSwgbF90ZW1wOworCSAgICBpbnQgZGVsaW1pdGVyLCBmYWlsZWQsIHNpLCBsX3RlbXAsIHdzLCB3ZTsKIAogCSAgICBpZiAoYyA9PSAncycpCiAJICAgICAgewpAQCAtNzYwLDMzICs3NzIsNjcgQEAKIAkgICAgICB9CiAKIAkgICAgLyogRmluZCB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiBUSElTIGluIFRFTVAuICovCi0JICAgIHNpID0gMDsKKwkgICAgLyogU3Vic3RpdHV0ZSBTVUJTVF9SSFMgZm9yIFNVQlNUX0xIUyBpbiBURU1QLiAgVGhlcmUgYXJlIHRocmVlCisJICAgICAgIGNhc2VzIHRvIGNvbnNpZGVyOgorCisJCSAxLiAgc3Vic3RpdHV0ZV9nbG9iYWxseSA9PSBzdWJzdF9ieXdvcmRzID09IDAKKwkJIDIuICBzdWJzdGl0dXRlX2dsb2JhbGx5ID09IDEgJiYgc3Vic3RfYnl3b3JkcyA9PSAwCisJCSAzLiAgc3Vic3RpdHV0ZV9nbG9iYWxseSA9PSAwICYmIHN1YnN0X2J5d29yZHMgPT0gMQorCisJICAgICAgIEluIHRoZSBmaXJzdCBjYXNlLCB3ZSBzdWJzdGl0dXRlIGZvciB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvbmx5LgorCSAgICAgICBJbiB0aGUgc2Vjb25kIGNhc2UsIHdlIHN1YnN0aXR1dGUgZm9yIGV2ZXJ5IG9jY3VycmVuY2UuCisJICAgICAgIEluIHRoZSB0aGlyZCBjYXNlLCB3ZSB0b2tlbml6ZSBpbnRvIHdvcmRzIGFuZCBzdWJzdGl0dXRlIHRoZQorCSAgICAgICBmaXJzdCBvY2N1cnJlbmNlIG9mIGVhY2ggd29yZC4gKi8KKworCSAgICBzaSA9IHdlID0gMDsKIAkgICAgZm9yIChmYWlsZWQgPSAxOyAoc2kgKyBzdWJzdF9saHNfbGVuKSA8PSBsX3RlbXA7IHNpKyspCi0JICAgICAgaWYgKFNUUkVRTiAodGVtcCtzaSwgc3Vic3RfbGhzLCBzdWJzdF9saHNfbGVuKSkKLQkJewotCQkgIGludCBsZW4gPSBzdWJzdF9yaHNfbGVuIC0gc3Vic3RfbGhzX2xlbiArIGxfdGVtcDsKLQkJICBuZXdfZXZlbnQgPSAoY2hhciAqKXhtYWxsb2MgKDEgKyBsZW4pOwotCQkgIHN0cm5jcHkgKG5ld19ldmVudCwgdGVtcCwgc2kpOwotCQkgIHN0cm5jcHkgKG5ld19ldmVudCArIHNpLCBzdWJzdF9yaHMsIHN1YnN0X3Joc19sZW4pOwotCQkgIHN0cm5jcHkgKG5ld19ldmVudCArIHNpICsgc3Vic3RfcmhzX2xlbiwKLQkJCSAgIHRlbXAgKyBzaSArIHN1YnN0X2xoc19sZW4sCi0JCQkgICBsX3RlbXAgLSAoc2kgKyBzdWJzdF9saHNfbGVuKSk7Ci0JCSAgbmV3X2V2ZW50W2xlbl0gPSAnXDAnOwotCQkgIGZyZWUgKHRlbXApOwotCQkgIHRlbXAgPSBuZXdfZXZlbnQ7CisJICAgICAgeworCQkvKiBGaXJzdCBza2lwIHdoaXRlc3BhY2UgYW5kIGZpbmQgd29yZCBib3VuZGFyaWVzIGlmCisJCSAgIHdlJ3JlIHBhc3QgdGhlIGVuZCBvZiB0aGUgd29yZCBib3VuZGFyeSB3ZSBmb3VuZAorCQkgICB0aGUgbGFzdCB0aW1lLiAqLworCQlpZiAoc3Vic3RfYnl3b3JkcyAmJiBzaSA+IHdlKQorCQkgIHsKKwkJICAgIGZvciAoOyB0ZW1wW3NpXSAmJiB3aGl0ZXNwYWNlICh0ZW1wW3NpXSk7IHNpKyspCisJCSAgICAgIDsKKwkJICAgIHdzID0gc2k7CisJCSAgICB3ZSA9IGhpc3RvcnlfdG9rZW5pemVfd29yZCAodGVtcCwgc2kpOworCQkgIH0KIAotCQkgIGZhaWxlZCA9IDA7CisJCWlmIChTVFJFUU4gKHRlbXArc2ksIHN1YnN0X2xocywgc3Vic3RfbGhzX2xlbikpCisJCSAgeworCQkgICAgaW50IGxlbiA9IHN1YnN0X3Joc19sZW4gLSBzdWJzdF9saHNfbGVuICsgbF90ZW1wOworCQkgICAgbmV3X2V2ZW50ID0gKGNoYXIgKil4bWFsbG9jICgxICsgbGVuKTsKKwkJICAgIHN0cm5jcHkgKG5ld19ldmVudCwgdGVtcCwgc2kpOworCQkgICAgc3RybmNweSAobmV3X2V2ZW50ICsgc2ksIHN1YnN0X3Jocywgc3Vic3RfcmhzX2xlbik7CisJCSAgICBzdHJuY3B5IChuZXdfZXZlbnQgKyBzaSArIHN1YnN0X3Joc19sZW4sCisJCQkgICAgIHRlbXAgKyBzaSArIHN1YnN0X2xoc19sZW4sCisJCQkgICAgIGxfdGVtcCAtIChzaSArIHN1YnN0X2xoc19sZW4pKTsKKwkJICAgIG5ld19ldmVudFtsZW5dID0gJ1wwJzsKKwkJICAgIGZyZWUgKHRlbXApOworCQkgICAgdGVtcCA9IG5ld19ldmVudDsKIAotCQkgIGlmIChzdWJzdGl0dXRlX2dsb2JhbGx5KQotCQkgICAgewotCQkgICAgICBzaSArPSBzdWJzdF9yaHNfbGVuOwotCQkgICAgICBsX3RlbXAgPSBzdHJsZW4gKHRlbXApOwotCQkgICAgICBzdWJzdGl0dXRlX2dsb2JhbGx5Kys7Ci0JCSAgICAgIGNvbnRpbnVlOwotCQkgICAgfQotCQkgIGVsc2UKLQkJICAgIGJyZWFrOwotCQl9CisJCSAgICBmYWlsZWQgPSAwOworCisJCSAgICBpZiAoc3Vic3RpdHV0ZV9nbG9iYWxseSkKKwkJICAgICAgeworCQkJLyogUmVwb3J0ZWQgdG8gZml4IGEgYnVnIHRoYXQgY2F1c2VzIGl0IHRvIHNraXAgZXZlcnkKKwkJCSAgIG90aGVyIG1hdGNoIHdoZW4gbWF0Y2hpbmcgYSBzaW5nbGUgY2hhcmFjdGVyLiAgV2FzCisJCQkgICBzaSArPSBzdWJzdF9yaHNfbGVuIHByZXZpb3VzbHkuICovCisJCQlzaSArPSBzdWJzdF9yaHNfbGVuIC0gMTsKKwkJCWxfdGVtcCA9IHN0cmxlbiAodGVtcCk7CisJCQlzdWJzdGl0dXRlX2dsb2JhbGx5Kys7CisJCQljb250aW51ZTsKKwkJICAgICAgfQorCQkgICAgZWxzZSBpZiAoc3Vic3RfYnl3b3JkcykKKwkJICAgICAgeworCQkJc2kgPSB3ZTsKKwkJCWxfdGVtcCA9IHN0cmxlbiAodGVtcCk7CisJCQljb250aW51ZTsKKwkJICAgICAgfQorCQkgICAgZWxzZQorCQkgICAgICBicmVhazsKKwkJICB9CisJICAgICAgfQogCiAJICAgIGlmIChzdWJzdGl0dXRlX2dsb2JhbGx5ID4gMSkKIAkgICAgICB7CkBAIC04NzksNyArOTI1LDcgQEAKICAgICAgY2hhciAqKm91dHB1dDsKIHsKICAgcmVnaXN0ZXIgaW50IGo7Ci0gIGludCBpLCByLCBsLCBwYXNzYywgY2MsIG1vZGlmaWVkLCBlaW5kZXgsIG9ubHlfcHJpbnRpbmc7CisgIGludCBpLCByLCBsLCBwYXNzYywgY2MsIG1vZGlmaWVkLCBlaW5kZXgsIG9ubHlfcHJpbnRpbmcsIGRxdW90ZTsKICAgY2hhciAqc3RyaW5nOwogCiAgIC8qIFRoZSBvdXRwdXQgc3RyaW5nLCBhbmQgaXRzIGxlbmd0aC4gKi8KQEAgLTk0Miw3ICs5ODgsNyBAQAogCiAgICAgICAvKiBgIScgZm9sbG93ZWQgYnkgb25lIG9mIHRoZSBjaGFyYWN0ZXJzIGluIGhpc3Rvcnlfbm9fZXhwYW5kX2NoYXJzCiAJIGlzIE5PVCBhbiBleHBhbnNpb24uICovCi0gICAgICBmb3IgKGkgPSAwOyBzdHJpbmdbaV07IGkrKykKKyAgICAgIGZvciAoaSA9IGRxdW90ZSA9IDA7IHN0cmluZ1tpXTsgaSsrKQogCXsKICNpZiBkZWZpbmVkIChIQU5ETEVfTVVMVElCWVRFKQogCSAgaWYgKE1CX0NVUl9NQVggPiAxICYmIHJsX2J5dGVfb3JpZW50ZWQgPT0gMCkKQEAgLTk4NCw5ICsxMDMwLDE5IEBACiAJICAgICAgZWxzZQogCQlicmVhazsKIAkgICAgfQotCSAgLyogWFhYIC0gYXQgc29tZSBwb2ludCwgbWlnaHQgd2FudCB0byBleHRlbmQgdGhpcyB0byBoYW5kbGUKLQkJICAgZG91YmxlIHF1b3RlcyBhcyB3ZWxsLiAqLwotCSAgZWxzZSBpZiAoaGlzdG9yeV9xdW90ZXNfaW5oaWJpdF9leHBhbnNpb24gJiYgc3RyaW5nW2ldID09ICdcJycpCisJICAvKiBTaGVsbC1saWtlIHF1b3Rpbmc6IGFsbG93IGJhY2tzbGFzaGVzIHRvIHF1b3RlIGRvdWJsZSBxdW90ZXMKKwkgICAgIGluc2lkZSBhIGRvdWJsZS1xdW90ZWQgc3RyaW5nLiAqLworCSAgZWxzZSBpZiAoZHF1b3RlICYmIHN0cmluZ1tpXSA9PSAnXFwnICYmIGNjID09ICciJykKKwkgICAgaSsrOworCSAgLyogTW9yZSBzaGVsbC1saWtlIHF1b3Rpbmc6ICBpZiB3ZSdyZSBwYXlpbmcgYXR0ZW50aW9uIHRvIHNpbmdsZQorCSAgICAgcXVvdGVzIGFuZCBsZXR0aW5nIHRoZW0gcXVvdGUgdGhlIGhpc3RvcnkgZXhwYW5zaW9uIGNoYXJhY3RlciwKKwkgICAgIHRoZW4gd2UgbmVlZCB0byBwYXkgYXR0ZW50aW9uIHRvIGRvdWJsZSBxdW90ZXMsIGJlY2F1c2Ugc2luZ2xlCisJICAgICBxdW90ZXMgYXJlIG5vdCBzcGVjaWFsIGluc2lkZSBkb3VibGUtcXVvdGVkIHN0cmluZ3MuICovCisJICBlbHNlIGlmIChoaXN0b3J5X3F1b3Rlc19pbmhpYml0X2V4cGFuc2lvbiAmJiBzdHJpbmdbaV0gPT0gJyInKQorCSAgICB7CisJICAgICAgZHF1b3RlID0gMSAtIGRxdW90ZTsKKwkgICAgfQorCSAgZWxzZSBpZiAoZHF1b3RlID09IDAgJiYgaGlzdG9yeV9xdW90ZXNfaW5oaWJpdF9leHBhbnNpb24gJiYgc3RyaW5nW2ldID09ICdcJycpCiAJICAgIHsKIAkgICAgICAvKiBJZiB0aGlzIGlzIGJhc2gsIHNpbmdsZSBxdW90ZXMgaW5oaWJpdCBoaXN0b3J5IGV4cGFuc2lvbi4gKi8KIAkgICAgICBpKys7CkBAIC05OTksNiArMTA1NSw3IEBACiAJICAgICAgaWYgKGNjID09ICdcJycgfHwgY2MgPT0gaGlzdG9yeV9leHBhbnNpb25fY2hhcikKIAkJaSsrOwogCSAgICB9CisJICAKIAl9CiAJICAKICAgICAgIGlmIChzdHJpbmdbaV0gIT0gaGlzdG9yeV9leHBhbnNpb25fY2hhcikKQEAgLTEwMTAsNyArMTA2Nyw3IEBACiAgICAgfQogCiAgIC8qIEV4dHJhY3QgYW5kIHBlcmZvcm0gdGhlIHN1YnN0aXR1dGlvbi4gKi8KLSAgZm9yIChwYXNzYyA9IGkgPSBqID0gMDsgaSA8IGw7IGkrKykKKyAgZm9yIChwYXNzYyA9IGRxdW90ZSA9IGkgPSBqID0gMDsgaSA8IGw7IGkrKykKICAgICB7CiAgICAgICBpbnQgdGNoYXIgPSBzdHJpbmdbaV07CiAKQEAgLTEwNjEsMTEgKzExMTgsMTYgQEAKIAkgIEFERF9DSEFSICh0Y2hhcik7CiAJICBicmVhazsKIAorCWNhc2UgJyInOgorCSAgZHF1b3RlID0gMSAtIGRxdW90ZTsKKwkgIEFERF9DSEFSICh0Y2hhcik7CisJICBicmVhazsKKwkgIAogCWNhc2UgJ1wnJzoKIAkgIHsKIAkgICAgLyogSWYgaGlzdG9yeV9xdW90ZXNfaW5oaWJpdF9leHBhbnNpb24gaXMgc2V0LCBzaW5nbGUgcXVvdGVzCiAJICAgICAgIGluaGliaXQgaGlzdG9yeSBleHBhbnNpb24uICovCi0JICAgIGlmIChoaXN0b3J5X3F1b3Rlc19pbmhpYml0X2V4cGFuc2lvbikKKwkgICAgaWYgKGRxdW90ZSA9PSAwICYmIGhpc3RvcnlfcXVvdGVzX2luaGliaXRfZXhwYW5zaW9uKQogCSAgICAgIHsKIAkJaW50IHF1b3RlLCBzbGVuOwogCkBAIC0xMTYwLDcgKzEyMjIsOSBAQAogCiAgIGlmIChvbmx5X3ByaW50aW5nKQogICAgIHsKKyNpZiAwCiAgICAgICBhZGRfaGlzdG9yeSAocmVzdWx0KTsKKyNlbmRpZgogICAgICAgcmV0dXJuICgyKTsKICAgICB9CiAKQEAgLTEyMjMsNyArMTI4NywxMCBAQAogICBpZiAoc3BlY1tpXSA9PSAnLScpCiAgICAgZmlyc3QgPSAwOwogICBlbHNlIGlmIChzcGVjW2ldID09ICdeJykKLSAgICBmaXJzdCA9IDE7CisgICAgeworICAgICAgZmlyc3QgPSAxOworICAgICAgaSsrOworICAgIH0KICAgZWxzZSBpZiAoX3JsX2RpZ2l0X3AgKHNwZWNbaV0pICYmIGV4cGVjdGluZ193b3JkX3NwZWMpCiAgICAgewogICAgICAgZm9yIChmaXJzdCA9IDA7IF9ybF9kaWdpdF9wIChzcGVjW2ldKTsgaSsrKQpAQCAtMTMzOCw3ICsxNDA1LDEwMyBAQAogICByZXR1cm4gKHJlc3VsdCk7CiB9CiAKLSNkZWZpbmUgc2xhc2hpZnlfaW5fcXVvdGVzICJcXGBcIiQiCitzdGF0aWMgaW50CitoaXN0b3J5X3Rva2VuaXplX3dvcmQgKHN0cmluZywgaW5kKQorICAgICBjb25zdCBjaGFyICpzdHJpbmc7CisgICAgIGludCBpbmQ7Cit7CisgIHJlZ2lzdGVyIGludCBpOworICBpbnQgZGVsaW1pdGVyOworCisgIGkgPSBpbmQ7CisgIGRlbGltaXRlciA9IDA7CisKKyAgaWYgKG1lbWJlciAoc3RyaW5nW2ldLCAiKClcbiIpKQorICAgIHsKKyAgICAgIGkrKzsKKyAgICAgIHJldHVybiBpOworICAgIH0KKworICBpZiAobWVtYmVyIChzdHJpbmdbaV0sICI8PjsmfCQiKSkKKyAgICB7CisgICAgICBpbnQgcGVlayA9IHN0cmluZ1tpICsgMV07CisKKyAgICAgIGlmIChwZWVrID09IHN0cmluZ1tpXSAmJiBwZWVrICE9ICckJykKKwl7CisJICBpZiAocGVlayA9PSAnPCcgJiYgc3RyaW5nW2kgKyAyXSA9PSAnLScpCisJICAgIGkrKzsKKwkgIGkgKz0gMjsKKwkgIHJldHVybiBpOworCX0KKyAgICAgIGVsc2UKKwl7CisJICBpZiAoKHBlZWsgPT0gJyYnICYmIChzdHJpbmdbaV0gPT0gJz4nIHx8IHN0cmluZ1tpXSA9PSAnPCcpKSB8fAorCSAgICAgIChwZWVrID09ICc+JyAmJiBzdHJpbmdbaV0gPT0gJyYnKSB8fAorCSAgICAgIChwZWVrID09ICcoJyAmJiAoc3RyaW5nW2ldID09ICc+JyB8fCBzdHJpbmdbaV0gPT0gJzwnKSkgfHwgLyogKSAqLworCSAgICAgIChwZWVrID09ICcoJyAmJiBzdHJpbmdbaV0gPT0gJyQnKSkgLyogKSAqLworCSAgICB7CisJICAgICAgaSArPSAyOworCSAgICAgIHJldHVybiBpOworCSAgICB9CisJfQorCisgICAgICBpZiAoc3RyaW5nW2ldICE9ICckJykKKwl7CisJICBpKys7CisJICByZXR1cm4gaTsKKwl9CisgICAgfQorCisgIC8qIEdldCB3b3JkIGZyb20gc3RyaW5nICsgaTsgKi8KKworICBpZiAobWVtYmVyIChzdHJpbmdbaV0sIEhJU1RPUllfUVVPVEVfQ0hBUkFDVEVSUykpCisgICAgZGVsaW1pdGVyID0gc3RyaW5nW2krK107CisKKyAgZm9yICg7IHN0cmluZ1tpXTsgaSsrKQorICAgIHsKKyAgICAgIGlmIChzdHJpbmdbaV0gPT0gJ1xcJyAmJiBzdHJpbmdbaSArIDFdID09ICdcbicpCisJeworCSAgaSsrOworCSAgY29udGludWU7CisJfQorCisgICAgICBpZiAoc3RyaW5nW2ldID09ICdcXCcgJiYgZGVsaW1pdGVyICE9ICdcJycgJiYKKwkgIChkZWxpbWl0ZXIgIT0gJyInIHx8IG1lbWJlciAoc3RyaW5nW2ldLCBzbGFzaGlmeV9pbl9xdW90ZXMpKSkKKwl7CisJICBpKys7CisJICBjb250aW51ZTsKKwl9CisKKyAgICAgIGlmIChkZWxpbWl0ZXIgJiYgc3RyaW5nW2ldID09IGRlbGltaXRlcikKKwl7CisJICBkZWxpbWl0ZXIgPSAwOworCSAgY29udGludWU7CisJfQorCisgICAgICBpZiAoIWRlbGltaXRlciAmJiAobWVtYmVyIChzdHJpbmdbaV0sIGhpc3Rvcnlfd29yZF9kZWxpbWl0ZXJzKSkpCisJYnJlYWs7CisKKyAgICAgIGlmICghZGVsaW1pdGVyICYmIG1lbWJlciAoc3RyaW5nW2ldLCBISVNUT1JZX1FVT1RFX0NIQVJBQ1RFUlMpKQorCWRlbGltaXRlciA9IHN0cmluZ1tpXTsKKyAgICB9CisKKyAgcmV0dXJuIGk7Cit9CisKK3N0YXRpYyBjaGFyICoKK2hpc3Rvcnlfc3Vic3RyaW5nIChzdHJpbmcsIHN0YXJ0LCBlbmQpCisgICAgIGNvbnN0IGNoYXIgKnN0cmluZzsKKyAgICAgaW50IHN0YXJ0LCBlbmQ7Cit7CisgIHJlZ2lzdGVyIGludCBsZW47CisgIHJlZ2lzdGVyIGNoYXIgKnJlc3VsdDsKKworICBsZW4gPSBlbmQgLSBzdGFydDsKKyAgcmVzdWx0ID0gKGNoYXIgKil4bWFsbG9jIChsZW4gKyAxKTsKKyAgc3RybmNweSAocmVzdWx0LCBzdHJpbmcgKyBzdGFydCwgbGVuKTsKKyAgcmVzdWx0W2xlbl0gPSAnXDAnOworICByZXR1cm4gcmVzdWx0OworfQogCiAvKiBQYXJzZSBTVFJJTkcgaW50byB0b2tlbnMgYW5kIHJldHVybiBhbiBhcnJheSBvZiBzdHJpbmdzLiAgSWYgV0lORCBpcwogICAgbm90IC0xIGFuZCBJTkRQIGlzIG5vdCBudWxsLCB3ZSBhbHNvIHdhbnQgdGhlIHdvcmQgc3Vycm91bmRpbmcgaW5kZXgKQEAgLTEzNTEsNyArMTUxNCw2IEBACiB7CiAgIGNoYXIgKipyZXN1bHQ7CiAgIHJlZ2lzdGVyIGludCBpLCBzdGFydCwgcmVzdWx0X2luZGV4LCBzaXplOwotICBpbnQgbGVuLCBkZWxpbWl0ZXI7CiAKICAgLyogSWYgd2UncmUgc2VhcmNoaW5nIGZvciBhIHN0cmluZyB0aGF0J3Mgbm90IHBhcnQgb2YgYSB3b3JkIChlLmcuLCAiICIpLAogICAgICBtYWtlIHN1cmUgd2Ugc2V0ICpJTkRQIHRvIGEgcmVhc29uYWJsZSB2YWx1ZS4gKi8KQEAgLTEzNjIsOCArMTUyNCw2IEBACiAgICAgIGV4YWN0bHkgd2hlcmUgdGhlIHNoZWxsIHdvdWxkIHNwbGl0IHRoZW0uICovCiAgIGZvciAoaSA9IHJlc3VsdF9pbmRleCA9IHNpemUgPSAwLCByZXN1bHQgPSAoY2hhciAqKilOVUxMOyBzdHJpbmdbaV07ICkKICAgICB7Ci0gICAgICBkZWxpbWl0ZXIgPSAwOwotCiAgICAgICAvKiBTa2lwIGxlYWRpbmcgd2hpdGVzcGFjZS4gKi8KICAgICAgIGZvciAoOyBzdHJpbmdbaV0gJiYgd2hpdGVzcGFjZSAoc3RyaW5nW2ldKTsgaSsrKQogCTsKQEAgLTEzNzEsODggKzE1MzEsMzAgQEAKIAlyZXR1cm4gKHJlc3VsdCk7CiAKICAgICAgIHN0YXJ0ID0gaTsKLSAgICAgIAotICAgICAgaWYgKG1lbWJlciAoc3RyaW5nW2ldLCAiKClcbiIpKQorCisgICAgICBpID0gaGlzdG9yeV90b2tlbml6ZV93b3JkIChzdHJpbmcsIHN0YXJ0KTsKKworICAgICAgLyogSWYgd2UgaGF2ZSBhIG5vbi13aGl0ZXNwYWNlIGRlbGltaXRlciBjaGFyYWN0ZXIgKHdoaWNoIHdvdWxkIG5vdCBiZQorCSBza2lwcGVkIGJ5IHRoZSBsb29wIGFib3ZlKSwgdXNlIGl0IGFuZCBhbnkgYWRqYWNlbnQgZGVsaW1pdGVycyB0bworCSBtYWtlIGEgc2VwYXJhdGUgZmllbGQuICBBbnkgYWRqYWNlbnQgd2hpdGUgc3BhY2Ugd2lsbCBiZSBza2lwcGVkIHRoZQorCSBuZXh0IHRpbWUgdGhyb3VnaCB0aGUgbG9vcC4gKi8KKyAgICAgIGlmIChpID09IHN0YXJ0ICYmIGhpc3Rvcnlfd29yZF9kZWxpbWl0ZXJzKQogCXsKIAkgIGkrKzsKLQkgIGdvdG8gZ290X3Rva2VuOworCSAgd2hpbGUgKHN0cmluZ1tpXSAmJiBtZW1iZXIgKHN0cmluZ1tpXSwgaGlzdG9yeV93b3JkX2RlbGltaXRlcnMpKQorCSAgICBpKys7CiAJfQogCi0gICAgICBpZiAobWVtYmVyIChzdHJpbmdbaV0sICI8PjsmfCQiKSkKLQl7Ci0JICBpbnQgcGVlayA9IHN0cmluZ1tpICsgMV07Ci0KLQkgIGlmIChwZWVrID09IHN0cmluZ1tpXSAmJiBwZWVrICE9ICckJykKLQkgICAgewotCSAgICAgIGlmIChwZWVrID09ICc8JyAmJiBzdHJpbmdbaSArIDJdID09ICctJykKLQkJaSsrOwotCSAgICAgIGkgKz0gMjsKLQkgICAgICBnb3RvIGdvdF90b2tlbjsKLQkgICAgfQotCSAgZWxzZQotCSAgICB7Ci0JICAgICAgaWYgKChwZWVrID09ICcmJyAmJiAoc3RyaW5nW2ldID09ICc+JyB8fCBzdHJpbmdbaV0gPT0gJzwnKSkgfHwKLQkJICAoKHBlZWsgPT0gJz4nKSAmJiAoc3RyaW5nW2ldID09ICcmJykpIHx8Ci0JCSAgKChwZWVrID09ICcoJykgJiYgKHN0cmluZ1tpXSA9PSAnJCcpKSkKLQkJewotCQkgIGkgKz0gMjsKLQkJICBnb3RvIGdvdF90b2tlbjsKLQkJfQotCSAgICB9Ci0JICBpZiAoc3RyaW5nW2ldICE9ICckJykKLQkgICAgewotCSAgICAgIGkrKzsKLQkgICAgICBnb3RvIGdvdF90b2tlbjsKLQkgICAgfQotCX0KLQotICAgICAgLyogR2V0IHdvcmQgZnJvbSBzdHJpbmcgKyBpOyAqLwotCi0gICAgICBpZiAobWVtYmVyIChzdHJpbmdbaV0sIEhJU1RPUllfUVVPVEVfQ0hBUkFDVEVSUykpCi0JZGVsaW1pdGVyID0gc3RyaW5nW2krK107Ci0KLSAgICAgIGZvciAoOyBzdHJpbmdbaV07IGkrKykKLQl7Ci0JICBpZiAoc3RyaW5nW2ldID09ICdcXCcgJiYgc3RyaW5nW2kgKyAxXSA9PSAnXG4nKQotCSAgICB7Ci0JICAgICAgaSsrOwotCSAgICAgIGNvbnRpbnVlOwotCSAgICB9Ci0KLQkgIGlmIChzdHJpbmdbaV0gPT0gJ1xcJyAmJiBkZWxpbWl0ZXIgIT0gJ1wnJyAmJgotCSAgICAgIChkZWxpbWl0ZXIgIT0gJyInIHx8IG1lbWJlciAoc3RyaW5nW2ldLCBzbGFzaGlmeV9pbl9xdW90ZXMpKSkKLQkgICAgewotCSAgICAgIGkrKzsKLQkgICAgICBjb250aW51ZTsKLQkgICAgfQotCi0JICBpZiAoZGVsaW1pdGVyICYmIHN0cmluZ1tpXSA9PSBkZWxpbWl0ZXIpCi0JICAgIHsKLQkgICAgICBkZWxpbWl0ZXIgPSAwOwotCSAgICAgIGNvbnRpbnVlOwotCSAgICB9Ci0KLQkgIGlmICghZGVsaW1pdGVyICYmIChtZW1iZXIgKHN0cmluZ1tpXSwgaGlzdG9yeV93b3JkX2RlbGltaXRlcnMpKSkKLQkgICAgYnJlYWs7Ci0KLQkgIGlmICghZGVsaW1pdGVyICYmIG1lbWJlciAoc3RyaW5nW2ldLCBISVNUT1JZX1FVT1RFX0NIQVJBQ1RFUlMpKQotCSAgICBkZWxpbWl0ZXIgPSBzdHJpbmdbaV07Ci0JfQotCi0gICAgZ290X3Rva2VuOgotCiAgICAgICAvKiBJZiB3ZSBhcmUgbG9va2luZyBmb3IgdGhlIHdvcmQgaW4gd2hpY2ggdGhlIGNoYXJhY3RlciBhdCBhCiAJIHBhcnRpY3VsYXIgaW5kZXggZmFsbHMsIHJlbWVtYmVyIGl0LiAqLwogICAgICAgaWYgKGluZHAgJiYgd2luZCAhPSAtMSAmJiB3aW5kID49IHN0YXJ0ICYmIHdpbmQgPCBpKQogICAgICAgICAqaW5kcCA9IHJlc3VsdF9pbmRleDsKIAotICAgICAgbGVuID0gaSAtIHN0YXJ0OwogICAgICAgaWYgKHJlc3VsdF9pbmRleCArIDIgPj0gc2l6ZSkKIAlyZXN1bHQgPSAoY2hhciAqKil4cmVhbGxvYyAocmVzdWx0LCAoKHNpemUgKz0gMTApICogc2l6ZW9mIChjaGFyICopKSk7Ci0gICAgICByZXN1bHRbcmVzdWx0X2luZGV4XSA9IChjaGFyICopeG1hbGxvYyAoMSArIGxlbik7Ci0gICAgICBzdHJuY3B5IChyZXN1bHRbcmVzdWx0X2luZGV4XSwgc3RyaW5nICsgc3RhcnQsIGxlbik7Ci0gICAgICByZXN1bHRbcmVzdWx0X2luZGV4XVtsZW5dID0gJ1wwJzsKLSAgICAgIHJlc3VsdFsrK3Jlc3VsdF9pbmRleF0gPSAoY2hhciAqKU5VTEw7CisKKyAgICAgIHJlc3VsdFtyZXN1bHRfaW5kZXgrK10gPSBoaXN0b3J5X3N1YnN0cmluZyAoc3RyaW5nLCBzdGFydCwgaSk7CisgICAgICByZXN1bHRbcmVzdWx0X2luZGV4XSA9IChjaGFyICopTlVMTDsKICAgICB9CiAKICAgcmV0dXJuIChyZXN1bHQpOwpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvaGlzdGZpbGUuYyBiL3JlYWRsaW5lL2hpc3RmaWxlLmMKaW5kZXggNjBhOTEyNS4uNzE3YmJlZSAxMDA2NDQKLS0tIGEvcmVhZGxpbmUvaGlzdGZpbGUuYworKysgYi9yZWFkbGluZS9oaXN0ZmlsZS5jCkBAIC0xLDYgKzEsNiBAQAogLyogaGlzdGZpbGUuYyAtIGZ1bmN0aW9ucyB0byBtYW5pcHVsYXRlIHRoZSBoaXN0b3J5IGZpbGUuICovCiAKLS8qIENvcHlyaWdodCAoQykgMTk4OSwgMTk5MiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKy8qIENvcHlyaWdodCAoQykgMTk4OS0yMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCiAgICBUaGlzIGZpbGUgY29udGFpbnMgdGhlIEdOVSBIaXN0b3J5IExpYnJhcnkgKHRoZSBMaWJyYXJ5KSwgYSBzZXQgb2YKICAgIHJvdXRpbmVzIGZvciBtYW5hZ2luZyB0aGUgdGV4dCBvZiBwcmV2aW91c2x5IHR5cGVkIGxpbmVzLgpAQCAtMjMsOCArMjMsMTMgQEAKIC8qIFRoZSBnb2FsIGlzIHRvIG1ha2UgdGhlIGltcGxlbWVudGF0aW9uIHRyYW5zcGFyZW50LCBzbyB0aGF0IHlvdQogICAgZG9uJ3QgaGF2ZSB0byBrbm93IHdoYXQgZGF0YSB0eXBlcyBhcmUgdXNlZCwganVzdCB3aGF0IGZ1bmN0aW9ucwogICAgeW91IGNhbiBjYWxsLiAgSSB0aGluayBJIGhhdmUgZG9uZSB0aGF0LiAqLworCiAjZGVmaW5lIFJFQURMSU5FX0xJQlJBUlkKIAorI2lmIGRlZmluZWQgKF9fVEFOREVNKQorIyAgaW5jbHVkZSA8Zmxvc3MuaD4KKyNlbmRpZgorCiAjaWYgZGVmaW5lZCAoSEFWRV9DT05GSUdfSCkKICMgIGluY2x1ZGUgPGNvbmZpZy5oPgogI2VuZGlmCkBAIC0zMiw3ICszNyw3IEBACiAjaW5jbHVkZSA8c3RkaW8uaD4KIAogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2lmbmRlZiBfTUlOSVgKKyNpZiAhIGRlZmluZWQgKF9NSU5JWCkgJiYgZGVmaW5lZCAoSEFWRV9TWVNfRklMRV9IKQogIyAgaW5jbHVkZSA8c3lzL2ZpbGUuaD4KICNlbmRpZgogI2luY2x1ZGUgInBvc2l4c3RhdC5oIgpAQCAtNTIsNyArNTcsNyBAQAogIyAgdW5kZWYgSEFWRV9NTUFQCiAjZW5kaWYKIAotI2lmZGVmIEhBVkVfTU1BUAorI2lmZGVmIEhJU1RPUllfVVNFX01NQVAKICMgIGluY2x1ZGUgPHN5cy9tbWFuLmg+CiAKICMgIGlmZGVmIE1BUF9GSUxFCkBAIC02Nyw3ICs3Miw3IEBACiAjICAgIGRlZmluZSBNQVBfRkFJTEVECSgodm9pZCAqKS0xKQogIyAgZW5kaWYKIAotI2VuZGlmIC8qIEhBVkVfTU1BUCAqLworI2VuZGlmIC8qIEhJU1RPUllfVVNFX01NQVAgKi8KIAogLyogSWYgd2UncmUgY29tcGlsaW5nIGZvciBfX0VNWF9fIChPUy8yKSBvciBfX0NZR1dJTl9fIChjeWd3aW4zMiBlbnZpcm9ubWVudAogICAgb24gd2luIDk1Lzk4L250KSwgd2Ugd2FudCB0byBvcGVuIGZpbGVzIHdpdGggT19CSU5BUlkgbW9kZSBzbyB0aGF0IHRoZXJlCkBAIC05Myw2ICs5OCwxMyBAQAogI2luY2x1ZGUgInJsc2hlbGwuaCIKICNpbmNsdWRlICJ4bWFsbG9jLmgiCiAKKy8qIElmIG5vbi16ZXJvLCB3ZSB3cml0ZSB0aW1lc3RhbXBzIHRvIHRoZSBoaXN0b3J5IGZpbGUgaW4gaGlzdG9yeV9kb193cml0ZSgpICovCitpbnQgaGlzdG9yeV93cml0ZV90aW1lc3RhbXBzID0gMDsKKworLyogRG9lcyBTIGxvb2sgbGlrZSB0aGUgYmVnaW5uaW5nIG9mIGEgaGlzdG9yeSB0aW1lc3RhbXAgZW50cnk/ICBQbGFjZWhvbGRlcgorICAgZm9yIG1vcmUgZXh0ZW5zaXZlIHRlc3RzLiAqLworI2RlZmluZSBISVNUX1RJTUVTVEFNUF9TVEFSVChzKQkJKCoocykgPT0gaGlzdG9yeV9jb21tZW50X2NoYXIpCisKIC8qIFJldHVybiB0aGUgc3RyaW5nIHRoYXQgc2hvdWxkIGJlIHVzZWQgaW4gdGhlIHBsYWNlIG9mIHRoaXMKICAgIGZpbGVuYW1lLiAgVGhpcyBvbmx5IG1hdHRlcnMgd2hlbiB5b3UgZG9uJ3Qgc3BlY2lmeSB0aGUKICAgIGZpbGVuYW1lIHRvIHJlYWRfaGlzdG9yeSAoKSwgb3Igd3JpdGVfaGlzdG9yeSAoKS4gKi8KQEAgLTE1MSwxMyArMTYzLDIwIEBACiAgICAgIGNvbnN0IGNoYXIgKmZpbGVuYW1lOwogICAgICBpbnQgZnJvbSwgdG87CiB7Ci0gIHJlZ2lzdGVyIGNoYXIgKmxpbmVfc3RhcnQsICpsaW5lX2VuZDsKLSAgY2hhciAqaW5wdXQsICpidWZmZXIsICpidWZlbmQ7CisgIHJlZ2lzdGVyIGNoYXIgKmxpbmVfc3RhcnQsICpsaW5lX2VuZCwgKnA7CisgIGNoYXIgKmlucHV0LCAqYnVmZmVyLCAqYnVmZW5kLCAqbGFzdF90czsKICAgaW50IGZpbGUsIGN1cnJlbnRfbGluZSwgY2hhcnNfcmVhZDsKICAgc3RydWN0IHN0YXQgZmluZm87CiAgIHNpemVfdCBmaWxlX3NpemU7CisjaWYgZGVmaW5lZCAoRUZCSUcpCisgIGludCBvdmVyZmxvd19lcnJubyA9IEVGQklHOworI2VsaWYgZGVmaW5lZCAoRU9WRVJGTE9XKQorICBpbnQgb3ZlcmZsb3dfZXJybm8gPSBFT1ZFUkZMT1c7CisjZWxzZQorICBpbnQgb3ZlcmZsb3dfZXJybm8gPSBFSU87CisjZW5kaWYKIAotICBidWZmZXIgPSAoY2hhciAqKU5VTEw7CisgIGJ1ZmZlciA9IGxhc3RfdHMgPSAoY2hhciAqKU5VTEw7CiAgIGlucHV0ID0gaGlzdG9yeV9maWxlbmFtZSAoZmlsZW5hbWUpOwogICBmaWxlID0gb3BlbiAoaW5wdXQsIE9fUkRPTkxZfE9fQklOQVJZLCAwNjY2KTsKIApAQCAtMTY5LDM3ICsxODgsNDIgQEAKICAgLyogY2hlY2sgZm9yIG92ZXJmbG93IG9uIHZlcnkgbGFyZ2UgZmlsZXMgKi8KICAgaWYgKGZpbGVfc2l6ZSAhPSBmaW5mby5zdF9zaXplIHx8IGZpbGVfc2l6ZSArIDEgPCBmaWxlX3NpemUpCiAgICAgewotI2lmIGRlZmluZWQgKEVGQklHKQotICAgICAgZXJybm8gPSBFRkJJRzsKLSNlbGlmIGRlZmluZWQgKEVPVkVSRkxPVykKLSAgICAgIGVycm5vID0gRU9WRVJGTE9XOwotI2VuZGlmCisgICAgICBlcnJubyA9IG92ZXJmbG93X2Vycm5vOwogICAgICAgZ290byBlcnJvcl9hbmRfZXhpdDsKICAgICB9CiAKLSNpZmRlZiBIQVZFX01NQVAKKyNpZmRlZiBISVNUT1JZX1VTRV9NTUFQCiAgIC8qIFdlIG1hcCByZWFkL3dyaXRlIGFuZCBwcml2YXRlIHNvIHdlIGNhbiBjaGFuZ2UgbmV3bGluZXMgdG8gTlVMcyB3aXRob3V0CiAgICAgIGFmZmVjdGluZyB0aGUgdW5kZXJseWluZyBvYmplY3QuICovCiAgIGJ1ZmZlciA9IChjaGFyICopbW1hcCAoMCwgZmlsZV9zaXplLCBQUk9UX1JFQUR8UFJPVF9XUklURSwgTUFQX1JGTEFHUywgZmlsZSwgMCk7CiAgIGlmICgodm9pZCAqKWJ1ZmZlciA9PSBNQVBfRkFJTEVEKQotICAgIGdvdG8gZXJyb3JfYW5kX2V4aXQ7CisgICAgeworICAgICAgZXJybm8gPSBvdmVyZmxvd19lcnJubzsKKyAgICAgIGdvdG8gZXJyb3JfYW5kX2V4aXQ7CisgICAgfQogICBjaGFyc19yZWFkID0gZmlsZV9zaXplOwogI2Vsc2UKICAgYnVmZmVyID0gKGNoYXIgKiltYWxsb2MgKGZpbGVfc2l6ZSArIDEpOwogICBpZiAoYnVmZmVyID09IDApCi0gICAgZ290byBlcnJvcl9hbmRfZXhpdDsKKyAgICB7CisgICAgICBlcnJubyA9IG92ZXJmbG93X2Vycm5vOworICAgICAgZ290byBlcnJvcl9hbmRfZXhpdDsKKyAgICB9CiAKICAgY2hhcnNfcmVhZCA9IHJlYWQgKGZpbGUsIGJ1ZmZlciwgZmlsZV9zaXplKTsKICNlbmRpZgogICBpZiAoY2hhcnNfcmVhZCA8IDApCiAgICAgewogICBlcnJvcl9hbmRfZXhpdDoKLSAgICAgIGNoYXJzX3JlYWQgPSBlcnJubzsKKyAgICAgIGlmIChlcnJubyAhPSAwKQorCWNoYXJzX3JlYWQgPSBlcnJubzsKKyAgICAgIGVsc2UKKwljaGFyc19yZWFkID0gRUlPOwogICAgICAgaWYgKGZpbGUgPj0gMCkKIAljbG9zZSAoZmlsZSk7CiAKICAgICAgIEZSRUUgKGlucHV0KTsKLSNpZm5kZWYgSEFWRV9NTUFQCisjaWZuZGVmIEhJU1RPUllfVVNFX01NQVAKICAgICAgIEZSRUUgKGJ1ZmZlcik7CiAjZW5kaWYKIApAQCAtMjIwLDggKzI0NCwxMiBAQAogICBmb3IgKGxpbmVfc3RhcnQgPSBsaW5lX2VuZCA9IGJ1ZmZlcjsgbGluZV9lbmQgPCBidWZlbmQgJiYgY3VycmVudF9saW5lIDwgZnJvbTsgbGluZV9lbmQrKykKICAgICBpZiAoKmxpbmVfZW5kID09ICdcbicpCiAgICAgICB7Ci0JY3VycmVudF9saW5lKys7Ci0JbGluZV9zdGFydCA9IGxpbmVfZW5kICsgMTsKKyAgICAgIAlwID0gbGluZV9lbmQgKyAxOworICAgICAgCS8qIElmIHdlIHNlZSBzb21ldGhpbmcgd2UgdGhpbmsgaXMgYSB0aW1lc3RhbXAsIGNvbnRpbnVlIHdpdGggdGhpcworCSAgIGxpbmUuICBXZSBzaG91bGQgY2hlY2sgbW9yZSBleHRlbnNpdmVseSBoZXJlLi4uICovCisJaWYgKEhJU1RfVElNRVNUQU1QX1NUQVJUKHApID09IDApCisJICBjdXJyZW50X2xpbmUrKzsKKwlsaW5lX3N0YXJ0ID0gcDsKICAgICAgIH0KIAogICAvKiBJZiB0aGVyZSBhcmUgbGluZXMgbGVmdCB0byBnb2JibGUsIHRoZW4gZ29iYmxlIHRoZW0gbm93LiAqLwpAQCAtMjMxLDcgKzI1OSwyMiBAQAogCSpsaW5lX2VuZCA9ICdcMCc7CiAKIAlpZiAoKmxpbmVfc3RhcnQpCi0JICBhZGRfaGlzdG9yeSAobGluZV9zdGFydCk7CisJICB7CisJICAgIGlmIChISVNUX1RJTUVTVEFNUF9TVEFSVChsaW5lX3N0YXJ0KSA9PSAwKQorCSAgICAgIHsKKwkJYWRkX2hpc3RvcnkgKGxpbmVfc3RhcnQpOworCQlpZiAobGFzdF90cykKKwkJICB7CisJCSAgICBhZGRfaGlzdG9yeV90aW1lIChsYXN0X3RzKTsKKwkJICAgIGxhc3RfdHMgPSBOVUxMOworCQkgIH0KKwkgICAgICB9CisJICAgIGVsc2UKKwkgICAgICB7CisJCWxhc3RfdHMgPSBsaW5lX3N0YXJ0OworCQljdXJyZW50X2xpbmUtLTsKKwkgICAgICB9CisJICB9CiAKIAljdXJyZW50X2xpbmUrKzsKIApAQCAtMjQyLDcgKzI4NSw3IEBACiAgICAgICB9CiAKICAgRlJFRSAoaW5wdXQpOwotI2lmbmRlZiBIQVZFX01NQVAKKyNpZm5kZWYgSElTVE9SWV9VU0VfTU1BUAogICBGUkVFIChidWZmZXIpOwogI2Vsc2UKICAgbXVubWFwIChidWZmZXIsIGZpbGVfc2l6ZSk7CkBAIC0yNTksNyArMzAyLDcgQEAKICAgICAgY29uc3QgY2hhciAqZm5hbWU7CiAgICAgIGludCBsaW5lczsKIHsKLSAgY2hhciAqYnVmZmVyLCAqZmlsZW5hbWUsICpicDsKKyAgY2hhciAqYnVmZmVyLCAqZmlsZW5hbWUsICpicCwgKmJwMTsJCS8qIGJwMSA9PSBicCsxICovCiAgIGludCBmaWxlLCBjaGFyc19yZWFkLCBydjsKICAgc3RydWN0IHN0YXQgZmluZm87CiAgIHNpemVfdCBmaWxlX3NpemU7CkBAIC0zMjIsMTEgKzM2NSwxNCBAQAogICAgIH0KIAogICAvKiBDb3VudCBiYWNrd2FyZHMgZnJvbSB0aGUgZW5kIG9mIGJ1ZmZlciB1bnRpbCB3ZSBoYXZlIHBhc3NlZAotICAgICBMSU5FUyBsaW5lcy4gKi8KLSAgZm9yIChicCA9IGJ1ZmZlciArIGNoYXJzX3JlYWQgLSAxOyBsaW5lcyAmJiBicCA+IGJ1ZmZlcjsgYnAtLSkKKyAgICAgTElORVMgbGluZXMuICBicDEgaXMgc2V0IGZ1bm55IGluaXRpYWxseS4gIEJ1dCBzaW5jZSBicFsxXSBjYW4ndAorICAgICBiZSBhIGNvbW1lbnQgY2hhcmFjdGVyIChzaW5jZSBpdCdzIG9mZiB0aGUgZW5kKSBhbmQgKmJwIGNhbid0IGJlCisgICAgIGJvdGggYSBuZXdsaW5lIGFuZCB0aGUgaGlzdG9yeSBjb21tZW50IGNoYXJhY3RlciwgaXQgc2hvdWxkIGJlIE9LLiAqLworICBmb3IgKGJwMSA9IGJwID0gYnVmZmVyICsgY2hhcnNfcmVhZCAtIDE7IGxpbmVzICYmIGJwID4gYnVmZmVyOyBicC0tKQogICAgIHsKLSAgICAgIGlmICgqYnAgPT0gJ1xuJykKKyAgICAgIGlmICgqYnAgPT0gJ1xuJyAmJiBISVNUX1RJTUVTVEFNUF9TVEFSVChicDEpID09IDApCiAJbGluZXMtLTsKKyAgICAgIGJwMSA9IGJwOwogICAgIH0KIAogICAvKiBJZiB0aGlzIGlzIHRoZSBmaXJzdCBsaW5lLCB0aGVuIHRoZSBmaWxlIGNvbnRhaW5zIGV4YWN0bHkgdGhlCkBAIC0zMzUsMTEgKzM4MSwxNCBAQAogICAgICB0aGUgY3VycmVudCB2YWx1ZSBvZiBpIGFuZCAwLiAgT3RoZXJ3aXNlLCB3cml0ZSBmcm9tIHRoZSBzdGFydCBvZgogICAgICB0aGlzIGxpbmUgdW50aWwgdGhlIGVuZCBvZiB0aGUgYnVmZmVyLiAqLwogICBmb3IgKCA7IGJwID4gYnVmZmVyOyBicC0tKQotICAgIGlmICgqYnAgPT0gJ1xuJykKLSAgICAgIHsKLQlicCsrOwotCWJyZWFrOwotICAgICAgfQorICAgIHsKKyAgICAgIGlmICgqYnAgPT0gJ1xuJyAmJiBISVNUX1RJTUVTVEFNUF9TVEFSVChicDEpID09IDApCisgICAgICAgIHsKKwkgIGJwKys7CisJICBicmVhazsKKyAgICAgICAgfQorICAgICAgYnAxID0gYnA7CisgICAgfQogCiAgIC8qIFdyaXRlIG9ubHkgaWYgdGhlcmUgYXJlIG1vcmUgbGluZXMgaW4gdGhlIGZpbGUgdGhhbiB3ZSB3YW50IHRvCiAgICAgIHRydW5jYXRlIHRvLiAqLwpAQCAtMzc0LDkgKzQyMyw5IEBACiAgIHJlZ2lzdGVyIGludCBpOwogICBjaGFyICpvdXRwdXQ7CiAgIGludCBmaWxlLCBtb2RlLCBydjsKKyNpZmRlZiBISVNUT1JZX1VTRV9NTUFQCiAgIHNpemVfdCBjdXJzaXplOwogCi0jaWZkZWYgSEFWRV9NTUFQCiAgIG1vZGUgPSBvdmVyd3JpdGUgPyBPX1JEV1J8T19DUkVBVHxPX1RSVU5DfE9fQklOQVJZIDogT19SRFdSfE9fQVBQRU5EfE9fQklOQVJZOwogI2Vsc2UKICAgbW9kZSA9IG92ZXJ3cml0ZSA/IE9fV1JPTkxZfE9fQ1JFQVR8T19UUlVOQ3xPX0JJTkFSWSA6IE9fV1JPTkxZfE9fQVBQRU5EfE9fQklOQVJZOwpAQCAtMzkwLDcgKzQzOSw3IEBACiAgICAgICByZXR1cm4gKGVycm5vKTsKICAgICB9CiAKLSNpZmRlZiBIQVZFX01NQVAKKyNpZmRlZiBISVNUT1JZX1VTRV9NTUFQCiAgIGN1cnNpemUgPSBvdmVyd3JpdGUgPyAwIDogbHNlZWsgKGZpbGUsIDAsIFNFRUtfRU5EKTsKICNlbmRpZgogCkBAIC00MDgsMTAgKzQ1NywxOCBAQAogICAgIHRoZV9oaXN0b3J5ID0gaGlzdG9yeV9saXN0ICgpOwogICAgIC8qIENhbGN1bGF0ZSB0aGUgdG90YWwgbnVtYmVyIG9mIGJ5dGVzIHRvIHdyaXRlLiAqLwogICAgIGZvciAoYnVmZmVyX3NpemUgPSAwLCBpID0gaGlzdG9yeV9sZW5ndGggLSBuZWxlbWVudHM7IGkgPCBoaXN0b3J5X2xlbmd0aDsgaSsrKQotICAgICAgYnVmZmVyX3NpemUgKz0gMSArIHN0cmxlbiAodGhlX2hpc3RvcnlbaV0tPmxpbmUpOworI2lmIDAKKyAgICAgIGJ1ZmZlcl9zaXplICs9IDIgKyBISVNURU5UX0JZVEVTICh0aGVfaGlzdG9yeVtpXSk7CisjZWxzZQorICAgICAgeworCWlmIChoaXN0b3J5X3dyaXRlX3RpbWVzdGFtcHMgJiYgdGhlX2hpc3RvcnlbaV0tPnRpbWVzdGFtcCAmJiB0aGVfaGlzdG9yeVtpXS0+dGltZXN0YW1wWzBdKQorCSAgYnVmZmVyX3NpemUgKz0gc3RybGVuICh0aGVfaGlzdG9yeVtpXS0+dGltZXN0YW1wKSArIDE7CisJYnVmZmVyX3NpemUgKz0gc3RybGVuICh0aGVfaGlzdG9yeVtpXS0+bGluZSkgKyAxOworICAgICAgfQorI2VuZGlmCiAKICAgICAvKiBBbGxvY2F0ZSB0aGUgYnVmZmVyLCBhbmQgZmlsbCBpdC4gKi8KLSNpZmRlZiBIQVZFX01NQVAKKyNpZmRlZiBISVNUT1JZX1VTRV9NTUFQCiAgICAgaWYgKGZ0cnVuY2F0ZSAoZmlsZSwgYnVmZmVyX3NpemUrY3Vyc2l6ZSkgPT0gLTEpCiAgICAgICBnb3RvIG1tYXBfZXJyb3I7CiAgICAgYnVmZmVyID0gKGNoYXIgKiltbWFwICgwLCBidWZmZXJfc2l6ZSwgUFJPVF9SRUFEfFBST1RfV1JJVEUsIE1BUF9XRkxBR1MsIGZpbGUsIGN1cnNpemUpOwpAQCAtNDM2LDEyICs0OTMsMTggQEAKIAogICAgIGZvciAoaiA9IDAsIGkgPSBoaXN0b3J5X2xlbmd0aCAtIG5lbGVtZW50czsgaSA8IGhpc3RvcnlfbGVuZ3RoOyBpKyspCiAgICAgICB7CisJaWYgKGhpc3Rvcnlfd3JpdGVfdGltZXN0YW1wcyAmJiB0aGVfaGlzdG9yeVtpXS0+dGltZXN0YW1wICYmIHRoZV9oaXN0b3J5W2ldLT50aW1lc3RhbXBbMF0pCisJICB7CisJICAgIHN0cmNweSAoYnVmZmVyICsgaiwgdGhlX2hpc3RvcnlbaV0tPnRpbWVzdGFtcCk7CisJICAgIGogKz0gc3RybGVuICh0aGVfaGlzdG9yeVtpXS0+dGltZXN0YW1wKTsKKwkgICAgYnVmZmVyW2orK10gPSAnXG4nOworCSAgfQogCXN0cmNweSAoYnVmZmVyICsgaiwgdGhlX2hpc3RvcnlbaV0tPmxpbmUpOwogCWogKz0gc3RybGVuICh0aGVfaGlzdG9yeVtpXS0+bGluZSk7CiAJYnVmZmVyW2orK10gPSAnXG4nOwogICAgICAgfQogCi0jaWZkZWYgSEFWRV9NTUFQCisjaWZkZWYgSElTVE9SWV9VU0VfTU1BUAogICAgIGlmIChtc3luYyAoYnVmZmVyLCBidWZmZXJfc2l6ZSwgMCkgIT0gMCB8fCBtdW5tYXAgKGJ1ZmZlciwgYnVmZmVyX3NpemUpICE9IDApCiAgICAgICBydiA9IGVycm5vOwogI2Vsc2UKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2hpc3RvcnkuYyBiL3JlYWRsaW5lL2hpc3RvcnkuYwppbmRleCA0MjQyZjMzLi5hNTM4ZjkxIDEwMDY0NAotLS0gYS9yZWFkbGluZS9oaXN0b3J5LmMKKysrIGIvcmVhZGxpbmUvaGlzdG9yeS5jCkBAIC0xLDYgKzEsNiBAQAotLyogSGlzdG9yeS5jIC0tIHN0YW5kYWxvbmUgaGlzdG9yeSBsaWJyYXJ5ICovCisvKiBoaXN0b3J5LmMgLS0gc3RhbmRhbG9uZSBoaXN0b3J5IGxpYnJhcnkgKi8KIAotLyogQ29weXJpZ2h0IChDKSAxOTg5LCAxOTkyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorLyogQ29weXJpZ2h0IChDKSAxOTg5LTIwMDUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAKICAgIFRoaXMgZmlsZSBjb250YWlucyB0aGUgR05VIEhpc3RvcnkgTGlicmFyeSAodGhlIExpYnJhcnkpLCBhIHNldCBvZgogICAgcm91dGluZXMgZm9yIG1hbmFnaW5nIHRoZSB0ZXh0IG9mIHByZXZpb3VzbHkgdHlwZWQgbGluZXMuCkBAIC01Miw2ICs1Miw4IEBACiAvKiBUaGUgbnVtYmVyIG9mIHNsb3RzIHRvIGluY3JlYXNlIHRoZV9oaXN0b3J5IGJ5LiAqLwogI2RlZmluZSBERUZBVUxUX0hJU1RPUllfR1JPV19TSVpFIDUwCiAKK3N0YXRpYyBjaGFyICpoaXN0X2luaXR0aW1lIFBBUkFNUygodm9pZCkpOworCiAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCiAvKgkJCQkJCQkJICAgICovCiAvKgkJCUhpc3RvcnkgRnVuY3Rpb25zCQkJICAgICovCkBAIC0xMjMsMTQgKzEyNSwxNSBAQAogfQogCiAvKiBSZXR1cm4gdGhlIG51bWJlciBvZiBieXRlcyB0aGF0IHRoZSBwcmltYXJ5IGhpc3RvcnkgZW50cmllcyBhcmUgdXNpbmcuCi0gICBUaGlzIGp1c3QgYWRkcyB1cCB0aGUgbGVuZ3RocyBvZiB0aGVfaGlzdG9yeS0+bGluZXMuICovCisgICBUaGlzIGp1c3QgYWRkcyB1cCB0aGUgbGVuZ3RocyBvZiB0aGVfaGlzdG9yeS0+bGluZXMgYW5kIHRoZSBhc3NvY2lhdGVkCisgICB0aW1lc3RhbXBzLiAqLwogaW50CiBoaXN0b3J5X3RvdGFsX2J5dGVzICgpCiB7CiAgIHJlZ2lzdGVyIGludCBpLCByZXN1bHQ7CiAKICAgZm9yIChpID0gcmVzdWx0ID0gMDsgdGhlX2hpc3RvcnkgJiYgdGhlX2hpc3RvcnlbaV07IGkrKykKLSAgICByZXN1bHQgKz0gc3RybGVuICh0aGVfaGlzdG9yeVtpXS0+bGluZSk7CisgICAgcmVzdWx0ICs9IEhJU1RFTlRfQllURVMgKHRoZV9oaXN0b3J5W2ldKTsKIAogICByZXR1cm4gKHJlc3VsdCk7CiB9CkBAIC0yMDEsMTEgKzIwNCw0NSBAQAogICBpbnQgbG9jYWxfaW5kZXg7CiAKICAgbG9jYWxfaW5kZXggPSBvZmZzZXQgLSBoaXN0b3J5X2Jhc2U7Ci0gIHJldHVybiAobG9jYWxfaW5kZXggPj0gaGlzdG9yeV9sZW5ndGggfHwgbG9jYWxfaW5kZXggPCAwIHx8ICF0aGVfaGlzdG9yeSkKKyAgcmV0dXJuIChsb2NhbF9pbmRleCA+PSBoaXN0b3J5X2xlbmd0aCB8fCBsb2NhbF9pbmRleCA8IDAgfHwgdGhlX2hpc3RvcnkgPT0gMCkKIAkJPyAoSElTVF9FTlRSWSAqKU5VTEwKIAkJOiB0aGVfaGlzdG9yeVtsb2NhbF9pbmRleF07CiB9CiAKK3RpbWVfdAoraGlzdG9yeV9nZXRfdGltZSAoaGlzdCkKKyAgICAgSElTVF9FTlRSWSAqaGlzdDsKK3sKKyAgY2hhciAqdHM7CisgIHRpbWVfdCB0OworCisgIGlmIChoaXN0ID09IDAgfHwgaGlzdC0+dGltZXN0YW1wID09IDApCisgICAgcmV0dXJuIDA7CisgIHRzID0gaGlzdC0+dGltZXN0YW1wOworICBpZiAodHNbMF0gIT0gaGlzdG9yeV9jb21tZW50X2NoYXIpCisgICAgcmV0dXJuIDA7CisgIHQgPSAodGltZV90KSBhdG9sICh0cyArIDEpOwkJLyogWFhYIC0gc2hvdWxkIHVzZSBzdHJ0b2woKSBoZXJlICovCisgIHJldHVybiB0OworfQorCitzdGF0aWMgY2hhciAqCitoaXN0X2luaXR0aW1lICgpCit7CisgIHRpbWVfdCB0OworICBjaGFyIHRzWzY0XSwgKnJldDsKKworICB0ID0gKHRpbWVfdCkgdGltZSAoKHRpbWVfdCAqKTApOworI2lmIGRlZmluZWQgKEhBVkVfVlNOUFJJTlRGKQkJLyogYXNzdW1lIHNucHJpbnRmIGlmIHZzbnByaW50ZiBleGlzdHMgKi8KKyAgc25wcmludGYgKHRzLCBzaXplb2YgKHRzKSAtIDEsICJYJWx1IiwgKHVuc2lnbmVkIGxvbmcpIHQpOworI2Vsc2UKKyAgc3ByaW50ZiAodHMsICJYJWx1IiwgKHVuc2lnbmVkIGxvbmcpIHQpOworI2VuZGlmCisgIHJldCA9IHNhdmVzdHJpbmcgKHRzKTsKKyAgcmV0WzBdID0gaGlzdG9yeV9jb21tZW50X2NoYXI7CisKKyAgcmV0dXJuIHJldDsKK30KKwogLyogUGxhY2UgU1RSSU5HIGF0IHRoZSBlbmQgb2YgdGhlIGhpc3RvcnkgbGlzdC4gIFRoZSBkYXRhIGZpZWxkCiAgICBpcyAgc2V0IHRvIE5VTEwuICovCiB2b2lkCkBAIC0yMjUsMTAgKzI2Miw3IEBACiAKICAgICAgIC8qIElmIHRoZXJlIGlzIHNvbWV0aGluZyBpbiB0aGUgc2xvdCwgdGhlbiByZW1vdmUgaXQuICovCiAgICAgICBpZiAodGhlX2hpc3RvcnlbMF0pCi0JewotCSAgZnJlZSAodGhlX2hpc3RvcnlbMF0tPmxpbmUpOwotCSAgZnJlZSAodGhlX2hpc3RvcnlbMF0pOwotCX0KKwkodm9pZCkgZnJlZV9oaXN0b3J5X2VudHJ5ICh0aGVfaGlzdG9yeVswXSk7CiAKICAgICAgIC8qIENvcHkgdGhlIHJlc3Qgb2YgdGhlIGVudHJpZXMsIG1vdmluZyBkb3duIG9uZSBzbG90LiAqLwogICAgICAgZm9yIChpID0gMDsgaSA8IGhpc3RvcnlfbGVuZ3RoOyBpKyspCkBAIC0yNjAsMTAgKzI5NCw0MSBAQAogICB0ZW1wLT5saW5lID0gc2F2ZXN0cmluZyAoc3RyaW5nKTsKICAgdGVtcC0+ZGF0YSA9IChjaGFyICopTlVMTDsKIAorICB0ZW1wLT50aW1lc3RhbXAgPSBoaXN0X2luaXR0aW1lICgpOworCiAgIHRoZV9oaXN0b3J5W2hpc3RvcnlfbGVuZ3RoXSA9IChISVNUX0VOVFJZICopTlVMTDsKICAgdGhlX2hpc3RvcnlbaGlzdG9yeV9sZW5ndGggLSAxXSA9IHRlbXA7CiB9CiAKKy8qIENoYW5nZSB0aGUgdGltZSBzdGFtcCBvZiB0aGUgbW9zdCByZWNlbnQgaGlzdG9yeSBlbnRyeSB0byBTVFJJTkcuICovCit2b2lkCithZGRfaGlzdG9yeV90aW1lIChzdHJpbmcpCisgICAgIGNvbnN0IGNoYXIgKnN0cmluZzsKK3sKKyAgSElTVF9FTlRSWSAqaHM7CisKKyAgaHMgPSB0aGVfaGlzdG9yeVtoaXN0b3J5X2xlbmd0aCAtIDFdOworICBGUkVFIChocy0+dGltZXN0YW1wKTsKKyAgaHMtPnRpbWVzdGFtcCA9IHNhdmVzdHJpbmcgKHN0cmluZyk7Cit9CisKKy8qIEZyZWUgSElTVCBhbmQgcmV0dXJuIHRoZSBkYXRhIHNvIHRoZSBjYWxsaW5nIGFwcGxpY2F0aW9uIGNhbiBmcmVlIGl0CisgICBpZiBuZWNlc3NhcnkgYW5kIGRlc2lyZWQuICovCitoaXN0ZGF0YV90CitmcmVlX2hpc3RvcnlfZW50cnkgKGhpc3QpCisgICAgIEhJU1RfRU5UUlkgKmhpc3Q7Cit7CisgIGhpc3RkYXRhX3QgeDsKKworICBpZiAoaGlzdCA9PSAwKQorICAgIHJldHVybiAoKGhpc3RkYXRhX3QpIDApOworICBGUkVFIChoaXN0LT5saW5lKTsKKyAgRlJFRSAoaGlzdC0+dGltZXN0YW1wKTsKKyAgeCA9IGhpc3QtPmRhdGE7CisgIGZyZWUgKGhpc3QpOworICByZXR1cm4gKHgpOworfQorICAKIC8qIE1ha2UgdGhlIGhpc3RvcnkgZW50cnkgYXQgV0hJQ0ggaGF2ZSBMSU5FIGFuZCBEQVRBLiAgVGhpcyByZXR1cm5zCiAgICB0aGUgb2xkIGVudHJ5IHNvIHlvdSBjYW4gZGlzcG9zZSBvZiB0aGUgZGF0YS4gIEluIHRoZSBjYXNlIG9mIGFuCiAgICBpbnZhbGlkIFdISUNILCBhIE5VTEwgcG9pbnRlciBpcyByZXR1cm5lZC4gKi8KQEAgLTI3NSw3ICszNDAsNyBAQAogewogICBISVNUX0VOVFJZICp0ZW1wLCAqb2xkX3ZhbHVlOwogCi0gIGlmICh3aGljaCA+PSBoaXN0b3J5X2xlbmd0aCkKKyAgaWYgKHdoaWNoIDwgMCB8fCB3aGljaCA+PSBoaXN0b3J5X2xlbmd0aCkKICAgICByZXR1cm4gKChISVNUX0VOVFJZICopTlVMTCk7CiAKICAgdGVtcCA9IChISVNUX0VOVFJZICopeG1hbGxvYyAoc2l6ZW9mIChISVNUX0VOVFJZKSk7CkBAIC0yODMsNiArMzQ4LDcgQEAKIAogICB0ZW1wLT5saW5lID0gc2F2ZXN0cmluZyAobGluZSk7CiAgIHRlbXAtPmRhdGEgPSBkYXRhOworICB0ZW1wLT50aW1lc3RhbXAgPSBzYXZlc3RyaW5nIChvbGRfdmFsdWUtPnRpbWVzdGFtcCk7CiAgIHRoZV9oaXN0b3J5W3doaWNoXSA9IHRlbXA7CiAKICAgcmV0dXJuIChvbGRfdmFsdWUpOwpAQCAtMjk4LDE3ICszNjQsMTUgQEAKICAgSElTVF9FTlRSWSAqcmV0dXJuX3ZhbHVlOwogICByZWdpc3RlciBpbnQgaTsKIAotICBpZiAod2hpY2ggPj0gaGlzdG9yeV9sZW5ndGggfHwgIWhpc3RvcnlfbGVuZ3RoKQotICAgIHJldHVybl92YWx1ZSA9IChISVNUX0VOVFJZICopTlVMTDsKLSAgZWxzZQotICAgIHsKLSAgICAgIHJldHVybl92YWx1ZSA9IHRoZV9oaXN0b3J5W3doaWNoXTsKKyAgaWYgKHdoaWNoIDwgMCB8fCB3aGljaCA+PSBoaXN0b3J5X2xlbmd0aCB8fCBoaXN0b3J5X2xlbmd0aCA9PSAgMCB8fCB0aGVfaGlzdG9yeSA9PSAwKQorICAgIHJldHVybiAoKEhJU1RfRU5UUlkgKilOVUxMKTsKIAotICAgICAgZm9yIChpID0gd2hpY2g7IGkgPCBoaXN0b3J5X2xlbmd0aDsgaSsrKQotCXRoZV9oaXN0b3J5W2ldID0gdGhlX2hpc3RvcnlbaSArIDFdOworICByZXR1cm5fdmFsdWUgPSB0aGVfaGlzdG9yeVt3aGljaF07CiAKLSAgICAgIGhpc3RvcnlfbGVuZ3RoLS07Ci0gICAgfQorICBmb3IgKGkgPSB3aGljaDsgaSA8IGhpc3RvcnlfbGVuZ3RoOyBpKyspCisgICAgdGhlX2hpc3RvcnlbaV0gPSB0aGVfaGlzdG9yeVtpICsgMV07CisKKyAgaGlzdG9yeV9sZW5ndGgtLTsKIAogICByZXR1cm4gKHJldHVybl92YWx1ZSk7CiB9CkBAIC0zMjcsMTAgKzM5MSw3IEBACiAgICAgewogICAgICAgLyogVGhpcyBsb3NlcyBiZWNhdXNlIHdlIGNhbm5vdCBmcmVlIHRoZSBkYXRhLiAqLwogICAgICAgZm9yIChpID0gMCwgaiA9IGhpc3RvcnlfbGVuZ3RoIC0gbWF4OyBpIDwgajsgaSsrKQotCXsKLQkgIGZyZWUgKHRoZV9oaXN0b3J5W2ldLT5saW5lKTsKLQkgIGZyZWUgKHRoZV9oaXN0b3J5W2ldKTsKLQl9CisJZnJlZV9oaXN0b3J5X2VudHJ5ICh0aGVfaGlzdG9yeVtpXSk7CiAKICAgICAgIGhpc3RvcnlfYmFzZSA9IGk7CiAgICAgICBmb3IgKGogPSAwLCBpID0gaGlzdG9yeV9sZW5ndGggLSBtYXg7IGogPCBtYXg7IGkrKywgaisrKQpAQCAtMzcyLDggKzQzMyw3IEBACiAgIC8qIFRoaXMgbG9zZXMgYmVjYXVzZSB3ZSBjYW5ub3QgZnJlZSB0aGUgZGF0YS4gKi8KICAgZm9yIChpID0gMDsgaSA8IGhpc3RvcnlfbGVuZ3RoOyBpKyspCiAgICAgewotICAgICAgZnJlZSAodGhlX2hpc3RvcnlbaV0tPmxpbmUpOwotICAgICAgZnJlZSAodGhlX2hpc3RvcnlbaV0pOworICAgICAgZnJlZV9oaXN0b3J5X2VudHJ5ICh0aGVfaGlzdG9yeVtpXSk7CiAgICAgICB0aGVfaGlzdG9yeVtpXSA9IChISVNUX0VOVFJZICopTlVMTDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2hpc3RvcnkuaCBiL3JlYWRsaW5lL2hpc3RvcnkuaAppbmRleCA1OGI1ZGU0Li4xNGNhMmE5IDEwMDY0NAotLS0gYS9yZWFkbGluZS9oaXN0b3J5LmgKKysrIGIvcmVhZGxpbmUvaGlzdG9yeS5oCkBAIC0xLDUgKzEsNSBAQAotLyogSGlzdG9yeS5oIC0tIHRoZSBuYW1lcyBvZiBmdW5jdGlvbnMgdGhhdCB5b3UgY2FuIGNhbGwgaW4gaGlzdG9yeS4gKi8KLS8qIENvcHlyaWdodCAoQykgMTk4OSwgMTk5MiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKy8qIGhpc3RvcnkuaCAtLSB0aGUgbmFtZXMgb2YgZnVuY3Rpb25zIHRoYXQgeW91IGNhbiBjYWxsIGluIGhpc3RvcnkuICovCisvKiBDb3B5cmlnaHQgKEMpIDE5ODktMjAwMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIAogICAgVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBHTlUgSGlzdG9yeSBMaWJyYXJ5ICh0aGUgTGlicmFyeSksIGEgc2V0IG9mCiAgICByb3V0aW5lcyBmb3IgbWFuYWdpbmcgdGhlIHRleHQgb2YgcHJldmlvdXNseSB0eXBlZCBsaW5lcy4KQEAgLTI2LDYgKzI2LDggQEAKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKKyNpbmNsdWRlIDx0aW1lLmg+CQkvKiBYWFggLSBmb3IgaGlzdG9yeSB0aW1lc3RhbXAgY29kZSAqLworCiAjaWYgZGVmaW5lZCBSRUFETElORV9MSUJSQVJZCiAjICBpbmNsdWRlICJybHN0ZGMuaCIKICMgIGluY2x1ZGUgInJsdHlwZWRlZnMuaCIKQEAgLTQzLDkgKzQ1LDEzIEBACiAvKiBUaGUgc3RydWN0dXJlIHVzZWQgdG8gc3RvcmUgYSBoaXN0b3J5IGVudHJ5LiAqLwogdHlwZWRlZiBzdHJ1Y3QgX2hpc3RfZW50cnkgewogICBjaGFyICpsaW5lOworICBjaGFyICp0aW1lc3RhbXA7CQkvKiBjaGFyICogcmF0aGVyIHRoYW4gdGltZV90IGZvciByZWFkL3dyaXRlICovCiAgIGhpc3RkYXRhX3QgZGF0YTsKIH0gSElTVF9FTlRSWTsKIAorLyogU2l6ZSBvZiB0aGUgaGlzdG9yeS1saWJyYXJ5LW1hbmFnZWQgc3BhY2UgaW4gaGlzdG9yeSBlbnRyeSBIUy4gKi8KKyNkZWZpbmUgSElTVEVOVF9CWVRFUyhocykJKHN0cmxlbiAoKGhzKS0+bGluZSkgKyBzdHJsZW4gKChocyktPnRpbWVzdGFtcCkpCisKIC8qIEEgc3RydWN0dXJlIHVzZWQgdG8gcGFzcyB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgaGlzdG9yeSBzdHVmZiBhcm91bmQuICovCiB0eXBlZGVmIHN0cnVjdCBfaGlzdF9zdGF0ZSB7CiAgIEhJU1RfRU5UUlkgKiplbnRyaWVzOwkJLyogUG9pbnRlciB0byB0aGUgZW50cmllcyB0aGVtc2VsdmVzLiAqLwpAQCAtNzYsMTEgKzgyLDE5IEBACiAgICBUaGUgYXNzb2NpYXRlZCBkYXRhIGZpZWxkIChpZiBhbnkpIGlzIHNldCB0byBOVUxMLiAqLwogZXh0ZXJuIHZvaWQgYWRkX2hpc3RvcnkgUEFSQU1TKChjb25zdCBjaGFyICopKTsKIAorLyogQ2hhbmdlIHRoZSB0aW1lc3RhbXAgYXNzb2NpYXRlZCB3aXRoIHRoZSBtb3N0IHJlY2VudCBoaXN0b3J5IGVudHJ5IHRvCisgICBTVFJJTkcuICovCitleHRlcm4gdm9pZCBhZGRfaGlzdG9yeV90aW1lIFBBUkFNUygoY29uc3QgY2hhciAqKSk7CisKIC8qIEEgcmVhc29uYWJseSB1c2VsZXNzIGZ1bmN0aW9uLCBvbmx5IGhlcmUgZm9yIGNvbXBsZXRlbmVzcy4gIFdISUNICiAgICBpcyB0aGUgbWFnaWMgbnVtYmVyIHRoYXQgdGVsbHMgdXMgd2hpY2ggZWxlbWVudCB0byBkZWxldGUuICBUaGUKICAgIGVsZW1lbnRzIGFyZSBudW1iZXJlZCBmcm9tIDAuICovCiBleHRlcm4gSElTVF9FTlRSWSAqcmVtb3ZlX2hpc3RvcnkgUEFSQU1TKChpbnQpKTsKIAorLyogRnJlZSB0aGUgaGlzdG9yeSBlbnRyeSBIIGFuZCByZXR1cm4gYW55IGFwcGxpY2F0aW9uLXNwZWNpZmljIGRhdGEKKyAgIGFzc29jaWF0ZWQgd2l0aCBpdC4gKi8KK2V4dGVybiBoaXN0ZGF0YV90IGZyZWVfaGlzdG9yeV9lbnRyeSBQQVJBTVMoKEhJU1RfRU5UUlkgKikpOworCiAvKiBNYWtlIHRoZSBoaXN0b3J5IGVudHJ5IGF0IFdISUNIIGhhdmUgTElORSBhbmQgREFUQS4gIFRoaXMgcmV0dXJucwogICAgdGhlIG9sZCBlbnRyeSBzbyB5b3UgY2FuIGRpc3Bvc2Ugb2YgdGhlIGRhdGEuICBJbiB0aGUgY2FzZSBvZiBhbgogICAgaW52YWxpZCBXSElDSCwgYSBOVUxMIHBvaW50ZXIgaXMgcmV0dXJuZWQuICovCkBAIC0xMTksNiArMTMzLDEwIEBACiAgICBhcnJheS4gIE9GRlNFVCBpcyByZWxhdGl2ZSB0byBoaXN0b3J5X2Jhc2UuICovCiBleHRlcm4gSElTVF9FTlRSWSAqaGlzdG9yeV9nZXQgUEFSQU1TKChpbnQpKTsKIAorLyogUmV0dXJuIHRoZSB0aW1lc3RhbXAgYXNzb2NpYXRlZCB3aXRoIHRoZSBISVNUX0VOVFJZICogcGFzc2VkIGFzIGFuCisgICBhcmd1bWVudCAqLworZXh0ZXJuIHRpbWVfdCBoaXN0b3J5X2dldF90aW1lIFBBUkFNUygoSElTVF9FTlRSWSAqKSk7CisKIC8qIFJldHVybiB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRoYXQgdGhlIHByaW1hcnkgaGlzdG9yeSBlbnRyaWVzIGFyZSB1c2luZy4KICAgIFRoaXMganVzdCBhZGRzIHVwIHRoZSBsZW5ndGhzIG9mIHRoZV9oaXN0b3J5LT5saW5lcy4gKi8KIGV4dGVybiBpbnQgaGlzdG9yeV90b3RhbF9ieXRlcyBQQVJBTVMoKHZvaWQpKTsKQEAgLTIzMSw2ICsyNDksOCBAQAogZXh0ZXJuIGNoYXIgKmhpc3Rvcnlfc2VhcmNoX2RlbGltaXRlcl9jaGFyczsKIGV4dGVybiBpbnQgaGlzdG9yeV9xdW90ZXNfaW5oaWJpdF9leHBhbnNpb247CiAKK2V4dGVybiBpbnQgaGlzdG9yeV93cml0ZV90aW1lc3RhbXBzOworCiAvKiBCYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAqLwogZXh0ZXJuIGludCBtYXhfaW5wdXRfaGlzdG9yeTsKIApkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvaGlzdHNlYXJjaC5jIGIvcmVhZGxpbmUvaGlzdHNlYXJjaC5jCmluZGV4IGQ5NGZkNmMuLjFjYzU4NzUgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL2hpc3RzZWFyY2guYworKysgYi9yZWFkbGluZS9oaXN0c2VhcmNoLmMKQEAgLTc3LDExICs3NywxMSBAQAogICBpZiAoc3RyaW5nID09IDAgfHwgKnN0cmluZyA9PSAnXDAnKQogICAgIHJldHVybiAoLTEpOwogCi0gIGlmICghaGlzdG9yeV9sZW5ndGggfHwgKChpID09IGhpc3RvcnlfbGVuZ3RoKSAmJiAhcmV2ZXJzZSkpCisgIGlmICghaGlzdG9yeV9sZW5ndGggfHwgKChpID49IGhpc3RvcnlfbGVuZ3RoKSAmJiAhcmV2ZXJzZSkpCiAgICAgcmV0dXJuICgtMSk7CiAKLSAgaWYgKHJldmVyc2UgJiYgKGkgPT0gaGlzdG9yeV9sZW5ndGgpKQotICAgIGktLTsKKyAgaWYgKHJldmVyc2UgJiYgKGkgPj0gaGlzdG9yeV9sZW5ndGgpKQorICAgIGkgPSBoaXN0b3J5X2xlbmd0aCAtIDE7CiAKICNkZWZpbmUgTkVYVF9MSU5FKCkgZG8geyBpZiAocmV2ZXJzZSkgaS0tOyBlbHNlIGkrKzsgfSB3aGlsZSAoMCkKIApkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvaW5wdXQuYyBiL3JlYWRsaW5lL2lucHV0LmMKaW5kZXggODQxZjA1ZC4uMGVjNTA3ZSAxMDA2NDQKLS0tIGEvcmVhZGxpbmUvaW5wdXQuYworKysgYi9yZWFkbGluZS9pbnB1dC5jCkBAIC0xLDYgKzEsNiBAQAogLyogaW5wdXQuYyAtLSBjaGFyYWN0ZXIgaW5wdXQgZnVuY3Rpb25zIGZvciByZWFkbGluZS4gKi8KIAotLyogQ29weXJpZ2h0IChDKSAxOTk0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorLyogQ29weXJpZ2h0IChDKSAxOTk0LTIwMDUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgUmVhZGxpbmUgTGlicmFyeSwgYSBsaWJyYXJ5IGZvcgogICAgcmVhZGluZyBsaW5lcyBvZiB0ZXh0IHdpdGggaW50ZXJhY3RpdmUgaW5wdXQgYW5kIGhpc3RvcnkgZWRpdGluZy4KQEAgLTIxLDYgKzIxLDEwIEBACiAgICA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMSBVU0EuICovCiAjZGVmaW5lIFJFQURMSU5FX0xJQlJBUlkKIAorI2lmIGRlZmluZWQgKF9fVEFOREVNKQorIyAgaW5jbHVkZSA8Zmxvc3MuaD4KKyNlbmRpZgorCiAjaWYgZGVmaW5lZCAoSEFWRV9DT05GSUdfSCkKICMgIGluY2x1ZGUgPGNvbmZpZy5oPgogI2VuZGlmCkBAIC0xNTQsNiArMTU4LDEyIEBACiAgIHJldHVybiAoMCk7CiB9CiAKK2ludAorX3JsX3B1c2hlZF9pbnB1dF9hdmFpbGFibGUgKCkKK3sKKyAgcmV0dXJuIChwdXNoX2luZGV4ICE9IHBvcF9pbmRleCk7Cit9CisKIC8qIElmIGEgY2hhcmFjdGVyIGlzIGF2YWlsYWJsZSB0byBiZSByZWFkLCB0aGVuIHJlYWQgaXQgYW5kIHN0dWZmIGl0IGludG8KICAgIElCVUZGRVIuICBPdGhlcndpc2UsIGp1c3QgcmV0dXJuLiAgUmV0dXJucyBudW1iZXIgb2YgY2hhcmFjdGVycyByZWFkCiAgICAoMCBpZiBub25lIGF2YWlsYWJsZSkgYW5kIC0xIG9uIGVycm9yIChFSU8pLiAqLwpAQCAtMTYyLDcgKzE3Miw3IEBACiB7CiAgIGludCB0dHk7CiAgIHJlZ2lzdGVyIGludCB0ZW0sIHJlc3VsdDsKLSAgaW50IGNoYXJzX2F2YWlsOworICBpbnQgY2hhcnNfYXZhaWwsIGs7CiAgIGNoYXIgaW5wdXQ7CiAjaWYgZGVmaW5lZChIQVZFX1NFTEVDVCkKICAgZmRfc2V0IHJlYWRmZHMsIGV4Y2VwdGZkczsKQEAgLTIwMiw2ICsyMTIsMTEgQEAKICAgICAgIGZjbnRsICh0dHksIEZfU0VURkwsIHRlbSk7CiAgICAgICBpZiAoY2hhcnNfYXZhaWwgPT0gLTEgJiYgZXJybm8gPT0gRUFHQUlOKQogCXJldHVybiAwOworICAgICAgaWYgKGNoYXJzX2F2YWlsID09IDApCS8qIEVPRiAqLworCXsKKwkgIHJsX3N0dWZmX2NoYXIgKEVPRik7CisJICByZXR1cm4gKDApOworCX0KICAgICB9CiAjZW5kaWYgLyogT19OREVMQVkgKi8KIApAQCAtMjI1LDcgKzI0MCwxMiBAQAogICBpZiAocmVzdWx0ICE9IC0xKQogICAgIHsKICAgICAgIHdoaWxlIChjaGFyc19hdmFpbC0tKQotCXJsX3N0dWZmX2NoYXIgKCgqcmxfZ2V0Y19mdW5jdGlvbikgKHJsX2luc3RyZWFtKSk7CisJeworCSAgayA9ICgqcmxfZ2V0Y19mdW5jdGlvbikgKHJsX2luc3RyZWFtKTsKKwkgIHJsX3N0dWZmX2NoYXIgKGspOworCSAgaWYgKGsgPT0gTkVXTElORSB8fCBrID09IFJFVFVSTikKKwkgICAgYnJlYWs7CisJfQogICAgIH0KICAgZWxzZQogICAgIHsKQEAgLTQyNCw2ICs0NDQsMTAgQEAKIAogICB3aGlsZSAoMSkKICAgICB7CisjaWYgZGVmaW5lZCAoX19NSU5HVzMyX18pCisgICAgICBpZiAoaXNhdHR5IChmaWxlbm8gKHN0cmVhbSkpKQorCXJldHVybiAoZ2V0Y2ggKCkpOworI2VuZGlmCiAgICAgICByZXN1bHQgPSByZWFkIChmaWxlbm8gKHN0cmVhbSksICZjLCBzaXplb2YgKHVuc2lnbmVkIGNoYXIpKTsKIAogICAgICAgaWYgKHJlc3VsdCA9PSBzaXplb2YgKHVuc2lnbmVkIGNoYXIpKQpAQCAtNDk5LDYgKzUyMywxMiBAQAogCSAgcHMgPSBwc19iYWNrOwogCSAgY29udGludWU7CiAJfSAKKyAgICAgIGVsc2UgaWYgKG1iY2hhcl9ieXRlc19sZW5ndGggPT0gMCkKKwl7CisJICBtYmNoYXJbMF0gPSAnXDAnOwkvKiBudWxsIHdpZGUgY2hhcmFjdGVyICovCisJICBtYl9sZW4gPSAxOworCSAgYnJlYWs7CisJfQogICAgICAgZWxzZSBpZiAobWJjaGFyX2J5dGVzX2xlbmd0aCA+IChzaXplX3QpKDApKQogCWJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL3JlYWRsaW5lL2lzZWFyY2guYyBiL3JlYWRsaW5lL2lzZWFyY2guYwppbmRleCBjMWVhNWIzLi5kN2Q4NTIwIDEwMDY0NAotLS0gYS9yZWFkbGluZS9pc2VhcmNoLmMKKysrIGIvcmVhZGxpbmUvaXNlYXJjaC5jCkBAIC00LDcgKzQsNyBAQAogLyoJCQkJCQkJCSAgICAqLwogLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLwogCi0vKiBDb3B5cmlnaHQgKEMpIDE5ODctMjAwMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKy8qIENvcHlyaWdodCAoQykgMTk4Ny0yMDA1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCiAgICBUaGlzIGZpbGUgY29udGFpbnMgdGhlIFJlYWRsaW5lIExpYnJhcnkgKHRoZSBMaWJyYXJ5KSwgYSBzZXQgb2YKICAgIHJvdXRpbmVzIGZvciBwcm92aWRpbmcgRW1hY3Mgc3R5bGUgbGluZSBpbnB1dCB0byBwcm9ncmFtcyB0aGF0IGFzawpAQCAtNTYsMTIgKzU2LDE3IEBACiAvKiBWYXJpYWJsZXMgZXhwb3J0ZWQgdG8gb3RoZXIgZmlsZXMgaW4gdGhlIHJlYWRsaW5lIGxpYnJhcnkuICovCiBjaGFyICpfcmxfaXNlYXJjaF90ZXJtaW5hdG9ycyA9IChjaGFyICopTlVMTDsKIAorX3JsX3NlYXJjaF9jeHQgKl9ybF9pc2N4dCA9IDA7CisKIC8qIFZhcmlhYmxlcyBpbXBvcnRlZCBmcm9tIG90aGVyIGZpbGVzIGluIHRoZSByZWFkbGluZSBsaWJyYXJ5LiAqLwogZXh0ZXJuIEhJU1RfRU5UUlkgKl9ybF9zYXZlZF9saW5lX2Zvcl9oaXN0b3J5OwogCi0vKiBGb3J3YXJkIGRlY2xhcmF0aW9ucyAqLwogc3RhdGljIGludCBybF9zZWFyY2hfaGlzdG9yeSBQQVJBTVMoKGludCwgaW50KSk7CiAKK3N0YXRpYyBfcmxfc2VhcmNoX2N4dCAqX3JsX2lzZWFyY2hfaW5pdCBQQVJBTVMoKGludCkpOworc3RhdGljIHZvaWQgX3JsX2lzZWFyY2hfZmluaSBQQVJBTVMoKF9ybF9zZWFyY2hfY3h0ICopKTsKK3N0YXRpYyBpbnQgX3JsX2lzZWFyY2hfY2xlYW51cCBQQVJBTVMoKF9ybF9zZWFyY2hfY3h0ICosIGludCkpOworCiAvKiBMYXN0IGxpbmUgZm91bmQgYnkgdGhlIGN1cnJlbnQgaW5jcmVtZW50YWwgc2VhcmNoLCBzbyB3ZSBkb24ndCBgZmluZCcKICAgIGlkZW50aWNhbCBsaW5lcyBtYW55IHRpbWVzIGluIGEgcm93LiAqLwogc3RhdGljIGNoYXIgKnByZXZfbGluZV9mb3VuZDsKQEAgLTcyLDYgKzc3LDU3IEBACiAKIHN0YXRpYyBjaGFyICpkZWZhdWx0X2lzZWFyY2hfdGVybWluYXRvcnMgPSAiXDAzM1wwMTIiOwogCitfcmxfc2VhcmNoX2N4dCAqCitfcmxfc2N4dF9hbGxvYyAodHlwZSwgZmxhZ3MpCisgICAgIGludCB0eXBlLCBmbGFnczsKK3sKKyAgX3JsX3NlYXJjaF9jeHQgKmN4dDsKKworICBjeHQgPSAoX3JsX3NlYXJjaF9jeHQgKil4bWFsbG9jIChzaXplb2YgKF9ybF9zZWFyY2hfY3h0KSk7CisKKyAgY3h0LT50eXBlID0gdHlwZTsKKyAgY3h0LT5zZmxhZ3MgPSBmbGFnczsKKworICBjeHQtPnNlYXJjaF9zdHJpbmcgPSAwOworICBjeHQtPnNlYXJjaF9zdHJpbmdfc2l6ZSA9IGN4dC0+c2VhcmNoX3N0cmluZ19pbmRleCA9IDA7CisKKyAgY3h0LT5saW5lcyA9IDA7CisgIGN4dC0+YWxsb2NhdGVkX2xpbmUgPSAwOworICBjeHQtPmhsZW4gPSBjeHQtPmhpbmRleCA9IDA7CisKKyAgY3h0LT5zYXZlX3BvaW50ID0gcmxfcG9pbnQ7CisgIGN4dC0+c2F2ZV9tYXJrID0gcmxfbWFyazsKKyAgY3h0LT5zYXZlX2xpbmUgPSB3aGVyZV9oaXN0b3J5ICgpOworICBjeHQtPmxhc3RfZm91bmRfbGluZSA9IGN4dC0+c2F2ZV9saW5lOworICBjeHQtPnByZXZfbGluZV9mb3VuZCA9IDA7CisKKyAgY3h0LT5zYXZlX3VuZG9fbGlzdCA9IDA7CisKKyAgY3h0LT5oaXN0b3J5X3BvcyA9IDA7CisgIGN4dC0+ZGlyZWN0aW9uID0gMDsKKworICBjeHQtPmxhc3RjID0gMDsKKworICBjeHQtPnNsaW5lID0gMDsKKyAgY3h0LT5zbGluZV9sZW4gPSBjeHQtPnNsaW5lX2luZGV4ID0gMDsKKworICBjeHQtPnNlYXJjaF90ZXJtaW5hdG9ycyA9IDA7CisKKyAgcmV0dXJuIGN4dDsKK30KKwordm9pZAorX3JsX3NjeHRfZGlzcG9zZSAoY3h0LCBmbGFncykKKyAgICAgX3JsX3NlYXJjaF9jeHQgKmN4dDsKKyAgICAgaW50IGZsYWdzOworeworICBGUkVFIChjeHQtPnNlYXJjaF9zdHJpbmcpOworICBGUkVFIChjeHQtPmFsbG9jYXRlZF9saW5lKTsKKyAgRlJFRSAoY3h0LT5saW5lcyk7CisKKyAgZnJlZSAoY3h0KTsKK30KKwogLyogU2VhcmNoIGJhY2t3YXJkcyB0aHJvdWdoIHRoZSBoaXN0b3J5IGxvb2tpbmcgZm9yIGEgc3RyaW5nIHdoaWNoIGlzIHR5cGVkCiAgICBpbnRlcmFjdGl2ZWx5LiAgU3RhcnQgd2l0aCB0aGUgY3VycmVudCBsaW5lLiAqLwogaW50CkBAIC05Miw3ICsxNDgsNyBAQAogCiAvKiBEaXNwbGF5IHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBzZWFyY2ggaW4gdGhlIGVjaG8tYXJlYS4KICAgIFNFQVJDSF9TVFJJTkcgY29udGFpbnMgdGhlIHN0cmluZyB0aGF0IGlzIGJlaW5nIHNlYXJjaGVkIGZvciwKLSAgIERJUkVDVElPTiBpcyB6ZXJvIGZvciBmb3J3YXJkLCBvciAxIGZvciByZXZlcnNlLAorICAgRElSRUNUSU9OIGlzIHplcm8gZm9yIGZvcndhcmQsIG9yIG5vbi16ZXJvIGZvciByZXZlcnNlLAogICAgV0hFUkUgaXMgdGhlIGhpc3RvcnkgbGlzdCBudW1iZXIgb2YgdGhlIGN1cnJlbnQgbGluZS4gIElmIGl0IGlzCiAgICAtMSwgdGhlbiB0aGlzIGxpbmUgaXMgdGhlIHN0YXJ0aW5nIG9uZS4gKi8KIHN0YXRpYyB2b2lkCkBAIC0xNDAsNiArMTk2LDQxOCBAQAogICAoKnJsX3JlZGlzcGxheV9mdW5jdGlvbikgKCk7CiB9CiAKK3N0YXRpYyBfcmxfc2VhcmNoX2N4dCAqCitfcmxfaXNlYXJjaF9pbml0IChkaXJlY3Rpb24pCisgICAgIGludCBkaXJlY3Rpb247Cit7CisgIF9ybF9zZWFyY2hfY3h0ICpjeHQ7CisgIHJlZ2lzdGVyIGludCBpOworICBISVNUX0VOVFJZICoqaGxpc3Q7CisKKyAgY3h0ID0gX3JsX3NjeHRfYWxsb2MgKFJMX1NFQVJDSF9JU0VBUkNILCAwKTsKKyAgaWYgKGRpcmVjdGlvbiA8IDApCisgICAgY3h0LT5zZmxhZ3MgfD0gU0ZfUkVWRVJTRTsKKworICBjeHQtPnNlYXJjaF90ZXJtaW5hdG9ycyA9IF9ybF9pc2VhcmNoX3Rlcm1pbmF0b3JzID8gX3JsX2lzZWFyY2hfdGVybWluYXRvcnMKKwkJCQkJCTogZGVmYXVsdF9pc2VhcmNoX3Rlcm1pbmF0b3JzOworCisgIC8qIENyZWF0ZSBhbiBhcnJhcnkgb2YgcG9pbnRlcnMgdG8gdGhlIGxpbmVzIHRoYXQgd2Ugd2FudCB0byBzZWFyY2guICovCisgIGhsaXN0ID0gaGlzdG9yeV9saXN0ICgpOworICBybF9tYXliZV9yZXBsYWNlX2xpbmUgKCk7CisgIGkgPSAwOworICBpZiAoaGxpc3QpCisgICAgZm9yIChpID0gMDsgaGxpc3RbaV07IGkrKyk7CisKKyAgLyogQWxsb2NhdGUgc3BhY2UgZm9yIHRoaXMgbWFueSBsaW5lcywgKzEgZm9yIHRoZSBjdXJyZW50IGlucHV0IGxpbmUsCisgICAgIGFuZCByZW1lbWJlciB0aG9zZSBsaW5lcy4gKi8KKyAgY3h0LT5saW5lcyA9IChjaGFyICoqKXhtYWxsb2MgKCgxICsgKGN4dC0+aGxlbiA9IGkpKSAqIHNpemVvZiAoY2hhciAqKSk7CisgIGZvciAoaSA9IDA7IGkgPCBjeHQtPmhsZW47IGkrKykKKyAgICBjeHQtPmxpbmVzW2ldID0gaGxpc3RbaV0tPmxpbmU7CisKKyAgaWYgKF9ybF9zYXZlZF9saW5lX2Zvcl9oaXN0b3J5KQorICAgIGN4dC0+bGluZXNbaV0gPSBfcmxfc2F2ZWRfbGluZV9mb3JfaGlzdG9yeS0+bGluZTsKKyAgZWxzZQorICAgIHsKKyAgICAgIC8qIEtlZXAgdHJhY2sgb2YgdGhpcyBzbyB3ZSBjYW4gZnJlZSBpdC4gKi8KKyAgICAgIGN4dC0+YWxsb2NhdGVkX2xpbmUgPSAoY2hhciAqKXhtYWxsb2MgKDEgKyBzdHJsZW4gKHJsX2xpbmVfYnVmZmVyKSk7CisgICAgICBzdHJjcHkgKGN4dC0+YWxsb2NhdGVkX2xpbmUsICZybF9saW5lX2J1ZmZlclswXSk7CisgICAgICBjeHQtPmxpbmVzW2ldID0gY3h0LT5hbGxvY2F0ZWRfbGluZTsKKyAgICB9CisKKyAgY3h0LT5obGVuKys7CisKKyAgLyogVGhlIGxpbmUgd2hlcmUgd2Ugc3RhcnQgdGhlIHNlYXJjaC4gKi8KKyAgY3h0LT5oaXN0b3J5X3BvcyA9IGN4dC0+c2F2ZV9saW5lOworCisgIHJsX3NhdmVfcHJvbXB0ICgpOworCisgIC8qIEluaXRpYWxpemUgc2VhcmNoIHBhcmFtZXRlcnMuICovCisgIGN4dC0+c2VhcmNoX3N0cmluZyA9IChjaGFyICopeG1hbGxvYyAoY3h0LT5zZWFyY2hfc3RyaW5nX3NpemUgPSAxMjgpOworICBjeHQtPnNlYXJjaF9zdHJpbmdbY3h0LT5zZWFyY2hfc3RyaW5nX2luZGV4ID0gMF0gPSAnXDAnOworCisgIC8qIE5vcm1hbGl6ZSBESVJFQ1RJT04gaW50byAxIG9yIC0xLiAqLworICBjeHQtPmRpcmVjdGlvbiA9IChkaXJlY3Rpb24gPj0gMCkgPyAxIDogLTE7CisKKyAgY3h0LT5zbGluZSA9IHJsX2xpbmVfYnVmZmVyOworICBjeHQtPnNsaW5lX2xlbiA9IHN0cmxlbiAoY3h0LT5zbGluZSk7CisgIGN4dC0+c2xpbmVfaW5kZXggPSBybF9wb2ludDsKKworICBfcmxfaXNjeHQgPSBjeHQ7CQkvKiBzYXZlIGdsb2JhbGx5ICovCisKKyAgcmV0dXJuIGN4dDsKK30KKworc3RhdGljIHZvaWQKK19ybF9pc2VhcmNoX2ZpbmkgKGN4dCkKKyAgICAgX3JsX3NlYXJjaF9jeHQgKmN4dDsKK3sKKyAgLyogRmlyc3QgcHV0IGJhY2sgdGhlIG9yaWdpbmFsIHN0YXRlLiAqLworICBzdHJjcHkgKHJsX2xpbmVfYnVmZmVyLCBjeHQtPmxpbmVzW2N4dC0+c2F2ZV9saW5lXSk7CisKKyAgcmxfcmVzdG9yZV9wcm9tcHQgKCk7CisKKyAgLyogU2F2ZSB0aGUgc2VhcmNoIHN0cmluZyBmb3IgcG9zc2libGUgbGF0ZXIgdXNlLiAqLworICBGUkVFIChsYXN0X2lzZWFyY2hfc3RyaW5nKTsKKyAgbGFzdF9pc2VhcmNoX3N0cmluZyA9IGN4dC0+c2VhcmNoX3N0cmluZzsKKyAgbGFzdF9pc2VhcmNoX3N0cmluZ19sZW4gPSBjeHQtPnNlYXJjaF9zdHJpbmdfaW5kZXg7CisgIGN4dC0+c2VhcmNoX3N0cmluZyA9IDA7CisKKyAgaWYgKGN4dC0+bGFzdF9mb3VuZF9saW5lIDwgY3h0LT5zYXZlX2xpbmUpCisgICAgcmxfZ2V0X3ByZXZpb3VzX2hpc3RvcnkgKGN4dC0+c2F2ZV9saW5lIC0gY3h0LT5sYXN0X2ZvdW5kX2xpbmUsIDApOworICBlbHNlCisgICAgcmxfZ2V0X25leHRfaGlzdG9yeSAoY3h0LT5sYXN0X2ZvdW5kX2xpbmUgLSBjeHQtPnNhdmVfbGluZSwgMCk7CisKKyAgLyogSWYgdGhlIHN0cmluZyB3YXMgbm90IGZvdW5kLCBwdXQgcG9pbnQgYXQgdGhlIGVuZCBvZiB0aGUgbGFzdCBtYXRjaGluZworICAgICBsaW5lLiAgSWYgbGFzdF9mb3VuZF9saW5lID09IG9yaWdfbGluZSwgd2UgZGlkbid0IGZpbmQgYW55IG1hdGNoaW5nCisgICAgIGhpc3RvcnkgbGluZXMgYXQgYWxsLCBzbyBwdXQgcG9pbnQgYmFjayBpbiBpdHMgb3JpZ2luYWwgcG9zaXRpb24uICovCisgIGlmIChjeHQtPnNsaW5lX2luZGV4IDwgMCkKKyAgICB7CisgICAgICBpZiAoY3h0LT5sYXN0X2ZvdW5kX2xpbmUgPT0gY3h0LT5zYXZlX2xpbmUpCisJY3h0LT5zbGluZV9pbmRleCA9IGN4dC0+c2F2ZV9wb2ludDsKKyAgICAgIGVsc2UKKwljeHQtPnNsaW5lX2luZGV4ID0gc3RybGVuIChybF9saW5lX2J1ZmZlcik7CisgICAgICBybF9tYXJrID0gY3h0LT5zYXZlX21hcms7CisgICAgfQorCisgIHJsX3BvaW50ID0gY3h0LT5zbGluZV9pbmRleDsKKyAgLyogRG9uJ3Qgd29ycnkgYWJvdXQgd2hlcmUgdG8gcHV0IHRoZSBtYXJrIGhlcmU7IHJsX2dldF9wcmV2aW91c19oaXN0b3J5CisgICAgIGFuZCBybF9nZXRfbmV4dF9oaXN0b3J5IHRha2UgY2FyZSBvZiBpdC4gKi8KKworICBybF9jbGVhcl9tZXNzYWdlICgpOworfQorCitpbnQKK19ybF9zZWFyY2hfZ2V0Y2hhciAoY3h0KQorICAgICBfcmxfc2VhcmNoX2N4dCAqY3h0OworeworICBpbnQgYzsKKworICAvKiBSZWFkIGEga2V5IGFuZCBkZWNpZGUgaG93IHRvIHByb2NlZWQuICovCisgIFJMX1NFVFNUQVRFKFJMX1NUQVRFX01PUkVJTlBVVCk7CisgIGMgPSBjeHQtPmxhc3RjID0gcmxfcmVhZF9rZXkgKCk7CisgIFJMX1VOU0VUU1RBVEUoUkxfU1RBVEVfTU9SRUlOUFVUKTsKKworI2lmIGRlZmluZWQgKEhBTkRMRV9NVUxUSUJZVEUpCisgIGlmIChNQl9DVVJfTUFYID4gMSAmJiBybF9ieXRlX29yaWVudGVkID09IDApCisgICAgYyA9IGN4dC0+bGFzdGMgPSBfcmxfcmVhZF9tYnN0cmluZyAoY3h0LT5sYXN0YywgY3h0LT5tYiwgTUJfTEVOX01BWCk7CisjZW5kaWYKKworICByZXR1cm4gYzsKK30KKworLyogUHJvY2VzcyBqdXN0LXJlYWQgY2hhcmFjdGVyIEMgYWNjb3JkaW5nIHRvIGlzZWFyY2ggY29udGV4dCBDWFQuICBSZXR1cm4KKyAgIC0xIGlmIHRoZSBjYWxsZXIgc2hvdWxkIGp1c3QgZnJlZSB0aGUgY29udGV4dCBhbmQgcmV0dXJuLCAwIGlmIHdlIHNob3VsZAorICAgYnJlYWsgb3V0IG9mIHRoZSBsb29wLCBhbmQgMSBpZiB3ZSBzaG91bGQgY29udGludWUgdG8gcmVhZCBjaGFyYWN0ZXJzLiAqLworaW50CitfcmxfaXNlYXJjaF9kaXNwYXRjaCAoY3h0LCBjKQorICAgICBfcmxfc2VhcmNoX2N4dCAqY3h0OworICAgICBpbnQgYzsKK3sKKyAgaW50IG4sIHdzdGFydCwgd2xlbiwgbGltaXQsIGN2YWw7CisgIHJsX2NvbW1hbmRfZnVuY190ICpmOworCisgIGYgPSAocmxfY29tbWFuZF9mdW5jX3QgKilOVUxMOworIAorIC8qIFRyYW5zbGF0ZSB0aGUga2V5cyB3ZSBkbyBzb21ldGhpbmcgd2l0aCB0byBvcGNvZGVzLiAqLworICBpZiAoYyA+PSAwICYmIF9ybF9rZXltYXBbY10udHlwZSA9PSBJU0ZVTkMpCisgICAgeworICAgICAgZiA9IF9ybF9rZXltYXBbY10uZnVuY3Rpb247CisKKyAgICAgIGlmIChmID09IHJsX3JldmVyc2Vfc2VhcmNoX2hpc3RvcnkpCisJY3h0LT5sYXN0YyA9IChjeHQtPnNmbGFncyAmIFNGX1JFVkVSU0UpID8gLTEgOiAtMjsKKyAgICAgIGVsc2UgaWYgKGYgPT0gcmxfZm9yd2FyZF9zZWFyY2hfaGlzdG9yeSkKKwljeHQtPmxhc3RjID0gKGN4dC0+c2ZsYWdzICYgU0ZfUkVWRVJTRSkgPyAtMiA6IC0xOworICAgICAgZWxzZSBpZiAoZiA9PSBybF9ydWJvdXQpCisJY3h0LT5sYXN0YyA9IC0zOworICAgICAgZWxzZSBpZiAoYyA9PSBDVFJMICgnRycpKQorCWN4dC0+bGFzdGMgPSAtNDsKKyAgICAgIGVsc2UgaWYgKGMgPT0gQ1RSTCAoJ1cnKSkJLyogWFhYICovCisJY3h0LT5sYXN0YyA9IC01OworICAgICAgZWxzZSBpZiAoYyA9PSBDVFJMICgnWScpKQkvKiBYWFggKi8KKwljeHQtPmxhc3RjID0gLTY7CisgICAgfQorCisgIC8qIFRoZSBjaGFyYWN0ZXJzIGluIGlzZWFyY2hfdGVybWluYXRvcnMgKHNldCBmcm9tIHRoZSB1c2VyLXNldHRhYmxlCisgICAgIHZhcmlhYmxlIGlzZWFyY2gtdGVybWluYXRvcnMpIGFyZSB1c2VkIHRvIHRlcm1pbmF0ZSB0aGUgc2VhcmNoIGJ1dAorICAgICBub3Qgc3Vic2VxdWVudGx5IGV4ZWN1dGUgdGhlIGNoYXJhY3RlciBhcyBhIGNvbW1hbmQuICBUaGUgZGVmYXVsdAorICAgICB2YWx1ZSBpcyAiXDAzM1wwMTIiIChFU0MgYW5kIEMtSikuICovCisgIGlmIChzdHJjaHIgKGN4dC0+c2VhcmNoX3Rlcm1pbmF0b3JzLCBjeHQtPmxhc3RjKSkKKyAgICB7CisgICAgICAvKiBFU0Mgc3RpbGwgdGVybWluYXRlcyB0aGUgc2VhcmNoLCBidXQgaWYgdGhlcmUgaXMgcGVuZGluZworCSBpbnB1dCBvciBpZiBpbnB1dCBhcnJpdmVzIHdpdGhpbiAwLjEgc2Vjb25kcyAob24gc3lzdGVtcworCSB3aXRoIHNlbGVjdCgyKSkgaXQgaXMgdXNlZCBhcyBhIHByZWZpeCBjaGFyYWN0ZXIKKwkgd2l0aCBybF9leGVjdXRlX25leHQuICBXQVRDSCBPVVQgRk9SIFRISVMhICBUaGlzIGlzIGludGVuZGVkCisJIHRvIGFsbG93IHRoZSBhcnJvdyBrZXlzIHRvIGJlIHVzZWQgbGlrZSBeRiBhbmQgXkIgYXJlIHVzZWQKKwkgdG8gdGVybWluYXRlIHRoZSBzZWFyY2ggYW5kIGV4ZWN1dGUgdGhlIG1vdmVtZW50IGNvbW1hbmQuCisJIFhYWCAtIHNpbmNlIF9ybF9pbnB1dF9hdmFpbGFibGUgZGVwZW5kcyBvbiB0aGUgYXBwbGljYXRpb24tCisJIHNldHRhYmxlIGtleWJvYXJkIHRpbWVvdXQgdmFsdWUsIHRoaXMgY291bGQgYWx0ZXJuYXRpdmVseQorCSB1c2UgX3JsX2lucHV0X3F1ZXVlZCgxMDAwMDApICovCisgICAgICBpZiAoY3h0LT5sYXN0YyA9PSBFU0MgJiYgX3JsX2lucHV0X2F2YWlsYWJsZSAoKSkKKwlybF9leGVjdXRlX25leHQgKEVTQyk7CisgICAgICByZXR1cm4gKDApOworICAgIH0KKworI2RlZmluZSBFTkRTUkNIX0NIQVIoYykgXAorICAoKENUUkxfQ0hBUiAoYykgfHwgTUVUQV9DSEFSIChjKSB8fCAoYykgPT0gUlVCT1VUKSAmJiAoKGMpICE9IENUUkwgKCdHJykpKQorCisjaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKKyAgaWYgKE1CX0NVUl9NQVggPiAxICYmIHJsX2J5dGVfb3JpZW50ZWQgPT0gMCkKKyAgICB7CisgICAgICBpZiAoY3h0LT5sYXN0YyA+PSAwICYmIChjeHQtPm1iWzBdICYmIGN4dC0+bWJbMV0gPT0gJ1wwJykgJiYgRU5EU1JDSF9DSEFSIChjeHQtPmxhc3RjKSkKKwl7CisJICAvKiBUaGlzIHNldHMgcmxfcGVuZGluZ19pbnB1dCB0byBjOyBpdCB3aWxsIGJlIHBpY2tlZCB1cCB0aGUgbmV4dAorCSAgICAgdGltZSBybF9yZWFkX2tleSBpcyBjYWxsZWQuICovCisJICBybF9leGVjdXRlX25leHQgKGN4dC0+bGFzdGMpOworCSAgcmV0dXJuICgwKTsKKwl9CisgICAgfQorICBlbHNlCisjZW5kaWYKKyAgICBpZiAoY3h0LT5sYXN0YyA+PSAwICYmIEVORFNSQ0hfQ0hBUiAoY3h0LT5sYXN0YykpCisgICAgICB7CisJLyogVGhpcyBzZXRzIHJsX3BlbmRpbmdfaW5wdXQgdG8gTEFTVEM7IGl0IHdpbGwgYmUgcGlja2VkIHVwIHRoZSBuZXh0CisJICAgdGltZSBybF9yZWFkX2tleSBpcyBjYWxsZWQuICovCisJcmxfZXhlY3V0ZV9uZXh0IChjeHQtPmxhc3RjKTsKKwlyZXR1cm4gKDApOworICAgICAgfQorCisgIC8qIE5vdyBkaXNwYXRjaCBvbiB0aGUgY2hhcmFjdGVyLiAgYE9wY29kZXMnIGFmZmVjdCB0aGUgc2VhcmNoIHN0cmluZyBvcgorICAgICBzdGF0ZS4gIE90aGVyIGNoYXJhY3RlcnMgYXJlIGFkZGVkIHRvIHRoZSBzdHJpbmcuICAqLworICBzd2l0Y2ggKGN4dC0+bGFzdGMpCisgICAgeworICAgIC8qIHNlYXJjaCBhZ2FpbiAqLworICAgIGNhc2UgLTE6CisgICAgICBpZiAoY3h0LT5zZWFyY2hfc3RyaW5nX2luZGV4ID09IDApCisJeworCSAgaWYgKGxhc3RfaXNlYXJjaF9zdHJpbmcpCisJICAgIHsKKwkgICAgICBjeHQtPnNlYXJjaF9zdHJpbmdfc2l6ZSA9IDY0ICsgbGFzdF9pc2VhcmNoX3N0cmluZ19sZW47CisJICAgICAgY3h0LT5zZWFyY2hfc3RyaW5nID0gKGNoYXIgKil4cmVhbGxvYyAoY3h0LT5zZWFyY2hfc3RyaW5nLCBjeHQtPnNlYXJjaF9zdHJpbmdfc2l6ZSk7CisJICAgICAgc3RyY3B5IChjeHQtPnNlYXJjaF9zdHJpbmcsIGxhc3RfaXNlYXJjaF9zdHJpbmcpOworCSAgICAgIGN4dC0+c2VhcmNoX3N0cmluZ19pbmRleCA9IGxhc3RfaXNlYXJjaF9zdHJpbmdfbGVuOworCSAgICAgIHJsX2Rpc3BsYXlfc2VhcmNoIChjeHQtPnNlYXJjaF9zdHJpbmcsIChjeHQtPnNmbGFncyAmIFNGX1JFVkVSU0UpLCAtMSk7CisJICAgICAgYnJlYWs7CisJICAgIH0KKwkgIHJldHVybiAoMSk7CisJfQorICAgICAgZWxzZSBpZiAoY3h0LT5zZmxhZ3MgJiBTRl9SRVZFUlNFKQorCWN4dC0+c2xpbmVfaW5kZXgtLTsKKyAgICAgIGVsc2UgaWYgKGN4dC0+c2xpbmVfaW5kZXggIT0gY3h0LT5zbGluZV9sZW4pCisJY3h0LT5zbGluZV9pbmRleCsrOworICAgICAgZWxzZQorCXJsX2RpbmcgKCk7CisgICAgICBicmVhazsKKworICAgIC8qIHN3aXRjaCBkaXJlY3Rpb25zICovCisgICAgY2FzZSAtMjoKKyAgICAgIGN4dC0+ZGlyZWN0aW9uID0gLWN4dC0+ZGlyZWN0aW9uOworICAgICAgaWYgKGN4dC0+ZGlyZWN0aW9uIDwgMCkKKwljeHQtPnNmbGFncyB8PSBTRl9SRVZFUlNFOworICAgICAgZWxzZQorCWN4dC0+c2ZsYWdzICY9IH5TRl9SRVZFUlNFOworICAgICAgYnJlYWs7CisKKyAgICAvKiBkZWxldGUgY2hhcmFjdGVyIGZyb20gc2VhcmNoIHN0cmluZy4gKi8KKyAgICBjYXNlIC0zOgkvKiBDLUgsIERFTCAqLworICAgICAgLyogVGhpcyBpcyB0cmlja3kuICBUbyBkbyB0aGlzIHJpZ2h0LCB3ZSBuZWVkIHRvIGtlZXAgYQorCSBzdGFjayBvZiBzZWFyY2ggcG9zaXRpb25zIGZvciB0aGUgY3VycmVudCBzZWFyY2gsIHdpdGgKKwkgc2VudGluZWxzIG1hcmtpbmcgdGhlIGJlZ2lubmluZyBhbmQgZW5kLiAgQnV0IHRoaXMgd2lsbAorCSBkbyB1bnRpbCB3ZSBoYXZlIGEgcmVhbCBpc2VhcmNoLXVuZG8uICovCisgICAgICBpZiAoY3h0LT5zZWFyY2hfc3RyaW5nX2luZGV4ID09IDApCisJcmxfZGluZyAoKTsKKyAgICAgIGVsc2UKKwljeHQtPnNlYXJjaF9zdHJpbmdbLS1jeHQtPnNlYXJjaF9zdHJpbmdfaW5kZXhdID0gJ1wwJzsKKyAgICAgIGJyZWFrOworCisgICAgY2FzZSAtNDoJLyogQy1HLCBhYm9ydCAqLworICAgICAgcmxfcmVwbGFjZV9saW5lIChjeHQtPmxpbmVzW2N4dC0+c2F2ZV9saW5lXSwgMCk7CisgICAgICBybF9wb2ludCA9IGN4dC0+c2F2ZV9wb2ludDsKKyAgICAgIHJsX21hcmsgPSBjeHQtPnNhdmVfbWFyazsKKyAgICAgIHJsX3Jlc3RvcmVfcHJvbXB0KCk7CisgICAgICBybF9jbGVhcl9tZXNzYWdlICgpOworCisgICAgICByZXR1cm4gLTE7CisKKyAgICBjYXNlIC01OgkvKiBDLVcgKi8KKyAgICAgIC8qIHNraXAgb3ZlciBwb3J0aW9uIG9mIGxpbmUgd2UgYWxyZWFkeSBtYXRjaGVkIGFuZCB5YW5rIHdvcmQgKi8KKyAgICAgIHdzdGFydCA9IHJsX3BvaW50ICsgY3h0LT5zZWFyY2hfc3RyaW5nX2luZGV4OworICAgICAgaWYgKHdzdGFydCA+PSBybF9lbmQpCisJeworCSAgcmxfZGluZyAoKTsKKwkgIGJyZWFrOworCX0KKworICAgICAgLyogaWYgbm90IGluIGEgd29yZCwgbW92ZSB0byBvbmUuICovCisgICAgICBjdmFsID0gX3JsX2NoYXJfdmFsdWUgKHJsX2xpbmVfYnVmZmVyLCB3c3RhcnQpOworICAgICAgaWYgKF9ybF93YWxwaGFiZXRpYyAoY3ZhbCkgPT0gMCkKKwl7CisJICBybF9kaW5nICgpOworCSAgYnJlYWs7CisJfQorICAgICAgbiA9IE1CX05FWFRDSEFSIChybF9saW5lX2J1ZmZlciwgd3N0YXJ0LCAxLCBNQl9GSU5EX05PTlpFUk8pOzsKKyAgICAgIHdoaWxlIChuIDwgcmxfZW5kKQorCXsKKwkgIGN2YWwgPSBfcmxfY2hhcl92YWx1ZSAocmxfbGluZV9idWZmZXIsIG4pOworCSAgaWYgKF9ybF93YWxwaGFiZXRpYyAoY3ZhbCkgPT0gMCkKKwkgICAgYnJlYWs7CisJICBuID0gTUJfTkVYVENIQVIgKHJsX2xpbmVfYnVmZmVyLCBuLCAxLCBNQl9GSU5EX05PTlpFUk8pOzsKKwl9CisgICAgICB3bGVuID0gbiAtIHdzdGFydCArIDE7CisgICAgICBpZiAoY3h0LT5zZWFyY2hfc3RyaW5nX2luZGV4ICsgd2xlbiArIDEgPj0gY3h0LT5zZWFyY2hfc3RyaW5nX3NpemUpCisJeworCSAgY3h0LT5zZWFyY2hfc3RyaW5nX3NpemUgKz0gd2xlbiArIDE7CisJICBjeHQtPnNlYXJjaF9zdHJpbmcgPSAoY2hhciAqKXhyZWFsbG9jIChjeHQtPnNlYXJjaF9zdHJpbmcsIGN4dC0+c2VhcmNoX3N0cmluZ19zaXplKTsKKwl9CisgICAgICBmb3IgKDsgd3N0YXJ0IDwgbjsgd3N0YXJ0KyspCisJY3h0LT5zZWFyY2hfc3RyaW5nW2N4dC0+c2VhcmNoX3N0cmluZ19pbmRleCsrXSA9IHJsX2xpbmVfYnVmZmVyW3dzdGFydF07CisgICAgICBjeHQtPnNlYXJjaF9zdHJpbmdbY3h0LT5zZWFyY2hfc3RyaW5nX2luZGV4XSA9ICdcMCc7CisgICAgICBicmVhazsKKworICAgIGNhc2UgLTY6CS8qIEMtWSAqLworICAgICAgLyogc2tpcCBvdmVyIHBvcnRpb24gb2YgbGluZSB3ZSBhbHJlYWR5IG1hdGNoZWQgYW5kIHlhbmsgcmVzdCAqLworICAgICAgd3N0YXJ0ID0gcmxfcG9pbnQgKyBjeHQtPnNlYXJjaF9zdHJpbmdfaW5kZXg7CisgICAgICBpZiAod3N0YXJ0ID49IHJsX2VuZCkKKwl7CisJICBybF9kaW5nICgpOworCSAgYnJlYWs7CisJfQorICAgICAgbiA9IHJsX2VuZCAtIHdzdGFydCArIDE7CisgICAgICBpZiAoY3h0LT5zZWFyY2hfc3RyaW5nX2luZGV4ICsgbiArIDEgPj0gY3h0LT5zZWFyY2hfc3RyaW5nX3NpemUpCisJeworCSAgY3h0LT5zZWFyY2hfc3RyaW5nX3NpemUgKz0gbiArIDE7CisJICBjeHQtPnNlYXJjaF9zdHJpbmcgPSAoY2hhciAqKXhyZWFsbG9jIChjeHQtPnNlYXJjaF9zdHJpbmcsIGN4dC0+c2VhcmNoX3N0cmluZ19zaXplKTsKKwl9CisgICAgICBmb3IgKG4gPSB3c3RhcnQ7IG4gPCBybF9lbmQ7IG4rKykKKwljeHQtPnNlYXJjaF9zdHJpbmdbY3h0LT5zZWFyY2hfc3RyaW5nX2luZGV4KytdID0gcmxfbGluZV9idWZmZXJbbl07CisgICAgICBjeHQtPnNlYXJjaF9zdHJpbmdbY3h0LT5zZWFyY2hfc3RyaW5nX2luZGV4XSA9ICdcMCc7CisgICAgICBicmVhazsKKworICAgIC8qIEFkZCBjaGFyYWN0ZXIgdG8gc2VhcmNoIHN0cmluZyBhbmQgY29udGludWUgc2VhcmNoLiAqLworICAgIGRlZmF1bHQ6CisgICAgICBpZiAoY3h0LT5zZWFyY2hfc3RyaW5nX2luZGV4ICsgMiA+PSBjeHQtPnNlYXJjaF9zdHJpbmdfc2l6ZSkKKwl7CisJICBjeHQtPnNlYXJjaF9zdHJpbmdfc2l6ZSArPSAxMjg7CisJICBjeHQtPnNlYXJjaF9zdHJpbmcgPSAoY2hhciAqKXhyZWFsbG9jIChjeHQtPnNlYXJjaF9zdHJpbmcsIGN4dC0+c2VhcmNoX3N0cmluZ19zaXplKTsKKwl9CisjaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKKyAgICAgIGlmIChNQl9DVVJfTUFYID4gMSAmJiBybF9ieXRlX29yaWVudGVkID09IDApCisJeworCSAgaW50IGosIGw7CisJICBmb3IgKGogPSAwLCBsID0gc3RybGVuIChjeHQtPm1iKTsgaiA8IGw7ICkKKwkgICAgY3h0LT5zZWFyY2hfc3RyaW5nW2N4dC0+c2VhcmNoX3N0cmluZ19pbmRleCsrXSA9IGN4dC0+bWJbaisrXTsKKwl9CisgICAgICBlbHNlCisjZW5kaWYKKwljeHQtPnNlYXJjaF9zdHJpbmdbY3h0LT5zZWFyY2hfc3RyaW5nX2luZGV4KytdID0gYzsKKyAgICAgIGN4dC0+c2VhcmNoX3N0cmluZ1tjeHQtPnNlYXJjaF9zdHJpbmdfaW5kZXhdID0gJ1wwJzsKKyAgICAgIGJyZWFrOworICAgIH0KKworICBmb3IgKGN4dC0+c2ZsYWdzICY9IH4oU0ZfRk9VTkR8U0ZfRkFJTEVEKTs7ICkKKyAgICB7CisgICAgICBsaW1pdCA9IGN4dC0+c2xpbmVfbGVuIC0gY3h0LT5zZWFyY2hfc3RyaW5nX2luZGV4ICsgMTsKKworICAgICAgLyogU2VhcmNoIHRoZSBjdXJyZW50IGxpbmUuICovCisgICAgICB3aGlsZSAoKGN4dC0+c2ZsYWdzICYgU0ZfUkVWRVJTRSkgPyAoY3h0LT5zbGluZV9pbmRleCA+PSAwKSA6IChjeHQtPnNsaW5lX2luZGV4IDwgbGltaXQpKQorCXsKKwkgIGlmIChTVFJFUU4gKGN4dC0+c2VhcmNoX3N0cmluZywgY3h0LT5zbGluZSArIGN4dC0+c2xpbmVfaW5kZXgsIGN4dC0+c2VhcmNoX3N0cmluZ19pbmRleCkpCisJICAgIHsKKwkgICAgICBjeHQtPnNmbGFncyB8PSBTRl9GT1VORDsKKwkgICAgICBicmVhazsKKwkgICAgfQorCSAgZWxzZQorCSAgICBjeHQtPnNsaW5lX2luZGV4ICs9IGN4dC0+ZGlyZWN0aW9uOworCX0KKyAgICAgIGlmIChjeHQtPnNmbGFncyAmIFNGX0ZPVU5EKQorCWJyZWFrOworCisgICAgICAvKiBNb3ZlIHRvIHRoZSBuZXh0IGxpbmUsIGJ1dCBza2lwIG5ldyBjb3BpZXMgb2YgdGhlIGxpbmUKKwkgd2UganVzdCBmb3VuZCBhbmQgbGluZXMgc2hvcnRlciB0aGFuIHRoZSBzdHJpbmcgd2UncmUKKwkgc2VhcmNoaW5nIGZvci4gKi8KKyAgICAgIGRvCisJeworCSAgLyogTW92ZSB0byB0aGUgbmV4dCBsaW5lLiAqLworCSAgY3h0LT5oaXN0b3J5X3BvcyArPSBjeHQtPmRpcmVjdGlvbjsKKworCSAgLyogQXQgbGltaXQgZm9yIGRpcmVjdGlvbj8gKi8KKwkgIGlmICgoY3h0LT5zZmxhZ3MgJiBTRl9SRVZFUlNFKSA/IChjeHQtPmhpc3RvcnlfcG9zIDwgMCkgOiAoY3h0LT5oaXN0b3J5X3BvcyA9PSBjeHQtPmhsZW4pKQorCSAgICB7CisJICAgICAgY3h0LT5zZmxhZ3MgfD0gU0ZfRkFJTEVEOworCSAgICAgIGJyZWFrOworCSAgICB9CisKKwkgIC8qIFdlIHdpbGwgbmVlZCB0aGVzZSBsYXRlci4gKi8KKwkgIGN4dC0+c2xpbmUgPSBjeHQtPmxpbmVzW2N4dC0+aGlzdG9yeV9wb3NdOworCSAgY3h0LT5zbGluZV9sZW4gPSBzdHJsZW4gKGN4dC0+c2xpbmUpOworCX0KKyAgICAgIHdoaWxlICgoY3h0LT5wcmV2X2xpbmVfZm91bmQgJiYgU1RSRVEgKGN4dC0+cHJldl9saW5lX2ZvdW5kLCBjeHQtPmxpbmVzW2N4dC0+aGlzdG9yeV9wb3NdKSkgfHwKKwkgICAgIChjeHQtPnNlYXJjaF9zdHJpbmdfaW5kZXggPiBjeHQtPnNsaW5lX2xlbikpOworCisgICAgICBpZiAoY3h0LT5zZmxhZ3MgJiBTRl9GQUlMRUQpCisJYnJlYWs7CisKKyAgICAgIC8qIE5vdyBzZXQgdXAgdGhlIGxpbmUgZm9yIHNlYXJjaGluZy4uLiAqLworICAgICAgY3h0LT5zbGluZV9pbmRleCA9IChjeHQtPnNmbGFncyAmIFNGX1JFVkVSU0UpID8gY3h0LT5zbGluZV9sZW4gLSBjeHQtPnNlYXJjaF9zdHJpbmdfaW5kZXggOiAwOworICAgIH0KKworICBpZiAoY3h0LT5zZmxhZ3MgJiBTRl9GQUlMRUQpCisgICAgeworICAgICAgLyogV2UgY2Fubm90IGZpbmQgdGhlIHNlYXJjaCBzdHJpbmcuICBEaW5nIHRoZSBiZWxsLiAqLworICAgICAgcmxfZGluZyAoKTsKKyAgICAgIGN4dC0+aGlzdG9yeV9wb3MgPSBjeHQtPmxhc3RfZm91bmRfbGluZTsKKyAgICAgIHJldHVybiAxOworICAgIH0KKworICAvKiBXZSBoYXZlIGZvdW5kIHRoZSBzZWFyY2ggc3RyaW5nLiAgSnVzdCBkaXNwbGF5IGl0LiAgQnV0IGRvbid0CisgICAgIGFjdHVhbGx5IG1vdmUgdGhlcmUgaW4gdGhlIGhpc3RvcnkgbGlzdCB1bnRpbCB0aGUgdXNlciBhY2NlcHRzCisgICAgIHRoZSBsb2NhdGlvbi4gKi8KKyAgaWYgKGN4dC0+c2ZsYWdzICYgU0ZfRk9VTkQpCisgICAgeworICAgICAgY3h0LT5wcmV2X2xpbmVfZm91bmQgPSBjeHQtPmxpbmVzW2N4dC0+aGlzdG9yeV9wb3NdOworICAgICAgcmxfcmVwbGFjZV9saW5lIChjeHQtPmxpbmVzW2N4dC0+aGlzdG9yeV9wb3NdLCAwKTsKKyAgICAgIHJsX3BvaW50ID0gY3h0LT5zbGluZV9pbmRleDsKKyAgICAgIGN4dC0+bGFzdF9mb3VuZF9saW5lID0gY3h0LT5oaXN0b3J5X3BvczsKKyAgICAgIHJsX2Rpc3BsYXlfc2VhcmNoIChjeHQtPnNlYXJjaF9zdHJpbmcsIChjeHQtPnNmbGFncyAmIFNGX1JFVkVSU0UpLCAoY3h0LT5oaXN0b3J5X3BvcyA9PSBjeHQtPnNhdmVfbGluZSkgPyAtMSA6IGN4dC0+aGlzdG9yeV9wb3MpOworICAgIH0KKworICByZXR1cm4gMTsKK30KKworc3RhdGljIGludAorX3JsX2lzZWFyY2hfY2xlYW51cCAoY3h0LCByKQorICAgICBfcmxfc2VhcmNoX2N4dCAqY3h0OworICAgICBpbnQgcjsKK3sKKyAgaWYgKHIgPj0gMCkKKyAgICBfcmxfaXNlYXJjaF9maW5pIChjeHQpOworICBfcmxfc2N4dF9kaXNwb3NlIChjeHQsIDApOworICBfcmxfaXNjeHQgPSAwOworCisgIFJMX1VOU0VUU1RBVEUoUkxfU1RBVEVfSVNFQVJDSCk7CisKKyAgcmV0dXJuIChyICE9IDApOworfQorCiAvKiBTZWFyY2ggdGhyb3VnaCB0aGUgaGlzdG9yeSBsb29raW5nIGZvciBhbiBpbnRlcmFjdGl2ZWx5IHR5cGVkIHN0cmluZy4KICAgIFRoaXMgaXMgYW5hbG9nb3VzIHRvIGktc2VhcmNoLiAgV2Ugc3RhcnQgdGhlIHNlYXJjaCBpbiB0aGUgY3VycmVudCBsaW5lLgogICAgRElSRUNUSU9OIGlzIHdoaWNoIGRpcmVjdGlvbiB0byBzZWFyY2g7ID49IDAgbWVhbnMgZm9yd2FyZCwgPCAwIG1lYW5zCkBAIC0xNDgsNDEzICs2MTYsNTEgQEAKIHJsX3NlYXJjaF9oaXN0b3J5IChkaXJlY3Rpb24sIGludm9raW5nX2tleSkKICAgICAgaW50IGRpcmVjdGlvbiwgaW52b2tpbmdfa2V5OwogewotICAvKiBUaGUgc3RyaW5nIHRoYXQgdGhlIHVzZXIgdHlwZXMgaW4gdG8gc2VhcmNoIGZvci4gKi8KLSAgY2hhciAqc2VhcmNoX3N0cmluZzsKLQotICAvKiBUaGUgY3VycmVudCBsZW5ndGggb2YgU0VBUkNIX1NUUklORy4gKi8KLSAgaW50IHNlYXJjaF9zdHJpbmdfaW5kZXg7Ci0KLSAgLyogVGhlIGFtb3VudCBvZiBzcGFjZSB0aGF0IFNFQVJDSF9TVFJJTkcgaGFzIGFsbG9jYXRlZCB0byBpdC4gKi8KLSAgaW50IHNlYXJjaF9zdHJpbmdfc2l6ZTsKLQotICAvKiBUaGUgbGlzdCBvZiBsaW5lcyB0byBzZWFyY2ggdGhyb3VnaC4gKi8KLSAgY2hhciAqKmxpbmVzLCAqYWxsb2NhdGVkX2xpbmU7Ci0KLSAgLyogVGhlIGxlbmd0aCBvZiBMSU5FUy4gKi8KLSAgaW50IGhsZW47Ci0KLSAgLyogV2hlcmUgd2UgZ2V0IExJTkVTIGZyb20uICovCi0gIEhJU1RfRU5UUlkgKipobGlzdDsKLQotICByZWdpc3RlciBpbnQgaTsKLSAgaW50IG9yaWdfcG9pbnQsIG9yaWdfbWFyaywgb3JpZ19saW5lLCBsYXN0X2ZvdW5kX2xpbmU7Ci0gIGludCBjLCBmb3VuZCwgZmFpbGVkLCBzbGluZV9sZW47Ci0gIGludCBuLCB3c3RhcnQsIHdsZW47Ci0jaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKLSAgY2hhciBtYltNQl9MRU5fTUFYXTsKLSNlbmRpZgotCi0gIC8qIFRoZSBsaW5lIGN1cnJlbnRseSBiZWluZyBzZWFyY2hlZC4gKi8KLSAgY2hhciAqc2xpbmU7Ci0KLSAgLyogT2Zmc2V0IGluIHRoYXQgbGluZS4gKi8KLSAgaW50IGxpbmVfaW5kZXg7Ci0KLSAgLyogTm9uLXplcm8gaWYgd2UgYXJlIGRvaW5nIGEgcmV2ZXJzZSBzZWFyY2guICovCi0gIGludCByZXZlcnNlOwotCi0gIC8qIFRoZSBsaXN0IG9mIGNoYXJhY3RlcnMgd2hpY2ggdGVybWluYXRlIHRoZSBzZWFyY2gsIGJ1dCBhcmUgbm90Ci0gICAgIHN1YnNlcXVlbnRseSBleGVjdXRlZC4gIElmIHRoZSB2YXJpYWJsZSBpc2VhcmNoLXRlcm1pbmF0b3JzIGhhcwotICAgICBiZWVuIHNldCwgd2UgdXNlIHRoYXQgdmFsdWUsIG90aGVyd2lzZSB3ZSB1c2UgRVNDIGFuZCBDLUouICovCi0gIGNoYXIgKmlzZWFyY2hfdGVybWluYXRvcnM7CisgIF9ybF9zZWFyY2hfY3h0ICpjeHQ7CQkvKiBsb2NhbCBmb3Igbm93LCBidXQgc2F2ZWQgZ2xvYmFsbHkgKi8KKyAgaW50IGMsIHI7CiAKICAgUkxfU0VUU1RBVEUoUkxfU1RBVEVfSVNFQVJDSCk7Ci0gIG9yaWdfcG9pbnQgPSBybF9wb2ludDsKLSAgb3JpZ19tYXJrID0gcmxfbWFyazsKLSAgbGFzdF9mb3VuZF9saW5lID0gb3JpZ19saW5lID0gd2hlcmVfaGlzdG9yeSAoKTsKLSAgcmV2ZXJzZSA9IGRpcmVjdGlvbiA8IDA7Ci0gIGhsaXN0ID0gaGlzdG9yeV9saXN0ICgpOwotICBhbGxvY2F0ZWRfbGluZSA9IChjaGFyICopTlVMTDsKKyAgY3h0ID0gX3JsX2lzZWFyY2hfaW5pdCAoZGlyZWN0aW9uKTsKIAotICBpc2VhcmNoX3Rlcm1pbmF0b3JzID0gX3JsX2lzZWFyY2hfdGVybWluYXRvcnMgPyBfcmxfaXNlYXJjaF90ZXJtaW5hdG9ycwotCQkJCQkJOiBkZWZhdWx0X2lzZWFyY2hfdGVybWluYXRvcnM7CisgIHJsX2Rpc3BsYXlfc2VhcmNoIChjeHQtPnNlYXJjaF9zdHJpbmcsIChjeHQtPnNmbGFncyAmIFNGX1JFVkVSU0UpLCAtMSk7CiAKLSAgLyogQ3JlYXRlIGFuIGFycmFyeSBvZiBwb2ludGVycyB0byB0aGUgbGluZXMgdGhhdCB3ZSB3YW50IHRvIHNlYXJjaC4gKi8KLSAgcmxfbWF5YmVfcmVwbGFjZV9saW5lICgpOwotICBpID0gMDsKLSAgaWYgKGhsaXN0KQotICAgIGZvciAoaSA9IDA7IGhsaXN0W2ldOyBpKyspOworICAvKiBJZiB3ZSBhcmUgdXNpbmcgdGhlIGNhbGxiYWNrIGludGVyZmFjZSwgYWxsIHdlIGRvIGlzIHNldCB1cCBoZXJlIGFuZAorICAgICAgcmV0dXJuLiAgVGhlIGtleSBpcyB0aGF0IHdlIGxlYXZlIFJMX1NUQVRFX0lTRUFSQ0ggc2V0LiAqLworICBpZiAoUkxfSVNTVEFURSAoUkxfU1RBVEVfQ0FMTEJBQ0spKQorICAgIHJldHVybiAoMCk7CiAKLSAgLyogQWxsb2NhdGUgc3BhY2UgZm9yIHRoaXMgbWFueSBsaW5lcywgKzEgZm9yIHRoZSBjdXJyZW50IGlucHV0IGxpbmUsCi0gICAgIGFuZCByZW1lbWJlciB0aG9zZSBsaW5lcy4gKi8KLSAgbGluZXMgPSAoY2hhciAqKil4bWFsbG9jICgoMSArIChobGVuID0gaSkpICogc2l6ZW9mIChjaGFyICopKTsKLSAgZm9yIChpID0gMDsgaSA8IGhsZW47IGkrKykKLSAgICBsaW5lc1tpXSA9IGhsaXN0W2ldLT5saW5lOwotCi0gIGlmIChfcmxfc2F2ZWRfbGluZV9mb3JfaGlzdG9yeSkKLSAgICBsaW5lc1tpXSA9IF9ybF9zYXZlZF9saW5lX2Zvcl9oaXN0b3J5LT5saW5lOwotICBlbHNlCi0gICAgewotICAgICAgLyogS2VlcCB0cmFjayBvZiB0aGlzIHNvIHdlIGNhbiBmcmVlIGl0LiAqLwotICAgICAgYWxsb2NhdGVkX2xpbmUgPSAoY2hhciAqKXhtYWxsb2MgKDEgKyBzdHJsZW4gKHJsX2xpbmVfYnVmZmVyKSk7Ci0gICAgICBzdHJjcHkgKGFsbG9jYXRlZF9saW5lLCAmcmxfbGluZV9idWZmZXJbMF0pOwotICAgICAgbGluZXNbaV0gPSBhbGxvY2F0ZWRfbGluZTsKLSAgICB9Ci0KLSAgaGxlbisrOwotCi0gIC8qIFRoZSBsaW5lIHdoZXJlIHdlIHN0YXJ0IHRoZSBzZWFyY2guICovCi0gIGkgPSBvcmlnX2xpbmU7Ci0KLSAgcmxfc2F2ZV9wcm9tcHQgKCk7Ci0KLSAgLyogSW5pdGlhbGl6ZSBzZWFyY2ggcGFyYW1ldGVycy4gKi8KLSAgc2VhcmNoX3N0cmluZyA9IChjaGFyICopeG1hbGxvYyAoc2VhcmNoX3N0cmluZ19zaXplID0gMTI4KTsKLSAgKnNlYXJjaF9zdHJpbmcgPSAnXDAnOwotICBzZWFyY2hfc3RyaW5nX2luZGV4ID0gMDsKLSAgcHJldl9saW5lX2ZvdW5kID0gKGNoYXIgKikwOwkJLyogWFhYICovCi0KLSAgLyogTm9ybWFsaXplIERJUkVDVElPTiBpbnRvIDEgb3IgLTEuICovCi0gIGRpcmVjdGlvbiA9IChkaXJlY3Rpb24gPj0gMCkgPyAxIDogLTE7Ci0KLSAgcmxfZGlzcGxheV9zZWFyY2ggKHNlYXJjaF9zdHJpbmcsIHJldmVyc2UsIC0xKTsKLQotICBzbGluZSA9IHJsX2xpbmVfYnVmZmVyOwotICBzbGluZV9sZW4gPSBzdHJsZW4gKHNsaW5lKTsKLSAgbGluZV9pbmRleCA9IHJsX3BvaW50OwotCi0gIGZvdW5kID0gZmFpbGVkID0gMDsKKyAgciA9IC0xOwogICBmb3IgKDs7KQogICAgIHsKLSAgICAgIHJsX2NvbW1hbmRfZnVuY190ICpmID0gKHJsX2NvbW1hbmRfZnVuY190ICopTlVMTDsKLQotICAgICAgLyogUmVhZCBhIGtleSBhbmQgZGVjaWRlIGhvdyB0byBwcm9jZWVkLiAqLwotICAgICAgUkxfU0VUU1RBVEUoUkxfU1RBVEVfTU9SRUlOUFVUKTsKLSAgICAgIGMgPSBybF9yZWFkX2tleSAoKTsKLSAgICAgIFJMX1VOU0VUU1RBVEUoUkxfU1RBVEVfTU9SRUlOUFVUKTsKLQotI2lmIGRlZmluZWQgKEhBTkRMRV9NVUxUSUJZVEUpCi0gICAgICBpZiAoTUJfQ1VSX01BWCA+IDEgJiYgcmxfYnl0ZV9vcmllbnRlZCA9PSAwKQotCWMgPSBfcmxfcmVhZF9tYnN0cmluZyAoYywgbWIsIE1CX0xFTl9NQVgpOwotI2VuZGlmCi0KLSAgICAgIC8qIFRyYW5zbGF0ZSB0aGUga2V5cyB3ZSBkbyBzb21ldGhpbmcgd2l0aCB0byBvcGNvZGVzLiAqLwotICAgICAgaWYgKGMgPj0gMCAmJiBfcmxfa2V5bWFwW2NdLnR5cGUgPT0gSVNGVU5DKQotCXsKLQkgIGYgPSBfcmxfa2V5bWFwW2NdLmZ1bmN0aW9uOwotCi0JICBpZiAoZiA9PSBybF9yZXZlcnNlX3NlYXJjaF9oaXN0b3J5KQotCSAgICBjID0gcmV2ZXJzZSA/IC0xIDogLTI7Ci0JICBlbHNlIGlmIChmID09IHJsX2ZvcndhcmRfc2VhcmNoX2hpc3RvcnkpCi0JICAgIGMgPSAgIXJldmVyc2UgPyAtMSA6IC0yOwotCSAgZWxzZSBpZiAoZiA9PSBybF9ydWJvdXQpCi0JICAgIGMgPSAtMzsKLQkgIGVsc2UgaWYgKGMgPT0gQ1RSTCAoJ0cnKSkKLQkgICAgYyA9IC00OwotCSAgZWxzZSBpZiAoYyA9PSBDVFJMICgnVycpKQkvKiBYWFggKi8KLQkgICAgYyA9IC01OwotCSAgZWxzZSBpZiAoYyA9PSBDVFJMICgnWScpKQkvKiBYWFggKi8KLQkgICAgYyA9IC02OwotCX0KLQotICAgICAgLyogVGhlIGNoYXJhY3RlcnMgaW4gaXNlYXJjaF90ZXJtaW5hdG9ycyAoc2V0IGZyb20gdGhlIHVzZXItc2V0dGFibGUKLQkgdmFyaWFibGUgaXNlYXJjaC10ZXJtaW5hdG9ycykgYXJlIHVzZWQgdG8gdGVybWluYXRlIHRoZSBzZWFyY2ggYnV0Ci0JIG5vdCBzdWJzZXF1ZW50bHkgZXhlY3V0ZSB0aGUgY2hhcmFjdGVyIGFzIGEgY29tbWFuZC4gIFRoZSBkZWZhdWx0Ci0JIHZhbHVlIGlzICJcMDMzXDAxMiIgKEVTQyBhbmQgQy1KKS4gKi8KLSAgICAgIGlmIChzdHJjaHIgKGlzZWFyY2hfdGVybWluYXRvcnMsIGMpKQotCXsKLQkgIC8qIEVTQyBzdGlsbCB0ZXJtaW5hdGVzIHRoZSBzZWFyY2gsIGJ1dCBpZiB0aGVyZSBpcyBwZW5kaW5nCi0JICAgICBpbnB1dCBvciBpZiBpbnB1dCBhcnJpdmVzIHdpdGhpbiAwLjEgc2Vjb25kcyAob24gc3lzdGVtcwotCSAgICAgd2l0aCBzZWxlY3QoMikpIGl0IGlzIHVzZWQgYXMgYSBwcmVmaXggY2hhcmFjdGVyCi0JICAgICB3aXRoIHJsX2V4ZWN1dGVfbmV4dC4gIFdBVENIIE9VVCBGT1IgVEhJUyEgIFRoaXMgaXMgaW50ZW5kZWQKLQkgICAgIHRvIGFsbG93IHRoZSBhcnJvdyBrZXlzIHRvIGJlIHVzZWQgbGlrZSBeRiBhbmQgXkIgYXJlIHVzZWQKLQkgICAgIHRvIHRlcm1pbmF0ZSB0aGUgc2VhcmNoIGFuZCBleGVjdXRlIHRoZSBtb3ZlbWVudCBjb21tYW5kLgotCSAgICAgWFhYIC0gc2luY2UgX3JsX2lucHV0X2F2YWlsYWJsZSBkZXBlbmRzIG9uIHRoZSBhcHBsaWNhdGlvbi0KLQkgICAgIHNldHRhYmxlIGtleWJvYXJkIHRpbWVvdXQgdmFsdWUsIHRoaXMgY291bGQgYWx0ZXJuYXRpdmVseQotCSAgICAgdXNlIF9ybF9pbnB1dF9xdWV1ZWQoMTAwMDAwKSAqLwotCSAgaWYgKGMgPT0gRVNDICYmIF9ybF9pbnB1dF9hdmFpbGFibGUgKCkpCi0JICAgIHJsX2V4ZWN1dGVfbmV4dCAoRVNDKTsKLQkgIGJyZWFrOwotCX0KLQotI2RlZmluZSBFTkRTUkNIX0NIQVIoYykgXAotICAoKENUUkxfQ0hBUiAoYykgfHwgTUVUQV9DSEFSIChjKSB8fCAoYykgPT0gUlVCT1VUKSAmJiAoKGMpICE9IENUUkwgKCdHJykpKQotCi0jaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKLSAgICAgIGlmIChNQl9DVVJfTUFYID4gMSAmJiBybF9ieXRlX29yaWVudGVkID09IDApCi0JewotCSAgaWYgKGMgPj0gMCAmJiBzdHJsZW4gKG1iKSA9PSAxICYmIEVORFNSQ0hfQ0hBUiAoYykpCi0JICAgIHsKLQkgICAgICAvKiBUaGlzIHNldHMgcmxfcGVuZGluZ19pbnB1dCB0byBjOyBpdCB3aWxsIGJlIHBpY2tlZCB1cCB0aGUgbmV4dAotCQkgdGltZSBybF9yZWFkX2tleSBpcyBjYWxsZWQuICovCi0JICAgICAgcmxfZXhlY3V0ZV9uZXh0IChjKTsKLQkgICAgICBicmVhazsKLQkgICAgfQotCX0KLSAgICAgIGVsc2UKLSNlbmRpZgotICAgICAgaWYgKGMgPj0gMCAmJiBFTkRTUkNIX0NIQVIgKGMpKQotCXsKLQkgIC8qIFRoaXMgc2V0cyBybF9wZW5kaW5nX2lucHV0IHRvIGM7IGl0IHdpbGwgYmUgcGlja2VkIHVwIHRoZSBuZXh0Ci0JICAgICB0aW1lIHJsX3JlYWRfa2V5IGlzIGNhbGxlZC4gKi8KLQkgIHJsX2V4ZWN1dGVfbmV4dCAoYyk7Ci0JICBicmVhazsKLQl9Ci0KLSAgICAgIHN3aXRjaCAoYykKLQl7Ci0JY2FzZSAtMToKLQkgIGlmIChzZWFyY2hfc3RyaW5nX2luZGV4ID09IDApCi0JICAgIHsKLQkgICAgICBpZiAobGFzdF9pc2VhcmNoX3N0cmluZykKLQkJewotCQkgIHNlYXJjaF9zdHJpbmdfc2l6ZSA9IDY0ICsgbGFzdF9pc2VhcmNoX3N0cmluZ19sZW47Ci0JCSAgc2VhcmNoX3N0cmluZyA9IChjaGFyICopeHJlYWxsb2MgKHNlYXJjaF9zdHJpbmcsIHNlYXJjaF9zdHJpbmdfc2l6ZSk7Ci0JCSAgc3RyY3B5IChzZWFyY2hfc3RyaW5nLCBsYXN0X2lzZWFyY2hfc3RyaW5nKTsKLQkJICBzZWFyY2hfc3RyaW5nX2luZGV4ID0gbGFzdF9pc2VhcmNoX3N0cmluZ19sZW47Ci0JCSAgcmxfZGlzcGxheV9zZWFyY2ggKHNlYXJjaF9zdHJpbmcsIHJldmVyc2UsIC0xKTsKLQkJICBicmVhazsKLQkJfQotCSAgICAgIGNvbnRpbnVlOwotCSAgICB9Ci0JICBlbHNlIGlmIChyZXZlcnNlKQotCSAgICAtLWxpbmVfaW5kZXg7Ci0JICBlbHNlIGlmIChsaW5lX2luZGV4ICE9IHNsaW5lX2xlbikKLQkgICAgKytsaW5lX2luZGV4OwotCSAgZWxzZQotCSAgICBybF9kaW5nICgpOwotCSAgYnJlYWs7Ci0KLQkgIC8qIHN3aXRjaCBkaXJlY3Rpb25zICovCi0JY2FzZSAtMjoKLQkgIGRpcmVjdGlvbiA9IC1kaXJlY3Rpb247Ci0JICByZXZlcnNlID0gZGlyZWN0aW9uIDwgMDsKLQkgIGJyZWFrOwotCi0JLyogZGVsZXRlIGNoYXJhY3RlciBmcm9tIHNlYXJjaCBzdHJpbmcuICovCi0JY2FzZSAtMzoJLyogQy1ILCBERUwgKi8KLQkgIC8qIFRoaXMgaXMgdHJpY2t5LiAgVG8gZG8gdGhpcyByaWdodCwgd2UgbmVlZCB0byBrZWVwIGEKLQkgICAgIHN0YWNrIG9mIHNlYXJjaCBwb3NpdGlvbnMgZm9yIHRoZSBjdXJyZW50IHNlYXJjaCwgd2l0aAotCSAgICAgc2VudGluZWxzIG1hcmtpbmcgdGhlIGJlZ2lubmluZyBhbmQgZW5kLiAgQnV0IHRoaXMgd2lsbAotCSAgICAgZG8gdW50aWwgd2UgaGF2ZSBhIHJlYWwgaXNlYXJjaC11bmRvLiAqLwotCSAgaWYgKHNlYXJjaF9zdHJpbmdfaW5kZXggPT0gMCkKLQkgICAgcmxfZGluZyAoKTsKLQkgIGVsc2UKLQkgICAgc2VhcmNoX3N0cmluZ1stLXNlYXJjaF9zdHJpbmdfaW5kZXhdID0gJ1wwJzsKLQotCSAgYnJlYWs7Ci0KLQljYXNlIC00OgkvKiBDLUcgKi8KLQkgIHJsX3JlcGxhY2VfbGluZSAobGluZXNbb3JpZ19saW5lXSwgMCk7Ci0JICBybF9wb2ludCA9IG9yaWdfcG9pbnQ7Ci0JICBybF9tYXJrID0gb3JpZ19tYXJrOwotCSAgcmxfcmVzdG9yZV9wcm9tcHQoKTsKLQkgIHJsX2NsZWFyX21lc3NhZ2UgKCk7Ci0JICBpZiAoYWxsb2NhdGVkX2xpbmUpCi0JICAgIGZyZWUgKGFsbG9jYXRlZF9saW5lKTsKLQkgIGZyZWUgKGxpbmVzKTsKLQkgIFJMX1VOU0VUU1RBVEUoUkxfU1RBVEVfSVNFQVJDSCk7Ci0JICByZXR1cm4gMDsKLQotCWNhc2UgLTU6CS8qIEMtVyAqLwotCSAgLyogc2tpcCBvdmVyIHBvcnRpb24gb2YgbGluZSB3ZSBhbHJlYWR5IG1hdGNoZWQgKi8KLQkgIHdzdGFydCA9IHJsX3BvaW50ICsgc2VhcmNoX3N0cmluZ19pbmRleDsKLQkgIGlmICh3c3RhcnQgPj0gcmxfZW5kKQotCSAgICB7Ci0JICAgICAgcmxfZGluZyAoKTsKLQkgICAgICBicmVhazsKLQkgICAgfQotCi0JICAvKiBpZiBub3QgaW4gYSB3b3JkLCBtb3ZlIHRvIG9uZS4gKi8KLQkgIGlmIChybF9hbHBoYWJldGljKHJsX2xpbmVfYnVmZmVyW3dzdGFydF0pID09IDApCi0JICAgIHsKLQkgICAgICBybF9kaW5nICgpOwotCSAgICAgIGJyZWFrOwotCSAgICB9Ci0JICBuID0gd3N0YXJ0OwotCSAgd2hpbGUgKG4gPCBybF9lbmQgJiYgcmxfYWxwaGFiZXRpYyhybF9saW5lX2J1ZmZlcltuXSkpCi0JICAgIG4rKzsKLQkgIHdsZW4gPSBuIC0gd3N0YXJ0ICsgMTsKLQkgIGlmIChzZWFyY2hfc3RyaW5nX2luZGV4ICsgd2xlbiArIDEgPj0gc2VhcmNoX3N0cmluZ19zaXplKQotCSAgICB7Ci0JICAgICAgc2VhcmNoX3N0cmluZ19zaXplICs9IHdsZW4gKyAxOwotCSAgICAgIHNlYXJjaF9zdHJpbmcgPSAoY2hhciAqKXhyZWFsbG9jIChzZWFyY2hfc3RyaW5nLCBzZWFyY2hfc3RyaW5nX3NpemUpOwotCSAgICB9Ci0JICBmb3IgKDsgd3N0YXJ0IDwgbjsgd3N0YXJ0KyspCi0JICAgIHNlYXJjaF9zdHJpbmdbc2VhcmNoX3N0cmluZ19pbmRleCsrXSA9IHJsX2xpbmVfYnVmZmVyW3dzdGFydF07Ci0JICBzZWFyY2hfc3RyaW5nW3NlYXJjaF9zdHJpbmdfaW5kZXhdID0gJ1wwJzsKLQkgIGJyZWFrOwotCi0JY2FzZSAtNjoJLyogQy1ZICovCi0JICAvKiBza2lwIG92ZXIgcG9ydGlvbiBvZiBsaW5lIHdlIGFscmVhZHkgbWF0Y2hlZCAqLwotCSAgd3N0YXJ0ID0gcmxfcG9pbnQgKyBzZWFyY2hfc3RyaW5nX2luZGV4OwotCSAgaWYgKHdzdGFydCA+PSBybF9lbmQpCi0JICAgIHsKLQkgICAgICBybF9kaW5nICgpOwotCSAgICAgIGJyZWFrOwotCSAgICB9Ci0JICBuID0gcmxfZW5kIC0gd3N0YXJ0ICsgMTsKLQkgIGlmIChzZWFyY2hfc3RyaW5nX2luZGV4ICsgbiArIDEgPj0gc2VhcmNoX3N0cmluZ19zaXplKQotCSAgICB7Ci0JICAgICAgc2VhcmNoX3N0cmluZ19zaXplICs9IG4gKyAxOwotCSAgICAgIHNlYXJjaF9zdHJpbmcgPSAoY2hhciAqKXhyZWFsbG9jIChzZWFyY2hfc3RyaW5nLCBzZWFyY2hfc3RyaW5nX3NpemUpOwotCSAgICB9Ci0JICBmb3IgKG4gPSB3c3RhcnQ7IG4gPCBybF9lbmQ7IG4rKykKLQkgICAgc2VhcmNoX3N0cmluZ1tzZWFyY2hfc3RyaW5nX2luZGV4KytdID0gcmxfbGluZV9idWZmZXJbbl07Ci0JICBzZWFyY2hfc3RyaW5nW3NlYXJjaF9zdHJpbmdfaW5kZXhdID0gJ1wwJzsKLQkgIGJyZWFrOwotCi0JZGVmYXVsdDoKLQkgIC8qIEFkZCBjaGFyYWN0ZXIgdG8gc2VhcmNoIHN0cmluZyBhbmQgY29udGludWUgc2VhcmNoLiAqLwotCSAgaWYgKHNlYXJjaF9zdHJpbmdfaW5kZXggKyAyID49IHNlYXJjaF9zdHJpbmdfc2l6ZSkKLQkgICAgewotCSAgICAgIHNlYXJjaF9zdHJpbmdfc2l6ZSArPSAxMjg7Ci0JICAgICAgc2VhcmNoX3N0cmluZyA9IChjaGFyICopeHJlYWxsb2MgKHNlYXJjaF9zdHJpbmcsIHNlYXJjaF9zdHJpbmdfc2l6ZSk7Ci0JICAgIH0KLSNpZiBkZWZpbmVkIChIQU5ETEVfTVVMVElCWVRFKQotCSAgaWYgKE1CX0NVUl9NQVggPiAxICYmIHJsX2J5dGVfb3JpZW50ZWQgPT0gMCkKLQkgICAgewotCSAgICAgIGludCBqLCBsOwotCSAgICAgIGZvciAoaiA9IDAsIGwgPSBzdHJsZW4gKG1iKTsgaiA8IGw7ICkKLQkJc2VhcmNoX3N0cmluZ1tzZWFyY2hfc3RyaW5nX2luZGV4KytdID0gbWJbaisrXTsKLQkgICAgfQotCSAgZWxzZQotI2VuZGlmCi0JICAgIHNlYXJjaF9zdHJpbmdbc2VhcmNoX3N0cmluZ19pbmRleCsrXSA9IGM7Ci0JICBzZWFyY2hfc3RyaW5nW3NlYXJjaF9zdHJpbmdfaW5kZXhdID0gJ1wwJzsKLQkgIGJyZWFrOwotCX0KLQotICAgICAgZm9yIChmb3VuZCA9IGZhaWxlZCA9IDA7OykKLQl7Ci0JICBpbnQgbGltaXQgPSBzbGluZV9sZW4gLSBzZWFyY2hfc3RyaW5nX2luZGV4ICsgMTsKLQotCSAgLyogU2VhcmNoIHRoZSBjdXJyZW50IGxpbmUuICovCi0JICB3aGlsZSAocmV2ZXJzZSA/IChsaW5lX2luZGV4ID49IDApIDogKGxpbmVfaW5kZXggPCBsaW1pdCkpCi0JICAgIHsKLQkgICAgICBpZiAoU1RSRVFOIChzZWFyY2hfc3RyaW5nLCBzbGluZSArIGxpbmVfaW5kZXgsIHNlYXJjaF9zdHJpbmdfaW5kZXgpKQotCQl7Ci0JCSAgZm91bmQrKzsKLQkJICBicmVhazsKLQkJfQotCSAgICAgIGVsc2UKLQkJbGluZV9pbmRleCArPSBkaXJlY3Rpb247Ci0JICAgIH0KLQkgIGlmIChmb3VuZCkKLQkgICAgYnJlYWs7Ci0KLQkgIC8qIE1vdmUgdG8gdGhlIG5leHQgbGluZSwgYnV0IHNraXAgbmV3IGNvcGllcyBvZiB0aGUgbGluZQotCSAgICAgd2UganVzdCBmb3VuZCBhbmQgbGluZXMgc2hvcnRlciB0aGFuIHRoZSBzdHJpbmcgd2UncmUKLQkgICAgIHNlYXJjaGluZyBmb3IuICovCi0JICBkbwotCSAgICB7Ci0JICAgICAgLyogTW92ZSB0byB0aGUgbmV4dCBsaW5lLiAqLwotCSAgICAgIGkgKz0gZGlyZWN0aW9uOwotCi0JICAgICAgLyogQXQgbGltaXQgZm9yIGRpcmVjdGlvbj8gKi8KLQkgICAgICBpZiAocmV2ZXJzZSA/IChpIDwgMCkgOiAoaSA9PSBobGVuKSkKLQkJewotCQkgIGZhaWxlZCsrOwotCQkgIGJyZWFrOwotCQl9Ci0KLQkgICAgICAvKiBXZSB3aWxsIG5lZWQgdGhlc2UgbGF0ZXIuICovCi0JICAgICAgc2xpbmUgPSBsaW5lc1tpXTsKLQkgICAgICBzbGluZV9sZW4gPSBzdHJsZW4gKHNsaW5lKTsKLQkgICAgfQotCSAgd2hpbGUgKChwcmV2X2xpbmVfZm91bmQgJiYgU1RSRVEgKHByZXZfbGluZV9mb3VuZCwgbGluZXNbaV0pKSB8fAotCQkgKHNlYXJjaF9zdHJpbmdfaW5kZXggPiBzbGluZV9sZW4pKTsKLQotCSAgaWYgKGZhaWxlZCkKLQkgICAgYnJlYWs7Ci0KLQkgIC8qIE5vdyBzZXQgdXAgdGhlIGxpbmUgZm9yIHNlYXJjaGluZy4uLiAqLwotCSAgbGluZV9pbmRleCA9IHJldmVyc2UgPyBzbGluZV9sZW4gLSBzZWFyY2hfc3RyaW5nX2luZGV4IDogMDsKLQl9Ci0KLSAgICAgIGlmIChmYWlsZWQpCi0JewotCSAgLyogV2UgY2Fubm90IGZpbmQgdGhlIHNlYXJjaCBzdHJpbmcuICBEaW5nIHRoZSBiZWxsLiAqLwotCSAgcmxfZGluZyAoKTsKLQkgIGkgPSBsYXN0X2ZvdW5kX2xpbmU7Ci0JICBjb250aW51ZTsgCQkvKiBYWFggLSB3YXMgYnJlYWsgKi8KLQl9Ci0KLSAgICAgIC8qIFdlIGhhdmUgZm91bmQgdGhlIHNlYXJjaCBzdHJpbmcuICBKdXN0IGRpc3BsYXkgaXQuICBCdXQgZG9uJ3QKLQkgYWN0dWFsbHkgbW92ZSB0aGVyZSBpbiB0aGUgaGlzdG9yeSBsaXN0IHVudGlsIHRoZSB1c2VyIGFjY2VwdHMKLQkgdGhlIGxvY2F0aW9uLiAqLwotICAgICAgaWYgKGZvdW5kKQotCXsKLQkgIHByZXZfbGluZV9mb3VuZCA9IGxpbmVzW2ldOwotCSAgcmxfcmVwbGFjZV9saW5lIChsaW5lc1tpXSwgMCk7Ci0JICBybF9wb2ludCA9IGxpbmVfaW5kZXg7Ci0JICBsYXN0X2ZvdW5kX2xpbmUgPSBpOwotCSAgcmxfZGlzcGxheV9zZWFyY2ggKHNlYXJjaF9zdHJpbmcsIHJldmVyc2UsIChpID09IG9yaWdfbGluZSkgPyAtMSA6IGkpOwotCX0KKyAgICAgIGMgPSBfcmxfc2VhcmNoX2dldGNoYXIgKGN4dCk7CisgICAgICAvKiBXZSBtaWdodCB3YW50IHRvIGhhbmRsZSBFT0YgaGVyZSAoYyA9PSAwKSAqLworICAgICAgciA9IF9ybF9pc2VhcmNoX2Rpc3BhdGNoIChjeHQsIGN4dC0+bGFzdGMpOworICAgICAgaWYgKHIgPD0gMCkKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgIC8qIFRoZSBzZWFyY2hpbmcgaXMgb3Zlci4gIFRoZSB1c2VyIG1heSBoYXZlIGZvdW5kIHRoZSBzdHJpbmcgdGhhdCBzaGUKICAgICAgd2FzIGxvb2tpbmcgZm9yLCBvciBlbHNlIHNoZSBtYXkgaGF2ZSBleGl0ZWQgYSBmYWlsaW5nIHNlYXJjaC4gIElmCiAgICAgIExJTkVfSU5ERVggaXMgLTEsIHRoZW4gdGhhdCBzaG93cyB0aGF0IHRoZSBzdHJpbmcgc2VhcmNoZWQgZm9yIHdhcwogICAgICBub3QgZm91bmQuICBXZSB1c2UgdGhpcyB0byBkZXRlcm1pbmUgd2hlcmUgdG8gcGxhY2UgcmxfcG9pbnQuICovCi0KLSAgLyogRmlyc3QgcHV0IGJhY2sgdGhlIG9yaWdpbmFsIHN0YXRlLiAqLwotICBzdHJjcHkgKHJsX2xpbmVfYnVmZmVyLCBsaW5lc1tvcmlnX2xpbmVdKTsKLQotICBybF9yZXN0b3JlX3Byb21wdCAoKTsKLQotICAvKiBTYXZlIHRoZSBzZWFyY2ggc3RyaW5nIGZvciBwb3NzaWJsZSBsYXRlciB1c2UuICovCi0gIEZSRUUgKGxhc3RfaXNlYXJjaF9zdHJpbmcpOwotICBsYXN0X2lzZWFyY2hfc3RyaW5nID0gc2VhcmNoX3N0cmluZzsKLSAgbGFzdF9pc2VhcmNoX3N0cmluZ19sZW4gPSBzZWFyY2hfc3RyaW5nX2luZGV4OwotCi0gIGlmIChsYXN0X2ZvdW5kX2xpbmUgPCBvcmlnX2xpbmUpCi0gICAgcmxfZ2V0X3ByZXZpb3VzX2hpc3RvcnkgKG9yaWdfbGluZSAtIGxhc3RfZm91bmRfbGluZSwgMCk7Ci0gIGVsc2UKLSAgICBybF9nZXRfbmV4dF9oaXN0b3J5IChsYXN0X2ZvdW5kX2xpbmUgLSBvcmlnX2xpbmUsIDApOwotCi0gIC8qIElmIHRoZSBzdHJpbmcgd2FzIG5vdCBmb3VuZCwgcHV0IHBvaW50IGF0IHRoZSBlbmQgb2YgdGhlIGxhc3QgbWF0Y2hpbmcKLSAgICAgbGluZS4gIElmIGxhc3RfZm91bmRfbGluZSA9PSBvcmlnX2xpbmUsIHdlIGRpZG4ndCBmaW5kIGFueSBtYXRjaGluZwotICAgICBoaXN0b3J5IGxpbmVzIGF0IGFsbCwgc28gcHV0IHBvaW50IGJhY2sgaW4gaXRzIG9yaWdpbmFsIHBvc2l0aW9uLiAqLwotICBpZiAobGluZV9pbmRleCA8IDApCi0gICAgewotICAgICAgaWYgKGxhc3RfZm91bmRfbGluZSA9PSBvcmlnX2xpbmUpCi0JbGluZV9pbmRleCA9IG9yaWdfcG9pbnQ7Ci0gICAgICBlbHNlCi0JbGluZV9pbmRleCA9IHN0cmxlbiAocmxfbGluZV9idWZmZXIpOwotICAgICAgcmxfbWFyayA9IG9yaWdfbWFyazsKLSAgICB9Ci0KLSAgcmxfcG9pbnQgPSBsaW5lX2luZGV4OwotICAvKiBEb24ndCB3b3JyeSBhYm91dCB3aGVyZSB0byBwdXQgdGhlIG1hcmsgaGVyZTsgcmxfZ2V0X3ByZXZpb3VzX2hpc3RvcnkKLSAgICAgYW5kIHJsX2dldF9uZXh0X2hpc3RvcnkgdGFrZSBjYXJlIG9mIGl0LiAqLwotCi0gIHJsX2NsZWFyX21lc3NhZ2UgKCk7Ci0KLSAgRlJFRSAoYWxsb2NhdGVkX2xpbmUpOwotICBmcmVlIChsaW5lcyk7Ci0KLSAgUkxfVU5TRVRTVEFURShSTF9TVEFURV9JU0VBUkNIKTsKLQotICByZXR1cm4gMDsKKyAgcmV0dXJuIChfcmxfaXNlYXJjaF9jbGVhbnVwIChjeHQsIHIpKTsKIH0KKworI2lmIGRlZmluZWQgKFJFQURMSU5FX0NBTExCQUNLUykKKy8qIENhbGxlZCBmcm9tIHRoZSBjYWxsYmFjayBmdW5jdGlvbnMgd2hlbiB3ZSBhcmUgcmVhZHkgdG8gcmVhZCBhIGtleS4gIFRoZQorICAgY2FsbGJhY2sgZnVuY3Rpb25zIGtub3cgdG8gY2FsbCB0aGlzIGJlY2F1c2UgUkxfSVNTVEFURShSTF9TVEFURV9JU0VBUkNIKS4KKyAgIElmIF9ybF9pc2VhcmNoX2Rpc3BhdGNoIGZpbmlzaGVzIHNlYXJjaGluZywgdGhpcyBmdW5jdGlvbiBpcyByZXNwb25zaWJsZQorICAgZm9yIHR1cm5pbmcgb2ZmIFJMX1NUQVRFX0lTRUFSQ0gsIHdoaWNoIGl0IGRvZXMgdXNpbmcgX3JsX2lzZWFyY2hfY2xlYW51cC4gKi8KK2ludAorX3JsX2lzZWFyY2hfY2FsbGJhY2sgKGN4dCkKKyAgICAgX3JsX3NlYXJjaF9jeHQgKmN4dDsKK3sKKyAgaW50IGMsIHI7CisKKyAgYyA9IF9ybF9zZWFyY2hfZ2V0Y2hhciAoY3h0KTsKKyAgLyogV2UgbWlnaHQgd2FudCB0byBoYW5kbGUgRU9GIGhlcmUgKi8KKyAgciA9IF9ybF9pc2VhcmNoX2Rpc3BhdGNoIChjeHQsIGN4dC0+bGFzdGMpOworCisgIHJldHVybiAociA8PSAwKSA/IF9ybF9pc2VhcmNoX2NsZWFudXAgKGN4dCwgcikgOiAwOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9yZWFkbGluZS9rZXltYXBzLmMgYi9yZWFkbGluZS9rZXltYXBzLmMKaW5kZXggMTI1MDZkMy4uNzBkMGNjMCAxMDA2NDQKLS0tIGEvcmVhZGxpbmUva2V5bWFwcy5jCisrKyBiL3JlYWRsaW5lL2tleW1hcHMuYwpAQCAtNjQsMTEgKzY0LDEzIEBACiAgICAgICBrZXltYXBbaV0uZnVuY3Rpb24gPSAocmxfY29tbWFuZF9mdW5jX3QgKilOVUxMOwogICAgIH0KIAorI2lmIDAKICAgZm9yIChpID0gJ0EnOyBpIDwgKCdaJyArIDEpOyBpKyspCiAgICAgewogICAgICAga2V5bWFwW2ldLnR5cGUgPSBJU0ZVTkM7CiAgICAgICBrZXltYXBbaV0uZnVuY3Rpb24gPSBybF9kb19sb3dlcmNhc2VfdmVyc2lvbjsKICAgICB9CisjZW5kaWYKIAogICByZXR1cm4gKGtleW1hcCk7CiB9CkBAIC03OSw4ICs4MSw5IEBACiAgICAgIEtleW1hcCBtYXA7CiB7CiAgIHJlZ2lzdGVyIGludCBpOwotICBLZXltYXAgdGVtcCA9IHJsX21ha2VfYmFyZV9rZXltYXAgKCk7CisgIEtleW1hcCB0ZW1wOwogCisgIHRlbXAgPSBybF9tYWtlX2JhcmVfa2V5bWFwICgpOwogICBmb3IgKGkgPSAwOyBpIDwgS0VZTUFQX1NJWkU7IGkrKykKICAgICB7CiAgICAgICB0ZW1wW2ldLnR5cGUgPSBtYXBbaV0udHlwZTsKQEAgLTEwOSwxMiArMTEyLDggQEAKICAgbmV3bWFwW0NUUkwoJ0gnKV0uZnVuY3Rpb24gPSBybF9ydWJvdXQ7CiAKICNpZiBLRVlNQVBfU0laRSA+IDEyOAotICAvKiBQcmludGluZyBjaGFyYWN0ZXJzIGluIHNvbWUgOC1iaXQgY2hhcmFjdGVyIHNldHMuICovCi0gIGZvciAoaSA9IDEyODsgaSA8IDE2MDsgaSsrKQotICAgIG5ld21hcFtpXS5mdW5jdGlvbiA9IHJsX2luc2VydDsKLQotICAvKiBJU08gTGF0aW4tMSBwcmludGluZyBjaGFyYWN0ZXJzIHNob3VsZCBzZWxmLWluc2VydC4gKi8KLSAgZm9yIChpID0gMTYwOyBpIDwgMjU2OyBpKyspCisgIC8qIFByaW50aW5nIGNoYXJhY3RlcnMgaW4gSVNPIExhdGluLTEgYW5kIHNvbWUgOC1iaXQgY2hhcmFjdGVyIHNldHMuICovCisgIGZvciAoaSA9IDEyODsgaSA8IDI1NjsgaSsrKQogICAgIG5ld21hcFtpXS5mdW5jdGlvbiA9IHJsX2luc2VydDsKICNlbmRpZiAvKiBLRVlNQVBfU0laRSA+IDEyOCAqLwogCmRpZmYgLS1naXQgYS9yZWFkbGluZS9raWxsLmMgYi9yZWFkbGluZS9raWxsLmMKaW5kZXggYTYxNmI5Mi4uMWQzMjU0YyAxMDA2NDQKLS0tIGEvcmVhZGxpbmUva2lsbC5jCisrKyBiL3JlYWRsaW5lL2tpbGwuYwpAQCAtMzM5LDYgKzMzOSw0NyBAQAogICAgICAgaWYgKHJsX2VkaXRpbmdfbW9kZSA9PSBlbWFjc19tb2RlKQogCXJsX21hcmsgPSBybF9wb2ludDsKICAgICB9CisKKyAgcmV0dXJuIDA7Cit9CisKKy8qIFRoaXMgZGVsZXRlcyBvbmUgZmlsZW5hbWUgY29tcG9uZW50IGluIGEgVW5peCBwYXRobmFtZS4gIFRoYXQgaXMsIGl0CisgICBkZWxldGVzIGJhY2t3YXJkIHRvIGRpcmVjdG9yeSBzZXBhcmF0b3IgKGAvJykgb3Igd2hpdGVzcGFjZS4gICovCitpbnQKK3JsX3VuaXhfZmlsZW5hbWVfcnVib3V0IChjb3VudCwga2V5KQorICAgICBpbnQgY291bnQsIGtleTsKK3sKKyAgaW50IG9yaWdfcG9pbnQsIGM7CisKKyAgaWYgKHJsX3BvaW50ID09IDApCisgICAgcmxfZGluZyAoKTsKKyAgZWxzZQorICAgIHsKKyAgICAgIG9yaWdfcG9pbnQgPSBybF9wb2ludDsKKyAgICAgIGlmIChjb3VudCA8PSAwKQorCWNvdW50ID0gMTsKKworICAgICAgd2hpbGUgKGNvdW50LS0pCisJeworCSAgYyA9IHJsX2xpbmVfYnVmZmVyW3JsX3BvaW50IC0gMV07CisJICB3aGlsZSAocmxfcG9pbnQgJiYgKHdoaXRlc3BhY2UgKGMpIHx8IGMgPT0gJy8nKSkKKwkgICAgeworCSAgICAgIHJsX3BvaW50LS07CisJICAgICAgYyA9IHJsX2xpbmVfYnVmZmVyW3JsX3BvaW50IC0gMV07CisJICAgIH0KKworCSAgd2hpbGUgKHJsX3BvaW50ICYmICh3aGl0ZXNwYWNlIChjKSA9PSAwKSAmJiBjICE9ICcvJykKKwkgICAgeworCSAgICAgIHJsX3BvaW50LS07CisJICAgICAgYyA9IHJsX2xpbmVfYnVmZmVyW3JsX3BvaW50IC0gMV07CisJICAgIH0KKwl9CisKKyAgICAgIHJsX2tpbGxfdGV4dCAob3JpZ19wb2ludCwgcmxfcG9pbnQpOworICAgICAgaWYgKHJsX2VkaXRpbmdfbW9kZSA9PSBlbWFjc19tb2RlKQorCXJsX21hcmsgPSBybF9wb2ludDsKKyAgICB9CisKICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL21hY3JvLmMgYi9yZWFkbGluZS9tYWNyby5jCmluZGV4IGI3M2MzYWYuLjI5NzViZjEgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL21hY3JvLmMKKysrIGIvcmVhZGxpbmUvbWFjcm8uYwpAQCAtMTAwLDYgKzEwMCw4IEBACiBpbnQKIF9ybF9uZXh0X21hY3JvX2tleSAoKQogeworICBpbnQgYzsKKwogICBpZiAocmxfZXhlY3V0aW5nX21hY3JvID09IDApCiAgICAgcmV0dXJuICgwKTsKIApAQCAtMTA5LDcgKzExMSwxNCBAQAogICAgICAgcmV0dXJuIChfcmxfbmV4dF9tYWNyb19rZXkgKCkpOwogICAgIH0KIAorI2lmIGRlZmluZWQgKFJFQURMSU5FX0NBTExCQUNLUykKKyAgYyA9IHJsX2V4ZWN1dGluZ19tYWNyb1tleGVjdXRpbmdfbWFjcm9faW5kZXgrK107CisgIGlmIChSTF9JU1NUQVRFIChSTF9TVEFURV9DQUxMQkFDSykgJiYgUkxfSVNTVEFURSAoUkxfU1RBVEVfUkVBRENNRCkgJiYgcmxfZXhlY3V0aW5nX21hY3JvW2V4ZWN1dGluZ19tYWNyb19pbmRleF0gPT0gMCkKKyAgICAgIF9ybF9wb3BfZXhlY3V0aW5nX21hY3JvICgpOworICByZXR1cm4gYzsKKyNlbHNlCiAgIHJldHVybiAocmxfZXhlY3V0aW5nX21hY3JvW2V4ZWN1dGluZ19tYWNyb19pbmRleCsrXSk7CisjZW5kaWYKIH0KIAogLyogU2F2ZSB0aGUgY3VycmVudGx5IGV4ZWN1dGluZyBtYWNybyBvbiBhIHN0YWNrIG9mIHNhdmVkIG1hY3Jvcy4gKi8KZGlmZiAtLWdpdCBhL3JlYWRsaW5lL21idXRpbC5jIGIvcmVhZGxpbmUvbWJ1dGlsLmMKaW5kZXggNTAzMDJmMC4uMTdkZGU1MyAxMDA2NDQKLS0tIGEvcmVhZGxpbmUvbWJ1dGlsLmMKKysrIGIvcmVhZGxpbmUvbWJ1dGlsLmMKQEAgLTEsNiArMSw2IEBACiAvKiBtYnV0aWwuYyAtLSByZWFkbGluZSBtdWx0aWJ5dGUgY2hhcmFjdGVyIHV0aWxpdHkgZnVuY3Rpb25zICovCiAKLS8qIENvcHlyaWdodCAoQykgMjAwMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKy8qIENvcHlyaWdodCAoQykgMjAwMS0yMDA1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIFJlYWRsaW5lIExpYnJhcnksIGEgbGlicmFyeSBmb3IKICAgIHJlYWRpbmcgbGluZXMgb2YgdGV4dCB3aXRoIGludGVyYWN0aXZlIGlucHV0IGFuZCBoaXN0b3J5IGVkaXRpbmcuCkBAIC03NywyNyArNzcsMjkgQEAKICAgICAgY2hhciAqc3RyaW5nOwogICAgICBpbnQgc2VlZCwgY291bnQsIGZpbmRfbm9uX3plcm87CiB7Ci0gIHNpemVfdCB0bXAgPSAwOworICBzaXplX3QgdG1wOwogICBtYnN0YXRlX3QgcHM7Ci0gIGludCBwb2ludCA9IDA7CisgIGludCBwb2ludDsKICAgd2NoYXJfdCB3YzsKIAorICB0bXAgPSAwOworCiAgIG1lbXNldCgmcHMsIDAsIHNpemVvZiAobWJzdGF0ZV90KSk7CiAgIGlmIChzZWVkIDwgMCkKICAgICBzZWVkID0gMDsKICAgaWYgKGNvdW50IDw9IDApCiAgICAgcmV0dXJuIHNlZWQ7CiAKLSAgcG9pbnQgPSBzZWVkICsgX3JsX2FkanVzdF9wb2ludChzdHJpbmcsIHNlZWQsICZwcyk7CisgIHBvaW50ID0gc2VlZCArIF9ybF9hZGp1c3RfcG9pbnQgKHN0cmluZywgc2VlZCwgJnBzKTsKICAgLyogaWYgdGhpcyBpcyB0cnVlLCBtZWFucyB0aGF0IHNlZWQgd2FzIG5vdCBwb2ludGVkIGNoYXJhY3RlcgogICAgICBzdGFydGVkIGJ5dGUuICBTbyBjb3JyZWN0IHRoZSBwb2ludCBhbmQgY29uc3VtZSBjb3VudCAqLwogICBpZiAoc2VlZCA8IHBvaW50KQotICAgIGNvdW50IC0tOworICAgIGNvdW50LS07CiAKICAgd2hpbGUgKGNvdW50ID4gMCkgIAogICAgIHsKICAgICAgIHRtcCA9IG1icnRvd2MgKCZ3Yywgc3RyaW5nK3BvaW50LCBzdHJsZW4oc3RyaW5nICsgcG9pbnQpLCAmcHMpOwotICAgICAgaWYgKChzaXplX3QpKHRtcCkgPT0gKHNpemVfdCktMSB8fCAoc2l6ZV90KSh0bXApID09IChzaXplX3QpLTIpCisgICAgICBpZiAoTUJfSU5WQUxJRENIICgoc2l6ZV90KXRtcCkpCiAJewogCSAgLyogaW52YWxpZCBieXRlcy4gYXN1bWUgYSBieXRlIHJlcHJlc2VudHMgYSBjaGFyYWN0ZXIgKi8KIAkgIHBvaW50Kys7CkBAIC0xMDUsOSArMTA3LDggQEAKIAkgIC8qIHJlc2V0IHN0YXRlcy4gKi8KIAkgIG1lbXNldCgmcHMsIDAsIHNpemVvZihtYnN0YXRlX3QpKTsKIAl9Ci0gICAgICBlbHNlIGlmICh0bXAgPT0gKHNpemVfdCkwKQotCS8qIGZvdW5kICdcMCcgY2hhciAqLwotCWJyZWFrOworICAgICAgZWxzZSBpZiAoTUJfTlVMTFdDSCAodG1wKSkKKwlicmVhazsJCQkvKiBmb3VuZCB3aWRlICdcMCcgKi8KICAgICAgIGVsc2UKIAl7CiAJICAvKiB2YWxpZCBieXRlcyAqLwpAQCAtMTI3LDE1ICsxMjgsMTYgQEAKICAgaWYgKGZpbmRfbm9uX3plcm8pCiAgICAgewogICAgICAgdG1wID0gbWJydG93YyAoJndjLCBzdHJpbmcgKyBwb2ludCwgc3RybGVuIChzdHJpbmcgKyBwb2ludCksICZwcyk7Ci0gICAgICB3aGlsZSAod2N3aWR0aCAod2MpID09IDApCisgICAgICB3aGlsZSAodG1wID4gMCAmJiB3Y3dpZHRoICh3YykgPT0gMCkKIAl7CiAJICBwb2ludCArPSB0bXA7CiAJICB0bXAgPSBtYnJ0b3djICgmd2MsIHN0cmluZyArIHBvaW50LCBzdHJsZW4gKHN0cmluZyArIHBvaW50KSwgJnBzKTsKLQkgIGlmICh0bXAgPT0gKHNpemVfdCkoMCkgfHwgdG1wID09IChzaXplX3QpKC0xKSB8fCB0bXAgPT0gKHNpemVfdCkoLTIpKQorCSAgaWYgKE1CX05VTExXQ0ggKHRtcCkgfHwgTUJfSU5WQUxJRENIICh0bXApKQogCSAgICBicmVhazsKIAl9CiAgICAgfQotICAgIHJldHVybiBwb2ludDsKKworICByZXR1cm4gcG9pbnQ7CiB9CiAKIHN0YXRpYyBpbnQKQEAgLTE2MCw3ICsxNjIsNyBAQAogICB3aGlsZSAocG9pbnQgPCBzZWVkKQogICAgIHsKICAgICAgIHRtcCA9IG1icnRvd2MgKCZ3Yywgc3RyaW5nICsgcG9pbnQsIGxlbmd0aCAtIHBvaW50LCAmcHMpOwotICAgICAgaWYgKChzaXplX3QpKHRtcCkgPT0gKHNpemVfdCktMSB8fCAoc2l6ZV90KSh0bXApID09IChzaXplX3QpLTIpCisgICAgICBpZiAoTUJfSU5WQUxJRENIICgoc2l6ZV90KXRtcCkpCiAJewogCSAgLyogaW4gdGhpcyBjYXNlLCBieXRlcyBhcmUgaW52YWxpZCBvciBzaG9ydGVkIHRvIGNvbXBvc2UKIAkgICAgIG11bHRpYnl0ZSBjaGFyLCBzbyBhc3N1bWUgdGhhdCB0aGUgZmlyc3QgYnl0ZSByZXByZXNlbnRzCkBAIC0xNjksOCArMTcxLDEyIEBACiAJICAvKiBjbGVhciB0aGUgc3RhdGUgb2YgdGhlIGJ5dGUgc2VxdWVuY2UsIGJlY2F1c2UKIAkgICAgIGluIHRoaXMgY2FzZSBlZmZlY3Qgb2YgbWJzdGF0ZSBpcyB1bmRlZmluZWQgICovCiAJICBtZW1zZXQoJnBzLCAwLCBzaXplb2YgKG1ic3RhdGVfdCkpOworCisJICAvKiBTaW5jZSB3ZSdyZSBhc3N1bWluZyB0aGF0IHRoaXMgYnl0ZSByZXByZXNlbnRzIGEgc2luZ2xlCisJICAgICBub24temVyby13aWR0aCBjaGFyYWN0ZXIsIGRvbid0IGZvcmdldCBhYm91dCBpdC4gKi8KKwkgIHByZXYgPSBwb2ludDsKIAl9Ci0gICAgICBlbHNlIGlmICh0bXAgPT0gMCkKKyAgICAgIGVsc2UgaWYgKE1CX05VTExXQ0ggKHRtcCkpCiAJYnJlYWs7CQkJLyogRm91bmQgJ1wwJyBjaGFyLiAgQ2FuIHRoaXMgaGFwcGVuPyAqLwogICAgICAgZWxzZQogCXsKQEAgLTIwNSwxNCArMjExLDE2IEBACiAgIGlmICh0bXAgPT0gKHNpemVfdCkoLTIpKQogICAgIHsKICAgICAgIC8qIHNob3J0ZWQgdG8gY29tcG9zZSBtdWx0aWJ5dGUgY2hhciAqLwotICAgICAgbWVtc2V0IChwcywgMCwgc2l6ZW9mKG1ic3RhdGVfdCkpOworICAgICAgaWYgKHBzKQorCW1lbXNldCAocHMsIDAsIHNpemVvZihtYnN0YXRlX3QpKTsKICAgICAgIHJldHVybiAtMjsKICAgICB9CiAgIGVsc2UgaWYgKHRtcCA9PSAoc2l6ZV90KSgtMSkpCiAgICAgewogICAgICAgLyogaW52YWxpZCB0byBjb21wb3NlIG11bHRpYnl0ZSBjaGFyICovCiAgICAgICAvKiBpbml0aWFsaXplIHRoZSBjb252ZXJzaW9uIHN0YXRlICovCi0gICAgICBtZW1zZXQgKHBzLCAwLCBzaXplb2YobWJzdGF0ZV90KSk7CisgICAgICBpZiAocHMpCisJbWVtc2V0IChwcywgMCwgc2l6ZW9mKG1ic3RhdGVfdCkpOwogICAgICAgcmV0dXJuIC0xOwogICAgIH0KICAgZWxzZSBpZiAodG1wID09IChzaXplX3QpMCkKQEAgLTIyNSw5ICsyMzMsMTIgQEAKICAgIHJldHVybiAxLiBPdGhlcndpc2UgcmV0dXJuIDAuICovCiBpbnQKIF9ybF9jb21wYXJlX2NoYXJzIChidWYxLCBwb3MxLCBwczEsIGJ1ZjIsIHBvczIsIHBzMikKLSAgICAgY2hhciAqYnVmMSwgKmJ1ZjI7Ci0gICAgIG1ic3RhdGVfdCAqcHMxLCAqcHMyOwotICAgICBpbnQgcG9zMSwgcG9zMjsKKyAgICAgY2hhciAqYnVmMTsKKyAgICAgaW50IHBvczE7CisgICAgIG1ic3RhdGVfdCAqcHMxOworICAgICBjaGFyICpidWYyOworICAgICBpbnQgcG9zMjsKKyAgICAgbWJzdGF0ZV90ICpwczI7CiB7CiAgIGludCBpLCB3MSwgdzI7CiAKQEAgLTI2OCw3ICsyNzksNyBAQAogICB3aGlsZSAocG9zIDwgcG9pbnQpCiAgICAgewogICAgICAgdG1wID0gbWJybGVuIChzdHJpbmcgKyBwb3MsIGxlbmd0aCAtIHBvcywgcHMpOwotICAgICAgaWYoKHNpemVfdCkodG1wKSA9PSAoc2l6ZV90KS0xIHx8IChzaXplX3QpKHRtcCkgPT0gKHNpemVfdCktMikKKyAgICAgIGlmIChNQl9JTlZBTElEQ0ggKChzaXplX3QpdG1wKSkKIAl7CiAJICAvKiBpbiB0aGlzIGNhc2UsIGJ5dGVzIGFyZSBpbnZhbGlkIG9yIHNob3J0ZWQgdG8gY29tcG9zZQogCSAgICAgbXVsdGlieXRlIGNoYXIsIHNvIGFzc3VtZSB0aGF0IHRoZSBmaXJzdCBieXRlIHJlcHJlc2VudHMKQEAgLTI3Niw4ICsyODcsMTEgQEAKIAkgIHBvcysrOwogCSAgLyogY2xlYXIgdGhlIHN0YXRlIG9mIHRoZSBieXRlIHNlcXVlbmNlLCBiZWNhdXNlCiAJICAgICBpbiB0aGlzIGNhc2UgZWZmZWN0IG9mIG1ic3RhdGUgaXMgdW5kZWZpbmVkICAqLwotCSAgbWVtc2V0IChwcywgMCwgc2l6ZW9mIChtYnN0YXRlX3QpKTsKKwkgIGlmIChwcykKKwkgICAgbWVtc2V0IChwcywgMCwgc2l6ZW9mIChtYnN0YXRlX3QpKTsKIAl9CisgICAgICBlbHNlIGlmIChNQl9OVUxMV0NIICh0bXApKQorCXBvcysrOwogICAgICAgZWxzZQogCXBvcyArPSB0bXA7CiAgICAgfQpAQCAtMzAyLDYgKzMxNiwyOCBAQAogICAgICAgcmV0dXJuIDA7CiAgIHJldHVybiAxOwogfQorCit3Y2hhcl90CitfcmxfY2hhcl92YWx1ZSAoYnVmLCBpbmQpCisgICAgIGNoYXIgKmJ1ZjsKKyAgICAgaW50IGluZDsKK3sKKyAgc2l6ZV90IHRtcDsKKyAgd2NoYXJfdCB3YzsKKyAgbWJzdGF0ZV90IHBzOworICBpbnQgbDsKKworICBpZiAoTUJfTEVOX01BWCA9PSAxIHx8IHJsX2J5dGVfb3JpZW50ZWQpCisgICAgcmV0dXJuICgod2NoYXJfdCkgYnVmW2luZF0pOworICBsID0gc3RybGVuIChidWYpOworICBpZiAoaW5kID49IGwgLSAxKQorICAgIHJldHVybiAoKHdjaGFyX3QpIGJ1ZltpbmRdKTsKKyAgbWVtc2V0ICgmcHMsIDAsIHNpemVvZiAobWJzdGF0ZV90KSk7CisgIHRtcCA9IG1icnRvd2MgKCZ3YywgYnVmICsgaW5kLCBsIC0gaW5kLCAmcHMpOworICBpZiAoTUJfSU5WQUxJRENIICh0bXApIHx8IE1CX05VTExXQ0ggKHRtcCkpICAKKyAgICByZXR1cm4gKCh3Y2hhcl90KSBidWZbaW5kXSk7CisgIHJldHVybiB3YzsKK30KICNlbmRpZiAvKiBIQU5ETEVfTVVMVElCWVRFICovCiAKIC8qIEZpbmQgbmV4dCBgY291bnQnIGNoYXJhY3RlcnMgc3RhcnRlZCBieXRlIHBvaW50IG9mIHRoZSBzcGVjaWZpZWQgc2VlZC4KZGlmZiAtLWdpdCBhL3JlYWRsaW5lL21pc2MuYyBiL3JlYWRsaW5lL21pc2MuYwppbmRleCBmMzc3NWQzLi5kNDU1ODMyIDEwMDY0NAotLS0gYS9yZWFkbGluZS9taXNjLmMKKysrIGIvcmVhZGxpbmUvbWlzYy5jCkBAIC0xLDYgKzEsNiBAQAogLyogbWlzYy5jIC0tIG1pc2NlbGxhbmVvdXMgYmluZGFibGUgcmVhZGxpbmUgZnVuY3Rpb25zLiAqLwogCi0vKiBDb3B5cmlnaHQgKEMpIDE5ODctMjAwMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKy8qIENvcHlyaWdodCAoQykgMTk4Ny0yMDA1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIFJlYWRsaW5lIExpYnJhcnksIGEgbGlicmFyeSBmb3IKICAgIHJlYWRpbmcgbGluZXMgb2YgdGV4dCB3aXRoIGludGVyYWN0aXZlIGlucHV0IGFuZCBoaXN0b3J5IGVkaXRpbmcuCkBAIC02Myw2ICs2Myw4IEBACiAgICB0byBwcmVzZXJ2ZSB0aGUgdmFsdWUgb2YgcmxfcG9pbnQgZnJvbSBsaW5lIHRvIGxpbmUuICovCiBpbnQgX3JsX2hpc3RvcnlfcHJlc2VydmVfcG9pbnQgPSAwOwogCitfcmxfYXJnX2N4dCBfcmxfYXJnY3h0OworCiAvKiBTYXZlZCB0YXJnZXQgcG9pbnQgZm9yIHdoZW4gX3JsX2hpc3RvcnlfcHJlc2VydmVfcG9pbnQgaXMgc2V0LiAgU3BlY2lhbAogICAgdmFsdWUgb2YgLTEgbWVhbnMgdGhhdCBwb2ludCBpcyBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lLiAqLwogaW50IF9ybF9oaXN0b3J5X3NhdmVkX3BvaW50ID0gLTE7CkBAIC03Myw3NyArNzUsNzQgQEAKIC8qCQkJCQkJCQkgICAgKi8KIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KIAotLyogSGFuZGxlIEMtdSBzdHlsZSBudW1lcmljIGFyZ3MsIGFzIHdlbGwgYXMgTS0tLCBhbmQgTS1kaWdpdHMuICovCi1zdGF0aWMgaW50Ci1ybF9kaWdpdF9sb29wICgpCitpbnQKK19ybF9hcmdfb3ZlcmZsb3cgKCkKIHsKLSAgaW50IGtleSwgYywgc2F3bWludXMsIHNhd2RpZ2l0czsKLQotICBybF9zYXZlX3Byb21wdCAoKTsKLQotICBSTF9TRVRTVEFURShSTF9TVEFURV9OVU1FUklDQVJHKTsKLSAgc2F3bWludXMgPSBzYXdkaWdpdHMgPSAwOwotICB3aGlsZSAoMSkKKyAgaWYgKHJsX251bWVyaWNfYXJnID4gMTAwMDAwMCkKICAgICB7Ci0gICAgICBpZiAocmxfbnVtZXJpY19hcmcgPiAxMDAwMDAwKQorICAgICAgX3JsX2FyZ2N4dCA9IDA7CisgICAgICBybF9leHBsaWNpdF9hcmcgPSBybF9udW1lcmljX2FyZyA9IDA7CisgICAgICBybF9kaW5nICgpOworICAgICAgcmxfcmVzdG9yZV9wcm9tcHQgKCk7CisgICAgICBybF9jbGVhcl9tZXNzYWdlICgpOworICAgICAgUkxfVU5TRVRTVEFURShSTF9TVEFURV9OVU1FUklDQVJHKTsKKyAgICAgIHJldHVybiAxOworICAgIH0KKyAgcmV0dXJuIDA7Cit9CisKK3ZvaWQKK19ybF9hcmdfaW5pdCAoKQoreworICBybF9zYXZlX3Byb21wdCAoKTsKKyAgX3JsX2FyZ2N4dCA9IDA7CisgIFJMX1NFVFNUQVRFKFJMX1NUQVRFX05VTUVSSUNBUkcpOworfQorCitpbnQKK19ybF9hcmdfZ2V0Y2hhciAoKQoreworICBpbnQgYzsKKworICBybF9tZXNzYWdlICgiKGFyZzogJWQpICIsIHJsX2FyZ19zaWduICogcmxfbnVtZXJpY19hcmcpOworICBSTF9TRVRTVEFURShSTF9TVEFURV9NT1JFSU5QVVQpOworICBjID0gcmxfcmVhZF9rZXkgKCk7CisgIFJMX1VOU0VUU1RBVEUoUkxfU1RBVEVfTU9SRUlOUFVUKTsKKworICByZXR1cm4gYzsKK30KKworLyogUHJvY2VzcyBDIGFzIHBhcnQgb2YgdGhlIGN1cnJlbnQgbnVtZXJpYyBhcmd1bWVudC4gIFJldHVybiAtMSBpZiB0aGUKKyAgIGFyZ3VtZW50IHNob3VsZCBiZSBhYm9ydGVkLCAwIGlmIHdlIHNob3VsZCBub3QgcmVhZCBhbnkgbW9yZSBjaGFycywgYW5kCisgICAxIGlmIHdlIHNob3VsZCBjb250aW51ZSB0byByZWFkIGNoYXJzLiAqLworaW50CitfcmxfYXJnX2Rpc3BhdGNoIChjeHQsIGMpCisgICAgIF9ybF9hcmdfY3h0IGN4dDsKKyAgICAgaW50IGM7Cit7CisgIGludCBrZXksIHI7CisKKyAga2V5ID0gYzsKKworICAvKiBJZiB3ZSBzZWUgYSBrZXkgYm91bmQgdG8gYHVuaXZlcnNhbC1hcmd1bWVudCcgYWZ0ZXIgc2VlaW5nIGRpZ2l0cywKKyAgICAgIGl0IGVuZHMgdGhlIGFyZ3VtZW50IGJ1dCBpcyBvdGhlcndpc2UgaWdub3JlZC4gKi8KKyAgaWYgKF9ybF9rZXltYXBbY10udHlwZSA9PSBJU0ZVTkMgJiYgX3JsX2tleW1hcFtjXS5mdW5jdGlvbiA9PSBybF91bml2ZXJzYWxfYXJndW1lbnQpCisgICAgeworICAgICAgaWYgKChjeHQgJiBOVU1fU0FXRElHSVRTKSA9PSAwKQogCXsKLQkgIHNhd2RpZ2l0cyA9IHJsX2V4cGxpY2l0X2FyZyA9IHJsX251bWVyaWNfYXJnID0gMDsKLQkgIHJsX2RpbmcgKCk7Ci0JICBybF9yZXN0b3JlX3Byb21wdCAoKTsKLQkgIHJsX2NsZWFyX21lc3NhZ2UgKCk7Ci0JICBSTF9VTlNFVFNUQVRFKFJMX1NUQVRFX05VTUVSSUNBUkcpOworCSAgcmxfbnVtZXJpY19hcmcgKj0gNDsKIAkgIHJldHVybiAxOwogCX0KLSAgICAgIHJsX21lc3NhZ2UgKCIoYXJnOiAlZCkgIiwgcmxfYXJnX3NpZ24gKiBybF9udW1lcmljX2FyZyk7Ci0gICAgICBSTF9TRVRTVEFURShSTF9TVEFURV9NT1JFSU5QVVQpOwotICAgICAga2V5ID0gYyA9IHJsX3JlYWRfa2V5ICgpOwotICAgICAgUkxfVU5TRVRTVEFURShSTF9TVEFURV9NT1JFSU5QVVQpOwotCi0gICAgICBpZiAoYyA8IDApCi0JewotCSAgX3JsX2Fib3J0X2ludGVybmFsICgpOwotCSAgcmV0dXJuIC0xOwotCX0KLQotICAgICAgLyogSWYgd2Ugc2VlIGEga2V5IGJvdW5kIHRvIGB1bml2ZXJzYWwtYXJndW1lbnQnIGFmdGVyIHNlZWluZyBkaWdpdHMsCi0JIGl0IGVuZHMgdGhlIGFyZ3VtZW50IGJ1dCBpcyBvdGhlcndpc2UgaWdub3JlZC4gKi8KLSAgICAgIGlmIChfcmxfa2V5bWFwW2NdLnR5cGUgPT0gSVNGVU5DICYmCi0JICBfcmxfa2V5bWFwW2NdLmZ1bmN0aW9uID09IHJsX3VuaXZlcnNhbF9hcmd1bWVudCkKLQl7Ci0JICBpZiAoc2F3ZGlnaXRzID09IDApCi0JICAgIHsKLQkgICAgICBybF9udW1lcmljX2FyZyAqPSA0OwotCSAgICAgIGNvbnRpbnVlOwotCSAgICB9Ci0JICBlbHNlCi0JICAgIHsKLQkgICAgICBSTF9TRVRTVEFURShSTF9TVEFURV9NT1JFSU5QVVQpOwotCSAgICAgIGtleSA9IHJsX3JlYWRfa2V5ICgpOwotCSAgICAgIFJMX1VOU0VUU1RBVEUoUkxfU1RBVEVfTU9SRUlOUFVUKTsKLQkgICAgICBybF9yZXN0b3JlX3Byb21wdCAoKTsKLQkgICAgICBybF9jbGVhcl9tZXNzYWdlICgpOwotCSAgICAgIFJMX1VOU0VUU1RBVEUoUkxfU1RBVEVfTlVNRVJJQ0FSRyk7Ci0JICAgICAgcmV0dXJuIChfcmxfZGlzcGF0Y2ggKGtleSwgX3JsX2tleW1hcCkpOwotCSAgICB9Ci0JfQotCi0gICAgICBjID0gVU5NRVRBIChjKTsKLQotICAgICAgaWYgKF9ybF9kaWdpdF9wIChjKSkKLQl7Ci0JICBybF9udW1lcmljX2FyZyA9IHJsX2V4cGxpY2l0X2FyZyA/IChybF9udW1lcmljX2FyZyAqIDEwKSArIGMgLSAnMCcgOiBjIC0gJzAnOwotCSAgc2F3ZGlnaXRzID0gcmxfZXhwbGljaXRfYXJnID0gMTsKLQl9Ci0gICAgICBlbHNlIGlmIChjID09ICctJyAmJiBybF9leHBsaWNpdF9hcmcgPT0gMCkKLQl7Ci0JICBybF9udW1lcmljX2FyZyA9IHNhd21pbnVzID0gMTsKLQkgIHJsX2FyZ19zaWduID0gLTE7Ci0JfQorICAgICAgZWxzZSBpZiAoUkxfSVNTVEFURSAoUkxfU1RBVEVfQ0FMTEJBQ0spKQorICAgICAgICB7CisgICAgICAgICAgX3JsX2FyZ2N4dCB8PSBOVU1fUkVBRE9ORTsKKyAgICAgICAgICByZXR1cm4gMDsJLyogWFhYICovCisgICAgICAgIH0KICAgICAgIGVsc2UKIAl7Ci0JICAvKiBNYWtlIE0tLSBjb21tYW5kIGVxdWl2YWxlbnQgdG8gTS0tMSBjb21tYW5kLiAqLwotCSAgaWYgKHNhd21pbnVzICYmIHJsX251bWVyaWNfYXJnID09IDEgJiYgcmxfZXhwbGljaXRfYXJnID09IDApCi0JICAgIHJsX2V4cGxpY2l0X2FyZyA9IDE7CisJICBSTF9TRVRTVEFURShSTF9TVEFURV9NT1JFSU5QVVQpOworCSAga2V5ID0gcmxfcmVhZF9rZXkgKCk7CisJICBSTF9VTlNFVFNUQVRFKFJMX1NUQVRFX01PUkVJTlBVVCk7CiAJICBybF9yZXN0b3JlX3Byb21wdCAoKTsKIAkgIHJsX2NsZWFyX21lc3NhZ2UgKCk7CiAJICBSTF9VTlNFVFNUQVRFKFJMX1NUQVRFX05VTUVSSUNBUkcpOwpAQCAtMTUxLDM1ICsxNTAsOTYgQEAKIAl9CiAgICAgfQogCi0gIC8qTk9UUkVBQ0hFRCovCisgIGMgPSBVTk1FVEEgKGMpOworCisgIGlmIChfcmxfZGlnaXRfcCAoYykpCisgICAgeworICAgICAgciA9IF9ybF9kaWdpdF92YWx1ZSAoYyk7ICAgIAkKKyAgICAgIHJsX251bWVyaWNfYXJnID0gcmxfZXhwbGljaXRfYXJnID8gKHJsX251bWVyaWNfYXJnICogMTApICsgIHIgOiByOworICAgICAgcmxfZXhwbGljaXRfYXJnID0gMTsKKyAgICAgIF9ybF9hcmdjeHQgfD0gTlVNX1NBV0RJR0lUUzsKKyAgICB9CisgIGVsc2UgaWYgKGMgPT0gJy0nICYmIHJsX2V4cGxpY2l0X2FyZyA9PSAwKQorICAgIHsKKyAgICAgIHJsX251bWVyaWNfYXJnID0gMTsKKyAgICAgIF9ybF9hcmdjeHQgfD0gTlVNX1NBV01JTlVTOworICAgICAgcmxfYXJnX3NpZ24gPSAtMTsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICAvKiBNYWtlIE0tLSBjb21tYW5kIGVxdWl2YWxlbnQgdG8gTS0tMSBjb21tYW5kLiAqLworICAgICAgaWYgKChfcmxfYXJnY3h0ICYgTlVNX1NBV01JTlVTKSAmJiBybF9udW1lcmljX2FyZyA9PSAxICYmIHJsX2V4cGxpY2l0X2FyZyA9PSAwKQorCXJsX2V4cGxpY2l0X2FyZyA9IDE7CisgICAgICBybF9yZXN0b3JlX3Byb21wdCAoKTsKKyAgICAgIHJsX2NsZWFyX21lc3NhZ2UgKCk7CisgICAgICBSTF9VTlNFVFNUQVRFKFJMX1NUQVRFX05VTUVSSUNBUkcpOworCisgICAgICByID0gX3JsX2Rpc3BhdGNoIChrZXksIF9ybF9rZXltYXApOworICAgICAgaWYgKFJMX0lTU1RBVEUgKFJMX1NUQVRFX0NBTExCQUNLKSkKKwl7CisJICAvKiBBdCB3b3JzdCwgdGhpcyB3aWxsIGNhdXNlIGFuIGV4dHJhIHJlZGlzcGxheS4gIE90aGVyd2lzZSwKKwkgICAgIHdlIGhhdmUgdG8gd2FpdCB1bnRpbCB0aGUgbmV4dCBjaGFyYWN0ZXIgY29tZXMgaW4uICovCisJICBpZiAocmxfZG9uZSA9PSAwKQorCSAgICAoKnJsX3JlZGlzcGxheV9mdW5jdGlvbikgKCk7CisJICByID0gMDsKKwl9CisgICAgICByZXR1cm4gcjsKKyAgICB9CisKKyAgcmV0dXJuIDE7CiB9CiAKLS8qIEFkZCB0aGUgY3VycmVudCBkaWdpdCB0byB0aGUgYXJndW1lbnQgaW4gcHJvZ3Jlc3MuICovCisvKiBIYW5kbGUgQy11IHN0eWxlIG51bWVyaWMgYXJncywgYXMgd2VsbCBhcyBNLS0sIGFuZCBNLWRpZ2l0cy4gKi8KK3N0YXRpYyBpbnQKK3JsX2RpZ2l0X2xvb3AgKCkKK3sKKyAgaW50IGMsIHI7CisKKyAgd2hpbGUgKDEpCisgICAgeworICAgICAgaWYgKF9ybF9hcmdfb3ZlcmZsb3cgKCkpCisJcmV0dXJuIDE7CisKKyAgICAgIGMgPSBfcmxfYXJnX2dldGNoYXIgKCk7CisKKyAgICAgIGlmIChjIDwgMCkKKwl7CisJICBfcmxfYWJvcnRfaW50ZXJuYWwgKCk7CisJICByZXR1cm4gLTE7CisJfQorCisgICAgICByID0gX3JsX2FyZ19kaXNwYXRjaCAoX3JsX2FyZ2N4dCwgYyk7CisgICAgICBpZiAociA8PSAwIHx8IChSTF9JU1NUQVRFIChSTF9TVEFURV9OVU1FUklDQVJHKSA9PSAwKSkKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCisvKiBDcmVhdGUgYSBkZWZhdWx0IGFyZ3VtZW50LiAqLwordm9pZAorX3JsX3Jlc2V0X2FyZ3VtZW50ICgpCit7CisgIHJsX251bWVyaWNfYXJnID0gcmxfYXJnX3NpZ24gPSAxOworICBybF9leHBsaWNpdF9hcmcgPSAwOworICBfcmxfYXJnY3h0ID0gMDsKK30KKworLyogU3RhcnQgYSBudW1lcmljIGFyZ3VtZW50IHdpdGggaW5pdGlhbCB2YWx1ZSBLRVkgKi8KIGludAogcmxfZGlnaXRfYXJndW1lbnQgKGlnbm9yZSwga2V5KQogICAgICBpbnQgaWdub3JlLCBrZXk7CiB7Ci0gIHJsX2V4ZWN1dGVfbmV4dCAoa2V5KTsKLSAgcmV0dXJuIChybF9kaWdpdF9sb29wICgpKTsKLX0KLQotLyogV2hhdCB0byBkbyB3aGVuIHlvdSBhYm9ydCByZWFkaW5nIGFuIGFyZ3VtZW50LiAqLwotaW50Ci1ybF9kaXNjYXJkX2FyZ3VtZW50ICgpCi17Ci0gIHJsX2RpbmcgKCk7Ci0gIHJsX2NsZWFyX21lc3NhZ2UgKCk7Ci0gIF9ybF9pbml0X2FyZ3VtZW50ICgpOwotICByZXR1cm4gMDsKLX0KLQotLyogQ3JlYXRlIGEgZGVmYXVsdCBhcmd1bWVudC4gKi8KLWludAotX3JsX2luaXRfYXJndW1lbnQgKCkKLXsKLSAgcmxfbnVtZXJpY19hcmcgPSBybF9hcmdfc2lnbiA9IDE7Ci0gIHJsX2V4cGxpY2l0X2FyZyA9IDA7Ci0gIHJldHVybiAwOworICBfcmxfYXJnX2luaXQgKCk7CisgIGlmIChSTF9JU1NUQVRFIChSTF9TVEFURV9DQUxMQkFDSykpCisgICAgeworICAgICAgX3JsX2FyZ19kaXNwYXRjaCAoX3JsX2FyZ2N4dCwga2V5KTsKKyAgICAgIHJsX21lc3NhZ2UgKCIoYXJnOiAlZCkgIiwgcmxfYXJnX3NpZ24gKiBybF9udW1lcmljX2FyZyk7CisgICAgICByZXR1cm4gMDsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICBybF9leGVjdXRlX25leHQgKGtleSk7CisgICAgICByZXR1cm4gKHJsX2RpZ2l0X2xvb3AgKCkpOworICAgIH0KIH0KIAogLyogQy11LCB1bml2ZXJzYWwgYXJndW1lbnQuICBNdWx0aXBseSB0aGUgY3VycmVudCBhcmd1bWVudCBieSA0LgpAQCAtMTg5LDggKzI0OSw0MyBAQAogcmxfdW5pdmVyc2FsX2FyZ3VtZW50IChjb3VudCwga2V5KQogICAgICBpbnQgY291bnQsIGtleTsKIHsKKyAgX3JsX2FyZ19pbml0ICgpOwogICBybF9udW1lcmljX2FyZyAqPSA0OwotICByZXR1cm4gKHJsX2RpZ2l0X2xvb3AgKCkpOworCisgIHJldHVybiAoUkxfSVNTVEFURSAoUkxfU1RBVEVfQ0FMTEJBQ0spID8gMCA6IHJsX2RpZ2l0X2xvb3AgKCkpOworfQorCitpbnQKK19ybF9hcmdfY2FsbGJhY2sgKGN4dCkKKyAgICAgX3JsX2FyZ19jeHQgY3h0OworeworICBpbnQgYywgcjsKKworICBjID0gX3JsX2FyZ19nZXRjaGFyICgpOworCisgIGlmIChfcmxfYXJnY3h0ICYgTlVNX1JFQURPTkUpCisgICAgeworICAgICAgX3JsX2FyZ2N4dCAmPSB+TlVNX1JFQURPTkU7CisgICAgICBybF9yZXN0b3JlX3Byb21wdCAoKTsKKyAgICAgIHJsX2NsZWFyX21lc3NhZ2UgKCk7CisgICAgICBSTF9VTlNFVFNUQVRFKFJMX1NUQVRFX05VTUVSSUNBUkcpOworICAgICAgcmxfZXhlY3V0ZV9uZXh0IChjKTsKKyAgICAgIHJldHVybiAwOworICAgIH0KKworICByID0gX3JsX2FyZ19kaXNwYXRjaCAoY3h0LCBjKTsKKyAgcmV0dXJuIChyICE9IDEpOworfQorCisvKiBXaGF0IHRvIGRvIHdoZW4geW91IGFib3J0IHJlYWRpbmcgYW4gYXJndW1lbnQuICovCitpbnQKK3JsX2Rpc2NhcmRfYXJndW1lbnQgKCkKK3sKKyAgcmxfZGluZyAoKTsKKyAgcmxfY2xlYXJfbWVzc2FnZSAoKTsKKyAgX3JsX3Jlc2V0X2FyZ3VtZW50ICgpOworCisgIHJldHVybiAwOwogfQogCiAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCkBAIC0yMjUsOCArMzIwLDEwIEBACiB7CiAgIGlmIChlbnRyeSA9PSAwKQogICAgIHJldHVybjsKLSAgaWYgKGVudHJ5LT5saW5lKQotICAgIGZyZWUgKGVudHJ5LT5saW5lKTsKKworICBGUkVFIChlbnRyeS0+bGluZSk7CisgIEZSRUUgKGVudHJ5LT50aW1lc3RhbXApOworCiAgIGZyZWUgKGVudHJ5KTsKIH0KIApAQCAtMjQyLDYgKzMzOSw3IEBACiAgICAgewogICAgICAgdGVtcCA9IHJlcGxhY2VfaGlzdG9yeV9lbnRyeSAod2hlcmVfaGlzdG9yeSAoKSwgcmxfbGluZV9idWZmZXIsIChoaXN0ZGF0YV90KXJsX3VuZG9fbGlzdCk7CiAgICAgICBmcmVlICh0ZW1wLT5saW5lKTsKKyAgICAgIEZSRUUgKHRlbXAtPnRpbWVzdGFtcCk7CiAgICAgICBmcmVlICh0ZW1wKTsKICAgICB9CiAgIHJldHVybiAwOwpAQCAtMjUzLDYgKzM1MSw4IEBACiB7CiAgIGlmIChfcmxfc2F2ZWRfbGluZV9mb3JfaGlzdG9yeSkKICAgICB7CisgICAgICAvKiBDYW4ndCBjYWxsIHdpdGggYDEnIGJlY2F1c2UgcmxfdW5kb19saXN0IG1pZ2h0IHBvaW50IHRvIGFuIHVuZG8KKwkgbGlzdCBmcm9tIGEgaGlzdG9yeSBlbnRyeSwgYXMgaW4gcmxfcmVwbGFjZV9mcm9tX2hpc3RvcnkoKSBiZWxvdy4gKi8KICAgICAgIHJsX3JlcGxhY2VfbGluZSAoX3JsX3NhdmVkX2xpbmVfZm9yX2hpc3RvcnktPmxpbmUsIDApOwogICAgICAgcmxfdW5kb19saXN0ID0gKFVORE9fTElTVCAqKV9ybF9zYXZlZF9saW5lX2Zvcl9oaXN0b3J5LT5kYXRhOwogICAgICAgX3JsX2ZyZWVfaGlzdG9yeV9lbnRyeSAoX3JsX3NhdmVkX2xpbmVfZm9yX2hpc3RvcnkpOwpAQCAtMjcyLDggKzM3MiwxMCBAQAogICAgIHsKICAgICAgIF9ybF9zYXZlZF9saW5lX2Zvcl9oaXN0b3J5ID0gKEhJU1RfRU5UUlkgKil4bWFsbG9jIChzaXplb2YgKEhJU1RfRU5UUlkpKTsKICAgICAgIF9ybF9zYXZlZF9saW5lX2Zvcl9oaXN0b3J5LT5saW5lID0gc2F2ZXN0cmluZyAocmxfbGluZV9idWZmZXIpOworICAgICAgX3JsX3NhdmVkX2xpbmVfZm9yX2hpc3RvcnktPnRpbWVzdGFtcCA9IChjaGFyICopTlVMTDsKICAgICAgIF9ybF9zYXZlZF9saW5lX2Zvcl9oaXN0b3J5LT5kYXRhID0gKGNoYXIgKilybF91bmRvX2xpc3Q7CiAgICAgfQorCiAgIHJldHVybiAwOwogfQogCkBAIC0yOTgsNyArNDAwLDcgQEAKICAgICBybF9wb2ludCA9IHJsX2VuZDsKIAogI2lmIGRlZmluZWQgKFZJX01PREUpCi0gIGlmIChybF9lZGl0aW5nX21vZGUgPT0gdmlfbW9kZSkKKyAgaWYgKHJsX2VkaXRpbmdfbW9kZSA9PSB2aV9tb2RlICYmIF9ybF9rZXltYXAgIT0gdmlfaW5zZXJ0aW9uX2tleW1hcCkKICAgICBybF9wb2ludCA9IDA7CiAjZW5kaWYgLyogVklfTU9ERSAqLwogCkBAIC0zMTEsNiArNDEzLDggQEAKICAgICAgSElTVF9FTlRSWSAqZW50cnk7CiAgICAgIGludCBmbGFnczsJCQkvKiBjdXJyZW50bHkgdW51c2VkICovCiB7CisgIC8qIENhbid0IGNhbGwgd2l0aCBgMScgYmVjYXVzZSBybF91bmRvX2xpc3QgbWlnaHQgcG9pbnQgdG8gYW4gdW5kbyBsaXN0CisgICAgIGZyb20gYSBoaXN0b3J5IGVudHJ5LCBqdXN0IGxpa2Ugd2UncmUgc2V0dGluZyB1cCBoZXJlLiAqLwogICBybF9yZXBsYWNlX2xpbmUgKGVudHJ5LT5saW5lLCAwKTsKICAgcmxfdW5kb19saXN0ID0gKFVORE9fTElTVCAqKWVudHJ5LT5kYXRhOwogICBybF9wb2ludCA9IHJsX2VuZDsKQEAgLTQzNSw2ICs1MzksNyBAQAogICAgICAgcmxfcmVwbGFjZV9mcm9tX2hpc3RvcnkgKHRlbXAsIDApOwogICAgICAgX3JsX2hpc3Rvcnlfc2V0X3BvaW50ICgpOwogICAgIH0KKwogICByZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvbmxzLmMgYi9yZWFkbGluZS9ubHMuYwppbmRleCA3MDZjODE5Li5iY2VlODc1IDEwMDY0NAotLS0gYS9yZWFkbGluZS9ubHMuYworKysgYi9yZWFkbGluZS9ubHMuYwpAQCAtNzUsNiArNzUsMjMgQEAKIHN0YXRpYyBjaGFyICpmaW5kX2NvZGVzZXQgUEFSQU1TKChjaGFyICosIHNpemVfdCAqKSk7CiAjZW5kaWYgLyogIUhBVkVfU0VUTE9DQUxFICovCiAKK3N0YXRpYyBjaGFyICpfcmxfZ2V0X2xvY2FsZV92YXIgUEFSQU1TKChjb25zdCBjaGFyICopKTsKKworc3RhdGljIGNoYXIgKgorX3JsX2dldF9sb2NhbGVfdmFyICh2KQorICAgICBjb25zdCBjaGFyICp2OworeworICBjaGFyICpsc3BlYzsKKworICBsc3BlYyA9IHNoX2dldF9lbnZfdmFsdWUgKCJMQ19BTEwiKTsKKyAgaWYgKGxzcGVjID09IDAgfHwgKmxzcGVjID09IDApCisgICAgbHNwZWMgPSBzaF9nZXRfZW52X3ZhbHVlICh2KTsKKyAgaWYgKGxzcGVjID09IDAgfHwgKmxzcGVjID09IDApCisgICAgbHNwZWMgPSBzaF9nZXRfZW52X3ZhbHVlICgiTEFORyIpOworCisgIHJldHVybiBsc3BlYzsKK30KKyAgCiAvKiBDaGVjayBmb3IgTENfQUxMLCBMQ19DVFlQRSwgYW5kIExBTkcgYW5kIHVzZSB0aGUgZmlyc3Qgd2l0aCBhIHZhbHVlCiAgICB0byBkZWNpZGUgdGhlIGRlZmF1bHRzIGZvciA4LWJpdCBjaGFyYWN0ZXIgaW5wdXQgYW5kIG91dHB1dC4gIFJldHVybnMKICAgIDEgaWYgd2Ugc2V0IGVpZ2h0LWJpdCBtb2RlLiAqLwpAQCAtODQsMTAgKzEwMSwyMSBAQAogLyogSWYgd2UgaGF2ZSBzZXRsb2NhbGUoMyksIGp1c3QgY2hlY2sgdGhlIGN1cnJlbnQgTENfQ1RZUEUgY2F0ZWdvcnkKICAgIHZhbHVlLCBhbmQgZ28gaW50byBlaWdodC1iaXQgbW9kZSBpZiBpdCdzIG5vdCBDIG9yIFBPU0lYLiAqLwogI2lmIGRlZmluZWQgKEhBVkVfU0VUTE9DQUxFKQotICBjaGFyICp0OworICBjaGFyICpsc3BlYywgKnQ7CiAKICAgLyogU2V0IHRoZSBMQ19DVFlQRSBsb2NhbGUgY2F0ZWdvcnkgZnJvbSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuICovCi0gIHQgPSBzZXRsb2NhbGUgKExDX0NUWVBFLCAiIik7CisgIGxzcGVjID0gX3JsX2dldF9sb2NhbGVfdmFyICgiTENfQ1RZUEUiKTsKKyAgLyogU2luY2UgX3JsX2dldF9sb2NhbGVfdmFyIHF1ZXJpZXMgdGhlIHJpZ2h0IGVudmlyb25tZW50IHZhcmlhYmxlcywKKyAgICAgd2UgcXVlcnkgdGhlIGN1cnJlbnQgbG9jYWxlIHNldHRpbmdzIHdpdGggc2V0bG9jYWxlKCksIGFuZCwgaWYKKyAgICAgdGhhdCBkb2Vzbid0IHJldHVybiBhbnl0aGluZywgd2Ugc2V0IGxzcGVjIHRvIHRoZSBlbXB0eSBzdHJpbmcgdG8KKyAgICAgZm9yY2UgdGhlIHN1YnNlcXVlbnQgY2FsbCB0byBzZXRsb2NhbGUoKSB0byBkZWZpbmUgdGhlIGBuYXRpdmUnCisgICAgIGVudmlyb25tZW50LiAqLworICBpZiAobHNwZWMgPT0gMCB8fCAqbHNwZWMgPT0gMCkKKyAgICBsc3BlYyA9IHNldGxvY2FsZSAoTENfQ1RZUEUsIChjaGFyICopTlVMTCk7CisgIGlmIChsc3BlYyA9PSAwKQorICAgIGxzcGVjID0gIiI7CisgIHQgPSBzZXRsb2NhbGUgKExDX0NUWVBFLCBsc3BlYyk7CisKICAgaWYgKHQgJiYgKnQgJiYgKHRbMF0gIT0gJ0MnIHx8IHRbMV0pICYmIChTVFJFUSAodCwgIlBPU0lYIikgPT0gMCkpCiAgICAgewogICAgICAgX3JsX21ldGFfZmxhZyA9IDE7CkBAIC0xMDUsOSArMTMzLDggQEAKICAgLyogV2UgZG9uJ3QgaGF2ZSBzZXRsb2NhbGUuICBGaW5lc3NlIGl0LiAgQ2hlY2sgdGhlIGVudmlyb25tZW50IGZvciB0aGUKICAgICAgYXBwcm9wcmlhdGUgdmFyaWFibGVzIGFuZCBzZXQgZWlnaHQtYml0IG1vZGUgaWYgdGhleSBoYXZlIHRoZSByaWdodAogICAgICB2YWx1ZXMuICovCi0gIGxzcGVjID0gc2hfZ2V0X2Vudl92YWx1ZSAoIkxDX0FMTCIpOwotICBpZiAobHNwZWMgPT0gMCkgbHNwZWMgPSBzaF9nZXRfZW52X3ZhbHVlICgiTENfQ1RZUEUiKTsKLSAgaWYgKGxzcGVjID09IDApIGxzcGVjID0gc2hfZ2V0X2Vudl92YWx1ZSAoIkxBTkciKTsKKyAgbHNwZWMgPSBfcmxfZ2V0X2xvY2FsZV92YXIgKCJMQ19DVFlQRSIpOworCiAgIGlmIChsc3BlYyA9PSAwIHx8ICh0ID0gbm9ybWFsaXplX2NvZGVzZXQgKGxzcGVjKSkgPT0gMCkKICAgICByZXR1cm4gKDApOwogICBmb3IgKGkgPSAwOyB0ICYmIGxlZ2FsX2xhbmdfdmFsdWVzW2ldOyBpKyspCmRpZmYgLS1naXQgYS9yZWFkbGluZS9wYXJlbnMuYyBiL3JlYWRsaW5lL3BhcmVucy5jCmluZGV4IDU0ZWYxZjMuLjczN2Y3NjcgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL3BhcmVucy5jCisrKyBiL3JlYWRsaW5lL3BhcmVucy5jCkBAIC0yMSw2ICsyMSwxMCBAQAogICAgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEgVVNBLiAqLwogI2RlZmluZSBSRUFETElORV9MSUJSQVJZCiAKKyNpZiBkZWZpbmVkIChfX1RBTkRFTSkKKyMgIGluY2x1ZGUgPGZsb3NzLmg+CisjZW5kaWYKKwogI2luY2x1ZGUgInJsY29uZi5oIgogCiAjaWYgZGVmaW5lZCAoSEFWRV9DT05GSUdfSCkKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL3Bvc2l4ZGlyLmggYi9yZWFkbGluZS9wb3NpeGRpci5oCmluZGV4IDUwNWUyNzkuLjkxZjZkOTYgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL3Bvc2l4ZGlyLmgKKysrIGIvcmVhZGxpbmUvcG9zaXhkaXIuaApAQCAtMjUsNyArMjUsMTEgQEAKIAogI2lmIGRlZmluZWQgKEhBVkVfRElSRU5UX0gpCiAjICBpbmNsdWRlIDxkaXJlbnQuaD4KLSMgIGRlZmluZSBEX05BTUxFTihkKSAgIChzdHJsZW4gKChkKS0+ZF9uYW1lKSkKKyMgIGlmIGRlZmluZWQgKEhBVkVfU1RSVUNUX0RJUkVOVF9EX05BTUxFTikKKyMgICAgZGVmaW5lIERfTkFNTEVOKGQpCSgoZCktPmRfbmFtbGVuKQorIyAgZWxzZQorIyAgICBkZWZpbmUgRF9OQU1MRU4oZCkgICAoc3RybGVuICgoZCktPmRfbmFtZSkpCisjICBlbmRpZiAvKiAhSEFWRV9TVFJVQ1RfRElSRU5UX0RfTkFNTEVOICovCiAjZWxzZQogIyAgaWYgZGVmaW5lZCAoSEFWRV9TWVNfTkRJUl9IKQogIyAgICBpbmNsdWRlIDxzeXMvbmRpci5oPgpAQCAtNDIsMTEgKzQ2LDExIEBACiAjICBkZWZpbmUgRF9OQU1MRU4oZCkgICAoKGQpLT5kX25hbWxlbikKICNlbmRpZiAvKiAhSEFWRV9ESVJFTlRfSCAqLwogCi0jaWYgZGVmaW5lZCAoU1RSVUNUX0RJUkVOVF9IQVNfRF9JTk8pICYmICFkZWZpbmVkIChTVFJVQ1RfRElSRU5UX0hBU19EX0ZJTEVOTykKKyNpZiBkZWZpbmVkIChIQVZFX1NUUlVDVF9ESVJFTlRfRF9JTk8pICYmICFkZWZpbmVkIChIQVZFX1NUUlVDVF9ESVJFTlRfRF9GSUxFTk8pCiAjICBkZWZpbmUgZF9maWxlbm8gZF9pbm8KICNlbmRpZgogCi0jaWYgZGVmaW5lZCAoX1BPU0lYX1NPVVJDRSkgJiYgKCFkZWZpbmVkIChTVFJVQ1RfRElSRU5UX0hBU19EX0lOTykgfHwgZGVmaW5lZCAoQlJPS0VOX0RJUkVOVF9EX0lOTykpCisjaWYgZGVmaW5lZCAoX1BPU0lYX1NPVVJDRSkgJiYgKCFkZWZpbmVkIChIQVZFX1NUUlVDVF9ESVJFTlRfRF9JTk8pIHx8IGRlZmluZWQgKEJST0tFTl9ESVJFTlRfRF9JTk8pKQogLyogUG9zaXggZG9lcyBub3QgcmVxdWlyZSB0aGF0IHRoZSBkX2lubyBmaWVsZCBiZSBwcmVzZW50LCBhbmQgc29tZQogICAgc3lzdGVtcyBkbyBub3QgcHJvdmlkZSBpdC4gKi8KICMgIGRlZmluZSBSRUFMX0RJUl9FTlRSWShkcCkgMQpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvcmVhZGxpbmUuYyBiL3JlYWRsaW5lL3JlYWRsaW5lLmMKaW5kZXggMjg4MDFmMS4uNWU5NzY3YSAxMDA2NDQKLS0tIGEvcmVhZGxpbmUvcmVhZGxpbmUuYworKysgYi9yZWFkbGluZS9yZWFkbGluZS5jCkBAIC0xLDcgKzEsNyBAQAogLyogcmVhZGxpbmUuYyAtLSBhIGdlbmVyYWwgZmFjaWxpdHkgZm9yIHJlYWRpbmcgbGluZXMgb2YgaW5wdXQKICAgIHdpdGggZW1hY3Mgc3R5bGUgZWRpdGluZyBhbmQgY29tcGxldGlvbi4gKi8KIAotLyogQ29weXJpZ2h0IChDKSAxOTg3LTIwMDIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisvKiBDb3B5cmlnaHQgKEMpIDE5ODctMjAwNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBSZWFkbGluZSBMaWJyYXJ5LCBhIGxpYnJhcnkgZm9yCiAgICByZWFkaW5nIGxpbmVzIG9mIHRleHQgd2l0aCBpbnRlcmFjdGl2ZSBpbnB1dCBhbmQgaGlzdG9yeSBlZGl0aW5nLgpAQCAtNjgsMTEgKzY4LDExIEBACiAjaW5jbHVkZSAieG1hbGxvYy5oIgogCiAjaWZuZGVmIFJMX0xJQlJBUllfVkVSU0lPTgotIyAgZGVmaW5lIFJMX0xJQlJBUllfVkVSU0lPTiAiNC4zIgorIyAgZGVmaW5lIFJMX0xJQlJBUllfVkVSU0lPTiAiNS4xIgogI2VuZGlmCiAKICNpZm5kZWYgUkxfUkVBRExJTkVfVkVSU0lPTgotIyAgZGVmaW5lIFJMX1JFQURMSU5FX1ZFUlNJT04JMHgwNDAzCisjICBkZWZpbmUgUkxfUkVBRExJTkVfVkVSU0lPTgkweDA1MDEKICNlbmRpZgogCiBleHRlcm4gdm9pZCBfcmxfZnJlZV9oaXN0b3J5X2VudHJ5IFBBUkFNUygoSElTVF9FTlRSWSAqKSk7CkBAIC04NSw2ICs4NSwxMCBAQAogc3RhdGljIHZvaWQgYmluZF9hcnJvd19rZXlzIFBBUkFNUygodm9pZCkpOwogCiBzdGF0aWMgdm9pZCByZWFkbGluZV9kZWZhdWx0X2JpbmRpbmdzIFBBUkFNUygodm9pZCkpOworc3RhdGljIHZvaWQgcmVzZXRfZGVmYXVsdF9iaW5kaW5ncyBQQVJBTVMoKHZvaWQpKTsKKworc3RhdGljIGludCBfcmxfc3Vic2VxX3Jlc3VsdCBQQVJBTVMoKGludCwgS2V5bWFwLCBpbnQsIGludCkpOworc3RhdGljIGludCBfcmxfc3Vic2VxX2dldGNoYXIgUEFSQU1TKChpbnQpKTsKIAogLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLwogLyoJCQkJCQkJCSAgICAqLwpAQCAtMTAzLDYgKzEwNyw3IEBACiAgICBCeSBkZWZhdWx0LCBpdCBpcyB0aGUgc3RhbmRhcmQgZW1hY3Mga2V5bWFwLiAqLwogS2V5bWFwIF9ybF9rZXltYXAgPSBlbWFjc19zdGFuZGFyZF9rZXltYXA7CiAKKwogLyogVGhlIGN1cnJlbnQgc3R5bGUgb2YgZWRpdGluZy4gKi8KIGludCBybF9lZGl0aW5nX21vZGUgPSBlbWFjc19tb2RlOwogCkBAIC0yMTgsNiArMjIzLDkgQEAKIC8qIEtleW1hcCBob2xkaW5nIHRoZSBmdW5jdGlvbiBjdXJyZW50bHkgYmVpbmcgZXhlY3V0ZWQuICovCiBLZXltYXAgcmxfZXhlY3V0aW5nX2tleW1hcDsKIAorLyogS2V5bWFwIHdlJ3JlIGN1cnJlbnRseSB1c2luZyB0byBkaXNwYXRjaC4gKi8KK0tleW1hcCBfcmxfZGlzcGF0Y2hpbmdfa2V5bWFwOworCiAvKiBOb24temVybyBtZWFucyB0byBlcmFzZSBlbnRpcmUgbGluZSwgaW5jbHVkaW5nIHByb21wdCwgb24gZW1wdHkgaW5wdXQgbGluZXMuICovCiBpbnQgcmxfZXJhc2VfZW1wdHlfbGluZSA9IDA7CiAKQEAgLTIyOSw2ICsyMzcsOSBAQAogY2hhciAqcmxfbGluZV9idWZmZXIgPSAoY2hhciAqKU5VTEw7CiBpbnQgcmxfbGluZV9idWZmZXJfbGVuID0gMDsKIAorLyogS2V5IHNlcXVlbmNlIGBjb250ZXh0cycgKi8KK19ybF9rZXlzZXFfY3h0ICpfcmxfa3NjeHQgPSAwOworCiAvKiBGb3J3YXJkIGRlY2xhcmF0aW9ucyB1c2VkIGJ5IHRoZSBkaXNwbGF5LCB0ZXJtY2FwLCBhbmQgaGlzdG9yeSBjb2RlLiAqLwogCiAvKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovCkBAIC0yNTAsNiArMjYxLDEwIEBACiAgICByYXRoZXIgdGhhbiBhcyBhIG1ldGEtcHJlZml4ZWQgZXNjYXBlIHNlcXVlbmNlLiAqLwogaW50IF9ybF9vdXRwdXRfbWV0YV9jaGFycyA9IDA7CiAKKy8qIE5vbi16ZXJvIG1lYW5zIHRvIGxvb2sgYXQgdGhlIHRlcm1pb3Mgc3BlY2lhbCBjaGFyYWN0ZXJzIGFuZCBiaW5kCisgICB0aGVtIHRvIGVxdWl2YWxlbnQgcmVhZGxpbmUgZnVuY3Rpb25zIGF0IHN0YXJ0dXAuICovCitpbnQgX3JsX2JpbmRfc3R0eV9jaGFycyA9IDE7CisKIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KIC8qCQkJCQkJCQkgICAgKi8KIC8qCQkJVG9wIExldmVsIEZ1bmN0aW9ucwkJCSAgICAqLwpAQCAtMjkwLDE0ICszMDUsMTYgQEAKICAgcmxfc2V0X3Byb21wdCAocHJvbXB0KTsKIAogICBybF9pbml0aWFsaXplICgpOwotICAoKnJsX3ByZXBfdGVybV9mdW5jdGlvbikgKF9ybF9tZXRhX2ZsYWcpOworICBpZiAocmxfcHJlcF90ZXJtX2Z1bmN0aW9uKQorICAgICgqcmxfcHJlcF90ZXJtX2Z1bmN0aW9uKSAoX3JsX21ldGFfZmxhZyk7CiAKICNpZiBkZWZpbmVkIChIQU5ETEVfU0lHTkFMUykKICAgcmxfc2V0X3NpZ25hbHMgKCk7CiAjZW5kaWYKIAogICB2YWx1ZSA9IHJlYWRsaW5lX2ludGVybmFsICgpOwotICAoKnJsX2RlcHJlcF90ZXJtX2Z1bmN0aW9uKSAoKTsKKyAgaWYgKHJsX2RlcHJlcF90ZXJtX2Z1bmN0aW9uKQorICAgICgqcmxfZGVwcmVwX3Rlcm1fZnVuY3Rpb24pICgpOwogCiAjaWYgZGVmaW5lZCAoSEFORExFX1NJR05BTFMpCiAgIHJsX2NsZWFyX3NpZ25hbHMgKCk7CkBAIC0zNDcsNyArMzY0LDcgQEAKIAogI2lmIGRlZmluZWQgKFZJX01PREUpCiAgIGlmIChybF9lZGl0aW5nX21vZGUgPT0gdmlfbW9kZSkKLSAgICBybF92aV9pbnNlcnRpb25fbW9kZSAoMSwgMCk7CisgICAgcmxfdmlfaW5zZXJ0aW9uX21vZGUgKDEsICdpJyk7CiAjZW5kaWYgLyogVklfTU9ERSAqLwogCiAgIGlmIChybF9wcmVfaW5wdXRfaG9vaykKQEAgLTM4Nyw2ICs0MDQsMzYgQEAKICAgcmV0dXJuIChlb2YgPyAoY2hhciAqKU5VTEwgOiBzYXZlc3RyaW5nICh0aGVfbGluZSkpOwogfQogCit2b2lkCitfcmxfaW50ZXJuYWxfY2hhcl9jbGVhbnVwICgpCit7CisjaWYgZGVmaW5lZCAoVklfTU9ERSkKKyAgLyogSW4gdmkgbW9kZSwgd2hlbiB5b3UgZXhpdCBpbnNlcnQgbW9kZSwgdGhlIGN1cnNvciBtb3ZlcyBiYWNrCisgICAgIG92ZXIgdGhlIHByZXZpb3VzIGNoYXJhY3Rlci4gIFdlIGV4cGxpY2l0bHkgY2hlY2sgZm9yIHRoYXQgaGVyZS4gKi8KKyAgaWYgKHJsX2VkaXRpbmdfbW9kZSA9PSB2aV9tb2RlICYmIF9ybF9rZXltYXAgPT0gdmlfbW92ZW1lbnRfa2V5bWFwKQorICAgIHJsX3ZpX2NoZWNrICgpOworI2VuZGlmIC8qIFZJX01PREUgKi8KKworICBpZiAocmxfbnVtX2NoYXJzX3RvX3JlYWQgJiYgcmxfZW5kID49IHJsX251bV9jaGFyc190b19yZWFkKQorICAgIHsKKyAgICAgICgqcmxfcmVkaXNwbGF5X2Z1bmN0aW9uKSAoKTsKKyAgICAgIF9ybF93YW50X3JlZGlzcGxheSA9IDA7CisgICAgICBybF9uZXdsaW5lICgxLCAnXG4nKTsKKyAgICB9CisKKyAgaWYgKHJsX2RvbmUgPT0gMCkKKyAgICB7CisgICAgICAoKnJsX3JlZGlzcGxheV9mdW5jdGlvbikgKCk7CisgICAgICBfcmxfd2FudF9yZWRpc3BsYXkgPSAwOworICAgIH0KKworICAvKiBJZiB0aGUgYXBwbGljYXRpb24gd3JpdGVyIGhhcyB0b2xkIHVzIHRvIGVyYXNlIHRoZSBlbnRpcmUgbGluZSBpZgorICAgICB0aGUgb25seSBjaGFyYWN0ZXIgdHlwZWQgd2FzIHNvbWV0aGluZyBib3VuZCB0byBybF9uZXdsaW5lLCBkbyBzby4gKi8KKyAgaWYgKHJsX2VyYXNlX2VtcHR5X2xpbmUgJiYgcmxfZG9uZSAmJiBybF9sYXN0X2Z1bmMgPT0gcmxfbmV3bGluZSAmJgorICAgICAgcmxfcG9pbnQgPT0gMCAmJiBybF9lbmQgPT0gMCkKKyAgICBfcmxfZXJhc2VfZW50aXJlX2xpbmUgKCk7Cit9CisKIFNUQVRJQ19DQUxMQkFDSyBpbnQKICNpZiBkZWZpbmVkIChSRUFETElORV9DQUxMQkFDS1MpCiByZWFkbGluZV9pbnRlcm5hbF9jaGFyICgpCkBAIC00MDksMTIgKzQ1NiwyMSBAQAogICAgICAgY29kZSA9IHNldGptcCAocmVhZGxpbmVfdG9wX2xldmVsKTsKIAogICAgICAgaWYgKGNvZGUpCi0JKCpybF9yZWRpc3BsYXlfZnVuY3Rpb24pICgpOworCXsKKwkgICgqcmxfcmVkaXNwbGF5X2Z1bmN0aW9uKSAoKTsKKwkgIF9ybF93YW50X3JlZGlzcGxheSA9IDA7CisJICAvKiBJZiB3ZSBnZXQgaGVyZSwgd2UncmUgbm90IGJlaW5nIGNhbGxlZCBmcm9tIHNvbWV0aGluZyBkaXNwYXRjaGVkCisJICAgICBmcm9tIF9ybF9jYWxsYmFja19yZWFkX2NoYXIoKSwgd2hpY2ggc2V0cyB1cCBpdHMgb3duIHZhbHVlIG9mCisJICAgICByZWFkbGluZV90b3BfbGV2ZWwgKHNhdmluZyBhbmQgcmVzdG9yaW5nIHRoZSBvbGQsIG9mIGNvdXJzZSksIHNvCisJICAgICB3ZSBjYW4ganVzdCByZXR1cm4gaGVyZS4gKi8KKwkgIGlmIChSTF9JU1NUQVRFIChSTF9TVEFURV9DQUxMQkFDSykpCisJICAgIHJldHVybiAoMCk7CisJfQogCiAgICAgICBpZiAocmxfcGVuZGluZ19pbnB1dCA9PSAwKQogCXsKIAkgIC8qIFRoZW4gaW5pdGlhbGl6ZSB0aGUgYXJndW1lbnQgYW5kIG51bWJlciBvZiBrZXlzIHJlYWQuICovCi0JICBfcmxfaW5pdF9hcmd1bWVudCAoKTsKKwkgIF9ybF9yZXNldF9hcmd1bWVudCAoKTsKIAkgIHJsX2tleV9zZXF1ZW5jZV9sZW5ndGggPSAwOwogCX0KIApAQCAtNDQ4LDI3ICs1MDQsNyBAQAogICAgICAgaWYgKHJsX3BlbmRpbmdfaW5wdXQgPT0gMCAmJiBsayA9PSBfcmxfbGFzdF9jb21tYW5kX3dhc19raWxsKQogCV9ybF9sYXN0X2NvbW1hbmRfd2FzX2tpbGwgPSAwOwogCi0jaWYgZGVmaW5lZCAoVklfTU9ERSkKLSAgICAgIC8qIEluIHZpIG1vZGUsIHdoZW4geW91IGV4aXQgaW5zZXJ0IG1vZGUsIHRoZSBjdXJzb3IgbW92ZXMgYmFjawotCSBvdmVyIHRoZSBwcmV2aW91cyBjaGFyYWN0ZXIuICBXZSBleHBsaWNpdGx5IGNoZWNrIGZvciB0aGF0IGhlcmUuICovCi0gICAgICBpZiAocmxfZWRpdGluZ19tb2RlID09IHZpX21vZGUgJiYgX3JsX2tleW1hcCA9PSB2aV9tb3ZlbWVudF9rZXltYXApCi0JcmxfdmlfY2hlY2sgKCk7Ci0jZW5kaWYgLyogVklfTU9ERSAqLwotCi0gICAgICBpZiAocmxfbnVtX2NoYXJzX3RvX3JlYWQgJiYgcmxfZW5kID49IHJsX251bV9jaGFyc190b19yZWFkKQotICAgICAgICB7Ci0gICAgICAgICAgKCpybF9yZWRpc3BsYXlfZnVuY3Rpb24pICgpOwotICAgICAgICAgIHJsX25ld2xpbmUgKDEsICdcbicpOwotICAgICAgICB9Ci0KLSAgICAgIGlmIChybF9kb25lID09IDApCi0JKCpybF9yZWRpc3BsYXlfZnVuY3Rpb24pICgpOwotCi0gICAgICAvKiBJZiB0aGUgYXBwbGljYXRpb24gd3JpdGVyIGhhcyB0b2xkIHVzIHRvIGVyYXNlIHRoZSBlbnRpcmUgbGluZSBpZgotCSAgdGhlIG9ubHkgY2hhcmFjdGVyIHR5cGVkIHdhcyBzb21ldGhpbmcgYm91bmQgdG8gcmxfbmV3bGluZSwgZG8gc28uICovCi0gICAgICBpZiAocmxfZXJhc2VfZW1wdHlfbGluZSAmJiBybF9kb25lICYmIHJsX2xhc3RfZnVuYyA9PSBybF9uZXdsaW5lICYmCi0JICBybF9wb2ludCA9PSAwICYmIHJsX2VuZCA9PSAwKQotCV9ybF9lcmFzZV9lbnRpcmVfbGluZSAoKTsKKyAgICAgIF9ybF9pbnRlcm5hbF9jaGFyX2NsZWFudXAgKCk7CiAKICNpZiBkZWZpbmVkIChSRUFETElORV9DQUxMQkFDS1MpCiAgICAgICByZXR1cm4gMDsKQEAgLTUxOCw2ICs1NTQsMTA3IEBACiAgIHRoZV9saW5lID0gcmxfbGluZV9idWZmZXI7CiB9CiAKKyNpZiBkZWZpbmVkIChSRUFETElORV9DQUxMQkFDS1MpCitfcmxfa2V5c2VxX2N4dCAqCitfcmxfa2V5c2VxX2N4dF9hbGxvYyAoKQoreworICBfcmxfa2V5c2VxX2N4dCAqY3h0OworCisgIGN4dCA9IChfcmxfa2V5c2VxX2N4dCAqKXhtYWxsb2MgKHNpemVvZiAoX3JsX2tleXNlcV9jeHQpKTsKKworICBjeHQtPmZsYWdzID0gY3h0LT5zdWJzZXFfYXJnID0gY3h0LT5zdWJzZXFfcmV0dmFsID0gMDsKKworICBjeHQtPm9rZXkgPSAwOworICBjeHQtPm9jeHQgPSBfcmxfa3NjeHQ7CisgIGN4dC0+Y2hpbGR2YWwgPSA0MjsJCS8qIHNlbnRpbmVsIHZhbHVlICovCisKKyAgcmV0dXJuIGN4dDsKK30KKwordm9pZAorX3JsX2tleXNlcV9jeHRfZGlzcG9zZSAoY3h0KQorICAgIF9ybF9rZXlzZXFfY3h0ICpjeHQ7Cit7CisgIGZyZWUgKGN4dCk7Cit9CisKK3ZvaWQKK19ybF9rZXlzZXFfY2hhaW5fZGlzcG9zZSAoKQoreworICBfcmxfa2V5c2VxX2N4dCAqY3h0OworCisgIHdoaWxlIChfcmxfa3NjeHQpCisgICAgeworICAgICAgY3h0ID0gX3JsX2tzY3h0OworICAgICAgX3JsX2tzY3h0ID0gX3JsX2tzY3h0LT5vY3h0OworICAgICAgX3JsX2tleXNlcV9jeHRfZGlzcG9zZSAoY3h0KTsKKyAgICB9Cit9CisjZW5kaWYKKworc3RhdGljIGludAorX3JsX3N1YnNlcV9nZXRjaGFyIChrZXkpCisgICAgIGludCBrZXk7Cit7CisgIGludCBrOworCisgIGlmIChrZXkgPT0gRVNDKQorICAgIFJMX1NFVFNUQVRFKFJMX1NUQVRFX01FVEFORVhUKTsKKyAgUkxfU0VUU1RBVEUoUkxfU1RBVEVfTU9SRUlOUFVUKTsKKyAgayA9IHJsX3JlYWRfa2V5ICgpOworICBSTF9VTlNFVFNUQVRFKFJMX1NUQVRFX01PUkVJTlBVVCk7CisgIGlmIChrZXkgPT0gRVNDKQorICAgIFJMX1VOU0VUU1RBVEUoUkxfU1RBVEVfTUVUQU5FWFQpOworCisgIHJldHVybiBrOworfQorCisjaWYgZGVmaW5lZCAoUkVBRExJTkVfQ0FMTEJBQ0tTKQoraW50CitfcmxfZGlzcGF0Y2hfY2FsbGJhY2sgKGN4dCkKKyAgICAgX3JsX2tleXNlcV9jeHQgKmN4dDsKK3sKKyAgaW50IG5rZXksIHI7CisKKyAgLyogRm9yIG5vdyAqLworI2lmIDEKKyAgLyogVGhlIGZpcnN0IHRpbWUgdGhpcyBjb250ZXh0IGlzIHVzZWQsIHdlIHdhbnQgdG8gcmVhZCBpbnB1dCBhbmQgZGlzcGF0Y2gKKyAgICAgb24gaXQuICBXaGVuIHRyYXZlcnNpbmcgdGhlIGNoYWluIG9mIGNvbnRleHRzIGJhY2sgYHVwJywgd2Ugd2FudCB0byB1c2UKKyAgICAgdGhlIHZhbHVlIGZyb20gdGhlIG5leHQgY29udGV4dCBkb3duLiAgV2UncmUgc2ltdWxhdGluZyByZWN1cnNpb24gdXNpbmcKKyAgICAgYSBjaGFpbiBvZiBjb250ZXh0cy4gKi8KKyAgaWYgKChjeHQtPmZsYWdzICYgS1NFUV9ESVNQQVRDSEVEKSA9PSAwKQorICAgIHsKKyAgICAgIG5rZXkgPSBfcmxfc3Vic2VxX2dldGNoYXIgKGN4dC0+b2tleSk7CisgICAgICByID0gX3JsX2Rpc3BhdGNoX3N1YnNlcSAobmtleSwgY3h0LT5kbWFwLCBjeHQtPnN1YnNlcV9hcmcpOworICAgICAgY3h0LT5mbGFncyB8PSBLU0VRX0RJU1BBVENIRUQ7CisgICAgfQorICBlbHNlCisgICAgciA9IGN4dC0+Y2hpbGR2YWw7CisjZWxzZQorICByID0gX3JsX2Rpc3BhdGNoX3N1YnNlcSAobmtleSwgY3h0LT5kbWFwLCBjeHQtPnN1YnNlcV9hcmcpOworI2VuZGlmCisKKyAgLyogRm9yIG5vdyAqLworICByID0gX3JsX3N1YnNlcV9yZXN1bHQgKHIsIGN4dC0+b2xkbWFwLCBjeHQtPm9rZXksIChjeHQtPmZsYWdzICYgS1NFUV9TVUJTRVEpKTsKKworICBpZiAociA9PSAwKQkJCS8qIHN1Y2Nlc3MhICovCisgICAgeworICAgICAgX3JsX2tleXNlcV9jaGFpbl9kaXNwb3NlICgpOworICAgICAgUkxfVU5TRVRTVEFURSAoUkxfU1RBVEVfTVVMVElLRVkpOworICAgICAgcmV0dXJuIHI7CisgICAgfQorCisgIGlmIChyICE9IC0zKQkJCS8qIG1hZ2ljIHZhbHVlIHRoYXQgc2F5cyB3ZSBhZGRlZCB0byB0aGUgY2hhaW4gKi8KKyAgICBfcmxfa3NjeHQgPSBjeHQtPm9jeHQ7CisgIGlmIChfcmxfa3NjeHQpCisgICAgX3JsX2tzY3h0LT5jaGlsZHZhbCA9IHI7CisgIGlmIChyICE9IC0zKQorICAgIF9ybF9rZXlzZXFfY3h0X2Rpc3Bvc2UgKGN4dCk7CisKKyAgcmV0dXJuIHI7Cit9CisjZW5kaWYgLyogUkVBRExJTkVfQ0FMTEJBQ0tTICovCisgIAogLyogRG8gdGhlIGNvbW1hbmQgYXNzb2NpYXRlZCB3aXRoIEtFWSBpbiBNQVAuCiAgICBJZiB0aGUgYXNzb2NpYXRlZCBjb21tYW5kIGlzIHJlYWxseSBhIGtleW1hcCwgdGhlbiByZWFkCiAgICBhbm90aGVyIGtleSwgYW5kIGRpc3BhdGNoIGludG8gdGhhdCBtYXAuICovCkBAIC01MjYsNiArNjYzLDcgQEAKICAgICAgcmVnaXN0ZXIgaW50IGtleTsKICAgICAgS2V5bWFwIG1hcDsKIHsKKyAgX3JsX2Rpc3BhdGNoaW5nX2tleW1hcCA9IG1hcDsKICAgcmV0dXJuIF9ybF9kaXNwYXRjaF9zdWJzZXEgKGtleSwgbWFwLCAwKTsKIH0KIApAQCAtNTM4LDYgKzY3Niw5IEBACiAgIGludCByLCBuZXdrZXk7CiAgIGNoYXIgKm1hY3JvOwogICBybF9jb21tYW5kX2Z1bmNfdCAqZnVuYzsKKyNpZiBkZWZpbmVkIChSRUFETElORV9DQUxMQkFDS1MpCisgIF9ybF9rZXlzZXFfY3h0ICpjeHQ7CisjZW5kaWYKIAogICBpZiAoTUVUQV9DSEFSIChrZXkpICYmIF9ybF9jb252ZXJ0X21ldGFfY2hhcnNfdG9fYXNjaWkpCiAgICAgewpAQCAtNTcxLDEwICs3MTIsNiBAQAogCiAJICBybF9leGVjdXRpbmdfa2V5bWFwID0gbWFwOwogCi0jaWYgMAotCSAgX3JsX3N1cHByZXNzX3JlZGlzcGxheSA9IChtYXBba2V5XS5mdW5jdGlvbiA9PSBybF9pbnNlcnQpICYmIF9ybF9pbnB1dF9hdmFpbGFibGUgKCk7Ci0jZW5kaWYKLQogCSAgcmxfZGlzcGF0Y2hpbmcgPSAxOwogCSAgUkxfU0VUU1RBVEUoUkxfU1RBVEVfRElTUEFUQ0hJTkcpOwogCSAgciA9ICgqbWFwW2tleV0uZnVuY3Rpb24pKHJsX251bWVyaWNfYXJnICogcmxfYXJnX3NpZ24sIGtleSk7CkBAIC02MDYsNiArNzQzLDEwIEBACiAJfQogICAgICAgZWxzZQogCXsKKyNpZiBkZWZpbmVkIChSRUFETElORV9DQUxMQkFDS1MpCisJICBSTF9VTlNFVFNUQVRFIChSTF9TVEFURV9NVUxUSUtFWSk7CisJICBfcmxfa2V5c2VxX2NoYWluX2Rpc3Bvc2UgKCk7CisjZW5kaWYKIAkgIF9ybF9hYm9ydF9pbnRlcm5hbCAoKTsKIAkgIHJldHVybiAtMTsKIAl9CkBAIC02MjcsNDQgKzc2OCw0MyBAQAogI2VuZGlmCiAKIAkgIHJsX2tleV9zZXF1ZW5jZV9sZW5ndGgrKzsKKwkgIF9ybF9kaXNwYXRjaGluZ19rZXltYXAgPSBGVU5DVElPTl9UT19LRVlNQVAgKG1hcCwga2V5KTsKIAotCSAgaWYgKGtleSA9PSBFU0MpCi0JICAgIFJMX1NFVFNUQVRFKFJMX1NUQVRFX01FVEFORVhUKTsKLQkgIFJMX1NFVFNUQVRFKFJMX1NUQVRFX01PUkVJTlBVVCk7Ci0JICBuZXdrZXkgPSBybF9yZWFkX2tleSAoKTsKLQkgIFJMX1VOU0VUU1RBVEUoUkxfU1RBVEVfTU9SRUlOUFVUKTsKLQkgIGlmIChrZXkgPT0gRVNDKQotCSAgICBSTF9VTlNFVFNUQVRFKFJMX1NUQVRFX01FVEFORVhUKTsKKwkgIC8qIEFsbG9jYXRlIG5ldyBjb250ZXh0IGhlcmUuICBVc2UgbGlua2VkIGNvbnRleHRzIChsaW5rZWQgdGhyb3VnaAorCSAgICAgY3h0LT5vY3h0KSB0byBzaW11bGF0ZSByZWN1cnNpb24gKi8KKyNpZiBkZWZpbmVkIChSRUFETElORV9DQUxMQkFDS1MpCisJICBpZiAoUkxfSVNTVEFURSAoUkxfU1RBVEVfQ0FMTEJBQ0spKQorCSAgICB7CisJICAgICAgLyogUmV0dXJuIDAgb25seSB0aGUgZmlyc3QgdGltZSwgdG8gaW5kaWNhdGUgc3VjY2VzcyB0bworCQkgX3JsX2NhbGxiYWNrX3JlYWRfY2hhci4gIFRoZSByZXN0IG9mIHRoZSB0aW1lLCB3ZSdyZSBjYWxsZWQKKwkJIGZyb20gX3JsX2Rpc3BhdGNoX2NhbGxiYWNrLCBzbyB3ZSByZXR1cm4gMyB0byBpbmRpY2F0ZQorCQkgc3BlY2lhbCBoYW5kbGluZyBpcyBuZWNlc3NhcnkuICovCisJICAgICAgciA9IFJMX0lTU1RBVEUgKFJMX1NUQVRFX01VTFRJS0VZKSA/IC0zIDogMDsKKwkgICAgICBjeHQgPSBfcmxfa2V5c2VxX2N4dF9hbGxvYyAoKTsKIAorCSAgICAgIGlmIChnb3Rfc3Vic2VxKQorCQljeHQtPmZsYWdzIHw9IEtTRVFfU1VCU0VROworCSAgICAgIGN4dC0+b2tleSA9IGtleTsKKwkgICAgICBjeHQtPm9sZG1hcCA9IG1hcDsKKwkgICAgICBjeHQtPmRtYXAgPSBfcmxfZGlzcGF0Y2hpbmdfa2V5bWFwOworCSAgICAgIGN4dC0+c3Vic2VxX2FyZyA9IGdvdF9zdWJzZXEgfHwgY3h0LT5kbWFwW0FOWU9USEVSS0VZXS5mdW5jdGlvbjsKKworCSAgICAgIFJMX1NFVFNUQVRFIChSTF9TVEFURV9NVUxUSUtFWSk7CisJICAgICAgX3JsX2tzY3h0ID0gY3h0OworCisJICAgICAgcmV0dXJuIHI7CQkvKiBkb24ndCBpbmRpY2F0ZSBpbW1lZGlhdGUgc3VjY2VzcyAqLworCSAgICB9CisjZW5kaWYKKworCSAgbmV3a2V5ID0gX3JsX3N1YnNlcV9nZXRjaGFyIChrZXkpOwogCSAgaWYgKG5ld2tleSA8IDApCiAJICAgIHsKIAkgICAgICBfcmxfYWJvcnRfaW50ZXJuYWwgKCk7CiAJICAgICAgcmV0dXJuIC0xOwogCSAgICB9CiAKLQkgIHIgPSBfcmxfZGlzcGF0Y2hfc3Vic2VxIChuZXdrZXksIEZVTkNUSU9OX1RPX0tFWU1BUCAobWFwLCBrZXkpLCBnb3Rfc3Vic2VxIHx8IG1hcFtBTllPVEhFUktFWV0uZnVuY3Rpb24pOwotCi0JICBpZiAociA9PSAtMikKLQkgICAgLyogV2UgZGlkbid0IG1hdGNoIGFueXRoaW5nLCBhbmQgdGhlIGtleW1hcCB3ZSdyZSBpbmRleGVkIGludG8KLQkgICAgICAgc2hhZG93ZWQgYSBmdW5jdGlvbiBwcmV2aW91c2x5IGJvdW5kIHRvIHRoYXQgcHJlZml4LiAgQ2FsbAotCSAgICAgICB0aGUgZnVuY3Rpb24uICBUaGUgcmVjdXJzaXZlIGNhbGwgdG8gX3JsX2Rpc3BhdGNoX3N1YnNlcSBoYXMKLQkgICAgICAgYWxyZWFkeSB0YWtlbiBjYXJlIG9mIHB1c2hpbmcgYW55IG5lY2Vzc2FyeSBpbnB1dCBiYWNrIG9udG8KLQkgICAgICAgdGhlIGlucHV0IHF1ZXVlIHdpdGggX3JsX3VuZ2V0X2NoYXIuICovCi0JICAgIHIgPSBfcmxfZGlzcGF0Y2ggKEFOWU9USEVSS0VZLCBGVU5DVElPTl9UT19LRVlNQVAgKG1hcCwga2V5KSk7Ci0JICBlbHNlIGlmIChyICYmIG1hcFtBTllPVEhFUktFWV0uZnVuY3Rpb24pCi0JICAgIHsKLQkgICAgICAvKiBXZSBkaWRuJ3QgbWF0Y2ggKHIgaXMgcHJvYmFibHkgLTEpLCBzbyByZXR1cm4gc29tZXRoaW5nIHRvCi0JCSB0ZWxsIHRoZSBjYWxsZXIgdGhhdCBpdCBzaG91bGQgdHJ5IEFOWU9USEVSS0VZIGZvciBhbgotCQkgb3ZlcnJpZGRlbiBmdW5jdGlvbi4gKi8KLQkgICAgICBfcmxfdW5nZXRfY2hhciAoa2V5KTsKLQkgICAgICByZXR1cm4gLTI7Ci0JICAgIH0KLQkgIGVsc2UgaWYgKHIgJiYgZ290X3N1YnNlcSkKLQkgICAgewotCSAgICAgIC8qIE9LLCBiYWNrIHVwIHRoZSBjaGFpbi4gKi8KLQkgICAgICBfcmxfdW5nZXRfY2hhciAoa2V5KTsKLQkgICAgICByZXR1cm4gLTE7Ci0JICAgIH0KKwkgIHIgPSBfcmxfZGlzcGF0Y2hfc3Vic2VxIChuZXdrZXksIF9ybF9kaXNwYXRjaGluZ19rZXltYXAsIGdvdF9zdWJzZXEgfHwgbWFwW0FOWU9USEVSS0VZXS5mdW5jdGlvbik7CisJICByZXR1cm4gX3JsX3N1YnNlcV9yZXN1bHQgKHIsIG1hcCwga2V5LCBnb3Rfc3Vic2VxKTsKIAl9CiAgICAgICBlbHNlCiAJewpAQCAtNjg0LDEyICs4MjQsNzMgQEAKICAgICB9CiAjaWYgZGVmaW5lZCAoVklfTU9ERSkKICAgaWYgKHJsX2VkaXRpbmdfbW9kZSA9PSB2aV9tb2RlICYmIF9ybF9rZXltYXAgPT0gdmlfbW92ZW1lbnRfa2V5bWFwICYmCisgICAgICBrZXkgIT0gQU5ZT1RIRVJLRVkgJiYKICAgICAgIF9ybF92aV90ZXh0bW9kX2NvbW1hbmQgKGtleSkpCiAgICAgX3JsX3ZpX3NldF9sYXN0IChrZXksIHJsX251bWVyaWNfYXJnLCBybF9hcmdfc2lnbik7CiAjZW5kaWYKKwogICByZXR1cm4gKHIpOwogfQogCitzdGF0aWMgaW50Citfcmxfc3Vic2VxX3Jlc3VsdCAociwgbWFwLCBrZXksIGdvdF9zdWJzZXEpCisgICAgIGludCByOworICAgICBLZXltYXAgbWFwOworICAgICBpbnQga2V5LCBnb3Rfc3Vic2VxOworeworICBLZXltYXAgbTsKKyAgaW50IHR5cGUsIG50OworICBybF9jb21tYW5kX2Z1bmNfdCAqZnVuYywgKm5mOworICAKKyAgaWYgKHIgPT0gLTIpCisgICAgLyogV2UgZGlkbid0IG1hdGNoIGFueXRoaW5nLCBhbmQgdGhlIGtleW1hcCB3ZSdyZSBpbmRleGVkIGludG8KKyAgICAgICBzaGFkb3dlZCBhIGZ1bmN0aW9uIHByZXZpb3VzbHkgYm91bmQgdG8gdGhhdCBwcmVmaXguICBDYWxsCisgICAgICAgdGhlIGZ1bmN0aW9uLiAgVGhlIHJlY3Vyc2l2ZSBjYWxsIHRvIF9ybF9kaXNwYXRjaF9zdWJzZXEgaGFzCisgICAgICAgYWxyZWFkeSB0YWtlbiBjYXJlIG9mIHB1c2hpbmcgYW55IG5lY2Vzc2FyeSBpbnB1dCBiYWNrIG9udG8KKyAgICAgICB0aGUgaW5wdXQgcXVldWUgd2l0aCBfcmxfdW5nZXRfY2hhci4gKi8KKyAgICB7CisgICAgICBtID0gX3JsX2Rpc3BhdGNoaW5nX2tleW1hcDsKKyAgICAgIHR5cGUgPSBtW0FOWU9USEVSS0VZXS50eXBlOworICAgICAgZnVuYyA9IG1bQU5ZT1RIRVJLRVldLmZ1bmN0aW9uOworICAgICAgaWYgKHR5cGUgPT0gSVNGVU5DICYmIGZ1bmMgPT0gcmxfZG9fbG93ZXJjYXNlX3ZlcnNpb24pCisJciA9IF9ybF9kaXNwYXRjaCAoX3JsX3RvX2xvd2VyIChrZXkpLCBtYXApOworICAgICAgZWxzZSBpZiAodHlwZSA9PSBJU0ZVTkMgJiYgZnVuYyA9PSBybF9pbnNlcnQpCisJeworCSAgLyogSWYgdGhlIGZ1bmN0aW9uIHRoYXQgd2FzIHNoYWRvd2VkIHdhcyBzZWxmLWluc2VydCwgd2UKKwkgICAgIHNvbWVob3cgbmVlZCBhIGtleW1hcCB3aXRoIG1hcFtrZXldLmZ1bmMgPT0gc2VsZi1pbnNlcnQuCisJICAgICBMZXQncyB1c2UgdGhpcyBvbmUuICovCisJICBudCA9IG1ba2V5XS50eXBlOworCSAgbmYgPSBtW2tleV0uZnVuY3Rpb247CisKKwkgIG1ba2V5XS50eXBlID0gdHlwZTsKKwkgIG1ba2V5XS5mdW5jdGlvbiA9IGZ1bmM7CisJICByID0gX3JsX2Rpc3BhdGNoIChrZXksIG0pOworCSAgbVtrZXldLnR5cGUgPSBudDsKKwkgIG1ba2V5XS5mdW5jdGlvbiA9IG5mOworCX0KKyAgICAgIGVsc2UKKwlyID0gX3JsX2Rpc3BhdGNoIChBTllPVEhFUktFWSwgbSk7CisgICAgfQorICBlbHNlIGlmIChyICYmIG1hcFtBTllPVEhFUktFWV0uZnVuY3Rpb24pCisgICAgeworICAgICAgLyogV2UgZGlkbid0IG1hdGNoIChyIGlzIHByb2JhYmx5IC0xKSwgc28gcmV0dXJuIHNvbWV0aGluZyB0bworCSB0ZWxsIHRoZSBjYWxsZXIgdGhhdCBpdCBzaG91bGQgdHJ5IEFOWU9USEVSS0VZIGZvciBhbgorCSBvdmVycmlkZGVuIGZ1bmN0aW9uLiAqLworICAgICAgX3JsX3VuZ2V0X2NoYXIgKGtleSk7CisgICAgICBfcmxfZGlzcGF0Y2hpbmdfa2V5bWFwID0gbWFwOworICAgICAgcmV0dXJuIC0yOworICAgIH0KKyAgZWxzZSBpZiAociAmJiBnb3Rfc3Vic2VxKQorICAgIHsKKyAgICAgIC8qIE9LLCBiYWNrIHVwIHRoZSBjaGFpbi4gKi8KKyAgICAgIF9ybF91bmdldF9jaGFyIChrZXkpOworICAgICAgX3JsX2Rpc3BhdGNoaW5nX2tleW1hcCA9IG1hcDsKKyAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgcmV0dXJuIHI7Cit9CisKIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KIC8qCQkJCQkJCQkgICAgKi8KIC8qCQkJSW5pdGlhbGl6YXRpb25zIAkJCSAgICAqLwpAQCAtODM4LDcgKzEwMzksNyBAQAogICAvKiBJZiB0aGUgY29tcGxldGlvbiBwYXJzZXIncyBkZWZhdWx0IHdvcmQgYnJlYWsgY2hhcmFjdGVycyBoYXZlbid0CiAgICAgIGJlZW4gc2V0IHlldCwgdGhlbiBkbyBzbyBub3cuICovCiAgIGlmIChybF9jb21wbGV0ZXJfd29yZF9icmVha19jaGFyYWN0ZXJzID09IChjaGFyICopTlVMTCkKLSAgICBybF9jb21wbGV0ZXJfd29yZF9icmVha19jaGFyYWN0ZXJzID0gcmxfYmFzaWNfd29yZF9icmVha19jaGFyYWN0ZXJzOworICAgIHJsX2NvbXBsZXRlcl93b3JkX2JyZWFrX2NoYXJhY3RlcnMgPSAoY2hhciAqKXJsX2Jhc2ljX3dvcmRfYnJlYWtfY2hhcmFjdGVyczsKIH0KIAogLyogSWYgdGhpcyBzeXN0ZW0gYWxsb3dzIHVzIHRvIGxvb2sgYXQgdGhlIHZhbHVlcyBvZiB0aGUgcmVndWxhcgpAQCAtODQ3LDcgKzEwNDgsMjAgQEAKIHN0YXRpYyB2b2lkCiByZWFkbGluZV9kZWZhdWx0X2JpbmRpbmdzICgpCiB7Ci0gIHJsX3R0eV9zZXRfZGVmYXVsdF9iaW5kaW5ncyAoX3JsX2tleW1hcCk7CisgIGlmIChfcmxfYmluZF9zdHR5X2NoYXJzKQorICAgIHJsX3R0eV9zZXRfZGVmYXVsdF9iaW5kaW5ncyAoX3JsX2tleW1hcCk7Cit9CisKKy8qIFJlc2V0IHRoZSBkZWZhdWx0IGJpbmRpbmdzIGZvciB0aGUgdGVybWluYWwgc3BlY2lhbCBjaGFyYWN0ZXJzIHdlJ3JlCisgICBpbnRlcmVzdGVkIGluIGJhY2sgdG8gcmxfaW5zZXJ0IGFuZCByZWFkIHRoZSBuZXcgb25lcy4gKi8KK3N0YXRpYyB2b2lkCityZXNldF9kZWZhdWx0X2JpbmRpbmdzICgpCit7CisgIGlmIChfcmxfYmluZF9zdHR5X2NoYXJzKQorICAgIHsKKyAgICAgIHJsX3R0eV91bnNldF9kZWZhdWx0X2JpbmRpbmdzIChfcmxfa2V5bWFwKTsKKyAgICAgIHJsX3R0eV9zZXRfZGVmYXVsdF9iaW5kaW5ncyAoX3JsX2tleW1hcCk7CisgICAgfQogfQogCiAvKiBCaW5kIHNvbWUgY29tbW9uIGFycm93IGtleSBzZXF1ZW5jZXMgaW4gTUFQLiAqLwpAQCAtODYxLDI1ICsxMDc1LDMyIEBACiAgIF9ybF9rZXltYXAgPSBtYXA7CiAKICNpZiBkZWZpbmVkIChfX01TRE9TX18pCi0gICBfcmxfYmluZF9pZl91bmJvdW5kICgiXDAzM1swQSIsIHJsX2dldF9wcmV2aW91c19oaXN0b3J5KTsKLSAgIF9ybF9iaW5kX2lmX3VuYm91bmQgKCJcMDMzWzBCIiwgcmxfYmFja3dhcmRfY2hhcik7Ci0gICBfcmxfYmluZF9pZl91bmJvdW5kICgiXDAzM1swQyIsIHJsX2ZvcndhcmRfY2hhcik7Ci0gICBfcmxfYmluZF9pZl91bmJvdW5kICgiXDAzM1swRCIsIHJsX2dldF9uZXh0X2hpc3RvcnkpOworICBybF9iaW5kX2tleXNlcV9pZl91bmJvdW5kICgiXDAzM1swQSIsIHJsX2dldF9wcmV2aW91c19oaXN0b3J5KTsKKyAgcmxfYmluZF9rZXlzZXFfaWZfdW5ib3VuZCAoIlwwMzNbMEIiLCBybF9iYWNrd2FyZF9jaGFyKTsKKyAgcmxfYmluZF9rZXlzZXFfaWZfdW5ib3VuZCAoIlwwMzNbMEMiLCBybF9mb3J3YXJkX2NoYXIpOworICBybF9iaW5kX2tleXNlcV9pZl91bmJvdW5kICgiXDAzM1swRCIsIHJsX2dldF9uZXh0X2hpc3RvcnkpOwogI2VuZGlmCiAKLSAgX3JsX2JpbmRfaWZfdW5ib3VuZCAoIlwwMzNbQSIsIHJsX2dldF9wcmV2aW91c19oaXN0b3J5KTsKLSAgX3JsX2JpbmRfaWZfdW5ib3VuZCAoIlwwMzNbQiIsIHJsX2dldF9uZXh0X2hpc3RvcnkpOwotICBfcmxfYmluZF9pZl91bmJvdW5kICgiXDAzM1tDIiwgcmxfZm9yd2FyZF9jaGFyKTsKLSAgX3JsX2JpbmRfaWZfdW5ib3VuZCAoIlwwMzNbRCIsIHJsX2JhY2t3YXJkX2NoYXIpOwotICBfcmxfYmluZF9pZl91bmJvdW5kICgiXDAzM1tIIiwgcmxfYmVnX29mX2xpbmUpOwotICBfcmxfYmluZF9pZl91bmJvdW5kICgiXDAzM1tGIiwgcmxfZW5kX29mX2xpbmUpOworICBybF9iaW5kX2tleXNlcV9pZl91bmJvdW5kICgiXDAzM1tBIiwgcmxfZ2V0X3ByZXZpb3VzX2hpc3RvcnkpOworICBybF9iaW5kX2tleXNlcV9pZl91bmJvdW5kICgiXDAzM1tCIiwgcmxfZ2V0X25leHRfaGlzdG9yeSk7CisgIHJsX2JpbmRfa2V5c2VxX2lmX3VuYm91bmQgKCJcMDMzW0MiLCBybF9mb3J3YXJkX2NoYXIpOworICBybF9iaW5kX2tleXNlcV9pZl91bmJvdW5kICgiXDAzM1tEIiwgcmxfYmFja3dhcmRfY2hhcik7CisgIHJsX2JpbmRfa2V5c2VxX2lmX3VuYm91bmQgKCJcMDMzW0giLCBybF9iZWdfb2ZfbGluZSk7CisgIHJsX2JpbmRfa2V5c2VxX2lmX3VuYm91bmQgKCJcMDMzW0YiLCBybF9lbmRfb2ZfbGluZSk7CiAKLSAgX3JsX2JpbmRfaWZfdW5ib3VuZCAoIlwwMzNPQSIsIHJsX2dldF9wcmV2aW91c19oaXN0b3J5KTsKLSAgX3JsX2JpbmRfaWZfdW5ib3VuZCAoIlwwMzNPQiIsIHJsX2dldF9uZXh0X2hpc3RvcnkpOwotICBfcmxfYmluZF9pZl91bmJvdW5kICgiXDAzM09DIiwgcmxfZm9yd2FyZF9jaGFyKTsKLSAgX3JsX2JpbmRfaWZfdW5ib3VuZCAoIlwwMzNPRCIsIHJsX2JhY2t3YXJkX2NoYXIpOwotICBfcmxfYmluZF9pZl91bmJvdW5kICgiXDAzM09IIiwgcmxfYmVnX29mX2xpbmUpOwotICBfcmxfYmluZF9pZl91bmJvdW5kICgiXDAzM09GIiwgcmxfZW5kX29mX2xpbmUpOworICBybF9iaW5kX2tleXNlcV9pZl91bmJvdW5kICgiXDAzM09BIiwgcmxfZ2V0X3ByZXZpb3VzX2hpc3RvcnkpOworICBybF9iaW5kX2tleXNlcV9pZl91bmJvdW5kICgiXDAzM09CIiwgcmxfZ2V0X25leHRfaGlzdG9yeSk7CisgIHJsX2JpbmRfa2V5c2VxX2lmX3VuYm91bmQgKCJcMDMzT0MiLCBybF9mb3J3YXJkX2NoYXIpOworICBybF9iaW5kX2tleXNlcV9pZl91bmJvdW5kICgiXDAzM09EIiwgcmxfYmFja3dhcmRfY2hhcik7CisgIHJsX2JpbmRfa2V5c2VxX2lmX3VuYm91bmQgKCJcMDMzT0giLCBybF9iZWdfb2ZfbGluZSk7CisgIHJsX2JpbmRfa2V5c2VxX2lmX3VuYm91bmQgKCJcMDMzT0YiLCBybF9lbmRfb2ZfbGluZSk7CisKKyNpZiBkZWZpbmVkIChfX01JTkdXMzJfXykKKyAgcmxfYmluZF9rZXlzZXFfaWZfdW5ib3VuZCAoIlwzNDBIIiwgcmxfZ2V0X3ByZXZpb3VzX2hpc3RvcnkpOworICBybF9iaW5kX2tleXNlcV9pZl91bmJvdW5kICgiXDM0MFAiLCBybF9nZXRfbmV4dF9oaXN0b3J5KTsKKyAgcmxfYmluZF9rZXlzZXFfaWZfdW5ib3VuZCAoIlwzNDBNIiwgcmxfZm9yd2FyZF9jaGFyKTsKKyAgcmxfYmluZF9rZXlzZXFfaWZfdW5ib3VuZCAoIlwzNDBLIiwgcmxfYmFja3dhcmRfY2hhcik7CisjZW5kaWYKIAogICBfcmxfa2V5bWFwID0geGtleW1hcDsKIH0KZGlmZiAtLWdpdCBhL3JlYWRsaW5lL3JlYWRsaW5lLmggYi9yZWFkbGluZS9yZWFkbGluZS5oCmluZGV4IGYxMWIzZDAuLmZhZGU2ZDQgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL3JlYWRsaW5lLmgKKysrIGIvcmVhZGxpbmUvcmVhZGxpbmUuaApAQCAtMSw2ICsxLDYgQEAKIC8qIFJlYWRsaW5lLmggLS0gdGhlIG5hbWVzIG9mIGZ1bmN0aW9ucyBjYWxsYWJsZSBmcm9tIHdpdGhpbiByZWFkbGluZS4gKi8KIAotLyogQ29weXJpZ2h0IChDKSAxOTg3LCAxOTg5LCAxOTkyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorLyogQ29weXJpZ2h0IChDKSAxOTg3LTIwMDUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgUmVhZGxpbmUgTGlicmFyeSwgYSBsaWJyYXJ5IGZvcgogICAgcmVhZGluZyBsaW5lcyBvZiB0ZXh0IHdpdGggaW50ZXJhY3RpdmUgaW5wdXQgYW5kIGhpc3RvcnkgZWRpdGluZy4KQEAgLTQwLDkgKzQwLDkgQEAKICNlbmRpZgogCiAvKiBIZXgtZW5jb2RlZCBSZWFkbGluZSB2ZXJzaW9uIG51bWJlci4gKi8KLSNkZWZpbmUgUkxfUkVBRExJTkVfVkVSU0lPTgkweDA0MDMJCS8qIFJlYWRsaW5lIDQuMyAqLwotI2RlZmluZSBSTF9WRVJTSU9OX01BSk9SCTQKLSNkZWZpbmUgUkxfVkVSU0lPTl9NSU5PUgkzCisjZGVmaW5lIFJMX1JFQURMSU5FX1ZFUlNJT04JMHgwNTAxCQkvKiBSZWFkbGluZSA1LjEgKi8KKyNkZWZpbmUgUkxfVkVSU0lPTl9NQUpPUgk1CisjZGVmaW5lIFJMX1ZFUlNJT05fTUlOT1IJMQogCiAvKiBSZWFkbGluZSBkYXRhIHN0cnVjdHVyZXMuICovCiAKQEAgLTE2MCw2ICsxNjAsNyBAQAogZXh0ZXJuIGludCBybF9iYWNrd2FyZF9raWxsX2xpbmUgUEFSQU1TKChpbnQsIGludCkpOwogZXh0ZXJuIGludCBybF9raWxsX2Z1bGxfbGluZSBQQVJBTVMoKGludCwgaW50KSk7CiBleHRlcm4gaW50IHJsX3VuaXhfd29yZF9ydWJvdXQgUEFSQU1TKChpbnQsIGludCkpOworZXh0ZXJuIGludCBybF91bml4X2ZpbGVuYW1lX3J1Ym91dCBQQVJBTVMoKGludCwgaW50KSk7CiBleHRlcm4gaW50IHJsX3VuaXhfbGluZV9kaXNjYXJkIFBBUkFNUygoaW50LCBpbnQpKTsKIGV4dGVybiBpbnQgcmxfY29weV9yZWdpb25fdG9fa2lsbCBQQVJBTVMoKGludCwgaW50KSk7CiBleHRlcm4gaW50IHJsX2tpbGxfcmVnaW9uIFBBUkFNUygoaW50LCBpbnQpKTsKQEAgLTI0MCw2ICsyNDEsNyBAQAogZXh0ZXJuIGludCBybF92aV9kZWxldGVfdG8gUEFSQU1TKChpbnQsIGludCkpOwogZXh0ZXJuIGludCBybF92aV9jaGFuZ2VfdG8gUEFSQU1TKChpbnQsIGludCkpOwogZXh0ZXJuIGludCBybF92aV95YW5rX3RvIFBBUkFNUygoaW50LCBpbnQpKTsKK2V4dGVybiBpbnQgcmxfdmlfcnVib3V0IFBBUkFNUygoaW50LCBpbnQpKTsKIGV4dGVybiBpbnQgcmxfdmlfZGVsZXRlIFBBUkFNUygoaW50LCBpbnQpKTsKIGV4dGVybiBpbnQgcmxfdmlfYmFja190b19pbmRlbnQgUEFSQU1TKChpbnQsIGludCkpOwogZXh0ZXJuIGludCBybF92aV9maXJzdF9wcmludCBQQVJBTVMoKGludCwgaW50KSk7CkBAIC0yNTgsNiArMjYwLDggQEAKIGV4dGVybiBpbnQgcmxfdmlfZG9tb3ZlIFBBUkFNUygoaW50LCBpbnQgKikpOwogZXh0ZXJuIGludCBybF92aV9icmFja3R5cGUgUEFSQU1TKChpbnQpKTsKIAorZXh0ZXJuIHZvaWQgcmxfdmlfc3RhcnRfaW5zZXJ0aW5nIFBBUkFNUygoaW50LCBpbnQsIGludCkpOworCiAvKiBWSS1tb2RlIHBzZXVkby1iaW5kYWJsZSBjb21tYW5kcywgdXNlZCBhcyB1dGlsaXR5IGZ1bmN0aW9ucy4gKi8KIGV4dGVybiBpbnQgcmxfdmlfZldvcmQgUEFSQU1TKChpbnQsIGludCkpOwogZXh0ZXJuIGludCBybF92aV9iV29yZCBQQVJBTVMoKGludCwgaW50KSk7CkBAIC0yOTAsMTIgKzI5NCwyMiBAQAogZXh0ZXJuIGludCBybF9iaW5kX2tleV9pbl9tYXAgUEFSQU1TKChpbnQsIHJsX2NvbW1hbmRfZnVuY190ICosIEtleW1hcCkpOwogZXh0ZXJuIGludCBybF91bmJpbmRfa2V5IFBBUkFNUygoaW50KSk7CiBleHRlcm4gaW50IHJsX3VuYmluZF9rZXlfaW5fbWFwIFBBUkFNUygoaW50LCBLZXltYXApKTsKK2V4dGVybiBpbnQgcmxfYmluZF9rZXlfaWZfdW5ib3VuZCBQQVJBTVMoKGludCwgcmxfY29tbWFuZF9mdW5jX3QgKikpOworZXh0ZXJuIGludCBybF9iaW5kX2tleV9pZl91bmJvdW5kX2luX21hcCBQQVJBTVMoKGludCwgcmxfY29tbWFuZF9mdW5jX3QgKiwgS2V5bWFwKSk7CiBleHRlcm4gaW50IHJsX3VuYmluZF9mdW5jdGlvbl9pbl9tYXAgUEFSQU1TKChybF9jb21tYW5kX2Z1bmNfdCAqLCBLZXltYXApKTsKIGV4dGVybiBpbnQgcmxfdW5iaW5kX2NvbW1hbmRfaW5fbWFwIFBBUkFNUygoY29uc3QgY2hhciAqLCBLZXltYXApKTsKLWV4dGVybiBpbnQgcmxfc2V0X2tleSBQQVJBTVMoKGNvbnN0IGNoYXIgKiwgcmxfY29tbWFuZF9mdW5jX3QgKiwgS2V5bWFwKSk7CitleHRlcm4gaW50IHJsX2JpbmRfa2V5c2VxIFBBUkFNUygoY29uc3QgY2hhciAqLCBybF9jb21tYW5kX2Z1bmNfdCAqKSk7CitleHRlcm4gaW50IHJsX2JpbmRfa2V5c2VxX2luX21hcCBQQVJBTVMoKGNvbnN0IGNoYXIgKiwgcmxfY29tbWFuZF9mdW5jX3QgKiwgS2V5bWFwKSk7CitleHRlcm4gaW50IHJsX2JpbmRfa2V5c2VxX2lmX3VuYm91bmQgUEFSQU1TKChjb25zdCBjaGFyICosIHJsX2NvbW1hbmRfZnVuY190ICopKTsKK2V4dGVybiBpbnQgcmxfYmluZF9rZXlzZXFfaWZfdW5ib3VuZF9pbl9tYXAgUEFSQU1TKChjb25zdCBjaGFyICosIHJsX2NvbW1hbmRfZnVuY190ICosIEtleW1hcCkpOwogZXh0ZXJuIGludCBybF9nZW5lcmljX2JpbmQgUEFSQU1TKChpbnQsIGNvbnN0IGNoYXIgKiwgY2hhciAqLCBLZXltYXApKTsKKworZXh0ZXJuIGNoYXIgKnJsX3ZhcmlhYmxlX3ZhbHVlIFBBUkFNUygoY29uc3QgY2hhciAqKSk7CiBleHRlcm4gaW50IHJsX3ZhcmlhYmxlX2JpbmQgUEFSQU1TKChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKikpOwogCisvKiBCYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgdXNlIHJsX2JpbmRfa2V5c2VxX2luX21hcCBpbnN0ZWFkLiAqLworZXh0ZXJuIGludCBybF9zZXRfa2V5IFBBUkFNUygoY29uc3QgY2hhciAqLCBybF9jb21tYW5kX2Z1bmNfdCAqLCBLZXltYXApKTsKKwogLyogQmFja3dhcmRzIGNvbXBhdGliaWxpdHksIHVzZSBybF9nZW5lcmljX2JpbmQgaW5zdGVhZC4gKi8KIGV4dGVybiBpbnQgcmxfbWFjcm9fYmluZCBQQVJBTVMoKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBLZXltYXApKTsKIApAQCAtMzU4LDcgKzM3Miw3IEBACiBleHRlcm4gaW50IHJsX3Jlc2V0X2xpbmVfc3RhdGUgUEFSQU1TKCh2b2lkKSk7CiBleHRlcm4gaW50IHJsX2NybGYgUEFSQU1TKCh2b2lkKSk7CiAKLSNpZiAoZGVmaW5lZCAoX19TVERDX18pIHx8IGRlZmluZWQgKF9fY3BsdXNwbHVzKSkgJiYgZGVmaW5lZCAoVVNFX1ZBUkFSR1MpICYmIGRlZmluZWQgKFBSRUZFUl9TVERBUkcpCisjaWYgZGVmaW5lZCAoVVNFX1ZBUkFSR1MpICYmIGRlZmluZWQgKFBSRUZFUl9TVERBUkcpCiBleHRlcm4gaW50IHJsX21lc3NhZ2UgKGNvbnN0IGNoYXIgKiwgLi4uKSAgX19hdHRyaWJ1dGVfXygoX19mb3JtYXRfXyAocHJpbnRmLCAxLCAyKSkpOwogI2Vsc2UKIGV4dGVybiBpbnQgcmxfbWVzc2FnZSAoKTsKQEAgLTM4NCwxMSArMzk4LDEzIEBACiBleHRlcm4gdm9pZCBybF9wcmVwX3Rlcm1pbmFsIFBBUkFNUygoaW50KSk7CiBleHRlcm4gdm9pZCBybF9kZXByZXBfdGVybWluYWwgUEFSQU1TKCh2b2lkKSk7CiBleHRlcm4gdm9pZCBybF90dHlfc2V0X2RlZmF1bHRfYmluZGluZ3MgUEFSQU1TKChLZXltYXApKTsKK2V4dGVybiB2b2lkIHJsX3R0eV91bnNldF9kZWZhdWx0X2JpbmRpbmdzIFBBUkFNUygoS2V5bWFwKSk7CiAKIGV4dGVybiBpbnQgcmxfcmVzZXRfdGVybWluYWwgUEFSQU1TKChjb25zdCBjaGFyICopKTsKIGV4dGVybiB2b2lkIHJsX3Jlc2l6ZV90ZXJtaW5hbCBQQVJBTVMoKHZvaWQpKTsKIGV4dGVybiB2b2lkIHJsX3NldF9zY3JlZW5fc2l6ZSBQQVJBTVMoKGludCwgaW50KSk7CiBleHRlcm4gdm9pZCBybF9nZXRfc2NyZWVuX3NpemUgUEFSQU1TKChpbnQgKiwgaW50ICopKTsKK2V4dGVybiB2b2lkIHJsX3Jlc2V0X3NjcmVlbl9zaXplIFBBUkFNUygodm9pZCkpOwogCiBleHRlcm4gY2hhciAqcmxfZ2V0X3Rlcm1jYXAgUEFSQU1TKChjb25zdCBjaGFyICopKTsKIApAQCAtNTE2LDYgKzUzMiwxMSBAQAogZXh0ZXJuIEZJTEUgKnJsX2luc3RyZWFtOwogZXh0ZXJuIEZJTEUgKnJsX291dHN0cmVhbTsKIAorLyogSWYgbm9uLXplcm8sIFJlYWRsaW5lIGdpdmVzIHZhbHVlcyBvZiBMSU5FUyBhbmQgQ09MVU1OUyBmcm9tIHRoZSBlbnZpcm9ubWVudAorICAgZ3JlYXRlciBwcmVjZWRlbmNlIHRoYW4gdmFsdWVzIGZldGNoZWQgZnJvbSB0aGUga2VybmVsIHdoZW4gY29tcHV0aW5nIHRoZQorICAgc2NyZWVuIGRpbWVuc2lvbnMuICovCitleHRlcm4gaW50IHJsX3ByZWZlcl9lbnZfd2luc2l6ZTsKKwogLyogSWYgbm9uLXplcm8sIHRoZW4gdGhpcyBpcyB0aGUgYWRkcmVzcyBvZiBhIGZ1bmN0aW9uIHRvIGNhbGwganVzdAogICAgYmVmb3JlIHJlYWRsaW5lX2ludGVybmFsICgpIHByaW50cyB0aGUgZmlyc3QgcHJvbXB0LiAqLwogZXh0ZXJuIHJsX2hvb2tfZnVuY190ICpybF9zdGFydHVwX2hvb2s7CkBAIC02MDMsNyArNjI0LDEyIEBACiAvKiBUaGUgbGlzdCBvZiBjaGFyYWN0ZXJzIHRoYXQgc2lnbmFsIGEgYnJlYWsgYmV0d2VlbiB3b3JkcyBmb3IKICAgIHJsX2NvbXBsZXRlX2ludGVybmFsLiAgVGhlIGRlZmF1bHQgbGlzdCBpcyB0aGUgY29udGVudHMgb2YKICAgIHJsX2Jhc2ljX3dvcmRfYnJlYWtfY2hhcmFjdGVycy4gICovCi1leHRlcm4gY29uc3QgY2hhciAqcmxfY29tcGxldGVyX3dvcmRfYnJlYWtfY2hhcmFjdGVyczsKK2V4dGVybiAvKmNvbnN0Ki8gY2hhciAqcmxfY29tcGxldGVyX3dvcmRfYnJlYWtfY2hhcmFjdGVyczsKKworLyogSG9vayBmdW5jdGlvbiB0byBhbGxvdyBhbiBhcHBsaWNhdGlvbiB0byBzZXQgdGhlIGNvbXBsZXRpb24gd29yZAorICAgYnJlYWsgY2hhcmFjdGVycyBiZWZvcmUgcmVhZGxpbmUgYnJlYWtzIHVwIHRoZSBsaW5lLiAgQWxsb3dzCisgICBwb3NpdGlvbi1kZXBlbmRlbnQgd29yZCBicmVhayBjaGFyYWN0ZXJzLiAqLworZXh0ZXJuIHJsX2NwdmZ1bmNfdCAqcmxfY29tcGxldGlvbl93b3JkX2JyZWFrX2hvb2s7CiAKIC8qIExpc3Qgb2YgY2hhcmFjdGVycyB3aGljaCBjYW4gYmUgdXNlZCB0byBxdW90ZSBhIHN1YnN0cmluZyBvZiB0aGUgbGluZS4KICAgIENvbXBsZXRpb24gb2NjdXJzIG9uIHRoZSBlbnRpcmUgc3Vic3RyaW5nLCBhbmQgd2l0aGluIHRoZSBzdWJzdHJpbmcgICAKQEAgLTY4Nyw2ICs3MTMsMTEgQEAKICAgIGZ1bmN0aW9ucy4gKi8KIGV4dGVybiBpbnQgcmxfY29tcGxldGlvbl90eXBlOwogCisvKiBVcCB0byB0aGlzIG1hbnkgaXRlbXMgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gcmVzcG9uc2UgdG8gYQorICAgcG9zc2libGUtY29tcGxldGlvbnMgY2FsbC4gIEFmdGVyIHRoYXQsIHdlIGFzayB0aGUgdXNlciBpZiBzaGUKKyAgIGlzIHN1cmUgc2hlIHdhbnRzIHRvIHNlZSB0aGVtIGFsbC4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDEwMC4gKi8KK2V4dGVybiBpbnQgcmxfY29tcGxldGlvbl9xdWVyeV9pdGVtczsKKwogLyogQ2hhcmFjdGVyIGFwcGVuZGVkIHRvIGNvbXBsZXRlZCB3b3JkcyB3aGVuIGF0IHRoZSBlbmQgb2YgdGhlIGxpbmUuICBUaGUKICAgIGRlZmF1bHQgaXMgYSBzcGFjZS4gIE5vdGhpbmcgaXMgYWRkZWQgaWYgdGhpcyBpcyAnXDAnLiAqLwogZXh0ZXJuIGludCBybF9jb21wbGV0aW9uX2FwcGVuZF9jaGFyYWN0ZXI7CkBAIC02OTUsMTAgKzcyNiwxOCBAQAogICAgcmxfY29tcGxldGlvbl9hcHBlbmRfY2hhcmFjdGVyIHdpbGwgbm90IGJlIGFwcGVuZGVkLiAqLwogZXh0ZXJuIGludCBybF9jb21wbGV0aW9uX3N1cHByZXNzX2FwcGVuZDsKIAotLyogVXAgdG8gdGhpcyBtYW55IGl0ZW1zIHdpbGwgYmUgZGlzcGxheWVkIGluIHJlc3BvbnNlIHRvIGEKLSAgIHBvc3NpYmxlLWNvbXBsZXRpb25zIGNhbGwuICBBZnRlciB0aGF0LCB3ZSBhc2sgdGhlIHVzZXIgaWYgc2hlCi0gICBpcyBzdXJlIHNoZSB3YW50cyB0byBzZWUgdGhlbSBhbGwuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAxMDAuICovCi1leHRlcm4gaW50IHJsX2NvbXBsZXRpb25fcXVlcnlfaXRlbXM7CisvKiBTZXQgdG8gYW55IHF1b3RlIGNoYXJhY3RlciByZWFkbGluZSB0aGlua3MgaXQgZmluZHMgYmVmb3JlIGFueSBhcHBsaWNhdGlvbgorICAgY29tcGxldGlvbiBmdW5jdGlvbiBpcyBjYWxsZWQuICovCitleHRlcm4gaW50IHJsX2NvbXBsZXRpb25fcXVvdGVfY2hhcmFjdGVyOworCisvKiBTZXQgdG8gYSBub24temVybyB2YWx1ZSBpZiByZWFkbGluZSBmb3VuZCBxdW90aW5nIGFueXdoZXJlIGluIHRoZSB3b3JkIHRvCisgICBiZSBjb21wbGV0ZWQ7IHNldCBiZWZvcmUgYW55IGFwcGxpY2F0aW9uIGNvbXBsZXRpb24gZnVuY3Rpb24gaXMgY2FsbGVkLiAqLworZXh0ZXJuIGludCBybF9jb21wbGV0aW9uX2ZvdW5kX3F1b3RlOworCisvKiBJZiBub24temVybywgdGhlIGNvbXBsZXRpb24gZnVuY3Rpb25zIGRvbid0IGFwcGVuZCBhbnkgY2xvc2luZyBxdW90ZS4KKyAgIFRoaXMgaXMgc2V0IHRvIDAgYnkgcmxfY29tcGxldGVfaW50ZXJuYWwgYW5kIG1heSBiZSBjaGFuZ2VkIGJ5IGFuCisgICBhcHBsaWNhdGlvbi1zcGVjaWZpYyBjb21wbGV0aW9uIGZ1bmN0aW9uLiAqLworZXh0ZXJuIGludCBybF9jb21wbGV0aW9uX3N1cHByZXNzX3F1b3RlOwogCiAvKiBJZiBub24temVybywgYSBzbGFzaCB3aWxsIGJlIGFwcGVuZGVkIHRvIGNvbXBsZXRlZCBmaWxlbmFtZXMgdGhhdCBhcmUKICAgIHN5bWJvbGljIGxpbmtzIHRvIGRpcmVjdG9yeSBuYW1lcywgc3ViamVjdCB0byB0aGUgdmFsdWUgb2YgdGhlCkBAIC03MjksMjggKzc2OCwzMyBAQAogI2RlZmluZSBNVUxUX01BVENIICAgICAgMgogCiAvKiBQb3NzaWJsZSBzdGF0ZSB2YWx1ZXMgZm9yIHJsX3JlYWRsaW5lX3N0YXRlICovCi0jZGVmaW5lIFJMX1NUQVRFX05PTkUJCTB4MDAwMDAJCS8qIG5vIHN0YXRlOyBiZWZvcmUgZmlyc3QgY2FsbCAqLworI2RlZmluZSBSTF9TVEFURV9OT05FCQkweDAwMDAwMAkJLyogbm8gc3RhdGU7IGJlZm9yZSBmaXJzdCBjYWxsICovCiAKLSNkZWZpbmUgUkxfU1RBVEVfSU5JVElBTElaSU5HCTB4MDAwMDEJCS8qIGluaXRpYWxpemluZyAqLwotI2RlZmluZSBSTF9TVEFURV9JTklUSUFMSVpFRAkweDAwMDAyCQkvKiBpbml0aWFsaXphdGlvbiBkb25lICovCi0jZGVmaW5lIFJMX1NUQVRFX1RFUk1QUkVQUEVECTB4MDAwMDQJCS8qIHRlcm1pbmFsIGlzIHByZXBwZWQgKi8KLSNkZWZpbmUgUkxfU1RBVEVfUkVBRENNRAkweDAwMDA4CQkvKiByZWFkaW5nIGEgY29tbWFuZCBrZXkgKi8KLSNkZWZpbmUgUkxfU1RBVEVfTUVUQU5FWFQJMHgwMDAxMAkJLyogcmVhZGluZyBpbnB1dCBhZnRlciBFU0MgKi8KLSNkZWZpbmUgUkxfU1RBVEVfRElTUEFUQ0hJTkcJMHgwMDAyMAkJLyogZGlzcGF0Y2hpbmcgdG8gYSBjb21tYW5kICovCi0jZGVmaW5lIFJMX1NUQVRFX01PUkVJTlBVVAkweDAwMDQwCQkvKiByZWFkaW5nIG1vcmUgaW5wdXQgaW4gYSBjb21tYW5kIGZ1bmN0aW9uICovCi0jZGVmaW5lIFJMX1NUQVRFX0lTRUFSQ0gJMHgwMDA4MAkJLyogZG9pbmcgaW5jcmVtZW50YWwgc2VhcmNoICovCi0jZGVmaW5lIFJMX1NUQVRFX05TRUFSQ0gJMHgwMDEwMAkJLyogZG9pbmcgbm9uLWluYyBzZWFyY2ggKi8KLSNkZWZpbmUgUkxfU1RBVEVfU0VBUkNICQkweDAwMjAwCQkvKiBkb2luZyBhIGhpc3Rvcnkgc2VhcmNoICovCi0jZGVmaW5lIFJMX1NUQVRFX05VTUVSSUNBUkcJMHgwMDQwMAkJLyogcmVhZGluZyBudW1lcmljIGFyZ3VtZW50ICovCi0jZGVmaW5lIFJMX1NUQVRFX01BQ1JPSU5QVVQJMHgwMDgwMAkJLyogZ2V0dGluZyBpbnB1dCBmcm9tIGEgbWFjcm8gKi8KLSNkZWZpbmUgUkxfU1RBVEVfTUFDUk9ERUYJMHgwMTAwMAkJLyogZGVmaW5pbmcga2V5Ym9hcmQgbWFjcm8gKi8KLSNkZWZpbmUgUkxfU1RBVEVfT1ZFUldSSVRFCTB4MDIwMDAJCS8qIG92ZXJ3cml0ZSBtb2RlICovCi0jZGVmaW5lIFJMX1NUQVRFX0NPTVBMRVRJTkcJMHgwNDAwMAkJLyogZG9pbmcgY29tcGxldGlvbiAqLwotI2RlZmluZSBSTF9TVEFURV9TSUdIQU5ETEVSCTB4MDgwMDAJCS8qIGluIHJlYWRsaW5lIHNpZ2hhbmRsZXIgKi8KLSNkZWZpbmUgUkxfU1RBVEVfVU5ET0lORwkweDEwMDAwCQkvKiBkb2luZyBhbiB1bmRvICovCi0jZGVmaW5lIFJMX1NUQVRFX0lOUFVUUEVORElORwkweDIwMDAwCQkvKiBybF9leGVjdXRlX25leHQgY2FsbGVkICovCisjZGVmaW5lIFJMX1NUQVRFX0lOSVRJQUxJWklORwkweDAwMDAwMQkvKiBpbml0aWFsaXppbmcgKi8KKyNkZWZpbmUgUkxfU1RBVEVfSU5JVElBTElaRUQJMHgwMDAwMDIJLyogaW5pdGlhbGl6YXRpb24gZG9uZSAqLworI2RlZmluZSBSTF9TVEFURV9URVJNUFJFUFBFRAkweDAwMDAwNAkvKiB0ZXJtaW5hbCBpcyBwcmVwcGVkICovCisjZGVmaW5lIFJMX1NUQVRFX1JFQURDTUQJMHgwMDAwMDgJLyogcmVhZGluZyBhIGNvbW1hbmQga2V5ICovCisjZGVmaW5lIFJMX1NUQVRFX01FVEFORVhUCTB4MDAwMDEwCS8qIHJlYWRpbmcgaW5wdXQgYWZ0ZXIgRVNDICovCisjZGVmaW5lIFJMX1NUQVRFX0RJU1BBVENISU5HCTB4MDAwMDIwCS8qIGRpc3BhdGNoaW5nIHRvIGEgY29tbWFuZCAqLworI2RlZmluZSBSTF9TVEFURV9NT1JFSU5QVVQJMHgwMDAwNDAJLyogcmVhZGluZyBtb3JlIGlucHV0IGluIGEgY29tbWFuZCBmdW5jdGlvbiAqLworI2RlZmluZSBSTF9TVEFURV9JU0VBUkNICTB4MDAwMDgwCS8qIGRvaW5nIGluY3JlbWVudGFsIHNlYXJjaCAqLworI2RlZmluZSBSTF9TVEFURV9OU0VBUkNICTB4MDAwMTAwCS8qIGRvaW5nIG5vbi1pbmMgc2VhcmNoICovCisjZGVmaW5lIFJMX1NUQVRFX1NFQVJDSAkJMHgwMDAyMDAJLyogZG9pbmcgYSBoaXN0b3J5IHNlYXJjaCAqLworI2RlZmluZSBSTF9TVEFURV9OVU1FUklDQVJHCTB4MDAwNDAwCS8qIHJlYWRpbmcgbnVtZXJpYyBhcmd1bWVudCAqLworI2RlZmluZSBSTF9TVEFURV9NQUNST0lOUFVUCTB4MDAwODAwCS8qIGdldHRpbmcgaW5wdXQgZnJvbSBhIG1hY3JvICovCisjZGVmaW5lIFJMX1NUQVRFX01BQ1JPREVGCTB4MDAxMDAwCS8qIGRlZmluaW5nIGtleWJvYXJkIG1hY3JvICovCisjZGVmaW5lIFJMX1NUQVRFX09WRVJXUklURQkweDAwMjAwMAkvKiBvdmVyd3JpdGUgbW9kZSAqLworI2RlZmluZSBSTF9TVEFURV9DT01QTEVUSU5HCTB4MDA0MDAwCS8qIGRvaW5nIGNvbXBsZXRpb24gKi8KKyNkZWZpbmUgUkxfU1RBVEVfU0lHSEFORExFUgkweDAwODAwMAkvKiBpbiByZWFkbGluZSBzaWdoYW5kbGVyICovCisjZGVmaW5lIFJMX1NUQVRFX1VORE9JTkcJMHgwMTAwMDAJLyogZG9pbmcgYW4gdW5kbyAqLworI2RlZmluZSBSTF9TVEFURV9JTlBVVFBFTkRJTkcJMHgwMjAwMDAJLyogcmxfZXhlY3V0ZV9uZXh0IGNhbGxlZCAqLworI2RlZmluZSBSTF9TVEFURV9UVFlDU0FWRUQJMHgwNDAwMDAJLyogdHR5IHNwZWNpYWwgY2hhcnMgc2F2ZWQgKi8KKyNkZWZpbmUgUkxfU1RBVEVfQ0FMTEJBQ0sJMHgwODAwMDAJLyogdXNpbmcgdGhlIGNhbGxiYWNrIGludGVyZmFjZSAqLworI2RlZmluZSBSTF9TVEFURV9WSU1PVElPTgkweDEwMDAwMAkvKiByZWFkaW5nIHZpIG1vdGlvbiBhcmcgKi8KKyNkZWZpbmUgUkxfU1RBVEVfTVVMVElLRVkJMHgyMDAwMDAJLyogcmVhZGluZyBtdWx0aXBsZS1rZXkgY29tbWFuZCAqLworI2RlZmluZSBSTF9TVEFURV9WSUNNRE9OQ0UJMHg0MDAwMDAJLyogZW50ZXJlZCB2aSBjb21tYW5kIG1vZGUgYXQgbGVhc3Qgb25jZSAqLwogCi0jZGVmaW5lIFJMX1NUQVRFX0RPTkUJCTB4ODAwMDAJCS8qIGRvbmU7IGFjY2VwdGVkIGxpbmUgKi8KKyNkZWZpbmUgUkxfU1RBVEVfRE9ORQkJMHg4MDAwMDAJLyogZG9uZTsgYWNjZXB0ZWQgbGluZSAqLwogCiAjZGVmaW5lIFJMX1NFVFNUQVRFKHgpCQkocmxfcmVhZGxpbmVfc3RhdGUgfD0gKHgpKQogI2RlZmluZSBSTF9VTlNFVFNUQVRFKHgpCShybF9yZWFkbGluZV9zdGF0ZSAmPSB+KHgpKQpAQCAtNzg1LDYgKzgyOSwxMiBAQAogICBpbnQgY2F0Y2hzaWdzOwogICBpbnQgY2F0Y2hzaWd3aW5jaDsKIAorICAvKiBzZWFyY2ggc3RhdGUgKi8KKworICAvKiBjb21wbGV0aW9uIHN0YXRlICovCisKKyAgLyogb3B0aW9ucyBzdGF0ZSAqLworCiAgIC8qIHJlc2VydmVkIGZvciBmdXR1cmUgZXhwYW5zaW9uLCBzbyB0aGUgc3RydWN0IHNpemUgZG9lc24ndCBjaGFuZ2UgKi8KICAgY2hhciByZXNlcnZlZFs2NF07CiB9OwpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvcmxkZWZzLmggYi9yZWFkbGluZS9ybGRlZnMuaAppbmRleCA0YTI4YmQxLi4wZjZjODc0IDEwMDY0NAotLS0gYS9yZWFkbGluZS9ybGRlZnMuaAorKysgYi9yZWFkbGluZS9ybGRlZnMuaApAQCAtMiw3ICsyLDcgQEAKICAgIGZvciByZWFkbGluZS4gIFRoaXMgc2hvdWxkIGJlIGluY2x1ZGVkIGFmdGVyIGFueSBmaWxlcyB0aGF0IGRlZmluZQogICAgc3lzdGVtLXNwZWNpZmljIGNvbnN0YW50cyBsaWtlIF9QT1NJWF9WRVJTSU9OIG9yIFVTRy4gKi8KIAotLyogQ29weXJpZ2h0IChDKSAxOTg3LDE5ODkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisvKiBDb3B5cmlnaHQgKEMpIDE5ODctMjAwNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIAogICAgVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBSZWFkbGluZSBMaWJyYXJ5ICh0aGUgTGlicmFyeSksIGEgc2V0IG9mCiAgICByb3V0aW5lcyBmb3IgcHJvdmlkaW5nIEVtYWNzIHN0eWxlIGxpbmUgaW5wdXQgdG8gcHJvZ3JhbXMgdGhhdCBhc2sKQEAgLTM4LDcgKzM4LDExIEBACiAjICBpZiBkZWZpbmVkIChIQVZFX1RFUk1JT19IKQogIyAgICBkZWZpbmUgVEVSTUlPX1RUWV9EUklWRVIKICMgIGVsc2UKLSMgICAgZGVmaW5lIE5FV19UVFlfRFJJVkVSCisjICAgIGlmICFkZWZpbmVkIChfX01JTkdXMzJfXykKKyMgICAgICBkZWZpbmUgTkVXX1RUWV9EUklWRVIKKyMgICAgZWxzZQorIyAgICAgIGRlZmluZSBOT19UVFlfRFJJVkVSCisjICAgIGVuZGlmCiAjICBlbmRpZgogI2VuZGlmCiAKQEAgLTc3LDcgKzgxLDcgQEAKIGV4dGVybiBpbnQgX3JsX3N0cm5pY21wIFBBUkFNUygoY2hhciAqLCBjaGFyICosIGludCkpOwogI2VuZGlmCiAKLSNpZiBkZWZpbmVkIChIQVZFX1NUUlBCUkspCisjaWYgZGVmaW5lZCAoSEFWRV9TVFJQQlJLKSAmJiAhZGVmaW5lZCAoSEFWRV9NVUxUSUJZVEUpCiAjICBkZWZpbmUgX3JsX3N0cnBicmsoYSxiKQlzdHJwYnJrKChhKSwoYikpCiAjZWxzZQogZXh0ZXJuIGNoYXIgKl9ybF9zdHJwYnJrIFBBUkFNUygoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopKTsKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL3JsbWJ1dGlsLmggYi9yZWFkbGluZS9ybG1idXRpbC5oCmluZGV4IDI3Y2EzMmIuLjExYWRhY2IgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL3JsbWJ1dGlsLmgKKysrIGIvcmVhZGxpbmUvcmxtYnV0aWwuaApAQCAtMzUsMTEgKzM1LDE4IEBACiAjaWYgZGVmaW5lZCAoSEFWRV9XQ1RZUEVfSCkgJiYgZGVmaW5lZCAoSEFWRV9XQ0hBUl9IKQogIyAgaW5jbHVkZSA8d2NoYXIuaD4KICMgIGluY2x1ZGUgPHdjdHlwZS5oPgotIyAgaWYgZGVmaW5lZCAoSEFWRV9NQlNSVE9XQ1MpIC8qIHN5c3RlbSBpcyBzdXBwb3NlZCB0byBzdXBwb3J0IFhQRzUgKi8KKyMgIGlmIGRlZmluZWQgKEhBVkVfTUJTUlRPV0NTKSAmJiBkZWZpbmVkIChIQVZFX01CUlRPV0MpICYmIGRlZmluZWQgKEhBVkVfTUJSTEVOKSAmJiBkZWZpbmVkIChIQVZFX1dDV0lEVEgpCisgICAgIC8qIHN5c3RlbSBpcyBzdXBwb3NlZCB0byBzdXBwb3J0IFhQRzUgKi8KICMgICAgZGVmaW5lIEhBTkRMRV9NVUxUSUJZVEUgICAgICAxCiAjICBlbmRpZgogI2VuZGlmCiAKKy8qIElmIHdlIGRvbid0IHdhbnQgbXVsdGlieXRlIGNoYXJzIGV2ZW4gb24gYSBzeXN0ZW0gdGhhdCBzdXBwb3J0cyB0aGVtLCBsZXQKKyAgIHRoZSBjb25maWd1cmluZyB1c2VyIHR1cm4gbXVsdGlieXRlIHN1cHBvcnQgb2ZmLiAqLworI2lmIGRlZmluZWQgKE5PX01VTFRJQllURV9TVVBQT1JUKQorIyAgdW5kZWYgSEFORExFX01VTFRJQllURQorI2VuZGlmCisKIC8qIFNvbWUgc3lzdGVtcywgbGlrZSBCZU9TLCBoYXZlIG11bHRpYnl0ZSBlbmNvZGluZ3MgYnV0IGxhY2sgbWJzdGF0ZV90LiAgKi8KICNpZiBIQU5ETEVfTVVMVElCWVRFICYmICFkZWZpbmVkIChIQVZFX01CU1RBVEVfVCkKICMgIGRlZmluZSB3Y3NydG9tYnMoZGVzdCwgc3JjLCBsZW4sIHBzKSAod2NzcnRvbWJzKSAoZGVzdCwgc3JjLCBsZW4sIDApCkBAIC05MCw2ICs5NywyNCBAQAogCiBleHRlcm4gaW50IF9ybF9pc19tYmNoYXJfbWF0Y2hlZCBQQVJBTVMoKGNoYXIgKiwgaW50LCBpbnQsIGNoYXIgKiwgaW50KSk7CiAKK2V4dGVybiB3Y2hhcl90IF9ybF9jaGFyX3ZhbHVlIFBBUkFNUygoY2hhciAqLCBpbnQpKTsKK2V4dGVybiBpbnQgX3JsX3dhbHBoYWJldGljIFBBUkFNUygod2NoYXJfdCkpOworCisjZGVmaW5lIF9ybF90b193dXBwZXIod2MpCShpc3dsb3dlciAod2MpID8gdG93dXBwZXIgKHdjKSA6ICh3YykpCisjZGVmaW5lIF9ybF90b193bG93ZXIod2MpCShpc3d1cHBlciAod2MpID8gdG93bG93ZXIgKHdjKSA6ICh3YykpCisKKyNkZWZpbmUgTUJfTkVYVENIQVIoYixzLGMsZikgXAorCSgoTUJfQ1VSX01BWCA+IDEgJiYgcmxfYnl0ZV9vcmllbnRlZCA9PSAwKSBcCisJCT8gX3JsX2ZpbmRfbmV4dF9tYmNoYXIgKChiKSwgKHMpLCAoYyksIChmKSkgXAorCQk6ICgocykgKyAoYykpKQorI2RlZmluZSBNQl9QUkVWQ0hBUihiLHMsZikgXAorCSgoTUJfQ1VSX01BWCA+IDEgJiYgcmxfYnl0ZV9vcmllbnRlZCA9PSAwKSBcCisJCT8gX3JsX2ZpbmRfcHJldl9tYmNoYXIgKChiKSwgKHMpLCAoZikpIFwKKwkJOiAoKHMpIC0gMSkpCisKKyNkZWZpbmUgTUJfSU5WQUxJRENIKHgpCQkoKHgpID09IChzaXplX3QpLTEgfHwgKHgpID09IChzaXplX3QpLTIpCisjZGVmaW5lIE1CX05VTExXQ0goeCkJCSgoeCkgPT0gMCkKKwogI2Vsc2UgLyogIUhBTkRMRV9NVUxUSUJZVEUgKi8KIAogI3VuZGVmIE1CX0xFTl9NQVgKQEAgLTEwMSw2ICsxMjYsMTkgQEAKICNkZWZpbmUgX3JsX2ZpbmRfcHJldl9tYmNoYXIoYiwgaSwgZikJCSgoKGkpID09IDApID8gKGkpIDogKChpKSAtIDEpKQogI2RlZmluZSBfcmxfZmluZF9uZXh0X21iY2hhcihiLCBpMSwgaTIsIGYpCSgoaTEpICsgKGkyKSkKIAorI2RlZmluZSBfcmxfY2hhcl92YWx1ZShidWYsaW5kKQkoKGJ1ZilbKGluZCldKQorCisjZGVmaW5lIF9ybF93YWxwaGFiZXRpYyhjKQkocmxfYWxwaGFiZXRpYyAoYykpCisKKyNkZWZpbmUgX3JsX3RvX3d1cHBlcihjKQkoX3JsX3RvX3VwcGVyIChjKSkKKyNkZWZpbmUgX3JsX3RvX3dsb3dlcihjKQkoX3JsX3RvX2xvd2VyIChjKSkKKworI2RlZmluZSBNQl9ORVhUQ0hBUihiLHMsYyxmKQkoKHMpICsgKGMpKQorI2RlZmluZSBNQl9QUkVWQ0hBUihiLHMsZikJKChzKSAtIDEpCisKKyNkZWZpbmUgTUJfSU5WQUxJRENIKHgpCQkoMCkKKyNkZWZpbmUgTUJfTlVMTFdDSCh4KQkJKDApCisKICNlbmRpZiAvKiAhSEFORExFX01VTFRJQllURSAqLwogCiBleHRlcm4gaW50IHJsX2J5dGVfb3JpZW50ZWQ7CmRpZmYgLS1naXQgYS9yZWFkbGluZS9ybHByaXZhdGUuaCBiL3JlYWRsaW5lL3JscHJpdmF0ZS5oCmluZGV4IGNjYjkxNDQuLjFjMjE2ZWEgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL3JscHJpdmF0ZS5oCisrKyBiL3JlYWRsaW5lL3JscHJpdmF0ZS5oCkBAIC0xLDcgKzEsNyBAQAogLyogcmxwcml2YXRlLmggLS0gZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMgZ2xvYmFsIHRvIHRoZSByZWFkbGluZSBsaWJyYXJ5LAogCQkgIGJ1dCBub3QgaW50ZW5kZWQgZm9yIHVzZSBieSBhcHBsaWNhdGlvbnMuICovCiAKLS8qIENvcHlyaWdodCAoQykgMTk5OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKy8qIENvcHlyaWdodCAoQykgMTk5OS0yMDA1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIFJlYWRsaW5lIExpYnJhcnksIGEgbGlicmFyeSBmb3IKICAgIHJlYWRpbmcgbGluZXMgb2YgdGV4dCB3aXRoIGludGVyYWN0aXZlIGlucHV0IGFuZCBoaXN0b3J5IGVkaXRpbmcuCkBAIC0zMCw2ICszMCw5NSBAQAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoJCQkJCQkJCQkgKgorICogR2xvYmFsIHN0cnVjdHMgdW5kb2N1bWVudGVkIGluIHRleGluZm8gbWFudWFsIGFuZCBub3QgaW4gcmVhZGxpbmUuaCAgICoKKyAqCQkJCQkJCQkJICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogc2VhcmNoIHR5cGVzICovCisjZGVmaW5lIFJMX1NFQVJDSF9JU0VBUkNICTB4MDEJCS8qIGluY3JlbWVudGFsIHNlYXJjaCAqLworI2RlZmluZSBSTF9TRUFSQ0hfTlNFQVJDSAkweDAyCQkvKiBub24taW5jcmVtZW50YWwgc2VhcmNoICovCisjZGVmaW5lIFJMX1NFQVJDSF9DU0VBUkNICTB4MDQJCS8qIGludHJhLWxpbmUgY2hhciBzZWFyY2ggKi8KKworLyogc2VhcmNoIGZsYWdzICovCisjZGVmaW5lIFNGX1JFVkVSU0UJCTB4MDEKKyNkZWZpbmUgU0ZfRk9VTkQJCTB4MDIKKyNkZWZpbmUgU0ZfRkFJTEVECQkweDA0CisKK3R5cGVkZWYgc3RydWN0ICBfX3JsX3NlYXJjaF9jb250ZXh0Cit7CisgIGludCB0eXBlOworICBpbnQgc2ZsYWdzOworCisgIGNoYXIgKnNlYXJjaF9zdHJpbmc7CisgIGludCBzZWFyY2hfc3RyaW5nX2luZGV4OworICBpbnQgc2VhcmNoX3N0cmluZ19zaXplOworCisgIGNoYXIgKipsaW5lczsKKyAgY2hhciAqYWxsb2NhdGVkX2xpbmU7ICAgIAorICBpbnQgaGxlbjsKKyAgaW50IGhpbmRleDsKKworICBpbnQgc2F2ZV9wb2ludDsKKyAgaW50IHNhdmVfbWFyazsKKyAgaW50IHNhdmVfbGluZTsKKyAgaW50IGxhc3RfZm91bmRfbGluZTsKKyAgY2hhciAqcHJldl9saW5lX2ZvdW5kOworCisgIFVORE9fTElTVCAqc2F2ZV91bmRvX2xpc3Q7CisKKyAgaW50IGhpc3RvcnlfcG9zOworICBpbnQgZGlyZWN0aW9uOworCisgIGludCBsYXN0YzsKKyNpZiBkZWZpbmVkIChIQU5ETEVfTVVMVElCWVRFKQorICBjaGFyIG1iW01CX0xFTl9NQVhdOworI2VuZGlmCisKKyAgY2hhciAqc2xpbmU7CisgIGludCBzbGluZV9sZW47CisgIGludCBzbGluZV9pbmRleDsKKworICBjaGFyICAqc2VhcmNoX3Rlcm1pbmF0b3JzOworfSBfcmxfc2VhcmNoX2N4dDsKKworLyogQ2FsbGJhY2sgZGF0YSBmb3IgcmVhZGluZyBudW1lcmljIGFyZ3VtZW50cyAqLworI2RlZmluZSBOVU1fU0FXTUlOVVMJMHgwMQorI2RlZmluZSBOVU1fU0FXRElHSVRTCTB4MDIKKyNkZWZpbmUgTlVNX1JFQURPTkUJMHgwNAorCit0eXBlZGVmIGludCBfcmxfYXJnX2N4dDsKKworLyogQSBjb250ZXh0IGZvciByZWFkaW5nIGtleSBzZXF1ZW5jZXMgbG9uZ2VyIHRoYW4gYSBzaW5nbGUgY2hhcmFjdGVyIHdoZW4KKyAgIHVzaW5nIHRoZSBjYWxsYmFjayBpbnRlcmZhY2UuICovCisjZGVmaW5lIEtTRVFfRElTUEFUQ0hFRAkweDAxCisjZGVmaW5lIEtTRVFfU1VCU0VRCTB4MDIKKyNkZWZpbmUgS1NFUV9SRUNVUlNJVkUJMHgwNAorCit0eXBlZGVmIHN0cnVjdCBfX3JsX2tleXNlcV9jb250ZXh0Cit7CisgIGludCBmbGFnczsKKyAgaW50IHN1YnNlcV9hcmc7CisgIGludCBzdWJzZXFfcmV0dmFsOwkJLyogWFhYICovCisgIEtleW1hcCBkbWFwOworCisgIEtleW1hcCBvbGRtYXA7CisgIGludCBva2V5OworICBzdHJ1Y3QgX19ybF9rZXlzZXFfY29udGV4dCAqb2N4dDsKKyAgaW50IGNoaWxkdmFsOworfSBfcmxfa2V5c2VxX2N4dDsKKworICAvKiBmaWxsIGluIG1vcmUgYXMgbmVlZGVkICovCisvKiBgR2VuZXJpYycgY2FsbGJhY2sgZGF0YSBhbmQgZnVuY3Rpb25zICovCit0eXBlZGVmIHN0cnVjdCBfX3JsX2NhbGxiYWNrX2dlbmVyaWNfYXJnIAoreworICBpbnQgY291bnQ7CisgIGludCBpMSwgaTI7CisgIC8qIGFkZCBoZXJlIGFzIG5lZWRlZCAqLworfSBfcmxfY2FsbGJhY2tfZ2VuZXJpY19hcmc7CisKK3R5cGVkZWYgaW50IF9ybF9jYWxsYmFja19mdW5jX3QgUEFSQU1TKChfcmxfY2FsbGJhY2tfZ2VuZXJpY19hcmcgKikpOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICoJCQkJCQkJCQkgKgogICogR2xvYmFsIGZ1bmN0aW9ucyB1bmRvY3VtZW50ZWQgaW4gdGV4aW5mbyBtYW51YWwgYW5kIG5vdCBpbiByZWFkbGluZS5oICoKICAqCQkJCQkJCQkJICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwpAQCAtNTQsNiArMTQzLDggQEAKIGV4dGVybiBpbnQgcmxfa2V5X3NlcXVlbmNlX2xlbmd0aDsKIGV4dGVybiBpbnQgcmxfYnl0ZV9vcmllbnRlZDsKIAorZXh0ZXJuIF9ybF9rZXlzZXFfY3h0ICpfcmxfa3NjeHQ7CisKIC8qIGRpc3BsYXkuYyAqLwogZXh0ZXJuIGludCBybF9kaXNwbGF5X2ZpeGVkOwogCkBAIC0xMDAsMTAgKzE5MSwxOSBAQAogZXh0ZXJuIGNoYXIgKnJlYWRsaW5lX2ludGVybmFsX3RlYXJkb3duIFBBUkFNUygoaW50KSk7CiBleHRlcm4gaW50IHJlYWRsaW5lX2ludGVybmFsX2NoYXIgUEFSQU1TKCh2b2lkKSk7CiAKK2V4dGVybiBfcmxfa2V5c2VxX2N4dCAqX3JsX2tleXNlcV9jeHRfYWxsb2MgUEFSQU1TKCh2b2lkKSk7CitleHRlcm4gdm9pZCBfcmxfa2V5c2VxX2N4dF9kaXNwb3NlIFBBUkFNUygoX3JsX2tleXNlcV9jeHQgKikpOworZXh0ZXJuIHZvaWQgX3JsX2tleXNlcV9jaGFpbl9kaXNwb3NlIFBBUkFNUygodm9pZCkpOworCitleHRlcm4gaW50IF9ybF9kaXNwYXRjaF9jYWxsYmFjayBQQVJBTVMoKF9ybF9rZXlzZXFfY3h0ICopKTsKKyAgICAgCisvKiBjYWxsYmFjay5jICovCitleHRlcm4gX3JsX2NhbGxiYWNrX2dlbmVyaWNfYXJnICpfcmxfY2FsbGJhY2tfZGF0YV9hbGxvYyBQQVJBTVMoKGludCkpOworZXh0ZXJuIHZvaWQgX3JsX2NhbGxiYWNrX2RhdGFfZGlzcG9zZSBQQVJBTVMoKF9ybF9jYWxsYmFja19nZW5lcmljX2FyZyAqKSk7CisKICNlbmRpZiAvKiBSRUFETElORV9DQUxMQkFDS1MgKi8KIAogLyogYmluZC5jICovCi1leHRlcm4gdm9pZCBfcmxfYmluZF9pZl91bmJvdW5kIFBBUkFNUygoY29uc3QgY2hhciAqLCBybF9jb21tYW5kX2Z1bmNfdCAqKSk7CiAKIC8qIGNvbXBsZXRlLmMgKi8KIGV4dGVybiBjaGFyIF9ybF9maW5kX2NvbXBsZXRpb25fd29yZCBQQVJBTVMoKGludCAqLCBpbnQgKikpOwpAQCAtMTMxLDYgKzIzMSwxNiBAQAogZXh0ZXJuIGludCBfcmxfaW5wdXRfcXVldWVkIFBBUkFNUygoaW50KSk7CiBleHRlcm4gdm9pZCBfcmxfaW5zZXJ0X3R5cGVpbiBQQVJBTVMoKGludCkpOwogZXh0ZXJuIGludCBfcmxfdW5nZXRfY2hhciBQQVJBTVMoKGludCkpOworZXh0ZXJuIGludCBfcmxfcHVzaGVkX2lucHV0X2F2YWlsYWJsZSBQQVJBTVMoKHZvaWQpKTsKKworLyogaXNlYXJjaC5jICovCitleHRlcm4gX3JsX3NlYXJjaF9jeHQgKl9ybF9zY3h0X2FsbG9jIFBBUkFNUygoaW50LCBpbnQpKTsKK2V4dGVybiB2b2lkIF9ybF9zY3h0X2Rpc3Bvc2UgUEFSQU1TKChfcmxfc2VhcmNoX2N4dCAqLCBpbnQpKTsKKworZXh0ZXJuIGludCBfcmxfaXNlYXJjaF9kaXNwYXRjaCBQQVJBTVMoKF9ybF9zZWFyY2hfY3h0ICosIGludCkpOworZXh0ZXJuIGludCBfcmxfaXNlYXJjaF9jYWxsYmFjayBQQVJBTVMoKF9ybF9zZWFyY2hfY3h0ICopKTsKKworZXh0ZXJuIGludCBfcmxfc2VhcmNoX2dldGNoYXIgUEFSQU1TKChfcmxfc2VhcmNoX2N4dCAqKSk7CiAKIC8qIG1hY3JvLmMgKi8KIGV4dGVybiB2b2lkIF9ybF93aXRoX21hY3JvX2lucHV0IFBBUkFNUygoY2hhciAqKSk7CkBAIC0xNDEsNyArMjUxLDEyIEBACiBleHRlcm4gdm9pZCBfcmxfa2lsbF9rYmRfbWFjcm8gUEFSQU1TKCh2b2lkKSk7CiAKIC8qIG1pc2MuYyAqLwotZXh0ZXJuIGludCBfcmxfaW5pdF9hcmd1bWVudCBQQVJBTVMoKHZvaWQpKTsKK2V4dGVybiBpbnQgX3JsX2FyZ19vdmVyZmxvdyBQQVJBTVMoKHZvaWQpKTsKK2V4dGVybiB2b2lkIF9ybF9hcmdfaW5pdCBQQVJBTVMoKHZvaWQpKTsKK2V4dGVybiBpbnQgX3JsX2FyZ19nZXRjaGFyIFBBUkFNUygodm9pZCkpOworZXh0ZXJuIGludCBfcmxfYXJnX2NhbGxiYWNrIFBBUkFNUygoX3JsX2FyZ19jeHQpKTsKK2V4dGVybiB2b2lkIF9ybF9yZXNldF9hcmd1bWVudCBQQVJBTVMoKHZvaWQpKTsKKwogZXh0ZXJuIHZvaWQgX3JsX3N0YXJ0X3VzaW5nX2hpc3RvcnkgUEFSQU1TKCh2b2lkKSk7CiBleHRlcm4gaW50IF9ybF9mcmVlX3NhdmVkX2hpc3RvcnlfbGluZSBQQVJBTVMoKHZvaWQpKTsKIGV4dGVybiB2b2lkIF9ybF9zZXRfaW5zZXJ0X21vZGUgUEFSQU1TKChpbnQsIGludCkpOwpAQCAtMTU3LDExICsyNzIsMTUgQEAKIGV4dGVybiB2b2lkIF9ybF9zZXRfdGhlX2xpbmUgUEFSQU1TKCh2b2lkKSk7CiBleHRlcm4gaW50IF9ybF9kaXNwYXRjaCBQQVJBTVMoKGludCwgS2V5bWFwKSk7CiBleHRlcm4gaW50IF9ybF9kaXNwYXRjaF9zdWJzZXEgUEFSQU1TKChpbnQsIEtleW1hcCwgaW50KSk7CitleHRlcm4gdm9pZCBfcmxfaW50ZXJuYWxfY2hhcl9jbGVhbnVwIFBBUkFNUygodm9pZCkpOwogCiAvKiBybHR0eS5jICovCiBleHRlcm4gaW50IF9ybF9kaXNhYmxlX3R0eV9zaWduYWxzIFBBUkFNUygodm9pZCkpOwogZXh0ZXJuIGludCBfcmxfcmVzdG9yZV90dHlfc2lnbmFscyBQQVJBTVMoKHZvaWQpKTsKIAorLyogc2VhcmNoLmMgKi8KK2V4dGVybiBpbnQgX3JsX25zZWFyY2hfY2FsbGJhY2sgUEFSQU1TKChfcmxfc2VhcmNoX2N4dCAqKSk7CisKIC8qIHRlcm1pbmFsLmMgKi8KIGV4dGVybiB2b2lkIF9ybF9nZXRfc2NyZWVuX3NpemUgUEFSQU1TKChpbnQsIGludCkpOwogZXh0ZXJuIGludCBfcmxfaW5pdF90ZXJtaW5hbF9pbyBQQVJBTVMoKGNvbnN0IGNoYXIgKikpOwpAQCAtMjE3LDggKzMzNiwxMyBAQAogZXh0ZXJuIGNvbnN0IGNoYXIgKl9ybF9wb3NzaWJsZV9jb250cm9sX3ByZWZpeGVzW107CiBleHRlcm4gY29uc3QgY2hhciAqX3JsX3Bvc3NpYmxlX21ldGFfcHJlZml4ZXNbXTsKIAorLyogY2FsbGJhY2suYyAqLworZXh0ZXJuIF9ybF9jYWxsYmFja19mdW5jX3QgKl9ybF9jYWxsYmFja19mdW5jOworZXh0ZXJuIF9ybF9jYWxsYmFja19nZW5lcmljX2FyZyAqX3JsX2NhbGxiYWNrX2RhdGE7CisKIC8qIGNvbXBsZXRlLmMgKi8KIGV4dGVybiBpbnQgX3JsX2NvbXBsZXRlX3Nob3dfYWxsOworZXh0ZXJuIGludCBfcmxfY29tcGxldGVfc2hvd191bm1vZGlmaWVkOwogZXh0ZXJuIGludCBfcmxfY29tcGxldGVfbWFya19kaXJlY3RvcmllczsKIGV4dGVybiBpbnQgX3JsX2NvbXBsZXRlX21hcmtfc3ltbGlua19kaXJzOwogZXh0ZXJuIGludCBfcmxfcHJpbnRfY29tcGxldGlvbnNfaG9yaXpvbnRhbGx5OwpAQCAtMjMwLDExICszNTQsMTQgQEAKIGV4dGVybiBpbnQgX3JsX3Zpc19ib3RsaW47CiBleHRlcm4gaW50IF9ybF9sYXN0X2NfcG9zOwogZXh0ZXJuIGludCBfcmxfc3VwcHJlc3NfcmVkaXNwbGF5OworZXh0ZXJuIGludCBfcmxfd2FudF9yZWRpc3BsYXk7CiBleHRlcm4gY2hhciAqcmxfZGlzcGxheV9wcm9tcHQ7CiAKIC8qIGlzZWFyY2guYyAqLwogZXh0ZXJuIGNoYXIgKl9ybF9pc2VhcmNoX3Rlcm1pbmF0b3JzOwogCitleHRlcm4gX3JsX3NlYXJjaF9jeHQgKl9ybF9pc2N4dDsKKwogLyogbWFjcm8uYyAqLwogZXh0ZXJuIGNoYXIgKl9ybF9leGVjdXRpbmdfbWFjcm87CiAKQEAgLTI0Miw2ICszNjksOCBAQAogZXh0ZXJuIGludCBfcmxfaGlzdG9yeV9wcmVzZXJ2ZV9wb2ludDsKIGV4dGVybiBpbnQgX3JsX2hpc3Rvcnlfc2F2ZWRfcG9pbnQ7CiAKK2V4dGVybiBfcmxfYXJnX2N4dCBfcmxfYXJnY3h0OworCiAvKiByZWFkbGluZS5jICovCiBleHRlcm4gaW50IF9ybF9ob3Jpem9udGFsX3Njcm9sbF9tb2RlOwogZXh0ZXJuIGludCBfcmxfbWFya19tb2RpZmllZF9saW5lczsKQEAgLTI0OSw2ICszNzgsNyBAQAogZXh0ZXJuIGludCBfcmxfbWV0YV9mbGFnOwogZXh0ZXJuIGludCBfcmxfY29udmVydF9tZXRhX2NoYXJzX3RvX2FzY2lpOwogZXh0ZXJuIGludCBfcmxfb3V0cHV0X21ldGFfY2hhcnM7CitleHRlcm4gaW50IF9ybF9iaW5kX3N0dHlfY2hhcnM7CiBleHRlcm4gY2hhciAqX3JsX2NvbW1lbnRfYmVnaW47CiBleHRlcm4gdW5zaWduZWQgY2hhciBfcmxfcGFyc2luZ19jb25kaXRpb25hbGl6ZWRfb3V0OwogZXh0ZXJuIEtleW1hcCBfcmxfa2V5bWFwOwpAQCAtMjU4LDYgKzM4OCw5IEBACiBleHRlcm4gaW50IF9ybF9lb2ZfY2hhcjsKIGV4dGVybiBwcm9jZW52X3QgcmVhZGxpbmVfdG9wX2xldmVsOwogCisvKiBzZWFyY2guYyAqLworZXh0ZXJuIF9ybF9zZWFyY2hfY3h0ICpfcmxfbnNjeHQ7CisKIC8qIHRlcm1pbmFsLmMgKi8KIGV4dGVybiBpbnQgX3JsX2VuYWJsZV9rZXlwYWQ7CiBleHRlcm4gaW50IF9ybF9lbmFibGVfbWV0YTsKQEAgLTI4MSw0ICs0MTQsNyBAQAogZXh0ZXJuIGludCBfcmxfZG9pbmdfYW5fdW5kbzsKIGV4dGVybiBpbnQgX3JsX3VuZG9fZ3JvdXBfbGV2ZWw7CiAKKy8qIHZpX21vZGUuYyAqLworZXh0ZXJuIGludCBfcmxfdmlfbGFzdF9jb21tYW5kOworCiAjZW5kaWYgLyogX1JMX1BSSVZBVEVfSF8gKi8KZGlmZiAtLWdpdCBhL3JlYWRsaW5lL3Jsc3RkYy5oIGIvcmVhZGxpbmUvcmxzdGRjLmgKaW5kZXggZDZhMjJiMy4uODQ3ZmE5YyAxMDA2NDQKLS0tIGEvcmVhZGxpbmUvcmxzdGRjLmgKKysrIGIvcmVhZGxpbmUvcmxzdGRjLmgKQEAgLTM3LDcgKzM3LDcgQEAKICNlbmRpZgogCiAjaWZuZGVmIF9fYXR0cmlidXRlX18KLSMgIGlmIF9fR05VQ19fIDwgMiB8fCAoX19HTlVDX18gPT0gMiAmJiBfX0dOVUNfTUlOT1JfXyA8IDgpIHx8IF9fU1RSSUNUX0FOU0lfXworIyAgaWYgX19HTlVDX18gPCAyIHx8IChfX0dOVUNfXyA9PSAyICYmIF9fR05VQ19NSU5PUl9fIDwgOCkKICMgICAgZGVmaW5lIF9fYXR0cmlidXRlX18oeCkKICMgIGVuZGlmCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL3JsdHR5LmMgYi9yZWFkbGluZS9ybHR0eS5jCmluZGV4IDc1NWVmZWIuLjlhMDMyNmUgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL3JsdHR5LmMKKysrIGIvcmVhZGxpbmUvcmx0dHkuYwpAQCAtMSw3ICsxLDcgQEAKIC8qIHJsdHR5LmMgLS0gZnVuY3Rpb25zIHRvIHByZXBhcmUgYW5kIHJlc3RvcmUgdGhlIHRlcm1pbmFsIGZvciByZWFkbGluZSdzCiAgICB1c2UuICovCiAKLS8qIENvcHlyaWdodCAoQykgMTk5MiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKy8qIENvcHlyaWdodCAoQykgMTk5Mi0yMDA1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIFJlYWRsaW5lIExpYnJhcnksIGEgbGlicmFyeSBmb3IKICAgIHJlYWRpbmcgbGluZXMgb2YgdGV4dCB3aXRoIGludGVyYWN0aXZlIGlucHV0IGFuZCBoaXN0b3J5IGVkaXRpbmcuCkBAIC0xNTIsNyArMTUyLDkgQEAKICNlbmRpZiAvKiBUSU9DR1dJTlNaICovCiB9CiAKLSNpZiBkZWZpbmVkIChORVdfVFRZX0RSSVZFUikKKyNpZiBkZWZpbmVkIChOT19UVFlfRFJJVkVSKQorLyogTm90aGluZyAqLworI2VsaWYgZGVmaW5lZCAoTkVXX1RUWV9EUklWRVIpCiAKIC8qIFZhbHVlcyBmb3IgdGhlIGBmbGFncycgZmllbGQgb2YgYSBzdHJ1Y3QgYnNkdHR5LiAgVGhpcyB0ZWxscyB3aGljaAogICAgZWxlbWVudHMgb2YgdGhlIHN0cnVjdCBic2R0dHkgaGF2ZSBiZWVuIGZldGNoZWQgZnJvbSB0aGUgc3lzdGVtIGFuZApAQCAtMTg2LDYgKzE4OCw4IEBACiAKIHN0YXRpYyB2b2lkIHByZXBhcmVfdGVybWluYWxfc2V0dGluZ3MgUEFSQU1TKChpbnQsIFRJT1RZUEUsIFRJT1RZUEUgKikpOwogCitzdGF0aWMgdm9pZCBzZXRfc3BlY2lhbF9jaGFyIFBBUkFNUygoS2V5bWFwLCBUSU9UWVBFICosIGludCwgcmxfY29tbWFuZF9mdW5jX3QpKTsKKwogc3RhdGljIHZvaWQKIHNhdmVfdHR5X2NoYXJzICh0aW9wKQogICAgICBUSU9UWVBFICp0aW9wOwpAQCAtMjMxLDYgKzIzNSw3IEBACiAKICAgdGlvcC0+ZmxhZ3MgPSB0aW9wLT5sZmxhZyA9IDA7CiAKKyAgZXJybm8gPSAwOwogICBpZiAoaW9jdGwgKHR0eSwgVElPQ0dFVFAsICYodGlvcC0+c2d0dHliKSkgPCAwKQogICAgIHJldHVybiAtMTsKICAgdGlvcC0+ZmxhZ3MgfD0gU0dUVFlfU0VUOwpAQCAtNDAwLDYgKzQwNSw5IEBACiAKIHN0YXRpYyB2b2lkIHByZXBhcmVfdGVybWluYWxfc2V0dGluZ3MgUEFSQU1TKChpbnQsIFRJT1RZUEUsIFRJT1RZUEUgKikpOwogCitzdGF0aWMgdm9pZCBzZXRfc3BlY2lhbF9jaGFyIFBBUkFNUygoS2V5bWFwLCBUSU9UWVBFICosIGludCwgcmxfY29tbWFuZF9mdW5jX3QpKTsKK3N0YXRpYyB2b2lkIF9ybF9iaW5kX3R0eV9zcGVjaWFsX2NoYXJzIFBBUkFNUygoS2V5bWFwLCBUSU9UWVBFKSk7CisKICNpZiBkZWZpbmVkIChGTFVTSE8pCiAjICBkZWZpbmUgT1VUUFVUX0JFSU5HX0ZMVVNIRUQodHApICAodHAtPmNfbGZsYWcgJiBGTFVTSE8pCiAjZWxzZQpAQCAtNTEzLDYgKzUyMSw3IEBACiB7CiAgIHNldF93aW5zaXplICh0dHkpOwogCisgIGVycm5vID0gMDsKICAgaWYgKF9nZXRfdHR5X3NldHRpbmdzICh0dHksIHRpb3ApIDwgMCkKICAgICByZXR1cm4gLTE7CiAKQEAgLTYyNiw5ICs2MzUsMjMgQEAKIAogI2VuZGlmIC8qIFRFUk1JT1NfVFRZX0RSSVZFUiAmJiBfUE9TSVhfVkRJU0FCTEUgKi8KIH0KLSNlbmRpZiAgLyogTkVXX1RUWV9EUklWRVIgKi8KKyNlbmRpZiAgLyogIU5FV19UVFlfRFJJVkVSICovCiAKIC8qIFB1dCB0aGUgdGVybWluYWwgaW4gQ0JSRUFLIG1vZGUgc28gdGhhdCB3ZSBjYW4gZGV0ZWN0IGtleSBwcmVzc2VzLiAqLworI2lmIGRlZmluZWQgKE5PX1RUWV9EUklWRVIpCit2b2lkCitybF9wcmVwX3Rlcm1pbmFsIChtZXRhX2ZsYWcpCisgICAgIGludCBtZXRhX2ZsYWc7Cit7CisgIHJlYWRsaW5lX2VjaG9pbmdfcCA9IDE7Cit9CisKK3ZvaWQKK3JsX2RlcHJlcF90ZXJtaW5hbCAoKQoreworfQorCisjZWxzZSAvKiAhIE5PX1RUWV9EUklWRVIgKi8KIHZvaWQKIHJsX3ByZXBfdGVybWluYWwgKG1ldGFfZmxhZykKICAgICAgaW50IG1ldGFfZmxhZzsKQEAgLTY0NiwxMyArNjY5LDQzIEBACiAKICAgaWYgKGdldF90dHlfc2V0dGluZ3MgKHR0eSwgJnRpbykgPCAwKQogICAgIHsKKyNpZiBkZWZpbmVkIChFTk9UU1VQKQorICAgICAgLyogTWFjT1MgWCwgYXQgbGVhc3QsIGxpZXMgYWJvdXQgdGhlIHZhbHVlIG9mIGVycm5vIGlmIHRjZ2V0YXR0ciBmYWlscy4gKi8KKyAgICAgIGlmIChlcnJubyA9PSBFTk9UVFkgfHwgZXJybm8gPT0gRU5PVFNVUCkKKyNlbHNlCisgICAgICBpZiAoZXJybm8gPT0gRU5PVFRZKQorI2VuZGlmCisJcmVhZGxpbmVfZWNob2luZ19wID0gMTsJCS8qIFhYWCAqLwogICAgICAgcmVsZWFzZV9zaWdpbnQgKCk7CiAgICAgICByZXR1cm47CiAgICAgfQogCiAgIG90aW8gPSB0aW87CiAKKyAgaWYgKF9ybF9iaW5kX3N0dHlfY2hhcnMpCisgICAgeworI2lmIGRlZmluZWQgKFZJX01PREUpCisgICAgICAvKiBJZiBlZGl0aW5nIGluIHZpIG1vZGUsIG1ha2Ugc3VyZSB3ZSByZXN0b3JlIHRoZSBiaW5kaW5ncyBpbiB0aGUKKwkgaW5zZXJ0aW9uIGtleW1hcCBubyBtYXR0ZXIgd2hhdCBrZXltYXAgd2UgZW5kZWQgdXAgaW4uICovCisgICAgICBpZiAocmxfZWRpdGluZ19tb2RlID09IHZpX21vZGUpCisJcmxfdHR5X3Vuc2V0X2RlZmF1bHRfYmluZGluZ3MgKHZpX2luc2VydGlvbl9rZXltYXApOworICAgICAgZWxzZQorI2VuZGlmCisJcmxfdHR5X3Vuc2V0X2RlZmF1bHRfYmluZGluZ3MgKF9ybF9rZXltYXApOworICAgIH0KICAgc2F2ZV90dHlfY2hhcnMgKCZvdGlvKTsKKyAgUkxfU0VUU1RBVEUoUkxfU1RBVEVfVFRZQ1NBVkVEKTsKKyAgaWYgKF9ybF9iaW5kX3N0dHlfY2hhcnMpCisgICAgeworI2lmIGRlZmluZWQgKFZJX01PREUpCisgICAgICAvKiBJZiBlZGl0aW5nIGluIHZpIG1vZGUsIG1ha2Ugc3VyZSB3ZSBzZXQgdGhlIGJpbmRpbmdzIGluIHRoZQorCSBpbnNlcnRpb24ga2V5bWFwIG5vIG1hdHRlciB3aGF0IGtleW1hcCB3ZSBlbmRlZCB1cCBpbi4gKi8KKyAgICAgIGlmIChybF9lZGl0aW5nX21vZGUgPT0gdmlfbW9kZSkKKwlfcmxfYmluZF90dHlfc3BlY2lhbF9jaGFycyAodmlfaW5zZXJ0aW9uX2tleW1hcCwgdGlvKTsJCisgICAgICBlbHNlCisjZW5kaWYKKwlfcmxfYmluZF90dHlfc3BlY2lhbF9jaGFycyAoX3JsX2tleW1hcCwgdGlvKTsKKyAgICB9CiAKICAgcHJlcGFyZV90ZXJtaW5hbF9zZXR0aW5ncyAobWV0YV9mbGFnLCBvdGlvLCAmdGlvKTsKIApAQCAtNzAyLDYgKzc1NSw3IEBACiAKICAgcmVsZWFzZV9zaWdpbnQgKCk7CiB9CisjZW5kaWYgLyogIU5PX1RUWV9EUklWRVIgKi8KIAwKIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KIC8qCQkJCQkJCQkgICAgKi8KQEAgLTcxMyw2ICs3NjcsMTAgQEAKIHJsX3Jlc3RhcnRfb3V0cHV0IChjb3VudCwga2V5KQogICAgICBpbnQgY291bnQsIGtleTsKIHsKKyNpZiBkZWZpbmVkIChfX01JTkdXMzJfXykKKyAgcmV0dXJuIDA7CisjZWxzZSAvKiAhX19NSU5HMzJfXyAqLworCiAgIGludCBmaWxkZXMgPSBmaWxlbm8gKHJsX291dHN0cmVhbSk7CiAjaWYgZGVmaW5lZCAoVElPQ1NUQVJUKQogI2lmIGRlZmluZWQgKGFwb2xsbykKQEAgLTc0MCwxMiArNzk4LDE3IEBACiAjZW5kaWYgLyogIVRJT0NTVEFSVCAqLwogCiAgIHJldHVybiAwOworI2VuZGlmIC8qICFfX01JTkdXMzJfXyAqLwogfQogCiBpbnQKIHJsX3N0b3Bfb3V0cHV0IChjb3VudCwga2V5KQogICAgICBpbnQgY291bnQsIGtleTsKIHsKKyNpZiBkZWZpbmVkIChfX01JTkdXMzJfXykKKyAgcmV0dXJuIDA7CisjZWxzZQorCiAgIGludCBmaWxkZXMgPSBmaWxlbm8gKHJsX2luc3RyZWFtKTsKIAogI2lmIGRlZmluZWQgKFRJT0NTVE9QKQpAQCAtNzY4LDYgKzgzMSw3IEBACiAjZW5kaWYgLyogIVRJT0NTVE9QICovCiAKICAgcmV0dXJuIDA7CisjZW5kaWYgLyogIV9fTUlOR1czMl9fICovCiB9CiAKIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KQEAgLTc3Niw3MCArODQwLDEwNiBAQAogLyoJCQkJCQkJCSAgICAqLwogLyogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLwogCisjaWYgIWRlZmluZWQgKE5PX1RUWV9EUklWRVIpCisjZGVmaW5lIFNFVF9TUEVDSUFMKHNjLCBmdW5jKQlzZXRfc3BlY2lhbF9jaGFyKGttYXAsICZ0dHlidWZmLCBzYywgZnVuYykKKyNlbmRpZgorCisjaWYgZGVmaW5lZCAoTk9fVFRZX0RSSVZFUikKKworI2RlZmluZSBTRVRfU1BFQ0lBTChzYywgZnVuYykKKyNkZWZpbmUgUkVTRVRfU1BFQ0lBTChjKQorCisjZWxpZiBkZWZpbmVkIChORVdfVFRZX0RSSVZFUikKK3N0YXRpYyB2b2lkCitzZXRfc3BlY2lhbF9jaGFyIChrbWFwLCB0aW9wLCBzYywgZnVuYykKKyAgICAgS2V5bWFwIGttYXA7CisgICAgIFRJT1RZUEUgKnRpb3A7CisgICAgIGludCBzYzsKKyAgICAgcmxfY29tbWFuZF9mdW5jX3QgKmZ1bmM7Cit7CisgIGlmIChzYyAhPSAtMSAmJiBrbWFwWyh1bnNpZ25lZCBjaGFyKXNjXS50eXBlID09IElTRlVOQykKKyAgICBrbWFwWyh1bnNpZ25lZCBjaGFyKXNjXS5mdW5jdGlvbiA9IGZ1bmM7Cit9CisKKyNkZWZpbmUgUkVTRVRfU1BFQ0lBTChjKSBcCisgIGlmIChjICE9IC0xICYmIGttYXBbKHVuc2lnbmVkIGNoYXIpY10udHlwZSA9PSBJU0ZVTkMpCisgICAga21hcFsodW5zaWduZWQgY2hhciljXS5mdW5jdGlvbiA9IHJsX2luc2VydDsKKworc3RhdGljIHZvaWQKK19ybF9iaW5kX3R0eV9zcGVjaWFsX2NoYXJzIChrbWFwLCB0dHlidWZmKQorICAgICBLZXltYXAga21hcDsKKyAgICAgVElPVFlQRSB0dHlidWZmOworeworICBpZiAodHR5YnVmZi5mbGFncyAmIFNHVFRZX1NFVCkKKyAgICB7CisgICAgICBTRVRfU1BFQ0lBTCAodHR5YnVmZi5zZ3R0eWIuc2dfZXJhc2UsIHJsX3J1Ym91dCk7CisgICAgICBTRVRfU1BFQ0lBTCAodHR5YnVmZi5zZ3R0eWIuc2dfa2lsbCwgcmxfdW5peF9saW5lX2Rpc2NhcmQpOworICAgIH0KKworIyAgaWYgZGVmaW5lZCAoVElPQ0dMVEMpCisgIGlmICh0dHlidWZmLmZsYWdzICYgTFRDSEFSU19TRVQpCisgICAgeworICAgICAgU0VUX1NQRUNJQUwgKHR0eWJ1ZmYubHRjaGFycy50X3dlcmFzYywgcmxfdW5peF93b3JkX3J1Ym91dCk7CisgICAgICBTRVRfU1BFQ0lBTCAodHR5YnVmZi5sdGNoYXJzLnRfbG5leHRjLCBybF9xdW90ZWRfaW5zZXJ0KTsKKyAgICB9CisjICBlbmRpZiAvKiBUSU9DR0xUQyAqLworfQorCisjZWxzZSAvKiAhTkVXX1RUWV9EUklWRVIgKi8KK3N0YXRpYyB2b2lkCitzZXRfc3BlY2lhbF9jaGFyIChrbWFwLCB0aW9wLCBzYywgZnVuYykKKyAgICAgS2V5bWFwIGttYXA7CisgICAgIFRJT1RZUEUgKnRpb3A7CisgICAgIGludCBzYzsKKyAgICAgcmxfY29tbWFuZF9mdW5jX3QgKmZ1bmM7Cit7CisgIHVuc2lnbmVkIGNoYXIgdWM7CisKKyAgdWMgPSB0aW9wLT5jX2NjW3NjXTsKKyAgaWYgKHVjICE9ICh1bnNpZ25lZCBjaGFyKV9QT1NJWF9WRElTQUJMRSAmJiBrbWFwW3VjXS50eXBlID09IElTRlVOQykKKyAgICBrbWFwW3VjXS5mdW5jdGlvbiA9IGZ1bmM7Cit9CisKKy8qIHVzZWQgbGF0ZXIgKi8KKyNkZWZpbmUgUkVTRVRfU1BFQ0lBTCh1YykgXAorICBpZiAodWMgIT0gKHVuc2lnbmVkIGNoYXIpX1BPU0lYX1ZESVNBQkxFICYmIGttYXBbdWNdLnR5cGUgPT0gSVNGVU5DKSBcCisgICAga21hcFt1Y10uZnVuY3Rpb24gPSBybF9pbnNlcnQ7CisKK3N0YXRpYyB2b2lkCitfcmxfYmluZF90dHlfc3BlY2lhbF9jaGFycyAoa21hcCwgdHR5YnVmZikKKyAgICAgS2V5bWFwIGttYXA7CisgICAgIFRJT1RZUEUgdHR5YnVmZjsKK3sKKyAgU0VUX1NQRUNJQUwgKFZFUkFTRSwgcmxfcnVib3V0KTsKKyAgU0VUX1NQRUNJQUwgKFZLSUxMLCBybF91bml4X2xpbmVfZGlzY2FyZCk7CisKKyMgIGlmIGRlZmluZWQgKFZMTkVYVCkgJiYgZGVmaW5lZCAoVEVSTUlPU19UVFlfRFJJVkVSKQorICBTRVRfU1BFQ0lBTCAoVkxORVhULCBybF9xdW90ZWRfaW5zZXJ0KTsKKyMgIGVuZGlmIC8qIFZMTkVYVCAmJiBURVJNSU9TX1RUWV9EUklWRVIgKi8KKworIyAgaWYgZGVmaW5lZCAoVldFUkFTRSkgJiYgZGVmaW5lZCAoVEVSTUlPU19UVFlfRFJJVkVSKQorICBTRVRfU1BFQ0lBTCAoVldFUkFTRSwgcmxfdW5peF93b3JkX3J1Ym91dCk7CisjICBlbmRpZiAvKiBWV0VSQVNFICYmIFRFUk1JT1NfVFRZX0RSSVZFUiAqLworfQorCisjZW5kaWYgLyogIU5FV19UVFlfRFJJVkVSICovCisKIC8qIFNldCB0aGUgc3lzdGVtJ3MgZGVmYXVsdCBlZGl0aW5nIGNoYXJhY3RlcnMgdG8gdGhlaXIgcmVhZGxpbmUgZXF1aXZhbGVudHMKICAgIGluIEtNQVAuICBTaG91bGQgYmUgc3RhdGljLCBub3cgdGhhdCB3ZSBoYXZlIHJsX3R0eV9zZXRfZGVmYXVsdF9iaW5kaW5ncy4gKi8KIHZvaWQKIHJsdHR5X3NldF9kZWZhdWx0X2JpbmRpbmdzIChrbWFwKQogICAgICBLZXltYXAga21hcDsKIHsKKyNpZiAhZGVmaW5lZCAoTk9fVFRZX0RSSVZFUikKICAgVElPVFlQRSB0dHlidWZmOwotICBpbnQgdHR5ID0gZmlsZW5vIChybF9pbnN0cmVhbSk7CisgIGludCB0dHk7CisgIHN0YXRpYyBpbnQgY2FsbGVkID0gMDsKIAotI2lmIGRlZmluZWQgKE5FV19UVFlfRFJJVkVSKQotCi0jZGVmaW5lIFNFVF9TUEVDSUFMKHNjLCBmdW5jKSBcCi0gIGRvIFwKLSAgICB7IFwKLSAgICAgIGludCBpYzsgXAotICAgICAgaWMgPSBzYzsgXAotICAgICAgaWYgKGljICE9IC0xICYmIGttYXBbKHVuc2lnbmVkIGNoYXIpaWNdLnR5cGUgPT0gSVNGVU5DKSBcCi0Ja21hcFsodW5zaWduZWQgY2hhcilpY10uZnVuY3Rpb24gPSBmdW5jOyBcCi0gICAgfSBcCi0gIHdoaWxlICgwKQorICB0dHkgPSBmaWxlbm8gKHJsX2luc3RyZWFtKTsKIAogICBpZiAoZ2V0X3R0eV9zZXR0aW5ncyAodHR5LCAmdHR5YnVmZikgPT0gMCkKLSAgICB7Ci0gICAgICBpZiAodHR5YnVmZi5mbGFncyAmIFNHVFRZX1NFVCkKLQl7Ci0JICBTRVRfU1BFQ0lBTCAodHR5YnVmZi5zZ3R0eWIuc2dfZXJhc2UsIHJsX3J1Ym91dCk7Ci0JICBTRVRfU1BFQ0lBTCAodHR5YnVmZi5zZ3R0eWIuc2dfa2lsbCwgcmxfdW5peF9saW5lX2Rpc2NhcmQpOwotCX0KLQotIyAgaWYgZGVmaW5lZCAoVElPQ0dMVEMpCi0gICAgICBpZiAodHR5YnVmZi5mbGFncyAmIExUQ0hBUlNfU0VUKQotCXsKLQkgIFNFVF9TUEVDSUFMICh0dHlidWZmLmx0Y2hhcnMudF93ZXJhc2MsIHJsX3VuaXhfd29yZF9ydWJvdXQpOwotCSAgU0VUX1NQRUNJQUwgKHR0eWJ1ZmYubHRjaGFycy50X2xuZXh0YywgcmxfcXVvdGVkX2luc2VydCk7Ci0JfQotIyAgZW5kaWYgLyogVElPQ0dMVEMgKi8KLSAgICB9Ci0KLSNlbHNlIC8qICFORVdfVFRZX0RSSVZFUiAqLwotCi0jZGVmaW5lIFNFVF9TUEVDSUFMKHNjLCBmdW5jKSBcCi0gIGRvIFwKLSAgICB7IFwKLSAgICAgIHVuc2lnbmVkIGNoYXIgdWM7IFwKLSAgICAgIHVjID0gdHR5YnVmZi5jX2NjW3NjXTsgXAotICAgICAgaWYgKHVjICE9ICh1bnNpZ25lZCBjaGFyKV9QT1NJWF9WRElTQUJMRSAmJiBrbWFwW3VjXS50eXBlID09IElTRlVOQykgXAotCWttYXBbdWNdLmZ1bmN0aW9uID0gZnVuYzsgXAotICAgIH0gXAotICB3aGlsZSAoMCkKLQotICBpZiAoZ2V0X3R0eV9zZXR0aW5ncyAodHR5LCAmdHR5YnVmZikgPT0gMCkKLSAgICB7Ci0gICAgICBTRVRfU1BFQ0lBTCAoVkVSQVNFLCBybF9ydWJvdXQpOwotICAgICAgU0VUX1NQRUNJQUwgKFZLSUxMLCBybF91bml4X2xpbmVfZGlzY2FyZCk7Ci0KLSMgIGlmIGRlZmluZWQgKFZMTkVYVCkgJiYgZGVmaW5lZCAoVEVSTUlPU19UVFlfRFJJVkVSKQotICAgICAgU0VUX1NQRUNJQUwgKFZMTkVYVCwgcmxfcXVvdGVkX2luc2VydCk7Ci0jICBlbmRpZiAvKiBWTE5FWFQgJiYgVEVSTUlPU19UVFlfRFJJVkVSICovCi0KLSMgIGlmIGRlZmluZWQgKFZXRVJBU0UpICYmIGRlZmluZWQgKFRFUk1JT1NfVFRZX0RSSVZFUikKLSAgICAgIFNFVF9TUEVDSUFMIChWV0VSQVNFLCBybF91bml4X3dvcmRfcnVib3V0KTsKLSMgIGVuZGlmIC8qIFZXRVJBU0UgJiYgVEVSTUlPU19UVFlfRFJJVkVSICovCi0gICAgfQotI2VuZGlmIC8qICFORVdfVFRZX0RSSVZFUiAqLworICAgIF9ybF9iaW5kX3R0eV9zcGVjaWFsX2NoYXJzIChrbWFwLCB0dHlidWZmKTsKKyNlbmRpZgogfQogCiAvKiBOZXcgcHVibGljIHdheSB0byBzZXQgdGhlIHN5c3RlbSBkZWZhdWx0IGVkaXRpbmcgY2hhcnMgdG8gdGhlaXIgcmVhZGxpbmUKQEAgLTg1MSw5ICs5NTEsMzMgQEAKICAgcmx0dHlfc2V0X2RlZmF1bHRfYmluZGluZ3MgKGttYXApOwogfQogCisvKiBSZWJpbmQgYWxsIG9mIHRoZSB0dHkgc3BlY2lhbCBjaGFycyB0aGF0IHJlYWRsaW5lIHdvcnJpZXMgYWJvdXQgYmFjaworICAgdG8gc2VsZi1pbnNlcnQuICBDYWxsIHRoaXMgYmVmb3JlIHNhdmluZyB0aGUgY3VycmVudCB0ZXJtaW5hbCBzcGVjaWFsCisgICBjaGFycyB3aXRoIHNhdmVfdHR5X2NoYXJzKCkuICBUaGlzIG9ubHkgd29ya3Mgb24gUE9TSVggdGVybWlvcyBvciB0ZXJtaW8KKyAgIHN5c3RlbXMuICovCit2b2lkCitybF90dHlfdW5zZXRfZGVmYXVsdF9iaW5kaW5ncyAoa21hcCkKKyAgICAgS2V5bWFwIGttYXA7Cit7CisgIC8qIERvbid0IGJvdGhlciBiZWZvcmUgd2UndmUgc2F2ZWQgdGhlIHR0eSBzcGVjaWFsIGNoYXJzIGF0IGxlYXN0IG9uY2UuICovCisgIGlmIChSTF9JU1NUQVRFKFJMX1NUQVRFX1RUWUNTQVZFRCkgPT0gMCkKKyAgICByZXR1cm47CisKKyAgUkVTRVRfU1BFQ0lBTCAoX3JsX3R0eV9jaGFycy50X2VyYXNlKTsKKyAgUkVTRVRfU1BFQ0lBTCAoX3JsX3R0eV9jaGFycy50X2tpbGwpOworCisjICBpZiBkZWZpbmVkIChWTE5FWFQpICYmIGRlZmluZWQgKFRFUk1JT1NfVFRZX0RSSVZFUikKKyAgUkVTRVRfU1BFQ0lBTCAoX3JsX3R0eV9jaGFycy50X2xuZXh0KTsKKyMgIGVuZGlmIC8qIFZMTkVYVCAmJiBURVJNSU9TX1RUWV9EUklWRVIgKi8KKworIyAgaWYgZGVmaW5lZCAoVldFUkFTRSkgJiYgZGVmaW5lZCAoVEVSTUlPU19UVFlfRFJJVkVSKQorICBSRVNFVF9TUEVDSUFMIChfcmxfdHR5X2NoYXJzLnRfd2VyYXNlKTsKKyMgIGVuZGlmIC8qIFZXRVJBU0UgJiYgVEVSTUlPU19UVFlfRFJJVkVSICovCit9CisKICNpZiBkZWZpbmVkIChIQU5ETEVfU0lHTkFMUykKIAotI2lmIGRlZmluZWQgKE5FV19UVFlfRFJJVkVSKQorI2lmIGRlZmluZWQgKE5FV19UVFlfRFJJVkVSKSB8fCBkZWZpbmVkIChOT19UVFlfRFJJVkVSKQogaW50CiBfcmxfZGlzYWJsZV90dHlfc2lnbmFscyAoKQogewpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvcmx0dHkuaCBiL3JlYWRsaW5lL3JsdHR5LmgKaW5kZXggMDI5YTNmYi4uMTQyZTk2YiAxMDA2NDQKLS0tIGEvcmVhZGxpbmUvcmx0dHkuaAorKysgYi9yZWFkbGluZS9ybHR0eS5oCkBAIC02MSwyMiArNjEsMjIgQEAKICNlbmRpZiAvKiAhTkVXX1RUWV9EUklWRVIgJiYgIV9QT1NJWF9WRElTQUJMRSAqLwogCiB0eXBlZGVmIHN0cnVjdCBfcmxfdHR5X2NoYXJzIHsKLSAgY2hhciB0X2VvZjsKLSAgY2hhciB0X2VvbDsKLSAgY2hhciB0X2VvbDI7Ci0gIGNoYXIgdF9lcmFzZTsKLSAgY2hhciB0X3dlcmFzZTsKLSAgY2hhciB0X2tpbGw7Ci0gIGNoYXIgdF9yZXByaW50OwotICBjaGFyIHRfaW50cjsKLSAgY2hhciB0X3F1aXQ7Ci0gIGNoYXIgdF9zdXNwOwotICBjaGFyIHRfZHN1c3A7Ci0gIGNoYXIgdF9zdGFydDsKLSAgY2hhciB0X3N0b3A7Ci0gIGNoYXIgdF9sbmV4dDsKLSAgY2hhciB0X2ZsdXNoOwotICBjaGFyIHRfc3RhdHVzOworICB1bnNpZ25lZCBjaGFyIHRfZW9mOworICB1bnNpZ25lZCBjaGFyIHRfZW9sOworICB1bnNpZ25lZCBjaGFyIHRfZW9sMjsKKyAgdW5zaWduZWQgY2hhciB0X2VyYXNlOworICB1bnNpZ25lZCBjaGFyIHRfd2VyYXNlOworICB1bnNpZ25lZCBjaGFyIHRfa2lsbDsKKyAgdW5zaWduZWQgY2hhciB0X3JlcHJpbnQ7CisgIHVuc2lnbmVkIGNoYXIgdF9pbnRyOworICB1bnNpZ25lZCBjaGFyIHRfcXVpdDsKKyAgdW5zaWduZWQgY2hhciB0X3N1c3A7CisgIHVuc2lnbmVkIGNoYXIgdF9kc3VzcDsKKyAgdW5zaWduZWQgY2hhciB0X3N0YXJ0OworICB1bnNpZ25lZCBjaGFyIHRfc3RvcDsKKyAgdW5zaWduZWQgY2hhciB0X2xuZXh0OworICB1bnNpZ25lZCBjaGFyIHRfZmx1c2g7CisgIHVuc2lnbmVkIGNoYXIgdF9zdGF0dXM7CiB9IF9STF9UVFlfQ0hBUlM7CiAKICNlbmRpZiAvKiBfUkxUVFlfSF8gKi8KZGlmZiAtLWdpdCBhL3JlYWRsaW5lL3JsdHlwZWRlZnMuaCBiL3JlYWRsaW5lL3JsdHlwZWRlZnMuaAppbmRleCBmMzI4MGU5Li44NjJiZGI4IDEwMDY0NAotLS0gYS9yZWFkbGluZS9ybHR5cGVkZWZzLmgKKysrIGIvcmVhZGxpbmUvcmx0eXBlZGVmcy5oCkBAIC0xLDYgKzEsNiBAQAogLyogcmx0eXBlZGVmcy5oIC0tIFR5cGUgZGVjbGFyYXRpb25zIGZvciByZWFkbGluZSBmdW5jdGlvbnMuICovCiAKLS8qIENvcHlyaWdodCAoQykgMjAwMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKy8qIENvcHlyaWdodCAoQykgMjAwMC0yMDA0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIFJlYWRsaW5lIExpYnJhcnksIGEgbGlicmFyeSBmb3IKICAgIHJlYWRpbmcgbGluZXMgb2YgdGV4dCB3aXRoIGludGVyYWN0aXZlIGlucHV0IGFuZCBoaXN0b3J5IGVkaXRpbmcuCkBAIC03OSw2ICs3OSwxMiBAQAogdHlwZWRlZiB2b2lkIHJsX3ZpbnRmdW5jX3QgUEFSQU1TKChpbnQpKTsKIHR5cGVkZWYgdm9pZCBybF92Y3BmdW5jX3QgUEFSQU1TKChjaGFyICopKTsKIHR5cGVkZWYgdm9pZCBybF92Y3BwZnVuY190IFBBUkFNUygoY2hhciAqKikpOworCit0eXBlZGVmIGNoYXIgKnJsX2NwdmZ1bmNfdCBQQVJBTVMoKHZvaWQpKTsKK3R5cGVkZWYgY2hhciAqcmxfY3BpZnVuY190IFBBUkFNUygoaW50KSk7Cit0eXBlZGVmIGNoYXIgKnJsX2NwY3BmdW5jX3QgUEFSQU1TKChjaGFyICAqKSk7Cit0eXBlZGVmIGNoYXIgKnJsX2NwY3BwZnVuY190IFBBUkFNUygoY2hhciAgKiopKTsKKwogI2VuZGlmIC8qIF9STF9GVU5DVElPTl9UWVBFREVGICovCiAKICNpZmRlZiBfX2NwbHVzcGx1cwpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvc2F2ZXN0cmluZy5jIGIvcmVhZGxpbmUvc2F2ZXN0cmluZy5jCmluZGV4IGM3ZWJlYjEuLjgyMDQyOGQgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL3NhdmVzdHJpbmcuYworKysgYi9yZWFkbGluZS9zYXZlc3RyaW5nLmMKQEAgLTEsNiArMSw2IEBACiAvKiBzYXZlc3RyaW5nLmMgICovCiAKLS8qIENvcHlyaWdodCAoQykgMTk5OCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKy8qIENvcHlyaWdodCAoQykgMTk5OCwyMDAzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIFJlYWRsaW5lIExpYnJhcnksIGEgbGlicmFyeSBmb3IKICAgIHJlYWRpbmcgbGluZXMgb2YgdGV4dCB3aXRoIGludGVyYWN0aXZlIGlucHV0IGFuZCBoaXN0b3J5IGVkaXRpbmcuCkBAIC0xOSw2ICsxOSw3IEBACiAgICBpcyBnZW5lcmFsbHkga2VwdCBpbiBhIGZpbGUgY2FsbGVkIENPUFlJTkcgb3IgTElDRU5TRS4gIElmIHlvdSBkbyBub3QKICAgIGhhdmUgYSBjb3B5IG9mIHRoZSBsaWNlbnNlLCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAogICAgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEgVVNBLiAqLworI2RlZmluZSBSRUFETElORV9MSUJSQVJZCiAKICNpbmNsdWRlIDxjb25maWcuaD4KICNpZmRlZiBIQVZFX1NUUklOR19ICmRpZmYgLS1naXQgYS9yZWFkbGluZS9zZWFyY2guYyBiL3JlYWRsaW5lL3NlYXJjaC5jCmluZGV4IDdlMGQ2MGIuLjgwMTM5MTYgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL3NlYXJjaC5jCisrKyBiL3JlYWRsaW5lL3NlYXJjaC5jCkBAIC0xLDYgKzEsNiBAQAogLyogc2VhcmNoLmMgLSBjb2RlIGZvciBub24taW5jcmVtZW50YWwgc2VhcmNoaW5nIGluIGVtYWNzIGFuZCB2aSBtb2Rlcy4gKi8KIAotLyogQ29weXJpZ2h0IChDKSAxOTkyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorLyogQ29weXJpZ2h0IChDKSAxOTkyLTIwMDUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBSZWFkbGluZSBMaWJyYXJ5ICh0aGUgTGlicmFyeSksIGEgc2V0IG9mCiAgICByb3V0aW5lcyBmb3IgcHJvdmlkaW5nIEVtYWNzIHN0eWxlIGxpbmUgaW5wdXQgdG8gcHJvZ3JhbXMgdGhhdCBhc2sKQEAgLTUzLDYgKzUzLDggQEAKICNlbmRpZgogI2RlZmluZSBhYnMoeCkJCSgoKHgpID49IDApID8gKHgpIDogLSh4KSkKIAorX3JsX3NlYXJjaF9jeHQgKl9ybF9uc2N4dCA9IDA7CisKIGV4dGVybiBISVNUX0VOVFJZICpfcmxfc2F2ZWRfbGluZV9mb3JfaGlzdG9yeTsKIAogLyogRnVuY3Rpb25zIGltcG9ydGVkIGZyb20gdGhlIHJlc3Qgb2YgdGhlIGxpYnJhcnkuICovCkBAIC02OCwxMyArNzAsMTkgQEAKIHN0YXRpYyBjaGFyICpoaXN0b3J5X3NlYXJjaF9zdHJpbmc7CiBzdGF0aWMgaW50IGhpc3Rvcnlfc3RyaW5nX3NpemU7CiAKK3N0YXRpYyBVTkRPX0xJU1QgKm5vbmluY19zYXZlZF91bmRvX2xpc3Q7CiBzdGF0aWMgdm9pZCBtYWtlX2hpc3RvcnlfbGluZV9jdXJyZW50IFBBUkFNUygoSElTVF9FTlRSWSAqKSk7CiBzdGF0aWMgaW50IG5vbmluY19zZWFyY2hfZnJvbV9wb3MgUEFSQU1TKChjaGFyICosIGludCwgaW50KSk7Ci1zdGF0aWMgdm9pZCBub25pbmNfZG9zZWFyY2ggUEFSQU1TKChjaGFyICosIGludCkpOwotc3RhdGljIHZvaWQgbm9uaW5jX3NlYXJjaCBQQVJBTVMoKGludCwgaW50KSk7CitzdGF0aWMgaW50IG5vbmluY19kb3NlYXJjaCBQQVJBTVMoKGNoYXIgKiwgaW50KSk7CitzdGF0aWMgaW50IG5vbmluY19zZWFyY2ggUEFSQU1TKChpbnQsIGludCkpOwogc3RhdGljIGludCBybF9oaXN0b3J5X3NlYXJjaF9pbnRlcm5hbCBQQVJBTVMoKGludCwgaW50KSk7CiBzdGF0aWMgdm9pZCBybF9oaXN0b3J5X3NlYXJjaF9yZWluaXQgUEFSQU1TKCh2b2lkKSk7CiAKK3N0YXRpYyBfcmxfc2VhcmNoX2N4dCAqX3JsX25zZWFyY2hfaW5pdCBQQVJBTVMoKGludCwgaW50KSk7CitzdGF0aWMgaW50IF9ybF9uc2VhcmNoX2NsZWFudXAgUEFSQU1TKChfcmxfc2VhcmNoX2N4dCAqLCBpbnQpKTsKK3N0YXRpYyB2b2lkIF9ybF9uc2VhcmNoX2Fib3J0IFBBUkFNUygoX3JsX3NlYXJjaF9jeHQgKikpOworc3RhdGljIGludCBfcmxfbnNlYXJjaF9kaXNwYXRjaCBQQVJBTVMoKF9ybF9zZWFyY2hfY3h0ICosIGludCkpOworCiAvKiBNYWtlIHRoZSBkYXRhIGZyb20gdGhlIGhpc3RvcnkgZW50cnkgRU5UUlkgYmUgdGhlIGNvbnRlbnRzIG9mIHRoZQogICAgY3VycmVudCBsaW5lLiAgVGhpcyBkb2Vzbid0IGRvIGFueXRoaW5nIHdpdGggcmxfcG9pbnQ7IHRoZSBjYWxsZXIKICAgIG11c3Qgc2V0IGl0LiAqLwpAQCAtODIsOCArOTAsMTYgQEAKIG1ha2VfaGlzdG9yeV9saW5lX2N1cnJlbnQgKGVudHJ5KQogICAgICBISVNUX0VOVFJZICplbnRyeTsKIHsKLSAgcmxfcmVwbGFjZV9saW5lIChlbnRyeS0+bGluZSwgMCk7Ci0gIHJsX3VuZG9fbGlzdCA9IChVTkRPX0xJU1QgKillbnRyeS0+ZGF0YTsKKyAgX3JsX3JlcGxhY2VfdGV4dCAoZW50cnktPmxpbmUsIDAsIHJsX2VuZCk7CisgIF9ybF9maXhfcG9pbnQgKDEpOworI2lmIGRlZmluZWQgKFZJX01PREUpCisgIGlmIChybF9lZGl0aW5nX21vZGUgPT0gdmlfbW9kZSkKKyAgICAvKiBQT1NJWC4yIHNheXMgdGhhdCB0aGUgYFUnIGNvbW1hbmQgZG9lc24ndCBhZmZlY3QgdGhlIGNvcHkgb2YgYW55CisgICAgICAgY29tbWFuZCBsaW5lcyB0byB0aGUgZWRpdCBsaW5lLiAgV2UncmUgZ29pbmcgdG8gaW1wbGVtZW50IHRoYXQgYnkKKyAgICAgICBtYWtpbmcgdGhlIHVuZG8gbGlzdCBzdGFydCBhZnRlciB0aGUgbWF0Y2hpbmcgbGluZSBpcyBjb3BpZWQgdG8gdGhlCisgICAgICAgY3VycmVudCBlZGl0aW5nIGJ1ZmZlci4gKi8KKyAgICBybF9mcmVlX3VuZG9fbGlzdCAoKTsKKyNlbmRpZgogCiAgIGlmIChfcmxfc2F2ZWRfbGluZV9mb3JfaGlzdG9yeSkKICAgICBfcmxfZnJlZV9oaXN0b3J5X2VudHJ5IChfcmxfc2F2ZWRfbGluZV9mb3JfaGlzdG9yeSk7CkBAIC0xMjUsOCArMTQxLDggQEAKIAogLyogU2VhcmNoIGZvciBhIGxpbmUgaW4gdGhlIGhpc3RvcnkgY29udGFpbmluZyBTVFJJTkcuICBJZiBESVIgaXMgPCAwLCB0aGUKICAgIHNlYXJjaCBpcyBiYWNrd2FyZHMgdGhyb3VnaCBwcmV2aW91cyBlbnRyaWVzLCBlbHNlIHRocm91Z2ggc3Vic2VxdWVudAotICAgZW50cmllcy4gKi8KLXN0YXRpYyB2b2lkCisgICBlbnRyaWVzLiAgUmV0dXJucyAxIGlmIHRoZSBzZWFyY2ggd2FzIHN1Y2Nlc3NmdWwsIDAgb3RoZXJ3aXNlLiAqLworc3RhdGljIGludAogbm9uaW5jX2Rvc2VhcmNoIChzdHJpbmcsIGRpcikKICAgICAgY2hhciAqc3RyaW5nOwogICAgICBpbnQgZGlyOwpAQCAtMTM3LDcgKzE1Myw3IEBACiAgIGlmIChzdHJpbmcgPT0gMCB8fCAqc3RyaW5nID09ICdcMCcgfHwgbm9uaW5jX2hpc3RvcnlfcG9zIDwgMCkKICAgICB7CiAgICAgICBybF9kaW5nICgpOwotICAgICAgcmV0dXJuOworICAgICAgcmV0dXJuIDA7CiAgICAgfQogCiAgIHBvcyA9IG5vbmluY19zZWFyY2hfZnJvbV9wb3MgKHN0cmluZywgbm9uaW5jX2hpc3RvcnlfcG9zICsgZGlyLCBkaXIpOwpAQCAtMTQ4LDcgKzE2NCw3IEBACiAgICAgICBybF9jbGVhcl9tZXNzYWdlICgpOwogICAgICAgcmxfcG9pbnQgPSAwOwogICAgICAgcmxfZGluZyAoKTsKLSAgICAgIHJldHVybjsKKyAgICAgIHJldHVybiAwOwogICAgIH0KIAogICBub25pbmNfaGlzdG9yeV9wb3MgPSBwb3M7CkBAIC0xNTksNyArMTc1LDcgQEAKICNpZiBkZWZpbmVkIChWSV9NT0RFKQogICBpZiAocmxfZWRpdGluZ19tb2RlICE9IHZpX21vZGUpCiAjZW5kaWYKLSAgaGlzdG9yeV9zZXRfcG9zIChvbGRwb3MpOworICAgIGhpc3Rvcnlfc2V0X3BvcyAob2xkcG9zKTsKIAogICBtYWtlX2hpc3RvcnlfbGluZV9jdXJyZW50IChlbnRyeSk7CiAKQEAgLTE2NywyNyArMTgzLDI5IEBACiAgIHJsX21hcmsgPSBybF9lbmQ7CiAKICAgcmxfY2xlYXJfbWVzc2FnZSAoKTsKKyAgcmV0dXJuIDE7CiB9CiAKLS8qIFNlYXJjaCBub24taW50ZXJhY3RpdmVseSB0aHJvdWdoIHRoZSBoaXN0b3J5IGxpc3QuICBESVIgPCAwIG1lYW5zIHRvCi0gICBzZWFyY2ggYmFja3dhcmRzIHRocm91Z2ggdGhlIGhpc3Rvcnkgb2YgcHJldmlvdXMgY29tbWFuZHM7IG90aGVyd2lzZQotICAgdGhlIHNlYXJjaCBpcyBmb3IgY29tbWFuZHMgc3Vic2VxdWVudCB0byB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUKLSAgIGhpc3RvcnkgbGlzdC4gIFBDSEFSIGlzIHRoZSBjaGFyYWN0ZXIgdG8gdXNlIGZvciBwcm9tcHRpbmcgd2hlbiByZWFkaW5nCi0gICB0aGUgc2VhcmNoIHN0cmluZzsgaWYgbm90IHNwZWNpZmllZCAoMCksIGl0IGRlZmF1bHRzIHRvIGA6Jy4gKi8KLXN0YXRpYyB2b2lkCi1ub25pbmNfc2VhcmNoIChkaXIsIHBjaGFyKQotICAgICBpbnQgZGlyOwotICAgICBpbnQgcGNoYXI7CitzdGF0aWMgX3JsX3NlYXJjaF9jeHQgKgorX3JsX25zZWFyY2hfaW5pdCAoZGlyLCBwY2hhcikKKyAgICAgaW50IGRpciwgcGNoYXI7CiB7Ci0gIGludCBzYXZlZF9wb2ludCwgc2F2ZWRfbWFyaywgYzsKKyAgX3JsX3NlYXJjaF9jeHQgKmN4dDsKICAgY2hhciAqcDsKLSNpZiBkZWZpbmVkIChIQU5ETEVfTVVMVElCWVRFKQotICBjaGFyIG1iW01CX0xFTl9NQVhdOwotI2VuZGlmCisKKyAgY3h0ID0gX3JsX3NjeHRfYWxsb2MgKFJMX1NFQVJDSF9OU0VBUkNILCAwKTsKKyAgaWYgKGRpciA8IDApCisgICAgY3h0LT5zZmxhZ3MgfD0gU0ZfUkVWRVJTRTsJCS8qIG5vdCBzdHJpY3RseSBuZWVkZWQgKi8KKworICBjeHQtPmRpcmVjdGlvbiA9IGRpcjsKKyAgY3h0LT5oaXN0b3J5X3BvcyA9IGN4dC0+c2F2ZV9saW5lOwogCiAgIHJsX21heWJlX3NhdmVfbGluZSAoKTsKLSAgc2F2ZWRfcG9pbnQgPSBybF9wb2ludDsKLSAgc2F2ZWRfbWFyayA9IHJsX21hcms7CisKKyAgLyogQ2xlYXIgdGhlIHVuZG8gbGlzdCwgc2luY2UgcmVhZGluZyB0aGUgc2VhcmNoIHN0cmluZyBzaG91bGQgY3JlYXRlIGl0cworICAgICBvd24gdW5kbyBsaXN0LCBhbmQgdGhlIHdob2xlIGxpc3Qgd2lsbCBlbmQgdXAgYmVpbmcgZnJlZWQgd2hlbiB3ZQorICAgICBmaW5pc2ggcmVhZGluZyB0aGUgc2VhcmNoIHN0cmluZy4gKi8KKyAgcmxfdW5kb19saXN0ID0gMDsKIAogICAvKiBVc2UgdGhlIGxpbmUgYnVmZmVyIHRvIHJlYWQgdGhlIHNlYXJjaCBzdHJpbmcuICovCiAgIHJsX2xpbmVfYnVmZmVyWzBdID0gMDsKQEAgLTE5Nyw5OSArMjE1LDE2OSBAQAogICBybF9tZXNzYWdlIChwLCAwLCAwKTsKICAgZnJlZSAocCk7CiAKLSNkZWZpbmUgU0VBUkNIX1JFVFVSTiBybF9yZXN0b3JlX3Byb21wdCAoKTsgUkxfVU5TRVRTVEFURShSTF9TVEFURV9OU0VBUkNIKTsgcmV0dXJuCi0KICAgUkxfU0VUU1RBVEUoUkxfU1RBVEVfTlNFQVJDSCk7Ci0gIC8qIFJlYWQgdGhlIHNlYXJjaCBzdHJpbmcuICovCi0gIHdoaWxlICgxKQotICAgIHsKLSAgICAgIFJMX1NFVFNUQVRFKFJMX1NUQVRFX01PUkVJTlBVVCk7Ci0gICAgICBjID0gcmxfcmVhZF9rZXkgKCk7Ci0gICAgICBSTF9VTlNFVFNUQVRFKFJMX1NUQVRFX01PUkVJTlBVVCk7CiAKKyAgX3JsX25zY3h0ID0gY3h0OworCisgIHJldHVybiBjeHQ7Cit9CisKK3N0YXRpYyBpbnQKK19ybF9uc2VhcmNoX2NsZWFudXAgKGN4dCwgcikKKyAgICAgX3JsX3NlYXJjaF9jeHQgKmN4dDsKKyAgICAgaW50IHI7Cit7CisgIF9ybF9zY3h0X2Rpc3Bvc2UgKGN4dCwgMCk7CisgIF9ybF9uc2N4dCA9IDA7CisKKyAgUkxfVU5TRVRTVEFURShSTF9TVEFURV9OU0VBUkNIKTsKKworICByZXR1cm4gKHIgIT0gMSk7Cit9CisKK3N0YXRpYyB2b2lkCitfcmxfbnNlYXJjaF9hYm9ydCAoY3h0KQorICAgICBfcmxfc2VhcmNoX2N4dCAqY3h0OworeworICBybF9tYXliZV91bnNhdmVfbGluZSAoKTsKKyAgcmxfY2xlYXJfbWVzc2FnZSAoKTsKKyAgcmxfcG9pbnQgPSBjeHQtPnNhdmVfcG9pbnQ7CisgIHJsX21hcmsgPSBjeHQtPnNhdmVfbWFyazsKKyAgcmxfcmVzdG9yZV9wcm9tcHQgKCk7CisKKyAgUkxfVU5TRVRTVEFURSAoUkxfU1RBVEVfTlNFQVJDSCk7Cit9CisKKy8qIFByb2Nlc3MganVzdC1yZWFkIGNoYXJhY3RlciBDIGFjY29yZGluZyB0byBzZWFyY2ggY29udGV4dCBDWFQuICBSZXR1cm4gLTEKKyAgIGlmIHRoZSBjYWxsZXIgc2hvdWxkIGFib3J0IHRoZSBzZWFyY2gsIDAgaWYgd2Ugc2hvdWxkIGJyZWFrIG91dCBvZiB0aGUKKyAgIGxvb3AsIGFuZCAxIGlmIHdlIHNob3VsZCBjb250aW51ZSB0byByZWFkIGNoYXJhY3RlcnMuICovCitzdGF0aWMgaW50CitfcmxfbnNlYXJjaF9kaXNwYXRjaCAoY3h0LCBjKQorICAgICBfcmxfc2VhcmNoX2N4dCAqY3h0OworICAgICBpbnQgYzsKK3sKKyAgc3dpdGNoIChjKQorICAgIHsKKyAgICBjYXNlIENUUkwoJ1cnKToKKyAgICAgIHJsX3VuaXhfd29yZF9ydWJvdXQgKDEsIGMpOworICAgICAgYnJlYWs7CisKKyAgICBjYXNlIENUUkwoJ1UnKToKKyAgICAgIHJsX3VuaXhfbGluZV9kaXNjYXJkICgxLCBjKTsKKyAgICAgIGJyZWFrOworCisgICAgY2FzZSBSRVRVUk46CisgICAgY2FzZSBORVdMSU5FOgorICAgICAgcmV0dXJuIDA7CisKKyAgICBjYXNlIENUUkwoJ0gnKToKKyAgICBjYXNlIFJVQk9VVDoKKyAgICAgIGlmIChybF9wb2ludCA9PSAwKQorCXsKKwkgIF9ybF9uc2VhcmNoX2Fib3J0IChjeHQpOworCSAgcmV0dXJuIC0xOworCX0KKyAgICAgIF9ybF9ydWJvdXRfY2hhciAoMSwgYyk7CisgICAgICBicmVhazsKKworICAgIGNhc2UgQ1RSTCgnQycpOgorICAgIGNhc2UgQ1RSTCgnRycpOgorICAgICAgcmxfZGluZyAoKTsKKyAgICAgIF9ybF9uc2VhcmNoX2Fib3J0IChjeHQpOworICAgICAgcmV0dXJuIC0xOworCisgICAgZGVmYXVsdDoKICNpZiBkZWZpbmVkIChIQU5ETEVfTVVMVElCWVRFKQogICAgICAgaWYgKE1CX0NVUl9NQVggPiAxICYmIHJsX2J5dGVfb3JpZW50ZWQgPT0gMCkKLQljID0gX3JsX3JlYWRfbWJzdHJpbmcgKGMsIG1iLCBNQl9MRU5fTUFYKTsKKwlybF9pbnNlcnRfdGV4dCAoY3h0LT5tYik7CisgICAgICBlbHNlCiAjZW5kaWYKLQotICAgICAgaWYgKGMgPT0gMCkKLQlicmVhazsKLQotICAgICAgc3dpdGNoIChjKQotCXsKLQljYXNlIENUUkwoJ0gnKToKLQljYXNlIFJVQk9VVDoKLQkgIGlmIChybF9wb2ludCA9PSAwKQotCSAgICB7Ci0JICAgICAgcmxfbWF5YmVfdW5zYXZlX2xpbmUgKCk7Ci0JICAgICAgcmxfY2xlYXJfbWVzc2FnZSAoKTsKLQkgICAgICBybF9wb2ludCA9IHNhdmVkX3BvaW50OwotCSAgICAgIHJsX21hcmsgPSBzYXZlZF9tYXJrOwotCSAgICAgIFNFQVJDSF9SRVRVUk47Ci0JICAgIH0KLQkgIF9ybF9ydWJvdXRfY2hhciAoMSwgYyk7Ci0JICBicmVhazsKLQotCWNhc2UgQ1RSTCgnVycpOgotCSAgcmxfdW5peF93b3JkX3J1Ym91dCAoMSwgYyk7Ci0JICBicmVhazsKLQotCWNhc2UgQ1RSTCgnVScpOgotCSAgcmxfdW5peF9saW5lX2Rpc2NhcmQgKDEsIGMpOwotCSAgYnJlYWs7Ci0KLQljYXNlIFJFVFVSTjoKLQljYXNlIE5FV0xJTkU6Ci0JICBnb3RvIGRvc2VhcmNoOwotCSAgLyogTk9UUkVBQ0hFRCAqLwotCSAgYnJlYWs7Ci0KLQljYXNlIENUUkwoJ0MnKToKLQljYXNlIENUUkwoJ0cnKToKLQkgIHJsX21heWJlX3Vuc2F2ZV9saW5lICgpOwotCSAgcmxfY2xlYXJfbWVzc2FnZSAoKTsKLQkgIHJsX3BvaW50ID0gc2F2ZWRfcG9pbnQ7Ci0JICBybF9tYXJrID0gc2F2ZWRfbWFyazsKLQkgIHJsX2RpbmcgKCk7Ci0JICBTRUFSQ0hfUkVUVVJOOwotCi0JZGVmYXVsdDoKLSNpZiBkZWZpbmVkIChIQU5ETEVfTVVMVElCWVRFKQotCSAgaWYgKE1CX0NVUl9NQVggPiAxICYmIHJsX2J5dGVfb3JpZW50ZWQgPT0gMCkKLQkgICAgcmxfaW5zZXJ0X3RleHQgKG1iKTsKLQkgIGVsc2UKLSNlbmRpZgotCSAgICBfcmxfaW5zZXJ0X2NoYXIgKDEsIGMpOwotCSAgYnJlYWs7Ci0JfQotICAgICAgKCpybF9yZWRpc3BsYXlfZnVuY3Rpb24pICgpOworCV9ybF9pbnNlcnRfY2hhciAoMSwgYyk7CisgICAgICBicmVhazsKICAgICB9CiAKLSBkb3NlYXJjaDoKLSAgcmxfbWFyayA9IHNhdmVkX21hcms7CisgICgqcmxfcmVkaXNwbGF5X2Z1bmN0aW9uKSAoKTsKKyAgcmV0dXJuIDE7Cit9CisKKy8qIFBlcmZvcm0gb25lIHNlYXJjaCBhY2NvcmRpbmcgdG8gQ1hULCB1c2luZyBOT05JTkNfU0VBUkNIX1NUUklORy4gIFJldHVybgorICAgLTEgaWYgdGhlIHNlYXJjaCBzaG91bGQgYmUgYWJvcnRlZCwgYW55IG90aGVyIHZhbHVlIG1lYW5zIHRvIGNsZWFuIHVwCisgICB1c2luZyBfcmxfbnNlYXJjaF9jbGVhbnVwICgpLiAgUmV0dXJucyAxIGlmIHRoZSBzZWFyY2ggd2FzIHN1Y2Nlc3NmdWwsCisgICAwIG90aGVyd2lzZS4gKi8KK3N0YXRpYyBpbnQKK19ybF9uc2VhcmNoX2Rvc2VhcmNoIChjeHQpCisgICAgIF9ybF9zZWFyY2hfY3h0ICpjeHQ7Cit7CisgIHJsX21hcmsgPSBjeHQtPnNhdmVfbWFyazsKIAogICAvKiBJZiBybF9wb2ludCA9PSAwLCB3ZSB3YW50IHRvIHJlLXVzZSB0aGUgcHJldmlvdXMgc2VhcmNoIHN0cmluZyBhbmQKICAgICAgc3RhcnQgZnJvbSB0aGUgc2F2ZWQgaGlzdG9yeSBwb3NpdGlvbi4gIElmIHRoZXJlJ3Mgbm8gcHJldmlvdXMgc2VhcmNoCiAgICAgIHN0cmluZywgcHVudC4gKi8KICAgaWYgKHJsX3BvaW50ID09IDApCiAgICAgewotICAgICAgaWYgKCFub25pbmNfc2VhcmNoX3N0cmluZykKKyAgICAgIGlmIChub25pbmNfc2VhcmNoX3N0cmluZyA9PSAwKQogCXsKIAkgIHJsX2RpbmcgKCk7Ci0JICBTRUFSQ0hfUkVUVVJOOworCSAgcmxfcmVzdG9yZV9wcm9tcHQgKCk7CisJICBSTF9VTlNFVFNUQVRFIChSTF9TVEFURV9OU0VBUkNIKTsKKwkgIHJldHVybiAtMTsKIAl9CiAgICAgfQogICBlbHNlCiAgICAgewogICAgICAgLyogV2Ugd2FudCB0byBzdGFydCB0aGUgc2VhcmNoIGZyb20gdGhlIGN1cnJlbnQgaGlzdG9yeSBwb3NpdGlvbi4gKi8KLSAgICAgIG5vbmluY19oaXN0b3J5X3BvcyA9IHdoZXJlX2hpc3RvcnkgKCk7CisgICAgICBub25pbmNfaGlzdG9yeV9wb3MgPSBjeHQtPnNhdmVfbGluZTsKICAgICAgIEZSRUUgKG5vbmluY19zZWFyY2hfc3RyaW5nKTsKICAgICAgIG5vbmluY19zZWFyY2hfc3RyaW5nID0gc2F2ZXN0cmluZyAocmxfbGluZV9idWZmZXIpOworCisgICAgICAvKiBJZiB3ZSBkb24ndCB3YW50IHRoZSBzdWJzZXF1ZW50IHVuZG8gbGlzdCBnZW5lcmF0ZWQgYnkgdGhlIHNlYXJjaAorCSBtYXRjaGluZyBhIGhpc3RvcnkgbGluZSB0byBpbmNsdWRlIHRoZSBjb250ZW50cyBvZiB0aGUgc2VhcmNoIHN0cmluZywKKwkgd2UgbmVlZCB0byBjbGVhciBybF9saW5lX2J1ZmZlciBoZXJlLiAgRm9yIG5vdywgd2UganVzdCBjbGVhciB0aGUKKwkgdW5kbyBsaXN0IGdlbmVyYXRlZCBieSByZWFkaW5nIHRoZSBzZWFyY2ggc3RyaW5nLiAgKElmIHRoZSBzZWFyY2gKKwkgZmFpbHMsIHRoZSBvbGQgdW5kbyBsaXN0IHdpbGwgYmUgcmVzdG9yZWQgYnkgcmxfbWF5YmVfdW5zYXZlX2xpbmUuKSAqLworICAgICAgcmxfZnJlZV91bmRvX2xpc3QgKCk7CiAgICAgfQogCiAgIHJsX3Jlc3RvcmVfcHJvbXB0ICgpOwotICBub25pbmNfZG9zZWFyY2ggKG5vbmluY19zZWFyY2hfc3RyaW5nLCBkaXIpOwotICBSTF9VTlNFVFNUQVRFKFJMX1NUQVRFX05TRUFSQ0gpOworICByZXR1cm4gKG5vbmluY19kb3NlYXJjaCAobm9uaW5jX3NlYXJjaF9zdHJpbmcsIGN4dC0+ZGlyZWN0aW9uKSk7Cit9CisKKy8qIFNlYXJjaCBub24taW50ZXJhY3RpdmVseSB0aHJvdWdoIHRoZSBoaXN0b3J5IGxpc3QuICBESVIgPCAwIG1lYW5zIHRvCisgICBzZWFyY2ggYmFja3dhcmRzIHRocm91Z2ggdGhlIGhpc3Rvcnkgb2YgcHJldmlvdXMgY29tbWFuZHM7IG90aGVyd2lzZQorICAgdGhlIHNlYXJjaCBpcyBmb3IgY29tbWFuZHMgc3Vic2VxdWVudCB0byB0aGUgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUKKyAgIGhpc3RvcnkgbGlzdC4gIFBDSEFSIGlzIHRoZSBjaGFyYWN0ZXIgdG8gdXNlIGZvciBwcm9tcHRpbmcgd2hlbiByZWFkaW5nCisgICB0aGUgc2VhcmNoIHN0cmluZzsgaWYgbm90IHNwZWNpZmllZCAoMCksIGl0IGRlZmF1bHRzIHRvIGA6Jy4gKi8KK3N0YXRpYyBpbnQKK25vbmluY19zZWFyY2ggKGRpciwgcGNoYXIpCisgICAgIGludCBkaXI7CisgICAgIGludCBwY2hhcjsKK3sKKyAgX3JsX3NlYXJjaF9jeHQgKmN4dDsKKyAgaW50IGMsIHI7CisKKyAgY3h0ID0gX3JsX25zZWFyY2hfaW5pdCAoZGlyLCBwY2hhcik7CisKKyAgaWYgKFJMX0lTU1RBVEUgKFJMX1NUQVRFX0NBTExCQUNLKSkKKyAgICByZXR1cm4gKDApOworCisgIC8qIFJlYWQgdGhlIHNlYXJjaCBzdHJpbmcuICovCisgIHIgPSAwOworICB3aGlsZSAoMSkKKyAgICB7CisgICAgICBjID0gX3JsX3NlYXJjaF9nZXRjaGFyIChjeHQpOworCisgICAgICBpZiAoYyA9PSAwKQorCWJyZWFrOworCisgICAgICByID0gX3JsX25zZWFyY2hfZGlzcGF0Y2ggKGN4dCwgYyk7CisgICAgICBpZiAociA8IDApCisgICAgICAgIHJldHVybiAxOworICAgICAgZWxzZSBpZiAociA9PSAwKQorCWJyZWFrOyAgICAgICAgCisgICAgfQorCisgIHIgPSBfcmxfbnNlYXJjaF9kb3NlYXJjaCAoY3h0KTsKKyAgcmV0dXJuICgociA+PSAwKSA/IF9ybF9uc2VhcmNoX2NsZWFudXAgKGN4dCwgcikgOiAociAhPSAxKSk7CiB9CiAKIC8qIFNlYXJjaCBmb3J3YXJkIHRocm91Z2ggdGhlIGhpc3RvcnkgbGlzdCBmb3IgYSBzdHJpbmcuICBJZiB0aGUgdmktbW9kZQpAQCAtMjk4LDggKzM4Niw3IEBACiBybF9ub25pbmNfZm9yd2FyZF9zZWFyY2ggKGNvdW50LCBrZXkpCiAgICAgIGludCBjb3VudCwga2V5OwogewotICBub25pbmNfc2VhcmNoICgxLCAoa2V5ID09ICc/JykgPyAnPycgOiAwKTsKLSAgcmV0dXJuIDA7CisgIHJldHVybiBub25pbmNfc2VhcmNoICgxLCAoa2V5ID09ICc/JykgPyAnPycgOiAwKTsKIH0KIAogLyogUmV2ZXJzZSBzZWFyY2ggdGhlIGhpc3RvcnkgbGlzdCBmb3IgYSBzdHJpbmcuICBJZiB0aGUgdmktbW9kZSBjb2RlCkBAIC0zMDgsOCArMzk1LDcgQEAKIHJsX25vbmluY19yZXZlcnNlX3NlYXJjaCAoY291bnQsIGtleSkKICAgICAgaW50IGNvdW50LCBrZXk7CiB7Ci0gIG5vbmluY19zZWFyY2ggKC0xLCAoa2V5ID09ICcvJykgPyAnLycgOiAwKTsKLSAgcmV0dXJuIDA7CisgIHJldHVybiBub25pbmNfc2VhcmNoICgtMSwgKGtleSA9PSAnLycpID8gJy8nIDogMCk7CiB9CiAKIC8qIFNlYXJjaCBmb3J3YXJkIHRocm91Z2ggdGhlIGhpc3RvcnkgbGlzdCBmb3IgdGhlIGxhc3Qgc3RyaW5nIHNlYXJjaGVkCkBAIC0zMTgsMTMgKzQwNCwxNSBAQAogcmxfbm9uaW5jX2ZvcndhcmRfc2VhcmNoX2FnYWluIChjb3VudCwga2V5KQogICAgICBpbnQgY291bnQsIGtleTsKIHsKKyAgaW50IHI7CisKICAgaWYgKCFub25pbmNfc2VhcmNoX3N0cmluZykKICAgICB7CiAgICAgICBybF9kaW5nICgpOwogICAgICAgcmV0dXJuICgtMSk7CiAgICAgfQotICBub25pbmNfZG9zZWFyY2ggKG5vbmluY19zZWFyY2hfc3RyaW5nLCAxKTsKLSAgcmV0dXJuIDA7CisgIHIgPSBub25pbmNfZG9zZWFyY2ggKG5vbmluY19zZWFyY2hfc3RyaW5nLCAxKTsKKyAgcmV0dXJuIChyICE9IDEpOwogfQogCiAvKiBSZXZlcnNlIHNlYXJjaCBpbiB0aGUgaGlzdG9yeSBsaXN0IGZvciB0aGUgbGFzdCBzdHJpbmcgc2VhcmNoZWQKQEAgLTMzMywxNSArNDIxLDM0IEBACiBybF9ub25pbmNfcmV2ZXJzZV9zZWFyY2hfYWdhaW4gKGNvdW50LCBrZXkpCiAgICAgIGludCBjb3VudCwga2V5OwogeworICBpbnQgcjsKKwogICBpZiAoIW5vbmluY19zZWFyY2hfc3RyaW5nKQogICAgIHsKICAgICAgIHJsX2RpbmcgKCk7CiAgICAgICByZXR1cm4gKC0xKTsKICAgICB9Ci0gIG5vbmluY19kb3NlYXJjaCAobm9uaW5jX3NlYXJjaF9zdHJpbmcsIC0xKTsKLSAgcmV0dXJuIDA7CisgIHIgPSBub25pbmNfZG9zZWFyY2ggKG5vbmluY19zZWFyY2hfc3RyaW5nLCAtMSk7CisgIHJldHVybiAociAhPSAxKTsKIH0KIAorI2lmIGRlZmluZWQgKFJFQURMSU5FX0NBTExCQUNLUykKK2ludAorX3JsX25zZWFyY2hfY2FsbGJhY2sgKGN4dCkKKyAgICAgX3JsX3NlYXJjaF9jeHQgKmN4dDsKK3sKKyAgaW50IGMsIHI7CisKKyAgYyA9IF9ybF9zZWFyY2hfZ2V0Y2hhciAoY3h0KTsKKyAgciA9IF9ybF9uc2VhcmNoX2Rpc3BhdGNoIChjeHQsIGMpOworICBpZiAociAhPSAwKQorICAgIHJldHVybiAxOworCisgIHIgPSBfcmxfbnNlYXJjaF9kb3NlYXJjaCAoY3h0KTsKKyAgcmV0dXJuICgociA+PSAwKSA/IF9ybF9uc2VhcmNoX2NsZWFudXAgKGN4dCwgcikgOiAociAhPSAxKSk7Cit9CisjZW5kaWYKKyAgCiBzdGF0aWMgaW50CiBybF9oaXN0b3J5X3NlYXJjaF9pbnRlcm5hbCAoY291bnQsIGRpcikKICAgICAgaW50IGNvdW50LCBkaXI7CmRpZmYgLS1naXQgYS9yZWFkbGluZS9zaGVsbC5jIGIvcmVhZGxpbmUvc2hlbGwuYwppbmRleCBhZDI3Y2MxLi4zNDZmODExIDEwMDY0NAotLS0gYS9yZWFkbGluZS9zaGVsbC5jCisrKyBiL3JlYWRsaW5lL3NoZWxsLmMKQEAgLTQ4LDggKzQ4LDEyIEBACiAjICBpbmNsdWRlIDxsaW1pdHMuaD4KICNlbmRpZgogCisjaWYgZGVmaW5lZCAoSEFWRV9GQ05UTF9IKQogI2luY2x1ZGUgPGZjbnRsLmg+CisjZW5kaWYKKyNpZiBkZWZpbmVkIChIQVZFX1BXRF9IKQogI2luY2x1ZGUgPHB3ZC5oPgorI2VuZGlmCiAKICNpbmNsdWRlIDxzdGRpby5oPgogCkBAIC01Nyw5ICs2MSw5IEBACiAjaW5jbHVkZSAicmxzaGVsbC5oIgogI2luY2x1ZGUgInhtYWxsb2MuaCIKIAotI2lmICFkZWZpbmVkIChIQVZFX0dFVFBXX0RFQ0xTKQorI2lmIGRlZmluZWQgKEhBVkVfR0VUUFdVSUQpICYmICFkZWZpbmVkIChIQVZFX0dFVFBXX0RFQ0xTKQogZXh0ZXJuIHN0cnVjdCBwYXNzd2QgKmdldHB3dWlkIFBBUkFNUygodWlkX3QpKTsKLSNlbmRpZiAvKiAhSEFWRV9HRVRQV19ERUNMUyAqLworI2VuZGlmIC8qIEhBVkVfR0VUUFdVSUQgJiYgIUhBVkVfR0VUUFdfREVDTFMgKi8KIAogI2lmbmRlZiBOVUxMCiAjICBkZWZpbmUgTlVMTCAwCkBAIC0xMjIsMjMgKzEyNiwyNyBAQAogewogICBjaGFyICpiOwogCi0jaWYgZGVmaW5lZCAoSEFWRV9QVVRFTlYpCi0gIGIgPSAoY2hhciAqKXhtYWxsb2MgKElOVF9TVFJMRU5fQk9VTkQgKGludCkgKyBzaXplb2YgKCJMSU5FUz0iKSArIDEpOwotICBzcHJpbnRmIChiLCAiTElORVM9JWQiLCBsaW5lcyk7Ci0gIHB1dGVudiAoYik7Ci0gIGIgPSAoY2hhciAqKXhtYWxsb2MgKElOVF9TVFJMRU5fQk9VTkQgKGludCkgKyBzaXplb2YgKCJDT0xVTU5TPSIpICsgMSk7Ci0gIHNwcmludGYgKGIsICJDT0xVTU5TPSVkIiwgY29scyk7Ci0gIHB1dGVudiAoYik7Ci0jZWxzZSAvKiAhSEFWRV9QVVRFTlYgKi8KLSMgIGlmIGRlZmluZWQgKEhBVkVfU0VURU5WKQorI2lmIGRlZmluZWQgKEhBVkVfU0VURU5WKQogICBiID0gKGNoYXIgKil4bWFsbG9jIChJTlRfU1RSTEVOX0JPVU5EIChpbnQpICsgMSk7CiAgIHNwcmludGYgKGIsICIlZCIsIGxpbmVzKTsKICAgc2V0ZW52ICgiTElORVMiLCBiLCAxKTsKKyAgZnJlZSAoYik7CisKICAgYiA9IChjaGFyICopeG1hbGxvYyAoSU5UX1NUUkxFTl9CT1VORCAoaW50KSArIDEpOwogICBzcHJpbnRmIChiLCAiJWQiLCBjb2xzKTsKICAgc2V0ZW52ICgiQ09MVU1OUyIsIGIsIDEpOwotIyAgZW5kaWYgLyogSEFWRV9TRVRFTlYgKi8KLSNlbmRpZiAvKiAhSEFWRV9QVVRFTlYgKi8KKyAgZnJlZSAoYik7CisjZWxzZSAvKiAhSEFWRV9TRVRFTlYgKi8KKyMgIGlmIGRlZmluZWQgKEhBVkVfUFVURU5WKQorICBiID0gKGNoYXIgKil4bWFsbG9jIChJTlRfU1RSTEVOX0JPVU5EIChpbnQpICsgc2l6ZW9mICgiTElORVM9IikgKyAxKTsKKyAgc3ByaW50ZiAoYiwgIkxJTkVTPSVkIiwgbGluZXMpOworICBwdXRlbnYgKGIpOworCisgIGIgPSAoY2hhciAqKXhtYWxsb2MgKElOVF9TVFJMRU5fQk9VTkQgKGludCkgKyBzaXplb2YgKCJDT0xVTU5TPSIpICsgMSk7CisgIHNwcmludGYgKGIsICJDT0xVTU5TPSVkIiwgY29scyk7CisgIHB1dGVudiAoYik7CisjICBlbmRpZiAvKiBIQVZFX1BVVEVOViAqLworI2VuZGlmIC8qICFIQVZFX1NFVEVOViAqLwogfQogCiBjaGFyICoKQEAgLTE1NSw5ICsxNjMsMTEgQEAKICAgc3RydWN0IHBhc3N3ZCAqZW50cnk7CiAKICAgaG9tZV9kaXIgPSAoY2hhciAqKU5VTEw7CisjaWYgZGVmaW5lZCAoSEFWRV9HRVRQV1VJRCkKICAgZW50cnkgPSBnZXRwd3VpZCAoZ2V0dWlkICgpKTsKICAgaWYgKGVudHJ5KQogICAgIGhvbWVfZGlyID0gZW50cnktPnB3X2RpcjsKKyNlbmRpZgogICByZXR1cm4gKGhvbWVfZGlyKTsKIH0KIApAQCAtMTcxLDYgKzE4MSw3IEBACiBzaF91bnNldF9ub2RlbGF5X21vZGUgKGZkKQogICAgICBpbnQgZmQ7CiB7CisjaWYgZGVmaW5lZCAoSEFWRV9GQ05UTCkKICAgaW50IGZsYWdzLCBiZmxhZ3M7CiAKICAgaWYgKChmbGFncyA9IGZjbnRsIChmZCwgRl9HRVRGTCwgMCkpIDwgMCkKQEAgLTE5MSw2ICsyMDIsNyBAQAogICAgICAgZmxhZ3MgJj0gfmJmbGFnczsKICAgICAgIHJldHVybiAoZmNudGwgKGZkLCBGX1NFVEZMLCBmbGFncykpOwogICAgIH0KKyNlbmRpZgogCiAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvc2hsaWIvTWFrZWZpbGUuaW4gYi9yZWFkbGluZS9zaGxpYi9NYWtlZmlsZS5pbgppbmRleCAwY2JhNTdlLi5jMjIyNWQ2IDEwMDY0NAotLS0gYS9yZWFkbGluZS9zaGxpYi9NYWtlZmlsZS5pbgorKysgYi9yZWFkbGluZS9zaGxpYi9NYWtlZmlsZS5pbgpAQCAtMSw3ICsxLDcgQEAKICMjIC0qLSB0ZXh0IC0qLSAjIwogIyBNYWtlZmlsZSBmb3IgdGhlIEdOVSByZWFkbGluZSBsaWJyYXJ5IHNoYXJlZCBsaWJyYXJ5IHN1cHBvcnQuCiAjCi0jIENvcHlyaWdodCAoQykgMTk5OCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgQ29weXJpZ2h0IChDKSAxOTk4LTIwMDMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAKICMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKQEAgLTE3LDYgKzE3LDE0IEBACiAjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAjIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExIFVTQS4KIAorUEFDS0FHRSA9IEBQQUNLQUdFX05BTUVACitWRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKKworUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACitQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAorUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACitQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAorCiBSTF9MSUJSQVJZX1ZFUlNJT04gPSBATElCVkVSU0lPTkAKIFJMX0xJQlJBUllfTkFNRSA9IHJlYWRsaW5lCiAKQEAgLTQ1LDcgKzUzLDEwIEBACiBwcmVmaXggPSBAcHJlZml4QAogZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACiBpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACitiaW5kaXIgPSBAYmluZGlyQAogbGliZGlyID0gQGxpYmRpckAKK2RhdGFkaXIgPSBAZGF0YWRpckAKK2xvY2FsZWRpciA9ICQoZGF0YWRpcikvbG9jYWxlCiAKICMgU3VwcG9ydCBhbiBhbHRlcm5hdGUgZGVzdGluYXRpb24gcm9vdCBkaXJlY3RvcnkgZm9yIHBhY2thZ2UgYnVpbGRpbmcKIERFU1RESVIgPQpAQCAtNTUsNyArNjYsNyBAQAogQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACiBMREZMQUdTID0gQExERkxBR1NAIEBMT0NBTF9MREZMQUdTQCBAQ0ZMQUdTQAogCi1ERUZTID0gQERFRlNACitERUZTID0gQERFRlNAIEBDUk9TU19DT01QSUxFQAogTE9DQUxfREVGUyA9IEBMT0NBTF9ERUZTQAogCiAjCkBAIC03MiwxNCArODMsMjAgQEAKIFNIT0JKX1hMREZMQUdTID0gQFNIT0JKX1hMREZMQUdTQAogU0hPQkpfTElCUyA9IEBTSE9CSl9MSUJTQAogCi1TSExJQl9YTERGTEFHUyA9IEBTSExJQl9YTERGTEFHU0AKK1NITElCX1hMREZMQUdTID0gQExERkxBR1NAIEBTSExJQl9YTERGTEFHU0AKIFNITElCX0xJQlMgPSBAU0hMSUJfTElCU0AKKworU0hMSUJfRE9UID0gQFNITElCX0RPVEAKK1NITElCX0xJQlBSRUYgPSBAU0hMSUJfTElCUFJFRkAKIFNITElCX0xJQlNVRkYgPSBAU0hMSUJfTElCU1VGRkAKIAogU0hMSUJfTElCVkVSU0lPTiA9IEBTSExJQl9MSUJWRVJTSU9OQAorU0hMSUJfRExMVkVSU0lPTiA9IEBTSExJQl9ETExWRVJTSU9OQAogCiBTSExJQl9TVEFUVVMgPSBAU0hMSUJfU1RBVFVTQAogCitURVJNQ0FQX0xJQiA9IEBURVJNQ0FQX0xJQkAKKwogIyBzaGFyZWQgbGlicmFyeSB2ZXJzaW9uaW5nCiBTSExJQl9NQUpPUj0JCUBTSExJQl9NQUpPUkAKICMgc2hhcmVkIGxpYnJhcnkgc3lzdGVtcyBsaWtlIFNWUjQncyBkbyBub3QgdXNlIG1pbm9yIHZlcnNpb25zCkBAIC05OSw4ICsxMTYsOCBAQAogCiAjIFRoZSBuYW1lIG9mIHRoZSBtYWluIGxpYnJhcnkgdGFyZ2V0LgogCi1TSEFSRURfUkVBRExJTkUgPSBsaWJyZWFkbGluZS4kKFNITElCX0xJQlZFUlNJT04pCi1TSEFSRURfSElTVE9SWSA9IGxpYmhpc3RvcnkuJChTSExJQl9MSUJWRVJTSU9OKQorU0hBUkVEX1JFQURMSU5FID0gJChTSExJQl9MSUJQUkVGKXJlYWRsaW5lJChTSExJQl9ET1QpJChTSExJQl9MSUJWRVJTSU9OKQorU0hBUkVEX0hJU1RPUlkgPSAkKFNITElCX0xJQlBSRUYpaGlzdG9yeSQoU0hMSUJfRE9UKSQoU0hMSUJfTElCVkVSU0lPTikKIFNIQVJFRF9MSUJTID0gJChTSEFSRURfUkVBRExJTkUpICQoU0hBUkVEX0hJU1RPUlkpCiAKICMgVGhlIEMgY29kZSBzb3VyY2UgZmlsZXMgZm9yIHRoaXMgbGlicmFyeS4KQEAgLTE2NCwxMyArMTgxLDEzIEBACiAJLSQoU0hFTEwpICQodG9wZGlyKS9zdXBwb3J0L21rZGlycyAkKERFU1RESVIpJChsaWJkaXIpCiAKIGluc3RhbGw6IGluc3RhbGxkaXJzICQoU0hMSUJfU1RBVFVTKQotCSQoU0hFTEwpICQodG9wZGlyKS9zdXBwb3J0L3NobGliLWluc3RhbGwgLU8gJChob3N0X29zKSAtZCAkKERFU1RESVIpJChsaWJkaXIpIC1pICIkKElOU1RBTExfREFUQSkiICQoU0hBUkVEX0hJU1RPUlkpCi0JJChTSEVMTCkgJCh0b3BkaXIpL3N1cHBvcnQvc2hsaWItaW5zdGFsbCAtTyAkKGhvc3Rfb3MpIC1kICQoREVTVERJUikkKGxpYmRpcikgLWkgIiQoSU5TVEFMTF9EQVRBKSIgJChTSEFSRURfUkVBRExJTkUpCisJJChTSEVMTCkgJCh0b3BkaXIpL3N1cHBvcnQvc2hsaWItaW5zdGFsbCAtTyAkKGhvc3Rfb3MpIC1kICQoREVTVERJUikkKGxpYmRpcikgLWIgJChERVNURElSKSQoYmluZGlyKSAtaSAiJChJTlNUQUxMX0RBVEEpIiAkKFNIQVJFRF9ISVNUT1JZKQorCSQoU0hFTEwpICQodG9wZGlyKS9zdXBwb3J0L3NobGliLWluc3RhbGwgLU8gJChob3N0X29zKSAtZCAkKERFU1RESVIpJChsaWJkaXIpIC1iICQoREVTVERJUikkKGJpbmRpcikgLWkgIiQoSU5TVEFMTF9EQVRBKSIgJChTSEFSRURfUkVBRExJTkUpCiAJQGVjaG8gaW5zdGFsbDogeW91IG1heSBuZWVkIHRvIHJ1biBsZGNvbmZpZwogCiB1bmluc3RhbGw6Ci0JJChTSEVMTCkgJCh0b3BkaXIpL3N1cHBvcnQvc2hsaWItaW5zdGFsbCAtTyAkKGhvc3Rfb3MpIC1kICQoREVTVERJUikkKGxpYmRpcikgLVUgJChTSEFSRURfSElTVE9SWSkKLQkkKFNIRUxMKSAkKHRvcGRpcikvc3VwcG9ydC9zaGxpYi1pbnN0YWxsIC1PICQoaG9zdF9vcykgLWQgJChERVNURElSKSQobGliZGlyKSAtVSAkKFNIQVJFRF9SRUFETElORSkKKwkkKFNIRUxMKSAkKHRvcGRpcikvc3VwcG9ydC9zaGxpYi1pbnN0YWxsIC1PICQoaG9zdF9vcykgLWQgJChERVNURElSKSQobGliZGlyKSAtYiAkKERFU1RESVIpJChiaW5kaXIpIC1VICQoU0hBUkVEX0hJU1RPUlkpCisJJChTSEVMTCkgJCh0b3BkaXIpL3N1cHBvcnQvc2hsaWItaW5zdGFsbCAtTyAkKGhvc3Rfb3MpIC1kICQoREVTVERJUikkKGxpYmRpcikgLWIgJChERVNURElSKSQoYmluZGlyKSAtVSAkKFNIQVJFRF9SRUFETElORSkKIAlAZWNobyB1bmluc3RhbGw6IHlvdSBtYXkgbmVlZCB0byBydW4gbGRjb25maWcKIAogY2xlYW4gbW9zdGx5Y2xlYW46CWZvcmNlCkBAIC0zOTAsNyArNDA3LDcgQEAKIHNoZWxsLnNvOiAkKHRvcGRpcikvc2hlbGwuYwogc2lnbmFscy5zbzogJCh0b3BkaXIpL3NpZ25hbHMuYwogdGVybWluYWwuc286ICQodG9wZGlyKS90ZXJtaW5hbC5jCi10ZXh0LnNvOiAkKHRvcGRpcikvdGVybWluYWwuYwordGV4dC5zbzogJCh0b3BkaXIpL3RleHQuYwogdGlsZGUuc286ICQodG9wZGlyKS90aWxkZS5jCiB1bmRvLnNvOiAkKHRvcGRpcikvdW5kby5jCiB1dGlsLnNvOiAkKHRvcGRpcikvdXRpbC5jCkBAIC00MjQsNyArNDQxLDcgQEAKIHNpZ25hbHMuc286IHNpZ25hbHMuYwogc2hlbGwuc286IHNoZWxsLmMKIHRlcm1pbmFsLnNvOiB0ZXJtaW5hbC5jCi10ZXh0LnNvOiB0ZXJtaW5hbC5jCit0ZXh0LnNvOiB0ZXh0LmMKIHRpbGRlLnNvOiB0aWxkZS5jCiB1bmRvLnNvOiB1bmRvLmMKIHV0aWwuc286IHV0aWwuYwpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvc2lnbmFscy5jIGIvcmVhZGxpbmUvc2lnbmFscy5jCmluZGV4IDBhMTQ2OGIuLmYzNDRlZDggMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL3NpZ25hbHMuYworKysgYi9yZWFkbGluZS9zaWduYWxzLmMKQEAgLTEsNiArMSw2IEBACiAvKiBzaWduYWxzLmMgLS0gc2lnbmFsIGhhbmRsaW5nIHN1cHBvcnQgZm9yIHJlYWRsaW5lLiAqLwogCi0vKiBDb3B5cmlnaHQgKEMpIDE5ODcsIDE5ODksIDE5OTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisvKiBDb3B5cmlnaHQgKEMpIDE5ODctMjAwNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBSZWFkbGluZSBMaWJyYXJ5LCBhIGxpYnJhcnkgZm9yCiAgICByZWFkaW5nIGxpbmVzIG9mIHRleHQgd2l0aCBpbnRlcmFjdGl2ZSBpbnB1dCBhbmQgaGlzdG9yeSBlZGl0aW5nLgpAQCAtNzMsNiArNzMsMTAgQEAKICMgIGRlZmluZSBzaWdlbXB0eXNldChtKQogI2VuZGlmIC8qICFIQVZFX1BPU0lYX1NJR05BTFMgKi8KIAorI2lmbmRlZiBTQV9SRVNUQVJUCisjICBkZWZpbmUgU0FfUkVTVEFSVCAwCisjZW5kaWYKKwogc3RhdGljIFNpZ0hhbmRsZXIgKnJsX3NldF9zaWdoYW5kbGVyIFBBUkFNUygoaW50LCBTaWdIYW5kbGVyICosIHNpZ2hhbmRsZXJfY3h0ICopKTsKIHN0YXRpYyB2b2lkIHJsX21heWJlX3NldF9zaWdoYW5kbGVyIFBBUkFNUygoaW50LCBTaWdIYW5kbGVyICosIHNpZ2hhbmRsZXJfY3h0ICopKTsKIApAQCAtODUsNiArODksOCBAQAogLyogSWYgbm9uLXplcm8sIHJlYWRsaW5lIHdpbGwgaW5zdGFsbCBhIHNpZ25hbCBoYW5kbGVyIGZvciBTSUdXSU5DSC4gKi8KICNpZmRlZiBTSUdXSU5DSAogaW50IHJsX2NhdGNoX3NpZ3dpbmNoID0gMTsKKyNlbHNlCitpbnQgcmxfY2F0Y2hfc2lnd2luY2ggPSAwOwkvKiBmb3IgdGhlIHJlYWRsaW5lIHN0YXRlIHN0cnVjdCBpbiByZWFkbGluZS5jICovCiAjZW5kaWYKIAogc3RhdGljIGludCBzaWduYWxzX3NldF9mbGFnOwpAQCAtMTI1LDcgKzEzMSwxMSBAQAogI2lmICFkZWZpbmVkIChIQVZFX0JTRF9TSUdOQUxTKSAmJiAhZGVmaW5lZCAoSEFWRV9QT1NJWF9TSUdOQUxTKQogICAvKiBTaW5jZSB0aGUgc2lnbmFsIHdpbGwgbm90IGJlIGJsb2NrZWQgd2hpbGUgd2UgYXJlIGluIHRoZSBzaWduYWwKICAgICAgaGFuZGxlciwgaWdub3JlIGl0IHVudGlsIHJsX2NsZWFyX3NpZ25hbHMgcmVzZXRzIHRoZSBjYXRjaGVyLiAqLworIyAgaWYgZGVmaW5lZCAoU0lHQUxSTSkKICAgaWYgKHNpZyA9PSBTSUdJTlQgfHwgc2lnID09IFNJR0FMUk0pCisjICBlbHNlCisgIGlmIChzaWcgPT0gU0lHSU5UKQorIyAgZW5kaWYKICAgICBybF9zZXRfc2lnaGFuZGxlciAoc2lnLCBTSUdfSUdOLCAmZHVtbXlfY3h0KTsKICNlbmRpZiAvKiAhSEFWRV9CU0RfU0lHTkFMUyAmJiAhSEFWRV9QT1NJWF9TSUdOQUxTICovCiAKQEAgLTEzNSwxNCArMTQ1LDE4IEBACiAgICAgICBybF9mcmVlX2xpbmVfc3RhdGUgKCk7CiAgICAgICAvKiBGQUxMVEhST1VHSCAqLwogCisgICAgY2FzZSBTSUdURVJNOgogI2lmIGRlZmluZWQgKFNJR1RTVFApCiAgICAgY2FzZSBTSUdUU1RQOgogICAgIGNhc2UgU0lHVFRPVToKICAgICBjYXNlIFNJR1RUSU46CiAjZW5kaWYgLyogU0lHVFNUUCAqLworI2lmIGRlZmluZWQgKFNJR0FMUk0pCiAgICAgY2FzZSBTSUdBTFJNOgotICAgIGNhc2UgU0lHVEVSTToKKyNlbmRpZgorI2lmIGRlZmluZWQgKFNJR1FVSVQpCiAgICAgY2FzZSBTSUdRVUlUOgorI2VuZGlmCiAgICAgICBybF9jbGVhbnVwX2FmdGVyX3NpZ25hbCAoKTsKIAogI2lmIGRlZmluZWQgKEhBVkVfUE9TSVhfU0lHTkFMUykKQEAgLTE1OCw3ICsxNzIsMTEgQEAKICAgICAgIHNpZ25hbCAoc2lnLCBTSUdfQUNLKTsKICNlbmRpZgogCisjaWYgZGVmaW5lZCAoSEFWRV9LSUxMKQogICAgICAga2lsbCAoZ2V0cGlkICgpLCBzaWcpOworI2Vsc2UKKyAgICAgIHJhaXNlIChzaWcpOwkJLyogYXNzdW1lIHdlIGhhdmUgcmFpc2UgKi8KKyNlbmRpZgogCiAgICAgICAvKiBMZXQgdGhlIHNpZ25hbCB0aGF0IHdlIGp1c3Qgc2VudCB0aHJvdWdoLiAgKi8KICNpZiBkZWZpbmVkIChIQVZFX1BPU0lYX1NJR05BTFMpCkBAIC0yMzMsNyArMjUxLDcgQEAKICAgc3RydWN0IHNpZ2FjdGlvbiBhY3Q7CiAKICAgYWN0LnNhX2hhbmRsZXIgPSBoYW5kbGVyOwotICBhY3Quc2FfZmxhZ3MgPSAwOwkvKiBYWFggLSBzaG91bGQgd2Ugc2V0IFNBX1JFU1RBUlQgZm9yIFNJR1dJTkNIPyAqLworICBhY3Quc2FfZmxhZ3MgPSAoc2lnID09IFNJR1dJTkNIKSA/IFNBX1JFU1RBUlQgOiAwOwogICBzaWdlbXB0eXNldCAoJmFjdC5zYV9tYXNrKTsKICAgc2lnZW1wdHlzZXQgKCZvaGFuZGxlci0+c2FfbWFzayk7CiAgIHNpZ2FjdGlvbiAoc2lnLCAmYWN0LCAmb2xkX2hhbmRsZXIpOwpAQCAtMjc1LDggKzI5MywxMSBAQAogICAgIHsKICAgICAgIHJsX21heWJlX3NldF9zaWdoYW5kbGVyIChTSUdJTlQsIHJsX3NpZ25hbF9oYW5kbGVyLCAmb2xkX2ludCk7CiAgICAgICBybF9tYXliZV9zZXRfc2lnaGFuZGxlciAoU0lHVEVSTSwgcmxfc2lnbmFsX2hhbmRsZXIsICZvbGRfdGVybSk7CisjaWYgZGVmaW5lZCAoU0lHUVVJVCkKICAgICAgIHJsX21heWJlX3NldF9zaWdoYW5kbGVyIChTSUdRVUlULCBybF9zaWduYWxfaGFuZGxlciwgJm9sZF9xdWl0KTsKKyNlbmRpZgogCisjaWYgZGVmaW5lZCAoU0lHQUxSTSkKICAgICAgIG9oID0gcmxfc2V0X3NpZ2hhbmRsZXIgKFNJR0FMUk0sIHJsX3NpZ25hbF9oYW5kbGVyLCAmb2xkX2Fscm0pOwogICAgICAgaWYgKG9oID09IChTaWdIYW5kbGVyICopU0lHX0lHTikKIAlybF9zaWdhY3Rpb24gKFNJR0FMUk0sICZvbGRfYWxybSwgJmR1bW15KTsKQEAgLTI4OCw2ICszMDksNyBAQAogICAgICAgaWYgKG9oICE9IChTaWdIYW5kbGVyICopU0lHX0RGTCAmJiAob2xkX2Fscm0uc2FfZmxhZ3MgJiBTQV9SRVNUQVJUKSkKIAlybF9zaWdhY3Rpb24gKFNJR0FMUk0sICZvbGRfYWxybSwgJmR1bW15KTsKICNlbmRpZiAvKiBIQVZFX1BPU0lYX1NJR05BTFMgKi8KKyNlbmRpZiAvKiBTSUdBTFJNICovCiAKICNpZiBkZWZpbmVkIChTSUdUU1RQKQogICAgICAgcmxfbWF5YmVfc2V0X3NpZ2hhbmRsZXIgKFNJR1RTVFAsIHJsX3NpZ25hbF9oYW5kbGVyLCAmb2xkX3RzdHApOwpAQCAtMzI2LDggKzM0OCwxMiBAQAogCiAgICAgICBybF9zaWdhY3Rpb24gKFNJR0lOVCwgJm9sZF9pbnQsICZkdW1teSk7CiAgICAgICBybF9zaWdhY3Rpb24gKFNJR1RFUk0sICZvbGRfdGVybSwgJmR1bW15KTsKKyNpZiBkZWZpbmVkIChTSUdRVUlUKQogICAgICAgcmxfc2lnYWN0aW9uIChTSUdRVUlULCAmb2xkX3F1aXQsICZkdW1teSk7CisjZW5kaWYKKyNpZiBkZWZpbmVkIChTSUdBTFJNKQogICAgICAgcmxfc2lnYWN0aW9uIChTSUdBTFJNLCAmb2xkX2Fscm0sICZkdW1teSk7CisjZW5kaWYKIAogI2lmIGRlZmluZWQgKFNJR1RTVFApCiAgICAgICBybF9zaWdhY3Rpb24gKFNJR1RTVFAsICZvbGRfdHN0cCwgJmR1bW15KTsKQEAgLTM2Miw3ICszODgsOCBAQAogcmxfY2xlYW51cF9hZnRlcl9zaWduYWwgKCkKIHsKICAgX3JsX2NsZWFuX3VwX2Zvcl9leGl0ICgpOwotICAoKnJsX2RlcHJlcF90ZXJtX2Z1bmN0aW9uKSAoKTsKKyAgaWYgKHJsX2RlcHJlcF90ZXJtX2Z1bmN0aW9uKQorICAgICgqcmxfZGVwcmVwX3Rlcm1fZnVuY3Rpb24pICgpOwogICBybF9jbGVhcl9zaWduYWxzICgpOwogICBybF9jbGVhcl9wZW5kaW5nX2lucHV0ICgpOwogfQpAQCAtMzcxLDcgKzM5OCw4IEBACiB2b2lkCiBybF9yZXNldF9hZnRlcl9zaWduYWwgKCkKIHsKLSAgKCpybF9wcmVwX3Rlcm1fZnVuY3Rpb24pIChfcmxfbWV0YV9mbGFnKTsKKyAgaWYgKHJsX3ByZXBfdGVybV9mdW5jdGlvbikKKyAgICAoKnJsX3ByZXBfdGVybV9mdW5jdGlvbikgKF9ybF9tZXRhX2ZsYWcpOwogICBybF9zZXRfc2lnbmFscyAoKTsKIH0KIApAQCAtMzkyLDcgKzQyMCw3IEBACiAKICAgX3JsX2tpbGxfa2JkX21hY3JvICgpOwogICBybF9jbGVhcl9tZXNzYWdlICgpOwotICBfcmxfaW5pdF9hcmd1bWVudCAoKTsKKyAgX3JsX3Jlc2V0X2FyZ3VtZW50ICgpOwogfQogCiAjZW5kaWYgIC8qIEhBTkRMRV9TSUdOQUxTICovCmRpZmYgLS1naXQgYS9yZWFkbGluZS9zdXBwb3J0L2NvbmZpZy5ndWVzcyBiL3JlYWRsaW5lL3N1cHBvcnQvY29uZmlnLmd1ZXNzCmluZGV4IDU2NjgxMDguLjZkOTBkNmYgMTAwNzU1Ci0tLSBhL3JlYWRsaW5lL3N1cHBvcnQvY29uZmlnLmd1ZXNzCisrKyBiL3JlYWRsaW5lL3N1cHBvcnQvY29uZmlnLmd1ZXNzCkBAIC0zLDcgKzMsNyBAQAogIyAgIENvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwKICMgICAyMDAwLCAyMDAxLCAyMDAyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCi10aW1lc3RhbXA9JzIwMDItMDMtMjAnCit0aW1lc3RhbXA9JzIwMDItMTEtMzAnCiAKICMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKICMgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKQEAgLTg4LDQwICs4OCw0NyBAQAogICBleGl0IDEKIGZpCiAKK3RyYXAgJ2V4aXQgMScgMSAyIDE1CiAKLWR1bW15PWR1bW15LSQkCi10cmFwICdybSAtZiAkZHVtbXkuYyAkZHVtbXkubyAkZHVtbXkucmVsICRkdW1teTsgZXhpdCAxJyAxIDIgMTUKKyMgQ0NfRk9SX0JVSUxEIC0tIGNvbXBpbGVyIHVzZWQgYnkgdGhpcyBzY3JpcHQuIE5vdGUgdGhhdCB0aGUgdXNlIG9mIGEKKyMgY29tcGlsZXIgdG8gYWlkIGluIHN5c3RlbSBkZXRlY3Rpb24gaXMgZGlzY291cmFnZWQgYXMgaXQgcmVxdWlyZXMKKyMgdGVtcG9yYXJ5IGZpbGVzIHRvIGJlIGNyZWF0ZWQgYW5kLCBhcyB5b3UgY2FuIHNlZSBiZWxvdywgaXQgaXMgYQorIyBoZWFkYWNoZSB0byBkZWFsIHdpdGggaW4gYSBwb3J0YWJsZSBmYXNoaW9uLgogCi0jIENDX0ZPUl9CVUlMRCAtLSBjb21waWxlciB1c2VkIGJ5IHRoaXMgc2NyaXB0LgogIyBIaXN0b3JpY2FsbHksIGBDQ19GT1JfQlVJTEQnIHVzZWQgdG8gYmUgbmFtZWQgYEhPU1RfQ0MnLiBXZSBzdGlsbAogIyB1c2UgYEhPU1RfQ0MnIGlmIGRlZmluZWQsIGJ1dCBpdCBpcyBkZXByZWNhdGVkLgogCi1zZXRfY2NfZm9yX2J1aWxkPSdjYXNlICRDQ19GT1JfQlVJTEQsJEhPU1RfQ0MsJENDIGluCi0gLCwpICAgIGVjaG8gImludCBkdW1teSgpe30iID4gJGR1bW15LmMgOworIyBUaGlzIHNoZWxsIHZhcmlhYmxlIGlzIG15IHByb3VkZXN0IHdvcmsgLi4gb3Igc29tZXRoaW5nLiAtLWJqZQorCitzZXRfY2NfZm9yX2J1aWxkPSd0bXBkaXI9JHtUTVBESVItL3RtcH0vY29uZmlnLWd1ZXNzLSQkIDsKKyhvbGQ9YHVtYXNrYCAmJiB1bWFzayAwNzcgJiYgbWtkaXIgJHRtcGRpciAmJiB1bWFzayAkb2xkICYmIHVuc2V0IG9sZCkKKyAgIHx8IChlY2hvICIkbWU6IGNhbm5vdCBjcmVhdGUgJHRtcGRpciIgPiYyICYmIGV4aXQgMSkgOworZHVtbXk9JHRtcGRpci9kdW1teSA7CitmaWxlcz0iJGR1bW15LmMgJGR1bW15Lm8gJGR1bW15LnJlbCAkZHVtbXkiIDsKK3RyYXAgJyInIidybSAtZiAkZmlsZXM7IHJtZGlyICR0bXBkaXI7IGV4aXQgMSciJyInIDEgMiAxNSA7CitjYXNlICRDQ19GT1JfQlVJTEQsJEhPU1RfQ0MsJENDIGluCisgLCwpICAgIGVjaG8gImludCB4OyIgPiAkZHVtbXkuYyA7CiAJZm9yIGMgaW4gY2MgZ2NjIGM4OSBjOTkgOyBkbwotCSAgKCRjICRkdW1teS5jIC1jIC1vICRkdW1teS5vKSA+L2Rldi9udWxsIDI+JjEgOwotCSAgaWYgdGVzdCAkPyA9IDAgOyB0aGVuCisJICBpZiAoJGMgLWMgLW8gJGR1bW15Lm8gJGR1bW15LmMpID4vZGV2L251bGwgMj4mMSA7IHRoZW4KIAkgICAgIENDX0ZPUl9CVUlMRD0iJGMiOyBicmVhayA7CiAJICBmaSA7CiAJZG9uZSA7Ci0Jcm0gLWYgJGR1bW15LmMgJGR1bW15Lm8gJGR1bW15LnJlbCA7CisJcm0gLWYgJGZpbGVzIDsKIAlpZiB0ZXN0IHgiJENDX0ZPUl9CVUlMRCIgPSB4IDsgdGhlbgogCSAgQ0NfRk9SX0JVSUxEPW5vX2NvbXBpbGVyX2ZvdW5kIDsKIAlmaQogCTs7CiAgLCwqKSAgIENDX0ZPUl9CVUlMRD0kQ0MgOzsKICAsKiwqKSAgQ0NfRk9SX0JVSUxEPSRIT1NUX0NDIDs7Ci1lc2FjJworZXNhYyA7Cit1bnNldCBmaWxlcycKIAogIyBUaGlzIGlzIG5lZWRlZCB0byBmaW5kIHVuYW1lIG9uIGEgUHlyYW1pZCBPU3ggd2hlbiBydW4gaW4gdGhlIEJTRCB1bml2ZXJzZS4KICMgKGdoYXppQG5vYy5ydXRnZXJzLmVkdSAxOTk0LTA4LTI0KQogaWYgKHRlc3QgLWYgLy5hdHRiaW4vdW5hbWUpID4vZGV2L251bGwgMj4mMSA7IHRoZW4KIAlQQVRIPSRQQVRIOi8uYXR0YmluIDsgZXhwb3J0IFBBVEgKLWVsaWYgKHRlc3QgLWYgL3Vzci81YmluL3VuYW1lKSA+L2Rldi9udWxsIDI+JjEgOyB0aGVuCSMgYmFzaAotCVBBVEg9JFBBVEg6L3Vzci81YmluCiBmaQogCi1VTkFNRT1gKHVuYW1lKSAyPi9kZXYvbnVsbGAgfHwgVU5BTUU9dW5rbm93bgkjIGJhc2gKIFVOQU1FX01BQ0hJTkU9YCh1bmFtZSAtbSkgMj4vZGV2L251bGxgIHx8IFVOQU1FX01BQ0hJTkU9dW5rbm93bgogVU5BTUVfUkVMRUFTRT1gKHVuYW1lIC1yKSAyPi9kZXYvbnVsbGAgfHwgVU5BTUVfUkVMRUFTRT11bmtub3duCiBVTkFNRV9TWVNURU09YCh1bmFtZSAtcykgMj4vZGV2L251bGxgICB8fCBVTkFNRV9TWVNURU09dW5rbm93bgpAQCAtMTMwLDYxICsxMzcsNiBAQAogIyBOb3RlOiBvcmRlciBpcyBzaWduaWZpY2FudCAtIHRoZSBjYXNlIGJyYW5jaGVzIGFyZSBub3QgZXhjbHVzaXZlLgogCiBjYXNlICIke1VOQU1FX01BQ0hJTkV9OiR7VU5BTUVfU1lTVEVNfToke1VOQU1FX1JFTEVBU0V9OiR7VU5BTUVfVkVSU0lPTn0iIGluCi0gICAgIyBOT1RFIC0tIGJlZ2luIGNhc2VzIGFkZGVkIGZvciBiYXNoIChtb3N0bHkgbGVnYWN5KSAtLSBOT1RFCi0gICAgbWFjNjhrOm1hY2h0ZW46KjoqKQotCWVjaG8gbWFjNjhrLWFwcGxlLW1hY2h0ZW4ke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgY29uY3VycmVudCo6KjoqOiopCi0JaWYgdGVzdCAiYCgvYmluL3VuaXZlcnNlKSAyPi9kZXYvbnVsbGAiID0gYXR0IDsgdGhlbgotCQllY2hvIGNvbmN1cnJlbnQtY29uY3VycmVudC1zeXN2MwotCWVsc2UKLQkJZWNobyBjb25jdXJyZW50LWNvbmN1cnJlbnQtYnNkCi0JZmkKLQlleGl0IDAgOzsKLSAgICBwcGMqOlN1bk9TOjUuKjoqKQotCWVjaG8gcHBjLXN1bi1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAotCWV4aXQgMCA7OwotICAgIHNwYXJjOlVOSVhfU1Y6NC4qOiopCi0JZWNobyBzcGFyYy11bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgbWlwczpVTklYX1NWOjQuKjoqKQotCWVjaG8gbWlwcy1taXBzLXN5c3Yke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgbWlwczpPU0YqMToqOiopCi0JZWNobyBtaXBzLW1pcHMtb3NmMQotCWV4aXQgMCA7OwotICAgIG1pcHM6NC40QlNEOio6KikKLQllY2hvIG1pcHMtbWlwcy1ic2Q0LjQKLQlleGl0IDAgOzsKLSAgICBNSVMqOlNNUF9EQy5PU3g6KjpkY29zeCkJIyBub3QgdGhlIHNhbWUgYXMgYmVsb3cKLQllY2hvIHB5cmFtaWQtcHlyYW1pZC1zeXN2NAotCWV4aXQgMCA7OwotICAgIG5ld3MqOk5FV1MqOio6KikKLQllY2hvIG1pcHMtc29ueS1uZXdzb3Mke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAgKjM3MDpBSVg6KjoqKQotCWVjaG8gaWJtMzcwLWlibS1haXgke1VOQU1FX1JFTEVBU0V9Ci0JZXhpdCAwIDs7Ci0gICAga3NyMTpPU0YqMToqOiopCi0JZWNobyBrc3IxLWtzci1vc2YxCi0JZXhpdCAwIDs7Ci0gICAgZXNhOk9TRioxOio6KiB8IEVTQTpPU0YqOio6KikKLQllY2hvIGVzYS1pYm0tb3NmMQotCWV4aXQgMCA7OwotICAgIEROUCo6RE5JWDoqOiopCi0JZWNobyBtNjhrLWRuaXgtc3lzdgotCWV4aXQgMCA7OwotICAgICozYjIqOio6KjoqKQotCWVjaG8gd2UzMmstYXR0LXN5c3YzCi0JZXhpdCAwIDs7Ci0gICAgQWxwaGEqOldpbmRvd3NfTlQ6KjpTUCopCi0JZWNobyBhbHBoYS1wYy1vcGVubnQKLQlleGl0IDAgOzsKLSAgICAqOldpbmRvd3NfTlQ6KjpTUCopCi0JZWNobyBpMzg2LXBjLW9wZW5udAotCWV4aXQgMCA7OwotCi0gICAgIyBOT1RFIC0tIGVuZCBsZWdhY3kgY2FzZXMgYWRkZWQgZm9yIGJhc2ggLS0gTk9URQogICAgICo6TmV0QlNEOio6KikKIAkjIE5ldEJTRCAobmJzZCkgdGFyZ2V0cyBzaG91bGQgKHdoZXJlIGFwcGxpY2FibGUpIG1hdGNoIG9uZSBvcgogCSMgbW9yZSBvZiB0aGUgdHVwcGxlczogKi0qLW5ldGJzZGVsZiosICotKi1uZXRic2Rhb3V0KiwKQEAgLTIwMCw2ICsxNTIsNyBAQAogCVVOQU1FX01BQ0hJTkVfQVJDSD1gKC9zYmluLyRzeXNjdGwgMj4vZGV2L251bGwgfHwgXAogCSAgICAvdXNyL3NiaW4vJHN5c2N0bCAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd24pYAogCWNhc2UgIiR7VU5BTUVfTUFDSElORV9BUkNIfSIgaW4KKwkgICAgYXJtZWIpIG1hY2hpbmU9YXJtZWItdW5rbm93biA7OwogCSAgICBhcm0qKSBtYWNoaW5lPWFybS11bmtub3duIDs7CiAJICAgIHNoM2VsKSBtYWNoaW5lPXNobC11bmtub3duIDs7CiAJICAgIHNoM2ViKSBtYWNoaW5lPXNoLXVua25vd24gOzsKQEAgLTIyNSw3ICsxNzgsMTggQEAKIAkJOzsKIAllc2FjCiAJIyBUaGUgT1MgcmVsZWFzZQotCXJlbGVhc2U9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy1fXS4qL1wuLydgCisJIyBEZWJpYW4gR05VL05ldEJTRCBtYWNoaW5lcyBoYXZlIGEgZGlmZmVyZW50IHVzZXJsYW5kLCBhbmQKKwkjIHRodXMsIG5lZWQgYSBkaXN0aW5jdCB0cmlwbGV0LiBIb3dldmVyLCB0aGV5IGRvIG5vdCBuZWVkCisJIyBrZXJuZWwgdmVyc2lvbiBpbmZvcm1hdGlvbiwgc28gaXQgY2FuIGJlIHJlcGxhY2VkIHdpdGggYQorCSMgc3VpdGFibGUgdGFnLCBpbiB0aGUgc3R5bGUgb2YgbGludXgtZ251LgorCWNhc2UgIiR7VU5BTUVfVkVSU0lPTn0iIGluCisJICAgIERlYmlhbiopCisJCXJlbGVhc2U9Jy1nbnUnCisJCTs7CisJICAgICopCisJCXJlbGVhc2U9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy1fXS4qL1wuLydgCisJCTs7CisJZXNhYwogCSMgU2luY2UgQ1BVX1RZUEUtTUFOVUZBQ1RVUkVSLUtFUk5FTC1PUEVSQVRJTkdfU1lTVEVNOgogCSMgY29udGFpbnMgcmVkdW5kYW50IGluZm9ybWF0aW9uLCB0aGUgc2hvcnRlciBmb3JtOgogCSMgQ1BVX1RZUEUtTUFOVUZBQ1RVUkVSLU9QRVJBVElOR19TWVNURU0gaXMgdXNlZC4KQEAgLTI2NCw5ICsyMjgsNiBAQAogICAgIHN1bjM6T3BlbkJTRDoqOiopCiAJZWNobyBtNjhrLXVua25vd24tb3BlbmJzZCR7VU5BTUVfUkVMRUFTRX0KIAlleGl0IDAgOzsKLSAgICB2YXg6T3BlbkJTRDoqOiopCSMgYmFzaAotCWVjaG8gdmF4LWRlYy1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwogICAgIHdncmlzYzpPcGVuQlNEOio6KikKIAllY2hvIG1pcHNlbC11bmtub3duLW9wZW5ic2Qke1VOQU1FX1JFTEVBU0V9CiAJZXhpdCAwIDs7CkBAIC0yODEsNiArMjQyLDcgQEAKIAkjIEEgVG4ubiB2ZXJzaW9uIGlzIGEgcmVsZWFzZWQgZmllbGQgdGVzdCB2ZXJzaW9uLgogCSMgQSBYbi5uIHZlcnNpb24gaXMgYW4gdW5yZWxlYXNlZCBleHBlcmltZW50YWwgYmFzZWxldmVsLgogCSMgMS4yIHVzZXMgIjEuMiIgZm9yIHVuYW1lIC1yLgorCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKIAljYXQgPDxFT0YgPiRkdW1teS5zCiAJLmRhdGEKIFwkTGZvcm1hdDoKQEAgLTMwNiwxMCArMjY4LDkgQEAKIAlqc3IgXCQyNixleGl0CiAJLmVuZCBtYWluCiBFT0YKLQlldmFsICRzZXRfY2NfZm9yX2J1aWxkCi0JJENDX0ZPUl9CVUlMRCAkZHVtbXkucyAtbyAkZHVtbXkgMj4vZGV2L251bGwKKwkkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkucyAyPi9kZXYvbnVsbAogCWlmIHRlc3QgIiQ/IiA9IDAgOyB0aGVuCi0JCWNhc2UgYC4vJGR1bW15YCBpbgorCQljYXNlIGAkZHVtbXlgIGluCiAJCQkwLTApCiAJCQkJVU5BTUVfTUFDSElORT0iYWxwaGEiCiAJCQkJOzsKQEAgLTMzMSw5ICsyOTIsMTIgQEAKIAkJCTItMTMwNykKIAkJCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NjgiCiAJCQkJOzsKKwkJCTMtMTMwNykKKwkJCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NyIKKwkJCQk7OwogCQllc2FjCiAJZmkKLQlybSAtZiAkZHVtbXkucyAkZHVtbXkKKwlybSAtZiAkZHVtbXkucyAkZHVtbXkgJiYgcm1kaXIgJHRtcGRpcgogCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1kZWMtb3NmYGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9eW1ZUWF0vLycgfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eidgCiAJZXhpdCAwIDs7CiAgICAgQWxwaGFcICo6V2luZG93c19OVCo6KikKQEAgLTM3NCw2ICszMzgsMTAgQEAKICAgICBOSUxFKjoqOio6ZGNvc3gpCiAJZWNobyBweXJhbWlkLXB5cmFtaWQtc3ZyNAogCWV4aXQgMCA7OworICAgIERSUz82MDAwOlVOSVhfU1Y6NC4yKjo3KikKKwljYXNlIGAvdXNyL2Jpbi91bmFtZSAtcGAgaW4KKwkgICAgc3BhcmMpIGVjaG8gc3BhcmMtaWNsLW54NyAmJiBleGl0IDAgOzsKKwllc2FjIDs7CiAgICAgc3VuNEg6U3VuT1M6NS4qOiopCiAJZWNobyBzcGFyYy1oYWwtc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKIAlleGl0IDAgOzsKQEAgLTQ4MCwxNSArNDQ4LDIxIEBACiAJICBleGl0ICgtMSk7CiAJfQogRU9GCi0JJENDX0ZPUl9CVUlMRCAkZHVtbXkuYyAtbyAkZHVtbXkgXAotCSAgJiYgLi8kZHVtbXkgYGVjaG8gIiR7VU5BTUVfUkVMRUFTRX0iIHwgc2VkIC1uICdzL1woWzAtOV0qXCkuKi9cMS9wJ2AgXAotCSAgJiYgcm0gLWYgJGR1bW15LmMgJGR1bW15ICYmIGV4aXQgMAotCXJtIC1mICRkdW1teS5jICRkdW1teQorCSRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5jIFwKKwkgICYmICRkdW1teSBgZWNobyAiJHtVTkFNRV9SRUxFQVNFfSIgfCBzZWQgLW4gJ3MvXChbMC05XSpcKS4qL1wxL3AnYCBcCisJICAmJiBybSAtZiAkZHVtbXkuYyAkZHVtbXkgJiYgcm1kaXIgJHRtcGRpciAmJiBleGl0IDAKKwlybSAtZiAkZHVtbXkuYyAkZHVtbXkgJiYgcm1kaXIgJHRtcGRpcgogCWVjaG8gbWlwcy1taXBzLXJpc2NvcyR7VU5BTUVfUkVMRUFTRX0KIAlleGl0IDAgOzsKICAgICBNb3Rvcm9sYTpQb3dlck1BWF9PUzoqOiopCiAJZWNobyBwb3dlcnBjLW1vdG9yb2xhLXBvd2VybWF4CiAJZXhpdCAwIDs7CisgICAgTW90b3JvbGE6Kjo0LjM6UEw4LSopCisJZWNobyBwb3dlcnBjLWhhcnJpcy1wb3dlcm1heAorCWV4aXQgMCA7OworICAgIE5pZ2h0X0hhd2s6KjoqOlBvd2VyTUFYX09TIHwgU3luZXJneTpQb3dlck1BWF9PUzoqOiopCisJZWNobyBwb3dlcnBjLWhhcnJpcy1wb3dlcm1heAorCWV4aXQgMCA7OwogICAgIE5pZ2h0X0hhd2s6UG93ZXJfVU5JWDoqOiopCiAJZWNobyBwb3dlcnBjLWhhcnJpcy1wb3dlcnVuaXgKIAlleGl0IDAgOzsKQEAgLTU2MSw4ICs1MzUsOCBAQAogCQkJZXhpdCgwKTsKIAkJCX0KIEVPRgotCQkkQ0NfRk9SX0JVSUxEICRkdW1teS5jIC1vICRkdW1teSAmJiAuLyRkdW1teSAmJiBybSAtZiAkZHVtbXkuYyAkZHVtbXkgJiYgZXhpdCAwCi0JCXJtIC1mICRkdW1teS5jICRkdW1teQorCQkkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAmJiAkZHVtbXkgJiYgcm0gLWYgJGR1bW15LmMgJGR1bW15ICYmIHJtZGlyICR0bXBkaXIgJiYgZXhpdCAwCisJCXJtIC1mICRkdW1teS5jICRkdW1teSAmJiBybWRpciAkdG1wZGlyCiAJCWVjaG8gcnM2MDAwLWlibS1haXgzLjIuNQogCWVsaWYgZ3JlcCBib3MzMjQgL3Vzci9pbmNsdWRlL3N0ZGlvLmggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAJCWVjaG8gcnM2MDAwLWlibS1haXgzLjIuNApAQCAtNjYwLDkgKzYzNCw5IEBACiAgICAgICAgICAgICAgICAgICBleGl0ICgwKTsKICAgICAgICAgICAgICAgfQogRU9GCi0JCSAgICAoQ0NPUFRTPSAkQ0NfRk9SX0JVSUxEICRkdW1teS5jIC1vICRkdW1teSAyPi9kZXYvbnVsbCkgJiYgSFBfQVJDSD1gLi8kZHVtbXlgCisJCSAgICAoQ0NPUFRTPSAkQ0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAyPi9kZXYvbnVsbCkgJiYgSFBfQVJDSD1gJGR1bW15YAogCQkgICAgaWYgdGVzdCAteiAiJEhQX0FSQ0giOyB0aGVuIEhQX0FSQ0g9aHBwYTsgZmkKLQkJICAgIHJtIC1mICRkdW1teS5jICRkdW1teQorCQkgICAgcm0gLWYgJGR1bW15LmMgJGR1bW15ICYmIHJtZGlyICR0bXBkaXIKIAkJZmkgOzsKIAllc2FjCiAJZWNobyAke0hQX0FSQ0h9LWhwLWhwdXgke0hQVVhfUkVWfQpAQCAtNjk4LDggKzY3Miw4IEBACiAJICBleGl0ICgwKTsKIAl9CiBFT0YKLQkkQ0NfRk9SX0JVSUxEICRkdW1teS5jIC1vICRkdW1teSAmJiAuLyRkdW1teSAmJiBybSAtZiAkZHVtbXkuYyAkZHVtbXkgJiYgZXhpdCAwCi0Jcm0gLWYgJGR1bW15LmMgJGR1bW15CisJJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgJiYgJGR1bW15ICYmIHJtIC1mICRkdW1teS5jICRkdW1teSAmJiBybWRpciAkdG1wZGlyICYmIGV4aXQgMAorCXJtIC1mICRkdW1teS5jICRkdW1teSAmJiBybWRpciAkdG1wZGlyCiAJZWNobyB1bmtub3duLWhpdGFjaGktaGl1eHdlMgogCWV4aXQgMCA7OwogICAgIDkwMDAvNz8/OjQuM2JzZDoqOiogfCA5MDAwLzg/Wzc5XTo0LjNic2Q6KjoqICkKQEAgLTc4MSw4ICs3NTUsMjMgQEAKICAgICAqOkJTRC9PUzoqOiopCiAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tYnNkaSR7VU5BTUVfUkVMRUFTRX0KIAlleGl0IDAgOzsKKyAgICBhbWQ2NDpGcmVlQlNEOio6KikKKwllY2hvIHg4Nl82NC11bmtub3duLWZyZWVic2QKKwlleGl0IDAgOzsKICAgICAqOkZyZWVCU0Q6KjoqKQotCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWZyZWVic2RgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgCisJIyBEZXRlcm1pbmUgd2hldGhlciB0aGUgZGVmYXVsdCBjb21waWxlciB1c2VzIGdsaWJjLgorCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKwlzZWQgJ3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYworCSNpbmNsdWRlIDxmZWF0dXJlcy5oPgorCSNpZiBfX0dMSUJDX18gPj0gMgorCUxJQkM9Z251CisJI2Vsc2UKKwlMSUJDPQorCSNlbmRpZgorRU9GCisJZXZhbCBgJENDX0ZPUl9CVUlMRCAtRSAkZHVtbXkuYyAyPi9kZXYvbnVsbCB8IGdyZXAgXkxJQkM9YAorCXJtIC1mICRkdW1teS5jICYmIHJtZGlyICR0bXBkaXIKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1mcmVlYnNkYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4qLy8nYCR7TElCQzorLSRMSUJDfQogCWV4aXQgMCA7OwogICAgIGkqOkNZR1dJTio6KikKIAllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtY3lnd2luCkBAIC03OTQsMTMgKzc4MywxNiBAQAogCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1wdzMyCiAJZXhpdCAwIDs7CiAgICAgeDg2OkludGVyaXgqOjMqKQotCWVjaG8gaTM4Ni1wYy1pbnRlcml4MworCWVjaG8gaTU4Ni1wYy1pbnRlcml4MworCWV4aXQgMCA7OworICAgIFszNDVdODY6V2luZG93c185NToqIHwgWzM0NV04NjpXaW5kb3dzXzk4OiogfCBbMzQ1XTg2OldpbmRvd3NfTlQ6KikKKwllY2hvIGkke1VOQU1FX01BQ0hJTkV9LXBjLW1rcwogCWV4aXQgMCA7OwogICAgIGkqOldpbmRvd3NfTlQqOiogfCBQZW50aXVtKjpXaW5kb3dzX05UKjoqKQogCSMgSG93IGRvIHdlIGtub3cgaXQncyBJbnRlcml4IHJhdGhlciB0aGFuIHRoZSBnZW5lcmljIFBPU0lYIHN1YnN5c3RlbT8KIAkjIEl0IGFsc28gY29uZmxpY3RzIHdpdGggcHJlLTIuMCB2ZXJzaW9ucyBvZiBBVCZUIFVXSU4uIFNob3VsZCB3ZQogCSMgVU5BTUVfTUFDSElORSBiYXNlZCBvbiB0aGUgb3V0cHV0IG9mIHVuYW1lIGluc3RlYWQgb2YgaTM4Nj8KLQllY2hvIGkzODYtcGMtaW50ZXJpeAorCWVjaG8gaTU4Ni1wYy1pbnRlcml4CiAJZXhpdCAwIDs7CiAgICAgaSo6VVdJTio6KikKIAllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtdXdpbgpAQCAtODQzLDggKzgzNSwyOCBAQAogCSNlbmRpZgogRU9GCiAJZXZhbCBgJENDX0ZPUl9CVUlMRCAtRSAkZHVtbXkuYyAyPi9kZXYvbnVsbCB8IGdyZXAgXkNQVT1gCi0Jcm0gLWYgJGR1bW15LmMKLQl0ZXN0IHgiJHtDUFV9IiAhPSB4ICYmIGVjaG8gIiR7Q1BVfS1wYy1saW51eC1nbnUiICYmIGV4aXQgMAorCXJtIC1mICRkdW1teS5jICYmIHJtZGlyICR0bXBkaXIKKwl0ZXN0IHgiJHtDUFV9IiAhPSB4ICYmIGVjaG8gIiR7Q1BVfS11bmtub3duLWxpbnV4LWdudSIgJiYgZXhpdCAwCisJOzsKKyAgICBtaXBzNjQ6TGludXg6KjoqKQorCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKwlzZWQgJ3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYworCSN1bmRlZiBDUFUKKwkjdW5kZWYgbWlwczY0CisJI3VuZGVmIG1pcHM2NGVsCisJI2lmIGRlZmluZWQoX19NSVBTRUxfXykgfHwgZGVmaW5lZChfX01JUFNFTCkgfHwgZGVmaW5lZChfTUlQU0VMKSB8fCBkZWZpbmVkKE1JUFNFTCkKKwlDUFU9bWlwczY0ZWwKKwkjZWxzZQorCSNpZiBkZWZpbmVkKF9fTUlQU0VCX18pIHx8IGRlZmluZWQoX19NSVBTRUIpIHx8IGRlZmluZWQoX01JUFNFQikgfHwgZGVmaW5lZChNSVBTRUIpCisJQ1BVPW1pcHM2NAorCSNlbHNlCisJQ1BVPQorCSNlbmRpZgorCSNlbmRpZgorRU9GCisJZXZhbCBgJENDX0ZPUl9CVUlMRCAtRSAkZHVtbXkuYyAyPi9kZXYvbnVsbCB8IGdyZXAgXkNQVT1gCisJcm0gLWYgJGR1bW15LmMgJiYgcm1kaXIgJHRtcGRpcgorCXRlc3QgeCIke0NQVX0iICE9IHggJiYgZWNobyAiJHtDUFV9LXVua25vd24tbGludXgtZ251IiAmJiBleGl0IDAKIAk7OwogICAgIHBwYzpMaW51eDoqOiopCiAJZWNobyBwb3dlcnBjLXVua25vd24tbGludXgtZ251CkBAIC05MDYsNyArOTE4LDcgQEAKIAkJOzsKIAkgIGEub3V0LWkzODYtbGludXgpCiAJCWVjaG8gIiR7VU5BTUVfTUFDSElORX0tcGMtbGludXgtZ251YW91dCIKLQkJZXhpdCAwIDs7CQkKKwkJZXhpdCAwIDs7CiAJICBjb2ZmLWkzODYpCiAJCWVjaG8gIiR7VU5BTUVfTUFDSElORX0tcGMtbGludXgtZ251Y29mZiIKIAkJZXhpdCAwIDs7CkBAIC05MzksNyArOTUxLDcgQEAKIAkjZW5kaWYKIEVPRgogCWV2YWwgYCRDQ19GT1JfQlVJTEQgLUUgJGR1bW15LmMgMj4vZGV2L251bGwgfCBncmVwIF5MSUJDPWAKLQlybSAtZiAkZHVtbXkuYworCXJtIC1mICRkdW1teS5jICYmIHJtZGlyICR0bXBkaXIKIAl0ZXN0IHgiJHtMSUJDfSIgIT0geCAmJiBlY2hvICIke1VOQU1FX01BQ0hJTkV9LXBjLWxpbnV4LSR7TElCQ30iICYmIGV4aXQgMAogCXRlc3QgeCIke1RFTlRBVElWRX0iICE9IHggJiYgZWNobyAiJHtURU5UQVRJVkV9IiAmJiBleGl0IDAKIAk7OwpAQCAtOTU3LDYgKzk2OSwyMyBAQAogICAgICAgICAjIFVzZSBzeXN2NC4ydXcuLi4gc28gdGhhdCBzeXN2NCogbWF0Y2hlcyBpdC4KIAllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc3lzdjQuMnV3JHtVTkFNRV9WRVJTSU9OfQogCWV4aXQgMCA7OworICAgIGkqODY6T1MvMjoqOiopCisJIyBJZiB3ZSB3ZXJlIGFibGUgdG8gZmluZCBgdW5hbWUnLCB0aGVuIEVNWCBVbml4IGNvbXBhdGliaWxpdHkKKwkjIGlzIHByb2JhYmx5IGluc3RhbGxlZC4KKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtb3MyLWVteAorCWV4aXQgMCA7OworICAgIGkqODY6WFRTLTMwMDoqOlNUT1ApCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tc3RvcAorCWV4aXQgMCA7OworICAgIGkqODY6YXRoZW9zOio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1hdGhlb3MKKwlleGl0IDAgOzsKKyAgICBpKjg2Okx5bnhPUzoyLio6KiB8IGkqODY6THlueE9TOjMuWzAxXSo6KiB8IGkqODY6THlueE9TOjQuMCo6KikKKwllY2hvIGkzODYtdW5rbm93bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9CisJZXhpdCAwIDs7CisgICAgaSo4NjoqRE9TOio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtbXNkb3NkamdwcAorCWV4aXQgMCA7OwogICAgIGkqODY6Kjo0Lio6KiB8IGkqODY6U1lTVEVNX1Y6NC4qOiopCiAJVU5BTUVfUkVMPWBlY2hvICR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgJ3MvXC9NUCQvLydgCiAJaWYgZ3JlcCBOb3ZlbGwgL3Vzci9pbmNsdWRlL2xpbmsuaCA+L2Rldi9udWxsIDI+L2Rldi9udWxsOyB0aGVuCkBAIC05NzgsMjIgKzEwMDcsMTkgQEAKIAkJVU5BTUVfUkVMPWBzZWQgLW4gJ3MvLipWZXJzaW9uIC8vcCcgPC91c3Ivb3B0aW9ucy9jYi5uYW1lYAogCQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtaXNjJFVOQU1FX1JFTAogCWVsaWYgL2Jpbi91bmFtZSAtWCAyPi9kZXYvbnVsbCA+L2Rldi9udWxsIDsgdGhlbgotCQlVTkFNRV9SRUw9YCgvYmluL3VuYW1lIC1YfGVncmVwIFJlbGVhc2V8c2VkIC1lICdzLy4qPSAvLycpYAotCQkoL2Jpbi91bmFtZSAtWHxlZ3JlcCBpODA0ODYgPi9kZXYvbnVsbCkgJiYgVU5BTUVfTUFDSElORT1pNDg2Ci0JCSgvYmluL3VuYW1lIC1YfGVncmVwICdeTWFjaGluZS4qUGVudGl1bScgPi9kZXYvbnVsbCkgXAorCQlVTkFNRV9SRUw9YCgvYmluL3VuYW1lIC1YfGdyZXAgUmVsZWFzZXxzZWQgLWUgJ3MvLio9IC8vJylgCisJCSgvYmluL3VuYW1lIC1YfGdyZXAgaTgwNDg2ID4vZGV2L251bGwpICYmIFVOQU1FX01BQ0hJTkU9aTQ4NgorCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4qUGVudGl1bScgPi9kZXYvbnVsbCkgXAogCQkJJiYgVU5BTUVfTUFDSElORT1pNTg2Ci0JCSgvYmluL3VuYW1lIC1YfGVncmVwICdeTWFjaGluZS4qUGVudCA/SUknID4vZGV2L251bGwpIFwKKwkJKC9iaW4vdW5hbWUgLVh8Z3JlcCAnXk1hY2hpbmUuKlBlbnQgKklJJyA+L2Rldi9udWxsKSBcCiAJCQkmJiBVTkFNRV9NQUNISU5FPWk2ODYKLQkJKC9iaW4vdW5hbWUgLVh8ZWdyZXAgJ15NYWNoaW5lLipQZW50aXVtIFBybycgPi9kZXYvbnVsbCkgXAorCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4qUGVudGl1bSBQcm8nID4vZGV2L251bGwpIFwKIAkJCSYmIFVOQU1FX01BQ0hJTkU9aTY4NgogCQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc2NvJFVOQU1FX1JFTAogCWVsc2UKIAkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3YzMgogCWZpCiAJZXhpdCAwIDs7Ci0gICAgaSo4NjoqRE9TOio6KikKLQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtbXNkb3NkamdwcAotCWV4aXQgMCA7OwogICAgIHBjOio6KjoqKQogCSMgTGVmdCBoZXJlIGZvciBjb21wYXRpYmlsaXR5OgogICAgICAgICAjIHVuYW1lIC1tIHByaW50cyBmb3IgREpHUFAgYWx3YXlzICdwYycsIGJ1dCBpdCBwcmludHMgbm90aGluZyBhYm91dApAQCAtMTAxNyw5ICsxMDQzLDE1IEBACiAJIyAibWluaWZyYW1lIgogCWVjaG8gbTY4MDEwLWNvbnZlcmdlbnQtc3lzdgogCWV4aXQgMCA7OworICAgIG1jNjhrOlVOSVg6U1lTVEVNNTozLjUxbSkKKwllY2hvIG02OGstY29udmVyZ2VudC1zeXN2CisJZXhpdCAwIDs7CisgICAgTTY4MD8wOkQtTklYOjUuMzoqKQorCWVjaG8gbTY4ay1kaWFiLWRuaXgKKwlleGl0IDAgOzsKICAgICBNNjgqOio6UjNWWzU2N10qOiopCiAJdGVzdCAtciAvc3lzVjY4ICYmIGVjaG8gJ202OGstbW90b3JvbGEtc3lzdicgJiYgZXhpdCAwIDs7Ci0gICAgM1szNF0/PzoqOjQuMDozLjAgfCAzWzM0XT8/QToqOjQuMDozLjAgfCAzWzM0XT8/LCo6Kjo0LjA6My4wIHwgM1szNF0/Py8qOio6NC4wOjMuMCB8IDQ4NTA6Kjo0LjA6My4wIHwgU0tBNDA6Kjo0LjA6My4wKQorICAgIDNbMzRdPz86Kjo0LjA6My4wIHwgM1szNF0/P0E6Kjo0LjA6My4wIHwgM1szNF0/PywqOio6NC4wOjMuMCB8IDNbMzRdPz8vKjoqOjQuMDozLjAgfCA0NDAwOio6NC4wOjMuMCB8IDQ4NTA6Kjo0LjA6My4wIHwgU0tBNDA6Kjo0LjA6My4wIHwgU0RTMjoqOjQuMDozLjApCiAJT1NfUkVMPScnCiAJdGVzdCAtciAvZXRjLy5yZWxpZCBcCiAJJiYgT1NfUkVMPS5gc2VkIC1uICdzL1teIF0qIFteIF0qIFwoWzAtOV1bMC05XVwpLiovXDEvcCcgPCAvZXRjLy5yZWxpZGAKQEAgLTEwMzYsOSArMTA2OCw2IEBACiAgICAgbWM2ODAzMDpVTklYX1N5c3RlbV9WOjQuKjoqKQogCWVjaG8gbTY4ay1hdGFyaS1zeXN2NAogCWV4aXQgMCA7OwotICAgIGkqODY6THlueE9TOjIuKjoqIHwgaSo4NjpMeW54T1M6My5bMDFdKjoqIHwgaSo4NjpMeW54T1M6NC4wKjoqKQotCWVjaG8gaTM4Ni11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KLQlleGl0IDAgOzsKICAgICBUU1VOQU1JOkx5bnhPUzoyLio6KikKIAllY2hvIHNwYXJjLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQogCWV4aXQgMCA7OwpAQCAtMTExMCw2ICsxMTM5LDkgQEAKICAgICBTWC01OlNVUEVSLVVYOio6KikKIAllY2hvIHN4NS1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KIAlleGl0IDAgOzsKKyAgICBTWC02OlNVUEVSLVVYOio6KikKKwllY2hvIHN4Ni1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDAgOzsKICAgICBQb3dlcio6UmhhcHNvZHk6KjoqKQogCWVjaG8gcG93ZXJwYy1hcHBsZS1yaGFwc29keSR7VU5BTUVfUkVMRUFTRX0KIAlleGl0IDAgOzsKQEAgLTExMzAsNyArMTE2Miw3IEBACiAgICAgKjpRTlg6Kjo0KikKIAllY2hvIGkzODYtcGMtcW54CiAJZXhpdCAwIDs7Ci0gICAgTlNSLVtHS0xOUFRWV106Tk9OU1RPUF9LRVJORUw6KjoqKQorICAgIE5TUi1bREdLTE5QVFZXWFldOk5PTlNUT1BfS0VSTkVMOio6KikKIAllY2hvIG5zci10YW5kZW0tbnNrJHtVTkFNRV9SRUxFQVNFfQogCWV4aXQgMCA7OwogICAgICo6Tm9uU3RvcC1VWDoqOiopCkBAIC0xMTUzLDExICsxMTg1LDYgQEAKIAlmaQogCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLXBsYW45CiAJZXhpdCAwIDs7Ci0gICAgaSo4NjpPUy8yOio6KikKLQkjIElmIHdlIHdlcmUgYWJsZSB0byBmaW5kIGB1bmFtZScsIHRoZW4gRU1YIFVuaXggY29tcGF0aWJpbGl0eQotCSMgaXMgcHJvYmFibHkgaW5zdGFsbGVkLgotCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1vczItZW14Ci0JZXhpdCAwIDs7CiAgICAgKjpUT1BTLTEwOio6KikKIAllY2hvIHBkcDEwLXVua25vd24tdG9wczEwCiAJZXhpdCAwIDs7CkBAIC0xMTc2LDEyICsxMjAzLDYgQEAKICAgICAqOklUUzoqOiopCiAJZWNobyBwZHAxMC11bmtub3duLWl0cwogCWV4aXQgMCA7OwotICAgIGkqODY6WFRTLTMwMDoqOlNUT1ApCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tc3RvcAotCWV4aXQgMCA7OwotICAgIGkqODY6YXRoZW9zOio6KikKLQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1hdGhlb3MKLQlleGl0IDAgOzsKIGVzYWMKIAogI2VjaG8gJyhObyB1bmFtZSBjb21tYW5kIG9yIHVuYW1lIG91dHB1dCBub3QgcmVjb2duaXplZC4pJyAxPiYyCkBAIC0xMzAyLDggKzEzMjMsOCBAQAogfQogRU9GCiAKLSRDQ19GT1JfQlVJTEQgJGR1bW15LmMgLW8gJGR1bW15IDI+L2Rldi9udWxsICYmIC4vJGR1bW15ICYmIHJtIC1mICRkdW1teS5jICRkdW1teSAmJiBleGl0IDAKLXJtIC1mICRkdW1teS5jICRkdW1teQorJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgMj4vZGV2L251bGwgJiYgJGR1bW15ICYmIHJtIC1mICRkdW1teS5jICRkdW1teSAmJiBybWRpciAkdG1wZGlyICYmIGV4aXQgMAorcm0gLWYgJGR1bW15LmMgJGR1bW15ICYmIHJtZGlyICR0bXBkaXIKIAogIyBBcG9sbG9zIHB1dCB0aGUgc3lzdGVtIHR5cGUgaW4gdGhlIGVudmlyb25tZW50LgogCkBAIC0xMzM1LDE3ICsxMzU2LDYgQEAKICAgICBlc2FjCiBmaQogCi0jIE5PVEUgLS0gQmVnaW4gZmFsbGJhY2sgY2FzZXMgYWRkZWQgZm9yIGJhc2ggLS0gTk9URQotY2FzZSAiJFVOQU1FIiBpbgotdXRzKSBlY2hvIHV0cy1hbWRhaGwtc3lzdiR7VU5BTUVfUkVMRUFTRX07IGV4aXQgMCA7OwotZXNhYwotCi1pZiBbIC1mIC9iaW4vZnhjLmluZm8gXTsgdGhlbgotCWVjaG8gZnhjLWFsbGlhbnQtY29uY2VudHJpeAotCWV4aXQgMAotZmkKLSMgTk9URSAtLSBFbmQgZmFsbGJhY2sgY2FzZXMgYWRkZWQgZm9yIGJhc2ggLS0gTk9URQotCiBjYXQgPiYyIDw8RU9GCiAkMDogdW5hYmxlIHRvIGd1ZXNzIHN5c3RlbSB0eXBlCiAKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL3N1cHBvcnQvY29uZmlnLnJwYXRoIGIvcmVhZGxpbmUvc3VwcG9ydC9jb25maWcucnBhdGgKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmEyNGJmYwotLS0gL2Rldi9udWxsCisrKyBiL3JlYWRsaW5lL3N1cHBvcnQvY29uZmlnLnJwYXRoCkBAIC0wLDAgKzEsNTQ4IEBACisjISAvYmluL3NoCisjIE91dHB1dCBhIHN5c3RlbSBkZXBlbmRlbnQgc2V0IG9mIHZhcmlhYmxlcywgZGVzY3JpYmluZyBob3cgdG8gc2V0IHRoZQorIyBydW4gdGltZSBzZWFyY2ggcGF0aCBvZiBzaGFyZWQgbGlicmFyaWVzIGluIGFuIGV4ZWN1dGFibGUuCisjCisjICAgQ29weXJpZ2h0IDE5OTYtMjAwMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgICBUYWtlbiBmcm9tIEdOVSBsaWJ0b29sLCAyMDAxCisjICAgT3JpZ2luYWxseSBieSBHb3Jkb24gTWF0emlna2VpdCA8Z29yZEBnbnUuYWkubWl0LmVkdT4sIDE5OTYKKyMKKyMgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyMgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyMgICBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyMgICBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorIyAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisjCisjICAgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGlmIHlvdQorIyAgIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQorIyAgIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCisjICAgdGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIHRoYXQgeW91IHVzZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgorIworIyBUaGUgZmlyc3QgYXJndW1lbnQgcGFzc2VkIHRvIHRoaXMgZmlsZSBpcyB0aGUgY2Fub25pY2FsIGhvc3Qgc3BlY2lmaWNhdGlvbiwKKyMgICAgQ1BVX1RZUEUtTUFOVUZBQ1RVUkVSLU9QRVJBVElOR19TWVNURU0KKyMgb3IKKyMgICAgQ1BVX1RZUEUtTUFOVUZBQ1RVUkVSLUtFUk5FTC1PUEVSQVRJTkdfU1lTVEVNCisjIFRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgQ0MsIEdDQywgTERGTEFHUywgTEQsIHdpdGhfZ251X2xkCisjIHNob3VsZCBiZSBzZXQgYnkgdGhlIGNhbGxlci4KKyMKKyMgVGhlIHNldCBvZiBkZWZpbmVkIHZhcmlhYmxlcyBpcyBhdCB0aGUgZW5kIG9mIHRoaXMgc2NyaXB0LgorCisjIEtub3duIGxpbWl0YXRpb25zOgorIyAtIE9uIElSSVggNi41IHdpdGggQ0M9ImNjIiwgdGhlIHJ1biB0aW1lIHNlYXJjaCBwYXRjaCBtdXN0IG5vdCBiZSBsb25nZXIKKyMgICB0aGFuIDI1NiBieXRlcywgb3RoZXJ3aXNlIHRoZSBjb21waWxlciBkcml2ZXIgd2lsbCBkdW1wIGNvcmUuIFRoZSBvbmx5CisjICAga25vd24gd29ya2Fyb3VuZCBpcyB0byBjaG9vc2Ugc2hvcnRlciBkaXJlY3RvcnkgbmFtZXMgZm9yIHRoZSBidWlsZAorIyAgIGRpcmVjdG9yeSBhbmQvb3IgdGhlIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkuCisKKyMgQWxsIGtub3duIGxpbmtlcnMgcmVxdWlyZSBhIGAuYScgYXJjaGl2ZSBmb3Igc3RhdGljIGxpbmtpbmcgKGV4Y2VwdCBNJFZDLAorIyB3aGljaCBuZWVkcyAnLmxpYicpLgorbGliZXh0PWEKK3NocmV4dD0uc28KKworaG9zdD0iJDEiCitob3N0X2NwdT1gZWNobyAiJGhvc3QiIHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDEvJ2AKK2hvc3RfdmVuZG9yPWBlY2hvICIkaG9zdCIgfCBzZWQgJ3MvXlwoW14tXSpcKS1cKFteLV0qXCktXCguKlwpJC9cMi8nYAoraG9zdF9vcz1gZWNobyAiJGhvc3QiIHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwoLipcKSQvXDMvJ2AKKworIyBDb2RlIHRha2VuIGZyb20gbGlidG9vbC5tNCdzIEFDX0xJQlRPT0xfUFJPR19DT01QSUxFUl9QSUMuCisKK3dsPQoraWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKyAgd2w9Jy1XbCwnCitlbHNlCisgIGNhc2UgIiRob3N0X29zIiBpbgorICAgIGFpeCopCisgICAgICB3bD0nLVdsLCcKKyAgICAgIDs7CisgICAgbWluZ3cqIHwgcHczMiogfCBvczIqKQorICAgICAgOzsKKyAgICBocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKKyAgICAgIHdsPSctV2wsJworICAgICAgOzsKKyAgICBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQorICAgICAgd2w9Jy1XbCwnCisgICAgICA7OworICAgIG5ld3NvczYpCisgICAgICA7OworICAgIGxpbnV4KikKKyAgICAgIGNhc2UgJENDIGluCisgICAgICAgIGljY3xlY2MpCisgICAgICAgICAgd2w9Jy1XbCwnCisgICAgICAgICAgOzsKKyAgICAgICAgY2NjKQorICAgICAgICAgIHdsPSctV2wsJworICAgICAgICAgIDs7CisgICAgICBlc2FjCisgICAgICA7OworICAgIG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKKyAgICAgIHdsPSctV2wsJworICAgICAgOzsKKyAgICBzY28zLjJ2NSopCisgICAgICA7OworICAgIHNvbGFyaXMqKQorICAgICAgd2w9Jy1XbCwnCisgICAgICA7OworICAgIHN1bm9zNCopCisgICAgICB3bD0nLVFvcHRpb24gbGQgJworICAgICAgOzsKKyAgICBzeXN2NCB8IHN5c3Y0LjJ1dzIqIHwgc3lzdjQuMyogfCBzeXN2NSopCisgICAgICB3bD0nLVdsLCcKKyAgICAgIDs7CisgICAgc3lzdjQqTVAqKQorICAgICAgOzsKKyAgICB1dHM0KikKKyAgICAgIDs7CisgIGVzYWMKK2ZpCisKKyMgQ29kZSB0YWtlbiBmcm9tIGxpYnRvb2wubTQncyBBQ19MSUJUT09MX1BST0dfTERfU0hMSUJTLgorCitoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPQoraGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0KK2hhcmRjb2RlX2RpcmVjdD1ubworaGFyZGNvZGVfbWludXNfTD1ubworCitjYXNlICIkaG9zdF9vcyIgaW4KKyAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqKQorICAgICMgRklYTUU6IHRoZSBNU1ZDKysgcG9ydCBoYXNuJ3QgYmVlbiB0ZXN0ZWQgaW4gYSBsb29vb25nIHRpbWUKKyAgICAjIFdoZW4gbm90IHVzaW5nIGdjYywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2luZworICAgICMgTWljcm9zb2Z0IFZpc3VhbCBDKysuCisgICAgaWYgdGVzdCAiJEdDQyIgIT0geWVzOyB0aGVuCisgICAgICB3aXRoX2dudV9sZD1ubworICAgIGZpCisgICAgOzsKKyAgb3BlbmJzZCopCisgICAgd2l0aF9nbnVfbGQ9bm8KKyAgICA7OworZXNhYworCitsZF9zaGxpYnM9eWVzCitpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCisgIGNhc2UgIiRob3N0X29zIiBpbgorICAgIGFpeDMqIHwgYWl4NCogfCBhaXg1KikKKyAgICAgICMgT24gQUlYL1BQQywgdGhlIEdOVSBsaW5rZXIgaXMgdmVyeSBicm9rZW4KKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NDsgdGhlbgorICAgICAgICBsZF9zaGxpYnM9bm8KKyAgICAgIGZpCisgICAgICA7OworICAgIGFtaWdhb3MqKQorICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJworICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKKyAgICAgICMgU2FtdWVsIEEuIEZhbHZvIElJIDxrYzV0amFAZG9scGhpbi5vcGVucHJvamVjdHMubmV0PiByZXBvcnRzCisgICAgICAjIHRoYXQgdGhlIHNlbWFudGljcyBvZiBkeW5hbWljIGxpYnJhcmllcyBvbiBBbWlnYU9TLCBhdCBsZWFzdCB1cAorICAgICAgIyB0byB2ZXJzaW9uIDQsIGlzIHRvIHNoYXJlIGRhdGEgYW1vbmcgbXVsdGlwbGUgcHJvZ3JhbXMgbGlua2VkCisgICAgICAjIHdpdGggdGhlIHNhbWUgZHluYW1pYyBsaWJyYXJ5LiAgU2luY2UgdGhpcyBkb2Vzbid0IG1hdGNoIHRoZQorICAgICAgIyBiZWhhdmlvciBvZiBzaGFyZWQgbGlicmFyaWVzIG9uIG90aGVyIHBsYXRmb3Jtcywgd2UgY2FuIHVzZQorICAgICAgIyB0aGVtLgorICAgICAgbGRfc2hsaWJzPW5vCisgICAgICA7OworICAgIGJlb3MqKQorICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgZWdyZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgorICAgICAgICA6CisgICAgICBlbHNlCisgICAgICAgIGxkX3NobGlicz1ubworICAgICAgZmkKKyAgICAgIDs7CisgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqKQorICAgICAgIyBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLCBhcyB0aGVyZSBpcworICAgICAgIyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKKyAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJ2F1dG8taW1wb3J0JyA+IC9kZXYvbnVsbDsgdGhlbgorICAgICAgICA6CisgICAgICBlbHNlCisgICAgICAgIGxkX3NobGlicz1ubworICAgICAgZmkKKyAgICAgIDs7CisgICAgbmV0YnNkKikKKyAgICAgIDs7CisgICAgc29sYXJpcyogfCBzeXN2NSopCisgICAgICBpZiAkTEQgLXYgMj4mMSB8IGVncmVwICdCRkQgMlwuOCcgPiAvZGV2L251bGw7IHRoZW4KKyAgICAgICAgbGRfc2hsaWJzPW5vCisgICAgICBlbGlmICRMRCAtLWhlbHAgMj4mMSB8IGVncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKyAgICAgICAgOgorICAgICAgZWxzZQorICAgICAgICBsZF9zaGxpYnM9bm8KKyAgICAgIGZpCisgICAgICA7OworICAgIHN1bm9zNCopCisgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCisgICAgICA7OworICAgICopCisgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBlZ3JlcCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisgICAgICAgIDoKKyAgICAgIGVsc2UKKyAgICAgICAgbGRfc2hsaWJzPW5vCisgICAgICBmaQorICAgICAgOzsKKyAgZXNhYworICBpZiB0ZXN0ICIkbGRfc2hsaWJzIiA9IHllczsgdGhlbgorICAgICMgVW5saWtlIGxpYnRvb2wsIHdlIHVzZSAtcnBhdGggaGVyZSwgbm90IC0tcnBhdGgsIHNpbmNlIHRoZSBkb2N1bWVudGVkCisgICAgIyBvcHRpb24gb2YgR05VIGxkIGlzIGNhbGxlZCAtcnBhdGgsIG5vdCAtLXJwYXRoLgorICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKyAgZmkKK2Vsc2UKKyAgY2FzZSAiJGhvc3Rfb3MiIGluCisgICAgYWl4MyopCisgICAgICAjIE5vdGU6IHRoaXMgbGlua2VyIGhhcmRjb2RlcyB0aGUgZGlyZWN0b3JpZXMgaW4gTElCUEFUSCBpZiB0aGVyZQorICAgICAgIyBhcmUgbm8gZGlyZWN0b3JpZXMgc3BlY2lmaWVkIGJ5IC1MLgorICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisgICAgICAgICMgTmVpdGhlciBkaXJlY3QgaGFyZGNvZGluZyBub3Igc3RhdGljIGxpbmtpbmcgaXMgc3VwcG9ydGVkIHdpdGggYQorICAgICAgICAjIGJyb2tlbiBjb2xsZWN0Mi4KKyAgICAgICAgaGFyZGNvZGVfZGlyZWN0PXVuc3VwcG9ydGVkCisgICAgICBmaQorICAgICAgOzsKKyAgICBhaXg0KiB8IGFpeDUqKQorICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KKyAgICAgICAgIyBPbiBJQTY0LCB0aGUgbGlua2VyIGRvZXMgcnVuIHRpbWUgbGlua2luZyBieSBkZWZhdWx0LCBzbyB3ZSBkb24ndAorICAgICAgICAjIGhhdmUgdG8gZG8gYW55dGhpbmcgc3BlY2lhbC4KKyAgICAgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubworICAgICAgZWxzZQorICAgICAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCisgICAgICAgICMgVGVzdCBpZiB3ZSBhcmUgdHJ5aW5nIHRvIHVzZSBydW4gdGltZSBsaW5raW5nIG9yIG5vcm1hbAorICAgICAgICAjIEFJWCBzdHlsZSBsaW5raW5nLiBJZiAtYnJ0bCBpcyBzb21ld2hlcmUgaW4gTERGTEFHUywgd2UKKyAgICAgICAgIyBuZWVkIHRvIGRvIHJ1bnRpbWUgbGlua2luZy4KKyAgICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0LlsyM118YWl4NC5bMjNdLip8YWl4NSopCisgICAgICAgICAgZm9yIGxkX2ZsYWcgaW4gJExERkxBR1M7IGRvCisgICAgICAgICAgICBpZiAodGVzdCAkbGRfZmxhZyA9ICItYnJ0bCIgfHwgdGVzdCAkbGRfZmxhZyA9ICItV2wsLWJydGwiKTsgdGhlbgorICAgICAgICAgICAgICBhaXhfdXNlX3J1bnRpbWVsaW5raW5nPXllcworICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgZmkKKyAgICAgICAgICBkb25lCisgICAgICAgIGVzYWMKKyAgICAgIGZpCisgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCisgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSc6JworICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKyAgICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0LlswMTJdfGFpeDQuWzAxMl0uKikKKyAgICAgICAgICBjb2xsZWN0Mm5hbWU9YCR7Q0N9IC1wcmludC1wcm9nLW5hbWU9Y29sbGVjdDJgCisgICAgICAgICAgaWYgdGVzdCAtZiAiJGNvbGxlY3QybmFtZSIgJiYgXAorICAgICAgICAgICAgc3RyaW5ncyAiJGNvbGxlY3QybmFtZSIgfCBncmVwIHJlc29sdmVfbGliX25hbWUgPi9kZXYvbnVsbAorICAgICAgICAgIHRoZW4KKyAgICAgICAgICAgICMgV2UgaGF2ZSByZXdvcmtlZCBjb2xsZWN0MgorICAgICAgICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICMgV2UgaGF2ZSBvbGQgY29sbGVjdDIKKyAgICAgICAgICAgIGhhcmRjb2RlX2RpcmVjdD11bnN1cHBvcnRlZAorICAgICAgICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKKyAgICAgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKKyAgICAgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9CisgICAgICAgICAgZmkKKyAgICAgICAgZXNhYworICAgICAgZmkKKyAgICAgICMgQmVnaW4gX0xUX0FDX1NZU19MSUJQQVRIX0FJWC4KKyAgICAgIGVjaG8gJ2ludCBtYWluICgpIHsgcmV0dXJuIDA7IH0nID4gY29uZnRlc3QuYworICAgICAgJHtDQ30gJHtMREZMQUdTfSBjb25mdGVzdC5jIC1vIGNvbmZ0ZXN0CisgICAgICBhaXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVzdCAyPi9kZXYvbnVsbCB8IHNlZCAtbiAtZSAnL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8geyAvXjAvIHsgcy9eMCAgKlwoLipcKSQvXDEvOyBwOyB9Cit9J2AKKyAgICAgIGlmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4KKyAgICAgICAgYWl4X2xpYnBhdGg9YGR1bXAgLUhYNjQgY29uZnRlc3QgMj4vZGV2L251bGwgfCBzZWQgLW4gLWUgJy9JbXBvcnQgRmlsZSBTdHJpbmdzLywvXiQvIHsgL14wLyB7IHMvXjAgICpcKC4qXCkkL1wxLzsgcDsgfQorfSdgCisgICAgICBmaQorICAgICAgaWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbgorICAgICAgICBhaXhfbGlicGF0aD0iL3Vzci9saWI6L2xpYiIKKyAgICAgIGZpCisgICAgICBybSAtZiBjb25mdGVzdC5jIGNvbmZ0ZXN0CisgICAgICAjIEVuZCBfTFRfQUNfU1lTX0xJQlBBVEhfQUlYLgorICAgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCisgICAgICBlbHNlCisgICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCisgICAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tUiAkbGliZGlyOi91c3IvbGliOi9saWInCisgICAgICAgIGVsc2UKKyAgICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgorICAgICAgICBmaQorICAgICAgZmkKKyAgICAgIDs7CisgICAgYW1pZ2FvcyopCisgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCisgICAgICBoYXJkY29kZV9taW51c19MPXllcworICAgICAgIyBzZWUgY29tbWVudCBhYm91dCBkaWZmZXJlbnQgc2VtYW50aWNzIG9uIHRoZSBHTlUgbGQgc2VjdGlvbgorICAgICAgbGRfc2hsaWJzPW5vCisgICAgICA7OworICAgIGJzZGk0KikKKyAgICAgIDs7CisgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqKQorICAgICAgIyBXaGVuIG5vdCB1c2luZyBnY2MsIHdlIGN1cnJlbnRseSBhc3N1bWUgdGhhdCB3ZSBhcmUgdXNpbmcKKyAgICAgICMgTWljcm9zb2Z0IFZpc3VhbCBDKysuCisgICAgICAjIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsIGFzIHRoZXJlIGlzCisgICAgICAjIG5vIHNlYXJjaCBwYXRoIGZvciBETExzLgorICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nICcKKyAgICAgIGxpYmV4dD1saWIKKyAgICAgIDs7CisgICAgZGFyd2luKiB8IHJoYXBzb2R5KikKKyAgICAgIGlmICRDQyAtdiAyPiYxIHwgZ3JlcCAnQXBwbGUnID4vZGV2L251bGwgOyB0aGVuCisgICAgICAgIGhhcmRjb2RlX2RpcmVjdD1ubworICAgICAgZmkKKyAgICAgIDs7CisgICAgZGd1eCopCisgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCisgICAgICA7OworICAgIGZyZWVic2QxKikKKyAgICAgIGxkX3NobGlicz1ubworICAgICAgOzsKKyAgICBmcmVlYnNkMi4yKikKKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicKKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKKyAgICAgIDs7CisgICAgZnJlZWJzZDIqKQorICAgICAgaGFyZGNvZGVfZGlyZWN0PXllcworICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKKyAgICAgIDs7CisgICAgZnJlZWJzZCopCisgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCisgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCisgICAgICA7OworICAgIGhwdXg5KikKKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9K2IgJHt3bH0kbGliZGlyJworICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06CisgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCisgICAgICAjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRILAorICAgICAgIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCisgICAgICBoYXJkY29kZV9taW51c19MPXllcworICAgICAgOzsKKyAgICBocHV4MTAqIHwgaHB1eDExKikKKyAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgorICAgICAgICBjYXNlICIkaG9zdF9jcHUiIGluCisgICAgICAgICAgaHBwYSo2NCopCisgICAgICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfStiICR7d2x9JGxpYmRpcicKKyAgICAgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgorICAgICAgICAgICAgaGFyZGNvZGVfZGlyZWN0PW5vCisgICAgICAgICAgICA7OworICAgICAgICAgIGlhNjQqKQorICAgICAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJworICAgICAgICAgICAgaGFyZGNvZGVfZGlyZWN0PW5vCisgICAgICAgICAgICAjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRILAorICAgICAgICAgICAgIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCisgICAgICAgICAgICBoYXJkY29kZV9taW51c19MPXllcworICAgICAgICAgICAgOzsKKyAgICAgICAgICAqKQorICAgICAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0rYiAke3dsfSRsaWJkaXInCisgICAgICAgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKKyAgICAgICAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKKyAgICAgICAgICAgICMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCisgICAgICAgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KKyAgICAgICAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCisgICAgICAgICAgICA7OworICAgICAgICBlc2FjCisgICAgICBmaQorICAgICAgOzsKKyAgICBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQorICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJworICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06CisgICAgICA7OworICAgIG5ldGJzZCopCisgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCisgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCisgICAgICA7OworICAgIG5ld3NvczYpCisgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCisgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKKyAgICAgIDs7CisgICAgb3BlbmJzZCopCisgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCisgICAgICBpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KKyAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGgsJGxpYmRpcicKKyAgICAgIGVsc2UKKyAgICAgICAgY2FzZSAiJGhvc3Rfb3MiIGluCisgICAgICAgICAgb3BlbmJzZFswMV0uKiB8IG9wZW5ic2QyLlswLTddIHwgb3BlbmJzZDIuWzAtN10uKikKKyAgICAgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicKKyAgICAgICAgICAgIDs7CisgICAgICAgICAgKikKKyAgICAgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoLCRsaWJkaXInCisgICAgICAgICAgICA7OworICAgICAgICBlc2FjCisgICAgICBmaQorICAgICAgOzsKKyAgICBvczIqKQorICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJworICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKKyAgICAgIDs7CisgICAgb3NmMyopCisgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKKyAgICAgIDs7CisgICAgb3NmNCogfCBvc2Y1KikKKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKyAgICAgIGVsc2UKKyAgICAgICAgIyBCb3RoIGNjIGFuZCBjeHggY29tcGlsZXIgc3VwcG9ydCAtcnBhdGggZGlyZWN0bHkKKyAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLXJwYXRoICRsaWJkaXInCisgICAgICBmaQorICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06CisgICAgICA7OworICAgIHNjbzMuMnY1KikKKyAgICAgIDs7CisgICAgc29sYXJpcyopCisgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCisgICAgICA7OworICAgIHN1bm9zNCopCisgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCisgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCisgICAgICBoYXJkY29kZV9taW51c19MPXllcworICAgICAgOzsKKyAgICBzeXN2NCkKKyAgICAgIGNhc2UgJGhvc3RfdmVuZG9yIGluCisgICAgICAgIHNuaSkKKyAgICAgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzICMgaXMgdGhpcyByZWFsbHkgdHJ1ZT8/PworICAgICAgICAgIDs7CisgICAgICAgIHNpZW1lbnMpCisgICAgICAgICAgaGFyZGNvZGVfZGlyZWN0PW5vCisgICAgICAgICAgOzsKKyAgICAgICAgbW90b3JvbGEpCisgICAgICAgICAgaGFyZGNvZGVfZGlyZWN0PW5vICNNb3Rvcm9sYSBtYW51YWwgc2F5cyB5ZXMsIGJ1dCBteSB0ZXN0cyBzYXkgdGhleSBsaWUKKyAgICAgICAgICA7OworICAgICAgZXNhYworICAgICAgOzsKKyAgICBzeXN2NC4zKikKKyAgICAgIDs7CisgICAgc3lzdjQqTVAqKQorICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgorICAgICAgICBsZF9zaGxpYnM9eWVzCisgICAgICBmaQorICAgICAgOzsKKyAgICBzeXN2NC4ydXcyKikKKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKKyAgICAgIGhhcmRjb2RlX21pbnVzX0w9bm8KKyAgICAgIDs7CisgICAgc3lzdjVPcGVuVU5JWDgqIHwgc3lzdjVVbml4V2FyZTcqIHwgIHN5c3Y1dXdbNzhdKiB8IHVuaXh3YXJlNyopCisgICAgICA7OworICAgIHN5c3Y1KikKKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9CisgICAgICA7OworICAgIHV0czQqKQorICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJworICAgICAgOzsKKyAgICAqKQorICAgICAgbGRfc2hsaWJzPW5vCisgICAgICA7OworICBlc2FjCitmaQorCisjIENoZWNrIGR5bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGljcworIyBDb2RlIHRha2VuIGZyb20gbGlidG9vbC5tNCdzIEFDX0xJQlRPT0xfU1lTX0RZTkFNSUNfTElOS0VSLgorbGlibmFtZV9zcGVjPSdsaWIkbmFtZScKK2Nhc2UgIiRob3N0X29zIiBpbgorICBhaXgzKikKKyAgICA7OworICBhaXg0KiB8IGFpeDUqKQorICAgIDs7CisgIGFtaWdhb3MqKQorICAgIDs7CisgIGJlb3MqKQorICAgIDs7CisgIGJzZGk0KikKKyAgICA7OworICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiopCisgICAgc2hyZXh0PS5kbGwKKyAgICA7OworICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQorICAgIHNocmV4dD0uZHlsaWIKKyAgICA7OworICBkZ3V4KikKKyAgICA7OworICBmcmVlYnNkMSopCisgICAgOzsKKyAgZnJlZWJzZCopCisgICAgOzsKKyAgZ251KikKKyAgICA7OworICBocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKKyAgICBjYXNlICIkaG9zdF9jcHUiIGluCisgICAgICBpYTY0KikKKyAgICAgICAgc2hyZXh0PS5zbworICAgICAgICA7OworICAgICAgaHBwYSo2NCopCisgICAgICAgIHNocmV4dD0uc2wKKyAgICAgICAgOzsKKyAgICAgICopCisgICAgICAgIHNocmV4dD0uc2wKKyAgICAgICAgOzsKKyAgICBlc2FjCisgICAgOzsKKyAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKKyAgICBjYXNlICIkaG9zdF9vcyIgaW4KKyAgICAgIGlyaXg1KiB8IG5vbnN0b3B1eCopCisgICAgICAgIGxpYnN1ZmY9IHNobGlic3VmZj0KKyAgICAgICAgOzsKKyAgICAgICopCisgICAgICAgIGNhc2UgJExEIGluCisgICAgICAgICAgKi0zMnwqIi0zMiAifCotbWVsZjMyYnNtaXB8KiItbWVsZjMyYnNtaXAgIikgbGlic3VmZj0gc2hsaWJzdWZmPSA7OworICAgICAgICAgICotbjMyfCoiLW4zMiAifCotbWVsZjMyYm1pcG4zMnwqIi1tZWxmMzJibWlwbjMyICIpIGxpYnN1ZmY9MzIgc2hsaWJzdWZmPU4zMiA7OworICAgICAgICAgICotNjR8KiItNjQgInwqLW1lbGY2NGJtaXB8KiItbWVsZjY0Ym1pcCAiKSBsaWJzdWZmPTY0IHNobGlic3VmZj02NCA7OworICAgICAgICAgICopIGxpYnN1ZmY9IHNobGlic3VmZj0gOzsKKyAgICAgICAgZXNhYworICAgICAgICA7OworICAgIGVzYWMKKyAgICA7OworICBsaW51eCpvbGRsZCogfCBsaW51eCphb3V0KiB8IGxpbnV4KmNvZmYqKQorICAgIDs7CisgIGxpbnV4KikKKyAgICA7OworICBuZXRic2QqKQorICAgIDs7CisgIG5ld3NvczYpCisgICAgOzsKKyAgbnRvLXFueCkKKyAgICA7OworICBvcGVuYnNkKikKKyAgICA7OworICBvczIqKQorICAgIGxpYm5hbWVfc3BlYz0nJG5hbWUnCisgICAgc2hyZXh0PS5kbGwKKyAgICA7OworICBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCisgICAgOzsKKyAgc2NvMy4ydjUqKQorICAgIDs7CisgIHNvbGFyaXMqKQorICAgIDs7CisgIHN1bm9zNCopCisgICAgOzsKKyAgc3lzdjQgfCBzeXN2NC4ydXcyKiB8IHN5c3Y0LjMqIHwgc3lzdjUqKQorICAgIDs7CisgIHN5c3Y0Kk1QKikKKyAgICA7OworICB1dHM0KikKKyAgICA7OworZXNhYworCitzZWRfcXVvdGVfc3Vic3Q9J3MvXChbImAkXFxdXCkvXFxcMS9nJworZXNjYXBlZF93bD1gZWNobyAiWCR3bCIgfCBzZWQgLWUgJ3MvXlgvLycgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorc2hsaWJleHQ9YGVjaG8gIiRzaHJleHQiIHwgc2VkIC1lICdzLF5cLiwsJ2AKK2VzY2FwZWRfaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz1gZWNobyAiWCRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIiB8IHNlZCAtZSAncy9eWC8vJyAtZSAiJHNlZF9xdW90ZV9zdWJzdCJgCisKK3NlZCAtZSAncy9eXChbYS16QS1aMC05X10qXCk9L2FjbF9jdl9cMT0vJyA8PEVPRgorCisjIEhvdyB0byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29tcGlsZXIuCit3bD0iJGVzY2FwZWRfd2wiCisKKyMgU3RhdGljIGxpYnJhcnkgc3VmZml4IChub3JtYWxseSAiYSIpLgorbGliZXh0PSIkbGliZXh0IgorCisjIFNoYXJlZCBsaWJyYXJ5IHN1ZmZpeCAobm9ybWFsbHkgInNvIikuCitzaGxpYmV4dD0iJHNobGliZXh0IgorCisjIEZsYWcgdG8gaGFyZGNvZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeSBkdXJpbmcgbGlua2luZy4KKyMgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBkb2VzIG5vdCBleGlzdC4KK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9IiRlc2NhcGVkX2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiCisKKyMgV2hldGhlciB3ZSBuZWVkIGEgc2luZ2xlIC1ycGF0aCBmbGFnIHdpdGggYSBzZXBhcmF0ZWQgYXJndW1lbnQuCitoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIKKworIyBTZXQgdG8geWVzIGlmIHVzaW5nIERJUi9saWJOQU1FLnNvIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIgaW50byB0aGUKKyMgcmVzdWx0aW5nIGJpbmFyeS4KK2hhcmRjb2RlX2RpcmVjdD0iJGhhcmRjb2RlX2RpcmVjdCIKKworIyBTZXQgdG8geWVzIGlmIHVzaW5nIHRoZSAtTERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIgaW50byB0aGUKKyMgcmVzdWx0aW5nIGJpbmFyeS4KK2hhcmRjb2RlX21pbnVzX0w9IiRoYXJkY29kZV9taW51c19MIgorCitFT0YKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL3N1cHBvcnQvY29uZmlnLnN1YiBiL3JlYWRsaW5lL3N1cHBvcnQvY29uZmlnLnN1YgppbmRleCA1MzhkYzA5Li5hZWZiN2UxIDEwMDc1NQotLS0gYS9yZWFkbGluZS9zdXBwb3J0L2NvbmZpZy5zdWIKKysrIGIvcmVhZGxpbmUvc3VwcG9ydC9jb25maWcuc3ViCkBAIC0zLDcgKzMsNyBAQAogIyAgIENvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwKICMgICAyMDAwLCAyMDAxLCAyMDAyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCi10aW1lc3RhbXA9JzIwMDItMDMtMDcnCit0aW1lc3RhbXA9JzIwMDItMTEtMzAnCiAKICMgVGhpcyBmaWxlIGlzIChpbiBwcmluY2lwbGUpIGNvbW1vbiB0byBBTEwgR05VIHNvZnR3YXJlLgogIyBUaGUgcHJlc2VuY2Ugb2YgYSBtYWNoaW5lIGluIHRoaXMgZmlsZSBzdWdnZXN0cyB0aGF0IFNPTUUgR05VIHNvZnR3YXJlCkBAIC0xMTgsNyArMTE4LDcgQEAKICMgSGVyZSB3ZSBtdXN0IHJlY29nbml6ZSBhbGwgdGhlIHZhbGlkIEtFUk5FTC1PUyBjb21iaW5hdGlvbnMuCiBtYXliZV9vcz1gZWNobyAkMSB8IHNlZCAncy9eXCguKlwpLVwoW14tXSotW14tXSpcKSQvXDIvJ2AKIGNhc2UgJG1heWJlX29zIGluCi0gIG50by1xbngqIHwgbGludXgtZ251KiB8IHN0b3JtLWNoYW9zKiB8IG9zMi1lbXgqIHwgd2luZG93czMyLSogfCBydG1rLW5vdmEqKQorICBudG8tcW54KiB8IGxpbnV4LWdudSogfCBmcmVlYnNkKi1nbnUqIHwgbmV0YnNkKi1nbnUqIHwgc3Rvcm0tY2hhb3MqIHwgb3MyLWVteCogfCBydG1rLW5vdmEqKQogICAgIG9zPS0kbWF5YmVfb3MKICAgICBiYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkICdzL15cKC4qXCktXChbXi1dKi1bXi1dKlwpJC9cMS8nYAogICAgIDs7CkBAIC0yMjksMjQgKzIyOSwzNCBAQAogCXwgYWxwaGEgfCBhbHBoYWV2WzQtOF0gfCBhbHBoYWV2NTYgfCBhbHBoYWV2Nls3OF0gfCBhbHBoYXBjYTVbNjddIFwKIAl8IGFscGhhNjQgfCBhbHBoYTY0ZXZbNC04XSB8IGFscGhhNjRldjU2IHwgYWxwaGE2NGV2Nls3OF0gfCBhbHBoYTY0cGNhNVs2N10gXAogCXwgYXJjIHwgYXJtIHwgYXJtW2JsXWUgfCBhcm1lW2xiXSB8IGFybXZbMjM0NV0gfCBhcm12WzM0NV1bbGJdIHwgYXZyIFwKLQl8IGM0eCB8IGNsaXBwZXIgXAotCXwgZDEwdiB8IGQzMHYgfCBkc3AxNnh4IFwKLQl8IGZyMzAgXAorCXwgY2xpcHBlciBcCisJfCBkMTB2IHwgZDMwdiB8IGRseCB8IGRzcDE2eHggXAorCXwgZnIzMCB8IGZydiBcCiAJfCBoODMwMCB8IGg4NTAwIHwgaHBwYSB8IGhwcGExLlswMV0gfCBocHBhMi4wIHwgaHBwYTIuMFtud10gfCBocHBhNjQgXAogCXwgaTM3MCB8IGk4NjAgfCBpOTYwIHwgaWE2NCBcCisJfCBpcDJrIFwKIAl8IG0zMnIgfCBtNjgwMDAgfCBtNjhrIHwgbTg4ayB8IG1jb3JlIFwKLQl8IG1pcHMgfCBtaXBzMTYgfCBtaXBzNjQgfCBtaXBzNjRlbCB8IG1pcHM2NG9yaW9uIHwgbWlwczY0b3Jpb25lbCBcCi0JfCBtaXBzNjR2cjQxMDAgfCBtaXBzNjR2cjQxMDBlbCB8IG1pcHM2NHZyNDMwMCBcCi0JfCBtaXBzNjR2cjQzMDBlbCB8IG1pcHM2NHZyNTAwMCB8IG1pcHM2NHZyNTAwMGVsIFwKLQl8IG1pcHNiZSB8IG1pcHNlYiB8IG1pcHNlbCB8IG1pcHNsZSB8IG1pcHN0eDM5IHwgbWlwc3R4MzllbCBcCi0JfCBtaXBzaXNhMzIgfCBtaXBzaXNhNjQgXAorCXwgbWlwcyB8IG1pcHNiZSB8IG1pcHNlYiB8IG1pcHNlbCB8IG1pcHNsZSBcCisJfCBtaXBzMTYgXAorCXwgbWlwczY0IHwgbWlwczY0ZWwgXAorCXwgbWlwczY0dnIgfCBtaXBzNjR2cmVsIFwKKwl8IG1pcHM2NG9yaW9uIHwgbWlwczY0b3Jpb25lbCBcCisJfCBtaXBzNjR2cjQxMDAgfCBtaXBzNjR2cjQxMDBlbCBcCisJfCBtaXBzNjR2cjQzMDAgfCBtaXBzNjR2cjQzMDBlbCBcCisJfCBtaXBzNjR2cjUwMDAgfCBtaXBzNjR2cjUwMDBlbCBcCisJfCBtaXBzaXNhMzIgfCBtaXBzaXNhMzJlbCBcCisJfCBtaXBzaXNhNjQgfCBtaXBzaXNhNjRlbCBcCisJfCBtaXBzaXNhNjRzYjEgfCBtaXBzaXNhNjRzYjFlbCBcCisJfCBtaXBzaXNhNjRzcjcxayB8IG1pcHNpc2E2NHNyNzFrZWwgXAorCXwgbWlwc3R4MzkgfCBtaXBzdHgzOWVsIFwKIAl8IG1uMTAyMDAgfCBtbjEwMzAwIFwKIAl8IG5zMTZrIHwgbnMzMmsgXAogCXwgb3BlbnJpc2MgfCBvcjMyIFwKIAl8IHBkcDEwIHwgcGRwMTEgfCBwaiB8IHBqbCBcCiAJfCBwb3dlcnBjIHwgcG93ZXJwYzY0IHwgcG93ZXJwYzY0bGUgfCBwb3dlcnBjbGUgfCBwcGNiZSBcCiAJfCBweXJhbWlkIFwKLQl8IHNoIHwgc2hbMzRdIHwgc2hbMzRdZWIgfCBzaGJlIHwgc2hsZSB8IHNoNjQgXAorCXwgc2ggfCBzaFsxMjM0XSB8IHNoM2UgfCBzaFszNF1lYiB8IHNoYmUgfCBzaGxlIHwgc2hbMTIzNF1sZSB8IHNoM2VsZSBcCisJfCBzaDY0IHwgc2g2NGxlIFwKIAl8IHNwYXJjIHwgc3BhcmM2NCB8IHNwYXJjODZ4IHwgc3BhcmNsZXQgfCBzcGFyY2xpdGUgfCBzcGFyY3Y5IHwgc3BhcmN2OWIgXAogCXwgc3Ryb25nYXJtIFwKIAl8IHRhaG9lIHwgdGh1bWIgfCB0aWM4MCB8IHRyb24gXApAQCAtMjY3LDcgKzI3Nyw3IEBACiAJIyBXZSB1c2UgYHBjJyByYXRoZXIgdGhhbiBgdW5rbm93bicKIAkjIGJlY2F1c2UgKDEpIHRoYXQncyB3aGF0IHRoZXkgbm9ybWFsbHkgYXJlLCBhbmQKIAkjICgyKSB0aGUgd29yZCAidW5rbm93biIgdGVuZHMgdG8gY29uZnVzZSBiZWdpbm5pbmcgdXNlcnMuCi0JaSo4NiB8IHg4Nl82NCkKKwlpKjg2IHwgeDg2XzY0IHwgYW1kNjQpCiAJICBiYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5lLXBjCiAJICA7OwogCSMgT2JqZWN0IGlmIG1vcmUgdGhhbiBvbmUgY29tcGFueSBuYW1lIHdvcmQuCkBAIC0yODEsMzQgKzI5MSw0NiBAQAogCXwgYWxwaGEtKiB8IGFscGhhZXZbNC04XS0qIHwgYWxwaGFldjU2LSogfCBhbHBoYWV2Nls3OF0tKiBcCiAJfCBhbHBoYTY0LSogfCBhbHBoYTY0ZXZbNC04XS0qIHwgYWxwaGE2NGV2NTYtKiB8IGFscGhhNjRldjZbNzhdLSogXAogCXwgYWxwaGFwY2E1WzY3XS0qIHwgYWxwaGE2NHBjYTVbNjddLSogfCBhcmMtKiBcCi0JfCBhcm0tKiAgfCBhcm1iZS0qIHwgYXJtbGUtKiB8IGFybXYqLSogXAorCXwgYW1kNjQtKiBcCisJfCBhcm0tKiAgfCBhcm1iZS0qIHwgYXJtbGUtKiB8IGFybWViLSogfCBhcm12Ki0qIFwKIAl8IGF2ci0qIFwKIAl8IGJzMjAwMC0qIFwKLQl8IGNbMTIzXSogfCBjMzAtKiB8IFtjanRdOTAtKiB8IGM1NHgtKiBcCisJfCBjWzEyM10qIHwgYzMwLSogfCBbY2p0XTkwLSogfCBjNHgtKiB8IGM1NHgtKiBcCiAJfCBjbGlwcGVyLSogfCBjeWRyYS0qIFwKLQl8IGQxMHYtKiB8IGQzMHYtKiBcCisJfCBkMTB2LSogfCBkMzB2LSogfCBkbHgtKiBcCiAJfCBlbHhzaS0qIFwKLQl8IGYzMFswMV0tKiB8IGY3MDAtKiB8IGZyMzAtKiB8IGZ4ODAtKiBcCisJfCBmMzBbMDFdLSogfCBmNzAwLSogfCBmcjMwLSogfCBmcnYtKiB8IGZ4ODAtKiBcCiAJfCBoODMwMC0qIHwgaDg1MDAtKiBcCiAJfCBocHBhLSogfCBocHBhMS5bMDFdLSogfCBocHBhMi4wLSogfCBocHBhMi4wW253XS0qIHwgaHBwYTY0LSogXAogCXwgaSo4Ni0qIHwgaTg2MC0qIHwgaTk2MC0qIHwgaWE2NC0qIFwKKwl8IGlwMmstKiBcCiAJfCBtMzJyLSogXAogCXwgbTY4MDAwLSogfCBtNjgwWzAxMjM0Nl0wLSogfCBtNjgzNjAtKiB8IG02ODM/Mi0qIHwgbTY4ay0qIFwKIAl8IG04ODExMC0qIHwgbTg4ay0qIHwgbWNvcmUtKiBcCi0JfCBtaXBzLSogfCBtaXBzMTYtKiB8IG1pcHM2NC0qIHwgbWlwczY0ZWwtKiB8IG1pcHM2NG9yaW9uLSogXAotCXwgbWlwczY0b3Jpb25lbC0qIHwgbWlwczY0dnI0MTAwLSogfCBtaXBzNjR2cjQxMDBlbC0qIFwKLQl8IG1pcHM2NHZyNDMwMC0qIHwgbWlwczY0dnI0MzAwZWwtKiB8IG1pcHNiZS0qIHwgbWlwc2ViLSogXAotCXwgbWlwc2xlLSogfCBtaXBzZWwtKiB8IG1pcHN0eDM5LSogfCBtaXBzdHgzOWVsLSogXAorCXwgbWlwcy0qIHwgbWlwc2JlLSogfCBtaXBzZWItKiB8IG1pcHNlbC0qIHwgbWlwc2xlLSogXAorCXwgbWlwczE2LSogXAorCXwgbWlwczY0LSogfCBtaXBzNjRlbC0qIFwKKwl8IG1pcHM2NHZyLSogfCBtaXBzNjR2cmVsLSogXAorCXwgbWlwczY0b3Jpb24tKiB8IG1pcHM2NG9yaW9uZWwtKiBcCisJfCBtaXBzNjR2cjQxMDAtKiB8IG1pcHM2NHZyNDEwMGVsLSogXAorCXwgbWlwczY0dnI0MzAwLSogfCBtaXBzNjR2cjQzMDBlbC0qIFwKKwl8IG1pcHM2NHZyNTAwMC0qIHwgbWlwczY0dnI1MDAwZWwtKiBcCisJfCBtaXBzaXNhMzItKiB8IG1pcHNpc2EzMmVsLSogXAorCXwgbWlwc2lzYTY0LSogfCBtaXBzaXNhNjRlbC0qIFwKKwl8IG1pcHNpc2E2NHNiMS0qIHwgbWlwc2lzYTY0c2IxZWwtKiBcCisJfCBtaXBzaXNhNjRzcjcxay0qIHwgbWlwc2lzYTY0c3I3MWtlbC0qIFwKKwl8IG1pcHN0eDM5IHwgbWlwc3R4MzllbCBcCiAJfCBub25lLSogfCBucDEtKiB8IG5zMTZrLSogfCBuczMyay0qIFwKIAl8IG9yaW9uLSogXAogCXwgcGRwMTAtKiB8IHBkcDExLSogfCBwai0qIHwgcGpsLSogfCBwbi0qIHwgcG93ZXItKiBcCiAJfCBwb3dlcnBjLSogfCBwb3dlcnBjNjQtKiB8IHBvd2VycGM2NGxlLSogfCBwb3dlcnBjbGUtKiB8IHBwY2JlLSogXAogCXwgcHlyYW1pZC0qIFwKIAl8IHJvbXAtKiB8IHJzNjAwMC0qIFwKLQl8IHNoLSogfCBzaFszNF0tKiB8IHNoWzM0XWViLSogfCBzaGJlLSogfCBzaGxlLSogfCBzaDY0LSogXAorCXwgc2gtKiB8IHNoWzEyMzRdLSogfCBzaDNlLSogfCBzaFszNF1lYi0qIHwgc2hiZS0qIFwKKwl8IHNobGUtKiB8IHNoWzEyMzRdbGUtKiB8IHNoM2VsZS0qIHwgc2g2NC0qIHwgc2g2NGxlLSogXAogCXwgc3BhcmMtKiB8IHNwYXJjNjQtKiB8IHNwYXJjODZ4LSogfCBzcGFyY2xldC0qIHwgc3BhcmNsaXRlLSogXAogCXwgc3BhcmN2OS0qIHwgc3BhcmN2OWItKiB8IHN0cm9uZ2FybS0qIHwgc3YxLSogfCBzeD8tKiBcCi0JfCB0YWhvZS0qIHwgdGh1bWItKiB8IHRpYzMwLSogfCB0aWM1NHgtKiB8IHRpYzgwLSogfCB0cm9uLSogXAorCXwgdGFob2UtKiB8IHRodW1iLSogfCB0aWMzMC0qIHwgdGljNHgtKiB8IHRpYzU0eC0qIHwgdGljODAtKiB8IHRyb24tKiBcCiAJfCB2ODUwLSogfCB2ODUwZS0qIHwgdmF4LSogXAogCXwgd2UzMmstKiBcCiAJfCB4ODYtKiB8IHg4Nl82NC0qIHwgeHBzMTAwLSogfCB4c2NhbGUtKiB8IHhzdG9ybXkxNi0qIFwKQEAgLTMxNiwxNCArMzM4LDYgQEAKIAl8IHltcC0qIFwKIAl8IHo4ay0qKQogCQk7OwotCi0JIyBOT1RFIC0tIEJFR0lOIGNhc2VzIGFkZGVkIGZvciBCYXNoIC0tIE5PVEUKLQlidXR0ZXJmbHktYmJuKiB8IGNhZG11cy0qIHwgZXdzKi1uZWMgfCBtYXNzY29tcC1tYXNzY29tcCBcCi0JfCB0YW5kZW0tKiB8IHN5bW1ldHJpYy0qIHwgZHJzNjAwMC1pY2wgfCAqLSphcmRlbnQgfCBjb25jdXJyZW50LSogXAotCXwga3NyMS0qIHwgZXNhLWlibSB8IGZ4Yy1hbGxpYW50IHwgKjM3MC1hbWRhaGwgfCBzeFs0NV0qLW5lYyApCi0JCTs7Ci0JIyBOT1RFIC0tIEVORCBjYXNlcyBhZGRlZCBmb3IgQmFzaCAtLSBOT1RFCi0JCiAJIyBSZWNvZ25pemUgdGhlIHZhcmlvdXMgbWFjaGluZSBuYW1lcyBhbmQgYWxpYXNlcyB3aGljaCBzdGFuZAogCSMgZm9yIGEgQ1BVIHR5cGUgYW5kIGEgY29tcGFueSBhbmQgc29tZXRpbWVzIGV2ZW4gYW4gT1MuCiAJMzg2YnNkKQpAQCAtNDU3LDcgKzQ3MSw3IEBACiAJCWJhc2ljX21hY2hpbmU9ZWx4c2ktZWx4c2kKIAkJb3M9LWJzZAogCQk7OwotCWVuY29yZSB8IHVtYXggfCBtbWF4IHwgbXVsdGltYXgpCSMgYmFzaAorCWVuY29yZSB8IHVtYXggfCBtbWF4KQogCQliYXNpY19tYWNoaW5lPW5zMzJrLWVuY29yZQogCQk7OwogCWVzMTgwMCB8IE9TRTY4ayB8IG9zZTY4ayB8IG9zZSB8IE9TRSkKQEAgLTQ5OCw5ICs1MTIsNiBAQAogCQliYXNpY19tYWNoaW5lPW04OGstaGFycmlzCiAJCW9zPS1zeXN2MwogCQk7OwotCWhidWxseDIwLWJ1bGwpCi0JCWJhc2ljX21hY2hpbmU9bTY4ay1idWxsCQkjIGJhc2gKLQkJOzsKIAlocDMwMC0qKQogCQliYXNpY19tYWNoaW5lPW02OGstaHAKIAkJOzsKQEAgLTU1Miw5ICs1NjMsNiBAQAogCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKIAkJb3M9LXByb2VsZgogCQk7OwotCWlibTAzMi0qKQotCQliYXNpY19tYWNoaW5lPWlibXJ0LWlibQkJIyBiYXNoCi0JCTs7CiAJaTM3MC1pYm0qIHwgaWJtKikKIAkJYmFzaWNfbWFjaGluZT1pMzcwLWlibQogCQk7OwpAQCAtNTc1LDE0ICs1ODMsNiBAQAogCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKIAkJb3M9LXNvbGFyaXMyCiAJCTs7Ci0JaTM4Ni1nbzMyKQotCQliYXNpY19tYWNoaW5lPWkzODYtcGMJCSMgYmFzaAotCQlvcz0tZ28zMgotCQk7OwotCWkzODYtbWluZ3czMikKLQkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCQkjIGJhc2gKLQkJb3M9LW1pbmd3MzIKLQkJOzsKIAlpMzg2bWFjaCkKIAkJYmFzaWNfbWFjaGluZT1pMzg2LW1hY2gKIAkJb3M9LW1hY2gKQEAgLTYwNSwxMiArNjA1LDkgQEAKIAkJYmFzaWNfbWFjaGluZT1tNjhrLWlzaQogCQlvcz0tc3lzdgogCQk7OwotCWx1bmE4OGstb21yb24qIHwgbTg4ay1vbXJvbiopCQkjIGJhc2gKKwltODhrLW9tcm9uKikKIAkJYmFzaWNfbWFjaGluZT1tODhrLW9tcm9uCiAJCTs7Ci0JbWFnaWNzdGF0aW9uKikKLQkJYmFzaWNfbWFjaGluZT1tYWdpY3N0YXRpb24tdW5rbm93bgkjIGJhc2gKLQkJOzsKIAltYWdudW0gfCBtMzIzMCkKIAkJYmFzaWNfbWFjaGluZT1taXBzLW1pcHMKIAkJb3M9LXN5c3YKQEAgLTcyMywxMCArNzIwLDYgQEAKIAluc3ItdGFuZGVtKQogCQliYXNpY19tYWNoaW5lPW5zci10YW5kZW0KIAkJOzsKLQlvZHQgfCBvZHQzIHwgb2R0NCkJIyBTQ08gT3BlbiBEZXNrdG9wCi0JCWJhc2ljX21hY2hpbmU9aTM4Ni1wYwkJIyBiYXNoCi0JCW9zPS1zY28zLjJ2NAotCQk7OwogCW9wNTBuLSogfCBvcDYwYy0qKQogCQliYXNpY19tYWNoaW5lPWhwcGExLjEtb2tpCiAJCW9zPS1wcm9lbGYKQEAgLTczOSwxMCArNzMyLDYgQEAKIAkJYmFzaWNfbWFjaGluZT1tNjgwMDAtZXJpY3Nzb24KIAkJb3M9LW9zZQogCQk7OwotCW9zcjUgfCBzY281KQkJIyBTQ08gT3BlbiBTZXJ2ZXIKLQkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCQkjIGJhc2gKLQkJb3M9LXNjbzMuMnY1Ci0JCTs7CiAJb3M2OGspCiAJCWJhc2ljX21hY2hpbmU9bTY4ay1ub25lCiAJCW9zPS1vczY4awpAQCAtNzYxLDEzICs3NTAsMTMgQEAKIAlwYmIpCiAJCWJhc2ljX21hY2hpbmU9bTY4ay10dGkKIAkJOzsKLSAgICAgICAgcGM1MzIgfCBwYzUzMi0qKQorCXBjNTMyIHwgcGM1MzItKikKIAkJYmFzaWNfbWFjaGluZT1uczMyay1wYzUzMgogCQk7OwogCXBlbnRpdW0gfCBwNSB8IGs1IHwgazYgfCBuZXhnZW4gfCB2aWFjMykKIAkJYmFzaWNfbWFjaGluZT1pNTg2LXBjCiAJCTs7Ci0JcGVudGl1bXBybyB8IHA2IHwgNng4NiB8IGF0aGxvbikKKwlwZW50aXVtcHJvIHwgcDYgfCA2eDg2IHwgYXRobG9uIHwgYXRobG9uXyopCiAJCWJhc2ljX21hY2hpbmU9aTY4Ni1wYwogCQk7OwogCXBlbnRpdW1paSB8IHBlbnRpdW0yKQpAQCAtNzg4LDIyICs3NzcsMjIgQEAKIAlwb3dlcikJYmFzaWNfbWFjaGluZT1wb3dlci1pYm0KIAkJOzsKIAlwcGMpCWJhc2ljX21hY2hpbmU9cG93ZXJwYy11bmtub3duCi0JICAgICAgICA7OworCQk7OwogCXBwYy0qKQliYXNpY19tYWNoaW5lPXBvd2VycGMtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKIAkJOzsKIAlwcGNsZSB8IHBvd2VycGNsaXR0bGUgfCBwcGMtbGUgfCBwb3dlcnBjLWxpdHRsZSkKIAkJYmFzaWNfbWFjaGluZT1wb3dlcnBjbGUtdW5rbm93bgotCSAgICAgICAgOzsKKwkJOzsKIAlwcGNsZS0qIHwgcG93ZXJwY2xpdHRsZS0qKQogCQliYXNpY19tYWNoaW5lPXBvd2VycGNsZS1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAogCQk7OwogCXBwYzY0KQliYXNpY19tYWNoaW5lPXBvd2VycGM2NC11bmtub3duCi0JICAgICAgICA7OworCQk7OwogCXBwYzY0LSopIGJhc2ljX21hY2hpbmU9cG93ZXJwYzY0LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCiAJCTs7CiAJcHBjNjRsZSB8IHBvd2VycGM2NGxpdHRsZSB8IHBwYzY0LWxlIHwgcG93ZXJwYzY0LWxpdHRsZSkKIAkJYmFzaWNfbWFjaGluZT1wb3dlcnBjNjRsZS11bmtub3duCi0JICAgICAgICA7OworCQk7OwogCXBwYzY0bGUtKiB8IHBvd2VycGM2NGxpdHRsZS0qKQogCQliYXNpY19tYWNoaW5lPXBvd2VycGM2NGxlLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCiAJCTs7CkBAIC04MzQsNiArODIzLDEyIEBACiAJCWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKIAkJb3M9LXVkaQogCQk7OworCXNiMSkKKwkJYmFzaWNfbWFjaGluZT1taXBzaXNhNjRzYjEtdW5rbm93bgorCQk7OworCXNiMWVsKQorCQliYXNpY19tYWNoaW5lPW1pcHNpc2E2NHNiMWVsLXVua25vd24KKwkJOzsKIAlzZXF1ZW50KQogCQliYXNpY19tYWNoaW5lPWkzODYtc2VxdWVudAogCQk7OwpAQCAtODk5LDcgKzg5NCw3IEBACiAJc3VuMzg2IHwgc3VuMzg2aSB8IHJvYWRydW5uZXIpCiAJCWJhc2ljX21hY2hpbmU9aTM4Ni1zdW4KIAkJOzsKLSAgICAgICAgc3YxKQorCXN2MSkKIAkJYmFzaWNfbWFjaGluZT1zdjEtY3JheQogCQlvcz0tdW5pY29zCiAJCTs7CkBAIC05MTksNiArOTE0LDEwIEBACiAJCWJhc2ljX21hY2hpbmU9dDkwLWNyYXkKIAkJb3M9LXVuaWNvcwogCQk7OworICAgICAgICB0aWM0eCB8IGM0eCopCisJCWJhc2ljX21hY2hpbmU9dGljNHgtdW5rbm93bgorCQlvcz0tY29mZgorCQk7OwogCXRpYzU0eCB8IGM1NHgqKQogCQliYXNpY19tYWNoaW5lPXRpYzU0eC11bmtub3duCiAJCW9zPS1jb2ZmCkBAIC05NDQsMTQgKzk0Myw2IEBACiAJCWJhc2ljX21hY2hpbmU9YTI5ay1ueXUKIAkJb3M9LXN5bTEKIAkJOzsKLQl1dzIgfCB1bml4d2FyZSB8IHVuaXh3YXJlMikJCSMgYmFzaAotCQliYXNpY19tYWNoaW5lPWkzODYtcGMKLQkJb3M9LXN5c3Y0LjJ1dzIuMQotCQk7OwotCXV3NyB8IHVuaXh3YXJlNykJCQkjIGJhc2gKLQkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCi0JCW9zPS1zeXN2NXV3NwotCQk7OwogCXY4MTAgfCBuZWN2ODEwKQogCQliYXNpY19tYWNoaW5lPXY4MTAtbmVjCiAJCW9zPS1ub25lCkBAIC05NjUsOCArOTU2LDggQEAKIAkJb3M9LXZtcwogCQk7OwogCXZwcCp8dnh8dngtKikKLSAgICAgICAgICAgICAgIGJhc2ljX21hY2hpbmU9ZjMwMS1mdWppdHN1Ci0gICAgICAgICAgICAgICA7OworCQliYXNpY19tYWNoaW5lPWYzMDEtZnVqaXRzdQorCQk7OwogCXZ4d29ya3M5NjApCiAJCWJhc2ljX21hY2hpbmU9aTk2MC13cnMKIAkJb3M9LXZ4d29ya3MKQEAgLTk4NywxMSArOTc4LDcgQEAKIAkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLXdpbmJvbmQKIAkJb3M9LXByb2VsZgogCQk7OwotCXdpbmRvd3MzMikKLQkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCi0JCW9zPS13aW5kb3dzMzItbXN2Y3J0Ci0JCTs7Ci0gICAgICAgIHhwcyB8IHhwczEwMCkKKwl4cHMgfCB4cHMxMDApCiAJCWJhc2ljX21hY2hpbmU9eHBzMTAwLWhvbmV5d2VsbAogCQk7OwogCXltcCkKQEAgLTEwMzcsNyArMTAyNCw3IEBACiAJd2UzMmspCiAJCWJhc2ljX21hY2hpbmU9d2UzMmstYXR0CiAJCTs7Ci0Jc2gzIHwgc2g0IHwgc2gzZWIgfCBzaDRlYikKKwlzaDMgfCBzaDQgfCBzaDNlYiB8IHNoNGViIHwgc2hbMTIzNF1sZSB8IHNoM2VsZSkKIAkJYmFzaWNfbWFjaGluZT1zaC11bmtub3duCiAJCTs7CiAJc2g2NCkKQEAgLTEwNDYsNyArMTAzMyw3IEBACiAJc3BhcmMgfCBzcGFyY3Y5IHwgc3BhcmN2OWIpCiAJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCiAJCTs7Ci0gICAgICAgIGN5ZHJhKQorCWN5ZHJhKQogCQliYXNpY19tYWNoaW5lPWN5ZHJhLWN5ZHJvbWUKIAkJOzsKIAlvcmlvbikKQEAgLTEwNjEsMTAgKzEwNDgsNiBAQAogCXBtYWMgfCBwbWFjLW1wdykKIAkJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWFwcGxlCiAJCTs7Ci0JYzR4KikKLQkJYmFzaWNfbWFjaGluZT1jNHgtbm9uZQotCQlvcz0tY29mZgotCQk7OwogCSotdW5rbm93bikKIAkJIyBNYWtlIHN1cmUgdG8gbWF0Y2ggYW4gYWxyZWFkeS1jYW5vbmljYWxpemVkIG1hY2hpbmUgbmFtZS4KIAkJOzsKQEAgLTExMDMsOSArMTA4Niw2IEBACiAJLXN2cjQqKQogCQlvcz0tc3lzdjQKIAkJOzsKLQktdW5peHdhcmU3KikJCQkjIGJhc2gKLQkJb3M9LXN5c3Y1dXc3Ci0JCTs7CiAJLXVuaXh3YXJlKikKIAkJb3M9LXN5c3Y0LjJ1dwogCQk7OwpAQCAtMTEzMCwxNyArMTExMCwxNCBAQAogCSAgICAgIHwgLWNob3J1c29zKiB8IC1jaG9ydXNyZGIqIFwKIAkgICAgICB8IC1jeWd3aW4qIHwgLXBlKiB8IC1wc29zKiB8IC1tb3NzKiB8IC1wcm9lbGYqIHwgLXJ0ZW1zKiBcCiAJICAgICAgfCAtbWluZ3czMiogfCAtbGludXgtZ251KiB8IC11eHB2KiB8IC1iZW9zKiB8IC1tcGVpeCogfCAtdWRrKiBcCi0JICAgICAgfCAtaW50ZXJpeCogfCAtdXdpbiogfCAtcmhhcHNvZHkqIHwgLWRhcndpbiogfCAtb3BlbmVkKiBcCisJICAgICAgfCAtaW50ZXJpeCogfCAtdXdpbiogfCAtbWtzKiB8IC1yaGFwc29keSogfCAtZGFyd2luKiB8IC1vcGVuZWQqIFwKIAkgICAgICB8IC1vcGVuc3RlcCogfCAtb3NraXQqIHwgLWNvbml4KiB8IC1wdzMyKiB8IC1ub25zdG9wdXgqIFwKIAkgICAgICB8IC1zdG9ybS1jaGFvcyogfCAtdG9wczEwKiB8IC10ZW5leCogfCAtdG9wczIwKiB8IC1pdHMqIFwKIAkgICAgICB8IC1vczIqIHwgLXZvcyogfCAtcGFsbW9zKiB8IC11Y2xpbnV4KiB8IC1udWNsZXVzKiBcCi0JICAgICAgfCAtbW9ycGhvcyogfCAtc3VwZXJ1eCogfCAtcnRtayogfCAtcnRtay1ub3ZhKikKKwkgICAgICB8IC1tb3JwaG9zKiB8IC1zdXBlcnV4KiB8IC1ydG1rKiB8IC1ydG1rLW5vdmEqIHwgLXdpbmRpc3MqIFwKKwkgICAgICB8IC1wb3dlcm1heCogfCAtZG5peCopCiAJIyBSZW1lbWJlciwgZWFjaCBhbHRlcm5hdGl2ZSBNVVNUIEVORCBJTiAqLCB0byBtYXRjaCBhIHZlcnNpb24gbnVtYmVyLgogCQk7OwotCSMgTk9URSAtLSBCRUdJTiBDQVNFUyBBRERFRCBGT1IgQmFzaCAtLSBOT1RFCi0JLXBvd2VydXgqIHwgLXN1cGVydXgqKQotCQk7OwotCSMgTk9URSAtLSBFTkQgQ0FTRVMgQURERUQgRk9SIEJhc2ggLS0gTk9URQogCS1xbngqKQogCQljYXNlICRiYXNpY19tYWNoaW5lIGluCiAJCSAgICB4ODYtKiB8IGkqODYtKikKQEAgLTExNTAsOCArMTEyNywxMCBAQAogCQkJOzsKIAkJZXNhYwogCQk7OworCS1udG8tcW54KikKKwkJOzsKIAktbnRvKikKLQkJb3M9LW50by1xbngKKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfG50b3xudG8tcW54fCdgCiAJCTs7CiAJLXNpbSB8IC1lczE4MDAqIHwgLWhtcyogfCAteHJheSB8IC1vczY4ayogfCAtbm9uZSogfCAtdjg4ciogXAogCSAgICAgIHwgLXdpbmRvd3MqIHwgLW9zeCB8IC1hYnVnIHwgLW5ldHdhcmUqIHwgLW9zOSogfCAtYmVvcyogXApAQCAtMTIwMyw3ICsxMTgyLDcgQEAKIAkJb3M9LXJ0bWstbm92YQogCQk7OwogCS1uczIgKQotCSAgICAgICAgb3M9LW5leHRzdGVwMgorCQlvcz0tbmV4dHN0ZXAyCiAJCTs7CiAJLW5zayopCiAJCW9zPS1uc2sKQEAgLTEyMzAsOSArMTIwOSw2IEBACiAJLXN5c3ZyNCkKIAkJb3M9LXN5c3Y0CiAJCTs7Ci0JLXN5c3ZyNSkJCQkJIyBiYXNoCi0JCW9zPS1zeXN2NQotCQk7OwogCSMgVGhpcyBtdXN0IGNvbWUgYWZ0ZXIgLXN5c3ZyNC4KIAktc3lzdiopCiAJCTs7CkBAIC0xMjQ1LDggKzEyMjEsOCBAQAogCS14ZW5peCkKIAkJb3M9LXhlbml4CiAJCTs7Ci0gICAgICAgIC0qbWludCB8IC1taW50WzAtOV0qIHwgLSpNaU5UIHwgLU1pTlRbMC05XSopCi0JICAgICAgICBvcz0tbWludAorCS0qbWludCB8IC1taW50WzAtOV0qIHwgLSpNaU5UIHwgLU1pTlRbMC05XSopCisJCW9zPS1taW50CiAJCTs7CiAJLW5vbmUpCiAJCTs7CkBAIC0xMjgzLDcgKzEyNTksNyBAQAogCXBkcDEwLSopCiAJCW9zPS10b3BzMjAKIAkJOzsKLSAgICAgICAgcGRwMTEtKikKKwlwZHAxMS0qKQogCQlvcz0tbm9uZQogCQk7OwogCSotZGVjIHwgdmF4LSopCkBAIC0xMzc2LDE5ICsxMzUyLDE5IEBACiAJKi1uZXh0KQogCQlvcz0tbmV4dHN0ZXAzCiAJCTs7Ci0gICAgICAgICotZ291bGQpCisJKi1nb3VsZCkKIAkJb3M9LXN5c3YKIAkJOzsKLSAgICAgICAgKi1oaWdobGV2ZWwpCisJKi1oaWdobGV2ZWwpCiAJCW9zPS1ic2QKIAkJOzsKIAkqLWVuY29yZSkKIAkJb3M9LWJzZAogCQk7OwotICAgICAgICAqLXNnaSkKKwkqLXNnaSkKIAkJb3M9LWlyaXgKIAkJOzsKLSAgICAgICAgKi1zaWVtZW5zKQorCSotc2llbWVucykKIAkJb3M9LXN5c3Y0CiAJCTs7CiAJKi1tYXNzY29tcCkKQEAgLTE0MjcsOSArMTQwMyw2IEBACiAJCQktc3Vub3MqKQogCQkJCXZlbmRvcj1zdW4KIAkJCQk7OwotCQkJLWx5bnhvcyopCQkJIyBiYXNoCi0JCQkJdmVuZG9yPWx5bngKLQkJCQk7OwogCQkJLWFpeCopCiAJCQkJdmVuZG9yPWlibQogCQkJCTs7CkBAIC0xNDYzLDcgKzE0MzYsNyBAQAogCQkJLXB0eCopCiAJCQkJdmVuZG9yPXNlcXVlbnQKIAkJCQk7OwotCQkJLXZ4c2ltKiB8IC12eHdvcmtzKikKKwkJCS12eHNpbSogfCAtdnh3b3JrcyogfCAtd2luZGlzcyopCiAJCQkJdmVuZG9yPXdycwogCQkJCTs7CiAJCQktYXV4KikKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL3N1cHBvcnQvbWtpbnN0YWxsZGlycyBiL3JlYWRsaW5lL3N1cHBvcnQvbWtpbnN0YWxsZGlycwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMmQ1ZjIxCi0tLSAvZGV2L251bGwKKysrIGIvcmVhZGxpbmUvc3VwcG9ydC9ta2luc3RhbGxkaXJzCkBAIC0wLDAgKzEsMTExIEBACisjISAvYmluL3NoCisjIG1raW5zdGFsbGRpcnMgLS0tIG1ha2UgZGlyZWN0b3J5IGhpZXJhcmNoeQorIyBBdXRob3I6IE5vYWggRnJpZWRtYW4gPGZyaWVkbWFuQHByZXAuYWkubWl0LmVkdT4KKyMgQ3JlYXRlZDogMTk5My0wNS0xNgorIyBQdWJsaWMgZG9tYWluCisKK2VycnN0YXR1cz0wCitkaXJtb2RlPSIiCisKK3VzYWdlPSJcCitVc2FnZTogbWtpbnN0YWxsZGlycyBbLWhdIFstLWhlbHBdIFstbSBtb2RlXSBkaXIgLi4uIgorCisjIHByb2Nlc3MgY29tbWFuZCBsaW5lIGFyZ3VtZW50cword2hpbGUgdGVzdCAkIyAtZ3QgMCA7IGRvCisgIGNhc2UgJDEgaW4KKyAgICAtaCB8IC0taGVscCB8IC0taCopICAgICAgICAgIyAtaCBmb3IgaGVscAorICAgICAgZWNobyAiJHVzYWdlIiAxPiYyCisgICAgICBleGl0IDAKKyAgICAgIDs7CisgICAgLW0pICAgICAgICAgICAgICAgICAgICAgICAgICMgLW0gUEVSTSBhcmcKKyAgICAgIHNoaWZ0CisgICAgICB0ZXN0ICQjIC1lcSAwICYmIHsgZWNobyAiJHVzYWdlIiAxPiYyOyBleGl0IDE7IH0KKyAgICAgIGRpcm1vZGU9JDEKKyAgICAgIHNoaWZ0CisgICAgICA7OworICAgIC0tKSAgICAgICAgICAgICAgICAgICAgICAgICAjIHN0b3Agb3B0aW9uIHByb2Nlc3NpbmcKKyAgICAgIHNoaWZ0CisgICAgICBicmVhaworICAgICAgOzsKKyAgICAtKikgICAgICAgICAgICAgICAgICAgICAgICAgIyB1bmtub3duIG9wdGlvbgorICAgICAgZWNobyAiJHVzYWdlIiAxPiYyCisgICAgICBleGl0IDEKKyAgICAgIDs7CisgICAgKikgICAgICAgICAgICAgICAgICAgICAgICAgICMgZmlyc3Qgbm9uLW9wdCBhcmcKKyAgICAgIGJyZWFrCisgICAgICA7OworICBlc2FjCitkb25lCisKK2ZvciBmaWxlCitkbworICBpZiB0ZXN0IC1kICIkZmlsZSI7IHRoZW4KKyAgICBzaGlmdAorICBlbHNlCisgICAgYnJlYWsKKyAgZmkKK2RvbmUKKworY2FzZSAkIyBpbgorICAwKSBleGl0IDAgOzsKK2VzYWMKKworY2FzZSAkZGlybW9kZSBpbgorICAnJykKKyAgICBpZiBta2RpciAtcCAtLSAuIDI+L2Rldi9udWxsOyB0aGVuCisgICAgICBlY2hvICJta2RpciAtcCAtLSAkKiIKKyAgICAgIGV4ZWMgbWtkaXIgLXAgLS0gIiRAIgorICAgIGZpCisgICAgOzsKKyAgKikKKyAgICBpZiBta2RpciAtbSAiJGRpcm1vZGUiIC1wIC0tIC4gMj4vZGV2L251bGw7IHRoZW4KKyAgICAgIGVjaG8gIm1rZGlyIC1tICRkaXJtb2RlIC1wIC0tICQqIgorICAgICAgZXhlYyBta2RpciAtbSAiJGRpcm1vZGUiIC1wIC0tICIkQCIKKyAgICBmaQorICAgIDs7Citlc2FjCisKK2ZvciBmaWxlCitkbworICBzZXQgZm5vcmQgYGVjaG8gIjokZmlsZSIgfCBzZWQgLW5lICdzL146XC8vIy87cy9eOi8vO3MvXC8vIC9nO3MvXiMvXC8vO3AnYAorICBzaGlmdAorCisgIHBhdGhjb21wPQorICBmb3IgZAorICBkbworICAgIHBhdGhjb21wPSIkcGF0aGNvbXAkZCIKKyAgICBjYXNlICRwYXRoY29tcCBpbgorICAgICAgLSopIHBhdGhjb21wPS4vJHBhdGhjb21wIDs7CisgICAgZXNhYworCisgICAgaWYgdGVzdCAhIC1kICIkcGF0aGNvbXAiOyB0aGVuCisgICAgICBlY2hvICJta2RpciAkcGF0aGNvbXAiCisKKyAgICAgIG1rZGlyICIkcGF0aGNvbXAiIHx8IGxhc3RlcnI9JD8KKworICAgICAgaWYgdGVzdCAhIC1kICIkcGF0aGNvbXAiOyB0aGVuCisgIAllcnJzdGF0dXM9JGxhc3RlcnIKKyAgICAgIGVsc2UKKyAgCWlmIHRlc3QgISAteiAiJGRpcm1vZGUiOyB0aGVuCisJICBlY2hvICJjaG1vZCAkZGlybW9kZSAkcGF0aGNvbXAiCisgICAgCSAgbGFzdGVycj0iIgorICAJICBjaG1vZCAiJGRpcm1vZGUiICIkcGF0aGNvbXAiIHx8IGxhc3RlcnI9JD8KKworICAJICBpZiB0ZXN0ICEgLXogIiRsYXN0ZXJyIjsgdGhlbgorICAJICAgIGVycnN0YXR1cz0kbGFzdGVycgorICAJICBmaQorICAJZmkKKyAgICAgIGZpCisgICAgZmkKKworICAgIHBhdGhjb21wPSIkcGF0aGNvbXAvIgorICBkb25lCitkb25lCisKK2V4aXQgJGVycnN0YXR1cworCisjIExvY2FsIFZhcmlhYmxlczoKKyMgbW9kZTogc2hlbGwtc2NyaXB0CisjIHNoLWluZGVudGF0aW9uOiAyCisjIEVuZDoKKyMgbWtpbnN0YWxsZGlycyBlbmRzIGhlcmUKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL3N1cHBvcnQvc2hsaWItaW5zdGFsbCBiL3JlYWRsaW5lL3N1cHBvcnQvc2hsaWItaW5zdGFsbAppbmRleCA2NTRjZmE5Li4yY2QyNTJhIDEwMDc1NQotLS0gYS9yZWFkbGluZS9zdXBwb3J0L3NobGliLWluc3RhbGwKKysrIGIvcmVhZGxpbmUvc3VwcG9ydC9zaGxpYi1pbnN0YWxsCkBAIC0zLDcgKzMsNyBAQAogIyBzaGxpYi1pbnN0YWxsIC0gaW5zdGFsbCBhIHNoYXJlZCBsaWJyYXJ5IGFuZCBkbyBhbnkgbmVjZXNzYXJ5IGhvc3Qtc3BlY2lmaWMKICMJCSAgcG9zdC1pbnN0YWxsYXRpb24gY29uZmlndXJhdGlvbiAobGlrZSBsZGNvbmZpZykKICMKLSMgdXNhZ2U6IHNobGliLWluc3RhbGwgWy1EXSAtTyBob3N0X29zIC1kIGluc3RhbGxhdGlvbi1kaXIgLWkgaW5zdGFsbC1wcm9nIFstVV0gbGlicmFyeQorIyB1c2FnZTogc2hsaWItaW5zdGFsbCBbLURdIC1PIGhvc3Rfb3MgLWQgaW5zdGFsbGF0aW9uLWRpciBbLWIgYmluLWRpcl0gLWkgaW5zdGFsbC1wcm9nIFstVV0gbGlicmFyeQogIwogIyBDaGV0IFJhbWV5CiAjIGNoZXRAcG8uY3dydS5lZHUKQEAgLTE1LDcgKzE1LDcgQEAKIExEQ09ORklHPWxkY29uZmlnCiAKIFBST0dOQU1FPWBiYXNlbmFtZSAkMGAKLVVTQUdFPSIkUFJPR05BTUUgWy1EXSAtTyBob3N0X29zIC1kIGluc3RhbGxhdGlvbi1kaXIgLWkgaW5zdGFsbC1wcm9nIFstVV0gbGlicmFyeSIKK1VTQUdFPSIkUFJPR05BTUUgWy1EXSAtTyBob3N0X29zIC1kIGluc3RhbGxhdGlvbi1kaXIgWy1iIGJpbi1kaXJdIC1pIGluc3RhbGwtcHJvZyBbLVVdIGxpYnJhcnkiCiAKICMgcHJvY2VzcyBvcHRpb25zCiAKQEAgLTIzLDYgKzIzLDcgQEAKIAljYXNlICIkMSIgaW4KIAktTykJc2hpZnQ7IGhvc3Rfb3M9IiQxIjsgc2hpZnQgOzsKIAktZCkJc2hpZnQ7IElOU1RBTExESVI9IiQxIjsgc2hpZnQgOzsKKwktYikJc2hpZnQ7IEJJTkRJUj0iJDEiIDsgc2hpZnQgOzsKIAktaSkJc2hpZnQ7IElOU1RBTExQUk9HPSIkMSIgOyBzaGlmdCA7OwogCS1EKQllY2hvPWVjaG8gOyBzaGlmdCA7OwogCS1VKQl1bmluc3RhbGw9dHJ1ZSA7IHNoaWZ0IDs7CkBAIC02NCwxMSArNjUsMzAgQEAKICMgcG9zdC1pbnN0YWxsL3VuaW5zdGFsbAogCiAjIEhQLVVYIGFuZCBEYXJ3aW4vTWFjT1MgWCByZXF1aXJlIHRoYXQgYSBzaGFyZWQgbGlicmFyeSBoYXZlIGV4ZWN1dGUgcGVybWlzc2lvbgorIyBDeWd3aW4gaW5zdGFsbHMgYm90aCBhIGRsbCAod2hpY2ggbXVzdCBnbyBpbiAkQklORElSKSBhbmQgYW4gaW1wbGljaXQKKyMgbGluayBsaWJyYXJ5IChpbiAkbGliZGlyKQogY2FzZSAiJGhvc3Rfb3MiIGluCiBocHV4KnxkYXJ3aW4qfG1hY29zeCopCiAJaWYgWyAteiAiJHVuaW5zdGFsbCIgXTsgdGhlbgogCQljaG1vZCA1NTUgJHtJTlNUQUxMRElSfS8ke0xJQk5BTUV9CiAJZmkgOzsKK2N5Z3dpbiopCisJSU1QTElCTkFNRT1gZWNobyAke0xJQk5BTUV9IFwKKwkJfCBzZWQgLWUgJ3MsXmN5ZyxsaWIsJyAtZSAncyxbMC05XSouZGxsJCwuZGxsLmEsJ2AKKwlpZiBbIC16ICIkdW5pbnN0YWxsIiBdOyB0aGVuCisJCSR7ZWNob30gJFJNICR7QklORElSfS8ke0xJQk5BTUV9LiR7T0xEU1VGRn0KKwkJaWYgWyAtZiAiJEJJTkRJUi8kTElCTkFNRSIgXTsgdGhlbgorCQkJJHtlY2hvfSAkTVYgJEJJTkRJUi8kTElCTkFNRSAkQklORElSLyRMSUJOQU1FLiRPTERTVUZGCisJCWZpCisJCSR7ZWNob30gJE1WICR7SU5TVEFMTERJUn0vJHtMSUJOQU1FfSAke0JJTkRJUn0vJHtMSUJOQU1FfQorCQkke2VjaG99IGNobW9kIGEreCAke0JJTkRJUn0vJHtMSUJOQU1FfQorCQkke2VjaG99IGV2YWwgJHtJTlNUQUxMUFJPR30gJHtMSUJOQU1FfS5hIFwKKwkJCSR7SU5TVEFMTERJUn0vJHtJTVBMSUJOQU1FfQorCWVsc2UKKwkJJHtlY2hvfSAke1JNfSAke0JJTkRJUn0vJHtMSUJOQU1FfQorCQkke2VjaG99ICR7Uk19ICR7SU5TVEFMTERJUn0vJHtJTVBMSUJOQU1FfQorCWZpIDs7CisKICopCTs7CiBlc2FjCiAKQEAgLTg4LDI0ICsxMDgsMzggQEAKIAlMSU5LMT1gZWNobyAkTElCTkFNRSB8IHNlZCAnczpcKC4qXClcLlswLTldXC5bMC05XTpcMTonYAkjIGxpYm5hbWUuZHlsaWIKIGVzYWMKIAotSU5TVEFMTF9MSU5LMT0nY2QgJElOU1RBTExESVIgOyBsbiAtcyAkTElCTkFNRSAkTElOSzEnCi1JTlNUQUxMX0xJTksyPSdjZCAkSU5TVEFMTERJUiA7IGxuIC1zICRMSUJOQU1FICRMSU5LMicKK0lOU1RBTExfTElOSzE9JyR7ZWNob30gY2QgJElOU1RBTExESVIgJiYgJHtlY2hvfSAke0xOfSAkTElCTkFNRSAkTElOSzEnCitJTlNUQUxMX0xJTksyPScke2VjaG99IGNkICRJTlNUQUxMRElSICYmICR7ZWNob30gJHtMTn0gJExJQk5BTUUgJExJTksyJwogCiAjCiAjIENyZWF0ZSBzeW1saW5rcyB0byB0aGUgaW5zdGFsbGVkIGxpYnJhcnkuICBUaGlzIHNlY3Rpb24gaXMgaW5jb21wbGV0ZS4KICMKIGNhc2UgIiRob3N0X29zIiBpbgotKmxpbnV4Knxic2RpNCp8KmdudSp8ZGFyd2luKnxtYWNvc3gqKQorKmxpbnV4KikKIAkjIGxpYm5hbWUuc28uTSAtPiBsaWJuYW1lLnNvLk0uTgogCSR7ZWNob30gJHtSTX0gJHtJTlNUQUxMRElSfS8kTElOSzIKIAlpZiBbIC16ICIkdW5pbnN0YWxsIiBdOyB0aGVuCi0JCSR7ZWNob30gbG4gLXMgJExJQk5BTUUgJHtJTlNUQUxMRElSfS8kTElOSzIKKwkJZXZhbCAkSU5TVEFMTF9MSU5LMgorCWZpCisKKwkjIGxpYm5hbWUuc28gLT4gbGlibmFtZS5zby5NCisJJHtlY2hvfSAke1JNfSAke0lOU1RBTExESVJ9LyRMSU5LMQorCWlmIFsgLXogIiR1bmluc3RhbGwiIF07IHRoZW4KKwkJJHtlY2hvfSBjZCAkSU5TVEFMTERJUiAmJiAke2VjaG99ICR7TE59ICRMSU5LMiAkTElOSzEKKwlmaQorCTs7CisKK2JzZGk0KnwqZ251KnxkYXJ3aW4qfG1hY29zeCp8aypic2QqLWdudSkKKwkjIGxpYm5hbWUuc28uTSAtPiBsaWJuYW1lLnNvLk0uTgorCSR7ZWNob30gJHtSTX0gJHtJTlNUQUxMRElSfS8kTElOSzIKKwlpZiBbIC16ICIkdW5pbnN0YWxsIiBdOyB0aGVuCisJCWV2YWwgJElOU1RBTExfTElOSzIKIAlmaQogCiAJIyBsaWJuYW1lLnNvIC0+IGxpYm5hbWUuc28uTS5OCiAJJHtlY2hvfSAke1JNfSAke0lOU1RBTExESVJ9LyRMSU5LMQogCWlmIFsgLXogIiR1bmluc3RhbGwiIF07IHRoZW4KLQkJJHtlY2hvfSBsbiAtcyAkTElCTkFNRSAke0lOU1RBTExESVJ9LyRMSU5LMQorCQlldmFsICRJTlNUQUxMX0xJTksxCiAJZmkKIAk7OwogCkBAIC0xMTMsNyArMTQ3LDcgQEAKIAkjIGxpYm5hbWUuc28gLT4gbGlibmFtZS5zby5NCiAJJHtlY2hvfSAke1JNfSAke0lOU1RBTExESVJ9LyRMSU5LMQogCWlmIFsgLXogIiR1bmluc3RhbGwiIF07IHRoZW4KLQkJJHtlY2hvfSBsbiAtcyAkTElCTkFNRSAke0lOU1RBTExESVJ9LyRMSU5LMQorCQlldmFsICRJTlNUQUxMX0xJTksxCiAJZmkKIAk7OwogCkBAIC0xMjQsMTkgKzE1OCwxOSBAQAogCQkjIGxpYm5hbWUuc28gLT4gbGlibmFtZS5zby5NCiAJCSR7ZWNob30gJHtSTX0gJHtJTlNUQUxMRElSfS8kTElOSzEKIAkJaWYgWyAteiAiJHVuaW5zdGFsbCIgXTsgdGhlbgotCQkJJHtlY2hvfSBsbiAtcyAkTElCTkFNRSAke0lOU1RBTExESVJ9LyRMSU5LMQorCQkJZXZhbCAkSU5TVEFMTF9MSU5LMQogCQlmaQogCWVsc2UKIAkJIyBsaWJuYW1lLnNvLk0gLT4gbGlibmFtZS5zby5NLk4KIAkJJHtlY2hvfSAke1JNfSAke0lOU1RBTExESVJ9LyRMSU5LMgogCQlpZiBbIC16ICIkdW5pbnN0YWxsIiBdOyB0aGVuCi0JCQkke2VjaG99IGxuIC1zICRMSUJOQU1FICR7SU5TVEFMTERJUn0vJExJTksyCisJCQlldmFsICRJTlNUQUxMX0xJTksyCiAJCWZpCiAKIAkJIyBsaWJuYW1lLnNvIC0+IGxpYm5hbWUuc28uTS5OCiAJCSR7ZWNob30gJHtSTX0gJHtJTlNUQUxMRElSfS8kTElOSzEKIAkJaWYgWyAteiAiJHVuaW5zdGFsbCIgXTsgdGhlbgotCQkJJHtlY2hvfSBsbiAtcyAkTElCTkFNRSAke0lOU1RBTExESVJ9LyRMSU5LMQorCQkJZXZhbCAkSU5TVEFMTF9MSU5LMQogCQlmaQogCWZpCiAJOzsKQEAgLTE0NSwxMSArMTc5LDE2IEBACiAJIyBsaWJuYW1lLnNsIC0+IGxpYm5hbWUuTQogCSR7ZWNob30gJHtSTX0gJHtJTlNUQUxMRElSfS8kTElOSzEuc2wKIAlpZiBbIC16ICIkdW5pbnN0YWxsIiBdOyB0aGVuCi0jCQkke2VjaG99IGxuIC1zICRMSUJOQU1FICR7SU5TVEFMTERJUn0vJHtMSU5LMX0uc2wKLQkJJHtlY2hvfSBsbiAtcyAkTElCTkFNRSAke0lOU1RBTExESVJ9LyR7TElOSzF9CisJCWV2YWwgJElOU1RBTExfTElOSzEKIAlmaQogCTs7CiAKK2N5Z3dpbiopCisJIyBMaW5rcyB0byAuZGxscyBkb24ndCB3b3JrLiAgSGVuY2Ugc2hvYmotY29uZiB1c2VkIERMTFZFUlNJT04uZGxsCisJIyBpbnN0ZWFkIG9mIHNvLlNITElCX01BSk9SLlNITElCX01JTk9SLiAgVGhlIHBvc3RpbnN0YWxsIGFib3ZlCisJIyB0b29rIGNhcmUgb2YgZXZlcnl0aGluZyBlbHNlLgorCTs7CisKICopCTs7CiBlc2FjCiAKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL3N1cHBvcnQvc2hvYmotY29uZiBiL3JlYWRsaW5lL3N1cHBvcnQvc2hvYmotY29uZgppbmRleCA2YmQ3ZmIxLi4wZTMwNmJjIDEwMDc1NQotLS0gYS9yZWFkbGluZS9zdXBwb3J0L3Nob2JqLWNvbmYKKysrIGIvcmVhZGxpbmUvc3VwcG9ydC9zaG9iai1jb25mCkBAIC00MSw5ICs0MSwxMyBAQAogCiBTSExJQl9YTERGTEFHUz0KIFNITElCX0xJQlM9CisKK1NITElCX0RPVD0nLicKK1NITElCX0xJQlBSRUY9J2xpYicKIFNITElCX0xJQlNVRkY9J3NvJwogCiBTSExJQl9MSUJWRVJTSU9OPSckKFNITElCX0xJQlNVRkYpJworU0hMSUJfRExMVkVSU0lPTj0nJChTSExJQl9NQUpPUiknCiAKIFBST0dOQU1FPWBiYXNlbmFtZSAkMGAKIFVTQUdFPSIkUFJPR05BTUUgWy1DIGNvbXBpbGVyXSAtYyBob3N0X2NwdSAtbyBob3N0X29zIC12IGhvc3RfdmVuZG9yIgpAQCAtNzgsMTAgKzgyLDE0IEBACiBzdW5vczUqLSpnY2MqfHNvbGFyaXMyKi0qZ2NjKikKIAlTSE9CSl9DRkxBR1M9LWZwaWMKIAlTSE9CSl9MRD0nJHtDQ30nCi0JIyBUaGlzIGxpbmUgd29ya3MgZm9yIHRoZSBTb2xhcmlzIGxpbmtlciBpbiAvdXNyL2Njcy9iaW4vbGQKLQlTSE9CSl9MREZMQUdTPSctc2hhcmVkIC1XbCwtaSAtV2wsLWgsJEAnCi0JIyBUaGlzIGxpbmUgd29ya3MgZm9yIHRoZSBHTlUgbGQKLSMJU0hPQkpfTERGTEFHUz0nLXNoYXJlZCAtV2wsLWgsJEAnCisJbGRfdXNlZD1gZ2NjIC1wcmludC1wcm9nLW5hbWU9bGRgCisJaWYgJHtsZF91c2VkfSAtViAyPiYxIHwgZ3JlcCBHTlUgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisJCSMgVGhpcyBsaW5lIHdvcmtzIGZvciB0aGUgR05VIGxkCisJCVNIT0JKX0xERkxBR1M9Jy1zaGFyZWQgLVdsLC1oLCRAJworCWVsc2UKKwkJIyBUaGlzIGxpbmUgd29ya3MgZm9yIHRoZSBTb2xhcmlzIGxpbmtlciBpbiAvdXNyL2Njcy9iaW4vbGQKKwkJU0hPQkpfTERGTEFHUz0nLXNoYXJlZCAtV2wsLWkgLVdsLC1oLCRAJworCWZpCiAKICMJU0hMSUJfWExERkxBR1M9Jy1SICQobGliZGlyKScKIAlTSExJQl9MSUJWRVJTSU9OPSckKFNITElCX0xJQlNVRkYpLiQoU0hMSUJfTUFKT1IpJwpAQCAtOTcsNyArMTA1LDcgQEAKIAk7OwogCiAjIEFsbCB2ZXJzaW9ucyBvZiBMaW51eCBvciB0aGUgc2VtaS1teXRoaWNhbCBHTlUgSHVyZC4KLWxpbnV4KnxnbnUqKQorbGludXgqLSp8Z251Ki0qfGsqYnNkKi1nbnUtKikKIAlTSE9CSl9DRkxBR1M9LWZQSUMKIAlTSE9CSl9MRD0nJHtDQ30nCiAJU0hPQkpfTERGTEFHUz0nLXNoYXJlZCAtV2wsLXNvbmFtZSwkQCcKQEAgLTExNiw3ICsxMjQsNyBAQAogCTs7CiAKICMgRnJlZUJTRC0zLnggRUxGCi1mcmVlYnNkWzMtOV0qfGZyZWVic2RlbGZbMy05XSp8ZnJlZWJzZGFvdXRbMy05XSopCitmcmVlYnNkWzMtOV0qfGZyZWVic2RlbGZbMy05XSp8ZnJlZWJzZGFvdXRbMy05XSp8ZHJhZ29uZmx5KikKIAlTSE9CSl9DRkxBR1M9LWZwaWMKIAlTSE9CSl9MRD0nJHtDQ30nCiAKQEAgLTEzOCwxNyArMTQ2LDIzIEBACiAJU0hPQkpfU1RBVFVTPXVuc3VwcG9ydGVkCiAJU0hMSUJfU1RBVFVTPXN1cHBvcnRlZAogCi0JU0hPQkpfQ0ZMQUdTPSctZHluYW1pYyAtZm5vLWNvbW1vbicKKwlTSE9CSl9DRkxBR1M9Jy1mbm8tY29tbW9uJwogCi0JU0hPQkpfTEQ9L3Vzci9iaW4vbGlidG9vbAorCVNIT0JKX0xEPScke0NDfScKIAogCVNITElCX0xJQlZFUlNJT049JyQoU0hMSUJfTUFKT1IpJChTSExJQl9NSU5PUikuJChTSExJQl9MSUJTVUZGKScKIAlTSExJQl9MSUJTVUZGPSdkeWxpYicKIAotCVNIT0JKX0xERkxBR1M9Jy1keW5hbWljJwotCVNITElCX1hMREZMQUdTPSctYXJjaF9vbmx5IGAvdXNyL2Jpbi9hcmNoYCAtaW5zdGFsbF9uYW1lICQobGliZGlyKS8kQCAtY3VycmVudF92ZXJzaW9uICQoU0hMSUJfTUFKT1IpJChTSExJQl9NSU5PUikgLWNvbXBhdGliaWxpdHlfdmVyc2lvbiAkKFNITElCX01BSk9SKSAtdicKKwljYXNlICIke2hvc3Rfb3N9IiBpbgorCWRhcndpbls3OF0qKQlTSE9CSl9MREZMQUdTPScnCisJCQlTSExJQl9YTERGTEFHUz0nLWR5bmFtaWNsaWIgLWFyY2hfb25seSBgL3Vzci9iaW4vYXJjaGAgLWluc3RhbGxfbmFtZSAkKGxpYmRpcikvJEAgLWN1cnJlbnRfdmVyc2lvbiAkKFNITElCX01BSk9SKSQoU0hMSUJfTUlOT1IpIC1jb21wYXRpYmlsaXR5X3ZlcnNpb24gJChTSExJQl9NQUpPUikgLXYnCisJCQk7OworCSopCQlTSE9CSl9MREZMQUdTPSctZHluYW1pYycKKwkJCVNITElCX1hMREZMQUdTPSctYXJjaF9vbmx5IGAvdXNyL2Jpbi9hcmNoYCAtaW5zdGFsbF9uYW1lICQobGliZGlyKS8kQCAtY3VycmVudF92ZXJzaW9uICQoU0hMSUJfTUFKT1IpJChTSExJQl9NSU5PUikgLWNvbXBhdGliaWxpdHlfdmVyc2lvbiAkKFNITElCX01BSk9SKSAtdicKKwkJCTs7CisJZXNhYwogCi0JU0hMSUJfTElCUz0nLWxTeXN0ZW0nCisJU0hMSUJfTElCUz0nLWxuY3Vyc2VzJwkjIHNlZSBpZiAtbGN1cnNlcyB3b3JrcyBvbiBNYWNPUyBYIDEwLjEgCiAJOzsKIAogb3BlbmJzZCopCkBAIC0yOTYsNiArMzEwLDggQEAKIAkjIG11c3QgdXNlIGdjYzsgdGhlIGJ1bmRsZWQgY2MgY2Fubm90IGNvbXBpbGUgUElDIGNvZGUKIAlTSE9CSl9DRkxBR1M9Jy1mcGljJwogCVNIT0JKX0xEPScke0NDfScKKwkjIGlmIHlvdSBoYXZlIHByb2JsZW1zIGxpbmtpbmcgaGVyZSwgbW92aW5nIHRoZSBgLVdsLCtoLCRAJyBmcm9tCisJIyBTSExJQl9YTERGTEFHUyB0byBTSE9CSl9MREZMQUdTIGhhcyBiZWVuIHJlcG9ydGVkIHRvIHdvcmsKIAlTSE9CSl9MREZMQUdTPSctc2hhcmVkIC1XbCwtYiAtV2wsK3MnCiAKIAlTSExJQl9YTERGTEFHUz0nLVdsLCtoLCRAIC1XbCwrYiwkKGxpYmRpciknCkBAIC00MDAsNyArNDE2LDM5IEBACiAKIAlTSExJQl9MSUJWRVJTSU9OPSckKFNITElCX0xJQlNVRkYpLiQoU0hMSUJfTUFKT1IpJwogCTs7Ci0JCisKK3N5c3Y1VW5peFdhcmUqLSpnY2MqKQorCVNIT0JKX0NGTEFHUz0tZnBpYworCVNIT0JKX0xEPScke0NDfScKKwlTSE9CSl9MREZMQUdTPSctc2hhcmVkJworCisJU0hMSUJfTElCVkVSU0lPTj0nJChTSExJQl9MSUJTVUZGKS4kKFNITElCX01BSk9SKScKKwk7OworCitzeXN2NVVuaXhXYXJlKikKKwlTSE9CSl9DRkxBR1M9Jy1LIFBJQycKKwlTSE9CSl9MRD1sZAorCVNIT0JKX0xERkxBR1M9Jy1HIC1keSAteiB0ZXh0IC1oICRAJworCisJU0hMSUJfTElCVkVSU0lPTj0nJChTSExJQl9MSUJTVUZGKS4kKFNITElCX01BSk9SKScKKwk7OworCitzeXN2NU9wZW5VTklYKi0qZ2NjKikKKwlTSE9CSl9DRkxBR1M9LWZwaWMKKwlTSE9CSl9MRD0nJHtDQ30nCisJU0hPQkpfTERGTEFHUz0nLXNoYXJlZCcKKworCVNITElCX0xJQlZFUlNJT049JyQoU0hMSUJfTElCU1VGRikuJChTSExJQl9NQUpPUiknCisJOzsKKworc3lzdjVPcGVuVU5JWCopCisJU0hPQkpfQ0ZMQUdTPSctSyBQSUMnCisJU0hPQkpfTEQ9bGQKKwlTSE9CSl9MREZMQUdTPSctRyAtZHkgLXogdGV4dCAtaCAkQCcKKworCVNITElCX0xJQlZFUlNJT049JyQoU0hMSUJfTElCU1VGRikuJChTSExJQl9NQUpPUiknCisJOzsKKwogZGd1eCotKmdjYyopCiAJU0hPQkpfQ0ZMQUdTPS1mcGljCiAJU0hPQkpfTEQ9JyR7Q0N9JwpAQCAtNDIyLDYgKzQ3MCwyNCBAQAogCVNITElCX1NUQVRVUz11bnN1cHBvcnRlZAogCTs7CiAKK2N5Z3dpbiopCisJU0hPQkpfTEQ9JyQoQ0MpJworICAgICAgICBTSE9CSl9MREZMQUdTPSctc2hhcmVkIC1XbCwtLWVuYWJsZS1hdXRvLWltcG9ydCAtV2wsLS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1XbCwtLWV4cG9ydC1hbGwgLVdsLC0tb3V0LWltcGxpYj0kKEApLmEnCisgICAgICAgIFNITElCX0xJQlBSRUY9J2N5ZycKKyAgICAgICAgU0hMSUJfTElCU1VGRj0nZGxsJworICAgICAgICBTSExJQl9MSUJWRVJTSU9OPSckKFNITElCX0RMTFZFUlNJT04pLiQoU0hMSUJfTElCU1VGRiknCisgICAgICAgIFNITElCX0xJQlM9JyQoVEVSTUNBUF9MSUIpJworCisJU0hMSUJfRE9UPQorICAgICAgICAjIEZvciBvZmZpY2lhbCBjeWd3aW4gcmVsZWFzZXMsIERMTFZFUlNJT04gd2lsbCBiZSBkZWZpbmVkIGluIHRoZQorICAgICAgICAjIGVudmlyb25tZW50IG9mIGNvbmZpZ3VyZSwgYW5kIHdpbGwgYmUgaW5jcmVtZW50ZWQgYW55IHRpbWUgdGhlIEFQSQorICAgICAgICAjIGNoYW5nZXMgaW4gYSBub24tYmFja3dhcmRzIGNvbXBhdGlibGUgbWFubmVyLiAgT3RoZXJ3aXNlLCBpdCBpcyBqdXN0CisgICAgICAgICMgU0hMSUJfTUFKT1IuCisgICAgICAgIGlmIFsgLW4gIiRETExWRVJTSU9OIiBdIDsgdGhlbgorCQlTSExJQl9ETExWRVJTSU9OPSIkRExMVkVSU0lPTiIKKyAgICAgICAgZmkKKwk7OworCiAjCiAjIFJlbHkgb24gY29ycmVjdCBnY2MgY29uZmlndXJhdGlvbiBmb3IgZXZlcnl0aGluZyBlbHNlCiAjCkBAIC00NDksOCArNTE1LDE0IEBACiAKIGVjaG8gU0hMSUJfWExERkxBR1M9XCciJFNITElCX1hMREZMQUdTIlwnCiBlY2hvIFNITElCX0xJQlM9XCciJFNITElCX0xJQlMiXCcKKworZWNobyBTSExJQl9ET1Q9XCciJFNITElCX0RPVCJcJworCitlY2hvIFNITElCX0xJQlBSRUY9XCciJFNITElCX0xJQlBSRUYiXCcKIGVjaG8gU0hMSUJfTElCU1VGRj1cJyIkU0hMSUJfTElCU1VGRiJcJworCiBlY2hvIFNITElCX0xJQlZFUlNJT049XCciJFNITElCX0xJQlZFUlNJT04iXCcKK2VjaG8gU0hMSUJfRExMVkVSU0lPTj1cJyIkU0hMSUJfRExMVkVSU0lPTiJcJwogCiBlY2hvIFNIT0JKX1NUQVRVUz1cJyIkU0hPQkpfU1RBVFVTIlwnCiBlY2hvIFNITElCX1NUQVRVUz1cJyIkU0hMSUJfU1RBVFVTIlwnCmRpZmYgLS1naXQgYS9yZWFkbGluZS90ZXJtaW5hbC5jIGIvcmVhZGxpbmUvdGVybWluYWwuYwppbmRleCBmM2Y1YjZjLi5jYzYxMzg4IDEwMDY0NAotLS0gYS9yZWFkbGluZS90ZXJtaW5hbC5jCisrKyBiL3JlYWRsaW5lL3Rlcm1pbmFsLmMKQEAgLTEsNiArMSw2IEBACiAvKiB0ZXJtaW5hbC5jIC0tIGNvbnRyb2xsaW5nIHRoZSB0ZXJtaW5hbCB3aXRoIHRlcm1jYXAuICovCiAKLS8qIENvcHlyaWdodCAoQykgMTk5NiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKy8qIENvcHlyaWdodCAoQykgMTk5Ni0yMDA1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIFJlYWRsaW5lIExpYnJhcnksIGEgbGlicmFyeSBmb3IKICAgIHJlYWRpbmcgbGluZXMgb2YgdGV4dCB3aXRoIGludGVyYWN0aXZlIGlucHV0IGFuZCBoaXN0b3J5IGVkaXRpbmcuCkBAIC02OSw2ICs2OSw4IEBACiAjZGVmaW5lIENVU1RPTV9SRURJU1BMQVlfRlVOQygpIChybF9yZWRpc3BsYXlfZnVuY3Rpb24gIT0gcmxfcmVkaXNwbGF5KQogI2RlZmluZSBDVVNUT01fSU5QVVRfRlVOQygpIChybF9nZXRjX2Z1bmN0aW9uICE9IHJsX2dldGMpCiAKK2ludCBybF9wcmVmZXJfZW52X3dpbnNpemU7CisKIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KIC8qCQkJCQkJCQkgICAgKi8KIC8qCQkJVGVybWluYWwgYW5kIFRlcm1jYXAJCQkgICAgKi8KQEAgLTE0NSw2ICsxNDcsOSBAQAogc3RhdGljIGNoYXIgKl9ybF90ZXJtX2tIOwogc3RhdGljIGNoYXIgKl9ybF90ZXJtX2F0NzsJLyogQDcgKi8KIAorLyogRGVsZXRlIGtleSAqLworc3RhdGljIGNoYXIgKl9ybF90ZXJtX2tEOworCiAvKiBJbnNlcnQga2V5ICovCiBzdGF0aWMgY2hhciAqX3JsX3Rlcm1fa0k7CiAKQEAgLTE5MSwxMiArMTk2LDE0IEBACiAjaWYgZGVmaW5lZCAoVElPQ0dXSU5TWikKICAgc3RydWN0IHdpbnNpemUgd2luZG93X3NpemU7CiAjZW5kaWYgLyogVElPQ0dXSU5TWiAqLworICBpbnQgd3IsIHdjOwogCisgIHdyID0gd2MgPSAtMTsKICNpZiBkZWZpbmVkIChUSU9DR1dJTlNaKQogICBpZiAoaW9jdGwgKHR0eSwgVElPQ0dXSU5TWiwgJndpbmRvd19zaXplKSA9PSAwKQogICAgIHsKLSAgICAgIF9ybF9zY3JlZW53aWR0aCA9IChpbnQpIHdpbmRvd19zaXplLndzX2NvbDsKLSAgICAgIF9ybF9zY3JlZW5oZWlnaHQgPSAoaW50KSB3aW5kb3dfc2l6ZS53c19yb3c7CisgICAgICB3YyA9IChpbnQpIHdpbmRvd19zaXplLndzX2NvbDsKKyAgICAgIHdyID0gKGludCkgd2luZG93X3NpemUud3Nfcm93OwogICAgIH0KICNlbmRpZiAvKiBUSU9DR1dJTlNaICovCiAKQEAgLTIwNCwxMyArMjExLDI1IEBACiAgIF9lbXhfZ2V0X3NjcmVlbnNpemUgKCZfcmxfc2NyZWVud2lkdGgsICZfcmxfc2NyZWVuaGVpZ2h0KTsKICNlbmRpZgogCisgIGlmIChpZ25vcmVfZW52IHx8IHJsX3ByZWZlcl9lbnZfd2luc2l6ZSA9PSAwKQorICAgIHsKKyAgICAgIF9ybF9zY3JlZW53aWR0aCA9IHdjOworICAgICAgX3JsX3NjcmVlbmhlaWdodCA9IHdyOworICAgIH0KKyAgZWxzZQorICAgIF9ybF9zY3JlZW53aWR0aCA9IF9ybF9zY3JlZW5oZWlnaHQgPSAtMTsKKwogICAvKiBFbnZpcm9ubWVudCB2YXJpYWJsZSBDT0xVTU5TIG92ZXJyaWRlcyBzZXR0aW5nIG9mICJjbyIgaWYgSUdOT1JFX0VOVgotICAgICBpcyB1bnNldC4gKi8KKyAgICAgaXMgdW5zZXQuICBJZiB3ZSBwcmVmZXIgdGhlIGVudmlyb25tZW50LCBjaGVjayBpdCBmaXJzdCBiZWZvcmUKKyAgICAgYXNzaWduaW5nIHRoZSB2YWx1ZSByZXR1cm5lZCBieSB0aGUga2VybmVsLiAqLwogICBpZiAoX3JsX3NjcmVlbndpZHRoIDw9IDApCiAgICAgewogICAgICAgaWYgKGlnbm9yZV9lbnYgPT0gMCAmJiAoc3MgPSBzaF9nZXRfZW52X3ZhbHVlICgiQ09MVU1OUyIpKSkKIAlfcmxfc2NyZWVud2lkdGggPSBhdG9pIChzcyk7CiAKKyAgICAgIGlmIChfcmxfc2NyZWVud2lkdGggPD0gMCkKKyAgICAgICAgX3JsX3NjcmVlbndpZHRoID0gd2M7CisKICNpZiAhZGVmaW5lZCAoX19ESkdQUF9fKQogICAgICAgaWYgKF9ybF9zY3JlZW53aWR0aCA8PSAwICYmIHRlcm1fc3RyaW5nX2J1ZmZlcikKIAlfcmxfc2NyZWVud2lkdGggPSB0Z2V0bnVtICgiY28iKTsKQEAgLTIyNCw2ICsyNDMsOSBAQAogICAgICAgaWYgKGlnbm9yZV9lbnYgPT0gMCAmJiAoc3MgPSBzaF9nZXRfZW52X3ZhbHVlICgiTElORVMiKSkpCiAJX3JsX3NjcmVlbmhlaWdodCA9IGF0b2kgKHNzKTsKIAorICAgICAgaWYgKF9ybF9zY3JlZW5oZWlnaHQgPD0gMCkKKyAgICAgICAgX3JsX3NjcmVlbmhlaWdodCA9IHdyOworCiAjaWYgIWRlZmluZWQgKF9fREpHUFBfXykKICAgICAgIGlmIChfcmxfc2NyZWVuaGVpZ2h0IDw9IDAgJiYgdGVybV9zdHJpbmdfYnVmZmVyKQogCV9ybF9zY3JlZW5oZWlnaHQgPSB0Z2V0bnVtICgibGkiKTsKQEAgLTI1MiwxNiArMjc0LDE3IEBACiBfcmxfc2V0X3NjcmVlbl9zaXplIChyb3dzLCBjb2xzKQogICAgICBpbnQgcm93cywgY29sczsKIHsKLSAgaWYgKHJvd3MgPT0gMCB8fCBjb2xzID09IDApCi0gICAgcmV0dXJuOworICBpZiAocm93cyA+IDApCisgICAgX3JsX3NjcmVlbmhlaWdodCA9IHJvd3M7CisgIGlmIChjb2xzID4gMCkKKyAgICB7CisgICAgICBfcmxfc2NyZWVud2lkdGggPSBjb2xzOworICAgICAgaWYgKF9ybF90ZXJtX2F1dG93cmFwID09IDApCisJX3JsX3NjcmVlbndpZHRoLS07CisgICAgfQogCi0gIF9ybF9zY3JlZW5oZWlnaHQgPSByb3dzOwotICBfcmxfc2NyZWVud2lkdGggPSBjb2xzOwotCi0gIGlmIChfcmxfdGVybV9hdXRvd3JhcCA9PSAwKQotICAgIF9ybF9zY3JlZW53aWR0aC0tOwotCi0gIF9ybF9zY3JlZW5jaGFycyA9IF9ybF9zY3JlZW53aWR0aCAqIF9ybF9zY3JlZW5oZWlnaHQ7CisgIGlmIChyb3dzID4gMCB8fCBjb2xzID4gMCkKKyAgICBfcmxfc2NyZWVuY2hhcnMgPSBfcmxfc2NyZWVud2lkdGggKiBfcmxfc2NyZWVuaGVpZ2h0OwogfQogCiB2b2lkCkBAIC0yODAsNiArMzAzLDEyIEBACiAgIGlmIChjb2xzKQogICAgICpjb2xzID0gX3JsX3NjcmVlbndpZHRoOwogfQorCit2b2lkCitybF9yZXNldF9zY3JlZW5fc2l6ZSAoKQoreworICBfcmxfZ2V0X3NjcmVlbl9zaXplIChmaWxlbm8gKHJsX2luc3RyZWFtKSwgMCk7Cit9CiAgICAgIAogdm9pZAogcmxfcmVzaXplX3Rlcm1pbmFsICgpCkBAIC0zMTMsNiArMzQyLDcgQEAKICAgeyAiZWkiLCAmX3JsX3Rlcm1fZWkgfSwKICAgeyAiaWMiLCAmX3JsX3Rlcm1faWMgfSwKICAgeyAiaW0iLCAmX3JsX3Rlcm1faW0gfSwKKyAgeyAia0QiLCAmX3JsX3Rlcm1fa0QgfSwJLyogZGVsZXRlICovCiAgIHsgImtIIiwgJl9ybF90ZXJtX2tIIH0sCS8qIGhvbWUgZG93biA/PyAqLwogICB7ICJrSSIsICZfcmxfdGVybV9rSSB9LAkvKiBpbnNlcnQgKi8KICAgeyAia2QiLCAmX3JsX3Rlcm1fa2QgfSwKQEAgLTM0NywxMSArMzc3LDcgQEAKICAgcmVnaXN0ZXIgaW50IGk7CiAKICAgZm9yIChpID0gMDsgaSA8IE5VTV9UQ19TVFJJTkdTOyBpKyspCi0jICBpZmRlZiBfX0xDQ19fCiAgICAgKih0Y19zdHJpbmdzW2ldLnRjX3ZhbHVlKSA9IHRnZXRzdHIgKChjaGFyICopdGNfc3RyaW5nc1tpXS50Y192YXIsIGJwKTsKLSMgIGVsc2UKLSAgICAqKHRjX3N0cmluZ3NbaV0udGNfdmFsdWUpID0gdGdldHN0ciAodGNfc3RyaW5nc1tpXS50Y192YXIsIGJwKTsKLSMgIGVuZGlmCiAjZW5kaWYKICAgdGNhcF9pbml0aWFsaXplZCA9IDE7CiB9CkBAIC0zNjcsNyArMzkzLDYgQEAKICAgdGVybSA9IHRlcm1pbmFsX25hbWUgPyB0ZXJtaW5hbF9uYW1lIDogc2hfZ2V0X2Vudl92YWx1ZSAoIlRFUk0iKTsKICAgX3JsX3Rlcm1fY2xycGFnID0gX3JsX3Rlcm1fY3IgPSBfcmxfdGVybV9jbHJlb2wgPSAoY2hhciAqKU5VTEw7CiAgIHR0eSA9IHJsX2luc3RyZWFtID8gZmlsZW5vIChybF9pbnN0cmVhbSkgOiAwOwotICBfcmxfc2NyZWVud2lkdGggPSBfcmxfc2NyZWVuaGVpZ2h0ID0gMDsKIAogICBpZiAodGVybSA9PSAwKQogICAgIHRlcm0gPSAiZHVtYiI7CkBAIC00MDAsMTIgKzQyNSwxNyBAQAogCiAgICAgICBfcmxfdGVybV9hdXRvd3JhcCA9IDA7CS8qIHVzZWQgYnkgX3JsX2dldF9zY3JlZW5fc2l6ZSAqLwogCisgICAgICAvKiBBbGxvdyBjYWxsaW5nIGFwcGxpY2F0aW9uIHRvIHNldCBkZWZhdWx0IGhlaWdodCBhbmQgd2lkdGgsIHVzaW5nCisJIHJsX3NldF9zY3JlZW5fc2l6ZSAqLworICAgICAgaWYgKF9ybF9zY3JlZW53aWR0aCA8PSAwIHx8IF9ybF9zY3JlZW5oZWlnaHQgPD0gMCkKKwl7CiAjaWYgZGVmaW5lZCAoX19FTVhfXykKLSAgICAgIF9lbXhfZ2V0X3NjcmVlbnNpemUgKCZfcmxfc2NyZWVud2lkdGgsICZfcmxfc2NyZWVuaGVpZ2h0KTsKLSAgICAgIF9ybF9zY3JlZW53aWR0aC0tOworCSAgX2VteF9nZXRfc2NyZWVuc2l6ZSAoJl9ybF9zY3JlZW53aWR0aCwgJl9ybF9zY3JlZW5oZWlnaHQpOworCSAgX3JsX3NjcmVlbndpZHRoLS07CiAjZWxzZSAvKiAhX19FTVhfXyAqLwotICAgICAgX3JsX2dldF9zY3JlZW5fc2l6ZSAodHR5LCAwKTsKKwkgIF9ybF9nZXRfc2NyZWVuX3NpemUgKHR0eSwgMCk7CiAjZW5kaWYgLyogIV9fRU1YX18gKi8KKwl9CiAKICAgICAgIC8qIERlZmF1bHRzLiAqLwogICAgICAgaWYgKF9ybF9zY3JlZW53aWR0aCA8PSAwIHx8IF9ybF9zY3JlZW5oZWlnaHQgPD0gMCkKQEAgLTQyMCw3ICs0NTAsNyBAQAogICAgICAgX3JsX3Rlcm1faW0gPSBfcmxfdGVybV9laSA9IF9ybF90ZXJtX2ljID0gX3JsX3Rlcm1fSUMgPSAoY2hhciAqKU5VTEw7CiAgICAgICBfcmxfdGVybV91cCA9IF9ybF90ZXJtX2RjID0gX3JsX3Rlcm1fREMgPSBfcmxfdmlzaWJsZV9iZWxsID0gKGNoYXIgKilOVUxMOwogICAgICAgX3JsX3Rlcm1fa3UgPSBfcmxfdGVybV9rZCA9IF9ybF90ZXJtX2tsID0gX3JsX3Rlcm1fa3IgPSAoY2hhciAqKU5VTEw7Ci0gICAgICBfcmxfdGVybV9raCA9IF9ybF90ZXJtX2tIID0gX3JsX3Rlcm1fa0kgPSAoY2hhciAqKU5VTEw7CisgICAgICBfcmxfdGVybV9raCA9IF9ybF90ZXJtX2tIID0gX3JsX3Rlcm1fa0kgPSBfcmxfdGVybV9rRCA9IChjaGFyICopTlVMTDsKICAgICAgIF9ybF90ZXJtX2tzID0gX3JsX3Rlcm1fa2UgPSBfcmxfdGVybV9hdDcgPSAoY2hhciAqKU5VTEw7CiAgICAgICBfcmxfdGVybV9tbSA9IF9ybF90ZXJtX21vID0gKGNoYXIgKilOVUxMOwogICAgICAgX3JsX3Rlcm1fdmUgPSBfcmxfdGVybV92cyA9IChjaGFyICopTlVMTDsKQEAgLTQ1Miw3ICs0ODIsMTAgQEAKIAogICBfcmxfdGVybV9hdXRvd3JhcCA9IHRnZXRmbGFnICgiYW0iKSAmJiB0Z2V0ZmxhZyAoInhuIik7CiAKLSAgX3JsX2dldF9zY3JlZW5fc2l6ZSAodHR5LCAwKTsKKyAgLyogQWxsb3cgY2FsbGluZyBhcHBsaWNhdGlvbiB0byBzZXQgZGVmYXVsdCBoZWlnaHQgYW5kIHdpZHRoLCB1c2luZworICAgICBybF9zZXRfc2NyZWVuX3NpemUgKi8KKyAgaWYgKF9ybF9zY3JlZW53aWR0aCA8PSAwIHx8IF9ybF9zY3JlZW5oZWlnaHQgPD0gMCkKKyAgICBfcmxfZ2V0X3NjcmVlbl9zaXplICh0dHksIDApOwogCiAgIC8qICJBbiBhcHBsaWNhdGlvbiBwcm9ncmFtIGNhbiBhc3N1bWUgdGhhdCB0aGUgdGVybWluYWwgY2FuIGRvCiAgICAgICBjaGFyYWN0ZXIgaW5zZXJ0aW9uIGlmICphbnkgb25lIG9mKiB0aGUgY2FwYWJpbGl0aWVzIGBJQycsCkBAIC00ODksMTMgKzUyMiwxNSBAQAogICB4a2V5bWFwID0gX3JsX2tleW1hcDsKICAgX3JsX2tleW1hcCA9IG1hcDsKIAotICBfcmxfYmluZF9pZl91bmJvdW5kIChfcmxfdGVybV9rdSwgcmxfZ2V0X3ByZXZpb3VzX2hpc3RvcnkpOwotICBfcmxfYmluZF9pZl91bmJvdW5kIChfcmxfdGVybV9rZCwgcmxfZ2V0X25leHRfaGlzdG9yeSk7Ci0gIF9ybF9iaW5kX2lmX3VuYm91bmQgKF9ybF90ZXJtX2tyLCBybF9mb3J3YXJkKTsKLSAgX3JsX2JpbmRfaWZfdW5ib3VuZCAoX3JsX3Rlcm1fa2wsIHJsX2JhY2t3YXJkKTsKKyAgcmxfYmluZF9rZXlzZXFfaWZfdW5ib3VuZCAoX3JsX3Rlcm1fa3UsIHJsX2dldF9wcmV2aW91c19oaXN0b3J5KTsKKyAgcmxfYmluZF9rZXlzZXFfaWZfdW5ib3VuZCAoX3JsX3Rlcm1fa2QsIHJsX2dldF9uZXh0X2hpc3RvcnkpOworICBybF9iaW5kX2tleXNlcV9pZl91bmJvdW5kIChfcmxfdGVybV9rciwgcmxfZm9yd2FyZF9jaGFyKTsKKyAgcmxfYmluZF9rZXlzZXFfaWZfdW5ib3VuZCAoX3JsX3Rlcm1fa2wsIHJsX2JhY2t3YXJkX2NoYXIpOwogCi0gIF9ybF9iaW5kX2lmX3VuYm91bmQgKF9ybF90ZXJtX2toLCBybF9iZWdfb2ZfbGluZSk7CS8qIEhvbWUgKi8KLSAgX3JsX2JpbmRfaWZfdW5ib3VuZCAoX3JsX3Rlcm1fYXQ3LCBybF9lbmRfb2ZfbGluZSk7CS8qIEVuZCAqLworICBybF9iaW5kX2tleXNlcV9pZl91bmJvdW5kIChfcmxfdGVybV9raCwgcmxfYmVnX29mX2xpbmUpOwkvKiBIb21lICovCisgIHJsX2JpbmRfa2V5c2VxX2lmX3VuYm91bmQgKF9ybF90ZXJtX2F0NywgcmxfZW5kX29mX2xpbmUpOwkvKiBFbmQgKi8KKworICBybF9iaW5kX2tleXNlcV9pZl91bmJvdW5kIChfcmxfdGVybV9rRCwgcmxfZGVsZXRlKTsKIAogICBfcmxfa2V5bWFwID0geGtleW1hcDsKIH0KQEAgLTUyMiw2ICs1NTcsNyBAQAogcmxfcmVzZXRfdGVybWluYWwgKHRlcm1pbmFsX25hbWUpCiAgICAgIGNvbnN0IGNoYXIgKnRlcm1pbmFsX25hbWU7CiB7CisgIF9ybF9zY3JlZW53aWR0aCA9IF9ybF9zY3JlZW5oZWlnaHQgPSAwOwogICBfcmxfaW5pdF90ZXJtaW5hbF9pbyAodGVybWluYWxfbmFtZSk7CiAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvcmVhZGxpbmUvdGV4dC5jIGIvcmVhZGxpbmUvdGV4dC5jCmluZGV4IDJhN2I3MjQuLjkwNTNlOTYgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL3RleHQuYworKysgYi9yZWFkbGluZS90ZXh0LmMKQEAgLTEsNiArMSw2IEBACiAvKiB0ZXh0LmMgLS0gdGV4dCBoYW5kbGluZyBjb21tYW5kcyBmb3IgcmVhZGxpbmUuICovCiAKLS8qIENvcHlyaWdodCAoQykgMTk4Ny0yMDAyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorLyogQ29weXJpZ2h0IChDKSAxOTg3LTIwMDUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAKICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgUmVhZGxpbmUgTGlicmFyeSwgYSBsaWJyYXJ5IGZvcgogICAgcmVhZGluZyBsaW5lcyBvZiB0ZXh0IHdpdGggaW50ZXJhY3RpdmUgaW5wdXQgYW5kIGhpc3RvcnkgZWRpdGluZy4KQEAgLTYyLDYgKzYyLDExIEBACiBzdGF0aWMgaW50IHJsX2NoYW5nZV9jYXNlIFBBUkFNUygoaW50LCBpbnQpKTsKIHN0YXRpYyBpbnQgX3JsX2NoYXJfc2VhcmNoIFBBUkFNUygoaW50LCBpbnQsIGludCkpOwogCisjaWYgZGVmaW5lZCAoUkVBRExJTkVfQ0FMTEJBQ0tTKQorc3RhdGljIGludCBfcmxfaW5zZXJ0X25leHRfY2FsbGJhY2sgUEFSQU1TKChfcmxfY2FsbGJhY2tfZ2VuZXJpY19hcmcgKikpOworc3RhdGljIGludCBfcmxfY2hhcl9zZWFyY2hfY2FsbGJhY2sgUEFSQU1TKChfcmxfY2FsbGJhY2tfZ2VuZXJpY19hcmcgKikpOworI2VuZGlmCisKIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi8KIC8qCQkJCQkJCQkgICAgKi8KIC8qCQkJSW5zZXJ0IGFuZCBEZWxldGUJCQkgICAgKi8KQEAgLTE3MCw2ICsxNzUsOSBAQAogfQogI3VuZGVmIF9STF9GSVhfUE9JTlQKIAorLyogUmVwbGFjZSB0aGUgY29udGVudHMgb2YgdGhlIGxpbmUgYnVmZmVyIGJldHdlZW4gU1RBUlQgYW5kIEVORCB3aXRoCisgICBURVhULiAgVGhlIG9wZXJhdGlvbiBpcyB1bmRvYWJsZS4gIFRvIHJlcGxhY2UgdGhlIGVudGlyZSBsaW5lIGluIGFuCisgICB1bmRvYWJsZSBtb2RlLCB1c2UgX3JsX3JlcGxhY2VfdGV4dCh0ZXh0LCAwLCBybF9lbmQpOyAqLwogaW50CiBfcmxfcmVwbGFjZV90ZXh0ICh0ZXh0LCBzdGFydCwgZW5kKQogICAgICBjb25zdCBjaGFyICp0ZXh0OwpAQCAtNDE3LDggKzQyNSw3IEBACiAgIHJldHVybiAwOwogfQogCi0vKiBYWFggLSB0aGVzZSBtaWdodCBuZWVkIGNoYW5nZXMgZm9yIG11bHRpYnl0ZSBjaGFyYWN0ZXJzICovCi0vKiBNb3ZlIGZvcndhcmQgYSB3b3JkLiAgV2UgZG8gd2hhdCBFbWFjcyBkb2VzLiAqLworLyogTW92ZSBmb3J3YXJkIGEgd29yZC4gIFdlIGRvIHdoYXQgRW1hY3MgZG9lcy4gIEhhbmRsZXMgbXVsdGlieXRlIGNoYXJzLiAqLwogaW50CiBybF9mb3J3YXJkX3dvcmQgKGNvdW50LCBrZXkpCiAgICAgIGludCBjb3VudCwga2V5OwpAQCAtNDM1LDY4ICs0NDIsODAgQEAKIAogICAgICAgLyogSWYgd2UgYXJlIG5vdCBpbiBhIHdvcmQsIG1vdmUgZm9yd2FyZCB1bnRpbCB3ZSBhcmUgaW4gb25lLgogCSBUaGVuLCBtb3ZlIGZvcndhcmQgdW50aWwgd2UgaGl0IGEgbm9uLWFscGhhYmV0aWMgY2hhcmFjdGVyLiAqLwotICAgICAgYyA9IHJsX2xpbmVfYnVmZmVyW3JsX3BvaW50XTsKLSAgICAgIGlmIChybF9hbHBoYWJldGljIChjKSA9PSAwKQorICAgICAgYyA9IF9ybF9jaGFyX3ZhbHVlIChybF9saW5lX2J1ZmZlciwgcmxfcG9pbnQpOworCisgICAgICBpZiAoX3JsX3dhbHBoYWJldGljIChjKSA9PSAwKQogCXsKLQkgIHdoaWxlICgrK3JsX3BvaW50IDwgcmxfZW5kKQorCSAgcmxfcG9pbnQgPSBNQl9ORVhUQ0hBUiAocmxfbGluZV9idWZmZXIsIHJsX3BvaW50LCAxLCBNQl9GSU5EX05PTlpFUk8pOworCSAgd2hpbGUgKHJsX3BvaW50IDwgcmxfZW5kKQogCSAgICB7Ci0JICAgICAgYyA9IHJsX2xpbmVfYnVmZmVyW3JsX3BvaW50XTsKLQkgICAgICBpZiAocmxfYWxwaGFiZXRpYyAoYykpCisJICAgICAgYyA9IF9ybF9jaGFyX3ZhbHVlIChybF9saW5lX2J1ZmZlciwgcmxfcG9pbnQpOworCSAgICAgIGlmIChfcmxfd2FscGhhYmV0aWMgKGMpKQogCQlicmVhazsKKwkgICAgICBybF9wb2ludCA9IE1CX05FWFRDSEFSIChybF9saW5lX2J1ZmZlciwgcmxfcG9pbnQsIDEsIE1CX0ZJTkRfTk9OWkVSTyk7CiAJICAgIH0KIAl9CiAKICAgICAgIGlmIChybF9wb2ludCA9PSBybF9lbmQpCiAJcmV0dXJuIDA7CiAKLSAgICAgIHdoaWxlICgrK3JsX3BvaW50IDwgcmxfZW5kKQorICAgICAgcmxfcG9pbnQgPSBNQl9ORVhUQ0hBUiAocmxfbGluZV9idWZmZXIsIHJsX3BvaW50LCAxLCBNQl9GSU5EX05PTlpFUk8pOworICAgICAgd2hpbGUgKHJsX3BvaW50IDwgcmxfZW5kKQogCXsKLQkgIGMgPSBybF9saW5lX2J1ZmZlcltybF9wb2ludF07Ci0JICBpZiAocmxfYWxwaGFiZXRpYyAoYykgPT0gMCkKKwkgIGMgPSBfcmxfY2hhcl92YWx1ZSAocmxfbGluZV9idWZmZXIsIHJsX3BvaW50KTsKKwkgIGlmIChfcmxfd2FscGhhYmV0aWMgKGMpID09IDApCiAJICAgIGJyZWFrOworCSAgcmxfcG9pbnQgPSBNQl9ORVhUQ0hBUiAocmxfbGluZV9idWZmZXIsIHJsX3BvaW50LCAxLCBNQl9GSU5EX05PTlpFUk8pOwogCX0KKwogICAgICAgLS1jb3VudDsKICAgICB9CiAKICAgcmV0dXJuIDA7CiB9CiAKLS8qIE1vdmUgYmFja3dhcmQgYSB3b3JkLiAgV2UgZG8gd2hhdCBFbWFjcyBkb2VzLiAqLworLyogTW92ZSBiYWNrd2FyZCBhIHdvcmQuICBXZSBkbyB3aGF0IEVtYWNzIGRvZXMuICBIYW5kbGVzIG11bHRpYnl0ZSBjaGFycy4gKi8KIGludAogcmxfYmFja3dhcmRfd29yZCAoY291bnQsIGtleSkKICAgICAgaW50IGNvdW50LCBrZXk7CiB7Ci0gIGludCBjOworICBpbnQgYywgcDsKIAogICBpZiAoY291bnQgPCAwKQogICAgIHJldHVybiAocmxfZm9yd2FyZF93b3JkICgtY291bnQsIGtleSkpOwogCiAgIHdoaWxlIChjb3VudCkKICAgICB7Ci0gICAgICBpZiAoIXJsX3BvaW50KQorICAgICAgaWYgKHJsX3BvaW50ID09IDApCiAJcmV0dXJuIDA7CiAKICAgICAgIC8qIExpa2UgcmxfZm9yd2FyZF93b3JkICgpLCBleGNlcHQgdGhhdCB3ZSBsb29rIGF0IHRoZSBjaGFyYWN0ZXJzCiAJIGp1c3QgYmVmb3JlIHBvaW50LiAqLwogCi0gICAgICBjID0gcmxfbGluZV9idWZmZXJbcmxfcG9pbnQgLSAxXTsKLSAgICAgIGlmIChybF9hbHBoYWJldGljIChjKSA9PSAwKQorICAgICAgcCA9IE1CX1BSRVZDSEFSIChybF9saW5lX2J1ZmZlciwgcmxfcG9pbnQsIE1CX0ZJTkRfTk9OWkVSTyk7CisgICAgICBjID0gX3JsX2NoYXJfdmFsdWUgKHJsX2xpbmVfYnVmZmVyLCBwKTsKKworICAgICAgaWYgKF9ybF93YWxwaGFiZXRpYyAoYykgPT0gMCkKIAl7Ci0JICB3aGlsZSAoLS1ybF9wb2ludCkKKwkgIHJsX3BvaW50ID0gcDsKKwkgIHdoaWxlIChybF9wb2ludCA+IDApCiAJICAgIHsKLQkgICAgICBjID0gcmxfbGluZV9idWZmZXJbcmxfcG9pbnQgLSAxXTsKLQkgICAgICBpZiAocmxfYWxwaGFiZXRpYyAoYykpCisJICAgICAgcCA9IE1CX1BSRVZDSEFSIChybF9saW5lX2J1ZmZlciwgcmxfcG9pbnQsIE1CX0ZJTkRfTk9OWkVSTyk7CisJICAgICAgYyA9IF9ybF9jaGFyX3ZhbHVlIChybF9saW5lX2J1ZmZlciwgcCk7CisJICAgICAgaWYgKF9ybF93YWxwaGFiZXRpYyAoYykpCiAJCWJyZWFrOworCSAgICAgIHJsX3BvaW50ID0gcDsKIAkgICAgfQogCX0KIAogICAgICAgd2hpbGUgKHJsX3BvaW50KQogCXsKLQkgIGMgPSBybF9saW5lX2J1ZmZlcltybF9wb2ludCAtIDFdOwotCSAgaWYgKHJsX2FscGhhYmV0aWMgKGMpID09IDApCisJICBwID0gTUJfUFJFVkNIQVIgKHJsX2xpbmVfYnVmZmVyLCBybF9wb2ludCwgTUJfRklORF9OT05aRVJPKTsKKwkgIGMgPSBfcmxfY2hhcl92YWx1ZSAocmxfbGluZV9idWZmZXIsIHApOwkgIAorCSAgaWYgKF9ybF93YWxwaGFiZXRpYyAoYykgPT0gMCkKIAkgICAgYnJlYWs7CiAJICBlbHNlCi0JICAgIC0tcmxfcG9pbnQ7CisJICAgIHJsX3BvaW50ID0gcDsKIAl9CiAKICAgICAgIC0tY291bnQ7CkBAIC03NTMsMTAgKzc3Miw4IEBACiAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSNpZiBkZWZpbmVkIChIQU5ETEVfTVVMVElCWVRFKQogICBpZiAoTUJfQ1VSX01BWCA9PSAxIHx8IHJsX2J5dGVfb3JpZW50ZWQpCiAgICAgewotI2VuZGlmCiAgICAgICAvKiBXZSBhcmUgaW5zZXJ0aW5nIGEgc2luZ2xlIGNoYXJhY3Rlci4KIAkgSWYgdGhlcmUgaXMgcGVuZGluZyBpbnB1dCwgdGhlbiBtYWtlIGEgc3RyaW5nIG9mIGFsbCBvZiB0aGUKIAkgcGVuZGluZyBjaGFyYWN0ZXJzIHRoYXQgYXJlIGJvdW5kIHRvIHJsX2luc2VydCwgYW5kIGluc2VydApAQCAtNzcyLDggKzc4OSw4IEBACiAJICBzdHJbMF0gPSBjOwogCSAgcmxfaW5zZXJ0X3RleHQgKHN0cik7CiAJfQotI2lmIGRlZmluZWQgKEhBTkRMRV9NVUxUSUJZVEUpCiAgICAgfQorI2lmIGRlZmluZWQgKEhBTkRMRV9NVUxUSUJZVEUpCiAgIGVsc2UKICAgICB7CiAgICAgICBybF9pbnNlcnRfdGV4dCAoaW5jb21pbmcpOwpAQCAtODAxLDEzICs4MTgsMTAgQEAKICAgICBrID0gX3JsX3JlYWRfbWJzdHJpbmcgKGMsIG1ia2V5LCBNQl9MRU5fTUFYKTsKICNlbmRpZgogCisgIHJsX2JlZ2luX3VuZG9fZ3JvdXAgKCk7CisKICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspCiAgICAgewotICAgICAgcmxfYmVnaW5fdW5kb19ncm91cCAoKTsKLQotICAgICAgaWYgKHJsX3BvaW50IDwgcmxfZW5kKQotCXJsX2RlbGV0ZSAoMSwgYyk7Ci0KICNpZiBkZWZpbmVkIChIQU5ETEVfTVVMVElCWVRFKQogICAgICAgaWYgKE1CX0NVUl9NQVggPiAxICYmIHJsX2J5dGVfb3JpZW50ZWQgPT0gMCkKIAlybF9pbnNlcnRfdGV4dCAobWJrZXkpOwpAQCAtODE1LDkgKzgyOSwxMiBAQAogI2VuZGlmCiAJX3JsX2luc2VydF9jaGFyICgxLCBjKTsKIAotICAgICAgcmxfZW5kX3VuZG9fZ3JvdXAgKCk7CisgICAgICBpZiAocmxfcG9pbnQgPCBybF9lbmQpCisJcmxfZGVsZXRlICgxLCBjKTsKICAgICB9CiAKKyAgcmxfZW5kX3VuZG9fZ3JvdXAgKCk7CisKICAgcmV0dXJuIDA7CiB9CiAKQEAgLTgzMCwyNyArODQ3LDYzIEBACiB9CiAKIC8qIEluc2VydCB0aGUgbmV4dCB0eXBlZCBjaGFyYWN0ZXIgdmVyYmF0aW0uICovCi1pbnQKLXJsX3F1b3RlZF9pbnNlcnQgKGNvdW50LCBrZXkpCi0gICAgIGludCBjb3VudCwga2V5Oworc3RhdGljIGludAorX3JsX2luc2VydF9uZXh0IChjb3VudCkKKyAgICAgaW50IGNvdW50OwogewogICBpbnQgYzsKIAotI2lmIGRlZmluZWQgKEhBTkRMRV9TSUdOQUxTKQotICBfcmxfZGlzYWJsZV90dHlfc2lnbmFscyAoKTsKLSNlbmRpZgotCiAgIFJMX1NFVFNUQVRFKFJMX1NUQVRFX01PUkVJTlBVVCk7CiAgIGMgPSBybF9yZWFkX2tleSAoKTsKICAgUkxfVU5TRVRTVEFURShSTF9TVEFURV9NT1JFSU5QVVQpOwogCiAjaWYgZGVmaW5lZCAoSEFORExFX1NJR05BTFMpCi0gIF9ybF9yZXN0b3JlX3R0eV9zaWduYWxzICgpOworICBpZiAoUkxfSVNTVEFURSAoUkxfU1RBVEVfQ0FMTEJBQ0spID09IDApCisgICAgX3JsX3Jlc3RvcmVfdHR5X3NpZ25hbHMgKCk7CiAjZW5kaWYKIAogICByZXR1cm4gKF9ybF9pbnNlcnRfY2hhciAoY291bnQsIGMpKTsgIAogfQogCisjaWYgZGVmaW5lZCAoUkVBRExJTkVfQ0FMTEJBQ0tTKQorc3RhdGljIGludAorX3JsX2luc2VydF9uZXh0X2NhbGxiYWNrIChkYXRhKQorICAgICBfcmxfY2FsbGJhY2tfZ2VuZXJpY19hcmcgKmRhdGE7Cit7CisgIGludCBjb3VudDsKKworICBjb3VudCA9IGRhdGEtPmNvdW50OworCisgIC8qIERlcmVnaXN0ZXIgZnVuY3Rpb24sIGxldCBybF9jYWxsYmFja19yZWFkX2NoYXIgZGVhbGxvY2F0ZSBkYXRhICovCisgIF9ybF9jYWxsYmFja19mdW5jID0gMDsKKyAgX3JsX3dhbnRfcmVkaXNwbGF5ID0gMTsKKyAKKyAgcmV0dXJuIF9ybF9pbnNlcnRfbmV4dCAoY291bnQpOworfQorI2VuZGlmCisgIAoraW50CitybF9xdW90ZWRfaW5zZXJ0IChjb3VudCwga2V5KQorICAgICBpbnQgY291bnQsIGtleTsKK3sKKyAgLyogTGV0J3Mgc2VlLi4uc2hvdWxkIHRoZSBjYWxsYmFjayBpbnRlcmZhY2UgZnV0eiB3aXRoIHNpZ25hbCBoYW5kbGluZz8gKi8KKyNpZiBkZWZpbmVkIChIQU5ETEVfU0lHTkFMUykKKyAgaWYgKFJMX0lTU1RBVEUgKFJMX1NUQVRFX0NBTExCQUNLKSA9PSAwKQorICAgIF9ybF9kaXNhYmxlX3R0eV9zaWduYWxzICgpOworI2VuZGlmCisKKyNpZiBkZWZpbmVkIChSRUFETElORV9DQUxMQkFDS1MpCisgIGlmIChSTF9JU1NUQVRFIChSTF9TVEFURV9DQUxMQkFDSykpCisgICAgeworICAgICAgX3JsX2NhbGxiYWNrX2RhdGEgPSBfcmxfY2FsbGJhY2tfZGF0YV9hbGxvYyAoY291bnQpOworICAgICAgX3JsX2NhbGxiYWNrX2Z1bmMgPSBfcmxfaW5zZXJ0X25leHRfY2FsbGJhY2s7CisgICAgICByZXR1cm4gKDApOworICAgIH0KKyNlbmRpZgorICAgICAgCisgIHJldHVybiBfcmxfaW5zZXJ0X25leHQgKGNvdW50KTsKK30KKwogLyogSW5zZXJ0IGEgdGFiIGNoYXJhY3Rlci4gKi8KIGludAogcmxfdGFiX2luc2VydCAoY291bnQsIGtleSkKQEAgLTg3Nyw3ICs5MzAsOCBAQAogICBpZiAocmxfZWRpdGluZ19tb2RlID09IHZpX21vZGUpCiAgICAgewogICAgICAgX3JsX3ZpX2RvbmVfaW5zZXJ0aW5nICgpOwotICAgICAgX3JsX3ZpX3Jlc2V0X2xhc3QgKCk7CisgICAgICBpZiAoX3JsX3ZpX3RleHRtb2RfY29tbWFuZCAoX3JsX3ZpX2xhc3RfY29tbWFuZCkgPT0gMCkJLyogWFhYICovCisJX3JsX3ZpX3Jlc2V0X2xhc3QgKCk7CiAgICAgfQogI2VuZGlmIC8qIFZJX01PREUgKi8KIApAQCAtOTM1LDkgKzk4OSwxMiBAQAogICAgIHJsX2RlbGV0ZV90ZXh0IChvcG9pbnQsIHJsX3BvaW50KTsKIAogICAvKiBFbWFjcyBwdXRzIHBvaW50IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNlcXVlbmNlIG9mIHNwYWNlcy4gKi8KLSAgb3BvaW50ID0gcmxfcG9pbnQ7Ci0gIF9ybF9pbnNlcnRfY2hhciAobCwgJyAnKTsKLSAgcmxfcG9pbnQgPSBvcG9pbnQ7CisgIGlmIChybF9wb2ludCA8IHJsX2VuZCkKKyAgICB7CisgICAgICBvcG9pbnQgPSBybF9wb2ludDsKKyAgICAgIF9ybF9pbnNlcnRfY2hhciAobCwgJyAnKTsKKyAgICAgIHJsX3BvaW50ID0gb3BvaW50OworICAgIH0KIAogICBybF9lbmRfdW5kb19ncm91cCAoKTsKIApAQCAtOTgxLDQzICsxMDM4LDE3IEBACiAgICAgICByZXR1cm4gLTE7CiAgICAgfQogCisgIG9yaWdfcG9pbnQgPSBybF9wb2ludDsKICAgaWYgKGNvdW50ID4gMSB8fCBybF9leHBsaWNpdF9hcmcpCiAgICAgewotICAgICAgb3JpZ19wb2ludCA9IHJsX3BvaW50OwotI2lmIGRlZmluZWQgKEhBTkRMRV9NVUxUSUJZVEUpCi0gICAgICBpZiAoTUJfQ1VSX01BWCA+IDEgJiYgcmxfYnl0ZV9vcmllbnRlZCA9PSAwKQotCXJsX2JhY2t3YXJkX2NoYXIgKGNvdW50LCBrZXkpOwotICAgICAgZWxzZQotI2VuZGlmCi0gICAgICAgIHJsX2JhY2t3YXJkX2J5dGUgKGNvdW50LCBrZXkpOworICAgICAgcmxfYmFja3dhcmRfY2hhciAoY291bnQsIGtleSk7CiAgICAgICBybF9raWxsX3RleHQgKG9yaWdfcG9pbnQsIHJsX3BvaW50KTsKICAgICB9Ci0gIGVsc2UKKyAgZWxzZSBpZiAoTUJfQ1VSX01BWCA9PSAxIHx8IHJsX2J5dGVfb3JpZW50ZWQpCiAgICAgewotI2lmIGRlZmluZWQgKEhBTkRMRV9NVUxUSUJZVEUpCi0gICAgICBpZiAoTUJfQ1VSX01BWCA9PSAxIHx8IHJsX2J5dGVfb3JpZW50ZWQpCi0JewotI2VuZGlmCi0JICBjID0gcmxfbGluZV9idWZmZXJbLS1ybF9wb2ludF07Ci0JICBybF9kZWxldGVfdGV4dCAocmxfcG9pbnQsIHJsX3BvaW50ICsgMSk7Ci0jaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKLQl9Ci0gICAgICBlbHNlCi0JewotCSAgaW50IG9yaWdfcG9pbnQ7Ci0KLQkgIG9yaWdfcG9pbnQgPSBybF9wb2ludDsKLQkgIHJsX3BvaW50ID0gX3JsX2ZpbmRfcHJldl9tYmNoYXIgKHJsX2xpbmVfYnVmZmVyLCBybF9wb2ludCwgTUJfRklORF9OT05aRVJPKTsKLQkgIGMgPSBybF9saW5lX2J1ZmZlcltybF9wb2ludF07Ci0JICBybF9kZWxldGVfdGV4dCAocmxfcG9pbnQsIG9yaWdfcG9pbnQpOwotCX0KLSNlbmRpZiAvKiBIQU5ETEVfTVVMVElCWVRFICovCi0KLSAgICAgIC8qIEkgZG9uJ3QgdGhpbmsgdGhhdCB0aGUgaGFjayBmb3IgZW5kIG9mIGxpbmUgaXMgbmVlZGVkIGZvcgotCSBtdWx0aWJ5dGUgY2hhcnMuICovCi0jaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKLSAgICAgIGlmIChNQl9DVVJfTUFYID09IDEgfHwgcmxfYnl0ZV9vcmllbnRlZCkKLSNlbmRpZgorICAgICAgYyA9IHJsX2xpbmVfYnVmZmVyWy0tcmxfcG9pbnRdOworICAgICAgcmxfZGVsZXRlX3RleHQgKHJsX3BvaW50LCBvcmlnX3BvaW50KTsKKyAgICAgIC8qIFRoZSBlcmFzZS1hdC1lbmQtb2YtbGluZSBoYWNrIGlzIG9mIHF1ZXN0aW9uYWJsZSBtZXJpdCBub3cuICovCiAgICAgICBpZiAocmxfcG9pbnQgPT0gcmxfZW5kICYmIElTUFJJTlQgKGMpICYmIF9ybF9sYXN0X2NfcG9zKQogCXsKIAkgIGludCBsOwpAQCAtMTAyNSw2ICsxMDU2LDExIEBACiAJICBfcmxfZXJhc2VfYXRfZW5kX29mX2xpbmUgKGwpOwogCX0KICAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICBybF9wb2ludCA9IF9ybF9maW5kX3ByZXZfbWJjaGFyIChybF9saW5lX2J1ZmZlciwgcmxfcG9pbnQsIE1CX0ZJTkRfTk9OWkVSTyk7CisgICAgICBybF9kZWxldGVfdGV4dCAocmxfcG9pbnQsIG9yaWdfcG9pbnQpOworICAgIH0KIAogICByZXR1cm4gMDsKIH0KQEAgLTEwNDksMTEgKzEwODUsOSBAQAogICBpZiAoY291bnQgPiAxIHx8IHJsX2V4cGxpY2l0X2FyZykKICAgICB7CiAgICAgICBpbnQgb3JpZ19wb2ludCA9IHJsX3BvaW50OwotI2lmIGRlZmluZWQgKEhBTkRMRV9NVUxUSUJZVEUpCiAgICAgICBpZiAoTUJfQ1VSX01BWCA+IDEgJiYgcmxfYnl0ZV9vcmllbnRlZCA9PSAwKQogCXJsX2ZvcndhcmRfY2hhciAoY291bnQsIGtleSk7CiAgICAgICBlbHNlCi0jZW5kaWYKIAlybF9mb3J3YXJkX2J5dGUgKGNvdW50LCBrZXkpOwogCiAgICAgICByID0gcmxfa2lsbF90ZXh0IChvcmlnX3BvaW50LCBybF9wb2ludCk7CkBAIC0xMDYzLDExICsxMDk3LDggQEAKICAgZWxzZQogICAgIHsKICAgICAgIGludCBuZXdfcG9pbnQ7Ci0gICAgICBpZiAoTUJfQ1VSX01BWCA+IDEgJiYgcmxfYnl0ZV9vcmllbnRlZCA9PSAwKQotCW5ld19wb2ludCA9IF9ybF9maW5kX25leHRfbWJjaGFyIChybF9saW5lX2J1ZmZlciwgcmxfcG9pbnQsIDEsIE1CX0ZJTkRfTk9OWkVSTyk7Ci0gICAgICBlbHNlCi0JbmV3X3BvaW50ID0gcmxfcG9pbnQgKyAxOwotCQorCisgICAgICBuZXdfcG9pbnQgPSBNQl9ORVhUQ0hBUiAocmxfbGluZV9idWZmZXIsIHJsX3BvaW50LCAxLCBNQl9GSU5EX05PTlpFUk8pOwogICAgICAgcmV0dXJuIChybF9kZWxldGVfdGV4dCAocmxfcG9pbnQsIG5ld19wb2ludCkpOwogICAgIH0KIH0KQEAgLTExMDYsNiArMTEzNywxMCBAQAogICAgICAgcmxfZGVsZXRlX3RleHQgKHN0YXJ0LCBybF9wb2ludCk7CiAgICAgICBybF9wb2ludCA9IHN0YXJ0OwogICAgIH0KKworICBpZiAocmxfcG9pbnQgPCAwKQorICAgIHJsX3BvaW50ID0gMDsKKwogICByZXR1cm4gMDsKIH0KIApAQCAtMTE5OSw0MiArMTIzNCw4MCBAQAogcmxfY2hhbmdlX2Nhc2UgKGNvdW50LCBvcCkKICAgICAgaW50IGNvdW50LCBvcDsKIHsKLSAgcmVnaXN0ZXIgaW50IHN0YXJ0LCBlbmQ7Ci0gIGludCBpbndvcmQsIGM7CisgIGludCBzdGFydCwgbmV4dCwgZW5kOworICBpbnQgaW53b3JkLCBjLCBuYywgbm9wOworI2lmIGRlZmluZWQgKEhBTkRMRV9NVUxUSUJZVEUpCisgIHdjaGFyX3Qgd2MsIG53YzsKKyAgY2hhciBtYltNQl9MRU5fTUFYKzFdOworICBpbnQgbWJsZW4sIHA7CisgIG1ic3RhdGVfdCBwczsKKyNlbmRpZgogCiAgIHN0YXJ0ID0gcmxfcG9pbnQ7CiAgIHJsX2ZvcndhcmRfd29yZCAoY291bnQsIDApOwogICBlbmQgPSBybF9wb2ludDsKIAorICBpZiAob3AgIT0gVXBDYXNlICYmIG9wICE9IERvd25DYXNlICYmIG9wICE9IENhcENhc2UpCisgICAgeworICAgICAgcmxfZGluZyAoKTsKKyAgICAgIHJldHVybiAtMTsKKyAgICB9CisKICAgaWYgKGNvdW50IDwgMCkKICAgICBTV0FQIChzdGFydCwgZW5kKTsKIAorI2lmIGRlZmluZWQgKEhBTkRMRV9NVUxUSUJZVEUpCisgIG1lbXNldCAoJnBzLCAwLCBzaXplb2YgKG1ic3RhdGVfdCkpOworI2VuZGlmCisKICAgLyogV2UgYXJlIGdvaW5nIHRvIG1vZGlmeSBzb21lIHRleHQsIHNvIGxldCdzIHByZXBhcmUgdG8gdW5kbyBpdC4gKi8KICAgcmxfbW9kaWZ5aW5nIChzdGFydCwgZW5kKTsKIAotICBmb3IgKGlud29yZCA9IDA7IHN0YXJ0IDwgZW5kOyBzdGFydCsrKQorICBpbndvcmQgPSAwOworICB3aGlsZSAoc3RhcnQgPCBlbmQpCiAgICAgewotICAgICAgYyA9IHJsX2xpbmVfYnVmZmVyW3N0YXJ0XTsKLSAgICAgIHN3aXRjaCAob3ApCisgICAgICBjID0gX3JsX2NoYXJfdmFsdWUgKHJsX2xpbmVfYnVmZmVyLCBzdGFydCk7CisgICAgICAvKiAgVGhpcyBhc3N1bWVzIHRoYXQgdGhlIHVwcGVyIGFuZCBsb3dlciBjYXNlIHZlcnNpb25zIGFyZSB0aGUgc2FtZSB3aWR0aC4gKi8KKyAgICAgIG5leHQgPSBNQl9ORVhUQ0hBUiAocmxfbGluZV9idWZmZXIsIHN0YXJ0LCAxLCBNQl9GSU5EX05PTlpFUk8pOworCisgICAgICBpZiAoX3JsX3dhbHBoYWJldGljIChjKSA9PSAwKQogCXsKLQljYXNlIFVwQ2FzZToKLQkgIHJsX2xpbmVfYnVmZmVyW3N0YXJ0XSA9IF9ybF90b191cHBlciAoYyk7Ci0JICBicmVhazsKLQotCWNhc2UgRG93bkNhc2U6Ci0JICBybF9saW5lX2J1ZmZlcltzdGFydF0gPSBfcmxfdG9fbG93ZXIgKGMpOwotCSAgYnJlYWs7Ci0KLQljYXNlIENhcENhc2U6Ci0JICBybF9saW5lX2J1ZmZlcltzdGFydF0gPSAoaW53b3JkID09IDApID8gX3JsX3RvX3VwcGVyIChjKSA6IF9ybF90b19sb3dlciAoYyk7Ci0JICBpbndvcmQgPSBybF9hbHBoYWJldGljIChybF9saW5lX2J1ZmZlcltzdGFydF0pOwotCSAgYnJlYWs7Ci0KLQlkZWZhdWx0OgotCSAgcmxfZGluZyAoKTsKLQkgIHJldHVybiAtMTsKKwkgIGlud29yZCA9IDA7CisJICBzdGFydCA9IG5leHQ7CisJICBjb250aW51ZTsKIAl9CisKKyAgICAgIGlmIChvcCA9PSBDYXBDYXNlKQorCXsKKwkgIG5vcCA9IGlud29yZCA/IERvd25DYXNlIDogVXBDYXNlOworCSAgaW53b3JkID0gMTsKKwl9CisgICAgICBlbHNlCisJbm9wID0gb3A7CisgICAgICBpZiAoTUJfQ1VSX01BWCA9PSAxIHx8IHJsX2J5dGVfb3JpZW50ZWQgfHwgaXNhc2NpaSAoYykpCisJeworCSAgbmMgPSAobm9wID09IFVwQ2FzZSkgPyBfcmxfdG9fdXBwZXIgKGMpIDogX3JsX3RvX2xvd2VyIChjKTsKKwkgIHJsX2xpbmVfYnVmZmVyW3N0YXJ0XSA9IG5jOworCX0KKyNpZiBkZWZpbmVkIChIQU5ETEVfTVVMVElCWVRFKQorICAgICAgZWxzZQorCXsKKwkgIG1icnRvd2MgKCZ3YywgcmxfbGluZV9idWZmZXIgKyBzdGFydCwgZW5kIC0gc3RhcnQsICZwcyk7CisJICBud2MgPSAobm9wID09IFVwQ2FzZSkgPyBfcmxfdG9fd3VwcGVyICh3YykgOiBfcmxfdG9fd2xvd2VyICh3Yyk7CisJICBpZiAgKG53YyAhPSB3YykJLyogIGp1c3Qgc2tpcCB1bmNoYW5nZWQgY2hhcmFjdGVycyAqLworCSAgICB7CisJICAgICAgbWJsZW4gPSB3Y3J0b21iIChtYiwgbndjLCAmcHMpOworCSAgICAgIGlmIChtYmxlbiA+IDApCisJCW1iW21ibGVuXSA9ICdcMCc7CisJICAgICAgLyogQXNzdW1lIHRoZSBzYW1lIHdpZHRoICovCisJICAgICAgc3RybmNweSAocmxfbGluZV9idWZmZXIgKyBzdGFydCwgbWIsIG1ibGVuKTsKKwkgICAgfQorCX0KKyNlbmRpZgorCisgICAgICBzdGFydCA9IG5leHQ7CiAgICAgfQorCiAgIHJsX3BvaW50ID0gZW5kOwogICByZXR1cm4gMDsKIH0KQEAgLTEzMTQsMTEgKzEzODcsMTEgQEAKIHsKICNpZiBkZWZpbmVkIChIQU5ETEVfTVVMVElCWVRFKQogICBjaGFyICpkdW1teTsKLSAgaW50IGksIHByZXZfcG9pbnQ7CisgIGludCBpOwogI2Vsc2UKICAgY2hhciBkdW1teVsyXTsKICNlbmRpZgotICBpbnQgY2hhcl9sZW5ndGg7CisgIGludCBjaGFyX2xlbmd0aCwgcHJldl9wb2ludDsKIAogICBpZiAoY291bnQgPT0gMCkKICAgICByZXR1cm4gMDsKQEAgLTEzMzMsMjAgKzE0MDYsMTIgQEAKIAogICBpZiAocmxfcG9pbnQgPT0gcmxfZW5kKQogICAgIHsKLSAgICAgIGlmIChNQl9DVVJfTUFYID4gMSAmJiBybF9ieXRlX29yaWVudGVkID09IDApCi0JcmxfcG9pbnQgPSBfcmxfZmluZF9wcmV2X21iY2hhciAocmxfbGluZV9idWZmZXIsIHJsX3BvaW50LCBNQl9GSU5EX05PTlpFUk8pOwotICAgICAgZWxzZQotCS0tcmxfcG9pbnQ7CisgICAgICBybF9wb2ludCA9IE1CX1BSRVZDSEFSIChybF9saW5lX2J1ZmZlciwgcmxfcG9pbnQsIE1CX0ZJTkRfTk9OWkVSTyk7CiAgICAgICBjb3VudCA9IDE7CiAgICAgfQogCi0jaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKICAgcHJldl9wb2ludCA9IHJsX3BvaW50OwotICBpZiAoTUJfQ1VSX01BWCA+IDEgJiYgcmxfYnl0ZV9vcmllbnRlZCA9PSAwKQotICAgIHJsX3BvaW50ID0gX3JsX2ZpbmRfcHJldl9tYmNoYXIgKHJsX2xpbmVfYnVmZmVyLCBybF9wb2ludCwgTUJfRklORF9OT05aRVJPKTsKLSAgZWxzZQotI2VuZGlmCi0gICAgcmxfcG9pbnQtLTsKKyAgcmxfcG9pbnQgPSBNQl9QUkVWQ0hBUiAocmxfbGluZV9idWZmZXIsIHJsX3BvaW50LCBNQl9GSU5EX05PTlpFUk8pOwogCiAjaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKICAgY2hhcl9sZW5ndGggPSBwcmV2X3BvaW50IC0gcmxfcG9pbnQ7CkBAIC0xNDgwLDEwICsxNTQ1LDMzIEBACiB9CiAjZW5kaWYgLyogIUhBTkRMRV9NVUxUSUJZVEUgKi8KIAorI2lmIGRlZmluZWQgKFJFQURMSU5FX0NBTExCQUNLUykKK3N0YXRpYyBpbnQKK19ybF9jaGFyX3NlYXJjaF9jYWxsYmFjayAoZGF0YSkKKyAgICAgX3JsX2NhbGxiYWNrX2dlbmVyaWNfYXJnICpkYXRhOworeworICBfcmxfY2FsbGJhY2tfZnVuYyA9IDA7CisgIF9ybF93YW50X3JlZGlzcGxheSA9IDE7CisKKyAgcmV0dXJuIChfcmxfY2hhcl9zZWFyY2ggKGRhdGEtPmNvdW50LCBkYXRhLT5pMSwgZGF0YS0+aTIpKTsKK30KKyNlbmRpZgorCiBpbnQKIHJsX2NoYXJfc2VhcmNoIChjb3VudCwga2V5KQogICAgICBpbnQgY291bnQsIGtleTsKIHsKKyNpZiBkZWZpbmVkIChSRUFETElORV9DQUxMQkFDS1MpCisgIGlmIChSTF9JU1NUQVRFIChSTF9TVEFURV9DQUxMQkFDSykpCisgICAgeworICAgICAgX3JsX2NhbGxiYWNrX2RhdGEgPSBfcmxfY2FsbGJhY2tfZGF0YV9hbGxvYyAoY291bnQpOworICAgICAgX3JsX2NhbGxiYWNrX2RhdGEtPmkxID0gRkZJTkQ7CisgICAgICBfcmxfY2FsbGJhY2tfZGF0YS0+aTIgPSBCRklORDsKKyAgICAgIF9ybF9jYWxsYmFja19mdW5jID0gX3JsX2NoYXJfc2VhcmNoX2NhbGxiYWNrOworICAgICAgcmV0dXJuICgwKTsKKyAgICB9CisjZW5kaWYKKyAgCiAgIHJldHVybiAoX3JsX2NoYXJfc2VhcmNoIChjb3VudCwgRkZJTkQsIEJGSU5EKSk7CiB9CiAKQEAgLTE0OTEsNiArMTU3OSwxNyBAQAogcmxfYmFja3dhcmRfY2hhcl9zZWFyY2ggKGNvdW50LCBrZXkpCiAgICAgIGludCBjb3VudCwga2V5OwogeworI2lmIGRlZmluZWQgKFJFQURMSU5FX0NBTExCQUNLUykKKyAgaWYgKFJMX0lTU1RBVEUgKFJMX1NUQVRFX0NBTExCQUNLKSkKKyAgICB7CisgICAgICBfcmxfY2FsbGJhY2tfZGF0YSA9IF9ybF9jYWxsYmFja19kYXRhX2FsbG9jIChjb3VudCk7CisgICAgICBfcmxfY2FsbGJhY2tfZGF0YS0+aTEgPSBCRklORDsKKyAgICAgIF9ybF9jYWxsYmFja19kYXRhLT5pMiA9IEZGSU5EOworICAgICAgX3JsX2NhbGxiYWNrX2Z1bmMgPSBfcmxfY2hhcl9zZWFyY2hfY2FsbGJhY2s7CisgICAgICByZXR1cm4gKDApOworICAgIH0KKyNlbmRpZgorCiAgIHJldHVybiAoX3JsX2NoYXJfc2VhcmNoIChjb3VudCwgQkZJTkQsIEZGSU5EKSk7CiB9CiAKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL3RpbGRlLmMgYi9yZWFkbGluZS90aWxkZS5jCmluZGV4IDE1NGY3ZjguLmQ3NTdmN2EgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL3RpbGRlLmMKKysrIGIvcmVhZGxpbmUvdGlsZGUuYwpAQCAtNDMsNyArNDMsOSBAQAogI2VuZGlmIC8qIEhBVkVfU1RETElCX0ggKi8KIAogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2lmIGRlZmluZWQgKEhBVkVfUFdEX0gpCiAjaW5jbHVkZSA8cHdkLmg+CisjZW5kaWYKIAogI2luY2x1ZGUgInRpbGRlLmgiCiAKQEAgLTU0LDggKzU2LDEyIEBACiAjZW5kaWYgLyogVEVTVCB8fCBTVEFUSUNfTUFMTE9DICovCiAKICNpZiAhZGVmaW5lZCAoSEFWRV9HRVRQV19ERUNMUykKKyMgIGlmIGRlZmluZWQgKEhBVkVfR0VUUFdVSUQpCiBleHRlcm4gc3RydWN0IHBhc3N3ZCAqZ2V0cHd1aWQgUEFSQU1TKCh1aWRfdCkpOworIyAgZW5kaWYKKyMgIGlmIGRlZmluZWQgKEhBVkVfR0VUUFdOQU0pCiBleHRlcm4gc3RydWN0IHBhc3N3ZCAqZ2V0cHduYW0gUEFSQU1TKChjb25zdCBjaGFyICopKTsKKyMgIGVuZGlmCiAjZW5kaWYgLyogIUhBVkVfR0VUUFdfREVDTFMgKi8KIAogI2lmICFkZWZpbmVkIChzYXZlc3RyaW5nKQpAQCAtMjc3LDYgKzI4MywzOSBAQAogICByZXR1cm4gcmV0OwogfQogCisjaWYgMAorLyogUHVibGljIGZ1bmN0aW9uIHRvIHNjYW4gYSBzdHJpbmcgKEZOQU1FKSBiZWdpbm5pbmcgd2l0aCBhIHRpbGRlIGFuZCBmaW5kCisgICB0aGUgcG9ydGlvbiBvZiB0aGUgc3RyaW5nIHRoYXQgc2hvdWxkIGJlIHBhc3NlZCB0byB0aGUgdGlsZGUgZXhwYW5zaW9uCisgICBmdW5jdGlvbi4gIFJpZ2h0IG5vdywgaXQganVzdCBjYWxscyB0aWxkZV9maW5kX3N1ZmZpeCBhbmQgYWxsb2NhdGVzIG5ldworICAgbWVtb3J5LCBidXQgaXQgY2FuIGJlIGV4cGFuZGVkIHRvIGRvIGRpZmZlcmVudCB0aGluZ3MgbGF0ZXIuICovCitjaGFyICoKK3RpbGRlX2ZpbmRfd29yZCAoZm5hbWUsIGZsYWdzLCBsZW5wKQorICAgICBjb25zdCBjaGFyICpmbmFtZTsKKyAgICAgaW50IGZsYWdzLCAqbGVucDsKK3sKKyAgaW50IHg7CisgIGNoYXIgKnI7CisKKyAgeCA9IHRpbGRlX2ZpbmRfc3VmZml4IChmbmFtZSk7CisgIGlmICh4ID09IDApCisgICAgeworICAgICAgciA9IHNhdmVzdHJpbmcgKGZuYW1lKTsKKyAgICAgIGlmIChsZW5wKQorCSpsZW5wID0gMDsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICByID0gKGNoYXIgKil4bWFsbG9jICgxICsgeCk7CisgICAgICBzdHJuY3B5IChyLCBmbmFtZSwgeCk7CisgICAgICByW3hdID0gJ1wwJzsKKyAgICAgIGlmIChsZW5wKQorCSpsZW5wID0geDsKKyAgICB9CisKKyAgcmV0dXJuIHI7Cit9CisjZW5kaWYKKwogLyogUmV0dXJuIGEgc3RyaW5nIHRoYXQgaXMgUFJFRklYIGNvbmNhdGVuYXRlZCB3aXRoIFNVRkZJWCBzdGFydGluZyBhdAogICAgU1VGRklORC4gKi8KIHN0YXRpYyBjaGFyICoKQEAgLTM0Nyw3ICszODYsMTEgQEAKICAgLyogTm8gcHJlZXhwYW5zaW9uIGhvb2ssIG9yIHRoZSBwcmVleHBhbnNpb24gaG9vayBmYWlsZWQuICBMb29rIGluIHRoZQogICAgICBwYXNzd29yZCBkYXRhYmFzZS4gKi8KICAgZGlybmFtZSA9IChjaGFyICopTlVMTDsKKyNpZiBkZWZpbmVkIChIQVZFX0dFVFBXTkFNKQogICB1c2VyX2VudHJ5ID0gZ2V0cHduYW0gKHVzZXJuYW1lKTsKKyNlbHNlCisgIHVzZXJfZW50cnkgPSAwOworI2VuZGlmCiAgIGlmICh1c2VyX2VudHJ5ID09IDApCiAgICAgewogICAgICAgLyogSWYgdGhlIGNhbGxpbmcgcHJvZ3JhbSBoYXMgYSBzcGVjaWFsIHN5bnRheCBmb3IgZXhwYW5kaW5nIHRpbGRlcywKQEAgLTM3Miw4ICs0MTUsOSBAQAogICAgICAgZnJlZSAodXNlcm5hbWUpOwogICAgICAgZGlybmFtZSA9IGdsdWVfcHJlZml4X2FuZF9zdWZmaXggKHVzZXJfZW50cnktPnB3X2RpciwgZmlsZW5hbWUsIHVzZXJfbGVuKTsKICAgICB9Ci0KKyNpZiBkZWZpbmVkIChIQVZFX0dFVFBXRU5UKQogICBlbmRwd2VudCAoKTsKKyNlbmRpZgogICByZXR1cm4gKGRpcm5hbWUpOwogfQogCmRpZmYgLS1naXQgYS9yZWFkbGluZS90aWxkZS5oIGIvcmVhZGxpbmUvdGlsZGUuaAppbmRleCBmODE4MmM5Li5jNThjZTIwIDEwMDY0NAotLS0gYS9yZWFkbGluZS90aWxkZS5oCisrKyBiL3JlYWRsaW5lL3RpbGRlLmgKQEAgLTcxLDYgKzcxLDkgQEAKICAgIHRpbGRlLiAgSWYgdGhlcmUgaXMgbm8gZXhwYW5zaW9uLCBjYWxsIHRpbGRlX2V4cGFuc2lvbl9mYWlsdXJlX2hvb2suICovCiBleHRlcm4gY2hhciAqdGlsZGVfZXhwYW5kX3dvcmQgUEFSQU1TKChjb25zdCBjaGFyICopKTsKIAorLyogRmluZCB0aGUgcG9ydGlvbiBvZiB0aGUgc3RyaW5nIGJlZ2lubmluZyB3aXRoIH4gdGhhdCBzaG91bGQgYmUgZXhwYW5kZWQuICovCitleHRlcm4gY2hhciAqdGlsZGVfZmluZF93b3JkIFBBUkFNUygoY29uc3QgY2hhciAqLCBpbnQsIGludCAqKSk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9yZWFkbGluZS91bmRvLmMgYi9yZWFkbGluZS91bmRvLmMKaW5kZXggMjVjMjg3Yi4uZmVkZmExMiAxMDA2NDQKLS0tIGEvcmVhZGxpbmUvdW5kby5jCisrKyBiL3JlYWRsaW5lL3VuZG8uYwpAQCAtMjM3LDcgKzIzNywxMiBAQAogICAgIHsKICAgICAgIHdoaWxlIChybF91bmRvX2xpc3QpCiAJcmxfZG9fdW5kbyAoKTsKKyNpZiBkZWZpbmVkIChWSV9NT0RFKQorICAgICAgaWYgKHJsX2VkaXRpbmdfbW9kZSA9PSB2aV9tb2RlKQorCXJsX3BvaW50ID0gcmxfbWFyayA9IDA7CQkvKiBybF9lbmQgc2hvdWxkIGJlIHNldCBjb3JyZWN0bHkgKi8KKyNlbmRpZgogICAgIH0KKyAgICAKICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL3V0aWwuYyBiL3JlYWRsaW5lL3V0aWwuYwppbmRleCBjN2JkMzYwLi5lNDRlZjY0IDEwMDY0NAotLS0gYS9yZWFkbGluZS91dGlsLmMKKysrIGIvcmVhZGxpbmUvdXRpbC5jCkBAIC0xLDYgKzEsNiBAQAogLyogdXRpbC5jIC0tIHJlYWRsaW5lIHV0aWxpdHkgZnVuY3Rpb25zICovCiAKLS8qIENvcHlyaWdodCAoQykgMTk4NywgMTk4OSwgMTk5MiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKy8qIENvcHlyaWdodCAoQykgMTk4Ny0yMDA1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIFJlYWRsaW5lIExpYnJhcnksIGEgbGlicmFyeSBmb3IKICAgIHJlYWRpbmcgbGluZXMgb2YgdGV4dCB3aXRoIGludGVyYWN0aXZlIGlucHV0IGFuZCBoaXN0b3J5IGVkaXRpbmcuCkBAIC00NCw2ICs0NCw3IEBACiAKIC8qIFN5c3RlbS1zcGVjaWZpYyBmZWF0dXJlIGRlZmluaXRpb25zIGFuZCBpbmNsdWRlIGZpbGVzLiAqLwogI2luY2x1ZGUgInJsZGVmcy5oIgorI2luY2x1ZGUgInJsbWJ1dGlsLmgiCiAKICNpZiBkZWZpbmVkIChUSU9DU1RBVF9JTl9TWVNfSU9DVEwpCiAjICBpbmNsdWRlIDxzeXMvaW9jdGwuaD4KQEAgLTc4LDEzICs3OSwyOSBAQAogCSAgICBzdHJjaHIgKHBhdGhuYW1lX2FscGhhYmV0aWNfY2hhcnMsIGMpICE9IE5VTEwpOwogfQogCisjaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKK2ludAorX3JsX3dhbHBoYWJldGljICh3YykKKyAgICAgd2NoYXJfdCB3YzsKK3sKKyAgaW50IGM7CisKKyAgaWYgKGlzd2FsbnVtICh3YykpCisgICAgcmV0dXJuICgxKTsgICAgIAorCisgIGMgPSB3YyAmIDAxNzc7CisgIHJldHVybiAoX3JsX2FsbG93X3BhdGhuYW1lX2FscGhhYmV0aWNfY2hhcnMgJiYKKwkgICAgc3RyY2hyIChwYXRobmFtZV9hbHBoYWJldGljX2NoYXJzLCBjKSAhPSBOVUxMKTsKK30KKyNlbmRpZgorCiAvKiBIb3cgdG8gYWJvcnQgdGhpbmdzLiAqLwogaW50CiBfcmxfYWJvcnRfaW50ZXJuYWwgKCkKIHsKICAgcmxfZGluZyAoKTsKICAgcmxfY2xlYXJfbWVzc2FnZSAoKTsKLSAgX3JsX2luaXRfYXJndW1lbnQgKCk7CisgIF9ybF9yZXNldF9hcmd1bWVudCAoKTsKICAgcmxfY2xlYXJfcGVuZGluZ19pbnB1dCAoKTsKIAogICBSTF9VTlNFVFNUQVRFIChSTF9TVEFURV9NQUNST0RFRik7CkBAIC0yNTAsNyArMjY3LDcgQEAKIAl7CiAJICB2ID0gX3JsX2dldF9jaGFyX2xlbiAoc3RyaW5nMSwgJnBzKTsKIAkgIGlmICh2ID4gMSkKLQkgICAgc3RyaW5nICs9IHYgLSAxOwkvKiAtMSB0byBhY2NvdW50IGZvciBhdXRvLWluY3JlbWVudCBpbiBsb29wICovCisJICAgIHN0cmluZzEgKz0gdiAtIDE7CS8qIC0xIHRvIGFjY291bnQgZm9yIGF1dG8taW5jcmVtZW50IGluIGxvb3AgKi8KIAl9CiAjZW5kaWYKICAgICB9CmRpZmYgLS1naXQgYS9yZWFkbGluZS92aV9rZXltYXAuYyBiL3JlYWRsaW5lL3ZpX2tleW1hcC5jCmluZGV4IDUzYTY3YzYuLjRiNDhjNzUgMTAwNjQ0Ci0tLSBhL3JlYWRsaW5lL3ZpX2tleW1hcC5jCisrKyBiL3JlYWRsaW5lL3ZpX2tleW1hcC5jCkBAIC0xMzAsNyArMTMwLDcgQEAKICAgeyBJU0ZVTkMsIHJsX3JldmVydF9saW5lIH0sCQkJLyogVSAqLwogICB7IElTRlVOQywgKHJsX2NvbW1hbmRfZnVuY190ICopMHgwIH0sCQkvKiBWICovCiAgIHsgSVNGVU5DLCBybF92aV9uZXh0X3dvcmQgfSwJCQkvKiBXICovCi0gIHsgSVNGVU5DLCBybF9ydWJvdXQgfSwJCQkvKiBYICovCisgIHsgSVNGVU5DLCBybF92aV9ydWJvdXQgfSwJCQkvKiBYICovCiAgIHsgSVNGVU5DLCBybF92aV95YW5rX3RvIH0sCQkJLyogWSAqLwogICB7IElTRlVOQywgKHJsX2NvbW1hbmRfZnVuY190ICopMHgwIH0sCQkvKiBaICovCiAKZGlmZiAtLWdpdCBhL3JlYWRsaW5lL3ZpX21vZGUuYyBiL3JlYWRsaW5lL3ZpX21vZGUuYwppbmRleCA1ZDE0NmIzZi4uYWM1ZmQ3NCAxMDA2NDQKLS0tIGEvcmVhZGxpbmUvdmlfbW9kZS5jCisrKyBiL3JlYWRsaW5lL3ZpX21vZGUuYwpAQCAtMSw3ICsxLDcgQEAKIC8qIHZpX21vZGUuYyAtLSBBIHZpIGVtdWxhdGlvbiBtb2RlIGZvciBCYXNoLgogICAgRGVyaXZlZCBmcm9tIGNvZGUgd3JpdHRlbiBieSBKZWZmIFNwYXJrZXMgKGpzcGFya2VzQGJuci5jYSkuICAqLwogCi0vKiBDb3B5cmlnaHQgKEMpIDE5ODcsIDE5ODksIDE5OTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisvKiBDb3B5cmlnaHQgKEMpIDE5ODctMjAwNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIAogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBSZWFkbGluZSBMaWJyYXJ5LCBhIGxpYnJhcnkgZm9yCiAgICByZWFkaW5nIGxpbmVzIG9mIHRleHQgd2l0aCBpbnRlcmFjdGl2ZSBpbnB1dCBhbmQgaGlzdG9yeSBlZGl0aW5nLgpAQCAtNjMsNiArNjMsOCBAQAogI2RlZmluZSBtZW1iZXIoYywgcykgKChjKSA/IChjaGFyICopc3RyY2hyICgocyksIChjKSkgIT0gKGNoYXIgKilOVUxMIDogMCkKICNlbmRpZgogCitpbnQgX3JsX3ZpX2xhc3RfY29tbWFuZCA9ICdpJzsJLyogZGVmYXVsdCBgLicgcHV0cyB5b3UgaW4gaW5zZXJ0IG1vZGUgKi8KKwogLyogTm9uLXplcm8gbWVhbnMgZW50ZXIgaW5zZXJ0aW9uIG1vZGUuICovCiBzdGF0aWMgaW50IF9ybF92aV9kb2luZ19pbnNlcnQ7CiAKQEAgLTgzLDEyICs4NSwxMiBAQAogc3RhdGljIGNoYXIgKnZpX2luc2VydF9idWZmZXI7CiBzdGF0aWMgaW50IHZpX2luc2VydF9idWZmZXJfc2l6ZTsKIAotc3RhdGljIGludCBfcmxfdmlfbGFzdF9jb21tYW5kID0gJ2knOwkvKiBkZWZhdWx0IGAuJyBwdXRzIHlvdSBpbiBpbnNlcnQgbW9kZSAqLwogc3RhdGljIGludCBfcmxfdmlfbGFzdF9yZXBlYXQgPSAxOwogc3RhdGljIGludCBfcmxfdmlfbGFzdF9hcmdfc2lnbiA9IDE7CiBzdGF0aWMgaW50IF9ybF92aV9sYXN0X21vdGlvbjsKICNpZiBkZWZpbmVkIChIQU5ETEVfTVVMVElCWVRFKQogc3RhdGljIGNoYXIgX3JsX3ZpX2xhc3Rfc2VhcmNoX21iY2hhcltNQl9MRU5fTUFYXTsKK3N0YXRpYyBpbnQgX3JsX3ZpX2xhc3Rfc2VhcmNoX21ibGVuOwogI2Vsc2UKIHN0YXRpYyBpbnQgX3JsX3ZpX2xhc3Rfc2VhcmNoX2NoYXI7CiAjZW5kaWYKQEAgLTEwNiw4ICsxMDgsMjIgQEAKIAogc3RhdGljIHZvaWQgX3JsX3ZpX3N0dWZmX2luc2VydCBQQVJBTVMoKGludCkpOwogc3RhdGljIHZvaWQgX3JsX3ZpX3NhdmVfaW5zZXJ0IFBBUkFNUygoVU5ET19MSVNUICopKTsKKworc3RhdGljIGludCBfcmxfdmlfYXJnX2Rpc3BhdGNoIFBBUkFNUygoaW50KSk7CiBzdGF0aWMgaW50IHJsX2RpZ2l0X2xvb3AxIFBBUkFNUygodm9pZCkpOwogCitzdGF0aWMgaW50IF9ybF92aV9zZXRfbWFyayBQQVJBTVMoKHZvaWQpKTsKK3N0YXRpYyBpbnQgX3JsX3ZpX2dvdG9fbWFyayBQQVJBTVMoKHZvaWQpKTsKKworc3RhdGljIGludCBfcmxfdmlfY2FsbGJhY2tfZ2V0Y2hhciBQQVJBTVMoKGNoYXIgKiwgaW50KSk7CisKKyNpZiBkZWZpbmVkIChSRUFETElORV9DQUxMQkFDS1MpCitzdGF0aWMgaW50IF9ybF92aV9jYWxsYmFja19zZXRfbWFyayBQQVJBTVMoKF9ybF9jYWxsYmFja19nZW5lcmljX2FyZyAqKSk7CitzdGF0aWMgaW50IF9ybF92aV9jYWxsYmFja19nb3RvX21hcmsgUEFSQU1TKChfcmxfY2FsbGJhY2tfZ2VuZXJpY19hcmcgKikpOworc3RhdGljIGludCBfcmxfdmlfY2FsbGJhY2tfY2hhbmdlX2NoYXIgUEFSQU1TKChfcmxfY2FsbGJhY2tfZ2VuZXJpY19hcmcgKikpOworc3RhdGljIGludCBfcmxfdmlfY2FsbGJhY2tfY2hhcl9zZWFyY2ggUEFSQU1TKChfcmxfY2FsbGJhY2tfZ2VuZXJpY19hcmcgKikpOworI2VuZGlmCisKIHZvaWQKIF9ybF92aV9pbml0aWFsaXplX2xpbmUgKCkKIHsKQEAgLTExNSw2ICsxMzEsOCBAQAogCiAgIGZvciAoaSA9IDA7IGkgPCBzaXplb2YgKHZpX21hcmtfY2hhcnMpIC8gc2l6ZW9mIChpbnQpOyBpKyspCiAgICAgdmlfbWFya19jaGFyc1tpXSA9IC0xOworCisgIFJMX1VOU0VUU1RBVEUoUkxfU1RBVEVfVklDTURPTkNFKTsKIH0KIAogdm9pZApAQCAtMTM1LDYgKzE1MywxNiBAQAogICBfcmxfdmlfbGFzdF9hcmdfc2lnbiA9IHNpZ247CiB9CiAKKy8qIEEgY29udmVuaWVuY2UgZnVuY3Rpb24gdGhhdCBjYWxscyBfcmxfdmlfc2V0X2xhc3QgdG8gc2F2ZSB0aGUgbGFzdCBjb21tYW5kCisgICBpbmZvcm1hdGlvbiBhbmQgZW50ZXJzIGluc2VydGlvbiBtb2RlLiAqLwordm9pZAorcmxfdmlfc3RhcnRfaW5zZXJ0aW5nIChrZXksIHJlcGVhdCwgc2lnbikKKyAgICAgaW50IGtleSwgcmVwZWF0LCBzaWduOworeworICBfcmxfdmlfc2V0X2xhc3QgKGtleSwgcmVwZWF0LCBzaWduKTsKKyAgcmxfdmlfaW5zZXJ0aW9uX21vZGUgKDEsIGtleSk7Cit9CisKIC8qIElzIHRoZSBjb21tYW5kIEMgYSBWSSBtb2RlIHRleHQgbW9kaWZpY2F0aW9uIGNvbW1hbmQ/ICovCiBpbnQKIF9ybF92aV90ZXh0bW9kX2NvbW1hbmQgKGMpCkBAIC0yNjEsMTAgKzI4OSwxMiBAQAogICBzd2l0Y2ggKGtleSkKICAgICB7CiAgICAgY2FzZSAnPyc6CisgICAgICBfcmxfZnJlZV9zYXZlZF9oaXN0b3J5X2xpbmUgKCk7CiAgICAgICBybF9ub25pbmNfZm9yd2FyZF9zZWFyY2ggKGNvdW50LCBrZXkpOwogICAgICAgYnJlYWs7CiAKICAgICBjYXNlICcvJzoKKyAgICAgIF9ybF9mcmVlX3NhdmVkX2hpc3RvcnlfbGluZSAoKTsKICAgICAgIHJsX25vbmluY19yZXZlcnNlX3NlYXJjaCAoY291bnQsIGtleSk7CiAgICAgICBicmVhazsKIApAQCAtMjk3LDEwICszMjcsOCBAQAogICAgIHJsX2NvbXBsZXRlICgwLCBrZXkpOwogCiAgIGlmIChrZXkgPT0gJyonIHx8IGtleSA9PSAnXFwnKQotICAgIHsKLSAgICAgIF9ybF92aV9zZXRfbGFzdCAoa2V5LCAxLCBybF9hcmdfc2lnbik7Ci0gICAgICBybF92aV9pbnNlcnRpb25fbW9kZSAoMSwga2V5KTsKLSAgICB9CisgICAgcmxfdmlfc3RhcnRfaW5zZXJ0aW5nIChrZXksIDEsIHJsX2FyZ19zaWduKTsKKwogICByZXR1cm4gKDApOwogfQogCkBAIC0zMTAsOCArMzM4LDcgQEAKICAgICAgaW50IGlnbm9yZSwga2V5OwogewogICBybF90aWxkZV9leHBhbmQgKDAsIGtleSk7Ci0gIF9ybF92aV9zZXRfbGFzdCAoa2V5LCAxLCBybF9hcmdfc2lnbik7CS8qIFhYWCAqLwotICBybF92aV9pbnNlcnRpb25fbW9kZSAoMSwga2V5KTsKKyAgcmxfdmlfc3RhcnRfaW5zZXJ0aW5nIChrZXksIDEsIHJsX2FyZ19zaWduKTsKICAgcmV0dXJuICgwKTsKIH0KIApAQCAtNDI5LDcgKzQ1Niw4IEBACiAKICAgICAgIC8qIE1vdmUgdG8gdGhlIG5leHQgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVyICh0byB0aGUgc3RhcnQgb2YgdGhlCiAJIG5leHQgd29yZCkuICovCi0gICAgICB3aGlsZSAoKytybF9wb2ludCA8IHJsX2VuZCAmJiB3aGl0ZXNwYWNlIChybF9saW5lX2J1ZmZlcltybF9wb2ludF0pKTsKKyAgICAgIHdoaWxlIChybF9wb2ludCA8IHJsX2VuZCAmJiB3aGl0ZXNwYWNlIChybF9saW5lX2J1ZmZlcltybF9wb2ludF0pKQorCXJsX3BvaW50Kys7CiAKICAgICAgIGlmIChybF9wb2ludCAmJiBybF9wb2ludCA8IHJsX2VuZCkKIAl7CkBAIC02NDAsNyArNjY4LDcgQEAKICAgICB9CiAgIGVsc2UKICAgICB7Ci0gICAgICBpZiAoX3JsX3ZpX2xhc3Rfa2V5X2JlZm9yZV9pbnNlcnQgPT0gJ2knICYmIHJsX3VuZG9fbGlzdCkKKyAgICAgIGlmICgoX3JsX3ZpX2xhc3Rfa2V5X2JlZm9yZV9pbnNlcnQgPT0gJ2knIHx8IF9ybF92aV9sYXN0X2tleV9iZWZvcmVfaW5zZXJ0ID09ICdhJykgJiYgcmxfdW5kb19saXN0KQogICAgICAgICBfcmxfdmlfc2F2ZV9pbnNlcnQgKHJsX3VuZG9fbGlzdCk7CiAgICAgICAvKiBYWFggLSBPdGhlciBrZXlzIHByb2JhYmx5IG5lZWQgdG8gYmUgY2hlY2tlZC4gKi8KICAgICAgIGVsc2UgaWYgKF9ybF92aV9sYXN0X2tleV9iZWZvcmVfaW5zZXJ0ID09ICdDJykKQEAgLTY2MCw2ICs2ODgsMTMgQEAKIAogICBfcmxfa2V5bWFwID0gdmlfbW92ZW1lbnRfa2V5bWFwOwogICBfcmxfdmlfZG9uZV9pbnNlcnRpbmcgKCk7CisKKyAgLyogVGhpcyBpcyBob3cgUE9TSVguMiBzYXlzIGBVJyBzaG91bGQgYmVoYXZlIC0tIGV2ZXJ5dGhpbmcgdXAgdW50aWwgdGhlCisgICAgIGZpcnN0IHRpbWUgeW91IGdvIGludG8gY29tbWFuZCBtb2RlIHNob3VsZCBub3QgYmUgdW5kb25lLiAqLworICBpZiAoUkxfSVNTVEFURSAoUkxfU1RBVEVfVklDTURPTkNFKSA9PSAwKQorICAgIHJsX2ZyZWVfdW5kb19saXN0ICgpOworCisgIFJMX1NFVFNUQVRFIChSTF9TVEFURV9WSUNNRE9OQ0UpOwogICByZXR1cm4gKDApOwogfQogCkBAIC02ODAsNyArNzE1LDggQEAKICAgICAgaW50IGNvdW50OwogewogICB3Y2hhcl90IHdjOwotICBjaGFyIG1iW01CX0xFTl9NQVhdOworICBjaGFyIG1iW01CX0xFTl9NQVgrMV07CisgIGludCBtYmxlbiwgcDsKICAgbWJzdGF0ZV90IHBzOwogCiAgIG1lbXNldCAoJnBzLCAwLCBzaXplb2YgKG1ic3RhdGVfdCkpOwpAQCAtNzAzLDkgKzczOSwxNCBAQAogICAgICAgLyogVmkgaXMga2luZCBvZiBzdHJhbmdlIGhlcmUuICovCiAgICAgICBpZiAod2MpCiAJewotCSAgd2N0b21iIChtYiwgd2MpOworCSAgcCA9IHJsX3BvaW50OworCSAgbWJsZW4gPSB3Y3J0b21iIChtYiwgd2MsICZwcyk7CisJICBpZiAobWJsZW4gPj0gMCkKKwkgICAgbWJbbWJsZW5dID0gJ1wwJzsKIAkgIHJsX2JlZ2luX3VuZG9fZ3JvdXAgKCk7Ci0JICBybF9kZWxldGUgKDEsIDApOworCSAgcmxfdmlfZGVsZXRlICgxLCAwKTsKKwkgIGlmIChybF9wb2ludCA8IHApCS8qIERpZCB3ZSByZXRyZWF0IGF0IEVPTD8gKi8KKwkgICAgcmxfcG9pbnQrKzsJLyogWFhYIC0gc2hvdWxkIHdlIGFkdmFuY2UgbW9yZSB0aGFuIDEgZm9yIG1iY2hhcj8gKi8KIAkgIHJsX2luc2VydF90ZXh0IChtYik7CiAJICBybF9lbmRfdW5kb19ncm91cCAoKTsKIAkgIHJsX3ZpX2NoZWNrICgpOwpAQCAtNzIyLDEyICs3NjMsMTMgQEAKIHJsX3ZpX2NoYW5nZV9jYXNlIChjb3VudCwgaWdub3JlKQogICAgICBpbnQgY291bnQsIGlnbm9yZTsKIHsKLSAgY2hhciBjID0gMDsKKyAgaW50IGMsIHA7CiAKICAgLyogRG9uJ3QgdHJ5IHRoaXMgb24gYW4gZW1wdHkgbGluZS4gKi8KICAgaWYgKHJsX3BvaW50ID49IHJsX2VuZCkKICAgICByZXR1cm4gKDApOwogCisgIGMgPSAwOwogI2lmIGRlZmluZWQgKEhBTkRMRV9NVUxUSUJZVEUpCiAgIGlmIChNQl9DVVJfTUFYID4gMSAmJiBybF9ieXRlX29yaWVudGVkID09IDApCiAgICAgcmV0dXJuIChfcmxfdmlfY2hhbmdlX21iY2hhcl9jYXNlIChjb3VudCkpOwpAQCAtNzQ5LDggKzc5MSwxMSBAQAogICAgICAgLyogVmkgaXMga2luZCBvZiBzdHJhbmdlIGhlcmUuICovCiAgICAgICBpZiAoYykKIAl7CisJICBwID0gcmxfcG9pbnQ7CiAJICBybF9iZWdpbl91bmRvX2dyb3VwICgpOwotCSAgcmxfZGVsZXRlICgxLCBjKTsKKwkgIHJsX3ZpX2RlbGV0ZSAoMSwgYyk7CisJICBpZiAocmxfcG9pbnQgPCBwKQkvKiBEaWQgd2UgcmV0cmVhdCBhdCBFT0w/ICovCisJICAgIHJsX3BvaW50Kys7CiAJICBfcmxfaW5zZXJ0X2NoYXIgKDEsIGMpOwogCSAgcmxfZW5kX3VuZG9fZ3JvdXAgKCk7CiAJICBybF92aV9jaGVjayAoKTsKQEAgLTc2OCw3ICs4MTMsOSBAQAogICBpZiAoIV9ybF91cHBlcmNhc2VfcCAoa2V5KSAmJiAocmxfcG9pbnQgKyAxIDw9IHJsX2VuZCkpCiAgICAgcmxfcG9pbnQgPSBfcmxfZmluZF9uZXh0X21iY2hhciAocmxfbGluZV9idWZmZXIsIHJsX3BvaW50LCAxLCBNQl9GSU5EX05PTlpFUk8pOwogCi0gIHJsX3lhbmsgKDEsIGtleSk7CisgIHdoaWxlIChjb3VudC0tKQorICAgIHJsX3lhbmsgKDEsIGtleSk7CisKICAgcmxfYmFja3dhcmRfY2hhciAoMSwga2V5KTsKICAgcmV0dXJuICgwKTsKIH0KQEAgLTgxNiw3ICs4NjMsMTAgQEAKIAl7CiAJICBzYXZlID0gcmxfbnVtZXJpY19hcmc7CiAJICBybF9udW1lcmljX2FyZyA9IF9ybF9kaWdpdF92YWx1ZSAoYyk7CisJICBybF9leHBsaWNpdF9hcmcgPSAxOworCSAgUkxfU0VUU1RBVEUgKFJMX1NUQVRFX05VTUVSSUNBUkd8UkxfU1RBVEVfVklNT1RJT04pOwogCSAgcmxfZGlnaXRfbG9vcDEgKCk7CisJICBSTF9VTlNFVFNUQVRFIChSTF9TVEFURV9WSU1PVElPTik7CiAJICBybF9udW1lcmljX2FyZyAqPSBzYXZlOwogCSAgUkxfU0VUU1RBVEUoUkxfU1RBVEVfTU9SRUlOUFVUKTsKIAkgIGMgPSBybF9yZWFkX2tleSAoKTsJLyogcmVhbCBjb21tYW5kICovCkBAIC04ODksNTIgKzkzOSw1OSBAQAogICByZXR1cm4gKDApOwogfQogCisvKiBQcm9jZXNzIEMgYXMgcGFydCBvZiB0aGUgY3VycmVudCBudW1lcmljIGFyZ3VtZW50LiAgUmV0dXJuIC0xIGlmIHRoZQorICAgYXJndW1lbnQgc2hvdWxkIGJlIGFib3J0ZWQsIDAgaWYgd2Ugc2hvdWxkIG5vdCByZWFkIGFueSBtb3JlIGNoYXJzLCBhbmQKKyAgIDEgaWYgd2Ugc2hvdWxkIGNvbnRpbnVlIHRvIHJlYWQgY2hhcnMuICovCitzdGF0aWMgaW50CitfcmxfdmlfYXJnX2Rpc3BhdGNoIChjKQorICAgICBpbnQgYzsKK3sKKyAgaW50IGtleTsKKworICBrZXkgPSBjOworICBpZiAoYyA+PSAwICYmIF9ybF9rZXltYXBbY10udHlwZSA9PSBJU0ZVTkMgJiYgX3JsX2tleW1hcFtjXS5mdW5jdGlvbiA9PSBybF91bml2ZXJzYWxfYXJndW1lbnQpCisgICAgeworICAgICAgcmxfbnVtZXJpY19hcmcgKj0gNDsKKyAgICAgIHJldHVybiAxOworICAgIH0KKworICBjID0gVU5NRVRBIChjKTsKKworICBpZiAoX3JsX2RpZ2l0X3AgKGMpKQorICAgIHsKKyAgICAgIGlmIChybF9leHBsaWNpdF9hcmcpCisJcmxfbnVtZXJpY19hcmcgPSAocmxfbnVtZXJpY19hcmcgKiAxMCkgKyBfcmxfZGlnaXRfdmFsdWUgKGMpOworICAgICAgZWxzZQorCXJsX251bWVyaWNfYXJnID0gX3JsX2RpZ2l0X3ZhbHVlIChjKTsKKyAgICAgIHJsX2V4cGxpY2l0X2FyZyA9IDE7CisgICAgICByZXR1cm4gMTsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICBybF9jbGVhcl9tZXNzYWdlICgpOworICAgICAgcmxfc3R1ZmZfY2hhciAoa2V5KTsKKyAgICAgIHJldHVybiAwOworICAgIH0KK30KKwogLyogQSBzaW1wbGlmaWVkIGxvb3AgZm9yIHZpLiBEb24ndCBkaXNwYXRjaCBrZXkgYXQgZW5kLgogICAgRG9uJ3QgcmVjb2duaXplIG1pbnVzIHNpZ24/CiAgICBTaG91bGQgdGhpcyBkbyBybF9zYXZlX3Byb21wdC9ybF9yZXN0b3JlX3Byb21wdD8gKi8KIHN0YXRpYyBpbnQKIHJsX2RpZ2l0X2xvb3AxICgpCiB7Ci0gIGludCBrZXksIGM7CisgIGludCBjLCByOwogCi0gIFJMX1NFVFNUQVRFKFJMX1NUQVRFX05VTUVSSUNBUkcpOwogICB3aGlsZSAoMSkKICAgICB7Ci0gICAgICBpZiAocmxfbnVtZXJpY19hcmcgPiAxMDAwMDAwKQotCXsKLQkgIHJsX2V4cGxpY2l0X2FyZyA9IHJsX251bWVyaWNfYXJnID0gMDsKLQkgIHJsX2RpbmcgKCk7Ci0JICBybF9jbGVhcl9tZXNzYWdlICgpOwotCSAgUkxfVU5TRVRTVEFURShSTF9TVEFURV9OVU1FUklDQVJHKTsKLQkgIHJldHVybiAxOwotCX0KLSAgICAgIHJsX21lc3NhZ2UgKCIoYXJnOiAlZCkgIiwgcmxfYXJnX3NpZ24gKiBybF9udW1lcmljX2FyZyk7Ci0gICAgICBSTF9TRVRTVEFURShSTF9TVEFURV9NT1JFSU5QVVQpOwotICAgICAga2V5ID0gYyA9IHJsX3JlYWRfa2V5ICgpOwotICAgICAgUkxfVU5TRVRTVEFURShSTF9TVEFURV9NT1JFSU5QVVQpOworICAgICAgaWYgKF9ybF9hcmdfb3ZlcmZsb3cgKCkpCisJcmV0dXJuIDE7CiAKLSAgICAgIGlmIChjID49IDAgJiYgX3JsX2tleW1hcFtjXS50eXBlID09IElTRlVOQyAmJgotCSAgX3JsX2tleW1hcFtjXS5mdW5jdGlvbiA9PSBybF91bml2ZXJzYWxfYXJndW1lbnQpCi0JewotCSAgcmxfbnVtZXJpY19hcmcgKj0gNDsKLQkgIGNvbnRpbnVlOwotCX0KKyAgICAgIGMgPSBfcmxfYXJnX2dldGNoYXIgKCk7CiAKLSAgICAgIGMgPSBVTk1FVEEgKGMpOwotICAgICAgaWYgKF9ybF9kaWdpdF9wIChjKSkKLQl7Ci0JICBpZiAocmxfZXhwbGljaXRfYXJnKQotCSAgICBybF9udW1lcmljX2FyZyA9IChybF9udW1lcmljX2FyZyAqIDEwKSArIF9ybF9kaWdpdF92YWx1ZSAoYyk7Ci0JICBlbHNlCi0JICAgIHJsX251bWVyaWNfYXJnID0gX3JsX2RpZ2l0X3ZhbHVlIChjKTsKLQkgIHJsX2V4cGxpY2l0X2FyZyA9IDE7Ci0JfQotICAgICAgZWxzZQotCXsKLQkgIHJsX2NsZWFyX21lc3NhZ2UgKCk7Ci0JICBybF9zdHVmZl9jaGFyIChrZXkpOwotCSAgYnJlYWs7Ci0JfQorICAgICAgciA9IF9ybF92aV9hcmdfZGlzcGF0Y2ggKGMpOworICAgICAgaWYgKHIgPD0gMCkKKwlicmVhazsKICAgICB9CiAKICAgUkxfVU5TRVRTVEFURShSTF9TVEFURV9OVU1FUklDQVJHKTsKQEAgLTEwMTQsOCArMTA3MSw3IEBACiAgICAgICAvKiBgQycgZG9lcyBub3Qgc2F2ZSB0aGUgdGV4dCBpbnNlcnRlZCBmb3IgdW5kb2luZyBvciByZWRvaW5nLiAqLwogICAgICAgaWYgKF9ybF91cHBlcmNhc2VfcCAoa2V5KSA9PSAwKQogICAgICAgICBfcmxfdmlfZG9pbmdfaW5zZXJ0ID0gMTsKLSAgICAgIF9ybF92aV9zZXRfbGFzdCAoa2V5LCBjb3VudCwgcmxfYXJnX3NpZ24pOwotICAgICAgcmxfdmlfaW5zZXJ0aW9uX21vZGUgKDEsIGtleSk7CisgICAgICBybF92aV9zdGFydF9pbnNlcnRpbmcgKGtleSwgcmxfbnVtZXJpY19hcmcsIHJsX2FyZ19zaWduKTsKICAgICB9CiAKICAgcmV0dXJuICgwKTsKQEAgLTEwMjUsOCArMTA4MSw5IEBACiBybF92aV95YW5rX3RvIChjb3VudCwga2V5KQogICAgICBpbnQgY291bnQsIGtleTsKIHsKLSAgaW50IGMsIHNhdmUgPSBybF9wb2ludDsKKyAgaW50IGMsIHNhdmU7CiAKKyAgc2F2ZSA9IHJsX3BvaW50OwogICBpZiAoX3JsX3VwcGVyY2FzZV9wIChrZXkpKQogICAgIHJsX3N0dWZmX2NoYXIgKCckJyk7CiAKQEAgLTEwNTEsMTEgKzExMDgsNDUgQEAKIH0KIAogaW50CitybF92aV9ydWJvdXQgKGNvdW50LCBrZXkpCisgICAgIGludCBjb3VudCwga2V5OworeworICBpbnQgcCwgb3BvaW50OworCisgIGlmIChjb3VudCA8IDApCisgICAgcmV0dXJuIChybF92aV9kZWxldGUgKC1jb3VudCwga2V5KSk7CisKKyAgaWYgKHJsX3BvaW50ID09IDApCisgICAgeworICAgICAgcmxfZGluZyAoKTsKKyAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgb3BvaW50ID0gcmxfcG9pbnQ7CisgIGlmIChjb3VudCA+IDEgJiYgTUJfQ1VSX01BWCA+IDEgJiYgcmxfYnl0ZV9vcmllbnRlZCA9PSAwKQorICAgIHJsX2JhY2t3YXJkX2NoYXIgKGNvdW50LCBrZXkpOworICBlbHNlIGlmIChNQl9DVVJfTUFYID4gMSAmJiBybF9ieXRlX29yaWVudGVkID09IDApCisgICAgcmxfcG9pbnQgPSBfcmxfZmluZF9wcmV2X21iY2hhciAocmxfbGluZV9idWZmZXIsIHJsX3BvaW50LCBNQl9GSU5EX05PTlpFUk8pOworICBlbHNlCisgICAgcmxfcG9pbnQgLT0gY291bnQ7CisKKyAgaWYgKHJsX3BvaW50IDwgMCkKKyAgICBybF9wb2ludCA9IDA7CisKKyAgcmxfa2lsbF90ZXh0IChybF9wb2ludCwgb3BvaW50KTsKKyAgCisgIHJldHVybiAoMCk7Cit9CisKK2ludAogcmxfdmlfZGVsZXRlIChjb3VudCwga2V5KQogICAgICBpbnQgY291bnQsIGtleTsKIHsKICAgaW50IGVuZDsKIAorICBpZiAoY291bnQgPCAwKQorICAgIHJldHVybiAocmxfdmlfcnVib3V0ICgtY291bnQsIGtleSkpOworCiAgIGlmIChybF9lbmQgPT0gMCkKICAgICB7CiAgICAgICBybF9kaW5nICgpOwpAQCAtMTA3NCw2ICsxMTY1LDcgQEAKICAgCiAgIGlmIChybF9wb2ludCA+IDAgJiYgcmxfcG9pbnQgPT0gcmxfZW5kKQogICAgIHJsX2JhY2t3YXJkX2NoYXIgKDEsIGtleSk7CisKICAgcmV0dXJuICgwKTsKIH0KIApAQCAtMTA5NCw2NCArMTE4NiwxMDIgQEAKICAgcmV0dXJuIChybF92aV9iYWNrX3RvX2luZGVudCAoMSwga2V5KSk7CiB9CiAKK3N0YXRpYyBpbnQgX3JsX2NzX2RpciwgX3JsX2NzX29yaWdfZGlyOworCisjaWYgZGVmaW5lZCAoUkVBRExJTkVfQ0FMTEJBQ0tTKQorc3RhdGljIGludAorX3JsX3ZpX2NhbGxiYWNrX2NoYXJfc2VhcmNoIChkYXRhKQorICAgICBfcmxfY2FsbGJhY2tfZ2VuZXJpY19hcmcgKmRhdGE7Cit7CisjaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKKyAgX3JsX3ZpX2xhc3Rfc2VhcmNoX21ibGVuID0gX3JsX3JlYWRfbWJjaGFyIChfcmxfdmlfbGFzdF9zZWFyY2hfbWJjaGFyLCBNQl9MRU5fTUFYKTsKKyNlbHNlCisgIFJMX1NFVFNUQVRFKFJMX1NUQVRFX01PUkVJTlBVVCk7CisgIF9ybF92aV9sYXN0X3NlYXJjaF9jaGFyID0gcmxfcmVhZF9rZXkgKCk7CisgIFJMX1VOU0VUU1RBVEUoUkxfU1RBVEVfTU9SRUlOUFVUKTsKKyNlbmRpZgorCisgIF9ybF9jYWxsYmFja19mdW5jID0gMDsKKyAgX3JsX3dhbnRfcmVkaXNwbGF5ID0gMTsKKworI2lmIGRlZmluZWQgKEhBTkRMRV9NVUxUSUJZVEUpCisgIHJldHVybiAoX3JsX2NoYXJfc2VhcmNoX2ludGVybmFsIChkYXRhLT5jb3VudCwgX3JsX2NzX2RpciwgX3JsX3ZpX2xhc3Rfc2VhcmNoX21iY2hhciwgX3JsX3ZpX2xhc3Rfc2VhcmNoX21ibGVuKSk7CisjZWxzZQorICByZXR1cm4gKF9ybF9jaGFyX3NlYXJjaF9pbnRlcm5hbCAoZGF0YS0+Y291bnQsIF9ybF9jc19kaXIsIF9ybF92aV9sYXN0X3NlYXJjaF9jaGFyKSk7CisjZW5kaWYgIAorfQorI2VuZGlmCisKIGludAogcmxfdmlfY2hhcl9zZWFyY2ggKGNvdW50LCBrZXkpCiAgICAgIGludCBjb3VudCwga2V5OwogewogI2lmIGRlZmluZWQgKEhBTkRMRV9NVUxUSUJZVEUpCiAgIHN0YXRpYyBjaGFyICp0YXJnZXQ7Ci0gIHN0YXRpYyBpbnQgbWJfbGVuOworICBzdGF0aWMgaW50IHRsZW47CiAjZWxzZQogICBzdGF0aWMgY2hhciB0YXJnZXQ7CiAjZW5kaWYKLSAgc3RhdGljIGludCBvcmlnX2RpciwgZGlyOwogCiAgIGlmIChrZXkgPT0gJzsnIHx8IGtleSA9PSAnLCcpCi0gICAgZGlyID0ga2V5ID09ICc7JyA/IG9yaWdfZGlyIDogLW9yaWdfZGlyOworICAgIF9ybF9jc19kaXIgPSAoa2V5ID09ICc7JykgPyBfcmxfY3Nfb3JpZ19kaXIgOiAtX3JsX2NzX29yaWdfZGlyOwogICBlbHNlCiAgICAgeworICAgICAgc3dpdGNoIChrZXkpCisgICAgICAgIHsKKyAgICAgICAgY2FzZSAndCc6CisgICAgICAgICAgX3JsX2NzX29yaWdfZGlyID0gX3JsX2NzX2RpciA9IEZUTzsKKyAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlICdUJzoKKyAgICAgICAgICBfcmxfY3Nfb3JpZ19kaXIgPSBfcmxfY3NfZGlyID0gQlRPOworICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgJ2YnOgorICAgICAgICAgIF9ybF9jc19vcmlnX2RpciA9IF9ybF9jc19kaXIgPSBGRklORDsKKyAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlICdGJzoKKyAgICAgICAgICBfcmxfY3Nfb3JpZ19kaXIgPSBfcmxfY3NfZGlyID0gQkZJTkQ7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwogICAgICAgaWYgKHZpX3JlZG9pbmcpCi0jaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKLQl0YXJnZXQgPSBfcmxfdmlfbGFzdF9zZWFyY2hfbWJjaGFyOwotI2Vsc2UKLQl0YXJnZXQgPSBfcmxfdmlfbGFzdF9zZWFyY2hfY2hhcjsKKwl7CisJICAvKiBzZXQgdGFyZ2V0IGFuZCB0bGVuIGJlbG93ICovCisJfQorI2lmIGRlZmluZWQgKFJFQURMSU5FX0NBTExCQUNLUykKKyAgICAgIGVsc2UgaWYgKFJMX0lTU1RBVEUgKFJMX1NUQVRFX0NBTExCQUNLKSkKKyAgICAgICAgeworICAgICAgICAgIF9ybF9jYWxsYmFja19kYXRhID0gX3JsX2NhbGxiYWNrX2RhdGFfYWxsb2MgKGNvdW50KTsKKyAgICAgICAgICBfcmxfY2FsbGJhY2tfZGF0YS0+aTEgPSBfcmxfY3NfZGlyOworICAgICAgICAgIF9ybF9jYWxsYmFja19mdW5jID0gX3JsX3ZpX2NhbGxiYWNrX2NoYXJfc2VhcmNoOworICAgICAgICAgIHJldHVybiAoMCk7CisgICAgICAgIH0KICNlbmRpZgogICAgICAgZWxzZQogCXsKICNpZiBkZWZpbmVkIChIQU5ETEVfTVVMVElCWVRFKQotCSAgbWJfbGVuID0gX3JsX3JlYWRfbWJjaGFyIChfcmxfdmlfbGFzdF9zZWFyY2hfbWJjaGFyLCBNQl9MRU5fTUFYKTsKLQkgIHRhcmdldCA9IF9ybF92aV9sYXN0X3NlYXJjaF9tYmNoYXI7CisJICBfcmxfdmlfbGFzdF9zZWFyY2hfbWJsZW4gPSBfcmxfcmVhZF9tYmNoYXIgKF9ybF92aV9sYXN0X3NlYXJjaF9tYmNoYXIsIE1CX0xFTl9NQVgpOwogI2Vsc2UKIAkgIFJMX1NFVFNUQVRFKFJMX1NUQVRFX01PUkVJTlBVVCk7Ci0JICBfcmxfdmlfbGFzdF9zZWFyY2hfY2hhciA9IHRhcmdldCA9IHJsX3JlYWRfa2V5ICgpOworCSAgX3JsX3ZpX2xhc3Rfc2VhcmNoX2NoYXIgPSBybF9yZWFkX2tleSAoKTsKIAkgIFJMX1VOU0VUU1RBVEUoUkxfU1RBVEVfTU9SRUlOUFVUKTsKICNlbmRpZgogCX0KLQotICAgICAgc3dpdGNoIChrZXkpCi0gICAgICAgIHsKLSAgICAgICAgY2FzZSAndCc6Ci0gICAgICAgICAgb3JpZ19kaXIgPSBkaXIgPSBGVE87Ci0gICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgY2FzZSAnVCc6Ci0gICAgICAgICAgb3JpZ19kaXIgPSBkaXIgPSBCVE87Ci0gICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgY2FzZSAnZic6Ci0gICAgICAgICAgb3JpZ19kaXIgPSBkaXIgPSBGRklORDsKLSAgICAgICAgICBicmVhazsKLQotICAgICAgICBjYXNlICdGJzoKLSAgICAgICAgICBvcmlnX2RpciA9IGRpciA9IEJGSU5EOwotICAgICAgICAgIGJyZWFrOwotICAgICAgICB9CiAgICAgfQogCiAjaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKLSAgIHJldHVybiAoX3JsX2NoYXJfc2VhcmNoX2ludGVybmFsIChjb3VudCwgZGlyLCB0YXJnZXQsIG1iX2xlbikpOworICB0YXJnZXQgPSBfcmxfdmlfbGFzdF9zZWFyY2hfbWJjaGFyOworICB0bGVuID0gX3JsX3ZpX2xhc3Rfc2VhcmNoX21ibGVuOwogI2Vsc2UKLSAgcmV0dXJuIChfcmxfY2hhcl9zZWFyY2hfaW50ZXJuYWwgKGNvdW50LCBkaXIsIHRhcmdldCkpOworICB0YXJnZXQgPSBfcmxfdmlfbGFzdF9zZWFyY2hfY2hhcjsKKyNlbmRpZgorCisjaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKKyAgcmV0dXJuIChfcmxfY2hhcl9zZWFyY2hfaW50ZXJuYWwgKGNvdW50LCBfcmxfY3NfZGlyLCB0YXJnZXQsIHRsZW4pKTsKKyNlbHNlCisgIHJldHVybiAoX3JsX2NoYXJfc2VhcmNoX2ludGVybmFsIChjb3VudCwgX3JsX2NzX2RpciwgdGFyZ2V0KSk7CiAjZW5kaWYKIH0KIApAQCAtMTI2Miw1MSArMTM5MiwxMDAgQEAKICAgICB9CiB9CiAKLS8qIFhYWCAtIHRoaW5rIGFib3V0IHJlYWRpbmcgYW4gZW50aXJlIG1iY2hhciB3aXRoIF9ybF9yZWFkX21iY2hhciBhbmQKLSAgIGluc2VydGluZyBpdCBpbiBvbmUgYnVuY2ggaW5zdGVhZCBvZiB0aGUgbG9vcCBiZWxvdyAobGlrZSBpbgotICAgcmxfdmlfY2hhcl9zZWFyY2ggb3IgX3JsX3ZpX2NoYW5nZV9tYmNoYXJfY2FzZS4gIFNldCBjIHRvIG1iY2hhclswXQotICAgZm9yIHRlc3QgYWdhaW5zdCAwMzMgb3IgXkMuICBNYWtlIHN1cmUgdGhhdCBfcmxfcmVhZF9tYmNoYXIgZG9lcwotICAgdGhpcyByaWdodC4gKi8KK3N0YXRpYyBpbnQKK19ybF92aV9jaGFuZ2VfY2hhciAoY291bnQsIGMsIG1iKQorICAgICBpbnQgY291bnQsIGM7CisgICAgIGNoYXIgKm1iOworeworICBpbnQgcDsKKworICBpZiAoYyA9PSAnXDAzMycgfHwgYyA9PSBDVFJMICgnQycpKQorICAgIHJldHVybiAtMTsKKworICBybF9iZWdpbl91bmRvX2dyb3VwICgpOworICB3aGlsZSAoY291bnQtLSAmJiBybF9wb2ludCA8IHJsX2VuZCkKKyAgICB7CisgICAgICBwID0gcmxfcG9pbnQ7CisgICAgICBybF92aV9kZWxldGUgKDEsIGMpOworICAgICAgaWYgKHJsX3BvaW50IDwgcCkJCS8qIERpZCB3ZSByZXRyZWF0IGF0IEVPTD8gKi8KKwlybF9wb2ludCsrOworI2lmIGRlZmluZWQgKEhBTkRMRV9NVUxUSUJZVEUpCisgICAgICBpZiAoTUJfQ1VSX01BWCA+IDEgJiYgcmxfYnl0ZV9vcmllbnRlZCA9PSAwKQorCXJsX2luc2VydF90ZXh0IChtYik7CisgICAgICBlbHNlCisjZW5kaWYKKwlfcmxfaW5zZXJ0X2NoYXIgKDEsIGMpOworICAgIH0KKworICAvKiBUaGUgY3Vyc29yIHNoYWxsIGJlIGxlZnQgb24gdGhlIGxhc3QgY2hhcmFjdGVyIGNoYW5nZWQuICovCisgIHJsX2JhY2t3YXJkX2NoYXIgKDEsIGMpOworCisgIHJsX2VuZF91bmRvX2dyb3VwICgpOworCisgIHJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBpbnQKK19ybF92aV9jYWxsYmFja19nZXRjaGFyIChtYiwgbWJsZW4pCisgICAgIGNoYXIgKm1iOworICAgICBpbnQgbWJsZW47Cit7CisgIGludCBjOworCisgIFJMX1NFVFNUQVRFKFJMX1NUQVRFX01PUkVJTlBVVCk7CisgIGMgPSBybF9yZWFkX2tleSAoKTsKKyAgUkxfVU5TRVRTVEFURShSTF9TVEFURV9NT1JFSU5QVVQpOworCisjaWYgZGVmaW5lZCAoSEFORExFX01VTFRJQllURSkKKyAgaWYgKE1CX0NVUl9NQVggPiAxICYmIHJsX2J5dGVfb3JpZW50ZWQgPT0gMCkKKyAgICBjID0gX3JsX3JlYWRfbWJzdHJpbmcgKGMsIG1iLCBtYmxlbik7CisjZW5kaWYKKworICByZXR1cm4gYzsKK30KKworI2lmIGRlZmluZWQgKFJFQURMSU5FX0NBTExCQUNLUykKK3N0YXRpYyBpbnQKK19ybF92aV9jYWxsYmFja19jaGFuZ2VfY2hhciAoZGF0YSkKKyAgICAgX3JsX2NhbGxiYWNrX2dlbmVyaWNfYXJnICpkYXRhOworeworICBpbnQgYzsKKyAgY2hhciBtYltNQl9MRU5fTUFYXTsKKworICBfcmxfdmlfbGFzdF9yZXBsYWNlbWVudCA9IGMgPSBfcmxfdmlfY2FsbGJhY2tfZ2V0Y2hhciAobWIsIE1CX0xFTl9NQVgpOworCisgIF9ybF9jYWxsYmFja19mdW5jID0gMDsKKyAgX3JsX3dhbnRfcmVkaXNwbGF5ID0gMTsKKworICByZXR1cm4gKF9ybF92aV9jaGFuZ2VfY2hhciAoZGF0YS0+Y291bnQsIGMsIG1iKSk7Cit9CisjZW5kaWYKKwogaW50CiBybF92aV9jaGFuZ2VfY2hhciAoY291bnQsIGtleSkKICAgICAgaW50IGNvdW50LCBrZXk7CiB7CiAgIGludCBjOworICBjaGFyIG1iW01CX0xFTl9NQVhdOwogCiAgIGlmICh2aV9yZWRvaW5nKQotICAgIGMgPSBfcmxfdmlfbGFzdF9yZXBsYWNlbWVudDsKLSAgZWxzZQogICAgIHsKLSAgICAgIFJMX1NFVFNUQVRFKFJMX1NUQVRFX01PUkVJTlBVVCk7Ci0gICAgICBfcmxfdmlfbGFzdF9yZXBsYWNlbWVudCA9IGMgPSBybF9yZWFkX2tleSAoKTsKLSAgICAgIFJMX1VOU0VUU1RBVEUoUkxfU1RBVEVfTU9SRUlOUFVUKTsKKyAgICAgIGMgPSBfcmxfdmlfbGFzdF9yZXBsYWNlbWVudDsKKyAgICAgIG1iWzBdID0gYzsKKyAgICAgIG1iWzFdID0gJ1wwJzsKICAgICB9Ci0KLSAgaWYgKGMgPT0gJ1wwMzMnIHx8IGMgPT0gQ1RSTCAoJ0MnKSkKLSAgICByZXR1cm4gLTE7Ci0KLSAgd2hpbGUgKGNvdW50LS0gJiYgcmxfcG9pbnQgPCBybF9lbmQpCisjaWYgZGVmaW5lZCAoUkVBRExJTkVfQ0FMTEJBQ0tTKQorICBlbHNlIGlmIChSTF9JU1NUQVRFIChSTF9TVEFURV9DQUxMQkFDSykpCiAgICAgewotICAgICAgcmxfYmVnaW5fdW5kb19ncm91cCAoKTsKLQotICAgICAgcmxfZGVsZXRlICgxLCBjKTsKLSNpZiBkZWZpbmVkIChIQU5ETEVfTVVMVElCWVRFKQotICAgICAgaWYgKE1CX0NVUl9NQVggPiAxICYmIHJsX2J5dGVfb3JpZW50ZWQgPT0gMCkKLQl3aGlsZSAoX3JsX2luc2VydF9jaGFyICgxLCBjKSkKLQkgIHsKLQkgICAgUkxfU0VUU1RBVEUgKFJMX1NUQVRFX01PUkVJTlBVVCk7Ci0JICAgIGMgPSBybF9yZWFkX2tleSAoKTsKLQkgICAgUkxfVU5TRVRTVEFURSAoUkxfU1RBVEVfTU9SRUlOUFVUKTsKLQkgIH0KLSAgICAgIGVsc2UKKyAgICAgIF9ybF9jYWxsYmFja19kYXRhID0gX3JsX2NhbGxiYWNrX2RhdGFfYWxsb2MgKGNvdW50KTsKKyAgICAgIF9ybF9jYWxsYmFja19mdW5jID0gX3JsX3ZpX2NhbGxiYWNrX2NoYW5nZV9jaGFyOworICAgICAgcmV0dXJuICgwKTsKKyAgICB9CiAjZW5kaWYKLQlfcmxfaW5zZXJ0X2NoYXIgKDEsIGMpOwotICAgICAgaWYgKGNvdW50ID09IDApCi0JcmxfYmFja3dhcmRfY2hhciAoMSwgYyk7CisgIGVsc2UKKyAgICBfcmxfdmlfbGFzdF9yZXBsYWNlbWVudCA9IGMgPSBfcmxfdmlfY2FsbGJhY2tfZ2V0Y2hhciAobWIsIE1CX0xFTl9NQVgpOwogCi0gICAgICBybF9lbmRfdW5kb19ncm91cCAoKTsKLSAgICB9Ci0gIHJldHVybiAoMCk7CisgIHJldHVybiAoX3JsX3ZpX2NoYW5nZV9jaGFyIChjb3VudCwgYywgbWIpKTsKIH0KIAogaW50CkBAIC0xMzE1LDcgKzE0OTQsNyBAQAogewogICAvKiBJZiB3ZSBhcmUgcmVkb2luZywgcmxfdmlfY2hhbmdlX3RvIHdpbGwgc3R1ZmYgdGhlIGxhc3QgbW90aW9uIGNoYXIgKi8KICAgaWYgKHZpX3JlZG9pbmcgPT0gMCkKLSAgICBybF9zdHVmZl9jaGFyICgoa2V5ID09ICdTJykgPyAnYycgOiAnICcpOwkvKiBgUycgPT0gYGNjJywgYHMnID09IGBjICcgKi8KKyAgICBybF9zdHVmZl9jaGFyICgoa2V5ID09ICdTJykgPyAnYycgOiAnbCcpOwkvKiBgUycgPT0gYGNjJywgYHMnID09IGBjbCcgKi8KIAogICByZXR1cm4gKHJsX3ZpX2NoYW5nZV90byAoY291bnQsICdjJykpOwogfQpAQCAtMTQzMSw5ICsxNjEwLDggQEAKICNlbmRpZgogCiAvKiBGdW5jdGlvbnMgdG8gc2F2ZSBhbmQgcmVzdG9yZSBtYXJrcy4gKi8KLWludAotcmxfdmlfc2V0X21hcmsgKGNvdW50LCBrZXkpCi0gICAgIGludCBjb3VudCwga2V5Oworc3RhdGljIGludAorX3JsX3ZpX3NldF9tYXJrICgpCiB7CiAgIGludCBjaDsKIApAQCAtMTQ1MSwxMCArMTYyOSwzNyBAQAogICByZXR1cm4gMDsKIH0KIAorI2lmIGRlZmluZWQgKFJFQURMSU5FX0NBTExCQUNLUykKK3N0YXRpYyBpbnQKK19ybF92aV9jYWxsYmFja19zZXRfbWFyayAoZGF0YSkKKyAgICAgX3JsX2NhbGxiYWNrX2dlbmVyaWNfYXJnICpkYXRhOworeworICBfcmxfY2FsbGJhY2tfZnVuYyA9IDA7CisgIF9ybF93YW50X3JlZGlzcGxheSA9IDE7CisKKyAgcmV0dXJuIChfcmxfdmlfc2V0X21hcmsgKCkpOworfQorI2VuZGlmCisKIGludAotcmxfdmlfZ290b19tYXJrIChjb3VudCwga2V5KQorcmxfdmlfc2V0X21hcmsgKGNvdW50LCBrZXkpCiAgICAgIGludCBjb3VudCwga2V5OwogeworI2lmIGRlZmluZWQgKFJFQURMSU5FX0NBTExCQUNLUykKKyAgaWYgKFJMX0lTU1RBVEUgKFJMX1NUQVRFX0NBTExCQUNLKSkKKyAgICB7CisgICAgICBfcmxfY2FsbGJhY2tfZGF0YSA9IDA7CisgICAgICBfcmxfY2FsbGJhY2tfZnVuYyA9IF9ybF92aV9jYWxsYmFja19zZXRfbWFyazsKKyAgICAgIHJldHVybiAoMCk7CisgICAgfQorI2VuZGlmCisKKyAgcmV0dXJuIChfcmxfdmlfc2V0X21hcmsgKCkpOworfQorCitzdGF0aWMgaW50CitfcmxfdmlfZ290b19tYXJrICgpCit7CiAgIGludCBjaDsKIAogICBSTF9TRVRTVEFURShSTF9TVEFURV9NT1JFSU5QVVQpOwpAQCAtMTQ4Miw0ICsxNjg3LDMxIEBACiAgIHJldHVybiAwOwogfQogCisjaWYgZGVmaW5lZCAoUkVBRExJTkVfQ0FMTEJBQ0tTKQorc3RhdGljIGludAorX3JsX3ZpX2NhbGxiYWNrX2dvdG9fbWFyayAoZGF0YSkKKyAgICAgX3JsX2NhbGxiYWNrX2dlbmVyaWNfYXJnICpkYXRhOworeworICBfcmxfY2FsbGJhY2tfZnVuYyA9IDA7CisgIF9ybF93YW50X3JlZGlzcGxheSA9IDE7CisKKyAgcmV0dXJuIChfcmxfdmlfZ290b19tYXJrICgpKTsKK30KKyNlbmRpZgorCitpbnQKK3JsX3ZpX2dvdG9fbWFyayAoY291bnQsIGtleSkKKyAgICAgaW50IGNvdW50LCBrZXk7Cit7CisjaWYgZGVmaW5lZCAoUkVBRExJTkVfQ0FMTEJBQ0tTKQorICBpZiAoUkxfSVNTVEFURSAoUkxfU1RBVEVfQ0FMTEJBQ0spKQorICAgIHsKKyAgICAgIF9ybF9jYWxsYmFja19kYXRhID0gMDsKKyAgICAgIF9ybF9jYWxsYmFja19mdW5jID0gX3JsX3ZpX2NhbGxiYWNrX2dvdG9fbWFyazsKKyAgICAgIHJldHVybiAoMCk7CisgICAgfQorI2VuZGlmCisKKyAgcmV0dXJuIChfcmxfdmlfZ290b19tYXJrICgpKTsKK30KICNlbmRpZiAvKiBWSV9NT0RFICovCg==